iMEMS 半導(dǎo)體技術(shù)把微型機(jī)械結(jié)構(gòu)與電子電路集成在同一顆芯片上。iMEMS加速度傳感器就是利用這種技術(shù),實(shí)現(xiàn)對(duì)單軸、雙軸甚至三軸加速度進(jìn)行測(cè)量并產(chǎn)生模擬或數(shù)字輸出的傳感器。根據(jù)不同的應(yīng)用,加速度傳感器的測(cè)量范圍從幾g到幾十g不等。數(shù)字輸出的加速度傳感器還會(huì)集成多種中斷模式。這些特性可以為用戶提供更加方便靈活的解決方案。
ADXL345是ADI公司最近推出的基于iMEMS技術(shù)的3軸、數(shù)字輸出加速度傳感器。ADXL345具有+/-2g,+/-4g,+/-8g,+/-16g可變的測(cè)量范圍;最高13bit分辨率;固定的4mg/LSB靈敏度;3mm*5mm*1mm超小封裝;40-145uA超低功耗;標(biāo)準(zhǔn)的I2C或SPI數(shù)字接口;32級(jí)FIFO存儲(chǔ);以及內(nèi)部多種運(yùn)動(dòng)狀態(tài)檢測(cè)和靈活的中斷方式等特性。所有這些特性,使得ADXL345有助于大大簡(jiǎn)化跌倒檢測(cè)算法,使其成為一款非常適合用于跌倒檢測(cè)器應(yīng)用的加速度傳感器。
本文給出的跌倒檢測(cè)解決方案,完全基于ADXL345內(nèi)部的運(yùn)動(dòng)狀態(tài)檢測(cè)功能和中斷功能,甚至不需要對(duì)加速度的具體數(shù)值進(jìn)行實(shí)時(shí)讀取和復(fù)雜的計(jì)算操作,可以使算法的復(fù)雜度降至最低。
中斷系統(tǒng)
圖1給出了ADXL345的系統(tǒng)框圖及管腳定義。

圖1 ADXL345系統(tǒng)框圖及管腳定義
ADXL345具有兩個(gè)可編程的中斷管腳:Int1和Int2。以及Data_Ready、Single_Tap、Double_Tap、Activity、Inactivity、Free_Fall、Watermark、Overrun,共計(jì)8個(gè)中斷源。每個(gè)中斷源可以獨(dú)立地使能或禁用,還可以靈活地選擇是否映射到Int1或Int2中斷管腳。所有的功能都可以同時(shí)使用,只是某些功能可能需要共用中斷管腳。中斷功能通過INT_ENABLE寄存器的相應(yīng)位來選擇使能或禁用,通過INT_MAP寄存器的相應(yīng)位來選擇映射到Int1管腳或Int2管腳。中斷功能的具體定義如下:
1. Data_Ready 當(dāng)有新的數(shù)據(jù)產(chǎn)生時(shí),Data_Ready中斷置位;當(dāng)沒有新的數(shù)據(jù)時(shí),Data_Ready中斷清除。
2. Single_Tap 當(dāng)加速度值超過一定門限(THRESH_TAP)并且持續(xù)時(shí)間小于一定時(shí)間范圍(DUR)的時(shí)候,Single_Tap中斷置位。
3. Double_Tap 當(dāng)?shù)谝淮蜸ingle_Tap事件發(fā)生后,在一定時(shí)間(LATENT)之后,并在一定時(shí)間(WINDOW)之內(nèi),又發(fā)生第二次Single_Tap事件時(shí),Double _Tap中斷置位。
圖2給出了有效的Single_Tap中斷和Double _Tap中斷的示意圖。

?
圖2 Single_Tap和Double _Tap中斷示意
4. Activity 當(dāng)加速度值超過一定門限(THRESH_ACT)時(shí),Activity中斷置位。
5. Inactivity 當(dāng)加速度值低于一定門限(THRESH_INACT)并且持續(xù)超過一定時(shí)間(TIME_INACT)時(shí),Inactivity中斷置位。TIME_INACT可以設(shè)定的最長(zhǎng)時(shí)間為255s。
需要指出的是,對(duì)于Activity和Inactivity中斷,用戶可以針對(duì)X、Y、Z軸來分別進(jìn)行使能或禁用。比如,可以只使能X軸的Activity中斷,而禁用Y軸和Z軸的Activity中斷。
另外,對(duì)于Activity和Inactivity中斷,用戶還可以自由選擇DC coupled工作方式或者AC coupled工作方式。其區(qū)別在于,DC coupled工作方式下,每個(gè)采樣點(diǎn)的加速度值將直接與門限(THRESH_ACT或THRESH_INACT)進(jìn)行比較,來判斷是否發(fā)生中斷;而AC coupled工作方式下,新的采樣點(diǎn)將以之前的某個(gè)采樣點(diǎn)為參考,用兩個(gè)采樣點(diǎn)的差值與門限(THRESH_ACT或THRESH_INACT)進(jìn)行比較,來判斷是否發(fā)生中斷。AC coupled工作方式下的Activity檢測(cè),是選擇檢測(cè)開始時(shí)的那一個(gè)采樣點(diǎn)作為參考,以后每個(gè)采樣點(diǎn)的加速度值都與參考點(diǎn)進(jìn)行比較。如果它們的差值超過門限(THRESH_ACT),則Activity中斷置位。AC coupled工作方式下的Inctivity檢測(cè),同樣要選擇一個(gè)參考點(diǎn)。如果新采樣點(diǎn)與參考點(diǎn)的加速度差值超過門限(THRESH_INACT),參考點(diǎn)會(huì)被該采樣點(diǎn)更新。如果新采樣點(diǎn)與參考點(diǎn)的加速度差值小于門限(THRESH_INACT),并且持續(xù)超過一定時(shí)間(TIME_INACT),則Inctivity置位。
6. Free_Fall 當(dāng)加速度值低于一定門限(THRESH_FF)并且持續(xù)超過一定時(shí)間(TIME_FF)時(shí),F(xiàn)ree_Fall中斷置位。與Inactivity中斷的區(qū)別在于,F(xiàn)ree_Fall中斷主要用于對(duì)自由落體運(yùn)動(dòng)的檢測(cè)。因此, X、Y、Z軸總是同時(shí)被使能或禁用;其時(shí)間設(shè)定也比Inactivity中斷中要小很多,TIME_FF可以設(shè)定的最大值為1.28s;而且Free_Fall中斷只能是DC coupled工作方式。
7. Watermark 當(dāng)FIFO里所存的采樣點(diǎn)超過一定點(diǎn)數(shù)(SAMPLES)時(shí),Watermark中斷置位。當(dāng)FIFO里的采樣點(diǎn)被讀取,使得其中保存的采樣點(diǎn)數(shù)小于該數(shù)值(SAMPLES)時(shí),Watermark中斷自動(dòng)清除。
需要指出的是,ADXL345的FIFO最多可以存儲(chǔ)32個(gè)采樣點(diǎn)(X、Y、Z三軸數(shù)值),且具有Bypass模式、普通FIFO模式、Stream模式和Trigger模式,一共4種工作模式。FIFO功能也是ADXL345的一個(gè)重要且十分有用的功能。但是本文后面給出的解決方案中,并沒有使用到FIFO功能,所以,在此不做詳細(xì)介紹。
8. Overrun 當(dāng)有新采樣點(diǎn)更新了未被讀取得前次采樣點(diǎn)時(shí),Overrun中斷置位。 Overrun功能與FIFO的工作模式有關(guān),當(dāng)FIFO工作在Bypass模式下,如果有新采樣點(diǎn)更新了DATAX、DATAY和DATAZ寄存器里的數(shù)值,則Overrun中斷置位。當(dāng)FIFO工作在其他三種模式下,只有FIFO被存滿32點(diǎn)時(shí),Overrun中斷才會(huì)置位。FIFO里的采樣點(diǎn)被讀取后,Overrun中斷自動(dòng)清除。
電子發(fā)燒友App











評(píng)論