掌桥专利:专业的专利平台
掌桥专利
首页

一种基于串口虚拟化的远程访问实现方法

文献发布时间:2023-06-19 16:12:48



技术领域

本发明涉及虚拟化技术领域,尤其涉及一种基于串口虚拟化的远程访问实现方法。

背景技术

近几年容器(Container)、Kubernetes等技术在数据中心、云计算、各互联网公司的业务服务中得到广泛应用,和20世纪60年代就兴起的虚拟机(Virtual Machine,VM)技术一样,容器也是一种服务虚拟化技术(Server Virtualization),但是它更加轻量,同时将焦点从Machine转移到Application,极大提高了开发、测试、生产环境部署的效率,不过其安全性和隔离性比虚拟机稍逊一筹,在一些场景下也无法完全替代虚拟机。

串口是嵌入式设备中常见的调试、通信和下载接口。通常情况下,仅仅需要在开发主机上访问该串口,可通过标准的串口线或者USB线连到串口上。在很多应用环境中,终端设备的管理、通信等接口普遍为串行接口方式,这些接口通常用于本地数据通信。随着通信网络建设的飞速发展和以太网技术的普及,更多跨网、跨地区的数据通信需求逐渐增加,传统的串口通信方式已无法适应新的用户需求和传输网络环境,但是大量的工控设备、复式终端等仍然采用串口通信方式,并且会继续使用很长时间。

发明内容

为了使这些基于串口的设备能够适应新的网络环境,本文实现了一种有效的方式就是采用虚拟串口以及串口-网络转换模块配合,实现串口设备信息的网络传输,用以解决串口终端设备的远程访问问题。

本发明的技术方案是:

一种基于串口虚拟化的远程访问实现方法,

通过网络虚拟化串口,首先要把串口虚拟化为网络端口,之后在网络中的另外一台主机上通过telnet工具直接访问该网络端口或者反过来把网络端口逆向为一个虚拟化的串口,进而通过串口的minicom工具可以访问。

如果想远程控制该设备,而该设备本身不支持网络,那么把串口接入带有网络的主机,并把串口通过网络虚拟化,成为虚拟串口,就可以正常进行串口通信了。通过网络把串口接入到更便利的开发环境;通过网络把多个串口汇聚到同一个测试环境,方便统一访问;把串口接入网络,允许多方共享同一个硬件资源。

进一步的,

把实体串口虚拟化为TCP网络端口

ser2net软件安装,可执行文件放在:/usr/sbin/ser2net,配置文件放在/etc/ser2net.conf;

配置修改,为实现TCP的23000端口与串口ttyS1互通,保留23000端口,波特率修改为115200;

其中ser2net.conf文件中用不到的端口配置,都注释掉。

对ser2net配置生效命令,但上述配置有效性在开机后会丢失,故把相关设置放入启动服务中。

进一步的,

设置ser2net参数开机启动服务化

新建或编辑文件:rc.local,设置开机自启,系统启动后,自动生成TCP端口。

进一步的,

将TCP端口转换为虚拟串口

remserial程序充当TCP/IP网口和Linux设备(如串口)之间的通信桥梁;任何面向字符的/dev设备都可以被使用。

remserial程序使用pseudo-ttys来欺骗程序,使其认为它正在与本地机器上的一个真正的串行端口进行通信,remserial将TCP端口转换为虚拟串口vtty,指定IP,端口号,生成的虚拟串口名;这将创建一个名为/dev/remserial1的设备文件,该文件可以被数据采集应用程序用作其串行端口;任何发送或接收的数据都被传递到23000端口上。reserial程序使用特殊的伪tty主设备/dev/ptmx,创建一个从设备,它可以被当作成类似/dev/pts/something的普通串口,但是remserial程序实际创建的设备名与真实串口并不一致,因此remserial程序创建了一个符号链接,从-l选项指定的设备名到创建的/dev/ptsp/name,允许其他应用程序使用一致的设备名进行配置。

进一步的,

minicom远程访问串口

安装minicom软件,设置Serial port setup,保存配置,可以进行实体串口和虚拟串口之间数据收发操作。

附图说明

图1是虚拟串口的应用场景示意图;

图2是虚拟串口原理图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

虚拟串口的运用领域十分广泛,不仅仅局限于PLC远程通信,也可以用在运行状态监控、故障分析处理、程序升级等环境中,通过虚拟串口,所有这一切只需要在办公室即可完成。如果想远程控制该设备,而该设备本身不支持网络,那么把串口接入带有网络的主机,并把串口通过网络虚拟化,成为虚拟串口,就可以正常进行串口通信了。本发明提出一种通过串口透传形成虚拟串口的实现方法。

通过网络虚拟化串口,首先要把串口虚拟化为网络端口,之后在网络中的另外一台主机上通过telnet等工具直接访问该网络端口或者反过来把网络端口逆向为一个虚拟化的串口,进而通过串口的minicom等工具也可以访问。

通过网络把串口接入到更便利的开发环境;通过网络把多个串口汇聚到同一个测试环境,方便统一访问;把串口接入网络,允许多方共享同一个硬件资源。

1.把实体串口虚拟化为TCP网络端口

ser2net软件安装,可执行文件放在:/usr/sbin/ser2net,配置文件放在/etc/ser2net.conf。配置修改,为实现TCP的23000端口与串口ttyS1互通,保留23000端口,波特率修改为115200。其中ser2net.conf文件中有很多我们用不到的端口配置,都注释掉。对ser2net配置生效命令,但上述配置有效性在开机后会丢失,故把相关设置放入启动服务中。

2.设置ser2net参数开机启动服务化

新建或编辑文件:rc.local,设置开机自启,系统启动后,自动生成TCP端口。

3.将TCP端口转换为虚拟串口

remserial程序充当TCP/IP网口和Linux设备(如串口)之间的通信桥梁。任何面向字符的Linux/dev设备都可以运行使用。将需要串口的Linux程序连接到远程串口。有些程序是直接与串口通信的,例如一些数据采集程序。remserial程序可以使用pseudo-ttys来欺骗程序,使其认为它正在与本地机器上的一个真正的串行端口进行通信,remserial将TCP端口转换为虚拟串口vtty,指定IP,端口号,生成的虚拟串口名。这将创建一个名为/dev/remserial1的设备文件,该文件可以被数据采集应用程序用作其串行端口。任何发送或接收的数据都被传递到23000端口上。reserial程序使用特殊的伪tty主设备/dev/ptmx,创建一个从设备,它可以被当作成类似/dev/pts/something的普通串口。但是remserial程序实际创建的设备名与真实串口并不一致,因此remserial程序创建了一个符号链接,从-l选项指定的设备名到创建的/dev/ptsp/name,允许其他应用程序使用一致的设备名进行配置。

4.minicom远程访问串口

安装minicom软件,设置Serial port setup,保存配置,可以进行实体串口和虚拟串口之间数据收发操作。

以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 一种基于串口虚拟化的远程访问实现方法
  • 一种基于linux tty子系统的串口虚拟化的实现方法
技术分类

06120114741396