.求斯密特触发器的工作原理!
施密特触发器也有两个稳定状态,但与一般触发器不同的是,施密特触发器采用电位触发方式,其状态由输入信号电位维持;对于负向递减和正向递增两种不同变化方向的输入信号,施密特触发器有不同的阀值电压。
隧道二极管实现的施密特触发器
施密特触发器可以利用简单的隧道二极管(英语:tunnel diode)实现,这种二极管的伏安特性在第一象限中是一条“N”形曲线。振荡输入会使二极管的伏安特性从“N”形曲线的上升分支移动到另一分支,然后在输入值超越上升和下降翻转阈值时回到起点。不过,这类施密特触发器的性能可以利用基于晶体管的元件来提升,因为基于晶体管的元件可以通过非常直接的利用正反馈来提升翻转性能。
比较器实现的施密特触发器
施密特触发器常用接入正反馈的比较器来实现。对于这一电路,翻转发生在接近地的位置,迟滞量由R1与R2的阻值控制。
比较器提取了两个输入之差的符号。当非反相(+)输入的电压高于反相(-)输入的电压时,比较器输出翻转到高工作电压+Vs;当非反相(+)输入的电压低于反相(-)输入的电压时,比较器输出翻转到低工作电压-Vs。这里的反相(-)输入是接地的,因此这里的比较器实现了函数符号,,具有二态输出的特性,只有高和低两种状态,当非反相(+)端连续输入时总有相同的符号。
由于电阻网络将施密特触发器的输入端(即比较器的非反相(+)端)和比较器的输出端连接起来,施密特触发器的表现类似比较器,能在不同的时刻翻转电平,这取决于比较器的输出是高还是低。若输入是绝对值很大的负输入,输出将为低电平;若输入是绝对值很大的正输入,输出将为高电平,这就实现了非反相施密特触发器的功能。不过对于取值处于两个阈值之间的输入,输出状态同时取决于输入和输出。例如,如果施密特触发器的当前状态是高电平,输出会处于正电源+Vs上,。这时V+就会成为Vin和+Vs间的分压器。在这种情况下,只有当V+=0(接地)时,比较器才会翻转到低电平。由电流守恒,可知此时满足下列关系:
Vin/R1 = -Vs/R2
因此必须降低到低于-R1Vs/R2时,输出才会翻转状态。一旦比较器的输出翻转到−Vs,翻转回高电平的阈值就变成了+R1Vs/R2。这样,电路就形成了一段围绕原点的翻转电压带,而触发电平是±R1Vs/R2。。只有当输入电压上升到电压带的上限,输出才会翻转到高电平;只有当输入电压下降到电压带的下限,输出才会翻转回低电平。若R1为0,R2为无穷大(即开路)。电压带的宽度会压缩到0,此时电路就变成一个标准比较器 。输出特性如右图所示。阈值T由R1Vs/R2给出,输出M的最大值是电源轨。 实际配置的非反相施密特触发电路如下图所示。
输出特性曲线与上述基本配置的输出曲线形状相同,阈值大小也与上述配置满足相同的关系。不同点在于上例的输出电压取决于供电电源,而这一电路的输出电压由两个齐纳二极管确定。在这一配置中,输出电平可以通过选择适宜的齐纳二极管来改变,而输出电平对于电源波动具有抵抗力,也就是说输出电平提高了比较器的电源电压抑制比(PSRR)。电阻R3用于限制通过二极管的电流,电阻R4将比较器的输入漏电流引起的输入失调电压降低到最小。
2024-08-28 广告
使用DELETE触发器时,需要考虑以下的事项和原则:
·当某行被添加到deleted表中时,它就不再存在于数据库表中;因此,deleted表和数据库表没有相同的行。
·创建deleted表时,空间是从内存中分配的。deleted表总是被存储在高速缓存中。
·为DELETE动作定义的触发器并不执行TRUNCATE
TABLE语句,原因在于日志不记录TRUNCATE
TABLE语句。
UPDATE触发器的工作过程
可将UPDATE语句看成两步操作:即捕获数据前像的DELETE语句,和捕获数据后像的INSERT语句。当在定义有触发器的表上执行UPDATE语句时,原始行(前像)被移入到deleted表,更新行(后像)被移入到inserted表。
触发器检查deleted表和inserted表以及被更新的表,来确定是否更新了多行以及如何执行触发器动作。
可以使用IF?UPDATE语句定义一个监视指定列的数据更新的触发器。这样,就可以让触发器容易的隔离出特定列的活动。当它检测到指定列已经更新时,触发器就会进一步执行适当的动作,例如发出错误信息指出该列不能更新,或者根据新的更新的列值执行一系列的动作语句。
INSTEAD
OF触发器的工作过程
可以在表或视图上指定INSTEAD
OF触发器。执行这种触发器就能够替代原始的触发动作。INSTEAD
OF触发器扩展了视图更新的类型。对于每一种触发动作(INSERT、UPDATE或DELETE),每一个表或视图只能有一个INSTEAD
OF触发器。
INSTEAD
OF触发器被用于更新那些没有办法通过正常方式更新的视图。例如,通常不能在一个基于连接的视图上进行DELETE操作。然而,可以编写一个INSTEAD?OF?DELETE触发器来实现删除。上述触发器可以访问那些如果视图是一个真正的表时已经被删除的数据行。将被删除的行存储在一个名为deleted的工作表中,就像AFTER触发器一样。相似地,在UPDATE
INSTEAD
OF触发器或者INSERT
INSTEAD
OF触发器中,你可以访问inserted表中的新行。