DZ201PLC控制的恒壓供水系統(tǒng)
DZ201PLC控制的恒壓供水系統(tǒng),dz201plc,控制,節(jié)制,供水系統(tǒng)
基于USB總線的高速數(shù)據(jù)采集系統(tǒng)設計摘要通用串行總線USB(Universal Serial Bus)是一種新型的微機總線接口規(guī)范。隨著客戶對系統(tǒng)數(shù)據(jù)采集速度要求的不斷提高,USB以其使用方便、易于擴展、速度快等優(yōu)點而越來越多的應用于數(shù)據(jù)采集系統(tǒng)中。本文介紹了一種基于USB總線的數(shù)據(jù)采集系統(tǒng)的設計方法,采用PHILIPS公司的USB接口芯片PDIUSBD12與單片機AT89C51進行通信,并和PC機通信而編制出友善的設備應用程序。該系統(tǒng)用傳統(tǒng)的USB總線取代了RS232串行總線,通過對USB協(xié)議和設備構(gòu)架的充分理解,對以單片機89C51和USB接口芯片PDIUSBD12為主的數(shù)據(jù)采集系統(tǒng)進行了硬件設計和軟件編程,并在此設計的基礎上給出相應的原理圖。硬件設計主要解決的是PDIUSBD12和ADC0809與單片機之間的接口電路問題,軟件編程大致分為三部分:一是為滿足D12在USB上的最大傳輸速率而編寫的固件程序;二是在PC機中的Windows 2000工作環(huán)境下編寫USB設備驅(qū)動程序;三是充分了解D12的主要功能特點,并編寫出應用程序。通過該數(shù)據(jù)采集系統(tǒng),我們可以對USB協(xié)議有很深刻的理解,對D12接口芯片有很熟練的應用,能更好領悟USB接口的優(yōu)勢。關鍵詞:USB總線;單片機;數(shù)據(jù)采集;固件;Windows驅(qū)動程序模型;設備驅(qū)動程序;客戶應用程序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設備 ........................................................2.3.1 USB設備狀態(tài) ...............................................2.3.2 通用USB設備操作 ...........................................2.3.3 USB設備請求 ...............................................2.4 USB的物理層 ...................................................2.5 USB數(shù)據(jù)流 .....................................................3 數(shù)據(jù)采集系統(tǒng)的固件設計 ..............................................3.1 固件的開發(fā)環(huán)境 ................................................3.2 采用PDIUSBD12的固件設計 .......................................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 中斷服務程序ISR.C .........................................3.4.4 主循環(huán)MAINLOOP.C ..........................................4 USB設備驅(qū)動程序設計 .................................................4.1 Windows2000驅(qū)動程序 ...........................................4.2 WDM驅(qū)動程序結(jié)構(gòu)模型 ...........................................4.2.1 USB設備驅(qū)動程序?qū)哟谓Y(jié)構(gòu) ...................................4.2.2設備對象 ...................................................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)境的安裝與設置 ..................................4.4 驅(qū)動程序的實現(xiàn) ................................................4.4.1 驅(qū)動入口 ..................................................4.4.2數(shù)據(jù)傳輸控制 ...............................................5 USB設備應用程序設計 .................................................5.1 Win32 API簡介 .................................................5.2動態(tài)鏈接庫 .....................................................5.3 MFC的應用程序開發(fā) .............................................5.4設備應用程序與WDM的通信 ........................................5.4.1 Win32應用程序?qū)DM的通信 ..................................5.4.2 WDM對Win32應用程序的通信 ..................................5.5 應用程序的實現(xiàn) ................................................6 數(shù)據(jù)采集系統(tǒng)的硬件設計 ..............................................6.1 硬件系統(tǒng)的結(jié)構(gòu) ................................................6.2 接口芯片選擇 ..................................................6.3 接口硬件設計 .................................................6.3.1 A/D與單片機接口電路 .......................................6.3.2 PDIUSBDI2與單片機接口電路 .................................1 緒論1.1 課題背景隨著數(shù)字化的廣泛應用,數(shù)據(jù)采集也越來越重要,傳統(tǒng)的外設與主機的通信口一般采用ISA、PCI、C PCI、1394等標準,基于這些接口的產(chǎn)品,安裝麻煩,價格昂貴,并受計算機插槽數(shù)量、地址中斷資源限制,且可擴展性差,USB的出現(xiàn),很好地解決了以上問題。USB作為一種新型的串口通信標準,具有較高的傳輸速率,可擴展性好,采用總線供電,使用靈活。它共有4種傳輸模式:控制傳輸、同步傳輸、中斷傳輸、批量傳輸,以適應不同設備的需要。信息技術與電子技術的迅猛發(fā)展,使得計算機和外圍設備也得到飛速發(fā)展和應用。過去人們單純追求計算機與外設之間的傳輸速度,現(xiàn)在糾錯能力和操作安裝的簡易性也成為人們關注的目標。USB通訊技術的出現(xiàn),使高傳輸速度、強糾錯能力、易擴展性、方便的即插即用,有機的結(jié)合在一起。USB設備需要依據(jù)USB協(xié)議進行數(shù)據(jù)的解包與打包,底層硬件設備與操作系統(tǒng)之間需要以驅(qū)動程序為橋梁。驅(qū)動程序以WDM為模型,以DDK為開發(fā)工具,以IRP為消息傳播載體,來實現(xiàn)與Windows系統(tǒng)底層核心機制相交互的功能。1.2課題的提出盡管RS232是一種十分成熟且應用廣泛的通訊方式,但是隨著控制系統(tǒng)的日益復雜,所要采集的量也會越來越多。因此尋求一種高速、安全、方便的通訊形式是十分必要的。USB技術雖然出現(xiàn)的時間并不長,但是由于它的種種優(yōu)點,被越來越多的廠商和用戶所接受,出現(xiàn)了USB打印機、攝像頭等產(chǎn)品。盡管目前USB接口的應用主要集中在電腦的周邊外設,但是USB產(chǎn)品進入工控領域?qū)⑹潜厝坏内厔?。采用PDIUSBD12芯片和89C51單片機設計的基于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廠家所支持。現(xiàn)在生產(chǎn)的PC機幾乎都配備了,USB接口,Microsoft的windows98, NT以及MacOS, Linux, FreeBSD等流行操作系統(tǒng)都增加了對USB的支持。USB的主要特點如下:1. 速度快。 USB 有全速和低速兩種方式,主模式為全速模式,速率為12Mbps,從而使一些要求高速數(shù)據(jù)的外設,如:高速硬盤、攝像頭等,都能統(tǒng)一到同一個總線框架下。另外為了適應一些不需要很大吞吐量但是有很高實時性要求的設備,如鼠標、鍵盤、游戲桿等,USB還提供低速方式,速率為1.5Mbps。如表1-1所示。新推出的USB2.0協(xié)議提供最高達480Mbps的數(shù)據(jù)傳輸速率可以適應各種不同類型的外設。表1-1 USB使用分類表性能 應用 特性低速 ·交互設備·10-20kb/s鍵盤、鼠標、游戲棒 低價格、熱插拔、易用性中速·電話、音頻、壓縮視頻·500kb/s-10Mb/sISBN、PBX、POTS 低價格、易用性、動態(tài)插拔、限定帶寬和延遲高速·音頻、磁盤·25-500Mb/s音頻、磁盤 高帶寬、限定延遲、易用性2. 支持熱插拔和即插即用。 所有的USB 設備可以隨時的插入和拔離系統(tǒng),USB 主機能夠動態(tài)的識別設備的狀態(tài),并自動給接入的設備分配地址和配置參數(shù),添加、刪除設備完全不用關閉計算機,也不必像過去那樣需要手動跳線和撥碼開關來設置新的外設。3. 易于擴展。USB使用的是一種易于擴展的樹狀結(jié)構(gòu),通過使用USB Hub擴展可連接多達127個外設。標準USB電纜長度為3米(低速為5米)。通過Hub或中繼器可以使外設距離達到30米。4. 使用靈活。 USB共有4種傳輸模式:控制傳輸(control),步傳輸(synchronization)、中斷傳輸(interrupt)、批量傳輸(bulk),適應不同設備的需要。5. 能夠采用總線供電。 普通使用串口、并口的設備都需要單獨的供電系統(tǒng),而USB設備則不需要,因為USB接口提供了內(nèi)置電源e USB電源能向低壓設備提供最大5V, 500mA 的電源,從而降低了這些設備的成本并提高了性價比。6. 實現(xiàn)成本低。 USB對系統(tǒng)與PC的集成進行了優(yōu)化,適合于開發(fā)低成本的外設。本文設計的基于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ù)據(jù)采集系統(tǒng)是在單片機89051控制下進行數(shù)據(jù)采集,并通過PHILIPS公司的USB接口芯片PDIUSBDI2上傳給PC機進行分析、顯示和存盤。該系統(tǒng)用傳統(tǒng)的USB總線取代了RS232串行總線,通過對USB協(xié)議和設備構(gòu)架的充分理解,對以單片機89C51和USB接口芯片D12為主的數(shù)據(jù)采集系統(tǒng)進行了硬件設計和軟件編程,并在此設計的基礎上給出相應的原理圖。硬件設計主要解決的是D12與單片機的接口電路的設計。軟件設計可分為三部分:一是充分了解D12的主要功能特點,為滿足D12在USB上的最大傳輸速率而編寫固件程序,用C51語言編寫:二是在充分了解WDM驅(qū)動程序的基礎上編寫USB的設備驅(qū)動程序;三是編寫出界面友好、具有強大的數(shù)據(jù)處理和分析能力的應用程序。2 USB1.1協(xié)議2.1 USB的互連一個 USB系統(tǒng)主要被定義為三個部分:·USB的互連;·USB的設備;·USB的主機。USB的互連是指 USB設備與主機之間進行連接和通信的操作,主要包括以下幾方面:·總線的拓撲結(jié)構(gòu):USB 設備與主機之間的各種連接方式;·內(nèi)部層次關系:根據(jù)性能疊置,USB 的任務被分配到系統(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和設備:USB 系統(tǒng)的基礎組成部分。·物理拓樸結(jié)構(gòu):描述 USB系統(tǒng)中的各組成部分是如何連接起來的。·邏輯拓樸結(jié)構(gòu):描述 USB系統(tǒng)中各種組成部分的地位和作用,以及描述從主機和設備的角度觀察到的 USB系統(tǒng)?!た蛻糗浖优c應用層的關系:描述從客戶軟件層看到的應用層的情況,以及從應用層看到的客戶軟件層的情況。USB 系統(tǒng)中的設備與主機的連接方式采用的是星形連接,如圖 2-1。復合設備設備設備 設備 設備設備 設備主機HUBHUB根 HUB圖 2—1 USB物理總線的拓撲圖中的 Hub是一類特殊的 USB設備,它是一組 USB的連接點,主機中有一個被嵌入的Hub叫根 Hub(root Hub)。主機通過根 Hub提供若干個連接點。為了防止環(huán)狀連接,采用星形連接來體現(xiàn)層次性,如圖 4-5。這種連接的形狀很像一棵樹。用于提供具體功能的設備叫應用設備。許多不同功能的設備放在一起被看作一個整體,叫包。例如,鍵盤和軌跡球可以被視作一個整體,在它的內(nèi)部,提供具體功能的設備被永久地接到Hub上,而這個Hub被接到USB上。所有這些設備及這個Hub被看作一個復合設備,而這個Hub又被看作這個復合設備的內(nèi)部Hub。在主機看來,這個復合設備和一個帶著若干設備的單獨Hub是一樣的。圖中也標出了一個復合設備??偩€邏輯拓樸結(jié)構(gòu)。在物理結(jié)構(gòu)上,設備通過Hub連到主機上。但在邏輯上,主機是直接與各個邏輯設備通信的,就好像它們是直接被連到主機上一樣。這個邏輯關系如圖2-2所示。與之對應的物理結(jié)構(gòu)就是圖2-1中的結(jié)構(gòu)。Hub也是邏輯設備,但在圖2-2中,為了簡化起見,未被畫出,雖然USB系統(tǒng)中的工作都是從邏輯角度來看待的,但主機必須對物理結(jié)構(gòu)有個了解。例如,在處理Hub被移去的情況時,當一個Hub被移出,通過它與主機相連的設備也應一起被移去,這是由其物理結(jié)構(gòu)決定的。圖2-2 USB邏輯總線的拓撲三.客戶軟件層與應用層的關系USB系統(tǒng)的物理上、邏輯上的拓樸結(jié)構(gòu)反映了總線的共享性。操縱 USB應用設備的客戶軟件只關心設備上與它相關的接口,客戶軟件必須通過 USB軟件編程接口來操縱應用設備。這與另一些總線如 PCL,ELSA,PCMUA 等不同,這些總線是直接訪問內(nèi)存或 I/O的。在運行中,客戶軟件必須獨立于 USB上的其它設備。這樣,設備和客戶軟件的設計者就可以只關心該設備與主機硬件的相互作用和主機軟件的相互作用的細節(jié)問題。圖 2-3說明了在圖 2-2的邏輯結(jié)構(gòu)下,一個設備設計者看到的客戶軟件與相應應用的關系的視圖。邏輯設備 邏輯設備邏輯設備主機客戶軟件應用客戶軟件應用客戶軟件應用圖2-3客戶軟件和應用間的關系2.2 USB的主機2.2.1 USB主機概述圖 2-4展示了 USB通信模型之間基本的信息流與互連關系:圖 2-4 通信模型層次關系圖由圖 2-4可見,主機與設備都被劃分成不同的層次。主機上垂直的箭頭是實際的信息流。設備上對應的接口是基于不同實現(xiàn)的。在主機與設備之間的所有通信最終都是通過USB的電纜進行,然而,在上層的水平層之間存在邏輯的主機-設備信息流。主機上的客戶軟件和設備功能部件之間的通信是基于實際的應用需求及設備所能提供的能力??蛻糗浖c功能部件之間的透明通信的要求,決定主機和設備下層部件的功能以及它們的界面(interface),圖 2-5描述了從主機角度看到的它與設備的連接。圖 2-5 主機通信圖客戶USB 系統(tǒng)主機控制器功能部件USB 設備USB總線接口邏輯的信息流 實際的信息流 通道,代表相應層之間連接的抽象USB 系統(tǒng) 硬件定義客戶(管理界面)硬件定義IRPS 配置信息USB 驅(qū)動器 主機軟件主機控制器驅(qū)動主機控制器 SIE通道組(到某一接口)標準通道(到缺省端口地址)USB電纜主機在整個 USB系統(tǒng)中是唯一的,它包括如下幾個層次?!SB總線接口·USB系統(tǒng)(USB System)·USB客戶(Client)其中,USB 總線接口處理電氣及協(xié)議層的互連。從互連的角度看,USB 設備和 USB主機都提供類似的 USB總線接口,如串行接口引擎。由于主機在 USB系統(tǒng)中的特殊性,USB主機上的總線接口還必須具備主機控制器的功能,主機控制器具有一個內(nèi)集成的集線器(根集線器)提供與 USB電纜的連接。USB系統(tǒng)使用主機控制器來管理主機與 USB設備的數(shù)據(jù)傳輸。USB 系統(tǒng)與主機控制器之間的界面基于主機控制器的硬件特性。USB 系統(tǒng)層相對于主機控制器而言,處理的是以客戶觀點見到的數(shù)據(jù)傳輸及客戶與設備的交互。這包括附加的 USB信息,比如協(xié)議頭。USB系統(tǒng)還必須管理 USB的系統(tǒng)資源,以使得客戶的訪問成為可能。USB系統(tǒng)有三個主要組成部份:·主機控制器驅(qū)動·USB驅(qū)動·主機軟件主機控制器驅(qū)動的存在,方便地將各種不同的主機控制器實現(xiàn)映射到 USB系統(tǒng),客戶可以不必知道設備到底接在哪個主機控制器上就能同設備進行通信。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 為它的客戶提供一個容易被支配及配置的抽象的設備。作為這種抽象的一部份,USBD 擁有標準通道對設備進行一些標準的控制。這標準通道實現(xiàn)了 USBD與抽象設備之間的邏輯通信。(見圖 2-5)在有些操作系統(tǒng)中,提供了額外的非 USB系統(tǒng)軟件以支持設備的配置及設備驅(qū)動程序的加載。在這樣的操作系統(tǒng)中,設備驅(qū)動程序應使用提供的主機軟件接口而不是直接訪問USBDI。客戶層描述的是直接與 USB設備進行交互所需要的軟件包。當所有的設備都已連上系統(tǒng)時,這些客戶就可以直接通設備進行通信。一個客戶不能直接訪問設備的硬件??偠灾?,主機可提供如下的功能:·檢測 USB設備的連接與斷開?!す芾碇鳈C與設備之間的標準控制流。·管理主機與設備之間的數(shù)據(jù)流。·收集狀態(tài)及一些活動的統(tǒng)計數(shù)字。·控制主機控制器與USB設備的電氣接口,包括提供有限的能源。2.2.2 USB驅(qū)動(USBD)USBD提供了供操作系統(tǒng)組件特別是設備驅(qū)動程序訪問設備的一組接口。這些操作系統(tǒng)組件只能通過 USBD來訪問 USB。USBD 的具體實現(xiàn)基于不同的操作系統(tǒng)。一個 USBD可以訪問一個或多個 HCD,而一個 HCD可能與一個或多個主機控制器相連。某些操作系統(tǒng)可能允許對 USBD的初始化進行一些設置。從客戶的觀點來看,與客戶進行通信的 USBD管理著所有連接著的 USB設備。1. USBD概況USBD的客戶直接命令設備或從通道直接輸入和輸出數(shù)據(jù)流。USBD 為客戶提供兩組工具。命令工具和通道工具。命令工具允許客戶配置和控制 USBD操作同時配置及控制 USB設備。命令工具提供了對設備標準通道的所有訪問。通道工具允許 USBD客戶管理特定設備的數(shù)據(jù)和控制數(shù)據(jù)的傳輸。通道工具不允客戶直接訪問設備的標準通道。圖 2-6給出了 USBD的總體框架。圖 2-6 USB 驅(qū)動結(jié)構(gòu)(1) USBD初始化具體的 USBD初始化工作是與操作系統(tǒng)有關的。當 USB系統(tǒng)初始化時,USB 的管理信息被創(chuàng)建,其中包括缺省地址設備及它的標準通道。當一個設備連上 USB時,它響應特殊的缺省地址,直到他的唯一地址由主機給出。為了讓 USB系統(tǒng)能與新的設備進行通信,設備在剛連上總線時,設備的卻省地址必須是可用服務通道接口命令接口信息和流通道 配置管理 設備數(shù)據(jù)訪問 總線設備管理 能量控制主機控制器驅(qū)動主機控制器驅(qū)動主機控制器 主機控制器的。在設備的初始化期間,設備的缺省地址被修改成一個唯一的地址。(2) USBD通道使用通道是設備與主機的邏輯連結(jié)。一個通道由且僅由一個客戶所擁有。雖然通道的基本屬性不因通道的擁有者而改變,但在兩類不同客戶所擁有的通道之間還存在一定的差異:·標準通道 他們由 USBD擁有和管理?!て渌耐ǖ? 它們由 USBD的客戶擁有和管理。雖然標準通道經(jīng)常用于完成一些客戶通過命令接口所傳遞的請求,但是它們不能由客戶直接訪問的。(3) USBD服務功能USBD提供如下種類的服務:·通過命令工具配置設備·通過命令工具及通道工具提供傳輸服務·事件通知·狀態(tài)報告及錯誤恢復2. USBD命令工具功能USBD命令工具允許客戶訪問設備。通常,這些命令允許客戶以讀寫形式訪問某個設備數(shù)據(jù)及控制部份??蛻粢龅膬H是提供設備的標識碼和相關數(shù)據(jù)緩沖區(qū)或空緩沖區(qū)指針。USBD命令傳輸時并不需要 USB設備是已被配置好。USBD 提供的設備配置設施大部分使用是用命令傳輸。下面的是有關命令工具提供的功能:(1)接口狀態(tài)控制USBD客戶必須能夠設置具體的接口。接口狀態(tài)的改變使得所有與該接口相連的通道都進入新的狀態(tài)。另外接口的所有通道都能夠被重新設置或廢棄。(2)通道狀態(tài)控制USBD通道狀態(tài)由兩部份組成·主機狀態(tài)?!し从车亩丝跔顟B(tài)。通道狀態(tài)值總是包含上述兩部份。USBD 的客戶管理由 USBD報告通道狀態(tài),且客戶能夠與端口交互以改變它狀態(tài)。(3)獲取描述碼USBD提供取得標準設備描述符,設備配置描述符,字串描述符和設備類或者廠商定義的描述符的功能。(4)取得當前配置參數(shù)USBD提供取得任何設備當前配置參數(shù)的描述符的功能。如果設備沒有被配置,則不返回描述符。當客戶請求為設備設置特定的參數(shù)時也返回當前配置的描述符。返回的配置信息中包括如下一些內(nèi)容:·所有存放在設備上的配置描述符,包括接口的所有其他可替換配置?!し祷亟涌诘漠斍暗呐渲玫拿枋龇?。·接口當前配置中的某一端口(一個接口可能具有多個端口)的通道句柄?!そ涌诋斍芭渲弥械哪骋欢丝诘淖畲笤试S包長。另外,對于任一通道,USBDI 必須提供返回該通道的當前正使用的最大包長的值的機制。(5)增加設備USBDI必須提供某種機制以便于當增加新的設備的時候,集成器驅(qū)動器能通知 USBD并能取得該新 USB設備的 USBD標識。USBD 的任務包括分配設備地址并且為設備準備使用的標準通道。(6)設備斷開USBDI必須提供某種機制以便于集線器控制器通知 USBD特定的設備已斷開。(7)管理狀態(tài)USBDI必須提供取得和清除設備或接口或通道上與設備有關的狀態(tài)的功能。(8)向設備發(fā)送與設備類有關的命令USBD的客戶,特別是特定類的和自適應的驅(qū)動器使用 USBD提供的該種機制向設備送出一個或多個設備類命令。(9)向設備發(fā)送特殊的廠商定義的命令客戶使用 USBDI提供的該種機制向設備送出一到多個廠商定義的命令。(10)更改接口配置USBDI必須提供更改特定接口配置的機制。修改了配置后,接口的新通道句柄替換了舊的通道句柄。在上述的請求執(zhí)行的過程中,接口必須是空閑的。(11)創(chuàng)建設備配置配置軟件向 USBD提出進行設備配置的請求時提供一個包含配置信息的數(shù)據(jù)緩沖區(qū)。USBD根據(jù)提供的配置信息為設備端口請求資源。如果所有的資源請求都得到滿足,USBD設置設備配置參數(shù),并且返回當前設備所有活躍態(tài)接口句柄和與該接口中的某一端口相連的通道句柄。接口的設置可使用缺省參數(shù)。(12)設置描述符對于支持該項行為的設備,USBDI允許升級設備上的描述符或者增加新的描述符。3. USBD通道設施USBD的通道設施使客戶與設備之間高速的低附加信息的數(shù)據(jù)傳輸成為可能。數(shù)據(jù)傳輸?shù)母咝阅苁峭ㄟ^將 USBD的一部份通道管理任務轉(zhuǎn)交給客戶來實現(xiàn)的。所以通道設施比USBD命令設施所提供的數(shù)據(jù)傳輸服務更直接。通道設施不允許訪問設備的標準通道。只有在 USB及設備的配置都順利完成后,客戶才有可能進行 USBD的通道傳輸。當設備被配置的時候 USBD根據(jù)配置參數(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設備USB設備可被劃分三層:·底層是傳送和接收數(shù)據(jù)包的總線接口·中間層處理總線接口與不同端點之間的數(shù)據(jù)路由端節(jié)點是數(shù)據(jù)的終結(jié)提供處或使用處,它可被看作數(shù)據(jù)源或數(shù)據(jù)接收端(Sink)·最上層的功能由串行總線設備提供,比如鼠標,或 ISDN接口。2.3.1 USB設備狀態(tài)USB設備有若干可能的狀態(tài),其中一些對于USB與主機(host)來說是外置的,而另外一些對USB設備來說是內(nèi)置的,表2-1描述的就是這些外置狀態(tài)之間的轉(zhuǎn)化關系。表2-1外呈(可見)的設備狀態(tài)連接加電缺省編址配置掛起說 明不 _ __ __ __ __ 設備尚未連接至接口.其他特性無關是 不 _ _ __ __ 設備已連接至接口,但未加電. 其他特性無關.是 是 不 __ _ __ 設備已連接至接口,并且已加電.但尚未被復位.是 是 是 不 __ __ 設備已連接至接口,已加電. 并被復位.但尚未分配地址.設備在缺省地址處可尋址.是 是 是 是 不 _ 設備已連接至接口,已加電. 并被復位.且分配了唯一地址.尚未被配置.是 是 是 是 是 不 設備已連接至接口,已加電. 并被復位.且分配了唯一地址,并被配置.設備功能可被使用.是 是 __ __ __ 是 設備在至少 3 毫秒以內(nèi)探測不到總線活動,自動進如掛起.設備功能不可用.2.3.2 通用USB設備操作所有的USB 設備支持通用的操作集,下面簡要地描述這些操1. 動態(tài)插接與拔開USB設備必須在任意時刻允許被插接與拔開。提供連接點或端口的集線器應當負責匯報端口的狀態(tài)改變情況。當主機探測到連接操作后,會使得所連的集線器端口生效,設備也會因此而復位,一個被復位了的 USB設備有如下特性:·對缺省 USB地址發(fā)生響應·沒有被配置·初始狀態(tài)不是掛起當設備從一個集線器端口移去時,集線器會使得原來連接的端口失效,并且通知主機設備已移去。2. 地址分配當 USB設備連接以后,由主機負責給此設備分配一個唯一的地址,這個操作是在設備復位及端口使能操作以后。3. 配置USB設備在正常被使用以前,必須被配置,由主機負責配置設備。主機一般會從 USB設備獲取配置信息后再準定此設備有哪些功能。作為配置操作的一部分,主機會設置設備的配置值,并且,如果必要的話會選擇合適的接口的備選設置。只須一個簡單配置,一個設備可能支持多重接口。一個接口是一組端結(jié)點集合,它們代表了設備向主機提供的單一的功能或特性,用來與這組相關端結(jié)點通信的協(xié)議以及接口內(nèi)各端結(jié)點的目的可以作為一個設備類的一部分或者由廠商制定具體定義。另外,一個配置中的結(jié)口可能有備選設置。這些備選設置會重定義相關端結(jié)點的數(shù)目或特性。如果是這樣的話,設備必須支持 GetInterface(接口請求)與 Set Interface(接口設置)請求,來匯報及選擇指定的接口的設備選設置。4. 數(shù)據(jù)傳送數(shù)據(jù)可能以四種方式在 USB設備端結(jié)點與主機之間傳送。四種傳送方式參見第五章。在不同設置下,一個終端結(jié)點可能被用于不同的傳輸方式,但一旦設置選定,傳送方式就選定了。5. 電源管理USB總線電源是一個有限的資源,在設備標識階段,主機估測電源的需求。如果電源的需求量超過 USB總線所能提供的電量,主機軟件則不能選擇那個配置。USB設備應將電源需求量限制在一個單元以下,直到被配置。中止(掛起)的設備,不管是否已經(jīng)配置過了,應將總線耗電降到第 7章定義的標準以下。視接到設備的端口電源負載能力而定,USB 設備在配置了以后可從 VBus汲取達 5個單元的電量。遠程喚醒能力參許一個被掛起的 USB設備發(fā)達信號給處于掛起狀態(tài)的主機。這個信號會使得主機醒來,處理觸發(fā)事件。USB 設備通過配置描述來向主機匯報其遠程喚醒的能力。USB 設備的遠程喚醒能力應能被禁止的。6. 請求處理除 SetAddress( )請求以外,在安裝完成返回 ACK信號以后,設備就開始處理請求。在某一狀態(tài)成功結(jié)束以前,設備應當“完成”對請求的處理。許多請求費時較多,像這樣的請求,該設備類應定義一個方法而不是等待交換狀態(tài)信息階段的結(jié)束來表示該操作已經(jīng)完成。像這樣的操作有:集線器端口的復位至少需 10ms來完成。當端口復位產(chǎn)生時,SetPortFeature(PORT-RESET)請求就結(jié)束了。當端口狀態(tài)改變并表明此端口已經(jīng)生效時,一個信號就會產(chǎn)生表明復位信號已經(jīng)結(jié)束。這種技術可以防止當主機知道某一個請求費時較長的情況一直探測此請求是否已完成。7. 請求錯誤如果一設備收到一個請求,它或是在設備中無定義,或是不適用于當前設置,或是數(shù)值不對,這時就會產(chǎn)生一個請求錯誤。設備在下一個數(shù)據(jù)傳輸階段或狀態(tài)交換階段返回一個表明錯誤的STALL PID信號,一般在下一個數(shù)據(jù)傳輸返回更好,這樣可減少不必要的總線活動。2.3.3 USB設備請求所有的USB設備在“設備的缺省控制通道”處對主機的請求發(fā)出響應。這些請求是通過使用控制傳輸來達到的,請求及請求的參數(shù)通過Setup包發(fā)向設備,由主機負責設置Setup包內(nèi)的每個域的值。每個Setup包有8個字節(jié)。見表2-2。表2-2 Setup數(shù)據(jù)包的格式偏移量 域 大小 值 描述0bmRequestType1 位圖 請求特征:D7: 傳輸方向0=主機至設備1=設備至主機D6..5: 種類0=標準1=類2=廠商3=保留D4..0: 接受者0=設備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的電源它可以給一些設備(包括Hub)供電當然要有一定的條件限制。USB1.1提供了兩種數(shù)據(jù)傳輸率一種是12Mb的高速模式,另一種是1.5Mb的低速模式,這兩種模式可以同時存在于一個USB系統(tǒng)中。而引入低速模式主要是為了降低要求不高的設備的成本,比如鼠標、鍵盤等等。USB信號線在高速模式下必須使用帶有屏蔽的雙絞線,而且最長不能超過5m。而在低速模式時中可以使用不帶屏蔽或不是雙絞的線,但最長不能超過30m。這主要是由于信號衰減的限制,為了提供信號電壓保證以及與終端負載相匹配,在電纜的每一端都使用了不平衡的終端負載,這種終端負載也保證了能夠檢測外設與端口的連接或分離,并且可以區(qū)分高速與低速設備。所有的設備都有上行的接口,上行和下行的接頭是不能互換的,這保證了不會有非法的連接出現(xiàn)。插頭與插座有兩個系列分別為A和B系列,A用于基本固定的外圍設備,而系列B用于經(jīng)常拔插的設備,這兩個系列是不能互換的。2.5 USB 數(shù)據(jù)流從邏輯上講USB數(shù)據(jù)的傳輸是通過管道進行的。圖2-6描述了USB數(shù)據(jù)傳輸?shù)倪^程。USB系統(tǒng)軟件通過缺省管道(與端點0相對應)管理設備,設備驅(qū)動程序通過其它的管道來管理設備的功能接口。實際的數(shù)據(jù)傳輸過程是這樣的:設備驅(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ù)傳輸都是由主機開始的,任何外設都無權(quán)開始一個傳輸。IRP是由操作系統(tǒng)定義的,而USB傳輸與總線操作是USB規(guī)范定義的。為了進一步說明USB傳輸,我們引出幀(frame)的概念。幀:USB總線將1ms定義為一幀,每幀以一個SOF包為起始,在這1ms里,USB進行一系列的總線操作。引入幀的概念主要是為了支持與時間有關的總線操作。為了滿足不同外設和用戶的要求,USB 提供了四種傳輸方式:控制傳輸、同步傳輸、中斷傳輸、批傳輸。它們在數(shù)據(jù)格式、傳輸方向、數(shù)據(jù)包容量限制、總線訪問限制等方面有著各自不同的特征??刂苽鬏?Control Transfer)1. 通常用于配置/命令/狀態(tài)等情形;2. 其中的設置操作(setup)和狀態(tài)操作(status)的數(shù)據(jù)包,具有USB定義的結(jié)構(gòu),因此控制傳輸只能通過消息管道進行;3. 支持雙向傳輸;主機 連接 物理設備到一個接口的通道束 與接口 無 緩沖 沒有 USB 有關 USB 格式 格式 到 0 號端點的缺省通道事務 USB 幀格式 每個端 USB 幀 的數(shù)據(jù) 點的數(shù) 結(jié)構(gòu)的 據(jù) 數(shù)據(jù)USB主機(第 10 章)USB設備(第9 章)Client SW管理一個接口USB System SW管理設備USBUSB 幀格式 接口的數(shù)據(jù) 事務 主機控制器SIE應用接口的集合 接口XUSB邏輯設備端點的集合端點0USB 總線接口SIE USB 線路機械的,通道:兩個水平實體之間連接 電氣的,的抽象。 數(shù)據(jù)傳遞機制 被傳遞的數(shù)據(jù)圖 2-8 USB數(shù)據(jù)流4. 對于高速設備允許數(shù)據(jù)包最大容量為8,16,32或64字節(jié),對于低速設備只有8 字節(jié)一種選擇;5. 端點不能指定總線訪問的頻率和占用總線的時間,USB系統(tǒng)軟件會做出限制;6. 具有數(shù)據(jù)傳輸保證,在必要時可以重試。同步傳輸(Isochronous Transfer)1. 是一種周期的連續(xù)的傳輸方式,通常用于與時間有密切關系的信息的傳輸;2. 數(shù)據(jù)沒有USB 定義的結(jié)構(gòu)數(shù)據(jù)流管道;3. 單向傳輸,如果一個外設需要雙向傳輸,則必須使用另一個端點;4. 只能用于高速設備,數(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. 只有輸入這一種傳輸方式,即外設到主機;4. 對于高速設備允許數(shù)據(jù)包,最大容量為小于或等于64字節(jié),對于低速設備只能小于或等于8字節(jié);5. 具有最大服務周期保證,即在規(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. 單向傳輸,如果一個外設需要雙向傳輸,則必須使用另一個端點;4. 只能用于高速設備,允許數(shù)據(jù)包最大容量為8,16,32或64字節(jié);5. 沒有帶寬的保證,只要有總線空閑就允許傳輸數(shù)據(jù),優(yōu)先級小,于控制傳輸;6. 具有數(shù)據(jù)傳輸保證,在必要時可以重試,以保證數(shù)據(jù)的準確性。圖2-7 描述了輸入輸出請求IRP傳輸與操作之間的關系。圖2-7 USB 數(shù)據(jù)傳輸一個同步傳送是一個或多個 IN/OUT 方向的數(shù)據(jù)事務。IRP數(shù)據(jù)流類型IRP 事務 事務 事務所有的傳送都是由一個或多個事務組成。一個 IRP又可由一個或多個傳送組成??刂苽魉虸RP Setup事務數(shù)據(jù)事務Status事務額外的控制傳送控制傳送首先是一個 OUT方向的 Setup 事務,然后是多個 IN 方向或 OUT 方向的數(shù)據(jù)事務,最后是一個與數(shù)據(jù)反向的 Status 事務。中斷傳送IRP 事務 事務一個中斷傳送是一個或多個 IN/OUT 方向的數(shù)據(jù)事務。同步傳送IRP 事務 事務 事務批傳送事務 事務 事務一個批傳送是一個或多個 IN/OUT 方向的數(shù)據(jù)事務。3 數(shù)據(jù)采集系統(tǒng)的固件設計3.1 固件的開發(fā)環(huán)境Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。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的固件設計3.2.1 固件編程的主要工作固件是FIREWARE的對應中文詞,它實際上是單片機的程序文件,其編寫語言可以采用C語言或是匯編語言.它的操作方式與硬件聯(lián)系緊密,包括USB設備的連接USB協(xié)議、中斷處理等,它不是單純的軟件,而是軟件和硬件的結(jié)合,開發(fā)者需要對端口、中斷和硬件結(jié)構(gòu)非常熟悉。固件程序一般放入MCU中,當把設備連接到主機上時,上位機可以發(fā)現(xiàn)新設備,然后建立連接。因此,編寫固件程序的一個最主要的目的就時讓Windows可以檢測和識別設備。USB固件程序程序由三部分組成:①初始化單片機和所有的外圍電路(包括PDIUSBD12);②主循環(huán)部分,其任務是可以中斷的;③中斷服務程序,其任務是對時間敏感的,必須馬上執(zhí)行。根據(jù)USB協(xié)議,任何傳輸都是由主機開始的。單片機作它的前臺工作,等待中斷。主機首先要發(fā)令牌包給USB設備(這里是PDIUSBD12),PDIUSBD12接收到令牌包后就給單片機發(fā)中斷。單片機進入中斷服務程序,首先讀PDIUSBD12的中斷寄存器,判斷USB令牌包的類型,然后執(zhí)行相應的操作。在USB單片機程序中,要完成對各種令牌包的響應,其中比較難處理的是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外圍設備的一種有效途徑。PDIUSDB12完全符合USB1.1規(guī)范,也能適應大多數(shù)設備類規(guī)范的設計,如成像類、大容量存儲類、通信類、打印類和人工輸入設備等。因此,PDIUSBD12非常適合做很多外圍設備。現(xiàn)在很
收藏
編號:146692
類型:共享資源
大?。?span id="24d9guoke414" class="font-tahoma">1.47MB
格式:RAR
上傳時間:2017-10-26
100
積分
- 關 鍵 詞:
-
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)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
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)友學習交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。