Skip to content

USB-CANFD-HUB

中文 | English

USB-CANFD-HUB 是 HexMeow 设计的一款四通道 USB 转 CAN/CAN FD 模块,面向电机调试、机器人开发和通用 CAN 总线分析。

USB-CANFD-HUB 正面图

核心优势

基于 gs_usb,Linux 免驱

USB-CANFD-HUB 采用 Linux 内核原生支持的 gs_usb 协议。连接 Linux 主机后,设备会注册为标准 SocketCAN 接口(通常为 can0can3),无需安装厂商专用驱动,即可配合 iproute2can-utils 及其他 SocketCAN 工具使用。

XT30 (2+2),供电与 CAN 一线连接

四路 CAN FD 通道均采用 XT30 (2+2) 接口,将电源正负极与 CAN H/CAN L 集成在同一个连接器中。它可以直接衔接 HEX 43xx 系列电机,也适用于采用相同接口的达妙、小米等多种 CAN 电机,减少供电线与通信线之间的转接。

连接第三方电机前

接口外形相同不代表电气参数一定相同。上电前请核对电机的额定电压、接口引脚定义、CAN 波特率和终端电阻配置。

hex-gui,让非 Linux 平台也能访问 CAN

Linux 可以通过 SocketCAN 使用设备,而 Windows 和 macOS 没有相同的原生 SocketCAN 接口。为此,我们开发了开源的跨平台桌面工具 hex-gui。它可以通过用户态 gs_usb 后端直接访问 USB-CANFD-HUB,让 Windows 和 macOS 也能正确收发 CAN/CAN FD 报文。

其他特性

  • 4 路独立 CAN FD 通道
  • 高速 USB Type-C 接口
  • 独立电源输入,可通过 XT30 (2+2) 接口为总线设备供电
  • 图形化 CAN 分析仪,支持原始报文收发、过滤与 CANopen 解析
  • 支持 CANopen SDO 读写
  • 支持 HEX 43xx 系列电机的图形化控制与 CAN ID 修改
  • 可接入 HexMeow 机器人、机械臂及多种第三方 CAN 设备
使用前说明

本设备带有两个拨码开关,如下图所示。

  • 开关 1:先将开关 1 拨到 ON 端,再给设备上电,即可进入 Bootloader 模式。

开关 1 的正常位置

正常使用时,请确保开关 1 位于标有数字的一端,即 OFF 端。

  • 开关 2:部分旧版 Linux 内核的内置驱动仅支持两个 CAN FD 通道,而本设备默认启用全部四个通道。在这些系统上出现异常时,可将开关 2 拨到 ON 端,使设备仅启用两个通道,以兼容旧版内核。

部分旧版 Linux 内核也可以通过补丁启用四路 CAN FD。详情请参考:旧版 Linux 内核的四路 CAN FD 补丁

接线与使用

上电前请检查接线

确认电源极性、供电电压、CAN H/CAN L 引脚和终端电阻均符合目标设备的要求后,再接通电源。

选择 CAN 通道

USB-CANFD-HUB 提供编号为 0 至 3 的四路 CAN FD 通道。接线和连接软件时,使用的通道编号必须一致。

本章后续示例均使用 CAN 通道 0。

下图展示了电机连接到 CAN 通道 0 的方式:

接口名称对应关系

访问方式 适用平台 通道名称
Linux SocketCAN Linux can0can3
hex-guigs_usb 后端 Linux、Windows、macOS gs_usb0gs_usb3

在 Linux 上使用 SocketCAN

USB-CANFD-HUB 使用内核自带的 gs_usb 驱动,无需安装厂商专用驱动。SocketCAN 接口仍需在使用前配置位时序并启用。

请根据实际通道选择接口。以下命令配置 CAN 通道 0 对应的 can0

推荐配置:

sudo ip link set can0 type can bitrate 1000000 sample-point 0.8 dbitrate 5000000 dsample-point 0.75 sjw 5 dsjw 3 fd on

配置完成后启用接口:

sudo ip link set can0 up

此后可以通过 can-utils、支持 SocketCAN 的程序或 hex-gui 访问 can0

在 Windows 和 macOS 上使用

Windows 和 macOS 无需执行 Linux 的 ip link 初始化命令。安装并打开 hex-gui,在 Bus 输入框中选择实际使用的通道即可;例如,CAN 通道 0 对应 gs_usb0

Linux 用户也可以选择 gs_usbN,通过 hex-gui 的用户态后端直接访问设备。


hex-gui 跨平台图形化工具

在 Linux 上,USB-CANFD-HUB 可以通过 SocketCAN 接入现有工具链。为了让 Windows 和 macOS 用户也能直接读写 CAN,我们开发了开源桌面应用 hex-gui。它内置跨平台 gs_usb 后端,可以直接访问 USB-CANFD-HUB,无需依赖 Linux 的 SocketCAN。

主要功能包括:

  • 收发、过滤和记录 CAN/CAN FD 报文
  • CANopen 报文解析与 SDO 读写
  • HEX 43xx 系列电机的发现、参数配置、CAN ID 修改和运动控制
  • 使用原始 CAN 帧调试达妙、M5Stack Unit RollerCAN 等第三方设备

可以从 Releases 页面下载已经打包的软件。下载前请阅读对应版本的说明,并选择与操作系统和处理器架构匹配的安装包。

推荐使用预编译安装包

从源码部署 hex-gui 需要配置 Rust、Node.js 和各平台的系统依赖。除非需要参与开发,否则建议直接使用 Releases 页面提供的安装包。


使用 CAN 分析仪

USB-CANFD-HUB 配合 hex-gui 可以图形化显示 CAN 报文的收发过程。将 CAN 设备连接到对应通道,然后打开 CAN Analyzer 即可开始使用。

下面通过几个示例介绍 CAN 分析仪的常用功能。

控制 HEX 43xx 系列电机(CANopen)

HEX 43xx 系列电机使用 CANopen 协议,因此本例使用 CAN 分析仪的 SDO 模式收发 CANopen 消息。其他 CANopen 设备也可以参考本节操作。

如上图所示:

  • 使用 CANopen 时,建议开启 ① 处的 CANopen decodehex-gui 会识别不同的 CANopen 通信类型,便于查看各类报文。
  • 如需冻结接收窗口并检查某一帧数据,点击 ② 处的 Freeze
  • 如需发送 SDO 消息,选择 ③ 处的 SDO 模式。图中展示的是 SDO 读取操作,读写结果会显示在下方状态框中。
  • 还可以在 ① 的右侧调整刷新频率,或在左侧选择按组显示,以便观察不同类型的 CANopen 帧。

使用图形化窗口控制 HEX 43xx 系列电机

详细操作请参考:使用上位机控制 HEX 43xx 系列电机

控制其他 CAN 电机

CAN 分析仪可以收发标准帧、扩展帧以及 CAN FD 帧,因此也可以用于调试采用私有 CAN 协议的第三方电机。以下以达妙 DM-J4310 和 M5Stack Unit RollerCAN 为例。

达妙 DM-J4310 示例

免责声明

本节仅用于演示,不代替 DM-J4310 的产品文档。请先查阅该电机的官方资料并自行评估操作风险。下图所示命令发送成功后,电机将以 5 rad/s 运行。

如上图所示:

  • DM-J4310 不使用 CANopen,因此先关闭 ① 处的 CANopen decode
  • 选择 ② 处的 Send frame,编辑并发送原始 CAN 帧。选择扩展帧格式,输入对应的 CAN ID 和数据;发送后,中间的报文窗口会显示收发记录。
  • ③ 表示该帧是接收(RX)还是发送(TX)。
  • ④ 显示 CAN ID。
  • ⑤ 显示帧数据。
DM-J4310 Motor Control

hex-gui 还提供专用于 DM-J4310 的图形化电机控制窗口,基本操作方式与 HEX 43xx 系列电机一致。

详细操作请参考:使用上位机控制 HEX 43xx 系列电机

M5Stack Unit RollerCAN 示例

免责声明

本节仅用于演示,不代替 M5Stack Unit RollerCAN 的产品文档。请先查阅该电机的官方资料并自行评估操作风险。

如上图所示:

  • 本例中的 M5Stack Unit RollerCAN 不使用 CANopen,因此先关闭 ① 处的 CANopen decode
  • 选择 ② 处的 Send frame,编辑并发送原始 CAN 帧。选择扩展帧格式,输入对应的 CAN ID 和数据;发送后,中间的报文窗口会显示收发记录。
  • ③ 表示该帧是接收(RX)还是发送(TX)。
  • ④ 显示 CAN ID。
  • ⑤ 显示帧数据。
Smart Knob

我们还提供适用于 M5Stack Unit RollerCAN 的智能力反馈旋钮固件。烧录固件后,通过 CAN 模式将电机连接到 USB-CANFD-HUB,再在 hex-gui 中进入 SmartKnob,即可将电机用作智能力反馈旋钮。

RollerCAN Control

hex-gui 还提供专用于 M5Stack Unit RollerCAN 的图形化电机控制窗口,基本操作方式与 HEX 43xx 系列电机一致。

详细操作请参考:使用上位机控制 HEX 43xx 系列电机