2414857_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2414857_zh-CN

2414857_zh-CN

RT1064 在线升级计划

下图是我们产品的硬件扩展示意图:

1. PC 和主板通过 TCP 连接。

2.主板通过四条SPI总线与四个子板连接,各子板的功能相同。

3.主板上的UART4可以通过串口切换芯片切换到4个子板的UART1。

foreverwlh2025_0-1789970732170.pngforeverwlh2025_0-1789970732170.png

由于项目需要, PC需要通过TCP升级四块RT1064子板的固件程序。基于硬件扩展情况,能否提供最简单的子板固件升级方案(考虑到上位机开发、主板开发和子板开发的工作量)?

i.MX RT106xRe: RT1064 Online Upgrade Plan

亲爱的@foreverwlh2025 ,

谢谢你的提问。

推荐方法

PC通过TCP协议与主板通信。主板充当 TCP 服务器,并实现 UART 透明桥接。主板上的 UART4 通过串行切换芯片路由到所选子板的 UART1 接口。子板运行 RT1064 ROM 引导加载程序,因此子板端不需要额外的引导加载程序或固件开发。

单个子板的逐步升级流程:

  1. 对子板 N 施加 RESET 信号;设置 BOOT_MODE[1:0] = 01(串行下载器模式)

  2. 将串口切换芯片切换为连接 UART4 和子板 N 的 UART1。

  3. 释放 RESET 按钮——子板 N 进入 RT1064 ROM 引导加载程序并等待 UART 命令。

  4. 启用 TCP↔UART4 字节转发

  5. 切换 RESET 开关并将 BOOT_MODE 恢复为正常模式——子板 N 将使用新固件启动。

  6. 将串行选择器切换到下一个子板并重复上述步骤。

硬件先决条件

请在实施前确认以下硬件条件已具备:

  1. 主板对每个子板的BOOT_MODE[1:0]引脚具有独立的 GPIO 控制。

  2. 主板对每个子板的RESET引脚具有独立的 GPIO 控制。

  3. 该串行切换芯片可通过主板GPIO控制,并支持在所有4个子板之间进行切换。

如有任何疑问或想进一步讨论实施细节,请随时联系我们。

Re: RT1064 Online Upgrade Plan

亲爱的@foreverwlh2025 ,

以下是针对您的固件升级场景推荐的解决方案概要。

1. 电脑工具

在 PC 端,我们提供了blhost——一个开源的命令行客户端,它实现了 NXP 的 MCU 引导加载程序私有帧协议(BSD/MIT 许可证)。设备端协议由MCU片上ROM引导加载程序实现。它们共同实现了固件下载和设备配置。

该工具支持 USB 和 UART1,不支持 TCP。

开源仓库: https://github.com/nxp-mcuxpresso/spsdk

blhost 和 ROM 引导加载程序使用专有的帧数据包协议进行通信,请参阅: MCU 引导加载程序 v2.5.0 参考手册 (MCUBOOTRM)

对于固件映像的生成和打包,请使用 NXP 的SPSDK(安全配置 SDK)中包含的nxpimage工具。

2. 推荐方案:通过主板实现 TCP 透明转发

对于你的场景(PC→主板→子板),最省力的方法是让主板充当透明的 TCP 到 UART 桥接器,只需对 blhost 进行少量修改,将串行数据封装在 TCP 中即可:

建筑学:

PC (modified blhost)
    ↓  TCP packet (include original UART byte stream)
Main Board (TCP Server)
    ↓  Unpack and forward to sub-board via UART
Sub-board (ROM Bootloader)

关键修改点:

  1. 修改 blhost 传输层:在 blhost 源代码中添加一个新的 TCP 传输模块。现有的UART字节流(帧数据包)在发送路径上直接封装成TCP数据包,在接收路径上解封装。

  2. 主板实现了一个 TCP 服务器:从 PC 接收 TCP 数据,通过 UART1 将有效载荷逐字节地转发到子板;子板的响应以同样透明的方式通过 TCP 转发回 PC。

  3. 子板无需任何更改:子板 MCU 只需处于 ISP 模式,ROM 引导加载程序正在运行,等待标准 UART 命令即可。

Re: RT1064 Online Upgrade Plan

4.启用TCP↔UART4字节转发

-----请问,数据传输的这一步骤是否需要额外开发一台上位计算机?例如,PC应该以什么格式传输图像数据?它应该如何解析子板返回的响应数据?以及它应该如何与子板交互?


Tags (1)
No ratings
Version history
Last update:
Thursday
Updated by: