用户工具

站点工具


cc2640r2f:packet_sniffer

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
cc2640r2f:packet_sniffer [2017/09/01 21:45]
long
cc2640r2f:packet_sniffer [2021/06/22 23:14] (当前版本)
行 3: 行 3:
 对于任何复杂协议的深入学习,我们都建议一个通用的学习方法,从规范->实现->抓包,规范是无关编程语言、语法文档表达,实现是各家SDK、API、源码,对于抓包则是对应实现理解规范。所以在BLE学习、研发过程抓包尤为重要。TI在这方面相比来说是做得相当好了,极大的简化了BLE的学习,熟练使用抓包工具,会大大降低蓝牙协议的技术入门槛,起到事半功倍的效果。 对于任何复杂协议的深入学习,我们都建议一个通用的学习方法,从规范->实现->抓包,规范是无关编程语言、语法文档表达,实现是各家SDK、API、源码,对于抓包则是对应实现理解规范。所以在BLE学习、研发过程抓包尤为重要。TI在这方面相比来说是做得相当好了,极大的简化了BLE的学习,熟练使用抓包工具,会大大降低蓝牙协议的技术入门槛,起到事半功倍的效果。
 对于蓝牙空中抓包,暂时地我们只有使用[CC2540 USB Dongle](http://www.ti.com/tool/cc2540emk-usb)。成功下载[PacketSniffer](http://www.ti.com/tool/packet-sniffer)直接双击安装。 对于蓝牙空中抓包,暂时地我们只有使用[CC2540 USB Dongle](http://www.ti.com/tool/cc2540emk-usb)。成功下载[PacketSniffer](http://www.ti.com/tool/packet-sniffer)直接双击安装。
 +
 ## 使用 ## ## 使用 ##
 ### 安装 ### ### 安装 ###
 成功安装PacketSniffer,我们直接插入[CC2540 USB Dongle](http://www.ti.com/tool/cc2540emk-usb)到PC,会自动安装驱动,成功安装驱动后,再设备管理器我们能够发现以下设备。 成功安装PacketSniffer,我们直接插入[CC2540 USB Dongle](http://www.ti.com/tool/cc2540emk-usb)到PC,会自动安装驱动,成功安装驱动后,再设备管理器我们能够发现以下设备。
 +
 ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/CC2540USBDongle.png) ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/CC2540USBDongle.png)
 +
 选择启动PackeetSniffer,并且选择Bluetooth Low Energy 选择启动PackeetSniffer,并且选择Bluetooth Low Energy
 +
 ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/PacketSnifferStart.png) ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/PacketSnifferStart.png)
 +
 ### 界面功能 ### ### 界面功能 ###
 我们将详细讲解界面功能, 我们将详细讲解界面功能,
 * 开始/停止抓包 自动滚轮 * 开始/停止抓包 自动滚轮
-![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/StartStop.png)+  ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/StartStop.png) 
 * Capturing Device  * Capturing Device 
-当前用以抓包的的硬件设备,我们这里的为CC2540 USB Dongle+  当前用以抓包的的硬件设备,我们这里的为CC2540 USB Dongle 
 * Radio Configuration * Radio Configuration
-Advertising Channel 广播信道,在<a href="cc2640r2f\ble_stack_app\bluetooth_overview\bluetooth_overview.html">蓝牙概述</a> 我们已经讲到 蓝牙40个信道保留了3个用以广播,默认广播信道会配置37、38、39全部进行广播,这里我们也可以指定某一个信道进行广播抓包。 +  Advertising Channel 广播信道,在<a href="cc2640r2f\ble_stack_app\bluetooth_overview\bluetooth_overview.html">蓝牙概述</a> 我们已经讲到 蓝牙40个信道保留了3个用以广播,默认广播信道会配置37、38、39全部进行广播,这里我们也可以指定某一个信道进行广播抓包。 
-![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/RadioConfiguration.png)+  ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/RadioConfiguration.png) 
 * Select fields  * Select fields 
-选择抓包指定协议层,指定类型显示,除非我们对协议分层和PDU有很好认识,否则这里我们保持全部选择。+  选择抓包指定协议层,指定类型显示,除非我们对协议分层和PDU有很好认识,否则这里我们保持全部选择。 
 * Display filter * Display filter
 ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/DispalyFilter.png) ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/DispalyFilter.png)
行 25: 行 34:
 作为一个[负责任的公司](www.leconiot.com)就一定会讲解这里过滤规则的`FiledName`。对于这里的过滤规则主要是通过PDU(协议数据单元)不同的域进行过滤,主要参考 **蓝牙核心标准->Vol 6: Core System Package [Low Energy Controller volume]->Part B: Link Layer Specification->2 Air Interface Packets** 作为一个[负责任的公司](www.leconiot.com)就一定会讲解这里过滤规则的`FiledName`。对于这里的过滤规则主要是通过PDU(协议数据单元)不同的域进行过滤,主要参考 **蓝牙核心标准->Vol 6: Core System Package [Low Energy Controller volume]->Part B: Link Layer Specification->2 Air Interface Packets**
  
-    |FiledName|Description|example| +  | FiledName     | Description                                                  | example | 
-    |---------|-----------|-------| +  ------------- | ------------------------------------------------------------ | ------- | 
-    |AccessAddress|接近地址,正如我们知道,BLE通过跳频在37个信道切换,切换的规则就是这里AccessAddress。|| +  | AccessAddress | 接近地址,正如我们知道,BLE通过跳频在37个信道切换,切换的规则就是这里AccessAddress。 |         
-    |ADV_PDU Type|广播协议数据单元 类型,APT=x,x表示ADV_IND、ADV_CONNEREQ +  |ADV_PDU Type|广播协议数据单元 类型,APT=x,x表示ADV_IND、ADV_CONNEREQ|| 
-    |ADV_CONNREQ AdvA|广播连接请求的广播的地址,AA6=x x表示广播的设备的MAC地址,例如AA6=0x546C0E9B69D9 +  |ADV_CONNREQ AdvA|广播连接请求的广播的地址,AA6=x x表示广播的设备的MAC地址,例如AA6=0x546C0E9B69D9|| 
-    |ADV_CONNREQ InitA|广播连接请求的发起者地址 IA2=x x 表示初始化广播连接的设备地址。 +  |ADV_CONNREQ InitA|广播连接请求的发起者地址 IA2=x x 表示初始化广播连接的设备地址。|| 
-    |ADV_DIR_IND AdvA| +  |ADV_DIR_IN||| 
-    |ADV_DIR_IND InitA +  |ADV_DIR_IND AdvA||
-    |ADV_DISC AdvA| +  |ADV_DIR_IND InitA||| 
-    |ADV_IND AdvA|指定某个MAC地址设备的广播,过滤 AA1=x x表示 +  |ADV_DISC AdvA||
-    |ADV_NONCONN AdvA| +  |ADV_IND AdvA|指定某个MAC地址设备的广播,过滤 AA1=x x表示|| 
-    |ADV_SCANREQ AdvA|扫描请求到某个广播设备地址过滤,AA4=x +  |ADV_NONCONN AdvA||
-    |ADV_SCANREQ InitA|发起扫描请求的设备地址过滤,SA1=x +  |ADV_SCANREQ AdvA|扫描请求到某个广播设备地址过滤,AA4=x|| 
-    |ADV_SCANRSP AdvA|广播设备对扫描请求进行的回复,AA5=x +  |ADV_SCANREQ InitA|发起扫描请求的设备地址过滤,SA1=x|| 
-    |Chanel| +  |ADV_SCANRSP AdvA|广播设备对扫描请求进行的回复,AA5=x|| 
-    |CRC| +  |Chanel||
-    |Data Type| +  |CRC||
-    |Data Type| +  |Data Type||
-    |FCS ERROR| +  |Data Type||
-    |FCS OK| +  |FCS ERROR||
-    |Opcode| +  |FCS OK||
-    |PktNumber| +  |Opcode||
-    |RSSI| +  |PktNumber||
-    +  |RSSI||
 ### 开启蓝牙抓包 ### ### 开启蓝牙抓包 ###
 对于蓝牙抓包,我们可以清 对于蓝牙抓包,我们可以清
行 55: 行 65:
 * 过滤显示某个设备的广播数据(ADV_IND AdvA) * 过滤显示某个设备的广播数据(ADV_IND AdvA)
  
-指定设备MAC地址为x546C0E9B69D9,通过添加规则 `AA1=0x546C0E9B69D9` 后点击Apply filter 使能规则。 +  指定设备MAC地址为x546C0E9B69D9,通过添加规则 `AA1=0x546C0E9B69D9` 后点击Apply filter 使能规则。 
-![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/AdvA.png)+  ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/AdvA.png)
  
 * 过滤某两个设备之间的扫描请求和回复 * 过滤某两个设备之间的扫描请求和回复
-对于抓包,我们需要监听手机A(Scanner/Iniator/Master)和蓝牙开发板B(Advertiser/Slvae)之间的扫描过程。应用规则`AA5=0x546C0E9B69D9;SA1=0xB0912269FE40+  对于抓包,我们需要监听手机A(Scanner/Iniator/Master)和蓝牙开发板B(Advertiser/Slvae)之间的扫描过程。应用规则`AA5=0x546C0E9B69D9;SA1=0xB0912269FE40
->**注意**:注意规则的";"分号间隔表示两条规则需要同时满足;+
  
-![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/ScanQuest.png)+  > **注意**:注意规则的";"分号间隔表示两条规则需要同时满足;
  
 +  ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/ScanQuest.png)
 * 连接请求 * 连接请求
 ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/ADV_CONNECT_REQ.png) ![](http://www.leconiot.com/md_res/cc2640r2f/tool_kits/packet_sniffer/Images/ADV_CONNECT_REQ.png)
行 70: 行 80:
 ## Troubleshooting ## ## Troubleshooting ##
 * 设置地址警告 * 设置地址警告
-``` + 
---------------------------- +  ```bash 
-GenPacketSniffer +  --------------------------- 
---------------------------- +  GenPacketSniffer 
-Invalid format of initiator address. Should be given as 12 hex digits. +  --------------------------- 
-Examples of correct format: 0x0123456789AB, 0x112233445566, 0xFFFFFFFFFFFF. +  Invalid format of initiator address. Should be given as 12 hex digits. 
---------------------------- +  Examples of correct format: 0x0123456789AB, 0x112233445566, 0xFFFFFFFFFFFF. 
-确定    +  --------------------------- 
---------------------------- +  确定    
-``` +  --------------------------- 
-地址格式不对。+  ``` 
 + 
 +  地址格式不对。 
 * 抓不到蓝牙建立连接 * 抓不到蓝牙建立连接
  
行 92: 行 105:
 </div> </div>
 </markdown> </markdown>
- 
cc2640r2f/packet_sniffer.1504273534.txt.gz · 最后更改: 2021/06/22 23:14 (外部编辑)