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

下載本文檔

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

文檔簡介

《微機原理與接口技術》

輔助教學電子課件

第八章

數(shù)/模與模/數(shù)轉(zhuǎn)換第八章D/A與A/D轉(zhuǎn)換

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

放大器把傳感器輸出的信號放大到ADC所需的量程范圍低通濾波器用于降低噪聲、濾去高頻干擾,以增加信噪比多路開關把多個現(xiàn)場信號分時地接通到A/D轉(zhuǎn)換器采樣保持器周期性地采樣連續(xù)信號,并在A/D轉(zhuǎn)換期間保持不變8.1.1D/A轉(zhuǎn)換原理數(shù)字量→按權相加→模擬量1101B=1×23+1×22+0×21+1×20=13D/A轉(zhuǎn)換器的原理圖(1)Iout2Iout1RfbRfbVout+_I1S1D1c2RRI2S2D2b2RRI0S0D0d2R2RRI3S3D3a2RVREF電阻網(wǎng)絡基準電壓電子開關圖示D/A轉(zhuǎn)換器的原理圖(2)Iout2Iout1RfbRfbVout+_I1S1D1c2RRI2S2D2b2RRI0S0D0d2R2RRI3S3D3a2RVREF阻抗=2R運算放大器虛地D/A轉(zhuǎn)換器的原理圖(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轉(zhuǎn)換器的原理圖(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轉(zhuǎn)換器的主要參數(shù)分辨率:

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

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

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

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

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

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

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

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

+5V~+15VDGND:數(shù)字信號地單極性電壓輸出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芯片的數(shù)據(jù)位數(shù)大于主機數(shù)據(jù)總線寬度,所以分成兩種情況:1.主機位數(shù)等于或大于DAC芯片位數(shù)2.主機位數(shù)小于DAC芯片位數(shù)1.主機位數(shù)大于或等于DAC芯片的連接moval,bufmovdx,portdoutdx,al譯碼ABD0~D7CLKDACVout+_ALS273IOWDAC0832單緩沖方式連接WR1CSIOW5V+5VRfbIout2Iout1WR2XFERDGNDAGNDD0~D7DI0~D17VccILEVREFVout+_A譯碼AB2.主機位數(shù)小于DAC芯片的連接數(shù)字數(shù)據(jù)需要多次輸出接口電路也需要多個(級)鎖存器保存多次輸出的數(shù)據(jù)并需要同時將完整的數(shù)字量提供給DAC轉(zhuǎn)換器CPUDAC8位12位兩級鎖存電路模擬輸出12位DAC第2級12位鎖存控制第1級低8位鎖存控制第1級高4位鎖存控制D0~D74位鎖存器4位鎖存器8位鎖存器8位鎖存器由同一個信號控制關鍵的一級鎖存無需輸出數(shù)據(jù)簡化的兩級鎖存電路模擬輸出12位DAC第2級12位鎖存控制第1級低8位鎖存控制D0~D74位鎖存器8位鎖存器8位鎖存器由同一個信號控制關鍵的一級鎖存需要輸出高4位數(shù)據(jù)movdx,port1moval,bloutdx,almovdx,port2moval,bhoutdx,alDAC芯片的應用舉例-鋸齒波發(fā)生器

mov

dx,portd

mov

al,0repeat: outdx,al

inc

al

jmp

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

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

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

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

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

轉(zhuǎn)換結束信號的處理

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

用ADC0809實現(xiàn)對8路模擬輸入信號的循環(huán)數(shù)據(jù)采集,轉(zhuǎn)換結果放在DATA為首的內(nèi)存單元中。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

;空操作等待轉(zhuǎn)換MOVDX,037AHWAIT1:INAL,DX;讀EOC狀態(tài)ANDAL,02H

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

;將轉(zhuǎn)換的數(shù)字量送存儲器

INCSI;修改指針I(yè)NCBL;修改通道地址值

LOOPAGAIN

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

;若8路數(shù)據(jù)已采集完則回到初始狀態(tài)

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

adtempdb0 ;給定一個臨時變量

;代碼段

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

溫馨提示

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

評論

0/150

提交評論