实测环境:Windows 11 + nRF52840 Dongle + Wireshark 4.2.0

在进行蓝牙低功耗(BLE)开发时,抓包分析是必不可少的调试手段。本文将详细介绍如何在 Windows 11 系统下,使用 nRF52840 Dongle 和 Wireshark 搭建蓝牙抓包环境。

🎯 准备工作

1️⃣ 安装 Wireshark

首先从官网下载最新版本的 Wireshark:

👉 https://www.wireshark.org/download.html

安装时的关键选项:

  • ✅ WinPcap / Npcap(必须勾选 - 网络抓包基础)

  • ✅ USBPcap(建议勾选 - USB 设备抓包)

  • ✅ extcap support(务必勾选 - 外部捕获支持)

安装完成后首次运行 Wireshark,确认程序正常启动。

2️⃣ 安装 Python 环境

nRF Sniffer 插件基于 Python 编写,需要确保系统已安装 Python。

前往 Python 官网 下载 Python 3.9-3.11 版本。

安装时重要设置:

  • 务必勾选 "Add Python to PATH"(将 Python 添加到系统路径)

安装完成后,打开命令提示符验证:

bash

python --version

正常显示 Python 版本号即表示安装成功。

📦 获取 nRF Sniffer 插件

3️⃣ 下载官方插件包

访问 Nordic Semiconductor 官方下载页面:

👉 https://www.nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE/download

下载最新版本的 Sniffer 工具包,例如:nRF-Sniffer-for-Bluetooth-LE-4.1.0.zip

🔧 安装配置步骤

4️⃣ 解压并部署插件

解压下载的 ZIP 文件,目录结构如下:

text

nRF-Sniffer-for-Bluetooth-LE-4.1.0/
│
├── extcap/
│   └── nrf_sniffer_ble.py     # Python 插件脚本
├── firmware/
│   └── nrf_sniffer_ble_52840dongle_nrf52840_4.1.0.hex  # Dongle 固件
├── profiles/
│   └── nrf_ble               # Wireshark 配置文件
└── README.txt

关键操作:将 Python 插件复制到 Wireshark 目录

将 nrf_sniffer_ble.py ,nrf_sniffer_ble.bat,文件复制到 Wireshark 的 extcap 目录:

text

C:\Program Files\Wireshark\extcap\\

💡 提示: 如果 Wireshark 安装在其他路径,请相应调整。

5️⃣ 刷写 nRF52840 Dongle 固件

使用 nRF Connect Programmer 进行固件烧录:

  1. 下载安装 nRF Connect for Desktop:
    👉 https://www.nordicsemi.com/Products/Development-tools/nRF-Connect-for-Desktop/Download

  2. 进入 DFU 模式:

    • 按住 nRF52840 Dongle 上的复位按钮

    • 插入 USB 接口(保持按住按钮)

    • 等待指示灯变为快速红色闪烁(表示进入 DFU 模式)

    • 释放复位按钮

  3. 烧录固件:

    • 打开 nRF Connect → Programmer

    • 在设备列表中选择 nRF52840 Dongle (DFU)

    • 点击 "Add file" 并选择固件文件:nrf_sniffer_ble_52840dongle_nrf52840_4.1.0.hex

    • 点击 "Write" 开始烧录

    • 烧录完成后,重新插拔 Dongle

🚀 开始抓包

6️⃣ 启动 Wireshark 抓包

  1. 以管理员身份运行 Wireshark(重要!)

  2. 进入菜单:Capture → Options

  3. 在接口列表中寻找:

    • nRF Sniffer for Bluetooth LE (COMx)

    • 或 Nordic Sniffer (Python extcap)

  4. 选择该接口,点击 "Start" 开始抓包

🔍 常见问题排查

❌ 问题:在 Wireshark 中看不到 nRF Sniffer 接口

解决方案:

  1. 检查设备管理器:

    • 打开设备管理器 → 端口 (COM & LPT)

    • 确认存在 nRF Sniffer for Bluetooth LE (COMx) 设备

    • 如显示黄色感叹号,需要重新安装驱动

  2. 验证插件位置:

    • 确认 nrf_sniffer_ble.py 已正确复制到 C:\Program Files\Wireshark\extcap\

  3. 检查 Python 路径:

    • 在命令提示符中运行 python --version 确认 Python 可用

  4. 权限问题:

    • 务必以管理员身份运行 Wireshark

  5. 重新安装驱动:

    • 在设备管理器中右键点击 nRF Sniffer 设备

    • 选择"更新驱动程序" → "浏览我的电脑以查找驱动程序"

    • 指向解压的 nRF Sniffer 文件夹中的 extcap 目录

💡 使用技巧

  • 过滤特定设备: 在 Sniffer 接口设置中可指定目标设备的 MAC 地址

  • 信道选择: 可配置只监听特定蓝牙信道

  • 实时分析: Wireshark 支持对 BLE 协议各层(ATT、GATT 等)的解析

📝 总结

通过以上步骤,您应该已经成功在 Windows 11 系统上搭建了完整的蓝牙抓包环境。nRF52840 Dongle 配合 Wireshark 提供了强大的 BLE 协议分析能力,极大便利了蓝牙应用的开发和调试工作。

如在操作过程中遇到其他问题,建议查阅 Nordic 官方文档或社区论坛获取更多支持。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐