RS485 原始数据透传

RS485 原始数据透传会将 USB 收到的设备原始数据直接发送到 RS485 总线,并将设备反馈原样返回 USB,不需要增加接口编号或 SANPO 封装格式。

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

USB 串口与 RS485 接口

开发板连接电脑后,通常会出现两个 USB 串口。其中一个串口控制 RS485-1 和 RS485-2,另一个控制 RS485-3 和 RS485-4。

Windows 上会显示为两个 COM 端口,Linux 上通常显示为两个 /dev/ttyACM* 设备。操作系统分配的串口编号不一定与开发板接口顺序一致,首次使用时建议只连接一个 RS485 设备,通过发送测试指令确认对应关系。

选中某个 USB 串口后,原始数据会同时发到该组的两路 RS485 接口。如果需要只向 RS485-1/2/3/4 中的某一路发送,请使用 SANPO USB 转 RS485封装协议。

使用步骤

  1. 通过 USB 将开发板连接到电脑。

  2. 将电机或其他 RS485 设备连接到开发板,并确认设备供电正常。

  3. 在上位机中打开对应的 COM/dev/ttyACM* 端口。

  4. 将波特率、停止位、校验位和数据位设置为与 RS485 设备一致。

  5. 以二进制方式发送设备厂家定义的完整指令。

  6. 如果设备返回数据,上位机会收到对应的二进制反馈。

打开 USB 串口时选择的通信参数,会同时用于该组的两路 RS485 接口。出厂默认参数为 4 Mbps、1 个停止位、无校验、8 个数据位。

保存默认 RS485 参数

如果希望开发板上电后自动使用指定参数,可以通过当前 USB 串口发送:

AT+SETRS485=<波特率>,<停止位>,<校验方式>,<数据位>\r\n

参数

可用值

波特率

12004000000

停止位

12

校验方式

0:无校验;1:奇校验;2:偶校验

数据位

89

例如,设置为 4 Mbps、1 个停止位、无校验、8 个数据位:

AT+SETRS485=4000000,1,0,8\r\n

该命令需要按文本发送,并以 CRLF 结尾。设置成功后返回:

OK\r\n

参数会保存到开发板,重新上电后仍然有效。但是,上位机下次打开端口时,会再次按所选通信参数配置 RS485,因此两处参数应保持一致。

宇树 GO-M8010 测试示例

  1. 在上位机中设置电机的通信参数。

  2. 选择二进制或十六进制发送。

  3. 发送以下指令:

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

如果电机 ID、通信参数、接线和供电均正确,上位机会收到电机返回的二进制数据。具体指令和返回内容请以电机厂家的协议说明为准。

使用限制

  • 原始透传每次发送的数据不应超过 72 字节,建议每次只发送一条完整设备指令。

  • 同一 USB 串口对应的两路 RS485 会同时收到指令。多个设备共用时,应使用不同的设备 ID,并避免多个设备同时返回数据。

  • 设备指令的前两个字节不能是 41 5445 5453 54。如果设备协议使用了这些开头,请联系技术支持获取兼容方案。

常见问题

现象

处理方法

电脑没有出现 USB 串口

检查 USB 线、接口和驱动,然后重新拔插开发板

不确定串口对应哪两路 RS485

只连接一个设备,分别使用两个 USB 串口发送测试指令

USB 串口提示被占用

关闭其他占用该端口的程序,再重新打开端口

发送后没有回复

检查设备供电、A/B 接线、设备 ID、指令校验和串口通信参数

返回数据错乱或长度不对

确认波特率、停止位、校验位和数据位与设备一致,并检查 A/B 接线质量

两路 RS485 都收到了指令

这是原始透传的正常行为;如需指定单路接口,请使用 SANPO USB 转 RS485封装协议