<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 設(shè)計應(yīng)用 > 膝上型PC借助通用GPS RF前端實現(xiàn)軟件基帶處理

          膝上型PC借助通用GPS RF前端實現(xiàn)軟件基帶處理

          作者: 時間:2017-06-03 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201706/347433.htm

          近來,通信和導(dǎo)航工程師越來越傾向在全球定位系統(tǒng)()中采用軟件技術(shù)。1,2 由于超大規(guī)模集成電路的發(fā)展,性能強(qiáng)大的CPU和DSP能夠通過軟件對信號進(jìn)行實時檢測和解碼。這些基于軟件的接收機(jī)具有相當(dāng)強(qiáng)的靈活性:只 需修改設(shè)置參數(shù)即可適應(yīng)新的應(yīng)用,無需重新設(shè)計硬件,選擇一個IF,就可完成進(jìn)一步的系統(tǒng)升級。

          利用MAX2769 GPS接收機(jī)芯片,簡單的USB DONGLE或I Express?(Ie?)迷你卡就可以為 增加低成本的GPS 功能。MAX2769將接收到的原 始數(shù)據(jù)傳輸?shù)絇C主機(jī),PC主機(jī)利用軟件實現(xiàn)基帶解 碼,從而省去了單機(jī)GPS系統(tǒng)所需要的基帶ASIC的成 本。簡單的說,MAX2769使設(shè)計人員可以利用單芯 片實現(xiàn)GPS和Galileo系統(tǒng)信號處理的適配器。 本文給出了GPS系統(tǒng)的工作狀態(tài)概述,并詳細(xì)描述了 Maxim的基于軟件的GPS接收機(jī)方案。

          GPS信號發(fā)生器

          GPS系統(tǒng)包含24顆空間衛(wèi)星或空間運(yùn)載器、地面控制站以及用戶設(shè)備(接收機(jī))。對于民用GPS和Galileo系統(tǒng),這些衛(wèi)星通過頻率為1.57542GHz的L1波段進(jìn)行通信。3 GPS 接收機(jī)必須捕獲到至少四顆衛(wèi)星的信號才能進(jìn)行可靠 定位,信號捕獲和跟蹤非常復(fù)雜,因為每顆衛(wèi)星和接 收機(jī)的位置時刻都在變化。

          GPS系統(tǒng)實際上是一個簡單的擴(kuò)頻通信系統(tǒng)。4 圖1提 供了一個民用GPS系統(tǒng)的信號發(fā)生電路。首先,50bps 的導(dǎo)航信息重復(fù)20次,形成1000bps的比特流。然后 這個重復(fù)信號被長度為1023碼片(偽隨機(jī)噪聲(PRN)碼的碼速) 的唯一粗/ 捕獲碼( C / A ) 進(jìn)行擴(kuò)頻, 形成 1.023Mcps的基帶信號。此用這種擴(kuò)頻方法后,43dB 大小的GPS系統(tǒng)的總處理增益(G)可以很好地恢復(fù)比 熱噪聲電平低得多的信號。

          每顆衛(wèi)星都有唯一的C/A碼或者說Gold碼。5 由于具有 很好的自相關(guān)和互相關(guān)性,Gold碼被廣泛用于各種 CDMA通信系統(tǒng),如WCDMA和cdma2000??;鶐?號經(jīng)過二元相移鍵控(BPSK)調(diào)制后被上變頻到L1波 段進(jìn)行傳輸。

          圖1. 民用GPS信號發(fā)生器采用擴(kuò)頻技術(shù)發(fā)送信號。

          方法分析

          因為GPS是一種CDMA通信系統(tǒng),所以作為解調(diào)數(shù)據(jù) 的先決條件,接收機(jī)必須與PRN碼進(jìn)行同步。實現(xiàn)代 碼同步通常需要兩個步驟:用來實現(xiàn)粗對準(zhǔn)的代碼捕 獲和用來實現(xiàn)精細(xì)對準(zhǔn)的代碼相位跟蹤。6 更明確地 講,GPS接收機(jī)必須首先確定它對某顆衛(wèi)星是否具有 視距上的可視性。我們知道,每顆衛(wèi)星都由唯一的 C/A碼來區(qū)分。當(dāng)衛(wèi)星可視時,由捕獲過程判斷信號 的頻率和代碼相位,然后確定相應(yīng)的解調(diào)參數(shù)。由于 存在多普勒效應(yīng),根據(jù)衛(wèi)星相對于接收機(jī)的速度,接 收信號的頻率一般會偏移標(biāo)稱值5kHz到10kHz。

          在接受器端,GPS信號首先被下變頻到同向和正交 (I和Q)分量信號。再由一對I-Q相關(guān)器將I/Q基帶信號 與本地PRN序列進(jìn)行相關(guān)運(yùn)算。經(jīng)過一個比特周期的 積分后,I-Q相關(guān)器的輸出被累加起來以提供輸出判定變量。

          只要判定變量超過一定的門限,系統(tǒng)就認(rèn)為成功地實 現(xiàn)了捕獲,繼而進(jìn)入跟蹤模式。否則,就通過調(diào)節(jié)本 地PRN序列的相對相位和振蕩器頻率,來更新判定變 量,并重復(fù)上述過程。

          串行搜索方法的簡單邏輯結(jié)構(gòu)使它非常適合用ASIC 實現(xiàn),而用軟件實現(xiàn)就不切實際了,因為搜索空間非 常大。假設(shè)系統(tǒng)允許500Hz的載波頻率偏移,多普勒 頻率是10kHz,軟件實現(xiàn)需要的搜索空間大概為 2 x (10,000/500) x 1023 = 40,920。很明顯,用軟件實現(xiàn)串行搜索捕獲比較困難。

          另外一種更簡單的軟件捕獲方法叫做頻域并行代碼相位捕獲。這種方法將多普勒頻率和代碼相位搜索合并起來,在經(jīng)過PRN碼的快速傅立葉變換(FFT)后,將所有代碼相位信息轉(zhuǎn)換到頻域內(nèi)。這樣我們只需要搜索多普勒頻移上的空間即可,因此這是一種快速高效的軟件搜索方法。

          首先,將輸入信號與本地正弦和余弦載波(同向I和正交Q信號分量)分別相乘。然后把I和Q分量合并成一個復(fù)合信號輸入到FFT模塊。傅立葉變換的結(jié) 果再和PRN碼的FFT變換結(jié)果相乘(PRN生成器產(chǎn)生代碼相位為零的代碼)。實際上,F(xiàn)FT運(yùn)算和PRN碼的產(chǎn)生可以采用列表的方法,以降低運(yùn)算的復(fù)雜 性。

          最后,輸入信號與本地代碼的乘積(該乘積代表了輸入信號和載波頻率的相關(guān)性)被送到傅立葉逆變換模塊,該模塊的自乘輸出結(jié)果再被反饋到判定邏輯?;?于FFT的頻域計算被證實具有較小的運(yùn)算量。例如之前提到的那個例子, 捕獲運(yùn)算的復(fù)雜性大概為20,000/500 = 40個FFT運(yùn)算操作。

          串行搜索方法具有簡單的邏輯和控制架構(gòu),非常適合ASIC實現(xiàn)。然而,巨大的搜索空間增加了軟件算法的復(fù)雜性。所以對于軟件GPS接收機(jī)來說,串行 搜索方法并不是一個好的選擇。相反,并行代碼捕獲方法的低復(fù)雜性使它很適合用軟件實現(xiàn)。然而,它的邏輯架構(gòu)遠(yuǎn)比串行搜索方法復(fù)雜,因此很難用ASIC實 現(xiàn)。

          跟蹤細(xì)調(diào)

          捕獲過程建立了對GPS信號的頻率和代碼相位參數(shù)的粗校準(zhǔn)。因此,跟蹤的目的是進(jìn)行細(xì)調(diào),以便系統(tǒng)能用精確的代碼相位和頻率信息解調(diào)出數(shù)據(jù)。跟蹤包括代碼相位跟蹤和載波頻率跟蹤。

          代碼跟蹤用延時鎖相環(huán)(DLL)實現(xiàn),如圖2所示。DLL電路把輸入信號乘以PRN碼的三個復(fù)制碼(間隔±0.5碼片),這三個復(fù)制碼分別代表和輸 入信號相比提前、準(zhǔn)時和落后到達(dá)。經(jīng)過綜合后,這些信號分別代表輸入信號和本地復(fù)制碼之間的相關(guān)性。具有最高相關(guān)值的信號被選中保留下來(圖3)。

          載波頻率跟蹤由鎖相環(huán)(PLL)或者Costas環(huán)路完成。8載波跟蹤的目的是把本地頻率調(diào)節(jié)為輸入信號的實際頻率。

          當(dāng)捕獲和跟蹤過程建立起初始同步后,系統(tǒng)能夠解碼出導(dǎo)航比特。將1.023Mcps的輸入信號解擴(kuò)為1000bps的比特流后就開始解調(diào)數(shù)據(jù)。然后 利用比特同步從1000bps的數(shù)據(jù)流中恢復(fù)出50bps的信息。比特同步需要通過尋找零交叉沿(0V)來識別比特流的起始位置。

          如果這個交叉沿是已知的,我們可以用20ms的間隔分割1000bps輸入流,因為導(dǎo)航數(shù)據(jù)信息(50位)的持續(xù)時間為20ms。最后,以20ms間隔排列的比特取樣累加起來取平均值,從而解碼出導(dǎo)航數(shù)據(jù)。

          圖2. 使用延時鎖相環(huán)作代碼跟蹤幫助細(xì)調(diào),以便系統(tǒng)能用精確的代碼相位和頻率信息解調(diào)出數(shù)據(jù)。

          圖3. DLL電路把輸入信號乘以PRN碼的三個復(fù)制碼(間隔±0.5碼),這三個復(fù)制碼分別代表和輸入信號相比提前、準(zhǔn)時和落后到達(dá)。具有最高相關(guān)值的信號被選中保留下來。

          基于軟件的GPS接收機(jī)

          傳統(tǒng)的GPS接收機(jī)采用ASIC實現(xiàn)信號捕獲、跟蹤和位同步操作,而軟件GPS接收機(jī)用軟件代替硬件實現(xiàn)這些功能,因此具有更高的靈活性。通過簡化 硬件架構(gòu),基于軟件的設(shè)計能夠進(jìn)一步縮小接收機(jī)尺寸,降低成本,并具有更高效率。程序可以使用C/C++、MATLAB®或其它語言編寫,并可移植到各種 操作系統(tǒng)中(嵌入式操作系統(tǒng)、PC、Linux和DSP平臺)。由此看來,軟件GPS接收機(jī)能夠為移動終端、PDA及其它類似設(shè)備提供最大的設(shè)計靈活性。

          對于電腦,設(shè)計人員可以設(shè)計USB dongle (可配合任何帶USB端口的電腦一起工作)。對于新一代帶有PCIe迷你卡連接器的膝上型電腦,可以把置于PCIe迷你卡上,并把它插入 PC內(nèi)部(圖4a,圖4b)。PCIe迷你卡接口包含一個USB口,因此,前端適配器設(shè)計對于USB和PCIe迷你卡而言非常相似。

          主要區(qū)別在于:支持PCIe需要不同的電源管理邏輯電壓,需要處理不同的直流電壓(PCIe為3.3V,外部USB端口為5V)。

          從圖5b所示USB dongle框圖可以看出該方案非常簡單,只使用了一個通用GPS接收器MAX2769、一個計數(shù)器和USB接口控制器,即可捕獲信號,并將其轉(zhuǎn)換成數(shù)字 信號,最終傳遞給PC主機(jī)。然后,通過運(yùn)行PC主機(jī)軟件執(zhí)行所有基帶功能,將定位信息顯示在PC 顯示器上。這樣,筆記本PC 便成了一個強(qiáng)大的GPS設(shè)備,可支持導(dǎo)航和基于定位的服務(wù)。

          GPS前端通過工業(yè)標(biāo)準(zhǔn)USB 2.0接口把數(shù)字化的IF數(shù)據(jù)傳輸?shù)焦P記本電腦。程序利用輸入數(shù)據(jù)計算出位置方位并隨后執(zhí)行跟蹤過程。Geotate是可選的一個軟件來源。

          為提供通用接口,此軟件能創(chuàng)建一個虛擬COM端口,使其可以連接到很多現(xiàn)有的導(dǎo)航和定位應(yīng)用。大部分GPS軟件包接口符合NMEA 0183標(biāo)準(zhǔn),通常都可以運(yùn)行在Microsoft的Windows® XP和Windows VistaTM操作系統(tǒng)中。另外,此軟件能夠處理所有可得的輔助數(shù)據(jù),此數(shù)據(jù)可以從工業(yè)標(biāo)準(zhǔn)協(xié)議或者用戶專有的接口取得。

          當(dāng)前的膝上型電腦里所帶的CPU均具備滿足軟件GPS接收機(jī)實時解碼所需的運(yùn)算能力。當(dāng)在1GHz Pentium®M系統(tǒng)中,跟蹤過程中平均處理器負(fù)載大約為6%;而在2.18GHz CoreTM Duo處理器上,在執(zhí)行每秒更新時,處理器負(fù)載通常低于5%。隨著算法的發(fā)展,有可能把CPU的使用率降低到2%以下。

          電路工作和性能

          基于軟件的GPS接收機(jī)首先使用低噪聲放大器(LNA)放大微弱的輸入信號,然后經(jīng)過下變頻將信號轉(zhuǎn)換到較低頻率(4MHz左右)的IF (圖5a)。下變頻器采用一路或兩路混頻器對輸入RF信號和本機(jī)振蕩器信號進(jìn)行混頻,通過模/數(shù)轉(zhuǎn)換器(ADC)把生成的模擬IF信號轉(zhuǎn)換成數(shù)字IF信 號。

          MAX2769將所有功能電路(LNA、混頻器和ADC)集成到一起,可大大縮短產(chǎn)品的開發(fā)時間。該芯片提供了兩個LNA:其中一個LNA具有低至 0.9dB的噪聲系數(shù)、19dB 增益、-1dBm的IP3,可配合無源天線使用;另一個LNA則具有1.5dB的噪聲系數(shù)、較低增益/功耗和較高的IP3,可配合有源天線使用。2.8V 供電時,消耗的電流最小,且僅為13至18mA,具體取決于電路配置。

          圖4. 針對USB dongle (a)、PCIe迷你卡(b)的典型適配器結(jié)構(gòu),為兩種方案均可提供了簡單、低成本的設(shè)計。

          RF端,在放大器之后通常使用外部RF濾波器。然后使用集成的20位,Σ-Δ N分頻合成器和15位整數(shù)分頻器將信號直接下變頻到0至12MHz所要求的IF頻率。IF濾波器的選擇范圍較廣,可以適應(yīng)不同的架構(gòu),例如Galileo。

          從RF輸入至IF輸出的總增益能夠在60至115dB范圍內(nèi)調(diào)節(jié)或進(jìn)行自動控制。輸出可以選擇為模擬、CMOS或有限差分。內(nèi)部ADC具有可設(shè)置的一到三位輸出。集成參考時鐘振蕩器可以使用晶體或溫補(bǔ)晶振(TCXO),也可以使用8至44MHz頻率范圍的輸入?yún)⒖紩r鐘。

          我們利用MAX2769和工作在24MHz參考時鐘的CypressSemiconductor的USB控制器構(gòu)建了一個簡單的USBd o n g l e 參考設(shè)計(如圖5 b 所示)。該設(shè)計利用一路MAX8510 LDO調(diào)節(jié)直流電源。通過3線(SPITM)數(shù)字總線對MAX2769的寄存器進(jìn)行編程。系統(tǒng)也可以在沒有SPI控制的情況下工作在八種硬件模式的任意一 種。

          芯片內(nèi)的電路對有源天線進(jìn)行偏置,關(guān)斷模式下將天線關(guān)閉,滿足USB規(guī)范。MAX2769能夠檢測到天線電源是否有電流消耗,并自動切換LNA1和 LNA2,對于能夠插入靈敏度更高的有源天線替代無源天線的應(yīng)用,這是一個非常理想的功能。設(shè)計人員只需要把外部天線端口連接到LNA2,把內(nèi)部端口連接 到LNA1。

          插入外部天線時,MAX2769將檢測到吸電流,可自動由LNA1切換到LNA2。

          MAX2769為膝上型電腦、手機(jī)、PDA和汽車應(yīng)用提供了一個高性能、緊湊的解決方案。利用已經(jīng)商用化的GPS軟件包,115dB的總電壓增益和1.4dB的模塊噪聲系數(shù)能夠達(dá)到-143dBm 的捕獲靈敏度和-154dBm的跟蹤靈敏度。

          結(jié)論

          軟件技術(shù)可實現(xiàn)簡單的、低成本GPS應(yīng)用。為支持這些可能性,MAX2769為軟件GPS接收機(jī)和傳統(tǒng)的硬件實現(xiàn)方法提供靈活的頻率規(guī)劃。當(dāng)然,每 種方案都有正反面—軟件GPS接收機(jī)需要高性能的處理器和適量的內(nèi)存。然而,隨著軟件的發(fā)展,對時鐘、數(shù)據(jù)更新速率進(jìn)行合理的選擇,需要的內(nèi)存可以最小 化。

          圖5. (a)軟件GPS接收機(jī)中,需要對捕獲的RF信號進(jìn)行放大、變頻、數(shù)字化。(b)實際接收機(jī)中,低噪聲放大器對RF信號進(jìn)行放大,MAX2769對放大后的信號進(jìn)行變頻和數(shù)字化處理。然后,通過計數(shù)器和USB接口控制器將數(shù)據(jù)按照USB協(xié)議傳輸給PC主機(jī)。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();