CN111602375A - 一种数据分配器及其通信方法 - Google Patents
一种数据分配器及其通信方法 Download PDFInfo
- Publication number
- CN111602375A CN111602375A CN201980007167.1A CN201980007167A CN111602375A CN 111602375 A CN111602375 A CN 111602375A CN 201980007167 A CN201980007167 A CN 201980007167A CN 111602375 A CN111602375 A CN 111602375A
- Authority
- CN
- China
- Prior art keywords
- computer interface
- data packet
- upper computer
- lower computer
- interface
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
- H04L12/40013—Details regarding a bus controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据分配器及其通信方法,用于具有多路半双工通信上位机接口和一路半双工通信下位机接口的分配器的通信,包括以下步骤:通过上位机接口接收上位机发送的即时请求数据包;在慢速模式下,将即时请求数据包缓存至队列中;实时监测下位机接口是否空闲;若是,则将队列中的首位请求数据包通过下位机接口发送至下位机,接收指定的下位机的应答数据包并通过与首位请求数据包对应的上位机接口发送至上位机。
Description
技术领域
本发明涉及电子通信领域,尤其涉及一种数据分配器及其通信方法。
背景技术
RS485数据传输广泛应用于各种设备通信,具有传输距离远,稳定性好,成本低等优点。但是,往往由于使用方法的局限性,标准接法必须是串联使用,且要符合总线主从通信协议,由于某些场景中需要多个上位机采集同一个下位机的数据,标准的布线方式无法解决,于是就必须要有分配器来解决实际使用的问题。
发明内容
本发明要解决的技术问题在于,针对现有技术无法实现多个上位机同时采集同一个下位机数据,并且不发生数据撞包丢包等问题的缺陷,提供一种数据分配器及其通信方法。
本发明解决其技术问题所采用的技术方案是:构造一种通信方法,用于具有多路半双工通信上位机接口和一路半双工通信下位机接口的分配器的通信,包括以下步骤:
通过所述上位机接口接收上位机发送的即时请求数据包;
在慢速模式下,将所述即时请求数据包缓存至队列中;
实时监测所述下位机接口是否空闲;
若是,则将所述队列中的首位请求数据包通过所述下位机接口发送至所述下位机,接收指定的所述下位机的应答数据包并通过与所述首位请求数据包对应的上位机接口发送至所述上位机。
优选地,在本发明所述的通信方法中,在慢速模式下,将所述即时请求数据包缓存至队列中的步骤,包括:
在慢速模式下,监测所述队列是否为空,若否,则将所述即时请求数据包缓存至队列中;若是,则在监测到所述下位机接口空闲时,将所述即时请求数据包通过所述下位机接口发送至所述下位机,接收指定的所述下位机的应答数据包并通过与所述即时请求数据包对应的上位机接口发送至所述上位机;在监测到所述下位机接口忙时,则将所述即时请求数据包缓存至队列中。
优选地,在本发明所述的通信方法中,所述方法还包括:
在快速模式下,监测到所述下位机接口空闲时,则将所述即时请求数据包通过所述下位机接口发送至所述下位机,接收指定的所述下位机的应答数据包并通过与所述即时请求数据包对应的上位机接口发送至所述上位机;监测到所述下位机接口忙时,则丢弃所述即时请求数据包。
优选地,在本发明所述的通信方法中,监测每一所述上位机接口接收即时请求数据包的频率,若频率大于预设阈值,则将对应的所述上位机接口设置为快速模式;若频率小于预设阈值,则将对应的所述上位机接口设置为慢速模式;
和/或,监测所述上位机接口接收的即时请求数据包所对应的上位机的优先级是否高于其他上位机,若是,则将对应的所述上位机接口设置为慢速模式;若否,则将对应的所述上位机接口设置为快速模式。
优选地,在本发明所述的通信方法中,所述每路上位机接口包括一个上位机,所述一路下位机接口包括一个或多个下位机;
所述将所述即时请求数据包通过所述下位机接口发送至所述下位机,接收指定的所述下位机的应答数据包并通过与所述即时请求数据包对应的上位机接口发送至所述上位机的步骤,包括:
获取所述即时请求数据包的上位机接口标识,通过所述下位机接口将所述即时请求数据包发送至所有下位机,接收与所述即时请求数据包中的下位机地址标识相同的所述下位机的应答数据包,根据获取到的所述上位机接口标识,将所述应答数据包通过所述上位机接口发送至对应的上位机。
优选地,在本发明所述的通信方法中,所述上位机接口接收所述即时请求数据包和所述下位机接口接收所述应答数据包时,判断接收到一字符后是否在预设时间间隔内未接收到字符,若否,则继续接收字符;若是,则结束一次数据接收。
优选地,在本发明所述的通信方法中,监测所述下位机接口等待接收所述应答数据包的时间是否超过预设阈值,若是,则将所述下位机接口设置为空闲;若否,则继续等待。
优选地,在本发明所述的通信方法中,所述多路上位机接口之间参数相同或不相同,所述一路下位机接口与所述多路上位机接口之间参数相同或不相同。
优选地,在本发明上述任一项所述的通信方法中,所述多路上位机接口和所述一路下位机接口均为RS485接口。
本发明还构造了一种数据分配器,包括:
多路半双工通信上位机接口、一路半双工通信下位机接口,以及
接收模块,用于通过所述上位机接口接收所述上位机发送的即时请求数据包以及通过所述下位机接口接收指定的所述下位机的应答数据包;
队列模块,用于缓存所述即时请求数据包;
写入模块,用于在慢速模式下,将所述接收模块接收到的即时请求数据包缓存至所述队列模块中;
下位机接口监测模块,用于实时监测所述下位机接口是否空闲;
发送模块,用于在所述下位机接口监测模块监测到所述下位机接口空闲时,将所述队列模块中的首位请求数据包通过所述下位机接口发送至所述下位机以及将所述接收模块接收到的所述应答数据包通过与所述首位请求数据包对应的上位机接口发送至所述上位机。
优选地,在本发明所述的数据分配器中,所述数据分配器还包括队列监测模块,用于监测所述队列模块是否为空;
其中,所述写入模块,用于在慢速模式下,所述队列监测模块监测到所述队列模块为空和所述下位机接口监测模块监测到所述下位机接口忙时,将所述即时请求数据包缓存至所述队列模块中;
所述发送模块,还用于在所述队列监测模块监测到所述队列为空且所述下位机接口监测模块监测到所述下位机接口空闲时,将所述即时请求数据包通过所述下位机接口发送至所述下位机以及将所述接收模块接收到的指定的所述下位机的应答数据包通过与所述即时请求数据包对应的上位机接口发送至所述上位机。
优选地,在本发明所述的数据分配器中,所述发送模块,还用于在快速模式下,所述下位机接口监测模块监测到所述下位机接口空闲时,将所述即时请求数据包通过所述下位机接口发送至所述下位机,以及将所述接收模块接收到的指定的所述下位机的应答数据包通过与所述即时请求数据包对应的上位机接口发送至所述上位机;在所述下位机接口监测模块监测到所述下位机接口忙时,丢弃所述即时请求数据包。
优选地,在本发明所述的数据分配器中,所述数据分配器还包括:
上位机接口监测模块,用于监测每一所述上位机接口接收即时请求数据包的频率以及监测所述上位机接口接收的即时请求数据包所对应的上位机的优先级是否高于其他上位机;
切换模块,用于在所述上位机接口监测模块监测到一所述上位机接口接收即时请求数据包的频率大于预设阈值时,将对应的所述上位机接口设置为快速模式;在所述上位机接口监测模块监测到一所述上位机接口接收即时请求数据包的频率小于预设阈值时,将对应的所述上位机接口设置为慢速模式;
和/或,在所述上位机接口监测模块监测到所述上位机接口接收的即时请求数据包所对应的上位机的优先级高于其他上位机时,将对应的所述上位机接口设置为慢速模式;在所述上位机接口监测模块监测到所述上位机接口接收的即时请求数据包所对应的上位机的优先级低于其他上位机时,将对应的所述上位机接口设置为快速模式。
优选地,在本发明所述的数据分配器中,所述每路上位机接口包括一个上位机,所述一路下位机接口包括一个或多个下位机;
所述发送模块,用于获取所述即时请求数据包的上位机接口标识,通过所述下位机接口将所述即时请求数据包发送至所有下位机,接收与所述即时请求数据包中的下位机地址标识相同的所述下位机的应答数据包,根据获取到的所述上位机接口标识,将所述应答数据包通过所述上位机接口发送至对应的上位机。
优选地,在本发明所述的数据分配器中,所述下位机接口监测模块,还用于在所述下位机接口接收所述应答数据包时,判断接收到一字符后是否在预设时间间隔内未接收到字符;
所述上位机接口监测模块,还用于在所述上位机接口接收所述即时请求数据包时,判断接收到一字符后是否在预设时间间隔内未接收到字符;
所述接收模块,还用于在所述上位机接口监测模块和所述下位机接口监测模块判断接收到一字符后在预设时间间隔内未接收到字符时,则结束一次数据接收;在所述上位机接口监测模块和所述下位机接口监测模块判断接收到一字符后在预设时间间隔内接收到字符时,则继续接收字符。
优选地,在本发明所述的数据分配器中,所述下位机接口监测模块,还用于监测所述下位机接口等待接收所述应答数据包的时间是否超过预设阈值;
所述数据分配器还包括:设置模块,用于在所述下位机接口监测模块监测到所述下位机接口等待接收所述应答数据包的时间超过预设阈值时,则将所述下位机接口设置为空闲。
优选地,在本发明所述的数据分配器中,所述多路上位机接口之间参数相同或不相同,所述一路下位机接口与所述多路上位机接口之间参数相同或不相同。
优选地,在本发明所述的数据分配器中,所述多路上位机接口和所述一路下位机接口均为RS485接口。
实施本发明所述的数据分配器及其通信方法,通过设置多个上位机接口和一个下位机接口以及通过对接口数据的转发排队管理,多个上位机可同时与同一路下位机进行通信,谁点名,应答谁,数据不撞包不丢包。还通过设置多个上位机接口之间接口参数不同,上位机接口与下位机接口之间接口参数不同,适合多设备及复杂环境下使用。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明所述的通信方法第一实施例的流程图;
图2是本发明所述的通信方法第二实施例的流程图;
图3是本发明所述的数据分配器的模块框图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
针对目前无法实现多个上位机同时采集同一个下位机数据,并且不发生数据撞包丢包等问题,本发明提供了一种RS485数据分配器,通过对接口数据的转发排队管理,以达到彻底满足多个上位机同时和一路下位机进行通信的需求,实现数据共享,而又不会产生数据撞包丢包。
图1是本发明所述通信方法第一实施例的流程图,参见图1,本发明构造了一种通信方法,用于具有多路半双工通信上位机接口和一路半双工通信下位机接口的分配器的通信,包括以下步骤:
通过上位机接口接收上位机发送的即时请求数据包;
在慢速模式下,将即时请求数据包缓存至队列中;
实时监测下位机接口是否空闲;
若是,则将队列中的首位请求数据包通过下位机接口发送至下位机,接收指定的下位机的应答数据包并通过与首位请求数据包对应的上位机接口发送至上位机。其中,多路上位机接口和一路下位机接口均为RS485接口,在其他实施例中,可为其他类型的半双工通信接口,在此不再赘述。
具体地,在慢速模式下,将即时请求数据包缓存至队列中的步骤,包括:
在慢速模式下,监测队列是否为空,若否,则将即时请求数据包缓存至队列中;若是,则在监测到下位机接口空闲时,将即时请求数据包通过下位机接口发送至下位机,接收指定的下位机的应答数据包并通过与即时请求数据包对应的上位机接口发送至上位机;在监测到下位机接口忙时,则将即时请求数据包缓存至队列中。
图2是本发明所述通信方法第二实施例的流程图,参见图2,在第二实施例中,本发明所述的通信方法包括以下步骤:
通过上位机接口接收上位机发送的即时请求数据包;
实时监测下位机接口是否空闲;
在快速模式下,监测到下位机接口空闲时,则将即时请求数据包通过下位机接口发送至下位机,接收指定的下位机的应答数据包并通过与即时请求数据包对应的上位机接口发送至上位机;监测到下位机接口忙时,则丢弃即时请求数据包。其中,多路上位机接口和一路下位机接口均为RS485接口,在其他实施例中,可为其他类型的半双工通信接口,在此不再赘述。
第一实施例和第二实施例为不同模式下的通信方法,可将上位机接口设置为快速模式或慢速模式,本发明提供了其切换为不同模式的方法,包括:监测每一上位机接口接收即时请求数据包的频率,若频率大于预设阈值,则将对应的上位机接口设置为快速模式;若频率小于预设阈值,则将对应的上位机接口设置为慢速模式;
和/或,监测上位机接口接收的即时请求数据包所对应的上位机的优先级是否高于其他上位机,若是,则将对应的上位机接口设置为慢速模式;若否,则将对应的上位机接口设置为快速模式。
且,在本发明第一实施例和第二实施例所述的通信方法中,每路上位机接口包括一个上位机,一路下位机接口包括一个或多个下位机;
所述将即时请求数据包通过下位机接口发送至下位机,接收指定的下位机的应答数据包并通过与即时请求数据包对应的上位机接口发送至上位机的步骤,包括:
获取即时请求数据包的上位机接口标识,通过下位机接口将即时请求数据包发送至所有下位机,接收与即时请求数据包中的下位机地址标识相同的下位机的应答数据包,根据获取到的上位机接口标识,将应答数据包通过上位机接口发送至对应的上位机。其中,即时请求数据包中包含有上位机接口标识和下位机地址标识,当所有下位机接收到即时请求数据包后,下位机判断自身的地址标识与即时请求数据包中的下位机地址标识是否符合,若符合,则回应应答数据包,若不符合,则不回应。
其中,对于判断接收完整的数据包,上位机接口接收即时请求数据包和下位机接口接收应答数据包时,判断接收到一字符后是否在预设时间间隔内未接收到字符,若否,则继续接收字符;若是,则结束一次数据接收。
具体地,对于字节间隔超时,从收到数据的最后一个字符开始计算,过多久才算是一个完整的数据包,一旦两个字符传输的时间间隔超过该时间,设备将结束此次数据的读取,接收完成一个完整的数据包。设置对接上位机、下位机的接口均有效。字节间隔超时一般建议可以设置为20-50ms,如果接收数据不完整可以适当加大,可对设备发送数据的实际间隔超时进行设置。
对于接收数据等待超时,还可监测下位机接口等待接收应答数据包的时间是否超过预设阈值,若是,则将下位机接口设置为空闲;若否,则继续等待。
具体地,对于数据等待总超时,设置等待下位机应答数据包返回的时间,超过了这个时间后设备将不在等待下位机应答数据包的返回,而是开始往下位机下发下一条即时请求数据包,此设置对接下位机的接口有效。在设置该值时需要考虑数据到下位机的线上传输时间、下位机从接到数据到返回数据时间及下位机数据在传输线上的传输时间,一般设置的值为这三个时间的和。可以通过接口抓包或使用接口测试工具对设置的值进行大致测算。
如果在数据等待总超时等待中接收到下位机发送过来的数据,总超时设置将无效,数据的接收完成将变为由字节间隔超时控制。总超时设置不宜过大,例如总超时设置成了200ms,但是上位接的发送间隔也为200ms,则有可能导致上位机接口为快速模式的上位机有时出现丢包。
且,为了适合多设备及复杂环境下使用,在本发明的通信方法中,多路上位机接口之间参数相同或不相同,一路下位机接口与多路上位机接口之间参数相同或不相同。
实施本发明所述的数据分配器及其通信方法,通过设置多个上位机接口和一个下位机接口以及通过对接口数据的转发排队管理,多个上位机可同时与同一路下位机进行通信,谁点名,应答谁,数据不撞包不丢包。还通过设置多个上位机接口之间接口参数不同,上位机接口与下位机接口之间接口参数不同,适合多设备及复杂环境下使用。
图3是本发明所述的数据分配器的框图,参见图3,本发明还构造了一种数据分配器,包括:
多路半双工通信上位机接口1、一路半双工通信下位机接口2,以及
接收模块,用于通过上位机接口1接收上位机发送的即时请求数据包以及通过下位机接口2接收指定的下位机的应答数据包;
队列模块,用于缓存即时请求数据包;
写入模块,用于在慢速模式下,将接收模块接收到的即时请求数据包缓存至队列模块中;
下位机接口监测模块,用于实时监测下位机接口2是否空闲;
发送模块,用于在下位机接口监测模块监测到下位机接口2空闲时,将队列模块中的首位请求数据包通过下位机接口2发送至下位机以及将接收模块接收到的应答数据包通过与首位请求数据包对应的上位机接口1发送至上位机。其中,多路上位机接口1和一路下位机接口2均为RS485接口,该数据分配器为RS485数据分配器,下位机为RS485通讯设备,在其他实施例中,可为其他类型的半双工通信接口,在此不再赘述。
具体地,在慢速模式下,该数据分配器还包括队列监测模块,用于监测队列模块是否为空;
其中,写入模块,用于在慢速模式下,队列监测模块监测到队列模块为空和下位机接口监测模块监测到下位机接口2忙时,将即时请求数据包缓存至队列模块中;
发送模块,还用于在队列监测模块监测到队列为空且下位机接口监测模块监测到下位机接口2空闲时,将即时请求数据包通过下位机接口2发送至下位机,以及将接收模块接收到的指定的下位机的应答数据包通过与即时请求数据包对应的上位机接口1发送至上位机;
本发明还提供一种快速模式,发送模块,还用于在快速模式下,下位机接口监测模块监测到下位机接口2空闲时,将即时请求数据包通过下位机接口2发送至下位机,以及将接收模块接收到的指定的下位机的应答数据包通过与即时请求数据包对应的上位机接口1发送至上位机;在下位机接口监测模块监测到下位机接口2忙时,丢弃即时请求数据包。
为实现上述快速模式和慢速模式的切换,本发明的数据分配器还包括:
上位机接口监测模块,用于监测每一上位机接口1接收即时请求数据包的频率以及监测上位机接口1接收的即时请求数据包所对应的上位机的优先级是否高于其他上位机;
切换模块,用于在上位机接口监测模块监测到一上位机接口1接收即时请求数据包的频率大于预设阈值时,将对应的上位机接口1设置为快速模式;在上位机接口监测模块监测到一上位机接口1接收即时请求数据包的频率小于预设阈值时,将对应的上位机接口1设置为慢速模式;
和/或,在上位机接口监测模块监测到上位机接口1接收的即时请求数据包所对应的上位机的优先级高于其他上位机时,将对应的上位机接口1设置为慢速模式;在上位机接口监测模块监测到上位机接口1接收的即时请求数据包所对应的上位机的优先级低于其他上位机时,将对应的上位机接口设置为快速模式。
且,在本发明的数据分配器中,每路上位机接口1包括一个上位机,一路下位机接口2包括一个或多个下位机;
发送模块,用于获取即时请求数据包的上位机接口标识,通过下位机接口将即时请求数据包发送至所有下位机,接收与即时请求数据包中的下位机地址标识相同的下位机的应答数据包,根据获取到的上位机接口标识,将应答数据包通过上位机接口发送至对应的上位机。
其中,对于判断接收完整的数据包,下位机接口监测模块,还用于在下位机接口2接收应答数据包时,判断接收到一字符后是否在预设时间间隔内未接收到字符;
上位机接口监测模块,还用于在上位机接口1接收即时请求数据包时,判断接收到一字符后是否在预设时间间隔内未接收到字符;
接收模块,还用于在上位机接口监测模块和下位机接口监测模块判断接收到一字符后在预设时间间隔内未接收到字符时,则结束一次数据接收;在上位机接口监测模块和下位机接口监测模块判断接收到一字符后在预设时间间隔内接收到字符时,则继续接收字符。
具体地,对于字节间隔超时,从收到数据的最后一个字符开始计算,过多久才算是一个完整的数据包,一旦两个字符传输的时间间隔超过该时间,设备将结束此次数据的读取,接收完成一个完整的数据包。设置对接上位机、下位机的接口均有效。字节间隔超时一般建议可以设置为20-50ms,如果接收数据不完整可以适当加大,可对设备发送数据的实际间隔超时进行设置。
而对于接收数据等待超时,下位机接口监测模块,还用于监测下位机接口2等待接收应答数据包的时间是否超过预设阈值;
数据分配器还包括:设置模块,用于在下位机接口监测模块监测到下位机接口2等待接收应答数据包的时间超过预设阈值时,则将下位机接口2设置为空闲。
具体地,对于数据等待总超时,设置等待下位机应答数据包返回的时间,超过了这个时间后设备将不再等待下位机应答数据包的返回,而是开始往下位机下发下一条即时请求数据包,此设置对接下位机的接口有效。在设置该值时需要考虑数据到下位机的线上传输时间、下位机从接到数据到返回数据时间及下位机数据在传输线上的传输时间,一般设置的值为这三个时间的和。可以通过接口抓包或使用接口测试工具对设置的值进行大致测算。
如果在数据等待总超时等待中接收到下位机发送过来的数据,总超时设置将无效,数据的接收完成将变为由字节间隔超时控制。总超时设置不宜过大,例如总超时设置成了200ms,但是上位接的发送间隔也为200ms,则有可能导致上位机接口为快速模式的上位机有时出现丢包。
且,为了适合多设备及复杂环境下使用,在本发明的数据分配器中,多路上位机接口1之间参数相同或不相同,一路下位机接口2与多路上位机接口1之间参数相同或不相同。
另外,该数据分配器还包括一网口3,可选择为RJ45网口,所述的RJ45网口可用于网络设置设备参数:IP、子网掩码、网关及DNS,RS485分配器实际使用时无需联网。
完整地,以3个RS485上位机接口,1个RS485下位机接口为例,对RS485数据分配器进行实际参数说明,参见表1:
表1
其中,对于电源接口、网络接口和RS485接口的定义,参见表2:
表2
且,本发明的数据分配器还设置了多个指示灯,包括:电源指示灯、设备故障指示灯、网络连接指示灯、以太网工作速率指示灯、口信号发送指示灯、接口信号接收指示灯,如下表3所示:
表3
该RS485数据分配器具有以下特点:
内置ARM处理器+RTOS系统,具有更强大的实时处理能力及更高的稳定性;
数据流向自动控制,可实现多个上位机和一路RS485设备进行通信;
每个接口可使用不同接口参数,适合多设备及复杂环境进行互连;
可设的接口通信超时数据排队机制,满足不同设备不同协议的需求;
低功耗设计,无需散热装置;
硬件双看门狗互为备份,确保运行过程中的稳定可靠、永不死机,每个通讯通道设置逻辑狗,在通道出现异常情况时,逻辑狗会复位系统使系统恢复正常;
电源、接口具有良好的过流过压、防反接保护功能;
选用工业级芯片,可稳定运行的温度范围为-40℃至85℃,相比消费级芯片有着更宽的电压适应范围,在高低温段运行更稳定,抗干扰能力更强大;
三重硬件防雷组合,可轻松抵御2KV/1KA强度雷击引起的感应雷,确保设备安全可靠运行。
实施本发明所述的数据分配器及其通信方法,通过设置多个上位机接口和一个下位机接口以及通过对接口数据的转发排队管理,多个上位机可同时与同一路下位机进行通信,谁点名,应答谁,数据不撞包不丢包。还通过设置多个上位机接口之间接口参数不同,上位机接口与下位机接口之间接口参数不同,适合多设备及复杂环境下使用。
本发明是通过具体实施例进行说明的,本领域技术人员应当明白,在不脱离本发明范围的情况下,还可以对本发明进行各种变换和等同替代。另外,针对特定情形或具体情况,可以对本发明做各种修改,而不脱离本发明的范围。因此,本发明不局限于所公开的具体实施例,而应当包括落入本发明权利要求范围内的全部实施方式。
Claims (18)
1.一种通信方法,其特征在于,用于具有多路半双工通信上位机接口和一路半双工通信下位机接口的分配器的通信,包括以下步骤:
通过所述上位机接口接收上位机发送的即时请求数据包;
在慢速模式下,将所述即时请求数据包缓存至队列中;
实时监测所述下位机接口是否空闲;
若是,则将所述队列中的首位请求数据包通过所述下位机接口发送至下位机,接收指定的所述下位机的应答数据包并通过与所述首位请求数据包对应的上位机接口发送至所述上位机。
2.根据权利要求1所述的通信方法,其特征在于,在慢速模式下,将所述即时请求数据包缓存至队列中的步骤,包括:
在慢速模式下,监测所述队列是否为空,若否,则将所述即时请求数据包缓存至队列中;若是,则在监测到所述下位机接口空闲时,将所述即时请求数据包通过所述下位机接口发送至所述下位机,接收指定的所述下位机的应答数据包并通过与所述即时请求数据包对应的上位机接口发送至所述上位机;在监测到所述下位机接口忙时,则将所述即时请求数据包缓存至队列中。
3.根据权利要求1或2所述的通信方法,其特征在于,所述方法还包括:
在快速模式下,监测到所述下位机接口空闲时,则将所述即时请求数据包通过所述下位机接口发送至所述下位机,接收指定的所述下位机的应答数据包并通过与所述即时请求数据包对应的上位机接口发送至所述上位机;监测到所述下位机接口忙时,则丢弃所述即时请求数据包。
4.根据权利要求3所述的通信方法,其特征在于,监测每一所述上位机接口接收即时请求数据包的频率,若频率大于预设阈值,则将对应的所述上位机接口设置为快速模式;若频率小于预设阈值,则将对应的所述上位机接口设置为慢速模式;
和/或,监测所述上位机接口接收的即时请求数据包所对应的上位机的优先级是否高于其他上位机,若是,则将对应的所述上位机接口设置为慢速模式;若否,则将对应的所述上位机接口设置为快速模式。
5.根据权利要求3所述的通信方法,其特征在于,所述每路上位机接口包括一个上位机,所述一路下位机接口包括一个或多个下位机;
所述将所述即时请求数据包通过所述下位机接口发送至所述下位机,接收指定的所述下位机的应答数据包并通过与所述即时请求数据包对应的上位机接口发送至所述上位机的步骤,包括:
获取所述即时请求数据包的上位机接口标识,通过所述下位机接口将所述即时请求数据包发送至所有下位机,接收与所述即时请求数据包中的下位机地址标识相同的所述下位机的应答数据包,根据获取到的所述上位机接口标识,将所述应答数据包通过所述上位机接口发送至对应的上位机。
6.根据权利要求1所述的通信方法,其特征在于,所述上位机接口接收所述即时请求数据包和所述下位机接口接收所述应答数据包时,判断接收到一字符后是否在预设时间间隔内未接收到字符,若否,则继续接收字符;若是,则结束一次数据接收。
7.根据权利要求1所述的通信方法,其特征在于,监测所述下位机接口等待接收所述应答数据包的时间是否超过预设阈值,若是,则将所述下位机接口设置为空闲;若否,则继续等待。
8.根据权利要求1所述的通信方法,其特征在于,所述多路上位机接口之间参数相同或不相同,所述一路下位机接口与所述多路上位机接口之间参数相同或不相同。
9.根据权利要求1-8任一项所述的通信方法,其特征在于,所述多路上位机接口和所述一路下位机接口均为RS485接口。
10.一种数据分配器,其特征在于,包括:
多路半双工通信上位机接口、一路半双工通信下位机接口,以及
接收模块,用于通过所述上位机接口接收上位机发送的即时请求数据包以及通过所述下位机接口接收指定的下位机的应答数据包;
队列模块,用于缓存所述即时请求数据包;
写入模块,用于在慢速模式下,将所述接收模块接收到的即时请求数据包缓存至所述队列模块中;
下位机接口监测模块,用于实时监测所述下位机接口是否空闲;
发送模块,用于在所述下位机接口监测模块监测到所述下位机接口空闲时,将所述队列模块中的首位请求数据包通过所述下位机接口发送至所述下位机以及将所述接收模块接收到的所述应答数据包通过与所述首位请求数据包对应的上位机接口发送至所述上位机。
11.根据权利要求10所述的数据分配器,其特征在于,所述数据分配器还包括队列监测模块,用于监测所述队列模块是否为空;
其中,所述写入模块,用于在慢速模式下,所述队列监测模块监测到所述队列模块为空和所述下位机接口监测模块监测到所述下位机接口忙时,将所述即时请求数据包缓存至所述队列模块中;
所述发送模块,还用于在所述队列监测模块监测到所述队列为空且所述下位机接口监测模块监测到所述下位机接口空闲时,将所述即时请求数据包通过所述下位机接口发送至所述下位机,以及将所述接收模块接收到的指定的所述下位机的应答数据包通过与所述即时请求数据包对应的上位机接口发送至所述上位机。
12.根据权利要求10或11所述的数据分配器,其特征在于,所述发送模块,还用于在快速模式下,所述下位机接口监测模块监测到所述下位机接口空闲时,将所述即时请求数据包通过所述下位机接口发送至所述下位机,以及将所述接收模块接收到的指定的所述下位机的应答数据包通过与所述即时请求数据包对应的上位机接口发送至所述上位机;在所述下位机接口监测模块监测到所述下位机接口忙时,丢弃所述即时请求数据包。
13.根据权利要求12所述的数据分配器,其特征在于,所述数据分配器还包括:
上位机接口监测模块,用于监测每一所述上位机接口接收即时请求数据包的频率以及监测所述上位机接口接收的即时请求数据包所对应的上位机的优先级是否高于其他上位机;
切换模块,用于在所述上位机接口监测模块监测到一所述上位机接口接收即时请求数据包的频率大于预设阈值时,将对应的所述上位机接口设置为快速模式;在所述上位机接口监测模块监测到一所述上位机接口接收即时请求数据包的频率小于预设阈值时,将对应的所述上位机接口设置为慢速模式;
和/或,在所述上位机接口监测模块监测到所述上位机接口接收的即时请求数据包所对应的上位机的优先级高于其他上位机时,将对应的所述上位机接口设置为慢速模式;在所述上位机接口监测模块监测到所述上位机接口接收的即时请求数据包所对应的上位机的优先级低于其他上位机时,将对应的所述上位机接口设置为快速模式。
14.根据权利要求12所述的数据分配器,其特征在于,所述每路上位机接口包括一个上位机,所述一路下位机接口包括一个或多个下位机;
所述发送模块,用于获取所述即时请求数据包的上位机接口标识,通过所述下位机接口将所述即时请求数据包发送至所有下位机,接收与所述即时请求数据包中的下位机地址标识相同的所述下位机的应答数据包,根据获取到的所述上位机接口标识,将所述应答数据包通过所述上位机接口发送至对应的上位机。
15.根据权利要求13所述的数据分配器,其特征在于,所述下位机接口监测模块,还用于在所述下位机接口接收所述应答数据包时,判断接收到一字符后是否在预设时间间隔内未接收到字符;
所述上位机接口监测模块,还用于在所述上位机接口接收所述即时请求数据包时,判断接收到一字符后是否在预设时间间隔内未接收到字符;
所述接收模块,还用于在所述上位机接口监测模块和所述下位机接口监测模块判断接收到一字符后在预设时间间隔内未接收到字符时,则结束一次数据接收;在所述上位机接口监测模块和所述下位机接口监测模块判断接收到一字符后在预设时间间隔内接收到字符时,则继续接收字符。
16.根据权利要求10所述的数据分配器,其特征在于,所述下位机接口监测模块,还用于监测所述下位机接口等待接收所述应答数据包的时间是否超过预设阈值;
所述数据分配器还包括:设置模块,用于在所述下位机接口监测模块监测到所述下位机接口等待接收所述应答数据包的时间超过预设阈值时,则将所述下位机接口设置为空闲。
17.根据权利要求10所述的数据分配器,其特征在于,所述多路上位机接口之间参数相同或不相同,所述一路下位机接口与所述多路上位机接口之间参数相同或不相同。
18.根据权利要求10-17任一项所述的通信方法,其特征在于,所述多路上位机接口和所述一路下位机接口均为RS485接口。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/094461 WO2021000275A1 (zh) | 2019-07-03 | 2019-07-03 | 一种数据分配器及其通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111602375A true CN111602375A (zh) | 2020-08-28 |
CN111602375B CN111602375B (zh) | 2022-05-03 |
Family
ID=72184702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980007167.1A Active CN111602375B (zh) | 2019-07-03 | 2019-07-03 | 一种数据分配器及其通信方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111602375B (zh) |
WO (1) | WO2021000275A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166971A (zh) * | 2013-03-15 | 2013-06-19 | 广东盈嘉科技工程发展股份有限公司 | 一种多路复用串口协议转换器 |
CN104090856A (zh) * | 2014-06-24 | 2014-10-08 | 珠海格力电器股份有限公司 | 共享串口信息的方法及装置 |
US20170045879A1 (en) * | 2015-03-13 | 2017-02-16 | Huazhong University Of Science And Technology | Numerical control system based on virtual host computer |
CN108132898A (zh) * | 2018-01-15 | 2018-06-08 | 东莞博力威电池有限公司 | 多路通讯控制方法及通讯盒 |
-
2019
- 2019-07-03 CN CN201980007167.1A patent/CN111602375B/zh active Active
- 2019-07-03 WO PCT/CN2019/094461 patent/WO2021000275A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103166971A (zh) * | 2013-03-15 | 2013-06-19 | 广东盈嘉科技工程发展股份有限公司 | 一种多路复用串口协议转换器 |
CN104090856A (zh) * | 2014-06-24 | 2014-10-08 | 珠海格力电器股份有限公司 | 共享串口信息的方法及装置 |
US20170045879A1 (en) * | 2015-03-13 | 2017-02-16 | Huazhong University Of Science And Technology | Numerical control system based on virtual host computer |
CN108132898A (zh) * | 2018-01-15 | 2018-06-08 | 东莞博力威电池有限公司 | 多路通讯控制方法及通讯盒 |
Also Published As
Publication number | Publication date |
---|---|
CN111602375B (zh) | 2022-05-03 |
WO2021000275A1 (zh) | 2021-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5982778A (en) | Arrangement for regulating packet flow rate in shared-medium, point-to-point, and switched networks | |
JP3184817B2 (ja) | フロー制御方法、一時停止制御システムおよびノード | |
US5995488A (en) | Method and apparatus for regulating data flow in networks | |
US5905870A (en) | Arrangement for initiating and maintaining flow control in shared-medium, full-duplex, and switched networks | |
US6072803A (en) | Automatic communication protocol detection system and method for network systems | |
US5764895A (en) | Method and apparatus for directing data packets in a local area network device having a plurality of ports interconnected by a high-speed communication bus | |
US6538990B1 (en) | Method and system for congestion flow control in a high speed network | |
JPH05183549A (ja) | ネットワーク・トポロジー判定方法 | |
US10425361B2 (en) | Dynamic allocation of termination resistors in a communication network | |
US20100111082A1 (en) | Packet Switching Device and Local Communication Network With Such a Packet Switching Device | |
CN104333499A (zh) | 基于m-lvds的装置背板高速总线链路层通信协议 | |
CN111800226A (zh) | 一种基于硬件仲裁的边带管理电路及方法 | |
CN109062847A (zh) | 片上系统、用于rs485串口通讯的ip核及其控制方法 | |
CN107659456A (zh) | 一种基于rs485通信的数据冲突传输方法 | |
CN110417687B (zh) | 一种报文发送与接收方法及装置 | |
CN105337895A (zh) | 一种网络设备主机单元、网络设备子卡以及网络设备 | |
KR100274550B1 (ko) | 고속 이더넷의 충돌 방지 장치 및 그 방법 | |
CN111602375B (zh) | 一种数据分配器及其通信方法 | |
EP2899923A1 (en) | Method and device for adjusting ethernet data transmission rate | |
CN102957586B (zh) | 基于无冲突协议的全双工rs485总线通信方法 | |
CN114090493B (zh) | 基于rs485总线的数据传输控制方法以及相关装置 | |
Cisco | Solving Ethernet Problems | |
Cisco | Solving Ethernet Problems | |
JPS5829244A (ja) | デ−タ通信方式 | |
Cisco | Interface Configuration and Support |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |