• 正文
  • 相关推荐
申请入驻 产业图谱

LPC5500 系列 CAN-FD 数据传输实操指南:比特率切换与延迟补偿配置

10/30 15:00
994
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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. 仲裁相位比特率(1 Mbit/s)
    • 调用MCAN_SetBaudRate()函数,配置mcan_timing_config_t结构体
    • 关键参数:预分频器preDivider=2,相位缓冲段seg1=13seg2=4,时间量总数MCAN_TIME_QUANTA_NUM_ARBIT=20
    • 寄存器操作:置位 MCAN CCCR 寄存器的 BRSE 位,启用比特率切换。
  2. 数据相位比特率(5 Mbit/s)
    • 调用MCAN_SetBaudRateFD()函数,配置数据相位时序。
    • 关键参数:预分频器preDivider=4,相位缓冲段seg1=7seg2=2,时间量总数MCAN_TIME_QUANTA_NUM_DATA=12

3.3 发送延迟补偿配置(抗误码关键)

通过硬件补偿收发器延迟,确保高比特率下的数据完整性,核心代码如下:

static void MCAN_SetTransmitterDelayCompensationFD(CAN_Type *base) {
    base->DBTP &= ~(CAN_DBTP_TDC_MASK); // 清除原有TDC配置
    base->DBTP |= CAN_DBTP_TDC(true);    // 启用发送延迟补偿
    base->TDCR &= ~CAN_TDCR_TDCO_MASK;   // 清除原有TDCO偏移量
    // 设置偏移量为数据相位时间量总数的1/2,二级采样点位于比特时间中间
    base->TDCR |= CAN_TDCR_TDCO(MCAN_TIME_QUANTA_NUM_DATA/2);
}
  • 核心逻辑:通过 DBTP 寄存器的 TDC 位启用功能,TDCR 寄存器的 TDCO 字段设置偏移量,抵消收发器延迟影响。

4. 实操流程与验证

4.1 完整实操步骤

  1. 硬件搭建:按要求连接 CAN 线与 USB 线,确保 120Ω 端接电阻正常接入。
  2. 软件构建
    • 导入 SDK 中的mcan_interrupt_transfer示例工程。
    • 集成 3.2、3.3 节的配置代码,启用 CAN-FD 功能。
    • 编译工程并通过调试器下载至两块开发板。
  3. UART 终端配置
    • 打开两个 PuTTY 终端,分别关联两块板的 COM 口。
    • 配置参数:波特率 115200、数据位 8、停止位 1、无校验、无流控。
  4. 运行验证
    • 按下两块板的 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 通信部署。

相关推荐

登录即可解锁
  • 海量技术文章
  • 设计资源下载
  • 产业链客户资源
  • 写文章/发需求
立即登录