imjacob的专栏

首页博文目录订阅
正 文

推挽输出与开漏输出的区别【转】

(2011/1/12 22:28)

推挽输出:可以输出高,低电平,连接数字器件;

开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行. 适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内).

    推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.
    要实现 线与 需要用OC(open collector)门电路.是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小,效率高。输出既可以向负载灌电流,也可以从负载抽取电流。

/////////////////////////////////////////////////////////////////////

                          开漏电路特点及应用

    在电路设计时我们常常遇到开漏(open drain)和开集(open collector)的概念。本人虽然在念书时就知道其基本的用法,而且在设计中并未遇的过问题。但是前两天有位同事向我问起了这个概念。我忽然觉得自己对其概念了解的并不系统。近日,忙里偷闲对其进行了下总结。
  所谓开漏电路概念中提到的“漏”就是指MOSFET的漏极。同理,开集电路中的“集”就是指三极管的集电极。开漏电路就是指以MOSFET的漏极为输出的电路。一般的用法是会在漏极外部的电路添加上拉电阻。完整的开漏电路应该由开漏器件和开漏上拉电阻组成。如图1所示:   
组成开漏形式的电路有以下几个特点:
1. 利用 外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经R pull-up ,MOSFET到GND。IC内部仅需很下的栅极驱动电流。如图1。
2. 可以将多个开漏输出的Pin,连接到一条线上。形成 “与逻辑” 关系。如图1,当PIN_A、PIN_B、PIN_C任意一个变低后,开漏线上的逻辑就为0了。这也是I2C,SMBus等总线判断总线占用状态的原理。
3. 可以利用改变上拉电源的电压,改变传输电平。如图2, IC的逻辑电平由电源Vcc1决定,而输出高电平则由Vcc2决定。这样我们就可以用低电平逻辑控制输出高电平逻辑了。
4. 开漏Pin不连接外部的上拉电阻,则只能输出低电平(因此对于经典的51单片机的P0口而言,要想做输入输出功能必须加外部上拉电阻,否则无法输出高电平逻辑)。
5. 标准的开漏脚一般只有输出的能力。添加其它的判断电路,才能具备双向输入、输出的能力。

应用中需注意:
1.   开漏和开集的原理类似,在许多应用中我们利用开集电路代替开漏电路。例如,某输入Pin要求由开漏电路驱动。则我们常见的驱动方式是利用一个三极管组成开集电路来驱动它,即方便又节省成本。如图3。
2. 上拉电阻R pull-up的 阻值 决定了 逻辑电平转换的沿的速度 。阻值越大,速度越低功耗越小。反之亦然。

   Push-Pull输出就是一般所说的推挽输出,在CMOS电路里面应该CMOS输出更合适,应为在CMOS里面的push-pull输出能力不可能做得双极那么大。输出能力看IC内部输出极N管P管的面积。和开漏输出相比,push-pull的高低电平由IC的电源低定,不能简单的做逻辑操作等。 push-pull是现在CMOS电路里面用得最多的输出级设计方式。
at91rm9200 GPIO 模拟I2C接口时注意!!

一.什么是OC、OD

集电极开路门(集电极开路 OC 或源极开路OD)
open-drain是漏极开路输出的意思,相当于集电极开路(open-collector)输出,即ttl中的集电极开路(oc)输出。一般用于线或、线与,也有的用于电流驱动。

open-drain是对mos管而言,open-collector是对双极型管而言,在用法上没啥区别。
开漏形式的电路有以下几个特点:
1.利用外部电路的驱动能力,减少IC内部的驱动。 或驱动比芯片电源电压高的负载.
2.可以将多个开漏输出的Pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑” 关系。这也是I2C,SMBus等总线判断总线占用状态的原理。如果作为图腾输出必须接上拉电阻。接容性负载时,下降延是芯片内的晶体管,是有源驱动,速度较快;上升延是无源的外接电阻,速度慢。如果要求速度高电阻选择要小,功耗会大。所以负载电阻的选择要兼顾功耗和速度。

3.可以利用改变上拉电源的电压,改变传输电平。例如加上上拉电阻就可以提供TTL/CMOS电平输出等。
4.开漏Pin不连接外部的上拉电阻,则只能输出低电平。一般来说,开漏是用来连接不同电平的器件,匹配电平用的。
5.正常的CMOS输出级是上、下两个管子,把上面的管子去掉就是OPEN-DRAIN了。这种输出的主要目的有两个:电平转换和线与。

6.由于漏级开路,所以后级电路必须接一上拉电阻,上拉电阻的电源电压就可以决定输出电平。这样你就可以进行任意电平的转换了。
7.线与功能主要用于有多个电路对同一信号进行拉低操作的场合,如果本电路不想拉低,就输出高电平,因为OPEN-DRAIN上面的管子被拿掉,高电平是靠外接的上拉电阻实现的。(而正常的CMOS输出级,如果出现一个输出为高另外一个为低时,等于电源短路。)

8.OPEN-DRAIN提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。

二.什么是线或逻辑与线与逻辑?

   在一个结点(线)上, 连接一个上拉电阻到电源 VCC 或 VDD 和 n 个 NPN 或 NMOS 晶体管的集电极 C 或漏极 D, 这些晶体管的发射极 E 或源极 S 都接到地线上, 只要有一个晶体管饱和, 这个结点(线)就被拉到地线电平上.
因为这些晶体管的基极注入电流(NPN)或栅极加上高电平(NMOS), 晶体管就会饱和, 所以这些基极或栅极对这个结点(线)的关系是或非 NOR 逻辑. 如果这个结点后面加一个反相器, 就是或 OR 逻辑.

注:个人理解:线与,接上拉电阻至电源。(~A)&(~B)=~(A+B),由公式较容易理解线与此概念的由来 ;

如果用下拉电阻和 PNP 或 PMOS 管就可以构成与非 NAND 逻辑, 或用负逻辑关系转换与/或逻辑.

注:线或,接下拉电阻至地。(~A)+(~B)=~(AB);
这些晶体管常常是一些逻辑电路的集电极开路 OC 或源极开路 OD 输出端. 这种逻辑通常称为线与/线或逻辑, 当你看到一些芯片的 OC 或 OD 输出端连在一起, 而有一个上拉电阻时, 这就是线或/线与了, 但有时上拉电阻做在芯片的输入端内
.
顺便提示如果不是 OC 或 OD 芯片的输出端是不可以连在一起的, 总线 BUS 上的双向输出端连在一起是有管理的, 同时只能有一个作输出, 而其他是高阻态只能输入.

三.什么是推挽结构
一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止.要实现线与需要用OC(open collector)门电路 .如果输出级的有两个三极管,始终处于一个导通、一个截止的状态,也就是两个三级管推挽相连,这样的电路结构称为推拉式电路或图腾柱(Totem- pole)输出电路(可惜,图无法贴上)。当输出低电平时,也就是下级负载门输入低电平时,输出端的电流将是下级门灌入T4;当输出高电平时,也就是下级负载门输入高电平时,输出端的电流将是下级门从本级电源经 T3、D1 拉出。这样一来,输出高低电平时,T3 一路和 T4 一路将交替工作,从而减低了功耗,提高了每个管的承受能力。又由于不论走哪一路,管子导通电阻都很小,使RC常数很小,转变速度很快。因此,推拉式输出级既提高电路的负载能力,又提高开关速度。供你参考。
推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小 效率高。
输出既可以向负载灌电流,也可以从负载抽取电流

 

载自:

http://forum.eepw.com.cn/thread/149218/1

http://www.avrgcc.com/article/2010-12/2323138780.html

另 参考:

http://zhidao.baidu.com/question/143155229.html

http://www.icsmar.com/news/10/5113.html为什么TTL门电路的输出级采用推拉式结构?它对减少输出电阻有什么好处?

http://www.exzdev.com/2010/11/%E7%90%86%E8%A7%A3%E4%BD%95%E4%B8%BA%E2%80%9C%E6%8E%A8%E6%8C%BD%E8%BE%93%E5%87%BA%E2%80%9D/ (理解何为“推挽输出”)

http://blog.eccn.com/space.php?uid=353091&do=blog&id=1217 什么是上拉/下拉电阻?什么是线驱动输出/集电极开路输出/推挽式输出?[精典,转]

 

http://wenku.baidu.com/view/ae5dd500bed5b9f3f90f1c42.html (集电极开路门和 三态门研究)

http://www.dz3w.com/info/digital/0076236.htmlTTL或非门、集电极开路门和三态门电路

 

集电极开路输出
     我们先来说说集电极开路输出的结构。集电极开路输出的结构如图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的上拉电阻来增加驱动能力。但是,上拉电阻又不能取得太小,因为当开关闭合时,将产生电流,由于开关能流过的电流是有限的,因此限制了上拉电阻的取值,另外还需要考虑到,当输出低电平时,负载可能还会给提供一部分电流从开关流过,因此要综合这些电流考虑来选择合适的上拉电阻。

     如果我们将一个读数据用的输入端接在输出端,这样就是一个io口了(51的io口就是这样的结构,其中p0口内部不带上拉,而其它三个口带内部上拉),当我们要使用输入功能时,只要将输出口设置为1即可,这样就相当于那个开关断开,而对于p0口来说,就是高阻态了。

     对于漏极开路(od)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,oc就变成了od,原理分析是一样的。
另一种输出结构是推挽输出。推挽输出的结构就是把上面的上拉电阻也换成一个开关,当要输出高电平时,上面的开关通,下面的开关断;而要输出低电平时,则刚好相反。比起oc或者od来说,这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话,就会产生很大的电流,有可能将输出口烧坏。而上面说的oc或od输出则不会有这样的情况,因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时,则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态,avr单片机的一些io口就是这种结构。
1.jpg

什么是上拉电阻?下拉电阻?
数字电路中不用的输入脚都要接固定电平,通过1k电阻接高电平或接地。
1. 电阻作用:
(1)接电阻就是为了防止输入端悬空
(2)减弱外部电流对芯片产生的干扰
(3)保护cmos内的保护二极管,一般电流不大于10ma
(4)上拉和下拉、限流
(5) 改变电平的电位,常用在ttl-cmos匹配
(6) 在引脚悬空时有确定的状态
(7)增加高电平输出时的驱动能力。
(8)为oc门提供电流
      1)那要看输出口驱动的是什么器件,如果该器件需要高电压的话,而输出口的输出电压又不够,就需要加上拉电阻。
      2)如果有上拉电阻那它的端口在默认值为高电平你要控制它必须用低电平才能控制如三态门电路三极管的集电极,或二极管正极去控制把上拉电阻的电流拉下来成为低电平。反之,
(9)尤其用在接口电路中,为了得到确定的电平,一般采用这种方法,以保证正确的电路状态,以免发生意外,比如,在电机控制中,逆变桥上下桥臂不能直通,如果它们都用同一个单片机来驱动,必须设置初始状态.防止直通!

2、定义:
l 上拉就是将不确定的信号通过一个电阻嵌位在高电平!电阻同时起限流作用!下拉同理!
l 上拉是对器件注入电流,下拉是输出电流
l 弱强只是上拉电阻的阻值不同,没有什么严格区分
l 对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道

3、为什么要使用拉电阻:
l 一般作单键触发使用时,如果ic本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在ic外部另接一电阻。
l 数字电路有三种状态:高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻的方式使处于稳定状态,具体视设计要求而定!
l 一般说的是i/o端口,有的可以设置,有的不可以设置,有的是内置,有的是需要外接,i/o端口的输出类似与一个三极管的c,当c接通过一个电阻和电源连接在一起的时候,该电阻成为上c拉电阻,也就是说,如果该端口正常时为高电平,c通过一个电阻和地连接在一起的时候,该电阻称为下拉电阻,使该端口平时为低电平,作用吗:
比如:当一个接有上拉电阻的端口设为输如状态时,他的常态就为高电平,用于检测低电平的输入。
l 上拉电阻是用来解决总线驱动能力不足时提供电流的。一般说法是拉电流,下拉电阻是用来吸收电流的,也就是你同学说的灌电流

线驱动(差动输出)
线驱动器是一个源电流输出器件。在导通状态时,线驱动器输出为电源(vcc);在关断状态时,输出悬空。因此,线驱动器需要一个灌电流输入接口。下面表格中给出了一个简单的线驱动器的原理图。差动输出(欧姆龙称为线性驱动输出)线性驱动输出就是根据rs-422a的数据输送回路。可通过双股搅合线电缆进行长距离输送
2.gif



集电极开路
集电极开路电路是灌电流输出器件。在关断状态时,集电极开路输出连到地;在导通状态时,集电极开路输出悬空。因此,集电极开路输出需要一个源电流输入接口。下面表格中给出了一个简单的集电极开路输出电路的原理图。
3.gif


推挽式
推挽式输出结合了线驱动与集电极开路输出,在关断状态时,推挽式输出接地;在导通状态时,推挽式输出连到电源(vcc)。推挽输出(欧姆龙称为互补输出)输出回路有2种,即npn与pnp2种晶体管输出。根据输出信号h或l,2种晶体管输出互相交叉进行on或off动作,使用时,正电源,0v分别为吸合,拉下互补输出是输出电流流出或流入2种动作,特征是信号的上升、下降速度快,可进行导线的长距离延长。可与开路集电极输入机器(npn/pnp)连接,另外还可以连接到电压输入机器上。但是为了能更好的发挥未来的性能,一般推荐在电压输入机器上使用电压输入的编码器。

评 论
还没有网友评论,欢迎您第一个评论!
博 主
进入imjacob的首页
博客名称:雅克的一府
日志总数:514
评论数量:901
访问次数:1863364
建立时间:2006/11/23 20:52
导 航
公 告
Locations of visitors to this page 本博客主要用于个人学习与资料收藏。当然大家应该读了之后也能学到不少东西。其中大多数资料都是来自网络,我转载时尽可能地表明文章出处与原作者姓名,但由于很多资料经多人转载,已不清楚原作者信息与出处,所以未表明相关…
评 论
链 接

ARM+LINUX 嵌入式博客
http://blog.chinaunix.net/u1/58780/index.html

嵌入式软件
http://blog.csdn.net/embeddedsoft

诚诚恳恳做人踏踏实实编程
http://blog.sina.com.cn/u/1244756857 

和我风格相似的一个blog
http://blogger.org.cn/blog/m…