打印
[技术讨论]

485总线通信问题

[复制链接]
2164|35
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cainiao518|  楼主 | 2022-3-29 15:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
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个读取,再发同步低电平,再读取。超过总分机数,分机退出该状态,进入正常工作状态。 编号位数不能太多,也可以采用不同时隙表格对应不同编码。

使用特权

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

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

使用特权

评论回复
6
xch| | 2022-3-29 18:55 | 只看该作者
重新开发软硬件有办法。按照2400bps ,差不多也能做到每秒发现 2400 个设备。

使用特权

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

使用特权

评论回复
评论
cainiao518 2022-3-30 11:42 回复TA
谢谢,确实不好解决 
8
lfc315| | 2022-3-30 09:08 | 只看该作者
cainiao518 发表于 2022-3-29 17:02
编号可能到几十万,延时几十万毫秒有点太长,这个好像不行

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

使用特权

评论回复
9
gaobq| | 2022-3-30 10:00 | 只看该作者
485无解,换CAN吧,也是两根线

使用特权

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

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

使用特权

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

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

使用特权

评论回复
12
cainiao518|  楼主 | 2022-3-30 11:44 | 只看该作者
gaobq 发表于 2022-3-30 10:00
485无解,换CAN吧,也是两根线

成本限制,硬件也固定了

使用特权

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

...

软硬件如何改进呢

使用特权

评论回复
14
海洋无限| | 2022-3-30 12:13 | 只看该作者
实际设备应该不多吧,485也接不了这么多设备吧

使用特权

评论回复
评论
cainiao518 2023-3-25 11:42 回复TA
确实接不了这么多,只是编号范围很大 
15
zyj9490| | 2022-3-30 13:14 | 只看该作者
从协议上看,应可以完成,485只规定了硬件层的信号类型。可以加一个DHCP的通信协议,参考以太网BASE2.

使用特权

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

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

使用特权

评论回复
17
xch| | 2022-3-30 17:26 | 只看该作者
cainiao518 发表于 2022-3-30 11:45
软硬件如何改进呢

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

使用特权

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

好像有点复杂

使用特权

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

使用特权

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

使用特权

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

本版积分规则

132

主题

1352

帖子

4

粉丝