首页 > 代码库 > Bluetooth Low Energy 介绍
Bluetooth Low Energy 介绍
1.简介
BLE(Bluetooth Low Energy,低功耗蓝牙)是对传统蓝牙BR/EDR技术的补充。尽管BLE和传统蓝牙都称之为蓝牙标准,且共享射频,但是,BLE是一个完全不一样的技术。BLE不具备和传统蓝牙BR/EDR的兼容性。它是专为小数据率、离散传输的应用而设计的。通信距离上也有改变,传统蓝牙的传输距离几十米到几百米不等,BLE则规定为100米。
2.低功耗蓝牙(BLE)
低功耗蓝牙分为单模(Bluetooth Smart)和双模(Bluetooth Smart Ready)两种设备。BLE和蓝牙BR/EDR的区分,让我们有三种方式将蓝牙技术集成到具体设备中。下表中示意了两个蓝牙设备之间的通信方式。因为不再是所有现有的蓝牙设备可以和另一个蓝牙设备进行互联,所以,准确描述产品中蓝牙的版本非常地重要。
2.1 单模蓝牙
单模蓝牙设备被称为Bluetooth Smart设备,并且有专用的logo:
诸如手表、运动传感器等这样小型的设备会基于单模蓝牙低功耗。为了实现极低的功耗,硬件和软件上都做了优化。这样的设备只能支持BLE。单模蓝牙芯片往往是一个带有单模蓝牙协议栈的产品,这个协议栈是芯片商免费提供的。
2.2 双模蓝牙
双模蓝牙设备被称为Bluetooth Smart Ready设备,并且有专用的logo:
双模设备支持蓝牙BR/EDR和BLE。在双模设备中,这两个技术使用同一个射频前端和天线。典型的双模设备有智能手机、平板电脑、PC和Gateway。这些设备可以收到通过BLE或者蓝牙BR/EDR设备发送过来的数据,这些设备往往都有足够的供电能力。双模设备和BLE设备通信的功耗低于双模设备和蓝牙BR/EDR设备通信的功耗。双模解决方案需要一个外部处理器才足以实现蓝牙协议栈。
3.应用
BLE适合用于电池驱动的小型设备,有以下五个主要的市场。
3.1医疗和健康
那些用于监测重要的生理数据的医疗设备是BLE在医疗健康市场中应用的对象。典型的设备有血糖仪、血压计和血氧计。BLE被康体佳健康联盟(Continua Health Alliance)选定为终端产品通信的兼容传输技术。
3.2运动和健身
在运动和健身领域,BLE适合用于定位,同时也上传一些重要的监测数据。典型的设备有心率监测仪、体温计、计步器、节拍器、测高仪、定位器和通过手表显示来自传感器的信息。
3.3工业
在自动化应用领域中,BLE主要用于传输I/O信号。BLE可以用于监测和控制马达、制动器、参数和整个过程。
3.4娱乐
在娱乐领域,BLE已经被众多的设备采用,比如机顶盒、游戏机等。预计BLE会是的在TV / DVD / STB / Media播放器、遥控、游戏控制手柄及无线键鼠等设备中的蓝牙应用不断扩大。
3.5智能家居
BLE可以提供灯光控制、温度控制、湿度控制、安全锁控制、门窗控制的低功耗、高安全性解决方案。在智能仪表中的应用也是一个方向。
4.协议
BLE不在支持传统蓝牙BR/EDR的协议,如传统蓝牙中的SPP协议在BLE中就不复存在。作为替代,在BLE中所有的协议或者服务都是基于GATT(Generic Attribute Profile)的。尽管有些传统蓝牙中的协议,如HID被移植到了BLE中,但是在BLE的应用中,你必须区分清楚协议和服务。
服务描述了特点(及他们的UUID)。服务描述自身有什么特点和形式,并且描述清楚如何应用这些特点以及需要什么安全机制。
应用协议定义其使用的服务,说明是传感器端还是接收端,定义GATT的角色(Server/Client)和GAP的角色(Peripheral/Central)。
相较于蓝牙BR/EDR的协议,基于GATT的应用协议非常简单,因为所有的功能都是集成在GATT终端,这些基于其上的应用协议只是对GATT提供的功能的使用。
下表列出了现有的基于GATT的协议/服务(07/2013):
GATT-Based Specifications (Qualifiable) | Adopted Version | |
ANP | Alert Notification Profile | 1.0 |
ANS | Alert Notification Service | 1.0 |
BAS | Battery Service | 1.0 |
BLP | Blood Pressure Profile | 1.0 |
BLS | Blood Pressure Service | 1.0 |
CPP | Cycling Power Profile | 1.0 |
CPS | Cycling Power Service | 1.0 |
CSCP | Cycling Speed and Cadence Profile | 1.0 |
CSCS | Cycling Speed and Cadence Service | 1.0 |
CTS | Current Time Service | 1.0 |
DIS | Device Information Service | 1.1 |
FMP | Find Me Profile | 1.0 |
GLP | Glucose Profile | 1.0 |
HIDS | HID Service | 1.0 |
HOGP | HID over GATT Profile | 1.0 |
HTP | Health Thermometer Profile | 1.0 |
HTS | Health Thermometer Service | 1.0 |
HRP | Heart Rate Profile | 1.0 |
HRS | Heart Rate Service | 1.0 |
IAS | Immediate Alert Service | 1.0 |
LLS | Link Loss Service | 1.0 |
LNP | Location and Navigation Profile | 1.0 |
LNS | Location and Navigation Service | 1.0 |
NDCS | Next DST Change Service | 1.0 |
PASP | Phone Alert Status Profile | 1.0 |
PASS | Phone Alert Status Service | 1.0 |
PXP | Proximity Profile | 1.0 |
RSCP | Running Speed and Cadence Profile | 1.0 |
RSCS | Running Speed and Cadence Service | 1.0 |
RTUS | Reference Time Update Service | 1.0 |
ScPP | Scan Parameters Profile | 1.0 |
ScPS | Scan Parameters Service | 1.0 |
TIP | Time Profile | 1.0 |
TPS | Tx Power Service | 1.0 |
5.技术特点
BLE的低功耗并非通过优化空中的无线射频传输实现,而是通过改变协议的设计来实现。一般来说,为了实现极低的功耗,BLE协议设计为:在不必要射频的时候,彻底将空中射频关断。与传统蓝牙BR\EDR相比,BLE有这三大特性,从而实现低功耗:缩短无线开启时间、快速建立连接、降低收发峰值功耗(具体由芯片决定)。
缩短无线开启时间的第一个技巧是只用3个“广告”信道,第二个技巧是通过优化协议栈来降低工作周期。一个在广告的设备可以自动和一个在搜索的设备快速建立连接,所以可以在3ms内完成连接的建立和数据的传输。
低功耗的设计会带来一些牺牲,例如:音频数据就无法通过BLE来进行传输。
BLE仍然是一种非常鲁棒的技术。它依然支持跳频(37个数据信道),并且采用了一种改进的GFSK调制方法来提高链路的稳定性。BLE也仍是非常安全的技术,因为在芯片级提供了128 bit AES加密。
单模设备可以作为Master或者Slave,但是不能同时充当两种角色。这意味着BLE只能建立简单的星状拓扑,不能实现散射网。
BLE的无线电规范中定义了低功耗蓝牙的最高数据率为305kbps,但是,这只是理论数据。在实际应用中,数据的吞吐量取决于上层协议栈。而UART的速度、处理器的能力和主设备都会影响数据吞吐能力。
高的数据吞吐能力的BLE只有通过私有方案或者基于ATT notification才能实现。事实上,如果是高数据率或高数据量的应用,蓝牙BR/EDR通常显得更加省电。
5.1 应用实例和优势
BLE通常应用在传感器和智能手机或者平板的通信中。到目前为止,只有很少的智能机和平板支持BLE,如:iPhone 4S以后的苹果手机,Motorola Razr和 the new iPad 及其以后的iPad。安卓手机也逐渐支持BLE,安卓的BLE标准在2013年7月24日刚发布。智能机和平板会带双模蓝牙的基带和协议栈,协议栈中包括GATT及以下的所有部分,但是没有GATT之上的具体协议。所以,这些具体的协议需要在应用程序中实现,实现时需要基于各个GATT API集。这样有利于在智能机端简单地实现具体协议,也可以在智能机端简单地开发出一套基于GATT的私有协议。
在苹果设备上使用BLE传输,尤其有其明显的优势。相比于蓝牙BR/EDR,再也不需要使用经过苹果授权的加密芯片,就不需要在加入MFi项目中去。
5.2 对比BLE和传统蓝牙BR/EDR技术
| Bluetooth BR/EDR | Bluetooth low energy |
Frequency | 2400-2483.5 MHz | 2400-2483.5 MHz |
Deep Sleep | ~80 μA | <5 μA |
Idle | ~8 mA | ~1 mA |
Peak Current | 22-40 mA | 10-30 mA |
Range | 500m (Class 1) / 50m (Class 2) | 100m |
Min. Output Power | 0 dBm (Class 1) / -6 dBm (Class 2) | -20 dBm |
Max. Output Power | +20 dBm (Class 1) / +4 dBm (Class 2) | +10 dBm |
Receiver Sensitivity | ≥ -70 dBm | ≥ -70 dBm |
Encryption | 64 bit / 128 bit | AES-128 bit |
Connection Time | 100 ms | 3 ms |
Frequency Hopping | Yes | Yes |
Advertising Channel | 32 | 3 |
Data Channel | 79 | 37 |
Voice capable | Yes | No |
5.3 双模协议栈
下图是斯图曼双模协议栈BlueCode+SR的架构。在这个图中,包含了SPP、HDP和GATT所需要的所有部分。
5.4 单模协议栈
下图是单模协议栈的一种典型协议栈设计。在这样的协议栈中一般不会包含具体协议,所以需要在具体的应用程序中实现每一个具体应用对应的协议。这和传统蓝牙有非常大的区别,传统蓝牙会在协议栈中实现每个具体应用相关的协议,如SPP、HDP等。
对比双模协议栈,BLE无需一个主处理器来实现它的协议栈,所以极低功耗的集成成为可能。大多数的单模芯片或者模块都是自带协议栈的。
由于BLE单模产品(芯片或者模块)中的协议栈只是实现了GATT层,所以通常需要将具体应用对应的协议集成到该单模产品之中。甚至芯片商都开始提供带有具体协议和sample code的SDK。但是,仍然没有真正能拿到手的解决方案。
6.集成方式
尽管有单模和双模方案的区别,但是在您的设备中集成蓝牙技术仍有多种方式。
6.1 模块
最简单和快速的方式是使用一个嵌入式模块。这样的模块包含了天线、嵌入了协议栈并提供多种不同的接口:UART、USB、SPI和I²C,可以通过这些接口和您的处理器连接。模块会提供一种简单的接口来控制蓝牙的功能。很多的模块公司都会提供带CE、FCC和IC认证的产品。这样的模块可以只是蓝牙BR/EDR的,双模式的或者单模式的。
如果是蓝牙BR/EDR和双模的方案,还可以采用HCI模块。HCI模块只是不带蓝牙协议栈,其他的和上述的模块是一样的。所以,这样的模块会更便宜。HCI模块只是提供了硬件接口,在这样的方案中,蓝牙协议栈需要第三方提供。这样的第三方协议栈需要能在主设备的处理器中运行,如斯图曼提供的BlueCode+SR。使用HCI模块需要将软件移植到最终的硬件中。
理论上来说,提供单模的HCI模块也是可以的。然而,所有的芯片公司都已经将GATT集成到他们的芯片中,所以市面上不会有HCI单模模块出现(见5.4章节)。
6.2 芯片
通过芯片来集成BLE是从物料角度最低成本的方式,但是,这需要很多的前期工作和花费大量的时间。虽然在软件上只需要将协议栈移植到目标平台之中即可,但是,硬件方面则需要对RF的layout和天线的设计非常有经验。这些公司提供BLE芯片:Broadcom、CSR、EM Microelectronic、Nordic和TI。
Bluetooth Low Energy 介绍