




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章輸入輸出技術(shù)
6.3中斷方式6.4直接存貯器存取6.2程序控制方式6.1輸入輸出的基本方法
6.1輸入輸出的基本方法6.1.1輸入輸出接口的概念及基本結(jié)構(gòu)⑴為什么需要I/O接口(電路)?微機(jī)的外部設(shè)備多種多樣工作原理、驅(qū)動(dòng)方式、信息格式、以及工作速度方面彼此差別很大它們不能與CPU直接相連必須經(jīng)過(guò)中間電路再與系統(tǒng)相連,那么這部分電路被稱為I/O接口電路1.接口電路I/O接口是位于系統(tǒng)與外設(shè)間、用來(lái)協(xié)助完成數(shù)據(jù)傳送和控制任務(wù)的邏輯電路。
PC機(jī)系統(tǒng)板的可編程接口芯片、I/O總線槽的電路板(適配器)都是接口電路CPU接口電路
I/O設(shè)備⑵什么是I/O接口(電路)?2.接口電路分類⑴按接口電路的通用性⑵按數(shù)據(jù)傳送格式⑶按接口是否可編程⑷按時(shí)序控制方式
專用接口通用接口
并行接口串行接口
可編程接口不可編程接口
同步接口異步接口
3.接口的基本功能⑴對(duì)輸入輸出數(shù)據(jù)進(jìn)行緩沖和鎖存輸出接口有鎖存輸入接口有緩沖⑵對(duì)信號(hào)的形式和數(shù)據(jù)的格式進(jìn)行變換微機(jī)直接處理:數(shù)字量、開關(guān)量、脈沖量⑶對(duì)I/O端口進(jìn)行尋址⑷與CPU和I/O設(shè)備進(jìn)行聯(lián)絡(luò)⑸中斷管理/DMA控制功能4.接口電路的基本結(jié)構(gòu)控制總線CB地址總線ABI/O接口電路數(shù)據(jù)控制狀態(tài)數(shù)據(jù)總線DBCPU外設(shè)控制寄存器狀態(tài)寄存器數(shù)據(jù)寄存器6.1.2外設(shè)接口的編址方式接口電路占用的I/O端口有兩種編址方式
I/O端口單獨(dú)編址I/O地址空間獨(dú)立于存儲(chǔ)地址空間如8086/8088I/O端口與存儲(chǔ)器統(tǒng)一編址它們共享一個(gè)地址空間如M68001.I/O端口與存儲(chǔ)器統(tǒng)一編址優(yōu)點(diǎn):不需要專門的I/O指令I(lǐng)/O數(shù)據(jù)存取與存儲(chǔ)器數(shù)據(jù)存取一樣靈活缺點(diǎn):I/O端口要占去部分存儲(chǔ)器地址空間程序不易閱讀(不易分清訪存和訪問(wèn)外設(shè))內(nèi)存部分I/O部分存儲(chǔ)空間0FFFFF2.I/O端口單獨(dú)編址優(yōu)點(diǎn):
I/O端口的地址空間獨(dú)立控制和地址譯碼電路相對(duì)簡(jiǎn)單專門的I/O指令使程序清晰易讀缺點(diǎn):I/O指令沒(méi)有存儲(chǔ)器指令豐富內(nèi)存空間I/O空間FFFFF0FFFF080x86采用I/O端口獨(dú)立編址復(fù)習(xí):8088/8086的輸入輸出指令輸入指令I(lǐng)NAL,8位地址/DX ;字節(jié)輸入INAX,8位地址/DX ;字輸入輸出指令OUT8位地址/DX,AL ;字節(jié)輸出OUT8位地址/DX,AX ;字輸出程序控制方式中斷控制方式直接存儲(chǔ)器存取控制方式通道方式外圍處理方式6.1.3輸入輸出的基本方法
I/O設(shè)備有輸入/輸出要求時(shí),主動(dòng)向CPU發(fā)出請(qǐng)求。⑴
8086/8088CPU的中斷
CPU執(zhí)行完每一條指令后,都會(huì)去查詢外部是否有請(qǐng)求,若有,就暫?,F(xiàn)行的程序,轉(zhuǎn)去完成傳送數(shù)據(jù)的任務(wù)。⑵
優(yōu)點(diǎn):
CPU避免了把大量時(shí)間耗費(fèi)在查詢狀態(tài)信號(hào)的操作上,使其工作效率得以大大地提高。⑶
缺點(diǎn):很難實(shí)現(xiàn)系統(tǒng)中每一個(gè)外設(shè)都工作在最佳工作狀態(tài)。CPU需要干預(yù),故不能滿足高速磁盤控制器或高速數(shù)據(jù)采集系統(tǒng)。
是指一旦某個(gè)外設(shè)請(qǐng)求CPU為它服務(wù)時(shí),CPU應(yīng)該以最快的速度響應(yīng)其請(qǐng)求。信息的傳送是依靠CPU執(zhí)行中斷服務(wù)程序來(lái)完成的,每次I/O操作都需要幾十甚至幾百微秒1.中斷方式⑴概念數(shù)據(jù)在I/O接口與存儲(chǔ)器之間傳送時(shí),不經(jīng)CPU的干預(yù),而是在專用硬件電路的控制下直接傳送,這種方法稱為直接存儲(chǔ)器存取(DirectMemoryAccess,縮寫為DMA)。⑵優(yōu)點(diǎn):用DMA方式傳送數(shù)據(jù)時(shí),在存儲(chǔ)器和外部設(shè)備之間,直接開辟高速的數(shù)據(jù)傳送通路。數(shù)據(jù)傳送過(guò)程不要CPU介入,只用一個(gè)總線周期,就能完成存儲(chǔ)器和外部設(shè)備之間的數(shù)據(jù)傳送。因此,數(shù)據(jù)傳送速度僅受存儲(chǔ)器的存取速度和外部設(shè)備傳輸特性的限制。2.DMA方式⑶缺點(diǎn):DMAC取代CPU控制了系統(tǒng)總線,故當(dāng)DMAC控制總線時(shí),CPU不能讀取指令;若系統(tǒng)使用的是動(dòng)態(tài)存儲(chǔ)器,則在DMA操作期間,存儲(chǔ)器的刷新將會(huì)停止。當(dāng)DMAC占用總線時(shí),CPU不能去檢測(cè)和響應(yīng)其他設(shè)備的中斷請(qǐng)求。增加硬件的投資,提高系統(tǒng)的成本。DMA方式傳送的額外開銷源:
A>總線訪問(wèn)時(shí)間
B>對(duì)DMAC的初始化
專門處理輸入/輸出的協(xié)處理器。協(xié)處理器的概念即是一個(gè)智能控制器,可以取出和執(zhí)行指令,并且除了控制數(shù)據(jù)傳送外,還可以執(zhí)行和邏輯運(yùn)算、轉(zhuǎn)移、搜索和轉(zhuǎn)換。(2)處理I/O操作時(shí)的方式
CPU在存儲(chǔ)器中建立一個(gè)信息塊,將所需要的操作和有關(guān)參數(shù)按照規(guī)定列入,然后通知協(xié)處理器來(lái)讀取。協(xié)處理器讀得操作控制信息后,能自動(dòng)完成全部的I/O操作。3.外圍處理機(jī)方式1.無(wú)條件傳送方式在CPU與慢速變化的設(shè)備交換數(shù)據(jù)時(shí),可以認(rèn)為它們總是處于“就緒”狀態(tài),隨時(shí)可以進(jìn)行數(shù)據(jù)傳送,這就是
無(wú)條件傳送,或稱立即傳送、同步傳送;適合于簡(jiǎn)單設(shè)備,如LED數(shù)碼管、按鍵/按紐等;其接口和操作均十分簡(jiǎn)單;這種傳送有前提:外設(shè)必須隨時(shí)處于就緒狀態(tài)。6.2程序控制方式⑴無(wú)條件傳送:輸入示例MOVDX,160HINAL,DX三態(tài)緩沖器IOROEI/O裝置地址譯碼器CSD7~D0A15~A1A00160H⑵無(wú)條件傳送:輸出示例A15A0~A14-IOWCS0160HD7~D0地址譯碼器數(shù)據(jù)鎖存器輸出設(shè)備MOVDX,160HMOVAL,[BX]OUTDX,AL2.查詢傳送方式CPU先了解(查詢)外設(shè)的工作狀態(tài),在外設(shè)就緒(可以交換信息的情況下)實(shí)現(xiàn)數(shù)據(jù)的輸入或輸出;對(duì)多個(gè)外設(shè)的情況,則CPU按一定順序依次查詢(輪詢),先查詢的外設(shè)將優(yōu)先進(jìn)行數(shù)據(jù)交換;查詢傳送的特點(diǎn)是:工作可靠,適用面寬,但傳送效率低⑴查詢傳送的兩個(gè)環(huán)節(jié)查詢環(huán)節(jié)尋址狀態(tài)口讀取狀態(tài)寄存器的標(biāo)志位若不就緒就繼續(xù)查詢,直至就緒傳送環(huán)節(jié)尋址數(shù)據(jù)口是輸入,通過(guò)輸入指令從數(shù)據(jù)口讀入數(shù)據(jù)是輸出,通過(guò)輸出指令向數(shù)據(jù)口輸出數(shù)據(jù)輸入狀態(tài)就緒?數(shù)據(jù)交換YN傳送流程⑵查詢輸入/輸出程序示例
MOV
DX,2000h ;DX指向狀態(tài)端口
st:INAL,DX
;讀狀態(tài)端口
TESTAL,01H ;測(cè)試標(biāo)志位D0 JZst;D0=0,未就緒,繼續(xù)查詢
INCDX;D0=1,就緒,DX指向數(shù)據(jù)端口
INAL,DX
;從數(shù)據(jù)端口輸入數(shù)據(jù)
(OUTDX,AL ;將數(shù)據(jù)輸出給數(shù)據(jù)端口)3.舉例
假設(shè)有一輸入設(shè)備,其數(shù)據(jù)端口的地址為220H,狀態(tài)端口的地址為223H,當(dāng)其D4位為1時(shí)表明輸入數(shù)據(jù)備好。請(qǐng)編寫采用查詢方式進(jìn)行數(shù)據(jù)傳送的程序段,要求從該設(shè)備讀取50個(gè)字節(jié)數(shù)據(jù)并輸入到起始地址為04000H開始的內(nèi)存單元中。MOVAX,0400HMOVDS,AXMOVSI,0MOVCX,50L:MOVDX,223HL1:INAL,DXTESTAL,10HJZL1MOVDX,220HINAL,DXMOV[SI],ALINCSILOOPL6.3中斷的基本原理
6.3.1中斷系統(tǒng)及中斷基本概念1.中斷基本概念⑴中斷:是微處理器程序運(yùn)行的一種方式。指在CPU正常運(yùn)行時(shí),由于內(nèi)部事件、外部事件或由程序預(yù)先安排的事件所引起的CPU暫時(shí)停止正在運(yùn)行的程序,而轉(zhuǎn)去執(zhí)行請(qǐng)求CPU服務(wù)的內(nèi)部/外部事件或預(yù)先安排事件的服務(wù)程序,待服務(wù)程序處理完畢后,又返回去繼續(xù)執(zhí)行被暫停的程序,此過(guò)程稱為中斷。正在運(yùn)行的程序中斷請(qǐng)求響應(yīng)返回中斷服務(wù)子程序斷點(diǎn)⑵
中斷源
發(fā)出中斷請(qǐng)求的外部設(shè)備或引起中斷的內(nèi)部原因稱為
中斷源。中斷源的種類如圖所示。⑶禁止中斷與中斷屏蔽禁止中斷:允許通過(guò)指令CLI復(fù)位,以達(dá)到禁止CPU
的INTR中斷,稱為禁止中斷。中斷屏蔽:將中斷源對(duì)應(yīng)的中斷屏蔽觸發(fā)器置1,則該中斷源的中斷請(qǐng)求被屏蔽,稱為中斷屏蔽。⑷中斷嵌套當(dāng)CPU正在處理某種類型的中斷時(shí),又有級(jí)別更高的新的中斷源申請(qǐng)中斷,這時(shí)CPU就會(huì)暫停當(dāng)前的中斷服務(wù)程序,而轉(zhuǎn)去執(zhí)行新的中斷處理,這種中斷的處理方式就叫中斷嵌套。
當(dāng)CPU響應(yīng)中斷后,找出哪一個(gè)中斷源發(fā)出的中斷
請(qǐng)求,即中斷識(shí)別。①目的:要形成響應(yīng)該中斷源的中斷服務(wù)程序的入口地址,以便CPU將此置入CS:IP,實(shí)現(xiàn)程序的轉(zhuǎn)移。②獲取入口地址的方法:
向量中斷:由中斷向量來(lái)指示中斷服務(wù)程序的入口地址。例如:對(duì)可屏蔽中斷是在CPU響應(yīng)中斷后,由中斷控制器通過(guò)DB返回到CPU的中斷號(hào)來(lái)確定中斷源。
查詢中斷:采用軟件或硬件查詢技術(shù)來(lái)確定中斷源。⑸中斷識(shí)別2.中斷系統(tǒng)的功能中斷系統(tǒng)是指實(shí)現(xiàn)中斷功能的軟硬件的統(tǒng)稱。1.正確識(shí)別:中斷請(qǐng)求,實(shí)現(xiàn)中斷響應(yīng),中斷處理及中斷返回。2.實(shí)現(xiàn)中斷優(yōu)先級(jí)排隊(duì):3.實(shí)現(xiàn)中斷嵌套:當(dāng)正在中斷服務(wù)時(shí)有新的高級(jí)中斷請(qǐng)求則暫停此中斷轉(zhuǎn)去執(zhí)行另一個(gè)中斷,即中斷嵌套中斷
最基本的功能3.中斷處理過(guò)程⑴中斷請(qǐng)求;⑵中斷判優(yōu);⑶中斷響應(yīng);⑷中斷處理;⑸中斷返回。具體過(guò)程如圖所示中斷源提出中斷請(qǐng)求判優(yōu)邏輯進(jìn)行優(yōu)先排隊(duì)CPU執(zhí)行當(dāng)前指令,并在執(zhí)行完后請(qǐng)求信號(hào)有效?保護(hù)程序斷點(diǎn)(CS:IP)CPU取下一條指令否
找出中斷源,形成中斷服務(wù)程序的入口地址,并轉(zhuǎn)向中斷服務(wù)程序。A中斷請(qǐng)求中斷判優(yōu)中斷響應(yīng)中斷服務(wù)程序的入口地址裝入CS:IPCPU允許中斷?是CPU關(guān)閉中斷(CLI)是否CPU判斷是否有請(qǐng)求判斷是否開中斷A執(zhí)行中斷服務(wù)程序返回原程序斷點(diǎn)處CPU開放中斷(STI)恢復(fù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng)中斷處理中斷返回如果要實(shí)現(xiàn)中斷嵌套,該如何修改?加STI加CLI解決方案6.3.28086的中斷結(jié)構(gòu)1.8086的中斷類型
8086可以處理256種不同的中斷,共分為兩大類:
外部中斷:由外部硬件請(qǐng)求產(chǎn)生的中斷,故又稱為硬件中斷。
內(nèi)部中斷:由指令的執(zhí)行或軟件對(duì)FLAG的某個(gè)標(biāo)志位的設(shè)置產(chǎn)生的中斷,即軟件中斷。8086的中斷源類型:INT3INT1除數(shù)為0…非屏蔽中斷請(qǐng)求中斷控制器8259AINTn指令中斷邏輯NMIINTR軟件中斷硬件中斷1)中斷類型號(hào):為每個(gè)中斷源指定的一個(gè)8位的編號(hào),以識(shí)別不同的中斷源,則此編號(hào)稱為中斷類型號(hào)。2)中斷向量:每個(gè)中斷服務(wù)程序的入口地址,稱為中斷向量。3)中斷向量表:把系統(tǒng)中所有的中斷向量集中起來(lái),根據(jù)中斷類型號(hào)從小到大的順序存放到存儲(chǔ)器的某一個(gè)區(qū)域內(nèi),這個(gè)存放中斷向量的存儲(chǔ)區(qū)稱為中斷向量表。
8086CPU以存儲(chǔ)器的前l(fā)024個(gè)單元作為中斷向量表。中斷類型號(hào)和中斷向量所在的位置關(guān)系如圖所示。2.8086的中斷識(shí)別方式—向量中斷6.3.3中斷控制器8259A
Intel8259A是一種可編程的中斷控制器,有如下功能:可管理8個(gè)中斷源電路的中斷,并對(duì)其進(jìn)行優(yōu)先級(jí)管理;具有8級(jí)中斷優(yōu)先控制,通過(guò)級(jí)連可以擴(kuò)展至64級(jí)優(yōu)先權(quán)控制;對(duì)中斷源有屏蔽或允許申請(qǐng)中斷的操作;CPU響應(yīng)中斷時(shí),能自動(dòng)提供中斷類型碼。
內(nèi)部結(jié)構(gòu)其主要組成部分:數(shù)據(jù)總線緩沖器讀/寫控制邏輯級(jí)連緩沖器控制邏輯電路中斷請(qǐng)求寄存器IRR中斷屏蔽寄存器IMR中斷服務(wù)寄存器ISR
優(yōu)先級(jí)比較器1.8259A的內(nèi)部結(jié)構(gòu)與系統(tǒng)數(shù)據(jù)總線的接口,8位雙向,三態(tài)CPU通過(guò)它實(shí)現(xiàn)對(duì)8259A的讀/寫操作。用以實(shí)現(xiàn)8259A芯片之間的級(jí)連,使得中斷源可以由8級(jí)擴(kuò)展至64級(jí)。對(duì)芯片內(nèi)部各部件的工作進(jìn)行協(xié)調(diào)和控制。其8位分別保存8個(gè)中斷請(qǐng)求信號(hào),當(dāng)相應(yīng)的中斷請(qǐng)求輸入引腳有中斷請(qǐng)求時(shí),該寄存器的相應(yīng)位置1。對(duì)應(yīng)位用以對(duì)8個(gè)中斷源的中斷請(qǐng)求信號(hào)進(jìn)行屏蔽控制。當(dāng)CPU正在處理某個(gè)中斷源的中斷請(qǐng)求時(shí),ISR寄存器中的相應(yīng)位置1用以比較正在處理的中斷和正在請(qǐng)求的中斷源的優(yōu)先級(jí)別,以決定是否產(chǎn)生中斷嵌套。2.8259的外部引腳⑴與CPU相連的引腳D7~D0:數(shù)據(jù)線,雙向、三態(tài)。直接與系統(tǒng)的數(shù)據(jù)總線相連。A0:奇/偶地址選擇信號(hào),輸入。
A0=0:ICW1、OCW2、OCW3A0=1:ICW2~I(xiàn)CW4、OCW1CS:片選信號(hào),輸入、低電平有效。WR:寫控制信號(hào),輸入、低電平有效。一般與系統(tǒng)控制總線的IOW相連。RD:讀控制信號(hào),輸入、低電平有效。一般與系統(tǒng)控制總線的IOR相連INT:中斷請(qǐng)求信號(hào),輸出、高電平有效INTA:中斷響應(yīng)信號(hào),輸入、低電平有效⑵與外設(shè)相連的引腳IR7~IR0:中斷請(qǐng)求信號(hào),輸入,有效電平可由程序設(shè)定。⑶其它引腳CAS2-CAS0:級(jí)連信號(hào)。為主片時(shí),為輸出;為從片時(shí),為輸入。與SP/EN信號(hào)配合,實(shí)現(xiàn)芯片的級(jí)連,這三個(gè)引腳信號(hào)000~111的不同組合,恰好對(duì)應(yīng)于8個(gè)從片號(hào)。SP/EN:從片開啟/緩沖信號(hào)。在非緩沖方式下,為輸入,若8259A作從片使用,則SP=0;主片則SP=1;在緩沖方式下,為輸出,EN用作8259A外部數(shù)據(jù)總線緩沖器的啟動(dòng)信號(hào)。
緩沖方式----數(shù)據(jù)連接方式
緩沖方式8259A的數(shù)據(jù)線需加緩沖器予以驅(qū)動(dòng)8259A把SP/EN引腳作為輸出端,輸出允許信號(hào),用以鎖存或開啟緩沖器非緩沖方式SP/EN引腳為輸入端若8259A級(jí)連,由其確定是主片或從片退出3.8259A的工作過(guò)程①中斷源8259A,使IRR相應(yīng)位置“1”;②
IRRPR,PRCPU的INTR;③若CPU處于開中斷,則完成當(dāng)前指令后8259A;其中:8259收到第一個(gè)INTA時(shí),a>使ISR相應(yīng)位置“1”;
b>使IRR相應(yīng)位清“0”;
8259收到第二個(gè)INTA時(shí)DB④若8259工作在自動(dòng)結(jié)束方式AEOI,則8259清除ISR相應(yīng)位,否則到全結(jié)束,發(fā)出EOI命令,才使ISR清“0”。經(jīng)IR0~I(xiàn)R7請(qǐng)求經(jīng)IMR允許置位經(jīng)判優(yōu),將最高INT兩個(gè)INTA中斷類型號(hào)⑴初始化命令字
ICW1
--芯片控制字,格式如圖所示作用:對(duì)8259復(fù)位。包括:對(duì)中斷請(qǐng)求信號(hào)邊沿檢測(cè)電路復(fù)位,使信號(hào)低時(shí)產(chǎn)生中斷;清除IMR;設(shè)置全嵌套方式。4.8259A可編程命令由引腳A0=0和ICW1內(nèi)的D4=1確定
設(shè)置中斷類型號(hào),格式如圖所示。ICW2由引腳A0=1確定
主/從片初始字(單片時(shí)不用此字),格式分別如圖所示。ICW3主片8259A,由引腳A0=1確定從片8259A,由引腳A0=1確定
中斷方式字。主要用于決定8259工作于8080還是8086,以及是否要EOI命令。格式如圖所示ICW4結(jié)束方式嵌套方式由引腳A0=1和ICW1內(nèi)的D0=1確定只在緩沖方式下有效,即和D3有關(guān)包括:自動(dòng)結(jié)束方式非自動(dòng)結(jié)束方式:一般中斷結(jié)束方式特殊中斷結(jié)束方式一般中斷結(jié)束方式
該方式通過(guò)軟件方法發(fā)一個(gè)中斷結(jié)束命令,使當(dāng)前中斷服務(wù)寄存器中級(jí)別最高的置l位清0。這種方式只能應(yīng)用于全嵌套方式下,不能用于循環(huán)優(yōu)先級(jí)方式。當(dāng)CPU使用輸出指令向8259A發(fā)送一般的EOI
時(shí),8259把ISR中的最高優(yōu)先級(jí)對(duì)應(yīng)位清0。因?yàn)樵谌短追绞街?,最高的ISR位對(duì)應(yīng)于當(dāng)前正在處理。
特殊的中斷結(jié)束方式該方式也是通過(guò)軟件方法發(fā)一個(gè)中斷結(jié)束命令,同時(shí)用軟件方法給出結(jié)束中斷的中斷源的序號(hào),使該級(jí)的中斷服務(wù)寄存器的對(duì)應(yīng)位清0。該方式可應(yīng)用在任何情況下。
自動(dòng)結(jié)束方式中斷服務(wù)寄存器的相應(yīng)位清零由硬件自動(dòng)完成。當(dāng)某一級(jí)中斷被CPU響應(yīng)后,CPU發(fā)出的第一個(gè)INTA中斷應(yīng)答信號(hào),就使ISR的對(duì)應(yīng)位置1。當(dāng)?shù)诙€(gè)INTA負(fù)脈沖結(jié)束時(shí),自動(dòng)將ISR的對(duì)應(yīng)位清0。此只適用于有單片8259A工作的系統(tǒng),并且各中斷不發(fā)生嵌套的情況。
結(jié)束中斷處理方式
普通全嵌套方式這是8259A默認(rèn)的優(yōu)先權(quán)設(shè)置方式,在全嵌套方式下,
8259A所管理的8級(jí)中斷優(yōu)先權(quán)是固定不變的,其中IR0的中斷優(yōu)先級(jí)最高,IR7的中斷優(yōu)先級(jí)最低。特殊全嵌套方式特殊全嵌套方式與全嵌套方式所不同的是,當(dāng)CPU處理某一級(jí)中斷時(shí),若有同級(jí)中斷請(qǐng)求,則CPU也會(huì)作出響應(yīng),從而形成了對(duì)同一級(jí)中斷的特殊嵌套。此方式通常應(yīng)用在有8259A級(jí)連的系統(tǒng)中,對(duì)主8259A編程時(shí),通常使它工作在特殊全嵌套方式下。這樣,一方面,CPU對(duì)于優(yōu)先級(jí)別較高的從片的中斷請(qǐng)求是允許的;另一方面,CPU對(duì)于來(lái)自同一從片的優(yōu)先級(jí)別較高(但對(duì)于主片來(lái)講,優(yōu)先級(jí)別是相同的)的中斷請(qǐng)求也是允許并能夠響應(yīng)的。
嵌套方式ICWi寫入的流程如圖⑵初始化命令字(ICWi)寫入的流程寫ICW1寫ICW2寫ICW3初始化完寫ICW4級(jí)聯(lián)?要ICW4NYYN寫在偶地址寫在奇地址
在初始化后,可在任意時(shí)刻寫入8259A。
OCW1--屏蔽操作命令字,格式如圖所示。⑶
8259的操作命令字由引腳A0=1確定
中斷結(jié)束和優(yōu)先級(jí)循環(huán)控制字,用來(lái)設(shè)置非自動(dòng)中斷結(jié)束和優(yōu)先級(jí)循環(huán)方式的操作命令字。格式如圖所示。OCW2由引腳A0=0及D4D3=00確定00優(yōu)先級(jí)
優(yōu)先級(jí)自動(dòng)循環(huán)方式在實(shí)際應(yīng)用中,若要求中斷源有相同的優(yōu)先級(jí),可設(shè)置為該方式。系統(tǒng)啟動(dòng)時(shí),8級(jí)中斷優(yōu)先級(jí)默認(rèn)為IR0~IR7,是從高到低。優(yōu)先級(jí)特殊循環(huán)方式該方式與自動(dòng)循環(huán)方式不同的是,初始化的優(yōu)先級(jí)是由程序控制的,而不是默認(rèn)的IR0~IR7。
優(yōu)先級(jí)
狀態(tài)操作字,其格式如圖所示
OCW3由引腳A0=0及D4D3=01確定01查詢?cè)O(shè)置屏蔽方式設(shè)置
查詢?cè)O(shè)置
普通屏蔽方式
8259A的每個(gè)中斷請(qǐng)求輸入,都要受到屏蔽寄存器中對(duì)應(yīng)位的控制。若對(duì)應(yīng)位為“1”,則中斷請(qǐng)求無(wú)法送至CPU。屏蔽是通過(guò)對(duì)屏蔽寄存器IMR的編程,即寫操作命令字
OCW1來(lái)設(shè)置和改變的。特殊屏蔽方式:原因:能動(dòng)態(tài)地改變系統(tǒng)中的中斷優(yōu)先級(jí)結(jié)構(gòu),即在中斷處理的一部分,禁止低級(jí)中斷;而在中斷處理的另一部分,又能夠允許低級(jí)中斷,于是引入了對(duì)特殊屏蔽方式。設(shè)置該方式后,通過(guò)OCW1對(duì)IMR中的某一位置位時(shí),同時(shí)也會(huì)使ISR中的其它位復(fù)位,這樣一方面屏蔽了正在處理的同級(jí)中斷,另一方面也開放了其它優(yōu)先級(jí)別低的中斷請(qǐng)求。特殊屏蔽是在中斷處理程序中使用的,對(duì)外界來(lái)講,只有同級(jí)中斷被屏蔽,即允許其它任何級(jí)別的中斷請(qǐng)求。例:將單片8259A接入8088系統(tǒng)中,設(shè)計(jì)其端口地址為
0FFF0H和0FFF1H。
其連接如圖所示。5.8259A的初始化編程舉例初始化包含的內(nèi)容:①8259A的初始化②完成中斷向量表的設(shè)置(1)初始化MOV DX,0FFF0H MOV AL,13H OUT DX,AL MOV DX,0FFF1H MOV AL,0F8H OUT DX,AL MOV AL,03H OUT DX,AL 8259A口地址,A0=0初始化字“00010011”送ICW1單片,邊沿觸發(fā),需要ICW48259A口地址,A0=1初始化字“11111000”送ICW2設(shè)置起始中斷類型號(hào)(IR0)為F8H初始化字“00000011”送ICW48086/8088模式,AEOI,非緩沖,一般全嵌套方式⑵設(shè)置中斷向量
用戶自行設(shè)計(jì)的中斷,當(dāng)初始化完成后,需要人為設(shè)置中斷向量表,以使設(shè)計(jì)的中斷向量與相應(yīng)的中斷處理程序建立連接。假設(shè)8個(gè)中斷源所對(duì)應(yīng)的中斷號(hào)從F8H開始,對(duì)應(yīng)的中斷處理程序在內(nèi)存中存放的地址標(biāo)號(hào)為PROG0(IR0)、PROG1(IR1)、…、PROG7(IR7)程序段見下一頁(yè)MOV AX,0 ;設(shè)置IR0對(duì)應(yīng)的中斷向量表MOV DS,AX ;段地址設(shè)定在內(nèi)存的最前端MOV SI,3E0H ;IR0的中斷號(hào)(F8H)對(duì)應(yīng)的內(nèi)存地址“4*F8”MOV AX,OFFSETPROG0
;取得IR0中斷處理程序的偏移地址MOV [SI],AX ;偏移地址寫入中斷號(hào)對(duì)應(yīng)的“4*F8”地址處MOV AX,SEGPROG0
;取得IR0中斷處理程序的段地址MOV [SI+2],AX
;段地址寫入中斷號(hào)對(duì)應(yīng)的“4*F8+2”地址處設(shè)置中斷向量程序段6.4DMA控制器程序控制和中斷方式下: 外設(shè)CPU存儲(chǔ)器直接存儲(chǔ)器存取DMA:不經(jīng)CPU,不用指令
外設(shè)→存儲(chǔ)器(DMA寫)外設(shè)←存儲(chǔ)器(DMA讀)擴(kuò)展:外設(shè)?外設(shè)1.引入原因2.DMA概念數(shù)據(jù)在I/O接口與存儲(chǔ)器之間傳送時(shí),不經(jīng)CPU的干預(yù),而是在專用硬件電路的控制下直接傳送,這種方法稱為直接存儲(chǔ)器存取(DirectMemoryAccess,縮寫為DMA)。為實(shí)現(xiàn)這種工作方式而設(shè)計(jì)的專用接口電路,稱為
DMA控制器(DMAC)3.原理
CPU出讓系統(tǒng)總線(輸出高阻),由DMA控制器(DMAC)接管系統(tǒng)總線,管理數(shù)據(jù)的傳輸。6.4.1DMA傳送的工作過(guò)程(1)當(dāng)外設(shè)準(zhǔn)備好時(shí),向DMAC發(fā)出DMA傳送請(qǐng)求信號(hào)
(DRQ)。(2)DMAC收到請(qǐng)求后,向CPU發(fā)出總線請(qǐng)求信號(hào)HOLD,申請(qǐng)占用總線。(3)CPU在完成當(dāng)前總線周期后會(huì)立即對(duì)HOLD信號(hào)進(jìn)行響應(yīng)。(4)DMAC收到HLDA信號(hào)后,向外設(shè)發(fā)出DMA響應(yīng)信號(hào)
DACK(5)DMAC送出地址信號(hào)和相應(yīng)的控制信號(hào),實(shí)現(xiàn)外設(shè)與內(nèi)存或內(nèi)存與內(nèi)存之間的直接數(shù)據(jù)傳送。6.4.1DMA傳送的工作過(guò)程(2)(6)DMAC自動(dòng)修改地址和字節(jié)計(jì)數(shù)器,并據(jù)此判斷是否需要重復(fù)送操作。(7)規(guī)定的數(shù)據(jù)傳送完后,DMAC就撤消發(fā)往CPU的HOLD信號(hào)。CPU檢測(cè)到HOLD失效后,緊接著撤消HLDA信號(hào),并在下一時(shí)鐘周期重新開始控制總線,并繼續(xù)執(zhí)行原來(lái)的程序。
傳送方式的比較無(wú)條件傳送:慢速外設(shè)需與CPU保持同步;查詢傳送:簡(jiǎn)單實(shí)用,效率較低;中斷傳送:外設(shè)主動(dòng),可與CPU并行工作,但每次傳送需要大量額外時(shí)間開銷;DMA傳送:DMAC控制,外設(shè)直接和存儲(chǔ)器進(jìn)行數(shù)據(jù)傳送,適合大量、快速數(shù)據(jù)傳送。6.4.2DMA控制器8237A
1.8237的主要功能在一個(gè)片子中有4個(gè)獨(dú)立的DMA通道。每個(gè)通道的DMA請(qǐng)求都可以分別允許和禁止。每個(gè)通道的DMA請(qǐng)求有不同的優(yōu)先權(quán)。優(yōu)先權(quán)可以是固定的,也可以是循環(huán)的。每個(gè)通道一次傳送的最大長(zhǎng)度可達(dá)64KB??梢杂眉?jí)連的方法擴(kuò)展通道數(shù)。2.8237A的內(nèi)部結(jié)構(gòu)
8237A的內(nèi)部結(jié)構(gòu)由以下三個(gè)基本部分組成:
控制邏輯單元、緩沖器組、內(nèi)部寄存器控制邏輯單元緩沖器組存放DMA操作時(shí)將要傳送的字節(jié)(16)存放DMA操作時(shí)將要訪問(wèn)的存儲(chǔ)器地址(16)
在存儲(chǔ)器到存儲(chǔ)器的傳送方式下,其保存從源存儲(chǔ)單元讀出的數(shù)據(jù),再由它寫到目的存儲(chǔ)單元⑴與CPU相連的引腳A3~A0:低8位地址線的低4位,雙向、三態(tài)當(dāng)CPU控制總線時(shí),輸入,表示8237A內(nèi)部寄存器的地址信號(hào);當(dāng)DMA操作時(shí),輸出,表示存儲(chǔ)器的地址。A7~A4:低8位地址線的高4位,三態(tài)、輸出僅用在進(jìn)行DMA操作時(shí),提供訪問(wèn)存儲(chǔ)器低字節(jié)的高4位地址。D7~D0:數(shù)據(jù)線,雙向、三態(tài)。當(dāng)CPU控制總線時(shí),表示CPU訪問(wèn)8237A寄存器的數(shù)據(jù)通道;當(dāng)DMA操作時(shí),表示訪問(wèn)存儲(chǔ)器的高8位地址A15~A8。IOR:I/O讀信號(hào),雙向、三態(tài)、低電平有效當(dāng)CPU控制總線時(shí),輸入,CPU利用它讀出8237A
內(nèi)部寄存器;當(dāng)DMA操作時(shí),輸出,與MEMW配合實(shí)現(xiàn)DMA寫操作。
MEMW,MEMR,IOW,CS,HREQ,HLDA3.8237A的外部引腳⑵與外設(shè)相連的引腳DREQ3~DREQ0:DMA請(qǐng)求信號(hào),輸入、有效電平可由工作方式命令字確定。DACK3~DACK0:DMA響應(yīng)信號(hào),輸出、有效電平可由工作方式命令字確定。一般利用該信號(hào)選中某端口,實(shí)現(xiàn)I/O存儲(chǔ)器的傳送。⑶其它引腳
CLK:時(shí)鐘信號(hào),輸入。
RESET:復(fù)位信號(hào),輸入、高電平有效
READY:準(zhǔn)備好信號(hào),輸入、高電平有效
AEN:地址允許信號(hào),輸出、高電平有效。
DMA操作時(shí),AEN=1;
CPU控制總線時(shí),AEN=0。
ADSTB:地址選通信號(hào),輸出、高電平有效
EOP:過(guò)程結(jié)束信號(hào),雙向、低電平有效。為輸出時(shí),在DMA傳送期間,當(dāng)字節(jié)數(shù)計(jì)數(shù)器減至0時(shí),使其變?yōu)榈碗娖?,表示DMA傳送結(jié)束;為輸入時(shí),當(dāng)EOP端輸入一個(gè)低電平時(shí),強(qiáng)迫DMA操作停止,并使內(nèi)部寄存器復(fù)位。VCC、GND:電源和接地引腳。⑴方式字格式如圖所示。DMA傳輸類型傳送方式4.8237A可編程寄存器
DMA讀傳送把存儲(chǔ)器的數(shù)據(jù)讀出傳送至外設(shè)。操作時(shí)從存儲(chǔ)器讀出數(shù)據(jù),寫入外設(shè)。
DMA寫傳送把外設(shè)輸入的數(shù)據(jù)寫至存儲(chǔ)器中。操作時(shí)從外設(shè)輸入數(shù)據(jù),寫入存儲(chǔ)器。
DAM校驗(yàn)傳送這種方式實(shí)際不進(jìn)行數(shù)據(jù)傳送,只是完成某種校驗(yàn)過(guò)程。此時(shí),它也具有系統(tǒng)總線的控制權(quán),并且都響應(yīng)外部設(shè)備的DMA請(qǐng)求,只是不產(chǎn)生存儲(chǔ)器或I/O設(shè)備的控制信號(hào),這就阻止了數(shù)據(jù)的傳送。但I(xiàn)/O設(shè)備可以使用DACK響應(yīng)信號(hào),在I/O設(shè)備內(nèi)部對(duì)一個(gè)指定的數(shù)據(jù)塊的每一個(gè)字節(jié)進(jìn)行存取,以便校驗(yàn)。DMA傳輸類型
傳送方式(1)單字節(jié)傳送方式每響應(yīng)一次DMA申請(qǐng),只傳輸一個(gè)字節(jié)的數(shù)據(jù)。過(guò)程如下:
①
每傳送一個(gè)字節(jié)后,當(dāng)前地址寄存器的數(shù)加1(或減1),當(dāng)前字節(jié)計(jì)數(shù)器的值減1,然后8237A釋放系統(tǒng)總線,總線控制權(quán)交給CPU。
②
8237A釋放控制權(quán)后,馬上對(duì)DREQ進(jìn)行測(cè)試。若DREQ有效,再次發(fā)總線請(qǐng)求信號(hào),進(jìn)入下一字節(jié)的傳送。如此循環(huán)下去,直至計(jì)數(shù)值為0,結(jié)束DMA傳送。
傳送方式(2)塊傳送方式
8237A每響應(yīng)一次DMA請(qǐng)求,按照當(dāng)前字節(jié)計(jì)數(shù)器的設(shè)定值完成字節(jié)傳送的個(gè)數(shù),直到計(jì)數(shù)器由0減到
0FFFFH為止,這時(shí)結(jié)束DMA傳送,DMAC讓出總線控制權(quán)。級(jí)連傳送方式級(jí)連傳送方式實(shí)際上是擴(kuò)充通道數(shù),若干片8237A
構(gòu)成主從式DMA系統(tǒng)。
傳送方式(3)請(qǐng)求傳送方式與塊傳送方式相同,按照字節(jié)計(jì)數(shù)器的設(shè)定值進(jìn)行傳送,只是在這種傳送方式下,要求DREQ在整個(gè)傳送期間一直保持有效,每傳送一個(gè)字節(jié)對(duì)DREQ進(jìn)行測(cè)試。如果檢測(cè)到DREQ端變?yōu)闊o(wú)效電平,暫停傳送.讓出總線控制權(quán),但仍對(duì)DREQ端進(jìn)行檢測(cè)。當(dāng)DREQ恢復(fù)有效電平,又重新申請(qǐng)CPU讓出總線,CPU讓出總線后,就在原來(lái)基礎(chǔ)上繼續(xù)傳送。當(dāng)計(jì)數(shù)值變?yōu)?,或出外界輸入EOP有效信號(hào)時(shí),將結(jié)束DMA的傳送。
是在初始化時(shí)寫入8位命令寄存器,4個(gè)通道共用,各位定義如圖所示。⑵
命令字?jǐn)U展寫信號(hào)選擇位。D5=1,為擴(kuò)展寫信號(hào)時(shí)序,它使IOW或
MEMW的負(fù)脈沖加寬,提前一個(gè)時(shí)鐘周期有效。D5=0,為滯后寫時(shí)序,IOW或MEMW
比IOR或MEMR滯后一個(gè)時(shí)鐘周期有效DMA請(qǐng)求可以由I/O設(shè)備產(chǎn)生DREQ信號(hào),也可以由軟件產(chǎn)生。請(qǐng)求寄存器就是用于由軟件來(lái)產(chǎn)生的DMA請(qǐng)求。存儲(chǔ)器到存儲(chǔ)器的傳送,一般利用軟件產(chǎn)生DMA請(qǐng)求。軟件請(qǐng)求是不可屏蔽的,其格式如圖所示。⑶請(qǐng)求字記錄各通道的DMA請(qǐng)求是否被允許,如圖所示。⑷
屏蔽字單通道屏蔽字格式,寫入地址為0AH綜合屏蔽字格式,寫入地址為0FH格式如圖
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 壓緊氣缸采購(gòu)合同范本
- 縣勞務(wù)輸出合同范本
- 化肥賒欠合同范例
- 辦公電腦訂購(gòu)合同范本
- 出國(guó)出境勞務(wù)合同范本
- 北京土方備案合同范本
- 廠房水電安裝合同范本
- 副食進(jìn)貨合同范本
- 合同范本模板收費(fèi)
- 南園新村租房合同范本
- 2024-2025年江蘇專轉(zhuǎn)本英語(yǔ)歷年真題(含答案)
- 永磁滾筒設(shè)備操作規(guī)程
- 2024解析:第五章透鏡及其應(yīng)用-講核心(解析版)
- 《子宮肉瘤》課件
- 地?zé)崮芾眉夹g(shù)的原理與應(yīng)用考核試卷
- 《機(jī)器人驅(qū)動(dòng)與運(yùn)動(dòng)控制》全套教學(xué)課件
- 大班科學(xué)活動(dòng)小實(shí)驗(yàn)
- 新能源汽車概論課件 2.1認(rèn)知新能源汽車動(dòng)力電池技術(shù)
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院《中國(guó)文化史》2021-2022學(xué)年第一學(xué)期期末試卷
- 2024屆清華大學(xué)強(qiáng)基計(jì)劃數(shù)學(xué)學(xué)科筆試試題(附答案)
- 偵查學(xué)總論學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評(píng)論
0/150
提交評(píng)論