資源描述:
《cpu與外設(shè)數(shù)據(jù)傳送的方式論文》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、CPU與外設(shè)數(shù)據(jù)傳送的方式姓名:_____楊萬______學(xué)號(hào):200981010142____所在學(xué)院:計(jì)算機(jī)科學(xué)學(xué)院___所學(xué)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)_導(dǎo)師姓名職稱:魏蕓__完成時(shí)間:2011年6月_________2011年6月6日一、緒論CPU與外設(shè)之間的數(shù)據(jù)傳送,即CPU與接口之間的數(shù)據(jù)傳送。按照IO控制組織的演變順序以及外設(shè)與CPU并行工作的程度,CPU與IO設(shè)備之間傳輸數(shù)據(jù)的控制方式一般有四種,分別是程序控制方式.中斷方式.DMA方式和專用IO處理方式。二、無條件傳送方式(同步傳送方式)在CPU與慢速變化的設(shè)備交換數(shù)據(jù)時(shí),可以認(rèn)為它們總是處于“就緒
2、”狀態(tài),隨時(shí)可以進(jìn)行數(shù)據(jù)傳送,這就是無條件傳送,或稱立即傳送、同步傳送。不過,名為無條件傳送,實(shí)際上是有條件的,那就是傳送不能太頻繁,以保證每次傳送時(shí),外設(shè)處于就緒狀態(tài)。所以無條件傳送方式用得較少,只用在對(duì)一些簡單外設(shè)的操作,如開關(guān)、七段顯示管等。實(shí)現(xiàn)方法:CPU不查詢外設(shè)工作狀態(tài),與外設(shè)速度的匹配通過在軟件上延時(shí)完成,在程序中直接用I/O指令,完成與外設(shè)的數(shù)據(jù)傳送。特點(diǎn):1.適用于外設(shè)動(dòng)作時(shí)間已知,在CPU與外設(shè)進(jìn)行數(shù)據(jù)傳送時(shí),外設(shè)保證已準(zhǔn)備好的情況2.軟硬件十分簡單。例:無條件輸入接口D7
~
D0數(shù)據(jù)線輸入
設(shè)備三態(tài)
緩沖器A15
~
A0PC
總
線地址
3、線?地址
譯碼200H與
非000IOR接口電路,即硬件上保證:只在CPU執(zhí)行從200H端口輸入數(shù)據(jù)時(shí),三態(tài)門處于工作狀態(tài),使輸入設(shè)備的數(shù)據(jù)送上總線側(cè),而CPU執(zhí)行其它指令時(shí),三態(tài)門均處于高阻狀態(tài),使輸入設(shè)備的數(shù)據(jù)線與總線側(cè)斷開無條件輸入編程:從端口200H讀入100個(gè)字節(jié)到內(nèi)存緩沖區(qū)buffer中。、、、MOVAX,SEGbufferMOVDS,AX;取緩沖區(qū)LEADI,buffer;首地址MOVCX,100H;傳送個(gè)數(shù)MOVDX,200H;端口地址next:;延時(shí)等待INAL,DX;讀入數(shù)據(jù)CALLdelayMOV[DI],AL;送緩沖區(qū)INCDI;修改指針LO
4、OPnext、、、;延時(shí)子程delayPROCPUSHCXMOVCX,80Hcc:LOOPccPOPCXRETdelayENDP一、條件傳送方式(查詢傳送方式)條件傳送又稱查詢方式,即通過程序查詢相應(yīng)設(shè)備的狀態(tài),若狀態(tài)不符合,則CPU不能進(jìn)行輸入/輸出操作,需要等待;只有當(dāng)狀態(tài)信號(hào)符合要求時(shí),CPU才能進(jìn)行相應(yīng)的輸入/輸出操作。一般外設(shè)均可以提供一些反映其狀態(tài)的信號(hào),如對(duì)輸入設(shè)備來說,它能夠提供“準(zhǔn)備好”(“READY”)信號(hào),“READY”=1表示輸入數(shù)據(jù)已準(zhǔn)備好。輸出設(shè)備則提供“忙”(“BUSY”)信號(hào),“BUSY”=1表示當(dāng)前時(shí)刻不能接收CPU來的數(shù)據(jù),只有當(dāng)
5、“BUSY”=0時(shí),才表明它可以接受來自于CPU的輸出數(shù)據(jù)。所以CPU需要先了解(查詢)外設(shè)的工作狀態(tài),然后在外設(shè)可以交換信息的情況下(就緒)實(shí)現(xiàn)數(shù)據(jù)輸入或輸出。由此可見,查詢式傳送的接口電路除了需要數(shù)據(jù)端口外,還需要狀態(tài)端口。程序查詢開始查詢傳送的特點(diǎn)是:工作可靠,適用面寬,但傳送效率低查詢傳送方式,編程流程:讀輸入狀態(tài)數(shù)據(jù)準(zhǔn)備好否?輸入數(shù)據(jù)CPU數(shù)據(jù)內(nèi)存緩沖區(qū)傳送完否?結(jié)束例查詢方式輸入地址線假設(shè)外設(shè)的狀態(tài)端口為21CH,其中D4=1時(shí),表示外設(shè)數(shù)據(jù)準(zhǔn)備好,外設(shè)的數(shù)據(jù)端口為218H。實(shí)現(xiàn)從外設(shè)讀入50H個(gè)字節(jié)到內(nèi)存緩沖區(qū)buffer中。
輸入
外
備地址譯碼
C
6、
P
U地址
譯碼21CH端口
狀態(tài)端口數(shù)據(jù)線數(shù)據(jù)
緩沖控制線218H端口
數(shù)據(jù)端口控制
電路查詢方式輸入接口編程從外設(shè)讀入50H個(gè)字節(jié)到內(nèi)存緩沖區(qū)buffer中N50H個(gè)數(shù)據(jù)傳送結(jié)束?從218H數(shù)據(jù)端口
讀入一個(gè)字節(jié)數(shù)據(jù)D4=1,外設(shè)準(zhǔn)備好否?從21CH狀態(tài)端口
讀入外設(shè)狀態(tài)信息NYY查詢方式輸入程序段:、、、MOVAX,SEGbuffer;取緩沖區(qū)首地址MOVDS,AXLEADI,bufferMOVCX,50H;傳送個(gè)數(shù)next:MOVDX,21CHask:INAL,DX;從狀態(tài)端口讀入狀態(tài)信息TESTAL,00010000B;檢測D4位JZask;D4=0
7、,繼續(xù)查詢MOVDX,218HINAL,DX;從數(shù)據(jù)端口讀入數(shù)據(jù)MOV[DI],AL;送緩沖區(qū)INCDI;修改緩沖區(qū)指針LOOPnext;傳送下一個(gè)、、、一、中斷傳送方式中斷傳送方式是指當(dāng)外設(shè)需要與CPU進(jìn)行信息交換時(shí),由外設(shè)向CPU發(fā)出請(qǐng)求信號(hào),使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行數(shù)據(jù)的輸入/輸出操作,數(shù)據(jù)傳送結(jié)束后,CPU再繼續(xù)執(zhí)行被暫停的程序。?實(shí)現(xiàn)方法:1.當(dāng)外設(shè)準(zhǔn)備好,向CPU發(fā)出中斷請(qǐng)求2.CPU在滿足響應(yīng)中斷的條件下,發(fā)出中斷響應(yīng)信號(hào);3.CPU暫停當(dāng)前的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,完成與外設(shè)的數(shù)據(jù)傳送;4.CPU從中斷服務(wù)程序返回,繼續(xù)執(zhí)行被中斷