介面技術第六章——輸入輸出介面及資料傳輸控制方式總結
正在學習介面技術和計算機組成原理,中間有一些重疊的部分就放在一起了,至於DMA,中斷之類的會放在後面講解
6.1 介面綜述
硬體介面通常稱為I/O介面,把外圍裝置同微型計算機連線起來的電路稱為外設介面電路,簡稱外設介面。I/O介面是CPU同外界進行資訊交換的中轉站
使用介面的原因
- 速度不匹配 外設外慢
- 時序不匹配 各個外部裝置都有自己的定時控制電路,以自己的速度進行傳輸,同CPU的時序不匹配
- 資訊格式不匹配,不同的外設儲存和處理資訊的格式不同
- 資訊型別不匹配,有些是數位電路,有些是類比電路
CPU與外設之間所傳送的資料型別
- 資料資訊 包括模擬量,數字量,開關量,可以輸入也可以輸出
- 狀態資訊 這是I/O埠送給CPU的有關本埠所對應的外設當前狀態的資訊,供CPU參考分析
- 控制資訊 這是CPU送給I/O裝置的控制命令,使相應的外部裝置完成特定的操作
在8086/8088中,這三種資訊的輸入輸出基本一致,可以分發不同的埠地址,在埠地址相同的情況下,可以規定操作的順序,或者在輸入輸出的資料中設定特徵位
介面的功能(背)
- 執行CPU命令 CPU將對外設的控制命令發到介面電路的命令暫存器中,以便控制外設按要求進行工作
- 返回外設狀態 通過外設暫存器(狀態口)完成,包括正常工作狀態和故障狀態
- 資料緩衝的功能 (平滑作用)介面電路中的資料暫存器(資料口)對CPU與外設裝置之間的資料進行中轉
- 裝置定址的功能 CPU在某些時刻只能和一臺外設交換資料,CPU發給的地址資訊經過介面電路中的地址譯碼選中I/O裝置
- 訊號轉化的功能 ADC轉化啊,電平轉化啊之類的
- 資料寬度與資料格式轉換的功能 串並行轉化的功能之類的
埠及編址方式
埠是指介面電路中能被微處理器直接訪問的暫存器的地址
微處理器通過這些地址(埠)向介面電路中的暫存器傳送命令、讀取狀態、和傳送資料。
計算機給介面電路中的每一個暫存器都分配一個埠,CPU在訪問的時候,只需要指明他們的埠地址,不需要知道是訪問什麼暫存器。這樣,在輸入輸出程式中訪問埠就是訪問介面電路的暫存器,通常所說的IO操作就是對IO埠的操作,即CPU所訪問的是與IO裝置相關的埠,而不是IO裝置本身
輸入輸出的方式
輸入/輸出介面分類:
1、按資料傳送方式分:序列、並行
2、按CPU訪問外設的控制方式:
程式查詢、中斷、DMA、通道控制、I/O處理機
3、按是否需要統一的控制時鐘:同步、非同步
4、按通用性:通用、專用
IO埠的編址方式
暫存器映像編址和獨立編址
暫存器編址就是把IO埠地址置於儲存器空間,和儲存單元統一編制
優點:儲存器的各種定址方式都可以用來定址埠(可以用一個指令系統),缺點:佔用儲存器地址,而且埠地址必須和儲存器長度一樣,執行速度慢
獨立編址:把介面的埠地址單獨編址,在計算機中形成兩個獨立的編址空間。優點:不佔用儲存器空間,有專門的IO指令,IO指令,執行的快,而且IO操作和儲存器操作分開,程式可讀性好,缺點就是要重新設計一個新的指令系統
IO埠地址譯碼
三種譯碼電路——固定埠地址譯碼,固定多埠譯碼電路和可選式地址譯碼電路
- 固定式單埠地址譯碼電路
固定式單埠地址譯碼電路是指該譯碼電路只能產生一個不可更改的埠地址
見課本240頁及筆記
- 固定式多埠地址譯碼電路
固定式多埠地址譯碼電路能同時譯出多個地址,但每個地址是固定不變的
如74LS138(38譯碼器),74LS154(4-16譯碼器),74LS139(2-4譯碼器)
74138的符號圖如下
A0-A2是輸入端,Y0-Y7是輸出端,E2a和E2b低電平有效,E1高電平有效,這三個是使能端,E2A和E2B都是低電平有效,E1是高電平有效
- 可選式地址譯碼電路
如果使用者要求介面電路的埠地址能適應不同的地址分配場合,或者系統以後擴充套件留下空間
介紹一種由比較器組成的可選式譯碼電路
首先要知道這個如何工作,就得先知道比較器和三八譯碼器如何工作
三八譯碼器的工作原理在上面,不贅述了
下面來講講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,現在當S0-S3的開關都開啟,則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位資料放入AL中
MOV DX,210H
IN AX ,DX;把埠210H和202H放入AX中
- 輸出指令
格式 OUT 埠,累加器
OUT 22H,AL;把AL的內容放入22H中
MOV DX,511H
OUT DX,AX
CPU與外設資料的傳輸控制方式
有三種形式:程式查詢,中斷,DMA,(大型機巨型機的通道)
程式控制方式是指輸入輸出指令實現資訊傳輸的方式,是一種軟體控制方式,根據程式控制的方法不同,可以分為無條件傳輸方式和有條件傳輸方式
無條件傳輸
這個無條件選擇就是當RD為低電平(非門轉化為1),IO/M(上劃線)為高電平的時候,與門為1,經過兩個非門後為1,到三態緩衝器,三態緩衝器開啟,資料經資料匯流排送到CPU中
輸出類似
在這種方式下,CPU不需要知道外設的工作狀態,只需每隔一段時間,CPU與外設進行資料交換,進行資料的傳送和接受
有條件程式查詢式
條件傳送方式又稱查詢方式,即通過程式查詢相應裝置的狀態,如果該裝置未處於“準備好的狀態”則CPU不能進行輸入輸出操作
邏輯圖如下:
具體電路圖如下:
當輸入裝置準備好資料之後,發出選通訊號。它一方面把輸入資料鎖存到資料鎖存器中,另一方面使狀態標誌觸發器置1。狀態標誌是一位訊號,通過緩衝器後,接到CPU資料匯流排的某一位上,假設接至D7位。CPU先讀狀態口,查詢D7是否為1。若D7=1,表示輸入資料已經準備好,再讀資料口,取走輸入資料,同時使狀態標誌觸發器復位。
資料傳送過程的3個步驟:
①CPU先讀取狀態字
②檢查狀態字是否表明資料準備就緒
③如果準備就緒,則執行輸入指令讀取資料,且使狀態位清零。這樣便開始下一個資料傳輸過程。
/*****自我總結
輸入的工作原理如下:
當外設準備好的時候,會發送選通訊號,一方面資料進入鎖存器,另一方面觸發器D,使READY訊號傳送。當CPU來讀的時候,IO/M選通,RD為0,地址譯碼,與門輸出為1,經過兩個非門為1,三態快取器選通,READY訊號通過資料匯流排送到CPU,然後開始開始讀鎖存器內的資料,同時狀態位清零
******/
輸出的電路圖如下
輸出過程:
當前輸出裝置空閒時,狀態標誌觸發器清0。
CPU在輸出資料之前,先讀取狀態資訊。假設忙閒標誌接至資料線D0位,當D0=0時,表示輸出裝置空閒,CPU再對資料口執行輸出指令。
資料口選中訊號一方面把輸出資料寫入鎖存器,一方面使狀態標誌觸發器置1,通知輸出裝置。當輸出裝置取走當前資料後,向介面發出確認訊號ACK,使狀態標誌觸發器清0, 表示輸出裝置空閒。
/******自我總結
工作原理:CPU通過地址匯流排,經過地址譯碼器,輸出資料埠,IO/M為0,WD為1,傳送選通訊號,資料進入介面鎖存器和觸發器D為1,這個D有兩個作用,一個告訴外設可以讀取資料了,另一個讓狀態暫存器為BUSY,防止CPU繼續寫資料。
當外設把資料都讀完後,回送一個ACK,讓觸發器復位,D為0,清空狀態暫存器。
*******/
總結:得多看看,每次傳送資料的時候都會有一個狀態資訊,然後讀完資料都會復位
優點:軟體比較簡單
缺點:CPU效率低,資料傳送的實時性差,速度較慢
中斷
中斷控制的輸入和輸出方式,也稱中斷傳送方式,即當外設的輸入資料準備好或接收資料的鎖存器為空時,主動向CPU發出中斷請求,使CPU中斷原來執行的程式(主程式),轉去執行為外設服務的輸入或輸出操作,服務完畢,CPU再繼續執行原來的程式。
中斷傳送方式中, CPU和外設(甚至多個外設)可同時工作, 從而大大提高了CPU的效率和控制程式執行的實時性。必須經過 (1)暫停主程式,實現程式的轉移,即中斷響應。(2)保護和恢復有關暫存器內容。(3)執行I/O操作,並實現記憶體到累加器再到埠之間的傳送。(4)實現中斷返回。
輸入裝置將資料送到鎖存器中,同時傳送選通訊號,選通訊號一方面讓資料進入三態緩衝期,另一方面令D為1,經過與門讓INTR為1,傳送中斷請求。當CPU收到中斷請求之後,會通過地址譯碼器和讀寫訊號,經過與非門。與非門傳送的訊號一方面開啟三態緩衝期,讓資料進入資料匯流排,另一方面復位觸發器,D為0.中斷完成。
DMA
資料在I/O介面與儲存器之間的傳送,不經CPU的干預,而是在專用硬體電路的控制下直接傳送。這種方法稱為DMA 。在這種方式下,傳送的速度就只取決於儲存器和外設的工作速度。這大大提高了資料傳送速度。
DMA傳送主要應用於高速度大批量資料傳送的系統中,如磁碟存取、影象處理、高速資料採集系統等,以提高資料的吞吐量。
DMA傳送一般有三種形式
①儲存器與I/O裝置之間的資料傳送;
②儲存器與儲存器之間的資料傳送;
③I/O裝置與I/O裝置之間的傳送。
DMA控制器必須有以下功能:
①能接收外設發出的DMA 請求訊號,然後向CPU 發出匯流排接管請求訊號。
②當CPU發出匯流排請求允許訊號並放棄對匯流排的控制後,DMAC能接替對匯流排的控制,進入DMA方式。
③DMAC得到匯流排控制權後,要往地址匯流排傳送地址訊號,能修改地址指標,並能發出讀/寫控制訊號。
④能決定本次DMA傳送的位元組數,判斷DMA傳送是否結束。
⑤DMA過程結束時,能發出DMA 結束訊號,將匯流排控制權交還給CPU
計原中一些概念
輸入輸出系統:主要作用是連通計算機的各個功能部件和裝置,在它們之間進行資料交換。
輸入輸出系統的基本功能:是管理主機和外設以及外設與外設之間的資訊交換,由硬體和軟體共同完成此項任務,基本原則是:不丟失資料,快速傳輸資料,成本低廉,主機和外設、外設和外設之間儘可能並行工作已充分發揮各自的潛力
輸入輸出裝置的重要任務
- 將使用者編寫的程式/資料輸入至主機
- 將計算結果輸出給使用者
- 實現輸入/輸出系統與主機協調工作
計算機匯流排:計算機各部件之間的公共通道(包括資料匯流排,控制匯流排和地址匯流排)
主機與外設的介面資訊
- 資料資訊 可以通過輸入裝置送到計算機的輸入資料
- 控制資訊 CPU對外設的控制資訊或管理命令
- 狀態資訊 表示外設的狀態
- 聯絡資訊 主機和外設間工作的時間配合資訊
- 外設識別資訊 I/O定址的資訊
資料傳送的方式:非同步和同步
CPU訪問的方式:程式查詢式,中斷式,DMA式,通道式