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