首页 rs485通信串口协议

rs485通信串口协议

举报
开通vip

rs485通信串口协议rs485通信串口协议 篇一:RS485串行通信协议及其应用 RS-485串行数据通信协议及其应用 概述 串行数据通信的协议从RS-232到千兆位以太网,虽然每种协议都有特定的应用领域,但任何情况下我们都必须考虑成本和物理层(PHY)性能。本文主要介绍RS-485协议及该协议所适合的应用。同时给出了根据电缆长度、系统设计以及元件选择来优化数据速率的方法。 传输协议 什么是RS-485,Profibus又是什么,与其它串行协议相比,它们的性能如何,适用于哪些应用,为了回答这些问题,我们对RS-485物理层...

rs485通信串口协议
rs485通信串口协议 篇一:RS485串行通信协议及其应用 RS-485串行数据通信协议及其应用 概述 串行数据通信的协议从RS-232到千兆位以太网,虽然每种协议都有特定的应用领域,但任何情况下我们都必须考虑成本和物理层(PHY)性能。本文主要介绍RS-485协议及该协议所适合的应用。同时给出了根据电缆长度、系统设计以及元件选择来优化数据速率的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 。 传输协议 什么是RS-485,Profibus又是什么,与其它串行协议相比,它们的性能如何,适用于哪些应用,为了回答这些问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,我们对RS-485物理层(PHY)、RS-232和RS-422的特性、功能进行了总体比较[1] (本文中的RS表示ANSIEIA/TIA 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 )。RS-232是一个最初用于调制解调器、打印机及其它PC外设的通讯标准,提供单端20kbps的波特,后来速率提高至1Mbps。RS-232的其它技术指标包括:标称?5V发送电平、?3V接收电平(间隔/符号)、2V共模抑制、2200PF最大电缆负载电容、300最大驱动器输出电阻、3k最小接收器(负 1 载)阻抗、100英尺(典型值)最大电缆长度。RS-232只用于点对点通信系统,不能用于多点通信系统,所有RS-232系统都必须遵从这些限制。 RS-422是单向、全双工通信协议,适合嘈杂的工业环境。RS-422 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 允许单个驱动器与多个接收器通信,数据信号采用差分传输方式,速率最高可达50Mbps。接收器共模范围为?7V,驱动器输出电阻最大值为100,接收器输入阻抗可低至4k。 RS-485标准 RS-485是双向、半双工通信协议,允许多个驱动器和接收器挂接在总线上,其中每个驱动器都能够脱离总线。该规范满足所有RS-422的要求,而且比RS-422稳定性更强。具有更高的接收器输入阻抗和更宽的共模范围(-7V至+12V)。 接收器输入灵敏度为?200mV,这就意味着若要识别符号或间隔状态,接收端电压必须高于+200mV或低于-200mV。最小接收器输入阻抗为12k,驱动器输出电压为?1.5V (最小值)、?5V (最大值)。 驱动器能够驱动32个单位负载,即允许总线上并联32个12k的接收器。对于输入阻抗更高的接收器,一条总线上允许连接的单位负载数也较高。RS-485接收器可随意组合,连接至同一总线,但要保证这些电路的实际并联阻抗不高于32个单位负载(375)。 2 采用典型的24AWG双绞线时,驱动器负载阻抗的最大值为54,即32个单位负载并联2个120终端匹配电阻。RS-485已经成为POS、工业以及电信应用中的最佳选择。较宽的共模范围可实现长电缆、嘈杂环境(如工厂车间)下的数据传输。更高的接收器输入阻抗还允许总线上挂接更多器件。 Profibus和Fieldbus[2]总线主要用于工业设备,是RS-485总线的扩展。用于工业环境的传感器测量、 激励控制、数据采集/显示以及过程控制系统与传感器、激励源网络之间的数据通信。 注意:老式或现有的工业设备布线架构比较复杂,不可替换。 Profibus和Fieldbus是对系统的整体描述。RS-485支持Profibus和Fieldbus协议的物理层接口标准。Profibus与Fieldbus存在细微的差异,Profibus要求2.0V的最小差分输出电压,54的负载电阻;Fieldbus则要求1.5V的最小差分输出电压,54的负载电阻。Profibus传输速率为12Mbps,Fieldbus的传输速率为500kbps。Profibus应用对摆率和电容容限要求比较严格。 最适合的应用领域, RS-232:用于与调制解调器、打印机及其它PC外设之间的通信。最大电缆长度为100英尺(典型值)。 3 RS-422:适用于单主机(驱动器)工业环境。典型应用包括:过程自动化(化工、酿造、造纸)、工厂自动化(汽车制造、金属加工)、HVAC、安防、电机控制、运动控制等。 RS-485:适用于多主机/驱动器工业环境。其典型应用与RS-422相似,包括:过程自动化(化工、酿造、造纸)、工厂自动化(汽车制造、金属加工)、HVAC、安防、电机控制、运动控制。 哪些因素限制了RS-485的数据速率, 在指定的传输距离下,下列因素限制了传输速率: 电缆长度:在特定频率下,信号强度会随着电缆长度而衰减。 电缆架构:5类24AWG双绞线是RS-485系统最常用的电缆,屏蔽电缆可大大增强噪声抑制能力,提高了一定距离下的数据传输速率。 电缆特性阻抗:分布电容和分布电感会降低信号的边沿速度,从而降低噪声裕量、补偿“眼图模板”特性。分布电阻直接导致信号电平的衰减。 驱动器输出阻抗:阻抗过高会限制驱动能力。 接收器输入阻抗:阻抗过低会限制与驱动器通信的接收器数量。 终端匹配:长电缆可看作传输线。电缆上应接阻值等于电缆特性阻抗的终端匹配电阻,可以降低信号反射,并提高 4 数据速率。 噪声裕量:越大越好。 驱动器摆率:降低边沿速率(降低信号摆率)允许采用较长的电缆进行通信。 经验数据 了解了以上相关的背景知识,接下来我们研究一个实际系统,如图1所示。图中所示电缆是RS-485系统最为常用的一种:EIA/TIA/ANSI 568 5类双绞线。在长度为300英尺至900英尺的电缆上可以获得的数据速率为1Mbps至35Mbps。 图1. 测试装置 系统设计人员经常从两个不同厂商选择驱动器和接收器,多数设计人员最关注的是RS-485驱动器的传输距离和速度。Maxim驱动器(这里指MAX3469)与其它制造商的驱动器性能比较如图2、图3所示。 图2. 在特定比特率、电缆长度下的抖动特性,抖动是在?100mV差分信号下测量的 图3. 在特定比特率、电缆长度下的抖动指标,抖动是在0V差分信号下测量的 通过观察驱动器的差分输出信号的完整性,利用示波器确定80mV与-400mV之间的翻转门限(由于接收器具有200mV至-200mV的输入范围和噪声裕量,因此选取这一门 5 限范围)。然后,当脉冲(比特)开始“传送”时,用眼图确定失真度、噪声以及码间干扰(ISI)。 ISI指标限制了比特率,以保证系统能够在脉冲之间识别出传输数据。对图1电路的测试结果表明翻转门限与眼图模板之间具有相关性。该眼图模板存在50%的抖动,按照NATIONAL SEMICONDUCTOR的应用笔记#977[3]所介绍的方法进行测量。测量0V差分信号和?100mV差分信号下的抖动,得到图4和图5所示数据。 图4. Maxim的MAX3469与其它RS-485驱动器件的眼图对比[4] 图5. MAX3469的眼图 对于一个点到点通信系统,从?100mV差分信号(图4)或0V差分信号(图5)下的测试结果可以看出比特率与电缆长度的关系。+100mV和-100mV门限能够正确切换差分信号大于200mV的信号,因此,该门限值可确保接收器正确接收数据(图5数据仅适用于可在0V差分输入下切换的理想接收器)。 眼图和故障模式 采用340英尺的5类电缆,图2给出了39Mbps传输速率下的驱动器输出眼图,图中,信号从“眼”的中间穿过 - 这种情况表明可能出现误码。然而,在相同数据速率下,Maxim公司的器件不会出现这种情况(图3)。Maxim的收发器具有 6 对称的输出边沿和较低的输入电容,性能良好。 采用上述测试对两款驱动器进行比较。当数据速率较高、电缆较长时,Maxim驱动器的性能更出色。图5给出点对点网络中Maxim器件的传输速率和距离的估计值。根据经验,所产生的误码大致符合50%抖动极限的要求。 各方研究数据 在工业领域,通常可接受的传输距离和数据速率的最大值分别为4000英尺和10Mbps,当然这两个值不能同时满足。然而,利用最新器件和精细的系统设计,可在较长的电缆下实现较高的数据吞吐率。 预加重[5]是一种改善数据速率与距离间关系的技术,可用于RS-485通信(图6)。采用1700英尺电缆,工作在1Mbps固定数据速率,没有预加重驱动器或均衡接收器的RS-485收发器通常具有10%的抖动。在相同速率下,增加驱动器预加重可使距离加倍,达到3400英尺,而且不会提高抖动。同样,距离一定时采用预加重能提高数据速率。速率为400kbps,电缆长度为4000英尺时,无预加重的驱动器通常具有10%的抖动。而采用预加重可使该距离下的传输速率提升至800kbps。 篇二:RS485通信和Modbus协议 在工业控制、电力通讯、智能仪表等领域,通常情况下是采用串口通信的方式进行数据交换。最初采用的方式是 7 RS232接口,由于工业现场比较复杂,各种电气设备会在环境中产生比较多的电磁干扰,会导致信号传输错误。除此之外,RS232接口只能实现点对点通信,不具备联网功能,最大传输距离也只能达到几十米,不能满足远距离通信要求。而RS485则解决了这些问题,数据信号采用差分传输方式,可以有效的解决共模干扰问题,最大距离可以到1200米,并且允许多个收发设备接到同一条总线上。随着工业应用通信越来越多,1979年施耐德电气制定了一个用于工业现场的总线协议Modbus协议,现在工业中使用RS485通信场合很多都采用Modbus协议,本节课我们要讲解一下RS485通信和Modbus协议。 单单使用一块KST-51开发板是不能够进行RS485实验的,应很多同学的要求,把这节课作为扩展课程讲一下,如果要做本课相关实验,需要自行购买USB转485通信模块。 18.1 RS485通信 实际上在RS485之前RS232就已经诞生,但是RS232有几处不足的地方: 1、接口的信号电平值较高,达到十几V,容易损坏接口电路的芯片,而且和TTL电平不兼容,因此和单片机电路接起来的话必须加转换电路。 2、传输速率有局限,不可以过高,一般到几十Kb/s就到极限了。 3、接口使用信号线和GND与其他设备形成共地模式的通 8 信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。 4、传输距离有限,最多只能通信几十米。 5、通信的时候只能两点之间进行通信,不能够实现多机联网通信。 针对RS232接口的不足,就不断出现了一些新的接口标准,RS485就是其中之一,他具备以下的特点: 1、我们在讲A/D的时候,讲过差分信号输入的概念,同时也介绍了差分输入的好处,最大的优势是可以抑制共模干扰。尤其工业现场的环境比较复杂,干扰比较多,所以通信如果采用的是差分方式,就可以有效的抑制共模干扰。而RS485就是一种差分通信方式,它的通信线路是两根,通常用A和B或者D+和D-来表示。逻辑“1”以两线之间的电压差为+(0.2~6)V表示,逻辑“0”以两线间的电压差为-(0.2~6)V来表示,是一种典型的差分通信。 2、RS485通信速度快,最大传输速度可以达到10Mb/s以上。 3、RS485内部的物理结构,采用的是平衡驱动器和差分接收器的组合,抗干扰能力也大大增加。 4、传输距离最远可以达到1200米左右,但是他的传输速率和传输距离是成反比的,只有在100Kb/s以下的传输速度,才能达到最大的通信距离,如果需要传输更远距离可以使用 9 中继。 5、可以在总线上进行联网实现多机通信,总线上允许挂多个收发器,从现有的RS485芯片来看,有可以挂32、64、128、256等不同个设备的驱动器。 RS485的接口非常简单,和RS232所使用的MAX232是类似的,只需要一个RS485转换器,就可以直接和我们单片机的UART串行接口连接起来,并且完全使用的是和UART一致的异步串行通信协议。但是由于RS485是差分通信,因此接收数据和发送数据是不能同时进行的,也就是说它是一种半双工通信。那我们如何判断什么时候发送,什么时候接收呢, RS485类的芯片很多,这节课我们以MAX485为例讲解RS485通信,如图18-1 所示。 图18-1 MAX485硬件接口 MAX485是美信(Maxim)推出的一款常用RS485转换器。其中5脚和8脚是电源引脚,6脚和7脚就是485通信中的A和B两个引脚,而1脚和4脚分别接到我们单片机的RXD和TXD引脚上,直接使用单片机UART进行数据接收和发送。而2脚和3脚就是方向引脚了,其中2脚是低电平使能接收器,3脚是高电平使能输出驱动器。我们把这两个引脚连到一起,平时不发送数据的时候,保持这两个引脚是低电 10 平,让MAX485处于接收状态,当需要发送数据的时候,把这个引脚拉高,发送数据,发送完毕后再拉低这个引脚就可以了。为了提高RS485的抗干扰性能,需要在靠近MAX485的A和B引脚之间并接一个电阻,这个电阻阻值从100欧到1K都可以。 在这里我们还要介绍一下如何使用KST-51单片机开发板进行外围扩展实验。我们的开发板只能把基本的功能给同学们做出来提供实验练习,但是同学们学习的脚步不应该停留在这个实验板上。如果想进行更多的实验,就可以通过单片机开发板的扩展接口进行扩展实验。 大家可以看到蓝绿色的单片机座周围有32个插针,这32个插针就是把单片机的32个IO引脚全部都引出来了。在原理图上体现出来的就是我们的J4 、J5、J6、J7这4个器件,如图18-2所示。 图18-2 单片机扩展接口 这32个IO口不是所有的IO口都可以用来对外扩展,其中既作为数据输出,又可以作为数据输入的引脚是不可以用的,比如P3.2、P3.4、P3.6引脚,这三个引脚是不可用的。比如P3.2这个引脚,如果我们用来扩展,发送的信号如果和DS18B20的时序吻合,会导致DS18B20拉低引脚,影响通信。除这3个IO口以外的其他29个IO口,都可以使用杜邦线接上插针,扩展出来使用。当然了,如果把当前的IO 11 口应用于扩展功能了,板子上的相应的功能就实现不了了,也就是说需要扩展功能和板载功能二选一。 在进行RS485实验中,我们通信用的引脚必须是P3.0和P3.1,此外还有一个方向控制引脚,我们使用杜邦线将其连接到P1.7上去。RS485的另外一端,大家可以使用一个USB转485模块,用双绞线把开发板和模块上的A和B分别对应连起来,USB那头插入电脑,然后就可以进行通信了。 学习了第13章的实用串口通信的方法和程序后,做这种串口通信的方法就很简单了,基本是一致的。我们使用实用串口通信的思路,做了一个简单的程序,通过串口调试助手下发任意个字符,单片机接收到后在末尾添加“回车+换行”符后再送回,在调试助手上重新显示出来,先把程序贴出来。 程序中需要注意的一点是:因为平常都是将485设置为接收状态,只有在发送数据的时候才将485改为发送状态,所以在UartWrite()函数开头将485方向引脚拉高,函数退出前再拉低。但是这里有一个细节,就是单片机的发送和接收中断产生的时刻都是在停止位的一半上,也就是说每当停止位传送了一半的时候,RI或TI就已经置位并且马上进入中断(如果中断使能的话)函数了,接收的时候自然不会存在问题,但发送的时候就不一样了:当紧接这向SBUF写入一个字节数据时,UART硬件会在完成上一个停止位的发送后,再开始新字节的发送,但如果此时不是继续发送下一个 12 字节,而是已经发送完毕了,要停止发送并将485方向引脚拉低以使485重新处于接收状态时就有问题了,因为这时候最后的这个停止位实际只发送了一半,还没有完全完成,所以就有了UartWrite()函数内DelayX10us(5)这个操作,这是人为的增加了延时50us,这50us的时间正好让剩下的一半停止位完成,那么这个时间自然就是由通信波特率决定的了,为波特率周期的一半。 /***********************RS485.c文件程序源代码*************************/ #include <reg52.h #include <intrins.h sbit RS485_DIR = P1 ; //RS485方向选择引脚 bit flagOnceTxd = 0; //单次发送完成标志,即发送完一个字节 bit cmdArrived = 0;//命令到达标志,即接收到上位机下发的命令 unsigned char cntRxd = 0; unsigned char pdatabufRxd[40]; //串口接收缓冲区 void ConfigUART(unsigned int baud) //串口配置函数,baud为波特率 { RS485_DIR = 0; //RS485设置为接收方向 SCON = 0x50;//配置串口为模式1 13 TMOD &= 0x0F; //清零T1的控制位 TMOD |= 0x20; //配置T1为模式2 TH1 = 256 - (11059200/12/32) / baud; //计算T1重载值 TL1 = TH1; //初值等于重载值 ET1 = 0; //禁止T1中断 ES = 1; //使能串口中断 TR1 = 1; //启动T1 } unsigned char UartRead(unsigned char *buf, unsigned char len) //串口数据读取函数,数据接收指针buf,读取数据长度len,返回值为实际读取到的数据长度 { unsigned char i; if (lencntRxd) //读取长度大于接收到的数据长度时, { len = cntRxd; //读取长度设置为实际接收到的数据长度 } for (i=0; i<len; i++) //拷贝接收到的数据 { *buf = bufRxd[ i]; buf++; } 14 cntRxd = 0; //清零接收计数器 return len; //返回实际读取长度 } void DelayX10us(unsigned char t) //软件延时函数,延时 时间(t*10)us { do { _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } while (--t); } void UartWrite(unsigned char *buf, unsigned char len) // 串口数据写入函数,即串口发送函数,待发送数据指针buf, 数据长度len { RS485_DIR = 1; //RS485设置为发送 15 while (len--)//发送数据 { flagOnceTxd = 0; SBUF = *buf; buf++; while (!flagOnceTxd); } DelayX10us(5); //等待最后的停止位完成,延时时间由波特率决定 RS485_DIR = 0; //RS485设置为接收 } void UartDriver() //串口驱动函数,检测接收到的命令并执行相应动作 { unsigned char len; unsigned char buf[30]; if (cmdArrived) //有命令到达时,读取处理该命令 { 篇三:RS-485串行接口标准 RS-485串行接口标准 1、平衡传输 RS-485数据信号采用差分传输方式,也称作平衡传输, 16 它使用一对双绞线,将其中一线定义为A,另一线定义为B,通常情况下,发送驱动器A、B之间的正电平在+2,+6V,是一个逻辑状态,负电平在-2,6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一“使能”端,而在RS-422中这是可用可不用的。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。 接收器也作与发送端相对的规定,收、发端通过平衡双绞线将AA与BB对应相连,当在收端AB之间有大于+200mV的电平时,输出正逻辑电平,小于-200mV时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在200mV至6V之间。 2、RS-485电气规定 由于RS-485是从RS-422基础上发展而来的,所以RS-485许多电气规定与RS-422相仿。如都采用平衡传输方式、都需要在传输线上接终接电阻等。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信,而采用四线连接时,与RS-422一样只能实现点对多的通信,即只能有一个主(Master)设备,其余为从设备,但它比RS-422有改进, 无论四线还是二线连接方式总线上可多接到32个设备。RS-485与RS-422的不同还在于其共模输出电压是不同的, 17 RS-485是-7V至+12V之间,而RS-422在-7V至+7V之间,RS-485接收器最小输入阻抗为12k剑 鳵S-422是4k健; 旧峡梢运礡S-485满足所有RS-422的规范,所以RS-(转 载 于:wWW.xlTkWJ.Com 小 龙文 档 网:rs485通信串口协议)485的驱动器可以用在RS-422网络中应用。 RS-485与RS-422一样,其最大传输距离约为1219米,最大传输速率为10Mb/s。平衡双绞线的长度与传输速率成反比,在100kb/s速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mb/s RS-485需要2个终接电阻,其阻值要求等于传输电缆的特性阻抗。在矩距离传输时可不需终接电阻,即一般在300米以下不需终接电阻。终接电阻接在传输总线的两端。 在MCU之间中长距离通信的诸多 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 中、RS-485因硬件设计简单、控制方便、成本低廉等优点广泛应用于工厂自动化、工业控制、小区监控、水利自动报测等领域、但RS-485总线在抗干扰、自适应、通信效率等方面仍存在缺陷、一些细节的处理不当常会导致通信失败甚至系统瘫痪等故障、因此提高RS-485总线的运行可靠性至关重要、 1 RS-485接口电路的硬件设计 1)总线匹配、总线匹配有两种方法、一种是加匹配电阻、位于总线两端的差分端口VA与VB之间应跨接120Ω匹配 18 电阻、以减少由于不匹配而引起的反射、吸收噪声、有效地抑制了噪声干扰、但匹配电阻要消耗较大电流、不适用于功耗限制严格的系统、 另外一种比较省电的匹配方案是RC 匹配利用一只电容C 隔断直流成分、可以节省大部分功率、但电容C的取值是个难点、需要在功耗和匹配质量间进行折衷、除上述两种外还有一种采用二极管的匹配方案、 2) RO及DI端配置上拉电阻、异步通信数据以字节的方式传送、在每一个字节传送之前、先要通过一个低电平起始位实现握手、为防止干扰信号误触发RO(接收器输出)产生负跳变、使接收端MCU进入接收状态、建议RO外接10kΩ上拉电阻、 3)保证系统上电时的RS-485芯片处于接收输入状态、对于收发控制端TC建议采用MCU引脚通过反相器进行控制、不宜采用MCU引脚直接进行控制、以防止MCU上电时对总线的干扰、 4)总线隔离、RS-485总线为并接式二线制接口、一旦有一只芯片故障就可能将总线“拉死”、因此对其二线口VA、VB与总线之间应加以隔离、通常在VA、VB与总线之间各串接一只4~10Ω的PTC电阻、同时与地之间各跨接5V的TVS二极管、以消除线路浪涌干扰、如没有PTC电阻和TVS二极管、可用普通电阻和稳压管代替、 19 5)合理选用芯片、例如、对外置设备为防止强电磁(雷电)冲击、建议选用TI的75LBC184等防雷击芯片、对节点数要求较多的可选用SIPEX的SP485R、 2 RS-485网络配置 1)网络节点数、网络节点数与所选RS-485芯片驱动能力和接收器的输入阻抗有关、如75LBC184标称最大值为64点、SP485R标称最大值为400点、实际使用时、因线缆长度、线径、网络分布、传输速率不同、实际节点数均达不到理论值、例如75LBC184运用在500m分布的RS-485网络上节点数超过50或速率大于 9.6kb/s时、工作可靠性明显下降、通常推荐节点数按RS-485芯片最大值的70%选取、传输速率在 1200~9600b/s之间选取、通信距离1km以内、从通信效率、节点数、通信距离等综合考虑选用4800b/s最佳、通信距离1km以上时、应考虑通过增加中继模块或降低速率的方法提高数据传输可靠性、 2)节点与主干距离、理论上讲、RS-485节点与主干之间距离(T头、也称引出线)越短越好、T头小于10m的节点采用T型、连接对网络匹配并无太大影响、可放心使用、但对于节点间距非常小(小于1m、如LED模块组合屏)应采用星型连接、若采用T型或串珠型连接就不能正常工作、RS-485是一种半双工结构通信总线、大多用于一对多点的通 20 信系统、因此主机(PC)应置于一端、不要置于中间而形成主干的T型分布、 3 提高RS-485通信效率 RS-485通常应用于一对多点的主从应答式通信系统中、相对于RS-232等全双工总线效率低了许多、因此选用合适的通信协议及控制方式非常重要、 1(总线稳态控制(握手信号)、大多数使用者选择在数据发送前1ms将收发控制端TC置成高电平、使总线进入稳定的发送状态后才发送数据;数据发送完毕再延迟1ms后置TC端成低电平、使可靠发送完毕后才转入接收状态、据笔者使用TC端的延时有4个机器周期已满足要求; 2(为保证数据传输质量、对每个字节进行校验的同时、应尽量减少特征字和校验字、惯用的数据包格式由引导码、长度码、地址码、命令码、数据、校验码、尾码组成、每个数据包长度达20~30字节、在RS-485系统中这样的协议不太简练、推荐用户使用MODBUS协议、该协议已广泛应用于水利、水文、电力等行业设备及系统的国际标准中、 4 RS-485接口电路的电源、接地 对于由MCU结合RS-485微系统组建的测控网络、应优先采用各微系统独立供电方案、最好不要采用一台大电源给微系统并联供电、同时电源线(交直流)不能与RS-485信号线共用同一股多芯电缆、RS-485信号线宜选用截面积 21 0.75mm2以上双绞线而不是平直线、对于每个小容量直流电源选用线性电源LM7805比选用开关电源更合适、当然应注意LM7805的保护: 1(LM7805输入端与地应跨接220~1000μF电解电容; 2(LM7805输入端与输出端反接1N4007二极管; 3(LM7805输出端与地应跨接470~1000μF电解电容和104pF独石电容并反接1N4007二极管; 4(输入电压以8~10V为佳、最大允许范围为6.5~24V、可选用TI的PT5100替代LM7805、以实现9,38V的超宽电压输入、 5 光电隔离 在某些工业控制领域、由于现场情况十分复杂、各个节点之间存在很高的共模电压、虽然RS-485接口采用的是差分传输方式、具有一定的抗共模干扰的能力、但当共模电压超过RS-485接收器的极限接收电压、即大于+12V或小于,7V时、接收器就再也无法正常工作了、严重时甚至会烧毁芯片和仪器设备、 解决此类问题的方法是通过DC-DC将系统电源和RS-485收发器的电源隔离;通过光耦将信号隔离、彻底消除共模电压的影响、实现此方案的途径可分为: (1)用光耦、带隔离的DC-DC、RS-485芯片构筑电路; (2)使用二次集成芯片、如PS1480、MAX1480等、 22 6 RS-485系统的常见故障及处理方法 RS-485是一种低成本、易操作的通信系统、但是稳定性弱同时相互牵制性强、通常有一个节点出现故障会导致系统整体或局部的瘫痪、而且又难以判断、故向读者介绍一些维护RS-485的常用方法、 1)若出现系统完全瘫痪、大多因为某节点芯片的VA、VB对电源击穿、使用万用表测VA、VB间差模电压为零、而对地的共模电压大于3V、此时可通过测共模电压大小来排查、共模电压越大说明离故障点越近、反之越远; 2)总线连续几个节点不能正常工作、一般是由其中的一个节点故障导致的、一个节点故障会导致邻近的2,3个节点(一般为后续)无法通信、因此将其逐一与总线脱离、如某节点脱离后总线能恢复正常、说明该节点故障; 3)集中供电的RS-485系统在上电时常常出现部分节点不正常、但每次又不完全一样、这是由于对RS-485的收发控制端TC设计不合理、造成微系统上电时节点收发状态混乱从而导致总线堵塞、改进的方法是将各微系统加装电源开关然后分别上电; 4)系统基本正常但偶尔会出现通信失败、一般是由于网络施工不合理导致系统可靠性处于临界状态、最好改变走线或增加中继模块、应急方法之一是将出现失败的节点更换成性能更优异的芯片; 23 5)因MCU故障导致TC端处于长发状态而将总线拉死一片、提醒读者不要忘记对TC端的检查、尽管RS-485规定差模电压大于200mV即能正常工作、但实际测量:一个运行良好的系统其差模电压一般在1.2V左右(因网络分布、速率的差异有可能使差模电压在0.8~1.5V范围内)。 24
本文档为【rs485通信串口协议】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_597436
暂无简介~
格式:doc
大小:41KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-10-24
浏览量:23