微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 基于RS-485总线的多主机通信方法

基于RS-485总线的多主机通信方法

时间:12-28 来源:电子产品世界 点击:

摘要:针对RS-485总线多个节点之间无法自由通信的问题,介绍一种多主机通信方法,以探讨总线接口电路和组网方式,并通过设计通信协议和规划通信过程,完成相关程序设计。此方法在某装备模拟项目中得到应用,取得了预期的效果。

引言

RS-485接口以其结构简单、通信速率高、传输距离远、成本低廉等优点在现场总线中得到广泛应用。传统的RS-485总线要求在同一时刻只能有一个节点进行数据发送,为此多采用一主多从方式或分时复用方式。一主多从方式,即网络中有一个主节点和若干个从节点,由主节点轮询各个从节点以实现数据通信。分时复用方式,即总线控制权分时交由各个节点使用,各节点按照预先分配的时间段发起通信。遇到节点主动发送实时要求高,节点数目不确定,且各个节点通信负荷不均衡等通信系统时,上述两种通信模式的总线利用率和实时性都相对较低。在模拟器材通信中,经常会遇到各节点不定期、多批次主动发起通信的情况,在应用RS-485网络时显得较为不便。为此,需要研究一种基于RS-485总线的多主机通信方法,并在模拟训练中得到应用,以取得良好效果。

1 接口电路

RS-485 接口电路的主要功能是将来自微控制器(MCU)的发送信号TX通过“发送器”转换成通讯网络中的差分信号,将通讯网络中的差分信号通过“接收器”转换成MCU接收的RX信号。任一时刻,RS-485收发器只能够工作在“接收”或“发送”两种模式之一,因此,必须为RS-485 接口电路增加一个收/发逻辑控制电路。另外,RS-485接口电路的附加保护措施也是必须考虑的环节。


如图1所示为我们设计的RS-485总线接口电路,核心芯片为SP3485,该芯片为+3.3V低功耗半双工收发器,满足RS-485和RS-422串行协议的要求,数据传输速率可高达10Mbps(带负载),与Sipex的SP481、SP483和SP485的管脚互相兼容,同时兼容工业标准规范。SP3485发送器的输出是差分输出,空载时输出电压的大小为0V~+3.3V,即使在差分输出连接了54Ω负载的条件下,发送器仍可保证输出电压大于1.5V。发送器输出最大250mA ISC的限制使SP3485可以承受-7.0V~+12.0V共模范围内的任何短路情况,保护IC不受损坏。SP3485接收器的输入是差分输入,输入灵敏度可低至±200mV。接收器的输入电阻通常为15k?(最小为12k?)。-7V~+12V的宽共模电压范围允许系统之间存在大的零电位偏差。SP3485接收器还具有故障自动保护(fail-safe)特性,可在输入悬空时使输出保持在高电平状态。

控制该电路工作的MCU采用STM32F103VET6,该芯片为100引脚LQFP封装,采用Cortex-M3内核,处理速度可达72MHz,具有64K RAM和512K Flash,支持CAN、I2C、 SPI、USART、USB等接口。其串行口通过RXD(即485_RX引脚)连接SP3485芯片的RO引脚,通过TXD(即485_TX引脚)连接芯片的DI 引脚。MCU输出的485_DIR信号控制芯片的发送器/接收器使能,亦即控制通信方向。当485_DIR信号为“1”时,发送器工作,接收器失效,此时MCU可向RS-485 总线发送数据;485_DIR信号为“0”时,发送器失效,接收器工作,此时MCU可以接收来自RS-485 总线的数据。

为保证电路工作稳定可靠,电路中B引脚连接上拉电阻R2,A引脚连接下拉电阻R3,这样在上电或不传输数据时能保证RS485总线处于确定状态,为总线提供网络失效保护,以提高RS-485节点与网络的可靠性。

电阻R5为备用设计,如果将SP3485 连接至80C51或STM32F103VET6等MCU芯片的UART串口,则SP3485芯片的RO引脚不需要上拉(R5为0Ω);否则,需考虑将R5更换为约10K 的上拉电阻。

考虑到485总线在组网时,位于网络两端的节点需要增加120Ω终端电阻,我们在485_B和485_A之间放置了终端电阻R4,为便于使用者灵活调整节点在网络中的位置,我们还为终端电阻设计了选择跳线JP1。

2 组网方式

RS-485总线组网方式如图2所示,所有RS-485节点全部挂在一对RS-485总线上。注意RS-485总线不能够开叉、但是可以转弯。RS-485网络采用直线拓朴结构,需要安装2个终端匹配电阻。终端匹配电阻安装在RS-485 传输网络的两个端点,并联连接在A-B 引脚之间,其阻值要求等于传输电缆的特性阻抗(一般取值为120Ω)。终端匹配电阻主要作用是使总线的阻抗连续,以减少信号的反射,从而提高信号的传输质量。在矩距离(300 米以下)、低波特率(19200bps)数据传输时可不需终端匹配电阻。

3 多主机通信协议

稳定可靠的通信不仅依赖硬件环境,对通信协议也有很高的要求。为了解决RS-485总线多主机通信的问题,需要对RS-485通信协议进行研究。

3.1 帧结构

设定起始符为字符’$’。考虑到便于报文接收,起始符应与设备地址不

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

网站地图

Top