999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Matlab GUI的上位機與智能車的兩種實時通信※*

2012-08-27 08:32:54蔣超劉新曾義和
單片機與嵌入式系統應用 2012年12期
關鍵詞:單片機智能

蔣超,劉新,曾義和

(湘潭大學 材料與光電物理學院,湘潭411105)

引 言

在以速度決定優劣的飛思卡爾智能車比賽中,任何因素都可能影響小車的運行。為了滿足對小車在賽道中各種狀態精確分析的需求,上位機的數據采集與處理要求通信波特率高、信號傳輸穩定、不丟包、數據處理量大、數據處理及時等。在基于Matlab環境下的串口通信中,查詢方式下的非實時串行通信技術對實時性要求很高的智能車通信有很大的局限性。而在目前普遍采用的中斷機制下的通信雖然可以滿足實時性的需要,卻需要修改Matlab自帶的instrcallback回調函數。程序調試過程中修改了回調函數后,需要重新啟動Matlab才能使得新的回調函數文件生效。由此可以看出,其操作復雜易出錯,且instrcallback函數接收到保存在工作空間的數據不能被GUI組件的函數實時調用。故此方式在需要對多組數據進行分別作圖分析時,往往生成多個零散圖形窗口。為了滿足智能車的實時通信需求,同時使基于Matlab GUI的通信界面更加簡潔,本文提出了一種將事件中斷函數寫入GUI組件函數中的方式。

Matlab是由美國Mathworks公司開發的面向理論分析研究及工程設計處理和繪圖的一套具有強大功能的軟件系統。Matlab運行穩定、可靠,使用方便,是廣大科研人員進行科學研究的得力助手。從Matlab6.0版本開始,Mathworks公司在軟件中增加了設備控制箱(instrument control toolbox),提供了對RS-232/RS-485通信標準的串口通信的正式支持。Matlab GUI(Graphic User Interface)是內置于Matlab的進行圖形界面開發的模塊。本文主要介紹在Matlab GUI環境下,上位機與智能車進行實時通信的辦法。該方法較之使用VC/VB高級語言編程,大大縮減了開發時間,提高了開發效率。另外,較之傳統的RS-232接口,使用藍牙接口能夠更大范圍地全方位進行數據傳輸和采集。實驗結果表明,經過兩次握手處理后數據傳輸實時穩定,具有很強的實用性。

1 系統總體設計方案

系統采用飛思卡爾MC68HCS12G128單片機作為智能車的控制器,PC機為上位機。利用Matlab GUI構建起二者的實時通信、數據處理和繪圖等平臺。整個系統的原理框圖如圖1所示,介紹了基于Matlab的GUI和串口通信機制下建立上位機與智能車實時通信和作圖的平臺方法。

圖1 系統原理框圖

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

2 Matlab GUI設計介紹

②點擊Blank GUI(Default)選項并點擊OK 按鈕,完成新建Blank GUI。

③在新建的Blank GUI界面的右方菜單中添加設計所需要的元素,完成串口通信及數據實時顯示等功能的GUI界面設計。

④編寫GUI組建相應的響應控制代碼,運行后的通信仿真界面如圖2所示。

3 單片機與PC機串行通信

3.1 設計思想

圖2 響應后的Matlab GUI通信仿真界面

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

圖3 智能車控制器通信程序總流程圖

3.2 系統藍牙串口通信主要代碼

4 基于Matlab GUI的PC機與智能車的通信

4.1 Matlab GUI基礎上實現串口通信的軟件設計

在Matlab環境下,讀取串口數據有查詢和中斷兩種方式。查詢方式數據只能分批進行傳送,實時性不高,且對系統資源的占用比較大。以中斷方式實現的串口通信,通常的處理方式是對Matlab提供的instrcallback回調函數進行修改,采用事件驅動的方式,達到實時處理下位機傳送數據的目的。但是采用Matlab的事件和回調函數機制編程要相對復雜一些,在對instrcallback函數進行修改和備份等操作時容易出錯且比較麻煩。另外,每次修改instrcallback函數后都要重新啟動Matlab,可能會導致數據丟失等一些不必要的麻煩。將事件驅動函數寫入GUI組件的M 文件中,可以減少編程的復雜性,避免一些不必要的麻煩,實現串口之間的實時通信。

4.2 設備控制工具箱介紹

Matlab設備控制工具箱主要是提供Matlab軟件與各種智能儀器的直接通信功能。工具箱提供了以下功能:

①支持串行接口(RS-232/RS-422/RS-485)、GPIB接口(IEEE 488)等通信協議。

②支持IVI、VXI plug &play 和Matlab 設備驅動(instrument drivers),不需要學會寫與設備相關的指令即能與儀器直接聯通。

③傳輸的數據可以是文本或二進制的(數字的)。

④支持同步和異步(有阻塞或無阻塞)通信。

⑤支持基于事件的通信。

⑥新的TMTOOL 圖形用戶接口不僅能夠連接儀器、接收/發送數據,而且可以自動生成M 代碼文件,以加入編寫的Matlab程序中。

5 基于Matlab GUI查詢方式實現異步串行通信

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

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

6.1 將中斷服務子程序寫入GUI組件的部分M 文件代碼

主程序創建串口設備對象、設置串口設備屬性及打開串口等初始化操作的代碼與查詢方式下的初始化代碼相同:

圖4 Matlab端實時串行通信流程圖

6.2 通過調用修改后的instrcallback.m 文件實現中斷

主程序:

修改instrcallback(obj,event)回調函數,instrcallback.m 文件包含了Matlab提供的回調函數程序模板,設計者可以根據需要自行添加相應的服務程序代碼。Matlab安裝目錄下有兩個instrcallback.m 文件,只需要修改 \MATLAB\toolbox\matlab\iofun\@instrument目錄下的instrcallback.m 文件即可。另外,在修改instrcallback.m文件之前,最好對其做一個備份。在修改了instrcallback(obj,event)回調函數后,需要對其進行保存,重新啟動Matlab配置該文件,才使修改后的函數生效。

圖5為以下方式實現的智能車啟動過程速度的實時顯示,修改后的instrcallback.m 文件主要程序代碼如下:

圖5 智能車啟動過程速度實時顯示

實驗證明,基于Matlab事件驅動實現的智能車與上位機的實時串口通信可以很好地滿足智能車調試過程中的需要,且將中斷服務子程序寫入GUI組件和修改instrcallback.m 文件兩種方式的通信都穩定可靠。

結 語

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

編者注:本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。

[1]Matlab.Instrument Control Toolbox User's Guide,2011.

[2]求是科技.MATLAB7.0從入門到精通[M].北京:人民郵電出版社,2006:356-358.

[3]向先波,徐國華,張琴.Matlab環境下PC機與單片機的串行通信及數據處理[J].單片機與嵌入式系統應用,2004(12):27-31.

猜你喜歡
單片機智能
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
智能制造 反思與期望
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
智能制造·AI未來
商周刊(2018年18期)2018-09-21 09:14:46
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
主站蜘蛛池模板: AV老司机AV天堂| 久久久精品无码一二三区| 四虎永久免费在线| 国产女同自拍视频| 国产成人综合日韩精品无码首页 | 91精品久久久久久无码人妻| 91在线高清视频| 久久国产精品麻豆系列| 成年人视频一区二区| 2022精品国偷自产免费观看| 无码福利日韩神码福利片| 国产欧美日韩在线一区| 亚洲资源站av无码网址| 广东一级毛片| www亚洲精品| 日本亚洲欧美在线| 激情乱人伦| 九九视频免费在线观看| 在线中文字幕网| 午夜天堂视频| 国产成人艳妇AA视频在线| 不卡无码h在线观看| 国内毛片视频| 97在线免费| 国产在线欧美| 亚洲一级毛片免费看| 国产流白浆视频| 凹凸国产熟女精品视频| 欧美亚洲一区二区三区导航 | 国产精品吹潮在线观看中文| 国产一区二区三区在线观看免费| 亚洲AⅤ波多系列中文字幕| 99在线观看免费视频| 婷婷开心中文字幕| 91色在线观看| 波多野结衣无码AV在线| 亚洲人视频在线观看| 日本欧美一二三区色视频| 成人午夜网址| 欧美劲爆第一页| 国产资源站| 欧美不卡视频一区发布| 久久婷婷综合色一区二区| 国产永久在线观看| 亚洲天堂网站在线| 五月婷婷中文字幕| 色偷偷一区二区三区| 特级毛片8级毛片免费观看| 91精品国产丝袜| 亚洲成a人片在线观看88| 人人91人人澡人人妻人人爽| 亚洲av无码人妻| 2021国产乱人伦在线播放| 777国产精品永久免费观看| 精品视频91| AV无码无在线观看免费| 亚洲第一天堂无码专区| 丁香五月亚洲综合在线| 欧美不卡视频在线| 欧美中文字幕无线码视频| 狠狠v日韩v欧美v| 国产午夜在线观看视频| 免费在线成人网| 欧美久久网| 四虎在线观看视频高清无码| 成年人午夜免费视频| 99免费视频观看| 在线免费观看AV| 亚洲天堂视频在线播放| 黄色三级毛片网站| 青青草国产在线视频| 国产日本欧美在线观看| 国产97色在线| 亚洲第一成年免费网站| 亚洲综合18p| 无码福利视频| 在线免费无码视频| 男人天堂伊人网| 嫩草在线视频| 天天色综合4| 亚洲男人的天堂在线| 日本中文字幕久久网站|