# 硬件接口说明 V6 硬件基于 STM32G473 系列 MCU,核心总线能力由 FDCAN、USART/RS485、USB 复合设备和 SPI Slave 组成。具体引脚以对应硬件版本原理图和 CubeMX 配置为准。 ## 总线资源 | 功能 | 说明 | | --- | --- | | FDCAN1 | 当前 MCU 侧第一路 CAN/CAN FD | | FDCAN2 | 当前 MCU 侧第二路 CAN/CAN FD | | RS485-A | 当前 MCU 侧第一路 RS485 | | RS485-B | 当前 MCU 侧第二路 RS485 | | USB gs_usb | Linux SocketCAN 入口,主机侧显示为 `canX` | | USB CDC串口 (CDC ACM) | PC 调试、AT 配置、小米 CyberGear 兼容和第三方 RS485 原始数据透传入口;RS485 透传需通过 `AT+RS485RAW=1` 临时开启 | | SPI Slave | 主控板固定长度协议入口,支持 `SHORT=23` 字节和 `LONG=73` 字节 | ## 通道映射 SANPO 集成开发板 V6 固件对应双 MCU 硬件,整板共提供 `CAN1~CAN4` 和 `RS485-1~RS485-4`。推荐沿用以下逻辑映射: | 入口 | 控制通道 | | --- | --- | | USB CDC串口 1 或 SPI `CS0` | `CAN1 / CAN2 / RS485-1 / RS485-2` | | USB CDC串口 2 或 SPI `CS1` | `CAN3 / CAN4 / RS485-3 / RS485-4` | 上位机协议中的 `Channel` 保持 `0x01~0x04` 定义,分别对应板上 4 路 CAN 或 4 路 RS485。 ## SocketCAN 通道映射 SocketCAN 通过 USB `gs_usb` 接口访问 FDCAN。单块 SANPO 集成开发板包含两颗 STM32 芯片,每颗芯片提供 2 路 FDCAN: | 板上资源 | gs_usb 通道 | 物理接口 | | --- | --- | --- | | STM32 芯片 1 | channel 0 | CAN1 / FDCAN1 | | STM32 芯片 1 | channel 1 | CAN2 / FDCAN2 | | STM32 芯片 2 | channel 0 | CAN3 / FDCAN1 | | STM32 芯片 2 | channel 1 | CAN4 / FDCAN2 | 单块 SANPO 集成开发板正常会生成 4 个 SocketCAN 接口。Linux 主机显示的 `can0`、`can1`、`can2`、`can3` 名称由系统枚举顺序决定,不等同于固定的硬件丝印名称。使用前应先确认 `canX` 与物理总线的对应关系,再运行上位机控制程序。 常用确认命令: ```bash ip -details link show type can readlink -f /sys/class/net/can0/device udevadm info -q property -p "$(readlink -f /sys/class/net/can0/device)" ``` ## FDCAN 引脚参考 | 外设 | 常见引脚 | | --- | --- | | FDCAN1_RX | `PB8` | | FDCAN1_TX | `PB9` | | FDCAN2_RX | `PB12` | | FDCAN2_TX | `PB13` | ## SPI 长度模式 | 模式 | 总线长度 | 报文区长度 | CRC | | --- | ---: | ---: | ---: | | `SHORT` | 23 字节 | 22 字节 | 1 字节 | | `LONG` | 73 字节 | 72 字节 | 1 字节 | SPI 模式通过 USB CDC串口 AT+ 指令切换。使用串口工具发送时,只输入命令主体,并把发送结束符设置为 `CRLF`。固件上电默认 `SHORT` 模式。