无主从通信方法及装置与流程

文档序号:12376103阅读:381来源:国知局
无主从通信方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种无主从通信方法及装置。



背景技术:

现有的主从通信方法,如基于RS-485的通信方法中,在一个通信网络中需指定一个主机,通信时序由该主机控制,主机采用查询方式接收发送数据,从机采用中断方式接收发送数据。这种通信方法的缺点是,当主机有故障不能发送数据时,整个通信网络会陷于瘫痪状态。

解决上述问题可以采用无主从的通信方法。现有的无主从通信方法中,例如基于CAN(Controller Area Network,控制器局域网络)的通信方法。其中,在同一个通信网络中的各节点不分主机、从机,每一个节点可视需要随时发送数据,不需要发送数据时不发送,使总线的通信利用率较高,且任一节点故障不会影响其他节点通信,从而提高了总线的可靠性。然而,这种无主从的通信方法成本较高,需要使用带CAN功能的单片机或者专用的CAN通信芯片。



技术实现要素:

有鉴于此,本发明提供一种无主从通信方法及装置,在提高通信可靠性的同时,无需使用专用芯片来实现无主从功能,从而降低了成本。

根据本发明的第一方面,提供一种用于包括多个节点的通信网络的无主从通信方法,包括:随机数生成步骤,使所述通信网络中的各节点生成随机数;时间计算步骤,根据所述随机数计算一第一预定时间;以及主机确定步骤,根据在所述第一预定时间内是否检测到总线上有数据来确定主机。

进一步地,如果在所述第一预定时间检测到总线上存在数据并收到其他任一节点发送的数据,则将该其他任一节点作为主机。

进一步地,如果某一节点在所述第一预定时间内未检测到总线上存在数据,则将该节点作为主机主动发送数据。

进一步地,所述多个节点均产生随机数,且各节点所产生的随机数各不相同;以及根据不同的随机数计算出各节点的所述第一预定时间也不相同。

进一步地,所述通信网络中的各所述节点上电后均处于通信接收状态,若在该第一预定时间内正确地接收到其他任一节点发送的数据,则将该任一节点作为主机,并后续所述通信网络的各节点进入正常的通信状态。

进一步地,若某一节点在所述第一预定时间内未检测到主线上有数据,则在该第一预定时间到达后该节点主动发送数据,成为该通信网络中的主机,从而所述通信网络的其他各节点进入正常的通信状态。

进一步地,所述的方法还包括:故障判断步骤,在所述正常通信状态中,若从机在一第二预定时间内未收到来自主机的数据,则判断所述主机出现故障。

进一步地,所述的方法还包括:返回步骤,在判断主机故障后返回信号,从而返回所述主机确定步骤,重新确定主机。

根据本发明的第二方面,提供一种用于包括多个节点的通信网络的无主从通信装置,包括:随机数计算模块、时间计算模块以及主机确定模块;所述随机数生成模块,使所述通信网络中的各节点生成随机数;

时间计算模块,根据所述随机数计算一第一预定时间;以及主机确定模块,根据在所述第一预定时间内是否检测到总线上有数据来确定主机。

进一步地,如果在所述第一预定时间检测到总线上存在数据并收到其他任一节点发送的数据,则将该其他任一节点确定为主机。

进一步地,如果某一节点在所述第一预定时间内未检测到总线上存在数据,则将该节点作为主机主动发送数据。

进一步地,所述多个节点均产生随机数,且各节点所产生的随机数各不相同;以及根据不同的随机数计算出各节点的所述第一预定时间也不相同。

进一步地,所述通信网络中的各所述节点上电后均处于通信接收状态,若在该第一预定时间内正确地接收到其他任一节点发送的数据,则将该任一节点作为主机,并后续所述通信网络的各节点进入正常的通信状态。

进一步地,若某一节点在所述第一预定时间内未检测到主线上有数据,则在该第一预定时间到达后该节点主动发送数据,成为该通信网络中的主机,从而所述通信网络的其他各节点进入正常的通信状态。

进一步地,所述的装置还包括:故障判断模块,用于在所述正常通信状态中,若从机在一第二预定时间内未收到来自主机的数据,判断所述主机出现故障。

进一步地,所述的装置还包括:返回模块,在判断主机故障后返回信号,从而使主机确定模块重新确定主机。

根据本发明的上述方案,通过根据在所述预定时间内是否检测到总线上是否存在数据,即存在有某节点发出的数据,来确定主机,实现了无主从通信的同时,消除了主从通信方案中主机故障导致的整个网络故障,提高了通信的可靠性,并且无需采用专用芯片,降低了成本。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1示出了根据本发明具体实施方式提供的无主从通信方法的流程图之一。

图2示出了根据本发明具体实施方式提供的无主从通信装置的结构框图。

图3示出了根据本发明具体实施方式提供的无主从通信方法的流程图之二。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件并没有详细叙述。

此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。

除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。

以下首先结合图1说明根据本发明的一种用于包括多个节点的通信网络的无主从通信方法。图1示出了根据本发明一优选实施例的无主从通信方法的流程图。如图1所示,所述通信方法包括:随机数生成步骤S1、时间计算步骤S2以及主机确定步骤S3。所述随机数生成步骤S1,使所述通信网络中的各节点生成随机数。时间计算步骤S2,根据所述随机数计算一第一预定时间。以及主机确定步骤S3,根据在所述第一预定时间内是否检测到总线上有数据来确定主机。其中,根据随机数计算第一预定时间的具体方法不限,例如可直接将随机数作为第一预定时间的秒数,即当随机数为N时,第一预定时间为N秒,再例如,将随机数乘以一个系数a作为第一预定时间的秒数,即当随机数为N时,第一预定时间为aN秒。具体地,如果在所述第一预定时间检测到总线上存在数据并收到其他任一节点发送的数据,则将该其他任一节点作为主机。进一步地,如果某一节点在所述第一预定时间内未检测到总线上存在数据,则该节点作为主机主动发送数据。

如上,本发明的上述方案中,通过根据在所述预定时间内是否检测到总线上存在数据,即存在有某节点发出的数据,来确定主机,实现了无主从通信的同时,消除了主从通信方案中主机故障导致的整个网络故障,提高了通信的可靠性,并且无需采用专用芯片,降低了成本。

在本发明的上述方法中,所述多个节点均产生随机数,且各节点所产生的随机数各不相同。从而根据这些不同随机数计算出各节点的所述预定时间也各不相同。由于通常是所述预定时间最小的节点首先结束所述预定时间的计时,故通常是该节点先主动发送数据。并且,一旦发出数据,其他节点就不再发了,从而不会造成总线数据的冲突,也能比较容易的确定所述主机。

其中,所述通信网络中的各所述节点上电后均处于通信接收状态,从而各个节点如果在所述第一预定时间内检测到主线上有数据,则继续处于所述接收状态,而不主动发送数据。并且,如果期间正确地接收到其他任一节点发送的数据,则将该任一节点作为主机。继而,后续在收到该作为主机的任一节点点明时,回复数据,从而所述通信网络的各节点进入正常的通信状态。本文中所述的“点明”的含义为,上位机轮流点明下位机,被点名的下位机回复数据,从而建立上位机与下位机的通讯,而未被点明的下位机也会收到上位机点明其他下位机的数据,但是不能回复数据,以免总线上数据冲突。

进一步地,如果某一节点在所述第一预定时间内未检测到主线上有数据,则在该预定时间后该节点主动发送数据,从而成为该通信网络中的主机。并且,后续顺序点明作为从机的其他各节点,从而所述通信网络的各节点进入正常的通信状态。

进一步地,所述方法还包括故障判断步骤S4,在所述正常通信状态中,若从机在一第二预定时间内未收到来自主机的数据,则判断所述主机出现故障。以及进一步地,所述方法还包括返回步骤S5,在判断主机故障后返回信号,使得返回所述主机确定步骤S3,重新确定主机。其中,第二预定时间为预设的可判定是否为通讯异常的时间,可根据具体需求进行设定,例如,第二预定时间为20至40秒,进一步优选为30秒,即当从机在30秒内未接收到来自主机的数据时判定主机出现故障。

下面结合图2说明根据本发明的一种用于包括多个节点的通信网络的无主从通信装置。图2示出了根据本发明一优选实施例的无主从通信装置的结构框图。如图2所示,所述装置包括:随机数生成模块1、时间计算模块2以及主机确定模块3。所述随机数生成模块1,使所述通信网络中的各节点生成随机数。时间计算模块2,根据所述随机数计算一第一预定时间。以及主机确定模块3,根据在所述第一预定时间内是否检测到总线上有数据来确定主机。其中,根据随机数计算第一预定时间的具体方法不限,例如可直接将随机数作为第一预定时间的秒数,即当随机数为N时,第一预定时间为N秒,再例如,将随机数乘以一个系数a作为第一预定时间的秒数,即当随机数为N时,第一预定时间为aN秒。具体地,如果在所述第一预定时间检测到总线上存在数据并收到其他任一节点发送的数据,则将该其他任一节点作为主机。进一步地,如果某一节点在所述第一预定时间内未检测到总线上存在数据,则该节点作为主机主动发送数据。

如上,本发明的上述方案中,通过根据在所述预定时间内是否检测到总线上存在数据,即存在有某节点发出的数据,来确定主机,实现了无主从通信的同时,消除了主从通信方案中主机故障导致的整个网络故障,提高了通信的可靠性,并且无需采用专用芯片,降低了成本。

在本发明的上述装置中,所述多个节点均产生随机数,且使各节点所产生的随机数各不相同。从而根据这些不同随机数计算出各节点的所述预定时间也各不相同。由于通常是所述预定时间最小的节点首先结束所述预定时间的计时,故通常是该节点先主动发送数据。并且,一旦发出数据,其他节点就不再发了,从而不会造成总线数据的冲突,也能比较容易的确定所述主机。

其中,所述通信网络中的各所述节点上电后均处于通信接收状态,从而各个节点如果在所述第一预定时间内检测到主线上有数据,则继续处于所述接收状态,而不主动发送数据。并且,如果期间正确地接收到其他任一节点发送的数据,则将该任一节点作为主机。继而,后续在收到该作为主机的任一节点点明时,回复数据,从而所述通信网络的各节点进入正常的通信状态。

进一步地,如果某一节点在所述第一预定时间内未检测到主线上有数据,则在该预定时间后该节点主动发送数据,从而成为该通信网络中的主机。并且,后续顺序点明作为从机的其他各节点,从而所述通信网络的各节点进入正常的通信状态。

进一步地,所述装置还包括故障判断模块4,用于在所述正常通信状态中,若从机在一第二预定时间内未收到来自主机的数据,则判断所述主机出现故障。以及进一步地,所述装置还包括返回模块5,在判断主机故障后返回信号,使得主机确定模块3重新确定主机。其中,第二预定时间为预设的可判定是否为通讯异常的时间,可根据具体需求进行设定,例如,第二预定时间为20至40秒,进一步优选为30秒,即当从机在30秒内未接收到来自主机的数据时判定主机出现故障。

以下结合图3说明根据本发明所述的无主从通信方法的一优选的具体实施例。如图3所示,设各所述节点产生的随机数为N,计算出的所述第一预定时间为t。设所述通信网络中有n个节点,即节点1到节点n。在上电时,各所述节点均产生一个随机数N,节点1到节点n所对应的随机数分别为N1到Nn,各随机数大小均不相同。接下来,各节点根据其所产生的随机数算出一第一预定时间t。节点1到节点n对应的该第一预定时间分别为t1到tn,且各时间大小均不相同。

各节点上电后均处于接收状态。若在t时间(第一预定时间),例如对于节点i来说,在ti时间内检测到总线上有数据,则不主动发数据,继续处于接收状态。若接收到正确的其他任一节点的数据,则把该其他任一节点作为主机。并且,后续收到该主机点明从机,则回复数据,从而各节点进入正常通信状态。

另一方面,若在t时间(第一预定时间),例如对于节点i来说,在ti时间内未检测到通讯总线上有数据,则t时间到后主动发送数据,从而成为主机。后续顺序点明各从机,各节点继而进入正常通信状态。

在进入正常通信状态后,若从机连续一段时间(第二预定时间)未收到主机数据,则判断与主机出现通信故障。为避免主机故障影响整个通信网络,各节点通信故障后延时t时间主动发送数据,按上面步骤重新寻找主机。

以上对本发明的用于通信网络的无主从通信方法及装置进行了描述。根据本发明的上述方案,通过根据在所述预定时间内是否检测到总线上是否存在数据,即存在有某节点发出的数据,来确定主机,实现了无主从通信的同时,消除了主从通信方案中主机故障导致的整个网络故障,提高了通信的可靠性,并且无需采用专用芯片,降低了成本。并且由于通常是所述预定时间最小的节点先主动发送数据,一旦发出数据,其他节点就不再发了,从而不会造成总线数据的冲突,也能比较容易的确定所述主机。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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