談?wù)勲妱娱y門性能檢測系統(tǒng)的實時通訊設(shè)計與實現(xiàn)(3)
3.1 通訊協(xié)議
(1) 一楨數(shù)據(jù)由1 位起始位, 8 位數(shù)據(jù)位、1位校驗位、1 位停止位共11 位組成。
(2) 波特率為9 600 bps。電動裝置測試系統(tǒng)的單片機的串口選用UART0 進行數(shù)據(jù)的發(fā)送和接收, 為了得到準確的波特率, ARM 單片機采用振蕩頻率為111059 2 MHz 的晶振。PC 機串口波特率通過VB 通訊控件MSComm 的Setting 屬性設(shè)置, 為保證數(shù)據(jù)傳輸?shù)臏蚀_性, 兩者的波特率必須一致。
(3) 系統(tǒng)采用異步通訊方式, 上位機通過令牌傳遞總線(token - passing bus) 方式與遠程單元進行通訊〔2〕。PC 機發(fā)送的信息為固定4 個字節(jié)。第1 個字節(jié)和第2 個字節(jié)分別為起始標志符和遠程單元的具體地址號, 第3 個字節(jié)表示發(fā)送的是令牌還是命令, 第4 個字節(jié)為結(jié)束標志符。
(4) 遠程單元接收到令牌后, 對照令牌的地址號與本單元地址進行判斷, 得知令牌是本單元的, 此時總線處于接收數(shù)據(jù)狀態(tài)。此單元開始發(fā)送信息, 發(fā)送的信息共158 個字節(jié)。第1 個字節(jié)和第2 個字節(jié)分別表示起始標志符和命令符, 第3 個字節(jié)表示數(shù)據(jù)個數(shù), 第4 個到第157 個字節(jié)表示采集的測試數(shù)據(jù), 第158 個字節(jié)表示結(jié)束標志符。如果地址不符, 則將令牌轉(zhuǎn)發(fā)到下一單元〔3〕。其通訊方式如圖3 所示。
3.2 遠程單片機控制系統(tǒng)的串行通訊程序設(shè)計
遠程ARM 單片機采用中斷方式進行數(shù)據(jù)接收, 基于軟件ADS112 編程與上位機進行通訊, 上位機通訊子程序流程圖以及下位機中斷子程序流程圖分別如圖4 和圖5 所示。
控制中心上位PC 機始終在循環(huán)發(fā)送令牌, 當遠程單元接收到與本機地址相同的令牌時, 置接受數(shù)據(jù)標志, 接收到自己的令牌后, 遠程單元開始上傳數(shù)據(jù)到上位PC 機, 與此同時PC 機停止發(fā)送令牌并處于接收數(shù)據(jù)狀態(tài), 等到接收數(shù)據(jù)完畢并檢驗數(shù)據(jù)合格后發(fā)送確認命令到此遠程單元, 如果沒收到數(shù)據(jù)或數(shù)據(jù)不合格發(fā)送錯誤標志到此遠程單元。如果收到的令牌與本機地址不同時, 程序返回中斷入口處, 繼續(xù)執(zhí)行其它操作。這樣可保證遠程單元把數(shù)據(jù)準確地發(fā)送到上位機PC 機。
3.3 上位PC 機串行通訊程序設(shè)計方法
上位機利用VB 610 進行編程, 用VB 610 開發(fā)串行通訊程序普遍采用兩種方法: 一種是利用Windows 的API 函數(shù); 另一種是采用VB 的通訊控件MSComm。利用API 函數(shù)編寫串行通訊程序較為復(fù)雜, 需要調(diào)用許多繁瑣的API 函數(shù), 而VB610 的MSComm 通訊控件提供了標準的事件處理函數(shù)、事件和方法, 用戶不必了解通信過程中的底層操作和API 函數(shù)〔4〕, 從而比較容易、高效的實現(xiàn)了串口通信。
控件提供了兩種功能完善的串口數(shù)據(jù)接收和發(fā)送功能: 一種是查詢法, 通過Com2mEvent 的值來輪詢(polling) 事件和通訊狀態(tài),可以使用定時器和DO .Loop 程序來實現(xiàn); 另一種是事件驅(qū)動法( Event - driven) , 利用MSComm 控件OnComm 事件來捕獲串口通訊錯誤或事件, 并在OnComm 事件中編寫程序進行相應(yīng)的處理〔5〕。本軟件系統(tǒng)采用了定時器來發(fā)送令牌以及接收遠程單片機的回執(zhí)信息, 使PC 機作出更快的反應(yīng)。
軟件采用定時器Timer1 控件來實現(xiàn)令牌的循環(huán)發(fā)送。其中設(shè)置定時器響應(yīng)一次的時間為10ms( Timer11Internal = 10) 。
3.4 下位機ARM2210 系列單片機串行通訊程序設(shè)計方法
下位機利用軟件ADS112 進行編程, 此軟件是專為ARM 單片機開發(fā)的一種軟件, 其語言類似于C 語言, 有很好的應(yīng)用性。
4 結(jié)語
該系統(tǒng)應(yīng)用在對遠程設(shè)備的在線監(jiān)測, 其通訊網(wǎng)絡(luò)部分運行平穩(wěn), 數(shù)據(jù)傳輸誤碼率低, 傳輸速度符合要求, 效率高, 操作簡單, 組網(wǎng)方便, 滿足生產(chǎn)現(xiàn)場的數(shù)據(jù)檢測和控制要求。該系統(tǒng)可廣泛應(yīng)用于高精度的工業(yè)測控和數(shù)據(jù)采集等領(lǐng)域中。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。