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.

[参考译文] CC2564C:BLE 主设备/从设备角色切换

Guru**** 2768225 points

Other Parts Discussed in Thread: CC2564C, CC2564

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1207988/cc2564c-ble-master-slave-role-switching

器件型号:CC2564C
主题中讨论的其他器件: CC2564

您好、TI!

项目背景。

连接到两部电话的音频设备。  

在电话-1中将有 BT+ BLE (配置文件 HFP、A2DP、AVRCP、BLE-Peripheral)。

在电话2中、将仅使用 BT (HFP)

至手机1 CC2564C 作为主器件连接。

到手机2 CC2564C 可以具有主/从角色。

问题:

如果 BT 已经是主设备、CC2564c 是否会成为主设备?

如果没有、是否有任何在 BLE 中切换角色的配置?

我们尝试这样做是为了使连接更加稳定。  

谢谢!

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

    尊敬的 Vishnu:

    在这种情况下、发起连接的任何器件都是主器件。 连接后、假设主器件允许角色切换(无论是 CC2564还是其他器件)、您可以 使用 HCIAPI.h 中的以下功能从 CC2564发送开关角色请求

    HCI_Switch_Role (unsigned  int  BluetoothStackID、 BD_ADDR_t BD_ADDR 、Byt_t   Role、 Byt_t * StatusResult);

    如果您需要参考、可以在 STM32 HFP 和 A3DP_SNK 演示等一些演示中调用此函数。

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

    Daniel、您好!

    因此、系统设计为:如果器件是 BR/EDR 中的主器件、那么它也将是 BLE 中的主器件。

    换句话说、不能出现器件在 BR/EDR 连接中为主器件而在 BLE 连接中为从器件的情况、反之亦然。  

    我的理解是否正确?

    谢谢!

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

    您好 Vishnu、这种情况是可能的、因为蓝牙经典和 BLE 是单独的连接、您可以让器件在一个中为主器件、在另一个中从器件。

    话虽如此、请注意、您无法同时运行 HFP、A3DP 和低功耗蓝牙、因此根据您使用的配置文件、它可能无法正常工作。

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

    Daniel、您好!

    我们对 HFP 和 A2DP 使用无辅助模式。

    我们也使用 BLE。

    因此、我的理解是、

    CC2564C 可通过 BR/EDR 充当电话1的主设备、同时 、同一 CC2564C 可充当同一电话1的从设备。

    是这样吗?

    链路层时钟会同步吗?

    谢谢!

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

    是的、CC2564C 可以在一个连接中充当主器件、在另一个连接中充当从器件、因此您的陈述正确。

    至于链路层时钟处于同步状态、我需要进行研究。

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

    好的。

    能否使用  HCI_Switch_role (unsigned  int  BluetoothStackID、 BD_ADDR_t BD_ADDR 、Byt_t   Role、 Byt_t * StatusResult);函数切换 BLE 的主/从角色?

    谢谢!

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

    您好、Vishnuprasad、您可以在 BLE 和 Classic 中使用 HCI_Switch_Role。

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

    Daniel、您好!

    感谢您的回复。

    那么,如果我使用 HCI_SWITCH_ROLE ()来执行角色切换,堆栈或 cc2564c 将如何确定是在 BLE 还是 BR/EDR 上切换角色? 在 BLE 不使用随机地址的情况下。  

    谢谢!

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

    尊敬的 Vishnuprasad:

    作为参数传入的蓝牙地址是远程/连接的器件的地址。 坦率地说、我不确定在具有相同地址的两个连接的情况下、函数行为是怎样的。 我的建议是确保每次谈判一个适当的角色、并在可能的情况下在连接时照顾到适当的角色。 如果没有、那么从电话一方申请正确的角色可能会更容易。

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

    Daniel、您好!

    感谢您的答复。

    您能否检查您系统中这些功能的行为并确认该功能的行为?

    将对我们非常有帮助。

    谢谢!

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

    你好,Vishnu,如果可能的话,我会尝试研究这种行为。  

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

    Daniel、您好!

    "坦率地说,我不知道在两个具有相同地址的连接的情况下,函数的行为是什么。"

    当您说"两条连接"时、您是指同一个器件的一条 BT 连接和 BLE 连接吗?

    还是两个单独的器件?

    您能否分享一些执行 BLE 角色切换的示例代码?

    谢谢!

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

    尊敬的 Vishnuprasad:

    在这种背景下提及两个连接时、我指的是连接到同一个器件、假设该器件对于 BLE 和蓝牙只有一个地址。

    BLE 角色切换内置在随 STM32 v5.1.1.1 SDK 提供的 SPPLE 样片中。