Adaptivity 测试
支持的芯片
Ameba SoC |
RTL8721Dx |
RTL8726E |
RTL8720E |
RTL8730E |
---|---|---|---|---|
FreeRTOS |
Y |
Y |
Y |
Y |
Linux |
Y |
N |
N |
Y |
Adaptivity 测试概述
标准
Adaptivity 是一种自动信道接入机制,通过该机制,设备可以在检测到信道中已有传输的情况下,自动避免在该信道上进行传输。任何设备若其声明的最大射频输出功率水平超过 10 dBm e.i.r.p.,都要求实施 Adaptivity 协议。
自 2017 年 12 月 31 日起,ETSI 开始要求 Adaptivity 认证。相关标准包括适用于 2.4GHz 频段的 ETSI EN 300 328 V2.2.2,以及适用于 5GHz 频段的 ETSI EN 301 893 V2.1.1。
ETSI 规定了 Adaptivity 测试过程如下:
建立 DUT(待测设备)与陪测设备的连接,并开始数据传输。
添加干扰信号。在 2G 测试中,还需加入超出带宽长度的阻塞信号。
检查 DUT 是否停止数据传输。
在此期间,DUT 仅允许向陪测设备发送 ACK 包,其他类型的包均不允许发送。
确认测试是否通过。
2G 测试通过标准:在 50ms 内,Tx 占空比不得超过 10%。如果满足,通过;否则失败
5G 测试通过标准:在 50ms 内,Tx 占空比不得超过 5%。如果满足,通过;否则失败
在不同的信道、带宽和 802.11 模式下重复以上步骤。
干扰功率
ETSI 规定的能量侦测公式如下:
2G: TL = -70dBm/MHz + 10*log10(100mW/Pout)
5G: TL = -75dBm/MHz
备注
Pout 为 DUT 的最大发送功率。干扰信号的带宽必须大于 DUT 的带宽,且具有 100%的占空比。
Realtek 在实验室内以最严苛的条件进行测试。
2G: TL = -70dBm/MHz
5G: TL = -75dBm/MHz
下表展示了不同频率和带宽下的干扰功率阈值。当干扰功率超出阈值时,MAC 层将暂停数据传输。
项目 |
2G |
5G |
||||
---|---|---|---|---|---|---|
20MHZ |
40MHZ |
20MHZ |
40MHZ |
80MHZ |
160MHZ |
|
干扰功率(dBm) |
-57 |
-54 |
-62 |
-59 |
-56 |
-53 |
以下章节会详细阐述软件配置和调试的标准操作程序,这对于成功通过 Adaptivity 测试至关重要。
软件配置
EDCCA 模式
Ameba 支持四种 EDCCA 模式:
模式 |
描述 |
---|---|
RTW_EDCCA_NORM |
根据实时 RSSI 测量值动态调整 EDCCA 阈值(默认模式) |
RTW_EDCCA_ADAPT |
ETSI Adaptivity 测试模式,固定 EDCCA 阈值 |
RTW_EDCCA_CS |
日本 Carrier Sense 测试模式 |
RTW_EDCCA_DISABLE |
不使能 EDCCA 检测模式 |
EDCCA 模式类型在文件 wifi_api_types.h
中定义, 该文件位于 component/wifi/api/wifi_api_types.h
。
/*EDCCA 模式类型枚举值*/
enum rtw_edcca_mode {
RTW_EDCCA_NORM = 0, /* normal*/
RTW_EDCCA_ADAPT = 1, /* Adaptivity, ETSI*/
RTW_EDCCA_CS = 2, /*carrier sense, Japan*/
RTW_EDCCA_DISABLE = 9, /*disable*/
}
静态配置
文件路径:
component/soc/usrcfg/amebadplus/ameba_wificfg.c
文件路径:
component/soc/usrcfg/amebalite/ameba_wificfg.c
文件路径:
component/soc/usrcfg/amebalite/ameba_wificfg.c
文件路径:
component/soc/usrcfg/amebalite/ameba_wificfg.c
文件路径:
component/soc/usrcfg/amebasmart/ameba_wificfg.c
函数名:
wifi_set_user_config()
对于 ETSI Adaptivity 测试,将 EDCCA 模式配置为 RTW_EDCCA_ADAPT
wifi_user_config.rtw_edcca_mode = RTW_EDCCA_ADAPT;对于 Carrier Sense 测试,将 EDCCA 模式配置为 RTW_EDCCA_CS
wifi_user_config.rtw_edcca_mode = RTW_EDCCA_CS;该配置将于 Wi-Fi 初始化过程中生效。
动态配置
不支持。
静态配置
文件路径:
firmware/component/wifi/whc/whc_host_linux/fullmac/ipc/ameba_wificfg.c
函数名:
wifi_set_user_config()
对于 ETSI Adaptivity 测试,将 EDCCA 模式配置为 RTW_EDCCA_ADAPT
wifi_user_config.rtw_edcca_mode = RTW_EDCCA_ADAPT;
对于 Carrier Sense 测试,将 EDCCA 模式配置为 RTW_EDCCA_CS
wifi_user_config.rtw_edcca_mode = RTW_EDCCA_CS;
该配置将于 Wi-Fi 初始化过程中生效。
动态配置
EDCCA 模式已经集成在路径
/proc/net/whc_fullmac/wlan0/edcca_mode
。使用以下命令读取或修改此设置:echo n > /proc/net/whc_fullmac/wlan0/edcca_mode cat /proc/net/whc_fullmac/wlan0/edcca_mode
备注
n 的取值范围是 [0, 1, 2, 9]。
端口可能不是
wlan0
,请根据实际应用的端口号来设定。
示例:
/ # echo 1 > /proc/net/whc_fullmac/wlan0/edcca_mode / # cat /proc/net/whc_fullmac/wlan0/edcca_mode 1
EDCCA 门限
在与 AP 建立连接后,使用以下命令获取当前的 EDCCA 阈值:
AT+WLDBG=get_edcca_th
在大多数场景中,默认配置足以满足 Adaptivity 测试的要求。如需进行调整,请通过以下命令来修改 EDCCA 阈值:
AT+WLDBG=fix_edcca_th <value>
备注
该值的单位是 dBm,范围是 [-60, -80],最小调整步长为 1。
示例:
AT+WLDBG=get_edcca_th
[WLDBG]: _AT_WLAN_IWPRIV_
[WLAN-A] [iwpriv_command] cmd name: get_edcca_th
[WLAN-A] edcca thre=-60 dbm
AT+WLDBG=fix_edcca_th -62
[WLDBG]: _AT_WLAN_IWPRIV_
[WLAN-A] [iwpriv_command] cmd name: fix_edcca_th
目前无 ATWZ
命令可用于设置或获取 EDCCA 阈值。客户可通过编译如下代码后使用。
获取当前 EDCCA 阈值
ATWZ get_edcca_th
设置 EDCCA 阈值
ATWZ fix_edcca_th <value>
备注
该值的单位是 dBm, 范围是 [-60, -80], 最小调整步长为 1。
客户可以参考 https://github.com/Ameba-AIoT/ameba-linux-development/tree/ameba-6.6.y/wifi/ATWZ 在 Linux 操作系统中添加 ATWZ
命令, 并根据具体需求进行适配。
在与 AP 建立连接后,使用以下命令获取当前的 EDCCA 阈值:
ATWZ get_edcca_th
在大多数场景中,默认配置足以满足 Adaptivity 测试的要求。如需进行调整,请通过以下命令来修改 EDCCA 阈值:
ATWZ fix_edcca_th <value>
备注
该值的单位是 dBm,范围是 [-60, -80],最小调整步长为 1。
示例:
/ # ATWZ get_edcca_th
[WLDBG]: _AT_WLAN_IWPRIV_
[WLAN-A] [iwpriv_command] cmd name: get_edcca_th
[WLAN-A] edcca thre=-60 dbm
/ # ATWZ fix_edcca_th -61
[WLAN-A] [iwpriv_command] cmd name: fix_edcca_th
/ # ATWZ get_edcca_th
[WLDBG]: _AT_WLAN_IWPRIV_
[WLAN-A] [iwpriv_command] cmd name: get_edcca_th
[WLAN-A] edcca thre=-61 dbm
调试 SOP
检查项 |
注意点 |
---|---|
测试 SDK |
|
测试环境 |
|
调整 EDCCA 阈值 |
使用 |
国家码设置
TBD
发送功率设置
TBD
DFS
TBD