BLE——协议层次结构
一、BLE Controller
Controller实现射频相关的模拟和数字部分,完成最基本的数据发送和接收,Controller对外接口是天线,对内接口是主机控制器接口HCI(Hostcontroller interface);
控制器包含物理层PHY(physicallayer),链路层LL(linker layer),直接测试模式DTM(Direct Test mode)以及主机控制器接口HCI。
1.1 Physical Layer
频率选择(2402-2480MHz) + 信道选择(40) + 信道间隔(2MHz) + 调制方式(GFSK) + 数据传输速率(1Mbps)+ 接收灵敏度 + 发射功率 + 杂散辐射 + 射频容差
1、信道选择
物理信道(Physical Channel)为: F=2402+k*2MHz ,k=0,…,39,共40个信道。
Physical Channel = RF Channel
1.2 Link Layer
信道分类(3+37) + 广播信道定义(37、38、39) + 数据通道分发(跳频) + 状态角色定义和切换 + 数据包校验重传
二、HCI
定义Host和Controller(通常是两颗IC)之间的通信协议,对理解蓝牙协议来说,是无关紧要的。向上为主机提供软件应用程序接口(API)。
HCI逻辑上定义一系列的命令,事件;
物理上有UART,SDIO,USB,SPI接口;
实际可能包含里面的任意1种或几种。常见RF测试时,我们常使用UART发送标准的HCI指令控制Controller。
三、BLE Host
主机host是蓝牙协议栈的核心部分,GAP层负责制定设备工作的角色,SS层负责指定安全连接,Logic Link层功能非常强大,官方作用为协议/通道的多路复用,负责上层应用数据(L2CAP Service Data Units,SDUs)的分割(和重组),生成协议数据单元(L2CAP Packet Data Units,PDUs),以满足用户数据传输对延时的要求,并便于后续的重传、流控等机制的实现。
3.1 L2CAP
逻辑链路控制与适配协议,将ACL数据分组,对高层应用的数据进行分组,并提供协议复用和服务质量交换等功能。通过协议多路复用、分段重组操作和组概念,向高层提供面向连接的和无连接的数据服务。
3.2 ATT(Attribute Protocol)
蓝牙属性协议,用于发现、读、写对端设备的协议
3.3 GATT(Generic Attribute Profile)
基于ATT协议,定义了数据交换的框架格式
3.4 GAP(Generic Access Profile)
定义了蓝牙设备的基本要求。
对于LE,定义了一个物理层、链路层、L2CAP、ATT、GATT等
联系了所有的不同层之间的交互