ADSB综合课程设计报告汇总.docx
《ADSB综合课程设计报告汇总.docx》由会员分享,可在线阅读,更多相关《ADSB综合课程设计报告汇总.docx(23页珍藏版)》请在冰豆网上搜索。
ADSB综合课程设计报告汇总
沈阳航空航天大学
综合课程设计
ADS-B报文数据的解析研究
班级
学号
学生姓名
指导教师
课程设计任务书
课程设计的内容及要求:
一、设计说明
对接收到的ADS-B数据进行解析,就是要对航空报文有较多了解,根据编
码协议对报文进行解码,从里面提取出有用信息,能让人直观理解报文信息
二、设计要求
根据链路协议及编码协议,对报文解析,要实现:
1.能够解析出速度,高度,经纬度等重要信息;
2.界面尽量友好,误差要小;
3.数据能够实时更新
三、实验要求
用VC++实现编程和解析四、推荐参考资料
五、按照要求撰写课程设计报告
成绩评定表
评语、建议或需要说明的问题:
成绩
指导教师签字:
日期:
沈阳航空航天大学综合课程设计
一、概述
空中交通管理的根本目的是使航线上的飞机平安、有效和有方案地在空域中飞行,管制员需要对管制空域内飞机的飞行动态进行实时监视。
传统的雷达监视手段采用询问/应答方式对目标探测。
从长远来看,雷达系统自身具有很多局限性:
雷达波束的直线传播形成了大量雷达盲区;无法覆盖海洋和荒漠等地区;雷达旋转周期限制了数据更新率的提高,从而限制了监视精度的提高;无法获得飞机的方案航路、速度等态势数据,限制了跟踪精度的提高和短期冲突告警
STCA(ShortTermConflictAlert)的能力。
因此,需要开展新的监视手段。
播送式自动相关监视ADS-B(AutomaticDependentSurveillance-
Broadcast)即航空器自动播送由机载星基导航和定位系统生成的精确定位信
息,地面设备和其他航空器通过航空数据链接收此信息,卫星系统、飞机以及地基系统通过高速数据链进行空天地一体化协同监视。
ADS-B的精度和数据更新
率比雷达高,除位置信息外,ADS-B还提供其他信息,包括速度和飞行意向等,
尤其适合于山区、荒漠、遥远机场等不宜建设雷达的区域,也适合于高密度机场
的监视,是未来监视系统的重要组成局部和开展方向。
目前,ICAO〔InternationalCivilAviationOrganization,国际民用航
空组织〕高度重视ADS‐B的开展与应用,并制订了相关的技术标准和开展规划,
并一直在努力倡导在全球统一部署相同标准ADS‐B体系,实现全球范围内的飞
行监控与数据共享。
我国的民用航空业目前正处于成长期,飞机的数量、飞行
的规模和空域的范围都在不断扩大,需要引进并吸收ADS‐B技术,以丰富和改良我们自己的空中交通管制系统和体系,并实现与国际最新技术的接轨。
在ADS
‐B技术的吸收和应用中,需要不断地研究其根本原理,掌握其技术核心,促进实现国际先进技术与中国本地情况的不断融合。
导航卫星
发送
发送
相互发送接收数据
飞机A飞机B
地面基站
图1ADS-B技术在航空中的应用示意图
1
沈阳航空航天大学综合课程设计
二、ADS-B系统工作原理
ADS-BOUT系统中,主要的功能由S模式应答机实现,在其正常工作期间,周期性的将DF17格式的扩展断续振荡信号播送出去,为飞机和地面站提供相关
信息包括飞机的经纬度信息、高度信息、航行速度信息等。
在系统正常工作时,
应答机接收来自GPS接收机的导航消息,通过对数据的分析,提取有有用的信息局部组合成为使用于S模式传输的报文格式,然后以特定的速率通过应答机
天线发送出去,当地面站和其他飞机接收到这些信息后,通过对信息的解码、检
错、纠错、报文生成过程获取这架飞机的飞行参数,高度速度等有效的信息,这些信息将非常有效的帮助完成空中管理以及飞机间的相关监视过程。
与应答机应答二次雷达的询问一样,DF17格式的扩展断续振荡信号用一个1090MHz的载波频率进行调制并以1Mbps数据速率播送脉冲位置,扩展断续振荡脉冲的长度为112比特。
ADS-B消息结构
Bit
1----
5
6----
8
9----
32
33---
88
89---
112
DF=17
DF=10001
CA
AA(ICAO)
ME字段
PI
图2
ADS-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次国际航空
2
沈阳航空航天大学综合课程设计
会议上,已经将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〕MessageReport
2〕TimeReport
3〕PositionReport
我们用的接收设备是SBS-3接收机,主要分析MessageReport,即DF17数据,
所以其他两种Report不多做介绍。
表1Messagereport的格式
字段
长度〔字节〕
含义
STX
1
报文头标识,其固定值为0x20
LEN
1
报文长度,不包括报文头标识和结尾标识
type
1
报文类型,用于区分三种类型
time
6
报文到达的时间
message
14
报文内容
flags
1
报文标识
amp
1
信号强度
crc
2
CRC校验值,从LEN到amp
ETX
1
报文结尾标识
MessageReport的报文长度共28
个字节。
一些关键字段的说明如下:
字段,取值范围是
0-4,0-3
代表MessageReport或TimeReport,
两者的区分可以通过字段的内容来区分。
0-3的不同之处在于
0是本地时间,1是NOTCOUPLED类型的UTC时间,2是COASTING类型的UTC时间,3是COUPLED类型的UTC时间。
4代
表PositionReport。
字段是一个按位解析的字段,第0位指示了接收的天线,其值为0表示从A天线接收;值为1表示从B天线接收。
第3位指示了字段的
3
沈阳航空航天大学综合课程设计
单位和范围,其值为0表示信号强度的单位是ADC的LSB,范围是
0到255;
值为1表示信号强度的单位是dBm,范围是-127到127。
其它位目前都没有使用,缺省设置为0。
字段的计算采用了常用的CRC-16,其生成多项式是X16+X15+X2+1,
对应的二进制位列为11000000000000101,因为其MSB必然为1,可以省略MSB,简写为。
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的报文根本结构包含在其中
表2
1090ES报文结构
Bits1--5
Bits6---8
Bits9---32
Bits33---88
Bits89---112
DF=17
CA
AA
ADS-B
PI
ICAO地址
ME字段
DF=18
CF=0
AA
ADS-B
PI
ICAO地址
ME字段
CF=1
AA
ADS-B
PI
非ICAO地址
ME字段
CF=2to3
AA
TIS-BME
字段
PI
CF=4
TIS-B和ADS-B管理报文
PI
CF=5
AA
TIS-BME
字段
PI
四.信息处理
ADS-B数据的信息处理包括数据的接收与解析两大局部,其中包括循环冗余
校验,LSB与MSB,数据的打包与解包,多线程操作,CPR解码算法等技术,由于侧重点不同,这里主要讲一下数据的发送和接收及解析算法。
1.数据的发送和接收
ADS-B报文从发送从网络上接收最初始的数据,到转换成ME报文,其过程
4
沈阳航空航天大学综合课程设计
如下列图所示。
数据链
IP网络
机载
ADS-B
ADS-B
数据采集设
设备
OUT设备
IN设备
备
MessageReport
MessageReport
ADS-B
ADS-B
ADS-B
ADS-B
业务数据
报文
报文
报文
ADS-B
报文
ME报文
图3收发,解析数据示意图
数据的发送和接收遵循TCP通信协议,按照协议编码就行,这里不再赘述。
2.数据的解析
数据的解析是重中之重,这是决定你能否得到想要的结果的至关重要的一
步,也是本次课设所重点研究的方面。
数据的编码与解析是按照协议进行的,对飞机的身份,编号,高度,速度,经纬度等信息进行编码,其中除了经纬度,其
他信息大多按照进制数进行编码,不需要太复杂的算法,因此,这里只讲经纬度的算法解析。
CPR解码分为全球解码和本地解码两种情况。
如果同时接收到奇编码和偶编码两个消息,那么进行全球解码。
如果只接收到一个奇编码或偶编码消息,
那么进行本地解码。
不管是全球解码还是本地解码,又分为空中位置和地面位
置两类情况
全球明确的空中位置和地面位置的解码步骤为:
1〕计算纬度Zone的尺寸Dlati
Dlati=360°/〔4NL-i〕空中位置i=0(偶编码〕
90°/〔4NL-i〕地面位置i=0(偶编码〕
2〕计算纬度索引j
5
沈阳航空航天大学综合课程设计
j=floor〔〔59×YZ0-60×YZ1〕/217+1/2〕
当j<0时,j=偶纬度Zone的编号-60,j=奇纬度Zone的编号-59;
当j≥0时,j=偶纬度Zone的编号,j=奇纬度Zone的编号。
3〕计算偶形式的纬度Rlat0
和奇形式的纬度Rlat1
Rlati=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,计算经度索引m
m=
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〕还是奇编码〔i=1〕,
按式计算Rloni=Dloni×MOD〔m,ni〕+XZi/2
假设求出的经度绝对值大于180°,那么应减去360°。
因为经度的取值范围为
-180°~+180°。
如何实现飞机的经度和纬度消息的CPR格式的编码和解码,是1090ESADS-B系统中有效提高ADS-B位置消息传输效率的关键。
本文针对全球位置和本地位置两种情况,说明了飞机在空中位置和地面位置时经度和纬度的编解码算法的
根本原理和详细的实现步骤,有助于从事ADS-B技术的科技人员掌握CPR编解码的原理和进行相关的软件开发。
6
沈阳航空航天大学综合课程设计
ADS-B消息提取
提取CPR数据
是否
奇编码
存储CPR编码数据,设置
存储CPR编码数据,设置
Target_TTL,ODD_TTL
Target_TTL,EVEN_TTL
否
是
否
EVEN_TTL为0
ODD_TTL为0
计算NL(Rlat0)
计算NL(Rlat0)和
和NL〔Rlat1)
NL〔Rlat1
NL〔Rlat1)
否
否
是否相等
是否相等
是
提取其他信息
是
计算Rlat1
计算Rlat0
存储解码位
存储解码位置信
置信息
息
结束结束
图4CPR消息解码流程图
7
沈阳航空航天大学综合课程设计
图4解析数据界面
四.课程设计体会
不知不觉这次课程已经结束,这个学期接触了它我了解了很多。
从刚开始的一无所知到逐渐熟悉,这个过程是令人充实的。
每做一个实验,我感觉我收获不少。
做实验是让我们对平时的理论知识与实际操作相结合,在理论和实验中更进一步去掌握自己学到的知识比加以
掌握和提高,学会将知识应用与实际的方法,提高分析和解决问题的能力。
在实验过程中,
我感到自己的实力有限。
有些东西没见过,不是在我的能力范围内。
经过我自己慢慢的学习
与探讨我终于有了些眉目。
通过这次的课程设计,我充分认识到理论与实际相结合的重要性,理论知识再丰富,没有实际的操作经验,自身的能力是不会有所提高的。
我认为,在学习中
要学以致用,不能过分的盲目的学习理论知识,我们必须要将理论与实践结合。
应该侧重于
根本方法和使用实例。
从软件的应用环境和特点来看,培养一定的应用系统的分析能力和初
步设计能力而为以后的学习以及设计才是最终目的。
社会的竞争是剧烈的,我们应该把握大
学学习的时间,充分利用好自己的价值,充实自己,完善自我,全面开展,做一名优秀的大
学生,努力做好自己的事,让自己成为有用之才。
卫星导航行业是一个朝阳行业,我国的北斗导航目前正处于全球组网的快速开展时期,我这次的课设乃至以后的毕设正是这方面的研究,我相信经过课设和毕设,我的水平一定会再上一个台阶,为今后的工作和生活提供不小的助力。
8
沈阳航空航天大学综合课程设计
参考文献:
[1]顾春平.空中交通管制新技术监视新技术简介[J].现代雷达,2021,32(9):
1-7.
[2]1090兆赫扩展电文播送式自动相关监视地面站〔接收〕设备测试要
求[S].民航局空管局技术中心(0207版),2021.
[3]吕小平.ADS—B应用中UAT技术介绍[J],空中交通管理,2007,(8),19-21
[4]丁立平.基于VDL-4技术的机场场面车辆管理系统研究[J].指挥信息系统与技术,
2021,(6),55-60
[5]
邱伟杰.ADSB
播送式自动相关监视系统多数据链路融合方案探索[J].
[6]
肖飞;余子寒;隋天宇;
刘文.LTE中CRC算法的研究与实现[J].
电子测量技术
.2021,(7),36-39
[7]
李耀.基于模式
S的ADS-B
系统研究[D].武汉:
电子科技大学硕士论文,
2021
[8]
李自俊.ADS-B
播送式自动关监视原理及未来的开展和应用[J].中国民航飞行学院
学报,2021(5):
11-14.
[9]苏英振.积极推进空中交通管制一体化建设[J].国防,2021(6):
59-60
[10]中国民航科学技术研究指南(2005-2021)[M].中国民航总局,2005.
[11]ICAO.ComparativeAnalysisofADS-BdataLinks[R].AN-Conf/11-IP/12.Montreal,CANADA:
ICAO,2003.
CPR局部算法
#include"stdio.h"
#include"stdlib.h"
#include
#include"cpr.h"
#
#defineMAX(x,y)(((x)>(y))?
(x):
(y))
intnz(inttype){
return4*LATZ-type;
}
floatnl(floatlat){
if(abs(lat)>=87.0)
return1.0;
returnfloor(
(2.0*M_PI)*
pow(acos(1.0-(1.0-cos(M_PI/(2.0*LATZ)))/
9
沈阳航空航天大学综合课程设计
pow(cos((M_PI/180.0)*abs(lat)),2)),-1)
);
}
floatdlat(inttype,intsurface){
floatres=surface?
90.0:
360.0;
intnz_val=nz(type);
if(nz_val)
returnres/nz_val;
else
returnres;
}
floatdlng(floatdec_lat,inttype,intsurface){
floatres=surface?
90.0:
360.0;
floatnl_val=MAX(nl(dec_lat)-type,1);
returnres/nl_val;
}
floatdecode_lat(intenc_lat,inttype,intsurface,floatrecv_lat){
floatt1=dlat(type,surface);
floatt2=((float)enc_lat)/pow(2,17);
floatj=floor(recv_lat/t1)+
floor(0.5+(fmod(recv_lat,t1)/t1)-t2);
returnt1*(j+t2);
}
floatdecode_lng(floatdec_lat,intenc_lon,inttype,intsurface,floatrecv_lng){floatt1=dlng(dec_lat,type,surface);
floatt2=((float)enc_lon)/pow(2,17);
floatm=floor(recv_lng/t1)+
floor(0.5+(fmod(recv_lng,t1)/t1)-t2);
returnt1*(m+t2);
}
structdec_location*cpr_resolve_local(st