一种基于rs422协议的可变数据传输方法
【技术领域】
[0001]本发明属于嵌入式通信技术领域,涉及一种数字电子控制器与外部设备间传输大批量数据的方法,可应用于航空发动机电子控制器与其他系统的通信。
【背景技术】
[0002]目前航空发动机电子控制器采用的通讯协议主要包括RS232、RS422、RS485、ARINC429等,这些通讯协议均属于低速串行通讯,在数据传输过程中一般均采用组包传送的方式,同时每一包的数据参数一般不超过50个。航空发动机数字电子控制器实时性要求高,控制变量和监控参数繁多,这就导致了电子控制器的通信功能软件运行时间和每一包通讯参数的数量受到限制。
【发明内容】
[0003]本发明提出一种基于RS422协议的可变数据传输方法,主要解决航空发动机数字电子控制器与外部设备间传输大批量数据问题。
[0004]本发明的技术方案如下:
[0005]—种基于RS422协议的可变数据传输方法,包括以下环节:
[0006](1)建立发送参数总集,所述发送参数总集包含参数ID和参数地址,参数ID是用于标志参数身份唯一性的编号,通过该编号能够查询到参数的存储地址;
[0007](2)根据需求在非易失性存储中建立当前发送参数集合,所述当前发送参数集合包含参数个数、各参数ID和各参数类型;
[0008](3)从当前发送参数集合中取出参数ID,并通过参数ID查询所述发送参数总集获得相应参数的存储地址;
[0009](4)根据参数类型从参数的存储地址中读取参数值,并依次放入发送参数值数据包中;每包发送参数值数据包中包含一个或多个参数值以及该参数值在该发送参数值数据包中的存放位置和参数ID;
[0010](5)重复步骤(2)和步骤(3),直至将当前发送参数集合中所有参数ID对应的参数打包完成,同时按顺序依次传输各个发送参数值数据包;
[0011](6)当需求改变时,建立新的当前发送参数集合,并依次执行环节(3)-(5),完成数据传输任务。
[0012]在以上方案的基础上,本发明还进一步作了如下优化:
[0013]上述发送参数值数据包由包头、参数个数、参数位置(posit1n)、参数ID、参数值和校验和组成;每包发送参数值数据包中传输一个参数值,即在发送参数值数据包中填入多个参数值但仅填入其中一个参数对应的参数ID,参数个数为该发送参数值数据包中填入参数值的个数,参数位置(po s i t i on)指示数据包中参数ID所对应的参数值在数据包中的存放位置。
[0014]上述发送参数值数据包的存储格式如下:
[0015]包头+参数个数+参数位置+参数ID+参数值1+参数值2+...+参数值h+校验和;
[0016]其中,参数位置的取值范围为[l,h]。
[0017]上述当前发送参数集合的存储格式如下:
[0018]记录编号+参数个数+第1个参数ID+第2个参数Ι?+...+第m个参数ID+第1个参数类型+第2个参数类型+...+第m个参数类型;111即为其中参数个数的值。
[0019]以上环节(6)具体是获取并解析参数维护信息,并在非易失性存储中增加新记录达到维护发送参数的目的;所述参数维护信息的存储格式为:
[0020]0xlB+参数个数(n)+空格+第1个参数的ID及类型+第2个参数的ID及类型+...+第η个参数的ID及类型;
[0021]其中,n<h。
[0022]本发明的技术效果如下:
[0023]基于RS422通信协议,通过建立发送参数总集、在线维护当前发送参数集合,实现用户需求传输数据的实时配置,有效解决了发动机控制变量和监控参数繁多与通讯参数受限的问题。
[0024]本发明具有存储空间小、运算量小,软件维护成本低的优点。可用于航空发动机数字电子控制器与其他系统的数据通信。同时该方法可扩展应用于其他串口传输协议、实现其他嵌入式系统间的传输数据的可配置,减小系统维护成本。
【附图说明】
[0025]图1为本发明可变数据传输处理框架。
[0026]图2为发送参数值流程图。
[0027]图3为本实施例的发送参数总集数据结构;
[0028]图4是本实施例的当前发送参数集合存储格式;
[0029]图5是本实施例的发送参数值数据包结构。
【具体实施方式】
[0030]如图1、图2所示,本发明建立的传输模型主要包括三种数据:发送参数总集、当前发送参数集合和传输数据。发送参数总集用于定义最广泛的可能需要传输的参数集合;当前发送参数集合表明目前系统需传输的参数集合;传输数据通过RS422通信,在线接收新的当前发送参数集合,并将参数信息发送至其他系统,在线接收参数维护信息。
[0031]发送参数总集为最广泛的可能需要传输的参数集合,根据控制监控要求建立发送参数总集,该集合应包含有参数ID和参数地址等信息。参数ID是用于标志参数身份的唯一性的编号,通过该编号可以查询到参数地址。
[0032]当前发送参数集合包含参数个数、各参数ID和各参数类型。为实现传输数据的可配置,该数据应存储至非易失性存储设备中。该记录在存储设备中占据一定空间,可存储多条记录,记录标号用于标识记录号;每个参数的ID,取值范围为发送参数总集的参数ID构成的集合。
[0033]下面以发送数据包大小为48个字为例,阐述如何利用有限的传输存储实现1000个参数数据的传输。这里数据包大小、参数数据总数都可以根据系统应用情况进行调整。
[0034]发送参数总集选取了1000个参数。参数ID从0至999,以参数ID为索引保存该参数被定义后的存储地址。其数据结构见图3.
[0035]当前发送参数集合包含参数个数、各参数ID和各参数类型。为实现传输数据的可配置,该数据应存储至非易失性存储中。当前发送参数集合的存储格式如图4所示:
[0036]记录编号+参数个数+第1个参数ID+第2个参数ID+"_+第m个参数ID+第1个参数类型+第2个参数类型+...+第m个参数类型;111即为其中参数个数的值。
[0037]在非易失性存储中的每一条记录代表一次数据发送,新发送数据时,需要获取新一条记录。每条记录256个字节,首字节用于标识记录号,每个参数的索引为2个字节(高字节+低字节),取值范围为0?999;类型则取1/2/4(填入的数值为“1”、“2”、“4”)之一,分别
表示字节、字以及长字。
[0038]传输数据的数据结构包括两部分:
[0039]1发送参数值:
[0040]根据数据传输速率、执行周期等要求确定结构,数据包由包头、参数个数(totalElements,简写TE)、参数位置(posit1n)、参数ID、校验和和参数值(Pn)组成。1至43等位置的数据类型统一定义为字,Posit1n的取值范围为[1,43]。每包数据传输时可根据pos it 1n和ID唯一确定一个参数的信息,即在pos it 1n指示的位置存放该参数ID的参数值。经过最多43包数据,接收端即可得到当前参数查询(1000个参数中的43个)的所有参数?目息。
[0041 ] 发送参数时其数据包由包头、参数个数(total Elements,简写TE)、参数位置(posit1n)、参数ID、参数值位置(Pn)和校验和组成,其格式如图5所示:
[0042]包头+参数个数+参数位置+参数ID+参数值1+参数值2+…+参数值h+校验和
[0043]参数位置的取值范围为[l,h],每包数据传输时可根据posit1n和ID唯一确定一个参数的信息,即在参数位置(posit1n)指示的位置存放该参数ID的参数值。每包可传输h个参数值,经过最多h包数据,接收端即可得到当前参数查询的所有参数信息。
[0044]每包数据也可以考虑传输两个数据,也就需要包含两个参数ID,只是这样就应当对数据包结构的两个参数ID的位置顺序作明确定义。
[0045]2接收参数维护信息:
[0046]当需要修改当前发送参数集合时,通过接收串口发送的参数维护信息、解析该信息,并在非易失性存储中增加新记录达到维护发送参数的目的。根据此数据修改当前发送参数集合。此类数据应包含参数个数,各参数ID和各参数类型。参数维护信息的格式为:
[0047]0xlB+参数个数(n)+空格+第1个参数的ID及类型+第2个参数的ID及类型+...+第η个参数的ID及类型
[0048]发送参数值的过程如下:
[0049](1)从非易失性存储中获取最新记录,形成当前发送参数集合;
[0050](2)从当前发送参数集合中取出一个参数ID,并通过该ID查询发送参数总集获得该参数的存储地址;
[0051](3)根据该参数类型从参数的存储地址中读取参数值,并依次放入发送参数值数据包中,参数类型为字节、字时占用一个位置,为长字时占用两个连续的位置;
[0052](4)重复步骤(2)和步骤(3),处理所有当前参数查询集合中的数据;
[0053](5)每包发送参数值数据包中传输一个参数的posit1n和ID信息,按顺序最多43次后数据信息均发送完毕。
[0054]要实现全部1000个参数数据的传输,则继续建立新的记录(当前发送参数集合),按照以上步骤继续进行即可。
【主权项】
1.一种基于RS422协议的可变数据传输方法,包括以下环节: (1)建立发送参数总集,所述发送参数总集包含参数ID和参数地址,参数ID是用于标志参数身份唯一性的编号,通过该编号能够查询到参数的存储地址; (2)根据需求在非易失性存储中建立当前发送参数集合,所述当前发送参数集合包含参数个数、各参数ID和各参数类型; (3)从当前发送参数集合中取出参数ID,并通过参数ID查询所述发送参数总集获得相应参数的存储地址; (4)根据参数类型从参数的存储地址中读取参数值,并依次放入发送参数值数据包中;每包发送参数值数据包中包含一个或多个参数值以及该参数值在该发送参数值数据包中的存放位置和参数ID; (5)重复步骤(2)和步骤(3),直至将当前发送参数集合中所有参数ID对应的参数打包完成,同时按顺序依次传输各个发送参数值数据包; (6)当需求改变时,建立新的当前发送参数集合,并依次执行环节(3)-(5),完成数据传输任务。2.根据权利要求1所述的基于RS422协议的可变数据传输方法,其特征在于:所述发送参数值数据包由包头、参数个数、参数位置(pos it 1n)、参数ID、参数值和校验和组成;每包发送参数值数据包中传输一个参数值,即在发送参数值数据包中填入多个参数值但仅填入其中一个参数对应的参数ID,参数个数为该发送参数值数据包中填入参数值的个数,参数位置(posit1n)指示数据包中参数ID所对应的参数值在数据包中的存放位置。3.根据权利要求2所述的基于RS422协议的可变数据传输方法,其特征在于,所述发送参数值数据包的存储格式如下: 包头+参数个数+参数位置+参数ID+参数值1+参数值2+...+参数值h+校验和; 其中,参数位置的取值范围为[l,h]。4.根据权利要求2所述的基于RS422协议的可变数据传输方法,其特征在于,所述当前发送参数集合的存储格式如下: 记录编号+参数个数+第1个参数ID+第2个参数ID+...—第m个参数ID+第1个参数类型+第2个参数类型+...+第m个参数类型;111即为其中参数个数的值。5.根据权利要求4所述的基于RS422协议的可变数据传输方法,其特征在于:环节(6)具体是获取并解析参数维护信息,并在非易失性存储中增加新记录达到维护发送参数的目的;所述参数维护信息的存储格式为: OxlB+参数个数(n)+空格+第1个参数的ID及类型+第2个参数的ID及类型+...+第η个参数的ID及类型; 其中,η < ho
【专利摘要】本发明提出一种基于RS422协议的可变数据传输方法,通过建立发送参数总集、在线维护当前需发送参数集合两步,实现用户需求传输数据的实时配置。传输模型包括三种数据:发送参数总集、当前发送参数集合和传输数据。发送参数总集用于定义最广泛的可能需要传输的参数集合;当前发送参数集合表明目前系统需传输的参数集合;传输数据组织通过RS422通信的数据,在线接收新的当前发送参数集合,并将参数信息发送至其他系统。本发明具有存储空间小、运算量小,软件维护成本低的优点。本发明可用于航空发动机数字电子控制器与其他系统的数据通信,可扩展应用于其他串口传输协议、实现其他嵌入式系统间的传输数据的可配置,减小系统维护成本。
【IPC分类】H04L1/00
【公开号】CN105490780
【申请号】CN201510929748
【发明人】梁欣颖, 毛宁, 常博博, 马振华, 张弛, 刘骁
【申请人】中国航空工业集团公司西安航空计算技术研究所
【公开日】2016年4月13日
【申请日】2015年12月11日