第9章ADDA轉(zhuǎn)換器接口_第1頁
第9章ADDA轉(zhuǎn)換器接口_第2頁
第9章ADDA轉(zhuǎn)換器接口_第3頁
第9章ADDA轉(zhuǎn)換器接口_第4頁
第9章ADDA轉(zhuǎn)換器接口_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2023/2/4計(jì)算機(jī)接口技術(shù)1第9章A/D與D/A轉(zhuǎn)換器接口本章主要內(nèi)容模擬量接口的作用A/D轉(zhuǎn)換器接口設(shè)計(jì)的任務(wù)與方法A/D轉(zhuǎn)換器接口應(yīng)用設(shè)計(jì)舉例D/A轉(zhuǎn)換器接口設(shè)計(jì)的任務(wù)與方法D/A轉(zhuǎn)換器接口應(yīng)用設(shè)計(jì)舉例2023/2/4計(jì)算機(jī)接口技術(shù)29.1

模擬量接口的作用

微型計(jì)算機(jī)在實(shí)時(shí)控制、在線動態(tài)測量和對物理過程進(jìn)行監(jiān)控,以及圖像、語音處理領(lǐng)域的應(yīng)用中,都要與一些連續(xù)變化的模擬量(如溫度、壓力、流量、位移、速度、光亮度、聲音、顏色等)打交道,但數(shù)字計(jì)算機(jī)本身只能識別和處理數(shù)字量,因此,必須經(jīng)過轉(zhuǎn)換器,把模擬量A轉(zhuǎn)換成數(shù)字量D,或?qū)?shù)字量D轉(zhuǎn)換成模擬量A,才能實(shí)現(xiàn)CPU與被控對象之間的信息交換。顯然,微機(jī)在面向過程控制、自動測量和自動監(jiān)控系統(tǒng)與各種被控、被測對象發(fā)生關(guān)系時(shí),需要設(shè)置一種“模擬量接口”。2023/2/4計(jì)算機(jī)接口技術(shù)3

模擬量接口電路的作用:把微處理器系統(tǒng)的離散的數(shù)字信號與模擬設(shè)備中連續(xù)變化的模擬信號電壓、電流之間建立起適配關(guān)系,以便計(jì)算機(jī)執(zhí)行控制與測量任務(wù)。從硬件角度來看,模擬量接口就是微處理器與A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器之間的連接電路,前者稱為模入接口,后者稱為模出接口。2023/2/4計(jì)算機(jī)接口技術(shù)49.2A/D轉(zhuǎn)換器功能:把模擬量變換成數(shù)字量分類:按分辨率可分為4位、6位、8位、10位、14位、16位和BCD碼的312位、512位等;按照轉(zhuǎn)換速度可分為超高速、高速、中速及低速等;按轉(zhuǎn)換原理可分為直接ADC(有逐次逼近型、并聯(lián)比較型等)和間接ADC(有電壓/時(shí)間轉(zhuǎn)換型(積分型)、電壓/頻率轉(zhuǎn)換型、電壓/脈寬轉(zhuǎn)換型等)。2023/2/4計(jì)算機(jī)接口技術(shù)59.2.1A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)1.分辨率

分辨率是指ADC能夠把模擬量轉(zhuǎn)換成二進(jìn)制數(shù)的位數(shù)。例如,用1個10位ADC轉(zhuǎn)換一個滿量程為5V的電壓,則它能分辨的最小電壓為5000mV/1024≈5mV。若模擬輸入值的變化小于5mV的電壓,則ADC無反映,輸出保持不變,即只能分辨出5mV以上的變化。同樣5V電壓,若采用12位ADC,則它能分辨的最小電壓為5000mV/4096≈1mV??梢?,ADC的數(shù)字量輸出位數(shù)越多,其分辨率就越高。2023/2/4計(jì)算機(jī)接口技術(shù)6

ADC的分辨率反映在它的輸出數(shù)據(jù)線的寬度上,如ADC0809的分辨率是8位,它的數(shù)據(jù)線也是8根;AD574A的分辨率是12位,它的數(shù)據(jù)線也是12根。

分辨率不同會影響ADC接口與系統(tǒng)數(shù)據(jù)總線的連接。當(dāng)分辨率即ADC的輸出數(shù)據(jù)線寬度大于微機(jī)系統(tǒng)數(shù)據(jù)總線寬度時(shí),就不能一次傳輸,而需兩次傳輸,要增加附加電路(緩沖寄存器),從而影響接口電路的組成及數(shù)據(jù)傳輸?shù)耐緩健?023/2/4計(jì)算機(jī)接口技術(shù)72.轉(zhuǎn)換時(shí)間

轉(zhuǎn)換時(shí)間是從輸入啟動轉(zhuǎn)換信號開始到轉(zhuǎn)換結(jié)束,得到穩(wěn)定的數(shù)字量輸出為止所需的時(shí)間,一般為ms級和μs級。

轉(zhuǎn)換時(shí)間的快慢將會影響ADC接口與CPU交換數(shù)據(jù)的方式。低速和中速ADC一般采用查詢或中斷方式,而高速ADC就應(yīng)采用DMA方式。2023/2/4計(jì)算機(jī)接口技術(shù)89.2.2A/D轉(zhuǎn)換器的外部特性

由于A/D轉(zhuǎn)換器內(nèi)部一般沒有設(shè)置供用戶訪問的寄存器,也沒有命令字。它的轉(zhuǎn)換操作是由其內(nèi)部硬件邏輯電路完成的,而不是它執(zhí)行內(nèi)部的命令完成的,因此,它不好用可編程特性的編程模型來表述。在分析A/D轉(zhuǎn)換器芯片時(shí),主要是看它的外部連接特性,其中轉(zhuǎn)換啟動信號是CPU對A/D轉(zhuǎn)換器唯一的控制信號。

從外部特性來看,無論是哪種ADC芯片,都必不可少地設(shè)置有4種基本外部信號線。這些信號線是實(shí)現(xiàn)A/D轉(zhuǎn)換操作的條件,也是設(shè)計(jì)ADC接口硬件電路的依據(jù)。2023/2/4計(jì)算機(jī)接口技術(shù)91.模擬信號輸入線

來自被轉(zhuǎn)換對象的模擬量輸入線,有單通道輸入與多通道輸入之分接口硬件電路的依據(jù)。2.?dāng)?shù)字量輸出線

ADC的數(shù)字量數(shù)據(jù)輸出線。數(shù)據(jù)線的根數(shù)表示ADC的分辨率。3.轉(zhuǎn)換啟動線

外部控制信號,此信號一到,A/D轉(zhuǎn)換才能開始,啟動轉(zhuǎn)換信號不到,ADC不會自動開始轉(zhuǎn)換,并且是發(fā)一次啟動信號只能轉(zhuǎn)換一次,采集一個數(shù)據(jù)。4.轉(zhuǎn)換結(jié)束線

轉(zhuǎn)換完畢后由ADC發(fā)出A/D轉(zhuǎn)換結(jié)束信號,利用它以查詢或中斷方式向微處理器報(bào)告轉(zhuǎn)換已經(jīng)完成。只有轉(zhuǎn)換結(jié)束信號出現(xiàn)時(shí),微處理器才可以開始讀取數(shù)據(jù)。2023/2/4計(jì)算機(jī)接口技術(shù)10幾種A/D轉(zhuǎn)換器芯片相同功能的引腳對照如表9.1所示。2023/2/4計(jì)算機(jī)接口技術(shù)119.3A/D轉(zhuǎn)換器接口設(shè)計(jì)的任務(wù)與方法由于接口連接的對象A/D轉(zhuǎn)換器自身的操作比較單一,因而要求外部對它實(shí)施的控制比較簡單,所以轉(zhuǎn)換器接口只需少數(shù)幾根信號線,采用并行接口就綽綽有余,甚至使用一些IC芯片也能滿足接口功能要求。但是,轉(zhuǎn)換器與CPU交換數(shù)據(jù)的方式多種多樣,查詢、中斷、DMA方式都有可能,因此在轉(zhuǎn)換器接口設(shè)計(jì)中會牽涉到對系統(tǒng)中斷、DMA資源的應(yīng)用。

A/D轉(zhuǎn)換器接口設(shè)計(jì)的任務(wù),主要有兩個方面:ADC如何與CPU進(jìn)行連接和如何與CPU交換數(shù)據(jù),有時(shí)還要考慮對所采集的數(shù)據(jù)進(jìn)行在線處理。2023/2/4計(jì)算機(jī)接口技術(shù)129.3.1A/D轉(zhuǎn)換器與CPU的連接在A/D轉(zhuǎn)換器與CPU的進(jìn)行連接時(shí),要注意分析它的4種外部信號線的特點(diǎn),采用不同的方法。1.ADC轉(zhuǎn)換的啟動信號

1)ADC的轉(zhuǎn)換啟動方式有脈沖啟動和電平啟動之分。若是脈沖啟動,則只需接口電路提供1個寬度滿足啟動要求的脈沖信號即可。一般采用IOW或IOR的脈寬就可以了。若是電平啟動,則要求啟動信號的電平在轉(zhuǎn)換過程中保持不變,否則(如中途撤銷)就會停止轉(zhuǎn)換而產(chǎn)生錯誤的結(jié)果。為此,就應(yīng)增加附加電路(如D觸發(fā)器、單穩(wěn)電路)或采用可編程并行I/O接口芯片來鎖存這個啟動信號,使之在轉(zhuǎn)換過程中維持不變。2023/2/4計(jì)算機(jī)接口技術(shù)13

2)ADC的轉(zhuǎn)換啟動信號有單個信號啟動和由多個信號組合起來的復(fù)合信號啟動之分。若是由單個信號啟動,如ADC0809的START,則只需接口電路提供1個START正脈沖信號。若是由復(fù)合信號啟動,如AD574A的CE(R/C=0),CS,則CE、R/C=0和CS三個信號要同時(shí)滿足要求才能啟動。

2.ADC模擬量輸入的控制信號

1)ADC的模擬信號輸入信號有多通道和單通道之分。若是多通道,則要求接口電路提供通道地址線及通道地址鎖存信號線,以便選擇與確定輸入模擬量的通道號。若是單通道,則不需要處理。2023/2/4計(jì)算機(jī)接口技術(shù)14

3.ADC數(shù)字量輸出的控制信號

1)ADC的數(shù)據(jù)輸出是否是三態(tài)鎖存器。若是,則ADC的輸出數(shù)據(jù)線可直接掛在CPU的數(shù)據(jù)總線上;否則,必須在ADC的輸出數(shù)據(jù)線與CPU的數(shù)據(jù)總線之間外加三態(tài)鎖存器才能連接。

2)ADC的分辨率與系統(tǒng)數(shù)據(jù)總線寬度是否一致。若一致,則數(shù)據(jù)只需1次傳輸,數(shù)據(jù)線可直接連接;若不一致,則數(shù)據(jù)需分批傳輸,應(yīng)增加附加電路(緩沖寄存器)。2023/2/4計(jì)算機(jī)接口技術(shù)15

4.ADC的轉(zhuǎn)換結(jié)束信號

A/D轉(zhuǎn)換結(jié)束后,用轉(zhuǎn)換結(jié)束信號通知CPU,轉(zhuǎn)換已經(jīng)結(jié)束,請求讀取數(shù)據(jù)。轉(zhuǎn)換結(jié)束信號的邏輯定義,有的是高電平有效,有的是低電平有效。轉(zhuǎn)換結(jié)束信號可用于查詢方式、中斷方式、DMA方式的申請信號。2023/2/4計(jì)算機(jī)接口技術(shù)169.3.2A/D轉(zhuǎn)換器與CPU之間的數(shù)據(jù)交換方式

采集的數(shù)據(jù)用什么方式傳輸?shù)絻?nèi)存,是A/D轉(zhuǎn)換器接口設(shè)計(jì),也是數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)中的一個重要內(nèi)容,因?yàn)閿?shù)據(jù)傳輸速度是關(guān)系到數(shù)據(jù)采集速率的重要因素。假定ADC的轉(zhuǎn)換時(shí)間為T,每次轉(zhuǎn)換后將數(shù)據(jù)傳輸?shù)街付ǖ膬?nèi)存單元所需的時(shí)間為τ,則采集速率的上限為f0=1/(T+τ)。所以,為了提高數(shù)據(jù)采集速率,一是采用高速A/D轉(zhuǎn)換芯片,使T盡量小;一是減少數(shù)據(jù)傳輸過程中所花的時(shí)間τ,特別是高速或超高速數(shù)據(jù)采集系統(tǒng),τ的減少顯得尤為重要。因此,需要研究ADC與CPU之間數(shù)據(jù)交換采用什么方式的問題。2023/2/4計(jì)算機(jī)接口技術(shù)17ADC與內(nèi)存之間交換數(shù)據(jù),根據(jù)不同的要求,可采用查詢、中斷、DMA方式,以及在板RAM技術(shù)。不同的方式使ADC接口電路的組成不同,編程的方法也不同。所謂在板RAM技術(shù)是針對超高速數(shù)據(jù)采集系統(tǒng),其ADC速度非???,采用DMA方式傳輸也跟不上轉(zhuǎn)換的速度,故在ADC板上設(shè)置RAM,把采集的數(shù)據(jù)先就近存放在RAM中,然后,再從板上的RAM取出數(shù)據(jù)送到內(nèi)存。這也是數(shù)據(jù)采集系統(tǒng)中為解決轉(zhuǎn)換速度快,而傳輸速度跟不上的一種方法。2023/2/4計(jì)算機(jī)接口技術(shù)189.3.3A/D轉(zhuǎn)換器的數(shù)據(jù)在線處理實(shí)際應(yīng)用中,對采集到的數(shù)據(jù)一般都要進(jìn)行一些處理,包括生成數(shù)據(jù)文件、存盤、顯示、打印、遠(yuǎn)距離傳輸?shù)?。有的還要將采集的數(shù)據(jù)作為重要參數(shù)參與運(yùn)算,進(jìn)行進(jìn)一步的加工。雖然這些處理不屬于ADC接口控制程序的內(nèi)容,但它們是A/D轉(zhuǎn)換之后,常常遇到的操作,因此,往往也把其中的一些操作放在A/D轉(zhuǎn)換程序之中。例如,將采集到的數(shù)據(jù)在屏幕上顯示出來,以便觀察A/D轉(zhuǎn)換的結(jié)果是否正確。又如,將前端機(jī)采集的數(shù)據(jù)生成數(shù)據(jù)文件,再傳輸?shù)缴衔粰C(jī)去進(jìn)行加工等。2023/2/4計(jì)算機(jī)接口技術(shù)199.3.4A/D轉(zhuǎn)換器接口設(shè)計(jì)需考慮的問題1.ADC的模擬量輸入是否是多通道?是,則需選擇通道號,應(yīng)提供通道選擇線;不是,則不做處理。2.ADC的分辨率是否大于系統(tǒng)數(shù)據(jù)總線寬度?是,則要分兩次傳輸,故需增加鎖存器,并提供鎖存器選通信號;不是,則不做處理。3.ADC芯片內(nèi)部是否有三態(tài)輸出鎖存器?無,則ADC的數(shù)據(jù)線不能與系統(tǒng)的數(shù)據(jù)線直接連接,故需增加三態(tài)鎖存器,并提供鎖存允許信號;有,則不做處理。4.ADC的啟動方式是脈沖觸發(fā)還是電平觸發(fā)?是脈沖,則提供脈沖信號;是電平,則提供電平信號,并保持到轉(zhuǎn)換結(jié)束。2023/2/4計(jì)算機(jī)接口技術(shù)205.A/D轉(zhuǎn)換的數(shù)據(jù)采用哪種傳輸方式?有無條件傳輸、查詢方式、中斷方式和DMA方式等多種方式選擇。傳輸?shù)姆绞讲煌涌诘挠布M成和軟件編程就不同。6.對A/D轉(zhuǎn)換的數(shù)據(jù)進(jìn)行什么樣的處理?有顯示、打印、生成文件存盤、遠(yuǎn)距離傳輸?shù)榷喾N處理。7.ADC接口電路采用什么元器件組成?有普通IC芯片、可編程并行口芯片、GAL器件等多種選擇。前面4項(xiàng)是由接口對象ADC決定的(可從芯片手冊中查到),用戶無法改變,只能按照它的要求在設(shè)計(jì)中給予滿足。后面3項(xiàng)是可以改變的,設(shè)計(jì)者應(yīng)根據(jù)設(shè)計(jì)目標(biāo)靈活選用。2023/2/4計(jì)算機(jī)接口技術(shù)219.4

查詢方式的ADC接口設(shè)

例9.1查詢方式的ADC接口設(shè)計(jì)1.要求要求利用ADC0804采集100個字節(jié)數(shù)據(jù),采集的數(shù)據(jù)以查詢方式傳輸?shù)絻?nèi)存BUFR區(qū)。接口電路采用普通IC芯片組成。

2.分析

按照9.3.4節(jié)的方法進(jìn)行分析,ADC0804是單個模擬量輸入,故不提供通道選擇信號。ADC0804的分辨率為8位,并具有三態(tài)輸出鎖存器,故可與系統(tǒng)數(shù)據(jù)總線直接相連。ADC0804的啟動方式為脈沖啟動,當(dāng)它的輸入引腳CS和WR兩個信號同時(shí)有效,就開始轉(zhuǎn)換。轉(zhuǎn)換結(jié)束信號是INTR,當(dāng)INTR=0,表示轉(zhuǎn)換結(jié)束。數(shù)據(jù)傳輸方式為查詢方式,故需將轉(zhuǎn)換結(jié)束狀態(tài)信號作為查詢的對象。

2023/2/4計(jì)算機(jī)接口技術(shù)223.設(shè)計(jì)(1)硬件設(shè)計(jì)由以上分析可知,本接口電路的任務(wù)是提供轉(zhuǎn)換啟動信號和轉(zhuǎn)換結(jié)束狀態(tài)信號,以及輸入8位數(shù)據(jù)的通路。為此,要設(shè)計(jì)端口地址譯碼電路,產(chǎn)生CS,并由CS和WR共同組成啟動信號。同時(shí),還要設(shè)置一個三態(tài)門,將轉(zhuǎn)換結(jié)束信號INTR引到數(shù)據(jù)線的D7上,以便CPU讀取狀態(tài)。而轉(zhuǎn)換器的8位數(shù)據(jù)線直接與系統(tǒng)數(shù)據(jù)線連接。接口電路原理如圖9.1所示。2023/2/4計(jì)算機(jī)接口技術(shù)23圖9.1查詢方式ADC接口電路原理圖2023/2/4計(jì)算機(jī)接口技術(shù)24(2)軟件編程

ADC接口控制程序,也就是數(shù)據(jù)采集程序,其程序的基本結(jié)構(gòu)是循環(huán)程序。因?yàn)閿?shù)據(jù)采集往往要采樣多個點(diǎn)的數(shù)據(jù),而每一次啟動,只能采集(轉(zhuǎn)換)1個數(shù)據(jù),所以,采集程序要循環(huán)執(zhí)行多次,直至采樣次數(shù)已到為止。

查詢方式數(shù)據(jù)采集流程圖如圖9.2所示。查詢方式數(shù)據(jù)采集匯編語言程序段和C語言程序段,見教材P166~167.

圖9.2查詢方式數(shù)據(jù)采集程序流程2023/2/4計(jì)算機(jī)接口技術(shù)259.5中斷方式的ADC接口設(shè)計(jì)

例9.2中斷方式的ADC接口設(shè)計(jì)

1.要求

采用ADC0809,從通道7采集100個字節(jié)數(shù)據(jù),采集的數(shù)據(jù)以中斷方式傳輸?shù)絻?nèi)存緩沖區(qū),并將轉(zhuǎn)換結(jié)束信號EOC連到IRQ4上,請求中斷。

2.分析要實(shí)現(xiàn)上述設(shè)計(jì)要求,至少有3個方面的問題需要考慮:被控對象ADC0809的外部特性、接口電路結(jié)構(gòu)形式、中斷處理。下面分別進(jìn)行分析。(1)ADC0809的外部特性

ADC0809的外部引腳如圖9.3所示,內(nèi)部邏輯如圖9.4所示。

ADC0809的時(shí)序如圖9.5所示。2023/2/4計(jì)算機(jī)接口技術(shù)26圖9.4ADC0809內(nèi)部邏輯原理圖圖9.3ADC0809引腳圖2023/2/4計(jì)算機(jī)接口技術(shù)27ADC0809的時(shí)序如圖9.5所示。圖9.5ADC0809的時(shí)序2023/2/4計(jì)算機(jī)接口技術(shù)28

按照9.3.4節(jié)的方法,結(jié)合圖9.3、圖9.4進(jìn)行分析,ADC0809有8個模擬量輸入端(IN0~I(xiàn)N7),相應(yīng)設(shè)置3根模擬量通道地址線(ADDA~ADDC),用以編碼來選擇8個模擬量輸入通道。并且還設(shè)置1根通道地址鎖存允許信號ALE,高電平有效。當(dāng)選擇通道地址時(shí),需使ALE變高,鎖存由ADDA~ADDC編碼所選中的通道號,將該通道的模擬量接入ADC。ADC0809的分辨為8,有8根數(shù)字量輸出線(D7~D0),帶有三態(tài)輸出鎖存緩沖器。并設(shè)置了1根數(shù)據(jù)輸出允許信號OE,高電平有效。當(dāng)讀數(shù)據(jù)時(shí),要使OE置高,打開三態(tài)輸出緩沖器,把轉(zhuǎn)換的數(shù)字量送到數(shù)據(jù)線上。2023/2/4計(jì)算機(jī)接口技術(shù)29(2)接口電路結(jié)構(gòu)形式接口電路采用可編程并行接口芯片82C55A,并把轉(zhuǎn)換結(jié)束信號EOC連到系統(tǒng)總線的IRQ4實(shí)現(xiàn)中斷傳送。(3)中斷處理由于本例題是利用系統(tǒng)的中斷資源,故不需要進(jìn)行中斷系統(tǒng)的硬件設(shè)計(jì)和82C59A的初始化,只需做兩件事:①中斷向量的修改:修改的對象是IRQ4的中斷向量,修改的步驟和方法見第5.9.1節(jié)。②對82C59A兩個命令的使用:在主程序中用命令OCW1屏蔽/開放IRQ4的中斷請求;在服務(wù)程序中返回主程序之前,用OCW2發(fā)中斷結(jié)束EOI,清除IRQ4在中斷控制器內(nèi)部ISR寄存器中置1的位。2023/2/4計(jì)算機(jī)接口技術(shù)303.設(shè)計(jì)(1)硬件設(shè)計(jì)根據(jù)上述分析可知,本接口電路要提供ADC0809模擬量通道號選擇信號、啟動轉(zhuǎn)換信號、讀數(shù)據(jù)允許信號。這些信號都可由82C55A接口芯片實(shí)現(xiàn)。而EOC的中斷請求直接連到系統(tǒng)總線的IRQ4上。中斷方式的ADC接口電路如圖9.6所示。2023/2/4計(jì)算機(jī)接口技術(shù)31圖9.6中斷方式的ADC接口電路原理2023/2/4計(jì)算機(jī)接口技術(shù)32(a)主程序流程(b)中斷服務(wù)程序(2)軟件設(shè)計(jì)本例的程序流程圖如圖9.7所示。整個程序分主程序和中斷服務(wù)程序兩部分。2023/2/4計(jì)算機(jī)接口技術(shù)33中斷方式數(shù)據(jù)采集匯編語言程序段和C語言程序段見教材P170~1722023/2/4計(jì)算機(jī)接口技術(shù)349.6DMA方式的ADC接口設(shè)計(jì)例9.3DMA方式的ADC接口設(shè)計(jì)1.要求

8位ADC共采集4KB數(shù)據(jù),采集的數(shù)據(jù)用DMA方式送到從30400H單元開始的內(nèi)存保存,以待處理,內(nèi)存地址以加1方式遞增。使用DMAC82C37的通道1,采用單一的傳輸方式。2.分析與設(shè)計(jì)

1)接口電路組成

采用DMA方式的數(shù)據(jù)采集系統(tǒng)電路如圖9.8所示。2023/2/4計(jì)算機(jī)接口技術(shù)35

DMA方式的ADC接口電路包括ADC、采樣保持器S/H、A/D轉(zhuǎn)換啟動邏輯U1、DMA申請寄存器U2及DMA回答信號DACK1邏輯等部分。DMA控制器82C37A未在圖9.8中畫出,只在圖9.8的左側(cè)畫出了它的部分信號線。圖9.8DMA方式的ADC接口原理圖2023/2/4計(jì)算機(jī)接口技術(shù)363.DMAC傳輸參數(shù)的設(shè)置

從6.6節(jié)用戶對系統(tǒng)DMA資源的應(yīng)用可知,由于系統(tǒng)的DMA控制器初始化已經(jīng)被系統(tǒng)在上電時(shí)設(shè)置好了,用戶要做的僅僅是設(shè)置相關(guān)的DMA傳輸參數(shù),然后等待A/D轉(zhuǎn)換器申請DMA傳送。在傳送開始之前,還要填寫頁面地址寄存器,將高于16位以上的地址寫入頁面地址寄存器。例如,假設(shè)傳送的內(nèi)存首地址是32000H,則頁面寄存器的內(nèi)容為3,基地址寄存器中內(nèi)容為2000H。如果尋址范圍不超過16位地址,則可不使用寫頁面地址寄存器。本例根據(jù)題意,需要啟用通道1的頁面地址寄存器。

2023/2/4計(jì)算機(jī)接口技術(shù)37數(shù)據(jù)采集中DMA傳輸參數(shù)設(shè)置的匯編語言程序段如下:

ADC_SETUPPROCNEARCLI

;關(guān)中斷;設(shè)置工作方式

MOVAL,00000101B

;屏蔽通道1,禁止DREQ1的申請

OUT0AH,ALMOVAL,01000101B

;方式命令字(通道1,單傳方式,地址加1,;非自動預(yù)置,DMA寫)OUTOBH,AL ;送入方式寄存器

OUTOCH,AL

;清先/后觸發(fā)器(軟命令);設(shè)置頁面地址(最高4位地址)

MOVAL,03H

;頁面地址(最高4位地址)

OUT83H,AL ;通道1的頁面寄存器2023/2/4計(jì)算機(jī)接口技術(shù)38

;設(shè)置基地址(低16位)

MOVAL,00H

;低8位地址

OUT02H,AL ;通道1的基地址寄存器

MOVAL,04H

;高8位地址

OUT02H,AL ;通道1的基地址寄存器;設(shè)置字節(jié)數(shù)

MOVAL,0FFH

;字節(jié)數(shù)低8位

OUT03H,AL ;通道1的字節(jié)計(jì)數(shù)器

MOVAL,0FH

;字節(jié)數(shù)高8位

OUT03H,AL ;通道1的字節(jié)計(jì)數(shù)器

STI

;開中斷

MOVAL,00000001B

;開通通道1,準(zhǔn)備接受DREQ1的申請

OUT0AH,ALRETADC_SETUPENDP2023/2/4計(jì)算機(jī)接口技術(shù)39//數(shù)據(jù)采集中DMA傳輸參數(shù)設(shè)置的C語言程序段如下:voidADC_Setup(){ disable(); //關(guān)中斷

outportb(0x0a,0x05); //屏蔽通道1,禁止DREQ1申請outportb(0x0b,0x45); //工作方式字:單傳方式,地址

//加1,非自動預(yù)置,DMA寫,通道

outportb(0x0c,0x45); //清先/后觸發(fā)器(軟命令)

//設(shè)置頁面地址(最高4位地址)

outportb(0x83,0x03); //頁面地址(最高4位地址)

//設(shè)置基地址(低16位)

outportb(0x02,0x00); //低8位地址

outportb(0x02,0x04); //高8位地址

2023/2/4計(jì)算機(jī)接口技術(shù)40

//設(shè)置字節(jié)數(shù)

outportb(0x03,0x0ff); //字節(jié)數(shù)低8位

outportb(0x03,0x0f); //字節(jié)數(shù)高8位

enable(); //開中斷

outportb(0x0a,0x01); //開通通道1,允許DREQ1申請}

以上程序可作為數(shù)據(jù)采集系統(tǒng)的一個子程序供主程序調(diào)用。主程序應(yīng)包括A/D轉(zhuǎn)換定時(shí)啟動等部分,不在此列出。2023/2/4計(jì)算機(jī)接口技術(shù)419.7D/A轉(zhuǎn)換器9.7.1

D/A轉(zhuǎn)換器的主要技術(shù)指標(biāo)1.分辨率分辨率是指DAC能夠把多少位二進(jìn)制數(shù)轉(zhuǎn)換成模擬量。例如,DAC0832能夠把8位二進(jìn)制數(shù)轉(zhuǎn)換成電流,故DAC0832的分辨率是8位;AD390能夠把12位二進(jìn)制數(shù)轉(zhuǎn)換成電壓,故AD390的分辨率是12位。分辨率體現(xiàn)在DAC的數(shù)據(jù)輸入線的寬度,因此,不同的分辨率將影響DAC與CPU的數(shù)據(jù)線連接。當(dāng)分辨率大于數(shù)據(jù)總線寬度時(shí),數(shù)據(jù)分幾次傳輸,需增加附加電路(緩沖寄存器)。2.轉(zhuǎn)換時(shí)間轉(zhuǎn)換時(shí)間是指數(shù)字量從輸入到DAC開始至完成轉(zhuǎn)換,模擬量輸出達(dá)到最終值所需的時(shí)間。DAC的轉(zhuǎn)換時(shí)間很快,一般為μs級和ns級。2023/2/4計(jì)算機(jī)接口技術(shù)429.7.2D/A轉(zhuǎn)換器的外部特性DAC的外部引腳信號線包括:1.數(shù)字信號輸入線;2.模擬信號輸出線;3.CS信號線和WR(或WR1,WR2)信號線,,用于將數(shù)字量打入DAC轉(zhuǎn)換器;4.數(shù)據(jù)輸入鎖存控制線;5.模擬量輸出通道地址線。2023/2/4計(jì)算機(jī)接口技術(shù)43其中,前3種信號線是DAC的基本信號,后2種是附加信號線。附加信號線有時(shí)也集成在DAC芯片內(nèi)部。當(dāng)DAC芯片內(nèi)部設(shè)置了三態(tài)輸入鎖存器,則在外部就有輸入鎖存允許信號線。有的芯片(如DAC0832)設(shè)置了兩級輸入鎖存器,相應(yīng)地在外部就有兩級輸入鎖存允許信號線。如果有的芯片(如AD390)設(shè)置了輸出模擬量開關(guān),則在外部就有模擬量輸出通道地址選擇信號。另外,在DAC的外部信號線中,沒有像ADC那樣專門的“轉(zhuǎn)換啟動”信號線,也沒有“轉(zhuǎn)換結(jié)束”信號線。2023/2/4計(jì)算機(jī)接口技術(shù)449.8D/A轉(zhuǎn)換器接口設(shè)計(jì)的任務(wù)與方法9.8.1D/A轉(zhuǎn)換器與CPU的連接DAC轉(zhuǎn)換器與ADC轉(zhuǎn)換器的操作有不同的特點(diǎn),首先,DAC工作時(shí),只要CPU把數(shù)據(jù)送到它的輸入端,寫入DAC,DAC就開始轉(zhuǎn)換,而不需設(shè)置專門的啟動信號去觸發(fā)轉(zhuǎn)換開始。其次,DAC也不提供轉(zhuǎn)換結(jié)束之類的狀態(tài)信號,所以CPU向DAC傳輸數(shù)據(jù)時(shí),也不必查詢DAC的狀態(tài),只要兩次傳輸數(shù)據(jù)之間的間隔不小于DAC的轉(zhuǎn)換時(shí)間,就能得到正確結(jié)果。正因?yàn)镈AC不設(shè)專門的轉(zhuǎn)換啟動信號線和轉(zhuǎn)換結(jié)束信號線,使接口對DAC提供的信號線少,連接也就更簡單。2023/2/4計(jì)算機(jī)接口技術(shù)459.8.2D/A轉(zhuǎn)換器與CPU之間的數(shù)據(jù)交換方式

D/A轉(zhuǎn)換器與CPU交換數(shù)據(jù)的方式很單一,既不用查詢,也不用中斷,更不用DMA方式,是采用無條件方式與CPU交換數(shù)據(jù),因此軟件編程很簡單,其主要工作是向DAC寫數(shù)據(jù)和解決CPU與DAC之間的數(shù)據(jù)緩沖問題。2023/2/4計(jì)算機(jī)接口技術(shù)469.8.3D/A轉(zhuǎn)換器接口設(shè)計(jì)需考慮的問題

分析與設(shè)計(jì)DAC接口,相對于ADC接口來講,比較簡單,可從以下幾個方面入手:1.DAC的分辨率是否大于系統(tǒng)數(shù)據(jù)總線的寬度?是,則要分兩次傳輸,故需增加鎖存器,并提供鎖存選通信號;不是,則不做處理2.DAC芯片內(nèi)部是否有三態(tài)輸入鎖存器?無,則數(shù)據(jù)線不能與系統(tǒng)的DB直接連接,故需增加三態(tài)輸入鎖存器,并提供鎖存允許信號;有,則不做處理。3.DAC的模擬量輸出是否是多通道?是,則需選擇通道號,并提供選擇線;不是,則不做處理。4.DAC的啟動方式,只有脈沖觸發(fā)一種。DAC不設(shè)專門的轉(zhuǎn)換啟動信號,是利用CS和IOW共同進(jìn)行假寫操作,來實(shí)現(xiàn)脈沖啟動的。5.DAC的數(shù)據(jù)傳輸方式,只有無條件傳輸一種。6.DAC接口電路采用什么元器件組成?有普通IC芯片、可編程并行口芯片、GAL器件等多種選擇。2023/2/4計(jì)算機(jī)接口技術(shù)479.9鋸齒波三角波發(fā)生器器接口設(shè)計(jì)例9.4DAC0832接口設(shè)計(jì)1.要求要求通過DAC0832產(chǎn)生鋸齒波和三角波,按任意鍵,停止波形輸出。2.分析因?yàn)楸贿B的對象是DAC0832,故首先按照9.8.3節(jié)的方法,分析DAC0832的連接特性及工作方式。然后根據(jù)外部連接特性及工作方式進(jìn)行接口設(shè)計(jì)。2023/2/4計(jì)算機(jī)接口技術(shù)48(1)外部特性

DAC0832是分辨率為8位的乘法型DAC,芯片內(nèi)部帶有兩級緩沖寄存器,DAC0832的內(nèi)部結(jié)構(gòu)和外部引腳如圖9.9所示。圖9.9DAC0832的內(nèi)部結(jié)構(gòu)和外部引腳2023/2/4計(jì)算機(jī)接口技術(shù)49DAC0832的工作原理圖9.9中DAC0832有兩個獨(dú)立的緩沖器,要轉(zhuǎn)換的數(shù)據(jù)先送到第一級緩沖器,但不進(jìn)行轉(zhuǎn)換,只有數(shù)據(jù)送到第二級緩沖器時(shí)才能開始轉(zhuǎn)換,因而稱為雙緩沖。為此,設(shè)置了5個信號控制這兩個緩沖器進(jìn)行數(shù)據(jù)的鎖存。其中,ILE(輸入鎖存允許)、CS(片選)和WR1(寫信號1)3個信號組合控制第一級緩沖器的鎖存,WR2(寫信號2)和XFER(傳遞控制)兩個信號組合控制第二級緩沖寄存器的鎖存。對于鎖存控制信號LE1和LE2,當(dāng)LE1(LE2)=1時(shí),不鎖存;當(dāng)LE1(LE2)=0時(shí),進(jìn)行鎖存。因此當(dāng)ILE端為高電平,并且CPU執(zhí)行OUT指令時(shí),則與同時(shí)為低電平,使得LE1=1,8位數(shù)據(jù)送到第一級緩沖器;只有當(dāng)CPU寫操作完畢,和都變高電平時(shí),才能使LE1=0,對輸入數(shù)據(jù)鎖存,實(shí)現(xiàn)第一級緩沖。同理,當(dāng)XFER與WR2同時(shí)為低電平時(shí),使得LE2=1,第一級緩沖的數(shù)據(jù)送到第二級緩沖器;當(dāng)XFER和WR2上升沿使LE2=0時(shí),將這個數(shù)據(jù)鎖存在第二級緩沖器中,實(shí)現(xiàn)第二級緩沖,并開始轉(zhuǎn)換。2023/2/4計(jì)算機(jī)接口技術(shù)50DAC0832工作的時(shí)序關(guān)系DAC0832工作的時(shí)序關(guān)系如圖9.10所示。圖中表示,兩個數(shù)據(jù),數(shù)據(jù)1和數(shù)據(jù)2分別用CS1和CS2鎖存到兩個DAC0832的第一級緩沖器中,最后用XFER信號的上升沿將它們同時(shí)鎖存到各自的第二級緩沖器,開始D/A轉(zhuǎn)換。圖9.10DAC0832時(shí)序圖2023/2/4計(jì)算機(jī)接口技術(shù)51(2)DAC0832的工作方式DAC0832有單緩沖、雙緩沖和直通3種工作方式。直通就是不進(jìn)行緩沖,CPU送來的數(shù)字量直接送到第二級緩沖器,并開始轉(zhuǎn)換。此時(shí),ILE端加高電平,其他控制信號都接低電平。單緩沖是只進(jìn)行一級緩沖,具體可用第一組或第二組控制信號對第一級或第二級緩沖器進(jìn)行控制。雙緩沖是進(jìn)行兩級緩沖,用兩組控制信號分別進(jìn)行控制。一般用于多片DAC0832同時(shí)開始轉(zhuǎn)換。2023/2/4計(jì)算機(jī)接口技術(shù)52

3.設(shè)計(jì)(1)硬件設(shè)計(jì)采用82C55A作為DAC與CPU之間的接口芯片,并把82C55A的A口作為數(shù)據(jù)輸出,而B口的PB0~PB4

5根線作為控制信號來控制DAC0832的工作方式及轉(zhuǎn)換操作。DAC0832的接口電路如圖9.11所示。圖9.11DAC0832作函數(shù)波形發(fā)生器2023/2/4計(jì)算機(jī)接口技術(shù)53(2)軟件編程

根據(jù)設(shè)計(jì)要求產(chǎn)生連續(xù)的鋸齒波,可知本例的D/A轉(zhuǎn)換程序是一個循環(huán)結(jié)構(gòu),其程序流程圖如圖9.12所示。圖9.12產(chǎn)生鋸齒波的程序流程圖2023/2/4計(jì)算機(jī)接口技術(shù)54①鋸齒波發(fā)生器程序段鋸齒波發(fā)生器匯編語言程序段如下:CODESEGMENTASSUMECS:CODE,DS:CODEORG100HSTART:MOVAX,CSMOVDS,AX

;8255A初始化

MOVDX,303H ;82C55A的命令口

MOVAL,10000000B

;82C55A的方式字

OUTDX,AL

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

MOVDX,301H ;82C55A的B口地址

MOVAL,00010000B

;置DAC0832為直通工作方式,ILE置1;CS、WR1、WR2、XFER均置為0OUTDX,AL2023/2/4計(jì)算機(jī)接口技術(shù)55

;生成鋸齒波的循環(huán)

MOVAL,0H

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

LOP:MOVDX,300H ;82C55A的A口地址

OUTDX,AL ;AL的值送DAC0832MOVBL,AL ;保存AL→BLMOVAH,0BH ;檢查是否有任意鍵按下

INT21HCMPAL,0FFHJESTOP ;有,則停止輸出波形

MOVAL,BL ;無,恢復(fù)AL的值

INCAL

;數(shù)據(jù)加1

JMPLOP

;繼續(xù)循環(huán)輸出波形

STOP:MOVAX,4C00H ;退出

INT21HCODEENDSENDSTART2023/2/4計(jì)算機(jī)接口技術(shù)56//鋸齒波發(fā)生器C語言程序段如下:2023/2/4計(jì)算機(jī)接口技術(shù)57②

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論