一种基于数据特征的1553B总线消息分发配置单元的制作方法

文档序号:17985388发布日期:2019-06-22 00:22阅读:175来源:国知局
一种基于数据特征的1553B总线消息分发配置单元的制作方法
本发明涉及一种基于数据特征的1553b总线消息分发配置单元,属于遥测数据处理领域。
背景技术
:近年来导弹武器等飞行器系统中陆续引入1553b总线技术,大大减少了飞行器上设备及电缆数量,减轻了飞行器重量,同时高可靠双冗余1553b总线系统的应用,也大幅增加了信号可靠性,简化了测试流程。采用1553b总线后,飞行器上模拟信号转变为数字信号传输,实现了飞行器上信号数字化,满足了信息化要求,同时有利于各设备进行通用化设计,便于拓展功能。对于导弹武器等飞行试验,获得导弹在飞行过程中弹体各系统尤其是控制系统的状态参数和飞行弹道等数据是试验目的之一,为此总线远程终端需通过接口与遥测系统连接。总线远程终端以消息为基本单位对1553b总线上传输的数据进行接收记录,并对消息进行解析、打包、计算、响应等多种操作,并基于解析结果进行统一编帧下传到地面遥测系统。1553b总线技术的引入较大的改变了飞行器上遥测测量体制,同时也为遥测数据处理带来了巨大改变。与传统测量方式下的遥测数据相比,1553b总线数据在遥测帧中数据量大、采样率高,且在不同飞行器应用中往往总线数据结构不统一,数据处理要求复杂多样,传统嵌入式软件中总线分发方式多为根据总线消息地址、长度进行分支逻辑判断,在每个逻辑分支中进行数据处理,数据处理程序冗长,处理效率低,一旦需求有变化,需要重新编写数据处理程序,不易于扩展。技术实现要素:本发明的技术解决问题是:克服现有技术的不足,提供一种基于数据特征的1553b总线消息分发配置单元,精简了数据处理程序,大幅提高了总线消息分发效率,需求有变化时不需要更改处理程序,易于扩展。本发明的技术解决方案是:一种基于数据特征的1553b总线消息分发配置单元,包括总线信息映射模块、数据特征标定模块以及数据分流批量处理模块;总线信息映射模块:将接收消息的总线地址、子地址、收发状态和消息数据字长度进行映射,形成指令字,每个指令字唯一标识一条总线消息;数据特征标定模块:基于数据处理分发需求构建分发策略树,利用分发策略树对不同的消息进行分类标定,形成策略码,进而获得指令字和策略码的映射关系,该映射关系为数据分发查询表;数据分流批量处理模块:根据消息的指令字在数据分发查询表中进行策略码查询,根据查到的策略码进行对应的消息处理流程,实现数据处理分发。总线信息映射模块的实现流程为:(2.1)将接收消息的总线地址msg_addr左移11位,得到总线地址码addr_code;(2.2)将收发状态msg_mode左移10位,得到收发状态码mode_code;(2.3)将子地址msg_saddr左移5位,得到子地址码saddr_code;(2.4)将消息数据字长度msg_length设为长度码length_code;(2.5)通过做或运算得到指令字cmd_code,cmd_code=addr_code|mode_code|saddr_code|lenth_code。数据特征标定模块构建分发策略树的实现方法如下:(3.1)将“开始”设置为分发策略树的父节点;(3.2)将总线消息按照数据处理分发需求识别出原子操作;(3.3)根据原子操作生成对立原子操作,构建分发策略树;(3.4)根据各消息的处理流程,对无效子节点进行删减,形成策略树的子节点。所述步骤(3.2)中,原子操作识别的颗粒度为:所有原子操作在所有的处理流程动作中是一组极大无关组。原子操作识别的步骤如下:(5.1)列出所有消息处理的操作步骤,设这些操作步骤均为初始原子操作;(5.2)如某初始原子操作的后续节点有多类操作,则该操作保留,否则该初始原子操作与后续节点合并,直至合并后的操作后续节点存在分支;(5.3)所有初始原子操作均完成步骤(5.2)的处理后,得到的所有操作即为原子操作。数据特征标定模块形成策略码的方式如下:(6.1)分发策略树所有没有子节点的节点数量是策略码的数量,设为n;(6.2)对上述所有没有子节点的节点从左到右进行顺序编号,设为1,2,…,n,每个编号即为策略码,每个策略码对应从父节点到相应子节点对应的消息处理流程;(6.3)当完成子节点的标定后,对子节点的父节点进行标定,父节点的标定原则为以其右孩子的标定值为父节点的策略码数值。如果一个指令对应多个策略码,则在数据分发查询表按策略码递增的顺序依次存放。在数据分流批量处理模块中,如某个指令字对应了多个策略码,则依次执行每个策略码对应的消息处理流程,实现数据处理分发。数据分流批量处理模块的实现流程如下:(9.1)获取消息的指令字,在数据分发查询表中查找该指令字对应第一个策略码;(9.2)根据策略码进行相应的数据处理流程,进入步骤(9.3);(9.3)判断该消息指令字是否还有对应的策略码,如果没有则数据分发处理完成,如果还有策略码,则在数据分发查询表中查找该指令字对应的下一个策略码,重复步骤(9.2),直到该消息指令字没有对应的策略码为止。步骤(9.2)中,基于分流处理框架进行相应的数据处理流程,具体流程如下:(10.1)根据消息指令字当前查找到的策略码,访问分发策略树第一层父节点的策略码数值,根据当前查找到的策略码与父节点策略码数值,确定下一级处理流程是第一层父节点的左孩子还是右孩子;(10.2)继续访问第二层父节点,重复步骤(10.1),直到访问到最底层子节点,完成数据处理操作。与现有技术相比,本发明具有如下有益效果:(1)本发明避免了传统的总线信息逐条判断、对每一条消息展开逻辑处理的数据处理方式,采用总线消息映射到策略码的方式将消息提前分类,只需针对每一类消息处理策略开发数据处理程序,大大减少了软件代码量,如果总线消息处理方式需要更改,无需更改数据处理逻辑,仅调整策略码即可,快速调整消息处理方式,提高了产品研制效率,降低了由于产品逻辑更改引起的风险。(2)本发明提出了总线消息处理流程的原子操作判定方法,在覆盖所有消息处理需求的前提下,保证原子操作之间的无关性,为精简分发策略树提供基础。(3)本发明通过建立分发策略树实现了消息处理原子操作的连接关系,在进行开发、扩展时仅需针对原子操作进行编辑;在消息分流处理判断时,通过分流处理框架逐级访问分发策略数父节点进行二分法判断,可以达到批量消息处理的目的。(4)本发明通过分发策略树根据原子操作可构建全集策略树,依据实际处理需求可灵活删减,如后续需求增加,只需在树中对应层级添加新的子节点,开发对应的原子操作即可,方便框架进行扩展升级。(5)本发明可以根据策略码实现数据处理的状态转移,使得同一条消息可以自动切换到不同的处理流程中,无需再增加额外的、重复的处理逻辑,大幅提高了总线消息分发效率。附图说明图1为本发明组成示意图;图2为分发策略树示意图。具体实施方式如图1所示,本发明提供一种基于数据特征的1553b总线消息分发配置单元,包括总线信息映射模块、数据特征标定模块以及数据分流批量处理模块三部分。总线信息映射模块将接收的总线地址、子地址、收发状态、消息长度进行映射,形成指令字,每个指令字可以唯一标识一条总线消息。数据特征标定模块基于数据处理分发需求构建分发策略树,利用分发策略树对不同的消息进行分类标定,形成策略码,进而获得指令字和策略码的映射关系,该映射关系为数据分发查询表。数据分流批量处理模块根据消息的指令字在数据分发查询表中进行策略码查询,根据查到的策略码进行对应的消息处理流程,实现数据处理分发。如某个指令字对应了多个策略码,则依次执行每个策略码对应的消息处理流程,实现数据处理分发。具体地,总线信息映射模块的处理流程为:(1)将接收消息的总线地址(rt地址)msg_addr左移11位,得到总线地址码addr_code;(2)将收发状态msg_mode左移10位,得到收发状态码mode_code;(3)将子地址msg_saddr左移5位,得到子地址码saddr_code;(4)消息数据字长度msg_length设为长度码length_code;(5)通过做或运算得到指令字cmd_code,cmd_code=addr_code|mode_code|saddr_code|lenth_code。cmd_code通过消息的总线地址、子地址、收发状态以及数据字长度可以唯一标识一条总线消息,在数据分发处理之前通过总线信息映射模块可以基于总线信息构建唯一的指令字,省去总线消息的逐级判断,达到消息快速定位的目的。数据特征标定模块构建分发策略树的实现方法如下:a)列出每种总线消息处理类型的流程,确定流程的原子操作。流程中的第一个步骤为“开始”节点,该节点无操作意义,“开始”节点后的每个步骤称为原子操作,原子操作的划分颗粒度为:所有原子操作在所有的处理流程动作中是一组极大无关组,具体步骤为:在消息处理方法列表中列出所有消息处理的操作步骤,设这些操作步骤为原子操作;如某原子操作的后续节点有多类操作则该操作可以保留,否则该原子操作与后续节点合并;合并后的所有操作即为原子操作。;b)制造分支节点构建树结构,对所有原子操作添加对立操作,如针对“误码校验”添加“误码无校验”原子操作;c)利用步骤a)的原子操作和步骤b)的对立操作,依据总线消息处理流程构建完整的策略树;d)根据所有的总线消息处理流程,对找不到对应需求而产生的无效处理分支进行删减,从而得到基于总线消息处理流程的分发策略树。如图2所示为某个总线消息形成的策略树,图2中,除父节点“总线消息”为标题,其余节点均为数据处理的原子操作,在无子节点的节点上标注的数字是从父节点到该节点对应的策略码。形成策略码的方式如下:(1)分发策略树所有没有子节点的节点数量是策略码的数量,设为n;(2)对上述子节点从左到右进行顺序编号,设为1,2,…,n,每个编号即为策略码,每个策略码对应从父节点到相应子节点对应的消息处理流程。(3)当完成子节点的标定后,对子节点的父节点进行标定,父节点的标定原则为以其右孩子的标定值为父节点的策略码数值。对每一种软件实际接收的总线消息,在策略树中找到处理分支,从而确定总线消息策略码。如果一个指令对应多个策略码,则在数据分发查询表按策略码递增的顺序依次存放。数据分发查询表如表1所示。表1数据分发查询表指令字策略码1策略码2策略码3…0x34dc15end…0x567c2end0xa53356end数据分发查询表由指令字和策略码组成,指令字唯一标识了一条总线消息,一条总线消息对应若干条策略码,代表了若干种消息处理流程,end表明该总线消息后续无其他处理工作。数据分发查询表的指令字根据总线消息分发的频率进行排序,即消息发生的频率越高,其在数据分发查询表的位置越靠前。由于部分总线消息同时具备多种数据特征,即同一条消息经过不同的消息处理方法,或分发给不同的通讯链路,因此可基于策略码进行数据处理流程的状态转移,通过数据分流批量处理模块实现,其流程如下:(1)获取消息的指令字,在数据分发查询表中查找该指令字对应第一个策略码;(2)利用基于分发策略树的分流处理框架针对策略码进行相应的数据处理流程;(3)判断该消息指令字是否还有对应的策略码,如果没有(对应表1中end)则数据分发处理完成,如果还有策略码,则在数据分发查询表中查找该指令字对应的下一个策略码,重复步骤(2),直到该消息指令字没有对应的策略码为止。基于分发策略树的分流处理框架为通过从顶层父节点开始逐层划分总线处理策略,达到快速处理的目的。具体方法为:(1)根据消息指令字当前查找到的策略码,访问分发策略树第一层父节点的策略码数值,根据当前查找到的策略码与父节点策略码数值,确定下一级处理流程是第一层父节点的左孩子还是右孩子;(2)继续访问第二层父节点,重复步骤(10.1),直到访问到最底层子节点,完成数据处理操作。飞行器系统1553b远程终端嵌入式软件的多类别总线消息处理中,消息处理需求包含总线数据接收、数据误码校验、指令校验、关键指令响应发送、消息地址挑路、消息数据挑路、总线消息封包。基于上述需求,不同的总线消息有不同的处理功能,本发明基于数据需求特征对总线消息进行策略码映射,对消息实现快速划分,并通过流水线批量处理方法对总线消息进行不同功能的分发处理,同时对一条消息对应多种策略码实现处理方式的自动切换,从而实现总线数据解析和遥测下发控制,大幅提高了嵌入式软件的总线消息分发效率。本发明未详细说明部分属本领域技术人员公知常识。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1