一种可变自适应串口通信方法、介质及电子设备与流程

文档序号:22890861发布日期:2020-11-10 18:16阅读:190来源:国知局
一种可变自适应串口通信方法、介质及电子设备与流程

本发明涉及串行接口数字通信领域,特别地,涉及一种可变自适应串口通信方法、介质及电子设备。



背景技术:

在航空发动机控制系统、航空发动机健康监视单元、航空发动机地面维护系统之间通常采用串口通讯的方式(例如rs232、rs485或rs422串行接口)实现信息交互。航空发动机系统涉及到的发动机参数种类和数量繁多,发动机工作状态错综复杂,不同种类和用途的发动机电子设备之间通过串口通讯交互的参数数据为了满足设计需求的变更可能会频繁增加或减少。但目前通常采用的串口通讯协议为固定数据帧结构和内容,包含数据帧头、帧长度、帧数据内容、帧校验字/帧尾。为了适应通讯帧内数据内容的增加,在设计串口通讯协议时,需要预留足够多的备份数据字,以适应通讯交互数据的增加,会进一步导致发动机电子设备内串口接收和解析通信数据帧时为预留的备份数据字分配缓存,浪费存储空间,占用多余内存。如预留的备份数据字不够用,则需要更改串口通讯协议的帧长度,重新定义帧结构,更改软件代码,调试并重新烧写程序,增加了软件设计与实现的工作量,会进一步影响软件开发进展和软件开发成本。



技术实现要素:

本发明一方面提供了一种可变自适应串口通信方法,以解决固定数据帧结构和内容不能快速适应设计需求变更导致的通信数据帧内容变更、以及固定通信协议的更改需要较大工作量的技术问题。

本发明采用的技术方案如下:

一种可变自适应串口通信方法,包括步骤:

发送系统基于可变自适应串口通讯协议发送数据帧,并在发送前根据当前所需发送数据帧中的数据与历史数据帧的数据是否存在差异对所发送的数据帧中用于标识参数数据匹配状态的标志符进行相应赋值;

接收系统接收所述数据帧并读取数据帧中所述标志符的值,若根据标志符的值确定存在差异,则将所接收的数据帧中的数据类型与预设的参数库中的参数类型进行匹配,匹配完成后按照固定数据帧结构和内容的通讯协议进行数据的传输和解析处理,所述参数库中包括发送系统通过串行通讯发送给接收系统的所有约定的参数类型。

进一步地,所述可变自适应串口通讯协议的格式具体包括:

数据帧头syncword和帧校验字checksun;

数据长度number,用来标识当前通讯协议中所包含数据dataword的数据总数;

数据状态status,用于标识数据dataword与参数库中的参数类型的匹配状态;

位置position,用于标识要匹配的数据dataword在当前数据帧的位置;

参数elementid,用于标识参数库中对应的参数elementid,该参数在通讯协议中的位置为position指向的位置;

若干数据dataword,用于标识当前数据帧中传输的数据。

进一步地,所述参数库存储有参数elementid、与所述参数elementid一一对应的参数类型。

进一步地,所述参数库还根据设定规则对参数elementid和相应的参数类型按类别进行分组存储。

进一步地,所述可变自适应串口通讯协议的格式还包括:

数据标志flag,用于标识当前数据帧中的所述数据dataword对应于所述参数库中的分组类别。

进一步地,发送系统基于可变自适应串口通讯协议发送数据帧之前,还包括步骤:

根据串行接口要求建立发送系统和接收系统的通信关系,并配置端口属性,包括波特率、奇偶校验、数据位、停止位。

进一步地,接收系统接收所述数据帧并读取数据帧中所述标志符的值,若根据标志符的值确定存在差异,则将所接收的数据帧中的数据类型与预设的参数库中的参数类型进行匹配,匹配完成后按照固定数据帧结构和内容的通讯协议进行数据的传输和解析处理具体包括步骤:

若有数据包发送时接收第i个数据帧;

读取第i个数据帧中数据状态status的值,并根据数据状态status的值判断第i个数据帧中的数据与历史数据帧的数据是否存在差异;

若存在差异,则读取第i个数据帧中位置position的值,确定当前数据帧中需要匹配的数据dataword的位置;

读取位置position的值所对应的数据dataword;

读取第i个数据帧中位置position的值对应的参数elementid;

根据参数elementid查找参数库中的参数类型;

将第i个数据帧中数据dataword与参数库中的参数类型匹配完成;

重复前述步骤,直到完成所有数据帧中全部数据dataword的匹配;

匹配完成后按照固定数据帧结构和内容的通讯协议进行数据的传输和解析处理。

进一步地,接收系统接收所述数据帧并读取数据帧中所述标志符的值,若根据标志符的值确定存在差异,则将所接收的数据帧中的数据类型与预设的参数库中的参数类型进行匹配,匹配完成后按照固定数据帧结构和内容的通讯协议进行数据的传输和解析处理具体包括步骤:

若有数据包发送时接收第i个数据帧;

读取第i个数据帧中数据状态status的值,并根据数据状态status的值判断第i个数据帧中的数据与历史数据帧的数据是否存在差异;

若存在差异,则读取第i个数据帧中位置position的值,确定当前数据帧中需要匹配的数据dataword的位置;

读取位置position的值所对应的数据dataword;

读取第i个数据帧中的数据标志flag的值和位置position的值对应的参数elementid;

根据数据标志flag和参数elementid查找参数库中的参数类型;

将第i个数据帧中数据dataword与参数库中的参数类型匹配完成;

重复前述步骤,直到完成所有数据帧中全部数据dataword的匹配;

匹配完成后按照固定数据帧结构和内容的通讯协议进行数据的传输和解析处理。

根据本发明的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,在所述程序运行时控制所述存储介质所在的设备执行所述的可变自适应串口通信方法。

根据本发明的另一方面,还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的可变自适应串口通信方法。

本发明具有以下有益效果:

本发明通过设置可变自适应串口通讯协议、参数库以及基于所述协议和参数库的参数匹配过程,实现了数据帧的可变自适应通信,其在串口通讯中的参数根据设计需求的变更发生变化时,仅需调整接收系统或发送系统其中一方的通信数据帧内容参数或相应软件,就可实现串口通信协议中的参数变更,避免了接收系统和发送系统同时更改通信协议和软件的较大工作量,既保证了串口通讯传输参数类型的有效性、便捷性,又减少了工作量,提高了更新速度,具有较好的工程推广应用价值。

除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照附图,对本发明作进一步详细的说明。

附图说明

构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。

在附图中:

图1是本发明优选实施例的可变自适应串口通信方法流程示意图。

图2是本发明优选实施例的可变自适应串口通讯协议的组成示意图;

图3是本发明优选实施例的参数库示意图。

图4是本发明优选实施例接收系统的参数匹配流程示意图。

图5是本发明另一优选实施例的接收系统的参数匹配流程示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

参照图1,本发明的优选实施例提供了一种可变自适应串口通信方法,包括步骤:

s1、发送系统基于可变自适应串口通讯协议发送数据帧,并在发送前根据当前所需发送数据帧中的数据与历史数据帧的数据是否存在差异对所发送的数据帧中用于标识参数数据匹配状态的标志符进行相应赋值,例如,若存在差异则将标识符赋值0,反之则赋值1;

s2、接收系统接收所述数据帧并读取数据帧中所述标志符的值,若根据标志符的值确定存在差异,例如读取的标识符的值为0时,则将所接收的数据帧中的数据类型与预设的参数库中的参数类型进行匹配,匹配完成后按照固定数据帧结构和内容的通讯协议进行数据的传输和解析处理,所述参数库中包括发送系统通过串行通讯发送给接收系统的所有约定的参数类型。

本实施例的可变自适应串口通信方法通过设置可变自适应串口通讯协议、参数库以及在接收系统中基于所述协议和参数库的参数匹配过程,实现了数据帧的可变自适应通信,其在串口通讯中的参数根据设计需求的变更发生变化时,仅需调整接收系统或发送系统其中一方的通信数据帧内容参数或相应软件,就可实现串口通信协议中的参数变更,避免了接收系统和发送系统同时更改通信协议和软件的较大工作量,保证了串口通讯传输参数类型的有效性、便捷性,减少了工作量,提高了系统维护和调整速度,具有较好的工程推广应用价值。

本实施例可应用于众多串口通讯传输系统中,如航空发动机控制系统与航空发动机健康监视单元之间,还可应用于航空发动机地面维护系统和航空发动机控制系统之间的参数数据传输,航空发动机地面维护系统可以自适应的接收航空发动机控制系统通过串口传输的参数并进行正确解析后显示,避免航空发动机地面维护系统及其控制系统软件代码随发动机控制系统串口发送参数数据的变更而更改,有效保障航空发动机控制系统安全性和可靠性,具有很高的实际应用价值。

如图2所示,在本发明的优选实施例中,所述可变自适应串口通讯协议的格式具体包括:

数据帧头syncword和帧校验字checksun,分别设置在帧头和帧尾;

数据长度number,用来标识当前通讯协议中所包含数据dataword的数据总数;

数据状态status,用于标识数据dataword与参数库中的参数类型的匹配状态;

位置position,用于标识要匹配的数据dataword在当前数据帧的位置,具体地,位置position的状态由发送系统决定,如首次匹配,需完成所有数据dataword的遍历,此时下一个数据帧的位置position加1;如发送系统仅更改一个或多个dataword的参数匹配时,下一个数据帧的位置position则指向下一个需要匹配数据dataword的位置,通过一个或多个数据帧完成数据dataword的参数匹配。

数据标志flag,用于标识当前数据帧中的所述数据dataword对应于所述参数库中的分组类别;

参数elementid,用于标识参数库中对应的参数elementid,该参数在通讯协议中的位置为position指向的位置;

若干数据dataword,用于标识当前数据帧中传输的参数数据。

本实施例中,发送系统和接收系统按照可变自适应串口通讯协议的格式方式进行通讯,通过识别数据帧头syncword、数据长度number和帧校验字checksun识别每个串行数据帧中的参数数据,其中的数据1~数据n为发送系统和接收系统共同约定的n个参数数据。

在现有技术的固定数据帧结构和内容的通讯协议设计中,数据1(dataword1)~数据n(datawordn)为固定参数,如数据1(dataword1)代表pla、数据2(dataword2)代表ng,通过通讯,把数据1~数据n按通讯协议由发送系统传输给接收系统,接收系统接收并识别对应数据进行处理。

由于系统设计的需要,当传输增加一个数据n+1(datawordn+1)或其中某个数据x(datawordx)更改为另一个参数时,需要发送系统和接收系统重新定义通讯协议。如系统需频繁调整通信协议中的参数,只能通过修改发送系统和接收系统的软件代码,重新调试烧写,导致了工作量的大量增加。

在本实施例的可变自适应串口通信协议中,数据1~数据n设置为可调整数据参数,通过调整发送系统的通信数据帧内容或相应软件实现通讯,无需重新定义通讯协议,有效的减少了工作量。

具体地,可变自适应串口通信协议的构成如表1所示:

表1

表1中,数据帧头syncword与帧校验字checknum主要用于解析数据帧。数据状态status分别为0和1两个取值,1表示数据data1~数据datan与参数库的数据匹配完成,按照数据1~数据n为固定数据帧结构和内容的通讯协议进行传输和解析;0表示数据1~数据n与参数库的数据未匹配完成,需完成匹配后,才能按照固定数据帧结构和内容的通讯协议进行传输和解析。

数据标志flag表示数据类型(可多个类型),代表参数库的参数类型,如0代表ⅰ类参数,1代表ⅱ类参数,其作用可减少匹配参数的查找时间。

位置position表示数据dataword在通讯协议中的顺序和编号,position=1对应dataword1,position=2对应dataword2,……position=n对应datawordn。

参数elementid表示参数库中对应的参数elementid,该参数在通讯协议中的位置为position指向的位置。如:elementid=0x3000,position=1时,则表示数据1dataword1的参数id为0x3000,position=2时,则表示数据2dataword2的参数id为0x3000。

数据dataword代表需与参数库中的参数进行匹配的数据。

如图3所示,在本发明的优选实施例中,所述参数库存储有参数elementid、与所述参数elementid一一对应的参数类型。

本实施例中,发送系统和接收系统在进行通讯之前,约定好所有发送系统可以通过串行通讯发送给接收系统的参数类型,建立参数库,参数库可以单独设置,也可以作为接收系统的一部分,所述参数库中对每个参数类型设置一个对应的elementid,该elementid与可变自适应串口通信协议中的参数elementid相对应,所述elementid与参数类型之间具有唯一性,即elementid唯一且代表唯一的参数类型。同时,所述参数库还根据参数类型不同,按设定规则对参数elementid和相应的参数类型按类别进行分组存储,建立多个参数列表,提高查找效率。

在本发明的优选实施例中,发送系统基于可变自适应串口通讯协议发送数据帧之前,还包括步骤:

根据串行接口要求建立发送系统和接收系统的通信关系,并配置端口属性,包括波特率、奇偶校验、数据位、停止位。从而为后续的通信做好必要的准备。

如图4所示,在本发明的优选实施例中,接收系统接收所述数据帧并读取数据帧中所述标志符的值,若根据标志符的值确定存在差异,则将所接收的数据帧中的数据类型与预设的参数库中的参数类型进行匹配,匹配完成后按照固定数据帧结构和内容的通讯协议进行数据的传输和解析处理具体包括步骤:

若有数据包发送时接收第i个数据帧;

读取第i个数据帧中数据状态status的值,并根据数据状态status的值判断第i个数据帧中的数据与历史数据帧的数据是否存在差异;

若存在差异,则读取第i个数据帧中位置position的值,确定当前数据帧中需要匹配的数据dataword的位置;

读取位置position的值所对应的数据dataword;

读取第i个数据帧中位置position的值对应的参数elementid;

根据参数elementid查找参数库中的参数类型;

将第i个数据帧中数据dataword与参数库中的参数类型匹配完成;

重复前述步骤,直到完成所有数据帧中全部数据dataword的匹配;

匹配完成后按照固定数据帧结构和内容的通讯协议进行数据的传输和解析处理。

本实施例详细说明了接收系统的参数匹配过程,发送系统会在发送数据之前,将当前需要发送的数据帧中数据参数与历史发送的数据帧中的数据参数进行比较,若发现有差异则将当前需要发送的数据帧中的数据状态status设置为0,反之设置为1,而接收系统在接收到发送系统发来的数据帧后,读取数据状态status的值,若为0则与参数库进行匹配,其中每一帧只匹配一个数据参数,依次接收其他数据帧,直到所有数据参数匹配完成,完成匹配后,按照固定数据帧结构和内容的通讯协议进行参数解析或处理。

位置position的状态包括两种情况:

针对首次匹配,需完成所有数据dataword的遍历,由于每一帧只对一个数据参数进行匹配,本实施例利用数据状态status对数据帧中各个数据dataword进行遍历,所述位置position首先指向数据dataword1,从而对数据dataword1进行匹配,而在下一帧时,由于需要对数据dataword2进行匹配,因此,位置position加1,取值为2,从而像指针一样指向数据dataword2进行匹配,以此类推,直到位置position等于n时,完成对包括数据dataword1---数据datawordn的参数匹配。

对于发送系统仅更改一个或多个数据dataword的参数匹配时,下一个数据帧的位置position则指向下一个需要匹配数据dataword的位置,通过一个或多个数据帧完成数据dataword的参数匹配。

而具体匹配时,则是通过读取当前数据帧中位置position的值k所对应的datak(即数据datawordk)和参数elementid,然后通过该参数elementid去查找对应的参数x,找到后,完成当前数据帧中datak的匹配。通过循环上述步骤,完成所有数据帧的参数匹配后,接收系统按照固定数据帧结构和内容的通讯协议进行参数解析或处理。

可以理解的是,本实施例通过基于所述可变自适应串口通信协议和参数库的参数匹配过程,实现了数据帧的可变自适应通信,其在串口通讯中的参数数据根据设计需求的变更发生变化时,在接收系统中通过对数据帧的参数数据与参数库完成查找匹配后,按照固定数据帧结构和内容的通讯协议进行参数解析或处理,就可实现串口通信协议中的参数变更,避免了需要对接收系统和发送系统同时更改通信协议和软件时的较大工作量,既保证了串口通讯传输参数类型的有效性、便捷性,又减少了工作量,提高了系统维护更新的速度。

如图5所示,在本发明的优选实施例中,接收系统接收所述数据帧并读取数据帧中所述标志符的值,若根据标志符的值确定存在差异,则将所接收的数据帧中的数据类型与预设的参数库中的参数类型进行匹配,匹配完成后按照固定数据帧结构和内容的通讯协议进行数据的传输和解析处理具体包括步骤:

若有数据包发送时接收第i个数据帧;

读取第i个数据帧中数据状态status的值,并根据数据状态status的值判断第i个数据帧中的数据与历史数据帧的数据是否存在差异;

若存在差异,则读取第i个数据帧中位置position的值,确定当前数据帧中需要匹配的数据dataword的位置;

读取位置position的值所对应的数据dataword;

读取第i个数据帧中的数据标志flag的值和位置position的值对应的参数elementid;

根据数据标志flag和参数elementid查找参数库中的参数类型;

将第i个数据帧中数据dataword与参数库中的参数类型匹配完成;

重复前述步骤,直到完成所有数据帧中全部数据dataword的匹配;

匹配完成后按照固定数据帧结构和内容的通讯协议进行数据的传输和解析处理。

本实施例与上述实施例不同在于:本实施例还读取数据帧中的数据标志flag的值,同时根据数据标志flag和参数elementid查找参数库中的参数类型,当参数库中的参数类型比较多时,先通过数据标志flag的值确定参数类型的分组,缩小查找范围,接着在该分组中进行参数类型的查找匹配,从而提高查找速度。

本发明的另一实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行如所述可变自适应串口通信方法。

本发明的另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现所述可变自适应串口通信方法。

综上所述,本发明可有效解决由于包含数据帧头、帧长度、帧数据内容、帧校验字/帧尾的固定数据帧结构和内容不能快速适应设计需求变更导致的通信数据帧内容变更,以及固定通信协议的更改需要较大工作量的问题,实现了数据帧的可变自适应通信,在串口通讯中的参数根据设计需求的变更发生变化时,仅需调整接收系统或发送系统其中一方的通信数据帧内容参数或相应软件,就可实现串口通信协议中的参数变更,可应用于各种串口通讯场合,提高通信系统的数据传输的适应性和可靠性,具有较好的工程推广应用范围和价值。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可按不同于此处的顺序执行所示出或描述的步骤。

本实施例方法所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个或者多个计算设备可读取存储介质中。基于这样的理解,本发明实施例对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算设备(可以是个人计算机,服务器,移动计算设备或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory),磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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