发新帖我要提问
123
返回列表
[485通信]

我设计的 485 地址自动分配方案,大家给点意见?

[复制链接]
楼主: dukedz
手机看帖
扫描二维码
随时随地手机跟帖
皈依| | 2018-6-8 08:23 | 显示全部楼层
dukedz 发表于 2018-6-7 14:47
Servo 电机还是单独的产品,可以单独销售,写死不现实。

写死的话,固件管理很麻烦,升级代码也可能改错 ...

哦 了解~原来如此

使用特权

评论回复
Prry| | 2018-6-10 08:53 | 显示全部楼层
用CAN比485好。

使用特权

评论回复
dukedz|  楼主 | 2018-6-10 15:04 | 显示全部楼层

为何呢?请说出你的理由。

使用特权

评论回复
Prry| | 2018-6-10 20:57 | 显示全部楼层
dukedz 发表于 2018-6-10 15:04
为何呢?请说出你的理由。

CAN抗干扰和错误校验能力强、挂的节点数多、可以根据ID分配出多个控制网络和多段控制网络,通信距离和速率都比485要强。当然看场合需求,485成本应该会比can稍微低点。可靠性要求高的,用can吧,如汽车电子。

使用特权

评论回复
dukedz|  楼主 | 2018-6-10 21:49 | 显示全部楼层
Prry 发表于 2018-6-10 20:57
CAN抗干扰和错误校验能力强、挂的节点数多、可以根据ID分配出多个控制网络和多段控制网络,通信距离和速 ...

485 是标准的差分,抗干扰不会差,错误检验上层协议来决定,譬如采用 16 位 CRC 校验也不会差;
485 的接口芯片通常最大可以支持到 256 个节点,不会少;
485 也可以根据地址划分多个控制网络;
通讯距离 485 和 can 没什么差别;
通讯速率 Analog 等公司有支持到 100 Mbps 的 485 接口芯片,CAN 通常只有 1 Mbps;
可靠性 485 一点也不差,譬如煤矿、石油开采、各种工业领域。

使用特权

评论回复
Prry| | 2018-6-13 13:45 | 显示全部楼层
dukedz 发表于 2018-6-10 21:49
485 是标准的差分,抗干扰不会差,错误检验上层协议来决定,譬如采用 16 位 CRC 校验也不会差;
485 的接 ...

CAN定义了数据链路层,硬件上已经实现了仲裁机制、错误校验、节点过滤,释放CPU资源。485只定义了物理层,只是解决了串口远距离通信问题,具体容错机制需在应用层自己实现。
CAN标准帧ID 是11位,扩展帧ID 29位,可以根据ID来设置节点数据优先级或者过滤节点,CAN网络典型节点数最大110个。CAN网络可以多主机,485只能单主机。
对于速率,CAN典型是100K,485 10k。而且低速时,CAN的传输距离远大于485。极限速率是很高,高速时两者距离都差不多,具体使用的出错率只有用过才知道。
汽车上都是用CAN总线,可靠性不言而喻。
CAN网络设计可以说是非常高深的一门学问,楼主经验应该远比我丰富,本人只是建议CAN,楼主可以往CAN方面研究,相信应用场合会大于485。

使用特权

评论回复
dukedz|  楼主 | 2018-6-13 17:43 | 显示全部楼层
Prry 发表于 2018-6-13 13:45
CAN定义了数据链路层,硬件上已经实现了仲裁机制、错误校验、节点过滤,释放CPU资源。485只定义了物理层 ...

RS485 也可以在硬件上实现仲裁机制、错误校验、节点过滤,释放CPU资源,譬如这个用于 RS485 的 CDBUS 协议:
https://bbs.21ic.com/icview-2518586-1-1.html

所以说,RS485 也可以支持多主机,性能比 CAN 好很多!

使用特权

评论回复
betbet| | 2018-6-22 22:49 | 显示全部楼层
mark

使用特权

评论回复
blust5| | 2018-6-23 09:12 | 显示全部楼层
dukedz 发表于 2018-6-13 17:43
RS485 也可以在硬件上实现仲裁机制、错误校验、节点过滤,释放CPU资源,譬如这个用于 RS485 的 CDBUS 协 ...

第一次看到有人说485性能比CAN好很多的。。。

使用特权

评论回复
dukedz|  楼主 | 2018-6-24 12:47 | 显示全部楼层
blust5 发表于 2018-6-23 09:12
第一次看到有人说485性能比CAN好很多的。。。

网上流传很多不负责任的对比图,互相转载,让人们误以为 CAN 好上天。。。

哪怕抛开新出来的增强 RS485 硬件控制器不说,那些对比图也是很不公正的。。。

bitmap.png

使用特权

评论回复
天罡星lmy| | 2018-6-24 13:32 | 显示全部楼层
赞。。。。。

使用特权

评论回复
snikeguo| | 2018-11-21 14:19 | 显示全部楼层
哇,楼主牛X啊,那么请问,汽车为什么不用485而用CAn?
CAn给你实现那么多的机制,你却认为485比CAN牛X?非要造轮子,你的轮子可靠吗

使用特权

评论回复
li880wert| | 2018-11-28 17:24 | 显示全部楼层
本帖最后由 li880wert 于 2018-11-28 17:42 编辑

冲线冲突怎么检测的。看了下你的程序和原理图,没看到哪里有。
1.你发命令给设备一个时间TIMS;
2.设备根据这个TIMS 随机生成一个延时发送TIM2;
3.这个TIM2 有可能会在不同设备间产生一样的TIM2吧。

使用特权

评论回复
dukedz|  楼主 | 2018-12-11 20:49 | 显示全部楼层
li880wert 发表于 2018-11-28 17:24
冲线冲突怎么检测的。看了下你的程序和原理图,没看到哪里有。
1.你发命令给设备一个时间TIMS;
2.设备根据 ...

如果两个相同地址的节点生成的随机时间也相同,那么会发生冲突,但是主机会重复扫描 3 次相同结果才结束扫描,所以 3 次生成的随机时间几乎不可能全部相同。

使用特权

评论回复
TT1000| | 2021-5-5 09:06 | 显示全部楼层
谢谢楼主分享的好资料

使用特权

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

本版积分规则