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