一种串口通讯装置及方法与流程

文档序号:17721206发布日期:2019-05-22 02:10阅读:232来源:国知局

本发明涉及串口通讯技术领域,特别涉及一种串口通讯装置及方法。



背景技术:

串口通信作为一种简单、常用的通信方式广泛存在于各种通讯设备。串口数据交互的方法五花八门,但基本上都是用串口线将电脑和设备相连,使用电脑上的串口工具来进行数据交互,或者使用特定的软件与设备进行交互;这些方法通常都是定制交互程序,凡是有改动时则需要修改程序,因此,现有的方式在很多情况下并不适用,比如高温环境时、要对数量众多的设备的进行串口数据交互分析时以及在设备经常要移动位置时等。



技术实现要素:

本发明的目的是克服上述背景技术中不足,提供一种串口通讯装置及方法,具体是一种对电子设备rs232端口数据进行实时通信的装置及方法,可有效解决各种电子设备在各种场景下的串口数据交互问题。

为了达到上述的技术效果,本发明采取以下技术方案:

一种串口通讯装置,包括mcu、锂电池、高速通用串行总线物理接口、tf卡接口、标准串口输入端口、串口状态指示灯及tf卡状态指示灯;所述锂电池、tf卡接口、标准串口输入端口、串口状态指示灯、tf卡状态指示灯分别与mcu相连,锂电池用于向mcu的内部时钟供电,以维持装置捕获到的串口通讯的的真实时间,tf卡接口用于放置tf卡,且在被mcu加载后,用于存放串口通讯数据文件以及装置启动时所需要的配置文件,串口状态指示灯用于指示串口的工作状态;tf卡状态指示灯用于指示tf卡的工作状态;mcu与高速通用串行总线物理接口通过物理开关相连,本发明的串口通讯装置具有体积小巧,移动方便,适用范围广等特点。

同时,本发明还公开了一种串口通讯方法,由上述的串口通讯装置实现,包含以下步骤:

a.制定串口通讯配置文件格式;主要为对串口通讯配置文件格式的定义方法;

b.进入串口通讯流程;主要包含装置运行流程,以及将数据发送与数据处理分离的方法;

c.日志保存。

进一步地,所述步骤a具体包括以下步骤:

a1.制定串口参数描述子;

a2.制定串口通讯命令字;

a3.制定串口通讯逻辑配置描述子;

a4.制定串口通讯配置文件。

进一步地,所述步骤a1中的串口参数描述子包括通用串口参数设置信息,具体包括:串口号,串口波特率,奇偶校验位,数据位,停止位;

所述步骤a2中的串口通讯命令字为串口向待测试主板传递数据的命令,包括装置从设备处读取数据、装置向设备发送数据、装置等待多少时间、装置调用分析函数分析串口数据;

所述步骤a3中的串口通讯逻辑配置描述子包括:数据处理动态库路径名称、数据处理命令个数、数据处理命令描述子1至数据处理命令描述子n;

所述步骤a4中的串口通讯配置文件包括:固定长度串口通讯配置文件标示符,串口个数,串口配置及逻辑操作描述子1至串口配置及逻辑操作描述子n。

进一步地,所述数据处理命令描述子包括:串口通讯命令字、通讯参数描述子、通讯参数保存日志;通讯参数描述子包括:参数个数、通信参数生成描述子1至通信参数生成描述子n。

进一步地,所述串口配置及逻辑操作描述子包括:串口参数描述子、串口通讯逻辑配置描述子。

进一步地,所述步骤b进入串口通讯流程后具体包括以下步骤:

b1.装置根据串口通讯配置文件内的串口参数描述子,初始化各串口端口;

b2.装置根据串口通讯配置文件内的通讯逻辑配置描述子,加载数据处理动态库并验证逻辑处理函数的正确性;

b3.装置根据串口通讯配置文件内的通讯逻辑配置描述子信息,调用串口通讯命令字及相关参数向设备发送或接收信息;并调用动态库内的逻辑处理函数对所接收到的数据进行处理;

b4.根据通讯逻辑配置描述子内的日志保存设置,进行数据保存。

进一步地,所述步骤b1具体包括以下步骤:

b1.1装置启动后,读取tf卡内的串口通讯配置文件;

b1.2根据步骤a1至a4的定义,分析出装置需要配置的串口数,及串口参数描述子里的每个串口使用的具体参数,并对串口进行配置;

所述步骤b2具体包括以下步骤:

b2.1根据实际的设备数据处理需求定制动态库,所述动态库用于处理装置根据配置文件发送到设备的数据以及接收到的设备反馈回来的数据,且动态库编译完成后能够在装置所需的系统上加载并执行;

b2.2根据步骤a1至a4的定义,分析通讯配置文件里的串口通讯逻辑配置描述子得到动态库文件名称、路径,以及一个端口上所有的数据发送、数据接收的逻辑操作和操作序列,每个操作所需要参数以及与参数对应的处理函数,并根据上述信息生成逻辑操作列表;

b2.3将动态库加载到系统对应位置,并根据逻辑处理函数的名称验证动态库是否有对应的处理函数,若没有则进行报错。

进一步地,所述步骤c具体为:在执行步骤b2之后执行步骤b3之前,为每个端口创建一个日志文件;其命令方式为:串口端口号+系统时钟;其内容以逻辑操作为单元进行保存,每个单元包含两行内容:

第一行内容为:通讯配置文件里的数据处理命令描述子;

第二行内容为:命令执行时的系统时钟,数据长度,数据值。

本发明与现有技术相比,具有以下的有益效果:

本发明的串口通讯装置及方法,可有效解决电子设备的串口通讯在众多场景下交互不易、通信软件需要定制化的问题,且具有操作简单、实用方便的优点,当装置与不同设备进行数据交互时,不需要更新装置驱动,而加载新的动态库与新的串口通讯配置文件即可,且维护人员通过分析日志文件即可知道装置进行了哪些操作及操作结果。

具体实施方式

下面结合本发明的实施例对本发明作进一步的阐述和说明。

实施例:

一种串口通讯装置,包括单片微型计算机(简称mcu)、锂电池、高速通用串行总线物理接口(简称高速usbphy)、tf卡接口、标准串口输入端口、串口状态指示灯、tf卡状态指示灯。

所述锂电池、tf卡接口、标准串口输入端口、串口状态指示灯、tf卡状态指示灯分别与mcu相连,锂电池用于向mcu的内部时钟供电,以维持装置捕获到的串口通讯的的真实时间,tf卡接口用于放置tf卡,且在被mcu加载后,用于存放串口通讯数据文件以及装置启动时所需要的配置文件,串口状态指示灯用于指示串口的工作状态;tf卡状态指示灯用于指示tf卡的工作状态;mcu与高速通用串行总线物理接口通过物理开关相连。

针对电子设备的串口通讯在众多场景下交互不易、通信软件需要定制化的问题,本实施例中公开了一种串口通讯方法,通过上述串口通讯装置实现。

本实施例的串口通讯方法具体包括:

s1:制定串口通讯配置文件格式:

s1.1制定串口参数描述子,包括通用串口参数设置信息;

其中,串口参数描述子包括:串口号,串口波特率,奇偶校验位,数据位,停止位。

s1.2制定串口通讯命令字,即串口向待测试主板传递数据的命令,包括:

uart_read;装置从设备处读取数据;

uart_write;装置向设备发送数据;

uart_wait;装置等待多少时间;

uart_parse;装置调用分析函数,分析串口数据。

s1.3制定串口通讯逻辑配置描述子;

包括:数据处理动态库路径名称;数据处理命令个数;数据处理命令描述子1至数据处理命令描述子n。

具体的,数据处理命令描述子包括:串口通讯命令字;通讯参数描述子;通讯参数保存日志。

其中,通讯参数保存日志分为:

0:不保存该条命令及参数(逻辑处理后的数据);

1:保存。

通讯参数描述子包括:参数个数;通信参数生成描述子1至通信参数生成描述子n。

进一步的,通信参数生成描述子的参数类型共分为3种,分别由0,1,2表示,具体为:

0表示参数类型为指定数据的通信参数生成描述子;

1表示参数类型为逻辑处理函数的通信参数生成描述子;

2表示参数类型为使用数据处理命令描述子x最后产生的结果的逻辑处理函数参数。

其中,逻辑处理函数包括:逻辑处理函数名称;逻辑处理函数参数个数,逻辑处理函数参数1至逻辑处理函数参数n。

x为数据处理命令描述子x,即使用逻辑处理命令x运行后产生的结果,该结果数据保留在装置的内存空间内。

例如:

逻辑命令1:uart_write,{1,{0,{4,0xaabbccdd}}},1;表示向设备发送数据,发送参数为1个,类型为制定数据,长度为4字节,内容为0xaabbccdd.将该命令与参数保存到日志文件内;

逻辑命令2:uart_read,{1,{0,{8,0x0}}},1;表示从设备接收数据,接收参数为1个,类型为指定数据,长度为8字节,内容为0x0;即:从设备接收8个字节的数据;将该命令与参数保存到日志文件内;且将接收到的8字节数据保存到日志文件。其接收到8自己数据被标记为step_data_2;

逻辑命令3:uart_parse,{1,{1,”para_test1”,0x1,{2,{step_data_2}}}}},1;该步骤标示对逻辑命令2收到的8字节进行数据分析;即:该步骤参数为1个,类型为函数,函数名为“para_test1”,该函数需要使用的参数为1个,类型为为2,且使用逻辑命令2最终产生的结果(step_data_2)作为参数;para_test1函数运行完成后产生的结果作为step_data_3被保存起来,并被保存到日志文件;

逻辑命令4:uart_write,{1,{2,{step_data_3}}},1;即将逻辑命令3产生的step_data_3数据发送到设备,并将该命令与参数保存到日志文件内;

逻辑命令5:uart_wait,{1,{0,{4,0x3e8}}},1;即串口等待1000ms;0x3e8为十进制的1000;并将该命令与参数保存到日志文件内;

逻辑命令6:uart_parse,{1,{1,”para_test2”,0x2,{2,{step_data_2},{2,{step_data_3}}}}},1;改步骤表示对逻辑命令2,逻辑命令3的执行结果进行数据分析;即:该步骤参数为1个,类型为函数,函数名为“para_test2”,该函数需要使用的参数为2个,类型都为2(逻辑命令处理结果),为step_data_2和step_data_3;para_test2函数运行完成后产生的结果作为step_data_6被保存起来。

s1.4制定串口通讯配置文件;

包括:固定长度串口通讯配置文件标示符,串口个数,串口配置及逻辑操作描述子1至串口配置及逻辑操作描述子n;

其中,串口配置及逻辑操作描述子包括:串口参数描述子;串口通讯逻辑配置描述子。

s2.串口通讯流程:

s2.1装置根据串口通讯配置文件内的串口参数描述子,初始化各串口端口;

具体为:装置启动后,读取tf卡内的串口通讯配置文件;根据步骤s1.1至s1.4的定义,分析出装置需要配置多个串口及串口参数描述子里的每个串口使用的具体参数,并对串口进行配置。

s2.2装置根据串口通讯配置文件内的通讯逻辑配置描述子,加载数据处理动态库并验证逻辑处理函数的正确性;

本实施例中将装置的数据发送与数据处理分离;装置主要任务是根据配置文件发送数据到设备以及接收设备反馈回来的数据。而数据处理主要由动态库内的函数完成。动态库根据实际的设备数据处理需求而定制,编译完成后能够在装置所需的系统上加载并执行,当装置与不同设备进行数据交互时,不需要更新装置驱动,而加载新的动态库与新的串口通讯配置文件即可。

装置根据步骤s1.1至s1.4分析通讯配置文件里的串口通讯逻辑配置描述子,得到动态库文件名称及路径,以及一个端口上所有的数据发送、数据接收的逻辑操作和操作序列,每个操作所需要参数,以及与参数对应的处理函数;然后将动态库加载到系统对应位置,并根据逻辑处理函数的名称验证动态库是否有对应的处理函数,若没有则通过前面板报错。

s2.3装置进行数据通信;

装置根据串口通讯配置文件内的通讯逻辑配置描述子信息,调用串口通讯命令字及相关参数向设备发送或接收信息;并调用动态库内的逻辑处理函数对所接收到的数据进行处理。

s2.4根据通讯逻辑配置描述子内的日志保存设置,进行数据保存。

s3.日志保存方式:

在执行步骤s2.2之后执行步骤s2.3之前,为每个端口创建一个日志文件;其命令方式为:串口端口号+系统时钟;其内容以逻辑操作为单元进行保存,每个单元包含两行内容:

第一行内容为:通讯配置文件里的数据处理命令描述子;

第二行内容为:命令执行时的系统时钟,数据长度,数据值。

其中,数据长度,数据值具体包括:

操作为uart_read:数据长度及数据值为从设备返回的数据长度及数据值;

操作为uart_write:数据长度及数据值为装置向设备发送的数据长度及数据值;

操作为uart_wait:数据长度为4字节,数据值为等待时间;

操作为uart_parse:数据长度及数据值为处理函数处理完成后返回的数据长度及数据值。

则维护人员通过分析日志文件即可知道装置进行了哪些操作及操作结果。

可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1