ibeacon蓝牙技术简介

2018-02-06 16:35:10 浏览数 (2)

概述

在讲解ibeacon技术之前,我们首先来看一下蓝牙实际到现在经历了哪些发展。截止目前,蓝牙共有八个版本 V1.0/1.1/1.2/2.0/2.1/3.0/4.0/4.1,各版本的功能变化如下:

V1.0版(发布日期1999.7.5)

  1. 传输速率748~810kb/s;
  2. 基本支持立体声,只能单工传输;
  3. 通信加密方式致使不同厂家模块难以正常通信;
  4. 主辐设备难以区分; 5. 通讯易干扰;
  5. Bluetooth技术将2.4GHz的频带划分为79个子频段,而为了适应一些国家的军用需要,Bluetooth 1.0重新定义了另一套子频段划分标准,将整个频带划分为23个子频段作为副标准。

V1.1版(发布日期2001.2.22)

1. 传输率约在748~810kb/s; 2. 容易受到同频率之产品所干扰下影响通讯质量; 3. 已可以进行主副设备的区分; 4. 可以支持 Stereo音效的传输要求,但只能够作(单工)方式工作; 5. Bluetooth 1.1标准取消了23子频段的副标准,所有的Bluetooth 1.1设备都使用79个子频段在2.4GHz的频谱范围之内进行相互的通信。解决了使用79个子频段的设备与那些设计为使用23个子频段设备之间互不兼容。

V1.2版(发布日期2003.11.5)

1. 传输速率同样是只有 748~810kb/s; 2. 采用了AFH可调式跳频技术(Adaptive Frequency Hopping) 增强了抗干扰功能; 3. 增强了语音处理,改善了语音连接的品质(可以提高蓝牙耳机的音质); 4. 能更快速的连接设置; 5. 可以支持 Stereo音效的传输要求,但只能够作(单工)方式工作

V2.0版( Bluetooth 2.0 EDR,发布日期2004.11.9)

1. 传输率约在 1.8M/s~2.1M/s; 2. 使用了 EDR,可以增加带宽。EDR 即Enhanced data rate,是蓝牙技术中增强速率的缩写,其特色是大大提高了蓝牙技术的数据传输速率,最大可达3Mbps。EDR可以100%和蓝牙1.2版兼容; 3. 数据传输速率为原v1.2的3倍,并降低了功耗,从而延长电池的使用时间。由于带宽增加,新规范提高了设备同时进行多项任务处理、或同时连接多个蓝牙设备的能力,并使传输范围可达100米; 4. 开始支持双工模式——即一面作语音通讯,同时亦可以传输档案/高质素图片。

V2.1版( Bluetooth 2.1 EDR,发布日期2007.7.26)

1. 传输率约在 1.8M/s~2.1M/s; 2. 使用了 EDR,可以增加带宽; 3. 简化了设备间的配对过程,改进过后的连接方式会自动使用数字密码来 进行配对与连接; 4. 更佳的省电效果:蓝牙2.1版加入了Sniff Subrating的功能,透过设定 在2个装置之间互相确认讯号的发送间隔来达到节省功耗的目的。蓝牙2.1将装置之间相互确认的讯号发送时间间隔从旧版的0.1秒延长到0.5秒左右,无形中变为手机和蓝牙设备节省了很多电量,大大提升了续航能力。采用此技术之后,蓝牙装置在开启蓝牙联机之后的待机时间可以有效延长5倍以上。

V3.0版(发布日期2009.4.21)

  1. 蓝牙3.0的核心是”Generic Alternate MAC/PHY”(AMP),这是一种全新 的交替射频技术,允许蓝牙协议栈针对任一任务动态地选择正确射频,允许消费类设备使用标准蓝牙射频和无线局域网射频(WIFI)多重传输;
  2. 蓝牙3.0的传输速度更高,而秘密就在802.11无线协议上。通过集成”802.11 PAL”(协议适应层),蓝牙3.0的数据传输率提高到了大约24Mbps(即可在需要的时候调用802.11 WI-FI用于实现高速数据传输)。在传输速度上,蓝牙3.0是蓝牙2.0的八倍;3.0版本的蓝牙的有效传输距离为10米;
  3. 功耗方面,通过蓝牙3.0高速传送大量数据自然会消耗更多能量,但由 于引入了增强电源控制(EPC)机制,再辅以802.11,实际空闲功耗会明显降低。

V4.0版(发布日期2010.7.7)

1. 有效传输距离可达60米,最大范围可超过100米; 2. 4.0与3.0版本相比最大的不同就是大幅降低能耗,4.0版本的功耗较3.0版本降低了90%; 3. 拥有低成本,跨厂商互操作性,3毫秒低延迟、AES-128加密等诸多特色; 4. 蓝牙4.0实际是个三位一体的蓝牙技术,它将三种规格合而为一,分别是传统蓝牙、低功耗蓝牙和高速蓝牙技术,这三个规格可以组合或者单 独使用。

V4.1版(2013年底)

  1. 提供LTE的并存支持,可与LTE等最新一代蜂窝技术无缝协作。蓝牙与LTE无线技术可彼此通讯,以确保协同传输,降低近带干扰。可作为IP连接基础,巩固蓝牙技术在物联网无线连接中的重要地位。
  2. v4.1标准下蓝牙设备可以同时作为发射方(Bluetooth Smart)和接受方(Bluetooth Smart Ready),并且可以连接到多个设备上。
  3. 提升连接质量,提升制造商更多的控制能力,重新连接时,时间间隔更具灵活性与可变性,使建立与维持蓝牙连接更加方便。当设备彼此接近时,就可自动重新连接,改善用户体验;即使用户暂离,但当设备返回原处后,最近曾使用的设备将不需手动操作即可自动重新连接;
  4. 改善数据传输:Bluetooth Smart技术可提供大量数据传输;
  5. 提升蓝牙技术的组网性能与低功耗特性,拓展物联网市场;
  6. 最新的蓝牙4.1标准就能够让蓝牙组网,增加了对路由、网关等协议的 支持,满足物联网的应用需求,加入了专用通道允许设备通过 IPv6联机使用,通过IPv6建立网络连接。蓝牙设备只需要通过蓝牙4.1连接到可以上网的设备(如手机),就可以通过IPv6与云端的数据进行同步,即实现“云同步”,不再需要wifi连接。

iBeacon

iBeacon 是苹果公司推出的一项室内低耗能蓝牙技术。其工作方式是:配备有低功耗蓝牙(BLE)通信功能的设备使用BLE技术向周围发送自己特有的ID,接收到该ID的应用软件会根据该ID采取一些行动。 iBeacon蓝牙技术是2010年发布的蓝牙4.0技术规范的基础上发展而来,那么它和传统的蓝牙技术有什么区别,又有哪些优点呢? iBeacon使用的是BLE技术,具体而言,利用的是BLE中名为“通告帧”(Advertising)的广播帧。通告帧是定期发送的帧,只要是支持BLE的设备就可以接收到。iBeacon通过在这种通告帧的有效负载部分嵌入苹果自主格式的数据来实现。

BLE

BLE(Bluetooth Low Energy)是蓝牙4.0技术规范的一部分,它起源于2006年Nokia的Wibree技术,但最终被整合进了蓝牙。这是一组与传统蓝牙不同的协议,并且使用的设备上也不会向后兼容。因此,现在市面上你可以看到三种类型的设备: 1.Bluetooth设备:只支持传统蓝牙的设备。 2.Bluetooth Smart Ready设备:同时支持传统蓝牙和LE模式的设备。 3.Bluetooth Smart设备:只支持LE模式的设备。

BLE最重要的特点当然在于它的低能耗。除此之外,BLE协议的传输速率比较低,因此除了用于发现设备和做一些简单通信之外,不太适合用于传输大量的数据流。

BLE设备通信

BLE的通信包括两个主要部分:advertising(通告)和connecting(连接)。

通告(Advertising)是一种单向的发送机制。想要被搜索到的设备可以以20毫秒到10秒钟的时间间隔发送一段数据包。使用的时间间隔越短,电池消耗的越快,但设备被发现的速度也就会快。数据包长度最多47个字节,由以下部分组成: 1 byte preamble(1字节做报头) 4 byte access address(4字节做地址) 39 bytes advertising channel PDU(39个字节用于PDU数据包) 3 bytes CRC(3个字节用于CRC数据校验)

对于通告通信信道,地址部分永远都是 0x8E89BED6 。对于其它数据信道,地址部分由不同的连接决定。BLE设备可以运行在单一的不可连接的通告模式中(在这种模式下所有的信息都包含在广告数据包中),然而设备也是允许运行在可被连接的模式下(通常情况下都是这种模式)。 当设备被发现之后,一个连接就会被建立起来。之后就可以读取BLE设备提供的Service,以及每个Service的characteristic。每一个characteristic都会提供一些值,这些值可以被读取或者修改。 如果你想要了解更多关于连接BLE设备的内容,可以参考 Apple’s Core Bluetooth guide

ibeacon设备整合BLE

Beacon设备只使用了通告通信信道。正如beacon(信标、灯塔)的字面意思,这种设备以一定的时间间隔发送数据包,并且发送的数据被可以被像手机这样的设备获取。也就是说,iBeacon只是BLE广告模式的一种简单的使用,并在此基础上提供了对IOS的一些附加支持。 如果你试着拦截一段iBeacon通告数据包,你会发现它是这样的:

代码语言:javascript复制
02 01 06 1A FF 4C 00 02 15 B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D 00 49 00 0A C5

以上的数据已经将广告数据包的报头、修正地址、广告PDU数据包的报头和其中的MAC地址部分都移除掉了,也就是说这部分数据只包含了实际信息数据——一共30个字节,符合实际信息数据最多31个字节的限制。 那么一个iBeacon设备的BLE广告数据是如何组成的?以苹果设备为例:

代码语言:javascript复制
02 01 06 1A FF 4C 00 02 15: iBeacon prefix (fixed)
B9 40 7F 30 F5 F8 46 6E AF F9 25 55 6B 57 FE 6D: proximity UUID (here: Estimote’s fixed UUID)
00 49: major
00 0A: minor
C5: 2’s complement of measured TX power

iBeacon数据解析

除了修正的iBeacon前缀数据(02 01 … 15),其它各部分数据各代表什么?

Proximity UUID

(上面例子中的B9 … 6D部分):这是将你所有的beacon与其他人的beacon设备区别开的id!例如,目前在商店里某个区域分布着多个beacon形成一条“链带”,用于为顾客提供特定的服务,那么归属于同一条“链带”的beacon将分配到相同的proximity UUID。为这条“链带”设计的专用应用程序将会在后台使用这个UUID扫描到这条“链带”中的beacon设备。

major

编号(2个字节,上面例子中为0x0049,也就是73):用于将相关的beacon标识为一组。例如,一个商店中的所有beacon将会分配到相同的major编号。通过这种方式,应用程序就能够知道顾客位于哪一家商店。

minor

标号(也是2个字节,上面例子中为0x000A,也就是10):用于标识特定的beacon设备。例如一个商店中的每一个beacon设备都拥有唯一的minor编号,这样你才能够知道顾客位于商店中的哪个位置。

TX power

上面例子中为0xC5=197,根据2的补码测得256-197=-59dBm是距离设备1米测得的信号强度值(RSSI- Received Signal Strength Indication,接收到的信号强弱指标)。假如接收到的信号强度减弱了,那么我们可能在远离。只要知道1米距离的RSSI,以及当前的RSSI(我们可以从接收到的信号中一块获取到这些信息),那么计算出当前的距离是可能的。IOS已经实现了个这个功能,对于其它平台需要自己手动编码计算,

IOS整合

在ios7.0以上的设备上默认支持iBeacon。当你进入beacon的范围内,你的应用程序就可以接收到通知,即使你的应用程序处于在后台也能接收到。一个应用程序可以注册一个区域的进入或者退出事件,因此即使应用程序没有运行也可以被唤醒。为了响应这些事件,应用程序可以发送例如本地推送通知,提示用户打开应用程序相关通告。

替换技术Alternatives

iBeacon不是唯一一种基于BLE近距离技术开发的设备。高通同样正在开发自己的Beacon——Gimbal,并集合了iOS和Android SDK。 附:ibeacon工作流程分析

0 人点赞