掌桥专利:专业的专利平台
掌桥专利
首页

一种基于配置表的机电通信分区数据服务方法

文献发布时间:2024-04-18 19:53:33


一种基于配置表的机电通信分区数据服务方法

技术领域

本发明涉及机载嵌入式软件领域,具体涉及一种基于配置表的机电通信分区数据服务方法。

背景技术

机电通信分区负责接收机电管理系统外部总线消息,并根据燃油分区、环控分区、液压分区、供电分区、起落架分区等各个机电功能分区的需求对消息进行拆包和分发;负责接收各个机电功能分区发来的消息并经过组包处理后发送到外部总线。机电通信分区对外与航电、飞管等飞机子系统直接通信,对内监测和控制燃油、环控、液压、供电、前轮转弯、起落架、刹车等机电子系统,交互消息种类繁多,信号量数以万计。

传统的机电通信分区软件与系统ICD(系统接口控制文件)紧耦合,通常采用消息—端口一对一的设计模式,为每条消息配置专用通信端口并实现消息通信代码,分区间消息收发函数上千个,代码规模多达数万行,且由于系统设计前期各系统需求无法落实到具体实现环节,需求变更频繁,后期ICD消息种类、数目、消息载荷等发生变化,通信分区软件都必须修改,维护成本高昂。

发明内容

有鉴于此,本发明提供了一种基于配置表的机电通信分区数据服务方法,以解决现有技术中机电通信分区软件与ICD紧耦合带来的软件频繁变更和维护成本高昂的技术问题。

本发明所提供的所述一种基于配置表的机电通信分区数据服务方法,机电通信分区包括通信分区和功能分区,所述方法包括:

配置系统接口控制文件,所述系统接口控制文件用于生成配置表;

基于系统接口控制文件,生成通信消息共用体,所述通信消息共用体包括发送通信消息共用体和接收通信消息共用体,所述通信消息共用体与单个所述功能分区一一对应生成;

基于所述系统接口控制文件和所述通信消息共用体头文件,生成总线消息收发配置表、输入信号处理及分区间转发配置表、输出信号处理及外部总线消息发送配置表;

所述功能分区通过所述通信消息共用体与所述通信分区进行数据传输,所述通信分区通过所述总线消息收发配置表、所述输入信号处理及分区间转发配置表、所述输出信号处理及外部总线消息发送配置表进行数据的收发和处理。

进一步的,所述总线消息收发配置表、所述输入信号处理及分区间转发配置表、所述输出信号处理及外部总线消息发送配置表的形式为结构体数组。

进一步的,通信消息共用体、所述总线消息收发配置表、所述输入信号处理及分区间转发配置表、所述输出信号处理及外部总线消息发送配置表均独立固化在FLASH中。

进一步的,所述通信分区和所述功能分区基于所述方法实现信号输入方向的数据传输,包括:

所述通信分区基于所述总线消息收发配置表,根据消息ID完成所述总线消息的接收;

所述通信分区基于所述输入信号处理及分区间转发配置表,对所述总线消息进行解包,将所述总线消息包含的N个信号值写入各功能分区的对应的第一通信消息共用体;

所述通信分区将信号值写入完成的各所述第一通信消息共用体发送至各所述功能分区。

进一步的,所述输入信号处理及分区间转发配置表的每一行对应一个不同的信号,根据各信号在总线消息载荷中的偏移字、字内偏移起始位以及所占位宽提取出各功能分区所需的信号值,再根据分区掩码、信号在所述第一通信消息共用体中的索引号,将各信号值写入对应的所述第一通信消息共用体中。

进一步的,所述通信分区和所述功能分区基于所述方法实现信号输出方向的数据传输,还包括:

所述通信分区接收各所述功能分区发来的第二通信消息共用体,所述第二通信消息共用体包括各功能分区发给通信分区的各通信消息共用体;

所述通信分区基于所述输出信号处理及外部总线消息发送配置表,对各所述第二通信消息共用体进行消息解包;

所述通信分区将各所述第二通信消息共用体内的信号值写入到对应总线消息的载荷区指定区域;

所述第二通信消息共用体内的信号值均处理完毕后,所述通信分区基于总线消息收发配置表将对应总线消息发送至外部设备。

进一步的,所述输出信号处理及外部总线消息发送配置表的每一行对应一个不同的信号,根据各信号在所述第二通信消息共用体中的索引号提取出要对外发送的信号值,再根据信号对外发送所使用的总线消息ID、在总线消息载荷中的偏移字、字内偏移起始位以及所占位宽,将各信号值写入到对应总线消息的载荷区指定区域。

与现有技术相比,本发明采用的上述至少一个技术方案能够达到的有益效果至少包括:本发明通过提供一种基于配置表的机电通信分区数据服务方法,实现了机电通信分区软件与系统ICD的解耦,后期系统ICD变更不会导致通信分区软件的变更,显著提高了机电通信分区软件的可移植性和健壮性,显著节省了软件维护成本。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例提供的通信消息共用体生成流程示意图;

图2是本发明实施例提供的消息处理及收发配置表生成流程示意图;

图3是本发明实施例提供的通信分区基于配置表处理及收发消息的流程示意图。

具体实施方式

下面结合附图对本申请实施例进行详细描述。

以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本发明通过提供一种基于配置表的机电通信分区数据服务方法,机电通信分区软件基于统一的总线消息收发及内部分发配置表表头和分区间通信消息共用体,通过检索总线消息ID、信号变量、消息载荷字段、分区掩码等关键元素,完成1394总线、TT-FC总线、429总线等各类总线消息的批量化收发、信号处理和重组式分发,实现了机电通信分区软件与系统ICD的解耦,后期系统ICD变更不会导致通信分区软件的变更,显著提高了机电通信分区软件的可移植性和健壮性,显著节省了软件维护成本。

本发明所提供的所述一种基于配置表的机电通信分区数据服务方法,机电通信分区包括通信分区和功能分区,所述方法包括:

步骤S100:配置系统接口控制文件,所述系统接口控制文件用于生成配置表;

步骤S200:基于系统接口控制文件,生成通信消息共用体,所述通信消息共用体包括发送通信消息共用体和接收通信消息共用体,所述通信消息共用体与单个所述功能分区一一对应生成;

进一步的,如图1所示,步骤S200还包括:对系统ICD,即系统接口控制文件文件的正确性和一致性进行校验,包括是否存在重名信号校验和是否存在信息项不全,并根据校验结果对系统ICD文件进行修改后重新校验;若ICD文件校验无误,根据ICD文件中的消息目的地(Message_destination)、分区掩码(Partition_Mask)和BusSignal_codename(信号名称)关键信息,为通信分区与各个功能分区之间的消息收发分别生成一个发送消息结构体和一个接收消息结构体。

具体而言,通过配置系统接口控制文件(即ICD)生成配置表,从而生成一个通用的消息共用体。通信分区软件在处理分区间消息时,只需通过查询所生成的配置表,获取信号在消息共用体中的索引号即可完成相关操作,而无需依赖信号变量名称,从而实现与系统ICD的解耦。通信消息共用体包括发送通信消息共用体和接收通信消息共用体,针对每个功能分区,分别生成通信分区与其双向通信的两个消息共用体,通信分区发送给该功能分区的消息共用体包括了源自外部总线消息并经过通信分区筛选的输入信号;功能分区发送给通信分区的消息共用体包括了功能分区根据业务逻辑解算后需由通信分区统一对外输出的信号。

进一步而言,通过遍历系统ICD配置表并以分区为单位进行逻辑划分,提取出通信分区与EMCP内部各分区之间通信时的所有消息的有效属性。基于结构化的思想,可将通信分区与机电管理计算机功能分区之间交互的所有消息根据源及目的分区的不同存储在不同的结构体中。通信分区与各个机电功能分区之间收发消息所需的通信消息共用体均通过专用的软件工具基于系统ICD生成,独立固化、独立升级。

步骤S300:基于所述系统接口控制文件和所述通信消息共用体头文件,生成总线消息收发配置表、输入信号处理及分区间转发配置表、输出信号处理及外部总线消息发送配置表;

进一步的,所述总线消息收发配置表、所述输入信号处理及分区间转发配置表、所述输出信号处理及外部总线消息发送配置表的形式为结构体数组。

进一步的,通信消息共用体、所述总线消息收发配置表、所述输入信号处理及分区间转发配置表、所述输出信号处理及外部总线消息发送配置表均独立固化在FLASH中。

具体而言,如图2所示,基于系统ICD和分区间通信消息共用体头文件,生成消息处理及收发配置表,包括总线消息收发配置表、输入信号处理及分区间转发配置表、输出信号处理及外部总线消息发送配置表。其中,总线消息收发配置表、输入信号处理及分区间转发配置表、输出信号处理及外部总线消息发送配置表的表现形式为结构体数组,以供通信分区软件访问。并在生成配置表之前,对系统ICD和分区间通信消息共用体头文件进行校验,如果验证通过,则生成消息处理及收发配置表;如果验证不通过,则修改分区间通信消息共用体头文件后,重新校验。

总线消息收发配置表用于总线消息级通信,总线消息接收所需的结构体数组包括消息ID、消息长度和消息缓冲区地址等信息;输入信号处理及分区间转发配置表所需的结构体数组包括消息ID、消息长度、源、目的地、信息所在数据字偏移量、信号在数据字中的起始位和位宽、信号变量名、分区掩码、所在消息缓冲区首地址等信息。输出信号处理及外部总线消息发送配置表用于对接收到的外部总线消息和功能分区消息进行信号级处理,以供通信分区不依赖于消息共用体中的成员变量名称进行组包、解包。上述总线消息收发配置表、输入信号处理及分区间转发配置表、输出信号处理及外部总线消息发送配置表作为独立于通信分区软件的配置项管理,独立固化、独立升级。

步骤S400:所述功能分区通过所述通信消息共用体与所述通信分区进行数据传输,所述通信分区通过所述总线消息收发配置表、所述输入信号处理及分区间转发配置表、所述输出信号处理及外部总线消息发送配置表进行数据的收发和处理。

进一步的,如图3所示,步骤S400中,所述通信分区和所述功能分区基于所述方法实现信号输入方向的数据传输,包括:

所述通信分区基于所述总线消息收发配置表,根据消息ID完成所述总线消息的接收;

所述通信分区基于所述输入信号处理及分区间转发配置表,对所述总线消息进行解包,将所述总线消息包含的N个信号值写入各功能分区的对应的第一通信消息共用体;

所述通信分区将信号值写入完成的各所述第一通信消息共用体发送至各所述功能分区。

进一步的,所述输入信号处理及分区间转发配置表的每一行对应一个不同的信号,根据各信号在总线消息载荷中的偏移字、字内偏移起始位以及所占位宽提取出各功能分区所需的信号值,再根据分区掩码、信号在所述第一通信消息共用体中的索引号,将各信号值写入对应的所述第一通信消息共用体中。

具体而言,总线消息收发、输入/输出信号处理及分发引擎采用表驱动模式,基于总线消息收发配置表、输入信号处理及分区间转发配置表、输出信号处理及外部总线消息发送配置表和分区间通信消息共用体,依据消息ID、分区掩码、信号变量、偏移字、偏移位、位宽等关键属性完成1394、TT-FC等总线消息的收发、解析、组装及分区间转发,以及功能分区消息的解析、组装。上述配置表均独立固化在FLASH中,通信分区软件从FLASH中读取并解析配置表,采用轮询处理的方式,周期性地完成总线消息接收及分区转发任务、机电功能分区消息接收及重组发送任务。通过调用通用化、标准化的处理函数对大规模ICD数据内容进行批处理,实现了代码与ICD数据的解耦。

具体而言,信号输入方向具体实施方法包括:基于总线消息接收配置表,根据消息ID完成所有外部总线消息的接收;基于输入信号处理及分区间转发配置表,对总线消息进行解包及分发。配置表的每一行对应一个不同的信号,根据信号在总线消息载荷中的偏移字、字内偏移起始位以及所占位宽提取出功能分区所需的信号值,再根据分区掩码、信号在分区间通信消息共用体中的索引号,将信号值写入相应的分区间通信消息共用体。所有信号处理完毕后,调用分区间通信服务,将消息结构体发送至功能分区。

进一步的,如图3所示,步骤S400中,所述通信分区和所述功能分区基于所述方法实现信号输出方向的数据传输,还包括:

所述通信分区接收各所述功能分区发来的第二通信消息共用体,所述第二通信消息共用体包括各功能分区发给通信分区的各通信消息共用体;

所述通信分区基于所述输出信号处理及外部总线消息发送配置表,对各所述第二通信消息共用体进行消息解包;

所述通信分区将各所述第二通信消息共用体内的信号值写入到对应总线消息的载荷区指定区域;

所述第二通信消息共用体内的信号值均处理完毕后,所述通信分区基于总线消息收发配置表将对应总线消息发送至外部设备。

进一步的,所述输出信号处理及外部总线消息发送配置表的每一行对应一个不同的信号,根据各信号在所述第二通信消息共用体中的索引号提取出要对外发送的信号值,再根据信号对外发送所使用的总线消息ID、在总线消息载荷中的偏移字、字内偏移起始位以及所占位宽,将各信号值写入到对应总线消息的载荷区指定区域。

具体而言,信号输出方向具体实施方法包括:调用分区间通信服务,接收功能分区发来的结构体消息;基于分区输出信号处理及外部总线消息发送配置表,对结构体消息中进行解包和消息重组。配置表的每一行对应一个不同的信号,根据信号在分区间通信消息共用体中的索引号提取出要对外发送的信号值,再根据信号对外发送所使用的总线消息ID、在总线消息载荷中的偏移字、字内偏移起始位以及所占位宽,将信号值写入指定ID的总线消息的载荷区指定区域。来自所有功能分区的所有信号均处理完毕后,基于总线消息发送配置表,根据消息ID完成所有总线消息的对外发送。

实施例一

本实施例中,以1394总线为例进行说明,具体实施方法包括如下步骤:

1、基于系统ICD生成分区间通信消息共用体;

首先,对系统ICD文件的正确性和一致性进行校验:若ICD文件校验无误,根据ICD文件中的消息目的地(Message_destination)、分区掩码(Partition_Mask)和BusSignal_codename(信号名称)关键信息,为通信分区与各个功能分区之间的消息收发分别生成一个发送消息结构体和一个接收消息结构体。

举例而言,生成通信分区与EPS分区之间收发消息所用的结构体共2个,格式如下:

//EPS分区发送给通信分区的通信消息共用体体格式定义:

2、基于系统ICD和分区间通信消息共用体生成总线消息收发配置表、输入信号处理及分区间转发配置表、输出信号处理及外部总线消息发送配置表。

(1)生成1394总线消息收发配置表,用于通信分区收发1394总线消息;

1394总线消息发送配置表以结构体数组的形式存在,结构体成员包含1394总线消息发送ID、消息发送长度和消息发送缓冲区首地址如下:

1394总线消息接收配置表以结构体数组的形式存在,结构体成员包含1394总线消息接收ID、消息接收长度和消息接收缓冲区首地址如下:

R1394Cfg REC_1394MSG[REC_1394MSGID_NUM]=

(2)生成输入信号处理及分区间转发配置表和输出信号处理及外部总线消息发送配置表;输入信号处理及分区间转发配置表以结构体数组的形式存在,结构体成员包含1394消息接收ID、消息长度、消息接收缓冲区首地址、消息源、消息目的地、信号名称、信号偏移字、信号起始位、信号位宽、分区掩码、信号在结构体中的索引号等信息,如下所示:

输出信号处理及外部总线消息发送配置表以结构体数组的形式存在,针对燃油、液压等各个功能分区分别生成一个结构体数组。结构体成员包含1394消息发送ID、消息长度、消息发送缓冲区首地址、消息源、消息目的地、信号名称、信号偏移字、信号起始位、信号位宽、分区掩码、信号在结构体中的索引号等信息,如下所示:

3、基于总线消息收发配置表、输入信号处理及分区间转发配置表、输出信号处理及外部总线消息发送配置表为机电功能分区提供数据输入输出服务。

(1)机电通信分区周期性接收1394总线数据,按各个功能分区需求进行数据分发,包括:

①、基于1394总线消息接收配置表,调用1394总线消息接收函数,完成所有Message_ID对应消息的接收。从配置表的第一行开始,顺序处理至最后一行;

②、基于输入信号处理及分区间转发配置表,对1394总线消息进行解包,提取出功能分区所需的信号值并赋值到相应的分区间通信消息共用体。从配置表的第一行开始,顺序处理至最后一行。每一行的处理流程如下:

根据DataWord_offset(信号值所在的消息偏移字)定位到要操作的1394消息载荷字(UINT32字);

根据BusSignal_lsb_position(信号在消息字内的偏移位)和BusSignal_width(信号所占位数),解析出所需的数据;

根据分区掩码(Partition_Mask)确定订阅该信号的功能分区,然后根据信号在结构体中的索引号(BusSignal_codename_Index)将上一步解析出的数据写入准备发往该功能分区的分区间通信消息共用体中的BusSignal_codename(信号名称);

③、调用分区间采样消息写入函数,将对应的大结构体消息分别发送至各个功能分区。

(2)机电通信分区周期性接收各个功能分区的消息,经过消息重组后发送到1394总线上。

①、对各个功能分区依次进行处理,包括接收和处理分区间结构体消息。以接收和处理燃油功能分区发给通信分区的结构体消息为例:

首先,调用分区间采样消息读取函数,接收燃油功能分区发来的大结构体消息;

如果分区间采样消息读取成功且消息为有效,则基于燃油分区输出信号处理及外部总线消息发送配置表将结构体消息中的各个信号值赋给1394总线消息载荷指定位置,从配置表的第一行开始,顺序处理至最后一行。具体步骤如下:

步骤一、根据DataWord_offset(信号值所在的消息偏移字)定位到要操作的1394消息载荷字(UINT32字);

步骤二、根据BusSignal_lsb_position(信号在消息字内的偏移位)和BusSignal_width(信号所占位数),将该载荷字中指定位域清0;

步骤三、根据信号变量下标(BusSignal_codename_Index)从燃油分区发来的结构体消息中解析出信号值;

步骤四、根据DataWord_offset(信号值所在的消息偏移字)、BusSignal_lsb_position(信号在消息字内的偏移位)和BusSignal_width(信号所占位数)关键变量,将上一步解析出的信号值写入该信号对应Message_ID的1394总线消息载荷的相应位置。

处理完燃油分区发来的全部信号后,继续处理其他功能分区,直至将所有功能分区的输出信号全部写入总线消息载荷区。

②、基于1394总线消息发送配置表,调用1394总线消息发送函数,完成Message_ID对应消息的发送。从配置表的第一行开始,顺序处理至最后一行。

至此,通信分区完成一个周期的数据IO服务。

本发明通过以上实施例实现了如下技术效果:

本发明提供了一种基于配置表的机电通信分区数据服务方法,具体设计了一种基于配置表的内/外部消息收发及处理方法。机电通信分区软件基于统一的总线消息收发及内部分发配置表表头和分区间通信消息共用体,通过检索总线消息ID、信号变量、消息载荷字段、分区掩码等关键元素,完成1394总线、TT-FC总线、429总线等各类总线消息的批量化收发、信号处理和重组式分发,实现了机电通信分区软件与系统ICD的解耦,后期系统ICD变更不会导致通信分区软件的变更,显著提高了机电通信分区软件的可移植性和健壮性,显著节省了软件维护成本。

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

相关技术
  • 一种新型狗尾草烟花成型工艺
  • 一种新型液压成型手推车的制备工艺
  • 一种新型发动机外涵机匣成型工艺及其制成的外涵机匣
  • 一种新型迅速成型直升机坪标识施工工艺的实施方法
  • 一种新型纸尿裤成型工艺
  • 一种纸尿裤腰围橡筋成型装置及成型工艺
技术分类

06120116339355