本发明专利技术实施例公开了一种基于虚拟串口的数据传输方法、装置、设备和存储介质。该基于虚拟串口的数据传输方法包括:为所述主控CPU中每个业务模块确定由所述高速总线端口映射得到的关联虚拟串口;通过所述关联虚拟串口将至少两个业务模块同时发送到不同外接设备的原始发送数据进行协议封装组包处理,得到第一组包数据;将所述第一组包数据通过所述高速总线端口发送到所述MCU,根据所述MCU返回的所述第二组包数据将所述原始返回数据通过关联虚拟串口返回给关联的业务模块。本发明专利技术实施例通过虚拟串口映射的方式解决串口独占的问题,实现主控端中多个业务模块同时与多个外界设备进行数据传输,降低串口通信设计的复杂度。降低串口通信设计的复杂度。降低串口通信设计的复杂度。
【技术实现步骤摘要】
基于虚拟串口的数据传输方法、装置、设备和存储介质
[0001]本专利技术实施例涉及串口通信
,尤其涉及一种基于虚拟串口的数据传输方法、装置、设备和存储介质。
技术介绍
[0002]目前的硬件系统设计时,常常因为主控外设接口不够,需要外扩单片机,通过单片机连接多个外设。而为了降低系统软件设计的复杂度,主控和单片机会采用串口或USB转串口的方式连接,例如主控与单片机之间通过USB等高速总线相连,高速总线接口在主控端以一个物理串口呈现,对于主控上运行的软件业务模块即可使用串口与MCU(Microcontroller Unit,微控制单元或单片机)通信,以实现和MCU连接外设之间的通信。
[0003]物理串口是采用串行通信方式的扩展接口。物理串行接口是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信。但是使得物理串口具有独占性的局限,即在同一时间只能被一个进程打开使用。但是主控中往往存在多个业务模块,如果多个业务模块中多个进程或线程需要通过同时访问串口操作MCU上不同的外设单元时,则一个物理串口无法实现。
[0004]现有技术中使用线程同步或进程间通信的同步机制,来保证串口的独占性操作,再依次访问不同外设。但是多线程间操作串口时,在读写操作前需要加锁;且即使使用进程间通信的方式,也只能保证一个进程操作串口,使得串口访问效率低,且同步机制使得系统软件的设计复杂度增加。
技术实现思路
[0005]本专利技术实施例提供一种基于虚拟串口的数据传输方法、装置、设备和存储介质,通过虚拟串口映射的方式解决串口独占的问题,实现主控端中多个业务模块同时与多个外界设备进行数据传输,降低串口通信设计的复杂度。
[0006]第一方面,本专利技术实施例提供了一种基于虚拟串口的数据传输方法,由主控CPU执行,在主控CPU端设置一个高速总线端口与MCU连接,所述MCU与至少两个外接设备连接,包括:
[0007]通过预先映射的关联虚拟串口对至少两个业务模块同时发送到不同外接设备的原始发送数据进行协议封装组包处理,得到第一组包数据;其中,虚拟串口由所述高速总线端口映射得到,每个虚拟串口与所述主控CPU中任一业务模块关联;所述第一组包数据中至少包括原始发送数据与关联虚拟串口的映射关系;
[0008]将所述第一组包数据通过所述高速总线端口发送至所述MCU,由所述MCU将所述第一组包数据中的原始发送数据发送至关联外接设备,并接收不同关联外接设备的原始返回数据,根据所述映射关系对所述原始返回数据进行协议封装组包处理,得到第二组包数据,将所述第二组包数据通过所述高速总线端口返回给所述主控CPU;
[0009]根据所述MCU返回的所述第二组包数据,将所述原始返回数据通过关联虚拟串口
返回给关联的业务模块。
[0010]第二方面,本专利技术实施例还提供了一种基于虚拟串口的数据传输装置,由主控CPU执行,在主控CPU端设置一个高速总线端口与MCU连接,所述MCU与至少两个外接设备连接,包括:
[0011]发送数据组包模块,用于通过预先映射的关联虚拟串口对至少两个业务模块同时发送到不同外接设备的原始发送数据进行协议封装组包处理,得到第一组包数据;其中,虚拟串口由所述高速总线端口映射得到,与所述主控CPU中各业务模块关联;所述第一组包数据中至少包括原始发送数据与关联虚拟串口的映射关系;
[0012]数据发送模块,用于将所述第一组包数据通过所述高速总线端口发送至所述MCU,由所述MCU将所述第一组包数据中的原始发送数据发送至关联外接设备,并接收不同关联外接设备的原始返回数据,根据所述映射关系对所述原始返回数据进行协议封装组包处理,得到第二组包数据,将所述第二组包数据通过所述高速总线端口返回给所述主控CPU;
[0013]数据接收模块,用于根据所述MCU返回的所述第二组包数据,将所述原始返回数据通过关联虚拟串口返回给关联的业务模块。
[0014]第三方面,本专利技术实施例还提供了一种电子设备,包括:
[0015]一个或多个处理器;
[0016]存储装置,用于存储一个或多个程序,
[0017]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术任一实施例所述的基于虚拟串口的数据传输方法。
[0018]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本专利技术任一实施例所述的基于虚拟串口的数据传输方法。
[0019]本专利技术实施例通过预先为主控中每个业务模块确定由高速总线端口映射的关联虚拟串口,多个业务模块通过关联虚拟串口同时将发送到不同外设的原始发送数据进行协议封装组包处理,再将组包数据通过高速总线端口发送至MCU,由MCU将原始发送数据转发至不同外设,再将不同外设返回的数据通过关联虚拟串口返回至对应业务模块。通过虚拟串口映射的方式解决串口独占的问题,实现主控端中多个业务模块同时与多个外界设备进行数据传输,降低串口通信设计的复杂度。
附图说明
[0020]图1是本专利技术实施例一中的基于虚拟串口的数据传输方法的流程图;
[0021]图2是现有技术中主控与MCU之间的连接方式示意图;
[0022]图3是本专利技术实施例中主控与MCU之间的连接方式示意图;
[0023]图4是协议封装组包处理后进行数据传输的帧结构示意图;
[0024]图5是主控和MCU之间通过虚拟串口进行数据传输的示意框图;
[0025]图6是本专利技术实施例二中的基于虚拟串口的数据传输装置的结构示意图;
[0026]图7是本专利技术实施例三中的电子设备的结构示意图。
具体实施方式
[0027]下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。
[0028]实施例一
[0029]图1是本专利技术实施例一中的基于虚拟串口的数据传输方法的流程图,本实施例可适用于主控物理串口满足不了多个软件业务模块向多个外设传输数据的情况,由主控CPU执行,在主控CPU端设置一个高速总线端口与MCU连接,MCU与至少两个外接设备连接。该方法可以由基于虚拟串口的数据传输装置来执行,该装置可以采用软件和/或硬件的方式实现,并可配置在电子设备中,例如电子设备可以是CPU或硬件系统等具有通信和计算能力的设备。如图1所示,该方法具体包括:
[0030]步骤101、通过预先映射的关联虚拟串口对至少两个业务模块同时发送到不同外接设备的原始发送数据进行协议封装组包处理,得到第一组包数据。
[0031]其中,虚拟串口由高速总线端口映射得到,每个虚拟串口与主控CPU中任一业务模块关联;第一组包数据中至少包括原始发送数据与关联虚拟串口的映射关系。
[0032]由于现有硬件系统中的主控CPU与MCU之间本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于虚拟串口的数据传输方法,其特征在于,由主控CPU执行,在主控CPU端设置一个高速总线端口与MCU连接,所述MCU与至少两个外接设备连接,包括:通过预先映射的关联虚拟串口对至少两个业务模块同时发送到不同外接设备的原始发送数据进行协议封装组包处理,得到第一组包数据;其中,虚拟串口由所述高速总线端口映射得到,每个虚拟串口与所述主控CPU中任一业务模块关联;所述第一组包数据中至少包括原始发送数据与关联虚拟串口的映射关系;将所述第一组包数据通过所述高速总线端口发送至所述MCU,由所述MCU将所述第一组包数据中的原始发送数据发送至关联外接设备,并接收不同关联外接设备的原始返回数据,根据所述映射关系对所述原始返回数据进行协议封装组包处理,得到第二组包数据,将所述第二组包数据通过所述高速总线端口返回给所述主控CPU;根据所述MCU返回的所述第二组包数据,将所述原始返回数据通过关联虚拟串口返回给关联的业务模块。2.根据权利要求1所述的方法,其特征在于,通过预先映射的关联虚拟串口对至少两个业务模块同时发送到不同外接设备的原始发送数据进行协议封装组包处理,得到第一组包数据,包括:不同虚拟串口节点将关联业务模块同时发送到不同外接设备的原始发送数据进行协议封装组包处理,得到第一组包数据,并将所述第一组包数据添加到与虚拟串口关联的发送队列中;相应的,将所述第一组包数据通过所述高速总线端口发送至所述MCU,包括:发起定时轮询线程对所有虚拟串口关联的发送队列进行定时轮询,将所述发送队列中的第一组包数据通过所述高速总线端口发送至所述MCU。3.根据权利要求1所述的方法,其特征在于,通过预先映射的关联虚拟串口对至少两个业务模块同时发送到不同外接设备的原始发送数据进行协议封装组包处理,得到第一组包数据,包括:关联虚拟串口节点为所述原始发送数据添加关联串口标识、预设包头标识以及预设包尾标识,得到第一组包数据。4.根据权利要求3所述的方法,其特征在于,由所述MCU将所述第一组包数据中的原始发送数据发送至关联外接设备,包括:所述MCU根据所述预设包头标识和所述预设包尾标识对所述第一组包数据进行解析,得到所述关联串口标识和所述原始发送数据,并根据原始发送数据中的具体信息将所述原始发送数据发送至关联外接设备。5.根据权利要求4所述的方法,其特征在于,所述原始发送数据与关联虚拟串口的映射关系为所述原始发送数据与所述关联虚拟串口的串口标识的映射关系;相应的,根据所述映射关系对所述原始返...
【专利技术属性】
技术研发人员:袁玖一,张振,
申请(专利权)人:浙江宇视科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。