This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2745R10-Q1:信道映射更新命令中存在冲突

Guru**** 2933630 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1653613/cc2745r10-q1-conflict-in-channel-map-update-commands

器件型号: CC2745R10-Q1

如果我通过执行以下信道映射配置命令来更新信道映射、这是否会与在堆栈上执行的信道映射更新相冲突?

  • HCI_LE_SetHostChanClassificationCmd
  • HCI_EXT_SetHostConnChanClassificationCmd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好-

    感谢您联系我们。 如果我正确理解您的问题、您会问在您的应用程序中调用这些 HCI 命令是否会干扰堆栈内发生的任何其他通道映射更新。

    您是否使用 TI 器件作为您的中央配置? 如果是、您的应用可以控制何时发送通道映射更新、调用这些 API 不会干扰栈上的其他更新、因为您作为开发人员可以控制何时或是否发生通道映射配置。

    我是否正确理解了您的问题?

    此致、

    Blake

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    感谢您的答复。

    布莱克的理解是正确的。

    我认为该堆栈负责评估和更新通道质量。

    这就是为什么我想知道在用户端发出信道映射更新命令是否会被堆栈的处理覆盖。

    由于我确认在连接事件期间无线信道切换、因此我假设信道质量评估也由堆栈执行(我假设这是在用户无法访问的系统部分中自动完成的)。

    根据您的回答、这是否意味着“用户必须执行“通道质量评估?

    我要使用的器件是适用于中央单元和外设单元的 TI 产品 (LaunchPad CC26X)。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好-

    是的、用户负责评估通道质量、并向控制器发出这些 HCI 命令以更新通道映射。

    在低功耗蓝牙中、堆栈不会覆盖通道映射。 您在连接事件期间观察到的信道切换是标准 BLE 跳频算法 — 它会通过允许的信道集确定循环,并且与信道质量评估无关。 但是、 允许它传输的通道由您上面提到的 HCI 命令决定。 链路层可以暂时抑制某些信道、但不会改变允许的信道。

    因此、这些命令

    • HCI_LE_SetHostChanClassificationCmd
    • HCI_EXT_SetHostConnChanClassificationCmd

    不会与栈的 处理相冲突。

    如有任何进一步的澄清、请告诉我。

    此致、

    Blake

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    感谢您的答复。


    我有几个问题。

    您提到、在连接事件期间观察到的信道切换是标准 BLE 跳频算法 — 它通过允许的信道集确定循环,与信道质量评估无关。“

    • 这是否意味着这是蓝牙核心规范定义的标准跳频、而不是 AFH(自适应跳频)?
    • 假设上述情况正确、是否可以通过 AFH 实施控制? (AFH 处理是否在 TI 的 BLE 5 堆栈中实现?)

    另外、为了确认、我在下面的理解是否正确? 我很抱歉重复一下自己。

    1. 该堆栈不执行通道质量评估。
    2. 因此、用户执行通道质量评估。
    3. 可以使用信道映射更新命令在信道映射中反映质量评估的结果。
    4. 堆栈(链路层?) 使用更新后的通道映射进行通信。
    5. (尽管之前的问题中没有提到这一点)使用的通道由 CSA #2 根据通道映射确定。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好-

    不用担心。

    #1:是的、该栈实现了 BLE 规范定义的标准跳频。 与经典蓝牙不同、控制器仅负责在允许的通道内 进行切换、而不负责确定通道映射。 还需要更改地图才能将其视为 AFH。 (请参阅#2)。

    #2:可以、该堆栈通过向用户提供 API 来确定何时更改通道映射、从而为 AFH 提供支持。 通过使用前面提到的 HCI 命令以及有关 RSSI(或其他所需参数)的信息、用户可以在其应用代码中更改通道映射。 当用户实现通道映射选择逻辑时、这会成为 AFH、因为 CSA 已在堆栈中实现。

    用于 RSSI 监控的相关 HCI 命令可能有助于选择通道、分别是 HCI_EXT_RSi RSiCmd Mon_Reg 和 HCI_EXT_RSi Mon_Get RssiStatCmd(请参阅下面的链路层文档)。

    要回答您的其他问题:

    问题 1:堆栈不会根据通道质量做出决策、但会在需要时向用户提供有关通道质量的信息。  (请参阅链路层文档,RSSI 监测部分:dev.ti.com/.../link-layer-cc23xx.html)

    问题 2:见问题 1。 用户必须最终决定如何处理通道质量、但它可以从堆栈接收信息。 (请参阅上面的文档)

    问题 3: 是的。 可以使用信道映射更新命令在信道映射中反映质量评估的结果。

    问题 4:是的。 由 BLE 核心 规范定义的 CSA 在堆栈的链路层内实现、仅在用户提供的允许通道映射内运行。

    问题 5:可以、如果中央设备和外围设备都支持、则默认使用 CSA #2。 如果其中一个或两个不支持 CSA #2、则使用 CSA #1。

    以下是 SDK 中的一些相关文档、您可能会对这些文档有所帮助。

    https://dev.ti.com/tirex/content/simplelink_lowpower_f3_sdk_9_20_00_81/docs/ble5stack/ble_user_guide/html/ble-stack-common/link-layer-cc23xx.html (RSSI 监控部分)

    https://dev.ti.com/tirex/content/simplelink_lowpower_f3_sdk_9_20_00_81/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/channel-selection-algorithm-number-two.html

    https://dev.ti.com/tirex/content/simplelink_lowpower_f3_sdk_9_20_00_81/docs/ble5stack/ble_user_guide/html/ble-stack-5.x/TX-Power-Limitations-based-on-Regulation-Compliance.html (使用 DAA 的自适应性 FHSS(检测避让部分)

    请告诉我、这是否回答了您的问题、或者我是否有任何进一步的方法可以澄清。

    此致、

    Blake

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    感谢您的答复。

    我完全理解!  这就是我想知道的。

    非常感谢您的详细答复。

    这是一个很大的帮助。

    此致、