一般的RS485发送和接收都是不用控制的,比如说发送一个命令,响应方会返回应答,难道在这个过程中要给出控制方向的命令吗?
你也可以用一个电路,来简单的控制下收发端啊。
看一下这个电路,实测很好用的:
powerbus
powerbus
PB721换成你的mcu的UART即可。这是隔离的,当然你也可以去掉隔离,设计不隔离的UART。
电路图出处:
【POWERBUS的EV721手册】
侵删
请问第4步的意义是什么?能给我讲一下具体的原理和目的吗?
追答接收数据:
接收数据时TX是高电平,把TX反相后接到控制端,此时485处于接收状态,当有信号来时自然就完成了接收。
发送数据:
当发送数据位为低时TX反相后为高,控制458处于发送,发送的数据就是0;当发送数据位为高时,TX反相后为低,控制458处于接收,由于A、B端有上下拉电阻,接收方认为是发送过来的高电平,收到的也是高。
这样就完成了收发自动控制
很巧妙,只是我对发送数据高电平经由反相器变成“接收方向”,再通过上下拉电阻又变成想要的“发送方向”这个过程怎么实现不理解。
请问接收时,TX(发送)端是固定高电平吗?那么,发送呢,RX(接收)端也是固定一个电平吗,高电平?
发个图片
本回答被提问者采纳你的意思是每次发送时,先使能发送,再传数据,发送完后,使能接收,等待接收从机的响应,再对响应的内容处理;而从机则刚好相反,先使能接收,收到数据后经过一些判断处理,然后使能发送,将响应发送出去。这样看起来很麻烦,一般具有485接口的设备,他们是怎么处理的,都是通过内部的CPU指令实现的,还是硬件设计实现?希望前辈指点迷津!
追答我见到的485一般都是作为从机,支持MODbus协议的,
“先使能发送,再传数据,发送完后,使能接收” MAX485不是有一个(其实是2个,连在一起即可)控制管脚,发送数据之前,改变该脚电平,等发送完后,电平再改回来,让其处于接收状态,
不是麻烦,芯片规定是这么做的,全是有cpu指令实现的。
从机处理,一直处于接收状态,当主机发送数据,且是本机(有地址的)要接收的(地址一样),将接收,等待接收完后,此从机将回复主机(也就是从机开始发送了)
OK
还是建议你看下MAX485说明书,明白原理就OK了