AD與DA轉(zhuǎn)換器接口課件_第1頁
AD與DA轉(zhuǎn)換器接口課件_第2頁
AD與DA轉(zhuǎn)換器接口課件_第3頁
AD與DA轉(zhuǎn)換器接口課件_第4頁
AD與DA轉(zhuǎn)換器接口課件_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

A/D與D/A轉(zhuǎn)換器接口D/A轉(zhuǎn)換器的接口方法10/1

微型汁算機在實時控制、在線動態(tài)測量和對物理過程進行監(jiān)控,以及圖像、語音處理領(lǐng)域的應(yīng)用中,都要與一些連續(xù)變化的模擬量(溫度、壓力、流量、位移、速度、光亮度、聲音等模擬量)打交道,但數(shù)字計算機本身只能識別和處理數(shù)字量,因此,必須經(jīng)過轉(zhuǎn)換器,把模擬量轉(zhuǎn)換器成數(shù)字量,或?qū)?shù)字量轉(zhuǎn)換成模擬量,才能實現(xiàn)CPU與被控對象之間的信息交換。顯然,模擬接口電路的作用,在于把微處理器系統(tǒng)的離散的數(shù)字信號與模擬設(shè)備中連續(xù)變化的模擬信號電壓、電流之間建立起適配關(guān)系,以便汁算機執(zhí)行控制與測量任務(wù)。從硬件角度來看,模擬接口就是處理器與A/D、D/A轉(zhuǎn)換器之間的連接電路。本章將詳細討論這種接口原理、設(shè)計方法及如何進行驅(qū)動程序的設(shè)計。HOMED/A轉(zhuǎn)換器的接口方法10/1一、D/A轉(zhuǎn)換器及其連接特性

1.D/A轉(zhuǎn)換器的主要參數(shù)

①分辨率:指D/A轉(zhuǎn)換器能夠轉(zhuǎn)換的二進制數(shù)的位數(shù)。位數(shù)多分辨率也就高,

②轉(zhuǎn)換時間:指數(shù)字量從輸入到完成轉(zhuǎn)換、輸出達到最終值并穩(wěn)定為止所需的時間。

③精度:指D/A轉(zhuǎn)換器實際輸出電壓與理論值之間的誤差。

④性度:指數(shù)字量變化時,D/A轉(zhuǎn)換器輸出的模擬量按比例關(guān)系變化的程度。HOMEBACKD/A轉(zhuǎn)換器的接口方法10/12.D/A轉(zhuǎn)換器的連接特性

①輸入緩沖能力。DAC是否帶有三態(tài)輸入緩沖器或鎖存器來保存輸入數(shù)字量,這對不能長時間在數(shù)據(jù)總線保持數(shù)據(jù)的微機系統(tǒng)中使用D/A轉(zhuǎn)換器,十分重要。

②輸入數(shù)據(jù)的寬度(即分辨率)。DAC有8位。10位。14位。16位。

③輸入碼制。DAC能接收不同碼制的數(shù)字量輸出

④輸出模擬量的類型。DAC的輸出可以是電流也可以是電壓,輸出電流的叫電流型DAC,輸出電壓的叫電壓型DAC。

⑤輸出模擬量的極性。DAC的模擬量輸出有單極性輸出也有雙極性輸出。對—些需要正負電壓控制的設(shè)備,就要使用雙極性DAC,或在輸出電路中采取措施,使輸出電壓有極性變化。HOMEBACKD/A轉(zhuǎn)換器的接口方法10/1二、D/A轉(zhuǎn)換器與微處理器的接口方法:

1.接口的任務(wù)

CPU向DAC傳送數(shù)據(jù)時,也不必查詢DAC的狀態(tài)是否準備好,只要兩次傳送數(shù)據(jù)之間的間隔不小于DAC的轉(zhuǎn)換時間,都能得到正確的結(jié)果。但是,如果D/A轉(zhuǎn)換器不帶三態(tài)輸入鎖存緩沖器時,CPU就不能把數(shù)據(jù)直接通過數(shù)據(jù)總線送到D/A轉(zhuǎn)換器,而需要在CPU的數(shù)據(jù)總線與D/A轉(zhuǎn)換器的數(shù)據(jù)輸入線之間加三態(tài)鎖存緩沖器。所以D/A轉(zhuǎn)換器接口的主要任務(wù)是要解決CPU與DAC之間的數(shù)據(jù)緩沖問題。例如,DAC0832外部有5個控制信號,它們都是用來控制兩級鎖存器的。HOMEBACKD/A轉(zhuǎn)換器的接口方法10/12。接口電路結(jié)構(gòu)形式

D/A轉(zhuǎn)換器的種類繁多,型號各異,速度與精度差別甚大,它們與微型計算機連接時的接口電路結(jié)構(gòu)形式一·般有3種:

①采用中小規(guī)模邏輯芯片構(gòu)成接口電路與CPU連接;

②利用通用并行I/0接口芯片與CPU連接;

③采用GAL器件。在實際使用中,經(jīng)常利用并行I/O接口芯片與CPU相連,這樣,在時序配合和驅(qū)動能力上都容易和CPU一致,使設(shè)計簡化和調(diào)試方便,并增加系統(tǒng)的可靠性。下面舉例說明如何進行D/A轉(zhuǎn)換器接口硬件設(shè)計和軟件編程。HOMEBACKD/A轉(zhuǎn)換器接口的電路設(shè)計10/2一、片內(nèi)無三態(tài)輸入緩沖器的8位D/A轉(zhuǎn)換器接口設(shè)計

1.要求利用DAC0808構(gòu)成自流數(shù)字電壓表。端口地址分配為:數(shù)據(jù)鎖存的端口(Y1)--318H,比較器比較結(jié)果端口(Y0)——319H。

2.分析首先,由于DAC0808片內(nèi)無三態(tài)數(shù)據(jù)輸入鎖存器,因此在接口電路設(shè)計中—定要外加三態(tài)鎖存器或I/0并行接口芯片才能與CPU相接。其次,利用DAC構(gòu)成數(shù)字電壓表的實質(zhì)是將數(shù)字量轉(zhuǎn)換成電壓去和被測電壓進行比較,而得到被測電壓的數(shù)字量。

3.設(shè)計

①硬件連接。圖10.1為DAC0808與CPU之間加鎖存器的連接圖。圖中DAC0808的數(shù)據(jù)輸入端通過鎖存器74kS273與PC微機插槽數(shù)據(jù)總線相連,鎖存器的鎖存信號CP由IOW與地址譯碼電路的輸出Yl經(jīng)或非門741S33產(chǎn)生。HOMEBACKD/A轉(zhuǎn)換器接口的電路設(shè)計10/2②軟件編程。實現(xiàn)直流電壓表功能的程序段為:

MOVAX,020H ;開辟存儲單元

MOVES,AX MOVBX,00H MOVCX,080H ;CH等于新試探值初值;CL等于試探值增量初值NEXT:MOVAH,CH ;AH等于試探后保留值(老試探值) MOVAL,AH ;取老試探值

ADDAL,CL ;形成新試探值

MOVCH,AL ;CH←新試探值

MOVDX,318H ;新試探值送至74Lq273,進行轉(zhuǎn)換

OUTDX,AL MOVDX,319H ;讀人比較結(jié)果

INAL,DX ;即檢查比較結(jié)果D0 ANDAL,01H JNZOK ;若結(jié)果為“1”,則保留

MOVCH,AH ;若結(jié)果為“O”,則去掉OK:SHRCL,1 ;改變試探增量

INCNEXT ;比較次數(shù)到了嗎?(N=8)不到,則繼續(xù)

MOVAL,CH ;次數(shù)已到,則送數(shù)據(jù)到存儲單元

MOVES:[BX],AL HLT ;暫停

程序執(zhí)行完畢,在內(nèi)存200H單元,保存著被測的直流電壓值。HOMEBACKD/A轉(zhuǎn)換器接口的電路設(shè)計10/2二、片內(nèi)有三態(tài)輸入緩沖器的8位D/A轉(zhuǎn)換器接口設(shè)計1.要求通過D/A轉(zhuǎn)換器DAC0832產(chǎn)生任意波形,如矩形波、三角波、梯形波、正弦波以及鋸齒波等。2.分析

①連接特性。DAC0832是分辨率為8位的乘法型DAC,芯片內(nèi)部帶有兩級緩沖寄存器,它的內(nèi)部結(jié)構(gòu)和外部引腳如圖10.2所示。

DAC0832的時序關(guān)系如圖10.3所示。圖中表示,兩個數(shù)據(jù)分別用CS1和CS2鎖存到兩個DAC0832的輸入寄存器中,最后用XFER信號的上升沿將它們同時鎖存到各自的DAC寄存器,進行D/A轉(zhuǎn)換。HOMEBACKD/A轉(zhuǎn)換器接口的電路設(shè)計10/2

②DAC0832的工作方式。DAC0832芯片在以上幾個信號不同組合的控制下,可實現(xiàn)單緩沖、雙緩沖和直通3種工作方式。直通就是不進行緩沖,CPU送來的數(shù)字量直接送到DAC轉(zhuǎn)換器,條件是除ILE端加高電平以外,將所有的控制信號都接低電平。單緩沖是只進行一級緩沖,具體可用第—組或第二組控制信號對第—·級或第二級緩沖器進行控制。雙緩沖是進行兩級緩沖,用兩組控制信號分別進行控制。3.設(shè)計

①硬件設(shè)計。采用8255A作為DAC與CPU之間的接口芯片,并把8255A的A口作為數(shù)據(jù)輸出,通過它把數(shù)據(jù)傳送到DAC0832,而B口的PBo—PB45根線作為控制信號來控制DAC0832的工作方式及轉(zhuǎn)換操作,如圖10.4所示。HOMEBACKD/A轉(zhuǎn)換器接口的電路設(shè)計10/2②軟件編程。 ;8255A初始化

MOVDX,303H ;8255A的命令口

MOVAL,10000000B ;8255A的方式字

OUTDX,AL

;指派B口控制DAC的轉(zhuǎn)換

MOVDX,300H ;8255A的B口地址

MOVAL,00010000B ;置DAC0832為直通工作方式

OUTDX,AL

;生成三角波的循環(huán)

MOVDX,300H ;8255A的A口地址

MOVAL,0H ;輸出數(shù)據(jù)從0開始

L1: OUTDX,AL INCAL ;輸出數(shù)據(jù)加1 JNZL1 ;AL是否加滿?未滿,繼續(xù)

MOVAL,0FFH ;已滿,AL置全“1”L2: OUTDX,AL DECAL ;輸出數(shù)據(jù)減1 JNZ12 ;從是否減到0?不為0,繼續(xù)

JMPL1 ;為0,AL加1HOMEBACKD/A轉(zhuǎn)換器接口的電路設(shè)計10/2三、片內(nèi)無三態(tài)輸入緩沖器的12位D/A轉(zhuǎn)換器接口設(shè)計

1.要求

對片內(nèi)無輸入緩沖器的12位D/A轉(zhuǎn)換器設(shè)計接口,要求轉(zhuǎn)換的數(shù)據(jù)按“右對齊”格式傳送。

2.分析首先,由于轉(zhuǎn)換器的分辨率(12位)比CPU的數(shù)據(jù)總線位數(shù)(8位)寬,CPU必須分兩次送出,先送低字節(jié),后送高字節(jié)(稱右對齊)。所以在DAC的分辨率大于系統(tǒng)數(shù)據(jù)總線位數(shù)時要采用兩級鎖存器。其次,因片內(nèi)無兩級輸入緩沖器,故接口電路中要在數(shù)據(jù)總線與DAC數(shù)據(jù)輸入端之間加兩級鎖存器,如圖10.5所示。HOMEBACKD/A轉(zhuǎn)換器接口的電路設(shè)計10/2四、片內(nèi)有三態(tài)輸入緩沖器的12位D/A轉(zhuǎn)換器接口設(shè)計

1.要求對片內(nèi)有輸入緩沖器的12位D/A轉(zhuǎn)換器設(shè)計接口,要求按“左對齊“的格式傳送數(shù)據(jù)。

2.分析由于DACl210片內(nèi)有兩級鎖存器,所以接口電路中,在DAC的數(shù)據(jù)輸入線與系統(tǒng)數(shù)據(jù)總線之間就不必外加鎖存器,而直接相連,但由于DACl210的分辨率位數(shù)大于系統(tǒng)數(shù)據(jù)總線的位數(shù),因此,數(shù)據(jù)的傳送還是要分兩次。

DACl210的內(nèi)部結(jié)構(gòu)如圖10.6所示。HOMEBACKD/A轉(zhuǎn)換器接口的電路設(shè)計10/23.設(shè)計

(1)硬件連接圖10.7表示了DACl210與CPU的連接DACl210輸人數(shù)據(jù)線的高8位DI11~DI4連到數(shù)據(jù)總線的D7—Do,低4位DI,—Dio接到數(shù)據(jù)總線的D7—D4,以實現(xiàn)左對齊格式。HOMEBACKD/A轉(zhuǎn)換器接口的電路設(shè)計10/2(2)高低字節(jié)數(shù)據(jù)緩存過程這一緩存過程可用下列程序段完成。

MOVDX,340H ;高8位端口地址

MOVAL,DATAH ;高8位數(shù)據(jù)

OUTDX,AL ;送高8位

INCDX ;低4位端口地址

MOVAL,DATAL ;低4位數(shù)據(jù)

OUTDX,AL ;送低4位

MOVDX,342H ;12位鎖存器地址

OUTDX,AL ;送12位數(shù)據(jù)HOMEBACKA/D轉(zhuǎn)換器接口基本原理與方法10/3一、A/D轉(zhuǎn)換器及其連接特性

1.MD轉(zhuǎn)換器的主要參數(shù)

(1)分辨率:是指A/D轉(zhuǎn)換器能夠轉(zhuǎn)換成二進制數(shù)的位數(shù)。例如:1個10位A/D轉(zhuǎn)換器,去轉(zhuǎn)換一個滿量程為5V的電壓,則它能分辨的最小電壓為5000mV/102≈5mV。這表明,A/D轉(zhuǎn)換器的數(shù)字量輸出位數(shù)越多,其分辨率就越高。

(2)轉(zhuǎn)換時間指從輸入啟動轉(zhuǎn)換信號開始到轉(zhuǎn)換結(jié)束,得到穩(wěn)定的數(shù)字輸出量為止的時間。其他參數(shù)與D/A轉(zhuǎn)換器類似。HOMEBACKA/D轉(zhuǎn)換器接口基本原理與方法10/3一、A/D轉(zhuǎn)換器及其連接特性

2.MD轉(zhuǎn)換器的外部特性

(1)模擬信號輸人線----來自被轉(zhuǎn)換的對象,有單通道輸入與多通道輸入之分。

(2)數(shù)字量輸出線----是ADC將數(shù)字量送給CPU的數(shù)據(jù)線。數(shù)據(jù)線的根數(shù)表示ADC的分辨率。

(3)轉(zhuǎn)換啟動線(輸入)----它是由系統(tǒng)控制器發(fā)出的一種控制信號,此信號一到,A/D轉(zhuǎn)換就開始,啟動轉(zhuǎn)換信號不到,A/D轉(zhuǎn)換器不會自動開始轉(zhuǎn)換,并且是發(fā)1次啟動信號只能轉(zhuǎn)換1次,采集1個數(shù)據(jù)。

(4)轉(zhuǎn)換結(jié)束線(輸出)----轉(zhuǎn)換完畢后由ADC發(fā)出A/D轉(zhuǎn)換結(jié)束信號,它是一種狀態(tài)信號。HOMEBACKA/D轉(zhuǎn)換器接口基本原理與方法10/3一、A/D轉(zhuǎn)換器及其連接特性

2.MD轉(zhuǎn)換器的外部特性

表10.1幾種A/D轉(zhuǎn)換芯片的引腳對照

芯片轉(zhuǎn)換啟動轉(zhuǎn)換結(jié)束

ADC0816(0809)

STARTEOCAD570(571)B/C=0DRADC0804WRCSINTRADC7570STARTBUSY=1ADC1131JCONVCMDSTATUS下降邊

ADC1210SCCCAD574EC(R/C=0)。CS

STS=0HOMEBACKA/D轉(zhuǎn)換器接口基本原理與方法10/3二、A/D轉(zhuǎn)換器與微處理器的接口方法

1.MD轉(zhuǎn)換器與CPO的連接

(1)AID轉(zhuǎn)換器的分辨率

ADC的分辨率位數(shù)與CPU的數(shù)據(jù)總線的位數(shù)是否一致?若不一致,并且是分辨率高于數(shù)據(jù)總線的寬度,則CPU讀數(shù)據(jù)時,需要兩次讀取,而且,讀取的數(shù)據(jù)在存儲區(qū)存放的格式,有左對齊與右對齊之分。

(2)A/D轉(zhuǎn)換器的輸出鎖存器在ADC芯片內(nèi)有無三態(tài)數(shù)據(jù)輸出鎖存器?若有,則ADC的數(shù)據(jù)線可直接掛在CPU的數(shù)據(jù)總線上;若無,則須在ADC的輸出數(shù)據(jù)線與CPU的數(shù)據(jù)總線之間,外加三態(tài)鎖存器,才能連接。

(3)A/D轉(zhuǎn)換器的啟動信號對于采用電平啟動的ADC,其啟動電子要在整個轉(zhuǎn)換過程中維持不變,直到轉(zhuǎn)換結(jié)束為止。HOMEBACKA/D轉(zhuǎn)換器接口基本原理與方法10/32.MD轉(zhuǎn)換器接口的主要操作

①進行通道選擇。

②發(fā)轉(zhuǎn)換啟動信號

③取回“轉(zhuǎn)換結(jié)束”狀態(tài)信號。

④讀取轉(zhuǎn)換的數(shù)據(jù)。

⑤發(fā)采樣/保持(S/H)控制信號。3.A/D轉(zhuǎn)換器數(shù)據(jù)的傳送對于查詢方式,只需一個程序,程序中包括選擇通道,發(fā)轉(zhuǎn)換啟動信號,查轉(zhuǎn)換結(jié)束信號,若轉(zhuǎn)換結(jié)束,就開始讀數(shù)據(jù),最后是把數(shù)據(jù)存入內(nèi)存。對于中斷方式,需要兩個程序,一個主程序和一個服務(wù)程序。在主程序中,選擇通道,發(fā)轉(zhuǎn)換啟動信號,開中斷,然后,CPU就可以干別的事或等待中斷請求。HOMEBACKA/D轉(zhuǎn)換器接口基本原理與方法10/33.A/D轉(zhuǎn)換器數(shù)據(jù)的傳送對于DMA方式,其數(shù)據(jù)采集的操作與查詢和中斷方式基本相同,只是對所采集的數(shù)據(jù)如何傳送到內(nèi)存的方法有所不同。對于超高速數(shù)據(jù)采集系統(tǒng),A/D轉(zhuǎn)換器速度非???,采用DMA方式傳送也跟不上轉(zhuǎn)換的速度,故在A/D轉(zhuǎn)換器板上設(shè)置RAM,把采集的數(shù)據(jù)先就近存放在RAM中,然后,再從板上的RAM取出數(shù)據(jù)送到內(nèi)存。4.MD轉(zhuǎn)換器接口電路的結(jié)構(gòu)形式A/D轉(zhuǎn)換器與CPU的接口方式有如下3種:

(1)采用中小規(guī)模邏輯電路這種接口電路在與CPU的時序配合上,調(diào)試時可能有些麻煩,適應(yīng)于控制信號較少的簡單接口設(shè)計。

HOMEBACKA/D轉(zhuǎn)換器接口基本原理與方法10/3(2)采用通用的可編程并行接口芯片例如采用8255A作ADC的接口,這種接口電路設(shè)計方便,加上是可編程,使用靈活。

(3)采用GAL器件采用GAL器件,可以實現(xiàn)A/D轉(zhuǎn)換器接口電路中的全部功能,包括提供控制信號,接收狀態(tài)信號和進行I/0端口地址譯碼。這種接口電路不僅可實現(xiàn)復(fù)雜的控制邏輯,可靠性高,而且可以加密,這是通用并行接口芯片無法做到的。要說明一點,這些A/D轉(zhuǎn)換器并不是只適合于例中的某種傳送方式或電路結(jié)構(gòu)形式,它們還可以有其他的傳送方式和電路結(jié)構(gòu)形式。HOMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/4一、12位片內(nèi)帶有3-態(tài)輸出鎖存器的A/D轉(zhuǎn)換器接口設(shè)計

1.要求進行12位轉(zhuǎn)換,轉(zhuǎn)換結(jié)果分兩次輸出,以左對齊方式存放在首址為4001-1的內(nèi)存區(qū)。共采集64個數(shù)據(jù)。ADC與CPU之間采用查詢方式交換數(shù)據(jù),為此,采用AD574A作為A/D轉(zhuǎn)換器。

2.分析

AD574A是具有三態(tài)輸出鎖存器的A/D轉(zhuǎn)換器,它可以作12位轉(zhuǎn)換,也可作8位轉(zhuǎn)換。轉(zhuǎn)換速度較快,為25us,內(nèi)部含有與微型計算機連接的邏輯控制電路,它是目前國內(nèi)外使用較多的器件之一。AD574A外部引腳如圖10.8所示。

AD574A的內(nèi)部邏輯結(jié)構(gòu)如圖10,9所示。HOME

BACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/4CE:片允許信號,高電平允許工作。簡單應(yīng)用中可固定接高電平。CS:片選中,低電平有效。R/C:雙功能引腳,作為讀數(shù)據(jù)或啟動轉(zhuǎn)換的控制信號。R/C=1,用于讀數(shù)據(jù);R/C=0,用于啟動轉(zhuǎn)換。12/8:數(shù)字量輸出位數(shù)控制,12/8=1,1次輸出12位數(shù)據(jù);12/8=0,1次輸出8位數(shù)據(jù)。A0:雙功能引腳,用于分辨率和字節(jié)選擇。在轉(zhuǎn)換啟動時,若Ao=O,則AD574A作12位轉(zhuǎn)換器用;若Ao=1,則AD574A作8位轉(zhuǎn)換器用。在讀數(shù)據(jù)時,若Ao=O,則讀高字節(jié);若Ao=1,則讀低字節(jié)。STS:狀態(tài)線,表示轉(zhuǎn)換器狀態(tài),在轉(zhuǎn)換期間,STS為高;當轉(zhuǎn)換結(jié)束時,STS變低??衫盟呢撎叿聪蚝笕ド暾堉袛唷OMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/4

以上信號線中,CS、CE和R/C三個信號組合起來實現(xiàn)啟動轉(zhuǎn)換和讀數(shù)據(jù)。當CS=0、CE=1和R/C=O時,啟動A/D進行轉(zhuǎn)換,可見AD574A是邊沿啟動轉(zhuǎn)換;當CS=O、CE=l和R/C=1時,讀取數(shù)據(jù)。這5個控制信號的電平狀態(tài)與AD574A所產(chǎn)生的操作對應(yīng)關(guān)系如表10.2所示。

表10.2AD574A的控制信號的作用CECSR/C12/8A0AD574A的功能操作

0××××不允許轉(zhuǎn)換

×1×××未接通芯片

100×0啟動1次12位轉(zhuǎn)換(作12位轉(zhuǎn)換器)

100×1啟動1次8位轉(zhuǎn)換(作8位轉(zhuǎn)換器)

101高電平(+5V)

×一次輸出12位

101低電平(數(shù)字地)0輸出高位字節(jié)

101低電平(數(shù)字地)1輸出低位字節(jié)HOMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/43.設(shè)計

(1)硬件連接

AD574A與CPU的連接如圖10。10所示。圖中I/O端口地址譯碼有三個端口地址:Yo=310H,為狀態(tài)口;Y1=311H,為數(shù)據(jù)口(低4位);Y2=312H,為轉(zhuǎn)換啟動控制121/數(shù)據(jù)口(高8位)。這樣安排,實際上也就考慮了A0的控制作用。例如轉(zhuǎn)換啟動端口設(shè)置為312H,其中包含Ao=0,以實現(xiàn)12位轉(zhuǎn)換。讀數(shù)據(jù)端口設(shè)置了兩個,一個是312H,包含Ao=0,讀高字節(jié);一個是311H,包含Ao=1,讀低字節(jié)。

(2)軟件編程軟件編程與AD574A各控制信號之間的邏輯關(guān)系及工作時序有關(guān)。圖10.11描述了各信號之間的時序關(guān)系。HOMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/4根據(jù)題目的要求和信號的時序關(guān)系,其數(shù)據(jù)采集的程序段如下:

MOVCX.40H ;采集次數(shù)

MOVSI,400H ;存放數(shù)據(jù)內(nèi)存首址START:MOVDX.312H :12位轉(zhuǎn)換(Ao;O) MOV從,0H ;寫入的數(shù)據(jù)可以取任意值

OUTDX,AL ;轉(zhuǎn)換啟動(CS,及R/C均置O,

CE置1) MOVDX,310H ;讀狀態(tài),Y0=O,打開三態(tài)門L: INAL,DX ANDAL,80H ;檢查D7=STS=0? JNZL ;不為0,轉(zhuǎn)換未結(jié)束,則等待

MOVDX,311H;為0,轉(zhuǎn)換已結(jié)束,先讀低4位

INAL,DXA0=1) HOMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/4 ANDAL,0FOH ;屏蔽低4位

MOV[SI],AL ;送內(nèi)存

INCSI ;內(nèi)存地址加l MOVDX,312H ;再讀高8位(A0=0) INAL,DX MOV[SI],AL ;送內(nèi)存

INCSI ;內(nèi)存地址+1 DECCX ;采集次數(shù)減l JNZSTART ;未完,繼續(xù)

MOVAX,4C00H ;已完,程序退出

INT21HHOMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/4二、12位片內(nèi)不帶三態(tài)輸出鎖存器的A/D轉(zhuǎn)換器接口設(shè)計

1.要求某數(shù)據(jù)采集系統(tǒng),采用ADCl210作12位轉(zhuǎn)換,轉(zhuǎn)換的數(shù)據(jù)按右對齊格式存放。CPU與接口之間用查詢方式交換數(shù)據(jù)。

2.分析與設(shè)計

ADCl210是無三態(tài)輸出鎖存功能的A/D轉(zhuǎn)換器,因此,它的數(shù)據(jù)線不能與系統(tǒng)數(shù)據(jù)總線直接連接,必須通過兩個具有三態(tài)鎖存能力的74LS244接到CPU的數(shù)據(jù)總線上。整個接口電路如圖10。12所示。圖中I/O端口地址由譯碼電路產(chǎn)生,其分配是:兩個數(shù)據(jù)口Y0(330H)和Y1(331H),一個轉(zhuǎn)換啟動的控制口Y2(332H)以及一個狀態(tài)口Y0(330H)。HOMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/43.編程

MOVDX,332H ;啟動轉(zhuǎn)換信號的端口

INAL,DX ;置SC=0,啟動轉(zhuǎn)換

MOVDX,330H ;狀態(tài)口L: INAL,DX ;查CC=0? ROLAL,1 ;若CC≠0,轉(zhuǎn)換未結(jié)束,則等待

JCL ;若CC=0,則轉(zhuǎn)換結(jié)束

MOVDX,330H ;74LS24.4(二)的端口,讀取高4位數(shù)

INAL,DX ANDAL,OFH ;屏蔽前面高4位,取高字節(jié)的低4位

MOVBH,AL ;保存高字節(jié)

MOVDX,331H ;74LS244(一)的端口,讀取低8位數(shù)

INAL,DX MOVBL,AI, ;保存低字節(jié)

HLTHOMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/4三、用電平啟動轉(zhuǎn)換的A/D轉(zhuǎn)換器接口設(shè)計

1.要求在8位數(shù)據(jù)采集系統(tǒng)中,采用AD570作A/D轉(zhuǎn)換。采集256個數(shù)據(jù),用查詢方式送到內(nèi)存。

2.分析

AD570是一個用電平啟動的8位逐次逼近A/D轉(zhuǎn)換芯片。其轉(zhuǎn)換啟動信號是D庀(BLANK/CONV),低電平有效,該信號變低電平時開始轉(zhuǎn)換,經(jīng)25us轉(zhuǎn)換才結(jié)束。在此期間,轉(zhuǎn)換啟動信號要一直保持為低電平。若提前變高,則轉(zhuǎn)換中止,無結(jié)果輸出。轉(zhuǎn)換結(jié)束信號是DR(DATAREADY),轉(zhuǎn)換過程中為高電平,轉(zhuǎn)換完畢變低。當它出現(xiàn)低電平,表示轉(zhuǎn)換結(jié)束,可以讀取數(shù)據(jù)。其時序關(guān)系如圖10.13所示。HOMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/43.設(shè)計

(1)硬件連接

AD570轉(zhuǎn)換芯片的數(shù)據(jù)輸出無三態(tài)鎖存器,不能直接與CPU數(shù)據(jù)總線相連,為此,電路中采用8255A并行接口芯片作為AD570與CPU的接口電路,如圖10.14所示。圖中,用8255A的A口作數(shù)據(jù)口,瀆取AD570的數(shù)據(jù)。用C口的PC0提供轉(zhuǎn)換啟動信號;用P巳接收轉(zhuǎn)換結(jié)束信號。

8255AAD570CPUPA0~7PC0PC7GNDA0~7B/CDRDGINA圖10.14AD570與CPU接口HOMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/4(2)軟件編程

MOVDX,303H ;8255A命令口

MOVAL,98H ;工作方式字

OUTDX,AL MOVAL,01H ;置PC0=1,使B/C=1準備發(fā)啟動信號

OUTDX,AL MOVAX,0040H ;內(nèi)存數(shù)據(jù)區(qū)段址

MOVES,AX MOVBX,00H ;偏移地址

MOVCX,0FFH ;采樣次數(shù)AGAIN:MOVAL,00H ;再置PC0=0,即置B/C=O OUTDX,AL ;啟動轉(zhuǎn)換并維持低電平WAIT1:MOVDX,302H ;查PC7=0,即查轉(zhuǎn)換結(jié)束DR=0? INAL,DX

HOMEBACK查詢方式的A/D轉(zhuǎn)換器接口電路設(shè)計10/4

SHLAL,1 JCWAIT1 ;未結(jié)束,等待;否則,讀數(shù)

MOVDX,300H ;從A口讀數(shù)

INAL,DX MOVES:[BX],AL ;存數(shù)于內(nèi)存

MOVDX,303H ;置PC0=1,使啟動信號B/C

變高電平

MOVAL,01H ;撤銷啟動信號

OUTDX,AL INCBX ;內(nèi)存加1LOOPAGAIN ;次數(shù)減1,未完,繼續(xù)

MOVAX,4C00H INT21HHOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5一、單板機系統(tǒng)的中斷方式數(shù)據(jù)采集系統(tǒng)設(shè)計

1.要求以TP86單板機為控制器,對單通道模擬信號采集512個8位數(shù)據(jù),采集到的數(shù)據(jù)以中斷方式讀人內(nèi)存,并送到D/A轉(zhuǎn)換器。

2.分析與設(shè)計

(1)ADC0804特性分析

ADC0804是—個單通道模擬量輸入,8位分辨率的MD轉(zhuǎn)換器。輸出有三態(tài)鎖存,可直接與系統(tǒng)數(shù)據(jù)總線相連。

ADC0804的轉(zhuǎn)換啟動信號由田CS·WR兩個信號組合產(chǎn)生,當這兩個信號同時為低電平時,啟動轉(zhuǎn)換。轉(zhuǎn)換結(jié)束信號為INTR,低電平有效,當轉(zhuǎn)換結(jié)束時,INTR為低電平,它反向后可以作中斷請求。HOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5(2)中斷控制的分析本例題是屬于用戶自行設(shè)計和配置中斷系統(tǒng)的應(yīng)用情況。為此,先設(shè)定82559A的使用條件。

8259A在單板機系統(tǒng)中是單片使用,設(shè)中斷類型號高5位為80H,邊沿觸發(fā),指定中斷結(jié)束方式。中斷請求是ADC0804的引腳INTR,它反向后接到8259A的中斷輸入線IR0上,這意味著ADC0804的中斷級別在TP86單板機系統(tǒng)中優(yōu)先級最高。地址總線的A1接到8259A的引腳Ao上,8259A的兩個端口地為0FFDCH(Ao=O)和0FFDEH(A0=1)。根據(jù)以上分析,沒計了TP86中斷方式的A/D轉(zhuǎn)換器接口電路,如圖10.15所示。HOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/53.程序設(shè)計其程序流程圖如圖10.16所示。程序如下:

STACKSEGMENTPARASTACK‘STACK’DB200DUP(0)STACKENDSDATASEGMENTBUFRDB512DUP(0)

ADCEQU0FFD4H ;ADC端口

PIC0EQU0FFDCH ;8259A的偶地址端口

PIC1EQU0FFDEH ;8259A的奇地址端口

DACEQU0FFD6H ;DAC端口DATAENDSCODESEGMENT ASSUMECS:CODE,DS:DATA,SS:STACK

;中斷向量裝入HOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5START: MOVAX,CODE MOVCS,AX MOVAX,DATA MOVDS,AX MOVAX,STACK MOVSS,AX MOVAX,00H MOVES,Ax ;設(shè)置00H段基址指向中斷向量表的存儲區(qū)

MOVBX,200H ;中斷號*4→BX MOVES:[BX],OFFSETREAD_INT ;裝入中斷向量的偏移值

PUSHCS POPAX ;取主程序的段址作為服務(wù)程序的段址

MOVES:[BX+2],AX ;裝人中斷向量的段值

MOVDI,OFFSETBUFR ;設(shè)置數(shù)據(jù)區(qū)首址

MOVCX,512 ;采樣次數(shù) ;8259A初始化

CLI;關(guān)中斷

MOVAL,13H ;寫ICW:(邊沿觸發(fā),單片,需要ICWa)

HOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5MOVDX,PICO;8259A端口(A0=0) OUTDX,AL MOVAL,80H ;寫ILW2(中斷號高5位) MOVDX,PIC1 ;8259A端口(A0=1) OUTDX,AL MOVAL,01H ;寫ICW4(非緩沖,正常結(jié)束,16位機) OUTDX,AL ;8259A端口(A0=1)

;開放IR0中斷請求

MOVDX,PIC1 ;8259A端口(A0=1) INAL,DX ;寫OCW1(允許IR0請求中斷) ANDAL,OFEH OUTDX,AL

;啟動轉(zhuǎn)換AGAIN:MOVAX,00H ;寫入的數(shù)據(jù)可以取任意值

MOVDX,ADC ;啟動轉(zhuǎn)換(Cs、WR同時有效) OUTDX,AL STI開中斷

HOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5 HLT ;等待中斷請求

CLI ;關(guān)中斷

DECCX ;次數(shù)減1 JNZAGAIN ;次數(shù)未到,繼續(xù)啟動轉(zhuǎn)換 ;屏蔽IR0中斷請求

MOVDX,PIC1 ;8259A端口(Ao=1) INAL,DX ;次數(shù)已到,屏蔽11%

ORAL,01H OUTDX,AL MOVAXOFF00H ;返回監(jiān)控

PUSHAX MOVAX,0000H PUSHAX RET

;中斷服務(wù)程序READ_INTPROCFAR PUSHAX ;寄存器進棧

PUSHDXHOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5PUSHDIMOVDX,ADCINAL,DX ;從ADC0804讀人數(shù)據(jù)

NOPNOPMOV[DI],AL ;讀人的數(shù)據(jù)存入內(nèi)存

MOVDX,DAC ;向DAC0832OUTDX,AL ;輸出數(shù)據(jù)

INCDI ;內(nèi)存加1MOVAL,60H ;寫OCW2(指定IR0中斷結(jié)束)MOVDX,PIC0 ;8259A端口(A0=0)OUTDX,ALIRET ;中斷返回

POPDI ;寄存器出棧

POPDXPOPAXREADINTENDPCODEENDSENDSTARTHOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5二、PC機系統(tǒng)的中斷方式數(shù)據(jù)采集系統(tǒng)設(shè)計

1.要求以PC機為控制器,采用中斷方式,進行8通道數(shù)據(jù)采集,采集1K字節(jié)。采集的數(shù)據(jù)在屏幕上顯示。為此,采用ADC0809作A/D轉(zhuǎn)換器,并利用系統(tǒng)的mQ2引入ADC外部中斷。接口中,端口地址分配為:30CH作轉(zhuǎn)換啟動的控制口和轉(zhuǎn)換結(jié)束的狀態(tài)口;30DH作中斷申請允許端口;30EH作通道選擇和讀數(shù)據(jù)端口。

2.分析

(1)ADC0809外部特性從圖10.17和圖10.18可以看出,ADC0809有8個模擬量輸人端(IN0-IN7),相應(yīng)設(shè)置3根模擬量通道地址線(ADDA—ADDc)用以編碼來選擇8個模擬量輸入通道。并且還設(shè)置1根地址鎖存允許信號ALE,高電子有效。HOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5(2)接口電路結(jié)構(gòu)形式本例采用GAL20V8作接口電路。其設(shè)計思想是利用GAL器件對信號的轉(zhuǎn)換功能,來協(xié)調(diào)CPU與ADC0809兩者之間信號線的不兼容性。(3)中斷處理由于本例題是利用系統(tǒng)的中斷資源,只需將ADC0890的轉(zhuǎn)換結(jié)束信號EOC連到系統(tǒng)總線的IRQ2上,并在程序中作兩件事,一是中斷向量的修改;二是對中斷控制器8259A的中斷屏蔽寄存器IMR和正在服務(wù)寄存器ISR進行操作。(4)數(shù)據(jù)顯示數(shù)據(jù)顯示有兩點:一是要把采集到的用十六進制表示的數(shù)據(jù)轉(zhuǎn)換成ASCII碼,才能送到屏幕去顯示;二是顯示格式,數(shù)據(jù)在屏幕上是采用一列顯示,還是滿屏顯示或分區(qū)顯示。HOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/53.設(shè)計

(1)硬件連接

圖10.20所示,對ADC0809的控制信號和中斷申請信號由GAL20V8產(chǎn)生,通道地址由數(shù)據(jù)線的低3位Do·D2編碼產(chǎn)生,ADC0809的輸出數(shù)據(jù)線直接連到系統(tǒng)的數(shù)據(jù)總線上,整個接口電路包括端口地址譯碼只用了一個GAL20V8芯片。

(2)軟件編程

STACKSEGMENTPARA‘STACK’DW200DUP(?)STACKENDSDATASEGMENTPARAPUBLIC‘DATA’ INTOA—OFFOW?,定義存儲單元

INTOASEGDW? BUFRDB1024DUP(O);定義內(nèi)存區(qū)

N=$_BUFR采樣次數(shù)

HOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5

STA_EOCEQU30CH ;ADC啟動轉(zhuǎn)換/讀轉(zhuǎn)換結(jié)束端口

ALE_OEEQU30EH ;ADC道鎖存/讀數(shù)據(jù)端口

INTENEQU30DH ;允許中斷申請端口INPUT_MESDB‘PLEASEINPUTCHANNELNO.(0—7)','$'

;定義輸人提示信息ERROR_MESDB‘CHANNELNo.ISINCORRECT:'(DH,OAH

;定義錯誤提示信息

BD'PLEASEINPUTCHANNELNo.AGAIN':'S'PORT DB(?) ;定義變量PORTDATAENDSCODESEGMENTASSUMEDS:DATA,ES:DATA;CS:CODE,SS:STACKADCPROCFARSTART:MOVAX,DS ;標準序

PUSHAX MOVAX,00 PUSHAX MOVAX,DATA ;給DS、ES測試值

MOVDS,AXHOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5 MOVES,AX

;提示輸入通道號

MOVAH,09H MOVDX,SEGINPUT_MES PUSIDS MOVDS,DX MOVDX,OFFSETINPU_ME5 INT21H POPDS

;輸入通道號

INPUT:MOVAH,08H INT21H CMPAL,’O’ ;檢查錯誤通道號

JBERROR ;有錯,重新輸入

CMPAL,,7,

JAERROR SUBAL,30H MOVPORT,AL ;無錯,保存通道號→PORT JMPINIT

;顯示出錯信息HOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5ERRORMOVAH,09H MOVDX,SEGERROR_MFS PUSHDS MOVDS,DX MOVDX,OFFSETERROR_MES INT21H POPDS JMPINTPUT ;有錯,重新輸入 ;修改中斷向量

INIT:MOVAX,350AH ;獲取原中斷IRQ,(OAH號)的向量

INT21H MOVINTOA_OFF,BX ;保存原中斷向量

MOVBX,ES MOVINTOA_SEG,BX CLI ;關(guān)中斷

MOVAX,250AH ;修改原中斷向量

MOVDX,SECNEW_INT ;DS:DX指向新中斷向量

PUSHDS MOVDS,DX MOVDX,OFFSETNEW_INT INT21HHOME

BACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5 POPDS INAl,,21H ;開放8259A的IRQ2 ANDAL,0FBH OUT21H,Al. ;寫入OCW1 MOVCX,N ;采集次數(shù)→CX MOVDI,OFFSETBUFR ;內(nèi)存首址

MOVAL,PORT ;發(fā)通道號

MOVDX,ALE_OE OUTDX,AL MOVAL,00H ;允許EOC申請中斷(D7=O) MOVDX,INTEN OUTDX,ALBEGIN:MOVAL,00H ;啟動ADC轉(zhuǎn)換

MOVDX,SFA_EOC OUTDX,AL STI ;開中斷

HLT ;等待中斷

CLI ;關(guān)中斷

DECCX ;次數(shù)減1 JNZBEA;IN ;末完,繼續(xù)HOME

BACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5

;恢復(fù)原中斷向量

MOVAX,250AH ;已完,恢復(fù)原中斷向量

MOVDX,INTOASEG ;DS:DX指向原中斷向量

PUSHDS MOVDS,DX MOVDXINTOA_OFF INT21H POPDS INAL,21H ;屏蔽8259A的IRQ2 ORAL,04H OUT21H,AL ;寫入OCW1 MOVAL,80H ;禁止EOC申請中斷(D7=1) MOVDX,INTE OUTDX,AL RET ;程序退出,返回DOSADCENDPNEW——INTPROCFAR ;中斷服務(wù)程序(新) PUSHAX PUSHDX PUSHDIHOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5 CLI ;關(guān)中斷

MOVDX,ALE_OE INAL,DX ;從ADC0809數(shù)據(jù)口讀數(shù)

NOP MOV[D1],AL ;保存數(shù)據(jù) ;十六進制一ASCH轉(zhuǎn)換及顯示

ANDAL,0F0H ;顯示高位數(shù)據(jù)

MOVCL,4 SHRAL,CL CMPAL,9 JAHEX ADDAL,30 JNIPNEXTHEX:ADDAL,37HNEXT:MOVDL,AL MOVAH,2 INT21H MOVAL,[DI] ANDAL,0FH ;顯示低位數(shù)據(jù)

CMPAL,9HOMEBACK中斷方式的A/D轉(zhuǎn)換器接口設(shè)計10/5 JAHEXT1 ADDAL,30 JMPNEXT1HEX1:ADDAL,37NEXT1:MOVDL,AL MOVAH,2 INT21H MOVDL,20H ;顯示空格

MOVAH,2 INT21H INCDI ;內(nèi)存地址加1 MOVAL,62H ;發(fā)中斷結(jié)束命令

OUT20H,AL ;寫入OCW2 STI ;開中斷

POPDI POPDX POPAX IRET ;中斷返回NEW_INTENDPCODEENDSENDSTARTHOMEBACK微型計算機系統(tǒng)的A/D.D/A通道10/8一、模擬通道的電路組成包括CPU、模擬量輸入接口、A/D轉(zhuǎn)換器(ADC)、采樣/保持器(S/H)和多路模擬開關(guān)(AMUX)。同樣,一個完整的控制系統(tǒng),除了功放與執(zhí)行元件之外,其余部分稱為D/A通道。它包括CPU、模擬量輸出接口、D/A轉(zhuǎn)換02(DAC)、多路模擬開關(guān)(AMUX)和輸出保持器(緩沖器)。1.多通道模擬開關(guān)由于計算機在某一時刻只能接收處理一路模擬量輸入,為了從多個模擬量中選取其中一個進行輸入,通常采用模擬多路開關(guān)來實現(xiàn)信號的分時切換。

2.采樣/保持器由于A/D轉(zhuǎn)換器完成一次轉(zhuǎn)換需要——定時間,對于高速變化的信號源,在轉(zhuǎn)換期間,其值可能已發(fā)生了變化,引起轉(zhuǎn)換誤差,因此,為了“凍結(jié)”時變信號的瞬時值,在A/D通道中采用采樣/保持器。HOMEBACK微型計算機系統(tǒng)的A/D.D/A通道10/8二、模擬通道的結(jié)構(gòu)形式

1.A/D通道的結(jié)構(gòu)形式

(1)單通道

①不帶采樣/保持器的單通道。用于直流或低頻模擬信號的

MD轉(zhuǎn)換。

②帶采樣/保持器的單通道。用于高速模擬信號的A/D轉(zhuǎn)換。

(2)多通道

①每個通道都帶有采樣/保持器和A/D轉(zhuǎn)換

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論