国家码

国家码配置表

Ameba 提供了一份国家码配置表,每个国家码对应特定的信道表与发射功率,以适应不同国家的无线管制法规。

用户可在此文件中查看与修改: component/soc/usrcfg/amebaxxx/ameba_wifi_country_code_table_usrcfg.c

第一列为国家码,由 2 个 ASCII 字符组成;

第二列为信道规划,详细介绍请参考 使用说明 ;

第三列为发射功率,详细介绍请参考 概述 ;

const struct rtw_country_code_table country_code_table[] = {
   {{'A', 'R'}, 0x4d, TXPWR_LMT_FCC}, /* 0000 Argentina */
   {{'B', 'O'}, 0x11, TXPWR_LMT_FCC}, /* 0001 Bolivia */
   {{'B', 'R'}, 0x62, TXPWR_LMT_FCC}, /* 0002 Brazil */
   {{'C', 'L'}, 0x76, TXPWR_LMT_CHILE}, /* 0003 Chile */
   {{'M', 'X'}, 0x4d, TXPWR_LMT_MEXICO}, /* 0010 Mexico */
   {{'U', 'S'}, 0x1b, TXPWR_LMT_FCC}, /* 0015 USA */
   ...
   ...
};

备注

  1. 国家码按 ISO 3166-1 进行编码

  2. 上述配置表为 Realtek 根据各国法规得出的推荐值,用户可按需自行修改

  3. 可按需求增加自定义国家码和配置,只要不和现有国家码重名即可

  4. 字符'0''0'为特殊值,表示 World Wide, 即全球通用,其信道表为所有国家信道表的交集,其发射功率为所有国家发射功率的最小值。

    {{'0', '0'}, 0x17, TXPWR_LMT_WW}, /* 0238 World Wide */
    

国家码设置接口

SDK 目前提供了 4 种国家码设置接口:

一般在量产产线上设置。

国家码占用 efuse 的 0x13B0x13C 栏位,使用 ASCII 字符编码.

示例 1: 设置国家码为中国

iwpriv config_set wmap,13B,434E  /* 'C'=0x43, 'N'=0x4E */

示例 2: 设置国家码为 Worldwide

iwpriv config_set wmap,13B,3030   /* '0'=0x30 */

检查是否设置成功:

iwpriv efuse_get rmap,13B,2

备注

  1. Wi-Fi 配置文件的方式优先级高于 Efuse,若 wifi_user_config.country_code 不为无效值(0x0000),则以开发者配置文件为准

  2. API 与 802.11d 会动态修改国家码,优先级高于 Wi-Fi 配置文件与 Efuse 配置

802.11d

802.11d 默认处于关闭状态,在 Wi-Fi 配置文件(component/soc/usrcfg/amebaxxx/ameba_wificfg.c) 中开启:

wifi_user_config.rtw_802_11d_en = 1;  /* 1=Enable, 0=Disable */

启用后,设备通过解析环境中 AP 广播的国家信息元素,自动选择出现频次最高的国家码作为自身配置,从而动态适配不同国家的无线电法规。

不同 Wi-Fi 工作状态对应的国家码来源如下表:

Wi-Fi状态

国家码来源

初始化完成

Efuse芯片固化值/配置文件预设值/API设定值(参考 国家码设置接口 )

扫描完成

扫描到的AP广播国家码中出现频率最高的国家码

连线成功

当前连接AP广播的国家码

断线

扫描到的AP广播国家码中出现频率最高的国家码

调试命令

可执行 AT+WLDBG=regu 获取当前的国家码、信道表、发射功率等信息:

#AT+WLDBG=regu
[WLDBG]: _AT_WLAN_IWPRIV_
[WLAN-A] [iwpriv_command] cmd name: regu
[WLAN-A] Country code: 00
[WLAN-A] Channel plan: 17
[WLAN-A] Regulation: WW[WW disable]
[WLAN-A] Country code Version: R45
[WLAN-A] Channel plan Version: R70
[WLAN-A] Power limit: on

信道规划

使用说明

Realtek 维护了一份信道规划表(由 FAE/AE Release): WS-xxdate-Willis-Efuse_Channel_Plan_new_define-Rxx.xlsx

其中定义了不同编码对应的信道列表以及主动或被动扫描等信息。

以 USA 为例,其国家码配置表默认值如下:

{'U', 'S'}, 0x1b, TXPWR_LMT_FCC}, /* 0015 USA */

其中信道规划为 0x1b ,在信道规划表中搜索 1Bh,可以得到 2G 和 5G 信道的整体信息:

../../_images/channel_plan_1b.png

根据 2G 信道编码 2G_02 ,可以得到 2G 信道的完整信息:

../../_images/channel_plan_2g02.png

根据 5G 信道编码 5G_52 ,可以得到 5G 信道的完整信息:

../../_images/channel_plan_5g52.png

备注

  1. 请忽略 “2G Regulation” 和 “5G Regulation” 栏位,Ameba 系列不使用这两列的信息,只是用来兼容旧版本

常见问题

  1. 如何修改信道规划?

    还是以 USA 为例,若想要禁用信道 12、13 (2G) 和 169、173、177 (5G)。

    查阅信道规划表,可见 0x25 是满足需求的:

    ../../_images/channel_plan_25.png

    修改国家码配置表中的信道规划栏位,将 0x1b 改为 0x25

    {'U', 'S'}, 0x25, TXPWR_LMT_FCC}, /* 0015 USA */
    
  2. 现有信道规划中找不到满足需求的?

    目前不支持用户自定义信道规划。

    常见的解决方法是在调用扫描、连线、启动 SoftAP 的 API 时指定工作信道。

    若仍无法满足需求,可以联系 Realtek 讨论新增信道规划。

  3. 如何获取信道规划表的版本?

    参考调试命令,获取当前 Wi-Fi 驱动使用的信道规划表版本: 调试命令

发射功率

概述

Realtek 提供了两种发射功率表:

  • Power by rate :各速率在满足 EVM 等性能要求下,所能达到的最大发射功率

  • Power by limit :为满足法规要求而限制的发射功率

整理在同一份文件中(由 FAE/AE 发布): WR-TX_Power by Rate&Limit Table-RTLxxx_Rxx.xls

Power by Rate

WR-TX_Power by Rate&Limit Table-RTLxxx_Rxx.xls 中可以找到 Realtek 提供的 Power by Rate 表:

../../_images/pwr_by_rate.png

默认数据基于 EVB 测试,单位为 0.25dB , 用户可直接更改表格中的数据,并参考 加载 Power by rate & limit 表 更新至固件,以满足实际产品的需求。

警告

不要修改除发射功率数据外的其他内容,可能会导致数据更新出错

Power by Limit

常用法规

默认提供了 5 种常用法规的数据:

../../_images/pwr_by_limit_countrys.png

以 FCC 为例,默认数据如下图:

../../_images/pwr_by_limit_fcc.png

同样的,用户可直接更改表格中的数据, 并参考 加载 Power by rate & limit 表 更新至固件

警告

不要修改除发射功率数据外的其他内容,可能会导致数据更新出错

选择哪张 Power by limit 表?

Power by limit 表的选择跟随国家码, 可参考 国家码配置表

以 USA 为例,Power by limit 默认使用 FCC 法规:

{'U', 'S'}, 0x1b, TXPWR_LMT_FCC}, /* 0015 USA */

若需要将 Power by limit 改成 ETSI,则:

{'U', 'S'}, 0x1b, TXPWR_LMT_ETSI}, /* 0015 USA */

增加其他法规

目前支持新增以下几种法规:

enum rtw_txpwr_lmt {
   TXPWR_LMT_FCC = 0,      /**< Federal Communications Commission (USA). */
   TXPWR_LMT_MKK = 1,      /**< Japan */
   TXPWR_LMT_ETSI = 2,     /**< European Telecommunications Standards Institute (CE).*/
   TXPWR_LMT_IC = 3,       /**< Canada */
   TXPWR_LMT_KCC = 4,      /**< South Korea */
   TXPWR_LMT_ACMA = 5,    /**< Australia */
   TXPWR_LMT_CHILE = 6,    /**< Chile */
   TXPWR_LMT_MEXICO = 7,   /**< Mexico */
   TXPWR_LMT_WW = 8,       /**< Worldwide, The mininum of all */
   TXPWR_LMT_GL = 9,              /**< Global */
   TXPWR_LMT_UKRAINE = 10, /**< Ukraine */
   TXPWR_LMT_CN = 11,       /**< China */
   TXPWR_LMT_QATAR = 12,   /**< Qatar */
   TXPWR_LMT_UK = 13,      /**< Great Britain (United Kingdom; England) */
   TXPWR_LMT_NCC = 14,     /**< Taiwan */
   TXPWR_LMT_EXT = 15,     /**< Customer Customization */

   /* ===== Add new power limit above this line. ===== */
   TXPWR_LMT_CONST_MAX     /**< unchanging part define max */
};

参考步骤:

  1. 复制一份现有法规的 sheet,并修改 sheet 命名

    ../../_images/pwr_by_limit_add.png
  2. 修改表格中的功率值

备注

  1. 请忽略 TXPWR_LMT_GL ,此选项保留只是为了兼容旧版本

增加自定义法规

TBD

加载 Power by rate & limit 表

Ameba 提供了 GenTxPowerTool,用来将 excel 中的数据转换成.c 文件,其操作步骤如下:

  1. 双击运行 GenTxPowerTool.exe

    ../../_images/pwr_tool_run.png
  2. 点击 Browser 找到 WR-TX_Power by Rate&Limit Table-RTLxxx_Rxx.xls

    ../../_images/pwr_tool_s2.png
  3. 点击 Generate, 正常会打印 OK

    ../../_images/pwr_tool_s3.png
  4. 在 target 路径下,找到刚刚生成的.c 文件

    ../../_images/pwr_tool_s4.png
  5. 将该文件复制到 component/soc/usrcfg/amebaxxx 路径下,替换原先的文件

  6. 重新编译固件

Power by rate & limit 使能设置

一般在量产产线上设置。

Power by rate & limit 占用 efuse 的 0x131[2:0] 栏位,不同值对应的含义如下:

0x131[2:0]

描述

0

仅使用 Power by rate 功率表

1

同时使用 Power by rate 和 Power by limit 功率表,发射功率取两者的较小值

2

两张功率表都不使用

备注

  1. Wi-Fi 配置文件优先级高于 Efuse,若 tx_pwr_table_selection 2,则以 Wi-Fi 配置文件为准

其他发射功率配置接口

API

描述

wifi_set_tx_power()

强制设置所有速率的发射功率为固定值

wifi_get_tx_power()

获取指定速率的发射功率

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 测试过程如下:

  1. 建立 DUT(待测设备)与陪测设备的连接,并开始数据传输。

  2. 添加干扰信号。在 2G 测试中,还需加入超出带宽长度的阻塞信号。

  3. 检查 DUT 是否停止数据传输。

  4. 在此期间,DUT 仅允许向陪测设备发送 ACK 包,其他类型的包均不允许发送。

  5. 确认测试是否通过。

    • 2G 测试通过标准:在 50ms 内,Tx 占空比不得超过 10%。如果满足,通过;否则失败

    • 5G 测试通过标准:在 50ms 内,Tx 占空比不得超过 5%。如果满足,通过;否则失败

  6. 在不同的信道、带宽和 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_mode。对于法规测试,则需要根据相应法规的测试需求配置为与之对应的 EDCCA 模式:

  • 静态配置

    文件路径: component/soc/usrcfg/amebadplus/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 门限

在与 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

调试 SOP

检查项

注意点

测试 SDK

  • SDK是普通模式,不是 MP 模式

  • EDCCA 模式配置成 RTW_EDCCA_ADAPT

测试环境

  • 测试应在屏蔽室内进行

  • 将所有天线连接到受控干扰源

  • 当存在漏包时,确认 DUT Tx 包的类型不是 ACK

  • 将设备的 RSSI 保持在 -50dBm 或更高

  • Adaptivity 测试评估的是 DUT 的 Tx 性能,而非 Rx

  • 干扰信号功率以 dBm 为单位测量,而不是 dBm/MHz

调整 EDCCA 阈值

使用 ATWZ 命令可以修改 EDCCA 阈值

DFS

DFS Slave

SDK 默认支持 DFS slave, STA 会自动处理 AP beacon 和 action 中的 CSA IE。

虽然不同国家不同法规对 DFS 的要求在细节上有差异,但主要影响的是 DFS Master,对 DFS Slave 来说,只要能满足以下要求,一般就可以通过法规测试:

  1. 按 AP 指示,决定是否在当前信道停止 Wi-Fi 传输

  2. 按 AP 指示,准时切换到新的信道

DFS Master

暂不支持