打印
[Atmel]

关于rs485冲突检测

[复制链接]
3745|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
宸哥@叔|  楼主 | 2017-5-12 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ningling_21| | 2017-5-12 14:09 | 只看该作者
靠协议,按照协议通信不会冲突

使用特权

评论回复
板凳
宇容创行| | 2017-5-12 14:58 | 只看该作者
软件上控制

使用特权

评论回复
地板
初级菜鸟1| | 2017-5-12 15:42 | 只看该作者
大点赞

使用特权

评论回复
5
宸哥@叔|  楼主 | 2017-5-12 15:54 | 只看该作者
@ningling_21  使用的是什么协议? 是自定义的还是有对应的协议?

使用特权

评论回复
6
ayb_ice| | 2017-5-12 17:11 | 只看该作者
有双向的485

使用特权

评论回复
7
ningling_21| | 2017-5-12 17:13 | 只看该作者
宸哥@叔 发表于 2017-5-12 15:54
@ningling_21  使用的是什么协议? 是自定义的还是有对应的协议?

典型的通信协议如MODBUS等

使用特权

评论回复
8
videocloud| | 2017-5-12 17:26 | 只看该作者
冲突规避检测。
如果要求高就用二个485芯片,一个负责收,一个负责发。  
消息发送的时候, 负责接收的芯片判断是否成功消息是否成功发送,如果没有就是有冲突。延时再发。

如果要求不高,就用消息握手的方式判断。 A给B发送消息后,B必须要有回复,没有指定时间没有收到,A就重复发送。

使用特权

评论回复
9
伏尔加的鱼| | 2017-5-13 08:29 | 只看该作者
用RS422,或者自定义通信协议,标准协议也好

使用特权

评论回复
10
mmuuss586| | 2017-5-13 08:31 | 只看该作者
一般主从模式就没什么问题;

使用特权

评论回复
11
lin_strong| | 2017-7-3 16:50 | 只看该作者

软件上如何控制才能实现冲突检测? 请教下有没有处理的流程图或者demo?

使用特权

评论回复
12
lin_strong| | 2017-7-3 16:52 | 只看该作者
ningling_21 发表于 2017-5-12 14:09
靠协议,按照协议通信不会冲突

目前想要用这种多主机的冲突检测方式实现?请教下有没有相关的流程或者demo么!

使用特权

评论回复
13
ailingg| | 2017-7-9 22:24 | 只看该作者

楼主可以搜一搜,

* CSMA/CD(carrier sensemultiple access with collision detection)带冲突检测的载波侦听多路访问协议:
* 1.系统中设置定时器作为延时计时器,他有两组延时参数。一组用于侦听网络是否空闲,一组用于数据碰撞冲突延时等待。
* 2.每次接收中断时,设置网络忙标志,并给定时器重装延时参数,该参数的值应保证只要有节点发送数据,定时器就不会溢出。
*   若所有节点停止发送数据,定时器将溢出进入中断,并停止计时及清除网络忙标志,表示网络空闲。
* 3.发送任务函数若有发送任务,将在网络空闲时启动发送,发送数据时自身接收中断将进行数据碰撞冲突判断。
*   发送任务函数每发送1Byte数据时,将该数据存入一个临时变量中,发送这一数据的同时,自身接收程序也会接收到这一数据。
*   将接收到的数据与临时变量中的数据进行比较,若相等,表示数据发送成功,否则,表示发生冲突。
* 4.若检测到数据碰撞冲突,将立即停止发送,并给定时器设置一个随机延时值,延时结束若网络空闲将重新启动发送。

使用特权

评论回复
14
ailingg| | 2017-7-9 22:33 | 只看该作者
参考这2篇**

在RS485总线上用冲突检测方式实现对等网数据传输.pdf

189.82 KB

基于RS485总线的单片机对等网络的设计与实现.pdf

219.78 KB

使用特权

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

本版积分规则

2

主题

3

帖子

1

粉丝