IO口常识

温柔似野鬼°
978次浏览
2021年02月11日 03:18
最佳经验
本文由作者推荐

-

2021年2月11日发(作者:长风8号)


集电极开路、漏极开路、推挽、上拉电阻、



弱上拉、三态门、准双向口



集电极开 路输出的结构如图


1


所示,


右边的那个 三极管集电极什么都不接,


所以


叫做集电极开路;


左边的三极管为反相之用,


使输入为“0”时,


输出 也为“0”。



对于图


1

< p>
,当左端的输入为“0”时,前面的三极管截止,所以


5v


电源通过


1k


电阻加到右边的三极管上,右边的三极管 导通;当左端的输入为“1”时,前面


的三极管导通,而后面的三极管截止。

< p>



我们将图


1


简化成图


2


的样子,


很 明显可以看出,


当开关闭合时,


输出直接接地,


所以输出电平为


0


。而当开关断开时,则输出端悬空了 ,即高阻态。这时电平状


态未知,如果后面一个电阻负载到地,那么输出端



的电平就被这个负载拉到低


电平了,所以这个电路 是不能输出高电平的。






3


中那个


1k


的电阻即是上拉电阻。


如果开关闭合,


则有电 流从


1k


电阻及开关


上流过,但由于开 关闭和时电阻为


0


(方便我们的讨论,实际情况中开关电阻不< /p>



0


,另外对于三极管还存在饱和压降) ,所以在开关上的电压为


0


,即输出电


平为


0


。如果开关断开,则由于开关电阻为无穷大(同上,不考 虑实际中的




电流),所以流过的电 流为


0


,因此在


1k


电阻上的压降也为


0


,所以输出端的

< br>电压就是


5v


了,这样就能输出高电平了。



但是这个输出的内阻是比较大的——即


1k


,如果接一个电阻为


r


的负载,通过


分压计算,就可以算得最后的输出电压为


5*r/(r+1000)


伏,所以,如果要达到


一定的电压的话,


r


就不能太小。如果


r


真的太小,而导 致输出电压不够的话,


那我们只有通过减小那个


1k

< p>
的上拉电阻来增加驱动能力。但是,上拉电阻又不


能取得太小,

< p>
因为当开关闭合时,


将产生电流,


由于开关能流过 的电流是有限的,


因此限制了上拉电阻的取值。


另外还需要考虑 到,


当输出低电平时,


负载可能还


会给 提供一部分电流从开关流过,


因此要综合这些电流考虑来选择合适的上拉电


阻。






如果我们将一个读数据用的输入端接在输出端,


这样就是一个


IO


口了,


5 1



IO


口就是这样的结构,其中


P0


口内部不带上拉,而其它三个口带内部上拉。

< br>当我


们要使用输入功能时,只要将输出口设置为


1


即可,这样就相当于那个开关断


开,而对于


P 0


口来说,就是高阻态了。





对于漏极开路(


OD


)输出,跟集电极开路输出是十分类似的。将上面的三极管换


成场效应管即可。 这样集电极就变成了漏极,


OC


就变成了


OD


,原理分析是一样


的。



OC


门主要用于


3


个 方面:实现与或非逻辑,用做电平转换,用做驱动器。



开漏形式的电路有以下几个特点:



1 .


利用外部电路的驱动能力,减少


IC


内部的驱动,或驱动比芯片电源电压高的


负载。



2.


可以将多个开漏输出的


Pin

< br>,连接到一条线上。通过一只上拉电阻,在不增加


任何器件的情况下,形成“与逻 辑”关系。这也是


I2C



SMBus


等总线判断总线


占用状态的原理。


< /p>


3.


由于漏级开路,


所以后级电路必须接 一上拉电阻,


上拉电阻的电源电压就可以


决定输出电平。这样就 可以进行任意电平的转换了。



4.


源 极开路提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。


因为上升沿是 通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就


小,但功耗大;反之延时 大功耗小。


所以如果对延时有要求,则建议用下降沿输


出。






另一种输出结构是推挽输出。


推挽输出的结构就是把上面的上拉电阻也换 成一个


开关,


当要输出高电平时,上面的开关通,下面的开关断 ;而要输出低电平时,


则刚好相反。


比起


OC


或者


OD


来说,这样的推挽结构 高、低电平驱动能力都很


强。


如果两个输出不同电平的输出口接 在一起的话,


就会产生很大的电流,


有可


能将输出口烧坏。


而上面说的


OC



OD


输出则不会有这样的情况,


因为上 拉电阻


提供的电流比较小。


如果是推挽输出的要设置为高阻态时 ,


则两个开关必须同时


断开(或者在输出口上使用一个传输门) ,这样可作为输入状态,


AVR


单片机的


一些


IO


口就是这种结构。



***************************************** ***************************



单片机内部的逻辑经过内部的逻辑运算后需要输出到外面,


外面的器件可能需要


较大的电流才能推动,


因此在单片机的输出端口必须有一个驱动电路。< /p>


这种驱动

-


-


-


-


-


-


-


-