隨著GPS(Global Positioning System)技術的不斷發展和成熟,其全球性、全天候、低成本等特點使得GPS接收機的用戶數量大幅度增加,應用領域越來越廣。但由于定位過程中各種誤差源的存在,單機定位精度受到影響。目前常從兩個方面考慮減小誤差提高精度:①用高精度相位天線、差分技術等通過提高硬件成本獲取高精度;②針對誤差源用濾波算法從軟件方面實現精度提高。兩種方法中,后者相對于前者在滿足精度要求的前提下節約成本,而且便于系統融合,是應用于GPS定位的系統中更有前景的方法。但由于在系統中實現定位濾波算法需要時間,傳統CPU往往不能滿足實時性的要求,而FPGA以其快速并行計算越來越受到青睞。
本文在FPGA平臺上,根據“先時序后電路”的設計思想,由同步沒計方法以及自頂向下和自下而上的混合設計方法實現系統的總體設計。從GPS-OEM板輸出的定位信息的接收到定位結果的坐標變換,最終到kalman濾波遞推計算減小定位誤差,實現實時、快速、高精度的GPS定位信息采集處理系統,為GPS定位數據的處理方法做了新的嘗試,為基于FPGA的GPS嵌入式系統的開發奠定了基礎。具體工作如下:
基于FPGA設計了GPS定位數據的正確接收和顯示,以及經緯度到平面坐標的投影變換。根掘GPS輸出信息標準和格式,通過串口接收模塊實現串口數掘的接收和經緯度信息提取,并通過LCD實時顯示。在提取信息的同時將數據格式由ASCⅡ碼轉變為十進制整數型,實現利用移位和加法運算達到代替乘法運算的效果,從而減少資源的利用率。在坐標轉換過程中,利用查找表的方法查找轉化時需要的各個參數值,并將該參數先轉為雙精度浮點小數,再進行坐標轉換。根據高斯轉化公式的規律將公式簡化成只涉及加法和乘法運算,以此簡化公式運算量,達到節省資源的目的。
卡爾曼濾波器的實現。首先分析了影響定位精度的各種誤差因素,將各種誤差因素視為一階馬爾科夫過程的總誤差,建立了系統狀態方程、觀測方程和濾波方程,并基于分散濾波的思想進行卡爾曼濾波設計,并通過Matlab進行仿真。結果表明,本文設計的卡爾曼濾波器收斂性好,定位精度高、估計誤差小。在仿真基礎上,實現基于FPGA的卡爾曼濾波計算。在滿足實時性的基礎上,通過IP核、模塊的分時復用和樹狀結構節省資源,實現數據卡爾曼濾波,達到提高數據精度的效果。
設計中以Xilinx公司的Virtex-5系列的XC5VLX110-FF676為硬件平臺,采用Verilog HDL硬件描述語言實現,利用Xilinx公司的ISE10.1工具布局布線,一共使用44438個邏輯資源,時鐘頻率達到100MHZ以上,滿足實時性信號處理要求,在保證精度的前提下達到資源最優。Modelsim仿真驗證了該設計的正確性。
標簽:
FPGA
GPS
定位
信息處理
上傳時間:
2013-04-24
上傳用戶:二驅蚊器