CAN总线学习系列之二——CAN总线与RS485的比较

CAN总线学习系列之二——CAN总线与RS485的比较

上 一节介绍了一下CAN总线的基本知识,那么有人会问,现在的总线格式很多,CAN相对于其他的总线有什么特点啊?这个问题问的好,所以我想与其它总线做一 下比较,首先呢,就比较一下大家耳熟能详的485总线,其实485总线只是一种电平标准,并不是什么新的协议,与232差不多,当然这么说不是很恰当,但 是有助于大家理解。       下面开始比较了:
 
CAN(Controller Area Network)属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之目前RS-485基于R线构建的分布式控制系统而言, 基于CAN总线的分布式控制系统在以下方面具有明显的优越性:
1) CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差。
2) CAN总线通过CAN控制器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会出现象在RS-485网络中,当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。
3) CAN具有完善的通信协议,可由CAN控制器芯片及其接口芯片来实现,从而大大降低了系统的开发难度,缩短了开发周期,这些是只仅仅有电气协议的RS-485所无法比拟的。

特性  RS-485  CAN-bus
单点成本 低廉 稍高
系统成本 较低
总线利用率
网络特性 单主网络 多主网络
数据传输率
容错机制 可靠的错误处理和检错机制
通讯失败率 极低
节点错误的影响 导致整个网络的瘫痪 无任何影响
通讯距离 <1.5km 可达10km(5kbps)
网络调试 困难 非常容易
开发难度 标准Modbus协议 标准CAN-bus协议
后期维护成本
     

我们总线学习板上CAN总线和RS485总线都有,您可以在学习中逐渐体会到这些区别,也会体会到CAN总线的优越性。

原文地址:https://www.cnblogs.com/tianqiang/p/8424646.html

时间: 2024-11-15 07:06:32

CAN总线学习系列之二——CAN总线与RS485的比较的相关文章

CAN总线学习系列之三——CAN控制器的选择

CAN总线学习系列之三--CAN控制器的选择 在进行CAN总线开发前,首先要选择好CAN总线控制器.下面就比较一些控制器的特点. 一些主要的CAN总线器件产品 制造商 产品型号 器件功能及特点 Intel 82526825278XC196CA/CB CAN通信控制器,符合CAN2.0ACAN通信控制器,符合CAN2.0B扩展的8XC196+CAN通信控制器,符合CAN2.0A Philips 82C200SJA100082C250TJA1040TJA10548XC5928XCE598P51XA-

CAN总线学习系列之— CAN总线特点介绍

CAN总线学习系列之- CAN总线特点介绍 CAN 总线作为一种工业界的流行总线广泛应于工业自动化.多种控制设备.交通工具.医疗仪器以及建筑.环境控制等各个行业中,它是是一种多主机局域网,所以这样 一种总线的潜力是很巨大的,接下来将写几篇入门的小文章,来介绍一下CAN的学习和开发方法,主要是配合我们的开发板,其实入门还是很容易的,通过这几篇 文章如果你能建立起一个初步的概念,能够自己搭起自己的一个节点(包括硬件和软件),那就说明你学会了CAN的基本开发技术,实际的工业现场CAN的开发 不是那么简

WPF学习系列之二 (依赖项属性)

依赖属性;(dependency property)  它是专门针对WPF创建的,但是WPF库中的依赖项属性都使用普通的.NET属性过程进行了包装.从而可能通过常规的方式使用它们,即使使用他们的代码不理解WPF依赖项属性系统也是如此,使用旧技术包装新技术看起来有些奇怪,但这正是WPF能够改变基础组成部分,而不会扰乱.NET领域中其他部分的原因.三步:一:定义依赖项属性.public static readonly DependencyProperty MarginProperty;二:.在静态构

使用腾讯云 GPU 学习深度学习系列之二:Tensorflow 简明原理【转】

转自:https://www.qcloud.com/community/article/598765?fromSource=gwzcw.117333.117333.117333 这是<使用腾讯云 GPU 学习深度学习>系列文章的第二篇,主要介绍了 Tensorflow 的原理,以及如何用最简单的Python代码进行功能实现.本系列文章主要介绍如何使用 腾讯云GPU服务器 进行深度学习运算,前面主要介绍原理部分,后期则以实践为主. 往期内容: 使用腾讯云 GPU 学习深度学习系列之一:传统机器学

Python学习系列(二)(基础知识)

Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比,避免陷入语法的苦海.我认为初学者学习语法的目标是学会使用即可,关于对概念的深入理解,剖析,没有一定的知识积累是很难做到的. 学习Python,基本语法不是特别难,有了C的基本知识,理解比较容易.本文的主要内容是Python基础语法,学完后,能熟练使用就好.(开发环境依然是Python2.7,简单使用

《一个销售的VMWARE学习系列之二:ESXI的安装步骤》

ESXI是什么?可以理解为VMWARE的操作系统,比如:微软的Windows操作系统啦: 1.首先把光碟插到光盘上启动电脑,在窗口上选择"DELLESXI-5.1-799733(A00) Installer",如下: 2.按回车确定安装ESXI,如下: 3.按F11接受协议,如下: 4.按"Enter",选择安装的硬盘,如下: 5.选择默认的键盘语言,如下: 6.在下面就输入ROOT的密码,并按"Enter"如下: 7.选择"F11&q

Android学习系列(43)--使用事件总线框架EventBus和Otto

事件总线框架 针对事件提供统一订阅,发布以达到组件间通信的解决方案. 原理 观察者模式. EventBus和Otto 先看EventBus的官方定义: Android optimized event bus that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality. 再看Otto官方定义: Otto is an event bus d

Ext入门学习系列(二)弹出窗体

第二章 弹出窗体 上节学习了Ext的环境搭建和最基本的一个操作——弹出对话框,作为一个引子,本节讲述如何弹出一个新窗体,从实例讲解Ext的基本运行原理. 一.Ext的窗体长什么样? 先来看看几个效果,相信随着学习的深入,大家会被Ext的绚丽所征服.下面就是Ext弹出的几个基本窗体: 我们可以发现弹出的2个窗体比我们传统的网页漂亮多了,同时更有价值的是还能随意切换风格.那么类似于这种窗体到底是怎么弹出的呢? 二.Ext弹出窗体思路 在环境搭建正确的情况下,页面中引入也正确,就可以按照以下思路进行编

Python零基础学习系列之二--Python介绍及环境搭建

1-1.Python简介: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public License)协议. Python(英国发音:/?pa?θ?n/ 美国发音:/?pa?θɑ?n/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第