电调业务协议
PULSE 方波与 VECTOR FOC 共用本页的业务命令。报文帧、CRC、SEQ 和通用结果码见产品通用协议;这里直接列出电调命令的请求与响应 PAYLOAD。
电调业务命令沿用产品通用报文与分帧。
快速接入
- 用通用 Get Info 确认型号,再读
INFO(0x50)与STATUS(0x51)。 - 等待
State=STOPPED,发送UNLOCK(0x52)。 - 按控制方式发送
TARGET(0x54);运行中在目标超时前重发。 - 发送
LOCK(0x53)关闭输出;切换控制模式须等待再次进入 STOPPED。
响应 PAYLOAD 首字节始终为 Result;下方“成功返回”只列 Result 后的字段。多字节整数均为小端,有符号值用二进制补码。未实现的命令返回 BAD_COMMAND。
控制模式与状态
| Mode | 控制方式 | Value 编码与范围 | 适用 |
|---|---|---|---|
1 | DUTY 调制比例 | 有符号2字节;0.1%;−100.0% 至 +100.0% | PULSE / VECTOR |
2 | CURRENT 转矩电流 | 有符号4字节;0.001 A;−500.000 A 至 +500.000 A | VECTOR |
3 | SPEED 电气转速 | 有符号4字节;1 eRPM;−200,000 至 +200,000 eRPM | PULSE / VECTOR |
4 | POSITION 单圈位置 | 有符号4字节;0.1°;−179.9° 至 +179.9° | VECTOR + 编码器 |
5 | MIT 连续阻抗控制 | 20字节;位置、速度、Kp、Kd、前馈力矩 | VECTOR + 编码器 |
| State | 含义 | State | 含义 |
|---|---|---|---|
0 LOCKED | 输出关闭 | 1 READY | 已解锁,等待目标 |
2 RUNNING | 驱动或保持位置 | 3 FAULT | 故障锁存,输出关闭 |
4 STOPPED | 已确认停稳 | 5 DETECTING | 辨识或标定中 |
切换 Mode:LOCK → 等待 STOPPED → UNLOCK → TARGET。DUTY、CURRENT、SPEED 的零目标停止主动驱动;POSITION、MIT 保持目标直到 LOCK。目标超时默认 3000 ms,超时进入 FAULT。
MIT 连续位置控制
TARGET(Mode=5) 一次发送 5 个字段,共 21 字节;位置从本次 SET_POSITION_ZERO 起累计,可跨多圈。
| 字段 | 长度 | 单位 / 范围 |
|---|---|---|
Position | 有符号4字节 | 1 µrad;−2147.483647 至 +2147.483647 rad |
Velocity | 有符号4字节 | 0.001 rad/s;受 MAX_SPEED 限制 |
Kp | 无符号4字节 | 0.001 Nm/rad;0 至 500.000 Nm/rad |
Kd | 无符号4字节 | 0.001 Nm·s/rad;0 至 20.000 Nm·s/rad |
Torque | 有符号4字节 | 0.001 Nm;受电流上限与 Kt 限制 |
顺序:Mode(1)=5 + Position(4) + Velocity(4) + Kp(4) + Kd(4) + Torque(4)。需先建立有效编码器参考与位置零点,并确认 Kt 有效。控制器按 Iq = [Kp×位置误差 + Kd×速度误差 + Torque] / Kt 算出限幅电流;用 MIT_STATUS 读取连续反馈。Position=0x80000000 禁止作为目标。
命令速查 · 0x50–0x5F
表中的请求和成功返回均为 PAYLOAD;成功返回前自动带 Result(1)。点击带链接的命令可跳到字段定义。
| CMD | 命令 | 请求 | 成功返回 | 用途 / 条件 |
|---|---|---|---|---|
0x50 | INFO | 空 | Major(1) + Revision(1) | 业务版本;VECTOR 的 MIT 功能修订为 7 |
0x51 | STATUS | 空 | 状态与测量数据(28字节) | 读取状态、目标和测量值 |
0x52 | UNLOCK | 空 | 空 | STOPPED 且无故障时进入 READY |
0x53 | LOCK | 空 | 空 | 关闭输出;可中止辨识或标定 |
0x54 | TARGET | Mode(1) + Value | 空 | 设置目标;切换 Mode 须先停机 |
0x55 | GET_PARAM | ParamID(1) | ParamID(1) + Length(1) + Value(N) | 读取参数 |
0x56 | SET_PARAM | ParamID(1) + Length(1) + Value(N) | 空 | 停机修改,先写入 RAM |
0x57 | SAVE_PARAM | 空 | 空 | 将 RAM 参数保存到 Flash |
0x58 | CLEAR_FAULT | 空 | 空 | 故障原因消失后清除锁存 |
0x59 | SET_POSITION_ZERO | 空 | 空 | STOPPED 且编码器参考有效 |
0x5A | GET_FAULT | 空 | Fault(1) | 读取锁存故障码 |
0x5B | MOTOR_DETECT | Action + 启动参数 | 辨识快照(17字节) | 无感 FOC 电机参数辨识 |
0x5C | SENSOR_STATUS | 空 | 编码器状态(13字节) | 查询信号、标定与参考 |
0x5D | ENCODER_CALIBRATE | Action + 启动参数 | 标定快照(8字节) | 编码器方向与电角度标定 |
0x5E | FACTORY_RESET_MOTOR | 空 | 空 | STOPPED 时恢复电机配置 |
0x5F | MIT_STATUS | 空 | MIT 反馈(32字节) | 连续位置、速度与转矩 |
STATUS · 28字节状态数据
| 字段 | 字节 | 编码 |
|---|---|---|
| State / Mode | 1 / 1 | 枚举值见“控制模式与状态”;Mode=0 表示 NONE |
| Target | 4 | 有符号;按 Mode 的 Value 单位;MIT 时仅回显 Position 的 µrad 原始值 |
| Voltage | 2 | 无符号,0.1 V;0.0 至 300.0 V |
| BusCurrent / MotorCurrent | 4 / 4 | 有符号,0.001 A;母线电流与电机 Iq 分开返回 |
| ERPM / Degree | 4 / 4 | 有符号,1 eRPM / 0.1°;Degree 为单圈 −180.0° 至 +179.9° |
| Temp / MotorTemp | 2 / 2 | 有符号,0.1 °C;−50.0 至 250.0 °C |
字段顺序固定为 State + Mode + Target + Voltage + BusCurrent + MotorCurrent + ERPM + Degree + Temp + MotorTemp。无效测量:4字节有符号值用 0x80000000,温度用 0x7FFF,电压用 0xFFFF;PULSE 型号没有电机电流测量时 MotorCurrent 为不可用。跨圈位置和力矩请读 MIT_STATUS。
MOTOR_DETECT · 无感 FOC 电机辨识
仅 VECTOR、无感控制、HOST 输入、STOPPED 且无故障时启动。设备限流转动,辨识电阻、电感、磁链;成功应用到 RAM,用 GET_PARAM 检查并以 SAVE_PARAM 保存。运行中 LOCK 可中止,TARGET 被拒绝。
| Action | 请求 PAYLOAD | 含义 |
|---|---|---|
| 0 | 00 + MaxDetectCurrent(4) | 按指定电流启动;单位 0.001 A,最小 0.100 A,受 MAX_IQ 和型号限制 |
| 1 | 01 | 查询进度与结果 |
| 2 | 02 + ProfileID(1) | 按预设电机类型启动;ProfileID 为 0–8 |
返回数据:
DetectState(1) + Stage(1) + Progress(1) + Error(1) + Applied(1) + MotorR(4) + MotorL(4) + FluxLinkage(4)
DetectState:0 空闲、1 运行、2 成功、3 失败、4 取消;Stage:0 无、1 电阻、2 电感、3 磁链、4 应用;Progress 为 0–100%,255 表示不可估算。Applied=1 才表示结果已应用。电阻单位 0.1 mΩ,电感 0.01 µH,磁链 1 µWb。Error:0 无、1 电阻失败、2 电感失败、3 磁链失败、4 保护、5 超时、6 通信超时、7 用户取消、8 结果无效。建议每 500 ms 查询,3 s 无有效查询或总时长超过 120 s 时设备结束辨识。
查看 ProfileID 预设
| ID | 电机类型 | 损耗功率 |
|---|---|---|
| 0 | 迷你外转子 | 20 W |
| 1 | 小型外转子 | 50 W |
| 2 | 中型外转子 | 120 W |
| 3 | 大型外转子 | 400 W |
| 4 | 小型内转子 | 50 W |
| 5 | 中型内转子 | 140 W |
| 6 | 大型内转子 | 400 W |
| 7 | 直驱轮毂 | 150 W |
| 8 | 小型涵道内转子 | 110 W |
SENSOR_STATUS · 编码器状态
返回数据:
RawCount(8) + SignalValid(1) + IndexSeen(1) + CalibrationValid(1) + ReferenceValid(1) + IndexError(1)
RawCount 是本次上电的有符号 A/B 四倍频计数;标志位为 0 或 1。ABZ 的 IndexSeen 表示见到 Z;AB+PWM 时表示绝对角参考有效。闭环启动必须满足 ReferenceValid=1,硬件初始化不能代替信号验证。
ENCODER_CALIBRATE · 编码器自动标定
仅 VECTOR + 编码器、HOST 输入、STOPPED 且无故障时启动。设备自行限流转动,测方向和电角度偏移;成功应用到 RAM,SAVE_PARAM 才写入 Flash。失败或取消恢复原配置,LOCK 也可中止;运行中拒绝 TARGET。
| Action | 请求 PAYLOAD | 含义 |
|---|---|---|
| 0 | 00 + MaxCalCurrent(4) | 启动;电流单位 0.001 A,受 MAX_IQ 和型号限制 |
| 1 | 01 | 查询进度与结果 |
| 2 | 02 | 取消 |
返回数据:
CalState(1) + Stage(1) + Progress(1) + Error(1) + Applied(1) + Direction(1) + ElectricalOffset(2)
CalState:0 空闲、1 运行、2 成功、3 失败、4 取消;Stage:0 无、1 检查信号、2 寻找参考、3 方向、4 偏移、5 应用;Progress 为 0–100%,255 表示不可估算。Applied=1 才表示标定生效。Direction 为 ±1;ElectricalOffset 单位 0.1° 电角度。Error:0 无、1 无 AB 信号、2 找不到参考、3 索引不符、4 方向失败、5 偏移失败、6 保护、7 超时、8 通信超时、9 用户取消、10 结果无效。建议每 500 ms 查询,3 s 无有效查询或总时长超过 120 s 时设备结束标定。
上电后 ABZ 需重新验证 Z,AB+PWM 需重新取得绝对角参考;未取得有效参考时禁止编码器闭环。位置零点也须在本次上电重新设置。
MIT_STATUS · 32字节连续反馈
| 字段 | 字节 | 单位 / 含义 |
|---|---|---|
| Position | 4 | 有符号,1 µrad;连续机械位置 |
| Velocity | 4 | 有符号,0.001 rad/s |
| EstimatedTorque | 4 | 有符号,0.001 Nm;估算转矩 |
| IqCommand | 4 | 有符号,0.001 A;限幅后的电流指令 |
| Kt | 4 | 无符号,1 µNm/A;当前转矩常数 |
| PeriodUs / LateCycles | 4 / 4 | 控制周期 µs / 超过 2000 µs 的累计次数 |
| Flags | 4 | 位0 ACTIVE;1 REFERENCE;2 ZERO;3 SATURATED;4 MANUAL_KT;5 CONTINUOUS |
4字节有符号反馈不可用时为 0x80000000,Kt 不可用为 0xFFFFFFFF。读取反馈不会刷新目标超时。
仅 TARGET 的已定义但设备不支持的 Mode 使用 0x80 UNSUPPORTED_MODE;其他结果码见通用协议。
参数
用 GET_PARAM(0x55) 读取,用 SET_PARAM(0x56) 修改 RAM,再用 SAVE_PARAM(0x57) 保存。ParamID 占 1 字节;下列分组默认收起,按需展开。
基础与控制 ParamID 1–4、12–13
| ID | 参数 | 适用 | 长度 | 取值 / 用途 |
|---|---|---|---|---|
1 | POLE_PAIRS | 通用 | 1字节 | 无符号;1–100 极对 |
2 | REVERSE_DIRECTION | 通用 | 1字节 | 无符号;0 正向,1 反向 |
3 | INPUT_SOURCE | 通用 | 1字节 | 无符号;0 HOST、1 PWM、2 ADC、3 DSHOT |
4 | INPUT_CONTROL_MODE | 通用 | 1字节 | 无符号;外部输入控制 Mode:1 DUTY、2 CURRENT、3 SPEED |
12 | STOP_CONFIRM_MS | 通用 | 2字节 | 无符号;1 ms;100–5000,默认 250 |
13 | TARGET_TIMEOUT_MS | 通用 | 2字节 | 无符号;1 ms;100–10,000,默认 3000 |
输入校准 ParamID 5–9、14–16
| ID | 参数 | 适用 | 长度 | 取值 / 用途 |
|---|---|---|---|---|
5 | PWM_MIN_US | 通用 | 2字节 | 无符号;1 µs;500–2500,须小于 PWM_MID_US |
6 | PWM_MAX_US | 通用 | 2字节 | 无符号;1 µs;500–2500,须大于 PWM_MID_US |
7 | ADC_MIN_MV | 通用 | 2字节 | 无符号;1 mV;0–3000,须小于 ADC_MID_MV |
8 | ADC_MAX_MV | 通用 | 2字节 | 无符号;1 mV;0–3000,须大于 ADC_MID_MV |
9 | INPUT_NEUTRAL_MS | 通用 | 2字节 | 无符号;1 ms;100–5000,默认 250 |
14 | PWM_MID_US | 通用 | 2字节 | 无符号;1 µs;位于 PWM_MIN_US 与 PWM_MAX_US 之间,默认 1500 |
15 | ADC_MID_MV | 通用 | 2字节 | 无符号;1 mV;位于 ADC_MIN_MV 与 ADC_MAX_MV 之间,默认 1500 |
16 | INPUT_DEADBAND | 通用 | 1字节 | 无符号;0.1% 全量程;0.0%–10.0%,默认 2.0% |
输出限制与保护 ParamID 10–11、17、20–41
| ID | 参数 | 适用 | 长度 | 取值 / 用途 |
|---|---|---|---|---|
10 | MAX_DUTY | 通用 | 2字节 | 无符号;0.1%;0.1%–100.0% |
11 | MAX_SPEED | 通用 | 4字节 | 无符号;1 eRPM;1–200,000 |
17 | DUTY_SLEW_RATE | 通用 | 1字节 | 无符号;0.1%/ms;0 不限速,1–100 限制变化率 |
20 | MAX_BUS_CURRENT | 通用 | 4字节 | 无符号;0.001 A;母线取电上限 0.001–500.000 A |
21 | MAX_REGEN_CURRENT | 通用 | 4字节 | 无符号;0.001 A;回馈上限 0–500.000 A,0 禁用 |
30 | MIN_BUS_VOLTAGE | 通用 | 2字节 | 无符号;0.1 V;欠压阈值 0–300.0 V,须小于 31 |
31 | MAX_BUS_VOLTAGE | 通用 | 2字节 | 无符号;0.1 V;过压阈值 0–300.0 V,须大于 30 |
40 | ESC_TEMP_LIMIT | 通用 | 2字节 | 有符号;0.1 °C;电调过温阈值 |
41 | MOTOR_TEMP_LIMIT | 通用 | 2字节 | 有符号;0.1 °C;电机过温阈值 |
PULSE 方波专用 ParamID 100–102
| ID | 参数 | 适用 | 长度 | 取值 / 用途 |
|---|---|---|---|---|
100 | COMMUTATION_ADVANCE | PULSE | 2字节 | 无符号;0.1° 电角度;进角 0–30.0°,默认 15.0° |
101 | STARTUP_DUTY | PULSE | 2字节 | 无符号;0.1%;起转上限 0.1%–MAX_DUTY |
102 | STALL_ERPM | PULSE | 4字节 | 无符号;1 eRPM;失速阈值 |
VECTOR FOC 与 MIT ParamID 150–155
| ID | 参数 | 适用 | 长度 | 取值 / 用途 |
|---|---|---|---|---|
150 | MAX_IQ | VECTOR | 4字节 | 无符号;0.001 A;电机 Iq 上限 0.001–500.000 A |
151 | MOTOR_R | VECTOR | 4字节 | 无符号;0.1 mΩ;电机相电阻 |
152 | MOTOR_L | VECTOR | 4字节 | 无符号;0.01 µH;电机相电感 |
153 | FLUX_LINKAGE | VECTOR | 4字节 | 无符号;1 µWb;电机磁链 |
154 | MIT_KT_OVERRIDE | VECTOR + 编码器 | 4字节 | 无符号;1 µNm/A;0 自动估算,最大 100 Nm/A |
155 | MIT_KT | VECTOR + 编码器 | 4字节 | 无符号;1 µNm/A;当前 Kt,只读 |
编码器与位置 ParamID 200–204
| ID | 参数 | 适用 | 长度 | 取值 / 用途 |
|---|---|---|---|---|
200 | POSITION_MAX_SPEED | VECTOR + 编码器 | 4字节 | 无符号;1 eRPM;位置运动速度上限 |
201 | POSITION_MAX_ACCEL | VECTOR + 编码器 | 4字节 | 无符号;1 eRPM/s;位置运动加速度上限 |
202 | SENSOR_SOURCE | VECTOR + 编码器 | 1字节 | 无符号;0 无感,1 编码器;仅 STOPPED 修改 |
203 | ABZ_COUNTS_PER_REV | VECTOR + 编码器 | 4字节 | 无符号;计数/机械圈;4–65,536,须为 4 的倍数;1024 PPR 配 4096 |
204 | SENSOR_INTERFACE | VECTOR + 编码器 | 1字节 | 无符号;0 ABZ,1 AB+PWM;后者固定 1024 计数/圈 |
ParamID 1–99 通用、100–149 PULSE、150–199 VECTOR、200–255 扩展。MIT_KT(155)只读。编码器的极对数、方向、计数或接口改变后,旧标定与零点失效。当前 VECTOR 型号仅支持 HOST 输入。
故障码
| Fault | 含义 | Fault | 含义 |
|---|---|---|---|
0x00 | 无故障 | 0x01 | 目标超时 |
0x02 | 过流 | 0x03 | 母线过压 |
0x04 | 母线欠压 | 0x05 | 电调过温 |
0x06 | 反馈丢失 | 0x07 | 电机过温 |
0x08 | 外部输入无效 | 0xFF | 其他硬件故障 |
故障时输出关闭并锁存;原因消失后发送 CLEAR_FAULT,设备返回 LOCKED,需重新等待停稳与解锁。
电调业务协议 v1 · 产品通用协议