> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Wi-Fi 架构

Wi-Fi 软件架构由以下组件构成。

**表：Wi-Fi 软件组件**

| **组件** | **描述**                                                                                                             |
| ------ | ------------------------------------------------------------------------------------------------------------------ |
| 用户空间   | • 支持 Wi-Fi 参数配置与设置。<br /><br />	• 支持工厂测试和调试。                                                                       |
| 内核空间   | • 支持驱动程序与应用层之间的通信。                                                                                                 |
| 驱动程序   | • 支持操作系统（OS）与无线网络硬件之间的通信。<br /><br />	• 初始化固件并下载启动 WLAN RF 所需的板级数据文件（BDF）。<br /><br />	• 管理 802.11 协议所需的控制路径和数据路径。 |
| 固件     | • 嵌入在 Wi-Fi 硬件设备中的软件组件。<br /><br />	• 管理与硬件的底层通信。<br /><br />	• 处理基于 802.11 协议的任务，如扫描网络、建立连接以及通过 Wi-Fi 硬件传输数据。     |

## **ath11k 驱动软件架构**

下图展示了采用 ath11k 驱动的高层 Wi-Fi 软件架构：

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Technologies/Wi-Fi/media/qli-wi-fi/ath11k-driver.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=a9c362f402d17a4dc4ccb7d92921eb97" alt="图：采用 ath11k 驱动的 Wi-Fi 软件架构" width="462" height="614" data-path="Technologies/Wi-Fi/media/qli-wi-fi/ath11k-driver.png" />

  <p className="text-sm text-gray-700">
    图：采用 ath11k 驱动的 Wi-Fi 软件架构
  </p>
</div>

ath11k 驱动的软件架构可作为 ath10k/ath12k 的参考。WCN3980 当前使用的接口是 SNOC。

### **用户空间组件**

用户空间包含以下关键组件：

**表：用户空间组件**

| **组件**             | **描述**                                                                                                                                                                                                                                               |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| wpa\_supplicant    | • 管理与 Wi-Fi 网络的安全连接。<br /><br />	• 支持多种安全协议，包括 WPA3、WPA2 以及传统协议。                                                                                                                                                                                     |
| 主机接入点守护进程（hostapd） | • 使网络接口卡能够充当接入点和认证服务器。<br /><br />	• 将您的设备变为无线热点。<br /><br />	• 提供 Wi-Fi 连接并处理认证，以确保连接到网络的设备已获得授权。<br /><br />	• 支持多种认证方式，包括 WPA、WPA2、WPA3 和可扩展认证协议（EAP）。<br /><br />	• 作为远程认证拨号用户服务（RADIUS）客户端与 RADIUS 服务器通信。<br /><br />	• 内置针对某些 EAP 方法的 EAP 服务器。 |

### **内核空间组件**

内核空间包含以下关键组件：

**表：内核空间组件**

| **组件**   | **描述**                                                                                                       |
| -------- | ------------------------------------------------------------------------------------------------------------ |
| cfg80211 | • 管理无线设备的配置。<br /><br />	• 与 mac80211 交互，mac80211 使用特定于硬件的底层 ath10k、ath11k 和 ath12k 驱动。                      |
| 网络协议栈    | • 由 OS 提供的网络协议栈。<br /><br />	• 支持管理驱动程序以及在数据流向驱动程序时处理各种 TCP/IP 协议的功能。                                        |
| mac80211 | • 作为 Linux 内核的一部分实现开源 WLAN 协议。<br /><br />	• 通过 cfg80211 处理网络子系统的注册和配置。cfg80211 通过 nl80211 和无线扩展（WEXT）实现此配置。 |

### **ath11k/ath12k 驱动组件**

ath10k/ath11k/ath12k 驱动包含以下关键组件：

| **组件**      | **描述**                                                                                                                                                                                   |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MAC 接口      | • 充当 mac80211 与 ath10k/ath11k/ath12k 驱动底层之间的接口。<br /><br />	• 通过 ath10k\_ops/ath11k\_ops/ath12k\_ops\_wifi7 与 mac80211 交互。<br /><br />	• 将数据帧和管理帧发送到数据路径。<br /><br />	• 将配置命令发送到 WMI 路径。 |
| 控制路径        | • 执行扫描、认证和关联等操作。                                                                                                                                                                         |
| 数据路径        | • 管理 WLAN 收发的数据流量。<br /><br />	• 支持多种特性以确保最佳性能。                                                                                                                                          |
| 主机软件-固件接口   | • 包括 WMI、HTT 和 HAL。                                                                                                                                                                      |
| WMI/HTT     | • 实现主机驱动与运行在 SoC 上 WLAN Qualcomm Hexagon™ 数字信号处理器（Hexagon）中的固件之间的高层协议。<br /><br />	• 通常，WMI 接口用于控制路径事务，HTT 用于数据路径事务。                                                                     |
| HTT/HAL     | • 抽象硬件数据结构，并实现基于 MMIO 的直接寄存器访问和内存访问方案。<br /><br />	• 取决于具体硬件或芯片。<br /><br />	• 在高度优化的数据包路径实现中，充当数据路径驱动与 WLAN 硬件之间的接口。                                                                    |
| 用于总线抽象的主机接口 | • 提供主机-目标总线抽象服务。<br /><br />	• 抽象外设控制接口高速版（PCIe）。                                                                                                                                        |
| PCIe        | • 驱动程序中的硬件接口。                                                                                                                                                                            |
| 复制引擎（CE）    | • 实现硬件管道，即通过 PCIe 上的 CE 接口在主机驱动与固件之间基于标准环接口（SRNG）的通信通道。                                                                                                                                  |
| SNOC        | •  SoC 内部的主互连结构（仅限 WCN3980）。                                                                                                                                                             |

### **固件组件**

WLAN 固件运行在专用处理器（Q6）上。WLAN 固件二进制文件包含以下关键组件：

* 各种 802.11 协议以及软件模块的状态机
* 与性能相关的软件算法，如速率自适应、共存、MIMO 和 OFDMA
* 核心 MAC 硬件编程方案
* 面向上层的统一 MAC/PHY 服务接口
* 核心 PHY 和 RF 硬件编程方案。例如 RF 校准、BDF 和 RADAR。

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-prod/RietNfmN9gs2vaJw/Technologies/Wi-Fi/media/qli-wi-fi/firmware-components.png?fit=max&auto=format&n=RietNfmN9gs2vaJw&q=85&s=4e0534e05550bda48ca52f754e4947c7" alt="图：固件组件" width="1100" height="1385" data-path="Technologies/Wi-Fi/media/qli-wi-fi/firmware-components.png" />

  <p className="text-sm text-gray-700">
    图：固件组件
  </p>
</div>

下表列出了固件组件及其描述。

**表：固件组件**

| **组件**       | **描述**                                                                                                                                                           |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 主机-固件接口      | • 无线模块接口（WMI）– 主机与固件之间的控制平面 API 定义​<br /><br />	• 主机目标接口（HTT）– 主机与固件之间的数据平面 API 定义                                                                               |
| 协议           | • 实现各种 802.11 标准协议和状态机、卸载、主机命令、扫描算法和事件处理                                                                                                                         |
| 性能算法和 MAC 服务 | • 性能算法实现与性能相关的软件算法，如速率自适应、发送调度器、多用户（MU）调度器、MU 分组、资源单元（RU）分配器、空口时间公平性（ATF）​，以及特定于硬件 IP 的：Tx 和 Rx 数据路径、MAC 控制路径序列<br /><br />	• MAC 寄存器编程和描述符设置/完成、共存硬件方案、芯片功耗硬件方案 |
| HAL PHY      | 用于 PHY/RFA 硬件的通用软件基础设施以及面向固件的 HAL-PHY 接口。​                                                                                                                       |
| PHY/RF 软件    | • PHY/RFA 硬件组件访问接口实现模块，包含特定于给定 PHY/RFA 和平台硬件 IP 的硬件编程序列/方案​                                                                                                      |
| 系统软件         | • 实现所有特定于平台的 SoC 相关服务                                                                                                                                            |
