BLE ATT(Attribute Protocol)
BLE属性协议,它是处于L2CAP协议层与GATT之间的一层属性操作协议。
ATT协议在BLE协议框架
在了解ATT前有必要先了解GATT,GATT(Generic Attribute Profile),通用属性协议,在GATT之上即是我们的应用程序,通过GATT统一属性格式和属性访问接口,对于APP开发来讲操作对象就变成了对一个个定义的属性进行读写。
BLE协议数据交换框架
对于GATT本身,可以简单的理解为一种根据一定格式规范组织的数据表,例如:
我们可以看到他主要由3部分组成:Handle、Attribute Type、Attribute Value其中Handle是作为索引的依据类似数组的下标,Attribute Type是根据UUID而定义的128bit标识(实际传输可以只传递16bit),Attribute Value即属性值
ATT是作为完成对上述数据表具体的操作,它的操作对象,就是每一条属性值
GATT是对上述表的整体维护,它的操作对象是整个属性表
ATT 协议
Attribute Opcode中 Bit5-0用于标识每一条ATTPDU类型,bit6用于标识该PDU是否为Command(当该标志设置为1,表示这是一个命令),bit7用于标识是否含有Authentication Signature字段(仅仅在writecommand 中包含该字段)
Attribute Opcode Summary
上述即是BLE中ATT层协议规范PDU,对于GATT所有数据交互,均通过上述ATT PDU作为载体实现