CAN总线协议的介绍
CAN (Controller Area Network) 控制器局域网络,由生产汽车电子产品BOSCH公司开发的。它是成为汽车计算机控制系统和的标准总线
基本参数
参数 | 说明 |
---|---|
OSI层数 | 1. 物理层 ISO11898(高速CAN) 或 ISO11519(低速CAN) 2. 数据链路层 can是标准数据帧 3. 应用层 用户自己定义 一般用CanOpen标准 (can属于现场总线协议,一般就只有这三层) |
双工单工 | |
主从结构 | 没有主从之分 每个节点都是平等 一个节点以广播的形式发送 |
支持速率 | 125kps~1Mkps |
通讯距离 | |
是否差分传输 | |
数据线 |
CAN总线协议的规则
物理层规则
1.基本组成结构
结构单元 | 说明 |
---|---|
CAN收发器 | 1.收: 将CAN控制器的TTL或CMOS的电平信号 转换为 CAN差分模拟电平信号 2. 发:将CAN的差分模拟电平信号 转换为 TTL/CMOS的电平信号送到CAN控制器 从而实现完整的双向通信 |
CAN控制器 | 解析来自CAN收发器送来的数据 也将用户的数据传送到CAN收发器并发送出去 CAN控制器一般具备数据帧的解析与解码,数据屏蔽与滤波,数据帧的打包与封装等功能, 是与用户交互的端口 |
2.电平逻辑传输规则
CAN总线采用差分传输信号线 (CANH和CANL) ,其中每个ECU为每个CAN总线上的节点,(左图) 。右图是01逻辑规则。
逻辑值 | 说明 |
---|---|
逻辑1 (隐性) | CANH和CANL电平都为2.5V(电位差为0) |
逻辑0 (显性) | CANH和CANL电平分别为3.5V和1.5V(电位差为2V) |
数据链路层规则
在原始数据段的前面加上传输起始标签、片选(识别)标签和控制标签,在数据的尾段加上 CRC 校验标签、应答标签和传输结束标签,把这些内容按特定的格式打包好,就可以用一个通道表达各种信号了
1.CAN标准数据帧
用于节点向外传送数据
当接收节点接收到帧起始到CRC字段的数据都没有错误时,接收节点将在确认间隙位发送一个显性电平(ACK),此时总线电平为发送节 点的隐性和接收节点的显性线与为显性电平,表明数据传输无误,没有错误发生