概述
CAN学习模块
目标群体
该在线学习模块适用于所有希望更好地了解CAN通信技术的人员。
Vector培训课程
该在线学习模块还适用于所有计划参加Vector培训课程的人员。在对数据通信有一定程度的了解之后,您将更容易接受绝大多数Vector培训课程。
相关信息
学习目标
了解CAN网络中的数据通信
要求
电子学的基础知识
动因和时间
范围
37个学习单元
学习用时
每个学习单元10分钟
技术文章
Reliable data exchange in the automobile with CAN
Ways to transition from classic CAN to the improved CAN FD
版权声明
详情查看Vector培训官网 -《版权声明》
介绍
CAN的推动因素
电子化
汽车近年来的发展呈现出以电子化为主的特点。电子化的主要原因是由于当前用户对汽车的需求一直在不断增长,以及日益严格的汽车排放法规。另一个因素是全球化,全球化加剧了竞争和成本压力,直接导致创新压力不断增加。
数据传输
起初,独立运行的ECU足以实现电子功能。但工程师们很快就意识到,ECU彼此协调工作可以极大地增强车辆功能。最初,ECU之间数据交换是以传统方式实现的,即为每一个传输信号分配一个物理通信通道。
串行通信
然而,大量的布线也只能实现有限的数据交换。唯一可以解决这一难题的方法是通过单个通信通道(总线)进行串行位数据交换。因此,需要设计适合汽车需求的串行通信系统。
基于CAN的安全数据传输
上世纪八十年代初,Bosch开发一种新的串行通信系统,即CAN。即使在今天,CAN汽车动力系统、底盘和舒适系统的ECU网络中发挥着重要作用。最重要的是,CAN具有数据传输非常可靠的特点,可以满足应用领域的实时要求。
化繁为简
自引入CAN后,汽车中的复杂线束(通常存在多种变体)已成为过去。CAN不仅可以简化项目规划和实施,还可以降低布线重量和空间要求。
标准化
CAN协议(CAN protocol)
从1994年开始,ISO启动CAN技术标准化工作,并最终形成4份标准规范。其中,ISO 11898-1描述了CAN协议。除了数据通信的参考模型,CAN协议仅包括数据链路层(介质访问控制子层MAC -Medium Access Control和逻辑链路控制子层LLC - Logical Link Control)和物理层(物理信号PLS - Physical Signaling)。
CAN控制器(CAN Controller)
CAN协议是基于硬件实现的。目前有多种不同的CAN控制器,其唯一区别在于对CAN报文的处理方式,具体体现在对象层中:具有对象存储的CAN控制器(即完整CAN控制器-Full CAN Controller)与不具有对象存储的CAN控制器(即基础CAN控制器-Basic CAN Controller)。
高速CAN(CAN High Speed)和低速CAN(CAN Low Speed)
ISO 11898-2和ISO 11898-3介绍了数据通信参考模型的两个子层:PMA(Physical Medium Attachment,物理介质适配层)和PMS(Physical Medium Specification,物理介质规范)。它们描述了两种不同的CAN物理层:高速CAN物理层和低速CAN物理层,主要区别在于对总线电平和数据传输速率(波特率)的定义。
波特率
ISO 11898-3规定最大的波特率为125 kbit/s,主要用于汽车的舒适系统领域。ISO 11898-2规定最大波特率为1 Mbit/s,主要用于汽车的动力系统和底盘系统领域。
ISO 11898-3规定最大的波特率为125 kbit/s,主要用于汽车的舒适系统领域。ISO 11898-2规定最大波特率为1 Mbit/s,主要用于汽车的动力系统和底盘系统领域。
事件驱动通信
ISO 11898-1定义了事件驱动通信。总线负载较高可能会导致延迟,对于优先级较低的CAN报文来说尤其如此。若要确保在CAN网络中实现确定性通信,可以使用ISO 11898-4。ISO 11898-4是数据链路层的扩展,为CAN网络增加了时间触发的通信选项。
ISO/OSI参考模型
图“Standard and Implementation”显示了数据通信的ISO/OSI参考模型、CAN技术规范(CAN standard)及其实现之间的关系。
CAN通信
CAN网络
结构
CAN网络由若干个经物理传输介质(CAN总线-CAN Bus)连接的CAN节点组成。实际上,CAN网络通常采用线性拓扑结构,每个ECU经CAN接口连接到总线。也有少数CAN网络采用被动星形拓扑。
物理层
非屏蔽双绞线(UTP,Unshielded Twisted Pair)是传输对称信号时最常用的物理传输介质。通常,UTP的线横截面介于0.34 mm2 和0.6 mm2 之间。线路电阻应小于60 mΩ。
边界条件
在最高传输速率1Mbit/s的情况下,允许的最大长度是40米。在CAN网络的末端,总线终端电阻(termination resistor)有助于抑制信号反射现象。ISO 11898规定CAN节点的最大数量为32。
CAN节点
电子化
随着汽车电子化程度的提高,软件的数量和复杂度也在迅速增长。一些豪华汽车已经拥有1000多种软件功能,多条总线系统,以及70多个ECU。在CAN网络中执行任务的ECU称为CAN节点。
复杂度不断升高
在ECU联网的初期,一个简单的CAN驱动程序(该驱动程序为应用程序提供与硬件无关的简单接口)、一个CAN控制器和一个CAN收发器(CAN transceiver)足以实现CAN接口。如今,ECU网络离不开操作系统、网络管理和诊断功能。同时,软件已变得极其复杂,因此有必要对ECU基础软件进行标准化。
软件协调
标准统一的软件可减少开发工作并简化维护工作,还有助于提高重复使用率,并且有助于增强不同车辆平台之间以及OEM和供应商之间的软件组件的互换性。
AUTOSAR
AUTOSAR(AUTomotive Open System ARchiteture,汽车开放系统架构)为ECU软件提供了参考架构,其核心是AUTOSAR实时运行环境(RTE),负责将网络与应用程序的软件组件完全分离。AUTOSAR以基础软件的形式为软件组件提供统一的服务,从低到高分别为:微控制器抽象层、ECU抽象层、服务层。
CAN节点结构
“CAN Node”图描述了新式CAN节点的结构。最值得关注的是“通信服务”领域。AUTOSAR COM(通信)提供标准通信服务、诊断服务(诊断COM管理器)和网络管理服务(通用NM/CAN NM)。PDU路由器(PDU:协议数据单元)处理各个通信层之间的内部节点通信,并协调AUTOSAR COM、诊断COM管理器和CAN TP(传输协议)之间的通信。
CAN控制器
CAN接口
ECU需要CAN接口才能参与CAN通信。CAN接口由CAN控制器和CAN收发器组成。CAN控制器执行CAN协议规定的通信功能,从而大大减轻了主机的负担。
CAN收发器
CAN收发器将CAN控制器连接到物理传输介质。通常,控制器和收发器之间采用光耦隔离或磁耦隔离,因此尽管CAN总线上的过电压可能会损坏CAN收发器,但CAN控制器和底层主机仍可受到保护。
发送/接收
在CAN网络中,CAN节点的不同之处在于每个节点发送或接收的CAN报文的数量。发送和接收的频率也存在很大差异。例如,一个CAN节点可能要接收五条不同的CAN报文,且每隔10毫秒接收一条,而另一个CAN节点只需每隔100毫秒接收一条CAN报文。这些明显的差异导致产生了两种基本的CAN控制器架构:完整CAN控制器和基础CAN控制器。
集成
不论CAN控制器类型如何,CAN控制器都可集成在微控制器中,也可以作为独立的芯片存在(如图所示)。在这种情况下,微控制器会将CAN控制器视为存储芯片。虽然独立CAN控制器更加灵活,但集成CAN控制器具有所需空间更少的优势,并且微控制器和CAN控制器之间的通信更快、更可靠。
CAN收发器
总线连接
以前,CAN控制器经常通过离散电路连接到通信介质(CAN总线)。但现在,CAN收发器可以处理总线连接。CAN收发器有两个总线引脚:一个用于连接CAN高信号线(CANH),另一个用于连接CAN低信号线(CANL)。这是因为CAN采用对称的物理信号传输以满足电磁兼容性,而且CAN网络中的物理传输介质是由两根线(非屏蔽双绞线)构成。
高/低速率
通常,高速CAN收发器和低速CAN收发器的物理电平不同,支持的数据传输速率也不同。高速CAN收发器支持的波特率高达1 Mbit/s。低速CAN收发器支持的波特率最高仅为125 kbit/s。但低速CAN收发器可确保总线接口的容错布局(例如,两条通信线路之中的某一条故障不会导致总体通信故障)。
收发器布局
“CAN Transceiver Layout”图显示了高速CAN收发器的基本布局。两个输出晶体管都处于截止状态时,CANH和CANL均具有相同的电位(0.5*Vcc),且差分电压为零。两个晶体管导通时会在CANH和CANL之间产生一个随负载电阻变化的差分电压。根据ISO 11898-2,该差分应为2V。因此,会产生约35 mA的电流。
抗噪能力
通常,CAN收发器的电磁辐射极低且共模工作范围广,具有较高的抗噪能力。此外,目前的CAN收发器可提供高达8 kV的ESD(Electro-Static discharge,防静电)保护。尽管CAN收发器在某些应用领域中具有很高的共模抑制,但在输出附近插入共模扼流圈(CMC)仍有助于进一步减少辐射。
限制
ISO 11898中规定CAN节点的最大数量为32。实际上,CAN节点的最大数量在很大程度上取决于所使用的CAN收发器的性能以及CAN网络是高速还是低速。例如,如果在高速CAN网络中使用TJA1050高速CAN收发器,则在一个CAN网络中最多可以连接110个CAN节点。
CAN总线
差分信号(Differential signals)
CAN网络中的物理信号基于差分信号进行传输,有效地消除发动机、点火系统和开关触点引起的干扰电压所造成的负面影响。因此,传输介质(CAN总线)由两条线路构成:CAN高信号线(CANH)和CAN低信号线(CANL)。
双绞线
将两条导线绞成一股可显著减小磁场。因此,在实践中双绞线通常用作物理传输介质。
总线终端
由于信号传播速度有限,反射现象的影响会随着波特率提高和总线延长而增加。使用终端电阻连接通信通道的两端(模拟传输介质的电特性)可防止在高速CAN网络中发生反射。
总线终端电阻的关键参数是导线的特性阻抗。ISO11898-2(高速CAN)规定终端电阻是120欧姆,但ISO11898-3(低速CAN)未规定任何总线终端电阻,因为它的最大速率仅为125kbit/s。
CAN总线电平
总线连接
CAN网络中的物理信号基于差分信号进行传输,具体的差分电压取决于所使用的总线接口。高速CAN总线接口(ISO 11898-2)和低速CAN总线接口(ISO 11898-3)有所不同。
电压等级
在ISO 11898-2中,逻辑“1”对应差分电压0V,逻辑“0”对应差分电压2V。高速CAN收发器将超过0.9V的差分电压当做共模工作范围(通常为-12V到12V之间)内的显性(dominant)电平。
低于0.5V的差分电压被当做隐性(recessive)电平。磁滞电路提高了抵抗干扰电压的能力。在ISO 11898-3中,逻辑“1”对应差分电压-5V,逻辑“0”对应差分电压2V。
“High-Speed CAN Bus Levels”图和“Low-Speed CAN Bus Levels”图说明了不同CAN总线上的电压关系。
CAN总线逻辑
显性/隐性
在CAN网络中实现通信顺畅(尤其是总线访问、故障指示和应答)的基本前提是总线显性电平和总线隐性电平之间存在明显差别。总线显性电平对应于逻辑“0”,总线隐性电平对应于逻辑“1”。
显性电平优先级高于隐性电平。当不同CAN节点同时发送显性和隐性总线电平时,CAN总线将呈现显性总线电平。只有当所有CAN节点都发送隐性电平时,CAN总线才呈现隐性总线电平。
与逻辑
从逻辑上说,上述行为是与逻辑。从物理上讲,与逻辑由集电极开路电路实现。通过“Bus Logic”图可以了解CAN网络的线与(wired-AND)逻辑。