999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

提高IMU的精度和速度的硬件設計和程序優(yōu)化

2011-04-29 00:00:00張雨喬
今日財富 2011年1期

【摘要】在導航系統(tǒng)中,慣性測量組件(IMU)的精度和速度嚴重影響到導航計算機的性能。為了提高IMU系統(tǒng)的精度和速度,提出了在硬件方面采用高速AD轉(zhuǎn)換器和DSP,同時在程序中采用了基于LD分解的Kalman濾波技術,并采用線性匯編語言對濾波程序進行了優(yōu)化。系統(tǒng)的可靠性和速度得到很大的提高。

【關鍵詞】IMU DSP Kalman濾波 線性匯編語言

【中圖分類號】TP314【文獻標識碼】A【文章編號】1009-8585(2011)01-00-03

1 引言

捷聯(lián)慣性測量組件(IMU)在捷聯(lián)導航系統(tǒng)中所起的作用是相當重要的,其誤差參數(shù)標定的準確性以及速度直接影響著導航精度。載體的導航信息包括角速度和加速度,當這種導航信息發(fā)生變化時,陀螺儀和加速度計就會檢測到這種變化量,并進行相關的轉(zhuǎn)化,最后以脈沖數(shù)大小的形式來表示這種變化量的大小。數(shù)據(jù)采集卡就是用于在采樣時間內(nèi)統(tǒng)計脈沖的數(shù)目,并利用預先測定的標度因子進行解算處理,進而得出直觀的導航信息。因而,這里對采集卡速度和精度就有較高的要求。然而,隨著對IMU體積的要求,僅僅依靠硬件電路的設計來提高系統(tǒng)的速度和精度已經(jīng)難以達到要求,這就需要改進算法程序。

2 系統(tǒng)硬件電路

本系統(tǒng)主要采用了三個陀螺和三個加速度計、高速AD器件和核心處理器DSP。由于需要采集六路模擬量,而系統(tǒng)空間有限以及節(jié)省硬件開銷,故需要對輸入的信號進行依次選通,最后當所有的數(shù)據(jù)都采集完畢以后,再對數(shù)據(jù)進行補償處理,其基本框圖如圖1所示:

為了提高系統(tǒng)的速度,本系統(tǒng)采用了高速AD器件ADS5521和高性能核心處理器件TMS320C6713。ADS5521是一種高性能12位模數(shù)轉(zhuǎn)換器,它的采樣速度可以達到105MSPS,僅采用3.3V單電源供電,并且是內(nèi)置參考電壓。TMS320C6713芯片的關鍵性能特點是:最高可達225MHz的時鐘頻率;264K的在上數(shù)據(jù)存儲器,存儲資源足夠大;憑借超常指令字結構和二級高速緩存,DSP的性能可達2400MIPS,最大1800MFLOPS,速度非常快;

該系統(tǒng)采用這兩種芯片,在很大程度上可以提高系統(tǒng)的速度,但是系統(tǒng)的運行程序也會影響整個IMU的速度和精度,因此必須充分考慮程序的執(zhí)行時間和效率。

3 系統(tǒng)軟件設計以及優(yōu)化

DSP程序是系統(tǒng)進行數(shù)據(jù)處理的核心模塊。根據(jù)AD輸入的陀螺和加速度計信號進行誤差補償,然后轉(zhuǎn)化為RS422形式并發(fā)送給外部設備。整個系統(tǒng)根據(jù)功能要求主要分為兩個模塊:引導程序bootloader模塊和用戶程序模塊。

軟件結構如圖2所示。

引導程序Boot模塊:DSP的系統(tǒng)引導裝載(Boot)是指在系統(tǒng)加電時,由DSP將一段存儲在外部非易失存儲器中的代碼移植到高速存儲器單元中執(zhí)行。引導程序負責將中斷向量表和用戶代碼段從片外FLASH移植到其它高速存儲器中。

用戶程序模塊:首先數(shù)據(jù)采集程序采集陀螺和加速度計的數(shù)據(jù),然后對陀螺和加速度計的數(shù)據(jù)進行誤差補償處理,最后將補償后的數(shù)據(jù)通過RS422發(fā)送程序發(fā)送到系統(tǒng)的外部。參見圖3。

程序中最消耗時間的是數(shù)據(jù)處理程序中的誤差補償部分,在補償濾波程序中,為了防止發(fā)散,我們采用了LD分解的Kalman濾波技術,該技術的應用同時也提高的系統(tǒng)的精度。但是,該方法不僅增加了代碼的長度,而且消耗了大量的時間,因此要對次部分程序做大量的優(yōu)化工作。

3.1 利用編輯器選項優(yōu)化

C6000的C優(yōu)化器是TI 公司的一個創(chuàng)新,它對程序循環(huán)的流水處理使得C代碼的效率得到很大的提高,,只要在編譯時加入優(yōu)化項即可。

使用-mt編譯選項,使用此選項是函數(shù)在參數(shù)傳遞過程中,C編譯器會假設存儲器關聯(lián)消除,從而能夠更好的優(yōu)化。該系統(tǒng)中采用最高級別的優(yōu)化選項進行編譯: cl6x-o3-pm file.c-z。

3.2 采用C程序和匯編程序混合編程

混合編程的一般方法有三種:一是對C程序編譯后形成的匯編程序進行手工的修改與優(yōu)化。二是直接在C語言程序中嵌入?yún)R編語句。三是分別編寫C程序和匯編程序,再獨立編譯成目標代碼模塊,再進行鏈接。第三種方式是混合編程最常用的方式之一,也是我們系統(tǒng)采用的方式。在這種方式下,C程序與匯編程序均可使用另一方定義的函數(shù)與變量。

變量定義的規(guī)則與數(shù)組、指針的使用變量定義是混合編程的基本問題。C程序與匯編程序定義的變量相互之間可以進行訪問。在匯編程序中定義時,需要在變量前加下劃線“_”,然后再用.global定義為全局變量,在C程序中則需要說明為extern變量。

以下程序是為了完成LD分解的Kalman濾波的線性匯編程序而編寫的部分程序:

程序1:矩陣乘法

線性匯編程序

.global _mpyMatix

_ mpyMatrix:

.cproc a,b,c,n

.reg l_out,l_mid,l_in,i,j,sum,k,

v1,v2,v11,v21,v12,a_i,b_i,c_i

MV n,l_out

ZEROi

outloop: ZERO j

MV n,l_mid

midloop: ZEROsum

ZEROk

MV n,l_in

inloop:MPY i,n,v1

MPY k,n,v2

ADDv1,k,v11

ADDv2,j,v21

ADDv1,j,v12

LDW*+a[v11],a_i

LDW*+b[v21],b_i

MPYa_i,b_i,c_i

ADDsum,c_i,sum

ADDk,1,k

[l_in] SUBl_in,1,l_in

[l_in] B inloop

STWsum,*+c[v12]

ADDj,1,j

[l_mid]SUBl_mid,1,l_mid

[l_mid]B midloop

ADDi,1,i

[l_out]SUBl_out,1,l_out

[l_out]B outloop

.endproc

C程序中的聲明和調(diào)用

double mpyMatix(double *a, double *b, double *c,int n);

mpyMatix (a[0][0],b[0][0],c[0][0],n);

程序2:LD分解

.global _LDdis

_LDdis:

.eproc n,pmatrix,lmatrix,dmatrix

.reg i,j,k,m_loop1,m_loop2,m_loop3,

m_loop4, sum1,constant1,constant2, v1,v2,v3,

v, x,x1,y

ZERO i

MVn,m_loop1

Loop1:MPYn,i,x

ADDx,i,x

MVK1,constant1

STWconstant1,*+lmatrix[x]

ADDi,1,i

[m_loop1] SUBm_loop1,1,m_loop1

[m_loop1] B loop1

LDW*+pmatrix[0],x

STWx,*+dmatrix[0]

MVn,m_loop2

SUBm_loop2,1,m_loop2

MVconstant1,i

RCPDP x,constant2

Loop2:MPYn,i,x

LDW*+pmatrix[x],v1

MPYv1,constant2,v2

STWv2,*+lmatrix[x]

ADDi,1,i

[m_loop2] SUBm_loop2,1,m_loop2

[m_loop2] B loop2

MVn,m_loop3

SUBm_loop3,1,m_loop3

MVK 1,j

Loop3: MPYj,n,x1

MPYk,n,y

ZERO sum1

ZERO k

MVj,m_loop4

Loop4: ADDx1,k,x

ADDy,k,y

LDW*+lmatrix[x],v1

LDW*+dmatrix[y],v2

MPYv1,v2,v

MPYv,v1,v

ADDsum1,v,sum1

ADDk,1,k

[m_loop4]SUBm_loop4,1,m_loop4

[m_loop4]B m_loop4

ADDx1,j,x1

LDW*+pmatrix[x1],v3

SUBv3,sum1,v3

STWv3,*+pmatix[x1]

ADDj,1,j

[m_loop3]SUBm_loop3,1,m_loop3

[m_loop3]B loop3

由于空間有限,只列寫了一部分該程序。

4 結論

本系統(tǒng)在硬件電路上采用了高速AD器件和DSP芯片,同時在程序設計上也采取了適當?shù)膬?yōu)化措施,對于消耗時間比較長的誤差處理補償程序,采用了線性匯編語言編寫,雖然增加了代碼的長度,但是卻大大提高了系統(tǒng)的時間。

參考文獻

[1] 裴聽國,李漢舟.全數(shù)字IMU方案[J].中國慣性技術學報.2003.12:69-83.

[2] 李璞,蔡同英.捷聯(lián)測量裝置的數(shù)據(jù)采集技術[J].應用科技.2004.4:48-50.

[3] 陽明曄, 張志勇. 基于TMS320C6000系列DSP的C代碼優(yōu)化方法研究[J].微處理機.2004.4:59-64.

[4] 張淑艷,劉偉寧.TIC6200系列DSP代碼優(yōu)化技術研究[J].計算機工程.2006.1:82-86.

[5] 李方慧,王飛等.TMS320C600系列DSPs原理與應用[M].北京:電子工業(yè)出版社.2003.197-314.

主站蜘蛛池模板: 91九色国产porny| 综合色区亚洲熟妇在线| 国产精选小视频在线观看| 55夜色66夜色国产精品视频| 国产丝袜啪啪| 无码高潮喷水在线观看| 国产福利微拍精品一区二区| 亚洲乱伦视频| 亚洲第一中文字幕| 亚洲一道AV无码午夜福利| 国产H片无码不卡在线视频| 亚洲国产精品人久久电影| 日韩小视频在线播放| 国产主播喷水| 欧美中出一区二区| 青青操国产视频| 精品人妻AV区| 国产女人综合久久精品视| 色综合日本| 久久成人免费| 免费一极毛片| 国产91无码福利在线| 欧美第二区| 国产91无码福利在线| 久久美女精品| 91在线国内在线播放老师| 欧美亚洲欧美区| 毛片免费在线| 激情在线网| 免费人成视网站在线不卡| 亚洲婷婷六月| 久久福利片| 成人无码区免费视频网站蜜臀| 日韩在线欧美在线| 欧洲成人在线观看| swag国产精品| 久久精品日日躁夜夜躁欧美| 久久精品嫩草研究院| 黄色一级视频欧美| 香蕉综合在线视频91| 欧美精品xx| 超碰91免费人妻| 女人18一级毛片免费观看 | 日本精品αv中文字幕| 国产成人精品日本亚洲| 在线看免费无码av天堂的| 午夜少妇精品视频小电影| 成年人国产视频| 亚洲国产精品一区二区第一页免| 亚洲人成在线精品| 欧美一区二区三区国产精品| 久久公开视频| 人禽伦免费交视频网页播放| 97人人做人人爽香蕉精品| 午夜精品久久久久久久无码软件| 亚洲欧美另类日本| 久久精品波多野结衣| 色哟哟色院91精品网站| 欧美高清三区| 日韩国产欧美精品在线| www.亚洲国产| 91在线国内在线播放老师| 亚洲婷婷在线视频| 久久窝窝国产精品午夜看片| 91精品视频在线播放| 亚洲精品老司机| 欧美成人精品在线| 国产视频久久久久| 精品一区二区三区四区五区| 国产真实乱了在线播放| 亚洲高清国产拍精品26u| 国产视频入口| 麻豆精品视频在线原创| 国产精品第一区| 免费看的一级毛片| 日韩av无码DVD| 国产剧情国内精品原创| 伊人网址在线| 免费无码AV片在线观看国产| 欧美成人一区午夜福利在线| 无码中文字幕加勒比高清| 波多野结衣视频一区二区|