微型計(jì)算機(jī)接口第9章ADDA轉(zhuǎn)換器接口.ppt
《微型計(jì)算機(jī)接口第9章ADDA轉(zhuǎn)換器接口.ppt》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《微型計(jì)算機(jī)接口第9章ADDA轉(zhuǎn)換器接口.ppt(72頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
2019/12/10,計(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ì)舉例,2019/12/10,計(jì)算機(jī)接口技術(shù),2,9.1模擬量接口的作用,微型計(jì)算機(jī)在實(shí)時(shí)控制、在線(xiàn)動(dòng)態(tài)測(cè)量和對(duì)物理過(guò)程進(jìn)行監(jiān)控,以及圖像、語(yǔ)音處理領(lǐng)域的應(yīng)用中,都要與一些連續(xù)變化的模擬量(如溫度、壓力、流量、位移、速度、光亮度、聲音、顏色等)打交道,但數(shù)字計(jì)算機(jī)本身只能識(shí)別和處理數(shù)字量,因此,必須經(jīng)過(guò)轉(zhuǎn)換器,把模擬量A轉(zhuǎn)換成數(shù)字量D,或?qū)?shù)字量D轉(zhuǎn)換成模擬量A,才能實(shí)現(xiàn)CPU與被控對(duì)象之間的信息交換。顯然,微機(jī)在面向過(guò)程控制、自動(dòng)測(cè)量和自動(dòng)監(jiān)控系統(tǒng)與各種被控、被測(cè)對(duì)象發(fā)生關(guān)系時(shí),需要設(shè)置一種“模擬量接口”。,2019/12/10,計(jì)算機(jī)接口技術(shù),3,模擬量接口電路的作用:把微處理器系統(tǒng)的離散的數(shù)字信號(hào)與模擬設(shè)備中連續(xù)變化的模擬信號(hào)電壓、電流之間建立起適配關(guān)系,以便計(jì)算機(jī)執(zhí)行控制與測(cè)量任務(wù)。從硬件角度來(lái)看,模擬量接口就是微處理器與A/D轉(zhuǎn)換器和D/A轉(zhuǎn)換器之間的連接電路,前者稱(chēng)為模入接口,后者稱(chēng)為模出接口。,2019/12/10,計(jì)算機(jī)接口技術(shù),4,9.2A/D轉(zhuǎn)換器,在數(shù)據(jù)采集和過(guò)程控制中,被采集對(duì)象往往是連續(xù)變化的物理量(如溫度、壓力。聲波等),由于計(jì)算機(jī)只能處理離散的數(shù)字量,需要對(duì)連續(xù)變化的物理轉(zhuǎn)換為數(shù)字量,這一操作過(guò)程就是A/D轉(zhuǎn)換。功能:把模擬量變換成數(shù)字量分類(lèi):按分辨率可分為4位、6位、8位、10位、14位、16位和BCD碼的312位、512位等;按照轉(zhuǎn)換速度可分為超高速、高速、中速及低速等;按轉(zhuǎn)換原理可分為直接ADC(有逐次逼近型、并聯(lián)比較型等)和間接ADC(有電壓/時(shí)間轉(zhuǎn)換型(積分型)、電壓/頻率轉(zhuǎn)換型、電壓/脈寬轉(zhuǎn)換型等)。,2019/12/10,計(jì)算機(jī)接口技術(shù),5,9.2.1A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo),1.分辨率分辨率是指ADC能夠把模擬量轉(zhuǎn)換成二進(jìn)制數(shù)的位數(shù)。例如,用1個(gè)10位ADC轉(zhuǎn)換一個(gè)滿(mǎn)量程為5V的電壓,則它能分辨的最小電壓為5000mV/1024≈5mV。若模擬輸入值的變化小于5mV的電壓,則ADC無(wú)反映,輸出保持不變,即只能分辨出5mV以上的變化。同樣5V電壓,若采用12位ADC,則它能分辨的最小電壓為5000mV/4096≈1mV??梢?jiàn),ADC的數(shù)字量輸出位數(shù)越多,其分辨率就越高。,2019/12/10,計(jì)算機(jī)接口技術(shù),6,ADC的分辨率反映在它的輸出數(shù)據(jù)線(xiàn)的寬度上,如ADC0809的分辨率是8位,它的數(shù)據(jù)線(xiàn)也是8根;AD574A的分辨率是12位,它的數(shù)據(jù)線(xiàn)也是12根。分辨率不同會(huì)影響ADC接口與系統(tǒng)數(shù)據(jù)總線(xiàn)的連接。當(dāng)分辨率即ADC的輸出數(shù)據(jù)線(xiàn)寬度大于微機(jī)系統(tǒng)數(shù)據(jù)總線(xiàn)寬度時(shí),就不能一次傳輸,而需兩次傳輸,要增加附加電路(緩沖寄存器),從而影響接口電路的組成及數(shù)據(jù)傳輸?shù)耐緩健?2019/12/10,計(jì)算機(jī)接口技術(shù),7,2.轉(zhuǎn)換時(shí)間轉(zhuǎn)換時(shí)間是從輸入啟動(dòng)轉(zhuǎn)換信號(hào)開(kāi)始到轉(zhuǎn)換結(jié)束,得到穩(wěn)定的數(shù)字量輸出為止所需的時(shí)間,一般為ms級(jí)和μs級(jí)。一般:常見(jiàn)有超高速(轉(zhuǎn)換時(shí)間<1ns)、高速(轉(zhuǎn)換時(shí)間<1s)、中速(轉(zhuǎn)換時(shí)間<1ms)和低速(轉(zhuǎn)換時(shí)間<1s)等。如果采集對(duì)象是動(dòng)態(tài)連續(xù)信號(hào),要求f采≥2f信,也就是說(shuō)必須在信號(hào)的一個(gè)周期內(nèi)采集2個(gè)以上的數(shù)據(jù),才能保證信號(hào)形態(tài)被還原(避免出殃“假頻”),這就是“最小采樣”原理。轉(zhuǎn)換時(shí)間的快慢將會(huì)影響ADC接口與CPU交換數(shù)據(jù)的方式。低速和中速ADC一般采用查詢(xún)或中斷方式,而高速ADC就應(yīng)采用DMA方式。,3.絕對(duì)精度:指A/D轉(zhuǎn)換器實(shí)際輸出與理論值之間的誤差,一般采用數(shù)字量的最低有效位作為衡量單位(如1/2LSB)。4.相對(duì)精度:當(dāng)模擬量變化時(shí),A/D轉(zhuǎn)換器輸出的數(shù)字量按比例變化的程度。,,A/D轉(zhuǎn)換器的控制步驟:發(fā)啟動(dòng)換轉(zhuǎn)信號(hào)——取轉(zhuǎn)換結(jié)束標(biāo)志——讀結(jié)果。A/D轉(zhuǎn)換器與CPU進(jìn)行數(shù)據(jù)交換的方式:查詢(xún)方式和中斷方式影響A/D轉(zhuǎn)換器接口的因素:(1)轉(zhuǎn)換器分辨率能夠輸出的二進(jìn)制數(shù)據(jù)的位數(shù)(2)轉(zhuǎn)換器的數(shù)據(jù)輸出結(jié)構(gòu)是否是可控三態(tài)輸出,可控則…..不可控……(3)轉(zhuǎn)換器的啟動(dòng)方式有脈沖和電平兩種方式(4)讀取結(jié)果的數(shù)據(jù)傳送方式數(shù)據(jù)的傳送方式有查詢(xún)方式、中斷方式、DMA方式,2019/12/10,計(jì)算機(jī)接口技術(shù),10,9.2.2A/D轉(zhuǎn)換器的外部特性由于A/D轉(zhuǎn)換器內(nèi)部一般沒(méi)有設(shè)置供用戶(hù)訪問(wèn)的寄存器,也沒(méi)有命令字。它的轉(zhuǎn)換操作是由其內(nèi)部硬件邏輯電路完成的,而不是它執(zhí)行內(nèi)部的命令完成的,因此,它不好用可編程特性的編程模型來(lái)表述。在分析A/D轉(zhuǎn)換器芯片時(shí),主要是看它的外部連接特性,其中轉(zhuǎn)換啟動(dòng)信號(hào)是CPU對(duì)A/D轉(zhuǎn)換器唯一的控制信號(hào)。從外部特性來(lái)看,無(wú)論是哪種ADC芯片,都必不可少地設(shè)置有4種基本外部信號(hào)線(xiàn)。這些信號(hào)線(xiàn)是實(shí)現(xiàn)A/D轉(zhuǎn)換操作的條件,也是設(shè)計(jì)ADC接口硬件電路的依據(jù)。,2019/12/10,計(jì)算機(jī)接口技術(shù),11,1.模擬信號(hào)輸入線(xiàn)來(lái)自被轉(zhuǎn)換對(duì)象的模擬量輸入線(xiàn),有單通道輸入與多通道輸入之分接口硬件電路的依據(jù)。2.?dāng)?shù)字量輸出線(xiàn)ADC的數(shù)字量數(shù)據(jù)輸出線(xiàn)。數(shù)據(jù)線(xiàn)的根數(shù)表示ADC的分辨率。3.轉(zhuǎn)換啟動(dòng)線(xiàn)外部控制信號(hào),此信號(hào)一到,A/D轉(zhuǎn)換才能開(kāi)始,啟動(dòng)轉(zhuǎn)換信號(hào)不到,ADC不會(huì)自動(dòng)開(kāi)始轉(zhuǎn)換,并且是發(fā)一次啟動(dòng)信號(hào)只能轉(zhuǎn)換一次,采集一個(gè)數(shù)據(jù)。4.轉(zhuǎn)換結(jié)束線(xiàn)轉(zhuǎn)換完畢后由ADC發(fā)出A/D轉(zhuǎn)換結(jié)束信號(hào),利用它以查詢(xún)或中斷方式向微處理器報(bào)告轉(zhuǎn)換已經(jīng)完成。只有轉(zhuǎn)換結(jié)束信號(hào)出現(xiàn)時(shí),微處理器才可以開(kāi)始讀取數(shù)據(jù)。,,,2019/12/10,計(jì)算機(jī)接口技術(shù),12,幾種A/D轉(zhuǎn)換器芯片相同功能的引腳對(duì)照如表9.1所示。,ADC實(shí)例(1)8位ADC連接與編程ADC0809是逐次逼近式的8位ADC芯片,引腳和內(nèi)部結(jié)構(gòu)圖。IN0-IN7八路模擬量輸入端;ADDA,ADDB,ADDC地址輸入端,選通輸入端;(它們的編碼決定8個(gè)輸入中的一個(gè))ALE地址鎖存允許信號(hào);START轉(zhuǎn)換啟動(dòng)信號(hào)輸入端;D0-D7數(shù)字量輸出端;EOC轉(zhuǎn)換結(jié)束信息輸入端;OE輸出允許信號(hào);VCC,GND電壓輸入端和地線(xiàn);VREF+,VREF-正負(fù)基準(zhǔn)電壓輸入端CLOCK時(shí)鐘信號(hào)輸入端,(a),2019/12/10,計(jì)算機(jī)接口技術(shù),15,9.3A/D轉(zhuǎn)換器接口設(shè)計(jì)的任務(wù)與方法,由于接口連接的對(duì)象A/D轉(zhuǎn)換器自身的操作比較單一,因而要求外部對(duì)它實(shí)施的控制比較簡(jiǎn)單,所以轉(zhuǎn)換器接口只需少數(shù)幾根信號(hào)線(xiàn),采用并行接口就綽綽有余,甚至使用一些IC芯片也能滿(mǎn)足接口功能要求。但是,轉(zhuǎn)換器與CPU交換數(shù)據(jù)的方式多種多樣,查詢(xún)、中斷、DMA方式都有可能,因此在轉(zhuǎn)換器接口設(shè)計(jì)中會(huì)牽涉到對(duì)系統(tǒng)中斷、DMA資源的應(yīng)用。A/D轉(zhuǎn)換器接口設(shè)計(jì)的任務(wù),主要有兩個(gè)方面:ADC如何與CPU進(jìn)行連接和如何與CPU交換數(shù)據(jù),有時(shí)還要考慮對(duì)所采集的數(shù)據(jù)進(jìn)行在線(xiàn)處理。,2019/12/10,計(jì)算機(jī)接口技術(shù),16,9.3.1A/D轉(zhuǎn)換器與CPU的連接,在A/D轉(zhuǎn)換器與CPU的進(jìn)行連接時(shí),要注意分析它的4種外部信號(hào)線(xiàn)的特點(diǎn),采用不同的方法。1.ADC轉(zhuǎn)換的啟動(dòng)信號(hào)1)ADC的轉(zhuǎn)換啟動(dòng)方式有脈沖啟動(dòng)和電平啟動(dòng)之分。若是脈沖啟動(dòng),則只需接口電路提供1個(gè)寬度滿(mǎn)足啟動(dòng)要求的脈沖信號(hào)即可。一般采用IOW或IOR的脈寬就可以了。若是電平啟動(dòng),則要求啟動(dòng)信號(hào)的電平在轉(zhuǎn)換過(guò)程中保持不變,否則(如中途撤銷(xiāo))就會(huì)停止轉(zhuǎn)換而產(chǎn)生錯(cuò)誤的結(jié)果。為此,就應(yīng)增加附加電路(如D觸發(fā)器、單穩(wěn)電路)或采用可編程并行I/O接口芯片來(lái)鎖存這個(gè)啟動(dòng)信號(hào),使之在轉(zhuǎn)換過(guò)程中維持不變。,2019/12/10,計(jì)算機(jī)接口技術(shù),17,2)ADC的轉(zhuǎn)換啟動(dòng)信號(hào)有單個(gè)信號(hào)啟動(dòng)和由多個(gè)信號(hào)組合起來(lái)的復(fù)合信號(hào)啟動(dòng)之分。若是由單個(gè)信號(hào)啟動(dòng),如ADC0809的START,則只需接口電路提供1個(gè)START正脈沖信號(hào)。若是由復(fù)合信號(hào)啟動(dòng),如AD574A的CE(R/C=0),CS,則CE、R/C=0和CS三個(gè)信號(hào)要同時(shí)滿(mǎn)足要求才能啟動(dòng)。,2.ADC模擬量輸入的控制信號(hào)1)ADC的模擬信號(hào)輸入信號(hào)有多通道和單通道之分。若是多通道,則要求接口電路提供通道地址線(xiàn)及通道地址鎖存信號(hào)線(xiàn),以便選擇與確定輸入模擬量的通道號(hào)。若是單通道,則不需要處理。,2019/12/10,計(jì)算機(jī)接口技術(shù),18,3.ADC數(shù)字量輸出的控制信號(hào)1)ADC的數(shù)據(jù)輸出是否是三態(tài)鎖存器。若是,則ADC的輸出數(shù)據(jù)線(xiàn)可直接掛在CPU的數(shù)據(jù)總線(xiàn)上;否則,必須在ADC的輸出數(shù)據(jù)線(xiàn)與CPU的數(shù)據(jù)總線(xiàn)之間外加三態(tài)鎖存器才能連接。2)ADC的分辨率與系統(tǒng)數(shù)據(jù)總線(xiàn)寬度是否一致。若一致,則數(shù)據(jù)只需1次傳輸,數(shù)據(jù)線(xiàn)可直接連接;若不一致,則數(shù)據(jù)需分批傳輸,應(yīng)增加附加電路(緩沖寄存器)。,2019/12/10,計(jì)算機(jī)接口技術(shù),19,4.ADC的轉(zhuǎn)換結(jié)束信號(hào)A/D轉(zhuǎn)換結(jié)束后,用轉(zhuǎn)換結(jié)束信號(hào)通知CPU,轉(zhuǎn)換已經(jīng)結(jié)束,請(qǐng)求讀取數(shù)據(jù)。轉(zhuǎn)換結(jié)束信號(hào)的邏輯定義,有的是高電平有效,有的是低電平有效。轉(zhuǎn)換結(jié)束信號(hào)可用于查詢(xún)方式、中斷方式、DMA方式的申請(qǐng)信號(hào)。,2019/12/10,計(jì)算機(jī)接口技術(shù),20,9.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ì)中的一個(gè)重要內(nèi)容,因?yàn)閿?shù)據(jù)傳輸速度是關(guān)系到數(shù)據(jù)采集速率的重要因素。假定ADC的轉(zhuǎn)換時(shí)間為T(mén),每次轉(zhuǎn)換后將數(shù)據(jù)傳輸?shù)街付ǖ膬?nèi)存單元所需的時(shí)間為τ,則采集速率的上限為f0=1/(T+τ)。所以,為了提高數(shù)據(jù)采集速率,一是采用高速A/D轉(zhuǎn)換芯片,使T盡量?。灰皇菧p少數(shù)據(jù)傳輸過(guò)程中所花的時(shí)間τ,特別是高速或超高速數(shù)據(jù)采集系統(tǒng),τ的減少顯得尤為重要。因此,需要研究ADC與CPU之間數(shù)據(jù)交換采用什么方式的問(wèn)題。,2019/12/10,計(jì)算機(jī)接口技術(shù),21,ADC與內(nèi)存之間交換數(shù)據(jù),根據(jù)不同的要求,可采用查詢(xún)、中斷、DMA方式,以及在板RAM技術(shù)。不同的方式使ADC接口電路的組成不同,編程的方法也不同。所謂在板RAM技術(shù)是針對(duì)超高速數(shù)據(jù)采集系統(tǒng),其ADC速度非??欤捎肈MA方式傳輸也跟不上轉(zhuǎn)換的速度,故在ADC板上設(shè)置RAM,把采集的數(shù)據(jù)先就近存放在RAM中,然后,再?gòu)陌迳系腞AM取出數(shù)據(jù)送到內(nèi)存。這也是數(shù)據(jù)采集系統(tǒng)中為解決轉(zhuǎn)換速度快,而傳輸速度跟不上的一種方法。,2019/12/10,計(jì)算機(jī)接口技術(shù),22,9.3.3A/D轉(zhuǎn)換器的數(shù)據(jù)在線(xiàn)處理實(shí)際應(yīng)用中,對(duì)采集到的數(shù)據(jù)一般都要進(jìn)行一些處理,包括生成數(shù)據(jù)文件、存盤(pán)、顯示、打印、遠(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ù)在屏幕上顯示出來(lái),以便觀察A/D轉(zhuǎn)換的結(jié)果是否正確。又如,將前端機(jī)采集的數(shù)據(jù)生成數(shù)據(jù)文件,再傳輸?shù)缴衔粰C(jī)去進(jìn)行加工等。,2019/12/10,計(jì)算機(jī)接口技術(shù),23,9.3.4A/D轉(zhuǎn)換器接口設(shè)計(jì)需考慮的問(wèn)題1.ADC的模擬量輸入是否是多通道?是,則需選擇通道號(hào),應(yīng)提供通道選擇線(xiàn);不是,則不做處理。2.ADC的分辨率是否大于系統(tǒng)數(shù)據(jù)總線(xiàn)寬度?是,則要分兩次傳輸,故需增加鎖存器,并提供鎖存器選通信號(hào);不是,則不做處理。3.ADC芯片內(nèi)部是否有三態(tài)輸出鎖存器?無(wú),則ADC的數(shù)據(jù)線(xiàn)不能與系統(tǒng)的數(shù)據(jù)線(xiàn)直接連接,故需增加三態(tài)鎖存器,并提供鎖存允許信號(hào);有,則不做處理。4.ADC的啟動(dòng)方式是脈沖觸發(fā)還是電平觸發(fā)?是脈沖,則提供脈沖信號(hào);是電平,則提供電平信號(hào),并保持到轉(zhuǎn)換結(jié)束。,2019/12/10,計(jì)算機(jī)接口技術(shù),24,5.A/D轉(zhuǎn)換的數(shù)據(jù)采用哪種傳輸方式?有無(wú)條件傳輸、查詢(xún)方式、中斷方式和DMA方式等多種方式選擇。傳輸?shù)姆绞讲煌?,接口的硬件組成和軟件編程就不同。6.對(duì)A/D轉(zhuǎn)換的數(shù)據(jù)進(jìn)行什么樣的處理?有顯示、打印、生成文件存盤(pán)、遠(yuǎn)距離傳輸?shù)榷喾N處理。7.ADC接口電路采用什么元器件組成?有普通IC芯片、可編程并行口芯片、GAL器件等多種選擇。前面4項(xiàng)是由接口對(duì)象ADC決定的(可從芯片手冊(cè)中查到),用戶(hù)無(wú)法改變,只能按照它的要求在設(shè)計(jì)中給予滿(mǎn)足。后面3項(xiàng)是可以改變的,設(shè)計(jì)者應(yīng)根據(jù)設(shè)計(jì)目標(biāo)靈活選用。,,,,,,,(1)設(shè)ADC0809的8個(gè)模擬通道地址為300H~307H,畫(huà)連線(xiàn)試將圖中左側(cè)的信號(hào)與圖中右側(cè)的有關(guān)引腳連接起來(lái)。(2)若對(duì)IN0通道的模擬電壓進(jìn)行轉(zhuǎn)換得到的數(shù)字量為9BH,計(jì)算輸入的模擬電壓UIN0。,,2019/12/10,計(jì)算機(jī)接口技術(shù),26,9.4查詢(xún)方式的ADC接口設(shè),例9.1查詢(xún)方式的ADC接口設(shè)計(jì),1.要求要求利用ADC0804采集100個(gè)字節(jié)數(shù)據(jù),采集的數(shù)據(jù)以查詢(xún)方式傳輸?shù)絻?nèi)存BUFR區(qū)。接口電路采用普通IC芯片組成。2.分析按照9.3.4節(jié)的方法進(jìn)行分析,ADC0804是單個(gè)模擬量輸入,故不提供通道選擇信號(hào)。ADC0804的分辨率為8位,并具有三態(tài)輸出鎖存器,故可與系統(tǒng)數(shù)據(jù)總線(xiàn)直接相連。ADC0804的啟動(dòng)方式為脈沖啟動(dòng),當(dāng)它的輸入引腳CS和WR兩個(gè)信號(hào)同時(shí)有效,就開(kāi)始轉(zhuǎn)換。轉(zhuǎn)換結(jié)束信號(hào)是INTR,當(dāng)INTR=0,表示轉(zhuǎn)換結(jié)束。數(shù)據(jù)傳輸方式為查詢(xún)方式,故需將轉(zhuǎn)換結(jié)束狀態(tài)信號(hào)作為查詢(xún)的對(duì)象。,2019/12/10,計(jì)算機(jī)接口技術(shù),27,,3.設(shè)計(jì)(1)硬件設(shè)計(jì)由以上分析可知,本接口電路的任務(wù)是提供轉(zhuǎn)換啟動(dòng)信號(hào)和轉(zhuǎn)換結(jié)束狀態(tài)信號(hào),以及輸入8位數(shù)據(jù)的通路。為此,要設(shè)計(jì)端口地址譯碼電路,產(chǎn)生CS,并由CS和WR共同組成啟動(dòng)信號(hào)。同時(shí),還要設(shè)置一個(gè)三態(tài)門(mén),將轉(zhuǎn)換結(jié)束信號(hào)INTR引到數(shù)據(jù)線(xiàn)的D7上,以便CPU讀取狀態(tài)。而轉(zhuǎn)換器的8位數(shù)據(jù)線(xiàn)直接與系統(tǒng)數(shù)據(jù)線(xiàn)連接。接口電路原理如圖9.1所示。,2019/12/10,計(jì)算機(jī)接口技術(shù),28,圖9.1查詢(xún)方式ADC接口電路原理圖,2019/12/10,計(jì)算機(jī)接口技術(shù),29,(2)軟件編程ADC接口控制程序,也就是數(shù)據(jù)采集程序,其程序的基本結(jié)構(gòu)是循環(huán)程序。因?yàn)閿?shù)據(jù)采集往往要采樣多個(gè)點(diǎn)的數(shù)據(jù),而每一次啟動(dòng),只能采集(轉(zhuǎn)換)1個(gè)數(shù)據(jù),所以,采集程序要循環(huán)執(zhí)行多次,直至采樣次數(shù)已到為止。查詢(xún)方式數(shù)據(jù)采集流程圖如圖9.2所示。查詢(xún)方式數(shù)據(jù)采集匯編語(yǔ)言程序段和C語(yǔ)言程序段,見(jiàn)教材P166~167.,圖9.2查詢(xún)方式數(shù)據(jù)采集程序流程,2019/12/10,計(jì)算機(jī)接口技術(shù),30,9.5中斷方式的ADC接口設(shè)計(jì)例9.2中斷方式的ADC接口設(shè)計(jì)1.要求采用ADC0809,從通道7采集100個(gè)字節(jié)數(shù)據(jù),采集的數(shù)據(jù)以中斷方式傳輸?shù)絻?nèi)存緩沖區(qū),并將轉(zhuǎn)換結(jié)束信號(hào)EOC連到IRQ4上,請(qǐng)求中斷。2.分析要實(shí)現(xiàn)上述設(shè)計(jì)要求,至少有3個(gè)方面的問(wèn)題需要考慮:被控對(duì)象ADC0809的外部特性、接口電路結(jié)構(gòu)形式、中斷處理。下面分別進(jìn)行分析。(1)ADC0809的外部特性ADC0809的外部引腳如圖9.3所示,內(nèi)部邏輯如圖9.4所示。ADC0809的時(shí)序如圖9.5所示。,2019/12/10,計(jì)算機(jī)接口技術(shù),31,圖9.4ADC0809內(nèi)部邏輯原理圖,圖9.3ADC0809引腳圖,2019/12/10,計(jì)算機(jī)接口技術(shù),32,ADC0809的時(shí)序如圖9.5所示。,圖9.5ADC0809的時(shí)序,2019/12/10,計(jì)算機(jī)接口技術(shù),33,按照9.3.4節(jié)的方法,結(jié)合圖9.3、圖9.4進(jìn)行分析,ADC0809有8個(gè)模擬量輸入端(IN0~I(xiàn)N7),相應(yīng)設(shè)置3根模擬量通道地址線(xiàn)(ADDA~ADDC),用以編碼來(lái)選擇8個(gè)模擬量輸入通道。并且還設(shè)置1根通道地址鎖存允許信號(hào)ALE,高電平有效。當(dāng)選擇通道地址時(shí),需使ALE變高,鎖存由ADDA~ADDC編碼所選中的通道號(hào),將該通道的模擬量接入ADC。ADC0809的分辨為8,有8根數(shù)字量輸出線(xiàn)(D7~D0),帶有三態(tài)輸出鎖存緩沖器。并設(shè)置了1根數(shù)據(jù)輸出允許信號(hào)OE,高電平有效。當(dāng)讀數(shù)據(jù)時(shí),要使OE置高,打開(kāi)三態(tài)輸出緩沖器,把轉(zhuǎn)換的數(shù)字量送到數(shù)據(jù)線(xiàn)上。,2019/12/10,計(jì)算機(jī)接口技術(shù),34,(2)接口電路結(jié)構(gòu)形式接口電路采用可編程并行接口芯片82C55A,并把轉(zhuǎn)換結(jié)束信號(hào)EOC連到系統(tǒng)總線(xiàn)的IRQ4實(shí)現(xiàn)中斷傳送。(3)中斷處理由于本例題是利用系統(tǒng)的中斷資源,故不需要進(jìn)行中斷系統(tǒng)的硬件設(shè)計(jì)和82C59A的初始化,只需做兩件事:①中斷向量的修改:修改的對(duì)象是IRQ4的中斷向量,修改的步驟和方法見(jiàn)第5.9.1節(jié)。②對(duì)82C59A兩個(gè)命令的使用:在主程序中用命令OCW1屏蔽/開(kāi)放IRQ4的中斷請(qǐng)求;在服務(wù)程序中返回主程序之前,用OCW2發(fā)中斷結(jié)束EOI,清除IRQ4在中斷控制器內(nèi)部ISR寄存器中置1的位。,,2019/12/10,計(jì)算機(jī)接口技術(shù),35,3.設(shè)計(jì)(1)硬件設(shè)計(jì)根據(jù)上述分析可知,本接口電路要提供ADC0809模擬量通道號(hào)選擇信號(hào)、啟動(dòng)轉(zhuǎn)換信號(hào)、讀數(shù)據(jù)允許信號(hào)。這些信號(hào)都可由82C55A接口芯片實(shí)現(xiàn)。而EOC的中斷請(qǐng)求直接連到系統(tǒng)總線(xiàn)的IRQ4上。中斷方式的ADC接口電路如圖9.6所示。,2019/12/10,計(jì)算機(jī)接口技術(shù),36,圖9.6中斷方式的ADC接口電路原理,2019/12/10,計(jì)算機(jī)接口技術(shù),37,,(a)主程序流程,(b)中斷服務(wù)程序,(2)軟件設(shè)計(jì)本例的程序流程圖如圖9.7所示。整個(gè)程序分主程序和中斷服務(wù)程序兩部分。,2019/12/10,計(jì)算機(jī)接口技術(shù),38,中斷方式數(shù)據(jù)采集匯編語(yǔ)言程序段和C語(yǔ)言程序段見(jiàn)教材P170~172,2019/12/10,計(jì)算機(jī)接口技術(shù),39,9.6DMA方式的ADC接口設(shè)計(jì),例9.3DMA方式的ADC接口設(shè)計(jì),1.要求8位ADC共采集4KB數(shù)據(jù),采集的數(shù)據(jù)用DMA方式送到從30400H單元開(kāi)始的內(nèi)存保存,以待處理,內(nèi)存地址以加1方式遞增。使用DMAC82C37的通道1,采用單一的傳輸方式。,2.分析與設(shè)計(jì)1)接口電路組成采用DMA方式的數(shù)據(jù)采集系統(tǒng)電路如圖9.8所示。,2019/12/10,計(jì)算機(jī)接口技術(shù),40,DMA方式的ADC接口電路包括ADC、采樣保持器S/H、A/D轉(zhuǎn)換啟動(dòng)邏輯U1、DMA申請(qǐng)寄存器U2及DMA回答信號(hào)DACK1邏輯等部分。DMA控制器82C37A未在圖9.8中畫(huà)出,只在圖9.8的左側(cè)畫(huà)出了它的部分信號(hào)線(xiàn)。,圖9.8DMA方式的ADC接口原理圖,2019/12/10,計(jì)算機(jī)接口技術(shù),41,3.DMAC傳輸參數(shù)的設(shè)置,從6.6節(jié)用戶(hù)對(duì)系統(tǒng)DMA資源的應(yīng)用可知,由于系統(tǒng)的DMA控制器初始化已經(jīng)被系統(tǒng)在上電時(shí)設(shè)置好了,用戶(hù)要做的僅僅是設(shè)置相關(guān)的DMA傳輸參數(shù),然后等待A/D轉(zhuǎn)換器申請(qǐng)DMA傳送。在傳送開(kāi)始之前,還要填寫(xiě)頁(yè)面地址寄存器,將高于16位以上的地址寫(xiě)入頁(yè)面地址寄存器。例如,假設(shè)傳送的內(nèi)存首地址是32000H,則頁(yè)面寄存器的內(nèi)容為3,基地址寄存器中內(nèi)容為2000H。如果尋址范圍不超過(guò)16位地址,則可不使用寫(xiě)頁(yè)面地址寄存器。本例根據(jù)題意,需要啟用通道1的頁(yè)面地址寄存器。,2019/12/10,計(jì)算機(jī)接口技術(shù),42,數(shù)據(jù)采集中DMA傳輸參數(shù)設(shè)置的匯編語(yǔ)言程序段如下:,ADC_SETUPPROCNEARCLI;關(guān)中斷;設(shè)置工作方式MOVAL,00000101B;屏蔽通道1,禁止DREQ1的申請(qǐng)OUT0AH,ALMOVAL,01000101B;方式命令字(通道1,單傳方式,地址加1,;非自動(dòng)預(yù)置,DMA寫(xiě))OUTOBH,AL;送入方式寄存器OUTOCH,AL;清先/后觸發(fā)器(軟命令);設(shè)置頁(yè)面地址(最高4位地址)MOVAL,03H;頁(yè)面地址(最高4位地址)OUT83H,AL;通道1的頁(yè)面寄存器,2019/12/10,計(jì)算機(jī)接口技術(shù),43,;設(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;開(kāi)中斷MOVAL,00000001B;開(kāi)通通道1,準(zhǔn)備接受DREQ1的申請(qǐng)OUT0AH,ALRETADC_SETUPENDP,2019/12/10,計(jì)算機(jī)接口技術(shù),44,//數(shù)據(jù)采集中DMA傳輸參數(shù)設(shè)置的C語(yǔ)言程序段如下:,voidADC_Setup(){disable();//關(guān)中斷outportb(0 x0a,0 x05);//屏蔽通道1,禁止DREQ1申請(qǐng)outportb(0 x0b,0 x45);//工作方式字:?jiǎn)蝹鞣绞?,地?/加1,非自動(dòng)預(yù)置,DMA寫(xiě),通道outportb(0 x0c,0 x45);//清先/后觸發(fā)器(軟命令)//設(shè)置頁(yè)面地址(最高4位地址)outportb(0 x83,0 x03);//頁(yè)面地址(最高4位地址)//設(shè)置基地址(低16位)outportb(0 x02,0 x00);//低8位地址outportb(0 x02,0 x04);//高8位地址,2019/12/10,計(jì)算機(jī)接口技術(shù),45,//設(shè)置字節(jié)數(shù)outportb(0 x03,0 x0ff);//字節(jié)數(shù)低8位outportb(0 x03,0 x0f);//字節(jié)數(shù)高8位enable();//開(kāi)中斷outportb(0 x0a,0 x01);//開(kāi)通通道1,允許DREQ1申請(qǐng)},以上程序可作為數(shù)據(jù)采集系統(tǒng)的一個(gè)子程序供主程序調(diào)用。主程序應(yīng)包括A/D轉(zhuǎn)換定時(shí)啟動(dòng)等部分,不在此列出。,2019/12/10,計(jì)算機(jī)接口技術(shù),46,9.7D/A轉(zhuǎn)換器9.7.1D/A轉(zhuǎn)換器的主要技術(shù)指標(biāo)D/A轉(zhuǎn)換器一般是根據(jù)自己的需要選擇相應(yīng)數(shù)據(jù)位寬度和速度的D/A轉(zhuǎn)換芯片,在選擇D/A轉(zhuǎn)換器芯片時(shí)一般考慮如下指標(biāo)(主要參數(shù)):,1.分辨率分辨率是指DAC能夠把多少位二進(jìn)制數(shù)轉(zhuǎn)換成模擬量,或1個(gè)二進(jìn)制增量所代表的模擬量大小。例如,DAC0832能夠把8位二進(jìn)制數(shù)轉(zhuǎn)換成電流,故DAC0832的分辨率是8位(1/255);AD390能夠把12位二進(jìn)制數(shù)轉(zhuǎn)換成電壓,故AD390的分辨率是12位。分辨率體現(xiàn)在DAC的數(shù)據(jù)輸入線(xiàn)的寬度,因此,不同的分辨率將影響DAC與CPU的數(shù)據(jù)線(xiàn)連接。當(dāng)分辨率大于數(shù)據(jù)總線(xiàn)寬度時(shí),數(shù)據(jù)分幾次傳輸,需增加附加電路(緩沖寄存器)。2.轉(zhuǎn)換時(shí)間轉(zhuǎn)換時(shí)間是指數(shù)字量從輸入到DAC開(kāi)始至完成轉(zhuǎn)換,模擬量輸出達(dá)到最終值所需的時(shí)間。DAC的轉(zhuǎn)換時(shí)間很快,一般為μs級(jí)和ns級(jí)。,3.絕對(duì)精度指D/A轉(zhuǎn)換器實(shí)際輸出與理論值之間的誤差,一般采用數(shù)字量的最低有效位作為衡量單位(如1/2LSB)。如D/A分辨率為20mV,則精度為10mV.4.相對(duì)精度:當(dāng)數(shù)字量變化時(shí),D/A轉(zhuǎn)換器輸出的模擬量按比例變化的程度。,DAC芯片與CPU或系統(tǒng)總路線(xiàn)連接時(shí),可從數(shù)據(jù)總線(xiàn)寬度是否與DAC位數(shù)據(jù)匹配、DAC是否具有數(shù)據(jù)寄存器兩個(gè)方面來(lái)慮,一般有下面幾種情況:(1)當(dāng)DAC位數(shù)與數(shù)據(jù)總線(xiàn)寬度相同,具有數(shù)據(jù)緩沖能力時(shí),可直接與CPU連接。(2)當(dāng)DAC位數(shù)與數(shù)據(jù)總線(xiàn)寬度相同,DAC沒(méi)有數(shù)據(jù)寄存器時(shí),必須外加鎖存器或I/O接口芯片(如8255A等)才能與CPU連接。當(dāng)DAC位數(shù)大于數(shù)據(jù)總線(xiàn)寬度,DAC無(wú)論有無(wú)數(shù)據(jù)寄存器時(shí),都必須外加鎖存器或I/O接口芯片才能與CPU相連接。1.8位DAC連接DAC0832是一片典型的8位DAC芯片,其引腳和內(nèi)部結(jié)構(gòu)如圖所示。有兩級(jí)輸入鎖存器,以差動(dòng)電流的形式輸出模擬量。,DAC0832,2019/12/10,計(jì)算機(jī)接口技術(shù),49,9.7.2D/A轉(zhuǎn)換器的外部特性,DAC的外部引腳信號(hào)線(xiàn)包括:1.數(shù)字信號(hào)輸入線(xiàn);2.模擬信號(hào)輸出線(xiàn);3.CS信號(hào)線(xiàn)和WR(或WR1,WR2)信號(hào)線(xiàn),,用于將數(shù)字量打入DAC轉(zhuǎn)換器;4.數(shù)據(jù)輸入鎖存控制線(xiàn);5.模擬量輸出通道地址線(xiàn)。,2019/12/10,計(jì)算機(jī)接口技術(shù),50,其中,前3種信號(hào)線(xiàn)是DAC的基本信號(hào),后2種是附加信號(hào)線(xiàn)。附加信號(hào)線(xiàn)有時(shí)也集成在DAC芯片內(nèi)部。當(dāng)DAC芯片內(nèi)部設(shè)置了三態(tài)輸入鎖存器,則在外部就有輸入鎖存允許信號(hào)線(xiàn)。有的芯片(如DAC0832)設(shè)置了兩級(jí)輸入鎖存器,相應(yīng)地在外部就有兩級(jí)輸入鎖存允許信號(hào)線(xiàn)。如果有的芯片(如AD390)設(shè)置了輸出模擬量開(kāi)關(guān),則在外部就有模擬量輸出通道地址選擇信號(hào)。另外,在DAC的外部信號(hào)線(xiàn)中,沒(méi)有像ADC那樣專(zhuān)門(mén)的“轉(zhuǎn)換啟動(dòng)”信號(hào)線(xiàn),也沒(méi)有“轉(zhuǎn)換結(jié)束”信號(hào)線(xiàn)。,2019/12/10,計(jì)算機(jī)接口技術(shù),51,9.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ù)送到它的輸入端,寫(xiě)入DAC,DAC就開(kāi)始轉(zhuǎn)換,而不需設(shè)置專(zhuān)門(mén)的啟動(dòng)信號(hào)去觸發(fā)轉(zhuǎn)換開(kāi)始。其次,DAC也不提供轉(zhuǎn)換結(jié)束之類(lèi)的狀態(tài)信號(hào),所以CPU向DAC傳輸數(shù)據(jù)時(shí),也不必查詢(xún)DAC的狀態(tài),只要兩次傳輸數(shù)據(jù)之間的間隔不小于DAC的轉(zhuǎn)換時(shí)間,就能得到正確結(jié)果。正因?yàn)镈AC不設(shè)專(zhuān)門(mén)的轉(zhuǎn)換啟動(dòng)信號(hào)線(xiàn)和轉(zhuǎn)換結(jié)束信號(hào)線(xiàn),使接口對(duì)DAC提供的信號(hào)線(xiàn)少,連接也就更簡(jiǎn)單。,2019/12/10,計(jì)算機(jī)接口技術(shù),52,9.8.2D/A轉(zhuǎn)換器與CPU之間的數(shù)據(jù)交換方式,D/A轉(zhuǎn)換器與CPU交換數(shù)據(jù)的方式很單一,既不用查詢(xún),也不用中斷,更不用DMA方式,是采用無(wú)條件方式與CPU交換數(shù)據(jù),因此軟件編程很簡(jiǎn)單,其主要工作是向DAC寫(xiě)數(shù)據(jù)和解決CPU與DAC之間的數(shù)據(jù)緩沖問(wèn)題。,2019/12/10,計(jì)算機(jī)接口技術(shù),53,9.8.3D/A轉(zhuǎn)換器接口設(shè)計(jì)需考慮的問(wèn)題,分析與設(shè)計(jì)DAC接口,相對(duì)于ADC接口來(lái)講,比較簡(jiǎn)單,可從以下幾個(gè)方面入手:1.DAC的分辨率是否大于系統(tǒng)數(shù)據(jù)總線(xiàn)的寬度?是,則要分兩次傳輸,故需增加鎖存器,并提供鎖存選通信號(hào);不是,則不做處理2.DAC芯片內(nèi)部是否有三態(tài)輸入鎖存器?無(wú),則數(shù)據(jù)線(xiàn)不能與系統(tǒng)的DB直接連接,故需增加三態(tài)輸入鎖存器,并提供鎖存允許信號(hào);有,則不做處理。3.DAC的模擬量輸出是否是多通道?是,則需選擇通道號(hào),并提供選擇線(xiàn);不是,則不做處理。4.DAC的啟動(dòng)方式,只有脈沖觸發(fā)一種。DAC不設(shè)專(zhuān)門(mén)的轉(zhuǎn)換啟動(dòng)信號(hào),是利用CS和IOW共同進(jìn)行假寫(xiě)操作,來(lái)實(shí)現(xiàn)脈沖啟動(dòng)的。5.DAC的數(shù)據(jù)傳輸方式,只有無(wú)條件傳輸一種。6.DAC接口電路采用什么元器件組成?有普通IC芯片、可編程并行口芯片、GAL器件等多種選擇。,2019/12/10,計(jì)算機(jī)接口技術(shù),54,9.9鋸齒波三角波發(fā)生器器接口設(shè)計(jì),例9.4DAC0832接口設(shè)計(jì),1.要求要求通過(guò)DAC0832產(chǎn)生鋸齒波和三角波,按任意鍵,停止波形輸出。2.分析因?yàn)楸贿B的對(duì)象是DAC0832,故首先按照9.8.3節(jié)的方法,分析DAC0832的連接特性及工作方式。然后根據(jù)外部連接特性及工作方式進(jìn)行接口設(shè)計(jì)。,2019/12/10,計(jì)算機(jī)接口技術(shù),55,(1)外部特性DAC0832是分辨率為8位的乘法型DAC,芯片內(nèi)部帶有兩級(jí)緩沖寄存器,DAC0832的內(nèi)部結(jié)構(gòu)和外部引腳如圖9.9所示。,圖9.9DAC0832的內(nèi)部結(jié)構(gòu)和外部引腳,2019/12/10,計(jì)算機(jī)接口技術(shù),56,,,DAC0832的工作原理圖9.9中DAC0832有兩個(gè)獨(dú)立的緩沖器,要轉(zhuǎn)換的數(shù)據(jù)先送到第一級(jí)緩沖器,但不進(jìn)行轉(zhuǎn)換,只有數(shù)據(jù)送到第二級(jí)緩沖器時(shí)才能開(kāi)始轉(zhuǎn)換,因而稱(chēng)為雙緩沖。為此,設(shè)置了5個(gè)信號(hào)控制這兩個(gè)緩沖器進(jìn)行數(shù)據(jù)的鎖存。其中,ILE(輸入鎖存允許)、CS(片選)和WR1(寫(xiě)信號(hào)1)3個(gè)信號(hào)組合控制第一級(jí)緩沖器的鎖存,WR2(寫(xiě)信號(hào)2)和XFER(傳遞控制)兩個(gè)信號(hào)組合控制第二級(jí)緩沖寄存器的鎖存。對(duì)于鎖存控制信號(hào)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ù)送到第一級(jí)緩沖器;只有當(dāng)CPU寫(xiě)操作完畢,和都變高電平時(shí),才能使LE1=0,對(duì)輸入數(shù)據(jù)鎖存,實(shí)現(xiàn)第一級(jí)緩沖。同理,當(dāng)XFER與WR2同時(shí)為低電平時(shí),使得LE2=1,第一級(jí)緩沖的數(shù)據(jù)送到第二級(jí)緩沖器;當(dāng)XFER和WR2上升沿使LE2=0時(shí),將這個(gè)數(shù)據(jù)鎖存在第二級(jí)緩沖器中,實(shí)現(xiàn)第二級(jí)緩沖,并開(kāi)始轉(zhuǎn)換。,2019/12/10,計(jì)算機(jī)接口技術(shù),57,DAC0832工作的時(shí)序關(guān)系DAC0832工作的時(shí)序關(guān)系如圖9.10所示。圖中表示,兩個(gè)數(shù)據(jù),數(shù)據(jù)1和數(shù)據(jù)2分別用CS1和CS2鎖存到兩個(gè)DAC0832的第一級(jí)緩沖器中,最后用XFER信號(hào)的上升沿將它們同時(shí)鎖存到各自的第二級(jí)緩沖器,開(kāi)始D/A轉(zhuǎn)換。,圖9.10DAC0832時(shí)序圖,2019/12/10,計(jì)算機(jī)接口技術(shù),58,(2)DAC0832的工作方式,DAC0832有單緩沖、雙緩沖和直通3種工作方式。直通就是不進(jìn)行緩沖,CPU送來(lái)的數(shù)字量直接送到第二級(jí)緩沖器,并開(kāi)始轉(zhuǎn)換。此時(shí),ILE端加高電平,其他控制信號(hào)都接低電平。單緩沖是只進(jìn)行一級(jí)緩沖,具體可用第一組或第二組控制信號(hào)對(duì)第一級(jí)或第二級(jí)緩沖器進(jìn)行控制。雙緩沖是進(jìn)行兩級(jí)緩沖,用兩組控制信號(hào)分別進(jìn)行控制。一般用于多片DAC0832同時(shí)開(kāi)始轉(zhuǎn)換。,2019/12/10,計(jì)算機(jī)接口技術(shù),59,3.設(shè)計(jì),(1)硬件設(shè)計(jì)采用82C55A作為DAC與CPU之間的接口芯片,并把82C55A的A口作為數(shù)據(jù)輸出,而B(niǎo)口的PB0~PB45根線(xiàn)作為控制信號(hào)來(lái)控制DAC0832的工作方式及轉(zhuǎn)換操作。DAC0832的接口電路如圖9.11所示。,圖9.11DAC0832作函數(shù)波形發(fā)生器,2019/12/10,計(jì)算機(jī)接口技術(shù),60,(2)軟件編程根據(jù)設(shè)計(jì)要求產(chǎn)生連續(xù)的鋸齒波,可知本例的D/A轉(zhuǎn)換程序是一個(gè)循環(huán)結(jié)構(gòu),其程序流程圖如圖9.12所示。,圖9.12產(chǎn)生鋸齒波的程序流程圖,2019/12/10,計(jì)算機(jī)接口技術(shù),61,①鋸齒波發(fā)生器程序段鋸齒波發(fā)生器匯編語(yǔ)言程序段如下: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,AL,2019/12/10,計(jì)算機(jī)接口技術(shù),62,;生成鋸齒波的循環(huán)MOVAL,0H;輸出數(shù)據(jù)從0開(kāi)始LOP:MOVDX,300H;82C55A的A口地址OUTDX,AL;AL的值送DAC0832MOVBL,AL;保存AL→BLMOVAH,0BH;檢查是否有任意鍵按下INT21HCMPAL,0FFHJESTOP;有,則停止輸出波形MOVAL,BL;無(wú),恢復(fù)AL的值INCAL;數(shù)據(jù)加1JMPLOP;繼續(xù)循環(huán)輸出波形STOP:MOVAX,4C00H;退出INT21HCODEENDSENDSTART,2019/12/10,計(jì)算機(jī)接口技術(shù),63,//鋸齒波發(fā)生器C語(yǔ)言程序段如下:,2019/12/10,計(jì)算機(jī)接口技術(shù),64,②三角波發(fā)生器程序段若要求產(chǎn)生三角波,則程序只需將生成鋸齒波的循環(huán)修改為生成三角波的循環(huán),程序的其他部分保持不變。,2019/12/10,計(jì)算機(jī)接口技術(shù),65,//三角波發(fā)生器的匯編語(yǔ)言程序段如下:;生成三角波的循環(huán)MOVDX,300H;82C55A的A口地址MOVAL,0H;輸出數(shù)據(jù)從0開(kāi)始L1:OUTDX,ALMOVBL,AL;保存AL→BLMOVAH,0BH;檢查是否有任意鍵按下INT21HCMPAL,0FFHJESTOP;有任意鍵按下,則停止輸出波形MOVAL,BL;無(wú),恢復(fù)AL的值INCAL;數(shù)據(jù)加1JNZL1;AL是否加滿(mǎn)FFH,未滿(mǎn),繼續(xù)MOVAL,0FFH;已滿(mǎn),AL置全1,2019/12/10,計(jì)算機(jī)接口技術(shù),66,L2:OUTDX,ALMOVBL,AL;保存AL→BLMOVAH,0BH;檢查是否有任意鍵按下INT21HCMPAL,0FFHJESTOP;有,則停止輸出波形MOVAL,BLDECAL;輸出數(shù)據(jù)減1JNZL2;數(shù)據(jù)是否減到0,不為0,繼續(xù)JMPL1;為0,數(shù)據(jù)加1STOP:MOVAX,4COOHINT21H,2019/12/10,計(jì)算機(jī)接口技術(shù),67,//三角波發(fā)生器C語(yǔ)言程序段如下:,2019/12/10,計(jì)算機(jī)接口技術(shù),68,4.討論,①利用DAC產(chǎn)生鋸齒波輸出的方法是,將從0開(kāi)始逐漸遞增的數(shù)據(jù)送到DAC,直到FFH,再回到0。重復(fù)上述過(guò)程,就可得到周期性的鋸齒波。實(shí)際上,從0到FFH,中間分為256個(gè)小臺(tái)階,但從宏觀上看,是一個(gè)線(xiàn)性增長(zhǎng)的直線(xiàn)。②實(shí)際上,本例是利用DAC作為函數(shù)波形發(fā)生器,可以產(chǎn)生任何一種波形。如果要求產(chǎn)生正弦波,程序應(yīng)如何編寫(xiě)。,5.12位DAC連接由于微機(jī)的I/O指令一次只能輸出8位數(shù)據(jù),因此對(duì)于數(shù)據(jù)寬度大于8位DAC只能分兩次輸入數(shù)據(jù),為此一般大于8位數(shù)據(jù)寬度的DAC內(nèi)部均設(shè)計(jì)有兩級(jí)數(shù)據(jù)緩沖,如12位DAC1210內(nèi)部就有兩級(jí)數(shù)據(jù)緩沖,內(nèi)部結(jié)構(gòu)如圖9-4所示。,,,D0,D7,D8,D11,,D0,,D0,,D3,,,D7,,,右對(duì)齊,,D7,D6,D5,D4,D3,D2,D1,D0,DI11,DI10,DI9,DI8,DI7,DI6,DI5,DI4,,D3,D2,D1,D0,,,,,,,,,,,,,譯碼器,,,,,,,,,,,,,,,Y0,IOW,,AEN,AB,Y1,Y2,系統(tǒng)總線(xiàn),WR1,,WR2,,BYTE1/BYTE2,,XFER,,CS,Vcc,AGND,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Rfb,,,,,,,,,,,101,102,22k,-12V,+12V,W1,10k,10k,Vout,,W2,22k,-12V,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,Vref,DGND,+5V,+12V,2DW7C,470,200,W3,1K,100,4.7uF,,,,DAC1210與CPU連接,D4,D5,D11,2019/12/10,計(jì)算機(jī)接口技術(shù),72,,本章小結(jié),A/D與D/A轉(zhuǎn)換器接口是數(shù)據(jù)采集與實(shí)時(shí)控制系統(tǒng)的重要組成部分本章討論的A/D與D/A轉(zhuǎn)換器接口仍然是一種并行接口,但也有串行接口存在本章重點(diǎn)討論了查詢(xún)、中斷以及DMA3種不同方式的ADC接口設(shè)計(jì)討論了鋸齒波與三角波發(fā)生器的設(shè)計(jì),- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 微型計(jì)算機(jī) 接口 ADDA 轉(zhuǎn)換器
鏈接地址:http://www.820124.com/p-3266945.html