摘 要: 為使DSP芯片有充裕的資源和時間用于復雜的導航計算、輸出高頻率的解算結果,通過資源優(yōu)化,只采用FPGA邏輯電路實現(xiàn)了GPS信號的捕獲、跟蹤、幀同步、衛(wèi)星自動搜索、偽距信息生成等基帶處理功能,并整理了電文、歷書、偽距信息、多普勒頻移的格式,以方便傳輸。實驗表明,本方案可行有效,定位頻率可達100 Hz。
關鍵詞: 相干積分;濾波器調(diào)整;幀同步;偽距生成
當前,以FPGA+DSP為硬件平臺實現(xiàn)的軟件接收機,由于參數(shù)設置靈活、可驗證新的導航算法而備受重視。伴隨著新算法的日益復雜和對接收機要求的不斷提高,對系統(tǒng)的速度提出了更高的要求[1-2]。比較GNSS接收機不同解決方案的處理能力與靈活性[3],將更多的任務交給FPGA處理以減少DSP的負擔、提高系統(tǒng)速度。本文采用FPGA完成GPS的基帶處理,保留了軟件接收機參數(shù)的靈活性;節(jié)省了DSP資源,增加了定位結果的輸出率;在FPGA硬件資源允許下,通道個數(shù)可以任意擴展。
1 基帶處理FPGA實現(xiàn)方案
如圖1所示,GPS信號經(jīng)天線、射頻下變頻至中頻,進入FPGA。載波環(huán)路和碼環(huán)路對中頻信號進行解擴,得到數(shù)據(jù)比特流。同步電路對數(shù)據(jù)流進行同步,輸出偽距等相關信息。系統(tǒng)啟動時,衛(wèi)星號分配模塊和多普勒限定模塊接收DSP發(fā)送的配置方案。時鐘發(fā)生器模塊用于產(chǎn)生時鐘脈沖。
1.1 數(shù)控振蕩器設計
載波發(fā)生器按照輸入值產(chǎn)生不同頻率的同相I、正交Q兩路正弦信號。碼發(fā)生器除了產(chǎn)生不同頻率的C/A碼外,還具有對碼相位進行移位的操作。為減少資源使用,只采用每次延遲一個碼片的操作。延遲移位可減少捕獲到多徑信號的危險。
1.2 環(huán)路濾波器參數(shù)調(diào)整
考慮到FPGA除法運算的舍入誤差和射頻芯片帶寬的影響,環(huán)路參數(shù)的調(diào)整工作按以下步驟進行。
(1)按濾波器典型值計算公式,計算環(huán)路的增益、載波環(huán)帶寬100 Hz和碼環(huán)的10 Hz的參數(shù)值。此外,為了FPGA能夠利用移位進行運算,應化簡計算結果。
(2)修改載波環(huán)環(huán)路增益,使環(huán)路穩(wěn)定。
(3)修改載波環(huán)和碼環(huán)增益,使環(huán)路波動最小。
系統(tǒng)使用一階鎖頻環(huán)輔助二階鎖相環(huán)濾波器。當濾波器使用表1的參數(shù)時,得到圖2所示的系統(tǒng)時域性能。從圖2可以看出,第一組鎖相環(huán)鑒相器的輸出抖動大,系統(tǒng)相位誤差大。同時I、Q相位圖中在正交支路Q上還有很大的能量,環(huán)路收斂性差。逐步調(diào)整參數(shù)比例后,在第二組中相位誤差減小到20°以內(nèi)。
1.3 偽距信息輸出
在位同步和幀同步完成后,F(xiàn)PGA能夠檢測到子幀頭位置并通過數(shù)據(jù)流得到子幀頭部的發(fā)送時刻(周內(nèi)時)。為得到子幀頭后任意一點的發(fā)送時刻,F(xiàn)PGA在檢測到子幀頭部時對各計時寄存器清零,然后按照各自的頻率累加計時。當DSP請求提取偽距信息時,F(xiàn)PGA將該時刻的各計時寄存器值同時轉移鎖存,并傳送給DSP處理。DSP計算出計時寄存器值對應的時間,再加上子幀頭對應的周內(nèi)時即可得到信號的發(fā)送時刻。
2 基帶處理輔助模塊優(yōu)化設計
接收機的正常工作需要一些輔助模塊,以協(xié)助接收機在信號遮擋、消失等條件下正常運行。
2.1 衛(wèi)星號自動分配方法
在系統(tǒng)冷啟動時,F(xiàn)PGA自動搜星。為避免自由通道同時搜索同一顆星,需要設計衛(wèi)星號分配方法。自動分配方法采用申請交換方式。如果自由通道沒有捕獲到當前衛(wèi)星,則向衛(wèi)星號分配庫申請新的衛(wèi)星,同時將正在使用的衛(wèi)星號上交。為適應熱啟動,DSP需要將優(yōu)先搜索的衛(wèi)星排在分配器前端以獲得高的優(yōu)先級。PRN碼庫可將剛剛處理過的衛(wèi)星號自動變?yōu)榈蛢?yōu)先級,以保證系統(tǒng)及時處理新出現(xiàn)的衛(wèi)星。
2.2 熱啟動載波多普勒限制
多普勒限制模塊與衛(wèi)星號分配庫結構相同。DSP系統(tǒng)根據(jù)歷書、時間和預存儲的位置計算出可視衛(wèi)星號、概略多普勒頻移信息,把結果傳送至FPGA,并通知FPGA使用何種搜索模式進行搜星捕獲等。此處理方式可大大減少首次定位時間。
2.3 秒時鐘脈沖輸出
為輸出與UTC同步的精準秒脈沖,在FPGA內(nèi)部設計了時鐘發(fā)生器。時鐘發(fā)生器以系統(tǒng)時鐘為基準,并輸出時鐘秒內(nèi)計時累加器值tc,為DSP系統(tǒng)校正使用。當DSP請求偽距信息時,F(xiàn)PGA同時將tc鎖定送出。DSP定時計算后,可得到秒內(nèi)時誤差tc-tu'(tu'為系統(tǒng)當前時間中不到1 s的部分),濾波后把校正值反饋給FPGA進行校正。
3 系統(tǒng)驗證
系統(tǒng)使用表1中第二組參數(shù)時,環(huán)路的牽引過程如圖3所示。從即時碼支路輸出可以看出,開始階段環(huán)路積分值不斷增大,最后正交支路積分值變小,同相支路解調(diào)出數(shù)據(jù)流。載波多普勒頻移顯示環(huán)路承受了250 Hz左右的偏差,達到了設計目標。