国产精品一区二区x88av_日韩三级av高清片_亚洲日本久久_丝袜亚洲另类丝袜在线

浙江自考網(wǎng)

咨詢熱線

15700080354 (點擊在線咨詢)
您現(xiàn)在的位置:浙江自考網(wǎng)>復(fù)習(xí)資料 > 正文
自考攻略

2023年4月浙江自考微型計算機(jī)原理及應(yīng)用復(fù)習(xí)筆記:數(shù)據(jù)傳送的控制

時間:2022-12-29 09:01:01 作者:儲老師

自考助學(xué) 以下自考復(fù)習(xí)資料均由浙江自考網(wǎng)整理并發(fā)布,考生想要了解更多關(guān)于浙江自考報名、考試、成績查詢、畢業(yè)、歷年真題、常見問答等相關(guān)信息請關(guān)注浙江自考網(wǎng),獲取浙江自考更多信息。


在計算機(jī)的操作過程中,最基本和最大量的操作是數(shù)據(jù)傳送。在微機(jī)系統(tǒng)中,數(shù)據(jù)主要在CPU、存儲器和I/O接口之間傳送,在數(shù)據(jù)傳送過程中,關(guān)鍵問題是數(shù)據(jù)傳送的控制方式,按照I/O控制組織的演變順序以及外設(shè)與主機(jī)并行工作的程度,微機(jī)系統(tǒng)中數(shù)據(jù)傳送的控制方式主要有兩種,即程序控制傳送方式和DMA傳送方式。
一、程序控制傳送方式 
程序控制的數(shù)據(jù)傳送分為無條件傳送、查詢傳送和中斷傳送,這類傳送方式的特點是,以CPU為中心,數(shù)據(jù)傳送的控制來自CPU,通過預(yù)先編制好的輸人或輸出程序(傳送指令和I/O指令)實現(xiàn)數(shù)據(jù)的傳送。這種數(shù)據(jù)傳送方式的傳送速度較低,傳送路徑要經(jīng)過CPU內(nèi)部的寄存器,同時數(shù)據(jù)的輸入輸出的響應(yīng)也較慢。
(一)無條件傳送方式
無條件傳送方式又稱“同步傳送方式”。主要用于外設(shè)的定時是固定的且是已知的場合,外設(shè)必需在微處理器限定的指令時間內(nèi)準(zhǔn)備就緒,并完成數(shù)據(jù)的接收或發(fā)送。通常采用的辦法是:把I/O指令插入到程序中,當(dāng)程序執(zhí)行到該I/O指令時,外設(shè)必定已為傳送數(shù)據(jù)作好了準(zhǔn)備,于是在此指令時間內(nèi)完成數(shù)據(jù)傳送任務(wù)。無條件傳送是最簡便的傳送方式,它所需的硬件和軟件都較少。
一個無條件傳送的例子如圖6—9所示。這是一個同步傳送的數(shù)據(jù)采集系統(tǒng),圖中K5為繼電器(K5a為繼電器的8個控制觸點,K5b為繼電器的8個線圈),繼電器線圈L0、L1、…、L7控制8個觸點逐個接通,對8個輸入模擬量進(jìn)行采樣,采樣輸入之模擬量送入一個4位10進(jìn)制數(shù)字電壓表U1測量,把被采樣的模擬量轉(zhuǎn)換成16位BCD碼(4位10進(jìn)制數(shù)),高8位和低8位通過兩個8位端口U2(端口地址為11H)和U3(端口地址為10H)送上系統(tǒng)的數(shù)據(jù)總線,CPU通過IN指令讀入轉(zhuǎn)換后的數(shù)字量。至于究竟采集哪一通道的模擬量,則由CPU通過U4(端口地址為20H)輸出控制信號,以控制繼電器線圈LO~L7中電流的通斷,繼而控制繼電器觸點的吸合,以實現(xiàn)對不同通道模擬量的采集(“0”使線圈L電流“斷”,“1”使線圈L電流“通”)。
  以下程序可以用來實現(xiàn)圖6—9電路的數(shù)據(jù)采集。 
START:MOV DX,0100H;01→DH,設(shè)置閉合第一個繼電器代碼
                            ;00→DL,設(shè)置斷開所有繼電器代碼
LEA BX,DSTOR      ; 輸入數(shù)據(jù)緩沖區(qū)的地址偏移量→BX
XOR AL,AL          ;清AL及進(jìn)位標(biāo)志
AGAIN:MOV AL,DL
OUT 20H,AL         ;斷開所有繼電器線圈
CALL NEAR DELAYl ;模擬繼電器觸點的釋放時間
MOV AL,DH
OUT 20H,AL、  ;使L0吸合
CALL NEAR DELAY2 ;模擬觸點閉合及數(shù)字電壓表的轉(zhuǎn)換時間
IN AX,10H         ;輸入
MOV [BX],AX
INC BX
INC BX
RCL DH,1    ;DH左移一位,為下一個觸點閉合作準(zhǔn)備
JNC AGAIN.  ;8個模擬量未輸入完,循環(huán)此段程序
(二)查詢傳送方式
查詢傳送方式又稱“異步傳送方式”。當(dāng)CPU同外設(shè)工作不同步時,很難確保CPU在執(zhí)行輸入操作時,外設(shè)一定是“準(zhǔn)備好”的;而在執(zhí)行輸出操作時,外設(shè)寄存器一定是“空”的。這樣為保證數(shù)據(jù)傳送的正確進(jìn)行,提出了查詢傳送方式。當(dāng)采用這種方式傳送前,CPU必須先對外設(shè)進(jìn)行狀態(tài)檢測。完成一次傳送過程的步驟如下:
(1) 通過執(zhí)行一條輸入指令,讀取所選外設(shè)的當(dāng)前狀態(tài)。
(2) 根據(jù)該設(shè)備的狀態(tài)決定程序去向,如果外設(shè)正處于“忙”或“未準(zhǔn)備就緒”,則程序轉(zhuǎn)回重復(fù)檢測外設(shè)狀態(tài),如果外設(shè)處于“空”或“準(zhǔn)備就緒”,則發(fā)出一條輸入/輸出指令,進(jìn)行一次數(shù)據(jù)傳送。
一個查詢傳送的例子如圖6-10所示。這是一個采用模/數(shù)轉(zhuǎn)換器(A/D轉(zhuǎn)換器)對8個模擬量IN0~I(xiàn)N7采樣的數(shù)據(jù)采集系統(tǒng)。8個輸入模擬量經(jīng)過多路開關(guān)U5選擇后送人A/D轉(zhuǎn)換器U1,多路開關(guān)U5由控制端口U4(端口地址為04H)輸出的三位二進(jìn)制碼(對應(yīng)于b2b1b0位)控制,當(dāng)b2blb0=000時選通IN0輸入A / D轉(zhuǎn)換器,當(dāng)b2blb0=111時選通IN7輸入A/D轉(zhuǎn)換器,每次只送出一路模擬量到A/D轉(zhuǎn)換器。同時,由控制端口U4的b4位控制A/D轉(zhuǎn)換器的啟動(b4=1)與停止(b4=0)。當(dāng)A/D轉(zhuǎn)換器完成轉(zhuǎn)換后,READY端輸出有效信號(高電平)經(jīng)過狀態(tài)端口U2(端口地址為02H)的bo位輸入到CPU的數(shù)據(jù)總線。然后,經(jīng)A/D轉(zhuǎn)換后的數(shù)據(jù)由數(shù)據(jù)端口U3(端口地址為03H)輸入CPU的數(shù)據(jù)總線。該數(shù)據(jù)采集系統(tǒng)中,采用了三個端口——數(shù)據(jù)口U3、控制口U4和狀態(tài)口U2。
根據(jù)上述要求,可編寫如下數(shù)據(jù)采集程序:
START:  MOV DL,0F8H;設(shè)置啟 動A/D轉(zhuǎn)換的信號
     MOV DI,OFFSET DSTOR;輸人數(shù)據(jù)緩沖區(qū)的地址偏移量→DI
AGAIN:  MOV AL,DL
     AND AL,OEFH;使 D4 = 0
     OUT 4,AL  ;停止A/D轉(zhuǎn)換
     CALL  DELAY;等待停止A/D操作的完成
   MOV AL,DL
     OUT 4,AL   ;啟動A/D,且選擇模擬量INo
 POLL: IN  AL,2    ;輸入狀態(tài)信息
    SHR AL,1
    JNC POLL     ;若未READY,程序循環(huán)等待
    IN AL,3     ;否則,輸人數(shù)據(jù)
    STOSB        ;存至內(nèi)存
    INC DL       ;修改多路開關(guān)控制信號,指向下一個模擬量
   JNE AGAIN    ;8個模擬量未輸入完,循環(huán)
    …  …      ;已完,執(zhí)行別的程序段
(三)中斷傳送方式
無條件傳送和查詢傳送的缺點是:CPU和外設(shè)只能串行工作,各外設(shè)之間也只能串行工作。為了使CPU和外設(shè)以及外設(shè)和外設(shè)之間能并行工作,以提高系統(tǒng)的工作效率,充分發(fā)揮CPU高速運(yùn)算的能力,在計算機(jī)系統(tǒng)中引入了“中斷”機(jī)制,利用中斷來實現(xiàn)CPU與外設(shè)之間的數(shù)據(jù)傳送,這就是中斷傳送方式。
在中斷傳送方式中,通常是在程序中安排好在某一時刻啟動某一臺外設(shè),然后CPU繼續(xù)執(zhí)行其主程序,當(dāng)外設(shè)完成數(shù)據(jù)傳送的準(zhǔn)備后,向CPU發(fā)出“中斷請求”信號,在CPU可以響應(yīng)中斷的條件下,現(xiàn)行主程序被“中斷”,轉(zhuǎn)去執(zhí)行“中斷服務(wù)程序”,在“中斷服務(wù)程序”中完成一次CPU與外設(shè)之間的數(shù)據(jù)傳送,傳送完成后仍返回被中斷的主程序,從斷點處繼續(xù)執(zhí)行。
采用中斷傳送方式時,CPU從啟動外設(shè)直到外設(shè)就緒這段時間,一直仍在執(zhí)行主程序,而不是象查詢方式中處于等待狀態(tài),僅僅是在外設(shè)準(zhǔn)備好數(shù)據(jù)傳送的情況下才中止CPU執(zhí)行的主程序,在一定程度上實現(xiàn)了主機(jī)和外設(shè)的并行工作。同時,如果某一時刻有幾臺外設(shè)發(fā)出中斷請求,CPU可以根據(jù)預(yù)先安排好的優(yōu)先順序,按輕重緩急處理幾臺外設(shè)同CPU的數(shù)據(jù)傳送,這樣在一定程度上也可實現(xiàn)幾個外設(shè)的并行工作。
中斷傳送方式的接口電路如圖6—11所示。這是一個輸入接口電路。當(dāng)輸入設(shè)備準(zhǔn)備好一個數(shù)據(jù)后,發(fā)出選通信號STB,該信號一路送數(shù)據(jù)鎖存器Ul,使輸入設(shè)備的8位數(shù)據(jù)送入鎖存器U1;另一路送中斷請求觸發(fā)器U2,將U2置“1”,若系統(tǒng)允許該設(shè)備發(fā)出中斷請求,則中斷屏蔽觸發(fā)器U3已置“l(fā)”,從而通過與門U7向CPU發(fā)出中斷請求信號INTR。若無其他設(shè)備的中斷請求,在CPU開中(即IF=1)的情況下CPU則在現(xiàn)行指令結(jié)束后,CPU響應(yīng)該設(shè)備的中斷請求,執(zhí)行中斷響應(yīng)總線周期,發(fā)出中斷響應(yīng)信號,要求提出中斷請求的外設(shè)把一個字節(jié)的中斷類型碼送上數(shù)據(jù)總線,然后CPU根據(jù)該中斷類型碼轉(zhuǎn)而去執(zhí)行中斷服務(wù)程序,讀人數(shù)據(jù)(通過IN指令,打開三態(tài)緩沖器U4),同時復(fù)位中斷請求觸發(fā)器U2。中斷服務(wù)完成后,再返回被中斷的主程序。
 二、DMA(直接存儲器存取)傳送方式
當(dāng)某些外設(shè),諸如磁盤、CRT顯示器、高速模數(shù)轉(zhuǎn)換器等要求高速而大量地傳送數(shù)據(jù)時,采用程序控制方式來傳送數(shù)據(jù)往往無法滿足速度的要求,就拿程序控制方式中傳送速度最快的中斷方式而言,每傳送一個字節(jié)(或一個字)都得把主程序停下來,轉(zhuǎn)而去執(zhí)行中斷服務(wù)程序,在執(zhí)行中斷服務(wù)程序前要做好現(xiàn)場保護(hù),執(zhí)行完中斷服務(wù)程序后還得恢復(fù)現(xiàn)場。由于在程序控制方式中數(shù)據(jù)傳送過程始終受CPU的干預(yù),CPU都需要取出和執(zhí)行一系列指令,每一字節(jié)(或字)數(shù)據(jù)都必需經(jīng)過CPU的累加器才能輸入輸出,這就從根本上限制了數(shù)據(jù)傳送的速度。為此提出了在外設(shè)和內(nèi)存之間直接地傳送數(shù)據(jù)的方式,即DMA傳送方式。
DMA(DirectMemoryAccess)是一種不需要CPU干預(yù)也不需要軟件介入的高速數(shù)據(jù)傳送方式。由于CPU只起動而不干預(yù)這一傳送過程,同時整個傳送過程只由硬件完成而不需軟件介入,所以其數(shù)據(jù)傳送速率可以達(dá)到很高。在DMA傳送方式中,對這一數(shù)據(jù)傳送過程進(jìn)行控制的硬件稱為DMA控制器(DMAC)。
 (一)DMA操作的基本方法
DMA操作的基本方法有三種:
  1.周期挪用(CycleStealing)
利用CPU不訪問存儲器的那些周期來實現(xiàn)DMA操作,此時,DMAC可以使用總線而不用通知CPU也不會妨礙CPU的工作。這種方法的關(guān)鍵是如何識別合適的可挪用的周期,以避免同CPU的操作發(fā)生重疊。有的CPU能產(chǎn)生一個表示存儲器是否正在被使用的信號(例如M6800的VMA),有的CPU則規(guī)定在特定狀態(tài)下(例如Intel8080的T4、T5狀態(tài))不訪問存儲器,此時就可用于實現(xiàn)DMA操作。周期挪用并不減慢CPU的操作。但可能需要復(fù)雜的時序電路,而且數(shù)據(jù)傳送過程是不連續(xù)的和不規(guī)則的。
2.周期擴(kuò)展
使用專門的時鐘發(fā)生器/驅(qū)動器電路,當(dāng)需要進(jìn)行DMA操作時,由DMAC發(fā)出請求信號給時鐘電路,時鐘電路把供給CPU的時鐘周期加寬,而提供給存儲器和DMAC的時鐘周期不變。這樣,CPU在加寬時鐘周期內(nèi)操作不往下進(jìn)行,而這加寬的時鐘周期相當(dāng)于若干個正常的時鐘周期,可用來進(jìn)行DMA操作。加寬的時鐘結(jié)束后,CPU仍按正常的時鐘繼續(xù)操作。這種方法會使CPU的處理速度減慢,而且CPU時鐘周期的加寬是有限制的。因此用這種方法進(jìn)行DMA傳送,一次只能傳送一個字節(jié)。’
3.CPU停機(jī)方式
在這種方式下,當(dāng)DMAC要進(jìn)行DMA傳送時,DMAC向CPU發(fā)出DMA請求信號,迫使CPU在現(xiàn)行的總線周期(機(jī)器周期)結(jié)束后,使其地址總線、數(shù)據(jù)總線和部分控制總線處于高阻態(tài),從而讓出對總線的控制權(quán),并給出DMA響應(yīng)信號。DMAC接到該響應(yīng)信號后,就可以控制總線,進(jìn)行數(shù)據(jù)傳送的控制工作,直到DMA操作完成,CPU再恢復(fù)對總線的控制權(quán),繼續(xù)執(zhí)行被中斷的程序。注意,采用這種方法進(jìn)行的DMA傳送期間,CPU處于空閑狀態(tài),會降低CPU的利用率,而且會影響CPU對中斷(包括不可屏蔽中斷)的響應(yīng)和動態(tài)RAM的刷新,這是需要加以考慮的。但在實際應(yīng)用中,這是最常用、最簡單的傳送方式,大部分DMAC都采用這種方式。
(二)DMA的傳送方式
通常,大部分DMAC都有三種DMA傳送方式:
1.單字節(jié)傳送方式
每次DMA傳送只傳送一個字節(jié)的數(shù)據(jù),傳送后釋放總線由CPU控制總線至少一個完整的總線周期。以后又測試DMA請求線DREQ,若有效,再進(jìn)入DMA周期。在這種方式中要注意:①在DMA響應(yīng)信號DACK有效前,DREQ必須保持有效;②若DREQ在傳送過程中一直保持有效,在兩次傳送之間也必需釋放總線。
2.成組傳送方式
一個DMA請求可以傳送一組信息,這一組信息的字節(jié)數(shù)由編程決定(在DMAC初始化時),只要在DACK有效之前DREQ保持有效即可。一旦DACK有效,不管DREQ是否有效,DMAC一直不放棄總線控制權(quán),直到整個數(shù)組傳送完。
3.請求傳送方式
請求傳送方式又稱查詢傳送方式。該方式的傳送類似于成組傳送方式,但每傳送一個字節(jié)后,DMAC就檢測DREQ,若無效,則掛起;若有效,繼續(xù)DMA傳送,直到:①一組信息傳送結(jié)束;②外加信號強(qiáng)制DMAC中止操作。
(三)DMAC(DMA控制器)的基本功能
在DMA操作中,DMAC是控制存儲器和外設(shè)之間高速傳送數(shù)據(jù)的硬件電路, 是一種完成直接數(shù)據(jù)傳送的專用處理器,它必需能夠取代CPU和軟件在程序控制傳送中的各項功能,因此DMAC應(yīng)該具有如下功能:
(1)能接受外設(shè)的DMA請求信號DREQ,并能向外設(shè)發(fā)出DMA響應(yīng)信號DACK;
(2)能向CPU發(fā)出總線請求信號(HOLD或BUSRQ),當(dāng)CPU發(fā)出總線響應(yīng)信號(HLDA或BUSAK)后能接管對總線的控制權(quán),進(jìn)入DMA方式;
(3)能發(fā)出地址信息,對存儲器尋址并修改地址指針;
(4)能發(fā)出讀、寫等控制信號,包括存儲器訪問信號和I/O訪問信號;
(5)能決定傳送的字節(jié)數(shù),并能判斷DMA傳送是否結(jié)束;
(6)能發(fā)出DMA結(jié)束信號,釋放總線,使CPU恢復(fù)正常工作。
具有上述功能的DMAC工作示意圖如圖6-12所示。
該電路的工作過程如下:當(dāng)輸入設(shè)備準(zhǔn)備好一個字節(jié)數(shù)據(jù)時,發(fā)出選通脈沖STB,該信號一方面選通“數(shù)據(jù)緩沖寄存器”U2,把輸人數(shù)據(jù)通過U2送入“鎖存器”U3;另一方面將“DMA請求觸發(fā)器”U1置“1”,作為鎖存器U3的準(zhǔn)備就緒信號READY,打開鎖存器U3,把輸入數(shù)據(jù)送上數(shù)據(jù)總線;同時DMA請求觸發(fā)器U1向DMAC發(fā)出DMA請求信號。然后,DMAC向CPU發(fā)出HOLD(總線請求)信號,CPU在現(xiàn)行總線周期結(jié)束后給予響應(yīng),發(fā)出HLDA信號,DMAC接到該信號后接管總線控制權(quán),發(fā)出DMA響應(yīng)和地址信息,并發(fā)出存儲器寫命令,把外設(shè)輸入數(shù)據(jù)(經(jīng)緩沖器U2、鎖存器U3暫存在系統(tǒng)數(shù)據(jù)總線上)寫到內(nèi)存,然后修改地址指針,修改計數(shù)器、檢查傳送是否結(jié)束,若未結(jié)束,則循環(huán)傳送直至整個數(shù)據(jù)塊傳送完。在整個數(shù)據(jù)塊傳送完后,DMAC撤除總線請求信號HOLD,在下一個T周期的上升沿,使HLDA變?yōu)闊o效。上述過程如圖6—13的波形圖所示。

聲明:

(一)由于考試政策等各方面情況的不斷調(diào)整與變化,本網(wǎng)站所提供的考試信息僅供參考,請以權(quán)威部門公布的正式信息為準(zhǔn)。

(二)本網(wǎng)站在文章內(nèi)容來源出處標(biāo)注為其他平臺的稿件均為轉(zhuǎn)載稿,免費(fèi)轉(zhuǎn)載出于非商業(yè)性學(xué)習(xí)目的,版權(quán)歸原作者所有。如您對內(nèi)容、版權(quán)等問題存在異議請與本站聯(lián)系,我們會及時進(jìn)行處理解決。

報名提醒

【考試時間:10月25-26日】

浙江自考服務(wù)中心

  • 微信公眾號
  • 考生交流群
  • 微信公眾號 掃一掃加關(guān)注微信公眾號

    與考生自由互動、并且能直接與專業(yè)老師進(jìn)行交流解答。

  • 考生交流群 掃一掃加入微信交流群

    與考生自由互動、并且能直接與專業(yè)老師進(jìn)行交流解答。

主站蜘蛛池模板: 凤冈县| 延寿县| 嘉义市| 渝北区| 彰化县| 安康市| 泸西县| 儋州市| 丹江口市| 广饶县| 文化| 满城县| 临清市| 桃源县| 象州县| 兴义市| 玉溪市| 岗巴县| 炎陵县| 固镇县| 白山市| 德令哈市| 宽甸| 皋兰县| 安乡县| 万荣县| 神木县| 彭泽县| 苗栗市| 延津县| 屯留县| 镇巴县| 康平县| 佛山市| 探索| 阿拉善右旗| 金溪县| 南华县| 阿克| 鄂托克旗| 金湖县|

關(guān)注公眾號

回復(fù)“免費(fèi)資料”領(lǐng)取復(fù)習(xí)資料

微信公眾號

微信公眾號

微信公眾號

微信交流群

<<點擊收起

在線咨詢

在線咨詢

APP

APP
下載

man
聯(lián)系
微信
wxlogo
掃描
二維碼
反饋建議
反饋
建議
回到頂部
回到
頂部
app
微信客服
 微信公眾號