亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于ARM-Linux平臺的無線網絡功能設計與實現

        2013-12-06 06:49:34
        大眾科技 2013年2期
        關鍵詞:網絡設備驅動程序網卡

        張 康

        (桂林電子科技大學,廣西 桂林 541004)

        1 引言

        近年來,嵌入式系統(tǒng)越來越廣泛應用于人們生活的方方面面。在很多的應用場景下,嵌入式設備需要與外界進行網絡通信。傳統(tǒng)的有線組網方案對設備的移動性和靈活性限制很大,越來越多的嵌入式設備需要采用無線網絡進行數據傳輸。嵌入式ARM微處理器及技術的應用幾乎已經深入到各個領域。而Linux操作系統(tǒng)作為一款免費、開源的操作系統(tǒng),在保證可靠性、穩(wěn)定性、多任務性、實時性的同時,又具有可裁減性和可定制性,并且對硬件設備具有豐富的支持,因而在嵌入式開發(fā)中得到了廣泛的應用。基于以上,本文分析了Linux網絡設備驅動結構,研究了基于ARM-Linux平臺的無線網絡設備搭建和配置方法。

        2 基于Linux的網絡設備驅動

        相應的驅動例程,使控制從用戶例程轉移到驅動例程,完成相關操作后返回用戶例程。

        Linux的內核部分與設備驅動之間通過接口的形式進行標準化的互操作。對于每一類設備,如塊設備、字符設備和網絡設備都存在相應的通用接口以供硬件為內核提供相關服務。有了這些通用接口,內核就可以采用相同的方式來處理不同的硬件設備和它們的驅動程序。設備驅動程序是位于應用層和硬件設備之間的軟件,它隱藏了設備的工作細節(jié)。它只負責處理硬件,而如何使用這些硬件設備則由應用程序來決定。應用程序對設備的使用是通過一系列標準形式的調用來完成的,而設備驅動程序負責將這些調用映射到對硬件設備特定的操作上。圖 1描述了用戶應用程序、系統(tǒng)內核、TCP/IP協(xié)議棧、網絡設備驅動和硬件設備之間是如何進行交互的。

        Linux設備驅動程序是Linux內核與硬件設備之間的軟件接口。當內核需要對硬件設備進行操作的時候,它就調用

        圖1 Linux各層接口

        在 Linux中,對于每一個網絡設備,都用一個 struct device的數據結構作為內核空間和網絡設備間的網絡接口,網絡驅動程序通過該接口進行網絡數據傳輸。Linux網絡驅動的體系結構可從上至下劃分為以下四層,分別是網絡協(xié)議接口層、網絡設備接口層、設備驅動功能層、網絡設備媒介層,如圖2所示。

        圖2 Linux設備驅動結構

        Linux 設備驅動,可以通過兩種方式進行加載。一種是將設備驅動直接編譯進系統(tǒng)內核,設備驅動將隨著Linux內核的啟動進行加載,內核啟動完成之后,設備驅動功能也隨即實現。這種方式會增加內核的大小,另外要在現有的內核中新增或刪除功能,將不得不重新編譯內核。第二種方式是通過模塊進行加載。模塊化設計使得Linux內核功能更容易擴展。這種方式可以控制內核大小, 并且方便對設備驅動的開發(fā),每次修改驅動,只需重新編譯驅動即可,無需再次編譯內核,方便調試。本文中的網絡設備驅動通過第二種方式進行加載:首先通過模塊加載命令insmod將網絡設備驅動程序加載到系統(tǒng)內核之中,之后insmod命令調用init_module函數對網絡設備的 init函數指針進行初始化,并通過調用register_netdev()函數將該網絡設備注冊到系統(tǒng)中。接下來則調用 init函數指針指向的網絡設備初始化函數對設備進行初始化,將設備的device數據結構插入到dev_base鏈表的末尾。如果要對模塊進行卸載,可以通過執(zhí)行命令 rmmod來調用網絡驅動程序中的cleanup_module函數,對網絡驅動程序模塊進行卸載,具體過程如圖3所示。

        圖3 Linux模塊加載過程

        3 系統(tǒng)組成及開發(fā)環(huán)境

        本文中實現無線網絡接入功能的目標平臺為 Xilinx公司生產的ZC702開發(fā)板。該開發(fā)板的主芯片為Xilinx公司推出的Z-7020芯片。該芯片將FPGA(現場可編程邏緝器件)和雙核ARM Cortex-A9 MPCore集成到一塊器件中,將處理器的軟件可編程能力與 FPGA 的硬件可編程能力實現無縫結合,具有突出的系統(tǒng)性能、靈活性、可擴展性。本設計采用無線網卡作為系統(tǒng)的無線接入設備,通過USB接口連接無線網卡與 ARM處理器。該系統(tǒng)中使用的無線網卡的主芯片是Ralink公司生產的RT3070,支持IEEE802.11n標準,傳輸速率最大支持150Mbps,支持操作系統(tǒng)Windows/Linux。

        目標平臺采用Linux操作系統(tǒng),內核版本為3.0.0。宿主機使用的操作系統(tǒng)為 Windows系統(tǒng),需要安裝 VMware Workstation虛擬機,在虛擬機中安裝運行Ubuntu10.0系統(tǒng)(內核板本為Linux 2.6.36)作為開發(fā)環(huán)境。交叉編譯工具使用Xilinx提供的arm-xilinxa9-linux。

        4 系統(tǒng)實現

        4.1 Linux內核配置

        在虛擬機中啟動 Ubuntu10.0,打開終端,進入Linux3.0.0內核目錄/opt/linux-xlnx,在SHELL中運行命令make ARCH=arm menuconfig進入內核配置菜單,在菜單中配置內核選項,添加內核對Wlan的支持及對USB驅動的支持。

        保存內核配置,進行內核編譯:在SHELL中運行命令make ARCH=arm CROSS_COMPILE = arm-xilinxa9-linux-gnueabizImage。

        編譯結束后將在/opt/linux-xlnx/arch/arm/boot路徑下生成zImage內核二進制文件,Linux3.0.0內核就編譯好了。

        4.2 無線網卡驅動編譯

        4.2.1 修改Makefile文件

        從Ralink官網獲取RT3070的驅動程序源碼。進入驅動源碼目錄/opt/rt3070,打開Makefile文件,進行修改,添加以下內容:

        PLATFORM = Xarm

        ifeq ($(PLATFORM),Xarm)

        LINUX_SRC = /opt/linux-xlnx

        CROSS_COMPILE = arm-xilinxa9-linux-gnueabi-

        4.2.2 修改config.mk文件

        進入目錄/opt/rt3070/os/linux/,打開config.mk文件進行修改,修改內容如圖4所示。

        最后保存文件,開始交叉編譯驅動,在SHELL中運行命令make ARCH=arm CROSS_COMPILE = arm-xilinxa9-linux-gnueabi-。最終生成rt3070sta.ko文件,交叉編譯完成。

        圖4 config.mk文件修改內容

        4.3 移植及安裝

        將目標板設置為SD卡啟動方式,將編譯好的內核映像文件及Uboot文件、設備樹、根文件系統(tǒng)拷入SD卡中。啟動開發(fā)板,進入操作系統(tǒng),并通過串口終端在PC上進行顯示。通過開發(fā)板的USB接口,使用U盤將相關文件拷貝到目標機中:

        (1)把驅動源文件中的 RT2870STA.dat 拷貝到目標機根文件系統(tǒng)/etc/Wireless/RT2870STA/路徑下。

        (2)將驅動模塊 rt3070sta.ko,拷貝到目標機根文件系統(tǒng)中,在SHELL中執(zhí)行安裝模塊命令insmod rt3070sta.ko。

        (3)從Ralink官網獲取網卡固件rt2870.bin。將網卡固件拷貝到目標機根文件系統(tǒng)目錄/lib/firmwire/下,在SHELL中執(zhí)行命令 export FIRMWARE=/lib/firmware。再執(zhí)行命令ifconfig ra0 up啟動無線網卡。這樣RT3070無線網卡就移植完畢了,此時網卡就可以開始工作了。

        5 配置及測試

        5.1 安裝無線網絡配置工具

        對無線網卡的設置需要使用無線網絡配置工具,所以就要在目標板系統(tǒng)中安裝相關配置工具。下面介紹使用wireless-tools工具的安裝方法。

        (1)可通過網絡獲取wireless-tools源碼,修改其中的 Makefile文件。修改交叉編譯工具路徑為CROSS_COMPILE=/root/CodeSourcery/Sourcery_G++_Lite/b in/arm-xilinxa9-linux-gnueabi-。

        (2)運行make命令,編譯wireless-tools。

        (3)拷貝生成的庫文件libiw.so.29和libiw.so到目標板文件系統(tǒng)/lib目錄下;拷貝iwconfig、iwlist、iwpriv等可執(zhí)行文件到目標板文件系統(tǒng)/usr/bin目錄下,wireless-tools工具就安裝好了。

        5.2 對無線網卡進行配置及測試

        在完成網卡的移植及wireless-tools的安裝后,就可對無線網卡進行配置和測試了。

        (1)在目標平臺上運行ifconfig ra0 up命令啟用無線網卡。分別使用ifconfig ra0和iwconfig ra0可以查看無線網卡目前的狀態(tài)。顯示結果如圖5所示。

        圖5 顯示無線網卡狀態(tài)

        (2)要搜尋周圍環(huán)境的無線網絡信號可運行iwlist ra0 scanning命令,圖6和圖7中為搜尋到的部分無線網絡,其中圖7顯示的是本次測試中使用無線路由器所產生的無線網絡,其ESSID(擴展服務區(qū)標識)為“TEST”。

        圖6 部分無線網絡信號

        圖7 測試用的無線路由信號

        (3)運行命令iwconfig ra0 essid TEST,接入無線路由所在的測試網絡。運行結果如圖8所示。

        圖8 接入測試網絡

        (4)通過命令udhcpc –i ra0從無線路由獲取動態(tài)分配的IP地址,運行結果如圖9所示。

        圖9 動態(tài)獲取IP地址

        (5)無線路由的IP地址為192.168.1.1。在目標平臺上運行ping 192.168.1.1,有數據返回,表明目標平臺的無線網卡和無線路由間的網絡是連通的。該無線網絡中另一臺主機的IP地址為192.168.1.100,再次運行ping命令進行測試,結果顯示無線網卡和該主機的網絡是連通的。Ping命令的顯示結果如圖10所示。

        圖10 Ping命令運行結果

        6 結束語

        本文對Linux網絡設備驅動的體系結構和工作原理進行了分析,研究了ARM-Linux平臺接入無線網絡的實現方案,將無線網卡移植到目標平臺,并進行了相關配置及測試。結果表明,該方案成功實現了嵌入式系統(tǒng)的無線接入功能,使用嵌入式設備的數據傳輸方式更加靈活。

        [1] Gene Sally. Linux嵌入式系統(tǒng)高級程序設計[M].郭旭,譯.北京:人民郵電出版社,2010.

        [2] 商斌.嵌入式Linux C語言開發(fā)入門與編程實踐[M].北京:電子工業(yè)出版社,2008.

        [3] 趙炯.Linux內核完全注釋[M].北京:機械工業(yè)出版社,2004.

        [4] 郭磊,廖啟征,魏世民.基于ARM9系統(tǒng)的USB無線網卡驅動程序設計[J].計算機系統(tǒng)應用,2007(1):92-94.

        [5] 楊宗德.嵌入式 ARM 系統(tǒng)原理與實例開發(fā)[M].北京:北京大學出版社,2010.

        猜你喜歡
        網絡設備驅動程序網卡
        在DDS 中間件上實現雙冗余網卡切換的方法
        一種基于C# 的網絡設備自動化登錄工具的研制
        Server 2016網卡組合模式
        數據中心唯“快”不破
        挑戰(zhàn)Killer網卡Realtek網游專用Dragon網卡
        基于列車監(jiān)測網絡設備的射頻功放模塊設計
        基于三層交換技術架構數字化校園網絡設備的配置與管理
        驅動程序更新與推薦
        驅動程序更新與推薦
        驅動程序更新與推薦
        自拍av免费在线观看| japanesehd中国产在线看| 国产免费观看久久黄av麻豆| 亚洲成a人v欧美综合天堂| 中文字幕日韩精品无码内射| 国产成人国产在线观看 | 少妇高潮太爽了免费网站| 成人影院视频在线播放| 无码免费无线观看在线视| 亚洲精品无码av中文字幕| 少妇熟女视频一区二区三区| 国产成人福利在线视频不卡| 看国产亚洲美女黄色一级片| 无码无套少妇毛多18pxxxx| 最近日本中文字幕免费完整| 最新在线观看精品国产福利片| 午夜视频一区二区三区在线观看| 人人妻人人澡人人爽国产一区| 亚洲色自偷自拍另类小说| 色婷婷丁香综合激情| 亚洲第一区二区精品三区在线| 亚洲精品成人片在线观看精品字幕| 人人妻人人添人人爽日韩欧美 | 久久久久无码国产精品不卡| 无码一区二区丝袜| 精品一区二区在线观看免费视频| 鲁丝片一区二区三区免费| 在线国产小视频| 偷拍一区二区三区在线观看| 91久久精品色伊人6882| 无码骚夜夜精品| 波多野结衣一区二区三区免费视频 | 久久久精品国产性黑人| 久久久久亚洲av片无码v| 中文字幕永久免费观看| 国产精品又爽又粗又猛又黄 | 亚洲精品98中文字幕| 日韩放荡少妇无码视频| 图图国产亚洲综合网站| 亚洲av色香蕉一区二区三区软件| 美国少妇性xxxx另类|