版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、基于fpga的電壓測量系統(tǒng)設計學 院:專 業(yè) 班:姓 名:學 號:指導教師: 年 月基于fpga的電壓測量系統(tǒng)設計design of acquisition digital voltage based on fpga摘 要 伴隨著集成電路(ic)技術的發(fā)展,電子設計自動化(eda)逐漸成為重要的設計手段,已經(jīng)廣泛應用于模擬與數(shù)字電路系統(tǒng)等許多領域。目前電子技術的發(fā)展主要體現(xiàn)在eda領域,數(shù)字系統(tǒng)的設計正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。電子設計自動化是近幾年迅速發(fā)展起來的將計算機軟件、硬件、微電子技術交叉運用的現(xiàn)代電子設計學科。其中eda設計語言的vhdl語言是一種快速的電路設計工
2、具,功能涵蓋了電路描述、電路合成、電路仿真等三大電路設計工作。本電壓表的電路設計正是用vhdl語言完成的。此次設計主要應用的軟件是美國altera公司自行設計的一種軟件工具,即max+plus。本次設計的電壓表測量范圍是05v,精度為0.01v。此電壓表的設計特點為:通過軟件編程下載到硬件實現(xiàn),設計周期短,開發(fā)效率高。關鍵詞:電子設計自動化(eda) fpga vhdl a/d采集 數(shù)字電壓表abstractthe electronic design automation(eda) technology has become an important design method of anal
3、og and digital circuit system as the intergrated circuits growing.the development of the current electronic technology is incarnated the eda realm.the design of digital system is becoming faster,bulkier,smaller and lighter than before.electronic design automation developed quickly in the last few ye
4、ars,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 the true etc.the circuit of the d
5、esign that use vhdl language to complete.this time the design applied software max+plus primarily which is made by the united states altera company.this systems range is 0v to +5v and precision is 0.01v.characteristics of this electric voltage watch are:pass the software program to download the hard
6、ware to realize,the design time is short,efficiency of the development is high.key words: electronic design automation(eda) fpga vhdl a/d acquisition digital voltage目 錄摘 要iabstractii緒 論11 模擬數(shù)字轉換器51.1 模數(shù)轉換器51.2 adc0809工作原理51.2.1 芯片介紹51.2.2 工作原理52 系統(tǒng)設計92.1 數(shù)字電壓表的種類介紹92.2數(shù)字儀表的發(fā)展趨勢92.2.1 積分型轉換積分型92.2.2
7、逐次逼近型轉換102.3 系統(tǒng)原理及基本框圖122.4 vhdl語言簡介122.5 fpga的概念與特點132.6 fpga功能模塊設計142.6.1控制模塊142.6.2數(shù)據(jù)處理模塊152.6.3 掃描、顯示模塊172.7 數(shù)字電壓表接線說明182.8 本章小結193 數(shù)字電壓表的軟件設計與實現(xiàn)203.1 軟件工具max+plus的簡介203.2 max+plus的設計流程203.2.1 數(shù)字電壓表的模塊圖203.2.2 adcint的vhdl文本輸入法步驟213.2.3 cnt10b的vhdl文本輸入法步驟273.2.4 ram8b的vhdl文本輸入法步驟283.3 本章小結28結論30致
8、謝31參考文獻32附錄1模擬電壓的bcd值程序33附錄2掃描、顯示模塊程序35附錄3adcint程序37附錄4cnt10b程序41附錄5ram8b程序43緒 論隨著信息技術獲得了突飛猛進的發(fā)展,信息技術滲透了我們生活的幾乎全部領域,改變著人類的生存狀態(tài)和思維模式。而我們的課題所涉及的電子設計自動化(eda)技術就是在這種時代背景下產生的,并影響巨大。fpga是新型的可編程邏輯器件,與傳統(tǒng)asic相比,具有設計開發(fā)周期短、設計制造成本低、開發(fā)工具先進等優(yōu)點,特別適合于產品的樣品開發(fā)和小批量生產。傳統(tǒng)的數(shù)字電壓表多以單片機為控制核心,芯片集成度不高,系統(tǒng)連線復雜,難以小型化,尤其在產品需求發(fā)生變化
9、時,不得不重新布版、調試,增加了投資風險和成本。而采用fpga進行產品開發(fā),可以靈活地進行模塊配置,大大縮短了開發(fā)周期,也有利于數(shù)字電壓表向小型化、集成化的方向發(fā)展。數(shù)字電壓表自從一九五二年問世以來,隨著電子技術的飛躍發(fā)展,特別是目前,作為測量儀表、模擬指示儀表的數(shù)字化以及自動測量的系統(tǒng),而得到了很大的發(fā)展。目前數(shù)字電壓表的設計可以直接面向用戶需要,根據(jù)儀器設備的行為和功能要求自上而下地逐層完成相應的描述、綜合、優(yōu)化、仿真與驗證,直到生成器件。所有的設計過程幾乎可以用計算機來自動完成,也就是說做到了電子設計自動化(eda)。電子設計自動化(eda)的關鍵技術之一是要求用形式化方法來描述數(shù)字系統(tǒng)
10、的硬件電路,即要求用所謂硬件描述語言來描述硬件電路。此技術是一種實現(xiàn)電子系統(tǒng)或電子產品自動化設計的技術,與電子技術、微電子技術的發(fā)展密切相關。eda技術的每一次進步,都引起了設計層次上的一個飛躍。vhdl是硬件描述語言的一種,是ieee公布的工業(yè)標準,對同一事物可以有很多種描述方法,對于數(shù)字集成電路而言,常見的方法有圖形描述和語言描述兩種。而硬件描述語言具有抽象層次高、更為簡潔的優(yōu)點,更適合于描述大型電路??梢杂萌魏我粋€文本編輯器編寫vhdl代碼,但是max+plus提供的文本編輯器給編寫vhdl代碼提供了許多方便,為此需要介紹該文本編輯器的某些特殊之處。(1) 利用vhdl語言設計的特點本次
11、設計的數(shù)字電壓表是基于fpga芯片利用vhdl語言來編譯的,它的主要功能是完成0v到5v的電壓量程,要求誤差在5以內。本次設計主要應用的是vhdl語言,因為其具備以下優(yōu)點。設計技術齊全、方法靈活、支持廣泛vhdl語言可以支持自上而下(top down)和基于庫的設計方法,而且還支持同步電路、異步電路、fpga以及其他隨機電路的設計。其范圍之廣是其他hdl語言所不能比擬的。例如,sfl語言和udl/i語言,它們只能描述同步電路。另外,由于vhdl語言早在1987年12月已作為ieee_std_1076標準公布。因此,目前大多數(shù)eda工具幾乎在不同程度上都支持vhdl語言。這樣給vhdl語言進一步
12、推廣和應用創(chuàng)造了良好的環(huán)境。系統(tǒng)硬件描述能力強如前所述,vhdl語言具有多層次描述系統(tǒng)硬件功能的能力,可以從系統(tǒng)的數(shù)字模型直到門級電路。另外,高層次的行為描述可以與低層次rtl描述和結構描述混合使用。vhdl具有功能強大的語言結構,可以用簡潔明確的源代碼來描述復雜的邏輯控制。它具有多層次的設計描述功能,層層細化,最后直接生成電路級描述。vhdl支持各種設計方法,既支持自底向上的設計,又支持自頂向下的設計;既支持模塊化設計,又支持層次化設計。支持大規(guī)模設計的分解和已有設計的再利用支持大規(guī)模設計的分解和已有設計的再利用,一個大規(guī)模的設計不可能由一個人獨立完成,必須由多人共同承擔,vhdl為設計的分
13、解和已有設計的再利用提供了有力的支持。另外,vhdl語言還具有良好的可讀性,即容易被計算機接受,也容易被讀者理解,使用期長,不會因工藝變化而使描述過時,因為vhdl的硬件描述與工藝無關,當工藝改變時,只需修改相應程序中的屬性參數(shù)即可。(2) 研究的目標和內容本課題主要研究數(shù)字電壓表的一般設計原理,并結合新型的可編程器件(fpga)設計了一種方便、實用的數(shù)字電壓表。課題的具體要求有:熟悉基于adc0809數(shù)模轉換電路的設計,熟悉fpga的硬件接口和軟件編程,熟悉vhdl程序設計和軟件開發(fā)環(huán)境,設計數(shù)字電壓測量系統(tǒng)的硬件和軟件。采用altera的一款fpga芯片ep1k30tc144-3實現(xiàn)電壓表
14、的數(shù)碼顯示功能。設計中所要求設計的數(shù)字電壓表為4位,由三大部分組成,每一部分又包含了若干子電路,將各電路組合起來,就構成了一個整體。以fpga為核心設計一個數(shù)字電壓表。將電壓測量結果在led上顯示出來。被測電壓可以是直流,也可以是交流。要求測量誤差5,課顯示三位有效值。所需完成的主要任務簡介:完成基于altera fpga ep1k30tc144-3的數(shù)字電壓計的硬件和軟件的設計,電壓測量范圍為05v,在設計中要熟悉altera fpga ep1k30tc144-3芯片的特點以及基于a/d轉換器adc0809采樣電路的設計,熟悉基于vhdl硬件描述語言的軟件的設計。硬件設計所需要的硬件主要有:
15、altera公司的ep1k30tc144-3芯片、adc0809、七段顯示器、實驗箱。(3) 本課題的意義、國內外研究概況、應用前景等目前電子技術的發(fā)展主要體現(xiàn)在eda領域,數(shù)字系統(tǒng)的設計正朝著速度快、容量大、體積小、重量輕的方向發(fā)展。電子設計自動化是近幾年迅速發(fā)展起來的將計算機軟件、硬件、微電子技術交叉運用的現(xiàn)代電子設計學科。其中eda設計語言的vhdl語言是一種快速的電路設計工具,功能涵蓋了電路描述、電路合成、電路仿真等三大電路設計工作。本電壓表的電路設計正是用vhdl語言完成的。在電子工程、通信工程、自動控制、遙測控制、測量儀器、儀表和計算機等技術領域,經(jīng)常需要用到各種各樣的電壓表,隨著
16、科學技術的發(fā)展,數(shù)字電壓表的應用也將更加廣泛。在硬件描述語言的發(fā)展至今已有幾十年的歷史,并成功的應用到系統(tǒng)的仿真、驗證和設計綜合等方面。到本世紀80年代后期,已出現(xiàn)了上百種的硬件描述語言,它們對設計自動化起到了促進和推動作用。但是,它們大多數(shù)各自針對特定的設計領域,沒有一個統(tǒng)一的標準,從而使一般用戶難以使用。廣大用戶所期盼的是一種面向設計的多層次、多領域且得到一致認同的標準的硬件語言。80年代后期由美國國防部開發(fā)研究的vhdl語言恰好滿足了上述的要求,并在1987年12月由ieee標準化。它的出現(xiàn)為電子設計自動化(eda)的普及和推廣奠定了堅實的基礎。根據(jù)1991年有關統(tǒng)計資料表明,vhdl語
17、言已被廣大設計者所接受,據(jù)稱已有90的設計者使用或即將使用vhdl語言來設計數(shù)字系統(tǒng)。另外,眾多cad廠商也紛紛使自己新開發(fā)的電子實際軟件與vhdl語言兼容。因此,必須采用先進的設計方法和大規(guī)模可編程邏輯器件加以實現(xiàn)才能適應這種發(fā)展趨勢,cpld/fpga等大規(guī)??删幊踢壿嬈骷陌l(fā)展和eda技術的成熟為此奠定了良好的軟硬件基礎。1 模擬數(shù)字轉換器1.1 模數(shù)轉換器將模擬信號轉換成數(shù)字信號的電路,稱為模數(shù)轉換器(簡稱a/d轉換器或adc,analog to digital converter);將數(shù)字信號轉換為模擬信號的電路稱為數(shù)模轉換器(簡稱d/a轉換器或dac,digital to anal
18、og converter);a/d轉換器和d/a轉換器已成為計算機系統(tǒng)中不可或缺的接口電路。數(shù)模轉換器,又稱d/a轉換器,簡稱dac,它是把數(shù)字量轉變成模擬的器件。d/a轉換器基本上由4個部分組成,即權電阻網(wǎng)絡、運算放大器、基準電源和模擬開關。模數(shù)轉換器中一般都要用到數(shù)模轉換器,模數(shù)轉換器即a/d轉換器,簡稱adc,它是把連續(xù)的模擬信號轉變?yōu)殡x散的數(shù)字信號的器件。為確保系統(tǒng)處理結果的精確度,a/d轉換器必須具有足夠的轉換精度:如果要實現(xiàn)快速變化信號的實時控制與檢測,a/d轉化器還要求具有較高的轉換速度。轉換精度與轉換速度是衡量a/d轉換器的重要技術指標。隨著集成技術的發(fā)展,現(xiàn)已研制和生產出許多
19、單片的和混合集成型的a/d轉換器,它們具有愈來愈先進的技術指標。1.2 adc0809工作原理1.2.1 芯片介紹這里采用的是adc0809,是單片雙列直插式集成芯片;總的不可調誤差1 lsb;當模擬輸入電壓范圍為05 v時,可使用單一的+5 v電源;溫度范圍-40+85;不需另加接口邏輯可直接與cpu連接;可以輸入8路模擬信號;輸出帶鎖存器;邏輯電平與ttl兼容。adc0809是cmos的8位a/d轉換器,片內有8路模擬開關,可控制8個模擬量中的一個進入轉換器中。adc0809的分辨率為8位,轉換時間約100s,含鎖存控制的8路多路開關,輸出有三態(tài)緩沖器控制。1.2.2 工作原理在a/d轉換
20、器的內部,含有一個高阻抗斬波穩(wěn)定比較器,一個帶有模擬開關樹組的256r分壓器,以及一個逐次逼近的寄存器。8路的模擬開關由地址鎖存器和譯碼器控制,可以在8個通道中任意訪問一個單邊的模擬信號。其工作框圖如圖1-1所示。圖1-1 adc0809工作框圖該ad轉換器無需調零和滿量程調整。由于多路開關的地址輸入能夠進行鎖存和譯碼,而且三態(tài)ttl輸出也可以鎖存,易于與微處理器進行接口。 如圖1-1所示,它由兩大部分所組成:第一部分是8通道多路模擬開關,它用于控制c,b,a端子和地址鎖存允許端子,可使其中一個通道被選中;第二部分為一個逐次逼近型ad轉換器,它由比較器、控制邏輯、輸出緩沖鎖存器、逐次逼近寄存器
21、以及開關樹組和256r電阻分壓器組成。后兩種電路,即開關樹和256r電阻分壓器,組成了da轉換器。控制邏輯用來控制逐次逼近寄存器從高位到低位逐次取1,然后將此數(shù)字量送到開關樹組,即8位開關,用來控制開關s7s0與參考電平相連接。參考電平經(jīng)256r電阻分壓器,輸出一個模擬電壓uo,uo,ui在比較器中進行比較。當uoui時,本位d=o;當uoui時,則本位d=1。因此,從d7d0比較8次即可逐次逼近寄存器中的數(shù)字量,即與模擬量ui所相當于的數(shù)字量相等。此數(shù)字量送入輸出鎖存器,并同時發(fā)轉換結束脈沖。start是轉換啟動信號,高電平有效;ale是3位通道選擇地址(addc,addb,adda)信號的
22、鎖存信號。當模擬量送至某一輸入端,由3位地址信號進行選擇,而地址信號由ale鎖存;eoc是檔位轉換的狀態(tài)信號。eoc輸出高電平時,表示轉換結束;在eoc的上升沿后,若使能輸出信號oe為高電平,則三態(tài)緩沖器打開,將轉換完畢的8位數(shù)據(jù)結果輸至數(shù)據(jù)總線,至此adc0809的一次轉換結束。各引腳功能如下:(1) in7in0模擬量輸入通道。adc0809對輸入模擬量的要求主要有:信號單極性,電壓范圍05v,若信號過小,還需進行放大。另外,模擬量輸入在a/d轉換的過程中,其值應保持不變,因此,對變化速度快的模擬輸入量,在輸入前應增加采樣保持電路。(2) a、b、c地址線。a為低位地址,c為高位地址,用于
23、對8路模擬通道進行選擇,引腳圖中相應為adda、addb和addc。由低至高電平的正跳變將通道地址鎖存至地址鎖存器中。(3) ale地址鎖存允許信號。由低至高電平的正跳變將通道地址鎖存至地址鎖存器中。(4) start啟動轉換信號。start上跳沿時,所有內部寄存器清0;start下跳沿時,開始進行a/d轉換。在a/d轉換期間,start應保持低電平。(5) d7d0數(shù)據(jù)輸出線。為三態(tài)緩沖輸出形式,可以和單片機的數(shù)據(jù)線直接相連。(6) oe輸出允許信號。用于控制三態(tài)輸出鎖存器向單片機上輸出轉換得到的數(shù)據(jù)。oe=0,輸出數(shù)據(jù)線呈高電阻態(tài);oe=1,輸出轉換得到的數(shù)據(jù)。(7) clock時鐘信號。
24、adc0809內部沒有時鐘電路,所需時鐘信號由外界提供要求頻率范圍10khz1.2mhz。通常使用頻率為500khz的時鐘信號。(8) eoc轉換結束狀態(tài)信號。eoc=0,正在進行轉換;eoc=1,轉換結束。該狀態(tài)信號既可作為查詢的狀態(tài)標志,又可作為中斷請求信號使用。(9) vcc+5v電源。(10) ref(+)、ref(-)參考電壓。參考電壓用來與輸入的模擬信號進行比較,作為逐次逼近的基準。其典型值為ref(+)=+5v,ref(-)=0v。adc0809的引腳圖如圖1-2所示,工作時序如圖1-3所示。圖1-2 adc0809引腳圖圖1-3 adc0809時序圖1.3 本章小結本章詳細地闡
25、述了模數(shù)轉換器件adc0809的功能。2 系統(tǒng)設計2.1 數(shù)字電壓表的種類介紹dvm的種類有多種,分類方法也很多,又按位數(shù)分的,如3/2位、5位、8位;有按測量速度分的,如高速、低速;有按體積、重量分的,如袖珍式、便攜式、臺式。但通常是按a/d轉換方式的不同將dvm分為兩大類,一類是直接轉換型,也稱比較型;另一類是間接轉換型,又稱積分型,包括電壓-時間變換。系統(tǒng)的核心電路由fpga完成,本設計選用altera公司的ep1k30tc144-3芯片,用vhdl語言對它進行設計,實現(xiàn)三大功能模塊:(1)控制模塊,激活a/d轉換器動作、接收a/d轉換器傳遞過來的數(shù)字轉換值;(2)數(shù)據(jù)處理模塊,將接收到
26、的轉換值調整成對應的數(shù)字信號;(3)掃描、顯示模塊,產生數(shù)碼管的片選信號,并將數(shù)值處理模塊輸出的bcd碼譯成相應的7段數(shù)碼驅動值。工作時,系統(tǒng)按一定的速率采集輸入的模擬電壓,經(jīng)adc0809轉換成8位數(shù)字量,此8位數(shù)字量經(jīng)fpga中的數(shù)據(jù)處理模塊處理后得到模擬電壓的數(shù)字碼,再輸入數(shù)碼管獲得被測電壓的數(shù)字顯示。2.2 數(shù)字儀表的發(fā)展趨勢為了適應模數(shù)轉換發(fā)展是要求,模數(shù)轉換技術也變得越來越復雜。模數(shù)轉換技術是實現(xiàn)各種模擬信號通向數(shù)字世界的橋梁,作為將模擬信號轉換成數(shù)字信號的模數(shù)轉換技術主要有以下兩種:2.2.1 積分型轉換積分型模數(shù)轉換技術在低速、高精度測量領域有著廣泛的應用,特別是在數(shù)字儀表領域
27、。積分型模數(shù)轉換技術有單積分和雙積分兩種轉換方式,單積分模數(shù)轉換的工作原理是將被轉換的電信號先變成一段時間間隔,然后再對時間間隔記數(shù),從而間接把模擬量轉換成數(shù)字量的一種模數(shù)轉換方式,它的主要缺陷是轉換精度不高,主要受到斜坡電壓發(fā)生器、比較器精度以及時鐘脈沖穩(wěn)定型的影響。為了提高積分型轉換器在同樣條件下的轉換精度,可采用雙積分型轉換方式,雙積分型轉換器通過對模擬輸入信號的兩次積分,部分抵消了由于斜坡發(fā)生器所產生的誤差,提高了轉換精度。雙積分型轉換方式的特點表現(xiàn)在:精度較高,可以達到22位;抗干擾能力強,由于積分電容的作用,能夠大幅抑制高頻噪聲。但是,它的轉換速度太慢,轉換精度隨著轉換速率的增加而
28、降低,每秒100300次(sps)對應的轉換精度為12位。所以這種轉換方式應用在低速高精度的轉換領域。2.2.2 逐次逼近型轉換逐次逼近型轉換方式在當今的模數(shù)轉換領域有著廣泛的應用,它是按照二分搜索法的原理,類似于天平稱物的一種模數(shù)轉換過程。也就是將需要進行轉換的模擬信號與已知的不同的參考電壓進行多次比較,使轉換后的數(shù)字量在數(shù)值上逐次逼近輸入模擬量的對應值。逐次逼近型轉換方式的特點是:轉換速度高,可以達到100萬次/秒(mpsp);在低于12位分辨率的情況下,電路實現(xiàn)上較其他轉換方式成本低;轉換時間確定。但這種轉換方式需要數(shù)模轉換電路,由于高精度的數(shù)模轉換電路需要較高的電阻和電容匹配網(wǎng)絡,故精
29、度不會很高。逐次逼近式ad轉換器由逐次逼近寄存器、da轉換器、比較器和緩沖寄存器等組成。當啟動信號由高電平變?yōu)榈碗娖綍r,逐次逼近寄存器清零,這時,da轉換器輸出電壓v0也為0,當啟動信號變?yōu)楦唠娖綍r,轉換開始,同時,逐次逼近寄存器進行計數(shù)。轉換原理如圖2-1所示。圖2-1 逐次逼近式ad轉換器原理逐次逼近寄存器工作時與普通計數(shù)器不同,它不是從低位向高位逐一進行計數(shù)和進位,而是從最高位開始,通過設置試探值來進行計數(shù)。在第一個時鐘脈沖到來時,控制電路把最高位送到逐次逼近寄存器,使它的輸出為1000 0000,這個輸出數(shù)字一出現(xiàn),da轉換器的輸出電壓vo就成為滿量程值的128255。這時,若vovi
30、則作為比較器的運算放大器的輸出就成為低電平,控制電路據(jù)此清除逐次逼近寄存器中的最高位;若vovi則比較器輸出高電平,控制電路使最高位的1保留下來。若最高位被保留下來,則逐次逼近寄存器的內容為1000 0000,下一個時鐘脈沖使次低位d6為1。于是,逐次逼近寄存器的值為1100 0000,da轉換器的輸出電壓vo到達滿量程值的192255。此后,若vovi則比較器輸出為低電平,從而使次高位域復位;若vovi則比較器輸出為高電平,從而保留次高位為1。重復上述過程,經(jīng)過n次比較以后,逐次逼近寄存器中得到的值就是轉換后的數(shù)值。轉換結束后,控制電路送出一個低電平作為結束信號,此信號的下降沿將逐次逼近寄存
31、器中的數(shù)字量送入緩沖寄存器,從而得到數(shù)字量輸出。本設計利用adc0809作為電壓采樣端口,fpga作為系統(tǒng)的核心器件,用led(發(fā)光二極管)進行數(shù)碼顯示。其系統(tǒng)原理圖如圖2-2所示。圖2-2 系統(tǒng)原理采用altera公司的ep1k30tc144-3芯片fpga作為系統(tǒng)的核心器件,負責adc0809的a/d轉換的啟動、地址鎖存、輸入通道選擇、數(shù)據(jù)讀取。同時,把讀取的8位二進制數(shù)據(jù)轉換成便于輸出的3位十進制bcd碼送給數(shù)碼管,以顯示當前測量電壓值。這些工作由adc0809轉換控制模塊、數(shù)據(jù)轉換模塊、譯碼模塊完成。fpga軟件模塊原理如圖2-3所示。圖2-3 fpga軟件模擬設計原理2.3 系統(tǒng)原理
32、及基本框圖如圖2-4所示,模擬電壓經(jīng)過檔位切換到不同的分壓電路衰減后,經(jīng)隔離干擾送到a/d轉換器進行a/d轉換,然后送到fpga中進行數(shù)據(jù)處理。處理后的數(shù)據(jù)送到數(shù)碼管中顯示,同時通過串行通訊與上位機通信。圖2-4 基本框圖2.4 vhdl語言簡介vhdl語言描述能力強,覆蓋面廣,抽象能力強,所以用vhdl語言作為硬件模型建模很合適。設計者的原始描述是非常簡練的硬件描述,經(jīng)過eda工具綜合處理,最終生成付諸生產的電路描述或版圖參數(shù)描述的工藝文件。整個過程通過eda工具自動完成,大大減輕了設計人員的工作強度,提高了設計質量,減少了出錯機會。vhdl語言可讀性好。vhdl既能被人容易讀懂,又能被計算
33、機識別,作為技術人員編寫的源文件,它既是計算機程序,技術文檔和技術人員硬件信息交流的文件,又是簽約雙方的合同文件。vhdl語言中的設計實體(design entity),程序包(package),設計庫(library),為設計人員重復利用他人的設計提供了技術手段。重復利用他人的ip模塊和軟核(soft core)是vhdl的特色,許多設計不必個個都從頭再來,而是只要在更高層次上把ip模塊利用起來,就能達到事半功倍的效果。一個完整的vhdl語言程序通常包含實體(entity)、結構體(architecture)、配置(configuration)、包集合(package)、庫(library)
34、5個部分。前4種是可分別編譯的源設計單元。實體用于描述所設計模塊都能共享的數(shù)據(jù)類型、常數(shù)和子程序等。配置用于從庫中選取所需單元來組成系統(tǒng)設計的不同版本;庫存放已經(jīng)編譯的實體、構造體、包集合和配置。庫可由用戶生成或由asic芯片制造商提供,以便在設計中為大家所共享。2.5 fpga的概念與特點fpga是英文field programmable gate array的縮寫,即現(xiàn)場可編程門陣列,它是在pal、gal、epld等可編程器件的基礎上進一步發(fā)展的產物。fpga器件是基于可編程的查找表結構,lut是可編程的最小邏輯構成單元,fpga內由大量邏輯宏單元構成。通過配置,可以使這些邏輯宏單元形成不
35、同的硬件結構,從而構成不同的電子系統(tǒng),完成不同的功能。正是fpga的這種硬件重構的靈活性,使得設計者能夠講硬件描述語言描述的電路在fpga中實現(xiàn)。這樣,同一塊fpga能實現(xiàn)許多完全不同的電路結構和功能。目前fpga的品種很多,有xilinx的xc系列、spartan系列、virtex系列,altera公司的flex系列、cyclone系列、acex系列、stratix系列等。cyclone系列器件是altera公司在2002年12月份推出的。cyclone器件支持大量的片外數(shù)據(jù)傳輸?shù)膯味薸/o標注和差分i/o技術。為滿足設計者更快數(shù)據(jù)速率和信號傳輸能力的需要,cyclone器件還沒有高達311
36、mbps的低差分信令(lvds)兼容通道。fpga采用了邏輯單元陣列l(wèi)ca(logic cell array)這樣一個新概念,內部包括可配置邏輯模塊clb(configurable logic block)、輸入輸出模塊iob(input output block)和內部連線(interconnect)三個部分。fpga的基本特點主要有:(1) 采用fpga設計asic電路,用戶不需要投片生產,就能得到合用的芯片(2) fpga可做其它全定制或半定制asic電路的中試樣片(3) fpga內部又豐富的觸發(fā)器和i/o引腳(4) fpga是asic電路設計周期最短、開發(fā)費用最低、風險最小的器件之一(
37、5) fpga采用高速chmos工藝,功耗低,可以與cmos、ttl電平兼容fpga是存放在片內ram中的程序來設置其工作狀態(tài)的,因此,工作時需要對片內的ram進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。加電時,fpga芯片將eprom中數(shù)據(jù)讀入片內編程ram中,配置完成后,fpga進入工作狀態(tài)。掉電后,fpga恢復成白片,內部邏輯關系消失,因此,fpga能夠反復使用。fpga的編程無須專用的fpga編程器,只須用通用的eprom、prom編程器即可。當需要修改fpga功能時,只需換一片eprom即可。這樣,同一片fpga,不同的編程數(shù)據(jù),可以產生不同的電路功能。因此,fpga的
38、使用非常靈活。fpga有多種配置模式;并行主模式為一片fpga加一片eprom的方式;主從模式可以支持一片prom編程多片fpga;串行模式可以采用串行prom編程fpga;外設模式可以將fpga作為微處理器的外設,由微處理器對其編程。2.6 fpga功能模塊設計我們使用的fpga是altera公司的ep1k30tc144-3器件。數(shù)字電壓表的三大模塊都是用vhdl語言編程實現(xiàn)的。fpga設計可分為設計輸入、綜合、功能仿真(前仿真)、實現(xiàn)、時序仿真(后仿真)、配置下載等六個步驟,下面分別介紹各個設計步驟。2.6.1 控制模塊用狀態(tài)機作法,產生adc0809的片選信號、讀/寫控制信號,通過狀態(tài)信
39、號intr判斷轉換是否結束;轉換結束后將轉換數(shù)據(jù)鎖存并輸出。其狀態(tài)轉換圖如圖2-5所示。圖2-5 控制模塊轉換圖我們可以將整個控制器分成八個步驟狀態(tài):idle,write,swait,read,disp1,disp2,disp3,disp4各狀態(tài)的動作方式如表2-1:表2-1 各狀態(tài)動作方式 狀態(tài)cswrrdidle111write101swait111read110disp1101disp2111disp3101disp4111由上述的八個狀態(tài)可以歸納出整個控制器的動作功能有:負責在每個步驟送出所需的cs、wr、rd控制信號。當110時為wait等待,當111時為read讀,當101時開始從
40、adc中讀數(shù)。譯碼波形仿真圖如圖2-6所示。圖2-6 譯碼波形仿真圖2.6.2 數(shù)據(jù)處理模塊adc0809是8位模數(shù)轉換器,它的輸出狀態(tài)共有28=256種。如果輸入信號vin為05v電壓范圍,則每兩個狀態(tài)值為5/(256-1),約為0.0196v,故測量分辨率為0.02v。常用測量范圍是:當讀取到db7db0,轉換值是xxh時,電壓測量值為uxxh0.02v??紤]到直接使用乘法計算對應的電壓值將耗用大量的fpga內部組件,本設計用查表命令來得到正確的電壓值。如表2-2所示。表2-2 對應電壓表進制參考電壓(vref/2)為2.56v162高4為電壓低4位電壓000000.000.0010001
41、0.320.02200100.640.04810002.560.16910012.880.18e11104.480.28f11114.800.30由圖2-4的對應關系,編一個查表程序,對電壓進行bcd碼編碼,然后根據(jù)對應的4位bcd碼相加的結果決定是否進位,從而得到待處理數(shù)據(jù)的bcd碼。例如:從ad0809上取得的數(shù)據(jù)為“1101 1110”,1101對應的電壓值為4.16 v,其對應的bcd編碼為“0100 0001 0110”,1110對應的電壓值為0.28 v,其對應的bcd編碼為“0000 0010 1000”。低4位相加為1110,大于9,加6將其調整為bcd碼,其值為0100,并且
42、向前有一進位。4位相加的結果為0011,由于低位有進位,因此最終結果為0100。高4位的結果為0100。3位合計的值為4.44 v,與4.16+0.28的結果相符。其他計算依此類推。在讀取到adc0809的轉換數(shù)據(jù)后,先用查表指令算出高、低4位的連個電壓值,并分別用16位bcd表示;接著設計16位的bcd碼加法,如果每4位相加結果超過9需進行減10進1。這樣得到模擬電壓的bcd碼。bed_add:=hbcd+lbcd;高、低4位的連個電壓值bcd碼相加if bed_add(3 downto 0)“1001” then bed_add:=bed_add+“0110”;end if;if bed_
43、add(7 downto 4)“1001” then bed_add:=bed_add+“0110 0000”;end if;其程序見附錄1。仿真圖如圖2-7所示。圖2-7 d7-d0輸出仿真波形圖2.6.3 掃描、顯示模塊如圖2-8所示,clk是掃描時鐘,其頻率為100mhz,由給定的20khz時鐘分頻得到;datain是數(shù)據(jù)處理模塊輸出的電壓值的bcd碼;sel是數(shù)碼管的片選信號;point是數(shù)碼管小數(shù)點的驅動;通過掃描分別輸出3位電壓值的bcd碼dataout,并通過disp將bcd碼譯成相應的7段數(shù)碼驅動值,送數(shù)碼管顯示。掃描顯示模塊如圖2-8所示,七段碼顯示器如圖2-9所示。圖2-8
44、 掃描顯示模塊圖2-9 七段碼顯示器其程序見附錄2。datout0-datout11波形圖如圖2-10所示。圖2-10 datout0-datout11波形圖2.7 數(shù)字電壓表接線說明 (1) 接線說明:ep1k30tc144-3上時鐘clk接100mhz,reset接k1,cs,rd,wr分別接0809的控制輸入端,int接0809的int。d7-0接0809的d7-d0(注意0809數(shù)據(jù)線標識反),datdout接a-dp,sle3-sle0。0809的a0、a1、a2接d0-d2(置低),vref+接vcc,vref-接gnd,clk接mcu的ale,in0接模擬輸出out。如圖2-11
45、所示。圖2-11 系統(tǒng)原理圖(3) 實驗結果:轉動電位器,數(shù)碼管上顯示當前電壓值。2.8 本章小結本章簡單的介紹了fpga的主要特點、數(shù)字電壓表的種類和發(fā)展趨勢,并闡述了如何利用max+plus設計好數(shù)字電壓表的控制模塊,數(shù)據(jù)處理模塊和掃描顯示模塊,以及數(shù)字電壓表的連線說明,然后下載到實驗開發(fā)系統(tǒng)上顯示結果。3 數(shù)字電壓表的軟件設計與實現(xiàn)3.1 軟件工具max+plus的簡介altera公司推出的max+plus軟件支持多種硬件描述語言,提供fpga/cpld的設計、仿真和燒寫環(huán)境。max+plus界面友好(如圖3-1所示)、使用便捷,具有原理圖輸入和文本輸入兩種輸入手段,以及波形與edif等
46、格式文件,并支持這些文件的任意混合設計。利用max+plus自身配置的邏輯綜合及芯片編程等功能,可將涉及電路圖或電路描述的程序變成基本的邏輯單元寫入可編程芯片中,作為asic芯片。但是,由于軟件是為可編程芯片設計的,因此它不支持系統(tǒng)行為級的描述和仿真,某些vhdl語言中的語句,如wait語句等將得不到支持,并且它也不能進行模擬電路的設計。因此,max+plus工具還需要不斷地改進和完善。圖3-1 max+plus方便的使用界面3.2 max+plus的設計流程3.2.1 數(shù)字電壓表的模塊圖當三大模塊圖的vhdl語言組合在一起就得到了數(shù)字電壓表的vhdl程序,然后進行程序燒寫,排線,就形成了數(shù)字
47、電壓表數(shù)字電壓表的模塊圖如圖3-2所示。圖3-2 數(shù)字電壓表的模塊圖3.2.2 adcint的vhdl文本輸入法步驟:(1) 建立新文件。選擇filenew菜單項,在彈出的新建對話框中選擇text editor file選項,單擊ok按鈕,進入文字編輯畫面,輸入源程序。如圖3-3所示。圖3-3 建立新文件(2) 輸入以下程序,邏輯描述界面如圖3-4所示。圖3-4 邏輯描述界面adcint工作情況如下:上電瞬間,fpga初始化,add置成01,狀態(tài)機處于第1個狀態(tài),此時ale、start、oe、lock(數(shù)據(jù)鎖存信號)均置0,初始化adc0809。第1個上升沿到來時,狀態(tài)機由狀態(tài)1轉換到狀態(tài)2,
48、ale、start置1,oe、lock為0,此時地址鎖存信號有效,由ale將add的01狀態(tài)鎖存到地址鎖存器并譯碼,選擇in1即通道1作為模擬信號輸入端,同時strat信號有效,啟動采樣。第2個上升沿到來時,狀態(tài)機由狀態(tài)2轉換到狀態(tài)3,ale、start返回到低電平,oe、lock繼續(xù)為低電平,此時如果fpga檢測到adc0809的eoc引腳由低電平變成高電平(a/d轉換完成),則當時鐘上升沿到來時,轉換到狀態(tài)3,否則繼續(xù)保持在狀態(tài)2,直到轉換完成。由狀態(tài)2轉換到狀態(tài)3后,oe置高電平,允許轉換數(shù)據(jù)輸出,其余信號狀態(tài)保持不變。時鐘上升沿再次到來時,狀態(tài)機由狀態(tài)3轉換到狀態(tài)4,lock置高電平,
49、其余信號與狀態(tài)3一樣。當lock由低電平轉換到高電平的瞬間,穩(wěn)定的數(shù)據(jù)鎖存到鎖存器。上升沿再次到來,則狀態(tài)機返回狀態(tài)0??刂破髟跁r鐘信號控制下完成狀態(tài)轉換,實現(xiàn)對adc0809的控制。adcint程序見附錄3。(3) 保存。選擇filesave菜單項,在彈出的保存對話框中輸入一個名字,adcint.vhd,單擊ok按鈕。如圖3-5所示。圖3-5 保存(4) 指定項目名與文件名相同。選擇fileprojectname菜單項,輸入一個名字,adcint,單擊ok按鈕。如入3-6所示。圖3-6 指定項目名(5) 指定設計器件。選擇assigndevice菜單項,彈出如圖3-7所示的對話框,在devi
50、ce family下拉列表框中選擇系列號adex1k,在device列表框中選擇器件ep1k30tc144-1。圖3-7 fpga/cpld器件選擇(6) 保存并檢查。選擇fileprojectsave&check菜單項,即可針對電路設計文件進行檢查。(7) 除錯。針對massage-complier窗口所提供的信息做修改,直到?jīng)]有錯誤信息為止。如圖3-8所示。圖3-8 除錯(8) 保存并編譯。選擇fileprojectsave&complier菜單項,即可進行編譯,產生adcint.pof可燒寫文件。如圖3-9所示。圖3-9 保存并編譯(9) 創(chuàng)建電路符號。選擇filecreate defa
51、ult symbol菜單項,可以產生adcint.sym文件以代表現(xiàn)在所設計電路的符號。如圖3-10所示。選擇fileedit symbol菜單項,進入symbol editor畫面,設計電路封裝如圖3-11所示。圖3-10 創(chuàng)建電路符號圖3-11 adcint的設計電路模塊封裝圖(10) 創(chuàng)建電路包含文件。選擇filecreate default include file菜單項,可以產生代表現(xiàn)在設計的電路函數(shù)類型的adcint.inc文件,供其他vhdl編輯時調用。如圖3-12所示。圖3-12 電路類型文件(11) 時間分析。選擇utilitiesanalyze timing菜單項,再選擇a
52、nalysisdelay matrix菜單項,可以產生時間分析的結果。如圖3-13所示。圖3-13 時間分析窗口(12) 編寫程序時,downto拼寫錯誤,改正后,編譯無誤。3.2.3 cnt10b的vhdl文本輸入法步驟:(1) 如上述的3.2.2的11個步驟,得到cnt10b的設計電路模塊封裝圖,如圖3-14所示。遇到問題了,如圖3-15所示,逐步查詢,直到錯誤為0為止。圖3-14 cnt10b的設計電路模塊封裝圖圖3-15 編譯后有錯誤(2) cnt10b程序見附錄4。(3) 編寫程序時,有兩個問題,一個是標點符號,要英文輸入法的,不能是漢字的;另一個是進程要取名字,改正后,編譯無誤。3
53、.2.4 ram8b的vhdl文本輸入法步驟:(1) 如上述的3.2.2的11個步驟,得到ram8b的設計電路模塊封裝圖,如圖3-16所示。圖3-16 ram8b的設計電路模塊封裝圖(2) ram8b程序見附錄5。3.3 本章小結設計的vhdl語言程序已在max+plus工具軟件上進行了編譯、仿真和調試,并通過編譯器下載到了ep1k30tc144-3芯片上。經(jīng)過驗證,本設計是正確的,其電壓顯示值誤差沒有超過量化臺階上限(5)。本設計給出的設計思想也適用于其他pld芯片的系統(tǒng)設計。結 論畢業(yè)設計是一次非常難得的理論與實際相結合的機會,通過這次比較完整的數(shù)字電壓表設計,我擺脫了單純的理論知識學習狀
54、態(tài),完全將理論和實際設計相結合,鍛煉了我將所學的專業(yè)基礎知識進行綜合運用,提高解決實際fpga/cpld應用問題的能力,同時也提高我查閱文獻資料、eda課程等其他專業(yè)能力水平,而且通過對整體的掌控,對局部的取舍,以及對細節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗得到了豐富,并且意志力,抗壓能力及耐力也都得到了不同程度的提升。這是我們都希望看到的也正是我們進行畢業(yè)設計的目的所在。經(jīng)過這次對數(shù)字電壓表的設計,我對eda中的vhdl語言又來一定的了解,關于用vhdl和原理圖輸入進行cpld/fpga設計的粗略比較:在設計中,如果采用原理圖輸入的設計方式是比較直觀的。你要設計的是什么,你就直接從庫中調
55、出來用就行了。這樣比較符合人們的習慣。但是這樣做需要設計人員要在兩方面有較高的素質:(1) 對電路的知識要比較豐富。(2) 對cpld/fpga的結構比較熟悉。有了這兩個條件才能在設計的過程中選用適當?shù)钠骷瑥亩岣咴O計的可靠性、提高器件的利用率,及縮短設計的周期。但是有一個重大的問題是在于,如果你的產品有所改動,需要采用另外的cpld/fpga時,你將需要重新輸入原理圖。改用不同的器件在今天這種競爭環(huán)境下是會經(jīng)常發(fā)生的,公司為了提高產品的性能或者降低產品的造價,提高保密性等等,都會考慮選用不同的器件。但是當你采用vhdl等高級語言來設計時,這些問題都會得到較好的解決。由于在使用vhdl等高級語言時,有專用的工具來實現(xiàn)將語言描述的電路功能轉換為實際的電路,所以你就用不著對底層的電路很熟悉,也用不著對cpld/fpga的結構很熟悉(因為有專門的工具針對你的描述采用相應的器件)。當你要換器件時,你只需要將原來設計好的vhdl文件在新器件的設計工具中再次實現(xiàn)就行了。致 謝本設計及論文是在老師的親切關懷和悉心指導下完成的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科技學院《材料生物學》2023-2024學年第一學期期末試卷
- 廣東金融學院《快題專題訓練》2023-2024學年第一學期期末試卷
- 廣東建設職業(yè)技術學院《日語翻譯實戰(zhàn)訓練》2023-2024學年第一學期期末試卷
- 廣東環(huán)境保護工程職業(yè)學院《英語聲樂》2023-2024學年第一學期期末試卷
- 廣東工程職業(yè)技術學院《展覽場館經(jīng)營與管理》2023-2024學年第一學期期末試卷
- 廣東東軟學院《媒介經(jīng)營與管理》2023-2024學年第一學期期末試卷
- 《定量分析實驗》課件
- 西點軍校培訓課件
- 小學生誠信的課件
- 廣東碧桂園職業(yè)學院《中國近現(xiàn)代政治制度》2023-2024學年第一學期期末試卷
- GB/T 1243-1997短節(jié)距傳動用精密滾子鏈和鏈輪
- 打起手鼓唱起歌二聲部改編簡譜
- 陜西西安電子科技大學招考聘用(同步測試)模擬卷和答案
- 父母教養(yǎng)方式與青少年學業(yè)自我效能的關系:自尊和學業(yè)自我概念的中介作用優(yōu)秀獲獎科研論文
- 高血壓危象(講課)課件
- 全回轉鉆孔灌注樁教材課件
- 獅子王-中英文-劇本臺詞(全)
- 2022年陜西金融控股集團有限公司招聘筆試題庫及答案解析
- 能源數(shù)據(jù)收集計劃表
- 注塑車間生產管理看板
- 住培帶教師資考試測試題
評論
0/150
提交評論