4、抓包工具准备:CANalyzer、PCAN-View、Wireshark

做总线故障分析,工具就是你的眼睛和手。选错了工具,或者装了一半没配好,后续所有抓包都白费。今天我把三套最常用的工具捋一遍——CANalyzer、PCAN-View、Wireshark+插件。每套都有它的脾气,装的时候注意几个坑,能省你半天时间。

先记住一句话:没有万能工具,只有最合适的场景。CANalyzer 适合深度分析,PCAN-View 适合快速确认裸数据,Wireshark 抓 CAN 是跨界玩法但很好用。

4.1 CANalyzer 安装与基本设置

CANalyzer 是 Vector 家的旗舰,功能全但贵,公司一般是买 Node-Locked 或浮动 License。个人习惯是先装软件本体,再装 License Manager,一步步来。

  1. 从 Vector 官网下载:注意版本要与操作系统匹配。Win10/11 建议用 15/16 以上版本。
  2. 运行安装包:默认路径就好,别改到中文目录,否则后期有些 DBC 加载会乱码。
  3. 安装 License Manager:如果用 USB 加密狗,插上后手动更新驱动。我在项目里遇到过系统更新后认不到狗的坑,重新装一次驱动就好了。
  4. 硬件配置:启动软件后,打开 Hardware → Network Hardware,选对接口速率。CAN 默认 250k,别搞错。
注意:如果你用的是虚拟通道(VN1610 之类),一定要先装 Vector Hardware Driver Pack。我曾经因为跳过了这一步,折腾了半小时才反应过来。

基本设置清单:新建工程 → 添加 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
个人经验:刚开始用 CANalyzer 时,我习惯把 Logging 窗口拉满,但数据量一大就卡。后来学会用 Filter 只记录需要的 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 才看得到。

避坑:PCAN-View 的发送功能默认是“周期性发送”,如果误触了某个 ID 的循环发送,可能会干扰总线。我记得有一次在测试时忘记关掉循环发送,导致 ECU 收到了异常报文,排查了半天才发现是工具自己发的。

4.3 Wireshark 抓 CAN(需额外插件)

Wireshark 大家都熟,但抓 CAN 报文需要装一个插件。为什么这么做?因为 Wireshark 原生只认识以太网包,你得把 CAN 帧包装成 SLCAN 或 USBCAN 格式才能解析。

需要的插件:wireshark_candump.lua 或 can_socketcan.lua。我个人习惯用后者,因为它支持 CAN FD。

  1. 下载插件:放在 Wireshark 的 init.lua 同级目录(通常是 Windows 下 C:\Program Files\Wireshark\)。
  2. 修改配置:打开 init.lua,找到 dofile(DATA_DIR.."console.lua") 那行,在其后添加 dofile(DATA_DIR.."can_socketcan.lua")。
  3. 启动 Wireshark:在接口列表里会多出一个 "CAN" 或 "SLCAN" 接口,选择并开始抓包。
建议:如果抓不到数据,检查硬件驱动是否已安装。我用的是 USBtin,需要装 USBtin 的虚拟串口驱动。Wireshark 只认标准串口,不认自定义设备。
插件名称 适用场景 安装难度
can_socketcan.lua SocketCAN、SLCAN 设备(如 USBtin) 低,复制文件即可
wireshark_candump.lua candump 日志文件离线分析 低,但需要先装 candump
CAN-USB Wireshark Plugin 某些国产硬件 中等,需编译驱动
最常用的场景:先用 PCAN-View 确认物理层没问题,然后用 CANalyzer 做深度分析,最后用 Wireshark 导出 pcap 给网络工程师看。
抓包工具选型逻辑 深度分析 + 仿真 CANalyzer 快速巡检 + 裸数据 PCAN-View 跨界抓包 + 流量导出 Wireshark + 插件 硬件驱动 & 通道配置 Vector / PEAK / USBtin 驱动 + 波特率 + DBC 抓包结果 原始帧 / 错误帧 / 信号解析 / pcap 文件 建议流程 PCAN-View 确认物理层 → CANalyzer 深度分析 → Wireshark 导出 不用全装,根据项目阶段选一把武器就行

4.4 多工具协同时的注意点

很多工程师会同时开多个工具。但要注意:一个硬件接口同一时间只能被一个工具占用。比如 PCAN-USB 被 PCAN-View 占着,CANalyzer 就打不开。需要关闭上一个,或者用硬件通道切换。

  • 驱动冲突:Vector 和 PEAK 的驱动不打架,但某些国产 USB-CAN 的驱动会覆盖 PEAK 的库。我曾经遇到过装了个国产工具后,PCAN-View 死活识别不到硬件——卸载国产驱动才恢复。
  • 波特率不一致:三个工具各自配置独立,忘了统一波特率,抓到的全是乱码。我一般会在测试前发一条固定 ID 的报文校验,确认工具端解析一致。
  • 日志格式:CANalyzer 用 .blf / .asc,PCAN-View 用 .trc / .txt,Wireshark 用 .pcap。批量分析时需要转换——网上有免费脚本,别手写。
总结一下:这章讲的不是“哪个工具更好”,而是“怎么把工具装好、调好,别在第一步摔跟头”。工具是死的,现场问题是活的。你想想看,如果连工具都跑不起来,后面20多章的内容全白搭。