蓝牙
(Bluetooth®
):是一种无线技术标准
,可实现固定设备
、移动设备
和楼宇个人域网
之间的短距离数据交换
。蓝牙
由蓝牙技术联盟
(SIG)管理。
蓝牙
的波段
为2.4GHz
短距离无线电频段。
蓝牙发展历程:
序号 | 时间 | 标准 | 特性 |
---|---|---|---|
1 | 2010年6月 | 蓝牙4.0(Bluetooth Smart) | 极低 的运行 和待机 功耗, 支持BLE (低功耗蓝牙 ) |
2 | 2013年12月 | 蓝牙4.1(软件更新) | - |
3 | 2014年12月 | 蓝牙4.2(硬件更新) | 1. 实现物联网 :支持灵活的互联网连接 选项(IPv6 /6LoWPAN 或Bluetooth Smart网关 )。2. 让Bluetooth Smart 更智能:业界领先的 隐私权限 、节能效益 和堪称业界标准 的安全性能 。3. 让Bluetooth Smart 更快速: 吞吐量速度 和封包容量提升 。 |
4 | 2016年6月 | 蓝牙5.0 | 1. 针对低功耗设备 , 有着更广 的覆盖范围 和相较现在四倍的速度提升。2. 传输速度 上限为24Mbps , 是之前4.2LE版本的两倍 。3. 有效工作距离可达 300米 , 是之前4.2LE版本的4倍 。4. 为应对移动客户端需求, 其 功耗更低 , 且兼容老的版本。 |
5 | 2017年7月 | - | 开始全面支持mesh 网状网 |
蓝牙协议分层:
1、主协议层
1. 通用访问规范
(Generic Access Profile,GAP)
GAP
是应用层
能够直接
访问BLE协议栈
的最底层
,它包括管理广播
和连接事件
的有关参数。GAP
模块代表了所有蓝牙设备的共用基础
功能,如传输
,协议
或者应用规范
所使用的模式
和访问过程
。GAP
的服务包括设备发现
,连接方式
,安全
,认证
,关联模型
和服务发现
等。
(1)角色:为了创建和维护一个BLE连接, 引入角色这一概念。一个BLE设备不是主机(集中器)角色就是从机(外围设备)角色, 这是根据是谁发起这个连接来确定的。主机设备总是连接的发起者, 而从机总是被连接者。这个访问与连接过程都在通用访问规范(GAP)进行实现的。
(2)广播:集中器能够与外围设备建立连接,外围设备必须处于广播状态,它每经过一个时间间隔发送一次广播数据包,这个时间间隔称为广播间隔,它的范围是20ms到10.24s。广播间隔影响建立连接的时间。
集中器发送一个连接请求来发起连接之前,必须接收到一个广播数据包,外围设备发送一个广播数据包之后一小段时间内只监听连接请求。
一个广播数据包最多能携带31个字节的数据,它通常包含用户可读的名字、关于设备发送数据包的有关信息、用于表示此设备是否可被发现的标志等类似的标志。
当集中器接收到广播数据包后,可能发送请求更多数据包的请求,称为扫描回应,如果它被设置成主动扫描,外围设备将会发送一个扫描回应作为对集中器请求的回应,扫描回应最多可以携带31字节的数据。
广播,包括扫描请求和扫描回应,必须在远离WLAN使用的2.4G频段之外的3个频率上,以防止被WiFi干扰。
(3)扫描,集中器监听广播数据包和发送扫描请求的过程,有两个定时参数:扫描窗口和扫描间隔。
(4)连接,集中器和外围设备第一次交换数据定义为连接状态。
2. 通用属性规范
(Generic Attribute Profile,GATT)
GATT
是真正传输数据
所在的层。包括了一个数据传输
和存储框架
以及基本操作
。
GATT
定义了两类角色:服务器
(Server
)和客户端
(Client
),GATT角色
无需和GAP角色
绑定,但是可能由更高层
的规范
进行指定。
(1)角色:除了GAP定义了角色之外,BLE还定义了另外2种角色:GATT服务器和GATT客户端,它们完全独立于GAP的角色。提供数据的设备称为GATT服务器,访问GATT服务器而获得数据的设备称为GATT客户端。
在应用中,外围设备称为服务器,集中器作为客户端。注意:一个设备可以同时作为服务器和客户端。
(2)GATT的规范层次:一个GATT服务器通过一个称为属性表的表格组织数据,这些数据就是真正发送的数据。
- 属性:
一个属性包含句柄、UUID、值,句柄是属性在GATT表中的索引,在一个设备中每一个属性的句柄都是唯一的。UUID包含属性表中数据类型的信息,它是理解属性表中的值的每一个字节的意义的关键信息。在一个GATT表中可能有许多属性,这些属性可能有相同的UUID。 - 特性:
一个特性至少2个属性:一个属性用于声明,一个属性用于存放特性的值。 - 描述符:
任何在特性中的属性不是定义为属性值就是为描述符。客户端特性配置描述符(Client Characteristic Configuration Descriptor,CCCD) - 服务
- Profile(配置数据文件)
2、控制层