蓝牙 SPP 吞吐量

Bluetooth SPP throughput

我想弄清楚蓝牙 2.1 SPP 连接的最大吞吐量是多少。

我找到了 2 篇与该主题相关的出版物 (1, 2),它们都显示了图表,这些图表显示了作为信噪比函数的吞吐量(我认为这对我的考虑来说是完美的) ) 和使用的 ACL 包的种类。我的问题是,我不知道使用了哪些 ACL 数据包。这个决定是如何做出的?它是即时制作的,例如 "what's needed to transfer the current data is used"?

另外,在Serial Port Profile specification(第2.3章)中我发现了这句话:

This profile requires support for one-slot packets only. This means that this profile ensures that data rates up to 128 kbps can be used. Support for higher rates is optional.

最后一句话真是把我搞糊涂了。我如何确定此 "option" 是否适用于我的情况?

这意味着在 SPP 模式下,所有蓝牙模块 应该 工作到 128kbps,并且一些模块 可能 工作得更快。

SPP 下是 RFCOMM,它会尝试尽快传送数据包。如果在一个时隙中只发送一个数据包,您将获得 128kbps。然而,蓝牙模块的固件或 HCI 驱动程序可以做不同的事情。

据报道 SPP 速度高达 480kbps - 但这需要两个 SPP 模块来自同一供应商(例如 BlueGiga iWrap 模块可以达到此速度)。

另一方面,如果您连接到未知设备,例如 BT112,或连接到 Android 设备的 RN41 模块,实际可用的 SPP 带宽可能远低于 128 kbps (我的测量值低至 10kbps)。

对于一些老一代 iPhone,可用的 SPP 带宽约为 8 kbps。

明智的做法是对 "standards" 和 "datasheets" 非常保守,如果实际的净数据带宽很重要,请自行测量。

尽管BT、BT+EDR的理论传输码率为3Mbps,但实际可用的网络数据带宽要小得多。