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