移位寄存器有哪些不同类型?

描述

  串行输入 – 串行输出 (SISO) 移位寄存器

  以下电路显示了由D触发器制成的串行输入-串行输出移位寄存器的结构:

  寄存器

  该移位寄存器在串行数据输入端仅接受一位数据。每次Clk输入接收到有效的触发信号时,它都会横向移动到下一个D触发器。触发器中的有效触发信号可以是上升沿(即从数字状态0 到 1 ↑ 的变化)或下降沿(从 1 到 0 ↓ 的变化)。在本教程中,我们使用触发器,通过上升沿信号触发。

  如您所见,上述电路有四个D触发器。假设您将数字 1

放入串行数据输入中。输入位需要四个上升沿信号才能到达串行数据输出。您可以在下面的SISO移位寄存器时序图中看到位的移动:

  寄存器

  串行输入 – 并行输出 (SIPO) 移位寄存器

  这种类型的移位寄存器与我们上面看到的SISO寄存器非常相似,但不同之处在于SIPO移位寄存器具有多个输出。该移位寄存器具有来自每个触发器的输出引脚,以便您可以并行访问这些位。让我们看看它的电路:

  寄存器

  该电路在串行数据输入中一次接收一位。每当D触发器中的Clk输入收到上升沿信号时,该位都会从一个触发器移动到另一个触发器 - 从左到右。

  由于 SIPO 版本具有并行输出 Q0、Q1、Q2 和

Q3,因此您不必等待输入位到达最后一个触发器即可使用;它将在第一个触发信号的Q3输出端,在Q2中在第二个触发信号中,第三个信号在Q1输出端,最后在Q0中具有第四个上升沿。您有以下行为:

  寄存器

  SIPO寄存器的一个常见实际示例是向Arduino或其他微控制器添加更多输出引脚。例如,使用带有Arduino的74HC595查看此示例。

  并行输入 – 串行输出 (PISO) 移位寄存器

  该移位寄存器具有并行输入,这意味着位同时分别加载到每个触发器上。与输入相反,输出具有串行格式,这意味着每次触发触发器时仅输出一位。

  寄存器

  上述电路由四个D触发器组成,其中时钟信号在所有Clk输入之间共享。每个D输入都连接到多路复用器,多路复用器接收位输入(IN0,IN1,IN2,IN3)和前一个触发器的输出(从左到右)。由于第一个触发器缺少先前的触发器,因此多路复用器的一个输入放置在数字1中。

  对于这种类型的寄存器,不需要上升沿信号来并行加载寄存器,因为输入中已经存在位。但是,如果考虑上述具有四个触发器的电路,则需要四个上升沿来卸载数据。这将从

IN0 中的位开始,然后是 IN1 中的位,然后是 IN2,最后是 IN3。这里有一个带有时序图的示例:

  寄存器

  并行输入 – 并行输出 (PIPO) 移位寄存器

  这种类型的移位寄存器充当多位临时存储设备。看看它的电路,试着猜测为什么。

  寄存器

  您可能已经观察到,在PIPO移位寄存器中,D触发器没有通过D输入和Q输出连接在一起。相反,它们只共享时钟信号。

  并行输入对应于每个触发器的每个D输入(D0,D1,D2,D3)。由于每个触发器在Clk输入中具有相同的时钟信号,因此每个触发器将同时触发。发生这种情况时,并行输入中的所有位将同时移动到并行输出(Q0、Q1、Q2、Q3)。换句话说,要传输整个数据集,您只需要一个触发信号。

  该电路不符合移位寄存器的条件,因为它实际上不会移位。但是,在一个输出和下一个输出之间有一些额外的逻辑门,您可以并行加载数据,移动数据,然后以并行格式获取数据的移位版本。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分