首页
/ Google Eddystone协议规范深度解析

Google Eddystone协议规范深度解析

2025-07-10 03:24:36作者:廉彬冶Miranda

前言

Google Eddystone是一套开源的蓝牙信标协议标准,为物联网设备提供了一种标准化的广播方式。与苹果iBeacon不同,Eddystone支持多种帧类型,使其应用场景更加广泛。本文将深入解析Eddystone协议规范,帮助开发者全面理解其工作原理。

协议基础架构

通用数据元素

所有Eddystone帧类型都必须包含以下PDU数据类型:

  1. 16位服务UUID完整列表:必须包含Eddystone服务UUID 0xFEAA,这是为了支持iOS设备的后台扫描功能
  2. 服务数据:必须使用16位UUID数据类型的Eddystone服务UUID 0xFEAA

帧类型编码机制

Eddystone帧类型通过服务数据第一个字节的高4位进行编码:

帧类型 高4位值 字节值
UID 0000 0x00
URL 0001 0x10
TLM 0010 0x20
EID 0011 0x30
保留字段 0100 0x40

低4位保留供未来使用,必须设置为0000。

重要说明:虽然蓝牙核心数据类型在标准中定义为小端序,但Eddystone服务数据中的多值字节都采用大端序。

帧类型详解

Eddystone-UID帧

核心特性

  • 广播一个不透明的16字节信标ID
  • 由10字节命名空间和6字节实例组成

应用场景

  • 将设备映射到外部存储中的记录
  • 命名空间部分可用于对特定信标集进行分组
  • 实例ID标识组中的单个设备

优化策略: 这种ID划分方式可以优化BLE扫描策略,例如仅基于命名空间进行过滤。

Eddystone-URL帧

核心特性

  • 使用压缩编码格式广播URL
  • 形成Physical Web的基础架构

技术优势

  • 采用压缩编码可在有限的广播数据包中容纳更多内容
  • 继承并优化了UriBeacon格式的所有经验

应用示例: 当信标广播URL https://goo.gl/Aq18zF时,任何接收此数据包的客户端都可以选择访问该URL。

Eddystone-TLM帧

核心特性

  • 广播信标本身的遥测信息
  • 包含电池电压、设备温度等关键参数
  • 提供广播数据包计数

应用价值: 这些数据对于设备维护和状态监控至关重要,可以帮助运维人员及时了解设备状态。

Eddystone-EID帧

安全特性

  • 广播加密的临时标识符
  • 标识符会按照注册时确定的速率定期更改
  • 只有注册的Web服务才能解析广播的临时ID

隐私保护: 对于其他观察者来说,这些ID看起来是随机变化的,有效保护了用户隐私。

适用场景: 特别适合对安全性和隐私性要求较高的设备应用。

协议实现建议

  1. 字节序处理:特别注意大端序和小端序的转换
  2. 帧类型选择:根据应用场景选择合适的帧类型组合
  3. 广播间隔:合理设置广播间隔以平衡功耗和响应速度
  4. 安全考虑:敏感应用优先考虑EID帧类型

结语

Google Eddystone协议通过其灵活的帧类型设计和标准化的数据格式,为物联网设备间的通信提供了可靠解决方案。开发者可以根据具体需求选择合适的帧类型组合,实现从简单的URL广播到高安全性的加密通信等各种应用场景。理解这些协议细节将有助于开发出更高效、更安全的蓝牙信标应用。