经典蓝牙 BLE GAP GATT ATT Characteristic Service UUID 基本概念解说
本帖最后由 sunsili 于 2022-9-9 18:06 编辑蓝牙BLEGAP GATT ATT Characteristic Service UUID 基本概念解说
经典蓝牙®
蓝牙经典无线电,也称为蓝牙基本速率/增强数据速率 (BR/EDR),是一种低功耗无线电,可通过 2.4GHz 未授权工业、科学和医疗 (ISM) 频段的 79 个信道传输数据。支持点对点设备通信,Bluetooth Classic 主要用于启用无线音频流,并已成为无线扬声器、耳机和车载娱乐系统背后的标准无线电协议。蓝牙经典无线电还支持数据传输应用程序,包括移动打印。
低功耗蓝牙® (BLE LE)
低功耗蓝牙 (BLE LE) 无线电专为极低功耗运行而设计。蓝牙 LE 无线电在 2.4GHz 未经许可的 ISM 频带中通过 40 个通道传输数据,为开发人员提供了极大的灵活性来构建满足其市场独特连接要求的产品。蓝牙 LE 支持多种通信拓扑,从点对点扩展到广播,以及最近的网状网络,使蓝牙技术能够支持创建可靠的大规模设备网络. 虽然最初以其设备通信能力而闻名,但蓝牙 LE 现在也被广泛用作设备定位技术,以满足对高精度室内定位服务日益增长的需求。蓝牙 LE 最初支持简单的存在和接近功能,现在支持蓝牙® 测向以及很快的高精度距离测量。
低功耗蓝牙 (LE)蓝牙经典
频带2.4GHz ISM 频段(使用 2.402 – 2.480 GHz)2.4GHz ISM 频段(使用 2.402 – 2.480 GHz)
频道2 MHz 间隔的 40 个通道
(3 个广告通道/37 个数据通道)79 个通道,间隔为 1 MHz
渠道使用跳频扩频 (FHSS)跳频扩频 (FHSS)
调制GFSKGFSK、π/4 DQPSK、8DPSK
数据速率LE 2M PHY:2 Mb/s
LE 1M PHY:1 Mb/s
LE 编码 PHY (S=2):500 Kb/s
LE 编码 PHY (S=8):125 Kb/sEDR PHY (8DPSK):3 Mb/s
EDR PHY (π/4 DQPSK):2 Mb/s
BR PHY (GFSK):1 Mb/s
发射功率*≤ 100 毫瓦 (+20 dBm)≤ 100 毫瓦 (+20 dBm)
接收灵敏度LE 2M PHY:≤-70 dBm
LE 1M PHY:≤-70 dBm
LE 编码 PHY (S=2):≤-75 dBm
LE 编码 PHY (S=8):≤-82 dBm≤-70 dBm
数据传输异步
面向
连接
同步面向连接异步无连接同步无连接
同步无连接异步面向
连接 同步面向连接
通信拓扑点对点(包括微微网)
广播
网格点对点(包括微微网)
定位特点存在(广告)
接近度(RSSI)
方向(AoA/AoD)
距离(即将到来)没有任何
* 设备不得超过对设备销售或预期运行地点具有管辖权的监管机构设置的最大允许发射功率电平。实施者应该意识到,在一组给定的规定下允许的最大发射功率电平对于所有调制模式可能并不相同。
更多详情参阅:https://www.bluetooth.com/learn-about-bluetooth/tech-overview/
static/image/hrline/line2.pngstatic/image/hrline/line2.pngstatic/image/hrline/line2.png
蓝牙BLEGAP GATT ATT Characteristic Service UUID 基本概念解说
1、Generic Access Profile(GAP)
用来控制设备连接和广播,GAP使你的设备被其他设备可见,并决定了你的设备是否可以或者怎样与合同设备进行交互。
2、Generic Attribute Profile(GATT)
通过BLE连接,读写属性类数据的Profile通用规范,现在所有的BLE应用Profile都是基于GATT的。
GATT(Generic Attribute Profile),描述了一种使用ATT的服务框架 该框架定义了服务(Server)和服务属性(characteristic)的过程(Procedure)及格式 Procedure定义了characteristic的发现、读、写、通知(Notifing)、指示(Indicating) 及配置characteristic的广播GATT可以被Application或其他Profile使用 其协议栈如下图
--------------- ---------------
| Application | <----> | Application |
--------------- ---------------
|Attribute | | Attribute |
|Protocol | <----> | Protocol |
--------------- ---------------
| L2CAP | <----> | L2CAP |
--------------- ---------------
|Controller | <----> |Controller |
--------------- ---------------
GATT可以配置为如下两种角色(Role)
- Client : 命令、请求发起方
- Server : 命令、请求接收方
角色配置实例如下
_________ / ======= \ / __________\ | ___________ | Request /\
| |Computer | | ----------> / / | |(Client) | |
|| <----------/ / Sensor(Server)
| |_________| | Response/ / \=____________/ \
/ / """"""""""" \ / ::::::::::::: \ (_________________)
Computer是一个温度服务客户端, Sensor是温度服务服务器 Computer向Sensor发起Procedure来读Sensor的值
GATT对下层的需求如下
- Physical Link : 使用GAP Channel Establishment建立的ATT Bearer
- GATT Role : 不依赖于Coontroller角色(Master/Slave)
- Security : 对于BLE,Security Features(Authorization、Authentication、Encryption)是可选的
对于BR/EDR, Encryption是强制的
- TX order : GATT中的多字节字段,采用Least Significant octet先发送(Little Endian)
GATT指定了数据交互的结构(Structure) 这个结构体定义了一些基本元素,如Service、Characteristic 这些元素存在于Attribute中
GATT中最上层是Profile,Profile由一个或多个服务(Service)组成服务是由Characteristics组成,或是其他服务的引用(Reference) Characteristic包含一个值(Value),可能包含该Value的相关信息
3、Attribute Protocol (ATT)
GATT是基于ATTProtocol的,ATT针对BLE设备做了专门的优化,具体就是在传输过程中使用尽量少的数据,每个属性都有一个唯一的UUID,属性将以characteristics and services的形式传输。
4、Characteristic
Characteristic可以理解为一个数据类型,它包括一个value和0至多个对次value的描述(Descriptor)。
5、Descriptor
对Characteristic的描述,例如范围、计量单位等。
6、Service
Characteristic的集合。例如一个service叫做“Heart Rate Monitor”,它可能包含多个Characteristics,其中可能包含一个叫做“heart ratemeasurement”的Characteristic。
7、UUID
唯一标示符,每个Service,Characteristic,Descriptor,都是由一个UUID定义。UUID是16bits
页:
[1]