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