数电基础:移位寄存器、顺序脉冲、序列信号发生器

目录

一、寄存器与锁存器的区别

二、移位寄存器

(1)移位寄存器的基本原理

(2)封装成74HC194芯片

(3)级联

(4)乘除法运算

(5)构造环形计数器

三、顺序脉冲发生器

(1)移位寄存器构造顺序脉冲

(2)计数器+译码器构造顺序脉冲

四、序列信号发生器

(1)计数器+数据选择器构造序列信号


一、寄存器与锁存器的区别

经过前面的学习我们明白了,锁存器其实就是一个能保持状态不变的环形电路。他的关键在于保持不变,那么寄存器又是什么呢?他和锁存器有什么不同?

(1)触发机制不同:寄存器仅在时钟信号的特定边沿(上升沿 / 下降沿)更新数据,边沿过后输入信号变化不影响输出;锁存器在时钟信号的高 / 低电平期间持续响应输入,电平不变时保持数据。

(2)抗干扰能力不同:寄存器抗干扰性强,仅在边沿瞬间采样,受输入信号抖动影响小;锁存器在电平有效期间易受输入噪声干扰,可能误触发。

(3)使用场景不同:寄存器适合同步时序电路,用于精确时钟控制下的数据存储(如 CPU 寄存器、移位寄存器);锁存器适合异步电路或电平控制的数据暂存(如地址锁存、简单数据缓冲)。

简单来说就是寄存器往往用多个锁存器、或者触发器电路来构建一种边沿更新数据的元件。他既有锁存器保持数据持久化的特点,又不局限于1位数据,往往可以有8位甚至更多位。

二、移位寄存器

(1)移位寄存器的基本原理

移位寄存器就是用多个D触发器级联构成的。他可以存储多位数据,不仅支持一位一位的向左、向右移动的串行输出;还能支持并行输入输出。是数字电路很重要的基本单元。

简单分析其工作原理:

Di处输入串行数据,当CLK产生一个上升沿时,会将Di的数据移入下一级D触发器。逐级往后移动,呈现移位的效果。

而并行输出是把各级D触发器的输出端引出来,直接对外输出。

(2)封装成74HC194芯片

由于移位寄存器十分基本且重要,人们将其封装成了一颗芯片。他在上述结构的基础上扩展补充了一些功能,比如左移、右移、置零、保持、并行输入等等。

(3)级联

两颗74HC194芯片就能级联成8位的移位寄存器。其实只用把上一级的输出级联到下一级的输入即可。即把左边的Q3连接到右边的DiR;把右边的Q0连接到左边的DiL。而并行输入端、8位数据输出端则直接用原本的就行。

(4)乘除法运算

我们来分析一下该电路的工作流程:

(1)首先在两个移位寄存器的输入端输入M、N两个4位数值。

(2)在CLK上升沿的时候,将数据往右移动(虽然图中是从左往右移动,但是是低位向高位移动),即数据乘2了。

(3)由于CLK2只有两个上升沿,所以N只乘以4;而CLK1有4个上升沿,所以乘以16。

(4)最后16M和4N在中间的加法器相遇,低位加低位,高位加高位。最终得到8位的16M+4N的结果。

(5)构造环形计数器

如果将移位寄存器的输出端重新连接到输入端,则形成了一个环形,状态将永远在里面循环。

(1)假设你在输入1000这个值,在4个上升沿之后,每个触发器就会记录住1、0、0、0。

(2)此后就算你不输入了,Q3的输出也会重新输入到Di处进行循环,即4状态循环。

然而这样的环形计数器存在一些问题:

(1)无法自启动:当电路由于外部干扰错误的进入某个循环,无法立马恢复到我们想要的状态。

(2)利用率低:我们说4个2进制位最多可以表示16种状态,而这里仅仅只利用了其中的4个循环态。

约翰逊为了提高利用率,将其输出端改到了FF3的Q'处,构成了扭环形计数器。他的本质与环形技术器一致,但是可以在8个状态中循环了。

三、顺序脉冲发生器

(1)移位寄存器构造顺序脉冲

所谓的顺序脉冲发生器,就是在每个始终周期内,只有一个端口输出脉冲,其余端口都输出0/1(不论是0还是1,只要保证其余的都输出一样即可)

但是这样需要多少个状态的脉冲,则需要多少个触发器,比较浪费资源。于是人们想到用计数器先计数,然后将计数的输出传给译码器,由译码器再来输出。比如你要16个周期的顺序脉冲,原思路需要16个D触发器,而现在只需要1个161芯片+2个138译码器即可,大大减少了硬件的成本。

(2)计数器+译码器构造顺序脉冲

关于图中蓝色部分其实是选通信号,让38译码器间歇性工作来规避竞争冒险现象。

因为芯片的运算必定有延迟,所以161芯片输出给38译码器的可能出现一定竞争现象,而由于延迟通常很小,往往远小于半个时钟周期。

这里38译码器的使能端接入CLK反向的选通信号后,会在CLK=1期间不工作,从而不响应。而当CLK经过半个周期后才被使能工作。直接避免了竞争-冒险现象,变得更加安全。

不过这种方式使得输出的顺序脉冲宽度只有原来的一半。

四、序列信号发生器

所谓序列信号,就是一个串行的特定信号。比如10010011串行发送出去就是一个序列信号。一般情况下,一款序列信号发生器设定好了就就会持续发送这种特殊序列,不能改变。

(1)计数器+数据选择器构造序列信号

比如这里我们想要发送00010111这个8位的序列信号:

其中161芯片负责8状态切换,而数据选择器将他的8个状态作为地址去选择输出。在时钟CLK的驱动下最终串行发出。

相关推荐
叁散5 小时前
实验项目1 RFID 标签实验
单片机·嵌入式硬件
比奇堡派星星9 小时前
MCU 裸机时间片调度系统
单片机·嵌入式硬件
安科瑞刘鸿鹏1711 小时前
工业自动化系统中抗晃电保护的协同控制研究
运维·网络·嵌入式硬件·物联网
深圳市方中禾科技12 小时前
LED驱动芯片FZH02,应用开发相关数据技术手册
单片机·嵌入式硬件·led
第二层皮-合肥12 小时前
光耦瞬态响应特性:上升时间与下降时间的测试方法与误差分析
嵌入式硬件
yuanmenghao13 小时前
CAN系列 — (6) CAN FD 带宽、CPU、中断:工程上是如何一起算的?
网络·驱动开发·单片机·mcu·自动驾驶·信息与通信
ALINX技术博客15 小时前
【ALINX 教程】FPGA Multiboot 功能实现——基于 ALINX Artix US+ AXAU25 开发板
fpga开发·fpga
Arciab15 小时前
51单片机_蜂鸣器
单片机·嵌入式硬件·51单片机
SmartRadio15 小时前
在CH585M代码中如何精细化配置PMU(电源管理单元)和RAM保留
linux·c语言·开发语言·人工智能·单片机·嵌入式硬件·lora
qq_4112624216 小时前
纯图像传感器(只出像素),还是 Himax WiseEye/WE1/WE-I Plus 这类带处理器、能在端侧跑模型并输出“metadata”的模块
人工智能·嵌入式硬件·esp32·四博智联