Bluetooth LE相关学习笔记

The Bluetooth LE Specifications

Bluetooth LE相关学习笔记_第1张图片

The Bluetooth Core Specification

核心规范适用于 Bluetooth LE和Bluetooth Classic,它定义了蓝牙的体系结构及其层次,描述和定义了蓝牙的关键特性,定义了设备在协议栈的特定层上进行重要操作的方法和通信的协议。

Profile Specifications

当两个BLE设备通过一个连接进行通信时,通常情况下客户端/服务器关系已经形成。服务器包含状态数据,客户端以某种方式使用这些数据。配置文件规范定义了相关设备(如智能手表,耳机)所承担的角色,特别是定义了客户端设备的行为以及和它连接的服务器设备如何工作。

Service Specifications

服务规范定义了单个服务及其包含的特征值和描述符。服务规范中定义了承载服务的设备响应各种条件和状态数据值后所要表现的行为。

The Bluetooth LE Stack

BLE协议栈是上面提到的核心规范中具体内容,主要包括两大块,分别是控制层(Controller),主协议层(Host)。BLE协议栈包含OSI七层模型中的所有层。
Bluetooth LE相关学习笔记_第2张图片

Physical Layer

PHY层定义了BLE射频技术的各个方面,包括调制方案、频段、信道使用、发射机和接收机特性;同时定义了几种不同的、支持的物理层参数组合,并将其称为PHYs。物理层定义了如何使用发射或接收装置对数据进行编码和解码,以便传输和接收,以及适用的其他无线电相关参数和属性。BLE工作在2.4GHz未授权频段,范围是2400MHz到2483.5MHz,共40个通道,通道间隔2MHz。
Bluetooth LE相关学习笔记_第3张图片
BLE采用了一种称为高斯频移键控( Gaussian Frequency Shift Keying,GFSK )的调制方案。GFSK的工作原理是取一个具有所选信道(载波)中心频率的信号,并将其向上平移指定的量表示数字值为1或向下平移相同的量表示二进制值为0来对信号进行高斯滤波,以降低频率突变时的噪声。
Bluetooth LE相关学习笔记_第4张图片
物理层速率分为三种:
LE 1M:使用1 Msym / s的符号速率,要求频率偏差至少为185 kHz,且不使用特殊编码。所有设备必须支持LE 1M PHY。ࣹ
LE 2M:采用2 Msym / s的符号速率,要求频率偏差至少为370 kHz。设备对LE 2M PHY的支持是可选的。
LE Coded:使用1 Msym / s的符号速率,但数据包在LL层要经过一个名为前向纠错(Forward Error Correction FEC )的编码,增大了传输的有效范围,但降低了应用的数据速率。设备对LE Coded PHY的支持是可选的。
Bluetooth LE相关学习笔记_第5张图片
BLE的射频部分是半双工工作,发射和接收分时复用。

Link Layer

LL层定义了空中接口数据包格式、比特流处理程序如错误检查、空中通信和链路控制的状态机和协议。LL层的有两种数据包类型,不经过FEC编码的数据包:
Bluetooth LE相关学习笔记_第6张图片
经过FEC编码的数据包:
Bluetooth LE相关学习笔记_第7张图片
Access Address接入地址:接收者使用接入地址来区分信号和背景噪声,并确定数据包与接收设备的相关性。例如,一对连接的设备交换具有相同随机分配的访问地址的数据包,不参与连接的设备将忽略这些数据包,因为访问地址与它们无关。广播包使用相同的访问地址,其值为0x8E89BED6,这表明这些数据包可能被所有设备接收。

LL层状态:
Bluetooth LE相关学习笔记_第8张图片
Bluetooth LE相关学习笔记_第9张图片

Isochronous Adaptation Layer

ISOAL层允许等时通信的设备使用不同的帧持续时间。对整帧的PDU进行分割和重组或者对非整帧的PDU进行分片和重组。
数据处理过程:
Bluetooth LE相关学习笔记_第10张图片
非整帧PDU的分片和重组:
Bluetooth LE相关学习笔记_第11张图片
Bluetooth LE相关学习笔记_第12张图片
整帧PDU的分割和重组:
Bluetooth LE相关学习笔记_第13张图片
Bluetooth LE相关学习笔记_第14张图片

Host Controller Interface

主机控制器接口( Host Controller Interface,HCI )定义了一个标准化的接口,为主机组件和控制器之间的命令和数据双向通信提供了一个良好的功能接口,通过该接口,主机可以向控制器发出命令,控制器可以与主机通信。蓝牙LE和蓝牙BR / EDR均使用HCI。仅从功能方面定义接口,不考虑具体的实现机制时HCI如下:
Bluetooth LE相关学习笔记_第15张图片
HCI是可选的,如果在一颗芯片上实现BLE协议栈就不需要HCI。4种HCI传输接口类型:

  1. UART
  2. USB
  3. Secure Digital (SD)
  4. Three-wire UART

Logical Link Control and Adaptation Protocol

逻辑链路控制与适配协议( L2CAP )层负责协议封装、重传及流量控制以及对服务数据单元( SDU )的分割与重组。L2CAP层对LL层进行了封装,LL层只关心传输的数据本身,L2CAP需要区分是普通通道还是加密通道(例如属性协议ATT或者安全管理协议SMP),同时把封装后的数据单元送至合适的层进行处理。L2CAP还要负责连接间隔的管理。
Bluetooth LE相关学习笔记_第16张图片

Attribute Protocol

属性协议( ATT )由两个设备使用,一个充当客户端角色,另一个充当服务器角色,用于允许发现和使用服务器的属性表中的数据。服务器公开一系列称为属性的复合数据项,属性由服务器组织在一个称为属性表的索引列表中。

每个属性包含一个句柄、一个通用唯一标识符( Universally Unique Identifier,UUID )、一个值和一组权限。句柄是一个唯一的索引值,ATT客户端可以用它引用属性表中的特定条目;UUID标识属性的类型;值字段是包含属性值的字节数组;权限字段是一组标志,表示是否允许读、写或两种访问形式,以及允许访问必须满足的任何其他安全条件。

请求和响应PDU格式:
Bluetooth LE相关学习笔记_第17张图片
通知PDU格式:
Bluetooth LE相关学习笔记_第18张图片
指示和确认PDU格式:
Bluetooth LE相关学习笔记_第19张图片
ATT PDU的最大长度取决于已建立的最大传输单元( Maximum Transmission Unit,MTU )值。

ATT定义了交易的概念。比如:来自客户端的请求PDU期望服务器在30秒内返回一个响应PDU或者服务器发送的指示信息预计在30秒内由客户端以确认PDU进行回复,那么每个请求/响应或指示/确认形成一个事务。如果事务超时,则将其视为已失败,并且不能使用当前承载实例发送任何类型的PDU。
ATT采用顺序交易模式。这意味着,如果一个ATT交易已经开始,那么在当前交易完成之前,不再有其他ATT PDU被同一个承载实例处理。当从远程设备收到预期的响应或确认PDU或等待30秒后交易超时时,则认为交易已经完成。

Security Manager Protocol

安全管理器协议( SMP )是协议栈安全管理器组件的一部分。它支持配对、绑定和密钥分发等安全相关过程的执行。

Generic Attribute Profile

GATT是对ATT的进一步封装,主要用来规范Attribute中的数据内容,并用分组的概念对Attribute进行管理,引入新的类型被称为服务、特征值和描述符。一个BLE设备可以有多个服务,一个服务可以有多个特征值,一个特征值可以有多个描述符。
Bluetooth LE相关学习笔记_第20张图片

Generic Access Profile

GAP定义了在BLE通信过程中的角色、安全等级和模式,以及主要用来广播,扫描和发起连接。4种角色分别为Broadcaster、Observer、Peripheral和Central。
Bluetooth LE相关学习笔记_第21张图片

你可能感兴趣的:(蓝牙,学习,蓝牙)