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.

[参考译文] CC1352P:外设禁用广播集

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1180392/cc1352p-peripheral-disables-advertising-set

器件型号:CC1352P
Thread 中讨论的其他器件:SysConfig

您好!

我正在定制板上使用 SimpleLink 6.30.1.03。
我使用了简单的 perheral OAD 示例、并进行了以下修改:
   -已将 PDU 大小更改为255
   -地址模式为公共地址
   -使用2个传统广播集:
      advSet 1仅接受白名单中设备的连接
      advSet 2接受来自所有器件的连接

发送事件 GAP_DEVICE_INIT_DONE_EVENT 时,我使用 GapAdv_enable()启用 advSet1。
当一个新的中央设备想要连接时、我按下定制板上的一个按钮、此按钮禁用 advSet1并启用 advSet2。
在中央器件成功连接后、advSet2被禁用、advSet1被启用。

当中央设备断开连接并在几分钟后尝试连接到外设时、它可以在不按按钮的情况下进行连接。
这种方法没有任何问题。

但是、当外设长时间没有连接(大约1小时或更长时间)时、连接中央设备时出现问题。
当中央设备尝试连接时、外设接收事件 GAP_LINK_established 事件。
然后、外设立即禁用 advSet1、然后没有广播集处于活动状态。
这将断开中央设备的连接、并且无法再将其连接到外设。

为了进行调试、我将 ADV 状态记录到了 UART 中。

当中央设备成功连接时、我的 UART 日志如下所示:

GAP_EVT_ADV_END_AFTER_DISABLE:启用 advSet1状态:0
GAP_EVT_ADV_SET_TERMINATED: advSet1针对 connHandle 0被禁用
GAP_EVT_ADV_START_AFTER_ENABLE:启用 advSet1
BLE_GAP_LinkEstabled():状态:0
加密成功
BLE_processGapMessage():GAP_LINK_PARAM_UPDATE 完成

当连接未成功时:

GAP_EVT_ADV_END_AFTER_DISABLE:启用 advSet1状态:0
GAP_EVT_ADV_SET_TERMINATED:在 CONN 0之后禁用高级设置0
BLE_GAP_LinkEstabled():状态:0

我可以看到、事件 GAP_EVT_ADV_START_AFTER_ENABLE 未发送。
此外、当我在智能手机上打开 BLE 应用时、器件不再可见


是否有人知道外设为什么要禁用 advSet1?

此致

Thomas

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

    尊敬的 Thomas:

    我不理解您的 UART 日志。 不应在开始时启用 Adv Set 2?

    您能否使用 BLE 监听器来捕获两种情况中无线传输的内容? 您可以将 LaunchPad 与数据包监听器2工具配合使用:

    https://www.ti.com/tool/PACKET-SNIFFER

    谢谢、

    玛丽·H

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

    您好、Marie、

    当外设启动时、仅启用广播集1、禁用广播集2。
    其原因是、只有白名单中的已知设备才能连接到外设。

    仅需将未知中央器件连接到外设、便可使用 ADV SET 2。
    通过按下外设上的按钮、它可以:
       -禁用广播集1
       -启用高级设置2
       -启动时钟20秒。
       
    当未知设备成功连接后、它将添加到白名单中。
    20秒后、禁用高级设置2并启用高级设置1。

    我将安装 Packet Sniffer 2工具并捕获这两个案例。 我将发布结果。

    此致

    Thomas

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

    您好、Marie、

    我捕获了2个案例。

       情况:
       连接到外设成功:
       
       外设正在发送 ADV_IND 广播数据包。
       当我在中央设备上启动连接时、中央设备会向外设发送1个数据包 connect_Req。
       外设继续发送 ADV_IND 广播数据包。
       
       2、情况:
       连接到外设失败:
       
       外设正在发送 ADV_IND 广播数据包。
       当我在中央设备上启动连接时、没有数据包从中央设备发送到外设。
       外设停止发送 ADV_IND 广播数据包。
       在外设上、我可以在我的日志中看到禁用了高级设置1。
       
    此致

    Thomas

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

    尊敬的 Thomas:

    默认情况下、广播和连接请求数据包可在三个通道(37、38和39)上发送。 听起来好像在第一种情况下、监听器捕获了整个过程、但在第二种情况下、可能会在监听的另一个信道上发送连接请求。

    您能否将外设配置为仅在一个通道上广播并确保在同一个通道上监听?

    要设置广播信道,请打开 SysConfig->BLE->Broadcaster Configuration->Advertisement Set x->Advertisement Parameters->Primary Channel Map,然后仅选择一个信道。 为两个广播集执行此操作。

    捕获日志后、您能否发布或向我发送日志?

    谢谢、

    玛丽·H

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

    您好、Marie、

    现在、我仅启用了外设上的通道37。

    此外、我还检查了 SysConfig BLE 设置的中央位置。
    我找到了一些与外设不同的设置。
    我将设置更改为外设中的值:

       - BLE->Central Configuration->Connection Update Request Params (连接更新请求参数):
        申请最小连接 间隔(ms):从500更改为100
        请求最大连接 间隔(ms):从1000更改为130
       - BLE->常规配置:
        地址模式:从"具有公共 ID 的 RPA"更改为"公共地址"

    我现在测试超过5个小时、它可以正常工作。
    连接失败不再发生。

    上述参数的值是否可能导致外设禁用广播集?

    此致

    Thomas

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

    尊敬的 Thomas:

    我无法看到这两个特定设置与您描述的问题有何关系。 您在外设端遇到问题、并通过更改中央设备上的连接更新请求和地址类型来解决该问题? 这听起来不符合逻辑。  

    我很高兴它能毫无问题地工作。 如果您要重置中央设备并查看是否可以再次重现此问题、请继续操作、我们可以查看监听器日志。

    谢谢、

    玛丽·H

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

    您好、Marie、

    我可以重现问题。
    我将中央的设置改回这些值:

       - BLE->Central Configuration->Connection Update Request Params (连接更新请求参数):
         申请最小连接 间隔(ms):500
         请求最大连接 间隔(ms):1000
       - BLE->常规配置:带有公共 ID 的 RPA
       
    我已向您发送监听器日志。

    此致

    Thomas

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

    尊敬的 Thomas:

    感谢您捕获日志。

    我可以在日志中看到中央设备(51:98:D2:2b:9a:A3)在数据包189中发送连接请求、但监听器无法跟踪连接。 (即使外设未与中央设备连接、中央设备也应开始发送连接事件数据包。) 数据包585和997也会发生同样的情况。 您可能需要配置监听器以跟随此中央设备的连接。

    我想尝试重现您的问题。 您能否发布所需的最低步骤?

    谢谢、

    玛丽·H