文档

UCAN-Mini 文档

在线查阅产品文档、快速入门与协议资料。

产品介绍

USB TO DUAL CAN / CAN FD INTERFACE
UCAN-Mini 产品介绍 V2.5
双通道 CAN FD 接口
UCAN-Mini 覆盖 Linux SocketCAN、Python 自动化脚本、LM TLV/API 接入和现场维护。 LM 协议面向工程集成,支持内核驱动、Python 协议脚本、时间戳与预约发送。
2 路 CAN / CAN FD LM SocketCAN 驱动 Python CLI / API 预约发送 硬件时间戳 上位机固件更新 文档版本 V2.5

产品特色

双通道 CAN FD 调试

CAN0 与 CAN1 独立收发,适合双总线联调、对拖测试、网关验证和产线并行检测。

CAN FD 原生能力

覆盖 CAN FD、BRS、高吞吐和 64 字节数据域,可满足传统 CAN 与 CAN FD 调试需求。

Linux 内核驱动

LM 模式可通过 UCAN LM SocketCAN 驱动注册为 can0/can1,直接使用 candump、cansend 和现有 Linux CAN 应用。

Python 协议脚本

提供 PyUSB CLI 与 API,适合自动化测试、产测脚本、设备信息读取、终端电阻控制和故障诊断。

预约发送

通过设备时间戳配置单次发送槽,主机提前下发,设备按 PTPC 时间点输出 CAN/CAN FD 帧。

现场维护

按键切换终端电阻,状态灯显示运行状态,UCAN-Analyzer 闭源上位机提供固件更新入口。

LM 协议的三种用法

内核
驱动
装驱动
编译 ucan_lm.ko 或 DKMS 安装
插设备
自动注册 SocketCAN 网络接口
配 can0/can1
使用 ip link 配置 CAN FD 位率
运行应用
candump/cansend 或客户现有程序
Python
脚本
读取信息
版本、序列号、通道数、能力位
配置通道
位时序、CAN FD、BRS、终端电阻
自动收发
批量发送、接收、过滤、状态查询
专项能力
时间同步、预约发送、用户数据
TLV/API
接入
随包 API
Python CLI / API 可直接使用
管理面
设备、状态、时间戳
数据面
CAN0/CAN1 独立数据通道
扩展空间
其他语言可按 TLV 协议接入

工作形态

Linux 工程师
SocketCAN
can-utils
现有 CAN 应用
UCAN-Mini
LM 协议
双通道 CAN FD
时间戳 / 预约发送
现场设备
控制器
驱动器
传感器 / 网关

机器人本体通信与调试

本体内部 CAN FD 总线

适合机器人关节模组、末端执行器、传感器、I/O 板和电源管理单元的双通道通信调试。

关节与驱动联调

可用于电机驱动器参数配置、状态读取、控制报文验证和异常帧捕获,缩短单关节启动调试时间。

整机通信诊断

在机器人整机阶段监控总线负载、错误状态、报文周期和关键 ID 分布,帮助定位线束、终端、位率和节点异常。

自动化回归测试

结合 Python 脚本和预约发送,可构造周期控制帧、故障注入、长时间压力测试和产线通信检查。

机器人控制器
上位机 / 工控机
调试脚本 / 测试平台
UCAN-Mini
双通道 CAN FD
抓包 / 发送 / 预约发送
机器人本体
关节驱动
传感器
末端与 I/O 模块

多平台上位机

UCAN-Analyzer

UCAN-Analyzer 是 UCAN-Mini 的配套桌面分析工具,面向 CAN / CAN FD 设备配置、收发测试和总线分析。

跨平台发布

发布清单覆盖 Windows x86_64、Linux x86_64 和 macOS ARM64,适合研发、测试和现场工程师使用不同主机环境。

总线观察与分析

支持实时帧监控、过滤、追踪、总线负载、错误统计、数据分析条目和可缩放波形查看。

调试与维护一体

支持发送编辑、批量/周期发送、DBC 解析、信号曲线、触发规则和固件更新。

应用场景

场景 推荐用法 产品价值
机器人本体通信调试 UCAN-Analyzer + LM 协议 监控关节、传感器、I/O 和电源模块的 CAN FD 报文
机器人产线通信检查 Python CLI / API 自动配置、收发、预约发送和状态报告采集
Linux CAN 应用迁移 LM 内核驱动 设备注册为 SocketCAN 接口,客户程序改动少
自动化测试与产测 Python CLI / API 脚本可完成配置、收发、状态查询、预约发送和报告采集
CAN FD 研发联调 LM 协议或 SocketCAN 双通道、BRS、时间戳和错误状态便于定位问题
周期控制或触发测试 预约发送 主机提前下发,设备按本地时间点发送,减少 PC 调度抖动影响
现场维护 UCAN-Analyzer + 状态灯 闭源上位机固件更新、故障提示和终端电阻切换集中在同一设备上

规格摘要

类别 摘要
产品形态 USB 转双通道 CAN/CAN FD 接口
主协议 LM 协议
Linux 支持 UCAN LM out-of-tree SocketCAN 内核驱动
Python 支持 ucan_mini_cli.pyucan_mini_proto.py
上位机工具 UCAN-Analyzer,支持配置、收发、过滤、追踪、分析、波形和固件更新
上位机平台 Windows x86_64、Linux x86_64、macOS ARM64
LM VID/PID 0x34B7 / 0xE471
CAN 通道 2 路 CAN/CAN FD
维护能力 UCAN-Analyzer 闭源上位机固件更新、终端电阻控制、状态灯诊断

从开发到交付

1
接入
LM 驱动、Python 脚本或 UCAN-Analyzer。
2
配置
位率、CAN FD、BRS、终端电阻。
3
验证
双通道收发、时间戳、错误状态。
4
自动化
批量测试、预约发送、报告采集。
5
维护
固件更新、现场诊断、版本回归。

产品文档

UCAN-Mini 技术手册 V2.6
LM 协议、Linux SocketCAN 驱动、Python 自动化脚本与 UCAN-Analyzer
项目 内容
文档名称 UCAN-Mini 技术手册 V2.6
文档版本 V2.6
日期 2026-05
适用对象 上位机开发、Linux 驱动集成、FAE、测试与系统集成人员
适用产品 UCAN-Mini USB to Dual CAN/CAN-FD Interface
重点范围 LM 协议、UCAN LM Linux 内核驱动、Python CLI/API、UCAN-Analyzer、预约发送

目录与阅读路径

本手册面向需要把 UCAN-Mini 接入工程系统的用户。UCAN-Mini 运行 LM 协议;LM 协议既可以通过 Linux 内核驱动呈现为 SocketCAN 接口,也可以通过 Python 脚本直接访问 USB TLV 协议。

基础收发流程

# 用户要完成的事 手册入口 完成标志
1 识别设备与 USB 枚举 1、2、4 设备枚举为 34B7:E471
2 选择接入路径 3 确定使用内核驱动、Python CLI/API 或 UCAN-Analyzer
3A Linux SocketCAN 接入 6 ip link 中出现 can0 / can1
3B Python 脚本接入 7 python ucan_mini_cli.py info 返回设备信息
3C 桌面上位机接入 8 UCAN-Analyzer 识别设备并打开通道
4 配置 CAN/CAN FD 通道 6.5、7.4、8.4、10 通道启动,位时序与对端一致
5 完成收发或预约发送 6.6、7.5、8.5、9 总线上看到立即发送或预约发送帧
6 现场维护和异常定位 11、12、13 能区分枚举、驱动占用、位时序、总线和固件版本问题

按任务阅读

任务 优先阅读 目标
快速理解产品能力 1、2、3 理解 LM 主协议、双通道、驱动和脚本边界
Linux 应用接入 6 安装 ucan_lm 驱动并使用 SocketCAN
自动化测试脚本 7、9 使用 Python CLI/API 配置通道、收发和预约发送
桌面调试分析 8 使用 UCAN-Analyzer 完成配置、收发、过滤、追踪、分析和固件更新
LM 协议说明 5、7 理解 TLV 消息类型,并使用随包提供的 Python API
现场排查问题 12、13 定位驱动占用、USB 句柄、接口状态和 CAN 总线错误

1. 产品定位

UCAN-Mini 是一款 USB 转双通道 CAN/CAN FD 接口设备。设备运行 LM 协议,面向以下工程需求:

需求 推荐路径 说明
现有 Linux CAN 应用 UCAN LM 内核驱动 设备注册为 SocketCAN 网络接口,直接使用 can0 / can1
自动化测试和产测 Python CLI / API 通过 PyUSB 访问 LM TLV 协议,覆盖设备管理、通道配置、收发、预约发送
桌面可视化调试 UCAN-Analyzer 多平台图形工具,覆盖配置、收发、过滤、追踪、数据分析、波形和固件更新
协议/API 集成 Python API / LM TLV 协议 随包提供命令行和 Python API,其他语言可按 TLV 协议接入
设备通过 LM 协议提供驱动、脚本和桌面上位机三种接入方式。

2. 核心特性

项目 说明
CAN 通道 2 路 CAN/CAN FD
主协议 LM 协议
Linux 支持 out-of-tree ucan_lm SocketCAN 内核驱动
Python 支持 private_proto/ucan_mini_cli.pyucan_mini_proto.py
上位机工具 UCAN-Analyzer 多平台桌面软件
预约发送 CMD_SET_SCHEDULE,slot 0..31,支持单次预约发送
时间戳 LM 协议支持设备时间戳同步;内核驱动可暴露 RX 硬件时间戳
终端电阻 短按按键切换双通道 120R 终端电阻,配置持久化
固件更新 仅在 UCAN-Analyzer 闭源上位机中提供

3. 接入路径选择

接入路径 适合场景 优点 边界
Linux 内核驱动 Linux 控制器、采集程序、已有 SocketCAN 软件 复用标准 CAN 网络接口、can-utils 和现有应用 不提供固件更新功能
Python CLI/API 自动化测试、产线脚本、FAE 诊断、专项功能验证 命令覆盖完整,调试快,能访问预约发送和管理命令 不提供固件更新功能
UCAN-Analyzer 研发调试、现场诊断、可视化分析、固件维护 图形化配置、收发、过滤、追踪、分析、波形、触发和升级 面向交互式调试,不替代批量脚本和内核 SocketCAN 应用

4. USB 枚举与端点

4.1 LM 模式

项目
VID 0x34B7
PID 0xE471
Interface 0 UCAN Mini LM mgmt,管理命令
Interface 1 UCAN Mini LM can0
Interface 2 UCAN Mini LM can1
通道 方向 端点 说明
CMD Host -> Device 0x01 广播/设备级命令
CMD Device -> Host 0x81 命令响应 / 事件
CAN0 Host -> Device 0x02 CAN0 数据与通道命令
CAN0 Device -> Host 0x82 CAN0 接收 / TX Echo / 通道响应
CAN1 Host -> Device 0x03 CAN1 数据与通道命令
CAN1 Device -> Host 0x83 CAN1 接收 / TX Echo / 通道响应

5. LM TLV 协议概览

5.1 TLV Header

所有 LM 消息均以 8 字节 TLV Header 开头,后跟可变长度载荷,总长度 4 字节对齐。

text
offset  size  field      description
0x00    2     type       消息类型
0x02    2     size       整条消息总长度,含头部,4B 对齐
0x04    1     channel    CAN 通道号,0xFF 表示设备级/广播
0x05    1     flags      消息级标志
0x06    2     reserved   保留,置 0
0x08    ...   payload    可变长度载荷

Wire 格式为 little-endian:<HHBBH

5.2 常用消息类型

类型码 名称 方向 说明
0x0002 CMD_START Host -> Device 启动通道
0x0003 CMD_SET_BITTIMING Host -> Device 设置仲裁段位时序
0x0004 CMD_SET_DATA_BITTIMING Host -> Device 设置 CAN FD 数据段位时序
0x0006 CMD_SET_TERMINATION Host -> Device 设置终端电阻
0x0012 CMD_SET_SCHEDULE Host -> Device 配置预约发送
0x0013 CMD_CLR_SCHEDULE Host -> Device 清除预约发送
0x0018 CMD_TIMESTAMP_SYNC Host -> Device 设备时间戳同步
0x001B CMD_GET_STATUS Host -> Device 获取通道状态
0x1000 DATA_CAN_TX Host -> Device CAN/CAN FD 发送帧
0x2000 DATA_CAN_RX Device -> Host CAN/CAN FD 接收帧
0x2001 DATA_CAN_TX_ECHO Device -> Host TX Echo

5.3 能力位重点

能力 含义
CAN_FD / CAN_FD_BRS 支持 CAN FD 与 BRS
HW_TIMESTAMP 支持设备侧时间戳
TERMINATION 支持终端电阻控制
TX_ECHO 支持发送回显
SCHEDULE_TX 支持预约发送
AUTO_BUSOFF_REC 支持 Bus-Off 自动恢复

6. Linux 内核驱动

UCAN-Mini 的 LM 模式提供 out-of-tree Linux SocketCAN 驱动,发布包目录为:

text
kernel_driver

驱动文件:

文件 说明
ucan_lm.c USB DATA-interface + SocketCAN 驱动实现
ucan_lm.h 协议常量和 packed TLV 结构
Makefile 外部内核模块构建入口
dkms.conf DKMS 安装模板

6.1 环境准备

Debian / Ubuntu 示例:

sh
sudo apt update
sudo apt install -y build-essential linux-headers-$(uname -r) can-utils

如果系统没有 ip 或 CAN 工具,补充安装:

sh
sudo apt install -y iproute2 can-utils

6.2 手动编译安装

sh
cd kernel_driver
make
sudo make install
sudo depmod -a
sudo modprobe ucan_lm

确认模块加载:

sh
lsmod | grep ucan_lm
modinfo ucan_lm

插入 UCAN-Mini 后查看内核日志:

sh
dmesg | tail -80
ip link

正常情况下,每个 CAN 通道会注册为一个 SocketCAN 网络接口,例如 can0can1

6.3 DKMS 安装

DKMS 适合随内核升级自动重建模块:

sh
sudo mkdir -p /usr/src/ucan-lm-0.1.0
sudo cp -a kernel_driver/. /usr/src/ucan-lm-0.1.0/
sudo dkms add -m ucan-lm -v 0.1.0
sudo dkms build -m ucan-lm -v 0.1.0
sudo dkms install -m ucan-lm -v 0.1.0
sudo modprobe ucan_lm

查看 DKMS 状态:

sh
dkms status ucan-lm

卸载:

sh
sudo dkms remove -m ucan-lm -v 0.1.0 --all
sudo modprobe -r ucan_lm

6.4 模块参数

参数 默认值 说明
clock_hz 80000000 SocketCAN 位时序计算使用的 CAN 控制器时钟
tx_window 5 每通道 in-flight TX echo 槽数量
rx_hwts true 暴露由设备时间戳换算的 RX 硬件时间戳
time_sync_interval_ms 1000 设备/主机时间同步刷新间隔
time_sync_max_rtt_us 5000 丢弃 RTT 过大的时间同步样本

临时加载示例:

sh
sudo modprobe ucan_lm tx_window=8 rx_hwts=1 time_sync_interval_ms=500

需要把参数持久化时,可创建 /etc/modprobe.d/ucan_lm.conf

text
options ucan_lm tx_window=8 rx_hwts=1 time_sync_interval_ms=500

注意:rx_hwts=1 时,驱动会绑定 MGMT 接口用于时间同步。此时用户态 Python 管理工具可能无法同时打开 MGMT 接口。Linux 内核驱动不提供固件更新功能。

6.5 SocketCAN 使用

Classic CAN:

sh
sudo ip link set can0 down 2>/dev/null || true
sudo ip link set can0 up type can bitrate 500000
candump can0
cansend can0 123#11223344

CAN FD:

sh
sudo ip link set can0 down 2>/dev/null || true
sudo ip link set can0 up type can bitrate 1000000 dbitrate 5000000 fd on
candump can0
cansend can0 123##100112233445566778899AABBCCDDEEFF

双通道:

sh
sudo ip link set can0 up type can bitrate 1000000 dbitrate 5000000 fd on
sudo ip link set can1 up type can bitrate 1000000 dbitrate 5000000 fd on
candump can0 can1

6.6 时间戳与 TX 窗口

tx_window 限制每个通道同时等待 TX echo 的发送槽数量。控制类业务建议保持较小窗口,减少旧命令排队;吞吐类测试可适当增大。

rx_hwts=1 时,驱动使用 MGMT 命令端点做设备/主机时间同步,并将设备 RX 时间戳换算到 Linux skb 硬件时间戳路径。若现场只需要普通 SocketCAN 收发,可用 rx_hwts=0 简化接口占用。


7. Python LM 协议脚本

Python 脚本发布包目录为:

text
private_proto
文件 说明
ucan_mini_cli.py 命令行工具,适合调试、自动化和产测
ucan_mini_proto.py Python API,适合业务脚本复用

7.1 安装依赖

sh
cd private_proto
python -m pip install pyusb

Linux 需要 libusb:

sh
sudo apt install -y libusb-1.0-0-dev

Windows 下需要给 LM 接口安装 WinUSB / libusb 驱动,例如使用 Zadig。若同一台电脑上还有内核驱动或其他工具占用设备,先关闭占用进程。

7.2 基础命令

sh
python ucan_mini_cli.py list
python ucan_mini_cli.py info
python ucan_mini_cli.py status --ch 0
python ucan_mini_cli.py identify

info 走 EP0 vendor request,可用于确认设备在线、通道数量、固件版本和能力信息。

7.3 通道配置

设置 Classic CAN 仲裁段位时序:

sh
python ucan_mini_cli.py set-bittiming --ch 0 --brp 10 --tseg1 13 --tseg2 2 --sjw 1
python ucan_mini_cli.py start --ch 0

CAN FD + BRS:

sh
python ucan_mini_cli.py set-bittiming --ch 0 --brp 10 --tseg1 13 --tseg2 2 --sjw 1
python ucan_mini_cli.py set-data-bittiming --ch 0 --brp 2 --tseg1 13 --tseg2 2 --sjw 1
python ucan_mini_cli.py start --ch 0 --mode fd fd_brs tx_echo

终端电阻:

sh
python ucan_mini_cli.py set-termination --ch 0 --enable 1
python ucan_mini_cli.py set-termination --ch 1 --enable 1

停止通道:

sh
python ucan_mini_cli.py stop --ch 0

7.4 立即发送与接收

发送标准帧:

sh
python ucan_mini_cli.py send --ch 0 --id 0x123 --data "01 02 03 04"

发送扩展帧:

sh
python ucan_mini_cli.py send --ch 0 --id 0x12345678 --ext 1 --data "AA BB"

发送 CAN FD + BRS:

sh
python ucan_mini_cli.py send --ch 0 --id 0x100 --fd 1 --brs 1 --data "01 02 03 04 05 06 07 08 09 0A"

批量发送:

sh
python ucan_mini_cli.py send --ch 0 --id 0x200 --data "FF" --count 100 --interval-ms 10

接收:

sh
python ucan_mini_cli.py receive --ch 0
python ucan_mini_cli.py receive --ch 0 --count 10 --rx-timeout-ms 1000

7.5 过滤、选项与状态

过滤器:

sh
python ucan_mini_cli.py set-filter --ch 0 --type range --index 0 --id1 0x100 --id2 0x1FF
python ucan_mini_cli.py set-filter --ch 0 --type exact --index 0 --id1 0x123
python ucan_mini_cli.py set-filter --ch 0 --type mask --index 0 --id1 0x7F0 --id2 0x100
python ucan_mini_cli.py clear-filter --ch 0

运行时选项:

sh
python ucan_mini_cli.py set-option --ch 0 --options tx_echo error_report bus_load
python ucan_mini_cli.py clear-option --ch 0 --options bus_load
python ucan_mini_cli.py set-auto-recover --ch 0 --enable 1
python ucan_mini_cli.py set-iso-mode --ch 0 --iso 1

状态查询:

sh
python ucan_mini_cli.py status --ch 0

返回信息中重点关注 state_namestartedterminationtx_countrx_counttx_err_countrx_err_countoverrun_countbusload

7.6 Python API

CanClient 适合需要设备级管理命令的脚本:

python
from ucan_mini_proto import CanClient, MODE_FD, MODE_FD_BRS, MODE_TX_ECHO

cli = CanClient()
info = cli.get_device_info()
print(info)

cli.set_bittiming(channel=0, brp=10, tseg1=13, tseg2=2, sjw=1)
cli.set_data_bittiming(channel=0, brp=2, tseg1=13, tseg2=2, sjw=1)
cli.start(channel=0, mode_flags=MODE_FD | MODE_FD_BRS | MODE_TX_ECHO)
cli.send(channel=0, can_id=0x123, data=b"\x01\x02\x03", is_fd=True, brs=True)

frame = cli.receive(channel=0, timeout_ms=1000)
print(frame)

cli.stop(channel=0)
cli.close()

ChannelClient 适合两个独立进程分别占用一个 CAN DATA interface。它只暴露通道级命令;设备信息、设备复位、用户 Flash、设备 ID、timestamp sync 等设备级操作仍通过 CanClient 完成。Python CLI/API 不提供固件更新功能。

python
from ucan_mini_proto import ChannelClient, MODE_FD, MODE_FD_BRS

can0 = ChannelClient(0)
can0.set_bittiming(brp=10, tseg1=13, tseg2=2, sjw=1)
can0.start(mode_flags=MODE_FD | MODE_FD_BRS)
can0.send(can_id=0x123, data=b"\x01\x02")
can0.close()

8. UCAN-Analyzer 多平台上位机

UCAN-Analyzer 是 UCAN-Mini 的配套桌面分析工具,面向 CAN / CAN FD 设备配置、收发测试、帧监控、过滤、数据追踪、曲线分析和固件更新,适合交互式调试、现场诊断和总线可视化分析。

8.1 支持平台与发布形态

平台 架构 发布包
Windows x86_64 UCAN-Analyzer-*-windows-x86_64.zip
Linux x86_64 UCAN-Analyzer-*-linux-x86_64.tar.gz
macOS ARM64 UCAN-Analyzer-*-macos-arm64.tar.gz

按主机系统选择对应发布包,启动后连接 UCAN-Mini 即可进行通道配置、收发测试、总线分析和固件维护。

8.2 功能模块

功能模块 说明
设备连接与状态监控 识别 UCAN-Mini,显示通道状态、帧计数、错误计数和总线状态
CAN / CAN FD 通道配置 配置仲裁位率、数据位率、采样点、终端电阻、TX FIFO/QUEUE、CAN FD、BRS 等
接收与追踪 实时显示 RX、TX Echo 和错误相关帧,支持跟踪、清空和导出
发送与周期发送 支持单帧发送、批量发送、循环发送、发送条目管理和定时发送视图
过滤与触发 支持表达式过滤、设备端过滤配置、触发规则和调试定位
数据分析 按设备、通道、方向、CAN ID、位偏移、位长度和字节序提取数值
波形与信号 支持数据波形、信号查看、DBC 解析和信号曲线
总线诊断 显示总线负载、帧率、ID 分布、错误计数和告警信息
固件更新 仅在 UCAN-Analyzer 闭源上位机中提供

8.3 典型调试流程

text
1. 启动 UCAN-Analyzer
2. 连接 UCAN-Mini
3. 选择 CAN0/CAN1,设置仲裁位率、数据位率、CAN FD、BRS 和终端电阻
4. 启动通道
5. 在接收/追踪窗口观察实时帧
6. 在发送窗口构造单帧、批量帧或周期发送条目
7. 使用过滤、触发、DBC、信号曲线或数据分析定位问题
8. 需要维护时使用 UCAN-Analyzer 的固件更新功能

8.4 机器人本体调试建议

UCAN-Analyzer 适合机器人本体内部 CAN/CAN FD 网络的交互式调试:

场景 建议用法
关节模组启动调试 用发送窗口构造控制帧,用接收/追踪窗口确认状态帧和错误帧
驱动器参数验证 过滤目标 CAN ID,观察配置命令、响应和状态变化
传感器与 I/O 调试 用数据分析条目提取位域、字节序和工程值,配合波形查看变化趋势
整机总线诊断 观察总线负载、帧率、ID 分布、错误计数和 Bus-Off 告警
产线辅助测试 保存发送条目、配置和分析视图,用于复测和问题复现

9. 预约发送

预约发送用于减少主机调度抖动对发送时刻的影响。主机先同步设备时间,再把待发送帧和目标时间下发到设备;设备按本地 PTPC 时间触发发送。

9.1 能力与限制

项目 说明
命令 CMD_SET_SCHEDULE / CMD_CLR_SCHEDULE
槽位 slot_index = 0..31
模式 单次预约
时间基准 设备 PTPC 绝对时间,单位 us
最小提前量 固件当前要求至少提前 200 us;工程上建议留出更大余量
周期参数 不支持周期预约,周期请求返回不支持
次数参数 不支持周期重复
数据长度 Classic CAN 最大 8B,CAN FD 最大 64B

9.2 CLI 单次预约

CLI 在未提供 --start-time-us 时会自动执行 timestamp-sync,并使用当前设备时间加 --delay-us

sh
python ucan_mini_cli.py set-schedule \
  --ch 0 \
  --slot 0 \
  --enable 1 \
  --delay-us 10000 \
  --can-id 0x100 \
  --data "01 02 03"

这表示约 10 ms 后发送一次 ID 0x100

9.3 CLI CAN FD + BRS 预约

sh
python ucan_mini_cli.py set-schedule \
  --ch 0 \
  --slot 1 \
  --enable 1 \
  --delay-us 20000 \
  --can-id 0x123 \
  --fd 1 \
  --brs 1 \
  --data "00 01 02 03 04 05 06 07 08 09 0A 0B"

清除预约:

sh
python ucan_mini_cli.py clear-schedule --ch 0

9.4 API 预约发送

python
import time
from ucan_mini_proto import CanClient, TX_FLAG_FD, TX_FLAG_BRS, len_to_dlc

cli = CanClient()
dev_us, _ = cli.timestamp_sync(int(time.time() * 1_000_000))
data = bytes.fromhex("01 02 03 04")

cli.set_schedule(
    channel=0,
    slot_index=0,
    enable=True,
    start_time_us=dev_us + 10_000,
    can_id=0x100,
    dlc=len_to_dlc(len(data)),
    tx_flags=0,
    data=data,
)

9.5 排查建议

现象 检查项
命令返回 INVALID_PARAM 槽位、DLC、CAN FD 数据长度、时间提前量
命令返回 NOT_SUPPORTED 是否请求了周期预约
没有看到发送帧 通道是否启动、位率是否一致、终端电阻和线序是否正确
预约发送不稳定 主机是否太晚下发、是否频繁重配同一 slot、总线是否接近满载
清除后仍有帧 确认清除的是正确通道,必要时重置通道

10. 通道配置建议

10.1 Classic CAN

项目 建议
位率 与对端一致,常见为 125k、250k、500k、1M
终端电阻 总线两端各 120R,UCAN-Mini 可通过短按或命令切换
验证方式 先单通道 loop 或对端工具收发,再双通道并发

10.2 CAN FD

项目 建议
仲裁段位率 常见 500k 或 1M
数据段位率 常见 2M、4M、5M
BRS 双端配置保持一致
数据长度 Classic CAN 最大 8B,CAN FD 最大 64B
TDC 高数据段位率建议启用并验证采样点
排查顺序 位率、采样点、BRS、终端电阻、线序和对端 FD 支持

11. 按键、LED 与固件更新

11.1 按键功能

操作 功能
短按 切换双通道 120R 终端电阻开关

11.2 LED 指示

状态 指示含义
上电启动 蓝色常亮
LM 运行 紫色常亮
终端电阻开启 在当前协议颜色基础上叠加红色提示
故障状态 红色闪烁
通道灯表现 含义
TX/RX 灯灭 通道未启动
TX 低亮绿,RX 低亮蓝 正常运行空闲
TX 高亮闪烁 发送数据
RX 高亮闪烁 接收数据
黄色 Warning
粉色 Error Passive
红色 Bus-Off

11.3 固件更新

固件更新仅在 UCAN-Analyzer 闭源上位机中提供。Linux 内核驱动和 Python CLI/API 不提供固件更新功能。


12. 调试与诊断

12.1 USB 或驱动异常

现象 可能原因 处理
ip link 没有 can 接口 未加载 ucan_lm、驱动编译失败或接口被其他进程占用 检查 lsmoddmesg、VID/PID
Python 打不开设备 内核驱动或其他进程占用接口 卸载驱动、关闭工具或改用未占用的 DATA interface
开启 rx_hwts 后 MGMT 不可用 驱动绑定 MGMT 做时间同步 rx_hwts=0 重载驱动,或卸载驱动后运行管理工具

12.2 CAN 无法通信

优先检查:

  • CANH/CANL/GND 和屏蔽连接。
  • 总线两端是否各有 120R。
  • 两端仲裁段位率、数据段位率、BRS 和 CAN FD 使能是否一致。
  • 通道是否已启动,是否处于 Warning、Error Passive 或 Bus-Off。
  • 是否把 CAN0/CAN1、端点或 SocketCAN 接口用反。

12.3 预约发送异常

优先检查:

  • 设备能力是否包含 SCHEDULE_TX
  • 通道是否已经启动。
  • start_time_us 是否基于设备时间,不是主机系统时间。
  • 下发时间是否太晚,至少预留 200 us,工程测试建议预留数 ms。
  • 是否误用了已移除的周期预约参数。

13. 技术规格

参数 规格
产品 UCAN-Mini
接口 USB 转双通道 CAN/CAN FD
CAN 通道 2
CAN 协议 CAN 2.0 / CAN FD
LM VID/PID 0x34B7 / 0xE471
LM 接口 mgmt、can0、can1
LM 数据端点 CAN0 0x02/0x82,CAN1 0x03/0x83
LM 管理端点 CMD 0x01/0x81
Linux 驱动 kernel_driver/ucan_lm.c
Python 工具 private_proto/ucan_mini_cli.pyucan_mini_proto.py
上位机工具 UCAN-Analyzer
上位机平台 Windows x86_64、Linux x86_64、macOS ARM64
预约发送 slot 0..31,单次预约
本地按键 短按切换双通道终端电阻
配置存储 NVS 持久化
固件维护 仅 UCAN-Analyzer 闭源上位机提供

14. 修订历史

版本 日期 说明
V2.6 2026-05 移除 GS 兼容模式说明,更新 LM 单次预约发送、固件维护边界和按键行为
V2.5 2026-05 增加 GS 兼容模式、协议切换和周期预约发送说明
V2.4 2026-05 清理修订历史对外表述,更新发布版技术手册与 PDF
V2.3 2026-05 增加 UCAN-Analyzer 上位机使用说明与多平台发布说明
V2.2 2026-05 增加 Linux 驱动、Python CLI 与周期发送说明
V2.1 2026-05 拆分产品介绍与技术手册,统一文档结构和发布格式
V2.0 2026-04 完成双通道 CAN / CAN FD 接口技术手册基础整理

Copyright (c) 2026 LanMotion.


产品文档

UCAN-Analyzer 上位机使用手册

项目 内容
产品 UCAN-Analyzer
文档版本 v1.7
适用设备 UCAN-Mini
适用系统 Windows x86_64、Linux x86_64、macOS
更新日期 2026-05-13

1. 概述

UCAN-Analyzer 是 UCAN-Mini 的多平台图形上位机,用于 CAN / CAN FD 设备配置、报文收发、总线监控、过滤、数据分析、DBC 信号查看、回放、触发测试和维护升级。

软件面向研发调试、现场诊断、产测验证和数据采集场景。典型使用流程是连接 UCAN-Mini,配置 CAN 通道,启动通道后观察实时帧数据,并按需要发送测试帧、加载 DBC、导出记录或执行自动化触发规则。

典型调试流程:

  1. 连接 UCAN-Mini 并确认 USB 在线。
  2. 配置 CAN / CAN FD 通道参数并启动通道。
  3. 在接收、追踪和总线负载窗口观察现场数据。
  4. 使用发送、过滤、触发、回放和 Lua 控制台完成验证。
  5. 保存项目或导出 CSV / ASC / BLF,形成可复现记录。

2. 安装与启动

2.1 Windows

下载 Windows x86_64 安装包,运行 UCAN-Analyzer-*-windows-x86_64.exe 并按提示安装。安装完成后可从开始菜单或安装目录启动 UCAN-Analyzer.exe

如果系统提示驱动或 USB 权限异常,请确认 UCAN-Mini 已正确连接,并避免多个上位机实例同时占用同一通道。

2.2 Linux

下载 Linux x86_64 AppImage:

bash
chmod +x UCAN-Analyzer-*-linux-x86_64.AppImage
./UCAN-Analyzer-*-linux-x86_64.AppImage

如普通用户无法访问 USB 设备,请按现场系统策略配置 udev 规则,或使用具备 USB 访问权限的用户运行。

2.3 macOS

下载 .dmg.pkg 安装包。首次运行时如果系统拦截未签名应用,可在系统设置的安全性页面允许打开。

3. 主界面

UCAN-Analyzer 的主界面由菜单栏、工具栏、设备与通道区域、报文区域和分析工具窗口组成。常用入口如下:

UCAN-Analyzer 主窗口

区域 用途
文件 打开、保存项目,管理最近项目
采集 暂停、继续、清空当前帧数据
分析 打开追踪、数据分析、总线负载、错误、信号和协议辅助窗口
工具 打开过滤、触发、回放和 Lua 控制台
导入导出 导入帧数据,导出 CSV、ASC、BLF,保存或加载发送预设
视图 调整主题、语言、UI 缩放和表格密度
帮助 检查更新、切换语言、查看软件信息

3.1 工具栏图标按钮

图标按钮 功能说明
保存 保存当前项目配置、窗口状态和常用调试参数
打开 打开已有项目文件,快速恢复调试现场
启动 / 暂停 控制主机侧帧显示刷新,不改变设备总线配置
清空 清空当前接收和追踪视图中的帧记录
追踪 打开实时帧追踪窗口,按时间顺序查看 CAN / CAN FD 报文
数据分析 打开数据分析窗口,从指定帧字段中提取数值
总线负载 打开负载统计窗口,观察当前、平均和峰值负载
告警信息 打开错误与告警窗口,查看通道状态和错误计数
过滤 打开过滤配置窗口,降低主机侧数据压力
触发 打开触发规则窗口,按条件执行记录、提示或发送动作
回放 打开回放窗口,用历史帧复现实验过程
Lua 控制台 打开脚本控制台,用脚本完成批量验证和自动化调试

4. 连接 UCAN-Mini

  1. 使用 USB 线连接 UCAN-Mini。
  2. 启动 UCAN-Analyzer。
  3. 在设备区域刷新设备列表。
  4. 选择设备和通道,点击连接。
  5. 连接成功后,状态栏会显示在线状态,通道配置、接收、发送和分析窗口开始使用当前设备数据。

UCAN-Analyzer 连接配置

如果连接失败,优先检查 USB 线缆、设备供电、系统权限、驱动占用和是否已有其他程序占用 UCAN-Mini。

5. CAN / CAN FD 通道配置

通道配置用于设置 UCAN-Mini 的 CAN 控制器工作参数。常用项目包括:

配置项 说明
仲裁位率 Classical CAN 和 CAN FD 仲裁段使用的位率
数据位率 CAN FD 数据段使用的位率
采样点 位时序采样位置,可使用预设或高级参数
终端电阻 按现场拓扑选择是否启用
工作模式 根据测试需要选择正常、监听或回环类模式
通道启动 / 停止 应用配置后启动通道,停止后可重新配置

建议先从项目常用的标准位率开始验证,例如 500 kbit/s、1 Mbit/s、2 Mbit/s 或 5 Mbit/s。需要精确匹配现场网络时,再调整采样点和高级位时序参数。

6. 接收、追踪与过滤

接收和追踪窗口用于查看实时 CAN / CAN FD 帧。表格通常包含时间戳、方向、通道、CAN ID、DLC、数据字节和解析结果。

追踪窗口支持表达式过滤,常用字段如下:

字段 含义
id CAN ID
ch 通道
dlc DLC 或数据长度
dev 设备编号

示例:

text
id==0x100 && ch==0
id==0x18FF50E5 && dlc>7
dev==0 && ch==1

过滤表达式适合快速定位目标帧;设备端过滤适合降低高负载网络下的主机侧数据压力。

UCAN-Analyzer 数据追踪

UCAN-Analyzer 过滤器

7. 报文发送与周期发送

发送窗口用于创建、编辑和执行发送条目。每个条目通常包含通道、CAN ID、帧格式、DLC、数据字节、是否启用和周期参数。

常见操作:

  1. 添加发送条目。
  2. 设置通道、CAN ID 和数据内容。
  3. 点击立即发送验证单帧。
  4. 勾选循环发送并设置周期,用于持续激励被测设备。
  5. 保存发送预设,便于下次调试复用。

周期发送前建议确认总线负载和被测设备状态,避免过高发送频率影响现场网络。

UCAN-Analyzer 报文发送

8. DBC、信号与曲线

UCAN-Analyzer 支持加载 DBC 文件并对报文进行信号解析。加载 DBC 后,可使用以下窗口:

窗口 用途
信号总览 按消息、信号名、物理值、状态和更新时间查看解析结果
信号曲线 将关心的信号加入曲线,观察随时间变化
数据分析 直接从指定帧、位偏移、长度、类型和字节序提取数值
协议辅助 对常见协议字段进行辅助查看

如果没有 DBC,也可以在数据分析窗口手工建立数据项,用于临时观察传感器值、计数器、状态位或控制量。

数据从接收通道进入帧存储后,可同时进入追踪表格、DBC 信号解析、曲线显示、协议辅助和导出流程。需要复现实验时,可通过导入帧数据或回放窗口重新查看同一批记录。

UCAN-Analyzer 数据分析

9. 总线负载、错误与诊断

总线负载窗口显示当前、平均和峰值负载,适合观察发送频率、网络拥塞和测试脚本对总线的影响。

错误窗口用于查看通道错误计数、状态变化和告警信息。出现异常时,可按以下顺序排查:

  1. 确认位率和采样点与现场网络一致。
  2. 确认终端电阻和线缆连接正确。
  3. 确认 CAN_H / CAN_L 未接反。
  4. 降低发送频率或暂停周期发送。
  5. 停止并重新启动通道。

10. 回放、导入与导出

软件支持将采集到的帧导出为常用格式,也可以导入历史帧用于查看或回放。

功能 说明
导出 CSV 适合表格分析、脚本处理和报告整理
导出 ASC 适合与 CAN 工具链交换数据
导出 BLF 适合保存二进制日志并兼容部分分析工具
导入帧数据 用于离线查看或回放
回放 按时间区间、速度和循环策略重放帧

回放到真实总线前,请确认目标网络允许测试帧注入,并避免在生产环境误发送控制报文。

11. 触发规则与自动化

触发窗口可根据通道、CAN ID、DLC 或数据字段建立规则。规则匹配后可执行记录、提示、停止采集或发送预设帧等动作。

UCAN-Analyzer 触发器

Lua 控制台用于更灵活的自动化调试和测试辅助。建议先在离线数据或低风险网络中验证规则,再应用到现场设备。

UCAN-Analyzer Lua 控制台

12. 更新与维护

帮助菜单中的更新入口用于检查软件发布包。软件发布资料通过官网或项目发布页提供,安装前建议确认版本号、目标系统和包类型。

如果安装包包含 UCAN-Mini 固件资源,可在维护流程中使用配套升级功能。升级前应确认:

  • 设备连接稳定。
  • 不要在升级过程中断开 USB。
  • 使用与设备型号匹配的固件包。
  • 升级后重新连接设备并验证通道状态。

维护建议按“检查软件版本、确认设备连接、执行升级、重新连接设备、验证通道状态”的顺序进行。现场设备升级前应保留当前项目文件和必要的报文记录。

13. 常见问题

13.1 设备列表为空

检查 USB 连接、设备供电、系统权限和驱动绑定。Linux 下重点检查 udev 权限,Windows 下检查是否被其他软件占用。

13.2 通道启动后收不到帧

确认现场总线有数据,位率与采样点匹配,终端电阻正确,并检查是否设置了过窄的过滤条件。

13.3 出现大量错误帧或错误计数快速增加

优先检查位率、线缆、终端电阻、接地和 CAN_H / CAN_L 极性。必要时先使用监听模式观察网络。

13.4 DBC 信号没有解析结果

确认 CAN ID 类型、扩展帧标志、字节序、缩放系数和信号定义是否与实际报文一致。

13.5 软件更新入口无法获取新版本

检查网络连接、当前系统时间和代理设置。也可以从官网或项目发布页手动下载对应系统的安装包后更新。

14. 版本记录

版本 日期 说明
v1.7 2026-05-13 将展示版本线调整为 1.7
v1.6 2026-05-13 新增 UCAN-Analyzer 上位机使用手册,整理 doc 发布资料说明