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.

[参考译文] CC3235S:在 Wi-Fi 信标中读取供应商特定的 IE

Guru**** 2391335 points
Other Parts Discussed in Thread: CC3235S

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1218442/cc3235s-reading-vendor-specific-ie-in-wi-fi-beacon

器件型号:CC3235S
我们想要询问 CC3235S 和相应的 SDK 是否支持该功能?
我们的应用是 读取通过 Wi-Fi 信标广播的无人机远程 ID 数据。 无人机远程 ID 的国际标准要求实际数据有效载荷包含在供应商特定信息元素(供应商特定 IE)中。  芯片和 SDK 是否支持读取 Wi-Fi 信标的供应商特定 IE 字段中包含的数据?
如果没有、是否有其他双频带 Wi-Fi 芯片可以满足该要求?
 
谢谢你。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可以 在收发器模式下获取和解析整个信标(请参阅 编程人员指南中的第13章)。

    您无法在标准站点模式下获得该信息。

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

    谢谢、这非常有帮助。 通读程序员指南的第13章、我还有几个问题、您能回答吗?

    您能否详细说明 SL_SOCK_RAW 和 SL_DOCK_DGRAM 之间的区别(第13.3.1节)?

    由于收发器模式一次仅支持从一个通道接收、因此如果我们要开发一个需要扫描多个 Wi-Fi 通道的监听器应用、我们是否需要 使用 sl_SetSockOpt ()定期手动更改通道? 我们可以切换通道的频率是多少? 是否有使用收发器模式的 Wi-Fi 嗅探器样片?

    我们应该如何确定是需要长前导码模式还是短前导码模式? 前导码模式是否影响接收或仅影响传输?

    扫描 Wi-Fi 信标需要多高的数据速率?

    再次感谢您的帮助。

    迈克尔

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

    您还可以参阅第6.5.3章和第6.5.4章、其中提供了有关不同 RAW 模式的更多信息。

     SL_SOCK_DGRAM (SL_AF_RF)发送和 接收 数据包 设备未连接到 AP 时、在特定802.11通道上使用(特定传输层协议的)。

    您可以使用 RAW 套接字 传输所有数据包  (不仅仅是数据)的数据流。 如果您想查看信标、这应该是您的选择。

    使用收发器 套接字时、您需要按应用程序切换通道。 由于信标通常每100到200毫秒发送一次、因此这可能是您希望扫描每个信道的时间。

    信标通常以较低速率之一发送、但您无需设置 RX 的前导码模式和数据速率。 频道上的所有内容都将被截获。 使用的准确速率 在数据包前缀的8字节专用标头(SlTransceiverRxOverHead_t)中指定。    

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

    我明白了。 谢谢! 我还有一个问题、 如果我们要扫描2.4 GHz 频段和5.0 GHz 频段中的所有信道(即100个以上信道)、并且我们在每个信道上停留~100毫秒、这意味着每条信道的循环都需要很长的时间、这是单向的。

    是否有任何 Wi-Fi 芯片或任何解决方案能够更快地通过信道循环或在多个信道上进行接收(鉴于我们的目标仍然是读取每个信标的供应商特定 IE)?

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

    否 这是 执行扫描的方式(逐通道)。 总共有44个通道(14 + 30)、因此整个扫描周期所需的时间可能 小于5秒(假设每个通道至少102.4ms)。

    如果要加速 周期,则可以使用活动扫描(至少在非 DFS 信道中),这意味着您发送广播探测请求,并可 在之后立即期待探测响应

    (在5GHz DFS 和可选 信道(如信道12-14)中、除非您识别信道上的至少几个信标、否则不允许传输信号)。

     

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

    我明白了。 感谢您的答复。 是否可以 在收发器模式下执行主动扫描? 如果不是、是否可以使用其他执行活动扫描的模式、在探测请求中请求特定于供应商的信息元素、并能够读取探测响应的特定于供应商的信息元素?

    此外、您认为有14+30个通道是什么? 在维基百科的 WLAN 信道表中,我看到了美国5 GHz 频段的信道32-177。 是否有30个不同的5GHz 通道是非重叠的? 我不是 Wi-Fi 领域的专家、因此我可能会犯错。

    对于2.4GHz 频段、是否可以仅扫描信道1、6和11 (并且仍然能够接收在任何2.4GHz 信道上广播的任何信标)? 我读出通道1、6和11是非重叠的、但涵盖了几乎整个频率范围。

    此外、我看到了您从另一个主题得到的响应(感谢您的响应)。 您是否能够详细介绍 SL_SOCK_RAW 和 SL_SOCK_DGRAM? 我将把我以后的所有问题都保留在该主题上。

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

    使用收发器模式时(域 设置为 SL_AF_RF):  

    –SL_SOCK_RAW–指示 L1模式 RAW 套接字(不考虑802.11介质访问策略- CCA)

    –SL_SOCK_DGRAM–指示 L2模式 RAW 套接字(遵守802.11介质访问策略)。

    应该能够使用来获取信标和探测响应以及传输探测请求(用于主动扫描)。 我认为、  如果要发送探测请求(因为希望802.11清除通道评估 功能处于活动状态)、您应该更喜欢 SL_SOCK_DGRAM。  

    请参阅以下内容以查找支持的5G 通道:

    /*
            - SL_WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS_5G:
        \code
            SlWlanScanParam5GCommand_t ScanParamConfig5G;
            _u16 Option = SL_WLAN_GENERAL_PARAM_OPT_SCAN_PARAMS_5G;
            _u16 OptionLen = sizeof(SlWlanScanParam5GCommand_t);
            // 5.0G channels bits order: 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132,
            //                          136, 140, 144, 149, 153, 157, 161, 165, 169, 184, 188, 192, 196 
            
            ScanParamConfig5G.ChannelsMask = 0x0000000F; // Select ChannelsMask for channels 36, 40, 44, 48 
            ScanParamConfig5G.RssiThreshold = -70;
            sl_WlanSet(SL_WLAN_CFG_GENERAL_PARAM_ID, Option, OptionLen, (_u8 *)&ScanParamConfig5G);
        \endcode
        <br>
    */

    如果仅扫描信道1、6、11、则可能会错过其他信道上的信标、因为 RSSI 将显著下降(尤其是在非相邻信道中、例如3、4、8、9)。 您可以自行决定该行为是否对您足够好。

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

    谢谢 Kobi。 您是否知道如何实施主动扫描、以使返回至扫描仪的任何探测器响应将包含特定于供应商的 IE、从而使我能够访问特定于供应商的 IE 数据?

    在编程指南的第4.7.1节中、我确实发现了以下内容: "扫描策略–设置扫描策略会触发立即活动扫描(没有连接用途)、并在启用的信道上以所需的扫描周期间隔执行扫描。"、但扫描结果似乎不包含特定于供应商的 IE。

    此外、我不确定您能否回答此问题、但在这种情况下、您可以提供帮助:是否所有 Wi-Fi 设备都响应探测请求? 在我的特定应用中、我将尝试扫描由 "广播模块"广播的 Wi-Fi 信标、该模块的唯一任务是广播信标、并且不需要接收数据或进行连接。 在这些设备上进行主动扫描是否没有意义?

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

    如前所述、如果常规扫描结果不包含您要查找的信息、则需要使用收发器模式来将信标(或探测器响应)发送到主机。

    通常、探测器响应包含 信标的所有信息。 在某些情况下、您应该在探测器中添加特定于供应商的 IE 以在响应中获得特定于供应商的 IE。

    你说的、我不能评论"广播模块"。 我 认为这方面没有标准、我想这取决于具体的实现方式。 如果您知道要寻找什么、您应该能够从供应商处获得更多信息。

     

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

    我将尝试澄清我的问题:

    我知道探测器响应应包含信标的所有信息、包括特定于供应商的 IE (在某些情况下、仅当您将特定于供应商的 IE 添加到探测器请求时)、但 我仍不确定如何实现此目的的软件。

    这是我到目前为止完成的进度:我发现编程指南显示此命令将执行活动扫描(第4.7.3节):

    Status = sl_WlanPolicySet(SL_WLAN_POLICY_SCAN, SL_WLAN_SCAN_POLICY(1,1),
    (_u8*)&intervalInSeconds,sizeof(intervalInSeconds));
    

    和编程指南显示此命令将获取扫描结果:

    SlWlanExtNetworkEntry_t netExtEntries[30];
    _i16 resultsCount = sl_WlanGetExtNetworkList(0,30,&netExtEntries[0]);

    但是、根据 SlWlanExtNetworkEntry_t 的文档、其中不包含特定于供应商的 IE。 此外、这两个函数都没有将特定于供应商的 IE 添加到探测请求的特性。

    我是否在查看错误的函数?  应使用什么函数将特定于供应商的 IE 添加到探测请求? 应使用什么功能 从活动扫描中检索特定于供应商的 IE?

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

    Michael、您好!

    否 正如 Kobi 之前两次说过的,你不能使用内部扫描 API (SL_WlanGetExtNetworkList()或 sl_WlanGetExtNetworkListEx())。 您需要使用收发器模式自行对扫描例程进行编程。

    1月