集电极开路(OC)输出:
集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为"0"时,输出也为"0")。对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极C跟发射极E之间相当于断开),所以5V电源通过1K电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合);当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止(相当于开关断开)。
我们将图1简化成图2的样子。图2中的开关受软件控制,“1”时断开,“0”时闭合。很明显可以看出,当开关闭合时,输出直接接地,所以输出电平为0。而当开关断开时,则输出端悬空了,即高阻态。这时电平状态未知,如果后面一个电阻负载(即使很轻的负载)到地,那么输出端的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。
再看图三。图三中那个1K的电阻即是上拉电阻。如果开关闭合,则有电流从1K电阻及开关上流过,但由于开关闭和时电阻为0(方便我们的讨论,实际情况中开关电阻不为0,另外对于三极管还存在饱和压降),所以在开关上的电压为0,即输出电平为0。如果开关断开,则由于开关电阻为无穷大(同上,不考虑实际中的漏电流),所以流过的电流为0,因此在1K电阻上的压降也为0,所以输出端的电压就是5V了,这样就能输出高电平了。但是这个输出的内阻是比较大的(即1KΩ),如果接一个电阻为R的负载,通过分压计算,就可以算得最后的输出电压为5*R/(R+1000)伏,即5/(1+1000/R)伏。所以,如果要达到一定的电压的话,R就不能太小。如果R真的太小,而导致输出电压不够的话,那我们只有通过减小那个1K的上拉电阻来增加驱动能力。但是,上拉电阻又不能取得太小,因为当开关闭合时,将产生电流,由于开关能流过的电流是有限的,因此限制了上拉电阻的取值,另外还需要考虑到,当输出低电平时,负载可能还
会给提供一部分电流从开关流过,因此要综合这些电流考虑来选择合适的上拉电阻。
漏极开路(OD)输出:
漏极开路(OD)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,OC就变成了OD,原理分析是一样的。对于漏极开路(OD)来说,必须在漏极输出端接上拉电阻,否则只能输出低电平。
推挽(Push-Pull)输出:
一般指两三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个三极管截止,就刚好形成了推挽相连。这样的电路也称为推拉式或Totem-pole电路。推挽电路适用于低电压大电流的场合,广泛应用于开关电源和功放电路中。简化电路图如下所示:
简单理解:推挽输出的结构就是把上面的上拉电阻也换成一个开关,当要输出高电平时,上面的开关通,下面的开关断;而要输出低电平时,则刚好相反。比起OC或者OD来说,这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话,就会产生很大的电流,有可能将输出口烧坏。而上面说的OC或OD输出则不会有这样的情况,因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时,则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态。
推挽输出举例:传统8051单片机的I/O接口只可以作为标准双向输入/输出接口,如果用其来驱动LED则只能用灌电流的方式或是用三极管外扩驱动电路。灌电流方式是将LED正极接在VCC上,负极接在I/O接口上,当I/O接口为高电平时LED两极的电平相同,没有电流,LED为熄灭状态。当I/O接口为低电平时,电流从VCC流入I/O接口,LED点亮。当把LED正极接在I/O接口,负极接在GND,将I/O接口置于高电平时,LED会点亮,但因为I/O接口上拉能力不足而使亮度不理想。推挽工作方式就是具有强上拉能力的工作方式,它可以实现高电平驱动LED。惊喜出现了,把LED正负极分别接在两个I/O接口上,然后设置正极的I/O接口为推挽输出,负极的I/O接口为标准双向灌电流输入,结果会怎么样呢?非常好,我们可以直接用I/O接口驱动LED而不需要VCC和GND。LED点阵屏就是多个LED的阵列连接,只要把LED点阵屏的所有引脚接在I/O接口上,然后根据LED点阵屏的引脚定义,将对应正极的I/O接口设置成推挽,将对应负极的I/O接口设置成标准双向输入,余下的就是把将要点亮的LED点阵屏上的点所对应的行列线分别给予高低电平,那么一切就尽在掌握之中。
|
||||||
|
||||||