BLE ATT和GATT小结

本文详细介绍了蓝牙协议中的ATT(Attribute Protocol)与GATT(General Attribute Profile)。ATT协议负责定义并暴露属性给客户端,而GATT则构建在此基础上,定义了服务框架和服务发现、读写等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、ATT(Attribute Protocol)协议

ATT协议允许服务器设备将一组属性及其相关值暴露给对等的客户端设备。服务器公开的属性可以被客户端发现,读取和写入,并且可以由服务器指示和通知。
ATT协议定义了两种角色:服务器角色和客户端角色。

1.1 属性

属性(Attribute) 类似于C语言中的数据结构,其定义了一组属性的信息,并将这些属性信息暴露给对等的客户端,供客户端对服务器端暴露的属性进行访问。
属性由四个部分组成:属性句柄(Attribute Handle)、属性类型(Attribute Type)、属性值(Attribute Value) 和 属性权限(Attribute Permissions) 。其逻辑结构如下所示:
这里写图片描述

1.1.1 属性句柄

属性句柄是对某一特定属性的索引;是一个16 bits的值,取值范围是:0x0001~0xFFFF;
通过增加属性句柄值来排序属性;

1.1.2 属性类型

属性类型由UUID定义,每一个UUID标识属性代表的内容分;是描述属性值的UUID;

1.1.3 属性值

属性值是由属性类型描述并由属性句柄索引的数据;其长度是可变的;当长度过大时,可以使用多个PDUs来发送;

1.1.4 属性权限:

属性权限是访问权限,加密权限,认证权限和授权权限的组合。
由GATT profile、更高层profile确定;
由服务器用来确定是否允许对给定属性进行读或写访问;
访问权限:
Readable/Writeable/Readable and writable(可读/可写/可读写)
加密权限:
Encryption required/No encryption required(需加密/不需加密)
认证权限:
Authentication Required/No Authentication Required(需验证/无需验证)
授权权限:
Authorization Required/No Authorization Required(需授权/无需授权)

1.2 ATT PDU

Attribute PDU的格式如下所示:
这里写图片描述

参数说明:

Opcode:
bit 0-5:操作属性的方法
bit 6:Command 标识位
bit 7:Authentication Signature标识位
Attribute Parameters:
如果Attribute Opcode中身份验证签名标记位为0,则X = 1;
如果Attribute Opcode中身份验证签名标记位为1,则X = 13;
Authentication Signature:
属性操作码和属性参数的可选身份验证签名

2 GATT

GATT(通用属性配置)使用ATT协议定义了服务框架。该框架定义服务的程序和格式以及其特征(characteristics),定义的程序包括发现,读取,写入,通知和指示特性,以及配置特性的广播。
GATT配置文件旨在供应用程序或其他配置文件使用,以便客户端可以与服务器进行通信。服务器包含许多属性,GATT配置文件定义了如何使用属性协议来发现,读取,写入和获取这些属性的指示,以及配置属性的广播。
Client:向服务器发起initiates commands and requests,可以接收来自服务器的响应、indications and notifications。
Server:接收来自客户端的commands and requests并发送responses, indications and notifications给客户端。
GATT Profile使用ATT在设备之间以命令,请求,响应,指示,通知和确认的形式传输数据。这些数据包含在ATT 的PDU中。

小结

ATT协议定义了一组属性,并将这些属性暴露出来给客户端,而GATT更像是基于这些属性,构建一种服务端与客户端之间通信的协定,让双方基于这种协定能够正常的通信。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值