【正文】
outportdata()函數(shù)。 A/D與單片機接口電路 圖35 ADC0809與89C51的接口電路、寫控制線來控制轉(zhuǎn)換器的模擬輸入通道地址鎖存、啟動和允許輸出。因為沒有使用DMA傳輸方式,所以沒有用到DMACK_N、EOT_N和DMREQ_N等DMA引腳。在突發(fā)模式DMA中,DMREQ器件中突發(fā)編程時一直保持有效。在該模式下,PDIUSBD12發(fā)出請求時開始傳輸,當字節(jié)計數(shù)器減少為零時終止。DMA傳輸:直接存儲器尋址(DMA)允許在主端點和本地共享存儲器間實現(xiàn)數(shù)據(jù)塊的有效傳輸。存儲器管理單元(MMU)和集成RAM:在以12MB/S的速率傳輸并與微控制器并口相連時,MMU和集成RAM作為USB之間速度差異和緩沖區(qū)。處于掛起狀態(tài)時,LED將會關(guān)閉。GoodLinkTM:GoodLinkTM技術(shù)可提供可提供良好的USB連接指示。這就允許系統(tǒng)微控制器在決定與USB建立連接之前完成初始化時序。PHILIPS串行接口引擎(PSIE):PSIE實現(xiàn)了全部的USB協(xié)議層,且完全由硬件實現(xiàn)而不需要固件的參與。電壓調(diào)整器:。集合所有這些特性都為系統(tǒng)顯著節(jié)約了成本,同時使USB功能在外設(shè)上的應(yīng)用變得容易。同樣地,PDIUSBD12理想地適用于許多外設(shè),例如:打印機、掃描儀、外部的存儲設(shè)備、Zip驅(qū)動器和數(shù)碼相機等等,它使得當前使用SCSI的系統(tǒng)可以立即降低成本。它還支持本地的DMA傳輸。 AT89C51AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。 (3)送通道的地址到A、B、C端口上。OE端控制輸出鎖存器的三態(tài)門。在時鐘脈沖頻率為640kHz時,START脈寬應(yīng)大于100ns200ns 。D7-D0為數(shù)字量輸出線。EOC為轉(zhuǎn)換結(jié)束信號。A,B和C為地址輸入線,用于選通IN0-IN7上的一路圖32 ADC0809的內(nèi)部邏輯結(jié)構(gòu)模擬量輸入。如果選擇了這種設(shè)計方按,那么必須再選擇一個微控制器芯片,這樣就增加了設(shè)備的體積。這些控制器芯片的優(yōu)點是開發(fā)者已經(jīng)熟悉了這些通用微控制器的結(jié)構(gòu)和指令集,所以開發(fā)起來救比較容易。從芯片大的構(gòu)架來分,市面上所有的USB控制器芯片可以分為不需要外接微控制器的芯片和需要外接微控制器的芯片。一旦存滿,串行接口引擎SIE立刻對數(shù)據(jù)進行處理,包括同步模式識別、并/串轉(zhuǎn)換、位填充/不填充、CRC校驗、PID確認、地址識別以及握手鑒定,處理完畢后數(shù)據(jù)由模擬收/發(fā)器通過D+、D發(fā)送至PC。協(xié)議引擎部分的主要作用是操作控制管道(端點0)的消息流、USB標準中相關(guān)內(nèi)容規(guī)定的最底層協(xié)議和數(shù)據(jù)接受與發(fā)送。本章為本設(shè)計下面內(nèi)容的展開奠定了基礎(chǔ)。bRequest表示USB設(shè)備請求值,標準請求有11個命令。但是只有類請求是不能滿足眾多USB廠商的需求的,所以,USB協(xié)議允許一個供應(yīng)商為它的設(shè)備自定義特殊的請求,此類請求稱為廠商請求。端點描述符由7個字節(jié)組成,分為6個字段。接口描述符由9個字節(jié)組成,分為9個字段。當主機請求獲取一個配置描述符的時候,與配置描述符相關(guān)的所有接口、端點描述符都會一并返回。各個描述符的樹狀結(jié)構(gòu)如圖25所示:圖25 描述符的樹狀結(jié)構(gòu)設(shè)備描述符描述了一個USB設(shè)備的總體信息,它在枚舉過程中主機從設(shè)備讀取的第一個描述符。不同的描述符從不同的層級來表示設(shè)備的屬性。⑧ 掛起為了節(jié)省電源,當總線保持空閑狀態(tài)超過3ms以后,設(shè)備驅(qū)動程序就會進入掛起狀態(tài),在掛起狀態(tài)時,設(shè)備的消耗電流不超過500181。④ 設(shè)備默認狀態(tài)設(shè)備收到一個復位信號后,連接到主機的所有設(shè)備的地址為默認地址(00H),主機會首先發(fā)送一個獲取設(shè)備描述符的請求,設(shè)備通過這個默認地址向主機發(fā)送第一次設(shè)備描述符。這個過程即稱為USB的總線枚舉。USB總線枚舉過程中,USB設(shè)備需要經(jīng)歷后4種狀態(tài)。中斷傳輸必須在指定的時間內(nèi)完成,它一般應(yīng)用于鼠標、鍵盤、游戲桿等HID(Human Interface Device)類設(shè)備以及集線器的狀態(tài)報表中。任何剩下的數(shù)據(jù)都作為剩余在最后的事務(wù)中被發(fā)送??刂苽鬏?shù)脑O(shè)置事務(wù)傳輸結(jié)構(gòu)如圖21所示:圖21 控制傳輸結(jié)構(gòu)示意圖控制傳送的數(shù)據(jù)階段,由一個以上的輸入或輸出事務(wù)構(gòu)成,遵守和批處理傳送相同的協(xié)議規(guī)則。 USB的傳輸結(jié)構(gòu)USB的傳輸結(jié)構(gòu)描述的是各個類型USB傳輸?shù)臅r序、數(shù)據(jù)包和特征。③STALL:表示3種意義,即不支持的控制要求、控制要求失敗或端點失敗。在控制傳輸、批量傳輸和中斷傳輸中都有一個相位是聯(lián)絡(luò)數(shù)據(jù)包,它包含的是聯(lián)絡(luò)信息。每一個傳輸類型的傳輸包括一個或多個階段(Stage),一個階段即一種類型的事務(wù)。不同的傳輸類型使用不同的管道,此外管道還可以被分為消息管道(Message Pipe)和流管道(Stream Pipe)消息管道是指具有某種USB定義格式的數(shù)據(jù)流,是雙向的管道;而流管道則是不具有USB定義格式的數(shù)據(jù)流,不具有雙向性。控制端點是雙向傳輸數(shù)據(jù),其他端點都是單向數(shù)據(jù)傳輸。通常情況下,設(shè)備端點是一個內(nèi)存區(qū)域,或者是控制芯片的一個緩存器,端點的作用是數(shù)據(jù)緩存。 該數(shù)據(jù)采集系統(tǒng)的目的在于為實驗室現(xiàn)有的一套頻率特性測試儀的改進做前期工作。以圖形的方式動態(tài)的顯示采樣數(shù)據(jù)。此外還包括控制ADC0809芯片完成對模擬信號的轉(zhuǎn)換代碼,以及USB設(shè)備所需各種描述符的定義。采用常用的AT89C51作為系統(tǒng)的CPU: ADC0809芯片作為AD轉(zhuǎn)換芯片。但隨著操作系統(tǒng)、硬件廠商對USB的進一步支持,其在PC外設(shè)方面的將大有可為。用戶可以直接使用這個總線電源。5. 使用靈活:USB支持三種類型的傳輸速率,、12Mb/s的全速傳輸和480Mb/s的高速傳輸。并加載適合的驅(qū)動程序。與其他的老式PC機接口相比,USB具有如下優(yōu)點:1. 熱插拔:用戶可以把USB外設(shè)連接到一臺正在運行的PC機上,操作系統(tǒng)能自動識別,并且用戶可以立即使用,而不需要重新啟動。 USB串行總線優(yōu)勢通用串行總線USB( UniversalS erialB us)是1995年康柏、微軟、IBM,D EC等公司為解決傳統(tǒng)總線不足而推廣的一種新型的通信標準。并為后續(xù)的使用USB總線對實驗室現(xiàn)有的“頻率特性測試系統(tǒng)”改進作前期準備工作。價格昂貴。其中控制器一般采用通用的單片機,包括4位、8位、16位以至32位的各類單片機。USB通訊技術(shù)的出現(xiàn),使高傳輸速度、強糾錯能力、易擴展性、方便的即插即用,有機的結(jié)合在一起?,F(xiàn)在通用的數(shù)據(jù)采集卡一般多是利用微機機箱內(nèi)的PCI插槽或ISA插槽進行擴展。該系統(tǒng)用傳統(tǒng)的USB總線取代了RS232串行總線,通過對USB協(xié)議和設(shè)備構(gòu)架的充分理解,對以單片機89C51和USB接口芯片D12為主的數(shù)據(jù)采集系統(tǒng)進行了硬件設(shè)計和軟件編程,并在此設(shè)計的基礎(chǔ)上給出相應(yīng)的原理圖。二是為用戶提供的以動態(tài)鏈接庫形式封裝的功能函數(shù)。本論文所闡述的數(shù)據(jù)采集系統(tǒng)采用了集成了微處理器的USB接口芯片PDIUSBDI2來完成采樣控制并與PC機應(yīng)用程序完成系統(tǒng)通信功能,由應(yīng)用程序完成用戶命令及數(shù)據(jù)的顯示。隨著用戶對數(shù)據(jù)采集系統(tǒng)要求的不斷提高,USB接口以其簡單易用、速度快而被廣大用戶所接受。軟件編程主要分為三部分:一是為滿足獲得最大傳輸速率和運行效率的固件程序編程。關(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機進行分析、顯示和存盤。 課題背景現(xiàn)代工業(yè)生產(chǎn)和科學研究對數(shù)據(jù)采集的要求日益普遍,在瞬態(tài)信號測量、圖像處理等一些測量中,都需要進行數(shù)據(jù)采集。過去人們單純追求計算機與外設(shè)之間的傳輸速度,現(xiàn)在糾錯能力和操作安裝的簡易性也成為人們關(guān)注的目標。 課題的提出對于數(shù)據(jù)采集系統(tǒng)而言有兩個關(guān)鍵性問題:一是控制A/D轉(zhuǎn)換和數(shù)據(jù)傳輸?shù)目刂破?,一是采集系統(tǒng)與上位機PC的傳輸方式。 對于數(shù)據(jù)采集系統(tǒng)與上位機的通訊方式,現(xiàn)行的常用方式是利用PC機箱內(nèi)的PCI, ISA插槽進行擴展:其傳輸速度分別為132M/S. 16M/S、但是由于PC機接口資源有限,且需要對接口卡硬件資源進行合理配置,故其存在以下缺點:安裝麻煩。本課題旨在使用新型的通用串行總線USB完成數(shù)據(jù)采集系統(tǒng)的構(gòu)架,充分發(fā)揮USB總線接口簡潔、使用方便的優(yōu)勢。采用的操作系統(tǒng)平臺為Windows 200。USB從傳統(tǒng)I/O模式的栓桔中解放出來,開辟了一條外設(shè)同PC機連接的方法。當USB外設(shè)接入PC時,操作系統(tǒng)會自動檢測到這個連接。:和其它老式的PC接口相比,USB接口小且薄,更適合于外設(shè)體積的小型化。6. 提供電源:USB電纜向外設(shè)提供一根+5V的電源線,電流的大小取決于集線器端口。USB總線協(xié)議復雜等。硬件方面 ,該系統(tǒng)使用Philips公司的PDIUSBD12芯片作為設(shè)備的USB接口芯片。固件中主要完成對USB協(xié)議規(guī)定的諸多標準請求以及用戶自定義請求的響應(yīng)。系統(tǒng)用戶應(yīng)用程序界面模仿傳統(tǒng)示波器的外形。為用戶使用該種型號的USB接口芯片進行設(shè)備開發(fā)提供一個基礎(chǔ)和工作平臺。第二章 USB概要設(shè)計 USB傳輸要件端點端點是USB設(shè)備的一個部分,所有的傳輸都是將端點作為發(fā)出點或者接收點。每個設(shè)備必須將端點0設(shè)置為控制端點。每一個設(shè)備都會和主機建立一個默認的控制管道(Default Control Pipe),此管道使用端口0。事務(wù)根據(jù)其數(shù)據(jù)流方向以及傳輸目的,可以分為3類:輸入、輸出與設(shè)置。根據(jù)事務(wù)種類的不同,PID后面可能有端點地址、數(shù)據(jù)、狀態(tài)信息,或者是一個在幀號碼、錯誤校驗位。②NAK(Negative Acknowledge):表示設(shè)備在忙中。ERR只有在高速集線器完成事務(wù)分割時才會使用。每一個控制傳輸都必須有設(shè)置與狀態(tài)階段,數(shù)據(jù)階段則是選擇性的。如果數(shù)據(jù)的數(shù)量超過了先前確定的數(shù)據(jù)包的大小,數(shù)據(jù)在支持最大的包大小的多個事務(wù)中被發(fā)送(輸入或輸出)。批量傳輸?shù)膫鬏斀Y(jié)構(gòu)如圖22所示:圖22 批量傳輸結(jié)構(gòu)示意圖中斷傳輸中斷傳輸適用于小批量的、點式、非連續(xù)的數(shù)據(jù)傳輸應(yīng)用的場合。同步傳輸?shù)膫鬏斀Y(jié)構(gòu)如圖24所示:圖24 同步傳輸結(jié)構(gòu)示意圖 USB總線枚舉過程USB規(guī)范定義的設(shè)備狀態(tài)總共有6個,分別是連接(Attached)、上電(Powered)、默認(Default)、地址(Address)、配置(Configured)和掛起(Suspend)。之后,主機會通過此通道向設(shè)備發(fā)送一系列的標準USB 請求以獲取所需的信息,設(shè)備必須響應(yīng)這些請求并且采取適當?shù)膭幼?。?主機檢測到設(shè)備,進行復位設(shè)備連接到總線后,主機通過檢測設(shè)備在差分信號線的上拉電阻檢測到有新的設(shè)備連接,并獲釋該設(shè)備是全速設(shè)備還是低速設(shè)備,如果上拉電阻與D+線相連,則為全速設(shè)備,如果上拉電阻與D-線相連,則為低速設(shè)備,主機確認有設(shè)備連接后,向該端口發(fā)送一個復位信號。⑦ 設(shè)備配置主機依照讀取的USB設(shè)備描述符來進行配置,