做嵌入式或者路由器开发的朋友,对Broadcom(博通)这个品牌肯定不陌生。市面上的中高端无线路由器、企业级WiFi网卡、机顶盒WiFi模块,很大一部分用的都是博通的802.11芯片方案。相比MTK、Realtek这些竞争对手,博通的方案以稳定性好、兼容性强、性能高著称,当然价格也更贵。很多新手在调试博通WiFi芯片时摸不着头脑,驱动怎么移植、固件怎么放、天线怎么匹配,坑一个接一个。今天就系统聊聊Broadcom 802.11无线芯片的技术架构、驱动要点和常见应用场景。
先看博通WiFi芯片的产品线。按协议分,支持802.11n的老款芯片有BCM4313(单频2.4G,150M)、BCM4322(双频,300M)、BCM4331(双频,450M)这些,很多老笔记本和路由器里还在用来着。802.11ac(WiFi 5)阶段的代表芯片有BCM4352(2x2双频,867M)、BCM4360(3x3双频,1.3G)、BCM4366(4x4,Wave 2,支持MU-MIMO,1.7G),高端路由器华硕、网件很多用的就是BCM4366。最新的WiFi 6(802.11ax)方案有BCM43684、BCM6715这些,支持1024-QAM和OFDMA,峰值速率能到2.4Gbps以上。除了这些纯WiFi芯片,博通还有很多把WiFi+蓝牙+FM收音集成在一起的组合芯片,比如BCM4330、BCM4343,平板电脑和机顶盒里常用。
从芯片架构上看,Broadcom 802.11芯片内部一般包含这么几个部分:前端是模拟射频部分(RF transceiver),负责把数字基带信号上变频到2.4G或5G的射频信号发射出去,或者把接收的射频信号下变频到基带;然后是数字基带处理器,负责802.11协议的MAC层和PHY层处理,比如信道编码、调制解调、OFDM信号处理、帧封装和解封装;接着是一个内置的ARM Cortex-M或者MIPS的微控制器,用来运行固件程序,处理管理帧、密钥协商、漫游切换这些;最后是主机接口,常见的有SDIO(嵌入式设备常用)、PCIe(笔记本和台式机网卡用)、USB(USB网卡用)、以及RGMII/SGMII(路由器SoC连接外部PHY用)。芯片外部只需要加几个射频匹配元件、一个晶振、一片串行Flash(用来存固件和校准参数),就能构成完整的WiFi模块。
驱动移植是新手最头疼的部分。博通的驱动不像RTL或者MTK那样有完整的开源代码,官方一般只给binary形式的固件和闭源的驱动库,需要配合特定的内核版本使用。Linux下博通无线驱动主要有两条路线:一条是开源的brcm80211驱动(mac80211 based),内核主线里已经包含了,支持BCM43xx系列的大部分芯片,直接在menuconfig里选上CONFIG_BRCMFMAC或者CONFIG_B43就能用,缺点是功能比较基础,不支持一些高级特性比如MU-MIMO、160MHz信道宽度。另一条是博通官方的闭源驱动(wl.ko),功能完整,稳定性好,但需要跟目标板的内核版本严格匹配,移植起来比较麻烦,需要改Makefile交叉编译,有时候还要处理内核接口不兼容的问题。嵌入式产品开发如果赶时间,建议优先用开源驱动;性能和功能要求高的话再考虑官方闭源驱动。
固件和NVRAM校准参数是另一个容易忽略的点。博通WiFi芯片上电后需要主机把固件(firmware)加载到芯片内部的RAM里才能运行,然后还要把NVRAM参数(里面存了芯片的MAC地址、射频校准数据、功率限制、天线配置这些)传给芯片。很多新手移植完驱动,WiFi能扫到信号但连接不上、或者吞吐量特别低,八成是NVRAM参数不对。NVRAM参数是跟具体的硬件设计(PCB走线、天线匹配、PA/LNA型号)绑定的,不同的板子参数不一样,不能乱用。一般模块厂商会提供对应的NVRAM文件,直接用就行;如果是自己画的板子,需要用博通的校准工具(比如WiFi Control Utility)在屏蔽室里做校准,生成对应的NVRAM参数。
实际应用中几个高频问题。第一个是吞吐量上不去:先看协商速率是不是正常(比如802.11ac 2x2应该协商到867Mbps),如果协商速率低,检查信道宽度是不是设了80MHz,有没有开短保护间隔(SGI),然后测一下射频端的EVM和发射功率,功率不够或者EVM差说明天线匹配电路有问题,需要调匹配网络。第二个是2.4G和5G互相干扰:双频设计时两个天线要尽量分开,至少隔2cm以上,最好放在PCB的两个对角,地平面做隔离。第三个是漫游切换慢:802.11r快速漫游需要驱动和AP两端都支持,检查固件版本和配置参数,开启FT(Fast Transition)功能。最后是认证问题:WPA3和WPA2-Enterprise的加密功能需要芯片和固件都支持,老款芯片可能要升级固件才能支持WPA3。选购方案的时候一定要提前跟芯片代理商确认好芯片的功能支持清单,别等做了一半才发现缺功能。
上一篇:电脑电源电路图原理详解:ATX电源结构、关键测试点与常见故障维修
下一篇:没有了