如何快速实现BLE信标

今日头条

1147人已加入

描述

蓝牙信标支持基于邻近的上下文感知,但在产品上实施信标可能会带来一些有趣的设计和开发挑战。首先,没有官方的蓝牙特别兴趣组(SIG)信标标准;相反,一些伪标准正在出现。然后是范围确定、对整体功率预算的影响以及确保安全性的问题。

在定义了信标并简要介绍了来自 Apple、Google 和 Radius Networks 的竞争信标方法之后,我们将讨论如何最好地实施信标以应对这些设计挑战。

什么是信标?

信标是一种小型、电池供电的无线设备,它使用低功耗蓝牙 (BLE) 来宣传其存在和服务。它通过向其附近的兼容设备(例如智能手机)广播(广告)信标标识符来做到这一点。该标识符还包含少量可自定义的嵌入数据。例如,智能手机上的 BLE 扫描仪会定期扫描广告数据包,然后对其进行解码以确定信标设备的位置和服务并进行相应的交互。

新兴的伪标准利用了 BLE 的一些原生设施和蓝牙的广泛使用。比较突出的是 Apple 的 iBeacon、Google 的开源 Eddystone 和 Radius Networks 的 AltBeacon(参见表 1)。

BLE

表 1:操作系统对 BLE 技术和信标伪标准的支持。

接近感知应用程序依赖于知道哪些信标在附近。但是信标的 RF 范围可以从 <1 米到 500 m 不等,具体取决于发射功率,因此仅根据接收信标标识符数据包来确定接近度是不切实际的。在实践中,通过将信标的广告数据包中校准的发射功率数字与接收信号强度指示器 (RSSI) 进行比较来近似距离。环境和其他因素会影响信号强度,但对于接近应用来说,大致距离通常就足够了。蓝牙规范的未来版本可能会包含多天线到达角 (AoA) 和出发角 (AoD) 功能,以准确确定另一个蓝牙设备的空间位置。 信标服务和数据包结构 一个信标可以包括多个服务。当需要广告服务时,其通用唯一标识符 (UUID) 会在设备的广告数据包中广播。随后,当蓝牙扫描仪接收到广告数据包时,操作系统会将 UUID 注册到特定的应用程序,该应用程序会执行后续操作。

广告和数据包的格式相同(图1)。信标遵循标准的广告数据包格式,并将数据有效负载嵌入到伪标准的预定义结构中。这允许操作系统将信标的广告数据包与其他蓝牙广告数据包区别对待。

BLE

图 1:数据包和广告包的 BLE 包格式相同。

BLE 设备以可选的时间间隔传输广告数据包,从 20 毫秒到几分钟不等。每次设备发布广告时,都会在所有三个广告通道上发送相同的数据包,这使得扫描仪更有可能将其拾取。

在广告包中,数据有效载荷被构造为一个或多个(长度、类型、数据)三元组。长度字段定义后续类型和数据字段的组合大小。其后是类型字段,它指定数据是名称、服务 UUID、通用资源标识符 (URI) 还是许多其他已定义数据类型之一。接下来是数据包。

传输单个信标数据包最多可能需要 376 µs,但可能会更短,具体取决于伪标准,并且发生这种情况的频率是功耗和可接受的应用程序延迟之间的权衡。

设计信标产品的注意事项

在其最基本的形式中,信标可以使用无线片上系统 (SoC) 设备或模块以及电池和机械外壳来实现。更典型地,信标将包括提供功能性用户交互的其他组件以及传感器。预先认证的模块方法提供了最快的上市时间,避免了大量的前期工程投资和 RF 合规性测试,而分立 SoC 设计可以节省尺寸或成本(图 2)。

BLE

图 2:典型的预认证 BLE 信标模块和蓝牙 SoC 参考设计。

出于电源管理的原因,选择一个经过现场验证的、主动管理睡眠模式的 BLE 堆栈至关重要:每 100 毫秒仅广播 1 毫秒意味着,在 99% 的时间里,它应该处于睡眠状态。此外,最好使用可以定义多种信标帧类型(iBeacon、Eddystone-URL 等)及其时序参数的堆栈。然后堆栈可以自主地交错这些,而无需运行更耗电的应用程序代码。

其他重要的软件功能包括作为故障安全机制的看门狗定时器、用于设置信标开/关周期以保持电力的实时时钟,以及支持固件更新的能力。

信标应用程序代码可以相对简单,并使用高级编程语言(如 BGScript)实现(图 3)。这种方法的好处是开发人员可以专注于应用程序,而不是底层协议栈的时间和复杂性。

BLE

图 3:BGM111 BLE 模块的 BGScript iBeacon 示例代码。

此示例代码支持 BGM111 模块。代码的广告包被构造为使用 Apple AirLocate Service UUID 74278bda-b644-4520-8f0c-720eaf059935,主要和次要字段为 0x00,这意味着它们未设置。0xD0 的校准 Tx 功率值与一米处的 –48 dBm 相关。

信标的发射功率和信标间隔在电池寿命和权衡所需范围和接近精度方面发挥着重要作用(图 4)。更高的发射功率提供更远的范围和更广的覆盖范围,但发射器会随着每个信标事件更快地消耗电池电量。

BLE

图 4:信标的平均电池寿命由发射功率及其发射/睡眠占空比决定。

在性能方面,较短的信标间隔意味着有更多的信标事件要捕获,提供更多的运动分辨率,因此,更好的定位精度。更长的间隔意味着信标的电池寿命更长,但被捕获的机会更少,尤其是被移动的智能手机捕获。

安全信标仅广播,因此它们不收集数据。然后,范围内的智能手机通常通过 Wi-Fi 或其蜂窝网络访问广播服务。因此,信标不会构成任何额外的安全威胁或攻击面。对于信标提供者,当附加到信标具有货币价值时,例如通过奖励积分,必须注意拒绝来自同一设备的持续请求。这是使用时间戳和其他技术完成的。这同样适用于信标的设备管理功能,其中使用标准 BLE 安全功能(例如配对和身份验证)来限制对内部功能的访问。

结论

很难想象在不久的将来我们都不会被信标应用所触动。事实上,它们可能是下一个杀手级应用。数百个行业的产品设计师在采用无线技术时将面临许多新挑战。选择具有创新技术、经过市场验证的堆栈和出色的客户支持的合适供应商将有助于确保开发人员拥有流畅的体验和卓越的最终产品。

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分