CAN

HMS为基于控制器局域网(CAN)的系统提供最大的产品系列。


HMS产品和服务可以让您...

  • 灵活和简单地在设备中实施CAN和基于CAN的高层协议,可以使用现成的模块,也可以使用协议栈
  • 连接CAN到任意其它工业网络
  • 连接您的PC到CAN,支持基于PC的控制,配置和分析
  • 分析和维护您的系统
什么是CAN?
CAN Products and Services
PC Interfaces
 

连接您的PC到CAN

Ixxat PC CAN接口可实现基于PC的应用到CAN的简单连接。

  • 用于控制,分析和配置应用
  • 具有各种各样的产品模式,适用于许多PC接口标准
  • 包含强大的驱动包可用于客户特定的基于PC的应用 

PC CAN接口

 
 CAN Infrastructure Components

互联您的系统和设备

为了连接基于CAN的系统,HMS提供庞大的产品系列,包括中继器,网关和网桥。

  • 由于布线简单可节省成本
  • 支持更大的系统扩展
  • 过滤和转换功能
  • 通过电气隔离提升系统可靠性和线路保护
  • 可远距离桥接并且通过蓝牙以太网等可简单访问系统

CAN 中继器
CAN 网桥和网关

 
CAN Tools
 

分析和配置

我们提供广泛的工具用于CAN开发,系统调试和故障排除。

  • canAnalyser – 简单地分析,传输和记录您的CAN和CAN FD报文和信号
  • CAN故障排除 – 强大的移动手持或基于PC的工具

canAnalyser
CAN诊断和故障排除


IO Modules for CAN, CANopen and EtherCAT
 

连接数字和模拟IO信号

为了连接数字和模拟IO信号到CAN与CANopen系统,HMS提供严格制造的IO 模块。

  • 支持CAN和CANopen
  • 设备内有简单的可配置的数字和模拟通道

IO模块

CAN – 简短介绍

 

CAN的“历史”

低成本和高性能微电子元件的使用让汽车行业引入了自动的电气控制单元(ECUs),可用于不同的功能区,例如点火,传输控制或防抱制动系统。 

不久就发现了它对于未来功能的改进 – 并且因此有了驱动行为的极大改进 – 分布在各种各样控制设备上的过程通过控制设备间的数据交换可实现同步。

汽车行业中数字通讯系统的引入也是车身元件和需要连接的便捷电子元件不断增多驱动的结果,这些电子元件例如有:温度控制,座位和车镜调整,电动车窗,防盗系统,中央灯光和闭锁机制等等。

在汽车领域,数字通讯系统首先应该减少线缆的数量/长度或者减少神经布线点例如汽车内部到前门的绝缘垫圈。

由于对数据传输安全性的极高要求,在充满电磁干扰的环境中,就有必要开发合适的通讯概念。

这也是博世(Bosch)在1983年开发控制器局域网(CAN)协议的出发点..

与此同时 – 除了在汽车中使用 – CAN也出现在广泛的应用领域中

  • 多功能车辆(垃圾和消防卡车)
  • 公共交通(铁路,火车,电车,公共汽车)
  • 农业和林业(拖拉机等)
  • 军事
  • 航空和海事
  • 楼宇(电梯)
  • 建筑(起重机,挖掘机等)

 

总线拓扑,参与者数量

CAN网络通常应用于线型结构,在每个线的终点有120欧姆终端电阻(可看图表)。可以使用短的分支线进行有限扩展,并且支持星型的总线(利于汽车应用)。每个网络的参与者数量不受协议限制,但取决于使用的组件的性能。

如果需要扩展CAN网络,那么CAN中继器具有多种用途:
它们可用于物理耦合CAN总线系统的两个或多个网段,可用于实现树型或星型拓扑结构,或者可用于实现长降线。此外,各个网段通过使用电气隔离的中继器可实现电气解耦。 

CAN-Technology-Line-Structure
图表:CAN网络的线型拓扑

 

CAN报文

CAN总线上的通讯通过 "报文"实现,它既包含“控制位”,也包含“数据位”。这样一个报文的“标准”配置叫做帧。

  • 数据帧:起数据传输的作用,在数据源的起点(发送器)发送器传输数据到一个或多个接收器
  • 远程帧:通过“远程帧”,总线订阅方(接收方)可以请求从数据源发送特定消息
  • 错误帧:在传输过程中错误帧向所有总线订阅者(发送方或接收方)发送检测出的错误信号
  • 过载帧:通过过载帧,CAN控制器可以通知其过载;现如今不再采用过载帧,因为控制器的性能足够

 

根据生产者-消费者原则进行信息交换

和两个特定订阅者之间信息交换的“节点导向”的传输方式相反,CAN消息的传输基于“生产者-消费者原则”。订阅者(生产者)发送的消息可以被所有其他的参与者(消费者)读取。鉴于此, 消息不以目的地址做标记,而是独特的“消息标识符”。发送消息给网络的所有订阅者也被称作"广播"。 

CAN-Technology-Format
图表:11位标识符(标准格式,CAN规范2.0A)

  • SOF:起始帧 = 显性位
  • RTR:远程传输请求 –  如果RTR位被设定,就定义了一个远程帧
  • IDE:标识符扩展,1位
  • r0:预留位
  • DLC:数据长度代码 = 4位(数据中字节数量,0至8字节,不支持9至15字节)

 

 

(报文)标识符表示CAN消息的内容,而不是设备。在测量系统中,例如独立的标识符可能被分配给参数如温度,电压和压强。然而,若干个参数也可以在一个标识符之下,只要数据的总量不超过数据区的最大长度。 

接收设备决定了标识符的基础,就是消息是否与标识符相关,然后将其从总线上的消息流中过滤出来。

CAN标识符的标准格式是通常是11位;因此每个系统中2048个不同的消息就可区分。该数量在大多数应用中都足够。然而,使用29位标识符(高级格式)就可定义高达5.12亿不同的消息用于特定应用(例如卡车,SAE J1939)。

 

消息格式

报文的开始(查看图片)是由带头的显性位发出信号,紧随其后的是11位长报文标识符,以及一个扩展位用于区分数据报文和数据请求报文(远程帧)。

通过远程帧,网络节点可能会通过系统中另一节点引起特定报文的传输。控制区规定了报文的传输格式(标准/扩展)以及后续的数据字节数量。

CAN报文的数据区可能包含0到8个数据字节。数据区之后是15位的CRC部分,该部分允许接收方验证收到的报文。在应答区,报文的发送方期望从至少一个接收网络节点收到无错误接收传输报文的确认。这种确认 – 专门用于发送方一侧的错误隔离 – 通过在应答槽发送显性位给出网络上无错误接收的节点。

结束帧区(EOF)最终表示完成了完全无误地CAN报文传输。

 

CAN-Technology-Data-Frame

图表:标准CAN报文传输格式(数据帧)

  • 起始帧(SOF) = 显性位
  • 仲裁区,包括标识符区(11位或29 + 2位)加上一个RTR位(远程传输请求)
  • 控制区(CTRL) = 6位
    • 标识符扩展(IDE) = 1位
    • 预留 = 1位
    • 数据长度代码(DLC) = 4位(数据区的字节数,0至8字节,不支持9至15字节)
  • 数据区(DATA) = 0到8x8位
  • 校验位(CRC) = 15位之后有一个隐性CRC分隔符位
  • 应答区(ACK) = 2位,包括ACK槽加一个隐性ACK分隔符
  • 结束帧(EOF) = 7位(隐性)
  • 间隙(IFS – 间隙帧空间) = 3位;分离连续报文的最小位数

 

可支持多主站,事件导向的信息传输

只要总线是空闲的,CAN网络的每个参与者(节点)都可以开始发送报文。可能会有不止一个网络节点同时开始发送报文的情况出现。因此需要一个选择过程(总线仲裁)确保只有一个节点继续传输报文。
因为每个节点都可以发起报文传输,这就可以实现网络上所有参与者之间的直接信息传输。结果就是可以有更低的总线负载,或者与循环消息传输的数据传输率相比,减少了请求。

无损,逐位仲裁

"仲裁"确保了CAN总线上顺畅/合理的报文传输。在“仲裁阶段”,可以决定同时传输的报文中哪个报文具有最高的优先级。只有网络节点发送报文,在仲裁之后将继续传输其报文。具有最低报文标识符值的报文具有最高优先级。

在仲裁阶段 – 包括发送报文标识符和所谓的RTR位(“远程传输请求”位) – 每个节点监测总线上的信号电平。

如果一个网络节点本身有隐性电平(隐性位) – 检测到显性总线电平(显性位)就会立即打断其传输进程并切换到接收状态。因为对于每个总线仲裁,报文被发送,其进程确保“无损”的总线访问。

 

CAN-Technology-Arbitration

图表:无损原则,逐位总线仲裁

节点1,2和3同时开始仲裁进程。在第2个时间段,节点2检测到总线没有隐性电平发送就完成了其仲裁进程。在第3个时间段,节点1退出。在第4个时间段(仲裁过程结束),节点3发送其数据。

 

优先级导向的通讯

以上描述的仲裁进程确保了具有最高优先级的报文可以在总线空闲时立即发送。
优先级导向的通讯原则支持非常高效地使用带宽用于数据传输。它允许低优先级的报文100%使用总线,并且没有延迟高优先级的报文传输。对于最高优先级的报文,具有1Mbit/秒的传输速率,最大延迟是130。另一方面,在设计CAN系统时,必须确保高优先级的报文不能永远占用总线。这通过引入所谓的“传输阻断时间”(CANopen:“抑制时间”)就可实现。

 

位速率和总线长度

CAN总线使用的逐位仲裁原则,需要在一个位的时间间隔内,对遍布在总线网络上的所有节点的位电平进行对比。

由于信号传播时间 – 需要信号分散(传播)在总线上 – 而这与总线长度成比例,所需的一个位的时间间隔会随着总线长度的增加而延长。
最大的网络规模基本上只取决于总线媒介所需的信号传播时间:以1Mbit/秒为例,可实现40米的网络跨度,而80kbit/秒网络规模可超过1000米。


CAN-Technology-Data-Rate
图表:数据速率和线缆长度比例
图中虚线显示的拇指法则是:数据速率小于400 kbit/秒并且线缆长度大于100米。绿色区域显示了在不考虑电子传输时间或其他限制参数条件下允许使用。 

最大总线长度(总线扩展)和最大位速率因此成反比例。对于长度超过100米的总线就可使用“拇指法则”:

 波特率(Mbit/s) x 总线长度(米) = 60

 

错误检测和故障隔离

CAN协议的一个主要特点就是它检测传输错误的能力很强。因此CAN能够处理车辆内部控制设备互联的非常高标准问题。
通过结合几种方式能够实现高能力的错误检测。最有效的一种方式是通过报文发送器监测总线电平("位监控")。通过这种方式,所有定义的错误都可检测到。此外,每个报文接收器使用CRC部分或固定格式元素还可检查每个收到的报文。通过这种方式,只有本地有效的错误也可被检测到。
除了检测传输错误,CAN协议还包括检测和断开故障节点的机制。这确保了故障网络节点不会持续干扰报文传输。

 

误差信号

和使用订阅者导向的传输通讯概念不同,CAN - 作为报文导向的协议 – 遵循/使用“误差信号原则”,每个节点为实现精确性检查总线上每个传输的报文。
一旦一个发送或接收节点检测到误差,就会通过发送误差报文(误差帧)的方式将此发信号给所有其他的节点。该报文包括结合了6位同极性的一(否则无效)位,通常作为显性位序列。所有节点检测误差信号并且丢弃报文中已经接收到的部分。以此种方式确保了网络所有的订阅者具有一致的数据集。
一旦发送节点发送或接收误差帧,它就通过进一步的总线仲裁立即尝试再次发送之前发送过的报文。
误差信号机制确保了报文交换是精确的,并且和网络上所有工作的订阅者相一致。
由于误差信号在误差被检测到之后立即发生,这确保了非常短的错误恢复时间。事实上,只有在误差被检测到之后总线才被额外占用,这在应答方式上就有个优势,即可以具有更低的额外总线负载。

更高层的协议

以上描述的CAN协议在ISO 11898标准中被被标准化,符合数据通讯OSI模型的1/2层协议。然而,为了实现网络,还需要更多的功能。
两个标准可应用于嵌入式系统和工业自动化:CANopen和DeviceNet。CANopen是应用于嵌入式网络的主要标准,DeviceNet主要使用于工业自动化的罗克韦尔自动化领域。在商用车辆中,也应用SAE J1939标准。