
揭开WIFI技术栈的
神秘面纱
在互联网无孔不入的今日,WIFI已经成为老幼皆知的名词,甚至牙牙学语的娃娃也会对这四个字母的组合作出反应。但是,一说到WIFI技术背后的硬件和软件,那么就连很多专业的工程师也不一定搞得清楚了。
#
01
#
《学活LINUX》已经进行到第四讲的内容。那如何学活的Linux呢?相信很多跟课的格友也已经知道了答案:上调试器,调一个活的Linux系统——GDK8或幽兰代码本。
无论是GDK8还是幽兰,它们使用的都是同一系列的WIFI蓝牙二合一模块。本着格物的方法论,张老师以这一来自中国台湾的正基科技出品的WIFI模块为载体,为大家作了一些有关WIFI模块硬件基础的知识铺垫。

#
02
#
在GDK8和幽兰上,WIFI模块的硬件并未被集成到Soc内部,而是一块独立的芯片,打开机体的后盖就可以看到。软件上而言,其驱动也是单独编译的。
如上所述,WIFI模块的硬件来自中国台湾的正基科技(如下左图所示),但事实上在软件方面看到的却是美国博通的驱动——BCMDHD(Broadcom Dongle Host Driver)(如下右图所示)。BCMDHD是什么?又是怎么从正基变到了博通呢?


这是由于WIFI模块涉及通信协议的复杂逻辑,具有特殊性。
一方面,数据的加、解密,以及各种协议和包的处理等等需要一块芯片来处理数据逻辑(如下图框1所示);另一方面,它也需要射频部分(如下图框2所示),以无线的形式收发数据等。
最初,这两部分是分开的,所占空间较大,而正基抓住了这一机会,把包含博通关键IP的核心芯片(框1)和自家的射频部分等(框2)封装在一起,即SIP(System In Package)。(详情请扫描文末二维码观看课程回放)

#
03
#
了解WIFI模块的硬件基础之后,张老师仍然带大家上调试器,从准备符号、发送、接收,到中断,从调用栈理解LINUX的TCP/IP协议栈。

而发起中断时,除上文提到的两家企业,代码中还体现了第三家企业的存在——Synopsys。

WIFI模块通过其中的射频部分跟网络联通,那它又是如何与主CPU连接的呢?答案是通过SDIO总线控制器,这也是代码中dw(DW是DesignWare的缩写)的来源。(详情请扫描文末二维码观看课程回放)


而开头提到的BCMDHD中的DHD则是Dongle Host Driver,代表ARM中外围设备与主机端的一种连接方式,如同X86中的PCIE,博通则称这种连接方式为DHD,张老师把这种连接方式类比为“一人牵一犬”。



// 微信群二维码 //
该二维码8月22日前有效
录播回放合集:https://space.bilibili.com/2080622547/channel/collectiondetail?sid=1559415
直播间链接:http://live.bilibili.com/24576892
直播时间:2023年7月22日至9月2日
每周六 20:00 - 21:30


// 微信群二维码 //
该二维码8月22日前有效
录播回放合集:https://space.bilibili.com/2080622547/channel/collectiondetail?sid=1559415
直播间链接:http://live.bilibili.com/24576892
直播时间:2023年7月22日至9月2日
每周六 20:00 - 21:30
【盛格塾】
正心诚意,格物致知
以人文情怀审视软件,以软件技术改变人生

格友公众号

盛格塾小程序
扫描上方二维码或在微信中搜索“盛格塾”小程序
可以阅读更多文章和有声读物
往期推荐
1687

被折叠的 条评论
为什么被折叠?



