跳到主要内容

PR0001 JxServo Studio USB 通信协议

项目信息
文档编号PR0001
文档版本Rev. 1.0
适用产品JxServo Studio / JxServo 伺服设备
语言简体中文
最后更新2026-05-11

JxServo Studio 提供面向伺服设备调试、系统集成和二次开发的开放 USB 通信接口。开发者可以基于本协议接入自研测试软件、自动化测试平台、数据采集系统或上层业务应用,在不依赖 JxServo Studio 图形界面的情况下完成设备识别、参数管理、命令触发、日志接收和实时运行数据采集。

本协议采用统一帧格式和动态能力发现机制。参数列表、命令列表和设备信息均由设备侧返回,上位应用无需固化完整功能清单,可随不同产品型号和版本自动适配。JxServo Studio 同样基于该接口与设备通信,因此本文档也可作为第三方工具接入 JxServo 设备的公开参考。

开放接口能力​

能力开放能力
设备识别读取设备地址、版本信息和设备名称,便于软件自动识别连接对象
参数管理动态读取参数数量、类型、名称、说明和值,支持上位应用完成参数查看与配置
命令发现动态读取设备当前开放的命令集合,避免上位应用维护固定命令表
命令执行按设备返回的命令描述组装执行帧,支持自动化调试和应用集成
日志接收接收设备侧状态、错误和提示信息,便于集成软件给出清晰反馈
实时遥测获取位置、速度、电流、电压、温度、控制环状态和总线原始数据等运行信息

本文聚焦可直接对接的公开 USB 接口。不同产品型号的参数内容、命令内容和遥测启用策略可能不同,上位应用应优先采用动态读取结果构建界面和业务逻辑。

协议基础​

USB 链路使用 CDC 字节流承载协议帧。每一帧都包含源地址、目标地址、功能码、数据长度、数据载荷和双字节校验,便于上位应用在连续字节流中稳定恢复帧边界并校验数据完整性。

所有报文使用如下帧格式:

0xAB | S_ADDR | D_ADDR | ID | LEN_L | LEN_H | DATA... | SUM_CHECK | ADD_CHECK
字段长度说明
0xAB1帧头固定值
S_ADDR1源地址
D_ADDR1目标地址
ID1帧功能码
LEN2DATA 字节数,小端
DATAN载荷数据
SUM_CHECK1和校验
ADD_CHECK1附加校验

公开地址定义如下:

地址含义
0x01伺服设备默认地址
0xFEJxServo Studio
0xFF广播地址

多字节整数和 float 均采用小端传输。float 为 IEEE 754 binary32。设备接收单帧 DATA 长度必须小于 128 字节;上位应用解析设备发送数据时,建议按 DATA <= 120 字节设计接收缓冲。

校验从帧头开始,到 DATA 最后一个字节结束:

uint8_t sum = 0;
uint8_t add = 0;
for (uint16_t i = 0; i < 6 + len; ++i) {
sum = (uint8_t)(sum + frame[i]);
add = (uint8_t)(add + sum);
}
frame[6 + len] = sum;
frame[7 + len] = add;

读取设备信息示例:

AB FE 01 E0 01 00 00 8B 2B

接口帧概览​

公开 USB 接口由少量基础帧组成。上位应用通常先读取设备信息,再动态读取参数列表和命令列表,最后按业务需要读写参数、执行命令或开启遥测。

ID方向名称说明
0x00设备 -> Studio应答校验对参数写入、命令执行等需要确认的帧返回处理应答
0xA0设备 -> Studio日志字符串输出状态、错误和提示文本
0xC0Studio -> 设备命令执行执行通过命令发现流程读取到的命令
0xC1双向命令数量/读取命令信息Studio 查询命令数量或指定命令描述
0xC2设备 -> Studio命令信息返回命令描述、参数类型、名称和说明
0xE0双向参数命令读取设备信息、参数数量、参数值或参数信息
0xE1双向参数值Studio 写入参数值,或设备返回参数值
0xE2设备 -> Studio参数信息返回参数类型、名称和说明
0xE3设备 -> Studio设备信息返回设备地址、版本号和设备名称
0xF1 - 0xF8设备 -> Studio遥测数据实时波形和运行数据

应答校验 0x00​

需要确认的写入类或执行类操作会收到 0x00 应答帧。上位应用应使用该帧确认设备已经收到并处理了对应报文。

DATA 固定 3 字节:

偏移类型名称说明
0uint8ID_GET被确认帧的 ID
1uint8SC_GET被确认帧的 SUM_CHECK
2uint8AC_GET被确认帧的 ADD_CHECK

上位应用应同时匹配 ID_GET、SC_GET 和 AC_GET,确认应答对应当前发送帧。参数写入类帧收到应答表示设备已处理该帧;若设备同时输出错误日志,应以日志和重新读取结果判断参数是否实际生效。

日志字符串 0xA0​

设备可通过日志帧向上位应用输出状态、告警和操作结果。集成软件可将不同颜色编码映射为普通提示、错误提示、成功提示或调试信息。

DATA 格式:

偏移类型名称说明
0uint8COLOR0 默认,1 红色,2 绿色,3 蓝色
1..NbytesTEXT文本字节,不包含结尾 0x00

设备单条日志文本最长按 100 字节处理。

参数读写​

参数接口用于构建设备配置页、调试面板或自动化配置流程。上位应用不需要预置参数表,应通过 0xE0、0xE2 动态读取参数元信息,再根据类型读写参数值。

参数类型编码:

编码类型长度
0uint81
1int81
2uint162
3int162
4uint324
5int324
8float4

参数命令 0xE0​

参数命令用于读取设备信息、参数数量、参数值和参数说明。推荐上位应用在连接设备后先读取设备信息和参数数量,再按参数 ID 顺序读取参数信息。

Studio 发送:

偏移类型名称说明
0uint8CMD参数命令
1..2uint16VAL命令参数;无参数命令可省略或填 0
CMDVAL返回说明
0x00无0xE3读取设备信息
0x01无0xE0读取参数数量
0x02参数 ID0xE1读取参数值
0x03参数 ID0xE2读取参数信息

设备返回参数数量时,DATA 为:

偏移类型名称说明
0uint8CMD固定 0x01
1..2uint16COUNT当前参数数量

参数 ID 从 0 开始,最大有效值为 COUNT - 1。

参数值 0xE1​

参数值帧既用于 Studio 写入参数,也用于设备返回参数当前值。上位应用写入前应使用参数信息中的类型和取值范围约束用户输入。

Studio 写入参数值:

偏移类型名称说明
0..1uint16PAR_ID参数 ID
2..N按参数类型PAR_VAL参数值

设备收到后返回 0x00 应答校验。写入会进行 ID、读写属性、长度和范围检查;失败时设备会通过 0xA0 输出原因。

设备返回参数值:

偏移类型名称说明
0..1uint16PAR_ID参数 ID
2..N按参数类型PAR_VAL参数当前值

参数信息 0xE2​

参数信息由设备维护,包含参数 ID、类型、名称和说明。集成软件应以该信息作为界面显示和数据解析依据。

偏移类型名称说明
0..1uint16PAR_ID参数 ID
2uint8PAR_TYPE参数类型编码
3..22bytes[20]PAR_NAME参数名称,不足部分为 0x00
23..NbytesPAR_INFO参数说明文本

设备信息 0xE3​

设备信息用于确认当前连接对象和版本信息。上位应用可将其用于设备选择、兼容性提示和日志记录。

偏移类型名称说明
0uint8DEV_ID设备地址
1..2uint16HW_VER硬件版本
3..4uint16SW_VER软件版本
5..6uint16BL_VERBootloader 版本
7..8uint16PT_VER协议版本
9..NbytesDEV_NAME设备名称,最长 20 字节

命令发现与执行​

命令接口采用动态发现方式,适合开放集成和二次开发。设备返回当前可用命令的标识、参数类型、命令名称和说明,上位应用据此生成按钮、表单或自动化动作。

推荐流程:

  1. Studio 发送 0xC1,CMD=0,读取命令数量。
  2. 设备返回 0xC1,给出当前命令数量。
  3. Studio 按命令序号发送 0xC1,CMD=1,读取每条命令信息。
  4. 设备返回 0xC2,包含命令三字节标识、参数类型、名称和说明。
  5. Studio 根据 0xC2 描述组装 0xC0 执行帧。

命令读取 0xC1​

命令读取帧用于查询命令数量或读取指定命令的元信息。上位应用应以设备返回的命令数量为准,逐条读取完整命令描述。

Studio 发送:

偏移类型名称说明
0uint8CMD0 读取数量,1 读取命令信息
1..2uint16VALCMD=1 时为命令序号

设备返回命令数量:

偏移类型名称说明
0uint8CMD固定 0
1..2uint16COUNT当前命令数量

命令信息 0xC2​

命令信息帧描述一条可执行命令。上位应用应按 VAL0..VAL7 的参数类型顺序组织输入参数,并按小端格式写入执行帧。

偏移类型名称说明
0..1uint16CMD_ID命令序号
2uint8CMD0命令模块标识
3uint8CMD1命令动作标识
4uint8CMD2命令功能标识
5..12uint8[8]VAL0..VAL7命令参数类型
13..32bytes[20]CMD_NAME命令名称,不足部分为 0x00
33..NbytesCMD_INFO命令说明文本

命令参数类型编码:

编码类型长度
0x00无参数0
0x01uint81
0x02int81
0x03uint162
0x04int162
0x05uint324
0x06int324
0x09float4

命令执行 0xC0​

命令执行帧用于触发设备侧开放的操作。命令含义由 0xC2 返回的信息定义,公开文档不要求上位应用提前维护完整命令清单。

Studio 发送:

偏移类型名称说明
0uint8CMD0来自 0xC2
1uint8CMD1来自 0xC2
2uint8CMD2来自 0xC2
3..N按 VAL0..VAL7ARGS命令参数,按顺序紧凑排列

设备匹配到命令后返回 0x00 应答校验,并执行对应操作。若命令参数不合法,设备会通过 0xA0 输出原因。

遥测数据​

遥测接口用于实时观察设备运行状态,可接入波形显示、数据记录、性能分析或自研监控系统。帧 0xF1 到 0xF8 可由命令层启停或调整发送分频;遥测帧不需要上位应用返回应答。

0xF1 位置、速度与电流​

DATA 长度 40 字节,全部为 float:

序号名称单位
1目标位置deg
2反馈位置deg
3位置误差deg
4目标速度rpm
5反馈速度rpm
6速度误差rpm
7Iq 目标A
8Iq 反馈A
9Id 目标A
10Id 反馈A

0xF2 母线、关节与温度​

DATA 长度 32 字节,全部为 float:

序号名称单位
1母线电流A
2母线电压V
3关节速度rpm
4关节角度deg
5电机速度rpm
6Iq 反馈A
7功率器件温度degC
8电机温度degC

0xF3 采样与编码器原始量​

DATA 长度 24 字节:

偏移类型名称单位
0floatU 相电流A
4floatV 相电流A
8uint32电机侧定向计数counts
12uint32关节侧定向计数counts
16uint32电机编码器原始值counts
20uint32FOC 最近周期数cycles

0xF4 速度环与转矩状态​

DATA 长度 44 字节:

偏移类型名称单位
0float速度目标rad/s
4float速度反馈rad/s
8float速度环比例项Nm
12float速度环积分项Nm
16float控制器转矩命令Nm
20float扰动估计Nm
24float扰动补偿Nm
28float转矩前馈Nm
32float输出转矩命令Nm
36float滤波后转矩命令Nm
40uint8转矩限幅标志0/1
41uint8电压限幅标志0/1
42uint8[2]保留固定补零

0xF5 位置环状态​

DATA 长度 64 字节:

偏移类型名称单位
0float目标位置deg
4float反馈位置deg
8float反馈速度rad/s
12float位置误差rad
16float抱闸占空比pu
20float位置环比例项-
24float位置环积分项-
28float位置环微分项-
32float积分累计值-
36float保留固定 0
40float限幅前输出-
44float限幅后输出-
48float速度前馈rad/s
52float速度命令rad/s
56float保留固定 0
60uint8振动滤波使能0/1
61uint8输出限幅标志0/1
62uint8积分限幅标志0/1
63uint8到位标志0/1

0xF6 轨迹状态​

DATA 长度 40 字节:

偏移类型名称单位
0float目标位置deg
4float反馈位置deg
8float位置误差deg
12float速度命令rpm
16float电机速度rpm
20float目标位置rad
24float轨迹位置rad
28float速度命令rad/s
32float保留固定 0
36uint8到位标志0/1
37uint8轨迹结果4 未就绪,5 完成
38uint8轨迹完成标志0/1
39uint8保留固定 0

0xF7 保留遥测​

DATA 长度 4 字节,当前为 float 0.0。

0xF8 CAN FIFO0 原始帧透传​

DATA 长度为 4 + N,其中 1 <= N <= 64:

偏移类型名称说明
0..1uint16CAN_IDCAN 标识符低 16 位
2uint8BUS_FORMAT总线数据格式
3uint8PAYLOAD_LEN后续原始数据长度 N
4..NbytesPAYLOAD原始数据

接入建议​

为保证集成软件具备良好的兼容性和现场稳定性,建议按以下方式实现:

  • 接收端应按字节流状态机查找 0xAB,读取 LEN 后再等待完整帧和校验字节。
  • 校验失败的帧直接丢弃,不要尝试解析 DATA。
  • 参数和命令流程应设置超时重试;重试时以 0x00 应答中的校验字段确认对应关系。
  • 上位应用应动态读取设备信息、参数数量和命令数量,不建议把具体参数表或命令表写死在软件中。
  • 遥测字段可能随产品系列和版本扩展,上位应用应保留未知字段的兼容处理能力。