学物联网,来万物简单IoT物联网!!
1 蓝牙协议总体架构
1.1 Application层
应用属性层,通过API函数与协议栈交互;
1.2 Host层
Host层,逻辑链路控制及自适应协议层、安全管理层、属性协议层、通用访问配置文件层、通用属性配置文件层
1.3 Controller层
Controller层,负责与硬件层交互,包括物理层、链路层、主机控制接口层。
2 分层介绍
2.1 GATT
定义如何使用ATT的服务框架,Generic Attribute 通用属性。
BLE 连接都是建立在GATT协议之上,GATT 的全名是Generic Attribute Profile,它定义两个 BLE 设备通过Service 和 Characteristic 进行通信。GATT 基于 ATT(Attribute Protocol)协议,把 Service, Characteristic 对应的数据保存在一个查找表中,次查找表使用 16 bit ID 作为每一项的索引。这里需要说明的是,GATT 连接,必需先经过 GAP 协议。
2.2 ATT
允许设备向其他设备公开某些数据或属性。
Client 和 Server 之间是通过 ATT PDU来通信的,ATT PDU主要包括4类:读,写,notify 和 indicate。
2.3 GAP
与应用程序或Profile直接交互,Generic Access Profile 通用访问配置文件。
负责访问模式和进程,包括设备发现、建立连接、终止连接、初始化安全特征和设备配置
2.3 SM
定义了配对和密匙分发的方法
2.4 L2CAP
向上层提供数据封装服务,允许端到端的数据通信。
只支持 ACL 数据传输,不支持 SCO 数据。 SCO 数据直接与 HCI 层进行数据交互。
2.5 HCI
负责主机和控制器之间的通信
2.6 LL
控制设备的RF状态:Standby、Advertising、Scanning、Initiating、Connected(五种状态之一)
2.7 PHY
在免费的2.4GHz ISM频段中运行,具有1Mbps自适应跳频GFSK的无线电系统