常用通信接口电气特征(六):CAN

  • Post author:
  • Post category:其他


CAN是控制器局域网络(Controller Area Network, CAN)的简称。CAN总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输。CAN收发器负责转换CAN信号和I2C信号。CAN连接示意图如下:

CAN连接示意图

CAN总线连接器类型可能有不同的形式:

CAN常用接口类型

CAN信号由接收控制器的TXD与RXD串口信号,再转换为CANH,CANL电平的差分信号。收发器引脚定义如下:

CAN收发器的引脚定义

CAN收发器引脚定义表

CAN收发器是实现CAN控制器逻辑电平与CAN总线上差分电平的互换。实现CAN收发器的方案有两种,一是使用CAN收发IC(需要加电源隔离和电气隔离),另一种是使用CAN隔离收发模块。推荐使用第二种。

CAN控制器是CAN的核心元件,它实现了CAN协议中数据链路层的全部功能,能够自动完成CAN协议的解析。CAN控制器一般有两种,一种是控制器IC(SJA1000),另一种是集成CAN控制器的MCU(LPC11C00)。

MCU负责实现对功能电路和CAN控制器的控制:在节点启动时,初始化CAN控制器参数;通过CAN控制器读取和发送CAN帧;在CAN控制器发生中断时,处理CAN控制器的中断异常;根据接收到的数据输出控制信号;

功能电路驱动向下直接控制功能电路,向上为应用层提供控制功能电路函数接口。特定功能包括信号采集、人机显示等。

CAN控制器内部结构:

CAN控制器内部结构

接口管理逻辑负责解释MCU指令,寻址CAN控制器中的各功能模块的寄存器单元,向主控制器提供中断信息和状态信息。

发送缓冲区和接收缓冲区能够存储CAN总线网络上的完整信息。

验收滤波是将存储的验证码与CAN报文识别码进行比较,跟验证码匹配的CAN帧才会存储到接收缓冲区。

传输速率:通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M).

下面的SAE J2411为美国汽车标准。

CAN速度表

CAN总线上任意两个节点的最大传输距离与其位速率有关,如下表:

CAN速度与距离表

这里的最大通信距离指的是同一条总线上两个节点之间的距离。可以看到速率越低通讯距离就越远,也就是说CAN总线的通讯距离和波特率成反比。在位速率为5千比特位每秒的时候达到最大的传输距离10公里。其中一般的工程中比较常用的为500K每秒的通讯速率。

CAN速度距离曲线

双工类型:半双工。

电平类型及范围:差分信号,根据CANH与CANL间的差值分为显性和隐形。

当总线为显性时,对于高速CAN(5kps~1Mps),1.5V<CANH-CANL<3V,典型值为2V;对于低速CAN(低于125kps),0.3V<CANH-CANL,典型值为3V;对于单线CAN,电平为4V左右。

当总线为隐性时,对于高速CAN(5kps~ 1Mps),-0.5V<CANH-CANL<0.05V,典型值为0V;对于低速CAN(5kbs~125kps), -0.3V<CANH-CANL,典型值为-1.5V;对于单线CAN,电平为0V附近。


电平变化与逻辑关系:显性为逻辑0,隐性为逻辑1。


如果总线上只要有一个节点将总线拉到低电平(逻辑0)即显性状态,总线就为低电平(逻辑0)即显性状态而不管总线上有多少节点处于传输隐性状态(高电平或是逻辑1),只有所有节点都为高(隐性),总线才为高,即隐性。

如下是不同CAN类型电平变化与逻辑的关系:

高速CAN电平与逻辑关系

低速容错CAN电平与逻辑关系

单相CAN电平与逻辑关系

数据格式:CAN总线传输的是CAN帧,CAN的通信帧分成五种,分别为数据帧、远程帧、错误帧、过载帧和帧间隔。

数据帧用来节点之间收发数据,是使用最多的帧类型;

远程帧用来接收节点向发送节点接收数据;

错误帧是某节点发现帧错误时用来向其他节点通知的帧;

过载帧是接收节点用来向发送节点告知自身接收能力的帧;

帧间隔用于将数据帧、远程帧与前面帧隔离的帧。

数据帧根据仲裁段长度不同分为标准帧(2.0A)和扩展帧(2.0B)

CAN帧结构

帧起始由一个显性位(低电平)组成,发送节点发送帧起始,其他节点同步于帧起始;

帧结束由7个隐形位(高电平)组成。

仲裁段: CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。如果该位位于仲裁段,则退出总线竞争;如果位于其他段,则产生错误事件。帧ID越小,优先级越高。由于数据帧的RTR位为显性电平,远程帧为隐性电平,所以帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高。

CAN节点竞争过程

控制段:共6位,标准帧的控制段由扩展帧标志位IDE、保留位r0和数据长度代码DLC组成;扩展帧控制段则由IDE、r1、r0和DLC组成。

CAN控制段结构格式

数据段:为0-8字节,短帧结构,实时性好,适合汽车和工控领域;

CAN数据段格式

CRC段:CRC校验段由15位CRC值和CRC界定符组成。

CAN的CRC段格式

ACK段:当接收节点接收到的帧起始到CRC段都没错误时,它将在ACK段发送一个显性电平,发送节点发送隐性电平,线与结果为显性电平。

远程帧:远程帧分为6个段,也分为标准帧和扩展帧,且RTR位为1(隐性电平)。

远程帧与数据帧的对比

过载帧:当某节点没有做好接收的”准备”时,将发送过载帧,以通知发送节点。

过载帧格式

帧间隔:用来隔离数据帧、远程帧与他们前面的帧,错误帧和过载帧前面不加帧间隔。

CAN帧间隔格式

传输线阻抗:120欧(采用双绞线),需要端接120欧电阻阻抗匹配。

CAN终端电阻的接法

允许并联电容:CANH,CANL对比最小40pf,最大150pf;CANH对CANL最大90pf,最小0.

CAN引脚对电容的要求

支持设备数量:使用CAN双绞线时是看总线长度、CAN收发器驱动能力、线缆阻抗、匹配电阻大小等。大多数的驱动器理论上是挂110个内比较可靠(不考虑其他因素的影响,如线缆阻抗较大等),如果节点过多,可以考虑用硬件的CAN中继器,可以增加差不多一倍的节点。

应用场合:汽车,工业

一个典型的CAN应用场景:

CAN典型的应用场合

设计要点:终端电阻匹配,节点设计,收发器匹配(同一网络中要使用同类CAN收发器(高速或容错)),滤波器和抗干扰电路设计。

具有对抗ESD和浪涌的CAN接口设计如下:

CAN应用的滤波器和抗干扰电路



版权声明:本文为kgufan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。