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