ARINC 429总线协议概述
ARINC 429 总线协议的全称是数字式信息传输系统(Digital Information Transport System,DITS),最早是由美国航空电子工程委员会(Airlines Electronic Engineering Committee,EMMC)提出。协议规范定义了航空电子设备和相关系统之间的数字信息传输要求。
在航电系统中,飞机数据网络主要完成了ARINC 664协议规范所定义的数据计算和通信方式。ARINC429则是许多航空电子设备进入飞机数据网络所遵循的数字信息传输要求。
在现代民用飞机上,ARINC 429协议规范有非常广泛的应用,包括空客A310/A320,A330/A340,波音B727,B737,B747,B757,B767,几乎覆盖了目前所有主流的民用飞机。在国产大型客机C919上,同样采用了ARINC 429协议规范定义机载航电设备之间的数据交换。
ARINC 429协议规范采用单向传输方式,报文信息只能从通信设备的发送端口输出,经传输总线传至需要该信息的接收端口。一般而言,发送端简称为Tx,而接收端则是Rx。429协议的传输速度分高低两档,高速工作速率为100 kb/s, 而低速工作状态则为12.5 kb/s。
可以说,429协议以较为密集的单向布线和相对较慢的传输速度保证了信息传输的高度可靠性和安全性,而这正是民用飞机所希望的。在军用飞机上,一般会使用相对更高速,且双向传输的规范以保证信息传输的快速性,最大限度地提升战斗性能。
航空电子设备从简单到复杂,从单台到系统,发展至今已经成为飞机重要的组成部分。在每一架飞机上,都会配置相当多的电子设备和互联系统,如通信系统,导航系统和雷达系统等。ARINC 429规范对这些电子设备进行了数字ID的定义和认证,给每一个航电设备分配了一个设备号(Equipment ID),如下表所示。
ARINC 429 报文格式
在之前的文章中提到过ARINC 664的报文组成,基本数据形式是32位的字(word)。与ARINC 664一样, ARINC 429的报文格式的基本数据形式也是32位的字,如下图1所示。它主要由五部分组成,分别是奇偶校验位(Parity)、符号状态矩阵(Sign/Status Matrix,SSM)、数据域(Data)、源/目的地标识符(Source/Destination Identifier, SDI)和标签号(Label)。
图1 429报文格式 其中奇偶校验位占1个比特位,符号状态矩阵占2个比特位,数据域占19个比特位,源/目的地标识符占2个比特位,标签号占8个比特位。
需要注意的是本文所述的数位从0开始,所以要与一般的介绍文档从1开始计数位进行区分,这样也是为了与之前ARINC 664文档保持一致。
ARINC 429 格式报文的传输顺序是:
7,6,5,4,3,2,1,0, 8,9,10,11,12……29,30,31
报文中的标签号(label)按由高位到地低位的顺序首先传输,然后由低位到高位依次传输源/目的地标识符、数据域、符号状态矩阵和奇偶校验位。
标签位(Label)是ARINC429些衣规范字格式中十分重要的部分,标签位占字的0-7位,以二进制编码但用八进制表示字符。标签位的二进制转八进制如图所示。标签位的作用是提供识别不同数据编码类型的标识编号以及与之相关的参数。下文在数据域位会提及,ARINC429的数据域实际上有2种不同的编码方式,而标签位即提供了不同编码方式数据的识别和传输方法。
需要注意的是,标签号与之前所说的设备号是不同的,一个标签号对应的信息可能传输到多个设备。关于BCD和BNR不同编码方式的详细举例,请见本文第三部分。
源/目的地标识符(SDI)占如图所示的8和9位,其作用是让不同的接收端能够识别相应的源端信息。因为429报文信息也是只能有一个发送端,而可以有多个接收端,A429规范规定最多可以有20个报文信息的接受端。
数据域(Data)是整个429报文信息的核心传输内容,占10~28位,可以有BCD二转十进制和BNR二进制两种编码方式,具体的例子可见第三部分。不同的供应商<会有一些自定义的编码方式。甚至在一些特殊情况下,数据域会占用源/目的地标识符的位置,这种情况下源/目的地标识符就不使用了。
奇偶校验位(P)是ARINC429协议规范定义字格式的最高位,其作用是通过其置0或1判断数据是否发生传输错误。数据传输正常情况下,传输的报文字中逻辑1的总个数应为奇数,而这即通过奇偶校验位置“0”或“1”来实现。也就是说,如果0-30位包含逻辑1的个数为偶数,则奇偶校验位必须置1,反之,0-30为逻辑1的个数为奇数,则奇偶校验位必须置0。如果32位数据中的字逻辑1的总数为0,则可以判断发生了数据传输错误。值得一提的是,429协议规范只提供错误的检测,但不提供错误的修正处理。
符号状态矩阵(SSM)是紧接着奇偶校验位,占整个字的29和30位。符号状态矩阵的作用是指示硬件设备状况,当前操作模式或提供数据验证相关功能。如图2和3所示分别列举了BCD(二进制编码十进制,Binary-Coded Decimal)数据和BNR(二进制编码,BNR)数据下SSM位不同组合的含义。
图2 BCD编码SSM含义 图3 BNR编码SSM含义 ARINC 429 数据域BCD与BNR编码方式
二转十进制编码(BCD)是ARINC429中最常见的编码方式。如图4所示,在这种编码方式中,数据区的每四个位被分配成一个十进制数。数据区最多可以有5个分区,可以根据对应数据分辨率(精度)的不同选择相应的区域。这样的编码方式下,最高位只能占3个位,所以最大的十进制数为7。如果所要传输的最大值大于7的话,就需要将28~26位置零,将char2的区域变成最高位。
图4 BCD编码数据格式 如图5所示是测距仪所测得的距离,为25786英尺,并为正值。25786分别由数据区的5个子区域体现,而正符号则由SSM区域的00体现。
图5 BCD编码数据例子 利用BCD编码方式进行传输的数据有偏流角、测距机测出的距离、真空速、升降速率、无线电高度表测量的高度,格林威治时间等。
补位二进制编码(BNR)也是ARINC429中一种常见的编码方式。这种编码方式与我们通常使用的计算机的编码方式一致,如图6所示是一般的BNR格式。28位是符号位,所以27位是最高位。如果28位的是1的话,数据就是负值(或者表示南,西,左,来和上)。反则,28为是0的话,数据就是正值(或者表示北,东,右,去和下)。
图6 BNR编码格式 如图7所示空速的计算式为
空速=(512*1/2+512*1/64+512*1/128)=(256+8+4)=268节
图7 BNR编码空速计算例子 总结:
以上是对ARINC429协议规范的简单分析和报文数据编码形式的简单举例,实际在飞机航电系统中,使用429协议的数据传输总线相当复杂,需要通过不断的实际操作和试验,才能获得更加全面你的认识。