




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PAGE Chapter 6 微型計(jì)算機(jī)和外設(shè)的數(shù)據(jù)傳輸6.1為什么要用接口電路兩類接口電路:微機(jī)正常工作所需的輔助電路(時(shí)鐘、中斷接收等)輸入輸出接口電路,完成CPU與外設(shè)間數(shù)據(jù)接收與發(fā)送。常用外設(shè):鍵盤、打印機(jī)、磁盤機(jī),測(cè)控設(shè)備都通過(guò)輸入輸出接口與主機(jī)相連。為什么需要接口?存儲(chǔ)器卻不需要?外設(shè)能與三總線直接相連嗎? 外設(shè)的輸入輸出操作與存儲(chǔ)器的讀寫操作不同存儲(chǔ)器功能單一、傳送方式單一、品種有限(ROM RAM),速度與CPU匹配外設(shè)的功能多樣:輸入、輸出、測(cè)量、控制等等,數(shù)字、模擬,串行、并行(CPU是并行),多臺(tái)設(shè)備,速度通常很低可見,接口主要是解決計(jì)算機(jī)和外設(shè)間的信息變換。接口技術(shù):研
2、究CPU和外設(shè)間數(shù)據(jù)傳送方式、電路工作原理、使用方法6.2 CPU和輸入輸出設(shè)備之間的信號(hào)6.2.1數(shù)據(jù)信息數(shù)字量二進(jìn)制形式或ASC碼表示的數(shù)據(jù)或字符,通常是8位的。模擬量用于控制的微機(jī)系統(tǒng)的輸入輸出量,各種物理量的電信號(hào)等,須經(jīng)A/D,D/A才能與CPU通信。開關(guān)量開關(guān)的開合,閥門的開閉等,1位二進(jìn)制數(shù)即可。狀態(tài)信息反映當(dāng)前外設(shè)的工作狀況,方向:外設(shè)接口CPUREADY:輸入外設(shè)表明輸入數(shù)據(jù)準(zhǔn)備好否BUSY :輸出設(shè)備表明自身空閑否5.控制信息控制外設(shè)的工作,如起停,方向:CPU接口外設(shè)CPU和外設(shè)交換數(shù)據(jù)時(shí),只有IN 、OUT指令,三種信息都可看成數(shù)據(jù),但在接口中他們進(jìn)入不同的寄存器。6.
3、3 接口部件的IO端口每個(gè)接口部件都包含一組寄存器I/O端口,相應(yīng)有端口地址。數(shù)據(jù)端口、狀態(tài)端口、控制端口(命令口)圖6.2 外設(shè)通過(guò)接口與系統(tǒng)的連接有些計(jì)算機(jī)內(nèi)存和IO統(tǒng)一編址,統(tǒng)一的地址空間,MOV指令訪問(wèn)端口。8086采用兩個(gè)地址空間,有IN、OUT指令。CPU要往數(shù)據(jù)端口或狀態(tài)、命令口交換信息,先送地址,再送控制,最后實(shí)現(xiàn)數(shù)據(jù)交換。一個(gè)雙向工作的接口芯片通常有4個(gè)端口:數(shù)據(jù)出、入、狀態(tài)、控制。只需共用兩個(gè)端口地址號(hào)。6.4 CPU和外設(shè)之間的數(shù)據(jù)傳送方式各種外設(shè)速度相差很大,CPU何時(shí)從輸入設(shè)備讀取數(shù)據(jù),何時(shí)往輸出設(shè)備寫入數(shù)據(jù),成為復(fù)雜的定時(shí)問(wèn)題。解決方式有三:程序(查詢)方式、中斷方
4、式、DMA方式。6.4.1程序方式在程序控制下進(jìn)行信息傳送,又分為無(wú)條件傳送和條件傳送方式。無(wú)條件傳送方式計(jì)算機(jī)隨時(shí)確信外設(shè)已準(zhǔn)備就緒,無(wú)需查詢外設(shè)狀態(tài),直接傳輸。條件是傳送不太頻繁,只用于簡(jiǎn)單設(shè)備如開關(guān)、7段顯示管等。 無(wú)條件傳送方式的工作原理輸入直接用三態(tài)緩沖器與數(shù)據(jù)總線相連,輸出需要鎖存器。條件傳送方式條件傳送也稱查詢方式,CPU執(zhí)行程序不斷讀取外設(shè)狀態(tài),如外設(shè)準(zhǔn)備好(輸入設(shè)備)或空閑狀態(tài)(輸出設(shè)備),則CPU執(zhí)行輸入輸出指令,與外設(shè)交換信息。條件傳送過(guò)程3個(gè)環(huán)節(jié):CPU從接口中讀取狀態(tài)字CPU測(cè)試狀態(tài)字中的相應(yīng)位是否滿足“就緒”條件,不滿足回第一步如“就緒”,則傳送數(shù)據(jù)。圖4.3 查詢
5、式輸入的接口電路圖4.4 查詢方式輸出的接口電路例子:從終端往緩沖區(qū)輸入一個(gè)字符行,當(dāng)遇到回車符(0DH),或者字符行超過(guò)80個(gè)字符,輸入便結(jié)束,并自動(dòng)加上一個(gè)換行符(0AH)。如果在輸入的81個(gè)字符中未見到回車符,則在終端上輸出信息:“BUFFER OVERFLOW”7位ASC碼采用偶校驗(yàn),輸入端口52H 輸出端口54H狀態(tài)端口56H狀態(tài)端口第1位:輸入緩沖器準(zhǔn)備好;第0位,輸出緩沖器空。DATA_SEG SEGMENTMESSAGEDBBUFFER OVERFLOW,0DH,0AH。 。DATA_SEG ENDSCOM_SEGSEGMENTBUFFERDB82 DUP(?);接收緩沖區(qū)CO
6、UNT DB?;計(jì)數(shù)器COM-SEGENDS。 。CODE SEGMENTASSUMEDS:DATA_SEG,ES:COM_SEG,CS:CODESTAT:MOVAX,DATA_SEG;對(duì)DS作初始化MOVDS,AXMOVAX,COM-SEG;對(duì)ES作初始化MOVES,AXMOVDI,OFFSET BUFFER;計(jì)數(shù)器值向緩沖區(qū)首址MOVCOUNT,DIMOVCX,81;字符行長(zhǎng)度CLDNEXT_IN:INAL,56H讀入狀態(tài)TESTAL,02 ;測(cè)狀態(tài)寄存器第1位,輸入緩沖器是否就緒JZNEXT_IN;未準(zhǔn)備好,則等待再測(cè)IN AL,52H;準(zhǔn)備好,則輸入字符OR AL,0;校驗(yàn)JPENO_
7、ERROR;校驗(yàn)正確,則轉(zhuǎn)NO-ERRORJMPERROR;校驗(yàn)出錯(cuò)誤,則轉(zhuǎn)ERRORNO_ERROR: AND AL,7FH;清除校驗(yàn)位STOSB;將字符送緩沖區(qū) CMP AL,0DH;是否為回車符?LOOPNENEXT_IN;不是回車,則再輸入JNEOVERFLOW;不是回車且溢出,則轉(zhuǎn)OVERFLOWMOVAL,0AH;加一個(gè)換行符STOSB;存入緩沖區(qū)SUBDI,COUNT;計(jì)算輸入字符MOVCOUNT,DI;COUNT中為輸入字符數(shù)。 。OVERFLOW: MOV SI,OFFSET MESSAGE;SI中為字符串首址MOVCX,17;字符數(shù)NEXT_OUT:INAL,56H;讀狀態(tài)
8、寄存器TESTAL,01H;測(cè)狀態(tài)寄存器第0位JZ NEXT_OUT;如沒(méi)有就緒,則再測(cè)LODSB;將字符串取到AL中OUT54H,AL;輸出字符LOOPNEXT_OUT;輸出下一個(gè)字符。 。對(duì)上面程序的幾點(diǎn)說(shuō)明:程序中用ES和DI作為段寄存器和變址寄存器指向輸入緩沖區(qū),CX寄存器控制循環(huán)次數(shù),一開始CX中設(shè)置為最大字符行的長(zhǎng)度DF清0是為了地址增量修改NEXT-IN后面三條指令為測(cè)試接口狀態(tài),未緒則等待奇偶校驗(yàn)是通過(guò)把輸入字符與0相或CMP指令判斷遇到的字符為0DH時(shí),程序緊接一個(gè)換行符0AH,滿足程序要求查詢方式輸入輸出會(huì)遇到一個(gè)問(wèn)題,多個(gè)設(shè)備都是查詢方式,如何處理?輪流查詢,例子:三個(gè)設(shè)
9、備TREE-IN:MOVFLAG,0;清除標(biāo)志INPUT:INAL,STAT1;讀入第一個(gè)設(shè)備的狀態(tài)TESTAL,20H;是否準(zhǔn)備就緒JZDEV2;否,則轉(zhuǎn)DEV2CALLPROC1;就緒,則調(diào)PROC1CMPFLAG,1 ;如標(biāo)志被清除,則輸入另一個(gè)數(shù)JNZINPUTDEV2:INAL,STAT2;讀入第二個(gè)設(shè)備的狀態(tài)TESTAL,20H;是否準(zhǔn)備就緒JZDEV3;未準(zhǔn)備好,則轉(zhuǎn)DEV3CALLPROC2;如準(zhǔn)備就緒,則調(diào)PROC2CMPFLAG,1;如標(biāo)志被清除,則輸入另一個(gè)數(shù)JNZINPUTDEV3:INAL,STAT3;讀入第三個(gè)設(shè)備的狀態(tài)TESTAL,20H;是否準(zhǔn)備就緒JZNO-I
10、NPUT;未準(zhǔn)備好,則轉(zhuǎn)NO-INPUTCALLPROC3;準(zhǔn)備好,則調(diào)PROC3NO-INPUT:CMPFLAG,1;如標(biāo)志被清除,則輸入另一個(gè)數(shù)JNZINPUT。 。上面程序幾點(diǎn)說(shuō)明:程序中狀態(tài)寄存器沒(méi)有賦予具體地址,用STAT1、STAT2、STAT3PROC1PROC3沒(méi)有具體寫出3個(gè)接口的狀態(tài)寄存器均用第5位來(lái)表示準(zhǔn)備就緒程序中設(shè)置了一個(gè)標(biāo)志FLAG,是隔任選單元,使第1設(shè)備優(yōu)先查詢方式時(shí),設(shè)備可以同等優(yōu)先,具體程序如下:INTREE:MOV FLAG,0;清除標(biāo)志INPUT:INAL,STAT1;讀入第一個(gè)設(shè)備的狀態(tài)TESTAL,20H;測(cè)試狀態(tài)是否準(zhǔn)備好JZDEV2;未準(zhǔn)備好,則
11、轉(zhuǎn)DEV2CALL PROC1;如準(zhǔn)備好,則調(diào)PROC1DEV2:INAL,STAT2;讀入第二個(gè)設(shè)備的狀態(tài)TESTAL,20H;測(cè)試是否準(zhǔn)備好JZDEV3;如未準(zhǔn)備好,則轉(zhuǎn)DEV3CALLPROC2;如準(zhǔn)備好,則調(diào)PROC2DEV3:INAL,STAT3;讀入第三個(gè)設(shè)備的狀態(tài)TESTAL,20H;測(cè)試是否準(zhǔn)備好JZNO-INPUT;如未準(zhǔn)備好,則轉(zhuǎn)NOINPUTCALLPROC3;如準(zhǔn)備好,則調(diào)PROC3NO-INPUT:CMPFLAG,1;如標(biāo)志仍為0,則繼續(xù)進(jìn)行輸入JNZINPUT例2.數(shù)據(jù)采集系統(tǒng),利用查詢方式進(jìn)行數(shù)據(jù)采集,8個(gè)模擬量,經(jīng)多路開關(guān)每次接通一個(gè)模擬量,由D2D1D0選擇,
12、D4位控制A/D轉(zhuǎn)換器的啟動(dòng)與停止。轉(zhuǎn)換READY信號(hào)2口送CPU,4為控制口;3為數(shù)據(jù)口。實(shí)現(xiàn)程序?yàn)椋築EGIN: MOV DL,0F8H;設(shè)置啟動(dòng)A/D轉(zhuǎn)換信號(hào)LEA DI,DSTOR;輸入緩沖區(qū)首址DICAIJI:MOV AL,DLAND AL,0EFH;使D4等于0OUT 4,AL; 停止A/D轉(zhuǎn)換CALL DELAY; 等待停止A/D操作的完成MOV AL,DLOUT 4,AL;啟動(dòng)AD,且選擇模擬量A0POLL:IN,AL,2;輸入狀態(tài)信息SHR AL,1JNC POLL;若未READY,循環(huán)等待IN AL,3;否則輸入數(shù)據(jù)STOSB ;存至內(nèi)存INC DL ;修改多路開關(guān)控制信號(hào)
13、,指向下一個(gè)模擬量JNC CAIJI;8個(gè)模擬量未采完,繼續(xù),否則,跳出中斷方式中斷傳送方式的原理查詢式比無(wú)條件傳送可靠,但缺點(diǎn)是:CPU不斷讀取和檢測(cè)狀態(tài)字,如外設(shè)未準(zhǔn)備好,則等待,浪費(fèi)大量時(shí)間。以每秒打入10個(gè)字符記,時(shí)間浪費(fèi)99.99不具備實(shí)時(shí)性,系統(tǒng)有多個(gè)外設(shè)時(shí)速度差別較大,輪流查詢不合適為節(jié)省CPU時(shí)間,提高效率,可以用中斷方式,優(yōu)點(diǎn)是:CPU不必花大量時(shí)間查詢,外設(shè)就緒時(shí)會(huì)主動(dòng)發(fā)中斷請(qǐng)求。在兩個(gè)中斷服務(wù)之間,CPU可以并行地其它操作。圖5.6 中斷方式輸入時(shí)的接口電路關(guān)于NMI:8086有兩個(gè)中斷引腿:NMI、INTRINTR引入的中斷可被IF屏蔽,IF=1時(shí),CPU才會(huì)通過(guò)INT
14、A發(fā)兩個(gè)負(fù)脈沖,作為應(yīng)答信號(hào)。NMI引入的是非屏蔽信號(hào),來(lái)源于監(jiān)測(cè)電源電壓、時(shí)鐘等基本系統(tǒng)。圖5.7為可屏蔽中斷響應(yīng)過(guò)程中斷優(yōu)先級(jí)問(wèn)題的解決三種解決辦法:軟件查詢、簡(jiǎn)單硬件菊花鏈、專用硬件。軟件查詢方式借助于簡(jiǎn)單的硬件電路,以A、B、C三個(gè)外設(shè)為例,可將三個(gè)中斷信號(hào)相或后,作為INTR信號(hào)端,并把它們的狀態(tài)位相或后作狀態(tài)字。只要在中斷處理子程序的開始部分安排一段查詢語(yǔ)句,可區(qū)分3個(gè)設(shè)備的中斷優(yōu)先級(jí)。簡(jiǎn)單硬件方式菊花鏈法圖5.8a菊花鏈 5.8b優(yōu)先權(quán)排隊(duì)邏輯電路當(dāng)有兩個(gè)設(shè)備同時(shí)發(fā)中斷請(qǐng)求,越接近CPU越優(yōu)先得到響應(yīng)。專用硬件方式圖6-14 編碼器和比較器實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)電路中斷控制器8259A最
15、常用。圖4.9 典型的可編程中斷控制器內(nèi)部結(jié)構(gòu)框圖有了中斷控制器,CPU的INTR引腿和INTA引腿連接中斷控制器,另一方面,來(lái)自輸入輸出接口的中斷請(qǐng)求信號(hào)并行送到中斷優(yōu)先級(jí)管理電路,當(dāng)一個(gè)外部請(qǐng)求送到中斷控制器。 。6.4.2 DMA方式DMA方式的提出中斷方式下,仍須執(zhí)行程序來(lái)傳送,每次中斷都要清除指令隊(duì)列、保護(hù)寄存器值、斷點(diǎn)地址和PSW進(jìn)出棧,效率不高。DMA實(shí)現(xiàn)數(shù)據(jù)按塊傳輸,適合速度與存儲(chǔ)器匹配的外設(shè),傳輸率外設(shè)決定DMA方式下,外設(shè)用專用接口與存儲(chǔ)器交換數(shù)據(jù),接口向CPU發(fā)HOLD不經(jīng)過(guò)CPU,CPU發(fā)HOLDA讓出總線控制權(quán)。DMA控制器的功能和DMA傳送的原理DMA控制器應(yīng)具備以
16、下功能:當(dāng)外設(shè)準(zhǔn)備就緒,會(huì)向DMA控制器發(fā)DMA請(qǐng)求HOLD高,DMA接收后能向CPU發(fā)請(qǐng)求CPU接到總線請(qǐng)求信號(hào)后允許則發(fā)出DMA響應(yīng)信號(hào) 放棄總線HLDA高DMA控制器得到總線控制權(quán)后,發(fā)地址信號(hào),并每發(fā)一字節(jié)修改地址,因此內(nèi)部有地址寄存器和字節(jié)計(jì)數(shù)器。DMA傳送期間,DMA控制器能發(fā)讀寫控制信號(hào)DMA控制器內(nèi)部有字節(jié)計(jì)數(shù)器,減為0時(shí),DMA過(guò)程結(jié)束。DMA過(guò)程結(jié)束時(shí),控制器應(yīng)向CPU發(fā)結(jié)束信號(hào)總線交權(quán)HOLD低,CPU重獲控制權(quán) HLDA也變低圖6.17 用DMA方式傳輸單個(gè)數(shù)據(jù)(輸出過(guò)程)如果從接口往內(nèi)存DMA方式傳輸一個(gè)數(shù)據(jù)塊,系統(tǒng)如下動(dòng)作:接口往DMA控制器發(fā)一個(gè)DMA請(qǐng)求;HOL
17、D如允許CPU送來(lái)HLDA,交出總線控制權(quán)DMA控制器中地址寄存器的內(nèi)容送到地址總線上DMA控制器向接口發(fā)確認(rèn)信號(hào),通知接口收發(fā)數(shù)據(jù)數(shù)據(jù)送到地址總線所指的內(nèi)存單元地址寄存器的值加1字節(jié)計(jì)數(shù)器減1如字節(jié)計(jì)數(shù)器的值不為0,則回到第1步,否則結(jié)束。圖4.11 DMA控制器的內(nèi)部最小配置和接口要求DMA控制器內(nèi)部有一個(gè)控制寄存器、狀態(tài)寄存器、字節(jié)計(jì)數(shù)器。如果從接口往內(nèi)存DMA方式傳送一個(gè)數(shù)據(jù)塊,系統(tǒng)如下動(dòng)作:接口往DMA控制器發(fā)一個(gè)DMA請(qǐng)求HOLD。DMA控制器發(fā)總線請(qǐng)求,收到CPU的應(yīng)答HLDA后,獲總線控制權(quán)DMA控制器中地址寄存器的內(nèi)容送到地址總線上。DMA控制器向接口發(fā)一個(gè)確認(rèn)DMA傳輸?shù)男?/p>
18、號(hào),送數(shù)或鎖數(shù)。數(shù)據(jù)送到地址總線所致的內(nèi)存單元地址寄存器的值加1字節(jié)計(jì)數(shù)器的值減1如字節(jié)計(jì)數(shù)不為0,則回到第1步,否則結(jié)束??紤]到接口的雙向工作,對(duì)接口有下述要求:控制寄存器中專門有一位,指出數(shù)據(jù)傳輸方向控制寄存器有一位用來(lái)啟動(dòng)IO操作,這一位的設(shè)置啟動(dòng)外設(shè)動(dòng)作狀態(tài)寄存器中必須有一位用來(lái)指出設(shè)備當(dāng)前是否處于忙狀態(tài)對(duì)于DMA控制寄存器,也提出了一些要求:控制寄存器中專門有一位,作為DMA允許位控制寄存器中專門有一位,確定DMA方向,發(fā)讀還是寫信號(hào)控制寄存器中還要有一位,決定進(jìn)行一次傳輸后,是否放棄總線控制權(quán)狀態(tài)寄存器中必須有一位,表示數(shù)據(jù)塊傳輸是否結(jié)束對(duì)DMA控制器和接口的初始化:往DMA控制器的字節(jié)計(jì)數(shù)器設(shè)置初值,決定傳輸長(zhǎng)度。往DMA控制器的地址寄存器中設(shè)置地址初值,確定存儲(chǔ)區(qū)首地址。設(shè)置DMA控制字,指出數(shù)據(jù)傳輸方向,是否進(jìn)行塊傳輸 啟動(dòng)DMA對(duì)接口部件設(shè)置控制字,指出數(shù)據(jù)傳輸方向,并啟動(dòng)IO操作。例子:?jiǎn)?dòng)數(shù)據(jù)塊輸入的程序段INTSTAT:接口的狀態(tài)寄存器INTCO
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 不會(huì)被跳墻的居間合同
- 售后服務(wù)協(xié)議合同
- 公司股份轉(zhuǎn)讓合同協(xié)議書詳細(xì)
- 技術(shù)服務(wù)合同免稅
- 墻布供貨施工合同協(xié)議書
- 股權(quán)分配及股份制公司合同詳解
- 產(chǎn)品銷售與分銷合同細(xì)節(jié)規(guī)定
- 汽車零部件生產(chǎn)技術(shù)優(yōu)化合同
- 廣東工貿(mào)職業(yè)技術(shù)學(xué)院《工程材料及制造基礎(chǔ)雙語(yǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘭州航空職業(yè)技術(shù)學(xué)院《中學(xué)英語(yǔ)教學(xué)設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- GB 19522-2004車輛駕駛?cè)藛T血液、呼氣酒精含量閾值與檢驗(yàn)
- 登記總賬、賬務(wù)處理程序課件
- 熱能與動(dòng)力工程測(cè)試技術(shù)(白)課件
- 彩生活運(yùn)營(yíng)模式2016年
- 脂肪肝的科普課件
- 某銀行安全保衛(wèi)工作知識(shí)考試參考題庫(kù)(500題)
- 片劑工藝流程圖
- 企業(yè)服務(wù)工作實(shí)施方案
- 信息技術(shù)ppt課件完整版
- 新湘教(湖南美術(shù))版小學(xué)美術(shù)五年級(jí)下冊(cè)全冊(cè)PPT課件(精心整理匯編)
- 大智慧指標(biāo)公式函數(shù)大全(完整可打印版)
評(píng)論
0/150
提交評(píng)論