KCAN 固件工具
kcan_fw_tool 提供 KCAN 设备的硬件信息版本查询、一键升级、内置电阻设置(需硬件支持)、设备模式切换等功能。
重要提示
- 固件版本低于 8.x.x 的设备不支持 Linux 上的固件升级和切换操作(仅支持 Windows 版本固件升级工具)
- 如意外进入 boot 模式,重新拔插设备即可恢复
功能说明
kcan_fw_tool:固件调试工具(固件/终端电阻/APP 切换/设备模式切换)kcan_fw_upgrade:固件升级工具
菜单操作界面
bash
sudo kcan_fw_tool can0 menu运行结果:
bash
╔════════════════════════════════════════════╗
║ KCAN Factory Mode Tool - Main Menu ║
╠════════════════════════════════════════════╣
║ 1. Get Firmware Version ║
║ 2. Get Termination Status ║
║ 3. Set Termination ON (120Ω) ║
║ 4. Set Termination OFF ║
║ 5. Switch to APP (specify address) ║
║ 6. Switch to Next APP ║
║ 7. Set Device Mode (by channels) ║
║ 0. Exit ║
╚════════════════════════════════════════════╝- 获取固件版本
- 获取终端电阻状态
- 设置终端电阻为开启状态
- 设置终端电阻为关闭状态
- 切换至指定地址的固件
- 切换至下一个固件
- 按通道数切换设备模式
查询固件版本
bash
sudo kcan_fw_tool can0 version运行结果:
bash
[INFO] Getting firmware version...
=== Firmware Version ===
Version: 8.5.2
Build Date: 2026-03-26
=== BL Version ===
[INFO] Getting bootloader version...
Version: 0.0.2.1
========================固件升级
自动升级
bash
# 自动选择最新的固件
sudo kcan_fw_upgrade can0 auto手动升级
bash
# 列出驱动提供的固件资源
sudo kcan_fw_upgrade lsfw
# 根据列出的资源,输入固件名称升级
sudo kcan_fw_upgrade lsfw KH-UCANFD-xxx.enc
# 手动指定固件路径
sudo kcan_fw_upgrade can0 /usr/lib/firmware/KH-UCANFD-xxx.enc运行结果:
bash
$ sudo kcan_fw_upgrade lsfw
Installed firmware (dir: /usr/lib/firmware)
- KH-UCANFD-G2_PDA_REL-0x40000-8.5.0-260320.enc
fw_version: 8.5.0
device_channels: 4
boot_compatible: any
- KH-UCANFD-G2_PDA_REL-0x40000-8.5.1-260320.enc
fw_version: 8.5.1
device_channels: 4
boot_compatible: any
$ sudo kcan_fw_upgrade can0 KH-UCANFD-G2_PDA_REL-0x40000-8.5.0-260320.enc
[INFO] ==========================================
[INFO] KCAN Auto Firmware Upgrade
[INFO] ==========================================
[INFO] CAN Interface: can0
[INFO] Firmware File: /usr/lib/firmware/KH-UCANFD-G2_PDA_REL-0x40000-8.5.0-260320.enc
[INFO]
[INFO]
[INFO] Step 1/5: Entering bootloader mode...
[INFO] Entering bootloader mode on can0...
[SUCCESS] Bootloader command sent, device should reset...
[INFO]
[INFO] Step 2/5: Waiting for USB mass storage device...
[INFO] Waiting for USB mass storage device to appear (timeout: 30s)...
[SUCCESS] Found upgrade device: /dev/sdc
[SUCCESS] USB device appeared: /dev/sdc
[INFO]
[INFO] Step 3/5: Mounting device and copying firmware...
[INFO] Mounting device /dev/sdc to /tmp/kcan_upgrade_mount...
[SUCCESS] Device mounted successfully
[INFO] Copying firmware file...
[SUCCESS] Firmware file copied successfully
[INFO]
[INFO] Step 4/5: Unmounting device (device will upgrade and restart)...
[INFO] Unmounting device...
[SUCCESS] Device unmounted
[INFO]
[INFO] Step 5/5: Waiting for device to restart...
[INFO] Waiting for device to restart and CAN interface to reappear...
[INFO] This may take up to 60 seconds...
[INFO] Unmounting device...
[SUCCESS] Device unmounted
[SUCCESS] Device restarted and CAN interface is ready
[INFO]
[INFO] Verifying firmware version...
[INFO] Getting firmware version...
[INFO] Getting firmware version...
=== Firmware Version ===
Version: 8.5.0
Build Date: 2026-03-20
=== BL Version ===
[INFO] Getting bootloader version...
Version: 0.0.2.1
========================
[INFO]
[SUCCESS] ==========================================
[SUCCESS] Firmware upgrade completed successfully!
[SUCCESS] ==========================================内置电阻设置
查询内置电阻状态
bash
sudo kcan_fw_tool can0 term-get开启内置电阻
bash
sudo kcan_fw_tool can0 term-on关闭内置电阻
bash
sudo kcan_fw_tool can0 term-off运行结果:
bash
$ sudo kcan_fw_tool can0 term-get
[INFO] Getting termination status...
Termination resistor: OFF
$ sudo kcan_fw_tool can0 term-on
[INFO] Setting termination resistor: ON
Termination resistor set to: ON (120Ω)固件切换
设备中可以同时存在多个固件,通过以下命令进行切换:
bash
# 切换到地址0x40000固件
sudo kcan_fw_tool can0 switch-app -a 0x40000
# 切换到下一个固件
sudo kcan_fw_tool can0 next-app设备模式切换
可按通道数切换设备工作模式:
bash
# 1 通道:FD
sudo kcan_fw_tool can0 device-mode -c 1
# 2 通道:FDPRO
sudo kcan_fw_tool can0 device-mode -c 2
# 4 通道:KCAN_X4
sudo kcan_fw_tool can0 device-mode -c 4使用帮助
bash
sudo kcan_fw_tool -h