BLE-1-GATT

BLE-1-GATT

参考:《GATT Profile 简介

1,Overview

从《BLE-0-Get Starting》了解到,GATT是基于ATT协议定义的一种通信规范(Profile);
GATT 是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。

2,GAP与GATT

两个BLE设备进行数据通信,必须经过“发现与连接”阶段和“数据传输”阶段的两个阶段
“发现与连接”阶段: 使用GAP(Generic Access Profile)这个规范
“数据传输”阶段:使用GATT(Generic Attibute)这个规范

3,GAP

3.1,角色
GAP 给设备定义了若干角色,其中主要的两个是:外围设备(Peripheral)和中心设备(Central)。
外围设备:这一般就是非常小或者简单的低功耗设备,用来提供数据,并连接到一个更加相对强大的中心设备。例如小米手环。
中心设备:中心设备相对比较强大,用来连接其他外围设备。例如手机等。
3.2,广播过程
一般来说,外围设备发送Advertising Data Payload(广播数据)而中心设备发送 Scan Response Data Payload(扫描回复)
adv_proc

4,数据通信过程

GattMasterSlaveTransactions

5,几种说法

说法一:如果通信是单向(外围设备-》中心设备),可以不经过连接;双向通信必须要连接走GAPP
=》即使用GAP的广播即即可,苹果的iBeacon应用
BroadcastTopology
说法二:一个外围设备可以被多个中心设备连接吗?
不可以!
GATT 连接是独占的。也就是一个 BLE 外设同时只能被一个中心设备连接。一旦外设被连接,它就会马上停止广播,这样它就对其他设备不可见了。当设备断开,它又开始广播。
说法三:一个中心设备可以连接多个外围设备吗?
可以!
一个外设只能连接一个中心设备,而一个中心设备可以连接多个外设
ConnectedTopology


Comments are closed.
TOP