0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式Wi-F的來(lái)源以及與普通Wi-Fi的區(qū)別

Q4MP_gh_c472c21 ? 來(lái)源:未知 ? 作者:李倩 ? 2018-03-24 11:18 ? 次閱讀

首先我們來(lái)看一下嵌入式Wi-F的來(lái)源以及與普通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)品無(wú)法支持普通Wi-Fi的功能。同時(shí),還有一個(gè)重要的原因就是普通Wi-F的功耗比較高,而嵌入式WIFI在功耗上做了很大的改善,比較適合對(duì)功耗要求高的無(wú)線家電設(shè)備。

基于上述原因,各個(gè)無(wú)線廠商相繼推出了嵌入式WIFI模塊。嵌入式WIFI模塊的特點(diǎn)是軟硬件集成度高,整個(gè)嵌入式WIFI模塊集成了射頻收發(fā)器、MAC、WIFI驅(qū)動(dòng)、所有WIFI協(xié)議、無(wú)線安全協(xié)議、一鍵連接等??傊?,一句話:嵌入式WIFI應(yīng)物聯(lián)網(wǎng)而生!

下面我們針對(duì)嵌入式WIFI與普通WIFI來(lái)進(jìn)行對(duì)比,通過(guò)下表的對(duì)比,我們大致上可以理解到什么是嵌入式WIFI。

在分析WIFI驅(qū)動(dòng)前,分享一下本人對(duì)Linux驅(qū)動(dòng)的一些了解,其實(shí)縱觀Linux眾多的設(shè)備驅(qū)動(dòng),幾乎都是以總線為載體,所有的數(shù)據(jù)傳輸都是基于總線形式的,即使設(shè)備沒(méi)有所謂的總線接口,但是Linux還是會(huì)給它添加一條虛擬總線,如platform總線等;介于WIFI的驅(qū)動(dòng)實(shí)在是太龐大了,同時(shí)又是基于比較復(fù)雜的USB總線,所以建議大家先了解一下USB設(shè)備驅(qū)動(dòng)和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)。

我們要看懂WIFI驅(qū)動(dòng),首先要明白WIFI的工作原理。從對(duì)于支持802.11n、802.11ac這些比較無(wú)線標(biāo)準(zhǔn)的WIFI芯片,其驅(qū)動(dòng)程序也會(huì)越來(lái)越復(fù)雜。那么我們?cè)趺慈胧秩チ私饧胺治鏊兀?/p>

網(wǎng)上很多人分析Linux設(shè)備驅(qū)動(dòng)都是從模塊加載入手去分析它的驅(qū)動(dòng)源碼。以本人從事Linux設(shè)備驅(qū)動(dòng)多年的經(jīng)驗(yàn),這確實(shí)是一條很直觀又非常好的思路。但是這只局限于設(shè)備功能少、接口較簡(jiǎn)單、驅(qū)動(dòng)源碼較少的設(shè)備驅(qū)動(dòng)。對(duì)于功能復(fù)雜、驅(qū)動(dòng)源碼龐大的設(shè)備驅(qū)動(dòng),根據(jù)這條思路,很多開發(fā)者可能會(huì)無(wú)耐心走下去,或者會(huì)走向死胡同。

現(xiàn)在我們可以這樣來(lái)看,從硬件層面上看,WIFI設(shè)備與CPU通信是通過(guò)USB接口的,與其他WIFI設(shè)備之間的通信是通過(guò)無(wú)線射頻(RF)。從軟件層面上看,Linux操作系統(tǒng)要管理WIFI設(shè)備,那么就要將WIFI設(shè)備掛載到USB總線上,通過(guò)USB子系統(tǒng)實(shí)現(xiàn)管理。而同時(shí)為了對(duì)接網(wǎng)絡(luò),又將WIFI設(shè)備封裝成一個(gè)網(wǎng)絡(luò)設(shè)備。

我們以USB接口的WIFI模塊進(jìn)行分析:

(1)從USB總線的角度去看,它是USB設(shè)備;

(2)從Linux設(shè)備的分類上看,它又是網(wǎng)絡(luò)設(shè)備;

(3)從WIFI本身的角度去看,它又有自己獨(dú)特的功能及屬性,因此它又是一個(gè)私有的設(shè)備;

通過(guò)上述的分析,我們只要抓住這三條線索深入去分析它的驅(qū)動(dòng)源碼,整個(gè)WIFI驅(qū)動(dòng)框架就會(huì)浮現(xiàn)在你眼前。

1、現(xiàn)在我們先從USB設(shè)備開始,要寫一個(gè)USB設(shè)備驅(qū)動(dòng),那么大致步驟如下:

(1)需要針對(duì)該設(shè)備定義一個(gè)USB驅(qū)動(dòng),對(duì)應(yīng)到代碼中即定義一個(gè)usb_driver結(jié)構(gòu)體變量。代碼如下:

struct usb_driver xxx_usb_wifi_driver;

(2)填充該設(shè)備的usb_driver結(jié)構(gòu)體成員變量。代碼如下:

static struct usb_driver xxx_usb_wifi_driver = {

.name = "XXX_USB_WIFI",

.probe= xxx_probe,

.disconnect= xxx_disconnect,

.suspend= xxx_suspend,

.resume= xxx_resume,

.id_table= xxx_table,

};

(3)將該驅(qū)動(dòng)注冊(cè)到USB子系統(tǒng)。代碼如下:

usb_register(&xxx_usb_wifi_driver);

以上步驟只是一個(gè)大致的USB驅(qū)動(dòng)框架流程,而最大和最復(fù)雜的工作是填充usb_driver結(jié)構(gòu)體成員變量。以上步驟的主要工作是將USB接口的WIFI設(shè)備掛載到USB總線上,以便Linux系統(tǒng)在USB總線上就能夠找到該設(shè)備。

2、接下來(lái)是網(wǎng)絡(luò)設(shè)備的線索,網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)大致步驟如下:

(1)定義一個(gè)net_device結(jié)構(gòu)體變量ndev。代碼如下:

struct net_device *ndev;

(2)初始化ndev變量并分配內(nèi)存。代碼如下:

ndev=alloc_etherdev();

(3)填充ndev -> netdev_ops結(jié)構(gòu)體成員變量。代碼如下:

static const struct net_device_ops xxx_netdev_ops= {

.ndo_init= xxx_ndev_init,

.ndo_uninit= xxx _ndev_uninit,

.ndo_open= netdev_open,

.ndo_stop= netdev_close,

.ndo_start_xmit= xxx_xmit_entry,

.ndo_set_mac_address= xxx_net_set_mac_address,

.ndo_get_stats= xxx_net_get_stats,

.ndo_do_ioctl= xxx_ioctl,

};

(4)填充ndev->wireless_handlers結(jié)構(gòu)體成員變量,該變量是無(wú)線擴(kuò)展功能。代碼如下:

ndev->wireless_handlers = (struct iw_handler_def *)&xxx_handlers_def;

(5)將ndev設(shè)備注冊(cè)到網(wǎng)絡(luò)子系統(tǒng)。代碼如下:

register_netdev(ndev);

3、WIFI設(shè)備本身私有的功能及屬性,如自身的配置及初始化、建立與用戶空間的交互接口、自身功能的實(shí)現(xiàn)等。

(1)自身的配置及初始化。代碼如下:

xxx_read_chip_info();

xxx_chip_configure();

xxx_hal_init();

(2)主要是在proc和sys文件系統(tǒng)上建立與用戶空間的交互接口。代碼如下:

xxx_drv_proc_init();

xxx_ndev_notifier_register();

(3)自身功能的實(shí)現(xiàn),在前面章節(jié)上我們已經(jīng)講解過(guò)WIFI的網(wǎng)絡(luò)及接入原理,如掃描等。同時(shí)由于WIFI在移動(dòng)設(shè)備中,相對(duì)功耗比較大,因此,對(duì)于功耗、電源管理也會(huì)在驅(qū)動(dòng)中體現(xiàn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5046

    文章

    18821

    瀏覽量

    298647
  • USB接口
    +關(guān)注

    關(guān)注

    9

    文章

    691

    瀏覽量

    55373
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11124

    瀏覽量

    207927

原文標(biāo)題:一位從事Linux設(shè)備驅(qū)動(dòng)多年的嵌入式er教你理解嵌入式Wi-Fi的驅(qū)動(dòng)架構(gòu)

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    WiMAX與Wi-Fi區(qū)別

    存取點(diǎn)是由數(shù)十米的小片面積所組成,所以WiMAX在全球涵蓋上會(huì)有占有優(yōu)勢(shì)。但是因?yàn)槟壳暗氖袌?chǎng)占有率較高,以及因?yàn)樾》秶⑼瑫r(shí)競(jìng)爭(zhēng)的用戶人數(shù)較少,造成Wi-Fi 較快、延遲較小的特性,Wi-Fi 的收費(fèi)
    發(fā)表于 12-03 19:09

    工程師需要了解的嵌入式Wi-Fi模塊選型要素

    嵌入式Wi-Fi模塊選型時(shí),主要考察WIFI模塊的硬件參數(shù)和系統(tǒng)軟件支持方面的因素,當(dāng)然也要考慮一些模塊的折衷因素。 嵌入式WIFI模塊硬件參數(shù)因素:天工測(cè)控通常會(huì)按嵌入式WIFI模
    發(fā)表于 11-22 14:24

    嵌入式Wi-Fi天線設(shè)計(jì)參考

    藍(lán)牙、Wi-Fi模組集成;⑵ SMT貼裝:材質(zhì)有陶瓷、金屬片、PCB,性能成本適中,適用于大批量的嵌入式射頻模組;⑶ IPX外接:使用PCB或FPC+Cable的組合,性能優(yōu)秀,成
    發(fā)表于 06-13 08:05

    村田嵌入式Wi-Fi模塊有什么優(yōu)點(diǎn)

    模塊,因?yàn)榻K端產(chǎn)品的MCU和Flash都無(wú)法支持Wi-Fi的功能,因此需要額外的MCU和Flash進(jìn)行數(shù)據(jù)處理和存儲(chǔ)。為在這些產(chǎn)品上的應(yīng)用提供方便,簡(jiǎn)單的解決方案,村田開發(fā)了帶有MCU的Wi-Fi模塊-嵌入式
    發(fā)表于 06-21 06:14

    如何設(shè)計(jì)基于嵌入式Wi-Fi處理器的無(wú)線系統(tǒng)?

    隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,眾多的嵌入式系統(tǒng)均有增加Wi-Fi特性的需求,比如利用智能手機(jī)內(nèi)建的Wi-Fi來(lái)遙控各種嵌入式設(shè)備,使支持機(jī)器對(duì)機(jī)器的通信(M2M)具有物聯(lián)網(wǎng)通訊功能的
    發(fā)表于 11-04 08:26

    嵌入式Wi-Fi模塊選型要素有哪些?

    嵌入式Wi-Fi模塊選型時(shí),主要考察WIFI模塊的硬件參數(shù)和系統(tǒng)軟件支持方面的因素,當(dāng)然也要考慮一些模塊的折衷因素。 嵌入式WIFI模塊硬件參數(shù)因素:天工測(cè)控通常會(huì)按嵌入式WIFI模
    發(fā)表于 07-30 11:39

    什么是Wi-Fi?WLAN和Wi-Fi區(qū)別是什么?

    什么是Wi-Fi?有什么特點(diǎn)?WLAN和Wi-Fi區(qū)別有哪些?
    發(fā)表于 05-25 06:02

    基于嵌入式Wi-Fi處理器的無(wú)線系統(tǒng)設(shè)計(jì)

    該文給出了嵌入式Wi-Fi系統(tǒng)的設(shè)計(jì)方法,該方法采用的嵌入式Wi-Fi單芯片AX22001/11屬于內(nèi)置802.11無(wú)線網(wǎng)MAC/基帶的單片式TCP/IP微處理器,同時(shí)包含兼容802.
    發(fā)表于 05-16 11:20 ?1647次閱讀
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>Wi-Fi</b>處理器的無(wú)線系統(tǒng)設(shè)計(jì)

    Microchip嵌入式Wi-Fi解決方案及產(chǎn)品 (下)

    本視頻介紹了Microchip公司的嵌入式WiFi解決方案(RN Wi-Fi系列,與MRF Wi-Fi系列),以及相應(yīng)的產(chǎn)品與技術(shù)。
    的頭像 發(fā)表于 06-06 03:45 ?3514次閱讀
    Microchip<b class='flag-5'>嵌入式</b><b class='flag-5'>Wi-Fi</b>解決方案及產(chǎn)品 (下)

    Microchip嵌入式Wi-Fi解決方案及產(chǎn)品 (上)

    本視頻介紹了Microchip公司的嵌入式WiFi解決方案(RN Wi-Fi系列,與MRF Wi-Fi系列),以及相應(yīng)的產(chǎn)品與技術(shù)。
    的頭像 發(fā)表于 06-07 01:46 ?3573次閱讀
    Microchip<b class='flag-5'>嵌入式</b><b class='flag-5'>Wi-Fi</b>解決方案及產(chǎn)品 (上)

    了解最新的Wi-Fi 技術(shù):Wi-Fi6E已經(jīng)推出它和普通Wi-Fi有何區(qū)別

    Wi-Fi 6E已經(jīng)推出 它和普通Wi-Fi有何區(qū)別,wi-fi,路由器,手機(jī),mu-mimo,通信
    發(fā)表于 02-22 14:49 ?1685次閱讀
    了解最新的<b class='flag-5'>Wi-Fi</b> 技術(shù):<b class='flag-5'>Wi-Fi</b>6E已經(jīng)推出它和<b class='flag-5'>普通</b><b class='flag-5'>Wi-Fi</b>有何<b class='flag-5'>區(qū)別</b>

    Wi-Fi HaLow 和傳統(tǒng) Wi-Fi區(qū)別是什么

    Wi-Fi 就像我們互聯(lián)世界的氧氣。它是當(dāng)今使用最廣泛的無(wú)線網(wǎng)絡(luò)協(xié)議,承載了所有互聯(lián)網(wǎng)一半以上的流量?!?b class='flag-5'>Wi-Fi”是一個(gè)包羅萬(wàn)象的術(shù)語(yǔ),用于描述不斷發(fā)展的 802.11 協(xié)議家族,這些協(xié)議已經(jīng)發(fā)展
    發(fā)表于 06-18 17:35 ?999次閱讀

    基于ARM11的嵌入式Wi-Fi實(shí)驗(yàn)研究

    基于ARM11的嵌入式Wi-Fi實(shí)驗(yàn)研究(嵌入式開發(fā)工作內(nèi)容)-基于ARM11的嵌入式Wi-Fi實(shí)驗(yàn)研究? ? ? ? ? ? ? ?
    發(fā)表于 07-30 14:56 ?4次下載
    基于ARM11的<b class='flag-5'>嵌入式</b><b class='flag-5'>Wi-Fi</b>實(shí)驗(yàn)研究

    Wi-Fi 6和Wi-Fi 5之間有哪些區(qū)別呢?

    Wi-Fi 6和Wi-Fi 5之間有哪些區(qū)別呢? Wi-Fi 6和Wi-Fi 5是無(wú)線局域網(wǎng)標(biāo)準(zhǔn)的兩個(gè)版本,它們之間存在很多
    的頭像 發(fā)表于 12-09 16:09 ?1818次閱讀

    Wi-Fi HaLow和傳統(tǒng)Wi-Fi區(qū)別

    Wi-Fi HaLow和傳統(tǒng)Wi-Fi區(qū)別? Wi-Fi是一種無(wú)線網(wǎng)絡(luò)技術(shù),可以連接到互聯(lián)網(wǎng)或局域網(wǎng),為用戶提供無(wú)線上網(wǎng)的便利。隨著科技的發(fā)展和互聯(lián)網(wǎng)的普及,
    的頭像 發(fā)表于 02-02 15:28 ?809次閱讀