一种工业以太网系统的制作方法_3

文档序号:8447330阅读:来源:国知局
站将处理后得到的ID作为自身的ID,然后第一个从站将自身的ID反馈至主站。同时第一个从站会将携带有自身ID的计算ID数据包转发至第二个从站,第二从站在接收到计算ID数据包时,会将计算ID数据包中的ID加I,并将得到的ID作为自身的ID,然后第二个从站将得到的ID反馈至主站。后续的所有从站都与第一个从站或者第二个从站的处理方式相同,直至链路的最后的一个从站。
[0057]比如说:计算ID数据包中的初始ID为0,从站I接收到计算ID数据包时,从站I将在初始ID上加I得到自身的ID为1,从站I将向从站2转发携带ID为I计算ID数据包,从站2在从站I的ID上加I得到自身的ID,即:ID为2,当然从站3得到的ID就为3,最后该计算ID数据包将返回至端口 E2,这时主站将获取计算ID数据包中的ID为N,该ID说明了该系统中包含了 N个从站,这样计算ID阶段完成,此时将进入到数据传输阶段。
[0058]3)、故障检测阶段
[0059]在本发明实施例中为了提升系统的通讯效率,因此系统中的从站被划分为两条通讯链路,该分界点可以选择从站的中间点位置,即N/2作为分界点(如图5所示),主站EO中的DSP生成发送至从站I至从站N/2的业务数据包时,命令缓存模块将首先缓存业务数据包,然后FPGA控制触发开关SI开启,最后通过网口 El下发从站I至从站N/2发送业务数据包;同样的方式主站将通过网口 E2向从站(N+l)/2至从站N发送业务数据包。这样整个系统会形成两条独立的链路,而这两条链路分别使用主站的网口号作为这个两条链路的链路编号,即:链路El和链路E2。在本发明实施例中分割点除了在从站的中间点位置之外,还可以将其他位置作为分割点,比如说从站3或者从站4或者从站N-1等从站,另外,从站N/2与从站(N+1)/2之间处于虚段的状态,也就是从站N/2与从站(N+1)/2之间通过网线连接但不存在数据通讯。
[0060]在主站下发业务数据包之后,主站将检测是否接收到从站返回的反馈数据包,若是存在未发送反馈数据包的从站时,主站将获取所有未发送反馈数据包的从站,在所有未发送反馈数据包的从站中确定与主站的网口传输距离最短的从站为断网从站,通过与断网从站传输距离最短的网口向断网从站与网口之间的从站发送业务数据包,通过另一网口向断网从站以及断网从站与另一网口之间的从站发送业务数据包。
[0061]具体来讲,图5中主站通过网口 El向从站I?从站N/2发送业务数据包,通过网口E2向从站(N+1)/2?从站N发送业务数据包。若是主站的某一时刻未检测到从站3?从站N/2发送的反馈数据包时,此时主站将获取所有未发送反馈数据包的所用从站,即:3?N/2,然后主站将确定出与主站的网口传输距离最短的从站,很明显从站3与网口 El的传输距离最短,此时主站将从站3确定为断网从站。
[0062]进一步,在本发明实施例中为了避免环境温度变化或者是电磁干扰等因素造成从站短暂断网的问题,因此该从站连续M个通讯周期都未返回反馈数据包,则确定该从站为断网从站,此处的M可以取1、2、3、4等正整数,比如说检测连续3次未接收到从站3反馈的数据包,则确定从站3为断网从站。
[0063]在确定从站3为断网从站之后,主站将改变从网口 El以及网口 E2发送业务数据包的序列,即:主站将通过网口 El向从站I?从站3发送业务数据包,同时通过网口 E2向从站3?从站N发送业务数据包(如图6所示)。
[0064]另外,该故障检测阶段还可以应用到图7所示星形网络拓扑结构中,在该星形网络拓扑结构中主站与M个从站形成一条链路,即:E2链路,该E2链路的末端为冗余从站,主站通过网口 E2向E2链路中的M个从站发送业务数据包;主站的通过网口 E3与N个从站形成E3链路,该E3链路中的末端为冗余从站,主站通过网口 E3向E3链路中的N个从站发送业务数据包;当然还包括E4链路,主站通过网口 E4向E4链路中的P个从站发送业务数据包,链路中的相邻冗余从站之间通过网线连接,但是不存在数据通讯。
[0065]若是E3链路中的从站2为断网从站时,则主站将对E2以及E3链路形成的环形链路重新进行ID计算,然后网口 E3向E3链路中的从站I发送业务数据包,同时主站通过网口 E2向E2链路中的从站I至从站M+N-1发送业务数据包(如图8所示),这样就可以避免E3链路因为从站2的故障导致链路中的后续从站失效的问题,从而有效的避开了故障从站,提升了系统的稳定以及通讯效率。
[0066]在完成故障检测阶段之后,该系统将进入到同步阶段。
[0067]3)、同步阶段
[0068]进入到该阶段时,主站将通过网口 El连续的将每个从站的业务数据包都下发,具体来讲,主站将首先发送从站N的业务数据包,发送从站N-1的业务数据包,发送从站N-2的业务数据包,最后发送从站I的业务数据包,在本发明实施例中主站是连续的发送所有从站的业务数据包,具体如图9所示,在图9中,一个通讯周期被划分为2N+1个时间片,主站会在每个时间片上发送一个从站的业务数据包,因此主站在时间片O?N-1过程中连续的将所有从站的业务数据包下发。
[0069]在主站下发业务数据包的过程中,从站在接收到主站的业务数据包时,将获取业务数据包中的从站ID,若是该从站ID与自身存储的从站ID不匹配时,则从站将直接转发该业务数据包,若斯从站ID与自身存储的从站ID匹配时,则从站接收该业务数据包,比如说从站I接收的业务数据包中的从站ID为N,此时从站I将直接转发该业务数据包(具体如图9所示),当然系统中的每个从站对业务数据包的处理方式都与从站I相同。
[0070]在本发明实施例中在主站下发的业务数据包中携带了同步信息,具体来讲,主站在下发业务数据包时,将记录发送所述业务数据包的发送时刻Tz t■,在接收从站返回的携带时间戳的反馈数据包时,记录接收反馈数据包的接收时刻Tz _,将发送时刻与接收时刻之和与所述反馈数据包中的时间戳Tm之间的差值的一半作为本次通讯周期的时间偏差值Ts,具体如公式(I)所示:
[0071]Ts= [(Tztran+TZrev)_Tm]/2 (I)
[0072]此处时间偏差值Ts即为同步信息。
[0073]在得到同步信息之后,主站将在下发的业务数据包中确定出用于携带数据信息的数据段,然后将同步信息写入到数据段中(如图10所示)。
[0074]在主站下发携带同步信息的业务数据包时,若从站接收到的业务数据包中的从站ID与自身存储的从站ID匹配时,则从站将接收该业务数据包,并记录接收该业务数据包的接收时刻T。_,同时从站将确定发送反馈数据包的发送时刻,然后从站将获取主站下发的业务数据包中的时间偏差值Ts,然后根据该时间偏差值、接收时刻Tc 、发送时刻Tc得到需要向主站反馈的时间戳Tm,其具体可以通过公式(2)得到:
[0075]Tm= (TCrev+Ts) + (TCres+Ts) (2)
[0076]进一步,为了防止主站与从站之间的同步抖动,从站还可以在获取到业务数据包中携带的时间偏差值之后,调取预存的N个时间偏差值,这里N为1、2、3、4等正整数,然后得到本次时间偏差值与调取的N个时间偏差值的平均值,该平均值即为平均偏差值Tn,此时时间戳Tm可以通过公式(3)得到:
[0077]Tm = (TCrev+TN) + (TCres+TN) (3)
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1