包 超, 郭美鳳, 周 斌, 劉 剛
(清華大學(xué) 精密儀器系,北京 100084)
在捷聯(lián)慣導(dǎo)系統(tǒng)一般應(yīng)用的陀螺器件有光纖陀螺[1]、激光陀螺[2]、MEMS陀螺[3,4]等,近年來,MEMS技術(shù)的發(fā)展使得捷聯(lián)慣導(dǎo)系統(tǒng)向著體積更小、質(zhì)量更輕、成本更低的方向發(fā)展?;贛EMS技術(shù)的微慣性測(cè)量單元(MEMS inertial measurement unit,MIMU)不僅可被用在軍用制導(dǎo)炸彈、手持制導(dǎo)武器上,在民用的車載定位導(dǎo)航和小型無人機(jī)導(dǎo)航等方面也有著巨大潛力。MIMU/GPS組合導(dǎo)航系統(tǒng)精度和實(shí)用性不斷加強(qiáng),國外大學(xué)實(shí)驗(yàn)室和公司的先進(jìn)產(chǎn)品質(zhì)量已在100g以內(nèi),系統(tǒng)集成度很高,例如:美國Crossbow公司的MEMS IMU/GPS組合導(dǎo)航系統(tǒng)—Nav440,其質(zhì)量0.58 kg,功率只有4 W,它的定位精度為3 m,姿態(tài)測(cè)量精度均方根(root mean square,RMS)為0.4°;德國的iMAR公司的iVRU—CB—M和iVRU—SNC的質(zhì)量只有550 g,功率只有6 W,的定位精度為5 m,姿態(tài)測(cè)量精度RMS為0.5°。相比之下,國內(nèi)組合導(dǎo)航系統(tǒng)有的仍處在分立傳感器程度[5~7],大部分體積大、質(zhì)量重,不適于手持制導(dǎo)或小型無人機(jī)導(dǎo)航方面。
MIMU/GPS組合導(dǎo)航系統(tǒng)包括4個(gè)部分,其中嵌入式電源模塊為MIMU、組合導(dǎo)航計(jì)算模塊和GPS接收機(jī)模塊提供電源,MIMU和GPS接收機(jī)模塊分別通過標(biāo)準(zhǔn)RS—422和RS—232與計(jì)算模塊進(jìn)行通信,組合導(dǎo)航計(jì)算模塊接收到IMU和GPS的測(cè)量信息,采用基于卡爾曼濾波的觀測(cè)控制器方式進(jìn)行初始對(duì)準(zhǔn),之后采用松組合方式進(jìn)行導(dǎo)航解算,并通過標(biāo)準(zhǔn)RS—422串口和上位機(jī)監(jiān)測(cè)軟件進(jìn)行通信。上述4個(gè)部分集合成一體,系統(tǒng)框圖如圖1所示。
圖1 嵌入式組合導(dǎo)航系統(tǒng)框圖
組合導(dǎo)航系統(tǒng)采用了U-blox公司的LEA_6TGPS接收機(jī),該種接收機(jī)尺寸只有17.0 mm×22.4 mm×2.4 mm,相比其他公司的接收機(jī)板卡體積縮小50 %。該接收機(jī)模塊能夠提供位置、速度和時(shí)間等解算結(jié)果,也能提供如偽距、載波相位和多普勒頻率等原始數(shù)據(jù)。它的位置測(cè)量精度為2.5 m,速度測(cè)量精度為0.1 m/s,可以承受4gn的動(dòng)態(tài)性,且價(jià)格便宜。該模塊既可按照標(biāo)準(zhǔn)NMEA協(xié)議對(duì)外輸出也可以輸出U-blox獨(dú)有的UBX協(xié)議,為其設(shè)計(jì)的外圍天線接口電路與標(biāo)準(zhǔn)RS—232串口電路如圖2所示。
圖2 GPS接收機(jī)模塊外圍電路
組合導(dǎo)航系統(tǒng)采用清華大學(xué)導(dǎo)航中心自主設(shè)計(jì)的MIMU,它由三軸MEMS加速度計(jì)和三軸MEMS陀螺組成,體積小、質(zhì)量輕,可測(cè)量載體的加速度和旋轉(zhuǎn)角速度,它的測(cè)量精度直接影響到組合系統(tǒng)初始對(duì)準(zhǔn)和導(dǎo)航解算精度。
組合導(dǎo)航系統(tǒng)中采用的電源模塊具有輸入防反接功能,轉(zhuǎn)換效率為70 %,符合GJB 181所規(guī)定的B類直流用電設(shè)備要求,同時(shí)符合GJB 151A所規(guī)定的電磁兼容性要求。電源模塊采用單+28 V直流電源供電,提供5路輸出。
組合導(dǎo)航計(jì)算模塊采用DSP+FPGA設(shè)計(jì)方式,此種方法運(yùn)算能力高、功耗低,且易于做系統(tǒng)集成。其中,DSP選用的是TI公司的TMS320C6713B,該芯片是基于超長指令字結(jié)構(gòu)的高性能32位浮點(diǎn)DSP,工作主頻最高可達(dá)300 MHz,具有豐富的中斷外設(shè)資源,能夠完成初始對(duì)準(zhǔn)和組合導(dǎo)航的計(jì)算。FPGA芯片選用的是Xilinx公司Spartan 3系列的XC3S400,該芯片是Spartan3系列中門數(shù)較低的一種,它功耗較低且價(jià)格便宜,雖然邏輯門數(shù)較少,但足以完成DSP與其他傳感器之間的通信工作。DSP+FPGA組合導(dǎo)航計(jì)算模塊如圖3所示。
圖3 DSP+FPGA組合導(dǎo)航計(jì)算模塊框圖
1)頻率設(shè)置
系統(tǒng)采用20 MHz的外部振蕩器為芯片提供時(shí)鐘,利用C6713內(nèi)部的PLL(可編程鎖相環(huán)控制器)進(jìn)行分頻,外部的20 MHz時(shí)鐘經(jīng)過15倍頻變?yōu)?00 MHz供DSP芯片工作,然后經(jīng)過2分頻的變?yōu)?50 MHz供片上外設(shè)工作,經(jīng)過3分頻的變?yōu)?00 MHz連接到FPGA芯片128管腳使其工作。
2)中斷系統(tǒng)
C6713的中斷向量表為int0~int13,其中,int0中斷優(yōu)先級(jí)最高,為系統(tǒng)復(fù)位中斷,int13中斷優(yōu)先級(jí)最低。GPIO管腳設(shè)置為輸入時(shí)可以產(chǎn)生CPU中斷或EDMA同步事件,將GPINT[4∶6]產(chǎn)生的GPU中斷映射為int4~int6,其中,GPINT4為GPS中斷,即當(dāng)GPS向DSP發(fā)送一包正確數(shù)據(jù)后,F(xiàn)PGA相應(yīng)管腳會(huì)產(chǎn)生低電平觸發(fā)中斷服務(wù)子程序進(jìn)行讀?。煌?GPINT5為MIMU中斷,即從MIMU接收測(cè)量數(shù)據(jù);GPINT6為上位機(jī)中斷,即接收上位機(jī)給出的指令。
3)地址分配
EMIF(external memory interface)是DSP片上的外部存儲(chǔ)器接口,共有CE0~CE3 4個(gè)空間,可以外接各種存儲(chǔ)器如SDRAM,SRAM,F(xiàn)LASH,F(xiàn)IFO等,其具有32位數(shù)據(jù)線支持8,16,32 bit等多種數(shù)據(jù)寬度。EMIF具有22根地址線,當(dāng)外部連接32 bit存儲(chǔ)器時(shí)用到A[21∶2]。4個(gè)空間的起始地址分別為:0x8000000,0x9000000,0xA000000,0xB000000,每個(gè)空間大小為256 M。
本系統(tǒng)設(shè)計(jì)中CE1空間外接FLASH,起始地址為:0x9000000,用于存放系統(tǒng)程序,并完成系統(tǒng)上電自舉等功能。CE2空間外接FPGA,起始地址為:0xA000000,該空間被分配成6部分,分別用于與GPS,MIMU和上位機(jī)的發(fā)送接收緩存RAM,CE0和CE3空間暫時(shí)保留。
FPGA通信模塊設(shè)計(jì)是為了解決各個(gè)傳感器與DSP通信速率不同的問題,各傳感器對(duì)外通信采用標(biāo)準(zhǔn)串口協(xié)議均比較慢,而DSP通過EMIF發(fā)送接收數(shù)據(jù)很快,所以,FPGA通信模塊起到了編解碼和數(shù)據(jù)緩存的作用。它包括以下功能單元:
1)片選檢測(cè)單元:檢測(cè)DSP的TCE2管腳是否出現(xiàn)上升沿,如果出現(xiàn)上升沿則說明DSP要通過FPGA向傳感器發(fā)送數(shù)據(jù)。
2)32 bit雙口RAM:每個(gè)RAM的大小為M,共有6個(gè)依次存放上位機(jī)、MIMU和GPS的發(fā)送和接收數(shù)據(jù)包。
3)多路通信譯碼單元:地址線的高9位連入譯碼實(shí)現(xiàn)多路通信的區(qū)分,其中,向上位機(jī)發(fā)送的起始地址為0xA0000000,向IMU發(fā)送的起始地址為0xA0000800,向GPS發(fā)送的起始地址為0xA0001000,從上位機(jī)接收起始地址為0xA0001800,從IMU接收的起始地址為0xA0001800,從GPS接收的起始地址為0xA0002800。
4)串行發(fā)送接收單元:將并行的8 bit數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)發(fā)送出去,也可接收串行數(shù)據(jù)合成8 bit數(shù)據(jù)。
5)接收數(shù)據(jù)區(qū)分單元:將3個(gè)通道的接收數(shù)據(jù)根據(jù)選擇地址發(fā)送到數(shù)據(jù)總線上。
6)接收控制單元:將從UART接收到的8 bit數(shù)據(jù)編碼成32 bit數(shù)據(jù),按順序存儲(chǔ)在雙口RAM中,并向DSP發(fā)出中斷。
7)發(fā)送控制單元:將DSP發(fā)送的存儲(chǔ)在雙口RAM中的32 bit數(shù)據(jù)按順序解碼成8 bit的數(shù)據(jù),并以此發(fā)送給串行發(fā)送接收單元。
各單元均由硬件描述語言(VHDL)編寫完成,其中接收控制單元和發(fā)送控制單元需要特別設(shè)計(jì)。
2.2.1 發(fā)送控制單元設(shè)計(jì)
發(fā)送控制單元的功能是將DSP發(fā)送的存儲(chǔ)在雙口RAM中的32 bit數(shù)據(jù)按順序解碼成8 bit的數(shù)據(jù),并以此發(fā)送給串行發(fā)送接收單元。發(fā)送控制單元共有3個(gè)狀態(tài):空閑狀態(tài)(idle)、讀數(shù)據(jù)狀態(tài)(read)和發(fā)送狀態(tài)(send),如圖4。
空閑狀態(tài):此時(shí)沒有接收到DSP的發(fā)送數(shù)據(jù)信號(hào)。
讀數(shù)據(jù)狀態(tài):此時(shí)從雙口RAM中依次讀取32 bit數(shù)據(jù),讀取完成后進(jìn)入send狀態(tài)。
發(fā)送狀態(tài):將讀取到的32 bit數(shù)據(jù)依次拆分成4個(gè)8 bit數(shù)據(jù)經(jīng)由UART發(fā)送出去,當(dāng)發(fā)送數(shù)據(jù)量未達(dá)到要求時(shí)回到read狀態(tài),當(dāng)發(fā)送數(shù)據(jù)量達(dá)到要求時(shí)回到idle狀態(tài)。
圖4 發(fā)送控制單元的狀態(tài)機(jī)
2.2.2 接收控制單元設(shè)計(jì)
接收控制單元的功能是將從UART接收到的8 bit數(shù)據(jù)編碼成32 bit數(shù)據(jù),按順序存儲(chǔ)在DualRam中,并向DSP發(fā)出中斷。接收控制單元共有4個(gè)狀態(tài)分別是:空閑狀態(tài)(idle)、讀數(shù)據(jù)狀態(tài)(read),編碼狀態(tài)(pack)和發(fā)送狀態(tài)(send)。
空閑狀態(tài):此時(shí)未接收到數(shù)據(jù)。
讀數(shù)據(jù)狀態(tài):此時(shí)從UART接收8 bit數(shù)據(jù),并將其存放在接收數(shù)據(jù)緩存中,完成后進(jìn)入編碼狀態(tài)。
編碼狀態(tài):驗(yàn)證接收到的數(shù)據(jù)是否滿足,同步幀要求,如果不滿足,則回到空閑狀態(tài);如果滿足,則將8 bit數(shù)據(jù)按小端存儲(chǔ)順序打包成32 bit數(shù)據(jù),完成后進(jìn)入發(fā)送狀態(tài)。
發(fā)送狀態(tài):將編碼好的32 bit數(shù)據(jù)發(fā)送給對(duì)應(yīng)的DualRam,如果一包數(shù)據(jù)未接收完畢,則回到讀數(shù)據(jù)狀態(tài);如果接收完畢,則回到空閑狀態(tài)并發(fā)出中斷,如圖5。
圖5 接收控制單元的狀態(tài)機(jī)
定點(diǎn)位置、速度、姿態(tài)航向?qū)嶒?yàn)地點(diǎn)為清華大學(xué)精儀系系館實(shí)驗(yàn)室,GPS天線放置在系館樓頂,每組測(cè)試時(shí)間約為7 min,可反復(fù)測(cè)量多次,實(shí)驗(yàn)結(jié)果如圖6。
圖6 定點(diǎn)水平定位誤差
連續(xù)靜態(tài)測(cè)試3次,將3次測(cè)量結(jié)果的位置、速度和姿態(tài)的最大值、最小值、平均值和標(biāo)準(zhǔn)差整理到表1中。從下述實(shí)驗(yàn)結(jié)果可以看出:MIMU/GPS組合導(dǎo)航系統(tǒng)水平定位精度可以達(dá)到1 m以內(nèi),相比單獨(dú)GPS接收機(jī)模塊水平定位2.5 m(CEP)有了一定提高。GPS接收機(jī)本身高度通道即有一定的誤差,這項(xiàng)誤差會(huì)被帶入組合導(dǎo)航高度解算過程,所以,相比水平定位高度解算結(jié)果精度達(dá)到2.85 m。系統(tǒng)解算出北向和東向的水平速度均小于1 cm/s,標(biāo)準(zhǔn)差在1 cm/s左右,同樣的向速度的平均值和標(biāo)準(zhǔn)差受GPS接收機(jī)精度的影響略差,平均值在6 cm/s。系統(tǒng)的俯仰角和橫滾角平均值均在0.3°以內(nèi),標(biāo)準(zhǔn)差小于0.05°。
表1 靜態(tài)定點(diǎn)實(shí)驗(yàn)結(jié)果
表2、表3表明:俯仰角和橫滾角的測(cè)量誤差基本在0.1°以內(nèi),航向角輸出結(jié)果在0.5°左右,這主要因?yàn)椋?)在GPS接收機(jī)天線靜止情況下,系統(tǒng)航向角可觀測(cè)性極差;2)靜態(tài)條件下測(cè)試,系統(tǒng)航向角存在長期漂移,以上2點(diǎn)都會(huì)使系統(tǒng)靜態(tài)航向測(cè)量精度產(chǎn)生影響。
表2 定點(diǎn)動(dòng)姿態(tài)誤差
本文基于清華大學(xué)自主研發(fā)的MIMU和U-blox公司的GPS接收機(jī),設(shè)計(jì)完成了MIMU/GPS組合導(dǎo)航系統(tǒng)。導(dǎo)航解算部分采用DSP+FPGA方式,其中FPGA主要負(fù)責(zé)DSP和各外部傳感器的通信,DSP負(fù)責(zé)初始對(duì)準(zhǔn)和導(dǎo)航解算。重點(diǎn)進(jìn)行了FPGA內(nèi)部程序VHDL編寫,實(shí)現(xiàn)從串口接收到的數(shù)據(jù)和將要通過串口發(fā)送出的數(shù)據(jù)進(jìn)行編碼和解碼,解決DSP總線和外部串口速率不一致的問題。將各硬件部分集成在一起,完成的系統(tǒng)高度90 mm,直徑80 mm,重量不超過600 g?;谠O(shè)計(jì)完成的MIMU/GPS組合導(dǎo)航系統(tǒng)進(jìn)行了靜態(tài)實(shí)驗(yàn),分為定點(diǎn)靜姿態(tài)實(shí)驗(yàn)和定點(diǎn)動(dòng)姿態(tài)實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明:該組合導(dǎo)航系統(tǒng)靜態(tài)水平定位精度可達(dá)到1 m以內(nèi),姿態(tài)測(cè)量精度在0.1°以內(nèi),航向測(cè)量精度也在0.5°左右。
表3 定點(diǎn)動(dòng)航向誤差
參考文獻(xiàn):
[1]章燕申,伍曉明.光學(xué)陀螺系統(tǒng)與關(guān)鍵器件[M].北京:中國宇航出版社,2010.
[2]秦永元.慣性導(dǎo)航[M].北京:科學(xué)出版社,2006.
[3]陳志勇.振動(dòng)輪式微機(jī)械陀螺改進(jìn)設(shè)計(jì)[D].北京:清華大學(xué),2001.
[4]周 斌.微機(jī)械陀螺數(shù)字化技術(shù)研究[D].北京:清華大學(xué),2003.
[5]秦紅磊,張亞珍,叢 麗,等.GPS/MEMS—INS 組合導(dǎo)航系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(11):3890-3893.
[6]曾慶雙,蔣 蔚,伊興國.基于高性能DSP的小型組合導(dǎo)航系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].哈爾濱商業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2010,26(4):475-479.
[7]李 昂,王 偉,吳佳楠.低成本IMU/GPS組合導(dǎo)航系統(tǒng)設(shè)計(jì)[J].測(cè)控技術(shù),2012,31(8):12-15.