找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3477|回复: 0
打印 上一主题 下一主题
收起左侧

ZigBee 低功耗的设置

[复制链接]
跳转到指定楼层
楼主
ID:76127 发表于 2015-4-18 00:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

Z-stack提供了两种sleep模式,LITE和DEEP(PM2/PM3)。当系统需 要唤醒去执行一些周期性的事件时,使用LITE sleep;当系统没有被定制周期事件而是通过外部中断(如按键)来唤醒设备,使用DEEP sleep。例如带有传感器的终端设备,它需要周期性的唤醒发送采集的数据,又如远程控制终端设备通过按键唤醒来发送一信息,它们的大部分时间都是处于 sleep,以降低功耗。

第一步:添加编译选项:POWER_SAVING

默认情况下,Z-stack里终端设备的电源管理是关闭的。添加编译选项POWER_SAVING以开启此功能

第二步:在f8wConfig.cfg里设置:-DRFD_RCVC_ALWAYS_ON = FALSE


-DRFD_RCVC_ALWAYS_ON=FALSE

第三步:根据需要,在f8wConfig.cfg里设置三个参数:


-DPOLL_RATE=1000


-DQUEUED_POLL_RATE=100


-DRESPONSE_POLL_RATE=100

Z-stack工程终端设备默认情况下为电源管理关闭,自动轮询消息这一功能是开启的。这里 有三个轮询选项,每一个都由一个不同的时间延迟参数控制。当电源管理功能开启后(添加POWER_SAVING),任一个轮询选项的设置都会影响到睡眠模 式。时间延迟的设置不能用于DEEP skeep中的轮询,因此限制了降低功耗。这三个轮询选项分别如下:

Data Request Polling—周期性向父节点发送数据请求来轮询消息队列。轮询的时间间隔由NLME_SetPollRate()或gNWK_POLL_RATE设定,如果事先没有使能它,那么在调用时就立即进行轮询。

Queued Data Polling—在收到数据指示后,就会向父节点请求消息。这个时间间隔可由NLME_SetQueuedPollRate()或gQUEUED_POLL_RATE设定。

Response Data Polling—在收到数据确认指示后,就会向父节点请求响应消息,这个时间间隔可由NLME_SetResponsePollRate()或gRESPONSE_POLL_RATE设定。

函数说明:

NLME_SetPollRate()——设置/改变网络检测速率,仅终端设备可用。

NLME_SetQueuedPollRate()——设置/改变队列检测速率,仅终端设备可用。

NLME_SetPollRate()——设置/改变响应检测速率,仅终端设备可用。

如果只是使用默认的轮询频率进入睡眠态,则只能进入LITE sleep。为了进入DEEP sleep则必须将gNWK_POLL_RATE设为0,不让它反复轮询。

设置这个三个选项可以实现多种轮询方式,例如,对于一个不需要接收消息的设备,在它加入网络后,就将这三个选项都设为0。如果APS层使用了ACK,则必需确保在消息发送后到收到ACK这一段时间内,轮询是使能的。

在有的系统中,可能需要使用可变的轮询频率,根据具体应用而进行设置。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表