1.BLE协议栈架构
从协议栈中,可以看出,BLE HOST主要有 GAP、GATT、ATT、L2CAP、SM。
2.BLE HOST层简介
2.1 GAP通用访问协议
GAP是与app或者profiles的通信接口,处理设备发现和连接的相关服务。
GAP控制Link layer的准备、广播、监听/扫描、初始化、连接五种状态的切换。
另外GAP还定义了两个重要的角色:外围设备和中心设备。
GAP更详细的看这里:
2.2 GATT通用属性协议
详细的可以查看这里
GATT协议的作用 如何使用属性协议来发现、读取、写和获取这些属性的指示,以及配置属性的广播。
特征声明的格式
一个服务可以具有相同特征UUID的多个特征定义。
2.3 ATT属性协议
属性协议允许被称为服务器的设备将一组属性及其关联的值,展示给其他的客户端设备。服务器公开的这些属性可以由客户端发现、读取和写入,并可以由服务器指示和通知。
在LE中,有一个ATT承载使用ACL连接建立后可用的固定通道。可以使用L2CAP建立额外的ATT载体。
2.4 SM协议
安全管理器定义了配对和密钥分发的方法、这些方法的协议、安全工具箱,以及仅LE-only或BR/EDR/LE设备的其他部分都要使用。
在低功耗系统中,安全管理协议被移至主机部分,位于链路控制和适配协议之上,降低控制实现成本的同时提高了主机灵活性。
但是数据加密还是在控制器进行的。
le配对的过程的三个阶段:
第1阶段:配对功能交换
第2阶段(LE传统配对):短期密钥(STK)生成
第2阶段(LE安全连接):长期密钥(LTK)生成
第3阶段:传输特定密钥分配
2.5 L2CAP协议
为上层协议提供面向连接和无连接的数据服务,具有协议复用能力和分割和重组操作。
L2CAP的架构:
更详细的看这里