基于MMA8452Q傳感器的計步器抗干擾設(shè)計
摘要:介紹了基于MMA8452Q加速度傳感器的計步器設(shè)計。MMA8452Q是一款具有12位分辨率的智能低功耗、三軸、電容式微機械加速度傳感器。本設(shè)計充分利用了該傳感器對被檢測模擬信號的濾波處理能力,并配合軟件抗干擾措施,通過檢測人行走時腰部產(chǎn)生的垂直加速度的變化,實現(xiàn)間接檢測步數(shù)的目的。設(shè)計硬件簡單,計步精度較高,穩(wěn)定性好,已經(jīng)通過實際調(diào)試,具有實用價值。
關(guān)鍵詞:MMA8452Q;計步器;單片機;抗干擾
伴隨著人們生活質(zhì)量和科技水平的提高,輔助鍛煉設(shè)備不斷出現(xiàn),計步器就是一種日常鍛煉監(jiān)測器,通過記錄人們行走的步數(shù),監(jiān)測自己的健身強度,方便實用。加速度傳感器可用于間接步數(shù)檢測。由于近年來MEMS加速度傳感器發(fā)展很快,并具有價格低、體積小、功耗低、精度高的特點,利用其來設(shè)計電子計步器,已經(jīng)多有報道,市場上也有產(chǎn)品出售。目前存在的主要問題是計步精度,盡管在加速度的檢測上傳感器的精度高,但是計步卻受到諸多干擾影響,精度難以保證。本文以MEMS加速度傳感器。MMA8452Q為基礎(chǔ),研究其工作特性,針對計步干擾信號特點,采取抗干擾措施完成電子式計步器設(shè)計。
1 系統(tǒng)方案設(shè)計
1.1 基于加速度信號檢測的計步器原理
距離、速度、加速度等都可以作為描述人體行走狀態(tài)的的參數(shù)。近年來由于MEMS加速度傳感器的快速發(fā)展和其特性,使其用于人體運動檢測更加方便。
行走時,腳、腿、腰部,手臂都在運動,它們的運動都會產(chǎn)生相應(yīng)的加速度,垂直方向的加速度信號變化最大。人行走一步過程,如圖1所示。腳蹬地離開地面是一步的開始(如圖1(a),此時由于地面的反作用力垂直加速度開始增大,身體重心上移,當(dāng)腳要達到最高位置時(如圖1(c),垂直加速度達到最大,然后腳向下運動,垂直加速度開始減小,直至腳著地,加速度減少至最小值(如圖1(e),接著下一次邁步發(fā)生。
人體腰部的垂直加速度信號如圖2所示,每邁一步對應(yīng)一個峰值,顯然信號具有周期性。利用對加速度的峰值檢測可以得到行走的步數(shù)。人行走的垂直加速度在±g之間(1g為9.8 m/s2即重力加速度),考慮到還有重力加速度g的影響,可選擇測量范嗣在±2 g之間的加速度傳感器來實現(xiàn)計步器。
1.2 硬件系統(tǒng)設(shè)計
計步器硬件系統(tǒng)框圖如圖3所示。MEMS傳感器MMA8452Q負責(zé)檢測人體加速度信號并轉(zhuǎn)換為數(shù)字信號,通過I2C接口傳遞給控制器;經(jīng)控制器分析處理,確定為有效的計步信息后,步數(shù)加1并送給LCD顯示器;按鍵則將一些設(shè)定信息傳遞給控制器。
綜合考慮計步器對加速度傳感器精度的要求和傳感器的價格,選擇了飛思卡爾一款比較新的MMA8452Q加速度傳感器。這是一款具有12位分辨率的智能低功耗、三軸、電容式微機械加速度傳感器,其主要特性如下:
可以感受X,Y,Z 3個自由度的加速度信號,全方位感知人體運動信息。具有±2 g/±4g/±8 g的可選量程。傳感器的靈敏度在±2 g量程時為1 024個數(shù)字/g,靈敏度精度為±2.5%。
采集的加速度數(shù)據(jù)可以通過傳感器內(nèi)部的高通濾波器實時輸出,濾波器的截止頻率可以軟件設(shè)置。也可以不經(jīng)過濾波器直接數(shù)據(jù)輸出。輸出信號已被轉(zhuǎn)換為12位(或8位)數(shù)字量信號,經(jīng)I2C接口輸出,輸出數(shù)據(jù)速率在1.25 Hz到800Hz之間可調(diào)。
傳感器內(nèi)嵌的DSP處理功能使芯片具有中斷能力,當(dāng)設(shè)定的“自由下落和運動檢測”“瞬態(tài)變化檢測”“方向檢測”“輕敲檢測”“數(shù)據(jù)準(zhǔn)備好”“自動休眠”等6種事件中任意一種發(fā)生時,配置的中斷引腳(INT1或INT2)就可以產(chǎn)生硬件喚醒的中斷申請信號,通知控制器處理預(yù)定的事件。這樣既減輕了控制器不斷查詢處理數(shù)據(jù)的負擔(dān),也可以節(jié)省整體功耗,使其大部分時間處于靜止?fàn)顟B(tài)保持低功耗模式,同時完成監(jiān)測任務(wù)。
在滿足計步器功能的前提下,本設(shè)計選擇價格低廉的AT89S2051單片機作為控制器,主要使用其外部事件中斷、定時器中斷、并行口等硬件資源。顯示屏選擇了8位LCD顯示器,用于計步信息的實時顯示,與主機采用串行方式傳遞數(shù)據(jù)。按鍵主要用于自標(biāo)定設(shè)置。
2 抗干擾設(shè)計
由圖2可知,人在行走時的垂直加速度信號雖然具有一定的周期性,但由于傳感器靈敏度較高,原地晃動等都會產(chǎn)生于擾噪聲,直接計步容易出錯。需對信號進行處理,盡可能消除噪聲影響。通常情況下,人的步頻最快不會超過5步/秒,最慢為0.5步/秒。因此,可以認為原始信號中頻率為0.5~5 Hz的信號為有用信號,其他信號均為噪聲。我們設(shè)計的計步器從下述方面消除干擾信號。
2.1 傳感器自帶抗干擾功能的利用
2.1.1 高通濾波器的設(shè)置
MMA8452Q是數(shù)字式傳感器,對檢測信號的模擬濾波在芯片內(nèi)部進行,然后轉(zhuǎn)換為數(shù)字量后輸出。對于“敲擊”“輕彈”“搖動”“計步”等信號的檢測過程中,加速度傳感器只需要分析動態(tài)加速度信號,即加速度的變化情況,無需考慮靜態(tài)情況,因此可以對數(shù)據(jù)做高通濾波。在傳感器MMA8452Q內(nèi)部有一個內(nèi)嵌的高通濾波器,可以通過軟件設(shè)定低頻截止頻率。根據(jù)選擇的數(shù)據(jù)輸出速率和數(shù)據(jù)過采樣模式,低頻截止頻率可以在0.063~16 Hz之間選擇。數(shù)據(jù)通過該濾波器輸出,從而消除信號中直流偏置及低頻信號的影響。我們設(shè)計的計步器截止頻率設(shè)置在0.5 Hz。
2.1.2 中斷閾值的使用
MMA8452Q傳感器有兩個外部引腳INT1和INT2。每個引腳通過軟件設(shè)置可以和6個事件(“自由下落和運動檢測”“瞬態(tài)變化檢測”“方向檢測” “輕敲檢測”“數(shù)據(jù)準(zhǔn)備好”“自動休眠”)綁定在一起。當(dāng)傳感器檢測到任一事件發(fā)生時,即可發(fā)出中斷申請信號,可以避免主控制器頻繁讀取傳感器的數(shù)據(jù),減少數(shù)據(jù)分析及處理工作。
引腳INT1和INT2可以配置成“推挽”或“開漏”輸出方式,即可以“高電平有效”也可以“低電平有效”。如果被配置成“開漏”輸出方式并且外帶上拉電阻,該引腳就被設(shè)置為“低電平有效”,剛好與8051單片機的外部中斷信號吻合。
計步器設(shè)計將中斷引腳INT1與“運動檢測”事件綁定在一起,當(dāng)人體邁步時垂直加速度開始增加,當(dāng)達到預(yù)定的閾值時,中斷申請信號發(fā)出,通知控制器讀取當(dāng)前加速度值,經(jīng)進一步分析確定是否是有效計步信號。中斷使用的關(guān)鍵是合理閾值的確定。
該傳感器在靜止時顯示一個g(重力加速度),當(dāng)人體運動時,運動加速度與重力加速度疊加。傳感器可以輸出12位二進制加速度值,該數(shù)值是有符號數(shù),正數(shù)的最大值為7FFH。本計步器量程選擇的是2 g,傳感器靜止時感受重力加速度為g,所以顯示數(shù)值為3FFH。通過實驗獲取了大量的數(shù)據(jù),分析每邁一步加速度的變化情況。選取加速度值大于g的數(shù)據(jù)為研究對象,將它們顯示的數(shù)據(jù)轉(zhuǎn)化為十進制數(shù)。3FF對應(yīng)的十進制數(shù)是1023,對應(yīng)的加速度為g。從而得出1個LSB所對應(yīng)的加速度值為0.000 98 g。我們試驗程序采集的數(shù)據(jù)如表1所示,數(shù)據(jù)表明每走一步,可以收到2~3組數(shù)據(jù),其中至少有一組超過1.1g,表中帶下劃線的數(shù)據(jù)為超過1.1 g的加速度值。
當(dāng)試驗人員原地晃動時,得到的10組加速度值如表2所示。
經(jīng)過對人行走、跑步、晃動等加速度變化的分析,綜合考慮選取1.1 g為加速度閾值。在MMA8452Q傳感器中有一個閾值寄存器,數(shù)值范圍為0~127,閾值最低分辨率為0.063 g/LSB。1.1 g/0.063 g=17.46.四舍五入到18,所以閾值寄存器中送閾值12H。
2.2 軟件抗干擾方法
2.2.1 時間窗口的限制
利用傳感器自身的濾波和閾值中斷的方法,能夠減少頻率較低、幅度較小的干擾,但是仍然會有誤計數(shù)的可能,特別是多計數(shù)。需要采取軟件抗干擾濾波方法,進一步濾除無用信號。根據(jù)圖2所示垂直加速度的信號波形,兩次峰值是有時間間隔的,根據(jù)資料顯示,人行走的頻率一般在110步/分鐘(1.8 Hz),跑步時的頻率不會超過5 Hz。如果選擇1~5 Hz,對應(yīng)的時間間隔是1 000~200毫秒。利用定時中斷記錄兩次外部中斷時間間隔,如果在有效范圍內(nèi),則為有效計步一次,否則無效。
實際上正常行走的任一段時間內(nèi),步頻的變化都會集中在峰值頻率附近的一個小范圍內(nèi),而不是0.5~5 Hz這么寬。由于每個人的步頻是不同的,可以采用下述的自標(biāo)定方法得到個人步頻的峰值頻率和變動范圍,再采用時間窗口的限制,檢測的準(zhǔn)確度更高。
2.2.2 自標(biāo)定方法
計步器配置了兩個按鍵:“直接計步按鍵”、“自標(biāo)定按鍵”。如果計步器工作后直接按下“直接計步按鍵”,計步器按1~5Hz的行走頻率設(shè)置時間窗口,并按這個參數(shù)進行數(shù)據(jù)分析。如果計步器工作后先按下“自標(biāo)定按鍵”,則進入自標(biāo)定過程。連續(xù)行走10步,每走1步要同時按下“自標(biāo)定按鍵”一次。計步器會記錄10次的時間間隔ti(i=0~9),求出平均值Tp,及偏差vi=|ti-Tp|(i=0~9).南此確定個人的行走頻率范圍,并利用時間窗口的限制進行數(shù)據(jù)分析,可以得到較高的準(zhǔn)確度。
2.2.3 計步器主要程序流程圖
計步器的主程序流程圖如圖4所示,外部中斷流程圖如圖5所示。開始工作后首先進行初始化、顯示初始界面,然后等待按鍵信號。如果按下“直接計步鍵”,則使能外部事件中斷,等待外部中斷的到來。當(dāng)MMA8452Q加速度傳感器檢測到外界加速度大于所設(shè)閾值,將會產(chǎn)生中斷信號,單片機進入中斷程序后,讀取傳感器的加速度數(shù)據(jù),并讀取自上一次外部中斷后的時間間隔,如果時間間隔在有效區(qū)間內(nèi),則本次數(shù)據(jù)有效,計步數(shù)據(jù)加1,并將計時單元清零,為下一次中斷做準(zhǔn)備。
如果先按下“自標(biāo)定鍵”,則先進入自標(biāo)定過程(如前所述),然后再按下“直接計步鍵”,則按照自標(biāo)定過程獲得的步頻參數(shù)進行數(shù)據(jù)分析。
定時中斷程序比較簡單,單純的計時供計步分析使用,這里不再贅述。
在傳感器的初始化中,配置MMA8452Q為運動檢測方式,包括如下步驟:
1)使傳感器進入待機模式;2)使能垂直方向運動檢測和鎖存;3)設(shè)定運動檢測閾值;4)設(shè)置去抖計數(shù)器以消除虛假讀數(shù);5)啟用系統(tǒng)中的運動/自由落體中斷功能;6)將傳感器切換到主動模式。表3中列出了配置MMA8452Q的運動檢測或自由落體檢測的重要寄存器。
3 結(jié)論
文中介紹了基于MEMS加速度傳感器MMA8452Q的計步器設(shè)計方案,充分利用該傳感器對模擬信號檢測的濾波處理能力,配合軟件抗干擾措施,通過檢測人行走時腰部產(chǎn)生的垂直加速度變化,實現(xiàn)間接檢測步數(shù)的目的。該設(shè)計硬件簡單,實現(xiàn)方便。試驗結(jié)果表明:能夠較好地適應(yīng)不同步頻情況,計步精度較高,穩(wěn)定性好。