單片機(jī)地址譯碼電路
在微處理器系統(tǒng)中,所有的存儲器(或I/O接口)都以地址來相互區(qū)分,根據(jù)訪問存儲器(或訪問I/O接口)指令中的地址信息,其地址譯碼電路產(chǎn)生相應(yīng)的地址選中信號,以選中所需的存儲器(或I/O接口)。以存儲器的接口為例,對于一般的8位微處理器,其存儲器的地址線為16條(A0~A15),尋址范圍為64K,但在一個實際系統(tǒng)中不一定擴(kuò)展64K存貯器,而且所擴(kuò)展的存貯器也不是一片容量為64K的存儲器,因而整個系統(tǒng)通常要求擴(kuò)展幾片存貯器電路。每種存儲器芯片都根據(jù)其容量需要一定的地址信號,如2K存儲器所需的地址信號為A0~A10,8K存儲器所需的地址信號為A0~A12。因此系統(tǒng)在連接存儲器時除了向存貯器芯片提供必須的地址信號外,還應(yīng)提供片選信號,使其中的一個芯片在片選信號有效時工作。地址譯碼電路就是提供片選信號的電路。例如一個系統(tǒng)需要連接2片2K存貯器,因此系統(tǒng)必須向存儲器提供A10~A0的地址信號,以選中 2K存貯器中的某一個單元。為了區(qū)別這兩個存儲器芯片中那一個被選中,應(yīng)另加片選信號,此信號由譯碼電路產(chǎn)生。
I/O接口所需的地址譯碼電路的原理與存儲器相似,不同的是,通常I/O接口只需一個地址,或幾個地址,而不象存儲器一個芯片就占用較多的地址。因此對于I/O接口的譯碼電路,必須根據(jù)該設(shè)備占用的地址的數(shù)量來具體考慮。
地址譯碼通常采用全譯碼電路、部分譯碼電路、線選電路等不同的方式。
在系統(tǒng)中,存儲器或I/O接口需使用部分地址信號,這些信號通常為地址信號中的低位地址信號,全譯碼電路將其余所有的高位地址信號經(jīng)譯碼后作片選信號。在全譯碼電路的系統(tǒng)中,所有地址信號不是送入存儲器或I/O接口芯片,就是送入了譯碼電路。譯碼電路的輸出,即選中信號將與唯一的存儲器或I/O接口的地址對應(yīng)。如某個八位微處理器采用了I/O接口單獨(dú)編址的方式,其選擇存儲器的地址線為16條(A0~A15),選擇I/O接口的地址線為8條(A0~A7),則采用全譯碼電路時,選擇存儲器的地址譯碼電路必須包含A0~A15的地址信號中被存儲器芯片所用的地址之外的所有地址信號,而選擇I/O接口的地址譯碼電路必須包含A0~A7的地址信號中被I/O接口所用的地址之外的所有地址信號。圖1為常用的譯碼電路74LS138、74LS13。根據(jù)存儲器的容量,存儲器所需的地址信號不同,因而在采用不同存儲器時全譯碼電路的輸入地址信號不同,圖2為采用8K存儲器的全譯碼電路,送入譯碼電路的地址信號為A13~A15。其地址分配表如表1所示。從地址分配表中可以看出,采用全譯碼方法時各存貯器芯片之間的地址是連續(xù)的,而且能最有效地利用 64K存貯空間。
(a) 74LS138 。╞) 74LS139
圖1 譯碼器的邏輯符號
圖2 全譯碼電路擴(kuò)展8K的存儲器
表1 擴(kuò)展8K存儲器的地址分配
當(dāng)系統(tǒng)需擴(kuò)展的存儲器或I/O接口的數(shù)量較少時,可采用部分譯碼電路。與全譯碼電路不同的是部分譯碼電路將存儲器或I/O接口所用的低位地址線外的高位地址線中的部分地址信號作為譯碼電路的輸入信號。采用這種方法的優(yōu)點(diǎn)是減少了譯碼電路的輸入信號,但譯碼的輸出與地址不是一一對應(yīng)的關(guān)系。由于未參加譯碼的地址信號可以有不同的編碼,因而譯碼的輸出可選中不同的地址。圖3為采用2K存儲器的部分譯碼電路,存儲器所用的地址為A0~A10,如用全譯碼電路,輸入到譯碼器的信號為A11~A15,而在圖3中僅用了A11~A13,A14、A15未參加譯碼。這樣A15、A14實際上可以存在4種情況,即00、01、10、11,以第一個芯片為例,當(dāng)我們將A15、A14理解為00時,可在指令中以地址0000H~07FFH選中該芯片,但如果在指令中分別用了地址4000H~47FFH、8000H~87FFH、C000H~C7FFH選中的仍是該芯片,即一個單元可用幾個地址來訪問。
圖3 部分譯碼電路
當(dāng)系統(tǒng)需擴(kuò)展的存儲器或I/O接口的數(shù)量較少時,還可采用線選電路。以存儲器的擴(kuò)展為例,如系統(tǒng)擴(kuò)展的為8K的存儲器芯片,則地址信號A0~A12為存儲器所使用,在全譯碼電路中,用地址信號A12~A15作為地址譯碼,而在如圖4所示的線選電路中,這些信號將直接作為片選信號使用。很明顯,能使用的地址線只有3條,因而最多只允許連接3片8K的存貯器,共24K的存儲器容量。使用這種方法不能充分利用64K的存貯空間,常用于較小的系統(tǒng)。
圖4 線選法譯碼電路
表2為利用線選的方法擴(kuò)展3片存儲器時地址的分配情況,從表中可以看出,盡管這種方法比較簡單,但其使用的地址是不連續(xù)的,而且在使用時必須防止兩條地址線同時為低電平,否則將使系統(tǒng)同時選中兩個存儲器芯片而無法正常工作。
表 2 線選電路存儲器的地址分配
芯片 | A15 | A14 | A13 | 地 址 |
U3 | 1 | 1 | 0 | C000H ~ DFFFH |
U4 | 1 | 0 | 1 | A000H ~ BFFFH |
U5 | 0 | 1 | 1 | 6000H ~ 7FFFH |
編輯:admin 最后修改時間:2023-03-03