问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何实现ZigBee休眠与唤醒

发布网友 发布时间:2022-05-30 01:16

我来回答

1个回答

热心网友 时间:2023-09-12 19:23

zigbee模块 CM200有3种睡眠模式,pm2模式比较省功耗而且可以被定时唤醒;pm3模式最省电但是只能被外部中断唤醒
1、sensordemo的sensor在入网以后,为什么灯在不断地闪?其实,闪一次就是睡眠了一次:亮的时候睡过来,灭的时候睡下去。具体代码在halSleep函数里。要做的,就是读懂这个机制是怎么运作的。
2、为什么闪的频率那么高?zstack的睡眠机制就是在操作系统没事干的时候才睡眠,频率高说明应用程序让操作系统不断做事。你想让它长时间睡眠,那要做的就是不要不断地给操作系统事情做,找到分配系统任务的地方。要设置低功耗模式,先确认:
1.f8wConfig.cfg文件中DRFD_RCVC_ALWAYS_ON定义为FALSE
2.Options->C/C++Compiler->Defined symbols中添加预编译“POWER_SAVING”;重要函数void halSleep( uint16 osal_timeout )
1.首先将osal_timeout转成以320US为单位
2.获取下一次MAC定时器到期时间
3.halPwrMgtMode = (timeout == 0) ? HAL_SLEEP_DEEP : HAL_SLEEP_TIMER;//为PM2,PM3模式。没有任务要执行就进入PM3深度睡眠,否则进入PM2睡眠,可以定时器唤醒。
4.唤醒OSAL机制的ZigBee低功耗管理涉及文件OSAL_PwrMgr.hOSAL电源管理的API头文件OSAL_PwrMgr.COSAL电源管理的API C文件hal_sleep.c底层的电源管理文件电源管理结构体typedef struct{uint16 pwrmgr_task_state;//任务状态uint16 pwrmgr_next_timeout;//下一次超时uint16 accumulated_sleep_time;//睡眠时间uint8pwrmgr_device;//电源管理设备属性,有PWRMGR_ALWAYS_ON和PWRMGR_BATTERY两种} pwrmgr_attribute_t;#define PWRMGR_ALWAYS_ON 0#define PWRMGR_BATTERY
1选择PWRMGR_ALWAYS_ON的话将不会进入睡眠模式,选择PWRMGR_BATTERY将允许HAL管理CPU进入SLEEP LITE或者SLEEP DEEP状态。#define PWRMGR_CONSERVE 0#define PWRMGR_HOLD
1低功耗标志,主要用于osal_pwrmgr_task_state()这个函数中,用于标志每一任务是否需要低功耗。extern pwrmgr_attribute_t pwrmgr_attribute定义一个电源管理的全局变量。/********************************************************************** @brief初始化电源管理函数,这个函数在OSAL.C里面的osal_init_system( )调用,也就是在OSAL系统初始化的时候将电源管理模式调成了不会进入睡眠模式的状态。*/void osal_pwrmgr_init( void ){pwrmgr_attribute.pwrmgr_device = PWRMGR_ALWAYS_ON; //默认没有睡眠模式pwrmgr_attribute.pwrmgr_task_state = 0;//清零}OSAL
系统在检查完所有的任务事件之后发现没有事件需要处理,这样在POWER_SAVING宏定义打开的情况下将调用osal_pwrmgr_powerconserve();函数,在这函数中将会根据选择系统进入休眠。退出休眠当出现IO中断或者复位时候会退出休眠,或者在休眠定时器中断时候也将会退出休眠。如果是IO中断或者休眠定时器中断退出之后将回到进入休眠的地方继续向下执行,复位退出的话进入程序的初部分执行。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果手机微信怎么换漂亮字体(苹果手机微信怎么换行输入) 有什么好用的app转换字体 手写转文字的软件 erp可以看评论地址吗 淘宝评论url是什么意思? 揭秘:码牌支付风控升级,背后真相揭秘 电脑电视直播软件哪个好用什么软件好电脑看电视直播 潼南子同街学区是哪些 三极管BU406价格和参数? 火锅料放在冰柜忘了插电一个星期给会坏了吗 火锅的设备有哪些 zigbee中怎样实现周期发送信息 怎样将cc2541的功耗降低到1ma以下 cc2540 osal用的是哪个定时器 施耐德和abb哪个好?我想知道开关插座这两个选哪个牌子更好些? 选开关的话,施耐德和abb哪个好? 龙之含下有逆鳞,触之必怒而杀神 房子被雨水淹了怎么办 "逆鳞"是什么意思 我家房子被水淹了,村里有补偿吗? 女人说的逆鳞你懂吗?这句话我怎么回答 农村合作医疗去年没交,如果今年想交费,是不是还要补交去年没交的费用吗,这样补交是否合理? 我家房子被楼上淹了怎么赔偿啊 农村房屋被水淹该找哪个部门 龙宫增加法术连击几率的中级经脉技能是什么 农村新农合建档立卡户显示欠费怎么回事? “龙有逆鳞触之则死,狼生暗刺窥之则杀”这句话出自哪篇文章?哪本书?求助 房子被淹了怎么处理 农村合作医疗显示欠费金额不大于0不需缴费怎么回事? 龙有逆鳞,触必逆之。是什么意思? 农村合作医疗去年没交今年交应该补交去年的吗? 求助zigbee的ZSTACK协议栈定时器使用方法 海通e海通财里为什么一点深物业这只股票网页就自动退出了? 请问高压142低压104心跳42正常吗? 血压低压104有问题吗 有吃跟没有吃降压药测量的血压一样都是高压130低压104不知道为什么 翻译一个句子“我这里没有现货”英语怎么说! 28岁高压175 低压104正常么 短语翻译 英语的 血压,低压104,高压120, 我是zigbee的初学者。做了一个程序,想把移植到ti的z-stack中去,我的程序用到了延时。 高压144,低压104,应该怎么办 东大门华信app实名安全吗 ship-to-stock是什么意思 求好人翻译一下:What do you show in stock ready to go? Do you have all 4,000 pcs in stock? 血压一直高,今早服完降压药后血压高压118,低压104了,但是头迷糊,左眼睛和眼眶不舒服是怎么回事 我的CC2540实验SimpleBLECentral程序为什么会死在HalFlashErase里 耐克最新广告 想要了解华信金融平台安全吗?大家给说一下 帮我翻译一下(翻译成中文) ble central 必须要先扫描再建立连接吗