ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CAN协议

2022-03-21 17:59:44  阅读:252  来源: 互联网

标签:协议 总线 电平 CRC FD 数据 节点


说在前面

CAN协议和CAN-FD协议笔记

参考文档

https://blog.csdn.net/qq_31710263/article/details/97015748
https://blog.csdn.net/liuligui5200/article/details/79030676
https://blog.csdn.net/LiuXF93/article/details/113954902?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=2

背景

CAN是控制器域网 (Controller Area Network, CAN) 的简称,是由研发和生产汽车电子产品著称的德国BOSCH公司开发了的,并最终成为国际标准(ISO11898)。

其模型结构只有3 层,即只取OSI 底层的物理层数据链路层传输层,保证了节点间无差错的数据传输。 CAN 总线上用“显性”(Dominant)和“隐性” (Recessive)两个互补的逻辑值表示“0”和“1”
CAN协议总线
如图所示,VCAN-H和VCAN-L为CAN总线收发器与总线之间的两接口引脚,信号是以两线之间的“差 分”电压形式出现。在隐性状态,VCNA-H和VCAN-L被固定在平均电压电平附近,Vdiff近似于0。显性位以大于最小阀值的差分电压表示。CAN 总线的通信距离最远可达10km(位速率为5 kbps) ,通信速率最快可达 1Mbps(此时最长通信距离为40m)。

架构

CAN由CAN控制器和CAN收发器还要CAN总线组成
CAN整体架构

CAN收发器:
CAN收发器

协议

CAN以帧的形式进行通信,被称为CAN帧。
CAN的通信帧分成五种,分别为:

  1. 数据帧
  2. 远程帧
  3. 错误帧
  4. 过载帧
  5. 帧间隔

一个标准的CAN帧分为7段:

  1. 帧起始
  2. 仲裁段
  3. 控制端
  4. 数据段
  5. CRC段
  6. ACK段
  7. 帧结束
    帧结构
  • 帧起始

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

  • 帧结束

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

  • 仲裁段

帧ID越小,优先级越高。由于数据帧的RTR位为显性电平,远程帧为隐性电平,所以帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高。
仲裁段

只要总线空闲,总线上任何节点都可以发送报文,如果有两个或两个以上的节点开始传送报文,那么就会存在总线访问冲突的可能。但是CAN使用了标识符的逐位仲裁方法可以解决这个问题。

CAN总线控制器在发送数据的同时监控总线电平,如果电平不同,则停止发送并做其他处理。如果该位位于仲裁段,则退出总线竞争;如果位于其他段,则产生错误事件。
仲裁

  • 数据段

一个数据帧传输的数据量为0~8个字节,这种短帧结构使得CAN-bus实时性很高。数据量小,发送和接收时间短,实时性高,被干扰的概率小,抗干扰能力强。

数据段

  • 控制段

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

  • CRC段

CAN-bus使用CRC校验进行数据检错,CRC校验值存放于CRC段。 CRC校验段由15位CRC值和1位CRC界定符构成如图28所示
CRC段

  • ACK段

当一个接收节点接收的帧起始到CRC段之间的内容没发生错误时,它将在ACK段发送一个显性电平如图29所示。ACK段

CAN-FD

CAN FD具有四个主要优点:

  • 增加数据长度

CAN FD 每个数据帧最多支持64个数据字节,而Classic CAN 支持8个数据字节。这减少了协议开销,并提高了协议效率。

  • 速度提升

CAN FD支持双比特率:经典CAN中给定的标称(仲裁)比特率限制为1 Mbit / s,而数据比特率则取决于网络拓扑和收发器。实际上,可以实现高达5 Mbit / s的数据比特率。

  • 改进的可靠性

CAN FD使用改进的循环冗余校验(CRC)和“受保护的填充位计数器”,从而降低了未被检测到的错误的风险。例如,这对于车辆和工业自动化等对安全至关重要的应用至关重要。

  • 平滑过渡

在某些条件下,可以混合使用CAN FD和经典CAN ECU。这样就可以逐步引入CAN FD节点,从而大大降低了OEM的成本和复杂性。

实际上,与经典CAN 相比,CAN FD可以将网络带宽提高3到8 倍,从而为数据增长提供了一种简单的解决方案。

CAN FD总线与CAN总线的区别主要在以下两个方面:
  1. 可变速率:CAN FD采用了两种位速率。从控制场中的BRS位到ACK场之前(含CRC分界符)为可变速率,其余部分为原CAN总线用的速率。两种速率各有一套位时间定义寄存器,它们除了采用不同的位时间单位TQ外,位时间各段的分配比例也可不同;
  2. 新的数据场长度:CAN FD对数据场的长度作了很大的扩充,DLC最大支持64个字节,在DLC小于等于8时与原CAN总线是一样的,大于8时有一个非线性的增长,所以最大的数据场长度可达64字节。
CAN-FD

标签:协议,总线,电平,CRC,FD,数据,节点
来源: https://blog.csdn.net/liuhandd/article/details/123627809

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有