一、BLE是什么?
BLE,即Bluetooth Low Energy(蓝牙低能耗),是一种无线通信技术规范;旨在提供在短距离内进行数据传输的功能,同时保持非常低的功耗。
它最初由Nordic Semiconductor提出,并在2010年被纳入蓝牙4.0标准中。
二、为什么会有BLE协议的出现?
主要原因是为了满足对于低功耗、低成本和简化连接的需求。与传统蓝牙技术相比,BLE具有以下特点:
1. 低功耗:BLE设计用于间歇性地发送少量的数据
2. 快速连接:BLE可以迅速建立连接并开始数据传输,减少设备之间的连接时间,从而节省能量。
3. 成本效益:由于BLE芯片通常比传统蓝牙芯片更简单且便宜,所以它降低了产品制造的成本
4. 广播模式:除了传统的点对点连接外,BLE还支持广播模式,允许设备向任何在范围内的其他设备发送信息,而无需建立直接连接
可以重点看下低功耗具体表现
①BLE只有1M的数据带宽(BLE5.0之后引入了2M PHY);而经典蓝牙的EDR需要2/3M的带宽。也就意味着在硬件射频电路上更复杂,会有更大的功率输出
②BLE具有快速连接的能力,在需要传输数据的时候启动射频模块;不需要的时候可以直接关掉,这样大大减少了功耗
③特别注重电源管理,具备深度睡眠模式,在非活动期间几乎不消耗电能;当需要通信时可以快速唤醒并完成任务后立即返回到低功耗状态
④经典蓝牙更多的还是用于持续连接(BLE可以随时用随时连)和高数据率传输的应用(比如听歌)
三、BLE协议的整体认识
-
物理层 (Physical Layer, PHY):
- 负责射频信号的传输与接收。
- 支持多种PHY选项,如1M PHY、2M PHY、Coded PHY等,以适应不同的数据速率和通信距离需求。
-
链路层 (Link Layer, LL):
- 管理设备间的无线连接,包括广播、扫描、初始化以及连接维护等功能。
- 实现了BLE的低功耗特性,例如通过管理休眠周期来节省能量。
- 提供安全功能,如加密和认证。
-
主机控制接口 (Host Controller Interface, HCI):
- 作为底层硬件(controller)和上层软件(host)之间的桥梁,允许 host发送命令给controller & 接收controller上报给host的事件通知。
-
逻辑链路控制与适配协议 (Logical Link Control and Adaptation Protocol, L2CAP):
- 处理分组数据的分割与重组,确保数据能够正确地在不同通道间传递。
- 支持多路复用,使得多个高层协议可以在同一物理连接上传输数据。
-
属性协议 (Attribute Protocol, ATT):
- 定义了如何访问存储在GATT服务器上的属性值。
- 是GATT的基础,提供了读取、写入和服务发现等操作。
-
通用属性配置文件 (Generic Attribute Profile, GATT):
- 建立在ATT之上,定义了服务、特征及其描述符的标准格式。
- 提供了一种组织和交换数据的方式,是大多数BLE应用的核心部分。
-
安全管理层 (Security Manager Protocol, SMP):
- 负责身份验证、密钥分配及加密过程,确保数据的安全性和隐私保护。
-
配置文件 (Profiles):
- 配置文件是针对特定用途的一组规则和服务集合,它们定义了BLE设备应如何交互以完成某些任务。
- 每个配置文件可能包含一个或多个服务,这些服务又由特征组成。
-
应用程序 (Application):
- 这是最顶层的部分,包含了用户界面和其他特定于应用的功能。
- 应用程序利用下层提供的API与远程BLE设备进行交互。