CAN总线介绍
需要简单实用的CAN总线介绍吗?
在本页面中,我们将为初学者解释控制器局域网(CAN 总线),包括消息解释、CAN 记录 – 以及 OBD2、J1939 和 CANopen 的联系。
虹科是一家在通讯领域,尤其是汽车电子和智能自动化领域拥有超过15年经验的高科技公司,在CAN总线技术领域已经有了超过10年的技术经验积累,并提供全面的软硬件解决方案,包括【CAN/CAN FD、LIN、车载以太网、TSN、IO-Link/IO-Link wireless、OPC UA、CANopen、PROFINET、EtherNet/IP、EtherCAT】等各类通讯协议的解决方案、测试方案、培训和开发服务等。
内容大纲
什么是CAN总线?
您的汽车就像人体一样:
该控制器区域网络(CAN总线)是神经系统,用于通信。
“节点”或“电子控制单元”(ECU)就像车身的一部分,通过CAN总线互连。一个部分感知到的信息可以与另一部分共享。
那么什么是ECU?
在汽车CAN总线系统中,ECU可以是例如引擎控制单元,安全气囊,音频系统等。现代汽车可能具有多达70个ECU—每个ECU可能都需要与网络的其他部分共享的信息。
这就是 CAN 标准派上用场的地方:
CAN 总线系统使每个 ECU 能够与所有其他 ECU 通信 – 无需复杂的专用接线。
具体来说,ECU可以通过CAN总线(由两条线组成,CAN低线和CAN高线)准备和广播信息(例如传感器数据)。广播的数据被 CAN 网络上的所有其他 ECU 接受,然后每个 ECU 可以检查数据并决定是否接收或忽略它。
CAN总线的优势
由于具有如下优势,所以CAN总线广泛应用于汽车,自动化,机械,轨道交通等各个方面。
简单且低成本
ECU通过单个CAN系统进行通信,而不是直接的复杂模拟信号线通信,这样减少了错误,重量,接线和成本
完全集中
CAN总线提供了“一个进入点”,可以与所有网络ECU进行通信——支持集中诊断,数据记录和配置
极其坚固
CAN总线具有强大的抗电干扰和抗电磁干扰能力,非常适合对安全要求严格的应用(例如车辆)
非常高效
通过ID对CAN帧进行优先级排序,以便优先级最高的数据可以立即访问总线,而不会引起其他帧的中断
CAN总线的未来
展望未来,CAN总线协议将保持相关性 —尽管它将受到主要趋势的影响:
- 对日益先进的车辆功能的需求
- 云计算的兴起
- 物联网(IoT)和联网车辆的增长
- 自动驾驶汽车的影响
特别是,联网汽车和云计算的增长将导致车载远程信息处理和物联网CAN记录器的快速增长。
反过来,使CAN总线“联机”也会使车辆面临安全风险 -并可能需要转向新的CAN协议。
随着车辆功能的扩展,CAN 总线上的负载也随之增加。为了支持这一点,CAN FD(灵活数据速率)被设计为“下一代”CAN 总线。
具体来说,CAN FD 具有三个优势(与传统 CAN 相比):
- 它的数据速率高达8 Mbit/s(相对于 1 Mbit/s)
- 它允许高达64 字节的数据有效负载(相对于 8 字节)
- 它可以通过身份验证提高安全性
简而言之,CAN FD 提高了速度和效率,因此正在新型车辆中推广。这也将推动对物联网 CAN FD 数据记录仪的需求不断增长。
“第一批使用 CAN FD 的汽车将于 2019/2020 年出现,CAN FD 将逐步取代传统 CAN”
– CAN 自动化 (CiA),“CAN 2020:CAN 技术的未来”
什么是CAN报文
CAN总线的通信是通过CAN报文完成的。
下图是带有11位标识符(CAN ID)的标准帧(CAN 2.0A),这是大多数汽车中使用的类型。
扩展的29位标识符(CAN ID)报文(CAN 2.0B)除了更长的ID外,其它部分都是相同的。它主要在重型车辆的J1939协议中使用。
注意,CAN ID和CAN Data在记录CAN总线数据时,它们非常重要,我们记录的主要就是这两部分。
- SOF:帧开始是“显性 0”,告诉其他节点 CAN 节点打算进行通信
- ID: ID 是帧标识符 – 较低的值具有较高的优先级
- RTR:远程传输请求指示节点是否发送数据或向另一个节点请求专用数据
- 控制:控制包含标识符扩展位 (IDE),它是 11 位的“显性 0”。它还包含 4 位数据长度代码 (DLC),指定要传输的数据字节的长度(0 到 8 个字节)
- 数据:数据包含数据字节,也称为有效负载,其中包括可以提取和解码信息的 CAN 信号
- CRC:循环冗余校验用于确保数据完整性
- ACK: ACK槽指示节点是否已确认并正确接收数据
- EOF: EOF标记CAN帧的结束
CAN 帧必须满足许多属性才能有效。如果传输了错误的 CAN 帧,CAN 节点将自动检测到并采取相应措施。这称为 CAN 总线错误处理,其中 CAN 节点跟踪自己的“CAN 错误计数器”并根据计数器更改状态(主动、被动、总线关闭)。有问题的 CAN 节点传输数据的能力因此被优雅地降低,以避免进一步的 CAN 错误和总线干扰。
如何解析CAN报文为具体的物理量?
如果查看上面的原始CAN总线数据,可能会注意到原始的CAN总线数据不可读
要对其进行解释,需要将CAN报文解析为具体的工程值,也就是物理值(km / h,degC等)
下面我们逐步展示了它是如何工作的:
这些“转换规则”通常是专有的,不容易获得,一般车厂都会有DBC数据库文件,再结合相关软件就可以解析,比如PCAN-Explorer6。
但是,在某些情况下,存在标准化的解码数据库,例如OBD2或J1939数据。
在某些情况下,转换规则在制造商之间是标准的-例如,在重型J1939协议中。
这意味着您几乎可以在任何重型车辆上使用J1939参数转换规则来转换大部分数据。为了使其实用,您需要一种用于存储转换规则的格式。在此,CAN数据库(DBC)格式是行业标准-并受大多数CAN总线软件(包括)的支持。
我们还提供了低成本的J1939 DBC文件,您可以将其以数字下载的形式购买。这样,您就可以从原始的J1939数据快速转换为人类可读的格式。
CAN、J1939、OBD2、CANopen...之间有什么联系?
控制器区域网络提供了通信的基础-但仅此而已。
例如,CAN标准未指定如何处理大于8个字节的消息——或如何解码原始数据。
因此,存在一组标准化协议以进一步指定给定网络的CAN节点之间如何通信数据。
一些最常见的标准包括SAE J1939,OBD2和CANopen。此外,这些高层协议将越来越多地基于CAN的“下一代” CAN FD(例如CANopen FD和J1939-17 / 22)。
SAE J1939
J1939是重型车辆(例如卡车和公共汽车)的所用的标准。J1939参数(例如RPM,速度等)由SPN标识,该参数编号分组在由PG编号(PGN)标识的参数组中
SAE J1939
车载诊断(OBD,ISO 15765)是一种自诊断系统,可以报告汽车问题。OBD2指定诊断故障代码(DTC)和实时数据(例如速度,RPM),可以通过OBD2记录仪进行记录
SAE J1939
CANopen广泛用于嵌入式控制应用中,例如工业自动化。它基于CAN,这意味着CAN总线数据记录仪也能够记录CANopen数据。这是机器诊断或优化生产的关键
CAN FD
CAN FD可以认为是CAN的升级版,支持最大64个字节的数据,数据域通信速率最高可以达到12Mbit/s,具体取决于CAN收发器。这样可实现数据密集型应用,例如EV