在RS-485多机通信中,往往会出现多个从机同时向主机发送数据。比如在RS-485温度测量系统中,多个RS-485从机的温度测量值只要超过报警点就立即向主机发送报警信息,但是这也可能会出现2个或者2个以上的RS-485从机同时向主机发送报警信息。如果不采取RS-485竞争解决机制,那么就可能会导致2个从机同时发送的信息重叠,这样主机就无法接收到正确的信号,严重的还可能导致整个RS-485系统的崩溃。传统的解决方案是由主机循环轮流对各个RS-485下位机点名通信,这虽然解决了RS-485多从机的竞争,但是同时延误了实时报警信息。本文介绍的新方案之一能够识别从机发送信号的时间顺序,先发送的从机信号可以同时抑制其他从机的RS-485发送信号,只有等先发送信号的从机发送完毕之后其它从机才能够发送RS-485信号。本文介绍的新方案之二可以让下位机能够主动发送自己的地址,这样就无需主机对各从机进行轮流查询。本文介绍的新方案之三是将从机转换为不同的波特率,由于主机每次只能够接收某一种波特率的信号,这样就完全避免了多从机的竞争。本文中的“上位机”即“主机”,“下位机”即“从机”。
1、在RS-485总线中接入RS-485智能共享器
2路RS-485对1路RS-485智能共享器(型号:HUB2485Z)本来是用于两个RS-485上位机共同控制一个RS-485下位机的通信连接,在这里我们将HUB2485Z用于两台下位机的RS-485口共享一台上位机的RS-485口。HUB2485Z使RS-485总线同时接2个从机(下位机)。HUB2485Z已经有2个下位机RS-485(1)和RS-485(2)的插座(DB-9针并且配接线端子)和1个上位机的接线端子,无需修改软件、5V供电。HUB2485Z适用于两台下位机的RS-485口同时驱动一台上位机的RS-485口。HUB2485Z的外型为DB-9(针)/ DB-9(针)转接盒大小,其中两个DB-9针的RS-485口均配接线端子。两个DB-9针的下位机RS-485口,如图RS-485(1)和RS-485(2)是完全一样的,可以互换。上位机RS-485为接线端子,位于如图产品的上侧面,与电源接线端子在一起。HUB2485Z需要外接5V电源,配套提供。
波仕HUB2485Z智能RS-485集线器能够识别两个下位机RS-485(1)和RS-485(2)的发送顺序,避免同时发送导致的系统瘫痪。也就是说,即使两个下位机正在同时发送,HUB2485Z会选取发送开始时间领先的下位机正确发送数据,而只有等到这一个下位机的数据发送完毕后,另外一个下位机才可以开始发送数据。HUB2485Z的具有双向通信功能,当上位机发送时,两个下位机同时接收到相同的数据,并不区分地址。
图2 RS-485智能共享器使用布线图
在图2中,举例说明了同时接4个RS-485下位机的布线图,实际上还可以一直继续接下去。以接4个下位机为例,下位机4和下位机3分别接入3号HUB2485Z的RS-485(1)和RS-485(2)口,共享的RS-485口再级联接入另外一个2号HUB2485Z的RS-485(2)口,2号HUB2485Z的RS-485(1)接下位机2。以此类推,2号HUB2485Z的RS-485(2)口接下位机2,共享的RS-485接到1号HUB2485Z的RS-485(2),1号HUB2485Z的RS-485(1)接下位机1。在这样的布线结构中,每一个下位机都接入到了HUB2485Z共享器,由于HUB2485Z是可以级联的,所以非常灵活地接入多个下位机。实际上,1号HUB2485Z的RS-485(1)也可以继续级联新的HUB2485Z。
2、在RS-485总线中接入RS-485地址转换器
传统的RS-485多机通信方案是每次都由主机循环轮流对各个RS-485下位机点名通信,主机先发送被呼叫的从机的地址,总线中每一个从机都将这个地址信号与自己的地址进行比较,地址一样就继续也主机通信,不一样就不与主机通信。这样可能存在的问题就是从机发送的信号是可以不带本从机地址的,因为主机已经发送了从机地址信息,紧接着收到的从机信号一定就是这个被点名的从机的信号,而且从机信号不带地址可以极大简化主机的信号处理程序。从机发送的信号不带从机地址就会限制RS-485多机通信的实时性,比如RS-485多机温度测量系统就不能够实时报警,因为主机不知道发送报警信号的从机的地址。[page]
波仕电子的DIZ485地址串口转换器用于实现串口(同时支持RS-232和RS-485)之间的带地址的转换。通过跳线设置地址编码,DIZ485可以将串口接收到的数据附加上地址编码发送出去,也可以将带地址编码的串口数据送到对应地址的转换器的串口。 DIZ485与其它同类产品相比的特点是可以识别下位机的地址、下位机可以主动发送带地址的数据。 波仕DIZ485地址串口转换器的外形为DB-9/DB-9转接盒大小,如图,产品左边为主串口,包括DB-9孔的RS-232口,和标明为A1、B1的RS-485口。右边为从串口,包括DB-9针的RS-232口,和标明为A2、B2的RS-485口。左上侧J2、J1、J0为波特率设置的跳线,右上侧K2、K1、K0为地址编码设置的跳线,下面中间为5V电源接线端子。
DIZ485 使用非常方便。首先根据波特率进行波特率跳线设置,然后跳线设置本产品的地址。通信规则:主串口数据=地址码+从串口数据 如果主串口收到 ###1:1234567,那么地址为1的产品的从串口发送出 1234567(地址不是1的产品的从串口不发送任何数据),就是去帧头。地址码就是在K2、K1、K0跳线设置值的前面加3个井号(###)和后面加一个冒号(:)的英文字符。如果地址为1的产品的从串口收到abcdefg ,则主串口发送出###1:abcdefg 就是加帧头。
加入RS-485地址转换器可以使得RS-485从机可以随时主动向上位机发送消息,因为信号中自动加上了从机地址信息,这样主机就可以识别下位机。
3、在RS-485总线中接入串口波特率转换器
RS-485多机通信,本来是要求通信的双方波特率等通信格式一样才可以通信成功。可是为了解决在这种情况下出现RS-485多从机竞争的问题,波仕电子在世界上首次提出了一种多波特率的多机通信方式。本来是相同波特率的RS-485从机设备,我们人为地将从机进行串口波特率的转换。当多个从机都转换为不同的波特率后,由于每个RS-485从机发送信号的波特率不同,而主机同一时间只能够收到某一种波特率的信号,这样就自然避免了多从机同时发送的竞争问题。本节介绍如何实现串口波特率的转换。
串口波特率转换器用于实现不同波特率的RS-485/RS-232口的通信转换,纯硬件跳线设置,无需任何软件设置。串口波特率转换器的外形为DB-9/DB-9转接盒大小,如图4。串口波特率转换器的内部有一个带双串口的单片机。单片机自动完成两个串口之间的数据交换。单片机程序用C语言编写,核心功能就是先将两个串口UART1和UART2根据跳线设置的状态进行波特率等初始化设置,然后随时将UART1接收的数据立即送到UART2的发送区、以及将UART2接收的数据立即送到UART1的发送区。
位机串口A的波特率通过产品的J2、J1、J0来设置,下位机串口B的波特率通过产品的K2、K1、K0来设置,见表格。波特率转换器的两边的串口可以分别独立设置波特率,见下表。
DB-9孔RS-232口波特率设置 |
|
DB-9针RS-232口波特率设置 |
J2 |
J1 |
J0 |
波特率 |
K2 |
K1 |
K0 |
波特率 |
0 |
0 |
0 |
1200 |
0 |
0 |
0 |
1200 |
0 |
0 |
1 |
2400 |
0 |
0 |
1 |
2400 |
0 |
1 |
0 |
4800 |
0 |
1 |
0 |
4800 |
0 |
1 |
1 |
9600 |
0 |
1 |
1 |
9600 |
1 |
0 |
0 |
19200 |
1 |
0 |
0 |
19200 |
1 |
0 |
1 |
38400 |
1 |
0 |
1 |
38400 |
1 |
1 |
0 |
57600 |
1 |
1 |
0 |
57600 |
1 |
1 |
1 |
115200 |
1 |
1 |
1 |
115200 |
由串口波特率转换器实现的RS-485多机通信图与图3所示的“为RS-485下位机加上地址”的布线结构完全相同。由于每次主机通信程序只能够设置为某一种波特率,所以也就每次只能给与某一个从机进行通信,其它从机即使同时发送信号但由于波特率不一样所以也不会对主机产生影响。这种方案的优点之一在于完全无竞争,缺点是最多8个下位机,因为这种串口波特率转换器只能够提供8种不同的波特率。这种方案的优点之二在于如果用户自己可以修改从机的波特率,那么可以实现零成本的解决方案。
本文介绍的3种解决RS-485多从机竞争的方案可以形象地称为抢答、报名和调频。这3种方案各有特色,也各有局限性,但是互不排斥。也就是说,这3种方案还可以组合使用。
关键字:RS-485 多从机竞争 多机通信
引用地址:
RS-485多从机竞争的解决方案
推荐阅读最新更新时间:2024-05-02 22:15
RS-485 IC提高了电机控制电路中的系统可靠性和故障检测
应用独特的3通道RS-485收发器,显示许多不寻常的功能,可提高电机控制应用中的可靠性和故障检测。MAX3097和MAX3098专为电机轴编码器应用而设计,具有三个差分通道,用于处理光学编码器数据,±15kV ESD保护,共模抑制增强至-10和+13.2V,三个独立的故障报警标志,以及故障安全开路和短路检测。报警标志指示线路开路或短路情况、共模电压范围过大以及信号强度低。 现代工厂使用大型电动机来控制工厂运行所需的机器。为了提高灵活性和准确性,这些电动机有时由处理器控制。控制这些大型电机的电子设备必须设计成这样一种方式,即如果出现问题,电机将安全快速地关闭。未能检测到问题并充分控制电机可能会导致昂贵的设备损坏,以及受伤甚至死亡
[嵌入式]
基于RS-485总线的数据采集系统
1 硬件设计 1.1 系统整体框图 系统实质上是一个集散控制系统,更准确地说是一个远程数据采集系统,系统概念设计图如图1所示,系统整体框架图如图2所示。 1.2 系统模块设计 1.2.1 信号获取模块 系统采集大坝坝内各个方位的形变,这种形变反映出各个方位的压力值。选用NZS - 25系列差阻式应变计,它是一种大量程大应变计,适用于大坝及其他混凝土建筑物内部、钢结构等的应变量测量。它与一般压力传感器的结构不同,是通过测量比值而得到压力值,其基本结构如图3所示。 图3中,R1、R2为敏感电阻,其基准电阻值为40 ,在其没有受压时,2个电阻的阻值都不会发生变化,但是当
[单片机]
基于CAN控制器的对等式单片机多机系统的通信
摘要: 针对单片机多机系统主从式通信的缺点,提也了利用CAN控制器实现单片机多机系统对等式通信,并对其硬件组成原理、通信程序的设计做了详细的分析。
关键词: 单片机多机系统 “对等式”通信 控制器局域网(CAN)
关于单片机的多机通信,许多文章及相关书籍都有介绍,但就其多机通信的方式而言大多为“主从式”,这一通信方式限制了单片机功能的发挥及广泛的应用。虽然文献 利用巧秒的硬件手段实现了单片机多机之间的“对等式”通信,但其通信方式实质上仍是“主从式”。本文介绍了一种基于CAN控制器的单片机多机系统,从本质上实现了任意两机之间直接相互通信,从而克服了“主从式”多机通信的缺点。
1 CAN技术简
[工业控制]
基于DSP和FPGA的磁浮列车485通信研究
0 引言 在高速磁浮交通系统中,车载测速定位单元对车辆的位置和速度进行实时测量,并将位置和速度信号通过无线电系统传送至地面上的牵引控制系统和运行控制系统,以用于长定子直线同步电机牵引的反馈控制及车辆运行的指挥和安全防护。测速定位单元是牵引和运控系统闭环控制的核心和关键。 测速定位单元紧邻悬浮电磁铁及长定子绕组和铁心,处于悬浮磁场和牵引磁场中,电磁环境非常复杂,对其通信设备的电磁兼容性能提出了很高的要求。另外,为满足牵引控制系统的需求,测速定位信号的精度要求相当高。因此,对测速定位信号传输的速度、实时性及可靠性都有非常高的要求。 1 同步485的实现方法 考虑到测速定位单元的工作环境及通信功能需求,在选择其与车载
[嵌入式]
您的RS-485收发器在户外通信效果如何?
RS-485收发器设计旨在应对恶劣的工作环境。除了能够适应嘈杂的工厂环境外,RS-485收发器还可以在户外环境中稳定运行,抵御雷击等导致的电压浪涌对通信的干扰。 那么,您如何确信您的RS-485收发器能够应对高电压浪涌事件? 为帮助工程师确定系统的浪涌保护等级,国际电工委员会设立了IEC 61000-4-5浪涌标准。IEC 61000-4-5标准对户外通信应用至关重要,如远端射频单元、空调单元和互联网协议(IP)监控摄像头。 为确保您的系统能够应对各种突发的自然状况,您需要认真了解这一标准。本文重点介绍了防止系统免遭户外浪涌因素影响的多种保护方法,同时还说明了如何优化设计,实现节省空间、减少组件的效果。 在运行中实
[网络通信]
RS-485通信卡及其应用
摘要: 本文介绍了RS-485通信卡方式的特点、使用方法以及在实际中采用VB5编程实现微机与单片机通信的方法和应注意的问题。 关键词: RS-485通信 微机串行通信 VB通信编程 在工业控制领域,数据采集与传输是经常性的工作,RS-485协议通信由于采用差分方式接收,对共模干扰抑制能力强,故广泛应用于工业控制领域。 实现RS-485通信的两种方法 微机标准通信适配器满足RS-232C协议标准,在波形畸变小于10%的条件下,最大传输距离为50英尺(约15.24米),最高传输速率小于20kbps,无法满足工业现场数
[工业控制]
基于CAN总线与RS-485的DSP通信接口设计
1.概述
现场总线是一种开放式、数字化、多点通信的控制系统局域网络,是当今自动化领域中最具有应用前景的技术之一,CAN总线是现场总线中的应用热点。由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制简单、扩展能力强、系统成本低等特点,越来越受到人们的关注。
TI公司的TMS320LF2407型DSP微控制器以其处理能力强,外设功能模块集成度高及存储器容量大等特点广泛应用于数字化控制与通信领域。CAN总线控制器与TMS320LF2407微控制器连接,可以实现CAN总线的通信。TMS320LF2407微控制器内嵌的异步串行口(SCI)支持CPU与其它使用标准格式的异步外设之间的数字通讯,通过RS-485接口
[嵌入式]
UART、RS-232、RS-422、RS-485的细微差别
通讯问题,和交通问题一样,也有高速、低速、拥堵、中断等等各种情况。如果把串口通讯比做交通,UART比作车站,那么一帧的数据就好比汽车。汽车跑在路上,要遵守交通规则。如果是市内,一般限速30、40,而高速公路则可以到120。而汽车走什么路,限速多少,就要看协议怎么规定了。常见的串口协议有RS-232、RS-422、RS-485等,他们之间有何细微差别?下面我们就一起来探讨一下。
一、UART是什么
UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART,是一种异步收发传输器,是设备间进行异步通信的关键模块。UART负责处理数据
[嵌入式]