第二章 硬件环境搭建与探针连接
做无线抓包调试,硬件是第一步。说白了,你协议栈分析得再漂亮,抓到的包不对,一切都是白搭。这一章我带你把抓包硬件选好、连好、调好,后面才能安心干活。
2.1 抓包硬件选型:三款主流方案对比
市面上能用的抓包器不少,但我个人习惯只推荐三款:TI CC2540、TI CC2531、Nordic nRF52840 DK。为什么?因为这三款我都踩过坑,也摸透了它们的脾气。
| 型号 | 接口 | 支持协议 | 抓包软件 | 价格区间 | 我的评价 |
|---|---|---|---|---|---|
| TI CC2540 USB Dongle | USB 2.0 | BLE 4.0/4.1/4.2 | TI Packet Sniffer / Wireshark | 50-100元 | 入门首选,便宜够用 |
| TI CC2531 USB Dongle | USB 2.0 | Zigbee 3.0 / BLE 4.0 | TI Packet Sniffer / Ubiqua | 60-120元 | Zigbee调试利器 |
| Nordic nRF52840 DK | USB / SWD | BLE 5.x / Thread / Zigbee | nRF Sniffer / Wireshark | 300-500元 | 全能型,支持BLE 5长包 |
我的建议:如果你只做BLE 4.x调试,CC2540就够了,几十块钱搞定。但如果你要抓BLE 5的长包或者做Thread/Zigbee混合调试,直接上nRF52840 DK,省得后面换设备折腾。
2.2 天线匹配与信号衰减问题
嗯,这里要注意。很多新手买了抓包器,插上电脑就开始抓,结果发现丢包严重,或者根本抓不到。我遇到过好几次,最后发现是天线匹配的问题。
CC2540和CC2531用的是板载PCB天线,或者外接SMA接口的2.4G天线。你想想看,如果天线阻抗不匹配,信号反射会直接吃掉接收灵敏度。我曾在项目中遇到过,用CC2531抓Zigbee网络,距离只有1米,但丢包率高达30%。后来换了原装天线,丢包率直接降到2%以下。
避坑指南:我曾经在实验室里用一根破损的SMA馈线接了CC2540,抓了整整一下午的包,数据分析出来全是错的。后来才发现是馈线屏蔽层断了,导致信号衰减了15dB。所以,天线和馈线一定要用万用表测一下通断,别偷懒。
信号衰减的几个关键点:
- 距离控制:抓包器和被测设备之间,最好在1-3米以内。超过5米,尤其是室内有墙体遮挡,丢包率会急剧上升。
- 天线方向:PCB天线有方向性,尽量让天线平面正对被测设备。我习惯用SMA外接天线,可以调整角度。
- 环境干扰:WiFi、微波炉、USB 3.0接口都会产生2.4G频段干扰。抓包时尽量远离这些干扰源。
2.3 USB驱动安装与固件烧录
硬件连上电脑,第一件事就是装驱动。别笑,我见过有人卡在这一步卡了两天。
2.3.1 TI CC2540/CC2531 驱动安装
这两款芯片用的是TI的专有USB协议,Windows需要安装TI Packet Sniffer驱动。步骤如下:
- 下载TI Packet Sniffer 2.4.3或更高版本(TI官网免费)。
- 插上Dongle,设备管理器里会显示未知设备。
- 手动更新驱动,选择TI Packet Sniffer安装目录下的驱动文件夹。
- 安装成功后,设备管理器里会出现"TI CC2540 USB Dongle"或"TI CC2531 USB Dongle"。
关键点:TI的驱动和Wireshark的USBPcap驱动有时会冲突。我建议先装TI驱动,再装Wireshark。如果顺序反了,可能需要卸载重装。
2.3.2 Nordic nRF52840 DK 驱动与固件
nRF52840 DK自带J-Link调试器,驱动相对简单:
- 安装nRF Command Line Tools,里面包含J-Link驱动。
- 或者直接装Segger J-Link驱动,官网下载。
- 装好后,设备管理器里会出现"J-Link"和"nRF52840 DK MSD"两个设备。
固件烧录方面,nRF52840 DK需要刷入nRF Sniffer固件:
1. 从Nordic官网下载nRF Sniffer for BLE 5.x
2. 解压后找到hex文件:nrf_sniffer_for_ble_5.x.hex
3. 将DK板通过USB连接到电脑
4. 把hex文件拖拽到DK板的MSD虚拟U盘里
5. 等待烧录完成,板子会自动重启
我的习惯:烧录完成后,我会用nRF Connect工具扫描一下,看看能不能抓到广播包。如果能看到设备列表,说明固件烧录成功。这一步花不了1分钟,但能避免后面白忙活。
2.4 知识结构总览
下面这张图把本章的核心逻辑串起来了。你可以把它当作搭建环境的检查清单。
2.5 快速验证清单
硬件环境搭建完,别急着开始抓包。花5分钟跑一遍这个清单,能省你后面2小时:
| 检查项 | 操作 | 预期结果 |
|---|---|---|
| 驱动安装 | 设备管理器查看 | 识别为对应抓包设备 |
| 固件版本 | 抓包软件查看 | 显示正确固件版本号 |
| 天线连接 | 万用表测SMA内芯与外壳 | 内芯导通,外壳导通,内外不短路 |
| 信号强度 | 抓包软件查看RSSI | 近距离-30dBm ~ -50dBm |
| 丢包率 | 连续抓100个广播包 | 丢包率 < 5% |
最后提醒一句:我曾经在客户现场调试,发现抓包器死活连不上。折腾了半小时,最后发现是USB线太长,供电不足。所以,USB线尽量用原装的,长度别超过1.5米。这个坑我替你踩过了,你别再踩一次。