蓝牙学习六(GATT)

1.简介

        GATT-Generic Attribute profle-通用属性配置文件。GATT层是传输真正数据所在的层。包括了一个数据传输存储架构以及其基本操作GATT用来规范attribute中的数据内容,并运用group(分组)的概念对attribute进行分类管理。没有GATT,BLE协议栈也能跑。但互联互通就会出问题,也正是因为有了GATT和各种各样的应用profile,BLE摆脱了Zigbee等无线协议的兼容性困境,成为了出货量最大的2.4G无线通信产品。

2.角色

        GATT定义了两类角色服务端(server)和客户端(client),GATT角色无需和GAP角色绑定,但是可能由更高层的规范进行指定。

        除了GAP定义角色外(GAP定义广播者扫描者外围设备中央设备),BLE还定义了另外2种角色:GATT服务端GATT客户端。这两种角色完全独立于GAP的角色。提供数据的设备被称为GATT服务端访问GATT服务端而获得数据的设备被称为GATT客户端。即一个设备可以同时作为客户端和服务端。通常情况下,外围设备为服务端,提供数据。手机作为客户端,访问数据。

3.GATT的规范层次

         一个GATT服务器通过一个称为属性表的表格组织数据,这些数据就是用于真正发送的数据。

3.1属性(Attribute)

         属性协议(Attribute Protocol)简称ATT。是GATT和GAP的基础

        就属性来说,一个属性其实就是一条数据,属性是BLE数据提供单元,也是蓝牙空中传播数据的最上层,BLE开发过程中接触最多的就是这一层。

        一个属性包含了句柄UUID。数据的结构如下图:

  

3.1.1Attribute Handle

         属性句柄(Attribute Handle)占2个字节,犹如指向属性实体的指针,对端设备可以通过属性句柄来访问该属性

        属性句柄值的范围:0x0000 ~ 0xFFFF

3.1.2 Attribute Type

        属性类型(Attribute type)是用来区分当前属性是服务项还是特征值等,一般用UUID来表示。

        UUID(universally unique identifier,通用唯一识别码)是一个软件构建标准,并非BLE独有的概念,一个合法的UUID,一定是随机的,全球唯一的,不应该出现两个相同的UUID。但是在一个GATT表中可能有许多属性,这些属性可能有相同的UUID

       分类

        BLE的属性类型主要有四个大类

        Primary Service(首要服务项

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

t_guest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值