




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第七章輸入輸出接口7.1輸入輸出接口基礎(chǔ)7.2中斷系統(tǒng)7.3DMA傳送和DMA控制器82377.4主機板上的計時計數(shù)邏輯7 輸入輸出(I/O)接口運算器控制器CPU存儲器輸出設(shè)備I/O接口輸入設(shè)備A.BUSD.BUSC.BUSCPUI/O設(shè)備I/O接口7 輸入輸出(I/O)接口基本概念I(lǐng)/O接口: 是介于CPU和I/O設(shè)備之間,把CPU和I/O設(shè)備連接起來,是CPU和I/O設(shè)備的橋梁。 CPU和I/O設(shè)備通過I/O接口進行信息交換,從而協(xié)調(diào)一致工作。7 輸入輸出(I/O)接口總線控制邏輯ROMRAM協(xié)處理器RT/COMSRAMI/O接口板組鍵盤磁盤驅(qū)動器網(wǎng)卡CRT顯示器打印機微處理器MODEM鼠標主機板系統(tǒng)總線微機系統(tǒng)硬件組成圖7 輸入輸出(I/O)接口在主機板上,與I/O接口有關(guān)的邏輯包括:
1.支持訪問擴充板上存儲器操作的邏輯2.支持執(zhí)行輸入輸出指令的邏輯3.支持外部中斷方式的以8259為核心的中斷控制邏輯4.支持存儲器直接讀寫(DMA)操作的以8237為核心組成的DMA控制邏輯這些邏輯是總線控制邏輯組成部分。7 輸入輸出(I/O)接口CPUI/O設(shè)備總線控制邏輯I/O插槽I/O接口I/O接口板組這些邏輯,一側(cè)與CPU相連,受CPU控制和管理,另一側(cè)形成系統(tǒng)總線接到擴充插槽的節(jié)點上,與I/O接口板組相連。注:I/O接口在主機板上。7.1輸入輸出(I/O)接口基礎(chǔ)I/O接口的幾個基本問題:數(shù)據(jù)輸入輸出的基本方式2.I/O接口的結(jié)構(gòu)3.I/O指令要求的接口邏輯7.1.1輸入輸出(I/O)的基本方式基本概念:I/O端口:CPUI/O設(shè)備寄存器寄存器寄存器寄存器…….I/O接口CPUI/O設(shè)備I/O接口7.1.1輸入輸出(I/O)的基本方式CPUI/O設(shè)備I/O端口I/O端口I/O端口I/O端口…….I/O接口每一個I/O端口都是一個8位寄存器,都有唯一的一個地址(I/O地址范圍0000~03FF即0~1023,這與內(nèi)存物理地址相似),CPU通過I/O端口與I/O外設(shè)進行通信。CPU可以從I/O端口讀入數(shù)據(jù)(IN指令),也可以向I/O端口輸出數(shù)據(jù)(OUT指令)。0000H0001H03FFH7.1.1CPU與I/O設(shè)備通信通信過程輸入過程I/O外設(shè)把數(shù)據(jù)送到I/O接口I/O接口通過端口把數(shù)據(jù)送進CPU輸出過程CPU把數(shù)據(jù)送到I/O接口I/O外設(shè)從I/O接口中的端口中取數(shù)據(jù)可見,CPU和I/O接口之間通信是通過I/O端口進行的。7.1.1輸入輸出(I/O)的基本方式CPUI/O設(shè)備AX/ALI/O端口I/O端口I/O端口I/O端口…….I/O接口格式:INAL/AX,SRC功能:CPU從指定端口讀入數(shù)據(jù),送到AL或AX7.1.1輸入輸出(I/O)的基本方式格式:INAL/AX,SRC;不影響標志位功能:CPU從端口(寄存器)讀入數(shù)據(jù),送到AL或AXSRC有兩種尋址方式:直接尋址。SRC為端口地址,其范圍為00H~FFH(0~255)
如: INAL,28H INAX,0F0H(AL)([28H])(AX)([F1H]:[F0H])2.間接尋址。當端口地址大于FFH,即>255時候,要通過寄存器DX進行數(shù)據(jù)傳遞。 如: MOVDX,100H;100H=256>255 INAX, DX(AX)([101H]:[100H])7.1.1輸入輸出(I/O)的基本方式CPUI/O設(shè)備AX/ALI/O端口I/O端口I/O端口I/O端口…….I/O接口格式:OUTDST,AL/AX功能:CPU把AL或AX中的數(shù)據(jù)送到指定端口7.1.1輸入輸出(I/O)的基本方式格式:OUTDST,AL/AX;不影響標志位功能:CPU從AL或AX輸出數(shù)據(jù),送到端口(即寄存器里)DST有兩種尋址方式:直接尋址。DST為端口地址,其范圍為00H~FFH(0~255)
如: OUT28H,AL OUTF0H,AX([28H])(AL)
([F1H]:[F0H])(AX)
2.間接尋址。當端口地址大于FFH,即>255時候,要通過寄存器DX進行數(shù)據(jù)傳遞。 如: MOVDX,03FDH;3FDH=1021>255 OUTDX,AX ([3FEH]:[3FDH])(AX)
7.1.1輸入輸出(I/O)的基本方式輸入輸出同步問題CPU與外設(shè)之間,如何向?qū)Ψ教峁┞?lián)絡(luò)信息,并以什么方式響應和處理對方提供的聯(lián)絡(luò)信息。當多個外設(shè)同時要求與CPU交換信息時,以什么策略解決多個外設(shè)傳輸請求。
7.1.1數(shù)據(jù)輸入輸出基本方式CPU與I/O設(shè)備之間傳輸信息的三種基本方式:程序直接控制傳送方式(查詢方式)程序中斷控制傳送方式(中斷方式)存儲器直接存取方式(DMA方式)CPUI/O設(shè)備I/O接口可實現(xiàn)CPU與I/O設(shè)備之間數(shù)據(jù)信息、狀態(tài)信息和命令信息的傳輸。程序直接控制傳送方式(查詢方式)
查詢方式查詢方式是CPU在向接口輸入或輸出數(shù)據(jù)時,主動去檢查I/O外設(shè)是否“準備好”,只有當確認I/O外設(shè)已具備傳輸條件后,才進行數(shù)據(jù)交換。輸入狀態(tài)信息準備好了?輸入數(shù)據(jù)查詢輸入方式流程圖NY狀態(tài)端口地址:STATUSPORT數(shù)據(jù)端口地址:DATAPORT狀態(tài)口的D7位為接口“準備好”位AGAIN:INAL,STATUSPORTANDAL,80H
JZAGAININAL,DATAPORT程序直接控制傳送方式(查詢方式)
查詢方式顯然,在查詢方式下,CPU需要花費許多時間來查詢外設(shè)的狀態(tài),并等外設(shè)進行數(shù)據(jù)傳輸?shù)臏蕚洹?/p>
優(yōu)點:不需要增加額外的硬件電路,易于實現(xiàn)。
缺點:CPU工作效率很低程序中斷控制方式(中斷方式)程序中斷:指主機在運行程序時,出現(xiàn)了特殊情況,暫時停止執(zhí)行正在運行的程序,轉(zhuǎn)到另一段處理特殊情況的程序(中斷處理子程序),等特殊情況處理程序執(zhí)行完后,返回到被暫時停止的程序接著運行。內(nèi)部中斷(軟件中斷)外部中斷(硬件中斷)特殊情況就是中斷。中斷中斷處理子程序中斷請求主機運行程序類似于主程序調(diào)用子程序程序中斷控制方式(中斷方式)
程序中斷控制方式:
借助于CPU響應外中斷的能力,實現(xiàn)輸入輸出的控制。
當外設(shè)需要向CPU傳輸數(shù)據(jù)或者從CPU接收數(shù)據(jù)時候,首先向 CPU產(chǎn)生一個中斷請求,然后CPU相應此請求,從而執(zhí)行中斷處理子程序,進行數(shù)據(jù)的傳輸。當然,數(shù)據(jù)的傳輸仍然是靠IN或者OUT指令來完成的。程序中斷控制方式(中斷方式)
程序中斷控制方式特點:1.雖然程序中斷功能參與了控制,但數(shù)據(jù)的傳輸仍然要靠IN或者OUT指令來完成。2.外設(shè)要求與 CPU傳輸數(shù)據(jù)的狀態(tài)信息,不是用指令輸入和測試的,而是從CPU的中斷請求輸入端直接加入的。中斷控制輸入輸出是靠硬件和軟件相配合來實現(xiàn)的。不需要進行查詢,避免了用指令查詢外設(shè)狀態(tài)造成的大量時間浪費提高了CPU的時間利用率。需要有專門的接口邏輯電路——中斷控制器。程序中斷控制方式(中斷方式)
程序中斷控制方式:在外設(shè)沒有準備好時候,CPU可以運行與數(shù)據(jù)傳輸無關(guān)的其他指令。外設(shè)準備好后,主動向CPU請求中斷, CPU響應這一請求,暫停正在運行的程序而運行與外設(shè)進行數(shù)據(jù)傳輸?shù)闹袛嗵幚沓绦颉S纱丝梢?,中斷方式是CPU和外設(shè)進行I/O傳輸?shù)挠行Х绞?,它可以避免因反復查詢外設(shè)的狀態(tài)而浪費時間,提高了CPU的工作效率。存儲器直接存取方式(DMA方式)
DMA:在外設(shè)和存儲器(內(nèi)存)之間開辟直接的數(shù)據(jù)傳輸通道,數(shù)據(jù)傳輸不靠執(zhí)行I/O指令,數(shù)據(jù)不經(jīng)過CPU的任何寄存器,不破壞任何寄存器原有內(nèi)容,在存儲器與外設(shè)之間的通路上直接傳輸數(shù)據(jù)。這種I/O方式的實現(xiàn)主要靠硬件的功能。在數(shù)據(jù)傳輸時沒有程序和指令的介入,但在數(shù)據(jù)傳輸前的準備工作,如傳輸涉及的存儲區(qū)的開始地址、要傳輸?shù)淖止?jié)數(shù)等參數(shù),還是要用程序指令來實現(xiàn)的。適合大批量的數(shù)據(jù)傳輸。存儲器I/O接口I/O外設(shè)總線控制邏輯DMA控制器CPU系統(tǒng)總線7.1.2
輸入輸出接口的基本結(jié)構(gòu)I/O接口包含硬件主機板上的接口邏輯;
系統(tǒng)總線;具體外設(shè)的接口邏輯。總線控制邏輯ROMRAM協(xié)處理器RT/COMSRAMI/O接口板組鍵盤磁盤驅(qū)動器網(wǎng)卡CRT顯示器打印機微處理器MODEM鼠標主機板系統(tǒng)總線7.1.2
輸入輸出接口的基本結(jié)構(gòu)2.IBMPC系統(tǒng)提供的接口資源IBMPC/XT及其兼容機的基本配置包括:主機箱、鍵盤、CRT顯示器、打印機和軟、硬盤機。IBMPC系統(tǒng)為I/O接口提供的資源:
1.硬件接口資源 2.軟件接口資源7.1.2
輸入輸出接口的基本結(jié)構(gòu)IBMPC系統(tǒng)為I/O接口提供的硬件資源:
(1)在擴充插槽上提供了系統(tǒng)級總線;(2)主機板上有鍵盤接口邏輯和揚聲器接口邏輯;(3)主機板上有以兩片8259為核心組成的中斷控制邏輯;(4)主機板上以兩片8237DMA控制器為核心組成的DMA傳送控制邏輯;(5)一片8254定時/計數(shù)器芯片;(6)基本配置的I/O接口卡:顯示器接口;兩個并行口;兩個RS232串行口;磁盤驅(qū)動器接口。7.1.2
輸入輸出接口的基本結(jié)構(gòu)IBMPC系統(tǒng)為I/O接口提供的軟件資源: 1.DOS功能調(diào)用 2.BIOS功能調(diào)用7.1.2
輸入輸出接口的基本結(jié)構(gòu)幾種常用的系統(tǒng)總線:
1.
最早的是IBMPC/XT系統(tǒng)總線。
2.ISA(industrialstandardarchitecture)總線標準是IBM公司1984年為推出PC/AT機而建立的系統(tǒng)總線標準,所以也叫AT總線。 3.EISA總線是1988年由Compaq等9家公司聯(lián)合推出的總線標準。它是在ISA總線的基礎(chǔ)上使用雙層插座,在原來ISA總線的98條信號線上又增加了98條信號線,也就是在兩條ISA信號線之間添加一條EISA信號線。 4.VESA(videoelectronicsstandardassociation)總線是1992年由60家附件卡制造商聯(lián)合推出的一種局部總線,簡稱為VL(VESAlocalbus)總線。7.1.2
輸入輸出接口的基本結(jié)構(gòu)幾種常用的系統(tǒng)總線:
5.PCI(peripheralcomponentinterconnect)總線是當前最流行的總線之一,它是由Intel公司推出的一種局部總線。它定義了32位數(shù)據(jù)總線,且可擴展為64位。PCI總線主板插槽的體積比原ISA總線插槽還小,其功能比VESA、ISA有極大的改善,支持突發(fā)讀寫操作,最大傳輸速率可達132MB/s,可同時支持多組外圍設(shè)備。PCI局部總線不能兼容現(xiàn)有的ISA、EISA、MCA(microchannelarchitecture)總線,但它不受制于處理器,是基于奔騰等新一代微處理器而發(fā)展的總線。 6.CompactPCI的意思是“堅實的PCI”,是當今第一個采用無源總線底板結(jié)構(gòu)的PCI系統(tǒng),是PCI總線的電氣和軟件標準加歐式卡的工業(yè)組裝標準,是當今最新的一種工業(yè)計算機標準。7.1.5
IBMPC/AT機的I/O端口地址分配I/O端口(類似于內(nèi)存單元)是存在于I/O接口中的8位的數(shù)據(jù)寄存器。每一個I/O端口都有一個唯一的I/O端口地址。I/O端口與內(nèi)存單元的編址可有兩種方式:
1.統(tǒng)一編址 2.單獨編址(常用此種)單獨編址: 1.內(nèi)存單元的編址:00000H~FFFFFH 2.I/O端口編址:0000H~03FFH(0~1023)7.1.5
IBMPC/AT機的I/O端口地址分配用戶可使用的I/O地址有:100H~1EFH220H~26FH280H~2AFH300H~35FH
PC/AT系統(tǒng)I/O端口地址分配:P349,表7.27.2中斷系統(tǒng)主講內(nèi)容:中斷功能外部中斷和8259中斷控制器應用中斷功能7.2中斷系統(tǒng)中斷功能-主講內(nèi)容:中斷種類和中斷類型號中斷向量表實模式下中斷響應和返回操作過程7.2中斷系統(tǒng)7.2.1微處理器的中斷功能中斷:指CPU暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行處理中斷事件的中斷服務程序,待執(zhí)行完中斷服務程序再返回到原來被中斷的程序繼續(xù)執(zhí)行。中斷源:引起中斷的事件7.2.1微處理器的中斷功能1.中斷的種類和中斷類型號(1)外部硬中斷
微處理器外部事件發(fā)生,產(chǎn)生中斷請求信號,中斷請求信號再通過微處理器芯片上的接受中斷請求信號的引腳加入微處理器而出現(xiàn)的中斷。7.2.1微處理器的中斷功能CPUINTRNMI不可屏蔽中斷可屏蔽中斷可屏蔽中斷(INTR):CPU中標志寄存器中的IF位對該中斷有控制作用。 1.IF=1,CPU將響應可屏蔽中斷的中斷請求。(STI) 2.IF=0,CPU將不響應可屏蔽中斷的中斷請求。(CLI)7.2.1微處理器的中斷功能
可屏蔽中斷(INTR)通常用于: 1.常規(guī)外部設(shè)備-鍵盤、打印機、磁盤、串口等 2.自己開發(fā)的接口設(shè)備或?qū)S媒涌?。本?jié)主要討論的可屏蔽中斷(INTR)操作及應用。不可屏蔽中斷(NMI):CPU中標志寄存器中的IF位對該中斷沒有控制作用,CPU對不可屏蔽中斷請求的響應是無條件的,一旦CPU查詢到NMI有請求,就立即響應。7.2.1微處理器的中斷功能
NMI在外部中斷源中的優(yōu)先級是最高的,通常用于處理系統(tǒng)故障: 主機板上RAM奇偶校驗錯 擴展槽中I/O通道錯 電源故障等。內(nèi)部中斷:可分為軟中斷和異常中斷兩類。軟中斷:是中斷指令I(lǐng)NT執(zhí)行時所產(chǎn)生的中斷。軟中斷和其它中斷一樣,發(fā)生軟中斷時,將轉(zhuǎn)去執(zhí)行中斷服務子程序。不過,這樣的子程序不是用戶自己編寫的子程序,而是由系統(tǒng)軟件(主要是操作系統(tǒng))提供的子程序。
INT指令實際上就是在編寫匯編語言程序時,用軟中斷來實現(xiàn)用戶程序調(diào)用系統(tǒng)提供的子程序。7.2.1微處理器的中斷功能異常中斷:可分為0、1、3、4號中斷。0號中斷:-被除零中斷
當CPU執(zhí)行除運算時,若出現(xiàn)除數(shù)為0,則0號中斷。7.2.1微處理器的中斷功能1號中斷:-單步中斷
CUP執(zhí)行一條指令前,若檢測到PSW的TF=1,則在該指令執(zhí)行之后立即停止,引起1號中斷,該中斷支持程序但不跟蹤的功能。異常中斷:可分為0、1、3、4號中斷。7.2.1微處理器的中斷功能3號中斷:-斷點中斷
該中斷主要供調(diào)試程序使用。通常調(diào)試程序時,把程序按需分成若干段,每段設(shè)置一個斷點。當CPU執(zhí)行到斷點時產(chǎn)生中斷,供程序員檢查各寄存器及有關(guān)存儲單元的內(nèi)容。4號中斷:-益處中斷
在執(zhí)行單字節(jié)指令I(lǐng)NTO時,如果CPU檢測到溢出標志位,則產(chǎn)生4號中斷,進行溢出處理。OF=0時,不產(chǎn)生中斷。在微處理器中,不同的中斷是以中斷類型號來區(qū)別的。每種中斷都有固定的中斷類型號。
7.2.1中斷類型號中斷類型號: 對中斷的類型進行編號。中斷類型號的范圍為0~255(00H~FFH),即最多有256個。
7.2.1中斷類型號中斷外部硬中斷內(nèi)部中斷可屏蔽中斷不可屏蔽中斷異常中斷軟中斷提供中斷類型號:外部中斷控制邏輯提供中斷類型號:2由指令本身提供
7.2.1中斷類型號中斷類型號的作用:在中斷發(fā)生時,借助中斷類型號,能使程序轉(zhuǎn)入相對應的中斷服務子程序。7.2.1微處理器的中斷功能2.中斷向量表7.2.1微處理器的中斷功能每種中斷都有自己相應的中斷服務子程序。CPU響應任何中斷,就要進入相應的中斷服務子程序中,執(zhí)行子程序的程序,來處理中斷。中斷處理子程序中斷請求主機運行程序2.中斷向量表7.2.1微處理器的中斷功能當響應中斷后,系統(tǒng)怎樣進入中斷服務子程序?
獲取中斷服務子程序的入口地址。(即首地址—段地址和偏移地址)
如何獲取入口地址?
1.中斷類型號 2.中斷向量表(實模式下)7.2.1微處理器的中斷功能什么是實模式?
CPU的工作模式有三種: 1.實地址模式(實模式) 2.保護模式 3.虛地址模式任何情況下,CPU每次加電或復位后,都從實模式開始工作。實模式:是最基本的工作模式,8086/8688只能工作于實模式。實模式:
只允許CPU尋址空間是內(nèi)存的第一個1MB存儲空間。7.2.1中斷向量表
中斷向量:即中斷服務子程序的入口地址,包括段地址(置入CS)和偏移地址(置入IP)。低字節(jié)高字節(jié)低字節(jié)高字節(jié)低字,送入IP高字,送入CS假如:某個中斷服務子程序的入口地址----2856:0255H55H02H56H28H偏移地址段地址注:每種中斷都有入口地址,所以每種中斷都有一個中斷向量。7.2.1微處理器的中斷功能
中斷向量表:由中斷向量按照中斷類型號的順序組成的表,就是中斷類型表。在實模式下,存儲器地址最低的1024單元,即地址0000H~03FFH,用于存儲各種中斷服務的入口地址。從0000H開始,每4個內(nèi)存單元存放一個中斷服務子程序的入口地址(中斷向量)。前兩個內(nèi)存單元的16位是段內(nèi)偏移地址,后兩個內(nèi)存單元的16位是段地址。當要執(zhí)行中斷服務子程序時候,偏移地址送入IP中,段地址送入CS中。7.2.1微處理器的中斷功能中斷類型號是中斷向量表的索引中斷類型號*4---該中斷的中斷向量在中斷向量表中的開始位置。中斷類型號與中斷向量表的關(guān)系例如:中斷類型號為1,則其中斷向量在中斷向量表中的開始位置:0004H其中斷向量在中斷向量表中的位置:0004H~0007H7.2.1微處理器的中斷功能中斷類型號與中斷向量表的關(guān)系例如:中斷類型號為1,則其中斷向量在中斷向量表中的開始位置:00004H其中斷向量在中斷向量表中的位置:00004H~00007H55H02H56H28H偏移地址段地址存儲器00004H00005H00006H00007H物理地址單步中斷在中斷向量表中的位置注-2856:0255H是單步中斷的中斷向量2.中斷向量表7.2.1微處理器的中斷功能7.2.1微處理器的中斷功能中斷向量在中斷向量表中的位置是不能改變的。在中斷向量表中,第一個中斷向量,肯定是類型號為0的中斷,第二個中斷向量,肯定是類型號為1的中斷。中斷向量的值是可以改變的。假如:類型號為1個中斷服務子程序的入口地址----2856:0255H,如果修改了其中的服務子程序的入口地址為-------2200:1244H,則需要重新裝入新的入口地址。55H02H56H28H送入IP送入CS00004H00005H00006H00007H44H12H00H22H送入IP送入CS00004H00005H00006H00007H中斷過程
從引起中斷到中斷結(jié)束,共有三個過程: 1.中斷響應過程 2.中斷處理過程 3.中斷返回過程7.2.1實模式下的中斷響應3.實模式下的中斷響應中斷響應過程:從提出中斷請求到CPU進入中斷服務子程序為止,所經(jīng)過的過程成為中斷響應過程。其對可屏蔽中斷,不可屏蔽中斷和內(nèi)部中斷是不盡相同的。7.2.1微處理器的中斷功能在IF位為1(即開中斷)情況下,從INTR端加入中斷請求信號開始,到進入中斷服務程序為止所經(jīng)過的一系列操作,稱為可屏蔽中斷的響應過程。一可屏蔽中斷的響應操作從CPU中止現(xiàn)行程序轉(zhuǎn)中斷服務程序這一過程,用兩個總線周期。
第一個響應周期:使AD15-AD0、/S7、A19/S6-A16/S3懸空。第二個響應周期:外設(shè)向數(shù)據(jù)總線上輸送一個字節(jié)的中斷類型號。中斷響應周期中斷響應周期7.2.1微處理器的中斷功能可屏蔽中斷的響應過程:①等待當前指令(CPU正執(zhí)行的其它指令)結(jié)束,然后進入中斷響應周期。②從微處理器外部的中斷控制邏輯獲得中斷類型號。③當前的PSW、CS和IP的內(nèi)容依次壓入堆棧。(保護斷點的地址和狀態(tài))④清除PSW中的IF位和TF位為0。⑤把中斷服務程序的入口地址置入IP和CS。把地址為4*n和4*n+1兩個單元的16位作為中斷服務子程序入口地址的偏移地址送入IP中,把4*n+2和4*n+3的兩個作為中斷服務子程序入口地址的段地址送入CS中。中斷向量假如可屏蔽中斷的中斷類型號為:0EH,那么,那么把1244H送入IP中,把2200H送入CS中。44H12H00H22H送入IP送入CS0EH*40EH*4+10EH*4+20EH*4+3中斷傳送流程二、不可屏蔽中斷的響應過程不可屏蔽的中斷請求在CPU中的NMI引腳加入。CPU對它的響應不受IF位的控制(但可以在外部邏輯中對加入NMI端的信號進行控制)。
7.2.1微處理器的中斷功能不可屏蔽中斷的響應過程為:
1.等待當前指令結(jié)束,然后進入中斷響應周期。2.將當前的PSW、CS和IP的內(nèi)容依次壓入堆棧3.清除PSW中的IF位和TF位為0。4.把中斷服務程序的入口地址置入IP和CS。把地址為4*2和4*2+1兩個單元的16位作為中斷服務子程序入口地址的偏移地址送入IP中,把4*2+2和4*2+3的兩個作為中斷服務子程序入口地址的段地址送入CS中。7.2.1微處理器的中斷功能三、內(nèi)部中斷的響應操作所有的內(nèi)部中斷都有以下共同特點:①中斷類型號要么是指令碼給定的,要么是處理硬件決定的,都不需要從外部邏輯輸入。②沒有包括信號的響應周期。③不受IF位的控制,但單步中斷受TF位控制。中斷優(yōu)先級:除數(shù)為0中斷,INTn和INTO指令的優(yōu)先級最高,NMI次之,INTR再次,單步中斷優(yōu)先級最低。④除單步中斷之外,其它內(nèi)部中斷都比外部中斷優(yōu)先響應。7.2.1微處理器的中斷功能三、內(nèi)部中斷的響應操作1.將當前的PSW、CS和IP的內(nèi)容依次壓入堆棧。(保護斷點的地址和狀態(tài))2.清除PSW中的IF位和TF位為0。3.把中斷服務程序的入口地址置入IP和CS。把地址為4*n和4*n+1兩個單元的16位作為中斷服務子程序入口地址的偏移地址送入IP中,把4*n+2和4*n+3的兩個作為中斷服務子程序入口地址的段地址送入CS中。思考可屏蔽中斷與非可屏蔽中斷的響應過程有什么不同?可屏蔽中斷與內(nèi)部中斷的響應過程有什么不同?非可屏蔽中斷省去第2步內(nèi)部中斷省去第1、2步清除TF位當TF=1時,每執(zhí)行完一條指令時引起一次單步中斷,在中斷服務子程序中顯示各寄存器的內(nèi)容和狀態(tài)字信息。如果不清除TF位,當進入中斷服務子程序時,將不斷的引起中斷,每次中斷都執(zhí)行同一條指令而不能返回。只有清除TF位才能避免這種現(xiàn)象的發(fā)生。在中斷服務子程序期間,TF為0,到IRET指令恢復PSW值時候,才恢復TF位。7.2.1微處理器的中斷功能中斷返回
無論內(nèi)部中斷還是外部中斷,都是由中斷服務子程序的末尾設(shè)置IRET指令實現(xiàn)的。IRET指令的操作時恢復斷點處的地址和PSW的內(nèi)容,即依次從堆棧彈出保存的IP、CS和PSW值,使被中斷了的程序繼續(xù)執(zhí)行7.2.2外中斷控制邏輯和中斷控制芯片8529A外部輸入輸出設(shè)備利用中斷機制與CPU交換信息,實際上就是利用外部可屏蔽中斷。對CPU來說,與可屏蔽中斷有關(guān)的兩個引腳是INTR和INTA。INTR---中斷請求信號引腳INTA---中斷響應信號引腳CPU外設(shè)I/O接口INTRINTA7.2.2外中斷控制邏輯和8529A的關(guān)系80286以及以后的微機系統(tǒng)中,用兩片8259A組成了可屏蔽中斷的中斷控制邏輯。I/O接口板組I/O外設(shè)總線控制邏輯CPUI/O接口在主機板上,總線控制邏輯包括:
1.支持訪問擴充板上存儲器操作的邏輯2.支持執(zhí)行輸入輸出指令的邏輯3.支持外部中斷方式的以8259為核心的中斷控制邏輯4.支持存儲器直接讀寫(DMA)操作的以8237為核心組成的DMA控制邏輯7.2.2外中斷控制邏輯和中斷控制芯片8529ACPUINTRINTA7.2.2外中斷控制邏輯和中斷控制芯片8529A80286及其以后的微機系統(tǒng)中,用兩片8259A級聯(lián)組成了可屏蔽中斷的外部控制邏輯。上面的是主片,下面的是從片。主8259A的INT端(輸出)與CPU的中斷請求輸入端INTR相接,而從片的INT端與主片的IR2端相連。主片和從片的INTA端都和CPU的INTA端相連。7.2.2外中斷控制邏輯和中斷控制芯片8529A每片8259A有8個輸入端IR0~IR7,可分別接受8個外部的中斷請求,兩片級聯(lián),可以接受15級外部的中斷請求。同時標出了對應的中斷類型號: 主片:08H~0FH 從片:A0H~A7H每個8259A分配兩個端口:
主片8259A:20H和21H, 從片8259A:A0H和A1H。在圖的最左側(cè),給出了系統(tǒng)常規(guī)配置下對各個中斷請求端的應用分配。通常,自己開發(fā)的接口應用那些標有‘保留’的請求端。1.8259的外部引腳圖
7.2.2外中斷控制邏輯和中斷控制芯片8529ACSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDVCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A1)數(shù)據(jù)總線D7~D0
雙向,用于CPU和8259A之間的數(shù)據(jù)通信。2)讀寫控制
RD,讀信號,輸入,低電平有效。WR,寫信號,輸入,低電平有效CS,片選信號,輸入,低電平有效。有效時,該8259A芯片被選中A0,端口選中信號,輸入。每片8259A均分配兩個端口,如20H和21H兩個端口。 當A0=0時,選中偶地址端口; 當A0=1時,選中奇地址端口。1.8259的外部引腳圖
7.2.2外中斷控制邏輯和中斷控制芯片8529ACSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDVCCA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A3)級聯(lián)引腳CAS0~CAS2
8259A可工作于多片級聯(lián)方式。級聯(lián)引腳是級聯(lián)信號線。主片的級聯(lián)引腳是輸出從片的級聯(lián)引腳是輸入。SP/EN:1.當8259A工作在非緩沖模式下,用作輸入端,用于區(qū)別主片與從片。在多片級聯(lián)中,主片的SP/EN接高電平,表示是主片;而從片的接低電平,表示是從片。2.當8259A工作在緩沖模式下,用作輸出端,控制緩沖器的接受和發(fā)送。1.8259的外部引腳圖7.2.2外中斷控制邏輯和中斷控制芯片8529AINTAINT8259A4)中斷信號INT:中斷請求輸出端,與CPU的INTR輸入端相連;INTA:中斷響應輸入端,與CPU的INRA輸出端相連。CPUINTRINTAIR0~IR7外部設(shè)備IR0~IR7:是外設(shè)加入8259A的中斷請求輸入端。過程:外設(shè) 8259A CPU 8259A1.8259的內(nèi)部邏輯結(jié)構(gòu)
7.2.2外中斷控制邏輯和中斷控制芯片8529A1.8259的內(nèi)部邏輯結(jié)構(gòu)
7.2.2外中斷控制邏輯和中斷控制芯片8529A其內(nèi)部邏輯結(jié)構(gòu)主要由下面幾個部分組成: 1.中斷請求寄存器:IRR 2.中斷服務寄存器:ISR 3.中斷優(yōu)先級分析器:PR 4.初始化命令字:ICW1~ICW4 5.操作命令字:OCW1~OCW3 6.讀寫控制邏輯 7.級聯(lián)緩沖器/比較器以上所有的寄存器(除了優(yōu)先級分析器外)和命令字,均是8bit的寄存器。 1.8259的內(nèi)部邏輯結(jié)構(gòu)
7.2.2外中斷控制邏輯和中斷控制芯片8529A1.中斷請求寄存器:IRR IRR是一個8bit的寄存器,用于記錄外部中斷請求。D7D6D5D4D3D2D1D0 D0~D7,每一位分別與外部中斷請求信號IR0~IR7一一對應。 當IRi(i=0~7)有中斷請求時,IRR中的相應位置‘1’。例如:某時刻,當IR3有中斷請求時,D3就被置‘1’, (IRR)=****1***B1.訓練
7.2.2外中斷控制邏輯和中斷控制芯片8529AD7D6D5D4D3D2D1D0某時刻,IR1,IR2,IR5同時有中斷請求時,問IRR里的內(nèi)容是多少? 當IR1,IR2,IR5有中斷請求時 D1,D2,D5就被置‘1’(IRR)=**1**11*B1.8259的內(nèi)部邏輯結(jié)構(gòu)
7.2.2外中斷控制邏輯和中斷控制芯片8529A2.中斷服務寄存器:ISR是一個8bit的寄存器,用于存放當前正在被CPU服務的中斷請求的標志。D7D6D5D4D3D2D1D0D0~D7,每一位分別與外部中斷請求信號IR0~IR7對應。當CPU正在響應IRi(i=0~7)時,其相應的Di就被置‘1’。1.8259的內(nèi)部邏輯結(jié)構(gòu)7.2.2外中斷控制邏輯和中斷控制芯片8529A2.中斷服務寄存器:ISR例如:當CPU正在響應IR3的中斷請求,則響應D3被置‘1’。此時,(ISR)=****1***B當然,如果此時有個比D3優(yōu)先級更高的中斷請求(如IR5),則就有了中斷嵌套。CPU就暫時停止處理IR3的中斷請求,轉(zhuǎn)而響應IR5,此時D5被置‘1’。所以,此時,有兩個:D3=1和D5=1。
(ISR)=**1*1***B1.8259的內(nèi)部邏輯結(jié)構(gòu)7.2.2外中斷控制邏輯和中斷控制芯片8529A3.中斷優(yōu)先級分析器:PR當只有一個中斷請求時,8529A就把該中斷請求送入CPU;當有多個中斷請求時候,就需要對各個中斷請求的優(yōu)先級進行判別,從而把優(yōu)先級最高的中斷請求送入CPU中。PR-用來確定存放在IRR中各個中斷請求信號的對應中斷源的優(yōu)先級,并對他們進行排隊判優(yōu),以便選出當前中斷請求優(yōu)先級最高的中斷請求,并把它送入CPU中。1.8259的內(nèi)部邏輯結(jié)構(gòu)
7.2.2外中斷控制邏輯和中斷控制芯片8529A4.中斷屏蔽寄存器:IMR(OCW1)是一個8bit的寄存器,用于存放IR0~IR7的中斷屏蔽標志。D7D6D5D4D3D2D1D0D0~D7,每一位分別與外部中斷請求信號IR0~IR7對應。用于控制IRi(i=0~7)的請求是否被禁止。 當Di=1,則對應的IRi請求被禁止。 當Di=0,則對應的IRi請求被允許。通過指令來對D0~D7進行置0或者置1的。1.8259的內(nèi)部邏輯結(jié)構(gòu)7.2.2外中斷控制邏輯和中斷控制芯片8529A4.中斷屏蔽寄存器:IMR(OCW1)例如:當置D3=1時,即(IMR)=****1***B則屏蔽掉了IR3的中斷請求,無論IR3怎么中斷請求,其中的請求都不會進入8259A,所以IR3的中斷請求在沒有進入CPU之前就被屏蔽掉了。4.訓練
7.2.2外中斷控制邏輯和中斷控制芯片8529AD7D6D5D4D3D2D1D0如果想屏蔽掉了IR0,IR1,IR4的中斷請求,問應設(shè)置IMR的內(nèi)容是多少? 置IR0,IR1,IR4相應位D0,D1,D4為‘1’(IMR)=***1**11B7.2.2外中斷控制邏輯和中斷控制芯片8529A4.中斷屏蔽寄存器:IMR(OCW1)因此,對于可屏蔽中斷,有兩級的中斷屏蔽。8259A和CPU兩級。CPU外部中斷8259AINTRINTAIFIMR第一級注意:1、通過IMR關(guān)閉中斷時候,相應位Di=1;而通過IF關(guān)閉中斷時,IF=02、通過IMR只能Di=1來關(guān)閉某些級的外部中斷,而IF=0,就使CPU不響應所有的外部可屏蔽中斷第二級1.8259的內(nèi)部邏輯結(jié)構(gòu)
7.2.2外中斷控制邏輯和中斷控制芯片8529A5.初始化命令字:ICW1~ICW4
每一個都是8bit的寄存器,CPU通過OUT指令,把一組(3個—ICW1~ICW3或者4個—ICW1~ICW4)8bit的數(shù)據(jù)寫入ICW1~ICW4,從而來設(shè)置8259A的工作方式。D7D6D5D4D3D2D1D01.8259的內(nèi)部邏輯結(jié)構(gòu)
7.2.2外中斷控制邏輯和中斷控制芯片8529A6.操作命令字:OCW1~OCW3
每一個都是8bit的寄存器,CPU通過OUT指令,來設(shè)置8259A的中斷結(jié)束方式等。D7D6D5D4D3D2D1D0
7.2.2外中斷控制邏輯和中斷控制芯片8529A2.8259的編程對8259的編程可分為兩個階段: 1.初始化階段 2.操作階段
7.2.2外中斷控制邏輯和中斷控制芯片8529A(1)初始化階段在系統(tǒng)加電或復位后由系統(tǒng)初始化程序完成。這階段要用輸出指令向8259置入初始化命令字。這一階段的編程是通過OUT指令,把一組數(shù)據(jù)寫入ICW1~ICW4共4個寄存器中。2.8259的編程
7.2.2外中斷控制邏輯和中斷控制芯片8529A(2)操作階段要用輸出指令向8259發(fā)適當?shù)牟僮髅钭?,實現(xiàn)對8259的狀態(tài),中斷方式和過程的控制。這期間一般不再發(fā)初始化命令字。這一階段的編程,是通過OUT指令,把數(shù)據(jù)寫入OCW1~OCW3中。2.8259的編程7.2.2外中斷控制邏輯和中斷控制芯片8529A設(shè)定中斷請求信號的有效形式,即是高電平有效,還是低電平向高電平跳變的上升邊沿有效。8259是單片工作方式還是級聯(lián)工作方式。設(shè)定8259管理的中斷類型號基值,即0級中斷IRQ0對應的中斷類型號,以便在中斷請求響應時,得到中斷向量表中相應類型號的地址。設(shè)定各級的優(yōu)先排序規(guī)則。設(shè)定一次中斷處理結(jié)束時的結(jié)束操作規(guī)則。這些任務都是通過向8259發(fā)初始命令字ICW實現(xiàn)的。初始化編程階段的任務-----設(shè)置8259的工作方式7.2.2外中斷控制邏輯和中斷控制芯片8529A①初始化命令字ICW1D7D6D5D4D3D2D1D01LTIM0SNGLIC4×××其中×位表示無關(guān)位,可為任何值。D4為1,是ICW1的特征標志。LTIM位為1表示有效的中斷請求信號是高電平,為0表示有效中斷請求信號是低電平向高電平跳變的上升邊。SNGL位為1表示這片8259是單片方式工作,為0表示多片級聯(lián)方式工作。IC4位為1表示在后面程序還要設(shè)置初始化命令字ICW4,為0表示不再設(shè)置ICW4。注:設(shè)置ICW1需要I/O端口地址為A0=0,即20H(主片)或者A0H(從片)1.ICW1訓練7.2.2外中斷控制邏輯和中斷控制芯片8529A
ICW1=00010001B要求:
邊沿觸發(fā),級聯(lián)方式,有ICW4;7.2.2外中斷控制邏輯和中斷控制芯片8529A②初始化命令字ICW2ICW2用來提供中斷類型號的基值。CPU在響應外部可屏蔽中斷時,需要獲取中斷中斷類型號,從而來獲取該中斷服務子程序的入口地址。中斷類型號由8259在中斷響應期間提供。
中斷類型號=基值+相對值D7D6D4D5D3D2D1D0T7T6T5T4T3000
7.2.2外中斷控制邏輯和中斷控制芯片8529A設(shè)置ICW2的地址為A0=1,對于IBMPC系列微機,I/O端口地址分別為21H(主片)和A1H(從片)。中斷類型基值就是ICW2,其中低3位必須為0。相對值:則根據(jù)IRQ0~IRQ7中是響應哪級中斷,分別對應000~111.中斷類型號=基值+相對值在IBMPC系列微機中,兩片8259A的中斷類型號基值主片為08H,ICW2的高5位T7~T3為00001從片為70H,ICW2的高5位T7~T3為011107.2.2外中斷控制邏輯和中斷控制芯片8529A中斷類型號=08H+101B(5)=假如:在IBMPC系列微機中,某片8259A的中斷類型號基值為08H,同時,cpu響應了IRQ5,問該中斷類型號為多少?中斷類型號=基值+相對值0DH2.ICW2訓練7.2.2外中斷控制邏輯和中斷控制芯片8529A③初始化命令字ICW3ICW3是級聯(lián)命令字,如果中斷控制邏輯只有一片8259組成【設(shè)置ICW1時D1(SNGL)=1】,則不設(shè)置ICW3.只有在多片8259級聯(lián)的情況下,才設(shè)置ICW3。對于主片和從片,設(shè)置的ICW3的意義是不同的。7.2.2外中斷控制邏輯和中斷控制芯片8529A③主片ICW3向主片設(shè)置的ICW3,指明主片的哪個或那些輸入端IR接有從片。設(shè)置ICW3時,那些接有從片的輸入端對應的位設(shè)置為1,否則為0。D7D6D4D5D3D2D1D0S7S6S5S4S3S2S1S0
7.2.2外中斷控制邏輯和中斷控制芯片8529A③初始化命令字ICW3如右圖,主片的IR2接有從片,所以D2=1,主片的ICW3為:00000100B7.2.2外中斷控制邏輯和中斷控制芯片8529A③從片ICW3向從片設(shè)置的ICW3,其D7~D3為0,只是D2~D0位組成0~7的編碼。向不同的從片設(shè)置的ICW3值是不同的,所設(shè)的值必須與它所接的主片的IR輸入端序號相同。D7D6D4D5D3D2D1D000000S2S1S0
7.2.2外中斷控制邏輯和中斷控制芯片8529A③初始化命令字ICW3如右圖,主片的IR2接有從片,所以從片的ICW3為:00000010010的值與主片的IR2的序號相同。7.2.2外中斷控制邏輯和中斷控制芯片8529A假如:主片的IR2,IR4,IR6接有從片,則主片的ICW3為:3.ICW3訓練01010100B主片(ICW3)=從片:IR2:(ICW3)=IR4:(ICW3)=IR6:(ICW3)=00000010B00000100B00000110B7.2.2外中斷控制邏輯和中斷控制芯片8529A④初始化命令字ICW4只有ICW1中的IC4位為1才能設(shè)置ICW4。端口地址A0=1。D7~D5總為0。D4——SFNM,設(shè)置該位為1,將工作于特殊的全嵌套方式;該位為0,工作于正常全嵌套方式。IBMPC系統(tǒng)設(shè)置該位為0。D3——BUF,該位設(shè)置為1,表明緩沖方式,這時芯片的為輸出引腳,輸出信號可作為數(shù)據(jù)收發(fā)緩沖器(三態(tài)門)的控制信號。該位設(shè)置為0,表明不工作于緩沖方式,不需要也不輸出這種控制信號。D2——M/S,在BUF位為1有效時,該位為1則表示該片為主片;該位為0,則為從片。D1——AEOI,規(guī)定中斷結(jié)束方式。D1=1,自動結(jié)束;D1=0,非自動結(jié)束方式。D0——μPM,該位為1,表示與80X86微處理器配合工作;該位為0,表示與8080或8085微處理器配合工作。顯然,該位應設(shè)為1。7.2.2外中斷控制邏輯和中斷控制芯片8529A7.2.2外中斷控制邏輯和中斷控制芯片8529A假如:
正常全嵌套方式,非數(shù)據(jù)總線緩沖方式,中斷正常(非自動)結(jié)束。4.ICW4訓練ICW4=0000
0001B000SFNMBUFM/SAEOIUPM7.2.2外中斷控制邏輯和中斷控制芯片8529A ICW1 使用A0=0,偶地址即20H或A0H ICW2,ICW3,ICW4 使用A0=1,奇地址21H或A1H初始化命令字的設(shè)置次序:首先是ICW1(必須從ICW1開始)。當使用端口地址A0=0(20H)往8259寫數(shù)據(jù),并且該數(shù)據(jù)的D4=1,則說明該數(shù)據(jù)是往ICW1里面寫入的。一旦ICW1被設(shè)置,以下對地址A0=1(21H)的輸出指令一定是設(shè)置ICW2,然后依據(jù)ICW1中的SNGL位和IC4位的值決定設(shè)置ICW3和ICW4.初始化命令字所使用的端口地址7.2.2外中斷控制邏輯和中斷控制芯片8529AICW1以A0=0(20H)和發(fā)出字節(jié)D4為1的特征ICW1被設(shè)置,以下對地址A0=1(21H)的輸出指令一定設(shè)置ICW2依據(jù)ICW1中的SNGL位和IC4位的值決定設(shè)置ICW3和ICW4。7.2.2外中斷控制邏輯和中斷控制芯片8529A主片:ICW1=00010001,邊沿觸發(fā),級聯(lián)方式,有ICW4;ICW2=00001000,中斷類型號基值為08H;ICW3=00000100,在IR2端接有從片;ICW4=00000001,正常全嵌套方式,非數(shù)據(jù)總線緩沖方式,中斷正常(非自動)結(jié)束。初始化編程舉例(1)圖7.13外部控制邏輯中,兩片8259A設(shè)置的初始化命令字:7.2.2外中斷控制邏輯和中斷控制芯片8529A從片:ICW1=00010001,邊沿觸發(fā),級聯(lián)方式,有ICW4;ICW2=01110000,中斷類型號基值為70H;ICW3=00000010,該片的識別標志,對應主片的IR2;ICW3=00000001,正常全嵌套方式,非數(shù)據(jù)總線緩沖方式,中斷正常(非自動)結(jié)束。
7.2.2外中斷控制邏輯和中斷控制芯片8529A(2)若主片8259的端口地址為20H和21H,從片8259的端口地址為A0H和A1H,則初始化編程為:主片編程為:INT59:MOVAL,00010001B;設(shè)置ICW1OUT20H,AL MOVAL,08H ;設(shè)置ICW2OUT21H,AL
MOVAL,00000100B;設(shè)置ICW3OUT21H,ALMOVAL,00000001B;設(shè)置ICW4OUT21H,AL7.2.2外中斷控制邏輯和中斷控制芯片8529A從片編程為:MOVAL,00010001B;設(shè)置ICW1OUTA0H,AL MOVAL,70H ;設(shè)置ICW2OUTA1H,AL
MOVAL,00000010B;設(shè)置ICW3OUTA1H,ALMOVAL,00000001B;設(shè)置ICW4OUTA1H,AL7.2.2外中斷控制邏輯和中斷控制芯片8529A(2)操作過程編程
操作過程的編程需要向8259發(fā)各種操作命令字。這些命令字決定著中斷方式,管理著中斷響應次序等。8259可以控制實現(xiàn)的中斷方式有:全嵌套方式、循環(huán)優(yōu)先方式、特殊的屏蔽方式和查詢方式等。這些方式的實現(xiàn),都要靠操作命令字的設(shè)置。7.2.2外中斷控制邏輯和中斷控制芯片8529A①操作命令字OCW1OCW1用于設(shè)置屏蔽狀態(tài)。命令字的各位與8259中的中斷屏蔽寄存器IMR的各位相對應,用輸出指令把OCW1發(fā)送到IMR。中斷屏蔽寄存器IMR中為1的位所對應的中斷級的輸入線IR處于被屏蔽狀態(tài)。設(shè)置OCW1的I/O地址是A0=1對同一地址的輸入指令將讀回OCW1設(shè)置的屏蔽字7.2.2外中斷控制邏輯和中斷控制芯片8529A例如1:要屏蔽8259外部的IR1,IR3,IR5中斷請求。則其命令為:ORAL,00101010H OUT21H,AL
INAL,21H
先通過21H讀入OCW1通過21H把設(shè)置的值寫入OCW17.2.2外中斷控制邏輯和中斷控制芯片8529A②操作命令字OCW2特征標志是D4、D3位組合為00高3位R、SL和EOI組合起來才能指明一種工作方式和中斷結(jié)束控制方式。設(shè)置OCW2的地址是A0=07.2.2外中斷控制邏輯和中斷控制芯片8529AR:為1指明中斷級的優(yōu)先順序是循環(huán)式的。為0是固定的優(yōu)先次序,0級最高,7級最低。
SL:該位指明是否要指定一個中斷級。為1,L2~L03位組合將指明一個中斷級。為0,L2~L0位無意義。EOI:為1,執(zhí)行結(jié)束中斷的操作。為0,則不執(zhí)行結(jié)束中斷操作。如果初始化時ICW4的AEOI位為1,說明設(shè)定的是自動結(jié)束中斷方式,設(shè)置OCW2時EOI位自然應為0。7.2.2外中斷控制邏輯和中斷控制芯片8529A4.OCW2訓練MOVAL,0010
0000B;OUT20H,AL;恢復ISR中D2的值為0通過寫OCW2,送中斷結(jié)束命令EOI7.2.2外中斷控制邏輯和中斷控制芯片8529A7.2.2外中斷控制邏輯和中斷控制芯片8529A③操作命令字OCW3D7D6D5D4D3D2D1D00ESMMSMM01PRRRISOCW3用于管理特殊的屏蔽方式和查詢方式。發(fā)送OCW3的地址也是A0=0。它的特征標志為D4D3=01。7.2.2外中斷控制邏輯和中斷控制芯片8529A③操作命令字OCW3D7D6D5D4D3D2D1D00ESMMSMM01PRRRISESMM:該位為1則允許特殊屏蔽方式;為0,則禁止。SMM:為1,表示特殊屏蔽方式。只對同級實現(xiàn)屏蔽為0,為非特殊屏蔽方式。用OCW1來設(shè)置ESMM位為1,SMM位才有意義。ESMM為0,則SMM位無意義。7.2.2外中斷控制邏輯和中斷控制芯片8529AD7D6D5D4D3D2D1D00ESMMSMM01PRRRISP位用于控制是否讀取中斷狀態(tài)寄存器的內(nèi)容。P位為1,可通過讀入中斷狀態(tài)寄存器的內(nèi)容,查詢是否有中斷請求被處理,如有,則給出當前中斷的最高優(yōu)先級。P位為0,則不查詢。7.2.2外中斷控制邏輯和中斷控制芯片8529A該中斷狀態(tài)寄存器的格式為:D7D6D5D4D3D2D1D01----W2W1W0D7=0,表示無中斷請求D7=1,表示有中斷請求,此時W2~W0才有意義,它們的組合指明請求服務的各中斷級中的最高優(yōu)先級。例如:W2~W0=010,則此時請求服務的各中斷級中,IR2的優(yōu)先級最高。7.2.2外中斷控制邏輯和中斷控制芯片8529A在讀取中斷狀態(tài)字時,先寫入中斷查詢命令,然后讀取中斷狀態(tài)字,程序如下: MOVAL,00001100B;使P位為1 OUT20H,AL ;使用20H端口地址 INAL,20H ;使用20H將狀態(tài)字送入AL中D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS7.2.2外中斷控制邏輯和中斷控制芯片8529ARR和RIS位用于控制讀出8259A的內(nèi)部寄存器IRR(中斷請求寄存器)和ISR(中斷服務寄存器)的內(nèi)容。D7D6D5D4D3D2D1D00ESMMSMM01PRRRISRR=0,無效RR=1,讀寄存器內(nèi)容。
RIS=1,則讀IRS寄存器內(nèi)容,送入AL中;
RIS=0,則讀IRR寄存器內(nèi)容,送入AL中。7.2.2外中斷控制邏輯和中斷控制芯片8529A讀取ISR內(nèi)容的程序:D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS MOVAL,00001011B OUT20H,AL;使用20H端口,將AL內(nèi)容寫入OCW3中 INAL,20H;將ISR寄存器的內(nèi)容送入AL中7.2.2外中斷控制邏輯和中斷控制芯片8529A讀取IRR內(nèi)容的程序:D7D6D5D4D3D2D1D00ESMMSMM01PRRRIS MOVAL,00001010B OUT20H,AL;使用20H端口,將AL內(nèi)容寫入OCW3中 INAL,20H;將IRR寄存器的內(nèi)容送入AL中7.2.2外中斷控制邏輯和中斷控制芯片8529AA0D4D3功能01*寫ICW11**寫ICW21**寫ICW31**寫ICW41**寫OCW1000寫OCW2001寫OCW38259A端口分配及讀寫操作功能:7.2.2外中斷控制邏輯和中斷控制芯片8529A命令字所使用的端口地址:
使用A0=0,偶地址:ICW1,OCW2,OCW3
使用A0=1,奇地址:OCW1,ICW2,ICW3,CW4
7.2.2外中斷控制邏輯和中斷控制芯片8529A中斷響應時序:
INTAINT8259ACPUINTRINTAIR0~IR7外部設(shè)備當CPU響應8259A的中斷請求INT時,向8259回送中斷響應信號INTA,自動進入中斷響應總線周期,進行中斷處理。INT高電平有效, IRi高電平有效或上升沿跳變有效7.2.2外中斷控制邏輯和中斷控制芯片8529ACPU一旦響應中斷,就自動進入中斷響應總線周期。INTA時序圖為:T1T1T2T3T4T2T3T4第一個INTA周期第二個INTA周期LOCKINTAD7~D0中斷類型nINTIRi7.2.2外中斷控制邏輯和中斷控制芯片8529A中斷響應周期由兩個連續(xù)的INTA周期組成,每個INTA周期包含4個時鐘周期,即T1~T4。在第一個INTA周期的T2~T3狀態(tài),CPU向8259發(fā)送第一個INTA脈沖,表示響應INTR請求,并利用這個信號將8259的請求信號IRi復位,同時使總線鎖存信號LOCK有效,以禁止其他總線主控設(shè)備爭用總線。在第二個INTA周期,8259將中斷類型號n送上數(shù)據(jù)總線送至CPU,有CPU自動完成向量地址4n運算后,從中斷向量表中取出相應的中斷向量送入CS:IP中,繼而轉(zhuǎn)去執(zhí)行中斷服務程序;同時,還利用第二個INTA周期的后沿將INT復位。在自動結(jié)束方式中,也是利用這個后沿,將ISR中的中斷服務標志位清除。7.2.2外中斷控制邏輯和中斷控制芯片8529A中斷結(jié)束(使ISR位復位)有兩種方式:
1.自動結(jié)束------ICW4中AEOI位設(shè)置為1 2.非主動結(jié)束----ICW4中AEOI位設(shè)置為0
自動結(jié)束: CPU響應中斷請求,向8259發(fā)第二個INTA脈沖的后沿,使ISR中的對應位復位??梢娛窃谶M入中斷服務程序之前完成復位。非自動結(jié)束: 在指定服務程序中,通常在返回主程序之前,使用指令發(fā)一個中斷結(jié)束命令,使OCW2內(nèi)的EOI位為1。這樣就可以使ISR相應位復位。7.2.3中斷系統(tǒng)的應用方法
中斷系統(tǒng)的應用: 利用可屏蔽中斷來控制實現(xiàn)數(shù)據(jù)在CPU和I/O接口之間的輸入輸出。
注意的幾點工作: 1.分配合理的中斷級。 1.只能利用沒被系統(tǒng)占用的IRQ端。 2.任務越急,應分配優(yōu)先級較高的IRQ端。 2.為中斷服務子程序分配合理的存儲空間,并把服務子程序的入口地址置入中斷向量表。7.2.3中斷系統(tǒng)的應用方法把服務子程序的入口地址置入中斷向量表。方法是利用DOS功能調(diào)用,即INT21H指令。 MOVAH,25H MOVAL,n;送中斷向量號 MOVDS,段地址;中斷服務子程序的段地址 MOVDX,偏移地址;中斷服務子程序的段地址、 INT21H執(zhí)行INT21H后,就可把中斷服務子程序的入口地址置入中斷向量表的適當?shù)刂分?.2.3中斷系統(tǒng)的應用方法例如:中斷服務程序的入口地址的標號為:VINTSUB,中斷向量號為10,則設(shè)置中斷向量的指令序列如下: MOVDX,OFFSETVINTSUB PUSHDS MOVAX,SEGVINTSUB MOVDS,AX MOVAL,10 MOVAH,25H
INT21H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓美業(yè)課件
- 澳洲藥廠面試題及答案
- 智能焊接試題及答案
- 涉稅專業(yè)考試試題及答案
- 清潔空調(diào)考試題及答案
- 導管固定考試題及答案
- 鉗工鉗工考試題及答案
- 善人惡人測試題及答案
- 噪聲考試題目及答案
- 警察靶場測試題及答案
- GB/T 16866-2006銅及銅合金無縫管材外形尺寸及允許偏差
- GB/T 16823.3-2010緊固件扭矩-夾緊力試驗
- 自動化在組裝廠的應用培訓資料
- 房產(chǎn)稅、土地使用稅、印花稅政策課件
- PDCA降低I類切口感染發(fā)生率
- (高職)會展實務電子課件(全套)
- 合肥國際馬拉松志愿者培訓
- 【美國俚語】英語俚語大全200個
- 空預器密封改造安裝工程施工方案
- 醫(yī)用放射性廢水衰變池設(shè)計623朱韜
- 探究高中生上課注意力不集中的原因及其對策-2019年精選文檔
評論
0/150
提交評論