版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
微型計(jì)算機(jī)原理及應(yīng)用
第12章數(shù)模(D/A)轉(zhuǎn)換
與模數(shù)(A/D)轉(zhuǎn)換接口
§12.1D/A轉(zhuǎn)換器接口
§12.2A/D轉(zhuǎn)換器接口
12.1D/A轉(zhuǎn)換器接口
D/A(DigittoAnalog)和A/D(AnalogtoDigit)轉(zhuǎn)換是
計(jì)算機(jī)與外部世界聯(lián)系的重要接口。在一個(gè)實(shí)際的系統(tǒng)中,
有兩種基本的量一一模擬量和數(shù)字量。外界的模擬量要輸入
給計(jì)算機(jī),首先要經(jīng)過A/D轉(zhuǎn)換,才能由計(jì)算機(jī)進(jìn)行運(yùn)算、
加工處理等。若計(jì)算機(jī)的控制對象是模擬量,也必須先把計(jì)
算機(jī)輸出的數(shù)字量經(jīng)過D/A轉(zhuǎn)換,才能控制模擬量。
D/A和A/D轉(zhuǎn)換的具體電路已經(jīng)在數(shù)字電路課程中講述。
本章主要介紹如何把D/A和A/D轉(zhuǎn)換的芯片與CPU進(jìn)行接口以
及用CPU控制這些轉(zhuǎn)換的軟件編程如何實(shí)現(xiàn)。
12.1.1CPU與8位D/A芯片的接
D/A轉(zhuǎn)換通常是由輸入的二進(jìn)制數(shù)的各位控制一些開關(guān),
通過電阻網(wǎng)路,在運(yùn)算放大器的輸入端產(chǎn)生與二進(jìn)制數(shù)各位
的權(quán)成比例的電流,經(jīng)過運(yùn)算放大器相加和轉(zhuǎn)換而成為與二
進(jìn)制數(shù)成比例的模擬電壓。
若CPU的輸出數(shù)據(jù)要通過D/A轉(zhuǎn)換變?yōu)槟M量輸出,當(dāng)然
要把CPU數(shù)據(jù)總線的輸出連到D/A的數(shù)字輸入上。但是,由于
CPU要進(jìn)行各種信息的加工處理,它的數(shù)據(jù)總線上的數(shù)據(jù)是
不斷地改變的,它輸出給D/A的數(shù)據(jù)只在輸出指令的幾個(gè)微
秒中出現(xiàn)在數(shù)據(jù)總線上。所以,必須要有一個(gè)鎖存器,把
CPU輸出給D/A轉(zhuǎn)換的數(shù)據(jù)鎖存起來,直至輸送新的數(shù)據(jù)為止。
一個(gè)最簡單的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轉(zhuǎn)換之間的接口。
CPU把74100作為一個(gè)輸出端口,用地址27H來識別,貝UCPU輸
給D/A的數(shù)據(jù)要用一條I/O寫(即輸出)指令來實(shí)現(xiàn)。
圖12-1的電路可應(yīng)用于許多場合,例如:
(1)驅(qū)動一個(gè)侍服電機(jī);
(2)控制一個(gè)電壓一頻率轉(zhuǎn)換器(用于鎖相環(huán)路);
(3)控制一個(gè)可編程的電源;
(4)驅(qū)動一個(gè)模擬電表。
12.1.28位CPU與12位(高于8位的)D/A轉(zhuǎn)
換器的接口
1.一種12位D/A轉(zhuǎn)換芯片
這里介紹一種12位D/A轉(zhuǎn)換片子DAC1210。
DAC1210是美國國家半導(dǎo)體公司生產(chǎn)的12位D/A轉(zhuǎn)換器芯
片,是智能化儀表中常用的一種高性能的D/A轉(zhuǎn)換器。
DAC1210的邏輯結(jié)構(gòu)框圖如圖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的邏輯結(jié)構(gòu)是一個(gè)12位的D/A轉(zhuǎn)換
器。它有兩個(gè)輸入寄存器,一個(gè)是8位的,一個(gè)是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)容同時(shí)輸入給12位DAC寄存器,進(jìn)行D/A轉(zhuǎn)換。
若DAC1210與16位CPU相連,則DH1?DIO連至CPU的數(shù)據(jù)
總線DB11?DBO。CPU的輸出地址與控制信號使LE1與LE2同時(shí)
有效。貝UCPU輸出的12位數(shù)據(jù)同時(shí)輸入至8位輸入寄存器與4
位輸入寄存器。然后,使LE3有效,把12位輸入寄存器的內(nèi)
容同時(shí)輸送給12位DAC寄存器,進(jìn)行D/A轉(zhuǎn)換。
DAC1210共有24個(gè)引腳,各引腳定義如下:
DH1?DIO:12位數(shù)字量輸入信號,其中DIO為最低位,
Din為最高位。
cs:片選輸入信號,低電平有效。
WR1:數(shù)據(jù)寫入信號1,低電平有效。當(dāng)此信號有效時(shí),
與B1/B2配合起控制作用。
B1/B2:字節(jié)控制信號。此引腳為高電平時(shí),12位數(shù)字
同時(shí)送入輸入寄存器;為低電平時(shí),只將12位數(shù)字量的低4
位送到4位輸入寄存器。
XFER:傳送控制信號,低電平有效,與WR2配合使用。
WR2:數(shù)據(jù)寫入信號2,低電平有效。此信號有效時(shí),
XFER信號才起作用。
I0UT1:電流輸出1。
I0UT2:電流輸出2。
Rfb:內(nèi)部反饋電阻引腳。
VREF:參考電壓,-10V-+10Vo
VCC:芯片電源,+5V?+15V。
AGND:模擬地。
DGND:數(shù)字地。
2.DAC的輸出連接方式
有的D/A轉(zhuǎn)換片子的輸出是電壓,有的片子輸出的是電
流。在實(shí)際應(yīng)用中,執(zhí)行部件往往要求電壓驅(qū)動,所以,電
流輸出的要經(jīng)過電流-電壓變換器。輸出電壓又可能只要求
單極性,而有的要求有正有負(fù)(雙極性)。
(1)單極性輸出
一個(gè)電流輸出的D/A片子轉(zhuǎn)換為單極性電壓輸出的電路
如圖12-3所小。
輸出與RFB端間接的電阻R2以及接于參考電源的R1是為
了調(diào)整增益,電容C則起防止振蕩的作用。
(2)雙極性輸出
其輸出電路如圖12-4所示。
V
REF
V
AGND
3.8位CPU與12位D/A接口方法
許多應(yīng)用場合要求D/A有更高的靈敏度和精度,8位就不
能滿足要求了,常常要求10位、12位或14位D/A轉(zhuǎn)換器。
那么,如何把一個(gè)多于8位的D/A轉(zhuǎn)換器接口至U8位的微
型機(jī)呢?
可以把12位分成兩段,第一次微型機(jī)先輸出低8位到鎖
住器,第二次再把另四位送到另一個(gè)鎖存器上,如圖12-5所
O
54H
而要輸出的12位是存儲在兩個(gè)相鄰的單元內(nèi):
地址數(shù)據(jù)位
AD7D6D5D4D3D2DIDO
A+lXXXXDllDIOD9D8
A+2D7D6D5D4D3D2DIDO
A+3XXXXDllDIOD9D8
X為無用的位。
但是,若用圖12-5的電路輸出,則輸出電壓上會出現(xiàn)毛
刺。這是由于,若原來的數(shù)據(jù)為000011110000,下一個(gè)輸
出的值為000100001011,但在輸出過程中是先輸出低8位,
如下所示:
D/AData=000011110000D/AData=000100001011
D/AData=000000001011
數(shù)據(jù)先由000011110000變?yōu)?00000001011,則輸出
電壓要下降;然后再輸出高四位,變?yōu)?00100001011,輸
出電壓再升高,就出現(xiàn)了毛刺。為了解決這個(gè)問題,可以采
用雙緩沖器結(jié)構(gòu),如圖12-6所示。
CPU輸出時(shí),先輸出低8位給緩沖器1(此時(shí)緩沖器2不通,
故輸出不變),然后輸出高兩位。等這兩者都輸出后,再輸
出一個(gè)打開緩沖器2的選通脈沖,把10位同時(shí)輸給D/A轉(zhuǎn)換,
這樣就避免了毛刺。
程序如下:
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個(gè)字(每個(gè)字10位)
ENDSTART
12.2A/D轉(zhuǎn)換器接口
12.2.1概述
在一個(gè)實(shí)際的系統(tǒng)中,要用微型計(jì)算機(jī)來監(jiān)視和控制過
程中發(fā)生的各種參數(shù),就首先要用傳感器把各種物理參數(shù)
(如壓力、溫度等)測量出來,并且轉(zhuǎn)換為電信號,再經(jīng)過
A/D轉(zhuǎn)換,傳送給微型計(jì)算機(jī);微型計(jì)算機(jī)對各種信號計(jì)算、
加工處理后輸出,經(jīng)過D/A轉(zhuǎn)換再去控制各種參數(shù),其過程
如圖12-14所不。
現(xiàn)場
多路
采樣
一保持一aA/D—微型機(jī)
開關(guān)
模擬
v-D/Av
控制
其中:
(1)傳感器一一把各種現(xiàn)場的物理量測量出來,并且轉(zhuǎn)
換為電信號。
(2)量程放大器——把傳感器的信號(通常為mV?"V級)
放大到A/D轉(zhuǎn)換所需要的量程范圍。
(3)低通濾波器一一降低干擾,增加信擾比。
(4)多路開關(guān)——通常要監(jiān)視和控制的現(xiàn)場信號是很多
的,而且它們的變化是緩慢的,所以沒有必要一種現(xiàn)場信號
就有一個(gè)A/D轉(zhuǎn)換器和占用一條與微型計(jì)算機(jī)聯(lián)系的通路,
而可以利用多路開關(guān),把多個(gè)現(xiàn)場信號,用一條通路來監(jiān)視
和控制。
(5)采樣/保持電路一一因?yàn)楝F(xiàn)場信號總是在變化的,
而A/D轉(zhuǎn)換總是需要一定時(shí)間的,所以,需要把要轉(zhuǎn)換的信
號采樣后保持一段時(shí)間,以備轉(zhuǎn)換。另外,現(xiàn)場信號的變化
是緩慢的,沒有必要始終監(jiān)視,而可以用巡回檢測的辦法,
所以,也要求有采樣/保持電路。
當(dāng)用巡回檢測的辦法來監(jiān)視現(xiàn)場信號時(shí),就存在一個(gè)問
題:應(yīng)該經(jīng)過多長時(shí)間去采樣一次被測信號,使采樣的結(jié)
果能夠反映被測信號,即采樣頻率應(yīng)該多高。采樣定理告訴
我們:采樣頻率至少應(yīng)該大于被測信號頻譜中的最高頻率的
兩倍。
本章主要討論A/D轉(zhuǎn)換。
12.2.2用軟件實(shí)現(xiàn)A/D轉(zhuǎn)換
利用D/A轉(zhuǎn)換器,CPU可用軟件實(shí)現(xiàn)A/D轉(zhuǎn)換。
1.計(jì)數(shù)器式A/D轉(zhuǎn)換
計(jì)數(shù)器式A/D轉(zhuǎn)換可以用硬件實(shí)現(xiàn),如圖12-15所示。也
可以利用一個(gè)D/A轉(zhuǎn)換電路,用軟件實(shí)現(xiàn),如圖12-16所示。
軟件實(shí)現(xiàn)實(shí)際上是用一種類似于線性搜索的辦法,每次
讓一個(gè)鎖存器加1,再把它經(jīng)D/A轉(zhuǎn)換后為V:與輸入模擬電
壓Vx相比較,把比較的結(jié)果用一個(gè)輸入端口輸入,若仍是Vx
>VC,則循環(huán);當(dāng)Vx二Vc時(shí)就停止循環(huán),此時(shí)鎖存器中的數(shù)據(jù)
即為轉(zhuǎn)換所得的結(jié)果。
輸入模擬電壓比較器
D7
其程序如下:
ORG2000H
START:MOVCL,0;用CL作比較用的寄存器,初值為
DALOOP:MOVAL,CL
OUT27H,AL
INAL,15H;輸入比較器的狀態(tài),若Vx>V.
則D5=0
AND20H;屏蔽除D5外的其他位
JNZDONE;D5W0,則轉(zhuǎn)換完成
INCCL
JMPDALOOP
DONE:MOVAL,CL
OUT02H,AL;轉(zhuǎn)換完成數(shù)據(jù)輸出顯示
HALT
但是用上述軟件來實(shí)現(xiàn)轉(zhuǎn)換,比硬件更慢。255步的比
較需要7ms(若CPU為8080A)。顯然轉(zhuǎn)換的位數(shù)越多,時(shí)間就
更長。
所以,用軟件實(shí)現(xiàn)計(jì)數(shù)器式的A/D轉(zhuǎn)換是不實(shí)用的;但
是當(dāng)轉(zhuǎn)換速度要求不高時(shí)硬件實(shí)現(xiàn)的芯片仍然是有用的,它
的成本較低。
2.逐次逼近式A/D轉(zhuǎn)換
用軟件實(shí)現(xiàn)逐次逼近式A/D轉(zhuǎn)換,實(shí)際上是把輸入模擬
電壓Vx作為一個(gè)關(guān)鍵字,用對分搜索的辦法來逼近它。
例如,在8位的情況下,要轉(zhuǎn)換一個(gè)相當(dāng)于數(shù)113的模擬
電壓,搜索過程可用表12-5來描述。
用軟件實(shí)現(xiàn)逐次逼近式A/D轉(zhuǎn)換的流程圖如圖12-17所示。
如果仍然使用圖12-16所示的接口電路,則寄存器AL用
于I/O數(shù)據(jù)傳送和位操作,寄存器DH存放每次試探的數(shù)據(jù),
寄存器DL存放累加的結(jié)果,寄存器CL作為循環(huán)次數(shù)計(jì)數(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;輸入比較結(jié)果的狀態(tài);
*若VX>VC,則D5=0
ANDAL,20H;屏蔽除D5外的所有位
JZOK;小于VX,轉(zhuǎn)至OK
MOVAL,DH
NOTAL
ANDAL,DL;使新的試探值置0
MOVDL,AL;和一DL
OK:SHRDH,1;移至下一4立試探
MOVAL,DL
DECCL
JNZAGAIN;未完,進(jìn)入下一循環(huán)
DONE:HALT
對于8位的轉(zhuǎn)換,若CPU為8080,時(shí)鐘周期為500ns,則
轉(zhuǎn)換時(shí)間為240〃s。若要求更快轉(zhuǎn)換,則可用硬件實(shí)現(xiàn)的逐
次逼近式轉(zhuǎn)換器。
12.2.3A/D轉(zhuǎn)換芯片介紹
1.8通道8位A/D轉(zhuǎn)換器ADC0809
ADC0809是CMOS的8位單片A/D轉(zhuǎn)換器。片內(nèi)有8路模擬
開關(guān),可控制選擇8個(gè)模擬量中的一個(gè)。A/D轉(zhuǎn)換采用逐次逼
近原理。輸出的數(shù)字信號有TTL三態(tài)緩沖器控制,故可直接
連至數(shù)據(jù)總線。
(1)主要功能
①分辨率為8位;
②總的不可調(diào)誤差在±12LSB?±1LSB范圍內(nèi);
③轉(zhuǎn)換時(shí)間為100〃s;
④具有鎖存控制的8路多路開關(guān);
⑤輸出有三態(tài)緩沖器控制;
⑥單一5V電源供電,此時(shí)模擬電壓輸入范圍為0?5V;
⑦輸出與TTL兼容;
⑧工作溫度范圍為-40℃?85℃。
(2)ADC0809功能方框圖
ADC0809的結(jié)構(gòu)如圖12-18所示。
模擬輸入部分有8路多路開關(guān),可由三位地址輸入ADDA、
ADDB、ADDC的不同組合來選擇(這三條地址輸入信號可鎖存)。
主體部分是采用逐次逼近式的A/D轉(zhuǎn)換電路,由CLK信號
控制內(nèi)部電路的工作,由START信號控制轉(zhuǎn)換開始。轉(zhuǎn)換后
的數(shù)字信號在內(nèi)部鎖存,通過三態(tài)緩沖器接至輸出端。
STARTCLK
r
-I:OC
控制與時(shí)序
SAR三態(tài)
輸出
鎖存I-X7
緩沖
樹狀開關(guān)器
o
RET(+)REF㈠OE
ADC0809的引腳如圖12-19所示。其中,START為啟動命
令,高電平有效。由它啟動ADC0809內(nèi)部的A/D轉(zhuǎn)換過程。
當(dāng)模/數(shù)轉(zhuǎn)換完成,輸出信號E0C#(EndofConvert)有效(低
電平有效)。0E(OutputEnable)為輸出允許信號,高電平有
效。當(dāng)在此輸入端供給一個(gè)有效信號時(shí),打開輸出三態(tài)緩沖
器,把轉(zhuǎn)換后的結(jié)果輸送至數(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時(shí)序
ADC0809的時(shí)序如圖12-20所示。
當(dāng)模擬量送到某一輸入端后,由三位地址信號來選擇,
地址信號由地址鎖存允許ALE(AddressLatchEnable)鎖存。
由啟動命令START啟動轉(zhuǎn)換。轉(zhuǎn)換完成E0C#輸出一個(gè)負(fù)脈沖,
外界的輸出允許信號0E,打開三態(tài)緩沖器把轉(zhuǎn)換的結(jié)果送上
數(shù)據(jù)總線。一次A/D轉(zhuǎn)換的過程就完成了。
2.12位A/D轉(zhuǎn)換器AD7870/AD7875/AD7876
(1)主要功能
AD7870/AD7875/AD7876是一組完全12位8〃s逐次逼近
式A/D轉(zhuǎn)換器。它們由基于快速設(shè)置的電壓輸出DAC、高速
比較器和逐次逼近寄存器(SAR)、采樣保持放大器、時(shí)鐘和
控制邏輯組成。它有一個(gè)自包含的內(nèi)部時(shí)鐘以保證轉(zhuǎn)換時(shí)間
的精確控制,不需要外部時(shí)鐘。若需要的話,內(nèi)部時(shí)鐘也可
被外部時(shí)鐘超越。
整個(gè)操作由±5V電源供電。
AD7870和AD7876分別接收±3V和±10V輸入信號范圍而
AD7875接收單極性的0V?+5V輸入范圍。
(2)AD7870的結(jié)構(gòu)和引腳
其結(jié)構(gòu)如圖12-21所示。
AD7870接收到有效的CONVST命令后,內(nèi)部的逐次逼近寄
存器從最高位開始順次經(jīng)DAC在比較器上與模擬量相比較。
檢測完所有位后,SAR中包含轉(zhuǎn)換后的12位二進(jìn)制碼。
轉(zhuǎn)換完成后,SAR發(fā)出INT信號(低電平有效),打開三態(tài)
緩沖器輸出數(shù)據(jù)。
各個(gè)引腳的功能為:
腳1——RD#讀。輸入,低電平有效。此輸入引腳用于
與低電平有效的CS#相結(jié)合以允許數(shù)據(jù)輸出。
腳2——BUSY#/INT#忙/中斷。低有效,輸出以指示轉(zhuǎn)換
器狀態(tài)。參見時(shí)序圖。
腳3——CLK時(shí)鐘輸入。一外部TTL兼容的時(shí)鐘可以供給
至此輸入腳。若連接此腳至VSS,啟用內(nèi)部時(shí)鐘。
腳4——DBH/HBEN數(shù)據(jù)位H(最高有效位)/高字節(jié)啟
用。此腳的功能取決于12/8/CLK輸入的狀態(tài)。當(dāng)選擇12位并
行數(shù)據(jù)時(shí),此腳提供DBH輸出。當(dāng)選擇字節(jié)數(shù)據(jù)時(shí),此腳變
為HBEN邏輯輸入,用于與8位總線接口。當(dāng)HBEN是低,
DB7/L0W?DB0/DB8變?yōu)镈B7?DBO。若HBEN為高,DB7/L0W到
DB0/DB8用于數(shù)據(jù)的高四位。
腳5——DB10/SSTRB數(shù)據(jù)位10/串行選通。當(dāng)選擇12位數(shù)
據(jù)時(shí),此腳提供DB10輸出。SSTRB是一個(gè)低有效漏極開路輸
出為串行數(shù)據(jù)提供選通或幀脈沖。在SSTRB上需要一個(gè)
4.7kQ的上拉電阻。
腳6——DB9/SCLK數(shù)據(jù)位9/串行時(shí)鐘。當(dāng)選擇12位并行
數(shù)據(jù)時(shí),此腳提供DB9輸出。SCLK是以內(nèi)部或外部ADC時(shí)鐘導(dǎo)
出的可控的串行時(shí)鐘輸出。若12/8/CLK輸入是-5V,于是
SCLK繼續(xù)運(yùn)行。若12/8/CLK是0V,于是SCLK在串行發(fā)送完成
之后關(guān)閉。SCLK是一個(gè)漏極開路輸出并要求外部2kQ上拉電
阻。
腳7——DB8/SDATA數(shù)據(jù)位8/串行數(shù)據(jù)。當(dāng)選擇12位并行
數(shù)據(jù)時(shí),此腳提供DB8輸出。SDATA是一漏極開路串行數(shù)據(jù)輸
出,它與CLK和SSTRB一起用于串行數(shù)據(jù)傳送。當(dāng)SSTRB為低
時(shí),串行數(shù)據(jù)在SCLK的下降沿有放。在SDATA上要求一個(gè)外
部的4.7kQ上拉電阻。
腳8?腳11——DB7/L0W?DB4/L0W由CS和RD控制的三態(tài)
數(shù)據(jù)輸出。它們的功能取決于12/8/CLK和HBEN輸入。
在12/8/CLK高時(shí),它們是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
參考電壓外部負(fù)載能力是500“A。
腳20——VIN模擬輸入。對于AD7870是±3V,對于
AD7876是±10V,對于AD7875是+5V。
腳21——VSS負(fù)電源,-5V±5%。
腳22——12/8/CLK三功能輸入。定義數(shù)據(jù)格式和串行
時(shí)鐘格式。若此腳為+5V,輸出數(shù)據(jù)是12位并行。若此腳為
0V,或者是字節(jié)或者是串行數(shù)據(jù),且SCLK不連續(xù)。若此腳為
-5V,或者字節(jié)或者串行數(shù)據(jù)但現(xiàn)在SCLK連續(xù)。
腳23——CONVST#啟動轉(zhuǎn)換。在此輸入腳上由低變?yōu)楦?
使采樣/保持處在保持方式并啟動轉(zhuǎn)換。此腳與CLK輸入是異
步的。
腳24——CS#片選,輸入、低有效。當(dāng)此輸入有效,選
中此設(shè)備。若CONVST連接為低,當(dāng)CS#變低,啟動新的轉(zhuǎn)換。
(3)AD7870的操作方式與時(shí)序
AD7870/AD7875/AD7876有兩種基本操作模式:模式1、
模式2。在第一種模式(模式1)中,CONVST#線用于啟動轉(zhuǎn)
換并驅(qū)使采樣/保持電路進(jìn)入保持方式。在轉(zhuǎn)換結(jié)束,采樣/
保持電路返回采樣方式。對于要求在時(shí)間上精確采樣的數(shù)字
信號處理和別的應(yīng)用程序,傾向于用這種模式。對于這種情
況,CONVST#線由定時(shí)器或若干精確時(shí)鐘源驅(qū)動。
第二種模式是把CONVST#線硬連為低而實(shí)現(xiàn)。這種模式
(模式2)傾向用于微處理器同時(shí)控制和啟動ADC轉(zhuǎn)換并讀
數(shù)據(jù)的系統(tǒng)中。CS#啟動轉(zhuǎn)換,在轉(zhuǎn)換間隔由BUSY#/INT#線
使微處理器處在WAIT狀態(tài)。
①模式1接口
轉(zhuǎn)換由在CONVST#輸入腳上的低脈沖啟動。CONVST#脈沖
的上升沿,啟動轉(zhuǎn)換并且驅(qū)使采樣/保持放大器進(jìn)入保持方
式。若CS#是低電平則轉(zhuǎn)換不啟動。在這種模式,
BUSY#/INT#狀態(tài)輸出作為中斷功能。INT#正常是高電平,在
轉(zhuǎn)換結(jié)束時(shí)變低。INT#線能用于中斷微處理器。對ADC的讀
操作訪問數(shù)據(jù)且在CS#和RD#的下降沿INT#線重置為高電平。
為了對這種模式的ADC正確操作,當(dāng)CS#和RD#都變低時(shí),
CONVST#必須為高電平。在這種模式下,CS#和RD#不能硬連
為低。在轉(zhuǎn)換期間不能讀數(shù)據(jù),因?yàn)槠系逆i存器在轉(zhuǎn)換進(jìn)
行中是屏蔽的。
圖12-24給出12位并行數(shù)據(jù)輸出格式(12/8/CLK=+5V)
時(shí)模式1的時(shí)序圖。在轉(zhuǎn)換結(jié)束時(shí)對ADC的讀同時(shí)訪問所有12
位數(shù)據(jù)。對于這種數(shù)據(jù)輸出格式,串行數(shù)據(jù)是不可以用的。
AD7870提供三種數(shù)據(jù)輸出格式:單個(gè)并行的12位字、
兩個(gè)8位字節(jié)或串行數(shù)據(jù)。
并行數(shù)據(jù)格式是對16位數(shù)據(jù)總線提供單12位并行字;對
于8位數(shù)據(jù)總線提供兩個(gè)字節(jié)格式。
數(shù)據(jù)字節(jié)格式由12/8/CLK輸入控制。在此腳上的邏輯
高電平,只選擇12位并行輸出格式。若邏輯低電平或-5V供
給此輸入,允許用戶訪問字節(jié)格式或串行的數(shù)據(jù)。在任一種
操作模式中,這三種數(shù)據(jù)輸出格式都是可選的。
—"11)
CONVST一\一斤采樣保持進(jìn)入保評
CS
RD
?梁杼保恃返回至東杼
?且快測時(shí)間開始
INT
tCONVERT
三念r
DATA
DB11-DBO
?并行輸出格式
在第一種格式中,12位數(shù)據(jù)在DB11?DBO上同時(shí)可用。在
第二種格式中,訪問數(shù)據(jù)要求兩次讀。在選擇了這種格式時(shí),
DB11/HBEN腳作為HBEN(高字節(jié)允許)功能,它選擇從ADC讀
數(shù)據(jù)的哪個(gè)字節(jié)。當(dāng)HBEN為低,在讀操作期間數(shù)據(jù)的低8位
放至數(shù)據(jù)總線;當(dāng)HBEN為高,12位字的高4位放至數(shù)據(jù)總線。
這4位是右對齊的,因此占用低4位而高4位包含4個(gè)0。
?串行輸出格式
在AD7870/AD7875/AD7876上可以輸出串行數(shù)據(jù)。當(dāng)
12/8/CLK輸入是0V或-5V時(shí),DB10/SSTRB、DB9/SCLK和
DB8/SDATA腳起串行功能。串行數(shù)據(jù)是一個(gè)16位的字,4個(gè)前
導(dǎo)3跟著是12位轉(zhuǎn)換的結(jié)果,最高有效位在前。數(shù)據(jù)同步
于串行時(shí)鐘輸出(SCLK)由串行選通(SSTRB)確定一幀。
數(shù)據(jù)當(dāng)SSTRB輸出為低時(shí),在串行時(shí)鐘由低變高時(shí)輸出而在
時(shí)鐘的下降沿有效。SSTRB在CONVST后三個(gè)時(shí)鐘周期內(nèi)變低,
且第一個(gè)串行數(shù)據(jù)位(第一個(gè)前導(dǎo)0)在SCLK的第一個(gè)下降
沿有效。這三個(gè)串行線都是漏極開路并要求外部上拉電阻。
串行時(shí)鐘輸出是以ADC時(shí)鐘源導(dǎo)出的,它可以是內(nèi)部的
或外部的。
對于字節(jié)和串行數(shù)據(jù),模式1的時(shí)序如圖12-25所示。
INT#在轉(zhuǎn)換結(jié)束后變低由CS#和RD#的第一個(gè)下降沿重置
為高。在轉(zhuǎn)換結(jié)束后的第一次讀能訪問數(shù)據(jù)的低字節(jié)或高字
節(jié)取決于HBEN的狀態(tài)。圖12-25同時(shí)顯示了非連續(xù)和連續(xù)的
運(yùn)行時(shí)鐘(虛線)。
DB7-DB0DB11-DB9
sm,
H--------------------11—H
ea?*
iJ
,如T卜d
'髀。'詞
NMTA*
事行救根
②模式2接口
第二種接口模式由硬連CONVST#為低,轉(zhuǎn)換由當(dāng)HBEN為
低使CS#為低啟動的。采樣/保持放大器在CS#的下降沿進(jìn)入
保持方式。在此模式,BUSY#/INT#腳起B(yǎng)USY#功能(作為
8086的READY線)。在轉(zhuǎn)換開始BUSY#變低并且在轉(zhuǎn)換期間保
持為低,當(dāng)轉(zhuǎn)換完成返回高電平。它通常用作并行接口,使
微處理器在轉(zhuǎn)換期間處在WAIT狀態(tài)。
圖12-26顯示12位并行數(shù)據(jù)輸出格式(12/8/CLK二+5V)模
式2時(shí)序圖。在這種情況下,ADC的行為像慢速存儲器。這種
接口的主要優(yōu)點(diǎn)是允許微處理器啟動轉(zhuǎn)換、等待,然后用單
個(gè)讀指令讀數(shù)據(jù)。用戶不需要關(guān)心中斷服務(wù)或保證在轉(zhuǎn)換期
間的延時(shí)。
CS采杼保持進(jìn)入保持
采杼保持返回至保持
且快測時(shí)間開始
三態(tài)
DATA教編)
DB11-DB0
字節(jié)和串行數(shù)據(jù)的模式2時(shí)序如圖12-27所示。對于讀兩
字節(jié),低字節(jié)(DBO?DB7)必須先訪問,因?yàn)橐獑愚D(zhuǎn)換,
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轉(zhuǎn)換芯片與CPU
1.A/D轉(zhuǎn)換芯片與CPU接口要注意的問題
(1)啟動信號
A/D轉(zhuǎn)換器要求的啟動信號一般有兩種形式:電平啟動
信號和脈沖啟動信號。
有些A/D轉(zhuǎn)換芯片要求用電平作為啟動信號,整個(gè)轉(zhuǎn)換
過程中都必須保證啟動信號有效,如果中途撤走啟動信號,
就會停止轉(zhuǎn)換而得到錯誤結(jié)果。為此,CPU一般要通過并行
接口來對A/D芯片發(fā)啟動信號,或者用D觸發(fā)器使啟動信號在
A/D轉(zhuǎn)換期間保持在有效電平。
另外一些A/D轉(zhuǎn)換芯片要求用脈沖信號來啟動,對這種
芯片,通常用CPU執(zhí)行輸出指令時(shí)所發(fā)出的片選信號和寫信
號即可在片內(nèi)產(chǎn)生啟動脈沖,從而開始轉(zhuǎn)換。
(2)轉(zhuǎn)換結(jié)束與轉(zhuǎn)換數(shù)據(jù)的讀取
A/D轉(zhuǎn)換結(jié)束時(shí),A/D轉(zhuǎn)換芯片會輸出轉(zhuǎn)換結(jié)束信號,通
知CPU讀取轉(zhuǎn)換數(shù)據(jù)。
CPU一般可以采用以下四種方式和A/D轉(zhuǎn)換器進(jìn)行聯(lián)絡(luò)來
實(shí)現(xiàn)對轉(zhuǎn)換數(shù)據(jù)的讀取。
第一種是程序查詢方式。這種方式的思想就是在啟動
A/D轉(zhuǎn)換器工作之后,程序不斷地讀取A/D轉(zhuǎn)換結(jié)束信號,如
果發(fā)現(xiàn)結(jié)束信號有效,則認(rèn)為完成一次轉(zhuǎn)換,因而用輸入指
令讀取數(shù)據(jù)。
第二種是中斷方式。用這種方式時(shí),把轉(zhuǎn)換結(jié)束信號作
為中斷請求信號,送到中斷控制器(如8259)的中斷請求輸
入端。
第三種是CPU等待方式。這種方式利用CPU的READY引腳
的功能,設(shè)法在A/D轉(zhuǎn)換期間使READY處于低電平,以使CPU
停止工作,轉(zhuǎn)換結(jié)束時(shí),則使READY成為高電平,CPU讀取轉(zhuǎn)
換數(shù)據(jù)。
第四種是固定的延遲程序方式。用這種方式時(shí),要預(yù)先
精確地知道完成一次A/D轉(zhuǎn)換所需要的時(shí)間。這樣,CPU發(fā)出
啟動命令之后,執(zhí)行一個(gè)固定的延遲程序,此程序執(zhí)行完時(shí),
A/D轉(zhuǎn)換也正好結(jié)束,于是CPU讀取數(shù)據(jù)。
如果CPU的轉(zhuǎn)換時(shí)間比較長,或者有幾件事情需要CPU處
理,那么,用中斷方式效率比較高。但是,如果A/D轉(zhuǎn)換時(shí)
間比較短,中斷方式就失去了優(yōu)越性,因?yàn)轫憫?yīng)中斷、保護(hù)
現(xiàn)場、恢復(fù)現(xiàn)場、中斷返回這一系列環(huán)節(jié)所花去的時(shí)間將和
A/D轉(zhuǎn)換的時(shí)間相當(dāng)。此時(shí)可用上述的三種非中斷方式之一
來實(shí)現(xiàn)轉(zhuǎn)換數(shù)據(jù)的讀取。
采用中斷方式時(shí),程序設(shè)計(jì)非常簡單。主程序中,只要
有一條輸出指令即可以啟動A/D轉(zhuǎn)換。假設(shè)A/D轉(zhuǎn)換器的端口
號為PROTAD,則執(zhí)行指令:
OUTPORTAD,AL
后,A/D轉(zhuǎn)換器便開始轉(zhuǎn)換。在這條輸出指令中,寄存
器AL預(yù)先放什么內(nèi)容是無關(guān)緊要的,執(zhí)行這條指令的目的是
為了得到有效的片選信號和寫信號,使A/D轉(zhuǎn)換器啟動。
此后,便開始A/D轉(zhuǎn)換過程。轉(zhuǎn)換結(jié)束后,A/D芯片會輸
出一個(gè)轉(zhuǎn)換結(jié)束信號,此信號產(chǎn)生中斷請求,CPU響應(yīng)中斷
后,便轉(zhuǎn)去執(zhí)行中斷處理程序。中斷處理程序中最主要的指
令是讀取轉(zhuǎn)換結(jié)果的輸入指令:
INAL,PORTAD
這條指令在執(zhí)行時(shí),使三態(tài)輸出門開啟,從而CPU獲得
轉(zhuǎn)換數(shù)據(jù)。
2.8位轉(zhuǎn)換器的接口
當(dāng)A/D轉(zhuǎn)換芯片與CPU接口時(shí),除了數(shù)據(jù)的輸入至CPU外,
與通常的I/O接口一樣,還需要有控制信息和狀態(tài)信息,如
圖12-28所示。
在實(shí)際應(yīng)用時(shí),A/D的模擬輸入端接至采樣/保持電路的
輸出,如圖12-14中所示。但轉(zhuǎn)換的開始,要由CPU用軟件來
控制(輸出一條指令);而轉(zhuǎn)換總是需要一定時(shí)間才能完成,
故A/D轉(zhuǎn)換電路必須給出一個(gè)DONE/BUSY的狀態(tài)信息。
CLOCK
START
ADC
DATA<
DONE一
一個(gè)典型的8位A/D轉(zhuǎn)換的接口電路如圖12-29所示。
其中,輸入輸出接口電路采用8212,顯然也可以采用8255A。
程序如下:
ORG2000H
START:LDBX,DATA
CONV:OUT37H,AL;啟動轉(zhuǎn)換
TET:INAL,66H;輸入狀態(tài)
ANDAL,80H;檢測DONE標(biāo)志
JZTET;未完成,等待
INAL,65H;輸入轉(zhuǎn)換后的數(shù)據(jù)
MOVBX],AL;存入內(nèi)存
RET
ORG3000H
DATA:DS1;給輸入數(shù)據(jù)保留一個(gè)存儲單元
END
上述程序是用查詢方式與A/D交換信息,顯然也可以用
中斷方式,用DONE信息作為中斷請求信號。
一若把ADC0809接至TP801A單板機(jī),其接線如圖12-30所
O
若要把8個(gè)模擬量輪流輸入至內(nèi)存緩沖區(qū),輸入在中斷
服務(wù)程序中執(zhí)行。程序如下:
;主程序
START:MOVBX,DATA;設(shè)輸入緩沖器指針
MOVCH,8
MOVCL,0
STI
MOVAL,CL
OUTPADC,AL
HALT
LOOP:XORAL,AL
INCCL
MOVAL,CL
CMPAL,8
JZDONE
OUTPADC,AL
JMPLOOP
DONE:HALT
;中斷服務(wù)程序
ORG0038H
DWINTSEV
3.10位A/D轉(zhuǎn)換接口
當(dāng)A/D轉(zhuǎn)換的精度要求高時(shí),就要求有10位、12位或更
多位的A/D轉(zhuǎn)換芯片。如何把一個(gè)多于8位的A/D轉(zhuǎn)換芯片與8
位的微型計(jì)算機(jī)接口呢?圖12-31是一個(gè)典型的10位A/D轉(zhuǎn)換
的接口電路。其中,狀態(tài)信號和數(shù)據(jù)的高兩位,用了同一個(gè)
輸入接口芯片8212,只要在程序上加以區(qū)分是不會混淆的。
其程序?yàn)椋?/p>
ORG2000H
ADC:PUSHAX
PUSHBX
MOVBX,ADTA
OUT37H,AL;啟動轉(zhuǎn)換
TEST:INAL,66H;輸入狀態(tài)及高兩位數(shù)據(jù)
ADDAL,80H;檢查D7=l?但不影響DI和DO
JNCTEST;轉(zhuǎn)換未完則等待
MOV[BX+1],AL;存入高位字節(jié)(兩位)
INAL,65H;輸入低8位
MOV[BX],AL
POPBX
POPAX
RET
ORG3000H
DATADS2;為輸入數(shù)據(jù)保留兩個(gè)存儲單元
END
12.2.5D/A和A/D轉(zhuǎn)換應(yīng)用舉例
1.D/A轉(zhuǎn)換舉例
鋸齒波信號廣泛用于示波器的掃描電路,鋸齒波信號一
般是利用阻容電路的充電來實(shí)現(xiàn)的,由于阻容充放電的過程
是近似線性的,所以很難得到一個(gè)線性好的波形,通過D/A
轉(zhuǎn)換電路可以得到線性度相當(dāng)高的波形。圖12-32就是一個(gè)
利用DAC0832芯片實(shí)現(xiàn)鋸齒波信號的電路。
數(shù)
總
地
總
對于圖12-32所示電路,執(zhí)行下面的程序時(shí),就可以產(chǎn)
生一個(gè)鋸齒波信號。
MOVDX,PORTA;PORTA為D/A轉(zhuǎn)換器端口地址
MOVAL,OFFH;初值為OFFH
ROTATE:INCAL
OUTDX,AL;往D/A轉(zhuǎn)換器輸出數(shù)據(jù)
JMPROTATE
2.A/D轉(zhuǎn)換舉例
有一數(shù)據(jù)采集電路如圖12-33所示,圖中ADC0809通過
8255A與8086CPU連接,要求從模擬通道IN0開始轉(zhuǎn)換,連續(xù)
采樣24個(gè)數(shù)據(jù);然后采樣下一個(gè)模擬通道IN1,同樣采樣24
個(gè)數(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時(shí)(即I/O操作)且A5=0才可能使GZA#為有效低電
平,從而使74LS138能正常譯碼。GZB#與與非門6的輸出相連,
而與非門6的輸入為A6A7,只要A6A7為高電平,G?B#才能是有
效的低電平。而G1同A8直接相連,只有當(dāng)A8為高電平時(shí),G1
才為有效的高電平。這樣,從GZA#、GZB#和G1的要求來看,
A8A7A6A5必須為H10且為I/O操作時(shí),才能滿足74LS138的譯
碼條件。
8255A的PA口與ADC0809的數(shù)據(jù)線D7?DO相連,即可從
8255A的PA□讀入轉(zhuǎn)換后的數(shù)字量。8255A的片選端接
74LS138的輸出端Y。#,所以8255A的端口地址為
A8A7A6A5A4A3A2A1AO=U10000XX即1C0H?1C3HO
8255A的PBO同ADC0809的EOC相連,用來檢測ADC0809
是否轉(zhuǎn)換結(jié)束。
ADC0809的通道地址選擇線ADDC、ADDB、ADDA同8086
CPU的AO、Al、A2相連。
74LS138的譯碼輸入地址為A8?A2,因此每一個(gè)輸出端
包含4個(gè)端口地址,而對ADC0809的8個(gè)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年代理合同簽署注意事項(xiàng)
- 2025年商業(yè)合作形象授權(quán)代理服務(wù)協(xié)議
- 二零二五版商業(yè)地產(chǎn)買賣合同附帶抵押權(quán)登記0023篇
- 2025年高校與企業(yè)聯(lián)合培養(yǎng)協(xié)議教授合作協(xié)議9篇
- 二零二五年度出口合同模板(含出口貨物倉儲與物流服務(wù))4篇
- 2025年度裝配式建筑構(gòu)件生產(chǎn)與施工合同范本4篇
- 2025版水電安裝工程新能源并網(wǎng)服務(wù)合同集錦3篇
- 二零二五版零擔(dān)運(yùn)輸合同物流數(shù)據(jù)安全保護(hù)合同4篇
- 二零二五版路演車輛租賃與后勤保障合同4篇
- 二零二五年度家族財(cái)產(chǎn)管理及子女成長支持協(xié)議
- (一模)臨汾市2025年高考考前適應(yīng)性訓(xùn)練考試(一)語文試卷(含答案)
- 2024-2025學(xué)年滬科版數(shù)學(xué)七年級上冊期末綜合測試卷(一)(含答案)
- 2023年廣東省公務(wù)員錄用考試《行測》真題及答案解析
- 2024年公證遺產(chǎn)繼承分配協(xié)議書模板
- 燃?xì)饨?jīng)營安全重大隱患判定標(biāo)準(zhǔn)課件
- 深圳小學(xué)英語單詞表(中英文)
- 護(hù)理質(zhì)量反饋內(nèi)容
- 抖音搜索用戶分析報(bào)告
- 鉆孔灌注樁技術(shù)規(guī)范
- 2023-2024學(xué)年北師大版必修二unit 5 humans and nature lesson 3 Race to the pole 教學(xué)設(shè)計(jì)
- 供貨進(jìn)度計(jì)劃
評論
0/150
提交評論