官术网_书友最值得收藏!

1.5 邏輯電路及芯片知識

數字電路除了包括門電路、組合邏輯電路外,還有時序邏輯電路。時序邏輯電路某時刻的輸出不僅取決于該時刻的輸入,還與該時刻前電路的狀態有關。時序邏輯電路的基本單元一般是觸發器,常用的基本電路有二進制計數器、十進制計數器和移位寄存器電路等。

1.5.1 觸發器

計算機處理的程序、數據都是用二進制表示的,也就是由大量的0和1組成。因此,必須有能存放和記憶0和1這兩種狀態的基本單元。觸發器就是存放這種信號的基本單元電路,它有兩個穩定的狀態——0狀態和1狀態;它能接收、保持和輸出送來的信號;在一定的外界觸發條件下,這兩個穩定狀態可以互相轉換。根據電路結構不同和觸發條件和方式的不同。觸發器有不同的種類,如RS觸發器、JK觸發器、D觸發器等。

1.基本RS觸發器

觸發器有兩個穩定的狀態,可用來表示數字0和1。按結構的不同可分為,沒有時鐘控制的基本觸發器和有時鐘控制的門控觸發器。

基本RS觸發器是組成門控觸發器的基礎,一般有與非門和或非門組成的兩種形式,以下介紹與非門組成的基本RS觸發器。

(1)電路結構與符號圖

用與非門組成的RS觸發器如圖1-27所示。圖中為置1輸入端,為置0輸入端,都是低電平有效,Q和為輸出端,一般以Q的狀態作為觸發器的狀態。

表1-22 基本RS觸發器的真值表

圖1-27 與非門組成的基本RS觸發器

(2)工作原理與真值表

1)當時,因,G2門的輸出端,G1門的兩輸入為1,因此G1門的輸出端Q=0。

2)當時,因,G1門的輸出端Q=1,G2門的兩輸入為1,因此G2門的輸出端=0。

3)當時,G1門和G2門的輸出端被它們的原來狀態鎖定,故輸出不變。

4)當=0,=0時,則有Q==1。若輸入信號=0,=0之后出現=1,=1,則輸出狀態不確定。因此=0,=0的情況不能出現,為使這種情況不出現,特意給該觸發器加一個約束條件=1。

由以上分析可得到表1-22所示真值表。這里Qn表示輸入信號到來之前Q的狀態,一般稱為現態。同時,也可用Qn+1表示輸入信號到來之后Q的狀態,一般稱為次態。

2.同步D觸發器

由于同步RS觸發器工作時,由于不允許R、S端信號同時為1,使應用受到一定限制。為了克服這一缺點,可以在S與R輸入端之間增加一個非門,只在S端加輸入信號,S端改稱為D輸入端,這樣構成的觸發器,稱為同步D觸發器,又稱D鎖存器。其邏輯電路及邏輯符號如圖1-28所示。

圖1-28 同步D觸發器和邏輯符號

a)D觸發器的邏輯電路 b)邏輯符號

同步D觸發器的工作原理可分為CP=0和CP=1兩種情況分析。

當CP=0時,觸發器不工作,觸發器處于維持狀態。

當CP=1時,觸發器功能如下:

D=0,G3門輸出為1,G4門輸出為0,則基本RS觸發器的=0、=1,觸發器狀態置0。

D=1,G3門輸出為0,G4門輸出為1,則基本RS觸發器的=1、=0,觸發器狀態置1。

根據工作原理的分析,可列出同步D觸發器的特性見表1-23。

表1-23 同步D觸發器的特性

D觸發器類常用集成電路芯片介紹如下:

在單片機芯片內部及單片機外圍電路中使用了大量各類D觸發電路芯片,下面分別進行介紹。

(1)74LS74

74LS74芯片中包含兩個獨立的上升沿觸發的TTL集成雙D觸發器。每個觸發器都有獨立的直接復位(清除)端CLR,直接預置端PR,數據和時鐘輸入端D和CK,另外還各有一組互補輸入端Q和,其功能表見表1-24。

表1-24 74LS74功能表

(2)74LS273

74LS273是帶清除端(CLK)的8D觸發器。在時鐘上升沿作用下(加在CK端),輸入信息由D端傳送到Q輸出端。觸發器的時鐘頻率響應范圍為0~30MHz,每個觸發器功耗為10mW。

74LS273功能框圖及引腳邏輯圖如圖1-29和圖1-30所示。其功能表見表1-25。

圖1-29 74LS273功能框圖

圖1-30 74LS273引腳邏輯圖

表1-25 74LS273功能表

(3)74LS373

74LS373為透明D型鎖存器,即當允許端(G)是高電平時,Q輸出數據(D)并被鎖存。當輸出控制端(,1腳)接低電平時(在一般硬件系統中G接地),數據輸出,當端接高電平時輸出為高阻狀態。

由于輸出可提供具有高阻抗的第三態,則在總線系統結構中不需另加外加接口和上拉部件,74LS373可直接連接到總線上,并驅動總線。在高阻狀態下輸出端的狀態下輸出端的狀態由其他電路的輸出狀態決定。8位寄存器的特點是可驅動大電容或低阻抗的負載。因此,74LS373特別適合用于作為緩沖寄存器、I/O通道、總線驅動器及工作寄存器。圖1-31所示為其功能框圖,表1-27所示為其功能表。

表1-26 74LS373功能表

圖1-31 74LS373、374功能框圖

(4)74LS374

74LS374和74LS373基本相同,邏輯功能如圖1-31所示。它們的區別在于74LS374是邊沿觸發,即在時鐘上升沿時,鎖存器的輸入端(D)的狀態建立在鎖存器輸出端(Q)。表1-27為其功能表。

此外,8282的功能與74LS373相同。

74LS373與74LS374的引腳圖如圖1-32所示。

圖1-32 74LS373、74LS374引腳圖

表1-27 LS374功能表

通常用作單片機地址鎖存的芯片有兩類:一類是8D觸發器,如74LS273、74LS377等;另一類是8位鎖存器,如74LS373、8282等。圖1-33描繪了74LS273和74LS277兩類芯片用作單片機地址鎖存器時的控制線的接法。

圖1-33 用作地址鎖存器的常用芯片

1.5.2 寄存器及移位寄存器

寄存器是一種用來暫時存放數據、指令等的器件,它由觸發器組成。一個觸發器可以儲存一位二進制代碼。存放幾位二進制代碼用幾個觸發器即可。圖1-34所示由D觸發器組成的四位寄存器。

CP為時鐘控制端,當CP上升沿到來時,四個數據輸入端D4D3D2D1被寄存到四個觸發器中使輸出狀態Q4 Q3 Q2 Q1=D4 D3 D2 D1為清除端,當為低電平時,Q4Q3Q2Q1清零。

在微型計算機中,常用的是經過改造的移位寄存器,它除了具有存儲數碼的功能外,還具有移位功能。所謂移位功能,就是寄存器中所存的數據可在移位脈沖作用下逐次左移或右移。

圖1-34所示為用D觸發器組成的單向移位寄存器及時序圖。其中每個觸發器的輸出端Q端依次接到下一個觸發器的D端,只有第一個觸發器的D端接收數據。

圖1-34 單向移位寄存器(串行輸入,串、并行輸出)

當時鐘脈沖上升沿到來時,輸入的數碼移入F1,同時每個觸發器把自身的狀態移給下一個觸發器。假設輸入的數碼為1011,那么經過四個移位脈沖后,1011這四位數碼恰好全部移入寄存器中。這時,也可以從四個觸發器Q端得到并行的數碼輸出。如果需要得到串行輸出信號,則只要再輸入四個時鐘脈沖,四位數碼便可以從Q4端依次串行輸出。由此可見,以上移位寄存器可實現串入并出或串入串出。

在CP移位脈沖的作用下,移位寄存器中數碼的移動情況見表1-28。

表1-28 移位寄存器中數碼的移動情況

74LS164就是一種串入并出的8位TTL集成移位寄存器,它的邏輯功能及引腳如圖1-35所示。串行輸入具有允許和禁止的功能。當A作數據輸入端時,B則作為禁止或允許輸入端。在時鐘脈沖為高或低電平時,串入并出數據不改變,只有在時鐘上升沿時才起作用。74LS164的功能表見表1-29。

表1-29 74LS164功能表

圖1-35 74LS164結構及引腳

移位寄存器的輸入同樣也可以采用并行輸入方式。圖1-36所示就是一個串、并行輸入,串行輸出的移位寄存器。在并行輸入時,采用了兩拍接收方式,第一步先用清零脈沖通過觸發器的Rd端,把所有觸發器置0,第二步再利用接收脈沖通過Sd端輸入數據。

圖1-36 單向移位寄存器(串、并行輸入,串行輸出)

另外,74LS166/165為8位并行輸入、串行輸出的移位寄存器,引腳及功能可查相關手冊。

1.5.3 半導體存儲器

存儲器是計算機的記憶部件。CPU要執行的程序、要處理的數據、處理的中間結果等都存放在存儲器中。

早期計算機用磁心作存儲器。20世紀70年代以后,隨著大規模集成電路技術的發展,半導體的集成度大大提高,體積急劇減小,加之它具有功耗低、成本低和應用方便等優點,故其應用日益廣泛。目前微機的存儲器幾乎全部采用半導體存儲器。存儲容量和存取時間是存儲器的兩項重要指標,它們反映了存儲記憶信息的多少與工作速度的快慢。半導體存儲器根據應用可分為讀寫存儲器(RAM)和只讀存儲器(ROM)兩大類。

1.讀寫存儲器RAM

讀寫存儲器又稱隨機存取存儲器(Random Access Memory)簡稱RAM,它能夠在存儲器中任意指定的地方隨時寫入(存入)或讀出(取出)信息;當電源掉電時,RAM里的內容則消失。根據存儲單元的工作原理,RAM又分為靜態RAM和動態RAM。靜態RAM用觸發器作為存儲單元存放1和0,存取速度快,只要不掉電即可持續保持內容不變。一般靜態RAM的集成度較低,成本較高。

動態RAM的基本存儲電路為帶驅動晶體管的電容。電容上有無電荷會被分別視為邏輯1和0。隨著時間的推移,電容上的電荷會逐漸減少,所以為保持其內容必須周期性地對其進行刷新(對電容充電)以維持其中所存的數據。

(1)靜態RAM

RAM的結構如圖1-37所示。它由存儲器矩陣,地址譯碼器和讀/寫控制電路等組成。

圖1-37 RAM的組成框圖

存儲矩陣是存儲器的主體,由若干個觸發器存儲單元組成,每個存儲單元存放一位二進制信息。為了存取方便,存儲單元通常設計成很規則的矩陣形式。例如,一個容量為256×4(256個字,每個字4位)的存儲器有1024個存儲單元,這些單元可排成32行×32列的矩陣形式,如圖1-38所示。

圖1-38中每行有32個存儲單元(圓圈表示存儲單元),可存儲8個字,每4列為一個字列,可存儲32個字。每根行選線選中一行,每根列選擇線選中一個字列。因此,圖示陣列有32根行選線和8根列選線。

RAM內容的存取是以字為單位的,為了區別不同的字,將存放同一個字的存儲單元編為一組,并賦予一個號碼,稱為地址。存儲單元是存儲器中最基本的存儲細胞,不同的單元有不同的地址。在進行讀寫操作時,可以按照地址訪問某個單元。

地址的選擇是借助于地址譯碼器實現的。在大容量的存儲器中,通常采用雙譯碼結構,即將輸入地址分為兩部分,分別由行譯碼器和列譯碼器譯碼。行、列譯碼器的輸出即為存儲矩陣的行、列選擇線,由它們共同確定欲選擇的地址單元。

圖1-38 256×4RAM存儲矩陣

對于圖1-38所示的存儲矩陣,256個字需要8位二進制地址(A7~A0)區分(28=256)。其中地址碼的低5位A0~A4作為行譯碼輸入,產生32根行選擇線,地址碼的高3位A5~A7用于列譯碼輸入,產生8根列選擇線,只有被行選擇線和列選擇線都選中的單元,才能被訪問。例如,若輸入地址A7~A0為00011111時,X31和Y0輸出高電平,位于X31和Y0交叉處的字單元此時可以進行讀出或寫入操作,而其余任何字單元都不會被選中。

由于集成度的限制,目前單片機RAM容量很有限,對于一個大容量的存儲系統,往往需要若干片RAM組成,而讀/寫操作時,通常僅與其中的一片(或幾片)打交道,這就存在一個片選問題。RAM芯片上特設了一根片選信號線,在片選信號線上加入有效電平,芯片即被選中,可進行讀/寫操作,未被選中的芯片則不工作。

片選信號僅解決芯片是否工作問題,而芯片執行讀還是寫操作則還需要有一根讀寫信號線,所以芯片上還沒有讀/寫控制線。

Intel 2114A是一片1KB×4(1KB即1024個單元)位的靜態RAM,它與TTL完全兼容。單接+5V電源。如圖1-39所示其外形、邏輯符號和內部結構。

10根地址線A0~A9用于行譯碼,產生64根行選擇線:A0、A1、A2、A94根地址線用于列譯碼,產生16條列選線。每根列選擇線同時接至4個基本存儲電路,即4位。所以這種雙譯碼結構可尋址64 × 16 × 4=4096個存儲單元。為片選信號線,輸入低電平有效;為低電平,則進行寫操作;若使為高電平則可進行讀操作。讀寫的數據通過I/O1~I/O4送到數據總線上,由CPU讀取。

6116、6264、62256、628128芯片分別是2KB×8、8KB×8、32KB×8和128KB×8的靜態RAM,使用這些芯片時都不必外加刷新電路。

(2)動態RAM

靜態RAM的存儲單元所用管子數目多、功耗大、集成度低,而動態RAM集成度高,成本低、功耗也很低。動態RAM是一種以電荷形式存儲信息的器件,其基本存儲電路采用晶體管和電容。目前常用的動態RAM單元電路有兩種,一種由三個CMOS管組成,另一種由一個CMOS管組成。

動態RAM的缺點是電容所存信息的電信號會逐漸漏掉。一般要求2 ms周期就要對所存信息全部刷新一遍。所以動態RAM要加有專門的刷新電路。但對大容量存儲系統,附加刷新電路的成本會被其高集成度、低功耗和價廉等優點所補償。

圖1-39 Intel 2114A外形,邏輯符號和內部結構

如Intel 2164A是16引腳雙列直插動態RAM集成芯片,它采用單一+5V電源,其基本存儲電路為單管型,它的引腳及結構可查看有關手冊。

2.只讀存儲器ROM

只讀存儲器簡稱ROM,用以存放不變信息——至少不經常改變的信息。與RAM不同,當ROM仍能保持內容不變。在讀取某地址內客這一點,ROM類似于RAM。但ROM并不含修改其內容的結構——只讀存儲器的名稱即由此而得。

一般ROM用來存儲程序和一些固定的數據,比如計算機的系統程序、一些固定表格等。而RAM用于存儲數據。

只讀存儲器有掩膜ROM、PROM、EPROM和E2PROM等。

(1)掩膜ROM

這種ROM基本存儲電路的0或1兩種狀態,是在制造電路時由生產廠家根據用戶提出的要求,通過掩膜技術制作或不制作晶體管柵極來實現0或1狀態的。一旦制作完畢,存儲內容即不可修改,大批量生產時成本很低。

(2)PROM

為了彌補掩膜ROM成本高和不能改變其內容的不足,出現了一種由用戶編程且只能寫入的一次的PROM。出廠時PROM設置為熔絲斷裂型,未寫入時每個基本存儲電路都是一個帶熔絲的晶體管或二極管。編程后絲斷為“l”,未斷者為“0”,用戶用專用編程器進行編程時,對需寫1的單元,通過大電流以熔斷其熔絲,絲斷后無法復原,因此只能寫入一次。在軟件開發過程中PROM比掩膜ROM方便價廉。

(3)EPROM

EPROM是一種可多次寫入的ROM。其特點是寫入的信息可以長期保存,這一點與掩膜ROM一樣;與掩膜ROM不同的是,當不需要這些信息或欲進行修改時,可進行擦除和重寫。EPROM芯片上開有一石英窗口,當芯片置于紫外線下照射時,高能光子將與EPROM中的電子相碰撞,將其驅散,于是以電荷形成存儲的信息即被擦除。EPROM在開發樣機時非常有用,因為在研制過程中數次修改程序的情況頗為常見。

現常用的EPROM型號有2732、2764、27128、27256、27514等,其容量分別為4KB、8KB、16KB、32KB、64KB等。以2732A為例,介紹該類芯片的結構及工作方式。圖1-40所示2732A引腳及內部結構。它是以HMOS-E工藝制成的24引腳雙列直插式芯片。其中A0~A11為13位地址線,O0~O7為8位數據線,為芯片允許信號,低電平有效,該引腳在編程時亦作為編程電壓輸入引腳VCC和GND分別為+5 V電源和接地端。

圖1-40 2732A引腳及內部結構

2732A有六種工作方式,見表1-30。

表1-30 2732A工作方式

讀方式:2732A由兩條控制線控制。為在輸出端讀到數據,兩者均必須輸入低電平VIL為電源控制信號,用來進行器件選擇。為輸出控制,用來把數據從輸出緩沖器送往輸出引腳,即送至數據總線。

2732A采用讀方式讀出時間約為250ns。

待機方式:若某2732A的輸入端為高電平,則它將處于待機方式。2732A的工作電流為125 mA,待機時的電流可降至35 mA。在這種方式下,輸出呈高阻狀態,且不受限制。

輸出禁止方式:多個2732A芯片的輸出可以并聯到數據總線上。在這種接法中,為使存儲系統功耗最小并防止各存儲芯片爭奪總線資源,如果所有芯片的都接地的話,則可向未被選中芯片的端輸入高電平,使其輸出處于高阻狀態,這便是輸出禁止方式;而被選中芯片的給低電平信號,因此,只有它的輸出才能送往數據總線。但為更有效地利用兩條控制線,各片的(腳18)通常通過譯碼得來。即在多個EPROM芯片中選中一個使之工作,而各片(腳20)都接到控制總線的而線上,這就保證未選中的EPROM處于低功耗待機方式,它們的輸出為高阻狀態。被選中芯片的均為低電平,因此便將其數據送入數據總線。

編程方式:每次擦除后或新購2732A芯片的所有位均應為1。寫入信息時,只是把應為0的位由1改為0。而應為1的位保持不變。當2732A處于編程方式時,引腳加上21V電壓。要求在和GND兩引腳間跨接一個0.1μF的電容,以抑制該兩腳間可能產生的尖峰電壓。否則,器件可能受損。將要寫入的數據8位并行加到2732A的數據輸出引腳上。地址與數據輸入均為TTL電平。

編程禁止方式:當向多片并聯的2732A寫入不同數據時,除引腳外,各片的所有同名引腳(包括)均呈并聯狀況。在接21 V電壓的情況下,向某2732A的腳加一TTL電平的編程脈沖,將對該芯片進行寫入。向其他2732A的引腳輸入高電平,則禁止對它們進行寫入操作。

校驗方式:每寫入一個字節后都應校驗所寫內容是否有誤。

讀標識碼方式:自1982年開始,Intel所生產的EPROM芯片都內含關于廠家及產品型號的標識碼。2732A的兩個標識字節為8901H;2764、27128和27256的標識分別為8902H,8983H和8904H。讀標識應在25±5℃的環境下進行,地址線A9(腳22)加11.5V~12.5V電壓,其他地址線均為低電平V1H時,從輸出端讀到的第一個字節應為89H,代表Intel產品;當A0為高電平V1H而其他位不變時,得到第二個字節,對2732A來說,應為01H。

EPROM編程器可以通過讀標識的方法來辨認EPROM芯片的型號,從而自動啟動相應的編程算法。應當注意,對于不同容量的EPROM芯片來說,編程電壓、編程脈沖不盡相同。2764以上的芯片除具有標準編程法(即每字節用50ms寬編程脈沖)外,尚有Intel編程法。例如,32KB的27256,若用Intel編程法只要5min即可寫完。讀者可以算出,用普通編程法需多長時間。

(4)E2PROM。

E2PROM是近幾年出現的新產品。它既可以在線電擦除,又可以加電寫入,并能在斷電的情況下保持修改的結果,即具備信息不揮發的特性。它比紫外線擦除的EPROM要方便,可直接在2764插座上在程序運行過程中用電(即+5V工作時)進行改寫,并且一次操作可單獨改寫幾位或幾個字節。改寫與調整其內部數據十分方便。

常見的E2PROM型號有2816(2KB×8),2817(2KB×8),2864(8KB×8),2864A等。圖1-41所示為2817A的引腳與結構圖。

圖1-41 2817A引腳與結構圖

主站蜘蛛池模板: 冷水江市| 海林市| 寻乌县| 额济纳旗| 罗田县| 舟山市| 怀仁县| 阆中市| 锦屏县| 六安市| 昭苏县| 和顺县| 平武县| 阿鲁科尔沁旗| 河南省| 叙永县| 保山市| 无为县| 石屏县| 临猗县| 永嘉县| 宜城市| 漳浦县| 灵川县| 松潘县| 东阳市| 佳木斯市| 梧州市| 天全县| 炎陵县| 新田县| 万宁市| 南岸区| 忻城县| 九江县| 会宁县| 上蔡县| 龙井市| 新巴尔虎右旗| 鹿邑县| 河津市|