在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>通信網絡>基于USB接口的無線網卡驅動研究與實現資料下載

基于USB接口的無線網卡驅動研究與實現資料下載

2021-04-07 | pdf | 585.62KB | 次下載 | 2積分

資料介紹

摘 要: 針對無線網卡驅動結構復雜、編寫困難的問題,提出了一種結構清晰、簡單易行的無線網卡驅動模型和設計實現方法;重點研究了USB設備驅動結構以及無線網卡數據包的接收和發送流程。在嵌入式Linux平臺下,設計了基于USB接口的無線網卡驅動,實現了對無線網卡芯片Realtek RTL8188的支持。同時,結合嵌入式軟硬件開發平臺,成功組建了無線局域網,對驅動程序進行了測試。測試結果表明,無線網卡驅動運行平穩,實現了預期的目標。0 引言隨著無線通信技術的不斷發展,無線局域網(WLAN)的使用日漸廣泛。與傳統有線網絡相比,其優勢主要體現在高度可移動性、布線簡單、組網便利和成本低廉等方面[1]。而在嵌入式系統開發中,無線局域網的接入不僅彌補了以往開發靈活性差和布線復雜等缺陷使開發更加方便,同時可以實現系統的無線傳輸以滿足特定場合的應用。本文結合項目開發,提出了一種基于Realtek公司RTL8188無線網卡芯片的無線傳輸系統方案,通過對USB無線網卡驅動深入研究和分析,成功開發了其在嵌入式DM3730平臺下的驅動,實現了無線網絡的接入。1 系統硬件平臺遠程視頻監控系統中,智能無線網絡攝像機主要承擔著圖像采集、數據編碼、網絡傳送等功能。硬件部分主要由核心處理模塊、網絡傳輸模塊、采集模塊、存儲模塊以及電源模塊等組成,系統硬件開發平臺如圖1所示。核心處理模塊采用TI公司的TMS320DM3730片上系統,DM3730是針對高清視頻產品市場推出的ARM+DSP雙核架構處理器;采集模塊中,CMOS傳感器采用OmniVision公司的OV2715圖像傳感器,其為專門為高清視頻監控而設計的支持1 080 P視頻采集的圖像傳感器。該系統網絡傳輸模塊采用Realtek公司生產的一款基于802.11g的無線網卡,采用RTL8188無線網絡芯片,采用簡單靈活、即插即用的USB接口方式接入系統。2 無線網卡驅動模型基于USB接口的無線網卡通過USB總線接入主機系統,USB無線網卡驅動分為USB設備端驅動和網絡設備端驅動兩部分[2],USB無線網卡驅動結構如圖2所示。2.1 USB設備驅動Linux操作系統中,USB子系統驅動程序主要由USB核心驅動(USBD)、USB主機控制器驅動(HCD)和具體的USB設備驅動三部分組成[3]。Linux下USB設備驅動結構圖如圖3所示。USB核心驅動主要負責對USB設備的整體控制,包括實現USB設備和主機控制器之間的通信,其內部封裝了一系列API,用以屏蔽來自不同設備的差異;USB主機控制器驅動直接與硬件進行交互,主要負責對主機控制器硬件設備初始化,向USB核心提供對應的接口,配置和控制根Hub設備等功能;USB客戶端設備驅動程序負責與上層應用軟件模塊交互并為其提供相應的接口,驅動具體的硬件設備,將設備掛載到USB核心中使其正常運轉[4]。編寫USB客戶端設備驅動時,內核提供了相應的接口,只需實現基本的函數即可,最常用的結構體是struct usb_driver,創建客戶端程序需初始化其五個字段:(1)id_table字段:是一個指向struct usb_device_table結構體的指針,該結構指定了驅動程序能支持的所有USB設備類型,主要由Vendor id和Product id對組成。(2)probe字段:探測指針,USB設備接入系統上電后,會主動匹配相應的驅動程序,調用自定義探測函數,完成主要的初始化工作。(3)disconnect字段:分離函數指針,總線設備被移除或者驅動模塊從系統中卸載時,將調用自定義分離函數,主要完成內存釋放和資源回收等工作。(4)owner和name字段:owner指定該模塊擁有者;name指定該驅動程序名稱。usb_driver結構體中的字段均被正確設置以后,調用注冊函數usb_register(),函數將USB接口驅動程序注冊到USB核心。注冊成功后,USB系統可以對無線網卡的接入和移除操作作出相應的反應。若要網卡成功收發數據,需實現其網卡網絡設備驅動。2.2 無線網卡驅動無線網卡驅動主要負責屏蔽底層硬件設備具體細節,向上層協議棧提供一致的數據發送和接收接口,驅動硬件設備完成數據包收發等功能;無線網卡數據包發送與接收過程主要用到struct sk_buff結構體[5],其實際用于描述套接字緩沖區結構,被用來在Linux系統網絡各層之間傳遞數據。無線網卡發送數據時,Linux在內核申請數據包sk_buff緩沖區,然后遞交給下層,下層添加相關協議頭后直接交給硬件將數據包發送出去。無線網卡接收數據時,將收到的數據包按照sk_buff格式提交給上層,上層剝離協議頭后,交給上層應用程序調用[6]。無線網卡設計與實現依賴于Linux系統提供的接口,主要為struct ieee80211_hw結構體,該結構體定義了硬件設備發送、接收、初始化接口。實現無線網卡驅動主要遵循三個步驟:首先,通過模塊加載后分配得到一個struct ieee80211_hw結構體;其次,對這個結構體的各個字段進行設置和填充,完成硬件的相關配置;最后,利用相應的注冊函數向內核注冊驅動。3 無線網卡驅動設計與實現無線網卡驅動工作原理如下:模塊加載時,系統首先完成對USB設備的掃描和初始化[7],其次初始化網卡硬件和狀態,輪詢是否有數據需要發送和接收;模塊卸載時,分別先后注銷網絡設備和USB設備,完成相關資源的釋放工作。無線網卡驅動設計流程圖如圖4所示。3.1 網卡初始化模塊驅動設計系統上電,Linux內核啟動后會加載驅動模塊,USB無線網卡驅動向USB系統注冊;當無線網卡插入USB總線時,USB core調用probe()方法來檢測Vendor id和Product id信息[8],以確定無線網卡設備是否與驅動程序匹配;匹配成功則進行網卡初始化,網卡初始化模塊設計流程如圖5所示。在該初始化模塊中,系統為網卡分配了無線設備硬件設備struct ieee80211_hw數據,用相關自定義函數對該數據結構進行了填充;同時填充了描述無線網卡操作的struct ieee80211_ops rtl8188_ops結構體,該操作函數主要包括網卡發送、接收、配置、移除接口等操作。3.2 網卡數據接收模塊驅動設計PCI、ISA等類型無線網卡具備IO/MEM映射、中斷和DMA等硬件資源,故可以通過中斷來實現數據的接收[9];而USB無線網卡不具備這類資源,只能通過主機輪詢是否有數據需要讀取或者接收。因此,首先向USB核心申請一個讀請求URB,用以數據到來時的存放。網卡數據接收模塊設計流程如圖6所示。3.3 網卡數據發送模塊驅動設計無線網卡發送數據通過對硬件設備的讀寫來完成。當應用程序的數據被封裝好傳遞到驅動層時,會調用ieee80211_ops中的int(*tx)(struct ieee80211_hw*hw,struct sk_buff*skb)函數指針指向的自定義發送函數進行協議頭相關處理,完成數據包的發送任務,最后更新網絡接口統計數據。數據發送模塊驅動設計流程如圖7所示。3.4 其他關鍵驅動模塊設計在定義設備文件操作struct ieee80211_ops rtl8188_ops結構體中,start指針指向打開函數rtl8188_start(),當使用命令ifconfig配置無線網卡時,調用該函數,主要完成分配資源,初始化接收和發送隊列等功能;stop指針指向rtl8188_stop()函數,其工作與start函數相反,當網卡由開啟變為關閉時調用;add_interface指針指向添加接口函數,其在設備可用之前調用,用來配置接口,可將接口配置成ad-hoc點對點模式、主機模式或者monitor模式等;刪除接口函數在stop之前調用,主要功能是清除保存MAC地址,使設備不能接收數據包。編寫無線網卡驅動,以上幾個數據結構必須要實現。4 無線網卡驅動編譯與測試4.1 驅動程序編譯首先,在主機上建立/driver/net/wireless/rtl8188目錄,將相關源碼和文件放到該目錄中;其次,在宿主機上配置內核相關選項,通過make menuconfig添加對WLAN的支持;最后,編寫相應的makefile文件,使用make命令在系統中編譯生成rtl8188.ko驅動模塊。在硬件平臺系統中安裝有關無線管理程序,采用iwconfig、iwapy等命令,配置網絡的KEY、ESSID、接入模式等。4.2 程序測試及結果分析結合特定硬件平臺和相關開發環境的搭建,組建典型的網絡完成對無線網卡驅動的測試,網絡拓撲如下圖8所示。在調試窗口中,通過動態加載命令“insmod rtl8188.ko”將無線網卡驅動模塊下載到內核中,無線網卡接入系統后,自動掃描并初始化網卡,通過lsmod命令查看加載模塊,網卡驅動加載成功后如圖9所示。4.2.1 Ping連通性測試利用ifconfig命令配置無線網卡IP地址、無線熱點ESSID和KEY,設置無線網卡接入無線路由,測試網卡和路由器之間的連通性。USB無線網卡和路由器連通測試結果如圖10所示。將主機IP地址和無線網卡設置在同一網段,測試無線網卡和主機之間的互通性。主機IP地址為192.168.0.88,通過命令ping之后的結果如圖11所示。通過以上結果可以得出,USB無線網卡、無線路由器、主機之間是互通的,網卡和主機成功建立了網絡連接,無線網卡驅動工作正常,還需對其速率進行測試。4.2.2 網卡速率測試編寫網卡速率測試程序,該程序采用C/S模式,客戶端運行在開發板上,服務端運行在Linux PC上。測試程序的主要工作流程如下:客戶端分別發送大小不同的數據包,服務端接收后計算出對應的帶寬速率,測試結果如下表1所示。經過多組數據發送接收試驗,該無線網卡工作正常,在距離無線節點10 m半徑范圍內帶寬速率為10.45 Mb/s。由以上結果得出,USB無線網卡收發數據功能已經實現且工作穩定,驅動讀寫相關寄存器等配置正確,真正實現了“驅動”硬件的功能,從而直接地驗證了驅動編寫方案的合理性,同時間接地確認了模型的可行性。5 結束語本文介紹了一種USB無線網卡驅動模型,并對USB設備驅動和網卡功能驅動進行了深入研究;在嵌入式硬件平臺上開發了USB無線網卡驅動,最后在搭建的網絡平臺上完成了實驗測試,驗證了模型和程序的正確性。文中提出的無線網卡驅動模型和實現方法,對相關開發人員有一定的參考和指導價值。參考文獻[1] 沈韜,李紹榮.無線網卡驅動分析與WLAN性能測試[J].通信技術,2009,42(10):105-110.[2] 陳立朋.基于Linux的USB無線網卡通用驅動框架設計[D].長春:吉林大學,2012.[3] 郭昊.嵌入式Linux上USB無線網卡驅動的研究與實現[D].廣州:暨南大學,2012.[4] VENKATESWARAN S.精通Linux設備驅動程序開發[M].宋寶華,何照然,史海濱,等譯.北京:人民郵電出版社,2010.[5] 錢曉華,郭繼紅.基于嵌入式linux的無線網卡驅動程序[J].遼寧大學學報(自然科學版),2008,6(2):55-57.[6] 葉學程,鄭霖.嵌入式Linux的USB-Chirp無線網卡驅動設計[J].單片機與嵌入式系統應用,2014(7):53-56.[7] 王標,郭敏,單保慈.基于ARM的無線網卡設備驅動設計[J].現代電子技術,2009(7):101-103.[8] Zhang Xiaoming, Song Xiaoying. Net devise drive program′s research and implement in embedded Linux operating system[C]. Computer Science-Technology and Applications, 2009, IFCSTA 039; 09. International Forum on. IEEE, 2009:172-174.[9] 楊勇,葉梅,張秦艷,等.基于ARM的嵌入式Linux無線網卡設備驅動研究[J].核電子學與探測技術,2010,30(4):519-523.(mbbeetchina)
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1FS8023 USB的PD和QC快充協議電壓誘騙控制器中文手冊
  2. 2.61 MB   |  3次下載  |  免費
  3. 2FS8024A USB PD協議SINK端誘騙取電芯片中文資料
  4. 2.05 MB   |  1次下載  |  免費
  5. 3AG32VH 系列應用指南
  6. 0.60 MB   |  1次下載  |  免費
  7. 4QK1210規格書V1
  8. 1.03 MB  |  1次下載  |  免費
  9. 5DD3118電路圖紙資料
  10. 0.08 MB   |  1次下載  |  免費
  11. 6AD庫封裝庫安裝教程
  12. 0.49 MB   |  1次下載  |  免費
  13. 7PC6206 300mA低功耗低壓差線性穩壓器中文資料
  14. 1.12 MB   |  1次下載  |  免費
  15. 8網絡安全從業者入門指南
  16. 2.91 MB   |  1次下載  |  免費

本月

  1. 1貼片三極管上的印字與真實名稱的對照表詳細說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設計指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分
主站蜘蛛池模板: 亚洲va国产日韩欧美精品色婷婷 | 精品黄色片 | 亚洲图片欧美色图 | 国产免费资源 | 国卡一卡二卡三免费网站 | 亚洲第一色在线 | 亚洲欧美日韩在线精品2021 | 日本黄页在线观看 | 国产香蕉一区二区精品视频 | 久久精品国产精品亚洲人人 | 国产在线精彩视频二区 | 日韩亚洲人成网站在线播放 | 日本免费黄色录像 | 中文字幕一区二区三区有限公司 | 精品午夜久久福利大片免费 | 女人午夜啪啪性刺激免费看 | 色综合天天操 | 亚洲精品一区二区中文 | 人与牲动交bbbbxxxx | 黄视频网站观看 | 天天拍夜夜添久久精品免费 | 豆国产97在线 | 欧洲 | 日本xxxx色视频在线观看免 | 傲视影院午夜毛片 | 夜夜操com| 轻点灬大ji巴太粗太长了爽文 | 男人边吃奶边爱边做视频日韩 | 黄色大片网 | 久久天天躁狠狠躁夜夜不卡 | 加勒比一木道|视频在线看 加勒比在线免费视频 | 成人免费久久精品国产片久久影院 | 国产色婷婷精品综合在线 | 黑粗硬大欧美视频 | 人人干人人澡 | 日韩大尺度视频 | 手机看片久久青草福利盒子 | 亚洲激情都市 | 一级特黄aa大片一又好看 | 豆国产97在线 | 欧洲 | 国内一区二区三区精品视频 | 国产69精品久久 |