ADISl6300四自由度IMU在姿態(tài)測量中的應(yīng)用
近年來,微機電系統(tǒng)(MEMS)技術(shù)廣泛用于汽車的系統(tǒng)和穩(wěn)定系統(tǒng)、醫(yī)學系統(tǒng)、便攜式照相機、運動裝置和三維鼠標等領(lǐng)域。簡單和小體積的慣性測量系統(tǒng)尤其受到關(guān)注,因此,基于MEMS的高精度、重量輕、小體積的姿態(tài)測量系統(tǒng)將得到廣泛的應(yīng)用。本文將介紹一種ADI公司的慣性傳感器以及由其組成的微小姿態(tài)測量系統(tǒng)。
1 ADISl6300簡介
ADISl6300四自由度(4DoF)IMU是一個完整的慣性測量傳感器,其內(nèi)置單軸陀螺儀和三軸加速計,每個傳感器都實現(xiàn)了iMEMS(Motion Sig-nal Processing Technology)技術(shù)與信號調(diào)理技術(shù)的完美結(jié)合,可提供最優(yōu)化的動態(tài)性能。工廠校準為每個傳感器提供靈敏度、偏置、對準和線性加速度特性。因此,每個傳感器都擁有自身的動態(tài)補償,從而可以在4.75~5.25 V的電源范圍內(nèi)進行精確的傳感器測量。由于AD-ISl6300所有必要的運動檢測與校準都是在工廠完成,大幅縮短了系統(tǒng)集成時間,并降低了測試設(shè)備成本。ADISl6300采用改進的SPI接口,可提供更快的數(shù)據(jù)收集與配置控制,用戶實現(xiàn)就像供電及連接SPI(串行外設(shè)接口)端口一樣簡單。ADISl6300采用23 mmx31 mmX7.5 mm封裝,具有2 000 g額定耐沖強度,并提供了一個標準的連接接口,使其能方便水平或垂直安裝。
ADISl6300角速度檢測的動態(tài)范圍具有±75、±150以及±300(°)/s 3種選項,三軸加速度的動態(tài)范圍為±3 g,可提供350 Hz帶寬,高達1 200次/秒的采樣速率,并具有嵌入式與可編程數(shù)字濾波功能。ADISl6300其價格僅為其他同級產(chǎn)品的1/10,可廣泛應(yīng)用于醫(yī)療儀器、機器人、慣性測量單元、導航控制等領(lǐng)域。
2 ADISl6300結(jié)構(gòu)功能
如圖1所示,圖(a)為ADISl6300的坐標系,其標出了每個慣性傳感器(陀螺儀和加速度計)的測量朝向。圖(b)為ADISl6300的標準接口引腳配置圖,引腳16,17,18,19,22,23,24是沒有連接的預(yù)留引腳;引腳10,11,12為電源VCC;引腳13,14,15為電源GND;引腳3,4,5,6分別為SPI接口的時鐘,數(shù)據(jù)輸出,數(shù)據(jù)輸入和器件選擇引腳;引腳1,2,7,9分別為配置數(shù)據(jù)輸入/輸出引腳;引腳8為復位引腳;引腳21,22分別為12位的ADC輸入和DAC輸出引腳。
ADISl6300功能模塊框圖如圖2所示,溫度傳感器、MEMS角速度傳感器和三軸MEMS加速度傳感器分別感知環(huán)境溫度、器件所受角速度和三維加速度,將信號調(diào)理并轉(zhuǎn)換,經(jīng)校準和數(shù)字信號處理后將數(shù)據(jù)存入輸出寄存器供外部SPI主控器件讀取。ADISl6300是一個智能的傳感器,傳感器上電后便自動以819.2次/秒采樣速率進行慣性測量。每個采樣周期結(jié)束后,傳感器測量結(jié)果存放至輸出寄存器,并且DI01引腳向器件外產(chǎn)生一個脈沖,表示一個完整的新慣性測量數(shù)據(jù)已經(jīng)采集準備好,可供外部SPI主控器件讀取。
3 ADISl6300基本操作
3.1 ADISl6300的SPI連接
ADISl6300是一個全數(shù)字接口的智能傳感器系統(tǒng),其SPI接口與各種微處理器SPI主控制器件接線如圖3所示。微處理器作為SPI主器件各引腳功能分別為:為從器件選擇;IRQ為中斷請求;MOSI為主器件輸出,從器件輸入;MISO為器件輸入,從器件輸出;SCLK為連續(xù)時鐘。AD-ISl6300對SPI時鐘需滿足:正常模式下SCLK不高于2 MHz:數(shù)據(jù)進發(fā)模式下SCLK不高于1 MHz;在低電壓模式下SCLK不高于300 kHz。
3.2 傳感器數(shù)據(jù)讀取
通過ADISl6300的SPI接口可讀取其傳感器的供電電壓,陀螺儀值,X,Y,Z軸加速度值,溫度值,縱搖角,橫搖角等數(shù)據(jù)。根據(jù)ADISl63 00讀取數(shù)據(jù)時序,讀取每個寄存器的內(nèi)容分為兩步,即2個16位的時序:第1個16位時序向ADISl6300寫入讀取命令和寄存器地址;第2個16位時序?qū)?yīng)寄存器內(nèi)容發(fā)送至DOUT數(shù)據(jù)線上。例如:如果第1個16位時序DIN=0x0A00,那么第2個時序時,XACCL_OUT(X軸加速度值)將被發(fā)送到DOUT數(shù)據(jù)線上。
數(shù)據(jù)進發(fā)模式是連續(xù)讀取ADISl6300數(shù)據(jù)的最好方式。在10個連續(xù)的時序周期內(nèi),9個常用寄存器數(shù)據(jù)可方便讀到,它們分別是:SUPPLY _0UT(供電電壓)、GYRO_OUT(陀螺儀)、XACCL_OUT(X軸加速度)、YACCL_0UT(Y軸加速度)、ZACCL_0UT(Z軸加速度)、TEMP_0UT(溫度)、PITCH_ 0UT(俯仰角)、0LL_OUT(橫滾角)和AUX_ADC(ADC轉(zhuǎn)換結(jié)果)。數(shù)據(jù)進發(fā)模式操作為:在連續(xù)10個時序周期內(nèi),DIN引腳對應(yīng)的10個輸入數(shù)據(jù)以0011 111O 0000 0000(Ox3E00)開始,之后9個數(shù)據(jù)可任選,同時在DOUT引腳上依次輸出如上所述9個輸出寄存器內(nèi)的數(shù)據(jù)。
3.3 數(shù)據(jù)處理
表1說明了ADISl6300數(shù)據(jù)輸出的格式和比例因子。從表1中可知,SUPPLY_0UT和AUX_ADC數(shù)據(jù)格式都為12位的二進制數(shù)據(jù),各慣性傳感器輸出的數(shù)據(jù)格式均為14位2的補碼,溫度傳感器輸出數(shù)據(jù)格式和AUX_ADC數(shù)據(jù)格式都是12位2的補碼,而橫搖角和縱搖角數(shù)據(jù)格式為13位的2的補碼。也就是說0x0000是0LSB.0x0001是+1 LSB,2n-1(n=12,13,14)為-1 LSB,LSB為滿量程輸入范圍的最小單位。若為GYRO_0UT時,1 LSB=O.05(°)/s。下式可用來將輸出數(shù)據(jù)轉(zhuǎn)換成浮點形式的姿態(tài)數(shù)據(jù)。
式中,DATA_OUTi為表1中輸出數(shù)據(jù),OUTi為轉(zhuǎn)換后浮點形式的姿態(tài)數(shù)據(jù),Scale為表1中最小單位,n為表1中數(shù)據(jù)位數(shù)。
例如:GYR0_0UT=0x384A,由于,則角速率Rate=(0x4000-Ox384A)×(-0.05)(°)/s=1206x(-0.05)(°)/s=-60.3(°)/s。因此,根據(jù)傳感器方向坐標定義,當GYRO 0UT為0x384A時,表示傳感器z軸以60.3(°)/s的角速率逆時鐘旋轉(zhuǎn)。
4 姿態(tài)測量系統(tǒng)設(shè)計
ADISl6300是四自由度(4DoF)慣性檢測系統(tǒng),能提供三軸加速度以及Z軸旋轉(zhuǎn)角速率,此外還輸出了橫搖角、縱搖角和溫度數(shù)據(jù),能應(yīng)用于醫(yī)療儀器、機器人、慣性測量單元、導航控制領(lǐng)域等。介紹基于C8051F330和ADISl6300的姿態(tài)測量系統(tǒng),該系統(tǒng)采用C805lF330單片機的SPI接口讀取ADISl6300的數(shù)據(jù)。再將采集到的數(shù)據(jù)通過串行RS-232接口輸出。
4.1 硬件設(shè)計
姿態(tài)測量系統(tǒng)的硬件連接如圖4所示,器件ADISl6300無需其他外圍電路,本設(shè)計僅采用0.1μF和10μF電容并聯(lián)入器件供電電路進行電源退耦。C8051F330是美國Slincon公司生產(chǎn)的一款高性能的8051內(nèi)核單片機,它具有增強波特率配置的全雙工UART和增強型SPI端口,采用4 mm×4 mmx0.9 mm封裝。C8051F330的IO口允許0~5 V電平,且ADISl6300的SPI接口輸入高電平只需2.0 V,因此C8051F330和ADISl6300雖是不同工作電源器件,但它們的接口電平兼容,可采取直接連接的方式直接連接。RS-232電平轉(zhuǎn)換采用MAX3232,它是一款3~5.5 V單通道RS-232線路驅(qū)動器/接收器。電源電路可提供+5 V和+3.3 V電壓,分別為ADISl6300和C8051F330提供電源。
4.2 軟件設(shè)計
姿態(tài)測量系統(tǒng)單片機的SPI接口采用數(shù)據(jù)進發(fā)模式讀取ADISl6300數(shù)據(jù),根據(jù)ADISl6300數(shù)據(jù)進發(fā)模式定義,在10個連續(xù)時序周期下,9個輸出寄存器內(nèi)的數(shù)據(jù)依次輸出到DOUT引腳上。程序流程如圖5所示,程序啟動進入系統(tǒng)初始化.包括IO口、SPI和串口等。對ADISl6300的操作程序首先向其寫入0x3E00,并讀取返回的數(shù)據(jù),此次數(shù)據(jù)為SPI之前的數(shù)據(jù),之后向ADISl6300連續(xù)寫9次0x0000,便可連續(xù)讀到9個輸出寄存器內(nèi)數(shù)據(jù)。完成9個數(shù)據(jù)讀取后,按上述數(shù)據(jù)處理中介紹的數(shù)據(jù)處理方法解算9個數(shù)據(jù),最后通過串口輸出。
5 試驗及數(shù)據(jù)分析
為了能對由C8051F330和ADISl6300傳感器組成的姿態(tài)測量系統(tǒng)進行簡單的測定,該試驗采用姿態(tài)與航向參考系統(tǒng)(attitude and heading reference system)AHRS500GA-226作為參考傳感器。該傳感器可測量被安裝物體的歐拉方位角(航向、縱搖角與橫搖角),其內(nèi)置三軸磁場計、3個陀螺儀和3個加速度計,能高精度、高靈敏地測出360°范圍的方位角,±180°橫滾角,±90°俯仰角。試驗中將兩系統(tǒng)固定安裝在同一平臺上,使平臺運動并用計算機同時保存兩系統(tǒng)輸出的姿態(tài)數(shù)據(jù)。兩系統(tǒng)輸出的航向角速率、X軸加速度、Y軸加速度、Z軸加速度四組姿態(tài)數(shù)據(jù)利用Matlab軟件圖形顯示如圖6所示。
從圖中可以看出,利用ADISl6300所測量的航向角速率、X軸加速度、Y軸加速度和Z軸加速度4個空間姿態(tài)數(shù)據(jù)與AHRS所測量的姿態(tài)數(shù)據(jù)基本一致,其中ADISl6300輸出的航向角速率、X軸加速度、Y軸加速度和Z軸加速度平均誤差分別為0.469(°)/s、O.009 m/s2、O.010m/ s2、O.003 m/s2。ADISl6300數(shù)據(jù)的噪聲較大,這是由于它的數(shù)據(jù)輸出未經(jīng)濾波處理和融合算法處理,而AHRS經(jīng)過復雜的融合算法和濾波處理。因此,要使用ADISl6300獲取更準確、更平滑的姿態(tài)數(shù)據(jù)還需將其數(shù)據(jù)進行融合或濾波處理,如卡爾曼算法。
6 結(jié)論
四自由度IMU慣性測量傳感器ADISl6300可準確測量空間姿態(tài),采用C805lF330與ADISl6300組成的姿態(tài)測量系統(tǒng)能夠?qū)崿F(xiàn)準確測量空間姿態(tài)。ADISl6300輸出的航向角速率、X軸加速度、Y軸加速度和Z軸加速度4個空間姿態(tài)的平均誤差分別為0.469(°)/s、0.009m/s2、0.01 0m /s2、0.003 m/s2。然而姿態(tài)數(shù)據(jù)的噪聲需濾波和融合算法來消除,以獲得更為平滑、精確的空間姿態(tài)數(shù)據(jù)。