2. 硬件环境搭建:nRF52840 DK + Wireshark 环境搭建、TI CC2540 USB Dongle 驱动安装、Ellisys Vanguard 设备连接

做 BLE 抓包分析,硬件是第一步。工具选不对,后面全是坑。

我个人习惯把抓包设备分成三类:开发板方案、USB Dongle 方案、专业分析仪方案。这三类各有各的适用场景,价格也从几十块到几万块不等。今天咱们就把这三套环境从头到尾捋一遍。

核心观点:没有最好的抓包工具,只有最适合你当前场景的工具。开发板适合学习和调试自家固件,Dongle 适合快速嗅探,Ellisys 适合做认证和复杂协议分析。

BLE 抓包硬件方案对比 nRF52840 DK 开发板方案 CC2540 USB Dongle USB 嗅探器 Ellisys Vanguard 专业分析仪 特性 • 成本:约 ¥500 • 支持 Wireshark • 可同时做开发 特性 • 成本:约 ¥50 • 需额外驱动 • 便携易用 特性 • 成本:约 ¥30,000+ • 硬件解码 • 认证级精度 适用:学习 / 固件调试 适用:快速嗅探 / 现场排查 适用:认证测试 / 深度分析 选择建议:从 nRF52840 DK 入门,进阶后按需升级

2.1 nRF52840 DK + Wireshark 环境搭建

nRF52840 DK 是我最推荐入门方案。为什么?因为它本身就是一块完整的开发板,你既能用它跑 BLE 应用,又能把它当抓包器用。一块板子,两种用途,性价比很高。

2.1.1 硬件准备

  • nRF52840 DK(PCA10056 版本)
  • Micro USB 数据线(两根,一根供电,一根做抓包通道)
  • PC 端 Windows / macOS / Linux 均可

小技巧:我习惯用两根 USB 线。一根接在 J2(供电/调试),另一根接在 J3(串口/抓包数据)。这样抓包时不会因为调试器复位导致数据中断。

2.1.2 固件烧录

nRF52840 DK 需要刷入专用的抓包固件。Nordic 官方提供了 nRF Sniffer for BLE 工具包。

  1. 下载 nRF Sniffer for BLE 安装包(Nordic 官网免费获取)
  2. 安装 nRF Connect for Desktop
  3. 打开 nRF Connect,找到「Programmer」工具
  4. 选择 nRF52840 DK 目标设备
  5. 加载 sniffer_nrf52840dk.hex 固件
  6. 点击「Write」烧录
# 如果你习惯用命令行,也可以用 nrfjprog
nrfjprog -f nrf52 --program sniffer_nrf52840dk.hex --sectorerase
nrfjprog -f nrf52 --reset

注意:烧录抓包固件后,这块板子就不能再跑普通 BLE 应用了。想恢复的话,重新烧回你的应用固件就行。我一般会备两块板子,一块专门抓包,一块做开发。

2.1.3 Wireshark 配置

固件烧好了,接下来让 Wireshark 认识它。

  1. 安装 Wireshark(建议 3.4 以上版本)
  2. 安装 nRF Sniffer 配套的 Wireshark 插件(extcap 接口)
  3. 重启 Wireshark,在接口列表里应该能看到「nRF Sniffer for BLE」
  4. 选择该接口,点击开始抓包

嗯,这里要注意。第一次用的时候,Wireshark 可能提示缺少「libusb」驱动。Windows 下用 Zadig 工具把 nRF52840 DK 的驱动换成 WinUSB 就行。

# 验证抓包接口是否正常
# 在 Wireshark 中过滤 BLE 广播包
btle.advertising_address == xx:xx:xx:xx:xx:xx

2.2 TI CC2540 USB Dongle 驱动安装

CC2540 USB Dongle 是个小东西,长得跟普通 U 盘似的。价格便宜,淘宝几十块就能买到。但便宜有便宜的代价——驱动折腾起来比较麻烦。

我记得第一次用 CC2540 时,插上电脑没反应,设备管理器里显示一个未知设备。当时我还以为是 Dongle 坏了,后来才发现是驱动问题。

2.2.1 驱动安装步骤

步骤 操作 说明
1 下载 TI BLE Packet Sniffer 安装包 TI 官网注册下载,约 200MB
2 安装 Packet Sniffer 软件 会自动安装驱动,但有时会失败
3 手动更新驱动 设备管理器 → 更新驱动 → 选择驱动目录
4 验证 设备管理器出现「TI CC2540 USB Dongle」

避坑指南:我曾经在 Windows 10 上折腾了整整一下午。后来发现是驱动签名问题。解决办法:重启电脑时按 F8 进入「禁用驱动程序强制签名」模式,再安装驱动。Windows 11 也有类似问题,建议用兼容模式安装。

2.2.2 与 Wireshark 配合

CC2540 默认用 TI 自家的 Packet Sniffer 软件。但说实话,那个界面太老了,我基本不用。我更推荐用第三方工具「BTLE」或者「Sniffle」把 CC2540 的数据转发到 Wireshark。

# 使用 Sniffle 工具(开源)
# 下载 Sniffle 固件并烧录到 CC2540
# 然后通过串口转发到 Wireshark
python sniffle.py -s COM3 -w

个人建议:CC2540 适合做快速嗅探,比如在展会现场排查干扰问题。但它的缺点是只能抓广播包,连接后的数据包抓不全。如果你要做连接态分析,还是用 nRF52840 DK 或者 Ellisys 吧。

2.3 Ellisys Vanguard 设备连接

Ellisys Vanguard 是专业级 BLE 分析仪。价格不便宜,一台两三万起步。但它的能力也是消费级工具比不了的——硬件级解码、多协议同步、纳秒级时间戳。

我是在做 BLE 认证测试时第一次接触 Ellisys。当时被一个连接参数协商的问题卡了两周,用 nRF Sniffer 怎么都抓不到关键包。换上 Ellisys 后,十分钟就定位到了问题。嗯,专业工具确实有它的价值。

2.3.1 硬件连接

  • Ellisys Vanguard 主机(带 USB 3.0 接口)
  • 天线(2.4GHz 全向天线,标配)
  • USB 3.0 数据线连接 PC
  • 电源适配器(12V DC)

2.3.2 软件安装

  1. 下载 Ellisys BLE Analyzer 软件(官网下载,需授权)
  2. 安装驱动(Windows 下自动识别,macOS 需安装虚拟串口驱动)
  3. 打开软件,点击「Connect」
  4. 选择 Vanguard 设备,等待初始化完成

2.3.3 抓包配置要点

参数 推荐值 说明
中心频率 2402 MHz ~ 2480 MHz 全频段扫描
采样带宽 2 MHz BLE 标准带宽
触发模式 广播包触发 捕获连接建立过程
时间戳精度 0.5 μs 硬件级精度

关键点:Ellisys 的硬件解码能力很强。它能在抓包的同时,实时解析出 Link Layer 状态机、连接事件时序、跳频序列等信息。这些在 Wireshark 里需要手动分析,Ellisys 直接帮你画好了。

2.3.4 常见问题

  • 设备无法识别:检查 USB 3.0 驱动,尝试换一个 USB 口
  • 抓包丢包:天线位置不对,调整天线角度,避免金属遮挡
  • 软件崩溃:Ellisys 软件比较吃内存,建议 16GB 以上 RAM

我的经验:Ellisys 的「Follow Connection」功能特别好用。你只要点一下某个连接请求包,它自动跟踪这个连接的所有后续事件,包括重传、丢包、连接参数更新。做功耗分析时,这个功能能省你大量时间。

2.4 三种方案对比总结

对比项 nRF52840 DK CC2540 USB Dongle Ellisys Vanguard
价格 约 ¥500 约 ¥50 约 ¥30,000+
抓包范围 广播 + 连接 仅广播 广播 + 连接 + 跳频
时间戳精度 软件级 (ms) 软件级 (ms) 硬件级 (μs)
多协议支持 仅 BLE 仅 BLE BLE + BT Classic + 802.15.4
学习曲线 低 中 高
推荐场景 学习 / 开发调试 快速嗅探 认证 / 深度分析

说实话,我不建议初学者一上来就买 Ellisys。先用 nRF52840 DK 把抓包的基本功练好,等遇到真正需要硬件级分析的问题时,再考虑升级工具。工具是手段,不是目的。能抓到问题本质的,才是好工具。