gpt4 book ai didi

crash - 当发送太多串行数据时,Digis XBee 系列 2 固件会卡住/崩溃。可靠性不好

转载 作者:行者123 更新时间:2023-12-02 08:09:04 24 4
gpt4 key购买 nike

症状:我这里有几个 XBee 24-ZB 系列 2,它们连接在 PC 上作为协调器,并连接在终端设备 (AVR) 上作为路由器(无 sleep )。

当发送大量数据时,路由器/终端设备 XBee 可能会突然卡住 DIN 线路。它仍然可以通过 radio 进行通信,并且仍然可以将接收到的数据串行传输到微 Controller (DOUT),但忽略 DIN。

XBee 在透明模式下运行,并且无论您尝试多少次,它也会忽略 AT 命令(带保护时间的+++)。我非常确定波形是干净的,阅读 VCC 通过滤波电容器保持稳定,阅读手册和数据表。

唯一的解决方案是重置 XBee 或重新启动 XBee 设备。

波特率:我尝试了 111111 和 250000。这些与 XBee(0% 错误)和同样在 16 MHz 晶体上运行的 AVR 完美匹配。在XBee工作期间,它可以传输大量数据而不会出现任何损坏,并且微 Controller 的重置不会改变任何东西。

最佳答案

此问题的原因似乎是(已知!)固件错误。

XBee 具有硬件流控制,通常在微 Controller 上不使用;它是额外的线路、路由、编程,在大多数情况下并不那么重要。 XBee 有一个用于串行输入的接收缓冲区,可以填充该缓冲区。它应该忽略附加数据;如果您发送的数据超出了通过无线方式发送的数据,它将开始丢失字节。

如果接收缓冲区已满后继续发送数据,它将进入非法状态,这绝对是一个错误,恕我直言。如果您推送数据一段时间,它将无限期地停止获取数据,直到硬重置。

注意:它也不会再发送任何 radio 数据,因此即使缓冲区已满,也不会再继续使用它。我试图从 digi 支持处获得确认,但如果不支付 99 美元,他们将不会回应这一事实(一个问题 = 99 美元)。我不会花 100 美元来讨论他们固件中的错误;他们应该修复它!

解决方案是实现硬件流量控制或绝对确保不会发送太多数据。根据具体情况, radio 吞吐量为 5 到 39 kbit/s,因此您需要包含 ACK 的 API 模式或等待来自 radio 合作伙伴设备的响应(自己的 ACK 层)。

我用两个不同的原型(prototype)和三个全新的 XBee 模块 (XB24-ZB) 验证了这一事实。

如果有人有关于该主题的更多信息,我将不胜感激。

关于crash - 当发送太多串行数据时,Digis XBee 系列 2 固件会卡住/崩溃。可靠性不好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24434536/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com