第6章基本IO接口技術(shù)_第1頁
第6章基本IO接口技術(shù)_第2頁
第6章基本IO接口技術(shù)_第3頁
第6章基本IO接口技術(shù)_第4頁
第6章基本IO接口技術(shù)_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第6章基本輸入輸出接口技術(shù)教學(xué)重點(diǎn)

I/O接口電路的典型結(jié)構(gòu)無條件傳送方式查詢傳送方式中斷工作過程第一頁,共99頁。第一頁,共99頁。6.1I/O接口概述什么是I/O接口(電路)?I/O接口是位于系統(tǒng)與外設(shè)間、用來協(xié)助完成數(shù)據(jù)傳送和控制任務(wù)的邏輯電路PC機(jī)系統(tǒng)板的可編程接口芯片、I/O總線槽的電路板(適配器)都是接口電路CPU接口電路

I/O設(shè)備第二頁,共99頁。第二頁,共99頁。6.1I/O接口概述(續(xù))

數(shù)據(jù)總線DB控制總線CB地址總線AB存儲(chǔ)器I/O接口輸入設(shè)備I/O接口輸出設(shè)備CPU微型計(jì)算機(jī)的結(jié)構(gòu)示意圖第三頁,共99頁。第三頁,共99頁。6.1I/O接口概述(續(xù))外部設(shè)備與微機(jī)之間連接要通過輸入輸出接口電路(簡(jiǎn)稱I/O接口)來完成。

常用的I/O外設(shè)有:鍵盤、鼠標(biāo)器、CRT、打印機(jī)、繪圖儀及軟、硬盤驅(qū)動(dòng)器等。輸入輸出設(shè)備(I/O外設(shè))是計(jì)算機(jī)系統(tǒng)的重要組成部分。第四頁,共99頁。第四頁,共99頁。6.1.1I/O信息的種類

數(shù)字量數(shù)據(jù)信息模擬量交換的信息有:開關(guān)量狀態(tài)信息控制信息第五頁,共99頁。第五頁,共99頁。6.1.1I/O信息的種類(續(xù))1.數(shù)據(jù)信息數(shù)字量:以二進(jìn)制形式或ASCII碼表示模擬量:如溫度、壓力、流量、位移等各種非電量現(xiàn)場(chǎng)信息,經(jīng)由傳感器及其調(diào)理電路轉(zhuǎn)換成的電量,大多是模擬電壓或電流。開關(guān)量:兩個(gè)狀態(tài)。如開關(guān)的斷開與閉合,閥門的打開與關(guān)閉等。這些開關(guān)量只要一位二進(jìn)制數(shù)即可表示。數(shù)據(jù)的傳送可采用并行傳送(n位同時(shí))串行傳送(一位一位)第六頁,共99頁。第六頁,共99頁。6.1.1I/O信息的種類(續(xù))2.狀態(tài)信息

—CPU與外設(shè)之間交換數(shù)據(jù)時(shí)的聯(lián)絡(luò)信息3.控制信息

—CPU發(fā)給外設(shè)的命令信息。第七頁,共99頁。第七頁,共99頁。6.1.2I/O接口的功能1.為什么需要I/O接口(電路)?微機(jī)的外部設(shè)備多種多樣工作原理、驅(qū)動(dòng)方式、信息格式、以及工作速度方面彼此差別很大它們不能與CPU直接相連必須經(jīng)過中間電路再與系統(tǒng)相連這部分電路被稱為I/O接口電路多種外設(shè)第八頁,共99頁。第八頁,共99頁。1.為什么要用接口電路?第九頁,共99頁。第九頁,共99頁。2.I/O接口的類型

接口電路可分為:

專用接口可編程接口并行接口通用接口不可編程接口串行接口第十頁,共99頁。第十頁,共99頁。3.I/O接口的主要功能⑴對(duì)輸入輸出數(shù)據(jù)進(jìn)行緩沖和鎖存輸出接口有鎖存環(huán)節(jié);輸入接口有緩沖環(huán)節(jié)實(shí)際的電路常見:輸出鎖存緩沖環(huán)節(jié)、輸入鎖存緩沖環(huán)節(jié)⑵設(shè)備選擇--對(duì)I/O端口進(jìn)行尋址⑶對(duì)信號(hào)的形式和數(shù)據(jù)的格式進(jìn)行變換微機(jī)直接處理:數(shù)字量、開關(guān)量、脈沖量⑷與CPU和I/O設(shè)備進(jìn)行聯(lián)絡(luò)(5)中斷管理(6)可編程第十一頁,共99頁。第十一頁,共99頁。6.1.3I/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.接口電路的可編程性第十二頁,共99頁。第十二頁,共99頁。1.接口電路的內(nèi)部結(jié)構(gòu)CPU與外設(shè)主要有數(shù)據(jù)、狀態(tài)和控制信息需要相互交換,于是從應(yīng)用角度看內(nèi)部:⑴數(shù)據(jù)寄存器輸入數(shù)據(jù)寄存器:保存外設(shè)給CPU的數(shù)據(jù)輸出數(shù)據(jù)寄存器:保存CPU給外設(shè)的數(shù)據(jù)⑵狀態(tài)寄存器保存外設(shè)或接口電路的狀態(tài)⑶控制寄存器保存CPU給外設(shè)或接口電路的命令第十三頁,共99頁。第十三頁,共99頁。2.接口電路的外部特性主要體現(xiàn)在引腳上,分成兩側(cè)信號(hào)面向CPU一側(cè)的信號(hào):用于與CPU連接主要是數(shù)據(jù)、地址和控制信號(hào)面向外設(shè)一側(cè)的信號(hào):用于與外設(shè)連接提供的信號(hào)五花八門功能定義、時(shí)序及有效電平等差異較大第十四頁,共99頁。第十四頁,共99頁。3.接口電路芯片的分類接口電路核心部分往往是一塊或數(shù)塊大規(guī)模集成電路芯片(接口芯片):通用接口芯片支持通用的數(shù)據(jù)輸入輸出和控制的接口芯片面向外設(shè)的專用接口芯片針對(duì)某種外設(shè)設(shè)計(jì)、與該種外設(shè)接口

面向微機(jī)系統(tǒng)的專用接口芯片與CPU和系統(tǒng)配套使用,以增強(qiáng)其總體功能第十五頁,共99頁。第十五頁,共99頁。4.接口電路的可編程性許多接口電路具有多種功能和工作方式,可以通過編程的方法選定其中一種接口需進(jìn)行物理連接,還需編寫接口軟件接口軟件有兩類:初始化程序段——設(shè)定芯片工作方式等數(shù)據(jù)交換程序段——管理、控制、驅(qū)動(dòng)外設(shè),負(fù)責(zé)外設(shè)和系統(tǒng)間信息交換第十六頁,共99頁。第十六頁,共99頁。從編程角度看,接口內(nèi)部主要包括一個(gè)或多個(gè)CPU可以進(jìn)行讀/寫操作的寄存器,又稱為I/O端口。各I/O端口由端口地址區(qū)分。I/O端口1I/O端口2I/O端口3地址譯碼數(shù)據(jù)緩沖控制電路外設(shè)ABDBCBCPU第十七頁,共99頁。第十七頁,共99頁。5.接口電路結(jié)構(gòu)說明

狀態(tài)信息和控制信息通常也是通過數(shù)據(jù)總線傳送的。

數(shù)據(jù)一個(gè)外設(shè)往往占用幾個(gè)端口狀態(tài)合并控制CPU與外設(shè)間的信息交換,實(shí)際上就是通過I/O指令讀/寫端口的數(shù)據(jù),只是對(duì)不同的端口,讀寫的數(shù)據(jù)性質(zhì)不同。第十八頁,共99頁。第十八頁,共99頁。6.1.4I/O端口的編址方式接口電路占用的I/O端口有兩類編排形式I/O端口獨(dú)立編址--直接I/O映射方式I/O地址空間獨(dú)立于存儲(chǔ)地址空間如8086/8088I/O端口與存儲(chǔ)器統(tǒng)一編址--存儲(chǔ)器映射方式它們共享一個(gè)地址空間如M6800、單片機(jī)系列第十九頁,共99頁。第十九頁,共99頁。⑴I/O端口獨(dú)立編址內(nèi)存空間I/O空間FFFFF0FFFF優(yōu)點(diǎn):端口與存儲(chǔ)器分別獨(dú)立編址

端口不占用內(nèi)存空間設(shè)有專門的I/O指令對(duì)端口進(jìn)行讀寫,使程序清晰易讀。對(duì)內(nèi)存操作的指令不能用于I/O端口用控制信號(hào)IO/M(8088)區(qū)分M(控制線)M/IO(8086)或I/O第二十頁,共99頁。第二十頁,共99頁。⑴I/O端口獨(dú)立編址內(nèi)存空間I/O空間FFFFF0FFFF80x86采用I/O端口獨(dú)立編址缺點(diǎn):I/O指令沒有存儲(chǔ)器指令豐富例

MOV[10H],AL

對(duì)內(nèi)存操作

OUT10H,AL

對(duì)端口操作第二十一頁,共99頁。第二十一頁,共99頁。⑵I/O端口與存儲(chǔ)器統(tǒng)一編址優(yōu)點(diǎn):不需要專門的I/O指令I(lǐng)/O數(shù)據(jù)存取與存儲(chǔ)器數(shù)據(jù)存取一樣靈活缺點(diǎn):I/O端口要占去部分存儲(chǔ)器地址空間,使內(nèi)存容量減小程序不易閱讀(不易分清訪存和訪問外設(shè))內(nèi)存部分I/O部分存儲(chǔ)器空間00000FFFFF第二十二頁,共99頁。第二十二頁,共99頁。6.1.58088/8086的輸入輸出指令輸入指令(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 ;字輸出演示演示第二十三頁,共99頁。第二十三頁,共99頁。1.8088/8086的I/O端口8088/8086只能通過輸入輸出指令與外設(shè)進(jìn)行數(shù)據(jù)交換;呈現(xiàn)給程序員的外設(shè)是端口(Port),即I/O地址8088/8086用于尋址外設(shè)端口的地址線為16條,端口最多為216=65536(64K)個(gè),端口號(hào)為0000H~FFFFH每個(gè)端口用于傳送一個(gè)字節(jié)的外設(shè)數(shù)據(jù)第二十四頁,共99頁。第二十四頁,共99頁。2.I/O尋址方式8088/8086的端口有64K個(gè),無需分段,設(shè)計(jì)有兩種尋址方式直接尋址:只用于尋址00H~FFH前256個(gè)端口,操作數(shù)i8表示端口號(hào)間接尋址:可用于尋址全部64K個(gè)端口,DX寄存器的值就是端口號(hào)對(duì)大于FFH的端口只能采用間接尋址方式第二十五頁,共99頁。第二十五頁,共99頁。3.數(shù)據(jù)交換方式如果輸入輸出一個(gè)字節(jié),利用AL寄存器如果輸入輸出一個(gè)字,利用AX寄存器輸入一個(gè)字,實(shí)際上是從連續(xù)兩個(gè)端口輸入兩個(gè)字節(jié),分別送AL(對(duì)應(yīng)低地址端口)和AH(對(duì)應(yīng)高地址端口)輸出一個(gè)字,實(shí)際上是將AL(對(duì)應(yīng)低地址端口)和AH(對(duì)應(yīng)高地址端口)兩個(gè)字節(jié)的內(nèi)容輸出給連續(xù)兩個(gè)端口第二十六頁,共99頁。第二十六頁,共99頁。例

(1)INAL,28H

若(28H端口)=10101111B執(zhí)行后(AL)=(28H端口)=0AFH(2)

INAX,28H

若(28H端口)=10101111B(29H端口)=01010000B執(zhí)行后(AL)=(28H端口)=0AFH(AH)=(29H端口)=50H(3)

MOVDX,300HINAL,DX

若(300H端口)=69H執(zhí)行后(AL)=(300H端口)=69H第二十七頁,共99頁。第二十七頁,共99頁。(1)

OUT21H,AL

若(AL)=11001100B執(zhí)行后(21H端口)=0CCH(2)

MOVDX,21BH

OUTDX,AL

若(AL)=10100110B執(zhí)行后(21BH端口)=(AL)=0A6H例第二十八頁,共99頁。第二十八頁,共99頁。(1)累加器AL、AX的專用指令

對(duì)輸入指令I(lǐng)N,目的操作數(shù)只能為AL,或AXINAL,21HINAX,DXINBX,21H

對(duì)輸出指令OUT,源操作數(shù)只能為AL,或AXOUT20H,ALOUTDX,AXOUTDX,CX

輸入/輸出指令(IN、OUT)特點(diǎn):第二十九頁,共99頁。第二十九頁,共99頁。(2)端口地址可由直接方式或間接方式給出

例OUT219H,AL×MOVDX,219HOUTDX,AL例

INAL,218H

×

MOVDX,218HINAL,DX當(dāng)端口號(hào)>FFH,即>255時(shí),需把端口號(hào)放在DX寄存器中,DX是一個(gè)16位寄存器,范圍在0~FFFFH之間。當(dāng)端口號(hào)在0~FFH,即0~255時(shí),可在指令中直接指定端口號(hào)例

INAL,21HOUT20H,AL第三十頁,共99頁。第三十頁,共99頁。

當(dāng)端口號(hào)在0~FFH,即0~255時(shí),可在指令中直接指定端口號(hào),稱長格式指令當(dāng)端口號(hào)>FFH,即>255時(shí),需把端口號(hào)放在DX寄存器中,稱短格式指令原因是使用直接端口方式的指令機(jī)器碼相對(duì)長例

指令機(jī)器碼

INAL,21HE421;兩個(gè)字節(jié)

OUT20H,ALE620

INAL,DXEC;一個(gè)字節(jié)

OUTDX,ALEE第三十一頁,共99頁。第三十一頁,共99頁。(3)可進(jìn)行字節(jié)或字傳送

由指令中AL或AX的類型決定(4)注意端口地址與端口內(nèi)容的區(qū)別

INAL,21H不等于(AL)←21HOUTDX,AL不等于(DX)←(AL)區(qū)別:MOVAL,21HINAL,20H;字節(jié)傳送INAX,20H;字傳送INAL,DX;字節(jié)傳送INAX,DX;字傳送OUT20H,AL

;字節(jié)傳送OUT20H,AX

;字傳送OUTDX,AL

;字節(jié)傳送OUTDX,AX

;字傳送第三十二頁,共99頁。第三十二頁,共99頁。IN指令實(shí)例(從20H端口輸入一個(gè)字);方法1:直接尋址,字量輸入

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

inal,21h movah,al

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

movdx,21h

inal,dx movah,al decdx

inal,dx第三十三頁,共99頁。第三十三頁,共99頁。OUT指令實(shí)例(向300H端口輸出一個(gè)字節(jié));唯一的方法:間接尋址,字節(jié)量輸出 moval,bvar ;bvar是字節(jié)變量 movdx,300h

outdx,al第三十四頁,共99頁。第三十四頁,共99頁。6.1.6I/O地址的譯碼I/O地址的譯碼方法與存儲(chǔ)器地址的譯碼方法一樣,但有它的特點(diǎn):部分譯碼時(shí),通常是中間地址線不連接部分譯碼也有最低地址線不連接的情況每個(gè)接口電路通常只占用幾個(gè)I/O地址,這時(shí)可以利用基本邏輯門電路進(jìn)行地址譯碼第三十五頁,共99頁。第三十五頁,共99頁。譯碼電路的構(gòu)成74LS138譯碼器門電路:與門、非門、或門、與非門、或非門等譯碼器:2-4線譯碼器74LS1393-8線譯碼器74LS1384-16線譯碼器74LS154等

可用門電路、譯碼器或者兩者的組合實(shí)現(xiàn)。AY0BY1CY2Y3G1Y4G2AY5G2BY6Y7第三十六頁,共99頁。第三十六頁,共99頁。例設(shè)計(jì)端口地址為218H的譯碼電路分析

CPU執(zhí)行IN/OUT指令時(shí),發(fā)出端口的地址信號(hào)MOVDX,218H

INAL,DX

或OUTDX,AL對(duì)應(yīng)218H端口的地址信號(hào)為(取A9~A0):

A9A8A7A6A5A4A3A2A1A0(地址信號(hào))

1000011000B218H只要滿足此地址取值的譯碼電路均可第三十七頁,共99頁。第三十七頁,共99頁。當(dāng)端口地址信號(hào)為:A9A8A7A6A5A4A3A2A1A01000011000即218H時(shí),Y0輸出0,使I/O接口的CS有效方法:用譯碼器、門電路組合實(shí)現(xiàn)218H的地址譯碼74LS1383-8譯碼器218HAY0BY1CY2G1Y3Y4G2AY5Y6G2BY7

0000110000100&A0A1A2AENA3A4A5A6A7A8A9IORIOWPC總線CSI/O接口D0~D7&RDWR數(shù)據(jù)線DBD0~D7端口譯碼電路第三十八頁,共99頁。第三十八頁,共99頁。IBMPC/AT主機(jī)板的I/O譯碼電路接口芯片內(nèi)部譯碼A0~A4DMA控制器1中斷控制器1定時(shí)計(jì)數(shù)器并行接口電路DMA頁面寄存器中斷控制器2DMA控制器2協(xié)處理器A5A6A7A8A9ALS138譯碼器HLDAMASTERABCE1E2E3Y0Y1Y2Y3Y4Y5Y6Y7第三十九頁,共99頁。第三十九頁,共99頁。IBMPC/XT主機(jī)板的I/O譯碼電路Y0Y1Y2Y3Y4Y5Y6Y7A5A6A7A8A9AENIOWAB

CG2BG2AG174LS138DMACS(8237)INTRCS(8259)T/CCS(8253)PPICS(8255)WRTDMAPG(寫DMA頁面寄存器)WRTNMIREG(寫NMI屏蔽寄存器)第四十頁,共99頁。第四十頁,共99頁。邏輯門電路進(jìn)行I/O地址譯碼A9A8A7A6A5A2A4A3AENA1A074LS033E7H第四十一頁,共99頁。第四十一頁,共99頁。6.2簡(jiǎn)單的I/O接口I/O接口功能:對(duì)輸入輸出數(shù)據(jù)進(jìn)行緩沖和鎖存輸出有鎖存環(huán)節(jié);輸入有緩沖環(huán)節(jié)I/O接口電路中應(yīng)用最多的是:

三態(tài)緩沖器數(shù)據(jù)鎖存器

1.三態(tài)緩沖器所謂三態(tài)—指電路輸出端具有三種穩(wěn)態(tài):

1態(tài)(高電平狀態(tài))

0態(tài)(低電平狀態(tài))

第三態(tài)—高阻態(tài)(浮空態(tài))。圖6.3三態(tài)門電路第四十二頁,共99頁。第四十二頁,共99頁。在某一時(shí)刻,只允許一個(gè)設(shè)備與總線相接。-----分時(shí)應(yīng)用總線每個(gè)輸入設(shè)備必須經(jīng)過緩沖隔離才能和數(shù)據(jù)總線相連。74LS244是一種常用的8位三態(tài)緩沖器引腳及內(nèi)部結(jié)構(gòu)P259圖6.4G=0A→Y1隔開

例:P259圖6.5三態(tài)緩沖器構(gòu)成輸入接口

1.三態(tài)緩沖器第四十三頁,共99頁。第四十三頁,共99頁。1.三態(tài)緩沖器第四十四頁,共99頁。第四十四頁,共99頁。該電路在CPU執(zhí)行指令

MOVDX,200HINAL,DX將輸入設(shè)備的數(shù)據(jù)讀入CPU內(nèi)AL中圖中譯碼電路的作用:只當(dāng)A15~A0上出現(xiàn)200H時(shí),(即0000001000000000B)輸出0,其他輸出1。例

一個(gè)輸入設(shè)備的簡(jiǎn)單接口電路三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線IOR地址譯碼地址線

200H000D7~D0A15~A0與非PC總線第四十五頁,共99頁。第四十五頁,共99頁。輸入設(shè)備接口電路,即硬件上保證:只在CPU執(zhí)行從200H端口輸入數(shù)據(jù)時(shí),

三態(tài)門處于工作狀態(tài),使輸入設(shè)備的數(shù)據(jù)送上總線側(cè),而CPU執(zhí)行其它指令時(shí),

三態(tài)門均處于高阻狀態(tài),使輸入設(shè)備的數(shù)據(jù)線與總線側(cè)斷開三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線IOR地址譯碼地址線

200H000D7~D0A15~A0與非PC總線MOVDX,200HINAL,DX思考:其他的指令為什么不可以?第四十六頁,共99頁。第四十六頁,共99頁。2.數(shù)據(jù)鎖存器為什么要數(shù)據(jù)鎖存器?第四十七頁,共99頁。第四十七頁,共99頁。在總線結(jié)構(gòu)的微機(jī)系統(tǒng)中,CPU送出的數(shù)據(jù)以廣播的形式在數(shù)據(jù)線上傳出。

CPU

總線輸出設(shè)備1輸出設(shè)備2輸出設(shè)備3輸出設(shè)備41.數(shù)據(jù)傳送給哪個(gè)輸出設(shè)備?2.CPU要利用總線不停的傳送數(shù)據(jù),總線上的數(shù)據(jù)變化快,如何使慢速設(shè)備有足夠的時(shí)間處理數(shù)據(jù)?第四十八頁,共99頁。第四十八頁,共99頁。輸出設(shè)備利用鎖存器接受CPU輸出的數(shù)據(jù)。1.使某輸出設(shè)備鎖存器的控制端處于觸發(fā)狀態(tài),數(shù)據(jù)通過該鎖存器2.當(dāng)觸發(fā)信號(hào)消失,數(shù)據(jù)鎖存在鎖存器中,外設(shè)側(cè)數(shù)據(jù)不隨總線側(cè)數(shù)據(jù)的變化而變化,使慢速的外設(shè)有足夠的時(shí)間處理數(shù)據(jù)

CPU

總線輸出設(shè)備1CP1鎖存器1輸出設(shè)備2CP2鎖存器2輸出設(shè)備3CP3鎖存器3第四十九頁,共99頁。第四十九頁,共99頁。

輸出設(shè)備的I/O接口要起到鎖存的作用數(shù)據(jù)總線DB控制總線CB地址總線AB存儲(chǔ)器I/O接口輸入設(shè)備I/O接口輸出設(shè)備CPU第五十頁,共99頁。第五十頁,共99頁。2.數(shù)據(jù)鎖存器

DB上的數(shù)據(jù)→數(shù)據(jù)鎖存器AD7-AD0上的地址→地址鎖存器74LS373intel8282常用的8位數(shù)據(jù)鎖存器74LS273引腳及內(nèi)部結(jié)構(gòu)P260圖6.6P260圖6.7數(shù)據(jù)鎖存器構(gòu)成輸出接口第五十一頁,共99頁。第五十一頁,共99頁。2.數(shù)據(jù)鎖存器第五十二頁,共99頁。第五十二頁,共99頁。3.簡(jiǎn)單接口舉例NEXT:MOVDX,PORT-IN

INAL,DX

NOTAL

OUTDX,ALCALLDELAYJMPNEXT

第五十三頁,共99頁。第五十三頁,共99頁。6.3I/O的傳送控制方式

三種傳送方式:無條件(同步傳送)程序控制的I/O查詢式(異步傳送)中斷控制的I/O直接存儲(chǔ)器存?。―MA)方式第五十四頁,共99頁。第五十四頁,共99頁。6.3.1程序控制的I/O利用I/O指令實(shí)現(xiàn),預(yù)先知道何時(shí)進(jìn)行數(shù)據(jù)傳送。

1、無條件傳送——最簡(jiǎn)單,單純的I或O用于:①固定狀態(tài)的外設(shè)(如LED、硬開關(guān)狀態(tài)…)

②工作過程固定CUP與外設(shè)同步操作進(jìn)行數(shù)據(jù)傳送的方式,稱為同步傳送。第五十五頁,共99頁。第五十五頁,共99頁。1、無條件傳送方式在CPU與慢速變化的設(shè)備交換數(shù)據(jù)時(shí),可以認(rèn)為它們總是處于“就緒”狀態(tài),隨時(shí)可以進(jìn)行數(shù)據(jù)傳送,這就是無條件傳送,或稱立即傳送、同步傳送適合于簡(jiǎn)單設(shè)備,如LED數(shù)碼管、按鍵或按鈕等無條件傳送的接口和操作均十分簡(jiǎn)單這種傳送有前提:外設(shè)必須隨時(shí)就緒流程第五十六頁,共99頁。第五十六頁,共99頁。1、無條件傳送方式實(shí)現(xiàn)方法

CPU不查詢外設(shè)工作狀態(tài),與外設(shè)速度的匹配通過在軟件上延時(shí)完成,在程序中直接用I/O指令,完成與外設(shè)的數(shù)據(jù)傳送特點(diǎn)

1.適用于外設(shè)動(dòng)作時(shí)間已知,在CPU與外設(shè)進(jìn)行數(shù)據(jù)傳送時(shí),外設(shè)保證已準(zhǔn)備好的情況2.軟硬件十分簡(jiǎn)單,但時(shí)序要求配合精確。第五十七頁,共99頁。第五十七頁,共99頁。1、無條件傳送方式圖6.9無條件傳送的輸入接口第五十八頁,共99頁。第五十八頁,共99頁。例1

無條件輸入接口接口電路,即硬件上保證:只在CPU執(zhí)行從200H端口輸入數(shù)據(jù)時(shí),三態(tài)門處于工作狀態(tài),使輸入設(shè)備的數(shù)據(jù)送上總線側(cè),而CPU執(zhí)行其它指令時(shí),三態(tài)門均處于高阻狀態(tài),使輸入設(shè)備的數(shù)據(jù)線與總線側(cè)斷開三態(tài)緩沖器輸入設(shè)備數(shù)據(jù)線IOR地址譯碼地址線

200H000D7~D0A15~A0與非PC總線MOV DX,200HINAL,DX第五十九頁,共99頁。第五十九頁,共99頁。無條件輸入編程:從端口200H讀入100個(gè)字節(jié)到內(nèi)存緩沖區(qū)buffer中。、、、MOVAX,SEGbufferMOVDS,AX;取緩沖區(qū)

LEADI,buffer;首地址

MOVCX,100;傳送個(gè)數(shù)

MOVDX,200H;端口地址

next: CALLdelay ;延時(shí)等待INAL,DX;讀入數(shù)據(jù)

MOV[DI],AL;送緩沖區(qū)

INCDI;修改指針

LOOPnext、、、;延時(shí)子程delayPROCPUSHCXMOVCX,80Hcc:LOOPccPOPCX

RETdelayENDP第六十頁,共99頁。第六十頁,共99頁。1、無條件傳送:輸入實(shí)例MOV DX,160HINAL,DX74LS244+5V10Kx8G1G2數(shù)據(jù)總線CSRD第六十一頁,共99頁。第六十一頁,共99頁。1、無條件傳送:輸出接口圖6.10無條件傳送的輸出接口第六十二頁,共99頁。第六十二頁,共99頁。1、無條件傳送:輸出示例MOVDX,160HMOVAL,[BX]OUTDX,AL第六十三頁,共99頁。第六十三頁,共99頁。1、無條件傳送:輸出實(shí)例MOVDX,160HMOVAL,[BX]OUTDX,AL+5V74LS373300x8LEOE數(shù)據(jù)總線CSWR第六十四頁,共99頁。第六十四頁,共99頁。1、無條件傳送:輸入輸出接口K7K1K0+5VD0~D7A0~A15CLKLS06反相驅(qū)動(dòng)器LS2738D鎖存器LS244三態(tài)緩沖器8000H譯碼+5VLED0LED7……GIOWIORnext: movdx,8000h ;DX指向數(shù)據(jù)端口

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

outdx,al ;送輸出端口顯示 calldelay ;調(diào)子程序延時(shí) jmpnext ;重復(fù)第六十五頁,共99頁。第六十五頁,共99頁。2、查詢傳送方式及其接口CPU需要先了解(查詢)外設(shè)的工作狀態(tài),然后在外設(shè)可以交換信息的情況下(就緒)實(shí)現(xiàn)數(shù)據(jù)輸入或輸出對(duì)多個(gè)外設(shè)的情況,則CPU按一定順序依次查詢(輪詢)。先查詢的外設(shè)將優(yōu)先進(jìn)行數(shù)據(jù)交換查詢傳送的特點(diǎn)是:工作可靠,適用面寬,但傳送效率低適用于:CPU與外設(shè)異步工作的場(chǎng)合就緒?第六十六頁,共99頁。第六十六頁,共99頁。1)查詢傳送的兩個(gè)環(huán)節(jié)⑴查詢環(huán)節(jié)尋址狀態(tài)端口讀取狀態(tài)寄存器的標(biāo)志位若不就緒就繼續(xù)查詢,直至就緒⑵傳送環(huán)節(jié)尋址數(shù)據(jù)端口是輸入,通過輸入指令從數(shù)據(jù)端口讀入數(shù)據(jù)是輸出,通過輸出指令向數(shù)據(jù)端口輸出數(shù)據(jù)輸入狀態(tài)就緒?數(shù)據(jù)交換YN流程第六十七頁,共99頁。第六十七頁,共99頁。2)查詢輸入接口圖6.11查詢式輸入接口電路第六十八頁,共99頁。第六十八頁,共99頁。2)查詢輸入接口IOR+5V8D鎖存器8位三態(tài)緩沖器譯碼1位三態(tài)緩沖器RQ

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

movdx,8000h ;DX指向狀態(tài)端口status:

inal,dx

;讀狀態(tài)端口

testal,01h ;測(cè)試標(biāo)志位D0

jzstatus ;D0=0,未就緒,繼續(xù)查詢 incdx ;D0=1,就緒,DX指向數(shù)據(jù)端口

inal,dx ;從數(shù)據(jù)端口輸入數(shù)據(jù)第六十九頁,共99頁。第六十九頁,共99頁。從8000H狀態(tài)端口讀入外設(shè)狀態(tài)信息從8001H數(shù)據(jù)端口讀入一個(gè)字節(jié)數(shù)據(jù)YND0=1,外設(shè)準(zhǔn)備好否?N50H個(gè)數(shù)據(jù)傳送結(jié)束?Y編程從外設(shè)讀入50H個(gè)字節(jié)到內(nèi)存緩沖區(qū)buffer中第七十頁,共99頁。第七十頁,共99頁。、、、MOVAX,SEGbuffer;取緩沖區(qū)首地址

MOVDS,AXLEADI,bufferMOVCX,50H;傳送個(gè)數(shù)

next:MOVDX,8000H

ask:

INAL,DX;從狀態(tài)端口讀入狀態(tài)信息

TESTAL,0000

0001B;檢測(cè)D0位

JZask;D4=0,繼續(xù)查詢MOVDX,8001H

INAL,DX;從數(shù)據(jù)端口讀入數(shù)據(jù)MOV[DI],AL;送緩沖區(qū)INCDI;修改緩沖區(qū)指針

LOOPnext;傳送下一個(gè)、、、查詢方式輸入程序段:第七十一頁,共99頁。第七十一頁,共99頁。3)查詢輸出接口8D鎖存器譯碼1位三態(tài)緩沖器RQ

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

movdx,8000h ;DX指向狀態(tài)端口status: inal,dx ;讀取狀態(tài)端口的狀態(tài)數(shù)據(jù)

testal,80h ;測(cè)試標(biāo)志位D7 jnzstatus ;D7=1,未就緒,繼續(xù)查詢 incdx ;D7=0,就緒,DX指向數(shù)據(jù)端口 moval,buf ;變量buf送AL

outdx,al ;將數(shù)據(jù)輸出給數(shù)據(jù)端口第七十二頁,共99頁。第七十二頁,共99頁。從8000H狀態(tài)端口讀入外設(shè)狀態(tài)信息將一字節(jié)數(shù)據(jù)送至8001H數(shù)據(jù)端口YND7=0,外設(shè)準(zhǔn)備好否?N80H個(gè)數(shù)據(jù)傳送結(jié)束?Y編程將緩沖區(qū)buffer的80H個(gè)字節(jié)輸出到外設(shè)第七十三頁,共99頁。第七十三頁,共99頁。、、、MOVAX,SEGbuffer;取緩沖區(qū)首地址

MOVDS,AXLEASI,bufferMOVCX,80H;傳送個(gè)數(shù)

next:MOVDX,8000Hask:INAL,DX

;從狀態(tài)端口讀入狀態(tài)信息

TESTAL,

10000000B;檢測(cè)D7位

JNZask

;D7≠0,繼續(xù)查詢MOVAL,[SI];從緩沖區(qū)取數(shù)

MOVDX,8001HOUTDX,AL;從數(shù)據(jù)端口輸出數(shù)據(jù)INCSI;修改緩沖區(qū)指針

LOOPnext;輸出下一個(gè)

、、、查詢方式輸出程序段:

第七十四頁,共99頁。第七十四頁,共99頁。6.3.2中斷控制的I/O--中斷傳送方式斷點(diǎn)主程序中斷服務(wù)程序中斷請(qǐng)求對(duì)外設(shè)進(jìn)行處理繼續(xù)執(zhí)行返回?cái)帱c(diǎn)CPU在執(zhí)行程序中,被內(nèi)部或外部的事件所打斷,轉(zhuǎn)去執(zhí)行一段預(yù)先安排好的中斷服務(wù)程序;服務(wù)結(jié)束后,又返回原來的斷點(diǎn),繼續(xù)執(zhí)行原來的程序第七十五頁,共99頁。第七十五頁,共99頁。6.3.2中斷傳送方式

實(shí)現(xiàn)方法:(1)當(dāng)外設(shè)準(zhǔn)備好,主動(dòng)向CPU發(fā)出中斷請(qǐng)求;(2)CPU在滿足響應(yīng)中斷的條件下,發(fā)出中斷響應(yīng)信號(hào);(3)CPU暫停當(dāng)前的程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,完成與外設(shè)的數(shù)據(jù)傳送;

(4)CPU從中斷服務(wù)程序返回,繼續(xù)執(zhí)行被中斷的程序。流程第七十六頁,共99頁。第七十六頁,共99頁。1.中斷傳送與接口中斷傳送是一種效率更高的程序傳送方式進(jìn)行傳送的中斷服務(wù)程序是預(yù)先設(shè)計(jì)好的中斷請(qǐng)求是外設(shè)隨機(jī)向CPU提出的CPU對(duì)請(qǐng)求的檢測(cè)是有規(guī)律的:一般是在每條指令的最后一個(gè)時(shí)鐘周期采樣中斷請(qǐng)求輸入引腳本節(jié)主要論述中斷在輸入和輸出方面的應(yīng)用中斷還有著非常廣泛的應(yīng)用第七十七頁,共99頁。第七十七頁,共99頁。1.CPU和外設(shè)大部分時(shí)間處在并行工作狀態(tài),只在CPU響應(yīng)外設(shè)的中斷申請(qǐng)后,進(jìn)入數(shù)據(jù)傳送的過程2.中斷傳送方式提高了CPU的效率適用:與查詢方式同樣場(chǎng)合差別:①外設(shè)主動(dòng)開始傳送過程,節(jié)約CPU時(shí)間;②中斷請(qǐng)求出現(xiàn)的時(shí)刻具有隨機(jī)性。中斷傳送方式的特點(diǎn):第七十八頁,共99頁。第七十八頁,共99頁。2.中斷輸入接口D0~D7+5V8D鎖存器8位三態(tài)緩沖器三態(tài)緩沖器RQ

譯碼

8001H中斷向量號(hào)D0~D7INTRD輸入設(shè)備中斷允許觸發(fā)器A0~A15中斷請(qǐng)求觸發(fā)器IORINTASTB第七十九頁,共99頁。第七十九頁,共99頁。6.3.3直接數(shù)據(jù)通道傳送--DMA傳送方式希望克服程序控制傳送的不足:外設(shè)→CPU→存儲(chǔ)器外設(shè)←CPU←存儲(chǔ)器直接存儲(chǔ)器存取DMA:外設(shè)→存儲(chǔ)器外設(shè)←存儲(chǔ)器CPU釋放總線,由DMA控制器管理第八十頁,共99頁。第八十頁,共99頁。1.

DMA傳送方式直接存儲(chǔ)器存取方式的基本思想:

在內(nèi)存與外設(shè)間建立直接的數(shù)據(jù)傳送通路,由專門的DMA控制器控制內(nèi)存與外設(shè)間的數(shù)據(jù)傳送,在傳送時(shí)不需要CPU的干預(yù)。它完全由

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論