新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MCU與DSP的雙機(jī)壓電捷聯(lián)慣導(dǎo)系統(tǒng)

基于MCU與DSP的雙機(jī)壓電捷聯(lián)慣導(dǎo)系統(tǒng)

——
作者:單片機(jī)及嵌入式系統(tǒng)應(yīng)用/重慶大學(xué) 王家兵 陳林 陳國洪 時(shí)間:2006-09-03 來源:EDN China 收藏
引 言

近年來,廣大科研工作者研究了各種減小電壓捷聯(lián)慣導(dǎo)系統(tǒng)的誤差方法,使壓電慣性器件的精度得到了極大的提高[1].本文介紹了一種實(shí)用的基于DSP實(shí)現(xiàn)的壓電捷聯(lián)慣導(dǎo)系統(tǒng)方案。

1 系統(tǒng)的硬件設(shè)計(jì)

整個(gè)壓電捷聯(lián)慣導(dǎo)系統(tǒng)分為三個(gè)部分:壓電慣性組合部分;由ADS1251與ADuC834組成的信號(hào)接口與模數(shù)轉(zhuǎn)換單元;由TMS320C54lO等構(gòu)成的數(shù)據(jù)處理單元。系統(tǒng)框圖如圖1所示。

系統(tǒng)框圖

壓電慣性組合采用專用壓電陀螺及壓電加速度計(jì)。由TI公司24位,20 kHz的A/D轉(zhuǎn)換器ADSl251完成六路壓電陀螺及壓電加速度計(jì)的信號(hào)精確采樣,實(shí)際采樣速率為500 Hz。采用美國模擬器件公司的8位51 MCU微處理器ADuC834作六路采樣的主控制器。ADuC834集成了溫度傳感器、62 KB的可編程程序EEPROM、定時(shí)器,以及I2C兼容的SPI和標(biāo)準(zhǔn)的串行I/O等。通過SPI方式讀人六路采樣轉(zhuǎn)換后的信號(hào),同時(shí)完成溫度的采樣,所有采樣后得到的數(shù)字信號(hào)通過HPI接口寫入到TMS320C5410的數(shù)據(jù)單元。采用ADuC834的口0與口2實(shí)現(xiàn)與TMS320C54lO的HPI接口相連,接口電路如圖2所示。

      接口電路

數(shù)據(jù)處理單元由TMS320C5410、SST39VF200B及MAX3111E組成。TMS320C5410是TI公司54系列DSP處理器,外接10 MHz晶振,通過設(shè)置PLL,工作頻率在100 MHz,處理能力可達(dá)到l00MIPS。它采用微計(jì)算機(jī)工作方式(MP/MC引腳接地),外接SST39VF200B作為外接存儲(chǔ)器。系統(tǒng)啟動(dòng)時(shí),由固化在TMS320C5410片內(nèi)RoM的自舉引導(dǎo)程序加載SST39VF200B中的應(yīng)用程序。TMS320C5410與ST39VF200B接口如圖3所示。

tms320c5410與st39vf200b接口

TMS320C5410的McBSP0與MAX3111E相連,完成串口數(shù)據(jù)的輸出。設(shè)置McBSP0工作在SPI主動(dòng)模式,與MAX311lE進(jìn)行通信。電路接口如圖4所示。

電路接口

 

2 系統(tǒng)軟件設(shè)計(jì)

2.1 HPl接口

系統(tǒng)軟件包括ADuC834的軟件設(shè)計(jì)與DSP的軟件設(shè)計(jì)。ADuC834軟件部分采用匯編語言編寫,完成HPI的初始化、溫度信號(hào)的采集、通過相應(yīng)引腳的控制完成六路信號(hào)采集及接收、HPI數(shù)據(jù)的發(fā)送等。采用了HINT引腳信號(hào)來完成雙方數(shù)據(jù)的同步。DSP通過向HPIc的HINT位寫I,使HINT引腳變?yōu)榈碗娖?,指示ADuC834發(fā)送新的數(shù)據(jù)幀。ADuC834從引腳P2.7讀到此低電平信號(hào),寫完一幀數(shù)據(jù)到設(shè)定的DSP數(shù)據(jù)區(qū)域,再寫HPIC的HINT位,恢復(fù)HINT引腳為高電平。然后向HPIC中的DSPINT位寫入1,通知DSP進(jìn)人HPI中斷接收數(shù)據(jù)。DSP接收完數(shù)據(jù)后,再向HPIC的HINT位寫l,指示新的數(shù)據(jù)傳輸過程。

2.2 主程序

DsP部分的軟件采用C語言設(shè)計(jì),包括豐程序、HPI中斷服務(wù)子程序及定時(shí)中斷服務(wù)子程序。主程序完成系統(tǒng)的初始化,包括DSP工作模式的設(shè)置、堆棧的設(shè)置、初始化McBSPO、初始化MAX3111E、設(shè)置定時(shí)中斷等??驁D如圖5所示。

                       框圖

2.3捷聯(lián)姿態(tài)計(jì)算

HPI中斷部分完成數(shù)據(jù)接收的同時(shí),完成數(shù)據(jù)的計(jì)算處理,ADuC834的數(shù)據(jù)已存放在設(shè)定的幾個(gè)數(shù)據(jù)單元,對(duì)讀出數(shù)據(jù)采用四元數(shù)算法進(jìn)行捷聯(lián)姿態(tài)計(jì)算。算法部分功能模塊如圖6所示。

算法部分功能模塊


2.4串行數(shù)據(jù)發(fā)送

通過配置McBSPO及MAX311lE,實(shí)現(xiàn)在定時(shí)中斷部分完成計(jì)算出的角度、位置,速度等數(shù)據(jù)的發(fā)送。設(shè)定了每10ms發(fā)送一次數(shù)據(jù),采用查詢方式完成數(shù)據(jù)的發(fā)送。

在系統(tǒng)引導(dǎo)時(shí)完成McBSPO及MAX3111E的初始化,McBSP0始初化程序如下:

   



   

通過查詢SPCR2的XRDY位與XEMPTY位可知是否可向McBSP寫數(shù)據(jù),查詢程序如下:

    通過發(fā)送數(shù)據(jù)寫配置寄存器完成MAX3111E的初始化,程序如下:

void init_max3111e(){
    unsigned int flagl=0xO;;
    mcbsp ready();
    *DXRl0=0xc801;
    //寫配置寄存器,允許發(fā)送緩沖區(qū)空中斷,fosc=3.6864 MHz
    //波特率為115 200 b/s,8位數(shù)據(jù)位,1位停止位
    mcbsp_ready();
};

在發(fā)送數(shù)據(jù)時(shí),為保證MAX311E不丟失數(shù)據(jù),需用中斷方式或查詢方式,在MAX3111E的緩沖區(qū)空時(shí)再發(fā)送數(shù)據(jù),查詢方式發(fā)送數(shù)據(jù)程序如下:

void sendl(unsigned char data){
    unsigned char flag=0x0,datahi,datalow;
    while(flag!=0x4801){//第14位為1,表示發(fā)送緩沖區(qū)為空
    mcbsp_ready()


3 程序的編譯與自舉

通過JTAG接口,由仿真器可方便的對(duì)平臺(tái)進(jìn)行調(diào)試,同時(shí)完成應(yīng)用程序的寫入??稍贑CS集成開發(fā)環(huán)境中建立相應(yīng)的工程,導(dǎo)入.cmd文件、vector.asm文件、庫文件、源程序等。在編譯選項(xiàng)中加入一v548,編譯后生成相應(yīng)的.out文件。整個(gè)程序小于32 KB,使用C54xx通用Flash燒寫工具C54xx Flash Tool 2.01[2],生成相應(yīng)的16位hex文件及Flash燒寫的flashburn.Out文件。在CCS中導(dǎo)入flashburn.out,設(shè)置CPU寄存器DROM位為0,然后運(yùn)行,即完成了對(duì)SST39VF200B中程序的燒寫。

結(jié) 語

基于TMS320C5410實(shí)現(xiàn)的壓電捷聯(lián)慣導(dǎo)系統(tǒng)平臺(tái),電路體積小,系統(tǒng)穩(wěn)定性高。經(jīng)測試,整體性能滿足誤差校正、姿態(tài)角及速度、加速度的計(jì)算要求,并提供了捷聯(lián)慣導(dǎo)系統(tǒng)實(shí)現(xiàn)各種算法的基礎(chǔ)平臺(tái)。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉