版本沿革与兼容性

本文面向 SANPO SPINE 客户,汇总目前能够从正式固件、发布清单、迁移说明和公开仓库记录中核对的主要版本变化。

当前发布的版本

产品代际

MCU 平台

当前发布固件

适用说明

V8

STM32G0B1RCT6,外部 HSE 晶振

V83

V8 硬件;原生透传接口和 V6 兼容协议模式

V6

STM32G0A 系列

V68

使用 V6 协议的 G0A 硬件,不能与 G473 固件混刷

V6

STM32G473

V67

V6 FDCAN 升级版;CAN FD、经典 CAN 和 RS485

V4

STM32F407

V47

V4 标准版、隔离版;经典 CAN 和 RS485

一块完整的 SPINE 开发板包含两颗 MCU。正常升级时应分别烧录并验证两颗 MCU,使用管理串口发送 AT+VER,确认两颗芯片都返回预期版本。

三代产品的主要区别

能力

V8

V6

V4

经典 CAN

支持

支持

支持

CAN FD

支持

新增

不支持

Linux SocketCAN

支持经典 CAN/CAN FD

支持经典 CAN/CAN FD

V47 支持经典 CAN

USB 管理口协议

保留 V6 兼容协议模式

使用 ST/ET/SF/EF/RT 统一封装

支持 V4 报文

USB RS485

每路独立 USB 串口直接透传,同时保留 RT 协议模式

RT 封装,可切换 RAW 通道

V4 协议封装

SPI

保留 V6 SPI 协议

SHORT/LONG 固定长度、CRC-8

支持 V4 固定布局

CAN 原生透传

Linux gs_usb/SocketCAN;Windows 10/11 使用系统 WinUSB,可配合 SANPO CANgaroo

Linux gs_usb

Linux gs_usb

离线批量指令

保留

保留并扩展

支持

客户二次开发

STM32G0B1 框架和直接开发样例

按具体 V6 MCU 选择框架

STM32F407 框架

版本演进记录

V8:原生透传与协议模式并存

V8 使用 STM32G0B1RCT6,并以“直接使用”和“兼容既有系统”两条路径组织接口:

  • CAN/CAN FD 在 Linux 中直接显示为 SocketCAN 接口;Windows 10/11 使用系统 WinUSB,可通过 SANPO CANgaroo 或用户程序收发;

  • 四路 RS485 分别显示为独立 USB 串口,原始字节直接透传,不再需要先选择 SANPO Channel;

  • 管理口和 SPI 继续支持 V6 的 ST/ET/SF/EF/RT 报文,SANPO Studio、CyberGear、GM8010、通信配置和离线批量任务可以继续使用;

  • 原生透传模式和协议模式可以按上位机、实时性和兼容性要求选择。

每颗 MCU 会枚举一个双通道 gs_usb、一个 SANPO Studio Management Port 和两个 SANPO USB2RS485 Port。双 MCU 整板提供四路 CAN/CAN FD、两个管理口和四路独立 RS485 透传串口。

V8 已记录的正式固件节点:

固件

主要变化

V83

在保留 V82 功能的基础上,增加完整 FDCAN 错误状态上报和双路径 Bus-Off 恢复;兼容旧驱动自动恢复,并为支持扩展协议的驱动提供 restart-ms/手动恢复能力

V82

完善正式发布包、客户二次开发框架、CAN/CAN FD/RS485 样例和 J8108-R8 FDCAN 测试说明;重复设置相同 FDCAN 参数时恢复实时配置,避免无意义的 Flash 写入

V81

V8 首个公开固件;完成 STM32G0B1 双 MCU 平台、双通道 gs_usb、管理口和独立 RS485 USB 串口的发布

V83 的错误处理使用 Linux 标准 CAN 错误帧,不增加 SANPO 私有错误格式。只有 Bus-Off 会触发控制器恢复;Error Warning 和 Error Passive 用于状态上报,不会错误地重启通道。CAN-A 与 CAN-B 独立恢复,不会主动重启另一通道或 RS485。

V6:增加 CAN FD 并统一协议

V6 在保留经典 CAN 和 RS485 的基础上增加 CAN FD,并统一通信封装和参数配置:

  • USB 经典 CAN 继续使用 ST/ET,CAN FD 增加 SF/EF;

  • USB RS485 普通模式统一为 RT + Channel + Len + Data + CRLF;

  • SPI 提供 23 字节 SHORT 和 73 字节 LONG 两种固定传输长度,并增加 CRC-8;

  • CAN/CAN FD、RS485 和 SPI 参数改由 AT 命令明确设置并保存;

  • Linux SocketCAN 支持经典 CAN 和 CAN FD。

V6 后期按 MCU 平台分别维护固件:

  • G0A V68:保持 V6 协议,并完成 USB RAW、USB RT 和 SPI 转 RS485 的高频压力验证。它是 G0A 硬件专用固件,不能用于 STM32G473 或 V8 G0B1。

  • STM32G473 V67:完善标准 SocketCAN 错误帧、Error Warning、Error Passive、TEC/REC 和 Bus-Off 处理。旧版 gs_usb 驱动继续使用固件 100 ms 自动恢复;支持扩展恢复协议的驱动可通过 restart-ms 或手动 restart 控制恢复。恢复时丢弃 Bus-Off 期间积压的旧控制帧,避免恢复后重放过期指令。

从 V4 升级到 V6 时,USB 经典 CAN 程序通常只需重新确认端口和 Channel;RS485 封装、SPI 布局、CAN FD 配置和通信参数设置方式需要按 V6 文档修改。详细差异见 V4 到 V6 迁移说明。

V4:经典 CAN 与 RS485 基础版本

V4 建立了 SPINE 的 USB、SPI、经典 CAN、RS485、通信参数配置和离线批量指令等基础能力。V42(V4.2)及之后的固件支持离线批量执行。

V47 是 V4 的最终封版版本,客户可见的主要状态包括:

  • 完成 USB CDC、gs_usb/SocketCAN、SPI、经典 CAN 和 RS485 回归;

  • 完善 SPI 转 RS485 回包中的 Channel 信息;

  • 提供 STM32CubeIDE 和 Keil 客户二次开发工程;

  • 通过 AT+VER 返回 V47。

V4 继续适合仅使用经典 CAN 和 RS485 的既有项目。V4 固件不能烧录到 V6 或 V8 硬件。