一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

串口数据处理方法、装置、终端及计算机可读存储介质与流程

2022-06-08 21:37:21 来源:中国专利 TAG:


1.本发明涉及通信技术领域,特别涉及一种串口数据处理方法、装置、终端及计算机可读存储介质。


背景技术:

2.在很多情况下,嵌入式设备通过串口与主控进行通信,很多设备产商会根据自己的需求来指定设备间通信的私有协议,在现有技术中,单个串口通信往往只支持单一的通信协议,但是,当嵌入式设备较多而串口资源有限的情况下,需要单个串口支持多种协议。
3.因此,现有技术还有待改进和提高。


技术实现要素:

4.本发明实施例提供了一种串口数据处理方法、装置、终端及计算机可读存储介质,旨在解决现有技术中单个串口不能支持多种通信协议的问题。
5.第一方面,本发明实施例提供了一种串口数据处理方法,包括:
6.当监听到通过目标串口发送的目标数据后,读取目标数据,并将目标数据广播至与目标串口对应的至少一个目标协议模块;
7.通过至少一个目标协议模块对目标数据进行解析。
8.第二方面,本发明实施例提供了一种串口数据处理装置,包括:
9.读取模块,用于当监听到通过目标串口发送的目标数据后,读取目标数据;
10.广播模块,用于将目标数据广播至与目标串口对应的至少一个目标协议模块;
11.解析模块,用于通过至少一个目标协议模块对目标数据进行解析。
12.第三方面,本发明实施例提供了一种终端,终端包括存储器、处理器和存储在存储器中并可在处理器上运行的串口数据处理程序,处理器执行串口数据处理程序时,实现上述的串口数据处理方法的步骤。
13.第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有串口数据处理程序,串口数据处理程序被处理器执行时,实现上述的串口数据处理方法的步骤。
14.有益效果:与现有技术相比,本发明提供了一种串口数据处理方法、终端和计算机可读存储介质,本发明提供的串口数据处理方法中,通过在监听到通过目标串口发送的目标数据后对目标数据进行读取并广播至目标串口对应的至少一个目标协议模块,通过至少一个目标协议模块对目标数据进行解析,这样可以实现多个协议模块对同一个串口读取的数据进行解析,达到了单个串口支持多种通信协议的效果。
附图说明
15.图1为本发明提供的串口数据处理方法的实施例的流程图;
16.图2为本发明提供的串口数据处理方法的实施例中协议模块实现串口数据解析的
方式一;
17.图3为本发明提供的串口数据处理方法的实施例中协议模块实现串口数据解析的方式二;
18.图4为本发明提供的串口数据处理装置的功能模块示意图;
19.图5为本发明提供的终端的实施例的原理图。
具体实施方式
20.为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
21.实施例一
22.请参照图1,图1为本发明提供的串口数据处理方法的一个实施例的流程图。本实施例提供的串口数据处理方法包括步骤:
23.s100、当监听到通过目标串口发送的目标数据后,串口数据处理装置读取目标数据并将目标数据广播至与目标串口对应的至少一个目标协议模块。
24.具体地,串口数据处理装置上设置有串口,具体地,在本实施例中,串口可以为uart(universal asynchronous receiver/transmitter,异步收发传输器)口,串口数据处理装置中包括解析模块,解析模块中包括至少一个协议模块,协议模块用于对串口数据进行解析,各个协议模块使用不同的通信协议来进行数据解析,当串口接入不同的设备时,串口数据处理装置通过该串口接收到的数据是不同的协议格式,即需要不同的协议模块对其进行解析,在一种可能的实现方式中,如图2所示,可以是协议模块直接读取串口数据后再进行解析,在这种实现方式中,每个协议模块分别建立读线程进行数据读取,读取到数据后再按照各自的通信协议对数据进行解析,这样,会建立多个线程,耗费资源,且可维护性不高,在本实施例中,是通过读取模块读取串口数据,具体地,读取模块可以是一段编程代码,对外提供api(application programming interface,应用程序接口)函数,包括初始化api函数、读/写api函数以及数据回调注册接口。
25.具体地,串口数据处理装置通过读取模块对目标串口进行监听,将通过目标串口发送的数据称为目标数据,当读取模块监听到目标数据后,读取目标数据,读取目标数据的代码可以为:int uart_read(int dev,char*data,unsigned int len,long long timeout)。具体地,串联数据处理装置读取模块监听到通过目标串口发送的目标数据,包括:
26.当监听到目标文件句柄时,串口数据处理装置确定监听到通过目标串口发送的目标数据。
27.具体地,在uart串口通信中,通过各个串口接收到的包含串口数据的文件的文件句柄不同,目标串口对应的文件句柄为目标文件句柄,当监听到目标文件句柄时,就确定监听到目标数据,可以对目标数据进行读取。
28.在一种可能的实现方式中,串口数据处理装置上可以设置有多个串口,读取模块对多个串口进行监听,根据不同串口对应的文件句柄确定监听到的数据是哪个串口的数据,串口数据处理装置监听到通过目标串口发送的目标数据,包括:
29.串口数据处理装置通过多路复用模型监听至少一个串口的文件句柄,至少一个串口包括目标串口;
30.当监听到目标串口对应的目标文件句柄时,串口数据处理装置确定监听到通过目标串口发送的目标数据。
31.当读取模块需要监听多个串口时,串口数据处理装置通过多路复用模型如select模型实现多个串口的监听,具体地,select模型通过select函数实现同时监视多个描述符的读写就绪状况,这样就可以实现监听串口数据处理装置上设置的所有串口的数据。当监听到目标文件句柄时,就可以确定目标串口上有数据传入。
32.监听到目标串口上有目标数据后,读取目标数据,并将目标数据广播至与目标串口对应的至少一个协议模块,具体地,在本实施例中,单个串口可与多个协议模块相对应,在获取到通过目标串口传入的目标数据后,发送至目标串口对应的多个协议模块,只要目标串口传入的目标数据符合基于目标串口对应的多个协议模块中的一个协议模块的通信协议格式,就可以被解析,这样可以实现一个串口的通信数据可根据多个通信协议被解析,这样,一个串口能够支持接入多个设备且设备能够实现热拔插,提高串口的灵活性。
33.在串口数据处理装置将目标数据广播至与目标串口对应的至少一个目标协议模块之前,方法还包括步骤:
34.串口数据处理装置建立串口与协议模块之间的对应关系;
35.串口数据处理装置根据对应关系确定与目标串口对应的至少一个目标协议模块。
36.串口数据处理装置建立串口与协议模块之间的对应关系通过读取模块来实现,包括:
37.串口数据处理装置接收各个协议模块发送的回调函数注册请求;
38.串口数据处理装置根据回调函数的注册请求将各个协议模块的回调函数与相应的串口进行绑定,得到串口与协议模块之间的对应关系。
39.具体地,串口数据处理装置中的协议模块如果需要从读取模块中获取数据,那么需要向读取模块注册回调函数,前文已经说明,读取模块包括回调函数注册接口,协议模块通过该接口向读取模块注册回调函数注册请求,实现回调函数注册,具体地,协议模块向读取模块注册回调函数的代码可以为:int uart_register_callback(int dev,uart_callback_t callback)。读取模块将目标协议模块的回调函数与目标串口进行绑定,从而建立串口与协议模块的对应关系,具体地,读取模块中可以存储有回调函数表,回调函数表中记录有已注册的回调函数以及回调函数对应的串口号,当读取模块读取到目标串口的目标数据后,根据目标串口的串口号确定对应的回调函数,广播模块将目标数据写入至目标串口的串口号对应的回调函数,目标串口的串口号对应的回调函数为目标协议模块的回调函数,这样就实现了将目标数据广播至目标协议模块,即将目标数据广播至与目标串口对应的至少一个目标协议模块包括:
40.串口数据处理装置将目标数据写入目标串口绑定的至少一个回调函数。
41.具体地,可以通过回调函数指针实现对回调函数的调用,回调函数指针定义代码可以为:typedef void(*uart_callback_t)(int dev,char*data,unsigned int len)。
42.不难看出,在本实施例中,不需要每个协议模块单独建立一个线程去读取串口数据,只需要建立一个读线程去读取各个串口的数据,并将数据发送给需要串口支持的协议
的模块去解析即可,在实现单串口支持多种协议的基础上,进一步地降低了资源占用,提升了串口通信的可维护性。
43.s200、串口数据处理装置通过至少一个目标协议模块对目标数据进行解析。
44.广播模块将目标数据广播至目标协议模块后,目标协议模块对目标数据进行解析。前文已经说明,每个协议模块对应一个通信协议,目标协议模块接收到目标数据后,按照自身的通信协议格式对数据进行解析。具体地,单个串口可以支持多个协议,即,目标协议模块可以有多个,每个目标协议模块接收到目标数据后,按照自身的通信协议格式对目标数据进行解析,若目标数据不符合自身的通信协议格式,则丢弃该目标数据,停止解析,若目标数据符合自身的通信协议格式,则对数据进行进一步处理。
45.本实施例提供的串口数据处理方法的示意图可以如图3所示,在图3中,串口数据处理装置包括三个串口;uart0、uart1、uartx,其中,每个串口支持的协议不同,例如串口uart0支持gps协议、obd协议、mcu私有协议、gsensor协议以及其他协议,而串口uart2只支持obd协议和mcu私有协议,图中的uart模块为读取模块,通过单线程读取以监听各个串口上的数据,以串口uart2上的数据为例,当监听到uart1_fd的文件句柄时,则读取串口uart2上的数据并广播至串口uart2对应的obd协议解析模块和gsensor协议模块,obd协议解析模块和gsensor协议模块均对接收到的数据进行解析,若此时串口uart2上外接的设备的通信协议是obd协议,那么gsensor协议模块解析后确定该数据的格式不是gsensor协议格式,就丢弃该数据,obd协议解析模块可以确定该数据的格式为obd协议格式,则对数据进行下一步处理。
46.综上所述,本发明提供一种串口数据处理方法,通过在监听到通过目标串口发送的目标数据后对目标数据进行读取并广播至目标串口对应的至少一个目标协议模块,通过至少一个目标协议模块对目标数据进行解析,这样可以实现多个协议模块对同一个串口读取的数据进行解析,达到了单个串口支持多种通信协议的效果。
47.应该理解的是,虽然本发明说明书附图中给出的的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
48.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直
接存储器总线动态ram(drdram)、和存储器总线动态ram(rdram)等。
49.实施例二
50.基于上述实施例,本发明还提供了一种串口数据处理装置,其功能模块示意图如图4所示,该串口数据处理装置包括:
51.读取模块,用于当监听到通过目标串口发送的目标数据后,读取目标数据;
52.广播模块,用于将目标数据广播至与目标串口对应的至少一个目标协议模块,具体如实施例一中所述;
53.解析模块,用于通过至少一个目标协议模块对目标数据进行解析,具体如实施例一中所述。
54.实施例三
55.基于上述实施例,本发明还提供了一种终端,其原理框图可以如图5所示。该终端包括存储器10和处理器20,存储器10中存储有可在处理器20运行的串口数据处理程序,该处理器10执行该串口数据处理程序时至少可以实现以下步骤:
56.当监听到通过目标串口发送的目标数据后,读取目标数据,并将目标数据广播至与目标串口对应的至少一个目标协议模块;
57.通过至少一个目标协议模块对目标数据进行解析。
58.其中,监听到通过目标串口发送的目标数据,包括:
59.当监听到目标文件句柄时,确定监听到通过目标串口发送的目标数据。
60.其中,监听到通过目标串口发送的目标数据,包括:
61.通过多路复用模型监听至少一个串口的文件句柄,至少一个串口包括目标串口;
62.当监听到目标串口对应的目标文件句柄时,确定监听到通过目标串口发送的目标数据。
63.其中,将目标数据广播至与目标串口对应的至少一个目标协议模块之前,方法还包括:
64.建立串口与协议模块之间的对应关系;
65.根据对应关系确定与目标串口对应的至少一个目标协议模块。
66.其中,建立串口与协议模块之间的对应关系,包括:
67.接收各个协议模块发送的回调函数注册请求;
68.根据回调函数注册请求将各个协议模块的回调函数与相应的串口进行绑定,得到串口与协议模块之间的对应关系。
69.其中,将目标数据广播至与目标串口对应的至少一个目标协议模块,包括:
70.将目标数据写入目标串口绑定的至少一个回调函数。
71.实施例四
72.本发明还提供了一种计算机可读存储介质,该计算机可读存储介质存储有串口数据处理程序,该串口数据处理程序被处理器执行时,实现上述实施例一所述的串口数据处理方法的步骤。
73.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献