Skip to content
帮助

BrainCo-Revo2Slave EtherCAT 通信协议文档

1.设备基础信息

项目内容
设备名称BrainCo-Revo2Slave
Vendor NameBrainCo
Vendor ID0x00BC0000
Product Code0x00009252
Revision No0x00000001
  • 具体对象字典配置

2.同步管理器与 PDO 映射

2.1 同步管理器配置

SM Index功能对应 PDO Index
SM2 (0x1C12)Master → Slave 输出0x1600
SM3 (0x1C13)Slave → Master 输入0x1A00

2.2 RxPDO(0x1600)

子索引对象描述
0x010x7000:01多指控制模式
0x020x7000:02多指控制参数1(6xINT16)
0x030x7000:03多指控制参数2(6xUINT16)
0x040x7010:01单指控制模式
0x050x7010:02单指目标关节 ID
0x060x7010:03单指控制参数1(INT16)
0x070x7010:04单指控制参数2(UINT16)

控制模式定义

shell
# define CTRL_MODE_POS_TIME   0x01  // 位置 + 时间
# define CTRL_MODE_POS_SPD    0x02  // 位置 + 速度
# define CTRL_MODE_SPD        0x03  // 速度控制
# define CTRL_MODE_CURRENT    0x04  // 电流控制
# define CTRL_MODE_PWM        0x05  // PWM占空比

目标关节 ID 定义

shell
typedef enum {
    // 拇指尖部
    THUMB_FLEX,
    // 拇指根部
    THUMB_ABDUCT,
    // 食指
    INDEX_FINGER,
    // 中指
    MIDDLE_FINGER,
    // 无名指
    RING_FINGER,
    // 小指
    PINKY
} finger_index_t;

2.3 手指TxPDO(0x1A00)

子索引对象描述
0x010x6000:01关节位置(6xUINT16)
0x020x6000:02关节速度(6xINT16)
0x030x6000:03关节电流(6xINT16)
0x040x6000:04关节状态(6xUINT16)
  • 6 个手指电机位置(Pos) → UINT16 ×6
  • 6 个手指速度(Spd) → INT16 ×6
  • 6 个手指电流(Cur) → INT16 ×6
  • 6 个手指状态(State) → UINT16 ×6
  • 总计:12 + 12 + 12 + 12 = 48 字节数据,主站可直接映射到变量使用。

2.4 电容式触觉 TxPDO 字典(0x6010)

索引子索引字段名类型数量描述
0x60100x01force_normalUINT165法向力
0x60100x02force_tangentialUINT165切向力
0x60100x03force_directionUINT16)5切向力方向
0x60100x04proximityUINT325接近觉
0x60100x05touch_statusUINT165触觉状态
  • 5个手指法向力(force_normal) → UINT16 ×5

  • 5个手指切向力(force_tangential) → INT16 ×5

  • 5个手指切向力方向(force_direction) → INT16 ×5

  • 5个手指接近觉(proximity) → UINT32 ×5

  • 5个手指触觉状态(touch_status)→ UINT16 ×5 总计:10 + 10 + 10 + 20 + 10 = 60 字节数据,主站可直接映射到变量使用。

  • 法向力,切向力是 16 位的无符号数据。数值单位是 100 * N, 例如切向力 1000 表示 1000 / 100 N, 即 10 N。法向力,切向力的测量范围是 0 ~ 25 N。

  • 切向力方向是 16 位的无符号数据。单位是角度,数值范围为 0 ~ 359 度。靠近指尖的方向为 0 度,按顺时针旋转最大到 359 度,当数值为 65535 (0xFFFF) 时,表示切向力方向无效。

  • 接近值是 32 位的无符号数据。

  • 触觉状态寄存器为 16 位,分高低字节表示不同状态信息:

  • 高字节:用于表示传感器内部数据更新的包序号。该字节数值若递增或发生变化,表明传感器输出数据已更新。

  • 低字节:用于指示传感器当前状态,各位定义如下:

    1. bit2:触发时间超时
    2. bit1:原始值未更新
    3. bit0:原始值错误

3.配置参数字典(Object 0x8000)

3.1 通用配置字段

子索引参数名类型描述
0x01hand_typeUINT8(WR)0=左手,1=右手
0x02led_switchUINT8(WR)手背灯开关
0x03buzzer_switchUINT8(WR)蜂鸣器开关
0x04vibrator_switchUINT8(WR)振动马达开关
0x05unit_modeUINT8(WR)0=无量纲, 1=物理单位
0x06pos_calibrationUINT8 (WO)手动位置校准
0x07auto_calibrationUINT8(WR)开机自动校准
0x08turbo_modeUINT8(WR)Turbo
0x09turbo_param[0] ,turbo_param[1]2XUINT16(WR)Turbo

3.2 各关节保护电流字段

子索引参数名类型描述
0x0Athumb_flex_pro_curUINT16(WR)拇指尖保护电流
0x0Bthumb_aux_pro_curUINT16(WR)拇指根保护电流
0x0Cindex_pro_curUINT16(WR)食指保护电流
0x0Dmid_pro_curUINT16(WR)中指保护电流
0x0Ering_pro_curUINT16(WR)无名指保护电流
0x0Fpink_pro_curUINT16(WR)小指保护电流
0x10thumb_aux_lock_curUINT16(WR)拇指副关节锁定电流

3.3 固件信息字段

子索引参数名类型描述
0x11ctrl_wrist_fw_versionSTRING(20)(RO)控制板固件版本(字符串:高.中.低)
0x12ctrl_snSTRING(18)(WR)控制板设备序列号(SN)
0x13wrist_fw_versionSTRING(20)(RO)手腕板固件版本(字符串:高.中.低)
0x14wrist_snSTRING(18)(WR)手腕板设备序列号(SN)
0x15foe_file_typeUINT8(WO)FoE 文件类型标识:1=手腕板,2=控制板
0x16foe_auth_codeSTRING(8)(WO)FoE 文件认证码

4.触觉 SDO 参数字典(Object 0x8010)

索引子索引字段名类型长度描述
0x80101thumb_calibrationuint8(WO)1拇指校准
0x80102index_calibrationuint8(WO)1食指校准
0x80103mid_calibrationuint8(WO)1中指校准
0x80104ring_calibrationuint8(WO)1无名指校准
0x80105pinky_calibrationuint8(WO)1小指校准
0x80106touch_vendoruint8(RO)1触觉厂商(1:电容式 2:压力感知式)
0x80107thumb_acq_param_updateuint8(WO)1拇指通道值调整
0x80108index_acq_param_updateuint8(WO)1食指通道值调整
0x80109mid_acq_param_updateuint8(WO)1中指通道值调整
0x801010ring_acq_param_updateuint8(WO)1无名指通道值调整
0x801011prink_acq_param_updateuint8(WO)1小指通道值调整
0x801012reserved1uint8(RO)1预留
0x801013thumb_touch_fw_versionstring(RO)20拇指触觉固件版本
0x801014index_touch_fw_versionstring(RO)20食指触觉固件版本
0x801015mid_touch_fw_versionstring(RO)20中指触觉固件版本
0x801016ring_touch_fw_versionstring(RO)20无名指触觉固件版本
0x801017pink_touch_fw_versionstring(RO)20小指触觉固件版本

5.控制模式与参数说明

灵巧手控制协议支持 6 个手指的单独或联合控制。控制方式支持位置、速度、电流、PWM 占空比等多种模式,分别适配百分比模式和物理量模式。其中符号代表方向(正为手指弯曲方向,负为手指伸直方向)

5.1 控制模式编号(适用于单/多指控制)

控制模式编号模式名称param1 说明param2 说明
0x01位置 + 时间控制目标位置运动时间(ms)
0x02位置 + 速度控制目标位置运动速度
0x03速度控制目标速度
0x04电流控制目标电流
0x05PWM 占空比控制PWM 比值

5.2 PWM 控制说明

  • PWM占空比是一个无单位比值,范围 -1000 ~ +1000

5.3 单位模式解释

a)百分比模式(unit_mode = 0)

参数含义范围
位置行程的百分比0 ~ 1000
速度最大速度的百分比-1000 ~ 1000
电流最大电流(1000mA)的百分比-1000 ~ 1000

b)物理量模式(unit_mode = 1)

参数含义单位
位置手指角度位置°(度)
速度手指角速度°/s
电流实际电机控制电流mA

5.4 多指控制与单指控制区别

类型地址区控制模式字段控制参数结构
多指控制RxPDO 0x7000mult_finger_ctrl_modeparam1[6] + param2[6]
单指控制RxPDO 0x7010finger_ctrl_modefinger_id + param1 + param2
  • 多指控制一次性设定所有 6 个手指的目标
  • 单指控制用于精确单个手指调整或调试控制

6. FoE 固件升级协议说明

Revo 2 进阶版和触觉版灵巧手支持通过 EtherCAT FoE(File over EtherCAT)协议进行固件升级,适用于手腕板与控制板的独立升级需求。

6.1 升级类型与认证信息

升级类型文件名升级认证码
手腕板固件Revo2EC_x.x.x_$time.binBRCW2025
控制板固件Revo2_Vx.x.x_$time.binBRCC2025

6.2 FoE 升级流程

FoE 升级完整流程包含认证、文件类型指定、固件传输与写入四个步骤:

一. 主站写入升级类型与认证码

  • SDO 0x8000:0x15 写入升级类型(1=手腕板,2=控制板)
  • SDO 0x8000:0x16 写入认证码(如 "BRCW2025")

二. 主站通过 FoE 发送固件文件

  • 文件名必须匹配约定值(如 Revo2EC_0.0.1_2506231346.bin)

三. 从站接收并校验

  • 检查认证码是否一致
  • 写入对应 Flash 区域

四. 升级完成

  • 建议主站复位设备或系统重新扫描

6.3 注意事项

  • 文件名大小写敏感,需完全匹配
  • 从站写入过程中将中断 PDO 通信
  • 设备升级后回自动重启新的固件
  • 建议升级完成后重启 EtherCAT 总线

6.4 升级时序图

img

6.5 固件文件头结构

为确保固件升级文件合法性与版本识别,所有通过 FoE 升级的 .bin 文件,已由打包工具自动添加如下文件头结构(共计 16 字节):

字段名称长度描述
Magic Number8 字节固定标识符,用于识别设备类型:
手腕板 → "BRCW2025"
控制板 → "BRCC2025"
Firmware Version4 字节固件版本号结构如下:
最高字节为保留字段(0x00),
后三字节依次为主版本号(Major)、
次版本号(Minor)、修订号(Patch)。
例如版本号 1.2.3 表示为:0x00010203
预留字段4 字节保留字段,当前为 0x00,留作后续扩展使用

该结构由打包工具自动写入文件头部,用户无需手动添加,也不应修改。

** 升级验证逻辑**

  • 从站在接收 FoE 文件后,先检查 Magic Number 是否匹配当前升级类型;
  • 若不匹配则拒绝升级,若匹配,进入烧录流程
  • 固件头数据用于升级判断,不会写入 Flash 应用区