介绍
在有关Bluetooth 5的系列的第二篇文章中,我们介绍了提高2倍速度的新功能以及BLE应用程序的吞吐量的总体概述(上一篇文章全面介绍了Bluetooth 5的新功能,更具体地说,涵盖了增加的广告容量功能)。
首先,我们需要了解,公布的速度(1 Mbps和新的2 Mbps)只是理论上的速度,在降低应用程序吞吐量时会降低速度。这是由于多种原因,我们将在下一部分中进行介绍。
蓝牙5“ 2倍速”功能需要硬件更新,因此较旧的设备/芯片/模块将不支持此功能。同样重要的是要注意,为了实现更高的吞吐量,您将需要两个BLE设备相互通信以支持新的LE 2M PHY(这使得以更高的速率传输数据成为可能)。
新的LE 2M PHY和原始的LE 1M PHY都被称为未编码PHY,因为它们每数据位使用1个符号表示(与使用2个符号或8个符号的新LE编码PHY相比)每位数据的符号表示)。
另一个需要注意的重要事项是,在使用较高速度的PHY时,实际上可以实现较低的功耗(假设您传输的数据量相同)。这是因为减少了无线电接通时间而没有增加发射功率。反过来,这也改善了与2.4 GHz频谱内其他无线技术的共存(也由于减少了无线电接通时间)。
在这篇文章中,我们将介绍:
- BLE期望的实际吞吐量是多少?
- 蓝牙5的新型2M PHY用于数据传输
- 影响/确定数据吞吐量的因素有哪些?
- 您如何计算应用程序数据吞吐量?
- 如何最大程度地提高数据吞吐量?
- 使用两个nRF52系列开发套件测试,测量和计算数据吞吐量
为什么不可能达到BLE的理论速度?
1 Mbps(LE 1M PHY),2 Mbps(LE 2M PHY),125 kbps和500 kbps的数据速率(分别使用S = 8和S = 2的LE编码PHY)是无线电的速率传输数据,但是由于以下原因,这对于应用程序吞吐量而言是无法实现的:
- 每个连接间隔的数据包数限制
- 数据包之间的帧间间隔(IFS)延迟(150 us)
- 即使没有可用数据传输,也需要从设备发送空数据包
- 数据包开销–并非数据包中的所有字节都用于有效负载
为了更好地理解这些因素并了解影响应用程序吞吐量的因素,我们必须更深入地研究数据包格式。下图显示了LE 1M PHY和2M PHY数据包的外观:
我们感兴趣的部分(以及真正定义应用程序数据的部分)是ATT Payload。从图中可以看出,Bluetooth Low Energy中的每一层都有大量开销字节。
- 在4.0和4.1中,最大ATT有效负载为20个字节。
- 在4.2和5.0中,一项称为数据长度扩展(DLE)的新功能允许ATT有效负载保存多达244个字节的数据。
蓝牙5速度:利用新的2M PHY达到2倍速度
了解在蓝牙5中使用新的LE 2M PHY的局限性非常有用:
- 不能用于传输主要广告(在主要频道上)。
- 可用于与数据包在相同通道上发送的辅助“辅助包”(37个通道:0-36)。
要了解有关主要和次要广告的更多信息,请参阅我以前的博客文章:Bluetooth 5 Advertisements:您需要了解的所有内容。 - LE 1M是强制性的,而LE 2M是可选的。因此,并不是所有声称支持蓝牙5的芯片都可以处理更高的吞吐量。
- 广告和发现可以在LE 2M PHY上进行,然后使用LE 2M PHY在辅助广告通道上进行连接
应用程序数据从一台设备到另一台设备的传输通常发生在两台设备之间的连接期间。连接的设备可以通过PHY Update Procedure协商使用其他PHY 。建立连接后,它可以由从设备或主设备启动,但主设备将最终决定每个方向使用哪个PHY(基于从设备的请求和主设备支持的PHY)。
影响/确定数据吞吐量的因素
有一些因素会影响BLE应用程序的数据吞吐量。最常见的是:
- 使用的PHY(LE 1M与LE 2M与LE编码(S = 2或S = 8))
- 连接间隔
- 每个连接间隔的最大数据包数
- ATT最大传输单位(ATT MTU)
- 数据长度扩展(DLE)
- 操作类型:有响应写与无响应写,指示与通知
- 帧间间隔(IFS):后续数据包之间的时间间隔(150 us)
- 传输空数据包
- 数据包开销–并非数据包中的所有字节都用于应用程序有效负载
让我们更详细地研究每个。
物理层
蓝牙5中基本上有三个PHY:原始1 Mbps PHY,新的2 Mbps和编码PHY&