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

标签 bluetooth bluetooth-lowenergy

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

据我了解,我的问题的答案是否定的,但我想要一些验证和澄清。

<小时/>

我想实现的服务不仅仅是通过 BLE 操纵(短)特性。此类服务可能包括文件传输、音频流以及以前版本的蓝牙中标准的基本服务。

一个方便的解决方案是使用文件传输配置文件(通过 GOEP)或类似文件传输。对于音频,A2DP 似乎比较合适。然而,使用 BLE 似乎无法实现这些目标。

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

此外,根据 Overview and Evaluation of Bluetooth Low Energy: An Emerging Low-Power Wireless Technology ,看起来有效吞吐量很低:

Whereas the physical layer data rate is 1 Mbps, the maximum application layer throughput is equal to 236.7 kbps.

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

... In the described conditions, the maximum application layer throughput we have measured is 58.48 kbps. This low result can be explained by the following two facts: (i) whereas, in theory, up to eleven such notifications can be transmitted within a connection event of 7.5 ms, only four notifications are allowed per connection event, as aforementioned; and (ii) we have observed that less than four notifications are actually transmitted in most connection events during the experiment (however, the same phenomenon occurs less frequently for connection intervals greater than 7.5 ms). These observations show that high throughput has not been a primary goal in the design of the BLE implementation used in the evaluation.

我意识到上述文本特定于 TI 芯片上的实现,但此类限制也可能适用于 GATT 之上的其他实现。

最佳答案

如果您正在编写自己的配置文件,那么您可以通过打开 L2CAP channel 并以任何格式发送数据来做任何您想做的事情,而无需实现 GATT。 L2CAP 可以让您获得最大吞吐量,并且适合流数据而不是读取特性。

关于GATT 以外的蓝牙低功耗 (BLE) 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13360607/

相关文章:

在 Mac OS X 上通过蓝牙发送文件的 Shell 命令

ios - 使用 corebluetooth 从 iOS 断开外设 (TI CC2541) 时出现的问题

Android 查找特定蓝牙设备的 UUID

python - pybluez 未检测到任何设备

android - 我可以用蓝牙做到这一点吗?

java - 无法读取从一个 BLE 设备发送到其他设备的特征值

ios - 蓝牙 UUID iOS

c# - Windows BluetoothLeAdvertisement 不包含 Android 设备广播的服务 uuid

android - 在 Android 上为低功耗蓝牙创建后台服务

ios - 与非 iOS 设备的多点蓝牙连接