RS-485通讯中继器的设计

RS-485通讯中继器的设计

ID:40568728

大小:33.00 KB

页数:4页

时间:2019-08-04

RS-485通讯中继器的设计_第1页
RS-485通讯中继器的设计_第2页
RS-485通讯中继器的设计_第3页
RS-485通讯中继器的设计_第4页
资源描述:

《RS-485通讯中继器的设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、RS-485通讯中继器的设计1引言RS-485是一种平衡传送的串行接口标准,比最早的采用非平衡方式传送的RS-232串行接口标准在电气指标上有了大幅度的提高。由于RS-485总线通讯距离远,抗干扰能力强,结构简单,可靠性高,广泛应用于多机远距离通信系统中。其最大传输距离在数据传输速率为100kbps时为120m,传输速率为10kbps时为1.2km,传输速率降为300bps时可超过4km。最大传输距离的增加是牺牲数据传输速率为代价的。如果即要保证传输速度,而传输距离又超过RS-485的可靠通讯距离时,必须加中继器延长其通讯距离。中继器的设计方案很多,本文采用DALLAS公司具有双串行通读口

2、的单片机DS80C520来实现。该方法硬件电路特别简单,软件设计方便,大大提高了中继器的可靠性。2工作原理DS80C520完全兼容8051的指令,外接晶振频率最高可达33MHz,在相同的晶振频率下其指令平均执行速度是8051的2.5倍,而且具有电源失效自动复位和内置看门狗电路,低功耗设计,可靠性高。管脚的排列和8051完全相同,通过管脚复用,DS80C520具有13个中断源(其中有6个外部中断)、3个定时器和两个全双工的串行端口,大大扩展了系统的资源[1]。利用它的两个串行端口和两片SN75LBC184相连,可以很方便地设计一个高传输速率、高可靠性的RS-485中继器,其硬件电路如图1所示

3、。SN75LBC184是具有瞬变高压抑制功能的RS-485接口芯片,能抗雷击,防静电放电,避免因交流电故障引起的非正常高压脉冲冲击。最高传输速率可达250kbps。在传输速率为9600b/s,传输距离在1km以内,用SN75LBC184作为接口芯片的RS-485总线上理论上可以挂64个网络节点[2]。实际使用时,因线缆长度、线径、网络分布、传输速率不同,实际节点数均达不到理论值,可达到70%左右。位于总线两端的差分端口A与B之间跨接120Ω匹配电阻,以减少由于不匹配而引起的反射、吸收噪声,有效地抑制了噪声干扰。单片机DS80C520通过控制收发器SN75LBC184的收发使能端(RE#、D

4、E)作收发控制:当收使能端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脚送

5、入串行接口0的接收缓冲区SBUF0。单片机将SBUF0中的数据转到串行接口1的发送缓冲区SBUF1,然后让U3的发送使能端(DE)有效,从而把U2一侧的总线上的数据完整地转送到U3一侧的总线上,实现了中继器的功能。反之亦然。 3软件设计由于采用了具有两个串行口的单片机,中继器的软件设计也得到了简化。主要由三部分组成:一个主程序和两个中断子程序,结构非常清晰。在主程序中,主要是设置串口的波特率(这里设置为9600bps)和看门狗复位时间,打开两个串口的中断,然后进入等待循环状态,等待串口接收中断的产生(RI0或RI1为“1”),其流程图如图2所示。在打开两个串口的中断之前,先对P3.3和P1

6、.5清“0”,让两片SN75LBC184处于接收状态,并让串口工作在方式3。在“等待”的过程中如果不断给P3.6脚输出高、低变化的电平,则LED3就会不停地闪烁,从而可以断定单片机在正常工作。因为串口工作在方式3,11位异步通信方式(1个起始位,8个数据位,1个附加的第9位和1个停止位),8位数据装入接收缓冲区,第9位放在对应的RB8(0/1)中,其他两位忽略,发送时收发器会自动加上。第9位数据通常用作数据的奇偶校验位,或在多机通信中作为地址/数据的特征位。当单片机收到第11位数据时,接收中断标志位RI(0/1)会自动置“1”。以串口0接收串口1发送为例:当RI0为“1”时,程序就进入串口

7、0接收中断子程序,其流程图如图3所示。进入中断子程序后,首先保护现场,并关掉所有的中断,将RI0清“0”(RI(0/1)不能自动清“0”,只能软件清“0”)。然后将串口0接收缓冲区SBUF0中的8位数据装入串口1的发送缓冲区SBUF1,并将第9位数据从RB8_0转移到RB8_1中,如有必要也可以先做奇偶校验。此时,使P1.5输出高电平,启动U3发送数据到总线。当数据发送完毕时,串口1会自动将发送完毕状态位TI1置“1”,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。