基于USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第1頁
基于USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第2頁
基于USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第3頁
基于USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第4頁
基于USB數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、基于基于 USBUSB 的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì) 摘摘 要要:本文針對高速數(shù)據(jù)采集器的需要,設(shè)計(jì)了基于 USB 的數(shù)據(jù)采集器。設(shè)計(jì)工作 包括硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分,硬件部分本系統(tǒng)選用了 ATMEL 公司的單片機(jī) AT89C5131 作 為微控制器,負(fù)責(zé)接收由 A/D 轉(zhuǎn)換得到的數(shù)字量數(shù)據(jù),并通過其內(nèi)置的 USB 控制器實(shí)現(xiàn)單片 機(jī)和 PC 機(jī)之間的 USB 數(shù)據(jù)通信。AT89C5131 是 ATMEL 公司推出一款新型帶有 USB 微控制器 的芯片。有較快的處理速度和較大的存儲容量,有在系統(tǒng)可編程的功能,是 USB 接口設(shè)計(jì)的理 想選擇。 關(guān)鍵詞:關(guān)鍵詞:數(shù)據(jù)采集,USB,A/D

2、,AT89C5131, Abstract: In this paper, the need for high-speed data acquisition system designed USB-based data acquisition. Design, including hardware design and software design in two parts, hardware parts of the system selected as the ATMEL Corporation AT89C5131 microcontroller microcontroller to re

3、ceive the A / D conversion by the digital data, and through its built-in USB Controller Between the microcontroller and PC, USB data communication. ATMEL AT89C5131 is a new company launched with a USB micro-controller chip. A faster processing speed and large storage capacity, there is in-system pro

4、grammable functions, is ideal for USB interface design. Keywords: data acquisition,USB,A/ D, AT89C51, LED 目錄目錄 1 1 前言前言1 2 2 整體方案設(shè)計(jì)整體方案設(shè)計(jì)2 2.1 方案比較2 2.2 方案選擇3 3 3 單元模塊設(shè)計(jì)單元模塊設(shè)計(jì)3 3.1 元器件選擇3 3.2 特殊元器件介紹3 3.2.1AT89C5131 介紹3 3.2.2 ADC0809 介紹4 3.3 單元模塊功能介紹5 3.3.1 AT89C5131USB 接口電路5 3.3.2A/D 轉(zhuǎn)換接口電路6 3.3.3

5、外接存儲器接口電路 9 3.3.4 系統(tǒng)外圍電路模塊 11 4 4 軟件設(shè)計(jì)軟件設(shè)計(jì)11 4.1 固件程序設(shè)計(jì)11 4.2USB 設(shè)備驅(qū)動程序設(shè)計(jì)13 5 5 結(jié)論結(jié)論14 參考文獻(xiàn)參考文獻(xiàn)15 附錄 1:電路總圖16 1 前言前言 現(xiàn)代工業(yè)生產(chǎn)領(lǐng)域和科學(xué)研究中往往都需要采集數(shù)據(jù),并對采集到的數(shù)據(jù)進(jìn)行分析和處 理。隨著科技的發(fā)展特別是計(jì)算機(jī)技術(shù)的逐漸成熟,數(shù)據(jù)采集器的應(yīng)用已經(jīng)非常廣泛,同時 對于數(shù)據(jù)采集的要求也越來越高,特別是在一些高實(shí)時性要求(如動態(tài)圖像數(shù)據(jù)實(shí)時傳輸) 的場合,往往需要進(jìn)行高速數(shù)據(jù)采集才能保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。在數(shù)據(jù)采集系統(tǒng)得到廣泛 運(yùn)用中大多采用 RS232 接口,它不適合

6、于便攜式應(yīng)用場合。 USB(通用串行總線,Universal Serial Bus)近年來開始在計(jì)算機(jī)外設(shè)中得到普及, 并逐漸成為計(jì)算機(jī)標(biāo)準(zhǔn)外設(shè),它的出現(xiàn)使傳統(tǒng)數(shù)據(jù)采集的問題可以得到很好的解決。相對于 傳統(tǒng)的串行、并行接口,USB 的優(yōu)勢在于:即插即用,支持熱插拔;傳輸速度快,USB2.0 提 供最高達(dá) 480Mbps 的傳輸率;最多可連接 127 個設(shè)備;電源可從計(jì)算機(jī)或集線器獲得,不需 要外加電源。USB 設(shè)備在 PC 領(lǐng)域的應(yīng)用目前已經(jīng)非常普遍,如 USB 數(shù)碼照相機(jī)、USB 攝像頭、 USB 打印機(jī)等;而考慮到 USB 的各種優(yōu)勢,基于 USB 總線的數(shù)據(jù)采集器也正逐漸成為工控領(lǐng) 域的

7、應(yīng)用熱點(diǎn)。目前國內(nèi)外都已開發(fā)出了一些成熟的 USB 數(shù)據(jù)采集設(shè)備產(chǎn)品,可見基于 USB 的數(shù)據(jù)采集器具有廣闊的應(yīng)用前景,因此本課題的研究具有現(xiàn)實(shí)意義。 本文針對高速數(shù)據(jù)采集器的需要,設(shè)計(jì)了基于 USB 的數(shù)據(jù)采集器。設(shè)計(jì)工作包括硬件設(shè) 計(jì)和軟件設(shè)計(jì)兩部分,硬件部分本系統(tǒng)選用了 ATMEL 公司的單片機(jī) AT89C5131 作為微控制器, 負(fù)責(zé)接收由 A/D 轉(zhuǎn)換得到的數(shù)字量數(shù)據(jù),并通過其內(nèi)置的 USB 控制器實(shí)現(xiàn)單片機(jī)和 PC 機(jī)之 間的 USB 數(shù)據(jù)通信。AT89C5131 是 ATMEL 公司推出一款新型帶有 USB 微控制器的芯片。有較 快的處理速度和較大的存儲容量,有在系統(tǒng)可編程的功能

8、,是 USB 接口設(shè)計(jì)的理想選擇。 2 2 整體方案設(shè)計(jì)整體方案設(shè)計(jì) 2.12.1 方案比較方案比較 方案一: USB 傳輸?shù)闹饕攸c(diǎn)是傳輸速度快,因此 USB 數(shù)據(jù)采集系統(tǒng)主要是應(yīng)用于大 量數(shù)據(jù)的高速采集。實(shí)際應(yīng)用中,往往同時需要對多個外設(shè)的多路數(shù)據(jù)進(jìn)行采集,因而對數(shù) 據(jù)傳輸?shù)膶?shí)時性要求較高,USB2.0 的出現(xiàn)使這種高速數(shù)據(jù)傳輸已成為可能。本系統(tǒng)在實(shí)際 應(yīng)用中的硬件設(shè)計(jì)框圖如圖 1 所示。 系統(tǒng)中外設(shè) 1外設(shè) n 具有多路數(shù)據(jù)需要進(jìn)行同步采集(數(shù)據(jù)信號可能包括電壓、電流、 聲音、圖像等各種模擬信號) ,因而需要選用能對多路數(shù)據(jù)進(jìn)行同步采樣的 A/D 轉(zhuǎn)換器將這 些模擬信號轉(zhuǎn)換為數(shù)字信號。該

9、芯片能對最多 8 路模擬輸入信號進(jìn)行同步 A/D 轉(zhuǎn)換,且分辨 率達(dá)到 14 位,完全能滿足對多路數(shù)據(jù)同步采集的要求。轉(zhuǎn)換得到的數(shù)據(jù)送入主控制器,再 通過 USB 控制器芯片使這些數(shù)據(jù)可通過 USB2.0 的高速傳輸送到 PC 機(jī)中??刂破餍酒蛇x擇 位數(shù)較高(16 位/32 位)的 MCU/DSP,從而能滿足多路并行數(shù)據(jù)的輸入。 在此方案中 USB 控制芯片選用 AT89C5131 單片機(jī)芯片,它是 ATMEL 公司的。AT89C5131 為內(nèi)置 USB 控制器的 8 位單片機(jī),定位于計(jì)算機(jī)和工業(yè) USB 系統(tǒng)中 圖 1 硬件設(shè)計(jì)框圖 方案二:基于 USB 接口的數(shù)據(jù)采集系統(tǒng)硬件部分由多路開

10、關(guān)、A/D 轉(zhuǎn)換器、微控制器、 USB 接口芯片、主機(jī)組成。運(yùn)用的芯片為 AT89C52。系統(tǒng)中的多路開關(guān)和 A/D 采用傳統(tǒng)方法 設(shè)計(jì),微控制器和 USB 接口芯片分別采用 ATMEL 的 AT89C52 和 Philips 公司的 PDUSBD12 實(shí) 現(xiàn). AT89C52 的 ALE 和 D12 的 ALE 相接,表示采用單獨(dú)地址和數(shù)據(jù)總線配置。USB 設(shè)備固件 程序采用單片機(jī) C 語言來寫,用戶通過主機(jī)應(yīng)用程序調(diào)用 Windows API 函數(shù),將請求下發(fā)到 驅(qū)動程序,由驅(qū)動程序構(gòu)造 USB,通過 USBD 類,下發(fā)到微控制器。微控制器根據(jù) USB 接口芯片 觸發(fā)的中斷類型和用戶傳來的

11、命令,進(jìn)入到相應(yīng)的中斷服務(wù)程序進(jìn)行數(shù)據(jù)采集。經(jīng)過 A/D 轉(zhuǎn) 換后再重新打包由 USB 接口芯片通過 USB 接口發(fā)送給主機(jī) ,從而完成整個采集過程.。 外設(shè) 1 外設(shè) 2 外設(shè) 3 。 。 。 。 。 。 外設(shè) n 多通道同步采樣 A/D 芯片 多 路 輸 入 信 號 USB 數(shù)據(jù)采集主控制器 (MCU/DSP 等) USB 控 制器芯片 USB2.0 2.22.2 方案選擇方案選擇 兩方案的不同在于方案一選用的 USB 控制芯片為 AT89C5131,方案二選用的 USB 控制 芯片為 AT89C52。方案一的軟件設(shè)計(jì)包括固件設(shè)計(jì)、USB 初始化、中斷處理程序、請求處理 程序、配置請求、A

12、/D 轉(zhuǎn)換數(shù)據(jù)程序、USBDI 與 USB 驅(qū)動程序等模塊組成。方案二的軟件設(shè) 計(jì)流程圖如圖 2 所示。 圖 2 方案二軟件流程圖 在本次課程設(shè)計(jì)中我們選用的是方案一,用 AT89C5131 為 USB 的控制芯片。選用此方案 主要是由于 AT89C5131 為一款我們不太熟悉的 51 系列單片機(jī),我們可以通過這次課程設(shè)計(jì) 來學(xué)習(xí)一下,接受更多的知識。 3 單元模塊設(shè)計(jì)單元模塊設(shè)計(jì) 3.13.1 元器件選擇元器件選擇 在本次設(shè)計(jì)中我們選用的 USB 控制芯片為 AT89C5131,除此之外還要用到 ADC0809、74HC393、非門芯片 74LS00、反相器芯片 74LS04、AT28C64

13、、74HC573 這些器件。 3.23.2 特殊元器件介紹特殊元器件介紹 3.2.1AT89C51313.2.1AT89C5131 介紹介紹 AT89C5131 是 ATMEL 公司的一款帶 USB 控制器的 8 位閃存單片機(jī)。 下面對 AT89C5131 單片機(jī)的主要管腳進(jìn)行介紹其引腳分布圖如圖 3 所示: P0、P1、P2、P3 和 P4 口是 I/O 信號引腳。P0 口可作為地址/數(shù)據(jù)復(fù)用總線,作為地址 總線時,P0.0P0.7 上為低 8 位地址;P1.0P1.7 則與鍵盤接口信號 KIN0KIN7 復(fù)用,同 數(shù) 據(jù) 采 集 系 統(tǒng) WDM 驅(qū)動設(shè)備數(shù)據(jù)分析處理 用戶控制界面 USB

14、設(shè)備 開始 或停 數(shù)據(jù)顯示 表 格 曲 線 數(shù) 據(jù) 查 詢 數(shù) 據(jù) 打 印 時 P1.0 和 P1.1 又與 T2 和 T2EX 復(fù)用,P1.2 則與可編程計(jì)數(shù)器隊(duì)列的外部時鐘輸入 ECI 復(fù) 用,P1.3P1.7 與捕獲外部信號輸入或比較外部信號輸出 CEX0CEX4 復(fù)用。P2 口也可以作 為地址線,此時 P2.0P2.7 上輸出高 8 位地址。P3 口各引腳均具有第二功能,P3.0 和 P3.1 與串行信號接口 RXD 和 TXD 復(fù)用,P3.2 和 P3.3 與外部觸發(fā)脈沖 0INT 和 1INT 復(fù)用,P3.4 和 P3.5 與定時器/計(jì)數(shù)器 T0 和 T1 復(fù)用,P3.6 和 P3

15、.7 則與寫信號WR和讀信號RD復(fù)用;另 外 P3.3P3.7 還與驅(qū)動 LED 輸出引腳 LED0LED3 復(fù)用。P4.0P4.1 分別與 TWI 串行時鐘 SCL 和 TWI 串行數(shù)據(jù) SDA 復(fù)用。 D+和 D分別是 USB 總線正信號 I/O 引腳和負(fù)信號 I/O 引腳。本系統(tǒng)中利用 D+和 D兩 個引腳與 USB 端口的兩根數(shù)據(jù)線 D+和 D相連,從而實(shí)現(xiàn) USB 數(shù)據(jù)通信。 RST 是單片機(jī)復(fù)位信號引腳,ALE 是地址鎖存使能信號引腳,只有當(dāng)讀寫外部程序存儲 器和使用 MOVX 指令時該引腳信號有效。Error!Error!引腳接高電平時芯片是從內(nèi)部存儲器尋址的, 必須接低電平才能

16、使芯片從外部程序存儲器起始地址 0000h 開始尋址。 圖 3 AT89C5131 引腳分布圖 3.2.23.2.2 ADC0809ADC0809 介紹介紹 ADC0809 采用 28 腳雙列直插式封裝,其引腳功能說明如下: IN0IN7:8 路輸入通道的模擬量輸入端口。 START、ALE:START 為 A/D 轉(zhuǎn)換啟動控制端口,ALE 為地址鎖存控制信號端口。這兩個 端口可連在一起,通過軟件輸入一個正脈沖即可啟動 A/D 轉(zhuǎn)換。EOC、OE:EOC 為轉(zhuǎn)換結(jié)束 信號脈沖輸出端口,OE 為輸出允許控制端口。這兩個端口也可連在一起,表示 A/D 轉(zhuǎn)換結(jié) 束。當(dāng) OE 端的電平由低變高,打開三

17、態(tài)輸出鎖存器,將轉(zhuǎn)換得到的數(shù)字量輸出到數(shù)據(jù)總線 上。 VREF()、VREF()、VCC、GND:VREF()和 VREF()為參考電壓輸入端;VCC 為主電 源輸入端,GND 為接地端。一般 VREF()與 VCC 連接在一起,VREF()與 GND 連接在一起。 CLK:時鐘輸入端。 ADD A、ADD B、ADD C:8 路模擬開關(guān)的 3 位地址選通輸入端,用來選擇對應(yīng)的輸入通 道。ADC0809 的工作時序如圖 8 所示。其中 tWE 為最小 ALE 脈寬,典型值 100ns;tD 為模擬 開關(guān)延時,典型值:1 s;tWS 為最小啟動脈寬,典型值:100ns;tEOC 為轉(zhuǎn)換結(jié)束延時,

18、 最大為 8 個時鐘周期:2 s;tC 為轉(zhuǎn)換時間,典型值:100 s。 圖 4 ADC0809 工作時序 由圖 4 可看出,當(dāng)送入啟動信號 START 后,EOC 有一段時間保持高電平,表示上一 次 A/D 轉(zhuǎn)換結(jié)束,在實(shí)際應(yīng)用中容易引起誤控。因此,啟動轉(zhuǎn)換后在軟件上應(yīng)延遲一段時間 (大于 tEOC)之后再進(jìn)行查詢或開中斷。 3.33.3 單元模塊功能介紹單元模塊功能介紹 此系統(tǒng)設(shè)計(jì)包括的單元模塊有 AT89C5131USB 接口電路、A/D 轉(zhuǎn)換電路、外接存儲接口 電路、系統(tǒng)外圍電路等。 3.3.13.3.1 AT89C5131USBAT89C5131USB 接口電路接口電路 AT89C5

19、131 單片機(jī)具有 USB 接口功能,因而可直接與 USB 端口連接,通過 USB 總線與 PC 機(jī)通信。具體 USB 接口電路如圖 5 所示。AT89C5131 的 USB 總線正信號 I/O 引腳 D+和負(fù)信號 I/O 引腳 D分別與 USB 端口 J1 的兩根數(shù)據(jù)線 D+和 D相連(電阻 R2 和 R3 為可選電阻) , 再通過 USB 連接線即可與 PC 機(jī)的 USB 接口相連進(jìn)行通信。USB 總線參考電壓引腳 VREF 通過 1.5K 的電阻 R1 與 D+相連,從而可以實(shí)現(xiàn)軟件斷開功能。本系統(tǒng)中 PC 機(jī)作為 USB 主機(jī), 而 AT89C5131 作為 USB 設(shè)備,因而 D+和

20、 D無需連接下拉電阻。單片機(jī)的模擬地引腳 AVSS 和數(shù)字地引腳 VSS 均接地;而模擬電源引腳 AVDD 和數(shù)字電源引腳則連接正電源 VCC,給單 片機(jī)提供工作所需電源。 圖 5 中還給出了一些其他相關(guān)引腳的連接:UCAP 引腳與一個外部電容連接來給 USB 提 供電源。PLLF 引腳作為 PLL(鎖相環(huán))低通濾波器的輸入引腳,需要與一個 RC 網(wǎng)絡(luò)(圖中 為 R5 和 C3)構(gòu)成的低通濾波器相連。XTAL1 和 XTAL2 則分別作為反饋元件的片外石英晶體 Y1 及電容 C4 和 C5 一起構(gòu)成一個自激振蕩器,產(chǎn)生單片機(jī)工作所需的時鐘信號。 圖 5 3.3.23.3.2 A/DA/D 轉(zhuǎn)換

21、接口電路轉(zhuǎn)換接口電路 多路輸入信號需通過 A/D 轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號才能進(jìn)入單片機(jī),本系統(tǒng)選擇的 A/D 轉(zhuǎn) 換器是 8 位逐次逼近式 A/D 轉(zhuǎn)換器 ADC0809。該 A/D 轉(zhuǎn)換器是一種單片 CMOS 器件,包括 8 位模/數(shù)轉(zhuǎn)換器、8 通道多路轉(zhuǎn)換器和與微處理器兼容的控制邏輯。ADC0809 片內(nèi)帶有鎖存功 能的 8 路模擬多路開關(guān),可對 8 路 05V 輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換。A/D 轉(zhuǎn)換接口電 路如圖 6 所示。單片機(jī)的 P0 口可分時輸出低 8 位地址和數(shù)據(jù),為了把地址信息分離出來保 存,需外加地址鎖存器(圖中為 74HC373) ,并由單片機(jī)的地址鎖存允許信號 ALE

22、的下降沿 將地址信息鎖存到地址鎖存器中。經(jīng)鎖存器鎖存后的低三位地址 Q0Q2 分別與 ADC0809 的地 址譯碼引腳 ADDAADDC 連接,以選通 IN0IN7 中的一個通道。ADC0809 與單片機(jī)數(shù)據(jù)總線 P0.0P0.7 相連。 ADC0809 片內(nèi)無時鐘,圖 6 中利用雙 4 位二進(jìn)制計(jì)數(shù)器 74HC393 給 ADC 提供時鐘輸入。 單片機(jī)的 ALE 引腳與 74HC393 的時鐘輸入端 CLK 相連,計(jì)數(shù)器的一路輸出 Q1 與 ADC0809 的 時鐘輸入端 CLOCK 相連,ALE 引腳的時鐘頻率經(jīng) 74HC393 二分頻后提供給 ADC0809 作為時鐘 信號。 單片機(jī) P

23、2.7 引腳作為 ADC0809 的片選信號。圖 6 中使用了 4 與非門芯片 74ALS00 和 6 反相器芯片 74ALS04 來控制 ADC0809 的啟動和輸出轉(zhuǎn)換數(shù)據(jù)。當(dāng) P2.71,WR(P3.6)=0 時, 74ALS04 的 6 號腳輸出為高電平,將其與 ADC0809 的轉(zhuǎn)換啟動端口 START 和地址鎖存端口 ALE 連接,在鎖存通道地址的同時啟動 A/D 轉(zhuǎn)換。當(dāng) P2.7=1,RD(P3.7)=0 時,74ALS04 的 8 號腳輸出為高電平,將其與 ADC0809 的輸出允許引腳 OE 相連,從而允許將轉(zhuǎn)換得到的 數(shù)字量數(shù)據(jù)輸出到數(shù)據(jù)總線上。ADC0809 的正參考電

24、壓輸入端 VREF()和主電源輸入端 VCC 都接5V 電源,而負(fù)參考電壓輸入端 VREF()和接地端 GND 均接地。 圖 6 3.3.33.3.3 外接存儲器接口電路外接存儲器接口電路 AT28C64 與單片機(jī) AT89C5131 的連接電如圖 7 所示。單片機(jī) P0 口輸出的地址信息經(jīng)地 址鎖存器 74HC373 鎖存后送入存儲器 AT28C64 的低 8 位地址線 A0A7;同時 P0 口又 AT28C64 的數(shù)據(jù)線 I/O0I/O7 相連,可分時輸出存儲的數(shù)據(jù)。單片機(jī)的 P2 口作為高位地址線,由于 P2 口輸出具有鎖存的功能,因此不必加地址鎖存器,可直接與 AT28C64 的高 5

25、 位地址線 A8A12 相連。 單片機(jī)PSEN引腳與 AT28C64 的片選端CE和輸出允許端OE相連,從而選中外部存儲器 并允許從中讀取程序指令。單片機(jī)的EA接低電平,使單片機(jī)執(zhí)行外部程序程序存儲器中的 程序。 換圖 7 外接存儲器接口電路 3.3.43.3.4 系統(tǒng)外圍電路模塊系統(tǒng)外圍電路模塊 系統(tǒng)的外圍電路包括:電源電路、復(fù)位電路、時鐘產(chǎn)生電路、PLL 配置電路。 (1)電源電路。本系統(tǒng)中所有器件均可使用+5V 電源電壓,本系統(tǒng)未使用外部電源, 直接利用 USB 總線供電。 (2)復(fù)位電路。單片機(jī) AT89C5131 的RST引腳是復(fù)位信號輸入引腳,本設(shè)計(jì)采用手動 復(fù)位方式,通過按鍵 S

26、1 來進(jìn)行復(fù)位操作,復(fù)位電路如圖 8 所示。 (3)時鐘產(chǎn)生電路。單片機(jī) AT89C5131 的時鐘發(fā)生器包括一個內(nèi)部振蕩器和一個鎖相 環(huán)(PLL) ,所有外部設(shè)備以及 CPU 的內(nèi)核工作所需的時鐘信號都是由時鐘發(fā)生器產(chǎn)生的。外 接晶振的頻率本系統(tǒng)選擇 12MHz;兩個電容則通常選擇 20pF30pF 左右。 (4)PLL 配置電路。AT89C5131 的鎖相環(huán)(PLL)是用來產(chǎn)生和外部低頻時鐘(外圍設(shè) 備時鐘)同步的內(nèi)部高頻時鐘(USB 時鐘)的,即 USB 接口所需的時鐘信號是由 PLL 產(chǎn)生的。 PLL 的內(nèi)部結(jié)構(gòu)如圖 6 所示,可以看出是一個閉環(huán)結(jié)構(gòu)。其中 N3:0 和 R3:0 均位

27、于 PLLDIV 寄存器,各為 4 位。內(nèi)部振蕩器的參考時鐘經(jīng)過 N 分頻和反饋回來的 USB 時鐘經(jīng)過 R 分頻進(jìn) 入 PFLD 進(jìn)行比較并產(chǎn)生合適的輸出信號。PLLCON 寄存器的 PLLEN 位用來使能時鐘信號的產(chǎn) 生;而當(dāng) PLL 被鎖定時,PLLCON 寄存器的 PLOCK 位則會被置位,此時輸出的時鐘信號才是 穩(wěn)定的信號。PLLF 是 PLL 的低通濾波器連接引腳,需要與一個 RC 網(wǎng)絡(luò)相連接,電路連接如 圖 8 所示。 Osc Clock USB Rdivider Down UP PLLF Ndivider PLLCON.1 PLLEN N3:0PFLDCHPVCO R3:0 P

28、LOCK 圖 8 PLL 結(jié)構(gòu)內(nèi)部結(jié)構(gòu)框圖 4 軟件設(shè)計(jì)軟件設(shè)計(jì) 本系統(tǒng)在軟件設(shè)計(jì)上主要包括兩部分:固件程序設(shè)計(jì)、USB 設(shè)備驅(qū)動程序設(shè)計(jì),以下將 分別進(jìn)行介紹。 4.14.1 固件程序設(shè)計(jì)固件程序設(shè)計(jì) 固件是整個 USB 數(shù)據(jù)采集系統(tǒng)中設(shè)備程序設(shè)計(jì)的重要部分,固件程序的主要功能是讓主 機(jī)(PC 機(jī))可以檢測和識別 USB 設(shè)備,一般包括兩項(xiàng)任務(wù):(1)實(shí)現(xiàn)設(shè)備配置并將配置信 息告知主機(jī),為主機(jī)和設(shè)備之間的通信做好準(zhǔn)備;(2)根據(jù)用戶的特定需求,實(shí)現(xiàn)對外圍 設(shè)備的具體控制。固件程序設(shè)計(jì)流程圖如圖 9 所示 Clock N N Y 啟動 A/D 轉(zhuǎn) 換 讀取數(shù)據(jù) N 轉(zhuǎn)換結(jié)束? Y 發(fā)送數(shù)據(jù)給主

29、機(jī) 中斷程序 開始 初始化 設(shè)備枚舉 啟動采樣? 設(shè)置采樣頻率 上電復(fù)位 選擇采樣通道 數(shù)據(jù)采集 結(jié)? 圖 9 固件程序流程圖 由圖可知固件設(shè)計(jì)包括以下幾個方面:(1)系統(tǒng)上電復(fù)位和初始化。首先通過調(diào)用 USB 初始化函數(shù) usb task_init()完成 USB 控制器的使能、PLL 時鐘的配置、控制端點(diǎn) 0 的 復(fù)位以及其它狀態(tài)變量的初始化;再通過調(diào)用端點(diǎn)使能函數(shù) usb_ep_init()完成系統(tǒng)使用的 USB 端點(diǎn)的配置和復(fù)位。 (2)USB 設(shè)備的枚舉。USB 控制器和 USB 端點(diǎn)完成初始化工作后,固件就會開始對設(shè)備 的枚舉過程;當(dāng)端點(diǎn) 0 收到 SETUP 包后,就可以調(diào)用枚舉

30、函數(shù) usb_enumeration_process() 完成對 USB 設(shè)備的枚舉,從而主機(jī)可獲得設(shè)備的配置信息并對設(shè)備進(jìn)行配置和分配地址。 (3)數(shù)據(jù)采集過程。當(dāng)配置的 OUT 端點(diǎn)收到主機(jī)發(fā)出的數(shù)據(jù)采集指令后,先設(shè)置好采 樣頻率并選擇采樣通道,然后即可對選中通道的數(shù)據(jù)進(jìn)行 A/D 轉(zhuǎn)換;轉(zhuǎn)換完成后將數(shù)據(jù)送入 配置的 IN 端點(diǎn),當(dāng)收到主機(jī)發(fā)出的 SETUP 包后,即可將數(shù)據(jù)發(fā)送給主機(jī)。本系統(tǒng)固件設(shè)計(jì) 使用了定時器中斷。 通過固件程序的執(zhí)行,當(dāng) USB 設(shè)備(AT89C5131)連接到主機(jī)上時,主機(jī)能發(fā)現(xiàn)并識別 新設(shè)備,然后建立連接并完成主機(jī)與設(shè)備間的數(shù)據(jù)傳輸任務(wù)。 4.2USB4.2US

31、B 設(shè)備驅(qū)動程序設(shè)計(jì)設(shè)備驅(qū)動程序設(shè)計(jì) 驅(qū)動程序是操作系統(tǒng)中控制和連接硬件的關(guān)鍵模塊,它給連接到計(jì)算機(jī)的硬件設(shè)備提供 軟件接口。本系統(tǒng)中主機(jī)通過 USB 接口與設(shè)備的通信也需要通過 USB 驅(qū)動程序來實(shí)現(xiàn), Windows 雖然提供了多種 USB 設(shè)備的驅(qū)動程序,但并沒有具體針對數(shù)據(jù)采集系統(tǒng)的驅(qū)動程序, 因此本系統(tǒng)需要針對特定的設(shè)備(AT89C5131)來編制 USB 設(shè)備驅(qū)動程序。Microsoft 為 Windows 定義了設(shè)備驅(qū)動程序的模型,USB 設(shè)備驅(qū)動程序也必須遵循該驅(qū)動程序模型,即 WDM 分層驅(qū)動程序模型。 USB 驅(qū)動程序也分為 USB 總線驅(qū)動程序和 USB 功能(設(shè)備)驅(qū)動

32、程序,前者由操作系統(tǒng)提 供,負(fù)責(zé)與實(shí)際硬件打交道;后者需要設(shè)備開發(fā)者編寫,不對實(shí)際的硬件進(jìn)行操作。USB 功 能驅(qū)動程序通過創(chuàng)建和發(fā)送 URB(USB Request Block)的方式,把命令傳遞給 Windows 操 作系統(tǒng)所提供的 USB 總線驅(qū)動程序,由總線驅(qū)動來完成與硬件的直接交互。 USB 設(shè)備驅(qū)動程序使用 USB 驅(qū)動程序接口(USBDI)將 URB 提交到總線驅(qū)動程序就可完 成硬件操作。USBDI 位于 USB 設(shè)備驅(qū)動程序與 USB 驅(qū)動程序棧之間,為開發(fā)人員提供實(shí)現(xiàn)兩 者之間通信的接口函數(shù)。USB 驅(qū)動程序接口與 USB 驅(qū)動程序棧的結(jié)構(gòu)如圖 10 所示。 圖 10USBD

33、I 與 USB 驅(qū)動程序棧 Windows 的驅(qū)動程序開發(fā)軟件有很多,通常采用的是 Windows DDK(DeviceDevelopment Kit) 。DDK 是 Microsoft 公司提供的驅(qū)動程序開發(fā)工具,使用 DDK 直接開發(fā)驅(qū)動程序?qū)儆趶?底層開發(fā)做起,開發(fā)難度較大。為了方便驅(qū)動程序開發(fā),目前許多第三方軟件廠商提供了各 種各樣的生成工具,如 Compuware 公司的 DriverStudio 就是其中效率較高的開發(fā)工具,它 USB 驅(qū)動程序棧 USBD1 USB 驅(qū)動程序接口 USB 設(shè)備驅(qū)動程序 USB 集線器驅(qū)動程序 USB 總線驅(qū)動程序 PCI 枚舉器 USB 總線 UH

34、CD.SYSOpenHCI.SYS 能夠在幾分鐘之內(nèi)生成高質(zhì)量的 USB 驅(qū)動程序。 本系統(tǒng)的 USB 驅(qū)動程序使用 DriverWorks 開發(fā),DriverWorks 本身包含在 DriverStudio 軟件中,它只是對 DDK 例程函數(shù)調(diào)用的 C+封裝。因此使用 DriverWorks 開發(fā)驅(qū)動程序需要 安裝 DDK 和 Visual C+6.0,并在 Visual C+6.0 的開發(fā)環(huán)境中進(jìn)行驅(qū)動的編寫和編譯。 在進(jìn)行 USB 驅(qū)動程序開發(fā)之前首先要明確 USB 設(shè)備的配置和驅(qū)動程序?qū)崿F(xiàn)的功能。在本 系統(tǒng)中,共用到三個 USB 端點(diǎn):控制端點(diǎn) 0、BULK IN 端點(diǎn) 1 和 BULK OUT 端點(diǎn) 2;而驅(qū)動程 序的主要功能是實(shí)現(xiàn)對輸入和輸出端點(diǎn)的讀寫操作。明確以上信息后,就可通過 DriverWorks 的程序向?qū)煽梢酝瓿蓪?U

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論