打印
[MM32软件]

RS485怎么防止并发的情况?

[复制链接]
774|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星闪动力|  楼主 | 2025-5-30 17:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
从机要上传数据,怎么防止多个从机数据碰撞?

使用特权

评论回复
沙发
ufbycd| | 2025-6-1 09:35 | 只看该作者
参考10Mbps半双工以太网的做法,即CSMA/CD机制:发前先听,空闲发送,边发边收,冲突停止,随机延时再重发。

使用特权

评论回复
板凳
caigang13| | 2025-6-2 10:26 | 只看该作者
轮训召唤避免同时发

使用特权

评论回复
地板
dalarang| | 2025-6-2 11:32 | 只看该作者
常规的做法是采用主从轮询的方式,这个方式弊端是从机比较多的情况下轮询周期过长。
2楼的方法也可行,通讯略微复杂一点,虽然无法完全避免冲突但一般情况下够用了。
根据自己的应用特点来决定。

使用特权

评论回复
5
chenjun89| | 2025-6-4 08:21 | 只看该作者
MODBUS都是主从轮训收发数据,不会出现冲突的。

使用特权

评论回复
6
g0d5xs| | 2025-6-4 13:05 | 只看该作者
指定一个主节点(如上位机)和多个从节点(如传感器、执行器)。主节点负责发起通信,从节点仅在收到主节点的请求后才能发送数据。

使用特权

评论回复
7
liu96jp| | 2025-6-4 14:15 | 只看该作者
定义一个令牌(Token),只有持有令牌的节点才能发送数据。令牌在节点之间依次传递,每个节点在收到令牌后,可以在规定的时间内发送数据,然后立即将令牌传递给下一个节点。

使用特权

评论回复
8
cen9ce| | 2025-6-4 15:20 | 只看该作者
需要实现令牌的传递和回收机制,增加了协议的复杂性。

使用特权

评论回复
9
lamanius| | 2025-6-4 16:29 | 只看该作者
节点在发送数据前先监听总线是否空闲。如果总线空闲,节点开始发送数据,并在发送过程中持续监听总线,检测是否有冲突发生。

使用特权

评论回复
10
b5z1giu| | 2025-6-4 17:37 | 只看该作者
如果检测到冲突,节点立即停止发送,并等待一个随机时间后重新尝试。适用于节点数量较多、通信量较大的网络。

使用特权

评论回复
11
suw12q| | 2025-6-4 18:22 | 只看该作者
RS485是半双工通信,无法同时收发,因此标准的CSMA/CD在RS485中直接应用存在困难,需结合其他机制(如超时重发)实现。

使用特权

评论回复
12
w2nme1ai7| | 2025-6-4 20:15 | 只看该作者
节点在发送数据后,等待接收方返回确认帧(ACK)。如果在规定时间内未收到ACK,节点认为发送失败,并等待一个随机时间后重新发送。

使用特权

评论回复
13
t1ngus4| | 2025-6-5 09:16 | 只看该作者
随机时间的设置需合理,避免多个节点同时重发导致再次冲突。

使用特权

评论回复
14
q1ngt12| | 2025-6-5 11:21 | 只看该作者
使用RTS/CTS等硬件信号控制数据发送,确保总线空闲时才发送数据。为每个节点分配唯一的地址,通过地址识别避免冲突。

使用特权

评论回复
15
tax2r6c| | 2025-6-5 13:52 | 只看该作者
采用具备自动收发控制、冲突检测与处理功能的专用通信控制器

使用特权

评论回复
16
latera| | 2025-6-7 22:34 | 只看该作者
令牌的传递和回收机制 学到了

使用特权

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

本版积分规则

9

主题

457

帖子

0

粉丝