先抛出个问题,就是为什么下图这个电平转化电路的上拉电阻一个选了10k一个选了2.2k?如果您想不明白的话,就继续往下读吧,相信您读完也就明白了:
有的时候,使用短的连接线就没有问题,但是使用长的线缆就会出问题,这个一定程度上是和输出端口的驱动能力相关的,如果驱动能力弱,在长线缆的时候,驱动能力弱的弊端就会暴露出来。
那么还是以最为常见的两种输出端口结构来对比,就是推挽输出和开漏输出(下文用三极管为例,开集输出)。
开漏/集输出:
又称OD门/OC门,即Open Drain /Open Collector,这种输出模式下需要加上拉,否则只可以输出高阻和低电平的能力(如果是PNP,在不加下拉电阻的情况下,则不能输出低电平)。
然后我们仿真一下,在这种情况,输入1khz方波控制三极管,然后输出也是1khz方波,且波形还是挺规整的,上升沿和下降沿都很陡峭:
但是,事实真的会这样优秀吗?答案是否定的,实际上这个电路对于高电平的输出能力是很弱很弱的,这个电路对于高电平的驱动能力完全取决于电阻R2的大小,R2越大,驱动能力越弱,抗干扰能力也就越弱;R2越小,驱动能力越强,抗干扰能力也就越强。(有的芯片内部有上拉,但是那都是弱上拉)
这个也就是文章开头提到的,短线缆没啥问题,但是长线可能会出问题。因为实际工程应用中,寄生参数是不可避免的,而线缆中往往会有寄生电容,而线缆的长度是和寄生电容成正比关系的,线缆越长,寄生电容越大。那么假如给上图的电路加一个1nf的电容会怎么样呢?
可以看到上升沿变得很缓慢,因为在三极管截止时,上升沿的爬升,是通过蓝色路径,通过R2上拉电阻去给电容充电的,所以上升沿变得极其缓慢。但是三极管导通时,是通过三极管直接进行放电的,所以下降沿不是很缓慢的。
所以这种OC/OD门的电路结构的对于高电平驱动能力(拉电流)是很有限的,而低电平驱动能力强(灌电流能力大于拉电流)。所以如果线缆长的情况下,信号频率高的时候,可能上升沿还没爬升完,下降沿又来了,输出的信号就会有问题,如下图,假如把信号频率改为5khz,那么肯定就出问题了(输出最大才3V左右,爬升不到5V):
推挽输出:
一个NPN三极管和一个PNP三极管组成的推挽结构(有些地方也叫图腾柱电路),或者一个NMOS一个PMOS组成的推挽结构,上管负责拉电流,下管负责灌电流。
可以看到这个电路也是可以输出方波的,但是有没有注意到他的高电平并不是5V而是4.7V,且低电平也不是0V而是0.3V?那是因为在V(7)电压变为4.7V左右的时候,上管Q2就截止了;在V(7)电压变为0.3V左右的时候,下管Q3就截止了。(oc门结构中,低电平也不是0V,而是Vce三极管的饱和电压)
那么和之前一样,如果在输出端加一个1nf的电容(模拟线缆寄生参数)会怎样呢?当V(6)为高电平时,上管Q2导通,下管Q1截止,通过绿色路径给电容快速充电;当V(6)为低电平时,下管Q1导通,上管Q2截止,通过蓝色路径给电容快速放电。可以看到这个结构并不像之前上升沿会变缓,而是几乎没什么影响。
所以说,这种推挽结构的对于高电平和低电平的驱动能力(拉电流和灌电流)几乎是一样的。如果把信号频率改为5khz也不会出现之前oc门出现的问题:
这种结构的输出在驱动长线缆时,就不会出现这种上升沿缓慢的问题。这个也就是之前分析的RS485自动收发电路中,那个电容的作用,就是在每1bit位发送阶段,保留一小段的推挽输出时间,让芯片可以输出高电平,而不是靠上下拉电阻。