BLE(Bluetooth Low Energy,低功耗蓝牙)是对传统蓝牙BR/EDR技术的补充。尽管BLE和传统蓝牙都称之为蓝牙标准,且共享射频,但是,BLE是一个完全不一样的技术。BLE不具备和传统蓝牙BR/EDR的兼容性。它是专为小数据率、离散传输的应用而设计的。通信距离上也有改变,传统蓝牙的传输距离几十米到几百米不等,BLE则规定为100米。
2.低功耗蓝牙(BLE)
低功耗蓝牙分为单模(Bluetooth Smart)和双模(Bluetooth Smart Ready)两种设备。BLE和蓝牙BR/EDR的区分,让我们有三种方式将蓝牙技术集成到具体设备中。下表中示意了两个蓝牙设备之间的通信方式。因为不再是所有现有的蓝牙设备可以和另一个蓝牙设备进行互联,所以,准确描述产品中蓝牙的版本非常地重要。
单模蓝牙设备被称为Bluetooth Smart设备,并且有专用的logo:
诸如手表、运动传感器等这样小型的设备会基于单模蓝牙低功耗。为了实现极低的功耗,硬件和软件上都做了优化。这样的设备只能支持BLE。单模蓝牙芯片往往是一个带有单模蓝牙协议栈的产品,这个协议栈是芯片商免费提供的。
双模蓝牙设备被称为Bluetooth Smart Ready设备,并且有专用的logo:
双模设备支持蓝牙BR/EDR和BLE。在双模设备中,这两个技术使用同一个射频前端和天线。典型的双模设备有智能手机、平板电脑、PC和Gateway。这些设备可以收到通过BLE或者蓝牙BR/EDR设备发送过来的数据,这些设备往往都有足够的供电能力。双模设备和BLE设备通信的功耗低于双模设备和蓝牙BR/EDR设备通信的功耗。双模解决方案需要一个外部处理器才足以实现蓝牙协议栈。
BLE适合用于电池驱动的小型设备,有以下五个主要的市场。
那些用于监测重要的生理数据的医疗设备是BLE在医疗健康市场中应用的对象。典型的设备有血糖仪、血压计和血氧计。BLE被康体佳健康联盟(Continua Health Alliance)选定为终端产品通信的兼容传输技术。
在运动和健身领域,BLE适合用于定位,同时也上传一些重要的监测数据。典型的设备有心率监测仪、体温计、计步器、节拍器、测高仪、定位器和通过手表显示来自传感器的信息。
在自动化应用领域中,BLE主要用于传输I/O信号。BLE可以用于监测和控制马达、制动器、参数和整个过程。
在领域,BLE已经被众多的设备采用,比如机顶盒、游戏机等。预计BLE会是的在TV / DVD / STB / Media播放器、遥控、游戏控制手柄及无线键鼠等设备中的蓝牙应用不断扩大。
BLE可以提供灯光控制、温度控制、湿度控制、安全锁控制、门窗控制的低功耗、高安全性解决方案。在智能仪表中的应用也是一个方向。
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
|
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
|
下图是斯图曼双模协议栈BlueCode+SR的架构。在这个图中,包含了SPP、HDP和GATT所需要的所有部分。
下图是单模协议栈的一种典型协议栈设计。在这样的协议栈中一般不会包含具体协议,所以需要在具体的应用程序中实现每一个具体应用对应的协议。这和传统蓝牙有非常大的区别,传统蓝牙会在协议栈中实现每个具体应用相关的协议,如SPP、HDP等。
对比双模协议栈,BLE无需一个主处理器来实现它的协议栈,所以极低功耗的集成成为可能。大多数的单模芯片或者模块都是自带协议栈的。
由于BLE单模产品(芯片或者模块)中的协议栈只是实现了GATT层,所以通常需要将具体应用对应的协议集成到该单模产品之中。甚至芯片商都开始提供带有具体协议和sample code的SDK。但是,仍然没有真正能拿到手的解决方案。
6.集成方式
尽管有单模和双模方案的区别,但是在您的设备中集成蓝牙技术仍有多种方式。
最简单和快速的方式是使用一个嵌入式模块。这样的模块包含了天线、嵌入了协议栈并提供多种不同的接口:UART、USB、SPI和I2C,可以通过这些接口和您的处理器连接。模块会提供一种简单的接口来控制蓝牙的功能。很多的模块公司都会提供带CE、FCC和IC认证的产品。这样的模块可以只是蓝牙BR/EDR的,双模式的或者单模式的。
如果是蓝牙BR/EDR和双模的方案,还可以采用HCI模块。HCI模块只是不带蓝牙协议栈,其他的和上述的模块是一样的。所以,这样的模块会更便宜。HCI模块只是提供了硬件接口,在这样的方案中,蓝牙协议栈需要第三方提供。这样的第三方协议栈需要能在主设备的处理器中运行,如斯图曼提供的BlueCode+SR。使用HCI模块需要将软件移植到最终的硬件中。
理论上来说,提供单模的HCI模块也是可以的。然而,所有的芯片公司都已经将GATT集成到他们的芯片中,所以市面上不会有HCI单模模块出现(见5.4章节)。
通过芯片来集成BLE是从物料角度成本的方式,但是,这需要很多的前期工作和花费大量的时间。虽然在软件上只需要将协议栈移植到目标平台之中即可,但是,硬件方面则需要对RF的layout和天线的设计非常有经验。这些公司提供BLE芯片:Broadcom、CSR、EM Microelectronic、Nordic和TI。