Linux 下wifi 驱动开发(二)—— WiFi模块浅析
一、什么是wifi 模塊
? ? ? ? 百度百科上這樣定義:
? ? ? ? Wi-Fi模塊又名串口Wi-Fi模塊,屬于物聯網傳輸層,功能是將串口或TTL電平轉為符合Wi-Fi無線網絡通信標準的嵌入式模塊,內置無線網絡協議IEEE802.11b.g.n協議棧以及TCP/IP協議棧。傳統的硬件設備嵌入Wi-Fi模塊可以直接利用Wi-Fi聯入互聯網,是實現無線智能家居、M2M等物聯網應用的重要組成部分。?
二、WiFi 模塊主要分類
? ? ? Wi-Fi模塊可分為三類:
a -- 通用Wi-Fi模塊
? ? ? ?比如手機、筆記本、平板電腦上的USBorSDIO接口模塊,Wi-Fi協議棧和驅動是在安卓、Windows、iOS的系統里跑的,是需要非常強大的CPU來完成應用;
b -- 路由器方案Wi-Fi模塊
? ? ? 典型的是家用路由器,協議和驅動是借助擁有強大Flash和Ram資源的芯片加Linux操作系統;
c -- 嵌入式Wi-Fi模塊
? ? ? 32位單片機,內置Wi-Fi驅動和協議,接口為一般的MCU接口如UART等。適合于各類智能家居或智能硬件單品。
? ? ? ?我覺得這里有必要了解一下普通Wi-Fi模塊與嵌入式Wi-Fi模塊的區別:
? ? ? ?我們都知道筆記本、手機、平板電腦等這類產品具有強大的CPU和大容量的存儲器進行網絡通信數據的處理和存儲,因此在使用WIFI時不需要額外的MCU,完全借助其高速處理器和龐大的軟件系統。但是對于家電,儀表,LED燈等智能家居產品,因為該類產品的主控芯片可能是成本很低、功能簡單的MCU,因此這類產品無法支持普通Wi-Fi的功能。同時,還有一個重要的原因就是普通WIFI的功耗比較高,而嵌入式WIFI在功耗上做了很大的改善,比較適合對功耗要求高的無線家電設備。
? ? ? ?基于上述原因,各個無線廠商相繼推出了嵌入式WIFI模塊。嵌入式WIFI模塊的特點是軟硬件集成度高,整個嵌入式WIFI模塊集成了射頻收發器、MAC、WIFI驅動、所有WIFI協議、無線安全協議、一鍵連接等。總之,一句話:嵌入式WIFI應物聯網而生!
? ? ?下面我們針對嵌入式WIFI與普通WIFI來進行對比,通過下表的對比,我們大致上可以理解到什么是嵌入式WIFI
| ? | 嵌入式WIFI模塊 | 普通WIFI模塊 |
| 適用范圍 | 無線家電、儀表、智能燈泡等智能家居設備 | 筆記本、手機、平板電腦等 |
| 主控芯片 | 模塊上集成的MCU | x86 CPU、ARM等高速微處理器 |
| 接口 | UART、SPI、I2C、SDIO | USB、SDIO |
| 功耗 | 低 | 高 |
| 產品 | TI的CC3200系列、MXCHIP系列、ASIX系列 、Atheros的HF-LPA系列等 | 瑞昱RTL81xx系列、威盛VT系列、雷凌RT系列、 博通BCM、Marvell、高通Atheros等 |
| 開發設計 | 內置WIFI驅動、MAC、WIFI協議、無線安全協議等, 所有的網絡軟件封裝成一個UART或SPI接口的設備, 使用簡單,只需要往UART或者SPI收發數據即可。 從整體軟件層面上看,不屬于網絡設備。 | 需要在主機添加WIFI驅動、同時需要依賴主機的網絡協議棧等軟件平臺資源, 從整體軟件層面上看,屬于網絡設備,使用時需要遵循網絡相關的協議。 |
下面是筆者所用一款USB接口的WiFi模塊原理圖:
三、WiFi模塊主要功能
? ? ? Wifi 模塊 包括兩種類型的拓撲形式:基礎網(Infra)和自組網(Adhoc),要說明無線網絡的拓撲形式,首先要了解兩個基本概念:
a -- AP
? ? ? ?也就是無線接入點,是一個無線網絡的創建者,是網絡的中心節點。一般家庭或辦公室使用的無線路由器就是一個AP。
b --?STA站點
? ? ? ?每一個連接到無線網絡中的終端(如筆記本電腦、PDA及其它可以聯網的用戶設備)都可稱為一個站點。
1、基于AP組建的基礎無線網絡(Infra)
? ??? Infra:也稱為基礎網,是由AP創建,眾多STA加入所組成的無線網絡,這種類型的網絡的特點是AP是整個網絡的中心,網絡中所有的通信都通過AP來轉發完成。
附: ?
?筆者所用WiFi模塊有兩種系統設置:??無線網類型AP?和?Infra ??
AP是將wifi模塊當路由器使用,這樣手機和電腦就可以直接連接wifi模塊了。
?Infra 是將wifi模塊當基礎設備使用,用于連接別的路由器。
2、基于自組網的無線網絡(Adhoc)
? ??? Adhoc:也稱為自組網,是僅由兩個及以上STA自己組成,網絡中不存在AP,這種類型的網絡是一種松散的結構,網絡中所有的STA都可以直接通信。
3、安全機制
? ? ?本模塊支持多種無線網絡加密方式,能充分保證用戶數據的安全傳輸,包括:WEP64/WEP128/ TKIP/CCMP(AES) WEP/WPA-PSK/WPA2-PSK。
4、快速聯網
? ? ? 本模塊支持通過指定信道號的方式來進行快速聯網。在通常的無線聯網過程中,會首先對當前的所有信道自動進行一次掃描,來搜索準備連接的目的AP創建的(或Adhoc)網絡。本模塊提供了設置工作信道的參數,在已知目的網絡所在信道的條件下,可以直接指定模塊的工作信道,從而達到加快聯網速度的目的。
5、地址綁定
? ? ?本模塊支持在聯網過程中綁定目的網絡BSSID地址的功能。根據802.11協議規定,不同的無線網絡可以具有相同的網絡名稱(也就是SSID/ESSID),但是必須對應一個唯一的BSSID 地址。非法入侵者可以通過建立具有相同的SSID/ESSID的無線網絡的方法,使得網絡中的STA聯接到非法的AP上,從而造成網絡的泄密。通過BSSID地址綁定的方式,可以防止STA 接入到非法的網絡,從而提高無線網絡的安全性。
6、無線漫游
? ? 本模塊支持基于802.11協議的無線漫游功能。無線漫游指的是為了擴大一個無線網絡的覆蓋范圍,由多個AP共同創建一個具有相同的SSID/ESSID的無線網絡,每個AP用來覆蓋不同的區域,接入到網絡的STA可以根據所處位置的選擇信號最強的AP接入,而且隨著STA的移動自動在不同的AP之間切換。
四、工作方式
1、主動型串口設備聯網
? ? ? 主動型串口設備聯網指的是由設備主動發起連接,并與后臺服務器進行數據交互(上傳或下載)的方式。典型的主動型設備,如無線POS機,在每次刷卡交易完成后即開始連接后臺服務器,并上傳交易數據。PUSH型串口設備聯網的拓撲結構如右圖所示。其中,后臺服務器作為TCP Server端,設備通過無線AP/路由器接入到網絡中,并作為TCP Client端。
2、被動型串口設備聯網
? ? ? 被動型串口設備聯網指的是,在系統中所有設備一直處于被動的等待連接狀態,僅由后臺服務器主動發起與設備的連接,并進行請求或下傳數據的方式。典型的應用,如某些無線傳感器網絡,每個傳感器終端始終實時的在采集數據,但是采集到的數據并沒有馬上上傳,而是暫時保存在設備中。
? ? ? 而后臺服務器則周期性的每隔一段時間主動連接設備,并請求上傳或下載數據。
? ? ?此時,后臺服務器實際上作為TCP Client端,而設備則是作為TCP Server端主要特性2.4GHz, IEEE 802.11b/g內部PCB天線,可選外部天線支持基于AP的網絡(Infrastructure)/對等網絡Ad-Hoc (IBSS))/ 虛擬AP 模式 ,IPHONE/IPAD/Android?設備也能不用AP/路由器而直接連接支持802.11i加密方式:WEP-64/128,TKIP (WPA-PSK) and AES(WPA2-PSK)MCU內置TCP/IP協議棧3路UART串行接口(其中1路支持DMA 模式, 全功能串口,波特率最高支持921.6Kbps)SPI接口、I2S/PCM接口Digital Video端口高達24個GPIO口(部分GPIO將會和上述接口復用)全功能TCP/IP協議棧,TCP/IP傳輸帶寬達到10Mbps以上支持三種帶有定時自動喚醒功能的WiFi節能模式
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Linux 下wifi 驱动开发(二)—— WiFi模块浅析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unity3D人物模型
- 下一篇: Linux Wireless架构总结