微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机上的RS485接口

单片机上的RS485接口

时间:11-24 来源:互联网 点击:
RS-232虽然应用很广泛,但因为它推出较早,在现代网络通信中已经暴露出明显的缺点。比如以下几点:

1) 数据传输速率慢。RS-232所规定的20KB/s的传输速率虽然能满足异步通信要求,通常异步通信速率限制在19.2KB/s以下对某些同步系统来说,不能满足传送速率要求。

2) 传送距离短。RS-232接口一般装置之间电缆长度为15m,即使有较好的线路器件优良的信号质量,电缆长度也不会超过60m。

3) 没有规定标准的连接器,因而出现了互不兼容的25芯连接器。

4) 接口处各信号间容易产生串扰。

RS-485接口的出现就弥补了RS-232的不足,而出现了一种新的接口标准,并且由于良好的性能,RS-485获得了广泛的应用,其具有以下特点:

1) RS-485的电气特性:逻辑“1”以两线间的电压差为+(2~6)V表示;逻辑“0”以两线间的电压差为-(2~6)V表示。接口信号电平比RS-232降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。

2) RS-485的数据最高传输速率为10MB/s。

3) RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。

4) RS-485接口的最大传输距离标准值为4000英尺,实际上可达1000米,另外RS-232接口在总线上只允许连接1个收发器,即单站能力。而RS-485接口在总线上是允许连接多达128个收发器。即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络。

RS-485收发器SN65HVD3082的使用方法

1) SN65HVD3082简介

此芯片是半双工RS-485收发器。5V供电,全完符合TIA/EIA-485A标准。它可以应用于传输速率低于200kbps的场合,并且工作电流低于0.6mA。

芯片的宽适用范围与高ESD保护使它可以满足诸如能量测量网络、电力转换、远程通信中的状态与命令传输和工业自动化网络等场合的要求。另外,片内集成上电复位电路,使供电后输出为高阻态。高温停机机制保护设备不会因系统不良条件而损坏。

2) 芯片封装图:

3) 功能框图:

4)芯片功能表:

输出

输入

输入

D

使能

DE

输出

输出

差模输入

VID=VA-VB

使能

#RE

输出

R

A

B

H

H

H

L

VID<=-0.2V

L

L

L

H

L

H

-0.2V

L

?

X

L

Z

Z

-0.01V<=VID

L

H

OPEN

H

H

L

X

H

Z

X

OPEN

Z

Z

开路

L

H

短路

L

H

X

开路

Z

注:表中H代表高电平,L代表低电平,Z代表高阻态,?代表不确定状态。

4) 典型应用电路示意图:

5) 芯片详细说明:

功耗在很多应用中都是一个关心的问题。电源供给电流不仅到供给总线负载,同时也要供给收发器电路。对典型的RS-485总线配置,一个驱动器的负载包括所有的接收结点,及其总线尽头上的终止电阻(RT)。

接收结点的负载决定于接收器的输入阻抗。TIA/EIA-485-A标准定义负载单位为1mA。总线上允许有32个负载,所有的电流供给可以达到32mA。HVD3082E是1/8单位负载的器件,从而可以在一条总线上存在256个结点。

终止电阻上的电流决定于不同的总线电压。标准要求有效的驱动器到其它器件的差模信号至少要有1.5V。对于总线终止电阻为标准的120欧的情况,不论总线是否有效,总共的差分输出电流为25mA。60欧的负载下,HVD3082E可以驱动大于25mA,从而使得差模输出电压高于标准的最低要求。总之,总共的负载电流可以是60mA。

HVD3082E在驱动器与接收器都被使能的情况下,只需要大约0.4mA的电流。而驱动器或接收器被使能的情况下,只需要0.3mA。在低功耗关机模式下,不论驱动器还接收器有效,供给电流非常低。

当驱动器与接收器都被禁止的情况下(DE为低,RE为高),芯片将进入关机模式。如果使能输入在此模式下少于60ns,则芯片不会进入关机模式。这种机制可以在驱动器/接收器有效的情况下避免其意外进行关机模式。只有当使能输入持续多于300ns时,芯片才会进入此模式。在这个低功耗的关机模式下,大部分内部电路都被掉电,电源电流只有1nA。当驱动器或接收器被重新使能后,内部电路会被激活。如果只有驱动器被重新使能(DE变为高)后,驱动器的输出与输入端D相对应。如果输入端D为开路,驱动器的输入为默认的A高B低。如果只有接收器被重新使能(RE变为低),接收器的输出与总线上的输入状态相对应。如果接收器与驱动器同时被重新使能,则接收器的输出与总线上的输入相对应,驱动器的输出与输入端D相对应。要注意的是,有效的驱动器会影响接收器的输入。因此,接收器的输出在驱动器输出有效时才有效。

6) 芯片使用例程:

#define RS485_Receive 1

#define RS485_Send 0

//--定义串口缓存:缓存为循环链表

unsigned char rs_buffer[RS_BUFFER_SIZE]; //串口接收缓存

int rs_buffer_pointer; //串口缓存首指针(指向最后一个接受到的字节)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top