常見問題

單片機總線概述和(hé)三總線結構

    一、總線概述
 
    計(jì)算(suàn)機系統是以微處理(lǐ)器(qì)為(wèi)核心的,各器(qì)件要與微處理(lǐ)器(qì)相連,且必須協調工作(zuò),所以在微處理(lǐ)機中引入了總線的概念,各器(qì)件共同享用總線,任何時(shí)候隻能有(yǒu)一個(gè)器(qì)件發送數(shù)據(可(kě)以有(yǒu)多(duō)個(gè)器(qì)件同時(shí)接收數(shù)據) 。
 
    計(jì)算(suàn)機的總線分為(wèi)控制(zhì)總線、地址總線和(hé)數(shù)據總線等三種。而數(shù)據總線用于傳送數(shù)據,控制(zhì)總線用于傳送控制(zhì)信号, 地址總線則用于選擇存儲單元或外設。
 
    二、單片機的三總線結構
 
    51系列單片機具有(yǒu)完善的總線接口時(shí)序,可(kě)以擴展控制(zhì)對象,其直接尋址能力達到64k( 2的16次方) 。在總線模式下,不同的對象共享總線,獨立編址、分時(shí)複用總線,CPU 通(tōng)過地址選擇訪問的對象,完成與各對象之間(jiān)的信息傳遞。
    如圖1 所示為(wèi)單片機三總線:
    1、數(shù)據總線
 
    51 單片機的數(shù)據總線為(wèi)P0 口,P0 口為(wèi)雙向數(shù)據通(tōng)道(dào),CPU 從P0 口送出和(hé)讀回數(shù)據。
 
    2、地址總線
 
    51 系列單片機的地址總線為(wèi)16 位。
 
    為(wèi)了節約芯片引腳,采用P0 口複用方式,除了作(zuò)為(wèi)數(shù)據總線外,在ALE 信号時(shí)序匹配下,通(tōng)過外置的數(shù)據鎖存器(qì),在總線訪問前半周期從P0口送出低(dī)8位地址,後半周期從P0 口送出8 位數(shù)據。
 
    高(gāo)8位地址則通(tōng)過P2 口送出。
 
    3、控制(zhì)總線
 
    51 系列單片機的控制(zhì)總線包括讀控制(zhì)信号P3.7 和(hé)寫控制(zhì)信号P3.6 等,二者分别作(zuò)為(wèi)總線模式下數(shù)據讀和(hé)數(shù)據寫的使能信号。
 
    三、單片機總線時(shí)序分析
 
    51 單片機總線時(shí)序如圖2 所示。
    從圖2 中可(kě)以看出,完成一次總線( 讀寫) 操作(zuò)周期為(wèi)T,P0 口分時(shí)複用,在T0 期間(jiān),P0 口送出低(dī)8 位地址,在ALE 的下降沿完成數(shù)據鎖存,送出低(dī)8位地址信号。在T1 期間(jiān),P0 口作(zuò)為(wèi)數(shù)據總線使用,送出或讀入數(shù)據,數(shù)據的讀寫操作(zuò)在讀、寫控制(zhì)信号的低(dī)電(diàn)平期間(jiān)完成。
 
    需要注意的是,在控制(zhì)信号( 讀、寫信号) 有(yǒu)效期間(jiān),P2 口送出高(gāo)8位地址,配合數(shù)據鎖存器(qì)輸出的低(dī)8 位地址,實現16 位地址總線,即64kB 範圍的內(nèi)的尋址。
 
    由于CPU不可(kě)能同時(shí)執行(xíng)讀和(hé)寫操作(zuò),所以讀、寫信号不可(kě)能同時(shí)有(yǒu)效。
 
    四、常見單片機編址電(diàn)路
 
    1、簡單地址擴展
 
    51 單片機的P2 口可(kě)以直接作(zuò)為(wèi)高(gāo)8位地址總線使用,在一些(xiē)簡單系統電(diàn)路中,常使用P2口直接編址驅動。
 
    下面以使用數(shù)據緩沖器(qì)74LS273 驅動數(shù)碼顯示為(wèi)例,分析P2 口編址驅動的靜态數(shù)碼顯示電(diàn)路的設計(jì)。
 
    一位LED 數(shù)碼顯示單元電(diàn)路如圖3 所示。
    WR 與A8( P2.0) 相或提供74LS273的時(shí)鍾信号,當執行(xíng)“MOVX @DPTR,A”指令時(shí),地址信息由DPTR 寄存器(qì)确定,會(huì)出現有(yǒu)效的寫信号WR,隻有(yǒu)當地址A8 為(wèi)滿足“0”時(shí),寫信号才可(kě)以作(zuò)為(wèi)74LS273 的時(shí)鍾信号輸入,完成數(shù)據鎖存。
 
    P2 口為(wèi)A8~A15 的8 位地址線,很(hěn)容易擴展到8 隻LED 數(shù)碼管,WR 信号分别與A8~A15 按或關系連接,每位地址線均為(wèi)低(dī)電(diàn)平有(yǒu)效,即可(kě)實現8 個(gè)有(yǒu)效地址。
 
    該方案電(diàn)路簡單,但(dàn)有(yǒu)效地址數(shù)太少(shǎo),不适用于複雜系統設計(jì)。
 
    2、低(dī)8 位地址鎖存
 
    通(tōng)常的設計(jì)電(diàn)路是使用8D 鎖存器(qì)74LS373 實現地址鎖存,74HC573 與之邏輯功能相同,隻是引腳布局不一樣,使用74HC573 布線更容易。
 
    74LS373 真值表如圖4所示。
    在輸出允許OE 為(wèi)L、控制(zhì)使能LE 為(wèi)H 時(shí),輸出為(wèi)跟随狀态;
 
    OE 為(wèi)L、LE 為(wèi)L 時(shí),輸出為(wèi)保持狀态。
 
    地址鎖存電(diàn)路如圖5 所示。OE 接地,LE 接單片機的ALE腳将産生(shēng)滿足時(shí)序的低(dī)8 位地址信号。
 
    執行(xíng)以下三條指令會(huì)得(de)到如圖6所示的時(shí)序圖。
 
    MOV DPTR,# 0FF55H; 低(dī)8 位地址為(wèi)55H
 
    MOV A,# 0AAH; 待發送數(shù)據0AAH→A( 55H 取反)
 
    MOVX,@DPTR,A; A 中的0AAH送地址為(wèi)0FF55H 的對象中會(huì)。
    從圖6 中可(kě)以看出,P0 口先送55H,在ALE 下降沿實現地址鎖存,随後送出數(shù)據0AAH,在WR 有(yǒu)效( 低(dī)電(diàn)平) 期間(jiān)鎖存器(qì)輸出低(dī)8 位地址55H,P0 口送出數(shù)據0AAH。
 
    3、帶譯碼器(qì)的複雜地址接口電(diàn)路
 
    理(lǐ)論上(shàng)高(gāo)8 位地址線可(kě)以産生(shēng)256 個(gè)有(yǒu)效地址,如何實現地址“擴展”呢? 地址擴展準确描述是地址譯碼,例如3 根地址線可(kě)以譯碼成8 個(gè)地址,4根譯碼成16 個(gè)有(yǒu)效地址。這裏選擇3-8 譯碼器(qì)實現地址譯碼,電(diàn)路圖以及對應的編址如表1 所示。
    五、單片機總線編址電(diàn)路實例
 
    帶總線擴展接口的單片機系統,包括外部32k RAM 擴展、LCD1602 接口、輸入輸出口。
 
    帶編址擴展的單片機最小(xiǎo)系統電(diàn)路如圖7 所示。
 
    使用74HC573 鎖存低(dī)8 位地址;74138 實現8 個(gè)地址擴展,74138 的A、B、C 接A8 ~A10,E1 接A15, E2、E3 接地常有(yǒu)效,得(de)到0F8FFH 到0FFFFH8 個(gè)地址( 無關位用1 表示) 或者8000H 到8700H( 無關位用0 表示) 。
 
    32k RAM 接口如圖8 所示。
 
    D0~D7 接數(shù)據總線P0 口,地址線A0~A14接單片機地址總線低(dī)15 位,單片機地址線A15 接RAM 片選信号,低(dī)電(diàn)平有(yǒu)效,這樣RAM 地址分配從0000H 到7FFFH,與74138 譯碼地址不沖突。
 
    LCD1602 接口電(diàn)路如圖9 所示。
    RS、RW 分别接A12、A13,使能信号編址為(wèi)Y7,這樣LCD 的四個(gè)驅動地址( 數(shù)據讀寫和(hé)命令讀寫) 為(wèi)0CFFFH 到0FFFFH ( 無關位為(wèi)1) 或者8700H 到0B700H( 無關位為(wèi)0)。
 
    有(yǒu)些(xiē)時(shí)候單片機引腳不夠用,還(hái)要進行(xíng)擴展,輸入口擴展電(diàn)路如圖10 所示。
    利用74HC573( 74LS373) 的高(gāo)阻态功能,将其輸出Q0~Q7 接P0 口,在滿足總線地址讀操作(zuò)中,可(kě)以把輸入InPORT的數(shù)據讀入單片機的累加器(qì),地址為(wèi)0F8FFH 或8000H。
 
    輸出口擴展電(diàn)路如圖11 所示。
    利用74LS273 數(shù)據鎖存功能,在滿足總線地址寫操作(zuò)中,可(kě)以把單片機累加器(qì)裏的數(shù)據寫入273 鎖存輸出,地址為(wèi)0F8FFH 或8000H。由于所用控制(zhì)總線不同,可(kě)以和(hé)輸入共用地址。
 
    六、結束語
 
    總線擴展是設計(jì)單片機控制(zhì)電(diàn)路必須掌握的技(jì)術(shù),大(dà)量的特殊功能IC都支持總線接口, 如ADC0809,TLC7528,DDS 器(qì)件AD9851 等。
 
    總線接口的要點就是在嚴格的控制(zhì)時(shí)序下,總線被分時(shí)複用,以實現複雜系統設計(jì)。

 




首頁

電(diàn)話(huà)

地址

到底了~