1.蓝牙低功耗 (Bluetooth Low Energy, BLE)
低功耗(BLE)蓝牙是周期性间歇收发的,即仅在广播事件和连接事件中才打开射频硬件部分去收发数据,其他多数时间设备硬件都是空闲的。可通过在空闲时控制芯片进入Sleep状态,必要时通过外部GPIO输入中断或BLE自身的事件来唤醒芯片,继续正常工作。
蓝牙低功耗是从蓝牙 4.0 起支持的协议,与经典蓝牙相比,功耗极低、传输速度更快,但传输数据量较小。常用在对续航要求较高且只需小数据量传输的各种智能电子产品中,比如智能穿戴设备、智能家电、传感器等,应用场景广泛。
2. 通信协议
在两个蓝牙低功耗设备建立连接之后,双方的数据交互是基于 GATT (Generic Attribute Profile) 规范,根据该规范可以定义出一个个配置文件 (Profile),描述该蓝牙设备提供的服务 (Service)。
在整个通信过程中,有几个最主要的概念:
- 配置文件 (Profile): Profile 是被蓝牙标准预先定义的一些 Service 的集合,并不真实存在于蓝牙设备中。如果蓝牙设备之间要相互兼容,它们只要支持相同的 Profile 即可。一个蓝牙设备可以支持多个 Profile。
- 服务 (Service): Service 是蓝牙设备对外提供的服务,一个设备可以提供多个服务,比如电量信息服务、系统信息服务等。每个服务由一个 UUID 唯一标识。
- 特征 (Characteristic): 每个 Service 包含 0 至多个 Characteristic。比如,电量信息服务就会有个 Characteristic 表示电量数据。Characteristic 包含一个值 (value)和 0 至多个描述符 (Descriptor) 组成。在与蓝牙设备通信时,主要就是通过读写 Characteristic 的 value 完成。 每个 Characteristic 由一个 UUID 唯一标识。
- 描述符 (Descriptor): Descriptor 是描述特征值的已定义属性。例如,Descriptor 可指定人类可读的描述、特征值的取值范围或特定于特征值的度量单位。每个 Descriptor 由一个 UUID 唯一标识。
如下图所示,我们可以简单地理解为:每个蓝牙设备可能提供多个 Service,每个 Service 可能有多个 Characteristic,我们根据蓝牙设备的协议对对应 Characteristic 的值进行读写即可达到与其通信的目的。
3.低功耗蓝牙设备类型
低功耗蓝牙设备类型分为两种:单模和双模
- 单模设备:只支持蓝牙低功耗(BLE),如用nRF51822开发的蓝牙设备即为单模设备,单模设备对低功耗的要求很高。主要运行蓝牙协议栈的模块。
- 双模设备:既支持传统蓝牙也支持蓝牙低功耗,这两种技术使用同一个射频前端和天线,双模设备一般都有足够的供电能力,对低功耗的要求不高。
4.Bluetooth LE 和传统蓝牙的区别是什么?
1、低功耗蓝牙的发送和接受任务会以最快的速度完成,完成之后蓝牙Bluetooth LE会暂停发射无线(但是还是会接受),等待下一次连接再激活;传统蓝牙是持续保持连接。
2、低功耗蓝牙的广播信道(为保证网络不互相干扰而划分)仅有3个;传统蓝牙是32个。
3、低功耗蓝牙“完成”一次连接(即扫描其它设备、建立链路、发送数据、认证和适当地结束)只需3ms;传统蓝牙完成相同的连接周期需要数百毫秒。
4、低功耗蓝牙使用非常短的数据包,多应用于实时性要求比较高,但是数据速率比较低的产品,遥控类的如键盘,遥控鼠标,传感设备的数据发送,如心跳带,血压计,温度传感器等;传统蓝牙使用的数据包长度较长,可用于数据量比较大的传输,如语音,音乐,较高数据量传输等。
5、低功耗蓝牙无功率级别,一般发送功率在+4dBm,一般在空旷距离,达到70m的传输距离;传统蓝牙有3个功率级别,Class1,Class2,Class3,分别支持100m,10m,1m的传输距离。