?
歡迎您訪問貴州自考網!網站為考生提供貴州自考信息服務,供學習交流使用,非政府官方網站,官方信息以貴州省招生考試院(www.eaagz.org.cn)為準 登錄  網站導航

貴州自考網

自考熱線:0851-85766631

微型計算機原理及應用學習筆記 數據傳送的控制

編輯整理:  貴州自考網 發表時間:  2018-05-23   【   點擊數:

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


貴州自考網微信公眾號

貴州自考網課程中心

貴州自考網聲明:

1、由于各方面情況的調整與變化,本網提供的考試信息僅供參考,考試信息以省考試院及院校官方發布的信息為準。

2、本網信息來源為其他媒體的稿件轉載,免費轉載出于非商業性學習目的,版權歸原作者所有,如有內容與版權問題等請與本站聯系。聯系郵箱:952056566@qq.com

貴州自考便捷服務

  • 微信交流群
  • 微信公眾號

  • 視頻課程
  • 真題下載
貴州自考概率論與數理統計精講視頻課程

概率論與數理統計

貴州自學考試課程:馬克思主義基本原理概論

馬原概論

貴州自考課程:中國近現代史綱要課程精講視

中國近現代史綱要

貴州省自學考試【思想道德修養與法律基礎(

思修03706

貴州自學考試課程【內科護理學(一)】試聽

內科護理學(一)

貴州自考文學概論(一)課程精講視頻

文學概論(一)

亚洲欧美日韩综合久久久久,伊人色综合久久天天人手人婷,久久久久精品免费福利电影,国产精品久久自在自线不卡