×
嵌入式 > 技术百科 > 详情

iMEMS加速度传感器ADXL345

发布时间:2020-06-19 发布时间:
|

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中断自动清除。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
iPhone将是质的飞跃:苹果A14处理器+高通X55基带