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