rs485软件_对比RS485与CAN,到底用哪个好?

RS485与CAN都是嵌入式系统中低成本远距离通信的常用方式,各自都有优缺点。

1.RS485

RS485是基于串口的一种主从式、一对多点、半双工(即收/发要分时进行)通信方式,它只定义了一种电信号的连接方式,没有任何通信协议(面试的时候千万别说RS485协议啊!),软件开发上除了增加一个方向控制引脚外,与串口通信基本一致。如果要实现全双工通信,就需要二个RS485,一个发,一个收,仍然使用的是一个串口,这种方式叫RS422全双工通信。

b72372bbd1bec6eaebfbf472cde82ee0.png

RS485

因此,只要会串口通信,就会RS485开发。在多个节点的通信中,每个节点都有一个唯一的地址,同一个时间内只有一个主机,主机首先发起通信,发送的信息里要包括目标节点的地址。所有从节点都会收到这个数据,判断接收的地址是不是与自己的地址一致,如果一致,则根据消息的内容,判断要不要返回数据。

优点是,主从模式,一可以对同一个目标节点实现多个数据包的通信,不会出现被其它从节点打断的情况;二是数据包的长度没有明确的限制。

缺点是,由于主从模式,主机要对从节点逐个查询,当从节点多或者数据包比较长的情况下,查询周期比较长,实时性不太好。从机只能被动的应答主机的指令,而不能主动发起通信。

2.CAN

相比于RS485,CAN不但提供物理层面电信号的传输规范,还提供了多点同时发起通信时需要解决的一些机制。

f28ce358c2d6708445498754ff5d6dc7.png

CAN连接

冲突机制 多个节点可以通信发起通信,系统会自动选择优先级最高的节点发送数据,其它节点在等待总线空闲时,可以自动再次尝试发送数据,硬件自动完成这个过程;

通信错误检测与统计机制 系统自己检测通信中的错误,并统计错误的发生次数,软件可以根据错误的计数采取相应的措施;

硬件层面的信息过滤机制 每个节点可以根据需要,设定接收哪些数据包,不匹配的数据包会自动过滤掉,这个过程是不硬件完成而不需要CPU处理,因此效率很高。

从上面的介绍可知,单从信息处理的角度,CAN要强很多,自动化很高。但是缺点也很明显,CAN的数据数据最长只有8个字节,加个4个字节的ID,总共才12个字节。因此,要想发送长数据包,需要自定义更复杂的协议,这个比较复杂,而且每次发送的数据只会更短。

7bb1215a8455d7651d3724f551250195.png

CAN最早应用在汽车上

3.对比分析

通过上述可知,RS485在长数据包,通信效率要求不是很高的应用方面有优势;而CAN在短数据包,由于有裁断机制,多点可以同时发起通信,因此通信效率很高,在实时响应要求高的应用场合中很有优势。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值