3、WiFi协议栈详解:802.11协议族、WiFi Station与AP模式、WiFi Direct

好,咱们今天聊聊WiFi协议栈。说实话,很多做蓝牙的工程师一碰到WiFi就头大,觉得协议栈太复杂。其实你把它拆开看,核心就那么几块。我个人习惯把WiFi协议栈比作一个「快递系统」——物理层是马路,MAC层是交通规则,网络层是地址门牌。今天咱们就一层层剥开它。

3.1 802.11协议族:从a/b/g到ax/be

802.11协议族,说白了就是WiFi的「家族谱」。从1997年第一个标准诞生到现在,已经繁衍了二十多代。我刚开始做WiFi项目时,市面上主流还是802.11b/g,速率只有54Mbps。现在回头看,真是老爷车级别的速度了。

咱们重点看几个关键版本:

协议版本 频段 最大速率 关键技术
802.11b 2.4GHz 11Mbps DSSS(直接序列扩频)
802.11a 5GHz 54Mbps OFDM(正交频分复用)
802.11g 2.4GHz 54Mbps OFDM + 兼容b
802.11n 2.4/5GHz 600Mbps MIMO(多入多出)、信道绑定
802.11ac 5GHz 6.9Gbps MU-MIMO、256-QAM
802.11ax(WiFi 6) 2.4/5/6GHz 9.6Gbps OFDMA、1024-QAM、TWT
802.11be(WiFi 7) 2.4/5/6GHz 46Gbps 320MHz带宽、4096-QAM、MLO

嗯,这里要注意:WiFi 6(802.11ax)引入的OFDMA技术,对物联网设备特别友好。为什么?因为它允许在一个信道里同时给多个设备传数据,不像以前那样「排队等」。我在做智能家居网关项目时,家里连了30多个WiFi设备,用WiFi 5的路由器经常掉线,换成WiFi 6后稳如老狗。

核心要点:物联网设备选型时,优先考虑支持802.11n或WiFi 6的芯片。802.11b/g已经太老了,功耗高、速率低、安全性差。我建议新项目直接跳过它们。

3.2 WiFi Station与AP模式:两种基本角色

WiFi设备有两种基本角色:Station(站点)和Access Point(接入点)。你想想看,就像手机和路由器——手机是Station,路由器是AP。

Station模式:设备作为客户端,连接到一个已有的WiFi网络。这是物联网设备最常用的模式。比如智能插座、温湿度传感器,它们都是Station,连到家里的路由器上。

AP模式:设备自己创建一个WiFi网络,其他设备可以连上来。比如你买了个WiFi摄像头,第一次配置时,它会先开一个热点,你用手机连上去设置WiFi密码。这个热点就是AP模式。

我在项目中遇到过一个问题:有些低端WiFi芯片同时开Station和AP模式时,性能会急剧下降。因为芯片只有一个射频前端,需要在两个角色之间快速切换。嗯,这里有个避坑指南:

避坑指南:我曾经在一个智能音箱项目里,同时启用了Station模式(连路由器)和AP模式(手机直连控制),结果发现音频流经常卡顿。后来查资料才知道,这种「双模并发」对芯片的调度能力要求很高。建议用支持「SoftAP+Station并发」的专用芯片,比如乐鑫的ESP32系列。

两种模式的切换流程,我习惯用状态机来描述:

// Station模式连接流程
1. 扫描(Scan)→ 获取周围AP列表
2. 选择(Select)→ 根据SSID和信号强度选择目标AP
3. 认证(Authentication)→ 交换认证帧
4. 关联(Association)→ 建立关联关系
5. 4次握手(4-Way Handshake)→ WPA2/WPA3密钥协商
6. DHCP获取IP → 网络层就绪

// AP模式启动流程
1. 配置Beacon帧参数(SSID、信道、加密方式)
2. 启动Beacon发送(每100ms广播一次)
3. 监听Probe Request(客户端扫描请求)
4. 响应Probe Response
5. 处理客户端连接请求(认证+关联)
6. 启动DHCP服务器(给连接的客户端分配IP)

你看,Station模式是被动的「找网络」,AP模式是主动的「建网络」。物联网设备通常两种模式都要支持,方便用户配置。

3.3 WiFi Direct:点对点直连

WiFi Direct,说白了就是「没有路由器的WiFi」。两个设备直接通过WiFi通信,不需要经过AP。这个技术最早是为了替代蓝牙传输大文件而设计的——蓝牙速度太慢,传个照片都要半天。

WiFi Direct的工作流程很有意思:

  1. 设备发现:设备通过监听Beacon帧或发送Probe Request来发现对方
  2. 服务发现:交换各自支持的服务类型(比如打印、投屏、文件传输)
  3. GO协商:决定谁当Group Owner(相当于AP),谁当Client(相当于Station)
  4. WPS连接:通过按钮或PIN码完成安全连接
  5. IP分配:GO启动DHCP服务器,给Client分配IP

个人经验:WiFi Direct的GO协商过程,有点像两个人在抢着买单。双方都会发送一个「意向值」,值大的当GO。我在做无线投屏器时,发现有些手机厂商修改了意向值的计算逻辑,导致协商失败。解决办法是:固定让设备端意向值设为15(最大值),手机端设为14,这样设备永远是GO,兼容性最好。

WiFi Direct和传统AP模式有什么区别?我列个表对比一下:

特性 WiFi Direct 传统AP模式
是否需要路由器 不需要 需要(设备自身充当AP)
连接方式 点对点(P2P) 星型拓扑
安全性 WPA2-PSK(默认) 可配置
最大连接数 通常1对1,最多支持8个Client 取决于芯片,通常16-32个
典型应用 文件传输、投屏、打印 设备配网、临时热点
功耗 较高(需要持续监听) 中等(可配置休眠)

嗯,这里要提醒一下:WiFi Direct虽然方便,但功耗比蓝牙高不少。我做过一个便携式打印机项目,用WiFi Direct传输图片,电池只能撑2小时。后来改成蓝牙传输,虽然慢点,但续航提升到8小时。所以选型时一定要权衡:速度优先选WiFi Direct,功耗优先选蓝牙

实战建议:如果你的物联网设备需要和手机直连传数据,我建议优先考虑WiFi Direct。原因很简单:手机原生支持,不需要额外装App。但要注意,Android和iOS对WiFi Direct的支持程度不同——Android有完整的API,iOS只支持AirDrop(基于WiFi Direct的私有实现)。跨平台方案可以考虑用BLE做配网,WiFi Direct做数据传输。

最后总结一下:802.11协议族是WiFi的「宪法」,规定了物理层和MAC层怎么工作;Station和AP模式是WiFi设备的「两种身份」,一个负责连接,一个负责创建;WiFi Direct是「点对点直连」,适合设备间高速通信。这三块搞懂了,WiFi协议栈的核心你就拿下了。

下一章咱们聊聊WiFi的功耗管理——这可是物联网设备的命门。你想想看,一个传感器用电池供电,如果WiFi一直开着,几天就没电了。怎么让WiFi既保持连接又省电?嗯,咱们下回分解。