- 2024-02-06"充氣不再只是兒戲:
- 2024-02-06"模擬戰(zhàn)場(chǎng):如何用充
- 2023-12-30充氣軍事模型:從充氣
- 2023-12-30充氣軍事模型的創(chuàng)新:
- 2022-07-02軍事氣模海麗斯認(rèn)證廠
- 2022-06-05充氣仿真目標(biāo)
- 2022-05-16充氣戰(zhàn)車作戰(zhàn)貢獻(xiàn)
- 2022-05-11充氣飛機(jī)假目標(biāo)
- 2022-03-30充氣仿真目標(biāo)介紹
- 2022-03-28充氣飛機(jī)假目標(biāo)
假目標(biāo)飛機(jī)【學(xué)術(shù)論文】慣性導(dǎo)航系統(tǒng)中浮點(diǎn)計(jì)算加速單元設(shè)計(jì)
石英振梁加速度計(jì)采用頻率輸出的形式表示加速度,在慣性導(dǎo)航系統(tǒng)中,需要將頻率值轉(zhuǎn)換為加速度值,再進(jìn)行姿態(tài)解算。為了優(yōu)化頻率轉(zhuǎn)換的計(jì)算速度,設(shè)計(jì)一種面向頻率轉(zhuǎn)換應(yīng)用的浮點(diǎn)計(jì)算加速單元,并基于FPGA進(jìn)行了實(shí)現(xiàn)與驗(yàn)證。結(jié)果表明,系統(tǒng)從數(shù)據(jù)采樣到頻率轉(zhuǎn)換,然后將頻率值轉(zhuǎn)換成加速度進(jìn)行姿態(tài)解算,陀螺儀測(cè)得的角速度進(jìn)行積分,最后完成數(shù)據(jù)融合,使用本文設(shè)計(jì)的浮點(diǎn)加速單元來(lái)實(shí)現(xiàn)頻率轉(zhuǎn)換,速度提高了2倍。
中文引用格式:田換換,朱曉燕. 慣性導(dǎo)航系統(tǒng)中浮點(diǎn)計(jì)算加速單元設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2019,45(8):79-82,86.
隨著微機(jī)電系統(tǒng)(MEMS)技術(shù)的發(fā)展,石英振梁加速度計(jì)作為一種新型MEMS慣性傳感器的全數(shù)字脈沖輸出,越來(lái)越廣泛應(yīng)用于小型飛機(jī)、機(jī)器人導(dǎo)航系統(tǒng)等 [1-2]。為了使該器件能在慣導(dǎo)系統(tǒng)中發(fā)揮出其優(yōu)良性能,需要對(duì)其輸出頻率脈沖信號(hào)高精度測(cè)量的計(jì)數(shù)值進(jìn)行浮點(diǎn)計(jì)算。
然而隨著超大規(guī)模集成電路設(shè)計(jì)技術(shù)的發(fā)展,在慣性導(dǎo)航系統(tǒng)中,大多數(shù)DSP處理器具有雙精度浮點(diǎn)運(yùn)算能力,但在這其中存在大量的運(yùn)算,會(huì)耗用CPU大量的計(jì)算能力,并且采用功能級(jí)流水增加了面積開銷和硬件復(fù)雜度 [3]。通過(guò)軟件設(shè)計(jì)實(shí)現(xiàn),不僅占用大量的軟件資源,而且運(yùn)行速度慢,這些設(shè)計(jì)方法不太適合一些高速數(shù)據(jù)采集和處理應(yīng)用場(chǎng)合 [4]。
根據(jù)石英振梁加速度計(jì)的特性,在慣性導(dǎo)航系統(tǒng)中,為了優(yōu)化頻率轉(zhuǎn)換的計(jì)算速度,本文提出一種面向頻率轉(zhuǎn)換應(yīng)用的浮點(diǎn)計(jì)算加速單元設(shè)計(jì),對(duì)加速度計(jì)測(cè)量的計(jì)數(shù)值進(jìn)行浮點(diǎn)計(jì)算,以加快運(yùn)算的換算速度,減輕了導(dǎo)航計(jì)算機(jī)中處理器的負(fù)擔(dān),從而加快導(dǎo)航姿態(tài)解算的速度。采用FPGA對(duì)浮點(diǎn)計(jì)算加速單元進(jìn)行了實(shí)驗(yàn)驗(yàn)證,與傳統(tǒng)的軟件計(jì)算方法進(jìn)行了比較,加速度解算速度提高了2倍,可以很好地提升慣性導(dǎo)航系統(tǒng)的性能。
石英振梁加速度計(jì)是一種基于石英振動(dòng)梁的力-頻特性的新型高精度固態(tài)傳感器。其內(nèi)部交變電場(chǎng)使其推挽方式安裝的兩個(gè)石英梁在伸縮振動(dòng)模式下進(jìn)行振動(dòng)。當(dāng)加速度計(jì)受到外部加速時(shí),敏感質(zhì)量塊產(chǎn)生一個(gè)慣性力以分別作用于這兩個(gè)石英梁上。其中一個(gè)石英梁受到壓縮作用,假目標(biāo)飛機(jī)其諧振頻率會(huì)降低;而另一個(gè)受到拉伸作用,其諧振頻率將升高。最終這兩個(gè)石英梁的頻率差與外施加力成比例,即與加速度成比例,進(jìn)而測(cè)量出加速度值 [5]。
其中L0≤0.9 g,為零偏值;L1為標(biāo)度因數(shù),典型值為50 Hz/g;L2為二階非線的輸出,單位為Hz;f2為力敏感石英梁F2的輸出,單位為Hz;a為即時(shí)加速度計(jì),單位為g。
傳統(tǒng)的慣性導(dǎo)航系統(tǒng)架構(gòu)設(shè)計(jì)如圖1所示,首先系統(tǒng)對(duì)三個(gè)石英振梁加速度計(jì)和三個(gè)陀螺儀進(jìn)行數(shù)據(jù)采集。三個(gè)石英振梁加速度計(jì)的輸出信號(hào)和溫度信號(hào)均為頻率信號(hào),每個(gè)加速度計(jì)輸出2路頻率信號(hào)。根據(jù)式(1)可知,要得到加速度,就要測(cè)出2個(gè)石英梁的頻率輸出值,則設(shè)計(jì)的頻率采樣系統(tǒng)就必須能對(duì)9路通道的頻率信號(hào)進(jìn)行高精度測(cè)量與快速計(jì)算。系統(tǒng)對(duì)加速度計(jì)進(jìn)行高精度測(cè)頻,使用的是等精度測(cè)頻法,其公式為:
其中fs為標(biāo)準(zhǔn)頻率,Ns為標(biāo)準(zhǔn)頻率信號(hào)脈沖個(gè)數(shù),fx為被測(cè)頻率,Nx為被測(cè)頻率信號(hào)脈沖個(gè)數(shù)。
根據(jù)式(2),經(jīng)過(guò)頻率轉(zhuǎn)換計(jì)算得到測(cè)頻值,然后由式(1)可知,頻率值轉(zhuǎn)換后進(jìn)而得出加速度值。同時(shí)三個(gè)陀螺儀經(jīng)過(guò)脈沖測(cè)量后得到角速度,最后將得到的加速度值和陀螺儀測(cè)得的角速度值輸入到導(dǎo)航計(jì)算機(jī)進(jìn)行后續(xù)的解算。
系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)流程圖如圖2所示,加速度計(jì)測(cè)量的頻率值經(jīng)過(guò)轉(zhuǎn)換得到加速度,再通過(guò)姿態(tài)解算可得到姿態(tài)角θ α,角速度通過(guò)積分算出角度θ g,使用互補(bǔ)濾波算法進(jìn)行數(shù)據(jù)融合,可得到最終的姿態(tài)角θ。
而在傳統(tǒng)的系統(tǒng)架構(gòu)設(shè)計(jì)中,頻率轉(zhuǎn)換計(jì)算會(huì)耗用大量的時(shí)間,為了加快頻率轉(zhuǎn)換的計(jì)算速度,本文設(shè)計(jì)了一種面向頻率轉(zhuǎn)換應(yīng)用的浮點(diǎn)計(jì)算加速單元。如圖3所示,在加速度計(jì)高精度頻率測(cè)量模塊后設(shè)計(jì)了FPU模塊,此模塊主要是在FPGA芯片里面完成的。設(shè)計(jì)時(shí),選用了Xilinx公司的XC3S1400AN芯片。在下一節(jié)將對(duì)浮點(diǎn)計(jì)算加速單元的實(shí)現(xiàn)進(jìn)行詳細(xì)介紹。
浮點(diǎn)計(jì)算是以9路頻率計(jì)數(shù)值的順序執(zhí)行,即按照X1、X2、X3、Y1、Y2、Y3、Z1、Z2和Z3的順序執(zhí)行,在相應(yīng)的計(jì)數(shù)器值鎖定完成后立即開始浮點(diǎn)計(jì)算。浮點(diǎn)計(jì)算過(guò)程如圖4所示,主要包括:乘法模塊、定點(diǎn)浮點(diǎn)轉(zhuǎn)換(規(guī)格化)、浮點(diǎn)除法、結(jié)果鎖存4個(gè)過(guò)程,最終計(jì)算結(jié)果為滿足IEEE-754標(biāo)準(zhǔn) [6]的規(guī)格化雙精度浮點(diǎn)數(shù)。
一個(gè)浮點(diǎn)計(jì)算過(guò)程首先是9路通道的計(jì)數(shù)值并行輸入到乘法模塊,然后按照X1,X2,X3,Y1,Y2,Y3,Z1,Z2和Z3的順序?qū) s與N x,y,z進(jìn)行乘法計(jì)算。其過(guò)程在對(duì)應(yīng)的計(jì)數(shù)值鎖存完成后,立即開始浮點(diǎn)計(jì)算。9路通道根據(jù)控制器來(lái)選擇其中一個(gè)通道的計(jì)數(shù)值進(jìn)入乘法模塊做乘法計(jì)算。本文是根據(jù)工程所需,選用標(biāo)準(zhǔn)頻率f s為80 MHz,通過(guò)分步相加實(shí)現(xiàn)的乘法計(jì)算。
在控制器的控制下,對(duì)f s與N x,y,z相乘得到的結(jié)果進(jìn)行規(guī)格化處理,即先判斷計(jì)算的尾數(shù)結(jié)果是否符合規(guī)格化的格式,如果不符合,則將其進(jìn)行移位處理,并對(duì)指數(shù)做相應(yīng)的加減操作。9路通道的計(jì)數(shù)值計(jì)算完成后都要進(jìn)行規(guī)格化處理。
對(duì)f s與N x,y,z相乘得出的結(jié)果進(jìn)行計(jì)算前導(dǎo)0數(shù)量,假目標(biāo)飛機(jī)即找出最高1的位置。在控制器的控制下,鎖存到寄存器1和寄存器2中;使用最高1位置值加上指數(shù)偏移值,就是規(guī)格化后的指數(shù)。再根據(jù)最高1的位置,把其后的有效數(shù)字鎖存到浮點(diǎn)尾數(shù)從最高位開始的位置,尾數(shù)低位補(bǔ)0。對(duì)于擴(kuò)展標(biāo)志,只有0與非0兩種情況,如果計(jì)數(shù)值為全0,假目標(biāo)飛機(jī)擴(kuò)展標(biāo)志為00,假目標(biāo)飛機(jī)否則為01(表示正常數(shù))。
在控制器的控制下,將對(duì)級(jí)間寄存器中的數(shù)據(jù)進(jìn)行浮點(diǎn)除法運(yùn)算。根據(jù)浮點(diǎn)除法運(yùn)算必需的步驟,設(shè)計(jì)浮點(diǎn)除法整體單元如圖5所示 [7]。本設(shè)計(jì)由6個(gè)部分構(gòu)成,即預(yù)處理、尾數(shù)除、指數(shù)減、異常處理、規(guī)格化與舍入、溢出判斷與輸出,其中尾數(shù)除是通過(guò)SRT基4算法 [8]來(lái)實(shí)現(xiàn)的。
浮點(diǎn)計(jì)算是在乘法計(jì)算模塊到浮點(diǎn)除法模塊的過(guò)程中使用了流水線結(jié)構(gòu),當(dāng)?shù)谝煌ǖ劳瓿沙朔ㄓ?jì)算后,立即送到下一模塊進(jìn)行相應(yīng)的數(shù)據(jù)處理,進(jìn)而將其送到浮點(diǎn)除法模塊做最終計(jì)算。同時(shí)第二通道在處理其他數(shù)據(jù),以此順序執(zhí)行運(yùn)算。
本文在浮點(diǎn)除法過(guò)程中采用非流水線結(jié)構(gòu),此結(jié)構(gòu)是以串行形式的迭代運(yùn)算實(shí)現(xiàn)的,在每次迭代時(shí)都共用同樣的硬件,產(chǎn)生的部分余數(shù)和部分商均在寄存器中更新。此過(guò)程是在9路全部完成最終計(jì)算后,再繼續(xù)下一數(shù)據(jù)處理。
在控制器的控制下,對(duì)浮點(diǎn)除法模塊計(jì)算的最終結(jié)果進(jìn)行鎖存,然后浮點(diǎn)輸出。在以石英振梁加速度計(jì)為基礎(chǔ)的慣性導(dǎo)航系統(tǒng)中,此結(jié)果經(jīng)過(guò)轉(zhuǎn)換為加速度后進(jìn)行姿態(tài)解算。
本文利用硬件描述語(yǔ)言VHDL實(shí)現(xiàn)對(duì)浮點(diǎn)加速單元進(jìn)行邏輯設(shè)計(jì)。在整個(gè)控制過(guò)程中,乘法模塊是由乘法變成加法計(jì)算的,使用7個(gè)加法器就可以實(shí)現(xiàn)乘法計(jì)算,3個(gè)周期即可計(jì)算出結(jié)果。
在乘法計(jì)算模塊到浮點(diǎn)除法模塊的過(guò)程中使用了兩級(jí)流水線所示為乘法計(jì)算模塊到浮點(diǎn)除法模塊的工作圖,首先是在控制器的控制選擇通道下,第一個(gè)通道輸入計(jì)數(shù)器數(shù)據(jù)有效后進(jìn)行乘法計(jì)算,等待乘法計(jì)算完成后,對(duì)其計(jì)算的結(jié)果進(jìn)行規(guī)格化處理也就是定點(diǎn)浮點(diǎn)轉(zhuǎn)換。兩個(gè)周期后,待規(guī)格化數(shù)據(jù)輸出穩(wěn)定后,將其計(jì)算的結(jié)果鎖存到M1。一旦鎖存完成后,立即啟動(dòng)浮點(diǎn)除法計(jì)算單元,進(jìn)行浮點(diǎn)除法運(yùn)算。等待浮點(diǎn)除法完成后,在控制器的控制下,選擇相應(yīng)通道的地址將其計(jì)算的結(jié)果鎖存到D1,同時(shí)系統(tǒng)在控制器的控制下,選擇第二個(gè)通道數(shù)據(jù)輸入到乘法計(jì)算模塊做乘法計(jì)算,并將規(guī)格化后的計(jì)算結(jié)果鎖存到M2,這時(shí)也將第三個(gè)通道的計(jì)數(shù)值輸入到乘法計(jì)算模塊。整個(gè)浮點(diǎn)計(jì)算過(guò)程以這種工作方式來(lái)完成9路通道數(shù)據(jù)的全部計(jì)算。
浮點(diǎn)除法模塊是用非流水線結(jié)構(gòu)來(lái)實(shí)現(xiàn)的,每次浮點(diǎn)除法計(jì)算需要26個(gè)周期,因此,采用圖4所示的部件級(jí)流水結(jié)構(gòu),完成9個(gè)頻率值的浮點(diǎn)計(jì)算共需要260個(gè)周期。
如果用流水線結(jié)構(gòu)實(shí)現(xiàn)浮點(diǎn)除法運(yùn)算 [8],則只需要35個(gè)周期就可以完成9次浮點(diǎn)除法運(yùn)算,但會(huì)耗用大量的面積資源。
本文對(duì)這兩種實(shí)現(xiàn)方式都進(jìn)行了實(shí)現(xiàn)與驗(yàn)證,經(jīng)過(guò)綜合分析后得出,雖然全流水線結(jié)構(gòu)處理數(shù)據(jù)速度快,但面積開銷大。而部件級(jí)流水線結(jié)構(gòu),除法計(jì)算采用非流水結(jié)構(gòu),速度雖然慢,但也能滿足要求,面積開銷以及性能均得到了優(yōu)化折中。
本文在慣性導(dǎo)航系統(tǒng)中,對(duì)浮點(diǎn)計(jì)算加速單元進(jìn)行程序編寫、綜合及外部端口的輸出狀態(tài)的波形觀測(cè)與驗(yàn)證,并在XC3S1400AN芯片上對(duì)其進(jìn)行了硬件測(cè)試。
通過(guò)驗(yàn)證結(jié)果表明,設(shè)計(jì)的浮點(diǎn)計(jì)算輸出為64位的雙精度浮點(diǎn)數(shù),結(jié)果正確,并且完全符合要求。另外,采用全流水線結(jié)構(gòu)和部件流水結(jié)構(gòu)設(shè)計(jì)的浮點(diǎn)計(jì)算加速單元經(jīng)過(guò)綜合、布局布線所示。通過(guò)兩種方法對(duì)比可以看出,全流水線結(jié)構(gòu)實(shí)現(xiàn)浮點(diǎn)計(jì)算,其面積開銷為24%,而部件流水結(jié)構(gòu)的浮點(diǎn)計(jì)算加速單元只需4%的面積開銷,也就是說(shuō)全流水結(jié)構(gòu)實(shí)現(xiàn)的浮點(diǎn)計(jì)算所消耗的面積資源是部件流水設(shè)計(jì)的6倍。與全流水線結(jié)構(gòu)實(shí)現(xiàn)浮點(diǎn)計(jì)算相比,明顯可以看出本文設(shè)計(jì)的部件流水結(jié)構(gòu)的浮點(diǎn)計(jì)算加速單元極大地減少了面積開銷。
本文對(duì)性能進(jìn)行了測(cè)試,系統(tǒng)使用的處理器為TMS320C6713(工作頻率為100 MHz)。首先系統(tǒng)對(duì)三個(gè)加速度計(jì)和三個(gè)陀螺儀進(jìn)行數(shù)據(jù)采集,之后對(duì)加速度計(jì)做頻率轉(zhuǎn)換計(jì)算,再將頻率值轉(zhuǎn)換成加速度值,經(jīng)過(guò)姿態(tài)解算得到姿態(tài)角。同時(shí)三個(gè)陀螺儀再做軟件計(jì)算,經(jīng)過(guò)脈沖測(cè)量后得到角速度,角速度通過(guò)積分得到角度。然后使用互補(bǔ)濾波算法進(jìn)行角度融合,整個(gè)過(guò)程運(yùn)行時(shí)間為95.8 μs。而采用本文設(shè)計(jì)的全流水線結(jié)構(gòu)、部件流水結(jié)構(gòu)的浮點(diǎn)計(jì)算加速單元實(shí)現(xiàn)頻率轉(zhuǎn)換計(jì)算,整個(gè)解算過(guò)程運(yùn)行時(shí)間均為27.8 μs。與軟件計(jì)算方法相比,運(yùn)行時(shí)間減少了70.9%,速度提高了2倍。
本文設(shè)計(jì)了一種面向頻率轉(zhuǎn)換應(yīng)用的浮點(diǎn)計(jì)算加速單元,在實(shí)際的導(dǎo)航計(jì)算機(jī)系統(tǒng)中進(jìn)行了實(shí)現(xiàn)驗(yàn)證,功能正確可靠。使用本文設(shè)計(jì)的浮點(diǎn)計(jì)算加速單元,從數(shù)據(jù)采樣到頻率轉(zhuǎn)換,再經(jīng)過(guò)頻率值轉(zhuǎn)換成加速度進(jìn)行姿態(tài)解算;陀螺儀測(cè)得的角速度再進(jìn)行積分,最后進(jìn)行數(shù)據(jù)融合,速度提高了2倍。相比使用全流水線結(jié)構(gòu),本文設(shè)計(jì)的部件流水結(jié)構(gòu)的浮點(diǎn)計(jì)算加速單元的FPGA面積開銷僅為其1/5。
[2] 楊挺,楊貴玉,李慶豐.石英振梁加速度計(jì)靜態(tài)輸入輸出特性[J].中國(guó)慣性技術(shù)學(xué)報(bào),2014,22(3):386-390.
[4] 朱峰,魯征浩,朱青.形式化驗(yàn)證在處理器浮點(diǎn)運(yùn)算單元中的應(yīng)用[J].電子技術(shù)應(yīng)用,2017,43(2):29-32.
[5] 馮麗爽,王文璞,周震,等.石英振梁加速度計(jì)諧振器的結(jié)構(gòu)設(shè)計(jì)[J].中國(guó)慣性技術(shù)學(xué)報(bào),2013,21(1):101-105.
[7] 陳勛.基于SRT4算法的浮點(diǎn)除法/方根算術(shù)單元設(shè)計(jì)[D].西安:西安電子科技大學(xué),2016.