打印

485总线能模拟CAN总线吗?

[复制链接]
3890|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
davali|  楼主 | 2012-11-16 00:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
chunyang| | 2012-11-16 00:13 | 只看该作者
用协议当然可以模拟,485、232之类的没有规定协议只规定了电平规范,而CAN则是从物理层到协议层都有规定的。

使用特权

评论回复
板凳
davali|  楼主 | 2012-11-16 00:21 | 只看该作者
怎样模拟呢?当发现总线发生率冲突时,再挨个进行轮询,那岂不还是很费时间

使用特权

评论回复
地板
chunyang| | 2012-11-16 00:28 | 只看该作者
节点在无回应时延时重新请求就是,请求之前务必先侦听总线的空闲情况。

使用特权

评论回复
5
chunyang| | 2012-11-16 00:28 | 只看该作者
前述叫作突发模式协议,不是轮询。

使用特权

评论回复
6
Tinnal| | 2012-11-16 08:16 | 只看该作者
你的目的是和主机进行通讯,而不是差出那个节点和你冲突。冲突检测协议中以太网算是最成功的例子了。
用485实现对等网络我们已前做过。也就是实现任何两点间的直接通讯。
4楼阳春兄弟的的方法大致可以,但有一点,等待节点回应的超时时间一般都会设得比较长,如果用这种超时来重发,那效率太低了。这个超时,我们当时也有,而且肯定也有,叫业务超时,一到了,就给上层回发送失败了。

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

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

在波特率比较高时,测试效果相当的好。但不适用用波特率低的情况,因为这样发送时间比较长,效果不好。

使用特权

评论回复
7
davali|  楼主 | 2012-11-16 09:36 | 只看该作者
楼上,节点少时可能问题不大,节点多是不就乱套了。我要求是100个节点。好比100个人要和领导说话,如果同时只有几个人要说话到好说,如果人多呢,比如几十个人都同时要和领导讲话,每个人都发现乱了,怎么延时啊,每个人该怎么做?

使用特权

评论回复
8
cool_coder| | 2012-11-16 10:04 | 只看该作者
参考一下以太网的仲裁机制就可以了,6L说的基本上就是。

使用特权

评论回复
9
sxhhhjicbb| | 2012-11-16 22:24 | 只看该作者
把485的前端做得和CAN一样,就可以模拟了,基本思想就是反馈,只是速度会慢一些.

使用特权

评论回复
10
mengjicheng| | 2012-11-18 10:06 | 只看该作者
受到了启发,好的思路,不错,

使用特权

评论回复
11
Tinnal| | 2012-11-20 13:29 | 只看该作者
7# davali
乱套是不会的,因为引入了延时槽,你可以去看看CSMA的**,你想到的问题,别人很早就考虑了。但发的人多了,当然效率这低了。在以太网看来,处理方法就是分隔冲突域(不好意思,网络术语出来了),分隔冲突域的方法就是引入交换机,交换机各端口在正常情况下不转发广播包。

建立在巨人的肩膀上,呵呵。

使用特权

评论回复
12
dukedz| | 2018-4-9 22:36 | 只看该作者
RS485 用的 CDBUS 協議的仲裁部份就是完全模擬 CAN 的按位仲裁,它用專門的控制器實現,所以速率可以做到 10Mbps 以上,控制器核心還是開源的。

使用特权

评论回复
13
华强望月| | 2018-4-12 14:23 | 只看该作者
可以的,这样就要求每一位从机都要有一个固定的地址。主机发出对应地址的从机回复就可以,未收到对应地址的从机处于等待状态

使用特权

评论回复
14
z273286744| | 2018-4-12 14:37 | 只看该作者
不仅“一大一小”,可能还会是不同类型的多个并联。具体自己去看看电容的阻抗频率特性图,再考虑一下不同类型电容并联后总的阻抗频率特性。

使用特权

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

本版积分规则

135

主题

259

帖子

0

粉丝