第9章 微型機(jī)接口_第1頁
第9章 微型機(jī)接口_第2頁
第9章 微型機(jī)接口_第3頁
第9章 微型機(jī)接口_第4頁
第9章 微型機(jī)接口_第5頁
已閱讀5頁,還剩152頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第9章微型機(jī)接口9.1微型機(jī)接口的基本知識9.2I/O設(shè)備數(shù)據(jù)傳送方式9.3中斷系統(tǒng)9.4DMA(略)9.1微型機(jī)接口的基本知識1、接口的概念2、接口的功能和組成補(bǔ)充:多功能接口芯片823803、I/O端口及其尋址方式4、輸入/輸出指令I(lǐng)N/OUT課本P305.輸入/輸出指令01二月202331、接口的概念接口:CPU與“外界”的連接電路,是CPU與外界進(jìn)行信息交換的中轉(zhuǎn)站。外界:除CPU以外的所有設(shè)備和電路; 如主存儲器、輸入輸出設(shè)備、通信設(shè)備等;連接電路:硬件設(shè)備;設(shè)置接口的原因:CPU與外設(shè)的工作速度不一致;信號線的功能定義、邏輯定義、時(shí)序關(guān)系等不兼容;減輕CPU的負(fù)擔(dān),提高CPU的工作效率;有利于CPU和各設(shè)備硬件的獨(dú)立發(fā)展。01二月20234接口技術(shù)接口技術(shù)是硬件和軟件的綜合技術(shù);使CPU與外界達(dá)到最佳連接;實(shí)現(xiàn)CPU與外界的高效、可靠地信息交換;接口技術(shù)的應(yīng)用計(jì)算機(jī)所涉及的所有領(lǐng)域;01二月202352、接口的功能和組成數(shù)據(jù)寄存器狀態(tài)寄存器控制寄存器CPU外設(shè)DBABCBCBDB接口片內(nèi)端口地址譯碼電路數(shù)據(jù)緩沖/鎖存器CB讀/寫中斷控制邏輯其他功能01二月20236接口的功能1

——數(shù)據(jù)緩沖功能執(zhí)行作為CPU與外設(shè)之間數(shù)據(jù)中轉(zhuǎn)站;用于CPU與慢速外設(shè)之間,可協(xié)調(diào)二者的速度差異;數(shù)據(jù)中保存在接口的數(shù)據(jù)寄存器中;數(shù)據(jù)緩沖的方式數(shù)據(jù)緩沖器暫存數(shù)據(jù);完成本次數(shù)據(jù)傳送后,其中數(shù)據(jù)就會發(fā)生變化;數(shù)據(jù)鎖存器暫存數(shù)據(jù);在有新的數(shù)據(jù)寫入之前,其中數(shù)據(jù)不會更改;01二月20237接口的功能2

——執(zhí)行CPU命令功能執(zhí)行CPU按照控制字格式準(zhǔn)備好控制字;接口初始化時(shí),由CPU將控制字寫入接口內(nèi)部寄存器;接口工作時(shí),譯碼控制字,進(jìn)行規(guī)定的操作;控制字(命令字):一串二進(jìn)制數(shù)據(jù)每一位具有不同的含義,表示CPU對外設(shè)或接口的控制信息;不同的接口芯片,控制字的數(shù)目和格式也不同;01二月20238接口的功能3

——接收外設(shè)狀態(tài)功能執(zhí)行在外設(shè)工作期間,接口接收其工作狀態(tài)信息,形成狀態(tài)字,保存于狀態(tài)寄存器中;狀態(tài)字隨時(shí)根據(jù)外設(shè)狀態(tài)的變化而改變;CPU需要了解外設(shè)工作狀態(tài)時(shí),從接口中直接讀取該狀態(tài)字;狀態(tài)字:一串二進(jìn)制數(shù)據(jù)每一位具有不同的含義,反映當(dāng)前外設(shè)的某種狀態(tài);01二月20239接口的功能4

——設(shè)備選擇功能執(zhí)行接口內(nèi)部的數(shù)據(jù)寄、控制、狀態(tài)寄存器都是CPU可訪問的;接口外部和內(nèi)部都需要對CPU當(dāng)前的操作部件進(jìn)行選擇;選擇方式根據(jù)CPU發(fā)出的地址進(jìn)行譯碼,從而確定當(dāng)前操作部件;01二月202310接口的功能5

——其他功能作用完成CPU與外設(shè)之間傳送信號的各類轉(zhuǎn)換;功能類型數(shù)據(jù)寬度轉(zhuǎn)換串行接口中需要的串-并、并-串轉(zhuǎn)換;數(shù)據(jù)格式轉(zhuǎn)換工程接口中常用的數(shù)-模、模-數(shù)轉(zhuǎn)換;時(shí)序或電平轉(zhuǎn)換時(shí)序配合01二月2023113、I/O端口及其編址方式(1)I/O端口接口電路中能被CPU直接訪問的寄存器;端口的類型數(shù)據(jù)端口狀態(tài)端口命令端口端口與接口的關(guān)系:

一個(gè)接口電路由若干個(gè)端口及其他控制電路組成。不同接口中端口的數(shù)目不定,但類型只有三種;每個(gè)端口可接收多種格式的同類信息(CPU可讀寫)(CPU只讀)(CPU只寫)01二月202312(2)I/O端口的編址方式獨(dú)立編址方式將I/O系統(tǒng)與主存系統(tǒng)分別編址;特點(diǎn):I/O端口地址不占用主存空間;使用專用的I/O指令,指令字長短,執(zhí)行速度快;00000HFFFFFH主存儲器I/O設(shè)備0000HFFFFH以20位主存地址、16位I/O地址為例01二月2023134、輸入/輸出指令I(lǐng)N/OUT指令格式輸入指令: INAL/AX,PORT/DX輸出指令: OUTPORT/DX,AL/AX寄存器AL/AX與指定端口之間的數(shù)據(jù)交換;指令注意:PORT/DX:根據(jù)地址寬度決定表示方法直接尋址:8位端口地址(0~0FFH),可直接在指令中出現(xiàn);間接尋址:16位端口地址(100H~3FFH),必須由DX表示。I/O指令在書寫格式上兩操作數(shù)的位數(shù)不一定一致。一個(gè)操作數(shù)為數(shù)據(jù),另一個(gè)操作數(shù)為地址。課本P3001二月2023149.2I/O設(shè)備數(shù)據(jù)傳送方式9.2.1微型機(jī)I/O端口的布局9.2.2I/O端口地址的譯碼補(bǔ)充詳細(xì)內(nèi)容9.2.3CPU與外設(shè)之間的信息傳送方式01二月2023159.2.1微型機(jī)I/O端口的布局I/O接口硬件分類系統(tǒng)板上的I/O芯片:可編程的大規(guī)模集成電路;I/O擴(kuò)展槽上的接口控制卡:若干集成電路按一定的邏輯功能組成的部件I/O端口的地址分配IBM-PC機(jī)的I/O端口地址范圍為0~3FFH,共1024個(gè)。地址分配:0~1FFH:主板芯片200H~3FFH:擴(kuò)展槽0~0FFH:主板芯片100H~3FFH:擴(kuò)展槽后改為與具體的系統(tǒng)相關(guān)01二月202316常用接口芯片的地址分配接口芯片可用地址范圍單片使用的實(shí)際地址范圍8237A(DMAC)0000~001FH0000~000FH8259A(中斷控制器)0020~003FH0020~0021H8253A

(定時(shí)計(jì)數(shù)器)0040~005FH0040~0043H8255A

(并行接口芯片)0060~007FH0060~0063H9.2.2I/O端口地址的譯碼(1)端口地址譯碼的概念(2)譯碼電路的分析與設(shè)計(jì)01二月202318(1)端口地址譯碼的概念I(lǐng)/O端口地址譯碼電路的作用將CPU發(fā)出的地址信號轉(zhuǎn)換成對應(yīng)端口的選通信號;I/O端口地址譯碼電路的外部信號輸入信號地址信號A0~A9讀寫控制信號IOR#,IOW#DMA地址允許信號AEN輸出信號芯片或端口的選通信號,低電平有效。1——非CPU訪問IO系統(tǒng)0——是CPU訪問IO系統(tǒng)01二月202319片間譯碼,即接口尋址,產(chǎn)生某接口芯片的有效片選信號。譯碼器正常工作的任何時(shí)刻,只有一根輸出信號有效,表示當(dāng)前CPU對該接口操作。片內(nèi)譯碼,即端口尋址,選擇當(dāng)前操作的具體端口。I/O地址譯碼方法01二月202320(2)譯碼電路的分析由門電路構(gòu)成的固定式單端口地址譯碼電路;由譯碼器構(gòu)成的固定式多端口地址譯碼電路;由地址開關(guān)和比較器構(gòu)成的可選式多端口地址譯碼電路;01二月202321a)固定式單端口地址譯碼電路當(dāng)且僅當(dāng)A9~A2=10111100時(shí),與非門的輸出為0;否則與非門輸出均為1。A1~A0為片內(nèi)譯碼的地址讀寫控制10111110011010該接口電路內(nèi)部共4個(gè)端口111111101二月20232274LS138譯碼器內(nèi)部結(jié)構(gòu)圖

——8個(gè)固定式單端口譯碼電路的疊加A2A201二月202323b)固定式多端口地址譯碼電路當(dāng)且僅當(dāng)A9~A6=1010時(shí),與非門輸出為0;則使譯碼器74LS138的G2B#=0Y0#作為接口芯片的片選,則輸入的地址A5~A3=000時(shí),該接口電路被選中。A2~A0作為片內(nèi)端口選擇的地址信號,表示該接口電路中共有8個(gè)端口。1011010010001124c)可選式多端口地址譯碼電路A0A1A2A3B0B1B2B3A=BA<BA>BVccA8A9S0S1ABCG2A#G2B#G1A5

A6A7AENY0#Y1#…………Y6#Y7#74LS138比較器74LS85DIP…………010110001譯碼地址范圍:220H~23FH若S0S1均斷開,則Y1#所譯碼的地址范圍是多少?9.2.3CPU與外設(shè)之間的信息傳送方式1、無條件傳送方式2、程序查詢傳送方式3、中斷傳送方式4、DMA傳送方式01二月2023261、無條件傳送方式工作過程CPU需要傳送數(shù)據(jù)時(shí),直接將數(shù)據(jù)送至指定外設(shè);接口要求接口電路中只需要有數(shù)據(jù)寄存器即可;程序設(shè)計(jì)要點(diǎn)使用輸入輸出指令,CPU主動與指定端口數(shù)據(jù)傳送;適用場合與簡單外設(shè)的數(shù)據(jù)傳送。(外設(shè)始終就緒)01二月2023272、程序查詢傳送方式工作過程CPU傳送數(shù)據(jù)之前先檢查外設(shè)的狀態(tài),若沒有準(zhǔn)備好,則繼續(xù)查詢等待,直至外設(shè)就緒即進(jìn)行數(shù)據(jù)傳送;接口要求接口電路中需要數(shù)據(jù)寄存器和狀態(tài)寄存器;CPU主動查詢,程序控制數(shù)據(jù)傳送過程,簡單易行;每次查詢之后只能使用IO指令傳送一個(gè)數(shù)據(jù);數(shù)據(jù)傳輸率不高,CPU時(shí)間浪費(fèi)較多。適用場合CPU不太忙且對傳送速度要求不高的系統(tǒng)。01二月202328程序查詢傳送方式的程序設(shè)計(jì)程序設(shè)計(jì)流程CPU獲取外設(shè)的狀態(tài);使用IN指令,讀接口電路的狀態(tài)端口中的狀態(tài)字;狀態(tài)字隨外設(shè)的工作情況而更新;判斷狀態(tài)字中的對應(yīng)位,以決定程序的流向;若外設(shè)就緒,則進(jìn)行數(shù)據(jù)傳送;CPU使用IN/OUT指令讀寫接口電路的數(shù)據(jù)端口;CPU讀外設(shè)的狀態(tài)字N外設(shè)就緒?YCPU與外設(shè)進(jìn)行數(shù)據(jù)傳送01二月2023293、中斷傳送方式工作過程CPU有傳送要求時(shí),啟動外設(shè)后可處理其他事件,當(dāng)外設(shè)準(zhǔn)備就緒后,通過中斷的方式和CPU完成數(shù)據(jù)傳送工作。接口要求需要附加的中斷控制電路。采用軟硬件綜合控制方式來完成數(shù)據(jù)傳送;一定程度上實(shí)現(xiàn)了CPU和外設(shè)的并行工作;中斷操作過程增加了軟硬件的開銷;每次數(shù)據(jù)傳送只能傳送一個(gè)數(shù)據(jù),數(shù)據(jù)傳送效率低。適用場合CPU與慢速外設(shè)之間的數(shù)據(jù)傳送。01二月202330中斷傳送方式的程序設(shè)計(jì)程序設(shè)計(jì)流程CPU對接口進(jìn)行初始化,以啟動外設(shè);在外設(shè)進(jìn)行數(shù)據(jù)傳送準(zhǔn)備的同時(shí),CPU可以執(zhí)行其他的程序;外設(shè)就緒后,向CPU發(fā)出硬件的中斷請求信號;CPU接受中斷請求后進(jìn)行數(shù)據(jù)傳送;CPU啟動外設(shè)CPU與外設(shè)進(jìn)行數(shù)據(jù)傳送CPU執(zhí)行其他程序外設(shè)進(jìn)行準(zhǔn)備工作CPU響應(yīng)中斷外設(shè)就緒,向CPU發(fā)出中斷請求01二月202331工作過程在硬件DMA控制器(DMAC)的控制下,存儲器與高速外設(shè)之間進(jìn)行大量的數(shù)據(jù)傳送;接口要求需要相應(yīng)的DMA控制器,電路結(jié)構(gòu)復(fù)雜,硬件開銷大。特點(diǎn):數(shù)據(jù)傳送不需要經(jīng)過CPU,直接由硬件控制;但需要CPU分配總線的使用權(quán);數(shù)據(jù)傳送量大,傳送效率高。程序設(shè)計(jì)方式CPU完成DMAC的初始化設(shè)置后,由硬件或軟件的DMA請求,觸發(fā)DMAC控制的數(shù)據(jù)傳送。適用場合數(shù)據(jù)傳輸率要求較高的系統(tǒng)中。4、直接存儲器存取(DMA)方式9.3中斷系統(tǒng)9.3.1中斷系統(tǒng)概述9.3.28086/8088的中斷系統(tǒng)9.3.3可編程中斷控制器8259A9.3.1中斷系統(tǒng)概述1、中斷的基本概念2、中斷的處理過程3、中斷的優(yōu)先權(quán)01二月2023341、中斷的基本概念定義:中斷是指CPU正常運(yùn)行程序時(shí),由系統(tǒng)內(nèi)/外部非預(yù)期事件或程序中預(yù)先安排好的指令性事件引起的,CPU暫停當(dāng)前程序的執(zhí)行,轉(zhuǎn)去為該事件服務(wù)的程序中執(zhí)行,服務(wù)完畢后,再返回原程序繼續(xù)執(zhí)行的過程。注意:中斷是一個(gè)CPU執(zhí)行程序的變化過程;所有能引起中斷的事件均稱為中斷源;處理中斷事件的中斷服務(wù)程序是預(yù)先設(shè)置好的;結(jié)束中斷返回原程序時(shí),要以原狀態(tài)返回暫停處繼續(xù)執(zhí)行。01二月202335中斷過程示意…

IRET主程序中斷服務(wù)程序IP中斷請求主程序中斷響應(yīng)中斷服務(wù)程序中斷返回IRET斷點(diǎn)IP

IP

IP01二月2023362、中斷的處理過程中斷請求CPU獲得軟硬件的中斷請求;中斷響應(yīng)CPU獲得中斷類型號n,轉(zhuǎn)入中斷服務(wù)程序的過程;中斷服務(wù)執(zhí)行中斷服務(wù)程序;中斷返回CPU執(zhí)行IRET指令時(shí),自動產(chǎn)生中斷返回。由硬件實(shí)現(xiàn)01二月202337CPU在每個(gè)指令周期的最后一個(gè)時(shí)鐘周期,采樣各中斷請求;優(yōu)先順序?yàn)閮?nèi)部中斷(除單步)NMI中斷

INTR中斷單步中斷;若有中斷請求,且允許響應(yīng),則直接進(jìn)入中斷響應(yīng)處理,否則(無請求或不允許),繼續(xù)按順序執(zhí)行下一條指令;若是INTR中斷,且IF=1,則CPU響應(yīng)該INTR中斷;若是單步中斷,且TF=1,則CPU響應(yīng)該單步中斷;若是NMI中斷或內(nèi)部中斷,則CPU立即響應(yīng)該中斷;(1)中斷請求01二月202338(2)中斷響應(yīng)關(guān)中斷,以防止中斷響應(yīng)過程被其他中斷請求打斷;獲取中斷類型號n,以從中斷向量表中取出對應(yīng)中斷向量:若為內(nèi)部中斷或NMI中斷,則CPU直接取其固定的類型號;若為指令中斷,則CPU直接取操作數(shù)字段作為其類型號;若為INTR中斷,則CPU進(jìn)入中斷響應(yīng)周期,從中斷源獲取中斷類型號;入棧原CS、IP的值及斷點(diǎn)狀態(tài)信息,保護(hù)現(xiàn)場;將中斷向量裝入CS、IP寄存器,轉(zhuǎn)入中斷服務(wù)程序執(zhí)行:01二月202339CPU響應(yīng)INTR請求的中斷響應(yīng)周期中斷響應(yīng)周期CPU通過兩個(gè)連續(xù)的總線周期向中斷源發(fā)兩次INTA#應(yīng)答信號;INTA1#:通知被響應(yīng)的外設(shè),準(zhǔn)備提供中斷類型號;INTA2#:CPU從系統(tǒng)數(shù)據(jù)線上讀入中斷源準(zhǔn)備好的中斷類型號。CLKALE(地址允許)T1T2T3T4T1T2T3T4INTA#(中斷響應(yīng))D7~D0(數(shù)據(jù)總線)中斷類型號nINTA#1INTA#201二月202340(3)中斷服務(wù)程序的注意事項(xiàng)中斷嵌套的控制若中斷期間允許中斷嵌套,則中斷服務(wù)程序中應(yīng)先開中斷;使用STI指令,使IF=1;注意維護(hù)主程序的數(shù)據(jù)一致性一般在中斷服務(wù)程序中應(yīng)保護(hù)所用到的寄存器;同子程序中的寄存器保護(hù)與恢復(fù);中斷服務(wù)程序最后執(zhí)行的一條指令必須是IRET;其物理位置不一定是最后一條指令;01二月2023413、中斷優(yōu)先權(quán)中斷優(yōu)先權(quán):系統(tǒng)按照中斷源的性質(zhì)以及中斷處理的緊急程度,為每個(gè)中斷源指定優(yōu)先權(quán),用于決定CPU對中斷源的響應(yīng)順序。當(dāng)有多個(gè)中斷源同時(shí)發(fā)出請求時(shí),中斷源的優(yōu)先權(quán)決定了中斷請求是否能夠被響應(yīng)。優(yōu)先權(quán)管理方式固定優(yōu)先權(quán)各中斷源的優(yōu)先權(quán)固定,始終保持不變;循環(huán)優(yōu)先權(quán)每結(jié)束一次中斷服務(wù)時(shí),自動循環(huán)各中斷源的優(yōu)先權(quán);等優(yōu)先權(quán)方式各中斷源被響應(yīng)的機(jī)會均等具體的優(yōu)先級判斷方式在后續(xù)課程中介紹。9.3.28086/8088的中斷系統(tǒng)1、中斷向量和中斷類型號2、中斷源的類型3、中斷向量表的讀寫01二月2023431、中斷向量和中斷類型號中斷向量中斷服務(wù)程序的入口地址;共4個(gè)字節(jié)——中斷服務(wù)程序的段地址和段內(nèi)偏移地址;中斷向量表集中存放系統(tǒng)中所有中斷向量的存儲區(qū)。8086PC機(jī)中,將存儲器物理地址為0~3FFH的1024個(gè)單元作為中斷向量表,可容納256個(gè)中斷向量;中斷類型號每個(gè)中斷向量在向量表中的位置編號,0~255。01二月202344

……

……

……

……中斷向量表0000:00000000:00010000:00020000:0003…………0000:00200000:00210000:00220000:0023…………0000:03FC0000:03FD0000:03FE0000:03FF類型號0類型號8類型號255偏移地址段地址偏移地址段地址偏移地址段地址01二月202345用中斷向量賦值CS、IP中斷類型號與中斷向量中斷類型號(n)4=中斷向量在表中的偏移地址如:n=8,則應(yīng)從向量表20H~23H中取出中斷向量中斷源提供中斷類型號n4中斷向量在表中的偏移地址訪存中斷向量CPU轉(zhuǎn)向中斷服務(wù)程序執(zhí)行

CPU使用向量中斷的過程:01二月2023462、中斷源類型中斷源外部中斷內(nèi)部中斷不可屏蔽中斷NMI可屏蔽中斷INTR調(diào)試中斷指令中斷INTn由硬件設(shè)備的中斷請求信號引入,具有隨機(jī)性和突發(fā)性。由中斷指令或由CPU運(yùn)行過程中的的某些錯(cuò)誤結(jié)果產(chǎn)生的中斷。異常中斷軟件故障中斷286以后的中斷類型;由程序中發(fā)生的錯(cuò)誤而引起的中斷;01二月202347不可屏蔽中斷NMI由CPU的NMI引腳引入該中斷請求,CPU得到該中斷請求立即響應(yīng),不需要CPU發(fā)響應(yīng)信號;中斷類型號固定為2;中斷優(yōu)先權(quán)高于可屏蔽中斷INTR,一般用于系統(tǒng)對緊急情況的處理,用戶不能使用;常見的NMI中斷:RAM奇偶校驗(yàn)錯(cuò)、I/O通道校驗(yàn)錯(cuò)、協(xié)處理器出錯(cuò)等。01二月202348可屏蔽中斷INTR由CPU的INTR引腳引入該中斷請求;該中斷請求只有在CPU的中斷允許標(biāo)志位IF=1時(shí),CPU才會通過發(fā)回響應(yīng)信號的方式響應(yīng);CPU對INTR中斷的響應(yīng)控制可由STI(IF=1)、CLI(IF=0)兩條指令完成。此類中斷的中斷類型號由中斷源提供;常見的INTR中斷:外部設(shè)備的中斷請求,如I/O設(shè)備的數(shù)據(jù)傳送請求,用戶可自行設(shè)計(jì);01二月202349指令中斷INTn由CPU執(zhí)行在程序中預(yù)先安排好的中斷指令引起的;該中斷是可預(yù)期的、且不可屏蔽的;處理該中斷時(shí),CPU不需要發(fā)響應(yīng)信號;指令的操作數(shù)字段(n)即為中斷類型號;中斷類型號的范圍為5≤n≤255;這類中斷包括BIOS中斷、DOS中斷以及一些未定義的自由中斷(可由系統(tǒng)擴(kuò)充或根據(jù)應(yīng)用需要自定義)。01二月202350軟件故障中斷在程序運(yùn)行過程中,出現(xiàn)錯(cuò)誤而引起的中斷;不可預(yù)期的中斷除法錯(cuò)中斷中斷類型號為0;中斷的原因執(zhí)行除法指令時(shí)除數(shù)為0,或除得的商大于規(guī)定位數(shù);溢出中斷中斷類型號為4;CPU運(yùn)算時(shí),若結(jié)果超出數(shù)據(jù)表示范圍,則置OF=1,引發(fā)溢出中斷,跳出當(dāng)前程序的執(zhí)行;01二月202351調(diào)試中斷程序調(diào)試過程中,人為設(shè)置的中斷;可預(yù)期的中斷;單步中斷中斷類型號為1;單步調(diào)試程序時(shí),若TF=1,則在每條指令后自動加一條1號中斷指令,產(chǎn)生單步中斷;斷點(diǎn)中斷中斷類型號為3;斷點(diǎn)調(diào)試程序時(shí),則指定指令后自動加一條3號中斷指令;01二月202352外部中斷指令中斷內(nèi)部中斷硬件故障中斷01二月2023533、中斷向量表的讀寫系統(tǒng)的中斷向量是在開機(jī)上電時(shí),由系統(tǒng)軟件裝入內(nèi)存中的中斷向量表中的。用戶使用自定義的中斷,則必須編制中斷服務(wù)程序,保存于存儲器中;將該中斷的中斷向量裝入中斷向量表中;根據(jù)其中斷類型號設(shè)置相應(yīng)的硬件連接;使用軟件或硬件請求的方式調(diào)用中斷服務(wù)程序;01二月202354中斷向量讀寫的DOS功能調(diào)用寫入中斷向量功能:將(DS:DX)中內(nèi)容寫入向量表中的指定位置;入口參數(shù)AH—功能號(25H)、AL—中斷類型號、DS:DX—中斷向量出口參數(shù):無讀出中斷向量功能:將向量表中指定位置的向量讀出至(ES:BX)中;入口參數(shù)AH—功能號(35H)、AL—中斷類型號出口參數(shù)ES:BX—指定中斷類型號的中斷向量值01二月202355中斷向量的修改為避免系統(tǒng)資源沖突,一般采用中斷向量修改的方式來使用中斷向量。中斷向量修改的方法:利用DOS功能調(diào)用利用35H號功能調(diào)用,獲取原中斷向量,并保存;利用25H號功能調(diào)用,將新中斷向量寫入向量表;新中斷服務(wù)程序執(zhí)行完畢后,再使用25H號功能調(diào)用恢復(fù)原中斷向量。01二月202356例:采用中斷向量修改的方式為中斷服務(wù)程序INTR1設(shè)置中斷類型號為60H的中斷向量。程序段如下:

MOVAH,35HMOVAL,60HINT21H

……

……

……

…………

……中斷向量表程序數(shù)據(jù)段OLD_OFFOLD_SEGIP60HCS60HIP60HCS60HBXIP60HESCS60H

MOVOLD_OFF,BXMOVBX,ESMOVOLD_SEG,BX…………01二月202357

……

……

……

…………

……IPCS中斷向量表程序數(shù)據(jù)段0000:01800000:01820000:0183OLD_OFFOLD_SEGSEGINTR1OFFSETINTR1IP60HCS60HMOVAH,25HMOVAL,60HMOVDX,SEGINTR1MOVDS,DXMOVDX,OFFSETINTR1INT21HMOVAH,25HMOVAL,60HMOVDX,OLD_SEGMOVDS,DXMOVDX,OLD_OFFINT21H…………IP60H

CS60H0000:01819.3.3可編程中斷控制器8259A0、8259A的工作特點(diǎn)1、8259A的引腳和內(nèi)部結(jié)構(gòu)2、8259A的工作方式3、8259A的編程8259A的命令字和初始化編程4、8259A的應(yīng)用8259A的單片和級聯(lián)使用01二月2023590、8259A的工作特點(diǎn)接收和擴(kuò)充外設(shè)的中斷請求;單片工作時(shí),每片8259A可接收8個(gè)外設(shè)中斷;兩級級聯(lián)時(shí),最多可用9片8259A管理64個(gè)外設(shè)中斷。對外設(shè)中斷優(yōu)先權(quán)的排隊(duì)管理;8259A可采用固定、循環(huán)等多種優(yōu)先權(quán)管理方式。向CPU提供中斷類型號;通過軟硬件配合的方式,由8259A向CPU提供中斷類型號。對中斷請求的屏蔽和開放;不同的中斷屏蔽方式,實(shí)現(xiàn)對特定或全部中斷源的屏蔽。僅管理INTR中斷1、8259A的引腳和內(nèi)部結(jié)構(gòu)8259A的外部引腳8259A的內(nèi)部結(jié)構(gòu)01二月2023618259A的外部引腳特性8個(gè)外設(shè)中斷請求引入端雙向8位數(shù)據(jù)總線級聯(lián)總線雙功能引腳向CPU提交中斷請求的輸出引腳接收CPU發(fā)回的中斷響應(yīng)信號的輸入引腳片內(nèi)端口選擇的地址引腳片選及讀寫控制信號01二月2023628259A的外部引腳(1/2)面向CPU的引腳雙向數(shù)據(jù)總線D0~D7輸入讀寫控制信號WR#、RD#輸入片選信號CS#輸入地址總線A0中斷請求和響應(yīng)信號INT、INTA#8259A與CPU的中斷請求和應(yīng)答聯(lián)絡(luò)信號;01二月2023638259A的外部引腳(2/2)中斷請求信號IR0~IR7接外設(shè)中斷源的中斷請求信號;雙功能級聯(lián)引腳SP#/EN#非緩沖連接方式,為SP#信號(級聯(lián)輸入信號)用于區(qū)分8259A的主從片(0-從片,1-主片);緩沖連接方式,為EN#信號(數(shù)據(jù)收發(fā)允許輸出信號)用于控制總線緩沖器的數(shù)據(jù)傳送。級聯(lián)總線CAS0~CAS28259A級聯(lián)時(shí),主從片的連接總線,主片輸出,從片輸入。01二月202364系統(tǒng)總線連接方式非緩沖方式:8259A直接與系統(tǒng)數(shù)據(jù)總線相連;適用于8259A數(shù)目較少的系統(tǒng);緩沖方式:8259A通過總線緩沖器與系統(tǒng)數(shù)據(jù)總線相連;適用于多片8259A級聯(lián)的系統(tǒng);CPUD0~D7D0~D78259ASP#/EN#INTINTA#INTRINTA#8286B0~B7A0~A7OE#P2292.連接系統(tǒng)總線的方式01二月2023658259A的內(nèi)部結(jié)構(gòu)01二月202366三個(gè)重要的寄存器(1/2)3個(gè)8位寄存器,每一位對應(yīng)著一個(gè)中斷源;中斷請求寄存器記錄各中斷源的中斷請求狀態(tài);中斷服務(wù)寄存器記錄當(dāng)前CPU為各中斷源服務(wù)的情況;中斷屏蔽寄存器記錄8259A對各中斷源的屏蔽信息;D7D6D5D4D3D2D1D0IR7

IR6

IR5

IR4

IR3

IR2

IR1

IR001沒有請求,或已經(jīng)響應(yīng)有請求且還未被響應(yīng)01沒有被服務(wù)正在被服務(wù)01允許中斷禁止中斷01二月202367中斷請求寄存器IRR

其置復(fù)位操作由硬件自動完成;IRi的有效信號置位,INTA#的第一個(gè)負(fù)脈沖復(fù)位;根據(jù)硬件信號的情況,可多位同時(shí)有效;中斷服務(wù)寄存器ISR

置位操作由硬件完成,復(fù)位操作大多由軟件完成;INTA#的第一個(gè)負(fù)脈沖置位,程序中的EOI命令復(fù)位;允許中斷嵌套時(shí),該寄存器可多位同時(shí)被置1。中斷屏蔽寄存器IMR

其置復(fù)位操作由軟件完成。三個(gè)重要的寄存器(2/2)01二月202368優(yōu)先權(quán)判別器PRPR根據(jù)當(dāng)前中斷源優(yōu)先權(quán)順序,檢查有請求中斷源的優(yōu)先權(quán),并和當(dāng)前正在執(zhí)行的中斷的優(yōu)先權(quán)比較,以此確定是否向CPU提出新的中斷請求;需要配合使用IRR、ISR和IMR;PR的結(jié)構(gòu)相當(dāng)于一個(gè)優(yōu)先權(quán)編碼器和一個(gè)比較器電路,可實(shí)現(xiàn)中斷判優(yōu)及屏蔽的功能。01二月202369PR01二月202370讀寫控制邏輯CPU對8259A的讀/寫操作包括:對8259A寫初始化命令字(ICW)、操作命令字(OCW);對8259A讀取其內(nèi)部狀態(tài)信息;CS#WR#RD#A0操作類型0010寫ICW1、OCW2、OCW30011寫ICW2、ICW3、ICW4、OCW10100讀IRR、ISR、查詢字0101讀IMR01二月202371級聯(lián)緩沖/比較器在級聯(lián)、緩沖方式下有效;緩沖方式當(dāng)8259A和CPU需要傳送數(shù)據(jù)時(shí),產(chǎn)生有效的EN#信號,送往總線緩沖器;級聯(lián)方式用于保存和比較從8259A的標(biāo)志碼;若8259A級聯(lián)使用,當(dāng)CPU響應(yīng)從片中斷時(shí),主片通過CAS0~CAS2輸出響應(yīng)中斷所屬從8259A的標(biāo)志碼,從片輸入并與自己的標(biāo)志碼比較,相同則工作;2、8259A的工作方式優(yōu)先權(quán)排隊(duì)的方式P2294.優(yōu)先權(quán)排隊(duì)的方式中斷結(jié)束的方式P2305.中斷結(jié)束方式01二月202373優(yōu)先權(quán)排隊(duì)的方式固定優(yōu)先權(quán)一般全嵌套方式:只允許高級中斷嵌套特殊全嵌套方式:允許同級中斷嵌套一般用于多片級聯(lián)結(jié)構(gòu)中的主8259A。循環(huán)優(yōu)先權(quán)優(yōu)先權(quán)自動循環(huán)一次中斷服務(wù)結(jié)束,當(dāng)前結(jié)束中斷源的優(yōu)先權(quán)自動降為最低;優(yōu)先權(quán)特殊循環(huán)一次中斷服務(wù)結(jié)束,指定中斷源的優(yōu)先權(quán)自動降為最低;假設(shè)IRi被響應(yīng),則各中斷源的優(yōu)先權(quán)為:IRi+1IRi+2

……

IR7

IR0

……

IRi假設(shè)指定中斷源IRk,則各中斷源優(yōu)先權(quán)為:IRk+1

IRk+2

……

IR7

IR0

……

IRk01二月202374中斷結(jié)束的方式普通EOI命令:復(fù)位當(dāng)前ISR中所有置位位中優(yōu)先權(quán)最高的對應(yīng)位;適用于8259A單片工作且優(yōu)先權(quán)一般全嵌套的場合。特殊EOI命令:該EOI命令中指定要復(fù)位的ISR的對應(yīng)位;適用于8259A級聯(lián)工作,且優(yōu)先權(quán)循環(huán)的系統(tǒng)中。自動EOI命令:不需要在中斷服務(wù)程序中發(fā)EOI命令,對ISR的復(fù)位操作在中斷響應(yīng)期間(第二個(gè)INTA#)自動完成;適用于8259A單片工作,且不會發(fā)生中斷嵌套的場合。中斷服務(wù)程序中IRET之前的EOI命令;作用:復(fù)位8259A的ISR寄存器中的對應(yīng)位3、8259A的編程(1)8259A的4個(gè)初始化命令字(2)8259A的初始化編程(3)8259A的3個(gè)操作命令字(4)8259A命令字的使用01二月202376(1)8259A的4個(gè)初始化命令字ICW1——芯片控制的初始化命令字初始化必選命令字ICW2——設(shè)置中斷類型號的初始化命令字初始化必選命令字ICW3——級聯(lián)主從片的初始化命令字級聯(lián)結(jié)構(gòu)時(shí)的命令字ICW4——方式控制字的初始化命令字

特殊設(shè)置時(shí)的命令字

寫入偶地址端口寫入奇地址端口寫入奇地址端口寫入奇地址端口01二月202377寫入ICW1芯片即恢復(fù)初始化狀態(tài);自動清除IRR、ISR、IMR;一般全嵌套方式的優(yōu)先權(quán)管理方式,并使IR0優(yōu)先權(quán)最高;普通屏蔽方式;①ICW10001LTIM0SNGLIC416位機(jī)無效標(biāo)志位中斷請求IRi的觸發(fā)方式0邊沿觸發(fā)1電平觸發(fā)無效8259A的工作方式0級聯(lián)使用1單片使用是否需要ICW40不需要1需要01二月202378例1.若8259A采用電平觸發(fā),單片使用,需要ICW4,則命令字ICW1應(yīng)如何設(shè)置?ICW1命令字:ICW1命令字寫入8259A的偶地址端口;設(shè)端口地址為20H~21H:

MOVAL,1BH OUT20H,AL0001LTIM0SNGLIC411101二月202379②ICW2一片8259A所管理的8個(gè)中斷源的中斷類型號必須是連續(xù)的;高5位由ICW2提供,每個(gè)芯片一個(gè)編號;低3位由中斷源的引入端(IRi)決定;用法根據(jù)8259A所管理中斷源的中斷類型號,初始化ICW2;D7D6D5D4D3000中斷類型號的高5位不用01二月202380例2.初始化設(shè)置某8259A的ICW2為00110000B,則該8259A引入的8個(gè)中斷源IR0~IR7的中斷類型號應(yīng)分別是多少?答:IR0~IR7的中斷類型號是連續(xù)的,應(yīng)為30H~37H。答:中斷類型號5AH(0101

1010)高5位01011,決定ICW2應(yīng)設(shè)置為01011000B,低3位決定該中斷源應(yīng)接入IR2引腳。例3.已知某中斷源的中斷類型號為5AH,則該中斷源應(yīng)接8259A哪個(gè)引腳,且其ICW2又應(yīng)如何設(shè)置?01二月202381③ICW3ICW3僅在級聯(lián)結(jié)構(gòu)中需要,且主從片格式不同;主片ICW3的格式:每一位分別對應(yīng)著一個(gè)IR引腳;1-表示該引腳上接有從片;0-表示該引腳沒有接從片,可以引入其他中斷源。從片ICW3的格式:從片ICW3僅低3位有效,表示該從片是由主片的哪個(gè)IR引腳引入8259A系統(tǒng)的,這個(gè)編碼也就是從片的標(biāo)志碼;S7S6S5S4S3S2S1S0*****ID2ID1ID001二月202382例4.8259A的級聯(lián)結(jié)構(gòu)中,兩個(gè)從片分別接主片的IR3和IR6引腳,則主從片的ICW3應(yīng)如何設(shè)置?主從片ICW3的設(shè)置不同,如下主片的ICW3從片1的ICW3從片2的ICW3相關(guān)程序段:從8259A:0A2H~0A3HMOVAL,06HOUT0A3H,ALS7S6S5S4S3S2S1S01148H*****ID2ID1ID003H011*****ID2ID1ID006H110主8259A:20H~21HMOVAL,48HOUT21H,AL從8259A:0A0H~0A1HMOVAL,03HOUT0A1H,AL00000001二月202383④ICW4000SFNMBUFM/S#AEOIμPM無效全嵌套方式0一般全嵌套1特殊全嵌套使用系統(tǒng)08位系統(tǒng)116位系統(tǒng)系統(tǒng)連接方式0非緩沖方式1緩沖方式緩沖方式下區(qū)分主從片0從片1主片中斷結(jié)束方式0非自動EOI1自動EOI01二月2023848259A系統(tǒng)中的主從片的區(qū)分非緩沖方式8259A的SP#引腳區(qū)分主從片;輸入高電平,表示單片或主片;輸入低電平,表示從片;緩沖方式8259A的SP#/EN#引腳作為EN#信號使用;由初始化命令字ICW4的M/S#位主從片區(qū)分;1——主片;0——從片;01二月202385例5.8086系統(tǒng)中,使用兩片8259A,采用非緩沖方式連接,非自動EOI方式,則主從8259A的ICW4命令字如何設(shè)置?主片ICW4命令字從片ICW4命令字相關(guān)程序段:000SFNMBUFM/S#AEOIμPM10001000SFNMBUFM/S#AEOIμPM00001主8259A:20H~21HMOVAL,11HOUT21H,AL從8259A:0A0H~0A1HMOVAL,01HOUT0A1H,AL01二月202386(2)8259A的初始化編程在中斷系統(tǒng)運(yùn)行之前,必須對所有的8259A芯片進(jìn)行初始化編程,由CPU向8259A寫入2~4個(gè)初始化命令字ICW;ICW1和ICW2必須設(shè)置;ICW1的SNGL位決定是否需要ICW3(0-需要,1-不需要);ICW1的IC4位決定是否需要ICW4(0-不需要,1-需要);若按照條件寫出的ICW4=0,則不需要,否則需要;初始化命令字一定是在主程序中設(shè)置的。01二月202387初始化命令字設(shè)置流程圖寫ICW1寫ICW2設(shè)置中斷源的中斷類型號級聯(lián)結(jié)構(gòu)?寫ICW3需要ICW4?寫ICW4YNYN即ICW1的D1(SNGL位)=0?即ICW1的D0(IC4位)=1?01二月202388例6

某8086/8088系統(tǒng)中,使用單片8259A作為中斷控制器,工作在全嵌套方式、非自動EOI方式,非緩沖方式,邊沿觸發(fā)請求中斷,IR2引腳上中斷源的中斷類型號為0AH,試寫出其初始化程序段。初始化所需要的命令字ICW1ICW2ICW4初始化程序:將各命令字寫入對應(yīng)的命令端口假定該8259A芯片的端口地址為20H、21H;0001LTIM0SNGLIC4D7D6D5D4D3000000SFNMBUFM/S#AEOIμPM01113H08H001H000101二月202389例6初始化程序MOVAL,13HOUT20H,AL;寫ICW1MOVAL,08HOUT21H,AL;寫ICW2MOVAL,01HOUT21H,AL;寫ICW401二月202390(3)8259A的3個(gè)操作命令字操作控制字是在8259A工作過程中,根據(jù)需要寫入的;OCW1——中斷屏蔽操作命令字寫入奇地址端口OCW2——設(shè)置優(yōu)先權(quán)循環(huán)及中斷結(jié)束方式的操作命令字寫入偶地址端口OCW3——特殊屏蔽、8259A讀操作的命令字寫入偶地址端口01二月202391①OCW1-中斷屏蔽操作命令字OCW1的作用寫8259A的中斷屏蔽寄存器IMR;在中斷服務(wù)程序中,使用OCW1可動態(tài)地改變各中斷源的優(yōu)先權(quán)順序;一般,若某系統(tǒng)沒有完全使用所有的IR引腳,在初始化程序中設(shè)置了ICW之后,可繼續(xù)寫入該命令字,以控制該8259A系統(tǒng)的可用中斷源。M7M6M5M4M3M2M1M001二月202392例7.設(shè)置8259A的IMR,使IR3允許中斷,其他引腳禁止中斷。OCW1命令字設(shè)端口地址為20H~21H:

MOVAL,0F7H OUT21H,AL若要不影響其他中斷源,僅允許IR3中斷?采用“讀—修改—寫”的方式設(shè)置;M7M6M5M4M3M2M1M011110111INAL,21HANDAL,0F7HOUT21H,AL01二月202393②OCW2

—設(shè)置優(yōu)先權(quán)循環(huán)及中斷結(jié)束方式的操作命令字OCW2的作用:非自動EOI方式時(shí),作為中斷結(jié)束的EOI命令;改變中斷優(yōu)先權(quán)的管理方式;命令字格式RSLEOI00L2L1L0是否優(yōu)先權(quán)輪換命令是否指定中斷等級是否中斷結(jié)束命令標(biāo)志位中斷源編碼01二月202394RSLEOI功能000001

010011100101110111取消優(yōu)先權(quán)自動循環(huán),變?yōu)楣潭▋?yōu)先權(quán)普通EOI命令,自動復(fù)位ISR中優(yōu)先權(quán)最高位特殊EOI命令,由L2L1L0指定ISR的復(fù)位位無效設(shè)置優(yōu)先權(quán)自動循環(huán)普通EOI命令,且優(yōu)先權(quán)自動循環(huán)設(shè)置優(yōu)先權(quán)特殊循環(huán),由L2L1L0指定中斷源特殊EOI命令,且優(yōu)先權(quán)特殊循環(huán)OCW2的命令類型01二月202395例7.若8259A采用普通EOI方式,則如何設(shè)置其IR3中斷服務(wù)程序中的EOI命令?EOI命令用于中斷服務(wù)程序的IRET之前,以復(fù)位8259A內(nèi)部的ISR寄存器;普通EOI命令為:設(shè)端口地址為20H~21H:

MOVAL,20H OUT20H,AL若為特殊EOI方式,則命令字為01100011。RSLEOI00L2L1L000100001二月202396例8.若8259A采用普通EOI方式,優(yōu)先權(quán)自動循環(huán)方式管理中斷源,則如何設(shè)置其IR3中斷服務(wù)程序中的EOI命令?普通EOI+優(yōu)先權(quán)自動循環(huán)的命令為:設(shè)8259的端口地址為20H~21H:

MOVAL,0A0H OUT20H,AL若為特殊EOI方式,則命令字為11100011;

MOVAL,0E3H OUT20H,ALRSLEOI00L2L1L010100001二月202397③OCW3

——特殊屏蔽、8259A讀操作的命令字0ESMMSMM01PRRRIS無效特殊屏蔽設(shè)置0×:無效10:復(fù)位特殊屏蔽方式11:置位特殊屏蔽方式標(biāo)志位查詢命令讀內(nèi)部寄存器0×:無效10:讀IRR寄存器11:讀ISR寄存器通知8259A,CPU將在下個(gè)RD#有效期間讀入查詢字。01二月202398例9.試讀8259A內(nèi)部寄存器ISR的值。使用方法:用OCW3向8259A發(fā)送指定寄存器的讀命令用輸入指令讀出IRR或ISR的內(nèi)容送至AL寄存器程序清單:MOVAL,00001011B

OUT20H,ALINAL,20H01二月202399(4)8259A命令字的使用8259A共有7個(gè)命令字,其中4個(gè)初始化命令字(ICW1~ICW4)和3個(gè)操作命令字(OCW1~OCW3)。使用8259A之前,通過ICW的設(shè)置使當(dāng)前8259A對各類中斷管理方式進(jìn)行初始化規(guī)定;在8259A使用過程中,通過寫入OCW,隨時(shí)進(jìn)行所需要的設(shè)置;8259A根據(jù)各命令字的寫入端口、寫入順序、以及命令字中的標(biāo)志位實(shí)現(xiàn)對其區(qū)分的。01二月2023100CPU對8259A的讀寫操作寫偶地址端口(20H)

ICW1、OCW2、OCW3寫奇地址端口(21H)

ICW2、ICW3、ICW4、OCW1讀偶地址端口(20H)

IRR、ISR、查詢字讀奇地址端口(21H)

OCW1(IMR)01二月20231010001LTIM0SNGLIC4ICW1寫入偶地址端口的命令字由命令字中的標(biāo)志位區(qū)分以下三個(gè)命令字RSLEOI00L2L1L0OCW2OCW30ESMMSMM01PRRRIS01二月2023102寫入奇地址端口的命令字根據(jù)寫入命令字的順序區(qū)分以下四個(gè)命令字M7M6M5M4M3M2M1M0OCW1D7D6D5D4D3000000SFNMBUFM/S#AEOIμPMICW2ICW4S7S6S5S4S3S2S1S000000ID2ID1ID0主ICW3從ICW301二月20231034、8259A的應(yīng)用單片工作方式最多可以引入8個(gè)中斷源的中斷請求;主要連接為單片8259A與CPU的連接;級聯(lián)工作方式兩級級聯(lián)時(shí),最多可使用9片8259A接收64個(gè)中斷源;計(jì)算芯片個(gè)數(shù)和可接收中斷源數(shù)目之間的關(guān)系假定芯片數(shù)目為N,則中斷源數(shù)目=8N-(N-1)主要連接為多片8259A之間的連接,及其與CPU的連接;01二月2023104(1)單片8259A的工作方式不用直接引入各中斷源非緩沖方式單片(即主片)01二月2023105IRR(00000000)ISR(00000000)IRR(00010100)1(IR2)0ISR(00000100)IRR(00010000)10nISR(00000000)

EOI命令I(lǐng)F=1中斷服務(wù)程序01二月2023106(2)多片8259A級聯(lián)的工作方式硬件連接(非緩沖方式下)主片8259A從片8259AIRiINTINTA#SP#/EN#CAS2~0引腳芯片接中斷源或從片的INT接中斷源接CPU的INTR引腳接主片的某個(gè)IRi引腳直接連于CPU的INTA#引腳,由CPU輸出到各主從芯片接高電平接低電平各從片直接連于主片上,由主片輸出,從片輸入01二月2023107INTA#D7~D0CAS2~0SP#/EN#IR0IR1IR2IR3IR4IR5IR6IR7INT主8259AINTA#D7~D0CAS2~0SP#/EN#INT從8259A(#1)INTA#D7~D0CAS2~0SP#/EN#INT從8259A(#2)IR1IR2IR3IR4IR5IR6IR7IR0IR1IR2IR3IR4IR5IR6IR7IR0CPUA19~A1、WR#、RD#、A0直接連于各8259A芯片的CS#、WR#、RD#、A0引腳D7~D0VCCINTA#INTR01二月2023108級聯(lián)緩沖比較器的作用當(dāng)多片8259A級聯(lián)時(shí),主從片的CAS2~CAS0全部對應(yīng)相連,主片作為輸出,從片作為輸入,構(gòu)成8259A主從式的級聯(lián)工作結(jié)構(gòu);該級聯(lián)總線用于CPU響應(yīng)從片中斷時(shí)(第一個(gè)INTA#有效期間),主片向各從片傳送當(dāng)前響應(yīng)中斷所屬從片的標(biāo)志碼,從而選中需要提供中斷類型號的從片;各從片把接收到的標(biāo)志碼與自己級聯(lián)/緩沖比較器中的標(biāo)志碼比較;若相等,則在第二個(gè)INTA#有效期間,將中斷類型號送到數(shù)據(jù)總線上,供CPU讀取。01二月2023109IRR(00000000)ISR(00000000)ISR(00000000)IRR(00000000)011110111IR3000IRR(01001000)011111000中斷類型號nISR(00000000)ISR(00000100)ISR(00001000)IRR(00000100)IRR(00000000)IRR(00000100)IRR(01000000)IRR(00000000)111

EOI1ISR(00000000)EOI2ISR(00000000)01二月20231108259A級聯(lián)使用時(shí)應(yīng)注意優(yōu)先權(quán)問題一般主片采用特殊全嵌套方式,使從片的各中斷源的優(yōu)先權(quán)得到體現(xiàn),從而實(shí)現(xiàn)對8259系統(tǒng)所接收的所有中斷源的一般全嵌套優(yōu)先權(quán)管理。中斷服務(wù)結(jié)束的EOI命令:若CPU響應(yīng)的是由從片引入的中斷,則在中斷服務(wù)結(jié)束時(shí),應(yīng)首先檢測當(dāng)前從片是否還有其他的中斷服務(wù);若沒有,則發(fā)送兩個(gè)EOI命令,分別用于復(fù)位主片和從片的ISR。若有,則僅發(fā)送一個(gè)EOI命令,復(fù)位從片的ISR即可。01二月2023111例10.某8086系統(tǒng)中,由兩片8259A構(gòu)成級聯(lián)中斷系統(tǒng),從片接主片IR1,主片的IR4和IR5有中斷引入,中斷類型號分別是44H和45H,從片的IR3和IR6上有中斷請求,中斷類型號分別是43H和46H。試進(jìn)行初始化編程。01二月2023112硬件連接圖從8259ACPUD7~D0INTA#INTRINTA#D7~D0CAS2~0SP#/EN#INTIR2IR3IR4IR5IR6IR7IR0IR1INTA#D7~D0CAS2~0SP#/EN#IR0IR1IR2IR3IR4IR5IR6IR7INT主8259AVCC01二月2023113ICW2ICW1主片初始化程序0001LTIM0SNGLIC4D7D6D5D4D3000S7S6S5S4S3S2S1S0000SFNMBUFM/S#AEOIμPMICW3ICW400111H40H0000001002H111HMOVAL,11HOUT20H,AL;寫ICW1MOVAL,40HOUT21H,AL;寫ICW2MOVAL,02HOUT21H,AL;寫ICW3MOVAL,11HOUT21H,AL;寫ICW4MOVAL,0CDHOUT21H,AL;寫OCW10001M7M6M5M4M3M2M1M0OCW10CDH0001111101二月2023114ICW2ICW1從片初始化程序0001LTIM0SNGLIC4D7D6D5D4D3000000SFNMBUFM/S#AEOIμPMICW3ICW400111H40H01H001HMOVAL,11HOUT0A0H,AL;寫ICW1MOVAL,40HOUT0A1H,AL;寫ICW2MOVAL,01HOUT0A1H,AL;寫ICW3MOVAL,01HOUT0A1H,AL;寫ICW4MOVAL,0B7HOUT0A1H,AL;寫OCW10001M7M6M5M4M3M2M1M0OCW10B7H1110110100000ID2ID1ID000101二月2023115關(guān)于8259A的初始化微機(jī)系統(tǒng)中對8259A芯片的初始化是由系統(tǒng)軟件完成的,一般不允許用戶自己設(shè)置;對于8259A的初始化操作可以在沒有配置完善操作系統(tǒng)的單板機(jī)上進(jìn)行,例如實(shí)驗(yàn)系統(tǒng)中;實(shí)際使用中,一般用戶只對8259A的OCW1和OCW2進(jìn)行應(yīng)用,用于中斷的開放/屏蔽和發(fā)出EOI命令,OCW3也很少使用。補(bǔ)充:8259A的應(yīng)用舉例1、8259A在微機(jī)系統(tǒng)中的應(yīng)用2、8259A的單片應(yīng)用3、8259A的級聯(lián)應(yīng)用4、8259A與8255A的中斷傳送01二月20231171、8259A在微機(jī)系統(tǒng)中的應(yīng)用(一)早期微機(jī)中,采用單片8259A管理中斷;基本設(shè)置:端口地址為20H、21H;8個(gè)中斷請求均為邊沿觸發(fā);采用一般全嵌套方式管理中斷源;設(shè)置8個(gè)中斷源中斷類型號的高5位為00001;中斷源日時(shí)鐘、鍵盤、串口、硬盤、軟盤、打印機(jī)等;初始化編程需設(shè)置ICW1、ICW2和ICW4。01二月2023118單片8259A中斷系統(tǒng)的硬件連接CAS0~2+5V8259A82888088CPUINTRD0~D7SP/ENINTD0~D7日時(shí)鐘鍵盤保留串行口2串行口1硬盤軟盤并行口A0INTR1CS—IRQ0—IRQ1—IRQ2—IRQ3—IRQ4—IRQ5—IRQ6—IRQ7—A0—CSINTARDWRINTAIORIOW01二月2023119單片8259A中斷系統(tǒng)的初始化編程;ICW1:邊沿觸發(fā),單片,需要ICW4MOVAL,00010011B OUT20H,AL;ICW2:中斷類型號MOVAL,08H OUT21H,AL;ICW4:一般全嵌套,非緩沖,非自動EOI,16位系統(tǒng)MOVAL,00000001B OUT21H,AL01二月20231201、8259A在微機(jī)系統(tǒng)中的應(yīng)用(二)286以上微機(jī)中,采用兩片8259A級聯(lián)的非緩沖方式連接,從片的INT接主片的IR2引腳,共容納15個(gè)中斷源;主片端口地址為20H、21H,從片端口地址為0A0H、0A1H;主從片的中斷請求均采用邊沿觸發(fā);所有中斷源采用一般全嵌套的優(yōu)先權(quán)管理方式;主片中斷類型號的高5位為00001;從片中斷類型號的高5位為01110。主從片的初始化均需設(shè)置ICW1~ICW4。主片的初始化從片的初始化01二月2023121雙片8259A中斷系統(tǒng)的硬件連接01二月2023122雙片8259A中斷系統(tǒng)的主片初始化編程(1/2)主片8259A初始化:;ICW1:邊沿觸發(fā),級聯(lián),有ICW4MOVAL,00010001BOUT20H,AL;I/O端口的延時(shí)要求

JMPSHORT$+2;ICW2:中斷類型號的高5位

MOVAL,08H OUT21H,AL;ICW3:從片INT接主片IR2

MOVAL,00000100BOUT21H,ALJMPSHORT$+2;ICW4:16位系統(tǒng),非自動EOI,非緩沖,特殊全嵌套

MOVAL,00010001BOUT 21H,AL01二月2023123雙片8259A中斷系統(tǒng)的從片初始化編程(2/2)從片8259A初始化:;ICW1:邊沿觸發(fā),級聯(lián),有ICW4

MOVAL,00010001BOUT0A0H,ALJMPSHORT$+2;ICW2

:中斷類型號的初值為70HMOVAL,70HOUT0A1H,AL;ICW3:從片INT接主片IR2

MOVAL,00000010BOUT0A1H,ALJMP SHORT$+2 ;ICW4:16位系統(tǒng),非自動EOI,非緩沖,一般全嵌套MOVAL,00000001B OUT 0A1H,AL01二月20231242、8259A的單片應(yīng)用

CPU每次響應(yīng)8259A引入的某一中斷時(shí),輸出顯示字符串“A8259AINTERRUPT!”,中斷10次后退出。設(shè)該中斷的中斷類型號為0AH,16位系統(tǒng),試寫出控制程序。僅有一個(gè)中斷源的中斷系統(tǒng),使用單片8259A即可;中斷源的中斷類型號為0AH;8259A的ICW2為08H,該中斷源接IR2引腳;程序控制每次執(zhí)行中斷服務(wù)程序時(shí),計(jì)數(shù)值減1;主程序在等待中斷時(shí),不斷地判斷計(jì)數(shù)是否滿10次;中斷源響應(yīng)10次后退出;即屏蔽8259A的IR2引腳;處理中斷需要編寫主程序和中斷服務(wù)程序;01二月2023125主程序和中斷服務(wù)程序的一般設(shè)置主程序:關(guān)中斷;初始化8259A;設(shè)置中斷向量;開中斷,等待中斷;中斷服務(wù)程序:保護(hù)寄存器;開中斷(STI)(或放在最后一步);

[完成中斷請求服務(wù)]發(fā)EOI命令;恢復(fù)寄存器;IRET01二月2023126主程序流程圖開始關(guān)中斷設(shè)置中斷向量8259A初始化設(shè)置計(jì)數(shù)值開中斷等待中斷,并判斷中斷次數(shù)CLISTIMOVCX,1001二月2023127設(shè)置中斷向量使用DOS功能調(diào)用修改或?qū)懭?AH號中斷向量;以下為25H號DOS功能調(diào)用直接寫中斷向量的程序段:MOVAH,25H

;DOS調(diào)用的功能號送入AH

MOVAL,0AH

;中斷類型號送入AL

MOVAX,SEGINT_PROMOVDS,AXMOVDX,OFFSETINT_PRO

;中斷向量置于DS:DX中INT21H01二月20231288259A初始化單片8259A使用,16位系統(tǒng),只有一個(gè)中斷源;初始化需設(shè)置:ICW1、ICW2、ICW4、OCW1;;寫OCW1,僅允許IR2的中斷請求

MOVAL,11111011BOUT21H,AL;寫ICW1,邊沿觸發(fā),單片使用,需要ICW4MOVAL,00010011BOUT20H,AL;寫ICW2,中斷類型號0A的高5位——08HMOVAL,08HOUT21H,AL;寫ICW4,設(shè)置為16位工作系統(tǒng)

MOVAL,01HOUT21H,AL01二月2023129中斷次數(shù)的判斷等待中斷的同時(shí)判斷中斷次數(shù)

LL:NOP JCXZEXIT

JMPLLEXIT:

MOVAL,0FFHOUT21H,AL HLT01二月2023130中斷服務(wù)程序開始保護(hù)寄存器顯示字符串,并記錄中斷次數(shù)恢復(fù)寄存器發(fā)EOI命令開中斷IRET使用了寄存器:DS、DX、AX;CX是主程序與中斷服務(wù)程序之間的傳遞參數(shù)普通EOI命令:MOVAL,20HOUT20H,AL需要保護(hù)的寄存器有:DS、DX、AXSTI數(shù)據(jù)段的定義:DATASEGMENTMESSDB‘A8259AINTERRUPT!’,10,13,‘$’DATAENDS或特殊EOI命令:MOVAL,62HOUT20H,AL以允許下一次該中斷的響應(yīng)01二月2023131顯示字符串并記錄中斷次數(shù)調(diào)用9號DOS功能,顯示字符串;

MOVAX,DATAMOVDS,AXMOVDX,OFFSETMESSMOVAH,09HINT21H;顯示字符串記錄中斷次數(shù):預(yù)置計(jì)數(shù)次數(shù)10;

DECCX;計(jì)數(shù)器減101二月2023132寄存器的保護(hù)與恢復(fù)寄存器的保護(hù):

PUSHDSPUSHDXPUSHAX寄存器的恢復(fù):

POPAXPOPDXPOPDS注意:寄存器的入出棧順序相反!01二月2023133源程序清單(1/5)DATA1SEGMENTMESSDB‘A8259AINTERRUPT!’,10,13,‘$’DATA1ENDSCODE1SEGMENT ASSUMECS:CODE1,DS:DATA1INT_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論