利用低成本的GPS接收器简化软件GPS系统的设计
扫描二维码
随时随地手机看文章
软件接收器技术经常被用在军用战术无线设备中,但这种技术对L1波段民用全球定位系统(GPS)接收机也很有用。当然,低成本射频(RF)接收机电路也还是需要的,美信集成产品公司的MAX2741芯片就适合用作这种接收机内便宜而又紧凑的RF前端。
用于软件GPS技术逐渐被用在各种通信和导航系统中,提供定位功能。由于超大规模集成(VLSI)技术的发展,采用强大的CPU和DSP的GPS接收机可以在软件的帮助下实时接收和解码GPS信号。这些基于软件GPS接收机具有相当大的灵活性,它不需要重新设计硬件,只要修改设置参数就能适应新的要求,这样相同的电路板设计可以满足不同频率规划要求,非常方便日后的升级。作为示例,本文将重点讨论在码分复用(CDMA)通信系统中集成GPS功能所面临的挑战。
一个完整的GPS系统包括卫星群、地面控制站和用户设备(接收机)。在卫星群中有24颗卫星,每颗卫星都有唯一的伪随机噪声(PRN)码。对民用GPS系统来说,这些卫星通过频率为1.57542GHz的L1波段进行通信。
GPS接收机必须捕获到至少4颗卫星的信号才能进行可靠定位。信号的捕获和跟踪非常复杂,因为每颗卫星和接收机的位置时刻都在变化。软件GPS接收机(图1a)的射频前端首先用低噪声放大器(LNA)放大微弱的输入信号,然后经过下变频转换成较低频率(约4MHz)的中频(IF)信号。下变频通过超外差技术实现,即将输入的射频信号与本振(LO)信号进行混频,并采用一级或两级混频电路进行转换。生成的模拟中频信号再通过模数转换器(ADC)转换成数字中频信号。
图1:(a) 简化的软件GPS接收机框图;(b) 民用GPS系统的信号发生模块图。
开发时间
为显著缩短GPS系统的开发时间,可以采用在单片内集成LNA、混频器和ADC的MAX2741芯片。这款具有两级混频电路的接收器芯片能支持-185dBW的接收灵敏度,可成功实现GPS室内接收和定位。该IC具有80dB的级联增益和4.7dB的级联噪声系数。它的中频自动增益控制(AGC)范围为50dB,接收端可以容忍的CDMA带外干扰高达+13dB,带内干扰达-90dBm。MAX2741采用28引脚的QFN薄型封装,工作电压为2.7V到3.0V,具有SPI控制接口。
L1波段GPS接收器MAX2741可以放大超过其灵敏度的1575.42MHz输入GPS信号,然后将此信号下变频为37.38MHz的第一级中频信号,接着再放大,然后下变频为3.78MHz的第二级中频信号。内部的2或3位ADC(可选择1位符号位,1或2位输入幅值)对第二级中频信号进行采样,并将数字化信号输出给基带处理器。集成的频率合成器能执行灵活的频率规划,从而允许在同一个GPS电路板上通过改变设置参数提供2~26MHz范围内的任何固定参考频率。集成的参考频率振荡器可以基于晶振或温补晶振(TCXO)。
传统的GPS接收机采用ASIC实现信号捕获、跟踪和位同步操作,但软件GPS接收机利用软件代替硬件来实现这些功能,因此具有更好的灵活性。通过简化硬件架构,软件可以使接收机更小、更便宜、具有更高功效。软件可以用C/C++、MATLAB和其它语言来编写,并且可以移植到各种操作系统(嵌入式操作系统、PC、Linux和DSP平台)上。这样,软件GPS接收机可以为移动手机、便携式数字助理(PDA)和类似设备提供最大的灵活性。
对民用L1波段应用来说,GPS系统实际上是一个简单的扩频通信系统。图1b是民用GPS系统的信号发生模块图。首先,50bps的导航消息被重复20次,形成1,000bps的比特流,然后这个重复信号被长度为1023码片(伪随机噪声码的码速)的唯一粗捕获码(C/A码)进行扩频,形成每秒1.023兆码片的基带信号。采用这种扩频方法后,GPS系统的总处理增益(PG)可以很好地恢复比热噪声电平低得多的信号。
每颗卫星都有唯一的C/A码或Gold码。由于具有很好的自相关和互相关性,Gold码被广泛用于各种CDMA通信系统,如WCDMA、CDMA2000和其它变种系统。基带信号经过二元相移键控(BPSK)调制后上变频到L1波段进行传输。
因为GPS是一种CDMA通信系统,所以作为解调数据的先决条件,接收机必须与伪随机噪声(PRN)码同步。实现代码同步通常需要两个步骤:用来实现粗对准的代码捕获和用来实现精细对准的代码相位跟踪。
更明确的讲,GPS接收机必须首先确定它对某颗卫星是否具有视距上的可视性。每颗卫星由唯一的C/A码(Gold码)来区分。当卫星可视时,由捕获过程判断信号的频率和代码相位,然后确定相应的解调参数。由于存在多普勒效应,根据卫星相对于接收器的速度,接收信号的频率一般会偏移标称值5到10kHz。
信号捕获
信号捕获的目的是粗略地确定指示C/A码在数据块中起始位置的载波频率和C/A代码相位。常用的捕获方法包括串行搜索法和频域并行代码相位捕获法,前者的逻辑架构简单,适合用硬件实现,后者的运算复杂度低,适合用软件实现。
串行搜索模式框图(图2a)显示,接收到的信号首先被下变频为同相和正交(I/Q)分量信号,再由一对I/Q相关器将I/Q基带信号与本地伪随机序列进行相关运算。经过一个比特周期的积分后,I/Q相关器的输出被累加起来以提供输出判定变量。
图2:(a) 在串行搜索模式中,接收到的信号被下变频为I/Q分量信号;(b) GPS接收机的代码跟踪用延时锁相环来实现。
只要判定变量超过某一阈值,系统就认为成功地实现了捕获,继而进入跟踪模式,否则就通过调节本地伪随机序列的相对相位和振荡器频率,来更新判定变量,并重复上述过程。串行搜索方法的简单逻辑结构使它非常适合用ASIC实现,而用软件实现就不切实际了,因为搜索空间非常大。
另外一种捕获方法是频域并行代码相位捕获法,这是一种复杂度较低的软件实现方法(图3)。它的基本原理是将多普勒频率和代码相位搜索方法结合起来,在经过伪随机噪声码的FFT变换后,将所有代码相位信息转换到频域内,这样只需搜索多普勒频移上的空间即可,因此这是一种快速而高效的软件搜索方法。
图3:频域中并行搜索捕获方法的处理过程
首先,将输入信号与本地正弦和余弦载波(分别为同相(I)和正交(Q)信号分量)相乘,然后将I和Q分量合成一个复合信号送给快速傅里叶变换(FFT)模块,FFT变换后的结果再与伪随机噪声码的FFT变换结果相乘(伪随机噪声码发生器产生代码相位为零的代码)。在实际使用中,FFT运算和伪随机噪声码的产生可以采用列表的方法,以降低运算的复杂性。
最后,输入信号与本地代码的乘积(该乘积代表了输入信号和载频之间相关性)被送到反向傅里叶变换模块,该模块的自乘结果再被反馈到判定逻辑。基于FFT的频域计算被证实具有较小的运算量。图4给出了卫星可见和卫星不可见情况下的FFT并行代码捕获过程。
图4:卫星可见(a)和卫星不可见(b)情况下的FFT并行代码相关输出
串行搜索方法具有简单的逻辑和控制架构,非常适合ASIC实现。然而,巨大的搜索空间使得软件算法非常复杂。因此对软件GPS接收机来说,串行搜索方法并不是一个很好的选择。相反,并行代码捕获方法的低复杂性使它很适合用软件实现,但它的逻辑架构比串行搜索方法要复杂得多,因此很难用ASIC实现。
捕获过程完成了GPS信号频率和代码相位参数的粗略校准,因此跟踪的目的是进行细调,以便系统能用实际的代码相位和频率信息解调出数据。跟踪包括代码相位跟踪和载波频率跟踪。代码跟踪用延时锁相环(DLL)实现,如图2b所示。
DLL电路将输入信号乘以伪随机噪声码的三个复制码(间隔±0.5码片),这三个复制码分别代表信号提前、准时和落后达到。经过综合后,这些信号分别代表输入信号和一个本地复制码之间的相关性。具有最高相关值的信号被选中并保留下来(图5)。载频跟踪由锁相环(PLL)或Costas环路完成,载波跟踪的目的是将本地频率调节为输入信号的实际频率。
图5:对延时锁相环产生的信号进行比较和选择,保留具有最高相关值的信号。
当捕获和跟踪过程建立好初始同步后,就可以解码导航比特。将每表1.023兆码片的输入信号解扩为1,000bps的比特流后就开始解调数据,然后利用比特同步从1,000bps数据流中恢复出50bps的信息。
比特同步要求及时识别出比特流的起始位置,这可以通过寻找代表比特起始位置的零交叉沿(0v点)来实现。如果这个交叉是已知的,则可以用20ms的间隔分割1,000bps输入流,因为导航数据信息(50b)的持续时间是20ms(图6)。最后,以20ms间隔排列的比特样本被累加起来并求平均值,从而解码出导航数据。
图6:比特同步要求及时识别出比特流的起始位置
当然,软件GPS和硬件GPS方案各有优缺点。尽管软件GPS具有很大的灵活性,但它需要高性能的处理器,对存储器容量也有一定要求。