IO输出类型

2019-07-13 23:40发布

    数字电路的输出有高电平1、低电平0和高阻态z。决定高低电平的是VCC和GND。在初学者印象中,VCC算电源,GND不算电源,这样的理解不够准确和深刻。GND也是电源,一样的有吞吐电源的能力,没有GND也就没有VCC。准确的说VCC和GND都是电压源,所以GND经常用VSS来代替。根据电平输出的“强弱”分类,可以将IO输出分为图腾柱输出上拉电阻输出下拉电阻输出三种。 1.  图腾柱输出     图腾柱、推挽/推拉、Push and Pull、Totem Pole指的都是同一种电路。图1是图腾柱输出的电路简图,图中开关为受控电子开关,可以有三极管或场效管构成。由两个开关分别连接VCC和VSS构成的输出电路称为图腾柱输出,此电路输出为强1,强0。    1)   如图1-a所示,无论Output被接在什么电路上,一定是高电平1,这就是所谓的输出强1    2)   如图1-b所示,无论Output被接在什么电路上,一定是低电平0,这就是所谓的输出弱0    3)   如图1-c所示,输出为高阻z,这代表不会对其他电路造成影响。当作为输入口时,Output应置为高阻态 图-1     有人可能会有疑问,Output为强1输出接外部电路的GND上回怎么样?会短路。那么这种情况下到底是不是输出1呢?这个问题是典型的“自相矛盾”。对于理想电压源VCC,无论接哪都是VCC,同样对于理想的地,都是0V,短路情况下到底电压是多少V,那要看VCC和GND那个先“扛不住”了。     初学者还有一个观点,编程会不会“实质性”损坏硬件电路,这也是不确切的。如图2-b所示,当两个IO口相连(较普遍),且两个IO口是图腾柱输出的话,编程会损坏硬件。    1)   当程序适度器件1输出强0,器件2输出强1,短路便发生了,是否会永久损坏硬件由短路持续时间决定    2)   如图2-b所示,两个图腾柱IO都设置为输出,发生短路是迟早的事情。正确的做法是如图2-a那样,将器件2的图腾柱输出变为高阻态,仅作为输入口使用。    3)   现在新型的单片机的IO口,多为图腾柱输出,所以在使用IO口前正确配置IO方向尤为重要。从安全考虑,CPU上电后所有IO一般会设置为图2-a器件2那样的输入状态,也就是图腾柱输出为高阻。 图-2   2.  上拉电阻输出     如图3所示为上拉电阻输出,该电路为强0弱1电路。    图3-a输出为弱1,为什么叫弱1呢?     1)   如果Output接的是高阻负载,输出为1     2)   其他负载情况则需要根据负载和上拉电阻的分压关系来计算     3)   如图3-c所示,要根据负载情况合理设定上拉电阻的取值     图3-b的输出为强0,无论Output接什么负载,均输出低电平0。这就是强0弱1的由来。     同样两个上拉电阻输出的IO口相连,永远不会发生短路(前提是两个IO口的VSS必须相电位)。 图-3     上拉电阻输出的应用范围非常广泛:    1)   上拉电阻输出可用于两种供电电压器件之间的电平匹配。如图4所示,器件1供电电压为VCC1,器件2的供电电压为VCC2。通过外置上拉电阻到VCC2,器件1可实现与器件2的输出电平匹配。这种输出方式的芯片,说明书中会称为集电极开路输出(OC输出)或漏极开路输出(OD输出),两者区别是开关使用的是三极管还是场效应管。凡是OC或OD输出的数字器件,一定要外界上拉电阻到VCC,否则器件将无法得到高电平。 图-4 上拉电阻输出用于电平匹配    2)   上拉电阻输出还广泛应用于实现“线与”逻辑。如图5所示,所有器件输出和输入同时进行(图腾柱无法做到这一点),任何一个器件都可以将公共总线电平拉低,但只有所有器件输出都为“高”,公共总线的电平才能为高,这就是“线与”逻辑。“线与”逻辑更独特之处在于所有的器件都可以通过输入缓冲一直“监视”总线电平的高低,这就能知道总线电平是否与“自己期望电平”一致,从而判断是否有别的器件在于自己争夺总线。“线与”逻辑广泛应用于多机总线通信中。 图-5 由上拉电阻输出构成的线与逻辑   3.  下拉电阻输出       图6所示为下拉电阻输出,该电路为强1弱0电路。     图6-a输出为弱0,为什么叫弱0呢?因为世纪Output输出电平是否为0还取决于接什么样的负载。    1)   如图6-c所示,器件1“打算”输出0给器件2,但是器件2不是高阻输入结构(如TTL电平器件),那么器件2是否能正确识别输入为0电平,取决于R1和R2的比值,以及器件2的1/0识别门限值。    2)   下拉电阻R1越小,电平逻辑错误就越不易发生,但是这是以功耗为代价的     图6-c的输出为强1,无论Output接什么负载,均输出高电平1。这就是强1弱0的由来。     与图腾柱输出不同,两个下拉电阻输出的IO口相连,永远不会发生短路(前提是两IO口的VCC必须等电位)。 图-6 下拉电阻输出

热门文章