新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于狀態機的串口通信協議的研究設計

        基于狀態機的串口通信協議的研究設計

        作者: 時間:2013-10-14 來源:網絡 收藏


        線程類創建好后,應具體編寫TBufferThread線程類成員函數Execute的處理過程,其算法流程圖如圖3所示。

        依據流程圖,編寫代碼如下:

        數據包的接收進度依據于狀態指示變量sp。當數據接收順利時,sp的變化將會引導完成一個數據包的接收過程,這樣處理可以簡化編程的模型,使協議易于實現;數據包接收過程中,一旦發現數據傳輸出錯,立即將sp置為0(空閑狀態),也就是狀態復位,使系統進入準備接收下一個數據包的狀態,這樣可提高通信過程的可靠性及容錯能力。

        為檢驗測試串通信協議的合理性及可靠性,將其應用到某稱重儀表的上位機通信中,其上位機程序主界面如圖4所示。程序主界面的點陣字體顯示的是由下位機傳送的質量數據,而正中間顯示的是由下位機上傳的A/D數據形成的曲線,最下方顯示的是對接收的數據處理的狀態指示。經過大量測試表明,本串口通信協議設計合理,可靠性較高。


        4 結論

        文中主要介紹串口通信協議的設計與實現,其中包括數據包格式的定義、通信狀態機的設計以及協議的實現,并將此協議應用到某稱重儀表的上位機通信中。串口通信中引入狀態機方法,便于解決幀同步問題,使協議易于實現,同時增加了系統的穩定性與可靠性。因此,可廣泛用于各類儀器儀表、工業控制領域中,具有一定的實用價值。


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 霸州市| 永年县| 平顶山市| 潜山县| 花莲市| 温泉县| 大关县| 长泰县| 本溪市| 酉阳| 曲沃县| 上饶县| 乌苏市| 大理市| 灵石县| 阿鲁科尔沁旗| 高密市| 庄河市| 沙河市| 琼结县| 施秉县| 筠连县| 吉安县| 阿城市| 蚌埠市| 环江| 古浪县| 连平县| 鄂托克前旗| 龙门县| 芮城县| 垦利县| 石林| 广宁县| 城步| 老河口市| 通渭县| 顺义区| 南陵县| 汤阴县| 昌宁县|