0
问答首页 最新问题 热门问题 等待回答标签广场
我要提问

485

485总线能模拟CAN总线吗?

如题,大家知道485总线是主从式结构,靠主机轮询每个节点通讯。CAN总线则因为有防冲突仲裁机制,每个节点都可以主动和主机通讯。那么485能不能模拟CAN也搞个总线仲裁呢?

提问者:60user100 地点:- 浏览次数:6728 提问时间:10-14 17:20
我有更好的答案
提 交
7条回答
werywer 03-07 22:50
用协议当然可以模拟,485、232之类的没有规定协议只规定了电平规范,而CAN则是从物理层到协议层都有规定的。
稳特电子 03-16 04:09
节点在无回应时延时重新请求就是,请求之前务必先侦听总线的空闲情况。
aacool 03-16 23:50
前述叫作突发模式协议,不是轮询。
htxk 03-13 04:33
你的目的是和主机进行通讯,而不是差出那个节点和你冲突。冲突检测协议中以太网算是最成功的例子了。
用485实现对等网络我们已前做过。也就是实现任何两点间的直接通讯。
4楼阳春兄弟的的方法大致可以,但有一点,等待节点回应的超时时间一般都会设得比较长,如果用这种超时来重发,那效率太低了。这个超时,我们当时也有,而且肯定也有,叫业务超时,一到了,就给上层回发送失败了。

我说说我们以产的方法吧,我们当前实现的是载波侦听多点接入/冲突检测(CSMA/CD):
节点空闲时,其实一直在帧听信道(485线)上有没有数据。(有些时候为了节能可以不做)
一个节点要发送数据时,判断信道是否空闲了一定的时间(如果之前没做帧听,那要现在做,如果之前做了,现在就可以直接判断,以减少判断时间)。如果是,则可以转入发送流程。
在发送每一字节时,同时也把相应的字节收回来,判断是否和发的一样(冲突检测),一但发现冲突。就会随机退避一定的延时槽(引入随机数和延时槽,以减少冲突风暴),现后再次进行帧听,发送。

说得比较粗,其实现是有几个参数比较重要的, 帧长、侦听时间、退避算法等。退避算法我们当时就是采用以太网的CSMA/CD。

在波特率比较高时,测试效果相当的好。但不适用用波特率低的情况,因为这样发送时间比较长,效果不好。
Furlong 03-09 05:56
楼上,节点少时可能问题不大,节点多是不就乱套了。我要求是100个节点。好比100个人要和领导说话,如果同时只有几个人要说话到好说,如果人多呢,比如几十个人都同时要和领导讲话,每个人都发现乱了,怎么延时啊,每个人该怎么做?
stwjt 03-14 11:08
参考一下以太网的仲裁机制就可以了,6L说的基本上就是。
minwayson 03-08 14:24
把485的前端做得和CAN一样,就可以模拟了,基本思想就是反馈,只是速度会慢一些.
撰写答案
提 交
1 / 3
1 / 3
相关485
最近被485电了很多次了,求大神分析下为什么
隔离485通信接口芯片ADM2483供电问题
求助 关于单片机与485总线 命令帧的发送和响应帧的接收
485通讯如何寻址
RS485总线 感应电流