ibeacon蓝牙技术简介

时间:2022-04-27
本文章向大家介绍ibeacon蓝牙技术简介,主要内容包括概述、V1.1版(发布日期2001.2.22)、V1.2版(发布日期2003.11.5)、V2.0版( Bluetooth 2.0 +EDR,发布日期2004.11.9)、V2.1版( Bluetooth 2.1 +EDR,发布日期2007.7.26)、V3.0版(发布日期2009.4.21)、V4.0版(发布日期2010.7.7)、V4.1版(2013年底)、iBeacon、BLE设备通信、ibeacon设备整合BLE、iBeacon数据解析、IOS整合、替换技术Alternatives、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

概述

在讲解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通告数据包,你会发现它是这样的:

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广告数据是如何组成的?以苹果设备为例:

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工作流程分析