佚名 發表於 2010-09-14 11:22:13
iMEMS加速度傳感器ADXL345
iMEMS 半導體技術把微型機械結構與電子電路集成在同一顆晶片上。iMEMS加速度傳感器就是利用這種技術,實現對單軸、雙軸甚至三軸加速度進行測量並產生模擬或數字輸出的傳感器。根據不同的應用,加速度傳感器的測量範圍從幾g到幾十g不等。數字輸出的加速度傳感器還會集成多種中斷模式。這些特性可以為用戶提供更加方便靈活的解決方案。
ADXL345是ADI公司最近推出的基於iMEMS技術的3軸、數字輸出加速度傳感器。ADXL345具有+/-2g,+/-4g,+/-8g,+/-16g可變的測量範圍;最高13bit解析度;固定的4mg/LSB靈敏度;3mm*5mm*1mm超小封裝;40-145uA超低功耗;標準的I2C或SPI數字接口;32級FIFO存儲;以及內部多種運動狀態檢測和靈活的中斷方式等特性。所有這些特性,使得ADXL345有助於大大簡化跌倒檢測算法,使其成為一款非常適合用於跌倒檢測器應用的加速度傳感器。
本文給出的跌倒檢測解決方案,完全基於ADXL345內部的運動狀態檢測功能和中斷功能,甚至不需要對加速度的具體數值進行實時讀取和複雜的計算操作,可以使算法的複雜度降至最低。
中斷系統
圖1給出了ADXL345的系統框圖及管腳定義。
圖1 ADXL345系統框圖及管腳定義
ADXL345具有兩個可編程的中斷管腳:Int1和Int2。以及Data_Ready、Single_Tap、Double_Tap、Activity、Inactivity、Free_Fall、Watermark、Overrun,共計8個中斷源。每個中斷源可以獨立地使能或禁用,還可以靈活地選擇是否映射到Int1或Int2中斷管腳。所有的功能都可以同時使用,只是某些功能可能需要共用中斷管腳。中斷功能通過INT_ENABLE寄存器的相應位來選擇使能或禁用,通過INT_MAP寄存器的相應位來選擇映射到Int1管腳或Int2管腳。中斷功能的具體定義如下:
1. Data_Ready 當有新的數據產生時,Data_Ready中斷置位;當沒有新的數據時,Data_Ready中斷清除。
2. Single_Tap 當加速度值超過一定門限(THRESH_TAP)並且持續時間小於一定時間範圍(DUR)的時候,Single_Tap中斷置位。
3. Double_Tap 當第一次Single_Tap事件發生後,在一定時間(LATENT)之後,並在一定時間(WINDOW)之內,又發生第二次Single_Tap事件時,Double _Tap中斷置位。
圖2給出了有效的Single_Tap中斷和Double _Tap中斷的示意圖。
圖2 Single_Tap和Double _Tap中斷示意
4. Activity 當加速度值超過一定門限(THRESH_ACT)時,Activity中斷置位。
5. Inactivity 當加速度值低於一定門限(THRESH_INACT)並且持續超過一定時間(TIME_INACT)時,Inactivity中斷置位。TIME_INACT可以設定的最長時間為255s。
需要指出的是,對於Activity和Inactivity中斷,用戶可以針對X、Y、Z軸來分別進行使能或禁用。比如,可以只使能X軸的Activity中斷,而禁用Y軸和Z軸的Activity中斷。
另外,對於Activity和Inactivity中斷,用戶還可以自由選擇DC coupled工作方式或者AC coupled工作方式。其區別在於,DC coupled工作方式下,每個採樣點的加速度值將直接與門限(THRESH_ACT或THRESH_INACT)進行比較,來判斷是否發生中斷;而AC coupled工作方式下,新的採樣點將以之前的某個採樣點為參考,用兩個採樣點的差值與門限(THRESH_ACT或THRESH_INACT)進行比較,來判斷是否發生中斷。AC coupled工作方式下的Activity檢測,是選擇檢測開始時的那一個採樣點作為參考,以後每個採樣點的加速度值都與參考點進行比較。如果它們的差值超過門限(THRESH_ACT),則Activity中斷置位。AC coupled工作方式下的Inctivity檢測,同樣要選擇一個參考點。如果新採樣點與參考點的加速度差值超過門限(THRESH_INACT),參考點會被該採樣點更新。如果新採樣點與參考點的加速度差值小於門限(THRESH_INACT),並且持續超過一定時間(TIME_INACT),則Inctivity置位。
6. Free_Fall 當加速度值低於一定門限(THRESH_FF)並且持續超過一定時間(TIME_FF)時,Free_Fall中斷置位。與Inactivity中斷的區別在於,Free_Fall中斷主要用於對自由落體運動的檢測。因此, X、Y、Z軸總是同時被使能或禁用;其時間設定也比Inactivity中斷中要小很多,TIME_FF可以設定的最大值為1.28s;而且Free_Fall中斷只能是DC coupled工作方式。
7. Watermark 當FIFO裡所存的採樣點超過一定點數(SAMPLES)時,Watermark中斷置位。當FIFO裡的採樣點被讀取,使得其中保存的採樣點數小於該數值(SAMPLES)時,Watermark中斷自動清除。
需要指出的是,ADXL345的FIFO最多可以存儲32個採樣點(X、Y、Z三軸數值),且具有Bypass模式、普通FIFO模式、Stream模式和Trigger模式,一共4種工作模式。FIFO功能也是ADXL345的一個重要且十分有用的功能。但是本文後面給出的解決方案中,並沒有使用到FIFO功能,所以,在此不做詳細介紹。
8. Overrun 當有新採樣點更新了未被讀取得前次採樣點時,Overrun中斷置位。 Overrun功能與FIFO的工作模式有關,當FIFO工作在Bypass模式下,如果有新採樣點更新了DATAX、DATAY和DATAZ寄存器裡的數值,則Overrun中斷置位。當FIFO工作在其他三種模式下,只有FIFO被存滿32點時,Overrun中斷才會置位。FIFO裡的採樣點被讀取後,Overrun中斷自動清除。
打開APP閱讀更多精彩內容聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴