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

i.MX RT1180 GenAVB/TSN 评估用例底层技术深度解析

08/31 16:22
208
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

1. i.MX RT1180 双核架构与 TSN 硬件能力分析

i.MX RT1180 采用 Cortex‑M7(高性能业务核)+Cortex‑M33(安全 / 系统核)异构双核架构。

  • CM7:承担 TSN 业务处理、enetc0 以太网控制器驱动,TSN 网桥、调度流量处理;对应编译配置release_enetc0,启用以太网控制器 0;
  • CM33:系统 shell 交互、角色配置下发,配置文件存储;对应编译配置release_no_enetc0,关闭 enetc0 硬件,避免资源冲突;
  • 硬件具备 ENETC 以太网控制器,硬件支持时间戳,是 gPTP 高精度时间同步的硬件基础;XBAR 交叉开关负责片上内核之间消息交互,内核之间通过虚拟文件系统/m7/*完成 CM33 向 CM7 下发配置参数。

本 Demo 中 CM33 不操作以太网硬件,仅作为配置 Shell,所有 TSN 硬件操作由 CM7 完成,跨核通信是整套 Demo 运行的核心。

资料获取:在 i.MX RT1180 上运行 GenAVBTSN Stack FreeRTOS 评估用例的分步指南

2. GenAVB/TSN‑rtos‑apps 8.0 关键组件解析

  1. GenAVB/TSN 协议栈:实现 AVB/TSN 标准,包含 gPTP 时间同步、Qbv 时间感知门控、VLAN、FDB 转发数据库、时间特定发送;
  2. MCUX 驱动层:XBAR、ENETC 以太网驱动、GPIO 按键驱动;
  3. Demo 应用 tsn_app:Demo 业务逻辑,区分 Controller(role0)与 IO Device(role1)两种角色;
  4. Shell 交互子系统:串口 shell,通过写虚拟文件节点完成参数配置,不需要 API 编码,直接 shell 命令配置;
  5. FreeRTOS 内核:任务调度,TSN 周期任务基于 RTOS 任务实现。

3. Kconfig 修改原理:XBAR 交叉开关驱动依赖问题

原版工程编译前,需要手动修改 CM7 的 Kconfig 文件,增加driver.xbar_1组件选择。

  • XBAR1 是片上跨核消息交换硬件,CM33 的 shell 需要通过 XBAR 向 CM7 传递配置参数;
  • 如果 Kconfig 没有打开 XBAR_1 驱动,跨核通信失效,shell 写入/m7/tsn_app/*的配置参数无法传递给 CM7 内核,TSN 角色、周期等参数不生效;
  • 同时开启APP_USER_BUTTON组件,板载按键支持;

这是官方文档没有重点强调的修改点,很多开发者直接编译,没有修改 Kconfig,出现配置写入无效现象。文件路径:genavb_tsn_rtos_apps\GenAVB‑TSN‑rtos‑apps\boards\evkmimrt1180\demo_apps\avb_tsn\tsn_app\cm7\Kconfig

4. 编译配置项差异:release_no_enetc0 与 release_enetc0

编译配置 使用内核 核心行为
release_no_enetc0 CM33 关闭 enetc0 以太网硬件,CM33 不操作以太网,只做 shell 配置交互,避免双内核争抢以太网硬件资源
release_enetc0 CM7 启用 enetc0 以太网控制器,所有 TSN 网桥、TSN 终端业务全部运行在 CM7 内核上

注意:VS Code MCUXpresso 插件存在工作空间工程导入限制,同一工作空间不能同时导入 cm33 和 cm7 工程,必须移除其中一个,再导入另一个工程,该缺陷计划后续 SDK 版本修复。编译产物输出 bin/elf 文件,bin 用于烧录,elf 用于调试。

5. 多内核镜像烧录与启动机制

i.MX RT1180 双内核独立镜像,烧录需要分别烧录 CM33、CM7 bin 文件。

  1. 下载模式:SW5 [1‑4]=0001 串行下载模式;J1 跳帽 7‑8 位置,Debug USB 供电;USB_OTG1 用于固件下载;
  2. 烧录参考手册 Multi‑core images flashing 章节;
  3. 烧录完成后切换 QSPI 启动模式 SW5 [1‑4]=0100,从片外 QSPI Flash 启动;
  4. JP7 跳帽移除:板卡 Debug USB 枚举 2 个串口,分别对应 CM33、CM7 日志输出;JP7 闭合只会出现一个串口,丢失一个内核日志;
  5. 运行状态标志:红色 LED D7 闪烁,代表 TSN app 业务任务正常运行。

6. TSN 核心协议配置技术拆解

本用例所有配置全部通过 CM33 shell 执行,必须按下 Insert 暂停日志打印,才能输入命令。

  1. 角色配置 role:role=0 → Controller 控制器节点;role=1 → IO Device 从站节点;period_ns=250000业务周期 250us;
  2. MAC 硬件地址配置:两块板卡各个端口配置不同 MAC 地址,二层转发 FDB 数据库依靠 MAC 地址转发;官方文档原始版本缺失该步骤,会直接导致转发失败;
  3. gPTP 配置:fgptp/priority1配置 gPTP 主从优先级,决定谁成为网络时钟主;TSN 所有调度流量都依赖 gPTP 全局统一时间基准;
  4. VLAN & FDB 转发数据库:vlan_update 配置 VLAN 成员;fdb_update 配置 MAC 地址转发端口;TSN 网桥基于 FDB 决定报文转发端口;
  5. Qbv 时间感知门控:qbv_set命令配置每个端口门控列表,base 时间、周期,对应 TSN 802.1Qbv 标准,划分时间窗口,保障实时流量优先发送;
  6. Time‑Specific Departure 时间特定发送:tx_time_enabled=1开启时间触发发送,tx_time_offset_ns设置相对于周期起点的发送偏移,报文在指定时间点精准发出,用于硬实时控制业务。

全部配置写入虚拟文件系统/m7/tsn_app/xxx,由 XBAR 硬件传递给 CM7 内核生效,复位板卡加载配置。

7. 典型技术问题根因分析

  1. 现象:串口输入命令无反应

根因:没有按下 Insert 键停止日志刷屏,终端输入被日志冲刷;

  1. 现象:D7 LED 不闪烁

根因:启动模式错误、镜像烧录失败、Kconfig 缺失 XBAR 驱动,应用没有正常启动;

  1. 现象:gPTP 无法同步,QBV 流量不通

根因:未配置端口 MAC 地址,FDB 转发表为空,VLAN 没有配置;原版官方文档没有写该部分,是高频踩坑点;

  1. 现象:VS Code 无法导入第二个内核工程

根因:工作空间已经存在同名工程,需要 Remove Project from Workspace,不要删除磁盘文件;

  1. 现象:只能看到一个内核串口日志

根因:JP7 跳帽没有移除,无法枚举双串口。

相关推荐