薛志芹,劉坤,李立廣
(1.航天恒星科技有限公司,北京 100086;2.空裝駐北京地區(qū)第七軍事代表室,北京 100086)
隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)(BDS)全球組網(wǎng)的實(shí)現(xiàn),全球衛(wèi)星導(dǎo)航系統(tǒng)(GNSS)目前已經(jīng)發(fā)展為由GPS、BDS、GLONASS、Galileo 四大全球系統(tǒng)和各地區(qū)的區(qū)域系統(tǒng)以及相應(yīng)的天基增強(qiáng)衛(wèi)星導(dǎo)航系統(tǒng)組成的龐大復(fù)雜的全球定位衛(wèi)星網(wǎng)絡(luò)[1].隨著GNSS 的不斷發(fā)展,衛(wèi)星導(dǎo)航在航空航天、軍事領(lǐng)域和日常生活中的應(yīng)用越來越多.衛(wèi)星導(dǎo)航接收機(jī)作為衛(wèi)星導(dǎo)航系統(tǒng)的重要組成部分,對其體積、功耗、性能和集成度等指標(biāo)的要求日益苛刻[2].
傳統(tǒng)的衛(wèi)星導(dǎo)航接收機(jī)采用FPGA+DSP 的設(shè)計方式,設(shè)計復(fù)雜,整機(jī)體積和功耗較大、成本高、生產(chǎn)周期長[3].在傳統(tǒng)基于FPGA+DSP 架構(gòu)的衛(wèi)星導(dǎo)航接收機(jī)中,捕獲部分和跟蹤相關(guān)器部分在現(xiàn)場可編程邏輯門陣列(FPGA)中實(shí)現(xiàn),利用FPGA 的高速并行運(yùn)算能力實(shí)現(xiàn)多通道相關(guān)的并行處理.由于數(shù)字信號處理(DSP)非常適合做過程控制和復(fù)雜的浮點(diǎn)運(yùn)算[4],因此跟蹤部分的通道調(diào)度、環(huán)路鑒別器和環(huán)路濾波器等均在DSP 中實(shí)現(xiàn).這種FPGA+DSP 的架構(gòu)設(shè)計,雖然充分發(fā)揮了FPGA 和DSP 各自在數(shù)據(jù)處理方面的顯著優(yōu)勢,但在這種架構(gòu)下,F(xiàn)PGA 負(fù)責(zé)完成多個通道的相關(guān)處理后,需要將各個通道的6 路累加量輸出給DSP,DSP 在接收到累加量后,根據(jù)當(dāng)前累加量完成載波數(shù)字振蕩器(NCO)和碼NCO 控制字的更新,之后再通過總線將控制字寫回到FPGA,整個跟蹤模塊處于一個開環(huán)處理過程中,因此不可避免的會存在頻率控制字更新不及時、實(shí)時性差、可靠性差的問題.此外,這種架構(gòu)下,F(xiàn)PGA 和DSP 之間存在大量的數(shù)據(jù)通信,增加了IO 資源及功耗.
近年來,隨著集成電路制造技術(shù)的蓬勃發(fā)展,具有速度快、集成度高、功耗低等眾多優(yōu)點(diǎn)的片上系統(tǒng)(SoC)被廣泛應(yīng)用[5].SoC 將整個嵌入式系統(tǒng)集成在一塊芯片上,因此基于SoC 的衛(wèi)星導(dǎo)航接收機(jī)在低成本、低功耗和小型化方面具有其他系統(tǒng)無法比擬的優(yōu)勢[2,6-7].本文基于SoC 架構(gòu),提出了一種衛(wèi)星導(dǎo)航接收機(jī)的閉環(huán)跟蹤環(huán)路設(shè)計方案.整個跟蹤過程,包括相關(guān)器部分、通道選擇、鑒相器和環(huán)路濾波器,均在FPGA 中實(shí)現(xiàn),實(shí)現(xiàn)了跟蹤模塊的閉環(huán)處理,確保了跟蹤的穩(wěn)定性與實(shí)時性.為有效節(jié)約硬件資源,降低成本,本文設(shè)計方案中所有跟蹤通道通過時分復(fù)用的方式共用一個跟蹤環(huán)路處理模塊,為小型化、低功耗衛(wèi)星導(dǎo)航芯片的設(shè)計與發(fā)展奠定了基礎(chǔ),最后給出了基于modelsim 的仿真結(jié)果,證明了該閉環(huán)跟蹤環(huán)路的正確性和穩(wěn)定性.
本文系統(tǒng)中使用到的SoC 是基于ARM Cortex-A9和FPGA 相結(jié)合的架構(gòu),ARM 芯片具有成本低、功耗小、性能高、移植性好等優(yōu)勢,非常適合作為衛(wèi)星導(dǎo)航接收機(jī)的核心處理芯片.SoC 總體架構(gòu)如圖1所示.
圖1 SoC 總體架構(gòu)
整個SoC 主要包括ARM9 CPU 模塊、基帶Baseband 模塊、AMBA 總線系統(tǒng)及其他外設(shè)IP 模塊組成.CPU 模塊主要用于定位解算,以及完成系統(tǒng)的主控調(diào)度和對基帶模塊的控制.Baseband 模塊為導(dǎo)航基帶部分,實(shí)現(xiàn)對衛(wèi)星導(dǎo)航信號的捕獲、跟蹤(包括相關(guān)器和環(huán)路)等處理,獲取衛(wèi)星觀測量值,并輸出電文,供解算使用.本文采用的CPU 是ARM926EJS,工作頻率最大支持200 MHz,具有支持雙精度的浮點(diǎn)運(yùn)算的協(xié)同處理器VFP.ARM9 具有良好的性能,同時也因?yàn)榫哂休^好的價格優(yōu)勢,因此我們選擇了該CPU 進(jìn)行了SoC 的設(shè)計.
衛(wèi)星導(dǎo)航信號多通道跟蹤環(huán)路是載波跟蹤環(huán)和碼跟蹤環(huán)的有機(jī)組合,信號跟蹤的目的是從碼跟蹤環(huán)中得到偽距測量值,載波跟蹤環(huán)剝離接收信號中的載波,能夠得到較為準(zhǔn)確的載波多普勒頻率測量值,及時反映接收機(jī)在其與衛(wèi)星連線方向上的相對運(yùn)動速度,也能夠替碼跟蹤環(huán)消除用戶動態(tài)性和接收機(jī)基準(zhǔn)頻率漂移等動態(tài)應(yīng)力作用,起到輔助碼跟蹤環(huán)的作用.本文設(shè)計的衛(wèi)星導(dǎo)航接收機(jī)閉環(huán)跟蹤環(huán)路方案如圖2 所示.衛(wèi)星信號經(jīng)過射頻前端處理后獲得中頻采樣數(shù)據(jù),中頻采樣數(shù)據(jù)首先進(jìn)入FPGA 中的捕獲模塊進(jìn)行捕獲處理,捕獲模塊在捕獲到衛(wèi)星信號后,通過捕獲轉(zhuǎn)跟蹤,將捕獲的衛(wèi)星信息送入到FPGA 中的跟蹤模塊進(jìn)行處理[8].捕獲模塊和跟蹤模塊同屬于基帶信號處理,之后通過總線與ARM 通信,由ARM 完成導(dǎo)航解算.
文章采用硬件環(huán)路的方式實(shí)現(xiàn)跟蹤,即環(huán)路計算不再在CPU 中運(yùn)算,而是和相關(guān)器部分一樣在FPGA中實(shí)現(xiàn),大大降低了對CPU 的要求,也能使CPU 工作在較低頻率下,對于解算率要求不高的產(chǎn)品,甚至可以工作在10 MHz 的頻率,有效地降低了芯片的功耗;另外,跟蹤環(huán)路在實(shí)現(xiàn)時,環(huán)路參數(shù)可通過CPU 進(jìn)行配置、切換,依然保證了環(huán)路的靈活性.
由圖2 可知,整個跟蹤模塊采用并行通道相關(guān)器處理與串行通用環(huán)路處理相結(jié)合的方式,完成整個跟蹤過程的閉環(huán)處理.衛(wèi)星信息由捕獲轉(zhuǎn)入跟蹤,首先進(jìn)入通道選擇模塊,由通道選擇模塊選取對應(yīng)的空閑跟蹤通道對本次捕獲的衛(wèi)星進(jìn)行跟蹤.跟蹤通道相關(guān)器部分采用并行處理方式,每個跟蹤通道相關(guān)器均有各自的碼發(fā)生器、載波NCO、碼NCO、相關(guān)器等部分.跟蹤通道完成相關(guān)運(yùn)算后,會輸出各自的6 路累加量(超前支路累加量Ie、Qe,即時支路累加量Ip、Qp 和滯后支路累加量Il、Ql)進(jìn)入到通道仲裁模塊.N個跟蹤通道分時復(fù)用進(jìn)行跟蹤環(huán)路的處理,由通道仲裁模塊對N個跟蹤通道的信息進(jìn)行仲裁,確定當(dāng)前串行通用跟蹤環(huán)路處理的跟蹤通道號.通用環(huán)路處理包括跟蹤環(huán)路參數(shù)讀取、環(huán)路控制信號產(chǎn)生、相干累加、比特同步、載噪比(CNR)計算、鑒相、環(huán)路濾波等模塊,跟蹤環(huán)路處理完成后,獲得對應(yīng)通道的碼環(huán)濾波結(jié)果和載波環(huán)濾波結(jié)果,反饋到跟蹤通道部分,形成完整的跟蹤閉環(huán)處理流程.
圖2 導(dǎo)航接收機(jī)閉環(huán)跟蹤環(huán)路方案
衛(wèi)星導(dǎo)航信號多通道跟蹤并行相關(guān)器部分結(jié)構(gòu)圖如圖3 所示.每個跟蹤通道均具有相同的結(jié)構(gòu),且各自相互獨(dú)立.
圖3 導(dǎo)航接收機(jī)相關(guān)器模塊
輸入的數(shù)字中頻信號首先與載波環(huán)復(fù)制的正余弦載波混頻相乘,得到的IQ 支路的混頻信號又分別與碼跟蹤環(huán)復(fù)制的超前、即時、滯后三份偽碼做相關(guān)運(yùn)算.相關(guān)結(jié)果經(jīng)積分-清除器后分別輸出相干積分值.即時支路上的相干積分值輸入至載波跟蹤環(huán)鑒別器,其他兩條相關(guān)支路輸出的相干積分值則作為碼跟蹤環(huán)鑒別器的輸入.
N個跟蹤通道在相關(guān)累加得到1 ms 累加量后,發(fā)出通道請求信號,請求跟蹤環(huán)路處理.通道仲裁模塊通過輪詢的方式對各個通道進(jìn)行環(huán)路處理,仲裁選定通道進(jìn)行后續(xù)的鑒頻、鑒相、環(huán)路濾波、CNR 計算等操作.由于導(dǎo)航信號跟蹤過程中,相關(guān)累加時長為1 ms,因此從通道請求信號發(fā)出到通道處理完成必須控制在1 ms 內(nèi),在1 ms 時間內(nèi)完成載波頻率控制字和碼頻率控制字的更新,從而保證跟蹤通道的穩(wěn)定運(yùn)行.仲裁模塊需確保1 ms 內(nèi)輪詢完所有的跟蹤通道,確保所有通道無遺漏.
通道仲裁模塊的時序圖如圖4 所示.這里假定并行跟蹤通道個數(shù)為64,即N=64.每個通道分配固定的環(huán)路處理時間,假定每個通道的處理時間為P=320個時鐘周期(后文會給出處理時間的確定方法).64 個跟蹤通道從0 通道開始,依次輪詢處理.
圖4 通道仲裁時序圖
某一時刻當(dāng)通道0 完成1 ms 相關(guān)運(yùn)算,發(fā)出跟蹤環(huán)路請求脈沖demo_start[0],在該請求脈沖作用下,demo_req[0]信號拉高,等待通道0 的處理時隙.在通道0 處理時隙下,產(chǎn)生通道0 的環(huán)路啟動脈沖ch_arb_start[0].圖4 中同時給出了通道1 的環(huán)路請求處理時序,這里不再贅述.所有通道的環(huán)路啟動脈沖合并產(chǎn)生總的環(huán)路處理啟動脈沖arb_start.在環(huán)路處理啟動脈沖arb_start 作用下,比特同步、CNR 計算、鑒頻鑒相、濾波等一系列環(huán)路處理被觸發(fā)啟動.
接收機(jī)相關(guān)運(yùn)算時間為1 ms,載波和碼頻率控制字更新時間也為1 ms,因此從通道發(fā)出環(huán)路處理請求,到跟蹤環(huán)路將載波跟蹤環(huán)和碼跟蹤環(huán)濾波結(jié)果反饋給跟蹤通道的最長時間也為1 ms,否則會導(dǎo)致載波和碼頻率控制字更新不及時,導(dǎo)致環(huán)路失鎖.而N個通道通過輪詢的方式依次分配環(huán)路處理時間,極限情況下是當(dāng)輪詢到某一通道時該通道發(fā)出了環(huán)路處理請求,此時需要等到下一次輪詢到該通道時,才會對本次發(fā)出的環(huán)路處理請求進(jìn)行響應(yīng),如圖5 所示.某個通道的處理時間固定為P個時鐘周期,因此極限情況下環(huán)路處理請求的響應(yīng)時間最長為(N+1)·P個時鐘周期.為了保證跟蹤環(huán)路的穩(wěn)定性及頻率控制字更新的及時性,必須保證(N+1)·P<1 ms.以58 MHz 處理時鐘為例,需要保證(N+1)·P<58 000 ms,也就是說假設(shè)FPGA 實(shí)現(xiàn)時,每個通道的固定處理時間P=320 個時鐘周期,則該系統(tǒng)最多支持N=180 個并行跟蹤通道.
圖5 極限情況下環(huán)路處理請求響應(yīng)示意圖
為實(shí)現(xiàn)衛(wèi)星信號跟蹤的閉環(huán)處理,本文跟蹤環(huán)路處理部分在FPGA 中實(shí)現(xiàn).跟蹤環(huán)路實(shí)現(xiàn)時,跟蹤環(huán)路采用二階FLL 輔助三階PLL 形式[9],環(huán)路濾波所采用的環(huán)路參數(shù)由CPU 通過總線寫入到FPGA 內(nèi)部的環(huán)路參數(shù)ARM 中,可通過CPU 進(jìn)行配置、切換,從而保證跟蹤環(huán)路的靈活性.
整個串行環(huán)路處理包括跟蹤環(huán)路參數(shù)讀取、環(huán)路控制信號產(chǎn)生、相干累加、比特同步處理、CNR 估計、鑒頻鑒相、環(huán)路濾波等過程,如圖2 所示.圖6給出了通用串行環(huán)路處理狀態(tài)跳轉(zhuǎn)示意圖以及每個狀態(tài)處理所需要的時鐘周期.跟蹤環(huán)路未啟動時,處理處于“空閑”狀態(tài),直到有通道發(fā)出環(huán)路處理請求,等待輪詢到該通道處理時隙時,跟蹤環(huán)路響應(yīng)該通道的環(huán)路處理請求.在環(huán)路處理啟動脈沖作用下,環(huán)路首先耗用12 個時鐘周期從ARM 中讀取跟蹤環(huán)路參數(shù),包括DLL、FLL(鎖頻環(huán))和PLL(鎖相環(huán))各自的相干積分時間和環(huán)路濾波帶寬,接著環(huán)路進(jìn)入“控制信號產(chǎn)生”狀態(tài),產(chǎn)生后續(xù)環(huán)路處理所需的控制信號,耗時9 個時鐘周期.之后,進(jìn)行相干累加操作,耗時25 個時鐘周期.若此時配置比特同步使能,則進(jìn)入比特同步狀態(tài)[10],否則直接進(jìn)入CNR 計算[11],比特同步和CNR 計算分別耗時88 個和24 個時鐘周期,最后環(huán)路進(jìn)入鑒頻鑒相和二階FLL 輔助三階PLL 濾波處理,分別耗時129 個和11 個時鐘周期,至此整個跟蹤環(huán)路處理流程結(jié)束,環(huán)路進(jìn)入“空閑”狀態(tài),等待下一次跟蹤環(huán)路啟動.
圖6 通用串行環(huán)路處理狀態(tài)跳轉(zhuǎn)示意圖
由上面的分析可以看到,整個跟蹤過程共耗時300 個時鐘周期,留有一定余量,因此將每個跟蹤通道的環(huán)路處理時長固定值取為P=320 個時鐘周期.
本文提出的衛(wèi)星導(dǎo)航接收機(jī)的閉環(huán)跟蹤環(huán)路方案,通過多個相關(guān)器通道分時復(fù)用跟蹤環(huán)路處理的方式,實(shí)現(xiàn)了跟蹤環(huán)路的閉環(huán)處理.在該方案下,每個跟蹤通道的環(huán)路處理時長固定為320 個時鐘周期,在58 MHz 采樣率下,可支持多達(dá)180 個并行跟蹤通道,有效節(jié)約了硬件資源,降低了成本.
基于上述給出的衛(wèi)星導(dǎo)航接收機(jī)閉環(huán)跟蹤環(huán)路設(shè)計方案,通過FPGA 進(jìn)行實(shí)現(xiàn),并進(jìn)行仿真驗(yàn)證.modelsim 仿真下的仿真結(jié)果如圖7、圖8 所示.圖7為?132 dBm 信號功率下累加量的仿真結(jié)果,其中acc_1ms_ip 為Ip 支路的累加量結(jié)果,acc_1ms_qp 為Qp 支路的累加量結(jié)果.圖8 為環(huán)路收斂過程中載波環(huán)和碼環(huán)的濾波結(jié)果,其中l(wèi)oop_carr_lpf_data 為載波環(huán)濾波結(jié)果,loop_code_lpf_data 為碼環(huán)濾波結(jié)果.由圖7、圖8 可知,環(huán)路濾波結(jié)果逐漸趨于穩(wěn)定,環(huán)路收斂良好,環(huán)路控制字在每1 ms 都得到了正確的調(diào)整,環(huán)路更新及時、穩(wěn)定,滿足設(shè)計要求.圖9 給出了跟蹤過程中CNR 估計結(jié)果,其中黑色實(shí)線、藍(lán)色實(shí)線和紅色實(shí)線分別為100 ms、1 s 和4 s 的CNR 估計結(jié)果,其方差分別為0.233 6 dB、0.033 7 dB 和0.011 2 dB.可以看出,100 ms CNR 估計由于平滑時間較短,CNR估計結(jié)果波動較大,而4 s 的CNR 估計結(jié)果由于進(jìn)行了足夠長時間的平滑,CNR 估計結(jié)果穩(wěn)定在40 dB左右.穩(wěn)定的CNR 估計結(jié)果,同樣證明了跟蹤環(huán)路設(shè)計的穩(wěn)定性和有效性.
圖7 累加量仿真結(jié)果
圖8 環(huán)路濾波仿真結(jié)果
圖9 CNR 估計結(jié)果
為了驗(yàn)證閉環(huán)跟蹤環(huán)路設(shè)計方案在動態(tài)環(huán)境下的穩(wěn)定性與適應(yīng)性,圖10 和圖11 給出了動態(tài)環(huán)境下的仿真結(jié)果.仿真過程中,設(shè)定最大加加速度為10 g、最大加速度為20 g、最大速度為70 g,信號功率為?132 dBm,仿真時長為12.6 s.圖10 為動態(tài)仿真環(huán)境下的累加量結(jié)果,紅色實(shí)線和藍(lán)色實(shí)線分別為累加量Ip 和累加量Qp.圖11(a)為碼環(huán)濾波結(jié)果,圖11(b)為載波環(huán)濾波結(jié)果,其中圖11(b)中的紅色實(shí)線為載波環(huán)濾波結(jié)果的理論值,藍(lán)色虛線載波環(huán)濾波的仿真值,可以看出在動態(tài)環(huán)境下,環(huán)路跟蹤穩(wěn)定,濾波結(jié)果正確,環(huán)路收斂迅速、穩(wěn)定,從而證明了本文提出的環(huán)跟蹤環(huán)路設(shè)計方案的有效性和實(shí)用性.
圖10 動態(tài)仿真環(huán)境下的累加量結(jié)果
圖11 動態(tài)仿真環(huán)境下的環(huán)路濾波器結(jié)果
隨著GNSS 的不斷發(fā)展,導(dǎo)航定位在日常生活、航空航天、科研等各個方面的應(yīng)用需求不斷提升,小型化、低功耗、高集成的衛(wèi)星導(dǎo)航接收機(jī)成為目前重要的導(dǎo)航技術(shù)發(fā)展方向.本文給出了一種基于SoC 的衛(wèi)星導(dǎo)航接收機(jī)閉環(huán)跟蹤環(huán)路設(shè)計方案,通過高度集成的SoC 架構(gòu)代替了傳統(tǒng)的FPGA+DSP 的架構(gòu),在FPGA 中實(shí)現(xiàn)了導(dǎo)航信號跟蹤的閉環(huán)處理,確保了跟蹤的實(shí)時性和穩(wěn)定性.在本文的SoC 架構(gòu)中,具有快速運(yùn)算能力的ARM9 處理器與具有強(qiáng)大DSP 能力的FPGA 相結(jié)合的同時,所有跟蹤通道時分復(fù)用共享一個跟蹤環(huán)路處理模塊,有效地節(jié)約了硬件資源,降低了成本,具有功耗低、體積小的特點(diǎn),同時具有較大的靈活性和可移植性,為衛(wèi)星導(dǎo)航接收機(jī)在各個領(lǐng)域的廣泛應(yīng)用提供了便捷.