RSR32串行端口通信數(shù)據(jù)采集工具的設計與實現(xiàn)
隨著電子技術的不斷發(fā)展,通過實現(xiàn)各種端日傳輸數(shù)據(jù)的檢測和控制,就可以準確的判斷和分析問題,從而找到解決問題的方法。本文以目標系統(tǒng)下兩個獨立具有數(shù)據(jù)通信往來模塊為對象,通過該工具使得兩個獨立模塊之間不直接相連,而是通過工具轉接,從而可以觀察目標系統(tǒng)通信情況,進而為判斷系統(tǒng)中的獨立模塊工作是否正常提供依據(jù)。
1 工具設計與實現(xiàn)
1.1 設計框圖
如圖1所示,TARGET1和TARGET2為目標系統(tǒng)下兩個獨立具有數(shù)據(jù)通信往來的模塊,A和B為兩個端口,此兩端口沒有差異,無論何時,從A端口接收到數(shù)據(jù)則立即通過B端口發(fā)送出去,反之亦然。A和B端口收發(fā)數(shù)據(jù)采用何種協(xié)議和格式,由程序運行的配置文件決定。本系統(tǒng)中,TARGET1和TARGET2無法直接進行數(shù)據(jù)往來,而是通過工具轉接,借助端口A和B進行數(shù)據(jù)傳遞,從而可以觀察目標系統(tǒng)的通信情況。
1.2 詳細設計
該工具的主程序包括端口參數(shù)配置文件、端口數(shù)據(jù)循環(huán)處理、文件存取等程序,主要通過配置服務端口和客戶端口參數(shù),然后轉接到文件中,從而得到通信數(shù)據(jù)。主函數(shù)如下:
1.3 測試過程
1)運行SocketTool.exe,設置為服務端,數(shù)據(jù)收發(fā)窗口如圖2所示。簡化的工具欄只有3個功能按鈕:“創(chuàng)建”“刪除”“退出”;操作窗口左側為端口的傳輸控制協(xié)議和用戶數(shù)據(jù)報協(xié)議的設置欄,鼠標雙擊對應名稱列表或通過右擊對應名稱列表彈出菜單設置,就可以對數(shù)據(jù)收發(fā)的服務器進行端口設置。操作窗口右側上部顯示Socket狀態(tài);中部顯示接收數(shù)據(jù)流;下部顯示發(fā)送的數(shù)據(jù)和重復次數(shù)。同時勾選底部顯示十六進制值功能,也可以對發(fā)送和接收的數(shù)據(jù)轉換成對應的ASCII碼。
2)運行SocketTool.exe,設置為客戶端,如圖3所示??蛻舳丝谠O置與服務端口設置基本一致,設置主窗口一致,通過Socket狀態(tài)進行區(qū)分。
3)通過主窗口對參數(shù)進行配置之后,可以生成配置文件并保存。需要修改服務端或客戶端參數(shù)時,可以通過主界面進行修改,也可以通過直接修改配置參數(shù)文件完成。打開param.cfg文件,如圖4所示,配置過程及參數(shù)修改非常簡單。
4)運行后臺控制文件dualport.exe,如圖5所示,方便觀察服務端口和客戶端口直接的數(shù)據(jù)傳遞信息觀察信息包括傳遞的來源、目的、時間、內容等。
5)測試結果??蛻舳薙ocketTool.exe發(fā)送數(shù)據(jù),則數(shù)據(jù)通過dualport.exe-轉發(fā)到服務端的SocketTool.exe。再使用服務端SocketTool.exe發(fā)送數(shù)據(jù),則數(shù)據(jù)通過dualport.exe轉發(fā)到客戶端SocketTool.exe。圖6所示Bridge.log中記錄了所有經過的數(shù)據(jù)。
2 結束語
該工具作為一種輔助手段,特別在某些地方不具有某些環(huán)境時,可以幫助收集數(shù)據(jù),同時不影響系統(tǒng)中各個獨立模塊的工作,也不影響系統(tǒng)中模塊的整體性。如果通信數(shù)據(jù)的時序(比如某些數(shù)據(jù)包之間的時間相差太大,或者太小等)有問題,或數(shù)據(jù)出錯等等,該工具可以幫助排除問題。該工具用于在兩個通信端口可以是RS232串口,網絡套接字sock et,甚至可以是并口,USB等。