河南理工大學_第1頁
河南理工大學_第2頁
河南理工大學_第3頁
河南理工大學_第4頁
河南理工大學_第5頁
已閱讀5頁,還剩68頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第六章輸入/輸出libaoping@第六章輸入/輸出本章內容基本概念接口的作用和功能

I/O端口的編址輸入/輸出數據的傳輸控制方式無條件、查詢、中斷、DMADMA*DMA的基本概念DMA工作過程DMA的三種傳輸方式 26.1輸入/輸出接口概述

計算機的輸入輸出(即I/O)是計算機系統中不可缺少的重要組成部分,沒有它,計算機只是一個聰明的“瞎子和啞巴”,既不知道人要它做什么,也不知道把計算機的結果反映出來,沒有I/O,再高檔的計算機也無法為人服務?,F代計算機系統中外部設備種類繁多,各類外部設備不僅結構和工作原理不同,而且與主機的連接方式也可能完全不同。為了方便地將主機與各種外設連接起來,并且避免主機陷入與各種外設打交道的沉重負擔之中,我們需要一個信息交換的中間環節,這個主機與外設之間的交接界面就稱作輸入/輸出接口。34什么是I/O接口(電路)?I/O接口是位于系統與外設間、用來協助完成數據傳送和控制任務的邏輯電路,I/O接口就是CPU與外設的連接部件。PC機系統板的可編程接口芯片、I/O總線槽的電路板(適配器)都是I/O接口電路CPUI/O接口電路

I/O設備接口在CPU與外設之間5接口:CPU與外設間的中間電路。接口的分類如下圖所示:

接口分類基本接口:8259,8237,8254通用接口:8255,8251,usb,1394專用接口:鍵盤接口,顯示器接口6I/O接口要解決的問題信息變換,信號形式匹配(A/D、D/A;串/并,并/串)

速度協調,速度匹配(Buffer)輔助與緩沖7具體地說,I/O接口應具有以下主要功能或其中的一部分功能:

1)尋址功能:對送來的片選信號進行識別。

2)輸入/輸出功能:根據讀/寫信號決定當前進行的是輸入操作還是輸出操作。

3)數據轉換功能:A/D轉換功能、D/A轉換功能、串/并轉換功能、并/串轉換功能等。

4)聯絡功能:就緒信號,忙信號等。

5)中斷管理:發出中斯請求信號、接收中斷響應信號、發送中斷類型碼的功能。并具有優先級管理功能。6)錯誤檢測:奇偶校驗,循環冗余校驗,海明碼校驗。7)可編程:可編程功能意味著I/O接口具有較強的通用性、靈活性和可擴充性,即在不改變硬件設計的條件下,I/O接口可以接收并解釋CPU的控制命令,從而改變接口的功能與工作方式。

6)復位:接收復位信號,從而使接口本身以及所連的外設進行重新啟動。I/O接口的功能8I/O端口:

I/O信息的三種類型:數據、命令、狀態。傳送這三類信息的通道分別稱為:數據端口(I/O)、狀態端口(I)、命令端口(O)。不同外設具有的端口數各不相同,計算機中為每一個端口都賦予一個惟一編號——稱為端口地址(或端口號)。端口有兩種編址方式:統一編址和獨立編址。6.1.2I/O接口的編址方式9I/O接口電路的基本結構主機外設數據緩沖器狀態寄存器控制寄存器總線驅動地址譯碼控制邏輯接CPU一側接外設一側DBABCB數據信息控制信息狀態信息端口接口I/O端口編址方式:存儲器映像或I/O獨立編址一個外設可能有多個端口,一個端口也可能屬于多個外設主板上的I/O地址:0~0FFH;擴展槽上的I/O地址:100~3FFH10定義把外設接口與內存統一進行編址。各占據統一地址空間的不同部分。優點指令統一,靈活;訪問控制信號統一,使用同一組的地址/控制信號。缺點內存可用地址空間減小地址長,指令代碼長,相應地讀寫執行時間也較長例如:

MCS-51單片機0地址空間(共1MB)內存地址(960KB)I/O地址(64KB)FFFFFHEFFFFHF0000H1.統一編址11定義:

外設地址空間和內存地址空間相互獨立。優點:內存地址空間不受I/O編址的影響缺點:I/O指令功能較弱,使用不同的讀寫控制信號00000H內存地址空間內存空間(1MB)I/O空間(64KB)FFFFHFFFFFHI/O地址空間0000H2.獨立編址例如:

8088/8086微機系統12MCS-51單片機I/O端口與內存統一編址示意圖138088/80862016I/O端口獨立編址示意圖146.2輸入輸出數據的傳輸控制方式I/O接口電路基礎:三態緩沖器/鎖存器問題:CPU與外設的工作速度不一致,尤其是當外設由其他CPU或時序電路控制時更加明顯,應如何解決效率和可靠性。數據傳送控制:使兩者高效、可靠地進行數據傳送(1)

無條件傳送方式(2)

條件傳送方式(查詢方式

)(3)

中斷傳送方式(4)

DMA傳送方式(DirectMemoryAccess)

存儲器直接存取方式三種傳送方式(程序方式)15無條件傳送方式最簡單,只需直接使用輸入/輸出指令即可。相對應用最少。條件傳送方式(程序查詢)適于與速度不匹配的設備進行數據交換,但CPU必須等待外設準備好,工作效率低。

中斷控制高效、實時,但要付出相對較高的硬件代價。

直接存儲器存取即DMA方式。無需程序控制,因而速度最快。16無條件程序控制(同步控制)方式一種最簡單的I/O控制方式,CPU可以隨時根據需要無條件地讀寫I/O端口外設要求:簡單,數據變化緩慢,操作時間固定,如一組開關或LED顯示管。外設被認為始終處于就緒狀態接口特點CPU的DB→I/O接口(輸出鎖存器)→外設CPU的DB←I/O接口(輸入緩沖器)←外設17無條件傳送方式硬件電路圖18條件傳送方式(查詢傳送方式)實現方法:在與外設進行傳送數據前,CPU先查詢外設狀態,當外設準備好后,再才執行I/O指令,實現數據傳送。特點:1.CPU通過不斷查詢外設狀態,實現與外設的速度匹配;2.CPU的工作效率低,響應速度慢;3.適用于簡單、慢速的或實時性要求不高的外設.19一般外設均可以提供一些反映其狀態的信號,如對輸入設備來說,它能夠提供“準備好”(“READY”)信號,“READY”=1表示輸入數據已準備好。輸出設備則提供“忙”(“BUSY”)信號,“BUSY”=1表示當前時刻不能接收CPU來的數據,只有當“BUSY”=0時,才表明它可以接受來自于CPU的輸出數據。條件傳送方式(查詢傳送方式)20過程:輸入操作的程序流程如圖所示:對READY的狀態查詢,是通過讀狀態端口的相應位來實現的,輸出的情況亦大致相同,這種傳送控制方式的最大優點是,能夠保證輸入/輸出數據的正確性。21查詢方式輸入接口原理圖01022查詢方式輸出接口原理圖0110023例1假設從某輸入設備上輸入一組數據送緩沖區,接口電路如圖6-4,若緩沖區已滿則輸出一組信息“BOFFEROVERFLOW”,然后結束。設該設備的啟動地址為0FCH,數據端口為0F8H,狀態端口為0FAH。程序如下:DATASEGMENTMESS1DB‘BUFFEROVERFLOW’,’$’BUFFDB60DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA24START:MOVAX,DATAMOV DS,AXMOV BX,OFFSETBUFF;送緩沖區指針

MOV CX,60;送計數初值

OUT 0FCH,AL;啟動設備

WAIT:IN AL,OFAH;查詢狀態,若為0,則等待

TEST AL,01HJZ WAITIN AL,0F8H;輸入數據

MOV [BX],ALINC BXLOOPWAIT;檢測緩沖區是否滿,不滿再輸入

MOV DX,OFFSETMESS1;緩沖區滿,輸出標志字符串

MOV AH,09HINT 21HMOV AH,4CHINT 21HCODEENDSENDSTART

25輪流查詢流程圖優先級問題當CPU需對多個設備進行查詢時,就出現了所謂的優先級問題,即究竟先為哪個設備服務,一般來講,在這種情況下都是采用輪流查詢的方式來解決,如圖所示26中斷傳送方式

實現方法:

1.當外設準備好,向CPU發出中斷請求

2.CPU在滿足響應中斷的條件下,發出中斷響應信號;

3.CPU暫停當前的程序,轉去執行中斷服務程序,完成與外設的數據傳送;

4.CPU從中斷服務程序返回,繼續執行被中斷的程序27中斷服務程序發申請中斷服務程序發申請中斷方式下CPU執行程序流程外設硬件中斷---NMI與INTR兩根線申請中斷(與CALL差別大)軟件中斷---INTn與INTO指令(與CALL功能類似)時間隨機兩者無關28中斷傳送方式(輸入接口)29中斷優先級當系統中有多個設備提出中斷請求時,就有一個該響應誰的問題,也就是一個優先級的問題,解決優先級的問題一般可有三種方法:軟件查詢法、簡單硬件方法及專用硬件方法。

(1)軟件查詢法30中斷優先級(2)簡單硬件方法31中斷優先級(3)專用硬件方法中斷控制器的系統連接32圖:中斷服務子程序331.CPU和外設大部分時間處在并行工作狀態,只在CPU響應外設的中斷申請后,進入數據傳送的過程。2.中斷傳送方式提高了CPU的效率。3.對外設的請求能作出實時響應,可處理故障。4.適于實時、快速、復雜的外設,但不適用于大量、高速頻繁數據交換

DMA。

中斷傳送方式的特點34DMA傳輸方式

前面3種I/O方式共性:

都需要CPU作為中介:

外設

CPU

內存

兩個含義:

1)軟件:外設與內存之間的數據傳送是通過CPU執行程序來完成的(PIO方式);

2)硬件:I/O接口和存儲器的讀寫控制信號、地址信號都是由CPU發出的(總線由CPU控制)。

缺點:程序的執行速度限定了傳送的最大速度(約為幾十KB/秒)

解決辦法:DMA傳輸外設

內存DMAC35CPUDMACMEMI/OA0~A1536

DMA傳送方式(直接存儲器存取方式)

實現方法1.由專用接口芯片DMA控制器(稱DMAC)控制傳送過程,2.當外設需傳送數據時,通過

DMAC向CPU發出總線請求HOLD

;3.CPU發出總線響應信號HLDA,釋放總線;4.DMAC接管總線,控制外設、內存之間直接數據傳送DMA的工作流程圖

37DMA控制器的工作過程:1)當外設準備好,可以進行DMA傳送時,外設向DMA控制器發出“DMA傳送請求”信號(DRQ);2)DMA控制器收到請求后,向CPU發出“總線請求”信號HOLD,表示希望占用總線;3)CPU在完成當前總線周期后會立即對HOLD信號進行響應。響應包括兩個動作:一是CPU將數據總線、地址總線和相應的控制信號線均置為高阻態,由此放棄對總線的控制權。另一方面,CPU向DMA控制器發出“總線響應”信號(HLDA)。4)DMA控制器收到HLDA信號后,就開始控制總線,并向外設發出DMA響應信號DACK;38DMA控制器的工作過程(續)5)DMA控制器送出地址信號和相應的控制信號,實現外設與內存或內存與內存之間的直接數據傳送;例如,向I/O接口發出讀信號,同時往地址總線上發出存儲器的地址和存儲器寫信號和AEN信號,即可從外設向內存傳送一個字節。6)DMA控制器自動修改地址和字節計數器,并判斷是否需要重復傳送操作。當規定的數據傳送完后,DMA控制器就撤銷發往CPU的HOLD信號。CPU檢測到HOLD失效后,緊接著撤銷HLDA信號,并在下一時鐘周期重新開始控制總線。

39DMAC的結構

數據端口狀態/控制端口DMA控制器地址寄存器計數器控制/狀態寄存器CPU存儲器數據緩沖寄存器DMA請求觸發器輸入設備DMA響應ReadyDMA請求HOLDHLDADACK,應答信號端口地址選擇40A8~A15418237A的工作周期8237A具有兩種工作狀態空閑周期:作為接口電路,受CPU控制的工作狀態有效周期:作為DMAC控制DMA傳送的工作狀態428237A的工作周期—空閑周期8237A的任一通道都沒有DMA請求時8237A由微處理器控制作為一個接口芯片CPU可對8237A編程,或從8237A讀取狀態8237A采樣CS*選片信號,該信號有效,CPU就要對8237A進行讀/寫操作8237A還采樣通道的請求輸入信號DREQ,該信號有效,就進入有效周期438237A的工作周期—有效周期8237A采樣到外設有DMA請求,就脫離空閑周期進入有效周期8237A作為系統的主控芯片,控制DMA傳送操作DMA傳送借用系統總線完成,其控制信號以及工作時序類似CPU總線周期44(1)DMA傳送-單字節方式每次DMA傳送時僅傳送一個字節傳送一個字節之后,字節數寄存器減1,地址寄存器加1或減1,HRQ變為無效8237A釋放系統總線,將控制權還給CPU若傳送后使字節數從0減到FFFFH,則終結DMA傳送或重新初始化特點:一次傳送一個字節,效率略低DMA傳送之間CPU有機會重新獲取總線控制權DMA傳送方式45(2)DMA傳送-數據塊方式由DREQ啟動就連續地傳送數據,直到字節數寄存器從0減到FFFFH終止計數,或由外部輸入有效信號終結DMA傳送DREQ只需維持有效到DACK有效特點:一次請求傳送一個數據塊,效率高整個DMA傳送期間CPU長時間無法控制總線(無法響應其他DMA請求、無法處理中斷等)46(3)DMA傳送-請求方式DREQ信號有效就連續傳送數據DREQ信號無效,DMA傳送被暫時中止,8237A釋放總線,CPU可繼續操作DMA通道的地址和字節數的中間值仍被保持DREQ信號再次有效,DMA傳送就繼續進行如果字節數寄存器從0減到FFFFH,或者由外部送來一個有效的信號,將終止計數特點:DMA操作可由外設利用DREQ信號控制傳送的過程47(4)DMA傳送-級連方式用于通過多個8237A級連以擴展通道第二級的HRQ和HLDA信號連到第一級某個通道的DREQ和DACK上第二級芯片的優先權等級與所連通道的優先權相對應第一級只起優先權網絡的作用,實際的操作由第二級芯片完成還可由第二級擴展到第三級等48DMA寫——把外設輸入的數據寫入存儲器由IOR*有效從外設輸入數據,由MEMW*有效把這一數據寫入存儲器。DMA讀——把數據由存儲器傳送到外設由MEMR*有效從存儲器讀出數據,由IOW*有效把這一數據寫入外設。DMA傳輸類型49固定使用通道0和通道1通道0的地址寄存器存源區地址通道1的地址寄存器存目的區地址,通道1的字節數寄存器存傳送的字節數傳送由設置通道0的軟件請求啟動每傳送一字節需用8個時鐘周期前4個時鐘周期用通道0地址寄存器的地址從源區讀數據送入8237A的臨時寄存器后4個時鐘周期用通道1地址寄存器的地址把臨時寄存器中的數據寫入目的區存儲器到存儲器的傳送50DMA通道的優先權方式固定優先權方式——優先權固定通道0優先權最高,通道1其次,通道2再次,通道3最低循環優先權方式——優先權循環變化最近一次服務的通道在下次循環中變成最低優先權,其他通道依次輪流相應的優先權DMA傳送不存在嵌套511.基地址寄存器

2.基字節數寄存器

3.當前地址寄存器

4.當前字節數寄存器

5.地址暫存寄存器和字節數暫存寄存器8237的內部寄存器52A8~A15536.方式寄存器存放相應通道的方式控制字選擇某個DMA通道的工作方式其中用最低2位選擇哪個DMA通道請看方式字的格式5400通道001通道110通道211通道300 校驗傳輸01 DMA寫10 DMA讀11 非法×× 若D7D6=110禁止自動初始化1允許自動初始化0地址增量(加1)1地址減量(減1)方式字格式D7D6D5D4D3D2D1D000請求傳輸方式01單字節傳輸方式10數據塊傳輸方式11級聯傳輸方式557.命令寄存器存放8237A的命令字設置8237A芯片的操作方式影響每個DMA通道復位時使命令寄存器清零設置D2=1才使8237A可以作為DMA控制器請看命令字的格式56命令字格式D7D6D5D4D3D2D1D00DACK低電平有效1DACK高電平有效0DREQ高電平有效1DREQ低電平有效0不擴展寫1擴展寫×若D3=10固定優先權1循環優先權0正常時序1壓縮時序×若D0=10啟動8237工作1停止8237工作0禁止通道0地址保持1允許通道0地址保持×若D0=00禁止存儲器之間傳送1允許存儲器之間傳送578.請求寄存器用于軟件控制下產生DMA請求除硬件DMA請求外,當工作在數據塊傳送方式時也可以通過軟件發出DMA請求若是存儲器到存儲器傳送,則必須由軟件請求啟動通道058請求字格式D7D6D5D4D3D2D1D0無用0復位1置位00通道001通道110通道211通道3599.屏蔽寄存器控制外設硬件DMA請求是否被響應(為0允許),各個通道互相獨立。3種方法:單通道屏蔽字只對一個DMA通道屏蔽位進行設置主屏蔽字對4個DMA通道屏蔽位同時進行設置清屏蔽寄存器命令使4個屏蔽位都清零(允許)復位使4個通道全置于屏蔽狀態當一個通道的DMA過程結束,如果不是工作在自動初始化方式,則這一通道的屏蔽位置位,必須再次編程為允許,才能進行下次DMA傳送60單通道屏蔽字格式D7D6D5D4D3D2D1D0無用0清屏蔽位1置屏蔽位00通道001通道110通道211通道361四通道屏蔽字格式D7D6D5D4D3D2D1D0無用Di=0清通道I屏蔽位Di=1置通道I屏蔽位6210.狀態寄存器可由CPU讀取低4位反映讀命令這個瞬間每個通道是否產生TC(為1,表示該通道傳送結束)高4位反映每個通道的DMA請求情況(為1,表示該通道有請求)狀態位在復位或被讀出后,均被清零6311.暫存寄存器在存儲器到存儲器的傳送方式下,暫存寄存器保存從源存儲單元讀出的數據,該數據又被寫入到目的存儲單元傳送完成,暫存寄存器只會保留最后一個字節,可由CPU讀出復位使暫存寄存器內容為零12.字節指針寄存器641.58237A的編程8327A芯片的初始化編程:只要寫入命令寄存器可先輸出主清除命令,進行軟件復位然后寫入命令字命令字影響所有4個通道的操作65選擇頁寄存器DACK3選擇頁寄存器DACK2選擇頁寄存器DACK1選擇頁寄存器A19~A16DACK0A19~A16A15~A08237DMAC利用頁寄存器產生存儲器地址66地址低字節總清地址高字節字數低字節字數高字節方式字命令字屏蔽字其他通道參數8237的初始化67PC機中8237的連接68OU

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論