目录
一、相关知识
1.三极管和MOS管
事实上,Transistor是个合成词,由 transfer (转换)和 resistor (电阻器)组合而成。因为晶体管可以通过电阻器把交流电转换为直流电
在不引起混淆的情况下,通常认为:
三极管指的是双极性晶体管,它是基本放大电路的核心器件 1
MOS管指的是绝缘栅型场效应管,它是门电路的基本组成单元 2
2.TTL电路和CMOS电路
TTL是Transistor-Transistor-Logic(晶体管-晶体管逻辑)的缩写,是以双极性晶体管作为基本单元制作的一类集成电路,例如:74LS系列芯片
CMOS是Complementary Metal-Oxide-Semiconductor(互补金属氧化物半导体)的缩写,是以绝缘栅型场效应管作为基本单元制作的一类集成电路,例如:74HC系列芯片
简单来讲,由三极管(BJT)构成的电路是TTL电路;由MOS管构成的电路是CMOS电路
就这两类电路而言,应用更为广泛的是CMOS电路,主要原因是:CMOS电路功耗低,带负载能力强,且便于集成
3.门电路
门电路是数字电路中的基本单元,前面已经讲了TTL电路和CMOS电路,尽管它们属于集成电路的范畴,但对于分立元件组成的电路,我们仍可以用其进行分类,即将门电路分为两大类:TTL门电路 和 CMOS门电路
对于各种门电路的结构和功能网上都有详细的介绍,这里不再过多赘述,下面只说明两点细节:
门电路供电问题:从图中可以看到,非门是需要单独供电的,否则电路将不能正常工作,其实不只是非门,任何一个门电路都需要供电,这是一个比较重要的细节,至于为什么要单独来讲,后面会给出原因
门电路的比较:反相器是最简单的门电路,其次是与非门/或非门,与门/或门反而是最复杂的
由于实际需要,常用与非门/或非门+反相器来构成与门/或门,这样做可以带来很多好处3,因此在实际的数字集成电路中,使用更多的是与非门和或非门
4.双稳态电路
先来看上面这个电路,思考一下,如果我们在某时刻开始给该电路供电,会出现什么现象?
答案是电路会随机进入一种状态,为什么是随机呢?因为电路不可能完全对称,总会有一个反相器比另一个响应速度更快,结果就是U1和U2一个输出高电平,一个输出低电平,并且将一直保持下去,这就是双稳态电路的雏形
为了利用电路的这种保存特性,我们希望可以人为控制它的输出状态,对于这个电路来讲,我们无法改变它的状态,原因在于它没有给我们提供任何的控制端口。因此,我们需要增加控制端,一种做法是把图中的反相器换成二输入与非门,如下图所示。这样我们便可以通过S和R两个输入端来修改电路的输出状态了
这就是最简单的双稳态电路,它又被叫做SR锁存器
由此,我们可以引出双稳态电路的定义:
双稳态电路:对某个电路而言,若其只有两种确定的输出状态A和B,而这两种确定的输出状态对于两种确定的触发信号,且它们之间存在如下关系:
1.在给定一个触发信号时,无论电路处于何种状态,都会立即变为A状态
2.在给定另一个触发信号时,无论电路处于何种状态,都会立即变为B状态
3.在没有收到没有触发信号时,电路将一直保持原来的状态不变
我们就称这个电路是一个双稳态电路
二、锁存器、触发器
1.锁存器
前面已经讲过了,SR锁存器其实就是最简单的双稳态电路,利用它的记忆特性,我们可以存储一位二进制数,并按照我们的意愿来修改它
除了上面给出的与非门构成的锁存器以外,还有或非门构成的锁存器(后面所有触发器的特性均和它类似),如图:
对于锁存器,我们需要注意两点:
- 一是由与非门构成的锁存器和或非门构成的锁存器,它们的真值表特性相反4
- 二是锁存器的输入应该满足一定的约束条件,对于或非门构成的锁存器而言,电路输入应该满足SR=0
之所以不能让SR=1,是因为当S和R同时取高电平时,电路的输出 Q 和 Q’ 都会被强制维持在高电平,这时如果让S和R同时回到低电平,电路将会进入不定状态:对于实际电路而言,电路的输出会随机进入一种状态并保持下去,这种状态是人为不可控的
2.触发器
接下来是本文的核心内容——触发器,先来看下它们之间的关系图:
由图可以得出触发器的本质:即含有时钟控制端的锁存器
下面将按照图中顺序依次讲解(不涉及真值表和波形图,重点在于对电路结构的理解)
1)电平触发的SR触发器
S为 Set 的缩写,R为 Reset 的缩写,意思是置位和复位,置位就是将输出端Q设置为高电平,复位就是让输出端Q回到低电平
事实上,S端和R端的功能完全一致,置位和复位都是相对某个输出端而言的,但是一般情况下,我们只关心某一个输出端,规定S端和R端使我们在分析电路时更加方便
可以看到,电平SR触发器其实就是在锁存器的基础上增加了时钟控制电路,因此我们有时也把它叫做门控SR锁存器
优点:提高了电路的抗干扰性,只有在CLK给高电平的时候电路输入才有效
缺点:会出现输入同时为1的情况,即电路可能出现不定状态
把SR触发器后面两个二输入与非门换成三输入与非门,它就变成了含异步置位/复位端的电平SR触发器
这两个输入端可以不受时钟信号的控制,直接对电路输出状态进行修改。在电路正常工作时,应该使这两个输入端保持高电平
一般而言,在数字电路中,输入端名称上带有 ’ 的,意思是输入为低电平时起作用,因此在电路正常使用时应该给这些输入端加以高电平
2)电平触发的D触发器
D触发器在英语中叫做data flip-flop(数据翻转)/delay flip-flop(延迟触发器)
在前者的基础上,用一个反相器将两个输入端串起来,就构成了电平触发的D触发器,有时也把它叫作D型锁存器
优点:不会出现输入同时为1的情况,相较于电平SR触发器,进一步提高了电路的稳定性
3)边沿触发的D触发器
将两个电平D触发器串联,由异步时钟信号来控制,就构成了一个边沿触发的D触发器
对于这个电路,我们需要搞明白几个问题:
1.什么是边沿触发?
2.为什么是边沿触发?
3.为什么是上升沿触发?
电路的工作原理:
1.CLK为低电平时,主触发器 导通,从触发器 截止,此时 中间输出Q* 会随着输入 D 的变化而不断变化
2.CLK由电平变为高电平的瞬间,主触发器 截止,从触发器 导通,此时主触发器中保存的是最后一次输入 D 产生的输出的 Q*,这个 Q* 又作为从触发器的输入,使从触发器产生最终输出 Q
问题关键:
为什么主触发器保存的是最后一次输入D产生的输出?这是因为D触发器的输入输出关系唯一确定,输入为1时输出为1,输入为0时输出为0,不会出现输入同时为0的无效保持现象
至于为什么是上升沿触发,它是由电路结构决定的,本电路是上升沿触发,但如果把CLK输入端的第一个反相器去掉,电路就变为下降沿触发了
4)脉冲触发的SR触发器
将两个电平SR触发器串联,由异步时钟信号来控制,就构成了一个脉冲触发的SR触发器
对于这个电路,我们同样提出几个问题:
1.什么是脉冲触发?
2.为什么是脉冲触发?
3.电路的输出取决于哪一次输入?
电路的工作原理:(为了类比前面的边沿D触发器,我们规定SR触发器输入为 01 或 10 的状态为其“有效输入状态”)
1.CLK为高电平时,主触发器导通,从触发器截止,电路的中间输出 Q* 将随输入S,R的变化而变化
2.CLK由高电平变为低电平的瞬间,主触发器截止,从触发器导通,此时电路的输出状态要分情况讨论:
- 如果下降沿到来瞬间S和R均为0,那么电路输出由前一次有效输入状态决定
- 如果下降沿到来前瞬间S和R不全为0,那么电路输出由本次输入状态决定
注意:不考虑SR=1的情况
与 D 触发器不同的是,并非输入状态每次变化都会对 SR 触发器的输出产生影响,因为它还存在输入同时为0无效保持的情况
5)脉冲触发的JK触发器
为了适应某些电路的需要,我们希望 S 和 R 都给高电平时,输出发生翻转,这就是JK触发器
JK触发器中的J和K仅仅是为了区分SR触发器中的S和R,并没有实际意义
可以看到,脉冲JK触发器只是在脉冲SR触发器的基础上增加了两条反馈线
因此,理解该电路的关键就在于弄明白这两条反馈线的作用
电路的工作原理:
1.CLK为高电平时,主触发器导通,从触发器截止,电路的中间输出 Q* 仅能随输入J,K发生一次翻转
2.CLK由高电平变为低电平的瞬间,主触发器截止,从触发器导通,同样地,需要分情况来讨论:
- 如果输入没有使中间输出 Q* 发生翻转,那么电路保持原来的输出状态
- 如果输入使中间输出 Q* 发生翻转,电路最终输出发生翻转
需要注意:SR=1也能使输出发生翻转
为了便于理解电路的工作过程,我们假定初始状态:Q = 1,Q’ = 0,Q* =1
在假设成立的情况下,CLK为高电平期间:
- 如果给定输入状态:J=1,K=0
此时由于反馈信号的作用,电路的真实输入为: J’=JQ’=0,K’=KQ=0
中间输出 Q*保持不变- 如果给定输入状态:J=0,K=1
真实输入: J’=JQ’=0,K’=KQ=1
中间输出Q*由1变为0
-此后若要使 Q* 由0变回1,需要输入J’=JQ’=1,K’=KQ=0,又因为Q=1,Q’=0,故不可能实现要求,即中间输出不会再发生翻转- 如果给定输入状态:J=1,K=1
真实输入:J’=JQ’=0,K’=KQ=1
中间输出Q*由1变为0
-同理,此后电路不会再发生翻转
简单来讲,当电路初始状态Q为1时,由于存在反馈线的作用,输入只可能将输出由1变为0,而无法再将输出由0变为1
更通俗地讲,JK触发器的输出状态一旦发生改变,触发器将被锁定,无法再次被修改
6)T触发器
T触发器可以通过把JK触发器的输入端串联得到 5
其功能是:在CLK为高电平期间,每当 T 输入一个脉冲信号,电路的输出就翻转一次;而在CLK为低电平期间,电路输出保持不变
备注:此电路图有误,应该使用普通JK触发器而非主从JK触发器,或者以其中间输出来作为电路最终输出
7)触发方式汇总
触发方式共有3类:电平触发、边沿触发和脉冲触发(实际上,三种触发方式都可以归结为电平触发)
简单回顾一下三种触发方式的动作特点:
-
电平触发:CLK高电平期间电路输出随输入正常变化;CLK低电平期间电路保持原有状态不变
-
边沿触发:电路的输出仅仅决定于上升沿(默认)到来瞬间的输入状态
-
脉冲触发:CLK高电平期间电路输出随输入发生一次(JK)或者多次(SR)变化,不能仅仅根据下降沿(默认)到来瞬间的输入状态来确定,而是需要考虑整个脉冲期间的输入变化情况
通过方框图区分不同的触发方式:
- 电平触发:方框内除字母外没有任何标识,默认高电平有效
- 边沿触发:CLK端有一个 ▷ 符号,默认上升沿触发
- 脉冲触发:方框内有两个 ┓ 标识,默认高电平有效,下降沿触发
改变这些触发方式默认特性的方法均为在CLK输入端口加一个 ‘o’
另外,SR、JK、D和T这些称呼是由电路的输入特性决定的,读者可以对照前面的内容自行体会
8)断电存储问题
现在,还有有最后一个问题:触发器能否断电存储?
先来想一下,触发器需要供电吗?
当然需要!前面我们就说过,任何门电路都需要供电,触发器也是由门电路组成的,它当然也要供电才能正常工作
因此,触发器不能断电存储,但是这样说并不严谨
如果断电是指输入同时回到低电平的话,此时触发器是可以“断电存储”的
而一般我们所说的断电是指切断电路一切供电,此时触发器不可以断电存储
计算机CPU内部所使用的寄存器就是基于触发器原理制作的,因此断电后寄存器内部信息会丢失,还有主板上的内存条也是如此。
那如何实现断电存储呢?
答案是使用硬盘或者其他不依赖于供电实现存储功能的器件,有关于硬盘的存储原理,感兴趣的可以去网上了解。
这是我在平台发布的第一篇较为正式的文章,可能会存在一些问题,还请帮忙指出。
希望本文能对你有所帮助
最后,祝大家学业有成,工作顺利!