微處理器系統(tǒng)的基本結(jié)構(gòu)如圖1所示。
圖1 微處理器系統(tǒng)的基本結(jié)構(gòu)
對(duì)于微處理器,地址信號(hào)是輸出信號(hào),它的作用是選擇存儲(chǔ)器或i/o接口的地址。當(dāng)一個(gè)系統(tǒng)有較多的存儲(chǔ)器單元或i/o接口需要選擇時(shí),需要地址信號(hào)提供較大的驅(qū)動(dòng)能力,如所需的驅(qū)動(dòng)能力大于微處理器的輸出能力時(shí),應(yīng)對(duì)地址信號(hào)加驅(qū)動(dòng)電路。地址總線的驅(qū)動(dòng)如圖2(a)所示,常用的器件有圖2(b)所示的74ls244,它是一個(gè)單方向的緩沖器,能提供12 ma的電流驅(qū)動(dòng)能力。其使能控制端為-g,當(dāng)-g= 0時(shí),電路的輸出有效,當(dāng)-g=1時(shí)電路的輸出為高阻態(tài)。
圖2 地址總線的驅(qū)動(dòng)與驅(qū)動(dòng)電路
數(shù)據(jù)總線上傳送的是指令和數(shù)據(jù)。在微處理器讀取指令時(shí),在數(shù)據(jù)總線上傳送的是指令信息,指令從存儲(chǔ)指令的存儲(chǔ)器讀出,送入微處理器進(jìn)行處理。對(duì)于微處理器,此時(shí)的數(shù)據(jù)總線是輸入信號(hào)。在讀取或輸出數(shù)據(jù)時(shí),在數(shù)據(jù)總線上傳送的是數(shù)據(jù),這些數(shù)據(jù)將根據(jù)需要與存儲(chǔ)器或i/o接口交換。在讀取數(shù)據(jù)時(shí),對(duì)于微處理器,此時(shí)的數(shù)據(jù)總線是輸入信號(hào)。在輸出數(shù)據(jù)時(shí),對(duì)于微處理器,此時(shí)的數(shù)據(jù)總線是輸出信號(hào)。因此數(shù)據(jù)總線是雙向信號(hào),根據(jù)讀寫控制信號(hào),或讀指令控制信號(hào)能判斷其傳輸?shù)姆较颉?
很容易理解,當(dāng)微處理器連接較多的存儲(chǔ)器或i/o接口電路時(shí),需要它提供較大的負(fù)載電流,因此需要提供總線驅(qū)動(dòng)電路。但當(dāng)微處理器連接較少的存儲(chǔ)器或輸出接口電路,而這些電路與微處理器的距離較遠(yuǎn)時(shí),將有較大的電容負(fù)載,此時(shí)同樣需要總線驅(qū)動(dòng)電路。與地址總線的驅(qū)動(dòng)電路不同的是,數(shù)據(jù)總線必須采用圖3(a)所示的雙向驅(qū)動(dòng)電路,常用的器件有圖3(b)所示的74ls245,與74ls244不同的是,它不但具有使能控制信號(hào),還需方向控制信號(hào)。其使能控制端為-e,當(dāng)-e= 0時(shí),電路的輸出有效,當(dāng)-e=1時(shí)電路的輸出為高阻態(tài)。dir端決定傳送方向,當(dāng) dir=0時(shí)信號(hào)從b端流向a端,而當(dāng)dir=1時(shí)信號(hào)從a端流向b端。方向控制信號(hào)必須在讀有效時(shí)起作用,當(dāng)此信號(hào)有效時(shí)將存儲(chǔ)器或i/o接口的數(shù)據(jù)送往微處理器。在寫信號(hào)有效時(shí)微處理器的數(shù)據(jù)送往存貯器或i/o接口。
圖3 數(shù)據(jù)總線的驅(qū)動(dòng)與驅(qū)動(dòng)電路
在使用雙向緩沖器74ls245時(shí)必須考慮使能端和方向端的連接方法,通常使能端應(yīng)在存儲(chǔ)器或i/o接口被選中時(shí)起作用,而方向端則由讀信號(hào)控制。在未選中存儲(chǔ)器或i/o接口時(shí)雙向緩沖器輸出為高阻態(tài),在選中存儲(chǔ)器或i/o接口時(shí),如為讀信號(hào)有效,雙向緩沖器的輸出連接到數(shù)據(jù)總線上,將數(shù)據(jù)送往微處理器,而非讀信號(hào)時(shí)數(shù)據(jù)從微處理器送出。非讀信號(hào)有效包括了寫信號(hào)有效或時(shí)序的其他狀態(tài),采用讀信號(hào)作為方向控制端避免了時(shí)序在其他狀態(tài)時(shí)雙向緩沖器的輸出連接到數(shù)據(jù)總線上而造成數(shù)據(jù)總線的沖突。
如采用圖33(c)的方法,用寫信號(hào)作為控制端,在寫信號(hào)有效時(shí)數(shù)據(jù)從微處理器輸出,在讀有效及時(shí)序的其他狀態(tài)時(shí)雙向緩沖器的輸出連接到數(shù)據(jù)總線上,而后者將造成數(shù)據(jù)總線沖突。
使能端的另一個(gè)連接方法是直接接低電平,此時(shí)無論地址是否有效,在發(fā)出讀信號(hào)時(shí)都會(huì)將雙向緩沖器的輸出連接到數(shù)據(jù)總線上。這種方式適用于微處理器只連接一個(gè)總線驅(qū)動(dòng)器的場(chǎng)合;如系統(tǒng)總線連接了多個(gè)總線驅(qū)動(dòng)器,或連接一個(gè)總線驅(qū)動(dòng)器,又直接連接了部分存儲(chǔ)器或i/o接口時(shí),則會(huì)造成數(shù)據(jù)總線沖突。
微處理器的控制信號(hào)提供了微處理器正常工作所需的系統(tǒng)時(shí)鐘信號(hào)和復(fù)位信號(hào)。還提供了控制存儲(chǔ)器或i/o接口的信號(hào),包括了讀寫控制,存儲(chǔ)器與i/o接口的區(qū)分,中斷信號(hào)的處理,直接數(shù)據(jù)通道的處理。在這些信號(hào)的作用下微處理器能將數(shù)據(jù)送入存儲(chǔ)器或輸出接口,或者從存儲(chǔ)器或輸入接口讀入數(shù)據(jù)。