蓝牙协议栈分层

蓝牙协议栈的分层, 所有 Profile (配置文件层)和应用都建构在GAP或GATT之上。

  • PHY——物理层(Physical Layer):1Mbps自适应跳频GFSK(高斯频移键控调制),运行在免征的2.4GHz 频段。
  • LL——链路层(Link Layer):此层为RF控制器,用于控制设备的射频状态,控制设备会处于5种状态之一:待机(Standby)、广播、监听/扫描(Scan)、初始化、连接。广播设备不需要建立连接就可以发送数据;而扫描设备监听广播数据。发起设备响应一个连接请求给广播设备。如果广播设备接受连接请求,发起者设备和广播设备将会进入连接状态。此时两个设备的角色变了:主机和从机。发起连接的设备叫做主机,接受连接请求的设备称为从机。
  • HCI——主机控制接口层(Host Controller Interface):为主机和控制器之间提供一个标准通信接口。这一层可以通过软件API或硬件接口实现,例如 UART、SPI、USB。
  • L2CAP——逻辑链路控制及自适应协议层(Logical link Control and Adaptation Protocol):为上层提供数据封装服务,允许逻辑上的点对多点数据通信。
  • SM——安全管理层(Security Manager):定义了配对和**分配方式。并为协议栈的其它层和其它设备之间的安全连接和交换数据提供服务。
  • GAP——通用访问配置文件层(Generic Access Profile):是直接与应用程序或配置文件 (profiles)通信的接口,处理设备发现和连接相关服务,另外还处理安全特性的初始化。对上级提供应用程序接口,对下级管理各级智能部门,尤其是指示LL层控制器5种状态切换。
  • ATT——属性协议层(Attribute Protocol):允许设备向其它设备展示一块特定的数据,称之为“属性”。在ATT环境中,展示“属性”的设备称之为服务器,与之配对的设备称之为客户端。链路层状态(主机和从机)与设备的ATT角色是相互独立的。例如,主机设备既可以是ATT服务器,也可以是ATT客户端。从机设备可以是ATT客户端,也可以是ATT服务端。
  • GATT——通用属性配置文件层(Generic Attribute Profile):定义了使用ATT的服务框架。GATT规定了配置文件(profiles)的结构。在BLE中,所有被profile或服务器用到的数据块都称之为“特征”。两个建立连接的设备之间的所有数据通信都是通过GATT子程序处理。应用程序和profiles直接使用GATT层。GATT负责处理向上与应用打交道,其关键工作是为检索工作提供合适的profile结构,而profile由检索关键词(characteristics)组成。
    蓝牙协议栈分层

相关文章: