CN110531686B - 一种基于单主多从协议实现多主机的装置及其方法 - Google Patents

一种基于单主多从协议实现多主机的装置及其方法 Download PDF

Info

Publication number
CN110531686B
CN110531686B CN201910928584.1A CN201910928584A CN110531686B CN 110531686 B CN110531686 B CN 110531686B CN 201910928584 A CN201910928584 A CN 201910928584A CN 110531686 B CN110531686 B CN 110531686B
Authority
CN
China
Prior art keywords
data
processor
host
buffer area
slave
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910928584.1A
Other languages
English (en)
Other versions
CN110531686A (zh
Inventor
姜浩
周雪艳
张淑珍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xuzhou Keyun Intelligent Technology Co ltd
Original Assignee
Xuzhou Keyun Intelligent Technology Co ltd
Filing date
Publication date
Application filed by Xuzhou Keyun Intelligent Technology Co ltd filed Critical Xuzhou Keyun Intelligent Technology Co ltd
Priority to CN201910928584.1A priority Critical patent/CN110531686B/zh
Publication of CN110531686A publication Critical patent/CN110531686A/zh
Application granted granted Critical
Publication of CN110531686B publication Critical patent/CN110531686B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种基于单主多从协议实现多主机的装置及其方法,包括:处理器模块、至少两个主机接入模块、至少一个从机接入模块;所述主机接入模块和从机接入模块分别连接所述处理器模块,用于实现主机和处理器模块、从机和处理器模块之间的通信。本发明在原单主485网络上扩展1路主机接口,共具有3个RS485接口,每个口都采用电源隔离和信号隔离,带有TVS,自恢复保险丝。结合缓存协调的软件算法,当两主机同时通信时,另一路主机的数据被缓存,待总线空闲时,再通信另一路,完全解决了单主多从协议上多主机的通信故障问题,避免了数据碰撞,且合理利用了处理器内存资源和逻辑单元资源,具有通信可靠,效率高的有益效果。

Description

一种基于单主多从协议实现多主机的装置及其方法
技术领域
本发明涉及单主多从通信领域,具体涉及一种基于单主多从协议实现多主机的装置及其方法。
背景技术
随着物联网概念的提出,相关产业的落地,物联网产业迎来飞速的发展,遍布于世界各个角落的电子传感器,仪表,设备,控制器等等,电子终端设备都有接入物联网的需求,而绝大多数存量终端并不具备多余的接口来加入物联网,这就使得物联网最后1公里面临巨大挑战。
在存量市场上,仪表,控制器,传感器等等,有很大部分采用的是2线制485,而所支持的协议绝大多数是MODBUS协议,自由协议。Modbus协议采用的是简单的主从应答机制,即主机向从机发送请求,从机对主机的请求进行应答。该协议公开发表且无版权税,有许多公司的产品支持Modbus协议。同时,Modbus网络在通讯的时候有着较高的可靠性,并且其帧格式较简单,较易进行开发。按照Modbus协议规定,Modbus网络中只能存在一个主机,其余均为从机。这样一主多从的结构存在以下几个问题。首先,一旦主机出现故障,则整个网络陷于瘫痪,无法实现对从机的查询工作。其次,单主机网络架构无法实现多主机对于网络内部资源的访问。由于单主机网络架构存在以上的缺点,如何在Modbus网络中实现多主机共存,并实现多主机对于网络的访问的成为当今Modbus网络所需要解决的一个难题。
如果为了实现万物互联而替换硬件,更改程序,改变架构,那么将会耗费巨大的人力物力,并且也使得原有设备变的不稳定。单主多从协议不支持多主机,目前的通用做法就是强行在总线上加入主机,然后通过在主机上设置不同的采样周期,或者是通过某种手段监测总线空闲,来减少两个主机的冲突。然而这种手段并不可以绝对避免数据碰撞。为此,申请号为201721065206.8的中国专利,公开了一种基于Modbus协议的多主机通讯系统:当通讯系统运行时,多个Modbus通讯主机同时请求Modbus通讯从机信息时,利用中断处理方式,将多个Modbus通讯主机的通道分别进行标记,存入DMA缓冲区,进行轮询中断处理,首先将第一个Modbus通讯主机的请求信息通过RS485接口模块发送给Mod bus通讯从机,此后根据Modbus通讯协议在中断程序中进行Modbus通讯主机和Modbus通讯从机信息的交互,当交互完成后,释放Modbus通讯主机和Modbus通讯从机的通路,然后进行第二个Modbus通讯主机和Mod bus通讯从机的通讯交互,依此类推。
上述对多主机Modbus通讯通道的分别进行标记,存入DMA缓冲区,并轮询中断的方式,轮流进行主从交互,虽然实现了多主机对于网络内部资源的访问,来减少两个主机的冲突。然而这种手段并没有从根本上解决数据碰撞,且轮询中断、轮流进行主从交互的单线程执行方式,并没有合理利用单片机内存资源和逻辑单元资源,导致通信效率低下,迫切需要加以改进。
发明内容
为解决上述问题,本发明提供了一种基于单主多从协议实现多主机的装置及其方法。本发明在原单主485网络上扩展1路主机接口,共具有3个RS485接口,每个口都采用电源隔离和信号隔离,带有TVS,自恢复保险丝。结合缓存协调的软件算法,当两主机同时通信时,另一路主机的数据被缓存,待总线空闲时,再通信另一路,完全解决了单主多从协议上多主机的通信故障问题,避免了数据碰撞,且合理利用了处理器内存资源和逻辑单元资源,具有通信可靠,效率高的有益效果。
为实现所述技术目的,本发明的技术方案是:一种基于单主多从协议实现多主机的装置,包括:处理器模块、至少两个主机接入模块、至少一个从机接入模块;
所述主机接入模块和从机接入模块分别连接所述处理器模块,用于实现主机和处理器模块、从机和处理器模块之间的通信。
进一步,所述处理器模块包括型号为STC15W的处理器及其最小系统。
进一步,所述主机接入模块、从机接入模块采用型号为ADM2483的磁隔离RS485收发器。
进一步,还包括:
电源输入模块,采用型号为XL1509的线性稳压器,将输入电源降压至所述处理器的工作电压;
显示模块,用于主机和处理器、从机和处理器的通信状态显示以及处理器运行状态的显示。
进一步,还包括看门狗模块,看门狗模块包括型号为SGM706的多功能微处理器监控电路,及型号为MT9700的功率开关电路,用于防止不明原因导致的装置死机。
作为本发明的一种优选的实施方案,基于上述内容,还包括隔离电源模块,隔离电源模块采用型号为B0505S的电源模块,并连接所述功率开关电路,用于给各个主机接入模块、从机接入模块供给相互不相关的电源,隔断电的联系,防止相互间的干扰。
一种基于单主多从协议实现多主机的方法,使用了上述的基于单主多从协议实现多主机的装置,其包括以下步骤:
S1:处理器时刻监控各个主机发来的数据,并只存储1个通信帧的数据;
S2:处理器将以所述步骤S1中,来自不同主机的数据存储于不同的存储区,且不相互重叠;
S3:处理器检测这各个存储区是否有新的数据,如果有并且从机总线空闲,则发送此存储区的数据到从机总线;
S4:发送完毕后,开始等待从机总线的响应信息,如果在预设的时间内收到数据,则立即将接收到的数据发送到该存储区对应的主机处,如果没有接收到数据那么处理器继续监控存储区。
作为本发明的一种实施例,所述步骤S1中,有主机1和主机2两个主机接入处理器,对应存在第一主机接入模块和第二主机接入模块;
所述步骤S2中,处理器内部划分A存储区、B存储区两个存储区。
进一步,处理器将所述A存储区划分为A接收缓冲区、A发送缓冲区,处理器时刻监控第一主机接入模块,一旦接收到主机1发来的数据,立即存入A接收缓存区,同时监控A发送缓存区是否有数据,如果有立即发送回主机1;
B存储区划分为B接收缓冲区、B发送缓冲区,处理器时刻监控第二主机接入模块,一旦接收到主机2发来的数据,立即存入B接收缓存区,同时监控B发送缓存区是否有数据,如果有立即发送回主机2。
进一步,所述步骤S3和S4中,处理器时刻监控A接收缓冲区,B接收缓冲区,如果A接收缓冲区内有数据,立即将A缓冲区数据从处理器接口发出到从机接入模块的从机总线上,并开始等待从机总线的响应,如果从机总线不能响应,那么处理器继续监控B接收缓冲区和A接收缓冲区,但是此时先监控B接收缓冲区,如果从机总线响应了数据,那么处理器先将接收到的数据存入A发送缓冲区,然后再监控B接收缓冲区和A接收缓冲区;
如果B接收缓冲区内有数据,立即将B缓冲区数据从接口发出到从机总线,并开始等待从机总线的响应,如果从机总线不能响应,那么处理器继续监控A接收缓冲区和B接收缓冲区,但是此时先监控A接收缓冲区,如果从机总线响应了数据,那么处理器先将接收到的数据存入B发送缓冲区,然后再监控A接收缓冲区和B接收缓冲区。
本发明的有益效果在于:
本发明在原单主485网络上扩展1路主机接口,共具有3个RS485接口,每个口都采用电源隔离和信号隔离,带有TVS,自恢复保险丝。结合软件算法,实现了单主多从2线制485网络中不能实现多主机同时采集的问题,使数据可以被另外的设备采集,而不需要对原有程序进行变更,不需要做任何替换。将大幅减少升级成本和减少升级时间,减少升级风险。
本发明通过缓存协调机制,当两主机同时通信时,另一路主机的数据被缓存,待总线空闲时,再通信另一路,完全解决了单主多从协议上多主机的通信故障问题,避免了数据碰撞,且合理利用了处理器内存资源和逻辑单元资源,具有通信可靠,效率高的有益效果。
附图说明
图1是本发明基于单主多从协议实现多主机的装置模块化原理示意图;
图2是本发明电源输入模块的电路原理图;
图3是本发明看门狗模块的电路原理图;
图4是本发明隔离电源模块的电路原理图;
图5是本发明显示模块的电路原理图;
图6是本发明第一主机接入模块的电路原理图;
图7是本发明第一主机接入模块的电路原理图;
图8是本发明从机接入模块的电路原理图;
图9是本发明处理器模块的电路原理图。
图10是本发明基于单主多从协议实现多主机的方法模块化原理示意图;
图11是本发明的A功能块逻辑原理图;
图12是本发明的B功能块逻辑原理图;
图13是本发明的C功能块逻辑原理图。
具体实施方式
下面将对本发明的技术方案进行清楚、完整地描述。
一种基于单主多从协议实现多主机的装置,如图1所示,包括:处理器模块、至少两个主机接入模块、至少一个从机接入模块;
所述主机接入模块和从机接入模块分别连接所述处理器模块,用于实现主机和处理器模块、从机和处理器模块之间的通信。本发明在原单主通信网络上扩展1路主机接口,共具有3个通信接口,为多主机通信提供了硬件基础。
进一步,如图9所示,所述处理器模块包括型号为STC15W的处理器及其最小系统。STC15W支持外部RAM扩展,方便了各主机和从机之间的通信数据寄存。
进一步,如图6-8所示,所述主机接入模块、从机接入模块采用型号为ADM2483的磁隔离RS485收发器,用于给3个RS485收发器供给相互不相关的电源。隔断电的联系,防止相互间的干扰。本发明的三个RS485收发器每个口都采用电源隔离和信号隔离,带有TVS,自恢复保险丝。
进一步,如图2和图5所示,还包括:
电源输入模块,采用型号为XL1509的线性稳压器,将输入电源降压至所述处理器的工作电压;电源从xs6的1,2脚接入,电压范围DC9-30V。通过DC/DC芯片降压到5V,供内部芯片使用。D1二极管防止直流电源的反接,DZ1过压保护,将电压限制在DC30V附近。本发明支持DC9-DC30V供电,具有过压保护。
显示模块,用于主机和处理器、从机和处理器的通信状态显示以及处理器运行状态的显示。3只双色LED灯,LED1,LED2,LED3用于显示3个RS485收发器的通信状态,LED4用于显示处理器的工作状态,处理器工作正常时,此灯会每隔500ms切换亮灭状态。
进一步,如图3所示,还包括看门狗模块,看门狗模块包括型号为SGM706的多功能微处理器监控电路,及型号为MT9700的功率开关电路,用于防止不明原因导致的装置死机。看门狗芯片U11一直监测单片机发出的交替信号,如果持续1.6秒状态不反转,则通过S1切断单片机的电源后再恢复,从而保证单片机可靠工作。
作为本发明的一种优选的实施方案,基于上述内容,如图4所示,还包括隔离电源模块,隔离电源模块采用型号为B0505S的电源模块,并连接所述功率开关电路,用于给各个主机接入模块、从机接入模块供给相互不相关的电源,隔断电的联系,防止相互间的干扰。
一种基于单主多从协议实现多主机的方法,使用了上述的基于单主多从协议实现多主机的装置,其包括以下步骤:
S1:处理器时刻监控各个主机发来的数据,并只存储1个通信帧的数据;
S2:处理器将以所述步骤S1中,来自不同主机的数据存储于不同的存储区,且不相互重叠;
S3:处理器检测这各个存储区是否有新的数据,如果有并且从机总线空闲,则发送此存储区的数据到从机总线;
S4:发送完毕后,开始等待从机总线的响应信息,如果在预设的时间内收到数据,则立即将接收到的数据发送到该存储区对应的主机处,如果没有接收到数据那么处理器继续监控存储区。通过以上的缓存协调机制,当两主机同时通信时,另一路主机的数据被缓存,待总线空闲时,再通信另一路,完全解决了单主多从协议上多主机的通信故障问题,避免了数据碰撞。
作为本发明的一种实施例,所述步骤S1中,有主机1和主机2两个主机接入处理器,对应存在第一主机接入模块和第二主机接入模块;步骤S1中:处理器时刻监控主机1发来的数据,并只存储1个通信帧的数据,依靠3.5T时间来判断帧尾。同时时刻监控主机2发来的数据,并只存储1个通信帧的数据,依靠3.5T时间来判断帧尾。
为了清楚的表明本发明基于单主多从协议实现多主机的方法,如图10所示,按照模块化程序编程方法,以下将处理器内程序划分为A功能块、B功能块、C功能块三个功能块。所述A功能块1用以接收主机1发来的通信报文并放入A接收缓存,将A发送缓存区的报文发送回主机1。所述B功能块2用以接收主机2发来的通信报文并放入接收缓存,将B发送缓存区的报文发送回主机2。所述C功能块用以将A接收缓存和B接收缓存发送到从机总线,将总线响应的报文区分放入A发送缓存和B发送缓存。本发明可实现多线程工作,合理利用了处理器内存资源和逻辑单元资源,具有通信可靠,效率高的有益效果。
所述步骤S2中,处理器内部RAM中,划分A存储区、B存储区两个存储区。
进一步,如图11所示,处理器将所述A存储区划分为A接收缓冲区、A发送缓冲区,A功能块时刻监控第一主机接入模块,一旦接收到主机1发来的数据,立即存入A接收缓存区,同时监控A发送缓存区是否有数据,如果有立即发送回主机1;
如图12所示,B存储区划分为B接收缓冲区、B发送缓冲区,B功能块时刻监控第二主机接入模块,一旦接收到主机2发来的数据,立即存入B接收缓存区,同时监控B发送缓存区是否有数据,如果有立即发送回主机2。
进一步,如图13所示,所述步骤S3和S4中,C功能块时刻监控A接收缓冲区,B接收缓冲区,如果A接收缓冲区内有数据,立即将A缓冲区数据从处理器接口发出到从机接入模块的从机总线上,并开始等待从机总线的响应,如果从机总线不能响应,那么C功能块继续监控B接收缓冲区和A接收缓冲区,但是此时先监控B接收缓冲区,如果从机总线响应了数据,那么处理器先将接收到的数据存入A发送缓冲区,然后再监控B接收缓冲区和A接收缓冲区;
如果B接收缓冲区内有数据,立即将B缓冲区数据从接口发出到从机总线,并开始等待从机总线的响应,如果从机总线不能响应,那么C功能块继续监控A接收缓冲区和B接收缓冲区,但是此时先监控A接收缓冲区,如果从机总线响应了数据,那么处理器先将接收到的数据存入B发送缓冲区,然后再监控A接收缓冲区和B接收缓冲区。
而本方法引入缓存协调机制,将完全避免此种情形。当两主机同时通信时,另一路主机的数据被缓存,待总线空闲时,再通信另一路。完全解决了单主多从协议上多主机的通信故障问题。
对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (1)

1.一种基于单主多从协议实现多主机的方法,该方法利用基于单组多从协议实现多主机的装置实现,该装置包括:处理器模块、至少两个主机接入模块、至少一个从机接入模块;
所述主机接入模块和从机接入模块分别连接所述处理器模块,用于实现主机和处理器模块、从机和处理器模块之间的通信;
所述处理器模块包括型号为STC15WLQFP32的处理器及其最小系统;所述主机接入模块、从机接入模块采用型号为ADM2483的磁隔离RS485收发器;
电源输入模块,采用型号为XL1509的线性稳压器,将输入电源降压至所述处理器的工作电压;
显示模块,用于主机和处理器、从机和处理器的通信状态显示以及处理器运行状态的显示;
看门狗模块,看门狗模块包括型号为SGM706的多功能微处理器监控电路,及型号为MT9700的功率开关电路,用于防止不明原因导致的装置死机;
隔离电源模块,隔离电源模块采用型号为B0505S的DC/DC电源模块,并连接所述功率开关电路,用于给各个主机接入模块、从机接入模块供给相互不相关的电源,隔断电的联系,防止相互间的干扰;
所述方法包括以下步骤:
S1:处理器时刻监控各个主机发来的数据,并只存储1个通信帧的数据;
S2:处理器将以所述步骤S1中,来自不同主机的数据存储于不同的存储区,且不相互重叠;
S3:处理器检测这各个存储区是否有新的数据,如果有并且从机总线空闲,则发送此存储区的数据到从机总线;
S4:发送完毕后,开始等待从机总线的响应信息,如果在预设的时间内收到数据,则立即将接收到的数据发送到该存储区对应的主机处,如果没有接收到数据那么处理器继续监控存储区;
所述步骤S1中,有主机1和主机2两个主机接入处理器,对应存在第一主机接入模块和第二主机接入模块;
所述步骤S2中,处理器内部划分A存储区、B存储区两个存储区;
处理器将所述A存储区划分为A接收缓冲区、A发送缓冲区,处理器时刻监控第一主机接入模块,一旦接收到主机1发来的数据,立即存入A接收缓存区,同时监控A发送缓存区是否有数据,如果有立即发送回主机1;
B存储区划分为B接收缓冲区、B发送缓冲区,处理器时刻监控第二主机接入模块,一旦接收到主机2发来的数据,立即存入B接收缓存区,同时监控B发送缓存区是否有数据,如果有立即发送回主机2;
所述步骤S3和S4中,处理器时刻监控A接收缓冲区,B接收缓冲区,如果A接收缓冲区内有数据,立即将A缓冲区数据从处理器接口发出到从机接入模块的从机总线上,并开始等待从机总线的响应,如果从机总线不能响应,那么处理器继续监控B接收缓冲区和A接收缓冲区,但是此时先监控B接收缓冲区,如果从机总线响应了数据,那么处理器先将接收到的数据存入A发送缓冲区,然后再监控B接收缓冲区和A接收缓冲区;
如果B接收缓冲区内有数据,立即将B缓冲区数据从接口发出到从机总线,并开始等待从机总线的响应,如果从机总线不能响应,那么处理器继续监控A接收缓冲区和B接收缓冲区,但是此时先监控A接收缓冲区,如果从机总线响应了数据,那么处理器先将接收到的数据存入B发送缓冲区,然后再监控A接收缓冲区和B接收缓冲区。
CN201910928584.1A 2019-09-28 一种基于单主多从协议实现多主机的装置及其方法 Active CN110531686B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910928584.1A CN110531686B (zh) 2019-09-28 一种基于单主多从协议实现多主机的装置及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910928584.1A CN110531686B (zh) 2019-09-28 一种基于单主多从协议实现多主机的装置及其方法

Publications (2)

Publication Number Publication Date
CN110531686A CN110531686A (zh) 2019-12-03
CN110531686B true CN110531686B (zh) 2024-07-12

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107465576A (zh) * 2017-08-23 2017-12-12 江苏舾普泰克自动化科技有限公司 一种基于Modbus协议的多主机通讯系统及方法
CN210137335U (zh) * 2019-09-28 2020-03-10 徐州可云智能科技有限公司 一种基于单主多从协议实现网络主机的装置
CN210294853U (zh) * 2019-09-28 2020-04-10 徐州可云智能科技有限公司 一种基于单主多从协议实现多主机的装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107465576A (zh) * 2017-08-23 2017-12-12 江苏舾普泰克自动化科技有限公司 一种基于Modbus协议的多主机通讯系统及方法
CN210137335U (zh) * 2019-09-28 2020-03-10 徐州可云智能科技有限公司 一种基于单主多从协议实现网络主机的装置
CN210294853U (zh) * 2019-09-28 2020-04-10 徐州可云智能科技有限公司 一种基于单主多从协议实现多主机的装置

Similar Documents

Publication Publication Date Title
US7266625B2 (en) Data communication system
CN111966189B (zh) 一种灵活配置的多计算节点服务器主板结构和程序
CN106603359B (zh) Plc系统的通讯控制方法及装置
CN102724093A (zh) 一种atca机框及其ipmb连接方法
CN208386576U (zh) 一种具有简单交换管理功能的工业网络交换串口服务器
CN110247936B (zh) 一种通讯协议转换卡及通讯协议转换系统
CN210294853U (zh) 一种基于单主多从协议实现多主机的装置
CN110531686B (zh) 一种基于单主多从协议实现多主机的装置及其方法
CN111858459B (zh) 处理器及计算机
CN210324188U (zh) 一种集成电路总线iic主从竞争自动切换设备及其系统
CN1964286B (zh) 具有双cpu的主控设备
CN209433225U (zh) 用于列车网络输入输出系统的处理装置
CN111475368A (zh) 一种串口级联调控方法及串口设备
CN106708701B (zh) 一种基于arinc659总线的中央维护装置与方法
CN103513596B (zh) 基于arm的mvb总线管理功能实现系统
CN116126756A (zh) 一种基于fmql的srio实现装置及方法
CN210137335U (zh) 一种基于单主多从协议实现网络主机的装置
CN115696100A (zh) 一种交换机光模块监测方法、装置、设备及存储介质
CN212324117U (zh) 一种rs485总线多主机竞争切换系统
CN105743927A (zh) 一种CANopen与DP协议数据转换器及转换方法
JPH08242303A (ja) ナースコール装置の子機アダプタ脱落・断線検出方法
CN202205196U (zh) 一种串行设备共用通信总线的系统
CN110531686A (zh) 一种基于单主多从协议实现多主机的装置及其方法
CN110515776B (zh) 一种双机备份系统及备份方法
CN217159737U (zh) 网间连接器及工业控制系统

Legal Events

Date Code Title Description
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant