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 介绍的更多相关文章
- Bluetooth Low Energy介绍
目录 1. 介绍 2. 协议栈 3. 实现方案 3.1 硬件实现方案 3.2 软件实现方案 1. 介绍 Bluetooth low energy,也称BLE(低功耗蓝牙),在4.0规范中提出 BLE分 ...
- Bluetooth Low Energy 嗅探
Bluetooth Low Energy 嗅探 路人甲 · 2015/10/16 10:52 0x00 前言 如果你打开这篇文章时期望看到一些新的东西,那么很抱歉这篇文章不是你在找的那篇文章.因为严格 ...
- Overview and Evaluation of Bluetooth Low Energy: An Emerging Low-Power Wireless Technology
转自:http://www.mdpi.com/1424-8220/12/9/11734/htm Sensors 2012, 12(9), 11734-11753; doi:10.3390/s12091 ...
- Android使用BLE(低功耗蓝牙,Bluetooth Low Energy)
背景 在学习BLE的过程中,积累了一些心得的DEMO,放到Github,形成本文.感兴趣的同学可以下载到源代码. github: https://github.com/vir56k/bluetooth ...
- How to Implement Bluetooth Low Energy (BLE) in Ice Cream Sandwich
ShareThis - By Vikas Verma Bluetooth low energy (BLE) is a feature of Bluetooth 4.0 wireless radio t ...
- 基于蓝牙4.0(Bluetooth Low Energy)胎压监测方案设计
基于一种新的蓝牙技术——蓝牙4.0(Bluetooth Low Energy)新型的胎压监测系统(TPMS)的设计方案.鉴于蓝牙4.0(Bluetooth Low Energy)的低成本.低功耗.高稳 ...
- Bluetooth® Low Energy Beacons
Bluetooth® Low Energy Beacons ABSTRACT (abstract ) 1.This application report presents the concept of ...
- Bluefruit LE Sniffer - Bluetooth Low Energy (BLE 4.0) - nRF51822 驱动安装及使用
BLE Sniffer https://www.adafruit.com/product/2269 Bluefruit LE Sniffer - Bluetooth Low Energy (BLE 4 ...
- BLE——低功耗蓝牙(Bluetooth Low Energy)
1.简介 以下蓝牙协议特指低功耗蓝牙协议. 蓝牙协议是由SIG制定并维护的通信协议,蓝牙协议栈是蓝牙协议的具体实现. 各厂商都根据蓝牙协议实现了自己的一套函数库——蓝牙协议栈,所以不同厂商的蓝牙协议栈 ...
随机推荐
- jwplayer 源代码重新编译
由于原来下载的jwplaery播放器中带有官方的播放统计信息,需要从官方加载统计js脚本,影响播放器加载速度,因此从官方github站点上下载播放器进行重新编译操作,现记录过程如下. 下载最新的jwp ...
- Mybatis下配置调用Oracle自定义函数返回的游标结果集
在ibatis和Mybatis对存储过程和函数函数的调用的配置Xml是不一样的,以下是针对Mybatis 3.2的环境进行操作的. 第一步配置Mapper的xml内容 <mapper names ...
- U3D 收藏一个飞机随机运动的方法
文章转载:http://www.manew.com/thread-43578-1-1.html 前面的学习中已经涉及到了随机运动,这一篇主要还是前面的随机运动的改进,不废话直接上效果图吧,对比前面的随 ...
- WisDom.Net 框架设计(五) 权限设计
WisDom.Net --权限设计 1.需求分析 基本在所有的管理系统中都离不开权限管理.可以这么说,权限管理是管理系统的核心所在. 权限管理说白一些就是每个人能够做什么,不能够做什么.可以说 ...
- [压缩解压缩] SharpZip--压缩、解压缩帮助类
里面有三个类都是用于压缩和解压缩的.大家看下图片 看下面代码吧 /// <summary> /// 类说明:SharpZip /// 编 码 人:苏飞 /// 联系方式:361983679 ...
- Hadoop 系列 - (1) - 学习随笔 - 起源、构成
起源:Hadoop是google 的集群系统的开源实现 --Google集群系统,:GFS(Google file system),MapReduce,BigTable(严格意义 ...
- delphi 编写一个dos 窗体
+ //dos 仿真程序 delphi 窗体实现! function GetDosOutput(CommandLine: string; Work: string = 'C:\'): string ...
- 查看oracle 启动了多久
想看一下系统正常运行了多少天?开机多长时间没有重启了? windows系统 C:\>systeminfo |find “系统启动时间”系统启动时间: 265 天 4 小时 26 分 32 ...
- SQLServer2008找出所有包含172.17.224.40字样的存储过程
SQLServer2008 找出所有包含172.17.224.40的存储过程 select distinct name from syscomments a,sysobjects b where ...
- Java SpringMvc+hibernate架构中,调用Oracle中的sp,传递数组参数
一.问题 我们调用数据,大都是可以直接获取表中的数据,或者用复杂点的sql语句组成的.但是,有时候,当这样达不到我们要的全部数据的时候,这时,我们就用到了存储过程[sp],如果sp需要参数是数组的话, ...