互聯網技術
責任編輯:delgedelge
2012-04-06
摘要:問題及解決串口服務器測試過程中,有時會出現TCP到RTU發送時數據包錯誤,不能正確地將TCP數據轉換為RTU數據。原因在于,測試過程中,Windows下的PC終端向Linux工控板發送數據,但是Windows的實時性并不很好,不能及時地發送數據,有時會出現一次發送兩包數據給串口服務器的現象;另外,工控板中Linux下的TCP/IP協議剪裁封裝不是很完
問題及解決
串口服務器測試過程中,有時會出現TCP到RTU發送時數據包錯誤,不能正確地將TCP數據轉換為RTU數據。
原因在于,測試過程中,Windows下的PC終端向Linux工控板發送數據,但是Windows的實時性并不很好,不能及時地發送數據,有時會出現一次發送兩包數據給串口服務器的現象;另外,工控板中Linux 下的TCP/IP協議剪裁封裝不是很完善,導致其接收處理數據的能力比較差。
當多幀數據同時到達時,串口服務器未能正確將后一幀數據發送出去,而把一幀數據分割到兩幀,導致數據幀錯誤。這就是發生上述數據完全錯誤的原因。這時,需要給串口服務器添加數據的分幀處理 功能,在接收到數據時,先判斷數據幀是否是有效數據幀,確保每次發送的數據都能是完整的一幀,不會出現數據幀錯位,而導致數據的完全錯誤。
本文小結
本文的目標是在以AT91RM9200芯片構建的Multibus-CPU開發板上實現串口服務器功能。該串口服務器應用Modbus相關協議,將傳統的以RS485/232串口通信設備接入工業以太網,實現上位機和設備之間的 信息交互。本串口服務器程序已經能夠在開發板上正確運行。
[1] [2] [3]
溫馨提示:因考試政策、內容不斷變化與調整,本網站提供的以上信息僅供參考,如有異議,請考生以權威部門公布的內容為準!