首页 > 代码库 > 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 介绍