本文主要是介绍GAP,ATT,GATT协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
GAP功能
GAP服务包括设备发现、连接模式、安全性、身份验证、关联模型和服务发现。
GAP定义了蓝牙设备的基本需求:
- 对于BR/EDR,它定义了一个蓝牙设备,包括无线电、基带、链接管理器、L2CAP和服务发现协议功能
- LE定义了物理层、链路层、L2CAP、安全管理器、属性协议和通用属性配置文件.GAP定义了四个特定角色:Broadcaster(广播), Observer(观察)、从机和主机
Attribute Protocol(ATT:属性协议)
Attribute由4个字段表示:类型,句柄,权限,值
类型:由一个128bits的UUID表示
句柄:唯一的无符号数
权限:决定客户端是否可以读取和修改资源
值:可以是定长也可以是变长
Attribute methods (方法)
方法有6种:Commands Requests Responses Notifications Indications Confirmations
Commands:由客户端发给服务端,并不作响应
Requests :由客户端发给服务端,并作响应
Responses:收到Requests(请求)后,服务的将响应发给客户端
Notifications :服务器主动发送给客户端,没响应
Indications :服务器发送给客户端,有响应
Confirmations :客户端发送给服务器以作为对指示(Indications)的确认
(客户端:一般指手机。服务端:指存储各种数据的设备)
因为有6种方法,所以就有6种Protocol Data Units(PDU 协议数据单元)
PDU:是指将转发到较低层(即逻辑链路控制和适配协议(L2CAP)层)的数据包,然后将其封装为通过物理层发送链接(或分别发送到上层)
PDU如下所示
ATT协议与BLE服务器数据库中数据(属性)的表示有关,并定义了它们上的事务活动(无论成功与否)。这为较低堆栈协议的数据包分段和封装提供了基础
Generic Attribute Profile(GATT)
Profile如下图所示
一个配置文件可以含有多个服务,每个服务又由各自的特征组成。
服务
服务可以由一个或多个特征,服务使用UUID与其他服务区别开来,对于通用的服务使用16bits的UUID,对于自定义服务则使用128bits的服务。
特征
每个特征包含特征属性,特征值,描述符
特征属性(上图中的properties)由以下属性组成
属性类型为:“特征“
属性值由3个位域组成:特征UUID(2/16字节),特征属性(1字节),特征句柄(2字节)
属性权限必须是可读的,并且不需要身份验证或授权
- 特征属性位域显示了如何使用特征值或其描述符可以访问。它可以是广播,读取,无响应写入,写入,通知,指示,已认证签名写入或扩展属性
特征值(上图中的value)
属性类型与特性声明中的UUID相同。
属性值是特征值。
属性权限是特定于实现的
描述符
特征描述符是可选的,用于提供有关特征的附加信息
这篇关于GAP,ATT,GATT协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!