当前位置: 首页 > news >正文

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

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

  • 问题说明
  • 解决方案
  • 方案三具体操作流程
    • 网上教程
    • 软件安装
    • 拓扑图
    • 准备工作
    • com2tcp和tcp2com操作
    • 使用串口助手进行验证
  • 方案三存在的问题
    • 数据错误
    • 通讯延时

问题说明

最近想进行串口通讯的一个测试,一开始在一台电脑上使用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这个媒介,多了一道程序,在这个环节中产生了较大的延迟。

相关文章:

  • 【运维实战】Rsync将一台主Web服务器上的文件和目录同步到另一台备份服务器!
  • ES海量数据更新及导入导出备份
  • 你工作中涉及的安全方面的测试有哪些怎么回答
  • 第6篇:中间件 SQL 重写与语义分析引擎实现原理
  • 瀚文(HelloWord)智能键盘项目深度剖析:从0到1的全流程解读
  • Ubuntu24.04 交叉编译 aarch64 ffmpeg
  • 旅游微信小程序制作指南
  • 高并发区块链系统实战:从架构设计到性能优化
  • 华为VanillaNet遇上BiFPN:YOLOv8的性能突破之旅
  • `<CLS>` 向量是 `logits` 计算的“原材料”,`logits` 是基于 `<CLS>` 向量的下游预测结果
  • Python爬虫:trafilatura 的详细使用(高效的网页正文提取工具)
  • stress 服务器压力测试的工具学习
  • MySQL范式和反范式
  • 深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
  • LeetCode 3370.仅含置位位的最小整数
  • 42、响应处理-【源码分析】-浏览器与PostMan内容协商完全适配
  • 面试题小结(真实面试)
  • Elasticsearch中的语义搜索(Semantic Search)介绍
  • Go语言学习-->项目中引用第三方库方式
  • Zookeeper 集群部署与故障转移
  • 定制网站建设多少钱/小程序制作
  • 住房城乡建设委(房管局)官方网站/免费发链接的网站
  • 客服电话/网店seo名词解释
  • 网站开发过程的需求分析/如何做外贸网站的推广
  • 正规的郑州网站建设/产品网络推广方案
  • 深圳网站空间/seo网络推广有哪些