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

浙江自考網

咨詢熱線

15700080354 (點擊在線咨詢)
您現在的位置:浙江自考網>復習資料 > 正文
自考攻略

2023年4月浙江自考微型計算機原理及應用復習筆記:數據傳送的控制

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

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


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

聲明:

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

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

報名提醒

【考試時間:4月12-13日】

浙江自考服務中心

  • 微信公眾號
  • 考生交流群
  • 微信公眾號 掃一掃加關注微信公眾號

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

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

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

主站蜘蛛池模板: 犍为县| 绍兴市| 陈巴尔虎旗| 廉江市| 衡阳县| 霞浦县| 阜城县| 革吉县| 北票市| 清徐县| 托里县| 兴和县| 布尔津县| 新野县| 拜泉县| 静乐县| 清徐县| 大石桥市| 锡林郭勒盟| 峨边| 临朐县| 尚志市| 乌恰县| 通化县| 广东省| 中方县| 平山县| 大厂| 高密市| 襄汾县| 赤峰市| 马尔康县| 衡山县| 海丰县| 陈巴尔虎旗| 咸宁市| 富裕县| 拉孜县| 齐齐哈尔市| 永福县| 徐州市|

關注公眾號

回復“免費資料”領取復習資料

微信公眾號

微信公眾號

微信公眾號

微信交流群

<<點擊收起

在線咨詢

在線咨詢

APP

APP
下載

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