[課程設(shè)計]AD轉(zhuǎn)換硬件前端設(shè)計_第1頁
[課程設(shè)計]AD轉(zhuǎn)換硬件前端設(shè)計_第2頁
[課程設(shè)計]AD轉(zhuǎn)換硬件前端設(shè)計_第3頁
[課程設(shè)計]AD轉(zhuǎn)換硬件前端設(shè)計_第4頁
[課程設(shè)計]AD轉(zhuǎn)換硬件前端設(shè)計_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目 錄1 概述11.1模數(shù)轉(zhuǎn)換器(adc)概念11.2 模數(shù)轉(zhuǎn)換器(adc)的基本原理及特點11.3 adc性能參數(shù)22 總體方案設(shè)計32.1設(shè)計的目的與要求32.2 硬件描述語言(vhdl)32.2.1 vhdl簡介32.2.2 vhdl的設(shè)計流程32.3電路器件43 詳細設(shè)計63.1 主流程設(shè)計63.2程序流程圖63.3 功能邏輯框圖83.4 a/d轉(zhuǎn)換電路設(shè)計84 程序的調(diào)試與運行結(jié)果說明134.1 a/d的電路圖134.2仿真波形圖134.3 結(jié)果分析145 課程設(shè)計總結(jié)15參考文獻161 概述1.1模數(shù)轉(zhuǎn)換器(adc)概念在工業(yè)檢測控制和生活中的許多物理量都是連續(xù)變化的模擬量,如溫度

2、、壓力、流量、速度等,這些模擬量可以通過傳感器或換能器變成與之對應(yīng)的電壓、電流或頻率等電模擬量。為了實現(xiàn)數(shù)字系統(tǒng)對這些電模擬量進行檢測、運算和控制,就需要一個模擬量與數(shù)字量之間的相互轉(zhuǎn)換的過程。即常常需要將模擬量轉(zhuǎn)換成數(shù)字量,簡稱為a/d轉(zhuǎn)換,完成這種轉(zhuǎn)換的電路稱為模數(shù)轉(zhuǎn)換器(analog to digital converter) ,簡稱adc。1.2 模數(shù)轉(zhuǎn)換器(adc)的基本原理及特點模擬信號轉(zhuǎn)換為數(shù)字信號,一般分為四個步驟進行,即取樣、保持、量化和編碼。前兩個步驟在取樣-保持電路中完成,后兩步驟則在adc中完成。常用的adc有積分型、逐次逼近型、并行比較型/串并行型、 -調(diào)制型、電容陣

3、列逐次比較型及壓頻變換型。下面簡要介紹常用的幾種類型的基本原理及特點:l 積分型(如tlc7135) 。積分型adc工作原理是將輸入電壓轉(zhuǎn)換成時間或頻率,然后由定時器/計數(shù)器獲得數(shù)字值。其優(yōu)點是用簡單電路就能獲得高分辨率,但缺點是由于轉(zhuǎn)換精度依賴于積分時間,因此轉(zhuǎn)換速率極低。初期的單片adc大多采用積分型,現(xiàn)在逐次比較型已逐步成為主流。雙積分是一種常用的ad轉(zhuǎn)換技術(shù),具有精度高,抗干擾能力強等優(yōu)點。但高精度的雙積分ad芯片,價格較貴,增加了單片機系統(tǒng)的成本。 l 逐次逼近型(如tlc0831) 。逐次逼近型ad由一個比較器和da轉(zhuǎn)換器通過逐次比較邏輯構(gòu)成,從msb開始,順序地對每一位將輸入電壓

4、與內(nèi)置da轉(zhuǎn)換器輸出進行比較,經(jīng)n次比較而輸出數(shù)字值。其電路規(guī)模屬于中等。其優(yōu)點是速度較高、功耗低,在低分辨率( 12位)時價格很高。 l 并行比較型/串并行比較型(如tlc5510) 。并行比較型ad采用多個比較器,僅作一次比較而實行轉(zhuǎn)換,又稱flash型。由于轉(zhuǎn)換速率極高, n位的轉(zhuǎn)換需要2n - 1個比較器,因此電路規(guī)模也極大,價格也高,只適用于視頻ad轉(zhuǎn)換器等速度特別高的領(lǐng)域。串并行比較型ad結(jié)構(gòu)上介于并行型和逐次比較型之間,最典型的是由2個n /2位的并行型ad轉(zhuǎn)換器配合da轉(zhuǎn)換器組成,用兩次比較實行轉(zhuǎn)換,所以稱為half flash型。 l -調(diào)制型(如ad7701) 。-型adc

5、以很低的采樣分辨率( 1位)和很高的采樣速率將模擬信號數(shù)字化,通過使用過采樣、噪聲整形和數(shù)字濾波等方法增加有效分辨率,然后對adc輸出進行采樣抽取處理以降低有效采樣速率。-型adc的電路結(jié)構(gòu)是由非常簡單的模擬電路和十分復(fù)雜的數(shù)字信號處理電路構(gòu)成。 l 電容陣列逐次比較型。電容陣列逐次比較型ad在內(nèi)置da轉(zhuǎn)換器中采用電容矩陣方式,也可稱為電荷再分配型。一般的電阻陣列da轉(zhuǎn)換器中多數(shù)電阻的值必須一致,在單芯片上生成高精度的電阻并不容易。如果用電容陣列取代電阻陣列,可以用低廉成本制成高精度單片ad轉(zhuǎn)換器。最近的逐次比較型ad轉(zhuǎn)換器大多為電容陣列式的。 l 6壓頻變換型(如ad650) 。壓頻變換型是

6、通過間接轉(zhuǎn)換方式實現(xiàn)模數(shù)轉(zhuǎn)換的。其原理是首先將輸入的模擬信號轉(zhuǎn)換成頻率,然后用計數(shù)器將頻率轉(zhuǎn)換成數(shù)字量。從理論上講這種ad的分辨率幾乎可以無限增加,只要采樣的時間能夠滿足輸出頻率分辨率要求的累積脈沖個數(shù)的寬度。其優(yōu)點是分辨率高、功耗低、價格低,但是需要外部計數(shù)電路共同完成ad轉(zhuǎn)換。1.3 adc性能參數(shù)l adc分辨率:指輸出數(shù)字量變化一個最低有效位(lsb)所需的輸入模擬電壓的變化量。 l adc的精度:決定于量化誤差及系統(tǒng)內(nèi)其他誤差之總和。一般精度指標為滿量程的0. 02% ,高精度指標為滿量程的0. 001%。 l 轉(zhuǎn)換速率:是指完成一次從模擬轉(zhuǎn)換到數(shù)字的ad轉(zhuǎn)換所需的時間的倒數(shù)。積分型

7、ad的轉(zhuǎn)換時間是毫秒級屬低速ad,逐次比較型ad是微秒級屬中速ad,全并行/串并行型ad可達到納秒級。 l 量化誤差:由于ad的有限分辨率而引起的誤差,即有限分辨率ad的階梯狀轉(zhuǎn)移特性曲線與無限分辨率ad (理想ad)的轉(zhuǎn)移特性曲線(直線)之間的最大偏差。通常是1個或半個最小數(shù)字量的模擬變化量,表示為1lsb、1 /2lsb。2 總體方案設(shè)計2.1設(shè)計的目的與要求作為一名大學(xué)生,我們要求用硬件描述語言相關(guān)軟件來模擬adc的實際生產(chǎn)過程。通過這個課程設(shè)計,可以學(xué)會硬件描述語言和電路設(shè)計的相關(guān)軟件,同時還要求掌握adc的原理和其電路原理圖。具體目的與要求如下:1理解和掌握該課程中的有關(guān)基本概念,程

8、序設(shè)計思想和方法。2培養(yǎng)綜合運用所學(xué)知識獨立完成課題的能力。3培養(yǎng)勇于探索、嚴謹推理、實事求是、有錯必改,用實踐來檢驗理論,全方位考慮問題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。4掌握從資料文獻、科學(xué)實驗中獲得知識的能力,提高學(xué)生從別人經(jīng)驗中找到解決問題的新途徑的悟性,初步培養(yǎng)工程意識和創(chuàng)新能力。5掌握利用單片機接口技術(shù)解決問題的基本方法2.2 硬件描述語言(vhdl)2.2.1 vhdl簡介本次設(shè)計采用vhdl,英文全寫是:vhsic(very high speed integrated circuit)hardware description language。翻譯成中文就是超高速集成電路硬件描述語言

9、。vhdl主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,vhdl的語言形式和描述風(fēng)格與句法是十分類似于一般的計算機高級語言。vhdl的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體(可以是一個元件,一個電路模塊或一個系統(tǒng))分成外部(或稱可視部分及端口)和內(nèi)部(或稱不可視部分),既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是vhdl系統(tǒng)設(shè)計的基本點。2.2.2 vhdl的設(shè)計流程主要包括以下幾個步驟:l 文本編輯l 用任何文本編輯器都可以進行,也可以用專

10、用的hdl編輯環(huán)境。通常vhdl文件保存為.vhd文件,verilog文件保存為.v文件。l 使用編譯工具編譯源文件。l 功能仿真l 將文件調(diào)入hdl仿真軟件進行功能仿真,檢查邏輯功能是否正確(也叫前仿真,對簡單的設(shè)計可以跳過這一步,只在布線完成以后,進行時序仿真)l 邏輯綜合l 將源文件調(diào)入邏輯綜合軟件進行綜合,即把語言綜合成最簡的布爾表達式。邏輯綜合軟件會生成.edf或.edif 的eda工業(yè)標準文件。l 布局布線l 將.edf文件調(diào)入pld廠家提供的軟件中進行布線,即把設(shè)計好的邏輯安放pld/fpga內(nèi)。l 時序仿真l 需要利用在布局布線中獲得的精確參數(shù),用仿真軟件驗證電路的時序。(也叫

11、后仿真) 通常以上過程可以都在pld/fpga廠家提供的開發(fā)工具。l 編程下載l 確認仿真無誤后,將文件下載到芯片中。2.3電路器件由于微機只能處理數(shù)字化的信息,而在實際應(yīng)用中被控對象常常是連續(xù)變換的物理量,因此,微機用于測控系統(tǒng)時需要有能吧模擬信號轉(zhuǎn)換成數(shù)字信號的接口,以便于能對被控制對象進行處理和控制。a/d轉(zhuǎn)換器就承擔(dān)這樣的任務(wù),它適用于工業(yè)自動化控制,數(shù)據(jù)采集等許多領(lǐng)域。adc0809是一種cmos單片8位a/d轉(zhuǎn)換器,8路模擬量輸入以及地址鎖存與譯碼。設(shè)有與微機數(shù)據(jù)總線相連的ttl三態(tài)輸出鎖存器。adc0809可用單一的+5v電源工作,轉(zhuǎn)換時間約為100us。用單一+5v電源時,模擬

12、量輸入量程為05,對應(yīng)的轉(zhuǎn)換值為00hhffh. adc0809的主要引腳信號說明如下: in0in7:8路模擬量輸入端。 add-a.add-b.add-c:三位地址線,通過地址譯碼選通8路模擬量輸入端中的一路。 clock:外部提供給adc0809工作的時鐘信號。 eoc:a/d轉(zhuǎn)換結(jié)束信號。 ale:通道地址鎖存允許信號。 enable:輸出允許信號,用來打開三態(tài)輸出的數(shù)據(jù)鎖存器。 start:a/d轉(zhuǎn)換啟動信號。 ref(+).ref(-):正的和負的的參考電壓。8路模擬開關(guān)則可選通8路模擬輸入的任何一路單端模擬信號,其內(nèi)部結(jié)構(gòu)框圖如圖2-1所示。8路模擬開關(guān)地址鎖存與譯碼控制與時序s

13、.a.r樹狀開關(guān)256r電阻階梯三 鎖態(tài) 存輸 緩出 沖器圖2-1 數(shù)模轉(zhuǎn)換電路內(nèi)部結(jié)構(gòu)3 詳細設(shè)計3.1 主流程設(shè)計主流程設(shè)計圖如圖3-1下:開始初始化模擬信號采樣a/d轉(zhuǎn)換輸出3-1 程序流程圖3.2程序流程圖程序流程圖如圖3-2所示:開始用35hdos功能調(diào)用取類型0ah的中斷矢量,并入棧保存用25h dos功能調(diào)用將a/d中斷服務(wù)程序入口地址寫入中斷矢量表中0ah類型中斷的位置a/d轉(zhuǎn)換結(jié)果送內(nèi)存6000h段等待硬件中斷關(guān)中斷8253初始化:0通道,3方式,初始值為0010h開中斷300cx啟動0809執(zhí)行本次a/d轉(zhuǎn)換取中斷屏蔽寄存器的內(nèi)容存入bp中開放0ah號中斷顯示轉(zhuǎn)換結(jié)果及兩個

14、空格cx-1=0?用25h dos功能調(diào)用恢復(fù)原中斷矢量恢復(fù)中斷屏蔽器寄存器內(nèi)容結(jié)束入口保存使用的寄存器的內(nèi)容從0809的端口讀取a/d轉(zhuǎn)換數(shù)據(jù)發(fā)中斷結(jié)束命令中斷返回圖3-2流程圖3.3 功能邏輯框圖 由下圖3-2可知,此設(shè)計的adc是由一個8路模擬開關(guān)、一個地址鎖存與譯碼器、一個a/d轉(zhuǎn)換器和一個三態(tài)輸出鎖存器組成。多路開關(guān)可選通8個模擬通道,允許8路模擬量分時輸入,共用a/d轉(zhuǎn)換器進行轉(zhuǎn)換。三態(tài)輸出鎖器用于鎖存a/d轉(zhuǎn)換完的數(shù)字量,當(dāng)oe端為高電平時,才可以從三態(tài)輸出鎖存器取走轉(zhuǎn)換完的數(shù)據(jù)。圖3-3功能邏輯框圖3.4 a/d轉(zhuǎn)換電路設(shè)計數(shù)字信號不僅在時間上的離散的,而且在數(shù)值上的變化也是不

15、連續(xù)的。這就是說,任何數(shù)字量的大小,都是以某個最小數(shù)量單位的整數(shù)倍來表示的。因此,在用數(shù)字量表示取樣電壓時,也必須把它化成這個最小數(shù)量單位的整數(shù)倍,這個轉(zhuǎn)化過程就叫做量化。所規(guī)定的最小數(shù)量單位叫做量化單位,用表示。顯然,數(shù)字信號最低有效位中的1所表示的數(shù)量大小,就等于。把量化的數(shù)值用二進制代碼表示,稱編碼。這個二進制代碼就是a/d轉(zhuǎn)化的出入信號。具體程序代碼如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity adc is port ( clk: in std_logic;-256h

16、z rd : out std_logic;wr:out std_logic;cs:out std_logic;ledcs :out std_logic;p13 :out std_logic; ramcs :out std_logic; nreset :in std_logic; dbus:inout std_logic_vector(7 downto 0);end;architecture adc of adc issignal ad_value :std_logic_vector(7 downto 0);signal status: integer range 0 to 32;signal

17、cs1:std_logic; signal rd1:std_logic; signal wr1:std_logic; beginramcs = 1;p13 =31) then status = 0;else status = status + 1;end if;end if; end process; process(status) beginif(nreset = 0) thendbus = zzzzzzzz;cs1 = 1;rd1 = 1;wr1 = 1;elsif(status = 0) thencs1 = 1;rd1 = 1;wr1 = 1;dbus = zzzzzzzz;elsif(

18、status = 1) thenrd1 = 1; cs1 = 0;wr1 = 1;dbus = zzzzzzzz; elsif(status = 2) thenrd1 = 1; cs1 = 0;wr1 = 0;dbus = zzzzzzzz;elsif(status = 3) thenrd1 = 1; cs1 = 0;wr1 = 1;dbus = zzzzzzzz;elsif(status = 4) then cs1 = 1;rd1 = 1;wr1 = 1;dbus = zzzzzzzz;elsif(status = 5) thencs1 = 0;rd1 = 1;wr1 = 1;dbus =

19、zzzzzzzz;elsif(status = 6) thencs1 = 0;rd1 = 0;wr1 = 1;dbus = zzzzzzzz;elsif(status = 7) thencs1 = 0;rd1 = 0;wr1 = 1;ad_value = dbus;dbus = zzzzzzzz;elsif(status = 8) thencs1 = 0;rd1 = 1;wr1 = 1;dbus = zzzzzzzz;elsif(status = 9) thencs1 = 1;rd1 = 1;wr1 = 1;elsif(status = 10) thencs1 = 1;rd1 = 1;wr1

20、= 1;if( (ad_value(7) = 0)and(ad_value(6) = 0)and(ad_value(5) = 0)and(ad_value(4) = 0) thendbus = 00000000;elsif( (ad_value(7) = 0)and(ad_value(6) = 0)and(ad_value(5) = 0)and(ad_value(4) = 1)thendbus = 00000001;elsif( (ad_value(7) = 0)and(ad_value(6) = 0)and(ad_value(5) = 1)thendbus = 00000011;elsif(

21、 (ad_value(7) = 0)and(ad_value(6) = 1)and(ad_value(5) = 0)thendbus = 00000111;elsif( (ad_value(7) = 0)and(ad_value(6) = 1)and(ad_value(5) = 1)thendbus = 00001111;elsif( (ad_value(7) = 1)and(ad_value(6) = 0)and(ad_value(5) = 0)thendbus = 00011111;elsif( (ad_value(7) = 1)and(ad_value(6) = 0)and(ad_val

22、ue(5) = 1)thendbus = 00111111;elsif( (ad_value(7) = 1)and(ad_value(6) = 1)and(ad_value(5) = 0)thendbus = 01111111;elsif( (ad_value(7) = 1)and(ad_value(6) = 1)and(ad_value(5) = 1)thendbus = 11111111;elsedbus = 00000000;end if;elsif(status = 11) thencs1 = 1;rd1 = 1;wr1 = 1;ledcs = 1;elsif(status = 12)

23、 thencs1 = 1;rd1 = 1;wr1 = 1;ledcs = 0;elsecs1 = 1;rd1 = 1;wr1 = 1;dbus = zzzzzzzz; end if;cs = cs1;rd = rd1;wr = wr1; end process;end;4 程序的調(diào)試與運行結(jié)果說明4.1 a/d的電路圖 在開發(fā)環(huán)境quartusii5.0中,對上面的a/d的程序代碼文件進行編譯、執(zhí)行后點擊菜單tools下的rtl viewer可以看到圖4-1 adc的電路圖圖4-1 adc的電路圖4.2仿真波形圖圖4-2 adc的防真波形圖如下:圖4-2 adc的防真波形圖4.3 結(jié)果分析 根據(jù)上面的波形圖,在20ns、40ns、60ns時刻所對應(yīng)的輸入和輸出信號,和依程序中推斷的相一致,可判斷此波形圖是正確的。從而可證明adc的設(shè)計正確,此次課程設(shè)計基本上達到了預(yù)定的效果。5 課程設(shè)計總結(jié)通過本次課

溫馨提示

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

評論

0/150

提交評論