O 引言
傾角傳感器是測(cè)量關(guān)于水平傾斜角的裝置,,傾角變化測(cè)量?jī)x器是許多工業(yè)應(yīng)用設(shè)備需要具備的一個(gè)組成部分,包括測(cè)量設(shè)備,、衛(wèi)星天線穩(wěn)定系統(tǒng),、工廠機(jī)床、運(yùn)動(dòng)安全監(jiān)視器和汽車輪位對(duì)準(zhǔn)裝置等,。準(zhǔn)確地測(cè)量?jī)A角的變化,,有利于這些設(shè)備更加穩(wěn)定的工作及避免事故發(fā)生。現(xiàn)在采用的傾角測(cè)量?jī)x大多數(shù)體積較大,,信號(hào)采集比較慢,,測(cè)量精度不高,誤差較大,,需要做大量的溫度補(bǔ)償和校準(zhǔn)工作,。這些缺點(diǎn)制約著工業(yè)設(shè)備性能的提高,也加大了工程的工作量,。
ADISl6209是ADI公司新推出的一款精密的微電子機(jī)械系統(tǒng)(MEMS)傾斜計(jì),,提供小于O.1°線性傾斜誤差的全補(bǔ)償直接角度輸出,它使用出廠時(shí)安裝的校正系數(shù)動(dòng)態(tài)地檢測(cè)系統(tǒng)環(huán)境并且補(bǔ)償直接數(shù)字角度輸出以便解決電壓,、溫度,、角度和其他參數(shù)變化引起的誤差,減少了產(chǎn)品設(shè)計(jì)時(shí)間,、減低成本和復(fù)雜性,。
本文詳細(xì)地介紹ADISl6209的功能特性和使用方法,并使用Luminary公司的LM3S8962 Cortex-M3微處理器與之組合設(shè)計(jì)一個(gè)傾角測(cè)量系統(tǒng),。最后對(duì)測(cè)量結(jié)果進(jìn)行分析,。
1 ADISl6209功能與使用方法
ADISl6209的是一種高精度、數(shù)字化傾角測(cè)量?jī)x和雙軸加速度測(cè)量?jī)x,,可以在單軸(±180°),,雙軸(±90°)等兩種模式下運(yùn)作。標(biāo)準(zhǔn)電源電壓(3.3 V)和串行外設(shè)接口(SPI)設(shè)計(jì)最簡(jiǎn)單,,集成方便,。一個(gè)簡(jiǎn)單的內(nèi)部寄存器結(jié)構(gòu)處理所有的輸出數(shù)據(jù)和配置功能,。這包括訪問以下輸出數(shù)據(jù):校準(zhǔn)加速度、準(zhǔn)確傾斜角度,、電源,、內(nèi)部溫度、輔助模擬和數(shù)字輸入信號(hào),、診斷錯(cuò)誤標(biāo)志和可編程報(bào)警條件,。
ADISl6209采用9.2 mm×9.2 mm×3.9 mmLGA封裝,可工作在-40~+125℃,,能連接使用標(biāo)準(zhǔn)RoHS標(biāo)準(zhǔn)的回流焊工藝,,廣泛應(yīng)用于醫(yī)療儀器、測(cè)量設(shè)備,、工廠機(jī)床,、機(jī)器人,、慣性測(cè)量單元,、導(dǎo)航控制等領(lǐng)域。
1.1 ADISl6209的功能
如圖l所示,,分別是ADISl6209的功能圖,、安裝示意圖與引腳圖。由圖1(a)可知,,ADISl6209主要由兩軸MEMS加速度計(jì),、溫度傳感器、1個(gè)模/數(shù)轉(zhuǎn)換模塊(ADC),、1個(gè)數(shù)/模轉(zhuǎn)換模塊(DAC)和報(bào)警模塊(ALARMS)組成,。傳感器感知外界信號(hào)后,信號(hào)調(diào)理并轉(zhuǎn)換,,經(jīng)過信號(hào)處理后,,將得到的數(shù)據(jù)結(jié)果存入輸出寄存器。通過SPI總線,,外部SPI主控器件向ADISl6209發(fā)送控制指令或者讀取,。ADISl6209內(nèi)部設(shè)置有控制寄存器,寄存器都有默認(rèn)的值,,通過對(duì)控制寄存器的修改寫操作,,可以改變采樣頻率,改變平均濾波參數(shù)等多個(gè)方面的控制效果,。每個(gè)采樣周期結(jié)束后,,傳感器測(cè)量結(jié)果存放至輸出寄存器,并且DIO1引腳向器件外產(chǎn)生一個(gè)脈沖,,表示一組新的完整的測(cè)量數(shù)據(jù)已經(jīng)采集準(zhǔn)備好,,可供外部SPI主控器件讀取,。
圖1(b)是ADISl6209坐標(biāo)朝向圖,傳感器測(cè)量的Ax與Ay兩個(gè)方向上的加速度分量,。第1,,2,3,,4引腳是傳感器的SPI接口,,第9引腳RST是傳感器的復(fù)位引腳。
1.2 ADISl6209使用方法
1.2.1 ADISl6209硬件連接
ADISl63209的SPI接口與各種微處理器SPI主控制器件接線如圖2所示,。
SPI總線的時(shí)鐘頻率最高可以達(dá)到2.5 MHz,。但ADISl6209的采樣頻率對(duì)SPI時(shí)鐘一定的要求:當(dāng)采樣頻率大于等于546 SPS時(shí),SPI的時(shí)鐘頻率最高可以采用2.5 MHz,。當(dāng)采樣頻率小于546 SPS時(shí),,SPI的時(shí)鐘頻率應(yīng)不大于1 MHz,建議采用1 MHz,。
1.2.2 ADISl6209數(shù)據(jù)讀寫與數(shù)據(jù)處理
通過SPI總線,,可以對(duì)ADISl6209進(jìn)行讀寫操作??梢愿鶕?jù)自己的要求設(shè)置控制寄存器的值達(dá)到控制效果,,也可以使用寄存器的默認(rèn)設(shè)置??刂浦噶钣?位的讀寫控制位,,1位空位,6位寄存器地址位和8位的數(shù)據(jù)位組成,。向ADISl6209寫控制指令時(shí),,要將指令的最高位置1,例如,,要將采樣頻率設(shè)置為2 731 SPS,,也就是采樣頻率寄存器的值設(shè)置為0x0001,那么寫指令就應(yīng)該如下:先寫寄存器低地址0x36,,數(shù)據(jù)為0x0l,,再寫高地址0x37,數(shù)據(jù)為0x00,,所以指令為0xB6018700,。對(duì)其他的控制寄存器的修改也可按照這樣的方式修改。
讀取ADISl6209輸出的數(shù)據(jù)與寫控制指令稍有區(qū)別,,讀取每個(gè)寄存器的值要分為2個(gè)16位的時(shí)序,。第1個(gè)16位時(shí)序向ADISl6209寫入讀取命令和寄存器地址。第2個(gè)16位時(shí)序?qū)?duì)應(yīng)寄存器內(nèi)容發(fā)送至DOUT數(shù)據(jù)線上,,微控制器才可以得到正確的數(shù)據(jù),。如要讀取x軸加速度寄存器的值(X_ACC),,那么第1個(gè)16位時(shí)序DIN=0x0400,第2個(gè)時(shí)序XACCL_OUT(x軸加速度值)將被發(fā)送到DOUT數(shù)據(jù)線上,,SPI主機(jī)此時(shí)讀到的數(shù)據(jù)才是上一個(gè)16位讀指令發(fā)出的需要的指令,。
從SPI總線上讀取到的傳感器數(shù)據(jù)是二進(jìn)制數(shù)據(jù)或者二進(jìn)制補(bǔ)碼形式的數(shù)據(jù)。需要對(duì)其進(jìn)行一定的解讀才可以得到實(shí)際輸出的代表的值,。傳感器輸出的各個(gè)值代表的意義可詳見A13ISl6209的數(shù)據(jù)手冊(cè)中的output Data Register Format表,。其中SUPPLYOUT,AUX ADC和TEMP OUT的數(shù)據(jù)格式都為二進(jìn)制數(shù)據(jù),,可以使用以下公式進(jìn)行解算:
式中:VALUE代表實(shí)際的測(cè)量量的值,;DATA_VAL_UE代表寄存器的值;Scale代表寄存器每個(gè)最小單位代表的實(shí)際值,;n為對(duì)應(yīng)寄存器的數(shù)據(jù)位數(shù),。
XACC_OUT,YACC_OUT,,XINCL_OUT和YINCL_OUT輸出的數(shù)據(jù)格式均為14位2的補(bǔ)碼,,可以使用以下公式進(jìn)行解算:
式中:DATA_VALUE為寄存器的輸出數(shù)據(jù);VALUE為轉(zhuǎn)換后實(shí)際的測(cè)量量的值,;Scale為寄存器值最小值代表的最小單位,;n為對(duì)應(yīng)寄存器的數(shù)據(jù)位數(shù)。
2 基于Luminary LMS8962與ADISl6209的傾角測(cè)量系統(tǒng)設(shè)計(jì)
下面介紹基于Luminary公司的LMS8962與ADISl6209的傾角測(cè)量系統(tǒng)的原理與設(shè)計(jì),。
2.1 傾角測(cè)量原理
加速度計(jì)是測(cè)量物體所受除萬有引力加速度以外的加速度。將ADISl6209靜止放在水平面時(shí),,其受到的是水平面對(duì)其向上的支撐力的加速度和地球自轉(zhuǎn)的向心加速度的矢量和,。而地球自轉(zhuǎn)的向心加速度很小,在測(cè)量中忽略不計(jì),。那么只要使得ADISl6209將一個(gè)加速傳感器的輸出擺置為O時(shí),,也即是將傳感器擺置如圖3(a)所示?;蛘邇蓚€(gè)加速度計(jì)測(cè)得的矢量和等于水平面對(duì)其向上的支撐力的加速度,,也就是重力加速度的反方向矢量,也即是將傳感器擺置如圖4(a)所示,。那么就可以利用這些矢量求出傳感器與水平的傾角關(guān)系,。
當(dāng)使用單軸測(cè)量方式時(shí),如圖3(b)所示,,可知Ay軸測(cè)得的分量為O,,Ax軸測(cè)得的分量為ax,那么Ax軸與水平面的夾角:
同理可以得到使用Ay軸作單軸測(cè)量方式時(shí),,Ay軸與水平面的夾角:
當(dāng)使用雙軸測(cè)量方式時(shí),,如圖4(b)所示,,傳感器Ax與Ay軸組成的平面垂直于水平面,那么重量加速度軸測(cè)得的分量為ax,,那么Ax軸與水平面的夾角:
Ay軸與水平面的夾角:
2.2 硬件電路設(shè)計(jì)
本文使用Luminary公司的LMS8962與ADISl6209搭建成傾角測(cè)量系統(tǒng),。LMS8962是一款高性能的32位Cortex-M3內(nèi)核微處理器,它有豐富的片內(nèi)外設(shè),,如模/數(shù)轉(zhuǎn)換(ADC),,PWM,CAN和串行總線(SSI)等,,功能強(qiáng)大,,易于集成。
如圖5所示是由LMS8962與ADISl6209組成的傾角測(cè)量系統(tǒng),。LMS8962通過SSI總線(SSI是串行通信總線,,它兼容SPI總線。)與ADISl6209進(jìn)行通信,。將采集到的數(shù)據(jù)存儲(chǔ)到SD卡中,,將解算得到的結(jié)果實(shí)時(shí)在LCD上顯示出來。
2.3 軟件設(shè)計(jì)
如圖6所示是系統(tǒng)的軟件流程圖,。程序啟動(dòng)進(jìn)入系統(tǒng)初始化,,接下來向ADISl6209寫控制指令,以設(shè)置ADISl6209工作在需求的模式下,,然后讀取返回的數(shù)據(jù)并進(jìn)行解算,,最后通過存儲(chǔ)數(shù)據(jù)到SD卡中并在液晶模塊中顯示出來。
3 實(shí)驗(yàn)結(jié)果
Crossbow Technology公司的AHRS500GA-226是高精度的IMU,,其廣泛應(yīng)用于航空航天等高科技領(lǐng)域,。實(shí)驗(yàn)以AHRS輸出的結(jié)果為參考,將ADISl6209與AHRS固定于同一平臺(tái)上,,使得ADISl6209的Ax與Ay軸與AHRS的Ax與Ay軸方向相一致,。令它們的Ax與Ay軸組成的平面與水平面垂直,繞著Ax與Ay軸組成的平面的垂直線轉(zhuǎn)動(dòng),,使Ax與Ay軸與水平面成一定的夾角,。圖7~圖10是ADISl6209與AHRS輸出的數(shù)據(jù)結(jié)果的對(duì)比,圖中主要看較平穩(wěn)的數(shù)據(jù)部分,,數(shù)據(jù)抖動(dòng)部分是因?yàn)樵谇袚Q方向,,切換方向時(shí)手對(duì)傳感器有一個(gè)加速度,疊加在原來靜止?fàn)顟B(tài)下受到的力,,此時(shí)測(cè)量到的不能作為準(zhǔn)確的結(jié)果,。
4 結(jié)語
(1)在靜止?fàn)顟B(tài)下,ADISl6209雙軸加速度計(jì)的輸出與AHRS的輸出趨勢(shì)吻合,誤差小于O.005g,,具有較高的精度,。
(2)在靜止?fàn)顟B(tài)下,由ADISl6209雙軸測(cè)量方式得到的AX軸,、AY軸與水平面的夾角和AHRS測(cè)得的結(jié)果趨勢(shì)吻合,,誤差在1°以內(nèi),在但是ADISl6209有一定的噪聲,,如果對(duì)ADISl6209輸出的加速度值進(jìn)行濾波除噪處理,,可以得到更好的結(jié)果。