用户名:
密码:
免费注册
自动化平台 |
产品库
|
品牌库
|
企业库
网站导航
资讯
企业
产品
商机
下载
文库
专题
专访
社区
积分
搜索
组织
学院
人才
征文
教程
展会
图书
视频
周刊
深圳市纬图物联技术有限公司
首页
公司介绍
公司资讯
产品中心
商机资讯
资料下载
说明书
软件
产品图纸
选型手册
产品报价
其它
应用案例
人才招聘
联系我们
在线反馈
当前位置:
自动化网
>
深圳市纬图物联技术有限公司门户
>
应用案例
>
一分钟读懂低功耗蓝牙(BLE)连接数据包
一分钟读懂低功耗蓝牙(BLE)连接数据包
发布时间:2017-08-01 10:46 类型:
技术前沿
人浏览
1.概述
BLE 连接过程中有三个重要的数据包:SCAN_REQ, SCAN_RSP 和 CONNECT_REQ。
SCAN_REQ: 扫描请求,由主设备.masterDEVICE)向从设备(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.ph ... hollong-4-0-4-1-ble
4.
SCAN_REQ 包
1)完整包
2) 存取地址 (Access Address) 对于广播包,这是一个固定长度(4个字节)及固定内容(0x8e89bed6)的主从设备识别广播包的存取地址。
3) 头信息 (Header Info) 固定为2个字节:分解为16个位来使用
位[0:3]: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
位[4:5]:保留
位[6]:RxAdd
位[7]:TxAdd
位[8:13]:广播数据长度 (最大为37 字节)
位[14:15]:保留
4) 主设备地址
5)从设备地址
6)CRC
4.
SCAN_RSP 包
1)存取地址
定义同上
2)头信息
定义同上
3)从设备地址
固定6个字节的从设备地址(MAC ADDRESS)
4)响应数据(广播数据)
格式同广播数据格式(详见文“
1分钟读懂低功耗蓝牙广播数据
”), 在这个包里面,数据为0(没有数据)
5)CRC
固定为3个字节
5. CONNECT_REQ 包
1)存取地址
固定4个字节和内容(0x8e89bed6)的存取地址,BLE 芯片使用这个固定的地址作为广播通道的BLE数据接收。
2)头信息
二个字节的头信息(解析格式同上)
3)主设备地址
4)从设备地址
5)存取地址
在此指定连接后使用的存取地址(BLE 数据通道),这个地址是由内部指定的非确定的4个字节长度的地址,不像广播数据通道使用固定内容的存取地址。
6)CRC INIT
初始化的CRC 值,以后被使用于数据CRC 校验
7)窗口时间 (Win Size)
8) 窗口偏移
9)数据间隔时间 (CONNECTION INTERVAL)
发送两个数据包(或者空包)的间隔时间。
计算公式为:24 (0x18) * 1.25ms = 30ms, 在抓取的数据包中可以看到,每两个包之间的间隔是30MS。 下载此数据包需要注册。
10)时延(Latency)
11) 中断连接最大时延(TIME OUT)
当主从双方有一方在大于此时间后没有接收到任何数据包或者空包,则由连接状态转为非连接状态(主设备可以重新开始
扫描, 从设备也可以重新开始广播,具体做什么由应用程序决定)。
计算方法: 最大时延 = TIME_OUT * 10MS, 在此为:72 (0X48) * 10 = 720 MS, 也就是说,如果双方在0.72秒期间没有收到任何数据包或者空包,则视为连接中断,由连接状态转为非连接状态,开始做应用程序要求做的事情。
12)跳频通道图(CHANNEL MAP)
这个跳频图是由BLE 芯片根据周围环境中可以使用的BLE 通道而制定出来,根据扫描测试的环境不同(指被占用的频谱资源不同)而不同,当这个图(表)通过CONNECT_REQ 包发送给从设备后,主从双方都会根据这个图来同步跳频(HOPPING),低功耗蓝牙设备通过这个方法能够有效避开拥堵的频道,使用比较“干净”,无(少)干扰的频道来交换数据,从而大幅提升传输数据的稳定可靠性。
由于这个是在比较干净(周围几乎没有任何BLE 设备或者其它工作在2.4G频段,类似频道的强信号设备)的环境下面工作的主从设备,所以可以看出,它使用了所有频道(除了广播专用频道37,38,39)作为跳频图。
13) HOP 及CLOCK
0xAF (10101111)
HOP: 10101
CLOCK: 111 => 对应晶体精度 为0-20PPm
一个字节的前5个位指定HOP(跳频)算法中需要的数据(HOPINCREMENT),另外三个位指定晶体的精度等级(可以有多少PPM的误差)
SCA masterSCA, 三个位对应的晶体精度等级如下: 000: 251 ppm to 500 ppm
001: 151 ppm to 250 ppm
010: 101 ppm to 150 ppm
011: 76 ppm to 100 ppm
100: 51 ppm to 75 ppm
101: 31 ppm to 50 ppm
110: 21 ppm to 30 ppm
111: 0 ppm to 20 ppm
3 小时前
上传
下载附件
(118.7 KB)
14)CRC
同上
Core_V4.0_LE.pdf
(818.21 KB, 下载次数: 0)
em9304 fineme 071117.zip
(19.05 KB, 下载次数: 2)
原文链接:
http://www.viewtool.com/bbs/foru ... amp;extra=#pid71204
微信公众号: 纬图物联
本文地址:http://www.ca800.com/apply/d_1nvgkrcckp1q9_1.html
拷贝地址
版权声明:版权归中国自动化网所有,转载请注明出处!
留言反馈
评价:
1
2
3
4
5
关于:
联系人:
联系电话:
联系邮箱:
需求意向:
验证码:
看不清楚?
最新案例
如何利用纬图HOLLONG BLE SNIFFER
SPI适配器上位机底层函数使用代码
如何利用Ginkgo USB-I2C实现从机I
基于CAN总线的Bootloader程序源码
如何用Python对Ginkgo USB- CAN进
如何用两个Ginkgo USB-SPI分别作
一分钟读懂低功耗蓝牙(BLE)MTU交
热门排行
基于CAN总线的Bootloader程序源码
一分钟读懂低功耗蓝牙(BLE)广播
发布一个基于QT的数据采集源码
一分钟读懂低功耗蓝牙(BLE)连接
如何利用纬图HOLLONG BLE SNIFFER
如何用Python对Ginkgo USB- CAN进
如何用两个Ginkgo USB-SPI分别作
网友反馈
唐漾:
在2017/5/25 9:53:06留言
留言内容:
更新缓存
唐漾:
在2017/5/23 17:15:58留言
留言内容:
更新
在线咨询
501987477