资讯详情

CAN总线

1. 概述

在汽车产业的发展过程中,出于人们对安全性、舒适性、易用性、娱乐性等多种需求的增加,各种各样的汽车电子系统相继被发明出来。起初,它们都是基于点对点通信安装在汽车的各个部分。随着越来越多的电子系统的不断增加,整车上的线束越来越多,大大增加了汽车的生产和维护成本。于是,一种新的现场总线应运而生。这是当今汽车工业中得到了广泛的应用CAN总线。CAN总线是由德BOSCH公司开发的,并最终成为国际标准(ISO11519)是世界上应用最广泛的现场总线之一。CAN基于广播的串行数据通信协议,总线具有高性能、高可靠性、实时性等优点。

点对点通信

总线通信

2. 总线协议标准

2.1 CAN总线拓朴图

CAN物理层和链路层由总线标准定义ISO11898定义,用户自己定义应用层。CAN标准仅物理层不同。其拓扑图如下:

主要由CAN总线、CAN由收发器和设备节点组成。用于传输CAN总线信号总线信号CAN总线,由CAN_H和CAN_L由两条线组成;连接CAN用于转换逻辑电平和物理信号的总线和设备节点的单元电路称为CAN收发器;通过CAN在总线上连接收发器的设备称为设备节点。CAN对称差分信号在总线上传输。

2.2 CAN物理层

2.2.1 CAN总线

CAN总线由CAN_H和CAN_L由两条线组成,一般采用双绞线在线传输对称差分电平信号。CAN总线分为高速总线和低速总线。CAN总线最高信号传输率为1Mbps,低速CAN最高速度只有125Kbps。接法如下:

2.2.2 CAN收发器

CAN收发器主要用于连接设备节点CAN总线实现逻辑电平和CAN总线物理电平之间的转换起到隔离作用,防止设备节点出现问题CAN总线不能工作。收发器分为高速CAN收发器(1Mbps)和低速CAN收发器(125Kbps)。其原理结构图如下:

2.2.3 CAN设备节点

CAN设备节点,即通过CAN连接收发器CAN并按总线CAN总线协议在CAN为了实现数据的传输和接收,如拓朴图上的温度传感器等,总线收发报文。它通常集成了一个CAN实现总线控制器CAN总线协议。

CAN控制器

2.2.4 CAN总线信号

CAN总线采用差分信号传输数据,逻辑0和逻辑1用两条差分信号线的电压差表示。在逻辑1中,CAN_H和CAN_L电压差小于0.5V称为隐性电平(Recessive);逻辑0,CAN_H和CAN_L的电压差大于0.9V,称为显性电平(Dominant)。

2.3 数据链路层

2.3.1 通信机制

从节点的角度来看,CAN总线协议采用多主机模式,每个设备节点在总线空闲时都可以向总线发送信息。因此,在发送数据之前,网络上的每个节点都应检测总线上是否有数据传输:如果网络上有数据,则暂时不发送数据,等待网络在空闲时间发送;如果网络上没有数据,请立即发送准备好的数据。从报文的角度来看,CAN总线协议通过消息标识符(Identifier)区分新闻和仲裁总线使用权的优先级。若多个节点向总线发送消息,则以最高优先级获取总线。通过ID仲裁,ID报文优先级越小,数值越高。在检测到更高优先级报纸时,发送低优先级报纸的节点退出总线竞争,等待下一条总线自动重新发送报纸。

2.3.2 报文类型及结构

在CAN以帧为单位,CAN总线定义了数据帧、远程帧、错误帧、超载帧和帧间隔五种帧。数据帧根据仲裁段的长度分为标准帧(2.0A)和扩展帧(2.0B)。用途如下:

  • 数据帧

数据帧包括帧起始、仲裁、控制、数据、CRC段、ACK段落和帧:

帧起始:标识一个数据帧的开始,由一位显性位表示。

仲裁段:在标准帧中,仲裁场由11个标志符和RTR在扩展帧中,仲裁场由29位标志符组成,SRR位、IDE位和RTR位组成。其中,标记符(帧)ID)优先级越小越高;RTR数据帧RTR位置必须为显性电平(RTR=0),远程帧RTR位置必须为隐性电平(RTR=1);IDE标准帧属于控制场,扩展帧属于仲裁场。在标准帧中IDE为显性电平(IDE=0),在扩展帧中IDE为隐性电平(IDE=1);SRR(远程替换请求位)在扩展帧中始终是隐性电平(SRR=1)。

控制段:扩展帧标志位的标准帧控制段IDE、保留位r0和数据长度代码DLC由扩展帧控制段组成IDE、r1、r0和DLC组成。DLC由4位组成,DLC3?DLC0,用BCD代码表示0-8的值。

数据段:放置需要传输的数据,字节长度为0-8,由DLC确定。

CRC段:由15位CRC码和1位CRC定义符组成。CRC定义为隐性位的主要功能是CRC后面的验证码ACK段隔开。

ACK段:包括确认位(ACK)和界定符(DEL)。发送节点发的报文中ACK及DEL均为隐性电平1,接收节点正确接收后会用显性电平0覆盖隐性电平,以表示正确接收。即ACK=0,DEL=1为正确接收;ACK=1,DEL=1为未正确接收。

帧结束:7个连续的隐性位,表示数据帧结束。节点在检测到11个连续的隐性位后认为总线空闲。

  • 远程帧

用来向其他节点请求发送具有同一标识符的数据帧,远程帧没有数据场,且RTR位为隐性电平。远程帧分为6个段,也分为标准帧和扩展帧,且RTR位为1(隐性电平)。

  • 错误帧

当节点监测到一个或多个由CAN标准所定义的错误时,就会产生一个错误帧。错误帧由错误标志和错误界定符两个部分组成。由于可能出现多个节点接连发出错误帧的情况,于是就有可能出现错误标识叠加的情况。

  • 过载帧

当一个接收节点没有做好接收下一帧数据的准备时,将发送过载帧以通知发送节点;过载帧由过载标志和过载帧界定符组成。由于存在多个节点同时出现过载的情况,并且它们发送过载帧存在时间差,这时就会出现过载标志叠加的情况。

  • 帧间隔

帧间隔用于将数据帧或远程帧和他们之前的帧分离开,但过载帧和错误帧前面不会插入帧间隔。

帧间隔过后,如果无节点发送帧,则总线进入空闲。

帧间隔过后,如果被动错误节点要发送帧,则先发送8个隐性电平的传输延迟,再发送帧。

2.4 状态与流程

2.4.1 错误处理机制

CAN总线协议定义了五种错误类型:CRC错误、格式错误、应答错误、位发送错误和位填充错误。它们表示的意义如下:

它们按照以下机制进行处理:

2.4.2 报文发送流程

CAN总线协议定义的报文发送流程如下图所示:

注:本文所有资料均来源于网络,经作者整理而成,如有侵权,请及时联系作者。

标签: 传感器连接cancan总线的传感器总线连接器7972

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台