搜索
查看: 2447|回复: 22

新手必看不同IO输出的类型

  [复制链接]

24

主题

34

帖子

127

积分

注册会员

Rank: 2

积分
127
发表于 2014-6-11 14:45:25 | 显示全部楼层 |阅读模式
集电极开路、漏极开路、推挽、上拉电阻、弱上拉、三态门、准双向口
集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路;左边的三极管为反相之用,使输入为“0”时,输出也为“0”。
对于图 1,当左端的输入为“0”时,前面的三极管截止,所以5v电源通过1k电阻加到右边的三极管上,右边的三极管导通;当左端的输入为“1”时,前面的三极管导通,而后面的三极管截止。
QQ截图20140611165245.png
将图1简化成图2的样子,很明显可以看出,当开关闭合时,输出直接接地,所以输出电平为0。而当开关断开时,则输出端悬空了,即高阻态。这时电平状态未知,如果后面一个电阻负载到地,那么输出端 的电平就被这个负载拉到低电平了,所以这个电路是不能输出高电平的。
图3中那个1k的电阻即是上拉电阻。如果开关闭合,则有电流从1k电阻及开关上流过,但由于开关闭和时电阻为0(方便我们的讨论,实际情况中开关电阻不为0,另外对于三极管还存在饱和压降),所以在开关上的电压为0,即输出电平为0。如果开关断开,则由于开关电阻为无穷大(同上,不考虑实际中的 漏电流),所以流过的电流为0,因此在1k 电阻上的压降也为0,所以输出端的电压就是5v了,这样就能输出高电平了。
但是这个输出的内阻是比较大的——即1k,如果接一个电阻为r的负载,通过分压计算,就可以算得最后的输出电压为5*r/(r+1000)伏,所以,如果要达到一定的电压的话,r就不能太小。如果r 真的太小,而导致输出电压不够的话,那我们只有通过减小那个1k的上拉电阻来增加驱动能力。但是,上拉电阻又不能取得太小,因为当开关闭合时,将产生电流,由于开关能流过的电流是有限的,因此限制了上拉电阻的取值。另外还需要考虑到,当输出低电平时,负载可能还会给提供一部分电流从开关流过,因此要综合这些电流考虑来选择合适的上拉电阻。
如果我们将一个读数据用的输入端接在输出端,这样就是一个IO口了,51的IO口就是这样的结构,其中P0口内部不带上拉,而其它三个口带内部上拉。当我们要使用输入功能时,只要将输出口设置为1即可,这样就相当于那个开关断开,而对于P0口来说,就是高阻态了。
对于漏极开路(OD)输出,跟集电极开路输出是十分类似的。将上面的三极管换成场效应管即可。这样集电极就变成了漏极,OC就变成了OD,原理分析是一样的。
OC门主要用于3个方面:实现与或非逻辑,用做电平转换,用做驱动器。
开漏形式的电路有以下几个特点:
1.利用外部电路的驱动能力,减少IC内部的驱动,或驱动比芯片电源电压高的负载。
2.可以将多个开漏输出的Pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成“与逻辑”关系。这也是I2C,SMBus等总线判断总线占用状态的原理。
3.由于漏级开路,所以后级电路必须接一上拉电阻,上拉电阻的电源电压就可以决定输出电平。这样就可以进行任意电平的转换了。

4.源极开路提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。
另一种输出结构是推挽输出。推挽输出的结构就是把上面的上拉电阻也换成一个开关,当要输出高电平时,上面的开关通,下面的开关断;而要输出低电平时,则刚好相反。比起OC或者OD来说,这样的推挽结构高、低电平驱动能力都很强。如果两个输出不同电平的输出口接在一起的话,就会产生很大的电流,有可能将输出口烧坏。而上面说的OC或OD输出则不会有这样的情况,因为上拉电阻提供的电流比较小。如果是推挽输出的要设置为高阻态时,则两个开关必须同时断开(或者在输出口上使用一个传输门),这样可作为输入状态,AVR单片机的一些IO 口就是这种结构。

单片机内部的逻辑经过内部的逻辑运算后需要输出到外面,外面的器件可能需要较大的电流才能推动,因此在单片机的输出端口必须有一个驱动电路。这种驱动电路有两种形式:
其中的一种是采用一只N型三极管——NPN或N沟道,以NPN三极管为例,就是e接地,b接内部的逻辑运算,c引出。b受内部驱动可以控制三极管是否导通,但如果三极管的c极一直悬空,尽管b极上发生高低变化,c极上也不会有高低变化,因此在这种条件下必须在外部提供一个电阻,电阻的一端接c(引出脚)另一端接电源,这样当三极管的b有高电压是三极管导通,c电压为低,当b为低电压时三极管不通,c极在电阻的拉动下为高电压。这种驱动电路有个特点:低电压是三极管驱动的,高电压是电阻驱动的——上下不对称,三极管导通时的ec内阻很小,因此可以提供很大的电流,可以直接驱动led甚至继电器,但电阻的驱动是有限的,最大高电平输出电流=(VCC-Vh)/r;
另一种是互补推挽输出,采用2只晶体管,一只在上一只在下,上面的一只是n型,下面为p型(以三极管为例),两只管子的连接为:NPN(上)的c连 VCC,PNP(下)的c接地,两只管子的ee,bb相连,其中ee作为输出(引出脚),bb接内部逻辑。这个电路通常用于功率放大点路的末级(音响),当bb接高电压时NPN管导通输出高电压,由于三极管的ec电阻很小,因此输出的高电压有很强的驱动能力,当bb接低电压时NPN截至,PNP导通,由于三极管的ec电阻很小因此输出的低电压有很强的驱动能力。简单的例子,9013导通时ec电阻不到10欧,以Vh=2.5v,VCC=5v计算,高电平输出电流最大=250MA,短路电流500ma,这个计算同时告诉我们采用推挽输出时一定要小心千万不要出现外部电路短路的可能,否则肯定烧毁芯片,特别是外部驱动三极管时别忘了在三极管的基极加限流电阻。推挽输出电路的形式很多,有些单片机上下都采用n型管,但内部逻辑提供互补输出,以上的说明仅仅为了说 明推挽的原理,为了更深的理解可以参考功率放大电路。

上拉电阻很大,提供的驱动电流很小,叫弱上拉;反之叫强上拉。
为什么要使用拉电阻:
游客,如果您要查看本帖隐藏内容请回复

回复

使用道具 举报

0

主题

2

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2014-6-11 21:19:33 | 显示全部楼层
感謝樓主分享
回复 支持 反对

使用道具 举报

176

主题

491

帖子

1631

积分

金牌会员

Rank: 6Rank: 6

积分
1631
发表于 2014-6-11 21:40:05 | 显示全部楼层

亲,你的头像赞一个。。
回复 支持 反对

使用道具 举报

0

主题

17

帖子

94

积分

注册会员

Rank: 2

积分
94
发表于 2014-7-6 20:07:15 | 显示全部楼层
新手学习了
回复 支持 反对

使用道具 举报

0

主题

16

帖子

68

积分

注册会员

Rank: 2

积分
68
发表于 2014-7-16 10:17:04 | 显示全部楼层
好好学习天天向上
回复 支持 反对

使用道具 举报

0

主题

12

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2014-7-17 00:27:00 | 显示全部楼层
thanks your sharing.
回复 支持 反对

使用道具 举报

0

主题

29

帖子

68

积分

注册会员

Rank: 2

积分
68
发表于 2014-7-17 10:24:09 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

9

帖子

32

积分

新手上路

Rank: 1

积分
32
发表于 2014-8-29 15:35:05 | 显示全部楼层
感谢分享
回复

使用道具 举报

0

主题

47

帖子

121

积分

注册会员

Rank: 2

积分
121
发表于 2014-10-10 15:40:43 | 显示全部楼层
学习"新手必看不同IO输出的类型"
回复 支持 反对

使用道具 举报

0

主题

3

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2014-11-18 19:24:53 | 显示全部楼层
好东西,找了很久了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|EEFOCUS

论坛已做迁移,有相关技术资料和问题讨论可以到电路城对应版块(“模拟/电源”)
X

GMT+8, 2019-10-19 16:30 , Processed in 0.088734 second(s), 18 queries , MemCache On.

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表