低功耗蓝牙协议栈基础知识

低功耗蓝牙协议栈包含两部分共8层:主机(Host)和控制器(Controller)。 

控制器部分包括:

  • 物理层(Physical Layer)
  • 链路层(Link Layer)
  • 主机控制接口层(Host Controller Interface)

主机部分包括:

  • L2CAP 逻辑链路控制及自适应协议层(Logical Link Control and Adaptation Protocol)
  • 安全管理层(Security Manager)
  • ATT 属性协议层(Attribute Protocol)
  • GAP 通用访问配置文件层(Generic Access Profile)
  • GATT 通用属性配置文件层(Generic Attribute Profile)

从应用层到物理层一共包含8层,如下图所示。对于开发者而言,不需要对每一层的具体实现都有深入的了解。只需要掌握与应用紧密相关的 GAP/GATT 层即可满足大部分开发的需求,通过 SoftDevice(即协议栈,这种方式使得协议栈和用户应用可以单独编译和链接)的 API 软件接口(以 sd_ 开头)调用来实现。

从应用层到物理层一共包含8层

1、物理层(Physical Layer)

  对于低功耗蓝牙,其物理层工作于 2.4GHz 全球通用的免许可证频段(2400MHz~2483.5MHz),共使用 40 个频道,频道间隔为 2MHz,而经典蓝牙使用 79 个频道,1MHz 间隔。低功耗蓝牙有两种频道类型:广播频道 3 个,数据频道 37 个,共 40 个频道。

  低功耗蓝牙广播频道为 2402 MHz(37),2426 MHz(38),2480 MHz(39),你没看错!就是2402 MHz(37),2426 MHz(38),2480 MHz(39)。3 个广播频道刚好与 WiFi 无线局域网的信道错开,用于设备发现和建立连接。相比之下,经典蓝牙技术需要使用 32 个广播频道来完成相同的任务。正因如此,低功耗蓝牙可以大幅减少在空中的使用时间,从而降低功耗。
  

        由于使用 3 个广播频道,低功耗蓝牙只需 0.6 到 1.2ms 的“开启”时间来扫描其他设备。而经典蓝牙需要 22.5ms 扫描其 32 个频道。低功耗蓝牙的这个机制对降低功耗有显著效果(比经典蓝牙减少 10 到 20 倍的功耗)。
  
  由于蓝牙和 WiFi 都工作在 2.4GHz 频段,在同一使用环境下可能产生相互的影响,为此低功耗蓝牙做了系统共容性的考虑。低功耗蓝牙频道表设计时尽量避开 WiFi 的工作频道,低功耗蓝牙的所有 3 个广播频道均在 WiFi 频道表之外,除了重叠的数据频道部分,仍有 9 个数据频道在 WiFi 频道之外,确保了低功耗蓝牙系统的可靠性及与 WiFi 系统的共容性,增强了应用时的抗干扰能力。
  
  低功耗蓝牙规范中所定义的最大发射功率为 +10 dBm(10mW),最小发射功率为 -20 dBm(0.01mW)。接收机灵敏度要求优于 -70 dBm(当误码率 BER 为 0.1% 时)。

 显而易见,蓝牙的通信距离与发射功率和接收灵敏度有关。

  • 当发射功率为 0 dBm,接收机灵敏度为 -70 dBm,通信距离约为 30米。
  • 当发射功率为 +10 dBm,接收机灵敏度为 -90 dBm,通信距离约为 100米。

此外,通信距离往往还与天线、方向以及周围环境等诸多因素有关。

2、链路层(Link Layer)

链路层用于控制射频设备的工作状态,包括 5 种可能的工作状态:待机、广播、扫描、启动和连接。 
当扫描者监听广播者时,广播者发送数据而不需要建立连接。 
如果一个设备以一个连接请求来响应一个广播者,该设备称为发起者。 
如果广播者接受该请求,则广播者和发起者将进入连接状态。 
当一个设备位于连接状态时,它将连接到两个角色之一(主机或者从机)。发起连接的设备成为主机,接受连接请求的设备成为从机。

3、主机控制接口(Host Controller Interface)

HCI 层为主机和控制器之间的通信提供了一种标准化的接口,其主要完成两个任务:① 发送命令给控制器和接收来自控制器的事件;② 发送和接收来自对端设备的数据。

4、L2CAP 逻辑链路控制及自适应协议层

L2CAP 逻辑链路控制及自适应协议层(Logical Link Control and Adaptation Protocol)为更高层提供数据封装服务,允许逻辑的端到端数据通信。

5、安全管理层(Security Manager)

SM 层定义了配对和密钥分发的方法,并为其他堆栈层的安全连接以及与另一个设备交换数据提供功能。

6、ATT 属性协议层(Attribute Protocol)

ATT 属性协议用于所有低功耗蓝牙的数据传输,具有快速、简单的特点,其采用了客户端(Client)/ 服务器(Server)架构。

7、GAP 通用访问配置文件层(Generic Access Profile)

低功耗蓝牙协议栈的 GAP 层与应用 / Profile 直接连接,负责处理设备的接入方式和过程,包括设备发现、链路建立、链路终止、启动安全功能以及设备配置。

8、GATT 通用属性配置文件层(Generic Attribute Profile)

GATT 层是一个服务框架,定义使用 ATT 的子过程。GATT 规定了配置文件 Profile 的结构。在低功耗蓝牙中,所有的数据块由一个 Profile 或服务所使用的数据库称为特性(characteristic)。 

文章转载自:http://blog.csdn.net/lu_embedded/article/details/56494684