




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
接口技術
第五章中斷技術5.1中斷的基本概念5.2中斷處理過程5.3可編程中斷控制器82595.48259在微機系統中的應用5.1中斷的基本概念一、中斷的概念中斷:指CPU正常運行程序,由于內外部事件引起CPU暫時終止正在運行的程序,轉去執行請求中斷的服務程序,服務完畢,返回原程序的過程。用途使CPU和外設同步工作提高CPU的效率二、中斷源與中斷識別1、中斷源:發出中斷請求的外部設備或引起中斷的內部原因稱為中斷源
2、中斷源的種類:①外設中斷:系統外部設備要求與CPU交換信息而產生的中斷。②指令中斷:為了方便用戶使用系統資源或調試軟件而設置的中斷指令,如調用I/O設備的BIOS及DOS系統功能的中斷指令和設置斷點中斷等。③程序性中斷:程序員的疏忽或算法上的差錯,使程序在運行過程中出現多種錯誤而產生的中斷。④硬件故障中斷:機器在運行過程中,硬件出現偶然性或固定性的錯誤而引起的中斷,如奇偶校驗錯中斷、電源故障等。
3、中斷識別:(1)什么是中斷識別:CPU響應中斷后,設法尋找中斷源,即找到是哪一個中斷源發出的中斷請求,這就是所謂的中斷識別。(2)中斷識別的目的:是將該中斷源的中斷服務程序的人口地址置入CS:IP寄存器,從而實現程序的轉移。CPU識別中斷或獲取中斷服務程序人口地址的方法有兩種:向量中斷和查詢中斷。①向量中斷;是由中斷向量來指示中斷服務程序的入口地址。
②查詢中斷:是采用軟件或硬件(串行順序鏈電路)查詢技術來確定發出中斷請求的中斷源。
三、中斷向量、中斷向量號與中斷向量表1、什么是中斷向量:中斷向量是中斷服務程序的人口地址。它包括中斷服務程序的段基址CS和偏移地址IP(共占4個字節地址)。
2、什么是中斷向量號:是系統分給每個中斷源的代號。系統中的外部中斷和內部中斷,硬中斷和軟中斷一律統一編號,共有256個號,其中有一部分中斷號已經分配給了中斷源,尚有部分中斷號空著,待分配。
3、中斷向量表:每一個中斷服務程序都有一個確定的人口地址,把系統中所有的中斷向量集中放到存儲器的某一區域內,這個存放中斷向量的存儲區就叫中斷向量表或中斷服務程序入口地址表。PC系列微機的存儲器的0000—03FFH共1024個地址作為中斷向量存儲區,每個中斷向量需占用4個字節的地址空間,所以,可容納256個中斷向量,即可處理256個中斷服務程序。
專用中斷5個(0~4),DOS使用59個,其余的原則上可由用戶使用
類型0類型1類型2類型3類型4類型5類型63IPCS除數為零單步(TF=1)非屏蔽中斷斷點中斷溢出(OF=1)類型28000H004H008H00CH010H014H070H0FCHCPU使用(5)DOS使用(59)1/18.2S定時類型64類型65類型66類型67類型255100H104H108H10CH3FCH用戶使用(192)中斷向量表中斷向量表地址=4×中斷類型碼4、中斷向量號與中斷向量表的關系:中斷向量=中斷類型號×4開始的連續4個內存單元(也就是中斷服務程序入口地址)。關系見下圖:
中斷向量
00700FC9中斷向量指針
004FH004EH004DH004CH寄存器CSHCSLIPHIPL中斷類型號為13HCS=0070HIP=0FC9H
例:某中斷的中斷類型碼為68H,其操作過程如下類型67H中斷向量0:19CH0:1A0H50200:1A2H00A00:1A4H
類型69H
中斷向量2050
IP
A000
CS中斷服務入口
A000:2050STIRETI43INT68HMOVAX,05向量地址=68*4=1A0H12四、中斷向量的裝入(填寫)與修改
中斷向量并非常駐內存,而是開機上電時,由程序裝人內存指定的中斷向量表中。系統配置和使用的中斷所對應的中斷向量由系統軟件負責裝入,用戶使用的中斷其中斷向量由用戶自己裝入。
例1:用指令設置。例如,假設中斷類型號為60H,中斷服務程序的段基址是SEG_INTR,偏移地址是OFFSET_INTR(006DH),則填寫中斷向量表的程序段為:CLI ;關中斷
CLD ;內存地址加1操作
MOVAX,0 MOVES,AX ;ES賦值為0 MOVDI,4*60H ;中斷向量指針入DI MOVAX,OFFSET_INTR;中斷服務程序偏移值入AX STOSW MOVAX,SEG_INTR;中斷服務程序的段基址入AX STOSW STI;開中斷例2:將中斷服務程序的人口地址直接寫入中斷向量表;
MOVAX,00H MOVES,AX MOVBX,60H*4;中斷號*4入BXMOVAX,006DH;中斷服務程序偏移地址入AX MOVES:[BX],AX;裝入偏移地址
PUSHCS POPAX ;獲取中斷服務程序段基址
MOVES:[BX+2],AX;裝入段基址例3:利用DOS功能調用INT21的35號和25號功能對中斷向量進行修改。步驟入下①用35H號功能,獲取原中斷向量,并保存在字變量中。②用25H號功能,設置新中斷向量,取代原中斷向量,以便當中斷發生后,轉移到新中斷服務程序中去。③新中斷服務程序完畢后,利用25H號功能恢復原中斷向量。
設置中斷首地址按AL中預置的中斷類型碼,DS:DX中預置的中斷首地址設置至中斷向量表中25HAH功能說明取用中斷首地址按AL中預置的中斷類型碼,取用中斷向量表中的首地址送至ES:BX中35H
假設原中斷程序的中斷號為n,新中斷程序的入口地址的段基址為SEG_INTR,偏移地址為OFFSET_INTR。中斷向量修改的程序段為:
MOVAH,35H;取原中斷向量
MOVAL,n INT21HMOVDX,ES MOVOLD_SEG,DX;保存原中斷向量
MOVOLD_OFF,BXMOVAH,25H;設置新中斷向量
MOVAL,n ;中斷號入AL MOVDX,SEG_INTRMOVDS,DX;DS指向新中斷程序段址MOVDX,OFFSET_INTR;DX指向新中斷程序偏移INT21H ;地址
MOVAH,25H;恢復原中斷向量
MOVAL,nMOVDX,OLD_SEGMOVDS,DXMOVDX,OLD_OFFINT21H五、中斷優先級排隊方式
排隊的方式有:a.按優先級排隊。根據任務的輕重緩急,給每個中斷源指定CPU向應的優先級,任務緊急的先響應,可以暫緩的后響應。b、循環輪流排隊。不分級別,CPU輪流響應各個中斷源。
中斷優先級的確定
在微機系統中通常用三種方法來確定中斷源的優先級別,即軟件查詢法、硬件排隊電路法和專用中斷控制芯片法。
中斷狀態位DBCPUINT譯碼AB查詢次序為優先級次序1)軟件查詢法
對于圖7.13所示電路,設中斷寄存器端口號為n,則軟件查詢的程序段如下:
IN AL,nTEST AL,80H ;1號外設有請求?JNZ II1 ;有,轉1號中斷服務程序
TESTAL,40H ;2號外設有請求?JNZ II2 ;有,轉2號中斷服務程序…
可以看出,采用軟件查詢方式,各中斷源的優先級是由查詢順序決定的,最先查詢的設備,其優先級最高,最后查詢的設備,其優先級最低。采用軟件查詢方式的優點是節省硬件。但是,由于CPU每次響應中斷時都要對各中斷源進行逐一查詢,所以其響應速度較慢。對于優先級較低的中斷源來說,該缺點更為明顯。
2)硬件排隊電路
采用硬件排隊電路法,各個外設的優先級與其接口在排隊電路中的位置有關。常用的硬件優先權排隊電路有鏈式優先權排隊電路、硬件優先級編碼加比較器的排隊電路等。
鏈式中斷優先級電路
上述兩種方法雖然可以解決中斷優先級控制問題,但實現起來在硬件和軟件上都要做大量的工作,十分麻煩。目前,最方便的辦法就是利用廠家提供的可編程中斷控制器,這樣的器件在各種微機中得到普遍應用。本章后面將介紹廣泛應用于80x86微機系統中的專用可編程中斷控制芯片8259A。六、中斷嵌套當CPU正在響應較低級的中斷服務過程中,如果有更高級的中斷申請,CPU將停止當前的中斷服務程序,而轉去響應高級中斷,當高級中斷結束后,再返回到低級中斷繼續服務,服務結束后再返回到斷點處繼續執行。多重中斷和單級中斷的區別:加入屏蔽本級或較低級中斷請求環節在中斷服務之前要開中在中斷服務結束后,為使現場不受干擾,必須關中現場恢復,重新開放中斷5.2IBM-PC機中斷系統
非屏蔽中斷請求中斷邏輯INTN指令INTO指令除法指令單步TF=18259A可屏蔽中斷NMI
一、中斷的分類外部中斷由外部引腳輸入信號引起中斷非屏蔽中斷:不受IF標志影響可屏蔽中斷:受IF標志影響內部中斷由于CPU本身啟動的中斷或執行中斷指令引起
可屏蔽中斷采用電平觸發,高電平有效受CPU內部中斷請求標志IF影響由中斷管理芯片8259驅動中斷類型碼獲得是在接受到CPU中斷響應信號后,由8259A送出(擴展一片8259A,可外接8個中斷源)
非屏蔽中斷非屏蔽中斷用于處理掉電,存儲器讀、寫錯誤等災難性事件不受CPU內部IF標志影響,優先級高于可屏蔽中斷邊沿觸發中斷類型碼為2,不需要中斷響應周期
內部中斷由中斷指令INT引起(ROM-BIOS,DOS)
INTN;N為中斷類型號由CPU的某些運行錯誤引起中斷*除法出錯中斷:執行DIV,IDIV指令,除數為0,商超過范圍,產生0型中斷*溢出中斷;算術運算過程中,結果溢出(OF=1),且執行INTO指令,產生4型中斷由調試程序DEBUG設置中斷*單步中斷:當TF=1,8086處單步方式,每執行一條指令,產生1型中斷*斷點中斷:斷點中斷是單字節,中斷類型碼是3
內部中斷的特點:中斷類型碼或由指令規定,或是預定不執行INTA總線周期除單步中斷外,內部中斷無法用軟件禁止除單步中斷外,內部中斷比外部中斷具有更高優先級對CPU來說,如果這三種中斷同時發生內部中斷(除單步中斷)(高)
不可屏蔽中斷可屏蔽中斷單步中斷(低)二、硬中斷與軟中斷的比較1、硬中斷的特點外部事件引起中斷響應周期,CPU發INTA中斷回答信號中斷號由中斷控制器提供INTR是可屏蔽2、軟中斷的特點執行中斷指令產生,中斷號是事先規定中斷響應周期,CPU不發INTA中斷回答信號是不可屏蔽(單步除外)三、中斷處理過程中斷處理過程組成:中斷請求中斷響應保護現場中斷服務恢復現場中斷返回
中斷響應流程:
執行指令指令結束?有中斷請求?響應中斷關中斷保護斷點尋找中斷源轉中斷服務程序保護現場中斷服務恢復現場開中斷返回
YNY取下一條指令(1)接口邏輯電路使系統總線上的中斷請求線出現有效信號,即有中斷請求。(2)中斷控制器(如8259)接收這一請求信號,并與其他可能同時到來或正掛起等待處理的中斷請求一起進行優先級比較。(3)如果只有這一個請求信號,或者該信號是在剛處理的最高級的中斷請求服務結束時掛起的次高級的請求信號,那么這個中斷請求就能被送往CPU。(4)接著CPU發出兩個/INTA中斷響應脈沖到中斷控制器:第一個脈沖時,CPU輸出/LOCK信號使總線封鎖,防止DMA和其他微處理器占用總線;同時8259保留優先級,并把這個優先級別送到服務鎖存器第二個/INTA脈沖時,總線封鎖解除;同時要求中斷控制器送出一個8位的指針值(中斷向量)。(5)CPU接收到這個8位中斷向量值。根據該值可找到低地址存儲區表,這個表包含有對應中斷服務子程序的段地址和偏移值。(6)CPU把當前的偏移地址、代碼段地址和標志推入系統堆棧,叫保護現場。然后從中斷向量表中取出新的偏移和代碼段值分別送給IP和CS。這時,中斷服務程序尚可執行。(7)中斷執行完畢,恢復現場(即把入棧的內容出棧)返回斷點處。整個過程結束。5.3可編程中斷控制器82598259的功能8259的外部特性和內部結構8259的工作方式一、8259的功能優先級排隊管理接受和擴充外部設備的中斷請求提供中斷類型號進行中斷請求的屏蔽和開放
RDWRA0CS讀/寫邏輯數據總線緩沖器級聯緩沖/比較器D0~D7CAS0CAS1CAS2SP/EN正在服務寄存器ISR優先權分析器PR中斷請求寄存器IRR中斷屏蔽寄存器IMR
控制邏輯內部總線IR0IR7INTAINT二、8259的外部特性和內部結構
和CPU連接D0~D7A0CSWRRDINTINTA和級聯有關CAS0~CAS2SP/EN和外設請求信號有關IR0~IR78259A芯片內部結構主要由8部分組成,它們分別是:(1)數據總線緩沖器數據總線緩沖器用來傳輸從8259A內部讀出到CPU的數據(狀態信息)或者CPU向8259A內部寫入的數據(控制字)。(2)中斷請求寄存器IRR
它是一個8位寄存器,每一位對應一個I/O設備,用來記錄發生中斷請求的外設。當某一外設(I/O設備)發生中斷請求信號IRQ時,對應位被置1。(3)中斷服務寄存器ISR它是一個8位寄存器,每一位同樣對應一個I/O設備,用來記錄正被CPU服務的那個I/O設備。(4)中斷屏蔽寄存器IMR它是一個8位寄存器,每一位對應一個I/O設備,當某一位被置為1時,對應的I/O設備發來的中斷請求信號就被屏蔽掉(視為無效);當某一位置為0時,對應I/O設備發來的中斷請求信號有效(允許引起中斷)。IMR中各位的值由軟件進行設置,這點與IRR和ISR不同。(5)選優電路選優電路的作用:從中斷請求寄存器IRR中選出優先權最高的那一位,并將其送到ISR中的對應位中。在中斷請求寄存器IRR中,如果有多個I/O設備發出中斷請求信號使多個位被置為1,則在中斷響應期間,8259A接收到第一個中斷響應信號INTA時,優選電路負責將中斷請求寄存器IRR中優先權最高的那一位1送入中斷服務寄存器ISR中對應位。(6)讀寫邏輯電路
它負責把CPU發來的各種命令字寫入到8259A內部寄存器中,或者把8259A內部寄存器值,也稱狀態信息讀出給CPU。CSWRRDA0
讀寫操作PIC(主)PIC(從)0010寫ICW1,OCW2,OCW320H0A0H0011寫ICW2~ICW4,OCW121H0A1H0100讀IRR,ISR,查詢字20H0A0H0101讀IMR21H0A1H(7)控制電路它產生向CPU發出的中斷信號INT,并接收CPU發來的中斷響應信號/INTA。(8)級聯緩沖器/比較器用于多片級聯和數據緩沖。三、8259A的工作方式1、引入中斷請求(中斷觸發)的方式:①邊沿觸發方式。以正跳沿向8259A請求中斷。②電平觸發方式。以高電平申請中斷,但在響應中斷后必須及時清除高電平,以免引起第二次誤中斷。③中斷查詢方式。外設通過8259A申請中斷,但8259A卻不使用INT信號向CPU申請中斷,CPU用軟件查詢確定中斷源,并為其服務。2、連接系統總線的方式在多片級聯的大系統中,要求數據總線有總線緩沖器。8259A與這種帶總線緩沖器的系統總線連接的方式稱緩沖器方式。
若在小系統中,則8259A不需要總線緩沖器而是將其直接接至數據總線。8259A與這種不需總線緩沖器而直接連到系統總線的方式稱非緩沖器方式。3、屏蔽中斷源的方式①通常屏蔽方式。利用操作命令字OCWl,使屏蔽寄存器IMR中的一位或幾位置1來屏蔽一個或幾個中斷源的中斷請求。若要開放某二個中斷源的中斷請求,則將IMR中相應的位置0。②特殊屏蔽方式。在某些場合,在執行某一個中斷服務程序時,要求允許另一個優先級比它低的中斷請求被響應,此時可采用特殊屏蔽方式。它可通過OCW3的D6D5:11來設定。4、優先級排隊的方式①全嵌套方式。在此種方式下中斷優先級按0-7順序進行排隊,并且只允許中斷級別高的中斷源去中斷中斷級別低的中斷服務程序,而不能相反。這是8259A最常用的方式。②特殊全嵌套方式。它和全嵌套方式的不同之處在于,當執行某一級中斷服務程序時,可響應同級的中斷請求,從而實現對同級中斷請求的特殊嵌套。用于多片級聯。③優先級自動輪換方式。在這種方式下,優先級順序不是固定不變的,一個設備受到中斷服務后,其優先級自動降為最低。④優先級指定輪換方式。是由程序指定IR0-IR7中任意一個為最低優先級,然后再按順序自動輪換,決定優先級。5、結束中斷的處理方式
①自動中斷結束方式。這種方式用在多個中斷不會嵌套的系統中。②非自動中斷結束方式。在中斷返回之前,必須發中斷結束命令才能將ISR中的當前服務位清除。有兩種形式:a、不指定中斷結束命令;b、指定中斷結束命令。四、8259A的初始化1、如何對8259進行初始化?對8259的初始化是通過CPU對8259A送控制命令字實現的。對于只占兩個I/O地址的8259A,CPU對8259A各寄存器的讀寫是I/O地址和數據配合完成的。8259的命令字分為初始化命令字和操作方式命令字兩種,分別有:(1)4個初始化命令字ICW1、ICW2、ICW3和ICW4(2)3個操作方式命令字OCW1、OCW2和OCW32、PC機對主片8259A各寄存器的選定:(PC機上的8259A的I/O地址為20H和21H)(1)對于4個初始化命令字的選定:
ICW1:0020HA0=0,D4=1 ICW2:0021HA0=1 ICW3:0021HA0=1,ICW1中SNGL(D1)位=0 ICW4:0021HA0=1,ICW1中IC4(D0)位=1
按照ICW1--ICW4的順序寫入(2)對于操作方式命令字的選定
OCW1:0021HA0=1 OCW2:0020HA0=0,D3D4=00 OCW3:0020HA0=0,D3D4=10
3、初始化命令字初始化命令字ICW1寫入后,8259A內部完成初始化過程:A、使8259A對中斷請求信號邊沿檢測電路復位,以使它在中斷請求信號由低變高時,才能產生中斷。B、清除中斷屏蔽寄存器,設置中斷優先級排隊。ICW1IC4SNGL00*1LTIM**A0D7D6D5D4D3D2D1D001不寫ICW4寫ICW401級聯,寫ICW3單片,不寫ICW38088/8086不用標志位0=邊沿觸發方式1=電平觸發方式ICW2D7D6D5D4D3D2D1D0T31A00T7T6T5T400D7D6D5D4D3D2D1D0IR7T7T6T5T4T3111IR6T7T6T5T4T3110IR5T7T6T5T4T3101IR4T7T6T5T4T3100IR3T7T6T5T4T3011IR2T7T6T5T4T3010IR1T7T6T5T4T3001IR0T7T6T5T4T30008259A輸送的中斷類型號無特征位,跟在ICW1后
S7S6S5S4S3S2S1S0
1ICW3A0D7D6D5D4D3D2D1D0ICW3中斷級聯方式的設置主片
Si表示IRi有中斷請求XXXXXID2ID1ID0
1ICW3A0D7D6D5D4D3D2D1D0從片
從片標志碼ICW3在ICW1中D1=1時有效,緊跟在ICW2后
IR7IR0SP/ENCSA0INTAINTCS0~CS2IR7IR0SP/ENCSA0INTAINTCS0~CS2IR7IR0SP/ENCSA0INTAINTCS0~CS2數據總線控制總線地址總線8259主從級聯GNDGNDVCC
主片MOVAL,48HOUT21H,AL從片AMOVAL,03H地址A1HOUT0A1H,AL從片BMOVAL,06H地址F1HOUT0F1H,ALICW4PMAEOIM/S10SFNMBUF00A0D7D6D5D4D3D2D1D001選用8085選用808601非自動方式自動中斷結束方式0=全嵌套方式1=特殊全嵌套方式=非緩沖方式,此時若用級聯,由SP/EN確定主從設備。=緩沖方式,本片為從片=緩沖方式,本片為主片01011全嵌套方式:高級中斷可打斷正在處理的中斷,優先處理更高級的中斷。特殊全嵌套方式:對于級聯方式,主8259A把從同一從8259A來的不同級別的中斷請求認為是同級的。在8259A級聯時,若主片處于特殊全嵌套方式就允許對相同級別的中斷請求開放。
4、操作命令OCW1~OCW3M7M6M5M4M3M2M1M0
1OCW1A0D7D6D5D4D3D2D1D01=屏蔽;0=開放OCW1操作命令設置中斷屏蔽字,可讀可寫
要使中斷源IR3開放,其余均被屏蔽,其OCWl:llll0111BMOVAL,0F7HOUT21H,AL
RSLEOI
0
0L2L1L0
0
OCW2A0D7D6D5D4D3D2D1D0優先級輪換指定中斷優先級中斷結束
特征位
中斷等級編碼OCW2用來設置中斷結束方式,中斷排隊方式OCW2的功能總結為下表:RSLEOIL2L1L0功能001000不指定EOI命令011L2L1L0指定EOI命令101000在不指定EOI方式中輪換命令100000在自動EOI方式中輪換置位命令000000在自動EOI方式中輪換復位命令111L2L1L0
在指定EOI方式中輪換命令110L2L1L0
直接置優先級輪換命令作用:A、非自動中斷結束方式的操作。①不指定的EOI方式:當8259A接收到一個不指定的EOI命令時,它直接將最高優先級(在被置位的ISR中最高)的ISR位復位。(適用于全嵌套方式)ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR000100100ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR000100000MOVAL,20HOUT20H,AL②指定的EOI方式:指定出一個確切的被復位的ISR位,可以指定8259A的8個IR等級中的任何一個。(適用于非全嵌套方式)ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR000100100ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR000000100MOVAL,65HOUT20H,ALB、中斷排隊方式的操作(0CW2)
8259有兩種優先權排隊方式:固定、優先權輪換由OCW2的R控制。當R=0,優先權固定(如前)當R=1,優先權輪換①不指定的EOI輪換方式ISR7IDR6ISR5ISR4ISR3ISR2ISR1ISR00010010076543210ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR00010000043210765MOVAL,0A0HOUT20H,AL②指定的EOI輪換方式ISR7IDR6ISR5ISR4ISR3ISR2ISR1ISR00010010076543210ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR00000010010765432MOVAL,0E5HOUT20H,AL
OCW3:查詢中斷、讀狀態、特殊屏蔽方式XESMMSMM01PRRRIS
0
OCW3A0D7D6D5D4D3D2D1D0特殊屏蔽允許特殊屏蔽設置特征位查詢方式讀寄存器允許讀ISR
XESMMSMM01PRRRIS
0
OCW3A00X:無效10:讀IRR11:讀ISR1:查詢8259狀態字0:不查詢0X:無效10:特殊屏蔽方式復位11:特殊屏蔽方式置位A、查詢方式:可使CPU處于查詢方式,此時8259A不向CPU發INT信號,CPU可根據需要隨時查詢中斷源。I----W2W1W0D7D6D5D4D3D2D1D0申請服務的最高優先權等級編碼I=1:有中斷請求I=0:無中斷請求例:對8259編程,以查詢的方式判斷是否有中斷請求(地址為3A0H,3A1H)
X:MOVAL,00001100BMOVDX,3A0HOUTDX,AL;發查詢命令
INAL,DXTESTAL,80HJZXB、設置和撤消特殊屏蔽方式在執行高級中斷服務程序中,希望開放低級中斷。方法:先用屏蔽命令(ICW1)將正在服務的中斷屏蔽,然后置位特定屏蔽方式命令ESMM=1、SMM=1(即OCW3的D6D5=11)。中斷服務完了,在撤銷屏蔽方式ESMM=1、SMM=0(OCW3的D6D5=10)C、設置對8259A內部寄存器的讀出命令8259A內部的3個寄存器IRR、ISR、IMR可供CPU讀取。IRR和ISR的讀取由OCW3確定。D0:RIS用于選擇被讀寄存器ISR或IRR。若要讀ISR,則RIS置1;若要讀IRR,則RIS置0。D1:讀寄存器允許,RIS的狀態僅在RR位為1時有效
例:對8259編程,讀取ISR的狀態(地址為3A0H,3A1H)
MOVAL,00001011BMOVDX,3A0HOUTDX,AL;發查詢命令
INAL,DX;讀ISR5.48259在微機系統中的應用一、8259編程命令的使用1、兩類編程命令:送初始化命令字ICW和操作命令字OCW2、PC機中的操作:初始化由系統軟件來做,上電即完成,不允許用戶做初始化編程。用戶在PC機上開發中斷程序,不需要設置ICW,只需使用OCW1和OCW2開放/屏蔽中斷和發中斷結束命令。OCW3很少使用。二、8259A的初始化編程ICW1~ICW4:上電后,進行初始化,必須嚴格按順序。OCW1~OCW3:可在任何時候寫入,且根據要求單獨寫某一個OCW區分ICW1,OCW1,OCW2,OCW3PC機上8259的用法①共8級向量中斷,因為是采用單片方式,故CAS2~CASo不用,SP/EN接+5V。②端口地址在020H-03F范圍內,實際使用020H和021H兩個端口。③8個中斷請求輸入信號IR0~IR7均為邊沿觸發。④采用完全嵌套方式,0級為最高優先級,7級為最低優先級。⑤設定0級請求對應中斷號為8,1級請求對應中斷號為9,依次類推,直到7級請求中斷號為0FH
IR0IR1IR2IR3IR4IR5IR6IR7T/C0計時中斷鍵盤控制器中斷保留串行口2串行口1硬盤軟盤并行口1INTAINT主片口地址:20H21H單片INTRINTARDWRSP/EN+5V初始化編程INTA00EQU020H;8259A端口0INTA01EQU021H;8259A端口1MOVAL,13H;ICW1:邊沿觸發、單片、 ;要ICW4OUTINTA00,ALMOVAL,8;ICW2:中斷號的高5位OUTINTA01,
ALMOVAL,1;ICW4:全嵌套/16位機/非自動結束OUTINTA01,
AL286以上PC機中8259的使用①共15級向量中斷,采用兩片級連,故CAS2~CAS0作互連線,從片的INT直接連到主片的IR2上。②端口地址,主片在020H~03F范圍內,實際使用020H和021H。從片在0A0~0BFH范圍,實際使用0A0H,0A1H兩個端口。③主、從片的中斷請求信號均采用邊沿觸發。④采用完全嵌套方式,優先級的排列次序為0級最高,依次為1級,8-15級,然后是3-7級。⑤采用非緩沖方式,主片的SP/EN端接+5V,從片SP/EN端接地。⑥設定0級-7級對應主片的中斷號為8H-OFH,8級-15級對應從片的中斷號為70H-77H。
T/C0計時中斷鍵盤控制器中斷級聯中斷串行口2串行口1并行口2軟盤控制器并行口108090A0B0C0D0E0F
IR0IR1IR2IR3IR4IR5IR6IR77071727374757677INTAINTAINTAINTINTINTR主片從片口地址:20H21H口地址:A0HA1H雙片IR0IR1IR2IR3IR4IR5IR6IR7IR0IR1IR2IR3IR4IR5IR6IR7SP/ENSP/EN+5VGND初始化編程系統上電期間,分別對8259A的主片和從片進行初始化的程序段如下:;初始化8259A主片
MOVAL,11H;ICW1:邊沿觸發,多片,要ICW4 OUT20H,AL JMPSHORT$+2 MOVAL,8;ICW2:中斷類型號高5位
OUT21H,AL JMPSHORT$+2MOVAL,04H;主片的IR2接從片(S=1) OUT21H,AL JMPSHORT$+2
MOVAL,01H;ICW4:非緩沖,全嵌套 ;
16位的CPU,非自動結束
OUT21H,AL;初始化8259A從片
MOVAL,11H;ICW1:邊沿觸發,多片,要ICW4OUT0a0H,ALJMPSHORT$+2MOVAL,70H;ICW2:中斷號的高5位
OUT0a1H,ALJMPSHORT$+2MOVAL,02H;ICW3:從片接主片的IR2OUT0a1H,ALJMPSHORT$+2MOVAL,01H;ICW4:非緩沖,全嵌套,16 ;位的CPU,非自動結束
OUT0a1H,AL
作業1假如某中斷類型號為20,中斷服務程序為INT_PROC,完成中斷服務入口的裝填。作業2描述8259級聯方式下中斷響應過程。作業3描述由中斷類型號得到中斷服務程序入口的過程。作業4:給定SP=0100H、SS=0500H、PSW=0240H,在存儲單元中已有內容為(00024H)=0060H,(00026H)=1000H,在段地址為0800H及偏移地址為00A0H的單元中,有一條中斷指令INT9。試問執行INT9指令后,SS、SP、IP、PSW的內容是什么?棧頂的三個字是什么?在PC系統中編寫一個在PC上運行的中斷處理程序,對輸入到IRQ7引腳的中斷請求次數進行統計并在屏幕上顯示,計滿8次后返回DOS操作系統。
MOVAH,25HMOVAL,0FHMOVDX,SEGCNT MOVDS,DXMOVDX,OFFSETCNT INT21HINAL,21HANDAL,01111111BOUT21H,AMOVDL,31HAGAIN:STIHLTINCDLCMPDL,39HJNZAGAINMOVAX,4C00HINT21H
CNTPROCPUSHAXMOVAH,02HINT21HMOVAL,67HOUT20H,ALPOPAX
STIRETICNTENDP第六章存儲器接口6.1半導體存儲器6.2存儲器接口技術6.3主存儲器接口
一、存儲器分類按用途分類存儲器6.1半導體存儲器內存儲器(主存):用來存放當前運行的程序數據外存儲器(輔存):存放暫時不運行的程序數據主存:速度快,容量小,價格高輔存:速度慢,容量大,價格低
按存儲介質分類存儲器光存儲器光盤磁表面存儲器半導體存儲器軟磁盤硬磁盤盒式錄音帶ROMRAM可編程PROM掩膜ROMPROMEPROMEAROM雙極型MOS型動態RAM靜態RAM
ROM只讀存儲器只能讀,不能寫,斷電后信息不會丟失,屬非易性存儲器1、掩膜ROM:由生產廠商用掩膜技術將程序寫入其中,適用于大批量生產2、可編程ROM(PROM或OTP):由用戶自行寫入程序,一旦寫入,不能修改,適用于小批量生產3、可擦除可編程ROM(EPROM):可由用戶自行寫入寫入后,可用紫外線光照擦除重新寫新的程序,適用于科研4、電可擦除ROM(EEPROM):可用電信號擦除和重新寫入的存儲器,適用于斷電保護5、閃存(FlashMemory)電可擦除,反復使用,速度塊,靈活性好,集RAM和EEPROM優點
RAM隨機存取存儲器既能讀,又能寫,斷電后信息會丟失,屬易失性存儲器RAM用于存放各種現場的輸入輸出程序,數據,中間結果1、靜態RAM(SRAM):利用半導體觸發器兩個穩定的狀態表示0或1
雙極型的SRAM:用晶體管觸發器作為記憶單元
MOS管的SRAM:由6個MOS管作為記憶單元雙極型速度快,MOS管速度慢,不需要刷新2、動態RAM(DRAM):利用MOS管的柵極電容保存信息,即電荷的多少表示0和1。動態RAM需要進行刷新操作3、幾種新型的存儲器FIFO存儲器、閃速存儲器、雙端口RAM(1)FIFO存儲器的特點A、FIFO存儲器(FistInFirstOutMemory)是一個有兩個端口(輸入口和輸出口),并按先進先出的順序來暫時存放數據的存儲器。B、輸入口和輸出口的工作彼此是獨立的。也就是說,只要當前存放在FIFO中的數據字數少于FIFO的容量,那么就可以繼續向FIFO中寫入數據存滿數據的時候,它會阻止繼續寫入數據。同樣,只要FIFO內部還存有數據,那么就可以繼續從FIFO中讀出數據,當FIFO中所有的數據被讀完時,它就會禁止繼續讀出數據。(2)閃速存儲器的特點:A、閃速存儲器(FlashMemory),一種新型的半導體存儲器,它具有可靠的非易失性、電擦除性以及低成本特性。B、可直接執行,對于需要實施代碼或數據更新的嵌入性應用是一種理想的存儲器。C、它在固有性能和成本方面有較明顯的優勢。D、與EPROM只能通過紫光線照射實施擦除的特點不同,閃速存儲器可實現大規模電擦除,閃速存儲器的擦除功能可迅速清除整個器件中所有內容。E、從功能上講,由于其隨機存取的特點閃速存儲器也可看作是一種非易失的RAM。兼E2PROM與RAM的特點于一身,同時又優于E2PROM和RAM。F、經濟的高密度,Intel的1M位閃速存儲器的成本按每位計要比靜態RAM低一半以上(不包括靜態RAM電池的額外花費和占用空間)。(3)雙端口RAM
在數據采集、實時控制等微機應用系統中,常常采用多個CPU并行工作的方式,即兩個(或多個)CPU同時工作,處理不同的任務,這樣,利用CMOS/BiCMOS技術,許多廠家生產了多端口RAM產品,如雙端口、四端口的單片RAM器件等。特點:A、雙端口RAM的兩個端口被分別獨立地控制,即它們的控制信號、地址I/O引線都是彼此獨立的,通過這兩個完全獨立的端口,可以分別對任何一個存儲單元進行讀寫操作。B、可進行數據總線寬度擴展,可完全異步操作C、廣泛應用在多數據總線或多處理器系統中,實現數據共享。D、控制邏輯簡單,每個處理器都可以完全獨立地把雙端口RAM看作是本地RAM一樣進行訪問,不僅方便了軟件設計,還大大地提高了系統的工作效率。
二、存儲器的主要性能指標1、存儲容量:一個基本存儲器能匯集的最大信息量存儲器的容量=地址寄存器的編址數*存儲字的位數2、存儲速度存取時間TA:從存儲器接到讀或寫命令到從存儲器讀出或寫入的時間稱為存儲時間存儲周期TM:兩個獨立存儲操作之間的最小時間間隔3、價格:存儲器的價格正比于容量,反比于存儲時間4、存儲器的可靠性MTBF越大,可靠性越高三、存儲芯片組成1.存儲體:大量記憶二進制信息的存儲單元有規則的結合。排列方式可分為字結構方式和位結構方式。(1)字結構方式:是指將芯片上所有存儲元排列成不同的存儲單元,每個單元一個字,每個字的各位在同一個芯片內。例如1KX8位的芯片。(2)位結構方式:是指將芯片上所有存儲元排列成不同的存儲單元,每個單元一位,即將所有存儲元列成不同字的同一位,例如8KXl位的芯片。
大量芯片采用兩種方式相結合,例如2KX4
2.地址譯碼器:接受地址信息經譯碼選中相應單元地址譯碼3.讀寫控制電路:接受CPU控制信息,決定存儲器操作控制4.數據緩沖器:寄存來自CPU的寫入數據或存儲體內讀出數據
片選信號:表示存儲器是否工作讀信號:表示存儲器的操作為讀操作寫操作:表示存儲器的操作為寫操作一唯譯碼:每一字選線選中存儲單元二唯譯碼:X,Y譯碼,X,Y相交處選中一單元6.2存儲器接口技術存儲器接口中應考慮的幾個問題存儲器與CPU的時序問題CPU總線負載能力存儲器芯片的選擇一、存儲器接口中應考慮的問題1、存儲器與CPU的時序配合幾個問題:(1)什么是總線周期?(2)什么是時鐘周期?(3)如何實現二者之間的時序配合?(4)設計產生等待信號電路應注意那些問題2、CPU總線負載能力3、存儲器芯片的選用二、存儲器地址譯碼方法1、什么是尋址?存儲器與CPU地址總線連接時,要根據內存地址分配連接,以實現CPU在某一時刻只能唯一選中某一個內存地址單元,稱為尋址。2、如何完成尋址功能?要完成尋址功能必須具備兩種選擇:(1)片選:即首先要從眾多存儲器中,選中要進行數據傳輸的某一存儲器芯片,稱為片選。一般由接口電路中的端口譯碼產生。(2)字選:然后從該芯片內選擇出某一存儲單元,稱為字選。由存儲器內部的譯碼電路完成。3、片選控制的譯碼方法常用方法有:線選法、全譯碼法、部分譯碼法、混合譯碼法等。
(1)線選法:用高位地址直接作為存儲芯片的片選信號,每一根選通一塊芯片,這種方法稱線選法。例:假定某微機系統的存儲容量為4KB,CPU尋址空間為64KB(即地址總線為16位),芯片容量為1KB(即片內地址為10位)。
1KBCS11KBCS11KBCS11KBCS1A10A11A12A13A0~A9
第一塊芯片A10為1時選中第二塊芯片A11為1時選中第三塊芯片A12為1時選中第四塊芯片A13為1時選中適用:存儲器容量不大,所使用的存儲芯片數量不多,而CPU尋址空間遠遠大于存儲器容量時的場合。線選法特點:優點是連線簡單,片選控制無需專門的譯碼電路。兩個缺點,一是導至地址重疊,二是整個存儲器地址分布不連續,使可尋址范圍減小。給編程帶來麻煩。
用A13或A14作片選A0~A12A0~A12A0~A12A0~A12CS6264CS6264(A14)A13M/IOD0~D7D0~D7D0~D7D0~D7
用A13作片選,其地址分布1#2#1#2#00000H~01FFFH02000H~03FFFH04000H~05FFFH06000H~07FFFH
用A14作片選,其地址分布1#1#2#2#00000H~01FFFH02000H~03FFFH04000H~05FFFH06000H~07FFFH
(2)全地址譯碼:除了將低位地址總線直接與各芯片的地址線相連接之外,其余高位地址總線全部經譯碼后作為各芯片的片選信號。例:CPU地址總線為16位,存儲芯片容量為8KB,采用全地址譯碼設計64KB存儲器
8KBCS8KBCS8KBCSY0Y1Y73:8譯碼器A13~A15A0~A12(1)(2)(8)
特點:全譯碼法可以提供對全部存儲空間的尋址能力,存儲器的地址是連續且唯一確定的,即無地址間斷和地址重疊現象。電路較復雜,特別是地址范圍較大時
(3)部分地址譯碼:是將高位地址線中的一部分進行譯碼,產生片選信號。例:CPU地址總線為16位,存儲器由4片容量為8KB的芯片構成,采用部分譯碼法進行地址譯碼
8KBCS8KBCS8KBCSY0Y1Y32:4譯碼器A13~A14A0~A12(1)(2)(4)A15空閑
雖然仍有地址重疊現象,但不會出現兩塊芯片地址同時選中。在大地址空間設計小容量存儲器,常采用這種方式,電路簡單。
(4)混合地址譯碼:一部分采用部分譯碼,一部分采用線選譯碼例:當CPU地址總線為16位,存儲器由10片容量為2KB的芯片構成,使用混合譯碼法實現地址譯碼
2KBCS(1)2KBCS(2)2KBCS(8)2KBCS(9)2KBCS(10)Y0Y1Y73-8譯碼器A11~A13A14A15A0~A10
特點:該方法將用于片選控制的高位地址分為兩組,其中一組的地址(通常為較低位)采用部分譯碼法,經譯碼后的每一個輸出作為一塊芯片的片選信號;另一組地址(通常為較高位)則采用線選法,每一位地址線作為一塊芯片均片選信號。4、地址譯碼電路的設計存儲器地址譯碼電路的設計一般遵循如下步驟:①根據系統中實際存儲器容量,確定存儲器在整個尋址空間中的位置;②根據所選用存儲芯片的容量,畫出地址分配圖或列出地址分配表;③根據地址分配圖或分配表確定譯碼方法并畫出相應的地址位圖;④選用合適器件,畫出譯碼電路圖。
某系統地址總線為16位,實際存儲器容量為16KB,ROM區和RAM區各占8KB,其中ROM區采用容量為2KB的EPROM芯片,RAM區采用容量為1KB的靜態芯片,設計存儲器的地址譯碼電路.
選片確定芯片數目EPROM2KB4片,RAM1KB8片確定各芯片的地址芯片號類型容量地址范圍1ROM2KB0000~07FFH2ROM2KB0800~0FFFH3ROM2KB1000~17FFH4ROM2KB1800~1FFFH
芯片號類型和容量地址范圍1RAM1KB2000~23FFH2RAM1KB2400~27FFH3RAM1KB2800~2BFFH4RAM1KB2C00~2FFFH5RAM1KB3000~33FFH6RAM1KB3400~37FFH7RAM1KB3800~3BFFH8RAM1KB3C00~3FFFH
≥1≥1≥1≥1≥1≥1≥1≥11ABCG2AG2BG1A14A15+5VA11A12A13A10(1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)去4片EPROM去8片RAMY0Y774LS138
存儲器與控制總線、數據總線的連接存儲器與控制總線的連接用CPU的讀、寫信號控制存儲器的讀、寫存儲器與數據線連接根據CPU的數據線的寬度和選用的存儲器的寬度決定幾個存儲器同時工作6.3主存儲器接口主存儲器的類型不同,則接口不同。以EPROM、SRAM、DRAM為例分別介紹。一、EPROM與CPU的接口EPROM的實例276427162K*8地址線A0~A1213根27324K*8數據線D0~D78根27648K*8片選CS2712816K*8讀允許OE2725632K*8編程脈沖PGM2751264K*8編程電壓VPP
電源電壓VCC
2764的工作模式信號VCCVPPCEOEPGMD7~D0讀方式+5V+5V低低低輸出編程方式+5V+25V高高正脈沖輸入校驗方式+5V+25V低低低輸出備用方式+5V+5V無關無關高高阻未選中+5V+5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時人員解除合同范本
- 2025公司發布解除勞動合同通知書
- T/JSWP 04-2022廣告企業信用評價規范
- T/JSSES 37-2023建設用地土壤污染物鎘人體生物有效性的測定模擬胃液提取法
- 腺樣體切除術護理常規
- 通化醫藥健康職業學院《三維圖形程序設計》2023-2024學年第二學期期末試卷
- 浙江省金華市東陽中學2025屆物理高二第二學期期末學業水平測試試題含解析
- 接待手冊封面設計規范
- 朔州師范高等專科學校《英語教學研究與實踐》2023-2024學年第二學期期末試卷
- 沈陽體育學院《社會工作研究》2023-2024學年第二學期期末試卷
- 壓縮空氣系統風險評估方案報告
- 三級安全教育登記表
- 部編版小學語文三年級下冊《我不能失信》課件PPT(公開課)
- 水稻加工項目可行性研究報告(范文)
- 家庭教育方式綜合測驗
- 律師會見筆錄范本
- 浙教版科學電學基礎知識總結
- T/CEC 164-2018 火力發電廠智能化技術導則_(高清-最新版)
- 抹機水MSDS 安全資料表
- 醫院感染管理組織框架
- 特殊平行四邊形課件
評論
0/150
提交評論