?
1.總線概述
計算機系統是以微處理器為核心的,各器件要與微處理器相連,且必須協調工作,所以在微處理機中引入了總線的概念,各器件共同享用總線,任何時候只能有一個器件發送數據(可以有多個器件同時接收數據) 。
計算機的總線分為控制總線、地址總線和數據總線等三種。而數據總線用于傳送數據,控制總線用于傳送控制信號, 地址總線則用于選擇存儲單元或外設。
2.單片機的三總線結構
51系列單片機具有完善的總線接口時序,可以擴展控制對象,其直接尋址能力達到64k( 2的16次方) 。在總線模式下,不同的對象共享總線,獨立編址、分時復用總線,CPU 通過地址選擇訪問的對象,完成與各對象之間的信息傳遞。
?
數據總線
51單片機的數據總線為P0口,P0口為雙向數據通道,CPU從P0 口送出和讀回數據。
地址總線
51系列單片機的地址總線為16位。
為了節約芯片引腳,采用P0口復用方式,除了作為數據總線外,在ALE信號時序匹配下,通過外置的數據鎖存器,在總線訪問前半周期從P0口送出低8位地址,后半周期從P0 口送出8位數據。
高8位地址則通過P2口送出。
控制總線
51系列單片機的控制總線包括讀控制信號P3.7和寫控制信號P3.6等,二者分別作為總線模式下數據讀和數據寫的使能信號。
3.單片機總線時序分析
51單片機總線時序如圖2所示:
?
從圖2中可以看出,完成一次總線(讀寫) 操作周期為T,P0口分時復用,在T 期間,P0口送出低8位地址,在ALE的下降沿完成數據鎖存,送出低8位地址信號。在T1期間,P0口作為數據總線使用,送出或讀入數據,數據的讀寫操作在讀、寫控制信號的低電平期間完成。
需要注意的是,在控制信號(讀、寫信號) 有效期間,P2口送出高8位地址,配合數據鎖存器輸出的低8位地址,實現16位地址總線,即64kB范圍的內的尋址。
由于CPU不可能同時執行讀和寫操作,所以讀、寫信號不可能同時有效。
4.常見單片機編址電路
簡單地址擴展
51單片機的P2口可以直接作為高8位地址總線使用,在一些簡單系統電路中,常使用P2口直接編址驅動。
下面以使用數據緩沖器74LS273驅動數碼顯示為例,分析P2口編址驅動的靜態數碼顯示電路的設計。
一位LED數碼顯示單元電路如圖3所示:
?
WR與A8(P2.0) 相或提供74LS273的時鐘信號,當執行“MOVX @DPTR,A”指令時,地址信息由DPTR寄存器確定,會出現有效的寫信號WR,只有當地址A8為滿足“0”時,寫信號才可以作為74LS273的時鐘信號輸入,完成數據鎖存。
P2口為A8~A15的8位地址線,很容易擴展到8只LED數碼管,WR信號分別與A8~A15按或關系連接,每位地址線均為低電平有效,即可實現8個有效地址。
該方案電路簡單,但有效地址數太少,不適用于復雜系統設計。
低8位地址鎖存
通常的設計電路是使用8D鎖存器74LS373實現地址鎖存,74HC573與之邏輯功能相同,只是引腳布局不一樣,使用74HC573布線更容易。
74LS373真值表如圖4所示:
?
在輸出允許OE為L、控制使能LE為H時,輸出為跟隨狀態;OE為L、LE為L時,輸出為保持狀態。
地址鎖存電路如圖5所示。OE接地,LE接單片機的ALE腳將產生滿足時序的低8位地址信號。
執行以下三條指令會得到如圖6所示的時序圖。
MOV DPTR,# 0FF55H;低8位地址為55H
MOV A,# 0AAH;待發送數據0AAH→A(55H取反)
MOVX,@DPTR,A;A中的0AAH送地址為0FF55H的對象中會
?
從圖6中可以看出,P0口先送55H,在ALE下降沿實現地址鎖存,隨后送出數據0AAH,在WR有效(低電平)期間鎖存器輸出低8位地址55H,P0口送出數據0AAH。
帶譯碼器的復雜地址接口電路
理論上高8位地址線可以產生256個有效地址,如何實現地址“擴展”呢? 地址擴展準確描述是地址譯碼,例如3根地址線可以譯碼成8個地址,4根譯碼成16個有效地址。這里選擇3-8譯碼器實現地址譯碼,電路圖以及對應的編址如表1所示。
?
5.單片機總線編址電路實例
總線擴展接口的單片機系統,包括外部32k RAM擴展、LCD1602接口、輸入輸出口。
?
D0~D7接數據總線P0口,地址線A0~A14接單片機地址總線低15位,單片機地址線A15接RAM片選信號,低電平有效,這樣RAM地址分配從0000H到7FFFH,與74138譯碼地址不沖突。
LCD1602接口電路如圖9所示:
?
RS、RW分別接A12、A13,使能信號編址為Y7,這樣LCD的四個驅動地址(數據讀寫和命令讀寫)為0CFFFH到0FFFFH(無關位為1)或者8700H到0B700H(無關位為0)。
有些時候單片機引腳不夠用,還要進行擴展,輸入口擴展電路如圖10所示:
?
利用74HC573(74LS373)的高阻態功能,將其輸出Q0~Q7接P0口,在滿足總線地址讀操作中,可以把輸入InPORT的數據讀入單片機的累加器,地址為0F8FFH或8000H。
輸出口擴展電路如圖11所示:
?
利用74LS273數據鎖存功能,在滿足總線地址寫操作中,可以把單片機累加器里的數據寫入273鎖存輸出,地址為0F8FFH或8000H。由于所用控制總線不同,可以和輸入共用地址。
6.結束語
總線擴展是設計單片機控制電路必須掌握的技術,大量的特殊功能IC都支持總線接口, 如ADC0809、TLC7528、DDS器件AD9851 等。
總線接口的要點就是在嚴格的控制時序下,總線被分時復用,以實現復雜系統設計。
-
單片機
+關注
關注
6032文章
44522瀏覽量
633194
發布評論請先 登錄
相關推薦
評論