Skip to content

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
╚════════════════════════════════════════════╝
  1. 获取固件版本
  2. 获取终端电阻状态
  3. 设置终端电阻为开启状态
  4. 设置终端电阻为关闭状态
  5. 切换至指定地址的固件
  6. 切换至下一个固件
  7. 按通道数切换设备模式

查询固件版本

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

驱动智能连接,赋能科技未来