新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于MMA7260QT三轴加速度传感器的跌倒探测仪的研制

基于MMA7260QT三轴加速度传感器的跌倒探测仪的研制

作者:上海复旦光华信息科技股份有限公司 张 鑫 孙新香 时间:2008-08-01来源:世界电子元器件收藏

  事务处理及状态机
  根据跌倒探测器的设计需求,系统要同时具备计步器、跌倒检测、报警处理、系统设置和无线通信控制等功能。

本文引用地址:http://www.eepw.com.cn/article/86529.htm

  事务处理的方法借鉴操作系统中的线程概念。首先将每项事务执行的操作明确,确定每种操作的优先级、相互关系和对资源的要求,然后在主循环中设置各种操作的启动机制,从总体上看,这些事物在主循环中并行地得到实现。跌倒探测器事务处理的调用关系如图6所示。


 

  针对某些项事务处理的实现,在软件设计中采用了状态机的方法以确保整个任务能够顺畅而正确地得以实现。

  系统设置
  系统设置主要完成一些初始化操作和需要使用者进行确认的系统信息的设定操作。
系统初始化工作主要由完成,包括各种配置寄存器的设置、初始化指令和存储缓冲区的设置,初始化工作将保证系统各功能组件能够在上电后正常启动。

  初始化--_Init( ):
  通过设置相应的控制寄存器实现MCU的启动和对各功能外设(Peripheral)的管理:
时钟:MCU工作采用内部时钟,通过设置ICS控制寄存器实现;

端口:根据系统端口分配方案,结合相关外设--I2C、SCI的控制寄存器实现;
I2C控制器:传输速率、地址选择设定;
SCI控制器:波特率设置。

  初始化--LCD_Init( ):
  通过指令初始化驱动控制芯片HT1621B,完成液晶显示器的初始化。

  存储缓冲区初始化--RT_Data、 Word_Base[ ]:
  MC9S08QG8内部集成了512字节的RAM满足程序运行所需。而在跌倒探测器运行过程中,MCU持续采集的数据,并进行处理,因此要为数据分析预先开辟好缓存区。同样,在利用CDMA发布报警信息时,报警信息文字内容需要在进行软件设计时预先设定好,并在需要使用时通过指针调用。

  需要使用者进行确认的系统信息的设定,是指跌倒探测器报警信息的接收方可以根据实际情况由使用者进行设定,例如亲属的移动电话或急救中心的固定座机(要求能够接收短信)。使用者可以通过按键配合液晶,输入接收方的号码即可,必要时使用者也可以对接收方号码进行修改。

  按键功能
  按键功能在软件设计中单独提出是因为本系统受限于MCU端口数量,无法按照预先设计的人机交互需求安排足够端口作为键盘扫描之用。本设计中最终确定使用2个按键,按键的功能设定及使用方法设计如下。

  "Alam"键(启动报警接收方号码输入、手动报警):
  跌倒探测器一般工作模式下,长按(超过2秒)"Alam"键,启动报警信息发布功能,适用于除跌  倒情况外其他紧急情况;
  跌倒探测器一般工作模式下,按"Alam"键,跌倒探测器进入设置报警接收方号码状态,配合"Alter"键实现号码输入;
  跌倒探测器进入报警处理状态(蜂鸣器beep)时,按"Alam"键,直接发布报警信息,然后关闭蜂鸣器;
  "Alter"键(计步器启动、暂停、清零、取消报警、设置报警接收方号码):
  跌倒探测器一般工作模式下,按"Alter"键在计步器启动、暂停和清零三项功能之间切换;
  跌倒探测器进入报警接收方号码输入状态时,"Alter"键执行液晶显示的数字加1的操作,数字从0-9循环;
  跌倒探测器进入报警处理状态(蜂鸣器beep)时,按"Alter"键取消报警,然后关闭蜂鸣器。

  计步器
  MCU始终在分析佩戴者身体姿态的信息,因此可以将佩戴者的行走动作分析作为一项附属结果输出,从而使跌倒探测器还具有了计步器的功能。

  参考图1,在理想状态下的步行过程中,X轴和Z轴都应该能够检测到加速度的周期性变化--X轴由前进的动作引起,Z轴由身体的上下起伏引起,这种周期性的变化可以为步行动作的分析提供依据。由于在实际使用过程中,身体随迈步动作产生相应的晃动同样会引起在三个正交坐标轴方向上的输出,因此在设计检测算法时应设定合适的加速度阈值。只有超过一定幅度的输出才被看作是由于迈步动作所引起,避免由于正常的身体晃动引入的各种伪差。计步器实现的软件流程如图7。


   跌倒检测
  危险的或者可能已产生较严重后果的跌倒发生后,人体通常处于水平状态,因此对于这种类型的跌倒,要求跌倒探测器都能够检测到并实施报警处理机制。而对于其他较为复杂的跌倒过程,则需要通过报警机制的配合,实现对跌倒探测及危险报警的准确触发。跌倒检测的算法状态机如图8所示,


 

  跌倒检测算法描述如下:

  1)主循环等待,监测Z轴加速度变化,如果超过阈值,进入下一步;
  2)等待加速度恢复到正常范围内,进入下一步;
  3)再设置延时10秒,等待佩戴者状态稳定;
  4)数据分析,如果发现佩戴者身体水平,认为发生跌倒状况,触发报警处理。

  报警处理
  在本设计中,采用跌倒检测算法和多种报警模式相结合的方式。跌倒探测器检测到跌倒发生时,系统必须能够准确无误地将报警信息发布出去,才能保证跌倒者获得救助。跌倒包含很多种类型,有些情况下,检测到的"跌倒"是有意识的行为--或者根本不是跌倒--假阳性;另外,有时跌倒者仍然还保持一定的行动能力,为了尽快得到救助,自身可以采取一定的行动;还有一种情况,跌倒造成比较严重的后果,跌倒者已无法行动。

  针对上面提到的几种情况,报警处理的软件设计将加以区分对待:

  检测到跌倒后,系统启动30S的倒计时器,并打开蜂鸣器,每3S响一次,如果没有接收到任何输入,30S结束后,系统自动发布报警信息;

  进入30S倒计时后,蜂鸣器"beep",系统可以响应用户输入,跌倒探测器的两个按键分别设置为"手动报警"和"取消(报警)"的功能,如果用户按"手动报警"键,系统发布报警信息;

  如果用户按"取消"键,系统关闭30S倒计时和蜂鸣器,不作任何处理,直接返回计步器和跌倒检测状态。

  通信控制

  报警信息通过CDMA短信的方式发送给接收方,跌倒探测器采用DTGS-800b型CDMA模块,通信控制就是使其能够正常工作的一段例程。DTGS-800b型CDMA模块提供RS232接口,MCU可以根据需要通过AT命令实施对通信过程的控制。具体通信例程根据设计需求应包括如下内容:

启动CDMA模块--Comm_Start( );
启动GpsOne?服务--Gps_Start( );
获得GPS空间定位信息--Gps_Position( );
发送短信息报警--Send_SMS( )。
由于通信例程涉及的状态不多,基本是按照上面的顺序进行,因而程序结构比较简单,这里就不再赘述。


 

结论

  按照上述方案设计完成的跌倒探测器样机线路板如图9所示,左图为带有CDMA模块线路,右图为不带CDMA模块线路,可见其下方是读SIM卡电路。上电后,该线路板各功能模块工作正常,能够完成加速度采集、EEPROM数据存储和跌倒报警短信发送(包括自动、手动和取消模式),按键液晶均能够正常

蜂鸣器相关文章:蜂鸣器原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭