基于MMA8452Q傳感器的計步器抗干擾設計
摘要:介紹了基于MMA8452Q加速度傳感器的計步器設計。MMA8452Q是一款具有12位分辨率的智能低功耗、三軸、電容式微機械加速度傳感器。本設計充分利用了該傳感器對被檢測模擬信號的濾波處理能力,并配合軟件抗干擾措施,通過(guò)檢測人行走時(shí)腰部產(chǎn)生的垂直加速度的變化,實(shí)現間接檢測步數的目的。設計硬件簡(jiǎn)單,計步精度較高,穩定性好,已經(jīng)通過(guò)實(shí)際調試,具有實(shí)用價(jià)值。
本文引用地址:http://dyxdggzs.com/article/201610/307542.htm關(guān)鍵詞:MMA8452Q;計步器;單片機;抗干擾
伴隨著(zhù)人們生活質(zhì)量和科技水平的提高,輔助鍛煉設備不斷出現,計步器就是一種日常鍛煉監測器,通過(guò)記錄人們行走的步數,監測自己的健身強度,方便實(shí)用。加速度傳感器可用于間接步數檢測。由于近年來(lái)MEMS加速度傳感器發(fā)展很快,并具有價(jià)格低、體積小、功耗低、精度高的特點(diǎn),利用其來(lái)設計電子計步器,已經(jīng)多有報道,市場(chǎng)上也有產(chǎn)品出售。目前存在的主要問(wèn)題是計步精度,盡管在加速度的檢測上傳感器的精度高,但是計步卻受到諸多干擾影響,精度難以保證。本文以MEMS加速度傳感器。MMA8452Q為基礎,研究其工作特性,針對計步干擾信號特點(diǎn),采取抗干擾措施完成電子式計步器設計。
1 系統方案設計
1.1 基于加速度信號檢測的計步器原理
距離、速度、加速度等都可以作為描述人體行走狀態(tài)的的參數。近年來(lái)由于MEMS加速度傳感器的快速發(fā)展和其特性,使其用于人體運動(dòng)檢測更加方便。
行走時(shí),腳、腿、腰部,手臂都在運動(dòng),它們的運動(dòng)都會(huì )產(chǎn)生相應的加速度,垂直方向的加速度信號變化最大。人行走一步過(guò)程,如圖1所示。腳蹬地離開(kāi)地面是一步的開(kāi)始(如圖1(a),此時(shí)由于地面的反作用力垂直加速度開(kāi)始增大,身體重心上移,當腳要達到最高位置時(shí)(如圖1(c),垂直加速度達到最大,然后腳向下運動(dòng),垂直加速度開(kāi)始減小,直至腳著(zhù)地,加速度減少至最小值(如圖1(e),接著(zhù)下一次邁步發(fā)生。

人體腰部的垂直加速度信號如圖2所示,每邁一步對應一個(gè)峰值,顯然信號具有周期性。利用對加速度的峰值檢測可以得到行走的步數。人行走的垂直加速度在±g之間(1g為9.8 m/s2即重力加速度),考慮到還有重力加速度g的影響,可選擇測量范嗣在±2 g之間的加速度傳感器來(lái)實(shí)現計步器。

1.2 硬件系統設計
計步器硬件系統框圖如圖3所示。MEMS傳感器MMA8452Q負責檢測人體加速度信號并轉換為數字信號,通過(guò)I2C接口傳遞給控制器;經(jīng)控制器分析處理,確定為有效的計步信息后,步數加1并送給LCD顯示器;按鍵則將一些設定信息傳遞給控制器。
綜合考慮計步器對加速度傳感器精度的要求和傳感器的價(jià)格,選擇了飛思卡爾一款比較新的MMA8452Q加速度傳感器。這是一款具有12位分辨率的智能低功耗、三軸、電容式微機械加速度傳感器,其主要特性如下:
可以感受X,Y,Z 3個(gè)自由度的加速度信號,全方位感知人體運動(dòng)信息。具有±2 g/±4g/±8 g的可選量程。傳感器的靈敏度在±2 g量程時(shí)為1 024個(gè)數字/g,靈敏度精度為±2.5%。
采集的加速度數據可以通過(guò)傳感器內部的高通濾波器實(shí)時(shí)輸出,濾波器的截止頻率可以軟件設置。也可以不經(jīng)過(guò)濾波器直接數據輸出。輸出信號已被轉換為12位(或8位)數字量信號,經(jīng)I2C接口輸出,輸出數據速率在1.25 Hz到800Hz之間可調。
傳感器內嵌的DSP處理功能使芯片具有中斷能力,當設定的“自由下落和運動(dòng)檢測”“瞬態(tài)變化檢測”“方向檢測”“輕敲檢測”“數據準備好”“自動(dòng)休眠”等6種事件中任意一種發(fā)生時(shí),配置的中斷引腳(INT1或INT2)就可以產(chǎn)生硬件喚醒的中斷申請信號,通知控制器處理預定的事件。這樣既減輕了控制器不斷查詢(xún)處理數據的負擔,也可以節省整體功耗,使其大部分時(shí)間處于靜止狀態(tài)保持低功耗模式,同時(shí)完成監測任務(wù)。
在滿(mǎn)足計步器功能的前提下,本設計選擇價(jià)格低廉的AT89S2051單片機作為控制器,主要使用其外部事件中斷、定時(shí)器中斷、并行口等硬件資源。顯示屏選擇了8位LCD顯示器,用于計步信息的實(shí)時(shí)顯示,與主機采用串行方式傳遞數據。按鍵主要用于自標定設置。
2 抗干擾設計
由圖2可知,人在行走時(shí)的垂直加速度信號雖然具有一定的周期性,但由于傳感器靈敏度較高,原地晃動(dòng)等都會(huì )產(chǎn)生于擾噪聲,直接計步容易出錯。需對信號進(jìn)行處理,盡可能消除噪聲影響。通常情況下,人的步頻最快不會(huì )超過(guò)5步/秒,最慢為0.5步/秒。因此,可以認為原始信號中頻率為0.5~5 Hz的信號為有用信號,其他信號均為噪聲。我們設計的計步器從下述方面消除干擾信號。
2.1 傳感器自帶抗干擾功能的利用
2.1.1 高通濾波器的設置
MMA8452Q是數字式傳感器,對檢測信號的模擬濾波在芯片內部進(jìn)行,然后轉換為數字量后輸出。對于“敲擊”“輕彈”“搖動(dòng)”“計步”等信號的檢測過(guò)程中,加速度傳感器只需要分析動(dòng)態(tài)加速度信號,即加速度的變化情況,無(wú)需考慮靜態(tài)情況,因此可以對數據做高通濾波。在傳感器MMA8452Q內部有一個(gè)內嵌的高通濾波器,可以通過(guò)軟件設定低頻截止頻率。根據選擇的數據輸出速率和數據過(guò)采樣模式,低頻截止頻率可以在0.063~16 Hz之間選擇。數據通過(guò)該濾波器輸出,從而消除信號中直流偏置及低頻信號的影響。我們設計的計步器截止頻率設置在0.5 Hz。
2.1.2 中斷閾值的使用
MMA8452Q傳感器有兩個(gè)外部引腳INT1和INT2。每個(gè)引腳通過(guò)軟件設置可以和6個(gè)事件(“自由下落和運動(dòng)檢測”“瞬態(tài)變化檢測”“方向檢測” “輕敲檢測”“數據準備好”“自動(dòng)休眠”)綁定在一起。當傳感器檢測到任一事件發(fā)生時(shí),即可發(fā)出中斷申請信號,可以避免主控制器頻繁讀取傳感器的數據,減少數據分析及處理工作。
引腳INT1和INT2可以配置成“推挽”或“開(kāi)漏”輸出方式,即可以“高電平有效”也可以“低電平有效”。如果被配置成“開(kāi)漏”輸出方式并且外帶上拉電阻,該引腳就被設置為“低電平有效”,剛好與8051單片機的外部中斷信號吻合。
計步器設計將中斷引腳INT1與“運動(dòng)檢測”事件綁定在一起,當人體邁步時(shí)垂直加速度開(kāi)始增加,當達到預定的閾值時(shí),中斷申請信號發(fā)出,通知控制器讀取當前加速度值,經(jīng)進(jìn)一步分析確定是否是有效計步信號。中斷使用的關(guān)鍵是合理閾值的確定。
該傳感器在靜止時(shí)顯示一個(gè)g(重力加速度),當人體運動(dòng)時(shí),運動(dòng)加速度與重力加速度疊加。傳感器可以輸出12位二進(jìn)制加速度值,該數值是有符號數,正數的最大值為7FFH。本計步器量程選擇的是2 g,傳感器靜止時(shí)感受重力加速度為g,所以顯示數值為3FFH。通過(guò)實(shí)驗獲取了大量的數據,分析每邁一步加速度的變化情況。選取加速度值大于g的數據為研究對象,將它們顯示的數據轉化為十進(jìn)制數。3FF對應的十進(jìn)制數是1023,對應的加速度為g。從而得出1個(gè)LSB所對應的加速度值為0.000 98 g。我們試驗程序采集的數據如表1所示,數據表明每走一步,可以收到2~3組數據,其中至少有一組超過(guò)1.1g,表中帶下劃線(xiàn)的數據為超過(guò)1.1 g的加速度值。

當試驗人員原地晃動(dòng)時(shí),得到的10組加速度值如表2所示。

經(jīng)過(guò)對人行走、跑步、晃動(dòng)等加速度變化的分析,綜合考慮選取1.1 g為加速度閾值。在MMA8452Q傳感器中有一個(gè)閾值寄存器,數值范圍為0~127,閾值最低分辨率為0.063 g/LSB。1.1 g/0.063 g=17.46.四舍五入到18,所以閾值寄存器中送閾值12H。
2.2 軟件抗干擾方法
2.2.1 時(shí)間窗口的限制
利用傳感器自身的濾波和閾值中斷的方法,能夠減少頻率較低、幅度較小的干擾,但是仍然會(huì )有誤計數的可能,特別是多計數。需要采取軟件抗干擾濾波方法,進(jìn)一步濾除無(wú)用信號。根據圖2所示垂直加速度的信號波形,兩次峰值是有時(shí)間間隔的,根據資料顯示,人行走的頻率一般在110步/分鐘(1.8 Hz),跑步時(shí)的頻率不會(huì )超過(guò)5 Hz。如果選擇1~5 Hz,對應的時(shí)間間隔是1 000~200毫秒。利用定時(shí)中斷記錄兩次外部中斷時(shí)間間隔,如果在有效范圍內,則為有效計步一次,否則無(wú)效。
實(shí)際上正常行走的任一段時(shí)間內,步頻的變化都會(huì )集中在峰值頻率附近的一個(gè)小范圍內,而不是0.5~5 Hz這么寬。由于每個(gè)人的步頻是不同的,可以采用下述的自標定方法得到個(gè)人步頻的峰值頻率和變動(dòng)范圍,再采用時(shí)間窗口的限制,檢測的準確度更高。
2.2.2 自標定方法
計步器配置了兩個(gè)按鍵:“直接計步按鍵”、“自標定按鍵”。如果計步器工作后直接按下“直接計步按鍵”,計步器按1~5Hz的行走頻率設置時(shí)間窗口,并按這個(gè)參數進(jìn)行數據分析。如果計步器工作后先按下“自標定按鍵”,則進(jìn)入自標定過(guò)程。連續行走10步,每走1步要同時(shí)按下“自標定按鍵”一次。計步器會(huì )記錄10次的時(shí)間間隔ti(i=0~9),求出平均值Tp,及偏差vi=|ti-Tp|(i=0~9).南此確定個(gè)人的行走頻率范圍,并利用時(shí)間窗口的限制進(jìn)行數據分析,可以得到較高的準確度。
2.2.3 計步器主要程序流程圖
計步器的主程序流程圖如圖4所示,外部中斷流程圖如圖5所示。開(kāi)始工作后首先進(jìn)行初始化、顯示初始界面,然后等待按鍵信號。如果按下“直接計步鍵”,則使能外部事件中斷,等待外部中斷的到來(lái)。當MMA8452Q加速度傳感器檢測到外界加速度大于所設閾值,將會(huì )產(chǎn)生中斷信號,單片機進(jìn)入中斷程序后,讀取傳感器的加速度數據,并讀取自上一次外部中斷后的時(shí)間間隔,如果時(shí)間間隔在有效區間內,則本次數據有效,計步數據加1,并將計時(shí)單元清零,為下一次中斷做準備。


如果先按下“自標定鍵”,則先進(jìn)入自標定過(guò)程(如前所述),然后再按下“直接計步鍵”,則按照自標定過(guò)程獲得的步頻參數進(jìn)行數據分析。
定時(shí)中斷程序比較簡(jiǎn)單,單純的計時(shí)供計步分析使用,這里不再贅述。
在傳感器的初始化中,配置MMA8452Q為運動(dòng)檢測方式,包括如下步驟:
1)使傳感器進(jìn)入待機模式;2)使能垂直方向運動(dòng)檢測和鎖存;3)設定運動(dòng)檢測閾值;4)設置去抖計數器以消除虛假讀數;5)啟用系統中的運動(dòng)/自由落體中斷功能;6)將傳感器切換到主動(dòng)模式。表3中列出了配置MMA8452Q的運動(dòng)檢測或自由落體檢測的重要寄存器。

3 結論
文中介紹了基于MEMS加速度傳感器MMA8452Q的計步器設計方案,充分利用該傳感器對模擬信號檢測的濾波處理能力,配合軟件抗干擾措施,通過(guò)檢測人行走時(shí)腰部產(chǎn)生的垂直加速度變化,實(shí)現間接檢測步數的目的。該設計硬件簡(jiǎn)單,實(shí)現方便。試驗結果表明:能夠較好地適應不同步頻情況,計步精度較高,穩定性好。
評論