AVR單片機和Matlab串口通信的計時器系統(tǒng)
圖3 單片機主程序流程圖
3 下位機和上位機的串口通信
本系統(tǒng)下位機為單片機,信號電壓是TTL電平0~+5 V,而上位機為PC機,串口電平是RS232電平-10~+10 V。為了實現(xiàn)串口通信,需要經(jīng)過MAX232電平轉(zhuǎn)換,才能匹配??紤]到應(yīng)用的靈活性、方便性,以及多個下位機與一個上位機進行的通信,本設(shè)計在單片機和上位機之間接入ZigBee無線通信模塊,使用的是SZ05-ZigBee無線通信模塊。SZ05ZigBee無線通信模塊接線圖如圖4所示。
圖4 SZ05ZigBee無線通信模塊接線圖
該模塊數(shù)據(jù)接口包括TTL電平接收發(fā)送接口、RS232發(fā)送接收接口,還可以按照廣播方式發(fā)送數(shù)據(jù)和按照目標地址發(fā)送數(shù)據(jù),除可實現(xiàn)一般的點對點數(shù)據(jù)通信功能外,還可實現(xiàn)多點之間的數(shù)據(jù)通信。串口通信使用方法簡單、便利,可以大大縮短模塊的嵌入匹配時間進程。它具有通信距離遠、抗干擾能力強、組網(wǎng)靈活、性能可靠穩(wěn)定等優(yōu)點。[4]
將SZ05ZigBee無線通信模塊CONFIG跳線短接,系統(tǒng)進入配置狀態(tài)。打開計算機的超級終端,超級終端的設(shè)置為:波特率38 400、數(shù)據(jù)位8、校驗NONE、停止位1、流控無。主要參數(shù)配置如下:網(wǎng)絡(luò)類型網(wǎng)——星型網(wǎng);發(fā)送模式——主從模式;數(shù)據(jù)類型——HEX;數(shù)據(jù)位——8+0+1;波特率——38 400;單片機端連接的設(shè)備類型——終端設(shè)備(DEVICE跳線短接);上位機端連接的設(shè)備類型——中心節(jié)點(CENTER端口與地短接)。每個終端設(shè)備需設(shè)置自己不同的MAC_ADDR設(shè)備地址,范圍為0000~0xFFFE。主從模式下,終端設(shè)備發(fā)送數(shù)據(jù)無需目標地址,數(shù)據(jù)默認給中心節(jié)點,而中心節(jié)點發(fā)送數(shù)據(jù)則必須加上終端設(shè)備的目標地址。
無線通信模塊在測試上電時,會自動發(fā)送一串隨機數(shù)據(jù)。為了防止干擾,自定義了一項通信協(xié)議,定義3字節(jié)數(shù)據(jù)為一幀,數(shù)據(jù)包格式為0xAABB××,在檢測到數(shù)據(jù)頭AA BB時,才接收數(shù)據(jù),保證接收到數(shù)據(jù)的準確性。
4 基于Matlab GUI的串口通信和計時器的實現(xiàn)
4.1 Matlab對串口RS232的編程
從Matlab6.0版本開始,軟件中增加了設(shè)備控制箱功能,提供了對RS232/RS485通信標準的串口通信的正式支持。利用該工具箱的串口類及fopen、fread等函數(shù),能可靠地進行實時串行通信。[5]
從建立串口通信到結(jié)束串口通信的完整流程包括以下幾個步驟[6]:
① 為應(yīng)用程序創(chuàng)建串口對象。實現(xiàn)該功能的函數(shù)為obj=serial(“port”,“PropertyName”, PropertyValue,…)。其中,參數(shù)port為完整的串口名稱,如COMl;PropertyName為串口通信參數(shù),如baudrate、startbits等。
② 連接打開串口。其函數(shù)為fopen(obj)。
③ 設(shè)置或者修改串口通信參數(shù)。在能夠有效地進行串口通信前,必須設(shè)置正確的串口通信參數(shù)。實現(xiàn)該功能的函數(shù)為props=set(obj,“PropertyName”,PropertyValue,…)。
④ 關(guān)閉串口以及釋放串口對象占用的存儲空間。關(guān)閉串口函數(shù)為:fclose(obj)。釋放串口對象占用的內(nèi)存空間,函數(shù)為delete(obj)。釋放串口對象在Matlab工作區(qū)中占用的存儲空間函數(shù)為clear obj。
要實現(xiàn)自動收發(fā)數(shù)據(jù),還需要定義串口中斷處理函數(shù)以及觸發(fā)串口中斷的方式如下:
① 觸發(fā)串口中斷的方式。涉及到串口讀寫的事件包括:Bytes available、Output empty。其中,Bytes available事件有兩種:一種是接收到的字符數(shù)達到人工設(shè)定的數(shù)目時,系統(tǒng)產(chǎn)生該事件;另一種是當接收到指定字符時,系統(tǒng)產(chǎn)生該事件。本文采用前一種,當接收字節(jié)數(shù)達到3時,觸發(fā)中斷。
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
通信相關(guān)文章:通信原理
光電開關(guān)相關(guān)文章:光電開關(guān)原理
評論