• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      無(wú)線USB 通信裝置的研制

      2014-01-14 00:43:22齊貴寶李傳南宋占偉
      關(guān)鍵詞:集線器PC機(jī)驅(qū)動(dòng)程序

      齊貴寶,李傳南,宋占偉

      (吉林大學(xué)電子科學(xué)與工程學(xué)院,長(zhǎng)春130012)

      0 引 言

      USB(Universal Serial Bus)作為一種通訊協(xié)議已被廣泛應(yīng)用,且將取代部分已有的串行協(xié)議而成為一種主流,現(xiàn)在幾乎所有的計(jì)算機(jī)都配備USB接口。USB是非常成功的標(biāo)準(zhǔn),日常生活中USB接口的設(shè)備普遍存在。但現(xiàn)在一臺(tái)計(jì)算機(jī)通過(guò)USB電纜連接多個(gè)外設(shè)的情況給使用者帶來(lái)了許多不便,比如外設(shè)和電腦的放置距離近,受到限制;多個(gè)USB外設(shè)放在電腦旁,使辦公環(huán)境顯得擁擠。

      假設(shè)辦公室中的打印機(jī)、掃描儀、移動(dòng)硬盤和數(shù)碼相機(jī)等USB外設(shè)都可以和電腦以無(wú)線方式進(jìn)行連接,將省去大量繁雜的數(shù)據(jù)線纜[1,2]。同時(shí)由于擺脫了數(shù)據(jù)線纜的限制,可以增加外設(shè)與電腦之間的放置距離,給人們的日常生活和工作帶來(lái)極大的方便。

      無(wú)線USB是一個(gè)全新無(wú)線傳輸標(biāo)準(zhǔn),近年來(lái)英特爾、三星、NEC、惠普、CYPRESS等公司推出了一些專門的無(wú)線USB芯片,但主要是針對(duì)鼠標(biāo)、鍵盤這類數(shù)據(jù)量較小的低速設(shè)備。對(duì)高速無(wú)線USB單芯片的解決方案在市面上很少見,為數(shù)不多的幾款高速無(wú)線USB多芯片解決方案產(chǎn)品也由于其價(jià)格較高,嚴(yán)重限制了其普及。筆者采用通用器件搭建無(wú)線USB系統(tǒng),旨在開發(fā)出適合打印機(jī)、掃描儀等對(duì)速度要求稍高的USB設(shè)備的無(wú)線USB裝置(包括點(diǎn)對(duì)點(diǎn)的無(wú)線USB裝置和一點(diǎn)對(duì)多點(diǎn)的無(wú)線USB集線器),以求提高高速無(wú)線USB設(shè)備的性價(jià)比和普及度。實(shí)驗(yàn)中,筆者實(shí)現(xiàn)了無(wú)線打印功能。

      1 系統(tǒng)的結(jié)構(gòu)原理及硬件設(shè)計(jì)

      1.1 無(wú)線USB通訊裝置構(gòu)成

      無(wú)線USB通訊裝置的系統(tǒng)構(gòu)成如圖1所示,分為主機(jī)端和客戶端,主機(jī)端用于與PC端進(jìn)行USB通信,客戶端用于與打印機(jī)或集線器進(jìn)行數(shù)據(jù)通信。該系統(tǒng)中,主機(jī)端的控制器為S3C2440控制器,連接有WiFi(Wireless Fidelity)模塊和USB Device模塊。PC(Personal Computer)機(jī)通過(guò)USB口與主機(jī)端的USB Device模塊相連接??蛻舳说目刂破鳛镾3C2440控制器,連接有WiFi模塊和USB Host模塊。客戶端的USB Host模塊,在點(diǎn)對(duì)點(diǎn)的模式下,直接與打印機(jī)相連接;在一點(diǎn)對(duì)多點(diǎn)的模式中,該模塊與USB集線器相連接,將打印機(jī)連接到USB集線器上。

      圖1 系統(tǒng)硬件構(gòu)成Fig.1 Hardware block diagram of the system

      1.2 S3C2440控制器最小系統(tǒng)

      主機(jī)端和客戶端都需要一個(gè)控制器,控制與PC機(jī)或集線器、打印機(jī)的通信。該系統(tǒng)采用三星公司的16/32位精簡(jiǎn)指令集微處理器S3C2440作為控制器核心。S3C2440控制器的核心處理器采用16/32位ARM920T的精簡(jiǎn)指令集微處理器。ARM920T實(shí)現(xiàn)了MMU(Memory Management Unit)、AMBA(Advanced Microcontroller Bus Architecture)總線和高速數(shù)據(jù)、指令緩沖體系結(jié)構(gòu);系統(tǒng)資源和外圍接口豐富,包括電源管理器、外部存儲(chǔ)器控制器、DMA(Direct Memory Access)、SDIO(Secure Digital Input and Output Card)接口、USB Device接口和USB Host接口等[3]。S3C2440控制器內(nèi)部未集成存儲(chǔ)單元,故需要外接Flash和 RAM 存儲(chǔ)器[4]。

      1.3 WiFi模塊

      主機(jī)端與客戶端之間需要采用無(wú)線方式通信,出于對(duì)高速、距離和穩(wěn)定性等的考慮,該系統(tǒng)采用WiFi無(wú)線技術(shù)。WiFi是當(dāng)今使用最廣的一種無(wú)線網(wǎng)絡(luò)傳輸技術(shù),大部分筆記本電腦、智能手機(jī)和平板電腦等都支持該技術(shù)。該系統(tǒng)中采用的核心芯片為MARVELL 8686,接口為SDIO接口,可直接與S3C2440控制器的SDIO接口相連接,最高無(wú)線傳輸速度可達(dá)54 Mbit/s。

      1.4 USB Device模塊

      PC機(jī)與主機(jī)端采用USB通信協(xié)議,且PC端為USB Host接口,該系統(tǒng)中主機(jī)端需要USB Device接口。S3C2440控制器內(nèi)置USB Device控制器,允許控制傳輸、中斷傳輸和批量傳輸,批量傳輸時(shí)可以使用DMA功能,支持掛起和遠(yuǎn)程喚醒功能。它兼容USB1.1協(xié)議,有5個(gè)帶FIFO(First Input First Output)的端點(diǎn),端點(diǎn)0(16字節(jié),控制端點(diǎn))和端點(diǎn)1、2、3、4(128字節(jié),批量端點(diǎn))。

      1.5 USB Host模塊

      客戶端與打印機(jī)或集線器進(jìn)行USB通信,要求客戶端具備USB Host接口,實(shí)現(xiàn)對(duì)USB從設(shè)備的控制。S3C2440控制器集成了USB Host控制器,有兩個(gè)USB Host端口,兼容USB1.1協(xié)議,支持USB2.0的全速和低速設(shè)備。

      1.6 集線器模塊

      在實(shí)現(xiàn)一點(diǎn)對(duì)多點(diǎn)的USB通信中,需要用到USB集線器。USB集線器,又稱為USB Hub,可將一個(gè)USB接口轉(zhuǎn)換為多個(gè)接口,且這些接口可同時(shí)使用。USB集線器應(yīng)用于使用星型拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)中,連接多個(gè)計(jì)算機(jī)或網(wǎng)絡(luò)設(shè)備。USB集線器技術(shù)已經(jīng)很成熟,而且價(jià)格低廉,故實(shí)驗(yàn)階段購(gòu)買成品的USB集線器。

      2 系統(tǒng)軟件設(shè)計(jì)

      2.1 系統(tǒng)整體軟件設(shè)計(jì)

      該系統(tǒng)中以HP LaserJet 1020打印機(jī)為例,對(duì)系統(tǒng)軟件進(jìn)行設(shè)計(jì),系統(tǒng)軟件的流程圖如圖2所示。該系統(tǒng)的軟件分為運(yùn)行于PC機(jī)上的打印監(jiān)控程序和針對(duì)該無(wú)線USB設(shè)備的驅(qū)動(dòng)程序,運(yùn)行于主機(jī)端的USB Device驅(qū)動(dòng)程序和WiFi驅(qū)動(dòng)程序、應(yīng)用程序,運(yùn)行于客戶端的USB Host驅(qū)動(dòng)程序和WiFi驅(qū)動(dòng)程序、應(yīng)用程序。主機(jī)端和客戶端均運(yùn)行LINUX操作系統(tǒng),相關(guān)的驅(qū)動(dòng)程序和應(yīng)用程序均在LINUX操作系統(tǒng)下開發(fā)運(yùn)行。PC機(jī)運(yùn)行打印監(jiān)控程序,監(jiān)控PC機(jī)是否有打印消息,當(dāng)有打印消息時(shí)提示“是否使用無(wú)線打印機(jī)”。確定使用無(wú)線打印機(jī)后,PC機(jī)調(diào)用PC機(jī)上的針對(duì)該無(wú)線USB設(shè)備的USB驅(qū)動(dòng)程序?qū)⑽募?shù)據(jù)傳輸給主機(jī)端。主機(jī)端的控制器通過(guò)WiFi模塊將數(shù)據(jù)傳輸給客戶端??蛻舳说目刂破鲗⑼ㄟ^(guò)與其連接的USB Host模塊,控制打印機(jī)進(jìn)行打印,或通過(guò)USB集線器間接控制打印機(jī)進(jìn)行打印。打印機(jī)打印完畢后,PC機(jī)上的打印監(jiān)控程序繼續(xù)監(jiān)控打印消息。

      圖2 系統(tǒng)軟件流程Fig.2 Flow chart of software

      2.2 PC機(jī)無(wú)線USB設(shè)備驅(qū)動(dòng)

      該驅(qū)動(dòng)程序用到的軟件有DDK(Drive Development Kit)、DRIVERSTUDIO、VC++6.0[5]。DDK一般指windows設(shè)備驅(qū)動(dòng)程序開發(fā)包。如果你想開發(fā)一個(gè)設(shè)備驅(qū)動(dòng)程序,如顯卡驅(qū)動(dòng)程序,就需要使用DDK。DriverStudio是一套用來(lái)簡(jiǎn)化微軟windows平臺(tái)下設(shè)備驅(qū)動(dòng)程序的開發(fā)、調(diào)試和測(cè)試的工具包,它為windows下USB驅(qū)動(dòng)的開發(fā)提供了模板,可以有效降低驅(qū)動(dòng)開發(fā)的難度和提高開發(fā)的效率。VC++6.0為驅(qū)動(dòng)開發(fā)的編輯器和編譯器。當(dāng)該無(wú)線USB裝置插入時(shí),驅(qū)動(dòng)程序可以根據(jù)其VID(Vendor IDentification)和PID(Product IDentification)進(jìn)行匹配識(shí)別。

      2.3 WiFi驅(qū)動(dòng)

      在LINUX內(nèi)核中集成了SDIO驅(qū)動(dòng)和IEEE802.11協(xié)議,在配置內(nèi)核時(shí)添加對(duì)SDIO接口和IEEE802.11協(xié)議的支持,然后在網(wǎng)絡(luò)配置中添加對(duì)MARVELL 8686芯片的支持,同時(shí)將WiFi模塊需要的固件程序放到LINUX文件系統(tǒng)的lib目錄下[6,7]。在LINUX內(nèi)核啟動(dòng)時(shí)自動(dòng)運(yùn)行腳本文件完成對(duì)WiFi模塊的啟動(dòng)和配置,腳本文件的內(nèi)容如圖3和圖4所示。WiFi的組網(wǎng)模式有一點(diǎn)對(duì)多點(diǎn)模式和Ad-Hoc(點(diǎn)對(duì)點(diǎn))模式,該項(xiàng)目中將WiFi配置成Ad-Hoc模式,實(shí)現(xiàn)主機(jī)端和客戶端點(diǎn)對(duì)點(diǎn)無(wú)線連接和數(shù)據(jù)通信。

      圖3 A端WiFi配置腳本Fig.3 Configuration script of WiFi on client terminal

      圖4 B端WiFi配置腳本Fig.4 Configuration script of WiFi on Host terminal

      2.4 USB Device模塊驅(qū)動(dòng)

      在LINUX操作系統(tǒng)下開發(fā)針對(duì)USB Device模塊的Read、Write、Open、Close函數(shù),分別實(shí)現(xiàn)對(duì)USB Device模塊的讀、寫、打開和關(guān)閉操作[8]。同時(shí)在LINUX內(nèi)核中添加對(duì)USB Device模塊的中斷處理,實(shí)現(xiàn)USB Device模塊控制端點(diǎn)的數(shù)據(jù)收發(fā)和數(shù)據(jù)端點(diǎn)的數(shù)據(jù)收發(fā),其中的數(shù)據(jù)包含USB Device的VID、PID,PC機(jī)發(fā)來(lái)的數(shù)據(jù),USB Device返回的數(shù)據(jù)等。

      2.5 LINUX下打印機(jī)支持軟件

      LINUX下打印機(jī)支持軟件包括打印機(jī)操作工具包、針對(duì)特定打印機(jī)的固件、文件格式轉(zhuǎn)換工具等。源碼的編譯是在PC機(jī)的LINUX操作系統(tǒng)下進(jìn)行的,需要用到交叉編譯器。命令的輸入是在超級(jí)終端,操作步驟如下[9]。

      1)編譯foo2zjs。下載foo2zjs源碼,編譯后得到foo2zjs和sihp1020.dl兩個(gè)文件,拷貝到客戶端裝置的文件系統(tǒng)中。其中foo2zjs為打印操作的可執(zhí)行工具,sihp1020.dl為HP1020打印機(jī)所需要的固件。

      2)編譯ghostscript-8.15。下載ghostscript-8.15源碼,編譯后得到gs可執(zhí)行工具,該工具用于將PDF格式的文件轉(zhuǎn)換為PBM格式的文件。

      3)插接USB打印機(jī)到客戶端,客戶端超級(jí)終端打印信息如下。

      usb 1-1:new high speed USB Device using s1r72v17 and address 2

      usb 1-1:Product:HP LaserJet 1020

      usb 1-1:Manufacturer:Hewlett-Packard

      usb 1-1:SerialNumber:JL3ESMZ

      usb 1-1:configuration#1 chosen from 1 choice

      drivers/usb/class/usblp.c:usblp0:USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x03F0 pid 0x2B17

      4)在客戶端超級(jí)終端,執(zhí)行“mdev-s”命令,生成lp0節(jié)點(diǎn),位于/dev/lp0路徑下。

      5)在客戶端超級(jí)終端,執(zhí)行“cat sihp1020.dl>/dev/lp0”命令,加載打印機(jī)固件。

      6)使用gs工具將PDF文件轉(zhuǎn)換生成PBM文件,命令如下:

      ./gs-q-dBATCH-dSAFER-dQUIET-dNOPAUSE-sPAPERSIZE=a4-r1200x600-sDevice=pbmrawsOutputFile=test.pbm test.pdf

      7)調(diào)用foo2zjs工具打印PBM文件,在客戶端超級(jí)終端執(zhí)行如下命令:./foo2zjs-z1-p9-r1200x600 test.pbm>/dev/lp0

      2.6 主機(jī)端應(yīng)用程序

      主機(jī)端的應(yīng)用程序主要完成USB Device模塊與PC機(jī)的通信以及WiFi模塊的數(shù)據(jù)收發(fā),因此開啟兩個(gè)線程分別完成上述兩個(gè)任務(wù)。USB Device模塊接收數(shù)據(jù)時(shí),采用中斷的方式。由于UDP協(xié)議容易出現(xiàn)丟包的現(xiàn)象,無(wú)線傳輸時(shí)采用TCP傳輸協(xié)議[10]。傳輸文件前,需要先發(fā)送文件的大小,以方便另一端進(jìn)行校驗(yàn)。

      2.7 客戶端應(yīng)用程序

      客戶端的應(yīng)用程序主要完成WiFi模塊的數(shù)據(jù)收發(fā)以及打印機(jī)的控制。WiFi部分程序不斷檢測(cè)是否有新文件到來(lái),當(dāng)有新文件到來(lái)時(shí),先對(duì)文件的大小進(jìn)行校驗(yàn),校驗(yàn)通過(guò)后將文件轉(zhuǎn)換為PBM格式并調(diào)用打印機(jī)進(jìn)行打印。

      3 系統(tǒng)整體測(cè)試

      系統(tǒng)的實(shí)物連接圖如圖5所示。左端為主機(jī)端,右端為客戶端,主機(jī)端通過(guò)一條USB線與PC機(jī)相連,打印機(jī)或集線器連接到客戶端的USB HOST接口。PC機(jī)上打印監(jiān)控程序界面如圖6所示,點(diǎn)擊該應(yīng)用程序的“隱藏”按鈕后可以后臺(tái)運(yùn)行。將主機(jī)端插接到PC機(jī)的USB口后,在資源管理器中可以看到該無(wú)線USB設(shè)備,表明該設(shè)備驅(qū)動(dòng)安裝成功,如圖7所示。PC機(jī)上點(diǎn)擊“打印”按鈕后,彈出如圖8所示的提示,點(diǎn)擊“確定”按鈕即可完成一次打印。

      在實(shí)現(xiàn)一點(diǎn)對(duì)多點(diǎn)的無(wú)線USB集線器功能時(shí),將USB集線器插接到客戶端的USB Host接口,將打印機(jī)連接到USB集線器的一個(gè)USB口上。打印效果圖如圖8所示,打印的內(nèi)容既含文字又含圖片。

      圖5 硬件連接和打印效果圖Fig.5 Hardware connection and effect diagram of the printer

      圖6 PC機(jī)上打印監(jiān)控程序Fig.6 Monitoring program of printing on PC

      圖7 資源管理器中無(wú)線USB設(shè)備Fig.7 The wireless USB Device in explorer

      圖8 無(wú)線打印提示消息Fig.8 Prompt message of wireless printer

      測(cè)試中打印了一份6頁(yè)的PDF文件,文件大小為627 kByte,比較使用無(wú)線打印機(jī)和有線打印機(jī)的打印效果,前者比后者延時(shí)大約2 s左右,主要用于PDF格式到PBM格式的轉(zhuǎn)換。對(duì)于文件不大的情況,無(wú)線傳輸時(shí)間可以忽略。

      4 結(jié) 語(yǔ)

      無(wú)線USB裝置的研制可有效解決USB設(shè)備放置距離的問題以及有線USB設(shè)備連接混亂的問題。該項(xiàng)目成功實(shí)現(xiàn)了無(wú)線打印功能。項(xiàng)目中實(shí)驗(yàn)階段硬件部分采用兩塊ARM9開發(fā)板,為了進(jìn)一步減少成本、提高集成度,今后可以將開發(fā)板上未使用的模塊去掉,同時(shí)將USB集線器芯片集成到電路板上。隨著人民生活水平不斷提高,無(wú)線USB裝置的應(yīng)用將有更廣闊的空間。

      [1]黃勇,邵飛,顧娟,等.無(wú)線USB標(biāo)準(zhǔn)簡(jiǎn)介[J].信息技術(shù)與標(biāo)準(zhǔn)化,2005(7):25-28.HUANG Yong,SHAO Fei,GU Juan,et al.Brief Introduction of Wireless USB Specification[J].Information Technology &Standardization,2005(7):25-28.

      [2]白鳳娥,霍利鋒,劉振峰,等.無(wú)線USB原理及其發(fā)展[J].信息技術(shù),2006(12):184-186.BAI Fenge,HUO Lifeng,LIU Zhengfeng,et al.Principles and Its Development of Wireless USB [J].Information Technology,2006(12):184-186.

      [3]SAMSUNG ELECTRONICS.S3C2440A 32-Bit RISC Microprocessor User's Manual[EB/OL].(2004-07-01).[2013-03-26].http://www.samsung.com.

      [4]韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2008.WEI Dongshan.Embedded Linux Application Development Completely Manual[M].Beijing:Posts& Telecom Press,2008.

      [5]劉榮.圈圈教你玩USB[M].北京:北京航空航天大學(xué)出版社,2008.LIU Rong.Circle Teach You Play USB[M].Beijing:Beihang University Press,2008.

      [6]羅娜.基于88W8686的手持終端WiFi功能的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué)信息工程學(xué)院,2010.LUO Na.88W8686-Based WiFi Design and Implementation for Handheld Device[D].Wuhan:School of Information and Engineering,Wuhan University of Technology,2010.

      [7]賀琨,張立文,宋占偉,等.基于WiFi通信的嵌入式集裝箱數(shù)據(jù)終端[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2012,30(6):579-584.HE Kun,ZHANG Liwen,SONG Zhanwei,et al.Embedded Container Data Terminal Based on WiFi Communication [J].Journal of Jilin University:Information Science Edition,2012,30(6):579-584.

      [8]宋寶華.Linux設(shè)備驅(qū)動(dòng)開發(fā)詳解[M].北京:人民郵電出版社,2010.SONG Baohua.Linux Device Driver Development Explain[M].Beijing:Posts& Telecom Press,2010.

      [9]黃艷,馬旭東.嵌入式Linux下基于ARM9的USB打印機(jī)控制器的設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2008,21(5):66-67.HUANG Yan,MA Xudong.Design of USB Printer Controller Based on ARM9 under Embedded Linux[J].Industrial Control Computer,2008,21(5):66-67.

      [10]孟祥磊,干莽,張婷,等.基于WiFi的嵌入式目標(biāo)定位與檢視終端[J].吉林大學(xué)學(xué)報(bào):信息科學(xué)版,2012,30(5):480-486.MENG Xianglei,GAN Mang,ZHANG Ting,et al.WiFi-Based Embedded Target Location and View Terminal[J].Journal of Jilin University:Information Science Edition,2012,30(5):480-486.

      猜你喜歡
      集線器PC機(jī)驅(qū)動(dòng)程序
      音樂聆賞新世代 Bowers & Wilkins Formation Audio無(wú)線音樂集線器
      基于PC機(jī)與單片機(jī)的多機(jī)通信技術(shù)及抗干擾方法
      基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實(shí)現(xiàn)
      VC.NET下實(shí)現(xiàn)dsPIC單片機(jī)與PC機(jī)的通信
      電子制作(2017年23期)2017-02-02 07:16:47
      Microchip拓寬USB3.0集線器應(yīng)用范圍
      Microchip推出具有FlexConnect功能的新型智能集線器,拓寬USB 3.0集線器的應(yīng)用范圍
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      網(wǎng)絡(luò)世界里的三兄弟集線器、交換機(jī)和路由器
      大英县| 三明市| 新乡市| 普兰店市| 汝州市| 毕节市| 开化县| 无锡市| 华蓥市| 洛川县| 灯塔市| 石河子市| 阳曲县| 辽中县| 二连浩特市| 那坡县| 江孜县| 巧家县| 修文县| 玉门市| 都安| 西平县| 德清县| 纳雍县| 伽师县| 大姚县| 吉安县| 依兰县| 高安市| 泽州县| 韶山市| 塔河县| 东山县| 金沙县| 清新县| 敦化市| 西昌市| 酉阳| 凤冈县| 科尔| 梧州市|