最近一个项目总体方案设计为分布式系统,于是在通讯上纠结于CAN总线还是RS485。因此在网上搜索一些了一些关于RS485和CAN总线的资料,除进一步认识RS485通讯特点外,认识了CAN总线的特点及其与RS485的比较,总结如下:

注:以下是从网上搜索总结的。

CAN总线特点:

1、国际标准的工业级现场总线,传输可靠,实时性高;  
2、传输距离远(最远10Km),传输速率快(最高1MHz bps); 
3、单条总线最多可接110个节点,并可方便的扩充节点数;  
4、多主结构,各节点的地位平等,方便区域组网,总线利用率高;  
5、实时性高,非破坏总线仲裁技术,优先级高的节点无延时;  
6、出错的CAN节点会自动关闭并切断和总线的联系,不影响总线的通讯;  
7、报文为短帧结构并有硬件CRC校验,受干扰概率小,数据出错率极低;  
8、自动检测报文发送成功与否,可硬件自动重发,传输可靠性很高;  
9、硬件报文滤波功能,只接收必要信息,减轻cpu负担,简化软件编制;  
10、通讯介质可用普通的双绞线,同轴电缆或光纤等;  
11、CAN总线系统结构简单,有极高的性价比。

RS485接口标准特点:

(1) RS-485的电气特性:逻辑"1"以两线间的电压差为+(2-6)V表示;逻辑"0"以两线间的电压差为-(2-6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL 电路连接。
(2) RS-485的数据最高传输速率为10Mbps
(3) RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。
(4) RS-485接口的最大传输距离标准值为4000英尺,实际上可达 3000米,另外RS-232-C接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。但RS-485总线上任何时候只能有一发送器发送。
(5) 因RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。 
(6) 因为RS485接口组成的半双工网络,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。

CAN总线与RS485的比较:

1,速度与距离:CAN与RS485以1Mbit/S的高速率传输的距离都不超过100M,可谓高速上的距离差不多。但是在低速时CAN以5Kbit/S时,距离可达10KM,而485再低的速率也只能到1219米左右(都无中继)。可见CAN在长距离的传输上拥有绝对的优势。

2,总线利用率:RS485是单主从结构,就是一个总线上只能有一台主机,通讯都由它发起的,它没有下命令,下面的节点不能发送,而且要发完即答,受到答复后,主机才向下一个节点询问,这样是为了防止多个节点向总线发送数据,而造成数据错乱。而CAN-bus是多主从结构,每个节点都有CAN控制器,多个节点发送时,以发送的ID号自动进行仲裁,这样就可以实现总线数据不错乱,而且一个节点发完,另一个节点可以探测到总线空闲,而马上发送,这样省去了主机的询问,提高了总线利用率,增强了快速性。所以在汽车等实性要求高的系统,都是用CAN总线,或者其他类似的总线。

3,错误检测机制,RS485只规定了物理层,而没有数据链路层,所以它对错误是无法识别的,除非一些短路等物理错误。这样容易造成一个节点破坏了,拼命向总线发数据(一直发1),这样造成整个总线瘫痪。所以RS485一旦坏一个节点,这个总线网络都挂。而CAN总线有CAN控制器,可以对总线任何错误进行检测,如果自身错误超过128个,就自动闭锁。保护总线。如果检测到其他节点错误或者自身错误,都会向总线发送错误帧,来提示其他节点,这个数据是错误的。大家小心。这样CAN总线一旦有一个节点CPU程序跑飞了,它的控制器自动闭锁。保护总线。所以在安全性要求高的网路,CAN是很强的。

4,价格与培训成本:CAN器件的价格大约是485的2倍这样,485的通讯从软件上是很方便的,只要懂串行通讯,就可以编程,而CAN需要底层工程师了解CAN复杂的层,编写上位机软件也要了解CAN的协议。可谓培训成本较高。

5,CAN总线通过CAN控制器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会出现象在RS-485网络中,当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。

6,CAN具有完善的通信协议,可由CAN控制器芯片及其接口芯片来实现,从而大大降低了系统的开发难度,缩短了开发周期,这些是只仅仅有电气协议的RS-485所无法比拟的。

特性
RS-485
CAN-bus
单点成本
低廉
稍高
系统成本

较低
总线利用率


网络特性
单主网络
多主网络
数据传输率


容错机制

可靠的错误处理和检错机制
通讯失败率

极低
节点错误的影响
导致整个网络的瘫痪
无任何影响
通讯距离
<1.5km
可达10km(5kbps)
网络调试
困难
非常容易
开发难度
标准Modbus协议
标准CAN-bus协议
后期维护成本

--------------------- 
作者:reille 
来源:CSDN 
原文:https://blog.csdn.net/reille/article/details/6135546 
版权声明:本文为博主原创文章,转载请附上博文链接!

CAN总线与RS485的区别相关推荐

  1. 硬件:RS232、RS422和RS485的区别

    RS232.RS422和RS485的区别 RS-232是最常见的串口,是大部分兼容Windows的桌面计算机的一个标准组件.如今通过USB到RS-232转换器使用RS-232更为常见.RS-232只允 ...

  2. 杂学——硬件:MIPI,压/速/频信号、并行转串行,SDI,PPM,单片机及开发板,交流直流,电容电阻,总线,RS485

    MIPI(移动产业处理器接口): MIPI DSI协议介绍 摄像头的MIPI接口.DVP接口和CSI接口(百度知道) MIPI接口资料汇总(精) 串行接口.并行接口.低压差分信号.差分布线: Alti ...

  3. RS422总线、RS485和RS422对比

    RS422总线.RS485和RS422对比 RS-232.RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件.电缆或协议,在此基础上用户可以建立自己的高层通信协议.例如:视频服务 ...

  4. 深入理解UART、IIC、SPI与RS232以及RS485的区别

    个人理解: uart.IIC.SPI都是一种具有协议特征的收发器.接口.总线,它规定数据按照什么的时序传输,rs232,.rs485是传输时候的电平标准,规定了按照上述协议传输的高电平与低电平的电压都 ...

  5. UART、RS-232、RS-422、RS-485的区别

    v3学院带你一次性认清UART.RS-232.RS-422.RS-485的区别 https://www.cnblogs.com/laokai/p/6488910.html 通讯问题,和交通问题一样,也 ...

  6. TTL、 RS-232,RS-485的区别

    TTL. RS-232,RS-485的区别 参考:[gt+]TTL, RS-232,RS-485的区别 前言:串口.UART口.COM口.USB口是指的物理接口形式(硬件).而TTL.RS-232.R ...

  7. CAN总线,RS485总线终端电阻接线规则

    CAN总线,RS485总线终端电阻接线规则 刚刚在Linux群里有人提到,就找了一下相关知识 自己攒了一句话: 对于通信速度为 125kbps-1Mbps的高速 CAN 通信,在一个网络(由一组电缆直 ...

  8. 连接CPU和计算机的总线,什么是计算机总线 总线和接口的区别

    什么是计算机总线 这个和计算机主机的构造有关系,首先,我们都知道计算机的cpu由两个部分组成,一个是控制单元,另一个是算术逻辑单元,cpu的控制单元负责计算机各个组件的协调与沟通,什么是沟通?就是数据 ...

  9. CAN总线与RS485的比较

    最近一个项目总体方案设计为分布式系统,于是在通讯上纠结于CAN总线还是RS485.因此在网上搜索一些了一些关于RS485和CAN总线的资料,除进一步认识RS485通讯特点外,认识了CAN总线的特点及其 ...

最新文章

  1. 自定义windows下自动清除文件夹或者文件的只读属性的脚本
  2. Java接口修饰符详解
  3. django框架 day08
  4. 选择多级分类_商用车齿轮油的选择与运用!!
  5. 64位整数乘法(类快速幂)
  6. C#网络编程----(三)委托和多线程
  7. Matlab 2018a的安装步骤
  8. MySQL 经典练习 50 题(完美解答版)
  9. php mysql常见面试题_PHP常见面试题总结
  10. 背包问题之0-1背包算法详解
  11. 某三位数除以10余9、除以9余8、除以8余7
  12. 鲁大师升级“Pro”,2B领域谋篇布局
  13. openwrt nas_树莓派安装 OpenWrt 打造超级路由器
  14. 22个优秀的橙色网页设计作品欣赏
  15. wex5 教程之 图文讲解 Cloudx5一键部署
  16. r语言c函数怎么用,R语言学习笔记——C#中如何使用R语言setwd()函数
  17. VMware14.0无os x选项问题解决
  18. Spring Cloud 入门教程(二): 配置管理
  19. 诗歌二 未知来生相见否,陌上逢却在少年。
  20. partition by mysql_详解Oracle查询中OVER (PARTITION BY ..)用法

热门文章

  1. 三维工艺设计管理系统助力中国制造业
  2. 摩尔定律会失效吗?戈登·摩尔去世,享年94岁
  3. 你认为中小企业到底值得引入企业erp系统吗?
  4. PYNQ中的纯PL端开发
  5. MMORPG大型游戏设计与开发(服务器 游戏场景 地图和区域)
  6. (教程)3DS MAX游戏场景建模基础教程
  7. Unity 关卡跳转——开始界面切换到游戏场景的实现
  8. python遍历替换字典的key_Python遍历字典去key和value需要注意的点→enumerate和items()...
  9. 微软EXCEL 右键新建 显示无效
  10. python 基本知识学习(一)