场景指南

通过串口升级设备固件

用 YMODEM 把镜像发给 bootloader,本地或隔着设备服务器都可以。

  1. 固件镜像
  2. SPU YMODEM
  3. 设备 bootloader
场景指南

场景八:通过串口升级设备固件

适合 MCU、网关或仪表通过 YMODEM 的 bootloader 刷固件,而现在这一步要靠另一个终端软件完成的情况。

  1. 连接设备串口,把波特率设成 bootloader 的波特率。它常常和应用程序运行时的不一样,而这正是升级起不来的头号原因。
  2. 让设备进入 bootloader——按住按键复位、发送命令,或按手册规定的方式。接收区应该开始每秒出现一个 C:这是 bootloader 在请求文件。
  3. 选择 连接 → 发送文件…,协议选 YMODEM,选中镜像。确认之前先看一眼对话框顶部那行灰字,它把端口、波特率、数据格式和流控原样念给你听。
  4. 观察接收区上方的进度条:文件名、已传字节、速率、剩余时间和重传次数。重传次数从 0 往上涨,说明问题出在波特率或线缆上,与其等到第十次失败,不如尽早停下来查。
  5. 传输完成后接收区恢复显示设备输出。断开之前,先确认设备已经用新固件重启。

传输期间端口被独占:发送按钮、自动发送、终端键盘、Break、DTR/RTS 和串口参数修改都会被拒绝并给出原因——它们中任何一个都足以终结这次升级。

如果设备手册要求的是 XMODEM,就改选 XMODEM-CRCXMODEM-1K。注意 XMODEM 不带长度字段,设备收到的数据会被补齐到块大小的整数倍;镜像需要校验时一律用 YMODEM。

升级一旦中断,请重新完整升级一次。 取消发送后设备仍会再收到最多一块数据,而断线绝不会自动续传:这一侧无从知道设备的 flash 处在什么状态,而“看起来成功了”是最糟的结果。

升级设备服务器另一头的设备

对端只要是 RFC 2217 服务端就行——Moxa NPort、ser2net 这类设备服务器,或另一台开着服务端模式的本软件。步骤完全相同:在端口下拉里选 远端串口 (RFC 2217),把远端串口设成 bootloader 的波特率,然后在同一条连接上发送文件。

普通 TCP 转发也能把文件搬过去,但它改不了远端串口的波特率——而 bootloader 的波特率通常与应用程序不同。两件事在同一条连接上完成,从办公室升级现场设备才真正走得通。

升级主动连入的设备

对于自己发起连接的 4G DTU 或边缘网关,本机开 TCP Server,再向它传输。传输在启动时会钉住一个客户端:连了多个时,请先在客户端列表里选中你要的那个——这里刻意没有“默认第一个”的回退,因为把固件刷进错误的设备不是当场就能发现的事。其余客户端在整个过程中照常工作。

这篇文档是否有帮助?