RS485自动切换电路:数据收发原理
接收
-
数据接收: 当没有数据发送时,UART_TX默认为高电平,NMOS管导通,DS75176芯片(DE)RE低电平使能,RO接收数据使能,此时从485AB口收到什么数据就会通过RO通道传到MCU,完成数据接收过程。 TX为高电平,三极管导通,DE为低电平使能,RO接收数据有效,MAX485为接收态。
发送
-
DE为高电平使能,DI发送据有效 发送数据1时,TX为高电平时,三极管导通,DE为低电平,此时收发器处于接收状态,驱动器就变成了高阻态,也就是发送端与AB断开了,此时AB之间的电压就取决于AB的上下拉电阻了,A为高电平、B为低电平,也就成为了逻辑1了。 1&&0=1
也就是:发送1->1
-
发送数据0时,TX为低电平,三极管截止,DE为高电平,驱动器使能,此时正好DI是接地的,也就是低电平,驱动器也就会驱动输出A为0,B为1 也就是所谓的逻辑0了。 0&&1=0
也就是:发送0->0
小结
-
可以简单记忆为(DE电平)高发低收 理解自收发的作用,关键是要理解RE和DE的作用,尤其是DE为0时,驱动器与AB之间就是高阻态,也就是断开状态,而且AB都要有上下拉电阻。然后就有了逻辑0-1之间的切换了。 所以很巧妙,但是这里也有一个很明显的bug,也就是只适用于“半双工”,如果是全双工,就不行了,因为TX为1时,接收使能,此时从机如果回复数据,那么也就乱了
具体引脚说明
应用电路
引脚名称上面的横线表示输出的信号的电平为0时有效。
