首页 ARINC615数据加卸载协议逻辑实现与测试

ARINC615数据加卸载协议逻辑实现与测试

举报
开通vip

ARINC615数据加卸载协议逻辑实现与测试ARINC615数据加卸载协议逻辑实现与测试 10701 1020121184 代 号 学 号 分 类 密 级 公开 TP393.04 题(中、英文)目 ARINC615 数据加卸载协议逻辑实现与测试 Implementation and Testing of The ARINC615 Data Loading and Unloading Protocol Logic作 者 姓 名 冯旭斌 指 导 教 师 姓 名 、职 务 李龙海 副教授 学 科 门 类 工学 学科、专业 计算机系统结构 提交论文...

ARINC615数据加卸载协议逻辑实现与测试
ARINC615数据加卸载 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 逻辑实现与测试 10701 1020121184 代 号 学 号 分 类 密 级 公开 TP393.04 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 (中、英文)目 ARINC615 数据加卸载协议逻辑实现与测试 Implementation and Testing of The ARINC615 Data Loading and Unloading Protocol Logic作 者 姓 名 冯旭斌 指 导 教 师 姓 名 、职 务 李龙海 副教授 学 科 门 类 工学 学科、专业 计算机系统结构 提交论文日期 二?一三年一月 西安电子科技大学 学位论文创新性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究 所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名: 日期 西安电子科技大学 关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 ,即:研究 生在校攻读学位期间论文工作的知识产权单位属于西安电子科技大学。本人保证 毕业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。 (保密的论文在解密后遵守此规定)本学位论文属于机密,在年解密后适用本授权书。 本人签名: 日期导师签名: 日期 摘 要 本论文主要研究了 ARINC(美国爱瑞克)公司定义的 ARINC615数据加卸载 协议(以下称为 ARINC615 协议),并且给出了在特定的硬件环境下该协议的实 现方法,最后对该协议进行了初步测试。 ARINC615 协议是一种基于 ARINC429 总线的数据加卸载协议,该总线连接 的进行数据传输的两端分别叫做数据加载器(以下称为加载端)和数据被加载器 (也称为目标机,以下称为被加载端)。在以 AFDX(Avionics Full Duplex Switched Ethernet 航空电子全双工交换以太网)网络为核心的航电网络中,加载端一般为基 于 AFDX通信的端系统设备,被加载端一般为基于 ARINC429的端系统设备。 本论文主要的工作有,首先描述了本论文中所讨论的 ARINC615 协议所运行 的实际硬件环境与协议栈结构,介绍了 ARINC615 协议的相关定义;其次介绍了 有限状态机模型和该协议基于有限状态机模型的实现方法;然后介绍了为了屏蔽 链路层协议的差异而使用的协议适配层的原理与实现过程;由于被加载端 ARINC615协议有可能运行在无磁盘文件系统的硬件上,所以本文还介绍了一种在 内存中模拟文件系统的方法??虚拟文件系统(VFS)的原理与实现;最后本论文 介绍了对 ARINC615协议的初步测试过程。 关键词:ARINC615协议 有限状态机 协议适配层 虚拟文件系统 测试Abstract This paper mainly studies the ARINC615 data loading and unloading protocolhereinafter referred to as the ARINC615 protocol which is defined by Aeronautical Radio Inc, and gives the implementation of the ARINC615 protocol based on specific hardware environment. In addition, this paper preliminarily tests the ARINC615 protocolThe ARINC615 protocol is a data loading and unloading protocol based on ARINC429 bus. Two ends of the connection for data transmission of the ARINC429 bus are called data loader hereinafter referred to as the loading end and data loadeder also referred to as the target machine, hereinafter referred to as loaded end respectively. In a avionic network which regards AFDXAvionics Full Duplex Switched Ethernet network as its core, the loading end is generally an end system equipment based on AFDX communication and the loaded end generally end system equipment based on ARINC429This paper has finished following work. Firstly, it describes the practical operating hardware environment which the ARINC615 protocol is based on. Then it also describes the actual protocol stack structure and introduces related definitions of the ARINC615 protocol. Secondly, it describes finite state machine model and the implementation of the ARINC615 protocol logic based on the model. Then it describes the principles and implementation of protocol adaptation layer which is used for shielding the differences among all the link layer protocols. Because of the occasion that the loaded end may run in the hardware which has no file system, this paper describes a method of the simulation of the file system in memory, that is principles and implementation of the Virtual File SystemVFS. Finally, it introduces the preliminary testing process of the ARINC615 protocol Keywords: ARINC615 protocol Finite state machine Protocol adaptation layerVFS Test 1 目 录 目 录 第一章 绪论1 1.1 协议栈结构概述. 1 1.2 协议系统结构概述 2 1.3 本文内容安排. 3 1.4 本章小结 4 第二章 ARINC615协议概述5 2.1 ARINC615基本数据单元定义 5 2.2 配置文件 CONFIG.LDR定义. 6 2.3 ARINC615协议功能定义7 2.4 本章小结. 11 第三章 基于有限状态机的协议逻辑实现. 13 3.1 有限状态机模型13 3.1.1 有限状态机模型基本定义 13 3.1.2 状态转移图13 3.1.3 非确定有限状态机 14 3.1.4 有限状态机简写形式15 3.2 ARINC615协议的有限状态机模型概述. 15 3.3 ARINC615协议的有限状态机实现17 3.3.1 加载端有限状态机 18 3.3.2 被加载端有限状态机19 3.4 本章小结. 21 第四章 协议适配层与 VFS实现. 23 4.1 协议适配层 23 4.1.1 协议适配层概述 23 4.1.2 协议适配层实现 24 4.2 VFS设计与实现31 4.2.1 VFS概述. 31 4.2.2 VFS详细设计34 4.3 本章小结. 40 第五章 ARINC615协议逻辑测试41 5.1 协议测试概述41 5.1.1 协议测试分类. 41 2 ARINC615 数据通信协议逻辑实现与测试 5.1.2 一致性测试原理. 41 5.1.3 性能测试原理. 42 5.1.4 健壮性测试原理. 42 5.2 单元测试概述 42 5.3 ARINC615协议测试. 43 5.3.1 测试环境概述. 43 5.3.2 ARINC615协议代码单元测试 45 5.3.3 ARINC615协议测试 50 5.4 本章小结. 57 结束语 59 致 谢61 参考文献63 附录 A 加载端状态转移表与状态转移图65 附录 B 被加载端状态转移表与状态转移图. 73 附录 C 配置文件 CONFIG.LDR参数含义 81 1 第一章 绪论 第一章 绪论 本文主要介绍了 ARINC615 协议的相关规定,以及在特定硬件环境下的实现 与初步测试过程。 本章首先介绍了本文讨论的 ARINC615 协议实际运行的硬件环境。由于该硬 件环境是一种基于 AFDX的跨总线结构,所以先介绍了加载端基于 AFDX和被加 载端基于 ARINC429 的协议栈结构。进而介绍了基于 ARINC615 协议的软件工作 的系统结构。最后对本文后续章节要描述的具体内容的安排做了一个概述。 1.1 协议栈结构概述 本文中讨论的 ARINC615协议实际运行的硬件环境,是一种加载端基于 AFDX 总线而被加载端基于 ARINC429总线的加卸载硬件环境。是一种跨总线的设计方 案。 加载端 被加载端 被加载端 A R I N C 6 1 5 A R I N C 6 1 5协议层 A R I N C 6 1 5协议层 协议层 协议适配层 数据网关 协议适配层 协议适配层 A F D X协议层 协议转换层 A R I N C 4 2 9协议层 A R I N C 4 2 9协议层 A F D X A R I N C A F D X物理层 A R I N C 4 2 9物理层 A R I N C 4 2 9物理层 协议 4 2 9协议 多个 4 2 9设备图 1.1 ARINC615 协议栈示意图 [1][2] 具体的网络协议栈如图 1.1所示 ,加载端与被加载端之间通过数据网关连 接。加载端底层基于 AFDX协议,被加载端底层基于 ARINC429协议。通过协 议 映射层完成 AFDX数据到 ARINC429数据的转换,以支持基于 AFDX协议的加 载 端的运行。数据网关实现了 AFDX协议和 ARINC429协议的双向转换工作, 定义 了数据转换规则。具体在运行的时候,在数据网关上需维护包括 AFDX发送 端口 号、 AFDX接收端口号和 429设备标号的映射关系表。当数据网关收到一个 AFDX 数据包时,根据 AFDX接收端口号查找映射关系表,可以取得这个 AFDX数据的2 ARINC615 数据通信协议逻辑实现与测试 目的 429设备,数据网关解析 AFDX数据包,进行相应的转换为 429数据,发往 目的 429设备;相应的当数据网关接收到一个 429数据包时,利用 429设备标识 查找映射关系表,获得 429设备对应的 AFDX 发送端口号,然后对数据进行转换 封装为 AFDX数据帧,根据查找到的 AFDX发送端口号,将数据发送出去。 由于 ARINC615协议交互数据及 429设备数据均为 32位长度,而每次传输数 据只传输 32位有效数据,对于 AFDX网络来说,对网络带宽会造成较大浪费。因 此,在数据网关的协议转换层需要进行一定的数据融合,即数据网关能够将多个 32位 429数据封装到一个 AFDX数据包中进行传输,同时在接收到一个包含多个 32位 ARINC615协议数据的 AFDX数据包时,能够将每个 ARINC615协议数据 解 [1][2] 析出来,依次拆分为若干个 32位 ARINC429 协议数据发送出去 。 ARINC615协议类似于传输层协议,而 AFDX 协议与 429协议均类似于链路 层协议。由于 ARINC615协议是点对点传输,不需要网络层的介入,所以传输层 直接架在链路层之上。但是在本实际硬件环境中,链路层有两种协议??AFDX 协议与 429协议,所以在链路层与传输层协议之间加了一个协议适配层,用于屏 蔽链路层的两种协议的差异,对传输层协议??ARINC615协议提供统一的调用原 语。 1.2 协议系统结构概述 本文讨论的基于 ARINC615 协议的数据加卸载软件最终运行的系统结构图如 图 1.2所示。加载端协议软件运行在 VxWorks653操作系统环境下,底层硬件环境 是 AFDX 硬件接口,AFDX 硬件驱动接口为加载端软件函数库提供数据通信接口 (AFDX协议适配层),加载端软件通过函数库来调用协议适配层接口实现文件的 上传和下载;被加载端协议软件运行在 VxWorks5.5或者符合特定要求(有 C语言 编译环境)的无操作系统环境下,底层硬件环境是 429设备,429设备驱动接口为 被加载端软件函数库提供数据传输接口(429 协议适配层),被加载端软件通过函 数库调用该接口实现文件的上传和下载,其中被加载端为了满足运行在有 C 编译 环境的无操作系统环境的要求,被加载端提供了 VFS(虚拟文件系统)的支持, 在无操作系统环境下,VFS 在内存中模拟出文件系统,使得被加载端对文件的操 作是透明的。 3 第一章 绪论 被加载端 多个 429 设备 被加载端软件 加载端 加载端软件 被加载端软件函数库429 协议 加载端 VFS 适配层 AFDX 协 软件 函数库 议适配层429 VxWorks AFDX 驱 VxWorks 驱动 AFDX 到 653 5.5 动接口 接口 ARINC429 的协议 AFDX 嵌入式 交换机 429 硬嵌入式 网关 硬件接口 硬件设备 件接口 硬件设备 图 1.2 ARINC615 协议系统结构图 如图 1.2所示,ARINC615协议逻辑分别在加载端软件函数库层和被加载端 软 件函数库层实现,是本软件的核心部分,本文将讨论一种基于有限状态机的 协议 逻辑实现方法;加载端的 AFDX适配层和被加载端的 429适配层就是 1.1节所提 到的协议映射层,目的是为了屏蔽底层硬件的区别,将两种协议对数据的操作方 式做了统一的封装,对上层提供的相同的接口,以达到对上层了透明的效果;加 载端软件和被加载端软件分别是基于 ARINC615协议实现的应用软件,主要是为 了应用和测试协议的性能、正确性、容错性、完备性和健壮性等,即对协议进行 协议测试。 VFS也是本文讨论的重点之一。由于被加载端还有可能工作在无操作系统的 硬件环境下,所以 VFS的作用主要是在内存中模拟一个虚拟文件系统,使得被加 载端的协议逻辑不用关心是否存在操作系统。 1.3 本文内容安排 本文主要介绍了 ARINC615 协议的相关规定,以及在上述硬件环境下的实现 与初步测试过程,现将本文后续章节的内容安排如下: 第二章将简要介绍 ARINC615 协议的相关规定??基本数据单元、配置文件 与协议逻辑; 第三章将介绍有限状态机模型原理和基于有限状态机的 ARINC615 协议逻 辑 实现; 4 ARINC615 数据通信协议逻辑实现与测试 第四章将介绍协议适配层被加载端的特殊需求??虚拟文件系统(VFS)的原 理及具体实现过程,由于这两个都是和 ARINC615 协议本身无关的“介质”,所 以放到同一章来描述; 第五章将介绍网络通信协议的一般测试方法和代码的单元测试方法,在此基 础上介绍了 ARINC615 协议的初步测试和实现 ARINC615 协议的代码的初步单元 测试。 在结束语中将对全文所讨论的内容作一总结,并且对未完成的工作进行了展 望。 1.4 本章小结 本文主要介绍了 ARINC615 协议的相关规定,以及在特定硬件环境下的实现 与初步测试过程。本章简要介绍了本文所讨论的 ARINC615 协议实际运行的协议 栈结构、硬件环境和系统结构,为后面具体介绍 ARINC615 协议的协议适配层的 实现、有限状态机实现、协议代码与逻辑的测试和 VFS 的实现奠定了基础。最后 介绍了本文后续章节将要讨论的内容。第二章 ARINC615 协议概述 5 第二章 ARINC615 协议概述 本章首先简要介绍了 ARINC615 协议,ARINC615 协议是基于 ARINC429 总 线的数据加卸载协议,其加载端和被加载端均需支持 ARINC429 基本数据通 信, 在 ARINC429基本通信的基础上,ARINC615 协议定义了一系列规则,通过握 手、 响应和确认机制来完成数据在加载端和被加载端之间的传输过程。 根据 ARINC615 协议的规定,加载端还必须定义配置文件 CONFIG.LDR,用 于对加载端上传和下载操作进行描述。该配置文件 CONFIG.LDR的格式也在 本章 给予描述。 最后,本章描述了 ARINC615 协议所规定三种数据上传模式和三种数据下载 模式。 2.1 ARINC615 基本数据单元定义 ARINC429总线上传输的数据单元长度为 32位,因此 ARINC615协议的数据 传输均是基于 32位的数据包进行的。 表 2.1 ARINC615 协议数据包类型定义 位序号(32位) 含义 数据包类型 32 31-30 29-23 22-16 15-9 8-1 RTS P 01 0x12 0x0 要发送的记录数 LBL 发送请求 CTS P 01 0x13 0x0 可接收的记录数 LBL 发送应答 DF P 01 0x02 记录序号 当前记录字节数 LBL 数据传输 ACK P 01 0x06 记录序号 无意义 LBL 数据正确 初始字 NAK P 01 0x15 记录序号 无意义 LBL 数据错误 SYN P 01 0x16 0x0 0x0 LBL 同步 HDR P 01 0x01 命令 无意义 LBL 命令字 POL P 01 0x05 0x0 0x0 LBL 下载探测 32 31-30 29-25 24-17 16-9 8-1 中间字 DATA 传输数据 P 00 无意义 MSB LSB LBL 32 31-30 29-9 8-1 结束字 CHECKSUM 校验和 P 10 校验和 LBL [1][2] ARINC615 协议定义的供数据传输的数据包类型定义如表 2.1 所示 , ARINC615协议定义的数据包分为初始字、中间字和结束字三种。三种数据 包格式 中的第 32位为校验位,具体的这里使用的是奇校验。第 30到第 31位用来 区别这6 ARINC615 数据通信协议逻辑实现与测试 三种数据包类型,第 1到第 8位为 429设备的 Label号标识。初始字数据 包用于数 据传输前加载端与被加载端之间的交互握手,其数据格式中第 23 位到第 29 位标 识不同类型的初始字数据包,RTS数据包用于发送请求命令,其第 9到第 15位标 识本次发送请求要发送的记录个数;CTS 数据包用于对 RTS 数据包的响应,其第 9 到第 15 位标识可接收的记录个数;DF 数据包表明开始数据传输,其第 16 到第 22位标识当前传输的记录序号,第 9到第 15 位标识当前传输的记录的总字节数; ACK 和 NAK 数据包标识对数据接收的确认,其第 16 到第 22 位均标识其确认的 记录序号;SYN 数据包用于加载端和被加载端的同步;HDR 数据包通过第 16 到 第 22位的命令字段来发起包括读数据块、写数据块、加载完成、进入自动模式、 进入控制模式等命令;加载端发送 POL 数据包来探测有可能的自动下载操作。中 间字主要用于传输数据,DATA数据包中第 9 到 24位为数据段,包含两个字节的 数据信息,其中 MSB标识高字节,LSB标识低字节。结束字用于每个记录传输完 [1][2] 成后的数据校验和传输,其中第 9位到第 29 位就是用于校验的校验和 。 2.2 配置文件 CONFIG.LDR 定义 根据 ARINC615 协议,在加载端需要定义配置文件 CONFIG.LDR,用于对加 载端上传和下载操作进行定义和描述。CONFIG.LDR 为普通的文本文件,配置参 数格式描述如下: parameter_id parameter_valueCR,LF 其中 parameter_id为一个变长字段,包含了要定义的配置参数名,配置参数名 中可以包含一个数字’n’,标识所定义的参数为第几条总线参数,n的范围为 1~8, 如 B1T用于定义第一条总线的上传规则。parameter_value为具体的配置参数值, 对于有多个参数值的配置参数,各个参数之间用逗号隔开。例如: B1D 1H,1H,301。 CR,LF为回车换行符。 [1][2] 配置文件 CONFIG.LDR主要配置参数的定义及含义如表 2.2所示 : 表 2.2给出了 CONFIG.LDR文件中主要参数的定义,包括总线属性定义、总 线优先级定义、总线上传文件定义、总线下载文件定义和总线对磁盘的读写情况 等。 [2] 配置文件 CONFIG.LDR的全部参数定义格式详见附录 C 。 第二章 ARINC615 协议概述 7 表 2.2 配置文件 CONFIG.LDR主要配置参数描述 参数定义 参数描述 LBL [Octal] 加载端 Label号 BnD [TX_NUMBER],[TX_SPEED], n 号线路的 429 发送端口、发送端口速率 [RX_NUMBER],[RX_SPEED], H 表示高速,L表示低速、接收端口号、 [LABEL],[DISCRETE] 接收端口速率、429发送 label号、功能 BnP [Decimal] n号线路的优先级,其中最高优先级为 1, 最低为 8,默认为 1,0 表示未定义,如果 未定义,按照 BnD 的先后顺序来传输 BnT [filename],[True/False],[Decimal] n 号线路上传文件名称、文件 是否需要换 盘默认为 False、文件被划分的块block 大小单位 byte,默认值为 1024 BnR [filename] n号线路下载文件名称 BnW [True/False] n号总线对磁盘的可读写情况,True为总 线对磁盘可读写,False 为总线对磁盘只 读,默认为 True 2.3 ARINC615 协议功能定义 如图 2.1所示,为 ARINC615协议定义的文件分块示意图。ARINC615协议将 要上传或下载的数据或文件分为多个块(block),每个块大小由配置文件 CONFIG.LDR中 BnT属性定义,默认每个块大小为 1024字节,在每次数据传输 的过程中,将每一块又细分为记录(record),对于上传操作,每个记录大小范围 为 0~252字节;对于下载操作,每个记录大小范围为 0~254字节,每次数据交互 [1][2] 以一个记录为单位进行 。 图 2.1 文件分块示意图 8 ARINC615 数据通信协议逻辑实现与测试 ARINC615协议的功能基于基本交互数据包实现,协议逻辑的主要功能定义如 下: 1通信初始化??加载端读取配置文件的内容,根据配置文件的信息选择上 传或下载操作,发送初始化命令,收到被加载端的响应后,进入上传或下载操作; 2上传操作??上传操作分为自动模式上传、控制模式下文件选择上传和控 制模式上传。 a 自动模式上传:加载端通过与被加载端通信初始化完成后,加载端直接向 被加载端上传定义好的文件,直到传输结束。其中,上传过程中的传输配 置是由加载端的配置文件 CONFIG.LDR来描述的。 图 2.2 自动上传协议 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 图 [2] ARINC615 协议中规定的自动上传协议流程图如图 2.2 所示 ,在完成初始化 设置后,加载端软件开始定期发送 RTS 初始化字,等待被加载端用 CTS 应答完 RTS后就开始进入文件传输过程,其中 DF保留发送的文件块中每条记录的字的个 数,DATA为发送的数据字,被加载端都需要发送 ACK来确认每一个文件块中的 每一个记录,当一个文件块被被加载端正确接收后,加载端应该自动发送一个 RTS 请求下一块数据的上传,这样循环传输直到一个文件结束。 如果被加载端需要传输多个文件,并且希望维持自动上传模式尽量长的时间, 那么可以把不同的文件定义在不同的总线上,这个是在配置文件中设置的。当最 后一个文件块被被加载端接收后,加载端需要等候被加载端的指令,如果被加载 端此时没有任何响应则加载端认为上传过程已完成,并且顺延至次高优先级的总 线上进行配置,继续执行上面过程,如果没有定义下一个优先级的总线则加 载端第二章 ARINC615 协议概述 9 就认为传输结束。 b 控制模式文件选择上传:在进入控制模式下后,被加载端可以读取目录, 打开文件并获取传输信息。在被加载端控制模式下打开一个文件后,转换 到自动模式下进行文件内容的上传,此时的协议传输流程与自动模式文件 上传相同。 c 控制模式上传:被加载端发送命令,使加载端进入控制模式后,被加载端 发送磁盘命令选择并且打开数据加载端的文件,之后并不进入自动模式传 输,而是通过发送读块命令,将加载端的文件按块发送到被加载端。 HDR HDR STATUS RTS CTS 加载端 被加载端 DF DATA FINAL WORD ACK图 2.3 控制模式上传协议流程图 [2] ARINC615 协议中规定的控制模式上传协议流程图如图 2.3 所示 ,当被加载 端在控制模式下打开一个文件后,不进入自动模式,而是继续在控制模式下直接 将文件的每个块都读出来。控制模式下的文件块的上传的开始和自动模式下的一 样,在控制模式下需要上传一个文件块到被加载端的时候,被加载端必须先发送 一个 ReadBlock 命令,当加载端已经准备传送下一个文件块的时候,加载器需要 向被加载端回应一个命令和当前状态,随后加载端开始传输数据块,当传输结束 的时候,被加载端要发送一个 Load Complete命令来使加载端寻找下一个次高优先 级的总线。 3下载操作??下载操作分为自动模式下载、控制模式下文件和控制模式下 载。 a 自动模式下载:加载端通过与被加载端通信初始化完成后,加载端软件向 被加载端软件提出请求下载文件传输操作,在文件的传输过程中不需要人10 ARINC615 数据通信协议逻辑实现与测试 为干预,直到传输结束。其中,传输过程中的传输配置也是由加载端的配 置文件 CONFIG.LDR来描述的。 图 2.4 自动下载协议流程图 [2] ARINC615 协议中规定的自动下载协议流程图如图 2.4 所示 ,在完成初始化 设置后,加载端软件开始定期发送 POL 初始化字,等待被加载端用 RTS 应答完 POL 后就开始进入文件传输过程,其中 DF 保留发送的文件块中每条记录的字, DATA为发送的数据字,加载端都需要发送 ACK来确认每一个文件块中的每一个 记录,当一个文件块被加载端正确接收后,被加载端应该自动发送一个 POL 请求 下一块数据的上传,这样循环传输直到一个文件结束。 如果被加载端需要传输多个文件,并且希望维持自动下载模式尽量长的时间, 那么可以把不同的文件定义在不同的总线上,这个是在配置文件中设置的。当最 后一个文件块被加载端接收后,加载端需要等候被加载端的指令,如果被加载端 此时没有任何响应则加载端认为上传过程已完成,并且顺延至次高优先级的总线 上进行配置,继续执行上面过程,如果没有定义下一个优先级的总线则加载端就 认为传输结束。 b 控制模式文件选择下载:在进入控制模式下后,被加载端可以读取目录, 打开文件以及其他扩展功能。在被加载端控制模式下打开一个文件后,转 换到自动模式下进行文件内容的下载传输,此时的传输协议流程与自动模 式下载传输是相同的。 c 控制模式下载:被加载端发送命令,使加载端进入控制模式后,被加载端 发送磁盘命令选择并且打开数据加载端的文件,之后并不进入自动模式下第二章 ARINC615 协议概述 11 载,而是通过发送写块命令,将被加载端的文件按块发送到数据加载端。 图 2.5 控制模式文件下载协议流程图 [2] ARINC615 协议中规定的控制模式上传协议流程图如图 2.5 所示 ,在控制模 式下以写或者追加的方式打开一个文件后,不转入自动下载模式,被加载端发送 Write_Block 命令来发起对一个文件块的从被加载端到加载端的传输过程。当加载 端已经准备好接收文件块的时候,加载端以发送系统状态方式来应答 Write_Block 命令,加载端发送一个 POL 初始化命令字表示它已经准备好要接收文件块 了,当 加载器接收完一个文件块后,需要等候下一个控制命令。 2.4 本章小结 本章简要介绍了 ARINC615 协议的基本内容,介绍了 ARINC615 协议的基本 数据单元定义、配置文件的格式和协议里各功能的定义,包括三种上传模式和三 种下载模式。为本文后续章节中介绍 ARINC615 协议逻辑的实现与测试奠定了基 础。12 ARINC615 数据通信协议逻辑实现与测试13 第三章 基于有限状态机的协议逻辑实现 第三章 基于有限状态机的协议逻辑实现 本章首先介绍了有限状态机模型的概念、作用和用有限状态机模型实现通信 协议的优点,接下来介绍了基于有限状态机模型的 ARINC615 协议逻辑的实现, 最后分别介绍了加载端和被加载端的部分状态转移图。 3.1 有限状态机模型 3.1.1 有限状态机模型基本定义 协议分析、设计与实现的核心技术之一是协议形式化模型。基于形式化模型, 可以实现网络协议的形式化规格,从而为协议的形式化分析与验证、协议综合、 协议测试以及协议实现等提供良好的基础。同时,它也是协议形式化描述语 言的 基础。协议的主要形式化模型主要有:有限状态机、petri 网、时序逻辑和进程演 [5][8][9] 算等 。 有限状态机(FSM,Finite State Machine)是一种具有离散输入输出系统的数 学模型,以“事件驱动”的方式工作,可以通过事件驱动下系统状态空间的转移 [22] 表达一个系统的状态流程 。它包括以下几个部分:一个有限状态集,用于描述 系统中的不同状态;一个输入集,用于表示系统所接收的不同输入信息;一个状 态转移规则集,用于表述系统能够在接收不同输入从一个状态到另外一个状态的 规则。有限状态机可由如下形式定义给出。 1Q q0, q1, q2, „, qn是有限状态集合。在任一确定的时刻,有限状态机只 能处于一个确定的状态 qi; 2? ζ1, ζ2, „, ζn是有限输入字符集合,在任一确定的时刻,有限 状态机只能接收一个确定的输入ζj; 3δ : Q×??Q是状态转移函数,如果在某一确定的时刻,有限状态机处于 某一状态 qi?Q,并且接受一个输入字符ζj??,那么下一时刻将处于一个特定 的状态 q’ δqi, ζj ?Q。在这里规定 q δq, ε,即:对任何状态 q,当 读入空字符ε时,有限状态机不发生任何状态转移; 4q0?Q是初始状态,有限状态机由此状态开始接收输入; 5F?Q 是结束状态集合,有限状态机在达到结束状态后不再接收输入 [5][20][21][22][23][24][25] 。 3.1.2 状态转移图 对于有限状态机 M Q, ?, δ, q0, F的转移函数δ,用圆圈(节点)表示状14 ARINC615 数据通信协议逻辑实现与测试 态;将存在转移关系的状态用有向弧连接,并且在有向弧旁边标注相应的输入字 符;用标有箭头的节点表示初始状态;用双圈来表示结束状态。如果没有特别指 出初始状态和结束状态则所有状态都用单圈来表示。由上述规则所建立的有向图 [10][30] 称为状态转移图 。此外,还用到状态转移表和状态转移矩阵。 图 3.1 有限状态机有向图表示 如图 3.1所示的状态转移图的的有向图,S ?S 状态状态迁移过程中输入 为 A B [22] I ,其余状态之间的转移与此类似 。 2 3.1.3 非确定有限状态机 非确定有限状态机是一个五元组 M Q, ?, δ, q0, F,其中 1Q q0, q1, q2, „, qn是有限状态集合; 2? ζ1, ζ2, „, ζn是有限输入字符集合; 3δ : Q×??Q是状态转移函数,如果在某一确定的时刻,有限状态机处于 某一状态 qi?Q,并且接受一个输入字符ζj??,那么下一时刻将处于一个 特定 的状态 q’ δqi, ζj ?Q。在这里规定 q δq, ε,即:对任何状态 q, 当 读入空字符ε时,有限状态机不发生任何状态转移; 4q0?Q是初始状态,有限状态机由此状态开始接收输入; 5F?Q是结束状态集合。 在非确定有限状态机中,对于某些 q?Q和某些ζ??,δq, ζ可能有多种 [5] 转移选择,从而带来非确定性 。 15 第三章 基于有限状态机的协议逻辑实现 3.1.4 有限状态机简写形式 在一些情况下,我们讨论问题的重点集中在有限状态机或非确定有限状态机 M Q, ?, δ, q0, F的状态集Q、输入集?和状态转移函数δ上。这时候, 有限状态机可用如下三元组或四元组表示:M Q, ?, δ或者 M Q, ?, δ,[5] q0 。 3.2 ARINC615 协议的有限状态机模型概述 根据 ARINC615 协议,该逻辑在每一时刻总是处在一个特定的状态,比如: 发送 RTS状态、等待接收 CTS状态等。而且所出现的状态是有限的。其中有一个 特殊状态被指定为初始状态,它是整个过程开始运行的状态。当前状态满足某一 条件后转换到另一个新的状态。所以可以用 3.1 节所述的非确定有限状态机模型来 实现 ARINC615协议。使用有限状态机模型而不使用其他模型的优点如下: 1 采用有限状态机模型,可以统一函数处理接口。因为状态机每一个状态都对应 相应的处理函数,状态机处理接口相对统一; 2 便于把握软件的流程和排查错误。加卸载软件是相对复杂的一个基于协议的软 件,处理过程繁多,用有限状态机模型将软件功能分成离散的多个状态,状态 机在运行过程中如果出错,状态机就会在相应的状态位置停止,很容易定位 并 排查错误; 3 简化程序整体框架和设计流程。采用状态机模型,软件的各个功能运行的整个 框架都是一样的,都是状态机的启动,不同的只是初始状态和输入事件不同。 这样大大简化了协议各个功能的设计流程。 因此,采用有限状态机对协议进行形式描述和验证是比较合适的。 采用有限状态机模型,ARINC615 协议的有限状态机的状态转移定义在如表 3.1所示的状态转移二维表中。 表 3.1 状态转移表 当前状态 输入事件 下一状态 处理函数 CurrentState InputEvent NextState ProcFunc 有限状态机从起始状态开始执行,如果遇到终止事件就退出,如果不是终止 事件,每个输入事件会使状态变迁到下一个状态。如表 3.1的状态转移二维表所示, 当前状态 currentState遇到输入事件 inputEvent输入事件可以是多种,处理函数 ProcFunc就会被调用,并且进入下一状态 NextState,而 ProcFunc的处理结果又作 为下一状态 NextState的输入事件。 与表 3.1对应的表示状态转移表的数据接口为: 16 ARINC615 数据通信协议逻辑实现与测试 typedef structSTATE currentState;EVENT inputEvent[_EVENT];STATE nextState [_EVENT];HANDLEFUNC func [_EVENT]; TABLEITEM; 在上述自定义结构体中,currentState代表表 3 中的当前状态;inputEvent 代表 输入事件;nextState代表下一状态;func为函数指针,代表该状态和该输入事件 对应的处理函数。 inputEvent、nextState和 func均为数组形式,是因为对于一个特定的状态,可 能有不止一个输入事件,而对于不同而输入事件,经过相应的处理函数处理后, 会将当前状态迁移至不同的下一状态,所以这三个结构需要以数组形式给出。 其中 STATE、EVENT、HANDLEFUNC的定义分别为: typedef unsigned int STATE; typedef unsigned int EVENT; typedef EVENT *HANDLEFUNCSESSION *session,PARAMETER *parameter; 变量类型 SESSION和 PARAMETER分别为两个结构体,为保存 ARINC615 协议中每一个状态的相关信息。 如图 3.2状态机流程图,如果当前输入事件不是终止事件,有限状态机会一直 运行下去,直到输入事件为终止事件达到终止态为止,在状态机运行过程中可以 对保存状态机的日志信息,如果出现运行错误可以打印错误信息,以保证状态机 能正常运行。17 第三章 基于有限状态机的协议逻辑实现 图 3.2 状态机流程图 3.3 ARINC615 协议的有限状态机实现 按照表 3.1建立 ARINC615协议的状态转移表,并按照功能实现各状态在输入 事件下的处理函数,协议即可按照状态转移表运行,状态机运行的接口定义如下: STATUS stateMachineSTATE const init_state, EVENT const init_event, STATE const exit_state, EVENT const exit_event, SESSION *session,PARAMETER *parameter 在各个参数中,init_ state为状态机起始运行的状态,init_event 为状态机初始 的输入事件,exit_state为状态机的结束状态,exit_event 为状态机的退出事件, session和 parameter两个参数记录了状态机运行过程中的会话和参数信 息。 在 StateMachine 接口里,会从由 init_state和 init_event 决定的初始状态和初始 输入事件开始,完成状态迁移的过程,直至到达由 exit_state和 exit_event 决定结18 ARINC615 数据通信协议逻辑实现与测试 束事件和结束输入事件或者该有限状态机被外部强制停止。具体停止的办法就是: 在 StateMachine 接口里设置一个开关,每次状态迁移的时候都去检查这个开关, 如果该开关被设置为 FALSE,则无论是否到达结束状态和结束输入事件都强制停 止有限状态机的运行。 通过 StateMachine 接口,可完成 ARINC615协议的自动运行。 以下两节将介绍加载端有限状态机的部分状态转移图和被加载端有限状态机 的部分状态转移图,完整的加载端和被加载端有限状态机状态转移图和对应的状 态转移表见附录部分。 3.3.1 加载端有限状态机 根据 ARINC615 协议,无法在这里将加载端所有状态转移关系一一在这里陈 述,所以在这里只描述部分状态转移图所代表的状态转移关系,如图 3.3所 示,详 细加载端状态转移表与状态转移图见附录 A。 图 3.3为加载端部分状态转移图。此处将完整的状态转移图分割成了三个这样 的部分图,图 3.3为第一部分图,其余状态的转移关系在第二部分图及第三部分图 中。 如图 3.3所示,现在分别对圆圈内和箭头上的标识作出解释。圆圈内的 “READY”、 “POL_SEND”等表示 ARINC615 协议中定义的加载端的一个确定的 状态。比如“READY”表示硬件已经就绪等待数据传输的开始握手、POL_SEND” 代表发送了一个 POL数据包;带箭头的线为状态转移线,箭头所指方向为状态转 移方向,状态转移线上的“SEND_OK”等表示该状态的当前输入事件,比如当前 处于“POL_SEND”状态,经过输入事件“SEND_OK”,状态迁移至“WAIT_RTS”, 代表 POL数据包发送成功,现在要等候被加载端发送的 RTS数据包。 在编码的过程中,所有状态(比如“READY”、“POL_SEND”等)和所有输 入事件(比如“SEND_OK”、“SEND_ERR”等)均为 C语言里的宏定义。 19 第三章 基于有限状态机的协议逻辑实现 SEND_ERR SEND_BLOCK_O K 接图A4 SEND_SYN RECEIVE_ERR RETRY_OVER SEND_OK W A I T _ C T S RECEIVE_SYN CTRL_MODE TIME_OUT RECEIVE_OK RECEIVE_BUSY R T S _ S E ND RECEIVE_READ 接图A3 _BLOCK PROCESS_OK SIZE_ZERO DISK_COMMAND SEND_RTS _OK CTRL_MODE S T A T U S _ S E ND SEND_FILE_OK NEXT_BUS READ_BLOCK_O K DISK_COMMAND _OK SEND_ERR PO L _ S E ND SEND_ERR SEND_POL ALL_BUS_COMP RECEIVE_WRITE_BLOCK RECEIVE_BLOC LETE RECEIVE_DISK_COMMAND K_OK 接图A4 SEND_OK NEXT_BUS AUTOMATIC_MODE R E A D Y AUTOMATIC_DOWNLO 接图A3 AD NEXT_BUS TI
本文档为【ARINC615数据加卸载协议逻辑实现与测试】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_721103
暂无简介~
格式:doc
大小:67KB
软件:Word
页数:31
分类:企业经营
上传时间:2018-08-01
浏览量:85