探讨了如何基于615A协议在航空电子全双工交换以太网上实施高效的数据加载。实验证明提出的方法具有快速的响应和良好的稳定性。 This article discusses how to efficiently upload data based on 615A protocol by Avionics Full Duplex Switched Ethernet. The Experiment proves that the proposed method has quick response and good stability.
数据加载作为机载中央维护系统(CMS, Central Maintenance System)[
数据加载过程主要由3个阶段组成,即初始化阶段、文件名列表传输阶段和文件传输阶段。
初始化阶段:DL请求加载操作,目的通知MS要向它加载数据,MS接到消息后检查并决定该操作当前是否可以进行;若MS接受了加载请求,则进行第二阶段,否则DL通知操作者并终止加载操作。
文件名列表传输阶段:若MS接受了DL加载请求,DL发送操作员选择的数据文件名列表,MS收到后分析该列表中的文件在当前是否能被加载;在加载列表传输过程中,MS应向DL周期性地发送包含着加载进度和状态的状态文件;将MS分析列表后的结果(即哪些文件可以被加载)反馈给DL;DL将MS反馈结果通知操作者,由操作者决定是否选择MS接受的文件列表中的文件进行新一轮的文件名列表传输阶段,若操作者选择进行新一轮的文件名列表传输,则重复上述过程直到DL收到MS全部接受列表中的文件后进行第三个阶段,否则加载操作终止。
文件传输阶段:MS向DL发送指定文件传输请求,若DL接受请求,则向MS传输指定文件;在文件传输过程中,MS周期性地向DL发送包含着加载进度和状态的状态文件;MS发送状态文件的过程与数据加载的其它过程同步,且这个过程一直持续到数据加载结束。
数据加载的流程概括起来如图1所示。
为了有效地实现数据加载,DL与MS的良好交互是非常关键的。根据2.1节的数据加载流程,图2规划了在数据加载过程中,DL与MS的详细交互过程。
DL和MS通过TFTP协议(Trivial File Transfer Protocol)来完成所有的数据交换,被交换的数据包括被加载的数据文件和交换的协议文件。
在DL与MS交互过程中用到3种协议文件,分别是SNSMS_ULI、SNSMS_ULR以及SNSMS_US。
1) SNSMS_ULI
由MS创建仅被用来初始化加载操作的消息协议文件。SNSMS为唯一标示一个成员系统的标示编码,UI是加载初始化的英文缩写。
SNSMS_ULI由4个区域(部分)组成,其组成结构如表1所示。
文件长度表示在SNSMS_ULI中包含数据的字(一个字数据由8位数据组成)数量。
协议版本号决定了协议文件的结构,该参数使得DL和MS使用正确的结构来访问数据。
后面提到的文件长度和协议版本号的含义与这里解释的相同。
加载请求操作接受状态码的形式为XXXX16,它包含着加载请求的响应信息。该区域可能的状态码有两个,它们分别是加载请求被接受的000116状态码和加载请求被拒绝的100016。其中请求被拒绝的原因会在状态描述领域给出。
状态描述长度表示状态描述领域中包含的字符数量。
状态描述给出了状态码100016的原因,状态描述后面紧跟着0016以表明状态描述的结束。状态描述最多有255个字符。
2) SNSMS_ULR
由DL创建的被用于文件名列表传输阶段的协议文件,该文件包含着请求加载的文件名列表信息。ULR是加载文件名列表请求的英文缩写。
SNSMS_ULR由5个区域(部分)组成,其组成结构如表2所示。
“+”代表每一个头文件对应一个这样的领域。这为一个MS加载多个文件提供了解决方案。
头文件的数量表示加载的文件的数量,每一个将要加载的文件在SNSMS_ULR中对应一个头文件。任何一个SNSMS_ULR至少包含一个头文件。
头文件名称长度表示头文件名称中包含的字符数量。
头文件名称至多包含255个字符,后面紧跟着0016以表明头文件名称的结束。
后面出现的头文件的数量、头文件名称长度以及头文件名称与这里的含义相同。
3) SNSMS_US
由MS创建的包含着加载进度和状态的消息协议文件,该文件被用于数据文件列表传输阶段和文件传输阶段。US是加载状态的英文缩写。
SNSMS_US由16个区域(部分)组成,其组成结构如表3所示。
图1. 数据加载的基本流程
图2. DL与MS的交互原理
表1. SNSMS_ULI的结构
表2. SNSMS_ULR的结构
表3. SNSMS_US的结构
在列表传输阶段,头文件数量区域必须被设置为0。
加载操作状态码向DL表明了所有数据的总加载状态。该区域使用的状态码有:
000116——MS接受了加载操作,但加载仍没有开始;
000216——加载操作在进行中;
000316——加载操作成功完成;
100316——加载操作被MS中断,中断的原因在加载状态描述中给出;
100416——加载操作由于DLP向MS发送了一个中断错误消息而在MS中断;
100516——加载操作由于操作者发起了一个中断错误消息而在MS中断。
加载状态描述长度表示加载状态描述区域中包含的字符数量。
加载状态描述给出了加载操作状态码100316的原因描述,对于其它的状态码,该区域中的内容被忽视。加载状态描述以0016收尾来表明该描述的结束。
计数器初始值为000016;在发送SNSMS_US前,它的值由MS负责增长。当计数器的值增长至FFFF16后重新被置为000016。通过这种方式,DL能够探测到文件的重复。
例外计时器表示MS被期望保持沉默的时间。在这个时间内,MS不发送状态文件且对来自DL的任何请求不做响应。当加载操作状态码为000216时,例外计时器才能被使用。
估计时间表示完成加载操作被MS估计所需要的剩余时间。这个区域被设置为–1时表示MS没有给定估计时间。在加载过程中,一旦有可能MS就应该提供估计时间。估计时间只有当加载操作状态码为000216时才被MS使用。对于别的状态码,该区域被设置为000016。
加载总比例是已加载的数量与需要加载的总数量之比。
装载比例是针对一个具体数据文件来说的,它表示对该文件已加载的信息量与该文件信息总量之比。
装载状态是是针对一个具体数据文件fi来说的,它是XXXX16形式的状态码,表示当前该文件的加载状态。该区域使用的状态码有:
000116——MS接受了加载fi的操作,但仍没有开始加载fi;
000216——加载fi的操作在进行中;
000316——加载fi的操作成功完成;
100316——加载fi的操作被MS中断,中断的原因在对应的装载状态描述中给出;
100416——加载操作由于DLP向MS发送了一个中断错误消息而在MS中断;
100516——加载操作由于操作者发起了一个中断错误消息而在MS中断。
装载状态描述长度表示装载状态描述区域中包含的字符数量。
装载状态描述给出了装载操作状态码100316的原因描述,对于其它的状态码,该区域中的内容被忽视。装载状态描述以0016收尾来表明该描述的结束。
将各类软件和配置表从MMM加载到相应MS的实验表明:本文提出的中央维护数据加载方法具有快速的响应和良好的稳定性。
[
[