RS485通信介绍

RS485通信介绍

RS-485:半双工、(逻辑1:+2V–+6V 逻辑0: -6V—2V)这里的电平指AB 两线间的电压差。
RS485通信介绍_第1张图片

1、基础的RS485电路

RS485通信介绍_第2张图片
需要控制RE/DE(cn)来控制485状态的切换,一般连在一起用io口控制。当cn为低时485处于接收状态;当R/D为高时485处于发送状态。
RO和TTL电平的UART_RX(或模拟串口的RX)相连,DI和TTL电平的UART_TX(或模拟串口的TX)相连。
RS485通信介绍_第3张图片
RS485通信介绍_第4张图片
当cn为低R0有效,处于接收模式:A>B(AB数据为1),则R0为高电平(R0为1)。
A 当cn为高RO高阻,处于发送模式:DI为高时(DI数据1),(强制使A>B)即(AB为1)。
DI为低时(DI数据0),(强制使A 总结:TX发啥数据,AB接收啥数据。AB发啥数据RX接收啥数据。

2、带隔离RS-485电路

RS485通信介绍_第5张图片
使用DC-DC器件可以产生1组与微处理器电路完全隔离的电源输出,用于向RS485收发器提供+5V电源。电路中的光耦器件速率会影响RS485电路的通信速率。上图中选用了NEC的光耦PS2501,受其影响,该电路的通讯速率控制在19200bps下。

3、自动切换电路

RS485通信介绍_第6张图片
上图中,TX,RX引脚均需要上拉电阻,这一点特别重要。
接收:默认没有数据时,TX为高电平,三极管导通,RE为低电平使能,RO收数据有效,MAX485为接收态。
发送:发送数据时,TX会先有一个下拉的电平(起始位-由高向低),表示开始发送数据,此时三极管截止,DE为高电平发送使能。当发送数据“0”时,由于DI接口相当于接地,此时数据“0”就会传输到AB扣,A-B<0,则传输“0”,完成低电平传输,当发送“1”时,此时三极管导通,按理说RO会使能,此时由于还处于发送数据中,这种状态下MAX485处于高阻太,此时的状态通过A上来,B下拉电阻决定,此时A-B>0传输“1”,完成高电平的传输。
注意:这里面有个疑惑,发送数据“1”,三极管RE低电平有效,应该是接收使能,为什么芯片是高阻态呢?这是因为UART发送数据是有一定格式的,TX和RX数据均以“位”为最小单位进行传输,在发送数据之前,UART之间要约定好数据传输速率,即波特率,数据传输格式(数据位,校验,停止),平时数据线处于空闲状态(1状态),当发送数据时,TX由“1”变为“0”维持1位的时间,这样接收方检测到开始位后,再等待1.5位时间就开始一位一位的进行数据传输了,也就是说,已经确定好发送状态,电路发送“1”时RE虽然有效,但是由于它处于发送阶段,芯片也不会收,即芯片处于高阻状态。

你可能感兴趣的:(嵌入式技术,Linux,RS485)