Z-STACK快速广播丢数据

在Zigbee中,广播数据是不适合像单播数据这么连续发送的,这是Zigbee协议栈规定的。

Zigbee的广播机制解释如下,广播数据在发出后,其余有广播能力的节点如rouer在收到后会转发这个广播包,如此一层层往后跳以保证整个网络都能收到这个广播。同时,任何一个节点在发送或转发这个广播包的时候会监听自己的邻居有没有进行转发,如有没进行转发的,说明该邻居可能没有收到,会进行重发。重试次数在zstack中有设定。

如此,一旦网络规模大了整个广播包会在空中存在较长时间,所以Zigbee联盟设定了nwkBroadcastDeliveryTime这个属性,用来说明一个广播包最多有效的时间。而在这段时间内,发起者都会保留这个广播包放在一个table中。这个table默认最多能存10个这样的包,所以连续发送的话,发送10个时候这个table就存满了,新的包就不能发送了,必须等待有数据过期后才有新的数据能发出。

以下是Zigbee联盟建议 nwkBroadcastDeliveryTime 过期时间的计算方法,参考Zigbee spec:

nwkBroadcastDeliveryTime = 2*nwkMaxDepth* ((0.05+(nwkcMaxBroadcastJitter/2))+ nwkPassiveAckTimeout*nwkBroadcastRetries/ 1000)


8wConfig.cfg中  -DNWK_MAX_DATA_RETRIES和-DAPSC_MAX_FRAME_RETRIES

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值