用于传输数据包的方法

文档序号:68629阅读:243来源:国知局
专利名称:用于传输数据包的方法
技术领域
本发明涉及一种用于在以太网自动化网络中传输数据包的方法,特别是一种用于传输具有不同优先级的数据包的方法。
背景技术
由现有技术已知了用于传输数据包的方法。DE 10 2008 039 580A1公开了一种用于在通信网络中传输数据包的方法,其中,在通信网络的发送器和接收器之间传输具有低优先级的第一数据包,并且其中,优选地在发送器和接收器之间传输与第一数据包相比具有高优先级的第二数据包。对于要由发送器传输到接收器上的第二数据包而言,要检验目前是否在传输第一数据包。如果检验目前是否在传输第一数据包的结果为正,则中止或中断第一数据包的传输,并随后传输第二数据包。在第二数据包的传输之后,重复进行还未传输的第一数据包的传输,或者进行不完整传输的第一数据包的剩余部分的传输。并行于发 送过程,每个第一数据包都存储在缓冲寄存器中,并且在完整地将第一数据包传输到接收器上后,才将其从缓冲寄存器中删除。
EP I 734 700A1描述了一种在应用以太网数据传输路径的情况下,用于在数据网络中传输数据的方法。此处描述了一种用于传输数据的方法,其中,为了传输分配有第二优先级的第二数据电报,中断分配有第一优先级的第一数据电报的传输。
W02009/089850A1描述了一种用于运行通信网络、特别是符合以太网技术的局域数据网络的方法。为了缩短在传输时间敏感的数据帧时的等待时间,根据发明所述,由交换机将第一数据帧划分为多个数据碎片,第一数据帧的至少一个数据碎片通过交换机的发送端口传输至另一交换机的接收端口,第一数据帧的数据碎片的传输被交换机中断,并且具有与第一数据帧相比的较高的优先级的至少一个第二数据帧通过交换机的发送端口传输至另一交换机的接收端口,随后继续将第一数据帧的数据碎片通过交换机的发送端口传输至另一交换机的接收端口,并且由另一交换机根据接收的数据碎片,重建第一数据帧。除此之外,当前发明还涉及交换机以及通信网络。

发明内容
与此相对,本发明的目的在于,完成一种改进的用于在以太网自动化网络中传输数据包的方法、一种改进的用于以太网自动化系统的发送器、一种改进的计算机程序产品以及一种改进的自动化系统。
本发明的目的通过独立权利要求
的特征得以实现。在从属权利要求
中说明本发明的实施方式。
本发明涉及一种用于在以太网自动化网络中传输数据包的方法。其中,数据包由多个数据帧组成。数据帧的最小尺寸为小于64字节。由现有技术已知的以太网网络中的数据帧的最小尺寸为64字节,这是因为只有超过该最小尺寸,以太网中的冲突检测才能起作用。以太网中的冲突检测根据所谓的载波监听多路访问/冲突检测(Carrier SenseMultiple Access/Collision Detection (CSMA/CD))方法起作用。对此,64 字节的最小中贞尺寸是有必要的,以此,发送器能够检测到已发送帧与另一帧的冲突,并以此得到信息,即该帧没有正确地被接收器接收。
在一种符合本发明实施方式的方法中,通过发送器接收具有第一优先级的第一数据包。发送器可以是例如网络节点、路由器、交换机或者桥。随后,启动从发送器到接收器的第一数据包的发送过程。在该发送过程期间,接收具有第二优先级的第二数据包。其中,第二优先级高于第一优先级。另外,应将第二数据包传输至接收器。要注意也可能有更多的优先级,而非仅仅只有两种优先级。不同的优先级别说明网络内的数据包的重要性。例如,实时数据具有相对高的或者甚至是最高的优先级,而用户数据(例如互联网数据)具有相对低的或者甚至是最低的优先级。通过比较优先级,发送器得到信息,即关于自动化网络的作用原理的包有多重要。例如应尽可能快地转发实时数据,这是因为延迟可能会干扰通过自动化网络实施的自动化过程。
自动化网络能够设计为例如工业自动化网络。可以设计、设定和/或设置此类工业自动化网络,例如用于控制和/或调节工业设备(例如生产设备、输送设备等)、机器·和/或装置。特别地,自动化网络或者说工业自动化网络能够具有实时通信协议(例如Profinet、Profibus现场总线、实时以太网(Real-Time-Ethernet),用于至少在参与到控制任务和/或调节任务的部件之间(例如在控制单元和要控制的设备和/或机器之间)进行通信。同样地,也能实现通过存储介质完成的数据的安全传输。
此外,除了实时通信协议之外,在自动化网络或者说工业自动化网络中,还设置有至少另一个通信协议(其不需要是实时性的),例如用于监控、设定、重新编程和/或重新参数化自动化网络中的一个或者多个控制单元。
自动化网络能够包括例如有线连接的通信部件和/或无线的通信部件。另外,自动化网络能够包括至少一个自动化装置。
自动化装置可以是例如具有控制任务或者说可控制性的计算机、个人电脑和/或控制器。特别地,自动化装置可以是例如工业自动化装置,其可以设计、设定和/或设置为例如专门用于控制和/或调节工业设备。特别地,此类自动化装置或者说工业自动化装置能够是实时性的,即能够实现实时的控制或者说调节。为此,自动化装置或者说工业自动化装置可以包括例如实时操作系统,和/或至少另外支持实时性的、用于通信的通信协议(例如Profinet、Prifibus现场总线、实时以太网)。
自动化网络包括多个传感器和执行器。执行器和传感器由至少一个控制装置进行控制。执行器、传感器和至少一个控制装置相互交换数据。为了数据交换,应用自动化协议。至少一个控制装置这样控制执行器、传感器和数据交换,以便进行机械生产过程,在该过程中生产例如产品。
工业自动化装置可以是例如可编程控制器、可编程控制器的模块或者部件、内置在计算机或者个人电脑中的可编程控制器、以及相应的现场用仪表、传感器和/或执行元件、输入装置和/或输出装置或者类似的用于连接到可编程控制器上的装置,或者可以包括此类装置。
当前发明意义上的自动化协议理解为下述各类的协议,即这些协议设置用于、适合于和/或设定用于与根据当前说明书所述的自动化装置进行通信。此类自动化协议可以是例如Profibus总线协议(例如根据IEC61158/EN50170)、Profibus-DP协议、Profibus-PA 协议、Profinet 协议、Profinet-IO 协议、根据 AS 接口的协议、根据 IO-Link的协议、KNX协议、根据多点接口(Multipoint-Interface,MPI)的协议、用于点对点连接(Point-to-Point,PtP)的协议、符合S7通信规格的协议(其例如设置和设定用于西门子公司的可编程控制器的通信),或者也可以是工业以太网协议、或者实时以太网协议、或者说其它用于与自动化装置通信的专门协议。作为当前说明书意义上的自动化协议,也可以设置有上述协议的任意组合。
如果也就是说接收了具有和第一数据包相比更高的优先级的第二数据包,则在第一数据包的其中一个数据帧内,发送器中止第一数据包的发送过程。在接收第二数据包的时刻,中止该发送过程。也就是说中止了数据帧的传输,该数据帧在接收第二数据包的时刻处于发送过程中。随后,实现从发送器到接收器的第二数据包的传输。
在数据帧内的发送过程的中止具有优点,即更快地通过发送器发送较高优先级的 数据。相反地,在现有技术中始终传输数据帧直至结束。由此,如果在接收第二数据包时,数据帧的发送过程才刚刚开始,则在64字节的数据帧的最小尺寸的情况下(如在以太网中的规定),在传输速度为100Mbit/s时,产生5微秒的延迟。举例来说,如果现在第二数据包包括实时数据,则发送器可能延迟5微秒后对该实时数据进行转发。该延迟在自动化网络的每个发送器中都会倍增。因此,总共产生每个网络节点5μ s的延迟。这会导致实时数据延迟过多,并且在自动化网络中产生故障。
由于数据帧的最小尺寸为小于64字节,发送第二数据包时的该延迟缩短。例如,如果数据帧只有I字节,则在数据传输速度为lOOMbit/s时的延迟降至80ns。数据帧的最小尺寸能够减小至I字节。不得低于这I字节,以免产生调准误差。
如果还未达到数据帧的最小尺寸,而在此时在数据帧内中止了第一数据包的发送过程,则在lOOMbit/s的速度的情况下,发送第二数据包的延迟降至40ns。在这种情况下,也就只必须发送最后的半字节。半字节就是字节的一半、即4比特。在此,不需要传输一个完整的字节,这是因为调准误差没有本质影响。所中止的数据帧在接收器处也会被丢弃。在这种情况下,由于中止数据帧并且未发送最后的完整字节而产生的调准误差变得不重要。如果传输了第二数据包,则必须随后重新传输所中止的数据帧。如果所中止的数据帧的一部分已被接收器接收,则其在接收器处被丢弃。
最后的半字节必须完整传输,这是因为例如所谓的简化媒体独立接口(ReducedMedia Independent Interfaces (RMII))利用半字节进行工作。小于I个的半字节(即4比特)的传输在此是不可能的。
将数据帧的最小尺寸减小至小于64字节是有利的,这是因为必须尽量减少在帧内中止第一数据包的传输的频率。帧尺寸越小,必须中止发送过程以传输第二数据包的情况就越少。数据帧的最小尺寸越大,就越频繁地在第一数据包的一个数据帧内中止第一数据包的发送过程,由此第一数据包的整个传输时间明显延迟,这是因为必须始终重新传输中断的数据帧。由此,会极其缓慢地通过自动化网络传输具有低优先级的数据包,因为其数据传输始终重复地通过具有第二优先级的数据包中断。
根据本发明的实施方式,在发送过程期间,缓冲存储第一数据包的每个数据帧。如果中止发送过程,则再一次将其传输被中止的数据帧传输到缓冲寄存器上。这会在传输了第二数据包后进行。
通过数据帧的缓冲存储而实现了,即在发送过程中断时,其传输被中断的数据帧不会丢失。此类数据帧不会正确地被接收器接收。因此,必须再一次将其传输到接收器上。
根据本发明的实施方式,第一数据包的发送过程和第二数据包的传输通过从发送器到接收器的传输路径实现。该传输路径仅仅被用于在全双工方法中从发送器到接收器的数据传输。换句话说,同时在两个方向上,在发送器和接收器之间交换数据包,而不会造成数据包之间的冲突。通过该特征,避免了通过相同的传输路径在相反的方向上传输的数据包之间的冲突。以此也在数据帧的最小尺寸小于64字节时避免了冲突。
根据本发明的实施方式,第一数据包的传输在半字节的传输后中止。半字节由4比特组成。替换方式是第一数据包的传输能够在完整字节的传输后中止。例如对于媒体独立接口(Media Independent Interfaces (Mil))而言就是这种情况,其中最小可传输的单位是字节。
根据本发明的实施方式,在数据帧的第一部分接收完毕后,发送器立即转发第一和第二数据包的数据帧的一个数据帧。这也可以被称作所谓的直通式交换(Cut ThroughSwitching)。以此,数据包的转发加速,这是因为不用等到发送器完全接收数据包,就能开始到接收器的发送。
根据本发明的实施方式,第一和第二数据包的每个数据帧都包括目标地址。该目标地址确定通过发送器的哪一个网络接口将相应的数据帧传输至接收器。换句话说,发送器的发送端口由目标地址确定。在发送端口(其也能被称作网络接口)上只连接有接收器。以此保证数据包的快速转发,这是因为通过简单地读取目标地址,直接确定了应通过其将相应的数据帧传输至接收器的网络接口。
根据本发明的实施方式,第二数据包包括自动化网络的实时数据。必须尽可能快地转发自动化网络的实时数据,这是因为其对于自动化网络内的自动化过程的正确运行是必要的。特别地,由于实时数据的过度延迟,自动化过程可能会陷入停顿或者只会有故障地运行。因此,有利的是尽可能快地通过发送器将具有更高优先级的第二数据包发送至接收器。
在另一方面,本发明涉及一种用于以太网自动化网络的发送器,该发送器用于传输数据包。数据包由多个数据帧组成。数据帧的最小尺寸为小于64字节。发送器包括用于接收具有第一优先级的第一数据包的装置。其可以是例如网络接口。除此之外,发送器还包括用于启动第一数据包到接收器的发送过程的装置。该发送过程可以由例如处理器启动。第一数据包能够通过例如另一网络接口发送至接收器。
此外,发送器包括用于接收具有第二优先级的第二数据包的装置。该数据包可以通过例如与第一数据包相同的网络接口或者通过另一网络接口接收。第二优先级高于第一数据包的第一优先级。第二数据包同样应传输至接收器。这可以通过例如数据包所包括的目标地址确定。目标地址可以由例如处理器读取。
除此之外,发送器还包括用于在第一数据包的数据帧的其中一个数据帧内中止第一数据包的发送过程的装置。如果在接收第二数据包的时刻,有数据帧处于发送过程中,则中止该数据帧的发送过程。当接收具有第二优先级的第二数据包时,会中止第一数据包的发送过程。除此之外,发送器还包括用于将第二数据包传输至接收器的装置。这可以通过例如与第一数据包的发送过程相同的网络接口实现。
在另一方面,本发明涉及一种计算机程序产品,具有能够通过发送器执行的指令,这些指令在执行时促使发送器实施根据本发明的实施方式所述的方法。
在另一方面,本发明涉及一种自动化网络,具有至少一个根据本发明的实施方式所述的发送器。


接下来,根据附图进一步阐述本发明的实施方式。图中示出
图I由多个数据帧组成的数据包的示意性视图;
图2根据本发明的实施方式所述的发送器的框图;以及图3根据本发明的实施方式所述的方法的流程框图。
如果元件的功能一致,则接下来的附图中的元件用同一参考标号标识。
具体实施方式
图I是数据包100的示意性视图。数据包100由多个帧102-102””’组成。每个数据帧102具有小于64字节的最小尺寸。在通过发送器(例如网络节点、路由器、交换器或者桥)转发数据包100时,能够在其中一个数据帧102-102””’内中止数据包的发送过程。在图I中示例性示出在位置104处中止数据帧102’’的传输。举例来说,如果应通过目前发送该数据帧102”的发送器来发送比在此显示的数据包100有更高优先级的另一数据包(图I未显示),则能够在位置104处中止数据帧102”的发送过程。如果数据包100包括用户数据(例如互联网数据),而另一在图I中未显示的数据包包括重要的实时数据,这些实时数据对自动化网络的自动化过程十分必要,则会是这种情况。如果现在应将更多的数据包转发至相同的接收器,则中止数据帧102’’的传输,而没有将数据帧102”完整传输至接收器。以此,能够尽可能快地将在此未显示的更高优先级的具有实时数据的数据包转发至接收器。在更高优先级的数据包的传输后,再一次传输所中止的数据帧102”,这是因为其因未完整传输而不能正确地被接收器接收。
除此之外,将数据帧的最小尺寸减小至小于64字节是有利的,因为这样的话,不必像具有更大最小尺寸的数据帧一样,如此频繁地中止数据帧的传输。以此,也可靠地以可接受的速度传输低优先级的数据。对于数据帧102的较大的最小尺寸而言,会频繁地中止低优先级的数据帧102的传输,这是因为必须传输更高优先级的数据包。在这种情况下,会明显延迟低优先级的数据的转发。
图2是具有处理器202、数据存储器204和程序指令206的发送器200的框图。处理器202设计为用于执行程序指令206。此外,发送器200包括网络接口 208-208”。通过网络接口 208-208”,发送器200与自动化网络的其它部件连接。例如,发送器200能够通过网络接口 208与接收器连接,并且通过网络接口 208’和208”与其它发送器连接,而发送器200又从这些发送器处接收数据。换句话说,在这种情况下,发送器200设计为通过网络接口 208将通过网络接口 208’或者208”接收的数据包发出至接收器。
在运行中,通过网络接口 208’或者208”接收了具有第一优先级的第一数据包。接着,处理器202读取第一数据包的目标地址,并且启动第一数据包通过网络接口 208到接收器的发送过程。在发送过程期间,通过其中一个网络接口 208’或者208”接收具有第二优先级的第二数据包。第二优先级高于第一优先级。处理器202在此也读取第二数据包的目标地址。该目标地址与第一数据包的目标地址一致。换句话说,第二数据包同样也应传输至接收器。优先级也被处理器分别读取。通过对比第一优先级与第二优先级,处理器202具有信息,即相比于数据包的发送过程,第二数据包的转发对于自动化网络更重要。因此,在第一数据包的数据帧之一内中止第一数据包的发送过程。对于在接收第二数据包时处于发送过程中的数据帧进行中止。也就会尽可能快地将第二数据包发送至接收器。这减小了对于高优先级的数据(例如实时数据)的延迟时间。在中止了第一数据包的发送过程后,第二数据包通过网络接口 208被传输至接收器。如果实现了第二数据包的传输,则能够重新开始第一数据包的发送过程。为此,再一次传输所中止的数据帧,这是因为该数据帧在之前无法正确地被接收器接收。包括所中止的数据帧的第一数据包能够被存储到例如数据存储器204或者另一数据存储器中。可以保存整个数据包,但是也可以只保存一部分。例如,如果第一数据包的数据帧已完整传输,则能够分别对其进行删除。因此,在数据存储器中只会有那些还未被完整传输至接收器的第一数据包的数据帧。
图3是根据本发明的实施方式所述的方法的流程框图。在第一步骤SI中,通过发送器接收具有第一优先级的第一数据包。接着在步骤S2中,启动第一数据包从发送器到接收器的发送过程。在步骤S3中,该发送过程仍继续。在步骤S3中,在一个时刻通过发送器接收具有第二优先级的第二数据包,而与此同时,第一数据包的发送过程仍进行。其中,第二优先级高于第一优先级,并且第二数据包同样应传输至与第一数据包相同的接收器。
接着,在步骤S4中,在第一数据包的数据帧之一内中止第一数据包的发送过程。如果在接收第二数据包的时刻,有数据帧处于发送过程中,则中止该数据帧的传输。也应尽可能快地中止发送过程。不必等到完整传输数据帧。接着,在步骤S5中由发送器将第二数据包传输至接收器。
如果第二数据包的传输结束,则能够继续第一数据包的发送过程。其中,重复传输所中止的数据帧,这是因为该数据帧在之前无法正确地被接收器接收。为此,在第二数据包的传输过程期间,将第一数据包缓冲存储在发送器中。例如,能够缓冲存储整个第一数据包,或者只缓冲存储尚未完整传输至接收器的第一数据包的那个相应部分。
权利要求
1.一种用于在以太网自动化网络中传输数据包(100)的方法,其中,所述数据包由多个数据帧(102)组成,其中,所述数据帧(102)的最小尺寸为小于64字节,并且其中,所述方法包括下列步骤 -通过发送器(200)接收(SI)具有第一优先级的第一数据包; -启动(S2)所述第一数据包从所述发送器到接收器的发送过程; -在一个时刻通过所述发送器(200)接收(S3)具有第二优先级的第二数据包,其中,所述第二优先级高于所述第一优先级,其中,所述第二数据包应传输至所述接收器;并且随后, -在所述第一数据包的所述数据帧(102)的其中一个数据帧(102”)内中止(S4)所述第一数据包的所述发送过程,所述第一数据包在接收所述第二数据包的所述时刻处于所述发送过程中;并且随后 -将所述第二数据包从所述发送器(200)传输(S5)至所述接收器; 其中,在所述发送过程期间,所述第一数据包的每个数据帧(102)都被缓冲存储在缓冲寄存器中,并且其中,在中止所述发送过程的情况下,在传输了所述第二数据包后,再一次从所述缓冲寄存器中传输其传输被中止的所述数据帧(102)。
2.根据权利要求
I所述的方法,其中,所述第一数据包的所述发送过程和所述第二数据包的所述传输,通过从所述发送器到所述接收器的传输路径实现,并且其中,所述传输路径仅仅用于从所述发送器(200)到所述接收器的数据传输。
3.根据前述权利要求
中任一项所述的方法,其中,在传输半字节或者一个字节后,中止所述第一数据包的所述传输。
4.根据前述权利要求
中任一项所述的方法,其中,在所述数据帧的第一部分接收完毕后,所述发送器(200)立即转发所述第一和所述第二数据包的所述数据帧(102)的一个数据帧。
5.根据前述权利要求
中任一项所述的方法,其中,所述第一和所述第二数据包的每个所述数据帧(102)都包括目标地址,其中,所述目标地址确定通过所述发送器(200)的哪一个网络接口将相应的所述数据帧传输至所述接收器。
6.根据前述权利要求
中任一项所述的方法,其中,所述第二数据包包括所述自动化网络的实时数据。
7.一种用于以太网自动化网络的发送器(200),所述发送器用于传输数据包,其中,所述数据包由多个数据帧(102)组成,其中,所述数据帧(102)的最小尺寸为小于64字节,所述发送器具有 -装置(208’ ;208”),用于接收具有第一优先级的第一数据包; -装置(202 ;206 ;208),用于启动所述第一数据包到接收器的发送过程; -装置(208 ;208”),用于接收具有第二优先级的第二数据包,其中,所述第二优先级高于所述第一优先级,并且其中,所述第二数据包应传输至所述接收器; -装置(202 ;206),用于在所述第一数据包的所述数据帧(102)的其中一个数据帧内中止所述第一数据包的所述发送过程,所述第一数据包在接收所述第二数据包的时刻处于所述发送过程中; -装置(202 ;206 ;208),用于将所述第二数据包传输至所述接收器;-缓冲寄存器,所述缓冲寄存器设计用于,在所述发送过程期间存储所述第一数据包的每个数据帧(102),并且其中,在中止所述发送过程的情况下,在传输了所述第二数据包后,再一次从所述缓冲寄存器中传输其传输被中止的所述数据帧(102)。
8.一种计算机程序产品(204),具有能够通过发送器(200)执行的指令(206),所述指令(206)在执行时促使所述发送器(200)实施根据权利要求
I至6中任一项所述的方法。
9.一种具有至少一个根据权利要求
7所述的发送器(200)的自动化网络。
专利摘要
本发明涉及一种用于在以太网自动化网络中传输数据包(100)的方法,其中,数据包由多个数据帧(102)组成,其中,数据帧(102)的最小尺寸为小于64字节,并且其中,该方法包括下列步骤通过发送器(200)接收(S1)具有第一优先级的第一数据包;启动(S2)第一数据包从发送器到接收器的发送过程;在一个时刻通过发送器(200)接收(S3)具有第二优先级的第二数据包,其中,第二优先级高于第一优先级,其中,第二数据包应传输至接收器;并且随后,在该第一数据包的数据帧(102)的其中一个数据帧(102’’)内中止第一数据包的发送过程,第一数据包在接收第二数据包的时刻处于发送过程中;并且随后,将第二数据包从发送器(200)传输至接收器。
文档编号GKCN102843288SQ201210213834
公开日2012年12月26日 申请日期2012年6月25日
发明者弗朗茨-约瑟夫·格茨, 京特·施泰因德尔 申请人:西门子公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1