微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI Zigbee设计交流 > 休眠低功耗问题,保证有新问题。如果不能实现低功耗,天天换电池是没人用的,所以希望能够得到解答。

休眠低功耗问题,保证有新问题。如果不能实现低功耗,天天换电池是没人用的,所以希望能够得到解答。

时间:10-02 整理:3721RD 点击:

1、* The number of milliseconds to wait between data request polls to the coordinator. */

-DPOLL_RATE=1000 

-DPOLL_RATE=20000

POLL_RATE向父节点请求消息,

问题1:如果不请求,是不是得不到消息?这个请求轮询,最大间隔为多少?

问题二:如果不休眠,一直开接收,是不是就不用去请求了?

 

2* This is used after receiving a data indication to poll immediately   for queued messages...in milliseconds.  */

-DQUEUED_POLL_RATE=100

在收到数据指示后,立即轮询消息队列。

问题三:请问消息队列存放在哪里?父节点那里吗?

问题四:100是说在100微秒的时刻去询问,还是在100微秒内去询问,又或者询问100次?

问题五:是在发出data request (就是使用与POLL_RATE有关的函数后)后,然后收到数据指示(  receiving a data indication ),开始队列询问吗?

 

3、This is used after receiving a data confirmation to poll immediately  * for response messages...in milliseconds  

-DRESPONSE_POLL_RATE=100

这个参考二,就不问问题了。

 

4、/* This is used as an alternate response poll rate only for rejoin request.

 This rate is determined by the response time of the parent that the device  is trying to join.

 -DREJOIN_POLL_RATE=440

与重新加入网络有关。

问题六:休眠会断网,醒来不会自动恢复吗?为什么是重新加入?二者有什么区别?

问题七:这个轮询,是在醒来后轮询吗?以440微秒的速率轮询吗,如果不是,它是什么意思?可不可以10s?它的值除了受数据类型(如uint16<65536)限制还有其他限制吗?怎样设置才更节能。

 

我第一次写好了,准备发表,断网了。现在这是第二遍!希望能够得到解答。我对低功耗不熟,是因为我对其机制不熟悉,这几个参数,不知道怎样才是最优的。

 

支持一下,问得不错,望TI员工能解答

   发现论坛上稍微深刻一点的问题,TI的工程师们怎么都不回答了啊?!是不愿回答、回答不了、还是不忍正视ZigBee的诸多缺陷啊,纳闷......

是啊  没怎么人回答,,,还是自己自己解决吧。。。。

顶,望TI 工程师来解答一下。楼主弄清楚的话也希望能分享一下

问的好,VV大神赶快现身

VV快出来

dao ming

1、* The number of milliseconds to wait between data request polls to the coordinator. */

-DPOLL_RATE=1000 

-DPOLL_RATE=20000

POLL_RATE向父节点请求消息,

问题1:如果不请求,是不是得不到消息?这个请求轮询,最大间隔为多少?

问题二:如果不休眠,一直开接收,是不是就不用去请求了?

 是的,这个是由ZigBee的协议指定有关系的,从原理上来说也不难理解,因为终端设备可能处于休眠状态,所以父设备不可能立即把数据发送出去,只能等待终端设备来请求的时候再把数据发送出去。

最大间隔取决于实际的应用需求,是一个多个因素的综合,在时延,功耗等方面,如果间隔越短,实时性越好,但是功耗就越高。间隔越长功耗越低,但是实时性就差了。

另外这个跟实际的应用也有关系,两种不同的产品,一种是门磁,另外一个门锁。

如果是门磁,那么在正常工作情况下,父设备是不会给门磁发数据的,只有门磁在入网的时候可能会接收配置型。 所以一般门磁的poll rate=0

门锁,也是电池供电需要低功耗的,但是门锁就是父设备经常会给子设备发数据,因为需要实现门锁的控制,那么就需要一定的poll rate去请求数据。总之跟实际应用有关系。另外有一点,父设备不会永久给子设备保留数据,协议栈默认是最多是7.5s的时间。

如果不需要休眠的话,可以不用请求的了,但是这样的设备一般就直接定义为Router了。

2* This is used after receiving a data indication to poll immediately   for queued messages...in milliseconds.  */

-DQUEUED_POLL_RATE=100

在收到数据指示后,立即轮询消息队列。

问题三:请问消息队列存放在哪里?父节点那里吗?存放在协议栈内部,这个是内部操作

问题四:100是说在100微秒的时刻去询问,还是在100微秒内去询问,又或者询问100次?100ms

问题五:是在发出data request (就是使用与POLL_RATE有关的函数后)后,然后收到数据指示(  receiving a data indication ),开始队列询问吗?是的

 

3、This is used after receiving a data confirmation to poll immediately  * for response messages...in milliseconds  

-DRESPONSE_POLL_RATE=100

这个参考二,就不问问题了。

 

4、/* This is used as an alternate response poll rate only for rejoin request.

 This rate is determined by the response time of the parent that the device  is trying to join.

 -DREJOIN_POLL_RATE=440

与重新加入网络有关。

问题六:休眠会断网,醒来不会自动恢复吗?为什么是重新加入?二者有什么区别?

建议还是详细了解下ZigBee的工作机制,什么情况节点会认为断网?断网了节点会做什么操作? 

问题七:这个轮询,是在醒来后轮询吗?以440微秒的速率轮询吗,如果不是,它是什么意思?可不可以10s?它的值除了受数据类型(如uint16<65536)限制还有其他限制吗?怎样设置才更节能。

 440ms,这个没有us的单位的。

这个440ms只是用于rejoin的,发送rejoin request,去获取rejoin response的data request的时间。

我第一次写好了,准备发表,断网了。现在这是第二遍!希望能够得到解答。我对低功耗不熟,是因为我对其机制不熟悉,这几个参数,不知道怎样才是最优的。

 

先不谈什么是最优的,把原理搞清楚了,自然知道了。

VV,您 好:

    您 在回答1.里说:“父设备不会永久给子设备保留数据,协议栈默认是最多是7.5s的时间。”,那么我想问下,这个保留时间可以修改吗?还有父节点会缓存多少条数据?缓存的数据条数是否也能修改,谢谢。

都可以修改的,但是一般不建议修改,默认的是经验值。

非常感谢您的回答。我想再问一下,那这两个值在哪里修改呢?谢谢!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top