【正文】
目 錄 第一章 緒論 5 課題背景 5 課題的提出 5 USB串行總線優(yōu)勢 6 本課題研究的內(nèi)容和意義 7第二章 USB概要設(shè)計 9 USB傳輸要件 9 事務(wù)、信息包和聯(lián)絡(luò)信號 9 USB的傳輸結(jié)構(gòu) 10 USB總線枚舉過程 13 USB的設(shè)備描述符 14 USB請求 15第三章 數(shù)據(jù)采集系統(tǒng)的硬件設(shè)計 17 硬件系統(tǒng)的結(jié)構(gòu) 17 芯片選擇 17 ADC0809 18 AT89C51 20 PDIUSBD12 21 接口硬件電路設(shè)計 24 A/D與單片機接口電路 25 PDIUSBDI2與單片機接口電路 25第四章 數(shù)據(jù)采集系統(tǒng)軟件設(shè)計 27 A/D轉(zhuǎn)換時序控制 27 固件的開發(fā) 27 采用PDIUSBD12的固件設(shè)計 28 驅(qū)動的開發(fā)工具 28 PDIUSBD12固件程序的編寫 29 固件結(jié)構(gòu) 30 固件的編程實現(xiàn) 32 底層函數(shù) 32 命令接口 32 34 36第五章 USB設(shè)備驅(qū)動及應(yīng)用程序設(shè)計 40 USB設(shè)備驅(qū)動程序 40 USB設(shè)備應(yīng)用程序設(shè)計 46 第六章 結(jié) 論 49 參考文獻 50 附錄 51基于USB總線的數(shù)據(jù)采集系統(tǒng)設(shè)計摘要:本文介紹了一種基于通用串行總線USB(Universal Serial Bus)的數(shù)據(jù)采集系統(tǒng)設(shè)計。隨著用戶對數(shù)據(jù)采集系統(tǒng)要求的不斷提高,USB接口以其簡單易用、速度快而被廣大用戶所接受。本論文所闡述的數(shù)據(jù)采集系統(tǒng)采用了集成了微處理器的USB接口芯片PDIUSBDI2來完成采樣控制并與PC機應(yīng)用程序完成系統(tǒng)通信功能,由應(yīng)用程序完成用戶命令及數(shù)據(jù)的顯示。該系統(tǒng)采用USB總線取代傳統(tǒng)的數(shù)據(jù)采集總線,通過對USB協(xié)議和設(shè)備構(gòu)架的理解,對數(shù)據(jù)采集系統(tǒng)進行了硬件設(shè)計和軟件設(shè)計。硬件設(shè)計主要解決了控制器與主機通信問題,數(shù)據(jù)采樣、模擬輸出、I/O擴展等電路設(shè)計以及它們之間的接口。軟件編程主要分為三部分:一是為滿足獲得最大傳輸速率和運行效率的固件程序編程。二是為用戶提供的以動態(tài)鏈接庫形式封裝的功能函數(shù)。三是提供演示和測試的控制面板程序,并為系統(tǒng)提供了兩個應(yīng)用實例。除此之外,論文還介紹了設(shè)備驅(qū)動程序的開發(fā),并在文章結(jié)尾對USB的應(yīng)用前景進行了探索。關(guān)鍵詞:USB總線;單片機;數(shù)據(jù)采集;固件;Windows驅(qū)動程序模型;設(shè)備驅(qū)動程序USB busbased data acquisition system design and implementationAbstract:This paper describes the design of a data acquisition system based on USB. With the advance of the clients requirement on data collection of a system, as a latemodel interface technology, USB is well accepted by vast clients because of its simplicity and high speed. The system using the USB interface chip with onchip microprocessor PDIUSBDI2controls the data acquisition process and municates with the puter. Through the manmachine interface clients can send mend and data can be printed. With good understanding of USB protocol and device truss, the system is design by using USB instead of other buses. The hardware design includes the munication between the controller and puter, the data acquisition part, analog output, I/O extension and the interface between them. The software program mainly includes the firmware code in the controller, functions for clients with DLL encapsulation and the control panel design. Also the device driver development is introduced and the foreground of USB application is explored at the end.KEY WORDS:USB bus;data collection;MCU;fireware;WDM;device drive program第一章 緒論本次畢業(yè)設(shè)計的數(shù)據(jù)采集系統(tǒng)是在單片機AT89C51控制下進行數(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語言編寫:二是了解USB的設(shè)備驅(qū)動程序與應(yīng)用。 課題背景現(xiàn)代工業(yè)生產(chǎn)和科學(xué)研究對數(shù)據(jù)采集的要求日益普遍,在瞬態(tài)信號測量、圖像處理等一些測量中,都需要進行數(shù)據(jù)采集。現(xiàn)在通用的數(shù)據(jù)采集卡一般多是利用微機機箱內(nèi)的PCI插槽或ISA插槽進行擴展。通過數(shù)據(jù)采集系統(tǒng),可以簡潔、通用化的硬件配合以相應(yīng)的軟件實現(xiàn)以往專用測試儀器的功能。完成“軟件既儀器”的理念.信息技術(shù)與電子技術(shù)的迅猛發(fā)展,使得計算機和外圍設(shè)備也得到飛速發(fā)展和應(yīng)用。過去人們單純追求計算機與外設(shè)之間的傳輸速度,現(xiàn)在糾錯能力和操作安裝的簡易性也成為人們關(guān)注的目標(biāo)。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)底層核心機制相交互的功能。 課題的提出對于數(shù)據(jù)采集系統(tǒng)而言有兩個關(guān)鍵性問題:一是控制A/D轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)目刂破鳎皇遣杉到y(tǒng)與上位機PC的傳輸方式。其中控制器一般采用通用的單片機,包括4位、8位、16位以至32位的各類單片機。這些單片機芯片優(yōu)勢在于價格低廉、結(jié)構(gòu)簡單、接口擴展能力強等,但是其數(shù)字運算能力較差,所以目前出現(xiàn)了許多以DSP芯片作為數(shù)據(jù)采集系統(tǒng)控制器的數(shù)據(jù)采集系統(tǒng)。本課題為簡化開發(fā)難度,充分利用現(xiàn)有的工作環(huán)境采用較常用的AT89C52單片機作為系統(tǒng)控制器。 對于數(shù)據(jù)采集系統(tǒng)與上位機的通訊方式,現(xiàn)行的常用方式是利用PC機箱內(nèi)的PCI, ISA插槽進行擴展:其傳輸速度分別為132M/S. 16M/S、但是由于PC機接口資源有限,且需要對接口卡硬件資源進行合理配置,故其存在以下缺點:安裝麻煩。價格昂貴。受計算機插槽數(shù)量、地址、中斷資源限制,可擴展性差。在一些電磁干擾性強的測試現(xiàn)場,無法專門對其做電磁屏蔽,易導(dǎo)致采集的數(shù)據(jù)失真。本課題旨在使用新型的通用串行總線USB完成數(shù)據(jù)采集系統(tǒng)的構(gòu)架,充分發(fā)揮USB總線接口簡潔、使用方便的優(yōu)勢。并為后續(xù)的使用USB總線對實驗室現(xiàn)有的“頻率特性測試系統(tǒng)”改進作前期準(zhǔn)備工作。課題主要完成四個方面的工作:數(shù)據(jù)采集系統(tǒng)硬件設(shè)計、固件設(shè)計、應(yīng)用程序及WDM設(shè)備驅(qū)動程序設(shè)計。使用到的軟件工具包括Prote199,K eilC 51,M icrosoftV isualSt udio6 .0,W in2000DDK:使用到的硬件工具包括單片機寫入器、萬用表、示波器等等。采用的操作系統(tǒng)平臺為Windows 200。 USB串行總線優(yōu)勢通用串行總線USB( UniversalS erialB us)是1995年康柏、微軟、IBM,D EC等公司為解決傳統(tǒng)總線不足而推廣的一種新型的通信標(biāo)準(zhǔn)。該總線接口具有安裝方便、高帶寬、易于擴展等優(yōu)點,已逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢?;赨SB的高速數(shù)據(jù)采集卡充分利用USB總線的上述優(yōu)點,有效解決了傳統(tǒng)數(shù)據(jù)采集卡的缺陷。USB從傳統(tǒng)I/O模式的栓桔中解放出來,開辟了一條外設(shè)同PC機連接的方法。與其他的老式PC機接口相比,USB具有如下優(yōu)點:1. 熱插拔:用戶可以把USB外設(shè)連接到一臺正在運行的PC機上,操作系統(tǒng)能自動識別,并且用戶可以立即使用,而不需要重新啟動。用戶也可以在任何時候斷開USB設(shè)備,而不管計算機是否正在運行,這都不會損壞計算機。 2. 即插即用:USB實現(xiàn)了自動配置,它不需要用戶手動配置I/O地址和中斷請求(URQ)。當(dāng)USB外設(shè)接入PC時,操作系統(tǒng)會自動檢測到這個連接。并加載適合的驅(qū)動程序。對用戶來說,只需要等待幾秒鐘,USB外設(shè)的安裝就會完成。3. 共享式接口:USB端口支持多個外設(shè)的連接,通過USB集線器,一個USB主控制器可以連接多達126個外設(shè)。:和其它老式的PC接口相比,USB接口小且薄,更適合于外設(shè)體積的小型化。5. 使用靈活:USB支持三種類型的傳輸速率,、12Mb/s的全速傳輸和480Mb/s的高速傳輸。USB支持四種傳輸類型,塊傳輸、同步傳輸、中斷傳輸和控制傳輸。這使得USB總線適合多種外設(shè)的傳輸需要。6. 提供電源:USB電纜向外設(shè)提供一根+5V的電源線,電流的大小取決于集線器端口。用戶可以直接使用這個總線電源。當(dāng)然 ,USB總線還存在許多缺陷。USB總線傳輸距離有限。USB總線協(xié)議復(fù)雜等。但隨著操作系統(tǒng)、硬件廠商對USB的進一步支持,其在PC外設(shè)方面的將大有可為。本課題旨在對USB總線的結(jié)構(gòu)、協(xié)議和系統(tǒng)體系進行充分研究的基礎(chǔ)上,完成一個實際的USB數(shù)據(jù)采集系統(tǒng)軟硬件的構(gòu)架。具體需要做的工作包括軟件和硬件兩部分。硬件方面 ,該系統(tǒng)使用Philips公司的PDIUSBD12芯片作為設(shè)備的USB接口芯片。采用常用的AT89C51作為系統(tǒng)的CPU: ADC0809芯片作為AD轉(zhuǎn)換芯片。配合其它輔助芯片和單片機固件完成輸入模擬信號的采集、存儲和向PC主機的傳輸。軟件方面分如下幾部分: 1. 單片機固件: 本系統(tǒng)中的單片機固件采用C語言編寫,使用KeilC 51編譯器為開發(fā)工具。固件中主要完成對USB協(xié)議規(guī)定的諸多標(biāo)準(zhǔn)請求以及用戶自定義請求的響應(yīng)。此外還包括控制ADC0809芯片完成對模擬信號的轉(zhuǎn)換代碼,以及USB設(shè)備所需各種描述符的定義。 2. 主機設(shè)備驅(qū)動程序: USB外設(shè)的驅(qū)動程序只能為WDM(WindowsD riverM odle)形式的驅(qū)動,課題中采用以DDK2000為開發(fā)工具,編譯時直接在DDK2000的DOS窗口中編譯。 3. 用戶應(yīng)用程序: 應(yīng)用程序是采集到數(shù)據(jù)最終顯示、處理的地方。系統(tǒng)用戶應(yīng)用程序界面模仿傳統(tǒng)示波器的外形。以圖形的方式動態(tài)的顯示采樣數(shù)據(jù)。具體的采樣數(shù)值也可以寫入“記事本”文件中,進而可以用其它專門軟件進行處理。 Philips公司提供了PDIUSBD1 2的開發(fā)包,包括軟件和硬件兩部分。為用戶使用該種型號的USB接口芯片進行設(shè)備開發(fā)提供一個基礎(chǔ)和工作平臺。 該數(shù)據(jù)采集系統(tǒng)的目的在于為實驗室現(xiàn)有的一套頻率特性測試儀的改進做前期工作。但系統(tǒng)應(yīng)用的潛力并不局限與此,比如在增加與被測信號相適應(yīng)的傳感器、采樣保持、濾波和隔離電路后系統(tǒng)可以方便的應(yīng)用于家庭醫(yī)療護理方面,可以用于對人體的心率、脈搏、體溫等參數(shù)的測試。在個人電腦逐步進入家庭的當(dāng)今,這樣的系統(tǒng)應(yīng)當(dāng)具有一定的應(yīng)用前景。第二章 USB概要設(shè)計 USB傳輸要件端點端點是USB設(shè)備的一個部分,所有的傳輸都是將端點作為發(fā)出點或者接收點。通常情況下,設(shè)備端點是一個內(nèi)存區(qū)域,或者是控制芯片的一個緩存器,端點的作用是數(shù)據(jù)緩存。每個USB設(shè)備有一個唯一的地址,這個地址是在設(shè)備連上主機時由主機分配的,而設(shè)備中的每個端點在設(shè)備內(nèi)部有唯一的端點號,這個端點號是在設(shè)備設(shè)計時被給定的。端點號可以是0—15,方向可以是IN(設(shè)備發(fā)送數(shù)據(jù)給主機)或者OUT(主機發(fā)送數(shù)據(jù)給設(shè)備)。每個設(shè)備必須將端點0設(shè)置為控制端點??刂贫它c是雙向傳輸數(shù)據(jù),其他端點都是單向數(shù)據(jù)傳輸。管道管道是設(shè)備端點和主機控制器之間的連接,在一個傳輸發(fā)生之前,必須首先建立一個管道。管道隨著主機和設(shè)備的連接的建立而建立,當(dāng)移除設(shè)備時,管道也跟著被移除。每一個設(shè)備都會和主機建立一個默認(rèn)的控制管道(Default Control Pipe),此管道使用端口0。不同的傳輸類型使用不同的管道,此外管道還可以被分為消息管道(Message Pipe)和流管道(Stream Pipe)消息管道是指具有某種USB定義格式的數(shù)據(jù)流,是雙向的管道;而流管道則是不具有USB定義格式的數(shù)據(jù)流,不具有雙向性??刂苽鬏斒俏ㄒ皇褂秒p向消息管道的傳輸,其他傳輸都是使用單方向的流管道。 事務(wù)、信息包和聯(lián)絡(luò)信號每一個USB傳輸包含一個或多個事務(wù),每一個事務(wù)又包含一到三個信息包。事務(wù)根據(jù)其數(shù)據(jù)流方向以及傳輸目的,可以分為3類:輸入、輸出與設(shè)置。每一個傳輸類型的傳輸包括一個或多個階段(Stage),一個階段即一種類型的事務(wù)。每個階段又可以分為一個或幾個相位(Phase),相位包含幾個或兩個事務(wù)信息包。信息包是一個區(qū)塊的固定格式信息,每個信息包由一個