基于Linux的串口服務器設計[3]

互聯(lián)網技術 責任編輯:delgedelge 2012-04-06

摘要:問題及解決串口服務器測試過程中,有時會出現(xiàn)TCP到RTU發(fā)送時數(shù)據(jù)包錯誤,不能正確地將TCP數(shù)據(jù)轉換為RTU數(shù)據(jù)。原因在于,測試過程中,Windows下的PC終端向Linux工控板發(fā)送數(shù)據(jù),但是Windows的實時性并不很好,不能及時地發(fā)送數(shù)據(jù),有時會出現(xiàn)一次發(fā)送兩包數(shù)據(jù)給串口服務器的現(xiàn)象;另外,工控板中Linux下的TCP/IP協(xié)議剪裁封裝不是很完

 

問題及解決

串口服務器測試過程中,有時會出現(xiàn)TCP到RTU發(fā)送時數(shù)據(jù)包錯誤,不能正確地將TCP數(shù)據(jù)轉換為RTU數(shù)據(jù)。

原因在于,測試過程中,Windows下的PC終端向Linux工控板發(fā)送數(shù)據(jù),但是Windows的實時性并不很好,不能及時地發(fā)送數(shù)據(jù),有時會出現(xiàn)一次發(fā)送兩包數(shù)據(jù)給串口服務器的現(xiàn)象;另外,工控板中Linux 下的TCP/IP協(xié)議剪裁封裝不是很完善,導致其接收處理數(shù)據(jù)的能力比較差。

當多幀數(shù)據(jù)同時到達時,串口服務器未能正確將后一幀數(shù)據(jù)發(fā)送出去,而把一幀數(shù)據(jù)分割到兩幀,導致數(shù)據(jù)幀錯誤。這就是發(fā)生上述數(shù)據(jù)完全錯誤的原因。這時,需要給串口服務器添加數(shù)據(jù)的分幀處理 功能,在接收到數(shù)據(jù)時,先判斷數(shù)據(jù)幀是否是有效數(shù)據(jù)幀,確保每次發(fā)送的數(shù)據(jù)都能是完整的一幀,不會出現(xiàn)數(shù)據(jù)幀錯位,而導致數(shù)據(jù)的完全錯誤。

本文小結

本文的目標是在以AT91RM9200芯片構建的Multibus-CPU開發(fā)板上實現(xiàn)串口服務器功能。該串口服務器應用Modbus相關協(xié)議,將傳統(tǒng)的以RS485/232串口通信設備接入工業(yè)以太網,實現(xiàn)上位機和設備之間的 信息交互。本串口服務器程序已經能夠在開發(fā)板上正確運行。

[1]  [2]  [3]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!

通信工程師備考資料免費領取

去領取

距離2025 通信工程師考試

還有
  • 3
  • 1
  • 2
專注在線職業(yè)教育23年

項目管理

信息系統(tǒng)項目管理師

廠商認證

信息系統(tǒng)項目管理師

信息系統(tǒng)項目管理師

!
咨詢在線老師!