在現(xiàn)代控制系統(tǒng)中,角度測量裝置是非常關(guān)鍵的需要高精度的部件,其測量精度直接影響著整個(gè)系統(tǒng)的性能和精度。例如施工升降機(jī)上有角度測控機(jī)構(gòu)來控制起降;火箭炮瞄準(zhǔn)系統(tǒng)中都有大量的角度傳感器,實(shí)時(shí)檢測炮塔偏轉(zhuǎn)角度,以便對火箭炮瞄準(zhǔn)進(jìn)行調(diào)整。目前已有的利用的加速度傳感器實(shí)現(xiàn)高精度角度測量的研究,主要側(cè)重于單軸的角度測量。本文將重點(diǎn)討論利用雙軸加速傳感器ADXL202實(shí)現(xiàn)高精度角度測量的軟硬件方法。
1 角度測量儀系統(tǒng)硬件方案設(shè)計(jì)
本角度測量儀采用STM32F107作為數(shù)據(jù)處理的核心芯片。這是一款低功耗、高速度的32位處理器,擁有Cortex-M3內(nèi)核。角度測量模塊使用的是高精度、低功耗的雙軸加速度傳感器ADXL202,能將加速度信號轉(zhuǎn)換成數(shù)字方波信號輸出,可直接與STM32F107連接,通過一定的算法即可計(jì)算出當(dāng)前的傾斜角度。顯示模塊使用的是12864ZW型128×64的點(diǎn)陣液晶顯示器,圖1所示為角度測量儀硬件結(jié)構(gòu)框圖。
角度測量模塊使用的是ADI公司出品的低成本、低功耗、高精度的雙軸加速度傳感器ADXL202,其測量范圍為-2g~+2g,既能測量動(dòng)態(tài)加速度,又能測量靜態(tài)加速度。它的工作電壓是3.0~5.25 V,工作電流低于0.6 mA,最高主頻可達(dá)到70 MHz,所以從功耗、靈敏度和精確度考慮,選擇ADXL202作為角度測量模塊的核心芯片。圖2是它的功能結(jié)構(gòu)框圖。
ADXL202由振蕩器、X和Y軸傳感器、相位解調(diào)器和脈寬占空比解調(diào)器組成,它的功能實(shí)現(xiàn)過程是,X、Y軸傳感器受到加速度力后輸出振幅變化的方波,輸出方波的振幅與加速度成正比。相位解調(diào)器能夠?qū)敵龅姆讲ㄐ盘栠M(jìn)行修正并提取信息,然后判斷加速度方向。相位解調(diào)器的輸出會(huì)經(jīng)過一個(gè)低通濾波電路,可以通過改變?yōu)V波電容的大小來設(shè)置輸出信號的帶寬。經(jīng)過低通濾波的模擬信號進(jìn)入DCM,被轉(zhuǎn)換為脈寬占空比信號輸出。
[page]
2.1 角度測量模塊硬件電路設(shè)計(jì)
為保證ADXL202高精度穩(wěn)定的工作,需要根據(jù)芯片技術(shù)文檔和實(shí)際使用情況,來配置信號周期、濾波電容(決定信號的帶寬)。
ADXL202的輸出信號是脈寬占空比調(diào)制信號,占空比T1/T2與被測加速度成正比。0g時(shí),其輸出為50%占空比,靈敏度為每g所引起的脈寬占空比變化12.5%。查閱芯片的技術(shù)文檔,可以通過電阻RSET來設(shè)定DCM的周期:
T2=RSET/125 MΩ (1)
在X、Y方向上的加速度分量值可由下式計(jì)算:
A(g)=(T1/T2-0.5)/12.5% (2)
表1是芯片的技術(shù)文檔提供的RSET和T2配置表。我們選擇125 kΩ的RSET,將周期T2設(shè)定為1 ms。
2.2 ADXL202測角度工作原理
ADXL202水平放置時(shí)的傾角如圖5所示。
ADXL202水平放置時(shí),沿X軸和Y軸方向的加速度分量大小與重力的關(guān)系為:
AX=g·sin(α), AY=g·sin(β) (3)
式中,AX、AY分別代表加速度計(jì)的兩個(gè)軸上的分量輸出,g是以重力作為參考的加速度值,而α、β是傾斜角度。由反正弦函數(shù)即可以得到傾斜角度為:
α=sin-1(AX/g),β=sin-1(AY/g) (4)
γ=sin-1(AX/g), δ=sin-1(AY/g) (5)
此角度測量儀的工作原理是:ADXL202將加速度信號轉(zhuǎn)換為脈寬占空比輸出,STM32F107接收這個(gè)數(shù)字脈沖信號,利用STM32F107的輸入捕獲功能來測量脈沖信號的高電平脈寬。然后,計(jì)算出高電平脈寬的準(zhǔn)確時(shí)間T1,由式(2)得到X、Y方向上的加速度分量A(g)。最后,由式(4)(5)分別求出芯片在水平狀態(tài)或垂直狀態(tài)下的傾角。
3 數(shù)據(jù)處理模塊
STM32F107采用的是ARM Cortex—M3內(nèi)核,工作電壓為3.3 V,時(shí)鐘頻率達(dá)到72 MHz。該芯片系統(tǒng)資源和外圍接口豐富,內(nèi)部集成專用時(shí)鐘、復(fù)位以及電源管理模塊,支持多種工作模式。由于STM32F107芯片的性能、成本和功耗方面的特點(diǎn),選擇它作為數(shù)據(jù)處理模塊。更重要的是STM32F107的定時(shí)器除了TIM6和TIM7,都有輸入捕獲功能。
3.1 輸入捕獲功能應(yīng)用于角度測量的工作原理
以TIM2定時(shí)器實(shí)現(xiàn)輸入捕獲功能為例。TIM2有4個(gè)獨(dú)立通道,通過檢測TIM2_CH1通道上的邊沿信號,在邊沿信號發(fā)生跳變(比如上升沿/下降沿)的時(shí)候,將當(dāng)前定時(shí)器的值存放到TIM2_CH1的捕獲/比較寄存器里面,完成一次捕獲。這就是STM32F107所具有的輸入捕獲功能。
將ADXL202的Xout、Yout引腳輸出接到STM32F107的34、35引腳(PA0、PA1)上,由STM32F107的原理圖可知,34、35引腳控制TIM2_CH1和TIM2_CH2兩個(gè)通道。用TIM2_CH1來捕獲Xout的數(shù)字方波信號的高電平脈沖,首先配置此通道的輸入捕獲為上升沿檢測。當(dāng)檢測到上升沿時(shí),進(jìn)入中斷將計(jì)數(shù)器清零重新開始計(jì)數(shù),并配置通道的輸入捕獲為下降沿捕獲;當(dāng)檢測到下降沿時(shí),進(jìn)入中斷讀取計(jì)數(shù)器的值,由計(jì)數(shù)值和計(jì)數(shù)頻率可得到高電平的脈寬,即T1。然后通過以下兩個(gè)公式:
A(g)=(T1/T2-0.5)/12.5% (6)
α=sin-1(Ax/g), β=sin-1(AY/g) (7)
計(jì)算得出當(dāng)前的傾角,之后將結(jié)果傳輸給液晶顯示屏顯示結(jié)果。式中T2=1 ms。此處僅討論芯片水平放置時(shí)的情況,當(dāng)芯片垂直放置時(shí),用式(5)即可。
3.2 采集和處理數(shù)據(jù)的方法
ADXL202有兩路輸出信號Xout、Yout,而且它們是同時(shí)工作的,而STM32F107是順序處理器,一個(gè)時(shí)間點(diǎn)上只能處理一路信號。我們采用分時(shí)復(fù)用的方法解決,以1 s為時(shí)間點(diǎn),在這1 s內(nèi),STM32F107只采集處理一條通道內(nèi)的信號和數(shù)據(jù),到下一秒時(shí)就采集處理另一條通道上的信號和數(shù)據(jù)。還應(yīng)該注意一個(gè)問題,計(jì)數(shù)器在檢測到上升沿時(shí)開始計(jì)數(shù),等下降沿到來停止計(jì)數(shù)的時(shí)間內(nèi),脈寬過長時(shí)計(jì)數(shù)器會(huì)發(fā)生溢出,所以必須記錄下溢出次數(shù)。在最后計(jì)算計(jì)數(shù)器的值時(shí),將溢出次數(shù)乘以計(jì)數(shù)器的寬度加上當(dāng)前計(jì)數(shù)器的值,即為總的計(jì)數(shù)值。
[page]
4 角度測量儀系統(tǒng)的程序設(shè)計(jì)
使用STM32F107的輸入捕獲功能,需要通過程序配置內(nèi)部寄存器的初始狀態(tài),以此來滿足角度測量儀的工作需求。
①開啟GPIO和TIM2的時(shí)鐘,通過內(nèi)部的庫函數(shù)RCC_APB2PeriphClockCmd、RCC_APB1PeriphClockCmd來控制兩個(gè)時(shí)鐘的開啟。為了采集TIM 2_CH1和TIM2_CH2上的高電平脈寬,需配置PA0和PA1為下拉輸入。
②初始化TIM2,設(shè)定TIM2的輸入捕獲自動(dòng)重裝載值為0xfffe,計(jì)數(shù)頻率為1 MHz。
③使能輸入捕獲、中斷、計(jì)數(shù)器,通過STM32F107的庫函數(shù)能方便地配置。
由角度測量和輸入捕獲原理可得系統(tǒng)的程序流程圖,如圖7所示。
在室溫下進(jìn)行調(diào)試。當(dāng)角度測量儀沒有傾斜時(shí),液晶屏上顯示的結(jié)果并不為零,其原因是ADXL202安裝無法完全水平。芯片安裝后本身存在傾角,這是不可避免的。雖然調(diào)試環(huán)境是在室溫下,但是實(shí)際使用的環(huán)境可能是溫度變化較大的場合,零漂和靈敏度隨溫度的漂移將會(huì)很嚴(yán)重,直接測量時(shí)會(huì)導(dǎo)致很大的角度誤差,因此,必須采取某種形式的溫度補(bǔ)償方法來解決。
當(dāng)角度測量儀有傾斜時(shí),測量結(jié)果與實(shí)際值有較大誤差。經(jīng)分析是輸入捕獲的計(jì)數(shù)器有誤差。經(jīng)將干擾和毛刺計(jì)數(shù)進(jìn)來,所以應(yīng)該添加濾波電路,同時(shí)計(jì)數(shù)器的值采用多次計(jì)數(shù)取平均值的方法,以此提高計(jì)數(shù)的精度。
角度測量儀的測量結(jié)果如圖8所示。