近来,通信和导航工程师越来越倾向在全球定位系统(GPS)中采用软件技术。1,2 由于超大规模集成电路的发展,性能强大的CPU和DSP能够通过软件对GPS信号进行实时检测和解码。这些基于软件的GPS接收机具有相当强的灵活性:只需修改设置参数即可适应新的应用,无需重新设计硬件,选择一个IF,就可完成进一步的系统升级。
利用MAX2769 GPS接收机RF前端芯片,简单的USB dongle或PCI Express® (PCIe®)迷你卡就可以为笔记本电脑增加低成本的GPS功能。MAX2769将接收到的原始数据传输到PC主机,PC主机利用软件实现基带解码,从而省去了单机GPS系统所需要的基带ASIC的成本。简单的说,MAX2769使设计人员可以利用单芯片实现GPS和Galileo系统信号处理的适配器。
本文给出了GPS系统的工作状态概述,并详细描述了Maxim的基于软件的GPS接收机方案。
GPS基本原理
GPS系统包含24颗空间卫星或空间运载器(每个都用唯一的伪随机噪声编码识别)、地面控制站以及用户设备(接收机)。对于民用GPS和Galileo系统,这些卫星通过频率为1.57542GHz的L1波段进行通信。3 GPS接收机必须捕获到至少四颗卫星的信号才能进行可靠定位,信号捕获和跟踪非常复杂,因为每颗卫星和接收机的位置时刻都在变化。
图1. 民用GPS信号发生器采用扩频技术发送信号。
GPS信号
GPS系统实际上是一个简单的扩频通信系统。4 图1提供了一个民用GPS系统的信号发生电路。首先,50bps的导航信息重复20次,形成1000bps的比特流。然后这个重复信号被长度为1023码片(伪随机噪声(PRN)码的码速)的唯一粗调/捕获码(C/A)进行扩频,形成1.023Mcps的基带信号。此用这种扩频方法后,43dB大小的GPS系统的总处理增益(G)可以很好地恢复比热噪声电平低得多的信号。
每颗卫星都有唯一的C/A码或者说Gold码。5 由于具有很好的自相关和互相关性,Gold码被广泛用于各种CDMA通信系统,如WCDMA和cdma2000®。基带信号经过二元相移键控(BPSK)调制后被上变频到L1波段进行传输。
信号捕获
因为GPS是一种CDMA通信系统,所以作为解调数据的先决条件,接收机必须与PRN码进行同步。实现代码同步通常需要两个步骤:用来实现粗对准的代码捕获和用来实现精细对准的代码相位跟踪。6 更明确地讲,GPS接收机必须首先确定它对某颗卫星是否具有视距上的可视性。我们知道,每颗卫星都由唯一的C/A码来区分。当卫星可视时,由捕获过程判断信号的频率和代码相位,然后确定相应的解调参数。由于存在多普勒效应,根据卫星相对于接收机的速度,接收信号的频率一般会偏移标称值5kHz到10kHz。
在接收器端,GPS信号首先被下变频到同向和正交(I和Q)分量信号。再由一对I和Q相关器将I/Q基带信号与本地PRN序列进行相关运算。经过一个比特周期的积分后,I-Q相关器的输出被累加起来以提供输出判定变量。
只要判定变量超过一定的门限,系统就认为成功地实现了捕获,继而进入跟踪模式。否则,就通过调节本地PRN序列的相对相位和振荡器频率,来更新判定变量,并重复上述过程。
串行搜索方法的简单逻辑结构使它非常适合用ASIC实现,而用软件实现就不切实际了,因为搜索空间非常大。假设系统允许500Hz的载波频率偏移,多普勒频率是10kHz,软件实现需要的搜索空间大概为2 × (10,000/500) × 1023 = 40,920。很明显,用软件实现串行搜索捕获比较困难。
另外一种更简单的软件捕获方法叫做频域并行代码相位捕获。这种方法将多普勒频率和代码相位搜索合并起来,在经过PRN码的快速傅立叶变换(FFT)后,将所有代码相位信息转换到频域内。这样我们只需要搜索多普勒频移上的空间即可,因此这是一种快速高效的软件搜索方法。
首先,将输入信号与本地正弦和余弦载波(同向I和正交Q信号分量)分别相乘。然后把I和Q分量合并成一个复合信号输入到FFT模块。傅立叶变换的结果再和PRN码的FFT变换结果相乘(PRN生成器产生代码相位为零的代码)。实际上,FFT运算和PRN码的产生可以采用列表的方法,以降低运算的复杂性。
最后,输入信号与本地代码的乘积(该乘积代表了输入信号和载波频率的相关性)被送到傅立叶逆变换模块,该模块的自乘输出结果再被反馈到判定逻辑。基于FFT的频域计算被证实具有较小的运算量。例如之前提到的那个例子, 捕获运算的复杂性大概为20,000/500 = 40次FFT运算操作。
串行搜索方法具有简单的逻辑和控制架构,非常适合ASIC实现。然而,巨大的搜索空间增加了软件算法的复杂性。所以对于软件GPS接收机来说,串行搜索方法并不是一个好的选择。相反,并行代码捕获方法的低复杂性使它很适合用软件实现。然而,它的逻辑架构远比串行搜索方法复杂,因此很难用ASIC实现。
跟踪细调
捕获过程建立了对GPS信号的频率和代码相位参数的粗校准。因此,跟踪的目的是进行细调,以便系统能用精确的代码相位和频率信息解调出数据。跟踪包括代码相位跟踪和载波频率跟踪。
代码跟踪用延时锁相环(DLL)实现,如图2所示。DLL电路把输入信号乘以PRN码的三个复制码(间隔±0.5码片),这三个复制码分别代表和输入信号相比提前、准时和落后到达。经过综合后,这些信号分别代表输入信号和本地复制码之间的相关性。具有最高相关值的信号被选中保留下来(图3)。
图2. 使用延时锁相环作代码跟踪帮助细调,以便系统能用精确的代码相位和频率信息解调出数据。
图3. DLL电路把输入信号乘以PRN码的三个复制码(间隔±0.5码),这三个复制码分别代表和输入信号相比提前、准时和落后到达。具有最高相关值的信号被选中保留下来。
载波频率跟踪由锁相环(PLL)或者Costas环路完成。8 载波跟踪的目的是把本地频率调节为输入信号的实际频率。
当捕获和跟踪过程建立起初始同步后,系统能够解码出导航比特。将1.023Mcps的输入信号解扩为1000bps的比特流后就开始解调数据。然后利用比特同步从1000bps的数据流中恢复出50bps的信息。比特同步需要通过寻找零交叉沿(0V)来识别比特流的起始位置。如果这个交叉沿是已知的,我们可以用20ms的间隔分割1000bps输入流,因为导航数据信息(50位)的持续时间为20ms。最后,以20ms间隔排列的比特取样累加起来取平均值,从而解码出导航数据。
基于软件的GPS接收机
传统的GPS接收机采用ASIC实现信号捕获、跟踪和位同步操作,而软件GPS接收机用软件代替硬件实现这些功能,因此具有更高的灵活性。通过简化硬件架构,基于软件的设计能够进一步缩小接收机尺寸,降低成本,并具有更高效率。程序可以使用C/C++、MATLAB®或其它语言编写,并可移植到各种操作系统中(嵌入式操作系统、PC、Linux和DSP平台)。由此看来,软件GPS接收机能够为移动终端、PDA及其它类似设备提供最大的设计灵活性。
对于笔记本电脑,设计人员可以设计USB dongle (可配合任何带USB端口的笔记本电脑一起工作)。对于新一代带有PCIe迷你卡连接器的笔记本电脑,可以把RF前端置于PCIe迷你卡上,并把它插入PC内部(图4a,图4b)。PCIe迷你卡接口包含一个USB口,因此,前端适配器设计对于USB和PCIe迷你卡而言非常相似。主要区别在于:支持PCIe需要不同的电源管理逻辑电压,需要处理不同的直流电压(PCIe为3.3V,外部USB端口为5V)。
图4. 针对USB dongle (a)、PCIe迷你卡(b)的典型适配器结构,为两种方案均可提供了简单、低成本的设计。
从图5b所示USB dongle框图可以看出该方案非常简单,只使用了一个通用GPS接收器MAX2769、一个计数器和USB接口控制器,即可捕获信号,并将其转换成数字信号,最终传递给PC主机。然后,通过运行PC主机软件执行所有基带功能,将定位信息显示在PC 显示器上。这样,笔记本PC 便成了一个强大的GPS设备,可支持导航和基于定位的服务。
GPS前端通过工业标准USB 2.0接口把数字化的IF数据传输到笔记本电脑。软件基带程序利用输入数据计算出位置方位并随后执行跟踪过程。Geotate是可选的一个软件来源。
为提供通用接口,此软件能创建一个虚拟COM端口,使其可以连接到很多现有的导航和定位应用。大部分GPS软件包接口符合NMEA 0183标准,通常都可以运行在Microsoft的Windows® XP和Windows Vista®操作系统中。另外,此软件能够处理所有可得的辅助数据,此数据可以从工业标准协议或者用户专有的接口取得。
当前的笔记本电脑里所带的CPU均具备满足软件GPS接收机实时解码所需的运算能力。当在1GHz Pentium® M系统中,跟踪过程中平均处理器负载大约为6%;而在2.18GHz Core™ Duo处理器上,在执行每秒更新时,处理器负载通常低于5%。随着算法的发展,有可能把CPU的使用率降低到2%以下。
图5. (a)软件GPS接收机中,需要对捕获的RF信号进行放大、变频、数字化。(b)实际接收机中,低噪声放大器对RF信号进行放大,MAX2769对放大后的信号进行变频和数字化处理。然后,通过计数器和USB接口控制器将数据按照USB协议传输给PC主机。
电路工作原理和性能
基于软件的GPS接收机RF前端首先使用低噪声放大器(LNA)放大微弱的输入信号,然后经过下变频将信号转换到较低频率(4MHz左右)的IF (图5a)。下变频器采用一路或两路混频器对输入RF信号和本机振荡器信号进行混频,通过模/数转换器(ADC)把生成的模拟IF信号转换成数字IF信号。
MAX2769将所有功能电路(LNA、混频器和ADC)集成到一起,可大大缩短产品的开发时间。该芯片提供了两个LNA:其中一个LNA具有低至0.9dB的噪声系数、19dB增益、-1dBm的IP3,可配合无源天线使用;另一个LNA则具有1.5dB的噪声系数、较低增益/功耗和较高的IP3,可配合有源天线使用。2.8V供电时,消耗的电流最小,且仅为13mA至18mA,具体取决于电路配置。
RF端,在放大器之后通常使用外部RF滤波器。然后使用集成的20位,Σ-Δ N分频合成器和15位整数分频器将信号直接下变频到0至12MHz所要求的IF频率。IF滤波器的选择范围较广,可以适应不同的架构,例如Galileo。
从RF输入至IF输出的总增益能够在60dB至115dB范围内调节或进行自动控制。输出可以选择为模拟、CMOS或有限差分。内部ADC具有可设置的一到三位输出。集成参考时钟振荡器可以使用晶体或温补晶振(TCXO),也可以使用8MHz至44MHz频率范围的输入参考时钟。
我们利用MAX2769和工作在24MHz参考时钟的Cypress Semiconductor的USB控制器构建了一个简单的USB dongle参考设计(如图5 b 所示)。该设计利用一路MAX8510 LDO调节直流电源。通过3线(SPI™)数字总线对MAX2769的寄存器进行编程。系统也可以在没有SPI控制的情况下工作在八种硬件模式的任意一种。
芯片内的电路对有源天线进行偏置,关断模式下将天线关闭,满足USB规范。MAX2769能够检测到天线电源是否有电流消耗,并自动切换LNA1和LNA2,对于能够插入灵敏度更高的有源天线替代无源天线的应用,这是一个非常理想的功能。设计人员只需要把外部天线端口连接到LNA2,把内部端口连接到LNA1。插入外部天线时,MAX2769将检测到吸电流,可自动由LNA1切换到LNA2。
MAX2769为笔记本电脑、手机、PDA和汽车应用提供了一个高性能、紧凑的解决方案。利用已经商用化的GPS软件包,115dB的总电压增益和1.4dB的模块噪声系数能够达到-143dBm 的捕获灵敏度和-154dBm的跟踪灵敏度。
结论
软件技术可实现简单的、低成本GPS应用。为支持这些可能性,MAX2769为软件GPS接收机和传统的硬件实现方法提供灵活的频率规划。当然,每种方案都有正反面—软件GPS接收机需要高性能的处理器和适量的内存。然而,随着软件的发展,对时钟、数据更新速率进行合理的选择,需要的内存可以最小化。
参考文献
1.Kaplan, E., Understanding GPS: Principles and Applications, 2nd ed. (Norwood, MA: Artech House Publishers, 1996).
2.Bao-Yen Tsui, J., Fundamentals of Global Positioning System Receivers: A Software Approach, 2nd ed. (New York: John Wiley & Sons, Inc., 2004).
3.关于导航信息和定位计算,请参考Bao-Yen Tsui, Fundamentals of Global Positioning System Receivers.
4.Viterbi, A., CDMA: Principles of Spread Spectrum Communications (Reading, MA: Addison Wesley Longman Publishing Co., Inc., 1995).
5.Gold, R., "Co-optimal binary sequences for spread spectrum multiplexing," IEEE Transactions on Information Theory, Vol. 13:4 (October 1967). pp. 619–621.
6.Ziemer, R.E., and Peterson, R.L., Digital Communications and Spread Spectrum Systems (New York: Macmillan Publishing Company, 1985).
7.Proakis, J. G., Digital Communications, 4th ed. (New York: McGraw-Hill, 2000).
8.Ibid.