通常采用的有三種i/o控制方式:程序控制方式、中斷控制方式和直接存儲(chǔ)器存取方式。
在進(jìn)行微機(jī)控制系統(tǒng)設(shè)計(jì)時(shí),可按不同要求來(lái)選擇各外圍設(shè)備的控制方式。
1.程序控制方式
程序控制i/o方式是指cpu和外圍設(shè)備之間的信息傳送是在程序控制下進(jìn)行的。它又可分為無(wú)條件i/o方式和查詢式i/o方式。
(1)無(wú)條件i/o方式
無(wú)條件傳送方式的工作原理如圖1所示。
圖1 無(wú)條件傳送方式i/o接口的電路原理圖
(2)查詢式i/o方式
查詢式i/o方式也稱為條件傳送方式。按查詢式i/o方式傳送信息時(shí),cpu和外圍設(shè)備的i/o接口除需設(shè)置數(shù)據(jù)端口外,還要有狀態(tài)端口。查詢式i/o接口電路的原理框圖如圖2所示。
圖2 查詢式i/o方式接口電路的原理框圖
查詢式i/o方式是微機(jī)控制系統(tǒng)中經(jīng)常采用的方式。假設(shè)某微機(jī)控制系統(tǒng)中采用查詢式對(duì)1#、2#、3#三個(gè)外圍設(shè)備進(jìn)行i/o管理,其查詢和i/o處理的簡(jiǎn)化程序流程圖如圖3所示。
圖3 查詢式i/o處理簡(jiǎn)化程序流程圖
2.中斷控制i/o方式
為了提高cpu的效率和使系統(tǒng)具有良好的實(shí)時(shí)性,可以采用中斷控制i/o方式。
在中斷傳送時(shí)的接口電路如圖4所示。
圖4 中斷傳送方式的接口電路
微機(jī)控制系統(tǒng)中,可能設(shè)計(jì)有多個(gè)中斷源,且多個(gè)中斷源可能同時(shí)提出中斷請(qǐng)求。多重中斷處理必須注意如下四個(gè)問(wèn)題:
(1)保存現(xiàn)場(chǎng)和恢復(fù)現(xiàn)場(chǎng)。
(2)正確判斷中斷源。
(3)實(shí)時(shí)響應(yīng)。
(4)按優(yōu)先權(quán)順序處理。
3.直接存儲(chǔ)器存?。╠ma)方式
利用中斷方式進(jìn)行數(shù)據(jù)傳送,可以大大提高cpu的利用率。但在中斷方式下,仍必須通過(guò)cpu執(zhí)行程序來(lái)完成數(shù)據(jù)的傳送。每進(jìn)行一次數(shù)據(jù)傳送,就要執(zhí)行一次中斷過(guò)程,其中保護(hù)和恢復(fù)斷點(diǎn)、保護(hù)和恢復(fù)寄存器內(nèi)容的操作與數(shù)據(jù)傳送沒(méi)有直接關(guān)系,但會(huì)花費(fèi)掉cpu的不少時(shí)間。
dma的工作流程如圖5所示。
圖5 dma的工作流程圖
實(shí)現(xiàn)上述操作的dma控制器的硬件框圖如圖6所示。
圖6 dma控制器框圖
圖7 8237a的內(nèi)部編程結(jié)構(gòu)和外部連接