吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式Wi-F的來源以及與普通Wi-Fi的區別

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

首先我們來看一下嵌入式Wi-F的來源以及與普通Wi-Fi的區別。

我們都知道筆記本、手機、平板電腦等這類產品具有強大的CPU和大容量的存儲器進行網絡通信數據的處理和存儲,因此在使用WIFI時不需要額外的MCU,完全借助其高速處理器和龐大的軟件系統。但是對于家電,儀表,LED燈等智能家居產品,因為該類產品的主控芯片可能是成本很低、功能簡單的MCU,因此這類產品無法支持普通Wi-Fi的功能。同時,還有一個重要的原因就是普通Wi-F的功耗比較高,而嵌入式WIFI在功耗上做了很大的改善,比較適合對功耗要求高的無線家電設備。

基于上述原因,各個無線廠商相繼推出了嵌入式WIFI模塊。嵌入式WIFI模塊的特點是軟硬件集成度高,整個嵌入式WIFI模塊集成了射頻收發器、MAC、WIFI驅動、所有WIFI協議、無線安全協議、一鍵連接等。總之,一句話:嵌入式WIFI應物聯網而生!

下面我們針對嵌入式WIFI與普通WIFI來進行對比,通過下表的對比,我們大致上可以理解到什么是嵌入式WIFI。

在分析WIFI驅動前,分享一下本人對Linux驅動的一些了解,其實縱觀Linux眾多的設備驅動,幾乎都是以總線為載體,所有的數據傳輸都是基于總線形式的,即使設備沒有所謂的總線接口,但是Linux還是會給它添加一條虛擬總線,如platform總線等;介于WIFI的驅動實在是太龐大了,同時又是基于比較復雜的USB總線,所以建議大家先了解一下USB設備驅動和網絡設備驅動。

我們要看懂WIFI驅動,首先要明白WIFI的工作原理。從對于支持802.11n、802.11ac這些比較無線標準的WIFI芯片,其驅動程序也會越來越復雜。那么我們怎么入手去了解及分析它呢?

網上很多人分析Linux設備驅動都是從模塊加載入手去分析它的驅動源碼。以本人從事Linux設備驅動多年的經驗,這確實是一條很直觀又非常好的思路。但是這只局限于設備功能少、接口較簡單、驅動源碼較少的設備驅動。對于功能復雜、驅動源碼龐大的設備驅動,根據這條思路,很多開發者可能會無耐心走下去,或者會走向死胡同。

現在我們可以這樣來看,從硬件層面上看,WIFI設備與CPU通信是通過USB接口的,與其他WIFI設備之間的通信是通過無線射頻(RF)。從軟件層面上看,Linux操作系統要管理WIFI設備,那么就要將WIFI設備掛載到USB總線上,通過USB子系統實現管理。而同時為了對接網絡,又將WIFI設備封裝成一個網絡設備。

我們以USB接口的WIFI模塊進行分析:

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

(2)從Linux設備的分類上看,它又是網絡設備;

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

通過上述的分析,我們只要抓住這三條線索深入去分析它的驅動源碼,整個WIFI驅動框架就會浮現在你眼前。

1、現在我們先從USB設備開始,要寫一個USB設備驅動,那么大致步驟如下:

(1)需要針對該設備定義一個USB驅動,對應到代碼中即定義一個usb_driver結構體變量。代碼如下:

struct usb_driver xxx_usb_wifi_driver;

(2)填充該設備的usb_driver結構體成員變量。代碼如下:

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)將該驅動注冊到USB子系統。代碼如下:

usb_register(&xxx_usb_wifi_driver);

以上步驟只是一個大致的USB驅動框架流程,而最大和最復雜的工作是填充usb_driver結構體成員變量。以上步驟的主要工作是將USB接口的WIFI設備掛載到USB總線上,以便Linux系統在USB總線上就能夠找到該設備。

2、接下來是網絡設備的線索,網絡設備驅動大致步驟如下:

(1)定義一個net_device結構體變量ndev。代碼如下:

struct net_device *ndev;

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

ndev=alloc_etherdev();

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

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結構體成員變量,該變量是無線擴展功能。代碼如下:

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

(5)將ndev設備注冊到網絡子系統。代碼如下:

register_netdev(ndev);

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

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

xxx_read_chip_info();

xxx_chip_configure();

xxx_hal_init();

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

xxx_drv_proc_init();

xxx_ndev_notifier_register();

(3)自身功能的實現,在前面章節上我們已經講解過WIFI的網絡及接入原理,如掃描等。同時由于WIFI在移動設備中,相對功耗比較大,因此,對于功耗、電源管理也會在驅動中體現。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5093

    文章

    19178

    瀏覽量

    307713
  • USB接口
    +關注

    關注

    9

    文章

    702

    瀏覽量

    55834
  • Linux
    +關注

    關注

    87

    文章

    11345

    瀏覽量

    210407

原文標題:一位從事Linux設備驅動多年的嵌入式er教你理解嵌入式Wi-Fi的驅動架構

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    WiMAX與Wi-Fi區別

    存取點是由數十米的小片面積所組成,所以WiMAX在全球涵蓋上會有占有優勢。但是因為目前的市場占有率較高,以及因為小范圍、同時競爭的用戶人數較少,造成Wi-Fi 較快、延遲較小的特性,Wi-Fi 的收費
    發表于 12-03 19:09

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

    嵌入式Wi-Fi模塊選型時,主要考察WIFI模塊的硬件參數和系統軟件支持方面的因素,當然也要考慮一些模塊的折衷因素。 嵌入式WIFI模塊硬件參數因素:天工測控通常會按嵌入式WIFI模
    發表于 11-22 14:24

    嵌入式Wi-Fi天線設計參考

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

    村田嵌入式Wi-Fi模塊有什么優點

    模塊,因為終端產品的MCU和Flash都無法支持Wi-Fi的功能,因此需要額外的MCU和Flash進行數據處理和存儲。為在這些產品上的應用提供方便,簡單的解決方案,村田開發了帶有MCU的Wi-Fi模塊-嵌入式
    發表于 06-21 06:14

    如何設計基于嵌入式Wi-Fi處理器的無線系統?

    隨著物聯網技術的發展,眾多的嵌入式系統均有增加Wi-Fi特性的需求,比如利用智能手機內建的Wi-Fi來遙控各種嵌入式設備,使支持機器對機器的通信(M2M)具有物聯網通訊功能的
    發表于 11-04 08:26

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

    嵌入式Wi-Fi模塊選型時,主要考察WIFI模塊的硬件參數和系統軟件支持方面的因素,當然也要考慮一些模塊的折衷因素。 嵌入式WIFI模塊硬件參數因素:天工測控通常會按嵌入式WIFI模
    發表于 07-30 11:39

    什么是Wi-Fi?WLAN和Wi-Fi區別是什么?

    什么是Wi-Fi?有什么特點?WLAN和Wi-Fi區別有哪些?
    發表于 05-25 06:02

    基于嵌入式Wi-Fi處理器的無線系統設計

    該文給出了嵌入式Wi-Fi系統的設計方法,該方法采用的嵌入式Wi-Fi單芯片AX22001/11屬于內置802.11無線網MAC/基帶的單片式TCP/IP微處理器,同時包含兼容802.
    發表于 05-16 11:20 ?1691次閱讀
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>Wi-Fi</b>處理器的無線系統設計

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

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

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

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

    了解最新的Wi-Fi 技術:Wi-Fi6E已經推出它和普通Wi-Fi有何區別

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

    Wi-Fi HaLow 和傳統 Wi-Fi區別是什么

    Wi-Fi 就像我們互聯世界的氧氣。它是當今使用最廣泛的無線網絡協議,承載了所有互聯網一半以上的流量。“Wi-Fi”是一個包羅萬象的術語,用于描述不斷發展的 802.11 協議家族,這些協議已經發展
    發表于 06-18 17:35 ?1103次閱讀

    基于ARM11的嵌入式Wi-Fi實驗研究

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

    Wi-Fi 6和Wi-Fi 5之間有哪些區別呢?

    Wi-Fi 6和Wi-Fi 5之間有哪些區別呢? Wi-Fi 6和Wi-Fi 5是無線局域網標準的兩個版本,它們之間存在很多
    的頭像 發表于 12-09 16:09 ?2635次閱讀

    Wi-Fi HaLow和傳統Wi-Fi區別

    Wi-Fi HaLow和傳統Wi-Fi區別? Wi-Fi是一種無線網絡技術,可以連接到互聯網或局域網,為用戶提供無線上網的便利。隨著科技的發展和互聯網的普及,
    的頭像 發表于 02-02 15:28 ?1474次閱讀
    大发888老虎机下载免费| 百乐坊娱乐城官网| 双流县| 金木棉百家乐官网网络破解| 百家乐注册赠分| 威尼斯人娱乐网官网| 百家乐官网案件讯问| 真人百家乐官网网络游戏信誉怎么样| 荷规则百家乐的玩法技巧和规则| 太子娱乐城网址| 新澳门百家乐官网的玩法技巧和规则 | 516棋牌游戏补丁| 线上百家乐官网试玩| 网络百家乐| 体育博彩概论| 百家乐官网在线娱乐场| 网络百家乐程序| 迁西县| 百家乐娱乐城足球盘网| 舟山星空棋牌首页| 利都百家乐官网国际娱乐场开户注册| 如何打百家乐的玩法技巧和规则| 333娱乐城| 有钱人百家乐官网的玩法技巧和规则| 大发888娱乐场怎样下载 | 百家乐官网技术论坛| 百家乐庄闲路| 大发百家乐官网游戏| 百家乐游戏机图片| 云梦县| 赌博百家乐赢钱方法| 永康市| 百家乐官网倍投工具| 美高梅娱乐城网址| 免费百家乐官网分析工具| bet365 论坛| 属猪的人做生意摆放什么聚财| tt娱乐城clega| 线上百家乐官网怎么玩| 澳门网上网址| 百家乐官网高手论|