CAN总线

最近在整理总线的基本知识,今天来整理一下CAN总线。

CAN历史

1983年,BOSCH开始着手开发CAN总线;

1986年,在SAE会议上,CAN总线正式发布;

1987年,Intel和Philips推出第一款CAN控制器芯片;

1991年,奔驰 500E 是世界上第一款基于CAN总线系统的量产车型;

1991年,Bosch发布CAN 2.0标准,分 CAN 2.0A (11位标识符)和 CAN 2.0B (29位标识符);

1993年,ISO发布CAN总线标准(ISO 11898),随后该标准主要有三部分:

ISO 11898-1:数据链路层协议

ISO 11898-2:高速CAN总线物理层协议

ISO 11898-3:低速CAN总线物理层协议

注意:ISO 11898-2和ISO 11898-3物理层协议不属于 BOSCH CAN 2.0标准。

2012年,BOSCH发布 CAN FD 1.0 标准(CAN with Flexible Data-Rate),CAN FD定义了在仲裁后使用不同的数据帧结构,从而达到最高 12Mbps 数据传输速率。CAN FD与CAN 2.0协议兼容,可以与传统的CAN 2.0设备共存于同样的网络。

CAN总线特点

CAN总线是一种串行数据通讯协议,具有对数据的位填充,数据块编码,循环冗余校验,帧优先级的判别等功能。其主要特点如下:

1、多主控制:在总线空闲时,所有节点都可以发送消息,最先访问总线的节点获得发送权,或当同时发时,高优先级ID获得发送权;

2、系统的柔软性:在CAN局域网内,增加节点不影响局域网内其他节点;

3、远程数据请求:可通过发送“遥控帧”请求其他节点发送数据;

4、错误检测功能、错误通知功能、错误恢复功能 ,CAN错误可以回顾CAN总线错误处理机制,对CAN故障及恢复有详细的讲解。

5、远程数据请求:可通过发送“遥控帧”请求局域网内其他节点发送数据。

总线拓扑

CAN总线采用双线传输,两根导线分别作为CAN_H、CAN_L,并在终端配备有120Ω电阻。收到总线信号时,CAN收发器将信号电平转化为逻辑状态,即CAN_H与CAN_L电平相减后,得到一个插值电平。总线上执行逻辑上的线“与”,显性电平为“0”,隐性电平为“1”。物理层特征如下图所示。
在这里插入图片描述

CAN帧的种类

CAN帧总共分为5种类型:
1、数据帧:用于发送节点向接收单元发送数据;
在这里插入图片描述
2、遥控帧:用于接收节点向具有相同ID的发送节点请求数据;
在这里插入图片描述
3、错误帧:用于当检测到错误时向其他节点通知错误;
在这里插入图片描述
在这里插入图片描述
4、过载帧:用于接收节点通知其尚未做好接收准备;
在这里插入图片描述
5、帧间隔:用于将数据帧及遥控帧与前面的帧分离开;
在这里插入图片描述
数据帧的帧结构
数据帧构成如下图所示,其由7部分构成。
在这里插入图片描述
1、帧起始

在总线空闲时,总线为隐性状态。帧起始由单个显性位构成,标志着报文的开始,并在总线上起着同步作用。
在这里插入图片描述
2、仲裁段

仲裁的主要是定义了报文的标识符,也俗称ID。在CAN2.0A规范中,标识符为11位,而在CAN2.0B中变为了29位。这意味着在2.0B中可以存在更多不同类型的报文,但是也降低了总线的利用率。
在这里插入图片描述
3、控制段
主要定义了数据域字节的长度。通过数据长度码,接收节点可以判断报文数据是否完整。
在这里插入图片描述
4、数据域

包含有0~8个字节数据。
在这里插入图片描述
5、CRC域

CRC又称循环冗余码校验,是检查帧传输错误的帧。由 15 个位的 CRC 顺序和 1 个位的 CRC 界定符组成,其CRC的计算范围包括帧起始、仲裁段、控制段、数据段。
在这里插入图片描述
6、ACK域

用于接收节点确认是否正常接收,由ACK槽和ACK界定符组成。
在这里插入图片描述
7、帧结束

由连续的7个隐性位组成,表示报文帧的结束。
在这里插入图片描述
FROM: https://mp.weixin.qq.com/s/tP8HUH5epbhT3OcPdt2qpw

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值