一种IMA平台下分区间通信配置自动生成方法
文献发布时间:2023-06-19 12:22:51
技术领域
本发明属于航电系统机载网络领域,具体涉及一种IMA平台下分区间通信配置自动生成方法。
背景技术
综合化、模块化航空电子系统(IMA)已成为航空器的发展主要趋势,多应用于军用或民用先进飞机,并向高度综合化的方向持续发展。综合化航电系统将原来多个独立任务或应用集成到一个具有高速处理能力的计算机中,实现了资源共享、数据融合,提升了航空器的性能。此外,由于综合的复杂性,综合化电子系统也带来可靠性、安全性等方面诸多问题。国际ARINC组织针对航空电子系统综合化提出了健壮分区思想,制定了ARINC653标准。
ARINC653操作系统定义的分区间通过端口和通道进行通信。端口包括两种类型:采样端口和队列端口。顾名思义,采样端口以刷新率进行刷新,时刻保持最近一次刷新后的数据,而队列端口以消息队列的方式缓冲所接收到的消息。
但当前IMA平台下分区间通信配置均需通过手动配置完成,工作繁琐,容易出错,因此如何设计出一种IMA平台下分区间通信配置自动生成方法非常必要。
发明内容
为了解决背景技术中的问题,本发明提出了一种IMA平台下分区间通信配置自动生成方法,解决了传统手动配置工作繁琐,容易出差的问题。
一种IMA平台下分区间通信配置自动生成方法,所述方法包括:
S1,基于IMA工作场景定义用户通信需求ICD文件的格式,用户通信需求ICD文件用于描述用户通信需求;
S2,根据用户通信需求ICD文件生成分区端口配置;
S3,根据分区端口配置生成虚分区端口配置,以及分区端口与虚分区端口之间的链接关系;
S4,根据用户通信需求ICD文件生成分区端口与通信端口的链接关系。
本发明技术方案的特点和进一步的改进为:
(1)S1中,用户通信需求ICD文件的格式,具体包含:分区名称、分区版本、发送端口及接收端口。
(2)所述发送端口及接收端口具有如下属性:端口名称、端口类型、消息大小、端口源/目的分区;
端口名称用来标识分区通信采用的发送/接收端口名称;
端口类型包含:事件消息EVENT及周期消息PERIOD;
消息大小用来定义发送/接收消息的长度,消息大小小于等于底层通信端口支持的最大消息长度;
端口源/目的分区用来定义该消息的源/目分区。
(3)S2具体为:
根据用户通信需求ICD文件中定义的端口名称创建对应分区端口,分区端口包含如下属性:端口名称、端口类型、端口方向、消息大小、队列深度、协议、刷新频率。
(4)对于端口类型:如果用户通信需求ICD文件中端口类型为“EVENT”,则将该端口类型设置为“QueuingPort”,如果用户通信需求ICD文件中端口类型为“PERIOD”,则将该端口类型设置为“SamplingPort”;
端口名称与用户通信需求ICD文件中端口名称保持一致;
端口方向:如果用户通信需求ICD文件中端口名称为发送端口,则该端口方向设置为“SOURCE”;如果用户通信需求ICD文件中端口名称为接收端口,则该端口方向设置为“DESTINATION”;
消息大小:与用户通信需求ICD文件中端口的消息大小保持一致;
队列深度:如果用户通信需求ICD文件中端口类型为“EVENT”,则将该队列深度值设置为10,队列深度仅对队列端口适用;
协议:如果用户通信需求ICD文件中端口名称为发送端口,则协议的属性设置为“SENDER_BLOCK”;如果用户通信需求ICD文件中端口名称为接收端口,则协议的属性设置为“NOT_APPLICABLE;
刷新频率:如果用户通信需求ICD文件中端口类型为“PERIOD”,则刷新频率的值设置为“INFINITE_TIME”,刷新频率仅适用于采样端口。
(5)S3具体为:
创建虚分区,并根据分区端口名称依次完成虚分区中虚端口的创建,根据分区端口及已创建的虚端口建立端口链接关系;
在创建虚分区的过程中,首先获取模块配置文件中已存在分区的名称及ID
(6)根据分区端口名称依次完成虚分区中虚端口的创建中,虚端口包含如下属性:
端口类型:与分区端口中的端口类型保持一致;
端口属性:设置为PSEUDO_PORT;
端口名称:在分区端口名称前面添加“Pseudo_”字符;
方向:与分区端口方向相反;具体的,分区端口方向为“SOURCE”,虚端口方向应为“DESTINATION”;分区端口方向为“DESTINATION”,虚端口方向应为“SOURCE”;
消息大小:与分区端口定义的消息大小保持一致;
队列深度:与分区端口定义的队列深度保持一致;
协议:若分区端口协议的属性为“NOT_APPLICABLE”,虚端口协议属性为“SENDER_BLOCK”;若分区端口协议的属性为“SENDER_BLOCK”,虚端口协议属性应为“NOT_APPLICABLE”;
驱动名称:设置为“PseudoPQ/虚端口名称”;
刷新频率:设置为“INFINITE_TIME”。
(7)在根据已创建的分区端口及虚端口自动建立端口链接关系的过程中,根据端口名称进行自动索引;
如果分区端口名称与虚端口名称去除“Pseudo_”字符后一致,则认为它们为一组端口;如果分区端口名称包含“_Snd”,则该端口为源端口,虚端口为目的端口;如果分区端口名称包含“_Rcv”,则该端口为目的端口,虚端口为源端口;
并根据端口名称,填充每组端口对应的分区名称,并为每组端口分配一个通道ID,起始值为1。
(8)S4具体为:
读取底层网络驱动通信配置,根据消息类型、消息大小及源/目的分区自动匹配用户通信需求ICD文件中定义的端口名称,并将匹配结果作为分区端口与通信端口的链接关系。
本发明技术方案基于IMA平台工作场景,定义了一套ICD格式,用来描述用户通信需求;本方法可以根据用户通信需求ICD文件自动生成分区端口配置;本方法可以根据分区端口配置自动生成虚分区端口配置及端口链接关系;本方法可以根据用户通信需求ICD文件自动生成分区端口与通信端口映射关系。
附图说明
图1为本发明实施例提供的一种IMA平台下分区间通信配置自动生成方法流程示意图;
图2为本发明实施例提供的一种IMA平台工作场景见示意图;
图3为本发明实施例提供的ICD文件格式示意图;
图4为本发明实施例提供的GPM1分区配置文件中端口信息示意图;
图5为本发明实施例提供的GPM1模块配置文件中虚分区配置示意图;
图6为本发明实施例提供的GPM1模块配置文件中端口链接关系示意图;
图7为本发明实施例提供的GPM1分区端口与通信端口链接关系示意图;
图8为本发明实施例提供的GPM2分区配置文件中端口信息示意图;
图9为本发明实施例提供的GPM2模块配置文件中虚分区配置示意图;
图10为本发明实施例提供的GPM2模块配置文件中端口链接关系示意图;
图11为本发明实施例提供的GPM2分区端口与通信端口链接关系示意图。
具体实施方式
本发明实施例提供一种IMA平台下分区间通信配置自动生成方法,如图1所示,所述方法具体包括如下步骤:
首先,本发明实施例定义了一种IMA平台工作场景(见附图2),其中通用处理模块1GMP1及通用处理模块2GMP2运行多分区操作系统,用于保障应用软件的可靠性。
(1)根据用户通信需求定义ICD文件
图3为ICD文件格式,具体包含了分区名称、分区版本、发送端口及接收端口。如果通信中涉及多个分区,应进行分别定义。其中端口参数定义如下:
端口名称:用来标识分区通信采用的发送/接收端口名称,应具有唯一性,为便于理解,发送端口的名称命名规则为“模块名_Snd_xxx”,其中xxx为端口序号,起始值为001;接收端口的名称命名规则为“模块名_Rcv_xxx”,其中xxx为端口序号,起始值为001;
端口类型:分为事件消息(EVENT)及周期消息(PERIOD);
消息大小:用来定义发送/接收消息长度,该长度不应超过底层通信端口(AFDX、FC)支持最大的消息长度;
端口源/目的分区:用来定义该消息的源/目分区。
(2)根据ICD文件自动生成分区端口配置
为实现图4、图8中分区端口配置的自动生成,本文提出的方法依次根据ICD文件中定义的端口名称创建对应分区端口,分区端口属性定义如下:
端口类型:如果ICD文件中端口类型为“EVENT”,则将该端口类型设置为“QueuingPort”,如果ICD文件中端口类型为“PERIOD”,则将该端口类型设置为“SamplingPort”;
端口名称(Name):与ICD文件中端口名称保持一致;
端口方向(Direction):如果ICD文件中端口为发送端口,该属性设置为“SOURCE”;如果ICD文件中端口为接收端口,该属性设置为“DESTINATION”;
消息大小(MessageSize):与ICD文件中端口消息大小保持一致;
队列深度(QueueLength):如果ICD文件中端口类型为“EVENT”,则将该属性值设置为10,该属性仅对队列端口适用;
协议(Protocol):如果ICD文件中端口为发送端口,该属性设置为“SENDER_BLOCK”(发送块);如果ICD文件中端口为接收端口,该属性设置为“NOT_APPLICABLE(不适用)”;
刷新频率(RefreshRate):如果ICD文件中端口类型为“PERIOD”,则将该属性值设置为“INFINITE_TIME(刷新周期)”,该属性仅适用于采样端口。
(3)根据分区端口配置自动生成虚端口配置及端口链接关系
为实现图5、图9中虚分区端口配置及图6、图10端口链接关系的自动生成,本文提出的方法首先完成虚分区的创建,其次根据分区端口名称依次完成虚端口的创建,最后根据已创建的分区端口及虚端口自动建立端口链接关系。
在虚分区的创建过程中,该方法会首先获取模块配置文件(module.xml)中已存在分区的名称及ID
在虚端口创建过程中,该方法根据分区端口名称依次完成虚端口的创建,虚端口属性定义如下:
端口类型:与分区端口中定义保持一致;
端口属性(Attribute):设置为PSEUDO_PORT;
端口名称(Name):在原分区端口名称前面添加“Pseudo_”字符;
方向(Direction):与分区端口方向相反,如:分区端口方向为“SOURCE”,虚端口方向应为“DESTINATION”;分区端口方向为“DESTINATION”,虚端口方向应为“SOURCE”。
消息大小:与分区定义端口消息大小保持一致;
队列深度(QueueLength):与分区定义端口队列深度保持一致,仅对队列端口适用;
协议(Protocol):若分区端口协议属性为“NOT_APPLICABLE”,虚端口协议属性应为“SENDER_BLOCK”;分区端口协议属性为“SENDER_BLOCK”,虚端口协议属性应为“NOT_APPLICABLE”;
驱动名称(DriverName):设置为“PseudoPQ/虚端口名称”;
刷新频率(RefreshRate):设置为“INFINITE_TIME”,仅适用于采样端口。
在根据已创建的分区端口及虚端口自动建立端口链接关系的过程中,该方法根据端口名称进行自动索引,如果分区端口名称与虚端口名称去除“Pseudo_”字符后一致,则认为他们为一组端口。如果分区端口名称包含“_Snd”,则该端口为源端口,虚端口为目的端口;如果分区端口名称包含“_Rcv”,则该端口为目的端口,虚端口为源端口。该方法会根据端口名称,填充每组端口对应分区名称,并为每组端口分配一个通道ID,起始值为1。
(4)根据ICD文件自动生成分区端口与通信端口映射文件Map.txt
本文提到的底层通信端口为网络驱动(AFDX、FC)通信端口,该驱动通常运行于核心操作系统层(COS),每个通信端口代表一条通信链路,应包含通信端口号、消息类型(事件/周期)、消息大小及源/目的分区名称。
为实现图7、图11中分区端口与通信端口映射关系的自动生成,本文提出的方法首先会读取底层网络驱动通信配置,然后根据消息类型、消息大小及源/目的分区自动匹配ICD中定义的端口名称,最后将匹配结果保存到Map.txt文件。
本发明技术方案基于IMA平台工作场景,定义了一套ICD格式,用来描述用户通信需求;本方法可以根据用户通信需求ICD文件自动生成分区端口配置;本方法可以根据分区端口配置自动生成虚分区端口配置及端口链接关系;本方法可以根据用户通信需求ICD文件自动生成分区端口与通信端口映射关系。