




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第第6章章 節節 目目 錄錄l6.1 輸入輸出系統概述輸入輸出系統概述l6.2 簡單接口電路簡單接口電路l6.3 輸入輸出的輸入輸出的控制控制方式方式l6.4 中斷技術中斷技術l6.5 可編程中斷控制器可編程中斷控制器8259A章章第6章作業n6.5 n6.7n6.13n6.14n6.15n6.17章章 6.1 輸入輸出系統概述輸入輸出系統概述 處理器和主存儲器之外的部分統稱為輸入處理器和主存儲器之外的部分統稱為輸入輸出系統,它包括輸入輸出設備、輸入輸出輸出系統,它包括輸入輸出設備、輸入輸出接口和輸入輸出軟件。接口和輸入輸出軟件。 計算機在運行過程中所需要的程序和數計算機在運行過程中所需要的程
2、序和數據由外設輸入,而結果要輸出到外設去。據由外設輸入,而結果要輸出到外設去。接口接口輸入輸出系統輸入輸出系統電源CPU內存內存接口鍵盤、鼠標、顯示器打印機、聲音輸入輸出、圖形輸入、視頻輸入輸出用戶交互接口外存接口磁盤機磁帶機光盤機通信接口終端MODEM電傳機ADCDAC數字化儀器測控接口系統總線1、I/O接口要解決的問題接口要解決的問題一、一、I/O接口的基本功能接口的基本功能 速度匹配問題速度匹配問題 外設與外設與CPU相比,速度差距很大。相比,速度差距很大。 信號電平和驅動能力問題信號電平和驅動能力問題 CPU的信號電平的信號電平0 5V,而外設的電平范圍寬,需要驅,而外設的電平范圍寬,
3、需要驅動功率大。動功率大。 信號形式匹配問題信號形式匹配問題 外設的信號可以是數字量、開關量、模擬量等。外設的信號可以是數字量、開關量、模擬量等。 信息格式問題信息格式問題 外設可以是串行信號、并行信號等。外設可以是串行信號、并行信號等。 時序配合問題時序配合問題 外設有自己的時序與控制邏輯,與外設有自己的時序與控制邏輯,與CPU不一致。不一致。 I/O地址譯碼與設備選擇地址譯碼與設備選擇把選中的外設與總線相接,未選中的外設與總線把選中的外設與總線相接,未選中的外設與總線隔離(高阻態)隔離(高阻態) 信息的輸入與輸出信息的輸入與輸出通過接口可以向外設輸入或輸出數據。通過接口可以向外設輸入或輸出
4、數據。 信息轉換信息轉換 信息格式變換、電平轉換、碼制轉換、傳送管理及聯信息格式變換、電平轉換、碼制轉換、傳送管理及聯絡控制等功能。絡控制等功能。 命令、數據和狀態的緩沖與鎖存命令、數據和狀態的緩沖與鎖存接口電路有信息緩沖能力。可以解決速度匹配問題,接口電路有信息緩沖能力。可以解決速度匹配問題,實現實現CPU與外設之間的同步。與外設之間的同步。2、I/O接口的功能接口的功能串行接口的功能串行接口的功能1、發送時將并行數據轉、發送時將并行數據轉 換為串行。換為串行。2、接收時相反。、接收時相反。3、發送時將、發送時將TTL電平轉電平轉換為換為-15V-+15V 。4、接收時相反。、接收時相反。5
5、、異步發送與接收。、異步發送與接收。 接口接口外外 設設CPU計算機計算機DBWRRDINTRCS譯碼譯碼電路電路AB二、二、I/O接口的編址方式接口的編址方式1、CPU與與I/O接口通信是通過一組寄存器實現的。接口通信是通過一組寄存器實現的。 I/O信息的三種類型:數據、命令、狀態。信息的三種類型:數據、命令、狀態。 傳送這三類信息的通道分別稱為:傳送這三類信息的通道分別稱為: 數據端口數據端口(I、O)、命令端口、命令端口(O)、狀態端口、狀態端口(I) 接口接口外外 設設CPU計算機計算機命令端口命令端口數據端口數據端口狀態端口狀態端口DBWRRDINTRCS譯碼譯碼電路電路AB每個端口
6、有自每個端口有自己的地址編號己的地址編號 統一編址統一編址 把把外設端口外設端口與與內存內存統一進統一進行編址。各占據統一地址行編址。各占據統一地址空間的不同部分。空間的不同部分。0地址空間地址空間(共共1MB)內存地址內存地址(960KB)I/O地址地址(64KB)FFFFFHEFFFFHF0000H端口的兩種編址方式:統一編址和獨立編址端口的兩種編址方式:統一編址和獨立編址l 優點:優點:l 指令統一,靈活;指令統一,靈活;l 訪問控制信號統一。訪問控制信號統一。 l 缺點:缺點:l 內存可用地址空間減小內存可用地址空間減小 獨立編址獨立編址外設地址空間和內存地址空間外設地址空間和內存地址
7、空間相互獨立相互獨立。優點:內存地址空間不受優點:內存地址空間不受I/O編址的影響編址的影響缺點:需要專用缺點:需要專用I/O指令,功能較少指令,功能較少 應用:應用:Z-80系列和系列和x86系列均采用此方式。系列均采用此方式。如:存儲器讀寫用如:存儲器讀寫用MOV指令指令I/O接口讀寫用接口讀寫用IN或或OUT指令指令l 8088/8086 CPU的的I/O編址方式編址方式l 采用采用I/O獨立編址獨立編址方式方式(但地址線與存儲器共用但地址線與存儲器共用)l 地址線上的地址信號用地址線上的地址信號用 IO/M 來區分:來區分:IO/M =1 時為時為I/O地址,地址, IO/M =0 時
8、為存儲器地時為存儲器地址。址。l I/O操作只使用操作只使用20根地址線中的根地址線中的16根根: A15 A0l 可可尋址的尋址的I/O端口數為端口數為64K(65536)個個l I/O地址范圍為地址范圍為0FFFFHl IBM PC只使用了只使用了1024個個I/O地址地址(03FFH)三、三、8086/8088 I/O端口訪問端口訪問 四、四、 8086/8088 I/O端口地址的譯碼端口地址的譯碼2、I/O接口地址譯碼電路的設計原理與存儲器譯碼接口地址譯碼電路的設計原理與存儲器譯碼電路的設計思路一樣,由電路的設計思路一樣,由 A0 A15與與IO/M信號一信號一起進行譯碼即可。起進行譯
9、碼即可。1、根據系統提供的三總線信號為、根據系統提供的三總線信號為A0A19、D0D7、RD、WR、IO/M等設計譯碼電路并與系統等設計譯碼電路并與系統進行連接。進行連接。A15A12與與非非門門IO/MA15A12與與非非門門IO/M用于存儲器芯片選通用于存儲器芯片選通用于用于I/O芯片選通芯片選通 8088最小模式下的原理圖最小模式下的原理圖 8284A 地址總線(地址總線(20根)根)READYRESETALEA19 A8AD7AD0地址地址鎖存儲器鎖存儲器8282(三片)(三片)DENDT/RIO/MWRRDHOLDHLDAINTRINTACLK收發器收發器8286(一片)(一片)數據
10、總線(數據總線(8根)根)控制總線控制總線READY RESET8088MN/MX+5VA0 A19D0 D7存存儲儲器器系系統統I/O接接口口節節l數據輸入數據輸入/輸出寄存器輸出寄存器暫存輸入暫存輸入/輸出的輸出的數據數據l命令寄存器命令寄存器存放控制命令,用來設定接存放控制命令,用來設定接口功能、工作參數和工作方式。口功能、工作參數和工作方式。l狀態寄存器狀態寄存器保存外設當前狀態,以供保存外設當前狀態,以供CPU讀取。讀取。1、接口電路中寄存器的作用、接口電路中寄存器的作用l 數據輸入接口數據輸入接口l 必須具有三態輸出能力,以便與總線掛接必須具有三態輸出能力,以便與總線掛接l 外設有
11、數據保持能力時外設有數據保持能力時可用三態門實現可用三態門實現l 外設無數據保持能力時外設無數據保持能力時用三態輸出的鎖存器用三態輸出的鎖存器實現實現l 數據輸出接口數據輸出接口l 常用鎖存器實現常用鎖存器實現2、數據輸入、數據輸入/輸出接口電路的要求輸出接口電路的要求 l 三態門:三態門:l 高電平、低電平、高電平、低電平、高阻態高阻態l通常一個器件中包含8個三態門l常用芯片:74LS244l應用例子:開關接口二、簡單數據輸入接口設計二、簡單數據輸入接口設計。74LS244I0I3。E1數據總線數據總線E1 =0 輸入輸入E1 =1 高阻高阻數據總線數據總線CS1CS2地地址址譯譯碼碼器器接
12、口電路圖如下:83FCH83FFH譯碼器n鎖存器:由鎖存器:由D觸發器構成(具有鎖存功能)觸發器構成(具有鎖存功能)n通常一個器件包含8個D觸發器n常用芯片: n74LS273n74LS374四、簡單的輸出接口舉例四、簡單的輸出接口舉例SCPDiQi0XX0111100S74LS273MOV DX,0FFFFHMOV AL,01000001BOUT DX,AL. 1 1+5VRD0D7CPQ0Q7.D0D774LS273R A0A1A7A8A9A15IOW& 74LS374既可做輸入電路,也可做輸出電路。既可做輸入電路,也可做輸出電路。OEQ0D0D1Q1Q2D2D3Q3GNDVCCQ
13、7D7D6Q6Q5D5D4Q4CP1011155120DiOE CPQi101000 xx1高阻圖圖6-7 74LS374引線圖和真值表引線圖和真值表(D)CPQ1 1Di1 1(CP)OEQi圖6-8 74LS374內部結構&A15A14A13A12A11A10A9A8&A7A6A5A4A3A2A1A01 11 11 11LOWD0D7CPQ0Q1Q6Q7OED0D774LS374用作輸出接口74LS374用作輸入接口D0D7CPD0D1D7OED0D7譯碼電路A0A15IOR外設選通五、輸入五、輸入/輸出接口綜合應用例子輸出接口綜合應用例子n根據開關狀態在根據開關狀態在7段
14、數碼管上顯示數字或符號段數碼管上顯示數字或符號l共陽極7段數碼管結構用74LS273作為輸出接口,把數據送到7段數碼管l用74LS244作為輸入口,讀入開關K0K3的狀態l當開關的狀態分別為00001111時,在7段數碼管上對應顯示0F當當.gfedcba的值為C0H(11000000)時,顯示0O1 I1O2 I2O3 I3O4 I4E1 K0K3+5VGG2AG2BCBA1174LS244D0 Q0 | Q1D7 Q2 Q3 Q4CP Q5 Q6 Q7 abcdefgDP7406反相器反相器74LS273Rx81174LS138D0D7IOWIORY0Y1&1A7A4A15A8A3
15、A2A1A0D0D1D2D3譯碼器譯碼器Rx4F0H = 0000 0000 1111 0000F1H = 0000 0000 1111 0001 符號形狀7段碼.gfedcba符號形狀7段碼.gfedcba000111111801111111100000110901100111201011011A01110111301001111B01111100401100110C00111001501101101D01011110601111101E01111001700000111F01110001相應程序段如下相應程序段如下:Seg7DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
16、DB7FH,67H,77H,7CH,39H,5EH,79H,71HLEABX, Seg7;取;取7段碼表基地址段碼表基地址MOVAH, 0GO:MOVDX, 0F1H;開關接口的地址為;開關接口的地址為F1HINAL, DX;讀入開關狀態;讀入開關狀態ANDAL, 0FH;保留低;保留低4位位MOVSI, AX;作為;作為7段碼表的表內位移量段碼表的表內位移量MOVAL, BX+SI ;取;取7段碼段碼MOVDX, 0F0H;7段數碼管接口的地址為段數碼管接口的地址為F0HOUTDX, ALJMPGO節節6.3 輸入輸出的輸入輸出的控制控制方式方式 l無條件傳送無條件傳送l查詢式傳送查詢式傳送
17、l中斷方式傳送中斷方式傳送l直接存儲器存取直接存儲器存取(DMA, Direct Memory Access)主機與外設之間數據傳送的控制方式有以下四種:主機與外設之間數據傳送的控制方式有以下四種:一、一、 無條件傳送方式無條件傳送方式l適用于總是處于準備好狀態的外設適用于總是處于準備好狀態的外設l以下外設可采用無條件傳送方式:以下外設可采用無條件傳送方式:l開關開關l發光器件發光器件(如發光二極管、如發光二極管、7段數碼管、燈泡等段數碼管、燈泡等)l繼電器繼電器l步進電機步進電機l優點:軟件及接口硬件簡單優點:軟件及接口硬件簡單l缺點:只適用于簡單外設,適應范圍較窄缺點:只適用于簡單外設,適
18、應范圍較窄A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A151&1IORD0圖6-12 開關K通過輸入接口與系統的連接K+5V10K二、二、 查詢方式查詢方式l適用于外設并不總是準備好,而且對傳送速率、適用于外設并不總是準備好,而且對傳送速率、傳送效率要求不高的場合。傳送效率要求不高的場合。lCPU在與外設交換數據前必須詢問外設狀態在與外設交換數據前必須詢問外設狀態“你準備好沒有?你準備好沒有?”l對外設的要求:應提供設備狀態信息對外設的要求:應提供設備狀態信息l對接口的要求:需要提供狀態端口對接口的要求:需要提供狀態端口l優點優點:軟件比較簡單:軟件比較簡單
19、l缺點缺點:CPU效率低,數據傳送的實時性差,速度效率低,數據傳送的實時性差,速度較慢。較慢。CPU接口接口外設外設系統總線狀態數據控制圖6-13 查詢工作方式示意圖取外設狀態外設準備就緒否傳送數據NY傳送完否NY結束圖6-14 單一外設時查詢方式流程圖1號外設準備就緒NY對1號外設服務2號外設準備就緒NY對2號外設服務3號外設準備就緒NY對3號外設服務n號外設準備就緒NY對n號外設服務圖6-15 多個外設時的查詢工作方式流程圖三、三、 中斷方式中斷方式 lCPU無需循環查詢外設狀態,而是外部設備在無需循環查詢外設狀態,而是外部設備在需要進行數據傳送時才中斷需要進行數據傳送時才中斷CPU正在進
20、行的工正在進行的工作,讓作,讓CPU來為其服務。即來為其服務。即CPU在沒有外設請在沒有外設請求時可以去做更重要的事情,有請求時才去傳求時可以去做更重要的事情,有請求時才去傳輸數據,從而大大提高了輸數據,從而大大提高了CPU的利用率。的利用率。l優點:優點:CPU效率高,實時性好,速度快。效率高,實時性好,速度快。l缺點:程序編制較為復雜。缺點:程序編制較為復雜。6.3.4 DMA傳輸傳輸 l 前三種前三種I/O方式都需要方式都需要CPU作為中介:作為中介: 1)軟件方面軟件方面:外設與內存之間的數據傳送是通過:外設與內存之間的數據傳送是通過 CPU執行程序來完成的;執行程序來完成的;2)硬件
21、方面硬件方面:I/O接口和存儲器的讀寫控制信號、地接口和存儲器的讀寫控制信號、地址信號都是由址信號都是由CPU發出的(總線由發出的(總線由CPU控制)。控制)。CPU外設外設外設外設 存儲器存儲器缺點:程序的執行速度限定了傳送的最大速度缺點:程序的執行速度限定了傳送的最大速度(約為幾十(約為幾十KB/秒)。秒)。 優點:數據傳輸由DMA控制器即硬件來控制,數據直接在內存和外設之間交換,可以達到很高的傳輸速率(可達幾MB/秒)DMA傳送原理示意圖 系統總線系統總線CPUDMAC存儲器存儲器外設外設 AENIOWMEMWMEMRIORMEMWMEMRIOWIORAENHOLDHLDA DRQDAC
22、KAENIOWIORMEMWMEMR 外設發出外設發出DMA請求信號請求信號DRQ DMAC向向CPU申請總線申請總線HOLD CPU響應,釋放總線控制權,并發出響應,釋放總線控制權,并發出HLDA信號信號 DMAC得到總線控制權,并向外設發出響應信號得到總線控制權,并向外設發出響應信號DACK 由由DMAC發出各種控制信號,控制外設與存儲器之發出各種控制信號,控制外設與存儲器之 間的數據傳送間的數據傳送 數據傳送完后,數據傳送完后,DMAC撤銷撤銷HOLD信號信號 CPU釋放釋放HLDA信號,并重新控制總線信號,并重新控制總線節節6.4 中斷技術中斷技術6.4.1 中斷的基本概念中斷的基本概
23、念正在看書正在看書電話鈴響電話鈴響接電話接電話繼續看書繼續看書實際場景實際場景執行程序執行程序事件發生事件發生事件處理事件處理繼續執行程序繼續執行程序計算機計算機中斷處理中斷處理中斷請求及響應中斷請求及響應中斷返回中斷返回中斷的定義中斷的定義 lCPU執行程序時,由于發生了某種隨機的事件執行程序時,由于發生了某種隨機的事件(外外部或內部部或內部),引起,引起CPU暫時中斷正在運行的程序,暫時中斷正在運行的程序,轉去執行一段特殊的服務程序轉去執行一段特殊的服務程序(稱為中斷服務程序稱為中斷服務程序或中斷處理程序或中斷處理程序),以處理該事件,該事件處理完,以處理該事件,該事件處理完后又返回被中斷
24、的程序繼續執行,這一過程稱為后又返回被中斷的程序繼續執行,這一過程稱為中斷。中斷。與子程序的區別?與子程序的區別?只有執行到只有執行到CALL時才調用時才調用子程序,而中斷是隨機的。子程序,而中斷是隨機的。中斷源中斷源n引起引起CPU中斷的事件中斷的事件中斷源。例如:中斷源。例如:外設外設請求輸入輸出數據,報告故障等請求輸入輸出數據,報告故障等事件事件掉電、硬件故障、軟件錯誤、非法操作、定時掉電、硬件故障、軟件錯誤、非法操作、定時時間到等。時間到等。n中斷源分為:外部中斷、內部中斷中斷源分為:外部中斷、內部中斷內部中斷:內部中斷:CPU內部執行程序時自身產生的中斷(如內部執行程序時自身產生的中
25、斷(如INT指令、溢出、被指令、溢出、被0除等)除等)外部中斷:外部中斷:CPU以外的設備、部件產生的中斷以外的設備、部件產生的中斷n 8086/8088的外部中斷信號:的外部中斷信號:INTR、NMIINTR可屏蔽中斷請求,高電平有效,受可屏蔽中斷請求,高電平有效,受IF標志的控標志的控制。制。IF=1時,執行完當前指令后時,執行完當前指令后CPU對它作出響應。對它作出響應。 NMI非屏蔽中斷請求,上升沿有效,任何時候非屏蔽中斷請求,上升沿有效,任何時候CPU都要響應此中斷請求信號。都要響應此中斷請求信號。為何計算機中要引入中斷?為何計算機中要引入中斷?l 避免了避免了CPU不斷檢測外設狀態
26、的過程,提不斷檢測外設狀態的過程,提高了高了CPU的利用率。的利用率。l 實現對特殊事件的實時響應。如多任務系實現對特殊事件的實時響應。如多任務系統操作系統中:統操作系統中: l 缺頁中斷缺頁中斷l 設備中斷設備中斷l 各類異常各類異常l 實時鐘,。等實時鐘,。等中斷過程中斷過程n五個步驟:五個步驟:中斷請求中斷請求中斷判優中斷判優(有時還要進行中斷源識別有時還要進行中斷源識別)中斷響應中斷響應中斷服務中斷服務中斷返回中斷返回以下以以下以外部中斷外部中斷為主介紹這五個步驟。為主介紹這五個步驟。1)中斷請求)中斷請求n外設接口(中斷源)發出中斷請求信號,送到外設接口(中斷源)發出中斷請求信號,送
27、到CPU的的INTR或或NMI引腳;引腳;中斷請求信號:邊沿請求,電平請求中斷請求信號:邊沿請求,電平請求例如,例如,NMI為邊沿請求,為邊沿請求,INTR為電平請求為電平請求n中斷請求信號應保持到中斷被處理為止;中斷請求信號應保持到中斷被處理為止;nCPU響應中斷后,中斷請求信號應及時撤銷。響應中斷后,中斷請求信號應及時撤銷。n在在8086/8088系統中,外設的中斷要經過系統中,外設的中斷要經過8259A可可編程中斷控制器編程中斷控制器(PIC)的排隊判優后向的排隊判優后向CPU發出。發出。CPUINTRINTAIR0IR1IR7D0D7INTAINTCS A0RDWRD0D7RDWR。8
28、259ASP/ENCAS0CAS1CAS2中斷源中斷源2)中斷判優)中斷判優n多個中斷源產生中斷,多個中斷源產生中斷,CPU首先為誰服務?首先為誰服務?中斷優先級排隊問題。中斷優先級排隊問題。n中斷優先級控制要處理兩種情況:中斷優先級控制要處理兩種情況:對對同時產生同時產生的中斷:應首先處理優先級別較高的中斷;若優先級的中斷:應首先處理優先級別較高的中斷;若優先級別相同,則按先來先服務的原則處理;別相同,則按先來先服務的原則處理;對對非同時產生非同時產生的中斷:低優先級別的中斷處理程序允許被高優先的中斷:低優先級別的中斷處理程序允許被高優先級別的中斷源所中斷級別的中斷源所中斷即允許即允許中斷嵌
29、套中斷嵌套。n中斷優先級的控制方法中斷優先級的控制方法硬件判優硬件判優鏈式判優、并行判優(中斷向量法)鏈式判優、并行判優(中斷向量法)軟件判優軟件判優順序查詢中斷請求,先查詢的先服務(即先查詢的順序查詢中斷請求,先查詢的先服務(即先查詢的優先級別高)優先級別高)n通常將通常將中斷判優中斷判優與與中斷源識別中斷源識別合并在一起進行處理。合并在一起進行處理。x86系統中,這項任務由系統中,這項任務由PIC和和CPU共同完成。共同完成。軟件判優軟件判優CPUD0D7INTR并行輸入接口1中斷請求寄存器IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7圖6-18 軟件判優的結構原理圖斷點
30、保護IRQ0IRQ1IRQ7中斷返回YYYNNN中斷源0的中斷服務程序中斷源1的中斷服務程序中斷源7的中斷服務程序圖6-19 軟件中斷優先權查詢流程圖 中斷矢量法:中斷矢量法:為不同的中斷源提供不同的中斷為不同的中斷源提供不同的中斷類型碼(中斷向量碼),即為每一個中斷分配類型碼(中斷向量碼),即為每一個中斷分配一個編號,一個編號,CPU根據類型碼確定中斷源。根據類型碼確定中斷源。(8086/8088即采用此種方法)即采用此種方法)硬件判優硬件判優 鏈式判優:將鏈式判優:將中斷源構成一個鏈。中斷源構成一個鏈。菊花鏈邏輯電路菊花鏈邏輯電路INTAinIREQINTR&=1 1INTAout
31、DB三態門中斷向量碼E外設接口外設接口中斷確認中斷確認菊花鏈菊花鏈邏輯電路邏輯電路3)中斷響應)中斷響應n在每條指令的最后一個時鐘周期,在每條指令的最后一個時鐘周期,CPU檢檢測測INTR或或NMI信號。若以下條件成立,則信號。若以下條件成立,則CPU響應中斷:響應中斷: 當前指令執行完。對當前指令執行完。對INTR,還應滿足以下條,還應滿足以下條件件n當前指令是當前指令是STI和和IRET,則下條指令也要執行完。,則下條指令也要執行完。n當前指令帶有當前指令帶有LOCK、REP等指令前綴時,則把它等指令前綴時,則把它們看成一個整體,要求完整地執行完;們看成一個整體,要求完整地執行完; 對對I
32、NTR,CPU應處于開中斷狀態,即應處于開中斷狀態,即IF=1; 當前沒有復位當前沒有復位(RESET)和保持和保持(HOLD)信號。信號。 若若NMI和和 INTR 同時發生,則首先響應同時發生,則首先響應NMI。nCPU中斷響應時,要做下述三項工作:中斷響應時,要做下述三項工作:向中斷源發出向中斷源發出/INTA中斷響應信號;中斷響應信號;斷點保護,包括斷點保護,包括CS、IP和和PSW(FLAGS)。)。這主要是保證中斷結束后能返回被中斷的程序。這主要是保證中斷結束后能返回被中斷的程序。獲得中斷服務程序首地址(入口地址)。獲得中斷服務程序首地址(入口地址)。如何得到中斷處理程序的首地址?
33、如何得到中斷處理程序的首地址?n固定入口法固定入口法n中斷向量法(中斷向量法(8086采用的方法)采用的方法)4)中斷處理(中斷服務)中斷處理(中斷服務)n中斷服務子程序特點中斷服務子程序特點為為“遠遠”過程(類型為過程(類型為FAR)要用要用IRET指令返回指令返回n中斷服務子程序要做的工作中斷服務子程序要做的工作保護現場保護現場(PUSH regs) 開中斷開中斷(STI) 進行中斷處理進行中斷處理 關中斷關中斷(CLI)恢復現場恢復現場(POP regs) 中斷返回中斷返回(IRET) 6.4.2 8088的中斷系統的中斷系統n 與中斷有關的控制線為:與中斷有關的控制線為:NMI、INT
34、R、/INTAn 8088系統的中斷源系統的中斷源 內部中斷內部中斷n 除法溢出:類型號除法溢出:類型號0,商大于目的操作數所能表達的范圍時產生。,商大于目的操作數所能表達的范圍時產生。n 單步中斷:類型號單步中斷:類型號1,TF=1時產生(當前指令需執行完)時產生(當前指令需執行完)n 斷點中斷:類型號斷點中斷:類型號3,這是一個軟件中斷,即,這是一個軟件中斷,即INT 3指令。指令。n 溢出中斷:類型號溢出中斷:類型號4,這是一個軟件中斷,即,這是一個軟件中斷,即INTO指令。指令。n 軟件中斷:即軟件中斷:即INT n指令,類型號指令,類型號n(0-255)。 外部中斷外部中斷n 非屏蔽
35、中斷非屏蔽中斷NMI:類型號:類型號2,不可用軟件屏蔽,不可用軟件屏蔽,CPU必須響應它。必須響應它。n 可屏蔽中斷可屏蔽中斷INTR:類型號由:類型號由PIC提供。提供。IF=1時時CPU才能響應。才能響應。一、一、8086/8088中斷源類型中斷源類型NMII N TR中斷邏輯中斷邏輯軟件中斷指令軟件中斷指令溢出中斷溢出中斷除法錯除法錯單步中斷單步中斷非屏蔽中斷請求非屏蔽中斷請求中斷控中斷控制器制器8259APIC8086/8088CPU內部邏內部邏輯輯斷點中斷斷點中斷可可屏屏蔽蔽中中斷斷請請求求n43012n8088系統采用系統采用中斷類型中斷類型(向量向量)碼碼來識別不同的中來識別不同
36、的中斷源,斷源,每個中斷源都有一個與它相對應的中斷類每個中斷源都有一個與它相對應的中斷類型碼型碼 。溢出、斷點、除法溢出、單步、非屏蔽中斷的類型碼溢出、斷點、除法溢出、單步、非屏蔽中斷的類型碼為為固定值固定值軟件軟件中斷的類型碼由中斷的類型碼由指令指令給出給出可屏蔽中斷的類型碼由可屏蔽中斷的類型碼由PIC給出給出nCPU響應響應INTR中斷時,會產生兩個中斷響應總中斷時,會產生兩個中斷響應總線周期,要求線周期,要求PIC在第在第2個中斷響應總線周期把中個中斷響應總線周期把中斷類型碼放到數據總線上,供斷類型碼放到數據總線上,供CPU讀入。讀入。二、中斷向量表(二、中斷向量表(IVT) n 存放各
37、類中斷的中斷服務程序的存放各類中斷的中斷服務程序的入口地址入口地址(段和(段和偏移)偏移) ;n 表的地址位于內存的表的地址位于內存的00000H003FFH,共,共256個入口個入口;n 每個入口占用每個入口占用4 Bytes,低字為段內偏移,高字,低字為段內偏移,高字為段基址為段基址;n 根據中斷類型號根據中斷類型號獲得中斷服務程序入口的方法獲得中斷服務程序入口的方法: (n為為中斷類型號中斷類型號)中斷向量在中斷向量在IVT中的存放地址中的存放地址 n4CS段基址IP偏移量CS段基址IP偏移量CS段基址IP偏移量CS段基址IP偏移量CS段基址IP偏移量CS段基址IP偏移量CS段基址IP偏
38、移量中斷類型0的中斷向量中斷類型1的中斷向量中斷類型2的中斷向量中斷類型3的中斷向量中斷類型4的中斷向量中斷類型32的中斷向量中斷類型255的中斷向量00000H00004H00008H0000CH00010H00014H00080H00084H003FCH003FFH6-23 中斷向量表結構中斷向量表結構中斷處理程序中斷處理程序STIPUSH DSIRETINT 4AHNOPF0類型類型49H中斷向量中斷向量0600類型類型4BH中斷向量中斷向量180:1240:1250:1260:1270:1280:1290:12A0:12B0:12C0:12D0:12E0:12F1806F000IPCS
39、F000:1806從堆棧中彈出從堆棧中彈出FLAG、CS、IP向量計算向量計算=4AH 4=128HFLAG、CS、IP入棧等入棧等三、軟中斷的執行過程三、軟中斷的執行過程四、四、8086/8088 CPU的中斷響應過程的中斷響應過程 n內部中斷響應過程內部中斷響應過程 無中斷響應周期無中斷響應周期中斷類型碼固定或由指令(中斷類型碼固定或由指令(INT n)給出)給出響應過程步驟:響應過程步驟: 將類型碼乘將類型碼乘4,計算出中斷向量的地址,計算出中斷向量的地址 標志寄存器入棧標志寄存器入棧 清除清除IF、TF,即屏蔽新的,即屏蔽新的INTR和單步中斷和單步中斷 保存斷點,將斷點處的保存斷點,
40、將斷點處的 CS壓棧壓棧將斷點處的將斷點處的 IP壓棧壓棧 (I P)=(n*4+1):(n*4+0) (CS)=(n*4+3):(n*4+2) 執行中斷服務程序。執行中斷服務程序。中斷響應過程(續)中斷響應過程(續)n外部中斷響應過程外部中斷響應過程非屏蔽中斷,與內部中斷響應過程類似非屏蔽中斷,與內部中斷響應過程類似 可屏蔽中斷可屏蔽中斷(時序見圖時序見圖6.24) /INTA(1),),PIC進行優先級排隊判優處理進行優先級排隊判優處理 /INTA(2),),PIC把中斷類型碼放到把中斷類型碼放到DB上,由上,由CPU讀入讀入 壓棧壓棧 FLAG 清除清除 IF、TF CS入棧入棧 IP入
41、棧入棧 (I P)=(n*4+1):(n*4+0) (CS)=(n*4+3):(n*4+2)T1T2T3T4T1T2T3T4中斷類型碼CLKALELOCKINTAD0D7第一個INTA總線周期第一個INTA總線周期圖6-24 8086/8088對INTR的中斷響應時序IRET1、FLAGS、CS、IP入棧入棧2、清除、清除IF、TF3、轉中斷服務處理程序、轉中斷服務處理程序 INTHAND(通過中斷矢量表)(通過中斷矢量表)產生中斷產生中斷1、FLAGS、CS、IP出棧出棧2、返回斷點,繼續執行、返回斷點,繼續執行 下一條指令下一條指令中斷返回中斷返回INTHAND:;PROGRAM IN E
42、XECUTION可屏蔽中斷的執行過程可屏蔽中斷的執行過程8088系統中各中斷的優先級系統中各中斷的優先級l 優先級從高到低順序如下:優先級從高到低順序如下:l 內部中斷內部中斷l NMIl INTRl 單步中斷單步中斷節節6.5 可編程中斷控制器可編程中斷控制器8259AlPIC,Programmable Interrupt Controllerl可對可對8個中斷源實現優先級控制個中斷源實現優先級控制 l可擴展至對可擴展至對64個中斷源實現優先級控制個中斷源實現優先級控制 l可編程設置不同工作方式可編程設置不同工作方式l根據中斷源向根據中斷源向x86提供不同中斷類型碼提供不同中斷類型碼可編程芯
43、片:可以用程序設置芯片的工作方式,控制其工作過程。可編程芯片:可以用程序設置芯片的工作方式,控制其工作過程。 A0:是是8259A內部寄存器內部寄存器的選擇信號。它與的選擇信號。它與/WR、/RD、/CS等信號相配合,對不同的內部寄存器進行讀寫。等信號相配合,對不同的內部寄存器進行讀寫。 使用中,通常接地址總線的使用中,通常接地址總線的A1或或A0等。等。 INT:8259A中斷請求輸出信號,直接接到中斷請求輸出信號,直接接到CPU的的INTR輸輸入端。入端。 /INTA:中斷響應輸入信號。在中斷響應過程中中斷響應輸入信號。在中斷響應過程中CPU的中斷的中斷響應信號響應信號由此端進入由此端進入
44、8259A。 CAS0-CAS2:級聯控制線。當多片級聯控制線。當多片8259A級聯工作時,其級聯工作時,其中中一片為主片,一片為主片, 其他均為從片其他均為從片。主片主片8259A: CAS0-CAS2為為輸出輸出; 從片從片8259A: CAS0-CAS2為為輸入輸入。 當某從片提出中斷請求時,主片通過當某從片提出中斷請求時,主片通過CAS0-CAS2送出送出相應的編碼給從片,使從片的中斷被允許。相應的編碼給從片,使從片的中斷被允許。 SPEN:為雙功能引線。為雙功能引線。當當8259A工作在工作在緩沖模式緩沖模式時,它為時,它為輸出輸出,用以控制緩,用以控制緩沖器的傳送方向:沖器的傳送方
45、向:當數據當數據: CPU8259A 時,時,SP/EN輸出為輸出為高電平高電平;當數據當數據: 8259ACPU 時,時,SP/EN輸出為輸出為低電平低電平。在在8259A工作在工作在非緩沖模式非緩沖模式時,它為時,它為輸入輸入,用于指定,用于指定8259A是主片還是從片:是主片還是從片:SP1的的8259A為主片,為主片,SP0的的 8259A為從片。只為從片。只有一有一 個個8259A時,它應接高電平時,它應接高電平。IR0-IR7:為中斷請求輸入信號,與外設的中斷請求線相為中斷請求輸入信號,與外設的中斷請求線相連。上升沿或高電平連。上升沿或高電平(可通過編程設定可通過編程設定)時表示有
46、中斷請求到時表示有中斷請求到達。達。CPUINTRINTAIR0IR1IR7D0D7INTAINTCS A0RDWRD0D7RDWR。8259ASP/ENCAS0CAS1CAS2級連電路連接方法6.5.1 8259A的內部結構的內部結構數據總線緩沖器讀/寫控制電路級聯緩沖/比較器D0D7CAS0CAS1CAS2SP/ENRDWDA0CS內部控制邏輯電路當前終端服務寄存器(ISR)優先權判別電路中斷請求電路(IRR)中斷屏蔽寄存器(IMR)內部總線INTINTA圖6-27 8259A內部結構框圖n 8259A的內部結構 中斷請求寄存器中斷請求寄存器IRRn保存從保存從IR0IR7來的中斷請求信號
47、,某位為來的中斷請求信號,某位為1表示對表示對應的應的IRi有中斷請求有中斷請求 。中斷服務寄存器中斷服務寄存器ISR n保存所有正在服務的中斷源,某位為保存所有正在服務的中斷源,某位為1表示對應的表示對應的IRi中斷中斷正在被服務正在被服務 ,可能同時有幾位為,可能同時有幾位為1。中斷屏蔽寄存器中斷屏蔽寄存器IMRn存放中斷屏蔽字,某位存放中斷屏蔽字,某位=1表示對應的表示對應的IRi輸入輸入被屏蔽被屏蔽 。中斷優先權判別電路中斷優先權判別電路 n 確定是否向確定是否向CPU發出中斷請求,中斷響應時確定發出中斷請求,中斷響應時確定ISR的哪位應置位及把相應中斷的類型碼放到數據總線上的哪位應置
48、位及把相應中斷的類型碼放到數據總線上 。 6.5.2 8259A的工作過程的工作過程l 8259A對外部可屏蔽中斷請求的處理過程如下:對外部可屏蔽中斷請求的處理過程如下:l當某當某IRi有效時,有效時,IRR相應位置相應位置1。l若有效的若有效的IRi未被屏蔽未被屏蔽,則,則向向CPU發出中斷請求。發出中斷請求。l若若CPU處于開中斷狀態,則在當前指令執行完后,發處于開中斷狀態,則在當前指令執行完后,發/INTA。l檢測到檢測到第第1個個/INTA信號后,信號后,置置ISRi=1,IRRi=0。l檢測到檢測到第第2個個/INTA信號后,信號后,把把ISRi=1中最高優先級的中最高優先級的中斷中
49、斷類型碼放到類型碼放到DB上。上。l若工作在若工作在AEOI方式,在第方式,在第2個個/INTA結束時,使結束時,使ISRi復位復位;否則由否則由CPU發出發出EOI命令使命令使ISRi復位。復位。6.5.3 8259A的工作方式的工作方式l8259A的工作方式:的工作方式:l 中斷觸發方式中斷觸發方式l 屏蔽中斷源的方式屏蔽中斷源的方式l 中斷優先方式中斷優先方式l 中斷嵌套方式中斷嵌套方式l 中斷結束處理方式中斷結束處理方式 l 級聯工作方式級聯工作方式一、中斷觸發方式一、中斷觸發方式l邊沿觸發邊沿觸發l IRi出現上升沿表示有中斷請求出現上升沿表示有中斷請求 l電平觸發電平觸發l IRi
50、出現高電平表示有中斷請求,但應及時撤除出現高電平表示有中斷請求,但應及時撤除高電平,否則可能引起第二次中斷。高電平,否則可能引起第二次中斷。l在第在第1個個/INTA結束前,結束前,IRi必須保持高電平。必須保持高電平。 二、屏蔽中斷源的方式二、屏蔽中斷源的方式l 普通普通屏蔽方式:屏蔽方式:IMR屏蔽字決定了屏蔽字決定了允許或禁止允許或禁止某某位位IRi所對應的中斷所對應的中斷:l IMi=1 禁止,禁止,IMi=0 允許(即正常屏蔽方式)。允許(即正常屏蔽方式)。l 特殊特殊屏蔽方式:屏蔽方式:l提供了允許提供了允許較低優先級較低優先級的中斷能夠得到響應的特殊的中斷能夠得到響應的特殊手段。
51、手段。l原理原理:假定當前正在處理:假定當前正在處理IR6,先,先進入特殊屏蔽方式,進入特殊屏蔽方式,然后設置然后設置IM6=1。這時,。這時,除除IR6外外的所有中斷請求的所有中斷請求均能得到響應。均能得到響應。l特殊屏蔽方式中只能用特殊屏蔽方式中只能用SEOI命令結束中斷。命令結束中斷。三、中斷優先方式三、中斷優先方式l 中斷優先方式中斷優先方式 l兩類優先級控制方式:兩類優先級控制方式:固定優先級固定優先級和和循環優先級循環優先級l固定優先級方式固定優先級方式l所有中斷請求所有中斷請求IRi的中斷優先級固定不變的中斷優先級固定不變l優先級排列順序優先級排列順序可通過編程可通過編程改變改變
52、l加電后加電后8259A的默認方式,默認優先級順序從高到低的默認方式,默認優先級順序從高到低為為IR0IR7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低級最低級最高級最高級最高級最高級最低級最低級優先級優先級IR7IR6IR5IR4IR3IR2IR1IR0默認優先級默認優先級優先級可編程改變優先級可編程改變l 循環優先級方式循環優先級方式 l 中斷源中斷源輪流輪流處于最高優先級,即自動中斷優先級循環處于最高優先級,即自動中斷優先級循環l 初始優先級初始優先級順序可用編程改變順序可用編程改變l 某中斷請求某中斷請求IRi被處理后,其優先級別自動降為被處理后
53、,其優先級別自動降為最低最低,原來比它低一級的中斷上升為原來比它低一級的中斷上升為最高級最高級。 21076543最高級最低級IR7IR6IR5IR4IR3IR2IR1IR001000000IR4的服務結束以后的服務結束以后IR7IR6IR5IR4IR3IR2IR1IR076543210最低級最高級ISR內容內容IR4的服務結束以前的服務結束以前01010000ISRil 在中斷處理過程中允許被更高優先級的事件所中斷稱為中斷嵌套。l 8259A有兩種中斷嵌套方式:l 普通全嵌套普通全嵌套方式(默認方式)方式(默認方式) 一中斷正被處理時,只有更高優先級的事件可一中斷正被處理時,只有更高優先級的
54、事件可以打斷當前的中斷處理過程而被服務。以打斷當前的中斷處理過程而被服務。l 特殊全嵌套特殊全嵌套方式方式 一中斷正被處理時,允許一中斷正被處理時,允許同級同級或更高優先級的或更高優先級的事件打斷當前的中斷處理過程而被服務。事件打斷當前的中斷處理過程而被服務。四、中斷嵌套四、中斷嵌套方式方式僅用于多個僅用于多個8259A級連時的主級連時的主8259A。D.主主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:一般嵌套方式:從片的從片的INT被主片被主片封鎖,故更高級別封鎖,故更高級別的的IR0-IR2中斷也無中斷也無法得到響應法得到響應特殊嵌套方式:特殊嵌套方式:因主片不
55、封鎖從片的因主片不封鎖從片的INT,故級別高的,故級別高的IR0-IR2中斷可以得到響應。中斷可以得到響應。(但但IR3-IR7仍被本從片仍被本從片封鎖封鎖)C.假定假定IR3發生中發生中斷斷,并獲得服務并獲得服務一般嵌套方式:一般嵌套方式:IR4的中斷被服務的中斷被服務時,這些中斷將時,這些中斷將被封鎖。被封鎖。B.特殊嵌套方式:特殊嵌套方式:IR4的中斷被服的中斷被服務 時 , 只 封 鎖務 時 , 只 封 鎖IR5-IR7。A.I NTE.從從8259AI NTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式與特殊全嵌套方式的區別一般全嵌套方式與特殊全嵌套方式的區別 去去C
56、PU五、中斷結束處理方式五、中斷結束處理方式l 當某一IRi中斷被服務時,ISR中的相應位ISRi=1。當服務結束后,則必須清零該ISRi位。使ISRi=0是通過向8259A發出中斷結束命令(EOI命令)實現的。l 三種EOI命令l自動EOI(AEOI)(自動EOI方式)l非指定EOI(NSEOI)(正常EOI方式)l指定EOI(SEOI)(特殊EOI方式)l AEOI:在第在第2個個/INTA結束時,由結束時,由8259A使使ISRi自自動復位;動復位;l因不保留當前正在服務的中斷的狀態,故因不保留當前正在服務的中斷的狀態,故AEOI不能用不能用于中斷嵌套方式于中斷嵌套方式l NSEOI:由
57、由CPU發出正常發出正常EOI命令命令,該,該EOI命令使命令使ISRi=1的位中優先級最高的那一位復位。的位中優先級最高的那一位復位。l用于普通全嵌套方式用于普通全嵌套方式l SEOI:由:由CPU發出一條發出一條SEOI命令命令,該,該EOI命令中命令中指出了所要復位的指出了所要復位的ISR的位號。的位號。 l用于特殊屏蔽方式用于特殊屏蔽方式中斷服務程序中斷服務程序向向從從PIC發發EOI命令命令讀讀從從PIC的的ISR全全0?向主向主PIC發發EOI命令命令YIRET恢復現場恢復現場Nn特殊全嵌套方式特殊全嵌套方式下的下的EOI處理處理n只有當只有當從從8259A的中斷全部處理的中斷全部
58、處理完后,才能向完后,才能向主主8259A發發EOI命令。命令。六、級聯工作方式六、級聯工作方式l 單片單片8259A可支持可支持8個中斷源;個中斷源;l 采用多片采用多片8259A級聯,可最多支持級聯,可最多支持64個中斷源。個中斷源。 n片片8259A可支持可支持8*(n-1)+8-(n-1)=7n+1個中斷源;個中斷源;l 級聯時只能有一片級聯時只能有一片8259A為主片,其余的均為從片;為主片,其余的均為從片;l 涉及到的涉及到的8259A引腳引腳包括:包括:lCAS0 - CAS2lSP/ENlIRilINT 主片主片8259AIR0 IR1IR2IR3IR4IR5 IR6 IR7I
59、NTINTRINTAINTA 從片從片1IR0 IR1IR2IR3IR4IR5 IR6 IR7INTINTA 從片從片8IR0 IR1IR2IR3IR4IR5 IR6 IR7INTINTA6.5.4 8259A的編程使用的編程使用l 8259A的控制命令分為的控制命令分為l 初始化命令字初始化命令字ICWl ICW1ICW4l 向向8259A寫入寫入ICW的過程稱為初始化編程的過程稱為初始化編程l 操作命令字操作命令字OCW l OCW1OCW3l 向向8259A寫入寫入OCW的過程稱為操作方式編程的過程稱為操作方式編程8259A內部寄存器的尋址方法內部寄存器的尋址方法/CS/RD/WRA0D
60、4D3讀寫操作讀寫操作010000寫寫OCW2寫寫OCW3寫寫ICW1寫寫ICW2,ICW3,ICW4,OCW1(順序寫順序寫入入)00101x1xx00101xx讀出讀出IRR、ISR(由(由OCW3區分)區分)讀出讀出IMRl需要需要/CS、A0、/RD、/WR和和D4、D3的配合的配合l內部寄存器的訪問方法如下表:內部寄存器的訪問方法如下表: 8259A的控制命令字n初始化8259A必須從ICW1開始寫寫ICW1意味著重新初始化意味著重新初始化8259A寫入寫入ICW1后,后,8259A的狀態如下:的狀態如下:n清除清除ISR和和IMR(全全0);n將中斷優先級設成初始狀態:將中斷優先級設成初始狀態:IR0最高,最高,IR7最低
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電氣機械維護手冊與技術指南考核試卷
- 汽輪機在區域供冷中的應用考核試卷
- 電力儀表殘余電流檢測考核試卷
- 安全監控中的安全策略制定與執行考核試卷
- 電容器在農業機械電氣化中的應用考核試卷
- 航天器電路集成與電子元件考核試卷
- 稀土金屬壓延加工中的生產過程質量控制與改進考核試卷
- 礦物加工與貴金屬回收技術考核試卷
- 手繪基礎考試試題及答案
- 高一醫德考試試題及答案
- 2025年重慶市中考物理模擬試卷(一)(含解析)
- 《服務營銷雙主動》課件
- 公司法公章管理制度
- 演出經紀人員資格備考資料2025
- 成都交通投資集團有限公司招聘考試真題2024
- (二模)嘉興市2025年高三教學測試語文試卷(含答案)
- 湖北省宜昌二中2025年高考化學考前最后一卷預測卷含解析
- 醫院不良事件上報制度
- MTK安全架構研究-全面剖析
- 餐飲食堂消防安全培訓
- 10S505 柔性接口給水管道支墩
評論
0/150
提交評論