RS485 原始数据透传

原始数据透传适合直接发送不带 SANPO 封装的 RS485 数据。开启 RAW 回包后,电脑发出的设备指令会原样送到 RS485,总线反馈也会原样返回电脑,不需要增加 SANPO RT 帧头。

连续高速实时控制请使用 SANPO USB 转 RS485封装协议。

连接和通信参数

完整开发板连接电脑后通常会出现两个 USB 串口,每个串口对应一颗 MCU 和两路 RS485。操作系统分配的 COM/dev/ttyACM* 编号不保证与开发板丝印顺序一致,首次使用时建议只连接一个设备确认对应关系。

V6 出厂默认 RS485 参数为 4 Mbps、1 个停止位、无校验、8 个数据位。USB 串口软件中选择的波特率不会修改 RS485 总线参数;如需调整,请先发送:

AT+SETRS485=<波特率>,<停止位>,<校验>,<数据位>

详细取值见 通信参数配置

开启原始回包

先使用串口工具按文本发送以下命令,并把结束符设置为 CRLF

AT+RS485RAW=1

正常返回:

OK

随后可以关闭当前配置程序,再使用需要发送原始数据的上位机打开同一个端口。RAW 状态在关闭串口后仍然保持,但开发板重新上电后会恢复为关闭。

完成原始数据调试后,可以发送:

AT+RS485RAW=0

关闭 RAW 回包后,RS485 反馈会重新使用带 Channel 的 SANPO RT 格式返回。

选择目标接口

RAW 数据本身没有 Channel,可以在进入透传前设置目标:

AT+RS485RAWCH=<0~4>

设置值

当前 USB 串口对应的发送目标

0

当前 MCU 的两路 RS485

13

当前 MCU 的第一路 RS485

24

当前 MCU 的第二路 RS485

查询当前值:

AT+RS485RAWCH?

例如只向当前 MCU 的第一路发送:

AT+RS485RAWCH=1

目标通道会保存到 Flash;AT+RS485RAW=1 本身不会保存,重新上电后 RAW 回包仍会关闭。

宇树 GO-M8010 测试

开启 RAW 回包并选择正确通道后,在十六进制发送模式下发送宇树电机原始指令:

FE EE 11 00 00 00 00 00 00 00 00 00 00 00 00 18 7C

正常情况下会收到以 FD EE 开头的电机反馈。具体字段和校验应以电机厂家的协议说明为准。

发送原始二进制数据时不要附加 SANPO RT 帧头,也不要由串口软件自动添加 0D 0A

使用限制

  • RAW 回包不包含 Channel。若两路 RS485 同时返回数据,上位机无法仅凭回包判断来源。

  • 建议将 AT+RS485RAWCH 固定到单路接口;需要同时管理两路时,优先使用 SANPO USB 转 RS485封装协议。

  • 固件按串口空闲时间划分收到的数据块。上位机仍应按照电机协议的帧头、长度和校验进行拆包。

  • 一次连续接收的数据最多保留 96 字节;较长协议应由上位机支持分段重组。

常见问题

现象

处理方法

上位机能发送但无法识别回包

确认已执行 AT+RS485RAW=1,并选择了正确 USB 串口

两路接口都收到指令

AT+RS485RAWCH 当前为 0;设置为具体通道

返回数据带 52 54 帧头

当前仍为 SANPO RT 回包;开启 RAW 回包

返回乱码或长度异常

检查 RS485 波特率、停止位、校验位、数据位和 A/B 接线

重新上电后又出现 RT 回包

正常行为;每次重新上电后需要重新发送 AT+RS485RAW=1