www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]在Linux下通過串口編程對MEMS IMU數(shù)據(jù)采集和解算,實現(xiàn)了其高速實時采集。其中,設(shè)計的IIR低通濾波器有效消除了信號中的噪聲成分,并通過Qt編程設(shè)計了應用程序窗口將MEMS IMU的輸出數(shù)據(jù)動態(tài)顯示在ARM開發(fā)板上。

微機械慣性器件是集微型精密機械、微電子學、半導體集成電路等新技術(shù)于一身的世界前沿新技術(shù)。隨著微電子技術(shù)的發(fā)展,目前微機械慣性器件憑借其價格低、可靠性高、尺寸小、重量輕等特點引起了國內(nèi)慣性技術(shù)及微電子技術(shù)領(lǐng)域的廣泛關(guān)注。以陀螺儀和加速度計為核心部件的慣性導航系統(tǒng)已成為現(xiàn)代飛機、大型艦只和潛艇的一種重要導航設(shè)備,在其他一些民用領(lǐng)域中也有著十分廣泛和重要的應用。以慣性系統(tǒng)為基礎(chǔ)發(fā)展起來的慣性測量和慣性定位系統(tǒng),可以用于大地測量、地圖繪制、海洋調(diào)查、地球物理勘探、管道鋪設(shè)選線、石油鉆井定位和機器人等需要大范圍測量及精確定位的場合[1]。

本文在嵌入式Linux環(huán)境下使用ARM9開發(fā)板實現(xiàn)了對IMU輸出數(shù)據(jù)的采集和動態(tài)顯示,為進一步的工程應用打下基礎(chǔ)。

1 微慣性測量單元IMU

微慣性測量單元由6個傳感器組成,包括3個微機械陀螺儀和3個微機械加速度計,配置在立方體的3個正交平面上。其基本原理為古典的牛頓力學原理,由三根軸的陀螺確定載體的姿態(tài),安裝在三根軸上的加速度計測出載體的加速度值,積分得到速度,再積分得到位移[1,2]。

本文所采用的慣性測量單元為XW-IMU5200。它以DSP為核心處理器,采用16 bit高精度多通道并行A/D轉(zhuǎn)換。其A/D轉(zhuǎn)換器的采樣率至少是慣性傳感器帶寬的4倍,能夠保持慣性傳感器的固有頻率。6路并行采集通道可實時接收加速度計和陀螺儀以及溫度傳感器的信號,保證了數(shù)據(jù)采集的一致性。圖1所示為本文所采用的XW-IMU5200的外觀。

XW-IMU5200內(nèi)部有一個0.8 μs的計時器。計時器計數(shù)從0~216,然后開始新的周期(高位溢出后繼續(xù))。每個數(shù)據(jù)周期中,在讀取內(nèi)部計時器之前和之后,分別對兩組慣性測量數(shù)據(jù)進行采樣,然后將得到的數(shù)據(jù)做數(shù)字濾波并封裝;慣性測量數(shù)據(jù)、計時器數(shù)據(jù)、溫度數(shù)據(jù)通過XW-IMU5200的RS232口送出。

如圖2所示,Ti是周期的起點。從Ti到Ti1為0.1 ms,實現(xiàn)第一組數(shù)據(jù)的采樣;從Ti1到Ti2為1 ms,讀取內(nèi)部計時器;從Ti2到Ti3為0.1 ms ,實現(xiàn)第二組數(shù)據(jù)的采樣;從Ti3到Ti4進行濾波并封裝數(shù)據(jù),對IMU為1.8 ms, 對IMU而言,最大數(shù)據(jù)輸出速率約為100 Hz,波特率為115 200 b/s。

XW-IMU5200的測量數(shù)據(jù)包為19 bit,其定義如表1所示,數(shù)據(jù)為Little Endian格式,即低位(LSB)字節(jié)在先。


2 Arm-linux環(huán)境下的MEMS IMU數(shù)據(jù)采集實現(xiàn)

2.1 交叉編譯環(huán)境的建立

本設(shè)計所采用的ARM9開發(fā)板為S3C2440處理器,內(nèi)嵌Linux系統(tǒng)。
因嵌入式開發(fā)一般需要在PC機上進行,需要在宿主機建立交叉編譯環(huán)境,以下給出建立交叉編譯環(huán)境的步驟:
(1)安裝linux環(huán)境;
(2)下載交叉編譯文件包 cross-2.95.3.tar.bz2;
(3)建立交叉編譯環(huán)境目錄/usr/local/arm/;
(4)復制安裝包到目錄下,在此目錄下解包文件,命令為:tar jxvf cross-2.95.3.tar.bz2;
(5)配置環(huán)境變量,修改bashrc文件,在文件最后一行添加環(huán)境變量,代碼為export。
PATH=/usr/local/arm/2.95.3/bin: $PATH,保存退出后重啟Linux。
至此,交叉編譯環(huán)境建立完成。

2.2 串口通信的實現(xiàn)

本設(shè)計所采用的微慣性單元數(shù)據(jù)通過RS232串口輸出,同時所使用的ARM開發(fā)板上也附有串口,因此完成數(shù)據(jù)采集必須通過串口通信。

串口通信是儀器儀表設(shè)備通用的通信方式,它用于ASCII碼的字符傳輸,主要由地線、發(fā)送和接收數(shù)據(jù)線3根數(shù)據(jù)線完成,其他線用于握手。

串口通信的最重要的參數(shù)配置是:波特率、數(shù)據(jù)位和奇偶校驗位,在進行串口通信時,必須正確設(shè)置參數(shù)。Linux中所有的設(shè)備一般位于/dev下,串口1和2的名稱分別為/dev/ttyS0和/dev/ttyS1.通過對struct termios結(jié)構(gòu)體的各成員值的設(shè)置來進行串口設(shè)置,如下:
#include<termios.h>
Struct termio
{
unsigned short c_iflag; /*輸出控制模式標志*/
unsigned short c_oflag; /*輸出模式標志*/
unsigned short c_cflag; /*控制模式標志*/
unsigned short c_lflag; /*本地模式標志*/
unsigned char c_line;/*行標志*/
unsigned char c_cc[NCC; /*控制字符*/
};
其中,c_cflag包含對數(shù)據(jù)傳輸率、字符大小、數(shù)據(jù)位、停止位、奇偶校驗位和硬件流控的設(shè)置。
串口配置主函數(shù)如下:
int main(void)
{
int fd;
int nread,i;
char buff[512]="0";
if((fd=open_port(fd,1))<0)
{
perror("open_port error");
return;
}
if((i=set_opt(fd,38400,8,‘N‘,1))<0)
{
perror("set_opt error");
return;
}
printf("fd=%dn",fd);
while(1)
{
while((nread = read(fd,buff,sizeof(buff)))>0)
{
if(buff[i]==0xaa&&buff[i+1]==0x18);
printf("header foundn ");
}
}
close(fd);
return;
}

串口波特率為9 600 b/s,數(shù)據(jù)位為8 bit,無奇偶校驗位,1 bit停止位。對于串口的操作同讀寫文件,使用read、write函數(shù)。如上串口調(diào)通后,根據(jù)產(chǎn)品的解碼進行數(shù)據(jù)的解算,其算法可表示為:

IMU_meas.gyro[i]=IMU_data.gyro[i]*G_S/SCALAR;
//陀螺儀輸出數(shù)據(jù)解算,i取值1、2、3分別代表正交方向三路陀螺儀

IMU_meas.acc[i]=IMU_data.acc[i]*A_S/SCALAR;//加速度計輸出數(shù)據(jù)解算,i取值1、2、3,分別代表三路加速度計

本文忽略溫度信息只考慮6路傳感器信息,其中G_S為陀螺儀的角度范圍,A_S為加速度計測量范圍,scalar為常值215。

2.3 數(shù)字低通濾波

低通濾波屬于經(jīng)典濾波的范疇,它通過一定的運算關(guān)系改變輸入信號頻率成分的相對比例或濾除某些頻率成分,對MEMS IMU進行濾波的目的就是盡量濾除信號中的各種噪聲成分,因為MEMS IMU輸出信號的有用成分基本位于低頻段,加之實時性能的要求,這里只選擇相比FIR濾波器階次低得多的IIR濾波器[3]。

隨機采集一組數(shù)據(jù)進行濾波說明,如圖3為轉(zhuǎn)臺靜止狀態(tài)下y軸MEMS陀螺儀輸出的5 000點數(shù)據(jù),采樣頻率為100 Hz。

為了確定濾波器的通帶截止頻率,對這組數(shù)據(jù)進行Yule Walker功率譜密度分析[5],為了獲得較高的精度,此處取AR模型的階數(shù)為30,功率譜密度分析結(jié)果如圖4所示。

從圖4中可以看出陀螺儀輸出信號中存在兩個明顯的尖峰,分別位于14.6 Hz和28.5 Hz處,所以通帶的截止頻率必須小于14.6 Hz。這兩個尖峰是指陀螺儀輸出數(shù)據(jù)隨機誤差的正弦成分,由圖中可知它們對陀螺儀輸出數(shù)據(jù)的零點漂移起主導作用??紤]到過渡帶寬的因素,截止頻率的設(shè)置最大也應為7 Hz左右。但這一濾波器的任務除了要濾除正弦成分外,也應該濾除大部分的近似白噪聲統(tǒng)計特性的噪聲成分,并且在沒有噪聲情況下陀螺儀的輸出數(shù)據(jù)應為常數(shù),所以截止頻率設(shè)得越低越好。

設(shè)計IIR數(shù)字低通濾波器必須確定的另一個重要參數(shù)是濾波器的階數(shù)。階數(shù)低時,濾波時延較小,但過渡帶寬過大,濾波效果不明顯,階數(shù)高時,過渡帶寬較小,但濾波時延較大。為了既能獲得較好的濾波效果,又能夠最大限度地滿足實時應用,在選擇濾波器的階數(shù)時需要做折中考慮。基于以上分析,選擇具有單調(diào)下降幅頻特性的巴特沃斯濾波器。

采用巴特沃斯直接型結(jié)構(gòu),系統(tǒng)函數(shù)為:

通過分析比較,當通帶截止頻率設(shè)為4 Hz左右、濾波器階數(shù)設(shè)為4時,能得到理想的綜合濾波效果。圖5所示為濾波后的數(shù)據(jù)。

對濾波后的數(shù)據(jù)進行Yule Walker功率譜密度分析,結(jié)果如圖6所示。

比較圖4和圖6可以看出,濾波后的功率譜密度原來的兩個尖峰完全消失了,除0 Hz附近整體變得十分平坦。這正是期望的濾波效果,說明設(shè)計的濾波器達到了預期的濾波目的。計算濾波前后的均值與方差,結(jié)果如表2所示。

可以看出,濾波后的均值與濾波前的均值相比在誤差允許的范圍內(nèi)可以認為是相等的,濾波后的方差比濾波前的方差小兩個數(shù)量級。這說明合理地選擇巴特沃斯數(shù)字低通濾波器的截止頻率和階數(shù), MEMS陀螺儀輸出

的數(shù)據(jù)可產(chǎn)生較好的濾波效果。通過計算得出低通濾波器的權(quán)系數(shù)ak和br,便可根據(jù)差分方程編制C語言程序。

2.4 輸出數(shù)據(jù)基于Qt的界面顯示

Qt是一個跨平臺的C++圖形界面庫,主要通過匯集C++類的形式來實現(xiàn)應用程序界面開發(fā)所需要的一切,包括Qt/X11、Qt Embedded、Qtdesigner和Qt linguist等[4]。Qt是基于面向?qū)ο蟮腃++語言,它提供了signal(信號)和slot(槽)的對象通信機制,具有可查詢和設(shè)計的屬性以及強大的事件和事件過濾器。本文主要用到其面向嵌入式開發(fā)的Qt Embedded及其設(shè)計器Qtdesigner。

Qt界面開發(fā)通常有以下步驟:
(1)用Qt生成file.ui和main.cpp;
(2)用uic生成file.h和file.cpp;
(3)用qmake生成file.pro;
(4)通過./setenv命令設(shè)置環(huán)境變量;
(5)用tmake生成二進制代碼。

主函數(shù)部分如下:
int main( int argc, char ** argv)
{
QApplication a(argc, argv);
IMU_display w;
QTimer *t = new QTimer(&w );
a.connect(t,SIGNAL(timeout()),&w,SLOT(imu()));
t->start( 10, FALSE);
w.show();
a.connect(&a,SIGNAL(lastWindowClosed()),&a, SLOT(quit()) );
return a.exec();
}

IMU數(shù)據(jù)輸出速率為100 Hz,將Qtimer定時器設(shè)置為10 ms刷新一次,保證數(shù)據(jù)輸出的完整性。IMU數(shù)據(jù)的具體輸出可以進行定制。在上位機開發(fā)完系統(tǒng)之后,可以利用虛擬幀緩存技術(shù)(qvfb)技術(shù)在PC機上測試Qt/Embedded 程序。經(jīng)過反復的測試修改,測試成功之后制作圖標和桌面啟動器,通過minicom拷貝到ARM-Linux系統(tǒng)下的指定目錄,便完成了程序的開發(fā)工作,需要注意的是交叉編譯前需要將程序中上位機的串口名改為ARM開發(fā)板的指定串口名,否則程序?qū)⒉粫_\行。

本文實現(xiàn)了ARM-Linux環(huán)境下對于MEMS IMU的數(shù)據(jù)采集處理,功耗低、成本低、體積小,可廣泛應用到各種慣性測量領(lǐng)域。文中所述IIR數(shù)字低通濾波器,設(shè)計簡單,適合運用于有用信號和噪聲的頻帶不重疊的非高速變化運動的場合。其不足之處在于雖然可以取得較為理想的濾波效果,但同時產(chǎn)生了一定的延遲,所以不適合對于實時性要求很高的慣性測量場合,但可以通過改進濾波算法來實現(xiàn)。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉