|
can通讯和485通讯的区别(分析对比两者优势)导读CAN总线作为现场总线的后起之秀,却被众多领域认为是最有希望的总线,之所以会是这样,大部分原因是CAN总线和485总线之间存在着非常大的区别,接下来我们就一起来看一下can通讯和485通讯的区别究竟上什么。 CAN总线作为现场总线的后起之秀,却被众多领域认为是最有希望的总线,之所以会是这样,大部分原因是CAN总线和485总线之间存在着非常大的区别,接下来我们就一起来看一下can通讯和485通讯的区别究竟上什么。 1、485总线 485总线是一种半双工、全双工异步通信总线,是为了摆脱232总线的通信速率低和通信距离过短而产生的。485总线仅仅规定了驱动器和接收器的电气特性,却没有规定接插性,传输电绕和应用层通信协议,所以对于当时来说,是一种非常实惠、而目传输的速率相对比较高的总线。 2、CAN总线 CAN总线是一种双绞线,具有高抗干扰性,高速率性,更重要的是能够检测出来任何的错误。CAN总线具有通信能力的实时性、灵活性传输距离远、可靠性成本低等优势,所以被认为是最有希望的现场总线。 3、CAN总线与485总线比较 想了解两种总线的差距,还是通过比较才明显,在单点成本方面,CAN总线高于485总线,但是系统成本却是CAN总线较低,总线的利用率也是CAN总线较高,在对于网络特性方面,CAN总线是多主网络,485总线是单主网络,CAN总线的传输速率也高于485总线,在总线错误方面,CAN总线采用非常可靠的错误处理机制和检错机制,而485总线没有,CAN总线的通信失败率也极低,当任何一个节点发生错误时,CAN总线也不会受影响,但是485总线却会导致整个网络瘫痪。CAN总线的通信距离可以达到10Km,485总线小于1.5Km,CAN总线调试也相对于485总线简单,因为两种总线不同,多以通信协议也不同,CAN总线为标准CAN-bus协议,485总线为标准Modbus总线,最重要的是485总线的后期维护成本非常的高。 对比RS485与CAN,到底用哪个好? RS485与CAN都是嵌入式系统中低成本远距离通信的常用方式,各自都有优缺点.1.RS485 RS485是基于串口的一种主从式,一对多点,半双工(即收/发要分时进行)通信方式,它只定义了一种电信号的连接方式,没有任何通信协议(面试的时候千万别说RS485协议啊!],软件开发上除了增加一个方向控制引脚外,与串口通信基本一致,如果要实现全双工通信,就需要二个RS485,一个发,一个收,仍然使用的是一个串口,这种方式叫RS422全双工通信。 因此,只要会串口通信,就会RS485开发,在多人节点的通信中,每人节点都有一个唯一的地址,同一个时间内只有一个主机,主机首先发起通信,发送的信息里要包括目标节点的地址。所有从节点都会收到这个数据,判断接收的地址是不是与自己的地址一致,如果一致则根据消息的内容,判断要不要返回数据 优点是,主从模式,一可以对同一个目标节点实现多个数据包的通信,不会出现被其它从节点打断的情况:二是数据包的长度没有明确的限制。 缺点是,由于主从模式,主机要对从节点逐人查询,当从节点多或者数据包以较长的情况下,查询周期比较长,实时性不大好,从机只能被动的应答主机的指令,而不能主动发起通信。 2.CAN 相比于RS485,CAN不但提供物理层面电信号的传输规范,还提供了多点同时发起通信时需要解决的一些机制。 CAN连接 冲突机制 多个节点可以通信发起通信,系统会自动选择优先级最高的节点发送数据,其它节点在等待总线空闲时,可以自动再次尝试发送数据,硬件自动完成这个过程; 通信错误检测与统计机制 系统自己检测通信中的错误,并统计错误的发生次数,软件可以根据错误的计数采取相应的措施硬件层面的信息过滤机制 每个节点可以根据需要,设定接收哪些数据包,不匹配的数据包会自动过滤掉,这个过程是不硬件完成而不需要CPU处理,因此效率很高。 从上面的介绍可知,单从信息处理的角度,CAN要强很多,自动化很高。但是缺点也很明显,CAN的数据数据最长只有8个字节,加个4个字节的ID,总共才12个字节。因此,要想发送长数据包,需要自定义更复杂的协议,这个比较复杂,而且每次发送的数据只会更短。 3.对比分析 通时上述可知,RS485在长数据包,通信效率要求不是很高的应用方面有优势,而CAN在短数据包,由于有裁断机制,多点可以同时发起通信,因此通信效率很高,在实时响应要求高的应用场合中很有优势。正因为CAN总线有很多485总线不能警比的地方,所以CAN总线被广泛的应用,甚至使用485总线通信的设备,也通过485转CAN模块连接至CAN总线。 欢迎大家找我讨论更多CAN总线相关问题。 |