在BLE中,GATT客户端发现服务端服务的过程与经典蓝牙不同,经典蓝牙会有专门的SDP协议来完成。而BLE中,这个过程会直接在GATT层完成。直接在GATT层完成服务和特征的发现。 相关ATT的协议 GATT层协议基于ATT协议,因此一些Attribute的读写也是用的ATT层的接口,这里先介绍下和服务特征发现有关的ATT层接口 Read By Ty...
属性类型是由蓝牙标准组织所规范,其一般通过128位的UUID来表征一个具体的属性。由于BLE的GATT可以认为是蓝牙标准规范的精简版,所以BLE被允许只传输前面2字节(16位)的UUID,所有的BLE的UUID的基数都是一样的,如下,只有前面两字节不同。 利用2字节(16位)也可以定义65536种属性了。事实上,蓝牙标准组织对这些UUID进行了...
BLE从特征接收GATT通知 BLE是指蓝牙低功耗(Bluetooth Low Energy),它是一种无线通信技术,用于在短距离范围内传输数据。BLE主要用于物联网设备、传感器和移动设备之间的通信。 特征(Characteristic)是BLE中的一个概念,它代表了BLE设备上的一个属性或数据项。特征可以包含一个或多个值,每个值都有一个唯一的标识符(UUI...
GATT 的全名是Generic Attribute Profile(姑且翻译成:普通属性协议),它定义两个 BLE 设备通过叫做 Service 和 Characteristic 的东西进行通信。GATT 就是使用了 ATT(Attribute Protocol)协议,ATT 协议把 Service, Characteristic遗迹对应的数据保存在一个查找表中,次查找表使用 16 bit ID 作为每一项的索引。 一旦两个...
BLE-GATT浅析 前言 BLE的应用范围越来越广,特别是在移动智能设备上。现在低功耗蓝牙(BLE)连接都是建立在 GATT (Generic Attribute Profile) 协议之上。GATT 是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。
GATT中最上层是Profile,Profile由一个或多个服务(Service)组成 服务是由Characteristics组成,或是其他服务的引用(Reference) Characteristic包含一个值(Value),可能包含该Value的相关信息 2.2.1 Service Service是[数据]和与之关联的[完成某个特定功能的行为]/[特性]的集合 在GATT中,一个服务由服务定义(Service Definti...
GATT协议中的Service和Characteristic需要遵循ATT这种数据结构,ATT会管理这些数据并提供查找方法。 GATT是建立在GAP基础之上发挥作用的,就是两个BLE设备只有通过GAP建立连接之后才能用GATT进行通信。上面说了扫描回复数据交互方式是独占的,所以GATT通信只允许是一个外设和一个中心连接。如果两个外设想要通信,唯一的方式就是...
属性协议(Attribute Protocol)简称ATT。是应用层使用的一种数据交互协议, 它是GATT和GAP的基础。 具体分以下几个部分: 1)Opcode: (1)Opcode PDU:代替某种命令,不同的命令对应的Attribute Parameters格式内容不同,bit 0-5位表示; (2)Command:表示PDU Type 是否是命令(Command ),bit 6表示; ...
GATT 连接的网络拓扑 下图说明了蓝牙低功耗设备在连接环境中的工作方式。 外围设备一次只能连接到一个中央设备,但中央设备可以连接到多个外围设备。 如果需要在两个外围设备之间交换数据,则需要通过中央设备中转。 一旦建立起了连接,通信就是双向的了。对比前面的 GAP 广播的网络拓扑,GAP 通信是单向的。
5. BLE通信基于GATT,GATT是一种属性传输协议,负责蓝牙设备之间的数据交换。6. GATT通信结构简单,可以类比为XML格式,包含服务(Service)、特征(Characteristic)和描述符(Descriptor)三个层次。7. 例如,小米手环包含三个服务,每个服务包含多个特征,特征值(Value)存储实际数据,描述符提供对Value的额外信息...