单片机串口TX串联二极管实现一对多通信
摘要:在UART一对多通信中,直接将从机TX串联会导致电平冲突问题。当多个从机向主机发送数据时,不同从机的TX电平可能相互干扰。解决方法是在每个从机的TX引脚串联二极管,这样既能保证主机正常接收任意从机数据,又避免从机之间的电平冲突。该方法简单有效,只需在硬件电路上增加二极管即可实现可靠的UART一对多通信。
·

在串口TX实现一对多通信时,直接将串口TX串联是不可以的,因为uart空闲电平为高电平。当要发送数据时,TX管脚将电平拉低。上图中,MCU发送数据时,MCU的TX管脚拉低电平,此时两个从机的RX均被MCU的TX拉低,意味着从机可以收到MCU发送的数据;但是当从机给MCU发送数据时就出问题了,U3的TX发送数据,将MCU的RX拉低,此时U2的TX未发送数据,仍然在维持高电平,这时MCU的RX所接的两个从机,一个拉低电平,一个拉高电平,显然会出问题。
解决办法其实很简单,给从机的TX串一个二极管即可。如上图所示,当 U4的TX发送数据,将MCU的RX拉低,此时U5的TX未发送数据,仍然在维持高电平,但是由于二极管D2的存在,此时MCU的RX电平会被U4的TX正常拉低,所以此时从机U4可以正常给MCU发送数据了,同理U5也可以正常给MCU发送数据。
详情见原文:https://blog.csdn.net/jsf120/article/details/124041662
更多推荐



所有评论(0)