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