新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于STM32的新型角度測量系統(tǒng)設(shè)計(jì)

基于STM32的新型角度測量系統(tǒng)設(shè)計(jì)

作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
在現(xiàn)代控制系統(tǒng)中,角度測量裝置是非常關(guān)鍵的需要高精度的部件,其測量精度直接影響著整個系統(tǒng)的性能和精度。例如施工 升降機(jī)上有角度測控機(jī)構(gòu)來控制起降;火箭炮瞄準(zhǔn)系統(tǒng)中都有大量的角度傳感器,實(shí)時檢測炮塔偏轉(zhuǎn)角度,以便對火箭炮瞄準(zhǔn)進(jìn)行調(diào)整。目前已有的利用的加速度傳 感器實(shí)現(xiàn)高精度角度測量的研究,主要側(cè)重于單軸的角度測量。本文將重點(diǎn)討論利用雙軸加速傳感器ADXL202實(shí)現(xiàn)高精度角度測量的軟硬件方法。

1 角度測量儀系統(tǒng)硬件方案設(shè)計(jì)

本文引用地址:http://butianyuan.cn/article/201611/323127.htm

本角度測量儀采用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)框圖


圖1 角度測量儀硬件結(jié)構(gòu)框圖

2 角度測量模塊

角 度測量模塊使用的是ADI公司出品的低成本、低功耗、高精度的雙軸加速度傳感器ADXL202,其測量范圍為-2g~+2g,既能測量動態(tài)加速度,又能測 量靜態(tài)加速度。它的工作電壓是3.0~5.25 V,工作電流低于0.6 mA,最高主頻可達(dá)到70 MHz,所以從功耗、靈敏度和精確度考慮,選擇ADXL202作為角度測量模塊的核心芯片。圖2是它的功能結(jié)構(gòu)框圖。


圖2 ADXL202的功能結(jié)構(gòu)框圖

由圖2可知,ADXL202是基于單片集成電路的完善的雙軸加速度測量系統(tǒng),對X、Y軸而言,輸出環(huán)路將加速度信號轉(zhuǎn)換為脈寬占空比的數(shù)字信號輸出,這些數(shù)字信號可直接傳輸給STM32F107,無需A/D轉(zhuǎn)換或其他附加的其他電路。

ADXL202 由振蕩器、X和Y軸傳感器、相位解調(diào)器和脈寬占空比解調(diào)器組成,它的功能實(shí)現(xiàn)過程是,X、Y軸傳感器受到加速度力后輸出振幅變化的方波,輸出方波的振幅與 加速度成正比。相位解調(diào)器能夠?qū)敵龅姆讲ㄐ盘栠M(jìn)行修正并提取信息,然后判斷加速度方向。相位解調(diào)器的輸出會經(jīng)過一個低通濾波電路,可以通過改變?yōu)V波電容 的大小來設(shè)置輸出信號的帶寬。經(jīng)過低通濾波的模擬信號進(jìn)入DCM,被轉(zhuǎn)換為脈寬占空比信號輸出。

2.1 角度測量模塊硬件電路設(shè)計(jì)

為保證ADXL202高精度穩(wěn)定的工作,需要根據(jù)芯片技術(shù)文檔和實(shí)際使用情況,來配置信號周期、濾波電容(決定信號的帶寬)。

ADXL202的輸出信號是脈寬占空比調(diào)制信號,占空比T1/T2與被測加速度成正比。0g時,其輸出為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。

ADXL202 通過XFILT、YFILT外接電容CX、CY來設(shè)定ADXL202的帶寬,這個帶寬決定了它的測量精度,同時電容CX、CY可以去混疊和濾波。為了使脈 寬占空比的誤差最小,模擬帶寬應(yīng)比脈寬占空比的頻率低1/10。對技術(shù)文檔提供的表2進(jìn)行分析,并考慮設(shè)定T2為1 ms,脈沖占空比頻率為1 kHz,為滿足實(shí)際需要和DCM誤差最小的要求,選擇0.05μF的濾波電容,此時模擬帶寬為100 Hz。[page]

引 腳連接的規(guī)范:13、14是兩個電壓輸入引腳VDD,直接與5 V電源連接,同時連接退耦電容CDC,推薦使用0.1μF;4、7是兩個接地引腳COM,直接接地;2腳VTP保持開路,不與其他任何引腳相連;3腳ST 是自檢輸入端,當(dāng)接VDD時能檢查加速度計(jì)的功能,平時該引腳開路,也可與COM相連。引腳配置如圖3所示。


圖3 ADXL202引腳配置

根據(jù)芯片的引腳配置圖和以上的各類配置,可以設(shè)計(jì)角度檢測模塊的硬件電路,其電路原理如圖4所示,其脈沖輸出端直接與STM32F107的I/O口相連。


圖4 角度采集原理圖

2.2 ADXL202測角度工作原理

ADXL202水平放置時的傾角如圖5所示。

ADXL202水平放置時,沿X軸和Y軸方向的加速度分量大小與重力的關(guān)系為:

AX=g·sin(α), AY=g·sin(β) (3)

式中,AX、AY分別代表加速度計(jì)的兩個軸上的分量輸出,g是以重力作為參考的加速度值,而α、β是傾斜角度。由反正弦函數(shù)即可以得到傾斜角度為:

α=sin-1(AX/g),β=sin-1(AY/g) (4)


圖5 ADXL202水平放置時的傾角

ADXL202垂直放置時的傾角如圖6所示。


圖6 ADXL202垂直放置時的傾角

加速度傳感器在豎直初始位置時,沿X軸和Y軸方向的加速度分量大小與重力的關(guān)系為:

γ=sin-1(AX/g), δ=sin-1(AY/g) (5)

此 角度測量儀的工作原理是:ADXL202將加速度信號轉(zhuǎn)換為脈寬占空比輸出,STM32F107接收這個數(shù)字脈沖信號,利用STM32F107的輸入捕獲 功能來測量脈沖信號的高電平脈寬。然后,計(jì)算出高電平脈寬的準(zhǔn)確時間T1,由式(2)得到X、Y方向上的加速度分量A(g)。最后,由式(4)(5)分別 求出芯片在水平狀態(tài)或垂直狀態(tài)下的傾角。[page]

3 數(shù)據(jù)處理模塊

STM32F107采 用的是ARM Cortex—M3內(nèi)核,工作電壓為3.3 V,時鐘頻率達(dá)到72 MHz。該芯片系統(tǒng)資源和外圍接口豐富,內(nèi)部集成專用時鐘、復(fù)位以及電源管理模塊,支持多種工作模式。由于STM32F107芯片的性能、成本和功耗方面 的特點(diǎn),選擇它作為數(shù)據(jù)處理模塊。更重要的是STM32F107的定時器除了TIM6和TIM7,都有輸入捕獲功能。

3.1 輸入捕獲功能應(yīng)用于角度測量的工作原理

以 TIM2定時器實(shí)現(xiàn)輸入捕獲功能為例。TIM2有4個獨(dú)立通道,通過檢測TIM2_CH1通道上的邊沿信號,在邊沿信號發(fā)生跳變(比如上升沿/下降沿)的 時候,將當(dāng)前定時器的值存放到TIM2_CH1的捕獲/比較寄存器里面,完成一次捕獲。這就是STM32F107所具有的輸入捕獲功能。

將 ADXL202的Xout、Yout引腳輸出接到STM32F107的34、35引腳(PA0、PA1)上,由STM32F107的原理圖可知,34、 35引腳控制TIM2_CH1和TIM2_CH2兩個通道。用TIM2_CH1來捕獲Xout的數(shù)字方波信號的高電平脈沖,首先配置此通道的輸入捕獲為上 升沿檢測。當(dāng)檢測到上升沿時,進(jìn)入中斷將計(jì)數(shù)器清零重新開始計(jì)數(shù),并配置通道的輸入捕獲為下降沿捕獲;當(dāng)檢測到下降沿時,進(jìn)入中斷讀取計(jì)數(shù)器的值,由計(jì)數(shù) 值和計(jì)數(shù)頻率可得到高電平的脈寬,即T1。然后通過以下兩個公式:

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。此處僅討論芯片水平放置時的情況,當(dāng)芯片垂直放置時,用式(5)即可。

3.2 采集和處理數(shù)據(jù)的方法

ADXL202 有兩路輸出信號Xout、Yout,而且它們是同時工作的,而STM32F107是順序處理器,一個時間點(diǎn)上只能處理一路信號。我們采用分時復(fù)用的方法解 決,以1 s為時間點(diǎn),在這1 s內(nèi),STM32F107只采集處理一條通道內(nèi)的信號和數(shù)據(jù),到下一秒時就采集處理另一條通道上的信號和數(shù)據(jù)。還應(yīng)該注意一個問題,計(jì)數(shù)器在檢測到上升沿 時開始計(jì)數(shù),等下降沿到來停止計(jì)數(shù)的時間內(nèi),脈寬過長時計(jì)數(shù)器會發(fā)生溢出,所以必須記錄下溢出次數(shù)。在最后計(jì)算計(jì)數(shù)器的值時,將溢出次數(shù)乘以計(jì)數(shù)器的寬度 加上當(dāng)前計(jì)數(shù)器的值,即為總的計(jì)數(shù)值。

4 角度測量儀系統(tǒng)的程序設(shè)計(jì)

使用STM32F107的輸入捕獲功能,需要通過程序配置內(nèi)部寄存器的初始狀態(tài),以此來滿足角度測量儀的工作需求。

①開啟GPIO和TIM2的時鐘,通過內(nèi)部的庫函數(shù)RCC_APB2PeriphClockCmd、RCC_APB1PeriphClockCmd來控制兩個時鐘的開啟。為了采集TIM 2_CH1和TIM2_CH2上的高電平脈寬,需配置PA0和PA1為下拉輸入。

②初始化TIM2,設(shè)定TIM2的輸入捕獲自動重裝載值為0xfffe,計(jì)數(shù)頻率為1 MHz。

③使能輸入捕獲、中斷、計(jì)數(shù)器,通過STM32F107的庫函數(shù)能方便地配置。

由角度測量和輸入捕獲原理可得系統(tǒng)的程序流程圖,如圖7所示。


圖7 系統(tǒng)程序流程圖

5 調(diào)試和測量結(jié)果

在 室溫下進(jìn)行調(diào)試。當(dāng)角度測量儀沒有傾斜時,液晶屏上顯示的結(jié)果并不為零,其原因是ADXL202安裝無法完全水平。芯片安裝后本身存在傾角,這是不可避免 的。雖然調(diào)試環(huán)境是在室溫下,但是實(shí)際使用的環(huán)境可能是溫度變化較大的場合,零漂和靈敏度隨溫度的漂移將會很嚴(yán)重,直接測量時會導(dǎo)致很大的角度誤差,因 此,必須采取某種形式的溫度補(bǔ)償方法來解決。

當(dāng)角度測量儀有傾斜時,測量結(jié)果與實(shí)際值有較大誤差。經(jīng)分析是輸入捕獲的計(jì)數(shù)器有誤差。經(jīng)將干擾和毛刺計(jì)數(shù)進(jìn)來,所以應(yīng)該添加濾波電路,同時計(jì)數(shù)器的值采用多次計(jì)數(shù)取平均值的方法,以此提高計(jì)數(shù)的精度。

角度測量儀的測量結(jié)果如圖8所示。


圖8 角度測量儀的測量結(jié)果

結(jié)語

本文論述了一種基于ADXL202的高精度角度測量儀的研究和設(shè)計(jì)方法,對ADXL202的角度測量原理和STM32F107的輸入捕獲功能進(jìn)行了詳細(xì)的介紹。經(jīng)實(shí)驗(yàn)測試,該測量儀能高精度地完成角度測量,而且可靠性好,對角度測量的研究和設(shè)計(jì)有著積極的意義。



評論


技術(shù)專區(qū)

關(guān)閉