沈阳航空航天大学综合课程设计ADS-B报文数据的解析研究班级学号学生姓名指导教师课程设计任务书课程设计的内容及要求:一、设计说明对接收到的ADS-B数据进行解析,就是要对航空报文有较多了解,根据编码协议对报文进行解码,从里面提取出有用信息,能让人直观理解报文信息二、设计要求根据链路协议及编码协议,对报文解析,要实现:1.能够解析出速度,高度,经纬度等重要信息;2.界面尽量友好,误差要小;3.数据能够实时更新三、实验要求用VC++实现编程和解析四、推荐参考资料五、按照要求撰写课程设计报告成绩评定表评语、建议或需要说明的问题:指导教师签字:日期:成绩沈阳航空航天大学综合课程设计1一、概述空中交通管理的根本目的是使航线上的飞机安全、有效和有计划地在空域中飞行,管制员需要对管制空域内飞机的飞行动态进行实时监视。传统的雷达监视手段采用询问/应答方式对目标探测。从长远来看,雷达系统自身具有很多局限性:雷达波束的直线传播形成了大量雷达盲区;无法覆盖海洋和荒漠等地区;雷达旋转周期限制了数据更新率的提高,从而限制了监视精度的提高;无法获得飞机的计划航路、速度等态势数据,限制了跟踪精度的提高和短期冲突告警STCA(ShortTermConflictAlert)的能力。因此,需要发展新的监视手段。广播式自动相关监视ADS-B(AutomaticDependentSurveillance-Broadcast)即航空器自动广播由机载星基导航和定位系统生成的精确定位信息,地面设备和其他航空器通过航空数据链接收此信息,卫星系统、飞机以及地基系统通过高速数据链进行空天地一体化协同监视。ADS-B的精度和数据更新率比雷达高,除位置信息外,ADS-B还提供其他信息,包括速度和飞行意向等,尤其适合于山区、荒漠、边远机场等不宜建设雷达的区域,也适合于高密度机场的监视,是未来监视系统的重要组成部分和发展方向。目前,ICAO(InternationalCivilAviationOrganization,国际民用航空组织)高度重视ADS‐B的发展与应用,并制订了相关的技术标准和发展规划,并一直在努力倡导在全球统一部署相同标准ADS‐B体系,实现全球范围内的飞行监控与数据共享。我国的民用航空业目前正处于成长期,飞机的数量、飞行的规模和空域的范围都在不断扩大,需要引进并吸收ADS‐B技术,以丰富和改进我们自己的空中交通管制系统和体系,并实现与国际最新技术的接轨。在ADS‐B技术的吸收和应用中,需要不断地研究其基本原理,掌握其技术核心,促进实现国际先进技术与中国本地情况的不断融合。图1ADS-B技术在航空中的应用示意图导航卫星飞机A飞机B地面基站相互发送接收数据发送发送沈阳航空航天大学综合课程设计2二、ADS-B系统工作原理ADS-BOUT系统中,主要的功能由S模式应答机实现,在其正常工作期间,周期性的将DF17格式的扩展断续振荡信号广播出去,为飞机和地面站提供相关信息包括飞机的经纬度信息、高度信息、航行速度信息等。在系统正常工作时,应答机接收来自GPS接收机的导航消息,通过对数据的分析,提取有有用的信息部分组合成为使用于S模式传输的报文格式,然后以特定的速率通过应答机天线发送出去,当地面站和其他飞机接收到这些信息后,通过对信息的解码、检错、纠错、报文生成过程获取这架飞机的飞行参数,高度速度等有效的信息,这些信息将非常有效的帮助完成空中管理以及飞机间的相关监视过程。与应答机应答二次雷达的询问一样,DF17格式的扩展断续振荡信号用一个1090MHz的载波频率进行调制并以1Mbps数据速率广播脉冲位置,扩展断续振荡脉冲的长度为112比特。ADS-B消息结构Bit1----56----89----3233---8889---112DF=17DF=10001CAAA(ICAO)ME字段PI图2ADS-B消息结构在接收的数据部分中,以DF17格式的扩展断续振荡信号为例,共有5个主要的飞行任务字段。其中,第一个字段为DF位格式字段,长度为5比特,主要作用在于识别扩展断续振荡的内容,此字段设置为固定值17(十进制数),本项目工作的研究也主要针对此类信号。接下来则是3比特的应答机能力(CA)字段,该字段描述了飞机的S模式数据链通信能力,如是否装载了ADS系统等。广播地址(AA)字段是消息中最重要的一个字段,该字段唯一的识别了每个飞机独一无二的24比特的S模式地址,用来表明飞机的身份。接下来是机载设备采集整合的信息ME字段,56比特的扩展型断续振荡报文是主要的ADS-B消息,该消息主要包括飞机的参数信息如高度、速度、经度、纬度等信息,它为飞机参数如GPS位置和速度提供报文有效信息。最后,24比特的奇偶性(PI)字段,该字段为前88位数据信息的CRC校验余数,用于实现CRC检错纠错。三相关技术1.1090ES数据链1090ES(ExtendedSquitter,扩展电文)的命名中包含两层含义。1090指的是该数据链的下行传输频带是1090MHz。ES指的是对原有ADS-B报文长度的扩展。原有的报文长度一般为56-112比特。1090ES是由ICAO推荐的、唯一一个可以在全球范围内使用的数据链技术,得到了美国、欧洲、亚洲等大部分国家的承认和应用。在第11次国际航空沈阳航空航天大学综合课程设计3会议上,已经将1090ES作为ADS-B主要数据链技术,并制定了相关的协议和标准。1090ES是一种S模式的数据链,支持一对一的询问-应答机制。S是Selective的意思,指的是可以对航空器进行选择通信。1090ES采用PPM(脉冲位置调制)编码。2.ADS-BIN设备报文系统采用的ADS-BIN设备,在收到ADS-B报文后,对ADS-B报文进行了二次封装,增加了报文头,将ADS-B报文作为它的载荷。封装后的报文被ADS-BIN设备通过网络转发给其它设备。除此之外,ADS-BIN设备还发送一些状报文,描述设备时间和位置等信息。ADS-BIN设备可以发出的报文一共有三类:1)MessageReport2)TimeReport3)PositionReport我们用的接收设备是SBS-3接收机,主要分析MessageReport,即DF17数据,所以其他两种Report不多做介绍。表1Messagereport的格式字段长度(字节)含义STX1报文头标识,其固定值为0x20LEN1报文长度,不包括报文头标识和结尾标识type1报文类型,用于区分三种类型time6报文到达的时间message14报文内容flags1报文标识amp1信号强度crc2CRC校验值,从LEN到ampETX1报文结尾标识MessageReport的报文长度共28个字节。一些关键字段的说明如下:type字段,取值范围是0-4,0-3代表MessageReport或TimeReport,两者的区分可以通过message字段的内容来辨别。0-3的不同之处在于time时间标准的不同。0是本地时间,1是NOTCOUPLED类型的UTC时间,2是COASTING类型的UTC时间,3是COUPLED类型的UTC时间。4代表PositionReport。flag字段是一个按位解析的字段,第0位指示了接收的天线,其值为0表示从A天线接收;值为1表示从B天线接收。第3位指示了amp字段的沈阳航空航天大学综合课程设计4单位和范围,其值为0表示信号强度的单位是ADC的LSB,范围是0到255;值为1表示信号强度的单位是dBm,范围是-127到127。其它位目前都没有使用,缺省设置为0。crc字段的计算采用了常用的CRC-16,其生成多项式是X16+X15+X2+1,对应的二进制位列为11000000000000101,因为其MSB必然为1,可以省略MSB,简写为1000000000000101。3.ADS-B基本报文ADS-B报文由业务数据和附加数据两部分组成。ADS-B基本报文指的是从宏观的角度,将业务数据作为一个整体而不考虑其细节,所展现出来的ADS-B报文。ADS-B基本报文对ADS-B业务数据进行了封装,作为ADS-B基本报文的一个独立字段存在。在ADS-B的业务数据中,包含了不同类型的业务数据,它们具有不同的结构。本节将这些不同格式的业务数据称之为ADS-B业务报文。ADS-B报文的长度共112位,是按位进行格式设计的结构。下表是1090ES的报文结构定义,ADS-B的报文基本结构包含在其中表21090ES报文结构Bits1--5Bits6---8Bits9---32Bits33---88Bits89---112DF=17CAAAICAO地址ADS-BME字段PIDF=18CF=0AAICAO地址ADS-BME字段PICF=1AA非ICAO地址ADS-BME字段PICF=2to3AATIS-BME字段PICF=4TIS-B和ADS-B管理报文PICF=5AATIS-BME字段PI四.信息处理ADS-B数据的信息处理包括数据的接收与解析两大部分,其中包括循环冗余校验,LSB与MSB,数据的打包与解包,多线程操作,CPR解码算法等技术,由于侧重点不同,这里主要讲一下数据的发送和接收及解析算法。1.数据的发送和接收ADS-B报文从发送从网络上接收最初始的数据,到转换成ME报文,其过程沈阳航空航天大学综合课程设计5如下图所示。图3收发,解析数据示意图数据的发送和接收遵循TCP通信协议,按照协议编码就行,这里不再赘述。2.数据的解析数据的解析是重中之重,这是决定你能否得到想要的结果的至关重要的一步,也是本次课设所重点研究的方面。数据的编码与解析是按照协议进行的,对飞机的身份,编号,高度,速度,经纬度等信息进行编码,其中除了经纬度,其他信息大多按照进制数进行编码,不需要太复杂的算法,因此,这里只讲经纬度的算法解析。CPR解码分为全球解码和本地解码两种情况。如果同时接收到奇编码和偶编码两个消息,那么进行全球解码。如果只接收到一个奇编码或偶编码消息,那么进行本地解码。不论是全球解码还是本地解码,又分为空中位置和地面位置两类情况全球明确的空中位置和地面位置的解码步骤为:1)计算纬度Zone的尺寸DlatiDlati=360°/(4NL-i)空中位置i=0(偶编码)90°/(4NL-i)地面位置i=0(偶编码)2)计算纬度索引j机载设备ADS-BOUT设备ADS-BIN设备数据采集设备ADS-B业务数据ADS-B报文MessageReportMessageReportADS-B报文ADS-B报文ADS-B报文ME报文数据链IP网络沈阳航空航天大学综合课程设计6j=floor((59×YZ0-60×YZ1)/217+1/2)当j<0时,j=偶纬度Zone的编号-60,j=奇纬度Zone的编号-59;当j≥0时,j=偶纬度Zone的编号,j=奇纬度Zone的编号。3)计算偶形式的纬度Rlat0和奇形式的纬度Rlat1Rlati=Dlati×MOD(j,60-i)+YZi/217若求出的纬度绝对值大于90°,则应减去360°。因为纬度的取值范围为-90°~+90°。4)计算纬度数NL(Rlat0)和NL(Rlat1)。判断NL(Rlat0)是否与NL(Rlat1)相等。若相等,则计算经度Zone的尺寸Dloni。否则,继续等待下一个位置消息。5)计算经度Zone的尺寸Dloni。根据刚接收到的空中位置消息是偶编码(i=0)还是奇编码(i=1),按式(12)计算Dloni=360°/ni空中位置i=0(偶编码)90°/ni地面位置i=1(奇编码)式中ni=max[NL(Rlati)-i,1]。6)采用纬度数NL,计算经度索引mm=floor[XZ0×(NL(Rlati)-1)-XZ1×NL(Rlati)/217+12]当m<0时,m=偶纬度Zone的编号-n0,m=奇纬度Zone的编号-n1;当m≥0时,m=偶纬度Zone的编号,m=奇纬度Zone的编号。7)计算全球的经度Rlon0和Rlon1。根据接收到的ADS-B位置消息是偶编码(i=0