單片機(jī)的三總線結(jié)構(gòu)(數(shù)據(jù)、地址、控制)
來源 :eepw
1
總線概述
計算機(jī)系統(tǒng)是以微處理器為核心的,各器件要與微處理器相連,且必須協(xié)調(diào)工作,所以在微處理機(jī)中引入了總線的概念,各器件共同享用總線,任何時候只能有一個器件發(fā)送數(shù)據(jù) (可以有多個器件同時接收數(shù)據(jù)) 。
計算機(jī)的總線分為控制總線、地址總線和數(shù)據(jù)總線等三種。而數(shù)據(jù)總線用于傳送數(shù)據(jù),控制總線用于傳送控制信號, 地址總線則用于選擇存儲單元或外設(shè)。
2
單片機(jī)的三總線結(jié)構(gòu)
51系列單片機(jī)具有完善的總線接口時序,可以擴(kuò)展控制對象,其直接尋址能力達(dá)到64k (2的16次方) 。在總線模式下,不同的對象共享總線,獨(dú)立編址、分時復(fù)用總線,CPU通過地址選擇訪問的對象,完成與各對象之間的信息傳遞。
數(shù)據(jù)總線:51單片機(jī)的數(shù)據(jù)總線為P0口,P0口為雙向數(shù)據(jù)通道,CPU從P0口送出和讀回數(shù)據(jù)。
地址總線:51系列單片機(jī)的地址總線為16位。為了節(jié)約芯片引腳,采用P0口復(fù)用方式,除了作為數(shù)據(jù)總線外,在ALE信號時序匹配下,通過外置的數(shù)據(jù)鎖存器,在總線訪問前半周期從P0口送出低8位地址,后半周期從P0口送出8位數(shù)據(jù)。高8位地址則通過P2口送出。
控制總線:51系列單片機(jī)的控制總線包括讀控制信號P3.7和寫控制信號P3.6等,二者分別作為總線模式下數(shù)據(jù)讀和數(shù)據(jù)寫的使能信號。
3
單片機(jī)總線時序分析
51單片機(jī)總線時序如圖2所示。從圖2中可以看出,完成一次總線 (讀寫) 操作周期為T,P0口分時復(fù)用,在T0期間,P0口送出低8位地址,在ALE的下降沿完成數(shù)據(jù)鎖存,送出低8位地址信號。在T1期間,P0口作為數(shù)據(jù)總線使用,送出或讀入數(shù)據(jù),數(shù)據(jù)的讀寫操作在讀、寫控制信號的低電平期間完成。
4
常見單片機(jī)編址電路
簡單地址擴(kuò)展
51單片機(jī)的P2口可以直接作為高8位地址總線使用,在一些簡單系統(tǒng)電路中,常使用P2口直接編址驅(qū)動。下面以使用數(shù)據(jù)緩沖器74LS273驅(qū)動數(shù)碼顯示為例,分析P2口編址驅(qū)動的靜態(tài)數(shù)碼顯示電路的設(shè)計。一位LED數(shù)碼顯示單元電路如圖3所示。
WR與A8 (P2.0) 相或提供74LS273的時鐘信號,當(dāng)執(zhí)行“MOVX @DPTR,A”指令時,地址信息由DPTR寄存器確定,會出現(xiàn)有效的寫信號WR,只有當(dāng)?shù)刂稟8為滿足“0”時,寫信號才可以作為74LS273的時鐘信號輸入,完成數(shù)據(jù)鎖存。
低8位地址鎖存
在輸出允許OE為L、控制使能LE為H時,輸出為跟隨狀態(tài);OE為L、LE為L時,輸出為保持狀態(tài)。地址鎖存電路如圖5所示。OE接地,LE接單片機(jī)的ALE腳將產(chǎn)生滿足時序的低8位地址信號。
MOV DPTR,# 0FF55H;低8位地址為55H。
MOV A,# 0AAH;待發(fā)送數(shù)據(jù)0AAH→A (55H取反)。
MOVX,@DPTR,A;A中的0AAH送地址為0FF55H的對象中會。
帶譯碼器的復(fù)雜地址接口電路
理論上高8位地址線可以產(chǎn)生256個有效地址,如何實(shí)現(xiàn)地址“擴(kuò)展”呢? 地址擴(kuò)展準(zhǔn)確描述是地址譯碼,例如3根地址線可以譯碼成8個地址,4根譯碼成16個有效地址。這里選擇3-8譯碼器實(shí)現(xiàn)地址譯碼,電路圖以及對應(yīng)的編址如表1所示。
5
單片機(jī)總線編址電路實(shí)例
使用74HC573鎖存低8位地址;74138實(shí)現(xiàn)8個地址擴(kuò)展,74138的A、B、C接A8~A10,E1接A15, E2、E3接地常有效,得到0F8FFH到0FFFFH8個地址 (無關(guān)位用1表示) 或者8000H到8700H (無關(guān)位用0表示) 。32k RAM接口如圖8所示。
D0~D7接數(shù)據(jù)總線P0口,地址線A0~A14接單片機(jī)地址總線低15位,單片機(jī)地址線A15接RAM片選信號,低電平有效,這樣RAM地址分配從0000H到7FFFH,與74138譯碼地址不沖突。LCD1602接口電路如圖9所示。
RS、RW分別接A12、A13,使能信號編址為Y7,這樣LCD的四個驅(qū)動地址 (數(shù)據(jù)讀寫和命令讀寫) 為0CFFFH到0FFFFH (無關(guān)位為1) 或者8700H到0B700H (無關(guān)位為0)。 有些時候單片機(jī)引腳不夠用,還要進(jìn)行擴(kuò)展,輸入口擴(kuò)展電路如圖10所示。
利用74HC573 (74LS373) 的高阻態(tài)功能,將其輸出Q0~Q7接P0口,在滿足總線地址讀操作中,可以把輸入InPORT的數(shù)據(jù)讀入單片機(jī)的累加器,地址為0F8FFH或8000H。輸出口擴(kuò)展電路如圖11所示。
利用74LS273數(shù)據(jù)鎖存功能,在滿足總線地址寫操作中,可以把單片機(jī)累加器里的數(shù)據(jù)寫入273鎖存輸出,地址為0F8FFH或8000H。由于所用控制總線不同,可以和輸入共用地址。
6
結(jié)束語
總線擴(kuò)展是設(shè)計單片機(jī)控制電路必須掌握的技術(shù),大量的特殊功能IC都支持總線接口, 如ADC0809,TLC7528,DDS器件AD9851等。
總線接口的要點(diǎn)就是在嚴(yán)格的控制時序下,總線被分時復(fù)用,以實(shí)現(xiàn)復(fù)雜系統(tǒng)設(shè)計。
-END-
推薦閱讀
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點(diǎn),不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!