基于以太网的并行计算系统中数据交换研究

2013-09-12 01:49王张彦杨彦鑫
微处理机 2013年1期
关键词:发送数据以太网报文

王张彦,黎 英,杨彦鑫

(1.云南大学信息学院,昆明 650091;2.昆明理工大学信息工程与自动化学院,昆明 650093)

1 引言

以太网由于其开放性好,应用广泛以及价格低廉,已经垄断了商用计算机的通信领域和过程控制领域中上层的信息管理与通信。随着以太网技术的不断发展,以太网进入工业控制领域已经成为主要发展趋势。要想在工业环境中能够有效利用以太网,必须使其符合工业环境的特殊需求。以太网应用于工业现场的关键技术之一就是要具有实时性。目前已有多种技术用来提高工业以太网的实时性,例如增加宽带、改变系统的结构、采用智能集线器等。只要解决以太网的实时性问题就能在工业控制中得到大规模的利用。过过采取一种动态时间槽的划分来解决以太网的实时性问题,并对这种时间槽性能进行测量。

2 以太网与UDP通信时间的比较

在通信系统中通信方式的不同,它们的通信时间会产生很大的差别,由于以太网帧的数据部分长度为46~1500字节,因此分别利用UDP方式和MAC层传输方式传输一帧数据,测试这一帧数据在传输过程中所需要的时间,实验结果如表1和表2所示。第一组数据为收发46字节的情况,第二组为收发1500字节的情况。从两组实验数据可以得出以下结论:

(1)在通信过程中发送同样长度的数据,采用UDP的方式通信时间较长;

(2)在通信过程中采用UDP的方式,通信的时间波动较大,而直接在MAC层收发数据时,通信时间比较稳定;

(3)采用UDP的方式通信,在通信时间上长帧通信的时间与短帧通信时间的差距,没有采用MAC层通信的时间差距大。

3 IEEE1588协议实现

系统的时钟同步一般有软件时钟同步和硬件时钟同步,硬件时钟同步精度很高,可以达到纳秒级,但是这种时钟同步要用具体的硬件来实现,操作不方便,灵活性很差,成本很高,不适合大规模的应用。软件时钟同步也有很多种方法,可以用 TCP、IP、UDP这些协议进行时钟同步,但是它们的精度一般只能达到毫秒级,但是操作方便,具有很好的灵活性。目前的IEEE1588协议就是一种应用广泛的时钟同步技术,它是一种主从式的时间同步技术。假定网络传输路径是对称的,主时钟周期性的向系统中所有从时钟发送同步消息报文,从时钟以主时钟为参照,通过解析接收到的消息报文,计算与主时钟之间的时间差异,并进行同步校正,实现系统时钟同步。用来实现IEEE1588协议,主机采用美国模拟仪器公司(ADI)的BF548开发板,从机是BF538开发板。主机以太网芯片是美商史恩希股份有限公司(SMSC)的LAN9218,从机以太网芯片是LAN91C111,主机与从机通过交换机用网线进行连接。

表1 收发46字节所用时间(单位:us)

表2 收发1500字节所用时间(单位:us)

系统上电之后,主机和从机先各自进行初始化,初始化完成之后开始进行系统时钟同步。IEEE1588有两种方法来实现系统时钟同步,如果采用IEEE1588第一种方法,如图1定义了四条报文:Sync报文、Fellowup报文、DelayReq报文和DelayResp报文,用这四条报文从机就得到四个时刻 Tm1、Tm2、Ts1、Ts2,用 Offset=(Ts1-Tm1+Ts2-Tm2)/2计算出主机和从机的时间偏差Offset,从机BF538再修正自己的时钟,这样主机BF548和从机BF538就可以达到时钟同步。

采用IEEE1588第二种方法,如图2定义了三条报文:Slave报文、Master报文、Time报文,用这三条报文就可以计算时钟偏差Offset,用这个时钟偏差来修正从机BF538的时钟,达到时钟同步的目的。

图1 IEEE1588方法一

图2 IEEE1588方法二

4 同步时钟的误差

在系统进行同步时钟之后,怎么知道从机和主机之间的误差有多大?对于这个问题采用如下的方法解决,可以设置在系统时钟同步之后,让主机的一个引脚发送一个脉冲信号,这个脉冲信号同时分两路发送,一个发送给自己的一个接收脉冲信号的引脚,一个发送给从机的接收脉冲信号的引脚。主机发送脉冲信号引脚和主机接收脉冲信号的引脚通过一根导线相连,主机的发送脉冲信号引脚和从机的接收脉冲信号的引脚也是通过一根导线相连。主机的接收脉冲信号的引脚收到这个脉冲信号后,产生一个中断来读取时间计数器的值。从机的接收脉冲信号引脚收到这个脉冲信号后,也产生一个中断来读取时间计数器的值。这个脉冲信号都是从主机一个引脚发送的,这样就可以保证在同一时间来读取主机和从机的时间计数器的值,从机读取时间计数器的值后,再把这个值发送给主机,主机用自己时间计数器的值和从机的时间计数器的值进行比较,就可以得到系统时间同步之后的误差。

两种方法的系统同步时钟,都进行了误差测量,一共收集了1000个数据来进行观察,图3就是时钟同步的第一种方法的误差测量数据图,图4就是用第二种方法的误差测量数据图。从这两个图可以看出图3的波动范围比较大,图4的波动范围比较小,图3的最大值接近了1us,图4的最大值不超过0.7us,第二种方法要比第一种方法的误差减少300ns。第一种方法的平均值是313.36000,方差是10344.99750,第二种方法的平均值是46.420,方差427.30。从这两个图可以看出第二种方法要第一种方法精度提高很多。所在这个系统中采用第二种方法来同步系统时钟。

5 动态时间槽的划分

所谓的动态时间槽就是根据系统运行过程中的实际情况,时间槽的数量可以改变。动态时间槽划分之前要测量主机发送一个控制命令到从机所需要的时间,经过测量(表1所示),这个时间不会大于34us。主机发往从机的控制帧采用的是总线模式,利用总线模式控制,有很多种方法,比如令牌环等,但这些实时性能不是很强,所以就要找到一种比较好的方法来解决系统的实时性[6]和数据碰撞问题。假设每台从机发送数据在(0-20)us是服从P(X=k)泊松分布,而且系统有精确的时钟,利用这几个有利条件可以找到一种合适的方法。如图5所示,可以根据通信时间来划分不同的区间,让控制帧延迟一段时间发送,就可以减少碰撞的概率,假设7台从机按照图5来划分不同的概率分布,如果两台从机的分布间隔小于26us,只要两台从机在一个周期内发送数据就会发生碰撞,这种分布方法不能满足要求。如果两台从机的分布间隔大于34us,在同一周期内,任何两台从机都不会发生数据碰撞,但是时间间隔太长就会浪费系统资源,必须找到一个合适的方法来处理从机的时间间隔。

综合以上所有讨论与假设条件,提出动态时间槽的具体过程如下:

(1)假设有7台从机,先给每台从机编号Si(i=(1~7)),设定每两台从机之间的时间间隔是Ti(i=(1~6)),Ti根据发送数据的前一台从机的发送时间来设定,Ti随着发送时刻的变化进行变化。Ti最大取值是34us,最小是0us。

(2)在系统时钟同步之后主机和从机就可以发送控制命令,再假设主机和从机的时种都是从0us开始,Si(i=(1 ~7))=20us,Ti(i=(1 ~6))=34us。

(3)根据概率分布划分界限,在S1时间段内,1号从机可能要发送数据,也可能不发送数据,S2~S7这些从机在N2段内一直监听信道上有无数据发送。

(4)如果1号从机在S1时间段内没有发送数据,S2~S7这些从机用一个变量H1=0记下S1没有发送数据,然后S2~S7这些从机在N2时间段整体向前移动T1=34us的时间段。

(5)如果1号从机在S1时间段内发送了一帧数据,数据发送出去之后在信道上传输,由于S2~S7这些从机一直在监听信道的状态,这些从机记下它们监听到数据发送的时刻ST1,T1=54-ST1,然后S2~S7这些从机在N2时间段整体向前移动T1us的时间段;S2~S7这些从机用一个变量H1=1记下S1已经发送数据。

图5 动态时间槽划分图

(6)到了 S2从机后,重复4、5、6以上过程,接着S3~S7从机也重复4、5、6以上过程。整个系统的控制过程依次循环下去。

6 测量系统的性能

对现场总线的实际效率定义为:对于一个有固定现场总线的网络,它的总线效率应为系统上所有终端按一定的数据量和给定通信速率通信一个循环后,其传输有效的数据总量和实际传输数据总量之比,乘以传输总有效数据所需的理论时间和实际消耗的时间之比。设总线效率为Y,B为通信波特率,Q1为一个传输循环内有效数据的传输量,T1为按B传输Q1所需要的理论时间,Q2为一个通信循环周期内传输数据的总量,T为一个传输循环周期实际的时间,则Y=(Q1/Q2)*(T1/T)*100%。为了便于比较,采用相同的数据量来进行对比,对于系统和现场总线RS-485网络都通过测量100M数据来测量,先用100M的数据在现场总线网络中进行通信,再用100M的数据量在系统中进行通信。这100M的数据量是有效数据,不包含帧头、帧尾、校验位等一些其他信息,在现场总线网络中通信也要加一些无用的信息,用来保证通信的正确性。分别测量这两种网络,进行通信100M数据量实际所用的时间,它们的理论时间就是数据总量除以通信速率。数据总量是实际通信过程中所有网络端口接收数据总量的和。根据这些数据便可计算出两种网络的实际通信效率。为了便于观察,测量了十组数进行比较,如表3所示。

从表3可以看出以太网的实际通信效率远远大于RS-485的实际通信效率,100M以太网的速度也远远大于RS-485的通信速度,通过划分时间槽就可以避免数据发生碰撞,不仅增加了系统的实时性能,而且又提高了系统的实际通信效率。

表3 实际通信效率测试

7 结 束 语

从测量的所有数据表明,用以太网通信机制实现IEEE 1588时钟同步,可以达到理想的时钟精度,很好的满足工业过程控制系统,以太网已经具备了工业通信系统实时性的需求,利用动态时间槽的划分既可以通信又可以对整个系统进行控制,加之成本低廉、传输速率高等特点,已经可以大规模应用于工业现场的控制系统当中。

[1]Don Anderson.USB系统体系[M].北京:中国电力出版社,2001.

[2]Kevin Hsu.IEEE1588精密时间协议分组网络上的频率同步[J].电子工程专辑,2009,11(6):215 -217.

[3]Friesen D K.Tighter bounds for LPT scheduling on uniform processors[J].SIAM Journal on Computing,1987,13(9):115 -169.

[4]Mireault P,Orlin J B,Vohra R V.A paramet ric worst case analysis of t he LPT heuristic for two uniform machines[J].Operations Research,2010,22(11):597 -599.

[5]王哲,王希敏.并行DSP系统消息传递路由算法[J].计算机工程,2006,14(5):658 -660.

[6]黄瑞.基于TS201的多DSP并行系统设计[J].电子测量技术,2000,17(1):1 -7.

猜你喜欢
发送数据以太网报文
基于J1939 协议多包报文的时序研究及应用
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
一种车载自组织网络的媒体接入控制协议
带标记方式的CRDSA++协议性能分析*
谈实时以太网EtherCAT技术在变电站自动化中的应用
使用IPSec安全传输数据
基于主控同步的CAN总线多点实时数据采集技术
ATS与列车通信报文分析