bluetooth-lowenergy - 使用不同 PHY 的 BLE 广告

标签 bluetooth-lowenergy

我想问一下关于 BLE 5.0 广告的问题。如果有多个 PHY 可以使用(远程 - 125kbps 或 500kbps、1M、2M),我想知道当设备在这三个广告 channel 上发送广告消息时使用什么 PHY?

都是一次性使用的吗?因此,如果我在 Long Range PHY 上配置设备,它是否使用 125kbps/500kbps 进行广播并且是否仅使用此速率和调制?还是它的工作方式是,设备仅使用 1M,并且仅在建立连接后,它们才会切换到其他速率和调制?

非常感谢。我刚刚开始学习 BLE 标准,还有很多东西要学。

辐射

最佳答案

一般来说,普通的1M PHY默认用于广告/扫描和连接。这是为了保持与 pre Bluetooth v5.0 设备的兼容性。然后设备可以通过以下机制利用 2M、500kbps、125kbps:-

1- 连接:建立连接后,您的设备可以请求切换到不同的 PHY。这是通过向远程设备发送请求来完成的,远程设备应该接受该请求(如果它支持不同的 PHY)。如果发生这种情况,则只会使用所选的 PHY。换句话说,如果连接切换到 2M PHY,所有数据包交换都将在 2M 调制上发生,并且不会使用 1M/500kbps/125kbps(参见蓝牙核心规范 v5.2,第 4 卷,E 部分, 7.8.49 节:LE 设置 PHY 命令)。

2- 广告:蓝牙 v5 的新功能之一是提供主要广告 channel (这些是 BLE 使用的默认 3 个广告 channel 自版本 4.0 起)和辅助 广告 channel (这些是蓝牙 v5 设备可用于广告的 37 个数据通道)。广播时,您的设备可以为主要和次要 channel 选择 PHY。对于主要广告 channel ,您只能在 1M 或 CODED PHY 之间进行选择。对于二级广告 channel ,您的设备可以选择 1M、2M 或 CODED PHY。这意味着您的设备可以同时在 1M 和 CODED PHY 上广播(请参阅蓝牙核心规范 v5.2,第 4 卷,E 部分,第 7.8.53 节:LE 设置扩展广播参数命令)。

3- 扫描:同样,在对设备执行扫描时,您的设备可以选择它要对主要和次要 channel 执行扫描/广告的 PHY。这意味着该设备可以同时在不同的 channel 上执行扫描。


所以回答你的问题:-

  • 我想知道设备在这三个广告 channel 上发送广告消息时使用的是什么 PHY?

使用的 PHY 取决于设备的偏好。默认情况下通常为 1MPHY,但设备可以将其主要广告 channel 切换到 CODED PHY,或将其次要广告 channel 切换到 2M/CODED PHY。

  • 都一次性使用了吗?

对于连接,您只能有 1 个 PHY 调制。对于广告/扫描,如果您同时利用主要 channel 和次要 channel ,则可以使用两种类型的调制(例如,您可以在主要 channel 的 1M PHY 上转换广告,并在次要 channel 的 CODED PHY 上转换广告)。

  • 那么,如果我在 Long Range PHY 上配置设备,它是否使用 125kbps/500kbps 进行广播,是否仅使用此速率和调制?

如果您只使用主要广告 channel ,那么是的,它只会使用这种速率和调制。如果您同时使用主 channel 和辅助 channel ,则可以进行两种调制。

  • 或者它的工作方式是,设备仅使用 1M,并且只有在建立连接后,它们才会切换到其他速率和调制方式?

不,如果两个设备都支持在不同的 PHY 上建立连接,则可以在任何 PHY 上建立连接。

以下是一些有用的链接:-

关于bluetooth-lowenergy - 使用不同 PHY 的 BLE 广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64133533/

相关文章:

c - 从 BLE 接收的数据无法从十六进制转换为字符串(北欧)

android - Bluetooth LE 应用程序,如何构建跨平台(iOS-Android)?

android - Android 可以接收 IOS 蓝牙信号吗

ios - 当应用程序状态关闭时使用 corebluetooth 唤醒 iOS 应用程序

ios - 为什么 Bluetooth classic 和 LE 设备在 iOS 上的名称相同?

ios - iOS 中的蓝牙低功耗待机模式?

bluetooth-lowenergy - 我可以使用 Apple 和 Google 的接触者追踪规范吗?

android - 蓝牙 socket 连接

ios - LightBlue 找到设备,但未找到 iOS CoreBluetooth

javascript - BLE主控: scanning while connected