求一MAX485自动切换控制反向电路,只用RXD和TXD两个单片机引脚就能控制的。

下面是我自己找的电路,但是始终觉得有点问题。当发送数据时没问题,但是接收时,会不会受到发送脚的影响?当为接收状态时,TXD无论为1或是0都对A有影响,感觉有点问题,求高手指教,或给一个更好的电路。谢谢
上面字打错了一个 是求MAX485自动切换控制“方”向电路,只用RXD和TXD两个单片机引脚就能控制的。

首先要感谢你对我的信任。下面我谈一下我的看法,供参考。

从电路上看,这是一个半双工通信的接法,(红线)就是收时不能发,发时不能收,其收发状态的控制应由DE、RE 非完成。但此图RE 非接地,使电路始终处在了接收状态,A、B总线上只要有数据,RXD 端就有接收。

                   

                           

文中对于发送数据时的分析有一定道理,可行。可以由D 端接零,TXD 接,及上拉电阻的配合,实现1、0 数据的发送(注:发送的数据同时会被接收)。但这时必需要保证对方不可发送数据,否则,总线上的数据必受影响,出现错误。

结论:51端发送数据时必需要让对方停止发送,这也算是个协议吧。

建议:若从安全角度出发,是否可将反向器和4.7K电阻去掉,D端接TXD,将DE和RE非相联后接入一常低电位,使电路处于接收状态,用一开关控制进行高低电平切换,从而实现安全的收发转换。


若有错误之处,请斧正。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-10
当接收时 TXD = 1,发送器关闭,接收器始终打开,接收到的就是总线上的数据追问

就算是TXD=1,发送器关闭,接收器始终打开,但是A线是上拉4.7k,始终都是高电平,感觉会对接收有影响!

追答

单片机接收的数据是看A、B间的电压差,如果A - B >200mv 单片机接收就是“ 1 ”,反之则为“0”

第2个回答  推荐于2018-04-12
电路应该是没问题的,主要还是靠协议。
首先,把单片机(下位机?)与上位机,反正就是所有设备都设置为接收状态。
第二,TXD发送数据,这个电路是可行的,上面也介绍了方法。
第三,RXD接收数据,接收数据的时候单片机自己就别发送数据了吧?边接收边发送不知道好不好或者行不行,觉得不可行,程序里你正在接收数据,又跳到发送的函数里?
现在我只说不发送数据的时候这个电路是可行的。因为这个时候发送器是关闭的吧?这样子就是相当于发送器连接到接收器的两根线是开路的。这个时候总线发送的数据是什么,接收器接收的也就是什么。本回答被提问者和网友采纳
第3个回答  2012-12-11
都是用的485转换芯片啊。

MAX485芯片。
相似回答