文档版本:V2.0.0适配芯片:AURIX™ TC3xx 系列 MCU对应手册:MCMCAN V1.19.13 用户手册适用场景:经典 CAN/CAN FD 开发、TTCAN 时间触发通信、汽车级网关 / AUTOSAR 项目、高实时性工业控制第一章 模块概述与核心特性1.1 模块简介MCMCAN 是英飞凌 AURIX™ TC3xx 系列 MCU 内置的多通道 CAN 控制器模块,完全兼容 **ISO 11898-1(经典 CAN/CAN FD)与ISO 11898-4(TTCAN 时间触发 CAN)** 标准,专为汽车电子、高实时性工业控制场景设计,支持网关、分布式实时控制、功能安全等高阶需求。1.2 核心硬件特性特性项规格说明支持 CAN 节点数最多 4 个独立 CAN 节点(CAN0~CAN3),仅CAN0 节点支持 TTCAN 功能经典 CAN/CAN FD全功能支持,CAN FD 最高支持 8Mbps 数据相位波特率,支持比特率切换(BRS)发送资源最多 32 个专用 Tx 缓冲,支持 Tx FIFO / 队列模式,ID 优先级硬件调度接收资源最多 64 个专用 Rx 缓冲,2 路独立 Rx FIFO(每路最多 64 个元素)滤波能力128 个标准 ID 滤波器、64 个扩展 ID 滤波器,支持范围滤波、双 ID 滤波、掩码滤波事件管理32 级深度 Tx 事件 FIFO,记录发送报文的 ID、时间戳、状态信息时间触发完整 TTCAN Level 0/1/2 支持,64 个触发元素,硬件级调度时序控制功能安全内置 RAM 看门狗、错误计数器、总线监控模式,满足 ISO 26262 功能安全需求1.3 文档适用范围本文档覆盖 MCMCAN 模块全功能开发指导,包括:经典 CAN/CAN FD 基础通信开发发送 / 接收路径深度配置与管理中断、FIFO、报文滤波高阶用法TTCAN 时间触发 CAN 全流程开发常见故障排查与工程最佳实践第二章 核心架构与内存资源2.1 模块整体架构MCMCAN 模块分为三层核心架构,自上而下分别为:总线接口层:对接 MCU 内核总线,提供寄存器访问、Message RAM 读写、中断信号路由CAN 内核层:实现 CAN 协议链路层,包括位时序处理、仲裁、CRC 校验、错误管理消息内存层(Message RAM):存储所有报文缓冲、滤波器、FIFO、TTCAN 触发表,是模块配置与数据交互的核心核心注意:MCMCAN 对 Message RAM 的寻址以32 位字为单位,而非单字节,配置起始地址时需忽略地址低 2 位。2.2 Message RAM 内存布局内存段最大容量配置寄存器核心作用标准 ID 滤波器表128 个元素SIDFC11 位标准 CAN ID 滤波配置扩展 ID 滤波器表64 个元素XIDFC29 位扩展 CAN ID 滤波配置Rx FIFO 064 个元素RXFOC接收 FIFO 0,存储匹配滤波的接收报文Rx FIFO 164 个元素RXF1C接收 FIFO 1,独立于 FIFO 0,可做优先级分流专用 Rx 缓冲64 个元素RXBC专用接收缓冲,一对一匹配指定 ID 报文Tx 事件 FIFO32 个元素TXEFC记录已发送报文的 ID、时间戳、发送结果Tx 缓冲区32 个元素TXBC分为专用 Tx 缓冲、Tx FIFO / 队列,存储待发送报文TTCAN 触发内存64 个元素TTTMCTTCAN 调度触发表,仅 CAN0 节点可用2.3 关键资源约束Tx 模式互斥:TTCAN 模式下,禁用 Tx FIFO / 队列功能,仅可使用专用 Tx 缓冲;CAN FD 约束:数据相位波特率(DBTP 配置)必须≥仲裁相位波特率(NBTP 配置);FIFO 模式:Rx FIFO 支持阻塞 / 覆盖模式,Tx FIFO / 队列通过 TFQM 位切换,队列模式下按 ID 优先级调度,FIFO 模式下按入队顺序调度;滤波优先级:硬件滤波按滤波器表顺序执行,匹配到第一个有效滤波器后立即停止,高优先级滤波器需放在表前列。第三章 基础功能开发:经典 CAN/CAN FD本章为 MCMCAN 最核心的基础应用,覆盖 90% 以上的常规 CAN 通信开发场景,所有操作均基于 TC3xx 单个 CAN 节点(CAN0~CAN3)。3.1 模块初始化核心流程MCMCAN 的初始化有严格的硬件时序要求,必须按以下步骤执行,否则配置无法生效:步骤 1:使能模块时钟与访问权限配置 MCR 寄存器,使能对应 CAN 节点的同步 / 异步时钟源;配置 ACCEN 系列寄存器,开放内核对 MCMCAN 模块的写访问权限;等待至少 10 个内核时钟周期,确保时钟稳定后再访问内核寄存器。步骤 2:进入初始化模式置位 CCCR 寄存器的 INIT 位,使 CAN 节点进入初始化模式,此时节点脱离 CAN 总线;等待硬件回读 CCCR.INIT=1,确认进入初始化模式;置位 CCCR 寄存器的 CCE 位,开放配置权限,此时才能修改位时序、缓冲、滤波等核心配置。步骤 3:配置 CAN 协议核心参数经典 CAN/CAN FD 模式选择:仅经典 CAN:清零 CCCR.FDOE 位,禁用 CAN FD 功能;使能 CAN FD:置位 CCCR.FDOE 位,如需比特率切换,同步置位 CCCR.BRSE 位。配置位时序寄存器:仲裁相位:配置 NBTP 寄存器,设置波特率预分频、同步跳转宽度、时间段 1/2;数据相位(CAN FD):配置 DBTP 寄存器,设置数据段波特率,同步配置 TDCR 寄存器开启发送延迟补偿(TDC),适配高速 CAN FD。配置全局滤波规则:通过 GFC 寄存器,设置未匹配滤波报文的默认处理规则(接收至 FIFO 0/1、拒绝),以及远程帧的过滤规则。步骤 4:配置 Message RAM 内存分区按 2.2 节的内存布局,依次配置各内存段的起始地址与元素数量,必须按顺序配置,避免内存地址重叠:配置标准 / 扩展 ID 滤波器表的起始地址与深度;配置 Rx FIFO 0/1 的起始地址、深度、水印、工作模式;配置专用 Rx 缓冲的起始地址;配置 Tx 事件 FIFO 的起始地址与深度;配置 Tx 缓冲区分区:专用 Tx 缓冲数量、Tx FIFO / 队列深度与模式。步骤 5:配置中断与回调配置 IE 寄存器,使能需要的中断源(如接收中断、发送完成中断、错误中断);配置 GRINT1/GRINT2 寄存器,将中断源路由到 MCU 对应的中断向量;实现中断服务函数,处理对应中断事件。步骤 6:退出初始化模式,启动通信清零 CCCR 寄存器的 CCE 位,锁定配置权限;清零 CCCR 寄存器的 INIT 位,退出初始化模式;等待硬件完成总线同步,此时节点进入总线正常工作状态,可进行报文收发。关键警告:INIT 位的修改存在时钟域同步延迟,每次修改后必须回读寄存器确认值已生效,再执行下一步操作,否则会导致配置丢失。3.2 位时序配置核心公式位时序是 CAN 通信稳定的核心,TC3xx MCMCAN 的位时序计算遵循以下规则:3.2.1 仲裁相位(经典 CAN/CAN FD 仲裁段)