2. XMC系列CAN模块:XMC4000/1000系列CAN节点(NODE)架构、CAN内核(CCAN)介绍

XMC4000与XMC1000系列微控制器集成了英飞凌专有的CCAN(Core CAN)内核,该内核基于CAN 2.0B规范,支持高达1 Mbit/s的通信速率。与传统的独立CAN控制器不同,CCAN采用模块化节点(NODE)架构,每个节点可独立配置为CAN或CAN FD(部分型号)通信,极大提升了多通道应用的灵活性。

2.1 CCAN内核架构概览

CCAN内核由多个功能单元组成,核心包括:

  • CAN协议控制器(CPC):负责CAN帧的编码/解码、位时序同步、CRC校验及错误检测。
  • 消息对象(Message Object, MO):每个节点拥有多个消息对象(通常为32或64个),用于存储接收/发送的CAN帧标识符、数据及控制位。
  • 消息处理单元(Message Handler):自动管理消息对象的优先级仲裁、接收过滤及发送请求。
  • 寄存器接口:通过AHB/APB总线与CPU交互,提供配置、状态及中断控制。
关键特性: CCAN支持自动重发(在仲裁丢失或错误帧后自动重试)、接收FIFO(缓解CPU中断压力)以及网关模式(实现节点间数据转发)。
CCAN内核架构图 CCAN内核架构图 CPU / AHB总线 寄存器接口 消息处理单元 优先级仲裁 / 过滤 消息对象阵列 (MO) MO0 | MO1 | ... | MO31 ID + 数据 + 控制位 接收FIFO / 发送缓冲 CAN协议控制器 位时序 / CRC / 错误检测 外部CAN收发器 自动重发:仲裁丢失/错误后 自动重试,无需CPU干预

2.2 CAN节点(NODE)架构

每个CAN节点(NODE)是一个独立的CAN通信实体,包含完整的协议控制器、消息对象及配置寄存器。XMC系列根据型号不同,集成1~4个CAN节点。节点架构的核心要素如下:

节点组件 功能描述 配置选项
位时序逻辑(BTL) 同步CAN总线位流,生成采样点 预分频器、时间段1/2、同步跳转宽度
接收/发送移位寄存器 串行/并行转换,逐位收发 自动填充CRC与填充位
错误管理单元(EMU) 维护发送/接收错误计数器(TEC/REC) 错误警告、被动、总线关闭阈值
消息对象(MO) 存储CAN帧ID、数据、控制位 每个节点32/64个MO,可配置为发送或接收
中断控制 产生接收、发送、错误状态中断 可屏蔽、组合中断线
设计提示: 在XMC4000系列中,每个CAN节点可独立选择时钟源(外设时钟或专用CAN时钟),实现不同波特率的多速率网络。

2.3 消息对象(MO)与接收过滤

消息对象是CCAN的核心数据容器。每个MO包含:

  • 标识符(ID):11位标准ID或29位扩展ID。
  • 数据域:最多8字节数据(CAN FD支持64字节)。
  • 控制位:方向(发送/接收)、帧类型(数据/远程)、中断使能、自动重发等。
  • 过滤掩码:支持位屏蔽过滤,实现多ID接收。

接收过滤流程:

  1. CAN总线上的帧被协议控制器接收。
  2. 消息处理单元将帧ID与每个MO的ID+掩码进行匹配。
  3. 匹配成功的MO存储数据并置位接收标志。
  4. 若多个MO匹配,优先级最高的MO(编号最小)获得数据。
消息对象接收过滤流程 消息对象接收过滤流程 ① CAN帧到达 ② 协议控制器解码 ③ 消息处理匹配 匹配成功? 是 否 ④ 存储到MO ⑤ 丢弃帧

2.4 错误管理单元(EMU)

每个CAN节点内置独立的错误管理单元,遵循CAN 2.0B协议规范。EMU维护两个计数器:

  • 发送错误计数器(TEC):每次发送错误加8,成功发送减1。
  • 接收错误计数器(REC):每次接收错误加1~8,成功接收减1。

根据计数器值,节点状态机在以下三种状态间切换:

状态 TEC/REC条件 节点行为
错误主动 TEC < 128 且 REC < 128 正常通信,检测到错误时发送主动错误帧(6个显性位)
错误被动 TEC ≥ 128 或 REC ≥ 128 只能发送被动错误帧(6个隐性位),发送前等待8个隐性位
总线关闭 TEC > 255 完全脱离总线,不参与任何通信,需CPU复位恢复
故障排查要点: 在XMC系列中,错误状态可通过寄存器ECR(Error Counter Register)实时读取。当节点进入错误被动或总线关闭时,建议记录TEC/REC值及错误码寄存器(ECR),以定位错误源(如位错误、填充错误、CRC错误等)。

2.5 XMC4000与XMC1000系列CAN模块差异

虽然两者均基于CCAN内核,但在集成度和功能上存在差异:

特性 XMC4000系列 XMC1000系列
最大CAN节点数 4(如XMC4800) 1(如XMC1300)
消息对象数/节点 64 32
CAN FD支持 部分型号(如XMC4800) 不支持
时钟源 可独立选择PCLK或专用CAN时钟 固定使用外设时钟
中断线 每个节点独立中断线 共享中断线
选型建议: 对于需要多通道CAN通信或CAN FD的应用(如工业网关、机器人控制),推荐XMC4000系列;对于单节点、成本敏感的传感器节点,XMC1000系列是更优选择。