ARINC429总线在ADS_B系统中的设计
2013-09-30冯岩
冯 岩
(电子科技大学 成都 611731)
0 引言
在现代飞机上,大量信息在飞机与系统、系统与部件之间传递。ARINC429总线是广泛应用于航空系统中的数字总线传输技术。ADS_B系统是未来空中交通管理发展的方向,如何将ADS_B系统良好的嵌入到航空系统中,是必须要考虑的问题。目前,国内的文章仅有ARINC429的实现方法或仅论述如何 ADS_B 实现系统[1-4],鲜有文章对如何实现ARINC429总线在ADS_B系统的应用有所研究。ADS_B系统是未来航空系统的重要组成部分,实现ARINC429总线在ADS_B系统中的应用,可有效减少机内布线、减轻飞机重量,以及避免由于ADS_B系统的应用而造成大量的硬件替换。本设计采用ARINC429专用芯片HI-8582构成数据收发核心单元,FPGA进行ARINC429收发逻辑控制,ARM实现对ADS_B报文的编解码算法。该设计在几乎没有增加硬件资源的条件下,很好的将ARINC429总线技术嵌入到ADS_B系统中,具有较强的实用价值。
1 ARINC429与ADS_B数据格式简介
ARINC 429总线是美国航空无线电公司制定的民用航空数字总线传输标准,规定其数据格式为双极性归零码,即调制信号由“高”、“低”和“零”状态组成。ARINC 429字由32个数据位组成,分为5个基本区域,分别为 Parity、SSM、DATA、SDI、LABEL,如图1所示。
图1 ARINC429数据格式
ARINC429数据格式中,各比特位代表含义如下:
Parity:字的第32位,一般为奇校验。
SSM:位30、位31为信号/状态矩阵,表示硬件设备条件,操作模式,合法数据内容。
DATA:位11到位29是数据位。
SDI:位10、位9为目的/源接收标示。
LABEL:位8到位1用于区别数据类型和相关参数。
1090MHzS模式扩展电文数据链(1090ES)是国际航空组织推荐的ADS-B的广播数据链,最大下行数据长度达到112位,最大数据率达到1M比特/秒[5]。其主要的信息类型有空中位置消息、状态消息、速度消息等。本文仅以空中位置消息为例介绍。如图2所示.部分比特位的含义如下:
DF:下行数据链格式标志
CA:S模式应答机的能力
ICAO:国际民航组织为飞机分配的编号
CPR:为0,表示“偶”编码,为1表示“奇”编码
PI:奇偶校验位
图2 ADS_B报文数据格式(1090ES)
2 系统整体方案设计
系统整体方案设计如图3所示。为了测试需要,图中所搭载的系统为测试系统。电脑端ARINC429APP软件为西安方元明科技发展有限公司开发,主要用来发送或接收ARINC49格式的数据。ADS_B信号模拟器为电子科技大学宁波研究院开发,主要用来发送ADS_B格式的数据。在具体的应用中,ARINC429APP软件相当于各传感器,ADS_B信号模拟器相当于ADS_B系统中的发射部分。
图3 系统整体框图
2.1 接收流程描述
在电脑端口通过ARINC429App软件发送ARINC429格式数据,通过429板卡转换成ARINC429规定的双极性归零码。HI-8582为收发一体的接口控制芯片,接收从ARINC429总线发送来的串行数据,FPGA通过控制HI-8582芯片的和管脚使能,将两次接收来的16位数据拼接成32位数据发送到缓冲fifo,再传至ARM。ARM通过识别自定义协议中的标号信息编码成ADS_B消息,回传至FPGA,然后经DPSK(差分移相键控)调制,经过发射机和天线,可发送到基站或其他飞机。在具体测试时,可用示波器抓取ADS_B报文,核对是否转换正确。
2.2 发送流程描述
接收其他飞机的ADS_B消息数据后,FPGA通过一级fifo(缓存)发送给ARM。ARM通过解码算法,将ADS_B消息中的有效数据提取,重新进行组合(具体参照下一章节)。FPGA接收ARM的数据,根据首部信息识别要编码的ARINC429数据标号,编码成32位ARINC429要求的数据格式。FPGA通过控制HI-8582芯片的和管脚使能,分两次将数据传送至HI-8582芯片。在具体测试时,可用ADS_B模拟器发送已知的ADS_B报文,通过电脑端ARINC429App软件观察数据是否转换正确。
3 ARINC429与ADS_B数据格式转换
实现ADS_B数据和ARINC429数据格式之间的转换,需要 ARM端进行编解码作为中介。在ADS_B系统中,为了对飞机有效编码,经度和纬度等信息采用简洁报告(CPR)的形式。在具体使用这些信息时,需要将ADS_B报文格式的数据通过CPR算法转换成固定字节格式的数据。
为了叙述简单明了,文中对其中一种ADS_B消息(空中位置消息)的发送流程加以描述。FPGA接收ADS_B报文,经CPR解码,回传至FPGA。为了实现可靠传输,以及告知FPGA所传送的信息类型,需要自定义传输协议。需要说明的是,以下协议为自定义,在相关开发时,可更改,如图3所示。(注:AA,F9这两类数字为自拟数值):
AA是同步头,标明一段数据的开始,同时数字也代表了ARM与FPGA之间信息传送的方向(此处自拟为ARM传送信息至FPGA)。F9为功能号,作用是FPGA接收到信息后,可通过协议辨别后面的信息类型、字节位置,以及将其编码ARINC429格式数据后label数值。在表格中,只有ICAO地址、高度、纬度、经度这三类信息被编码成ARINC429数据。在编码时,同一数据类型,编号相同。ARINC429的数据格式中只有19位数据为data位,如若要编码的数据类型不超过19位,则高位补0,超过19位,分两个ARINC429数输。
4 实验结果
为了验证设计是否正确,通过ADS_B信号模拟器发送一帧已知的ADS_B数据(1090 MHZ ES模式)如图6所示。限于示波器抓取的信号范围有限,仅抓取了ADS_B报文的一部分。由图6可知,ADS_B报文采用“极性归零码”表示,前两个归零码为ADS_B的前导脉冲,是ADS_B数据的报头标志[6]。ADS_B各数据位含义表示如图4所示。为便于说明,我们选择没有经过 CPR算法变换的ICAO地址进行验证。图6为所发送的数据,用框框住的数据为ADS_B中的ICAO地址(二进制数据为“101010100000000000000001”,转换为 16进制为“aa0001”)。通过图2所设计的系统架构,在电脑ARINC429APP软件上看到其label为“0x01”的数据为“08000401”和“80005401”,如图5所示。转换为二进制为
图4 自拟ARM与FPGA传输协议
其中加粗的部分即为ADS_B中的ICAO地址。所接收到的标号为0x02,0x03,0x04的信息分别为经过CPR算法的高度、经度、纬度值。
图5 ARINC429APP软件接收的数据
5 结束语
在国内,ADS_B系统的研究已初步成熟,如何实现ADS_B系统与机载系统之间数据通信将是下一步要解决的问题。本文从ADS_B系统架构的角度出发,设计ARINC429总线在ADS_B系统的应用,此方法在不增加硬件的基础上通过自定义协议,实现了ARINC429数据和ADS_B数据格式之间的相互转换,对后续ADS_B系统如何整合到航空系统的研究具有一定的参考意义。
图6 ADS_B的空中位置消息
[1]丁猛,郭英.ARINC429信号处理板的设计[J].微计算机信息,2008,24(5):30 -32.
[2]姬昕禹,马捷中,翟正军等.基于ARINC429总线接口板卡的驱动程序设计与实现[J].计算机工程与设计,2007,28(14):3511 -3514.
[3]赵显红,何谷惠.基于FPGA的ARINC429机载总线接口[J].现代电子技术,2008,10:92-95.
[4]张桢,孙沛.基于FPGA的ARINC429总线通讯板设计[J].航空计算技术,2010,40(4):112-115.
[5]RTCA,DO-260B:Minimum Operational Performance Standards for 1090 MHz Extended Squitter Automatic Dependent Surveillance-Broadcast(ADS-B)and Traffic Information Services-Broadcast(TIS-B) [S].2003.
[6]李庆,基于S模式ADS-B系统的控制与信息处理[D].电子科技大学学位论文,2011.