日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]摘要:基于Matlab的串口通信機制,簡要介紹了查詢方式下的非實時通信,提出一種將事件中斷寫入GUI組件函數(shù)的方式,相對于改寫instrcallback函數(shù)實現(xiàn)串口中斷機制的實時通信方式,大大簡化了中斷方式實現(xiàn)實時通信的過

摘要:基于Matlab的串口通信機制,簡要介紹了查詢方式下的非實時通信,提出一種將事件中斷寫入GUI組件函數(shù)的方式,相對于改寫instrcallback函數(shù)實現(xiàn)串口中斷機制的實時通信方式,大大簡化了中斷方式實現(xiàn)實時通信的過程,并詳述了三者的差異和實現(xiàn)過程。利用Matlab的GUI工具和內置的串口通信API,設計了一個可視化的串口通信界面,通過藍牙串行接口,實現(xiàn)智能車系統(tǒng)采集數(shù)據(jù)的實時接收,并利用Matlab強大的科學計算功能,對數(shù)據(jù)進行實時處理,圖形化量示數(shù)據(jù)處理結果。實驗結果表明,該方法可行,具有一定的應用價值。
關鍵詞:Matlab GUI;智能車;MC68HCS12G128單片機;回調函數(shù)instrcallback;實時通信

引言
    在以速度決定優(yōu)劣的飛恩卡爾智能車比賽中,任何因素都可能影響小車的運行。為了滿足對小車在賽道中各種狀態(tài)精確分析的需求,上位機的效據(jù)采集與處理要求通信波特率高、信號傳輸穩(wěn)定、不丟包、數(shù)據(jù)處理量大、數(shù)據(jù)處理及時等。在基于Matlab環(huán)境下的串口通信中,查詢方式下的非實時串行通信技術對實時性要求很高的智能車通信有很大的局限性。而在目前普遍采用的中斷機制下的通信雖然可以滿足實時性的需要,卻需要修改Matlab自帶的instrcallback回調函數(shù)。程序調試過程中慘改了回調函數(shù)后,需要重新啟動Matlab才能使得新的回調函數(shù)文件生效。由此可以看出,其操作復雜易出錯,且instrcallback函數(shù)接收到保存在工作空間的數(shù)據(jù)不能被GUI組件的函數(shù)實時調用。故此方式在需要對多組數(shù)據(jù)進行分別作圖分析時,往往生成多個零散圖形窗口。為了滿足智能車的實時通信需求,同時使基于Matlab GUI的通信界面更加簡潔,本文提出了一種將事件中斷函數(shù)寫入GUI組件函數(shù)中的方式。
    Matlab是由美國Mathworks公司開發(fā)的面向理論分析研究及工程設計處理和繪圖的一套具有強大功能的軟件系統(tǒng)。Matlab運行穩(wěn)定、可靠,使用方便,是廣大科研人員進行科學研究的得力助手。從Matlab6.0版本開始,Mathworks公司在軟件中增加了設備控制箱(instrument control toolbox),提供了對RS-232/RS-485通信標準的串口通信的正式支持。Matlab GUI(Graphic User Interface)是內置于Matlab的進行圖形界面開發(fā)的模塊。本文主要介紹在Mariab GUI環(huán)境下,上位機與智能車進行實時通信盼辦法。該方法較之使用VC/VB高級語言編程,
大大縮減了開發(fā)時間,提高了開發(fā)效率。另外,較之傳統(tǒng)的RS-232接口,使用藍牙接口能夠更大范圍地全方位進行數(shù)據(jù)傳輸和采集。實驗結果表明,經(jīng)過兩次握手處理后數(shù)據(jù)傳輸實時穩(wěn)定,具有很強的實用性。

1 系統(tǒng)總體設計方案
   
系統(tǒng)采用飛恩卡爾MCA8HCS12G128單片機作為智能車的控制器,PC機為上位機。利用Matlab GUI構建起二者的實時通信、數(shù)據(jù)處理和繪圖等平臺。整個系統(tǒng)的原理框圖如圖1所示,介紹了基于Matlab的GUI和串口通信機制下建立上位機與智能車實時通信和作圖的平臺方法。


    智能車與PC機通過藍牙相連,系統(tǒng)工作時,由Matlab調用設備控制工具箱中的serial類函數(shù)來設置串口屬性,創(chuàng)建串口對象,從而實現(xiàn)Matlab對串口的控制和讀寫操作。在對智能車的調試過程中,可以通過Matlab向藍牙發(fā)送特殊指令,啟動智能車。在智能車系統(tǒng)運行后便可以將所采集位置和速度等效據(jù)通過藍牙回送給PC機。
    由Matlab通過中斷方式實時接收數(shù)據(jù),并對數(shù)據(jù)進行分析和處理,實時繪出相應的圖形。

2 Matlab GUI設計介紹
   
①運行Matlab后,點擊主界面左上角的GUI圖標即可運行Matlab GUI開發(fā)工具。
    ②點擊Blank GUI(Default)選項并點擊OK按鈕,完成新建Blank GUI。
    ③在新建的Blank GUI界面的右方菜單中添加設計所需要的元素,完成串口通信及數(shù)據(jù)實時顯示等功能的GUI界面設計。
    ④編寫GUI組建相應的響應控制代碼,運行后的通信仿真界面如圖2所示。



3 單片機與PC機串行通信
3.1 設計思想
   
MCA8HCS12G128單片機的軟件設計需要實現(xiàn)對程序的初始化、接收與發(fā)送串口信號、速度和位置數(shù)據(jù)的采集等功能。為了保證上位機采集數(shù)據(jù)的可靠性和穩(wěn)定性,防止出現(xiàn)丟包事件,在通信過程中約定了雙方的握手方法。在程序初始化以后,等待fwrite命令發(fā)送的握手信號0xFF。當單片機第一次接收到的信號為0xFF時,則握手成功,并開始運行電機和激光頭等子程序。在實驗過程中發(fā)現(xiàn)存在發(fā)送的第一組數(shù)據(jù)第一個字節(jié)丟失的現(xiàn)象,為了增強數(shù)據(jù)的可靠性,首先判斷數(shù)據(jù)包的前兩個字節(jié)是否為0xFF,是則剔除相應字節(jié),分離出有效的數(shù)據(jù),再在回送的速度、激光傳感器的數(shù)據(jù)中嵌入兩個字節(jié)的握手信號0xFF,Matlab接收到串口的數(shù)據(jù)后進行相應的處理。智能車控制器通信的總程序流程如圖3所示。


3.2 系統(tǒng)藍牙串口通信主要代碼
   

4 基于Matlab GUI的PC機與智能車的通信
4.1 Matlab GUI基礎上實現(xiàn)串口通信的軟件設計
   
在Matlab環(huán)境下,讀取串口數(shù)據(jù)有查詢和中斷兩種方式。查詢方式數(shù)據(jù)只能分批進行傳送,實時性不高,且對系統(tǒng)資源的占用比較大。以中斷方式實現(xiàn)的串口通信,通常的處理方式是對Matlab提供的instrcallback回調函數(shù)進行修改,采用事件驅動的方式,達到實時處理下位機傳送數(shù)據(jù)的目的。但是采用Matlab的事件和回調函數(shù)機制編程要相對復雜一些,在對instreallback函數(shù)進行修改和備份等操作時容易出錯且比較麻煩。另外,每次修改instreallbaek函數(shù)后都要重新啟動Matlab,可能會導致數(shù)據(jù)丟失等一些不必要的麻煩。將事件驅動函數(shù)寫入GUI組件的M文件中,可以減少綰程的復雜性,避免一些不必要的麻煩,實現(xiàn)串口之間的實時通信。
4.2 設備控制工具箱介紹
    Matlab設備控制工具箱主要是提供Matlab軟件與各種智能儀器的直接通信功能。工具箱提供了以下功能:
    ①支持串行接口(RS-232/RS-422/RS-485)、GPIB接口(IEEE 488)等通信協(xié)議。
    ②支持IVI、VXI plug&play和Matlab設備驅動(instrument drivers),不需要學會寫與設備相關的指令即能與儀器直接聯(lián)通。
    ③傳輸?shù)臄?shù)據(jù)可以是文本或二進制的(數(shù)字的)。
    ④支持同步和異步(有阻塞或無阻塞)通信。
    ⑤支持基于事件的通信。
    ⑥新的TMTOOL圖形用戶接口不僅能夠連接儀器、接收/發(fā)送數(shù)據(jù),而且可以自動生成M代碼文件,以加入編寫的Matlab程序中。

5 基于Matlab GUI查詢方式實現(xiàn)異步串行通信
   
基于Matlab查詢方式的非實時串口通信雖然編程簡單,對數(shù)據(jù)的調用處理也更為容易,但是只能接收一個過程的數(shù)據(jù),這在對實時性要求較高的系統(tǒng)中往往不能滿足設計者的需求。以下為部分通信程序代碼。
   
   

6 基于Matlab中斷方式實現(xiàn)實時串行通信
   
事件驅動方式的優(yōu)點是程序響應及時,可靠性高。在Matlab環(huán)境下實現(xiàn)實時通信的中斷方式,實際上就是采用事件驅動的方式實現(xiàn)的,類似于VB語言MSComm控件中OnComm事件的實現(xiàn)方法。當串口上監(jiān)視到緩沖區(qū)有指定字節(jié)數(shù)目的數(shù)據(jù)可用(bytes-available event),串口接收到的數(shù)據(jù)長時間處于非激活狀態(tài)(break-interrupt event),串行口引腳狀態(tài)改變(pin-status event)或輸出緩沖區(qū)為空(output empty eve nt)等事件發(fā)生時,Matlab會自動調用回調函數(shù)進行通信事件的處理。因此,事件驅動實質上是一種中斷機制,而回調函數(shù)實質上相當于一個中斷服務子程序。Matlab端實時串行通信的程序流程如圖4所示。以下為兩種不同的方式實現(xiàn)實時通信的中斷機制程序。


6.1 將中斷服務子程序寫入GUI組件的部分M文件代碼
   
主程序創(chuàng)建串口設備對象、設置串口設備屬性及打開串口等初始化操作的代碼與查詢方式下的初始化代碼相同:
   
   
6.2 通過調用修改后的instroallback.m文件實現(xiàn)中斷
   
主程序:
   
    修改instreallback(obj,evenlt)回調函數(shù),instrcallback.m文件包含了Matlab提供的回調函數(shù)程序模板,設計者可以根據(jù)需要自行添加相應的服務程序代碼。Matlab安裝目錄下有兩個instrcallback.m文件,只需要修改\MATLAB\toolbox\matlab\iofun\@instrument目錄下的instrcallback.m文件即可。另外,在修改instrcallback.m文件之前,最好對其做一個備份。在修改了instrcallback(obj,event)回調函數(shù)后,需要對其進行保存,重新啟動Matlab配置該文件,才使修改后的函數(shù)生效。


    圖5為以下方式實現(xiàn)的智能車啟動過程速度的實時顯示,修改后的instrcallback.m文件主要程序代碼如下:
   
    實驗證明,基于Matlab事件驅動實現(xiàn)的智能車與上位機的實時串口通信可以很好地滿足智能車調試過程中的需要,且將中斷服務子程序寫入GUI組件和修改instrcallback.m文件兩種方式的通信都穩(wěn)定可靠。

結語
   
在Matlab環(huán)境下兩種實現(xiàn)智能車與PC機實時通信的中斷機制都能實時穩(wěn)定地進行數(shù)據(jù)傳輸,不過將中斷服務子程序寫入GUI組件的方式編程簡單,數(shù)據(jù)處理方便,實現(xiàn)更為容易,開發(fā)效率相對得到了較大的提高。實踐證明,采用這種方法是可行的,它不但能夠應用于本文的智能車系統(tǒng),也可廣泛應用在其他具有串口通信能力的儀器設備中。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

上海2025年7月28日 /美通社/ -- 在世界人工智能大會(WAIC)期間,榮耀正式發(fā)布自研多模態(tài)感知大模型——MagicGUI大模型。作為榮耀推出的首個GUI開源大模型...

關鍵字: GUI MAGIC 開源 模型

交流電(AC)電源幾乎用于所有的住宅、商業(yè)和工業(yè)需求。但是交流電最大的問題是它不能儲存起來以備將來使用。交流電被轉換成直流電,然后直流電被儲存在電池和超級電容器中。現(xiàn)在,每當需要交流時,直流又被轉換成交流電來運行基于交流...

關鍵字: 逆變器 MATLAB MOSFET

在現(xiàn)代科學計算和工程應用中,矩陣求逆是一項基礎而重要的任務。然而,對于大型矩陣,如90000×90000的規(guī)模,直接求逆不僅計算量大,而且容易遇到性能瓶頸。MATLAB,作為一款強大的數(shù)值計算軟件,雖然提供了豐富的矩陣運...

關鍵字: MATLAB 矩陣

在現(xiàn)代計算領域中,MATLAB和FPGA是兩種非常重要的工具。MATLAB以其強大的數(shù)學計算能力和豐富的工具箱,成為算法設計和驗證的首選平臺。而FPGA,作為一種可以被編程來執(zhí)行特定任務的硬件,具有高度的靈活性和強大的并...

關鍵字: MATLAB FPGA

基礎設施作為代碼(IaC),是一種用代碼定義基礎設施元素的實踐。這與通過GUI(圖形用戶界面)來實現(xiàn)它相反,例如,AWS控制臺。其思想是,為了具有確定性和可重復性,云基礎設施必須在一個基于用編程語言表達的模型的抽象描述中...

關鍵字: IaC GUI

【2024年3月7日,德國慕尼黑訊】在競爭激烈的全球半導體市場,制造商一直在努力縮短產(chǎn)品上市時間。同時,他們對流暢、高分辨率圖形顯示器的需求也在日益增長。為了滿足這些市場需求,英飛凌科技股份公司(FSE代碼:IFX /...

關鍵字: MCU GUI 圖形顯示器

一直以來,EDA都是大家的關注焦點之一。因此針對大家的興趣點所在,小編將為大家?guī)鞥DA軟件的相關介紹,詳細內容請看下文。

關鍵字: EDA SPICE MATLAB

本文利用Matlab GUI設計通過串口進行數(shù)據(jù)發(fā)送和接收的界面,并利用內置于Matlab的串口通信API實現(xiàn)串口數(shù)據(jù)發(fā)送與接收功能。

關鍵字: matlab GUI 串口通信

評估板(EVB)及其配套軟件具有即插即用功能,可輕松評估ADI產(chǎn)品的性能。其圖形用戶界面(GUI)提供了直觀的方式,可進行手動配置并與該設備通信。但是,在更復雜的產(chǎn)品中,如果不能自動處理這些重復性任務,那么在評估所有可用...

關鍵字: ADI Python MATLAB
關閉