捷聯慣性組合導航系統是一種完全自主的定位導航系統,它可以連續實時地提供位置、速度和姿態信息,短時精度較高,但誤差隨時間增長而不斷積累。GPS導航系統能夠全天候提供信息,且誤差不隨時間積累。因此,將它們組合起來,利用卡爾曼濾波技術進行融合,可以發揮各自優勢,提高導航精度。由于捷聯系統沒有穩定的物理平臺,慣性器件測量的數值不能直接進行導航計算,必須先經過大量、實時、精確的數學運算建立起數學平臺,才能得到導航參數,在計算上較復雜,對計算機的性能要求高。為減小體積、重量和增加可靠性。文中提出利用PC104嵌入式工控機和FPGA設計一種雙CPU結構的捷聯慣性組合導航系統。系統中PC/104總線結構的嵌入式工控機來承擔姿態解算任務,采用FPGA控制組合系統的采集模塊,并利用其內部資源,設計了雙口RAM模塊、串口接口模塊等。雙CPU系統使PC104可以專注于解算,保證了系統的實時性。
1 捷聯慣性組合導航系統總體方案
捷聯慣導系統是將加速度計和陀螺儀沿載體坐標系安裝,在進行導航參數計算時,需要是導航坐標系中的量。因此應先將慣性器件測得的比力和角加速度誤差補償后送入計算機進行實時計算,可以得到將比力從載體坐標系轉換到導航坐標系的姿態矩陣。通過姿態矩陣可以確定載體的姿態信息。姿態矩陣常用的即時修正方法有歐拉角法、方向余弦法和四元數法,設計采用四元數法。為進行導航解算,選取地理坐標系為導航坐標系,三軸分別指向東向、北向和天向。
根據捷聯慣性組合導航系統的特點,提出采用PC104總線嵌入式工控機的捷聯慣性組合導航系統的硬件設計方案,系統包括數據采集和數據解算模塊。數據采集模塊由FPGA負責控制A/D轉換將陀螺儀和加速度計輸出的模擬信號轉換為數字信號。在FPGA內部開辟一塊存儲單元,FPGA讀取A/D的轉換結果存放在內嵌的雙口RAM中。FPGA通過雙口RAM與PC104進行實時通信,FPGA把采集的數據進行處理后送入雙口RAM中,然后發中斷信號給PC104,通知其已經有數據可以處理。PC104收到中斷信號后,將雙口RAM中的數據取走進行處理和解算。FPGA和PC104同時工作,提高了系統的運行速度。系統要求數據采樣頻率為1kHz,數據解算頻率為100Hz,外加時鐘頻率為40MHz。
圖1 系統總體框圖
2 系統硬件設計
數據采集部分采用Altera公司的EP2C35F672,它是CycloneⅡ系列產品之一,一個LAB中有16個LE,增加了乘法器模塊,增強了DSP處理能力。由33 216個LE組成,片上有105個M4K RAM塊,片內有35個18 x 18個硬件乘法器,片上有4個PLL,可以實現多個時鐘域。PC104總線結構嵌入式工控機具有功耗低、單5 V供電、工作溫度范圍寬、可靠性高、抗震性好、結構小巧緊湊、浮點運算能力強、運算速度快等顯著特點。最適合在嵌入式控制系統中應用。因此它是開發導航計算機的理想方案。
2.1 數據采集模塊
數據采集部分由慣性測量元件、GPS接收機、信號調理部分、A/D轉換電路和FPGA控制器等構成。在這部分中,FPGA主要完成同步產生A/D轉換的時序,數字濾波和存儲經A/D轉換后的陀螺和加表的數據。慣性測量元件主要包括3個加速度計和3個陀螺儀,正交安裝于坐標系的X軸、Y軸和Z軸,用于提供載體在載體坐標系上的比力和角速度,采用模擬信號輸出,加速度計采用差分輸出。由于慣性器件安裝在一個密閉的容器中,受溫度影響也比較大,必須采集溫度信號對慣性器件進行補償。A/D轉換電路采用TI公司的A/D芯片ADS1258,ADS1258是一個靈活的、24位低噪聲最優化的、快速的、多通道的、高分辨率的模擬/數字轉換芯片。24位的精度是0.000 000 06,其理論值較16位A/D有較大的提高。根據芯片資料,ADS1258中的轉換器可以提供最大23.7ksample/s的通道掃描速度,可以在<700μs的時間里完成一個完整的16通道掃描。模擬電壓輸入范圍為±2.5V。
數據采集部分的功能之一是將加速度計和陀螺儀輸出的模擬信號轉換為數字信號,并將這一數字信號送入導航計算機。為提高系統的精度,在A/D轉換前要先將加速度計和陀螺儀輸出的信號進行放大,通過減法電路和低通濾波電路進行調理,然后再通過FPGA控制AD1258進行轉換。讀取轉換數據,利用FPGA內部邏輯設計FIR數字濾波器,將處理后的數據送入FPGA內部的雙口RAM,向主CPU發出數據準備好中斷。這些由FPGA控制,保證了PC104實時處理和接收到的數據。用FPGA這種純硬件結構實現的數據采集系統比用MCU等器件用軟件控制的數據采集系統速度快,且容易修改。
采集模塊的另一個功能是進行GPS數據采集。GPS輸出經度、緯度和速度等信息。設計采用Jupitre21 GPS OEM模塊,體積小、重量輕、功耗低,首次定位和重新捕獲時間短,具有強大的抗干擾、抗遮擋能力。OEM板的輸入、輸出格式均按RS232串口通信協議,設定為8個數據位,1個起始位,1個停止位,無奇偶校驗。GPS接收機數據輸出通過RS-232串行口,它信號輸出的頻率比較低,大約每秒更新一次,接收的數據要完成解碼才能用于組合系統的修正。本系統用FPGA實現RS232接口,用于接收GPS的數據。
圖2 數據采集原理圖
2.2 導航解算模塊
導航解算模塊是捷聯慣性組合導航系統的核心。該部分的功能主要完成姿態矩陣的即時修正、位置姿態信息的求取和卡爾曼濾波等運算。要求導航計算機對浮點數據的處理能力強,并且整個導航計算中涉及大量的矩陣計算,運算量較大。PC104采用中斷機制工作,需要處理FPGA數據準備好中斷請求、導航計算、濾波計算。
2.3 FPGA和PC104之間的通信
設計采用兩個控制器結構,PC104要進行導航解算,就要將FPGA采集處理后的數據接收。若通過FIFO來傳遞數據,由于FIFO的先進先出原則,則存在一個采用頻率和解算速率的配合問題。而系統又要求較好的實時性,即每次要進行解算都能立即得到最新的實時數據。雙口RAM方式無論是通信速率還是硬件實現的難易程度上都是處理器問高速通信的最佳選擇。系統采用雙口RAM實現FPGA和PC104之間的數據共享。
雙口RAM存儲器具有兩套獨立的讀寫控制線、地址線和數據線。可以自由訪問,互不干擾。用FPGA實現雙口RAM的功能可以較好地解決并行性和速度問題,而且其靈活的可配置特性使得基于FPGA的雙口RAM易于進行修改、測試及系統升級,可降低設計成本,縮短開發周期,減小了導航計算機的體積。因此本設計直接采用FPGA構建雙口RAM,同時進行讀寫操作控制。PC104總線上的I/O地址范圍為0000H~FFFFH,選取地址段0200H~027FH作為雙口RAM的地址段,共128個地址單元。FPGA與PC104引腳電平不同,FPGA的I/O口供電電壓為3.3 V,PC104的總線為5 V TTL電平。因此,為使系統安全穩定地工作,需要一個電平轉換器件。在PC104和FPGA之間使用起電平轉換作用的CPLD,同時由它產生地址譯碼電路。
圖3 PC104和FPGA信號連接圖
3 軟件設計
軟件設計以滿足導航參數解算為主,采集模擬的慣性測量器件及GPS數據,通過雙CPU之間的軟硬件形成呼叫和應答機制。由FPGA負責加速度計和陀螺儀輸出信息的采集及數據處理,采用FPGA接收讀取GPS的數據;PC/104工控機負責對FPGA采集到的數據進行解算。對控制采樣及數據處理模塊的軟件設計主要是控制A/D轉換,構建內部存儲器、數字濾波器和串行接口等,采用硬件描述語言Verilog HDL.組合系統的解算由PC104完成,對PC104的軟件設計采用C語言在DOS系統下在Turbo C中編寫,導航解算應有不同的解算周期。因此,導航計算機系統軟件設計分為FPGA軟件和PC/104主控系統軟件兩部分。
圖4 組合導航系統軟件流程圖
3.1 FPGA軟件設計
FPGA是按照主CPU的指令來執行對加速度計的數據采集和數據處理任務,然后將預處理的結果寫入雙端口RAM,供PC/104使用。FPGA內部的邏輯塊包括時鐘、A/D控制器、數字濾波器、雙口RAM、接口單元等。數字濾波器的設計直接采用設計好的FIR濾波器的IP核。通過Verilog HDL語言對雙口RAM的描述可以在FPGA內部實現雙口RAM,并且進行讀寫控制。雙口RAM在使用上需要注意的問題就是,可能會發生共享沖突,出現寫入值和讀出值出現混亂的狀態。設計采用文獻的方法設計雙口RAM沖突解決方案。
在FPGA內部實現一個串口模塊,采用GPS接收機默認的4 800 bit·s-1,首先將系統的40 MHz時鐘進行分頻,一般對數據進行過采樣,以便正確接收GPS接收機的數據。取過采樣頻率為波特率的8倍。有了4 800×8 Hz的頻率之后,進行串并轉換。為防止毛刺信號被誤認為是起始信號,定義一個2位的計數器進行判斷起始位4次。接著用狀態機實現對起始位、數據和停止位的檢測,就可進行數據的接收。通過Verilog HDL語言編寫接收GPS數據程序,采用狀態機方法檢測GPS數據起始符,本系統采用$GPRMC,(UTC時間),A,(緯度信息),N,(經度信息),E,(速度信息),289.0,020710,10.3,W×5B協議,本系統只用位置和速度信息對捷聯慣導系統進行校正。接收到的GPS數據為對應ASCII值的二進制數。
3.2 PC104軟件設計
數據解算采用PC104為核心處理器。采集的陀螺和加速度計的信息經過誤差補償后,將陀螺儀測量的角速度數據進行解算,得到姿態矩陣,再用姿態矩陣將沿載體坐標系的加速度測量的比力信息轉換到導航坐標系上,進行積分運算,同時根據姿態矩陣中的元素可以解算出姿態角信息。再用GPS測量得到的位置、速度信息和捷聯慣導系統解算得到的位置、速度的差值作為觀測量,通過卡爾曼濾波,修正導航系統的參數,為慣性元件提供誤差修正,以提高導航精度。將得到的位置、速度、姿態等信息輸出,進行控制載體。PC104對雙口RAM的端口地址讀/寫操作的函數為inport(int protid)和outport(int portid,int value),protid為端口地址,value為要發送數據。
圖5 雙口RAM的RTL圖
4 結束語
文中以PC104為核心處理器,輔以FPGA控制采集和A/D轉換,形成雙CPU協作模式,通過雙口RAM進行通信,主CPU可以專心進行導航計算,避免了因數據采集工作而降低效率。雙CPU并行工作,相互配合,大大地提高了系統的整體效率。系統體積小、精度高、結構簡單、功耗小。將導航參數通過串口輸出,可應用于船舶、車輛、飛機等,能滿足導航和定位的要求。
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603037 -
計算機
+關注
關注
19文章
7489瀏覽量
87870 -
可編程邏輯
+關注
關注
7文章
515瀏覽量
44083
發布評論請先 登錄
相關推薦
評論