一种主从机通信方法和主从机通信系统与流程

文档序号:26275117发布日期:2021-08-13 19:30阅读:436来源:国知局
一种主从机通信方法和主从机通信系统与流程

本发明涉及数据通信技术领域,尤其涉及一种主从机通信方法和主从机通信系统。



背景技术:

随着时代的发展、信息化程度的深入以及物联网技术的普及,主从式通信被越来越多地应用于各行各业中,比如工业控制、医疗、电子等领域。主从式通信一般有一台主机(监控设备)和多台从机(被监控设备),主机发送的信息可以传送到多台从机或指定从机,而从机发送的信息只能传送到主机,各从机之间不能直接通信。

目前,在工业环境中,主机和从机之间的通信方式采用的比较多的是成本低的rs485总线,即通过rs485总线将主机和从机的通信网络搭接起来,使得主机和从机之间可以进行数据的发送和接收。这种硬件总线虽然支持的距离长达一千多米,甚至是在加中继器的情况下,可以达到更长的距离,但是在距离提高后,为了保证数据传输的稳定性,就不得不降低传输的波特率,从而导致了主机与从机的通信效率下降,再加上多个从机之间通信阻塞和占用的问题,以及各个设备中cpu(centralprocessingunit,中央处理器)的运行速度是存在差异的,即存在数据处理时间的差异,因此在传统的主机逐一从从机中获取数据的场景下,数据的传输最终会消耗非常长的一段时间,对数据传输的实时性提出了一个较大的难题。

因此,如何对传统的一主多从通信技术进行改进,或者是提供一种全新的一主多从通信技术,以在不改变传输速度的情况下,提升主机与从机的通信效率,使得可以实现更加有效且快速的通信,成为了本领域技术人员的重要课题之一。

以上信息作为背景信息给出只是为了辅助理解本公开,并没有确定或者承认任意上述内容是否可用作相对于本公开的现有技术。



技术实现要素:

本发明提供一种主从机通信方法和主从机通信系统,以解决现有技术的不足。

为实现上述目的,本发明提供以下的技术方案:

第一方面,本发明实施例提供一种主从机通信方法,应用于一个主机和至少一个从机之间,所述方法包括:

所述主机向所述从机发送下行数据;

所述从机在接收到所述下行数据后,计算发送上行数据之前所需要的等待时间,并按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

进一步地,所述主从机通信方法中,所述从机在接收到所述下行数据后,计算发送上行数据之前所需要的等待时间,并按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据的步骤包括:

所述从机在接收到所述下行数据后,根据波特率确定字节时间;

所述从机根据模块地址和所述字节时间计算发送上行数据之前所需要的等待时间;

所述从机按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

进一步地,所述主从机通信方法中,所述从机按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据的步骤包括:

所述从机监听硬件总线是否空闲;

若是,则按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

进一步地,所述主从机通信方法中,在所述从机在接收到所述下行数据后,计算发送上行数据之前所需要的等待时间,并按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据的步骤之后,所述方法还包括:

在向所述主机发送所述上行数据的过程中,所述从机检测是否发生通信故障;

若是,则所述从机向所述主机发送通信故障提示信息,和/或所述从机按照设定规则延后发送。

第二方面,本发明实施例提供一种主从机通信系统,所述系统包括一个主机和至少一个从机,所述从机通过硬件总线与所述主机连接;

所述主机用于向所述从机发送下行数据;

所述从机用于在接收到所述下行数据后,计算发送上行数据之前所需要的等待时间,并按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

进一步地,所述主从机通信系统中,所述从机包括:

字节确定模块,用于在所述从机接收到所述下行数据后,根据波特率确定字节时间;

等待计算模块,用于根据所述从机的模块地址和所述字节时间计算发送上行数据之前所需要的等待时间;

策略发送模块,用于按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

进一步地,所述主从机通信系统中,所述策略发送模块具体用于:

监听硬件总线是否空闲;

若是,则按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

进一步地,所述主从机通信系统还包括故障检测模块,用于:

在所述从机向所述主机发送所述上行数据的过程中,检测是否发生通信故障;

若是,则所述从机向所述主机发送通信故障提示信息,和/或所述从机按照设定规则延后发送。

本发明实施例提供的一种主从机通信方法和主从机通信系统,通过让接收到主机下行数据的从机分别计算各自发送上行数据之前所需要的等待时间,从而能够安排等待时间越短的越先向主机发送上行数据,使得可以将所有从机的整体传输时间压缩到最少,达到较高的数据传输实时性,最大限度地提高了硬件总线的利用率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1是本发明实施例一提供的一种主从机通信方法的流程示意图;

图2是本发明实施例二提供的一种主从机通信方法的流程示意图;

图3是本发明实施例三提供的一种主从机通信方法的流程示意图;

图4是本发明实施例四提供的一种主从机通信系统的结构示意图。

具体实施方式

为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

在本发明的描述中,需要理解的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中设置的组件。当一个组件被认为是“设置在”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中设置的组件。

此外,术语“长”“短”“内”“外”等指示方位或位置关系为基于附图所展示的方位或者位置关系,仅是为了便于描述本发明,而不是指示或暗示所指的装置或原件必须具有此特定的方位、以特定的方位构造进行操作,以此不能理解为本发明的限制。

下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。

实施例一

有鉴于现有技术存在的缺陷,本发明人基于从事通信行业多年丰富的实务经验及专业知识,并配合学理的运用,积极加以研究创新,以期创设一种切实可行的主从机通信技术,使其更具有实用性。在经过不断的研究、设计并反复试作及改进后,终于创设出确具实用价值的本发明。

请参阅图1,图1是本发明实施例公开的一种主从机通信方法的流程示意图,该方法适用于一个主机和至少一个从机之间通信的场景,该方法由主从机通信系统来执行,该系统可以由软件和/或硬件实现。如图1所示,该主从机通信方法可以包括以下步骤:

s101、所述主机向所述从机发送下行数据。

其中,所述下行数据可以被所有的从机进行识别,且所述下行数据指的是数据查询指令或者是数据读取指令等。

需要说明的是,在本实施例中,所有从机都是通过硬件总线与主机连接的,在各种工业环境中,这个硬件总线通常采用的是成本低的rs485总线。

主机在向从机发送下行数据时,可以是对硬件总线上所有的从机都发送该下行数据,也可以是对硬件总线上的某一部分从机发送该下行数据。在整个通信的过程中,主机可以只需要发送一次下行数据即可。

s102、所述从机在接收到所述下行数据后,计算发送上行数据之前所需要的等待时间,并按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

需要说明的是,上行数据指的是从机采集的数据。

由于主从机的cpu运行速度是存着的差异,也即每个从机在数据处理时的用时是存着差异的,那么如果按照传统的按从机的编号或者随机选定的方式安排从机发送上行数据,则有可能存着当前安排到的从机还在进行发送前的数据处理,但未安排到的从机已经完成好了发送前的数据处理的情况,导致即使完成好了发送前的数据处理的从机已经准备好可以发送了,但没办法发送的问题,不能最大限度的提高总线的利用率,从而将整体传输时长拉的很长。因此,本申请创造性的通过统计每个从机发送上行数据之前所需要的等待时间的方式,确定让等待时间短的先发送,以缩短整体传输时长,比如从机1的等待时间最短所以先发送,从机2的等待时间次之,所以紧接着从机1之后发送,以此类推。

具体的,所述步骤s102可以进一步包括:

所述从机在接收到所述下行数据后,根据波特率确定字节时间;

所述从机根据模块地址和所述字节时间计算发送上行数据之前所需要的等待时间;

所述从机按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

在本实施例中,从机可以在不需要设置任何参数的情况下自适应地计算等待时。具体的,字节时间与波特率相关,可以根据波特率进行计算得出,假设某个从机计算出的字节时间为0.1ms,则该从机(模块地址10)的等待时间就为10*0.1ms。

需要说明的是,本实施例在硬件总线有数据传输时会停止等待计时,由此可以避免因不同数据长度引起的发送时间长短不一,进而导致从机发送时机混乱的问题。

本发明实施例提供的一种主从机通信方法,通过让接收到主机下行数据的从机分别计算各自发送上行数据之前所需要的等待时间,从而能够安排等待时间越短的越先向主机发送上行数据,使得可以将所有从机的整体传输时间压缩到最少,达到较高的数据传输实时性,最大限度地提高了硬件总线的利用率。

实施例二

如图2所示,本发明实施例二提供的主从机通信方法,是在实施例一提供的技术方案的基础上,对步骤s102中“按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据”的进一步优化。与上述各实施例相同或相应的术语的解释在此不再赘述。即:

所述从机监听硬件总线是否空闲;

若是,则按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

基于上述优化,如图2所示,本实施例提供的一种主从机通信方法,可以包括如下步骤:

s201、所述主机向所述从机发送下行数据。

s202、所述从机在接收到所述下行数据后,计算发送上行数据之前所需要的等待时间。

s203、所述从机监听硬件总线是否空闲;若是,则执行步骤s204,若否,则返回执行步骤s203。

需要说明的是,本实施例需要在从机发送上行数据之前判断自行进行硬件总线是否空闲的仲裁,然后在判断总线空闲之后,由计算出来的等待时间进行排队发送。

具体的,对于硬件总线是否空闲的判断依据是监听硬件总线上是否有数据在传输。

204、按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

本发明实施例提供的一种主从机通信方法,通过让接收到主机下行数据的从机分别计算各自发送上行数据之前所需要的等待时间,从而能够安排等待时间越短的越先向主机发送上行数据,使得可以将所有从机的整体传输时间压缩到最少,达到较高的数据传输实时性,最大限度地提高了硬件总线的利用率。

实施例三

请参阅图3,图3是本发明实施例公开的一种主从机通信方法的流程示意图。本实施例在实施例一提供的技术方案的基础上,在步骤s102“所述从机在接收到所述下行数据后,计算发送上行数据之前所需要的等待时间,并按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据”之后,对该方法做了进一步优化。与上述各实施例相同或相应的术语的解释在此不再赘述,具体的,本实施例提供的方法还可以包括如下步骤:

s301、所述主机向所述从机发送下行数据。

s302、所述从机在接收到所述下行数据后,计算发送上行数据之前所需要的等待时间,并按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

s303、在向所述主机发送所述上行数据的过程中,所述从机检测是否发生通信故障;若是,则执行步骤s304,若否,则返回执行步骤s303。

需要说明的是,通信故障指的是从机的上行数据在传输过程中被中断,故障的原因可能是网络波动,停电等。

s304、所述从机向所述主机发送通信故障提示信息,和/或所述从机按照设定规则延后发送。

需要说明的是,设定规则指的是从机仍然需要将上行数据发送至主机,但发送的时机要延后,即被打断后需要重新排队,比如排在下一个从机的后面或者是队伍的最后面。当然,也可以选择不再重新发送该从机的上行数据。

本发明实施例提供的一种主从机通信方法,通过让接收到主机下行数据的从机分别计算各自发送上行数据之前所需要的等待时间,从而能够安排等待时间越短的越先向主机发送上行数据,使得可以将所有从机的整体传输时间压缩到最少,达到较高的数据传输实时性,最大限度地提高了硬件总线的利用率。

实施例四

请参阅附图4,为本发明实施例六提供的一种主从机通信系统的结构示意图,该系统适用于执行本发明实施例提供的主从机通信方法。该系统具体包含:

一个主机和至少一个从机,所述从机通过硬件总线与所述主机连接;

所述主机用于向所述从机发送下行数据;

所述从机用于在接收到所述下行数据后,计算发送上行数据之前所需要的等待时间,并按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

优选的,所述主从机通信系统中,所述从机包括:

字节确定模块,用于在所述从机接收到所述下行数据后,根据波特率确定字节时间;

等待计算模块,用于根据所述从机的模块地址和所述字节时间计算发送上行数据之前所需要的等待时间;

策略发送模块,用于按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

优选的,所述主从机通信系统中,所述策略发送模块具体用于:

监听硬件总线是否空闲;

若是,则按照等待时间越短越优先发送的策略依次排队向所述主机发送所述上行数据。

优选的,所述主从机通信系统中,所述系统还包括故障检测模块,用于:

在所述从机向所述主机发送所述上行数据的过程中,检测是否发生通信故障;

若是,则所述从机向所述主机发送通信故障提示信息,和/或所述从机按照设定规则延后发送。

本发明实施例提供的一种主从机通信系统,通过让接收到主机下行数据的从机分别计算各自发送上行数据之前所需要的等待时间,从而能够安排等待时间越短的越先向主机发送上行数据,使得可以将所有从机的整体传输时间压缩到最少,达到较高的数据传输实时性,最大限度地提高了硬件总线的利用率。

至此,以说明和描述的目的提供上述实施例的描述。不意指穷举或者限制本公开。特定的实施例的单独元件或者特征通常不受到特定的实施例的限制,但是在适用时,即使没有具体地示出或者描述,其可以互换和用于选定的实施例。在许多方面,相同的元件或者特征也可以改变。这种变化不被认为是偏离本公开,并且所有的这种修改意指为包括在本公开的范围内。

提供示例实施例,从而本公开将变得透彻,并且将会完全地将该范围传达至本领域内技术人员。为了透彻理解本公开的实施例,阐明了众多细节,诸如特定零件、装置和方法的示例。显然,对于本领域内技术人员,不需要使用特定的细节,示例实施例可以以许多不同的形式实施,而且两者都不应当解释为限制本公开的范围。在某些示例实施例中,不对公知的工序、公知的装置结构和公知的技术进行详细地描述。

在此,仅为了描述特定的示例实施例的目的使用专业词汇,并且不是意指为限制的目的。除非上下文清楚地作出相反的表示,在此使用的单数形式“一个”和“该”可以意指为也包括复数形式。术语“包括”和“具有”是包括在内的意思,并且因此指定存在所声明的特征、整体、步骤、操作、元件和/或组件,但是不排除存在或额外地具有一个或以上的其他特征、整体、步骤、操作、元件、组件和/或其组合。除非明确地指示了执行的次序,在此描述的该方法步骤、处理和操作不解释为一定需要按照所论述和示出的特定的次序执行。还应当理解的是,可以采用附加的或者可选择的步骤。

当元件或者层称为是“在……上”、“与……接合”、“连接到”或者“联接到”另一个元件或层,其可以是直接在另一个元件或者层上、与另一个元件或层接合、连接到或者联接到另一个元件或层,也可以存在介于其间的元件或者层。与此相反,当元件或层称为是“直接在……上”、“与……直接接合”、“直接连接到”或者“直接联接到”另一个元件或层,则可能不存在介于其间的元件或者层。其他用于描述元件关系的词应当以类似的方式解释(例如,“在……之间”和“直接在……之间”、“相邻”和“直接相邻”等)。在此使用的术语“和/或”包括该相关联的所罗列的项目的一个或以上的任一和所有的组合。虽然此处可能使用了术语第一、第二、第三等以描述各种的元件、组件、区域、层和/或部分,这些元件、组件、区域、层和/或部分不受到这些术语的限制。这些术语可以只用于将一个元件、组件、区域或部分与另一个元件、组件、区域或部分区分。除非由上下文清楚地表示,在此使用诸如术语“第一”、“第二”及其他数值的术语不意味序列或者次序。因此,在下方论述的第一元件、组件、区域、层或者部分可以采用第二元件、组件、区域、层或者部分的术语而不脱离该示例实施例的教导。

空间的相对术语,诸如“内”、“外”、“在下面”、“在……的下方”、“下部”、“上方”、“上部”等,在此可出于便于描述的目的使用,以描述如图中所示的一个元件或者特征和另外一个或多个元件或者特征之间的关系。空间的相对术语可以意指包含除该图描绘的取向之外该装置的不同的取向。例如如果翻转该图中的装置,则描述为“在其他元件或者特征的下方”或者“在元件或者特征的下面”的元件将取向为“在其他元件或者特征的上方”。因此,示例术语“在……的下方”可以包含朝上和朝下的两种取向。该装置可以以其他方式取向(旋转90度或者其他取向)并且以此处的空间的相对描述解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1