施密特触发器

在电子学中，施密特触发器（）是包含正反馈的比较器电路。
对于标准施密特触发器，当输入电压高于正向阈值电压，输出为高；当输入电压低于负向阈值电压，输出为低；当输入在正负向阈值电压之间，输出不改变，也就是说输出由高电准位翻转为低电准位，或是由低电准位翻转为高电准位对应的阈值电压是不同的。只有当输入电压发生足够的变化时，输出才会变化，因此将这种元-{}-件命名为触发器。这种双阈值动作被称为迟滞现象，表明施密特触发器有记忆性。从本质上来说，施密特触发器是一种双稳态多谐振荡器。
施密特触发器可作为波形整形电路，能将模拟信号波形整形为数字电路能够处理的方波波形，而且由于施密特触发器具有滞回特性，所以可用于抗干扰，其应用包括在开回路配置中用于抗扰，以及在闭回路正回授/负回授配置中用于实现多谐振荡器。
发明.
施密特触发器是由美国科学家奥托·赫伯特·施密特（Otto Herbert Schmitt）于1934年发明，当时他只是一个研究生，后于1937年他在其博士论文中将这一发明描述为“热电子触发器”（thermionic trigger）。这一发明是施密特对鱿鱼神经中的神经脉冲传播进行研究的直接成果。
符号.
电路图中的施密特触发器符号是一个三角中画有一个反相或非反相滞回符号。这一符号描绘了对应的理想滞回曲线。
实现.
施密特触发器可以利用简单的隧道二极管实现，这种二极管的伏安特性在第一象限中是一条“N”形曲线。振荡输入会使二极管的伏安特性从“N”形曲线的上升分支移动到另一分支，然后在输入值超越上升和下降翻转阈值时回到起点。不过，这类施密特触发器的性能可以利用基于晶体管的元-{}-件来提升，因为基于晶体管的元-{}-件可以通过非常直接的利用正反馈来提升翻转性能。
比较器实现的施密特触发器.
施密特触发器常用接入正反馈的比较器来实现，而不像运算放大器电路常接入负反馈。对于这一电路，翻转发生在接近地的位置，迟滞量由R1和R2的阻值控制：
比较器提取了两个输入之差的符号。当非反相（+）输入的电压高于反相（−）输入的电压时，比较器输出翻转到高工作电压+"V"S；当非反相（+）输入的电压低于反相（−）输入的电压时，比较器输出翻转到低工作电压−"V"S。这里的反相（−）输入是接地的，因此这里的比较器实现了符号函数，具有二态输出的特性，只有高和低两种状态，当非反相（+）端连续输入时总有相同的符号。
由于电阻网络将施密特触发器的输入端（即比较器的非反相（+）端）和比较器的输出端连接起来，施密特触发器的表现类似比较器，能在不同的时刻翻转电平，这取决于比较器的输出是高还是低。若输入是绝对值很大的负输入，输出将为低电平；若输入是绝对值很大的正输入，输出将为高电平，这就实现了非反相施密特触发器的功能。不过对于取值处于两个阈值之间的输入，输出状态同时取决于输入和输出。例如，如果施密特触发器的当前状态是高电平，输出会处于正电源轨（+VS）上。这时V+就会成为Vin和+VS间的分压器。在这种情况下，只有当V+=0（接地）时，比较器才会翻转到低电平。由电流守恒，可知此时满足下列关系：
因此formula_2必须降低到低于formula_3时，输出才会翻转状态。一旦比较器的输出翻转到−"V"S，翻转回高电平的阈值就变成了formula_4。
这样，电路就形成了一段围绕原点的翻转电压带，而触发电平是formula_5。只有当输入电压上升到电压带的上限，输出才会翻转到高电平；只有当输入电压下降到电压带的下限，输出才会翻转回低电平。若"R"1为0，"R"2为无穷大（即开路），电压带的宽度会压缩到0，此时电路就变成一个标准比较器 。输出特性如右图所示。阈值"T"由formula_6给出，输出"M"的最大值是电源轨。
实际配置的非反相施密特触发电路如下图所示。
输出特性曲线与上述基本配置的输出曲线形状相同，阈值大小也与上述配置满足相同的关系。不同点在于上例的输出电压取决于供电电源，而这一电路的输出电压由两个齐纳二极管（也可用一个双阳极齐纳二极管代替）确定。在这一配置中，输出电平可以通过选择适宜的齐纳二极管来改变，而输出电平对于电源波动具有抵抗力，也就是说输出电平提高了比较器的电源电压抑制比（PSRR）。电阻"R"3用于限制通过二极管的电流，电阻"R"4将比较器的输入漏电流引起的输入失调电压降低到最小（参见实际运算放大器的局限）。
下图是一个反相施密特触发器的例子，右图是其滞回曲线，其中Ue是输入电压，Ur是参考电压：
上述电路满足如下关系：
其中U1和U2是阈值电压，Uv是电源电压。
两个晶体管实现的施密特触发器.
在使用正反馈配置实现的施密特触发器中，比较器自身可以实现的大部分复杂功能都没有使用。因此，电路可以用两个交叉耦合的晶体管来实现（即晶体管可以用另外一种方式来实现输入级）。基于2个晶体管的施密特触发电路如下图所示。通路RC1 R1 R2设定了晶体管T2的基极电压，不过，这一分压通路会受到晶体管T1的影响，如果T1开路，通路将会提供更高的电压。因此，在两个状态间翻转的阈值电压取决于触发器的现态。
对于如上所示的NPN晶体管，当输入电压远远低于共射极电压时，T1不会导通。晶体管T2的基极电压由上述分压电路决定。由于接入负反馈，共射极上所加的电压必须几乎与分压电路上所确定的电压几乎一样高，这样就能使T2导通，并且触发器的输出是低电平状态。当输入电压（T1基极电压）上升到比电阻RE上的电压（射极电压）稍高时，T1将会导通。当T1开始导通时，T2不再导通，因为此时分压通路提供的电压低于T2基极电压，而射极电压不会降低，因为T1此时消耗通过RE的电流。此时T2不导通，触发器过渡到高电平状态。
此时触发器处于高电平状态，若输入电压降低得足够多，则通过T1的电流会降低，这会降低T2的共射极电压并提高其基极电压。当T2开始导通时，RE上的电压上升，然后会降低T1的基极－射极电位，T1不再导通。
在高电平状态时，输出电压接近V+；但在低电平状态时，输出电压仍会远远高于V−。因此在这种情况下，输出电压不够低，无法达到逻辑低电平，这就需要在触发器电路上附加放大器。
上述电路可以被简化：R1可以用短路连接代替，这样T2基极就直接连接到T1集电极，R2可以去掉并以开路代替。电路运行的关键是当T1接通（电流输入基极的结果）时，通过RE的电流比T1截止时小，因为T1导通时会使T2截止，而当T2导通时，相比T1会为RE提供更大的通过电流。当流入RE的电流减小时，其上的电压会降低，因此一旦电流开始流入T1，输入电压一定会降低以使T1回到截止状态，这是因为此时T1的射极电压已降低。这一施密特触发缓冲器也可以变成一个施密特触发反相器，而且在此过程中还能省去一个电阻，方法是将RK2以短接代替，并将Vout连接到T2射极而不是集电极。不过在这种情况下，RE的阻值应该更大，因为此时RE要充当输出端的下拉电阻，作用是当输出应该为低电平时，其会降低输出端的电压。若RE的阻值较小，其上只能产生一个较小的电压，在输出应该为数字低电平时，这一电压实际上会提高输出电压。
应用.
施密特触发器在开环配置中常用于抗扰，在闭环正反馈配置中用于实现多谐振荡器。
抗扰.
施密特触发器的一个应用是增强仅有单输入阈值的电路的抗扰能力。由于只有一个输入阈值，阈值附近的杂讯输入信号会导致输出因噪声来回地快速翻转。但是对于施密特触发器，阈值附近的噪声输入信号只会导致输出值翻转一次，若输出要再次翻转，噪声输入信号必须达到另一阈值才能实现，这就利用了施密特触发器的回差电压来提高电路的抗干扰能力。
例如，在仙童半导体公司的QSE15x红外光电传感器家族中，放大式红外光电二极管能产生电信号使频率在绝对最高值和绝对最低值间翻转。这种电信号经过低通滤波后能产生平滑信号，而这种平滑信号的上升和下降与翻转信号为开启或关闭所需时间的相对量一致。滤波后的输出传递到施密特触发器的输入。实际结果是施密特触发器的输出只从低电平过渡到高电平，而这一过程在接收到的红外信号以长于某个已知时延的时间激励光电二极管之后，一旦施密特触发器的输出变为高电平，其输出只会在红外信号不再以长于类似已知时延的时间激励光电二极管之后才会变为低电平。鉴于光电二极管容易因为环境中的噪声发生伪翻转，由滤波器和施密特触发器实现的时延能确保输出只在输入确实激励元-{}-件时才会翻转。
内建施密特触发器的元-{}-件.
如上例所述，飞兆半导体公司QSE15x光电传感器家族内建施密特触发器用于抗扰，而在很多开关电路中，内建施密特触发器也是处于相同的原因，例如开关去抖动（switch debouncing）。
下列7400系列元-{}-件在其全部输入部分都包含施密特触发器：
4000系列元-{}-件中的多个型号在其输入部分都包含施密特触发器，例如：
双施密特输入配置单门CMOS逻辑、与门、或门、异或门、与非门、或非门、同或门：
振荡器.
施密特触发器是一种双稳态多谐振荡器，可用来实现另一种多谐振荡器——弛张振荡器。实现的方法是在反相施密特触发器上连接一个电阻－电容网络，具体步骤是将电容连接在输入和地之间，将电阻连接在输出和输入之间。电路的输出是方波，其频率取决于R和C的取值以及施密特触发器的阈值点。因为多个施密特触发电路可以由单个集成电路（例如4000系列CMOS型元-{}-件40106包含6个施密特触发器）来提供，因此只需要两个外部组件就可以利用集成电路未使用的部分来构成一个简单可靠的振荡器。
此处，基于比较器的施密特触发器是反相配置，也就是说输入和地是由上图所示的施密特触发器翻转，因此，绝对值很大的负信号对应正输出，绝对值很大的正信号对应负输出。此外，接入RC网络的同时也接入了慢负反馈。结果就如右图所示，输出从"V""SS"到"V""DD"自动振荡，这一过程中电容充电，输出从施密特触发器的一个阈值变化到另一个阈值。