蓝牙5.2新特性 Enhance ATT

简介: 了解Enhance ATT之前先回顾一下BLE的ATT,BLE两个设备连接之后,GATT的client端如何知道server端支持了哪些profile、服务,这个就需要ATT, ATT层提供了标准机制、协议、帧格式,用来发现读、读取、写入对端设备的属性,ATT有client 和serve两个角色。在ATT的下层是L2CAP,位于hci的上层,L2CAP提供了多路通道的复用,ATT层、SM层的数据都需要经过L2CAP层,L2CAP层通过标志位来区分不同的协议层的数据包。

什么是Enhance ATT

   Enhance ATT是蓝牙5.2引入的一种新特性,是对ATT和L2CAP上做了改进,一方面使得多个应用的ATT可以并发进行处理,而不用各个应用分时处理,另一方面Enhance ATT可以使用一个数据包来传输多个服务特征数据的一个机制。

BLE协议栈

Enhance ATT简介

   了解Enhance ATT之前先回顾一下BLE的ATT,BLE两个设备连接之后,GATT的client端如何知道server端支持了哪些profile、服务,这个就需要ATT, ATT层提供了标准机制、协议、帧格式,用来发现读、读取、写入对端设备的属性,ATT有client 和serve两个角色。
   在ATT的下层是L2CAP,位于hci的上层,L2CAP提供了多路通道的复用,ATT层、SM层的数据都需要经过L2CAP层,L2CAP层通过标志位来区分不同的协议层的数据包。L2CAP负责对数据进行分包和重组,同时还有重传、流控、错误检查等。

Enhance ATT的使用

   Enhance ATT主要是对ATT和L2CAP上做了改进,在L2CAP上加入了新的流控模式,在该模式上建立ATT就称之为 Enhance ATT,也称为EATT。EATT 不仅可以用在BLE上,而且还可以使用在经典蓝牙BR/EDR上。

  • L2CAP上的改进

  使用L2CAP_CREDIT_BASED_CONNECTION_REQ 命令,在两个设备之间创建并配置L2CAP Channel,Enhance ATT模式可以使两个设备之间建立最多5个L2CAP通道,并且是动态的,这样可以为上层ATT带来更多的灵活性,可以同时支持5个上层通道,一些并发执行的应用就可以使用EATT来进行传输。

  例如,这在可能有多个应用程序与低功耗蓝牙设备接口的智能手机上非常有用。通过利用EATT,在进行另一个应用程序的ATT事务时,一个应用程序的属性事务不会被阻止,从而实质上允许不同的应用程序与Bluetooth Low Energy设备并行交互,并有可能减少延迟。

  Enhance ATT承载的ATT_MTU应设置为两个设备的最低MTU字段值;这些值来自L2CAP_CREDIT_BASED_CONNECTION_REQ和L2CAP_CREDIT_BASED_CONNECTION_RSP信令数据包或最新的L2CAP_CREDIT_BASED_RECONFIGURE_REQ数据包。

L2CAP改进

  • ATT上的改进
       ATT上主要是支持元组的ATT数据的读取和通知
    master端可以通过ATT_READ_MULTIPLE_VARIABLE_REQ命令来读取多个handle的特征值,设备端可以使用一包数据将所有handle的数据全部返回给master。
    slaver端同样也可以通过ATT_MULTIPLE_HANDLE_VALUE_NTF命令来通知master端,将多个handle的数据一次性发送给master端。

ATT上的改进

   例如一个温湿度传感器可以一次性将温度、湿度、电量、设备信息等多个handle的特征值发送给手机端,而不是每个特征逐个发送。 手机端也可以一次性读取多个温度、湿度、电量、设备信息多个特征值,而不用逐条读取。

Enhance ATT的优势

  EATT 的主要优势是可以支持并发的事件操作,允许来自不同应用程序与ATT 相关的数据封包进行逻辑链路控制和适配协议(L2CAP) 数据封包交错放置,并允许在连接过程中改变ATT 最大传输单元(MTU) 的大小。若一个装置上同时有多个应用程序使用低功耗蓝牙堆栈,它们或会暂时互相阻挡,而EATT 这些改进可以减少这些情况,从而减少一个或多个应用程序的点对点延迟,并且改善响应性能,提供更好的用户体验。与原始ATT 相比,增强版的EATT 具有安全性的优势,因为它只能用于加密连接。

  减少重复的帧开销,减少频带的占用,在需要多个特征值读取和发送的时候,对功耗有一定的优化。

目录
相关文章
|
4月前
|
物联网 Java API
Harmony Ble 蓝牙App (一)扫描(上)
Harmony Ble 蓝牙App (一)扫描(上)
171 0
|
编解码 安全 Android开发
低功耗蓝牙LE Audio Profile 详细介绍
2019年底,蓝牙官方组织SIG发布了蓝牙5.2版本的核心协议,其中增加了一个重要的特性---LE Audio。蓝牙的应用协议都是从应用层到物理层完整包含的协议,LE Audio也不例外。但蓝牙5.2核心协议仅仅定义了蓝牙LE的链路层传输Audio的方式,上层协议以及完整的LE Audio规范迟迟未出,近日,蓝牙官方组织释放了LE Audio较为完整的规范文档。
低功耗蓝牙LE Audio Profile 详细介绍
|
4月前
|
XML 传感器 监控
Harmony Ble蓝牙App(三)特性和属性
Harmony Ble蓝牙App(三)特性和属性
|
4月前
|
XML 物联网 数据处理
Harmony Ble蓝牙App(二)连接与发现服务
Harmony Ble蓝牙App(二)连接与发现服务
|
4月前
|
物联网 Android开发
Harmony Ble 蓝牙App (一)扫描(下)
Harmony Ble 蓝牙App (一)扫描(下)
|
编解码 物联网
【BLE】蓝牙5.2 新特性 - LE Audio
连接同步通道是基于蓝牙连接的,首先要先建立ble连接基于时间同步的音频传输机制,可以实现多个设备的数据同步一个master可以建立多个CIG每个CIG可以最多31个CIS每个CIS里面最多有31个subevent链路层有LL_CIS_REQ 和 LL_CIS_RSP来创建CIS无连接的单向的,无应答机制广播通道,对接收者的数量没有限制不仅可以广播数据包还可以广播控制包每个big里面最多可以包含31个bis。
1332 0
【BLE】蓝牙5.2 新特性 - LE Audio
|
9月前
|
C++ 流计算
UE 虚幻引擎 【DT Subsystem】 插件说明
UE 虚幻引擎 【DT Subsystem】 插件说明
157 0
|
算法 安全 物联网
一种更优雅的蓝牙配对技术 - Cross-transport key derivation (CTKD)
蓝牙CTKD是蓝牙4.2版本引入的一种交叉传输密钥派生的安全机制,全称 Cross-transport key derivation,主要用在蓝牙双模设备上,它可以跨越BLE和BT的边界,通过将BLE配对生成的LTK转化成BT配对的LinkKey,从而直接实现BT的配对,当然也可以通过BT配对生成的LinnkKey转化成BLE的LTK来实现BLE的配对,目前我们主要研究和使用前者。通过CTKD可以通过一次配对将BT和BLE两个链路都配对上,从而提升蓝牙双模设备的配对体验。
670 0
一种更优雅的蓝牙配对技术 -  Cross-transport key derivation (CTKD)
|
编解码 物联网
【BLE】蓝牙5.2新特性 LEPC简介
LEPC是LE Power Control的简称,是蓝牙5.2引入的用来优化功耗的一个普惠性的新特性,它既可以优化LE Audio的功耗,还可以优化现有ble的功耗。虽然在BLE中,LEPC是一个全新的概念,但经典蓝牙BR/EDR中却很早就引入了该特性。LEPC是什么?一句话概括,LEPC是一个让蓝牙设备在建立连接后可以协商双方发射功率的机制。
406 0
【BLE】蓝牙5.2新特性 LEPC简介
|
传感器 物联网 数据安全/隐私保护