基于USB的數(shù)據(jù)采集器_第1頁(yè)
基于USB的數(shù)據(jù)采集器_第2頁(yè)
基于USB的數(shù)據(jù)采集器_第3頁(yè)
基于USB的數(shù)據(jù)采集器_第4頁(yè)
基于USB的數(shù)據(jù)采集器_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 西華大學(xué)課程設(shè)計(jì)說明書 1 基于USB的數(shù)據(jù)采集器 摘要:針對(duì)工業(yè)生產(chǎn)的需要,研制了一種基丁 USB 的數(shù)據(jù)采集器。以微控制器和 USB 控 制器為核心部分,通過二者的結(jié)合實(shí)現(xiàn)上位機(jī)和下位機(jī)之間的 USE信,從而可以將采集到 的數(shù)據(jù)通過 US嗷據(jù)線傳輸給 PC 機(jī)。并開發(fā)了 PC 機(jī)上的應(yīng)用程序,從 PC 機(jī)上的 US吸據(jù)采 集界面,可顯示出采集數(shù)據(jù)的波形圖功能,實(shí)現(xiàn)數(shù)據(jù)采集功能。 關(guān)鍵詞:數(shù)據(jù)采集 USB 控制器 Abstract: According to industrial production needs, developed a method based on USB data

2、collector. With micro controller and USB controller for the core part, through the combination of two realize PC and lower level computer communication between USB, which can be the data collected through USB cable transmission give PCS. And the development of the PC application, from pc-resident US

3、B data collection interface, can show of the data gathering waveform figure function, realization of data acquisition function. Keywords: Data acquisition USB controller 西華大學(xué)課程設(shè)計(jì)說明書 2 目錄 2 整體方案設(shè)計(jì) . 4 2.1 方案論證 . 4 2.2 方案比較 . 5 3 單元模塊設(shè)計(jì) . 6 3.1 微控制器及 USB控制器接口電路模塊 . 6 3.1.1 AT89C5131封裝及引腳說明 . 6 3.1.2 A

4、T89C5131 的 US嗷口電路 . 7 3.2 A/D轉(zhuǎn)換電路模塊 . 9 3.2.1 A/D 轉(zhuǎn)換器. 9 3.2.2 A/D 轉(zhuǎn)換器接口電路 . 11 3.3 外接存儲(chǔ)器接口電路 . 13 3.3.1 外接存儲(chǔ)器 . 13 3.3.2 外接存儲(chǔ)器接口電路 . 13 3.4 系統(tǒng)外圍電路 . 14 3.5 軟件設(shè)計(jì). 15 3.5.1 固件程序 . 16 3.5.2 USB 設(shè)備驅(qū)動(dòng)程序 . 18 3.5.3 應(yīng)用程序 . 20 4 小 結(jié) . 23 5 致 謝 . 24 6 參考文獻(xiàn) . 25 7 附 錄 . 26 7.1 硬件連接電路圖 . 26 7.2 PCB 圖 . 27 西華大

5、學(xué)課程設(shè)計(jì)說明書 3 1前言 數(shù)據(jù)采集器是模擬工業(yè)現(xiàn)場(chǎng)的數(shù)據(jù)采集系統(tǒng),在工業(yè)現(xiàn)場(chǎng)中,通常利用數(shù)據(jù)采集裝置采 集實(shí)時(shí)的數(shù)據(jù)并送給 PC 機(jī),通過運(yùn)行 PC 機(jī)特定的軟件對(duì)這些數(shù)據(jù)進(jìn)行分析、處理。 隨著我國(guó)國(guó)民經(jīng)濟(jì)和工業(yè)生產(chǎn)的迅速發(fā)展,傳統(tǒng)的工業(yè)數(shù)據(jù)采集已經(jīng)滿足不了工業(yè)現(xiàn)代 化的發(fā)展。隨著工業(yè)現(xiàn)場(chǎng)數(shù)據(jù)的復(fù)雜性,數(shù)據(jù)的采集正在向智能化、網(wǎng)絡(luò)化和集成化方向發(fā) 展。傳統(tǒng)的數(shù)據(jù)采集方式包括:安裝數(shù)據(jù)采集板卡、并口采集數(shù)據(jù)、申口采集數(shù)據(jù)等。其中 常用的是安裝數(shù)據(jù)采集板卡的方法,其缺點(diǎn)在?。喊惭b麻煩,每次都需要關(guān)機(jī)后打開機(jī)箱才 能插入板卡;受到計(jì)算機(jī)插槽數(shù)量和地址、中斷資源的限制,不能外接很多設(shè)備;機(jī)箱環(huán)境

6、的干擾可能導(dǎo)致通訊過程中產(chǎn)生錯(cuò)誤。隨著現(xiàn)代計(jì)算機(jī)技術(shù)的發(fā)展,通用計(jì)算機(jī)的外設(shè)接口 發(fā)生了很大變化,并口、申口等傳統(tǒng)接口已逐漸不再使用,從而上述的傳統(tǒng)采集方式已經(jīng)過 時(shí)。 通用申行總線 USB 是 1995 年康柏、微軟、舊 M、DEg 公司為解決傳統(tǒng)總線不足而推廣 的一種新型的通信標(biāo)準(zhǔn)。該總線接口具有安裝方便、高帶寬、易丁擴(kuò)展等優(yōu)點(diǎn),已逐漸成為 現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢(shì)?;?USB 的高速數(shù)據(jù)采集器充分利用 USB 總線的上述優(yōu)點(diǎn),有效 解決了傳統(tǒng)高速數(shù)據(jù)采集器的安裝麻煩,價(jià)格昂貴等缺陷。 USB數(shù)據(jù)采集器是在實(shí)驗(yàn)基礎(chǔ)上并在科研項(xiàng)目中已經(jīng)成功研發(fā)的課題,在實(shí)際應(yīng)用中有 著無法取代的意義,對(duì)數(shù)據(jù)

7、采集上升了乂一臺(tái)階。系統(tǒng)的整體設(shè)計(jì)鞏固了我的單片機(jī)基礎(chǔ)以 及各門知識(shí),因設(shè)計(jì)所設(shè)計(jì)面廣,是對(duì)我的大學(xué)所學(xué)的一個(gè)整體回顧,更為以后的工作打下 良好基礎(chǔ)。 西華大學(xué)課程設(shè)計(jì)說明書 4 2整體方案設(shè)計(jì) 整體思路是:選擇合適的微控制器及 USE制器芯片,使采集的數(shù)據(jù)通過 A/D 轉(zhuǎn)換變?yōu)?數(shù)字量進(jìn)入微控制器,再通過 USB 總線將數(shù)據(jù)送到上位機(jī)(PC 機(jī))中進(jìn)行處理,從而完成 USB 數(shù)據(jù)采集器的硬件實(shí)現(xiàn)。然后再通過對(duì)系統(tǒng)固件程序、 USB 設(shè)備驅(qū)動(dòng)程序和主機(jī)的應(yīng)用程序 的設(shè)計(jì),實(shí)現(xiàn)數(shù)據(jù)波形圖在 PC 機(jī)界面上的顯示,并對(duì)系統(tǒng)數(shù)據(jù)采集功能進(jìn)行測(cè)試。 2.1方案論證 采用了兩個(gè)方案,具體的方案見方案一和

8、方案二。 方案一 整個(gè)系統(tǒng)以 ISP1581 為核心,負(fù)責(zé)啟動(dòng) A/D 轉(zhuǎn)換,通過 AD 轉(zhuǎn)換采集數(shù)據(jù),將采集來的數(shù) 據(jù)送入 RA,同時(shí)向單片機(jī)發(fā)送請(qǐng)求,單片機(jī)接受采集來的數(shù)據(jù),通過 USB 勺控制芯片 1581 將數(shù)據(jù)送到PC 機(jī)中完成與主機(jī)之間的通信以及數(shù)據(jù)傳輸。最終實(shí)現(xiàn)數(shù)據(jù)采集的目的。 圖2.1 數(shù)據(jù)采集器整體方案一框圖 方案二 多路輸入模擬信號(hào)進(jìn)入 A/D 轉(zhuǎn)換器進(jìn)行分時(shí)模/數(shù)轉(zhuǎn)換,A/D 轉(zhuǎn)換器內(nèi)部的多路模擬開關(guān) 負(fù)責(zé)選擇信號(hào)通道;A/D 轉(zhuǎn)換得到的數(shù)字量數(shù)據(jù)進(jìn)入 AT89C51 再通過帶有 USE 口的 USBg 制器實(shí)現(xiàn)上位機(jī)和下位機(jī)的 USE信,數(shù)據(jù)可通過 US 昭接線快速傳輸

9、到 PC 機(jī)中進(jìn)行保存和 處理。系統(tǒng)中外接存儲(chǔ)器用丁存儲(chǔ)單片機(jī)固件程序, 單片機(jī)從外部存儲(chǔ)器中讀取程序并執(zhí)行。 西華大學(xué)課程設(shè)計(jì)說明書 5 2.2方案比較 由丁方案一涉及的硬件電路復(fù)雜,消耗的功率相對(duì)較大,而且 AT89C513 昧集數(shù)據(jù)更加 方便,便丁處理,采用多通道分時(shí) A/D 轉(zhuǎn)換器對(duì)數(shù)據(jù)進(jìn)行采集,轉(zhuǎn)換后的數(shù)據(jù)單片機(jī)接受后 存放在存儲(chǔ)芯片中,隨時(shí)向 AT89C5131 發(fā)送請(qǐng)求,得到允許后馬上將數(shù)據(jù)傳輸?shù)?USB 接口。 充分體現(xiàn)了實(shí)時(shí)性,調(diào)試也較方便,因此采用了方案二。 微控制隔 USB 祐囪 器 T7EPRO M存 儲(chǔ) 器芯片 多通道分時(shí)多通道分時(shí)m轉(zhuǎn)換轉(zhuǎn)換 西華大學(xué)課程設(shè)計(jì)說明書

10、圖3.1 AT89C5131 VQFP64引腳分配圖 6 3單元模塊設(shè)計(jì) 為實(shí)現(xiàn) USB 數(shù)據(jù)采集功能,系統(tǒng)硬件電路可分為以下幾個(gè)部分: A/D 轉(zhuǎn)換電路、微控制 器及 USB6 制器接口電路、外接存儲(chǔ)器接口電路、系統(tǒng)外圍電路。 3.1 微控制器及USB空制器接口電路模塊 AT89C5131 單片機(jī)具有內(nèi)置 USB 控制器為核心部分,通過二者的結(jié)合才能實(shí)現(xiàn)上位機(jī)和 下位機(jī)之間的 USB信,從而使 PC 機(jī)獲得采集到的數(shù)據(jù)。 3.1.1 AT89C5131封裝及引腳說明 根據(jù)實(shí)際需要,選擇了 AT89C5131 乍為 USB 空制芯片。其引腳分配如圖 3.1 所示 西華大學(xué)課程設(shè)計(jì)說明書 7 下

11、面對(duì) AT89C513 仰片機(jī)的主要管腳進(jìn)行介紹: P0.0 P0.7、P1.0 P1.7、P2.0 P2.7、P3.0 P3.7、P4.0 P4.1 分別是并行端 口 PCX P1、P2、P3 和 P4 口的 I/O 信號(hào)引腳。P0 口可作為地址/數(shù)據(jù)復(fù)用總線,作為地址總線時(shí),P0.0 P0.7 上為低 8位地址;P1.0 P1.7 則與鍵盤接口信號(hào) KIN0 KIN7 復(fù)用,同時(shí) P1.0 和 P1.1 乂與 T2 和 T2EXM用,P1.2 則與可編程計(jì)數(shù)器隊(duì)列的外部時(shí)鐘輸入 ECI 復(fù)用,P1.3 P1.7 與 捕獲外部信號(hào)輸入或比較外部信號(hào)輸出 CEXSCEX4 復(fù)用。P2 口也可以

12、作為地址線,此時(shí) P2.0 P2.7 上輸出高 8 位地址。P3 口各引腳均具有第二功能,P3.0 和 P3.1與申行信號(hào)接口 RX 聽日 TXD 復(fù)用,P3.2 和 P3.3 與外部觸發(fā)脈沖INT0和INT1復(fù)用,P3.4 和 P3.5 與定時(shí)器/ 計(jì)數(shù)器 T0 和 T1 復(fù)用,P3.6 和 P3.7 則與寫信號(hào)WR和讀信號(hào)RD復(fù)用;另外 P3.3 P3.7 還與 驅(qū)動(dòng) LED輸出引腳 LED6 LED3 復(fù)用。P4.0 P4.1 分別與 TWI申行時(shí)鐘 SCL 和 TWI申行數(shù)據(jù) SDAg 用。 D+ffi D-分別是 USB 總線正信號(hào) I/O 引腳和負(fù)信號(hào) I/O 引腳,復(fù)位后 D 刑

13、 D-分別是高 電平和低電平。VRE 牌 USB 總線參考電壓引腳,該引腳通過一個(gè) 1.5K Q 的電阻和 D 郴連可 以實(shí)現(xiàn)軟件斷開功能。本系統(tǒng)中就要利用 D 刑 A 兩個(gè)引腳與 US 酬口的兩根數(shù)據(jù)線 D 刑 D 一相連,從而實(shí)現(xiàn) US 或據(jù)通信。 RST 是單片機(jī)復(fù)位信號(hào)引腳,將 RSTI腳保持 64 個(gè)時(shí)鐘周期就會(huì)使芯片復(fù)位,當(dāng)芯片處 丁休眠或低功耗模式時(shí)復(fù)位可使芯片恢復(fù)到正常工作狀態(tài)。 ALE 是地址鎖存使能信號(hào)引腳, O z NT P2 3/AI I P24/AI2 P2,5/A13 XTAL2 XTAt J P2.6/A14 P2.7/AJ5 VDD AVDD UCAP AVSS

14、 NC P3 O/RXD NC NT fz-Y/D田一口 wwxJd rNg-x坦u?z Evfrid MEN 沽 NC 饋 NC 2 3 HXI/ADl J KX2/AD2 二 TTST i: Ptl. 3/AD3 vss NC PO.4/AD4 P3.7n/LECB PO. 5/AD5 PC16/AD6 POJ/AD7 P3.65TOLED2 NC - NC & 當(dāng) +n a UN 西華大學(xué)課程設(shè)計(jì)說明書 8 只有當(dāng)讀寫外部程序存儲(chǔ)器和使用 MOVX 旨令時(shí)該引腳信號(hào)有效。PSENBI腳當(dāng)復(fù)位后是用來 檢測(cè) ISP(在系統(tǒng)編程模式)的外部硬件的。EA 引腳接高電平時(shí)芯片是從內(nèi)部存儲(chǔ)

15、器尋址的, 必須接低電平才能使芯片從外部程序存儲(chǔ)器起始地址 0000h開始尋址。 3.1.2 AT89C5131 的 USB口電路 AT89C5131 內(nèi)置的 US 瞅備控制器能提供 AT89C513 例 USB 總線進(jìn)行數(shù)據(jù)交換的硬件接 口; USB 空制器要求 48MH 0.25%的參考時(shí)鐘,該參考時(shí)鐘通過 AT89C5131 的 PLL (鎖相環(huán)) 輸出,并能用來產(chǎn)生 12MHz 的全速時(shí)鐘提供給 USB 控制器和 USB 總線之間的數(shù)據(jù)交換。 AT89C513仰片機(jī)具有 USE口功能,因而可直接與 US 卵口連接,通過 USB 總線與 PC 機(jī)通 信。具體 US 毗口電路如圖 3.2

16、所示。 * / * * Z 圖3.2 USB接口電路 AT89C5131 的 USB 總線正信號(hào) I/O 弓 I腳 D+ffi 負(fù)信號(hào) I/O 弓 I腳 A 分別與 US 酬口 J1 的兩 根 西華大學(xué)課程設(shè)計(jì)說明書 9 數(shù)據(jù)線 D 削 D 一相連(電阻 R2 和 R3 為可選電阻),再通過 USES 接線即可與 PC 機(jī)的 USB 接口相連進(jìn)行通信。USB 總線參考電壓引腳 VRE 疝過 1.5K Q 的電阻 R1 與 D+ffi連,從而可以 實(shí)現(xiàn)軟件斷開功能。本系統(tǒng)中 PC 機(jī)作為 USB 主機(jī),而 AT89C5131 作為 US 瞅備,因而 D 刑 D 一無需連接下拉電阻。單片機(jī)的模擬地

17、引腳 AVSSffi 數(shù)字地引腳 VSS 勻接地;而模擬電源引腳 AVDER 數(shù)字電源引腳則連接正電源 VCC 給單片機(jī)提供工作所需電源。 圖 3.8 中還給出了一些其他相關(guān)引腳的連接:UCAFI腳與一個(gè)外部電容(圖中為 C1)連 接來給 US 眺供電源。PLLF 引腳作為 PLL(鎖相環(huán))低通濾波器的輸入引腳,需要與一個(gè) RC 網(wǎng)絡(luò)(圖中為 R5 和 C3 構(gòu)成的低通濾波器相連。XTAL1 和 XTAL2 則分別是單片機(jī)的內(nèi)部反相 振蕩放大器的輸入端和輸出端21,它們與作為反饋元件的片外石英晶體 Y1 及電容 C4 和 C5 一起構(gòu)成一個(gè)自激振蕩器,產(chǎn)生單片機(jī)工作所需的時(shí)鐘信號(hào)。電容 C1、

18、電阻 R1 和按鍵 S1 則 構(gòu)成單片機(jī)復(fù)位電路,復(fù)位信號(hào)輸入單片機(jī) RST 引腳。 西華大學(xué)課程設(shè)計(jì)說明書 圖3.3 ADC0809的引腳圖 10 3.2 A/D轉(zhuǎn)換電路模塊 AD 轉(zhuǎn)換電路主要負(fù)責(zé)采集數(shù)據(jù),同時(shí)向單片機(jī)發(fā)送請(qǐng)求,轉(zhuǎn)換后的數(shù)據(jù)單片機(jī)接受后存 放在存儲(chǔ)芯片中。 3.2.1 A/D 轉(zhuǎn)換器 多路輸入信號(hào)需通過 A/D 轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào)才能進(jìn)入單片機(jī),本系統(tǒng)選擇的 A/D 轉(zhuǎn) 換器是美國(guó)國(guó)家半導(dǎo)體公司(National Semiconduct Corporation )的 8 位逐次逼近式 A/D 轉(zhuǎn)換器 ADC0809該 A/D 轉(zhuǎn)換器是一種單片 CMO 器件,包括 8 位模

19、/數(shù)轉(zhuǎn)換器、8 通道多路轉(zhuǎn) 換器和與微處理器兼容的控制邏輯。ADC080 卯內(nèi)帶有鎖存功能的 8 路模擬多路開關(guān),可對(duì) 8 路 0 5V 輸入模擬電壓信號(hào)分時(shí)進(jìn)行轉(zhuǎn)換。其主要功能特點(diǎn)包括:分辨率為 8 位;最大不可 調(diào)誤差小丁 土 1LSB 單一+5V 電源供電,模擬輸入電壓范圍 0 5V;可鎖存三態(tài)輸出,輸出與 TTL 兼容;功耗為 15mW 典型轉(zhuǎn)換時(shí)間為 100 s。ADC0809 勺引腳如圖: ADC080 那用 28 腳雙列直插式封裝,其引腳功能說明如下: IN0-IN7 : 8 路輸入通道的模擬量輸入端口。 D0D7 8 位數(shù)字量輸出端口。 START ALE STAR 矽/ A/

20、D 轉(zhuǎn)換啟動(dòng)控制端口,ALE 為地址鎖存控制信號(hào)端口。這兩個(gè)端 口可連在一起,通過軟件輸入一個(gè)正脈沖即可啟動(dòng) A/D 轉(zhuǎn)換。EOC OE EOC%轉(zhuǎn)換結(jié)束信號(hào) 脈沖輸出端口,OE 為輸出允許控制端口。這兩個(gè)端口也可連在一起,表示 A/D 轉(zhuǎn)換結(jié)束。當(dāng) 。制的電平由低變高,打開三態(tài)輸出鎖存器,將轉(zhuǎn)換得到的數(shù)字量輸出到數(shù)據(jù)總線上。 VREF 什)、VREFF)、VCC GND VREF 什)和 VREF-)為參考電壓輸入端;VCM 主電 源輸入端,GN 叫接地端。一般 VREF 什)與 VC 砒接在一起,VREF-)與 GND!接在一起。 CLK 時(shí)鐘輸入端。 ADDA、ADDB、ADDC: 8

21、路模擬開關(guān)的 3 位地址選通輸入端,用來選擇對(duì)應(yīng)的輸入通道。 其對(duì)應(yīng)關(guān)系如表 3.1 所小。 表3.1地址碼與輸入通道對(duì)應(yīng)關(guān)系 ADDC ADDB ADDA 輸入通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 西華大學(xué)課程設(shè)計(jì)說明書 11 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 ADC080 卵工作時(shí)序如圖 3.4 所示。其中 tWE 為最小 ALE 脈寬,典型值 100ns; tD 為模 擬開關(guān)延時(shí),典型值:1 s; tWS 為最小啟動(dòng)脈寬,典型值:100ns; tEOC 為轉(zhuǎn)換結(jié)束延時(shí), 最大為 8 個(gè)時(shí)鐘周期:

22、+ 2 11 s; tC 為轉(zhuǎn)換時(shí)間,典型值:100 si s。 西華大學(xué)課程設(shè)計(jì)說明書 12 ADDC _ _ ZX _ 1 1 1 - 1 - to 內(nèi)部比較器輸可 * _ 1 1 1 STAR1 _ _ EOC th: I Ti 圖3.4 ADC0809工作時(shí)序 由圖 3.4 可看出,當(dāng)送入啟動(dòng)信號(hào) STAR 而,EOCt 一段時(shí)間保持高電平,表示上一次 A/D 轉(zhuǎn)換結(jié)束,在實(shí)際應(yīng)用中容易引起誤控。因此,啟動(dòng)轉(zhuǎn)換后在軟件上應(yīng)延遲一段時(shí)間 (大 丁 tEOQ 之后再進(jìn)行查詢或開中斷。 3.2.2 A/D 轉(zhuǎn)換器接口電路 ADC080 們單片機(jī) AT89C5131 的接口電路如圖 3.5 所

23、示(單片機(jī)外圍電路見圖 3.2 ,本圖 中未再畫出)。ALE 西華大學(xué)課程設(shè)計(jì)說明書 13 圖3.5 AT89C5131與A/D轉(zhuǎn)換器和存儲(chǔ)器芯片的連接電路 單片機(jī)的 P0 口可分時(shí)輸出低 8 位地址和數(shù)據(jù),為了把地址信息分離出來保存,需外加地 址鎖存器(圖中為 74HC373,并由單片機(jī)的地址鎖存允許信號(hào) ALE 的下降沿將地址信息鎖存 到地址鎖存器中。經(jīng)鎖存器鎖存后的低三位地址 Q0Q2 分別與 ADC0809 的地址譯碼引腳 ADDAADDC 接,以選通 IN0IN7 中的一個(gè)通道。ADC080 織有輸出三態(tài)鎖存器,故其 8 位輸 出數(shù)據(jù)引腳 D0D7W 直接與單片機(jī)數(shù)據(jù)總線 P0.0P

24、0.7 相連。 ADC080 啡內(nèi)無時(shí)鐘,圖 3.4 中利用雙 4 位二進(jìn)制計(jì)數(shù)器 74HC393 合 ADC080929!供時(shí) 鐘輸入。單片機(jī)的 ALE引腳與 74HC393勺時(shí)鐘輸入端 CLKjg連,計(jì)數(shù)器的一路輸出 Q1與 ADC0809 的時(shí)鐘輸入端 CLOC 咽連,ALE 引腳的時(shí)鐘頻率經(jīng) 74HC39分頻后提供給 ADC0809 乍為時(shí) 鐘信號(hào)。 單片機(jī) P2.7 引腳作為 ADC0809 勺片選信號(hào)。圖 3.4 中使用了 4 與非門芯片 74ALS00 和 6 反相器芯片74ALS04來控制ADC0809勺啟動(dòng)和輸出轉(zhuǎn)換數(shù)據(jù)。當(dāng) P2.7 = 1, WR(P3.6)=0時(shí), 74

25、ALS04的 6 號(hào)腳輸出為高電平,將其與 ADC0809 勺轉(zhuǎn)換啟動(dòng)端口 STAR 種地址鎖存端口 ALE 連接,從而在鎖存通道地址的同時(shí)啟動(dòng) A/D轉(zhuǎn)換。當(dāng)P2.7=1, RD (P3.7) =0時(shí),74ALS04 的8號(hào)腳輸出為高電平,將其與 ADC0809 勺輸出允許引腳 OE 相連,從而允許將轉(zhuǎn)換得到的數(shù) 字量數(shù)據(jù)輸出到數(shù)據(jù)總線上。本系統(tǒng)在軟件上采用延時(shí)的方法來等待轉(zhuǎn)換結(jié)束,因此未使用 轉(zhuǎn)換結(jié)束信號(hào)引腳EOC ADC0809勺正參考電壓輸入端 VREF 什)和主電源輸入端 VCC接+ 5V 電源,而負(fù)參考電壓輸入端 VREF-)和接地端 GND 勻接地。 西華大學(xué)課程設(shè)計(jì)說明書 14

26、 3.3 外接存儲(chǔ)器接口電路 外接存儲(chǔ)器接口電路是為了將單片機(jī)接受到的數(shù)據(jù)存儲(chǔ)起來,達(dá)到采樣功能 3.3.1 外接存儲(chǔ)器 AT89C513 仰片機(jī)片內(nèi)集成有兩個(gè) Flash存儲(chǔ)空間 FMCffi FM其中 FMCJ 32K 字節(jié)的程 序存儲(chǔ)器(用戶空間),且支持并行編程和申行在線編程(ISP); FM1 為 3K 字節(jié)的引導(dǎo)啟動(dòng) 程序和應(yīng)用編程接口( API),且只支持并行編程。因此在編寫單片機(jī)固件程序時(shí)可使用 FM0 的用戶空間進(jìn)行在線編程,但本系統(tǒng)設(shè)計(jì)時(shí)未采用在線編程的方法,而是直接將單片機(jī)程序 一 . . . .一. . . .一 一 一 存儲(chǔ)在一片外接 EEPROM 儲(chǔ)器芯片中,通過將

27、單片機(jī) EA接低電平,使單片機(jī)執(zhí)行外部程序 存儲(chǔ)器中的程序。 本系統(tǒng)使用的存儲(chǔ)器芯片是 ATME 公司的 64K(8KX8 位)EEPRO 成片 AT28C64 該存儲(chǔ)器 芯片采用 ATMEL 非揮發(fā)性 CMO 眼術(shù),存取時(shí)間僅需 150ns,功耗僅 220mW 封裝形式有 PDIP/SOIC28腳、PLCC32 卻和 TSOP28 卻三種,其引腳說明如表 3.2 所示。 表3.2 AT28C64引腳說明 引腳 功能 A0-A12 地址線 CE 芯片選擇(片選) OE 輸出使能 WE 寫入使能 I/O0-I/O7 數(shù)據(jù)輸入/輸出端 VCC 電源端 GND 接地端 3.3.2 外接存儲(chǔ)器接口電路

28、 AT28C6M 單片機(jī) AT89C5131 的連接電路同樣如圖 3.4 所示。單片機(jī) P0 口輸出的地址信 息經(jīng)地址鎖存器 74HC373 鎖存后送入存儲(chǔ)器 AT28C64的低 8 位地址線 A0A同時(shí) P0 口乂 AT28C64 勺數(shù)據(jù)線 I/O0I/O7 相連,可分時(shí)輸出存儲(chǔ)的數(shù)據(jù)。單片機(jī)的 P2 口作為高位地址線, 由丁 P2 口輸出具有鎖存的功能,因此不必加地址鎖存器,可直接與 AT28C64 勺高 5 位地址線 A8A12 相連。 單片機(jī)PSEN引腳與 AT28C64勺片選端CE和輸出允許端OE相連,從而選中外部存儲(chǔ)器 并允許從中讀取程序指令。單片機(jī)EA接低電平,使單片機(jī)執(zhí)行外部程

29、序程序存儲(chǔ)器中的程序。 西華大學(xué)課程設(shè)計(jì)說明書 15 3.4 系統(tǒng)外圍電路 系統(tǒng)的外圍電路包括:電源電路、復(fù)位電路、時(shí)鐘產(chǎn)生電路、 PLL 配置電路。 (1) 電源電路。本系統(tǒng)中所有器件均可使用 +5V 電源電壓;由丁 USBS 口電源;可通過 USB 總線從 PC 機(jī)獲得,因此本系統(tǒng)未使用外部電源,直接利用 USB 總線供電。 (2) 復(fù)位電路。單片機(jī) AT89C5131 的RST引腳是復(fù)位信號(hào)輸入引腳,復(fù)位的實(shí)現(xiàn)一般 可采用上電復(fù)位和外部手動(dòng)復(fù)位兩種方式, 本設(shè)計(jì)采用手動(dòng)復(fù)位方式,通過按鍵 S1 來進(jìn)行復(fù) 位操作,復(fù)位電路如圖 3.2 所示。 (3) 時(shí)鐘產(chǎn)生電路。單片機(jī) AT89C513

30、1 的時(shí)鐘發(fā)生器包括一個(gè)內(nèi)部振蕩器和一個(gè)鎖相環(huán) (PLL),所有外部設(shè)備以及 CPUB 內(nèi)核工作所需的時(shí)鐘信號(hào)都是由時(shí)鐘發(fā)生器產(chǎn)生的。 AT89C5131 的 XTAL1 和 XTAL2 分別是一個(gè)片內(nèi)反相放大器的輸入端和輸出端。若使用內(nèi) 部振蕩器產(chǎn)生時(shí)鐘信號(hào),則將這兩個(gè)引腳與作為反饋元件的片外晶振和電容相連接構(gòu)成一個(gè) 自激振蕩器,連接電路如圖 3.2 所示。其中外接晶振的頻率本系統(tǒng)選擇 12MHz 而兩個(gè)電容 則通常選擇20pF 30pF 左右。當(dāng)然也可以選擇采用外部振蕩器來產(chǎn)生時(shí)鐘信號(hào), 此時(shí)只需將 XTAL1 引腳直接作為外部時(shí)鐘的輸入即可。本系統(tǒng)的時(shí)鐘信號(hào)由內(nèi)部振蕩器產(chǎn)生。 (4) P

31、LL 配置電路。AT89C5131 的鎖相環(huán)(PLL)是用來產(chǎn)生和外部低頻時(shí)鐘(外圍設(shè)備 時(shí)鐘)同步的內(nèi)部高頻時(shí)鐘(USB寸鐘)的,即 USB接口所需的時(shí)鐘信號(hào)是由 PLL產(chǎn)生的。 PLL的內(nèi)部結(jié)構(gòu)如圖 3.5 所示,可以看出是一個(gè)閉環(huán)結(jié)構(gòu)。其中 N3:0 和 R3:0 均位丁 PLLDIV 寄存器,各為 4 位。內(nèi)部振蕩器的參考時(shí)鐘經(jīng)過 N 分頻和反饋回來的 USB 時(shí)鐘經(jīng)過 R 分頻進(jìn) 入 PFLD 進(jìn)行比較并產(chǎn)生合適的輸出信號(hào)。PLLCO 演存器的 PLLEN 位用來使能時(shí)鐘信號(hào)的產(chǎn) 生;而當(dāng) PLL 被鎖定時(shí),PLLCOIW存器的 PLOCK:則會(huì)被置位,此時(shí)輸出的時(shí)鐘信號(hào)才是穩(wěn) 定的

32、信號(hào)。PLLF 是 PLL 的低通濾波器連接引腳,需要與一個(gè) RC 網(wǎng)絡(luò)相連接,連接電路如圖 3.6 所示。 西華大學(xué)課程設(shè)計(jì)說明書 16 PLL 輸出的 USEH 鐘頻率為 48MHz 它與內(nèi)部振蕩器的輸入時(shí)鐘頻率之間的數(shù)學(xué)關(guān)系是: USBtlk=OSCclk x (R+1) / N+1。因此為了產(chǎn)生 48MHZ 勺時(shí)鐘信號(hào),必須根據(jù)振蕩器的頻率來配 置合適的分頻數(shù)值(N 和 R),典型的分頻值見表 3.3。本系統(tǒng)選用 12MHz 晶振,因此需要將 PLLDIV 寄存器設(shè)置為 30h。 表3.3 典型分頻值設(shè)置 振蕩器頻率 R+1 N+1 PLLDIV寄存器 3MHz 16 1 F0h 6M

33、Hz 8 1 70h 8MHz 6 1 50h 12MHz 4 1 30h 16MHz 3 1 20h 18MHz 8 3 72h 20MHz 12 5 B4h 24MHz 2 1 10h 32MHz 3 2 21h 3.5 軟件設(shè)計(jì) 本系統(tǒng)在軟件上主要包括三部分:固件程序、 USB 設(shè)備驅(qū)動(dòng)程序以及應(yīng)用程序。通過固 件程序和 USBB 動(dòng)程序使 PC 機(jī)可以與 US 瞅備進(jìn)行正常的通信,并且數(shù)據(jù)采集系統(tǒng)可以進(jìn)行 正常的數(shù)據(jù)采集;通過界面程序的設(shè)計(jì)使采集到的數(shù)據(jù)波形圖可以在 PC 機(jī)界面上顯示出來。 以下將分別進(jìn)行介紹。 USB PLLCON.: 皈 圖3.6 PLL結(jié)構(gòu)內(nèi)部結(jié)構(gòu)框圖 西華大學(xué)

34、課程設(shè)計(jì)說明書 17 3.5.1 固件程序 固件設(shè)計(jì)主要完成兩個(gè)方面的工作:控制 A/D 的采樣和通過 USB 空制器與主機(jī)通信。由 丁單片機(jī)系統(tǒng)控制 A/D 采樣的工作非常簡(jiǎn)單,此處不做介紹。 對(duì)丁固件程序的編程,其基本結(jié)構(gòu)如下: 初始化,包括處理器和外圍電路的初始化; 主函數(shù),包括完成符合設(shè)備特定要求的代碼; 中斷處理,包括處理各種中斷的程序代碼。 固件程序的代碼如下: #define Usb_enable()(USBCON|=0 x80)/USBE=1 , 使 能 USB 控 制 器 #define Usb_detach()(USBCON|=0 x10)/DETACH=1,模擬 USB

35、總線斷開 #define Usb_attach()(USBCON&=0 x10)/DETACH=0,模擬 USB 總線連接 void configure_usb_clock(void) Usb_clear_EXT48(); /PLLCON 寄存器的 D2 位 EXT48=0,取消外部 48MHz Pll_set_div(0 x30); /PLLDIV=0 x30,按照 12MHz 晶振頻率設(shè)置 PLL 分配值為 30h, 以保證 PLL 輸出 48MHz 的 USB時(shí)鐘 Pll_enable(); /PLLCON 寄存器的 D1 位 PLLEN = 1,使能 PLL while(Pll

36、_check_clk(); 等 待PLL被 鎖 定 , 輸 出 穩(wěn) 定 的 時(shí) 鐘 void usb_configure_endpoint(Uchar ep_num,Uchar ep_type) Usb_select_ep(ep_num); / 選擇端點(diǎn) Usb_configure_ep_type(ep_type); 配 置 端 void usb_reset_endpoint(Uchar ep_num) UEPRST=0 x01ep_num; 復(fù)位選擇的端點(diǎn) UEPRST=0 x00; /復(fù)位結(jié)束活零 void usb_var_init(void) endpoint_statusEP_CONT

37、ROL=0 x00; endpoint_statusEP_IN=0 x00; 端點(diǎn) 0 和端點(diǎn) 1 復(fù)位 西華大學(xué)課程設(shè)計(jì)說明書 18 usb_connected=FALSE; usb_configuration_nb=0 x00; void usb_ep_init(void) usb_configure_endpoint(EP_IN,BULK_IN); 端點(diǎn) 1 配置為批量 IN 類型 usb_reset_endpoint(EP_IN); 復(fù)位端點(diǎn) 1FIFO usb_configure_endpoint(EP_OUT,BULK_OUT); 端點(diǎn) 2 配置為批量 OUT44 類型 usb_r

38、eset_endpoint(EP_OUT); Usb_select_ep(EP_CONTROL); if(Usb_setup_received() usb_enumeration_process(); Usb_select_ep(EP_IN); if(Usb_tx_complete() Usb_clear_tx_complete(); usb_idle=1; Void EX0_int(void) interrupt 0 / 外部中斷 0 EA=DISABLE; / 關(guān)中斷 switch (bBECINT)(/ 確定中斷 ID case VECINTOUTPUTENDPOINT0: 復(fù)位端點(diǎn) 2

39、FIFO 選擇端點(diǎn) 0 端點(diǎn) 0 是否收到主機(jī)發(fā)出的 SETUP 包 設(shè)備枚舉 /選擇端點(diǎn) 1 /IN 數(shù)據(jù)是否發(fā)送完畢 /TXCMPL=0 ,準(zhǔn)備下次發(fā)送 設(shè)備掛起 bVECFINT=0 x00; Ep0QutputInterruptHandler(); break; case VECINTINPUTENDPOINT0: bBECINT=0 x00; Ep0InputInterruptHandler(); break; case VECINTOUTPUTENDPOINT1: 西華大學(xué)課程設(shè)計(jì)說明書 19 bVECINT=0 x00; Ep 1 OutputInterruptHandler()

40、; Break; case VECINT_INPUT_ENDPOINT1: bVECINT=0 x00; Ep1InputInterruptHandler(); break; case VECINT_SETUP_PACKET_RECEIVED: SetupPacketInterruptHandler(); bUSBSTA=USBSTA_SETUP; bVECINT=0 x00; break; default:break; 不知道中斷 ID EA=ENABLE; / 開中斷 3.5.2 USB設(shè)備驅(qū)動(dòng)程序 驅(qū)動(dòng)程序是操作系統(tǒng)中控制和連接硬件的關(guān)鍵模塊,它給連接到計(jì)算機(jī)的硬件設(shè)備提供 軟件接口。在

41、本系統(tǒng)中,共用到三個(gè) USE點(diǎn):控制端點(diǎn) 0、BULK IN 端點(diǎn) 1 和 BULK OUT 點(diǎn) 2;而驅(qū)動(dòng)程序的主要功能是實(shí)現(xiàn)對(duì)輸入和輸出端點(diǎn)的讀寫操作。明確以上信息后,就可 通過DriverWorks 的程序向?qū)煽梢酝瓿蓪?duì) USF&備 BULKfe 型端點(diǎn)進(jìn)行讀寫的驅(qū)動(dòng)程序工 程文件了。然后需要在 Visual C+6.0 的環(huán)境中對(duì)生成的驅(qū)動(dòng)程序進(jìn)行編譯生成.sys 文件, 并且對(duì)自動(dòng)生成的INF安裝文件進(jìn)行適當(dāng)?shù)男薷募纯赏瓿沈?qū)動(dòng)程序的安裝使用。本系統(tǒng)驅(qū)動(dòng) 程序設(shè)計(jì)的重點(diǎn)是對(duì)端點(diǎn)的讀寫操作函數(shù),其中寫操作函數(shù)編寫如下: NTSTATUS USBDevice:Write(KIr

42、p I) ( tEntering USBDevice:Write,IdwMaxSize)56 ( ASSERT(dwMaxSize); dwTotalSize=dwMaxSize; 聲明一個(gè)存儲(chǔ)對(duì)象 KMemory Mem(I.Mdl(); 為 Irp completion 分配一個(gè)新的 結(jié)構(gòu) USB_COMPLETION_INFO*pCompInfo = new(NonPagedPool) USB_COMPLETION_INFO; if(pCompInfo=NULL) ( I.Information()=0; return I.PnpComplete(this,STATUS_INSUFFIC

43、IENT_RESOURCES); /選擇正確的管道來寫 創(chuàng)建一個(gè) URB,將批量數(shù)據(jù)寫入管道 PURB pUrb=m_Endpoint2OUT.BuildBulkTransfer( Mem, 數(shù)據(jù)的來源? dwTotalSize, 讀取的數(shù)據(jù)字節(jié)數(shù) FALSE, 方向(FALSE=OUT) NULL 連接下一個(gè) URB ); if(pUrb=NULL) 西華大學(xué)課程設(shè)計(jì)說明書 21 ( delete pCompInfo; I.Information()=0; return I.PnpComplete(this,STATUS_INSUFFICIENT_RESOURCES); 初始化結(jié)構(gòu)內(nèi)容 pCompInfo-m_pClass=this; pCompInfo-m_pUrb=pUrb; 提交 URB 給 USB 設(shè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論