摘 要: 提出了一種基于FPGA+DSP結(jié)構(gòu)的北斗一代三星無源定位系統(tǒng)設(shè)計(jì)方案。介紹了三星無源定位的原理,給出了系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)、軟件功能劃分以及功能調(diào)度方法,實(shí)際測試表明該系統(tǒng)達(dá)到了預(yù)期的設(shè)計(jì)目標(biāo)。
關(guān)鍵詞: FPGA;DSP;北斗衛(wèi)星定位系統(tǒng);無源定位
?
北斗雙星定位系統(tǒng)是我國自主開發(fā)研制的一種全天候、高精度、區(qū)域性衛(wèi)星導(dǎo)航定位系統(tǒng),可以實(shí)現(xiàn)定位、通信和定時(shí)授時(shí)三大功能,其中通信是GSP、Glonass等其他定位系統(tǒng)所不能提供的。該系統(tǒng)由空間衛(wèi)星、地面控制中心站、標(biāo)校站和用戶機(jī)四部分組成??臻g部分由三顆地球同步軌道衛(wèi)星(CEO)組成,東星、西星和一顆在軌備份星。北斗衛(wèi)星導(dǎo)航采用應(yīng)答式體制:中心站發(fā)出詢問信號(hào),用戶機(jī)響應(yīng)詢問信號(hào)向中心站發(fā)出定位申請(qǐng),中心根據(jù)時(shí)延解算出用戶位置并發(fā)射出去。該系統(tǒng)存在三大局限性:(1)所有用戶的定位處理均在地面控制中心內(nèi)完成,故對(duì)中心控制系統(tǒng)的數(shù)據(jù)處理能力要求相當(dāng)高,同時(shí)也導(dǎo)致了定位數(shù)據(jù)有較大的滯后誤差。假如中心控制系統(tǒng)被毀壞,則整個(gè)系統(tǒng)癱瘓;(2)系統(tǒng)工作在有源方式,由于用戶需要向衛(wèi)星發(fā)射定位申請(qǐng)信號(hào),用戶容易暴露目標(biāo);(3)用戶數(shù)量有限,限制了定位信息的更新頻度,不能滿足高動(dòng)態(tài)用戶的需要?;谝陨系脑颍捅仨氀芯坑脩糇灾鲗?dǎo)航定位方法,利用現(xiàn)有的“北斗一號(hào)”的三顆衛(wèi)星資源,外加高程信息,可以實(shí)現(xiàn)用戶設(shè)備的無源定位。
北斗無源定位需要同時(shí)對(duì)三顆衛(wèi)星六個(gè)波束信號(hào)進(jìn)行處理,處理數(shù)據(jù)量巨大,單純靠通用計(jì)算機(jī)很難達(dá)到實(shí)時(shí)性的要求。隨著數(shù)字信號(hào)處理器(DSP)和現(xiàn)場可編程門陣列器件(FPGA)的發(fā)展,采用DSP+FPGA架構(gòu)的數(shù)字硬件系統(tǒng)顯示出其優(yōu)越性。FPGA適用于運(yùn)算量大、算法相對(duì)簡單的場合,而DSP適合于算法結(jié)構(gòu)復(fù)雜,但涉及的數(shù)據(jù)量較小的場合。本系統(tǒng)采用了FPGA+DSP架構(gòu)的硬件設(shè)計(jì)方案,通過算法的合理分配充分地利用兩種器件的優(yōu)點(diǎn)實(shí)現(xiàn)了北斗衛(wèi)星信號(hào)的實(shí)時(shí)處理。
1 無源定位系統(tǒng)的組成
1.1 硬件系統(tǒng)構(gòu)成
該系統(tǒng)由三部分組成,如圖1所示。系統(tǒng)的信號(hào)處理流程見圖2所示。天線接收的北斗一號(hào)衛(wèi)星信號(hào)經(jīng)過射頻前端放大、變頻處理轉(zhuǎn)換為中頻信號(hào),經(jīng)AD采樣變?yōu)閿?shù)字信號(hào)后送入到由FPGA和DSP組成的數(shù)字信號(hào)處理單元,在其中完成捕獲、跟蹤、解調(diào)、幀同步以及定位結(jié)算等功能。北斗衛(wèi)星定位方式采用擴(kuò)頻通信體制,每顆衛(wèi)星都分配不同的擴(kuò)頻碼來區(qū)別。由于衛(wèi)星和用戶之間存在相對(duì)運(yùn)動(dòng),所以用戶接收信號(hào)的載波和擴(kuò)頻碼都存在多普勒頻移。捕獲就是通過將本地復(fù)制衛(wèi)星信號(hào)同接收信號(hào)在偽碼域和頻率域進(jìn)行二維搜索,從而達(dá)到兩者粗略同步,跟蹤就是在捕獲結(jié)果的基礎(chǔ)上利用延遲鎖定環(huán)(DLL)和鎖相環(huán)實(shí)現(xiàn)偽碼和載波的精確同步,根據(jù)偽碼NCO和載波NCO提取衛(wèi)星和用戶之間的距離。對(duì)精確同步后的信號(hào)進(jìn)行解調(diào)、解碼、幀同步提取描述衛(wèi)星位置的導(dǎo)航電文,利用導(dǎo)航電文計(jì)算三顆衛(wèi)星的位置,有了衛(wèi)星位置和距離就可在DSP中利用迭代算法解出用戶的位置以及用戶時(shí)鐘同北斗時(shí)間的差值,最后通過串口將定位結(jié)果傳送到PC上,信號(hào)處理部分還可以輸出基于北斗時(shí)間秒脈沖(1pps)用于其他設(shè)備時(shí)間同步。
?
?
?
1.2 處理器芯片
AD芯片采用AD公司生產(chǎn)的一種高速、高性能、低功耗8位模數(shù)轉(zhuǎn)換器。該芯片內(nèi)部集成了高性能采樣和保持放大器,輸入信號(hào)可以采用單輸入或差分輸入;處理輸入電壓峰峰在0~1V之間的模擬信號(hào);采用單+3V模擬電源和單+3V數(shù)字電源;片內(nèi)提供+1.2V~1.3V的參考電壓;最高采樣率可達(dá)100Mb/s;在100Mb/s采樣下功耗只有90mW;最大模擬輸入帶寬高達(dá)475MHz;在100Mb/s采樣下信噪比(SNR)為46.5dB。
FPGA芯片采用Altera公司近期推出的采用65nm工藝的Cyclone III 系列的EP3C120,該系列芯片是目前為止工藝最先進(jìn)、低功耗、低成本的平臺(tái)級(jí)可編程邏輯器件。EP3C120芯片內(nèi)部具有120K邏輯單元(LE)和530個(gè)用戶I/O引腳,還具有4Mbit嵌入式存儲(chǔ)器、288個(gè)嵌入式18×18乘法器、專用外部存儲(chǔ)器接口電路、4個(gè)鎖相環(huán)以及高速差分I/O等,特別適合對(duì)功耗和價(jià)格敏感的大批量應(yīng)用。
DSP采用TI公司推出的目前最為先進(jìn)的浮點(diǎn)DSP芯片TMS3206713。該芯片最高時(shí)鐘頻率達(dá)225MHz,內(nèi)部有8個(gè)并行處理單元,分為兩組。其體系結(jié)構(gòu)采用超長指令字(VLIW)結(jié)構(gòu),指令長32位,8個(gè)指令組成一個(gè)指令包,總共字長為256位。芯片內(nèi)部設(shè)置了專門的指令分配模塊,可以將每個(gè)指令包同時(shí)分配到8個(gè)處理單元運(yùn)行。TMS3206713的存儲(chǔ)器尋址空間為32位,芯片內(nèi)部集成了7Mbit片內(nèi)SRAM。該芯片利用32位的外部存儲(chǔ)器接口可以配置不同速度、不同容量和存儲(chǔ)器。TMS3206713還包含豐富的片上外設(shè),包括16通道增強(qiáng)型直接存儲(chǔ)器存取協(xié)處理器,用于控制數(shù)據(jù)的EDMA傳輸;16位主機(jī)端接口,可以將該芯片配置為主機(jī)的DSP加速器;兩個(gè)32通用定時(shí)器;兩個(gè)多通道音頻串行口以及用于芯片開發(fā)和調(diào)試的邊界掃描接口。
2 數(shù)字信號(hào)處理模塊設(shè)計(jì)
數(shù)字信號(hào)處理模塊相互間的接口關(guān)系如圖1所示。信號(hào)處理板上的晶振提供10MHz時(shí)鐘輸入到FPGA中,經(jīng)過FPGA的鎖相環(huán)(PLL)分頻后作為FPGA的工作時(shí)鐘和A/D采樣時(shí)鐘。板上A/D將8位的采樣數(shù)據(jù)送到FPGA,F(xiàn)PGA對(duì)其進(jìn)行截?cái)嗪笏腿霐?shù)字接收通道進(jìn)行處理。在FPGA的內(nèi)部實(shí)現(xiàn)了FPGA和DSP的讀寫接口電路, DSP與FPGA之間的數(shù)據(jù)交互是以32位數(shù)據(jù)總線的形式設(shè)計(jì)的,F(xiàn)PGA內(nèi)部寄存器組連接到DSP的EMIF接口的CE2空間,這樣DSP就把 FPGA當(dāng)做一塊異步SRAM來讀寫訪問。DSP的10根地址線連接到FPGA上,因而DSP 最多可以訪問FPGA內(nèi)部1 024個(gè)32位的寄存器。在FPGA內(nèi)部,通過對(duì)高5位地址線的譯碼邏輯,將1 024個(gè)地址分成32個(gè)地址段,每個(gè)地址段包括32個(gè)32位的寄存器,每個(gè)地址段分配給不同的通道,用以存儲(chǔ)累積值載波NCO、偽碼NCO以及各個(gè)信號(hào)處理模塊的狀態(tài)等。FPGA的數(shù)據(jù)上報(bào)申請(qǐng)是通過DSP的兩個(gè)中斷管腳實(shí)現(xiàn)的。其中DSP_EINT5用于指示有新的相關(guān)累積值需要上報(bào),中斷周期為31.25μs(一個(gè)偽碼周期為16kHz,由于各個(gè)通道的計(jì)算不一致,所以采用1/32K的中斷),而DSP_EINT6用于指示有新的基本觀測量需要上報(bào),中斷周期為31.25ms(一幀信息的長度為31.25ms)。
3 無源點(diǎn)位算法與實(shí)現(xiàn)
3.1 三星無源定位的原理及算法
北斗一號(hào)星座包括兩顆同步衛(wèi)星、一顆備份星,分別位于東經(jīng)80°、東經(jīng)140°和東經(jīng)110.5°。同GPS定位方式一樣,如果同時(shí)利用天上的三顆衛(wèi)星同用戶之間的距離可以聯(lián)立三個(gè)方程,但是如果需要同時(shí)求解用戶的三維位置及用戶鐘和北斗時(shí)之間的時(shí)鐘差的話,必須再建立一個(gè)方程。用戶的坐標(biāo)滿足橢球方程,因此可以通過氣壓測高的方式得到用戶的海拔高度來建立第四個(gè)方程,由于聯(lián)立的四個(gè)方程是非線性的,可以通過迭代的方式求解。
通過導(dǎo)航電文可以知道3顆衛(wèi)星的位置坐標(biāo)(xi,yi,zi),i=1,2,3和衛(wèi)星信號(hào)的發(fā)射時(shí)間tTj,根據(jù)用戶的接收時(shí)間tR,可以得到衛(wèi)星到用戶的偽距ρj=(tR-tTj)×c,j=1,2,3。設(shè)用戶的三維位置(xu,yu,zu)和偏移量tu,產(chǎn)生3個(gè)方程,組成如下方程組:
??? 如果近似知道接收機(jī)的位置,則可以將真位置(xu,yu,zu)和近似位置()之間的偏離用位移(Δxu,Δyu,Δzu)來標(biāo)記。將式(1)~(4)按泰勒級(jí)數(shù)繞近似位置展開,則可以將位置偏移(Δxu,Δyu,Δzu)表示為已知坐標(biāo)點(diǎn)和偽距測量值的線性函數(shù)。這個(gè)過程如下:
一旦算出了未知量,便可以算出用戶的坐標(biāo)(xu,yu,zu)和接收機(jī)時(shí)鐘偏移tu。只要位移(Δxu,Δyu,Δzu)是在線性化點(diǎn)的附近,這種線性化方法便是可行的??梢越邮盏奈灰迫Q于用戶的精度要求。如果位移的確超過可接受的值,便重新迭代上述過程,即以算出的點(diǎn)坐標(biāo)(xu,yu,zu)作為新的估計(jì)值,重新迭代過程。
3.2 無源定位算法的軟件實(shí)現(xiàn)
整個(gè)無源定位算法的實(shí)現(xiàn)分為FPGA處理單元和DPS處理單元兩個(gè)部分,F(xiàn)PGA實(shí)現(xiàn)六路并行的數(shù)字接收通道(北斗一號(hào)有三顆衛(wèi)星六個(gè)波束)完成載波剝離、接擴(kuò)、積分累加以及偽距、載波相位等基本觀測量的提取等。DSP主要完成偽碼捕獲、載波和偽碼跟蹤環(huán)路的濾波以及數(shù)據(jù)解調(diào)、位同步、幀同步等算法和整個(gè)軟硬件的協(xié)調(diào)功能。為了使如此之多的模塊能夠順利運(yùn)行,在DSP的主程序中采用了任務(wù)調(diào)度的機(jī)制,以兩個(gè)中斷時(shí)間間隔為基準(zhǔn),根據(jù)信號(hào)處理的流程在不同時(shí)刻拋出各種不同的優(yōu)先級(jí)的任務(wù),主程序不停地查詢?nèi)蝿?wù)隊(duì)列,如果隊(duì)列中有多個(gè)任務(wù)等待處理,則取出優(yōu)先級(jí)高的進(jìn)行處理。整個(gè)信號(hào)處理的流程如圖3。系統(tǒng)上電后首先進(jìn)行DSP和FPGA的初時(shí)化,然后對(duì)一顆衛(wèi)星某個(gè)波束進(jìn)行處理通道分配,DSP程序進(jìn)入任務(wù)調(diào)度狀態(tài),F(xiàn)PGA根據(jù)設(shè)置的載波NCO參數(shù)、偽碼NCO參數(shù)產(chǎn)生本地復(fù)制的衛(wèi)星信號(hào),將該復(fù)制信號(hào)同實(shí)際信號(hào)進(jìn)行相關(guān)累積運(yùn)算,31.25μs后產(chǎn)生5號(hào)中斷通知DSP某一通道中存在新的累積值,同時(shí)FPGA重新開始下一個(gè)相關(guān)累積運(yùn)算,DSP得到新的累積值后開始順序進(jìn)行捕獲、跟蹤和定位解算,同時(shí)拋出Viterbi譯碼、串口通信、組建導(dǎo)航信息和提取命令四個(gè)任務(wù);31.25ms后產(chǎn)生6號(hào)中斷通知DSP讀取偽距、載波相位等觀測量,同時(shí)拋出分配通道、定位解算和發(fā)送消息任務(wù)。整個(gè)系統(tǒng)在DSP的調(diào)度下循環(huán)往復(fù)運(yùn)行。
??? FPGA算法設(shè)計(jì)采用VHDL在Altera公司的Quartus.II.v6.0集成開發(fā)環(huán)境下成功實(shí)現(xiàn);DSP算法設(shè)計(jì)采用C語言在TI公司的CCS3.1集成開發(fā)環(huán)境下成功實(shí)現(xiàn)。整個(gè)系統(tǒng)聯(lián)機(jī)運(yùn)行穩(wěn)定,滿足設(shè)計(jì)要求。
系統(tǒng)基于軟件無線電的概念設(shè)計(jì)了一個(gè)通用的硬件平臺(tái),只要修改相應(yīng)的算法就可以實(shí)現(xiàn)利用GPS信號(hào)定位。軟件上采用任務(wù)調(diào)度的方式,利用累積值中斷和測量值中斷拋出不同的任務(wù)。如果需要增加新的功能,只需要添加一個(gè)新的任務(wù)即可。該系統(tǒng)在實(shí)際的測試中,冷啟動(dòng)首捕時(shí)間≤2s,失鎖重捕時(shí)間≤1s,定位精度小于100m,測速精度小于2m,滿足系統(tǒng)的設(shè)計(jì)要求。
參考文獻(xiàn)
[1] 張常云.三星定位原理研究.航空學(xué)報(bào),2001,(2).
[2] 孫國良,丁子明.雙星系統(tǒng)工作方式改進(jìn)的探討.電子學(xué)報(bào),2001,(9).
[3] 盧子建,李德華.FPGA+DSP實(shí)時(shí)三維圖像信息處理系統(tǒng).電子技術(shù)應(yīng)用,2007,(3).
[4] 陸海東,吳明贊.基于DSP+FPGA結(jié)構(gòu)的小波圖像處理系統(tǒng)設(shè)計(jì).電子技術(shù)應(yīng)用,2006,(3).
[5] TI Inc.TMS3206713 Datasheet,2005.
[6] AD Inc.AD9283 Datasheet,2001.
[7] Altera Inc.Cyclone III Datasheet,2007.