| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 串口和TCP互相转发工具 -> 正文阅读 |
|
[网络协议]串口和TCP互相转发工具 |
由于项目调试需求,代码在远程服务器的虚拟机上,在本地计算机通过串口连接需要对接的设备,在远程服务器的上位机程序需要和此设备进行对接,系统结构如图1所示。 图1 系统网络结构图 如何将本地的串口共享给远程服务器上的虚拟机里面的上位机程序呢?远程服务器开启了内网穿透,使用的SAKURA FRP,感兴趣的可以自己摸索下,很好用的。我直接穿透的远程桌面,而远程桌面可以将本地计算机的串口共享到远程服务器,如图2所示: 图2 通过远程桌面共享端口 假设本地计算机的串口如图3所示,经过远程桌面共享后在远程服务器上就会多出一些串口出来,表示的就是本地计算机共享过来的串口,串口号一般和本地计算机的相同,但是在远程服务器的设备管理器中是显示不出来共享过来的串口的,用串口调试助手等软件可以看到,如图4所示。 图3 本地计算机的串口 图4 本地计算机串口映射到远程服务器后的串口 现在差最后一步,将远程服务器的串口共享给虚拟机就可以了,用的是VMWare虚拟机,通过给虚拟机添加串口就可以实现,设置如图5所示。 图5 虚拟机共享串口 但在实际使用的过程中发现虚拟机中的上位机并不能很好的和设备连接,可能是速度的问题或者是数据流转换的问题,总之不成功。但直接放到远程服务器上运行上位机是可以的(不在虚拟机上运行上位机),由于上位机开发环境在虚拟机上,还需要想想办法将远程服务器上的串口共享给虚拟机。 开始查找是否有满足要求的工具软件,其中用的较多的是将串口转换成网络数据,到目的地后再将网络数据转为串口。其中有人科技的工具可以建立一个虚拟串口和网络端口的映射,很方便,如图6所示。 图6 有人的虚拟串口软件 用有人的这个虚拟串口软件,我在虚拟机上就可以很方面的搭建一个虚拟串口,只要在远程服务器上搭建一个物理串口到虚拟机TCP8222端口的透明TCP连接就可以了,但有人的不支持物理串口转发,还需要查找串口到TCP服务器的转发软件才可以。 经过搜索,这个网页Best Serial to Ethernet solutions on the market列出了可选的方案,Serial to Ethernet Connector是用的比较多的,因此下载测试了一下,用其他串口,包括虚拟串口Serial to Ethernet Connector都能正常工作,但是对于这样远程桌面共享过来的串口却怎么都打不开,如图7所示。 图7 共享过来的串口无法打开使用 正常的是能直接打开的,如图8所示。 图8 其他串口是可以打开使用的 而且Serial to Ethernet Connector不是免费的哦。 推荐的第2个TCP-Com,第3个Network Serial Port Kit,网站打不开,从其他地方也下载不下来,只得作罢。 第4个SERIAL-TCP/IP还可以,网站能打开,并下载安装使用了,刚开始测试效果还可以,但当发一些十六进制数时,SERIAL-TCP/IP出现了传输错误,比如发送FF A5 03 04 07,SERIAL-TCP/IP转发过来就变为:?FF 3F 04 07,猜测这可能是SERIAL-TCP/IP内存处理字符串的小Bug,如图9所示。另外,SERIAL-TCP/IP还有个小不足,检测不到虚拟串口,只能打开物理串口。 图9?SERIAL-TCP/IP转发出现错误 后面2个也是打开费劲,也没有认真去测。 为了更好地满足调试应用,自己就动手写了一个串口转TCP的小程序,基本特征如下: 1、支持打开物理串口和虚拟串口(不创建虚拟串口,但能打开其他工具创建的虚拟串口)。 2、支持通过TCP客户端连接到远程TCP服务器。 3、支持TCP客户端自动重连,并可配置重连周期。 4、支持TCP服务端监听,支持接入一个TCP连接,不支持多个TCP连接同时接入。 5、支持日志跟踪功能。 6、支持日志自动清空功能,并能配置。 7、支持日志暂停显示功能。 8、支持通信计数功能。 9、支持通信计数手动清零功能。 10、支持配置自动保存功能,软件下次启动自动加载上次配置。 软件名字暂定为TCP2Com,界面如图10所示: 图10 TCP2Com界面 如果需要可以通过下面的链接下载: |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/27 13:00:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |