LPC5500 系列微控制器内置支持 CAN-FD 功能的 MCAN 控制器,通过启用比特率切换与发送延迟补偿,可实现最高 5 Mbit/s 的数据传输速率和 64 字节单帧数据量,大幅提升通信吞吐量与实时性。本文基于 NXP 官方应用笔记 AN12728,详解 CAN-FD 的核心优势、软硬件准备、关键配置步骤与实操验证,助力开发者快速落地。
资料获取:如何使用CAN-FD 在LPC5500 上传输数据
1. CAN-FD 核心优势(vs 传统 CAN)
CAN-FD(ISO 11898-1:2015 标准)相比传统 CAN,核心升级体现在两点:
- 传输性能跃升:单帧数据量从 8 字节提升至 64 字节,减少帧数量;数据相位比特率突破 1 Mbit/s 限制(板载收发器支持最高 5 Mbit/s)。
- 抗干扰能力强化:支持发送延迟补偿,抵消收发器延迟对高比特率传输的影响,避免误码。
2. 软硬件准备
2.1 硬件环境
- 核心设备:2 块 LPCXpresso55S16/LPCXpresso55S08 开发板。
- 辅助器材:2 根 Micro USB 线、1 根带 120Ω 端接电阻的 CAN 线、PC。
- 硬件连接:CAN shield 接入开发板,USB 线连接 PC 与开发板 J19 接口(用于程序下载与 UART 通信),CAN 线连接两块板的 CAN 接口。
2.2 软件环境
- 工具链:Keil、MCUXpresso IDE 11.1 及以上版本。
- 软件包:LPC55S16/LPC55S08 SDK 2.9.0 及以上版本(含
mcan_interrupt_transfer示例)。 - 终端工具:PuTTY 或同类 UART 终端程序。
3. 关键配置步骤(核心重点)
3.1 基础初始化流程
- 配置系统时钟与 MCAN 模块时钟(示例中 MCAN 时钟设为 60 MHz)。
- 复位 MCAN 模块,启用 CAN-FD 功能。
- 配置 Message RAM、ID 过滤器、Rx FIFO 与 Tx 缓冲区。
- 启用比特率切换与发送延迟补偿,进入 MCAN 正常模式。
3.2 比特率切换配置(核心功能)
通过寄存器设置仲裁相位(低速)与数据相位(高速)比特率,步骤如下:
- 仲裁相位比特率(1 Mbit/s):
- 数据相位比特率(5 Mbit/s):
- 调用
MCAN_SetBaudRateFD()函数,配置数据相位时序。 - 关键参数:预分频器
preDivider=4,相位缓冲段seg1=7、seg2=2,时间量总数MCAN_TIME_QUANTA_NUM_DATA=12。
- 调用
3.3 发送延迟补偿配置(抗误码关键)
通过硬件补偿收发器延迟,确保高比特率下的数据完整性,核心代码如下:
- 核心逻辑:通过 DBTP 寄存器的 TDC 位启用功能,TDCR 寄存器的 TDCO 字段设置偏移量,抵消收发器延迟影响。
4. 实操流程与验证
4.1 完整实操步骤
- 硬件搭建:按要求连接 CAN 线与 USB 线,确保 120Ω 端接电阻正常接入。
- 软件构建:
- 导入 SDK 中的
mcan_interrupt_transfer示例工程。 - 集成 3.2、3.3 节的配置代码,启用 CAN-FD 功能。
- 编译工程并通过调试器下载至两块开发板。
- 导入 SDK 中的
- UART 终端配置:
- 打开两个 PuTTY 终端,分别关联两块板的 COM 口。
- 配置参数:波特率 115200、数据位 8、停止位 1、无校验、无流控。
- 运行验证:
- 按下两块板的 SW1 复位键,分别选择节点 A 和节点 B(节点 B 需先启动)。
- 按下节点 A 终端的任意键,触发数据发送;节点 B 接收后自动回传,双方终端显示接收数据。
4.2 验证结果
- 节点 A 终端输出:显示发送帧 ID(如 0x123)与 64 字节数据,提示 “按下任意键触发下次传输”。
- 节点 B 终端输出:显示接收帧 ID(如 0x321)与完整回传数据,等待下次接收。
- 核心指标:数据传输速率 5 Mbit/s,单帧数据量 64 字节,无丢包或误码。
LPC5500 系列的 CAN-FD 功能通过比特率切换与延迟补偿的组合配置,完美解决了传统 CAN 传输速率低、数据量小的痛点,适用于工业控制、汽车电子等对实时性与吞吐量要求较高的场景。本文的实操步骤可直接复用,帮助开发者快速完成 CAN-FD 通信部署。
阅读全文
994