首页 > 汽车技术 > 正文

干货 | 汽车CAN总线基础知识

2023-10-14 18:07:58·  来源:汽车测试网  
 

CAN是控制单元区域网络(Controller Area Network)的缩写,汽车控制器局域网(CAN)是现代汽车网络通信与控制系统中的重要组成部分,本文将全面、系统地介绍了汽车CAN总线的基本原理。

图片
汽车CAN总线结构图(图片来源网络)

1、CAN总线概述


  • CAN总线(Controller Area Network)是一种用于在嵌入式系统和汽车应用中进行通信的串行通信协议和硬件总线标准。

  • CAN总线最初由德国公司Bosch于20世纪80年代开发,旨在满足汽车电子系统之间的通信需求。

  • CAN总线目前广泛用于汽车、工业自动化、医疗设备和其他领域,具有高度可靠性、实时性和抗干扰能力。


  • 图片

    早期时候,的汽车电子控制单元ECU以点对点的连接方式实现通讯,连接线路复杂,且接线存在冗余。

    图片
    非总线型的ECU通信

    图片
    点对点的ECU线路通信形式

    总线型ECU在一条公共通道上通讯,信息控制器从总线上接收所有信息,并根据规则过滤无用信息,从而实现信息的实时交互。连接线路以一条总线的形式体现,结构清晰。

    图片
    总线型的ECU通信

    图片
    总线型的ECU线路通信形式

    图片
    汽车总线分类(图片来源网络)

    图片
    汽车总线发展历程

    2、CAN总线的基本特点

    CAN总线协议(Controller Area Network Protocol)是一种用于嵌入式系统、汽车和工业应用中的串行通信协议,定义了CAN总线上数据通信的规则帧格式通信方法。CAN协议被广泛应用于各种电子控制单元之间的通信,如发动机控制单元、制动控制单元、空调控制单元等。通过CAN协议,这些控制单元可以相互通信,实现车辆的各种功能。

    图片
    CAN总线工作特点

    3、CAN总线的分层结构

    SAE J1939总线协议(以下简称J1939)是美国汽车工程协会(SAE)的推荐标准,用于为中重型道路车辆上电子部件间的通讯提供标准的体系结构。

    图片
    SAE J1939协议

    J1939基于德国Bosch公司(Robert Bosch GmbH)开发的控制器局域网络(CAN:Controller Area Network),可达到250Kbps的通讯速率。它描述了重型车辆现场总线的一种网络应用,包括CAN网络物理层定义、数据链路层定义、应用层定义、网络层定义、故障诊断和网络管理。

    图片

    4、CAN 总线的报文帧

    CAN总线协议的报文帧共分为数据帧远程帧错误帧过载帧帧间隔5种类型。

    图片
    CAN总线协议的报文帧

    CAN总线的数据帧是CAN总线上用于数据传输的基本单元。CAN数据帧通常包含了多个字段,用于标识和传输数据。CAN总线的数据帧有标准格式(Standard Format)和扩展格式(Extended Format)的区分。

    图片

    图片
    CAN总线的数据帧

    5、CAN总线通信机理

    CAN(Controller Area Network)总线通信机理是指在CAN总线上多个节点之间进行可靠、实时通信的原理和方法,其数据流向为:CPU——CAN控制器——CAN收发器——连接器(双绞线)。

    图片
    CAN总线通讯机理

    CPU:负责产生数据

    CAN控制器:负责将CPU传输过来的数据加工成标准的数据格式,同时定义了数据传输的仲裁机制,错误校验以及过载通知等特点,是CAN协议的数据链路层

    CAN收发器:将CAN控制器传输过来的信息编码(此信息编码已经由CAN控制器变为标准格式)转为电平信号,电平为差分信号,通过两根线之间的电压差表示逻辑0和1,是CAN协议的物理层

    连接器:CAN总线一般为双绞线,分CAN_H和CAN_L高低压线

    图片
    双绞线

    CAN总线数据发送流程:CPU将二进制数据通过CAN控制器中定义好的接口发送给CAN控制器中的发送缓冲器(最多缓存3组数据),之后CAN核心模块会在发送缓冲器中拿取数据,对数据进行加工,生成CAN协议所规定的数据格式,之后将标准的数据格式发给CAN收发器,CAN收发器会按照规定将接收到的二进制信息编码转为对应的电平信号

    CAN总线数据接收流程:CAN收发器会收到CAN总线上发送过来的电平信号,根据规定,将电平信号转化为对应的二进制编码,然后传给CAN核心模块,CAN核心模块会对接收到的数据进行解析,将其中ID信息,数据信息解析出来,之后通过过滤器对ID进行过滤,过滤器中定义了允许通过的ID或者ID组,之后将通过的ID所对应的数据传入到FIFO中,这是一个队列,先进先出,最先传进去的数据,最先被CPU拿取进行处理。

    CAN总线的基础知识对于许多领域的工程师、技术人员和设计师来说至关重要,因为CAN总线是一种广泛应用于嵌入式系统、汽车、工业控制、医疗设备和许多其他领域的通信协议。本文主要从CAN总线概述CAN总线的基本特点、CAN总线的分层结构、CAN 总线的报文帧CAN总线通信机理5个方面阐述了CAN总线的基础知识,对深入理解CAN总线协议和将CAN总线应用到具体工程项目中,以及研究或开发特定要求的总线系统具有指导意义。

    分享到:
     
    反对 0 举报 0 收藏 0 评论 0
    沪ICP备11026917号-25