現(xiàn)代微機原理與接口技術(shù).ppt_第1頁
現(xiàn)代微機原理與接口技術(shù).ppt_第2頁
現(xiàn)代微機原理與接口技術(shù).ppt_第3頁
現(xiàn)代微機原理與接口技術(shù).ppt_第4頁
現(xiàn)代微機原理與接口技術(shù).ppt_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1,第5章 輸入輸出與接口技術(shù),2,定義:接口是CPU與“外部世界”的連接電路,負責(zé)“中轉(zhuǎn)”各種信息。,分類:存儲器接口和I/O接口。,位置:介于系統(tǒng)總線與外部設(shè)備之間。,1.接口的概念,5.1.1 I/O接口基本概念,5.1 接口概述,3,2.為什么要引入接口,微機和I/O設(shè)備的信息類型和格式可能不一樣。 微機和I/O設(shè)備信號傳輸處理的速度可能不匹配。 不用接口, I/O直接接CPU,隨著外設(shè)增加,會大大降低CPU的效率。 I/O直接接CPU,會使外設(shè)硬件結(jié)構(gòu)過于依賴CPU,對外設(shè)本身發(fā)展不利。,4,3.I/O接口與I/O設(shè)備,不同I/O設(shè)備對應(yīng)I/O接口不同。,I/O接口受CPU控制,I/O設(shè)備受I/O接口控制。,為增加通用性,I/O接口電路一般均具有可編程功能。,微機的應(yīng)用離不開外部設(shè)備接口的設(shè)計、選用和連接。,CPU,接口,外設(shè),數(shù)據(jù),數(shù)據(jù),控制信號,控制信號,狀態(tài)信號,狀態(tài)信號,可能是單向的,5,數(shù)據(jù)緩沖功能:通過寄存器或鎖存器實現(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è)備。,信號轉(zhuǎn)換功能:協(xié)調(diào)總線信號與I/O設(shè)備信號。,轉(zhuǎn)換包括信號的邏輯關(guān)系、時序配合和電平轉(zhuǎn)換。,可編程功能:增加接口的靈活性和智能性。,5.1.2 I/O接口功能,6,接口由接口硬件和接口軟件組成。,1.接口硬件,5.1.3 I/O接口組成,7,CPU側(cè)引腳信號:,外設(shè)側(cè)引腳信號:,內(nèi)部控制邏輯:,根據(jù)控制寄存器、狀態(tài)寄存器、總線控制信號及外設(shè)狀態(tài)信號控制I/O接口的工作。,8,常見接口插槽,PS2鼠標(biāo),PS2鍵盤,千兆網(wǎng),10/100M網(wǎng)卡,USB,并行口,MIDI/游戲接口,顯示器接口,1394,1394a,音箱/線入接口/麥克風(fēng),串行口,9,常見接口插槽2,聲道輸入,前置揚聲器輸出,麥克風(fēng)輸入,中置與重低音,后置揚聲器輸出,側(cè)置揚聲器輸出,10,2.接口軟件(設(shè)備驅(qū)動程序),初始化程序段:設(shè)置接口工作方式及初始條件。,傳送方式處理程序段:CPU針對不同的I/O設(shè)備有不同的處理方式。如設(shè)置中斷向量等。,主控程序段:完成接口任務(wù)的程序。,程序終止與退出程序段:對接口電路硬件保護及操作系統(tǒng)中數(shù)據(jù)恢復(fù)。,輔助程序段:提供人-機對話手段。,11,5.2.1 程序控制方式,1. 無條件傳送方式,2.條件傳送方式(查詢方式),5.2 數(shù)據(jù)傳輸控制方式,12,3.中斷傳送方式,5.2.2 直接存儲器存取(DMA)方式,13,5.2.3 I/O處理機方式,特點: I/O處理機接管了CPU的各種I/O操作及I/O控制功能,CPU能與IO處理機并行工作。I/O處理機有自己的指令系統(tǒng),能獨立地直接存取主存儲器、對外設(shè)和I/O過程進行管理。,要求:需要IO處理機支持。,應(yīng)用:高速I/O歸IO處理機管理,低速I/O設(shè)備歸CPU管理。,14,5.3.1 I/O端口,1.I/O端口,I/O端口是供CPU直接存取訪問的接口中的寄存器或電路。,接口中的命令口、狀態(tài)口和數(shù)據(jù)口均為I/O端口。,2.I/O端口地址,是對接口中的不同寄存器或電路的編號,該編號加上該接口的基地址稱為該端口的I/O端口地址。,CPU通過向命令端口發(fā)命令來對接口,最終對設(shè)備進行控制。訪問設(shè)備實際上是訪問相關(guān)的端口。,3.命令、接口與I/O端口關(guān)系,一個接口中有多個I/O端口;,一個I/O端口可接受多種命令,對應(yīng)多個寄存器。,5.3 I/O編址與訪問,15,1.I/O統(tǒng)一編址(存儲器映象I/O編址),一個I/O端口等同于一個存儲器單元。存儲單元和I/O端口統(tǒng)一編址。,優(yōu)點:,對I/O端口的訪問命令與對存儲器單元訪問相同,不必使用專用I/O指令; 外設(shè)數(shù)目或I/O寄存器數(shù)幾乎不受限制。 系統(tǒng)讀寫控制邏輯較簡單。,缺點:,I/O端口占用部分MEM空間,可用MEM空間減小; 對MEM訪問指令較長,執(zhí)行速度較慢; I/O端口地址譯碼時間較長。,應(yīng)用:Motorola系列和Apple 系列均采用此方式,5.3.2 I/O端口編址,16,2.I/O獨立編址,I/O端口地址空間與存儲器地址空間相互獨立。,應(yīng)用:Z-80系列和x86系列均采用此方式。,優(yōu)點:,MEM地址空間不受I/O端口地址空間影響; I/O端口數(shù)量不多,占用地址線少,地址譯碼簡單,速度較快,使得此類指令執(zhí)行速度快; 使用專用I/O命令(IN/OUT),與MEM訪問命令(LOAD/STORE、MOV)有明顯區(qū)別,便于理解和檢查。,MEM,I/O設(shè)備,N-1 0,存儲類指令,I/O類指令,K-1 0,17,缺點:,3.Intel系列微機I/O編址,Intel系列微處理器支持I/O獨立編址方式和I/O統(tǒng)一編址(存儲器映象編址)方式。,Intel系列微機系統(tǒng)僅支持I/O獨立編址方式。,18,1.I/O端口地址空間,I/O端口地址空間:有64K個獨立編址的8位端口空間。兩個連續(xù)8位端口可作為16位端口,4個連續(xù)的8位端口可作為32位端口處理。注意端口地址對齊。,5.3.3 IA-32系列微機I/O端口訪問,000FFH(256個端口)地址用于主板 1003FFH(768個端口)地址用于擴展板 4000FFFFH地址用于I/O擴展設(shè)備(如PCI設(shè)備),源于IBM PC,I/O端口地址信號:借用地址線信號和IOW#/IOR#信號線以及表示DMA正在工作的AEN的反相信號組成。,19,系統(tǒng)板I/O接口芯片口地址(0000H-00FFH):,返回地址譯碼,20,擴展槽I/O接口卡端口地址(0100H-03FFH):,21,2.I/O端口地址尋址方式,I/O端口支持直接尋址和間接尋址方式。 直接尋址是使用一字節(jié)立即數(shù)尋址,端口尋址范圍為00HFFH共256個。 間接尋址是使用DX寄存器間接給出I/O端口地址,可尋址的范圍是0000HFFFFH共64K個端口。,3.I/O端口與累加器間I/O指令寄存器I/O指令,格式:IN、OUT。,結(jié)果:完成I/O端口和EAX、AX、AL之間的數(shù)據(jù)傳送,可使用直接尋址和間接尋址方式。 舉例:mov dx, 3fdh mov al, 36h in al, dx out 43h, al,22,4. I/O端口與存儲器間I/O指令塊I/O指令,格式:INSB/W/D、OUTSB/W/D。,參數(shù):用DX指定I/O端口地址,輸入/輸出時的目的/源RAM地址用ES:DI(EDI)/DS:SI(ESI)指定。EFLAG寄存器中DF位來決定地址加和減。,結(jié)果:通過前綴REP在I/O端口和連續(xù)的存儲器空間之間傳送數(shù)據(jù)。,5.I/O端口訪問,CPU通過I/O指令對I/O接口進行訪問。,匯編語言指令:IN、OUT。,C語言指令:inportb(inport)、outportb(outport)。,VC+指令:_inp(_inpw)、_outp(_outpw)。,23,例:讀取CMOS信息。,main() short int i, j; unsigned char c_CmosMessage64; for (i=0;i=63;i+) j=i|0x80 outportb(0x70,j); c_CmosMessagei=inportb(0x71) ; printf(“CMOS信息讀取完畢。n“); ,;功能:讀取CMOS信息 ;調(diào)用:AL=CMOS地址 ;返回:AL=CMOS內(nèi)容 proc_read_cmos proc cli or al,80h ;屏蔽NMI out 70h,al jmp $+2 ;延遲 in al,71h ;讀CMOS數(shù)據(jù) sti ret proc_read_cmos endp,24,或,A19A16/S6S3,CS8254 #,0H,00H,43H,AL,OUT 43H, AL,WR #( IOW# ),IO/M#,25,作業(yè)1 請參照上頁OUT 43H, AL 指令的時序圖畫出IN AL,21H的時序圖,假設(shè)從21H端口中讀到的數(shù)據(jù)是02H,21H是8259芯片的一個端口地址。,26,I/O保護在保護模式下有效,在實地址模式下無效。,1.I/O特權(quán)級IOPL保護,保護通過比較當(dāng)前任務(wù)的特權(quán)級CPL和標(biāo)志寄存器的IOPL字段實現(xiàn)的。,若CPL IOPL,可執(zhí)行IN、OUT、INS、OUTS、CLI、STI等敏感指令(對IOPL敏感);否則不行。,每個任務(wù)都有自己的IOPL,0級特權(quán)的過程可通過POPF和IRET指令修改任務(wù)的IOPL。,5.3.4 Pentium的I/O保護,27,2.I/O允許位映象保護,I/O允許位映象用來修正IOPL對I/O敏感指令的影響,允許低特權(quán)的程序訪問某些I/O端口。,I/O允許位映象是一個位向量,每位對應(yīng)一個端口的操作權(quán)限(0表示允許)。,操作系統(tǒng)可通過改變?nèi)蝿?wù)TSS中的I/O允許映象來為某任務(wù)分配端口。(一定是在0級),思考:如何讓普通任務(wù)訪問I/O端口?,通過操作系統(tǒng)提供的接口函數(shù); 通過設(shè)備驅(qū)動程序(其運行在0級上); 通過操作系統(tǒng)的漏洞。,思路:設(shè)法進入到0級,28,3. 保護模式下的I/O端口訪問,執(zhí)行in, out指令,CPL IOPL?,IOPM相關(guān)位=0?,進行I/O操作,否,否,產(chǎn)生一個一般保護異常,是,是,IOPM是對所有VM都起作用的權(quán)限機制,它以位(bit)來代表每個端口。某位為1,則該代表的端口被禁止訪問;某位為0;則允許訪問該位所代表的端口。,IOPL用以表示指定的I/O操作處于特權(quán)級的哪一級。它在EFLAGS中。 CPL當(dāng)前段的I/O優(yōu)先級,它實際上是CS段選擇符的第0第1位。,29,V86模式下(DOSVM)的I/O端口訪問,執(zhí)行in, out指令,IOPM相關(guān)位=0?,進行I/O操作,否,產(chǎn)生一個一般保護異常,是,30,2) 接口芯片內(nèi)部端口號:,地址線低位直接組成。,端口地址=端口所在接口基地址+端口號,5.4 I/O端口地址譯碼方法,1)片選(CS#)信號:其有效表明該接口芯片可以通過系統(tǒng)總線與CPU進行數(shù)據(jù)交換,使用IOW#/IOR#信號(有效)、AEN信號(無效)和地址線高位(接口基地址)經(jīng)過譯碼得到片選信號。,5.4.1 接口芯片中與地址譯碼有關(guān)的管腳及其運用,31,5.4.2 固定式端口地址譯碼,接口中只有一個端口時可采用門電路構(gòu)成。,接口中有多個端口時一般采用譯碼器電路構(gòu)成,常見的譯碼器有74LS138、74LS154等。,74LS138譯碼器:,工作條件:,工作原理:,將復(fù)合的輸入信號變?yōu)槊杜e的輸出信號。,32,74LS138真值表,33,Y0#,Y7#,A,B,C,G2B#,G2A#,G1,15,14,13,12,11,10,9,7,1,2,3,4,5,6,74LS138,A5,A6,A7,A8,A9,AEN#,DMACS#(8237),INTRCS#(8259),T/C CS#(8253),PPICS#(8255),WRTDMAPG#,1,1,WRTNMIREG#,IOW#,74LS138在PC機系統(tǒng)板端口譯碼的應(yīng)用:,轉(zhuǎn)PC例子,為何中斷控制1端口地址為0020H-003FH?,軟件上和信號上如何區(qū)別訪問I/O還是MEMORY?,34,數(shù)據(jù)總線,地址總線,控制總線,D7-D0,CS#,A0,WR#,RD#,設(shè) 備 側(cè) 信 號,D7-D0,CS#,A1 A0,WR#,RD#,設(shè) 備 側(cè) 信 號,8259,8253,Y0,Y7,A,B,C,G2B#,G2A#,G1,15,14,13,12,11,10,9,7,A5,A6,A7,A9,A8,AEN#,74LS138,A1 A0,A0,A15-A0,D7-D0,IOW#,IOR#,IOW#,IOR#,35,5.4.3 可選式端口地址譯碼,(1)使用比較器+地址開關(guān)方法,74LS688比較器:,當(dāng)P07Q07時, P=1,輸出高電平。,當(dāng)P07=Q07時, P=0,輸出低電平。,比較器和地址開關(guān)產(chǎn)生一個信號參與片選。,注意:當(dāng)系統(tǒng)時鐘頻率很高的時候,譯碼電路的延遲不能太大,36,(2)使用異或門+地址開關(guān)方法,用異或門代替比較器和地址開關(guān)比較。,如用2片74LS136代替74LS688。,74LS136:,邏輯: 3=12;6=45; 8=910;11=1213;,連線: 異或門的輸入端分別接地址線和開關(guān)線。,片選:各異或門的輸出“或”的結(jié)果。,37,思考題1,?,38,300H 301H 302H 303H 304H 305H 306H 307H,思考題1 的答案,39,思考題2,Y0,Y7,A,B,C,G1,15,14,13,12,11,10,9,7,1,2,3,4,5,6,74LS138,_,_,_,_,_,AEN#,001FH 405FH 809FH _ 10011FH _ _ _,A9A0共10根線參與地址譯碼,請將上圖的空填對。,40,思考題2的答案,001FH 405FH 809FH 10011FH,A9A8A7A6A5A4A3A2A1A0,第一步 ? ? ? ? ? ,第二步 0 ? ? ? 0 ,第三步 0 C B A 0 ,41,思考題3,要求接口芯片的端口地址范圍為260H,262H,264H,266H,268H,26AH,26CH,26EH,請問A0A9這10根線需要怎么連。,42,思考題3答案,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0,1 0 0 1 1 0,Y6

溫馨提示

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

最新文檔

評論

0/150

提交評論