举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔知了社区有害的内容
×
不规范转载
×
举报说明
文/霍晓宇 王品
——网络老爬虫(无线新技术专题)
随着时代的改变,互联网行业的高速发展,无线WiFi也成为了人们生活中必不可少的一部分,正处于互联网时代的人们对于WiFi的要求也不再满足于简单的接入,人们需要更加优质的使用体验,以及更加丰富功能体验。为了丰富业务功能,WiFi集成蓝牙技术日益成熟;不管业务如何多样化,场景多么复杂,我们始终有解决的办法。
低功耗蓝牙并非要优化经典蓝牙或者取代WiFi等无线技术,相反,它针对的是极具目的性的细分市场。这些细分市场要求设备低成本,低功耗,间歇性的发送数据,时间从几秒到几天,每次发送的数据包含若干个字节。通常是用来执行监测或控制类的应用,比如开启关闭智能电器,监测门窗的打开关闭等。
尽可能的减少工作和执行时间是低功耗蓝牙设计的一个基本概念。因为一旦开始工作就不可避免的消耗能量,哪怕仅仅只是检查接收或者发送的状态。许多可能增加耗能的措施必须进行优化,包括鲁棒地发现设备、连接设备和发送数据以及采用很短的数据报文等。
非对称设计是低功耗蓝牙的另一个设计概念,几乎在所有层都采用了非对称设计。将负担从从设备移到主设备,从广播者移到扫描者,从服务器移到客户端。这样降低了资源受限的设备的功耗,将成本转嫁到具有丰富资源的设备上。
无连接是低功耗蓝牙系统的另一个特点。因为任何连接都会消耗大量能量反复确认,重传等。而低功耗蓝牙的基本理念就是连接是瞬态的。无连接模式定义的是设备的状态,而不是连接的状态,通过无状态的协议公开状态,允许在任意时刻断开连接,并在重新连接时直接从对端设备获得当前状态。
图1 低功耗蓝牙体系结构图
低功耗蓝牙的体系结构本质上非常简单。如图1所示,它分成三个基本部分:控制器、主机和应用程序。控制器通常是一个能够发送和接收无线信号的物理设备,懂得如何将信号翻译成携带信息的数据包。主机通常是一个软件栈,管理两台或多台设备间如何通信以及如何利用无线电同时提供几种不同的服务。应用程序则使用软件栈,进而使控制器来实现用户实例。
物理层:低功耗蓝牙和经典蓝牙一样,物理层采用2.4GHz无线电、完成传输和接收工作的部分。与经典蓝牙不同的是,低功耗蓝牙的滤波器不像经典蓝牙的滤波器那么严格,这样低功耗无线电信号比经典蓝牙的要分散一点。适当拓宽无线电信号的好处在于低功耗蓝牙遵循扩频的约束,而经典蓝牙无线电则受跳频的约束。传输时,扩频无线电比跳频使用的频率更少;而如果没有更宽松的滤波器波形,低功耗蓝牙将不能只在三个信道上广播,而不得不使用更多的信道,从而导致系统的能耗升高。2.4GHz频段被划分为40个RF信道,各信道的宽度为2MHz。物理层每微秒传输1比特应用数据。
链路层:链路层是低功耗蓝牙体系里最复杂的一部分。它负责广播、扫描、建立、和维护链接,以及确保数据包按照正确的方式组织、正确地计算校验值以及加密序列等。链路层主要定义了三个基本概念:信道、报文和过程。
信道分为两种,广播信道和数据信道,连接建立前的设备使用广播信道发送数据,广播信道共三个,这一数字是在低功耗和鲁棒性之间折中决定的。连接建立后采用数据信道传输数据。数据信道共有37个,由一个自适应跳频引擎控制实现鲁棒性。
在任意信道上发送的数据均为小数据包。广播和数据信道基本的数据包格式相同。如图2。
图2 数据包格式
8比特前导码优化数据包的鲁棒性,32比特接入码在广播信道数据包中是固定值,PDU的范围最小是16比特,最大是312比特;最后是24比特的循环冗余校验(CRC)值,确保接收的报文没有错误比特。
主机包含复用层、协议和用来实现的过程。主机构建于主机控制器接口的上层部分,其上为逻辑链路控制和适配协议(L2CAP),这是一个复用层。在它上面是系统的两个基本模块:安全管理器和属性协议。属性协议之上为通用属性规范。
安全管理器协议:定义了一个简单的配对和密钥分发协议。配对是一个获取对方设备信任的过程,通常采取认证的方式实现。配对之后,接着是链路加密和密钥分发过程。在密钥分发过程中从设备把密钥共享给主设备,当这两台设备在之后重连时,可用先前分发的共享密钥进行加密,从而迅速认证彼此的身份。
属性协议:属性协议定义了访问对端设备上的数据的一组规则。数据存储在属性服务器的“属性”里,供属性客户端执行读写操作。客户端将请求发送至服务器,后者回复响应消息。客户端可以使用这些请求在服务器上找到所有的属性并且读写这些属性。
通用属性规范:通用属性规范位于属性协议之上,定义了属性的类型及其使用方法。
发射功率:2.4GHz ISM频段对无需授权的设备有最大发射功率的限制。对于低功耗蓝牙,规范规定最大发射功率为+10dBm。同时规范也规定了最小发射功率不应低于-20dBm。
通信距离:假设天线和匹配电路的差别不大,链路预算的主要来源是路径损耗。路径损耗是指从发射机天线到接收机天线的能量消耗,可参考以下公式:
Path Loss= 40 + 25log(D)
下表给出了一些具体数值。
路径损耗(Path Loss) | 距离(D) |
50dB | 2.5m |
60dB | 6.3m |
70dB | 16m |
80dB | 40m |
90dB | 100m |
100dB | 250m |
110dB | 630m |
低功耗蓝牙规定接收机的灵敏度要高于-70dbm。换句话说,如果发射功率为-20dBm,接收机灵敏度为-70dBm,则允许的路径损耗为50dB,对应于2.5m的通信距离。这也是低功耗蓝牙以最低功率发射,并在接收机灵敏度最低的情况下所达到的通信距离。
如果发射功率为0dBm,接收机灵敏度为-80dBm,则允许的路径损耗为80dB,对应于40m的通信距离。这是低功耗蓝牙在常见的发射功率和接收机灵敏度情况下所达到的通信距离。
如果发射功率为10dBm,接收机灵敏度为-90dBm,则允许的路径损耗为100dB,对应于250m的通信距离。这是低功耗蓝牙以最高功率发射,并在接收机灵敏度非常好的情况下所达到的通信距离。
图3 扫描发现交互图
扫描是低功耗蓝牙广播的重要组成部分。扫描用于接收广播事件。扫描时间取决于有多少时间用于扫描以及需要多快发现其他设备。如图3,对于广播报文针对不同需求分如下几种:通用广播指示,定向连接指示,可扫描指示,主动扫描请求,主动扫描响应,连接请求。
如图4所示,设备首先广播可连接广播事件,其他设备收到之后,即可发起连接。需要强调的是连接请求一旦收到或者发出,设备即建立了连接,数据交换随之开始。
图4 连接建立交互图
图5 低功耗蓝牙状态机
链路层状态机清晰解释了低功耗蓝牙的设计策略:将广播、发现和连接过程与连接中的数据传输分离开来,能实现广播设备的超低功耗。主要有以下特点
1、 链路层状态机只有连接态时会使用到数据信道,其他各个状态均使用广播信道。连接态的设备只能通过断开连接转换为就绪态,而不能进入其他状态。
2、 连接态分主从两个子状态。主连接态只能从发起态进入,首先向对端设备发起连接后成为主设备。从连接态只能从广播态进入。为了成为从设备,必须先广播,在收到连接请求后进入从连接态成为从设备。
3、 一个设备不能同时成为主从设备。因此从设备不能发起连接,因为这会使其成为主设备。一个设备也不可以同时成为两个主设备的从设备。事实上,同时作为两个主设备的从设备,是比同时成为主设备和从设备更复杂的情况。对于经典蓝牙,这被称为分散式网络(Scatternet),而低功耗蓝牙不支持这种网络。
iBeacon作为新兴的蓝牙设备,能够利用BLE技术实现室内定位,能够让手机知道是否处于一个Beacon的范围内。使用这种技术能够产生多种多样的应用:微信摇一摇推送,电子书包,停车场寻车或者超市优惠券推送等等。
iBeacon为了保证低功耗,只支持不可连接的Advertising模式和可被连接的Connectable模式。由于BLE的特性,iBeacon会在这两种模式切换。Advertising模式时不接受任何连接请求,但是会向外通告自身的所有信息。通告发送完毕后设备应切换至可连接模式,等待处于连接模式的设备连接。
那么iBeacon提供了哪些数据呢,如图6:
图6 iBeacon广告数据包携带的数据图
以上数据已经将广告数据包的报头、修正地址、PDU数据包的报头和其中的MAC地址部分去掉了。该部分数据只包含了实际信息数据。整理后如下:
02 01 06 1A FF 4C 00 02 15:iBeacon prefix
E2 C5 6D B5 DF FB 48 D2 B0 60 D0 F5 A7 10 96 E0:proximity UUID
00 01:major
00 01:minor
C6:TX power
图7 携带数据包格式图
报文包括了iBeacon的Proximity UUID,Major和Minor 编号以及TX-power。
Proximity UUID:是iBeacon独有的身份标识,是将iBeacon与他人区分开来的id。实际应用中采用相同UUID的iBeacon能够被后台的应用程序使用这个UUID扫描到。
Major /Minor:Major和Minor通常会组合使用,用来标识特定的iBeacon。比如商场内不同的商铺采用不同Major,特定的Major能够告诉用户所处的商店。而Minor则可以在该商店标识具体的位置。
iBeacon提供的参数中TX power用于确定你和Beacon之间距离有多近。通过这个值可以获取到精确到米的距离,也就是蓝牙定位的基础。
TX power是距离设备1米处测的信号强度值。假如接收到的信号强度弱于该值,则证明距离应该大于1米,反之则近于一米。因此只要知道1米处的RSSI,以及当前的RSSI(均可从接收信号中获取),那么就计算出和iBeacon的距离。
通过计算和三个iBeacon的距离,能够通过三角算法定位手机或者其他有定位需求的蓝牙终端的位置。
图8 iBeacon定位终端
由于iBeacon属于无源设备,我们可以把蓝牙和WiFi结合起来,通过AP管理iBeacon,也可以让AP的BLE模块发送通告协助定位
图9 iBeacon和WiFi组合定位
同样的iBeacon能够提供Proximity UUID,Major和Minor编号。利用这些数据,我们可以有更多可选的业务组合。
比较典型的应用就是微信摇一摇功能。在腾讯上可以把iBeacon的UUID,Major,Minor这三个参数和指定网站绑定,这样打开微信和蓝牙功能时,当通过摇一摇功能扫描都周围iBeacon的参数,APP能够上报并查找到相应的网站推送给用户。
低功耗蓝牙的低成本,低能耗,易部署和多样化的应用为未来大互联时代的无线部署方案填上了一块重要的拼图。然而低功耗蓝牙也存在着一定的局限,因为能耗和信号强度本身是相互矛盾的,而且低功耗蓝牙目前尽管可以加入分散网(Scatternet)或完整的网状网(Mesh)支持,但是这会大量增加内存和提高能量消耗来维护网络,所以低功耗蓝牙目前并没有涉及学术界广泛研究的网络拓扑学。
由于低功耗蓝牙这样的网络特性,管理低功耗蓝牙的AP就应运而生,相应的,低功耗蓝牙也作为WiFi的补充满足了特定细分场景的无线部署。通过蓝牙AP管理iBeacon等低功耗蓝牙设备,弥补了低功耗蓝牙设备间相互之间的连接限制,并能够将相应的信息上传给服务器,为更复杂的业务提供了可能。
(0)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作