谁能为我定义GATT和ATT之间的区别是什么?我没能理解。
我知道它们都是处理 BLE 服务的通用协议。但并没有真正理解它。请解释。
谢谢!
3 回答
您可以在此处找到蓝牙规范: 规范采用的文档
查看核心版本 4.2,规范卷 3 - 核心系统包 [主机卷]。ATT 在 F 部分中定义,GATT 在 G 部分中定义。
ATT(第 2160 页):“本规范定义了属性协议;用于在对等设备上发现、读取和写入属性的协议。”
GATT(第 2207 页):“本规范定义了通用属性配置文件,该配置文件描述了使用属性协议来发现服务以及在对等设备上读取和写入特征值的服务框架。”
所以是的,GATT 使用 ATT 作为其传输协议在设备之间交换数据,并且规范详细描述了这些协议中的每一个是如何定义的。大多数应用程序开发人员最关心的是 GATT,它也用于定义一些 BLE 库的 API。
ATT 是一种低得多的机制,它基本上定义了如何传输一个数据单元(一个属性)。GATT 建立在 ATT 之上,并定义了更高级别的服务是如何组成的以及在这些服务上运行的框架。
ATT 是 GATT 的基石。服务、特征和描述符最终都是属性。
都具有相同的格式:处理程序、类型/UUID 和值。
现在,特征也是一个属性,而是一种特定的值格式
GATT 说这个设备有 xxx 服务,具有 yyy 和 zzz 特性,是 ATT 的上层。有关低功耗蓝牙的更多信息,请查看本文
https://atadiat.com/en/e-bluetooth-low-energy-ble-101-tutorial-intensive-introduction/