硬件学习笔记--50 CAN相关基础知识介绍
1、CAN应用介绍
CAN(Controller Area Network,控制器局域网)是一种广泛应用于汽车、工业控制等领域的串行通信协议。它具有高可靠性、实时性和抗干扰能力,其核心功能包括多主通信、错误处理、低功耗模式和网络管理等,同时通过CAN FD、CANopen等扩展协议满足更高需求。
2、CAN控制器与CAN收发器差异
CAN控制器和普通CAN芯片(通常指CAN收发器)在功能和用途上有显著差异,有些CAN控制器内部集成CAN收发器,两者之间的差异主要体现在以下几个方面:
2.1功能定位
-
CAN控制器:
-
负责处理CAN协议的逻辑部分,包括数据帧的封装、解析、错误检测、仲裁、位时序控制等。
-
将微处理器(如MCU)的数据转换为符合CAN协议的帧格式,并通过CAN收发器发送到总线上。
-
接收来自CAN收发器的差分信号,并将其转换为微处理器可处理的逻辑信号2810。
-
-
CAN收发器:
-
主要负责物理层的信号转换,将CAN控制器的逻辑电平信号(如TTL电平)转换为差分信号(CAN_H和CAN_L),或反之。
-
不涉及协议处理,仅作为信号的中介,确保信号在总线上的可靠传输1314。
-
2.2 硬件结构
-
CAN控制器:
-
通常集成在微处理器中(如STM32的CAN外设),或作为独立芯片(如SJA1000)。
-
包含复杂的逻辑电路,支持CAN协议的帧格式、波特率配置、错误处理等功能310。
-
-
CAN收发器:
-
通常是独立的芯片(如TJA1050、SN65HVD230),结构相对简单。
-
主要包含差分信号驱动器和接收器,用于电平转换和信号隔离1314。
-
2.3 应用场景
-
CAN控制器:
-
用于需要处理CAN协议的应用场景,如汽车电子、工业控制、医疗设备等。
-
必须与微处理器配合使用,完成数据的封装、解析和逻辑控制28。
-
-
CAN收发器:
-
用于连接CAN控制器和物理总线,确保信号在长距离传输中的抗干扰能力。
-
适用于任何需要CAN总线通信的系统,但本身不参与协议处理1314。
-
2.4 性能特点
-
CAN控制器:
-
支持多种CAN协议版本(如CAN 2.0A、CAN 2.0B)。
-
具有强大的错误检测和处理能力,支持自动重发、仲裁、位同步等功能310。
-
-
CAN收发器:
-
主要关注信号的抗干扰能力和传输距离。
-
支持高速(如1Mbps)和低速(如125kbps)通信,适用于不同的总线长度和环境条件1314。
-
2.5 集成方式
-
CAN控制器:
-
可以是独立的芯片(如SJA1000),也可以集成在微处理器中(如STM32的CAN外设)。
-
独立控制器需要外部微处理器控制,而集成控制器则直接由微处理器管理310。
-
-
CAN收发器:
-
通常是独立芯片,与CAN控制器通过TX、RX引脚连接。
-
不依赖微处理器,仅作为信号转换的中介1314。
-
2.6 总结
CAN控制器和CAN收发器在CAN总线系统中扮演不同的角色:
-
CAN控制器负责协议处理和数据管理,是系统的“大脑”。
-
CAN收发器负责信号转换和物理传输,是系统的“桥梁”。
两者通常需要配合使用,才能实现完整的CAN通信功能
3、典型应用电路
3.1系统框图
3.2 CAN典型应用原理
以为Microchip芯片MCP2515(CAN控制器)为例,其参考原理如下,配合MCP2561(CAN收发器),和MCU连接的主要有SPI接口,复位接口以及INT、RXB0、RXB1。
4、CAN应用注意事项
4.1 硬件设计
-
终端电阻:总线两端需加120Ω终端电阻,匹配阻抗,减少信号反射。
-
线缆选择:使用双绞线,降低电磁干扰(EMI)。
-
电源隔离:为CAN收发器提供独立电源,避免干扰。
-
接地处理:确保所有节点共地,防止地电位差引入噪声。
4.2 软件设计
-
错误处理:实现完善的错误检测与恢复机制,如自动重发。
-
帧优先级:根据ID设置消息优先级,确保关键信息及时传输。
-
数据长度:CAN帧数据域最多8字节,需合理设计数据格式。
-
波特率设置:所有节点波特率必须一致,常见速率有125kbps、250kbps、500kbps和1Mbps。
4.3 网络拓扑
-
总线长度:总线长度影响最大波特率,1Mbps时建议不超过40米。
-
节点数量:通常支持最多110个节点,过多可能影响通信质量。
-
布线规范:避免星形或环形拓扑,采用线性总线结构。
4.4 电磁兼容性(EMC)
-
屏蔽措施:在高干扰环境中使用屏蔽双绞线,并正确接地。
-
滤波电路:在电源和信号线上增加滤波电路,减少噪声。
4.5 调试与测试
-
总线监控:使用CAN分析仪监控总线状态,排查问题。
-
信号质量:定期检查信号波形,确保无畸变或干扰。
-
节点测试:单独测试每个节点,确保其正常工作。
4.6 环境适应性
-
温度范围:选择适合工作温度的元器件,尤其是汽车和工业环境。
-
防护措施:在恶劣环境中,增加防护措施,如防水、防尘。
4.7 协议兼容性
-
标准帧与扩展帧:确保所有节点兼容标准帧(11位ID)和扩展帧(29位ID)。
-
高层协议:如使用CANopen或J1939等高层协议,确保协议栈正确实现。
4.8 电源管理
-
低功耗设计:在电池供电系统中,优化电源管理,降低功耗。
-
电源稳定性:确保电源电压稳定,避免波动影响通信。