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.

[参考译文] CC3120:CC3120网络终端示例

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/651047/cc3120-cc3120-network-terminal-example

器件型号:CC3120
主题中讨论的其他部件: CC31XXEMUBOOSTCC3100

您好!

我尝试将 simplelink_studio_cc31xx_sdk_1_00_00_05与 CC3120BOOST 和 CC31XXEMUBOOST 硬件结合使用。

我想配置网络终端示例仅捕获探测请求帧、我要执行以下操作:

1.创建过滤器:

用户@CC3220:createfilter -f frame_type -v management -e equals -a pass -m L1 -I 0

[创建过滤器]:过滤器创建成功,过滤器 ID = 4

用户@CC3220:createfilter -f frame_subtype -v 0x40 -e equals -A event -m L1 -I 4

[Cmd Parser]:请在用户范围内输入用户 ID: [0、63](主机事件操作所需)。
用户@CC3220:0

[创建过滤器]:已成功创建过滤器,过滤器 ID = 5

用户@CC3220:enableefilter 

2.进入 收发器模式并运行 RX 任务:

------------------------
RX 任务选项菜单
------------------------

选择 Rx 通道:[1、13]

无线电工具@CC3220:7

输入 Rx 持续时间(以毫秒为单位):[1、uint32_MAX]

无线电工具@CC3220:60000

显示 Rx 统计信息?:

1.是的

2.无

无线电工具@CC3220:2

[收发器模式]:准备好启动 RX,按任意键开始...


[收发器模式]:在通道7上打开接收器,持续~ 60000毫秒...

[收发器模式]:RX 完成。


------------------------
无线电工具选项菜单
------------------------
1.| RX 任务选项。 |
2.| TX 任务选项。 |
3.| 退出无线电工具。 |
------------------------ 

我希望看到一些按摩、然后是 CC3120捕获探头请求帧、但没有任何反应。

是否可以配置网络终端示例以捕获探测请求帧?

有人可以帮帮我吗?

谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Michael、您是否尝试启用 RX 统计信息并查看是否可以看到数据包?

    我将在我的结尾处尝试此操作、然后返回给您。

    此致、

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

    您好 Vincent、

    是我启用了 RX 统计信息,统计信息显示,但没有来自过滤器匹配的消息。

    我在 CC3100 SDK 中找到了示例、现在尝试在 CC3120上运行。

    此致、

    Michael

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

    您好!

    我创建仅捕获信标帧的筛选器:
    createfilter -f frame_type -v management -e no_equals -a drop -m L1 -i 0
    createfilter -f frame_type -v management -e equals -A pass -m L1 -I 0
    createfilter -f frame_subtype -v 0x80 -e no_equals -a drop -m L1 -i 5.
    使能符

    我在终端应用程序中添加了新命令 sniffer、其外观如下:

    _i32监听器(_i32通道、_i32个数字包)
    {
    SlTransceiverRxOverHead_t *帧无线电报头= 0;
    _u8 MAC[MAX_RECV_BUF_SIZE]={'0'};
    _u8 hexempty = 0xcc;
    
    _i32 RetVal =-1;
    _i16 SD =-1;
    
    * 打开收发器的插座***** /
    SD = SL_Socket (SL_AF_RF、SL_Filtersock_raw、(_i16)通道);
    ASSERT_ON_ERROR (SD);
    
    _U16 size = sizeof (SlWlanRxFilterRetrieveStateBuff_t);
    _U16 opt = SL_WLAN_RX_filter_State;
    SlWlanRxCommandff_Operationt filterBitmap ={0};
    RetVal = sl_WlanGet (sl_WLAN_RX_FILTERS_ID、&OPT、(_U16*)&SIZE、(_u8*)&filterBitmap);
    printf ("RxFilterIdBitField:0x");
    for (int i = 0;i < sizeof (filterBitmap.FilterBitmap);i++){
    printf ("%x"、*((_u8*) filterBitmap.FilterBitmap + i));
    }
    printf ("\r\n");
    
    printf ("\n 收集数据包...\n");
    
    while (numpackets >0)
    {
    RetVal = sl_Recv (SD、buffer、MAX_RECV_BUF_SIZE、0);
    assert_ON_ERROR (RetVal);
    
    
    frameHeader =(SlTransceiverRxOverHead_t *) buffer;
    printf ("\n 时间戳:%i 微秒\n"、frameHeader->Timestamp);
    printf ("信号强度:%i dB\n"、frameRadioHeader->RSSI);
    
    memcpy (MAC、buffer、eofer);
    
    PrintFrameSubtype (MAC[8]);
    
    printf ("目标 MAC 地址:%02x:%02x:%02x:%02x:%02x:%02x\n"、
    MAC[12]、MAC[13]、MAC[14]、MAC[15]、 MAC[16]、MAC[17]);
    
    printf ("源 MAC 地址:%02x:%02x:%02x:%02x:%02x:%02x\n"、
    MAC[18]、MAC[19]、MAC[20]、MAC[21]、 MAC[22]、MAC[23]);
    
    numpackets--;
    }
    
    RetVal = sl_close (SD);
    assert_On_error (RetVal);
    
    return 0;
    } 

    但我收到了所有帧:

    @的 CC3220:监听器
    请输入所需的频道编号、然后单击"Enter"。
    有效通道范围为1至13 (标准为11):
    7.
    请输入所需的数据包数量、然后单击"Enter":
    10.
    RxFilterIdBitField:0x7e000007a4000000000

    正在收集数据包...

    时间戳:24091089微秒
    信号强度:-68dB
    帧子类型:
    QoS 数据(88)
    目的 MAC 地址:28:C6:8e:8a:b0:1e
    源 MAC 地址:74:E5:43:BD:C8:9e

    时间戳:24091451微秒
    信号强度:-68dB
    帧子类型:
    QoS 数据(88)
    目的 MAC 地址:28:C6:8e:8a:b0:1e
    源 MAC 地址:74:E5:43:BD:C8:9e

    时间戳:24091591微秒
    信号强度:-68dB
    帧子类型:
    QoS 数据(88)
    目的 MAC 地址:28:C6:8e:8a:b0:1e
    源 MAC 地址:74:E5:43:BD:C8:9e

    时间戳:24091609微秒
    信号强度:-68dB
    帧子类型:
    QoS 数据(88)
    目的 MAC 地址:28:C6:8e:8a:b0:1e
    源 MAC 地址:74:E5:43:BD:C8:9e

    时间戳:24091843微秒
    信号强度:-68dB
    帧子类型:
    QoS 数据(88)
    目的 MAC 地址:28:C6:8e:8a:b0:1e
    源 MAC 地址:74:E5:43:BD:C8:9e

    时间戳:24091955微秒
    信号强度:-68dB
    帧子类型:
    QoS 数据(88)
    目的 MAC 地址:28:C6:8e:8a:b0:1e
    源 MAC 地址:74:E5:43:BD:C8:9e

    时间戳:24092467微秒
    信号强度:-68dB
    帧子类型:
    QoS 数据(88)
    目的 MAC 地址:28:C6:8e:8a:b0:1e
    源 MAC 地址:74:E5:43:BD:C8:9e

    时间戳:24097191微秒
    信号强度:-46dB
    帧子类型:
    QoS 数据(88)
    目标 MAC 地址:74:E5:43:BD:C8:9e
    源 MAC 地址:28:C6:8e:8a:b0:1e

    时间戳:24107423微秒
    信号强度:-41dB
    帧子类型:
    信标(80)
    目标 MAC 地址:FF:ff:ff:ff:ff:ff:ff
    源 MAC 地址:28:C6:8e:8a:b0:1e

    时间戳:24116810微秒
    信号强度:-46dB
    帧子类型:
    QoS 数据(88)
    目标 MAC 地址:74:E5:43:BD:C8:9e
    源 MAC 地址:28:C6:8e:8a:b0:1e

    我在创建 RX 滤波器时错过了什么吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我相信这些滤波器是按顺序应用的。 例如、如果筛选器一将传递一个数据包、则下一个筛选器不会影响该数据包。 在当前实施中、您将传递所有数据包、然后尝试过滤到信标。 这将允许接收所有数据包。

    尝试仅过滤信标:

    createfilter -f frame_subtype -v 0x80 -e no_equals -a drop -m L1 -i 5.
    使能符

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

    您好!

    我创建了一个滤波器、例如"CC3120、CC3220 SimpleLinkTM Wi-FiRegistered和物联网网络处理器"。 编程人员指南"(swru455d.pdf)

    10.3.1示例1.
    系统具有以下要求:
    •仅从所有 MAC 地址接收 WLAN 管理信标帧。
    应创建以下树:

    1. frame_type!= management -> drop
    2.frame_type = management -> pass
    3. frame_subtype!=信标->删除

    滤波器2是滤波器3的父级。

    在网络终端中、它如下所示:

    createfilter -f frame_type -v management -e no_equals -a drop -m L1 -i 0

    createfilter -f frame_type -v management -e equals -A pass -m L1 -I 0

    createfilter -f frame_subtype -v 0x80 -e no_equals -a drop -m L1 -i 5.

    使能符

    现在、如果我打开 RAW 套接字并开始读取、则我在通道1、2、3、11中接收信标帧、但在通道7中、我也接收 QoS 数据(88)帧。

    我还更改了策略设置:

    -    RetVal = sl_WlanPolicySet (sl_WLAN_policy_connection、sl_WLAN_connection_policy (1、0、0)、NULL、0);
    +    RetVal = sl_WlanPolicySet (sl_WLAN_policy_connection、sl_WLAN_connection_policy (0、0、0、0)、NULL、0);
     

    如果我将过滤器更改为仅捕获探测请求帧:

    createfilter -f frame_type -v management -e no_equals -a drop -m L1 -i 0

    createfilter -f frame_type -v management -e equals -A pass -m L1 -I 0

    createfilter -f frame_subtype -v 0x40 -e no_equals -a drop -m L1 -i 5.

    使能符

    我接收通道1、2、3、11中的探测请求帧、但在通道7中、我也接收到未知帧(48)。

    因此、某些数据帧(0x88、0x48)也会被传递。

    正常工作吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这似乎是你想要的。 您可能可以添加另一个筛选器来删除未知帧、但它似乎工作正常。

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

    您好!

    感谢你的帮助。