自学内容网 自学内容网

【跟着CHATGPT学习硬件外设 | 06】CAN

🚀 1. 概念揭秘

1.1 快速入门

CAN,全称为控制器局域网(Controller Area Network),是一种用于各种设备间通信的网络协议,最初由博世公司在1986年为汽车电子系统设计。CAN的主要用途是在车辆中实现各种电子控制单元(ECU)之间的通信,如引擎控制单元、刹车控制器和空调控制器等。

CAN有两种工作模式:标准模式和扩展模式。标准模式的数据帧有11位的标识符,而扩展模式的数据帧有29位的标识符,这意味着扩展模式能处理更多的信息。在标准模式下,CAN协议可以处理的消息有2048种,而在扩展模式下,这个数字可以达到5亿多种。

在CAN协议中,每个设备都可以在总线上发送和接收数据,但只有在总线空闲时才能开始发送数据。这意味着如果两个设备同时开始发送数据,那么具有较低标识符的设备将优先发送,而具有较高标识符的设备将等待下一次总线空闲时再发送。这种机制是CAN协议能在高噪声环境中可靠工作的关键。

在这里插入图片描述

1.2 关键精华

多主体通信: CAN允许网络上的多个设备同时通信,无需中心控制器。

非破坏性仲裁: 使用消息ID进行仲裁,保证了高优先级消息的传输,而不会被低优先级消息干扰。

差分信号传输: 提高抗电磁干扰能力,保证数据传输的可靠性。

广播寻址与过滤机制:
在这里插入图片描述

强大的错误检测: 包括循环冗余检查、帧检查等,确保数据的准确无误。

故障封闭:当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。

广泛应用: 在汽车、工业自动化等领域有着广泛的应用,是一个成熟且可靠的通信协议。

🌟 2. 秒懂案例

2.1 生活类比

CAN协议就像是一个高效的邮递系统。每个设备就像是一个邮局,它们可以发送和接收邮件(数据)。邮件的地址就相当于标识符,邮递员(总线)负责将邮件从一个邮局传递到另一个邮局。如果两个邮局同时开始发送邮件,那么地址(标识符)较小的邮局的邮件将优先被传递,这就像是邮递员按照地址的顺序进行投递。邮递系统还有一个错误处理机制,如果邮件在传递过程中出现问题,邮递员会尝试纠正错误,确保邮件准确无误地送达。

2.2 实战演练

在现代汽车中,CAN协议的应用非常广泛。例如,当驾驶员踩下刹车踏板时,刹车踏板传感器会发送一个信号到刹车控制器。这个信号会通过CAN总线传递,刹车控制器接收到信号后,会控制刹车系统进行刹车。同时,刹车控制器还会发送一个信号到仪表盘,让刹车灯亮起。这个过程中,所有的信号传递都是通过CAN协议完成的,可以看出,CAN协议在汽车中起着至关重要的作用。

🔍 3. 原理与工作流程探秘

在这里插入图片描述

3.1 消息帧

构成: CAN消息由多个部分组成,包括起始位、帧ID(标识符,决定消息的优先级)、控制字段(指示数据长度)、数据字段(最多8字节的数据)、CRC(循环冗余检查)、确认位和结束位。
在这里插入图片描述

帧类型: 包括数据帧(用于传输数据)、远程帧(请求数据)、错误帧(报告错误)和过载帧(延迟下一帧的传输)。
在这里插入图片描述

在这里插入图片描述
SRR:扩展帧固定为1;
IDE:扩展帧为1,数据帧为0;

3.2 传输过程

差分信号: CAN使用两条线传输差分信号,提高抗干扰性。当一条线为高电平时,另一条为低电平,反之亦然。
非破坏性仲裁: 多个节点尝试同时发送消息时,通过比较ID的每一位来决定优先级,ID值较低的消息优先级更高。发送过程中,如果检测到更高优先级的消息,节点会停止发送且进入接收状态,等待下一个发送机会。

在这里插入图片描述
在这里插入图片描述

3.3 错误检测

机制:CAN协议包含多种错误检测机制,如帧检查、循环冗余检查(CRC)、确认位检查等,确保数据传输的准确性和可靠性。
错误处理:发现错误后,节点会发送错误帧,引起所有节点重新发送受影响的帧,从而保证通信的正确性。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.4 位填充

规则:为了防止错误同步,CAN协议规定如果在数据传输过程中连续出现五个相同的位,则自动插入一个相反的位。
在这里插入图片描述在这里插入图片描述

3.5 确认机制

过程:所有接收节点都会对正确接收的帧进行确认。发送节点在传输完数据帧后,会留出一个确认位。如果接收节点成功接收到帧,它会在这个位置发送一个低电平位(主动发送0),作为确认。
在这里插入图片描述

视觉辅助

硬件框图

CAN硬件框图主要包括以下部分:

  • 两个或更多的节点,每个节点都有一个CAN控制器和一个CAN收发器;
  • 一个总线,所有的节点都连接到这个总线上;
  • 每个节点都有一个发送缓冲区和一个接收缓冲区,用于存储待发送和已接收的帧。

操作手册

使用CAN接口的过程中,首先需要确保硬件连接正确。在CAN系统之间通过CAN总线(两条线路,CANH和CANL)进行连接。

在CAN接口的配置中,最重要的是设置正确的波特率。CAN通信的波特率通常在10Kbps到1Mbps之间,最常用的是500Kbps和250Kbps。波特率设置的不同,将会影响CAN接口的通信距离和通信速度。

在CAN通信中,信息的发送和接收都是通过CAN帧来实现的。CAN帧主要由标识符(ID)、控制字段、数据字段和校验字段组成。在使用CAN接口时,需要按照CAN协议的规定,正确地构造和解析CAN帧。

硬件设计注意事项

在设计CAN电路时,需要注意以下几点:

  1. 电源和地线的设计:电源和地线应尽可能短并且宽,以减小电阻和电感。电源线和地线应尽可能平行,以减小地线阻抗。

  2. 终端电阻:CAN总线的两端都需要连接120欧姆的终端电阻,以防止信号反射。如果CAN总线的长度超过40米,可能需要增加终端电阻。

  3. 抗干扰设计:CAN总线应尽可能远离高频和强电磁干扰源。如果必须经过干扰区,应使用屏蔽线并且做好接地。

  4. PCB布线:CANH和CANL应尽可能靠近并且平行,以减小电磁干扰。

配置攻略

准备阶段
  • 工具与材料清单

    • CAN控制器
    • CAN收发器
    • 120欧姆终端电阻
    • CAN总线(两条线,CANH和CANL)
  • 环境设置

    • 在电脑上安装CAN分析软件,如CANoe、PCAN-View等。
配置步骤
  • 接口连接

    • 将CAN控制器的CANH和CANL接口,分别连接到CAN总线的CANH和CANL上。
    • 在CAN总线的两端连接120欧姆的终端电阻。
  • 参数设置

    • 设置CAN控制器的波特率,通常设置为500Kbps或250Kbps。
    • 设置CAN控制器的工作模式,通常设置为正常模式。
    • 配置采样点和同步跳跃宽度:根据您的波特率和网络条件设置采样点和SJW。
    • 配置滤波器和掩码:如果您的CAN控制器支持消息过滤,请配置滤波器和掩码以减少不必要的数据处理。
验证与测试
  • 功能测试

    • 通过CAN分析软件,发送一帧CAN数据,查看是否能在CAN总线上接收到这帧数据。
    • 通过CAN分析软件,查看是否能在CAN总线上接收到其他设备发送的CAN数据。
  • 性能评估

    • 通过CAN分析软件,连续发送多帧CAN数据,查看数据的丢失率和错误率。
    • 通过CAN分析软件,测试CAN总线的最大通信距离。
高级优化
  • 通过调整CAN控制器的滤波器设置,可以过滤掉不需要的CAN数据,提高数据处理效率。

  • 通过调整CAN控制器的发送缓冲区和接收缓冲区的大小,可以优化数据的传输效率。

故障排查
  • 如果CAN总线上无法接收到数据,首先检查硬件连接是否正确,然后检查CAN控制器的波特率和工作模式是否设置正确。

  • 如果CAN总线上的数据有误,首先检查发送端和接收端的波特率是否一致,然后检查CAN帧的构造是否符合CAN协议的规定。

实用工具
  • CANoe:强大的CAN总线分析和模拟工具。
  • PCAN-View:简单易用的CAN总线测试和分析工具。

🌍 应用探索

场景导览

CAN(控制器局域网)的主要应用场景在于汽车行业,用于车辆的各种系统之间的通信,如发动机控制系统、刹车系统、空调控制系统等。此外,CAN也被广泛应用于工业自动化、医疗设备、航空航天、电力系统等领域,以实现设备之间的高效通信。

深入案例

在汽车行业中,CAN的应用尤为重要。在汽车的各种系统中,如发动机控制系统、刹车系统、空调控制系统等,都需要进行大量的信息交换。这些信息包括但不限于传感器的数据、控制命令、状态信息等。通过CAN,这些信息可以通过一个公共的总线进行传输,而不需要单独的连接线。这极大地简化了汽车的电气架构,减少了设计的复杂性和制造的成本。同时,CAN也提供了一种可靠的通信机制,能够保证信息的准确传输,从而提高汽车的安全性和可靠性。

总线拓扑

在这里插入图片描述

✨ 优势与挑战

亮点回顾

CAN的主要优点包括:

  • 高效的通信:通过使用公共的总线,CAN可以实现设备之间的高效通信。
  • 简化设计:通过使用CAN,可以减少单独的连接线,简化电气架构的设计。
  • 提高安全性:CAN的通信机制可以保证信息的准确传输,从而提高设备的安全性和可靠性。

挑战剖析

尽管CAN有许多优点,但在使用过程中也可能面临一些挑战,主要包括:

  • 限制的数据速率:由于CAN是基于总线的通信协议,因此其数据速率受到总线的带宽限制。
  • 延迟问题:在大量设备同时使用CAN进行通信时,可能会出现延迟问题。
  • 需要专门的硬件支持:使用CAN需要具备CAN控制器和CAN接口的硬件,这可能增加了设备的成本和复杂性。

参考资料

1. Vector中国官方自制总线协议介绍合集


原文地址:https://blog.csdn.net/RobotFutures/article/details/137153229

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!