Controller Area Network (CAN)
8 Aug 2024
Read time: 1 minute(s)
CAN 是一种广泛应用于汽车控制系统和一般工业环境中的区域网络总线。作为一款多主机、多广播的通信协议,CAN 以其高可靠性和卓越的错误检测能力而著称。
特性说明
- 支持 CAN2.0A 和 CAN2.0B 协议
- 支持 11 位标准格式标识符和 29 位扩展格式标识符
- 可编程通信速率最高可达 1 Mbps
- 支持多种操作模式:正常模式、只听模式、自测模式、休眠模式、复位模式
- 支持接收过滤器,支持两种过滤模式
- 64 bytes 缓冲器
- 支持错误检测与处理:错误计数、错误报警阈值可配置、错误捕获、仲裁丢失捕获
原理框图
CAN 控制器原理如下:
- 位时序逻辑 BTL:负责同步位时序,确保数据传输的稳定性,以预先配置的波特率发送和接受报文。
- 位流处理器 BSP:负责对发送数据进行位填充、附加 CRC 等处理,并为位时序逻辑模块生成位流。负责对接收的位流进行去填充、验证 CRC 等处理。负责检测总线上的错误并将错误报告给错误管理逻辑。
- 接收过滤器:是一个可编程的报文过滤单元,允许控制器根据报文的标识符接收或拒绝该报文,可以过滤掉总线发送的与节点无关的消息,使节点效率提高。
- 缓冲 FIFO:大小为 64 bytes,负责存储通过接收过滤器的报文。FIFO 中的第一条报文将被映射到 13 bytes 的接收缓冲寄存器中可被 CPU 访问,直到该报文被清除,空间被释放。随后,接收缓冲寄存器将继续映射 FIFO 中的下一条报文。
- 错误管理逻辑 EML:负责更新发送错误计数 TEC 和接收错误计数 REC 的数值,记录错误类型、错误位置,更新控制器错误状态,确保 BSP 模块发送正确的错误标志。还负责记录报文仲裁丢失时的 bit 位置。