随着互联网信息时代的到来,可移动的便携式智能产品一经推出便让无数“智能发烧友”疯狂。可穿戴设备从最初MP3听歌,逐步发展到无线蓝牙耳机、VR设备。
而可穿戴设备市场的快速增长离不开蓝牙通信技术的发展,随着蓝牙4.0技术的普及和移动互联网的崛起,蓝牙技术应用也从手机、平板等便携式设备向着物联网、医疗等领域发展,基于蓝牙技术的应用方案如雨后春笋般爆发,为物联网市场带来了新的机遇。
谈及蓝牙,我们会经常听到BLE、beacon、iBeacon、Eddytstone等词汇,而它们之间有何联系与区别呢?下面我们对蓝牙常见词汇及应用涉及的蓝牙技术进行详解。
一、蓝牙常见词汇解释
BLE:全称为Bluetooth Low Energy,蓝牙低功耗技术。
Beacon:基于蓝牙4.0协议的一种精确定位技术。
iBeacon:苹果公司2013年推出的一套遵守Beacon技术协议的规范,需要遵守苹果公司规定的数据格式。
Eddystone:谷歌公司2015年推出的一款跨平台的开源Beacon格式蓝牙协议。
我们日常生活中常说的蓝牙,其实通常是指BLE,蓝牙低功耗技术,如名字所示,现在的蓝牙技术所消耗的功耗很低,并不像传闻中,不使用蓝牙需要关闭省电,手机上长期打开蓝牙所消耗的电量可以忽略不计。
二、BLE的起源与分类
BLE,也就是低功耗蓝牙技术,起源于2006年Nokia(诺基亚)的Wibree技术,该技术为称为“小蓝牙”,类似于蓝牙技术,但是只消耗相当于蓝牙技术一小部分的电池电量。后来该技术被整合进蓝牙,并在SIG 2010年发布的蓝牙4.0技术规范中成为其中一部分。
BLE的协议栈如下图所示。BLE是一组与传统蓝牙不同的协议,并且对应设备也未实现向后兼容功能。因此BLE形成了三种设备类型:
1.Bluetooth设备,称为蓝牙BR/EDR:只支持传统蓝牙的设备,如一些老式设备,比如旧型手机等。经典蓝牙采用SPP(串行端口配置文件)传输数据,SPP定义了在两个对等设备之间使用RFCOMM设置模拟串行电缆连接所需的蓝牙设备要求。
2.Bluetooth Smart Ready设备,称为蓝牙4.0双模,同时支持传统蓝牙和LE模式的设备。iOS、Android系统等新型手机、笔记本、平板电脑支持。因为双模控制器集成了BR/EDR控制器和LE控制器,因此它能够支持两种蓝牙协议。
3.Bluetooth Smart设备,称为BLE单模,采用LE controller,只支持LE模式的设备。Beacon设备只支持low energy protocols(LE低功耗协议),因此能靠一颗纽扣电池就能运行很长时间。
BLE(低功耗蓝牙)和传统蓝牙使用的都是相同的波段(2.4GHz)。但是BLE协议的传输速率比较低,物理层的传输速率是1Mbps,相当于每秒125KB,BLE不适合用于传达大量数据,一般用于发现设备和完成一些简单通信。
BLE和传统蓝牙都能够覆盖到100米的范围,但BLE的覆盖范围稍广。BLE与传统蓝牙相比,最大的优势是功耗,BLE的功耗比传统蓝牙降低了90%,同时传输距离增大、安全和稳定性提高,支持AES加密和CRC验证,对连接设备进行通信的安全性提供了保障。
三、Beacon技术的特点
Beacon作为基于蓝牙4.0协议的定位技术越来越受室内定位市场关注。随着物联网信息化发展,大数据采集处理需求的不断积累,低功耗低成本的Beacon技术成为室内定位应用关注的焦点,凭借其特点推动物联网室内定位系统快速落地。
1.无需配对。
在印象中我们日常使用蓝牙设备都需要配对工作,比如打开蓝牙无线耳机和手机进行连接时就需要匹配,智能手环绑定手机时也同样需要匹配工作。而Beacon无需配对,因为它是采用蓝牙的广播信道传送信号,手机等设备无需与Beacon设备建立连接即可正常工作。
2.后台接收信息。
基于Beacon定位的信息推送需要App支持。但是我们使用室内定位功能接收Beacon信号无需打开App,只是需要展示Beacon信息推送服务时才需打开对应app。
3.Beacon不具备传统意义上的数据传输功能。
Beacon设备基站只是以广播数据的形式推送定位所需的信息,采用的是蓝牙不可连接模式。
如果配套开发的app要运行,并传输数据与服务器通信实现客户定制化功能,获取特定数据,需要搭配开启其他的数据通信方式,例如Wi-Fi、4G等。
另外,采用Beacon定位,可以不使用网络,而这里的网络是指不通过服务器,Beacon定位算法可以在本地实现,即设备本身完成定位而不通过线上服务器计算,前提是需定位的地图数据提前初始化写入本地设备。
四、基于Beacon技术的iBeacon与Eddystone有何区别?
1.iBeacon
iBeacon技术是苹果公司在2013年WWDC上,推出的一项基于蓝牙4.0(Bluetooth Smart)的精准微定位技术,底层技术使用的是BLE(Bluetooth Low Energy),该定位技术在iPhone 4S后支持。
当你的手持设备,例如智能手机靠近一个Beacon基站时,智能手机就能够接收到Beacon信号,该信号接收范围可以达到50米。
苹果公司将iBeacon相关的接口放到了CoreLocation.framework。Google在Android 4.3及后续版本支持了该功能,开发者要使用iBeacon技术,只要满足iBeacon技术标准即可,但不能对协议格式进行修改,有一定的局限性。
2.Eddystone
Eddystone是谷歌公司2015年7月15日推出的一款跨平台的开源信标格式的蓝牙LE信标,主要应用在公共场合向人们发送各种信息推送。
由于谷歌公司把它定位为开源项目,谷歌公司按照传统,就是不用谷歌公司名称命名那些开源项目,比如Android操作系统就没有使用谷歌公司的名称,公众不需要知道Eddystone是哪家公司的,只要制作信标的OEM和对应app开发者知道。
相对于苹果公司iBeacon的局限性,Eddystone是开源的,不仅能用在安卓系统上,iOS通过链接库文件也可以使用。Eddystone在GitHub上存有源代码。完全开放源代码也是Eddystone最大的卖点,苹果对iBeacon的使用权限保管地十分严密,之前Radius Networks公司曾想办法在安卓系统上运行苹果iBeacon,苹果公司严肃处理此事并最终关闭了这项服务。
五、Beacon设备如何使用BLE
通过上面的内容,我们了解到BLE、Beacon、iBeacon、Eddytstone究竟是什么,那么对于beacon设备来说,是如何基于BLE技术实现功能的呢?
首先,我们先纵观一下BLE完整的连接过程。
1.BLE的广播扫描连接过程解析
(1) 广播,又叫Advertising。
主机(Central)如果要连接从机(Peripheral)),从机必须进行广播,供主机进行连接。从机会每间隔一定的时间发送一个广播包(Advertisement Packet),间隔的时间在20ms到10.24s之间,该间隔时间被称为广播间隔。广播间隔会影响之后启动一次连接所花费的时间。
主机在发送连接请求(Connection Request)启动与从机的连接之前,必须接收广播包。而从机在发送完一个广播包后的一段时间内,只监听主机的连接请求。一个广播包能够承载31个字节的数据。通常包含的内容有用户名称、设备信息、可连接标识等。广播类型可分为四种:
1) Connectable Undirected Event Type(可连接非定向型)
2) Connectable Directed Event Type(可连接定向型)
3) Scannable Undirected Event Type(可扫描非定向型)
4) Non-connectable Undirected Event Type(不可连接非定向型)
当主机接收到一个广播包时,它将发送扫描请求(Scan Request)来获得更多的广播数据,前提是扫描者(Active Scanner)已经进行了配置。然后从机通过发送扫描响应(Scan Response)来回应这个扫描请求,可以包含额外的31个字节数据。
广播,扫描请求和响应,它们采用三个不同的2.4G频率段以避开WLAN的干扰。
(2)扫描(Scanning)
扫描是主机用来监听广播包和发送扫描请求的。有两个时序参数需要注意:“扫描窗口”(Scan Window一次扫描所占的时间长度)和“扫描间隙”(Scan Interval一次扫描的总时间,包括扫描停止的时间和扫描进行的时间)。 对于每一次的扫描间隙,主机扫描的时间等于“扫描窗口”,意思是说,如果“扫描窗口”等于“扫描间距”,那就意味着主机在进行连续的扫描。所以说,主机扫描的占空比就是“扫描窗口”的时间除以“扫描间隙”的时间乘以百分之百。
(3)启动连接(Initiating)
当主机想要进入连接时,它将经历跟扫描广播包时一样的流程。当启动连接时,主机接收到一个广播包时,主机将发送一个连接请求(Connection Request)给从机。
(4)连接(Connection)
根据连接中第一次的数据交换来定义主机和从机的角色。当进行连接时,主机将根据从机定义的“间隙时间”(Interval)请求数据。这个间隙时间被称为“连接间隙”(Connection interval)。它用于主机连接,不过从机可以发送更新连接参数请求(Connection Parameter Updata Requests)给主机。
根据Bluetooth Core Specification,这个时间间隙必须在7.5ms到4s之间。如果从机在时间帧内(time-frame)不响应这个来自于主机的包,这称作连接监管超时(Connection supervision timeout),此次连接被认为已丢失。在每次连接间隙中通过传输多个包来达到更多的数据吞吐量是可行的。每次的包最多可以发送20个字节。但是,如果当前的功耗需要控制的,从机没有数据发送,就可以选择忽略一定数量的间隙。被忽略的间隙被称作“从机延迟”(slave latency)。在一次连接中,设备将通过所有通道在频率带中进行调频(hop)。
2 .Beacon的使用方法
Beacon设备只使用了广播通信信道,因此无BLE后续连接相关步骤,也正是这样,Beacon面向低功耗室内精确定位的应用领域。正如beacon(信标、灯塔)的字面意思,这种设备以一定的时间间隔发送数据包,并且发送的数据被可以被像手机这样的主机设备获取。
比如:一个小型温控器可以开放一个service用于获取当前的温度或者湿度读数,它是被可连接的,温控器和操作设备之间可以相互通信;Beacon不进行连接,操作设备只接收到Beacon的广播信号,操作设备根据接收到的广播信号进行下一步动作。
六、iBeacon技术使用介绍
下面主要介绍iBeacon具体怎么使用:
(1)iBeacon的属性
iBeacon从本质上来说是一个位置信息,所以苹果公司把iBeacon功能集成在了Core Location里面,主要用三个属性来标识一个iBeacon:proximityUUID、major和minor。
1.proximityUUID是一个NSUUID,用来标识公司的。每个公司、组织使用的iBeacon应该拥有同样的proximityUUID,也被称为UUID。
2.major用来识别一组相关联的beacon,例如在连锁超市的场景中,每个分店的beacon应该拥有同样的major,major的作用类似于分组,为了更好地管理数量庞大的Beacon设备。
minor则用来区分某个特定的beacon,相当于是对同一组的Beacon设备进行编号管理,例如在连锁超市中,区分某一个货架上的不同商品。
这些属性如果不进行指定,设备匹配的时候就会忽略这个属性。例如只指定proximityUUID的CLBeaconRegion可以匹配某公司的所有beacon设备。
(2)iBeacon帧格式
iBeacon广播包帧格式如下,我们可以看到帧格式由广播长度、类型、公司ID、iBeacon类型、iBeacon长度、UUID、Major、Minor、发射功率这些参数组成。
其中Company ID称为公司ID,顾名思义是为了展示公司标识,例如下面的公司向Bluetooth SIG申请的16bit UUID:百度(0xFDC2,0xFDC3),小米(0xFDAB,0xFDAA,0xFE95),alibaba(0xFE3C),nordic(0xFE59,0xFE58)。
Company ID带有很强的标识信息,体现出该iBeacon数据服务提供商的综合能力,但是很多使用者和公司都没有这种ID。在实际的Beacon营销推广应用,例如在商场推送营销信息中,展示自身的ID信息是非常重要的,而该参数的限制对营销推广使用有一定的局限性。
除此之外,我们可以看到整个iBeacon数据格式是单一的,每一段代码都已经被严格限制,开发者或者使用者只能按照格式使用,不能额外修改或者自行开发。
七、Eddystone技术使用介绍
下面主要介绍Eddystone具体怎么使用:
(1)Eddystone的属性
Eddystone除了开源这一大优势之外,还支持多框架。先前苹果的iBeacon和谷歌的The Physical Web都只支持一种框架。
Eddystone兼容多种框架,你可以看到不同的信标销售商销售不同用途的信标。意味着无论是iOS手机还是Android手机都可以接收到谷歌公司的Eddystone Beacon信号。这对于需要推送店铺信息的商家是个非常好的消息,意味着所有手机都可以接收到推送消息,而不是像iBeacon一样被iOS系统所限制。
而Eddystone多种框架包含UID、URL、TLM、EID四种格式数据。
Eddystone的UID初衷就是用来兼容iBeacon UUID,为了打破只有iBeacon UUID的限制,UID可以自由地被商家设置,app可以选择只接受来自该UID的消息,通过UID的唯一识别码,商家app也可以判断出用户处于全球的哪一家分店,并推送相应的信息,如优惠券、连接Wi-Fi等等。
URL链接显然比UID应用更广泛也更简单,任何一个手机上都有浏览器,它们都可以打开URL。在这种一次性传输中,用户不想专门下载app接收推送信息,URL无疑是最佳选择。
TLM,这种远程遥测框架对需要掌控大量信标的企业很有用。鉴于信标大多数使用电池供电,在一段时间后就需要更换电池或充电。遥测数据框架允许信标将自身的状态和电量信息发送给周围的工作人员,这样员工们可以有针对性地进行维护和更换。
EID是一种安全框架,它是一种只允许被授权用户读取信息的信标。比如在公司中,大厅里安放了对全部顾客、访客广播的信标,然而公司也有只想对雇员广播的信息,他们显然不希望这些信息被顾客和访客看到。
(2)Eddystone帧格式
Eddystone不使用制造商数据字段,而是在完整的16位服务UUID字段中置入0xFEAA值,并用关联的服务数据字段来容纳Beacon信息。完整细节可查看如下:
利用Eddystone技术的Beacon设备可以广泛应用于商品的近距离推广,例如顾客在超市,餐厅附近逛街。在机场,火车站,风景点,博物馆获取地点信息。对资产进行追踪防丢。在商场室内进行导航。
基于BLE技术的Beacon应用案例在市场上已遍地开花,网上可以搜到各种有关Beacon的技术信息。无论国内还是国外,Beacon技术旺盛的应用需求已经吸引越来越多的厂商投入研发,市面上已有相当成熟的Beacon系统方案,例如智慧博物馆、智慧仓库、智慧动物园、智慧冷链、智慧卖场、智慧商店、智慧体育馆、智慧养老院、智慧医院、智慧展览中心等Beacon应用方案。
,