張建偉,鄭迎春
(衛星導航系統與裝備技術國家重點實驗室,河北 石家莊 050081)
GNSS快速捕獲控制模塊研究與設計實現
張建偉,鄭迎春
(衛星導航系統與裝備技術國家重點實驗室,河北 石家莊 050081)
GNSS信號類型的增加以及技術要求的提升使GNSS基帶處理部分各模塊的控制邏輯設計更加復雜。對GNSS信號快速捕獲技術的控制模塊進行了研究和分析。對涉及捕獲控制的啟動策略優化、重捕以及P碼直捕等關鍵路徑進行綜合分析,設計了一種基于數據鏈表的GNSS快速捕獲控制單元。通過對捕獲模塊的接口封裝和任務排序,有效地縮短了因捕獲策略切換造成的時間延遲,實時地控制捕獲模塊完成指定任務。
GNSS;數據鏈表;快速捕獲;捕獲策略
快速捕獲是GNSS接收設備的關鍵技術之一。捕獲用時多少、搜索的載波和碼相位準確度對后續信號跟蹤處理產生較大影響,并最終反饋到如首次定位時間、失鎖重捕時間和P碼直捕時間等一系列用戶關心的性能指標中來[1]。很多文獻已經對快速捕獲算法進行了研究和分析。文獻[2-3]從基帶信號處理角度對兼容型捕獲和長碼快速捕獲算法進行分析,從捕獲時間和消耗資源等方面進行優化。文獻[4-5]則根據提前獲知或推算得到的附加信息出發對快速捕獲或快速定位進行了闡述,對快速定位延時進行了優化。綜合以上研究成果得到的結論和實際接收機設計的工程經驗,本文設計了一種適合于GNSS快速捕獲任務的控制邏輯,通過對捕獲模塊的接口封裝和任務排序,有效解決各種捕獲策略的兼容性問題,并使策略簡單明了,方便可控。
GNSS接收機捕獲分為2個層面:周期性盲捕和指定衛星捕獲[1]。這里,周期性盲捕既可理解為GNSS接收機通過對歷書等非即時參數進行周期性計算進而捕獲可能的空間可見導航衛星,也可認為是沒有任何輔助信息的周期性輪詢捕獲[6]。指定衛星捕獲是GNSS接收機中重要的設計內容[2],它貫穿于GNSS接收機的整個工作過程,如授權信號類型(P碼)引導捕獲與直接捕獲策略控制[3]、開機時的冷/溫/熱啟動策略的實現[4]、失鎖重捕時輔助捕獲信息注入以及由用戶發起的信號切換[5]等。接收機工作時,周期性盲捕實現對可能的空間可見衛星的即時捕獲,指定衛星捕獲則保證對確知可見衛星在失鎖或信號切換時的及時處理。二者相輔相承,共同實現對空間可見衛星的捕獲。
GNSS接收機捕獲部分的信息處理框圖如圖1所示。GNSS接收機捕獲處理可劃分為3個層次:捕獲任務驅動、捕獲隊列控制邏輯以及進行相關運算的基帶邏輯。

圖1 GNSS捕獲處理的信息處理
捕獲任務驅動列舉出GNSS接收機在工作過程中能夠下發捕獲命令的所有控制邏輯。包括開機啟動策略中的冷/溫/熱啟動捕獲列表的處理(不同啟動方式的捕獲參數及信息類型存在差異[5]),快速重捕處理(信號失鎖后的重新捕獲、C/P碼間切換和多頻信號直接跟蹤[7]等)以及長時間工作過程中所必需的周期性盲捕處理。在工作過程中,3種任務之間并不具有互斥性,相反必須能夠通過相互切換和無縫配合來提高接收機的性能。以北斗用戶機啟動時P碼捕獲為例,說明各策略之間的相互轉換關系,切換流程如圖2所示,虛線箭頭處表示策略間的切換。
捕獲隊列控制邏輯作為捕獲任務驅動和捕獲基帶邏輯的樞紐,承擔著信息收集、優先級設定以及任務隊列管理的職能。在捕獲基帶邏輯功能和接口確定的情況下(基帶芯片或自定制FPGA捕獲邏輯),捕獲隊列控制模塊設計的優劣將直接影響捕獲的反應快慢以及接收機的總體性能。本文以該控制模塊的設計為研究重點,提出一種適用性很強的捕獲模塊控制邏輯。
捕獲基帶邏輯一般由基帶芯片內的硬件邏輯或者定制的FPGA內相關器邏輯實現。基帶邏輯具備一些可用于模塊控制的寄存器組,作為與捕獲控制邏輯的接口,用于捕獲參數配置。基帶邏輯經過相關運算將捕獲得到的結果反饋至相關的任務驅動,為后續衛星的跟蹤處理提供初始頻率和碼相位。

圖2 捕獲策略切換流程
由圖1可知,捕獲控制模塊在實現衛星快速捕獲以及各捕獲任務驅動無縫切換策略中起到至關重要的作用。這就要求必須有一個高效的數據結構在后臺能夠實時處理來自不同任務、不同配置參數的捕獲控制邏輯,滿足信號快速恢復和跟蹤切換的要求。并且該數據結構動態更新的效率很大程度上決定著快速捕獲的最終性能。
經過充分論證,本文認為基于雙向數據鏈表的數據結構最適合于存儲動態更新的捕獲隊列實現。相比于數組,鏈表只需移動指針即可實現對隊列數據的遍歷。相比于隊列,鏈表在實現失鎖重捕以及信號切換方面保留了其配置靈活的優勢。而相對于單鏈表,雙向鏈表在節點插入和刪除處理上使程序設計更加簡易。通過合理的策略和鏈表構造,能夠實現對捕獲基帶邏輯實時精細化配置,從而實現對衛星自適應捕獲,縮短捕獲時間。
首先構造雙向數據鏈表的節點數據類型[8]:
typede fstruct CapLinkednode{
CapLinkednode *next,prev;/*鏈表指針*/
int CAPmode;/*捕獲任務標識*/
int PRN;/*捕獲衛星ID/
int Channel;/*指定捕獲通道*/
int Freq;/*指定捕獲頻點*/
int Code;/*碼類型可與Freq合并*/
int NHcnt;/*非相干積分次數*/
int dopplermin;/*多普勒搜索下限*/
int dopplermax;/*多普勒搜索上限*/
int timebias;/*時間不確定度*/
} Capnode,*pCapnode;
其中,prev和next指針是雙向鏈表的構成要素。CAPmode要求能夠標識該捕獲節點來自于哪一個任務策略。PRN標識捕獲的衛星ID。Channel在捕獲模式為信號類型切換時,標識重新捕獲的通道。Freq標識捕獲的頻率信息,可設置為GPS L1/L2/L5、BDS B1/B2/B3(I/Q)以及GLONASS和GALILEO頻點等。NHcnt標識捕獲基帶邏輯的非相干次數,通過配置可改善捕獲靈敏度。dopplermin/dopplermax標識本次捕獲所對應的多普勒偏移范圍,包含接收機時鐘頻率偏移引入的誤差。timebias用于標識P碼捕獲時的時間不確定度,通過縮小時間不確定區間實現P碼的快速捕獲。節點類型定義與具體基帶模塊選擇有關。設計者需要根據具體環境進行調整。
在定義雙向鏈表節點類型的同時定義插入節點和刪除節點的函數。本文僅給出函數名稱NodeAdd(pCapnode)和NodeDel(pCapnode),涉及函數具體操作,參考文獻[9-10]中的鏈表章節。
基于上述設計思想,圖3描述了與圖1捕獲處理對應的啟動策略處理流程[3]。捕獲任務處理需要注意,針對不同的啟動方式或者捕獲類型,對Capnode節點初始化參數的深度是不同的。以熱啟動為例,捕獲類型標識為熱啟動,可使捕獲控制邏輯判斷哪些參數可用于輔助快速捕獲;捕獲衛星ID和頻點信息標識了需要捕獲的衛星和信號類型;非相干積分次數可參考當前捕獲衛星的先驗載噪比信息通過轉換生成基帶捕獲邏輯的控制指令[5]。多普勒信息和時間偏移參數則依賴于熱啟動過程中的信號的穩定性和時間的準確度。上述參數在不同的啟動模式下,其有效性是不同的。故在溫啟動過程中,涉及頻率穩定性和時間穩定性的參數失去了參考價值,而非相干積分次數的確定也變成了由歷書等非即時參數計算得到的仰角信息。冷啟動過程可作為周期性盲捕處理,也可進行默認的捕獲衛星列表初始化。

圖3 開機啟動捕獲任務處理
對失鎖重捕和信號切換的捕獲處理流程如圖4所示。

圖4 失鎖重捕/信號切換任務處理
圖4中失鎖重捕/信號切換鏈表操作的頭指針定義為RecapListHead。區別于圖3中的頭指針,目的是使失鎖重捕和信號切換的捕獲驅動獨立于常規捕獲隊列[11],這樣能夠在周期性盲捕與快速重捕發生時間沖突時,通過捕獲控制,保證快速重捕的優先級和實時性要求[12]。圖3中的捕獲鏈表頭指針在啟動策略完成之后自動轉換為周期性盲捕的捕獲鏈表。
通過上述對控制模塊的結構設計和雙向數據鏈表構造可知,圖1所示捕獲隊列事實上通過常規捕獲鏈表和快速重捕鏈表二者共同實現。獲取的捕獲參數即從這2個鏈表隊列中提取相應的節點數據。
本節著重對常規捕獲鏈表和快速捕獲鏈表在具體捕獲操作時的優先級設計進行分析。一般情況下,控制模塊對基帶捕獲邏輯的控制是通過周期性任務或者硬件中斷實現。控制模塊在CPU空閑時查詢捕獲隊列中是否有需要捕獲的參數。本文可將該操作抽象出來,構成一個while循環任務,以充分說明本文方法的執行過程。
GNSS接收機處理捕獲隊列的源程序示例如圖5所示。

圖5 捕獲鏈表處理源程序
其中第1~2行首先對2個鏈表的頭節點進行賦值,然后進入周期性捕獲操作。第4~12行為常規捕獲鏈表的處理過程,包含命令發送函數,實現對捕獲基帶邏輯參數化配置并返回捕獲成功/失敗的結果。需要注意第5行的條件,只有在重捕鏈表節點都為空的情況下常規捕獲才會執行,否則進行重捕/信號切換操作,從而實現了鏈表優先級的配置。另外,第12行和第21行對每個捕獲節點都設置超時處理,要求捕獲次數超過閾值后,自動從鏈表中刪除,從而保證任務的周期性邏輯和鏈表節點的有效管理。
將以實際嵌入式平臺為例,分別對數組、隊列和本文設計捕獲模塊在啟動捕獲和衛星重捕時所需時間進行比較。采用TMS320C6747處理器作為嵌入式開發平臺,工作頻率300 MHz。任務框架采用TI DSP/BIOS,根據需要設置GNSS任務優先級,節拍器周期為1 ms,捕獲優先級適中。
以GPS 10可見衛星的捕獲耗時為統計依據,基帶捕獲衛星所需時間約為50 ms,捕獲任務周期為10 ms,周期內設定捕獲16顆衛星。數組、隊列和本文方法的平均時間統計結果如表1所示。

表1 GNSS捕獲延時統計結果
表1中,啟動捕獲時,3種方法所用時間基本相同,原因是在啟動捕獲時,其他任務還未得到執行,系統只執行單一進程,時間的差異僅包含數據操作帶來的延時。在衛星重捕時數組和隊列耗時產生了明顯變化,原因是盲捕和重捕衛星在數據和隊列中混合,重捕衛星并不能及時進入捕獲,本文方法受影響較小,充分驗證了采用本文設計的模塊在捕獲控制的即時性。
更需強調的是,通過鏈表可在程序中任何地方進行節點插入和刪除,能夠大大減少數組操作帶來的程序復雜性,同時避免隊列產生的順序性,簡化程序流程,使控制模塊設計更加明晰。
本文從信息處理的角度對GNSS快速捕獲控制模塊進行了研究和分析,并給出了基于雙向數據鏈表的具體實現過程。從實際工程實現和程序流程設計角度說明基于雙向數據鏈表的捕獲控制模塊在捕獲驅動配置、捕獲參數提取以及捕獲狀態管理等方面都具有很好的效果,能夠縮短捕獲策略切換引入的時間延遲,方便、實時地控制捕獲模塊完成指定任務,便于程序設計與系統擴展。
[1] 謝 鋼.GPS原理與接收機設計[M].北京:電子工業出版社,2009:349-375.
[2] 伍蔡倫,孫一雄.GNSS兼容型快速捕獲模塊設計[J].無線電工程,2015,45(8):91-93.
[3] 趙 勝,劉琳琳,劉 洋,等.GNSS接收機長碼快速直捕技術研究與實現[J].無線電工程,2013,43(5):13-15.
[4] 施榮華,葉 睿,董 建,等.一種導航接收機啟動策略的優化方案[J].計算機技術與自動化,2013,32(2):86-90.
[5] 王西奪,孫曉峰,李春祎.一種GPS 信號的快速捕獲方法[J].無線電工程,2012,42(3):34-37.
[6] 謝 鋼.全球導航衛星系統原理(GPS、GLONASS和伽利略系統)[M].北京:電子工業出版社,2013:279-355.
[7] 馬英昌,謝 松.GPS L5接收機的設計與實現[J].無線電通信技術,2013,39(6):94-96.
[8] 謝金石,馮曉超,董 崢.基于點積差分的弱信號捕獲方法性能分析[J].無線電通信技術,2010,36(3):14-16.
[9] 嚴蔚敏.數據結構(C語言版)[M].北京:清華大學出版社,2005:263-490.
[10] 譚浩強.C語言程序設計(第3版)[M].北京:機械工業出版社,2009:422-490.
[11] 秦 奮,楊 軍,劉新寧.GPS 接收機快速熱啟動的分析與設計[J].現代電子技術,2009(1):11-13.
[12] 施 行,肖練剛,陳 怡.失鎖重捕情況下的GPS接收機快速幀同步方法[J].測控技術,2012,31(4):125-129.
張建偉 男,(1986—),碩士,工程師。主要研究方向:GNSS接收機設計。
鄭迎春 女,(1987—),碩士,工程師。主要研究方向:位置服務。
Research and Implement on GNSS Fast Acquisition Control Module
ZHANG Jian-wei,ZHENG Ying-chun
(StateKeyLaboratoryofSatelliteNavigationSystemandEquipmentTechnology,ShijiazhuangHebei050081,China)
The improvement of GNSS signal type and the technique requirement makes the design of GNSS baseband modules and control modules more complicated.This paper studies GNSS fast acquisition control module,and analyzes such key paths as start strategy optimization,re-acquisition strategy and P-code acquisition concerning acquisition control.A novel fast acquisition control component is designed based on the datalink list structure.By using interface Encapsulation and task sorting of acquisition module,the time delay caused by acquisition strategy switch is effectively decreased,and the acquisition module is controlled in real time to achieve the specified tacks.
GNSS;datalink list;fast acquisition;acquisition strategy
10.3969/j.issn.1003-3106.2017.05.24
張建偉,鄭迎春.GNSS快速捕獲控制模塊研究與設計實現[J].無線電工程,2017,47(5):98-101,105.[ZHANG Jianwei,ZHENG Yingchun.Research and Implement on GNSS Fast Acquisition Control Module[J].Radio Engineering,2017,47(5):98-101,105.]
2017-02-09
國家高技術研究發展計劃(“863”計劃)基金資助項目(2015AA124001)。
TP391.4
A
1003-3106(2017)05-0098-04