使用Virtual Serial Port Driver+com2tcp或tcp2com進行兩臺電腦的串口通訊
- 問題說明
- 解決方案
- 方案三具體操作流程
- 網上教程
- 軟件安裝
- 拓撲圖
- 準備工作
- com2tcp和tcp2com操作
- 使用串口助手進行驗證
- 方案三存在的問題
- 數據錯誤
- 通訊延時
問題說明
最近想進行串口通訊的一個測試,一開始在一臺電腦上使用Virtual Serial Port Driver創了虛擬串口,然后兩個程序連接這個虛擬串口做通訊。
現在我希望在兩臺電腦之間進行串口通訊。
解決方案
使用兩臺電腦進行串口通訊測試,關于這種方法有以下說明:
- 不能直接拿一個雙頭usb線直接把兩個電腦連接在一起進行串口通訊,這種方法不行;
- 方案一:兩臺電腦分別連接usb轉ttl設備,兩個usb轉ttl設備連接,可以進行串口通訊,這種方法需要額外的硬件設備,拓撲圖如下所示
- 方案二:單個電腦使用usb轉ttl設備進行回環通訊,具體實現方式我沒有研究。
- 方案三:使用網線將兩個電腦連接在一起,然后使用com2tcp(tcp2com)工具將com口映射到網口,實現串口通訊。
本教程介紹方案三的具體方法。
方案三具體操作流程
網上教程
之前參閱網上的一些教程,例如教程1,教程2,他們的方法我沒有嘗試成功,而我是使用一種很奇怪的方法通訊成功了。
軟件安裝
本例使用了兩個軟件,Virtual Serial Port Driver和com2tcp,Virtual Serial Port Driver的下載地址我不記得了請大家自行尋找。
下載安裝com2tcp之后,其實包括了兩個軟件,分別是com2tcp和tcp2com,這兩個軟件在本例中都被使用。
很多教程使用的是com0com而不是Virtual Serial Port Driver來建立虛擬串口,那也是可以的。
此外,還需要任意的串口通訊助手軟件來驗證是否通訊成功。
拓撲圖
官方教程給出的拓撲圖如下所示,這種方法我沒有嘗試成功。
本例的拓撲圖,這個是我瞎試出來發現可以用,具體原理是什么有待后面補充。
此外, 我A電腦是win11,B電腦是win10,證明了這種方法在兩個系統上均可正常運行。
準備工作
- 使用一根網線將兩個電腦連接。
- 將兩個電腦的ip地址設置在同一網段,例如,我的A電腦是192.168.1.40,B電腦是192.168.1.41,兩個電腦子網掩碼都是255.255.255.0。設置ip地址的方法為:控制面板——查看網絡狀態和任務——以太網——屬性——選擇“Internet協議版本4(TCP/IP)”然后點擊屬性——然后進行設置。
com2tcp和tcp2com操作
在A電腦上,打開Virtual Serial Port Driver,創建com1和com2兩個虛擬串口,如下所示
然后,在A電腦上,雙擊打開TCP2COM軟件,然后進行如下設置,然后點擊Connect。
然后打開電腦B,雙擊打開COM2TCP軟件,進行如下設置后點擊Connect(注意這里的Remote IP是A電腦的ip地址)。
進行如上操作后,在看A電腦的Virtual Serial Port Driver,可以看到此時COM2后面有了串口通訊參數的顯示。
使用串口助手進行驗證
在A電腦上打開串口助手,端口選擇COM1,打開串口,在B電腦上打開串口助手,端口選擇COM3,打開串口,即可實現兩臺電腦的串口通訊,如下圖所示
A電腦的串口助手
B電腦的串口助手:
到此為止,使用Virtual Serial Port Driver+com2tcp(tcp2com)進行兩臺電腦的串口通訊成功實現。
方案三存在的問題
數據錯誤
我使用A電腦給B電腦發送數據時,發送的一幀數據是
0x01 0x03 0x06 0x12 0x34 0x56 0x78 0x9A 0xBC 0x69 0x43
然而收到的卻是
0x01 0x03 0x06 0x12 0x34 0x56 0x78 0x3F 0x3F 0x69 0x43
目前沒有找到原因
通訊延時
理論上來說,一幀11字節數據在15200-E-8-1
的情況下,一幀數據傳輸時間約為1ms,然而,使用這種方法實際測試,一幀數據傳輸時間約為300ms,猜測原因是這種方法由于經過了TCP/IP這個媒介,多了一道程序,在這個環節中產生了較大的延遲。