串行輸入 – 串行輸出 (SISO) 移位寄存器
以下電路顯示了由D觸發(fā)器制成的串行輸入-串行輸出移位寄存器的結(jié)構(gòu):
該移位寄存器在串行數(shù)據(jù)輸入端僅接受一位數(shù)據(jù)。每次Clk輸入接收到有效的觸發(fā)信號時(shí),它都會橫向移動到下一個(gè)D觸發(fā)器。觸發(fā)器中的有效觸發(fā)信號可以是上升沿(即從數(shù)字狀態(tài)0 到 1 ↑ 的變化)或下降沿(從 1 到 0 ↓ 的變化)。在本教程中,我們使用觸發(fā)器,通過上升沿信號觸發(fā)。
如您所見,上述電路有四個(gè)D觸發(fā)器。假設(shè)您將數(shù)字 1
放入串行數(shù)據(jù)輸入中。輸入位需要四個(gè)上升沿信號才能到達(dá)串行數(shù)據(jù)輸出。您可以在下面的SISO移位寄存器時(shí)序圖中看到位的移動:
串行輸入 – 并行輸出 (SIPO) 移位寄存器
這種類型的移位寄存器與我們上面看到的SISO寄存器非常相似,但不同之處在于SIPO移位寄存器具有多個(gè)輸出。該移位寄存器具有來自每個(gè)觸發(fā)器的輸出引腳,以便您可以并行訪問這些位。讓我們看看它的電路:
該電路在串行數(shù)據(jù)輸入中一次接收一位。每當(dāng)D觸發(fā)器中的Clk輸入收到上升沿信號時(shí),該位都會從一個(gè)觸發(fā)器移動到另一個(gè)觸發(fā)器 - 從左到右。
由于 SIPO 版本具有并行輸出 Q0、Q1、Q2 和
Q3,因此您不必等待輸入位到達(dá)最后一個(gè)觸發(fā)器即可使用;它將在第一個(gè)觸發(fā)信號的Q3輸出端,在Q2中在第二個(gè)觸發(fā)信號中,第三個(gè)信號在Q1輸出端,最后在Q0中具有第四個(gè)上升沿。您有以下行為:
SIPO寄存器的一個(gè)常見實(shí)際示例是向Arduino或其他微控制器添加更多輸出引腳。例如,使用帶有Arduino的74HC595查看此示例。
并行輸入 – 串行輸出 (PISO) 移位寄存器
該移位寄存器具有并行輸入,這意味著位同時(shí)分別加載到每個(gè)觸發(fā)器上。與輸入相反,輸出具有串行格式,這意味著每次觸發(fā)觸發(fā)器時(shí)僅輸出一位。
上述電路由四個(gè)D觸發(fā)器組成,其中時(shí)鐘信號在所有Clk輸入之間共享。每個(gè)D輸入都連接到多路復(fù)用器,多路復(fù)用器接收位輸入(IN0,IN1,IN2,IN3)和前一個(gè)觸發(fā)器的輸出(從左到右)。由于第一個(gè)觸發(fā)器缺少先前的觸發(fā)器,因此多路復(fù)用器的一個(gè)輸入放置在數(shù)字1中。
對于這種類型的寄存器,不需要上升沿信號來并行加載寄存器,因?yàn)檩斎胫幸呀?jīng)存在位。但是,如果考慮上述具有四個(gè)觸發(fā)器的電路,則需要四個(gè)上升沿來卸載數(shù)據(jù)。這將從
IN0 中的位開始,然后是 IN1 中的位,然后是 IN2,最后是 IN3。這里有一個(gè)帶有時(shí)序圖的示例:
并行輸入 – 并行輸出 (PIPO) 移位寄存器
這種類型的移位寄存器充當(dāng)多位臨時(shí)存儲設(shè)備。看看它的電路,試著猜測為什么。
您可能已經(jīng)觀察到,在PIPO移位寄存器中,D觸發(fā)器沒有通過D輸入和Q輸出連接在一起。相反,它們只共享時(shí)鐘信號。
并行輸入對應(yīng)于每個(gè)觸發(fā)器的每個(gè)D輸入(D0,D1,D2,D3)。由于每個(gè)觸發(fā)器在Clk輸入中具有相同的時(shí)鐘信號,因此每個(gè)觸發(fā)器將同時(shí)觸發(fā)。發(fā)生這種情況時(shí),并行輸入中的所有位將同時(shí)移動到并行輸出(Q0、Q1、Q2、Q3)。換句話說,要傳輸整個(gè)數(shù)據(jù)集,您只需要一個(gè)觸發(fā)信號。
該電路不符合移位寄存器的條件,因?yàn)樗鼘?shí)際上不會移位。但是,在一個(gè)輸出和下一個(gè)輸出之間有一些額外的邏輯門,您可以并行加載數(shù)據(jù),移動數(shù)據(jù),然后以并行格式獲取數(shù)據(jù)的移位版本。
-
寄存器
+關(guān)注
關(guān)注
31文章
5273瀏覽量
119660 -
移位寄存器
+關(guān)注
關(guān)注
2文章
257瀏覽量
22198
發(fā)布評論請先 登錄
相關(guān)推薦
評論