使用Virtual Serial Port Driver+com2tcp(tcp2com)进行两台电脑的串口通讯

发布于:2025-06-05 ⋅ 阅读:(17) ⋅ 点赞:(0)

问题说明

最近想进行串口通讯的一个测试,一开始在一台电脑上使用Virtual Serial Port Driver创了虚拟串口,然后两个程序连接这个虚拟串口做通讯。

现在我希望在两台电脑之间进行串口通讯。

解决方案

使用两台电脑进行串口通讯测试,关于这种方法有以下说明:

  1. 不能直接拿一个双头usb线直接把两个电脑连接在一起进行串口通讯,这种方法不行;
  2. 方案一:两台电脑分别连接usb转ttl设备,两个usb转ttl设备连接,可以进行串口通讯,这种方法需要额外的硬件设备,拓扑图如下所示

在这里插入图片描述

  1. 方案二:单个电脑使用usb转ttl设备进行回环通讯,具体实现方式我没有研究。
  2. 方案三:使用网线将两个电脑连接在一起,然后使用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,证明了这种方法在两个系统上均可正常运行。

在这里插入图片描述

准备工作

  1. 使用一根网线将两个电脑连接。
  2. 将两个电脑的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这个媒介,多了一道程序,在这个环节中产生了较大的延迟。


网站公告

今日签到

点亮在社区的每一天
去签到