新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于Matlab GUI的PC機與智能車的無線通信

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

作者: 時間:2013-12-14 來源:網(wǎng)絡(luò) 收藏
: 0px; PADDING-TOP: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">  運行后的通信仿真界面

  3 單片機與串行通信

  3.1 設(shè)計思想

  MCA8HCS12G128單片機的軟件設(shè)計需要實現(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,是則剔除相應(yīng)字節(jié),分離出有效的數(shù)據(jù),再在回送的速度、激光傳感器的數(shù)據(jù)中嵌入兩個字節(jié)的握手信號0xFF,接收到串口的數(shù)據(jù)后進行相應(yīng)的處理。控制器通信的總程序流程如圖3所示。

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

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

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

4 基于 的通信

  4.1 基礎(chǔ)上實現(xiàn)串口通信的軟件設(shè)計

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

  4.2 設(shè)備控制工具箱介紹

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

 ?、僦С执薪涌冢≧S-232/RS-422/RS-485)、GPIB接口(IEEE 488)等通信協(xié)議。

 ?、谥С諭VI、VXI plugplay和Matlab設(shè)備驅(qū)動(instrument drivers),不需要學(xué)會寫與設(shè)備相關(guān)的指令即能與儀器直接聯(lián)通。

  ③傳輸?shù)臄?shù)據(jù)可以是文本或二進制的(數(shù)字的)。

 ?、苤С滞胶彤惒剑ㄓ凶枞驘o阻塞)通信。

 ?、葜С只谑录耐ㄐ拧?/P>

數(shù)字通信相關(guān)文章:數(shù)字通信原理




關(guān)鍵詞: Matlab GUI PC機 智能車 無線通信

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉