一分钟读懂低功耗蓝牙(BLE)连接数据包
一分钟读懂低功耗蓝牙(BLE)连接数据包1.概述
BLE 连接过程中有三个重要的数据包:SCAN_REQ, SCAN_RSP 和 CONNECT_REQ。
SCAN_REQ: 扫描请求,由主设备(MASTER DEVICE)向从设备(SLAVE DEVICE)发出,目的是为了获得从设备的响应以得到更多的从设备
广播数据信息(包括设备名字,或者服务UUID,及其它如厂家特定格式的信息(如硬件版本,软件版本号,设备系列号等等)
SCAN_RSP:从设备对就主设备发起的SCAN_REQ的响应,作为广播包的补充,从设备可以给主设备更多的广播数据,比如说,有些设备在广播
包里面没有设备名字,这个时候就可以把设备名字放在这个包里面发给主设备
CONNECT_REQ:主设备向从设备发出连接请求。至此连接建立完成(从设备不会响应这个请求),如果从设备没有连接上面的问题的话,以后
主从双方会开始相互交换有效数据(基于GAP,GATT及SMP协议)或者交换空包。
以下对这三个数据包进行详细解读
2.关键字:Hollong BLE 侦听仪,低功耗蓝牙嗅探器, BLE 分析仪,BLE 数据抓取
Keyword: Hollong BLE Sniffer, BLE Data Analyzer,BLE Capture
3.抓取连接数据包的准备工作
* 硬件:一个BLE设备(从设备)及对应的主设备(如智能手机里面的相关应用程序,或者通用BLE 工具软件);
一台HOLLONG BLE SNIFFER (Hollong BLE 侦听仪)
* 软件:Hollong 蓝牙4.0/4.1 BLE协议监控分析仪 软件
下载链接:
http://www.viewtool.com/index.php/22-2016-07-29-02-11-32/205-hollong-4-0-4-1-ble
4. SCAN_REQ 包
1)完整包
2) 存取地址 (Access Address) 对于广播包,这是一个固定长度(4个字节)及固定内容(0x8e89bed6)的主从设备识别广播包的存取地址。
3)头信息 (Header Info) 固定为2个字节:分解为16个位来使用
位:P广播包(PDU) 类型,总共有6个类型:
PDU Type
b3b2b1b0 Packet Name
0000 ADV_IND: 可连接通用连接广播
0001 ADV_DIRECT_IND:可连接定向连接(指定设备)广播
0010 ADV_NONCONN_IND:不可连接通用广播
0011 SCAN_REQ:扫描请求
0100 SCAN_RSP:扫描响应
0101 CONNECT_REQ:连接请求
0110 ADV_SCAN_IND:可扫描通用广播
0111-1111 Reserved
位:保留
位:RxAdd
位:TxAdd
位:广播数据长度 (最大为37 字节)
位:保留
4) 主设备地址
5)从设备地址
6)CRC
4. SCAN_RSP 包
1)存取地址
定义同上
2)头信息
定义同上
3)从设备地址
固定6个字节的从设备地址(MAC ADDRESS)
http://www.viewtool.com/bbs/data/attachment/forum/201707/26/110311yopooqpaxy2yqqht.png
4)响应数据(广播数据)
格式同广播数据格式(详见文“1分钟读懂低功耗蓝牙广播数据”), 在这个包里面,数据为0(没有数据)
http://www.viewtool.com/bbs/data/attachment/forum/201707/26/110308xxxmzvxualay4uxo.png
5)CRC
固定为3个字节
http://www.viewtool.com/bbs/data/attachment/forum/201707/26/110307vsgktjd5ga8daydd.png
因论坛内容长度限制,原文链接:http://www.viewtool.com/bbs/forum.php?mod=viewthread&tid=63206&extra=page%3D1
抱歉!
页:
[1]