新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機和Matlab串口通信的計時器系統

        AVR單片機和Matlab串口通信的計時器系統

        作者: 時間:2013-11-12 來源:網絡 收藏

        AVR單片機和Matlab串口通信的計時器系統

        圖3 單片機主程序流程圖

        3 下位機和上位機的

          本系統下位機為單片機,信號電壓是TTL電平0~+5 V,而上位機為PC機,串口電平是RS232電平-10~+10 V。為了實現,需要經過MAX232電平轉換,才能匹配。考慮到應用的靈活性、方便性,以及多個下位機與一個上位機進行的通信,本設計在單片機和上位機之間接入ZigBee無線通信模塊,使用的是SZ05-ZigBee無線通信模塊。SZ05ZigBee無線通信模塊接線圖如圖4所示。

        AVR單片機和Matlab串口通信的計時器系統

        圖4 SZ05ZigBee無線通信模塊接線圖

          該模塊數據接口包括TTL電平接收發送接口、RS232發送接收接口,還可以按照廣播方式發送數據和按照目標地址發送數據,除可實現一般的點對點數據通信功能外,還可實現多點之間的數據通信。使用方法簡單、便利,可以大大縮短模塊的嵌入匹配時間進程。它具有通信距離遠、抗干擾能力強、組網靈活、性能可靠穩定等優點。[4]

          將SZ05ZigBee無線通信模塊CONFIG跳線短接,系統進入配置狀態。打開計算機的超級終端,超級終端的設置為:波特率38 400、數據位8、校驗NONE、停止位1、流控無。主要參數配置如下:網絡類型網——星型網;發送模式——主從模式;數據類型——HEX;數據位——8+0+1;波特率——38 400;單片機端連接的設備類型——終端設備(DEVICE跳線短接);上位機端連接的設備類型——中心節點(CENTER端口與地短接)。每個終端設備需設置自己不同的MAC_ADDR設備地址,范圍為0000~0xFFFE。主從模式下,終端設備發送數據無需目標地址,數據默認給中心節點,而中心節點發送數據則必須加上終端設備的目標地址。

          無線通信模塊在測試上電時,會自動發送一串隨機數據。為了防止干擾,自定義了一項通信協議,定義3字節數據為一幀,數據包格式為0xAABB××,在檢測到數據頭AA BB時,才接收數據,保證接收到數據的準確性。

        4 基于 GUI的串口通信和計時器的實現

        4.1 對串口RS232的編程

          從6.0版本開始,軟件中增加了設備控制箱功能,提供了對RS232/RS485通信標準的串口通信的正式支持。利用該工具箱的串口類及fopen、fread等函數,能可靠地進行實時串行通信。[5]

          從建立串口通信到結束串口通信的完整流程包括以下幾個步驟[6]:

        ① 為應用程序創建串口對象。實現該功能的函數為obj=serial(“port”,“PropertyName”, PropertyValue,…)。其中,參數port為完整的串口名稱,如COMl;PropertyName為串口通信參數,如baudrate、startbits等。

        ② 連接打開串口。其函數為fopen(obj)。

        ③ 設置或者修改串口通信參數。在能夠有效地進行串口通信前,必須設置正確的串口通信參數。實現該功能的函數為props=set(obj,“PropertyName”,PropertyValue,…)。

        ④ 關閉串口以及釋放串口對象占用的存儲空間。關閉串口函數為:fclose(obj)。釋放串口對象占用的內存空間,函數為delete(obj)。釋放串口對象在Matlab工作區中占用的存儲空間函數為clear obj。

          要實現自動收發數據,還需要定義串口中斷處理函數以及觸發串口中斷的方式如下:

        ① 觸發串口中斷的方式。涉及到串口讀寫的事件包括:Bytes available、Output empty。其中,Bytes available事件有兩種:一種是接收到的字符數達到人工設定的數目時,系統產生該事件;另一種是當接收到指定字符時,系統產生該事件。本文采用前一種,當接收字節數達到3時,觸發中斷。

        單片機相關文章:單片機教程


        單片機相關文章:單片機視頻教程


        單片機相關文章:單片機工作原理


        通信相關文章:通信原理


        光電開關相關文章:光電開關原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 雅江县| 东丽区| 乌兰察布市| 双流县| 卢湾区| 噶尔县| 水城县| 融水| 西充县| 公安县| 凤城市| 维西| 来凤县| 扬州市| 亚东县| 宝清县| 连山| 平顶山市| 临西县| 赤壁市| 屯门区| 绩溪县| 全南县| 酒泉市| 肥乡县| 如皋市| 临沭县| 桃源县| 垫江县| 永胜县| 安康市| 斗六市| 墨江| 洱源县| 临沧市| 安庆市| 涞水县| 吉木萨尔县| 凤阳县| 新竹县| 新龙县|