基于软件无线电的ADS-B信号接收机设计*
2021-07-28庄子源
庄子源,班 恬
(南京理工大学 电子工程与光电技术学院,南京 210094)
0 引 言
广播式自动相关监视(Automatic Dependent Surveillance-Broadcast,ADS-B)是一种自动地从相关机载设备和全球导航卫星系统获取参数,并向地面设备和其他航空器广播飞机的位置、高度、速度、识别号等信息的监视技术[1]。利用 ADS-B的广播特性,只要在信号的可接收范围内就可以使用地面上ADS-B接收设备收到飞机的飞行数据,从而解码出航迹信息。对于地形复杂、人迹罕至的地区,使用ADS-B可以有效补充航迹盲区,从而保障飞行安全。ADS-B技术于1991年在瑞典Bromma机场首次成功进行演示,经过国际民航组织的大力推广,该技术已经在澳大利亚和美国有了较为成熟的研究和应用[2]。近年来,我国十分重视ADS-B技术的研究以及应用,我国民航部门根据国际标准制定了适合国情的ADS-B标准,且逐步推广ADS-B的应用[3]。
目前,传统的廉价型接收机例如RTL-SDR[4]、ADALM-PLUTO[5]等设备都是基于PC作为基带信号解调平台,设备存在便携性差、实时性差等问题;高性价比接收机[6]通用性好,但是该类接收机没有针对ADS-B信号进行设计,针对性较差;而高端型接收机例如pingStation等存在成本过高、较难维护升级的问题。为了解决以上问题,本文提出了以软件无线电技术为基础、针对ADS-B信号的无线电接收机。
软件无线电技术是以通用硬件平台为基础,以自定义软件为核心,实现无线通信系统功能的一种技术[7]。软件无线电的特点是广泛的适用性,可扩展、升级,使用该技术可以降低前端接收模块成本,提高研发效率。本文采用ADI公司的AD9361作为前端信号接收芯片,Xilinx公司的Zynq-7000作为信号处理芯片,设计了一种针对ADS-B的软件无线电接收机。
1 硬件设计
1.1 软件无线电收发系统框架
本系统的硬件结构如图1所示,AD9361与Zynq-7000通过FMC接口连接,Zynq-7000与USB接口、HDMI接口、网络接口等连接。
图1 无线电接发系统硬件结构
天线接收无线电信号至射频前端芯片AD9361,经过混频、模拟滤波、模数转换器(Analogue-to-Digital Conversion,ADC)、数字滤波等过程转换为基带信号;再将基带信号传至Zynq-7000进行数据处理,根据相应调制方式的解调算法,将基带信号解调为相应的信息;最后通过与Zynq-7000相连的外设将数据显示出来。
AD9361与Zynq-7000相连的FMC接口主要由三部分组成:第一部分是控制接口,Zynq-7000通过SPI或者GPIO对AD9361中的寄存器进行配置,从而实现AD9361内部功能;第二部分为数据接口,AD9361与Zynq-7000之间的数据通过并口进行传输,可以选择低电压差分信号(Low-Voltage Differential Signal,LVDS)或者互补金属氧化物半导体(Complementary Metal Oxide Semiconductor,CMOS)模式完成数据接收任务;第三部分是时钟、复位、电源接口,该部分主要功能是传输时钟信号、复位使能信号以及提供AD9361电源。
1.2 AD9631接收信号路设计
AD9361接收流程结构如图2所示[8]。针对ADS-B信号的特征,需要对接收路的本振、模拟滤波器、数字滤波器进行设计。
图2 AD9361接收机流程结构图
天线接收无线射频信号,将信号送至低噪声放大器(Low Noise Amplifier,LNA)进行放大,再将放大后的信号与本振(Local Oscillator,LO)进行混频,得到I、Q两路的视频信号[8]。由于ADS-B的中心频率为1 090 MHz,因此设置LO频率为1 090 MHz,对接收信号进行下变频至基带信号。降频后的基带电信号再通过两个模拟低通滤波器进行滤波处理,这两个滤波器起到降低杂散信号电平作用;之后信号通过ADC进行采样,AD9361使用的是12位的ADC;经过ADC转换,接收到的模拟信号转换为数字信号,为了满足带通采样定理,可设置本系统ADC采样率为160 MHz;而后再通过三个半带滤波器以及一个可编程FIR滤波器对其滤波,这些可编程滤波器可以限制带宽和抑制带外噪声,并在数字化后减少杂散信号。为了便于信号解调算法计算,本接收系统设置采样率为20 MHz。因此,需要通过三个半带滤波器对采样后的信号进行8倍抽取。ADI公司在Matlab上开发了AD9361滤波器设计向导程序,利用该程序可以简化FIR滤波器设置。由于ADS-B的带宽为2 MHz,为了接收更多的信号,可将FIR滤波器设置为通带4.5 MHz、阻带5.5 MHz的低通滤波器,通过滤波器设计向导程序获得滤波器系数。最后,滤波后的I、Q两路信号交织为一路信号送给基带芯片处理。
2 软件开发
2.1 AD9361寄存器配置
AD9361由SPI或者GPIO对其寄存器进行配置,一般研发人员使用SPI对其配置。AD9361内部有上千个寄存器,这些寄存器可由SPI进行读写,并控制AD9361进行工作。AD9361属于IIO设备,即工业I/O系统,该系统是专门用于数模转换器和模数转换器的子系统。为了简化开发难度,ADI公司在IIO的基础上开发了Libiio系统,使用Libiio的库函数iio_device_reg_write()对其寄存器进行读取,iio_device_reg_read()对其寄存器进行写入。
AD9361的内部器可分为四大类:一般设置和数字数据端口配置、发射端配置、接收端配置、模拟端配置。而在本系统中,只涉及信号接收过程,因此只需要对一般设置和数字数据端、接收端、模拟端三类寄存器进行配置即可。寄存器配置决定了软件无线电接收机的工作模式、采样速率、滤波器系数等一系列参数,是设计软件无线电接收机的核心步骤。
2.1.1 一般设置和数字数据端口配置
该组寄存器地址为0x000至0x05F,主要包括芯片级设置、并行端口配置、使能状态机(Enable State Machine,ENSM)设置、基带锁相环(Baseband Phase Locked Loop,BBPLL)设置等。
(1)在芯片级设置中,主要包括SPI设置、Rx使能设置、射频锁相环(Radio Frequency Phase Locked Loop,RFPLL)分频器设置。
SPI设置地址为0x000,设置值为0x00,使得SPI最高有效位,并设置SPI_DI引脚为输入引脚。Rx使能设置地址为0x003,设置值为0xDD,使能Rx通道,并使能该通道上的三级半带滤波器。RFPLL分频器寄存器地址为0x005,其后四位为Rx分频器的值。AD9361内部压控振荡器(Voltage-Controlled Oscillator,VCO)的工作范围为6~12 GHz,VCO需要通过分频器获得Rx本振频率范围。寄存器值的设置公式为
Divider Value=2(Rx VCO Divider Register+1)。
(1)
式中:Divider Value是分频器的值,Rx VCO Divider Register为寄存器0x005后四位的值。本系统所需的本振为频率为1 090 MHz,因此需要将VCO进行8分频,计算得该寄存器的值为0x12。
(2)并行端口配置主要对并行数据传输端口的速率、模式等进行设置。在本系统中,使用LVDS模式进行数据传输,设置寄存器0x012为0x10,使用LVDS差分模式。
(3)ENSM设置主要对AD9361的工作状态进行设置,AD9361有时分双工与频分双工两种模式,本系统只使用Rx路信号,因此使用频分双工模式即可,设置寄存器0x013的值为0x01置为频分双工模式。
(4)BBPLL合成器寄存器,该组寄存器地址为0x03F至0x04E。基带锁相环频率合成器用于生成所有基带相关时钟信号,包括ADC采样时钟、DATA_CLK时钟等。寄存器地址0x041后五位至地址0x044存储基带锁相环频率字,其公式为
(2)
(3)
(4)
式中:BBPLLInteger为基带锁相环频率整数字,floor为向下取整,fBBPLL为基带所需频率,fREF为参考时钟频率;BBPLLFractional为基带锁相环频率小数字,fOUT为基带锁相环真实输出值。在本系统中,信号采样频率设置为20 MHz,参考时钟频率为10 MHz。经计算可得,BBPLLInteger=20,BBPLLFractional=0,寄存器0x044的值为0x14,0x041至0x043的值为0x00。
一般设置和数字数据端口配置中还有辅助ADC寄存器设置、溢出设置等其他寄存器,本文不详细展开介绍。
2.1.2 接收端配置
该组寄存器的地址为0x0F0至0x1FC,主要包括Rx可编程FIR滤波器配置、接收强度信号指示器(Received Strength Signal Indicator,RSSI)测量配置、校准配置等。
(1)Rx可编程FIR滤波寄存器地址为0x0F0至0x0F6。0x0F1和0x0F2写Rx滤波器系数,将Matlab所得滤波器系数写入该寄存器进行配置。寄存器0x0F5对滤波器抽头、信道选择进行配置,将值设置为0x78,设置抽头数为64,使能信道Rx1。
(2)RSSI测量配置寄存器地址为0x150至0x15D。该组寄存器为测量信号接收的强度,通过RSSI数据可以判断是否接收到相应的信号。0x158对RSSI的模式进行设置,设置为0x0C,使能RSSI并初始化RSSI的测量模式。RSSI数据读取寄存器的地址为0x1A7至0x1AC,该组寄存器为只读寄存器,读取Rx链路上RSSI的值。
(3)校准寄存器,包括正交校准寄存器、相位校准寄存器、增益校准寄存器等。该部分校准寄存器数量较多,一般使用默认值即可,在此不做详细说明。
2.1.3 模拟端配置
该组寄存器地址为0x230至0x3F6,主要包括Rx合成器寄存器设置、数字测试寄存器设置等。
(1)Rx合成器寄存器是该组寄存器中最重要的部分,主要包括VCO频率字设置、VCO校准设置等。
VCO频率字设置寄存器,该组寄存器地址为0x230至0x235。VCO频率字设置器用于为RF信号路径生成需要的LO信号,频率合成器融入了集成式的VCO和环路滤波器。在寄存器地址0x0231和0x0232地址后三位中VCO字的11位整数字,0x233至0x235存储23位小数。VCO字的计算公式为
(5)
(6)
式中:NInteger为整数字,floor为向下取整,fRFPLL为所需本振频率,fREF为参考时钟频率10 MHz,NFractional为小数字,Round为取小数。由于ADS-B信号的射频频率标准值为1 090 MHz,经计算NInteger为109,NFractional为0,因此寄存器0x231的值为0x6D,寄存器0x232至0x235的值都为0x00。
2.2 信号解调算法
本系统的信号解调算法如图3所示。
图3 报头检测流程图
首先对信号的报头进行检测,接收采样信号,使用公式(7)先对接收数据N求算数平均后计算得噪声基底,再乘以经验值λ得到门限值MTL。
(7)
搜索超过门限的第一个采样点,若下一个超过门限的采样点与第一个采样点的距离小于2 μs,则认为这两个点“连续”。当一段“连续”的采样点集中,第一个点和最后一个点的距离大于54 μs时,将该组信号送入互相关检测。将标准报头序列xn设置为[1 -1 1 -1 -1 -1 -1 1 -1 1 -1 -1 -1 -1 -1 -1],潜在信号段yn与标准报头序列xn使用公式(8)进行互相关计算,N为序列长度。
(8)
设置门限为比噪底幅度高6 dB的值,当互相关值高于此门限时,搜索第一个满足门限的峰值,并检查此处接下来3 μs是否存在更大的峰值,若不存在,则取此处为消息数据起始位;若存在,则取更大峰值处的位置为消息数据起始位。寻找到报头后,取出潜在信号段,根据所设门限MTL,将潜在信号处理为0-1信号。完成0-1处理后,对潜在信号的报文部分进行循环冗余校验(Cyclic Redundancy Check,CRC)校验,若信号通过CRC校验,则对报文进行翻译;反之,结束信号解调[9]。
3 系统测试与验证
3.1 接收机性能与模拟接收测试
图4为本系统测试验证图,图4(a)为系统实采运行图,天线接收信号至系统处理,完成解调后将信息通过HDMI至显示器显示;图4(b)为系统性能测试图,信号发生器产生不同幅度的射频信号输入至系统,使用OscilloScope软件观察信号时域、频域变化,完成对接收机性能测试[10]。
图4 无线电系统测试
经测试,接收机带宽(Bandwidth,BW)为4 MHz时,可以接收幅度为-98 dBm的射频信号,测得接收机灵敏度为-98 dBm。在信噪比(Signal-to-Noise Ratio,SNR)为10 dB时,根据公式(9),推导系统的噪声系数(Noise Figure,NF)约为4 dBm。
Smin=-174+NF+SNR(d)+10×lg(BW)。
(9)
无杂散动态范围(Spurious Free Dynamic Range,SFDR)计算公式[10]为
(10)
式中:接收机的输入三阶交调截点IP3为8.16 dBm[15],灵敏度为-98 dBm,信噪比取10 dB。计算得接收机无杂散动态范围约为65 dB。
使用模拟ADS-B信号发射器发送不同信噪比的模拟信号至系统解调,得到信噪比与检测概率如图5所示。在信噪比为10 dB时,有接近100%的检测概率;在信噪比为6 dB时,有超过60%的检测概率。
图5 模拟ADS-B信号的检测概率
3.2 实际信号接收及分析
为了验证本系统在接收实际信号时的状况,在北纬32.1°、东经118.51°进行信号实采。图6(a)为一段实际接收的数据信号,经解调本段信号中有一组信号为报文段有56位的短报文ADS-B信号,如图6(b)所示;图6(c)为经算法处理完的0-1格式信号。按照1090ES ADS-B报文标准对其翻译:报文1~5位下行格式段为01011,表示该组信号为56位短报文信号;6~8位接收机性能段为101,表示该飞机在空中且有通信能力;9~32位为飞机航班的国际民航组织序列号(International Civil Aviation Organization,ICAO),将24位二进制ICAO号转换为6位16进制ICAO号,得到该飞机的ICAO号为780E40,经查询该航班是南方航空公司一班由沈阳飞往南京的飞机;33~56位为CRC校验段。经计算,该段信号的信噪比约为4.4 dB,此结果表明,本系统可以在实际应用中接收并解调ADS-B信号。
图6 ADS-B实采信号
3.3 接收机比较
与目前已有的ADS-B接收机相比,本系统在便捷性、可靠性、成本等多方面存在优势。与廉价接收机RTL-SDR相比,本系统无需PC端支持,便携性更好,灵敏度更高;与高性价比接收机ADALM-PLUTO相比,本系统可以对ADS-B信号进行实时监测;与高端产品pingStation相比,本系统在灵敏度、动态范围相似的情况下,成本更低,性价比更优。
4 结束语
本文提出了一种针对ADS-B信号的软件无线电接收机的设计方案,详细阐述了硬件设计和软件开发过程,以及AD9361寄存器配置方案。通过测试验证,系统成功接收解调信噪比为4.4 dB的ADS-B实采信号。由以上结论可得,本系统能可靠地应用于实际信号监测中。
本系统所采用的算法仍有改进空间,但在以后的研发中,只需要对系统应用层软件算法程序稍加修改,即可完成系统的升级工作,这将大大提高研发效率,降低设备研制的综合成本。与已有的无线电接收机相比,本系统灵敏度更好,动态范围更大,具有ADS-B信号针对性,且易于搭建和升级。综上,本系统是一款可以面向市场应用的ADS-B信号接收系统。