什么是浮动输入和开漏输出

描述

  首先,让我们考虑双路(单刀双掷)开关的情况:

 

微控制器

 

  当开关接通时,微控制器输入将连接到+3.3V,意味着高电平。当开关关闭时,微控制器输入将连接到0V,表示低电平。但是如果我们只有一个按钮呢?

 

微控制器

 

  当按下按钮时,微控制器输入将连接到0V,表示低电平。然而,当按钮未被按下时,微控制器输入实际上没有连接到任何东西:

 

微控制器

 

  这就好像什么都没有连接一样:

 

微控制器

 

  这种情况下的输入电平是多少?高还是低?因为它没有真正连接到任何东西,所以输入可以是任何东西,这取决于环境中的静电或电磁辐射。它可能只是接收无线电波(像天线一样),然后在弱定义的高和低状态之间来回转换。微控制器输入没有明确定义,可以是任意值(随机)的这种状态称为浮动。

  上拉和下拉电阻

  为了解决这个问题,需要在输入端增加一个上拉电阻或下拉电阻(上拉电阻如下图所示):

 

微控制器

 

  当按钮未按下时,上拉电阻会将微控制器输入拉高至+3.3V,提供一个明确定义的高电平。当按下按钮时,微控制器输入将直接连接(短路)到地(0V),提供明确定义的低电平。在这种情况下,会有一些电流流过上拉电阻,但由于电阻值相对较高,所以电流量很小。

  您可能会注意到,电阻符号看起来像一个小弹簧,这正是它在本例中的作用。我们都使用过自动关闭的门,比如公共设施中常见的门——除非你主动把门打开,否则会有一个机制将它再次关闭。如果没有自动关闭机制(现在想象门没有闩锁机制),门会被风吹动或被进出的人移动,它不会默认到任何特定的位置。上拉(或下拉)电阻类似于这些门上的自动关闭机制,它在不被主动驱动时将输入保持在特定电平。因此,上拉电阻就像自动关闭的门上的弹簧——除非有足够强壮的人过来把门推开,否则门将默认处于关闭位置。

  显然,情况可以反过来,按钮可以连接到+3.3V(高电平),而下拉电阻可以用来保持输入为低电平,否则:

 

微控制器

 

  然而,上拉电阻配置更常用。

  开漏输出

  一些微控制器输出可以设置为开漏(或者只能设置为开漏)。开漏输出只能被驱动为低电平,而不能被驱动为高电平;输出为低电平或浮动。实质上,输出只是简单地连接到晶体管的漏极引脚(因此称为开漏)。

 

微控制器

 

  当控制线被驱动为高电平时,晶体管将输出短路至地(0V),将其拉低。当控制线被驱动为低电平时,晶体管为高阻态,输出悬空。

  一些通信方案,例如I2C和CAN,使用这种布置来允许多个设备通过相同的通信线路进行通信,而没有短路的可能性(冲突,其中一个设备试图将线路驱动为高,而另一个设备试图将线路驱动为低);这种情况下,上拉电阻用于在线路未被有效拉低时保持高电平。

  审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分