恩智浦推出統一標準Wi-Fi驅動(dòng):加速無(wú)線(xiàn)連接應用開(kāi)發(fā)!
本文將重點(diǎn)介紹恩智浦為無(wú)線(xiàn)連接SoC開(kāi)發(fā)的統一Wi-Fi驅動(dòng)程序——多芯片多接口驅動(dòng) (MXM),詳細說(shuō)明其架構設計如何簡(jiǎn)化基于恩智浦無(wú)線(xiàn)連接SoC和i.MX應用處理器的開(kāi)發(fā)過(guò)程。
本文引用地址:http://dyxdggzs.com/article/202503/467782.htmMXM驅動(dòng)是恩智浦專(zhuān)有的Wi-Fi驅動(dòng)實(shí)現,可用于支持Linux和Android的恩智浦i.MX MPU。該驅動(dòng)采用靈活的雙許可方案,有GPL-2.0和專(zhuān)有許可,可有效避免許可沖突。
該驅動(dòng)在恩智浦無(wú)線(xiàn)SoC固件和主處理器上的標準Linux網(wǎng)絡(luò )協(xié)議棧/cfg80211之間提供無(wú)縫接口。它負責為內核和應用程序提供多種Wi-Fi功能,包括站點(diǎn)/客戶(hù)端 (STA) 模式、微型接入點(diǎn)/軟接入點(diǎn) (uAP)、P2P以及鄰居感知網(wǎng)絡(luò )/Wi-Fi感知 (NAN) 等功能。
多設備/接口支持
MXM驅動(dòng)支持恩智浦無(wú)線(xiàn)連接SoC產(chǎn)品組合,兼容PCIE、SDIO和USB接口。編譯時(shí)可以通過(guò)Makefile設置輕松配置SoC/接口組合,甚至可以同時(shí)配置多個(gè)SoC/接口組合。編譯后的驅動(dòng)內核模塊可以支持不同的SoC/接口組合,無(wú)需重新加載或重新編譯驅動(dòng)。
對于想要從當前一代恩智浦設備升級到下一代產(chǎn)品的開(kāi)發(fā)人員來(lái)說(shuō),這提供了一條更簡(jiǎn)單的遷移路徑,減少了集成工作量,同時(shí)讓跨產(chǎn)品代際進(jìn)行維護變得更加輕松,無(wú)需擔憂(yōu)架構變更。
驅動(dòng)架構
如圖1所示,該驅動(dòng)采用雙層架構,包括MLAN層和MOAL層。這種設計主要是為了便于將驅動(dòng)移植到Linux/Android以外的其他操作系統。
圖1:MXM驅動(dòng)架構。
這兩層的功能如下:
◆ MLAN:與操作系統無(wú)關(guān)的模塊,負責命令處理和與設備上運行的固件對接。采用與平臺無(wú)關(guān)的C代碼
◆ MOAL:依賴(lài)操作系統的模塊,負責與上層內核/協(xié)議棧和底層總線(xiàn)驅動(dòng)接口對接
MLAN模塊包含大部分代碼,可以直接使用,而MOAL模塊則需要移植到目標操作系統。恩智浦已將MOAL模塊移植到了支持恩智浦i.MX RT跨界MCU和通用MCU的多個(gè)常用實(shí)時(shí)操作系統,包括FreeRTOS和Zephyr。
FreeRTOS實(shí)現已集成在MCUXpresso SDK中,而Zephyr Wi-Fi驅動(dòng)則是Zephyr項目上游的一部分。這些實(shí)時(shí)操作系統驅動(dòng)采用寬松的BSD-3條款許可,這很好地解決了開(kāi)發(fā)人員和客戶(hù)在偏好非 GPL許可證時(shí)的顧慮。
MXM驅動(dòng)同時(shí)支持基于x86和Arm等處理器架構的平臺,特別適用于i.MX MPU。該驅動(dòng)具有出色的后向兼容性,可支持過(guò)去15年的Linux內核版本以及較早版本的Android系統。驅動(dòng)持續更新以確保與新內核版本的兼容性,通過(guò)cfg80211應用程序接口 (Linux 802.11配置API) 支持多種標準和第三方應用程序,可與iw和wpa_supplicant等標準Linux工具協(xié)作。
與恩智浦處理器集成
恩智浦已將MXM驅動(dòng)集成到i.MX應用處理器,并為i.MX 6、i.MX 7、i.MX 8和i.MX 9系列的評估套件 (EVK) 提供季度更新的Linux和Android板級支持包 (BSP)。恩智浦針對工業(yè)、物聯(lián)網(wǎng)和汽車(chē)領(lǐng)域的多樣化應用場(chǎng)景,優(yōu)化并驗證了這些BSP,以實(shí)現卓越性能和豐富的功能集。這為用戶(hù)評估恩智浦處理器和無(wú)線(xiàn)連接解決方案提供了卓越開(kāi)箱即用體驗。
BSP提供維護版本和補丁支持,確??蛻?hù)擁有較低的擁有成本。這些BSP,請參見(jiàn)面向i.MX應用處理器的嵌入式Linux和面向i.MX應用處理器的Android操作系統。
使用指南
該驅動(dòng)作為L(cháng)inux Yocto項目構建的子模塊提供,方便開(kāi)發(fā)人員為基于恩智浦的EVK進(jìn)行構建。此外,驅動(dòng)以源代碼的形式發(fā)布,可從GitHub等平臺下載,便于與恩智浦和非恩智浦平臺進(jìn)行協(xié)作和集成。
您可參閱用戶(hù)手冊,了解下載和構建MXM驅動(dòng)的說(shuō)明。對于使用基于Yocto系統的用戶(hù),請使用MXM驅動(dòng)Yocto版本,簡(jiǎn)化MXM驅動(dòng)移植到其他第三方平臺的開(kāi)發(fā)工作。
本文作者
Mayur Arakere,恩智浦半導體無(wú)線(xiàn)連接解決方案的資深軟件產(chǎn)品經(jīng)理。他在半導體行業(yè)擁有超過(guò)10年的應用工程和產(chǎn)品管理經(jīng)驗,目前常駐加利福尼亞州圣何塞,是恩智浦無(wú)線(xiàn)連接解決方案的資深軟件產(chǎn)品經(jīng)理,負責為Wi-Fi、藍牙和Thread/Zigbee組合 SoC定義軟件產(chǎn)品。工作之余,Mayur喜歡在舊金山灣區徒步旅行,享受周末時(shí)光。
評論