胡永春 歐 鋼 張 建 陳 亮
(國(guó)防科技大學(xué)電子科學(xué)與工程學(xué)院衛(wèi)星導(dǎo)航定位研發(fā)中心 長(zhǎng)沙 410073)
全球定位系統(tǒng)(GPS)是基于衛(wèi)星星座的導(dǎo)航定位系統(tǒng)。對(duì)用戶而言,GPS應(yīng)用的關(guān)鍵設(shè)備是能夠捕獲、跟蹤、變換和測(cè)量GPS信號(hào)的接收機(jī)[1]。如何優(yōu)化接收機(jī)的各個(gè)組成部分,設(shè)計(jì)出低成本、高性能的接收機(jī)一直是人們關(guān)注的重點(diǎn)。
如圖1所示為接收機(jī)示意圖,GPS天線感應(yīng)包括多顆衛(wèi)星信號(hào)在內(nèi)的各種電磁場(chǎng)信號(hào),射頻前端將這些信號(hào)濾波放大后輸出數(shù)字中頻信號(hào)進(jìn)入基帶處理模塊,基帶處理模塊通常采用信號(hào)通道的形式,即每個(gè)通道各自捕獲、跟蹤和測(cè)量一顆不同衛(wèi)星的信號(hào),輸出導(dǎo)航電文和GPS測(cè)量值。全部 N個(gè)通道輸出的有效電文和測(cè)量值一起輸入定位終端進(jìn)行導(dǎo)航定位解算[2]。
圖1 接收機(jī)內(nèi)部信號(hào)通道
數(shù)據(jù)解調(diào)是指在完成GPS信號(hào)的捕獲和跟蹤后,根據(jù)跟蹤環(huán)路輸出的相關(guān)值解調(diào)出導(dǎo)航電文的過程,包括位同步、幀同步、奇偶校驗(yàn)和電文譯碼四個(gè)步驟。本文主要討論GPS信號(hào)數(shù)據(jù)解調(diào)電路的優(yōu)化設(shè)計(jì)。
如圖1所示,信號(hào)通道中的載波跟蹤環(huán)路輸出碼速率為1000bps的二進(jìn)制數(shù),而GPS衛(wèi)星導(dǎo)航電文的碼速率為50bps,因此要恢復(fù)導(dǎo)航電文,就必須找到每個(gè)導(dǎo)航電文數(shù)據(jù)位在載波跟蹤環(huán)路輸出的二進(jìn)制數(shù)據(jù)串中的起始位置,并將從該位置開始的20個(gè)連續(xù)的二進(jìn)制數(shù)合并成一個(gè)導(dǎo)航電文數(shù)據(jù)位,這個(gè)過程稱為位同步。
位同步最常用的方法是直方圖法,該方法統(tǒng)計(jì)20個(gè)假定的位邊界下的符號(hào)翻轉(zhuǎn)的次數(shù)。當(dāng)其中某個(gè)假定的位邊界的統(tǒng)計(jì)次數(shù)明顯大于其它位置時(shí),則認(rèn)為該位置即為正確的位邊界。由于該方法只使用了準(zhǔn)時(shí)相關(guān)通道同相支路的相關(guān)累加值的符號(hào)位,因此在低載噪比時(shí),其檢測(cè)性能會(huì)急劇下降。文獻(xiàn)[3]介紹的分段累加的思想采用分段相關(guān)-視頻積累的方法,計(jì)算各種可能的位邊界下,I支路的相關(guān)值與二級(jí)調(diào)制碼的分段相關(guān)-視頻積累值,并選擇使該值達(dá)到最大時(shí)的位邊界作為正確的位邊界。該方法相比直方圖法能提高檢測(cè)性能,減少位同步錯(cuò)誤,故本文采用該方法進(jìn)行位同步操作。
GPS導(dǎo)航電文的格式為:每幀導(dǎo)航電文長(zhǎng)1500比特,依次由5個(gè)子幀組成,每個(gè)子幀長(zhǎng)300比特,依次由10個(gè)字組成,每個(gè)字長(zhǎng)30比特,且每個(gè)子幀的第一字的前8比特固定為同步碼10001011。載波跟蹤環(huán)輸出的二進(jìn)制數(shù)據(jù)串在經(jīng)過位同步之后解調(diào)出碼速率為50bps的數(shù)據(jù)比特流,幀同步就是根據(jù)同步碼確定子幀幀頭位置并將這些數(shù)據(jù)比特按GPS導(dǎo)航電文格式每30個(gè)比特組成一個(gè)字的過程。
GPS導(dǎo)航電文的同步引導(dǎo)碼—巴克碼的特點(diǎn)是只有當(dāng)完全匹配時(shí),才有較大的相關(guān)值,否則其值很小。巴克碼的這種特性十分適合用于幀同步。本地生成一個(gè)預(yù)定的巴克碼與接收到的信息進(jìn)行相關(guān),若相關(guān)值達(dá)超過門限,則可判定找到了幀頭。
在幀同步完成后,就可以按照GPS界面控制文件[4]中規(guī)定的奇偶校驗(yàn)方式和導(dǎo)航電文的格式對(duì)數(shù)據(jù)進(jìn)行校驗(yàn)和譯碼,輸出導(dǎo)航電文信息了。
如圖2所示為我們?cè)O(shè)計(jì)的GPS接收機(jī)的數(shù)字部分的硬件結(jié)構(gòu),利用現(xiàn)場(chǎng)可編程門陣列器件(FPGA)進(jìn)行基帶處理,具有 12個(gè)信號(hào)通道,能同時(shí)對(duì)12路GPS信號(hào)進(jìn)行捕獲、跟蹤,完成信號(hào)的解擴(kuò)解調(diào)。利用ARM處理器進(jìn)行終端處理,實(shí)現(xiàn)最后的定位解算,并輔助基帶處理部分完成信號(hào)的捕獲、跟蹤、解擴(kuò)解調(diào)等操作。
基于圖2所示的接收機(jī)數(shù)字部分硬件結(jié)構(gòu),GPS信號(hào)數(shù)據(jù)解調(diào)的實(shí)現(xiàn)方式有三種,第一種是硬件方式:在基帶處理部分用FPGA實(shí)現(xiàn);第二種是軟件方式:在終端處理部分用ARM處理器實(shí)現(xiàn);第三種是軟硬件結(jié)合:在基帶處理部分用硬件實(shí)現(xiàn)位同步,而將幀同步、奇偶校驗(yàn)和電文譯碼過程在終端處理部分用軟件實(shí)現(xiàn)。三種方案的優(yōu)缺點(diǎn)如表1所示。
表1 數(shù)據(jù)解調(diào)實(shí)現(xiàn)方式比較
從表1對(duì)數(shù)據(jù)解調(diào)的三種實(shí)現(xiàn)方式的優(yōu)缺點(diǎn)的分析比較可知,由于同時(shí)對(duì)12路GPS信號(hào)進(jìn)行數(shù)據(jù)解調(diào)涉及復(fù)雜的狀態(tài)控制和大量的邏輯計(jì)算,ARM處理器能很方便地實(shí)現(xiàn)復(fù)雜的狀態(tài)控制,用FPGA以硬件方式來實(shí)現(xiàn)邏輯計(jì)算則具有實(shí)時(shí)性高,占用資源小的優(yōu)點(diǎn)。上述三種方式各有優(yōu)勢(shì),但也各具有明顯的缺點(diǎn),沒有有效地結(jié)合處理器進(jìn)行狀態(tài)控制和硬件進(jìn)行邏輯計(jì)算兩者的優(yōu)勢(shì)。
表1中的第三種方式即軟硬件結(jié)合的方式根據(jù)GPS信號(hào)的處理流程將數(shù)據(jù)解調(diào)分解為位同步、幀同步、奇偶校驗(yàn)和電文譯碼,其中位同步在FPGA中硬件實(shí)現(xiàn),而幀同步、奇偶校驗(yàn)和電文譯碼則在ARM處理器中軟件實(shí)現(xiàn),這種方式在一定程度上結(jié)合了軟件實(shí)現(xiàn)和硬件實(shí)現(xiàn)的優(yōu)點(diǎn),但由于劃分過于簡(jiǎn)單,而且位同步和幀同步、奇偶校驗(yàn)、電文譯碼分別在FPGA和ARM處理器中實(shí)現(xiàn),增加了FPGA與ARM 處理器的交互,設(shè)計(jì)復(fù)雜,功耗較高,并不是最優(yōu)方案,將位同步、幀同步、奇偶校驗(yàn)和電文譯碼都用FPGA實(shí)現(xiàn),采用嵌入式處理器加專用加速硬件的結(jié)構(gòu),由嵌入式處理器進(jìn)行狀態(tài)控制,專用硬件進(jìn)行邏輯計(jì)算,則可以充分利用兩者的優(yōu)勢(shì),設(shè)計(jì)出比上述三種方式都加優(yōu)化的GPS信號(hào)數(shù)據(jù)解調(diào)電路。
GPS信號(hào)數(shù)據(jù)解調(diào)方案中的嵌入式處理器的選擇非常關(guān)鍵,處理器的速度、面積、性能將直接決定整個(gè)數(shù)據(jù)解調(diào)電路的軟硬件劃分,影響軟硬件協(xié)同設(shè)計(jì),在資源緊張的情況下,還將影響基帶處理部分的捕獲、跟蹤功能的實(shí)現(xiàn)。
表2 Xilinx主要的嵌入式處理器及其特性
表2列出了Xilinx主要的嵌入式處理器,PowerPC硬核處理器由于集成在Virtex系列FPGA中,成本過高,不宜采用。MicroBlaze是32位高性能處理器,盡管性能優(yōu)異,但是由于數(shù)據(jù)解調(diào)電路的狀態(tài)控制部分并不是非常復(fù)雜,選用MicroBlaze處理器反而會(huì)增加系統(tǒng)的功耗、占用過多的資源,所以不適合數(shù)據(jù)解調(diào)電路。
PicoBlaze是英國(guó)的 Ken Chapman開發(fā)的8位可編程定序器,由A LU、程序計(jì)數(shù)器棧(使用于嵌套子程序)、16個(gè)8位寄存器、64字節(jié)暫存器、程序計(jì)數(shù)器和控制器以及中斷支持電路構(gòu)成。具有集成的圖形開發(fā)環(huán)境和c編譯器,多個(gè)成熟穩(wěn)定的開發(fā)實(shí)例。作為嵌入式定序器,該器件非常適用于控制靈活性快速超過傳統(tǒng)HDL表達(dá)的應(yīng)用,其實(shí)用特性包括極低的資源占用率(1個(gè)18KB BRAM和96個(gè)Spartan-3邏輯片)和每條指令確定的兩個(gè)時(shí)鐘執(zhí)行周期[5]。特別適合作為數(shù)據(jù)解調(diào)電路中的嵌入式處理器。
由于PicoBlaze的代碼容量有限,僅為1024行代碼,為了充分發(fā)揮PicoBlaze處理器在狀態(tài)控制方面的優(yōu)勢(shì),于是將位同步和幀同步過程中的大量相關(guān)運(yùn)算以及GPS校驗(yàn)譯碼設(shè)計(jì)成專用硬件,加速邏輯運(yùn)算,同時(shí)PicoBlaze控制12個(gè)通道以分時(shí)復(fù)用的方式調(diào)度專用硬件,提高專用硬件的利用效率。
GPS信號(hào)數(shù)據(jù)解調(diào)的硬件整體結(jié)構(gòu)如圖3所示,包括PicoBlaze處理器、總線譯碼模塊、外部總線接口、數(shù)據(jù)存儲(chǔ)器、數(shù)據(jù)相關(guān)器和GPS譯碼模塊。
圖3 硬件結(jié)構(gòu)
PicoBlaze處理器模塊通過總線譯碼模塊可以訪問本模塊內(nèi)的各個(gè)子模塊以及外部的12個(gè)跟蹤通道。通過在處理器上運(yùn)行的軟件調(diào)度其它模塊工作,完成位同步、幀同步、奇偶校驗(yàn)和電文譯碼等操作。數(shù)據(jù)存儲(chǔ)器為每個(gè)通道分配了相應(yīng)的存儲(chǔ)空間,供PicoBlaze運(yùn)行軟件時(shí)存儲(chǔ)與各個(gè)通道有關(guān)的數(shù)據(jù),以及存儲(chǔ)外部微處理器可以通過外部總線讀取的導(dǎo)航電文。數(shù)據(jù)相關(guān)器用于在位同步和幀同步過程中加速相關(guān)運(yùn)算的實(shí)現(xiàn)。GPS譯碼模塊對(duì)1個(gè)字(30bit)的GPS導(dǎo)航電文進(jìn)行奇偶校驗(yàn)和電文譯碼,輸出校驗(yàn)結(jié)果和譯碼后的電文。
PicoBlaze軟件總的處理流程如圖4所示。根據(jù)數(shù)據(jù)解調(diào)的信號(hào)處理流程,將數(shù)據(jù)解調(diào)大致分為IDLE、位同步、幀同步和電文輸出四個(gè)狀態(tài),其中在IDLE狀態(tài)時(shí)PicoBlaze閑置,電文輸出階段完成奇偶校驗(yàn)和電文譯碼,工作時(shí),首先進(jìn)行通道輪詢,然后根據(jù)該通道的狀態(tài)寄存器進(jìn)入相應(yīng)的狀態(tài)分支,在每個(gè)狀態(tài)分支中調(diào)用相應(yīng)的專用硬件完成該狀態(tài)的處理后退出,進(jìn)行下一個(gè)通道的處理。
通過劃分狀態(tài)和通道輪詢,軟件部分以分時(shí)復(fù)用的方式與專用硬件緊密配合完成與12個(gè)跟蹤通道的數(shù)據(jù)交互以及每個(gè)通道的位同步、幀同步和電文譯碼等任務(wù),程序模塊化設(shè)計(jì)方便,結(jié)構(gòu)優(yōu)化,代碼的可讀性和可維護(hù)性良好。
圖4 軟件流程
圖5 測(cè)試
在實(shí)際測(cè)試中,搭建如圖5所示的驗(yàn)證平臺(tái),利用GPS信號(hào)源產(chǎn)生信號(hào)進(jìn)行測(cè)試,射頻前端將射頻信號(hào)轉(zhuǎn)換為中頻信號(hào),數(shù)據(jù)解調(diào)模塊作為GPS基帶處理模塊的一個(gè)子模塊,負(fù)責(zé)解調(diào)經(jīng)過捕獲和跟蹤后的GPS信號(hào),PC端接收基帶處理模塊輸出的的導(dǎo)航電文,并將其與GPS信號(hào)源播發(fā)的電文進(jìn)行比對(duì),測(cè)試結(jié)果表明設(shè)計(jì)方案有效,12個(gè)通道均正確輸出導(dǎo)航電文。
在GPS信號(hào)基帶處理中,同時(shí)對(duì)12路GPS信號(hào)進(jìn)行數(shù)據(jù)解調(diào)狀態(tài)控制復(fù)雜、邏輯計(jì)算量大。采用PicoBlaze處理器加專用硬件的結(jié)構(gòu),由嵌入式處理器完成狀態(tài)控制,專用硬件實(shí)現(xiàn)邏輯計(jì)算、加速處理速度。通過時(shí)分復(fù)用的方式使12路信號(hào)共用一個(gè)解調(diào)電路,軟件開發(fā)靈活、硬件邏輯簡(jiǎn)單、占用資源少、電路利用效率高。通過實(shí)際測(cè)試表明,硬件正常工作,12個(gè)通道均正確解調(diào)導(dǎo)航電文。
[1]廖晰,張曉林,王宇恒.GPS信號(hào)捕獲跟蹤環(huán)路的研究及實(shí)現(xiàn)[J].電子測(cè)量技術(shù),2009,32(2):36
[2]謝鋼.GPS原理與接收機(jī)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009,7:238
[3]M.Kokkonen,S.Pietila.A New Bit Synchronization Method for a GPS Receiver[C]∥Proc.of the IEEE Position Location and Navigation Sym posium.Pa lm Springs.CA,2002:85~90
[4]INTERFACE SPECIFICATION IS-GPS-200.U.S.A.2004,12:134
[5]隱藏的珍寶:PicoBlaze IP[J].賽靈思中國(guó)通信,2009(32):24