adsb综合课程设计报告1.docx

上传人:b****8 文档编号:8888575 上传时间:2023-02-02 格式:DOCX 页数:14 大小:102.07KB
下载 相关 举报
adsb综合课程设计报告1.docx_第1页
第1页 / 共14页
adsb综合课程设计报告1.docx_第2页
第2页 / 共14页
adsb综合课程设计报告1.docx_第3页
第3页 / 共14页
adsb综合课程设计报告1.docx_第4页
第4页 / 共14页
adsb综合课程设计报告1.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

adsb综合课程设计报告1.docx

《adsb综合课程设计报告1.docx》由会员分享,可在线阅读,更多相关《adsb综合课程设计报告1.docx(14页珍藏版)》请在冰豆网上搜索。

adsb综合课程设计报告1.docx

adsb综合课程设计报告1

沈阳航空航天大学

综合课程设计

 

ADS-B报文数据的解析研究

 

班级

学号

学生姓名

指导教师

课程设计任务书

课程设计的内容及要求:

1、设计说明

对接收到的ADS-B数据进行解析,就是要对航空报文有较多了解,根据编码协议对报文进行解码,从里面提取出有用信息,能让人直观理解报文信息

2、设计要求

根据链路协议及编码协议,对报文解析,要实现:

1.能够解析出速度,高度,经纬度等重要信息;

2.界面尽量友好,误差要小;

3.数据能够实时更新

3、实验要求

用VC++实现编程和解析

四、推荐参考资料

 

五、按照要求撰写课程设计报告

 

成绩评定表

评语、建议或需要说明的问题:

 

指导教师签字:

日期:

成绩

一、概述

空中交通管理的根本目的是使航线上的飞机安全、有效和有计划地在空域中飞行,管制员需要对管制空域内飞机的飞行动态进行实时监视。

传统的雷达监视手段采用询问/应答方式对目标探测。

从长远来看,雷达系统自身具有很多局限性:

雷达波束的直线传播形成了大量雷达盲区;无法覆盖海洋和荒漠等地区;雷达旋转周期限制了数据更新率的提高,从而限制了监视精度的提高;无法获得飞机的计划航路、速度等态势数据,限制了跟踪精度的提高和短期冲突告警STCA(ShortTermConflictAlert)的能力。

因此,需要发展新的监视手段。

广播式自动相关监视ADS-B(AutomaticDependentSurveillance-Broadcast)即航空器自动广播由机载星基导航和定位系统生成的精确定位信息,地面设备和其他航空器通过航空数据链接收此信息,卫星系统、飞机以及地基系统通过高速数据链进行空天地一体化协同监视。

ADS-B的精度和数据更新率比雷达高,除位置信息外,ADS-B还提供其他信息,包括速度和飞行意向等,尤其适合于山区、荒漠、边远机场等不宜建设雷达的区域,也适合于高密度机场的监视,是未来监视系统的重要组成部分和发展方向。

目前,ICAO(InternationalCivilAviationOrganization,国际民用航空组织)高度重视ADS‐B的发展与应用,并制订了相关的技术标准和发展规划,并一直在努力倡导在全球统一部署相同标准ADS‐B体系,实现全球范围内的飞行监控与数据共享。

我国的民用航空业目前正处于成长期,飞机的数量、飞行的规模和空域的范围都在不断扩大,需要引进并吸收ADS‐B技术,以丰富和改进我们自己的空中交通管制系统和体系,并实现与国际最新技术的接轨。

在ADS‐B技术的吸收和应用中,需要不断地研究其基本原理,掌握其技术核心,促进实现国际先进技术与中国本地情况的不断融合。

 

图1ADS-B技术在航空中的应用示意图

2、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

图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次国际航空会议上,已经将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位指示了字段的单位和范围,其值为0表示信号强度的单位是ADC的LSB,范围是0到255;值为1表示信号强度的单位是dBm,范围是-127到127。

其它位目前都没有使用,缺省设置为0。

字段的计算采用了常用的CRC-16,其生成多项式是X16+X15+X2+1,对应的二进制位列为11000000000000101,因为其MSB必然为1,可以省略MSB,简写为101。

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--5

Bits6---8

Bits9---32

Bits33---88

Bits89---112

DF=17

CA

AA

ICAO地址

ADS-B

ME字段

PI

DF=18

CF=0

AA

ICAO地址

ADS-B

ME字段

PI

CF=1

AA

非ICAO地址

ADS-B

ME字段

PI

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报文,其过程如下图所示。

 

 

 

 

图3收发,解析数据示意图

数据的发送和接收遵循TCP通信协议,按照协议编码就行,这里不再赘述。

2.数据的解析

数据的解析是重中之重,这是决定你能否得到想要的结果的至关重要的一步,也是本次课设所重点研究的方面。

数据的编码与解析是按照协议进行的,对飞机的身份,编号,高度,速度,经纬度等信息进行编码,其中除了经纬度,其他信息大多按照进制数进行编码,不需要太复杂的算法,因此,这里只讲经纬度的算法解析。

CPR解码分为全球解码和本地解码两种情况。

如果同时接收到奇编码和偶编码两个消息,那么进行全球解码。

如果只接收到一个奇编码或偶编码消息,那么进行本地解码。

不论是全球解码还是本地解码,又分为空中位置和地面位置两类情况

全球明确的空中位置和地面位置的解码步骤为:

1)计算纬度Zone的尺寸Dlati

Dlati=360°/(4NL-i)空中位置i=0(偶编码)

90°/(4NL-i)地面位置i=0(偶编码)

2)计算纬度索引j

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编解码的原理和进行相关的软件开发。

 

 

 

图4CPR消息解码流程图

图4解析数据界面

四.课程设计体会

不知不觉这次课程已经结束,这个学期接触了它我了解了很多。

从刚开始的一无所知到逐渐熟悉,这个过程是令人充实的。

每做一个实验,我感觉我收获不少。

做实验是让我们对平时的理论知识与实际操作相结合,在理论和实验中更进一步去掌握自己学到的知识比加以掌握和提高,学会将知识应用与实际的方法,提高分析和解决问题的能力。

在实验过程中,我感到自己的实力有限。

有些东西没见过,不是在我的能力范围内。

经过我自己慢慢的学习与探讨我终于有了些眉目。

通过这次的课程设计,我充分认识到理论与实际相结合的重要性,理论知识再丰富,没有实际的操作经验,自身的能力是不会有所提高的。

我认为,在学习中要学以致用,不能过分的盲目的学习理论知识,我们必须要将理论与实践结合。

应该侧重于基本方法和使用实例。

从软件的应用环境和特点来看,培养一定的应用系统的分析能力和初步设计能力而为以后的学习以及设计才是最终目的。

社会的竞争是激烈的,我们应该把握大学学习的时间,充分利用好自己的价值,充实自己,完善自我,全面发展,做一名优秀的大学生,努力做好自己的事,让自己成为有用之才。

卫星导航行业是一个朝阳行业,我国的北斗导航目前正处于全球组网的快速发展时期,我这次的课设乃至以后的毕设正是这方面的研究,我相信经过课设和毕设,我的水平一定会再上一个台阶,为今后的工作和生活提供不小的助力。

参考文献:

[1]顾春平.空中交通管制新技术监视新技术简介[J].现代雷达,2010,32(9):

1-7.

[2]1090兆赫扩展电文广播式自动相关监视地面站(接收)设备测试要

求[S].民航局空管局技术中心(0207版),2011.

[3]吕小平.ADS—B应用中UAT技术介绍[J],空中交通管理,2007,(8),19-21

[4]丁立平.基于VDL-4技术的机场场面车辆管理系统研究[J].指挥信息系统与技术,2010,(6),55-60

[5]邱伟杰.ADSB广播式自动相关监视系统多数据链路融合方案探索[J].

[6]肖飞;余子寒;隋天宇;刘文.LTE中CRC算法的研究与实现[J].电子测量技术

.2014,(7),36-39

[7]李耀.基于模式S的ADS-B系统研究[D].武汉:

电子科技大学硕士论文,2008

[8]李自俊.ADS-B广播式自动关监视原理及未来的发展和应用[J].中国民航飞行学院

学报,2008(5):

11-14.

[9]苏英振.积极推进空中交通管制一体化建设[J].国防,2008(6):

59-60

[10]中国民航科学技术研究指南(2005-2010)[M].中国民航总局,2005.

[11]ICAO.ComparativeAnalysisofADS-BdataLinks[R].AN-Conf/11-IP/1,

CANADA:

ICAO,2003.

 

CPR部分算法

#include""

#include""

#include<>

#include""

#defineM_PI

#defineLATZ15

#defineMAX(x,y)(((x)>(y))(x):

(y))

 

intnz(inttype){

return4*LATZ-type;

}

floatnl(floatlat){

if(abs(lat)>=

return;

returnfloor(

*M_PI)*

pow(acos--cos(M_PI/*LATZ)))/

pow(cos((M_PI/*abs(lat)),2)),-1)

);

}

floatdlat(inttype,intsurface){

floatres=surface:

;

intnz_val=nz(type);

if(nz_val)

returnres/nz_val;

else

returnres;

}

floatdlng(floatdec_lat,inttype,intsurface){

floatres=surface:

;

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+(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+(fmod(recv_lng,t1)/t1)-t2);

returnt1*(m+t2);

}

structdec_location*cpr_resolve_local(structdec_location*recv,

structenc_location*loc,inttype,intsurface){

floatdec_lat=decode_lat(loc->lat,type,surface,recv->lat);

floatdec_lng=decode_lng(dec_lat,loc->lng,type,surface,recv->lng);

structdec_location*dec_loc=(dec_location*)malloc(sizeof(*dec_loc));

dec_loc->lat=dec_lat;

dec_loc->lng=dec_lng;

returndec_loc;

}

structdec_location*cpr_resolve_global(structenc_location*even,

structenc_location*odd,structdec_location*recv,intrecent_type,intsurface){

floatdlat_even=dlat(0,surface);

floatdlat_odd=dlat(1,surface);

floateven_lat=(float)even->lat;

floateven_lng=(float)even->lng;

floatodd_lat=(float)odd->lat;

floatodd_lng=(float)odd->lng;

/*latitudeindex*/

floatj=floor(((nz

(1)*even_lat-nz(0)*odd_lat)/

pow(2,17))+;

floatrlat_even=dlat_even*((fmod(j,nz(0)))+even_lat/pow(2,17));

floatrlat_odd=dlat_odd*((fmod(j,nz

(1)))+odd_lat/pow(2,17));

if(rlat_even>

rlat_even-=;

if(rlat_odd>

rlat_odd-=;

if(nl(rlat_even)!

=nl(rlat_odd))

return0;

floatrlat=recent_typerlat_odd:

rlat_even;

if(surface&&recv->lat<0)

rlat-=;

floatdl=dlng(rlat,recent_type,surface);

floatnl_rlat=nl(rlat);

/*longitudeindex*/

floatm=floor((((nl_rlat-1)*even_lng-nl_rlat*odd_lng)/

pow(2,17))+;

printf("%f%f\n",dl,nl_rlat);

floatenc_lon=recent_typeodd_lng:

even_lng;

float

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1