蓝牙 att gatt 协议

1 简介

通过ATT层可以读写对端设备的属性,但是属性之间有什么联系、各个属性怎么组合起来提供服务,由上层GATT负责。
读写对端设备的属性,就是ATT的关键词。

2 uuid

uuid 通用唯一识别码缩写,他是128位的,但是我们一般定义 uuid 都是 16位或者32位

即把32位UUID的低96位去掉,就得到32位的UUID;如果32位UUID的高16位全是0,那么它的低16位就是“16位的UUID”:
请添加图片描述

3 属性

作用提供读写功能
请添加图片描述

4 ATT 层与 L2CAP 层的关系

请添加图片描述

5 ATT同时写多属性的方法

Queued writes:排队写入属性值请求分为两个阶段:第一阶段是准备写入请求,也即Client 通过ATT_PREPARE_WRITE_REQ 指令将要写入的一个或多个属性值发送到Server,并通过ATT_PREPARE_WRITE_RSP 指令确认Server 接收到的属性值无误;第二阶段是执行写入请求,也即Client 通过ATT_EXECUTE_WRITE_REQ 指令将之前发送给Server 并经确认无误的属性值立即写入到对应的属性中。比如前面介绍的Write Long Characteristic Values 或Characteristic Value Reliable Writes 过程;

6 GATT架构设计

请添加图片描述
蓝牙设备被称为 Server
一个Server可以含有1个或多个Service
一个Service可以包含其他Service,
一个Service含有1个或多个Characteristic(特性),
一个Characteristic含有性质(Property)、Value;还可以含有Desciptor(描述)。

7 GATT service的定义

一个Service定义,从它的“声明”开始,到下一个Service的声明结束;或一直持续到最大的handle值。
所谓“声明”也就是一个属性,这个属性的type为0x2800或0x2801,表示这是一个首要服务(Primary Service)或次要服务(Secondary Service)。
它的value用来表示“这是什么服务”,即value为某个服务的UUID。
Permissions表示该声明即这个ATT属性是只读的,无需验证、无需授权。从这里可以知道,蓝牙设备能提供什么服务是公开的,它无法隐瞒,别的设备都可以来查询该设备提供什么服务。

在这里插入图片描述

8 GATT的功能

GATT层定义了11项Feature,即它可以做哪些事:

  1. Server Configuration
  2. Primary Service Discovery
  3. Relationship Discovery
  4. Characteristic Discovery
  5. Characteristic Descriptor Discovery
  6. Reading a Characteristic Value
  7. Writing a Characteristic Value
  8. Notification of a Characteristic Value
  9. Indication of a Characteristic Value
  10. Reading a Characteristic Descriptor
  11. Writing a Characteristic Descriptor

Bluetooth GATT介绍

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值