如何让多个节点与协调器通信而不丢失数据?
当更多数量的 XBee 节点同时将它们的数据发送到同一个 XBee 协调器时,会不会出现拥塞问题?据我所知,是的。
在这种情况下,我该如何避免这种拥塞?另外,我希望系统能够实时工作。所以不应该有任何延迟。
我遇到了 Stack Overflow 问题XBee - XBee-API and multiple endpoints。我处理类似的问题。
这是如何解决的?
如何让多个节点与协调器通信而不丢失数据?
当更多数量的 XBee 节点同时将它们的数据发送到同一个 XBee 协调器时,会不会出现拥塞问题?据我所知,是的。
在这种情况下,我该如何避免这种拥塞?另外,我希望系统能够实时工作。所以不应该有任何延迟。
我遇到了 Stack Overflow 问题XBee - XBee-API and multiple endpoints。我处理类似的问题。
这是如何解决的?
当您在网络上添加设备时,避免拥塞的唯一方法是减少传输频率。
如果您查看 XBee 文档,大多数模块都有一个“传输状态”帧,一旦消息成功传递(或由于错误而被放弃),主机就会收到该帧。我相信成功响应是由网络上的 MAC 级 ACK 触发的。
如果您的节点上有智能主机,它们可以通过在发送下一帧之前等待 ACK 来调整其传输频率,甚至可以使用传输状态帧中的重试计数器在发送前设置延迟。
虽然802.15.4协议以 250 kbit/s 的速度发送数据,但标头的开销、跨网状网络的消息中继以及处理冲突将其降低到大约 100 kbit/s 的可用带宽。尝试最大化设备的有效负载,以提高数据与标头的比率。每五秒在单帧中发送五条数据比每秒在一帧中发送一条要好。
您需要发送多少数据,您对“实时”的定义是什么?10 毫秒的延迟是否可以接受?100毫秒怎么样?500 毫秒?有多少设备会尝试同时发送?他们多久发送一次?
所有这些问题都会影响您的设计,您可能会发现 802.15.4 不适合您需要做的事情。
我已经设置了 2 系列 XBee 的 15 个节点。节点将有多个传感器,如 Light、Motion 等。XBee 放置在 Fio 板上并每 3 分钟发送一次数据。节点将处于 AT 模式,Co-ordinator 将处于 API 模式。节点通过少数路由器 XBee(AT 模式)。Co-ordinator 收集数据(连接到 R'pi)并将数据上传到服务器。它不是网状网络,Xbee 不会休眠。所以,我在这个级别没有遇到任何拥塞问题。
希望这可以帮助。