[信息與通信][畢業(yè)設(shè)計(jì)]基于USB的高速數(shù)據(jù)采集卡的設(shè)計(jì)_第1頁(yè)
[信息與通信][畢業(yè)設(shè)計(jì)]基于USB的高速數(shù)據(jù)采集卡的設(shè)計(jì)_第2頁(yè)
[信息與通信][畢業(yè)設(shè)計(jì)]基于USB的高速數(shù)據(jù)采集卡的設(shè)計(jì)_第3頁(yè)
[信息與通信][畢業(yè)設(shè)計(jì)]基于USB的高速數(shù)據(jù)采集卡的設(shè)計(jì)_第4頁(yè)
[信息與通信][畢業(yè)設(shè)計(jì)]基于USB的高速數(shù)據(jù)采集卡的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第一章 緒論1.1 課題背景隨著數(shù)字化的廣泛應(yīng)用,數(shù)據(jù)采集也越來(lái)越重要,傳統(tǒng)的外設(shè)與主機(jī)的通信口一般采用isa、pci、c pci、1394等標(biāo)準(zhǔn),基于這些接口的產(chǎn)品,安裝麻煩,價(jià)格昂貴,并受計(jì)算機(jī)插槽數(shù)量、地址中斷資源限制,且可擴(kuò)展性差,usb的出現(xiàn),很好地解決了以上問(wèn)題。 usb作為一種新型的串口通信標(biāo)準(zhǔn),具有較高的傳輸速率,可擴(kuò)展性好,采用總線供電,使用靈活。它共有4種傳輸模式:控制傳輸、同步傳輸、中斷傳輸、批量傳輸,以適應(yīng)不同設(shè)備的需要。信息技術(shù)與電子技術(shù)的迅猛發(fā)展,使得計(jì)算機(jī)和外圍設(shè)備也得到飛速發(fā)展和應(yīng)用。過(guò)去人們單純追求計(jì)算機(jī)與外設(shè)之間的傳輸速度,現(xiàn)在糾錯(cuò)能力和操作安裝的簡(jiǎn)易性也成

2、為人們關(guān)注的目標(biāo)。usb通訊技術(shù)的出現(xiàn),使高傳輸速度、強(qiáng)糾錯(cuò)能力、易擴(kuò)展性、方便的即插即用,有機(jī)的結(jié)合在一起。usb設(shè)備需要依據(jù)usb協(xié)議進(jìn)行數(shù)據(jù)的解包與打包,底層硬件設(shè)備與操作系統(tǒng)之間需要以驅(qū)動(dòng)程序?yàn)闃蛄骸r?qū)動(dòng)程序以wdm為模型,以ddk為開(kāi)發(fā)工具,以irp為消息傳播載體,來(lái)實(shí)現(xiàn)與windows系統(tǒng)底層核心機(jī)制相交互的功能。1.2課題的提出盡管rs232是一種十分成熟且應(yīng)用廣泛的通訊方式,但是隨著控制系統(tǒng)的日益復(fù)雜,所要采集的量也會(huì)越來(lái)越多。因此尋求一種高速、安全、方便的通訊形式是十分必要的。usb技術(shù)雖然出現(xiàn)的時(shí)間并不長(zhǎng),但是由于它的種種優(yōu)點(diǎn),被越來(lái)越多的廠商和用戶所接受,出現(xiàn)了usb打印

3、機(jī)、攝像頭等產(chǎn)品。盡管目前usb接口的應(yīng)用主要集中在電腦的周邊外設(shè),但是usb產(chǎn)品進(jìn)入工控領(lǐng)域?qū)⑹潜厝坏内厔?shì)。采用cypress公司的cy7c68013芯片和89c51單片機(jī)設(shè)計(jì)的基于usb總線的數(shù)據(jù)采集系統(tǒng),具有可靠性高、數(shù)據(jù)不丟失、抗干擾性強(qiáng)、便于數(shù)據(jù)傳輸和處理等優(yōu)點(diǎn),可在信號(hào)測(cè)試、信號(hào)采集場(chǎng)合廣泛使用。所以本課題的研究是具有一定的現(xiàn)實(shí)意義和經(jīng)濟(jì)意義的。1.3 usb簡(jiǎn)介通用串行總線(universal serial bus,簡(jiǎn)稱usb)是康柏、微軟、ibm, dec等公司為了解傳統(tǒng)總線的不足推出的一種新型串行總線接口規(guī)范, 自1995年在comdex上亮相以來(lái)至今己廣泛地為各pc廠家所支

4、持。現(xiàn)在生產(chǎn)的pc機(jī)幾乎都配備了,usb接口,microsoft的windows98, nt以及macos, linux, freebsd等流行操作系統(tǒng)都增加了對(duì)usb的支持。usb的主要特點(diǎn)如下:1. 速度快。 usb 有全速和低速兩種方式,主模式為全速模式,速率為12mbps,從而使一些要求高速數(shù)據(jù)的外設(shè),如:高速硬盤、攝像頭等,都能統(tǒng)一到同一個(gè)總線框架下。另外為了適應(yīng)一些不需要很大吞吐量但是有很高實(shí)時(shí)性要求的設(shè)備,如鼠標(biāo)、鍵盤、游戲桿等,usb還提供低速方式,速率為1.5mbps。如表1-1所示。新推出的usb2.0協(xié)議提供最高達(dá)480mbps的數(shù)據(jù)傳輸速率可以適應(yīng)各種不同類型的外設(shè)。表

5、1-1 usb使用分類表性能應(yīng)用特性低速 ·交互設(shè)備·10-20kb/s鍵盤、鼠標(biāo)、游戲棒低價(jià)格、熱插拔、易用性中速·電話、音頻、壓縮視頻·500kb/s-10mb/sisbn、pbx、pots低價(jià)格、易用性、動(dòng)態(tài)插拔、限定帶寬和延遲高速·音頻、磁盤·25-500mb/s音頻、磁盤高帶寬、限定延遲、易用性2. 支持熱插拔和即插即用。 所有的usb 設(shè)備可以隨時(shí)的插入和拔離系統(tǒng),usb 主機(jī)能夠動(dòng)態(tài)的識(shí)別設(shè)備的狀態(tài),并自動(dòng)給接入的設(shè)備分配地址和配置參數(shù),添加、刪除設(shè)備完全不用關(guān)閉計(jì)算機(jī),也不必像過(guò)去那樣需要手動(dòng)跳線和撥碼開(kāi)關(guān)來(lái)設(shè)置新的外

6、設(shè)。3. 易于擴(kuò)展。usb使用的是一種易于擴(kuò)展的樹(shù)狀結(jié)構(gòu),通過(guò)使用usb hub擴(kuò)展可連接多達(dá)127個(gè)外設(shè)。標(biāo)準(zhǔn)usb電纜長(zhǎng)度為3米(低速為5米)。通過(guò)hub或中繼器可以使外設(shè)距離達(dá)到30米。4. 使用靈活。 usb共有4種傳輸模式:控制傳輸(control),步傳輸(synchronization)、中斷傳輸(interrupt)、批量傳輸(bulk),適應(yīng)不同設(shè)備的需要。5. 能夠采用總線供電。 普通使用串口、并口的設(shè)備都需要單獨(dú)的供電系統(tǒng),而usb設(shè)備則不需要,因?yàn)閡sb接口提供了內(nèi)置電源e usb電源能向低壓設(shè)備提供最大5v, 500ma 的電源,從而降低了這些設(shè)備的成本并提高了性價(jià)比

7、。6. 實(shí)現(xiàn)成本低。 usb對(duì)系統(tǒng)與pc的集成進(jìn)行了優(yōu)化,適合于開(kāi)發(fā)低成本的外設(shè)。本文設(shè)計(jì)的基于usb總線的數(shù)據(jù)采集系統(tǒng)正是充分地利用了usb 總線的上述優(yōu)點(diǎn),從而有效地解決了傳統(tǒng)數(shù)據(jù)采集系統(tǒng)的缺陷。很方便地就能夠?qū)崿F(xiàn)低成本、高可靠性、實(shí)時(shí)的數(shù)據(jù)采集,適用于對(duì)瞬態(tài)信號(hào)進(jìn)行采集和處理。1.4主要工作本論文所設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)是在單片機(jī)89c51控制下進(jìn)行數(shù)據(jù)采集,并通過(guò)cypress公司的ez-usb fx2單片機(jī) cy7c68013上傳給pc機(jī)進(jìn)行分析、顯示和存盤。該系統(tǒng)用傳統(tǒng)的usb總線取代了rs232串行總線,通過(guò)對(duì)usb協(xié)議和設(shè)備構(gòu)架的充分理解,對(duì)以單片機(jī)89c51和usb接口芯片cy7

8、c68013為主的數(shù)據(jù)采集系統(tǒng)進(jìn)行了硬件設(shè)計(jì)和軟件編程,并在此設(shè)計(jì)的基礎(chǔ)上給出相應(yīng)的原理圖。硬件設(shè)計(jì)主要解決的是cy7c68013與單片機(jī)的接口電路的設(shè)計(jì)。軟件設(shè)計(jì)可分為三部分:一是充分了解d12的主要功能特點(diǎn),為滿足cy7c68013在usb上的最大傳輸速率而編寫(xiě)固件程序,用c51語(yǔ)言編寫(xiě):二是在充分了解wdm驅(qū)動(dòng)程序的基礎(chǔ)上編寫(xiě)usb的設(shè)備驅(qū)動(dòng)程序;三是編寫(xiě)出界面友好、具有強(qiáng)大的數(shù)據(jù)處理和分析能力的應(yīng)用程序。第二章 usb協(xié)議2.1體系概述 usb體系一般分為三部分:usb主機(jī)(usb host), usb集線器(usbhub), usb設(shè)備(usb device). usb是一種層狀的星

9、形拓?fù)?,其根部是主控制器,usb器件直接與根部接口連接實(shí)現(xiàn)其功能。若多個(gè)器件同時(shí)需要連到主控制器上,只需用集線器(hub)來(lái)擴(kuò)展。如下圖所示(圖中的node代表usb設(shè)備): 圖2-1 usb體系圖 圖2-1 usb體系圖 usb主機(jī)可以看作是一個(gè)硬件、固件和軟件的結(jié)合體,是usb通信的中心。它控制和分時(shí)連接各個(gè)器件,是唯一可利用系統(tǒng)資源的部件。主機(jī)功能如下: .檢測(cè)usb設(shè)備的安裝和拆卸; .管理在主機(jī)和usb設(shè)備之間的控制流; .管理在主機(jī)和usb設(shè)備之間的數(shù)據(jù)流; .收集狀態(tài)和動(dòng)作信息; .提供能量給連接的usb設(shè)備。 主機(jī)上usb的系統(tǒng)軟件管理usb設(shè)備和主機(jī)上該設(shè)備軟件之間的相互作用

10、,usb系統(tǒng)軟件與設(shè)備軟件間有五種相互作用方式: .設(shè)備編號(hào)和設(shè)置; .同步數(shù)據(jù)傳輸; .異步數(shù)據(jù)傳輸; .電源管理; .設(shè)備和總線管理信息。只要可能,usb系統(tǒng)軟件就會(huì)使用目前的主機(jī)軟件接口來(lái)管理上述幾種方式。 usb集線器,可讓不同性質(zhì)的設(shè)備連接在usb上,連接點(diǎn)稱作端口。每個(gè)集線器將一個(gè)連接點(diǎn)轉(zhuǎn)化成許多的連接點(diǎn)。并且該體系結(jié)構(gòu)支持多個(gè)集線器的連接。每個(gè)集線器的上游端口向主機(jī)方向進(jìn)行連接。每個(gè)集線器的下游端口允許連接另外的集線器或功能部件,集線器可檢測(cè)每個(gè)下游端口的設(shè)備的安裝或拆卸,并可對(duì)下游端口的設(shè)備分配能源,每個(gè)下游端口都具有獨(dú)立的能力,不論高速或低速設(shè)備均可連接。集線器可將低速和高速

11、端口的信號(hào)分開(kāi)。 一個(gè)集線器包括兩部分:集線控制器(controller)和集線放大器(repeater).集線放大器是一種在上游端口和下游端口之間的協(xié)議控制開(kāi)關(guān),而且硬件上支持復(fù)位、掛起、喚醒的信號(hào)。集線控制器提供了接口寄存器用于與主機(jī)之間的通信,而且集線控制器允許主機(jī)對(duì)其特定狀態(tài)和控制命令進(jìn)行設(shè)置,并監(jiān)視和控制其端口。 usb設(shè)備是帶有usb接口并可以完成特定功能的外設(shè),它通過(guò)usb總線進(jìn)行發(fā)送接收數(shù)據(jù)和控制信息,用一根電纜連接在集線器的某個(gè)端口上。一個(gè)物理單元中可以有多個(gè)功能部件和一個(gè)內(nèi)置集線器,并利用一根usb電纜,這通常被稱為復(fù)合設(shè)備,即一個(gè)集線器連向主機(jī),并有一個(gè)或多個(gè)不可拆卸的u

12、sb設(shè)備連在其上。 每個(gè)us b設(shè)備都包含設(shè)置信息,來(lái)描述該設(shè)備的性能和所需資源。主機(jī)要在功能部件使用前對(duì)其進(jìn)行設(shè)置。設(shè)置信息包括usb帶寬分配,選擇設(shè)備的設(shè)置信息等。目前usb設(shè)備是usb總線中發(fā)展最快的部分,常見(jiàn)usb外設(shè)有:鼠標(biāo)或光筆、鍵盤等。2.2 usb的互連一個(gè)usb系統(tǒng)主要被定義為三個(gè)部分: ·usb的互連; ·usb的設(shè)備; ·usb的主機(jī)。 usb的互連是指usb設(shè)備與主機(jī)之間進(jìn)行連接和通信的操作,主要包括以下幾方面: ·總線的拓?fù)浣Y(jié)構(gòu):usb設(shè)備與主機(jī)之間的各種連接方式; ·內(nèi)部層次關(guān)系:根據(jù)性能疊置,usb的任務(wù)被分配到系

13、統(tǒng)的每一個(gè)層次; ·數(shù)據(jù)流模式:描述了數(shù)據(jù)在系統(tǒng)中通過(guò)usb從產(chǎn)生方到使用方的流動(dòng)方式; ·usb的調(diào)度:usb提供了一個(gè)共享的連接。對(duì)可以使用的連接進(jìn)行了調(diào)度以支持同步數(shù)據(jù)傳輸,并且避免的優(yōu)先級(jí)判別的開(kāi)銷??偩€拓樸結(jié)構(gòu)包括四個(gè)重要的組成部分。 ·主機(jī)和設(shè)備:usb系統(tǒng)的基礎(chǔ)組成部分。 ·物理拓樸結(jié)構(gòu):描述usb系統(tǒng)中的各組成部分是如何連接起來(lái)的。 ·邏輯拓樸結(jié)構(gòu):描述usb系統(tǒng)中各種組成部分的地位和作用,以及描述從主機(jī)和設(shè)備的角度觀察到的usb系統(tǒng)。 ·客戶軟件層與應(yīng)用層的關(guān)系:描述從客戶軟件層看到的應(yīng)用層的情況,以及從應(yīng)用層看到的

14、客戶軟件層的情況。usb 系統(tǒng)中的設(shè)備與主機(jī)的連接方式采用的是星形連接,如圖2-1。復(fù)合設(shè)備設(shè)備設(shè)備 設(shè)備設(shè)備設(shè)備設(shè)備主機(jī)hubhub根hub 圖21 usb物理總線的拓?fù)鋱D中的hub是一類特殊的usb設(shè)備,它是一組usb的連接點(diǎn),主機(jī)中有一個(gè)被嵌入的hub叫根hub(root hub)。主機(jī)通過(guò)根hub提供若干個(gè)連接點(diǎn)。為了防止環(huán)狀連接,采用星形連接來(lái)體現(xiàn)層次性,如圖4-5。這種連接的形狀很像一棵樹(shù)。 用于提供具體功能的設(shè)備叫應(yīng)用設(shè)備。許多不同功能的設(shè)備放在一起被看作一個(gè)整體,叫包。例如,鍵盤和軌跡球可以被視作一個(gè)整體,在它的內(nèi)部,提供具體功能的設(shè)備被永久地接到hub上,而這個(gè)hub被接到u

15、sb上。所有這些設(shè)備及這個(gè)hub被看作一個(gè)復(fù)合設(shè)備,而這個(gè)hub又被看作這個(gè)復(fù)合設(shè)備的內(nèi)部hub。在主機(jī)看來(lái),這個(gè)復(fù)合設(shè)備和一個(gè)帶著若干設(shè)備的單獨(dú)hub是一樣的。圖中也標(biāo)出了一個(gè)復(fù)合設(shè)備??偩€邏輯拓樸結(jié)構(gòu)。在物理結(jié)構(gòu)上,設(shè)備通過(guò)hub連到主機(jī)上。但在邏輯上,主機(jī)是直接與各個(gè)邏輯設(shè)備通信的,就好像它們是直接被連到主機(jī)上一樣。這個(gè)邏輯關(guān)系如圖2-2所示。與之對(duì)應(yīng)的物理結(jié)構(gòu)就是圖2-1中的結(jié)構(gòu)。hub也是邏輯設(shè)備,但在圖2-2中,為了簡(jiǎn)化起見(jiàn),未被畫(huà)出,雖然usb系統(tǒng)中的工作都是從邏輯角度來(lái)看待的,但主機(jī)必須對(duì)物理結(jié)構(gòu)有個(gè)了解。例如,在處理hub被移去的情況時(shí),當(dāng)一個(gè)hub被移出,通過(guò)它與主機(jī)相連的

16、設(shè)備也應(yīng)一起被移去,這是由其物理結(jié)構(gòu)決定的。邏輯設(shè)備邏輯設(shè)備邏輯設(shè)備主機(jī)圖2-2 usb邏輯總線的拓?fù)淇蛻糗浖优c應(yīng)用層的關(guān)系 usb系統(tǒng)的物理上、邏輯上的拓樸結(jié)構(gòu)反映了總線的共享性。操縱usb應(yīng)用設(shè)備的客戶軟件只關(guān)心設(shè)備上與它相關(guān)的接口,客戶軟件必須通過(guò)usb軟件編程接口來(lái)操縱應(yīng)用設(shè)備。這與另一些總線如pcl,elsa,pcmua等不同,這些總線是直接訪問(wèn)內(nèi)存或i/o的。在運(yùn)行中,客戶軟件必須獨(dú)立于usb上的其它設(shè)備。這樣,設(shè)備和客戶軟件的設(shè)計(jì)者就可以只關(guān)心該設(shè)備與主機(jī)硬件的相互作用和主機(jī)軟件的相互作用的細(xì)節(jié)問(wèn)題。圖2-3說(shuō)明了在圖2-2的邏輯結(jié)構(gòu)下,一個(gè)設(shè)備設(shè)計(jì)者看到的客戶軟件與相應(yīng)應(yīng)用的

17、關(guān)系的視圖??蛻糗浖?yīng)用客戶軟件應(yīng)用客戶軟件應(yīng)用圖2-3客戶軟件和應(yīng)用間的關(guān)系2.3 usb的主機(jī)2.3.1 usb主機(jī)概述圖2-4展示了usb通信模型之間基本的信息流與互連關(guān)系:客戶usb系統(tǒng)主機(jī)控制器功能部件usb設(shè)備usb總線接口邏輯的信息流實(shí)際的信息流 圖2-4 通信模型層次關(guān)系圖 由圖2-4可見(jiàn),主機(jī)與設(shè)備都被劃分成不同的層次。主機(jī)上垂直的箭頭是實(shí)際的信息流。設(shè)備上對(duì)應(yīng)的接口是基于不同實(shí)現(xiàn)的。在主機(jī)與設(shè)備之間的所有通信最終都是通過(guò)usb的電纜進(jìn)行,然而,在上層的水平層之間存在邏輯的主機(jī)-設(shè)備信息流。主機(jī)上的客戶軟件和設(shè)備功能部件之間的通信是基于實(shí)際的應(yīng)用需求及設(shè)備所能提供的能力??蛻?/p>

18、軟件與功能部件之間的透明通信的要求,決定主機(jī)和設(shè)備下層部件的功能以及它們的界面(interface),圖2-5描述了從主機(jī)角度看到的它與設(shè)備的連接。通道,代表相應(yīng)層之間連接的抽象usb系統(tǒng) 硬件定義 客戶(管理界面) 硬件定義irps配置信息usb驅(qū)動(dòng)器主機(jī)軟件 主機(jī)控制器驅(qū)動(dòng)主機(jī)控制器sie通道組(到某一接口)標(biāo)準(zhǔn)通道(到缺省端口地址)usb電纜 圖2-5 主機(jī)通信圖主機(jī)在整個(gè)usb系統(tǒng)中是唯一的,它包括如下幾個(gè)層次。 ·usb總線接口 ·usb系統(tǒng)(usb system) ·usb客戶(client) 其中,usb總線接口處理電氣及協(xié)議層的互連。從互連的角度看

19、,usb設(shè)備和usb主機(jī)都提供類似的usb總線接口,如串行接口引擎。由于主機(jī)在usb系統(tǒng)中的特殊性,usb主機(jī)上的總線接口還必須具備主機(jī)控制器的功能,主機(jī)控制器具有一個(gè)內(nèi)集成的集線器(根集線器)提供與usb電纜的連接。usb系統(tǒng)使用主機(jī)控制器來(lái)管理主機(jī)與usb設(shè)備的數(shù)據(jù)傳輸。usb系統(tǒng)與主機(jī)控制器之間的界面基于主機(jī)控制器的硬件特性。usb系統(tǒng)層相對(duì)于主機(jī)控制器而言,處理的是以客戶觀點(diǎn)見(jiàn)到的數(shù)據(jù)傳輸及客戶與設(shè)備的交互。這包括附加的usb信息,比如協(xié)議頭。usb系統(tǒng)還必須管理usb的系統(tǒng)資源,以使得客戶的訪問(wèn)成為可能。 usb系統(tǒng)有三個(gè)主要組成部份: ·主機(jī)控制器驅(qū)動(dòng) ·usb

20、驅(qū)動(dòng) ·主機(jī)軟件 主機(jī)控制器驅(qū)動(dòng)的存在,方便地將各種不同的主機(jī)控制器實(shí)現(xiàn)映射到usb系統(tǒng),客戶可以不必知道設(shè)備到底接在哪個(gè)主機(jī)控制器上就能同設(shè)備進(jìn)行通信。usb驅(qū)動(dòng)提供了基本的面向客戶的主機(jī)界面。在hcd與usb之間的接口稱為主機(jī)控制器驅(qū)動(dòng)接口(host controller driver interface hcdi)。這層接口不能被客戶直接訪問(wèn),所以也不是由usb具體來(lái)完成的。一個(gè)典型的hcdi是由支撐各種不同主機(jī)控制器的操作系統(tǒng)來(lái)定義的。 usbd提供i/o請(qǐng)求包(i/o request packets)形式的數(shù)據(jù)傳輸,以某一特定通道來(lái)傳輸數(shù)據(jù)。另外,usbd為它的客戶提供一個(gè)

21、容易被支配及配置的抽象的設(shè)備。作為這種抽象的一部份,usbd擁有標(biāo)準(zhǔn)通道對(duì)設(shè)備進(jìn)行一些標(biāo)準(zhǔn)的控制。這標(biāo)準(zhǔn)通道實(shí)現(xiàn)了usbd與抽象設(shè)備之間的邏輯通信。(見(jiàn)圖2-5) 在有些操作系統(tǒng)中,提供了額外的非usb系統(tǒng)軟件以支持設(shè)備的配置及設(shè)備驅(qū)動(dòng)程序的加載。在這樣的操作系統(tǒng)中,設(shè)備驅(qū)動(dòng)程序應(yīng)使用提供的主機(jī)軟件接口而不是直接訪問(wèn)usbdi??蛻魧用枋龅氖侵苯优cusb設(shè)備進(jìn)行交互所需要的軟件包。當(dāng)所有的設(shè)備都已連上系統(tǒng)時(shí),這些客戶就可以直接通設(shè)備進(jìn)行通信。一個(gè)客戶不能直接訪問(wèn)設(shè)備的硬件。總而言之,主機(jī)可提供如下的功能: ·檢測(cè)usb設(shè)備的連接與斷開(kāi)。 ·管理主機(jī)與設(shè)備之間的標(biāo)準(zhǔn)控制流。

22、·管理主機(jī)與設(shè)備之間的數(shù)據(jù)流。 ·收集狀態(tài)及一些活動(dòng)的統(tǒng)計(jì)數(shù)字。·控制主機(jī)控制器與usb設(shè)備的電氣接口,包括提供有限的能源。2.3.2 usb驅(qū)動(dòng)(usbd) usbd提供了供操作系統(tǒng)組件特別是設(shè)備驅(qū)動(dòng)程序訪問(wèn)設(shè)備的一組接口。這些操作系統(tǒng)組件只能通過(guò)usbd來(lái)訪問(wèn)usb。usbd的具體實(shí)現(xiàn)基于不同的操作系統(tǒng)。一個(gè)usbd可以訪問(wèn)一個(gè)或多個(gè)hcd,而一個(gè)hcd可能與一個(gè)或多個(gè)主機(jī)控制器相連。某些操作系統(tǒng)可能允許對(duì)usbd的初始化進(jìn)行一些設(shè)置。從客戶的觀點(diǎn)來(lái)看,與客戶進(jìn)行通信的usbd管理著所有連接著的usb設(shè)備。1. usbd概況 usbd的客戶直接命令設(shè)備或從通道

23、直接輸入和輸出數(shù)據(jù)流。usbd為客戶提供兩組工具。命令工具和通道工具。 命令工具允許客戶配置和控制usbd操作同時(shí)配置及控制usb設(shè)備。命令工具提供了對(duì)設(shè)備標(biāo)準(zhǔn)通道的所有訪問(wèn)。 通道工具允許usbd客戶管理特定設(shè)備的數(shù)據(jù)和控制數(shù)據(jù)的傳輸。通道工具不允客戶直接訪問(wèn)設(shè)備的標(biāo)準(zhǔn)通道。圖2-6給出了usbd的總體框架。 服務(wù) 通道接口 命令接口信息和流通道配置管理設(shè)備數(shù)據(jù)訪問(wèn)總線設(shè)備管理能量控制主機(jī)控制器驅(qū)動(dòng)主機(jī)控制器驅(qū)動(dòng)主機(jī)控制器主機(jī)控制器圖2-6 usb 驅(qū)動(dòng)結(jié)構(gòu)(1) usbd初始化 具體的usbd初始化工作是與操作系統(tǒng)有關(guān)的。當(dāng)usb系統(tǒng)初始化時(shí),usb的管理信息被創(chuàng)建,其中包括缺省地址設(shè)備及

24、它的標(biāo)準(zhǔn)通道。當(dāng)一個(gè)設(shè)備連上usb時(shí),它響應(yīng)特殊的缺省地址,直到他的唯一地址由主機(jī)給出。為了讓usb系統(tǒng)能與新的設(shè)備進(jìn)行通信,設(shè)備在剛連上總線時(shí),設(shè)備的卻省地址必須是可用的。在設(shè)備的初始化期間,設(shè)備的缺省地址被修改成一個(gè)唯一的地址。(2) usbd通道使用通道是設(shè)備與主機(jī)的邏輯連結(jié)。一個(gè)通道由且僅由一個(gè)客戶所擁有。雖然通道的基本屬性不因通道的擁有者而改變,但在兩類不同客戶所擁有的通道之間還存在一定的差異:·標(biāo)準(zhǔn)通道 他們由usbd擁有和管理。·其他的通道 它們由usbd的客戶擁有和管理。 雖然標(biāo)準(zhǔn)通道經(jīng)常用于完成一些客戶通過(guò)命令接口所傳遞的請(qǐng)求,但是它們不能由客戶直接訪問(wèn)的

25、。(3) usbd服務(wù)功能 usbd提供如下種類的服務(wù): ·通過(guò)命令工具配置設(shè)備 ·通過(guò)命令工具及通道工具提供傳輸服務(wù) ·事件通知 ·狀態(tài)報(bào)告及錯(cuò)誤恢復(fù)2. usbd命令工具功能 usbd命令工具允許客戶訪問(wèn)設(shè)備。通常,這些命令允許客戶以讀寫(xiě)形式訪問(wèn)某個(gè)設(shè)備數(shù)據(jù)及控制部份??蛻粢龅膬H是提供設(shè)備的標(biāo)識(shí)碼和相關(guān)數(shù)據(jù)緩沖區(qū)或空緩沖區(qū)指針。 usbd命令傳輸時(shí)并不需要usb設(shè)備是已被配置好。usbd提供的設(shè)備配置設(shè)施大部分使用是用命令傳輸。下面的是有關(guān)命令工具提供的功能:(1)接口狀態(tài)控制 usbd客戶必須能夠設(shè)置具體的接口。接口狀態(tài)的改變使得所有與該接口相連

26、的通道都進(jìn)入新的狀態(tài)。另外接口的所有通道都能夠被重新設(shè)置或廢棄。(2)通道狀態(tài)控制 usbd通道狀態(tài)由兩部份組成 ·主機(jī)狀態(tài)。 ·反映的端口狀態(tài)。 通道狀態(tài)值總是包含上述兩部份。usbd的客戶管理由usbd報(bào)告通道狀態(tài),且客戶能夠與端口交互以改變它狀態(tài)。(3)獲取描述碼 usbd提供取得標(biāo)準(zhǔn)設(shè)備描述符,設(shè)備配置描述符,字串描述符和設(shè)備類或者廠商定義的描述符的功能。(4)取得當(dāng)前配置參數(shù) usbd提供取得任何設(shè)備當(dāng)前配置參數(shù)的描述符的功能。如果設(shè)備沒(méi)有被配置,則不返回描述符。當(dāng)客戶請(qǐng)求為設(shè)備設(shè)置特定的參數(shù)時(shí)也返回當(dāng)前配置的描述符。返回的配置信息中包括如下一些內(nèi)容: ·

27、;所有存放在設(shè)備上的配置描述符,包括接口的所有其他可替換配置。 ·返回接口的當(dāng)前的配置的描述符。 ·接口當(dāng)前配置中的某一端口(一個(gè)接口可能具有多個(gè)端口)的通道句柄。·接口當(dāng)前配置中的某一端口的最大允許包長(zhǎng)。另外,對(duì)于任一通道,usbdi必須提供返回該通道的當(dāng)前正使用的最大包長(zhǎng)的值的機(jī)制。(5)增加設(shè)備 usbdi必須提供某種機(jī)制以便于當(dāng)增加新的設(shè)備的時(shí)候,集成器驅(qū)動(dòng)器能通知usbd并能取得該新usb設(shè)備的usbd標(biāo)識(shí)。usbd的任務(wù)包括分配設(shè)備地址并且為設(shè)備準(zhǔn)備使用的標(biāo)準(zhǔn)通道。(6)設(shè)備斷開(kāi) usbdi必須提供某種機(jī)制以便于集線器控制器通知usbd特定的設(shè)備已斷開(kāi)

28、。(7)管理狀態(tài) usbdi必須提供取得和清除設(shè)備或接口或通道上與設(shè)備有關(guān)的狀態(tài)的功能。(8)向設(shè)備發(fā)送與設(shè)備類有關(guān)的命令 usbd的客戶,特別是特定類的和自適應(yīng)的驅(qū)動(dòng)器使用usbd提供的該種機(jī)制向設(shè)備送出一個(gè)或多個(gè)設(shè)備類命令。(9)向設(shè)備發(fā)送特殊的廠商定義的命令 客戶使用usbdi提供的該種機(jī)制向設(shè)備送出一到多個(gè)廠商定義的命令。(10)更改接口配置 usbdi必須提供更改特定接口配置的機(jī)制。修改了配置后,接口的新通道句柄替換了舊的通道句柄。在上述的請(qǐng)求執(zhí)行的過(guò)程中,接口必須是空閑的。(11)創(chuàng)建設(shè)備配置 配置軟件向usbd提出進(jìn)行設(shè)備配置的請(qǐng)求時(shí)提供一個(gè)包含配置信息的數(shù)據(jù)緩沖區(qū)。usbd根據(jù)

29、提供的配置信息為設(shè)備端口請(qǐng)求資源。如果所有的資源請(qǐng)求都得到滿足,usbd設(shè)置設(shè)備配置參數(shù),并且返回當(dāng)前設(shè)備所有活躍態(tài)接口句柄和與該接口中的某一端口相連的通道句柄。接口的設(shè)置可使用缺省參數(shù)。(12)設(shè)置描述符 對(duì)于支持該項(xiàng)行為的設(shè)備,usbdi允許升級(jí)設(shè)備上的描述符或者增加新的描述符。3. usbd通道設(shè)施usbd的通道設(shè)施使客戶與設(shè)備之間高速的低附加信息的數(shù)據(jù)傳輸成為可能。數(shù)據(jù)傳輸?shù)母咝阅苁峭ㄟ^(guò)將usbd的一部份通道管理任務(wù)轉(zhuǎn)交給客戶來(lái)實(shí)現(xiàn)的。所以通道設(shè)施比usbd命令設(shè)施所提供的數(shù)據(jù)傳輸服務(wù)更直接。通道設(shè)施不允許訪問(wèn)設(shè)備的標(biāo)準(zhǔn)通道。 只有在usb及設(shè)備的配置都順利完成后,客戶才有可能進(jìn)行us

30、bd的通道傳輸。當(dāng)設(shè)備被配置的時(shí)候usbd根據(jù)配置參數(shù)為設(shè)備的所有通道請(qǐng)求資源。當(dāng)特定的接口或通道空閑的時(shí)候,客戶可以更改配置。 客戶為輸出的通道提供一個(gè)滿的數(shù)據(jù)緩沖區(qū),并且在請(qǐng)求完成以后取得傳輸狀態(tài)信息??蛻艨梢愿鶕?jù)返回的狀態(tài)信息判斷傳輸是否順利完成。 客戶為輸入通道提供空的數(shù)據(jù)緩沖區(qū),并且在請(qǐng)求完成以后得到一個(gè)具有數(shù)據(jù)的緩沖區(qū)及傳輸?shù)臓顟B(tài)信息。客戶可根據(jù)該狀態(tài)信息判斷傳輸數(shù)據(jù)的數(shù)量及質(zhì)量。根據(jù)所支持的數(shù)據(jù)傳輸類型,usbd共有四種通道類型:控制傳輸、同步數(shù)據(jù)傳輸、中斷傳輸、塊傳輸。2.4 usb設(shè)備usb設(shè)備可被劃分三層: ·底層是傳送和接收數(shù)據(jù)包的總線接口 ·中間層處

31、理總線接口與不同端點(diǎn)之間的數(shù)據(jù)路由端節(jié)點(diǎn)是數(shù)據(jù)的終結(jié)提供處或使用處,它可被看作數(shù)據(jù)源或數(shù)據(jù)接收端(sink)·最上層的功能由串行總線設(shè)備提供,比如鼠標(biāo),或isdn接口。2.4.1 usb設(shè)備狀態(tài)usb設(shè)備有若干可能的狀態(tài),其中一些對(duì)于usb與主機(jī)(host)來(lái)說(shuō)是外置的,而另外一些對(duì)usb設(shè)備來(lái)說(shuō)是內(nèi)置的,表2-1描述的就是這些外置狀態(tài)之間的轉(zhuǎn)化關(guān)系。表2-1外呈(可見(jiàn))的設(shè)備狀態(tài)連接加電缺省編址配置掛起說(shuō) 明不_ _設(shè)備尚未連接至接口.其他特性無(wú)關(guān)是不_ _設(shè)備已連接至接口,但未加電. 其他特性無(wú)關(guān).是是不_ _設(shè)備已連接至接口,并且已加電.但尚未被復(fù)位.是是是不_設(shè)備已連接至接口

32、,已加電. 并被復(fù)位.但尚未分配地址.設(shè)備在缺省地址處可尋址.是是是是不_ 設(shè)備已連接至接口,已加電. 并被復(fù)位.且分配了唯一地址.尚未被配置.是是是是是不設(shè)備已連接至接口,已加電. 并被復(fù)位.且分配了唯一地址,并被配置.設(shè)備功能可被使用.是是_是設(shè)備在至少3毫秒以內(nèi)探測(cè)不到總線活動(dòng),自動(dòng)進(jìn)如掛起.設(shè)備功能不可用.2.4.2 通用usb設(shè)備操作所有的usb 設(shè)備支持通用的操作集,下面簡(jiǎn)要地描述這些操1. 動(dòng)態(tài)插接與拔開(kāi) usb設(shè)備必須在任意時(shí)刻允許被插接與拔開(kāi)。提供連接點(diǎn)或端口的集線器應(yīng)當(dāng)負(fù)責(zé)匯報(bào)端口的狀態(tài)改變情況。 當(dāng)主機(jī)探測(cè)到連接操作后,會(huì)使得所連的集線器端口生效,設(shè)備也會(huì)因此而復(fù)位,一個(gè)

33、被復(fù)位了的usb設(shè)備有如下特性: ·對(duì)缺省usb地址發(fā)生響應(yīng) ·沒(méi)有被配置 ·初始狀態(tài)不是掛起 當(dāng)設(shè)備從一個(gè)集線器端口移去時(shí),集線器會(huì)使得原來(lái)連接的端口失效,并且通知主機(jī)設(shè)備已移去。2. 地址分配 當(dāng)usb設(shè)備連接以后,由主機(jī)負(fù)責(zé)給此設(shè)備分配一個(gè)唯一的地址,這個(gè)操作是在設(shè)備復(fù)位及端口使能操作以后。3. 配置 usb設(shè)備在正常被使用以前,必須被配置,由主機(jī)負(fù)責(zé)配置設(shè)備。主機(jī)一般會(huì)從usb設(shè)備獲取配置信息后再準(zhǔn)定此設(shè)備有哪些功能。 作為配置操作的一部分,主機(jī)會(huì)設(shè)置設(shè)備的配置值,并且,如果必要的話會(huì)選擇合適的接口的備選設(shè)置。 只須一個(gè)簡(jiǎn)單配置,一個(gè)設(shè)備可能支持多重接口。

34、一個(gè)接口是一組端結(jié)點(diǎn)集合,它們代表了設(shè)備向主機(jī)提供的單一的功能或特性,用來(lái)與這組相關(guān)端結(jié)點(diǎn)通信的協(xié)議以及接口內(nèi)各端結(jié)點(diǎn)的目的可以作為一個(gè)設(shè)備類的一部分或者由廠商制定具體定義。 另外,一個(gè)配置中的結(jié)口可能有備選設(shè)置。這些備選設(shè)置會(huì)重定義相關(guān)端結(jié)點(diǎn)的數(shù)目或特性。如果是這樣的話,設(shè)備必須支持getinterface(接口請(qǐng)求)與set interface(接口設(shè)置)請(qǐng)求,來(lái)匯報(bào)及選擇指定的接口的設(shè)備選設(shè)置。4. 數(shù)據(jù)傳送 數(shù)據(jù)可能以四種方式在usb設(shè)備端結(jié)點(diǎn)與主機(jī)之間傳送。四種傳送方式參見(jiàn)第五章。在不同設(shè)置下,一個(gè)終端結(jié)點(diǎn)可能被用于不同的傳輸方式,但一旦設(shè)置選定,傳送方式就選定了。5. 電源管理 u

35、sb總線電源是一個(gè)有限的資源,在設(shè)備標(biāo)識(shí)階段,主機(jī)估測(cè)電源的需求。如果電源的需求量超過(guò)usb總線所能提供的電量,主機(jī)軟件則不能選擇那個(gè)配置。 usb設(shè)備應(yīng)將電源需求量限制在一個(gè)單元以下,直到被配置。中止(掛起)的設(shè)備,不管是否已經(jīng)配置過(guò)了,應(yīng)將總線耗電降到第7章定義的標(biāo)準(zhǔn)以下。視接到設(shè)備的端口電源負(fù)載能力而定,usb設(shè)備在配置了以后可從vbus汲取達(dá)5個(gè)單元的電量。遠(yuǎn)程喚醒能力參許一個(gè)被掛起的usb設(shè)備發(fā)達(dá)信號(hào)給處于掛起狀態(tài)的主機(jī)。這個(gè)信號(hào)會(huì)使得主機(jī)醒來(lái),處理觸發(fā)事件。usb設(shè)備通過(guò)配置描述來(lái)向主機(jī)匯報(bào)其遠(yuǎn)程喚醒的能力。usb設(shè)備的遠(yuǎn)程喚醒能力應(yīng)能被禁止的。6. 請(qǐng)求處理 除setaddres

36、s( )請(qǐng)求以外,在安裝完成返回ack信號(hào)以后,設(shè)備就開(kāi)始處理請(qǐng)求。在某一狀態(tài)成功結(jié)束以前,設(shè)備應(yīng)當(dāng)“完成”對(duì)請(qǐng)求的處理。許多請(qǐng)求費(fèi)時(shí)較多,像這樣的請(qǐng)求,該設(shè)備類應(yīng)定義一個(gè)方法而不是等待交換狀態(tài)信息階段的結(jié)束來(lái)表示該操作已經(jīng)完成。像這樣的操作有:集線器端口的復(fù)位至少需10ms來(lái)完成。當(dāng)端口復(fù)位產(chǎn)生時(shí),setportfeature(port-reset)請(qǐng)求就結(jié)束了。當(dāng)端口狀態(tài)改變并表明此端口已經(jīng)生效時(shí),一個(gè)信號(hào)就會(huì)產(chǎn)生表明復(fù)位信號(hào)已經(jīng)結(jié)束。這種技術(shù)可以防止當(dāng)主機(jī)知道某一個(gè)請(qǐng)求費(fèi)時(shí)較長(zhǎng)的情況一直探測(cè)此請(qǐng)求是否已完成。7. 請(qǐng)求錯(cuò)誤如果一設(shè)備收到一個(gè)請(qǐng)求,它或是在設(shè)備中無(wú)定義,或是不適用于當(dāng)前設(shè)置

37、,或是數(shù)值不對(duì),這時(shí)就會(huì)產(chǎn)生一個(gè)請(qǐng)求錯(cuò)誤。設(shè)備在下一個(gè)數(shù)據(jù)傳輸階段或狀態(tài)交換階段返回一個(gè)表明錯(cuò)誤的stall pid信號(hào),一般在下一個(gè)數(shù)據(jù)傳輸返回更好,這樣可減少不必要的總線活動(dòng)。2.4.3 usb設(shè)備請(qǐng)求所有的usb設(shè)備在“設(shè)備的缺省控制通道”處對(duì)主機(jī)的請(qǐng)求發(fā)出響應(yīng)。這些請(qǐng)求是通過(guò)使用控制傳輸來(lái)達(dá)到的,請(qǐng)求及請(qǐng)求的參數(shù)通過(guò)setup包發(fā)向設(shè)備,由主機(jī)負(fù)責(zé)設(shè)置setup包內(nèi)的每個(gè)域的值。每個(gè)setup包有8個(gè)字節(jié)。見(jiàn)表2-2。表2-2 setup數(shù)據(jù)包的格式 偏移量 域 大小 值 描述0bmrequesttype1位圖請(qǐng)求特征:d7: 傳輸方向0=主機(jī)至設(shè)備1=設(shè)備至主機(jī)d6.5: 種類0=標(biāo)

38、準(zhǔn)1=類2=廠商3=保留d4.0: 接受者0=設(shè)備1=接口2=端點(diǎn)3=其他4.31=保留1brequest1值具體請(qǐng)求2wvalue2值字長(zhǎng)域,根據(jù)不同的請(qǐng)求含義改變.4windex2索引或偏移字長(zhǎng)域,根據(jù)不同的請(qǐng)求含義改變.典型用于傳送索引或偏移.6wlength2如有數(shù)據(jù)傳送階段,此為數(shù)據(jù)字節(jié)數(shù).2.5 usb的物理層usb的物理接口包括電氣特性和機(jī)械特性。usb通過(guò)一個(gè)四線電纜來(lái)傳輸信號(hào)與電源如圖2-7所示。圖2-7 usb電纜定義其中d+和d-是一對(duì)差模的信號(hào)線而vbus和gnd則提供了5v的電源它可以給一些設(shè)備(包括hub)供電當(dāng)然要有一定的條件限制。usb1.1提供了兩種數(shù)據(jù)傳輸率

39、一種是12mb的高速模式,另一種是1.5mb的低速模式,這兩種模式可以同時(shí)存在于一個(gè)usb系統(tǒng)中。而引入低速模式主要是為了降低要求不高的設(shè)備的成本,比如鼠標(biāo)、鍵盤等等。usb信號(hào)線在高速模式下必須使用帶有屏蔽的雙絞線,而且最長(zhǎng)不能超過(guò)5m。而在低速模式時(shí)中可以使用不帶屏蔽或不是雙絞的線,但最長(zhǎng)不能超過(guò)30m。這主要是由于信號(hào)衰減的限制,為了提供信號(hào)電壓保證以及與終端負(fù)載相匹配,在電纜的每一端都使用了不平衡的終端負(fù)載,這種終端負(fù)載也保證了能夠檢測(cè)外設(shè)與端口的連接或分離,并且可以區(qū)分高速與低速設(shè)備。所有的設(shè)備都有上行的接口,上行和下行的接頭是不能互換的,這保證了不會(huì)有非法的連接出現(xiàn)。插頭與插座有兩

40、個(gè)系列分別為a和b系列,a用于基本固定的外圍設(shè)備,而系列b用于經(jīng)常拔插的設(shè)備,這兩個(gè)系列是不能互換的。2.6 usb 數(shù)據(jù)流從邏輯上講usb數(shù)據(jù)的傳輸是通過(guò)管道進(jìn)行的。圖2-6描述了usb數(shù)據(jù)傳輸?shù)倪^(guò)程。usb系統(tǒng)軟件通過(guò)缺省管道(與端點(diǎn)0相對(duì)應(yīng))管理設(shè)備,設(shè)備驅(qū)動(dòng)程序通過(guò)其它的管道來(lái)管理設(shè)備的功能接口。實(shí)際的數(shù)據(jù)傳輸過(guò)程是這樣的:設(shè)備驅(qū)動(dòng)程序通過(guò)對(duì)usbd接口(usb driver interface)的調(diào)用發(fā)出輸入輸出請(qǐng)求(irp i/o request packet);usb驅(qū)動(dòng)程序接到請(qǐng)求后,調(diào)用hcd接口(host controller driver interface),將irp轉(zhuǎn)

41、化為usb的傳輸,一個(gè)irp可以包含一個(gè)或多個(gè)usb傳輸;然后hcd將usb傳輸分解為總線操作,由主控制器以包的形式發(fā)出。需要注意的是所有的數(shù)據(jù)傳輸都是由主機(jī)開(kāi)始的,任何外設(shè)都無(wú)權(quán)開(kāi)始一個(gè)傳輸。irp是由操作系統(tǒng)定義的,而usb傳輸與總線操作是usb規(guī)范定義的。為了進(jìn)一步說(shuō)明usb傳輸,我們引出幀(frame)的概念。幀:usb總線將1ms定義為一幀,每幀以一個(gè)sof包為起始,在這1ms里,usb進(jìn)行一系列的總線操作。引入幀的概念主要是為了支持與時(shí)間有關(guān)的總線操作。為了滿足不同外設(shè)和用戶的要求,usb 提供了四種傳輸方式:控制傳輸、同步傳輸、中斷傳輸、批傳輸。它們?cè)跀?shù)據(jù)格式、傳輸方向、數(shù)據(jù)包容

42、量限制、總線訪問(wèn)限制等方面有著各自不同的特征。控制傳輸(control transfer)1. 通常用于配置/命令/狀態(tài)等情形;2. 其中的設(shè)置操作(setup)和狀態(tài)操作(status)的數(shù)據(jù)包,具有usb定義的結(jié)構(gòu),因此控制傳輸只能通過(guò)消息管道進(jìn)行;3. 支持雙向傳輸; 主機(jī) 連接 物理設(shè)備接口x應(yīng)用接口的集合 client sw管理一個(gè)接口 到一個(gè)接 口的通道 束 與接口 無(wú) 緩沖 沒(méi)有usb 有關(guān) usb格式 格式 端點(diǎn)0usb邏輯設(shè)備端點(diǎn)的集合usb system sw管理設(shè)備 到0號(hào)端點(diǎn)的 缺省通道usb設(shè)備 usb usb幀格式 接口 的數(shù)據(jù) 事務(wù) 主機(jī)控制器 事務(wù) usb幀格式

43、 每個(gè)端 usb幀 sieusb總線接口 的數(shù)據(jù) 點(diǎn)的數(shù) 結(jié)構(gòu)的 據(jù) 數(shù)據(jù) usbsie 主機(jī) usb線路 機(jī)械的,通道:兩個(gè)水平實(shí)體之間連接 電氣的, 的抽象。 數(shù)據(jù)傳遞機(jī)制 被傳遞的數(shù)據(jù)圖2-8 usb數(shù)據(jù)流4. 對(duì)于高速設(shè)備允許數(shù)據(jù)包最大容量為8,16,32或64字節(jié),對(duì)于低速設(shè)備只有8 字節(jié)一種選擇;5. 端點(diǎn)不能指定總線訪問(wèn)的頻率和占用總線的時(shí)間,usb系統(tǒng)軟件會(huì)做出限制;6. 具有數(shù)據(jù)傳輸保證,在必要時(shí)可以重試。同步傳輸(isochronous transfer)1. 是一種周期的連續(xù)的傳輸方式,通常用于與時(shí)間有密切關(guān)系的信息的傳輸;2. 數(shù)據(jù)沒(méi)有usb 定義的結(jié)構(gòu)數(shù)據(jù)流管道;3.

44、 單向傳輸,如果一個(gè)外設(shè)需要雙向傳輸,則必須使用另一個(gè)端點(diǎn);4. 只能用于高速設(shè)備,數(shù)據(jù)包的最大容量可以從0到1023個(gè)字節(jié);5. 具有帶寬保證,并且保持?jǐn)?shù)據(jù)傳輸?shù)乃俾屎愣?,每個(gè)同步管道每幀傳輸一個(gè)數(shù)據(jù)包;6. 沒(méi)有數(shù)據(jù)重發(fā)機(jī)制要求,具有一定的容錯(cuò)性;7. 與中斷方式一起占用總線的時(shí)間不得超過(guò)一幀的90%。中斷傳輸(interrupt transfer)1. 用于非周期的自然發(fā)生的數(shù)據(jù)量很小的信息的傳輸,如鍵盤、鼠標(biāo)等;2. 數(shù)據(jù)沒(méi)有usb 定義的結(jié)構(gòu)數(shù)據(jù)流管道;3. 只有輸入這一種傳輸方式,即外設(shè)到主機(jī);4. 對(duì)于高速設(shè)備允許數(shù)據(jù)包,最大容量為小于或等于64字節(jié),對(duì)于低速設(shè)備只能小于或等于8

45、字節(jié);5. 具有最大服務(wù)周期保證,即在規(guī)定時(shí)間內(nèi)保證有一次數(shù)據(jù)傳輸;6. 與同步方式一起占用總線的時(shí)間不得超過(guò)一幀的90%;7. 具有數(shù)據(jù)傳輸保證,在必要時(shí)可以重試。批傳輸(bulk transfer)1. 用于大量的對(duì)時(shí)間沒(méi)有要求的數(shù)據(jù)傳輸;2. 數(shù)據(jù)沒(méi)有usb 定義的結(jié)構(gòu)數(shù)據(jù)流管道;3. 單向傳輸,如果一個(gè)外設(shè)需要雙向傳輸,則必須使用另一個(gè)端點(diǎn);4. 只能用于高速設(shè)備,允許數(shù)據(jù)包最大容量為8,16,32或64字節(jié);5. 沒(méi)有帶寬的保證,只要有總線空閑就允許傳輸數(shù)據(jù),優(yōu)先級(jí)小,于控制傳輸;6. 具有數(shù)據(jù)傳輸保證,在必要時(shí)可以重試,以保證數(shù)據(jù)的準(zhǔn)確性。圖2-7 描述了輸入輸出請(qǐng)求irp傳輸與操

46、作之間的關(guān)系。一個(gè)同步傳送是一個(gè)或多個(gè)in/out方向的數(shù)據(jù)事務(wù)。irp數(shù)據(jù)流類型irp事務(wù)事務(wù)事務(wù)所有的傳送都是由一個(gè)或多個(gè)事務(wù)組成。一個(gè)irp又可由一個(gè)或多個(gè)傳送組成??刂苽魉蚷rpsetup事務(wù)數(shù)據(jù)事務(wù)status事務(wù)額外的控制傳送控制傳送首先是一個(gè)out方向的setup事務(wù),然后是多個(gè)in方向或out方向的數(shù)據(jù)事務(wù),最后是一個(gè)與數(shù)據(jù)反向的status事務(wù)。中斷傳送irp事務(wù)事務(wù)一個(gè)中斷傳送是一個(gè)或多個(gè)in/out方向的數(shù)據(jù)事務(wù)。同步傳送irp事務(wù)事務(wù)事務(wù)批傳送事務(wù)事務(wù)事務(wù)一個(gè)批傳送是一個(gè)或多個(gè)in/out方向的數(shù)據(jù)事務(wù)。圖2-7 usb 數(shù)據(jù)傳輸?shù)谌?數(shù)據(jù)采集系統(tǒng)的固件設(shè)計(jì)3.1 固

47、件的開(kāi)發(fā)環(huán)境keil c51是美國(guó)keil software公司出品的51系列兼容單片機(jī)c語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,c語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。keil c51軟件提供豐富的庫(kù)函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到keil c51生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解。在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。keil c51的工具包中,uvision是c51 for windows的集成開(kāi)發(fā)環(huán)境(ide),可以完成編輯、編譯、連接、調(diào)試、仿真等整

48、個(gè)開(kāi)發(fā)流程。開(kāi)發(fā)人員可用ide本身或其它編輯器編輯c或匯編源文件。然后分別由c51及a51編譯器編譯生成目標(biāo)文件(.obj)。目標(biāo)文件可由lib51創(chuàng)建生成庫(kù)文件,也可以與庫(kù)文件一起經(jīng)l51連接定位生成絕對(duì)目標(biāo)文件(.abs)。abs文件由oh51轉(zhuǎn)換成標(biāo)準(zhǔn)的hex文件,以供調(diào)試器dscope51或tscope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫(xiě)入程序存貯器如eprom中。3.2 采用fx2的固件設(shè)計(jì)3.2.1 固件編程的主要工作固件是fireware的對(duì)應(yīng)中文詞,它實(shí)際上是單片機(jī)的程序文件,其編寫(xiě)語(yǔ)言可以采用c語(yǔ)言或是匯編語(yǔ)言.它的操作方式與硬件聯(lián)系緊

49、密,包括usb設(shè)備的連接usb協(xié)議、中斷處理等,它不是單純的軟件,而是軟件和硬件的結(jié)合,開(kāi)發(fā)者需要對(duì)端口、中斷和硬件結(jié)構(gòu)非常熟悉。固件程序一般放入mcu中,當(dāng)把設(shè)備連接到主機(jī)上時(shí),上位機(jī)可以發(fā)現(xiàn)新設(shè)備,然后建立連接。因此,編寫(xiě)固件程序的一個(gè)最主要的目的就時(shí)讓windows可以檢測(cè)和識(shí)別設(shè)備。usb固件程序程序由三部分組成:初始化單片機(jī)和所有的外圍電路;主循環(huán)部分,其任務(wù)是可以中斷的;中斷服務(wù)程序,其任務(wù)是對(duì)時(shí)間敏感的,必須馬上執(zhí)行。根據(jù)usb協(xié)議,任何傳輸都是由主機(jī)開(kāi)始的。單片機(jī)作它的前臺(tái)工作,等待中斷。主機(jī)首先要發(fā)令牌包給usb設(shè)備,fx2接收到令牌包后就給單片機(jī)發(fā)中斷。單片機(jī)進(jìn)入中斷服務(wù)程

50、序,首先讀fx2的中斷寄存器,判斷usb令牌包的類型,然后執(zhí)行相應(yīng)的操作。在usb單片機(jī)程序中,要完成對(duì)各種令牌包的響應(yīng),其中比較難處理的是setup包,主要是端口0的編程。單片機(jī)與fx2的通信主要是靠單片機(jī)給fx2發(fā)命令和數(shù)據(jù)來(lái)實(shí)現(xiàn)的。fx2的命令字分為三種:初始化命令字、數(shù)據(jù)流命令字和通用命令字。fx2數(shù)據(jù)手冊(cè)給出了各種命令的代碼和地址。單片機(jī)先給fx2的命令地址發(fā)命令,根據(jù)不同命令的要求再發(fā)送或讀出不同的數(shù)據(jù)。因此,可以將每種命令做成函數(shù),用函數(shù)實(shí)現(xiàn)各個(gè)命令,以后直接調(diào)用函數(shù)即可。第四章usb數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計(jì)系統(tǒng)的模擬開(kāi)關(guān)、a/d轉(zhuǎn)換器均采用傳統(tǒng)的設(shè)計(jì)方法,在此不多做介紹。本章主要

51、介紹usb接口的設(shè)計(jì),這是本系統(tǒng)設(shè)計(jì)的重點(diǎn)部分。4.1 usb接口方案usb接口設(shè)計(jì)中有三種芯片選擇方案:第一種方案是選用設(shè)計(jì)成標(biāo)準(zhǔn)usb控制器的低層芯片,例如cypress公司的cy7c63xxx系列,這類芯片是完全按照usb協(xié)議設(shè)計(jì)的,另一種方案是采用具備usb通信功能的單片機(jī),例如intel/cypress的8x931, cypress的ez-usb,這些單片機(jī)采用開(kāi)發(fā)者熟悉的結(jié)構(gòu)和指令集,處理能力強(qiáng),構(gòu)成系統(tǒng)的電路簡(jiǎn)單,調(diào)試方便,是目前常用的一種方案。第三種方案是采用連接到一般微控制器的接口芯片,例如philps的pdiusbd i 1 / 12 , national半導(dǎo)體公司的usb

52、n960x等,它可用一般的單片機(jī)開(kāi)發(fā)系統(tǒng)進(jìn)行開(kāi)發(fā)。另外由于采用一般單片機(jī),熟悉單片機(jī)的開(kāi)發(fā)人員可以很快的開(kāi)始一個(gè)項(xiàng)目。根據(jù)本系統(tǒng)的設(shè)計(jì)要求和實(shí)際情況,在設(shè)計(jì)中選擇了第一種方案。4.2usb接口的硬件設(shè)計(jì)4.2.1 ez-usb fx2單片機(jī)cy7c68013的特性介紹cypress semiconductor公司的ezusb fx2是世界上第一款集成usb2.0的微處理器,它集成了usb2.0收發(fā)器、sie(串行接口引擎)、增強(qiáng)的8051微控制器和可編程的外圍接口。fx2這種獨(dú)創(chuàng)性結(jié)構(gòu)可使數(shù)據(jù)傳輸率達(dá)到56mbytes/s,即usb2.0允許的最大帶寬。在fx2中,智能sie可以硬件處理許多u

53、sb1.1和usb2.0協(xié)議,從而減少了開(kāi)發(fā)時(shí)間和確保了usb的兼容性。gpif(general programmable interface)和主/從端點(diǎn)fifo(8位或16位數(shù)據(jù)總線)為ata、utopia、epp、pcmcia和dsp等提供了簡(jiǎn)單和無(wú)縫連接接口。2 ezusb fx2結(jié)構(gòu)    cy7c68013結(jié)構(gòu)圖如圖1所示。它有三種封裝形式:56ssop,100tqfp和128tqfp。cy7c68013集成了以下特性:     usb2.0收發(fā)器、sie(串行接口引擎)和增強(qiáng)性8051微處理器;     軟件運(yùn)行:8051程序從內(nèi)部ram開(kāi)始運(yùn)行,可以借助下列幾種方式進(jìn)行程序裝載:(1)       通過(guò)usb下載;(2)       從eeprom中裝載;(3)       通過(guò)外部存儲(chǔ)器設(shè)備。     四個(gè)可編程bulk/interrupt/isochron

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論