mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-31 11:17:20 +02:00
Merge branch 'bugfix/update_esp32c3_docs_v4.3' into 'release/v4.3'
docs: update wifi driver docs(v4.3) See merge request espressif/esp-idf!13381
This commit is contained in:
@@ -1509,6 +1509,8 @@ In the future, all power save features will be supported on {IDF_TARGET_NAME} AP
|
|||||||
|
|
||||||
The table below shows the best throughput results we got in Espressif's lab and in a shield box.
|
The table below shows the best throughput results we got in Espressif's lab and in a shield box.
|
||||||
|
|
||||||
|
.. only:: esp32
|
||||||
|
|
||||||
+----------------------+-----------------+-----------------+---------------+--------------+
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
| Type/Throughput | Air In Lab | Shield-box | Test Tool | IDF Version |
|
| Type/Throughput | Air In Lab | Shield-box | Test Tool | IDF Version |
|
||||||
| | | | | (commit ID) |
|
| | | | | (commit ID) |
|
||||||
@@ -1517,16 +1519,58 @@ The table below shows the best throughput results we got in Espressif's lab and
|
|||||||
+----------------------+-----------------+-----------------+---------------+--------------+
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
| Raw 802.11 Packet TX | N/A | **130 MBit/s** | Internal tool | NA |
|
| Raw 802.11 Packet TX | N/A | **130 MBit/s** | Internal tool | NA |
|
||||||
+----------------------+-----------------+-----------------+---------------+--------------+
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
| UDP RX | 30 MBit/s | 90 MBit/s | iperf example | 05838641 |
|
| UDP RX | 30 MBit/s | 85 MBit/s | iperf example | 15575346 |
|
||||||
+----------------------+-----------------+-----------------+---------------+--------------+
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
| UDP TX | 30 MBit/s | 60 MBit/s | iperf example | 05838641 |
|
| UDP TX | 30 MBit/s | 75 MBit/s | iperf example | 15575346 |
|
||||||
+----------------------+-----------------+-----------------+---------------+--------------+
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
| TCP RX | 20 MBit/s | 50 MBit/s | iperf example | 05838641 |
|
| TCP RX | 20 MBit/s | 65 MBit/s | iperf example | 15575346 |
|
||||||
+----------------------+-----------------+-----------------+---------------+--------------+
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
| TCP TX | 20 MBit/s | 50 MBit/s | iperf example | 05838641 |
|
| TCP TX | 20 MBit/s | 75 MBit/s | iperf example | 15575346 |
|
||||||
+----------------------+-----------------+-----------------+---------------+--------------+
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
|
||||||
When the throughput is tested by iperf example, the sdkconfig is :idf_file:`examples/wifi/iperf/sdkconfig.ci.99`.
|
When the throughput is tested by iperf example, the sdkconfig is :idf_file:`examples/wifi/iperf/sdkconfig.defaults.esp32`.
|
||||||
|
|
||||||
|
.. only:: esp32s2
|
||||||
|
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| Type/Throughput | Air In Lab | Shield-box | Test Tool | IDF Version |
|
||||||
|
| | | | | (commit ID) |
|
||||||
|
+======================+=================+=================+===============+==============+
|
||||||
|
| Raw 802.11 Packet RX | N/A | **130 MBit/s** | Internal tool | NA |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| Raw 802.11 Packet TX | N/A | **130 MBit/s** | Internal tool | NA |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| UDP RX | 30 MBit/s | 70 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| UDP TX | 30 MBit/s | 50 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| TCP RX | 20 MBit/s | 32 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| TCP TX | 20 MBit/s | 37 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
|
||||||
|
When the throughput is tested by iperf example, the sdkconfig is :idf_file:`examples/wifi/iperf/sdkconfig.defaults.esp32s2`.
|
||||||
|
|
||||||
|
.. only:: esp32c3
|
||||||
|
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| Type/Throughput | Air In Lab | Shield-box | Test Tool | IDF Version |
|
||||||
|
| | | | | (commit ID) |
|
||||||
|
+======================+=================+=================+===============+==============+
|
||||||
|
| Raw 802.11 Packet RX | N/A | **130 MBit/s** | Internal tool | NA |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| Raw 802.11 Packet TX | N/A | **130 MBit/s** | Internal tool | NA |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| UDP RX | 30 MBit/s | 50 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| UDP TX | 30 MBit/s | 40 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| TCP RX | 20 MBit/s | 35 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
| TCP TX | 20 MBit/s | 37 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------+-----------------+-----------------+---------------+--------------+
|
||||||
|
|
||||||
|
When the throughput is tested by iperf example, the sdkconfig is :idf_file:`examples/wifi/iperf/sdkconfig.defaults.esp32c3`.
|
||||||
|
|
||||||
Wi-Fi 80211 Packet Send
|
Wi-Fi 80211 Packet Send
|
||||||
---------------------------
|
---------------------------
|
||||||
@@ -1818,12 +1862,18 @@ Theoretically the higher priority AC has better performance than the low priorit
|
|||||||
Wi-Fi AMSDU
|
Wi-Fi AMSDU
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
{IDF_TARGET_NAME} supports receiving AMSDU but doesn't support transmitting AMSDU. The transmitting AMSDU is not necessary since {IDF_TARGET_NAME} has transmitting AMPDU.
|
{IDF_TARGET_NAME} supports receiving and transmitting AMSDU.
|
||||||
|
|
||||||
Wi-Fi Fragment
|
Wi-Fi Fragment
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
{IDF_TARGET_NAME} supports Wi-Fi receiving fragment, but doesn't support Wi-Fi transmitting fragment. The Wi-Fi transmitting fragment will be supported in future release.
|
.. only:: esp32 or esp32s2
|
||||||
|
|
||||||
|
supports Wi-Fi receiving fragment, but doesn't support Wi-Fi transmitting fragment.
|
||||||
|
|
||||||
|
.. only:: esp32c3
|
||||||
|
|
||||||
|
ESP32C3 supports Wi-Fi receiving and transmitting fragment.
|
||||||
|
|
||||||
WPS Enrollee
|
WPS Enrollee
|
||||||
-------------------------
|
-------------------------
|
||||||
@@ -1930,6 +1980,8 @@ Increasing the size or number of the buffers mentioned above properly can improv
|
|||||||
|
|
||||||
**Throughput optimization by placing code in IRAM:**
|
**Throughput optimization by placing code in IRAM:**
|
||||||
|
|
||||||
|
.. only:: esp32 or esp32s2
|
||||||
|
|
||||||
- :ref:`CONFIG_ESP32_WIFI_IRAM_OPT`
|
- :ref:`CONFIG_ESP32_WIFI_IRAM_OPT`
|
||||||
If this option is enabled, some Wi-Fi functions are moved to IRAM, improving throughput. This increases IRAM usage by 15 kB.
|
If this option is enabled, some Wi-Fi functions are moved to IRAM, improving throughput. This increases IRAM usage by 15 kB.
|
||||||
|
|
||||||
@@ -2033,6 +2085,42 @@ The parameters not mentioned in the following table should be set to the default
|
|||||||
| UDP RX throughput | 78.1 | 66.7 | 65.3 | 53.8 | 28.5 |
|
| UDP RX throughput | 78.1 | 66.7 | 65.3 | 53.8 | 28.5 |
|
||||||
+----------------------------+-------+------------------+---------+---------------+---------+
|
+----------------------------+-------+------------------+---------+---------------+---------+
|
||||||
|
|
||||||
|
.. only:: esp32c3
|
||||||
|
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| Rank | Iperf | Default | Minimum |
|
||||||
|
+============================+=======+=========+=========+
|
||||||
|
| Available memory(KB) | 59 | 160 | 180 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| WIFI_STATIC_RX_BUFFER_NUM | 20 | 8 | 3 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| WIFI_DYNAMIC_RX_BUFFER_NUM | 40 | 16 | 6 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| WIFI_DYNAMIC_TX_BUFFER_NUM | 40 | 16 | 6 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| WIFI_RX_BA_WIN | 32 | 16 | 6 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| TCP_SND_BUF_DEFAULT(KB) | 40 | 16 | 6 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| TCP_WND_DEFAULT(KB) | 40 | 16 | 6 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| WIFI_IRAM_OPT | - | - | - |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| WIFI_RX_IRAM_OPT | - | - | - |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| LWIP_IRAM_OPTIMIZATION | 13 | 13 | 0 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| TCP TX throughput | 38.1 | 27.2 | 20.4 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| TCP RX throughput | 35.3 | 24.2 | 17.4 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| UDP TX throughput | 40.6 | 38.9 | 34.1 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| UDP RX throughput | 52.4 | 44.5 | 44.2 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
|
||||||
|
.. only:: esp32 or esp32s2
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
The result is tested with a single stream in a shielded box using an ASUS RT-N66U router.
|
The result is tested with a single stream in a shielded box using an ASUS RT-N66U router.
|
||||||
{IDF_TARGET_NAME}'s CPU is dual core with 240 MHz, {IDF_TARGET_NAME}'s flash is in QIO mode with 80 MHz.
|
{IDF_TARGET_NAME}'s CPU is dual core with 240 MHz, {IDF_TARGET_NAME}'s flash is in QIO mode with 80 MHz.
|
||||||
@@ -2075,6 +2163,21 @@ The parameters not mentioned in the following table should be set to the default
|
|||||||
- **Minimum rank**
|
- **Minimum rank**
|
||||||
This is the minimum configuration rank of {IDF_TARGET_NAME}. The protocol stack only uses the necessary memory for running. It is suitable for scenarios that have no requirement for performance and the application requires lots of space.
|
This is the minimum configuration rank of {IDF_TARGET_NAME}. The protocol stack only uses the necessary memory for running. It is suitable for scenarios that have no requirement for performance and the application requires lots of space.
|
||||||
|
|
||||||
|
.. only:: esp32c3
|
||||||
|
|
||||||
|
**Ranks:**
|
||||||
|
|
||||||
|
- **Iperf rank**
|
||||||
|
{IDF_TARGET_NAME} extreme performance rank used to test extreme performance.
|
||||||
|
|
||||||
|
- **Default rank**
|
||||||
|
{IDF_TARGET_NAME}'s default configuration rank, the available memory, and performance are in balance.
|
||||||
|
|
||||||
|
- **Minimum rank**
|
||||||
|
This is the minimum configuration rank of {IDF_TARGET_NAME}. The protocol stack only uses the necessary memory for running. It is suitable for scenarios that have no requirement for performance and the application requires lots of space.
|
||||||
|
|
||||||
|
.. only:: esp32 or esp32s2
|
||||||
|
|
||||||
Using PSRAM
|
Using PSRAM
|
||||||
++++++++++++++++++++++++++++
|
++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
@@ -32,24 +32,24 @@
|
|||||||
|
|
||||||
Wi-Fi 初始化
|
Wi-Fi 初始化
|
||||||
+++++++++++++++
|
+++++++++++++++
|
||||||
请参阅 `{IDF_TARGET_NAME} Wi-Fi station 一般情况`_、`[IDF_TARGET_NAME] Wi-Fi AP 一般情况`_。
|
请参阅 `{IDF_TARGET_NAME} Wi-Fi station 一般情况`_、`{IDF_TARGET_NAME} Wi-Fi AP 一般情况`_。
|
||||||
|
|
||||||
启动/连接 Wi-Fi
|
启动/连接 Wi-Fi
|
||||||
++++++++++++++++++++
|
++++++++++++++++++++
|
||||||
请参阅 `{IDF_TARGET_NAME} Wi-Fi station 一般情况`_、`[IDF_TARGET_NAME] Wi-Fi AP 一般情况`_。
|
请参阅 `{IDF_TARGET_NAME} Wi-Fi station 一般情况`_、`{IDF_TARGET_NAME} Wi-Fi AP 一般情况`_。
|
||||||
|
|
||||||
事件处理
|
事件处理
|
||||||
++++++++++++++
|
++++++++++++++
|
||||||
通常,在晴好环境下编写代码难度并不大,如 `WIFI_EVENT_STA_START`_、`WIFI_EVENT_STA_CONNECTED`_ 中所述。难度在于如何在阴翳的困难环境下编写代码,如 `WIFI_EVENT_STA_DISCONNECTED`_ 中所述。能否在后者情况下完美地解决各类事件冲突,是编写一个强健的 Wi-Fi 应用程序的根本。请参阅 `{IDF_TARGET_NAME} Wi-Fi station 一般情况`_、`[IDF_TARGET_NAME] Wi-Fi AP 一般情况`_。另可参阅 ESP-IDF 中的事件处理概述 `Event Handling <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/event-handling.html?highlight=event%20handling>`_。
|
通常,在晴好环境下编写代码难度并不大,如 `WIFI_EVENT_STA_START`_、`WIFI_EVENT_STA_CONNECTED`_ 中所述。难度在于如何在阴翳的困难环境下编写代码,如 `WIFI_EVENT_STA_DISCONNECTED`_ 中所述。能否在后者情况下完美地解决各类事件冲突,是编写一个强健的 Wi-Fi 应用程序的根本。请参阅 `{IDF_TARGET_NAME} Wi-Fi station 一般情况`_、`{IDF_TARGET_NAME} Wi-Fi AP 一般情况`_。另可参阅 ESP-IDF 中的事件处理概述 `Event Handling <https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/event-handling.html?highlight=event%20handling>`_。
|
||||||
|
|
||||||
编写错误恢复程序
|
编写错误恢复程序
|
||||||
++++++++++++++++++++++++++++++++++++++++++++++++++++
|
++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
除了在能在比较差的环境下工作,错误恢复能力也对一个强健的 Wi-Fi 应用程序至关重要。请参阅 `[IDF_TARGET_NAME] Wi-Fi API 错误代码`_。
|
除了在能在比较差的环境下工作,错误恢复能力也对一个强健的 Wi-Fi 应用程序至关重要。请参阅 `{IDF_TARGET_NAME} Wi-Fi API 错误代码`_。
|
||||||
|
|
||||||
|
|
||||||
[IDF_TARGET_NAME] Wi-Fi API 错误代码
|
{IDF_TARGET_NAME} Wi-Fi API 错误代码
|
||||||
--------------------------------------
|
--------------------------------------
|
||||||
所有 [IDF_TARGET_NAME] Wi-Fi API 都有定义好的返回值,即错误代码。这些错误代码可分类为:
|
所有 {IDF_TARGET_NAME} Wi-Fi API 都有定义好的返回值,即错误代码。这些错误代码可分类为:
|
||||||
|
|
||||||
- 无错误,例如:返回值 ESP_OK 代表 API 成功返回
|
- 无错误,例如:返回值 ESP_OK 代表 API 成功返回
|
||||||
- 可恢复错误,例如:ESP_ERR_NO_MEM
|
- 可恢复错误,例如:ESP_ERR_NO_MEM
|
||||||
@@ -66,7 +66,7 @@ Wi-Fi 初始化
|
|||||||
|
|
||||||
在 esp_err.h 中,ESP_ERROR_CHECK 负责检查返回值。这是一个较为常见的错误处理代码,可在应用程序开发阶段作为默认的错误处理代码。但是,我们强烈建议 API 的使用者自己编写错误处理代码。
|
在 esp_err.h 中,ESP_ERROR_CHECK 负责检查返回值。这是一个较为常见的错误处理代码,可在应用程序开发阶段作为默认的错误处理代码。但是,我们强烈建议 API 的使用者自己编写错误处理代码。
|
||||||
|
|
||||||
初始化 [IDF_TARGET_NAME] Wi-Fi API 参数
|
初始化 {IDF_TARGET_NAME} Wi-Fi API 参数
|
||||||
----------------------------------------------------
|
----------------------------------------------------
|
||||||
|
|
||||||
初始化 API 的结构参数时,应遵循以下两种方式之一:
|
初始化 API 的结构参数时,应遵循以下两种方式之一:
|
||||||
@@ -78,9 +78,9 @@ Wi-Fi 初始化
|
|||||||
|
|
||||||
.. _wifi-programming-model:
|
.. _wifi-programming-model:
|
||||||
|
|
||||||
[IDF_TARGET_NAME] Wi-Fi 编程模型
|
{IDF_TARGET_NAME} Wi-Fi 编程模型
|
||||||
-----------------------------------------
|
-----------------------------------------
|
||||||
[IDF_TARGET_NAME] Wi-Fi 编程模型如下图所示:
|
{IDF_TARGET_NAME} Wi-Fi 编程模型如下图所示:
|
||||||
|
|
||||||
.. blockdiag::
|
.. blockdiag::
|
||||||
:caption: Wi-Fi 编程模型
|
:caption: Wi-Fi 编程模型
|
||||||
@@ -364,7 +364,7 @@ Wi-Fi 驱动程序初始化成功后,可以进入到配置阶段。该场景
|
|||||||
- s8.3:调用函数 :cpp:func:`esp_wifi_deinit()` 清理 Wi-Fi 驱动程序。
|
- s8.3:调用函数 :cpp:func:`esp_wifi_deinit()` 清理 Wi-Fi 驱动程序。
|
||||||
|
|
||||||
|
|
||||||
[IDF_TARGET_NAME] Wi-Fi AP 一般情况
|
{IDF_TARGET_NAME} Wi-Fi AP 一般情况
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
下图为 AP 模式下的宏观场景,其中包含不同阶段的具体描述:
|
下图为 AP 模式下的宏观场景,其中包含不同阶段的具体描述:
|
||||||
|
|
||||||
@@ -1151,7 +1151,7 @@ LR 兼容性
|
|||||||
根据上表,得出以下结论:
|
根据上表,得出以下结论:
|
||||||
|
|
||||||
- 对于已使能 LR 的 {IDF_TARGET_NAME} AP,由于不是以 LR 模式发送 beacon,因此与传统的 802.11 模式不兼容。
|
- 对于已使能 LR 的 {IDF_TARGET_NAME} AP,由于不是以 LR 模式发送 beacon,因此与传统的 802.11 模式不兼容。
|
||||||
- 对于已使能 LR 且并非仅 LR 模式的 [IDF_TARGET_NAME] station,与传统 802.11 模式兼容。
|
- 对于已使能 LR 且并非仅 LR 模式的 {IDF_TARGET_NAME} station,与传统 802.11 模式兼容。
|
||||||
- 如果 station 和 AP 都是 {IDF_TARGET_NAME} 设备,并且两者都使能 LR 模式,则协商的模式支持 LR。
|
- 如果 station 和 AP 都是 {IDF_TARGET_NAME} 设备,并且两者都使能 LR 模式,则协商的模式支持 LR。
|
||||||
|
|
||||||
如果协商的 Wi-Fi 模式同时支持传统的 802.11 模式和 LR 模式,则 Wi-Fi 驱动程序会在不同的 Wi-Fi 模式下自动选择最佳数据速率,应用程序无需任何操作。
|
如果协商的 Wi-Fi 模式同时支持传统的 802.11 模式和 LR 模式,则 Wi-Fi 驱动程序会在不同的 Wi-Fi 模式下自动选择最佳数据速率,应用程序无需任何操作。
|
||||||
@@ -1327,6 +1327,8 @@ AP 睡眠
|
|||||||
|
|
||||||
下表是我们在 Espressif 实验室和屏蔽箱中获得的最佳吞吐量结果。
|
下表是我们在 Espressif 实验室和屏蔽箱中获得的最佳吞吐量结果。
|
||||||
|
|
||||||
|
.. only:: esp32
|
||||||
|
|
||||||
+----------------------------+----------------+------------+---------------+----------------------+
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
| 类型/吞吐量 | 实验室空气状况 | 屏蔽箱 | 测试工具 | IDF 版本 (commit ID) |
|
| 类型/吞吐量 | 实验室空气状况 | 屏蔽箱 | 测试工具 | IDF 版本 (commit ID) |
|
||||||
+----------------------------+----------------+------------+---------------+----------------------+
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
@@ -1334,16 +1336,56 @@ AP 睡眠
|
|||||||
+----------------------------+----------------+------------+---------------+----------------------+
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
| 原始 802.11 数据包发送数据 | N/A | 130 MBit/s | 内部工具 | N/A |
|
| 原始 802.11 数据包发送数据 | N/A | 130 MBit/s | 内部工具 | N/A |
|
||||||
+----------------------------+----------------+------------+---------------+----------------------+
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
| UDP 接收数据 | 30 MBit/s | 90 MBit/s | iperf example | 05838641 |
|
| UDP 接收数据 | 30 MBit/s | 85 MBit/s | iperf example | 15575346 |
|
||||||
+----------------------------+----------------+------------+---------------+----------------------+
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
| UDP 发送数据 | 30 MBit/s | 60 MBit/s | iperf example | 05838641 |
|
| UDP 发送数据 | 30 MBit/s | 75 MBit/s | iperf example | 15575346 |
|
||||||
+----------------------------+----------------+------------+---------------+----------------------+
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
| TCP 接收数据 | 20 MBit/s | 50 MBit/s | iperf example | 05838641 |
|
| TCP 接收数据 | 20 MBit/s | 65 MBit/s | iperf example | 15575346 |
|
||||||
+----------------------------+----------------+------------+---------------+----------------------+
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
| TCP 发送数据 | 20 MBit/s | 50 MBit/s | iperf example | 05838641 |
|
| TCP 发送数据 | 20 MBit/s | 75 MBit/s | iperf example | 15575346 |
|
||||||
+----------------------------+----------------+------------+---------------+----------------------+
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
|
||||||
使用 iperf example 测试吞吐量时,sdkconfig 是 :idf_file:` 示例/wifi/iperf/sdkconfig.ci.99`。
|
使用 iperf example 测试吞吐量时,sdkconfig 是 :idf_file:` 示例/wifi/iperf/sdkconfig.defaults.esp32`。
|
||||||
|
|
||||||
|
.. only:: esp32s2
|
||||||
|
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| 类型/吞吐量 | 实验室空气状况 | 屏蔽箱 | 测试工具 | IDF 版本 (commit ID) |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| 原始 802.11 数据包接收数据 | N/A | 130 MBit/s | 内部工具 | N/A |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| 原始 802.11 数据包发送数据 | N/A | 130 MBit/s | 内部工具 | N/A |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| UDP 接收数据 | 30 MBit/s | 70 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| UDP 发送数据 | 30 MBit/s | 50 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| TCP 接收数据 | 20 MBit/s | 32 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| TCP 发送数据 | 20 MBit/s | 37 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
|
||||||
|
使用 iperf example 测试吞吐量时,sdkconfig 是 :idf_file:` 示例/wifi/iperf/sdkconfig.defaults.esp32s2`。
|
||||||
|
|
||||||
|
.. only:: esp32c3
|
||||||
|
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| 类型/吞吐量 | 实验室空气状况 | 屏蔽箱 | 测试工具 | IDF 版本 (commit ID) |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| 原始 802.11 数据包接收数据 | N/A | 130 MBit/s | 内部工具 | N/A |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| 原始 802.11 数据包发送数据 | N/A | 130 MBit/s | 内部工具 | N/A |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| UDP 接收数据 | 30 MBit/s | 50 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| UDP 发送数据 | 30 MBit/s | 40 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| TCP 接收数据 | 20 MBit/s | 35 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
| TCP 发送数据 | 20 MBit/s | 37 MBit/s | iperf example | 15575346 |
|
||||||
|
+----------------------------+----------------+------------+---------------+----------------------+
|
||||||
|
|
||||||
|
使用 iperf example 测试吞吐量时,sdkconfig 是 :idf_file:` 示例/wifi/iperf/sdkconfig.defaults.esp32c3`。
|
||||||
|
|
||||||
Wi-Fi 80211 数据包发送
|
Wi-Fi 80211 数据包发送
|
||||||
---------------------------
|
---------------------------
|
||||||
@@ -1613,12 +1655,18 @@ Wi-Fi 协议中定义了四个 AC (访问类别),每个 AC 有各自的优
|
|||||||
Wi-Fi AMSDU
|
Wi-Fi AMSDU
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
{IDF_TARGET_NAME} 支持接收 AMSDU,但不支持发送 AMSDU。因为 {IDF_TARGET_NAME} 已发送 AMPDU,因此无需发送 AMSDU。
|
{IDF_TARGET_NAME} 支持接收和发送 AMSDU。
|
||||||
|
|
||||||
Wi-Fi 分片
|
Wi-Fi 分片
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
[IDF_TARGET_NAME] 支持 Wi-Fi 接收分片,但不支持 Wi-Fi 发送分片。未来的版本将支持 Wi-Fi 传输分片。
|
.. only:: esp32 or esp32s2
|
||||||
|
|
||||||
|
支持 Wi-Fi 接收分片,但不支持 Wi-Fi 发送分片。
|
||||||
|
|
||||||
|
.. only:: esp32c3
|
||||||
|
|
||||||
|
ESP32C3 支持 Wi-Fi 接收和发送分片。
|
||||||
|
|
||||||
WPS 注册
|
WPS 注册
|
||||||
-------------------------
|
-------------------------
|
||||||
@@ -1725,6 +1773,8 @@ Wi-Fi 使用的堆内存峰值是 Wi-Fi 驱动程序 **理论上消耗的最大
|
|||||||
|
|
||||||
**通过在 IRAM 中放置代码优化吞吐量:**
|
**通过在 IRAM 中放置代码优化吞吐量:**
|
||||||
|
|
||||||
|
.. only:: esp32 or esp32s2
|
||||||
|
|
||||||
- :ref:`CONFIG_ESP32_WIFI_IRAM_OPT`
|
- :ref:`CONFIG_ESP32_WIFI_IRAM_OPT`
|
||||||
如果使能该选项,一些 Wi-Fi 功能将被移至 IRAM,从而提高吞吐量,IRAM 使用量将增加 15 kB。
|
如果使能该选项,一些 Wi-Fi 功能将被移至 IRAM,从而提高吞吐量,IRAM 使用量将增加 15 kB。
|
||||||
|
|
||||||
@@ -1829,6 +1879,36 @@ Wi-Fi 使用的堆内存峰值是 Wi-Fi 驱动程序 **理论上消耗的最大
|
|||||||
| UDP 接收数据吞吐量 | 78.1 | 66.7 | 65.3 | 53.8 | 28.5 |
|
| UDP 接收数据吞吐量 | 78.1 | 66.7 | 65.3 | 53.8 | 28.5 |
|
||||||
+----------------------------+-------+--------+------+----------+-------+
|
+----------------------------+-------+--------+------+----------+-------+
|
||||||
|
|
||||||
|
.. only:: esp32c3
|
||||||
|
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| 等级 | Iperf | 默认 | 最小 |
|
||||||
|
+============================+=======+=========+=========+
|
||||||
|
| 可用内存(KB) | 59 | 160 | 180 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| WIFI_STATIC_RX_BUFFER_NUM | 20 | 8 | 3 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| WIFI_DYNAMIC_RX_BUFFER_NUM | 40 | 16 | 6 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| WIFI_DYNAMIC_TX_BUFFER_NUM | 40 | 16 | 6 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| WIFI_RX_BA_WIN | 32 | 16 | 6 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| TCP_SND_BUF_DEFAULT(KB) | 40 | 16 | 6 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| TCP_WND_DEFAULT(KB) | 40 | 16 | 6 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| LWIP_IRAM_OPTIMIZATION | 13 | 13 | 0 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| TCP 发送数据吞吐量 | 38.1 | 27.2 | 20.4 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| TCP 接收数据吞吐量 | 35.3 | 24.2 | 17.4 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| UDP 发送数据吞吐量 | 40.6 | 38.9 | 34.1 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
| UDP 接收数据吞吐量 | 52.4 | 44.5 | 44.2 |
|
||||||
|
+----------------------------+-------+---------+---------+
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
以上结果由使用华硕RT-N66U路由器,在屏蔽箱中进行单流测试得出。{IDF_TARGET_NAME} 的 CPU 为双核,频率为 240 MHz,flash 为 QIO 模式,频率为 80 MHz。
|
以上结果由使用华硕RT-N66U路由器,在屏蔽箱中进行单流测试得出。{IDF_TARGET_NAME} 的 CPU 为双核,频率为 240 MHz,flash 为 QIO 模式,频率为 80 MHz。
|
||||||
|
|
||||||
@@ -1871,6 +1951,21 @@ Wi-Fi 使用的堆内存峰值是 Wi-Fi 驱动程序 **理论上消耗的最大
|
|||||||
- **最小等级**
|
- **最小等级**
|
||||||
{IDF_TARGET_NAME} 的最小配置等级。协议栈只使用运行所需的内存。适用于对性能没有要求,而应用程序需要大量内存的场景。
|
{IDF_TARGET_NAME} 的最小配置等级。协议栈只使用运行所需的内存。适用于对性能没有要求,而应用程序需要大量内存的场景。
|
||||||
|
|
||||||
|
.. only:: esp32c3
|
||||||
|
|
||||||
|
**等级:**
|
||||||
|
|
||||||
|
- **Iperf 等级**
|
||||||
|
{IDF_TARGET_NAME} 极端性能等级,用于测试极端性能。
|
||||||
|
|
||||||
|
- **默认等级**
|
||||||
|
IDF_TARGET_NAME} 的默认配置等级、兼顾可用内存和性能。
|
||||||
|
|
||||||
|
- **最小等级**
|
||||||
|
{IDF_TARGET_NAME} 的最小配置等级。协议栈只使用运行所需的内存。适用于对性能没有要求,而应用程序需要大量内存的场景。
|
||||||
|
|
||||||
|
.. only:: esp32 or esp32s2
|
||||||
|
|
||||||
使用 PSRAM
|
使用 PSRAM
|
||||||
++++++++++++++++++++++++++++
|
++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
22
examples/wifi/iperf/sdkconfig.defaults.esp32c3
Normal file
22
examples/wifi/iperf/sdkconfig.defaults.esp32c3
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# ESP32C3
|
||||||
|
#
|
||||||
|
CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=20
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=40
|
||||||
|
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=40
|
||||||
|
CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y
|
||||||
|
CONFIG_ESP32_WIFI_TX_BA_WIN=32
|
||||||
|
CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y
|
||||||
|
CONFIG_ESP32_WIFI_RX_BA_WIN=32
|
||||||
|
|
||||||
|
CONFIG_LWIP_TCP_SND_BUF_DEFAULT=40960
|
||||||
|
CONFIG_LWIP_TCP_WND_DEFAULT=40960
|
||||||
|
CONFIG_LWIP_TCP_RECVMBOX_SIZE=64
|
||||||
|
CONFIG_LWIP_UDP_RECVMBOX_SIZE=64
|
||||||
|
CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64
|
||||||
|
|
||||||
|
CONFIG_ESP32C3_DEFAULT_CPU_FREQ_160=y
|
||||||
|
CONFIG_ESP32C3_DEFAULT_CPU_FREQ_MHZ=160
|
||||||
|
|
||||||
|
CONFIG_ESPTOOLPY_FLASHMODE_QIO=y
|
||||||
|
CONFIG_ESPTOOLPY_FLASHFREQ_80M=y
|
Reference in New Issue
Block a user