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.

[参考译文] CC2540EMK:无法监控SCAN_REQ &SCAN_RSP

Guru**** 2558250 points
Other Parts Discussed in Thread: CC2540EMK-USB

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/584203/cc2540emk-unable-to-monitor-scan_req-scan_rsp

部件号:CC2540EMK

我正在尝试通过BLE通信通道读取BLE数据包。 我购买了三个TI软件包监听器,部件号:CC2540EMK-USB。  

当我尝试侦听数据包时,我能够观察PDU类型ADV_IND的数据包,但不幸的是,PDU类型SCAN_REQ和SCAN_RSP的数据包丢失了。

我需要连续观察所有三种类型的数据包:

  1. 高级_指示
  2. 扫描_请求
  3. SCAN_RSP

我还尝试使用三种不同的TI数据包嗅探器监控所有三个通道(37,38和39)。

      一          我有时可以观察某个信道(在三个嗅探器中)中出现的带有SCAN_REQ和SCAN_RSP的数据包。

     二.         但在被过滤的三个通道中的任何一个通道中,大多数情况下我都无法观察到scan_Req和scan_RSP。

结论:

我们端的设备能够捕获这些数据包,但监听器缺少scan_Req和scan_RSP。

是否有解决方法或解决此问题的方法?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好Suhail:
    您在哪种设备上嗅探?
    您应确保未启用任何过滤,并且中央和外围设备都在您的嗅探器的范围内。 Central通常不会为每个ADV_IND数据包发出扫描请求,但可能是它收到的第一个数据包。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    “您应确保未启用过滤”
    您是不是要避免我需要在Sniffer启用的过滤?
    如果Sniffer没有启用过滤功能,我们会接收来自其他设备,例如移动电话,智能设备等的外部数据包。这会干扰我们的测试。
    请提及一个具有筛选功能的解决方案。

    “中央和外围设备都在您的监听器的范围内”
    所有设备都在10 cm 半径范围内。 这不是原因。
    我们的系统是两个可通信设备,通过可通信进行通信。 TI软件包监听器应该能够侦听这两个器件之间的消息。 我们已确认在两台双设备上都收到了这些数据包。 但您的监听器无法监视ADV_SCAN_REQUEST和ADV_SCAN_Response数据包的90 % ;只有它能够捕获ADV_SCAN_REQUEST和ADV_SCAN_Response的10 % 时间
    在TI数据包嗅探器中,我配置了以下过滤器:
    1. a1 = 0xD6774BD00577 ;0.0577万;PDU类型ADV_IND的广告地址
    2. AA4 = 0xD6774BD00577 ;0.0577万;PDU类型ADV_SCAN_REQ的广告地址
    3. AA5 = 0xD6774BD00577 ;0.0577万;PDU类型ADV_SCAN_RSP的广告地址

    0xD6774BD00577 -0.0577万 -这是一个设备的地址。
    我购买了三个嗅探器。
    请帮我解决这个问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    我认为您需要中心设备的地址来捕获ADV_SCAN_REQ。 另外,请尝试减少附近的其他设备(干扰器)的数量,以增加数据包嗅探器捕获所需设备的机会。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,
    感谢您的回复。


    "我认为您需要中心设备的地址来捕获ADV_SCAN_REQ "

    就像我之前解释的那样。 我正在使用过滤器中的地址捕获ADV_SCAN_REQ:

    2. AA4 = 0xD6774BD00577;0.0577万;PDU类型ADV_SCAN_REQ的广告地址

    "还应尝试减少附近的其他设备(干扰器)的数量,以增加数据包嗅探器捕获所需设备的机会。"
    完全切换所有干扰设备是相当困难的。 但我已将其减至尽可能高的程度。  

    结论:
    我尝试了上述方法,但我仍然无法获得与设备地址相关的SCAN_REQ和SCAN_RSP的一致读数。 理想情况下,Sniffer不应担心干扰和周围设备的数量。 它不应在任何特定时刻错过信息。 我希望Sniffer的功能比独立设备更强大。
    目前在我的情况下,设备没有丢失消息,但Sniffer一直丢失消息。
    请尽快帮助我解决此问题。

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

    您好Suhail:

    遗憾的是,当您在许多广告商活跃的嘈杂环境中捕获广告并扫描请求/响应时,干扰可能是一个挑战。 这既是由于简单的物理限制(无线数据包冲突),也是由于逻辑约束(例如,在第一次捕获的通告上,只能使用扫描请求的中心应答)。 通常不会发送Adv_scan_Req来回复每个收到的ADV_IND!

    但是,这通常只是调整您的基准测试设置以提高测试覆盖范围的问题。 因此,请让我建议您可以采取哪些措施来改善您的测试体验。 某些措施可能比其他措施更严厉:

    • 编辑您的广播商,使其仅在单个高级频道上发送(请参阅频道图),然后仅扫描此频道。
    • 查看中心设备的逻辑流,以估计何时可以发送ADV_SCAN_REQ。
    • 在您的中央设备上启用白名单,以确保设备仅响应您的被测设备(DUT)。
    • 减少干扰源的数量。
    • 将您的设备放在金属容器内以减少干扰(我的办公桌上有几个金属曲奇罐,有时我会用它们来进行此操作)。 您可以屏蔽被测设备或干扰源(如果您可以识别它们)。