




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
RS485的使用一 一. 485接口芯片简介1.一般说明MAX481/MAX483/MAX485是用于RS485通信的小功率收发器,它们都含有一个驱动器和一个接收器。MAX483的特点是具有限斜率的驱动器,这样可以使电磁干扰(EMI)减至最小,并减小因电缆终端不匹配而产生的影响,因此可以高达250Kbps的速度无误差的传送数据。MAX481和MAX485的驱动器不是限斜率的,允许它们以每秒2.5Mbps的速度发送数据。这些收发器的工作电流在120500uA之间。此外MAX481/MAX483有一个低电流的关闭方式,在此方式下,它们仅需要0.1uA的工作电流。所以这些收发器只需一个+5V的电源。这些驱动器具有短路电流限制和使用热关闭控制电路进行超功耗保护。在超过功耗时,热关闭电路将驱动器的输出端置于高阻状态。接收器输入端具有自动防止故障的特性,当输入端开路时,确保输出为高电平。MAX481/MAX483/MAX485是为半双工应用而设计的。1) 应用范围 * 低功率RS485收发器 * 电平变换器 * EMI灵敏情况下应用的收发器 * 工业控制局部区域网络2) 特点 * 无误差数据传送的限斜率驱动器(MAX483) * 0.1uA低电流关闭方式(MAX481/MAX483) * 低静态电流:120uA(MAX483),300uA(MAX481/MAX485) * -7+12V共模输入电压范围 * 三态输出 * 30ns传输延时,5ns传输延时偏差(MAX481/MAX485) * 半双工工作方式 * 工作电源为单一+5V * 总线可接32个收发器(MAX485) * 限流和热敏控制电路为驱动器提供过载保护3) 引脚排列,引脚说明和典型工作电路 MAX481/MAX483/MAX485的引脚排列和典型工作电路分别如图24所示: 图24引脚说明如下表22所示: MAX481/MAX483/MAX485引脚说明MAX481/MAX483/MAX485引脚 名称 功能 1 RO接收器输出端。若A大于B200mVRO为高,若相反RO为低 2 接收器输出使能端。当为低时RO有效,为高时RO为高阻状态 3 DE驱动器输出使能端。 4 DI驱动器输入端。 5 GND地 6 A 同向接收器输入和同向驱动器输出端 7 B反向接收器输入和反向驱动器输出端 8 VCC正电源输入端:4.75V5.25V2. RS-485的优点 我们可以用RS-232接口连接两台计算机,但是,当你需要在一个更长的距离上或者比RS-232更快的速度下进行传输的时候,RS-485就是一个解决的办法。RS-485与RS-232相比有很多优点:1) 成本低驱动器和接收器价格便宜,并且只需要单一的一个+5V(或者更低)的电源来产生差动输出需要的最小1.5V的压差。与之相对应,RS-232的最小+5V与-5V输出需要双电源或者一个价格昂贵的接口芯片,这个接口芯片可以生成这些电源。2) 网络能力RS-485是一个多引出线接口,这个接口可以有多个驱动器和接受器,而不是限制为两台设备。利用高阻抗接受器,一个RS-485连接可以最多有256个接点。3) 长距离连接一个RS-485连接最长可以达到4000ft,而RS-232的典型距离限制为50到100ft。4) 快速比特率可以高达10Mbps。电缆长度和比特率是有关的,较低的比特率允许较长的电缆。二. 单片机RS485多机通讯的实现摘要 本文介绍一种能利用RS485电气特性和简单的结构方式,采用自定义串行通信协议,实现单片机RS485多机通讯的方法和技巧。关键词单片机,RS485总线,总线冲突,串行通信1简介RS485串行总线接口标准以差分平衡方式传输信号,具有很强的抗共模干扰的能力,允许一对双绞线上一个发送器驱动多个负载设备。工业现场控制系统中一般都采用该总线标准进行数据传输,而且一般采用RS485串行总线接口标准的系统都使用8044芯片作为通信控制器或各分机的CPU。8044芯片内部集成了SDLC,HDLC等通信协议,并且集成了相应的硬件电路,通过硬件电路和标准协议的配合,使系统的通讯准确、可靠、快速。8044在市场上日渐稀少,虽然有8344可替代,但几百元的价位与普通单片机几元至几十元的价位相差甚远,用户在开发一般的单片机应用系统时,都希望能用简单的电路和简单的通信协议完成数据交换。譬如:利用单片机本身所提供的简单串行接口,加上总线驱动器如SN75176等组合成简单的RS485通讯网络。本文所述的方法已成功地应用于工程项目,一台主机与60台从机通讯,通讯波特率达64KBPS。2总线驱动器芯片SN75176常用的RS485总线驱动芯片有SN75174,SN75175,SN75176。SN75176芯片有一个发送器和一个接收器,非常适合作为RS485总线驱动芯片。SN75176及其逻辑如图1所示。图1SN75176芯片及其逻辑关系3RS485方式构成的多机通信原理在由单片机构成的多机串行通信系统中,一般采用主从式结构:从机不主动发送命令或数据,一切都由主机控制。并且在一个多机通信系统中,只有一台单机作为主机,各台从机之间不能相互通讯,即使有信息交换也必须通过主机转发。采用RS485构成的多机通讯原理框图,如图2所示。图2采用RS485构成的多机通讯原理框图在总线末端接一个匹配电阻,吸收总线上的反射信号,保证正常传输信号干净、无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。当总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响。将总线上差分信号的正端A+和+5电源间接一个10K的电阻;正端A+和负端B-间接一个10K的电阻;负端B-和地间接一个10K的电阻,形成一个电阻网络。当总线上没有信号传输时,正端A+的电平大约为3.2V,负端B-的电平大约为1.6V,即使有干扰信号,却很难产生串行通信的起始信号0,从而增加了总线抗干扰的能力。4通信规则由于RS485通讯是一种半双工通讯,发送和接收共用同一物理信道。在任意时刻只允许一台单机处于发送状态。因此要求应答的单机必须在侦听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答。半双工通讯对主机和从机的发送和接收时序有严格的要求。如果在时序上配合不好,就会发生总线冲突,使整个系统的通讯瘫痪,无法正常工作。要做到总线上的设备在时序上的严格配合,必须要遵从以下几项原则:1) 复位时,主从机都应该处于接收状态。SN75176芯片的发送和接收功能转换是由芯片的 RE* ,DE端控制的。RE*=1,DE=1时,SN75176发送状态;RE*=0,DE=0时,SN75176处于接收状态。一般使用单片机的一根口线连接RE*,DE端。在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息。因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入SN75176的控制端,使上电时SN75176处于接收状态。另外,在主从机软件上也应附加若干处理措施,如:上电时或正式通讯之前,对串行口做几次空操作,清除端口的非法数据和命令。2) 控制端RE*,DE的信号的有效脉宽应该大于发送或接收一帧信号的宽度。在RS232,RS422等全双工通讯过程中,发送和接收信号分别在不同的物理链路上传输,发送端始终为发送端,接收端始终为接收端,不存在发送、接收控制信号切换问题。在RS485半双工通讯中,由于SN75176的发送和接收都由同一器件完成,并且发送和接收使用同一物理链路,必须对控制信号进行切换。控制信号何时为高电平,何时为低电平,一般以单片机的TI,RI信号作参考。a发送时,检测TI是否建立起来,当TI为高电平后关闭发送功能转为接收功能;b接收时,检测RI是否建立起来,当RI为高电平后,接收完毕,又可以转为发送。在理论上虽然行得通,但在实际联调中却出现传输数据时对时错的现象。根据查证有关资料,并在联调中借助存储示波器反复测试,才发现一个值得注意的问题,我们可以查看单片机的时序:图3串行口模式3时序图单片机在串行口发送数据时,只要将8位数据位传送完毕,TI标志即建立,但此时应发送的第九位数据位(若发送地址帧时)和停止位尚未发出。如果在这是关闭发送控制,势必造成发送帧数据不完整。如果单片机多机通讯采用较高的波特率,几条操作指令的延时就可能超过2位(或1位)数据的发送时间,问题或许不会出现。但是如果采用较低波特率,如9600,发送一位数据需100s左右,单靠几条操作指令的延时远远不够,问题就明显地暴露出来。接收数据时也同样如此,单片机在接收完8个数据位后就建立起RI信号,但此时还未接收到第九位数据位(若接收地址帧时)和停止位。所以,接收端必须延时大于2位数据位的时间(1位数据位时间=1/波特率),再作应答,否则会发生总线冲突。3) 总线上所连接的各单机的发送控制信号在时序上完全隔开。为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离。总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开,避免总线争端。程序流程框图,参见图4。其中:a)为发送流程图;b)为接收流程图。图4程序流程图注:延时T秒的取值(1) 传送地址帧时,T2X(1/波特率),可以选取T=2.5X(1/波特率)。(2) 传送数据帧时,T1X(1/波特率),可以选取T=1.5X(1/波特率)。三. RS-485通讯常见问题1. MAX488/MAX490在点对点通信中工作很正常,但在点对多点通信时却无法正常通信是由于MAX488/MAX490没有发送使能控制,因而其输出无法处于高阻态,当多个输出被连接在一起时(即点对多点通信时),差分输出信号线被多个发送器驱动(通常为TXD=1对应的电平状态);当某个节点开始通信,且发送TXD=0对应的差分电平时,A,B两线上将形成很大的短路电流,若长时间工作,则接口芯片将损坏;而这种情况不会在点对点通信中发生,且不会出现在点对多点通信中的处于点的一方,这也是象MAX488/MAX490以及其它一些没有发送使能控制的接口的适用范围。以上是造成这个问题的原因,当然,类似情况也会出现在那些带使能控制而软件没有编程控制使能的接口芯片中。2. RS-485/RS-422接口在停止通信时接收器仍有数据输出是由于RS-485/RS-422在发送数据完成后,要求所有的发送使能控制信号关闭且保持接收使能有效,此时,总线驱动器进入高阻状态且接收器能够监测总线上是否有新的通信数据。但是由于此时总线处于无源驱动状态(若总线有终端匹配电阻时,A和B线的差分电平为0,接收器的输出不确定,且对AB线上的差分信号的变化很敏感;若无终端匹配,则总线处于高阻态,接收器的输出不确定),容易受到外界的噪声干扰。当噪声电压超过输入信号门限时(典型值200mV),接收器将输出数据,导致对应的UART接收无效的数据,使紧接着的正常通讯出错;另外一种情况可能发生在打开/关闭发送使能控制的瞬间,使接收器输出信号,也会导致UART错误地接收。解决方法:1)在通讯总线上采用同相输入端上拉(A线)、反相输入端下拉(B线)的方法对总线进行钳位,保证接收器输出为固定的“1”电平;2)采用内置防故障模式的MAX308x系列的接口产品替换该接口电路;3)通过软件方式消除,即在通信数据包内增加2-5个起始同步字节,只有在满足同步头后才开始真正的数据通讯。3. 采用RS-485/RS422接口通讯时,在什么条件下需要采用终端匹配?电阻值如何确定?如何配置终端匹配电阻?在长线信号传输时,一般为了避免信号的反射和回波,需要在接收端接入终端匹配电阻。其终端匹配电阻值取决于电缆的阻抗特性,与电缆的长度无关。RS-485/RS-422一般采用双绞线(屏蔽或非屏蔽)连接,终端电阻一般介于100至140之间,典型值为120。在实际配置时,在电缆的两个终端节点上,即最近端和最远端,各接入一个终端电阻,而处于中间部分的节点则不能接入终端电阻,否则将导致通讯出错。4为什么在RS-485/RS-422构成的通信网络中,传输数据包时经常出现多出一个数据或少一个数据的现象?一般在点-多点通信系统中会经常出现这个问题, 归纳出现的原因大致如下:1) 在半双工通信中,一般可以通过禁止RS-485收发器接收使能或UART内部的接收使能,以保证不出现自发自收,进而减少CPU的开销。当数据发送完成后,RS-485接收器和内部UART将回到允许接收状态而发送器将关闭,在此状态切换过程中,可能出现RS-485接收器输出低电平跳变,而此时UART已经允许接收,从而导致多接收一个字节。正确处理方法应该为:从接收状态向发送状态转换时,先禁止内部UART的接收使能,再打开接口的发送器使能,然后,允许内部UART的发送使能,开始发送数据;从发送状态向接收状态转换时,先禁止内部UART的发送使能,再关闭接口的发送使能(如果接口的接收使能被禁止,则紧跟着打开接口的接收使能),在延时2至4个NOP指令后,才打开内部UART的接收使能。2)对于大多数UART来说,内部发送缓冲器空会产生中断或置对应的标志位,但此时数据不一定真的发送完成,因为数据有可能还在输出移位寄存器中。如果仅靠发送缓冲的状态来判断一包数据是否发送完成,从而决定是否关闭内部UART的发送使能和接口的发送使能,则这个数据包的最后一个字节将不会发送到总线上,以致对方会少接收一个字节。此类问题会出现在MAX3100、MAX3140和PIC系列单片机等类似情况的UART中,请用户应用中注意此类问题。5MAX232/MAX202接口输出的电平为何比计算机输出的RS-232电平低?答:由于计算机内部的RS-232接口多数采用12V供电的接口芯片,而MAX232/MAX202及其它多数Maxim的RS-232接口都是采用单电源(+3.3V或+5V)供电,由内部的电荷泵电路(倍压和倍压反相两种方式)产生接口所需的电源,这样就简化了电源设计。由于工作在倍压和倍压反相的电荷泵输出电压最高为2Vin(空载时),且带载能力有限,不管怎样,多数Maxim接口驱动器还是能够保证幅值在5V以上,以满足RS-232接口端3V的接收门限值。四. 抗干扰通常,485通讯具有较高的抗干扰能力,但是在工业现场环境恶劣的场合,难免会受到不同 程度的干扰,为此,一般可使用120欧线路匹配电阻提高抗干扰能力。而某些场合,例如有变频器的场合,可能高频干扰更严重,这个方法可能无用。这时,可增加两个偏置电阻:A端对5V或12V接一个上拉偏置;B端对地接一个下拉偏置,使AB端在静态时有一个1V左右的压差,可大大提高抗干扰能力五. RS-485通讯中继器的设计1 引言RS-485是一种平衡传送的串行接口标准,比最早的采用非平衡方式传送的RS-232串行接口标准在电气指标上有了大幅度的提高。由于RS-485总线通讯距离远,抗干扰能力强,结构简单,可靠性高,广泛应用于多机远距离通信系统中。其最大传输距离在数据传输速率为100kbps时为120m,传输速率为10kbps时为1.2km,传输速率降为300bps时可超过4km。最大传输距离的增加是牺牲数据传输速率为代价的。如果即要保证传输速度,而传输距离又超过RS-485的可靠通讯距离时,必须加中继器延长其通讯距离。中继器的设计方案很多,本文采用DALLAS公司具有双串行通读口的单片机DS80C520来实现。该方法硬件电路特别简单,软件设计方便,大大提高了中继器的可靠性。2 工作原理图1 中继器硬件电原理图DS80C520完全兼容8051的指令,外接晶振频率最高可达33MHz,在相同的晶振频率下其指令平均执行速度是8051的2.5倍,而且具有电源失效自动复位和内置看门狗电路,低功耗设计,可靠性高。管脚的排列和8051完全相同,通过管脚复用,DS80C520具有13个中断源(其中有6个外部中断)、3个定时器和两个全双工的串行端口,大大扩展了系统的资源1。利用它的两个串行端口和两片SN75LBC184相连,可以很方便地设计一个高传输速率、高可靠性的RS-485中继器,其硬件电路如图1所示。SN75LBC184是具有瞬变高压抑制功能的RS-485接口芯片,能抗雷击,防静电放电,避免因交流电故障引起的非正常高压脉冲冲击。最高传输速率可达250kbps。在传输速率为9600b/s,传输距离在1km以内,用SN75LBC184作为接口芯片的RS-485总线上理论上可以挂64个网络节点2。实际使用时,因线缆长度、线径、网络分布、传输速率不同,实际节点数均达不到理论值,可达到70%左右。位于总线两端的差分端口A与B之间跨接120匹配电阻,以减少由于不匹配而引起的反射、吸收噪声,有效地抑制了噪声干扰。单片机DS80C520通过控制收发器SN75LBC184的收发使能端(RE#、DE)作收发控制:当收使能端RE#为“0”时,收发器准备从A、B端(和总线相连)接收来自总线的数据,并通过R端传给MCU;当发使能端DE为“1”时,收发器准备把从D端读入的数据通过A、B端发送到总线上。图中两片SN75LBC184的收发使能端(RE#、DE)各自相连,分别由单片机的P3.3口和P1.5口控制,工作在半双工方式下。LED1和LED2用来指示TXD0和TXD1上是否有数据发送。LED3用来指示单片机的工作状态是否正常。中继器的工作原理为:两片SN75LBC184的收发使能端一开始给低电平,准备接收数据。当其中一个收发器收到数据时,比如U2,U2通过R端将数据经单片机的RXD0脚送入串行接口0的接收缓冲区SBUF0。单片机将SBUF0中的数据转到串行接口1的发送缓冲区SBUF1,然后让U3的发送使能端(DE)有效,从而把U2一侧的总线上的数据完整地转送到U3一侧的总线上,实现了中继器的功能。反之亦然。开始初始化两个串口均处于接收状态等待图2 主程序流程图YN中断将串口0收到的9位数据送到串口1的发送缓冲区中使P1.5输出高电平串口1转发9位数据到总线返回TI1=1?TI1和P1.5清0,串口1处于接收状态,并设置其中断优先级高于串口0图3 串口0接收中断子程序流程图3 软件设计由于采用了具有两个串行口的单片机,中继器的软件设计也得到了简化。主要由三部分组成:一个主程序和两个中断子程序,结构非常清晰。在主程序中,主要是设置串口的波特率(这里设置为9600bps)和看门狗复位时间,打开两个串口的中断,然后进入等待循环状态,等待串口接收中断的产生(RI0或RI1为“1”),其流程图如图2所示。在打开两个串口的中断之前,先对P3.3和P1.5清“0”,让两片SN75LBC1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 睡眠监测助手App创新创业项目商业计划书
- 法律旅游线路创新创业项目商业计划书
- 游戏物品交易创新创业项目商业计划书
- 乳制品国际合作创新创业项目商业计划书
- 演出经纪人之《演出经纪实务》考前冲刺模拟题库含答案详解【考试直接用】
- 2025年教师招聘之《小学教师招聘》题库试题附完整答案详解(全优)
- 2025内蒙古呼伦贝尔农垦集团有限公司社会招聘笔试模拟附答案详解(突破训练)
- 2025内蒙古呼伦贝尔扎兰屯市教育系统“校园引才”27人笔试备考及1套完整答案详解
- 教师招聘之《幼儿教师招聘》考前冲刺分析及答案详解(考点梳理)
- 演出经纪人之《演出经纪实务》能力提升B卷题库含答案详解(模拟题)
- 消防员消费观教育
- 玉竹栽培技术课件
- 绿色金融培训课件
- 煤矿掘进科培训课件
- 2026《衡中学案》高考一轮总复习 生物学 全书
- 《教室不乱跑》课件
- 2025混凝土建材购销合同范本
- 支教考试笔试试题真题及答案
- 2024-2025学年四年级第一学期语文教学计划及教学进度表
- 餐饮公司中标协议书
- 入股瑜伽店协议书
评论
0/150
提交评论