《微機原理與應用》模數與數模轉換接口_第1頁
《微機原理與應用》模數與數模轉換接口_第2頁
《微機原理與應用》模數與數模轉換接口_第3頁
《微機原理與應用》模數與數模轉換接口_第4頁
《微機原理與應用》模數與數模轉換接口_第5頁
已閱讀5頁,還剩87頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《微機原理與接口技術》

輔助教學電子課件

第八章

數/模與模/數轉換第八章D/A與A/D轉換

教學重點DAC0832及其與主機的連接ADC0809及其與主機的連接8.1數/模(D/A)轉換D/A(數/模)轉換把數字量轉換為模擬量A/D(模/數)轉換將模擬量轉換成數字量模擬量與數字量模擬量——連續變化的物理量數字量——時間和數值上都離散的量模擬/數字轉換器ADCDAC數字/模擬轉換器數字信號模擬信號現場信號1現場信號2現場信號n微型計算機放大器放大器放大器多路開關低通濾波傳感器低通濾波傳感器低通濾波傳感器A/D轉換器采樣保持器數字信號受控對象控制信號模擬信號D/A轉換器放大驅動電路…模擬輸入輸出系統傳感器將各種現場的物理量測量出來并轉換成電信號(模擬電壓或電流)

放大器把傳感器輸出的信號放大到ADC所需的量程范圍低通濾波器用于降低噪聲、濾去高頻干擾,以增加信噪比多路開關把多個現場信號分時地接通到A/D轉換器采樣保持器周期性地采樣連續信號,并在A/D轉換期間保持不變8.1.1D/A轉換原理數字量→按權相加→模擬量1101B=1×23+1×22+0×21+1×20=13D/A轉換器的原理圖(1)Iout2Iout1RfbRfbVout+_I1S1D1c2RRI2S2D2b2RRI0S0D0d2R2RRI3S3D3a2RVREF電阻網絡基準電壓電子開關圖示D/A轉換器的原理圖(2)Iout2Iout1RfbRfbVout+_I1S1D1c2RRI2S2D2b2RRI0S0D0d2R2RRI3S3D3a2RVREF阻抗=2R運算放大器虛地D/A轉換器的原理圖(3)Va=VREFVb=VREF/2Vc=VREF/4Vd=VREF/8I0=Vd/2R=VREF/(8×2R)I1=Vc/2R=VREF/(4×2R)I2=Vb/2R=VREF/(2×2R)I3=Va/2R=VREF/(1×2R)D/A轉換器的原理圖(4)Iout1=I0+I1+I2+I3

=VREF/2R×(1/8+1/4+1/2+1)Rfb=RVout=-Iout1×Rfb

=-VREF×[(20+21+22+23)/24]Vout=-(D/2n)×VREF8.1.2D/A轉換器的主要參數分辨率:

D/A轉換器對數字輸入量變化的敏感程度的度量。例如:8位D/A轉換器,轉換后的電壓滿程量為5V,其最小分辨電壓:

5V/256=20mV10位D/A轉換器,對同樣的轉換電壓,它能分辨的最小電壓:5V/1024=5mV轉換時間:數字輸入到完成轉換,輸出達到最終的穩定值所需的時間電流型D/A轉換器的轉換時間在ns~μs之間,電壓型的D/A轉換器轉換較慢轉換精度

指D/A轉換器實際輸出電壓與理論值之間的誤差。與D/A轉換器參考電壓的精度、權電阻的精度有關。線性度:當數字量變化時,D/A轉換器輸出模擬量按比例關系變化的程度。D/A轉換器的輸入輸出特性輸入緩沖能力輸入數據的寬度電流型還是電壓型輸入的碼制是單極性輸出還是雙極性輸出8.1.3DAC0832芯片DAC0832是8位的D/A轉換芯片內部有兩極輸入緩沖寄存器和一個T型電阻網絡電流輸出型芯片圖示1.DAC0832的內部結構LE2LE1RfbAGNDDAC0832VccILEVREF輸入寄存器DGNDDI0~DI7D/A轉換器DAC寄存器Iout2Iout1CSWR1WR2XFER2.DAC0832的數字接口8位數字輸入端

DI0~DI7(DI0為最低位)輸入寄存器(第1級鎖存)的控制端

ILE、CS*、WR1*DAC寄存器(第2級鎖存)的控制端

XFER*、WR2*LE2LE1DAC0832輸入寄存器DI0~DI7D/A轉換器DAC寄存器Iout1直通鎖存器的工作方式3.DAC0832的工作方式直通鎖存器的工作方式兩級緩沖寄存器都是直通鎖存器LE=1,直通(輸出等于輸入)LE=0,鎖存(輸出保持不變)DAC0832的工作方式:直通方式LE1=LE2=1輸入的數字數據直接進入D/A轉換器LE2LE1DAC0832輸入寄存器DI0~DI7D/A轉換器DAC寄存器Iout1直通方式的連接方法與使用ILE接+5VCS*,WR1*,WR2*,XREF*接地(數字信號地該方式數據輸入不使用緩沖寄存器,在輸入端DI7~DI0一旦出現數據就立即開始D/A轉換。DAC0832的工作方式:單緩沖方式LE1=1,或者LE2=1兩個寄存器之一始終處于直通狀態另一個寄存器處于受控狀態(緩沖狀態)LE2LE1DAC0832輸入寄存器DI0~DI7D/A轉換器DAC寄存器Iout1單緩沖方式的連接方法與使用ILE接+5VWR1*接CPU的IOW*WR2*,XFER*接地(數字信號地),使DAC寄存器處于直通狀態;CS*接I/O口地址譯碼器該方式數據寫入只需一次,寫入后即開始D/A轉換。DAC0832的工作方式:雙緩沖方式兩個寄存器都處于受控(緩沖)狀態能夠對一個數據進行D/A轉換的同時;輸入另一個數據LE2LE1DAC0832輸入寄存器DI0~DI7D/A轉換器DAC寄存器Iout1雙緩沖方式的連接方法與使用ILE固定接+5V;CPU的IOW信號復連到WR1*和WR2*端;用CS*作為輸入緩沖器的“片選”信號;XFER*作為DAC寄存器的“片選”信號,它們分別接到兩個I/O口地址譯碼輸出。數據寫入時要分兩次進行:第一次輸入待轉換的數字量;第二次寫操作只是一次“虛擬寫操作”,寫的內容無關緊要,目的是啟動DAC寄存器的鎖存功能。雙緩沖方式的優點是在D/A轉換的同時,可接收下一個待轉換的數據。4.DAC0832的模擬輸出Iout1、Iout2:電流輸出端

滿足:Iout1+Iout2=常量Rfb:反饋電阻引出端(電阻在芯片內)VREF:參考電壓輸入端

+10V~-10VAGND:模擬信號地VCC:電源電壓輸入端

+5V~+15VDGND:數字信號地單極性電壓輸出Vout=-Iout1×Rfb=-(D/28)×VREFRfbIout2Iout1Vout+_AGNDADIVREF單極性電壓輸出舉例設VREF=-5VD=FFH=255時,最大輸出電壓:

Vmax=(255/256)×5V=4.98VD=00H時,最小輸出電壓:

Vmin=(0/256)×5V=0VD=01H時,一個最低有效位(LSB)電壓:

VLSB=(1/256)×5V=0.02VVout=-(D/2n)×VREF8.1.4DAC芯片與主機的連接DAC芯片相當于一個“輸出設備”,至少需要一級鎖存器作為接口電路考慮到有些DAC芯片的數據位數大于主機數據總線寬度,所以分成兩種情況:1.主機位數等于或大于DAC芯片位數2.主機位數小于DAC芯片位數1.主機位數大于或等于DAC芯片的連接moval,bufmovdx,portdoutdx,al譯碼ABD0~D7CLKDACVout+_ALS273IOWDAC0832單緩沖方式連接WR1CSIOW5V+5VRfbIout2Iout1WR2XFERDGNDAGNDD0~D7DI0~D17VccILEVREFVout+_A譯碼AB2.主機位數小于DAC芯片的連接數字數據需要多次輸出接口電路也需要多個(級)鎖存器保存多次輸出的數據并需要同時將完整的數字量提供給DAC轉換器CPUDAC8位12位兩級鎖存電路模擬輸出12位DAC第2級12位鎖存控制第1級低8位鎖存控制第1級高4位鎖存控制D0~D74位鎖存器4位鎖存器8位鎖存器8位鎖存器由同一個信號控制關鍵的一級鎖存無需輸出數據簡化的兩級鎖存電路模擬輸出12位DAC第2級12位鎖存控制第1級低8位鎖存控制D0~D74位鎖存器8位鎖存器8位鎖存器由同一個信號控制關鍵的一級鎖存需要輸出高4位數據movdx,port1moval,bloutdx,almovdx,port2moval,bhoutdx,alDAC芯片的應用舉例-鋸齒波發生器

mov

dx,portd

mov

al,0repeat: outdx,al

inc

al

jmp

repeat輸出正向鋸齒波2次數據輸出的時間間隔02LSB1LSB255LSB254LSB鋸齒波周期8.2A/D轉換器模擬量數字量模擬/數字轉換器ADC8.2.1A/D轉換的基本原理存在多種A/D轉換技術,各有特點,分別應用于不同的場合4種常用的轉換技術計數器式逐次逼近式雙積分式并行式1.計數器式以最低位為增減量單位的逐步計數法時鐘復位數字輸出比較器模擬輸入計數器D/A轉換器轉換結束圖示啟動信號將計數器清0,產生的8位數字量經內部的D/A轉換輸出0伏電壓;該電壓被送到比較器與輸入的模擬電壓進行比較;計數式A/D轉換原理圖示當比較結果小于輸入的模擬電壓時,比較器輸出高電平,啟動計數器開始計數;計數器在CLK的驅動下加1計數,使得D/A轉換后的電壓不斷上升;當D/A轉換的電壓等于輸入的模擬電壓時,比較器輸出為0,使計數器停止計數。此時,數據線D7~D0上的數字量就是A/D轉換的結果。2.逐次逼近式從最高位開始的逐位試探法時鐘復位數字輸出轉換結束比較器模擬輸入寄存器D/A轉換器圖示逐次逼近式A/D轉換原理當轉換器收到啟動信號后,逐次逼近寄存器被清“0”,通過內部D/A轉換器使輸出電壓V0為0,轉換開始:圖示在第一個CLK周期控制電路使逐次逼近寄存器的D7位為1(1000,0000)。這組數字經內部D/A轉換后,輸出電壓V0與輸入模擬電壓Vi比較:若Vi>V0,比較器輸出為“高”,通過控制電路將D7置“1”

保留若Vi<V0,比較器輸出為“低”,通過控制電路將D7位清0在第二CLK周期使D6位為1(1100,0000),經D/A轉換后對應輸出電壓V0,并與Vi比較:若Vi>V0,比較器輸出為“高”,通過控制電路將D6位“1”保留;若Vi<V0,比較器輸出為“低”,通過控制電路將D6位清0;重復上述過程,到D0位試探完畢,轉換結束,逐次寄存器中的數值經緩沖器輸出。3.雙積分式兩個積分階段實質是電壓/時間變換IREFIinVinVREF積分器比較器V/IV/I時鐘啟動計數計數器數字輸出T2T1Vc固定斜率時間可變固定時間斜率可變轉換結束4.并行式速度快成本高直接比較法編碼電路VinVREF數字輸出比較器RRRRRRR/2R/2二、主要技術指標轉換精度量化誤差非線性誤差其它誤差總誤差=各誤差的均方根量化間隔一個最低有效位對應的模擬量△=Vmax/2n例:某8位ADC的滿量程電壓為5V,則其分辨率為:5V/256=19.6mV絕對量化誤差=1/2△轉換時間實現一次轉換需要的時間。精度越高(字長越長),轉換速度越慢。逐次逼近式A/D轉換器每進行一次比較,即決定數字碼中的一位碼的去/留操作,需要8個時鐘脈沖,這樣8位轉換器完成一次轉換需要8X8=64個時鐘脈沖。例如ADC0809均是8位逐次逼近式A/D轉換器,典型的工作時鐘頻率為640kHz,完成一次轉換的時間大約為:54輸入動態范圍允許轉換的電壓的范圍。如0~5V、0~10V等。8.2.2ADC0809芯片具有A/D轉換的基本功能CMOS工藝制作8位逐次逼近式ADC轉換時間為100s包含擴展部件多路開關,可完成8路A/D轉換三態鎖存緩沖器,可以和微處理器的數據線直接相連圖示ADC0809的內部結構圖ADC0809地址鎖存和譯碼OE通道選擇開關ADDAADDBADDC1N0IN1IN2IN3IN4IN5IN6IN78位三態鎖存緩沖器DACVcc比較器CLOCKSTARTGNDVREF(+)VREF(-)ALE逐次逼近寄存器SAR定時和控制D0D1D2D3D4D5D6D7EOC1.ADC0809的內部結構和外部引腳CLK:時鐘輸入信號,典型的時鐘頻率為640kHzIN7~IN0:8路模擬量輸入ADDC,ADDB,ADDA:模擬通道選擇信號: ADDC,ADDB,ADDA=000選擇IN0 ADDC,ADDB,ADDA=001選擇IN1… ADDC,ADDB,ADDA=111選擇IN7圖示ALE:地址鎖存允許信號 有效時鎖存ADDC~ADDA的通道選擇信號START:A/D轉換啟動信號高電平時使內部的逐次逼近寄存器清0由高→低時開始轉換START常與ALE短接,以便同時鎖存通道選擇信號,并開始A/D轉換START和ALE的信號寬度不小于100μsEOC:轉換結束信號EOC由低→高表示轉換結束EOC可作為CPU的中斷請求信號OE:輸出允許信號OE有效時,打開輸出三態門,輸出轉換后的數字量D7~D0:輸出數據線。VREF(+),VREF(-):參考電壓。VCC:工作電壓+5V2.ADC0809的轉換時序D0~D7OEEOCSTART/ALEADDA/B/CDATA100s2s+8T(最大)200ns(最小)轉換啟動信號轉換結束信號3.ADC0809的轉換公式輸入模擬電壓輸出數字量基準電壓正極基準電壓負極單極性轉換示例基準電壓VREF(+)=5V,VREF(-)=0V輸入模擬電壓Vin=1.5V N=(1.5-0)÷(5-0)×256

=76.8≈77=4DH雙極性轉換示例基準電壓VREF(+)=+5V,VREF(-)=-5V輸入模擬電壓Vin=-1.5V N=(-1.5+5)÷(5+5)×256

=89.6≈90=5AH8.2.3ADC芯片與主機的連接ADC芯片相當于“輸入設備”,需要接口電路提供數據緩沖器主機需要控制轉換的啟動主機還需要及時獲知轉換是否結束,并進行數據輸入等處理芯片與系統的連接模擬輸入端Ini:單路輸入多路輸入多路輸入時ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809輸入0輸入1輸入2輸入3輸入4CPU指定通道號單路輸入時ADDCADDBADDAIN4ADC0809輸入+5V66通道地址線ADDA-ADDC的連接多路輸入時,地址線不能接死,要通過一個接口芯片與數據總線連接。接口芯片可以選用:簡單接口芯片74LS273,74LS373等(占用一個I/O地址)可編程并行接口8255(占用四個I/O地址)ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809輸入DB74LS273Q2Q1Q0CP來自I/O譯碼D0-D7ADDCADDBADDAIN0IN1IN2IN3IN4ADC0809DB8255PB2PB1PB0CS#來自I/O譯碼D0-D7A1A0A1A0數據輸出線的連接與主機的連接可分成兩種方式直接相連:用于輸出帶有三態鎖存器的ADC芯片通過三態鎖存器相連:適用于不帶三態鎖存器的ADC芯片,也適用帶有三態鎖存緩沖器的芯片ADC芯片的數字輸出位數大于系統數據總線位數,需把數據分多次讀取69ALE和START端的連接獨立連接:用兩個信號分別進行控制——需占用兩個I/O端口或兩個I/O線;統一連接:用一個脈沖信號的上升沿進行地址鎖存,下降沿實現啟動轉換——只需占用一個I/O端口或一個I/O線。ADC0809ALESTART獨立連接來自I/O譯碼1來自I/O譯碼2ADC0809ALESTART統一連接來自I/O譯碼ADC0809ALESTART獨立連接來自I/O譯碼1來自I/O譯碼2ADC0809ALESTART統一連接來自I/O譯碼A/D轉換的啟動

主機產生啟動信號有兩種方法編程啟動軟件上,執行一個輸出指令硬件上,利用輸出指令產生ADC啟動脈沖,或產生一個啟動有效電平定時啟動啟動信號來自定時器輸出72判斷轉換結束的方法軟件延時等待(比如延時1ms)此時不用EOC信號,CPU效率最低軟件查詢EOC狀態。把EOC作為中斷申請信號,接到8259的IN端。在中斷服務程序中讀入轉換結果,效率較高

轉換結束信號的處理

不同的處理方式對應程序設計方法不同①查詢方式:把結束信號作為狀態信號②中斷方式:把結束信號作為中斷請求信號③延時方式:不使用轉換結束信號④DMA方式:把結束信號作為DMA請求信號例

用ADC0809實現對8路模擬輸入信號的循環數據采集,轉換結果放在DATA為首的內存單元中。8255初始化

INIT_8255PROCNEARMOVDX,037BHMOVAL,91H

;A,B,C均為方式0,A入,B出,CL入OUTDX,ALRET

INIT_8255ENDPSTART:

MOVAX,SEGDATAMOVDS,AXMOVSI,OFFSETDATA

CALLINIT_8255;初始化8255MOVBL,0

;通道號,初始指向第0路MOVCX,8

;共采集8次,每路采集一次AGAIN:

MOVAL,BLMOVDX,0379H

OUTDX,AL;送通道地址ORAL,10HOUTDX,AL;送ALE信號(上升沿)ANDAL,0EFHOUTDX,AL

;輸出START信號(下降沿)

NOP

;空操作等待轉換MOVDX,037AHWAIT1:INAL,DX;讀EOC狀態ANDAL,02H

JZWAIT1;若EOC為低電平則等待MOVDX,0379HMOVAL,BLORAL,20HOUTDX,AL;EOC端為高電平則輸出讀允許信號OE=1MOVDX,0378HINAL,DX;讀入變換結果MOV[SI],AL

;將轉換的數字量送存儲器

INCSI;修改指針INCBL;修改通道地址值

LOOPAGAIN

;若未采集完則再采集下一路數據MOVDX,0379HMOVAL,0OUTDX,AL

;若8路數據已采集完則回到初始狀態

HLT例11.1中斷方式舉例D0~D7220hIRQ2A0~A9譯碼VccD0~D7EOCADDAADDBADDCALE模擬輸入(0~5V)500KHzCLOCKVREF(+)+5VIN0OESTARTGNDVREF(-)IORIOW主程序 ;數據段

adtempdb0 ;給定一個臨時變量

;代碼段

…… ;設置中斷向量等工作

溫馨提示

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

評論

0/150

提交評論