輸入與輸出接口課件_第1頁
輸入與輸出接口課件_第2頁
輸入與輸出接口課件_第3頁
輸入與輸出接口課件_第4頁
輸入與輸出接口課件_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第五章微機與外設(shè)的數(shù)據(jù)交換5.1微機與外設(shè)的數(shù)據(jù)交換方式5.28259中斷控制器5.38237DMA控制器5.4多功能I/O接口芯片82380本章學(xué)習(xí)目標(biāo)8259的工作原理及組成結(jié)構(gòu)。8237的工作原理及組成結(jié)構(gòu)。根據(jù)具體的芯片編寫出可執(zhí)行的匯編語言程序。5.1微機與外設(shè)的數(shù)據(jù)交換方式

請求方式數(shù)據(jù)交換硬件支持性能特點查詢方式軟件查詢外設(shè)狀態(tài)軟件進行數(shù)據(jù)傳送獨占CPU無其他硬件定時協(xié)調(diào)好CPU效率低中斷方式硬件發(fā)生中斷請求中斷程序傳送數(shù)據(jù)中斷控制器8259等CPU分時操作、中斷處理費時DMA方式DMAC轉(zhuǎn)發(fā)總線請求DMAC控制數(shù)據(jù)傳送DMA控制器8237等DMA硬件控制需CPU參與通道方式CPU建立I/O操作信息表IOP讀信息表控制I/O操作IO協(xié)處理器8089等IOP控制傳數(shù)CPU其它操作◆查詢、中斷、DMA是CPU控制I/O方式5.2.18259PIC結(jié)構(gòu)8259的讀寫邏輯讀寫邏輯A0D4D3操作001x10DB→ICW1

000010DB→OCW2000110DB→OCW301xx10DB→ICW2、ICW3、ICW4或OCW10001查詢中斷碼、ISR、IRR→DB0101IMR→DB5.2.15.2.28259的編程

1.ICWA0D7D6D5D4D3D2D1D00A7A6

A51LTIMADISNGLIC41

A15

T7A14

T6A13

T5A12

T4A11T3A10A9A8芯片控制1:電平觸發(fā)0:邊緣觸發(fā)調(diào)用間隔1:間隔為40:間隔為81:單片0:級聯(lián)方式1:需要ICW40:不需ICW4(1)初始化命令字ICW1(2)初始化命令字ICW28080/8085中斷程序入口8086/8088中斷類型碼1S7S6S5S4S3S2S1S0ID2ID1ID01000SFNMBUFM/SAEOIPM1:特殊全嵌套0:一般全嵌套0x:非緩沖方式11:緩沖方式(主)10:緩沖方式(從)1:自動EOI0:正常EOI1:8086/80880:8080/8085(3)初始化命令字ICW3(主從控制)主:從:(4)初始化命令字ICW4(工作方式)1.ICWA01:有從片0:無從片從片標(biāo)志代碼主從控制:

主ICW3:Si=1→IRi上有從片的標(biāo)記。從ICW3:ID2ID1ID0這最低3位為聯(lián)向主IRi的從片標(biāo)志代碼。主從片都存在自己的級聯(lián)緩沖/比較器。級聯(lián)響應(yīng)時::主片輸出響應(yīng)從片的標(biāo)記對應(yīng)的標(biāo)志代碼,從片都把CAS2~CAS0上代碼與自己標(biāo)志代碼比較。:確認被響應(yīng)的從片輸出中斷向量號。1.ICW

全嵌套:(1)一般全嵌套:IRi響應(yīng)→ISRi=1,屏蔽IRi—IR7。IRi接從8259,主ISRi=1時,IRi上來自從8259上更高的中斷請求不能響應(yīng)。(2)特殊全嵌套:IRi響應(yīng)→ISRi=1,屏蔽IRi+1—IR7,允許同級和高級請求中斷。結(jié)束中斷:EOI送從片清ISR位→讀從片ISR為全0時→EOI送主片清ISR位。5.2.2(5)初始化命令字的編程順序5.2.2開始ICW1(A0=0,D4=1)ICW2(A0=1)SNGL=0?(級聯(lián)方式)ICW3(A0=1)IC4=1?ICW4(A0=1)準備接受中斷YYNN開始ICW1(A0=0,D4=1)ICW2(A0=1)SNGL=0?(級聯(lián)方式)ICW3(A0=1)IC4=1?ICW4(A0=1)準備接受中斷2.OCW0RSLEOI00L2L1L0設(shè)置L2L1L0指定的IRL2L1L0:IR的優(yōu)先級碼(BCD)1:循環(huán)優(yōu)選級0:固定優(yōu)選級0:自動中斷結(jié)束。EOIA01:中斷完成之后需要發(fā)送中斷結(jié)束命令。5.2.2OCW2:2.OCWICW1—AEOI1:↓→ISRi←00:OCW2—SL和EOI01:EOI命令:清最高級ISRi11:SEOI命令:清L2L1L0指定ISRi(2)優(yōu)先級(a)固定優(yōu)先級:IR0~~IR7(最低)(1)中斷結(jié)束5.2.2OCW2的編程:2.OCW(2)優(yōu)先級(續(xù))(b)循環(huán)優(yōu)先級:RSLEOIL2L1L0101EOI時,優(yōu)先級循環(huán)至剛服務(wù)的IR最低111SEOI時,優(yōu)先級循環(huán)至L2L1L0指定的IR最低100AEOI時,置優(yōu)先級循環(huán)000AEOI時,清優(yōu)先級循環(huán)110置L2L1L0指定的IR優(yōu)先級最低5.2.23.OCW的編程(1)特殊屏蔽(a)一般屏蔽通過OCW1,使8259A中的屏蔽寄存器IMR中的一位或若干位置1來屏蔽IRR對應(yīng)位的中斷源。一個中斷源的屏蔽不影響其他中斷源的請求。當(dāng)某一中斷請求被響應(yīng)時,ISR中相應(yīng)位置1,屏蔽了同級(一般全嵌套方式)和較低級中斷請求。

IMRi=1→IRi被屏蔽,不影響IR上操作

ISRi=1→IRi—IR7被屏蔽(FUM)/IRi+1—IR7被屏蔽(SFUM)5.2.23.OCW的編程(1)特殊屏蔽(續(xù))(b)特殊屏蔽方式在某些希望一個中斷服務(wù)程序能動態(tài)改變系統(tǒng)優(yōu)先級結(jié)構(gòu)的場合,常采用特殊屏蔽方式。即在此中斷服務(wù)程序中,用OCW1將屏蔽寄存器中本級中斷的對應(yīng)位置1,即將本級中斷屏蔽;然后寫入OCW3,使ESMM=1、SMM=1,這樣使中斷服務(wù)寄存器中當(dāng)前對應(yīng)位自動清0,為開放較低級中斷請求提供可能。特殊屏蔽方式總是在中斷處理程序中使用的。采用這種方式后,由于本級中斷在中斷服務(wù)程序中被屏蔽,對外界來說,好像CPU未處理任何中斷。這樣即使是最低級中斷請求,也會得到響應(yīng)。需要特殊屏蔽方式復(fù)位時,給8259A送OCW3,使ESMM=1、SMM=0;然后送OCW1,使本級中斷的屏蔽位清除,最后向8259A送中斷結(jié)束命令結(jié)束服務(wù)。

OCW3——ESMM,SMM=11

IMRi=1IRi被屏蔽,允許未被IMR屏蔽

ISRi=1的中斷請求

5.2.23.OCW的編程(2)查詢中斷

IF=0隨后的(當(dāng)=0)作為→ISR位置1

OCW3P=1IN的IRR中最高級IR二進制代碼→DB(A0=0)

IxxxxW2W1W0

0:無中斷1:有中斷

二進制碼→轉(zhuǎn)入相應(yīng)中斷服務(wù)程序

用途:1.無需中斷響應(yīng),節(jié)省存儲空間2.把中斷擴大到64級以上

一種用軟件確定中斷請求位的方式,一般在一個中斷服務(wù)程序可為幾個中斷設(shè)備服務(wù)的場合使用。其特點是外設(shè)仍通過8259A申請中斷(可為邊沿觸發(fā)或電平觸發(fā),由ICW1設(shè)置)。但8259A卻不使用INT信號向CPU申請中斷;CPU內(nèi)部將IF復(fù)位,禁止CPU用硬件響應(yīng)中斷請求;CPU用軟件查詢確定中斷源,從而實現(xiàn)對設(shè)備的中斷服務(wù)。CPU的查詢命令是通過OCW3的P=1設(shè)置來實現(xiàn)的,CPU隨后的IN指令作為中斷響應(yīng)。若有中斷請求,便識別出最高級的中斷請求,使ISR中相應(yīng)位置位,轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序。5.2.28259的級聯(lián)圖5.2.38259的級聯(lián)2.初始化主、從8259都要分別設(shè)置ICW1—SNGL←0ICW2:各自分別設(shè)置ICW3:主片設(shè)置連從片的IRi的標(biāo)記從片設(shè)置連主片的IRi的標(biāo)志代碼ICW4:主片SFUM←1,從片SFUM←0

BUF和M/S根據(jù)情況設(shè)置其它各自按情況設(shè)置3.中斷過程(1)IR0~IR7中1或幾條請求有效,IRRi←1(2)優(yōu)先級判優(yōu)電路根據(jù)IRR、IMR、ISR的狀態(tài)選出未屏蔽的最高優(yōu)先級的IRRi作為INT→CPUINTR(3)當(dāng)IF=1,在指令結(jié)束時,CPU響應(yīng)中斷。5.2.38259的級聯(lián)(4)CPU處理中斷向量號,保護現(xiàn)場,轉(zhuǎn)入中斷服務(wù)程序。(5)中斷嵌套中斷服務(wù)程序中IF=1,允許嵌套。優(yōu)先級高的中斷請求可以中斷優(yōu)先級低的中斷服務(wù)。主片SPUM方式下允許同一從片實行中斷嵌套。(6)中斷服務(wù)(7)中斷結(jié)束非AEOI要發(fā)EOI命令,清除ISRi位,恢復(fù)標(biāo)志和斷點返回主程序在SPUM要發(fā)送兩次EOIEOI→從8259,測試從8259的ISR為全0,EOI→主8259不為0,不向主8259發(fā)EOI中斷處理程序舉例……OLD0C DD ?……CODE SEGMENT ……MOV AX,350CH ;保存原來的0CH中斷向量INT 21HMOV WORD PTROLD0C,BXMOV WORD PTROLD0C+2,ESMOV AX,CODE ;寫入新的0CH中斷向量MOV DS,AXMOV DX,OFFSETSERVICEMOV AX,250CHINT 21H…… ;其它程序段;中斷處理子程序;中斷處理子程序SERVICE PROC PUSHA ;保護現(xiàn)場

PUSH DS STI ;打開中斷 …… ;串口數(shù)據(jù)處理程序 ……

CLI ;關(guān)閉中斷

POP DS ;恢復(fù)現(xiàn)場

POPA IRETSERVICE ENDP讀(IOR)表8237A寄存器口地址寫(IOW)I/O口地址寄

器00讀通道0當(dāng)前地址寄存器寫通道0基地址與當(dāng)前地址寄存器01讀通道0當(dāng)前字節(jié)計數(shù)寄存器寫通道0基字節(jié)計數(shù)與當(dāng)前字節(jié)計數(shù)寄存器02讀通道1當(dāng)前地址寄存器寫通道1基地址與當(dāng)前地址寄存器03讀通道1當(dāng)前字節(jié)計數(shù)寄存器寫通道1基字節(jié)計數(shù)與當(dāng)前字節(jié)計數(shù)寄存器04讀通道2當(dāng)前地址寄存器寫通道2基地址與當(dāng)前地址寄存器05讀通道2當(dāng)前字節(jié)計數(shù)寄存器寫通道2基字節(jié)計數(shù)與當(dāng)前字節(jié)計數(shù)寄存器06讀通道3當(dāng)前地址寄存器寫通道3基地址與當(dāng)前地址寄存器07讀通道3當(dāng)前字節(jié)計數(shù)寄存器寫通道3基字節(jié)計數(shù)與當(dāng)前字節(jié)計數(shù)寄存器08讀狀態(tài)寄存器寫命令寄存器09--寫請求寄存器0A--寫單個屏蔽位的屏蔽位寄存器0B--寫工作方式寄存器0C--寫清除先/后觸發(fā)器命令0D讀暫存寄存器寫清除命令(總清)0E--寫清4個屏蔽位的屏蔽寄存器0F--寫4個屏蔽位的屏蔽寄存器

8237A寄存器口地址5.3.28237內(nèi)部寄存器和編程1.內(nèi)部寄存器及軟件命令(1)地址R(2)字計數(shù)R基地址R當(dāng)前寄存器的初值,自動預(yù)置時重送給當(dāng)前R;基字計數(shù)R與當(dāng)前R同時裝入,不能讀出當(dāng)前地址R:DMA傳送的MEM地址,自動±1,自動預(yù)置時,產(chǎn)生,重裝當(dāng)前字計數(shù)R:DMA未傳送的字節(jié)數(shù),自動減1減過0(0-1=FFFFH)時,置TC位初始化為比要傳輸?shù)淖止?jié)數(shù)少1的值5.3.28237內(nèi)部寄存器和編程(3)工作方式R(寫,0BH)(每個通道都有一個)D7D6D5D4D3D2D1D0傳送方式地址增減自動預(yù)置操作類型CH選擇01:單次傳送,1次1字節(jié),兩單次傳送總線釋放至少1周期10:成組傳送連續(xù),TC/為止00:請求傳送連續(xù),TC//DREQ無效為止11:級聯(lián)傳送:上級DREQ←下級HRQ上級DACK→下級HLDA0:地址增1:地址減1:允許自動預(yù)置0:禁止自動預(yù)置00:檢驗,不傳送01:寫I/O———→M10:讀M———→I/O11:無效00:CH001:CH110:CH211:CH3DATADATAD7D6D5D4D3D2D1D00:禁止存儲器到存儲器之間的數(shù)據(jù)傳送1:允許存儲器到存儲器之間的數(shù)據(jù)傳送

0:禁止保持通道0地址(當(dāng)前)1:允許保持通道0地址(當(dāng)前)

0:正常時序1:壓縮時序

0:固定優(yōu)先級1:循環(huán)優(yōu)先級0:DACK低電平有效1:DACK高電平有效0:DREQ高電平有效1:DREQ低電平有效

0:選擇滯后寫1:選擇擴展寫(4)命令寄存器(寫,08H)0:允許DMAC工作1:禁止DMAC工作(5)請求寄存器(寫09H,寫請求R單個位)D7D6D5D4D3D2D1D0不用

00:CH001:CH110:CH211:CH3

0:清請求位1:置請求位①DMA請求可以通過DREQ硬件輸入和編程軟件請求→請求標(biāo)志位②請求位不能屏蔽,有規(guī)定的優(yōu)先級③M→M用寫CH0的請求位啟動④清請求R中相應(yīng)位,RESET信號和主清命令總清請求R⑤軟件請求一般用于成組類的DMA傳送(6)屏蔽寄存器(寫0AH、0FH、0EH)每CH一位,置屏蔽位,禁止本CHDREQ有效請求進入請求R

①寫屏蔽R單個位(寫0AH)②寫屏蔽R所有位(寫0FH)D7D6D5D4D3D2D1D0不用

0:清CH0屏蔽位1:置CH0屏蔽位

0:清CH1屏蔽位1:置CH1屏蔽位

0:清CH2屏蔽位1:置CH2屏蔽位

0:清CH3屏蔽位1:置CH3屏蔽位D7D6D5D4D3D2D1D0不用

00:CH001:CH110:CH211:CH3

0:清屏蔽位1:置屏蔽位(6)屏蔽寄存器(寫0AH、0FH、0EH)(續(xù))③清屏蔽R所有命令位(寫0EH)清除屏蔽R所有位,各CH均允許DMA請求DREQ※當(dāng)某CH設(shè)置為非自動預(yù)置時,置相應(yīng)屏蔽位

RESET信號和主清命令總置屏蔽R所有位。(7)軟件命令①主清命令:OUT0DH,AL;同RESET信號:清命令、狀態(tài)、請求、暫存寄存器和先/后觸發(fā)器,置各通道的屏蔽標(biāo)志。②清先/后觸發(fā)器命令:OUTOCH,AL;寫16位二進制數(shù)時,自動翻轉(zhuǎn)。③清屏蔽寄存器命令:OUTOEH,AL;清所有屏蔽位D7D6D5D4D3D2D1D0CH3CH2CH1CH0CH3CH2CH1CH0(8)狀態(tài)寄存器(讀08H)CHi請求DMA服務(wù)和響應(yīng)時置1TC=1/=0→置1RESET=1/讀狀態(tài)寄存器→清0(9)暫存寄存器(讀0DH)①M→暫存寄存器→M②最后一個字節(jié)可讀③RESET清除2.8237初始化編程MOVAL,04H;檢測前禁止8237工作OUT08H,ALOUT0DH,AL;主清除命令……MOVAL,00HOUT08H,AL;寫命令寄存器MOVAL,0FFHOUT01H,AL;裝字計數(shù)寄存器低8位PUSHAXOUTO1H,AL;裝高8位MOVAL,58HOUT0BH,AL;寫CH0方式寄存器MOVAL,00HOUT0AH,AL;清CH0屏蔽位5.3.3

8237的工作

流程和時序

(1)初始化8237:起始地址、數(shù)據(jù)長度、工作方式、操作類型等。(2)外設(shè)→8237=1→8237HRQ=1→CPUHOLD=1→CPUHLDA=1→8237HLDA=1→8237=1→外設(shè)。(3)DMA周期①當(dāng)前地址R輸出高8位地址→DB7—DB0→ADSTB↓時存入地址鎖存器→AEN=1送上A15—A8;當(dāng)前地址R輸出低8位地址→A7—A0。②8237發(fā),讀出數(shù)據(jù)送D7—D0;8237發(fā),DB上數(shù)據(jù)送入外設(shè)/存儲器。③一個DMA周期后,當(dāng)前地址R+/-1,當(dāng)前字計數(shù)器R減1,根據(jù)設(shè)定的工作方式,重復(fù)或終止。DMA工作過程(4)當(dāng)前字計數(shù)器R計數(shù)終止(TC),發(fā)出有效,終止DMA傳送。自動預(yù)置:基寄存器->當(dāng)前寄存器,請求位、屏蔽位不變;非自動預(yù)置:復(fù)位請求位、置屏蔽位、HRQ=0、釋放總線。(5)存儲器之間傳送需要2個總線周期8個狀態(tài),必須由軟件置源通道CH0的請求位啟動,也可以對外部作出響應(yīng)。這種方式可用于塊搜索,當(dāng)一個數(shù)據(jù)比較器檢測到匹配時,向8237發(fā)有效的來終止搜索。DMA工作過程(續(xù))5.3.4PC系列機中的DMA控制系統(tǒng)1PC/XT中的DMA控制邏輯2、PC/AT中的DMA系統(tǒng)邏輯結(jié)構(gòu)利用級聯(lián)的IBMPC/AT的8237主片通道5,將內(nèi)存其始地址為80000H的280H字節(jié)的內(nèi)容直接輸出到外部設(shè)備。

3.應(yīng)用舉例

MOV AL,04H ;命令字,禁止82C37工作

OUT D0H,AL ;寫命令寄存器

MOV AL,0 OUT D8H,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論