Wi-Fi Zephyr 架构

Wi-Fi Zephyr 的架构如下图所示:

../../rst_wifi/2_wifi_zephyr/figures/wifi_zephyr_arch.svg

Wi-Fi Zephyr 文件目录

├─ zephyr/drivers/wifi/ameba/src
│  ├─ ameba_wifi_drv.c
│  └─ ameba_wifi.h
├─ modules/hal/realtek/ameba/common/wifi/source
│  ├─ ameba_wificfg.c
│  ├─ api
│  │  ├─ wifi_ind.c
│  │  └─ wifi_init_zephyr.c
│  ├─ common
│  │  ├─ rom_rtw_queue.c
│  │  ├─ rtw_atomic.c
│  │  └─ rtw_wakelock_zephyr.c
│  └─ inic/ipc
│     ├─ inic_ipc_msg_queue.h
│     ├─ inic_ipc_msg_queue.c
│     ├─ inic_ipc_host_zephyr.h
│     ├─ inic_ipc_host_zephyr.c
│     ├─ inic_ipc_host_trx.h
│     ├─ inic_ipc_host_trx.c
│     ├─ inic_ipc_host_api_ext.c
│     ├─ inic_ipc_host_api_basic.c
│     ├─ inic_ipc_host_api.c
│     ├─ inic_ipc_host.c
│     ├─ inic_ipc.h
│     └─ inic_ipc_cfg.h

Wi-Fi Zephyr 特点

Features

Zephyr

Wi-Fi API

Zephyr Wi-Fi APIs

Wi-Fi mode

  • Station

  • SoftAP

Wi-Fi security

  • Open

  • WPA

  • WPA2

  • WPA3

Wowlan

TBD

Wi-Fi Zephyr 指南

必须使能的宏:

CONFIG_WIFI=y
CONFIG_NET_L2_ETHERNET=y
CONFIG_NET_UDP_CHECKSUM=y
CONFIG_REALTEK_AMEBA_HAL_LIB=y
CONFIG_REALTEK_AMEBA_ZEPHYR_WIFI=y
CONFIG_WLAN=y
CONFIG_REALTEK_AMEBA_WIFI_INIC=n
CONFIG_ETH_DRIVER=y
CONFIG_ETH_PHY_DRIVER=y
CONFIG_NET_DHCPV4=y
CONFIG_WIFI_AMEBA=y
CONFIG_NETWORKING=y
CONFIG_NET_L2_WIFI_SHELL=y
CONFIG_NET_L2_WIFI_MGMT=y
CONFIG_NET_IPV4=y
CONFIG_NET_SHELL=y
CONFIG_NET_UDP=y
CONFIG_NET_MGMT=y
CONFIG_NET_DHCPV4_SERVER=y  # 用于 SoftAP 模式
CONFIG_NET_IF_MAX_IPV4_COUNT=2
CONFIG_NET_TCP=y
CONFIG_NET_LOG=y
CONFIG_ENTROPY_GENERATOR=y
CONFIG_TEST_RANDOM_GENERATOR=y  # 用于测试

zperf 测试需要的宏:

CONFIG_NET_ZPERF=y
CONFIG_NET_SOCKETS=y
CONFIG_NET_SOCKETS_SERVICE_THREAD_PRIO=-1
CONFIG_NET_SOCKETS_POLL_MAX=12
CONFIG_POSIX_API=y
CONFIG_NET_CONFIG_SETTINGS=y
# 用于 zperf 中的 TCP 吞吐量测试
CONFIG_NET_PKT_RX_COUNT=40
CONFIG_NET_PKT_TX_COUNT=40
CONFIG_NET_BUF_RX_COUNT=160
CONFIG_NET_BUF_TX_COUNT=160
CONFIG_NET_BUF_DATA_SIZE=256

编译命令:

在路径 {sdk} 下,执行以下命令:

./nuwa.py build -a applications/thread -d rtl872xd_evb -p

烧录固件:

固件位于路径 {sdk}/images 下 ,包括以下文件:

bootloader_all.bin
km0_km4_app.bin

Wi-Fi Zephyr API

Wi-Fi Shell 层

命令格式

功能描述与参数说明

wifi scan

扫描周边无线网络

wifi connect

连接指定 AP

  • 必选参数:

    • -s “<SSID>” 指定接入点名称

  • 可选参数:

    • -c 指定扫描信道(0 表示全信道)

    • -p “<passphrase>” 接入点密码(仅限加密网络)

    • -k “<0-3>” 密钥管理类型

      • 0:开放网络

      • 1:WPA2-PSK

      • 2:WPA2-PSK-256

      • 3:SAE

    • -m “<MAC>” 指定 AP 的 MAC 地址

wifi disconnect

断开当前无线连接

wifi ap enable

启用 SoftAP 模式

  • 必选参数:

    • -s “<SSID>” 指定热点名称

  • 可选参数:

    • -c 指定工作信道

    • -p “<passphrase>” 热点密码

    • -k “<0-3>” 加密类型(同 connect 命令)

wifi ap disable

关闭 SoftAP 模式

Net Shell 层

命令格式

功能描述与参数说明

net ping <dst_ip>

执行 ICMP 网络连通性测试

net iface

显示所有网络接口状态信息

net dhcpv4 server start <2> <base_ip>

启动 DHCPv4 服务器

  • <2>:SoftAP 接口固定索引(Ameba 平台专用)

  • <base_ip>:IP 地址池起始地址(如 192.168.45.100)

net dhcpv4 server stop <2>

停止 DHCPv4 服务

net dhcpv4 server status

查看 DHCP 服务器运行状态

net arp

显示当前 ARP 缓存表内容

zperf Shell 层

命令格式

功能描述与参数说明

zperf setip <my_ip>

设置本地 IP 地址

zperf tcp upload <dst_ip> <port> <sec> <size>[K/M]

启动 TCP 上传测试

示例:zperf tcp upload 192.168.1.100 5003 10 1M

zperf tcp download <port> <host>

启动 TCP 下载测试

示例:zperf tcp download 5003 192.168.1.100

zperf udp upload <dst_ip> <port> <sec> <size>[K/M]

启动 UDP 上传测试

示例:zperf udp upload 192.168.1.100 5003 10 512K

zperf udp download <port> <host>

启动 UDP 下载测试

示例:zperf udp download 5003 192.168.1.100

Wi-Fi Zephyr 吞吐量

测试项目

带宽(20M)

TCP TX

TCP RX

UDP TX

UDP RX