ADS-B接收机自动测试系统的设计与实现
2018-12-19
(中国民航大学 智能信号与图像处理天津市重点实验室,天津 300300)
1 引 言
广播式自动相关监视(Automatic Dependent Surveillance-Broadcast,ADS-B)是基于飞机导航信息的应用系统,被国际民航组织(International Civil Aviation Organization,ICAO)确定为正在推广的新航行系统的主要监视手段[1]。来自飞机的ADS-B信息以ADS-B报文形式,通过数据链自动向地面或其他飞机广播飞行状态数据(包括呼号、经纬度、高度、速度矢量、飞行意图等),可在无雷达区独立提供监视服务,也可在雷达覆盖区补盲或进行双重/多重覆盖,以达到提高监视精度的目的[2]。对于数据链形式,ICAO推荐ADS-B报文采用1 090 MHz S模式扩展电文数据链(1090ES)传输。在此基础上,美国航空无线电委员会(Radio Technical Commission for Aeronautics,RTCA)制定了DO-260B标准对基于1090ES的ADS-B系统性能进行了详细规定[3],中国民航局对ADS-B接收机也有相应的技术要求[4]。
众所周知,监视精度提高的必要条件与前提是稳定可靠的ADS-B接收机接收性能,而对接收机性能的高效可靠测试是保障接收机具有稳定可靠接收性能的重要环节。目前大多数研究主要针对ADS-B接收机的实现[5-7]和对ADS-B接收的信息处理[8-9],而对ADS-B接收机性能的自动测试系统及其实现缺乏讨论。为满足DO-260B标准对ADS-B系统技术要求和民航局对ADS-B接收机测试要求,本文针对ADS-B自动测试系统设计研制,详细论述其设计架构、实现方法和实验测试情况,对该测试系统的性能进行分析。
2 系统设计
参照DO-260B标准和民航局标准要求,需要设计一款便携式1090ES ADS-B接收机测试系统,同时具备1090ES ADS-B信号输出和接收机重要指标自动测量功能。主要体现在:第一,系统可以生成含600批次目标的中频和射频两种形式的1090ES ADS-B信号,其中射频信号频率和功率可调整(频率范围1 065~1 115 MHz,调整间隔0.5 MHz;功率范围-60~10 dBm,步进1 dBm);第二,系统可以接收被测接收机解算出的DF17报文数据,自动测试分析被测接收机的相关性能参数;第三,系统提供人机接口来设置相关参数。
系统总体设计框图如图1所示,主要分为两个部分:一是上位机部分,主要完成自动测试设置和结果输出;二是ADS-B射频信号生成部分,由ADS-B报文生成器、射频电路和单片机等部分组成,主要生成测试用1090ES ADS-B中频和射频信号。
图1 接收机自动测试系统设计方框图Fig.1 Block diagram of automatic test system for ADS-B receiver
各个部分功能总结如下:
(1)上位机
通过串口和ADS-B报文生成器进行双向通信,给ADS-B报文生成器发送原始飞行状态数据和控制信息,并接收ADS-B报文生成器和射频电路的状态信息;通过网络从被测ADS-B接收机接收解算报文数据,比较接收数据和原始数据,给出测试结果。
(2)ADS-B报文生成器
提供与上位机和单片机通信的串口,接收原始飞行状态数据和控制信息,在控制信息控制下生成ADS-B报文,并进行中频调制生成数字中频信号。
(3)射频电路
电路的增益、工作方式受单片机的控制,将ADS-B报文生成器输出的数字中频信号转换成模拟中频信号,并上变频至射频信号,在单片机的控制下对射频信号的输出频率和功率进行控制。
(4)单片机控制系统:接收测试设置命令,生成ADS-B报文生成器和射频电路的控制信号,并接收它们的状态反馈信息,以可视化的形式反馈系统状态信息。
3 硬件设计
3.1 工作原理及电路组成
为了生成符合系统测试要求的射频信号,应答机的1090ES ADS-B信号格式与S模式应答机发射信号格式类似[6],采用下行链路DF17格式。依此原则,本文所设计的ADS-B报文生成器对来自上位机的飞行数据进行格式转换、压缩编码等,形成112位报文数据脉冲,插入前导脉冲形成ADS-B信号帧,之后进行10 MHz数字中频调制,由数模转换后经射频调制、滤波、放大,最终生成指定频率、功率的ADS-B射频信号。
所设计的ADS-B射频信号生成器如图2所示,主要包含ADS-B报文生成器、射频电路、单片机控制系统、供电电路、自检电路。为方便说明,下面对系统所涉模块的原理及功能进行简要叙述。
图2 ADS-B射频信号生成器硬件结构图Fig.2 Structural diagram of ADS-B RF signal generator
3.2 ADS-B报文生成器
ADS-B报文生成器以XILINX公司生产的XC7A200T FPGA(Field Programmable Gate Array)为核心,一方面将ADS-B报文数据转换成脉冲信号,并进行数字调制,生成ADS-B数字中频信号,输出给与射频电路接口的数模转换器(D/A);另一方面,通过自检测试,接收自检电路的中频信号输出,并在FPGA进行比较,形成对整个信号生成电路的闭环测试。
FPGA中总共提供两个串口与其他模块通信:串口1可用于与上位机和单片机通信,用来传输上位机控制命令;串口2用于接收上位机发送的飞行数据。考虑到通信过程中的飞行数据量大,为满足测试需要,必须对串口2指标进行估算。
按照技术指标要求,ADS-B接收机测试系统最大模拟飞机数为600架,每架飞机每秒最大发送6.2条消息[10],每条消息14 Byte(11 Byte+3 Byte循环冗余校验CRC位),每字节为8 bit,考虑到奇偶校验等需要,假设每字节需要传10 bit,因此最大速率要求为
600×6.2×14×10 =520.8 kbit/s 。
(1)
由式(1)可知,上位机的数据串口传输速率大于520.8 kbit/s,而PFGA的系统时钟是80 MHz,为避免上位机USB转串口速率高于1.25 Mbit/s时给系统带来不稳定,本设计的串口2传输速率设为1 Mbit/s。
3.3 射频电路
射频电路的设计重点在于生成频率和功率可调整的ADS-B射频信号。如图2所示,射频电路对模拟中频信号进行处理以满足对频率和功率的要求。射频电路的主要模块及参数如表1所示。
表1 射频电路主要模块参数Tab.1 The parameters of main RF circuit blocks
为了使射频信号的频率和功率可以调整,采用两种方法。
频率调整主要通过单片机设置ADF4351的控制寄存器来完成,ADF4351的控制寄存器值与射频频率之间关系为
RFout=[INT+(FRAC/MOD)]×fPFD/RFdivider,
(2)
fPFD=REFin×[(1+D)/(R×(1+T))]。
(3)
式中:RFout为ADF4351的输出射频频率;fPFD为输入到鉴相器环路的频率;RFin为ADF4351的外接晶振频率,此处使用50 MHz晶振;D、R、T、INT、FRAC、MOD和RFdivider为ADF4351内部控制寄存器的值,取值范围受寄存器位宽限制。
由式(2)与式(3)可知,可通过改变INT和FRAC控制寄存器的值,得到所有要求的射频频率值,从而满足系统对射频频率范围和调整间隔的要求。
功率调整主要通过单片机设置程控衰减PE43702器件的增益来完成。对系统要求的-60~10 dBm功率分两档进行处理,即-10~10 dBm和-60~-10 dBm。如图2所示,当要求输出功率处于-10~10 dBm时,信号通过射频放大器、切换开关、PE43702;当要求输出功率处于-60~-10 dBm时,信号通过PE43702、切换开关、PE43702,两条功率通道均通过修改PE43702的增益来达到功率调整间隔1 dB的要求。
为了测试在不同频率和功率设置下的输出,实验中采用了纯载波输出的方法对射频电路进行了检测。通过实验,得到的测试结果为:频率调整范围为1 065~1 115 MHz,步进0.5 MHz,频率偏差±0.02 MHz以内;功率调整范围-60~10 dBm,步进1 dBm,功率偏差±0.5 dBm以内。所有的这些指标达到了测试系统对射频频率和功率所提出的指标要求。
3.4 单片机控制系统
单片机控制系统以MSP430为主控芯片,是射频频率和功率调整的控制核心。如图3所示,单片机接收经FPGA传输的上位机命令和触摸屏的命令,并将系统状态输出到触摸屏上,同时进行如下工作:第一,对频率合成器ADF4351进行频率设定,确定输出射频信号的频率;第二,对功率衰减器PE43702进行增益设定,确定输出射频信号的功率;第三,对射频切换开关进行控制,按照功率档位不同选择不同的信号通道;第四,接收自检电路的状态指示。
图3 单片机硬件连接关系图Fig.3 Connection relationship between MCU and hardware
设计完成各个部分硬件电路后,最终的ADS-B射频生成部分硬件电路如图4所示。
图4 ADS-B射频生成部分电路图Fig.4 Circuit photo of ADS-B RF signal generator
4 软件设计
4.1 控制协议
为保证ADS-B报文生成器、上位机以及单片机控制系统之间的正常通信,对它们之间通信的数据制定了相应的协议,通信数据均固定20 Byte长度,协议格式如表2所示。通信数据可用于控制命令和ADS-B报文数据的传输,不同类型的数据分配不同编码的命令字予以区分。
表2 协议格式Tab.2 Protocol format
4.2 FPGA设计
ADS-B报文生成器需要通过串口和上位机、单片机进行通信。在软件设计时,通过综合Verilog语言描述的时序电路和组合逻辑电路来搭建这些模块,并尽可能采用IP核[10]。IP核可以视为黑盒子,定义好模块的输入输出信号后,即可方便使用。设计中用到串口、双口RAM、移位寄存器等IP核。
按照1090ES ADS-B信号格式要求[6],本节设计重点是生成由前同步脉冲和数据脉冲组成的ADS-B脉位调制信号。图5所示为在ISE环境中调试时的ADS-B帧信号生成时序图。信号Count80对80 MHz的系统时钟分频,得到1 μs分频时钟。在信号ADS_B_Sending高电平有效时,前同步脉冲发送计数器(Head_cnt)复位,并对80 MHz计数,当计数到640,即8 μs时便生成ADS_B脉冲信号(ads_b_out_bit)的前同步脉冲;接着启动由1 μs时钟驱动的数据位读指针(Bit_Read_ptr),读取串口双口RAM寄存器中来自上位机的88位数据,输出到发送数据位(tx_bit);同时,CRC生成器(crc_reg_s)对数据进行循环冗余校验(CRC),生成的CRC校验位输出到CRC数据位(crc_bit),在数据位读指针计到88时,此时形成的24位CRC校验位便依次输出到发送数据位。系统对发送数据位数据采用脉冲位置编码(Pulse Position Modulation,PPM),输出至ADS_B脉冲信号上,当数据位读指针计到112时,脉位编码终止,生成112 μs的数据脉冲,与8 μs的前同步脉冲形成完整的120 μs ADS-B脉位调制信号。将生成的ADS_B脉位调制信号控制一10 MHz频率源输出,从而产生了10 MHz的ADS-B数字中频信号。
图5 ADS-B帧信号生成时序图Fig.5 Timing diagram of an ADS-B frame signal
图5中,在标尺T和X之间可以看到ads_b_out_bit的8 μs前同步脉冲和前8位数据10001101,其中10001表示DF17格式数据,101为设备能力。出于控制方便考虑,前同步脉冲发送计数器和数据位读指针计数终值不是640和112,而选择了642和113。
4.3 单片机软件设计
单片机软件的核心任务是将频率和功率命令转换成相关射频元件的控制字,主程序流程图如图6所示:完成系统初始化,并接收来自触摸屏(HMI)和通过FPGA送来的上位机命令,将命令转换成射频电路芯片对应的控制字,更新HMI显示。
图6 单片机主程序流程图Fig.6 Flow chart of main MCU program
在3.3节中已讨论了频率和功率的设置原理,程序中按照此原理将频率和功率命令转换成相关射频元件的控制字:频率设定时,预先存储ADF4351控制寄存器值和频率之间的关系表,以设定频率值为索引,得到控制寄存器的设定值,并通过串口对寄存器值进行设定;功率设定时,同样预先存储切换开关状态、放大器状态、两PE43702控制字和功率之间的关系表,以功率值为索引即可得到相关射频元件的控制状态。
4.4 上位机软件设计
上位机是实现自动测试功能的核心,具体功能可分为:提供自动测试设置与结果显示的人机接口;控制ADS-B射频信号发生部分的工作状态;接收待测接收机解算报文。
上位机的软件设计是基于Visual Studio 2012环境,采用C#语言[11]编写,可以实现自动定时改变测试参数,并记录发送报文数量,同时也自动统计从后台线程中收到解算报文的数量,绘制出测试图表。
为了方便显示,上位机主要图形界面包括两个窗体和一个图表控件,其中两个窗体分别对应控制台界面和接收机关键技术指标测试界面,并实现测试结果图表输出。在控制台界面中实现对ADS-B射频信号发生器相关的参数进行设置,如图7所示,界面分为左右两部分,左边界面主要包含发送、自检电路接收到的ADS-B报文信息显示;右边界面则包含对系统参数的设定。其次是接收机关键技术指标测试界面的设计,在控制台界面中有“接收机关键技术指标测试”界面的按钮。
图7 ADS-B接收机测试系统信号控制台界面Fig.7 Setting interface of test system for ADS-B receiver
在接收机关键技术指标测试界面中实现对TCP端口和测试参数的设置。如图8所示,接收机关键技术指标测试界面同样分为左右两部分,左边界面显示发送原始报文数据和被测ADS-B接收机发送过来的报文数据;右边界面主要是对关键技术指标进行测试时的设置,包含丢包率、灵敏度、接收机带宽测试。上位机可按照设定参数自动修改频率、功率命令值,在各点发送指定条数报文,并统计由网口接收到的被测接收机解算报文条数,实现对各点丢包率的统计,此时上位机自动将测试条件和丢包率数据绑定到图表中,生成关键指标测试图表。
图8 ADS-B接收机关键技术指标测试界面Fig.8 Testing interface of key parameters for ADS-B receiver
5 系统测试
5.1 测试系统搭建
依标准要求,选择了一款市面常见的、可从网口输出ADS-B原始报文信息的接收机。在和本文设计的ADS-B测试系统连接时,ADS-B射频信号发出器的射频输出口经外部固定衰减器与被测ADS-B接收机的射频输入口有线连接,上位机通过USB-串口转换器与ADS-B射频信号生成器的两串口相连,上位机与被测ADS-B接收机网线连接。搭建ADS-B接收机测试系统如图9所示,测试系统中还包含信号发生器、示波器和频谱仪等测试设备,目的是对ADS-B射频信号生成器进行测试。
图9 ADS-B接收机测试系统Fig.9 Test system for ADS-B receiver
5.2 接收机测试结果
丢包率参数对ADS-B接收机的可靠监控很重要,丢包率过高会导致受监控对象航迹缺失,甚至会丢失一些监控对象,这样会严重影响到航空安全,因此丢包率是接收机重要的性能参数。实验测试时,首先进行丢包率手动测试。设置系统输出1 090 MHz、功率-81 dBm的ADS-B信号,每次发送一定数量的ADS-B报文,测试正确接收到的报文条数,计算丢包率。测试结果如表3所示,可以看到丢包率数值基本稳定,由于测试条数有限而且环境随机变化,在数值上稍有变化,证明整个测试系统可以对丢包率有效测试。
表3 多次测试丢包率结果Tab.3 Test results of packet loss rate
对灵敏度进行自动测试时,设置系统输出频率1 090 MHz、功率范围-89~-79 dBm、步进1 dBm的ADS-B信号,自动测试在不同功率点下的丢包率,按照标准[4],将丢包率低于10%的最小功率作为灵敏度,测试结果如图10所示,可见测得的丢包率变化曲线符合ADS-B接收机接收性能特点,且成功测出被测接收机的灵敏度为-84 dBm。
图10 灵敏度自动测试结果Fig.10 Automatic test results of sensitivity
对接收机带宽自动测试时,设置系统输出频率1 080~1 100 MHz、步进1 MHz、功率固定的ADS-B信号,自动测试在不同频率点下的丢包率,测试结果如图11和图12所示。在-83 dBm时,接收机带宽为10 MHz;在-73 dBm时,接收机带宽为16 MHz。可以看到在不同功率时,按丢包率低于10%的最大带宽来看,接收机接收带宽是不同的,符合标准要求。
图11 -83 dBm接收机带宽自动测试结果Fig.11 Automatic test results of receiver bandwidth at -83 dBm
图12 -73 dBm接收机带宽自动测试结果Fig.12 Automatic test results of receiver bandwidth at -73 dBm
6 结束语
1090ES ADS-B是ICAO确认的新航行系统重要监视手段,实现ADS-B接收机自动测试有着明显的现实意义。本文提出并搭建了ADS-B接收机自动测试系统,系统由参数可调的ADS-B射频信号生成部分和进行测试设置与测试结果统计显示的上位机部分组成。具体系统实现时,一方面,基于现场可编程门阵列FPGA和单片机MSP430实现频率和功率可设置的ADS-B射频信号生成;另一方面,采用C#语言编写上位机程序实现对接收机灵敏度和接收机带宽等关键技术指标的自动测试。
系统所设计的具有自检功能的ADS-B射频信号生成部分对ADS-B收发机设计有一定的借鉴意义。下一步工作是完善对ADS-B接收机其他性能指标的自动测试。