Wi-Fi 基础架构

WHC IPC 是 SDK 默认的无线通信架构,具备全芯片兼容性,其核心特性包含:

  • 双核架构

    • 基于 Ameba 芯片的 AP 和 NP 双核设计

    • 通过内部 IPC 接口实现 Host 与 Device 之间的通信

    • 无须外置 Host 控制器

  • 协议栈并行执行

    • LWIP 网络协议层和 Wi-Fi 驱动层分别在不同的核上运行

    • 实现并行处理,提升数据传输效率

  • 模块化隔离设计

    • Wi-Fi 驱动层与用户应用层实现安全解耦

    • 提高系统的安全性、可靠性和鲁棒性


../../_images/wifi_basic_architecture.svg

WHC IPC 架构

Wi-Fi 初始化

SDK 默认启用 Wi-Fi 功能,在 main() 函数中会自动调用 wifi_init() 进行 Wi-Fi 初始化。完整的Wi-Fi 初始化流程如下图所示:

../../_images/wifi_basic_init.svg

备注

Wi-Fi 扫描

本节介绍几种常见的扫描配置,更多高级配置请参考 wifi_scan_networks()

Wi-Fi 扫描模式包括同步扫描和异步扫描,其完整扫描流程如下:

配置方式:

模式特点

  • 单线程安全:仅阻塞调用线程,其他线程正常运行

  • 推荐场景:大多数基础场景

../../_images/wifi_basic_scan_sync.svg

同步扫描流程

STA 模式

STA 连线流程

本节介绍几种常见的 STA 连线流程,更多高级配置请参考 wifi_connect()

配置方式

模式特点

  • 单线程安全:仅阻塞调用线程,其他线程正常运行

  • 推荐场景:大多数基础场景

../../_images/wifi_basic_connect_sync.svg

同步连线流程

备注

若已知 AP 信道(如通过独立扫描获取),设置 rtw_network_info::channel 可大幅减少连线耗时。

STA 断线自动重连

TBD

STA 上电自动重连

TBD

STA 省电模式

TBD

SoftAP 模式

SoftAP 常见工作流程

本节介绍 SoftAP 的常见工作流程,更多高级配置请参考 SoftAP 相关 API 文档。

SoftAP 的常见工作流程如下图所示:

../../_images/wifi_basic_softap_workflow.svg

SoftAP MAC 地址配置

SoftAP MAC 地址与芯片 MAC 地址有关,通过 component/soc/usrcfg/amebaxxx/ameba_wificfg.c 文件进行配置。

假设芯片的 MAC 地址为 00:e0:4c:01:02:03 ,则 SoftAP MAC 地址可以通过以下方式配置:

SoftAP MAC 地址: 00:e1:4c:01:02:03

wifi_user_config.concurrent_enabled = 1;
wifi_user_config.softap_addr_offset_idx = 1;

MAC 地址冲突限制

当 SoftAP 与芯片 MAC 地址相同时(示例3),STA 和 SoftAP 将无法同时工作,具体表现为:

  • SoftAP 启动后,STA 无法进行连线操作

  • STA 成功连线后,SoftAP 无法启动

SoftAP 信道切换通知(CSA)

TBD

SoftAP 与 STA 共存

TBD

混杂模式

TBD

国家码设置

TBD

发送功率设置

TBD