華中師范大學計算機學院 孫 捷 劉 瑄
?
三軸運動檢測芯片應用測試研究
華中師范大學計算機學院 孫 捷 劉 瑄
【摘要】運動檢測芯片在手機、相機、智能穿戴設(shè)備中都在使用,在測試、測量等領(lǐng)域也應用普遍。以飛思卡爾公司生產(chǎn)的低成本新型三軸加速度傳感器MMA7660FC為例,介紹了它的工作原理、功能、應用方法及其與STM32F103的接口電路,通過將MMA7660FC的數(shù)據(jù)傳送到PC機實時顯示,并通過改變傳感器工作模式等,測試該傳感器應用的各種方法及效果。
【關(guān)鍵詞】MMA7660FC;加速度傳感器;運動檢測;STM32F103
加速度傳感器是一種十分重要的測量加速力或運動情況的傳感器,一般加速度測量范圍為0.1g~10g。加速度傳感器的種類繁多,從工作原理上可分為壓電式、電容式、電感式、壓阻式、隧道電流式、諧振式等等。從測量維數(shù)上來看,有單軸、二軸、三軸等,目前市場上有越來越多的產(chǎn)品應用了雙軸以及三軸加速度傳感器。隨著近年來大規(guī)模集成電路技術(shù)的發(fā)展,加速度傳感器也逐漸向集成化、低功耗的方向發(fā)展。集成了信號調(diào)理電路的加速度傳感器能大大簡化電路設(shè)計,降低系統(tǒng)功耗,提高系統(tǒng)穩(wěn)定性,同時減少了系統(tǒng)設(shè)計成本,縮短開發(fā)周期,更利于產(chǎn)品快速推向市場。加速度傳感器應用范圍廣泛,一般來講它可用于傾斜度檢測、運動檢測、定位檢測、震動檢測、振動檢測和自由落下等檢測功能。本文將簡要介紹MMA7660FC的功能、工作原理及與STM32F103的接口電路,通過在PC機上實時顯示傳感器的數(shù)據(jù),構(gòu)建一個MMA7660FC的各種應用方法的測試系統(tǒng),以方便更快更好的應用該傳感器芯片。
MMA7660FC是飛思卡爾生產(chǎn)的一種±1.5g三軸加速度I2C總線數(shù)字輸出的傳感器芯片,具有超低功耗、微型電容式MEMS的傳感器,內(nèi)部具有低通濾波器,用于0g偏移和增益誤差補償。在配置為每秒采樣一次時可達到6位分辨率。該器件通過中斷引腳(INT)可以提供傳感器數(shù)據(jù)變化、產(chǎn)品方向和姿態(tài)識別等中斷觸發(fā)信號。一般常用來測量傾斜角、慣性力、沖擊力及震動,廣泛用于手機、掌上電腦、PDA、數(shù)碼相機、小家電、游戲中的運動檢測、自動叫醒、醫(yī)療和體育應用的活動監(jiān)測、沖擊檢測和運動控制、方向和自由落體檢測。具體性能特點如下:
●低電壓操作:模擬工作電壓為2.4V ~3.6V,數(shù)字工作電壓為1.71V~3.6V
●低功耗
關(guān)閉模式:0.4μA
待機模式:2μA
工作模式:可配置到47μA
●3mm*3mm*0.9mmDFN封裝
●集成3軸±1.5g MEMS傳感器和CMOS接口控制器在同一個封裝內(nèi)
●可配置數(shù)據(jù)輸出速率:1~120次采樣/秒
●包括智能電源管理功能,自動喚醒/自動休眠功能來降低功耗
●方向檢測:橫向/縱向、正面/反面識別,MMA7660FC可在六個方向檢測加速度
●集成了眾多智能的運動功能,振動識別和方向、震動、敲擊檢測
●可靠的設(shè)計、高抗震性(10,000g)
MMA7660FC內(nèi)部功能框圖如下圖1所示,它是一種電容式傳感器,是在wafer的表面上做出梳狀結(jié)構(gòu),當產(chǎn)生動作時,由偵測電容差來判斷變形量,從而反推出加速度的值。MMA7660FC設(shè)置MODE寄存器可以有三種工作模式: Standby(待機)模式、Active and Auto-Sleep (活動并且Auto-Sleep) 模式、Auto-Wake(自動喚醒)模式。
圖1 MMA7660FC內(nèi)部功能框圖
為了研究MMA7660FC使用方法與性能,需要構(gòu)建一個完整的控制電路及測試方案,我們使用STM32F103作為主控制芯片,其引腳及外圍連接信號如圖2所示,供電電壓為3.3V,與MMA7660FC電源電壓一致,可以直接連接。
圖2 STM32F103引腳及外圍信號圖
傳感器與CPU部分的連接電路原理圖如圖3所示,IIC總線的兩根線SCL、SDA要接4.7K上拉電阻,另外中斷信號接CPU的PA0端口。CPU的復位、晶振、電源部分電路原理圖如圖4所示,發(fā)光二極管D1接CPU的PB9端口,主要用來指示傳感器采樣的頻率。另外傳感器的數(shù)據(jù)要發(fā)送到PC機的串口,因此還需要一個串口通信電平轉(zhuǎn)換電路,電路原理圖如圖5所示,P1插座的TXD接電腦串口DB9的2腳,RXD接DB9的3腳,GND接DB9的5腳。圖6為STM32F103的JTAG端口,與J-LINK仿真器連接。
圖3 MMA7660FC電路原理圖
圖4 CPU復位、電源、晶振電路原理圖
圖5 串行接口電路原理圖
圖6 JTAG接口電路原理圖
3.1STM32F103的程序設(shè)計
開發(fā)環(huán)境使用的是Keil uVision3+MDK3.50,STM32F103的程序設(shè)計主要完成MMA7660FC初始化設(shè)置,使其工作在標準模式下,通過I2C總線通信方式讀取X、Y、Z三軸加速度值,并通過串口發(fā)送到計算機中去顯示,同時還要接收計算機發(fā)過來的命令數(shù)據(jù),從而改變MMA7660FC的工作模式或方式,主控程序流程圖如圖7所示。
圖7 STM32F103主控程序流程圖
STM32F103初始化主要進行RCC_Configuration(void)、NVIC_Configuration(void)、GPIO_Configuration(void)、USART_Init(USART1,&USART_InitStructure)和IIC_Init(void)。在MMA7660FC的初始化過程中,主要完成如下的一些工作:
void MMA7660_Init(void)
{
FSL_MMA_IICWrite(MMA7660_MODE, 0); //Make 7660 enter standby mode to set registers
FSL_MMA_IICWrite(MMA7660_SPCNT, MMA7660_SPCNT_Value);// Sleep Counter Register: SPCNT
FSL_MMA_IICWrite(MMA7660_INTSU, MMA7660_INTSU_Value);// Interrupt Setup Register: INTSU
FSL_MMA_IICWrite(MMA7660_SR, MMA7660_SR_Value); //Sample Rates Register: SR
FSL_MMA_IICWrite(MMA7660_PDET, MMA7660_PDET_Value);//Pulse Detection Register: PDET
FSL_MMA_IICWrite(MMA7660_PD, MMA7660_PD_Value); //Pulse Debounce Count: PD
FSL_MMA_IICWrite(MMA7660_MODE, MMA7660_MODE_Value);// Mode Register: MODE
}
對于MMA7660FC的兩種工作模式,一個為Auto-Sleep,即Running模式。在該模式下,傳感器可以配置較高的采樣率。另一個模式為Auto-Wakeup,即Sleep模式。該模式并非真正的休眠模式,而只是低速采樣模式。在該模式下,能夠有效地降低芯片的運行功耗。
實際測試時,當水平放置時,傳感器的某個軸加速度達到最大時,另外兩個軸讀數(shù)應該為0,但是硬件缺陷使得另兩軸會跳值,實驗結(jié)果,其跳值范圍在1~2,且連續(xù)跳值次數(shù)極少超過2次。故在讀入數(shù)據(jù)過程中加入判斷語句,過濾加速度傳感器的“自跳”,其邏輯是:在某個軸上,若此次讀數(shù)小于等于2,且前兩次讀數(shù)至少有一次為0,就認為此讀數(shù)為自跳,將其置零。在動作檢測的過程中,盡量采用的是相對的坐標值,而不是絕對的坐標值。因為在生產(chǎn)過程中,并不能保證傳感器的絕對水平。在讀取XYZ坐標的時候,最好采用的就是Multiple Byte Read的方式,這樣才能保證XYZ三個坐標是同一次采樣的結(jié)果。如果分開讀取,則有可能讀取到不同組的采樣數(shù)據(jù)。
3.2PC端的程序設(shè)計
在PC機端主要負責顯示三軸傳感器的數(shù)值,并且還要能發(fā)送控制數(shù)據(jù)改變傳感器的工作狀態(tài),從而能直觀的觀察MMA7660FC在各種不同模式和不同方式下的性能,這種數(shù)據(jù)雙向傳送是通過串口進行的。采用VC進行了上位機的程序設(shè)計,界面如圖8所示。主要包括三個軸的數(shù)據(jù)顯示,數(shù)據(jù)顯示區(qū)部分是串口接收全部數(shù)據(jù)的顯示,命令區(qū)是發(fā)送給STM32F103的命令數(shù)據(jù),另外還有串口配置的相關(guān)內(nèi)容。
圖8 PC機端顯示與控制界面圖
上位機發(fā)送的命令數(shù)據(jù)主要包括設(shè)置MMA7660FC的工作模式、采樣率、對傳感器數(shù)據(jù)濾波處理的參數(shù)選擇命令,通過改變不同工作狀況從而能直觀觀察到傳感器的數(shù)據(jù)精確度及穩(wěn)定性。
通過測試,發(fā)現(xiàn)當板子水平放置時,無論如何改變X、Y的位置,都不會有中斷產(chǎn)生,因為這時它只能檢測Z軸的變化,X、Y的變化它檢測不到,只有當我們將板子傾斜一個角度后才能檢測X、Y的變化,經(jīng)過查找相關(guān)文獻,這是由于其內(nèi)部是電容式的結(jié)構(gòu),很難在同一個結(jié)構(gòu)中同時感測到三個軸(X、Y、Z)的變化。另外在采樣率越低時穩(wěn)定性越好,但實時性較差,一般可根據(jù)實際應用環(huán)境的要求,優(yōu)先選擇響應時間的條件下,通過設(shè)置濾波參數(shù)可達到較好的效果。如果傳感器只是應用于方位檢測的話,8個值的濾波就夠了。而用于動作檢測的話,一般使用32階的均值濾波效果較好。
參考文獻
[1]資道周.加速度傳感器性能測試系統(tǒng)的設(shè)計與實現(xiàn)[D].湖南:湖南大學,2007.
[2]汪少初,劉昱,郝文飛,劉開華,路文平.基于慣性傳感的人員行進動作識別方法[J].電子測量與儀器學報,2014(06)
[3]李智利,汪正祥.MMA7260Q在車載導航定位中的應用[J].微計算機信息,2007,23(8-2):218-219.
[4]杜時英.加速度傳感器在嵌入式系統(tǒng)中的電路搭建及驅(qū)動的實現(xiàn)[J].計算機時代,2013(01)
[5]張潔.基于加速度傳感器的人體運動行為識別研究[J].自動化與儀器儀表,2016(03)
[6]唐曉剛,顏永安,趙冰.石油勘探MEMS加速度傳感器在煤田勘探的應用[J].儀表技術(shù)與傳感器,2006,6:50-57.
[7]馬少龍,劉冬花,馬國紅,朱書林,葉佳.一種快速獲取機器人運動軌跡的方法研究[J].組合機床與自動化加工技術(shù),2014(10)
[8]蘇維嘉,王旭輝.新型加速度傳感器在傾角測量中的應用研究[J].機械研究與應用,2007,20(5):62-65.
作者簡介:
孫捷(1995—),女,湖北荊州人,大學本科,現(xiàn)就讀于華中師范大學計算機學院計算機科學與技術(shù)系。
劉瑄(1995—),女,廣東珠海人,大學本科,現(xiàn)就讀于華中師范大學計算機學院軟件工程系。