目录
一、低功耗蓝牙的体系结构
如图1-1所示,低功耗蓝牙分成三个基本部分:控制器、主机和应用程序。
在控制器内包含有:物理层、链路层、直接测试模式、主机控制器接口(HCI)层的下半部分。
在主机内包含:逻辑链路控制和适配协议(L2CAP)、属性协议(Attribute Protocol)、安全管理器协议(Security Manager Protocol)、通用属性规范(GATT)、通用访问规范(GAP)、模式(mode)
![蓝牙体系结构](https://img-blog.csdnimg.cn/982f2656c54e4c0e9e251c1d1c6ed552.png)
1.1控制器
蓝牙控制器由同时包含了数字和模拟部分射频器件和负责收发数据包的硬件组成。控制器与外界通过天线连接,与主机通过主机控制接口(HCI)相连。
1.1.1物理层
物理层是采用2.4GHz无线电、完成传输和接收电磁辐射工作。
无线电波通常可以在给定的某个频段内通过改变幅度、频率或相位携带信息。在低功耗蓝牙中,采用一种高斯频移键控(GFSK)的调制方式改变无线电波的频率,传输0或1的信息。
频移键控部分是指把1和0通过轻微升高或降低信号频率来进行编码。
1.1.2直接测试模式
直接测试模式是一种测试物理层的新方法。
直接测试模式允许测试者让控制器的物理层发送一系列测试数据包或接收一系列数据包。
1.1.3链路层
链路层负责广播、扫描、建立和维护连接,以及确保数据包按照正确的方式组织、正确地计算校验值以及加密序列等。
图1-2显示了链路层数据包的大致结构。
可以发送最短报文是空报文,时长为80微秒;满载时的最长报文时长为376微秒,大部分广播报文只有128微秒,大部分数据报文时长为144微秒。
![](https://img-blog.csdnimg.cn/86344cd06095418aa27ad7d194db9428.png)
1.1.4主机/控制器接口
HCI为主机提供了一个与控制器通信的标准接口。允许主机将命令和数据发送到控制器,并且允许控制器将事件和数据发送到主机。HCI实际上由逻辑接口和物理接口两个独立的部分组成。
逻辑接口定义了命令和事件及其相关的行为。逻辑接口可以交付给任何物理传输或通过位于控制器上的API交付给控制器。物理接口定义了命令、事件和数据如何通过不同的连接技术来传输。
1.2主机
1.2.1逻辑链路控制和适配协议(L2CAP)
L2CAP是低功耗蓝牙的复用层。该层定义了两个基本概念:L2CAP信道和L2CAP信令。
L2CAP信道是一个双向数据通道,通向对端设备上的某个特定的协议或规范。
低功耗蓝牙中只使用固定信道:一个用于信令信道、一个用于安全管理器、还有一个用于属性协议。
低功耗蓝牙只有一种帧格式,即B帧,包含两个字节的长度字段和两个字节的信道识别符字段
![](https://img-blog.csdnimg.cn/458778d9207c419da576bbb4d69246b6.png)
1.2.2安全管理器协议
安全管理器定义了一个简单的配对和密钥分发协议。
配对是一个获取对方设备信任的过程,通常采取认证的方式实现。
安全管理器提供了一个安全工具箱,负责生成数据的哈希值、确认值以及配对过程中使用的短期密钥。
1.2.3属性协议
属性协议定义了访问对端设备上的数据的一组规则。数据存储在属性服务器的“属性”里,供属性客户端执行读写操作。
属性是被编址并打上标签的一小块数据。每个属性均包含一个用来标识该属性的唯一句柄、一个用于标识存储数据的类型以及一个值。
1.2.4通用属性规范
通用属性协议定义了属性的类型及其使用方法。引入了一些概念,包括“特性”、“服务”、服务之间的“包含”关系、特性“描述符”等。还定义了一些规程,用来发现服务、特性、服务之间的关系,以及用来读取和写入特性值。
服务项的集合
1.2.5通用访问规范
通用访问规范定义了设备如何发现、连接,以及为用户提供有用的信息。还定义了设备之间如何建立长久的关系,称为绑定。
1.3应用层
应用层规约定义了三种类型:特性、服务、规范。在这些规约均构建在通用属性规范上。通用属性规范为特性和服务定义了属性分组,应用程序为使用这些属性组定义了规约。
1.3.1特性(characteristic)
特性是采用已知格式、以通用唯一识别码(UUID)作为标记的一小块数据。
1.3.2服务(service)
服务是人类可读的一组特征及其相关的行为规范。服务只定义了位于服务器上的相关特性的行为,而不定义客户端的行为。服务本身并未规定设备之间如何连接,以及如何发现和使用服务。服务只描述在读写特性或通知和指示特性时究竟做了些什么。服务没有描述通用属性规范采用什么规程来寻找服务和服务的特性,也没有描述客户端如何使用特性。
类似是一个特性的集合
1.3.3规范(profile)
规范是用例或应用的最终体现。规范是描述两个或多个设备的说明,每个设备提供一个或多个服务。规范描述了如何发现并连接设备,从而为每台设备确定所需的拓扑结构。
规范还描述了客户端行为,用于发现服务和服务特性,以及使用该服务实现用例或应用所要求的功能。
一个Profile中可包含一个或者多个服务;一个服务可包含一个或者多个特性(逻辑上的集合);一个特性至少包含两个属性:一个用于声明,其他用于存储属性值。