版本沿革与兼容性
本文面向 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 兼容协议模式 |
使用 |
支持 V4 报文 |
USB RS485 |
每路独立 USB 串口直接透传,同时保留 |
|
V4 协议封装 |
SPI |
保留 V6 SPI 协议 |
|
支持 V4 固定布局 |
CAN 原生透传 |
Linux |
Linux |
Linux |
离线批量指令 |
保留 |
保留并扩展 |
支持 |
客户二次开发 |
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 恢复;兼容旧驱动自动恢复,并为支持扩展协议的驱动提供 |
V82 |
完善正式发布包、客户二次开发框架、CAN/CAN FD/RS485 样例和 J8108-R8 FDCAN 测试说明;重复设置相同 FDCAN 参数时恢复实时配置,避免无意义的 Flash 写入 |
V81 |
V8 首个公开固件;完成 STM32G0B1 双 MCU 平台、双通道 |
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 硬件。