0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于ICD的机电总线数据服务软件设计方法研究案例

机电信息杂志 来源:机电信息杂志 2023-11-21 15:58 次阅读

1 现场总线技术的特点分析

机电综合管理系统作为飞机的核心系统与飞机安全运行密切相关,其包含燃油系统、环控系统、液压系统、供电系统、起落架系统、舱门系统、照明系统等公共设备[1]。机电综合管理系统涉及总线类型、信号管理类型众多,机载软件对总线的访问十分频繁,这将对硬件接口资源产生无序竞争,因此要求有统一的总线服务软件来完成控制、告警、画面页信号的集成发送。

总线数据服务软件作为机电核心处理机上的总线通信大总管,统一负责外部消息的收发,并向各个机电功能应用分区提供信号输入/输出服务。以往的总线服务分区软件设计采用的是基于消息内容的处理模式,需为每条消息配置专用通信端口并编写发送和接收代码,总线数据服务软件代码量高达数万行,同时软件与系统ICD紧耦合,当后期系统ICD发生变化,总线数据服务软件也需要频繁更新迭代,频繁的软件变更和联试验证,对人力资源的耗费很大,维护成本高[2]。

针对总线数据服务软件的重要性和复杂性,为了解决传统总线服务分区软件开发和维护过程中出现的各种问题,本文设计了基于ICD的机电总线数据服务软件,根据通信分区的不同对配置表进行逻辑划分,提供为总线分区与同一分区通信消息自动生成统一结构体的功能,采用同一消息处理流程使软件与系统ICD解耦,降低了软件代码规模,提高了总线数据服务软件的可移植性与可维护性。

2软件架构与设计

接口控制文件(Interface Control Document,ICD)定义了飞机各系统之间交互的信号信息以及飞机各系统的控制、告警、显示等信号,是飞机设计文件的重要组成部分,用于存储外部设备与飞机各子系统分区进行交互的所有消息[3]。

通常系统ICD文件都是文本或表格的形式,无法直接以编程语言的形式被开发人员使用,因此需借助工具软件将其转化为头文件,本文涉及两个工具软件:分区间通信结构体生成工具与ICD结构体数据生成工具。

基于结构化的思想,遍历系统ICD文件通过分区间通信结构体生成工具以分区为单位将其进行逻辑划分,并将总线分区与各子系统功能分区之间交互的所有消息根据消息源及目的的不同存储在不同的结构体中,而对于源和目的分区相同的所有消息则提取出该分区与总线分区收发的所有消息的有效属性,取并集作为统一的结构体的属性集合[4]。

总线分区发往功能分区的通信结构体如下所示:

typedef union

{

struct

{

int control_signal_1;

int disp_signal_1;

int warning_signal_1;

...

int control_signal_n;

}IO_Partition1;

int buffer[n];

} io_partition1;

功能分区发往总线分区的通信结构体如下所示:

typedef union

{

struct

{

int control_signal_1;

int disp_signal_1;

int warning_signal_1;

...

int control_signal_n;

}Partition1_IO;

int buffer[n];

} partition1_io;

将分区间通信结构体与系统ICD作为ICD结构体数组生成工具的输入,将系统ICD转换为头文件形式,并在系统ICD的基础上增加了两个属性:

(1)消息接收、发送缓冲区:用于存放对应物理信号的值。

(2)当前物理信号在对应分区间通信结构体中的变量序号:用于在总线分区与功能分区之间传输对应的物理信号。

系统ICD文件预处理流程如图1所示。

ad0d83d4-8842-11ee-939d-92fbcf53809c.png

1394总线消息配置表在程序中的结构体设计如下:

typedef struct

{

char Pathway_name[20];//通道名称

char Message_source[20];//消息源

char Message_destination[20];//消息目的

int Message_ID;//消息ID

int Message_length;//消息长度

int Message_refresh_period;//消息周期

int Message_transmission_type;//消息类型

int DataWord_offset;//数据字偏移量

char BusSignal_codename[50];//信号名称

int BusSignal_width;//单个信息的占位宽度

int BusSignal_lsb_position;//单个信息在其所在数据字中的起始位

int Partition_Mask;//分区掩码

int * pBuffer;//指向接收/发送缓冲区

int index;//变量在分区间通信结构体中的顺序

}CfgTab;

2软件架构与设计

总线分区和其他机电功能分区一样都属于应用分区,总线分区在机电核心处理机软件架构中所处位置如图2所示。

ad33ce2c-8842-11ee-939d-92fbcf53809c.png

总线分区包含初始化模块、通信模块、数据处理模块和健康管理模块,如图3所示。

ad4c9506-8842-11ee-939d-92fbcf53809c.png

初始化模块包含配置信息加载,并根据加载的配置信息完成初始化资源创建,如缓冲区创建、初始化数据分发表等;

通信模块包括基于总线消息配置信息的外部设备数据收发、基于机电功能分区数据发布订阅信息的核心机内部数据收发,即接收外部设备数据并通过分区间通信端口将数据发送到机电功能分区,或接收机电功能分区发来的数据,并调用总线服务接口向外部总线发送数据;

分区间数据通信缓存管理使用操作系统的APEX接口和配置机制,总线分区与每个机电功能分区间分别配置4个端口,分别为队列消息发送端口、队列消息接收端口、采样消息写端口、采样消息读端口,交互的数据为该功能分区订阅和发布的数据;

数据处理模块能够支持基于机电功能分区数据发布订阅信息的结构化数据组包和解包,其对应总线分区中的两个周期进程,即总线数据接收与总线数据发送;健康管理模块包括平台及应用健康状态监测、故障记录及上报。

2.1

总线数据接收

如图4所示,总线数据接收任务包含三部分:接收总线数据、数据拆包、发送给应用分区。总线分区在每一个任务周期通过调用总线接收接口完成所有外部总线数据的接收,若总线数据校验正常则将总线数据保存至接收缓冲区中,若总线数据异常则进入异常处理分支;通过遍历总线接收ICD将接收缓冲区中的总线数据按对应字对应位拆包后赋值给分区间通信结构体,最后调用分区间通信服务将已拆包的总线数据发送至各个应用分区进行逻辑处理,分发过程不解析数据包内容,若分区间通信异常,则进入异常处理分支上报异常。

ad6ca7d8-8842-11ee-939d-92fbcf53809c.png

2.2

总线数据发送

如图5所示,总线数据发送任务包含三部分:接收应用分区数据、数据组包、发送至外部总线。总线分区在每一个任务周期首先通过调用分区间通信服务将经应用分区逻辑处理后的数据接收至分区间通信结构体中,然后根据总线发送ICD将发送缓冲区的对应位清零,再将属于同一条消息的数据组包至对应的发送缓冲区中,最后调用总线发送接口将发送缓冲区中的数据同意发送至外部总线。

ad8a0314-8842-11ee-939d-92fbcf53809c.png

3 结语

本文提出了一种基于总线配置文件的总线数据服务软件的设计方法,非常有效地解决了机电综合处理系统总线信号种类繁多、应用程序设计困难的问题。同时这样的软件架构灵活性非常好,当用户的ICD文件需要变更时,只需利用预处理工具软件重新生成头文件即可,而程序一般不需要做出改动,实现了软件与系统ICD解耦,并且这种统一的设计使程序很少出现细节上的错误,提高了软件的可靠性。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 缓冲器
    +关注

    关注

    6

    文章

    1578

    浏览量

    44888
  • ICD
    ICD
    +关注

    关注

    0

    文章

    14

    浏览量

    10014

原文标题:基于ICD的机电总线数据服务软件设计方法研究

文章出处:【微信号:机电信息杂志,微信公众号:机电信息杂志】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    中国机电数据

    2005年底,"中国机电数据在线"力争打造成为覆盖数十个机电市场领域、上千本权威市场研究报告的中国最大的机电
    发表于 01-09 13:48

    机电综合管理系统总线控制仿真软件设计

    机电综合管理系统总线控制仿真软件设计摘 要:新一代飞机需要综合管理软件将各个航空机电子系统有机地组合起来,其中
    发表于 10-23 17:54

    【NanoPi2申请】随身数据服务

    捣鼓自己的项目,看这块这么小的板子能做出啥玩意来,来把自己的产品做稳定做全面。项目描述:随身数据服务器,在家可以作为家庭的NAS网关产品,也可实现中继功能。家庭成员可以将自己的照片,音乐,视频,文件丢到该
    发表于 12-02 16:12

    BLE中数据服务和基本服务是什么作用?

    BLE中数据服务和基本服务是什么作用?对BLE中的这两个宏已经懵了,按照书上的说法,似乎SIMPLEPROFILE_SERV_UUID是数据服务,由用户自定义
    发表于 03-25 14:48

    RS485总线接口软件设计

    测试仪通过RS485工业总线与PC机进行通信,其硬件接口电路如图5所示。2 软件设计2.1 总体设计测试仪的软件开发环境采用的是Keil C,所有代码采用C语言编写。为了方便程序调试和提高
    发表于 06-14 05:00

    怎样去搭建一个数据服务

    文章内容如标题,本人是一名嵌入式程序员,熟悉硬件,并且长期使用C/C++编写程序,由于最近公司后台服务器工程师离职,后台数据服务器无法继续维护,于是就萌生了自己搭建一个数据服务器的想法。所谓
    发表于 12-21 06:42

    运用设计模式改进软件设计质量的研究

    针对应用设计模式改进软件设计质量中不规范的问题,提出一种运用设计模式改进软件设计质量的通用规范化方法。该方法基于客观度量标准、问题驱动和半形式化描述,减少了
    发表于 02-25 16:37 10次下载

    基于Web服务的元数据服务体系研究

    传统的元数据服务技术方案不能满足Internet 发展的需要,应用目前主流的Web 服务技术,采用XML作为元数据交换格式;使用XML Schema 作为元数据验证格式;采用SOAP
    发表于 06-20 08:39 16次下载

    基于Windows服务的网口与串口通信软件设计

    开发基于PC 机Windows 服务所实现的远程控制,在某些场合仍值得进一步研究。文中阐述了Windows 服务基本特性及架构设计,分析了网口与串口通信协议及其软件设计流程。就此,实
    发表于 12-25 15:23 51次下载

    波浪浮标服务器端软件设计_吴子岳

    波浪浮标服务器端软件设计_吴子岳
    发表于 03-19 11:28 0次下载

    基于UML的数据服务系统的建模刘士彬

    基于UML的数据服务系统的建模_刘士彬
    发表于 03-17 08:00 0次下载

    基于DSP的高精度测频方法软件设计_薛海东

    基于DSP的高精度测频方法软件设计_薛海东
    发表于 03-19 19:07 1次下载

    物联网将刺激大数据服务增长

    全球市场研究公司Technavio的最新分析显示,物联网的增长正在帮助大数据服务市场快速增长。
    的头像 发表于 12-25 16:15 3098次阅读

    恒讯科技详细解释:什么是大数据服务器?

    数据需要专门的软件、存储和计算技术来处理大量非结构化数据软件的多样性需要专门的服务器来满足大数据
    的头像 发表于 03-30 16:38 841次阅读

    基于VB的CAN总线测试软件设计

    电子发烧友网站提供《基于VB的CAN总线测试软件设计.pdf》资料免费下载
    发表于 10-13 11:39 0次下载
    基于VB的CAN<b class='flag-5'>总线</b>测试<b class='flag-5'>软件设计</b>