开源改变世界

打包的 RXTX 接口 #431

推推 grbl 2年前 (2023-01-22) 178次浏览

关闭
jfstockton 打开了这个问题 2014 年 6 月 15 日 · 2 条评论
关闭

打包的 RXTX 接口#431

jfstockton 打开了这个问题 2014 年 6 月 15 日 · 2 条评论

注释

打包的 RXTX 接口 #431

有没有人研究过更改串行接口,以便将命令以数据包而不是串行流的形式发送到 grbl?我正在从事一个 3D 打印机项目,该项目使用一组基于 Arduino 的从控制器和一个主主机。控制器使用非常简单的可变长度数据包格式,包括起始字符、地址、命令、[数据]、校验和和结束字符。这种数据包格式向数据缓冲区添加了 5 个字符,并且很容易将其限制在总字节数少于 128 个字节。从站通过多点配置的半双工 RS-485 总线以 230.4 kbps 的速度连接。

这似乎是 protocol.c 代码可以添加一些状态,以允许接收缓冲区、检查校验和、检查地址,然后选择性地解释。使用 ACK/NAK 握手使主机能够重新发送丢失的数据包并处理故障。

这里有几个问题: 1. 有没有人已经这样做了?2、是否存在资源竞争限制波特率?3. 代码中是否已经有等效的 NAK 响应?4. 对此有任何兴趣、指导或想法吗?

来自德克萨斯州奥斯汀的约翰

打包的 RXTX 接口 #431

Multiwii 这样做 – https://github.com/multiwii/multiwii-firmware/blob/upstream_shared/Serial.cpp

顺便说一句,我也在奥斯汀,我建立了http://andrewhodel.github.io/grblweb/ – 给我发电子邮件andrewhodel@gmail.com我想找到在这个领域工作的其他人。

打包的 RXTX 接口 #431

这听起来像是 Grbl 的 Uno 和您的 RS485 总线之间的中间小型控制器的工作。
除了 Ack/Nak 之外,您还应该考虑实施 RNR(接收器未准备好)以使主机稍后尝试重新发送。所有这一切当然意味着 master 会跟踪谁有 Ack’ 或没有。并且您需要添加一个 Msg ID,以便两端都可以判断数据包是否被丢弃。最后,您将为可预测的通信实现接近 X.25 或 SDLC 的东西或 X.25 或 SDLC 的子集 :-)
通过使用中间设备,您可以获得将此功能添加到不仅仅是 Grbl 的好处。中间设备可以向主设备显示相同的界面,而不管它连接到什么机器。

喜欢 (0)