基于ICD的机电总线数据服务软件设计方法研究_第1页
基于ICD的机电总线数据服务软件设计方法研究_第2页
基于ICD的机电总线数据服务软件设计方法研究_第3页
基于ICD的机电总线数据服务软件设计方法研究_第4页
基于ICD的机电总线数据服务软件设计方法研究_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

要:为提高航空电子总线数据服务软件的开发效率和可靠性,采用基于ICD配置文件的通用化处理流程,每一条ICD配置信息对应总线中的一个信号,利用ICD配置文件转换工具对系统ICD进行预处理,设计了一种基于ICD的总线数据通用化处理方法,当用户ICD配置文件发生变更时,只需修改相应配置文件,无须改动代码,增强了软件的适应性和通用性。关键词:总线;ICD配置;机电系统;嵌入式软件1

现场总线技术的特点分析机电综合管理系统作为飞机的核心系统与飞机安全运行密切相关,其包含燃油系统、环控系统、液压系统、供电系统、起落架系统、舱门系统、照明系统等公共设备。机电综合管理系统涉及总线类型、信号管理类型众多,机载软件对总线的访问十分频繁,这将对硬件接口资源产生无序竞争,因此要求有统一的总线服务软件来完成控制、告警、画面页信号的集成发送。总线数据服务软件作为机电核心处理机上的总线通信大总管,统一负责外部消息的收发,并向各个机电功能应用分区提供信号输入/输出服务。以往的总线服务分区软件设计采用的是基于消息内容的处理模式,需为每条消息配置专用通信端口并编写发送和接收代码,总线数据服务软件代码量高达数万行,同时软件与系统ICD紧耦合,当后期系统ICD发生变化,总线数据服务软件也需要频繁更新迭代,频繁的软件变更和联试验证,对人力资源的耗费很大,维护成本高。针对总线数据服务软件的重要性和复杂性,为了解决传统总线服务分区软件开发和维护过程中出现的各种问题,本文设计了基于ICD的机电总线数据服务软件,根据通信分区的不同对配置表进行逻辑划分,提供为总线分区与同一分区通信消息自动生成统一结构体的功能,采用同一消息处理流程使软件与系统ICD解耦,降低了软件代码规模,提高了总线数据服务软件的可移植性与可维护性。2

软件架构与设计接口控制文件(InterfaceControlDocument,ICD)定义了飞机各系统之间交互的信号信息以及飞机各系统的控制、告警、显示等信号,是飞机设计文件的重要组成部分,用于存储外部设备与飞机各子系统分区进行交互的所有消息。通常系统ICD文件都是文本或表格的形式,无法直接以编程语言的形式被开发人员使用,因此需借助工具软件将其转化为头文件,本文涉及两个工具软件:分区间通信结构体生成工具与ICD结构体数据生成工具。基于结构化的思想,遍历系统ICD文件通过分区间通信结构体生成工具以分区为单位将其进行逻辑划分,并将总线分区与各子系统功能分区之间交互的所有消息根据消息源及目的的不同存储在不同的结构体中,而对于源和目的分区相同的所有消息则提取出该分区与总线分区收发的所有消息的有效属性,取并集作为统一的结构体的属性集合。总线分区发往功能分区的通信结构体如下所示:typedefunion{struct{intcontrol_signal_1;intdisp_signal_1;intwarning_signal_1;...intcontrol_signal_n;}IO_Partition1;intbuffer[n];}io_partition1;功能分区发往总线分区的通信结构体如下所示:typedefunion{struct{intcontrol_signal_1;intdisp_signal_1;intwarning_signal_1;...intcontrol_signal_n;}Partition1_IO;intbuffer[n];}partition1_io;将分区间通信结构体与系统ICD作为ICD结构体数组生成工具的输入,将系统ICD转换为头文件形式,并在系统ICD的基础上增加了两个属性:(1)消息接收、发送缓冲区:用于存放对应物理信号的值。(2)当前物理信号在对应分区间通信结构体中的变量序号:用于在总线分区与功能分区之间传输对应的物理信号。系统ICD文件预处理流程如图1所示。1394总线消息配置表在程序中的结构体设计如下:typedefstruct{charPathway_name[20];//通道名称charMessage_source[20];//消息源charMessage_destination[20];//消息目的intMessage_ID;//消息IDintMessage_length;//消息长度intMessage_refresh_period;//消息周期intMessage_transmission_type;//消息类型intDataWord_offset;//数据字偏移量charBusSignal_codename[50];//信号名称intBusSignal_width;//单个信息的占位宽度intBusSignal_lsb_position;//单个信息在其所在数据字中的起始位intPartition_Mask;//分区掩码int*pBuffer;//指向接收/发送缓冲区intindex;//变量在分区间通信结构体中的顺序}CfgTab;2

软件架构与设计总线分区和其他机电功能分区一样都属于应用分区,总线分区在机电核心处理机软件架构中所处位置如图2所示。总线分区包含初始化模块、通信模块、数据处理模块和健康管理模块,如图3所示。初始化模块包含配置信息加载,并根据加载的配置信息完成初始化资源创建,如缓冲区创建、初始化数据分发表等;通信模块包括基于总线消息配置信息的外部设备数据收发、基于机电功能分区数据发布订阅信息的核心机内部数据收发,即接收外部设备数据并通过分区间通信端口将数据发送到机电功能分区,或接收机电功能分区发来的数据,并调用总线服务接口向外部总线发送数据;分区间数据通信缓存管理使用操作系统的APEX接口和配置机制,总线分区与每个机电功能分区间分别配置4个端口,分别为队列消息发送端口、队列消息接收端口、采样消息写端口、采样消息读端口,交互的数据为该功能分区订阅和发布的数据;数据处理模块能够支持基于机电功能分区数据发布订阅信息的结构化数据组包和解包,其对应总线分区中的两个周期进程,即总线数据接收与总线数据发送;健康管理模块包括平台及应用健康状态监测、故障记录及上报。2.1总线数据接收如图4所示,总线数据接收任务包含三部分:接收总线数据、数据拆包、发送给应用分区。总线分区在每一个任务周期通过调用总线接收接口完成所有外部总线数据的接收,若总线数据校验正常则将总线数据保存至接收缓冲区中,若总线数据异常则进入异常处理分支;通过遍历总线接收ICD将接收缓冲区中的总线数据按对应字对应位拆包后赋值给分区间通信结构体,最后调用分区间通信服务将已拆包的总线数据发送至各个应用分区进行逻辑处理,分发过程不解析数据包内容,若分区间通信异常,则进入异常处理分支上报异常。2.2总线数据发送如图5所示,总线数据发送任务包含三部分:接收应用分区数据、数据组包、发送至外部总线。总线分区在每一个任务周期首先通过调用分区间通信服务将经应用分区逻辑处理后的数据接收至分区间通信结构体中,然后根据总线发送ICD将发送缓冲区的对应位清零,再将属于同一条消息的数据组包至对应的发送缓冲区中,最后调用总线发送接口将发送缓冲区中的数据同意发送至外部总线。3

结语本文提出了一种基于总线配置文件的总线数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论