基于Linux的虚拟串口通信方法、装置、系统及介质制造方法及图纸

技术编号:35369324 阅读:29 留言:0更新日期:2022-10-29 18:10
本申请涉及基于Linux的虚拟串口通信方法、装置、系统及介质,其中,一种基于Linux的虚拟串口通信方法,包括:在Linux系统内核创建虚拟串口驱动;确定至少一个虚拟串口的数据传输类型;根据所述虚拟串口驱动和所述Linux系统内核的tty驱动层,建立至少一个虚拟串口与物理串口的映射关系;根据所述数据传输类型和所述映射关系,执行至少一个所述虚拟串口对所述物理串口的数据收发操作。本申请可以实现多个进程共同使用一个物理串口,不同业务由不同进程处理,可以采用软件方式来解决抓包的问题和模拟向串口内部发送数据,有利于Linux系统出现问题时的定位和排查。现问题时的定位和排查。现问题时的定位和排查。

【技术实现步骤摘要】
基于Linux的虚拟串口通信方法、装置、系统及介质


[0001]本申请属于Linux系统
,尤其涉及基于Linux的虚拟串口通信方法、装置、系统及介质。

技术介绍

[0002]由于Linux系统的串口驱动机制是单进程操作的,所以导致在Linux系统下只能有一个进程能接收到串口的数据,当多进程同时对一个串口读取数据时,只有一个进程能收到数据。因此当串口通讯系统出现异常时,如果需要抓包,也即是抓取串口通讯报文来排查串口通讯系统的问题,现有的技术只能通过硬件方式在串口外部接线,然后通过其他设备来抓包,而无法在原有的Linux系统下通过软件方式实现抓包功能。

技术实现思路

[0003]有鉴于此,本申请实施例提供了基于Linux的虚拟串口通信方法、装置、系统及介质,以解决现有技术中无法在Linux系统下通过软件方式实现抓包的问题。
[0004]本申请实施例的第一方面提供了一种基于Linux的虚拟串口通信方法,包括:
[0005]在Linux系统内核创建虚拟串口驱动;
[0006]确定至少一个虚拟串口的数据传输类型;
[0007]根据所述虚拟串口驱动和所述Linux系统内核的tty驱动层,建立至少一个虚拟串口与物理串口的映射关系;
[0008]根据所述数据传输类型和所述映射关系,执行至少一个所述虚拟串口对所述物理串口的数据收发操作。
[0009]本申请实施例在Linux系统内核创建一个虚拟串口驱动,确定虚拟串口的数据传输类型后,通过虚拟串口驱动和Linux系统内核的tty驱动层将虚拟串口和物理串口映射关联起来,实现至少一个虚拟串口对物理串口的数据收发,在Linux系统单进程的串口驱动机制下,本申请实施例不仅可以实现多个进程共同使用一个物理串口,不同业务由不同进程处理;而且可以采用软件方式来解决抓包的问题和模拟向串口内部发送数据,有利于Linux系统出现问题时的定位和排查。
[0010]结合第一方面,在第一方面的第一种可能实现方式中,所述根据所述虚拟串口驱动和所述Linux系统内核的tty驱动层,建立至少一个虚拟串口与物理串口的映射关系,包括:
[0011]获取所述虚拟串口驱动提供的至少一个虚拟串口的节点,以及所述Linux系统内核的tty驱动层提供的物理串口的节点;
[0012]将至少一个所述虚拟串口的节点和所述物理串口的节点进行关联,建立至少一个所述虚拟串口与所述物理串口的映射关系。
[0013]虚拟串口驱动为虚拟串口提供节点,虚拟串口应用程序可以通过节点操作虚拟串口,Linux系统内核的tty驱动层为物理串口提供节点,串口应用程序通过节点操作物理串
口,本申请实施例通过将虚拟串口驱动提供的虚拟串口节点与tty驱动层提供的物理串口节点进行关联,建立虚拟串口与物理串口的映射关系,从而可以实现了虚拟串口与物理串口的通讯连接关系,实现虚拟串口对物理串口的数据收发操作。
[0014]结合第一方面,在第一方面的第二种可能实现方式中,所述执行至少一个所述虚拟串口对所述物理串口的数据收发操作,包括:
[0015]将所述虚拟串口驱动与所述Linux系统内核的uart驱动层进行关联;
[0016]根据关联后的所述虚拟串口驱动和所述Linux系统内核的uart驱动层,执行至少一个所述虚拟串口经所述Linux系统内核的uart驱动层对所述物理串口接收或发送数据。
[0017]Linux系统内核包括串口驱动框架,串口驱动框架包括上层的tty驱动层和底层的uart驱动层,tty驱动层提供串口应用程序访问物理串口的节点,uart驱动层与硬件设备接触,实现物理串口数据的传输。本申请实施例通过虚拟串口驱动与Linux系统内核的uart驱动层进行关联,可以实现虚拟串口对物理串口的数据收发功能,也即是物理串口接收到的数据可以通过uart驱动层转发给虚拟串口,虚拟串口发送的数据可以通过uart驱动层转发到物理串口或串口应用程序。
[0018]结合第一方面,在第一方面的第三种可能实现方式中,所述确定至少一个虚拟串口的数据传输类型,包括:
[0019]当执行至少一个所述虚拟串口对所述物理串口接收数据时,确定所述数据传输类型包括所述物理串口的发送方向和/或接收方向的数据传输类型;
[0020]当执行至少一个所述虚拟串口对所述物理串口发送数据时,确定所述数据传输类型包括所述物理串口的发送方向和接收方向的数据传输类型。
[0021]虚拟串口的数据传输类型包括发送数据或接收数据,当数据传输类型为发送数据时,发送数据的数据传输类型包括物理串口的发送方向、或者物理串口的接收方向、或者物理串口的发送方向和接收方向的数据传输类型;当数据传输类型为接收数据时,接收数据的数据传输类型包括物理串口的发送方向、或者物理串口的接收方向的数据传输类型。
[0022]本申请实施例的第二方面提供了一种基于Linux的虚拟串口通信装置,包括:
[0023]创建模块,用于在Linux系统内核创建虚拟串口驱动;
[0024]确定模块,用于确定至少一个虚拟串口的数据传输类型;
[0025]映射模块,用于根据所述虚拟串口驱动和所述Linux系统内核的tty驱动层,建立至少一个虚拟串口与物理串口的映射关系;
[0026]收发模块,用于根据所述数据传输类型和所述映射关系,执行至少一个所述虚拟串口对所述物理串口的数据收发操作。
[0027]本申请实施例通过创建模块在Linux系统内核创建一个虚拟串口驱动,通过确定模块确定虚拟串口的数据传输类型和映射模块采用虚拟串口驱动和Linux系统内核的tty驱动层将虚拟串口和物理串口映射关联起来,通过收发模块实现至少一个虚拟串口对物理串口的数据收发,在Linux系统单进程的串口驱动机制下,本申请实施例不仅可以实现多个进程共同使用一个物理串口,而且可以采用软件方式来解决抓包的问题和模拟向串口内部发送数据,有利于Linux系统出现问题时的定位和排查。
[0028]结合第二方面,在第二方面的第一种可能实现方式中,所述映射模块包括:
[0029]获取单元,用于获取所述虚拟串口驱动提供的至少一个虚拟串口的节点,以及所
述Linux系统内核的tty驱动层提供的物理串口的节点;
[0030]关联单元,用于将至少一个所述虚拟串口的节点和所述物理串口的节点进行关联,建立至少一个所述虚拟串口与所述物理串口的映射关系。
[0031]结合第二方面,在第二方面的第二种可能实现方式中,所述执行至少一个所述虚拟串口对所述物理串口的数据收发操作,包括:
[0032]将所述虚拟串口驱动与所述Linux系统内核的uart驱动层进行关联;
[0033]根据关联后的所述虚拟串口驱动和所述Linux系统内核的uart驱动层,执行至少一个所述虚拟串口经所述Linux系统内核的uart驱动层对所述物理串口接收或发送数据。
[0034]结合第二方面,在第二方面的第三种可能实现本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Linux的虚拟串口通信方法,其特征在于,包括:在Linux系统内核创建虚拟串口驱动;确定至少一个虚拟串口的数据传输类型;根据所述虚拟串口驱动和所述Linux系统内核的tty驱动层,建立至少一个虚拟串口与物理串口的映射关系;根据所述数据传输类型和所述映射关系,执行至少一个所述虚拟串口对所述物理串口的数据收发操作。2.根据权利要求1所述的一种基于Linux的虚拟串口通信方法,其特征在于,所述根据所述虚拟串口驱动和所述Linux系统内核的tty驱动层,建立至少一个虚拟串口与物理串口的映射关系,包括:获取所述虚拟串口驱动提供的至少一个虚拟串口的节点,以及所述Linux系统内核的tty驱动层提供的物理串口的节点;将至少一个所述虚拟串口的节点和所述物理串口的节点进行关联,建立至少一个所述虚拟串口与所述物理串口的映射关系。3.根据权利要求1所述的一种基于Linux的虚拟串口通信方法,其特征在于,所述执行至少一个所述虚拟串口对所述物理串口的数据收发操作,包括:将所述虚拟串口驱动与所述Linux系统内核的uart驱动层进行关联;根据关联后的所述虚拟串口驱动和所述Linux系统内核的uart驱动层,执行至少一个所述虚拟串口经所述Linux系统内核的uart驱动层对所述物理串口接收或发送数据。4.根据权利要求1所述的一种基于Linux的虚拟串口通信方法,其特征在于,所述确定至少一个虚拟串口的数据传输类型,包括:当执行至少一个所述虚拟串口对所述物理串口接收数据时,确定所述数据传输类型包括所述物理串口的发送方向和/或接收方向的数据传输类型;当执行至少一个所述虚拟串口对所述物理串口发送数据时,确定所述数据传输类型包括所述物理串口的发送方向和接收方向的数据传输类型。5.一种基于Linux的虚拟串口通信装置,其特征在于,包括:创建模块,用于在Linux系统内核创建虚拟串口驱动;确定模块,用于确定至少一个虚拟串口的数据传输类型;映射模块,用...

【专利技术属性】
技术研发人员:陈维准陈大民程志强
申请(专利权)人:深圳市宏电技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1