基于FPGA和DSP的衛(wèi)星導(dǎo)航接收機(jī)測(cè)試平臺(tái)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
衛(wèi)星導(dǎo)航接收機(jī)是衛(wèi)星導(dǎo)航系統(tǒng)的用戶終端,用以給用戶提供精確的經(jīng)度、緯度、高度和速度等信息。現(xiàn)在,衛(wèi)星導(dǎo)航接收機(jī)已經(jīng)應(yīng)用于航空,交通管理,石油等各個(gè)領(lǐng)域,針對(duì)衛(wèi)星導(dǎo)航接收機(jī)的研究也越發(fā)深入。
本文介紹了一種以 FPGA和 DSP為主處理器的衛(wèi)星導(dǎo)航接收機(jī)硬件平臺(tái)。在該平臺(tái)上不僅可以驗(yàn)證針對(duì)現(xiàn)在所有衛(wèi)星導(dǎo)航系統(tǒng)(GPS,Glonass,伽利略,北斗)的基帶信號(hào)處理算法和導(dǎo)航解算算法,同時(shí)也可以實(shí)現(xiàn)完整的單頻、雙頻或者兼容接收機(jī)。
1 硬件設(shè)計(jì)
1.1 硬件平臺(tái)組成硬件平臺(tái)結(jié)構(gòu)框圖如圖 1所示。
500)this.style.width=500;" border="0" />
該平臺(tái)以兩片 FPGA芯片和兩片 DSP芯片為主處理器。經(jīng)過(guò) AD采樣后的信號(hào)直接進(jìn)入FPGA,此后所有對(duì)信號(hào)的處理均由軟件來(lái)實(shí)現(xiàn)。如此可以充分利用 FPGA和 DSP的重復(fù)燒寫(xiě)及在線調(diào)試能力,
盡量減少對(duì)硬件的依賴程度,從而增加平臺(tái)的靈活性。另外,每片 DSP都外接了 Flash和 SDRAM。由于 Flash掉電數(shù)據(jù)不會(huì)丟失,可以在 Flash內(nèi)保存程序及數(shù)據(jù),功能有如 PC機(jī)上的硬盤,而外接的 SDRAM是 DSP的擴(kuò)展Ram,當(dāng) DSP運(yùn)行大型程序(如導(dǎo)航解算程序)以致 DSP的內(nèi)部 Ram不夠用時(shí),可以將程序放到外接的 SDRAM內(nèi)運(yùn)行。
平臺(tái)上還有多個(gè)串口,可以接顯控等設(shè)備。兩個(gè) Arinc-429接口可以接慣導(dǎo)等航空設(shè)備。JTAG是在線調(diào)試接口。時(shí)鐘模塊提供系統(tǒng)的工作時(shí)鐘。
只要連接上針對(duì)不同衛(wèi)星導(dǎo)航系統(tǒng)的射頻模塊和天線,該平臺(tái)就可以成為一個(gè)完整的接收機(jī)。
1.2 芯片介紹
FPGA采用 Altera公司 CycloneII系列中的 EP2C70F672。Altera公司的 CycloneII系列 FPGA是業(yè)界成本及功耗最低的 FPGA之一,采用 90nm工藝制造。 EP2C70F672是 CycloneII系列中的最高型號(hào),擁有 7萬(wàn)個(gè)邏輯單元, 1Mbits內(nèi)部 RAM,300個(gè) 9×9乘法器,4個(gè) PLL環(huán)和 422個(gè) I/O接口,最高數(shù)據(jù)率可以達(dá)到 330Mbps。
DSP采用德州儀器公司(TI)的C6000系列中的TMS320C6713。它是TI開(kāi)發(fā)的基于甚長(zhǎng)指令(VILW)結(jié)構(gòu)浮點(diǎn)運(yùn)算數(shù)字信號(hào)處理芯片,每周期可以執(zhí)行 8條32位指令,工作頻率最高可以達(dá)到300MHz。擁有 256K字節(jié)內(nèi)部RAM,16個(gè)通道的增強(qiáng) DMA控制器,32bits外部存儲(chǔ)器接口,兩個(gè)多通道緩沖口。
模數(shù)轉(zhuǎn)換芯片選用模擬器件公司(ADI)的 AD9288Bst-100。該芯片的采樣率最高可以達(dá)到100Msps,正交雙通道 8bits輸出。由于其低功耗特性,被廣泛應(yīng)用于手持設(shè)備等對(duì)功耗要求較高的場(chǎng)合。
Flash采用SST公司的 SST39VF800,容量為 512K*16。SDRAM采用 Micron公司的 MT48LC4M32B,存儲(chǔ)空間為4M*32。
2軟件測(cè)試
在該硬件平臺(tái)上用 Verilog語(yǔ)言和 C語(yǔ)言編寫(xiě)了簡(jiǎn)單的 GPS衛(wèi)星捕獲跟蹤程序,以驗(yàn)證其功能。程序模塊劃分如圖 2所示。在 FPGA內(nèi)實(shí)現(xiàn)了數(shù)字下變頻,捕獲和跟蹤通道,在 DSP內(nèi)實(shí)現(xiàn)跟蹤環(huán)
500)this.style.width=500;" border="0" />
路的鑒頻鑒相算法以及環(huán)路濾波器。經(jīng)過(guò) A/D采樣的 8bit信號(hào)通過(guò)下變頻模塊后輸出 I/Q兩路正交基帶信號(hào)。I/Q基帶信號(hào)分別進(jìn)入捕獲模塊和跟蹤通道模塊。在成功捕獲到信號(hào)后轉(zhuǎn)入跟蹤。跟蹤通道每次輸出的相關(guān)累加值經(jīng)過(guò) DSP接口模塊傳給 DSP。DSP利用接收到的相關(guān)峰值進(jìn)行鑒相鑒頻和濾波,并將濾波結(jié)果反饋給 FPGA形成閉環(huán)。 [!--empirenews.page--]
2.1 捕獲
為了讓跟蹤環(huán)路正常跟蹤信號(hào),必須先通過(guò)調(diào)整本地載波和偽碼使得他們與接收到的載波和偽碼粗略對(duì)準(zhǔn),這就是捕獲。粗略對(duì)準(zhǔn)的原則是捕獲后的本地載波和信號(hào)載波頻差在載波跟蹤環(huán)的跟蹤范圍內(nèi),本地碼和信號(hào)碼的相差在碼跟蹤環(huán)的跟蹤范圍內(nèi)。因此捕獲就是一個(gè)在時(shí)域和頻域的二維搜索過(guò)程。
信號(hào)的捕獲采用最簡(jiǎn)單的單積分滑動(dòng)相關(guān)的方法,原理如圖 3所示。為了提高捕獲速度和精度,頻率的搜索采用大步進(jìn)和小步進(jìn)結(jié)合的方法。即先用大步進(jìn)粗略捕獲,然后在捕獲到的頻點(diǎn)上進(jìn)行小步進(jìn)精確調(diào)整。
500)this.style.width=500;" border="0" />
2.2 跟蹤
圖 2中的跟蹤通道、DSP接口、DSP內(nèi)的鑒頻器、鑒相器和濾波器組成了完整的跟蹤環(huán)路。 整個(gè)跟蹤環(huán)路的原理框圖如圖4所示。圖中的乘法器和積分器實(shí)際上是組成了一個(gè)相關(guān)器。載波NCO 和碼 NCO分別產(chǎn)生本地載波和本地偽碼時(shí)鐘。碼發(fā)生器產(chǎn)生本地超前路( Eearly),當(dāng)前路( Prompt)和滯后路(Late)偽碼。FPGA在每次相關(guān)累加結(jié)束后向 DSP發(fā)出中斷請(qǐng)求,送出超前、滯后和當(dāng)前路各自的相關(guān)累加值。DSP響應(yīng)中斷,用超前和滯后路的相關(guān)值進(jìn)行偽碼相位的鑒別,當(dāng)前路相關(guān)值用于載波的鑒頻和鑒相。提取出的偽碼、載波誤差信號(hào)經(jīng)過(guò)適當(dāng)?shù)臑V波器后轉(zhuǎn)換成相應(yīng)的頻率控制字,反饋到 FPGA調(diào)整載波 NCO和碼 NCO,完成碼跟蹤和載波跟蹤環(huán)路的閉環(huán),從而對(duì)接收信號(hào)進(jìn)行跟蹤。
500)this.style.width=500;" border="0" />
圖 5為用設(shè)計(jì)的程序捕獲跟蹤 GPS的 PRN01衛(wèi)星得到的 I/Q兩路相關(guān)峰值。
500)this.style.width=500;" border="0" />
3 結(jié)論
雖然該平臺(tái)采用了雙 FPGA加雙 DSP的四核設(shè)計(jì),但是四個(gè)主處理器之間可以互相通信,因此當(dāng)驗(yàn)證高性能接收機(jī)而需要大量的硬件資源時(shí),可以將兩片 FPGA合而為一作為一片 FPGA使用。如將圖 2中的捕獲模塊和其他模塊放在不同的 FPGA內(nèi)實(shí)現(xiàn)。而當(dāng)驗(yàn)證兼容接收機(jī)或者雙頻點(diǎn)接收機(jī)時(shí),又可以將平臺(tái)一分為二,當(dāng)成兩個(gè)基于 FPGA+DSP的硬件平臺(tái),而且兩個(gè)平臺(tái)之間還可以通過(guò)數(shù)據(jù)交互建立聯(lián)系。