如何实现ZigBee休眠与唤醒报告人:XXX时间:2013-3-28ZigBeeZigBee技术优势技术优势低功耗低功耗发射功率仅为1mW,仅靠两节5号电池就可维持长达6个月到2年的工作时间
在实际的开发应用中,产品是否具有低功耗这一特性将在很大程度上决定其整体性能
目标通过休眠定时器,实现传感器节点的休眠/唤醒调度,使其低功耗运行,减少节点能耗
如何去实现ZigBee休眠与唤醒
CC2530有3种睡眠模式,pm2模式比较省功耗而且可以被定时唤醒;pm3模式最省电但是只能被外部中断唤醒
1、sensordemo的sensor在入网以后,为什么灯在不断地闪
其实,闪一次就是睡眠了一次:亮的时候睡过来,灭的时候睡下去
具体代码在halSleep函数里
要做的,就是读懂这个机制是怎么运作的
2、为什么闪的频率那么高
zstack的睡眠机制就是在操作系统没事干的时候才睡眠,频率高说明应用程序让操作系统不断做事
你想让它长时间睡眠,那要做的就是不要不断地给操作系统事情做,找到分配系统任务的地方
要设置低功耗模式,先确认:1
f8wConfig
cfg文件中DRFD_RCVC_ALWAYS_ON定义为FALSE2
Options->C/C++Compiler->Definedsymbols中添加预编译“POWER_SAVING”;重要函数voidhalSleep(uint16osal_timeout)1
首先将osal_timeout转成以320US为单位2
获取下一次MAC定时器到期时间3
halPwrMgtMode=(timeout==0)
HAL_SLEEP_DEEP:HAL_SLEEP_TIMER;//为PM2,PM3模式
没有任务要执行就进入PM3深度睡眠,否则进入PM2睡眠,可以定时器唤醒
唤醒OSAL机制的ZigBee低功耗管理(CC2530)涉及文件OSAL_Pwr