Wi-Fi 基础架构
WHC IPC 是 SDK 默认的无线通信架构,具备全芯片兼容性,其核心特性包含:
双核架构
基于 Ameba 芯片的 AP 和 NP 双核设计
通过内部 IPC 接口实现 Host 与 Device 之间的通信
无须外置 Host 控制器
协议栈并行执行
LWIP 网络协议层和 Wi-Fi 驱动层分别在不同的核上运行
实现并行处理,提升数据传输效率
模块化隔离设计
Wi-Fi 驱动层与用户应用层实现安全解耦
提高系统的安全性、可靠性和鲁棒性
WHC IPC 架构
Wi-Fi 初始化
SDK 默认启用 Wi-Fi 功能,在 main()
函数中会自动调用 wifi_init()
进行 Wi-Fi 初始化。完整的Wi-Fi 初始化流程如下图所示:
备注
Wi-Fi 初始化成功后,设备默认处于 STA模式。
若需启用 SoftAP模式 ,请在 Wi-Fi 初始化完成之后调用
wifi_start_ap()
。详细说明请参考 SoftAP 常见工作流程。
Wi-Fi 扫描
本节介绍几种常见的扫描配置,更多高级配置请参考 wifi_scan_networks()
。
Wi-Fi 扫描模式包括同步扫描和异步扫描,其完整扫描流程如下:
配置方式:
调用
wifi_scan_networks()
时设置block=0
设置
scan_user_callback
注册回调函数
模式特点:
非阻塞:参数验证通过后立即返回
推荐场景:实时性要求高的复杂场景
异步扫描流程
STA 模式
STA 连线流程
本节介绍几种常见的 STA 连线流程,更多高级配置请参考 wifi_connect()
。
配置方式:
调用
wifi_connect()
时设置block=0
注册
RTW_EVENT_JOIN_STATUS
事件回调
模式特点:
非阻塞:参数验证通过后立即返回
推荐场景:实时性要求高的复杂场景
异步连线流程
备注
若已知 AP 信道(如通过独立扫描获取),设置 rtw_network_info::channel
可大幅减少连线耗时。
STA 断线自动重连
TBD
STA 上电自动重连
TBD
STA 省电模式
TBD
SoftAP 模式
SoftAP 常见工作流程
本节介绍 SoftAP 的常见工作流程,更多高级配置请参考 SoftAP 相关 API 文档。
SoftAP 的常见工作流程如下图所示:
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;
SoftAP MAC 地址: 00:e0:4c:01:02:04
wifi_user_config.concurrent_enabled = 1;
wifi_user_config.softap_addr_offset_idx = 5;
SoftAP MAC 地址: 00:e0:4c:01:02:03
wifi_user_config.concurrent_enabled = 0;
MAC 地址冲突限制
当 SoftAP 与芯片 MAC 地址相同时(示例3),STA 和 SoftAP 将无法同时工作,具体表现为:
SoftAP 启动后,STA 无法进行连线操作
STA 成功连线后,SoftAP 无法启动
SoftAP 信道切换通知(CSA)
TBD
SoftAP 与 STA 共存
TBD
混杂模式
TBD
国家码设置
TBD
发送功率设置
TBD