




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 西華大學(xué)課程設(shè)計說明書 1 基于USB的數(shù)據(jù)采集器 摘要:針對工業(yè)生產(chǎn)的需要,研制了一種基丁 USB 的數(shù)據(jù)采集器。以微控制器和 USB 控 制器為核心部分,通過二者的結(jié)合實現(xiàn)上位機(jī)和下位機(jī)之間的 USE信,從而可以將采集到 的數(shù)據(jù)通過 US嗷據(jù)線傳輸給 PC 機(jī)。并開發(fā)了 PC 機(jī)上的應(yīng)用程序,從 PC 機(jī)上的 US吸據(jù)采 集界面,可顯示出采集數(shù)據(jù)的波形圖功能,實現(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è)計說明書 2 目錄 2 整體方案設(shè)計 . 4 2.1 方案論證 . 4 2.2 方案比較 . 5 3 單元模塊設(shè)計 . 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 外接存儲器接口電路 . 13 3.3.1 外接存儲器 . 13 3.3.2 外接存儲器接口電路 . 13 3.4 系統(tǒng)外圍電路 . 14 3.5 軟件設(shè)計. 15 3.5.1 固件程序 . 16 3.5.2 USB 設(shè)備驅(qū)動程序 . 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è)計說明書 3 1前言 數(shù)據(jù)采集器是模擬工業(yè)現(xiàn)場的數(shù)據(jù)采集系統(tǒng),在工業(yè)現(xiàn)場中,通常利用數(shù)據(jù)采集裝置采 集實時的數(shù)據(jù)并送給 PC 機(jī),通過運(yùn)行 PC 機(jī)特定的軟件對這些數(shù)據(jù)進(jìn)行分析、處理。 隨著我國國民經(jīng)濟(jì)和工業(yè)生產(chǎn)的迅速發(fā)展,傳統(tǒng)的工業(yè)數(shù)據(jù)采集已經(jīng)滿足不了工業(yè)現(xiàn)代 化的發(fā)展。隨著工業(yè)現(xiàn)場數(shù)據(jù)的復(fù)雜性,數(shù)據(jù)的采集正在向智能化、網(wǎng)絡(luò)化和集成化方向發(fā) 展。傳統(tǒng)的數(shù)據(jù)采集方式包括:安裝數(shù)據(jù)采集板卡、并口采集數(shù)據(jù)、申口采集數(shù)據(jù)等。其中 常用的是安裝數(shù)據(jù)采集板卡的方法,其缺點在?。喊惭b麻煩,每次都需要關(guān)機(jī)后打開機(jī)箱才 能插入板卡;受到計算機(jī)插槽數(shù)量和地址、中斷資源的限制,不能外接很多設(shè)備;機(jī)箱環(huán)境
6、的干擾可能導(dǎo)致通訊過程中產(chǎn)生錯誤。隨著現(xiàn)代計算機(jī)技術(shù)的發(fā)展,通用計算機(jī)的外設(shè)接口 發(fā)生了很大變化,并口、申口等傳統(tǒng)接口已逐漸不再使用,從而上述的傳統(tǒng)采集方式已經(jīng)過 時。 通用申行總線 USB 是 1995 年康柏、微軟、舊 M、DEg 公司為解決傳統(tǒng)總線不足而推廣 的一種新型的通信標(biāo)準(zhǔn)。該總線接口具有安裝方便、高帶寬、易丁擴(kuò)展等優(yōu)點,已逐漸成為 現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢?;?USB 的高速數(shù)據(jù)采集器充分利用 USB 總線的上述優(yōu)點,有效 解決了傳統(tǒng)高速數(shù)據(jù)采集器的安裝麻煩,價格昂貴等缺陷。 USB數(shù)據(jù)采集器是在實驗基礎(chǔ)上并在科研項目中已經(jīng)成功研發(fā)的課題,在實際應(yīng)用中有 著無法取代的意義,對數(shù)據(jù)
7、采集上升了乂一臺階。系統(tǒng)的整體設(shè)計鞏固了我的單片機(jī)基礎(chǔ)以 及各門知識,因設(shè)計所設(shè)計面廣,是對我的大學(xué)所學(xué)的一個整體回顧,更為以后的工作打下 良好基礎(chǔ)。 西華大學(xué)課程設(shè)計說明書 4 2整體方案設(shè)計 整體思路是:選擇合適的微控制器及 USE制器芯片,使采集的數(shù)據(jù)通過 A/D 轉(zhuǎn)換變?yōu)?數(shù)字量進(jìn)入微控制器,再通過 USB 總線將數(shù)據(jù)送到上位機(jī)(PC 機(jī))中進(jìn)行處理,從而完成 USB 數(shù)據(jù)采集器的硬件實現(xiàn)。然后再通過對系統(tǒng)固件程序、 USB 設(shè)備驅(qū)動程序和主機(jī)的應(yīng)用程序 的設(shè)計,實現(xiàn)數(shù)據(jù)波形圖在 PC 機(jī)界面上的顯示,并對系統(tǒng)數(shù)據(jù)采集功能進(jìn)行測試。 2.1方案論證 采用了兩個方案,具體的方案見方案一和
8、方案二。 方案一 整個系統(tǒng)以 ISP1581 為核心,負(fù)責(zé)啟動 A/D 轉(zhuǎn)換,通過 AD 轉(zhuǎn)換采集數(shù)據(jù),將采集來的數(shù) 據(jù)送入 RA,同時向單片機(jī)發(fā)送請求,單片機(jī)接受采集來的數(shù)據(jù),通過 USB 勺控制芯片 1581 將數(shù)據(jù)送到PC 機(jī)中完成與主機(jī)之間的通信以及數(shù)據(jù)傳輸。最終實現(xiàn)數(shù)據(jù)采集的目的。 圖2.1 數(shù)據(jù)采集器整體方案一框圖 方案二 多路輸入模擬信號進(jìn)入 A/D 轉(zhuǎn)換器進(jìn)行分時模/數(shù)轉(zhuǎn)換,A/D 轉(zhuǎn)換器內(nèi)部的多路模擬開關(guān) 負(fù)責(zé)選擇信號通道;A/D 轉(zhuǎn)換得到的數(shù)字量數(shù)據(jù)進(jìn)入 AT89C51 再通過帶有 USE 口的 USBg 制器實現(xiàn)上位機(jī)和下位機(jī)的 USE信,數(shù)據(jù)可通過 US 昭接線快速傳輸
9、到 PC 機(jī)中進(jìn)行保存和 處理。系統(tǒng)中外接存儲器用丁存儲單片機(jī)固件程序, 單片機(jī)從外部存儲器中讀取程序并執(zhí)行。 西華大學(xué)課程設(shè)計說明書 5 2.2方案比較 由丁方案一涉及的硬件電路復(fù)雜,消耗的功率相對較大,而且 AT89C513 昧集數(shù)據(jù)更加 方便,便丁處理,采用多通道分時 A/D 轉(zhuǎn)換器對數(shù)據(jù)進(jìn)行采集,轉(zhuǎn)換后的數(shù)據(jù)單片機(jī)接受后 存放在存儲芯片中,隨時向 AT89C5131 發(fā)送請求,得到允許后馬上將數(shù)據(jù)傳輸?shù)?USB 接口。 充分體現(xiàn)了實時性,調(diào)試也較方便,因此采用了方案二。 微控制隔 USB 祐囪 器 T7EPRO M存 儲 器芯片 多通道分時多通道分時m轉(zhuǎn)換轉(zhuǎn)換 西華大學(xué)課程設(shè)計說明書
10、圖3.1 AT89C5131 VQFP64引腳分配圖 6 3單元模塊設(shè)計 為實現(xiàn) USB 數(shù)據(jù)采集功能,系統(tǒng)硬件電路可分為以下幾個部分: A/D 轉(zhuǎn)換電路、微控制 器及 USB6 制器接口電路、外接存儲器接口電路、系統(tǒng)外圍電路。 3.1 微控制器及USB空制器接口電路模塊 AT89C5131 單片機(jī)具有內(nèi)置 USB 控制器為核心部分,通過二者的結(jié)合才能實現(xiàn)上位機(jī)和 下位機(jī)之間的 USB信,從而使 PC 機(jī)獲得采集到的數(shù)據(jù)。 3.1.1 AT89C5131封裝及引腳說明 根據(jù)實際需要,選擇了 AT89C5131 乍為 USB 空制芯片。其引腳分配如圖 3.1 所示 西華大學(xué)課程設(shè)計說明書 7 下
11、面對 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 信號引腳。P0 口可作為地址/數(shù)據(jù)復(fù)用總線,作為地址總線時,P0.0 P0.7 上為低 8位地址;P1.0 P1.7 則與鍵盤接口信號 KIN0 KIN7 復(fù)用,同時 P1.0 和 P1.1 乂與 T2 和 T2EXM用,P1.2 則與可編程計數(shù)器隊列的外部時鐘輸入 ECI 復(fù)用,P1.3 P1.7 與 捕獲外部信號輸入或比較外部信號輸出 CEXSCEX4 復(fù)用。P2 口也可以
12、作為地址線,此時 P2.0 P2.7 上輸出高 8 位地址。P3 口各引腳均具有第二功能,P3.0 和 P3.1與申行信號接口 RX 聽日 TXD 復(fù)用,P3.2 和 P3.3 與外部觸發(fā)脈沖INT0和INT1復(fù)用,P3.4 和 P3.5 與定時器/ 計數(shù)器 T0 和 T1 復(fù)用,P3.6 和 P3.7 則與寫信號WR和讀信號RD復(fù)用;另外 P3.3 P3.7 還與 驅(qū)動 LED輸出引腳 LED6 LED3 復(fù)用。P4.0 P4.1 分別與 TWI申行時鐘 SCL 和 TWI申行數(shù)據(jù) SDAg 用。 D+ffi D-分別是 USB 總線正信號 I/O 引腳和負(fù)信號 I/O 引腳,復(fù)位后 D 刑
13、 D-分別是高 電平和低電平。VRE 牌 USB 總線參考電壓引腳,該引腳通過一個 1.5K Q 的電阻和 D 郴連可 以實現(xiàn)軟件斷開功能。本系統(tǒng)中就要利用 D 刑 A 兩個引腳與 US 酬口的兩根數(shù)據(jù)線 D 刑 D 一相連,從而實現(xiàn) US 或據(jù)通信。 RST 是單片機(jī)復(fù)位信號引腳,將 RSTI腳保持 64 個時鐘周期就會使芯片復(fù)位,當(dāng)芯片處 丁休眠或低功耗模式時復(fù)位可使芯片恢復(fù)到正常工作狀態(tài)。 ALE 是地址鎖存使能信號引腳, 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è)計說明書 8 只有當(dāng)讀寫外部程序存儲器和使用 MOVX 旨令時該引腳信號有效。PSENBI腳當(dāng)復(fù)位后是用來 檢測 ISP(在系統(tǒng)編程模式)的外部硬件的。EA 引腳接高電平時芯片是從內(nèi)部存儲
15、器尋址的, 必須接低電平才能使芯片從外部程序存儲器起始地址 0000h開始尋址。 3.1.2 AT89C5131 的 USB口電路 AT89C5131 內(nèi)置的 US 瞅備控制器能提供 AT89C513 例 USB 總線進(jìn)行數(shù)據(jù)交換的硬件接 口; USB 空制器要求 48MH 0.25%的參考時鐘,該參考時鐘通過 AT89C5131 的 PLL (鎖相環(huán)) 輸出,并能用來產(chǎn)生 12MHz 的全速時鐘提供給 USB 控制器和 USB 總線之間的數(shù)據(jù)交換。 AT89C513仰片機(jī)具有 USE口功能,因而可直接與 US 卵口連接,通過 USB 總線與 PC 機(jī)通 信。具體 US 毗口電路如圖 3.2
16、所示。 * / * * Z 圖3.2 USB接口電路 AT89C5131 的 USB 總線正信號 I/O 弓 I腳 D+ffi 負(fù)信號 I/O 弓 I腳 A 分別與 US 酬口 J1 的兩 根 西華大學(xué)課程設(shè)計說明書 9 數(shù)據(jù)線 D 削 D 一相連(電阻 R2 和 R3 為可選電阻),再通過 USES 接線即可與 PC 機(jī)的 USB 接口相連進(jìn)行通信。USB 總線參考電壓引腳 VRE 疝過 1.5K Q 的電阻 R1 與 D+ffi連,從而可以 實現(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腳與一個外部電容(圖中為 C1)連 接來給 US 眺供電源。PLLF 引腳作為 PLL(鎖相環(huán))低通濾波器的輸入引腳,需要與一個 RC 網(wǎng)絡(luò)(圖中為 R5 和 C3 構(gòu)成的低通濾波器相連。XTAL1 和 XTAL2 則分別是單片機(jī)的內(nèi)部反相 振蕩放大器的輸入端和輸出端21,它們與作為反饋元件的片外石英晶體 Y1 及電容 C4 和 C5 一起構(gòu)成一個自激振蕩器,產(chǎn)生單片機(jī)工作所需的時鐘信號。電容 C1、
18、電阻 R1 和按鍵 S1 則 構(gòu)成單片機(jī)復(fù)位電路,復(fù)位信號輸入單片機(jī) RST 引腳。 西華大學(xué)課程設(shè)計說明書 圖3.3 ADC0809的引腳圖 10 3.2 A/D轉(zhuǎn)換電路模塊 AD 轉(zhuǎn)換電路主要負(fù)責(zé)采集數(shù)據(jù),同時向單片機(jī)發(fā)送請求,轉(zhuǎn)換后的數(shù)據(jù)單片機(jī)接受后存 放在存儲芯片中。 3.2.1 A/D 轉(zhuǎn)換器 多路輸入信號需通過 A/D 轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號才能進(jìn)入單片機(jī),本系統(tǒng)選擇的 A/D 轉(zhuǎn) 換器是美國國家半導(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),可對 8 路 0 5V 輸入模擬電壓信號分時進(jìn)行轉(zhuǎn)換。其主要功能特點包括:分辨率為 8 位;最大不可 調(diào)誤差小丁 土 1LSB 單一+5V 電源供電,模擬輸入電壓范圍 0 5V;可鎖存三態(tài)輸出,輸出與 TTL 兼容;功耗為 15mW 典型轉(zhuǎn)換時間為 100 s。ADC0809 勺引腳如圖: ADC080 那用 28 腳雙列直插式封裝,其引腳功能說明如下: IN0-IN7 : 8 路輸入通道的模擬量輸入端口。 D0D7 8 位數(shù)字量輸出端口。 START ALE STAR 矽/ A/
20、D 轉(zhuǎn)換啟動控制端口,ALE 為地址鎖存控制信號端口。這兩個端 口可連在一起,通過軟件輸入一個正脈沖即可啟動 A/D 轉(zhuǎn)換。EOC OE EOC%轉(zhuǎn)換結(jié)束信號 脈沖輸出端口,OE 為輸出允許控制端口。這兩個端口也可連在一起,表示 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 時鐘輸入端。 ADDA、ADDB、ADDC: 8
21、路模擬開關(guān)的 3 位地址選通輸入端,用來選擇對應(yīng)的輸入通道。 其對應(yīng)關(guān)系如表 3.1 所小。 表3.1地址碼與輸入通道對應(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è)計說明書 11 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 ADC080 卵工作時序如圖 3.4 所示。其中 tWE 為最小 ALE 脈寬,典型值 100ns; tD 為模 擬開關(guān)延時,典型值:1 s; tWS 為最小啟動脈寬,典型值:100ns; tEOC 為轉(zhuǎn)換結(jié)束延時, 最大為 8 個時鐘周期:
22、+ 2 11 s; tC 為轉(zhuǎn)換時間,典型值:100 si s。 西華大學(xué)課程設(shè)計說明書 12 ADDC _ _ ZX _ 1 1 1 - 1 - to 內(nèi)部比較器輸可 * _ 1 1 1 STAR1 _ _ EOC th: I Ti 圖3.4 ADC0809工作時序 由圖 3.4 可看出,當(dāng)送入啟動信號 STAR 而,EOCt 一段時間保持高電平,表示上一次 A/D 轉(zhuǎn)換結(jié)束,在實際應(yīng)用中容易引起誤控。因此,啟動轉(zhuǎn)換后在軟件上應(yīng)延遲一段時間 (大 丁 tEOQ 之后再進(jìn)行查詢或開中斷。 3.2.2 A/D 轉(zhuǎn)換器接口電路 ADC080 們單片機(jī) AT89C5131 的接口電路如圖 3.5 所
23、示(單片機(jī)外圍電路見圖 3.2 ,本圖 中未再畫出)。ALE 西華大學(xué)課程設(shè)計說明書 13 圖3.5 AT89C5131與A/D轉(zhuǎn)換器和存儲器芯片的連接電路 單片機(jī)的 P0 口可分時輸出低 8 位地址和數(shù)據(jù),為了把地址信息分離出來保存,需外加地 址鎖存器(圖中為 74HC373,并由單片機(jī)的地址鎖存允許信號 ALE 的下降沿將地址信息鎖存 到地址鎖存器中。經(jīng)鎖存器鎖存后的低三位地址 Q0Q2 分別與 ADC0809 的地址譯碼引腳 ADDAADDC 接,以選通 IN0IN7 中的一個通道。ADC080 織有輸出三態(tài)鎖存器,故其 8 位輸 出數(shù)據(jù)引腳 D0D7W 直接與單片機(jī)數(shù)據(jù)總線 P0.0P
24、0.7 相連。 ADC080 啡內(nèi)無時鐘,圖 3.4 中利用雙 4 位二進(jìn)制計數(shù)器 74HC393 合 ADC080929!供時 鐘輸入。單片機(jī)的 ALE引腳與 74HC393勺時鐘輸入端 CLKjg連,計數(shù)器的一路輸出 Q1與 ADC0809 的時鐘輸入端 CLOC 咽連,ALE 引腳的時鐘頻率經(jīng) 74HC39分頻后提供給 ADC0809 乍為時 鐘信號。 單片機(jī) P2.7 引腳作為 ADC0809 勺片選信號。圖 3.4 中使用了 4 與非門芯片 74ALS00 和 6 反相器芯片74ALS04來控制ADC0809勺啟動和輸出轉(zhuǎn)換數(shù)據(jù)。當(dāng) P2.7 = 1, WR(P3.6)=0時, 74
25、ALS04的 6 號腳輸出為高電平,將其與 ADC0809 勺轉(zhuǎn)換啟動端口 STAR 種地址鎖存端口 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ù)總線上。本系統(tǒng)在軟件上采用延時的方法來等待轉(zhuǎn)換結(jié)束,因此未使用 轉(zhuǎn)換結(jié)束信號引腳EOC ADC0809勺正參考電壓輸入端 VREF 什)和主電源輸入端 VCC接+ 5V 電源,而負(fù)參考電壓輸入端 VREF-)和接地端 GND 勻接地。 西華大學(xué)課程設(shè)計說明書 14
26、 3.3 外接存儲器接口電路 外接存儲器接口電路是為了將單片機(jī)接受到的數(shù)據(jù)存儲起來,達(dá)到采樣功能 3.3.1 外接存儲器 AT89C513 仰片機(jī)片內(nèi)集成有兩個 Flash存儲空間 FMCffi FM其中 FMCJ 32K 字節(jié)的程 序存儲器(用戶空間),且支持并行編程和申行在線編程(ISP); FM1 為 3K 字節(jié)的引導(dǎo)啟動 程序和應(yīng)用編程接口( API),且只支持并行編程。因此在編寫單片機(jī)固件程序時可使用 FM0 的用戶空間進(jìn)行在線編程,但本系統(tǒng)設(shè)計時未采用在線編程的方法,而是直接將單片機(jī)程序 一 . . . .一. . . .一 一 一 存儲在一片外接 EEPROM 儲器芯片中,通過將
27、單片機(jī) EA接低電平,使單片機(jī)執(zhí)行外部程序 存儲器中的程序。 本系統(tǒng)使用的存儲器芯片是 ATME 公司的 64K(8KX8 位)EEPRO 成片 AT28C64 該存儲器 芯片采用 ATMEL 非揮發(fā)性 CMO 眼術(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 外接存儲器接口電路
28、 AT28C6M 單片機(jī) AT89C5131 的連接電路同樣如圖 3.4 所示。單片機(jī) P0 口輸出的地址信 息經(jīng)地址鎖存器 74HC373 鎖存后送入存儲器 AT28C64的低 8 位地址線 A0A同時 P0 口乂 AT28C64 勺數(shù)據(jù)線 I/O0I/O7 相連,可分時輸出存儲的數(shù)據(jù)。單片機(jī)的 P2 口作為高位地址線, 由丁 P2 口輸出具有鎖存的功能,因此不必加地址鎖存器,可直接與 AT28C64 勺高 5 位地址線 A8A12 相連。 單片機(jī)PSEN引腳與 AT28C64勺片選端CE和輸出允許端OE相連,從而選中外部存儲器 并允許從中讀取程序指令。單片機(jī)EA接低電平,使單片機(jī)執(zhí)行外部程
29、序程序存儲器中的程序。 西華大學(xué)課程設(shè)計說明書 15 3.4 系統(tǒng)外圍電路 系統(tǒng)的外圍電路包括:電源電路、復(fù)位電路、時鐘產(chǎn)生電路、 PLL 配置電路。 (1) 電源電路。本系統(tǒng)中所有器件均可使用 +5V 電源電壓;由丁 USBS 口電源;可通過 USB 總線從 PC 機(jī)獲得,因此本系統(tǒng)未使用外部電源,直接利用 USB 總線供電。 (2) 復(fù)位電路。單片機(jī) AT89C5131 的RST引腳是復(fù)位信號輸入引腳,復(fù)位的實現(xiàn)一般 可采用上電復(fù)位和外部手動復(fù)位兩種方式, 本設(shè)計采用手動復(fù)位方式,通過按鍵 S1 來進(jìn)行復(fù) 位操作,復(fù)位電路如圖 3.2 所示。 (3) 時鐘產(chǎn)生電路。單片機(jī) AT89C513
30、1 的時鐘發(fā)生器包括一個內(nèi)部振蕩器和一個鎖相環(huán) (PLL),所有外部設(shè)備以及 CPUB 內(nèi)核工作所需的時鐘信號都是由時鐘發(fā)生器產(chǎn)生的。 AT89C5131 的 XTAL1 和 XTAL2 分別是一個片內(nèi)反相放大器的輸入端和輸出端。若使用內(nèi) 部振蕩器產(chǎn)生時鐘信號,則將這兩個引腳與作為反饋元件的片外晶振和電容相連接構(gòu)成一個 自激振蕩器,連接電路如圖 3.2 所示。其中外接晶振的頻率本系統(tǒng)選擇 12MHz 而兩個電容 則通常選擇20pF 30pF 左右。當(dāng)然也可以選擇采用外部振蕩器來產(chǎn)生時鐘信號, 此時只需將 XTAL1 引腳直接作為外部時鐘的輸入即可。本系統(tǒng)的時鐘信號由內(nèi)部振蕩器產(chǎn)生。 (4) P
31、LL 配置電路。AT89C5131 的鎖相環(huán)(PLL)是用來產(chǎn)生和外部低頻時鐘(外圍設(shè)備 時鐘)同步的內(nèi)部高頻時鐘(USB寸鐘)的,即 USB接口所需的時鐘信號是由 PLL產(chǎn)生的。 PLL的內(nèi)部結(jié)構(gòu)如圖 3.5 所示,可以看出是一個閉環(huán)結(jié)構(gòu)。其中 N3:0 和 R3:0 均位丁 PLLDIV 寄存器,各為 4 位。內(nèi)部振蕩器的參考時鐘經(jīng)過 N 分頻和反饋回來的 USB 時鐘經(jīng)過 R 分頻進(jìn) 入 PFLD 進(jìn)行比較并產(chǎn)生合適的輸出信號。PLLCO 演存器的 PLLEN 位用來使能時鐘信號的產(chǎn) 生;而當(dāng) PLL 被鎖定時,PLLCOIW存器的 PLOCK:則會被置位,此時輸出的時鐘信號才是穩(wěn) 定的
32、信號。PLLF 是 PLL 的低通濾波器連接引腳,需要與一個 RC 網(wǎng)絡(luò)相連接,連接電路如圖 3.6 所示。 西華大學(xué)課程設(shè)計說明書 16 PLL 輸出的 USEH 鐘頻率為 48MHz 它與內(nèi)部振蕩器的輸入時鐘頻率之間的數(shù)學(xué)關(guān)系是: USBtlk=OSCclk x (R+1) / N+1。因此為了產(chǎn)生 48MHZ 勺時鐘信號,必須根據(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è)計 本系統(tǒng)在軟件上主要包括三部分:固件程序、 USB 設(shè)備驅(qū)動程序以及應(yīng)用程序。通過固 件程序和 USBB 動程序使 PC 機(jī)可以與 US 瞅備進(jìn)行正常的通信,并且數(shù)據(jù)采集系統(tǒng)可以進(jìn)行 正常的數(shù)據(jù)采集;通過界面程序的設(shè)計使采集到的數(shù)據(jù)波形圖可以在 PC 機(jī)界面上顯示出來。 以下將分別進(jìn)行介紹。 USB PLLCON.: 皈 圖3.6 PLL結(jié)構(gòu)內(nèi)部結(jié)構(gòu)框圖 西華大學(xué)
34、課程設(shè)計說明書 17 3.5.1 固件程序 固件設(shè)計主要完成兩個方面的工作:控制 A/D 的采樣和通過 USB 空制器與主機(jī)通信。由 丁單片機(jī)系統(tǒng)控制 A/D 采樣的工作非常簡單,此處不做介紹。 對丁固件程序的編程,其基本結(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時鐘 Pll_enable(); /PLLCON 寄存器的 D1 位 PLLEN = 1,使能 PLL while(Pll
36、_check_clk(); 等 待PLL被 鎖 定 , 輸 出 穩(wěn) 定 的 時 鐘 void usb_configure_endpoint(Uchar ep_num,Uchar ep_type) Usb_select_ep(ep_num); / 選擇端點 Usb_configure_ep_type(ep_type); 配 置 端 void usb_reset_endpoint(Uchar ep_num) UEPRST=0 x01ep_num; 復(fù)位選擇的端點 UEPRST=0 x00; /復(fù)位結(jié)束活零 void usb_var_init(void) endpoint_statusEP_CONT
37、ROL=0 x00; endpoint_statusEP_IN=0 x00; 端點 0 和端點 1 復(fù)位 西華大學(xué)課程設(shè)計說明書 18 usb_connected=FALSE; usb_configuration_nb=0 x00; void usb_ep_init(void) usb_configure_endpoint(EP_IN,BULK_IN); 端點 1 配置為批量 IN 類型 usb_reset_endpoint(EP_IN); 復(fù)位端點 1FIFO usb_configure_endpoint(EP_OUT,BULK_OUT); 端點 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ù)位端點 2
39、FIFO 選擇端點 0 端點 0 是否收到主機(jī)發(fā)出的 SETUP 包 設(shè)備枚舉 /選擇端點 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è)計說明書 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ū)動程序 驅(qū)動程序是操作系統(tǒng)中控制和連接硬件的關(guān)鍵模塊,它給連接到計算機(jī)的硬件設(shè)備提供 軟件接口。在
41、本系統(tǒng)中,共用到三個 USE點:控制端點 0、BULK IN 端點 1 和 BULK OUT 點 2;而驅(qū)動程序的主要功能是實現(xiàn)對輸入和輸出端點的讀寫操作。明確以上信息后,就可 通過DriverWorks 的程序向?qū)煽梢酝瓿蓪?USF&備 BULKfe 型端點進(jìn)行讀寫的驅(qū)動程序工 程文件了。然后需要在 Visual C+6.0 的環(huán)境中對生成的驅(qū)動程序進(jìn)行編譯生成.sys 文件, 并且對自動生成的INF安裝文件進(jìn)行適當(dāng)?shù)男薷募纯赏瓿沈?qū)動程序的安裝使用。本系統(tǒng)驅(qū)動 程序設(shè)計的重點是對端點的讀寫操作函數(shù),其中寫操作函數(shù)編寫如下: NTSTATUS USBDevice:Write(KIr
42、p I) ( tEntering USBDevice:Write,IdwMaxSize)56 ( ASSERT(dwMaxSize); dwTotalSize=dwMaxSize; 聲明一個存儲對象 KMemory Mem(I.Mdl(); 為 Irp completion 分配一個新的 結(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)建一個 URB,將批量數(shù)據(jù)寫入管道 PURB pUrb=m_Endpoint2OUT.BuildBulkTransfer( Mem, 數(shù)據(jù)的來源? dwTotalSize, 讀取的數(shù)據(jù)字節(jié)數(shù) FALSE, 方向(FALSE=OUT) NULL 連接下一個 URB ); if(pUrb=NULL) 西華大學(xué)課程設(shè)計說明書 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等.壓縮文件請下載最新的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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 組織結(jié)構(gòu)設(shè)計與崗位分類
- 工程管理背景知識試題及答案
- 工程經(jīng)濟(jì)理論巧用試題及答案
- 經(jīng)濟(jì)師考試常用公式試題及答案
- 如何評估項目投資風(fēng)險試題及答案
- 冒險島家族辦公室設(shè)計
- 銀行業(yè)務(wù)風(fēng)險防控手冊
- 酒店客房部服務(wù)質(zhì)量手冊
- 網(wǎng)絡(luò)營銷推廣與廣告投放協(xié)議
- 行政管理經(jīng)濟(jì)法概論考試記憶法與試題及答案
- 天府國際生物城C7-1實驗室項目環(huán)境影響報告
- 家校攜手決戰(zhàn)中考-九年級家長會課件
- 教育公共基礎(chǔ)知識整理版
- 如何預(yù)防與處理勞動爭議培訓(xùn)課件
- JJG 1148-2022電動汽車交流充電樁(試行)
- 儲煤場安全管理規(guī)范
- 小學(xué)體育《立定跳遠(yuǎn)》教學(xué)設(shè)計
- 青島市城市規(guī)劃管理技術(shù)規(guī)定
- 上海市各類建筑工程造價參考標(biāo)準(zhǔn)
- 2022糧食知識競賽真題模擬及答案
評論
0/150
提交評論