正在學(xué)習(xí)接口技術(shù)和計算機組成原理,中間有一些重疊的部分就放在一起了,至于DMA,中斷之類的會放在后面講解
6.1?接口綜述
硬件接口通常稱為I/O接口,把外圍設(shè)備同微型計算機連接起來的電路稱為外設(shè)接口電路,簡稱外設(shè)接口。I/O接口是CPU同外界進(jìn)行信息交換的中轉(zhuǎn)站
使用接口的原因
* 速度不匹配 外設(shè)外慢
* 時序不匹配 各個外部設(shè)備都有自己的定時控制電路,以自己的速度進(jìn)行傳輸,同CPU的時序不匹配
* 信息格式不匹配,不同的外設(shè)存儲和處理信息的格式不同
* 信息類型不匹配,有些是數(shù)字電路,有些是模擬電路
?
CPU與外設(shè)之間所傳送的數(shù)據(jù)類型
* 數(shù)據(jù)信息 包括模擬量,數(shù)字量,開關(guān)量,可以輸入也可以輸出
* 狀態(tài)信息 這是I/O端口送給CPU的有關(guān)本端口所對應(yīng)的外設(shè)當(dāng)前狀態(tài)的信息,供CPU參考分析
* 控制信息 這是CPU送給I/O設(shè)備的控制命令,使相應(yīng)的外部設(shè)備完成特定的操作
在8086/8088中,這三種信息的輸入輸出基本一致,可以分發(fā)不同的端口地址,在端口地址相同的情況下,可以規(guī)定操作的順序,或者在輸入輸出的數(shù)據(jù)中設(shè)置特征位
?
接口的功能(背)
* 執(zhí)行CPU命令?CPU將對外設(shè)的控制命令發(fā)到接口電路的命令寄存器中,以便控制外設(shè)按要求進(jìn)行工作
* 返回外設(shè)狀態(tài) 通過外設(shè)寄存器(狀態(tài)口)完成,包括正常工作狀態(tài)和故障狀態(tài)
* 數(shù)據(jù)緩沖的功能 (平滑作用)接口電路中的數(shù)據(jù)寄存器(數(shù)據(jù)口)對CPU與外設(shè)設(shè)備之間的數(shù)據(jù)進(jìn)行中轉(zhuǎn)
* 設(shè)備尋址的功能?CPU在某些時刻只能和一臺外設(shè)交換數(shù)據(jù),CPU發(fā)給的地址信息經(jīng)過接口電路中的地址譯碼選中I/O設(shè)備
* 信號轉(zhuǎn)化的功能?ADC轉(zhuǎn)化啊,電平轉(zhuǎn)化啊之類的
* 數(shù)據(jù)寬度與數(shù)據(jù)格式轉(zhuǎn)換的功能 串并行轉(zhuǎn)化的功能之類的
?
?
端口及編址方式
端口是指接口電路中能被微處理器直接訪問的寄存器的地址
微處理器通過這些地址(端口)向接口電路中的寄存器發(fā)送命令、讀取狀態(tài)、和傳送數(shù)據(jù)。
計算機給接口電路中的每一個寄存器都分配一個端口,CPU在訪問的時候,只需要指明他們的端口地址,不需要知道是訪問什么寄存器。這樣,在輸入輸出程序中訪問端口就是訪問接口電路的寄存器,通常所說的IO操作就是對IO端口的操作,即CPU所訪問的是與IO設(shè)備相關(guān)的端口,而不是IO設(shè)備本身
?
?
?
?
?
輸入輸出的方式
輸入/輸出接口分類:
???????1、按數(shù)據(jù)傳送方式分:串行、并行
???????2、按CPU訪問外設(shè)的控制方式:
??????????程序查詢、中斷、DMA、通道控制、I/O處理機
???????3、按是否需要統(tǒng)一的控制時鐘:同步、異步
???????4、按通用性:通用、專用
?
IO端口的編址方式
寄存器映像編址和獨立編址
寄存器編址就是把IO端口地址置于存儲器空間,和存儲單元統(tǒng)一編制
優(yōu)點:存儲器的各種尋址方式都可以用來尋址端口(可以用一個指令系統(tǒng)),缺點:占用存儲器地址,而且端口地址必須和存儲器長度一樣,運行速度慢
獨立編址:把接口的端口地址單獨編址,在計算機中形成兩個獨立的編址空間。優(yōu)點:不占用存儲器空間,有專門的IO指令,IO指令,運行的快,而且IO操作和存儲器操作分開,程序可讀性好,缺點就是要重新設(shè)計一個新的指令系統(tǒng)
?
IO端口地址譯碼
三種譯碼電路——固定端口地址譯碼,固定多端口譯碼電路和可選式地址譯碼電路
?
* 固定式單端口地址譯碼電路
固定式單端口地址譯碼電路是指該譯碼電路只能產(chǎn)生一個不可更改的端口地址
見課本240頁及筆記
?
* 固定式多端口地址譯碼電路
固定式多端口地址譯碼電路能同時譯出多個地址,但每個地址是固定不變的
如74LS138(38譯碼器),74LS154(4-16譯碼器),74LS139(2-4譯碼器)
?
74138的符號圖如下
?
?
?
?
?
A0-A2是輸入端,Y0-Y7是輸出端,E2a和E2b低電平有效,E1高電平有效,這三個是使能端,E2A和E2B都是低電平有效,E1是高電平有效
* 可選式地址譯碼電路
如果用戶要求接口電路的端口地址能適應(yīng)不同的地址分配場合,或者系統(tǒng)以后擴展留下空間
介紹一種由比較器組成的可選式譯碼電路
?
?
?
首先要知道這個如何工作,就得先知道比較器和三八譯碼器如何工作
三八譯碼器的工作原理在上面,不贅述了
下面來講講74LS85比較器
這玩意有八個端子,A0-A3,B0-B3,我們觀察到,A=B是連在了VCC上,所以這個玩意的功能是要求A和B要想等
那這個東西的比較法則如何呢
真值表如下
?
首先比較高位,高位不相等直接輸出
然后逐位開始比較,到最后都相等的時候,輸出A=B端口為1
如果A=B,則輸出和輸入是相等的
如果A<B,??則輸出中A<B is high with A=B and A>B is low
反之亦然
所以該比較器可選譯碼電路就是如下原理
A8-A11連接了74LS85芯片的A0-A3,現(xiàn)在當(dāng)S0-S3的開關(guān)都打開,則B0-B3為1111,則A0-A3為1111,則A8-A11為1111
A6,A7為38譯碼器的使能端,為00
A3-A5為選擇端口,如果選擇Y2,則A5-A3為010
A0-A2為任意
?
IO指令
* IO端口尋址 分為兩種,直接尋址和間接尋址
* 直接尋址,范圍是0-255
指令格式?IN AL,32H?;32H為8為端口地址
* 間接端口尋址
間接端口尋址由DX寄存器指出端口地址
指令格式為?IN AL,DX
記住,間接端口尋址的范圍是0-65535,必須要通過DX來間接尋址
2 IO操作指令
* 輸入指令
格式:?IN?累加器,端口
例如:IN AL?,21H?;把端口21H的8位數(shù)據(jù)放入AL中
?????????MOV DX,210H
?????????IN AX?,DX;把端口210H和202H放入AX中
* 輸出指令
格式?OUT?端口,累加器
OUT 22H,AL;把AL的內(nèi)容放入22H中
MOV DX,511H
OUT DX,AX
?
?
?
?
CPU與外設(shè)數(shù)據(jù)的傳輸控制方式
有三種形式:程序查詢,中斷,DMA,(大型機巨型機的通道)
程序控制方式是指輸入輸出指令實現(xiàn)信息傳輸?shù)姆绞剑且环N軟件控制方式,根據(jù)程序控制的方法不同,可以分為無條件傳輸方式和有條件傳輸方式
?
無條件傳輸
?
?
?
這個無條件選擇就是當(dāng)RD為低電平(非門轉(zhuǎn)化為1),IO/M(上劃線)為高電平的時候,與門為1,經(jīng)過兩個非門后為1,到三態(tài)緩沖器,三態(tài)緩沖器打開,數(shù)據(jù)經(jīng)數(shù)據(jù)總線送到CPU中
輸出類似
?
在這種方式下,CPU不需要知道外設(shè)的工作狀態(tài),只需每隔一段時間,CPU與外設(shè)進(jìn)行數(shù)據(jù)交換,進(jìn)行數(shù)據(jù)的發(fā)送和接受
?
有條件程序查詢式
條件傳送方式又稱查詢方式,即通過程序查詢相應(yīng)設(shè)備的狀態(tài),如果該設(shè)備未處于“準(zhǔn)備好的狀態(tài)”則CPU不能進(jìn)行輸入輸出操作
邏輯圖如下:
?
?
具體電路圖如下:
?
當(dāng)輸入設(shè)備準(zhǔn)備好數(shù)據(jù)之后,發(fā)出選通信號。它一方面把輸入數(shù)據(jù)鎖存到數(shù)據(jù)鎖存器中,另一方面使?fàn)顟B(tài)標(biāo)志觸發(fā)器置1。狀態(tài)標(biāo)志是一位信號,通過緩沖器后,接到CPU數(shù)據(jù)總線的某一位上,假設(shè)接至D7位。CPU先讀狀態(tài)口,查詢D7是否為1。若D7=1,表示輸入數(shù)據(jù)已經(jīng)準(zhǔn)備好,再讀數(shù)據(jù)口,取走輸入數(shù)據(jù),同時使?fàn)顟B(tài)標(biāo)志觸發(fā)器復(fù)位。
?
數(shù)據(jù)傳送過程的3個步驟:
①CPU先讀取狀態(tài)字
②檢查狀態(tài)字是否表明數(shù)據(jù)準(zhǔn)備就緒
③如果準(zhǔn)備就緒,則執(zhí)行輸入指令讀取數(shù)據(jù),且使?fàn)顟B(tài)位清零。這樣便開始下一個數(shù)據(jù)傳輸過程。
?
/*****自我總結(jié)
輸入的工作原理如下:
當(dāng)外設(shè)準(zhǔn)備好的時候,會發(fā)送選通信號,一方面數(shù)據(jù)進(jìn)入鎖存器,另一方面觸發(fā)器D,使READY信號發(fā)送。當(dāng)CPU來讀的時候,IO/M選通,RD為0,地址譯碼,與門輸出為1,經(jīng)過兩個非門為1,三態(tài)緩存器選通,READY信號通過數(shù)據(jù)總線送到CPU,然后開始開始讀鎖存器內(nèi)的數(shù)據(jù),同時狀態(tài)位清零
******/
輸出的電路圖如下
?
輸出過程:
??當(dāng)前輸出設(shè)備空閑時,狀態(tài)標(biāo)志觸發(fā)器清0。
??CPU在輸出數(shù)據(jù)之前,先讀取狀態(tài)信息。假設(shè)忙閑標(biāo)志接至數(shù)據(jù)線D0位,當(dāng)D0=0時,表示輸出設(shè)備空閑,CPU再對數(shù)據(jù)口執(zhí)行輸出指令。
??數(shù)據(jù)口選中信號一方面把輸出數(shù)據(jù)寫入鎖存器,一方面使?fàn)顟B(tài)標(biāo)志觸發(fā)器置1,通知輸出設(shè)備。當(dāng)輸出設(shè)備取走當(dāng)前數(shù)據(jù)后,向接口發(fā)出確認(rèn)信號ACK,使?fàn)顟B(tài)標(biāo)志觸發(fā)器清0,
表示輸出設(shè)備空閑。
?
/******自我總結(jié)
工作原理:CPU通過地址總線,經(jīng)過地址譯碼器,輸出數(shù)據(jù)端口,IO/M為0,WD為1,發(fā)送選通信號,數(shù)據(jù)進(jìn)入接口鎖存器和觸發(fā)器D為1,這個D有兩個作用,一個告訴外設(shè)可以讀取數(shù)據(jù)了,另一個讓狀態(tài)寄存器為BUSY,防止CPU繼續(xù)寫數(shù)據(jù)。
當(dāng)外設(shè)把數(shù)據(jù)都讀完后,回送一個ACK,讓觸發(fā)器復(fù)位,D為0,清空狀態(tài)寄存器。
*******/
總結(jié):得多看看,每次傳送數(shù)據(jù)的時候都會有一個狀態(tài)信息,然后讀完數(shù)據(jù)都會復(fù)位
優(yōu)點:軟件比較簡單
缺點:CPU效率低,數(shù)據(jù)傳送的實時性差,速度較慢
?
中斷
???中斷控制的輸入和輸出方式,也稱中斷傳送方式,即當(dāng)外設(shè)的輸入數(shù)據(jù)準(zhǔn)備好或接收數(shù)據(jù)的鎖存器為空時,主動向CPU發(fā)出中斷請求,使CPU中斷原來執(zhí)行的程序(主程序),轉(zhuǎn)去執(zhí)行為外設(shè)服務(wù)的輸入或輸出操作,服務(wù)完畢,CPU再繼續(xù)執(zhí)行原來的程序。?
???中斷傳送方式中,?CPU和外設(shè)(甚至多個外設(shè))可同時工作,
從而大大提高了CPU的效率和控制程序執(zhí)行的實時性。必須經(jīng)過?(1)暫停主程序,實現(xiàn)程序的轉(zhuǎn)移,即中斷響應(yīng)。(2)保護(hù)和恢復(fù)有關(guān)寄存器內(nèi)容。(3)執(zhí)行I/O操作,并實現(xiàn)內(nèi)存到累加器再到端口之間的傳送。(4)實現(xiàn)中斷返回。
?
輸入設(shè)備將數(shù)據(jù)送到鎖存器中,同時發(fā)送選通信號,選通信號一方面讓數(shù)據(jù)進(jìn)入三態(tài)緩沖期,另一方面令D為1,經(jīng)過與門讓INTR為1,發(fā)送中斷請求。當(dāng)CPU收到中斷請求之后,會通過地址譯碼器和讀寫信號,經(jīng)過與非門。與非門發(fā)送的信號一方面打開三態(tài)緩沖期,讓數(shù)據(jù)進(jìn)入數(shù)據(jù)總線,另一方面復(fù)位觸發(fā)器,D為0.中斷完成。
DMA
數(shù)據(jù)在I/O接口與存儲器之間的傳送,不經(jīng)CPU的干預(yù),而是在專用硬件電路的控制下直接傳送。這種方法稱為DMA?。在這種方式下,傳送的速度就只取決于存儲器和外設(shè)的工作速度。這大大提高了數(shù)據(jù)傳送速度。
DMA傳送主要應(yīng)用于高速度大批量數(shù)據(jù)傳送的系統(tǒng)中,如磁盤存取、圖像處理、高速數(shù)據(jù)采集系統(tǒng)等,以提高數(shù)據(jù)的吞吐量。
DMA傳送一般有三種形式
①存儲器與I/O設(shè)備之間的數(shù)據(jù)傳送;
②存儲器與存儲器之間的數(shù)據(jù)傳送;
③I/O設(shè)備與I/O設(shè)備之間的傳送。
?
DMA控制器必須有以下功能:
①能接收外設(shè)發(fā)出的DMA?請求信號,然后向CPU?發(fā)出總線接管請求信號。
②當(dāng)CPU發(fā)出總線請求允許信號并放棄對總線的控制后,DMAC能接替對總線的控制,進(jìn)入DMA方式。
③DMAC得到總線控制權(quán)后,要往地址總線發(fā)送地址信號,能修改地址指針,并能發(fā)出讀/寫控制信號。
④能決定本次DMA傳送的字節(jié)數(shù),判斷DMA傳送是否結(jié)束。
⑤DMA過程結(jié)束時,能發(fā)出DMA?結(jié)束信號,將總線控制權(quán)交還給CPU
?
計原中一些概念
輸入輸出系統(tǒng):主要作用是連通計算機的各個功能部件和設(shè)備,在它們之間進(jìn)行數(shù)據(jù)交換。
輸入輸出系統(tǒng)的基本功能:是管理主機和外設(shè)以及外設(shè)與外設(shè)之間的信息交換,由硬件和軟件共同完成此項任務(wù),基本原則是:不丟失數(shù)據(jù),快速傳輸數(shù)據(jù),成本低廉,主機和外設(shè)、外設(shè)和外設(shè)之間盡可能并行工作已充分發(fā)揮各自的潛力
輸入輸出設(shè)備的重要任務(wù)
* 將用戶編寫的程序/數(shù)據(jù)輸入至主機
* 將計算結(jié)果輸出給用戶
* 實現(xiàn)輸入/輸出系統(tǒng)與主機協(xié)調(diào)工作
?
計算機總線:計算機各部件之間的公共通道(包括數(shù)據(jù)總線,控制總線和地址總線)
主機與外設(shè)的接口信息
* 數(shù)據(jù)信息 可以通過輸入設(shè)備送到計算機的輸入數(shù)據(jù)
* 控制信息?CPU對外設(shè)的控制信息或管理命令
* 狀態(tài)信息 表示外設(shè)的狀態(tài)
* 聯(lián)絡(luò)信息 主機和外設(shè)間工作的時間配合信息
* 外設(shè)識別信息?I/O尋址的信息
?
數(shù)據(jù)傳送的方式:異步和同步
CPU訪問的方式:程序查詢式,中斷式,DMA式,通道式
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
熱門工具 換一換