BLE蓝牙协议栈分析

BLE——协议层次结构

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

一、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数据分组,对高层应用的数据进行分组,并提供协议复用和服务质量交换等功能。通过协议多路复用、分段重组操作和组概念,向高层提供面向连接的和无连接的数据服务。

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

3.2 ATT(Attribute Protocol)

蓝牙属性协议,用于发现、读、写对端设备的协议

3.3 GATT(Generic Attribute Profile)

基于ATT协议,定义了数据交换的框架格式

BLE蓝牙协议栈分析_第3张图片

3.4 GAP(Generic Access Profile)

定义了蓝牙设备的基本要求。

对于LE,定义了一个物理层、链路层、L2CAP、ATT、GATT等

联系了所有的不同层之间的交互

你可能感兴趣的:(网络)