Google Eddystone协议规范深度解析
2025-07-10 03:24:36作者:廉彬冶Miranda
前言
Google Eddystone是一套开源的蓝牙信标协议标准,为物联网设备提供了一种标准化的广播方式。与苹果iBeacon不同,Eddystone支持多种帧类型,使其应用场景更加广泛。本文将深入解析Eddystone协议规范,帮助开发者全面理解其工作原理。
协议基础架构
通用数据元素
所有Eddystone帧类型都必须包含以下PDU数据类型:
- 16位服务UUID完整列表:必须包含Eddystone服务UUID
0xFEAA
,这是为了支持iOS设备的后台扫描功能 - 服务数据:必须使用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看起来是随机变化的,有效保护了用户隐私。
适用场景: 特别适合对安全性和隐私性要求较高的设备应用。
协议实现建议
- 字节序处理:特别注意大端序和小端序的转换
- 帧类型选择:根据应用场景选择合适的帧类型组合
- 广播间隔:合理设置广播间隔以平衡功耗和响应速度
- 安全考虑:敏感应用优先考虑EID帧类型
结语
Google Eddystone协议通过其灵活的帧类型设计和标准化的数据格式,为物联网设备间的通信提供了可靠解决方案。开发者可以根据具体需求选择合适的帧类型组合,实现从简单的URL广播到高安全性的加密通信等各种应用场景。理解这些协议细节将有助于开发出更高效、更安全的蓝牙信标应用。