微型計算機原理及應用_第1頁
微型計算機原理及應用_第2頁
微型計算機原理及應用_第3頁
微型計算機原理及應用_第4頁
微型計算機原理及應用_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微型計算機原理及應用

第12章數(shù)模(D/A)轉換

與模數(shù)(A/D)轉換接口

§12.1D/A轉換器接口

§12.2A/D轉換器接口

12.1D/A轉換器接口

D/A(DigittoAnalog)和A/D(AnalogtoDigit)轉換是

計算機與外部世界聯(lián)系的重要接口。在一個實際的系統(tǒng)中,

有兩種基本的量一一模擬量和數(shù)字量。外界的模擬量要輸入

給計算機,首先要經(jīng)過A/D轉換,才能由計算機進行運算、

加工處理等。若計算機的控制對象是模擬量,也必須先把計

算機輸出的數(shù)字量經(jīng)過D/A轉換,才能控制模擬量。

D/A和A/D轉換的具體電路已經(jīng)在數(shù)字電路課程中講述。

本章主要介紹如何把D/A和A/D轉換的芯片與CPU進行接口以

及用CPU控制這些轉換的軟件編程如何實現(xiàn)。

12.1.1CPU與8位D/A芯片的接

D/A轉換通常是由輸入的二進制數(shù)的各位控制一些開關,

通過電阻網(wǎng)路,在運算放大器的輸入端產(chǎn)生與二進制數(shù)各位

的權成比例的電流,經(jīng)過運算放大器相加和轉換而成為與二

進制數(shù)成比例的模擬電壓。

若CPU的輸出數(shù)據(jù)要通過D/A轉換變?yōu)槟M量輸出,當然

要把CPU數(shù)據(jù)總線的輸出連到D/A的數(shù)字輸入上。但是,由于

CPU要進行各種信息的加工處理,它的數(shù)據(jù)總線上的數(shù)據(jù)是

不斷地改變的,它輸出給D/A的數(shù)據(jù)只在輸出指令的幾個微

秒中出現(xiàn)在數(shù)據(jù)總線上。所以,必須要有一個鎖存器,把

CPU輸出給D/A轉換的數(shù)據(jù)鎖存起來,直至輸送新的數(shù)據(jù)為止。

一個最簡單的D/A芯片與CPU的接口電路如圖12-1所示。

+5VGND

247

D

725

D

634

D??J9

5

D2?

cp42()

D741008

3五

DTo9

D2

1518

D1

01617

112123

27H

地址_n_

譯碼

1ORQ

WR

其中,以鎖存器74100作為CPU與D/A轉換之間的接口。

CPU把74100作為一個輸出端口,用地址27H來識別,貝UCPU輸

給D/A的數(shù)據(jù)要用一條I/O寫(即輸出)指令來實現(xiàn)。

圖12-1的電路可應用于許多場合,例如:

(1)驅(qū)動一個侍服電機;

(2)控制一個電壓一頻率轉換器(用于鎖相環(huán)路);

(3)控制一個可編程的電源;

(4)驅(qū)動一個模擬電表。

12.1.28位CPU與12位(高于8位的)D/A轉

換器的接口

1.一種12位D/A轉換芯片

這里介紹一種12位D/A轉換片子DAC1210。

DAC1210是美國國家半導體公司生產(chǎn)的12位D/A轉換器芯

片,是智能化儀表中常用的一種高性能的D/A轉換器。

DAC1210的邏輯結構框圖如圖12-2所示。

引°“REF

1

八。IQUTI

寄r

DI][~DI[臉OI

41殮10UT2

差lt

D

寶AC

40器

S1器?

04b

DI?-DIQ[寄y

tl

也kNcc

Bl/B2

23

LELE

CS.

WR

西1DGND

XFER,

由圖12-2所示DAC1210的邏輯結構是一個12位的D/A轉換

器。它有兩個輸入寄存器,一個是8位的,一個是4位。若它

與8位CPU接口,DAC1210的輸入線DH1?DI4以及DI3?DIO都

連至CPU的數(shù)據(jù)總線DB7?DBO。12位數(shù)據(jù)需分兩次輸送,若

CPU輸出的地址及控制信號,使LE1有效,貝噸位數(shù)據(jù)輸入至8

位輸入寄存器:若CPU使LE2有效,則12位數(shù)據(jù)中的另4位輸

入至DAC1210的4位輸入寄存器。再使LE3有效,把12位輸入

寄存器的內(nèi)容同時輸入給12位DAC寄存器,進行D/A轉換。

若DAC1210與16位CPU相連,則DH1?DIO連至CPU的數(shù)據(jù)

總線DB11?DBO。CPU的輸出地址與控制信號使LE1與LE2同時

有效。貝UCPU輸出的12位數(shù)據(jù)同時輸入至8位輸入寄存器與4

位輸入寄存器。然后,使LE3有效,把12位輸入寄存器的內(nèi)

容同時輸送給12位DAC寄存器,進行D/A轉換。

DAC1210共有24個引腳,各引腳定義如下:

DH1?DIO:12位數(shù)字量輸入信號,其中DIO為最低位,

Din為最高位。

cs:片選輸入信號,低電平有效。

WR1:數(shù)據(jù)寫入信號1,低電平有效。當此信號有效時,

與B1/B2配合起控制作用。

B1/B2:字節(jié)控制信號。此引腳為高電平時,12位數(shù)字

同時送入輸入寄存器;為低電平時,只將12位數(shù)字量的低4

位送到4位輸入寄存器。

XFER:傳送控制信號,低電平有效,與WR2配合使用。

WR2:數(shù)據(jù)寫入信號2,低電平有效。此信號有效時,

XFER信號才起作用。

I0UT1:電流輸出1。

I0UT2:電流輸出2。

Rfb:內(nèi)部反饋電阻引腳。

VREF:參考電壓,-10V-+10Vo

VCC:芯片電源,+5V?+15V。

AGND:模擬地。

DGND:數(shù)字地。

2.DAC的輸出連接方式

有的D/A轉換片子的輸出是電壓,有的片子輸出的是電

流。在實際應用中,執(zhí)行部件往往要求電壓驅(qū)動,所以,電

流輸出的要經(jīng)過電流-電壓變換器。輸出電壓又可能只要求

單極性,而有的要求有正有負(雙極性)。

(1)單極性輸出

一個電流輸出的D/A片子轉換為單極性電壓輸出的電路

如圖12-3所小。

輸出與RFB端間接的電阻R2以及接于參考電源的R1是為

了調(diào)整增益,電容C則起防止振蕩的作用。

(2)雙極性輸出

其輸出電路如圖12-4所示。

V

REF

V

AGND

3.8位CPU與12位D/A接口方法

許多應用場合要求D/A有更高的靈敏度和精度,8位就不

能滿足要求了,常常要求10位、12位或14位D/A轉換器。

那么,如何把一個多于8位的D/A轉換器接口至U8位的微

型機呢?

可以把12位分成兩段,第一次微型機先輸出低8位到鎖

住器,第二次再把另四位送到另一個鎖存器上,如圖12-5所

O

54H

而要輸出的12位是存儲在兩個相鄰的單元內(nèi):

地址數(shù)據(jù)位

AD7D6D5D4D3D2DIDO

A+lXXXXDllDIOD9D8

A+2D7D6D5D4D3D2DIDO

A+3XXXXDllDIOD9D8

X為無用的位。

但是,若用圖12-5的電路輸出,則輸出電壓上會出現(xiàn)毛

刺。這是由于,若原來的數(shù)據(jù)為000011110000,下一個輸

出的值為000100001011,但在輸出過程中是先輸出低8位,

如下所示:

D/AData=000011110000D/AData=000100001011

D/AData=000000001011

數(shù)據(jù)先由000011110000變?yōu)?00000001011,則輸出

電壓要下降;然后再輸出高四位,變?yōu)?00100001011,輸

出電壓再升高,就出現(xiàn)了毛刺。為了解決這個問題,可以采

用雙緩沖器結構,如圖12-6所示。

CPU輸出時,先輸出低8位給緩沖器1(此時緩沖器2不通,

故輸出不變),然后輸出高兩位。等這兩者都輸出后,再輸

出一個打開緩沖器2的選通脈沖,把10位同時輸給D/A轉換,

這樣就避免了毛刺。

程序如下:

ORG2000H

START:MOVBX,DATA

MOVCL,64H

DAC:MOVAL,[BX]

OUT54H,AL

INCBX

MOVAL,[BX]

OUT55H,AL

OUT56H,AL

INCBX

DECCL

JNZDAC

JMPSTART

ORG3000H

DATADWWl,W2,???,W1OO;定義100個字(每個字10位)

ENDSTART

12.2A/D轉換器接口

12.2.1概述

在一個實際的系統(tǒng)中,要用微型計算機來監(jiān)視和控制過

程中發(fā)生的各種參數(shù),就首先要用傳感器把各種物理參數(shù)

(如壓力、溫度等)測量出來,并且轉換為電信號,再經(jīng)過

A/D轉換,傳送給微型計算機;微型計算機對各種信號計算、

加工處理后輸出,經(jīng)過D/A轉換再去控制各種參數(shù),其過程

如圖12-14所不。

現(xiàn)場

多路

采樣

一保持一aA/D—微型機

開關

模擬

v-D/Av

控制

其中:

(1)傳感器一一把各種現(xiàn)場的物理量測量出來,并且轉

換為電信號。

(2)量程放大器——把傳感器的信號(通常為mV?"V級)

放大到A/D轉換所需要的量程范圍。

(3)低通濾波器一一降低干擾,增加信擾比。

(4)多路開關——通常要監(jiān)視和控制的現(xiàn)場信號是很多

的,而且它們的變化是緩慢的,所以沒有必要一種現(xiàn)場信號

就有一個A/D轉換器和占用一條與微型計算機聯(lián)系的通路,

而可以利用多路開關,把多個現(xiàn)場信號,用一條通路來監(jiān)視

和控制。

(5)采樣/保持電路一一因為現(xiàn)場信號總是在變化的,

而A/D轉換總是需要一定時間的,所以,需要把要轉換的信

號采樣后保持一段時間,以備轉換。另外,現(xiàn)場信號的變化

是緩慢的,沒有必要始終監(jiān)視,而可以用巡回檢測的辦法,

所以,也要求有采樣/保持電路。

當用巡回檢測的辦法來監(jiān)視現(xiàn)場信號時,就存在一個問

題:應該經(jīng)過多長時間去采樣一次被測信號,使采樣的結

果能夠反映被測信號,即采樣頻率應該多高。采樣定理告訴

我們:采樣頻率至少應該大于被測信號頻譜中的最高頻率的

兩倍。

本章主要討論A/D轉換。

12.2.2用軟件實現(xiàn)A/D轉換

利用D/A轉換器,CPU可用軟件實現(xiàn)A/D轉換。

1.計數(shù)器式A/D轉換

計數(shù)器式A/D轉換可以用硬件實現(xiàn),如圖12-15所示。也

可以利用一個D/A轉換電路,用軟件實現(xiàn),如圖12-16所示。

軟件實現(xiàn)實際上是用一種類似于線性搜索的辦法,每次

讓一個鎖存器加1,再把它經(jīng)D/A轉換后為V:與輸入模擬電

壓Vx相比較,把比較的結果用一個輸入端口輸入,若仍是Vx

>VC,則循環(huán);當Vx二Vc時就停止循環(huán),此時鎖存器中的數(shù)據(jù)

即為轉換所得的結果。

輸入模擬電壓比較器

D7

其程序如下:

ORG2000H

START:MOVCL,0;用CL作比較用的寄存器,初值為

DALOOP:MOVAL,CL

OUT27H,AL

INAL,15H;輸入比較器的狀態(tài),若Vx>V.

則D5=0

AND20H;屏蔽除D5外的其他位

JNZDONE;D5W0,則轉換完成

INCCL

JMPDALOOP

DONE:MOVAL,CL

OUT02H,AL;轉換完成數(shù)據(jù)輸出顯示

HALT

但是用上述軟件來實現(xiàn)轉換,比硬件更慢。255步的比

較需要7ms(若CPU為8080A)。顯然轉換的位數(shù)越多,時間就

更長。

所以,用軟件實現(xiàn)計數(shù)器式的A/D轉換是不實用的;但

是當轉換速度要求不高時硬件實現(xiàn)的芯片仍然是有用的,它

的成本較低。

2.逐次逼近式A/D轉換

用軟件實現(xiàn)逐次逼近式A/D轉換,實際上是把輸入模擬

電壓Vx作為一個關鍵字,用對分搜索的辦法來逼近它。

例如,在8位的情況下,要轉換一個相當于數(shù)113的模擬

電壓,搜索過程可用表12-5來描述。

用軟件實現(xiàn)逐次逼近式A/D轉換的流程圖如圖12-17所示。

如果仍然使用圖12-16所示的接口電路,則寄存器AL用

于I/O數(shù)據(jù)傳送和位操作,寄存器DH存放每次試探的數(shù)據(jù),

寄存器DL存放累加的結果,寄存器CL作為循環(huán)次數(shù)計數(shù)器。

程序如下:

ORG2000H

START:SUBAL,AL;清AL

MOVDX,8000H;置DH=80H,DL=OOH

MOVCL,8;置循環(huán)次數(shù)

AGAIN:ORAL,DH;建立新試探值

MOVDL,AL;存入DL中

INAL,15H;輸入比較結果的狀態(tài);

*若VX>VC,則D5=0

ANDAL,20H;屏蔽除D5外的所有位

JZOK;小于VX,轉至OK

MOVAL,DH

NOTAL

ANDAL,DL;使新的試探值置0

MOVDL,AL;和一DL

OK:SHRDH,1;移至下一4立試探

MOVAL,DL

DECCL

JNZAGAIN;未完,進入下一循環(huán)

DONE:HALT

對于8位的轉換,若CPU為8080,時鐘周期為500ns,則

轉換時間為240〃s。若要求更快轉換,則可用硬件實現(xiàn)的逐

次逼近式轉換器。

12.2.3A/D轉換芯片介紹

1.8通道8位A/D轉換器ADC0809

ADC0809是CMOS的8位單片A/D轉換器。片內(nèi)有8路模擬

開關,可控制選擇8個模擬量中的一個。A/D轉換采用逐次逼

近原理。輸出的數(shù)字信號有TTL三態(tài)緩沖器控制,故可直接

連至數(shù)據(jù)總線。

(1)主要功能

①分辨率為8位;

②總的不可調(diào)誤差在±12LSB?±1LSB范圍內(nèi);

③轉換時間為100〃s;

④具有鎖存控制的8路多路開關;

⑤輸出有三態(tài)緩沖器控制;

⑥單一5V電源供電,此時模擬電壓輸入范圍為0?5V;

⑦輸出與TTL兼容;

⑧工作溫度范圍為-40℃?85℃。

(2)ADC0809功能方框圖

ADC0809的結構如圖12-18所示。

模擬輸入部分有8路多路開關,可由三位地址輸入ADDA、

ADDB、ADDC的不同組合來選擇(這三條地址輸入信號可鎖存)。

主體部分是采用逐次逼近式的A/D轉換電路,由CLK信號

控制內(nèi)部電路的工作,由START信號控制轉換開始。轉換后

的數(shù)字信號在內(nèi)部鎖存,通過三態(tài)緩沖器接至輸出端。

STARTCLK

QQ

r

-I:OC

控制與時序

SAR三態(tài)

輸出

鎖存I-X7

緩沖

樹狀開關器

o

RET(+)REF㈠OE

ADC0809的引腳如圖12-19所示。其中,START為啟動命

令,高電平有效。由它啟動ADC0809內(nèi)部的A/D轉換過程。

當模/數(shù)轉換完成,輸出信號E0C#(EndofConvert)有效(低

電平有效)。0E(OutputEnable)為輸出允許信號,高電平有

效。當在此輸入端供給一個有效信號時,打開輸出三態(tài)緩沖

器,把轉換后的結果輸送至數(shù)據(jù)總線。

1N--------O

3128IN2

IN4------227Z

g——326IN。

IN6——425--------ADDA

IN7------524-------ADDB

START-------6ADC080923-------ADDC

EOC-------722-------ALE

821D°

OE--------920Di

CLK-------

1()19D2

【cc1118E>3

REF(+)--------

1217D7

GND-------1316-------REF(-)

1415

D(,o5

(3)ADC0809時序

ADC0809的時序如圖12-20所示。

當模擬量送到某一輸入端后,由三位地址信號來選擇,

地址信號由地址鎖存允許ALE(AddressLatchEnable)鎖存。

由啟動命令START啟動轉換。轉換完成E0C#輸出一個負脈沖,

外界的輸出允許信號0E,打開三態(tài)緩沖器把轉換的結果送上

數(shù)據(jù)總線。一次A/D轉換的過程就完成了。

2.12位A/D轉換器AD7870/AD7875/AD7876

(1)主要功能

AD7870/AD7875/AD7876是一組完全12位8〃s逐次逼近

式A/D轉換器。它們由基于快速設置的電壓輸出DAC、高速

比較器和逐次逼近寄存器(SAR)、采樣保持放大器、時鐘和

控制邏輯組成。它有一個自包含的內(nèi)部時鐘以保證轉換時間

的精確控制,不需要外部時鐘。若需要的話,內(nèi)部時鐘也可

被外部時鐘超越。

整個操作由±5V電源供電。

AD7870和AD7876分別接收±3V和±10V輸入信號范圍而

AD7875接收單極性的0V?+5V輸入范圍。

(2)AD7870的結構和引腳

其結構如圖12-21所示。

AD7870接收到有效的CONVST命令后,內(nèi)部的逐次逼近寄

存器從最高位開始順次經(jīng)DAC在比較器上與模擬量相比較。

檢測完所有位后,SAR中包含轉換后的12位二進制碼。

轉換完成后,SAR發(fā)出INT信號(低電平有效),打開三態(tài)

緩沖器輸出數(shù)據(jù)。

各個引腳的功能為:

腳1——RD#讀。輸入,低電平有效。此輸入引腳用于

與低電平有效的CS#相結合以允許數(shù)據(jù)輸出。

腳2——BUSY#/INT#忙/中斷。低有效,輸出以指示轉換

器狀態(tài)。參見時序圖。

腳3——CLK時鐘輸入。一外部TTL兼容的時鐘可以供給

至此輸入腳。若連接此腳至VSS,啟用內(nèi)部時鐘。

腳4——DBH/HBEN數(shù)據(jù)位H(最高有效位)/高字節(jié)啟

用。此腳的功能取決于12/8/CLK輸入的狀態(tài)。當選擇12位并

行數(shù)據(jù)時,此腳提供DBH輸出。當選擇字節(jié)數(shù)據(jù)時,此腳變

為HBEN邏輯輸入,用于與8位總線接口。當HBEN是低,

DB7/L0W?DB0/DB8變?yōu)镈B7?DBO。若HBEN為高,DB7/L0W到

DB0/DB8用于數(shù)據(jù)的高四位。

腳5——DB10/SSTRB數(shù)據(jù)位10/串行選通。當選擇12位數(shù)

據(jù)時,此腳提供DB10輸出。SSTRB是一個低有效漏極開路輸

出為串行數(shù)據(jù)提供選通或幀脈沖。在SSTRB上需要一個

4.7kQ的上拉電阻。

腳6——DB9/SCLK數(shù)據(jù)位9/串行時鐘。當選擇12位并行

數(shù)據(jù)時,此腳提供DB9輸出。SCLK是以內(nèi)部或外部ADC時鐘導

出的可控的串行時鐘輸出。若12/8/CLK輸入是-5V,于是

SCLK繼續(xù)運行。若12/8/CLK是0V,于是SCLK在串行發(fā)送完成

之后關閉。SCLK是一個漏極開路輸出并要求外部2kQ上拉電

阻。

腳7——DB8/SDATA數(shù)據(jù)位8/串行數(shù)據(jù)。當選擇12位并行

數(shù)據(jù)時,此腳提供DB8輸出。SDATA是一漏極開路串行數(shù)據(jù)輸

出,它與CLK和SSTRB一起用于串行數(shù)據(jù)傳送。當SSTRB為低

時,串行數(shù)據(jù)在SCLK的下降沿有放。在SDATA上要求一個外

部的4.7kQ上拉電阻。

腳8?腳11——DB7/L0W?DB4/L0W由CS和RD控制的三態(tài)

數(shù)據(jù)輸出。它們的功能取決于12/8/CLK和HBEN輸入。

在12/8/CLK高時,它們是DB7?DB4。在12/8/CLK低或一

5V,它們的功能由HBEN控制(見表12-6)。

腳12——DGND數(shù)字地。

腳13?腳16——DB3/DBU-DB0/DB8由CS和RD控制的三

態(tài)數(shù)據(jù)輸出。它們的功能取決于12/8/CLK和HBEN輸入。若

12/8/CLK為高,它們是DB3?DBO。若12/8/CLK為低或-5V,它

們的功能由HBEN控制(見表12-6)。

腳17——VDD正電源,+5V±5%O

腳18——AGND模擬地。

腳19——REFOUT參考電壓輸出。在此腳上提供內(nèi)部3V

參考電壓外部負載能力是500“A。

腳20——VIN模擬輸入。對于AD7870是±3V,對于

AD7876是±10V,對于AD7875是+5V。

腳21——VSS負電源,-5V±5%。

腳22——12/8/CLK三功能輸入。定義數(shù)據(jù)格式和串行

時鐘格式。若此腳為+5V,輸出數(shù)據(jù)是12位并行。若此腳為

0V,或者是字節(jié)或者是串行數(shù)據(jù),且SCLK不連續(xù)。若此腳為

-5V,或者字節(jié)或者串行數(shù)據(jù)但現(xiàn)在SCLK連續(xù)。

腳23——CONVST#啟動轉換。在此輸入腳上由低變?yōu)楦?

使采樣/保持處在保持方式并啟動轉換。此腳與CLK輸入是異

步的。

腳24——CS#片選,輸入、低有效。當此輸入有效,選

中此設備。若CONVST連接為低,當CS#變低,啟動新的轉換。

(3)AD7870的操作方式與時序

AD7870/AD7875/AD7876有兩種基本操作模式:模式1、

模式2。在第一種模式(模式1)中,CONVST#線用于啟動轉

換并驅(qū)使采樣/保持電路進入保持方式。在轉換結束,采樣/

保持電路返回采樣方式。對于要求在時間上精確采樣的數(shù)字

信號處理和別的應用程序,傾向于用這種模式。對于這種情

況,CONVST#線由定時器或若干精確時鐘源驅(qū)動。

第二種模式是把CONVST#線硬連為低而實現(xiàn)。這種模式

(模式2)傾向用于微處理器同時控制和啟動ADC轉換并讀

數(shù)據(jù)的系統(tǒng)中。CS#啟動轉換,在轉換間隔由BUSY#/INT#線

使微處理器處在WAIT狀態(tài)。

①模式1接口

轉換由在CONVST#輸入腳上的低脈沖啟動。CONVST#脈沖

的上升沿,啟動轉換并且驅(qū)使采樣/保持放大器進入保持方

式。若CS#是低電平則轉換不啟動。在這種模式,

BUSY#/INT#狀態(tài)輸出作為中斷功能。INT#正常是高電平,在

轉換結束時變低。INT#線能用于中斷微處理器。對ADC的讀

操作訪問數(shù)據(jù)且在CS#和RD#的下降沿INT#線重置為高電平。

為了對這種模式的ADC正確操作,當CS#和RD#都變低時,

CONVST#必須為高電平。在這種模式下,CS#和RD#不能硬連

為低。在轉換期間不能讀數(shù)據(jù),因為片上的鎖存器在轉換進

行中是屏蔽的。

圖12-24給出12位并行數(shù)據(jù)輸出格式(12/8/CLK=+5V)

時模式1的時序圖。在轉換結束時對ADC的讀同時訪問所有12

位數(shù)據(jù)。對于這種數(shù)據(jù)輸出格式,串行數(shù)據(jù)是不可以用的。

AD7870提供三種數(shù)據(jù)輸出格式:單個并行的12位字、

兩個8位字節(jié)或串行數(shù)據(jù)。

并行數(shù)據(jù)格式是對16位數(shù)據(jù)總線提供單12位并行字;對

于8位數(shù)據(jù)總線提供兩個字節(jié)格式。

數(shù)據(jù)字節(jié)格式由12/8/CLK輸入控制。在此腳上的邏輯

高電平,只選擇12位并行輸出格式。若邏輯低電平或-5V供

給此輸入,允許用戶訪問字節(jié)格式或串行的數(shù)據(jù)。在任一種

操作模式中,這三種數(shù)據(jù)輸出格式都是可選的。

—"11)

CONVST一\一斤采樣保持進入保評

CS

RD

?梁杼保恃返回至東杼

?且快測時間開始

INT

tCONVERT

三念r

DATA

DB11-DBO

?并行輸出格式

在第一種格式中,12位數(shù)據(jù)在DB11?DBO上同時可用。在

第二種格式中,訪問數(shù)據(jù)要求兩次讀。在選擇了這種格式時,

DB11/HBEN腳作為HBEN(高字節(jié)允許)功能,它選擇從ADC讀

數(shù)據(jù)的哪個字節(jié)。當HBEN為低,在讀操作期間數(shù)據(jù)的低8位

放至數(shù)據(jù)總線;當HBEN為高,12位字的高4位放至數(shù)據(jù)總線。

這4位是右對齊的,因此占用低4位而高4位包含4個0。

?串行輸出格式

在AD7870/AD7875/AD7876上可以輸出串行數(shù)據(jù)。當

12/8/CLK輸入是0V或-5V時,DB10/SSTRB、DB9/SCLK和

DB8/SDATA腳起串行功能。串行數(shù)據(jù)是一個16位的字,4個前

導3跟著是12位轉換的結果,最高有效位在前。數(shù)據(jù)同步

于串行時鐘輸出(SCLK)由串行選通(SSTRB)確定一幀。

數(shù)據(jù)當SSTRB輸出為低時,在串行時鐘由低變高時輸出而在

時鐘的下降沿有效。SSTRB在CONVST后三個時鐘周期內(nèi)變低,

且第一個串行數(shù)據(jù)位(第一個前導0)在SCLK的第一個下降

沿有效。這三個串行線都是漏極開路并要求外部上拉電阻。

串行時鐘輸出是以ADC時鐘源導出的,它可以是內(nèi)部的

或外部的。

對于字節(jié)和串行數(shù)據(jù),模式1的時序如圖12-25所示。

INT#在轉換結束后變低由CS#和RD#的第一個下降沿重置

為高。在轉換結束后的第一次讀能訪問數(shù)據(jù)的低字節(jié)或高字

節(jié)取決于HBEN的狀態(tài)。圖12-25同時顯示了非連續(xù)和連續(xù)的

運行時鐘(虛線)。

DB7-DB0DB11-DB9

sm,

H--------------------11—H

ea?*

iJ

,如T卜d

'髀。'詞

NMTA*

事行救根

②模式2接口

第二種接口模式由硬連CONVST#為低,轉換由當HBEN為

低使CS#為低啟動的。采樣/保持放大器在CS#的下降沿進入

保持方式。在此模式,BUSY#/INT#腳起B(yǎng)USY#功能(作為

8086的READY線)。在轉換開始BUSY#變低并且在轉換期間保

持為低,當轉換完成返回高電平。它通常用作并行接口,使

微處理器在轉換期間處在WAIT狀態(tài)。

圖12-26顯示12位并行數(shù)據(jù)輸出格式(12/8/CLK二+5V)模

式2時序圖。在這種情況下,ADC的行為像慢速存儲器。這種

接口的主要優(yōu)點是允許微處理器啟動轉換、等待,然后用單

個讀指令讀數(shù)據(jù)。用戶不需要關心中斷服務或保證在轉換期

間的延時。

CS采杼保持進入保持

采杼保持返回至保持

且快測時間開始

三態(tài)

DATA教編)

DB11-DB0

字節(jié)和串行數(shù)據(jù)的模式2時序如圖12-27所示。對于讀兩

字節(jié),低字節(jié)(DBO?DB7)必須先訪問,因為要啟動轉換,

HBEN必須為低。

對于第一次讀,ADC的行為像慢速存儲器。但第二次訪

問數(shù)據(jù)的高字節(jié)是正常的讀。串行功能的操作在模式1和模

式2是相同的,如圖12-27所示。

6二

Tq

§二

o

g二

L

e*二?

-二

JTL

-二

gt

l_n

Jgl

Tn興

n

L

JkL「

?

-己

——

4工i

12.2.4A/D轉換芯片與CPU

1.A/D轉換芯片與CPU接口要注意的問題

(1)啟動信號

A/D轉換器要求的啟動信號一般有兩種形式:電平啟動

信號和脈沖啟動信號。

有些A/D轉換芯片要求用電平作為啟動信號,整個轉換

過程中都必須保證啟動信號有效,如果中途撤走啟動信號,

就會停止轉換而得到錯誤結果。為此,CPU一般要通過并行

接口來對A/D芯片發(fā)啟動信號,或者用D觸發(fā)器使啟動信號在

A/D轉換期間保持在有效電平。

另外一些A/D轉換芯片要求用脈沖信號來啟動,對這種

芯片,通常用CPU執(zhí)行輸出指令時所發(fā)出的片選信號和寫信

號即可在片內(nèi)產(chǎn)生啟動脈沖,從而開始轉換。

(2)轉換結束與轉換數(shù)據(jù)的讀取

A/D轉換結束時,A/D轉換芯片會輸出轉換結束信號,通

知CPU讀取轉換數(shù)據(jù)。

CPU一般可以采用以下四種方式和A/D轉換器進行聯(lián)絡來

實現(xiàn)對轉換數(shù)據(jù)的讀取。

第一種是程序查詢方式。這種方式的思想就是在啟動

A/D轉換器工作之后,程序不斷地讀取A/D轉換結束信號,如

果發(fā)現(xiàn)結束信號有效,則認為完成一次轉換,因而用輸入指

令讀取數(shù)據(jù)。

第二種是中斷方式。用這種方式時,把轉換結束信號作

為中斷請求信號,送到中斷控制器(如8259)的中斷請求輸

入端。

第三種是CPU等待方式。這種方式利用CPU的READY引腳

的功能,設法在A/D轉換期間使READY處于低電平,以使CPU

停止工作,轉換結束時,則使READY成為高電平,CPU讀取轉

換數(shù)據(jù)。

第四種是固定的延遲程序方式。用這種方式時,要預先

精確地知道完成一次A/D轉換所需要的時間。這樣,CPU發(fā)出

啟動命令之后,執(zhí)行一個固定的延遲程序,此程序執(zhí)行完時,

A/D轉換也正好結束,于是CPU讀取數(shù)據(jù)。

如果CPU的轉換時間比較長,或者有幾件事情需要CPU處

理,那么,用中斷方式效率比較高。但是,如果A/D轉換時

間比較短,中斷方式就失去了優(yōu)越性,因為響應中斷、保護

現(xiàn)場、恢復現(xiàn)場、中斷返回這一系列環(huán)節(jié)所花去的時間將和

A/D轉換的時間相當。此時可用上述的三種非中斷方式之一

來實現(xiàn)轉換數(shù)據(jù)的讀取。

采用中斷方式時,程序設計非常簡單。主程序中,只要

有一條輸出指令即可以啟動A/D轉換。假設A/D轉換器的端口

號為PROTAD,則執(zhí)行指令:

OUTPORTAD,AL

后,A/D轉換器便開始轉換。在這條輸出指令中,寄存

器AL預先放什么內(nèi)容是無關緊要的,執(zhí)行這條指令的目的是

為了得到有效的片選信號和寫信號,使A/D轉換器啟動。

此后,便開始A/D轉換過程。轉換結束后,A/D芯片會輸

出一個轉換結束信號,此信號產(chǎn)生中斷請求,CPU響應中斷

后,便轉去執(zhí)行中斷處理程序。中斷處理程序中最主要的指

令是讀取轉換結果的輸入指令:

INAL,PORTAD

這條指令在執(zhí)行時,使三態(tài)輸出門開啟,從而CPU獲得

轉換數(shù)據(jù)。

2.8位轉換器的接口

當A/D轉換芯片與CPU接口時,除了數(shù)據(jù)的輸入至CPU外,

與通常的I/O接口一樣,還需要有控制信息和狀態(tài)信息,如

圖12-28所示。

在實際應用時,A/D的模擬輸入端接至采樣/保持電路的

輸出,如圖12-14中所示。但轉換的開始,要由CPU用軟件來

控制(輸出一條指令);而轉換總是需要一定時間才能完成,

故A/D轉換電路必須給出一個DONE/BUSY的狀態(tài)信息。

CLOCK

START

ADC

DATA<

DONE一

一個典型的8位A/D轉換的接口電路如圖12-29所示。

其中,輸入輸出接口電路采用8212,顯然也可以采用8255A。

程序如下:

ORG2000H

START:LDBX,DATA

CONV:OUT37H,AL;啟動轉換

TET:INAL,66H;輸入狀態(tài)

ANDAL,80H;檢測DONE標志

JZTET;未完成,等待

INAL,65H;輸入轉換后的數(shù)據(jù)

MOVBX],AL;存入內(nèi)存

RET

ORG3000H

DATA:DS1;給輸入數(shù)據(jù)保留一個存儲單元

END

上述程序是用查詢方式與A/D交換信息,顯然也可以用

中斷方式,用DONE信息作為中斷請求信號。

一若把ADC0809接至TP801A單板機,其接線如圖12-30所

O

若要把8個模擬量輪流輸入至內(nèi)存緩沖區(qū),輸入在中斷

服務程序中執(zhí)行。程序如下:

;主程序

START:MOVBX,DATA;設輸入緩沖器指針

MOVCH,8

MOVCL,0

STI

MOVAL,CL

OUTPADC,AL

HALT

LOOP:XORAL,AL

INCCL

MOVAL,CL

CMPAL,8

JZDONE

OUTPADC,AL

JMPLOOP

DONE:HALT

;中斷服務程序

ORG0038H

DWINTSEV

3.10位A/D轉換接口

當A/D轉換的精度要求高時,就要求有10位、12位或更

多位的A/D轉換芯片。如何把一個多于8位的A/D轉換芯片與8

位的微型計算機接口呢?圖12-31是一個典型的10位A/D轉換

的接口電路。其中,狀態(tài)信號和數(shù)據(jù)的高兩位,用了同一個

輸入接口芯片8212,只要在程序上加以區(qū)分是不會混淆的。

其程序為:

ORG2000H

ADC:PUSHAX

PUSHBX

MOVBX,ADTA

OUT37H,AL;啟動轉換

TEST:INAL,66H;輸入狀態(tài)及高兩位數(shù)據(jù)

ADDAL,80H;檢查D7=l?但不影響DI和DO

JNCTEST;轉換未完則等待

MOV[BX+1],AL;存入高位字節(jié)(兩位)

INAL,65H;輸入低8位

MOV[BX],AL

POPBX

POPAX

RET

ORG3000H

DATADS2;為輸入數(shù)據(jù)保留兩個存儲單元

END

12.2.5D/A和A/D轉換應用舉例

1.D/A轉換舉例

鋸齒波信號廣泛用于示波器的掃描電路,鋸齒波信號一

般是利用阻容電路的充電來實現(xiàn)的,由于阻容充放電的過程

是近似線性的,所以很難得到一個線性好的波形,通過D/A

轉換電路可以得到線性度相當高的波形。圖12-32就是一個

利用DAC0832芯片實現(xiàn)鋸齒波信號的電路。

數(shù)

對于圖12-32所示電路,執(zhí)行下面的程序時,就可以產(chǎn)

生一個鋸齒波信號。

MOVDX,PORTA;PORTA為D/A轉換器端口地址

MOVAL,OFFH;初值為OFFH

ROTATE:INCAL

OUTDX,AL;往D/A轉換器輸出數(shù)據(jù)

JMPROTATE

2.A/D轉換舉例

有一數(shù)據(jù)采集電路如圖12-33所示,圖中ADC0809通過

8255A與8086CPU連接,要求從模擬通道IN0開始轉換,連續(xù)

采樣24個數(shù)據(jù);然后采樣下一個模擬通道IN1,同樣采樣24

個數(shù)據(jù);……直至IN7。采樣后的數(shù)據(jù)存放在數(shù)據(jù)段中2000H

開始的數(shù)據(jù)區(qū)中。

EOCD?-D.

WR

OE

8026

ADDA%

ADDB

ADDCA;

M而

ADC

08092

RD

(1)電路分析

地址譯碼器74LS138的地址輸入端C、B、A分別接A4、A3、

A2,GZA#與或門5輸出相連,或門5的輸入為M/IO#和A5,只有

在M/IO#二0時(即I/O操作)且A5=0才可能使GZA#為有效低電

平,從而使74LS138能正常譯碼。GZB#與與非門6的輸出相連,

而與非門6的輸入為A6A7,只要A6A7為高電平,G?B#才能是有

效的低電平。而G1同A8直接相連,只有當A8為高電平時,G1

才為有效的高電平。這樣,從GZA#、GZB#和G1的要求來看,

A8A7A6A5必須為H10且為I/O操作時,才能滿足74LS138的譯

碼條件。

8255A的PA口與ADC0809的數(shù)據(jù)線D7?DO相連,即可從

8255A的PA□讀入轉換后的數(shù)字量。8255A的片選端接

74LS138的輸出端Y。#,所以8255A的端口地址為

A8A7A6A5A4A3A2A1AO=U10000XX即1C0H?1C3HO

8255A的PBO同ADC0809的EOC相連,用來檢測ADC0809

是否轉換結束。

ADC0809的通道地址選擇線ADDC、ADDB、ADDA同8086

CPU的AO、Al、A2相連。

74LS138的譯碼輸入地址為A8?A2,因此每一個輸出端

包含4個端口地址,而對ADC0809的8個

溫馨提示

  • 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

提交評論