1090ES关键信息解码算法优化及实现

2018-01-31 00:36张鹏何光亮
现代电子技术 2018年3期
关键词:经度纬度字段

张鹏+何光亮

摘 要: 以1090ES广播式自动相关监视(ADS?B)系统的飞机位置报文为信号源,采用ARM Cortex?M4内核的微控制器为硬件平台。针对目前空中交通管制对数据处理的实时性和准确性的要求,对空中目标飞机的经纬度和高度等关键信息进行解码。分析以往查表法在解码中的优缺点,归纳总结和实现了公式法在ADS?B系统位置报文中高度信息的解码。通过在真实数据环境下实验验证,其实验结果表明该方法能很好地克服常规算法繁琐、占用内存资源多等缺点,且软硬件实现更加方便、快捷。

关键词: ADS?B; Cortex?M4:CPR; C模式高度应答码; CRC校验; 公式法; 解码

中图分类号: TN919?34 文献标识码: A 文章编号: 1004?373X(2018)03?0030?06

Abstract: Taking the aircraft position message of the 1090ES automatic dependent surveillance?broadcast (ADS?B) system as the signal source, the microcontroller with ARM Cortex?M4 kernel is adopted as the hardware platform. In order to satisfy the requirements of current air traffic control for its data processing real?time performance and accuracy, the key messages (such as latitude, longitude and height) of the aerial target aircraft are decoded. The advantages and disadvantages of the available look?up table methods for decoding are analyzed. The formula method used to decode the height information in ADS?B system′s position massage is summarized and realized. The algorithm was verified with experiment in actual data environment. The experimental results show that the algorithm can eliminate the conventional algorithms′ disadvantages (such as the cumbersome procedure and high memory resource occupation), and has convenient and efficient software and hardware implementation.

Keywords: ADS?B; Cortex?M4; CPR; height answer?back code of C mode; cyclic redundancy check; formula method; decoding

0 引 言

1090ES广播式自动相关监视(Automatic Dependent Surveillance?Broadcast,ADS?B)是国际民航组织(ICAO)为了未来航空运输发展的需要,以卫星技术、数据通信技术和计算机技术为基础提出的一种监视技术[1]。与传统的雷达监视技术相比,ADS?B系统主要实现空对空监视,一般情况下只需机载电子设备(如GPS接收机、数据链收发机及其天线、驾驶舱冲突信息显示器(CDTI)),不需要任何地面辅助设备即可完成相关功能,实时、自发、间歇性地对外广播自身状态参数(包括飞机编码、三维位置、速度矢量、飞行意图等)[2]。在地面用数据链接收设备可直接监视空中目标;在空中相邻运行的飞机通过相互侦听邻近广播(不是相互探测和问讯)就能实现对周围空域交通状况全面、详细地了解。

此外,单个ADS?B监控基站监控范围覆盖方圆200海里以上,可提供全视角监视,监控更新频率是雷达的4倍,精度可达米级,成本却只有雷达的。ADS?B技术能以低成本实现空中航空器之间的相互监视和优于雷达间隔标准的虚拟雷达管制服务,它将会使当今空中交通管制中的三大要素——通信、导航、监视重新定义。

1 CPR解码算法及实现

以ADS?B飞机空中位置报文为例,该信息共有112 bits,即14 B。其信息结构格式如表1所示[3]。当DF=17时,表示发射机是基于1 090 MHz ES通信数据链;CA表示是否有CommA或者CommB通信能力;AA是发射机全球惟一的ICAO地址;PI字段为该字段前面所有88位数据的CRC校验码;ME字段为扩展断续震荡消息域,ME字段可以承载多种信息,例如,空中位置信息、地表面位置信息、空中速度信息、飞机标识与类型信息等。

其中,空中位置信息报文的“ME”字段如表2所示[4]。

1.1 CPR解码算法

在ADS?B系统中,为提高数据的传输效率,飞机位置报文采用简洁位置报告(Compact Position Reporting,CPR)的形式[5]。由于高阶位不发送会导致飞机在地球上多个位置的编码信息是一致的,CPR编码时将地球划分为不同的区域(Zone),包括南北方向上的纬度Zone和东西方向上的经度Zone;并且纬度Zone和经度Zone根据编码形式的不同,又被细分为“奇/偶”纬度Zone,“奇/偶”经度Zone。endprint

目标飞机交替发送含有偶形式和奇形式两种CPR编码的位置报文,解码时接收设备只要在规定的时间内(空中目标约10 s,地面目标约50 s)接收到一组含奇/偶编码信息的报文,就能准确地解算出目标飞机的位置[6]。

目标飞机全球明确的空中位置报文中经纬度解码算法如下:

解码算法中用下标区分奇偶编码,为偶编码,为奇编码。

1) 首先计算出纬度Zone的尺寸:

式中:为半球内纬度Zone的数量。纬度Zone的划分是以赤道为中线,赤道至南北极各有15个,即。

为了更精确地确定目标飞机在经纬度Zone的具体位置,CPR编码将每个Zone细分成块(Bin)。对于全球明确的空中位置报文,。

2) 计算纬度索引为:

3) 纬度的计算与纬度Zone的尺寸及纬度索引有关,其计算公式为:

式中为求模运算。

在系统程序设计时,可将上述取模运算简化为:当时,;当时,。由于纬度的取值范围为,若,则。

4) 经度Zone的划分又与纬度的绝对值有关,其尺寸为:

式中:为对应纬度的经度Zone的数量,其取值范围为1~59之间的整数,可以由式(5)解得:

由于计算比较复杂,不能满足系统实时性输出的设计要求,因此,在实际程序设计时采用查表法代替直接计算该函数,避免了运算量大和过多的占用内存资源,提高了系统整体效率。纬度与函数表如表3所示。

5) 由经度Zone的个数计算出经度索引:

6) 计算全球位置的经度

同样,式(7)中的取模运算可简化为:当时,;当时,。由于经度的取值范围为,若,则。图1为CPR解码的流程图。

1.2 CPR解码实验验证

实现过程中,系统在成功接收到1 090 MHz频率上的报文信息之后,选用DF=17格式的信息进行CPR解码验证,随机抽取其中10组数据列于表4中。

通过对5 000次CPR解码测试结果的统计,实际数据偏差在数量级,验证了CPR解码算法的有效性和可靠性。另外,CPR算法降低了位置信息编解码的位数,使经度码位(24 bits)和纬度码位(23 bits)均降为17位,这样在传输带宽有限的情况下,为1090ES数据链提供了更多的可用空間,有效地提高了信息的传输效率。

2 高度解码

ADS?B发射的高度数据融合在空中位置消息“ME”字段第9~20位的高度字段中,表5是高度子字段的编码方式。

高度子字段的第16位为当时,高度以每25英尺递增,编码的组合顺序为:二进制编码后字段最低有效位为25英尺,十进制数字的二进制值用来表示其高度英尺,该编码方式能编码的海拔高度范围为英尺。当时,高度以每100英尺递增,编码的组合顺序为其中前8位用标准循环码(格雷码)的编码形式,以每500英尺为单位递增;后3位则用五周期循环码的形式表示,以每100英尺为单位递增,用于对应高度分层的最小单位。

2.1 C模式高度解码算法的优化

当时,由高度码解算对应的海拔高度,通常采用查表法实现,但是在进行标准循环码(格雷码)与二进制码转换时,存在建表繁琐、占用资源多等缺点。因此,在实际程序设计时,考虑到格雷码与二进制码之间的关系,运用公式法完成格雷码与二进制码的转换,实现C模式高度解码[7]。能够很好地克服查表法建表和查表的复杂操作,大大地简化了高度解码的设计和计算,而且不会受因处理信息数据位数变化的影响。

公式法完成格雷码与二进制码的转换原理是保留格雷码的最高位不变,作为二进制码的最高位,二进制码的次高位由二进制码最高位与格雷码的次高位异或所得,二进制码的其余各位与二进制码的次高位的求法类似。设为一组格雷码,为其转换后的二进制码,转换过程用公式法表示如下:

由式(8)转换后的第位二进制码左移位后再求和,结果就是转换后二进制码的值,记为:

五周期循环码转换成对应的十进制数值时,与上述公式法得到的值是奇数还是偶数有关,即与值的二进制数末位是1和0有关[8]。五周期循环码的对应关系如表6所示。

将格雷码转换成普通二进制码,用表示,由表6得到五周期循环码对应的值实现高度的解码,具体流程如图2所示。

由C模式高度编码可知,当时,对应的高度大于10万英尺(约30 000 m),该值是目前民航飞机还达不到的海拔高度,故必须有。可由该位判断高度子字段是否接收正确,如果出现则判定该帧数据信息无效。

2.2 高度解码实验验证

表7是从文献[7]附录A中截取的5个高度数据和编码,用以验证2.1中所介绍的方法的有效性和可用性。利用图2的解码流程求得表7中的5个编码数据的高度值分别约为-366 m(-1 200 ft),-335 m(-1 100 ft),366 m(1 200 ft),396 m(1 300 ft),38 618 m(126 700 ft),位未使用(恒为0),这5个高度值与文献[7]附录A的原始值相符。

3 系统设计

3.1 Cortex?M4硬件平台优势

系统硬件由三部分组成:解调器和1 090 MHz接收机模块、主控模块、上位机。主控模块将接收的ADS?B位置信息进行解码,在监控设备上显示出飞机位置信息,如飞机注册编码号、三维位置、速度矢量、飞行意图等。整个系统硬件框图如图3所示。

由于嵌入式程序受硬件资源的限制,在实现CPR经纬度和高度解码需要充分利用Cortex?M4硬件平台资源。Cortex?M4内核采用32位精简指令集、多重AHB(Advanced High?peripheral Bus)总线矩阵和多通道DMA(Direct Memory Access)控制器,能够实现程序执行和数据传输的并行处理,最高工作频率高达168 MHz,内置高速嵌入式存储器、丰富的增强型I/O端口[9]。它还拥有192 kB的SRAM和自适应实时加速器ART,SRAM是CPU和外部主存的高速缓冲器。Cortex?M4具有浮点运算单元(FPU),支持所有的ARM单精度数据处理指令和数据类型,通过内置单精度FPU提升算法执行速度。endprint

3.2 系统软件设计

整个系统实现飞机位置报文的解码,包括飞机识别信息、经纬度、高度、速度、方向和爬升率等。当系统接收到位置信息后提取有效的位置信息,整理成标准化的帧信息,经CRC校验后,实现经纬度以及高度、飞机识别码、速度和航向角等信息解码,通过串口传输到监控机上显示和保存数据。系统软件工作流程图如图4所示。

3.3 CRC校验算法优化

为了验证接收的ADS?B位置报文信息的正确性,并且使系统对接收到的错误数据有一定的纠错能力,ADS?B空中位置报文的PI字段定义为24位CRC(Cyclic Redundancy Check)校验码。首先将接收到的位置报文数据帧作为一个多项式,用约定的24次多项式去除,求得的余子多项式即为ADS?B报文的CRC校验码多项式。多项式除法运算不带借位或进位,其等同于异或运算[10]。其中,实验所用的多项式为:

对信息进行CRC校验时,一般采用按位依次进行多项式除法的方法,但这种方法处理效率不高。为了提高计算速度,节省存储空间,在实验设计中采用32位多项式除法。软件设计时,将接收到的ADS?B数据帧的前88位二进制数据左移8位,整理成96位数据帧,按4 B分成3组;并将多项式左移7位整理成32位多项式。设异或运算后的商为余数为即:

根据计算余数多项式是否等于接收到的多项式来判断接收到的飞机空中位置报文是否出现传输错误。

为验证CRC校验结果的正确性,实验参考一帧实际的ADS?B数据“8D7802666045823D79BC8F”,利用上述方法进行CRC校验,得到校验码为0xFBCDD8,结果与真实值完全一致。CRC关键代码如下:

int VerifyCrc(u8 *pbin, int bits) //CRC校验 bits = 112

{

int i,ret = 0;

u32 p[3],crc;

u32 poly = 0xFFFA0480;

//1111 1111 1111 1010 0000 0100 1(生成多项式)+000 0000

bits ?= 24;

p[0]=(pbin[0]<<24)|(pbin[1]<<16)|(pbin[2]<<8)|(pbin[3]);

p[1] = (pbin[4]<<24)|(pbin[5]<<16)|(pbin[6]<<8)|(pbin[7]);

p[2] = (pbin[8]<<24)|(pbin[9]<<16)|(pbin[10]<<8);

for( i = 0; i < bits; i++ ){

if( p[0] & 0x80000000 ) p[0] ^= poly;

p[0] <<= 1;

if( p[1] & 0x80000000 ) p[0] |= 0x01;

p[1] <<= 1;

if( p[2] & 0x80000000 ) p[1] |= 0x01;

p[2] <<= 1;

}

bits = ( bits + 7 ) >>3;

crc=(pbin[bits]<<24)|(pbin[bits+1]<<16)|(pbin[bits+2]<<8);

if(crc == p[0]) ret = 1;

else ret = 0;

return ret;

}

4 结 语

经上述分析和验证,阐明了ADS?B飞机空中位置报文信息中CPR解码算法和C模式高度码解码算法的基本原理及详细实现步骤,系统可以完好地对接收机经PPM解调后的位置报文信息进行解码,实现实时观测空中飞机的位置状态和高度等信息,论证了该算法有着很高的精确度和稳定性。整体设计对基于ADS?B系统位置报文解码算法进行了分析和尝试,并对部分算法做出改进,有助于从事ADS?B技术的科研人员做相关的软件开发,有一定的参考和实用价值。

参考文献

[1] HARRISON M J. ADS?X: the next gen approach for the next generation air transportation system [C]// Proceedings of IEEE/AIAA the 25th Digital Avionics Systems Conference. Portland: IEEE, 2006: 1?8.

[2] REKKAS C, REES M. Towards ADS?B implementation in Europe [C]// Tyrrhenian International Workshop on Digital Communications?Enhanced Surveillance of Aircraft and Vehicles. Capri: IEEE, 2008: 1?4.

[3] RTCA. RTCA/DO?242A minimum aviation system performance standards for automatic dependent surveillance?broadcast (ADS?B) [S]. US: RTCA, 2002.

[4] RTCA. RTCA/DO?260A minimum operational performance standards for 1090 MHz extended squitter automatic dependent surveillance?broadcast (ADS?B) and traffic information services?broadcast (TIS?B) [S]. US: RTCA, 2003.endprint

[5] 呂小平.ADS?B技术介绍[J].空中交通管理,2005(4):24?25.

L? Xiaoping. Introduction of ADS?B technology [J]. Air traffic management, 2005(4): 24?25.

[6] 郑值,练马林,张超,等.模式S应答处理中报头检测算法的研究与实现[J].电子科技大学学报,2008,37(z1):66?70.

ZHENG Zhi, LIAN Malin, ZHANG Chao, et al. Research and realization of preamble detection arithmetic in mode S reply processing [J]. Journal of UESTC, 2008, 37(S1): 66?70.

[7] 中国民用航空总局.MH/T4010?2006 空中交通管制二次监视雷达设备技术规范[S].北京:中国民用航空总局,2006.

CAAC. MH/T4010 ?2006 the technical specifications of air traffic control secondary surveillance radar equipment [S]. Beijing: CAAC, 2006.

[8] 张尉.二次雷达原理[M].北京:国防工业出版社,2009:28?40.

ZHANG Wei. Secondary radar principle [M]. Beijing: National Defense Industry Press, 2009: 28?40.

[9] 沈建良,贾玉坤,周芬芬,等.STM32F10X系列ARM微控制器入门与提高[M].北京:北京航空航天大学出版社,2013.

SHEN Jianliang, JIA Yukun, ZHOU Fenfen, et al. STM32F10X

series of ARM microcontrollers entry and improve [M]. Beijing: Beijing University of Aeronautics and Astronautics Press, 2013.

[10] WARREN H S.算法心得:高效算法的奥妙[M].爱飞翔,译. 2版.北京:机械工业出版社,2014:276?284.

WARREN H S. Algorithm experience: the mystery of efficient algorithms [M]. 2nd ed. Translated by Ai Feixiang. Beijing: Mechanical Industry Press, 2014: 276?284.

[11] STEVENS M C. Secondary surveillance radar [M]. London: Artech House Inc., 1988.endprint

猜你喜欢
经度纬度字段
巧用四步法 妙解地方时
巧用四步法 妙解地方时
图书馆中文图书编目外包数据质量控制分析
纬度
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
基于时空纬度的国内农民工创业研究
抗生素入选2014年“经度奖”研究课题
关于CNMARC的3--字段改革的必要性与可行性研究
常用纬度差异极值符号表达式