緱麗敏 劉陶 劉良勇
摘要:為提高導(dǎo)航計(jì)算機(jī)的精度和處理速度,降低導(dǎo)航計(jì)算機(jī)的功耗和體積,采用DSP+FPGA的小型化設(shè)計(jì)捷聯(lián)慣導(dǎo)計(jì)算機(jī)平臺(tái)。FPGA完成傳感器信號(hào)采集,實(shí)現(xiàn)對(duì)傳感器信號(hào)的數(shù)字濾波和外圍接口電路邏輯,同時(shí)實(shí)現(xiàn)導(dǎo)航計(jì)算機(jī)控制邏輯。采用高性能TMS320C6713為核心處理器完成姿態(tài)信息解算和溫度信號(hào)采集和解算。經(jīng)過調(diào)試驗(yàn)證本設(shè)計(jì)滿足技術(shù)指標(biāo)要求,且實(shí)現(xiàn)技術(shù)先進(jìn),具有廣泛的應(yīng)用前景。
關(guān)鍵詞:TMS320C6713B; FPGA;IMU
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)02-0218-02
從專業(yè)化角度出發(fā),慣性導(dǎo)航系統(tǒng)主要是借助對(duì)航行體運(yùn)動(dòng)期間的實(shí)際加速度情況進(jìn)行測(cè)量之后,所求得準(zhǔn)確速度以及具體位置的系統(tǒng)。就構(gòu)成來說,該系統(tǒng)由控制顯示裝置、慣性傳感器以及計(jì)算機(jī)組合而成。慣性導(dǎo)航系統(tǒng)是推算導(dǎo)航方式,也就是說從已知位置參照連續(xù)性測(cè)得的載體航向角以及實(shí)際速度來進(jìn)一步推算接下來的具體位置。傳感器根據(jù)安裝方式上的差異,可以將其劃分為捷聯(lián)式傳感器以及平臺(tái)式傳感器[1]。具體來說,捷聯(lián)慣導(dǎo)系統(tǒng)通常情況下是將慣性傳感器安裝到載體中,擺脫了機(jī)電平臺(tái),這種情況下,慣性平臺(tái)所具有的功能是由計(jì)算機(jī)來完成的。由于慣性傳感器直接安裝在載體,在實(shí)際應(yīng)用中導(dǎo)航精度易受外部環(huán)境等因素影響。為了提高導(dǎo)航精度在設(shè)計(jì)中采用DSP和FPGA技術(shù)實(shí)現(xiàn)采集慣性導(dǎo)航參數(shù)及慣性導(dǎo)航參數(shù)的數(shù)字濾波、導(dǎo)航參數(shù)解算和外部通信。同時(shí)該技術(shù)方案采用FPGA實(shí)現(xiàn)計(jì)算機(jī)系統(tǒng)外圍設(shè)備擴(kuò)展部分,提高了導(dǎo)航計(jì)算機(jī)的集成度,增加計(jì)算機(jī)可靠性,減小導(dǎo)航計(jì)算機(jī)體積重量。
1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)
慣性導(dǎo)航系統(tǒng)當(dāng)中的慣性傳感器關(guān)鍵組成部分有里程計(jì)、陀螺儀以及加速度計(jì)。在實(shí)際導(dǎo)航過程中,主要是利用加速度計(jì)來獲得載體速度以及最終的位置信息,之后再借助陀螺儀對(duì)載體姿態(tài)信息數(shù)據(jù)進(jìn)行進(jìn)一步計(jì)算,并有效控制顯示器的導(dǎo)航參數(shù)[2]。
導(dǎo)航計(jì)算機(jī)可以完成以下工作:對(duì)陀螺計(jì)中的信號(hào)、速度計(jì)中的信號(hào)以及里程計(jì)中的信號(hào)進(jìn)行定時(shí)采集,然后輸入相應(yīng)的測(cè)溫阻值。還可以通過及時(shí)處理數(shù)據(jù)信息實(shí)現(xiàn)導(dǎo)航解算功能;通過專業(yè)化的RS422總線來準(zhǔn)確接收命令以及參數(shù),從而在一定程度上對(duì)慣導(dǎo)系統(tǒng)實(shí)施定期修正。本設(shè)計(jì)采用的系統(tǒng)結(jié)構(gòu)如圖1所示。
2硬件平臺(tái)設(shè)計(jì)
2.1DSP功能單元設(shè)計(jì)
導(dǎo)航計(jì)算機(jī)實(shí)時(shí)采集加速計(jì)和陀螺計(jì)信號(hào)等導(dǎo)航數(shù)據(jù),對(duì)導(dǎo)航數(shù)據(jù)的解算和處理要求導(dǎo)航計(jì)算機(jī)必須具有高精度的浮點(diǎn)處理能力,設(shè)計(jì)中DSP采用了TI公司TMS320C6713B高性能32位浮點(diǎn)運(yùn)算DSP芯片,工作主頻為200MHz,處理能力為600MIPS/1200MFLOPS,外部支持8,16,32bit尋址,EMIF總線支持512Mbytes的寄存器尋址空間,可與SDRAM,F(xiàn)LASH存儲(chǔ)器無縫連接[3]。SDRAM采用容量為16MB(4M×32bit)的MT48LC4M32B2TG-7IT芯片,用于DSP在導(dǎo)航數(shù)據(jù)解算中大量矩陣和積分運(yùn)算。FLASH采用容量16MB(8M×16bit)的S29GL128N10TFIR1芯片。DSP的引導(dǎo)方式配置采用16位外部ROM引導(dǎo)Boot(默認(rèn)ROM時(shí)序)。DSP 上電復(fù)位后將外部FLASH存儲(chǔ)1KB空間的Bootloader程序搬到DSP內(nèi)部RAM地址為0x0空間,執(zhí)行Bootloader程序?qū)崿F(xiàn)FLASH導(dǎo)航解算程序加載到DSP內(nèi)部RAM中執(zhí)行。
外部時(shí)鐘電路采用40MHz的晶振作DSP時(shí)鐘輸入。經(jīng)配置內(nèi)部鎖相環(huán)倍頻后作,在由內(nèi)部分頻提供給CPU和其他外設(shè)使用。
DSP工作需要3.3V的IO電壓和1.2 V的內(nèi)核電壓電源。供電電源采用TPS70345電壓調(diào)整器,對(duì)上電順序進(jìn)行控制,首先完成內(nèi)核電壓上電,然后上電IO電壓。本身DSP的工作電源上電順序可以不考慮,但從系統(tǒng)設(shè)計(jì)考慮保證DSP的I/O buffer 接收到DSP的內(nèi)核有效輸入早于輸出buffer上電,防止與其他系統(tǒng)產(chǎn)生總線競(jìng)爭(zhēng)。
2.2傳感器接口信號(hào)濾波設(shè)計(jì)
由于導(dǎo)航計(jì)算機(jī)采集的傳感器信號(hào)品質(zhì)差(帶有噪聲),為了便于后續(xù)信號(hào)采集處理,降低信號(hào)計(jì)數(shù)誤差對(duì)采集傳感器輸入信號(hào)進(jìn)行濾波、整形和驅(qū)動(dòng)隔離處理(處理電路如圖2所示)。濾波電路根據(jù)需濾掉噪聲頻率設(shè)計(jì)RC濾波電路參數(shù)。整形電路采用施密特觸發(fā)器實(shí)現(xiàn)信號(hào)整形,經(jīng)過驅(qū)動(dòng)隔離進(jìn)行電平轉(zhuǎn)換后輸入FPGA。
2.3慣導(dǎo)傳感器信息采集集成技術(shù)
在慣性導(dǎo)航系統(tǒng)中,導(dǎo)航計(jì)算機(jī)的主要功能包括將導(dǎo)航傳感器信號(hào)采集并進(jìn)行處理。同時(shí)根據(jù)系統(tǒng)配置將通過CAN總線和RS422接口與其他系統(tǒng)設(shè)備進(jìn)行導(dǎo)航數(shù)據(jù)通信。導(dǎo)航計(jì)算機(jī)采用Sparatan-IIE FPGA實(shí)現(xiàn)對(duì)輸入慣性傳感器信號(hào)進(jìn)行采集處理。首先對(duì)輸入的慣性傳感器信號(hào)進(jìn)行了數(shù)字濾波處理,然后進(jìn)行計(jì)數(shù),對(duì)標(biāo)頻信號(hào)進(jìn)行分頻處理,由分頻信號(hào)對(duì)各個(gè)慣性傳感器信號(hào)計(jì)數(shù)器值進(jìn)行鎖存,同時(shí)產(chǎn)生中斷信號(hào)到DSP,DSP可以通過EMIF總線訪問FPGA的內(nèi)部寄存器。
FPGA對(duì)實(shí)現(xiàn)對(duì)輸入慣性傳感器信號(hào)濾波、計(jì)數(shù)處理工作原理如下。慣性信號(hào)輸入包括陀螺儀、加速度計(jì)和里程計(jì)信號(hào)等。陀螺計(jì)信號(hào)(陀螺計(jì)數(shù)電路原理見圖3)的處理是本設(shè)計(jì)的關(guān)鍵部分,因此下面對(duì)陀螺計(jì)信號(hào)處理進(jìn)行重點(diǎn)說明。導(dǎo)航計(jì)算機(jī)共有三路陀螺計(jì)輸入信號(hào)(X、Y、Z),每路陀螺輸入包含兩個(gè)相互正交的方波信號(hào),AX超前BX信號(hào) 90°時(shí)計(jì)數(shù)器應(yīng)增加,BX超前AX信號(hào) 90°時(shí)計(jì)數(shù)器應(yīng)減少。在設(shè)計(jì)中,每路陀螺的兩個(gè)信號(hào)在FPGA外經(jīng)過施密特觸發(fā)器,進(jìn)入FPGA后首先進(jìn)行數(shù)字濾波處理,濾波后的信號(hào)再進(jìn)行鑒相,產(chǎn)生兩路四倍頻的可逆脈沖信號(hào),然后對(duì)可逆脈沖進(jìn)行計(jì)數(shù),當(dāng)頻標(biāo)信號(hào)分頻產(chǎn)生定時(shí)中斷時(shí),將計(jì)數(shù)器中的凈計(jì)數(shù)值鎖入鎖存器中并由DSP進(jìn)行讀數(shù)。
為了去除信號(hào)中的毛刺,信號(hào)在進(jìn)入FPGA之前,先經(jīng)過施密特觸發(fā)器過濾掉低電平的噪聲,然后進(jìn)入FPGA后經(jīng)過一個(gè)4位延遲數(shù)字濾波器[4]。數(shù)字濾波器的輸入信號(hào)必須在三個(gè)連續(xù)的時(shí)鐘上升沿保持同一電平,才能夠通過4位延遲移位寄存器,因此小于兩個(gè)時(shí)鐘周期的噪聲脈沖都被抑制掉。同時(shí),保證輸入信號(hào)通過濾波器的條件為tS>3tclk,tS為輸入信號(hào)高電平或低電平的持續(xù)時(shí)間,tclk為clk的時(shí)鐘周期,也就是說必須保證時(shí)鐘頻率fclk>6finput。
每路陀螺的兩個(gè)信號(hào)經(jīng)過數(shù)字濾波器輸出后,進(jìn)入鑒相電路[5],經(jīng)過處理后,變?yōu)樗谋额l的可逆脈沖信號(hào)。以X陀螺輸入為例,兩路輸入信號(hào)AX、BX分別經(jīng)過兩級(jí)移位寄存器, AX經(jīng)過第一級(jí)和第二級(jí)的輸出信號(hào)分別命名為A、C,BX輸出信號(hào)分別是B、D,最后輸出分別得到正、負(fù)通道信號(hào)+X和-X,+X=(A⊕D)(B⊕C),-X=(B⊕C)(not(A⊕D))。這種鑒相電路具有較強(qiáng)的抗干擾能力,即使AX或BX輸入上有噪聲信號(hào)通過前面的濾波電路,也會(huì)在+X和-X上產(chǎn)生對(duì)稱的脈沖而互相抵消掉。
以上功能實(shí)現(xiàn)采用了高速大規(guī)??删幊踢壿嬈骷‵PGA),利用VHDL硬件描述語言,在一片F(xiàn)PGA上實(shí)現(xiàn)數(shù)據(jù)采集,脈沖計(jì)數(shù)和數(shù)字濾波以及多路串口協(xié)議處理等功能,對(duì)慣導(dǎo)傳感器信號(hào)進(jìn)行實(shí)時(shí)的處理。該設(shè)計(jì)降低了導(dǎo)航計(jì)算機(jī)功耗,減小了導(dǎo)航計(jì)算機(jī)的體積。
2.4測(cè)溫電路設(shè)計(jì)
由于環(huán)境溫度的變化會(huì)引起慣性導(dǎo)航系統(tǒng)精度下降,所以在導(dǎo)航計(jì)算機(jī)中設(shè)計(jì)了測(cè)溫信號(hào)處理電路,將溫度傳感器采集到的模擬電壓信號(hào)進(jìn)行AD轉(zhuǎn)換,DSP根據(jù)解算AD轉(zhuǎn)換數(shù)字量進(jìn)行慣性導(dǎo)航系統(tǒng)傳感器溫度控制或溫度補(bǔ)償,保證導(dǎo)航系統(tǒng)的精度。
測(cè)溫電路采用鉑熱電阻溫度傳感器進(jìn)行環(huán)境溫度的測(cè)量,測(cè)溫電阻與模塊上3個(gè)高精度電阻組成電橋,電橋兩臂中點(diǎn)分別接入運(yùn)算放大器進(jìn)行跟隨處理,再經(jīng)過后級(jí)放大后由AD轉(zhuǎn)換芯片采集溫度測(cè)量結(jié)果,DSP通過McBSP(Multichannel Buffered Serial Port)接口(配置SPI工作模式)讀取A/D轉(zhuǎn)換結(jié)果進(jìn)行解算。
3導(dǎo)航計(jì)算機(jī)軟件設(shè)計(jì)
導(dǎo)航計(jì)算機(jī)軟件開發(fā)環(huán)境采用TI公司推出的Code Composer Studio v3.3。包含TI器件的編譯器、源代碼編輯器、項(xiàng)目開發(fā)環(huán)境,調(diào)試器及其他功能,與C語言有良好的數(shù)據(jù)交互接口。
導(dǎo)航系統(tǒng)平臺(tái)的數(shù)據(jù)采集和解算通過軟件來實(shí)現(xiàn)的。DSP在該設(shè)計(jì)中主要用來完成IMU實(shí)時(shí)數(shù)據(jù)的處理,解算獲得姿態(tài)信息,即完成大量的數(shù)學(xué)運(yùn)算功能。DSP程序包括兩部分:一是TMS320C6713的Bootloader程序,實(shí)現(xiàn)將導(dǎo)航解算程序從FLASH中加載到DSP的內(nèi)部RAM中,導(dǎo)航解算程序從DSP內(nèi)部RAM中執(zhí)行;二是導(dǎo)航程序,實(shí)現(xiàn)整個(gè)姿態(tài)算法,包括對(duì)IMU的通過RS422總線接口加載初始對(duì)準(zhǔn)信息,環(huán)境溫度對(duì)采集傳感器誤差補(bǔ)償,姿態(tài)解算和導(dǎo)航結(jié)果輸出等。
航姿解算主要是指及時(shí)處理好IMU信息數(shù)據(jù),進(jìn)而得到載體速度、載體位置以及載體姿態(tài)。當(dāng)慣導(dǎo)上電之后,DSP上電初始化從FLASH中加載導(dǎo)航程序,然后運(yùn)行導(dǎo)航程序,接收IMU數(shù)據(jù)進(jìn)行導(dǎo)航信息的初始對(duì)準(zhǔn),對(duì)準(zhǔn)完成后進(jìn)行解算,最后輸出姿態(tài)解算結(jié)果。
4結(jié)束語
采用TMS320C6713高性能32位浮點(diǎn)DSP作為捷聯(lián)慣導(dǎo)平臺(tái)的核心處理器,利用FPGA的實(shí)現(xiàn)5路串口協(xié)議邏輯和采集導(dǎo)航信息的數(shù)字濾波和計(jì)數(shù),該設(shè)計(jì)實(shí)現(xiàn)了體積小,功耗低,姿態(tài)解算速度快、精度高的捷聯(lián)慣導(dǎo)平臺(tái)。通過試驗(yàn)調(diào)試和應(yīng)用驗(yàn)證設(shè)計(jì)達(dá)了捷聯(lián)慣導(dǎo)系統(tǒng)的技術(shù)要求。
參考文獻(xiàn):
[1] 秦永元.慣性導(dǎo)航[M].北京:科學(xué)出版社,2005
[2] 初一.慣性導(dǎo)航[J].衛(wèi)星與網(wǎng)絡(luò),2009(12):38-40.
[3]. TMS320C6713,TMS320C6713B Floating-point Digital Signal Processors Data Sheet SPRS186I , Texas Instruments [2001-12].http://www.ti.
[4] 駱毅,張志文.脈沖信號(hào)數(shù)字濾波以及無縫計(jì)數(shù)電路設(shè)計(jì)[J].西安工業(yè)大學(xué)學(xué)報(bào),2012(32):157-160.
[5] 莊肖波,王歆.基于FPGA的編碼器倍頻_鑒相電路[J].電子設(shè)計(jì),2008,24(11):297-298.