版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第 12 章章 數(shù)模數(shù)模(D/A)轉(zhuǎn)換與模數(shù)轉(zhuǎn)換與模數(shù)(A/D)轉(zhuǎn)換接口轉(zhuǎn)換接口 本章講述:12.1 D/A轉(zhuǎn)換器接口12.2 A/D轉(zhuǎn)換器接口12.1 D/A轉(zhuǎn)換器接口 D/A(Digit to Analog)D/A(Digit to Analog)和和A/D(Analog to Digit)A/D(Analog to Digit)轉(zhuǎn)換是計(jì)算機(jī)與外部世界聯(lián)系的重要接口。在一個(gè)實(shí)轉(zhuǎn)換是計(jì)算機(jī)與外部世界聯(lián)系的重要接口。在一個(gè)實(shí)際的系統(tǒng)中,有兩種基本的量際的系統(tǒng)中,有兩種基本的量模擬量和數(shù)字量。模擬量和數(shù)字量。外界的模擬量要輸入給計(jì)算機(jī),首先要經(jīng)過(guò)外界的模擬量要輸入給計(jì)算機(jī),首先要經(jīng)過(guò)A/DA/
2、D轉(zhuǎn)換,轉(zhuǎn)換,才能由計(jì)算機(jī)進(jìn)行運(yùn)算、加工處理等。若計(jì)算機(jī)的控才能由計(jì)算機(jī)進(jìn)行運(yùn)算、加工處理等。若計(jì)算機(jī)的控制對(duì)象是模擬量,也必須先把計(jì)算機(jī)輸出的數(shù)字量經(jīng)制對(duì)象是模擬量,也必須先把計(jì)算機(jī)輸出的數(shù)字量經(jīng)過(guò)過(guò)D/AD/A轉(zhuǎn)換,才能控制模擬量。轉(zhuǎn)換,才能控制模擬量。本章主要介紹如何把本章主要介紹如何把D/AD/A和和A/DA/D轉(zhuǎn)換的芯片與轉(zhuǎn)換的芯片與CPUCPU進(jìn)行接口以及用進(jìn)行接口以及用CPUCPU控制這些轉(zhuǎn)換的軟件編程如何實(shí)控制這些轉(zhuǎn)換的軟件編程如何實(shí)現(xiàn)?,F(xiàn)。 12.1.1 CPU與8位D/A芯片的接口D/A轉(zhuǎn)換通常是由輸入的二進(jìn)制數(shù)的各位控制一轉(zhuǎn)換通常是由輸入的二進(jìn)制數(shù)的各位控制一些開(kāi)關(guān),通過(guò)
3、電阻網(wǎng)路,在運(yùn)算放大器的輸入端產(chǎn)生些開(kāi)關(guān),通過(guò)電阻網(wǎng)路,在運(yùn)算放大器的輸入端產(chǎn)生與二進(jìn)制數(shù)各位的權(quán)成比例的電流,經(jīng)過(guò)運(yùn)算放大器與二進(jìn)制數(shù)各位的權(quán)成比例的電流,經(jīng)過(guò)運(yùn)算放大器相加和轉(zhuǎn)換而成為與二進(jìn)制數(shù)成比例的模擬電壓。相加和轉(zhuǎn)換而成為與二進(jìn)制數(shù)成比例的模擬電壓。 一個(gè)最簡(jiǎn)單的一個(gè)最簡(jiǎn)單的D/A芯片與芯片與CPU的接口電路如圖的接口電路如圖12-1所示。所示。 其中,以鎖存器74100作為CPU與D/A轉(zhuǎn)換之間的接口。CPU把74100作為一個(gè)輸出端口,用地址27H來(lái)識(shí)別,則CPU輸給D/A的數(shù)據(jù)要用一條I/O寫(xiě)(即輸出)指令來(lái)實(shí)現(xiàn)。圖12-1的電路可應(yīng)用于許多場(chǎng)合,例如:(1) 驅(qū)動(dòng)一個(gè)侍服電機(jī)
4、;(2) 控制一個(gè)電壓頻率轉(zhuǎn)換器(用于鎖相環(huán)路);(3) 控制一個(gè)可編程的電源;(4) 驅(qū)動(dòng)一個(gè)模擬電表。 12.1.2 8位位CPU與與12位(高于位(高于8位的)位的)D/A轉(zhuǎn)換器的接口轉(zhuǎn)換器的接口1. 一種一種12位位D/A轉(zhuǎn)換芯片轉(zhuǎn)換芯片這里介紹一種12位D/A轉(zhuǎn)換片子DAC1210。DAC1210是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的12位D/A轉(zhuǎn)換器芯片,是智能化儀表中常用的一種高性能的D/A轉(zhuǎn)換器。DAC1210的邏輯結(jié)構(gòu)框圖如圖12-2所示。DAC1210共有24個(gè)引腳,各引腳定義如下: DI11DI0:12位數(shù)字量輸入信號(hào),其中DI0為最低位,DI11為最高位。 CS# :片選輸入信號(hào),
5、低電平有效。 WR1#:數(shù)據(jù)寫(xiě)入信號(hào)1,低電平有效。當(dāng)此信號(hào)有效時(shí),與B1/B2#配合起控制作用。 B1/B2#:字節(jié)控制信號(hào)。此引腳為高電平時(shí),12位數(shù)字同時(shí)送入輸入寄存器;為低電平時(shí),只將12位數(shù)字量的低4位送到4位輸入寄存器。 XFER# :傳送控制信號(hào),低電平有效,:傳送控制信號(hào),低電平有效,與與2配合使用。配合使用。 WR2#:數(shù)據(jù)寫(xiě)入信號(hào):數(shù)據(jù)寫(xiě)入信號(hào)2,低電平有效。,低電平有效。此信號(hào)有效時(shí),信號(hào)才起作用。此信號(hào)有效時(shí),信號(hào)才起作用。 IOUT1:電流輸出:電流輸出1。 IOUT2:電流輸出:電流輸出2。 Rfb:內(nèi)部反饋電阻引腳。:內(nèi)部反饋電阻引腳。lVREF:參考電壓,:參考
6、電壓,-10V+10V。lVCC:芯片電源,:芯片電源,+5V+15V。lAGND:模擬地。:模擬地。lDGND:數(shù)字地。:數(shù)字地。2. DAC的輸出連接方式的輸出連接方式有的D/A轉(zhuǎn)換片子的輸出是電壓,有的片子輸出的是電流。在實(shí)際應(yīng)用中,執(zhí)行部件往往要求電壓驅(qū)動(dòng),所以,電流輸出的要經(jīng)過(guò)電流-電壓變換器。輸出電壓又可能只要求單極性,而有的要求有正有負(fù)(雙極性)。(1) 單極性輸出一個(gè)電流輸出的D/A片子轉(zhuǎn)換為單極性電壓輸出的電路如圖12-3所示。 輸出與RFB端間接的電阻R2以及接于參考電源的R1是為了調(diào)整增益,電容C則起防止振蕩的作用。(2) 雙極性輸出其輸出電路如圖12-4所示。3. 8位
7、位CPU與與12位位D/A接口方法接口方法許多應(yīng)用場(chǎng)合要求D/A有更高的靈敏度和精度,8位就不能滿足要求了,常常要求10位、12位或14位D/A轉(zhuǎn)換器。那么,如何把一個(gè)多于8位的D/A轉(zhuǎn)換器接口到8位的微型機(jī)呢?可以把12位分成兩段,第一次微型機(jī)先輸出低8位到鎖存器,第二次再把另四位送到另一個(gè)鎖存器上,如圖12-5所示。 而要輸出的12位是存儲(chǔ)在兩個(gè)相鄰的單元內(nèi):地址 數(shù)據(jù)位A D7 D6 D5 D4 D3 D2 D1 D0A+1 D11 D10 D9 D8A+2 D7 D6 D5 D4 D3 D2 D1 D0A+3 D11 D10 D9 D8為無(wú)用的位。但是,若用圖12-5的電路輸出,則輸出
8、電壓上會(huì)出現(xiàn)毛刺。這是由于,若原來(lái)的數(shù)據(jù)為0000 1111 0000,下一個(gè)輸出的值為0001 0000 1011,但在輸出過(guò)程中是先輸出低8位,如下所示: 數(shù)據(jù)先由0000 1111 0000變?yōu)?000 0000 1011,則輸出電壓要下降;然后再輸出高四位,變?yōu)?001 0000 1011,輸出電壓再升高,就出現(xiàn)了毛刺。為了解決這個(gè)問(wèn)題,可以采用雙緩沖器結(jié)構(gòu),如圖 12-6所示。CPU輸出時(shí),先輸出低8位給緩沖器1(此時(shí)緩沖器2不通,故輸出不變),然后輸出高兩位。等這兩者都輸出后,再輸出一個(gè)打開(kāi)緩沖器2的選通脈沖,把10位同時(shí)輸給D/A轉(zhuǎn)換,這樣就避免了毛刺。程序如下: ORG 200
9、0HSTART: MOV BX,DATA MOV CL,64HDAC: MOV AL,BX OUT 54H,AL INC BX MOV AL,BX OUT 55H,AL OUT 56H,AL INC BX DEC CL JNZ DAC JMP START ORG 3000HDATA: DW W1,W2,W100; 定義100個(gè)字(每個(gè)字10位) END START12.2 A/D轉(zhuǎn)換器接口12.2.1 概述 在一個(gè)實(shí)際的系統(tǒng)中,要用微型計(jì)算機(jī)來(lái)監(jiān)視和控制過(guò)程中發(fā)生的各種參數(shù),就首先要用傳感器把各種物理參數(shù)(如壓力、溫度等)測(cè)量出來(lái),并且轉(zhuǎn)換為電信號(hào),再經(jīng)過(guò)A/D轉(zhuǎn)換,傳送給微型計(jì)算機(jī);微型計(jì)算
10、機(jī)對(duì)各種信號(hào)計(jì)算、加工處理后輸出,經(jīng)過(guò)D/A轉(zhuǎn)換再去控制各種參數(shù),其過(guò)程如圖12-14所示。 其中:(1) 傳感器把各種現(xiàn)場(chǎng)的物理量測(cè)量出來(lái),并且轉(zhuǎn)換為電信號(hào)。(2) 量程放大器把傳感器的信號(hào)(通常為mVV級(jí))放大到A/D轉(zhuǎn)換所需要的量程范圍。(3) 低通濾波器降低干擾,增加信擾比。(4) 多路開(kāi)關(guān)通常要監(jiān)視和控制的現(xiàn)場(chǎng)信號(hào)是很多的,而且它們的變化是緩慢的,所以沒(méi)有必要一種現(xiàn)場(chǎng)信號(hào)就有一個(gè)A/D轉(zhuǎn)換器和占用一條與微型計(jì)算機(jī)聯(lián)系的通路,而可以利用多路開(kāi)關(guān),把多個(gè)現(xiàn)場(chǎng)信號(hào),用一條通路來(lái)監(jiān)視和控制。(5) 采樣/保持電路因?yàn)楝F(xiàn)場(chǎng)信號(hào)總是在變化的,而A/D轉(zhuǎn)換總是需要一定時(shí)間的,所以,需要把要轉(zhuǎn)換的信
11、號(hào)采樣后保持一段時(shí)間,以備轉(zhuǎn)換。另外,現(xiàn)場(chǎng)信號(hào)的變化是緩慢的,沒(méi)有必要始終監(jiān)視,而可以用巡回檢測(cè)的辦法,所以,也要求有采樣/保持電路。當(dāng)用巡回檢測(cè)的辦法來(lái)監(jiān)視現(xiàn)場(chǎng)信號(hào)時(shí),就存在一個(gè)問(wèn)題: 應(yīng)該經(jīng)過(guò)多長(zhǎng)時(shí)間去采樣一次被測(cè)信號(hào),使采樣的結(jié)果能夠反映被測(cè)信號(hào),即采樣頻率應(yīng)該多高。采樣定理告訴我們:采樣頻率至少應(yīng)該大于被測(cè)信號(hào)頻譜中的最高頻率的兩倍。本章主要討論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)
12、實(shí)際上是用一種類(lèi)似于線性搜索的辦法,每次讓一個(gè)鎖存器加1,再把它經(jīng)D/A轉(zhuǎn)換后為VC,與輸入模擬電壓VX相比較,把比較的結(jié)果用一個(gè)輸入端口輸入,若仍是VXVC,則循環(huán);當(dāng)VX=VC時(shí)就停止循環(huán),此時(shí)鎖存器中的數(shù)據(jù)即為轉(zhuǎn)換所得的結(jié)果。 其程序如下:ORG2000HSTART:MOVCL,0;用CL作比較用的寄存器,初值為零DALOOP:MOVAL,CLOUT27H,ALINAL,15H;輸入比較器的狀態(tài),若VXVC,則D5=0AND20H;屏蔽除D5外的其他位JNZDONE;D50,則轉(zhuǎn)換完成INCCLJMPDALOOPDONE:MOVAL,CLOUT02H,AL;轉(zhuǎn)換完成數(shù)據(jù)輸出顯示HALT
13、但是用上述軟件來(lái)實(shí)現(xiàn)轉(zhuǎn)換,比硬件更慢。255步的比較需要7ms(若CPU為8080A)。顯然轉(zhuǎn)換的位數(shù)越多,時(shí)間就更長(zhǎng)。所以,用軟件實(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)鍵字,用對(duì)分搜索的辦法來(lái)逼近它。例如,在8位的情況下,要轉(zhuǎn)換一個(gè)相當(dāng)于數(shù)113的模擬電壓,搜索過(guò)程可用表12-5來(lái)描述。 用軟件實(shí)現(xiàn)逐次逼近式A/D轉(zhuǎn)換的流程圖如圖12-17所示。如果仍然使用圖12-16所示的接口電路,則寄存器AL用于I/O數(shù)據(jù)傳送和位操作,寄存器DH
14、存放每次試探的數(shù)據(jù),寄存器DL存放累加的結(jié)果,寄存器CL作為循環(huán)次數(shù)計(jì)數(shù)器。程序如下:ORG2000HSTART:SUBAL,AL;清ALMOVDX,8000H;置DH=80H,DL=00HMOVCL,8;置循環(huán)次數(shù)AGAIN:ORAL,DH;建立新試探值MOVDL,AL;存入DL中 INAL,15H;輸入比較結(jié)果的狀態(tài);若VXVC,則D5=0ANDAL,20H;屏蔽除D5外的所有位JZOK;小于VX,轉(zhuǎn)至OKMOVAL,DHNOTALANDAL,DL;使新的試探值置0MOVDL,AL;和DLOK:RRDH;移至下一位試探MOVAL,DLDECCLJNZAGAIN;未完,進(jìn)入下一循環(huán)DONE:
15、HALT對(duì)于8位的轉(zhuǎn)換,若CPU為8080,時(shí)鐘周期為500ns,則轉(zhuǎn)換時(shí)間為240s。若要求更快轉(zhuǎn)換,則可用硬件實(shí)現(xiàn)的逐次逼近式轉(zhuǎn)換器。 12.2.3 A/D轉(zhuǎn)換芯片介紹1. 8通道8位A/D轉(zhuǎn)換器ADC 0809ADC 0809是CMOS的8位單片A/D轉(zhuǎn)換器。片內(nèi)有8路模擬開(kāi)關(guān),可控制選擇8個(gè)模擬量中的一個(gè)。A/D轉(zhuǎn)換采用逐次逼近原理。輸出的數(shù)字信號(hào)有TTL三態(tài)緩沖器控制,故可直接連至數(shù)據(jù)總線。(1) 主要功能 分辨率為8位; 總的不可調(diào)誤差在12LSB1LSB范圍內(nèi); 轉(zhuǎn)換時(shí)間為100s; 具有鎖存控制的8路多路開(kāi)關(guān); 輸出有三態(tài)緩沖器控制; 單一5V電源供電,此時(shí)模擬電壓輸入范圍為0
16、5V; 輸出與TTL兼容; 工作溫度范圍為-4085。(2) ADC 0809功能方框圖ADC 0809的結(jié)構(gòu)如圖12-18所示。模擬輸入部分有8路多路開(kāi)關(guān),可由三位地址輸入ADDA、ADDB、ADDC的不同組合來(lái)選擇(這三條地址輸入信號(hào)可鎖存)。主體部分是采用逐次逼近式的A/D轉(zhuǎn)換電路,由CLK信號(hào)控制內(nèi)部電路的工作,由START信號(hào)控制轉(zhuǎn)換開(kāi)始。轉(zhuǎn)換后的數(shù)字信號(hào)在內(nèi)部鎖存,通過(guò)三態(tài)緩沖器接至輸出端。 ADC 0809的引腳如圖12-19所示。其中,START為啟動(dòng)命令,高電平有效。由它啟動(dòng)ADC 0809內(nèi)部的A/D轉(zhuǎn)換過(guò)程。當(dāng)模/數(shù)轉(zhuǎn)換完成,輸出信號(hào)EOC#(End of Convert
17、)有效(低電平有效)。OE(Output Enable)為輸出允許信號(hào),高電平有效。當(dāng)在此輸入端供給一個(gè)有效信號(hào)時(shí),打開(kāi)輸出三態(tài)緩沖器,把轉(zhuǎn)換后的結(jié)果輸送至數(shù)據(jù)總線。 (3) ADC 0809時(shí)序ADC 0809的時(shí)序如圖12-20所示。當(dāng)模擬量送到某一輸入端后,由三位地址信號(hào)來(lái)選擇,地址信號(hào)由地址鎖存允許ALE(Address Latch Enable)鎖存。由啟動(dòng)命令START啟動(dòng)轉(zhuǎn)換。轉(zhuǎn)換完成EOC#輸出一個(gè)負(fù)脈沖,外界的輸出允許信號(hào)OE,打開(kāi)三態(tài)緩沖器把轉(zhuǎn)換的結(jié)果送上數(shù)據(jù)總線。一次A/D轉(zhuǎn)換的過(guò)程就完成了。2. 12位A/D轉(zhuǎn)換器AD7870/AD7875/AD7876(1) 主要功能
18、AD7870/AD7875/AD7876 是一組完全12位 8s逐次逼近式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輸入信號(hào)范圍而AD7875接收單極性的0V+5V輸入范圍。 (2) AD7870的結(jié)構(gòu)和引腳其結(jié)構(gòu)如圖12-21所示。AD7870接收到有效的CONVST命令后,內(nèi)部的逐次逼近寄存器從最高位開(kāi)始順次經(jīng)DAC在比較器上與模擬量
19、相比較。檢測(cè)完所有位后,SAR中包含轉(zhuǎn)換后的12位二進(jìn)制碼。轉(zhuǎn)換完成后,SAR發(fā)出INT信號(hào)(低電平有效),打開(kāi)三態(tài)緩沖器輸出數(shù)據(jù)。各個(gè)引腳的功能為:腳1RD# 讀。輸入,低電平有效。此輸入引腳用于與低電平有效的CS#相結(jié)合以允許數(shù)據(jù)輸出。腳2BUSY#/INT#忙/中斷。低有效,輸出以指示轉(zhuǎn)換器狀態(tài)。參見(jiàn)時(shí)序圖。腳3CLK 時(shí)鐘輸入。一外部TTL兼容的時(shí)鐘可以供給至此輸入腳。若連接此腳至VSS,啟用內(nèi)部時(shí)鐘。腳4DB11/HBEN數(shù)據(jù)位11(最高有效位)/高字節(jié)啟用。此腳的功能取決于12/8/CLK輸入的狀態(tài)。當(dāng)選擇12位并行數(shù)據(jù)時(shí),此腳提供DB11輸出。當(dāng)選擇字節(jié)數(shù)據(jù)時(shí),此腳變?yōu)镠BEN邏
20、輯輸入,用于與8位總線接口。當(dāng)HBEN是低,DB7/LOWDB0/DB8變?yōu)镈B7DB0。若HBEN為高,DB7/LOW到DB0/DB8用于數(shù)據(jù)的高四位。 腳5DB10/SSTRB數(shù)據(jù)位10/串行選通。當(dāng)選擇12位數(shù)據(jù)時(shí),此腳提供DB10輸出。SSTRB是一個(gè)低有效漏極開(kāi)路輸出為串行數(shù)據(jù)提供選通或幀脈沖。在SSTRB上需要一個(gè)4.7k的上拉電阻。腳6DB9/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ā)送完成之后
21、關(guān)閉。SCLK是一個(gè)漏極開(kāi)路輸出并要求外部2k上拉電阻。腳7DB8/SDATA數(shù)據(jù)位8/串行數(shù)據(jù)。當(dāng)選擇12位并行數(shù)據(jù)時(shí),此腳提供DB8輸出。SDATA是一漏極開(kāi)路串行數(shù)據(jù)輸出,它與CLK和SSTRB一起用于串行數(shù)據(jù)傳送。當(dāng)SSTRB為低時(shí),串行數(shù)據(jù)在SCLK的下降沿有放。在SDATA上要求一個(gè)外部的4.7k上拉電阻。腳8腳11DB7/LOWDB4/LOW由CS和RD控制的三態(tài)數(shù)據(jù)輸出。它們的功能取決于12/8/CLK和HBEN輸入。在12/8/CLK高時(shí),它們是DB7DB4。在12/8/CLK低或-5V,它們的功能由HBEN控制(見(jiàn)表12-6)。 腳12DGND 數(shù)字地。腳13腳16DB3/
22、DB11DB0/DB8由CS和RD控制的三態(tài)數(shù)據(jù)輸出。它們的功能取決于12/8/CLK和HBEN輸入。若12/8/CLK為高,它們是DB3DB0。若12/8/CLK為低或-5V,它們的功能由 HBEN控制(見(jiàn)表12-6)。腳17VDD正電源,+5V5%。腳18AGND 模擬地。腳19REF OUT參考電壓輸出。在此腳上提供內(nèi)部3V參考電壓外部負(fù)載能力是500A。腳20VIN模擬輸入。對(duì)于AD7870是3V,對(duì)于AD7876是10V,對(duì)于AD7875是+5V。腳21VSS負(fù)電源,-5V5%。腳2212/8/CLK 三功能輸入。定義數(shù)據(jù)格式和串行時(shí)鐘格式。若此腳為+5V,輸出數(shù)據(jù)是12位并行。若此
23、腳為0V,或者是字節(jié)或者是串行數(shù)據(jù),且SCLK不連續(xù)。若此腳為-5V,或者字節(jié)或者串行數(shù)據(jù)但現(xiàn)在SCLK連續(xù)。腳23CONVST#啟動(dòng)轉(zhuǎn)換。在此輸入腳上由低變?yōu)楦撸共蓸?保持處在保持方式并啟動(dòng)轉(zhuǎn)換。此腳與CLK輸入是異步的。腳24CS#片選,輸入、低有效。當(dāng)此輸入有效,選中此設(shè)備。若CONVST連接為低,當(dāng)CS#變低,啟動(dòng)新的轉(zhuǎn)換。 (3) AD 7870的操作方式與時(shí)序AD7870/AD7875/AD7876有兩種基本操作模式: 模式1、模式2。在第一種模式(模式1)中,CONVST#線用于啟動(dòng)轉(zhuǎn)換并驅(qū)使采樣/保持電路進(jìn)入保持方式。在轉(zhuǎn)換結(jié)束,采樣/保持電路返回采樣方式。對(duì)于要求在時(shí)間上精
24、確采樣的數(shù)字信號(hào)處理和別的應(yīng)用程序,傾向于用這種模式。對(duì)于這種情況,CONVST#線由定時(shí)器或若干精確時(shí)鐘源驅(qū)動(dòng)。第二種模式是把CONVST#線硬連為低而實(shí)現(xiàn)。這種模式(模式2)傾向用于微處理器同時(shí)控制和啟動(dòng) ADC轉(zhuǎn)換并讀數(shù)據(jù)的系統(tǒng)中。CS#啟動(dòng)轉(zhuǎn)換,在轉(zhuǎn)換間隔由BUSY#/INT#線使微處理器處在WAIT狀態(tài)。 模式1接口轉(zhuǎn)換由在CONVST#輸入腳上的低脈沖啟動(dòng)。CONVST#脈沖的上升沿,啟動(dòng)轉(zhuǎn)換并且驅(qū)使采樣/保持放大器進(jìn)入保持方式。若CS#是低電平則轉(zhuǎn)換不啟動(dòng)。在這種模式,BUSY#/INT#狀態(tài)輸出作為中斷功能。INT#正常是高電平,在轉(zhuǎn)換結(jié)束時(shí)變低。INT#線能用于中斷微處理器。
25、對(duì)ADC的讀操作訪問(wèn)數(shù)據(jù)且在CS#和RD#的下降沿INT#線重置為高電平。為了對(duì)這種模式的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í)對(duì)ADC的讀同時(shí)訪問(wèn)所有12位數(shù)據(jù)。對(duì)于這種數(shù)據(jù)輸出格式,串行數(shù)據(jù)是不可以用的。AD7870提供三種數(shù)據(jù)輸出格式: 單個(gè)并行的12位字、兩個(gè)8位字節(jié)或串行數(shù)據(jù)。并行數(shù)據(jù)格式是對(duì)16位數(shù)據(jù)總線提供單12位并行字;對(duì)于8位數(shù)據(jù)總線提供兩個(gè)字節(jié)格式
26、。數(shù)據(jù)字節(jié)格式由12/8/CLK 輸入控制。在此腳上的邏輯高電平,只選擇12位并行輸出格式。若邏輯低電平或-5V供給此輸入,允許用戶訪問(wèn)字節(jié)格式或串行的數(shù)據(jù)。在任一種操作模式中,這三種數(shù)據(jù)輸出格式都是可選的。 并行輸出格式在第一種格式中,12位數(shù)據(jù)在DB11DB0上同時(shí)可用。在第二種格式中,訪問(wèn)數(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位是右對(duì)齊的,因此占用低4位而高4位包含4個(gè)0。 串行輸出格式 在AD7870/
27、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)0,跟著是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è)串行線都是漏極開(kāi)路并要求外部上拉電阻。串行時(shí)鐘輸出是以ADC時(shí)鐘源導(dǎo)出的,它可以是內(nèi)部的或外部的。對(duì)于字節(jié)
28、和串行數(shù)據(jù),模式1的時(shí)序如圖12-25所示。 INT#在轉(zhuǎn)換結(jié)束后變低由CS#和RD#的第一個(gè)下降沿重置為高。在轉(zhuǎn)換結(jié)束后的第一次讀能訪問(wèn)數(shù)據(jù)的低字節(jié)或高字節(jié)取決于HBEN的狀態(tài)。圖12-25同時(shí)顯示了非連續(xù)和連續(xù)的運(yùn)行時(shí)鐘(虛線)。 模式2接口第二種接口模式由硬連CONVST#為低,轉(zhuǎn)換由當(dāng)HBEN為低使CS#為低啟動(dòng)的。采樣/保持放大器在CS#的下降沿進(jìn)入保持方式。在此模式,BUSY#/INT#腳起B(yǎng)USY#功能(作為8086的READY線)。在轉(zhuǎn)換開(kāi)始BUSY#變低并且在轉(zhuǎn)換期間保持為低,當(dāng)轉(zhuǎn)換完成返回高電平。它通常用作并行接口,使微處理器在轉(zhuǎn)換期間處在WAIT狀態(tài)。 圖12-26顯示1
29、2位并行數(shù)據(jù)輸出格式(12/8/CLK=+5V)模式2時(shí)序圖。在這種情況下,ADC的行為像慢速存儲(chǔ)器。這種接口的主要優(yōu)點(diǎn)是允許微處理器啟動(dòng)轉(zhuǎn)換、等待,然后用單個(gè)讀指令讀數(shù)據(jù)。用戶不需要關(guān)心中斷服務(wù)或保證在轉(zhuǎn)換期間的延時(shí)。 字節(jié)和串行數(shù)據(jù)的模式2時(shí)序如圖12-27所示。對(duì)于讀兩字節(jié),低字節(jié)(DB0DB7)必須先訪問(wèn),因?yàn)橐獑?dòng)轉(zhuǎn)換,HBEN必須為低。對(duì)于第一次讀,ADC的行為像慢速存儲(chǔ)器。但第二次訪問(wèn)數(shù)據(jù)的高字節(jié)是正常的讀。串行功能的操作在模式1和模式2是相同的,如圖12-27所示。 12.2.4 A/D轉(zhuǎn)換芯片與CPU的接口1. A/D轉(zhuǎn)換芯片與CPU接口要注意的問(wèn)題(1) 啟動(dòng)信號(hào)A/D轉(zhuǎn)換
30、器要求的啟動(dòng)信號(hào)一般有兩種形式: 電平啟動(dòng)信號(hào)和脈沖啟動(dòng)信號(hào)。有些A/D轉(zhuǎn)換芯片要求用電平作為啟動(dòng)信號(hào),整個(gè)轉(zhuǎn)換過(guò)程中都必須保證啟動(dòng)信號(hào)有效,如果中途撤走啟動(dòng)信號(hào),就會(huì)停止轉(zhuǎn)換而得到錯(cuò)誤結(jié)果。為此,CPU一般要通過(guò)并行接口來(lái)對(duì)A/D芯片發(fā)啟動(dòng)信號(hào),或者用D觸發(fā)器使啟動(dòng)信號(hào)在A/D轉(zhuǎn)換期間保持在有效電平。另外一些A/D轉(zhuǎn)換芯片要求用脈沖信號(hào)來(lái)啟動(dòng),對(duì)這種芯片,通常用CPU執(zhí)行輸出指令時(shí)所發(fā)出的片選信號(hào)和寫(xiě)信號(hào)即可在片內(nèi)產(chǎn)生啟動(dòng)脈沖,從而開(kāi)始轉(zhuǎn)換。(2) 轉(zhuǎn)換結(jié)束與轉(zhuǎn)換數(shù)據(jù)的讀取A/D轉(zhuǎn)換結(jié)束時(shí),A/D轉(zhuǎn)換芯片會(huì)輸出轉(zhuǎn)換結(jié)束信號(hào),通知CPU讀取轉(zhuǎn)換數(shù)據(jù)。CPU一般可以采用以下四種方式和A/D轉(zhuǎn)換器
31、進(jìn)行聯(lián)絡(luò)來(lái)實(shí)現(xiàn)對(duì)轉(zhuǎn)換數(shù)據(jù)的讀取。第一種是程序查詢方式。這種方式的思想就是在啟動(dòng)A/D轉(zhuǎn)換器工作之后,程序不斷地讀取A/D轉(zhuǎn)換結(jié)束信號(hào),如果發(fā)現(xiàn)結(jié)束信號(hào)有效,則認(rèn)為完成一次轉(zhuǎn)換,因而用輸入指令讀取數(shù)據(jù)。 第二種是中斷方式。用這種方式時(shí),把轉(zhuǎn)換結(jié)束信號(hào)作為中斷請(qǐng)求信號(hào),送到中斷控制器(如8259)的中斷請(qǐng)求輸入端。第三種是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í)間。這樣,CP
32、U發(fā)出啟動(dòng)命令之后,執(zhí)行一個(gè)固定的延遲程序,此程序執(zhí)行完時(shí),A/D轉(zhuǎn)換也正好結(jié)束,于是CPU讀取數(shù)據(jù)。 如果CPU的轉(zhuǎn)換時(shí)間比較長(zhǎng),或者有幾件事情需要CPU處理,那么,用中斷方式效率比較高。但是,如果A/D轉(zhuǎn)換時(shí)間比較短,中斷方式就失去了優(yōu)越性,因?yàn)轫憫?yīng)中斷、保護(hù)現(xiàn)場(chǎng)、恢復(fù)現(xiàn)場(chǎng)、中斷返回這一系列環(huán)節(jié)所花去的時(shí)間將和A/D轉(zhuǎn)換的時(shí)間相當(dāng)。此時(shí)可用上述的三種非中斷方式之一來(lái)實(shí)現(xiàn)轉(zhuǎn)換數(shù)據(jù)的讀取。 采用中斷方式時(shí),程序設(shè)計(jì)非常簡(jiǎn)單。主程序中,只要有一條輸出指令即可以啟動(dòng)A/D轉(zhuǎn)換。假設(shè)A/D轉(zhuǎn)換器的端口號(hào)為PROTAD,則執(zhí)行指令:OUT PORTAD,AL后,A/D轉(zhuǎn)換器便開(kāi)始轉(zhuǎn)換。在這條輸出指令中
33、,寄存器AL預(yù)先放什么內(nèi)容是無(wú)關(guān)緊要的,執(zhí)行這條指令的目的是為了得到有效的片選信號(hào)和寫(xiě)信號(hào),使A/D轉(zhuǎn)換器啟動(dòng)。 此后,便開(kāi)始A/D轉(zhuǎn)換過(guò)程。轉(zhuǎn)換結(jié)束后,A/D芯片會(huì)輸出一個(gè)轉(zhuǎn)換結(jié)束信號(hào),此信號(hào)產(chǎn)生中斷請(qǐng)求,CPU響應(yīng)中斷后,便轉(zhuǎn)去執(zhí)行中斷處理程序。中斷處理程序中最主要的指令是讀取轉(zhuǎn)換結(jié)果的輸入指令:INAL,PORTAD這條指令在執(zhí)行時(shí),使三態(tài)輸出門(mén)開(kā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的模擬輸入端接至采樣/保持電路的輸出,如圖
34、12-14中所示。但轉(zhuǎn)換的開(kāi)始,要由CPU用軟件來(lái)控制(輸出一條指令);而轉(zhuǎn)換總是需要一定時(shí)間才能完成,故A/D轉(zhuǎn)換電路必須給出一個(gè)DONE/BUSY的狀態(tài)信息。 一個(gè)典型的8位A/D轉(zhuǎn)換的接口電路如圖12-29所示。其中,輸入輸出接口電路采用8212,顯然也可以采用8255A。程序如下:ORG2000HSTART: LDBX,DATACONV:OUT37H,AL;啟動(dòng)轉(zhuǎn)換TEST:INAL,66H;輸入狀態(tài)ANDAL,80H;檢測(cè)DONE標(biāo)志JZTEST;未完成,等待INAL,65H;輸入轉(zhuǎn)換后的數(shù)據(jù)MOVBX,AL;存入內(nèi)存RETORG3000HDATA:DS1;給輸入數(shù)據(jù)保留一個(gè)存儲(chǔ)單元
35、END上述程序是用查詢方式與A/D交換信息,顯然也可以用中斷方式,用DONE信息作為中斷請(qǐng)求信號(hào)。若把ADC 0809接至TP801A單板機(jī),其接線如圖12-30所示。 若要把8個(gè)模擬量輪流輸入至內(nèi)存緩沖區(qū),輸入在中斷服務(wù)程序中執(zhí)行。程序如下:;主程序START:MOVBX,DATA;設(shè)輸入緩沖器指針MOVCH,8MOVCL,0STIMOVAL,CLOUTPADC,ALHALTLOOP:XORAL,ALINCCLMOVAL,CLCMPAL,8JZDONEOUTPADC,ALJMPLOOPDONE:HALT;中斷服務(wù)程序ORG0038HDWINTSEV 3. 10位A/D轉(zhuǎn)換接口當(dāng)A/D轉(zhuǎn)換的精
36、度要求高時(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)信號(hào)和數(shù)據(jù)的高兩位,用了同一個(gè)輸入接口芯片8212,只要在程序上加以區(qū)分是不會(huì)混淆的。 其程序?yàn)椋篛RG2000HADC:PUSHAXPUSHBXMOVBX,ADTAOUT37H,AL;啟動(dòng)轉(zhuǎn)換TEST:INAL,66H;輸入狀態(tài)及高兩位數(shù)據(jù)ADDAL,80H;檢查D7=1? 但不影響D1和D0JNCTEST;轉(zhuǎn)換未完則等待MOVBX+1,AL;存入高位字節(jié)(兩位)INAL,65H;輸入低8位MOVBX,ALPOP
37、BXPOPAXRETORG3000HDATADS2;為輸入數(shù)據(jù)保留兩個(gè)存儲(chǔ)單元END 12.2.5 D/A和A/D轉(zhuǎn)換應(yīng)用舉例 1. D/A轉(zhuǎn)換舉例鋸齒波信號(hào)廣泛用于示波器的掃描電路,鋸齒波信號(hào)一般是利用阻容電路的充電來(lái)實(shí)現(xiàn)的,由于阻容充放電的過(guò)程是近似線性的,所以很難得到一個(gè)線性好的波形,通過(guò)D/A轉(zhuǎn)換電路可以得到線性度相當(dāng)高的波形。圖12-32就是一個(gè)利用DAC 0832芯片實(shí)現(xiàn)鋸齒波信號(hào)的電路。對(duì)于圖12-32所示電路,執(zhí)行下面的程序時(shí),就可以產(chǎn)生一個(gè)鋸齒波信號(hào)。 MOV DX,PORTA;PORTA為D/A轉(zhuǎn)換器端口地址MOV AL,0FFH;初值為0FFHROTATE:INCALOUTDX,AL;往D/A轉(zhuǎn)換器輸出數(shù)據(jù)JMPROTATE 2. A/D轉(zhuǎn)換舉例有一數(shù)據(jù)采集電路如圖12-33所示,圖中ADC 0809通過(guò)8255A與8086 CPU連接,要求從模擬通道IN0開(kāi)始轉(zhuǎn)換,連續(xù)采樣24個(gè)數(shù)據(jù);然后采樣下一個(gè)模擬通道IN1,同樣采樣24個(gè)數(shù)據(jù);直至IN7。采樣后的數(shù)據(jù)存放在數(shù)據(jù)段中2000H開(kāi)始的數(shù)據(jù)區(qū)中。(1) 電路分析地址譯碼器74LS138的地址輸入端C、B、A分別接A4、A3、A2,G2A#與或門(mén)5輸出相連,或門(mén)5的輸入為M/IO#和A5,只有在M/IO#=0時(shí)(即I/O操作)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 在線教育平臺(tái)在線客服系統(tǒng)翻譯流程協(xié)議
- 企業(yè)營(yíng)銷(xiāo)策略咨詢服務(wù)合同
- 智能水務(wù)設(shè)備供應(yīng)與維護(hù)合同
- 公司法律顧問(wèn)服務(wù)合同
- 供應(yīng)鏈管理系統(tǒng)研發(fā)合同
- 在線教育平臺(tái)課程證書(shū)查詢系統(tǒng)數(shù)據(jù)遷移遷移合同
- 建筑安裝工程合同
- 電子競(jìng)技比賽協(xié)議
- 專(zhuān)業(yè)廚師食材配送合作協(xié)議
- 2025版食品出口許可與質(zhì)量認(rèn)證合同2篇
- 中國(guó)鹽業(yè)集團(tuán)有限公司招聘筆試題庫(kù)2024
- 臨沂市蘭山區(qū)財(cái)金投資集團(tuán)有限公司招聘筆試題庫(kù)2024
- 2024年人教版小學(xué)四年級(jí)信息技術(shù)(上冊(cè))期末試卷附答案
- 護(hù)士延續(xù)注冊(cè)申請(qǐng)表范本
- ASME標(biāo)準(zhǔn)鋼號(hào)和中國(guó)鋼號(hào)對(duì)照表
- 頸靜脈球體瘤
- 教材中醫(yī)方劑學(xué)
- 2022年2022年跨欄教案-程璐上交
- 青海省互助豐臺(tái)溝隧道施工組織設(shè)計(jì)
- CMMI3培訓(xùn)、咨詢及評(píng)估合同
- 課堂教學(xué)如何培養(yǎng)地理核心素養(yǎng)(課堂PPT)
評(píng)論
0/150
提交評(píng)論