随着物联网的发展,业界对简单的、不需要连接的多播或广播通信的需求越来越迫切,蓝牙协议是通信协议的一种,而低功耗蓝牙凭借其低功耗、短距离、可互操作,工作在免许可的2.4GHz ISM射频频段的特性,使得BLE蓝牙模块在IOT领域取得广泛应用。为加深对低功耗蓝牙的认识,快来一起了解低功耗蓝牙协议栈由哪几部分组成的吧!
在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构。
低功耗蓝牙协议栈包含两部分共8层:主机(Host)和控制器(Controller)。要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协议栈上开发自己的应用。可以看出BLE协议栈是连接芯片和应用的桥梁,是实现整个BLE应用的关键。那BLE协议栈具体包含哪些功能呢?简单来说,BLE协议栈主要用来对你的应用数据进行层层封包,以生成一个满足BLE协议的空中数据包,也就是说,把应用数据包裹在一系列的帧头(header)和帧尾(tail)中。具体来说,BLE协议栈主要由如下几部分组成:
PHY层(Physical layer物理层)。PHY层用来指定BLE所用的无线频段,调制解调方式和方法等。PHY层做得好不好,直接决定整个BLE芯片的功耗,灵敏度以及selectivity等射频指标。
LL层(Link Layer链路层)。LL层是整个BLE协议栈的核心,也是BLE协议栈的难点和重点。链路层用于控制射频设备的工作状态,包括 5 种可能的工作状态:待机、广播、扫描、启动和连接。
HCI(Host controller interface)。HCI 层为主机和控制器之间的通信提供了一种标准化的接口,其主要完成两个任务:① 发送命令给控制器和接收来自控制器的事件;② 发送和接收来自对端设备的数据。
L2CAP层(Logic link control and adaptation protocol)。L2CAP 逻辑链路控制及自适应协议层(Logical Link Control and Adaptation Protocol)为更高层提供数据封装服务,允许逻辑的端到端数据通信。
SM(Secure manager)。SM 层定义了配对和密钥分发的方法,并为其他堆栈层的安全连接以及与另一个设备交换数据提供功能。
ATT(Attribute protocol)。ATT 属性协议用于所有低功耗蓝牙的数据传输,具有快速、简单的特点,其采用了客户端(Client)/ 服务器(Server)架构。
GAP层(Generic access profile)。低功耗蓝牙协议栈的 GAP 层与应用 / Profile 直接连接,负责处理设备的接入方式和过程,包括设备发现、链路建立、链路终止、启动安全功能以及设备配置。
GATT(Generic attribute profile )。GATT 层是一个服务框架,定义使用 ATT 的子过程。GATT 规定了配置文件 Profile 的结构。在低功耗蓝牙中,所有的数据块由一个 Profile 或服务所使用的数据库称为特性(characteristic)。
对于开发者而言,不需要对每一层的具体实现都有深入的了解。只需要掌握与应用紧密相关的 GAP/GATT 层即可满足大部分开发的需求,通过 SoftDevice(即协议栈,这种方式使得协议栈和用户应用可以单独编译和链接)的 API 软件接口(以 sd_ 开头)调用来实现。
SKYLAB的低功耗蓝牙模块,基于Nordic芯片,支持主从一体,一主多从,更多关于低功耗蓝牙模块,请到“蓝牙模块”页面!
上一条新闻:WiFi、蓝牙无线透传方案比较
下一条新闻:如何使用北斗短报文通信服务,需要注意哪些事项