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封装协议。
使用步骤
通过 USB 将开发板连接到电脑。
将电机或其他 RS485 设备连接到开发板,并确认设备供电正常。
在上位机中打开对应的
COM或/dev/ttyACM*端口。将波特率、停止位、校验位和数据位设置为与 RS485 设备一致。
以二进制方式发送设备厂家定义的完整指令。
如果设备返回数据,上位机会收到对应的二进制反馈。
打开 USB 串口时选择的通信参数,会同时用于该组的两路 RS485 接口。出厂默认参数为 4 Mbps、1 个停止位、无校验、8 个数据位。
保存默认 RS485 参数
如果希望开发板上电后自动使用指定参数,可以通过当前 USB 串口发送:
AT+SETRS485=<波特率>,<停止位>,<校验方式>,<数据位>\r\n
参数 |
可用值 |
|---|---|
波特率 |
|
停止位 |
|
校验方式 |
|
数据位 |
|
例如,设置为 4 Mbps、1 个停止位、无校验、8 个数据位:
AT+SETRS485=4000000,1,0,8\r\n
该命令需要按文本发送,并以 CRLF 结尾。设置成功后返回:
OK\r\n
参数会保存到开发板,重新上电后仍然有效。但是,上位机下次打开端口时,会再次按所选通信参数配置 RS485,因此两处参数应保持一致。
宇树 GO-M8010 测试示例
在上位机中设置电机的通信参数。
选择二进制或十六进制发送。
发送以下指令:
FE EE 11 00 00 00 00 00 00 00 00 00 00 00 00 18 7C
如果电机 ID、通信参数、接线和供电均正确,上位机会收到电机返回的二进制数据。具体指令和返回内容请以电机厂家的协议说明为准。
使用限制
原始透传每次发送的数据不应超过 72 字节,建议每次只发送一条完整设备指令。
同一 USB 串口对应的两路 RS485 会同时收到指令。多个设备共用时,应使用不同的设备 ID,并避免多个设备同时返回数据。
设备指令的前两个字节不能是
41 54、45 54或53 54。如果设备协议使用了这些开头,请联系技术支持获取兼容方案。
常见问题
现象 |
处理方法 |
|---|---|
电脑没有出现 USB 串口 |
检查 USB 线、接口和驱动,然后重新拔插开发板 |
不确定串口对应哪两路 RS485 |
只连接一个设备,分别使用两个 USB 串口发送测试指令 |
USB 串口提示被占用 |
关闭其他占用该端口的程序,再重新打开端口 |
发送后没有回复 |
检查设备供电、A/B 接线、设备 ID、指令校验和串口通信参数 |
返回数据错乱或长度不对 |
确认波特率、停止位、校验位和数据位与设备一致,并检查 A/B 接线质量 |
两路 RS485 都收到了指令 |
这是原始透传的正常行为;如需指定单路接口,请使用 SANPO USB 转 RS485封装协议 |