单片机上的RS485接口

合集下载

单片机rs485接收数据不良原因

单片机rs485接收数据不良原因

单片机rs485接收数据不良原因下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!单片机RS485接收数据不良原因随着现代通信技术的发展,RS485通信在工业控制领域中得到了广泛的应用。

单片机485串口读写冲突

单片机485串口读写冲突

单片机485串口读写冲突1. 引言在单片机应用中,串口通信是一种常见的通信方式。

而在一些特殊应用场景下,需要通过RS485总线实现多个设备之间的串口通信。

然而,由于RS485总线的特殊性,可能会出现读写冲突的情况。

本文将深入探讨单片机485串口读写冲突的原因及解决方法。

2. 问题描述当多个设备通过RS485总线进行串口通信时,可能会出现读写冲突的情况。

读写冲突指的是多个设备同时进行读写操作,导致通信数据出错或丢失的现象。

读写冲突有以下几个可能的原因:1.冲突时间窗口较短:由于数据传输速率较快,读写操作可能会在非常接近的时间内发生,导致冲突。

2.总线抢占问题:多个设备同时发送数据时,会出现总线抢占的情况。

某一设备在发送数据时,可能会被其他设备中断,导致数据错误。

3.传输距离限制:RS485总线的传输距离较长,当总线上存在多个设备时,可能会出现信号干扰、衰减等问题,导致通信质量下降,从而导致读写冲突。

3. 解决方法为了解决单片机485串口读写冲突问题,我们可以采取以下几种方法:3.1 时间窗口分隔法在多个设备之间设置合理的时间窗口分隔,避免读写操作在非常接近的时间内发生。

具体操作如下:1.设定固定的时间间隔:可以通过软件控制,设置设备间的通信时间间隔,确保不同设备的读写操作不会在同一时间发生。

2.随机化时间间隔:在设备间的通信时间间隔上增加一定的随机化,避免多个设备同时进行读写操作。

时间窗口分隔法能够有效地降低读写冲突的概率,提高数据传输的准确性。

3.2 基于优先级的冲突解决方法通过设定优先级,来解决读写冲突。

具体操作如下:1.设定设备的通信优先级:为每个设备设置不同的优先级,在通信时根据优先级来确定读写操作的顺序。

2.优先级协调机制:当有多个设备具有相同的优先级时,通过协调机制来确定读写顺序,例如采用先到先服务(FIFO)策略。

基于优先级的冲突解决方法能够确保高优先级设备的读写操作得到优先处理,从而减少读写冲突发生的可能性。

第26讲 RS-485在单片机多机通信中的应用设计

第26讲  RS-485在单片机多机通信中的应用设计

返回本节
26.3RS-485在单片机多机通信中的应用设计
设计要求: 使用RS-485控制三个个单片机串行通信,要求主机按下不同的按键, 从机相应地进行工作。 系统分析: 使用RS-485控制三个个单片机串行通,需要3个MAX487; 与主机相连的单片机(发送命令),RE 和 DE 引脚接 +5V; 与从机相连的单片机(接收命令),RE 和 DE 引脚接 地。
返回本节
26.2RS-485接口标准简述
在RS-485传输信号前,先分解成正、负两条线路,到达接收端后,再将信 号相减还原成原来的信号。 原信号:(DT)=(D+)-(D-) 线路干扰: (D+)+Noise ,(D-)+Noise 接收合成: (DT)=[(D+)+Noise ] - [(D-)+Noise ] =(D+)-(D-) 最大传输速率:10Mb/s(传送15M) 最大传输距离:1200M(传输速率100Kb/s)
26.1RS-485特点 26.2RS-485接口标准简述 26.3RS-485在单片机多机通信中的应用设计
26.1RS-485特点
与RS-232相比: 抗干扰性能好; 传输距离远:1200M,加中继器传输距离无限.
返回本节
26.1RS-485特点
MAX481/MAX483/MAX485/MAX487-MAX491以及MAX1487: 是用于RS-485与RS-422通信的低功耗收发器,能够以最高 2.5Mbps 的数据速率发送并接收数据; MAX483、MAX487、MAX488以及MAX489:则用于最高 250kbps的数据速率。 MAX488-MAX491是全双工收发器; MAX481、MAX483、MAX485、MAX487以及MAX1487是半双 工收发器。 另外,MAX481、MAX483、MAX485、MAX487、MAX489、 MAX491以及MAX1487中包含驱动器使能(DE)与接收器使能 (RE)控制引脚,被禁用时,驱动器或接收器输出为高阻态。

rs485总线接口通讯协议定义标准以及管脚引脚介绍

rs485总线接口通讯协议定义标准以及管脚引脚介绍

rs485总线接口通讯协议定义标准以及管脚引脚介绍
RS485总线标准是工业中(考勤,监控,数据采集系统)使用非常广泛的双向、平衡传输标准接口,支持多点连接,允许创建多达32个节点的网络; 最大传输距离1200m,支持1200m时为100kb/s的高速度传输,抗干扰能力很强,布线仅有两根线很简单。

RS485通信网络接口是一种总线式的结构,上位机(以个人电脑为例)和下位机(以51系列单片机51hei为例)都挂在通信总线上,RS485物理层的通信协议由RS485标准和51单片机的多机通讯方式。

由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。

如都采用平衡传输方式、都需要在传输线上接终接电阻等。

RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。

下面介绍以下rs485通讯接口定义的标准
1.英式标识为TDA(-)、TDB(+)、RDA(-)、RDB(+)、GND
2.美式标识为Y、Z、A、B、GND
3.中式标识为TXD(+)/A、TXD(-)/B、RXD(-)、RXD(+)、GND
rs485两线一般定义为:
A,B或Date+,Date-
即常说的:’485+,485-’
rs485四线一般定义为:
Y,Z,A,B,
一般rs485协议的接头没有固定的标准,可能根据厂家的不同引脚顺序和管脚功能可能不尽相同,但是官方一般都会提供产品说明书,用户可以查阅相关rs485管脚图定义或者引脚图。

RS485接口

RS485接口

RS-422与RS-485串行接口标准(1)平衡传输RS-422、RS-485与RS-232不一样,数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。

通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2V~6V,是另一个逻辑状态。

另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。

“使能”端是用于控制发送驱动器与传输线的切断与连接。

当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。

(2)RS-422电气规定由于接收器采用高输入阻抗和发送驱动器比RS232更强的驱动能力,故允许在相同传输线上连接多个接收节点,最多可接10个节点。

即一个主设备(MASTER),其余为从设备(Salve),从设备之间不能通信,所以RS-422支持点对多的双向通信。

RS-422四线接口由于采用单独的发送和接收通道,因此不必控制数据方向,各装置之间任何必须的信号交换均可以按软件方式(XON/XOFF握手)或硬件方式(一对单独的双绞线)实现。

RS-422的最大传输距离为4000英尺(约1219米),最大传输速率为10Mbps。

其平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能达到最大传输距离。

只有在很短的距离下才能获得最高速率传输。

一般100米长的双绞线上所能获得的最大传输速率仅为1Mbps。

RS-422需要一终接电阻,要求其阻值约等于传输电缆的特性阻抗。

在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。

终接电阻接在传输电缆的最远端。

(3)RS-485电气规定由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。

如都采用平衡传输方式、都需要在传输线上接终接电阻等。

RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。

RS485总线接口引脚定义及说明

RS485总线接口引脚定义及说明

RS485总线接⼝引脚定义及说明RS485总线标准是⼯业中(考勤,监控,数据采集系统)使⽤⾮常⼴泛的双向、平衡传输标准接⼝,⽀持多点连接,允许创建多达32个节点的⽹络;最⼤传输距离1200m,⽀持1200 m时为100kb/s的⾼速度传输,抗⼲扰能⼒很强,布线仅有两根线很简单。

RS485通信⽹络接⼝是⼀种总线式的结构,上位机(以个⼈电脑为例)和下位机(以51系列单⽚机为例)都挂在通信总线上,RS485物理层的通信协议由RS485标准和51单⽚机的多机通讯⽅式。

由于RS-485是从RS-422基础上发展⽽来的,所以RS-485许多电⽓规定与RS-422相仿。

如都采⽤平衡传输⽅式、都需要在传输线上接终接电阻等。

RS-485可以采⽤⼆线与四线⽅式,⼆线制可实现真正的多点双向通信。

下⾯介绍以下rs485通讯接⼝定义的标准1.英式标识为TDA(-) 、TDB(+) 、RDA(-) 、RDB(+) 、GND2.美式标识为Y 、Z 、A 、B 、GND3.中式标识为TXD(+)/A 、TXD(-)/B 、RXD(-) 、RXD(+)、GNDrs485两线⼀般定义为:"A, B"或"Date+,Date-"即常说的:”485+,485-”rs485四线⼀般定义为:"Y,Z,A, B,"⼀般rs485协议的接头没有固定的标准,可能根据⼚家的不同引脚顺序和管脚功能可能不尽相同,但是官⽅⼀般都会提供产品说明书,⽤户可以查阅相关rs485管脚图定义或者引脚图上图中rs232转rs485电路中hin232(max232可以起到同样的作⽤但是要贵⼀点)起到转换pc端rs232接⼝电平的作⽤,然后把信号由max485这个芯⽚转换成485电平由AB两根线输出,如果接上双绞线信号rs485总线接⼝的信号的通信距离⾄少是1千⽶远。

STC单片机如何通过485接口下载程序

STC单片机如何通过485接口下载程序

由于RS485相比RS232具有抑制共模干扰、传输距离长等优点,所以许多大型的工业设备都采用RS485进行串口通讯。

但由于RS485采用的是差分信号,所以在进行串口通讯时,只能采用半双工的工作方式,必须使用1个或2个I/O口来控制RS485的发送和接收状态。

当需要采用RS485来对STC的新版IC(支持RS485下载的单片机系列在后面会详细列出)进行ISP下载时,必须进行一些设置才可下载代码。

具体的操作步骤如下:
1、首先需要设置好相应的RS485控制端口,并勾选上“下次下载时使能目标芯片的RS485控制功能”这个选项
2、然后使用普通下载方式将RS485相关的硬件选项写入到目标芯片
3、经过前面两步的设置和编程,此时的目标芯片便具有了对RS485的控制功能。

接下来仍需要保持RS485的控制选项不变,并勾选上"本次使用RS485进行控制下载"的选项(此选项的作用是使PC端也采用RS485的控制方式进行发送/接收串口数据)
4、再点击下载编程按钮,并对目标芯片重新上电即可实现使用RS485进行通信下载的功能
RS485控制功能仅对如下系列及新出的单片机有效:
STC15F2K60S2/STC15L2K60S2
IAP15F2K61S2/IAP15L2K61S2
STC15F104W/STC15L104W
IAP15F105W/STC15L105W
STC15W104SW/IAP15W105W
特别注意:
若需要RS485控制功能,则每次都需要将RS485相关的配置设置正确,并勾选上“下次下载时使能目标芯片的RS485控制功能”这个选项,否则在下一次下载时将不具有RS485控制功能了。

-RS485串行通信接口

-RS485串行通信接口

• 图2-25为以PC机作主机,n个单片智能设备 为从机、工作于主从方式旳RS-485总线网络旳构 造图。利用PC机配置旳RS-232C串行端口,外配 一种RS-232C/RS-485转换器,可将RS-232C信号 转换为RS-485信号。每个从机经过MAX487E芯 片构建RS-485通信接口,就可挂接在RS-485总线 网络上,总线端点处并接旳两个120Ω电阻用于消 除两线间旳干扰。RS-485总线网络传播距离最远 可达1200m(速率20 kb/s)、传播速率最高可达 2Mb/s(距离12 m)。至于在网络上最多允许挂 接多少个从机,这主要取决于232/485转换器旳驱 动能力与485接口芯片旳输入阻抗与驱动能力,假
如再加上中继站,能够增长更多旳从机数量。
232电平
A
TXD
PC机
232/485 转换器 B
120Ω
RXD
485电平
RS-
232C
BA
BA
MAX487E
MAX487E
RO RE DE DI RO RE DE DI
TTL电平
RXD P1.7 TXD RXD P1.7 TXD
AT89C52 1 # 从机
• 在RS-449原则下,推出旳子集有RS423A/RS-422A,以及RS-422A旳变型 RS-485。
3.1 RS485串行通信接口
• RS485采用二线差分平衡传播,其信号定 义如下:
• 逻辑0:差分信号-2500~-200mv • 逻辑1:差分信号+2500~+200mv • 高阻状态:差分信号-200~-200mv
• (2)传播速率较低,在异步传播时,波特 率为20Kbps。
• (3)接口使用一根信号线和一根信号返回 线而构成共地旳传播形式,这种共地传播

RS485管脚接线

RS485管脚接线

RS485总线标准是工业中(考勤,监控,数据采集系统)使用非常广泛的双向、平衡传输标准接口,支持多点连接,允许创建多达32个节点的网络;最大传输距离1200m,支持1200 m时为100kb/s的高速度传输,抗干扰能力很强,布线仅有两根线很简单。

RS485通信网络接口是一种总线式的结构,上位机(以个人电脑为例)和下位机(以51系列单片机为例)都挂在通信总线上,RS485物理层的通信协议由RS485标准和51单片机的多机通讯方式。

由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。

如都采用平衡传输方式、都需要在传输线上接终接电阻等。

RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。

下面介绍以下rs485通讯接口定义的标准1.英式标识为TDA(-) 、TDB(+) 、RDA(-) 、RDB(+) 、GND2.美式标识为Y 、Z 、A 、B 、GND3.中式标识为TXD(+)/A 、TXD(-)/B 、RXD(-) 、RXD(+)、GNDrs485两线一般定义为:"A, B"或"Date+,Date-"即常说的:”485+,485-”rs485四线一般定义为:"Y,Z,A, B,"一般rs485协议的接头没有固定的标准,可能根据厂家的不同引脚顺序和管脚功能可能不尽相同,但是官方一般都会提供产品说明书,用户可以查阅相关rs485管脚图定义或者引脚图<rs232转rs485电路图>上图中rs232转rs485电路中hin232(max232可以起到同样的作用但是要贵一点)起到转换pc端rs232接口电平的作用,然后把信号由max485这个芯片转换成485电平由AB两根线输出,如果接上双绞线信号rs485总线接口的信号的通信距离至少是1千米远。

参考链接:/news/2009-01/8751.htm有标示按标示, 没有标示的话,按自己的,如电缆引线颜色信号定义说明红色电源+ 供电电源:10-40Vdc黄色电源-蓝色通讯+ RS485通讯接口黑色通讯-长距离的串行通信 RS485MAX487的数据传输速率为0.25Mbps,静态工作电流为120μA,5V单电源工作,在本系统中,MAX487采用半双工通信方式,各节点间的通信通过一对双绞线作为传输介质,因双绞线的特性阻抗为120Ω,因此系统在MAX487的始端和末端各接一个120Ω电阻以减少线路上传输信号的反射。

RS-485单片机通讯模块产品使用手册

RS-485单片机通讯模块产品使用手册

400 个节点。
【小知识】
RS232,RS422,RS485 是电气标准,主要区别就是逻辑如何表示。 RS232 使用 12V,0,-12V 电压来表示逻辑,(-12V 表示逻辑 1,12V 表示逻辑
0),全双工,最少 3 条通信线(RX,TX,GND),因为使用绝对电压表示逻辑,由 于干扰,导线电阻等原因,通讯距离不远,低速时几十米也是可以的。
RS422,在 RS232 后推出,使用 TTL 差动电平表示逻辑,就是两根的电压 差表示逻辑,RS422 定义为全双工的,所以最少要 4 根通信线(一般额外地多一 根地线),一个驱动器可以驱动最多 10 个接收器(即接收器为 1/10 单位负载), 通讯距离与通讯速率有关系,一般距离短时可以使用高速率进行通信,速率低时 可以进行较远距离通信,一般可达数百上千米。
{
/*****************数据转换*****************************/
uint z,x,c,v;
z=date/1000;
//求千位
x=date%1000/100;
//求百位
c=date%100/10;
//求十位
v=date%10;
//求个位
P2=0XFF;
P0=seg7code[z];
RS485,在 RS422 后推出,绝大部分继承了 422,主要的差别ห้องสมุดไป่ตู้ RS485 可以 是半双工的,而且一个驱动器的驱动能力至少可以驱动 32 个接收器(即接收器 为 1/32 单位负载),当使用阻抗更高的接收器时可以驱动更多的接收器。所以现 在大多数全双工 485 驱动/接收器对都是标:RS422/485 的,因为全双工 RS485 的驱动/接收器对一定可以用在 RS422 网络。

51单片机实现RS485

51单片机实现RS485

default: // 普通数据则直接发送TI = 0;SBUF = da;while(!TI);TI = 0;}}#endifRS-232接口实现计算机和单片机通信程序作者:佚名来源:本站原创点击数:…更新时间:2008年07月10日【字体:大中小】//此程序通过RS-232接口来完成计算机和单片机通信(程序已用p1 8f458试验板上调试通过)//程序的调试可以用"串口调试助手V2.1"辅助完成,此程序可在htt p:// 下载//此程序首先发送测试数据55H,再通过中断实现数据的接收和发送#include "p18f458.h"void InterruptHandlerHigh(void);//初始化程序void initial(){SPBRG=0X19; //选择传输波特率为9600bpsTXSTA=0X04; //选择异步高速方式传输8位数据RCSTA=0X80; //允许同步串行口工作TRISC=0X80; //将RC7,RC6设置为输入,断绝与外接电路的连接 TXSTAbits.TXEN=1; //发送允许RCSTAbits.CREN=1; //接受数据允许PIE1bits.RCIE=1; //接收中断使能INTCON=0XC0; //总中断和外围中断允许}//高优先级中断向量#pragma code InterruptVectorHigh=0x08void InterruptVectorHigh (void){_asmgoto InterruptHandlerHigh //跳到中断程_endasm}//高优先级中断服务程序#pragma code#pragma interrupt InterruptHandlerHighvoid InterruptHandlerHigh (){while(PIR1bits.RCIF==1) //若接收中断标志不为1,则为误操作,返回{TXREG=RCREG; //将接收到的数据放入发送寄存器,并启动发送 }}//主程序main(){initial(); //系统初始化TXREG=0X55; //发送数据55H进行测试for(;;);}------------------------------------------汇编语言版本的RS-232接口实现计算机和单片机通信程序------------;此程序通过RS-232接口来完成计算机和单片机通讯(程序以在p18 f458试验板上调通);本单片机程序由提供;此程序首先发送测试数据55H,再通过中断实现数据的接收和发送;程序的调试可以用"串口调试助手V2.1"辅助完成LIST P=18f458INCLUDE "P18f458.INC"ORG 0x00GOTO MAINORG 0x08GOTO INTSERVEORG 0X30;**************中断服务子程序***************INTSERVEBTFSS PIR1,RCIF ;接收中断标志为1?GOTO ERR_RE ;误操作,返回MOVF RCREG,0 ;否则,将接收到的数据通过W寄存器MOVWF TXREG ;放入发送寄存器,并启动发送ERR_RE NOPRETFIE;****************初始化程序***************INITIAL NOPMOVLW 0X19 ;选择传输波特率为9600bpsMOVWF SPBRGMOVLW 0X04 ;选择异步高速方式传输8位数据MOVWF TXSTAMOVLW 0X80 ;允许同步串行口工作MOVWF RCSTAMOVLW 0X80 ;将RC7,RC6设置为输入,断绝与外接电路的连接MOVWF TRISCBSF TXSTA,TXEN ;发送允许BSF RCSTA,CREN ;接受数据允许BSF PIE1,RCIE ;接收中断使能MOVLW 0XC0 ;总中断和外围中断允许MOVWF INTCONRETURN;**********************主程序********************* MAIN NOPCLRWDTCALL INITIALMOVLW 0X55 ;发送数据55H进行测试MOVWF TXREGLOOPGOTO LOOPEND两片51单片机互相通信的串行通信程序(一个发送程序,一个接收程序)2007-05-27 08:27;系统晶振是 11.0592 MHz;51单片机发送单片机程序;此程序用Proteus仿真通过;此程序在硬件上测试通过;2007-05-27;附有简化电路图;为了使初学者能看懂,程序与图尽可能的简单扼要;实验现象为,发送端的P1口的哪个键被接下,接收端的哪个灯对应着亮;如果把两个单片机的T和R通过无线模块(如基于MCP2120芯片的模块)来扩充,便可做成无线通信ORG0000HAJMPSTARTORG0040HSTART:MOVSP,#60HMOVSCON,#50H;串口方式 1MOVTMOD,#20H;T1 方式2MOVTL1,#0FDH;波特率 9600 的常数MOVTH1,#0FDHSETBTR1movr5,#00hWAIT:movp1,#0ffhmova ,p1movr5,alcalldelay ;读键盘,这里去抖动,还要加几句话mova ,p1nopCJNEA,5,WAIT ;是否有键输入MOVSBUF,a;串口输出键盘输入的值NOPSS: JBCTI,WAIT;是否发送完毕SJMPSSDELAY:;延时子程序PUSH;保存现场PUSH1MOV0,#06HDELAY1: MOV 1,#0HDJNZ1,$DJNZ0,DELAY1POP1;恢复现场POPRETEND;系统晶振是 11.0592 MHz;51单片机接收单片机程序;此程序用Proteus仿真通过;此程序在硬件上测试通过;2007-05-27;附有简化电路图;为了使初学者能看懂,程序与图尽可能的简单扼要;实验现象为,发送端的P1口的哪个键被接下,接收端的哪个灯对应着亮;如果把两个单片机的T和R通过无线模块(如基于MCP2120芯片的模块)来扩充,便可做成无线通信ORG0000HAJMPSTARTORG0040HSTART:MOVSCON,#50H;串口方式 1MOVTMOD,#20H;T1 方式 2MOVTL1,#0FDH;波特率 9600 的常数MOVTH1,#0FDHSETBTR1WAIT:JBCRI,DIS_REC;是否接收到数据sjmpwaitDIS_REC:MOVA,SBUF;读串口接收到的数据movp1,aSJMPwaitend51单片机串行口通信程序设计例子时间:2009-03-06 17:13来源:未知作者:牛牛点击: 768次串行口方式0应用编程 8051单片机串行口方式0为移位寄存器方式,外接一个串入并出的移位寄存器,就能扩展一个并行口。

单片机RS485通信接口、控制线、原理图及程序教学实例

单片机RS485通信接口、控制线、原理图及程序教学实例

单片机RS485通信接口、控制线、原理图及程序教学实例[前言]RS232 标准是诞生于RS485 之前的,但是RS232 有几处不足的地方:接口的信号电平值较高,达到十几V,使用不当容易损坏接口芯片,电平标准也与TTL 电平不兼容。

传输速率有局限,不可以过高,一般到一两百千比特每秒(Kb/s)就到极限了。

接口使用信号线和GND 与其它设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。

传输距离有限,最多只能通信几十米。

通信的时候只能两点之间进行通信,不能够实现多机联网通信。

针对RS232 接口的不足,就不断出现了一些新的接口标准,RS485 就是其中之一。

RS232 标准是诞生于RS485 之前的,但是RS232 有几处不足的地方:接口的信号电平值较高,达到十几V,使用不当容易损坏接口芯片,电平标准也与TTL 电平不兼容。

传输速率有局限,不可以过高,一般到一两百千比特每秒(Kb/s)就到极限了。

接口使用信号线和GND 与其它设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。

传输距离有限,最多只能通信几十米。

通信的时候只能两点之间进行通信,不能够实现多机联网通信。

针对RS232 接口的不足,就不断出现了一些新的接口标准,RS485 就是其中之一,它具备以下的特点:采用差分信号。

我们在讲A/D 的时候,讲过差分信号输入的概念,同时也介绍了差分输入的好处,最大的优势是可以抑制共模干扰。

尤其当工业现场环境比较复杂,干扰比较多时,采用差分方式可以有效的提高通信可靠性。

RS485 采用两根通信线,通常用A 和B 或者D+和D-来表示。

逻辑1以两线之间的电压差为+(0.2~6)V 表示,逻辑0以两线间的电压差为-(0.2~6)V 来表示,是一种典型的差分通信。

RS485 通信速率快,最大传输速度可以达到10Mb/s 以上。

RS485 内部的物理结构,采用的是平衡驱动器和差分接收器的组合,抗干扰能力也大大增。

RS-485接口简介

RS-485接口简介

RS-485接口简介
由于串行通信的简单易用,工业上使用串行通信作为数据交换的手段。

可是工业环境通常会有噪声干扰传输线路,在用RS-232 作传输时经常会受到外界的电气干扰而使信号发生错误,而且RS-232 的最大传输距离在不另加缓冲器的情况下只有15m。

RS-485 的信号传输方式如图1 所示.RS-485 的信号在传送出去之前会先分解成正负两条线路,当到达接收端后,再将信号相减还原成原来的信号。

如果将原始信号标注为(DT),而被分解后的信号标注为(D+)和(D-),则原始信号与分解后的信号在由传输端传送出去时的运算关系如下:
(DT)=(D+)=(D-)
图1 RS-485 信号传输方式
同样地,接收端在接收到信号后,也按上式将信号还原成原来的样子。

而如果线路受到干扰,这时候在两条传输线上的信号会分别成为(D+)
+Noise 和(D-)+Noise,如果接收端接收此信号,它必须按照一定的方式将其合成,合成的方程式如下:
(DT)=[(D=)+Noise]-[(D-)+Noise]=(D+)-(D-)
此方程式与前一方程式的结果是一样的。

因此使用RS485 通信网络可以有效地防止噪声干扰,|也正因为这种特性,工业上比较适合使用这种串行传输方式。


本模块选用PIC 单片机系列中的PIC 16F73 与Maxim 公司推出的MAX485 芯片组成串口通信模块,通过单片机的RC2 脚对MAX485 芯片进行控制。

通过跳线J1 可以测量单片机输出的信号。

tips:感谢大家的阅读,本文由我司收集整编。

仅供参阅!。

单片机RS485多机通讯的实现

单片机RS485多机通讯的实现

单片机RS-485多机通讯的实现之邯郸勺丸创作摘要本文介绍一种能利用RS-485电气特性和简单的结构方式,采取自定义串行通信协议,实现单片机RS-485多机通讯的方法和技巧。

关键词单片机,RS-485总线,总线冲突,串行通信1 简介RS-485串行总线接口尺度以差分平衡方式传输信号,具有很强的抗共模干扰的能力,允许一对双绞线上一个发送器驱动多个负载设备。

工业现场控制系统中一般都采取该总线尺度进行数据传输,而且一般采取RS-485串行总线接口尺度的系统都使用8044芯片作为通信控制器或各分机的CPU。

8044芯片内部集成了SDLC,HDLC等通信协议,而且集成了相应的硬件电路,通过硬件电路和尺度协议的配合,使系统的通讯准确、可靠、快速。

8044在市场上日渐稀少,虽然有8344可替代,但几百元的价位与普通单片机几元至几十元的价位相差甚远,用户在开发一般的单片机应用系统时,都希望能用简单的电路和简单的通信协议完成数据交换。

譬如:利用单片机自己所提供的简单串行接口,加上总线驱动器如SN75176等组合成简单的RS-485通讯网络。

本文所述的方法已成功地应用于工程项目,一台主机与60台从机通讯,通讯波特率达64KBPS。

2 总线驱动器芯片SN75176经常使用的RS-485总线驱动芯片有SN75174,SN75175,SN75176。

SN75176芯片有一个发送器和一个接收器,非常适合作为RS-485总线驱动芯片。

SN75176及其逻辑如图1所示。

图1 SN75176芯片及其逻辑关系3 RS-485方式构成的多机通信原理在由单片机构成的多机串行通信系统中,一般采取主从式结构:从机不主动发送命令或数据,一切都由主机控制。

而且在一个多机通信系统中,只有一台单机作为主机,各台从机之间不克不及相互通讯,即使有信息交换也必须通过主机转发。

采取RS-485构成的多机通讯原理框图,如图2所示。

图2 采取RS-485构成的多机通讯原理框图在总线末端接一个匹配电阻,吸收总线上的反射信号,包管正常传输信号干净、无毛刺。

基于RS485协议实现单片机与单片机之间的通讯

基于RS485协议实现单片机与单片机之间的通讯

基于RS-485协议实现单片机与单片机之间的通讯摘要:介绍以RS-485为通讯方式的两个单片机之间的通讯,同时给出单片机与单片机之间的通讯程序设计。

关键词:RS-485通讯单片机串行通讯0 引言随着工业化的发展,人们对现场仪表的要求越来越高,为了满足控制室对现场的实时监控,确保现场数据的实时获取,需要用一种方式将现场情况实时反映给控制室,我们研究了一种方便简单功、能优越的通讯方式:用RS-485实现现场单片机和控制室单片机的实时通讯。

通过操作控制室单片机就能实现对现场单片机的操作,节省了大量的时间以及相应的人力。

1、RS-485通讯协议RS-485采用平衡传输方式,连接时需要在传输线上接终接电阻。

RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,采用四线连接时,即只能有一个主(Master)设备,其余为从设备,无论是四线还是二线连接方式总线上最多可接32个设备。

RS-485最大传输距离约为1219米,最大传输速率为10Mb/s。

平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。

只有在很短的距离下才能获得最高速率传输。

一般100米长双绞线最大传输速率仅为1Mb/s。

RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗,终接电阻接在传输总线的两端。

在短距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。

本设计中采用的485通讯元件是75LBC184,该器件带有内置高能量瞬变噪声保护装置,可提供可靠的低成本的直连(不带绝缘变压器)数据线接口,不需要任何外部元件。

2、单片机与单片机的通讯系统本设计中单片机选用C8051F020,该单片机有100个功能引脚,其中有64个通用I/O端口。

C8051F020内有2个增强型串行口:UARTO和UART1,这两个串行口都可以工作在全双工异步方式或半双工同步方式,并且支持多处理器通信。

75LBC184与单片机连接时只需将R和D端分别与单片机的RXD 和TXD 相连即可。

单片机原理及接口技术讲解

单片机原理及接口技术讲解

单片机原理及接口技术讲解
1.什么是单片机
单片机(MCU,Micro-Controller Unit)是一种半导体集成电路,由微处理器,ROM, RAM,I / O口,定时器 / 计数器,模拟 / 数字转换器,A / D转换器和其他支持电路组成,但它可以完成复杂的控制功能,又是一种体积小、价格低的微型计算机和控制系统,具有比普通的微处理器更强大的能力和更低的功耗,因此,它被广泛应用于各种工控系统、自动控制系统和电子产品中。

2.单片机接口技术
单片机接口技术是指将外部设备与单片机之间进行数据交换的技术。

它通过在单片机和外部设备的I/O口之间实现数据通信,从而使外部设备能够控制或与单片机通信。

常见的接口技术包括RS232、RS485、SPI、
I2C等接口方式。

(1)RS232接口
RS232接口是一种串行接口,它使用一条粗糙或半双工的信号线。

外部设备通过其发送和接收信号来和单片机通信,通常用于与个人计算机或大型控制系统进行远程通信。

(2)RS485接口
RS485接口是串行接口技术,该技术采用信号平衡传输方式,具有传输距离长,通信效率高等优点,因此被广泛应用于工业控制及家用智能控制等领域。

(3)SPI接口
SPI接口(Serial Peripheral Interface)是一种常用的串行接口,它的特点是接口简单。

5v rs485接3

5v rs485接3

5v rs485接3.3v单片机原理
RS485是一种常用的串行通信协议,用于在远距离通信中实现高速、可靠的数据传输。

通常,RS485接口需要工作在5V电平,但是由于现代单片机大多采用3.3V供电,因此在实际应用中需要将5V的RS485接口转换为3.3V可接受的电平。

为了实现5V RS485接口向3.3V单片机的转换,可以采用以下原理。

首先,需要使用5V到3.3V的电压转换器将5V的信号转换为3.3V。

这样可以确保单片机接收到的信号处于兼容的电平范围内。

其次,需要通过电平转换器将3.3V的信号转换为5V。

这样可以确保单片机发送的信号也处于兼容的电平范围内,以确保RS485总线正确接收到信号。

在实际电路设计中,可以使用双向电平转换器,比如TXB0104或SN74LVC8T245等。

这些芯片具有多个输入和输出引脚,可以实现双向的电平转换。

通过将5V的RS485接口连接到转换器的输入端,将单片机的引脚连接到转换器的输出端,即可实现电平转换。

此外,还需要将RS485总线上的数据线连接到转换器的输入引脚上,以实现数据的传输。

同时,还需将一条控制线连接到转换器的使能引脚上,用于控制转换器的使能和禁止。

总结来说,将5V RS485接口转换为3.3V单片机的原理主要是通过使用5V到3.3V的电压转换器和电平转换器来实现。

这样可以确保RS485总线上的信号能够在5V和3.3V之间进行可靠的转换,使得单片机能够正常接收和发送数据。

RS485通信

RS485通信

RS485串行总线接口采用平衡发送和差分接收的方式进行数据通讯,较RS232提高了抗共模干扰能力和传输距离,其在适当的波特率下通讯距离可以达到1000 m以上。

RS485总线可用于多个带有RS485接口设备的互连,以实现数据高速远距离传送,其连线十分方便,鉴于以上优点,RS485总线在工业控制现场得到了广泛的应用。

1系统设计本系统采用一台PC作为上位机,下位机由若干台A T89C52单片机担任,系统原理图如图1所示。

上位机的RS232串行口通过RS232/RS485转换器转换为RS485总线,各下位机通过MAX485芯片连接到总线上。

各个下位机设有自己惟一的地址,且下位机之间不能通讯,一切通讯受上位机控制。

开始时,所有下位机都处于监听状态,等待上位机发出指令。

当上位机发出指令时,所有下位机都接收并且将其中的地址帧与自己的地址比较,如果相同则继续接收后面的指令或数据,若不同则不予理睬。

单片机的RS485接口电路原理图如图2所示,RS485的A,B为总线接口,DI是发送端,RO是接收端,RE,DE为RS485收发使能端,由单片机的P2 7口控制。

2通讯协议本系统采用半双工异步通讯,下位机以串行中断方式接收。

上位机发往下位机的数据分为2类:一类是控制命令帧,另一类为参数帧,即设置下位机的工作参数,其格式如图3所示,CMD和DA T为帧头,地址为下位机的地址。

下位机发往上位机的数据也分为2类:一类是数据信息帧,另一类为应答帧(GOOD),其格式如图4所示。

下位机在接收到上位机命令或数据发送完毕时均发出应答帧,并且转为接收状态,使总线空出。

上位机在发送指令后如接收到下位机的应答则认为指令发送成功,可以发送下一个指令,否则重新发送此指令。

3软件设计采用固定长度的数据帧通讯时,在一般情况下上下位机发送和接收的数据是一样的,但在数据连续发送时,常会发生帧丢失的现象,使发送和接收会不同步。

如连续发送几组数据帧“DA T010203”,接收采用9帧为一组的数据的方式,接收方可能会接收到“T010203DA”,“10203DAT0”等数据,从而出现数据和所在组数的不统一,直接影响到数据的准确性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机上的RS485接口
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)芯片功能表:
注:表中H 代表高电平,L 代表低电平,Z 代表高阻态,?代表不确定状态。

4)典型应用电路示意图:
输出
输入
输入D 使能DE 输出输出差模输入V ID =V A ­V B 使能#RE 输出R A B H H H L V ID <=­0.2V L L L H L H ­0.2V<V ID <­0.01V L ?X L Z Z ­0.01V<=V ID
L H OPEN H H L X H Z X
OPEN
Z
Z
开路L H 短路L H X
开路
Z
功耗在很多应用中都是一个关心的问题。

电源供给电流不仅到供给总线负载,同时也要供给收发器电路。

对典型的RS­485总线配置,一个驱动器的负载包括所有的接收结点,及其总线尽头上的终止电阻(R T)。

接收结点的负载决定于接收器的输入阻抗。

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相对应。

要注意的是,有效的驱动器会影响接收器的输入。

因此,接收器的输出在驱动器输出有效时才有效。

#define RS485_Receive1
#define RS485_Send0
//­­定义串口缓存:缓存为循环链表
unsigned char rs_buffer[RS_BUFFER_SIZE];//串口接收缓存
int rs_buffer_pointer;//串口缓存首指针(指向最后一个接受到的字节)
int rs_buffer_amount;//串口缓字节数
//­­定义结束
//­­定义串口与MCU的硬件连接
sbit RS_Mode=P0^0;
//­­定义结束
void RS_Init()/*通讯有关参数初始化*/
{
TH1=FF;/*使用T1产生*/
TL1=FF;
TMOD=0x21;
PS=1;/*串行高优先级*/
EA=1;
ET1=0;
SM0=0;
SM1=1;/*SM0=0SM1=1,mode1,10bit*/
SM2=0;/*data int,无校验(TB8=bit_duble偶)*/
TR1=1;
REN=1;
RI=0;
TI=0;
ES=1;
RS_Mode=RS485_Receive;
rs_buffer_poiter=­1;
rs_buffer_amount=0;
}
void RS_Receive()interrupt4using2//中断方式接收串口数据
{
ES=0;
if(RI)/*RI==1*/
{
//此处处理串口缓存
rs_buffer_pointer++;
rs_buffer_pointer=rs_buffer_pointer%RS_BUFFER_SIZE;
rs_buffer[rs_buffer_pointer]=SBUF;
rs_buffer_amount++;
RI=0;
}
ES=1;
}
void RS_Send(unsigned char data)//用户函数,发送一个字节的数据{
ES=0;
RS_Mode=RS485_Send;
SBUF=data;
RS_Mode=RS485_Receive;
ES=1;
while(TI==0);
TI=0;
}。

相关文档
最新文档