INFO
读取驱动技术空Result(1) + Version(1) + Technology(1)| 字段 | 字节数 | 定义 |
|---|---|---|
Result | 1 | 成功为 OK |
Version | 1 | 电调业务协议版本,固定 1 |
Technology | 1 | 0 PULSE(方波);1 VECTOR(FOC)。带编码器的产品仍返回 VECTOR |
ESC · V1 草案PULSE 方波电调与 VECTOR FOC 电调共用本页的 CMD。控制命令统一为 TARGET,由请求中的 Mode 决定目标含义。报文、SEQ、CRC16、Result 和升级命令沿用产品通用协议。
以下只列请求 PAYLOAD 和成功响应 PAYLOAD。响应回显 CMD、SEQ,PAYLOAD 首字节为 Result。多字节整数按小端发送;有符号整数采用二进制补码。实现本协议的设备,其通用 Get Info.MaxPayload 至少为 23 字节。
UART / RS485、BLE 透传、Wi‑Fi TCP 使用 COBS;CAN / CAN FD 使用 ISO-TP。接口改变分帧,不改变电调命令。
INFO.Technology 返回 PULSE(方波)或 VECTOR(FOC)。带编码器的产品仍属于 VECTOR;具体型号由通用 Get Info.TargetID 识别。TARGET 用一条 CMD 承载下表四种控制方式。
| Mode | 控制方式 | Value 字节数 | Value 单位与范围 | 适用驱动技术 |
|---|---|---|---|---|
1 | DUTY · 调制比例 | 2 | 单位 0.1%;−100.0% 至 +100.0% | PULSE / VECTOR |
2 | CURRENT · 转矩电流 | 2 | 单位 0.1 A;−500.0 A 至 +500.0 A,受 MAX_IQ 限制 | VECTOR |
3 | SPEED · 电气转速 | 4 | 单位 1 eRPM;−200,000 eRPM 至 +200,000 eRPM | PULSE / VECTOR |
4 | POSITION · 多圈机械位置 | 4 | 单位 0.1°;−72,000,000.0° 至 +72,000,000.0°(±200,000 圈) | VECTOR + 编码器 |
DUTY 不等于转速百分比。DUTY、CURRENT、SPEED 的正负号分别表示调制方向、转矩方向和旋转方向;POSITION 的正负号表示零点两侧累计的机械位置,360.0° 为正向一整圈,720.0° 为正向两整圈。POSITION 的 0 是零点目标,不是停机。eRPM = 机械 RPM × 极对数。表中适用驱动技术表示该类别允许实现此 Mode;具体型号未实现时,TARGET 返回 UNSUPPORTED_MODE。Mode 值未知或 Value 长度不符时返回通用 BAD_PAYLOAD。
| State | 含义 | 控制规则 |
|---|---|---|
0 LOCKED | 输出关闭;上电或 LOCK 后尚未确认停稳 | 可读写参数;待设备确认停稳后进入 STOPPED |
1 READY | 已解锁,输出关闭 | Mode=NONE 时首次选择;否则只能继续原 Mode |
2 RUNNING | 正在驱动或保持位置 | 只能更新原 Mode 的目标 |
3 FAULT | 输出关闭,故障锁存 | 原因解除后 CLEAR_FAULT,回到 LOCKED |
4 STOPPED | 输出关闭,设备已确认电机停稳 | 可 UNLOCK 后选择新的 Mode,也可设置位置零点 |
切换 Mode 的步骤固定为 LOCK → 等待 STATUS.State=STOPPED → UNLOCK → TARGET(新 Mode, Value)。LOCK 清除旧 Mode 和目标,关闭输出;设备确认电机停稳后才报告 STOPPED,主机不得仅凭 LOCK 成功或单次速度读数为 0 判定停稳。未完成上述步骤就改变 Mode,返回 BAD_STATE,旧 Mode 和目标不变。同一 Mode 可在 RUNNING 时更新 Value。
STOPPED 的判据:输出已关闭,且有效转速反馈显示绝对值不超过 100 eRPM,连续达到 STOP_CONFIRM_MS(默认 250 ms);期间转速超限须重新计时。若低速转速反馈不可用,设备须采用可确认旋转已停止的检测方法;无法确认时保持 LOCKED,并在 STATUS 中返回 ERPM=0x80000000,不得仅因等待超时或反馈无效报告 STOPPED。STOPPED 表示设备依据反馈确认的停稳状态,不作为机械安全防护功能。
DUTY、CURRENT、SPEED 的 Value=0 关闭主动驱动并进入 READY,但保留当前 Mode;POSITION 到达目标后继续保持位置,State 保持 RUNNING,需用 LOCK 停止保持。成功响应 OK 表示目标已接受,不表示已达到速度或位置。
空Result(1) + Version(1) + Technology(1)| 字段 | 字节数 | 定义 |
|---|---|---|
Result | 1 | 成功为 OK |
Version | 1 | 电调业务协议版本,固定 1 |
Technology | 1 | 0 PULSE(方波);1 VECTOR(FOC)。带编码器的产品仍返回 VECTOR |
空Result(1) + State(1) + Mode(1) + Target(4) + Voltage(2) + Current(2) + ERPM(4) + Degree(4) + Temp(2) + MotorTemp(2)| 字段 | 字节数 | 定义 | 取值范围 |
|---|---|---|---|
Result | 1 | 成功为 OK | 0x00 |
State | 1 | 0 LOCKED;1 READY;2 RUNNING;3 FAULT;4 STOPPED。故障详情用 GET_FAULT 查询 | LOCKED / READY / RUNNING / FAULT / STOPPED |
Mode | 1 | 0 NONE;1 DUTY;2 CURRENT;3 SPEED;4 POSITION;LOCK 后为 NONE | NONE / DUTY / CURRENT / SPEED / POSITION |
Target | 4 | 有符号;按 Mode 使用与 TARGET.Value 相同的单位,不压缩或换算;NONE 时为 0 | NONE:0;DUTY:−100.0% 至 +100.0%;CURRENT:−500.0 A 至 +500.0 A;SPEED:−200,000 eRPM 至 +200,000 eRPM;POSITION:−72,000,000.0° 至 +72,000,000.0° |
Voltage | 2 | 无符号,直流母线电压,单位 0.1 V | 0.0 V 至 300.0 V;0xFFFF 表示不可用 |
Current | 2 | 有符号,单位 0.1 A;PULSE 为母线电流(正值取电、负值回馈),VECTOR 为相线电流的转矩轴分量 Iq(正负为转矩方向) | −500.0 A 至 +500.0 A;0x7FFF 表示不可用 |
ERPM | 4 | 有符号,实时电气转速,单位 1 eRPM;POSITION 模式下也返回实时转速 | −200,000 eRPM 至 +200,000 eRPM;0x80000000 表示不可用 |
Degree | 4 | 有符号,相对零点累计的多圈机械位置,单位 0.1°;与当前 Mode 无关 | −72,000,000.0° 至 +72,000,000.0°;未建立零点或不支持位置测量时为 0x80000000 |
Temp | 2 | 有符号,电调温度,单位 0.1 °C | −50.0 °C 至 250.0 °C;0x7FFF 表示不可用 |
MotorTemp | 2 | 有符号,电机温度,单位 0.1 °C | −50.0 °C 至 250.0 °C;0x7FFF 表示不可用 |
不支持电机温度测量的型号返回 MotorTemp=0x7FFF。表中是协议范围,实际允许的工作范围仍由型号规格和保护参数决定。Target 是当前生效的目标:HOST 模式来自 TARGET,外部输入模式来自输入映射;按对应 Mode 的单位和精度返回。Degree 为累计圈数,不对 360° 取模。设备复位后须重新建立零点,不能沿用复位前的累计位置。
空Result(1)仅 State=STOPPED 且无故障时接受;成功进入 READY,Mode=NONE、Target=0,不自动驱动。尚未确认停稳时返回 BAD_STATE。INPUT_SOURCE 为外部输入时,解锁前还须连续 INPUT_NEUTRAL_MS(默认 250 ms)收到有效零目标;输入无效或已有非零目标时返回 BAD_STATE,保持 STOPPED。
空Result(1)任何状态均可请求;清零目标、关闭主动驱动并将 Mode 设为 NONE。无故障时先进入 LOCKED,设备确认电机停稳后进入 STOPPED;故障已锁存时仍为 FAULT。LOCK 成功不代表转子已停稳。
Mode(1) + Value(2或4)Result(1)仅 INPUT_SOURCE=HOST 时接受;外部输入模式返回 BAD_STATE。Mode 和 Value 的字节数、单位及允许范围见上表。Mode=1/2 时 Value 为有符号 2 字节;Mode=3/4 时为有符号 4 字节。不发送填充字节。Mode 不支持返回 0x80 UNSUPPORTED_MODE;Mode 未定义、长度或取值错误返回 BAD_PAYLOAD。当前 Mode 不为 NONE 且请求改用另一 Mode 时返回 BAD_STATE。失败时原 Mode、目标与输出不变。
HOST 模式运行中,相邻两条当前 Mode 的有效 TARGET 间隔不得超过 TARGET_TIMEOUT_MS(默认 3000 ms);POSITION 保持也需重复目标。STATUS 查询不续约。超时关闭输出并进入 FAULT,不会自动重新解锁。
ParamID(1)Result(1) + ParamID(1) + Length(1) + Value(N)ParamID 是 1 至 255 的十进制编号,报文中占 1 字节。仅返回该型号实现的 ParamID;未知、预留或不适用时返回 BAD_PAYLOAD。
ParamID(1) + Length(1) + Value(N)Result(1)仅 LOCKED 或 STOPPED 状态接受;INPUT_SOURCE、INPUT_CONTROL_MODE 只允许在 STOPPED 时修改。其余状态返回 BAD_STATE。未知、预留或不适用的 ParamID,以及 Length、取值范围或参数关系不合法时返回 BAD_PAYLOAD。修改仅在 RAM 生效,不能超过型号硬件安全极限。
空Result(1)仅 LOCKED 或 STOPPED 时接受;完成非易失存储写入并校验后回复 OK。不支持持久化的型号返回 BAD_COMMAND。
空Result(1)原因已消失且输出关闭后清除锁存,State 从 FAULT 回到 LOCKED;不会自动解锁。原因仍存在时返回 BAD_STATE。
空Result(1)仅支持 POSITION 的 VECTOR + 编码器型号实现;STOPPED 且位置传感器可用时,将当前位置设为逻辑零点。主机须确保轴处于预期零点。零点仅在本次上电期间有效,复位后须重新建立。
空Result(1) + Fault(1)任何状态均可查询;无故障时 Fault=0。STATUS.State=FAULT 时用此命令读取锁存的原因。
电调专用 Result:0x80 UNSUPPORTED_MODE 仅用于 TARGET,表示 Mode 已定义但本设备未实现。其他结果码沿用通用协议。
ParamID 使用十进制编号 1 至 255,报文中占 1 字节;0 无效。每个 ParamID 的 Value 长度和数值编码由下表确定;Value 多字节时为小端,有符号值用二进制补码。所有已实现的参数均可通过 GET_PARAM 读取、在 LOCKED 或 STOPPED 状态通过 SET_PARAM 修改;修改后用 SAVE_PARAM 持久化。出厂值与可设上限不得越过型号硬件安全范围。
按用途展开下列参数组。参数名、ParamID 与报文编码不受页面分组影响。
| ParamID | 参数 | 适用 | 长度 | 单位 / 编码 | 定义 |
|---|---|---|---|---|---|
1 | POLE_PAIRS | 通用 | 1字节 | 无符号;极对数 | 1 至 100 极对;机械 RPM = eRPM ÷ 极对数 |
2 | REVERSE_DIRECTION | 通用 | 1字节 | 无符号;0 或 1 | 反转电机轴的正方向定义;所有有符号目标与测量的方向一致翻转 |
3 | INPUT_SOURCE | 通用 | 1字节 | 无符号;枚举 | 0 HOST(本协议 TARGET);1 PWM;2 ADC;3 DSHOT。设备不支持的来源返回 BAD_PAYLOAD |
4 | INPUT_CONTROL_MODE | 通用 | 1字节 | 无符号;Mode | 外部输入所控制的模式:1 DUTY;2 CURRENT;3 SPEED。仅 INPUT_SOURCE 非 HOST 时使用;模式受设备能力限制 |
12 | STOP_CONFIRM_MS | 通用 | 2字节 | 无符号;1 ms | 转速满足停稳阈值后须连续保持的时间,100 ms 至 5,000 ms;默认 250 ms |
13 | TARGET_TIMEOUT_MS | 通用 | 2字节 | 无符号;1 ms | HOST 模式运行中相邻有效 TARGET 的最大间隔,100 ms 至 10,000 ms;默认 3,000 ms |
| ParamID | 参数 | 适用 | 长度 | 单位 / 编码 | 定义 |
|---|---|---|---|---|---|
5 | PWM_MIN_US | 通用 | 2字节 | 无符号;1 µs | PWM 有效输入下限,500 µs 至 2,500 µs;须小于 PWM_MAX_US |
6 | PWM_MAX_US | 通用 | 2字节 | 无符号;1 µs | PWM 有效输入上限,500 µs 至 2,500 µs;须大于 PWM_MIN_US |
7 | ADC_MIN_MV | 通用 | 2字节 | 无符号;1 mV | 模拟输入下限,0 mV 至 3,000 mV;须小于 ADC_MAX_MV |
8 | ADC_MAX_MV | 通用 | 2字节 | 无符号;1 mV | 模拟输入上限,0 mV 至 3,000 mV;须大于 ADC_MIN_MV |
9 | INPUT_NEUTRAL_MS | 通用 | 2字节 | 无符号;1 ms | 外部输入解锁前有效零目标须连续保持的时间,100 ms 至 5,000 ms;默认 250 ms |
14 | PWM_MID_US | 通用 | 2字节 | 无符号;1 µs | PWM 零目标中点,须大于 PWM_MIN_US 且小于 PWM_MAX_US;默认 1,500 µs |
15 | ADC_MID_MV | 通用 | 2字节 | 无符号;1 mV | ADC 零目标中点,须大于 ADC_MIN_MV 且小于 ADC_MAX_MV;默认 1,500 mV |
16 | INPUT_DEADBAND | 通用 | 1字节 | 无符号;0.1% 全量程 | PWM / ADC 中点两侧各自的零目标死区宽度,0.0% 至 10.0%;默认 2.0%;死区边界须分别落在 MIN 与 MAX 之间 |
| ParamID | 参数 | 适用 | 长度 | 单位 / 编码 | 定义 |
|---|---|---|---|---|---|
10 | MAX_DUTY | 通用 | 2字节 | 无符号;0.1% | 调制比例绝对值上限,0.1% 至 100.0% |
11 | MAX_SPEED | 通用 | 4字节 | 无符号;1 eRPM | 电气转速目标绝对值上限,1 eRPM 至 200,000 eRPM;不支持 SPEED 的型号可不实现 |
17 | DUTY_SLEW_RATE | 通用 | 1字节 | 无符号;0.1%/ms | DUTY 模式的实际调制比例最大变化速率,0 表示不另行限制;1 至 100 表示每毫秒最多变化 0.1% 至 10.0%;默认 0。作用于 HOST 与外部输入,跨越零点时同样生效,不改变 STATUS.Target;零目标、LOCK 与故障关断须立即关闭输出,不受此速率限制 |
20 | MAX_BUS_CURRENT | 通用 | 2字节 | 无符号;0.1 A | 直流母线取电上限,0.1 A 至 500.0 A |
21 | MAX_REGEN_CURRENT | 通用 | 2字节 | 无符号;0.1 A | 回馈到母线的电流绝对值上限,0.0 A 至 500.0 A;0 表示不允许主动回馈 |
30 | MIN_BUS_VOLTAGE | 通用 | 2字节 | 无符号;0.1 V | 欠压保护阈值,0.0 V 至 300.0 V,须小于过压阈值 |
31 | MAX_BUS_VOLTAGE | 通用 | 2字节 | 无符号;0.1 V | 过压保护阈值,0.0 V 至 300.0 V,须大于欠压阈值 |
40 | ESC_TEMP_LIMIT | 通用 | 2字节 | 有符号;0.1 °C | 电调过温阈值,不得高于硬件允许值 |
41 | MOTOR_TEMP_LIMIT | 通用 | 2字节 | 有符号;0.1 °C | 有电机温度传感器时实现;传感器缺失的型号不实现 |
| ParamID | 参数 | 适用 | 长度 | 单位 / 编码 | 定义 |
|---|---|---|---|---|---|
100 | COMMUTATION_ADVANCE | PULSE | 2字节 | 无符号;0.1° 电角度 | 方波换相进角:相对理想换相点提前的电角度,0.0° 至 30.0°;默认 15.0°。与常称的 timing 属同一调校概念,本协议直接传实际电角度,不传档位编号 |
101 | STARTUP_DUTY | PULSE | 2字节 | 无符号;0.1% | 起转阶段的调制比例上限,0.1% 至 MAX_DUTY |
102 | STALL_ERPM | PULSE | 4字节 | 无符号;1 eRPM | 方波失速检测阈值 |
| ParamID | 参数 | 适用 | 长度 | 单位 / 编码 | 定义 |
|---|---|---|---|---|---|
150 | MAX_IQ | VECTOR | 2字节 | 无符号;0.1 A | Iq 目标绝对值上限,0.1 A 至 500.0 A;仍受硬件电流保护约束 |
151 | MOTOR_R | VECTOR | 4字节 | 无符号;0.1 mΩ | FOC 校准所得电机相电阻;可根据电机实测值修改 |
152 | MOTOR_L | VECTOR | 4字节 | 无符号;0.01 µH | FOC 校准所得电机相电感;可根据电机实测值修改 |
153 | FLUX_LINKAGE | VECTOR | 4字节 | 无符号;1 µWb | FOC 校准所得磁链;可根据电机实测值修改 |
| ParamID | 参数 | 适用 | 长度 | 单位 / 编码 | 定义 |
|---|---|---|---|---|---|
200 | POSITION_MAX_SPEED | VECTOR + 编码器 | 4字节 | 无符号;1 eRPM | 位置运动电气转速上限 |
201 | POSITION_MAX_ACCEL | VECTOR + 编码器 | 4字节 | 无符号;1 eRPM/s | 位置运动电气转速变化率上限 |
INPUT_SOURCE=HOST 时通过 TARGET 控制。选择 PWM、ADC 或 DSHOT 后,UNLOCK 仍须等待 STOPPED,且输入须连续 INPUT_NEUTRAL_MS 保持有效零目标;解锁后新收到的非零目标才可驱动,按 INPUT_CONTROL_MODE 产生目标,不再用 TARGET 续约。PWM、ADC 的 MIN 对应最大反向目标、MAX 对应最大正向目标;MID 为零目标中点,INPUT_DEADBAND 定义中点两侧各自占全量程的零目标区间,区间两侧分别线性映射到反向和正向目标。DSHOT 的零油门为零目标,有效非零油门映射为正向目标;反向需由具体型号另行定义,不属于本版通用 DSHOT 映射。
外部输入解锁后,PWM / DSHOT 连续 100 ms 未收到有效帧,或 ADC 测量无效、超出型号允许电气范围时,立即关闭输出,进入 FAULT,GET_FAULT 返回 0x08;输入恢复后仍须 CLEAR_FAULT、等待 STOPPED 并重新 UNLOCK,不自动恢复驱动。ADC 无法仅凭位于正常范围的电压识别断线,型号硬件须提供断线检测或确保断线时落在无效区,不得把断线当作非零目标。各型号的引脚、供电、采样和信号电气要求由型号资料给出;不支持的输入来源或控制模式返回 BAD_PAYLOAD。
ParamID 分段:1 至 99 通用(基础与输入、电流、电压、温度);100 至 149 PULSE 专用;150 至 199 VECTOR 专用;200 至 255 其他扩展,当前 200 至 201 用于带编码器的 VECTOR 型号。表中“通用”表示编号可跨驱动技术使用,具体参数仍以型号实现为准。参数不适用或型号未实现时,GET_PARAM / SET_PARAM 返回 BAD_PAYLOAD。
| Fault | 含义 |
|---|---|
0x00 | 无故障 |
0x01 | 控制命令超时 |
0x02 | 过流 |
0x03 | 母线过压 |
0x04 | 母线欠压 |
0x05 | 电调过温 |
0x06 | 位置或转速反馈丢失 |
0x07 | 电机过温 |
0x08 | 外部控制输入丢失或无效 |
0xFF | 其他硬件故障 |
故障发生时关闭主动驱动并进入 FAULT;原因消失后仍保持锁存,CLEAR_FAULT 成功才回到 LOCKED。