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