微機(jī)原理與接口技術(shù):第5章 輸入輸出與接口技術(shù)_第1頁(yè)
微機(jī)原理與接口技術(shù):第5章 輸入輸出與接口技術(shù)_第2頁(yè)
微機(jī)原理與接口技術(shù):第5章 輸入輸出與接口技術(shù)_第3頁(yè)
微機(jī)原理與接口技術(shù):第5章 輸入輸出與接口技術(shù)_第4頁(yè)
微機(jī)原理與接口技術(shù):第5章 輸入輸出與接口技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1第5章輸入輸出與接口技術(shù)2

定義:接口是CPU與“外部世界”的連接電路,負(fù)責(zé)“中轉(zhuǎn)”各種信息。

分類:存儲(chǔ)器接口和I/O接口。

位置:介于系統(tǒng)總線與外部設(shè)備之間。1.接口的概念5.1.1I/O接口基本概念5.1接口概述32.為什么要引入接口微機(jī)和I/O設(shè)備的信息類型和格式可能不一樣。微機(jī)和I/O設(shè)備信號(hào)傳輸處理的速度可能不匹配。不用接口,I/O直接接CPU,隨著外設(shè)增加,會(huì)大大降低CPU的效率。I/O直接接CPU,會(huì)使外設(shè)硬件結(jié)構(gòu)過于依賴CPU,對(duì)外設(shè)本身發(fā)展不利。43.I/O接口與I/O設(shè)備不同I/O設(shè)備對(duì)應(yīng)I/O接口不同。I/O接口受CPU控制,I/O設(shè)備受I/O接口控制。為增加通用性,I/O接口電路一般均具有可編程功能。微機(jī)的應(yīng)用離不開外部設(shè)備接口的設(shè)計(jì)、選用和連接。CPU接口外設(shè)數(shù)據(jù)數(shù)據(jù)控制信號(hào)控制信號(hào)狀態(tài)信號(hào)狀態(tài)信號(hào)可能是單向的5

數(shù)據(jù)緩沖功能:通過寄存器或鎖存器實(shí)現(xiàn)。

接口中存放數(shù)據(jù)的寄存器或鎖存器稱之為數(shù)據(jù)口。

接受和執(zhí)行CPU命令功能:

接口中存放CPU命令代碼的寄存器稱之為命令口,

控制和監(jiān)視設(shè)備執(zhí)行功能:

接口中存放執(zhí)行狀態(tài)信息的寄存器稱之為狀態(tài)口。

設(shè)備選擇功能:CPU通過地址譯碼選擇不同外設(shè)。

即CPU通過地址譯碼選擇不同I/O接口和I/O接口中連接的不同的設(shè)備。

信號(hào)轉(zhuǎn)換功能:協(xié)調(diào)總線信號(hào)與I/O設(shè)備信號(hào)。

轉(zhuǎn)換包括信號(hào)的邏輯關(guān)系、時(shí)序配合和電平轉(zhuǎn)換。

可編程功能:增加接口的靈活性和智能性。5.1.2

I/O接口功能6

接口由接口硬件和接口軟件組成。1.接口硬件核心部分5.1.3、I/O接口組成7系統(tǒng)總線側(cè)引腳信號(hào):外設(shè)側(cè)引腳信號(hào):數(shù)據(jù)信號(hào):接口緩沖寄存器與外設(shè)間的數(shù)據(jù)交換;狀態(tài)信號(hào):外設(shè)工作狀態(tài)送給接口的狀態(tài)寄存器;控制信號(hào):接口的內(nèi)部控制邏輯控制外設(shè)工作的控制信號(hào)和同步信號(hào)。地址信號(hào):選擇I/O接口中的不同寄存器(端口);數(shù)據(jù)信號(hào):命令或數(shù)據(jù)寫入到相應(yīng)寄存器,或者從相關(guān)寄存器讀出數(shù)據(jù)或狀態(tài);控制信號(hào):控制命令的執(zhí)行、時(shí)序、信號(hào)同步和片選;狀態(tài)信號(hào):接口的部分工作狀態(tài)信號(hào)。內(nèi)部控制邏輯:

根據(jù)控制寄存器、狀態(tài)寄存器、總線控制信號(hào)及外設(shè)狀態(tài)信號(hào)控制I/O接口的工作。8常見接口插槽1PS2鼠標(biāo)PS2鍵盤千兆網(wǎng)10/100M網(wǎng)卡USB并行口MIDI/游戲接口VGA接口13941394a音箱/線入/麥克風(fēng)接口串行口9常見接口插槽2聲道輸入前置揚(yáng)聲器輸出麥克風(fēng)輸入中置與重低音后置揚(yáng)聲器輸出側(cè)置揚(yáng)聲器輸出102.接口軟件(設(shè)備驅(qū)動(dòng)程序)

初始化程序段:設(shè)置接口工作方式及初始條件。

傳送方式處理程序段:CPU針對(duì)不同的I/O設(shè)備有不同的處理方式。如設(shè)置中斷向量等。

主控程序段:完成接口任務(wù)的程序。

程序終止與退出程序段:對(duì)接口電路硬件保護(hù)及操作系統(tǒng)中數(shù)據(jù)恢復(fù)。

輔助程序段:提供人-機(jī)對(duì)話手段。115.2.1I/O端口1.I/O端口

I/O端口是供CPU直接存取訪問的接口中的寄存器或電路。

接口中的命令口、狀態(tài)口和數(shù)據(jù)口均為I/O端口。2.I/O端口地址

是對(duì)接口中的不同寄存器或電路的編號(hào),該編號(hào)加上該接口的基地址稱為該端口的I/O端口地址。

CPU通過向命令端口發(fā)命令來對(duì)接口,最終對(duì)設(shè)備進(jìn)行控制。訪問設(shè)備實(shí)際上是訪問相關(guān)的端口。3.命令、接口與I/O端口關(guān)系

一個(gè)接口中有多個(gè)I/O端口;

一個(gè)I/O端口可接受多種命令,對(duì)應(yīng)多個(gè)寄存器。5.2I/O編址與訪問121.I/O統(tǒng)一編址(存儲(chǔ)器映象I/O編址)

一個(gè)I/O端口等同于一個(gè)存儲(chǔ)器單元。存儲(chǔ)單元和I/O端口統(tǒng)一編址。

優(yōu)點(diǎn):對(duì)I/O端口的訪問命令與對(duì)存儲(chǔ)器單元訪問相同,不必使用專用I/O指令;外設(shè)數(shù)目或I/O寄存器數(shù)幾乎不受限制。系統(tǒng)讀寫控制邏輯較簡(jiǎn)單。

缺點(diǎn):I/O端口占用部分MEM空間,可用MEM空間減??;對(duì)MEM訪問指令較長(zhǎng),執(zhí)行速度較慢;

I/O端口地址譯碼時(shí)間較長(zhǎng)。MEM空間I/O空間N-1KK-10存儲(chǔ)類指令

應(yīng)用:Motorola系列和Apple系列均采用此方式5.2.2I/O端口編址132.I/O獨(dú)立編址I/O端口地址空間與存儲(chǔ)器地址空間相互獨(dú)立。

應(yīng)用:Z-80系列和x86系列均采用此方式。

優(yōu)點(diǎn):MEM地址空間不受I/O端口地址空間影響;I/O端口數(shù)量不多,占用地址線少,地址譯碼簡(jiǎn)單,速度較快,使得此類指令執(zhí)行速度快;使用專用I/O命令(IN/OUT),與MEM訪問命令(LOAD/STORE、MOV)有明顯區(qū)別,便于理解和檢查。MEMI/O設(shè)備N-10存儲(chǔ)類指令I(lǐng)/O類指令K-1014

缺點(diǎn):3.Intel系列微機(jī)I/O編址Intel系列微處理器支持I/O獨(dú)立編址方式和I/O統(tǒng)一編址(存儲(chǔ)器映象編址)方式。

Intel系列微機(jī)系統(tǒng)僅支持I/O獨(dú)立編址方式。

專用I/O指令增加指令系統(tǒng)復(fù)雜性,且I/O指令類型少,尋址方式也少,程序設(shè)計(jì)靈活性較差;

要求處理器提供MEMR#/MEMW#和IOR#/IOW#兩組控制信號(hào),增加了控制邏輯的復(fù)雜性。151.I/O端口地址空間

I/O端口地址空間:有64K個(gè)獨(dú)立編址的8位端口空間。兩個(gè)連續(xù)8位端口可作為16位端口,4個(gè)連續(xù)的8位端口可作為32位端口處理。注意端口地址對(duì)齊。5.2.3IA-32系列微機(jī)I/O端口訪問00~0FFH(256個(gè)端口)地址用于主板100~3FFH(768個(gè)端口)地址用于擴(kuò)展板400~0FFFFH地址用于I/O擴(kuò)展設(shè)備(如PCI設(shè)備)源于IBMPC

I/O端口地址信號(hào):借用地址線信號(hào)和IOW#/IOR#信號(hào)線以及表示DMA正在工作的AEN的反相信號(hào)組成。16I/O芯片名稱

地址范圍

DMAC1DMAC2DMA頁(yè)面寄存器

0000-001FH00C0-00DFH0080-009FH

中斷控制器1中斷控制器2

0020-003FH00A0-00BFH

定時(shí)器并行接口芯片(鍵盤接口)RT/CMOSRAM協(xié)處理器(現(xiàn)保留)0040-005FH0060-006FH0070-007FH00F0-00FFH

系統(tǒng)板I/O接口芯片口地址(0000H-00FFH):返回地址譯碼17

擴(kuò)展槽I/O接口卡端口地址(0100H-03FFH):I/O接口名稱地址范圍游戲控制卡0200-020FH并行口控制卡1并行口控制卡20370-037FH0270-027FH串行口控制卡1串行口控制卡203F8-03FFH02F8-02FFH原型插件板(用戶可用)0300-031FH同步通信卡1同步通信卡203A0-03AF0380-038FH單顯MDA彩顯CGA彩顯EGA/VGA03B0-03BFH03D0-03DFH03C0-03CFH軟驅(qū)控制卡硬驅(qū)控制卡03F0-03FFH01F0-01FFHPC網(wǎng)卡0360-036FH182.I/O端口地址尋址方式

I/O端口支持直接尋址和間接尋址方式。

直接尋址是使用一字節(jié)立即數(shù)尋址,端口尋址范圍為00H~FFH共256個(gè)。間接尋址是使用DX寄存器間接給出I/O端口地址,可尋址的范圍是0000H~FFFFH共64K個(gè)端口。3.I/O端口與累加器間I/O指令——寄存器I/O指令

格式:IN、OUT。

結(jié)果:完成I/O端口和EAX、AX、AL之間的數(shù)據(jù)傳送,可使用直接尋址和間接尋址方式。舉例:movdx,3fdh moval,36h inal,dx out43h,al194.I/O端口與存儲(chǔ)器間I/O指令——塊I/O指令

格式:INSB/W/D、OUTSB/W/D。

參數(shù):用DX指定I/O端口地址,輸入/輸出時(shí)的目的/源RAM地址用ES:DI(EDI)/DS:SI(ESI)指定。EFLAG寄存器中DF位來決定地址加和減。

結(jié)果:通過前綴REP在I/O端口和連續(xù)的存儲(chǔ)器空間之間傳送數(shù)據(jù)。5.I/O端口訪問CPU通過I/O指令對(duì)I/O接口進(jìn)行訪問。

匯編語(yǔ)言指令:IN、OUT。

C語(yǔ)言指令:inportb(inport)、outportb(outport)。

VC++指令:_inp(_inpw)、_outp(_outpw)。20

例:讀取CMOS信息。main(){shortinti,j;unsignedcharc_CmosMessage[64];for(i=0;i<=63;i++){j=i|0x80outportb(0x70,j);c_CmosMessage[i]=inportb(0x71);}printf("CMOS信息讀取完畢。\n");};功能:讀取CMOS信息;調(diào)用:AL=CMOS地址;返回:AL=CMOS內(nèi)容

proc_read_cmosprocclioral,80h;屏蔽NMIout70h,aljmp$+2 ;延遲

inal,71h;讀CMOS數(shù)據(jù)

stiretproc_read_cmosendp21或A19~A16/S6~S3CS8254#0H00H43H[AL]OUT43H,ALWR#(IOW#)IO/M#22作業(yè)1

請(qǐng)參照上頁(yè)OUT43H,AL指令的時(shí)序圖畫出INAL,21H的時(shí)序圖,假設(shè)從21H端口中讀到的數(shù)據(jù)是02H,21H是8259芯片的一個(gè)端口地址。23I/O保護(hù)在保護(hù)模式下有效,在實(shí)地址模式下無效。1.I/O特權(quán)級(jí)IOPL保護(hù)

保護(hù)通過比較當(dāng)前任務(wù)的特權(quán)級(jí)CPL和標(biāo)志寄存器的IOPL字段實(shí)現(xiàn)的。

若CPL≤IOPL,可執(zhí)行IN、OUT、INS、OUTS、CLI、STI等敏感指令(對(duì)IOPL敏感);否則不行。

每個(gè)任務(wù)都有自己的IOPL,用以表示指定的I/O操作處于特權(quán)級(jí)的哪一級(jí)。它在EFLAGS中。0級(jí)特權(quán)的過程可通過POPF和IRET指令修改任務(wù)的IOPL。5.2.4Pentium的I/O保護(hù)242.I/O允許位映象保護(hù)

I/O允許位映象用來修正IOPL對(duì)I/O敏感指令的影響,允許低特權(quán)的程序訪問某些I/O端口。

I/O允許位映象是一個(gè)位向量,每位對(duì)應(yīng)一個(gè)端口的操作權(quán)限(0表示允許)。

操作系統(tǒng)可通過改變?nèi)蝿?wù)TSS中的I/O允許映象來為某任務(wù)分配端口。(一定是在0級(jí))253.保護(hù)模式下的I/O端口訪問執(zhí)行in,out指令CPL≤IOPL?IOPM相關(guān)位=0?進(jìn)行I/O操作否否產(chǎn)生一個(gè)一般保護(hù)異常是是IOPM是對(duì)所有VM都起作用的權(quán)限機(jī)制,它以位(bit)來代表每個(gè)端口。某位為1,則該代表的端口被禁止訪問;某位為0;則允許訪問該位所代表的端口。IOPL用以表示指定的I/O操作處于特權(quán)級(jí)的哪一級(jí)。它在EFLAGS中。CPL當(dāng)前段的I/O優(yōu)先級(jí),它實(shí)際上是CS段選擇符的第0~第1位。

26V86模式下(DOSVM)的I/O端口訪問執(zhí)行in,out指令I(lǐng)OPM相關(guān)位=0?進(jìn)行I/O操作否產(chǎn)生一個(gè)一般保護(hù)異常是272)接口芯片內(nèi)部端口號(hào):地址線低位直接組成。端口地址=端口所在接口基地址+端口號(hào)5.3I/O端口地址譯碼方法1)片選(CS#)信號(hào):其有效表明該接口芯片可以通過系統(tǒng)總線與CPU進(jìn)行數(shù)據(jù)交換使用IOW#/IOR#信號(hào)(有效)、AEN信號(hào)(無效)和地址線高位(接口基地址)經(jīng)過譯碼得到片選信號(hào)。5.3.1接口芯片中與地址譯碼有關(guān)的管腳及其運(yùn)用285.3.2固定式端口地址譯碼

接口中只有一個(gè)端口時(shí)可采用門電路構(gòu)成。

接口中有多個(gè)端口時(shí)一般采用譯碼器電路構(gòu)成,常見的譯碼器有74LS138、74LS154等。74LS138譯碼器:工作條件:

G1=1,G2A#

=G2B#

=0。工作原理:

將復(fù)合的輸入信號(hào)變?yōu)槊杜e的輸出信號(hào)。15Y0#Y7#ABCG2B#G2A#G114131211109712345674LS13829輸入輸出G1G2A#G2B#CBAY7Y6Y5Y4Y3Y2Y1Y010000011111110100001111111011000101111101110001111110111100100111011111001011101111110011010111111100111011111110XXXXX11111111X1XXXX11111111XX1XXX1111111174LS138真值表30Y0#Y7#ABCG2B#G2A#G11514131211109712345674LS138A5A6A7A8A9AEN’#DMACS#(8237)INTRCS#(8259)T/CCS#(8253)PPICS#(8255)WRTDMAPG#≥1≥1WRTNMIREG#IOW#74LS138在PC機(jī)系統(tǒng)板端口譯碼的應(yīng)用:轉(zhuǎn)PC例子為何中斷控制1端口地址為0020H-003FH?軟件上和信號(hào)上如何區(qū)別訪問I/O還是MEMORY?31DMA825982538255系統(tǒng)…空閑00H20H40H60H3FFH1FH3FH5FH7FH::::數(shù)據(jù)總線地址總線控制總線CPUD7-D0CS#A0WR#RD#設(shè)備側(cè)信號(hào)D7-D0CS#A1A0WR#RD#設(shè)備側(cè)信號(hào)82598253MEMY0Y7ABCG2B#G2A#G115141312111097A5A6A7A9A8AEN#74LS138A1A0A0A15-A0D7-D0IOW#IOR#IOW#IOR#325.3.3可選式端口地址譯碼(1)使用比較器+地址開關(guān)方法74LS688比較器:當(dāng)P0~7≠Q(mào)0~7時(shí),

P=1,輸出高電平。當(dāng)P0~7=Q0~7時(shí),

P=0,輸出低電平。

比較器和地址開關(guān)產(chǎn)生一個(gè)信號(hào)參與片選。注意:當(dāng)系統(tǒng)時(shí)鐘頻率很高的時(shí)候,譯碼電路的延遲不能太大33(2)使用異或門+地址開關(guān)方法

用異或門代替比較器和地址開關(guān)比較。=1=1=1=11234567891011121314VCCGND74LS136

如用2片74LS136代替74LS688。74LS136:邏輯:

3=1⊕2;6=4⊕5;

8=9⊕10;11=12⊕13;連線:

異或門的輸入端分別接地址線和開關(guān)線。

片選:各異或門的輸出“或”的結(jié)果。34思考題1?35300H301H302H303H304H305H306H307H思考題1的答案36思考題2Y0Y7ABCG2BG2AG11514131211109712345674LS138__________AEN#00~1FH40~5FH80~9FH_________100~11FH___________________________A9~A0共10根線參與地址譯碼,請(qǐng)將上圖的空填對(duì)。37思考題2的答案A6A7A8A5A9

00~1FH40~5FH80~9FH

100~11FHC0~DFH140~15HH180~19FH1C0~1DFHA9A8A7A6A5A4A3A2A1A0第一步?????×××××第二步0???0×××××第三步0CBA0×××××Y0Y7ABCG2BG2AG11514131211109712345674LS138AEN###38思考題3要求接口芯片的端口地址范圍為260H,262H,264H,266H,268H,26AH,26CH,26EH,請(qǐng)問A0~A9這10根線需要怎么連。Y6ABC74LS138G1G2A#G2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論