CAN控制器和收发器

本文详细介绍了CAN总线系统中的两个关键组成部分:CAN控制器与CAN收发器。CAN控制器负责消息的编码与解码,而CAN收发器则将数据转换为能够在总线上传输的信号。文章还探讨了两种设备的不同类型及工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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核心模块从发送缓冲器读CAN报文。

验收滤波器

验收滤波器可以根据用户的编程设置,过滤掉无须接收的报文。

接收FIFO

接收FIFO是验收滤波器和主控制器之间的接口,用于存储从CAN 总线上接收的所有报文。

工作模式

CAN控制器可以有两种工作模式(BasicCAN和PeliCAN)。BasicCAN仅支持标准模式,PeliCAN支持CAN2.0B的标准模式和扩展模式

二、CAN收发器

CAN收发器是CAN控制器和物理总线之间的接口,将CAN控制器的逻辑电平转换为CAN总线的差分电平,在两条有差分电压的总线电缆上传输数据。

CAN收发器的类型

汽车车载网络CAN收发器也分为独立型与组合型两大类。由于前者应用灵活,可以与多种CAN控制器进行连接使用,故应用最广泛。后者通常与CAN控制器组合在一起,形成一个具有CAN收发功能的CAN控制器组件。

CAN控制器和CAN收发器区别

CAN控制器用于实现CAN总线的协议底层以及数据链路层,用于生成CAN帧并以二进制码流的方式发送,在此过程中进行位填充、添加CRC校验、应答检测等操作;将接收到的二进制码流进行解析并接收,在此过程中进行收发比对、去位填充、执行CRC校验等操作。此外还需要进行冲突判断、错误处理等诸多任务。

CAN收发器(有时也称为驱动器)是CAN总线的物理层,用于将二进制码流转换为差分信号发送,将差分信号转换为二进制码流接收。

在CAN总线中二者都是必须的。

  1. CAN协议只有两层:物理层和数据链路层。CAN收发器(也就是协议控制器)的作用就是完成数据链路层组帧和生成物理层比特流,驱动器的作用是吧控制器输出的高低逻辑电平编程CAN总线的差分式电平。协议相关的内容基本都由协议控制器完成,单片机软件上只要配置需要的通信速率、帧ID以及发送的数据内容,然后告知收发器,让它发送就OK。不需要从软件上编写协议。

  2. 单片机内部的CAN控制器和外接CAN控制器功能相同,省去了再加外围硬件。单片机对帧格式不用特别关心,但是发送之前至少需要告诉协议控制器你所要发送的数据内容以及帧的ID。

博客