基于三軸加速度計的傾斜角傳感器的研究與設(shè)計
在很多運用場合,都必須弄清楚裝備對于重力場是水平的還是垂直的,與水平面呈多大角度。在許多國家有這樣的規(guī)定,升降機和起重機上都必須要有傾斜監(jiān)控。對于傾斜監(jiān)控在人類交通工具上尤為重要。離軌列車需要傾斜信息來避免事故發(fā)生,或保持某些重要部件在某一確定角度。一些交通工具,例如自傾斜火車需要傾斜角來補償離心力。有時需要用傾斜計來保持平臺的水平,或者一定角度,傾斜角傳感器的研究極為重要。傳感器的微型化、智能化已成為傳感器發(fā)展的趨勢,基于MEMS技術(shù)的全固態(tài)微傳感器的研究已成為傳感器研究的一個重要方面,實際應(yīng)用中的傾斜角傳感器包括,液態(tài)傾斜角傳感器,氣體傾斜角傳感器,固態(tài)傾斜角傳感器,光學(xué)傾斜角傳感器,與液態(tài)傾斜角傳感器相比,固態(tài)傾斜角傳感器具有結(jié)構(gòu)簡單,可重復(fù)性強,反應(yīng)快的優(yōu)點,與光學(xué)傾斜角傳感器相比,固態(tài)傾斜角傳感器具有適應(yīng)性強,價格便宜的優(yōu)勢。
由加速度傳感器測量傾斜角的途徑很多,文獻(xiàn)中提出了一種基于兩軸加速度傳感器ADXL213的傾角測量裝置,實現(xiàn)了全擺幅高精度測量,并能在運動車輛中抵消前進(jìn)方向加速度,實現(xiàn)運動中單方向高精度測量。文獻(xiàn)中同樣運用兩軸壓力傳感器實現(xiàn)單方向全擺幅傾角測量文獻(xiàn)。文獻(xiàn)中運用兩軸加速度傳感器ADXL202實現(xiàn)了全方位,45°擺幅內(nèi)低誤差傾斜角測量。文獻(xiàn)中運用液態(tài)兩軸傾斜角傳感器實現(xiàn)全方位、低擺幅、高精度傾斜角傳感器。單軸加速度傳感器只能實現(xiàn)單方向,低擺幅傾斜角測量,兩軸傾斜角傳感器,方向和擺幅不能兼顧。本文將討論采用三軸微加速度傳感器實現(xiàn)智能化傾斜角傳感器方法。
l 傾斜角測量原理
對于軸加速度傳感器,當(dāng)它的傳感方向和重力加速度方向一致時,假如此時為零傾斜角度,設(shè)加速度傳感器測量結(jié)果為F(θ),θ為傾斜角度,g為重力加速度,如圖l所示。
所以當(dāng)傾斜角θ太小時,測量的分辨率就會太小,當(dāng)角度足夠大時精度才會上升。所以對一軸傾斜角傳感器的運用是:把它的傳感方向與重力加速度方向垂直時的狀態(tài)設(shè)為零傾斜角度,文獻(xiàn)運用此方法測量傾斜角,如圖2所示,此時:
此時傾斜角度小時測量精度高,而對于一軸加速度傳感器而言,只能測一個方向的傾斜角。所以用一個兩軸加速度傳感器,兩個傳感方向皆垂直于重力加速度,當(dāng)兩軸傾斜角傾斜時,加速度傳感器測量結(jié)果為:
如何利用θx,θy求出傾斜角θ。首先定義兩組三軸向量:[x,y,z]為參考O傾斜向量,[u,v,r]為傾斜后的向量。如圖3所示,設(shè)向量[z,y,z]先繞y軸傾斜,再繞x軸傾斜,所以從[x,y,z]到[u,v,r]的轉(zhuǎn)換為:
設(shè)x,y為水平方向,z為垂直方向。(x,y,z)=(0,0,1)于是便有:
此時u=kF(θx)=kgsinθx,v=kF(θy)=kgsinθy,所以:
而傳感器實際傾斜角為:
所以只要得出兩軸加速度傳感器測量結(jié)果F(θx)和F(θy)就可以計算出θx和θy,進(jìn)而知道總的傾斜度。[!--empirenews.page--]
同一軸傳感器,兩軸傳感器測量精度有限,當(dāng)θx,或θy越接近±兀/2時,分辨率越低。只有在傾斜角度接近O時分辨率最高。利用兩軸加速度傳感器的這種測量方法可以實現(xiàn)全方位傾斜測量。
為實現(xiàn)高精度全擺幅傾斜測量就必須把兩軸加速度傳感器垂直放置,一個傳感方向與重力方向垂直,一個傳感方向與重力方向平行。運用此方法測量傾斜角。加速度傳感器測量結(jié)果為:
此時θ為單方向上全擺幅、高精度傾斜角度。運用兩軸加速度傳感器無法解決傾斜角測量中全方位和全擺幅不能共同實現(xiàn)的矛盾。所以為測量一個全方位,全擺幅的傾斜角就必須使用三軸加速度計。
運用三軸加速度計測量傾斜角就必須把測量范圍分為兩檔,一檔為傾斜角為-π/4~π/4,二檔為傾斜角為(-π/2~-π/4)&(π/4~π/2)。當(dāng)傾斜角度在±π/4之間時,, 這里以F(θz)的值作為劃分檔次的依據(jù)。在一檔中F(θx),F(xiàn)(θy)的分辨率很高,此時相當(dāng)于運用一個兩軸加速度傳感器測量全方位,低擺幅傾斜角,運用式(15)可以計算傾斜角。在二檔中F(θz)的分辨率都很高,此時相當(dāng)于運用一個一軸加速度傳感器測量全方位,高傾斜角度的傾斜角,運用式(1)可以計算傾斜角。
2 SCA3000
傳感器的微型化、智能化、低功耗是當(dāng)今傳感器發(fā)展的必然趨勢,微電子機械系統(tǒng)技術(shù)(MicroElectro,Mechanical Systems,MEMS)是傳感器微型化發(fā)展道路上的一項重要技術(shù)。SCA3000-D1是VTI公司的全數(shù)字化三軸加速度計,量程±2g,電源電壓3.3 V,64組緩沖存儲器記錄數(shù)據(jù),在系統(tǒng)一級上面,有先進(jìn)的性能和有效節(jié)能方式,頻率響應(yīng)可選,SPI數(shù)字串口通信,抗沖擊力強,可以應(yīng)用于許多惡劣的條件下。
2.1 傳感器前端
前端單元采用了耐用、穩(wěn)定、低功耗和噪聲的電容傳感器,這個前端單元包含三個加速度傳感塊。由于結(jié)構(gòu)原因,三個加速度傳感塊傳感方向與直角坐標(biāo)成45°角,所以在接口電路模塊中有一個匹配處理,加速度導(dǎo)致電容變化接著在信號調(diào)理電路中轉(zhuǎn)化為電壓變化。
2.2 接口電路
傳感單元連接一個電容電壓轉(zhuǎn)換器,接下來在模擬領(lǐng)域校準(zhǔn),信號通過ADC轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,ADC信號被分離成三個信號處理通道,經(jīng)過低通濾波器和驟減。之后,信號配合上直角坐標(biāo)系和傳輸給輸出寄存器。在一般測量中,加速度數(shù)據(jù)能夠通過串行總線SPI讀出。
3 硬件設(shè)計
在此運用ARM7微控制器LPC2210和三軸加速度計SCA3000測量數(shù)據(jù)。運用ZLG7290控制LED顯示傾斜角度,保留一組SPI接口用于擴展功能。
如圖5所示,LPC2294通過SPI總線連接SCA3000,通過I2C總線連接ZLG7290,開關(guān)S1,S2,S3,S4用做校準(zhǔn)功能使用,具體運用后面介紹。
SPI是一個全雙工的同步串行接口,一個SPI總線可以連接多個主機和多個從機,但是在同一時刻只允許一個主機操作總線,總線上只能有一個主機和一個從機通信。SPI總線一般由3~5根線組成,如圖5所示為經(jīng)典的4線SPI連接電路,一個主機連接兩個從機,主出從進(jìn)(Master Out Slave In,MOSI),主入從出(Master In Slave Out,MISO),串行時鐘(Serial ClocK,SCK),片選(Chip Select,CSB)低有效,工作時SSO,SSl只能有一個為低。主機一般為微控制器產(chǎn)生串行時鐘,從機接收時鐘。SCA3000一般作為從機組成一個系統(tǒng)。[!--empirenews.page--]
SCA3000SPI幀格式和傳輸協(xié)議如圖6所示。
當(dāng)CSB為低時,SPI幀觸發(fā),每一幀數(shù)據(jù)有16 b,MOSI線上前8 b包含需要讀/寫的寄存器地址和讀/寫控制,其中前6 b為寄存器地址,第7 b為讀/寫控制,1為讀,O為寫,第8 b為0,MOSI線上后8 b為需要寫的數(shù)據(jù),讀時不要考慮上面的數(shù)據(jù)。MOSI線上數(shù)據(jù)是在時鐘上升沿被采樣,而在MISO線上數(shù)據(jù)在時鐘下降沿被裝載。
MISO線上,第2 b為前一SPI幀的幀錯誤比特,第7 b始終為1,第8 b為當(dāng)前幀數(shù)據(jù)的奇偶校驗位。后8位數(shù)據(jù)為要讀取的數(shù)據(jù),在寫過程中為地址寄存器中先前數(shù)據(jù)。
4 數(shù)據(jù)處理與校驗
由于測量精度、外力影響,三軸加速度計的橫軸傳感,零刻度度偏移,溫度飄移等影響導(dǎo)致三軸加速度計在測量上出現(xiàn)誤差,或者測量數(shù)據(jù)受到不同程度的污染,這對求傾斜角產(chǎn)生很大的阻礙。由于上述原因的影響,現(xiàn)實中測量得到的三軸加速度計的三個數(shù)據(jù)的矢量和往往不會等于重力加速度。有外力時加速度傳感器測得的是重力與外力和的加速度,肯定不等于重力加速度,有恒外力作用時難以直接測量傾斜角的準(zhǔn)確值(運用適當(dāng)方法進(jìn)行補償或抵消除外),SCA3000對數(shù)字信號進(jìn)行低通濾波可以去除掉高頻振動;對三軸數(shù)字?jǐn)?shù)據(jù)進(jìn)行權(quán)限設(shè)置,對于三軸數(shù)據(jù)矢量和與重力加速度的偏差大于0.05g時拋棄此次測量數(shù)據(jù),保證測量精度。
4.1 零點偏移
零刻度偏移的解決方案,當(dāng)傾斜角較小時,z軸數(shù)據(jù)的分辨率極低,影響測量精度,所以此時運用其中兩軸進(jìn)行傾斜角測量將更精確。為提高精度,需要對傾斜角傳感器進(jìn)行調(diào)零校正,校正后的結(jié)果將是測量值減去偏移值后的數(shù)據(jù)。偏移值的測量方法有兩種:
(1)將傳感器放置在一個校準(zhǔn)水平面上,此時的輸出即為偏移值。
(2)如圖7所示,測量出圖7(a).(b)姿勢的輸出VA,VB偏移值為(VA+VB)/2。
4.2 橫軸傳感
橫軸傳感補償方案,由于組合封裝或者器件本身結(jié)構(gòu)原因,三軸加速度計存在橫軸傳感現(xiàn)象,三軸加速度計的橫軸傳感的度量有下式定義:
式中:Sx,Sz為橫軸方向測得的傳感量,Sy為測試方向測得的傳感量,由于橫軸傳感的存在,使得測量結(jié)果不準(zhǔn)確,所以需要對輸出結(jié)果進(jìn)行補償,首先來考慮兩軸間的傳感補償,如圖8所示。[!--empirenews.page--]
圖8中,測試方向為y軸方向,加速度傳感器如圖8(a)樣式放置時,x軸輸出為Voutx-A,y軸輸出為Vouty-A;加速度傳感器如圖8(b)樣式放置時,x軸輸出為Voutx-B,y軸輸出為Vouty-B,測試方向y軸傳感量為:
x橫軸傳感量為:
所以當(dāng)傾斜角傳感器傾斜為某一角度時,x橫軸數(shù)據(jù)經(jīng)y軸進(jìn)行傳感補償后的值為:
式中:xoutComp為補償后的x軸數(shù)據(jù);Vouty-axis為x軸測量數(shù)據(jù);Vouty-axis為y軸測量數(shù)據(jù);Voffsety為y軸數(shù)據(jù)偏移值。同樣,z軸數(shù)據(jù)對x軸數(shù)據(jù)進(jìn)行補償后得到x軸數(shù)據(jù)的校準(zhǔn)值。
4.3 數(shù)據(jù)融合
SCA3000工作在測量模式下時,傳感器輸出數(shù)據(jù)速率為260 Hz,0.37 s就可以產(chǎn)生一次輸出緩沖存儲器半滿中斷。所以在傾斜角度變化不是很劇烈的情況下,可以對每一輸出緩沖存儲器中數(shù)據(jù)進(jìn)行加權(quán)平均求得傾斜角度。
5 軟件設(shè)計
程序主要分三部分,主程序main,傾斜角計算子程序tlitcalculate和校準(zhǔn)子程序calibrate,在對SCA3000進(jìn)行操作時,還要調(diào)用SPI讀寫程序,在對ZLG7290進(jìn)行操作時調(diào)用I2C讀寫子程序。
如圖9所示,在傾斜角傳感器第一次使用前必須對其進(jìn)行校準(zhǔn),包括測量各軸的零點偏移,各軸的橫軸傳感量,當(dāng)PO.1置高時進(jìn)入校準(zhǔn)狀態(tài)。在校準(zhǔn)中,PO.9&PO.10&PO.11=000時,將SCA3000按z軸垂直向上放置;PO.9&P0.10&P0.11=001時,將SCA3000按z軸垂直向下放置;PO.9&P0.10&P0.11=OlO時,將SCA3000按x軸垂直向上放置;P0.9&PO.10&PO.11=01l時,將SCA3000按x軸垂直向下放置;P0.9&PO.10&P0.11=100時,將SCA3000按y軸垂直向上放置;P0.9&P0.10&P0.11=101時,將SCA3000按y軸垂直向下放置。綜合各個狀態(tài)時的數(shù)據(jù)完成零點偏移和橫軸傳感量計算。實際運用中,SCA3000安裝在平臺上時不可能保持xy軸與平臺完全平行,z軸完全垂直平臺。所以在進(jìn)行測量前必須取得平臺水平放置時SCA3000的輸出值,將其設(shè)為初始值保存于FLASH中。
在傾斜角計算中。首先讀數(shù)據(jù)進(jìn)行零點偏移補償和橫軸傳感補償,接著對嚴(yán)重污染的數(shù)據(jù)丟棄,進(jìn)行數(shù)據(jù)融合,再判斷傾斜角度大小。當(dāng)角度較小時,利用兩軸數(shù)據(jù)進(jìn)行計算,當(dāng)角度過大時運用三軸數(shù)據(jù)進(jìn)行計算。
主程序中,采用定時器中斷和SCA3000緩存器中斷兩個中斷對SCA3000數(shù)據(jù)進(jìn)行讀寫。保證數(shù)據(jù)的實時性。
6 結(jié)語
本文基于三軸加速度計SCA3000和ARM處理器芯片LPC2210設(shè)計了一種三軸傾斜角智能傳感器,它具有全方位和全擺幅的特點。本文對兩軸、三軸加速度計測量傾斜角的原理進(jìn)行了分析,采用兩軸、三軸數(shù)據(jù)的合理運用,實現(xiàn)精度高、抗噪性能強的傾斜角傳感器的研究。
對傳感器數(shù)據(jù)采用零點偏移補償,橫軸傳感量補償,進(jìn)一步提高了數(shù)據(jù)的精度。采用SPI接口實現(xiàn)傳感器與微控制器間的通信,采用定時器中斷和SCA3000緩存器中斷兩個中斷喚起對傳感器數(shù)據(jù)的讀/寫,實現(xiàn)對傳感器數(shù)據(jù)讀速度可控。