[工业互联-2]:工业有线互联总线之CAN总线

Posted 文火冰糖的硅基工坊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[工业互联-2]:工业有线互联总线之CAN总线相关的知识,希望对你有一定的参考价值。

目录

第1章 CAN总线概述

1.1 概述

1.2 CAN总线的优点

1.3 应用广泛

1.4 CAN总线的发展历史

 1.5 传输距离与传输速度的关系

第2章 CAN总线的网络拓扑

2.1 总线拓扑

2.2 星形拓扑

2.3 树形拓扑

2.4 环形

第3章 CAN总线设备的硬件连接方式

3.1 单个网络节点的硬件连接框图

3.2 多个网络节点的连接方式

第4章 CAN总线的网络协议栈

4.1 ISO七层协议与CAN总线协议栈

4.2 CAN协议栈

4.3 CAN总线通信模型

4.4 CAN总线物理电气特性


第1章 CAN总线概述

1.1 概述

CAN 即控制器局域网络,属于工业现场总线的范畴。

CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议

CAN协议主要用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束

 在汽车产业中,出于对安全性、舒适性、方便性、低功耗、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,在欧洲已是汽车网络的标准协议。

1.2 CAN总线的优点

CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:

除上面所述,CAN还具备如下的优势:

(1)网络各节点之间的数据通信实时性强

首先,CAN控制器工作于多种方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;

(2)开发周期短

CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会再出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现像在网络中,因个别节点出现问题,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是仅有电气协议的RS-485所无法比拟的。

(3)已形成国际标准的现场总线

另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。这些也是CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。

1.3 应用广泛

该协议的健壮性使其同样适用于自动化和工业环境中。

与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。由于其良好的性能及独特的设计,CAN总线越来越受到人们的重视。它在汽车领域上的应用是最广泛的,世界上一些著名的汽车制造厂商都采用了CAN总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。

 同时,由于CAN总线本身的特点,其应用范围已不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、数控机床、医疗器械及传感器等领域发展。

CAN已经形成国际标准,并已被公认为几种最有前途的现场总线之一。

CAN 的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。

1.4 CAN总线的发展历史

CAN总线协议距今已经发展40多年。如今,CAN总线已成为汽车(汽车、卡车、公共汽车、拖拉机等)、轮船、飞机、电动汽车电池、机械等的标准配置。

  • CAN之前的版本:汽车ECU采用的是复杂的点对点布线
  • 1986年:BOSCH(博世)开发了CAN协议作为解决方案
  • 1991年:BOSCH(博世)发布了CAN 2.0(CAN 2.0A:11位,2.0B:29位)
  • 1993年:CAN被采用为国际标准(ISO 11898)
  • 2003年:ISO 11898成为标准系列
  • 2012年:博世发布了CAN FD 1.0
  • 2015年:CAN FD协议标准化(ISO 11898-1)
  • 2016年:CAN物理层,数据速率高达5 Mbit/s,已通过ISO 11898-2标准化

 1.5 传输距离与传输速度的关系

CAN总线是一种串行数据通信总线,其通信速率最高可达1 Mb/s。

CAN系统内两个任意节点之间的最大传输距离与其位速率有关。

第2章 CAN总线的网络拓扑

2.1 总线拓扑

CAN总线是一种广播类型的总线,可支持线形拓扑、星形拓扑、树形拓扑和环形拓扑等。

CAN网络中至少需要两个节点设备才可进行通信,无法仅向某一个特定节点设备发送消息,发送数据时所有节点都不可避免地接收所有流量。但是,CAN总线硬件支持本地过滤,因此每个节点可以设置对有效的消息做出反应。

线形拓扑是在一条主干总线分出各个节点支线,其优点在于布线施工简单,接线方便,阻抗匹配规则固定,缺点是拓扑不够灵活,在一定程度上影响通讯距离,如下图所示:

2.2 星形拓扑

星形拓扑是每个节点通过中央设备连到一起,其优点是容易扩展。

缺点是一旦中央设备出故障会导致总线集体故障,而且分支线长不同,阻抗匹配复杂,可能需要通过一些中继器或集线器进行扩展,如下图所示:

2.3 树形拓扑

树形拓扑是节点分支比较多,且分支长度不同,其优点是布线方便

缺点是网络拓扑复杂,阻抗匹配困难,通讯中极易出现问题,必须加一些集线器设备,如下图所示: 

2.4 环形

环形拓扑是将CAN总线头尾相连,形成环状

其优点是线缆任意位置断开,总线都不会出现问题

缺点是信号反射严重,无法用于高波特率和远距离传输,如下图所示:

第3章 CAN总线设备的硬件连接方式

3.1 单个网络节点的硬件连接框图

CAN节点通常由如下几部分组成:

  • CAN总线:CAN总线通过差分信号进行数据传输
  • CAN收发器:CAN收发器将TTL电平信号转换为差分信号,或差分信号转换为TTL电平信号。
  • CAN控制器:CAN控制器将TTL电平信号接收并传输给MCU
  • MCU:可以采用STM32、华大、瑞萨等单片机,其内部就集成了CAN控制器外设,通过配置就可实现对CAN报文(MAC层)数据的读取和发送。

3.2 多个网络节点的连接方式

虽然CAN总线可以支持多种网络拓扑,但在实际应用中比较推荐使用总线形拓扑,且在ios 11898-2中高速CAN物理层规范推荐也是总线形拓扑。

在ISO 11898-2和ISO 11898-3中分别规定了两种CAN总线结构的硬件连接方式(在BOSCH CAN2.0规范中,并没有关于总线拓扑结构的说明)。

在发送数据时,CAN控制器把要发送的二进制编码通过CAN_Tx线发送到CAN收发器,然后由收发器把这个普通的逻辑电平信号转化成差分信号,通过差分线CAN_High和CAN_Low输出到CAN总线网络。

接收数据过程,相反。

采用差分信号,可以取得更好的电磁兼容效果。因此,CAN总线物理传输媒介只需要两根线

(1)高速互联

ISO 11898-2中定义了通信速率为125Kbps~1Mbps的高速闭环CAN通信标准,当通信总线长度≤40米,最大通信速率可达到1Mbps,高速闭环CAN(高速CAN)通信如下图所示:

(2)低速互联

ISO 11898-3中定义了通信速率为10~125Kbps的低速开环CAN通信标准,当传输速率为40Kbps时,总线距离可达到1000米。低速开环CAN(低速容错CAN)通信如下图所示:

第4章 CAN总线的网络协议栈

4.1 ISO七层协议与CAN总线协议栈

4.2 CAN协议栈

CAN总线标准之规定了物理层和数据链路层,至于应用层需要用户自行定义,不同的应用领域,标准不同,有些领域的应用层是没有国际标准的。

(1)物理层和数据链路层:ISO11898; =》CAN总线标准

  • CAN总线以太网总线类似,工作在物理层MAC层
  • 不同的CAN标准仅物理层不同,MAC层是相同的。

(2)应用层:不同的应用领域使用不同的应用层标准。 =》 非CAN总线标准,属于工业应用标准。

其典型的应用协议有:

  • SAE J1939/ISO11783
  • CANOpen
  • CANaerospace
  • DeviceNet
  • NMEA 2000等。

4.3 CAN总线通信模型

4.4 CAN收发器

 CAN总线分高速CAN和低速CAN,收发器也分为高速CAN收发器(1Mbps)和低速CAN收发器(125Kbps)。

低速CAN也叫Fault Tolerance CAN,指的是即使总线上一根线失效,总线依然可以通信。如同串口中的MAX3232用作电平转换,CAN收发器的作用则是把TTL电平逻辑信号转换为差分信号
 

4.5 CAN总线物理电气特性

在CAN总线上,利用CAN_HCAN_L两根线上的电位差来表示CAN信号。这与以太网采用差分信号是一样的,不同的是以太网是单向的,CAN总线是双向的。

CAN 总线上的电位差分为显性电平(Dominant Voltage)和隐性电平(Recessive Voltage),其中显性电平为逻辑 0,隐性电平为逻辑 1。

(1)高速CAN总线

高速CAN总线(ISO 11898-2,通信速率为125Kbps~1Mbps)在传输显性(0)信号时,会将 CAN_H端抬向5V高电平,将CAN_L拉向0V低电平。当传输隐性(1)信号时,并不会驱动 CAN_H 或者 CAN_L 端。 显性信号 CAN_H 和 CAN_L 两端差分标称电压为 2V。 终端电阻在没有驱动时,将差分标称电压降回 0V。显性信号(0)的共模电压需要在 1.5V 到 3.5V 之间。隐性信号(1)的共模电压需要在+/-12V。

 (2)低速CAN总线

低速/容错CAN(ISO 11898-3,通信速率为10~125Kbps)在传输显性信号(0)时,驱动CANH端抬向5V,将CANL端降向0V。在传输隐性信号(1)时并不驱动CAN 总线的任何一端。在电源电压VCC为5V时,显性信号差分电压需要大于2.3V,隐性信号的差分电压需要小于0.6V。CAN总线两端未被驱动时,终端电阻使CAN L端回归到RTH电压(当电源电压VCC为5V时,RTH电压至少为Vcc-0.3V=4.7V),同时使CAN H端回归至RTL电压(RTL电压最大为0.3V)。两根线需要能够承受-27V至40V的电压而不被损坏。

在高速和低速CAN中从隐性信号向显性信号过渡的速度更快,因为此时CAN线缆被主动积极地驱动,显性向隐性的过渡速度主要取决于CAN网络的长度和导线的电容。

4.6 CAN总线连接器

一般嵌入式中,处理器MCU的CAN接口出来的是CAN TXD和CAN RXD,一收一发。

但是实际接到CAN网络还需要收发器,收发器输出的就是差分信号了CANH和CANL,如下图所示。  

以上是关于[工业互联-2]:工业有线互联总线之CAN总线的主要内容,如果未能解决你的问题,请参考以下文章

[工业互联-4]:工业有线互联总线之IO-Link

[工业互联-5]:工业无线互联总线之IO-Link Wireless

CAN 总线 之一 总线拓扑物理电平发展史 详解

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

工业数字化转型 — 工业现场总线

CAN总线每帧含多少字节