焦现军博士北大讲座:openWiFi技术深度解析

焦现军博士北大 openWiFi 讲座记录

焦博士 openWiFi git 项目地址:https://github.com/open-sdr/openwifi
完整会议录像:https://meetings.feishu.cn/minutes/obcn5ifc436pci1ntd1o5u9q

首先博士展现的是一个树莓派上集成 openwifi demo 的成品。
可以看到该 demo 主要由两部分组成:RF 前端(调制解调器)、WiFi主控器(CPU+WiFi芯片)。而 WiFi 芯片是由焦博士自己用 FPGA 设计的。

WiFi 数据的最基本流程:

可以看到 WiFi 芯片上主要有:基带电路、数模/模数转换器、射频电路。
上面也提到了 Baseband 的3个功能:

  1. 队列/数据包缓存
  2. 数字模拟信号的调制解调
  3. 避免数据包收发的互相干扰

现在再来看基带芯片的内部:

直接跟WiFi驱动交流的是队列/数据包收发缓存控制器。
demod:解调模块
modulator:调制模块
CSMA/CA Avoid interfernce:避免干扰的模块,提供底层媒体控制的功能

WiFi 的芯片之间会相互避免干扰,就例如上面的 packet 被调制成信号后要发出,会受到 CSMA 的管控。而接收信号就不会被管控。
其工作原理可以概括为:根据接收到信息来决定是否要停留一段时间后再发送消息。

然后再来看一个例子:AR9271

AR9271 的开放程度很高,公布了很多的内部寄存器和交流指令。
但是现在大公司越来越偏向将协议和功能放在芯片中,因为放在操作系统中要遵循开源协议。

而上图就是被一些WiFi专家反向推算出来的结构图。
MAC 中集成了 CSMA/CA 的功能。
Digital PHY 即是调制解调的功能,这部分是商业的核心,不可能公开。

再看另一个例子:博通BCM4339

(流程图字体不清晰不需要关注)
这个芯片的开放程度实际上不高,但是有一个德国的反向团队该芯片进行了很多工作,目前也被研究得比较透。
可以看到该 WiFi 芯片中也是有一个微处理器来处理数据包。
D11 Core:运行802.11协议解析的微处理器,也支持 CSMA/CA 避免干扰。
802.11 PHY:调制解调部分。

了解 openWifi 深入基带

上图展示了 WiFi 物理层的发射机和接收机的内部结构:
Scramble:加扰
encoder:卷积码编码
interleaving:交织器
QAM map:把比特映射成调制的星座点
Pilot gen:插入导频,用于跟踪
在 IFFT 之前,所有的子载波就已经都准备好了,通过 IFFT 反向傅里叶变换将频域变为时域。
Preamble gen:前导,有短训练序列(STS)和长训练序列(LTS)
GI:保护间隔
随后发送 DA 转换器、射频仪之类的天线。

AGC 捕获:自动增益控制
Sync:同步信号
Freq/Phase Estimation:频率相位估计
Channel Estimation:信道估计

openWifi 更详细的结构图:


这个我是最关心的,因为此时我还是一个驱动工程师,上图是我研究的主要方向。
白色字体的是Linux自带的,黄色字体的是WiFi芯片需要适配的部分。
在内核中,只需要提供 驱动 和 操作集。
但是如果是大厂,那么上图白色的也全都放在芯片中完成(为了不开源)。

而直播中又出现了新的版本:

其中就提到了 mac80211 部分中包含了 minstrel_ht ,ht 是 4G 的代号;minstrel_ht 的功能包含了:

  • 链路自适应
  • 速率 MCS 控制
  • minstrel_ht 速率调整主要是通过先发送小速率的包试探,如果可以,会进一步加大速率,如果还能被接收响应,那么还会继续加大速率。

    然后还介绍了几个同样WiFi研究的项目:

    作为驱动工程师就只记录到这里了,后面焦博士还讲了 CSI 无线感知和无线安全,感兴趣的可以去看会议原视频。

    作者:又见南风

    物联沃分享整理
    物联沃-IOTWORD物联网 » 焦现军博士北大讲座:openWiFi技术深度解析

    发表回复