CC2530,睡眠设备P2模式下接收信息问题。
协议栈:ZSTACK 2.5.0
睡眠设备 POLL_RATE:1000ms
测试时发现:10个睡眠设备在接收协调器(父节点)的广播包时,有一个设备没能接收到。协调器清除NV后重新发送广播包,所有设备都能接收到。
问题:1.为什么会出现测试的情况?
2.CC2530协调器在POLL_RATE 为1S情况,大概能挂在多少个?
3.协调器(父节点)缓存给子节点的信息在那个参数能找到?
1,由于节点开启了休眠功能,那么节点发送Data request以后Rx打开的时间比不休眠的时候肯定要短,所以你的10个节点同时data request请求数据的时候,由于碰撞重发,有可能那时候节点已经进入休眠了。
2,如果是你这种的星型网络的话,100个肯定没有问题的,如果你只使用星型网络,建议使用TIMAC协议栈
3,
/* Default indirect message holding timeout value:
* 1-65535 (0 -> 65536) X CNT_RTG_TIMER X RTG_TIMER_INTERVAL
*/
-DNWK_INDIRECT_MSG_TIMEOUT=7
首先感谢VV的回复。
对于问题1:我原本也以为是通信的原因。但是后来我把别的睡眠设备全断电后,发现有问题的睡眠设备也还是收不到广播包。协调器的超时时间也是设置了7s。所以我怀疑是不是协议栈中有某个数组用于暂存了给睡眠设备的信息。但是这个数组大小受到限制,比如只支持9个睡眠设备的的暂存信息。第10个设备就无法收到。这也是我问第三个问题的原因。协议栈中是否有这样的一个数组。
我需要做下同样的测试,看休眠的节点能否收到广播数据。
VV ,你好!
2. 星型网络 可以支持100个? 你是说 多个终端====》1个协调器, 这种星型网络吗? 不是20个吗?
3. 我尝试加20个就加不进去了, 另外我发现加到16个之后, 后面加进来的设备 收不到广播信息。(或者应该说广播信息 没有发给后面加进来的设备) 这20个设备 都是 工作PM2, 每45sPOLL 一下 协调器。
3. 我尝试加20个就加不进去了, 另外我发现加到16个之后, 后面加进来的设备 收不到广播信息。(或者应该说广播信息 没有发给后面加进来的设备) 这20个设备 都是 工作PM2, 每45sPOLL 一下 协调器。
我也遇到了16个之后收不到广播信息的情况,请问你的解决了吗?是如何解决的?