[技术讨论] 485总线通信问题

[复制链接]
922|33
手机看帖
扫描二维码
随时随地手机跟帖
oufuqiang| | 2022-3-29 15:57 | 显示全部楼层
自己定一个广播包,从机收到后按编号延时排队发回应包可以省一半时间。

使用特权

评论回复
cctv19881023| | 2022-3-29 15:58 | 显示全部楼层
广播啊

使用特权

评论回复

评论

cainiao518 2022-3-29 17:03 回复TA
主机可以广播 
elife| | 2022-3-29 16:55 | 显示全部楼层
本帖最后由 elife 于 2022-3-29 16:58 编辑

如果主机和分机都能IO方式控制485的输出,可以上电由主机发送同步低电平,在分机编号对应的时隙内,回复1表示有分机,不回复表示没有。可以分段,主机一次8个或16个读取,再发同步低电平,再读取。超过总分机数,分机退出该状态,进入正常工作状态。 编号位数不能太多,也可以采用不同时隙表格对应不同编码。

使用特权

评论回复
cainiao518|  楼主 | 2022-3-29 17:02 | 显示全部楼层
oufuqiang 发表于 2022-3-29 15:57
自己定一个广播包,从机收到后按编号延时排队发回应包可以省一半时间。

编号可能到几十万,延时几十万毫秒有点太长,这个好像不行

使用特权

评论回复
xch| | 2022-3-29 18:55 | 显示全部楼层
重新开发软硬件有办法。按照2400bps ,差不多也能做到每秒发现 2400 个设备。

使用特权

评论回复
dog_xin| | 2022-3-30 07:49 | 显示全部楼层
用了广播,有一千个设备同时应答,总线也会有冲突的,谁也发不了,就是堵塞了,我也没有找到更好的办法

使用特权

评论回复

评论

cainiao518 2022-3-30 11:42 回复TA
谢谢,确实不好解决 
lfc315| | 2022-3-30 09:08 | 显示全部楼层
cainiao518 发表于 2022-3-29 17:02
编号可能到几十万,延时几十万毫秒有点太长,这个好像不行

这是编号方法的问题了吧,你实际总线上总不能接了几十万个从机

使用特权

评论回复
gaobq| | 2022-3-30 10:00 | 显示全部楼层
485无解,换CAN吧,也是两根线

使用特权

评论回复
nbsmaps| | 2022-3-30 10:46 | 显示全部楼层
第一什么485,可以接几十万的从机?要是分级的结构,那到主机也没多少时间,是并行的。要是全部是一级的,我还没听说过能有几十万从机的485,网络也得分级了。

》》gaobq: CAN有什么好办法解决,只不过多了冲突控制,时间还是一样的啊

使用特权

评论回复

评论

cainiao518 2022-3-30 11:45 回复TA
没有分级 
cainiao518|  楼主 | 2022-3-30 11:43 | 显示全部楼层
lfc315 发表于 2022-3-30 09:08
这是编号方法的问题了吧,你实际总线上总不能接了几十万个从机

总线不会接几十万个设备,只有最多250个,但编号范围很大

使用特权

评论回复
cainiao518|  楼主 | 2022-3-30 11:44 | 显示全部楼层
gaobq 发表于 2022-3-30 10:00
485无解,换CAN吧,也是两根线

成本限制,硬件也固定了

使用特权

评论回复
cainiao518|  楼主 | 2022-3-30 11:45 | 显示全部楼层
xch 发表于 2022-3-29 18:55
重新开发软硬件有办法。按照2400bps ,差不多也能做到每秒发现 2400 个设备。

...

软硬件如何改进呢

使用特权

评论回复
海洋无限| | 2022-3-30 12:13 | 显示全部楼层
实际设备应该不多吧,485也接不了这么多设备吧

使用特权

评论回复
zyj9490| | 2022-3-30 13:14 | 显示全部楼层
从协议上看,应可以完成,485只规定了硬件层的信号类型。可以加一个DHCP的通信协议,参考以太网BASE2.

使用特权

评论回复
cainiao518|  楼主 | 2022-3-30 14:20 | 显示全部楼层
海洋无限 发表于 2022-3-30 12:13
实际设备应该不多吧,485也接不了这么多设备吧

接不了很多,最多250个,但编号范围很大

使用特权

评论回复
xch| | 2022-3-30 17:26 | 显示全部楼层
cainiao518 发表于 2022-3-30 11:45
软硬件如何改进呢

原理:主站发出查询节点广播帧,帧结束后主站 RS585 转入接收状态,并启动定时器捕获RXD 下降沿信号 。节点收到帧结束后启动同步本地时钟,在 (本地编码值 * 标准间隔)位置应答一个脉冲。主站根据捕获定时器捕获值和捕获数量算出节点编码和数量。   一次可查询的节点数量取决于软硬件定时精度。如果一次查询精度不够可以将节点编号按照顺序分组,分组查询,效率略微下降。

使用特权

评论回复
cainiao518|  楼主 | 2022-3-30 21:09 | 显示全部楼层
zyj9490 发表于 2022-3-30 13:14
从协议上看,应可以完成,485只规定了硬件层的信号类型。可以加一个DHCP的通信协议,参考以太网BASE2. ...

好像有点复杂

使用特权

评论回复
oufuqiang| | 2022-3-30 21:54 | 显示全部楼层
要不你把单线总线的搜索算法移植一下好了,基于二叉树的。美信有一个笔记详细说了搜索过程。onewire search

使用特权

评论回复
dalarang| | 2022-3-31 09:13 | 显示全部楼层
参考CAN仲裁域的思路,不过前提条件是从机ID不能重复,且要自己做接收时序控制,不能依赖USART

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则