分享
基于OpenDDS的ACARS系统设计与实现_陈忍.pdf
下载文档

ID:2369199

大小:2.93MB

页数:8页

格式:PDF

时间:2023-05-10

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于 OpenDDS ACARS 系统 设计 实现 陈忍
数据采集与处理 测控技术 年第 卷第 期收稿日期:基金项目:国家装备预研重点实验室基金项目()引用格式:陈忍,卢选民,蒋艺豪,等基于 的 系统设计与实现测控技术,():,():基于 的 系统设计与实现陈 忍,卢选民,蒋艺豪,李 剑(西北工业大学 电子信息学院,陕西 西安)摘要:在民航通信领域,飞机通信寻址与报告系统()通过机载管理单元实现了飞机与地面的实时通信。在研究 工作原理的基础上,结合数据分发服务框架()开发了一套 测试仿真系统,该系统可以模拟 的工作流程,在进一步研究 协议和 协议的基础上,设计了 报文相关的数据结构,提高了程序的内聚性和报文在实体内部的调用效率,实现了报文解析功能以及报文转换功能。关键词:飞机通信寻址与报告系统;中图分类号:文献标志码:文章编号:():,(,):,(),(),:;伴随着民用航空的发展,通信技术以及计算机技术也有了快速的进步,航空电子系统也因此迎来了一个快速上升期,逐渐成为大型飞机必不可少的组成部分。为解决民用航空中飞行员与地面只能使用纯语音交流的问题,美国航空无线电公司(,)推出了飞机通信寻址与报告系统(,),是一种基于卫星链路以及无线电技术的数字数据链系统,民用航班可以使用该系统和地面用户进行通信。一方面可以用于地面与飞行员之间的通信,另一方面还可以自动收集飞机的状态信息,从而解决了纯语音交流带来的弊端,也提高了对飞机的监控能力。由于 具有广泛的应用价值,目前已成为民用航空公司数据通信系统的重要组成部分。为推动我国 的技术发展,设计了一种用于模拟 工作流程的测试仿真系统,并基于数据分发服务(,)设计了通信中间件实现通信模块,同时设计出 报文相关的数据结构并实现协议的解析与转换。系统的框架结构模拟 的测试仿真系统包括 种实体:机载实体,用于模拟空地数据链中的机载端;远端地面站实体,用于模拟远端地面站,该实体可以与机载实体进行通信,模拟空地数据链路中的空地段;地面网络控制中心实体,该实体可以与远端地面站实体进行通信,模拟空地数据链的地地段。测试仿真系统各实体在工作的过程中涉及到相应协议报文的传输、解析、转换、转发和保存等工作;另外,还需要将处理好的数据输出到指定的界面上,系统的整体功能较为复杂。因此,测试仿真系统中的实体采用了模块化设计方案,将测试仿真系统中的每一个实体按照工作时具体的功能划分为多个程序模块,每一个程序模块都对外提供一些接口,模块之间通过调用相应接口来进行协同工作,如图 所示。图 测试仿真系统各实体总体架构测试仿真系统中的每一个实体分为 个模块,图中每一个直角方块代表一个模块,细箭头代表模块之间功能的调用关系。个模块分别为通信模块、核心功能模块、图形界面模块和附加功能模块,模块之间通过相互配合来实现测试仿真系统的各种功能。通信模块负责接收其他节点发送的数据,同时将处理好的数据发送到指定节点,该模块具备一对一、一对多、多对多的通信功能,并且具有较强的通用性以便于在 种不同实体上使用。核心功能模块负责将接收到的 和 报文进行处理,对于远端地面站仿真实体还会按照相应的协议规则将其转换为 或者 报文。报文在核心工作模块处理之后被传递给其他模块。图形界面模块是系统界面与内部程序连接的桥梁,一方面为其他模块提供数据显示服务,另一方面帮助使用者调用内部模块的功能。附加功能包括报文存储功能、报文读取功能和日志功能。报文保存功能可以将仿真实体接收到的报文按日期保存在本地。报文读取功能可以将存储在本地的报文数据读入,然后传递给需要的模块。日志功能则可以根据测试仿真系统中发生的事件生成相应的日志,生成日志后调用图形界面模块的接口即可完成日志的显示。通信中间件 简要介绍数据分发服务(,)是一种通信规范,该规范由对象管理组(,)负责定义。该模型基于“全局数据空间”的概念,对该空间中的数据感兴趣的应用程序都可以接入。数据分发服务中引入了数据订阅和数据发布机制,能够实现分布式系统各个数据节点之间高效率的匿名通信。根据该规范的定义,被划分为两层,一层是以数据为中心的订阅和发布层(,),该层的主要功能是确保数据的发送方能够高效、正确且稳定地将数据传递给指定的接收方。为了实现该功能,该规范规定了应用程序的接口(,)、通信双方使用 时的行为以及 的服务质量(,);另一层为数据本地重构层(,),该层的目的是将 层的服务进行抽象,方便上层应用使用。架构如图 所示。图 架构 层相关概念 层中最基本的概念是实体,一个应用程序想要使用 服务来进行数据传输,必须先调用给定的 去创建实体,之后再调用实体对象所包含的方法来进行数据传输。中包含多个实体,如域、域参与者、主题、发布者、数据写者、订阅者和数据读者。层部分实体以及关系如图 所示。发现机制 在 层中规定了基于信息存储库和(,实时发布订阅协议)发现两种发现机制。在基于信息存储库的发现机制中,实现 信息存储库的独立服务,以实现一个域中的各个节点的集中式发现,如图 所示。测控技术 年第 卷第 期图 层部分实体及其关系图 信息存储库机制 信息存储库相当于服务器,当有订阅者请求订阅一个主题的时候,信息存储库将定位该主题,并向其他已有的发布者通知新的订阅者的存在。信息存储库不参与数据的传播,它的作用仅限于使用了 的应用程序之间的相互发现。发现机制是通过对数据读者和数据写者的简单配置来实现的。如果将数据读取者或者数据写者的 发现机制激活,那么将使用默认的或者配置好的网络端口创建网络节点,之后 参与者便可以广播该数据读者或者数据写者的信息,使发布和订阅双方可以找到彼此,并通过可扩展的传输框架来建立连接,如图 所示。发布 订阅模型为解决多节点出现的网络拥塞、节点失效和传输失效等问题,中的 层引入了订阅 发布模型,如图 所示。的发布和订阅机制建立在全局数据空间(域)之上,应用组件分布在不同的节点上,向全局数据空间发布数据需要构造一个发布者,并通过其创建一个数据写者,使用者通过数据写者将数图 发现机制据写入,之后相应的发布者将数据发布在域中。从全局数据空间中获取数据需要构造一个订阅者并通过其创建一个数据读者,之后就可以从全局数据空间中获得数据。发布者和订阅者需要绑定到某个数据域(通过唯一编号来标识)下的某个主题(以主题名标识),处在相同数据域并且绑定了同一主题的发布者和订阅者在 匹配成功后,通过发布和订阅操作完成数据的传递。一个发布者或者订阅者只能绑定一个主题,但一个主题能够被多个发布者或者订阅者绑定,利用相同的主题便可以实现多对多的数据通信。图 订阅 发布模型使用订阅发布模型去除了网络中的中心节点,避免了由于一个中心节点失效而导致整个网络无法使用的问题,提高了网络的可靠性。另外该模型中一个节点发送的数据会被指定的节点直接接收,不会经过其他中间节点,提高了数据传输的效率。其次该模型中节点之间通信是匿名的,即无需指定对方的端口号以及 地址,极大地简化了节点的管理难度。最后,由于在该模型中节点与节点之间是解耦的,即通信双方不需要同时运行通信程序以建立连接,因此使得网络的可扩展性更强。通信中间件的开发将 引入测试仿真系统首先可以解决通信的松耦合性问题,即发送的节点数量可以动态变化,新的节点随时可以加入数据传输,而旧的节点也随时可以退出全局数据空间。另外,不仅可以实现数据的单播和广播,还能实现多对多的传输,还可基于 的 系统设计与实现以通过设置 策略以保证数据传输的可靠性。动态链接库形式的通信中间件增加了代码重用率,降低了程序各模块间的耦合度并且赋予测试仿真系统易于更新的优点。涉及到的 协议包括、两种工作模式,目前 的通信模式大部分仍为 模式。模式下,机载端发送的报文被所有通信范围内的地面站接收,这些远端地面站会把数据传递给地面网络控制中心,地面网络控制中心收到报文后会按照一定规则挑选其中一条转发给用户。为了尽可能还原出 的 模式通信,本文引入了 作为测试仿真系统实体之间的通信手段,构建出动态链接库形式的通信中间件。在使用 进行数据传输之前首先需要定义出数据传输的格式。使用的每种数据类型都是使用 的接口定义语言(,)定义的。使用 识别它传输和处理的数据类型。这些数据类型由 编译器和 编 译 器 处 理,生 成 必 要 的 代 码,用 进行传输。为了使开发出的数据分发中间件泛用性较强,应尽量简化传输的数据类型。本系统通信采用的数据类型在 文件中的定义如下:;其中,字符串类型的 代表传输的数据,当发送节点需要发送数据时,只需将数据整合为一个字符串赋值给 即可,当接收方的通信模块收到该消息时再将该字符串递交给解析模块进行解析,极大地提高了通信中间件的泛用程度。表示这种数据类型可以在 中与某种主题相绑定来进行传输。标识用于将某一个数据标识为该数据类型的键。主题类型中可以表示出 个或多个键,这些键用于标识主题中的不同 实例。键可以是包含 字段的基础类型,也可以是联合体或者结构体。本系统的通信中间件指定的键值为长整型的,用于标识唯一的 实例。完成了传输数据类型的定义后便可以构造和生成数据通信中间件。当使用中间件时,首先通过构造函数获得一个该类的实例,然后调用该实例所提供的方法,在调用过程中生成的如域参与者、订阅者等,实例则储存在相应的成员变量中。这样在使用该中间件进行开发时,开发人员只需要维护一个中间件提供的通信类的实例,而不需要额外定义和维护其他 中的变量,进一步降低了系统通信模块与其他模块的耦合程度。中间件接口如图 所示。图 中间件接口其中 和 分别为该类的构造函数和析构函数,在该过程中生成。使用者可以通过 来设置回调函数,设置好的回调函数由私有成员变量 指向,当节点接收到消息时,会自动调用回调函数。函数用于整个类的初始化,其中的 字段和 字段分别代表运行着 发现程序的服务器的 以及设置的相应端口,以便通信节点之间能够相互发现,域参与者工厂实例以及域参与者在这个阶段创建,并保存在私有属性 和 中。用于创建一个发布者并发布一个主题,创建的发布者被保存在私有变量 中;用于创建一个数据写者并发送一个信息,创建的数据写者被保存在私有变量 中;函数用于创建一个订阅者并订阅一个主题;用于接收某一主题的消息,其中第二个参数 为返回参数;函数和 函数分别用于取消发布和取消订阅某一个主题的消息。通信中间件性能测试由于性能测试需要创建较多的节点,并且每次测试需要更改发送信息的大小,因此在性能测试之前需要对程序进行一些改进。通信中间件性能测试程序如图 所示。测控技术 年第 卷第 期图 通信中间件性能测试程序该测试程序分为一个主线程和若干个子线程,进入测试程序后,可设置需要创建的节点数量、发布和订阅的主题名称、发送次数以及发送报文的内容。输入完成后主线程会创建相应数量的子线程,每个子线程都会发布或者订阅设定的主题,若有其他节点对该节点发布的主题进行订阅,则会将设置好的报文以 为周期循环发送,当发送次数到达设定次数时停止发送。对于接收消息的子线程,设置回调函数来改变其收到报文时的行为。通信中间件延迟测试示意图如图 所示。整个过程进行 次的数据传输,目的是为了消除一些偶然因素导致的随机误差的影响,使测试结果更加准确。图 通信中间件延迟测试示意图通过不断地变换发送字符串的大小,可以得到中间件在传输不同大小数据时产生的延迟,最终的测试结果如表 所示。表 通信中间件延迟测试结果字符串长度字符串大小时延 传输速率约 约 约 约 约 测试仿真系统传输的报文大小一般在 之间,从测试结果中可以看出,此时的延迟约为 左右,有效降低了报文传输的时延。另外当传输速率传输的字符串较大时,传输速率达到了局域网的带宽的最大值,说明通信中间件可以充分利用网络资源来进行数据传输。协议解析与转换本系统基于面向对象的程序设计思想,构造出 和 两种报文类,每一个解析后的 报文或者 报文以相应类的实例化对象进行存储。设计好的下行 类和下行 类的 类图如图 所示。图 类和 类每一个类具有 种构造函数,其中输入参数为字符串类型的构造函数对完整的报文进行解析,输入参数为向量形式的构造函数则是直接通过给定的各个字段来实例化一个对象,而默认的构造函数则需要与赋值

此文档下载收益归作者所有

下载文档
你可能关注的文档
收起
展开