當(dāng)前位置:首頁 > 百科知識 > 電子工程 > 正文

鎖存器

鎖存器(Latch)是一種對脈沖電平敏感的存儲單元電路,它們可以在特定輸入脈沖電平作用下改變狀態(tài)。鎖存,就是把信號暫存以維持某種電平狀態(tài)。鎖存器的最主要作用是緩存,其次完成高速的控制器與慢速的外設(shè)的不同步問題,再其次是解決驅(qū)動的問題,最后是解決一個 I/O 口既能輸出也能輸入的問題。鎖存器是利用電平控制數(shù)據(jù)的輸入,它包括不帶使能控制的鎖存器和帶使能控制的鎖存器。

描述

  鎖存器,Latch,是數(shù)字電路中的一產(chǎn)品種具有記憶功能的邏輯元件。鎖存,就是把信號暫存以維持某種電平狀態(tài),在數(shù)字電路中則可以記錄二進(jìn)制數(shù)字信號“0”和“1”。

  只有在有鎖存信號時輸入的狀態(tài)被保存到輸出,直到下一個鎖存信號。通常只有0和1兩個值。

  邏輯結(jié)構(gòu)與功能表

  8位鎖存器74LS373的邏輯圖如圖所示。其中使能端G加入CP信號,D為數(shù)據(jù)信號。輸出控制信號為0時,鎖存器的數(shù)據(jù)通過三態(tài)門進(jìn)行輸出。

  累加Latch:

  微處理器中運(yùn)算器部分主要電路結(jié)構(gòu)。

  作用是防止算術(shù)邏輯單元(Arithmetic Logic Unit, ALU) 的輸出通過累加器(A)直接反饋到ALU的輸入端。

  原理

  CMOS反相器的功能是可以使輸出獲得跟輸入相反的邏輯值,那如果把兩個反相器的輸入跟輸出連接在一起會出現(xiàn)什么情況呢?我們來看下圖,假設(shè)某個時刻反向器A的輸入是1,那么其輸出會是0;因為A的輸出連接到B的輸入端,即反相器B的輸入為0,那么其輸出會變?yōu)?;又因為B的輸出連接到A的輸入端,即B輸出的1反饋回A的輸入,對剛才假設(shè)的“A的輸入為1”進(jìn)行了確認(rèn)和加強(qiáng)。此時A的輸入確實為1,按A和B的輸入輸出連接關(guān)系,又走了一遍剛才的路程,如此循環(huán),結(jié)果是反相器A的輸出穩(wěn)定為0,反相器B的輸出穩(wěn)定為1。這個結(jié)構(gòu)的電路有兩個穩(wěn)定的狀態(tài),一般稱之為雙穩(wěn)態(tài)電路??梢婎愃频碾p穩(wěn)態(tài)電路可以穩(wěn)定地保持其節(jié)點中的值(數(shù)據(jù)),具有記憶功能,這就是鎖存器工作的原理。

  

  鎖存器原理1

  從上面介紹可看出,首尾相接的兩個反相器構(gòu)成了互相反饋耦合的形態(tài),這就是鎖存器的基本電路結(jié)構(gòu)。但是這里是基于一個假設(shè),假設(shè)反相器A的輸入為1,那么它的輸出為0,兩個反相器連在一起通過互相反饋加強(qiáng),則能保持0和1兩個值。如果沒有這個假設(shè),它能保存的值將是不確定的。這類似于“雞生蛋還是蛋生雞”的謎局,要將此電路當(dāng)鎖存器使用,就必須打破這個“是輸入先有0,還是輸出先反饋回1”的僵局。于是給它加了兩個輸入端,由于反相器只有1個輸入,因此改用或非門來代替。電路結(jié)構(gòu)如下圖,根據(jù)或非門“只要有一個輸入為1,其輸出就為0”的特性,當(dāng)R為1時,雖然有反饋存在,也可以強(qiáng)制輸出Q=0;當(dāng)S為1時,則強(qiáng)制輸出Q=1。這就是R-S鎖存器,R意為Reset,清零的意思;S意為Set,置1的意思。

  

  鎖存器原理2

  R-S鎖存器的結(jié)構(gòu)是最基本的鎖存結(jié)構(gòu),實際應(yīng)用中一般會進(jìn)行各種改造和擴(kuò)展,至少會加一個輸入端作為控制信號,該信號有效時,鎖存器能持續(xù)地輸入、輸出數(shù)據(jù)。其控制信號一般為高電平,因此鎖存器是一種對脈沖電平敏感的存儲單元電路,可以在特定輸入脈沖電平作用下改變狀態(tài)。鎖存器的最主要作用是緩存,除了特殊用途如異步電路或很簡單的邏輯,其他場合已經(jīng)很少直接應(yīng)用鎖存器,因為其結(jié)構(gòu)簡單而且對電平敏感,不適合在主流的對時鐘敏感的集成電路中應(yīng)用。一般都是使用以鎖存器為基礎(chǔ)的觸發(fā)器或寄存器。

  應(yīng)用場合

  所謂鎖存器,就是輸出端的狀態(tài)不會隨輸入端的狀態(tài)變化而變化,僅在有鎖存信號時輸入的狀態(tài)才被保存到輸出,直到下一個鎖存信號到來時才改變。

  鎖存器多用于集成電路中,在數(shù)字電路中作為時序電路的存儲元件,在某些運(yùn)算器電路中有時采用鎖存器作為數(shù)據(jù)暫存器。

  封裝為獨立的產(chǎn)品后也可以單獨應(yīng)用,數(shù)據(jù)有效延遲于時鐘信號有效。這意味著時鐘信號先到,數(shù)據(jù)信號后到。

  在某些應(yīng)用中,單片機(jī)的I/O 口上需要外接鎖存器。例如,當(dāng)單片機(jī)連接片外存儲器時,要接上鎖存器,這是為了實現(xiàn)地址的復(fù)用。假設(shè),MCU端口其中的 8 路的 I/O 管腳既要用于地址信號又要用于數(shù)據(jù)信號,這時就可以用鎖存器先將地址鎖存起來。

  8051訪問外部存儲器時P0口和P2口共同做為地址總線,P0口常接鎖存器再接存儲器。以防止總線間的沖突。而P2口直接接存儲器。因為單片機(jī)內(nèi)部時序只能鎖住P2口的地址,如果用P0口傳輸數(shù)據(jù)時不用鎖存器的話,地址就改變了。

  看看8051單片機(jī)總線操作的時序圖對我們很有幫助。由于數(shù)據(jù)總線、地址總線共用P0口,所以要分時復(fù)用。先送地址信息,由ALE使能鎖存器將地址信息鎖存在外設(shè)的地址端,然后送數(shù)據(jù)信息和讀寫使能信號,在指定的地址進(jìn)行讀寫操作。

  使用鎖存器來區(qū)分開單片機(jī)的地址和數(shù)據(jù),8051系列的單片機(jī)用的比較多,也有一些單片機(jī)內(nèi)部有地址鎖存功能,如8279就不用鎖存器了。

  注意事項

  并不是一定要接鎖存器,要看其地址線和數(shù)據(jù)線的安排,只有數(shù)據(jù)和地址線復(fù)用的情況下才會需要鎖存器,其目的是防止在傳數(shù)據(jù)時,地址線被數(shù)據(jù)所影響! 這是由單片機(jī)數(shù)據(jù)與地址總線復(fù)用造成的,接 RAM 時加鎖存器是為了鎖存地址信號。

  如果單片機(jī)的總線接口只作一種用途,不需要接鎖存器;如果單片機(jī)的總線接口要作兩種用途,就要用兩個鎖存器。例如:一個口要控制兩個 LED,對第一個 LED 送數(shù)據(jù)時,“打開”第一個鎖存器而“鎖住”第二個鎖存器,使第二個 LED 上的數(shù)據(jù)不變。對第二個 LED 送數(shù)據(jù)時,“打開”第二個鎖存器而“鎖住”第一個鎖存器,使第一個 LED 上的數(shù)據(jù)不變。如果單片機(jī)的一個口要做三種用途,則可用三個鎖存器,操作過程相似。然而在實際應(yīng)用中,我們并不這樣做,只用一個鎖存器就可以了,并用一根 I/O 口線作為對鎖存器的控制之用(接 74373 的LE,而OE可恒接地)。所以,就這一種用法而言,可以把鎖存器視為單片機(jī)的 I/O 口的擴(kuò)展器。


內(nèi)容來自百科網(wǎng)