低功耗蓝牙协议栈
低功耗蓝牙(BLE)协议栈的架构如图 1所示。
BLE协议栈由控制器(Controller)、同步适配层(ISOAL)、主机控制接口(HCI)和主机(Host)组成。
控制器(Controller)
- 物理层(Physical Layer,PHY)支持1 Mbps和2 Mbps的自适应跳频GFSK(高斯频移键控)射频(RF)操作。
- 链路层(Link Layer,LL),控制设备的射频状态,设备可以处于如下的五种状态,根据应用需求相互切换:Standby、Advertising、Scanning、Initiating或者Connection。
同步适配层(ISOAL)
- 同步适配层(Isochronous Adaptation Layer, ISOAL)提供同步数据在Host和Controller之间的适配功能。该层将分段的数据帧组装成可供应用层使用的数据流,或是将应用层提供的数据流分段成数据帧通过空口传输。
主机控制接口(HCI)
- 主机控制接口(Host-Controller Interface,HCI)提供Host与Controller之间的通信。该接口层的实现可以是软件接口,也可以是标准硬件接口,比如UART,Secure Digital(SD)或USB。HCI commands和events通过这个接口层在Host与Controller之间传递。
主机(Host)
- 逻辑链路控制和适配协议(Logical Link Control and Adaption Protocol,L2CAP)为上层提供多路复用、数据分段与重组服务,并且支持逻辑端对端的数据通信。
- 安全管理层(Security Manager,SM)定义配对和密钥分发的方法,为上层协议栈和应用程序提供端到端的安全连接和数据交换的功能。
- 通用访问规范层(Generic Access Profile,GAP)为上层应用和Profiles提供和协议栈通信交互的接口,主要包括广播、扫描、连接发起、服务发现、连接参数更新、安全过程发起和响应的相关功能。
- 属性协议层(Attribute Protocol,ATT)定义服务端和客户端之间的服务数据交互协议。
- 通用属性规范层(Generic Attribute Profile,GATT)基于ATT协议之上,定义一系列用于GATT Client和GATT Server之间服务数据交互的通信过程,供上层应用、Profile和Service进行使用。
更多BLE技术及其协议的资料请访问Bluetooth SIG的官方网站www.bluetooth.com获取。
GAP、SM、L2CAP和GATT的规范包含在Bluetooth Core Spec中。其他BLE应用层Profiles/Services规范可以在GATT Specs页面下载。BLE应用可能会用到的Assigned Numbers,IDs和Codes都列在Assigned Numbers页面。