御风灰灰
Published on 2026-03-31 / 6 Visits
0
0

基于NRF52840核心板抓蓝牙空口

使用nRF52840核心板实现蓝牙空口包抓取

本文将详细介绍使用nRF52840核心板(以PCA10056/nRF52840 DK为例)实现蓝牙空口包抓取的完整正常操作流程,步骤清晰、可直接落地,适用于需要调试BLE应用的开发者。

核心流程:准备工具 → 下载抓包工具包 → 烧录抓包固件 → 配置Wireshark插件 → 启动抓包,全程无异常排查,仅保留正常操作步骤。

一、操作准备(必做)

提前准备好以下工具和设备,避免操作中断:

  • 硬件:nRF52840核心板(PCA10056/nRF52840 DK)、支持数据传输的USB线
  • 软件:
    • nRF Connect for Desktop(含Programmer烧录工具,用于烧录固件)
    • Wireshark(用于显示和分析蓝牙空口包)
    • nRF Sniffer for Bluetooth LE工具包(含抓包固件和Wireshark插件)
    • Python 3.x(用于安装插件依赖)

二、步骤1:下载nRF Sniffer for Bluetooth LE工具包

该工具包包含抓包所需的固件、Wireshark插件,推荐下载最新稳定版(v4.1.1),操作如下:

  1. 打开官方下载页:https://www.nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE/Download
  2. 在“Downloads”栏目下,选择版本「4.1.1」,点击下载文件「nrf_sniffer_for_bluetooth_le_4.1.1.zip」
  3. 下载完成后,将压缩包解压至任意路径(建议路径无中文、无空格,如D:\nRF_Sniffer)

补充:工具包支持Windows、Linux、macOS系统,可根据自身系统选择对应版本(本文以Windows系统为例,Linux操作逻辑一致)。

三、步骤2:烧录抓包固件到nRF52840核心板

烧录固件支持两种方式,可根据自身工具情况选择,两种方式烧录效果一致,均能实现抓包功能。

3.1 方式一:nRF Connect for Desktop烧录(推荐,图形化操作)

使用nRF Connect for Desktop的Programmer工具烧录,步骤简单、无需命令行,适合新手操作:

  1. 打开nRF Connect for Desktop,安装并启动「Programmer」工具
  2. 用USB线连接nRF52840核心板的「J3接口(nRF USB)」和电脑,确保核心板正常上电
  3. 在Programmer工具中,点击「Select Device」,选择识别到的nRF52840设备(如nRF52840 DK)
  4. 点击「Erase & Program」,选择步骤1解压后工具包中的固件文件: 路径:解压文件夹 → hex → sniffer_nrf52840dk_nrf52840_4.1.1.hex
  5. 点击「Start」,等待烧录完成(提示“Success”即为烧录成功)
  6. 烧录完成后,重新插拔USB线,核心板将枚举为「nRF Sniffer」串口(Windows设备管理器可查看COM号)

3.2 方式二:JLink烧录(调试器烧录,稳定可靠)

若使用JLink调试器烧录,需提前安装JLink驱动,操作步骤如下:

  1. 将JLink调试器与nRF52840核心板(PCA10056)的JTAG接口连接,确保接线正确(VCC、GND、SWDIO、SWCLK对应)。
  2. 打开JLink Commander软件,启动后输入命令 connect,选择芯片型号「nRF52840_xxAA」,确认连接成功。
  3. 输入命令擦除芯片 flash:erase,等待擦除完成(提示“Erase completed successfully”)。
  4. 输入命令烧录固件(替换为实际固件路径):loadbin 你的固件路径\sniffer_nrf52840dk_nrf52840_4.1.1.hex, 0x0
  5. 烧录完成后,输入命令 reset 重启核心板,重启后核心板将枚举为「nRF Sniffer」串口。

补充:JLink烧录需确保接线无误,避免损坏核心板;固件路径需替换为步骤1解压后的实际路径。

烧录固件支持两种方式,可根据自身工具情况选择,两种方式烧录效果一致,均能实现抓包功能。

四、步骤3:配置Wireshark及nRF Sniffer插件

插件用于将串口传输的抓包数据解析并在Wireshark中显示,配置步骤如下:

  1. 打开步骤1解压后的工具包,找到「extcap」文件夹(内含插件核心文件)
  2. 将「extcap」文件夹下的所有文件,复制到Wireshark的「extcap」目录:
    1. Windows路径:C:\Program Files\Wireshark\extcap
    2. Linux路径:/usr/lib/x86_64-linux-gnu/wireshark/extcap
  3. 安装插件依赖:
    1. 打开终端(Windows以管理员身份运行),进入extcap目录(命令:cd C:\Program Files\Wireshark\extcap)
    2. 输入命令安装依赖:pip install -r requirements.txt
    3. 等待安装完成(核心依赖为pyserial,用于串口通信)
  4. 重启Wireshark,确保插件加载成功

五、步骤4:启动蓝牙空口包抓取

完成以上配置后,即可启动抓包,步骤如下:

  1. 打开Wireshark,点击顶部菜单栏「Capture → Options」(或快捷键Ctrl+K),打开捕获选项
  2. 在「接口」列表中,找到「nRF Sniffer for Bluetooth LE (COMx)」(COMx为步骤2中识别到的串口号)
  3. 双击该接口,打开配置窗口,按以下参数设置:
    1. Channel(信道):优先选择37、38、39(BLE广播信道),如需抓取特定设备数据,切换到对应数据信道
    2. Baud rate(波特率):固定设置为1000000(1M),与抓包固件默认波特率一致
    3. Link-layer type(链路层类型):保持默认「Nordic BLE Sniffer」,无需修改
  4. 点击「Start」,开始抓取蓝牙空口包
  5. 在Wireshark过滤栏输入「btle」,可只显示BLE相关数据包,过滤无关数据
  6. 抓取完成后,点击顶部「Stop」按钮,可保存抓包文件(.pcap格式)用于后续分析

六、操作总结

整个蓝牙空口包抓取流程分为5个核心步骤,全程无异常排查,按顺序操作即可顺利完成:

  1. 准备所需硬件和软件 → 2. 下载nRF Sniffer工具包 → 3. 烧录抓包固件 → 4. 配置Wireshark插件 → 5. 启动抓包并过滤数据

按照以上步骤,即可使用nRF52840核心板实现蓝牙空口包的实时抓取和分析,适用于BLE应用调试、协议学习等场景。


Comment