一、前言MPC5604B/C 为车载低功耗 CAN设计了两套硬件FlexCAN完整 CAN 控制器收发报文、滤波、中断、DMACAN Sampler低功耗唤醒采样器STANDBY 下也能监听 CAN 唤醒二、FlexCAN 详解1. FlexCAN 是什么Freescale/NXP 官方增强型 CAN 控制器兼容CAN 2.0A/2.0B。MPC5604B/C 最多带6 路 FlexCANCAN0~CAN5支持标准帧11 位 ID扩展帧29 位 ID64 个可配置报文缓冲区接收 FIFO波特率自由配置中断、DMA总线唤醒、总线错误检测支持 Listen Only、Loopback 自测2. 核心结构1 个 CAN 控制器1 个发送引擎1 个接收引擎64 个 Message Buffer1 个 Rx FIFO可开启ID 滤波硬件匹配3. 报文缓冲区 MBMessage Buffer总共64 个 MB可配置为发送 / 接收每个 MB 可独立配置 ID、掩码、数据长度接收时硬件自动匹配 ID无需 CPU 干预4. Rx FIFO 模式开启后多个 ID 匹配后自动进入 FIFO节省 CPU适合大量报文接收支持滤波 ID 列表5. 波特率计算公式波特率 Fsys / (PRESC 1) / (Tseg1 Tseg2 1)6. 典型引脚CAN0_TXPB0CAN0_RXPB1CAN1_TXPC10CAN1_RXPC117. 工作模式Normal 正常模式Listen Only 监听模式Loopback 内环自测Freeze 冻结模式调试8. 关键寄存器MCR主控制寄存器CTR定时 / 波特率IFLAGx中断标志IMASKx中断使能RXGMASK全局接收掩码三、CAN Sampler 低功耗唤醒采样器1. 为什么需要 CAN Sampler因为STANDBY 模式下 FlexCAN 是断电的无法监听总线。于是芯片设计了超小功耗硬件 Sampler专门用于检测 CAN 总线上的唤醒信号 → 叫醒 MCU。2. 工作原理只检测帧起始SOF不解析完整报文检测到有效 CAN 信号 → 触发唤醒功耗 nA 级3. 典型用途车辆休眠时CAN 总线唤醒 ECU钥匙 ON、车门打开、网络唤醒超低功耗待机4. 特点不占用 CPU不解析数据不产生中断只唤醒配合 WKPU 使用四、CAN 完整工作流程车载标准流程1. 配置引脚TX/RX2. 打开 PCTL 时钟3. 初始化 FlexCAN 波特率4. 配置 ID 滤波、MB、FIFO5. 启动 CAN6. 正常收发报文7. 进入 STANDBY8. CAN Sampler 监听总线9. 唤醒 → 重启 FlexCAN → 继续通信五、总结MPC5604B/C 最多6 路 FlexCAN64 个报文缓冲区 MB可收发可配置支持标准帧 扩展帧 Rx FIFO波特率由预分频 Tseg1 Tseg2决定CAN 必须先开MC_ME.PCTL时钟收发都用MBMessage BufferFlexCAN 在 STANDBY 下断电CAN Sampler 是低功耗唤醒专用Sampler 只检测 SOF不解析数据车载 ECU 必须同时使用FlexCAN CAN Sampler
MPC5604B/C CAN Sampler 和 FlexCAN 全解
发布时间:2026/5/25 7:58:26
一、前言MPC5604B/C 为车载低功耗 CAN设计了两套硬件FlexCAN完整 CAN 控制器收发报文、滤波、中断、DMACAN Sampler低功耗唤醒采样器STANDBY 下也能监听 CAN 唤醒二、FlexCAN 详解1. FlexCAN 是什么Freescale/NXP 官方增强型 CAN 控制器兼容CAN 2.0A/2.0B。MPC5604B/C 最多带6 路 FlexCANCAN0~CAN5支持标准帧11 位 ID扩展帧29 位 ID64 个可配置报文缓冲区接收 FIFO波特率自由配置中断、DMA总线唤醒、总线错误检测支持 Listen Only、Loopback 自测2. 核心结构1 个 CAN 控制器1 个发送引擎1 个接收引擎64 个 Message Buffer1 个 Rx FIFO可开启ID 滤波硬件匹配3. 报文缓冲区 MBMessage Buffer总共64 个 MB可配置为发送 / 接收每个 MB 可独立配置 ID、掩码、数据长度接收时硬件自动匹配 ID无需 CPU 干预4. Rx FIFO 模式开启后多个 ID 匹配后自动进入 FIFO节省 CPU适合大量报文接收支持滤波 ID 列表5. 波特率计算公式波特率 Fsys / (PRESC 1) / (Tseg1 Tseg2 1)6. 典型引脚CAN0_TXPB0CAN0_RXPB1CAN1_TXPC10CAN1_RXPC117. 工作模式Normal 正常模式Listen Only 监听模式Loopback 内环自测Freeze 冻结模式调试8. 关键寄存器MCR主控制寄存器CTR定时 / 波特率IFLAGx中断标志IMASKx中断使能RXGMASK全局接收掩码三、CAN Sampler 低功耗唤醒采样器1. 为什么需要 CAN Sampler因为STANDBY 模式下 FlexCAN 是断电的无法监听总线。于是芯片设计了超小功耗硬件 Sampler专门用于检测 CAN 总线上的唤醒信号 → 叫醒 MCU。2. 工作原理只检测帧起始SOF不解析完整报文检测到有效 CAN 信号 → 触发唤醒功耗 nA 级3. 典型用途车辆休眠时CAN 总线唤醒 ECU钥匙 ON、车门打开、网络唤醒超低功耗待机4. 特点不占用 CPU不解析数据不产生中断只唤醒配合 WKPU 使用四、CAN 完整工作流程车载标准流程1. 配置引脚TX/RX2. 打开 PCTL 时钟3. 初始化 FlexCAN 波特率4. 配置 ID 滤波、MB、FIFO5. 启动 CAN6. 正常收发报文7. 进入 STANDBY8. CAN Sampler 监听总线9. 唤醒 → 重启 FlexCAN → 继续通信五、总结MPC5604B/C 最多6 路 FlexCAN64 个报文缓冲区 MB可收发可配置支持标准帧 扩展帧 Rx FIFO波特率由预分频 Tseg1 Tseg2决定CAN 必须先开MC_ME.PCTL时钟收发都用MBMessage BufferFlexCAN 在 STANDBY 下断电CAN Sampler 是低功耗唤醒专用Sampler 只检测 SOF不解析数据车载 ECU 必须同时使用FlexCAN CAN Sampler