TI_BLE软件开发者指导11-外围设备

Texas Instruments CC2540/41
Bluetooth® Low Energy
Software Developer’s Guide
v1.3.2
Document Number:SWRU271F

《低功耗蓝牙开发权威指南》
Robin Heydon著,陈灿峰、刘嘉 译
机械工业出版社
2014.6

TI_BLE软件开发笔记11-外围设备

标签:读书笔记 BLE

  • TI_BLE软件开发笔记11-外围设备
    • 背景
    • 仅广播
    • 可发现
    • 可连接
    • 公开服务
    • 特性
    • 安全事项
    • 为低功耗而优化
      • 1 可发现广播
      • 2 绑定
      • 3 可连接广播
      • 4 定向广播
      • 5 已连接
      • 6 保持连接还是断开
    • 优化属性


1 背景

中央设备通常是电话、电视或者电脑,而外围设备则是为超低功耗实施了高度优化的定制产品。外围设备的工作离不开与中央设备进行交互。交互的方式有三种:

  • 广播数据
  • 被中央设备发现并与之建立连接
  • 断开连接,然后再需要时建立连接

2 仅广播

使用广播模式可以实现与其他设备的数据共享,且功耗最低。
一个只进行广播的外围设备可以非常省电。不需要被连接或被发现——不需要接受任何来自中央设备的数据,也不用维持庞大的属性数据库以便被发现——只是不断广播有用的数据而已。
广播的间隔或频率是必须考虑的一个因素。

3 可发现

除了仅做广播的外围设备,所有其他的设备都是可发现的。可发现意味着外围设备的广播目标是在此区域的正在扫描的所有中央设备。
可发现有两种类型:有限可发现性和一般可发现性。在于用户交互后,外围设备只能在一小段时间内处于有限可发现状态,其他所有时候将会处于一般可发现状态。
外围设备并不总是处于可发现状态。

4 可连接

可发现和可连接彼此非常类似,都使用广播报文,但服务于不同的目的。可发现的设备通常不与任何其他设备配对,而可连接的设备通常与一个或多个设备绑定,并且只接受来自这些设备的连接。
当设备处于可连接状态,它将接受来自发起设备的连接请求。从本质上讲,一个可连接的外围设备能接受来自任何设备的连接请求报文。为了解决这种全盘接受的方法带来的问题,外围设备上的控制器可以配置为只接受有限的若干中央设备的连接请求。中央设备列表存储在白名单中。

5 公开服务

进入连接,外围设备通常会公开一个或多个服务。每个服务都封装了外围设备中某个组成部分的原子行为。服务通过服务器的属性公开,服务器上属性的集合统称为属性服务库。
属性由通用属性规范(GAP)来组织,其结构如下:
属性数据库中的每个服务都始于一个服务声明,其中定义了服务的类型,紧随其后的是隶属于该服务的每个属性。接下来又是下一个服务的服务声明。
在每个服务中可以包含一个或多个其他服务,在提供更复杂的行为的同时,避免了拓展服务的核心功能。
在每个服务中可以有一个或多个特性。从根本上说,特性是可以访问的一个值。每个特性都有特性声明,用来说明数据到底是什么或者怎样可以访问它;特性也可以包括额外的信息,描述它是如何被格式化或者如何配置的。
上述的服务声明、服务包含、特性声明、特性值和特性描述符等都是属性数据库内的单个属性。因此,外围设备只需要根据它想公开的行为决定需要公开的属性,然后等待客户端来与这些属性交互。

6 特性

特性是服务的基础建筑模块。一个特性即为一个客户端能够交互的值。特性值的格式由特性的类型决定,并最终由一个XML特性规格书文件决定。
特性的行为不在该XML特性规格书中定义,而在服务规范中定义。因此,在一个外围设备里可以有多个类型相同但行为各异的特性。

7 安全事项

外围设备公开的数据可能是一些机密信息或隐私信息,只能将其发送到那些通过了认证的设备。为了确保这一点,属性服务器一旦认为请求达不到当前的安全级别,将拒绝任何有关属性信息的请求。
认证和绑定是由中央设备首先发起的。设备一经验证,连接将被加密,客户端的请求可以被重新发送。外围设备的属性服务器每收到一个请求,首先检查接受请求所需的安全权限。
服务或特性所要求的安全性是有具体实现的服务规范来定义的。

8 为低功耗而优化

对于使用微型电池供电的外围设备,为了延长其使用时间,必须考虑为低功耗操作进行优化。包括确定最佳广播间隔和连接间隔、优化属性方位、选择是否保持连接还是断开重连等。

外围设备使用的典型状态如下:
TI_BLE软件开发者指导11-外围设备_第1张图片

当设备首次启动,外围设备将进入可发现广播状态,在该状态下能够被一个或多个中央设备发现。
在某个时刻,一个中央设备将会连接到外围设备并与之绑定。绑定成功后,外围设备进入可连接广播状态。如果绑定没有发生,外围设备将回到可发现广播态,等待另一个中央设备的连接和绑定。
已绑定的外围设备将执行可连接广播,只有与之配对的中央设备才能连接到该外围设备。它们一旦重新连接就进入了连接状态,中央设备会根据自身意图来管理连接的间隔。
处于连接的外围设备需要明确是该保持连接还是该现在断开?如果选择断开连接,外围设备有可能进入下列两种状态:一是回到可连接广播,即周期性的发送广播报文以便中央设备根据其需要发起重连;二是关闭广播,直到外围设备有数据要发送时再使用定向广播与中央设备重新建立连接。
外围设备上还可能有个“连接”按钮,一旦按下,设备将删除当前绑定信息,重新变为可以被发现的设备。此时,任何与之相连的设备都将被断开,外围设备将返回可发现广播状态。

8.1 可发现广播

在外围设备中,一个优化功耗的根本办法在于为广播和连接精心选择时间的间隔。
一开始,外围设备通常会执行可发现广播,以便让中央设备发现自己。一旦连接成功,该设备只会执行可连接广播。
位于可发现模式时,外围设备希望尽快被发现。设备同时也会广播大量的附加信息。
一个可发现的外围设备更倾向于使用较快的频率发送广播。

8.2 绑定

每当外围设备建立了连接,连接的时间间隔将由中央设备决定。中央设备应该设置合理的连接间隔值。
处于可发现广播状态的外围设备能够以相当快的连接间隔建立连接。
一旦绑定完成,并且中央设备已完成对外围设备的分析,此时应该尽量减少连接的间隔以节省能量。

8.3 可连接广播

断开连接后的外围设备可以周期性的进行广播,以便让中央设备重新发起连接。在这种情况下,广播需要综合考虑多种因素,既要保证中央设备的重连速度,又要考虑外围设备自身的功耗。

8.4 定向广播

一些情况发生时,外围设备可能会选择与中央设备直接连接。对外围设备而言,自事件发生到通知中央设备之间的时间必须尽可能短。最佳选择时使用定向广播。
定向广播对能量有较大损耗,此时的外围设备将以非常快的频率向某个中央设备发送大量的广播报文。如果该中央设备正准备向外围设备发起连接,连接会立即建立,外围设备能够迅速的发送所需数据。
定向广播是外围设备连接中央设备的最快方式。
定向广播不允许设置广播间隔。因为广播报文必须每隔3.75ms在三个广播信道发送一遍。
对于那些需要快速发送数据、但很少处于可连接状态的设备,定向广播将是最佳模式。

8.5 已连接

在连接中,中央设备对于外围设备所使用的时间间隔和延迟具有完全控制权。外围设备则有向中央设备提出要求的权利,可通过L2CAP的信令信道,向中央设备建议更适合的连接参数。
涉及功耗的连接参数主要有两个:连接间隔和从设备延迟。连接间隔并不是最重要的因素,从设备延迟对于外围设备的功耗而言更为关键。增大从设备延迟并不能无限制的提高节能收益:从设备延迟过大,从设备通过降低同步频率所节省的能量会损失在窗口扩展中(时钟不精确)。

8.6 保持连接还是断开

外围设备进入连接之后,实际用例有可能要求数据以随机的间隔执行传输。具有这类用途的外围设备既可以保持连接,又可以断开连接,随后等待有数据时再重新连接。
这里需要判断两个因素:首先外围设备开始广播,中央设备能否在一个合理时间内重连,让用户不至于察觉到连接已经断开;其次,如果保持连接,应该使用多大的连接延迟,电池寿命允许的连接延迟范围又是多少。

9 优化属性

通常,外围设备公开一个或多个服务,中央设备发现这些服务及其特性和描述符。然后,中央设备读取、写入或配置这些特性,从而使用由外围设备提供的服务。外围设备也可以通过实现与特性有关的通知和指示,帮助自己节省能量。
特性和服务是通过属性来描述的,并且通过属性协议来访问。该协议使客户端(位于中央设备)能够访问外围设备的属性,不仅支持属性的读取和写入,而且支持属性的通知和指示。
通过为尽可能多的特性提供通知或指示,外围设备可以帮助自己进一步节能,也为中央设备提供了更多可配置通知或指示的特性。

你可能感兴趣的:(读书笔记,TI-BLE)