蓝牙低功耗(BLE)技术详解与实践
1. GATT 数据层次结构
GATT(通用属性配置文件)定义了数据格式,具有配置文件(Profiles)、服务(Services)和特征(Characteristics)的层次结构。最顶层是配置文件。
1.1 配置文件(Profiles)
配置文件定义了多个设备之间使用 BLE 进行通信的特定方式,包括涉及设备的角色和一般行为。例如,标准的健康温度计配置文件定义了温度计设备(传感器)和收集器设备的角色。温度计设备测量温度,收集器设备从温度计接收温度测量值和其他数据。该配置文件指定了温度计必须实例化的服务(健康温度计服务和设备信息服务),并表明该配置文件的预期用途是在医疗保健应用中。
配置文件并不存在于 BLE 设备上,而是由 BLE 设备实现的规范。官方采用的 BLE 配置文件列表可在 bluetooth.com/specifications/gatt 上获取。在实现自己的 BLE 设备时,检查是否有符合产品需求的标准配置文件是个好主意。如果有,将受益于与支持该标准的其他产品的互操作性,节省设计新配置文件的时间。
1.2 服务(Services)
服务是描述 BLE 设备部分行为的特征集合。例如,健康温度计服务提供来自温度计设备的温度数据。一个服务可以有一个或多个特征,并通过 UUID 进行区分。官方采用的 BLE 服务具有 16 位 UUID,健康温度计服务被分配的编号是 0x1809。你可以通过赋予 128 位 UUID 来创建自己的自定义服务。
服务由 BLE 设备进行广告宣传。官方采用的 BLE 服务列表可在 bluetooth.com/speci