李 萍,陳鵬宇,李澤仁
(大連交通大學(xué) 動(dòng)車運(yùn)用與維護(hù)工程學(xué)院,遼寧 大連 116028)
基于MMA8452Q傳感器的計(jì)步器抗干擾設(shè)計(jì)
李 萍,陳鵬宇,李澤仁
(大連交通大學(xué) 動(dòng)車運(yùn)用與維護(hù)工程學(xué)院,遼寧 大連 116028)
介紹了基于MMA8452Q加速度傳感器的計(jì)步器設(shè)計(jì)。MMA8452Q是一款具有 12位分辨率的智能低功耗、三軸、電容式微機(jī)械加速度傳感器。本設(shè)計(jì)充分利用了該傳感器對(duì)被檢測模擬信號(hào)的濾波處理能力,并配合軟件抗干擾措施,通過檢測人行走時(shí)腰部產(chǎn)生的垂直加速度的變化,實(shí)現(xiàn)間接檢測步數(shù)的目的。設(shè)計(jì)硬件簡單,計(jì)步精度較高,穩(wěn)定性好,已經(jīng)通過實(shí)際調(diào)試,具有實(shí)用價(jià)值。
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)道[1],市場上也有產(chǎn)品出售。目前存在的主要問題是計(jì)步精度,盡管在加速度的檢測上傳感器的精度高,但是計(jì)步卻受到諸多干擾影響,精度難以保證。本文以MEMS加速度傳感器MMA8452Q為基礎(chǔ),研究其工作特性,針對(duì)計(jì)步干擾信號(hào)特點(diǎn),采取抗干擾措施完成電子式計(jì)步器設(shè)計(jì)。
距離、速度、加速度等都可以作為描述人體行走狀態(tài)的的參數(shù)。近年來由于MEMS加速度傳感器的快速發(fā)展和其特性,使其用于人體運(yùn)動(dòng)檢測更加方便。
行走時(shí),腳、腿、腰部,手臂都在運(yùn)動(dòng),它們的運(yùn)動(dòng)都會(huì)產(chǎn)生相應(yīng)的加速度,垂直方向的加速度信號(hào)變化最大。人行走一步過程,如圖1所示。腳蹬地離開地面是一步的開始(如圖1(a),此時(shí)由于地面的反作用力垂直加速度開始增大,身體重心上移,當(dāng)腳要達(dá)到最高位置時(shí)(如圖1(c),垂直加速度達(dá)到最大,然后腳向下運(yùn)動(dòng),垂直加速度開始減小,直至腳著地,加速度減少至最小值(如圖1(e),接著下一次邁步發(fā)生[2]。
人體腰部的垂直加速度信號(hào)如圖2所示[3],每邁一步對(duì)應(yīng)一個(gè)峰值,顯然信號(hào)具有周期性。利用對(duì)加速度的峰值檢測可以得到行走的步數(shù)。人行走的垂直加速度在±g之間(1g為9.8 m/s2即重力加速度),考慮到還有重力加速度g的影響,可選擇測量范圍在±2 g之間的加速度傳感器來實(shí)現(xiàn)計(jì)步器。
計(jì)步器硬件系統(tǒng)框圖如圖3所示。MEMS傳感器MMA8452Q負(fù)責(zé)檢測人體加速度信號(hào)并轉(zhuǎn)換為數(shù)字信號(hào),通過I2C接口傳遞給控制器;經(jīng)控制器分析處理,確定為有效的計(jì)步信息后,步數(shù)加1并送給LCD顯示器;按鍵則將一些設(shè)定信息傳遞給控制器。
綜合考慮計(jì)步器對(duì)加速度傳感器精度的要求和傳感器的價(jià)格,選擇了飛思卡爾一款比較新的MMA8452Q加速度傳感器。這是一款具有12位分辨率的智能低功耗、三軸、電容式微機(jī)械加速度傳感器[4],其主要特性如下:
可以感受X,Y,Z 3個(gè)自由度的加速度信號(hào),全方位感知人體運(yùn)動(dòng)信息。具有±2 g/±4 g/±8 g的可選量程。傳感器的靈敏度在±2 g量程時(shí)為1 024個(gè)數(shù)字/g, 靈敏度精度為±2.5%。
圖1 行走一步過程Fig. 1 Walking step process
圖3 硬件系統(tǒng)框圖Fig. 3 Hardware system block diagram
采集的加速度數(shù)據(jù)可以通過傳感器內(nèi)部的高通濾波器實(shí)時(shí)輸出,濾波器的截止頻率可以軟件設(shè)置。也可以不經(jīng)過濾波器直接數(shù)據(jù)輸出。輸出信號(hào)已被轉(zhuǎn)換為12位(或8位)數(shù)字量信號(hào),經(jīng)I2C接口輸出,輸出數(shù)據(jù)速率在1.25 Hz到800 Hz之間可調(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)生硬件喚醒的中斷申請(qǐng)信號(hào),通知控制器處理預(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í)的垂直加速度信號(hào)雖然具有一定的周期性,但由于傳感器靈敏度較高,原地晃動(dòng)等都會(huì)產(chǎn)生干擾噪聲,直接計(jì)步容易出錯(cuò)。需對(duì)信號(hào)進(jìn)行處理,盡可能消除噪聲影響。通常情況下,人的步頻最快不會(huì)超過5步/秒,最慢為0.5步/秒。因此,可以認(rèn)為原始信號(hào)中頻率為0.5~5 Hz 的信號(hào)為有用信號(hào),其他信號(hào)均為噪聲[1,3]。我們?cè)O(shè)計(jì)的計(jì)步器從下述方面消除干擾信號(hào)。
2.1.1 高通濾波器的設(shè)置
MMA8452Q是數(shù)字式傳感器,對(duì)檢測信號(hào)的模擬濾波在芯片內(nèi)部進(jìn)行,然后轉(zhuǎn)換為數(shù)字量后輸出。對(duì)于“敲擊”“輕彈”“搖動(dòng)”“計(jì)步”等信號(hào)的檢測過程中,加速度傳感器只需要分析動(dòng)態(tài)加速度信號(hào),即加速度的變化情況,無需考慮靜態(tài)情況,因此可以對(duì)數(shù)據(jù)做高通濾波。在傳感器MMA8452Q內(nèi)部有一個(gè)內(nèi)嵌的高通濾波器,可以通過軟件設(shè)定低頻截止頻率。根據(jù)選擇的數(shù)據(jù)輸出速率和數(shù)據(jù)過采樣模式,低頻截止頻率可以在0.063~16 Hz之間選擇[5]。數(shù)據(jù)通過該濾波器輸出,從而消除信號(hào)中直流偏置及低頻信號(hào)的影響。我們?cè)O(shè)計(jì)的計(jì)步器截止頻率設(shè)置在0.5 Hz。
2.1.2 中斷閾值的使用
MMA8452Q傳感器有兩個(gè)外部引腳INT1和INT2。每個(gè)引腳通過軟件設(shè)置可以和6個(gè)事件(“自由下落和運(yùn)動(dòng)檢測[6]”“瞬態(tài)變化檢測”“方向檢測” “輕敲檢測”“數(shù)據(jù)準(zhǔn)備好”“自動(dòng)休眠”)綁定在一起。當(dāng)傳感器檢測到任一事件發(fā)生時(shí),即可發(fā)出中斷申請(qǐng)信號(hào),可以避免主控制器頻繁讀取傳感器的數(shù)據(jù),減少數(shù)據(jù)分析及處理工作。
引腳INT1和INT2可以配置成“推挽”或“開漏”輸出方式,即可以“高電平有效”也可以“低電平有效”。如果被配置成“開漏”輸出方式并且外帶上拉電阻,該引腳就被設(shè)置為“低電平有效”[7],剛好與8051單片機(jī)的外部中斷信號(hào)吻合。
計(jì)步器設(shè)計(jì)將中斷引腳INT1與“運(yùn)動(dòng)檢測”事件綁定在一起,當(dāng)人體邁步時(shí)垂直加速度開始增加,當(dāng)達(dá)到預(yù)定的閾值時(shí),中斷申請(qǐng)信號(hào)發(fā)出,通知控制器讀取當(dāng)前加速度值,經(jīng)進(jìn)一步分析確定是否是有效計(jì)步信號(hào)。中斷使用的關(guān)鍵是合理閾值的確定。
該傳感器在靜止時(shí)顯示一個(gè)g(重力加速度),當(dāng)人體運(yùn)動(dòng)時(shí),運(yùn)動(dòng)加速度與重力加速度疊加。傳感器可以輸出12位二進(jìn)制加速度值,該數(shù)值是有符號(hào)數(shù),正數(shù)的最大值為7FFH。本計(jì)步器量程選擇的是2 g,傳感器靜止時(shí)感受重力加速度為g,所以顯示數(shù)值為3FFH。通過實(shí)驗(yàn)獲取了大量的數(shù)據(jù),分析每邁一步加速度的變化情況。選取加速度值大于g的數(shù)據(jù)為研究對(duì)象,將它們顯示的數(shù)據(jù)轉(zhuǎn)化為十進(jìn)制數(shù)。3FF對(duì)應(yīng)的十進(jìn)制數(shù)是1023,對(duì)應(yīng)的加速度為g。從而得出1個(gè)LSB所對(duì)應(yīng)的加速度值為0.000 98 g。我們?cè)囼?yàn)程序采集的數(shù)據(jù)如表1所示,數(shù)據(jù)表明每走一步,可以收到2~3組數(shù)據(jù),其中至少有一組超過1.1g,表中帶下劃線的數(shù)據(jù)為超過1.1 g的加速度值。
表1 行走時(shí)加速度值Tab.1 Acceleration value when walking
當(dāng)試驗(yàn)人員原地晃動(dòng)時(shí),得到的10組加速度值如表2所示。
經(jīng)過對(duì)人行走、跑步、晃動(dòng)等加速度變化的分析,綜合考慮選取1.1 g為加速度閾值。在MMA8452Q傳感器中
表2 晃動(dòng)時(shí)加速度值Tab.2 Shaking acceleration value
有一個(gè)閾值寄存器,數(shù)值范圍為0~127,閾值最低分辨率為0.063 g/LSB。1.1 g/0.063 g= 17.46,四舍五入到18,所以閾值寄存器中送閾值12H。
2.2.1 時(shí)間窗口的限制
利用傳感器自身的濾波和閾值中斷的方法,能夠減少頻率較低、幅度較小的干擾,但是仍然會(huì)有誤計(jì)數(shù)的可能,特別是多計(jì)數(shù)。需要采取軟件抗干擾濾波方法,進(jìn)一步濾除無用信號(hào)。根據(jù)圖2所示垂直加速度的信號(hào)波形,兩次峰值是有時(shí)間間隔的,根據(jù)資料顯示,人行走的頻率一般在110步/分鐘(1.8 Hz),跑步時(shí)的頻率不會(huì)超過5 Hz。如果選擇1~5 Hz,對(duì)應(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)行初始化、顯示初始界面,然后等待按鍵信號(hào)。如果按下“直接計(jì)步鍵”,則使能外部事件中斷,等待外部中斷的到來。當(dāng)MMA8452Q加速度傳感器檢測到外界加速度大于所設(shè)閾值,將會(huì)產(chǎn)生中斷信號(hào),單片機(jī)進(jìn)入中斷程序后,讀取傳感器的加速度數(shù)據(jù),并讀取自上一次外部中斷后的時(shí)間間隔,如果時(shí)間間隔在有效區(qū)間內(nèi),則本次數(shù)據(jù)有效,計(jì)步數(shù)據(jù)加1,并將計(jì)時(shí)單元清零,為下一次中斷做準(zhǔn)備。
圖4 主程序流程圖Fig. 4 Main program flow chart
如果先按下“自標(biāo)定鍵”,則先進(jìn)入自標(biāo)定過程(如前所述),然后再按下“直接計(jì)步鍵”,則按照自標(biāo)定過程獲得的步頻參數(shù)進(jìn)行數(shù)據(jù)分析。
定時(shí)中斷程序比較簡單,單純的計(jì)時(shí)供計(jì)步分析使用,這里不再贅述。
圖5 外部中斷程序流程圖Fig. 5 External interrupt program flow chart
在傳感器的初始化中,配置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)檢測或自由落體檢測的重要寄存器。
文中介紹了基于MEMS加速度傳感器MMA8452Q的計(jì)步器設(shè)計(jì)方案,充分利用該傳感器對(duì)模擬信號(hào)檢測的濾波處理能力,配合軟件抗干擾措施,通過檢測人行走時(shí)腰部產(chǎn)生的垂直加速度變化,實(shí)現(xiàn)間接檢測步數(shù)的目的。該設(shè)計(jì)硬件簡單,實(shí)現(xiàn)方便。試驗(yàn)結(jié)果表明:能夠較好地適應(yīng)不同步頻情況,計(jì)步精度較高,穩(wěn)定性好。
表3 運(yùn)動(dòng)檢測的重要寄存器Tab.3 Motion detection key register
[1]宋浩然 ,廖文帥 ,趙一鳴.基于加速度傳感器ADXL330的高精度計(jì)步器[J].傳感技術(shù)學(xué)報(bào),2006,19(4):1005-1008.
SONG Hao-ran1 , LIA Wen-shuai , ZHA Yi-ming. Using 3-Axis Accelerometer ADXL330 to High Accuracy Pedometer[J]. Chinese Journal of Sensors and Actuators, 2006,19(4):1005-1008.
[2]韓文正,馮迪,李鵬等.基于加速度傳感器LIS3DH 的計(jì)步器設(shè)計(jì)[J]. 傳感器與微系統(tǒng),2012,31(11):97-99.
HAN Wen-zheng,FENG Di,LI Peng,et al.Design of pedometer based on acceleration sensor LIS3DH[J]. Transducer and Microsystem Technologies,2012,31(11):97-99.
[3]龐晶,牟為華.基于ADXL202 的計(jì)步器[J].電子世界,2004(2):51-52.PANG Jing, MU Wei-hua. Using ADXL202 Pedometer[J].Electronics World,2004(2):51-52.
[4]Freescale Semiconductor,Inc.3-Axis,12-bit/8-bit Digital Accelerometer[EB/OL](2011-08)http://www.freescale.com.cn.
[5]Kimberly Tuck.High-Pass Filtered Data and Transient Detection Using the MMA8451, 2, 3Q[EB/OL](2011-10)http://www.freescale.com.cn.
[6]Kimberly Tuck.Motion and Freefall Detection Using the MMA8451,2,3Q[EB/OL](2011-10) http://www.freescale.com.cn.
[7]Kimberly Tuck.MMA8451,2,3Q Design Checklist and Board Mounting Guidelines[EB/OL](2010-09)http://www.freescale.com.cn.
An anti-interference design for pedometer based on MMA8452Q sensor
LI Ping, CHEN Peng-yu, LI Ze-ren
(School of Electric Multiple Units Engineering,Dalian Jiaotong University,Dalian116028,China)
This paper introduces a design of pedometer based on MMA8452Q. MMA8452Q is a smart low-power, threeaxis, capacitive micro-machined accelerometer with 12 bits of resolution. The design takes full advantage of the filter inside MMA8452Q for analog signal, and besides, uses anti-interference methods in software ways. The pedometer depends on detecting the changes of vertical acceleration on waist in walking process which indirectly reflect the step numbers to be measured. Though hardware design is much simple, the accuracy of counting is pretty high with good stability. This design has been passed practical tests, so it can be put into practice.
MMA8452Q; pedometer; single chip; anti-interference
TP212
A
1674-6236(2014)07-0161-04
2013-07-28稿件編號(hào)201307206
李 萍(1956—),女,遼寧盤錦人,碩士,教授。研究方向:測控技術(shù)與儀器智能化。