本文使用 Zhihu On VSCode 创作并发布
一、CAN控制器
CAN控制器用于将欲收发的消息(报文),转换为符合CAN规范的CAN帧,通过CAN收发器,在CAN-bus上交换信息。
CAN控制器分类
CAN控制器芯片分为两类:
- 独立的控制器芯片,如SJA1000
- CAN控制器集成在微控制器中,如NXP半导体公司的Cortex-M0内核LPC11Cxx系列微控制器、LPC2000系列32位ARM微控制器。
CAN控制器工作原理
- 接口管理逻辑
接口管理逻辑用于连接外部主控制器,解释来自主控制器的命令,控制CAN控制器寄存器的寻址,并向主控制器提供中断信息和状态信息。 - CAN核心模块
收到一个报文时,CAN核心模块根据CAN规范将串行位流转换成用于接收的并行数据,发送一个报文时则相反。 - 发送缓冲器
发送缓冲器用于存储一个完整的报文,当CAN控制器发送初始化时,接口管理逻辑会使CAN核心模块从发送缓冲器读CAN报文。 - 验收滤波器
验收滤波器可以根据用户的编程设置,过滤掉无须接收的报文。 - 接收FIFO
接收FIFO是验收滤波器和主控制器之间的接口,用于存储从CAN 总线上接收的所有报文。 - 工作模式
CAN控制器可以有两种工作模式(BasicCAN和PeliCAN)。BasicCAN仅支持标准模式,PeliCAN支持CAN2.0B的标准模式和扩展模式
二、CAN收发器
CAN收发器是CAN控制器和物理总线之间的接口,将CAN控制器的逻辑电平转换为CAN总线的差分电平,在两条有差分电压的总线电缆上传输数据。
CAN收发器的类型
汽车车载网络CAN收发器也分为独立型与组合型两大类。由于前者应用灵活,可以与多种CAN控制器进行连接使用,故应用最广泛。后者通常与CAN控制器组合在一起,形成一个具有CAN收发功能的CAN控制器组件。