Zynq-7000系列CAN控制器简介
扫描二维码
随时随地手机看文章
CAN控制器介绍
can控制器是CAN局域网控制器的简称,为解决现代汽车中众多测量控制部件之间的数据交换而开发的一种串行数据通信总线。
本文介绍 CAN 控制器的架构和特性以及设计中各种寄存器的功能,PS 中有两个几乎相同的 CAN 控制器,它们可以独立操作。
CAN控制器特征
CAN 控制器功能总结如下:
-
与 ISO 11898 -1、CAN 2.0A 和 CAN 2.0B 标准兼容
-
标准(11 位标识符)和扩展(29 位标识符)帧
-
比特率高达 1 Mb/s
-
发送消息 FIFO (TxFIFO),深度为 64 个消息
-
通过一个高优先级发送缓冲区 (TxHPB) 进行发送优先级排序
-
TxFIFO 和 RxFIFO 的水印中断
-
在正常模式下发生错误或仲裁丢失时自动重传
-
接收消息 FIFO (RxFIFO),深度为 64 条消息
-
四个带有使能、掩码和 ID 的 Rx 接受滤波器
-
用于诊断应用的环回和监听模式
-
可屏蔽的错误和状态中断
-
接收消息的 16 位时间戳
-
可读的 Rx/Tx 错误计数器
CAN控制器系统视图
CAN 控制器的系统视点如图所示
CAN控制器框图
CAN 内核的高层架构如图所示
配置寄存器
CAN 控制器配置寄存器定义了配置寄存器,该模块允许通过 APB 接口对寄存器进行读写访问
发送和接收消息
单独的存储缓冲区用于通过 FIFO 结构发送 (TxFIFO) 和接收 (RxFIFO) 消息,每个缓冲区最多可存储 64 条消息,将消息写入 TxFIFO 后,通过 CAN 总线传输需要2*(Tx 驱动器延迟 + 传播延迟 + Rx 驱动器延迟)的总延迟。
Tx 高优先级缓冲器
每个控制器还有一个传输高优先级缓冲区 (TxHPB),为一个传输消息提供存储空间,写入此缓冲区的消息具有最大传输优先级,在当前传输完成后,它们立即排队等待传输,抢占 TxFIFO 中的任何消息。
验收过滤器
接收过滤器使用用户定义的接收掩码和 ID 寄存器对传入的消息进行排序,以确定是将消息存储在 RxFIFO 中,还是确认并丢弃它们。
通过验收过滤器的消息存储在 RxFIFO 中。
CAN控制器应用
can控制器应用广泛,最初是为汽车的监测、控制系统而设计的,现已在航天、电力、石化、冶金、纺织、造纸、仓储等多个行业得到了广泛采用。





