單片機(jī)外部總線如何擴(kuò)展
單片機(jī)在復(fù)雜的應(yīng)用中,片內(nèi)的資源往往不能滿足實(shí)際需求,需要擴(kuò)充較大的存儲(chǔ)容量和較多的 I/O 接口。所謂系統(tǒng)擴(kuò)展,一般有兩項(xiàng)主要任務(wù):
其一,是把系統(tǒng)所需的外設(shè)和單片機(jī)連接起來(lái),使單片機(jī)系統(tǒng)能與外界進(jìn)行信息交換。如通過(guò)鍵盤、A/D 轉(zhuǎn)換器等外部設(shè)備向單片機(jī)送入數(shù)據(jù)、命令等有關(guān)信息,去控制單片機(jī)運(yùn)行;通過(guò)顯示器、發(fā)光二極管、打印機(jī)等設(shè)備把單片機(jī)處理的結(jié)果送出來(lái),向人們提供各種信息或?qū)ν饨缭O(shè)備提供控制信號(hào),這項(xiàng)任務(wù)實(shí)際上就是單片機(jī)接口設(shè)計(jì)。
其二,是擴(kuò)大單片機(jī)的存儲(chǔ)容量。由于單片機(jī)芯片的結(jié)構(gòu)、集成工藝等關(guān)系,單片機(jī)內(nèi) ROM 、RAM 等容量不可能很大,在使用中有時(shí)不夠,需要在芯片外進(jìn)行擴(kuò)展。
因此,系統(tǒng)擴(kuò)展和接口技術(shù)一般有以下幾方面內(nèi)容:
(1) 外部總線的擴(kuò)展;
(2) 外部存儲(chǔ)器的擴(kuò)展;
(3) 輸入/輸出接口的擴(kuò)展;
(4) 管理功能部件的擴(kuò)展(如定時(shí)器/計(jì)數(shù)器、鍵盤/顯示器等);
(5) A/D 和 D/A 接口技術(shù)。
一、外部總線的擴(kuò)展
MCS 51 芯片沒(méi)有對(duì)外專用的地址總線和數(shù)據(jù)總線,那么在進(jìn)行對(duì)外擴(kuò)展存儲(chǔ)器或 I/O 接口時(shí),首先需要擴(kuò)展對(duì)外總線。通過(guò) MCS 51 引腳 ALE 可實(shí)現(xiàn)對(duì)外總線擴(kuò)展。在 ALE 為有效高電平期間,P0 口上輸出 A7 ~A0 ,因而只需在 CPU 片外擴(kuò)展一片地址鎖存器,用 ALE 的有效高電平邊沿作鎖存信號(hào),即可將 P0 口上的地址信息鎖存,直到 ALE 再次有效。在 ALE 無(wú)效期間 P0 口傳送數(shù)據(jù),即作數(shù)據(jù)總線口。這樣就可將 P0 口 的地址線和數(shù)據(jù)線分開(kāi)。圖 7.1 為 MCS 51 擴(kuò)展的外部三總線示意圖。
圖 7.1 MCS 51 外部三總線示意圖
通常用作單片機(jī)地址鎖存器的芯片有 74LS273 、74LS377 、74LS373 、8282 等,圖 7.2 的(a)、(b) 和(c) 給出了 74LS373 、8282 和 74LS273 的引腳,以及它們用做地址鎖存器的接法。
圖 7.2 地址鎖存器的引腳和接口
74LS373 和 8282 是帶三態(tài)輸出的 8 位鎖存器,兩者的結(jié)構(gòu)和用法類似。以 74LS373 為例,當(dāng)三態(tài)端 OE有效,使能端 G 為高電平時(shí),輸出跟隨輸入變化;當(dāng) G 端由高變低時(shí),輸出端 8 位信息被鎖存,直到 G 端再次有效。
74LS273 為 8D 觸發(fā)器 ,當(dāng)時(shí)鐘上升沿到來(lái)時(shí),將 D 端輸入的數(shù)據(jù)鎖存。作為地址鎖存器使用時(shí),可將 ALE 反相接 74LS273 的 CLK 端,CLK 端接+5V 。
二、總線驅(qū)動(dòng)
在單片機(jī)應(yīng)用系統(tǒng)中,擴(kuò)展的三總線上掛接很多負(fù)載,如存儲(chǔ)器、并行接口、A/D 接口、顯示接口等,但總線接口的負(fù)載能力有限,因此常常 需要通過(guò)連接總線驅(qū)動(dòng)器進(jìn)行總線驅(qū)動(dòng)。
總線驅(qū)動(dòng)器對(duì)于單片機(jī)的 I/O 口只相當(dāng)于增加了一個(gè) TTL 負(fù)載,因此驅(qū)動(dòng)器除了對(duì)后級(jí)電路驅(qū)動(dòng)外,還能對(duì)負(fù)載的波動(dòng)變化起隔離作用。在對(duì) TTL 負(fù)載驅(qū)動(dòng)時(shí),只需考慮驅(qū)動(dòng)電流的大小;在對(duì) MOS 負(fù)載驅(qū)動(dòng)時(shí),MOS 負(fù)載的輸入電流很小,更多地要考慮對(duì)分布電容的電流驅(qū)動(dòng)。
1. 常用的總線驅(qū)動(dòng)器
系統(tǒng)總線中地址總線和控制總線是單向的,因此驅(qū)動(dòng)器可以選用單向的,如 74LS244 。 74LS244 還帶有三態(tài)控制,能實(shí)現(xiàn)總線緩沖和隔離。
系統(tǒng)中的數(shù)據(jù)總線是雙向的,其驅(qū)動(dòng)器也要選用雙向的,如 74LS245 。74LS245 也是三態(tài)的,有一個(gè)方向控制端 DIR,DIR=1 時(shí)輸 出 (An 一Bn ), DIR=0 時(shí)輸入(An ←Bn )。 74LS244 、74LS245 的引腳見(jiàn)圖 7.3 。
圖 7.3 總線驅(qū)動(dòng)器芯片管腳
(a) 單 向驅(qū)動(dòng)器; (b) 雙 向驅(qū)動(dòng)器
2.總線驅(qū)動(dòng)器的接口
圖 7.4 給出了總線驅(qū)動(dòng)器 74LS244 和 74LS245 與 8051 管腳間的接口方法。
圖 7.4 8051 與總線驅(qū)動(dòng)器的接口
(a) P2 口 的驅(qū)動(dòng); (b) P0 口 的驅(qū)動(dòng)
由于 P2 口始終輸出地址高 8 位,接口時(shí) 74LS244 的三態(tài)控制端 1G 和 2G 接地,P2 口 與驅(qū)動(dòng)器輸入線對(duì)應(yīng)相連。
P0 口與 74LS245 輸入線相連,端接地,保證數(shù)據(jù)線暢通。8051 的 RD和 PSEN相與 后接 DIR,使得 RD或 PSEN有效時(shí),74LS245 輸入,其它時(shí)間處于輸出狀態(tài)。