蓝牙BLE协议栈

BLE协议栈实现方式采用分层的思想:

                                          蓝牙BLE协议栈_第1张图片

BLE协议栈组成:

Controller控制器由物理层(PHY),链路层(LL)以及主机控制器接口(HCI)组成。Host主机由逻辑链路控制和自适应协议(L2CAP),安全管理层(SM),属性控制协议(ATT),通用访问配置(GAP),通用属性配置(GATT)组成。

1,物理层

实行GFSK调制,40频道,每个通道2Mhz带宽,3个固定广播通道,37个自适应自动调频数据通道

2,链路层LL

RF控制层,控制BLE工作在stanby,adv,scanning,initiating,conected五种状态。其中initiating响应adv,adv同意连接后变为master,adv变为slave。

3,主机控制器接口HCI

向主机提供标准化API接口,以便实现对BLE的控制。

控制器有两类数据可以通过广播发送:广播数据扫描响应数据

广播的类型分为:

①可连接的非定向广播:最常用的广播类型,包括广播数据和扫描响应数据,表示可以接受任何设备连接请求

②可连接定向广播:只有扫描响应数据,没有广播数据,只能接受特定设备的连接

③可扫描非定向广播:包括广播数据和扫描响应数据,用来激活设备

④不可连接的非定向广播:只有广播数据,没有扫描响应数据。

4,L2CAP

负责数据的打包与分发,实现数据通信

5,SM

实现配对和密钥分发,保证数据安全

6,ATT层

7,GATT

GATT规定了配置文件profile,GATT中的profile描述了该BLE设备提供什么样的“服务”,以及与该服务通信时候所使用的通道,该通道我们称之为特征值“characteristic”,每一个characteristic都有其属性:write,read,notify,indicate,其中read,write多用于主机主动与从机进行通信,而notify的方式则用于从机主动发起的通信,往往notify的方式会比read,write慢一些

8,GAP

GAP定义了:

①设备如何发现,连接以及绑定

FLAGS数据表明了BLE的物理连接性能。可以通过广播AD包FLAGS标签的UUID,携带的一个BYTE数据定义本设备为有限发现设备,一般可发现,或者不可发现设备。FLAGS各个位的定义如下:

             蓝牙BLE协议栈_第2张图片

其中,有限发现设备在广播30S后即停止广播。

② 设备如何成为观察者和广播者,并实现无需连接的数据传输

③定义了如何用不同类型的地址来实现隐私性和可解析性

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(蓝牙音频)