CN101610145A - 一种实现分布式系统的同步控制的方法和系统 - Google Patents
一种实现分布式系统的同步控制的方法和系统 Download PDFInfo
- Publication number
- CN101610145A CN101610145A CNA2009100885076A CN200910088507A CN101610145A CN 101610145 A CN101610145 A CN 101610145A CN A2009100885076 A CNA2009100885076 A CN A2009100885076A CN 200910088507 A CN200910088507 A CN 200910088507A CN 101610145 A CN101610145 A CN 101610145A
- Authority
- CN
- China
- Prior art keywords
- slave
- host
- module
- data
- address
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000003111 delayed effect Effects 0.000 claims abstract description 3
- 230000001360 synchronised effect Effects 0.000 claims description 69
- 230000005540 biological transmission Effects 0.000 claims description 56
- 230000004044 response Effects 0.000 claims description 46
- 238000001514 detection method Methods 0.000 claims description 40
- 238000004458 analytical method Methods 0.000 claims description 15
- 238000013519 translation Methods 0.000 claims description 15
- 230000001960 triggered effect Effects 0.000 claims description 15
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 230000001934 delay Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 13
- 230000001276 controlling effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241000238876 Acari Species 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000593 degrading effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种实现分布式系统的同步控制的方法,分布式系统的主机周期性地发送呼叫包,将此呼叫包作为整个分布式系统的同步信号,分布式系统中各个从机接收到呼叫包后产生接收中断,从而触发外部中断,在外部中断的起始时刻执行同步控制;主机延时至从机调用外部中断的起始时刻,执行同步控制,从而实现整个分布式系统的同步控制;同时,本发明还公开了一种基于RS485网络实现分布式系统的同步控制的系统。本发明方案中,无需在分布式系统中增加额外的时钟线缆,只需要简单的硬件电路,配合易于实现的软件流程,就可以实现分布式系统的同步控制,所需的硬件成本非常低,简单易行,具有较大的实用价值。
Description
技术领域
本发明涉及分布式系统,尤其涉及到一种实现分布式系统的同步控制的方法和系统。
背景技术
在现代工业控制、计算机通信等领域,分布式系统以其极好的优异特性,得到了越来越多的应用,但同步控制一直是其应用中存在的普遍技术难题。同步控制是分布式系统的核心技术之一,其目的是维护一个全局一致的物理或逻辑时钟,以使分布式系统中的消息、事件及各节点与时间有关的行为能够有一个全局一致的解释,确保节点发送和接收消息在时间逻辑上是完全正确的。在分布式系统中,不同的节点需要统一的时钟来实现全局的系统节拍,如果没有全局的系统节拍,就很难获得精确的同步控制。
目前常见的同步控制的方法有:
1)不同节点使用同一个物理时钟源,这种方法最为简单和直观。但在分布式系统中,由于各节点地理位置的分散性,采用这种方法需要增加单独的时钟线,在应用中并不易于实现。
2)使用全球定位系统(GPS)卫星时钟进行时钟同步;
GPS卫星时钟,具有工作稳定、时间精度高、安全可靠、无需人工校时维护等优点,但是在使用时,需要购买GPS接收机,而且,由于GPS归美国政府所有,受控于美国国防部,对世界各地的用户未有任何政府承诺,而且用户只支付了GPS接收机的费用,并未支付GPS的使用费用。因此这种方法自主性差,也带来一些不稳定因素。因此,这种方法实际使用中具有其局限性。
3)使用ieee1588协议,解决网络时钟同步问题;
2002年提出的ieee1588标准旨在解决网络的时钟同步问题,制定了将分散在测量和控制系统内的分离节点上独立运行的时钟,同步到一个高精度和高准确度时钟上的协议。这种ieee1588标准的方法在实际应用中,需要较高成本,技术复杂,实现难度较高。
发明内容
有鉴于此,本发明的主要目的在于提供一种实现分布式系统的同步控制的方法和系统,使得分布式系统的同步控制简单而易于实现。
为达到上述目的,本发明的技术方案是这样实现的:
一种实现分布式系统的同步控制的方法,该方法包括:
主机在当前呼叫周期产生呼叫包,并发送呼叫包给分布式系统中的所有从机;
主机延时至从机触发的外部中断的起始时刻,执行同步控制;
各从机接收呼叫包,产生接收中断,由接收中断触发外部中断,在外部中断的起始时刻,执行同步控制。
所述产生呼叫包,具体为:设置第9位数据位为呼叫包标识,根据上一个呼叫周期中的数据传送方向设置数据传送方向标识,并设置呼叫从机的地址;和/或,
所述从机包括MCU和外部中断电路,该外部中断电路至少包括单稳态触发电路,所述由接收中断触发外部中断电路,具体为:接收中断中,设置MCU的与外部中断电路相连接的输出端口为高,外部中断电路中的单稳态触发电路接收到所述端口为高后,单稳态触发电路的输出端触发MCU的外部中断;和/或,
所述发送呼叫包之前,进一步包括:延时间歇时间,所述间歇时间内不进行数据传输;和/或,
所述主机延时的延时时间的长度为:主机发送呼叫包的时刻至从机触发外部中断的起始时刻之间的时间差,所述时间差配置在主机中;或者,由呼叫包的发送时间加上从机的接收中断响应时间和外部中断响应时间计算所得。
所述触发MCU的外部中断之后,进一步包括:在MCU的外部中断中,对MCU的硬件时钟定时器的寄存器进行复位处理;和/或,
设置每个呼叫周期内允许传送的数据的最大字节数,所述发送呼叫包之后进一步包括:主机根据当前呼叫周期向从机发送的数据包数据在其所属数据包中的位置进行数据标识;和/或,
设置每个呼叫周期内允许传送的数据的最大字节数,所述从机接收呼叫包之后进一步包括:根据当前呼叫周期向主机发送的数据包数据在其所属数据包中的位置进行数据标识。
所述执行同步控制之后,进一步包括:依据上一个呼叫周期中的数据标识以及所述呼叫包中的数据传送方向标识、呼叫从机的地址,在当前呼叫周期继续数据的传送。
该方法进一步包括:进行同步控制的异常保护,包括:
设备作为从机投入已有分布式系统的保护,具体为:主机通过发送系统检测命令得知有从机的投入,分布式系统主机从原本空闲的从机地址中去除投入的从机的地址,将投入设备作为从机纳入分布式系统;和/或,
设备作为主机投入已有分布式系统的保护,具体为:原主机通过发送系统检测命令确定有主机投入,根据该主机是否发申请主机命令,确定分布式系统的主机;和/或,
从机退出分布式系统的保护,具体为:当主机检测到有从机退出分布式系统时,主机进行对应处理;和/或,
分布式系统中无主机或者主机因故退出的保护,具体为:各从机在设置的异常时间内没有接收到呼叫包,则各从机根据自身地址号在对应时间主动发送申请主机命令,先发送申请主机命令的从机成为主机。
一种实现分布式系统的同步控制的系统,该系统包括:
主机,用于在当前呼叫周期性产生呼叫包,发送呼叫包后,延时至从机触发的外部中断的起始时刻,执行主机的同步控制;
从机,用于接收主机下发的呼叫包,产生接收中断,由接收中断触发外部中断,在外部中断的起始时刻,执行该从机自身的同步控制。
所述主机包括:第一定时模块,用于对主机发送呼叫包的呼叫周期进行计时,在每个呼叫周期触发呼叫包模块;
呼叫包模块,用于根据第一定时模块的触发产生地址帧作为呼叫包;
第一收发模块,用于发送呼叫包模块产生的呼叫包,并同时触发延时同步模块;
延时同步模块,用于延时至从机触发的外部中断的起始时刻时,执行主机的同步控制;
和/或,从机包括:第二收发模块、接收中断模块和外部中断模块,其中,
第二收发模块,用于接收来自主机的呼叫包;
接收中断模块,用于检测到第二收发模块收到呼叫包时产生接收中断,并触发外部中断模块;
外部中断模块,用于根据接收中断模块的触发,触发外部中断,在外部中断的起始时刻,执行从机的同步控制。
所述主机进一步还包括:第一数据标识模块和第一数据控制模块,其中,
第一定时模块在每个呼叫周期,进一步用于触发第一数据标识模块;
第一数据标识模块,用于根据第一收发模块中主机在当前呼叫周期内向从机发送的数据在其所属数据包中的位置进行数据标识;
第一收发模块,进一步用于主机和从机间的数据传送,向从机发送所述数据标识;还用于接收从机发送的数据标识;
延时同步模块执行主机的同步控制后,进一步用于触发第一数据控制模块;
第一数据控制模块,用于根据延时同步模块的触发,依据上一个呼叫周期中的数据标识及所述呼叫包中的数据传送方向标识和呼叫从机的地址,控制第一收发模块在当前呼叫周期与从机间传送数据;
和/或,所述从机进一步包括:第二数据标识模块和第二数据控制模块,其中,
第二数据标识模块,用于根据第二收发模块中从机在当前呼叫周期内向主机发送的数据在其所属数据包中的位置进行数据标识;
第二收发模块,进一步用于从机和主机间的数据传送;向主机发送所述数据标识;还用于接收主机发送的数据标识;
外部中断模块执行从机的同步控制后,进一步用于触发第二数据控制模块;
第二数据控制模块,用于根据外部中断模块的触发,依据上一个呼叫周期中的数据标识及所述呼叫包中的数据传送方向标识和呼叫从机的地址,控制第二收发模块在当前呼叫周期与主机间传送数据。
所述主机进一步包括:间歇时间模块,用于控制第一收发模块延时间歇时间后发送呼叫包;和/或,
所述从机进一步包括:硬件时钟定时器,外部中断模块进一步用于在外部中断过程中对硬件时钟定时器的寄存器进行复位处理。
所述主机包括:第二定时模块、广播命令模块、检测分析模块和地址发送模块,其中,
第二定时模块,用于对检测周期进行计时,每个检测周期触发广播命令模块;
广播命令模块,用于根据第二定时模块的触发,发送系统检测命令;
检测分析模块,用于接收应答,通过检测应答的地址判断是否有设备新投入或从机退出分布式系统,确定有从机退出分布式系统时,进行对应处理;确定有从机新投入分布式系统时,触发地址发送模块从原本空闲的从机地址中去除所述地址;确定有主机新投入分布式系统时,并且未接收到主机申请命令,触发地址发送模块向对应主机发送可用从机地址;
地址发送模块,用于根据检测分析模块的触发从原本空闲的从机地址中去除新投入从机的地址或提供可用从机地址;
所述从机或新投入的所述设备包括:广播命令应答模块、主机申请模块和地址转换模块,其中,
广播命令应答模块,用于接收来自主机的系统检测命令,使用可用从机地址或主机地址向主机返回应答;
主机申请模块,用于发送申请主机命令;
地址转换模块,用于更改自身主机地址为主机提供的可用从机地址或更改自身从机地址为主机地址。
所述地址转换模块所在的设备为主机时,
检测分析模块确定应答的地址与主机地址相同时,进一步用于确定是否在设定时间内收到主机申请命令,如果收到,则确定有主机新投入分布式系统,触发地址转换模块;如果未收到,则触发地址发送模块向对应设备发送可用从机地址;
地址转换模块,用于根据检测分析模块的触发将主机地址更改为可用从机地址。
本发明提供的一种实现分布式系统的同步控制的方法和系统,分布式系统的主机周期性地发送呼叫包,将此呼叫包作为整个分布式系统的同步信号,实现整个分布式系统的同步控制,从而,在分布式系统中不用增加额外的时钟线缆,只需要简单的硬件电路,再配合易于实现的软件流程,就可以实现分布式系统的同步控制,所需的硬件成本非常低,简单易行,具有较大的实用价值。
附图说明
图1为本发明中基于RS485网络实现分布式系统的同步控制的方法流程示意图;
图2为本发明中基于RS485网络实现分布式系统的同步控制的系统结构示意图;
图3为本发明中基于RS485网络实现分布式系统的同步控制的异常保护的系统结构示意图;
图4为本发明中监控器之间的连接示意图;
图5为本发明中外部中断电路示意图;
图6为本发明中所有监控器实现执行PWM同步命令的流程示意图。
具体实施方式
本发明的基本思想是:在分布式系统中,主机周期性地发送呼叫包,此呼叫包作为整个分布式系统的同步信号,分布式系统中各个从机接收到呼叫包后产生接收中断,由接收中断触发外部中断,在外部中断的起始时刻执行同步控制;主机发送呼叫包后,延时至从机触发的外部中断的起始时刻,执行同步控制,从而实现整个分布式系统的同步控制。
下面以RS485网络为例,结合附图和具体实施例对本发明再做进一步的详细说明。
本发明基于RS485网络实现分布式系统的同步控制的方法,如图1所示,该方法的具体步骤包括:
步骤101:分布式系统中的所有设备在初始投入运作前,确定呼叫包的格式、呼叫周期以及主机执行同步控制的延时时间,所有设备在初始投入运作时,进入静音状态;
分布式系统中的所有设备在初始投入运作前,首先约定广播命令和主机对应的地址,例如,约定地址为0的数据包表示对分布式系统内所有从机发送的广播命令,地址127表示主机地址,同时,确定呼叫包格式,以及根据实际情况、分布式系统要求同步控制的时间以及从机的硬件时钟周期,确定分布式系统中主机发送呼叫包的周期、即呼叫周期。其中,确定呼叫包格式具体为:
在RS485网络通信中,数据包全部采用9位数据位,其中第9位(TB8)被用来表征该数据包的帧是地址帧还是数据帧,在正常通信中,设定TB8为0表征数据帧,采用数据帧传送数据包,这里,设定TB8为1表征地址帧,采用地址帧作为呼叫包;
进一步的,呼叫包中除了第9位,在剩下的8个数据位中,取其中1位(TBx)设置为数据传送方向标识,标识主机在发送呼叫包时,RS485网络通信中数据的传送方向,设置TBx为0,表示主机在发送呼叫包时,数据由从机发往主机;TBx为1,表示主机在发送呼叫包时,数据由主机发往地址匹配的从机;其中,呼叫包中剩下的7个数据位用来表示呼叫从机的地址,该呼叫从机的地址为主机发送呼叫包时与主机有数据传送的从机的地址,因此,主机可以将数据发往除了广播命令地址和主机地址外的126个地址中的任意一个从机;
其中,确定的呼叫周期要短于从机的硬件时钟周期;
同时,设定主机执行同步控制的延时时间,延时时间的长度可以是主机发送呼叫包的时刻至从机的MCU触发外部中断的起始时刻之间的时间差,该时间差配置在主机中,该时间差可以通过多次实际测量得到,以确保精确性;或者通过计算来确定,计算方法为:呼叫包的发送时间加上从机的接收中断响应时间和外部中断响应时间,呼叫包的发送时间、从机的接收中断响应时间、从机的外部中断响应时间的具体取值均为已知,呼叫包的发送时间即一个呼叫包由主机发送的时刻开始至从机收到的时刻结束,可以是通过多次测量得到的经验值,从机的接收中断响应时间和外部中断响应时间与从机的设备性能有关。
然后,在分布式系统中,将一台设备的地址设置为约定的主机地址,作为主机,其他设备设置从机地址,作为从机,所有设备在初始投入运作的一段时间内,均不发送数据,只处于接收状态,称为静音状态。静音状态主要是为了保证分布式系统中只有一台作为主机的设备。设备投入到已有的分布式系统时,被设置为主机的设备,如果在静音状态时没有接收到呼叫包,则进行主机运作;如果在静音状态时接收到呼叫包,说明分布式系统中有另一主机存在,则分布式系统认为该设备作为主机投入已有分布式系统,将采取异常保护;
步骤102:分布式系统的所有设备在静音状态后,由主机开始呼叫周期的计时,并在每个呼叫周期向分布式系统中所有从机发送由主机产生的呼叫包,并对主机和从机间的数据传送进行数据标识;
在RS485网络通信中,分布式系统的所有设备在静音状态后,由主机开始呼叫周期的定时,如在一个呼叫周期到、即一个呼叫周期的开始或结束时,主机产生一个步骤101中所述格式的地址帧作为呼叫包,其中,呼叫包中的数据传送方向标识根据上一个呼叫周期中主机和从机间的数据传送方向进行设置,并且设置呼叫包中的呼叫从机的地址,呼叫包中的从机地址根据上一个呼叫周期中与主机进行通信的从机的从机地址或者指定的从机地址进行设置。主机将产生的呼叫包在每个呼叫周期发送给分布式系统中所有从机。主机和从机间通过数据包进行数据通信,这里的数据包中的数据,包括数据包传送的停止命令。
另外,对于主机和从机间进行的数据传送,设置了每个呼叫周期内允许传送的数据的最大字节数、即周期字节数。这样,如果主机或者从机在一个呼叫周期内传送的数据包比较长,由于受周期字节数的限制,则可能无法在一个呼叫周期内完整发送该数据包,因此,需要通过一个字节作为表示数据包是否完整发送的数据标识。这样,在主机发送呼叫包后或者从机接收到呼叫包后,需要发送数据的主机或从机将按照周期字节数向对方发送数据包数据,并在传送数据包数据后,根据当前发送的数据包数据在其所属数据包中的位置进行数据标识。这里的数据标识,用来表明数据包是否发送完整,包括:继续标识和终止标识,即主机或者从机在发送完含有停止命令的数据包数据、即数据包的最后一段后发送终止标识;在发送完其他数据包数据、即数据包其他各段后发送继续标识。如果主机或者从机发送的数据包长度比较短,在一个呼叫周期即可完成发送,则只在其后发送终止标识即可。为了便于数据的识别,主机或者从机可以在一个呼叫周期内只发送完整数据包。此处所说的发送完整数据包是指发送的是含有停止命令的数据包数据,可以是一个呼叫周期内发送的一个完整的数据包,即使该数据包的全部字节数并未达到周期字节数,也不再发送其他数据包的数据;也可以是一个呼叫周期内发送的含有停止命令的数据包数据,该数据包数据与之前的呼叫周期发送的数据包数据共同组成一个完整的数据包,类似地,即使该数据包数据并未达到周期字节数,也不再发送其他数据包的数据,该数据所属的数据包的其他数据在之前的一个或多个呼叫周期,则依据周期字节数来发送。
其中,为了确保主机发送呼叫包时分布式系统中没有数据在传输,主机可以在发送呼叫包前,延时一定的时间,作为间歇时间,间歇时间的长度可以根据实际的数据传输速率进行设定,当间歇时间到达后,主机再发送呼叫包;这样,主机或者从机按照上面数据标识的方法,对被间歇时间所中断的数据包中的数据传送进行数据标识。
以下将对主机和从机在主机发送完呼叫包后的操作步骤进行分别阐述。
其中,主机在发送完呼叫包后的操作步骤包括:
步骤103:主机发送呼叫包后,延时至从机、如从机的微控制单元(MCU)触发外部中断的起始时刻,执行同步控制;
主机发送呼叫包后,按照步骤101中设定的延时时间,进行延时,延时至从机的MCU触发外部中断的起始时刻,主机执行同步控制,例如:通过产生自身的时钟滴答或同步控制信号等,进行同步控制;
步骤104:主机在执行同步控制后,根据发送的呼叫包中的数据传送方向标识和呼叫从机的地址、以及在发送呼叫包前的数据标识即上一个呼叫周期中的数据标识,继续传送或接收数据;
具体为,主机在执行同步控制后,依据产生呼叫包时呼叫包中设置的数据传送方向标识,确定数据的传送方向,如果数据传送方向标识表示主机发送呼叫包时数据由从机发往主机,则主机查询发送呼叫包前接收的数据标识,其中,若数据标识为终止标识,则主机接收与呼叫包中呼叫从机的地址相匹配的从机发送的新的数据包的数据;若数据标识为继续标识,则主机接收与呼叫包中呼叫从机的地址相匹配的从机发送的在上一个呼叫周期未发送完的数据包的数据;
如果数据传送方向标识表示主机发送呼叫包时数据由主机发往从机,则主机查询发送呼叫包前发送的数据标识,其中,若数据标识为终止标识,则主机向与呼叫包中呼叫从机的地址相匹配的从机发送新的数据包的数据;若数据标识为继续标识,则主机继续向与呼叫包中呼叫从机的地址相匹配的从机发送在上一个呼叫周期未发送完的数据包的数据;
其中,从机在主机发送完呼叫包后的操作步骤包括:
步骤105:分布式系统中的各个从机接收到主机发送的呼叫包,产生接收中断,由接收中断产生外部中断电路的触发信号,触发外部中断;
在RS485网络通信中,分布式系统中的各个从机根据接收到的数据包中的第9位确定出所接收到的数据包的帧是否为地址帧、即主机发送的呼叫包,当分布式系统中的各个从机接收到主机发送的呼叫包后,从机中的MCU产生接收中断,接收中断改变MCU与外部中断电路相连接的输出端口状态,作为触发信号触发外部中断电路中的单稳态触发电路;
步骤106:外部中断电路接收到接收中断产生的触发信号后,由外部中断电路触发MCU的外部中断,各从机在各自MCU的外部中断的起始时刻,执行同步控制;
外部中断电路中的单稳态触发电路接收到接收中断产生的触发信号后,单稳态触发电路的输出端改变MCU的外部中断端口的状态,从而触发MCU的外部中断,各从机在MCU的外部中断的起始时刻,执行同步控制,例如:通过产生各自的时钟滴答或同步控制信号等,进行同步控制;
此外,在MCU的外部中断中要对MCU的硬件时钟定时器的寄存器进行复位处理,即每个呼叫周期均对MCU的硬件时钟定时器的寄存器进行复位处理,使自身的硬件时钟定时器不产生中断、即不能完成硬件时钟周期,防止该从机进入无主机的异常保护,因此,需要设置呼叫周期短于从机的硬件时钟周期;
步骤107:分布式系统中的各个从机在执行同步控制后,根据收到的呼叫包中的数据传送方向标识和呼叫从机的地址、以及在主机发送呼叫包前的数据标识即上一个呼叫周期中的数据标识,在当前呼叫周期继续传送或接收数据;
具体为,分布式系统中的各个从机在执行同步控制后,查询收到的呼叫包中呼叫从机的地址和数据传送方向标识,如果数据传送方向标识表示主机发送呼叫包时数据由从机发往主机,则与呼叫包中呼叫从机的地址相匹配的从机查询在主机发送呼叫包前发送的数据标识,若数据标识为终止标识,则与呼叫包中呼叫从机的地址相匹配的从机向主机发送新的数据包的数据;若数据标识为继续标识,则与呼叫包中呼叫从机的地址相匹配的从机继续向主机发送在上一个呼叫周期该从机未发送完的数据包的数据;
如果数据传送方向标识表示主机发送呼叫包时数据由主机发往从机,则从机查询在主机发送呼叫包前接收的数据标识,其中,若数据标识为终止标识,则与呼叫包中呼叫从机的地址相匹配的从机接收主机发送的新的数据包的数据;若数据标识为继续标识,则与呼叫包中呼叫从机的地址相匹配的从机继续接收主机发送的在上一个呼叫周期未发送完的数据包的数据。
本发明基于RS485网络实现分布式系统的同步控制的方法,进一步的,该方法还包括分布式系统的异常保护方法,包括:设备作为从机投入已有分布式系统的保护、设备作为主机投入已有分布式系统的保护、从机退出分布式系统的保护、以及分布式系统中无主机或者主机因故退出的保护;
具体为,分布式系统中的主机将定期以广播命令的形式发送系统检测命令,分布式系统中的其他各个设备接收系统检测命令并进行应答,主机通过检测应答的地址判断是否有设备新投入或从机退出分布式系统。该系统检测命令为广播命令,根据约定是地址为0的数据包。
当设备作为从机投入已有分布式系统时,即设备的地址为分布式系统中空闲的从机地址,该设备在静音状态后第一次接收到系统检测命令时发送应答,分布式系统内的主机检测到发送应答的设备的地址为分布式系统内没有用到过的从机地址、即原本空闲的从机地址,也就是可用从机地址,分布式系统主机从原本空闲的从机地址中去除此地址,将其纳入从机进行管理,该设备进行从机运作;
当有从机退出分布式系统时,分布式系统内的主机检测到应答的地址缺少某个已经使用的从机地址,则根据实际需要加以处理,比如:提醒有从机退出、提供退出的从机的地址等;
当设备作为主机投入已有分布式系统时,即设备地址为分布式系统中原主机的地址,该设备在静音状态后第一次接收到系统检测命令时,向分布式系统中的原主机发送应答,分布式系统中的原主机检测到应答的地址与自身地址相同,则分布式系统中的原主机继续检测是否有申请主机命令,如果该设备在静音状态后,向分布式系统中原主机发送申请主机命令,则原主机在检测到此设备应答后的一段时间内,比如:在到下次此设备发送应答的这段时间内,检测到申请主机命令后,将自身的主机地址更改为分布式系统中的可用从机地址,降格为从机,进行从机运作,包括:接收呼叫包和执行同步控制等;新投入的主机,进行主机运作,包括:周期性的发送呼叫包、定期发送广播命令以及控制整个分布式系统的通信等;如果作为主机投入的设备没有发送申请主机命令,原主机在一段时间内没有收到申请主机命令,则原主机下发分布式系统中的可用从机地址给该设备,该设备作为从机进行从机运作;
此外,当分布式系统中无主机或者主机因故退出后,各从机会在一段时间、如设置的异常时间内没有接收到呼叫包,从而从机不能产生MCU的外部中断,从机中的硬件时钟定时器将会完成多个硬件时钟周期,如2~3个硬件时钟周期,各从机根据自身的地址号,延时不同的时间后,主动发送申请主机命令,申请成为主机,如地址号为1的从机延时0.1秒钟申请主机,地址号为2的从机延时0.2秒钟申请主机等;其中,先发送申请主机命令的从机将不会接收到其他从机发送的申请主机命令,从而成为主机,地址改为主机的地址,代替原主机进行主机运作;申请主机命令以广播命令的形式发送;
当原先的主机重新投入后,将按照上述的分布式系统中投入的设备为主机时的方法进行操作,这里不再赘述。
上述的所有主机和从机的操作方法,在分布式系统中的每台设备都可以执行,也就是说,分布式系统中的每台设备既可以作为主机也可以作为从机按照上述的方法进行运作。
以上为本发明基于RS485网络实现分布式系统的同步控制的方法的较佳实施例,通过上述方法,本发明基于RS485网络实现分布式系统的同步控制的系统,如图2所示,该系统包括:主机20和从机21;其中,
主机20,用于在当前呼叫周期产生呼叫包,发送呼叫包后,延时至从机触发的外部中断的起始时刻,执行主机的同步控制;进一步用于主机的数据接收和发送;
从机21,用于接收主机下发的呼叫包,产生接收中断,由接收中断触发外部中断,在外部中断的起始时刻,执行该从机自身的同步控制;进一步用于从机的数据接收和发送;
下面对主机20和从机21在实现分布式系统的同步控制中的具体运作进行分别阐述。
主机20包括:第一定时模块201、呼叫包模块202、第一收发模块203、延时同步模块204,其中,
第一定时模块201,用于对主机20发送呼叫包的呼叫周期进行计时,在每个呼叫周期触发呼叫包模块202;
呼叫包模块202,用于根据第一定时模块201的触发产生地址帧作为呼叫包;
第一收发模块203,用于发送呼叫包模块202产生的呼叫包,并同时触发延时同步模块204;进一步用于主机20和从机21间的数据传送;
延时同步模块204,用于延时至从机21触发的外部中断的起始时刻时,执行主机20的同步控制;延时同步模块204可根据设定的延时时间进行延时。
主机20进一步包括:第一数据标识模块205和第一数据控制模块206,其中,
第一定时模块201在每个呼叫周期,进一步用于触发第一数据标识模块205;
第一数据标识模块205,用于根据第一收发模块203中主机20在当前呼叫周期内向从机21发送的数据在其所属数据包中的位置进行数据标识;其具体实现可参照图1步骤102中主机和从机间进行数据传送的相关描述,在此不再赘述;
第一收发模块203,进一步用于主机20和从机21间的数据传送,向从机21发送第一数据标识模块205确定的数据标识;还用于接收从机21发送的数据标识;
呼叫包模块202产生呼叫包具体为:产生地址帧作为呼叫包,根据第一收发模块203中上一个呼叫周期中主机20和从机21间的数据传送方向设置呼叫包中的数据传送方向标识,并设置呼叫包中的呼叫从机的地址;所述呼叫包的具体格式可参照图1步骤101中的相关描述,在此不再赘述;
延时同步模块204执行主机20的同步控制后,进一步用于触发第一数据控制模块206;
第一数据控制模块206,用于根据延时同步模块204的触发,依据上一个呼叫周期中的数据标识及主机发送的呼叫包中的数据传送方向标识和呼叫从机的地址,控制第一收发模块203在当前呼叫周期与从机21间传送数据,上一个呼叫周期中的数据标识具体可以是第一数据标识模块205在上一个呼叫周期确定的、和/或从机21在上一个呼叫周期发送的数据标识;其具体实现可参照图1步骤104中的相关描述,在此不再赘述。
另外,主机20可以进一步包括:间歇时间模块207,用于控制第一收发模块203延时间歇时间后发送呼叫包,以确保主机20发送呼叫包时分布式系统中没有数据在传输。
从机21包括:第二收发模块211、接收中断模块212和外部中断模块214,其中,
第二收发模块211,用于接收来自主机20的呼叫包;进一步用于从机21和主机20间的数据传送;
接收中断模块212,用于检测到第二收发模块211收到呼叫包时产生接收中断,并触发外部中断模块214;
外部中断模块214,用于根据接收中断模块212的触发,触发外部中断,在外部中断的起始时刻,执行从机21的同步控制。
从机21进一步包括:第二数据标识模块215和第二数据控制模块216,其中,
第二数据标识模块215,用于根据第二收发模块211中从机21在当前呼叫周期内向主机20发送的数据在其所属数据包中的位置进行数据标识;其具体实现可参照图1步骤102中主机和从机间的数据传送的相关描述,在此不再赘述;
第二收发模块211,进一步用于向主机20发送第二数据标识模块215确定的数据标识;还用于接收主机20发送的数据标识;
外部中断模块214执行从机21的同步控制后,进一步用于触发第二数据控制模块216;
第二数据控制模块216,用于根据外部中断模块214的触发,依据上一个呼叫周期中的数据标识及从机收到的呼叫包中的数据传送方向标识和呼叫从机的地址,控制第二收发模块211在当前呼叫周期与主机20间传送数据,上一个呼叫周期中的数据标识具体可以是第二数据标识模块215在上一个呼叫周期确定的、和/或主机20在上一个呼叫周期发送的数据标识;其具体实现可参照图1步骤107中的相关描述,在此不再赘述。
另外,从机21可以进一步包括:硬件时钟定时器217,外部中断模块214进一步用于在外部中断过程中对硬件时钟定时器217的寄存器进行复位处理,使硬件时钟定时器217不产生中断。
当然,本发明实现基于RS485网络实现分布式系统的同步控制的系统也包括用于在出现异常时进行异常保护的系统,该系统置于分布式系统的所有设备中。如图3所示,主机30包括:第二定时模块301、广播命令模块302、检测分析模块303和地址发送模块304,其中,
第二定时模块301,用于对检测周期进行计时,每个检测周期触发广播命令模块302;
广播命令模块302,用于根据第二定时模块301的触发,发送系统检测命令,该系统检测命令为广播命令,根据约定是地址为0的数据包;
检测分析模块303,用于接收应答,通过检测应答的地址判断是否有设备新投入或从机退出分布式系统,确定有从机退出分布式系统时,根据实际需要加以处理;确定有从机新投入分布式系统时,触发地址发送模块304从原本空闲的从机地址中去除此地址;确定有主机新投入分布式系统时,并且未接收到主机申请命令,触发地址发送模块304向对应主机发送可用从机地址;
地址发送模块304,用于根据检测分析模块303的触发从原本空闲的从机地址中去除新投入从机的地址或提供可用从机地址。
主机30进一步包括:地址转换模块305,
检测分析模块303确定应答的地址与主机地址相同时,进一步用于确定是否在设定时间内收到主机申请命令,如果收到,则确定有主机新投入分布式系统,触发地址转换模块305;如果未收到,则触发地址发送模块304向对应设备发送可用从机地址;
地址转换模块305,用于根据检测分析模块303的触发将主机地址更改为可用从机地址,并可进一步触发图2中的第一定时模块停止计时,使其所在设备由主机变为从机。
如图3所示,投入现有分布式系统的设备包括:广播命令应答模块311、主机申请模块312和地址转换模块313,其中,
广播命令应答模块311,用于接收来自主机的系统检测命令,使用可用从机地址或主机地址向主机返回应答;
主机申请模块312,用于发送申请主机命令;
地址转换模块313,用于更改自身主机地址为主机提供的可用从机地址或更改自身从机地址为主机地址。
以上各模块相结合的具体实现是:如果广播命令应答模块311使用可用从机地址向主机返回应答,址转换模块313无需更改地址;如果广播命令应答模块311使用主机地址向主机返回应答,并且主机申请模块312不发送申请主机命令,则地址转换模块313将所在主机的地址更改为主机提供的可用从机地址;如果广播命令应答模块311使用主机地址向主机返回应答,并且主机申请模块312发送了申请主机命令,则地址转换模块313无需更改地址,仍然使用主机地址,其所在设备为主机。
另外,设备作为从机时,其包括的主机申请模块312可以在硬件时钟定时器完成多个硬件时钟周期时,根据从机地址延时发送申请主机命令,并且,没有收到其他设备发送的申请主机命令的设备,通过内部的地址转换模块313将自身从机地址更改为主机地址,该设备作为主机。
上述的实现基于RS485网络实现分布式系统的同步控制的系统布置在分布式系统中的每台设备上,以实现分布式系统的同步控制。
下面结合具体实施例详细说明本发明的方法及系统的实现过程和原理。
假设某公司的电源产品中,需要把几套电源设备并联输出,各个设备的监控器之间通过RS485网络组网通信,将其中一台监控器设定为主机,其他监控器作为从机,由主机收集、采集各个作为从机的监控器的信息后进行统一的管理,完成整个分布式系统的控制,如:调节整个分布式系统中各个电源设备的整流器的输出电压、输出电流等。
比如,主机通过统一下发给各个从机相同的脉宽调制(PWM)值,来调节各个从机管理的整流器电压。在实际应用中,为了不引起输出电压的紊乱,需要全部的监控器在同一时刻向各自管理的整流器下发更新后的PWM值,实现同步控制。各监控器间使用RS485通信,各监控器之间的连接如图4所示,A为监控器的发送端口,B为监控器的接收端口,将主机的端口A和从机的端口A连接起来,主机的端口B和从机的端口B连接起来,从机N中的N不大于126。
主、从机端均增加外部中断电路,如图5所示,由MCU 51的一个输出引脚(PB0)连接外部中断电路50中单稳态触发电路501的输入端,单稳态触发电路501的输出端连接MCU51的外部中断引脚(EXINT)。
在主、从机的通信中,数据包全部采用9位数据位、1位起始位、1位终止位的方式通信。数据包的第9位(TB8)被用作为表征该帧是地址帧还是数据帧,为1时表示该帧数据为一个地址帧,为0时表示该帧数据为数据帧。
地址帧的各位做如下定义:TB8为1,表示该帧数据为地址帧;第2位至第8位表示呼叫从机的地址,并约定地址0表示广播,地址127表示主机;第1位(TB0)作为数据传送方向标识,TB0为0,表示需要从机立刻应答,数据由从机发往主机;TB0为1,表示主机后续要下发命令数据,通知从机继续接收,数据由主机发往地址匹配的从机;
在正常的数据通信中,设备之间互相发送的数据均为TB8=0的数据帧。TB8=1的地址帧作为呼叫包使用,由主机端周期性发出。
另外,所有监控器均可以作为主机或者从机使用,在初始投入运作时的一段时间内,处于静音状态,静音状态是为了,在这些监控器是投入到已有的分布式系统时,其中,被设置成为主机的监控器,如果在静音状态时没有接收到呼叫包,则进行主机运作;如果在静音状态时接收到呼叫包,说明分布式系统中有另一主机存在,则分布式系统认为该监控器作为主机新投入分布式系统,而采取异常保护;
当监控器的地址与约定的主机地址不相同时,则该监控器可以作为从机;
下面详细说明所有监控器实现执行PWM同步命令的步骤,如图6所示:
步骤601:主机首先发送一个广播式呼叫包,即发送呼叫从机的地址为0的地址帧,并且设定该地址帧的TB0为1,通知各个从机继续接收后续数据,在后续数据中将PWM值发送给所有从机;各个从机在接收到PWM值后,将PWM值保存;
步骤602:主机确定以10ms为一个周期,发送呼叫包给系统内的所有从机,作为同步信号,并对主机和从机间的数据传送进行数据标识;
主机确定以10ms为一个周期,发送呼叫包给系统内的所有从机,此外,主机和从机间进行数据传送时,主机或者从机根据在10ms内可以传送的数据包的字节数,确定主机或者从机在每个10ms内传送的数据包的字节数并且留有一个字节作为数据标识,这样,在主机发送呼叫包后或者从机接收到呼叫包后,主机或者从机按照在10ms内传送的数据包的字节数,将数据包的一段进行传送并在每段传送完后传送数据标识。这里的数据标识,用来表明在一个10ms内的数据包是否发送完整,包括:继续标识和终止标识,即在发送完数据包的含有停止命令的最后一段后发送终止标识;在发送完其他各段后发送继续标识,如果发送的数据包长度比较短,在一个10ms内即可完成发送,则只发送终止标识。
步骤603:主机发送完呼叫包后,延时一段时间,主机把PWM值下发给自己的整流器;
该延时时间为呼叫包的发送时间加上从机中断响应时间,在波特率为9600bps时,由于在RS485通信中发送呼叫包还要加上起始位与停止位,所以发送呼叫包的时间为(9+2)×1/9600us,从机中断响应时间具体可以通过从机响应服务程序汇编代码行中得到,或者通过实际测量得到;
步骤604:主机给自己的整流器下发PWM值之后,主机根据呼叫包中的数据传送方向标识和从机地址,以及在发送呼叫包前的数据标识,继续发送或接收数据;
具体为,主机在给自己的整流器下发PWM值之后,根据呼叫包中设置的数据传送方向标识,如果数据传送方向标识表示主机发送呼叫包时,数据由从机发往主机,主机查询发送呼叫包前收到的数据标识,其中,若数据标识为终止标识,则主机接收与呼叫包中从机地址相匹配的从机发送的数据包的数据;若数据标识为继续标识,则主机接收与呼叫包中从机地址相匹配的从机发送的在上个10ms未发送完的数据包的数据;
如果数据传送方向标识表示主机发送呼叫包时,数据由主机发往从机,则主机查询发送呼叫包前发送的数据标识,其中,若数据标识为终止标识,则主机向与呼叫包中从机地址相匹配的从机发送新的数据包的数据;若数据标识为继续标识,则主机继续向与呼叫包中从机地址相匹配的从机发送在上个10ms未发送完的数据包的数据;
步骤605:在主机发送完呼叫包后,从机接收到呼叫包,产生接收中断,在接收中断中,设置图5中MCU 51的PB0为高,以触发外部中断电路50中的单稳态触发电路501;
步骤606:图5中外部中断电路50中的单稳态触发电路501接收到MCU 51的PB0为高后,单稳态触发电路501的输出端触发MCU 51的外部中断,各从机向各自的整流器同步下发PWM值;
外部中断电路50的单稳态触发电路501接收到MCU 51的PB0为高后,单稳态触发电路501的输出端改变MCU 51的EXINT端口的状态,触发MCU 51的外部中断,在外部中断的起始时刻,各从机执行向各自的整流器同步,下发步骤601中收到的PWM值,此外,在外部中断中,对从机MCU 51的硬件时钟定时器寄存器进行复位,防止该从机进入无主机的异常保护;
步骤607:所有从机向各自的整流器下发PWM值后,根据呼叫包中的数据传送方向标识和从机地址,以及在发送呼叫包前的数据标识,继续传送或接收数据;
具体为,所有从机向各自的整流器下发PWM值后,查询收到的呼叫包中的呼叫从机的地址和数据传送方向标识,如果数据传送方向标识表示主机在发送呼叫包时,数据由从机发往主机,则与呼叫包中从机地址相匹配的从机查询在主机发送呼叫包前发送的数据标识,若数据标识为终止标识,则与呼叫包中从机地址相匹配的从机向主机发送新的数据包中的数据;若数据标识为继续标识,则与呼叫包中从机地址相匹配的从机继续向主机发送在上个10ms未发送完的数据包中的数据;
如果数据传送方向标识表示后续数据由主机发往从机,则从机查询发送呼叫包前收到的数据标识,其中,若数据标识为终止标识,则与呼叫包中从机地址相匹配的从机接收主机发送的新的数据包中的数据;若数据标识为继续标识,则与呼叫包中从机地址相匹配的从机继续接收主机发送的在上个10ms未发送完的数据包中的数据。
这样,分布式系统中的所有监控器就会同时下发PWM值给各自的整流器了。
此外,该分布式系统也将对异常情况进行保护,包括:监控器作为从机投入已有分布式系统的保护、监控器作为主机投入已有分布式系统的保护、监视器机退出系统的保护以及分布式系统中无主机或者主机因故退出的保护;
具体为,分布式系统中的主机将定期以广播命令的形式发送系统检测命令,分布式系统中的其他各个监控器收到系统检测命令并进行应答,主机检测应答的地址判断是否有监控器新投入或从机退出系统。
当监控器作为从机投入已有分布式系统时,即监控器地址为分布式系统中空闲的从机地址,该监控器在静音状态后第一次收到系统检测命令时发送应答,分布式系统内的主机检测到发送应答的地址,为分布式系统内没有用到过的从机地址,即原本空闲的可用从机地址,分布式系统内的主机从原本空闲的从机地址中去除此地址,将该监控器纳入从机进行管理;
当有从机退出系统时,系统内的主机检测到应答的地址缺少某个已经使用的从机地址,则提醒有从机退出,并提供退出从机的地址;
当监控器作为主机投入已有分布式系统时,即监控器地址为系统中原主机地址,该监控器在静音状态后第一次接收到系统检测命令时,向系统中的原主机发送应答,分布式系统中的原主机检测到应答的地址与自身地址相同,则分布式系统内的原主机继续检测是否有申请主机命令,如果该监控器在静音状态后,向分布式系统中原主机发送申请主机命令,则原主机在检测到此监控器应答后的一段时间内,比如:在到下次此监控器发送应答的这段时间内,检测到申请主机命令后,将自身的主机地址更改为分布式系统中的可用从机地址,降格为从机,进行从机运作,包括:接收呼叫包和执行同步控制等;新投入的监控器,进行主机运作,包括:周期性的发送呼叫包、定期发送广播命令以及控制整个分布式系统的通信等;如果作为主机投入的监控器没有发送申请主机的广播命令,原主机在一段时间内没有收到申请主机命令,则原主机下发分布式系统中的可用从机地址给该监控器,该监控器作为从机进行从机运作;
此外,当分布式系统中无主机或者主机因故退出后,各从机监控器会在一段时间没有接收到呼叫包,从而不能产生MCU的外部中断,从机中的硬件时钟定时器将会完成多个硬件时钟周期,如2~3个硬件时钟周期,各从机根据自身的地址号,延时不同的时间后,主动发送申请主机命令,申请成为主机,其中地址号为1的从机延时0.1秒钟申请主机,地址号为2的从机延时0.2秒钟申请主机,地址号为N的延时N/10秒钟申请主机;其中,先发送申请包的从机将不会接收到其他从机发送的申请主机命令而成为主机,地址更改为主机的地址,代替原主机进行主机运作;申请主机命令以广播命令的形式发送;
当原先的主机重新投入后,将按照上述的,当监控器作为主机投入已有分布式系统时的方法进行操作,这里不再赘述。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (11)
1、一种实现分布式系统的同步控制的方法,其特征在于,该方法包括:
主机在当前呼叫周期产生呼叫包,并发送呼叫包给分布式系统中的所有从机;
主机延时至从机触发的外部中断的起始时刻,执行同步控制;
各从机接收呼叫包,产生接收中断,由接收中断触发外部中断,在外部中断的起始时刻,执行同步控制。
2、根据权利要求1所述的实现分布式系统的同步控制的方法,其特征在于,
所述产生呼叫包,具体为:设置第9位数据位为呼叫包标识,根据上一个呼叫周期中的数据传送方向设置数据传送方向标识,并设置呼叫从机的地址;和/或,
所述从机包括MCU和外部中断电路,该外部中断电路至少包括单稳态触发电路,所述由接收中断触发外部中断电路,具体为:接收中断中,设置MCU的与外部中断电路相连接的输出端口为高,外部中断电路中的单稳态触发电路接收到所述端口为高后,单稳态触发电路的输出端触发MCU的外部中断;和/或,
所述发送呼叫包之前,进一步包括:延时间歇时间,所述间歇时间内不进行数据传输;和/或,
所述主机延时的延时时间的长度为:主机发送呼叫包的时刻至从机触发外部中断的起始时刻之间的时间差,所述时间差配置在主机中;或者,由呼叫包的发送时间加上从机的接收中断响应时间和外部中断响应时间计算所得。
3、根据权利要求2所述的实现分布式系统的同步控制的方法,其特征在于,
所述触发MCU的外部中断之后,进一步包括:在MCU的外部中断中,对MCU的硬件时钟定时器的寄存器进行复位处理;和/或,
设置每个呼叫周期内允许传送的数据的最大字节数,所述发送呼叫包之后进一步包括:主机根据当前呼叫周期向从机发送的数据包数据在其所属数据包中的位置进行数据标识;和/或,
设置每个呼叫周期内允许传送的数据的最大字节数,所述从机接收呼叫包之后进一步包括:根据当前呼叫周期向主机发送的数据包数据在其所属数据包中的位置进行数据标识。
4、根据权利要求3所述的实现分布式系统的同步控制的方法,其特征在于,所述执行同步控制之后,进一步包括:依据上一个呼叫周期中的数据标识以及所述呼叫包中的数据传送方向标识、呼叫从机的地址,在当前呼叫周期继续数据的传送。
5、根据权利要求1至4任一所述的实现分布式系统的同步控制的方法,其特征在于,该方法进一步包括:进行同步控制的异常保护,包括:
设备作为从机投入已有分布式系统的保护,具体为:主机通过发送系统检测命令得知有从机的投入,分布式系统主机从原本空闲的从机地址中去除投入的从机的地址,将投入设备作为从机纳入分布式系统;和/或,
设备作为主机投入已有分布式系统的保护,具体为:原主机通过发送系统检测命令确定有主机投入,根据该主机是否发申请主机命令,确定分布式系统的主机;和/或,
从机退出分布式系统的保护,具体为:当主机检测到有从机退出分布式系统时,主机进行对应处理;和/或,
分布式系统中无主机或者主机因故退出的保护,具体为:各从机在设置的异常时间内没有接收到呼叫包,则各从机根据自身地址号在对应时间主动发送申请主机命令,先发送申请主机命令的从机成为主机。
6、一种实现分布式系统的同步控制的系统,其特征在于,该系统包括:
主机,用于在当前呼叫周期性产生呼叫包,发送呼叫包后,延时至从机触发的外部中断的起始时刻,执行主机的同步控制;
从机,用于接收主机下发的呼叫包,产生接收中断,由接收中断触发外部中断,在外部中断的起始时刻,执行该从机自身的同步控制。
7、根据权利要求6所述的实现分布式系统的同步控制的系统,其特征在于,
所述主机包括:第一定时模块,用于对主机发送呼叫包的呼叫周期进行计时,在每个呼叫周期触发呼叫包模块;
呼叫包模块,用于根据第一定时模块的触发产生地址帧作为呼叫包;
第一收发模块,用于发送呼叫包模块产生的呼叫包,并同时触发延时同步模块;
延时同步模块,用于延时至从机触发的外部中断的起始时刻时,执行主机的同步控制;
和/或,从机包括:第二收发模块、接收中断模块和外部中断模块,其中,
第二收发模块,用于接收来自主机的呼叫包;
接收中断模块,用于检测到第二收发模块收到呼叫包时产生接收中断,并触发外部中断模块;
外部中断模块,用于根据接收中断模块的触发,触发外部中断,在外部中断的起始时刻,执行从机的同步控制。
8、根据权利要求7所述的实现分布式系统的同步控制的系统,其特征在于,
所述主机进一步还包括:第一数据标识模块和第一数据控制模块,其中,
第一定时模块在每个呼叫周期,进一步用于触发第一数据标识模块;
第一数据标识模块,用于根据第一收发模块中主机在当前呼叫周期内向从机发送的数据在其所属数据包中的位置进行数据标识;
第一收发模块,进一步用于主机和从机间的数据传送,向从机发送所述数据标识;还用于接收从机发送的数据标识;
延时同步模块执行主机的同步控制后,进一步用于触发第一数据控制模块;
第一数据控制模块,用于根据延时同步模块的触发,依据上一个呼叫周期中的数据标识及所述呼叫包中的数据传送方向标识和呼叫从机的地址,控制第一收发模块在当前呼叫周期与从机间传送数据;
和/或,所述从机进一步包括:第二数据标识模块和第二数据控制模块,其中,
第二数据标识模块,用于根据第二收发模块中从机在当前呼叫周期内向主机发送的数据在其所属数据包中的位置进行数据标识;
第二收发模块,进一步用于从机和主机间的数据传送;向主机发送所述数据标识;还用于接收主机发送的数据标识;
外部中断模块执行从机的同步控制后,进一步用于触发第二数据控制模块;
第二数据控制模块,用于根据外部中断模块的触发,依据上一个呼叫周期中的数据标识及所述呼叫包中的数据传送方向标识和呼叫从机的地址,控制第二收发模块在当前呼叫周期与主机间传送数据。
9、根据权利要求8所述的实现分布式系统的同步控制的系统,其特征在于,
所述主机进一步包括:间歇时间模块,用于控制第一收发模块延时间歇时间后发送呼叫包;和/或,
所述从机进一步包括:硬件时钟定时器,外部中断模块进一步用于在外部中断过程中对硬件时钟定时器的寄存器进行复位处理。
10、根据权利要求6至9任一所述的实现分布式系统的同步控制的系统,其特征在于,
所述主机包括:第二定时模块、广播命令模块、检测分析模块和地址发送模块,其中,
第二定时模块,用于对检测周期进行计时,每个检测周期触发广播命令模块;
广播命令模块,用于根据第二定时模块的触发,发送系统检测命令;
检测分析模块,用于接收应答,通过检测应答的地址判断是否有设备新投入或从机退出分布式系统,确定有从机退出分布式系统时,进行对应处理;确定有从机新投入分布式系统时,触发地址发送模块从原本空闲的从机地址中去除所述地址;确定有主机新投入分布式系统时,并且未接收到主机申请命令,触发地址发送模块向对应主机发送可用从机地址;
地址发送模块,用于根据检测分析模块的触发从原本空闲的从机地址中去除新投入从机的地址或提供可用从机地址;
所述从机或新投入的所述设备包括:广播命令应答模块、主机申请模块和地址转换模块,其中,
广播命令应答模块,用于接收来自主机的系统检测命令,使用可用从机地址或主机地址向主机返回应答;
主机申请模块,用于发送申请主机命令;
地址转换模块,用于更改自身主机地址为主机提供的可用从机地址或更改自身从机地址为主机地址。
11、根据权利要求10所述的实现分布式系统的同步控制的系统,其特征在于,所述地址转换模块所在的设备为主机时,
检测分析模块确定应答的地址与主机地址相同时,进一步用于确定是否在设定时间内收到主机申请命令,如果收到,则确定有主机新投入分布式系统,触发地址转换模块;如果未收到,则触发地址发送模块向对应设备发送可用从机地址;
地址转换模块,用于根据检测分析模块的触发将主机地址更改为可用从机地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910088507 CN101610145B (zh) | 2009-07-03 | 2009-07-03 | 一种实现分布式系统的同步控制的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910088507 CN101610145B (zh) | 2009-07-03 | 2009-07-03 | 一种实现分布式系统的同步控制的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101610145A true CN101610145A (zh) | 2009-12-23 |
CN101610145B CN101610145B (zh) | 2013-08-07 |
Family
ID=41483746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910088507 Active CN101610145B (zh) | 2009-07-03 | 2009-07-03 | 一种实现分布式系统的同步控制的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101610145B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202227A (zh) * | 2014-09-05 | 2014-12-10 | 无锡蓝天电子有限公司 | 一种基于固定时间片的rs485快速通讯方法 |
CN106354060A (zh) * | 2016-10-13 | 2017-01-25 | 湖南工业大学 | 一种客房控制装置主从通信方法 |
CN106406176A (zh) * | 2016-10-13 | 2017-02-15 | 湖南工业大学 | 酒店客房Zigbee网络控制系统 |
CN106527364A (zh) * | 2016-10-13 | 2017-03-22 | 湖南工业大学 | 酒店客房电器设备控制系统 |
CN106557051A (zh) * | 2016-10-27 | 2017-04-05 | 珠海瓦特电力设备有限公司 | 基于串行通信总线的分布式测控系统时间同步系统及方法 |
CN106647438A (zh) * | 2016-10-13 | 2017-05-10 | 湖南工业大学 | 酒店客房无线联网控制系统 |
CN107395304A (zh) * | 2016-03-15 | 2017-11-24 | 皮尔茨公司 | 用于控制自动化设备的装置和方法 |
CN108694823A (zh) * | 2018-04-11 | 2018-10-23 | 苏州浩瀚集成电路有限公司 | 无线网络内的同步控制方法及智能家居系统 |
CN109117410A (zh) * | 2018-08-07 | 2019-01-01 | 国网上海市电力公司 | 一种基于通用异步串行通信接口的高精度对时方法 |
CN109150681A (zh) * | 2018-09-07 | 2019-01-04 | 深圳市雷赛控制技术有限公司 | Rtex总线组网方法及系统 |
CN109358256A (zh) * | 2018-12-20 | 2019-02-19 | 上海欧秒电力监测设备有限公司 | Rs485通讯中实现同步采样的避雷器在线监测系统 |
CN109407752A (zh) * | 2018-12-20 | 2019-03-01 | 上海欧秒电力监测设备有限公司 | Rs485通讯中实现时钟同步的gis断路器在线监测系统 |
CN109586832A (zh) * | 2018-12-14 | 2019-04-05 | 广州智光自动化有限公司 | 无线同步方法、无线从机、无线主机和无线同步系统 |
CN109683567A (zh) * | 2018-12-20 | 2019-04-26 | 上海欧秒电力监测设备有限公司 | 基于rs485网络中系统时钟同步方法 |
CN110011778A (zh) * | 2018-12-20 | 2019-07-12 | 上海欧秒电力监测设备有限公司 | 基于rs485网络中系统同步采样方法 |
CN111352720A (zh) * | 2020-04-09 | 2020-06-30 | 广东优翼航空技术有限公司 | 一种计算机任务高速同步控制设备及其控制方法 |
CN112506838A (zh) * | 2021-02-03 | 2021-03-16 | 青岛鼎信通讯股份有限公司 | 一种应用于ir46电表检定装置的spi时钟同步方法 |
CN114115133A (zh) * | 2021-11-02 | 2022-03-01 | 深圳市华成工业控制股份有限公司 | 一种基于内部通信的多芯片五轴伺服驱控系统及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109240257B (zh) * | 2017-07-11 | 2021-06-01 | 深圳市中兴微电子技术有限公司 | 一种多从机无人机测试系统及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1291815B1 (it) * | 1997-03-28 | 1999-01-21 | Ottica Ist Naz | Metodo per la sincronizzazione adattiva di sistemi caotici e sistema di trasmissione dati utilizzante detto metodo |
KR20030091396A (ko) * | 2002-05-27 | 2003-12-03 | 삼성전자주식회사 | 방송신호의 위치정보 기록방법와 방송신호의 위치정보기록이 가능한 방송신호 수신장치 및 송출장치 |
CN1538312A (zh) * | 2003-04-16 | 2004-10-20 | 上海南瑞实业有限公司 | 高速多处理器同步采样设备及其采样方法 |
CN101441585B (zh) * | 2009-01-13 | 2010-07-14 | 首都师范大学 | 三模冗余容错计算机精确同步的方法 |
-
2009
- 2009-07-03 CN CN 200910088507 patent/CN101610145B/zh active Active
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104202227A (zh) * | 2014-09-05 | 2014-12-10 | 无锡蓝天电子有限公司 | 一种基于固定时间片的rs485快速通讯方法 |
CN107395304A (zh) * | 2016-03-15 | 2017-11-24 | 皮尔茨公司 | 用于控制自动化设备的装置和方法 |
CN107395304B (zh) * | 2016-03-15 | 2020-06-19 | 皮尔茨公司 | 用于控制自动化设备的装置和方法 |
CN106527364A (zh) * | 2016-10-13 | 2017-03-22 | 湖南工业大学 | 酒店客房电器设备控制系统 |
CN106647438A (zh) * | 2016-10-13 | 2017-05-10 | 湖南工业大学 | 酒店客房无线联网控制系统 |
CN106406176B (zh) * | 2016-10-13 | 2021-11-09 | 湖南工业大学 | 酒店客房Zigbee网络控制系统 |
CN106527364B (zh) * | 2016-10-13 | 2021-11-09 | 湖南工业大学 | 酒店客房电器设备控制系统 |
CN106354060B (zh) * | 2016-10-13 | 2021-11-09 | 湖南工业大学 | 一种客房控制装置主从通信方法 |
CN106647438B (zh) * | 2016-10-13 | 2021-10-01 | 湖南工业大学 | 酒店客房无线联网控制系统 |
CN106406176A (zh) * | 2016-10-13 | 2017-02-15 | 湖南工业大学 | 酒店客房Zigbee网络控制系统 |
CN106354060A (zh) * | 2016-10-13 | 2017-01-25 | 湖南工业大学 | 一种客房控制装置主从通信方法 |
CN106557051A (zh) * | 2016-10-27 | 2017-04-05 | 珠海瓦特电力设备有限公司 | 基于串行通信总线的分布式测控系统时间同步系统及方法 |
CN108694823B (zh) * | 2018-04-11 | 2020-01-07 | 苏州浩瀚集成电路有限公司 | 无线网络内的同步控制方法及智能家居系统 |
CN108694823A (zh) * | 2018-04-11 | 2018-10-23 | 苏州浩瀚集成电路有限公司 | 无线网络内的同步控制方法及智能家居系统 |
CN109117410A (zh) * | 2018-08-07 | 2019-01-01 | 国网上海市电力公司 | 一种基于通用异步串行通信接口的高精度对时方法 |
CN109150681B (zh) * | 2018-09-07 | 2021-03-16 | 深圳市雷赛控制技术有限公司 | Rtex总线组网方法及系统 |
CN109150681A (zh) * | 2018-09-07 | 2019-01-04 | 深圳市雷赛控制技术有限公司 | Rtex总线组网方法及系统 |
CN109586832A (zh) * | 2018-12-14 | 2019-04-05 | 广州智光自动化有限公司 | 无线同步方法、无线从机、无线主机和无线同步系统 |
CN109586832B (zh) * | 2018-12-14 | 2023-11-14 | 广州智光自动化有限公司 | 无线同步方法、无线从机、无线主机和无线同步系统 |
CN109358256B (zh) * | 2018-12-20 | 2021-09-03 | 上海欧秒电力监测设备有限公司 | Rs485通讯中实现同步采样的避雷器在线监测系统 |
CN109683567A (zh) * | 2018-12-20 | 2019-04-26 | 上海欧秒电力监测设备有限公司 | 基于rs485网络中系统时钟同步方法 |
CN110011778A (zh) * | 2018-12-20 | 2019-07-12 | 上海欧秒电力监测设备有限公司 | 基于rs485网络中系统同步采样方法 |
CN110011778B (zh) * | 2018-12-20 | 2020-07-07 | 上海欧秒电力监测设备有限公司 | 基于rs485网络中系统同步采样方法 |
CN109407752A (zh) * | 2018-12-20 | 2019-03-01 | 上海欧秒电力监测设备有限公司 | Rs485通讯中实现时钟同步的gis断路器在线监测系统 |
CN109358256A (zh) * | 2018-12-20 | 2019-02-19 | 上海欧秒电力监测设备有限公司 | Rs485通讯中实现同步采样的避雷器在线监测系统 |
CN109407752B (zh) * | 2018-12-20 | 2020-07-07 | 上海欧秒电力监测设备有限公司 | Rs485通讯中实现时钟同步的gis断路器在线监测系统 |
CN111352720A (zh) * | 2020-04-09 | 2020-06-30 | 广东优翼航空技术有限公司 | 一种计算机任务高速同步控制设备及其控制方法 |
CN112506838A (zh) * | 2021-02-03 | 2021-03-16 | 青岛鼎信通讯股份有限公司 | 一种应用于ir46电表检定装置的spi时钟同步方法 |
CN114115133A (zh) * | 2021-11-02 | 2022-03-01 | 深圳市华成工业控制股份有限公司 | 一种基于内部通信的多芯片五轴伺服驱控系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101610145B (zh) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101610145B (zh) | 一种实现分布式系统的同步控制的方法和系统 | |
EP1717978B1 (en) | Time synchronization, deterministic data delivery and redundancy for cascaded nodes on full duplex ethernet networks | |
CN105262555B (zh) | 一种时间同步方法、可编程逻辑器件、单板及网元 | |
EP3016306A1 (en) | Method and apparatus for providing in-vehicle network time synchronization using redundant grandmaster | |
US9209919B2 (en) | Synchronization control system | |
CN105577348B (zh) | 一种基于时间同步网的频偏监测方法和装置 | |
JP6449430B2 (ja) | ネットワーク装置用の時刻同期方法、装置及び時刻同期サーバ | |
CN109996325B (zh) | 一种无线传感器网络的时钟同步系统及方法 | |
CN114450922A (zh) | 用于运行工业自动化系统的无线通信系统的方法、无线通信系统、基站和参与站 | |
CN101136738A (zh) | 网络时钟同步方法、装置及系统 | |
CN102368729B (zh) | 一种在非实时系统上精确网络限速的方法 | |
EP2628274B1 (en) | Reducing continuity check message (ccm) bursts in connectivity fault management (cfm) maintenance association (ma) | |
CN112738224B (zh) | 一种支持触发式通信的数据处理系统和方法 | |
US9930627B2 (en) | Metered interface | |
Knezic et al. | Performance analysis of the ethernet powerlink pollresponse chaining mechanism | |
CN102970171A (zh) | 芯片级实现多种oam时间精度的方法 | |
CN109068384A (zh) | 一种时间同步方法及系统 | |
CN105634807B (zh) | 一种端口状态同步方法及装置 | |
KR101435181B1 (ko) | 배전 지능화 시스템의 마스터와 슬레이브 간 시각동기 및 전송 지연시간 보정 방법 | |
CN111327476A (zh) | 一种基于帧预留的带宽动态调整系统及方法 | |
KR101156097B1 (ko) | 이더넷 파워링크에서의 마스터 이중화 방법 | |
CN210780847U (zh) | 一种EtherCAT总线时钟分布系统 | |
CN113946535A (zh) | 一种总线的宏节拍和周期生成方法 | |
CN218217375U (zh) | 一种针对大批量被控接收器的精确同步调度装置 | |
Ferrari et al. | An experimental approach to estimate real-time characteristic of PROFINET IO versus PROFIBUS DP V2 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |