电子学/触发器
触发器是一种类似于锁存器的器件,它是一种双稳态多谐振荡器,具有两种状态,并具有反馈路径,允许它存储一个信息位。锁存器和触发器之间的区别在于,锁存器是异步的,其输出可以在输入发生变化后立即改变(或至少在经过很短的传播延迟后)。另一方面,触发器是边沿触发的,只有在控制信号从高到低或从低到高变化时才会改变状态。这种区别是比较新的,而且不是正式的,许多权威人士仍然将触发器称为锁存器,反之亦然,但为了清晰起见,这是一个有用的区别。
触发器有几种不同的类型,每种类型都有其自身的用途和特性。四种主要的触发器类型是:SR、JK、D 和 T。
SR 锁存器(置位/复位)是一种异步器件:它独立于控制信号工作,只依赖于 S 和 R 输入的状态。在图中我们可以看到,SR 锁存器可以使用两个具有交叉反馈回路的 NOR 门来创建。SR 锁存器也可以使用 NAND 门来制作,但输入要互换并取反。在这种情况下,它有时被称为SR 锁存器。
S | R | Q | Q | |
---|---|---|---|---|
0 | 0 | 锁存 | ||
0 | 1 | 0 | 1 | |
1 | 0 | 1 | 0 | |
1 | 1 | 亚稳态 |
当对 SR 锁存器的置位线施加高电平时,Q 输出变为高(而Q 为低)。然而,反馈机制意味着,即使S 输入再次变为低电平,Q 输出也将保持高电平。这就是锁存器作为记忆设备的方式。相反,复位线上的高输入将使Q 输出变为低(而Q 为高),有效地复位锁存器的“记忆”。当两个输入都为低电平时,锁存器将“锁存” - 它将保持在之前设置或复位的状态。
然而,当两个输入都为高电平时,就会出现问题:它被同时告知要产生一个高Q 和一个低Q。这会在电路中产生“竞争条件” - 哪个门先成功地改变状态,它将反馈给另一个门并断言自己。理想情况下,两个门是相同的,这是“亚稳态”,并且器件将处于未定义状态,持续时间不定。在现实生活中,由于制造方法,一个门总是会获胜,但不可能从装配线上得知特定器件是哪个门获胜。因此,S = R = 1 的状态是非法的,不应进入。
当器件上电时,也会发生类似的情况,因为两个输出Q 和Q 都为低。同样,由于两个门之间的差异,器件将很快退出亚稳态,但无法预测Q 和Q 中哪个最终会变为高。为了避免出现虚假操作,应始终在使用 SR 锁存器之前将其设置为已知初始状态 - 不要假设它们将初始化为低状态。
|
|
在某些情况下,可能需要规定锁存器何时可以和不可以锁存(改变值)。门控 SR 锁存器是对 SR 锁存器的一个简单扩展,它提供了一个使能线,在锁存数据之前必须将其驱动为高电平。即使现在需要控制线,SR 锁存器也不是同步的,因为输入可以改变输出,即使是在使能脉冲的中间 - 也就是说,如果输入在使能引脚为高电平时不断变化,则输出将不断变化,直到使能引脚变为低电平。
当使能引脚输入为低电平时,AND 门的输出也必须为低电平,这使得Q 和Q 输出锁存到先前的数据。只有当使能输入为高电平时,锁存器的状态才能改变,如真值表所示。当使能线为高电平时(断言),门控 SR 锁存器在操作上与 SR 锁存器相同。
使能线有时是时钟信号,但通常是读或写选通脉冲。
使能 S R Q Q 0 0 0 锁存 0 0 1 锁存 0 1 0 锁存 0 1 1 锁存 1 0 0 锁存 1 0 1 0 1 1 1 0 1 0 1 1 1 亚稳态
D 锁存器(D 代表“数据”)或透明锁存器是对门控 SR 锁存器的简单扩展,它消除了无效输入状态的可能性。
由于门控 SR 锁存器允许我们锁存输出而不使用S 或R 输入,我们可以通过使用互补驱动器驱动置位和复位两个输入来消除其中一个输入:我们删除一个输入并自动使其成为另一个输入的反转。
当使能线为高电平时,D 锁存器输出D 输入,否则输出将是使能输入上次为高电平时D 输入的值。这就是为什么它也被称为透明锁存器:当使能被断言时,D 输入直接传播通过锁存器,就好像它不存在一样。
使能 D Q Q 0 0 锁存 0 1 锁存 1 0 0 1 1 1 1 0
D 锁存器通常用于集成电路的 I/O 端口,并作为离散器件提供,通常以多封装形式提供。一个例子是 74HC75,它是 7400 系列 IC 的一部分,包含四个独立的 D 锁存器。
D 触发器是透明锁存器的边沿触发变体。在时钟的上升沿(通常,尽管下降沿或负边沿触发同样可能),D 输入在那一时刻的值将在输出端表示。输出只能在时钟边沿改变:如果输入在其他时间改变,输出将不受影响。
D 触发器是迄今为止最常见的触发器类型,一些器件(例如一些 FPGA)完全由 D 触发器组成。它们也常用于移位寄存器和输入同步。
JK 触发器是对 SR 触发器的简单改进,其中状态 J=K=1 不被禁止。它的工作方式与 SR FF 相同,其中 J 用作置位输入,K 用作复位输入。唯一的区别是,对于以前“禁止的”组合 J=K=1,此触发器现在执行一个操作:它反转其状态。由于 JK 触发器在所有情况下都是完全可预测的,因此它是大多数逻辑电路设计中首选的触发器类型。但仍然存在一个问题,即当实际测试电路时,两个输出都相同。这是因为在每次传播延迟完成时都会发生内部切换。主要补救措施是使用主从 JK 触发器,这种触发器通过内置的脉冲时钟功能来覆盖自(内部)递归切换。
J | K | Q下一个 | 注释 | |
---|---|---|---|---|
0 | 0 | Q先前 | 保持状态 | |
0 | 1 | 0 | 复位 | |
1 | 0 | 1 | 置位 | |
1 | 1 | Q先前 | 切换 |
Q | Q下一个 | J | K | 注释 | |
---|---|---|---|---|---|
0 | 0 | 0 | X | 保持状态 | |
0 | 1 | 1 | X | 置位 | |
1 | 0 | X | 1 | 复位 | |
1 | 1 | X | 0 | 保持状态 |
T 触发器是一种在每次触发时(如果T 输入被断言)切换或“翻转”状态的器件,否则它将保持当前输出。这种行为由特征方程描述
并可以用以下表格中的任一方法描述
|
|
当T保持高电平时,触发器将时钟频率除以二;也就是说,如果时钟频率为 4 MHz,则从触发器获得的输出频率将为 2 MHz。这种“除以”功能在各种类型的数字计数器中都有应用。T触发器也可以使用 JK 触发器(J 和 K 引脚连接在一起,充当 T)或 D 触发器(T 输入和Qprev通过异或门连接到D 输入)来构建。