【问题标题】:How should choose the suitable phy layer for bluetooth?蓝牙应该如何选择合适的phy层?
【发布时间】:2021-07-26 06:14:30
【问题描述】:

我将提出一些与蓝牙 IP 相关的解决方案。我在 Host 层中提出我的解决方案。

  1. 我的问题是如何为我的解决方案选择最佳 phy?在我的方法中,我需要长怒、低功耗和大数据包传输。

  2. phy 提供了哪些主要功能?我所知道的是 phy 会影响范围、吞吐量和功率。是全部还是有什么我不认识的?

  3. 我的设备很小,可以使用纽扣电池。我没有音频传​​输。我应该选择 EDR PHY、BR PHY、LE 2M PHY、LE 1M PHY 还是 LE Coded PHY?

  4. 是否可以根据 BL 链路质量使用不同的 PHY 来实现特定的应用需求?有一篇题为“BLE 5 的新 PHY 模式的性能和权衡”的论文展示了如何根据 BL 链路质量选择最佳 phy。

  5. phy 对以下有影响吗?如果是,应该考虑 phy 的什么特性?

    a) 每个连接事件支持的数据包

    b) 支持的最大 ATT MTU 大小

    c) 支持的最大链路层数据包大小

【问题讨论】:

  • "长怒、低功耗、大包传输。"所以你愿意放弃数据速率,对吧?这听起来就像使用 LE Coded 的代码。 LE 编码增加了纠错开销,提供了出色的范围和功率,同时减少了可用于数据的空间。您在标签中提到了 iOS,但您在问题的任何地方都没有提到它。对于您控制所有硬件的远程解决方案,您还应该考虑 LoRa,因为这是它的全部目标。这有点取决于您所说的“远程”是什么意思。 10米? 1000米?不同的问题。
  • 既然您已经标记了 iOS,那么您的最低 iPhone 平台是什么? Pre-8 设备不支持蓝牙 5,因此您的选择不同。您的操作系统要求是什么? BR/EDR 上的 GATT 在 13 岁左右之前在 iOS 上不可用(您真的是要在此处标记 GATT 吗?)您只需要使用 iPhone 吗?没有安卓或其他设备? (或者这和 iOS 有关系吗?)
  • @Rob Napier 我已删除 ios 标签。对不起,这是一个错误。你提到了“LE 编码......同时减少了可用于数据的空间”。我在想所有 LE 2M PHY、LE 1M PHY 或 LE Coded PHY 的最大 PDU 大小是 257。不是吗?在我的方法中,我不想使用 LoRa,目标是使用 BL。远程我的意思是一到两公里(尽可能多)。我将使用基于 Linux 的操作系统。所以对于使用 GATT 我需要注意操作系统是吗?
  • 在这些范围和低功耗下,您需要在协议中进行更多的纠错才能使 BLE 工作,因此您会丢失数据速率。你还想在这里列出核心蓝牙吗? (该标签与 iOS 库有关)。 1-2 公里正在推动您可以使用 BLE 做什么。您需要两侧的定向天线、相当清晰的视线以及可以投入其中的所有功率。你肯定会想要 LE Coded。蓝牙站点包括一个计算器,但这是最好的情况。 bluetooth.com/learn-about-bluetooth/key-attributes/range/…
  • 没有。 PDU 大小相同,只是数据包更长。数据包现在可以达到 17 毫秒。但是,特定的系统当然可以协商下来。这是一个很大的热量,我预计很多芯片可能无法处理它(特别是如果您计划调高传输功率)。有关详细信息,请参阅 5.2 核心规范的第 222 页,表 3.3。 bluetooth.com/specifications/specs/core-specification

标签: bluetooth bluetooth-lowenergy bluetooth-gatt


【解决方案1】:

如果我们谈论 BLE,从无线电的角度来看,三种不同的 PHY 非常相似。您需要知道的是,当收音机打开时,它们通常消耗基本相同的电流(不是能量)(有一些小的差异)。不同之处在于,无线电需要以更短的比特率开启更长的时间(因此总共消耗更多的能量),而更高的比特率需要更短的时间。与较低的比特率相比,较高的比特率会导致更差的交付成功率。所以一切都只是范围、速度和能源使用之间的权衡。

请注意,BLE 无线电通常一次只能执行一项无线电操作,因此通过 LE 数据包长度扩展,编码 PHY 数据包的最大长度可能需要 17 毫秒,这可能会降低固件安排其他活动的能力,例如扫描或处理另一个连接。在链路层,两个端点可以协商最大时间和最大数据包大小,所以是的,您最终可能会遇到最大数据包长度取决于所使用的 PHY 的情况(但链路层会将其分段,因此不会对主机方来说不是任何问题)。您还可以意识到,与其他 PHY 相比,在一定时间内,使用 2M PHY 可以容纳更多的数据包,例如,一个连接事件的最后期限由固件决定,当它必须结束时。

另外请记住,要使用 Coded PHY 建立连接,您需要使用新的“扩展广告”,它与不支持 Coded PHY 的设备或支持 Coded PHY 但未设置的设备不向后兼容最多可以使用 Coded PHY 进行扫描。

建立连接后,您可以随时更改 PHY。例如,如果您监控 RSSI 并检测到信号质量的变化,您可以更改 PHY。

ATT MTU 由主机层决定,与链路层完全分离。虽然,程序员当然可以出于某种原因决定在使用 Coded PHY 时使用较短的 MTU,但我还没有听说有人这样做。

不要忘记,您还可以更改无线电的 TX 功率,以增加您发送的数据包将达到的范围(和电流消耗)。您还可以选择具有更好RX灵敏度的芯片,以便在接收数据包时获得更好的范围。或者使用天线放大器。

【讨论】:

    猜你喜欢
    • 2019-12-14
    • 2018-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    相关资源
    最近更新 更多