zigebee协议栈中无线数据收发采用CMSA/CA碰撞避免机制,设置NLME_SetPollRate(1000),我开启低功耗模式后,终端设备E1唤醒状态下发送一次DataRequest的数据请求,现在设备E1开始发送DataRequest,然后检测到信道正在被其他设备使用,E1会进行第一次等待,等待时间是CMSA/CA协议中的随机延迟,我想问下,这个DataRequest的发送频率的时间的问题,这个时间是E1开始使用空闲信道发送DataRequest开始计时?还是从E1开始调用DataRequest数据发送就开始计时? 也就是如果E1第一次发送DataRequest检测到信道忙,进行延迟等待下次发送数据,这个延迟等待时间是算在设置NLME_SetPollRate(1000)这个1s里?
YiKai Chen:
如果我記得沒錯,这个延迟等待时间是沒算在设置NLME_SetPollRate(1000)这个1s里
Viki Shi:
这个比较偏底层,需要跟zigbee team讨论一下再过来更新
user6245950:
回复 YiKai Chen:
我这边思考下,这个应该也是不算在这边的,想确认下
user6245950:
回复 Viki Shi:
好的,谢谢,还有以下疑问:
1、协调器有数据发送时,会先进行CCA检测,查看相关信息,得出这个CCA检测时间大概是1ms,这边想确认下这个时间是多少?然后这个时间确定了后,还有相关疑问。
2、协调器再发送DataRequset之前,会进行CCA检测,此时DataRequest会等待检测结果处理,等待这个时间跟CSMA-CA机制的第一次延迟时间是同一个时间?如果不是,麻烦您解释下这两个时间。
YiKai Chen:
回复 user6245950:
可以參考一下 TheDarkSide 在 e2e.ti.com/…/1198704 的說明
YiKai Chen:
回复 user6245950:
很好奇确认NLME_SetPollRate(1000)这个设置时间對你來說可以作什麼呢?
user6245950:
回复 YiKai Chen:
协议栈的休眠机制这块,我们开发者是不能进行控制何时进入休眠以及休眠时间的问题,然后就是使用其他方法进行处理,处理中遇到E会出现掉网情况,但是这个掉网的情况协议栈这边是发现不了的,我查了相关资料,这个问题数据链路层的问题,最后查看DataRequest发送返回的错误类型好像是0xC2(记不太清楚了也可能是0x2C),为了解决此问题然后使用了NLME_SetPollRate,然后就了测试了从设置到调用mac层的数据请求函数的时间大概在10ms,然后之后又根据无线数据的处理机制,所以才有相关疑问
user6245950:
回复 YiKai Chen:
而且涉及到无线数据问题,无线数据的丢包问题,无线数据接收延迟问题,这些都暂时没有摸清楚
YiKai Chen:
回复 user6245950:
掉网的情况跟SetPollRate應該沒多大關聯吧