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 串口对应的发送目标 |
|---|---|
|
当前 MCU 的两路 RS485 |
|
当前 MCU 的第一路 RS485 |
|
当前 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 字节;较长协议应由上位机支持分段重组。
常见问题
现象 |
处理方法 |
|---|---|
上位机能发送但无法识别回包 |
确认已执行 |
两路接口都收到指令 |
|
返回数据带 |
当前仍为 SANPO |
返回乱码或长度异常 |
检查 RS485 波特率、停止位、校验位、数据位和 A/B 接线 |
重新上电后又出现 |
正常行为;每次重新上电后需要重新发送 |