如何实现ZigBee休眠与唤醒

如何实现ZigBee休眠与唤醒

ID:37485543

大小:963.00 KB

页数:18页

时间:2019-05-12

如何实现ZigBee休眠与唤醒_第1页
如何实现ZigBee休眠与唤醒_第2页
如何实现ZigBee休眠与唤醒_第3页
如何实现ZigBee休眠与唤醒_第4页
如何实现ZigBee休眠与唤醒_第5页
资源描述:

《如何实现ZigBee休眠与唤醒》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、如何实现ZigBee休眠与唤醒报告人:XXX时间:2013-3-28ZigBee技术优势低功耗发射功率仅为1mW,仅靠两节5号电池就可维持长达6个月到2年的工作时间。在实际的开发应用中,产品是否具有低功耗这一特性将在很大程度上决定其整体性能。目标通过休眠定时器,实现传感器节点的休眠/唤醒调度,使其低功耗运行,减少节点能耗。如何去实现ZigBee休眠与唤醒?CC2530有3种睡眠模式,pm2模式比较省功耗而且可以被定时唤醒;pm3模式最省电但是只能被外部中断唤醒。1、sensordemo的sensor在入网以后,为什么灯在

2、不断地闪? 其实,闪一次就是睡眠了一次:亮的时候睡过来,灭的时候睡下去。具体代码在halSleep函数里。要做的,就是读懂这个机制是怎么运作的。2、为什么闪的频率那么高?zstack的睡眠机制就是在操作系统没事干的时候才睡眠,频率高说明应用程序让操作系统不断做事。你想让它长时间睡眠,那要做的就是不要不断地给操作系统事情做,找到分配系统任务的地方。要设置低功耗模式,先确认:1.f8wConfig.cfg文件中DRFD_RCVC_ALWAYS_ON定义为FALSE2.Options->C/C++Compiler->Defin

3、edsymbols中添加预编译“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睡眠,可以定时器唤醒。4.唤醒OSAL机制的ZigBee低功耗管理(CC2530)涉及文件OSAL_PwrM

4、gr.hOSAL电源管理的API头文件OSAL_PwrMgr.COSAL电源管理的APIC文件hal_sleep.c底层的电源管理文件电源管理结构体typedefstruct{uint16pwrmgr_task_state;//任务状态uint16pwrmgr_next_timeout;//下一次超时uint16accumulated_sleep_time;//睡眠时间uint8pwrmgr_device;//电源管理设备属性,有PWRMGR_ALWAYS_ON和PWRMGR_BATTERY两种}pwrmgr_attri

5、bute_t;#definePWRMGR_ALWAYS_ON   0#definePWRMGR_BATTERY        1选择PWRMGR_ALWAYS_ON的话将不会进入睡眠模式,选择PWRMGR_BATTERY将允许HAL管理CPU进入SLEEPLITE或者SLEEPDEEP状态。#definePWRMGR_CONSERVE0#definePWRMGR_HOLD    1低功耗标志,主要用于osal_pwrmgr_task_state()这个函数中,用于标志每一任务是否需要低功耗。externpwrmgr_at

6、tribute_tpwrmgr_attribute;定义一个电源管理的全局变量。/**********************************************************************@brief初始化电源管理函数,这个函数在OSAL.C里面的osal_init_system()调用,也就是在OSAL系统初始化的时候将电源管理模式调成了不会进入睡眠模式的状态。*/voidosal_pwrmgr_init(void){pwrmgr_attribute.pwrmgr_device=PWR

7、MGR_ALWAYS_ON;//默认没有睡眠模式pwrmgr_attribute.pwrmgr_task_state=0;           //清零}/**********************************************************************@fnosal_pwrmgr_device*@brief设置电源管理设备属性。*@parampwrmgr_device-选择PWRMGR_ALWAYS_ON的话将不会进入睡眠模式,选择PWRMGR_BATTERY将允许HAL管理C

8、PU进入SLEEPLITE或者SLEEPDEEP状态。*/voidosal_pwrmgr_device(uint8pwrmgr_device){pwrmgr_attribute.pwrmgr_device=pwrmgr_device;}/*这个函数可以被每一个任务调用,用于设置这个任务是否支持低功耗运行,如果每一个任

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。