DZ201PLC控制的恒壓供水系統(tǒng)
DZ201PLC控制的恒壓供水系統(tǒng),dz201plc,控制,節(jié)制,供水系統(tǒng)
基于USB總線的高速數(shù)據(jù)采集系統(tǒng)設(shè)計摘要通用串行總線USB(Universal Serial Bus)是一種新型的微機總線接口規(guī)范。隨著客戶對系統(tǒng)數(shù)據(jù)采集速度要求的不斷提高,USB以其使用方便、易于擴展、速度快等優(yōu)點而越來越多的應(yīng)用于數(shù)據(jù)采集系統(tǒng)中。本文介紹了一種基于USB總線的數(shù)據(jù)采集系統(tǒng)的設(shè)計方法,采用PHILIPS公司的USB接口芯片PDIUSBD12與單片機AT89C51進行通信,并和PC機通信而編制出友善的設(shè)備應(yīng)用程序。該系統(tǒng)用傳統(tǒng)的USB總線取代了RS232串行總線,通過對USB協(xié)議和設(shè)備構(gòu)架的充分理解,對以單片機89C51和USB接口芯片PDIUSBD12為主的數(shù)據(jù)采集系統(tǒng)進行了硬件設(shè)計和軟件編程,并在此設(shè)計的基礎(chǔ)上給出相應(yīng)的原理圖。硬件設(shè)計主要解決的是PDIUSBD12和ADC0809與單片機之間的接口電路問題,軟件編程大致分為三部分:一是為滿足D12在USB上的最大傳輸速率而編寫的固件程序;二是在PC機中的Windows 2000工作環(huán)境下編寫USB設(shè)備驅(qū)動程序;三是充分了解D12的主要功能特點,并編寫出應(yīng)用程序。通過該數(shù)據(jù)采集系統(tǒng),我們可以對USB協(xié)議有很深刻的理解,對D12接口芯片有很熟練的應(yīng)用,能更好領(lǐng)悟USB接口的優(yōu)勢。關(guān)鍵詞:USB總線;單片機;數(shù)據(jù)采集;固件;Windows驅(qū)動程序模型;設(shè)備驅(qū)動程序;客戶應(yīng)用程序ABSTRACTUniversal Serial Bus is a new specification for microcomputer bus interface. With the continuing advance of the clients' demand for the speed of a data collection system, USB is more and more widely used in data collection system for its advantages such as convenience, expanding port with ease and high speed etc.this article presents a particular description of the design and development of a data collection system based on USB.single chip programs the fireware to the USB interface chip—PDIUSBD12; communication appears between D12 and up-location computer and man-machine mutual interface comes into being; lots of data from the industry spot are printed, analyzed and disposed on time. On the base of wonderful understanding to USB protocol and device truss, I finish the hardware design and software programme of the data collection system. And draw the principle chart.? The software programme mainly includes: the fireware code in need of D12's maximum transmission rate; USB device driver and client application under the circustance of Win2000 operation system in computer. After this data collection system,we can understand the USB protocol profoundly and apply the interface chip-PDIUSBDI2 proficiently. In all, the advantages of this interface technique may helps to your design arrangement.KEY WORDS:USB bus;data collection;MCU;fireware;WDM;device drive program;client application目錄文摘 ...............................................................1英文文摘 ...........................................................11 緒論 ..............................................................1.1 課題背景 ......................................................1.2 課題的提出 ....................................................1.3 USB簡介 .......................................................1.4 主要工作 ......................................................2 USB1.1協(xié)議 ..........................................................2.1 USB的互連 .....................................................2.2 USB的主機 .....................................................2.2.1 USB主機概述 ...............................................2.2.2 USB驅(qū)動(USBD) .............................................2.3USB設(shè)備 ........................................................2.3.1 USB設(shè)備狀態(tài) ...............................................2.3.2 通用USB設(shè)備操作 ...........................................2.3.3 USB設(shè)備請求 ...............................................2.4 USB的物理層 ...................................................2.5 USB數(shù)據(jù)流 .....................................................3 數(shù)據(jù)采集系統(tǒng)的固件設(shè)計 ..............................................3.1 固件的開發(fā)環(huán)境 ................................................3.2 采用PDIUSBD12的固件設(shè)計 .......................................3.2.1 固件要完成的主要工作 ......................................3.2.2 PDIUSBD12芯片特點 .........................................3.2.3 PDIUSBD12固件程序的編寫 ...................................3.3 固件的文件結(jié)構(gòu) ................................................3.4 固件的編程實現(xiàn) ................................................3.4.1 底層函數(shù) ..................................................3.4.2 命令接口 ..................................................3.4.3 中斷服務(wù)程序ISR.C .........................................3.4.4 主循環(huán)MAINLOOP.C ..........................................4 USB設(shè)備驅(qū)動程序設(shè)計 .................................................4.1 Windows2000驅(qū)動程序 ...........................................4.2 WDM驅(qū)動程序結(jié)構(gòu)模型 ...........................................4.2.1 USB設(shè)備驅(qū)動程序?qū)哟谓Y(jié)構(gòu) ...................................4.2.2設(shè)備對象 ...................................................4.2.3標準總線驅(qū)動程序和類驅(qū)動程序 ...............................4.2.4 WDM驅(qū)動程序的結(jié)構(gòu) .........................................4.3 USB驅(qū)動的開發(fā)環(huán)境 .............................................4.3.1 驅(qū)動的開發(fā)工具 ............................................4.3.2 驅(qū)動開發(fā)環(huán)境的安裝與設(shè)置 ..................................4.4 驅(qū)動程序的實現(xiàn) ................................................4.4.1 驅(qū)動入口 ..................................................4.4.2數(shù)據(jù)傳輸控制 ...............................................5 USB設(shè)備應(yīng)用程序設(shè)計 .................................................5.1 Win32 API簡介 .................................................5.2動態(tài)鏈接庫 .....................................................5.3 MFC的應(yīng)用程序開發(fā) .............................................5.4設(shè)備應(yīng)用程序與WDM的通信 ........................................5.4.1 Win32應(yīng)用程序?qū)DM的通信 ..................................5.4.2 WDM對Win32應(yīng)用程序的通信 ..................................5.5 應(yīng)用程序的實現(xiàn) ................................................6 數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計 ..............................................6.1 硬件系統(tǒng)的結(jié)構(gòu) ................................................6.2 接口芯片選擇 ..................................................6.3 接口硬件設(shè)計 .................................................6.3.1 A/D與單片機接口電路 .......................................6.3.2 PDIUSBDI2與單片機接口電路 .................................1 緒論1.1 課題背景隨著數(shù)字化的廣泛應(yīng)用,數(shù)據(jù)采集也越來越重要,傳統(tǒng)的外設(shè)與主機的通信口一般采用ISA、PCI、C PCI、1394等標準,基于這些接口的產(chǎn)品,安裝麻煩,價格昂貴,并受計算機插槽數(shù)量、地址中斷資源限制,且可擴展性差,USB的出現(xiàn),很好地解決了以上問題。USB作為一種新型的串口通信標準,具有較高的傳輸速率,可擴展性好,采用總線供電,使用靈活。它共有4種傳輸模式:控制傳輸、同步傳輸、中斷傳輸、批量傳輸,以適應(yīng)不同設(shè)備的需要。信息技術(shù)與電子技術(shù)的迅猛發(fā)展,使得計算機和外圍設(shè)備也得到飛速發(fā)展和應(yīng)用。過去人們單純追求計算機與外設(shè)之間的傳輸速度,現(xiàn)在糾錯能力和操作安裝的簡易性也成為人們關(guān)注的目標。USB通訊技術(shù)的出現(xiàn),使高傳輸速度、強糾錯能力、易擴展性、方便的即插即用,有機的結(jié)合在一起。USB設(shè)備需要依據(jù)USB協(xié)議進行數(shù)據(jù)的解包與打包,底層硬件設(shè)備與操作系統(tǒng)之間需要以驅(qū)動程序為橋梁。驅(qū)動程序以WDM為模型,以DDK為開發(fā)工具,以IRP為消息傳播載體,來實現(xiàn)與Windows系統(tǒng)底層核心機制相交互的功能。1.2課題的提出盡管RS232是一種十分成熟且應(yīng)用廣泛的通訊方式,但是隨著控制系統(tǒng)的日益復(fù)雜,所要采集的量也會越來越多。因此尋求一種高速、安全、方便的通訊形式是十分必要的。USB技術(shù)雖然出現(xiàn)的時間并不長,但是由于它的種種優(yōu)點,被越來越多的廠商和用戶所接受,出現(xiàn)了USB打印機、攝像頭等產(chǎn)品。盡管目前USB接口的應(yīng)用主要集中在電腦的周邊外設(shè),但是USB產(chǎn)品進入工控領(lǐng)域?qū)⑹潜厝坏内厔?。采用PDIUSBD12芯片和89C51單片機設(shè)計的基于USB總線的數(shù)據(jù)采集系統(tǒng),具有可靠性高、數(shù)據(jù)不丟失、抗干擾性強、便于數(shù)據(jù)傳輸和處理等優(yōu)點,可在信號測試、信號采集場合廣泛使用。所以本課題的研究是具有一定的現(xiàn)實意義和經(jīng)濟意義的。1.3 USB簡介通用串行總線(Universal Serial Bus,簡稱USB)是康柏、微軟、IBM, DEC等公司為了解傳統(tǒng)總線的不足推出的一種新型串行總線接口規(guī)范, 自1995年在Comdex上亮相以來至今己廣泛地為各PC廠家所支持?,F(xiàn)在生產(chǎn)的PC機幾乎都配備了,USB接口,Microsoft的windows98, NT以及MacOS, Linux, FreeBSD等流行操作系統(tǒng)都增加了對USB的支持。USB的主要特點如下:1. 速度快。 USB 有全速和低速兩種方式,主模式為全速模式,速率為12Mbps,從而使一些要求高速數(shù)據(jù)的外設(shè),如:高速硬盤、攝像頭等,都能統(tǒng)一到同一個總線框架下。另外為了適應(yīng)一些不需要很大吞吐量但是有很高實時性要求的設(shè)備,如鼠標、鍵盤、游戲桿等,USB還提供低速方式,速率為1.5Mbps。如表1-1所示。新推出的USB2.0協(xié)議提供最高達480Mbps的數(shù)據(jù)傳輸速率可以適應(yīng)各種不同類型的外設(shè)。表1-1 USB使用分類表性能 應(yīng)用 特性低速 ·交互設(shè)備·10-20kb/s鍵盤、鼠標、游戲棒 低價格、熱插拔、易用性中速·電話、音頻、壓縮視頻·500kb/s-10Mb/sISBN、PBX、POTS 低價格、易用性、動態(tài)插拔、限定帶寬和延遲高速·音頻、磁盤·25-500Mb/s音頻、磁盤 高帶寬、限定延遲、易用性2. 支持熱插拔和即插即用。 所有的USB 設(shè)備可以隨時的插入和拔離系統(tǒng),USB 主機能夠動態(tài)的識別設(shè)備的狀態(tài),并自動給接入的設(shè)備分配地址和配置參數(shù),添加、刪除設(shè)備完全不用關(guān)閉計算機,也不必像過去那樣需要手動跳線和撥碼開關(guān)來設(shè)置新的外設(shè)。3. 易于擴展。USB使用的是一種易于擴展的樹狀結(jié)構(gòu),通過使用USB Hub擴展可連接多達127個外設(shè)。標準USB電纜長度為3米(低速為5米)。通過Hub或中繼器可以使外設(shè)距離達到30米。4. 使用靈活。 USB共有4種傳輸模式:控制傳輸(control),步傳輸(synchronization)、中斷傳輸(interrupt)、批量傳輸(bulk),適應(yīng)不同設(shè)備的需要。5. 能夠采用總線供電。 普通使用串口、并口的設(shè)備都需要單獨的供電系統(tǒng),而USB設(shè)備則不需要,因為USB接口提供了內(nèi)置電源e USB電源能向低壓設(shè)備提供最大5V, 500mA 的電源,從而降低了這些設(shè)備的成本并提高了性價比。6. 實現(xiàn)成本低。 USB對系統(tǒng)與PC的集成進行了優(yōu)化,適合于開發(fā)低成本的外設(shè)。本文設(shè)計的基于USB總線的數(shù)據(jù)采集系統(tǒng)正是充分地利用了USB 總線的上述優(yōu)點,從而有效地解決了傳統(tǒng)數(shù)據(jù)采集系統(tǒng)的缺陷。很方便地就能夠?qū)崿F(xiàn)低成本、高可靠性、實時的數(shù)據(jù)采集,適用于對瞬態(tài)信號進行采集和處理。1.4主要工作本論文所設(shè)計的數(shù)據(jù)采集系統(tǒng)是在單片機89051控制下進行數(shù)據(jù)采集,并通過PHILIPS公司的USB接口芯片PDIUSBDI2上傳給PC機進行分析、顯示和存盤。該系統(tǒng)用傳統(tǒng)的USB總線取代了RS232串行總線,通過對USB協(xié)議和設(shè)備構(gòu)架的充分理解,對以單片機89C51和USB接口芯片D12為主的數(shù)據(jù)采集系統(tǒng)進行了硬件設(shè)計和軟件編程,并在此設(shè)計的基礎(chǔ)上給出相應(yīng)的原理圖。硬件設(shè)計主要解決的是D12與單片機的接口電路的設(shè)計。軟件設(shè)計可分為三部分:一是充分了解D12的主要功能特點,為滿足D12在USB上的最大傳輸速率而編寫固件程序,用C51語言編寫:二是在充分了解WDM驅(qū)動程序的基礎(chǔ)上編寫USB的設(shè)備驅(qū)動程序;三是編寫出界面友好、具有強大的數(shù)據(jù)處理和分析能力的應(yīng)用程序。2 USB1.1協(xié)議2.1 USB的互連一個 USB系統(tǒng)主要被定義為三個部分:·USB的互連;·USB的設(shè)備;·USB的主機。USB的互連是指 USB設(shè)備與主機之間進行連接和通信的操作,主要包括以下幾方面:·總線的拓撲結(jié)構(gòu):USB 設(shè)備與主機之間的各種連接方式;·內(nèi)部層次關(guān)系:根據(jù)性能疊置,USB 的任務(wù)被分配到系統(tǒng)的每一個層次;·數(shù)據(jù)流模式:描述了數(shù)據(jù)在系統(tǒng)中通過 USB從產(chǎn)生方到使用方的流動方式;·USB的調(diào)度:USB 提供了一個共享的連接。對可以使用的連接進行了調(diào)度以支持同步數(shù)據(jù)傳輸,并且避免的優(yōu)先級判別的開銷??偩€拓樸結(jié)構(gòu)包括四個重要的組成部分?!ぶ鳈C和設(shè)備:USB 系統(tǒng)的基礎(chǔ)組成部分?!の锢硗貥憬Y(jié)構(gòu):描述 USB系統(tǒng)中的各組成部分是如何連接起來的?!み壿嬐貥憬Y(jié)構(gòu):描述 USB系統(tǒng)中各種組成部分的地位和作用,以及描述從主機和設(shè)備的角度觀察到的 USB系統(tǒng)?!た蛻糗浖优c應(yīng)用層的關(guān)系:描述從客戶軟件層看到的應(yīng)用層的情況,以及從應(yīng)用層看到的客戶軟件層的情況。USB 系統(tǒng)中的設(shè)備與主機的連接方式采用的是星形連接,如圖 2-1。復(fù)合設(shè)備設(shè)備設(shè)備 設(shè)備 設(shè)備設(shè)備 設(shè)備主機HUBHUB根 HUB圖 2—1 USB物理總線的拓撲圖中的 Hub是一類特殊的 USB設(shè)備,它是一組 USB的連接點,主機中有一個被嵌入的Hub叫根 Hub(root Hub)。主機通過根 Hub提供若干個連接點。為了防止環(huán)狀連接,采用星形連接來體現(xiàn)層次性,如圖 4-5。這種連接的形狀很像一棵樹。用于提供具體功能的設(shè)備叫應(yīng)用設(shè)備。許多不同功能的設(shè)備放在一起被看作一個整體,叫包。例如,鍵盤和軌跡球可以被視作一個整體,在它的內(nèi)部,提供具體功能的設(shè)備被永久地接到Hub上,而這個Hub被接到USB上。所有這些設(shè)備及這個Hub被看作一個復(fù)合設(shè)備,而這個Hub又被看作這個復(fù)合設(shè)備的內(nèi)部Hub。在主機看來,這個復(fù)合設(shè)備和一個帶著若干設(shè)備的單獨Hub是一樣的。圖中也標出了一個復(fù)合設(shè)備??偩€邏輯拓樸結(jié)構(gòu)。在物理結(jié)構(gòu)上,設(shè)備通過Hub連到主機上。但在邏輯上,主機是直接與各個邏輯設(shè)備通信的,就好像它們是直接被連到主機上一樣。這個邏輯關(guān)系如圖2-2所示。與之對應(yīng)的物理結(jié)構(gòu)就是圖2-1中的結(jié)構(gòu)。Hub也是邏輯設(shè)備,但在圖2-2中,為了簡化起見,未被畫出,雖然USB系統(tǒng)中的工作都是從邏輯角度來看待的,但主機必須對物理結(jié)構(gòu)有個了解。例如,在處理Hub被移去的情況時,當一個Hub被移出,通過它與主機相連的設(shè)備也應(yīng)一起被移去,這是由其物理結(jié)構(gòu)決定的。圖2-2 USB邏輯總線的拓撲三.客戶軟件層與應(yīng)用層的關(guān)系USB系統(tǒng)的物理上、邏輯上的拓樸結(jié)構(gòu)反映了總線的共享性。操縱 USB應(yīng)用設(shè)備的客戶軟件只關(guān)心設(shè)備上與它相關(guān)的接口,客戶軟件必須通過 USB軟件編程接口來操縱應(yīng)用設(shè)備。這與另一些總線如 PCL,ELSA,PCMUA 等不同,這些總線是直接訪問內(nèi)存或 I/O的。在運行中,客戶軟件必須獨立于 USB上的其它設(shè)備。這樣,設(shè)備和客戶軟件的設(shè)計者就可以只關(guān)心該設(shè)備與主機硬件的相互作用和主機軟件的相互作用的細節(jié)問題。圖 2-3說明了在圖 2-2的邏輯結(jié)構(gòu)下,一個設(shè)備設(shè)計者看到的客戶軟件與相應(yīng)應(yīng)用的關(guān)系的視圖。邏輯設(shè)備 邏輯設(shè)備邏輯設(shè)備主機客戶軟件應(yīng)用客戶軟件應(yīng)用客戶軟件應(yīng)用圖2-3客戶軟件和應(yīng)用間的關(guān)系2.2 USB的主機2.2.1 USB主機概述圖 2-4展示了 USB通信模型之間基本的信息流與互連關(guān)系:圖 2-4 通信模型層次關(guān)系圖由圖 2-4可見,主機與設(shè)備都被劃分成不同的層次。主機上垂直的箭頭是實際的信息流。設(shè)備上對應(yīng)的接口是基于不同實現(xiàn)的。在主機與設(shè)備之間的所有通信最終都是通過USB的電纜進行,然而,在上層的水平層之間存在邏輯的主機-設(shè)備信息流。主機上的客戶軟件和設(shè)備功能部件之間的通信是基于實際的應(yīng)用需求及設(shè)備所能提供的能力??蛻糗浖c功能部件之間的透明通信的要求,決定主機和設(shè)備下層部件的功能以及它們的界面(interface),圖 2-5描述了從主機角度看到的它與設(shè)備的連接。圖 2-5 主機通信圖客戶USB 系統(tǒng)主機控制器功能部件USB 設(shè)備USB總線接口邏輯的信息流 實際的信息流 通道,代表相應(yīng)層之間連接的抽象USB 系統(tǒng) 硬件定義客戶(管理界面)硬件定義IRPS 配置信息USB 驅(qū)動器 主機軟件主機控制器驅(qū)動主機控制器 SIE通道組(到某一接口)標準通道(到缺省端口地址)USB電纜主機在整個 USB系統(tǒng)中是唯一的,它包括如下幾個層次?!SB總線接口·USB系統(tǒng)(USB System)·USB客戶(Client)其中,USB 總線接口處理電氣及協(xié)議層的互連。從互連的角度看,USB 設(shè)備和 USB主機都提供類似的 USB總線接口,如串行接口引擎。由于主機在 USB系統(tǒng)中的特殊性,USB主機上的總線接口還必須具備主機控制器的功能,主機控制器具有一個內(nèi)集成的集線器(根集線器)提供與 USB電纜的連接。USB系統(tǒng)使用主機控制器來管理主機與 USB設(shè)備的數(shù)據(jù)傳輸。USB 系統(tǒng)與主機控制器之間的界面基于主機控制器的硬件特性。USB 系統(tǒng)層相對于主機控制器而言,處理的是以客戶觀點見到的數(shù)據(jù)傳輸及客戶與設(shè)備的交互。這包括附加的 USB信息,比如協(xié)議頭。USB系統(tǒng)還必須管理 USB的系統(tǒng)資源,以使得客戶的訪問成為可能。USB系統(tǒng)有三個主要組成部份:·主機控制器驅(qū)動·USB驅(qū)動·主機軟件主機控制器驅(qū)動的存在,方便地將各種不同的主機控制器實現(xiàn)映射到 USB系統(tǒng),客戶可以不必知道設(shè)備到底接在哪個主機控制器上就能同設(shè)備進行通信。USB 驅(qū)動提供了基本的面向客戶的主機界面。在 HCD與 USB之間的接口稱為主機控制器驅(qū)動接口(Host Controller Driver Interface HCDI)。這層接口不能被客戶直接訪問,所以也不是由USB具體來完成的。一個典型的 HCDI是由支撐各種不同主機控制器的操作系統(tǒng)來定義的。USBD提供 I/O請求包(I/O Request Packets)形式的數(shù)據(jù)傳輸,以某一特定通道來傳輸數(shù)據(jù)。另外,USBD 為它的客戶提供一個容易被支配及配置的抽象的設(shè)備。作為這種抽象的一部份,USBD 擁有標準通道對設(shè)備進行一些標準的控制。這標準通道實現(xiàn)了 USBD與抽象設(shè)備之間的邏輯通信。(見圖 2-5)在有些操作系統(tǒng)中,提供了額外的非 USB系統(tǒng)軟件以支持設(shè)備的配置及設(shè)備驅(qū)動程序的加載。在這樣的操作系統(tǒng)中,設(shè)備驅(qū)動程序應(yīng)使用提供的主機軟件接口而不是直接訪問USBDI。客戶層描述的是直接與 USB設(shè)備進行交互所需要的軟件包。當所有的設(shè)備都已連上系統(tǒng)時,這些客戶就可以直接通設(shè)備進行通信。一個客戶不能直接訪問設(shè)備的硬件??偠灾?,主機可提供如下的功能:·檢測 USB設(shè)備的連接與斷開?!す芾碇鳈C與設(shè)備之間的標準控制流?!す芾碇鳈C與設(shè)備之間的數(shù)據(jù)流。·收集狀態(tài)及一些活動的統(tǒng)計數(shù)字?!た刂浦鳈C控制器與USB設(shè)備的電氣接口,包括提供有限的能源。2.2.2 USB驅(qū)動(USBD)USBD提供了供操作系統(tǒng)組件特別是設(shè)備驅(qū)動程序訪問設(shè)備的一組接口。這些操作系統(tǒng)組件只能通過 USBD來訪問 USB。USBD 的具體實現(xiàn)基于不同的操作系統(tǒng)。一個 USBD可以訪問一個或多個 HCD,而一個 HCD可能與一個或多個主機控制器相連。某些操作系統(tǒng)可能允許對 USBD的初始化進行一些設(shè)置。從客戶的觀點來看,與客戶進行通信的 USBD管理著所有連接著的 USB設(shè)備。1. USBD概況USBD的客戶直接命令設(shè)備或從通道直接輸入和輸出數(shù)據(jù)流。USBD 為客戶提供兩組工具。命令工具和通道工具。命令工具允許客戶配置和控制 USBD操作同時配置及控制 USB設(shè)備。命令工具提供了對設(shè)備標準通道的所有訪問。通道工具允許 USBD客戶管理特定設(shè)備的數(shù)據(jù)和控制數(shù)據(jù)的傳輸。通道工具不允客戶直接訪問設(shè)備的標準通道。圖 2-6給出了 USBD的總體框架。圖 2-6 USB 驅(qū)動結(jié)構(gòu)(1) USBD初始化具體的 USBD初始化工作是與操作系統(tǒng)有關(guān)的。當 USB系統(tǒng)初始化時,USB 的管理信息被創(chuàng)建,其中包括缺省地址設(shè)備及它的標準通道。當一個設(shè)備連上 USB時,它響應(yīng)特殊的缺省地址,直到他的唯一地址由主機給出。為了讓 USB系統(tǒng)能與新的設(shè)備進行通信,設(shè)備在剛連上總線時,設(shè)備的卻省地址必須是可用服務(wù)通道接口命令接口信息和流通道 配置管理 設(shè)備數(shù)據(jù)訪問 總線設(shè)備管理 能量控制主機控制器驅(qū)動主機控制器驅(qū)動主機控制器 主機控制器的。在設(shè)備的初始化期間,設(shè)備的缺省地址被修改成一個唯一的地址。(2) USBD通道使用通道是設(shè)備與主機的邏輯連結(jié)。一個通道由且僅由一個客戶所擁有。雖然通道的基本屬性不因通道的擁有者而改變,但在兩類不同客戶所擁有的通道之間還存在一定的差異:·標準通道 他們由 USBD擁有和管理?!て渌耐ǖ? 它們由 USBD的客戶擁有和管理。雖然標準通道經(jīng)常用于完成一些客戶通過命令接口所傳遞的請求,但是它們不能由客戶直接訪問的。(3) USBD服務(wù)功能USBD提供如下種類的服務(wù):·通過命令工具配置設(shè)備·通過命令工具及通道工具提供傳輸服務(wù)·事件通知·狀態(tài)報告及錯誤恢復(fù)2. USBD命令工具功能USBD命令工具允許客戶訪問設(shè)備。通常,這些命令允許客戶以讀寫形式訪問某個設(shè)備數(shù)據(jù)及控制部份??蛻粢龅膬H是提供設(shè)備的標識碼和相關(guān)數(shù)據(jù)緩沖區(qū)或空緩沖區(qū)指針。USBD命令傳輸時并不需要 USB設(shè)備是已被配置好。USBD 提供的設(shè)備配置設(shè)施大部分使用是用命令傳輸。下面的是有關(guān)命令工具提供的功能:(1)接口狀態(tài)控制USBD客戶必須能夠設(shè)置具體的接口。接口狀態(tài)的改變使得所有與該接口相連的通道都進入新的狀態(tài)。另外接口的所有通道都能夠被重新設(shè)置或廢棄。(2)通道狀態(tài)控制USBD通道狀態(tài)由兩部份組成·主機狀態(tài)?!し从车亩丝跔顟B(tài)。通道狀態(tài)值總是包含上述兩部份。USBD 的客戶管理由 USBD報告通道狀態(tài),且客戶能夠與端口交互以改變它狀態(tài)。(3)獲取描述碼USBD提供取得標準設(shè)備描述符,設(shè)備配置描述符,字串描述符和設(shè)備類或者廠商定義的描述符的功能。(4)取得當前配置參數(shù)USBD提供取得任何設(shè)備當前配置參數(shù)的描述符的功能。如果設(shè)備沒有被配置,則不返回描述符。當客戶請求為設(shè)備設(shè)置特定的參數(shù)時也返回當前配置的描述符。返回的配置信息中包括如下一些內(nèi)容:·所有存放在設(shè)備上的配置描述符,包括接口的所有其他可替換配置。·返回接口的當前的配置的描述符?!そ涌诋斍芭渲弥械哪骋欢丝?一個接口可能具有多個端口)的通道句柄?!そ涌诋斍芭渲弥械哪骋欢丝诘淖畲笤试S包長。另外,對于任一通道,USBDI 必須提供返回該通道的當前正使用的最大包長的值的機制。(5)增加設(shè)備USBDI必須提供某種機制以便于當增加新的設(shè)備的時候,集成器驅(qū)動器能通知 USBD并能取得該新 USB設(shè)備的 USBD標識。USBD 的任務(wù)包括分配設(shè)備地址并且為設(shè)備準備使用的標準通道。(6)設(shè)備斷開USBDI必須提供某種機制以便于集線器控制器通知 USBD特定的設(shè)備已斷開。(7)管理狀態(tài)USBDI必須提供取得和清除設(shè)備或接口或通道上與設(shè)備有關(guān)的狀態(tài)的功能。(8)向設(shè)備發(fā)送與設(shè)備類有關(guān)的命令USBD的客戶,特別是特定類的和自適應(yīng)的驅(qū)動器使用 USBD提供的該種機制向設(shè)備送出一個或多個設(shè)備類命令。(9)向設(shè)備發(fā)送特殊的廠商定義的命令客戶使用 USBDI提供的該種機制向設(shè)備送出一到多個廠商定義的命令。(10)更改接口配置USBDI必須提供更改特定接口配置的機制。修改了配置后,接口的新通道句柄替換了舊的通道句柄。在上述的請求執(zhí)行的過程中,接口必須是空閑的。(11)創(chuàng)建設(shè)備配置配置軟件向 USBD提出進行設(shè)備配置的請求時提供一個包含配置信息的數(shù)據(jù)緩沖區(qū)。USBD根據(jù)提供的配置信息為設(shè)備端口請求資源。如果所有的資源請求都得到滿足,USBD設(shè)置設(shè)備配置參數(shù),并且返回當前設(shè)備所有活躍態(tài)接口句柄和與該接口中的某一端口相連的通道句柄。接口的設(shè)置可使用缺省參數(shù)。(12)設(shè)置描述符對于支持該項行為的設(shè)備,USBDI允許升級設(shè)備上的描述符或者增加新的描述符。3. USBD通道設(shè)施USBD的通道設(shè)施使客戶與設(shè)備之間高速的低附加信息的數(shù)據(jù)傳輸成為可能。數(shù)據(jù)傳輸?shù)母咝阅苁峭ㄟ^將 USBD的一部份通道管理任務(wù)轉(zhuǎn)交給客戶來實現(xiàn)的。所以通道設(shè)施比USBD命令設(shè)施所提供的數(shù)據(jù)傳輸服務(wù)更直接。通道設(shè)施不允許訪問設(shè)備的標準通道。只有在 USB及設(shè)備的配置都順利完成后,客戶才有可能進行 USBD的通道傳輸。當設(shè)備被配置的時候 USBD根據(jù)配置參數(shù)為設(shè)備的所有通道請求資源。當特定的接口或通道空閑的時候,客戶可以更改配置??蛻魹檩敵龅耐ǖ捞峁┮粋€滿的數(shù)據(jù)緩沖區(qū),并且在請求完成以后取得傳輸狀態(tài)信息。客戶可以根據(jù)返回的狀態(tài)信息判斷傳輸是否順利完成??蛻魹檩斎胪ǖ捞峁┛盏臄?shù)據(jù)緩沖區(qū),并且在請求完成以后得到一個具有數(shù)據(jù)的緩沖區(qū)及傳輸?shù)臓顟B(tài)信息??蛻艨筛鶕?jù)該狀態(tài)信息判斷傳輸數(shù)據(jù)的數(shù)量及質(zhì)量。根據(jù)所支持的數(shù)據(jù)傳輸類型,USBD共有四種通道類型:控制傳輸、同步數(shù)據(jù)傳輸、中斷傳輸、塊傳輸。2.3 USB設(shè)備USB設(shè)備可被劃分三層:·底層是傳送和接收數(shù)據(jù)包的總線接口·中間層處理總線接口與不同端點之間的數(shù)據(jù)路由端節(jié)點是數(shù)據(jù)的終結(jié)提供處或使用處,它可被看作數(shù)據(jù)源或數(shù)據(jù)接收端(Sink)·最上層的功能由串行總線設(shè)備提供,比如鼠標,或 ISDN接口。2.3.1 USB設(shè)備狀態(tài)USB設(shè)備有若干可能的狀態(tài),其中一些對于USB與主機(host)來說是外置的,而另外一些對USB設(shè)備來說是內(nèi)置的,表2-1描述的就是這些外置狀態(tài)之間的轉(zhuǎn)化關(guān)系。表2-1外呈(可見)的設(shè)備狀態(tài)連接加電缺省編址配置掛起說 明不 _ __ __ __ __ 設(shè)備尚未連接至接口.其他特性無關(guān)是 不 _ _ __ __ 設(shè)備已連接至接口,但未加電. 其他特性無關(guān).是 是 不 __ _ __ 設(shè)備已連接至接口,并且已加電.但尚未被復(fù)位.是 是 是 不 __ __ 設(shè)備已連接至接口,已加電. 并被復(fù)位.但尚未分配地址.設(shè)備在缺省地址處可尋址.是 是 是 是 不 _ 設(shè)備已連接至接口,已加電. 并被復(fù)位.且分配了唯一地址.尚未被配置.是 是 是 是 是 不 設(shè)備已連接至接口,已加電. 并被復(fù)位.且分配了唯一地址,并被配置.設(shè)備功能可被使用.是 是 __ __ __ 是 設(shè)備在至少 3 毫秒以內(nèi)探測不到總線活動,自動進如掛起.設(shè)備功能不可用.2.3.2 通用USB設(shè)備操作所有的USB 設(shè)備支持通用的操作集,下面簡要地描述這些操1. 動態(tài)插接與拔開USB設(shè)備必須在任意時刻允許被插接與拔開。提供連接點或端口的集線器應(yīng)當負責匯報端口的狀態(tài)改變情況。當主機探測到連接操作后,會使得所連的集線器端口生效,設(shè)備也會因此而復(fù)位,一個被復(fù)位了的 USB設(shè)備有如下特性:·對缺省 USB地址發(fā)生響應(yīng)·沒有被配置·初始狀態(tài)不是掛起當設(shè)備從一個集線器端口移去時,集線器會使得原來連接的端口失效,并且通知主機設(shè)備已移去。2. 地址分配當 USB設(shè)備連接以后,由主機負責給此設(shè)備分配一個唯一的地址,這個操作是在設(shè)備復(fù)位及端口使能操作以后。3. 配置USB設(shè)備在正常被使用以前,必須被配置,由主機負責配置設(shè)備。主機一般會從 USB設(shè)備獲取配置信息后再準定此設(shè)備有哪些功能。作為配置操作的一部分,主機會設(shè)置設(shè)備的配置值,并且,如果必要的話會選擇合適的接口的備選設(shè)置。只須一個簡單配置,一個設(shè)備可能支持多重接口。一個接口是一組端結(jié)點集合,它們代表了設(shè)備向主機提供的單一的功能或特性,用來與這組相關(guān)端結(jié)點通信的協(xié)議以及接口內(nèi)各端結(jié)點的目的可以作為一個設(shè)備類的一部分或者由廠商制定具體定義。另外,一個配置中的結(jié)口可能有備選設(shè)置。這些備選設(shè)置會重定義相關(guān)端結(jié)點的數(shù)目或特性。如果是這樣的話,設(shè)備必須支持 GetInterface(接口請求)與 Set Interface(接口設(shè)置)請求,來匯報及選擇指定的接口的設(shè)備選設(shè)置。4. 數(shù)據(jù)傳送數(shù)據(jù)可能以四種方式在 USB設(shè)備端結(jié)點與主機之間傳送。四種傳送方式參見第五章。在不同設(shè)置下,一個終端結(jié)點可能被用于不同的傳輸方式,但一旦設(shè)置選定,傳送方式就選定了。5. 電源管理USB總線電源是一個有限的資源,在設(shè)備標識階段,主機估測電源的需求。如果電源的需求量超過 USB總線所能提供的電量,主機軟件則不能選擇那個配置。USB設(shè)備應(yīng)將電源需求量限制在一個單元以下,直到被配置。中止(掛起)的設(shè)備,不管是否已經(jīng)配置過了,應(yīng)將總線耗電降到第 7章定義的標準以下。視接到設(shè)備的端口電源負載能力而定,USB 設(shè)備在配置了以后可從 VBus汲取達 5個單元的電量。遠程喚醒能力參許一個被掛起的 USB設(shè)備發(fā)達信號給處于掛起狀態(tài)的主機。這個信號會使得主機醒來,處理觸發(fā)事件。USB 設(shè)備通過配置描述來向主機匯報其遠程喚醒的能力。USB 設(shè)備的遠程喚醒能力應(yīng)能被禁止的。6. 請求處理除 SetAddress( )請求以外,在安裝完成返回 ACK信號以后,設(shè)備就開始處理請求。在某一狀態(tài)成功結(jié)束以前,設(shè)備應(yīng)當“完成”對請求的處理。許多請求費時較多,像這樣的請求,該設(shè)備類應(yīng)定義一個方法而不是等待交換狀態(tài)信息階段的結(jié)束來表示該操作已經(jīng)完成。像這樣的操作有:集線器端口的復(fù)位至少需 10ms來完成。當端口復(fù)位產(chǎn)生時,SetPortFeature(PORT-RESET)請求就結(jié)束了。當端口狀態(tài)改變并表明此端口已經(jīng)生效時,一個信號就會產(chǎn)生表明復(fù)位信號已經(jīng)結(jié)束。這種技術(shù)可以防止當主機知道某一個請求費時較長的情況一直探測此請求是否已完成。7. 請求錯誤如果一設(shè)備收到一個請求,它或是在設(shè)備中無定義,或是不適用于當前設(shè)置,或是數(shù)值不對,這時就會產(chǎn)生一個請求錯誤。設(shè)備在下一個數(shù)據(jù)傳輸階段或狀態(tài)交換階段返回一個表明錯誤的STALL PID信號,一般在下一個數(shù)據(jù)傳輸返回更好,這樣可減少不必要的總線活動。2.3.3 USB設(shè)備請求所有的USB設(shè)備在“設(shè)備的缺省控制通道”處對主機的請求發(fā)出響應(yīng)。這些請求是通過使用控制傳輸來達到的,請求及請求的參數(shù)通過Setup包發(fā)向設(shè)備,由主機負責設(shè)置Setup包內(nèi)的每個域的值。每個Setup包有8個字節(jié)。見表2-2。表2-2 Setup數(shù)據(jù)包的格式偏移量 域 大小 值 描述0bmRequestType1 位圖 請求特征:D7: 傳輸方向0=主機至設(shè)備1=設(shè)備至主機D6..5: 種類0=標準1=類2=廠商3=保留D4..0: 接受者0=設(shè)備1=接口2=端點3=其他4..31=保留1 bRequest 1 值 具體請求2 wValue 2 值 字長域,根據(jù)不同的請求含義改變.4 wIndex 2 索引或偏移字長域,根據(jù)不同的請求含義改變.典型用于傳送索引或偏移.6 wLength 2 如有數(shù)據(jù)傳送階段,此為數(shù)據(jù)字節(jié)數(shù).2.4 USB的物理層USB的物理接口包括電氣特性和機械特性。USB通過一個四線電纜來傳輸信號與電源如圖2-7所示。圖2-7 USB電纜定義其中D+和D-是一對差模的信號線而VBus和GND則提供了5V的電源它可以給一些設(shè)備(包括Hub)供電當然要有一定的條件限制。USB1.1提供了兩種數(shù)據(jù)傳輸率一種是12Mb的高速模式,另一種是1.5Mb的低速模式,這兩種模式可以同時存在于一個USB系統(tǒng)中。而引入低速模式主要是為了降低要求不高的設(shè)備的成本,比如鼠標、鍵盤等等。USB信號線在高速模式下必須使用帶有屏蔽的雙絞線,而且最長不能超過5m。而在低速模式時中可以使用不帶屏蔽或不是雙絞的線,但最長不能超過30m。這主要是由于信號衰減的限制,為了提供信號電壓保證以及與終端負載相匹配,在電纜的每一端都使用了不平衡的終端負載,這種終端負載也保證了能夠檢測外設(shè)與端口的連接或分離,并且可以區(qū)分高速與低速設(shè)備。所有的設(shè)備都有上行的接口,上行和下行的接頭是不能互換的,這保證了不會有非法的連接出現(xiàn)。插頭與插座有兩個系列分別為A和B系列,A用于基本固定的外圍設(shè)備,而系列B用于經(jīng)常拔插的設(shè)備,這兩個系列是不能互換的。2.5 USB 數(shù)據(jù)流從邏輯上講USB數(shù)據(jù)的傳輸是通過管道進行的。圖2-6描述了USB數(shù)據(jù)傳輸?shù)倪^程。USB系統(tǒng)軟件通過缺省管道(與端點0相對應(yīng))管理設(shè)備,設(shè)備驅(qū)動程序通過其它的管道來管理設(shè)備的功能接口。實際的數(shù)據(jù)傳輸過程是這樣的:設(shè)備驅(qū)動程序通過對USBD接口(USB driver interface)的調(diào)用發(fā)出輸入輸出請求(IRP I/O Request Packet);USB驅(qū)動程序接到請求后,調(diào)用HCD接口(host controller driver interface),將IRP轉(zhuǎn)化為USB的傳輸,一個IRP可以包含一個或多個USB傳輸;然后HCD將USB傳輸分解為總線操作,由主控制器以包的形式發(fā)出。需要注意的是所有的數(shù)據(jù)傳輸都是由主機開始的,任何外設(shè)都無權(quán)開始一個傳輸。IRP是由操作系統(tǒng)定義的,而USB傳輸與總線操作是USB規(guī)范定義的。為了進一步說明USB傳輸,我們引出幀(frame)的概念。幀:USB總線將1ms定義為一幀,每幀以一個SOF包為起始,在這1ms里,USB進行一系列的總線操作。引入幀的概念主要是為了支持與時間有關(guān)的總線操作。為了滿足不同外設(shè)和用戶的要求,USB 提供了四種傳輸方式:控制傳輸、同步傳輸、中斷傳輸、批傳輸。它們在數(shù)據(jù)格式、傳輸方向、數(shù)據(jù)包容量限制、總線訪問限制等方面有著各自不同的特征??刂苽鬏?Control Transfer)1. 通常用于配置/命令/狀態(tài)等情形;2. 其中的設(shè)置操作(setup)和狀態(tài)操作(status)的數(shù)據(jù)包,具有USB定義的結(jié)構(gòu),因此控制傳輸只能通過消息管道進行;3. 支持雙向傳輸;主機 連接 物理設(shè)備到一個接口的通道束 與接口 無 緩沖 沒有 USB 有關(guān) USB 格式 格式 到 0 號端點的缺省通道事務(wù) USB 幀格式 每個端 USB 幀 的數(shù)據(jù) 點的數(shù) 結(jié)構(gòu)的 據(jù) 數(shù)據(jù)USB主機(第 10 章)USB設(shè)備(第9 章)Client SW管理一個接口USB System SW管理設(shè)備USBUSB 幀格式 接口的數(shù)據(jù) 事務(wù) 主機控制器SIE應(yīng)用接口的集合 接口XUSB邏輯設(shè)備端點的集合端點0USB 總線接口SIE USB 線路機械的,通道:兩個水平實體之間連接 電氣的,的抽象。 數(shù)據(jù)傳遞機制 被傳遞的數(shù)據(jù)圖 2-8 USB數(shù)據(jù)流4. 對于高速設(shè)備允許數(shù)據(jù)包最大容量為8,16,32或64字節(jié),對于低速設(shè)備只有8 字節(jié)一種選擇;5. 端點不能指定總線訪問的頻率和占用總線的時間,USB系統(tǒng)軟件會做出限制;6. 具有數(shù)據(jù)傳輸保證,在必要時可以重試。同步傳輸(Isochronous Transfer)1. 是一種周期的連續(xù)的傳輸方式,通常用于與時間有密切關(guān)系的信息的傳輸;2. 數(shù)據(jù)沒有USB 定義的結(jié)構(gòu)數(shù)據(jù)流管道;3. 單向傳輸,如果一個外設(shè)需要雙向傳輸,則必須使用另一個端點;4. 只能用于高速設(shè)備,數(shù)據(jù)包的最大容量可以從0到1023個字節(jié);5. 具有帶寬保證,并且保持數(shù)據(jù)傳輸?shù)乃俾屎愣?,每個同步管道每幀傳輸一個數(shù)據(jù)包;6. 沒有數(shù)據(jù)重發(fā)機制要求,具有一定的容錯性;7. 與中斷方式一起占用總線的時間不得超過一幀的90%。中斷傳輸(Interrupt Transfer)1. 用于非周期的自然發(fā)生的數(shù)據(jù)量很小的信息的傳輸,如鍵盤、鼠標等;2. 數(shù)據(jù)沒有USB 定義的結(jié)構(gòu)數(shù)據(jù)流管道;3. 只有輸入這一種傳輸方式,即外設(shè)到主機;4. 對于高速設(shè)備允許數(shù)據(jù)包,最大容量為小于或等于64字節(jié),對于低速設(shè)備只能小于或等于8字節(jié);5. 具有最大服務(wù)周期保證,即在規(guī)定時間內(nèi)保證有一次數(shù)據(jù)傳輸;6. 與同步方式一起占用總線的時間不得超過一幀的90%;7. 具有數(shù)據(jù)傳輸保證,在必要時可以重試。批傳輸(Bulk Transfer)1. 用于大量的對時間沒有要求的數(shù)據(jù)傳輸;2. 數(shù)據(jù)沒有USB 定義的結(jié)構(gòu)數(shù)據(jù)流管道;3. 單向傳輸,如果一個外設(shè)需要雙向傳輸,則必須使用另一個端點;4. 只能用于高速設(shè)備,允許數(shù)據(jù)包最大容量為8,16,32或64字節(jié);5. 沒有帶寬的保證,只要有總線空閑就允許傳輸數(shù)據(jù),優(yōu)先級小,于控制傳輸;6. 具有數(shù)據(jù)傳輸保證,在必要時可以重試,以保證數(shù)據(jù)的準確性。圖2-7 描述了輸入輸出請求IRP傳輸與操作之間的關(guān)系。圖2-7 USB 數(shù)據(jù)傳輸一個同步傳送是一個或多個 IN/OUT 方向的數(shù)據(jù)事務(wù)。IRP數(shù)據(jù)流類型IRP 事務(wù) 事務(wù) 事務(wù)所有的傳送都是由一個或多個事務(wù)組成。一個 IRP又可由一個或多個傳送組成??刂苽魉虸RP Setup事務(wù)數(shù)據(jù)事務(wù)Status事務(wù)額外的控制傳送控制傳送首先是一個 OUT方向的 Setup 事務(wù),然后是多個 IN 方向或 OUT 方向的數(shù)據(jù)事務(wù),最后是一個與數(shù)據(jù)反向的 Status 事務(wù)。中斷傳送IRP 事務(wù) 事務(wù)一個中斷傳送是一個或多個 IN/OUT 方向的數(shù)據(jù)事務(wù)。同步傳送IRP 事務(wù) 事務(wù) 事務(wù)批傳送事務(wù) 事務(wù) 事務(wù)一個批傳送是一個或多個 IN/OUT 方向的數(shù)據(jù)事務(wù)。3 數(shù)據(jù)采集系統(tǒng)的固件設(shè)計3.1 固件的開發(fā)環(huán)境Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。Keil C51的工具包中,uVision是C51 for Windows的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標文件(.OBJ)。目標文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標準的Hex文件,以供調(diào)試器dScope51或tScope51使用進行源代碼級調(diào)試,也可由仿真器使用直接對目標板進行調(diào)試,也可以直接寫入程序存貯器如EPROM中。3.2 采用PDIUSBD12的固件設(shè)計3.2.1 固件編程的主要工作固件是FIREWARE的對應(yīng)中文詞,它實際上是單片機的程序文件,其編寫語言可以采用C語言或是匯編語言.它的操作方式與硬件聯(lián)系緊密,包括USB設(shè)備的連接USB協(xié)議、中斷處理等,它不是單純的軟件,而是軟件和硬件的結(jié)合,開發(fā)者需要對端口、中斷和硬件結(jié)構(gòu)非常熟悉。固件程序一般放入MCU中,當把設(shè)備連接到主機上時,上位機可以發(fā)現(xiàn)新設(shè)備,然后建立連接。因此,編寫固件程序的一個最主要的目的就時讓W(xué)indows可以檢測和識別設(shè)備。USB固件程序程序由三部分組成:①初始化單片機和所有的外圍電路(包括PDIUSBD12);②主循環(huán)部分,其任務(wù)是可以中斷的;③中斷服務(wù)程序,其任務(wù)是對時間敏感的,必須馬上執(zhí)行。根據(jù)USB協(xié)議,任何傳輸都是由主機開始的。單片機作它的前臺工作,等待中斷。主機首先要發(fā)令牌包給USB設(shè)備(這里是PDIUSBD12),PDIUSBD12接收到令牌包后就給單片機發(fā)中斷。單片機進入中斷服務(wù)程序,首先讀PDIUSBD12的中斷寄存器,判斷USB令牌包的類型,然后執(zhí)行相應(yīng)的操作。在USB單片機程序中,要完成對各種令牌包的響應(yīng),其中比較難處理的是SETUP包,主要是端口0的編程。單片機與PDIUSBD12的通信主要是靠單片機給PDIUSBD12發(fā)命令和數(shù)據(jù)來實現(xiàn)的。PDIUSBD12的命令字分為三種:初始化命令字、數(shù)據(jù)流命令字和通用命令字。PDIUSBD12數(shù)據(jù)手冊給出了各種命令的代碼和地址。單片機先給PDIUSBD12的命令地址發(fā)命令,根據(jù)不同命令的要求再發(fā)送或讀出不同的數(shù)據(jù)。因此,可以將每種命令做成函數(shù),用函數(shù)實現(xiàn)各個命令,以后直接調(diào)用函數(shù)即可。3.2.2 PDIUSBD12芯片特點PDIUSBD12是一個性能優(yōu)化的USB器件,通常用于基于微控制器的系統(tǒng),并通過高速通用并行接口與微控制器進行通信,而且支持本地DMA傳輸。該器件采用模塊化的方法實現(xiàn)一個USB接口,允許在眾多可用的微控制器中選擇最合適的作為系統(tǒng)微控制器,允許使用現(xiàn)存的體系結(jié)構(gòu)使固件投資減到最小。這種靈活性減少了開發(fā)時間、風險和成本。該器件使開發(fā)成本低且高效的USB外圍設(shè)備的一種有效途徑。PDIUSDB12完全符合USB1.1規(guī)范,也能適應(yīng)大多數(shù)設(shè)備類規(guī)范的設(shè)計,如成像類、大容量存儲類、通信類、打印類和人工輸入設(shè)備等。因此,PDIUSBD12非常適合做很多外圍設(shè)備。現(xiàn)在很
收藏
編號:146692
類型:共享資源
大?。?span id="55uhiv0" class="font-tahoma">1.47MB
格式:RAR
上傳時間:2017-10-26
100
積分
- 關(guān) 鍵 詞:
-
dz201plc
控制
節(jié)制
供水系統(tǒng)
- 資源描述:
-
DZ201PLC控制的恒壓供水系統(tǒng),dz201plc,控制,節(jié)制,供水系統(tǒng)
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。
鏈接地址:http://ioszen.com/p-146692.html