+ 桥梁安全监测无线传感器网络系统
采用TI的MSP430微控制器和CC2420射频收发芯片设计无线节点,并利用ZigBee协议栈,形成无线传感器网络系统,监测桥梁的倾斜和振动等结构参量,监测示意图如下。汇聚节点采集各检测节点信息,并将其发送到上位机监控界面。
监测参量包括倾角、振动、光照和温度等,且功能可任意配置。倾角通过三轴数字加速的传感器ADXL345实现监测,其与MSP430通过SPI接口通信,获得每个轴向的加速的后,可通过如下公式计算与地表水平面的倾角,即为桥梁的倾斜角度:
振动参量则直接对X、Y和Z三个轴的加速的进行数据分析,得到振动频率。振动数据的一个采样样本如下图所示。
温度和光照分别通过热电阻和光敏电阻设计模拟电路,并通过A/D转换得到。
系统设计的难点在于降低单个节点的功耗。因此对射频模块和微控制器模块都采用休眠机制。射频模块CC2420在OFF、PD、IDLE、RX和TX等各状态的切换及对应的切换指令可查阅其数据手册,在此不作赘述。
经项目实际验证,射频模块进入深度休眠状态所执行的步骤为:(1)通过SRFOFF指令将CC2420切换到IDLE状态;(2)禁止CC2420芯片的FIFOP引脚中断;(3)清除VREG_EN对应引脚,令CC2420芯片进入OFF状态。射频模块退出深度休眠状态所执行的步骤为:(1)置位VREG_EN对应引脚,起动CC2420芯片,启动后自动进入PD状态;(2)通过SXOSCON指令拟将CC2420切换到IDLE状态;(3)等待晶振起振;(4)初始化CC2420芯片相关寄存器,设置通信模式、使用信道和内部地址等;(5)通过SRXON指令将CC2420切换到RX状态;(6)初始化FIFOP引脚对应的中断,并使能该中断,待机接收数据包。射频模块的休眠时间由微控制器的定时器模块控制,为减小内部DCO带来的时钟漂移,提升定时时间的精准性,微控制器采用ACLK作为时钟源。
微控制器采用MSP430F1611,其内部提供五级休眠模式LPM0 LPM4,考虑到射频模块采用ACLK作为时钟设计定时器,且定时中断可促使CPU恢复正常工作模式,项目采用LPM3模式(CPU、MCLK和SMCLK休眠;ACLK保持工作;DCO禁用)进行微控制器休眠。编程实现中分别通过_BIS_SR(LPM3_bits)和_BIC_SR_IRQ(LPM3_bits)进入和退出LPM3休眠模式。
加入如上射频和微控制器休眠机制后,单节点在2%占空比下静态功耗为1.8mA,动态功耗为2.9mA。
加入如上射频和微控制器休眠机制后,单节点在2%占空比下静态功耗为1.8mA,动态功耗为2.9mA。恭喜楼主效果不错啊
你也可以试一下,让CC2420进入深度休眠,MSP430保留ACLK工作,效果还行。