4、抓包工具准备:CANalyzer、PCAN-View、Wireshark
做总线故障分析,工具就是你的眼睛和手。选错了工具,或者装了一半没配好,后续所有抓包都白费。今天我把三套最常用的工具捋一遍——CANalyzer、PCAN-View、Wireshark+插件。每套都有它的脾气,装的时候注意几个坑,能省你半天时间。
4.1 CANalyzer 安装与基本设置
CANalyzer 是 Vector 家的旗舰,功能全但贵,公司一般是买 Node-Locked 或浮动 License。个人习惯是先装软件本体,再装 License Manager,一步步来。
- 从 Vector 官网下载:注意版本要与操作系统匹配。Win10/11 建议用 15/16 以上版本。
- 运行安装包:默认路径就好,别改到中文目录,否则后期有些 DBC 加载会乱码。
- 安装 License Manager:如果用 USB 加密狗,插上后手动更新驱动。我在项目里遇到过系统更新后认不到狗的坑,重新装一次驱动就好了。
- 硬件配置:启动软件后,打开
Hardware→Network Hardware,选对接口速率。CAN 默认 250k,别搞错。
基本设置清单:新建工程 → 添加 CAN 通道 → 加载 DBC 文件 → 设置触发条件(比如错误帧触发)。DBC 文件是你解读信号的关键,没有它,CANalyzer 只能看到 ID 和数据,看不到物理意义。
| 步骤 | 要点 |
|---|---|
| 1. 新建工程 | File → New → CAN 工程,选择通道数(通常 1 或 2) |
| 2. 配置通道 | Hardware → Network Hardware → 按右键配置波特率、CAN 类型(Classic / FD) |
| 3. 加载 DBC | Simulation → Databases → Add DBC,直接拖拽也行 |
| 4. 触发设置 | Measurement → Trigger → 选择 Error Frame 或特定 ID |
4.2 PCAN-View 安装与快速配置
PCAN-View 是 PEAK-System 家的免费工具,轻量级,适合现场排查。你想想看,很多车间师傅就用它看几条报文,根本不需要 CANalyzer 那种庞然大物。
- 下载:PEAK 官网提供安装包,注意区分 32/64 位。
- 安装:一路 Next 就行,但驱动部分要选“安装 PCAN-Basic API”,否则硬件识别不了。
- 连接硬件:
Connect→ 选对应通道(PCAN-USB 通常是 0) → 设波特率。我遇到过波特率没对上,一直收不到数据的尴尬情况。
基本设置:启动后界面很简洁——左边是发送区,右边是接收列表。你可以在 View → Messages 里打开时间戳和细节窗格。嗯,这里要注意:PCAN-View 默认不显示错误帧,你得勾选 Messages → Show Error Messages 才看得到。
4.3 Wireshark 抓 CAN(需额外插件)
Wireshark 大家都熟,但抓 CAN 报文需要装一个插件。为什么这么做?因为 Wireshark 原生只认识以太网包,你得把 CAN 帧包装成 SLCAN 或 USBCAN 格式才能解析。
需要的插件:wireshark_candump.lua 或 can_socketcan.lua。我个人习惯用后者,因为它支持 CAN FD。
- 下载插件:放在 Wireshark 的 init.lua 同级目录(通常是 Windows 下
C:\Program Files\Wireshark\)。 - 修改配置:打开
init.lua,找到dofile(DATA_DIR.."console.lua")那行,在其后添加dofile(DATA_DIR.."can_socketcan.lua")。 - 启动 Wireshark:在接口列表里会多出一个 "CAN" 或 "SLCAN" 接口,选择并开始抓包。
| 插件名称 | 适用场景 | 安装难度 |
|---|---|---|
| can_socketcan.lua | SocketCAN、SLCAN 设备(如 USBtin) | 低,复制文件即可 |
| wireshark_candump.lua | candump 日志文件离线分析 | 低,但需要先装 candump |
| CAN-USB Wireshark Plugin | 某些国产硬件 | 中等,需编译驱动 |
4.4 多工具协同时的注意点
很多工程师会同时开多个工具。但要注意:一个硬件接口同一时间只能被一个工具占用。比如 PCAN-USB 被 PCAN-View 占着,CANalyzer 就打不开。需要关闭上一个,或者用硬件通道切换。
- 驱动冲突:Vector 和 PEAK 的驱动不打架,但某些国产 USB-CAN 的驱动会覆盖 PEAK 的库。我曾经遇到过装了个国产工具后,PCAN-View 死活识别不到硬件——卸载国产驱动才恢复。
- 波特率不一致:三个工具各自配置独立,忘了统一波特率,抓到的全是乱码。我一般会在测试前发一条固定 ID 的报文校验,确认工具端解析一致。
- 日志格式:CANalyzer 用 .blf / .asc,PCAN-View 用 .trc / .txt,Wireshark 用 .pcap。批量分析时需要转换——网上有免费脚本,别手写。