GATT以外的蓝牙低功耗(BLE)协议

sco*_*ooz 14 bluetooth bluetooth-lowenergy

除了GATT之外还有其他任何可以在BLE(单模芯片)下使用的方法或协议,它们更适合于更高吞吐量的任务吗?

根据我的理解,我的问题的答案是否定的,但我希望得到一些验证和澄清.


我想实现的服务不仅仅是通过BLE操纵(短)特征.这些服务可能包括文件传输,音频流以及基本上是先前版本的蓝牙服务的服务.

一个方便的解决方案是使用文件传输配置文件(通过GOEP)或类似文件传输.对于音频,A2DP似乎是合适的.但是,使用BLE似乎不可能.

在阅读了来自bluetooth.org的核心规范v4(特别是第3卷)之后,似乎我可以使用和适应(通过配置文件)用于此类目的的唯一适用协议是GATT,这看起来非常难以使用.

此外,根据蓝牙低功耗概述和评估:新兴的低功耗无线技术,似乎有效吞吐量很低:

物理层数据速率为1Mbps,而最大应用层吞吐量等于236.7kbps.

但是(通过GATT使用TI CC254x测量实际性能时):

...在描述的条件下,我们测量的最大应用层吞吐量为58.48 kbps.这个低结果可以通过以下两个事实来解释:(i)理论上,在7.5毫秒的连接事件中可以传输多达11个这样的通知,每个连接事件只允许四个通知,如前所述; (ii)我们观察到在实验期间大多数连接事件中实际传输的通知少于四个(但是,对于大于7.5毫秒的连接间隔,相同的现象发生的频率较低).这些观察结果表明,高吞吐量并不是评估中使用的BLE实现设计的主要目标.

我意识到上述文本特定于TI芯片上的实现,但是这些限制也可以应用于GATT之上的其他实现.

TJD*_*TJD 10

如果您正在编写自己的配置文件,那么您可以通过打开L2CAP通道并以任何格式发送数据来执行任何操作,而无需实施GATT.L2CAP可以让您获得最大吞吐量,并且适合于流式数据而不是读取特性.

  • 没错,除了今天大多数API都不允许您访问L2CAP,因为官方认可的唯一渠道是SMP和ATT (3认同)
  • 当然,在BlueZ或其他具有HCI级别和L2CAP级别访问权限的平台上,这是可能的,但这些是少数.大多数API都可以为您提供GAP/GATT级访问权限,这就是您所能做的一切.Nordic Semiconductor的nRF51系列确实为您提供了L2CAP级API,因此应该可行. (3认同)