微機原理教程06_第1頁
微機原理教程06_第2頁
微機原理教程06_第3頁
微機原理教程06_第4頁
微機原理教程06_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第6章輸入輸出接口第6章輸入輸出接口教學重點

I/O接口電路的典型結(jié)構(gòu)無條件傳送查詢傳送

中斷傳送6.1I/O接口概述為什么需要I/O接口(電路)?微機的外部設(shè)備多種多樣工作原理、驅(qū)動方式、信息格式、以及工作速度方面彼此差別很大它們不能與CPU直接相連必須經(jīng)過中間電路再與系統(tǒng)相連這部分電路被稱為I/O接口電路多種外設(shè)6.1I/O接口概述(續(xù)1)什么是I/O接口(電路)?I/O接口是位于系統(tǒng)與外設(shè)間、用來協(xié)助完成數(shù)據(jù)傳送和控制任務的邏輯電路PC機系統(tǒng)板的可編程接口芯片、I/O總線槽的電路板(適配器)都是接口電路CPU接口電路

I/O設(shè)備6.1I/O接口概述(續(xù)2)什么是微機接口技術(shù)?處理微機系統(tǒng)與外設(shè)間聯(lián)系的技術(shù)注意其軟硬結(jié)合的特點根據(jù)應用系統(tǒng)的需要,使用和構(gòu)造相應的接口電路,編制配套的接口程序,支持和連接有關(guān)的設(shè)備6.1.1I/O接口的典型結(jié)構(gòu)控制總線CB地址總線ABI/O接口電路數(shù)據(jù)控制狀態(tài)數(shù)據(jù)總線DBCPU外設(shè)控制寄存器狀態(tài)寄存器數(shù)據(jù)寄存器1.內(nèi)部結(jié)構(gòu)2.外部特性3.基本功能4.軟件編程1.內(nèi)部結(jié)構(gòu)CPU與外設(shè)主要有數(shù)據(jù)、狀態(tài)和控制信息需要相互交換,于是從應用角度看內(nèi)部:⑴數(shù)據(jù)寄存器輸入數(shù)據(jù)寄存器:保存外設(shè)給CPU的數(shù)據(jù)輸出數(shù)據(jù)寄存器:保存CPU給外設(shè)的數(shù)據(jù)⑵狀態(tài)寄存器保存外設(shè)或接口電路的狀態(tài)⑶控制寄存器保存CPU給外設(shè)或接口電路的命令2.外部特性主要體現(xiàn)在引腳上,分成兩側(cè)信號面向CPU一側(cè)的信號:用于與CPU連接主要是數(shù)據(jù)、地址和控制信號面向外設(shè)一側(cè)的信號:用于與外設(shè)連接提供的信號五花八門功能定義、時序及有效電平等差異較大3.基本功能數(shù)據(jù)緩沖匹配快速的處理器與相對慢速的外設(shè)的數(shù)據(jù)交換緩沖:實現(xiàn)接口雙方數(shù)據(jù)傳輸?shù)乃俣绕ヅ湫盘栕儞Q把信號相互轉(zhuǎn)換為適合對方的形式計算機直接處理的信號數(shù)字量(0和1組成的信號編碼)開關(guān)量(只有兩種狀態(tài)的信號)脈沖量(低脈沖信號,高脈沖信號)4.軟件編程接口具有可編程性(Programmable)命令字(控制字)寫入接口芯片、選擇工作方式、控制數(shù)據(jù)傳輸初始化程序選擇I/O接口工作方式、設(shè)置原始工作狀態(tài)等驅(qū)動程序操縱I/O接口完成具體工作硬件接口電路需要軟件編程配合工作6.1.2I/O端口的編址I/O端口=I/O地址,對應I/O接口的寄存器一個接口電路可以具有多個I/O端口,每個端口用來保存和交換不同的信息數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器占有的I/O地址常依次被稱為數(shù)據(jù)端口、狀態(tài)端口和控制端口輸入、輸出端口可以是同一個I/O地址如何編排存儲器地址和I/O地址?端口?

1.I/O端口與存儲器地址獨立編址優(yōu)點:I/O端口的地址空間獨立控制和地址譯碼電路相對簡單專門的I/O指令使程序清晰易讀缺點:I/O指令沒有存儲器指令豐富主存空間I/O空間FFFFF0FFFF80x86支持I/O端口獨立編址2.I/O端口與存儲器地址統(tǒng)一編址優(yōu)點:不需要專門的I/O指令I(lǐng)/O數(shù)據(jù)存取與存儲器數(shù)據(jù)存取一樣靈活缺點:I/O端口要占去部分存儲器地址空間程序不易閱讀(不易分辨訪問存儲器和訪問外設(shè))主存部分I/O部分存儲器空間00000FFFFF3.I/O地址譯碼與存儲器地址譯碼在原理和方法上完全相同I/O地址不太強調(diào)連續(xù),多采用部分譯碼6.1.3輸入輸出指令輸入指令(IN:將外設(shè)數(shù)據(jù)傳送給CPU內(nèi)的AL/AX)INAL,i8 ;字節(jié)輸入INAL,DX ;字節(jié)輸入INAX,i8 ;字輸入INAX,DX ;字輸入輸出指令(OUT:將CPU內(nèi)的AL/AX數(shù)據(jù)傳送給外設(shè))OUTi8,AL ;字節(jié)輸出OUTDX,AL ;字節(jié)輸出OUTi8,AX ;字輸出OUTDX,AX ;字輸出演示8088/8086的I/O端口8088只能通過輸入輸出指令與外設(shè)進行數(shù)據(jù)交換;呈現(xiàn)給程序員的外設(shè)是端口(Port),即I/O地址8086用于尋址外設(shè)端口的地址線為16條,端口最多為216=65536(64K)個,端口號為0000H~FFFFH每個端口用于傳送一個字節(jié)的外設(shè)數(shù)據(jù)1.I/O尋址方式8088/8086的端口有64K個,無需分段,設(shè)計有兩種尋址方式直接尋址:只用于尋址00H~FFH前256個端口,操作數(shù)i8表示端口號間接尋址:可用于尋址全部64K個端口,DX寄存器的值就是端口號對大于FFH的端口只能采用間接尋址方式2.I/O數(shù)據(jù)傳輸量如果輸入輸出一個字節(jié),利用AL寄存器如果輸入輸出一個字,利用AX寄存器輸入一個字,實際上是從連續(xù)兩個端口輸入兩個字節(jié),分別送AL(對應低地址端口)和AH(對應高地址端口)輸出一個字,實際上是將AL(對應低地址端口)和AH(對應高地址端口)兩個字節(jié)的內(nèi)容輸出給連續(xù)兩個端口IN指令實例(從20H端口輸入一個字);方法1:直接尋址,字量輸入

inax,20h;方法2:間接尋址,字量輸入

movdx,20h

inax,dx;方法3:直接尋址,字節(jié)量輸入

inal,21h

mov

ah,al

inal,20h;方法4:間接尋址,字節(jié)量輸入

movdx,21h

inal,dx

mov

ah,al

dec

dx

inal,dxOUT指令實例(向300H端口輸出一個字節(jié));唯一的方法:間接尋址,字節(jié)量輸出

mov

al,bvar

;bvar是字節(jié)變量

movdx,300h

outdx,al6.1.4數(shù)據(jù)傳送方式附加硬件控制軟件程序控制無條件傳送查詢傳送中斷傳送直接存儲器存取(DMA傳送)I/O處理器控制傳送6.2無條件傳送在CPU與慢速變化的設(shè)備交換數(shù)據(jù)時,可以認為它們總是處于“準備好”狀態(tài),隨時可以進行數(shù)據(jù)傳送,這就是無條件傳送,或稱立即傳送、同步傳送適合于簡單設(shè)備,如LED數(shù)碼管、按鍵或按紐等無條件傳送的接口和操作均十分簡單這種傳送有前提:外設(shè)必須隨時就緒無條件傳送:輸入示例MOV DX,160HINAL,DX無條件傳送:輸入實例MOV DX,160HINAL,DX74LS244+5V10Kx8G1G2數(shù)據(jù)總線CSRD無條件傳送:輸出示例MOVDX,160HMOVAL,[BX]OUTDX,AL無條件傳送:輸出實例MOVDX,160HMOVAL,[BX]OUTDX,AL+5V74LS373300

x8LEOE數(shù)據(jù)總線CSWRK7K1K0+5VD0~D7A0~A15CLK8位反相驅(qū)動器8位鎖存器8位三態(tài)緩沖器6000H譯碼+5VLED0LED7……GIOWIOR無條件傳送:輸入輸出接口

movdx,6000h ;DX指向數(shù)據(jù)端口

inal,dx ;從輸入端口讀開關(guān)狀態(tài)

notal ;反相

outdx,al ;送輸出端口顯示

calldelay ;調(diào)子程序延時6.3查詢傳送CPU需要先了解(查詢)外設(shè)的工作狀態(tài),然后在外設(shè)可以交換信息的情況下(準備好)實現(xiàn)數(shù)據(jù)輸入或輸出對多個外設(shè)的情況,則CPU按一定順序依次查詢(輪詢)。先查詢的外設(shè)將優(yōu)先進行數(shù)據(jù)交換查詢傳送的特點是:工作可靠,適用面寬,但傳送效率低準備好?查詢傳送的兩個環(huán)節(jié)⑴查詢環(huán)節(jié)尋址狀態(tài)口讀取狀態(tài)寄存器的標志位若不就緒就繼續(xù)查詢,直至準備好⑵傳送環(huán)節(jié)尋址數(shù)據(jù)口是輸入,通過輸入指令從數(shù)據(jù)端口讀入數(shù)據(jù)是輸出,通過輸出指令向數(shù)據(jù)端口輸出數(shù)據(jù)輸入狀態(tài)準備好?數(shù)據(jù)交換YN超時IOR+5V8位鎖存器8位三態(tài)緩沖器譯碼1位三態(tài)緩沖器RQ

A0~A155001H5000HD0~D7D0D輸入設(shè)備IORSTB

movdx,5001h

;DX指向狀態(tài)端口status:

inal,dx

;讀狀態(tài)端口

testal,01h

;測試標志位D0

jzstatus

;D0=0,未準備好,繼續(xù)查詢

dec

dx

;D0=1,準備好,DX指向數(shù)據(jù)端口

inal,dx

;從數(shù)據(jù)端口輸入數(shù)據(jù)2.查詢輸入接口8位鎖存器譯碼1位三態(tài)緩沖器RQ

A0~A155001H5002HD0~D7D7D+5V輸出設(shè)備ACKIOWIOR

movdx,5001h

;DX指向狀態(tài)端口status:

inal,dx

;讀取狀態(tài)端口的狀態(tài)數(shù)據(jù)

testal,80h

;測試標志位D7

jnzstatus

;D7=1,未就緒,繼續(xù)查詢

incdx

;D7=0,就緒,DX指向數(shù)據(jù)端口

mov

al,buf

;變量buf送AL

outdx,al

;將數(shù)據(jù)輸出給數(shù)據(jù)端口3.查詢輸出接口6.4中斷傳送斷點主程序中斷服務程序中斷請求對外設(shè)進行處理繼續(xù)執(zhí)行返回斷點外設(shè)主動提出請求處理器響應請求執(zhí)行中斷服務程序, 完成一次數(shù)據(jù)傳送中斷處理結(jié)束, 繼續(xù)執(zhí)行原來程序6.4.1中斷工作過程中斷請求中斷響應中斷關(guān)閉斷點保護

中斷源識別

現(xiàn)場保護中斷服務

恢復現(xiàn)場中斷開放中斷返回中斷流程數(shù)據(jù)交換的實質(zhì)性環(huán)節(jié)中斷接口1.中斷請求和響應中斷請求外設(shè)以硬件信號的形式、向處理器發(fā)送有效信號,應保持有效到被響應中斷傳送過程由外設(shè)的中斷請求啟動,獲得處理器認可,才真正進入中斷傳送過程處理器需要滿足一定條件,才能響應中斷請求:(1)指令執(zhí)行結(jié)束后才能響應外設(shè)的中斷請求(2)處理器處于開放中斷的狀態(tài)(3)中斷請求的同時,沒有更高級別的其他請求中斷流程2.中斷關(guān)閉和開放中斷開放允許可屏蔽中斷被響應中斷允許、開中斷中斷關(guān)閉不允許可屏蔽中斷被響應中斷被屏蔽了、被禁止了,關(guān)中斷2級(多級)中斷響應控制處理器的中斷屏蔽位:控制所有可屏蔽中斷外設(shè)接口電路的中斷屏蔽位:靈活控制某個外設(shè)中斷流程中斷屏蔽位用于實現(xiàn)中斷的靈活控制3.斷點保護和中斷返回斷點是指被中斷執(zhí)行的指令位置斷點保護保護斷點指令所在的存儲器地址斷點保護一般由處理器自動完成有的處理器還可能自動保護程序狀態(tài)中斷返回處理器返回斷點繼續(xù)執(zhí)行原來的程序中斷服務程序最后的一條中斷返回指令實現(xiàn)中斷流程5.現(xiàn)場保護和恢復現(xiàn)場:對處理器執(zhí)行程序有影響的工作環(huán)境進入中斷后需要保護現(xiàn)場中斷返回前需要恢復現(xiàn)場斷點地址(或加上程序狀態(tài))由處理器硬件自動保護其他需要由中斷服務程序進行保護和恢復(通常是處理器的通用寄存器)具體的編程方法可以類似子程序編程中斷流程中斷源的識別4.中斷源識別問題1:系統(tǒng)有多個中斷請求,CPU如何識別中斷源?解答1:中斷向量(圖6-12)解答2:中斷查詢(圖6-13)中斷向量接口中斷查詢接口中斷流程中斷優(yōu)先權(quán)排隊6.4.2中斷優(yōu)先權(quán)管理問題2:有多個中斷同時請求,CPU如何應對?解答1:軟件查詢:逐個判斷解答2:硬件電路:編碼電路、鏈式排隊電路中斷嵌套6.4.2中斷優(yōu)先權(quán)管理(續(xù))問題3:中斷處理過程中,又有中斷提出請求,怎么辦?原則1:優(yōu)先權(quán)低于或等于,不予理會原則2:優(yōu)先權(quán)高于,中斷嵌套6.5DMA傳送希望克服程序控制傳送的不足:外設(shè)→CPU→存儲器外設(shè)←CPU←存儲器直接存儲器存取DMA:外設(shè)→存儲器外設(shè)←存儲器CPU釋放總線,由DMA控制器管理傳送方式的比較無條件傳送慢速外設(shè)需與CPU保持同步查詢傳送簡單實用,效率較低中斷傳送外設(shè)主動,可與CPU并行工作,但每次傳送需要大量額外時間開銷DMA傳送DMAC控制,外設(shè)直接和存儲器進行數(shù)據(jù)傳送,適合大量、快速數(shù)據(jù)傳送第6章:教學要求1.了解I/O接口電路的主要功能、內(nèi)部和外部特點、端口編址方法、I/O地址譯碼特點2.掌握輸入輸出指令3.掌握無條件、查詢傳送方式4.理解中斷、中斷源、中斷工作過程、中斷源識別、優(yōu)先權(quán)排隊和中斷嵌套多種多樣的外設(shè)工作原理不同機械、電子、機電、電磁……傳送信息類型多樣數(shù)字量、模擬量、開關(guān)量傳送速度差別極大傳送方式不盡相同串行、并行編碼方式不同二進制、BCD碼、ASCII碼……返回端口(PORT)端口泛指I/O地址,通常對應接口電路的寄存器一個接口電路可以具有多個I/O端口(寄存器),每個端口用來保存和交換不同的信息數(shù)據(jù)寄存器、狀態(tài)寄存器和控制寄存器占有的I/O地址常依次被稱為數(shù)據(jù)端口、狀態(tài)端口和控制端口,用于保存數(shù)據(jù)、狀態(tài)和控制信息輸入、輸出端口可以是同一個I/O地址一定要理解返回輸入輸出指令返回輸入接口的緩沖環(huán)節(jié)內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳選通緩沖器返回輸出接口的鎖存環(huán)節(jié)內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳鎖存控制DCQDCQDCQ返回輸入接口的鎖存、緩沖環(huán)節(jié)內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳鎖存控制鎖存器緩沖器DCDCDCQQQ選通返回輸出接口的鎖存、緩沖環(huán)節(jié)內(nèi)部數(shù)據(jù)總線外部數(shù)據(jù)引腳鎖存控制DCQDCQDCQ讀數(shù)據(jù)返回準備好(Ready)在輸入場合“準

溫馨提示

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

評論

0/150

提交評論