目前,嵌入式技術(shù)已廣泛應(yīng)用于工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)等各類市場產(chǎn)品。并且隨著互聯(lián)網(wǎng)的日益發(fā)達,具有無線接入功能的嵌入式系統(tǒng)更加具有發(fā)展前景。本文將介紹支持IEEE 802.11g協(xié)議的54M USB無線網(wǎng)卡在嵌入式系統(tǒng)上的應(yīng)用,嵌入式系統(tǒng)使用了ARM9系列的S3C2410處理器。 1 系統(tǒng)硬件體系結(jié)構(gòu) 1.1 系統(tǒng)結(jié)構(gòu) 系統(tǒng)總體結(jié)構(gòu)如圖1所示。 ![]() 系統(tǒng)核心芯片采用三星公司的S3C2410處理器,該處理器是三星公司的一款基于 ARM920T內(nèi)核的16/32位RISC嵌入式微處理器,主要面向手持設(shè)備以及高性價比,低功耗的應(yīng)用,運行的頻率可以達到203MHz。該處理器集成了很多重要的功能模塊,并且支持多種總線。處理器集成了USB HOST控制器,并支持兩個USB HOST通訊端口。 系統(tǒng)使用64M NAND FLASH作為仔儲器,存儲了系統(tǒng)軟件部分必需的BOOTLOADER、LINUXKERNEL、FILESYSTEM。系統(tǒng)中的串口、 USBDEVICE接口、JTAG接口主要在開發(fā)調(diào)試時使用。系統(tǒng)通過TOUCH&LCD進行人機信息交換,滿足廣大消費類電子產(chǎn)品的需求。 無線網(wǎng)卡是這個移動終端的關(guān)鍵設(shè)備,鑒于市面上大部分的llM無線網(wǎng)卡已經(jīng)停產(chǎn)或者即將停產(chǎn),以及社會對具有更高網(wǎng)絡(luò)接入性能的嵌入式設(shè)備的需求,我們選擇芯片組型號為rt2573的54M無線網(wǎng)卡。由于S3C2410處理器已經(jīng)集成了USB HOST控制器,所以不需要附加額外的芯片,網(wǎng)卡可以直接通過USBHOST PORT接入,非常方便。 1.2 USB主機接口的硬件實現(xiàn) 在USB系統(tǒng)中,各種USB設(shè)備要與主機相連,就必須通過一個共同的接口接入豐機。這個接口就是USB豐機控制器(USB Host Controller)。USB總線協(xié)議定義了四條信號線,其中兩條信號線負責供電,而另外兩條信號線負責數(shù)據(jù)的傳輸。USB通信模型是一種Host- Slave(主機——外設(shè))主從式結(jié)構(gòu),因此經(jīng)由USB總線進行通信的雙方必有一方在通信控制中擔當主機(HOST)的角色。 USB接口可從主機上獲得500mA的電流,并且支持熱插拔,真正做到即插即用。一個USB接口可同時支持高速和低速USB外設(shè)的訪問,有一條4芯電纜連接,其中2條是正負電源,傳送的是5V的電源,2條是數(shù)據(jù)傳輸線,數(shù)據(jù)線是單工的,在整個的一個系統(tǒng)中的數(shù)據(jù)速率是一定的,或者是高速,或者是低速。 S3C2410處理器內(nèi)部集成了USB HOST控制器,可以直接從CPU引線出來,而不需要添加額外的控制芯片,圖2為系統(tǒng)的USB HOST接口擴展。S3C2410處理器可以支持兩個USB HOST通信端口。 ![]() 2 USB網(wǎng)卡無線網(wǎng)絡(luò)功能的實現(xiàn) 2.1 無線網(wǎng)卡的軟件管理層實現(xiàn) 嵌入式系統(tǒng)硬件部分建立好后,需要建立軟件系統(tǒng)。本系統(tǒng)中采用了vivi做為BOOTLOADER(引導(dǎo)啟動程序),嵌入式Linux作為操作系統(tǒng),以Cramfs作為主文件系統(tǒng),為支持可讀寫功能還添加了Jffs2文件系統(tǒng)。 接著,需要軟件上實現(xiàn)無線網(wǎng)卡的功能。 無線網(wǎng)卡的軟件包括無線網(wǎng)卡固件(Firmware)、無線網(wǎng)卡驅(qū)動程序(Driver)和無線網(wǎng)卡配置管理程序三部分。 無線網(wǎng)卡的軟件實現(xiàn)結(jié)構(gòu)圖如圖3所示。固件是無線網(wǎng)卡上最基本的控制系統(tǒng),主要基于MAC芯片來實現(xiàn)對整個網(wǎng)卡的控制和管理,并向下提供與物理層的接口,向上提供一個程序開發(fā)接口,為程序開發(fā)附加的移動主機應(yīng)用程序提供支持。在嵌入式系統(tǒng)中,IEEE802.11提供的服務(wù),包括認證、解除認證、登錄、重登錄等均由固件完成。 ![]() 無線網(wǎng)卡的驅(qū)動程序使用固件提供的軟件編程接口,對無線網(wǎng)卡進行控制,配合固件完成數(shù)據(jù)的收發(fā)以及對信息幀的處理。無線網(wǎng)卡驅(qū)動程序主要是針對相應(yīng)的無線網(wǎng)卡芯片進行設(shè)計的,不同的芯片,它們的固件和寄存器相關(guān)設(shè)置存在很大的差異。除了要完成對下層的控制外,無線網(wǎng)卡驅(qū)動還要向上層應(yīng)用程序和管理程序提供操作和配置無線網(wǎng)卡的應(yīng)用程序編程接口,以實現(xiàn)其網(wǎng)絡(luò)傳輸功能。 所有的Linux網(wǎng)絡(luò)驅(qū)動程序遵循通用的接口。設(shè)計時采用的是面向?qū)ο蟮姆椒āR粋設(shè)備就是一個對象(device結(jié)構(gòu)),它內(nèi)部有自己的數(shù)據(jù)和方法。每一個設(shè)備的方法被調(diào)用時的第一個參數(shù)都是這個設(shè)備對象本身,這樣這個方法就可以存取自身的數(shù)據(jù)(類似面向?qū)ο蟪绦蛟O(shè)計時的this引用)。一個網(wǎng)絡(luò)設(shè)備最基本的方法有初始化、發(fā)送和接收。如圖4所示。 ![]() 初始化程序完成硬件的初始化,device中變量的初始化和系統(tǒng)資源的申請,發(fā)送程序是在驅(qū)動程序的上層協(xié)議層有數(shù)據(jù)要發(fā)送時自動調(diào)用的。一般驅(qū)動程序中不對發(fā)送數(shù)據(jù)進行緩存,直接使用硬件的發(fā)送功能把數(shù)據(jù)發(fā)送出去。接收數(shù)據(jù)一般是通過硬件中斷來通知的。在中斷處理程序里,把硬件幀信息填入一個 skbuff結(jié)構(gòu)中,然后調(diào)用 netif_rx()傳遞給上層處理。 本系統(tǒng)的無線網(wǎng)卡驅(qū)動接口主要實現(xiàn)了以下接口函數(shù): ![]() 無線網(wǎng)卡配置管理程序利用驅(qū)動程序提供的信息查詢和設(shè)置接口,向用戶實時提供無線網(wǎng)卡的狀態(tài),同時利用該管理軟什可以實現(xiàn)對IP、 SSID等無線剛卡參數(shù)進行必要的配置。常見的無線網(wǎng)卡配置管理程序有iwconfig、iwlistt、iwspy、iwpriv等。這里介紹幾個主要的無線網(wǎng)卡配置管理程序: ·Iwconfig:主要的無線管理工具,用來查看設(shè)備配置以及大部分的無線剛絡(luò)參數(shù)。 ·Iwlish:用來查看大部分iwconfig工具不能顯示的參數(shù),如:比特率,頻率等。 ·Impriv:操作無線網(wǎng)卡驅(qū)動程序提供的特有的管理控制功能。 ·Iwgetid:輸出指定設(shè)備的ESSID或NWID。 2.2 無線網(wǎng)卡的配置和激活使用 要完成無線網(wǎng)卡的配置和激活使用,首先,應(yīng)設(shè)置配置文件和編譯驅(qū)動程序,生成無線網(wǎng)卡的固件和驅(qū)動程序模塊。把固件和配置文什放到文件系統(tǒng)的/etc/Wireless/RT73STA/文件夾上。 Rt73sta.dat的主要配置如下: ·NetworkType=Infra /*由于選擇AP接入模式,網(wǎng)絡(luò)類型選擇Infra*/ ·SSID=TPLINK /* SSID/ESSID(Service SetIdentifier)是“服務(wù)區(qū)標識符匹配”、“業(yè)務(wù)組標識符”的簡稱,最多可以有32個字符。它就好比有線局域網(wǎng)中的“工作組”標識一樣或好比是無線客戶端與無線路由器之間的一道口令一樣,只有在完仝相同的前提下才能讓無線網(wǎng)卡訪問無線路由器,這也是保證無線網(wǎng)絡(luò)安全的重要措施之一。這里設(shè)置為你的AP 上的SSID就可以。*/ ·WirelessMode=0 /*數(shù)字0表示選擇同時支持11b/g協(xié)議。*/ ·TxRate=12 /*數(shù)字12表示選擇54M的傳輸速度。*/ 除通過修改配置文件外,大部分的參數(shù)可以通過iwconfig工具直接設(shè)定。至此,可以通過ifconfig來啟動無線網(wǎng)卡了。Ifconfig usb0 192.168.100.99 up。啟動后可以通過ping命令查看網(wǎng)絡(luò)連接狀態(tài)。 ![]() 詳細介紹了實現(xiàn)基于S3C2410處理器的嵌入式Linux系統(tǒng)無線接入網(wǎng)絡(luò)功能的擴展方法,對硬件和軟件的實現(xiàn)進行了詳細的描述。無線接入功能的實現(xiàn)使得嵌入式系統(tǒng)在網(wǎng)絡(luò)應(yīng)用高速發(fā)展的電子消費世界有著廣闊的發(fā)展空間和應(yīng)用前景。系統(tǒng)采用54MBPS無線網(wǎng)卡,大大增強了嵌入式系統(tǒng)網(wǎng)絡(luò)接入能力,使其更具有競爭力。 參考文獻 1. 陳頤.秦貴和.徐華中 ARM9 嵌入式技術(shù)及Linux高級實踐教程 2005 2. 劉亨杰.汪敏.潘志浩 USB 無線網(wǎng)絡(luò)適配器在嵌入式系統(tǒng)中的應(yīng)用 2003(5) 3. 孫天澤.袁文菊.張海峰 嵌入式設(shè)計及Linux驅(qū)動開發(fā)指南 2005 4. 張綺文.謝建雄.謝勁心 ARM 嵌入式常用模塊與綜合系統(tǒng)設(shè)計 2007 5. 黃學(xué)雷 無線局域網(wǎng)在嵌入式系統(tǒng)中的應(yīng)用 2006 6. 劉乃安 無線局域網(wǎng)(WLAN)原理、技術(shù)與應(yīng)用 2004 7. JONATHTAN CORBET.ALESSANDRO RUBINI LINUX 設(shè)備驅(qū)動程序 2006 8. 毛德操.胡希明 Linux 內(nèi)核源代碼情景分析 2001 9. 郭磊.廖啟征.魏世民.蔡坤.李偉 基于 ARM9系統(tǒng)的USB無線網(wǎng)卡驅(qū)動程序設(shè)計 [期刊論文] -計算機系統(tǒng)應(yīng)用2007(1) 10. 周蓓.王典洪.宋俊磊 ARM 在信息家電方面的應(yīng)用 2006(2) 作者:武漢大學(xué)物理科學(xué)與技術(shù)學(xué)院 吳永康 張東 楊承照 來源:電子技術(shù) 2007(7) |