正在學(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式,通道式

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          ?

          友情鏈接
          ioDraw流程圖
          API參考文檔
          OK工具箱
          云服務(wù)器優(yōu)惠
          阿里云優(yōu)惠券
          騰訊云優(yōu)惠券
          京東云優(yōu)惠券
          站點信息
          問題反饋
          郵箱:[email protected]
          QQ群:637538335
          關(guān)注微信

                欧美亚洲自拍偷拍 | 中文字幕日本伦理电影 | 亚洲精品福利电影 | 九一色视频 | 18禁网址 |