打印
[485通信]

大家觉得 CDBUS 这个带仲裁的 RS485 怎么样?跟 CAN 比呢?

[复制链接]
3896|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dukedz|  楼主 | 2018-6-7 14:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 dukedz 于 2018-6-7 14:55 编辑

RS485 的 CDBUS 协议可以使用独立控制器实现按位仲裁,跟 CAN 的原理一样,但性能、易用性貌似都比 CAN 要好很多,至少可以达到 10Mbps,而且兼容传统软件方式控制的 RS485 设备,同样的数据包格式也可以直接用在普通的串口,这样的话整个产品无论对内还是对外只用维护一套协议就可以了。但 CAN 的话更老牌,可是用起来比较麻烦,譬如产品对外接口用 CAN 的话,普通客户不一定能顺利用的起来,电脑端访问也比串口类的麻烦很多。而且一个包只能传 8 个字节,很多情况都不够用。拆包的话就更复杂了。大家给点意见吧,感谢。

这个 IP 核是开源的:https://github.com/dukelec/cdbus_ip



工作机制:
前 3 个字节分别是:源地址、目标地址、数据长度;
然后是用户数据;
最后两个字节 CRC 硬件自动处理。





相关帖子

沙发
ljt8015| | 2018-10-29 17:27 | 只看该作者
RS485  抗干扰不行啊,这么高的速率,怎么能长线传输呢?

使用特权

评论回复
板凳
dukedz|  楼主 | 2018-10-31 00:58 | 只看该作者
本帖最后由 dukedz 于 2018-10-31 01:24 编辑
ljt8015 发表于 2018-10-29 17:27
RS485  抗干扰不行啊,这么高的速率,怎么能长线传输呢?

10Mbps 搞的好可以传 200 多米:
https://www.maximintegrated.com/en/app-notes/index.mvp/id/3884
中文:https://www.maximintegrated.com/cn/app-notes/index.mvp/id/3884

干扰大的情况,使用隔离可以保证数据的稳定传输。

就算降低速度使用,不再需要轮询、硬件自动切换收发,可以大大提升总线利用率。

譬如提升 20 倍总线利用率,仅使用 115200 bps 就相当于之前需要 2.3 Mbps 才能满足的应用。
提升 20 倍绝对不是危言耸听,前几天,帮人调试伺服电机,每次通讯都有 20ms 左右的空闲,
虽然是 115200 bps, 但每秒只能更新 6 次电机数据,且同步性超差。


(1 号机故障不回覆)
(2 号机的回覆影响到3 号机,增加10 ms 延时都不能通讯,要增加到下图的20 ms 才行)
(因为3 号机无法事先区分数据是来自主机还是其它电机,必须解析命令才能知道,如此频繁被无关数据打断,影响运动控制。
如果是 CDBUS, 硬件会自动过滤无关数据,只有发送给自己的数据才予以接收。 )



当然,你可以说这家的伺服做的烂,但即便优化的再好,传统方式也无法避免的会浪费很多带宽。
譬如:一台电机的回覆延时为 dt, 那么 10 台至少就是 dt×10.

如果是用带仲裁的 CDBUS, 可以通过迸发操作合并延时:连续下发 10 台电机数据,然后等待它们一起回覆(总线自动调度避免冲突)。
甚至一个广播(或组播)命令同时承载 10 台电机数据,达到光速同步(远超手拉手转发的 EtherCAT)。
(虽然传统 485 也可以有广播,但有不能回覆的限制,无法确保命令正确接收。)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:支持仲裁的高速 RS485: https://github.com/dukelec/cdbus_ip

10

主题

167

帖子

5

粉丝