RS485接口电路设计

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

RS485接口是串口的一种常常用在一些工业控制中485通信是半双工的通信一条总线最多可连接256个485设备。

RS485信号速率最高可以到10Mbps传输距离最大能到1000多米

485接口包含一对差分信号A和B如下图所示

RS485标准规定对于发送端发送逻辑1时总线上A的电压大于B的电压且压差在2V-6V之间

发送逻辑0时总线上A的电压小于B的电压且压差在-2--6V之间时

对于接收端当总线上A的电压大于B的电压且压差大于200mV时表示接收到逻辑1

当总线上A的电压小于B的电压且压差小于于-200mV时表示接收到逻辑0.

常用的485收发器芯片有SP3485它可以将3.3V的数字电平信号转换成485信号。SP3485的引脚信号定义大家可以看下。

其中RO为数字信号接收输出引脚DI为数字信号发送输入引脚RE为接收输出使能低电平有效DE是输出使能高电平有效VCC接3.3V。

这个是SP3485发送的真值表

这个是SP3485接收的真值表。

SP3485典型电路大家可以看下RE和DE是接到了一起的。UART RX和UART TX为MCU的串口信号分别接到SP3485的RO和DI。

当控制信号为高电平时为发射使能。

当TX为高电平时输出的A电压大于B电压也就是输出485的逻辑1

当TX为低电平时输出的A电压小于B电压也就是输出485的逻辑0

当控制信号为低电平时接收使能。

TX的电平不会对A和B信号造成影响这时TX一般是一个高电平。

当485总线上A电压-B电压大于200mV时RX为高电平接收到逻辑1

当A电压-B电压小于-200mV时RX为低电平接收到逻辑0

总线空闲时控制信号应该为低电平使485收发器芯片处于接收状态。如果A和B都处于高阻其状态是不确定的可能会导致RX上接收到错误的随机数所以这个电路中A信号一般加上拉电阻B信号一般下拉电阻。

A和B之间的120欧电阻的作用是消除485总线上的信号反射一般在485总线的两端加就可以了不用每个设备节点都加。

这个电路除了需要UART串口的TX和RX信号外还需要一个额外的控制信号

下面的电路就是在上面电路的基础上进行改进的是485的自动收发电路不需要控制信号就可以完成485信号的发送和接收。

与上面电路有所不同的是自动收发电路的RE和DE信号接到一起由TX控制其电平TX为高电平时RE和DE为低电平TX为低电平时RE和DE为高电平。DI是接到一个固定的低电平。

当TX为低电平Re和DE就为高电平发射使能RX为一个高阻状态RX电平由外部上下拉决定一般RX为高电平。DI为低电平所以输出的A电压小于B电压也就是输出了485的逻辑0

当TX为高电平Re和DE就为低电平接收使能A和B本来应该是高阻的状态又因为A有上拉电阻B有下拉电阻所以A电压大于B电压也就是输出了485的逻辑1这时RX是高电平

TX不发送数据时TX默认为高电平Re和DE就为低电平接收使能

当485总线上A电压-B电压大于200mV时RX为高电平

当485总线上A电压-B电压小于-200mV时RX为低电平。

对于485接口的ESD和浪涌防护一般会在信号线上加TVS管然后也可以在信号线上加上PTC自恢复保险丝。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6