天天看点

[工业互联-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协议主要用于汽车中各种不同元件之间的通信,以此取代昂贵而笨重的配电线束

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

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

1.2 CAN总线的优点

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

[工业互联-2]:工业有线互联总线之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总线来实现汽车内部控制系统与各检测和执行机构间的数据通信。

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

不再局限于汽车行业,而向自动控制、航空航天、航海、过程工业、机械工业、纺织机械、农用机械、机器人、​​数控机床​​、医疗器械及传感器等领域发展。

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

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

1.4 CAN总线的发展历史

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

[工业互联-2]:工业有线互联总线之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]:工业有线互联总线之CAN总线

第2章 CAN总线的网络拓扑

2.1 总线拓扑

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

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

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

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

2.2 星形拓扑

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

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

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

2.3 树形拓扑

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

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

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

2.4 环形

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

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

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

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

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

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

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

[工业互联-2]:工业有线互联总线之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规范中,并没有关于总线拓扑结构的说明)。

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

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

接收数据过程,相反。

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

(1)高速互联

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

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

(2)低速互联

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

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

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

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

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

4.2 CAN协议栈

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

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

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

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

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

其典型的应用协议有:

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

4.3 CAN总线通信模型

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

4.4 CAN收发器

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

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

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

4.5 CAN总线物理电气特性

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

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

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

(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总线

 (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的电压而不被损坏。

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

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

4.6 CAN总线连接器

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

继续阅读