基于FPGA的數(shù)字電壓表的設(shè)計(jì)_第1頁
基于FPGA的數(shù)字電壓表的設(shè)計(jì)_第2頁
基于FPGA的數(shù)字電壓表的設(shè)計(jì)_第3頁
基于FPGA的數(shù)字電壓表的設(shè)計(jì)_第4頁
基于FPGA的數(shù)字電壓表的設(shè)計(jì)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 PAGE 32基于FPGA的數(shù)字電壓表的設(shè)計(jì) 摘 要電子設(shè)計(jì)自動(dòng)化(electronic design automation,EDA)是近幾年迅速發(fā)展起來的將計(jì)算機(jī)軟件、硬件、微電子技術(shù)交叉運(yùn)用的現(xiàn)代電子設(shè)計(jì)技術(shù)。其中EDA設(shè)計(jì)語言中的VHDL語言是一種快速的電路設(shè)計(jì)工具,功能涵蓋了電路描述、電路綜合、電路仿真等三大電路設(shè)計(jì)內(nèi)容。本電壓表的電路設(shè)計(jì)正是用VHDL語言完成的。此次設(shè)計(jì)主要應(yīng)用的軟件是美國ALTERA公司自行設(shè)計(jì)的一種CAE軟件工具,即MAX+PLUS 。本次所設(shè)計(jì)的電壓表的測量范圍是05V,精度為0.01V。此電壓表的設(shè)計(jì)特點(diǎn)為:通過軟件編程下載到硬件實(shí)現(xiàn),設(shè)計(jì)周期短,開發(fā)效率

2、高。關(guān)鍵詞:電子設(shè)計(jì)自動(dòng)化(EDA);FPGA;VHDL;A/D采集;數(shù)字電壓表 Design of Dital Voltmeter Based on FPGAXie Xing Du(College of Zhang Jiajie, Jishou University, Jishou,Hunan 416000)AbstractThe design of digital system is becoming faster, bulkier ,smaller and lighter than before. Electronic design automation is in the last f

3、ew years quickly develop, it makes use of software , hardware ,micro-electronics technology to form a course of electronic design. Among them , the VHDL language of EDA is a kind of tool of fast circuit design , the function covered the circuit describe , the circuit synthesize , the circuit imitate

4、 the true etc . The circuit of the design that use VHDL language to complete . The this time design is primarily the applied software is MAX PLUS which is made by the United States ALTERA company.This systems range is -5v to +5v and precision is 0.01v.Characteristics of this electric voltage watch i

5、s :Pass the software program to download the hardware o realize , design the period is short ,development the efficiency is high. Key words: Electronic Design Automation (EDA);FPGA;VHDL;A/D Acquisition digital voltage目 錄 TOC o 1-3 h z u HYPERLINK l _Toc262131456 第一章 緒 論 PAGEREF _Toc262131456 h 1 HYP

6、ERLINK l _Toc262131457 1.1研究目的及意義 PAGEREF _Toc262131457 h 1 HYPERLINK l _Toc262131458 1.2本課題國內(nèi)外研究概況、應(yīng)用前景 PAGEREF _Toc262131458 h 1 HYPERLINK l _Toc262131459 1.3研究的主要內(nèi)容 PAGEREF _Toc262131459 h 2 HYPERLINK l _Toc262131460 第二章 相關(guān)技術(shù)簡介 PAGEREF _Toc262131460 h 3 HYPERLINK l _Toc262131461 2.1 EDA技術(shù)的簡介 PAGE

7、REF _Toc262131461 h 3 HYPERLINK l _Toc262131462 2.2 FPGA的概念與特點(diǎn) PAGEREF _Toc262131462 h 3 HYPERLINK l _Toc262131463 2.3 VHDL語言概述 PAGEREF _Toc262131463 h 5 HYPERLINK l _Toc262131464 2.4軟件工具M(jìn)AX+PLUSII的簡介 PAGEREF _Toc262131464 h 6 HYPERLINK l _Toc262131465 第三章 硬件電路設(shè)計(jì) PAGEREF _Toc262131465 h 8 HYPERLINK

8、l _Toc262131466 3.1硬件電路框圖 PAGEREF _Toc262131466 h 8 HYPERLINK l _Toc262131467 3.2 ADC0809模塊 PAGEREF _Toc262131467 h 9 HYPERLINK l _Toc262131468 3.2.1 A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo) PAGEREF _Toc262131468 h 9 HYPERLINK l _Toc262131469 3.2.2 ADC0809工作原理 PAGEREF _Toc262131469 h 9 HYPERLINK l _Toc262131470 3.2.3.工作時(shí)序 PAG

9、EREF _Toc262131470 h 11 HYPERLINK l _Toc262131471 3.3 FPGA模塊 PAGEREF _Toc262131471 h 11 HYPERLINK l _Toc262131472 第四章FPGA功能模塊的設(shè)計(jì)及仿真 PAGEREF _Toc262131472 h 14 HYPERLINK l _Toc262131473 4.2控制模塊 PAGEREF _Toc262131473 h 14 HYPERLINK l _Toc262131474 4.3數(shù)據(jù)處理模塊 PAGEREF _Toc262131474 h 15 HYPERLINK l _Toc2

10、62131475 4.4掃描、顯示模塊 PAGEREF _Toc262131475 h 15 HYPERLINK l _Toc262131476 第五章 總結(jié) PAGEREF _Toc262131476 h 17 HYPERLINK l _Toc262131477 參考文獻(xiàn) PAGEREF _Toc262131477 h 18 HYPERLINK l _Toc262131478 附 錄 PAGEREF _Toc262131478 h 19 HYPERLINK l _Toc262131479 附錄一:總電路圖 PAGEREF _Toc262131479 h 19 HYPERLINK l _Toc

11、262131480 附錄二:程序清單 PAGEREF _Toc262131480 h 20 HYPERLINK l _Toc262131481 致 謝 PAGEREF _Toc262131481 h 24基于FPGA的數(shù)字電壓表的設(shè)計(jì) 緒論第一章 緒 論研究目的及意義數(shù)字電壓表(Digital Voltmeter)簡稱DVM,是大學(xué)物理教學(xué)和實(shí)驗(yàn)中的重要儀表,其數(shù)字化是指將連續(xù)的模擬電壓量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字量并加以顯示。傳統(tǒng)的實(shí)驗(yàn)用模擬電壓表功能單一、精度低、體積大,且存在讀數(shù)時(shí)的視差,長時(shí)間連續(xù)使用易引起視覺疲勞,使用中存在諸多不便。而目前數(shù)字萬用表的內(nèi)部核心多是模數(shù)轉(zhuǎn)換器,其精度很大

12、程度上限制了整個(gè)表的準(zhǔn)確度,可靠性較差。傳統(tǒng)的數(shù)字電壓表設(shè)汁通常以大規(guī)模ASIC(專用集成電路)為核心器件,并輔以少量中規(guī)模集成電路及顯示器件構(gòu)成。ASIC完成從模擬量的輸入到數(shù)字量的輸出,是數(shù)字電壓表的心臟。這種電壓表的設(shè)計(jì)簡單、精確度高,但是這種設(shè)計(jì)方法由于采用了ASIC器件使得它欠缺靈活性,其系統(tǒng)功能固定,難以更新擴(kuò)展。后來發(fā)展起來的用微處理器(單片機(jī))控制通用A/D轉(zhuǎn)換器件的數(shù)字電壓表的設(shè)計(jì)的靈活性明顯提高,系統(tǒng)功能的擴(kuò)展變得簡單,但是由于微處理器的引腳數(shù)量有限,其控制轉(zhuǎn)換速度和靈活性還是不能滿足日益發(fā)展的電子工業(yè)的需求。而應(yīng)用EDA(電子設(shè)汁自動(dòng)化)技術(shù)及FPGA(現(xiàn)場可編程門陣列)

13、,其集成度高、速度快、性能十分可靠、用戶可自由編程且編程語言通俗易懂、系統(tǒng)功能擴(kuò)展非常方便。采用FPGA芯片控制通用A/D轉(zhuǎn)換器可使速度、靈活性大大優(yōu)于由微處理器和通用A/D轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表。本文采用8位AD轉(zhuǎn)換器ADC0809對模擬電壓采樣,以一片高性能FPGA芯片為控制核心,以軟件實(shí)現(xiàn)了諸多硬件功能,對電壓信號的轉(zhuǎn)換結(jié)果進(jìn)行準(zhǔn)確實(shí)時(shí)的運(yùn)算處理并送出顯示。系統(tǒng)的主要功能都集成在一塊芯片上,大大減少了系統(tǒng)的分立元件數(shù)量,降低了功耗,增加了可靠性,較好地實(shí)現(xiàn)了電壓的精準(zhǔn)測量。1.2本課題國內(nèi)外研究概況、應(yīng)用前景科學(xué)技術(shù)的發(fā)展為測量儀器、儀表提供了新原理和新技術(shù)以及新型的元、器體,同 時(shí)又對

14、測量儀表提出了更新、更高的要求。數(shù)字電壓表(簡寫為 DVM)就是在精密電測量技術(shù)、計(jì)算技術(shù)、自動(dòng)化技術(shù)和電子技術(shù)的基礎(chǔ)上產(chǎn)生和發(fā)展起來的。 數(shù)字式儀表是能把連續(xù)的被測量自動(dòng)地變成斷續(xù)的、用數(shù)字編碼方式的、并以十進(jìn) 制數(shù)字自動(dòng)顯示測量結(jié)果的一種測量儀表。這是一種新型儀表,它把電子技術(shù)、計(jì)算技術(shù)、自動(dòng)化技術(shù)的成果與精密電測量技術(shù)密切的結(jié)合在一起。成為儀器、儀表領(lǐng)域中獨(dú) 立而完整的一個(gè)分支。 1952 年,美國NLS公司首創(chuàng)四位數(shù)字電壓表,到現(xiàn)在的五十多年中經(jīng)過了不斷的改進(jìn)和提高。電壓表是從電位差計(jì)的自動(dòng)化考慮中研制成功的,開始是四位然后是五位、六位,而現(xiàn)在發(fā)展到七位、八位數(shù)碼顯示;從最初的一、二種

15、工作原理發(fā)展到幾十種原理,從最早采用繼電器、電子管發(fā)展到全晶體管化、集成電路化、微處理器化;認(rèn)一臺 DVM 只能測一、二種參數(shù)到能測十幾種參數(shù)的多用型;顯示器件也從輝光數(shù)碼顯示發(fā)展 到等離子體、發(fā)光二極管、液晶顯示等。電壓表的體積和功耗越來越小,重量不斷減輕,價(jià)格也逐步下降,可靠性越來越高,量程范圍也逐漸擴(kuò)大?;仡櫼幌码妷罕淼陌l(fā)展過程,大致可分為以下三個(gè)階段: 數(shù)字化階段。5060 年代中期,電壓表的特點(diǎn)是運(yùn)用各種原理實(shí)現(xiàn)模數(shù)(AD) 轉(zhuǎn)換,即將模擬量轉(zhuǎn)化成數(shù)字量,從而實(shí)現(xiàn)測量儀表的數(shù)字化。 高準(zhǔn)確度階段。由于精密電測量的需要,電壓表開始向高準(zhǔn)確度、高位數(shù)方向發(fā)展,出現(xiàn)了所謂復(fù)合型原理的儀表。

16、 智能化階段。60 年代末期,電子技術(shù)和工藝結(jié)構(gòu)有了飛躍的發(fā)展,而大規(guī)模集成 電路(LSI)與計(jì)算機(jī)技術(shù)相結(jié)合的產(chǎn)物是微處理器(簡寫為 P)。1972 年,美國 Intel 公司首創(chuàng)微處理器不久即研制出微處理器式數(shù)字電壓表,實(shí)現(xiàn)了電壓表數(shù)據(jù)處理自動(dòng)化和可編程序。因?yàn)閹в写尜A器并使用軟件,所以可進(jìn)行信息處理,可通過標(biāo)準(zhǔn)接口組成自動(dòng)測試系統(tǒng)(簡寫為 ATS)。這些儀表除了完成原有電壓表的各種功能外,還能夠自校、 自檢,保證了自動(dòng)測量的高準(zhǔn)確度,實(shí)現(xiàn)了儀器、儀表的所謂“智能化”。當(dāng)前,智能表發(fā)展十分迅速,而微處理式電壓表在智能儀表中占的比重最大。智能化的電壓表為實(shí)現(xiàn)各種物理量的動(dòng)態(tài)測量提供了可能。1

17、.3研究的主要內(nèi)容本課題主要研究數(shù)字電壓表的一般設(shè)計(jì)原理,并結(jié)合新型的可編程邏輯器件(FPGA)設(shè)計(jì)了一種方便、實(shí)用的數(shù)字電壓表。我主要設(shè)計(jì)軟件那部分。采用ACEX1k30TC144-3的一款FPGA芯片實(shí)現(xiàn)電壓表的數(shù)碼顯示的功能。設(shè)計(jì)中所要求設(shè)計(jì)的數(shù)字電壓表為4位,由三大部分組成,數(shù)據(jù)轉(zhuǎn)換模塊進(jìn)行模數(shù)轉(zhuǎn)換后到數(shù)據(jù)處理模塊處理得到BCD碼轉(zhuǎn)換成能被數(shù)碼管識別的字型編碼,再到顯示模塊,每一部分又包含了若干子電路,將各電路組合起來,就構(gòu)成了一個(gè)整體。硬件設(shè)計(jì)所需的硬件主要有:課變直流電平輸出電路、ADC0809、七段顯示器、ACEX1k30TC144-3適配器?;贔PGA的數(shù)字電壓表的設(shè)計(jì) 技術(shù)

18、軟件及簡介第二章 相關(guān)技術(shù)簡介2.1 EDA技術(shù)的簡介隨著微電子技術(shù)和計(jì)算機(jī)技術(shù)的不斷發(fā)展,在涉及機(jī)械、電子、通信、航空航天、化工、礦產(chǎn)、生物、醫(yī)學(xué)、軍事等領(lǐng)域的電子系統(tǒng)設(shè)計(jì)工作中,EDA技術(shù)的含量正以驚人的速度上升,它已成為當(dāng)今電子技術(shù)發(fā)展的前沿之一。EDA以計(jì)算機(jī)為工具,設(shè)計(jì)者在其軟件平臺上,用硬件描述語言HDL完成設(shè)計(jì)文件,然后由計(jì)算機(jī)自動(dòng)地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、布局、布線和仿真,直至對于特定目標(biāo)芯片的適配編譯、邏輯映射和編程下載等工作。利用EDA技術(shù)(特指IES/ASIC自動(dòng)設(shè)計(jì)技術(shù))進(jìn)行電子系統(tǒng)的設(shè)計(jì),具有以下幾個(gè)特點(diǎn): 用軟件的方式設(shè)計(jì)硬件; 用軟件方式設(shè)計(jì)的系統(tǒng)到

19、硬件系統(tǒng)的轉(zhuǎn)換是由有關(guān)的開發(fā)軟件自動(dòng)完成的; 設(shè)計(jì)過程中可用有關(guān)軟件進(jìn)行各種仿真; 系統(tǒng)可現(xiàn)場編程,在線升級; 整個(gè)系統(tǒng)可集成在一個(gè)芯片上,體積小、功耗低、可靠性高;6從以前的“組合設(shè)計(jì)”轉(zhuǎn)向真正的“自由設(shè)計(jì)”;7設(shè)計(jì)的移植性好,效率高;8非常適合分工設(shè)計(jì),團(tuán)體協(xié)作。因此,EDA技術(shù)是現(xiàn)代電子設(shè)計(jì)的發(fā)展趨勢。EDA技術(shù)的理論基礎(chǔ),設(shè)計(jì)工具,設(shè)計(jì)器件應(yīng)是這樣的關(guān)系:設(shè)計(jì)師用硬件描述語言HDL描繪出硬件的結(jié)構(gòu)或硬件的行為,再用設(shè)計(jì)工具將這些描述綜合映射成與半導(dǎo)體工藝有關(guān)的硬件配置文件,半導(dǎo)體器件FPGA則是這些硬件配置文件的載體.當(dāng)這些FPGA器件加載,配置上不同的文件時(shí),這個(gè)器件便具有了相應(yīng)的功

20、能.在這一系列的設(shè)計(jì),綜合,仿真,驗(yàn)證,配置的過程中,現(xiàn)代電子設(shè)計(jì)理論和現(xiàn)代電子設(shè)計(jì)方法貫穿于其中。以HDL語言表達(dá)設(shè)計(jì)意圖,以FPGA作為硬件實(shí)現(xiàn)載體,以計(jì)算機(jī)為設(shè)計(jì)開發(fā)工具,以EDA軟件為開發(fā)環(huán)境的現(xiàn)代電子設(shè)計(jì)方法日趨成熟.在這里,筆者認(rèn)為,要振興我國電子產(chǎn)業(yè),需要各相關(guān)專業(yè)的人士共同努力.HDL語言的語法語義學(xué)研究與半導(dǎo)體工藝相關(guān)聯(lián)的編譯映射關(guān)系的研究,深亞微米半導(dǎo)體工藝與EDA設(shè)計(jì)工具的仿真,驗(yàn)證及方法的研究,這需要半導(dǎo)體專家和操作系統(tǒng)專家共同努力,以便能開發(fā)出更加先進(jìn)的EDA工具軟件.軟件,硬件協(xié)同開發(fā)縮短了電子設(shè)計(jì)周期,加速了電子產(chǎn)品更新?lián)Q代的步伐.毫不夸張地說,EDA工程是電子產(chǎn)

21、業(yè)的心臟起搏器,是電子產(chǎn)業(yè)飛速發(fā)展的原動(dòng)力.2.2 FPGA的概念與特點(diǎn)FPGA(FieldProgrammable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計(jì),可以經(jīng)過簡單的綜合與布局,快速的燒錄至 FPGA 上進(jìn)行測試,是現(xiàn)代 IC 設(shè)計(jì)驗(yàn)證的技術(shù)主流。這些可編輯元件可以被用來實(shí)現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、

22、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。 系統(tǒng)設(shè)計(jì)師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個(gè)電路試驗(yàn)板被放在了一個(gè)芯片里。一個(gè)出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計(jì)者而改變,所以FPGA可以完成所需要的邏輯功能。 FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計(jì),而且消耗更多的電能。但是他們也有很多的優(yōu)點(diǎn)比如可以快速成品,可以被修改來改正程序中的錯(cuò)誤和更便宜的造價(jià)。廠商也可能會提供便宜的但是編輯能力差的FP

23、GA。因?yàn)檫@些芯片有比較差的可編輯能力,所以這些設(shè)計(jì)的開發(fā)是在普通的FPGA上完成的,然后將設(shè)計(jì)轉(zhuǎn)移到一個(gè)類似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。 早在1980年代中期,F(xiàn)PGA已經(jīng)在PLD設(shè)備中扎根。CPLD和FPGA包括了一些相對大數(shù)量的可以編輯邏輯單元。CPLD邏輯門的密度在幾千到幾萬個(gè)邏輯單元之間,而FPGA通常是在幾萬到幾百萬。 CPLD和FPGA的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。CPLD是一個(gè)有點(diǎn)限制性的結(jié)構(gòu)。這個(gè)結(jié)構(gòu)由一個(gè)或者多個(gè)可編輯的結(jié)果之和的邏輯組列和一些相對少量的鎖定的寄存器。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預(yù)計(jì)的延遲時(shí)間和邏輯單元對連

24、接單元高比率的優(yōu)點(diǎn)。而FPGA卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,但是結(jié)構(gòu)卻復(fù)雜的多。 CPLD和FPGA另外一個(gè)區(qū)別是大多數(shù)的FPGA含有高層次的內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。一個(gè)因此有關(guān)的重要區(qū)別是很多新的FPGA支持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設(shè)計(jì)隨著系統(tǒng)升級或者動(dòng)態(tài)重新配置而改變。一些FPGA可以讓設(shè)備的一部分重新編輯而其他部分繼續(xù)正常運(yùn)行。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Ou

25、tput Block)和內(nèi)部連線(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)主要有: 1)采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。 3)FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。 4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。 5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。 可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對片內(nèi)的RAM進(jìn)行編程。

26、用戶可以根據(jù)不同的配置模式,采用不同的編程方式。加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。2.3 VHDL語言概述VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Descriptio

27、n Language,誕生于 1982 年。1987 年底,VHDL被 IEEE 和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言。 VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)

28、設(shè)計(jì)的基本點(diǎn)。VHDL 語言能夠成為標(biāo)準(zhǔn)化的硬件描述語言并獲得廣泛應(yīng)用 , 它自身必然具有很多其他硬件描述語言所不具備的優(yōu)點(diǎn)。歸納起來 ,VHDL 語言主要具有以下優(yōu)點(diǎn):(1) VHDL 語言功能強(qiáng)大 , 設(shè)計(jì)方式多樣 VHDL 語言具有強(qiáng)大的語言結(jié)構(gòu), 只需采用簡單明確的VHDL語言程序就可以描述十分復(fù)雜的硬件電路。同時(shí), 它還具有多層次的電路設(shè)計(jì)描述功能。此外 ,VHDL 語言能夠同時(shí)支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì)實(shí)現(xiàn), 這是其他硬件描述語言所不能比擬的。VHDL 語言設(shè)計(jì)方法靈活多樣 , 既支持自頂向下的設(shè)計(jì)方式, 也支持自底向上的設(shè)計(jì)方法; 既支持模塊化設(shè)計(jì)方法, 也支持層次化

29、設(shè)計(jì)方法。 (2) VHDL 語言具有強(qiáng)大的硬件描述能力 VHDL 語言具有多層次的電路設(shè)計(jì)描述功能,既可描述系統(tǒng)級電路 , 也可以描述門級電路;描述方式既可以采用行為描述、寄存器傳輸描述或者結(jié)構(gòu)描述,也可以采用三者的混合描述方式。同時(shí),VHDL 語言也支持慣性延遲和傳輸延遲,這樣可以準(zhǔn)確地建立硬件電路的模型。VHDL 語言的強(qiáng)大描述能力還體現(xiàn)在它具有豐富的數(shù)據(jù)類型。VHDL 語言既支持標(biāo)準(zhǔn)定義的數(shù)據(jù)類型,也支持用戶定義的數(shù)據(jù)類型,這樣便會給硬件描述帶來較大的自由度。 (3) VHDL 語言具有很強(qiáng)的移植能力 VHDL 語言很強(qiáng)的移植能力主要體現(xiàn)在: 對于同一個(gè)硬件電路的 VHDL 語言描述

30、, 它可以從一個(gè)模擬器移植到另一個(gè)模擬器上、從一個(gè)綜合器移植到另一個(gè)綜合器上或者從一個(gè)工作平臺移植到另一個(gè)工作平臺上去執(zhí)行。 (4) VHDL 語言的設(shè)計(jì)描述與器件無關(guān) 采用 VHDL 語言描述硬件電路時(shí), 設(shè)計(jì)人員并不需要首先考慮選擇進(jìn)行設(shè)計(jì)的器件。這樣做的好處是可以使設(shè)計(jì)人員集中精力進(jìn)行電路設(shè)計(jì)的優(yōu)化, 而不需要考慮其他的問題。當(dāng)硬件電路的設(shè)計(jì)描述完成以后 ,VHDL 語言允許采用多種不同的器件結(jié)構(gòu)來實(shí)現(xiàn)。 (5) VHDL 語言程序易于共享和復(fù)用 VHDL 語言采用基于庫 ( library) 的設(shè)計(jì)方法。在設(shè)計(jì)過程中 , 設(shè)計(jì)人員可以建立各種可再次利用的模塊 , 一個(gè)大規(guī)模的硬件電路的

31、設(shè)計(jì)不可能從門級電路開始一步步地進(jìn)行設(shè)計(jì) , 而是一些模塊的累加。這些模塊可以預(yù)先設(shè)計(jì)或者使用以前設(shè)計(jì)中的存檔模塊, 將這些模塊存放在庫中 , 就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用。 由于 VHDL 語言是一種描述、模擬、綜合、優(yōu)化和布線的標(biāo)準(zhǔn)硬件描述語言 , 因此它可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間方便地進(jìn)行交流和共享, 從而減小硬件電路設(shè)計(jì)的工作量, 縮短開發(fā)周期。2.4軟件工具M(jìn)AX+PLUSII的簡介Max+plus是Altera公司提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界上最大可編程邏輯器件的供應(yīng)商之一。Max+plus界面友好,使用便捷,被譽(yù)為業(yè)界最易用易學(xué)的EDA軟件。在Max

32、+plus上可以完成設(shè)計(jì)輸入、元件適配、時(shí)序仿真和功能仿真、編程下載整個(gè)流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,是設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程,也是本人在整個(gè)課題的研究過程中選用的EDA開發(fā)工具。MAX+PLUSII Complier(編譯器)是MAX+PLUSII軟件的核心。它支持Altera的多種PLD器件,能提供真正與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境和強(qiáng)有力的邏輯綜合能力。Max+plus特點(diǎn):1、開放的界面 Max+plus支持與Cadence,Exemplarlogic,Mentor Graphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。 2、

33、與結(jié)構(gòu)無關(guān) Max+plus系統(tǒng)的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可編程邏輯器件,提供了世界上唯一真正與結(jié)構(gòu)無關(guān)的可編程邏輯設(shè)計(jì)環(huán)境。 3、完全集成化 Max+plus的設(shè)計(jì)輸入、處理與較驗(yàn)功能全部集成在統(tǒng)一的開發(fā)環(huán)境下,這樣可以加快動(dòng)態(tài)調(diào)試、縮短開發(fā)周期。 4、豐富的設(shè)計(jì)庫 Max+plus提供豐富的庫單元供設(shè)計(jì)者調(diào)用,其中包括74系列的全部器件和多種特殊的邏輯功能(Macro-Function)以及新型的參數(shù)化的兆功能(Mage-Function)。 5、模塊化工具

34、設(shè)計(jì)人員可以從各種設(shè)計(jì)輸入、處理和較驗(yàn)選項(xiàng)中進(jìn)行選擇從而使設(shè)計(jì)環(huán)境用戶化。 6、硬件描述語言(HDL) Max+plus軟件支持各種HDL設(shè)計(jì)輸入選項(xiàng),包括VHDL、Verilog HDL和Altera自己的硬件描述語言AHDL。 7、Opencore特征 Max+plus軟件具有開放核的特點(diǎn),允許設(shè)計(jì)人員添加自己認(rèn)為有價(jià)值的宏函數(shù)。基于FPGA的數(shù)字電壓表的設(shè)計(jì) 硬件電路設(shè)計(jì)第三章 硬件電路設(shè)計(jì)3.1硬件電路框圖數(shù)字電壓表,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量(直流或交流輸入電壓)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。由于數(shù)字式儀器具有讀數(shù)準(zhǔn)確方便、精度高、誤差小、靈敏度高和分辨率

35、高、測量速度快等特點(diǎn)而倍受青睞。通常按A/D轉(zhuǎn)換方式的不同將DVM分成兩大類,一類是直接轉(zhuǎn)換型;另一類是間接轉(zhuǎn)換型,又稱積分型,包括電壓一頻率變換。而由前面分析可知本課題的核心電路路由FPGA完成,選用了Altera公司的EPF10K10LC84-4芯片,用VHDL語言對它進(jìn)行設(shè)計(jì),本設(shè)計(jì)是由三大模塊組成,(1)AD轉(zhuǎn)換模塊,組要負(fù)責(zé)將模擬信號轉(zhuǎn)換為數(shù)字信號,以便送FPGA處理;(2)FPGA模塊,激活A(yù)/D轉(zhuǎn)換器動(dòng)作、接收A/D轉(zhuǎn)換器傳遞過來的數(shù)字轉(zhuǎn)換值,將接收到的轉(zhuǎn)換值調(diào)整成對應(yīng)的數(shù)字信號;(3)顯示模塊,將數(shù)據(jù)處理模塊輸出的4位BCD碼譯成相應(yīng)7段數(shù)碼驅(qū)功值,使模擬電壓值在4個(gè)數(shù)碼管上顯

36、示。工作時(shí),系統(tǒng)按一定的速率采集輸入的模擬電壓,經(jīng)ADC0809CCN轉(zhuǎn)換為8位數(shù)字量,此8位數(shù)字量經(jīng)FPGA處理得到模擬電壓的數(shù)字碼,再輸入數(shù)碼管獲得被測電壓的數(shù)字顯示。此電壓表的測量范圍:05V,四位數(shù)碼管顯示。整個(gè)數(shù)字電壓表的硬件結(jié)構(gòu)如3.1圖所示。圖3.1硬件結(jié)構(gòu)圖3.2 ADC0809模塊ADC0809是采樣分辨率為8位的、以逐次逼近原理進(jìn)行模數(shù)轉(zhuǎn)換的器件。其內(nèi)部有一個(gè)8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個(gè)進(jìn)行A/D轉(zhuǎn)換。3.2.1 A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)(1)分辨率分辨率是指A/D轉(zhuǎn)換器能分辨的最小模擬輸入量。通常用能轉(zhuǎn)換成的數(shù)字量的位

37、數(shù)來表示,如8位、10位、12位、16位等。位數(shù)越高,分辨率越高。例如,對于8位A/D轉(zhuǎn)換器,當(dāng)輸入電壓滿刻度為5V時(shí),其輸出數(shù)字量的變化范圍為0255,轉(zhuǎn)換電路對輸入模擬電壓的分辨能力為5V/25519.5mV。(2)轉(zhuǎn)換時(shí)間轉(zhuǎn)換時(shí)間是A/D轉(zhuǎn)換器完成一次轉(zhuǎn)換所需的時(shí)間。轉(zhuǎn)換時(shí)間是編程時(shí)必須考慮的參數(shù)。若CPU采用無條件傳送方式輸入A/D轉(zhuǎn)換后的數(shù)據(jù),則從啟動(dòng)A/D芯片轉(zhuǎn)換開始,到A/D芯片轉(zhuǎn)換結(jié)束,需要一定的時(shí)間,此時(shí)間為延時(shí)等待時(shí)間,實(shí)現(xiàn)延時(shí)等待的一段延時(shí)程序,要放在啟動(dòng)轉(zhuǎn)換程序之后,此延時(shí)等待時(shí)間必須大于或等于A/D轉(zhuǎn)換時(shí)間。(3)量程量程是指A/D轉(zhuǎn)換器所能轉(zhuǎn)換的輸入電壓范圍。(4)

38、精度精度是指與數(shù)字輸出量所對應(yīng)的模擬輸入量的實(shí)際值與理論值之間的差值。A/D轉(zhuǎn)換電路中與每一個(gè)數(shù)字量對應(yīng)的模擬輸入量并非是單一的數(shù)值,而是一個(gè)范圍。 例如:對滿刻度輸入電壓為5V的12位A/D轉(zhuǎn)換器,122mV,定義為數(shù)字量的最小有效位LSB。若理論上輸入的模擬量A,產(chǎn)生數(shù)字量D,而實(shí)際輸入模擬量A產(chǎn)生還是數(shù)字量D,則稱此轉(zhuǎn)換器的精度為0LSB。當(dāng)模擬電壓或還是產(chǎn)生同一數(shù)字量D,則稱其精度為1/4LSB。目前常用的A/D轉(zhuǎn)換器的精度為1/42LSB。3.2.2 ADC0809工作原理 1.芯片介紹 ADC0809是CMOS的8位A/D轉(zhuǎn)換器,片內(nèi)有8路模擬開關(guān),可控制8個(gè)模擬量中的一個(gè)進(jìn)入轉(zhuǎn)換

39、器中。ADC0809的分辨率為8位,轉(zhuǎn)換時(shí)間約1OOus,含鎖存控制的8路多路開關(guān),輸出有三態(tài)緩沖器控制,單5V電源供電。其實(shí)物圖如3.2.2所示。圖3.2 AD0809實(shí)物圖2.工作原理START是轉(zhuǎn)換啟動(dòng)信號,高電平有效;ALE是3位通道選擇地址(ADDC, ADDB, ADDA)信號的鎖存信號。當(dāng)模擬量送至某一輸入端(IN I或IN2等),由3位地址信號選擇,而地址信號由ALE鎖存;EOC是轉(zhuǎn)換情況狀態(tài)信號(類似于AD574的STATUS),當(dāng)啟動(dòng)轉(zhuǎn)換約100us后,EOC產(chǎn)生一個(gè)負(fù)脈沖,以表示轉(zhuǎn)換結(jié)束;在EOC的上升沿后,若使輸出使能信號OE為高電平,則控制打開三態(tài)緩沖器,把轉(zhuǎn)換好的8

40、位數(shù)據(jù)結(jié)果輸至數(shù)據(jù)總線。至此ADC0809的一次轉(zhuǎn)換結(jié)束了。圖3.3 ADC0809原理圖各引腳功能如下:1IN7IN0模擬量輸入通道。ADC0809對輸入模擬量的要求主要有:信號單極性,電壓范圍05V,若信號過小,還需進(jìn)行放大。另外,模擬量輸入在A/D轉(zhuǎn)換的過程中,其值應(yīng)保持不變,因此,對變化速度快的模擬輸入量,在輸入前應(yīng)增加采樣保持電路。2A、B、C地址線。A為低位地址,C為高位地址,用于對8路模擬通道進(jìn)行選擇,引腳圖中相應(yīng)為ADDA、ADDB和ADDC。其地址狀態(tài)與通道的對應(yīng)關(guān)系見表1-1。3ALE地址鎖存允許信號。由低至高電平的正跳變將通道地址鎖存至地址鎖存器中。4START啟動(dòng)轉(zhuǎn)換信

41、號。START上跳沿時(shí),所有內(nèi)部寄存器清0;START下跳沿時(shí),開始進(jìn)行A/D轉(zhuǎn)換。在A/D轉(zhuǎn)換期間,START應(yīng)保持低電平。5D7D0數(shù)據(jù)輸出線。為三態(tài)緩沖輸出形式,可以和單片機(jī)的數(shù)據(jù)線直接相連。6OE輸出允許信號。用于控制三態(tài)輸出鎖存器向單片機(jī)上輸出轉(zhuǎn)換得到的數(shù)據(jù)。OE=0,輸出數(shù)據(jù)線呈高電阻態(tài);OE=1,輸出轉(zhuǎn)換得到的數(shù)據(jù)。7CLOCK時(shí)鐘信號。ADC0809內(nèi)部沒有時(shí)鐘電路,所需時(shí)鐘信號由外界提供,要求頻率范圍10kHz1.2MHz。通常使用頻率為500 kHz的時(shí)鐘信號。8EOC轉(zhuǎn)換結(jié)束狀態(tài)信號。EOC0,正在進(jìn)行轉(zhuǎn)換;EOC=1,轉(zhuǎn)換結(jié)束。該狀態(tài)信號既可作為查詢的狀態(tài)標(biāo)志,又可以作

42、為中斷請求信號使用。9VCC+5V電源。10REF(+)、REF(-)參考電壓。參考電壓用來與輸入的模擬信號進(jìn)行比較,作為逐次逼近的基準(zhǔn)。其典型值為REF(+)=+5V,REF(-)=0V。3.2.3.工作時(shí)序ADC0809的工作時(shí)序如圖3.4所示。 圖3.4 ADC0809工作時(shí)序圖3.2.4 ADC0809的工作過程首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) AD轉(zhuǎn)換,之后EOC輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到AD轉(zhuǎn)換完成,EOC變?yōu)楦唠娖剑甘続D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,

43、這個(gè)信號可用作中斷申請。當(dāng)OE輸入高電平 時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。3.3 FPGA模塊我們使用的FPGA是Altera公司的ACEX1K器件1K30TC144-3,采用ACEX1k30TC144-3的一款FPGA芯片實(shí)現(xiàn)電壓表的數(shù)碼顯示的功能。在其中主要用狀態(tài)機(jī)作法,產(chǎn)生ADC0809CCN的片選信號、讀/寫控制信號,通過狀態(tài)信號INTR判斷轉(zhuǎn)換是否結(jié)束;轉(zhuǎn)換結(jié)束后將轉(zhuǎn)換數(shù)據(jù)鎖存并輸出。主要負(fù)責(zé)對AD轉(zhuǎn)換器的控制,用以初始化AD轉(zhuǎn)換器,并啟動(dòng)且接受AD轉(zhuǎn)換器傳遞過來的數(shù)字轉(zhuǎn)換值然后將接受到的轉(zhuǎn)換值調(diào)整成模擬電壓所對應(yīng)的數(shù)字信號;OEABCSTARTALEEOC轉(zhuǎn)換

44、控制模塊數(shù)據(jù)轉(zhuǎn)換譯碼模塊8位二進(jìn)制數(shù)數(shù)16位二進(jìn)制數(shù)四位數(shù)碼管數(shù)據(jù)輸入C 圖3.5 FPGA模塊3.4 顯示模塊本模塊的任務(wù)是把數(shù)據(jù)處理模塊處理得到的BCD碼轉(zhuǎn)換成能被數(shù)碼管識別的字型編碼。8位二進(jìn)制數(shù)轉(zhuǎn)換成BCD碼后為16位,因此需4個(gè)數(shù)碼管顯示結(jié)果,由于采用GW 48實(shí)驗(yàn)板,該板自帶了譯碼電路,故只需將數(shù)據(jù)處理模塊處理得到的12位BCD碼DATA 150分為四組即DATA 1512、DATA 118、DATA 74、DATA_OUT30;然后分別接GW 48實(shí)驗(yàn)板上的引腳PIO35 PIO32、PIO39 PIO36、PIO43 PIO40、PIO47 PIO446相接。七段碼顯示器如3.

45、6圖: 圖3.6 顯示器實(shí)物圖其方框圖如圖3.7: DATA1512DATA118 DATA-IN110 DATA74 DATA30PIO47 PIO44 A30PIO35 PIO32 A30PIO39 PIO36 A30PIO43 PIO40 A304位數(shù)碼管顯示 圖3.7 顯示模塊基于FPGA的數(shù)字電壓表的設(shè)計(jì) FPGA功能模塊的設(shè)計(jì)第四章FPGA功能模塊的設(shè)計(jì)及仿真4.1軟件系統(tǒng)原理整個(gè)系統(tǒng)由三大模塊組成(1)控制模塊,A/D轉(zhuǎn)換控制模塊,用以初始化A/D轉(zhuǎn)換器(即ADC0809)、并啟動(dòng)且接收ADC0809傳遞過來的數(shù)字轉(zhuǎn)換值;(2)數(shù)據(jù)處理模塊,將接收到的轉(zhuǎn)換值調(diào)整成對應(yīng)的數(shù)字信號;

46、(3)顯示模塊,將數(shù)據(jù)處理模塊輸出的4位BCD碼譯成相應(yīng) 7 段數(shù)碼驅(qū)功值,使模擬電壓值在4個(gè)數(shù)碼管上顯示。具體工作方式如下圖所示,首先,被測電壓信號進(jìn)入A/D轉(zhuǎn)換器,FPGA中控制信號模塊發(fā)出控制信號,啟動(dòng)A/D轉(zhuǎn)換器進(jìn)行轉(zhuǎn)換,其采樣得到的數(shù)字信號數(shù)據(jù)在相應(yīng)的碼制轉(zhuǎn)換模塊中轉(zhuǎn)換為顯示代碼。最后譯碼驅(qū)動(dòng)模塊發(fā)出顯示控制與驅(qū)動(dòng)信號,驅(qū)動(dòng)外部的LCD模塊顯示相應(yīng)的數(shù)據(jù)。4.2控制模塊我們使用的FPGA是Altera公司的ACEX1K器件1K30TC144-3,用狀態(tài)機(jī)作法,產(chǎn)生ADC0809CCN的片選信號、讀/寫控制信號,通過狀態(tài)信號INTR判斷轉(zhuǎn)換是否結(jié)束;轉(zhuǎn)換結(jié)束后將轉(zhuǎn)換數(shù)據(jù)鎖存并輸出。方框

47、圖如4.1圖4.1 控制模塊我們可以將整個(gè)控制氣分成八個(gè)步驟狀態(tài):idle,write,swait,read,disp1,disp2,disp3,disp4各狀態(tài)的動(dòng)作方式如下:狀態(tài)idle: CS=1、WR=1、RD=1狀態(tài)write:CS=1、WR=0、RD=1狀態(tài)swait:CS=1、WR=1、RD=1狀態(tài)read: CS=1、WR=1、RD=0狀態(tài)disp1:CS=1、WR=0、RD=1狀態(tài)disp2:CS=1、WR=1、RD=1狀態(tài)disp3:CS=1、WR=0、RD=1狀態(tài)disp4:CS=1、WR=1、RD=1由上述的八個(gè)狀態(tài)可以歸納出整個(gè)控制器的動(dòng)作功能有:負(fù)責(zé)在每個(gè)步驟送出所

48、需的CS、WR、RD控制信號。當(dāng)110時(shí)為wait等待,當(dāng)111時(shí)為read讀,當(dāng)101時(shí)開始從ADC中讀數(shù)。其程序?yàn)椋簂ibrary IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity voltmeter isport (D: in std_logic_vector(7 downto 0); CLK,INT,RESET: in std_logic; CS,RD,WR: out std_logic; DATOUT: out std_logic_vector(11 downto 0) );end volt

49、meter;architecture doit of voltmeter issignal datain : std_logic_vector(7 downto 0);signal data1,data2 : std_logic_vector(15 downto 0);signal dout1,dout2,dout3,dout4 : std_logic_vector(11 downto 0);signal do1,do2,do3,do4,c1,c2,c3,doo1,doo2,doo3,doo4 :std_logic_vector(4 downto 0);type statetype is(id

50、le,write,swait,read,disp1,disp2,disp3,disp4);signal present_state,next_state: statetype;beginP1: process(present_state,next_state,INT) begin case present_state is when idle = CS=1; WR=1; RD=1; next_state CS=1; WR=0; RD=1; next_state CS=1; WR=1; RD=1; if ( INT=0) then next_state=read; else next_state

51、 CS=1; WR=1; RD=0; next_state CS=1; WR=1; RD=1; DATOUT=dout1; next_state CS=1; WR=1; RD=1; DATOUT=dout2; next_state CS=1; WR=1; RD=1; DATOUT=dout3; next_state CS=1; WR=1; RD=1; DATOUT=dout4; next_state=write; end case;end process P1;P2: process(CLK, RESET) begin if(RESET=0) then present_state=idle;

52、datain=00000000; elsif(CLKevent and CLK=1) then present_state=next_state; if(present_state=read) then datain=D; end if; end if;end process P2;其仿真圖為圖4.2: 圖4.2控制模塊4.3數(shù)據(jù)處理模塊ADC0809是8位模數(shù)轉(zhuǎn)換器,它的輸出狀態(tài)共有256種,如果輸入信號Ui為05V電壓范圍,則每兩個(gè)狀態(tài)值為5/(256-1),約為0.0196V,故測量分辨率為0.02V。常用測量方法是:當(dāng)讀取到DB7DB0轉(zhuǎn)換值是XXH時(shí),電壓測量值為UXXH0.02V;

53、考慮到直接使用乘法計(jì)算對應(yīng)的電壓值將耗用大量的FPGA內(nèi)部組件,本設(shè)計(jì)用查表命令來得到正確的電壓值。在讀取到ADC0809的轉(zhuǎn)換數(shù)據(jù)后,先用查表指令算出高、低4位的兩個(gè)電壓值,并分別用16位BCD碼表示;接著設(shè)計(jì)16位的BCD碼加法,如果每4位相加結(jié)果超過9需進(jìn)行減10進(jìn)1。這樣得到模擬電壓的BCD碼。其方框圖如圖4.3圖4.3數(shù)據(jù)處理模塊其程序?yàn)椋篸ata1=0000000000000000 when datain(7 downto 4)=0000 else 0000001100010011 when datain(7 downto 4)=0001 else 0000011000100101

54、 when datain(7 downto 4)=0010 else 0000100100111000 when datain(7 downto 4)=0011 else 0001001001010000 when datain(7 downto 4)=0100 else 0001010101100011 when datain(7 downto 4)=0101 else 0001100001110101 when datain(7 downto 4)=0110 else 0010000110001000 when datain(7 downto 4)=0111 else 0010010100

55、000000 when datain(7 downto 4)=1000 else 0010100000010011 when datain(7 downto 4)=1001 else 0011000100100101 when datain(7 downto 4)=1010 else 0011010000111000 when datain(7 downto 4)=1011 else 0011011101010000 when datain(7 downto 4)=1100 else 0100000001100011 when datain(7 downto 4)=1101 else 0100

56、001101110101 when datain(7 downto 4)=1110 else 0100011010001000 when datain(7 downto 4)=1111 else 0000000000000000;data2=0000000000000000 when datain(3 downto 0)=0000 else 0000000000100000 when datain(3 downto 0)=0001 else 0000000000111001 when datain(3 downto 0)=0010 else 0000000001011001 when data

57、in(3 downto 0)=0011 else 0000000001111000 when datain(3 downto 0)=0100 else 0000000010011000 when datain(3 downto 0)=0101 else 0000000100010111 when datain(3 downto 0)=0110 else 0000000100110111 when datain(3 downto 0)=0111 else 0000000101010110 when datain(3 downto 0)=1000 else 0000000101110110 whe

58、n datain(3 downto 0)=1001 else 0000000110010101 when datain(3 downto 0)=1010 else 0000001000010101 when datain(3 downto 0)=1011 else 0000001000110100 when datain(3 downto 0)=1100 else 0000001001010100 when datain(3 downto 0)=1101 else 0000001001110011 when datain(3 downto 0)=1110 else 00000010100100

59、11 when datain(3 downto 0)=1111 else 0000000000000000;do1=(0 & data1(3 downto 0)+(0 & data2(3 downto 0);c1=00000 when do101010 else 00001;do2=(0 & data1(7 downto 4)+(0 & data2(7 downto 4)+c1;c2=00000 when do201010 else 00001;do3=(0 & data1(11 downto 8)+(0 & data2(11 downto 8)+c2;c3=00000 when do3010

60、10 else 00001;do4=(0 & data1(15 downto 12)+(0 & data2(15 downto 12)+c3;doo1=do1 when do101010 else do1-01010;doo2=do2 when do201010 else do2-01010;doo3=do3 when do301010 else do3-01010;doo4=do4 when do401010 else do4-01010;仿真圖為圖4.4:圖4.4數(shù)據(jù)處理模塊本模塊的功能仿真結(jié)果如圖4.4所示;當(dāng)轉(zhuǎn)換數(shù)據(jù)為10110110,通過查表高4位1011是3.438V,而低4位01

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論