来源:CSDN 
原文:https://blog.csdn.net/reille/article/details/6135546

最近一个项目总体方案设计为分布式系统,于是在通讯上纠结于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所无法比拟的。

CAN与RS485比较相关推荐

  1. RS485通信如何设计EMC电路?

    目录 1.RS-485标准 2.电磁兼容性 2.1.静电放电测试 2.2.电快速瞬变测试 2.3.电涌瞬变测试 3.通过/失败标准 4.瞬变保护 5.RS-485瞬变抑制网络 5.1.保护方案1 5. ...

  2. 串口服务器支持多台上位机,RS485多机通信一台上位机两台下位机问题,

    RS485一主机两个下位机,上位机通过发送下位机地址查询下位机两个按钮的状态,仿真时同时在P1口和P2口显示按钮状态 一.原理图 (原文件名:1.jpg) 二.程序 1.上位机程序 #include ...

  3. 串口与COM口 USB口、TTL、RS-232、RS-485区别 释疑

    Point: 1.串口.COM口是指的物理接口形式(硬件),COM口简称是串口.而TTL.RS-232.RS-485是指的电平标准(电信号). 2.接设备的时候,一般只接GND RX TX.不会接Vc ...

  4. db9针232接口波特率标准_RS232和RS485与RS422接口的基础知识详细介绍

    一.RS232基础知识计算机 与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式.由于串行通讯方式具有使用线路少.成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用 ...

  5. 虚拟串口最大传输速率_【干货】详解RS232、RS485、RS422、串口amp;amp;握手

    RS232.RS485和RS422基础知识 一.RS232基础知识计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式.由于串行通讯方式具有使用线路少.成本低,特别是在远程传输 ...

  6. 总线制和多线制示意图_知识||RS485简介及与其他总线网络的区别

    点击关注仪表之家,实际可行的为仪表工/自控/热工解决检修时问题 一.RS485简介 智能仪表是随着80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本被智能仪表所垄断.究其原因就是企业信息化的 ...

  7. MAX487制作RS485总线接口模块

    ■ MAX487简介 MAX487是用于低功耗RS-485总线收发器. ▲ MAX487管脚配置和典型应用电路 存在的问题: 是否需要增加偏置电阻?在MAX487输出低电平的时候两线的差分是多少? 测 ...

  8. 三菱的触摸屏usb驱动_资深工程师一步一步教你PLC与西门子触摸屏的RS485通信

    点击上方"蓝字"关注我们 今天为大家带来的是PLC与西门子触摸屏的RS485通信,RS-485又名TIA-485-A, ANSI/TIA/EIA-485或TIA/EIA-485.R ...

  9. RS485,RS232,USB,Ethernet 传输速度分别是多少

    通讯速度,跟通讯用介质.通讯距离以及通讯环境等多项因素有关,一般情况下:1.RS-485的数据最高传输速率为10M 2.RS-232规定的速率为:50.75.100.150.300600.1200.2 ...

  10. RS232与RS485的功能与区别!

    RS232接口是1970年由美国电子工业协会(EIA)联合贝尔系统.调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.它的全名是"数据终端设备(DTE)和数据通讯设备(DCE) ...

最新文章

  1. 详解JVM内存管理与垃圾回收机制3 - JVM中对象的内存布局
  2. hadoop streaming部分问题总结
  3. mysql 删除重复记录,只保留id字段值最大的记录
  4. Leetcode 回文数字判断
  5. ③pycharm的基本使用
  6. linux下面firefox设置跳转的时候的页面颜色为黑色
  7. ajax会占用服务器端内存吗,javascript - 为什么不允许在jquery datatable服务器端处理ajax成功使用? - 堆栈内存溢出...
  8. c语言数组最大可定义多少位_C语言求数组的最大值三种方法
  9. grid.getSelectionModel的所有操作
  10. 多路径配置udev_多路径multipath配置,udev绑定
  11. MTK平台修改分区大小之后,通过fastboot工具烧录的说明
  12. 改变风格(css)的四种方法
  13. python 传输视频_如何用python实现网络实时视频传输
  14. 在VB中用DAO实现数据库编程Java教程
  15. 技术岗的职业规划_银行信息技术岗职业规划范文
  16. bzoj 1208 宠物收养所 Splay入门
  17. 用c语言实现字母排列组合,C语言字母排列组合的实现.pdf
  18. WPF学习教程链接总汇
  19. converting character set: invalid arguements
  20. 趣谈网络协议-第二模块-底层网络知识详解:4陌生的数据中心2CDN和数据中心

热门文章

  1. omap4430驱动
  2. 电脑怎么压缩图片大小,4个通用方法分享
  3. 【SAP】进项税的配置与传输
  4. AutoJs+mitmproxy App爬虫
  5. 手机有软件测试网络通不通,怎样使用ping命令测试网络通不通
  6. 软件测试转行做产品经理,转型产品经理,测试工程师的出路!
  7. 如何自动注册推特推广号,推特注册的具体步骤
  8. vue : 无法加载文件 C:\Users\xxx\AppData\Roaming\npm\vue.ps1,因为在此系统上禁止运行脚本
  9. 【Keras+计算机视觉+Tensorflow】OCR文字识别实战(附源码和数据集 超详细必看)
  10. 基于单片机的信号发生器设计