[0001]
本发明涉及用于从通信系统的第一通信单元经由与至少一个其它的通信单元共享的传输信道来发送数据包的方法和计算机程序。本发明还涉及相对应的用于接收数据包的方法和计算机程序、通信单元以及具有通信单元的机动车。
背景技术:[0002]
通信单元可以在通信系统中经由传输信道来彼此连接,例如借助于具有数据率为10mbit/s的以太网连接来彼此连接。在此,共同使用的或由多个通信单元共享的传输信道或通信信道(所谓的“shared medium(共享介质)”,德文geteiltes medium)可以投入使用。经由共享传输信道,在一个时间点分别最多一个通信单元只能发送一个数据包。通信单元例如可以是在车辆的车载电网中的像传感器和控制器那样的车辆设备。
[0003]
为了避免在传输信道上的在多个成员同时发送或对传输介质进行写访问时会形成的消息的冲突,需要冲突避免方法。对于例如在10mbit/s的汽车(德文fahrzeug)以太网中使用来说,比如公知plca(plca: phy(phy: physical layer(物理层),德文physikalische schicht)level collision avoidance(级别冲突避免)(德文kollisionsvermeidung))方法。在该方法中,每个成员都具有专用时间窗,在该专用时间窗内,只有该成员有权利访问共享传输信道并且允许经由该共享传输信道来发送数据。如果发送过程结束或者成员在预定时长内没有开始发送,则下一个成员获得对传输信道的访问权限。在所有成员都有机会发送帧或数据包之后,通信周期再次开始。因此,可以确保所有通信成员都有经由共享传输信道来发送数据包的平等权利。
[0004]
在一些通信系统中,关于实时要求方面,可能需要区分发送数据包的优先级,使得重要数据可以在不那么重要的数据之前被发送并且不那么重要的数据在这种情况下不占用共享传输信道。
[0005]
在us 2016 0373362 a1中示出了一种网络控制器。该网络控制器可具有发送电路,该发送电路被构造为基于所匹配的优先级来发送包。该优先级可以基于网络带宽来被匹配。在此,包所使用的网络带宽必须被带宽监视器测量。
[0006]
在us 2014 0341032 a1中示出了具有两条路径a和b的设备,这两条路径可以分别处理不同优先级的数据传输块。该设备可以支持高优先级数据的优先通信。为此,该设备可中断优先级更低的包的通信,以便发送优先级更高的包。即,该设备可以按照优先级排序地发送要由该设备所发送的数据。
[0007]
在us 2008 0071924 a1中示出了一种发送节点,该发送节点可以发送低优先级的包。如果在该发送节点处还有要发送的高优先级的包可供支配,则该发送节点可以中断对低优先级的包的发送。如果所有高优先级的包都被发送,则该发送节点可以继续发送低优先级的包。
[0008]
一旦通信单元获得对共享传输信道的访问权利,该通信单元就可能会按顺序发送
所要发送的不同优先级的数据包。在其中另一通信单元有访问权利的情况下,在该通信单元的数据包可以经由传输信道被发送之前可能发生一定的时间延迟。例如,该另一通信单元可能发送比较大的数据包、例如大小为1500字节的数据包,而且该通信单元最早在对该大数据包的发送结束之后、比如在对于应用程序或功能的实时要求来说过长的延迟或等待时间之后才可能会获得访问权利。
[0009]
经由共享传输信道对多个通信单元的数据包的发送可以在比如车辆或机动车中以及通用自动化技术领域或者家庭自动化领域的分布式系统的背景下进行。
[0010]
从wo 03/063428 a1中公知一种用于减少高优先级数据在包网络中的延迟的系统和方法。包由子包组成。为了发送优先级更高的第二包的子包,使对第一优先级的第一包的子包的传输停止。如果已发送了优先级更高的第二包的子包,则重新开始传输优先级更低的第一包的子包。
技术实现要素:[0011]
本发明的任务是提供一种用于经由多个通信单元共享的传输信道对数据包的通信(发送和接收)的经改善的设计。
[0012]
该任务按照专利独立权利要求来被解决。本发明的有利的扩展方案在专利从属权利要求、如下描述以及附图中予以描述。
[0013]
提出了一种用于从通信系统的第一通信单元经由与至少一个其它的通信单元共享的传输信道来发送数据包的方法。按照轮询方法向通信单元提供对共享传输信道的访问或访问权利。每个通信单元在一个周期或一轮轮询之内都获得一次对共享传输信道的访问权利,以便可以发送数据。
[0014]
按照该方法,确定第一通信单元对共享传输信道的当前的访问优先级,其中当前的访问优先级基于当前在传输信道上传输的数据。例如,其它通信单元的数据包可以由第一通信单元经由共享传输信道来接收。通过读出这些数据包,可以确定相应的数据包具有怎样的优先级。例如,上一个经由传输信道来传输的数据包的优先级可以是当前的访问优先级。在一个示例中,第二通信单元发送优先级5的数据包,第一通信单元基于优先级5的数据包来确定当前的访问优先级为值5。例如,在第一通信单元处存在所要发送的优先级3的数据包,并且第一通信单元可能会一直放弃发送这些数据包,直至针对共享传输信道的当前的访问优先级至少下降到了值3为止,例如在第二通信单元不再发送优先级5的数据包之后。换言之,第一通信单元例如当数据的优先级至少与当前的访问优先级一样高时才发送这些数据,其中当前的访问优先级可能根据情况或者随时间而发生变化。当前的访问优先级例如可以在轮询期间持续被确定或者每轮轮询被确定一次。
[0015]
然而,按照一个示例,在第二通信单元发送优先级5的数据包期间,可能有所要发送的例如优先级7的数据包抵达第一通信单元,该所要发送的例如优先级7的数据包例如由于实时要求而应该尽可能迅速地被发送。如果现在第二通信单元的数据包相对大,例如具有1500字节的大小,则第一通信单元可以按照其它方法来获得对共享传输信道的访问权限,例如当第二通信单元对该大数据包的发送结束之后才获得对共享传输信道的访问权限,从而可能形成等待时间。由此,例如在一些情况下不能满足实时要求。
[0016]
一种可能性是:例如通过软件,在所有在轮询方法中参与的通信单元中始终产生
并且处理很小的消息或数据包。然而,这可能导致这些通信单元的处理器的高负荷率,因为例如用于发送和接收消息的例程必须比在大消息的情况下频繁得多地被实施。
[0017]
因此,按照该方法,提出将所要发送的数据包分段成包分段,其中这些包分段具有与数据包的优先级值对应的优先级值。换言之,提出了一种考虑优先级的分段方法。例如,优先级7的数据包的包分段同样具有优先级值7。该分段例如可以在硬件中、例如在通信单元的网络控制器中被实现或者被实施并且因此可以有利地高效地实现对所要发送的消息的分段。例如,包分段可具有预定的或可调整的最大大小,例如该最大大小是16字节、32字节、64字节或128字节。因此,通过该分段可以减小和/或限制每个周期的通信单元的数据的大小并且借此可以减小和/或限制每个周期的通信单元的数据的对于发送来说所需的时长。最大大小例如可以根据传输速度或传输信道、例如数据总线的时间粒度来被选择。通过确定该最大大小,可以得出如下优点:由此可以限定直至给下一个通信单元授予访问权限为止的最大时间延迟或等待时间。例如,该最大大小可以被选择为使得通信系统的对时间要求最严格的通信单元始终可以按照预定的实时要求来发送数据包。
[0018]
为了发送整个数据包,第一通信单元经由共享传输信道来发送所生成的包分段,其中这些包分段根据优先级值和当前的访问优先级被连续发送。例如,对于每个被授予的访问权利来说都可以经由共享传输信道来发送相应的包分段。换言之,替代一个单独的发送过程,分多个发送过程来发送数据包,其中个数取决于数据包的总大小。例如可以首先生成所有包分段并且然后发送这些包分段。替选地,可能的是:在还生成数据包的剩余的包分段期间就已经发送第一包分段。由此,可以得出如下优点:例如可以减少在发送包分段之前的时间。
[0019]
连续发送包分段或者被分段的数据包或消息的分段的优点可在于:大数据包不能长时间阻塞传输信道。由此可能的是:减少在有所要发送的高优先级的数据包的情况下潜在的等待时间。优点可在于:通过适当选择分段大小或者包分段的大小,可以始终满足在通信系统之内的实时要求。
[0020]
在一个实施例中,第一通信单元和第二通信单元可以分别发送优先级相同、例如优先级5并且大小相同的数据包。例如,这些数据包分别被分段成十个包分段。现在,第一和第二通信单元可以一直分别交替地连续发送这些包分段,直至例如在十个发送周期之后整个数据包被发送为止。
[0021]
在另一实施例中,例如在发送优先级5的第五包分段之后可能有所要发送的优先级7的数据包抵达第二通信单元。第二通信单元可以中断对优先级5的数据包的包分段的发送并且发送优先级7的被分段的数据包的包分段。由于第一通信单元不是一次性地发送优先级5的数据包,也可能的是:第一通信单元在发送数据包的第一部分之后(在数目比数据包的包分段的总数小的包分段之后)中断发送,例如当该第一通信单元基于在传输信道上所接收到的包分段或数据包、例如优先级7的第一包分段而确定当前的访问优先级高于要由该第一通信单元发送的数据包的优先级时中断发送。
[0022]
相对应地,按照该方法的一个扩展方案,如果访问优先级超过包分段的优先级值,则中断对数据包的发送。由于事先执行的将数据包分段成包分段,可得出如下优点:对该数据包的发送可以在发送包分段之后随时被中断。由此,可以有利地将在经由共享传输信道发送高优先级的数据包时发生的等待时间减少到最低限度。
[0023]
按照该方法的一个扩展方案,如果访问优先级的值下降到小于等于包分段的优先级值的值,则继续对数据包的发送。例如,如果其它通信单元没有优先级更高的数据包要经由共享传输信道发送,则(通过发送还缺少的包分段)可以继续所中断的对数据包的发送。例如,第二通信单元可以在其发送了优先级7的数据包的所有包分段之后继续对还没有发送完成的优先级5的数据包的包分段的发送。然后,第一通信单元可以确定:共享传输信道的访问优先级又下降到了值5并且因此其它通信单元没有对时间要求更严格的数据包。从该时间点开始(例如在从第二通信单元接收到优先级5的第一包分段之后),第一通信单元可以继续对优先级5的数据包的连续发送。在此的优点可在于:一旦共享传输信道的访问优先级下降到了包分段的优先级值,使得具有相同优先级值的数据包的所有通信单元都同样以最小时间延迟被授予访问权利,则可以立即继续对包分段的发送。
[0024]
按照该方法的一个扩展方案,该数据包对应于具有第一优先级值的数据包,并且当在第一通信单元中可支配具有更高的第二优先级值的第二数据包的包分段时,中断对第一数据包的包分段的发送。换言之,在第一通信单元发送第一优先级值的数据包期间,可能有要发送的更高优先级值的数据包抵达或存在于第一通信单元、即同一通信单元。在这种情况下,通过使用对数据包的分段,可能的是:中断对第一数据包的发送并且首先发送优先级更高的数据包的包分段。由于相应更高的优先级的消息而可能发生进一步的递归中断。在此的优点可在于:不仅其它通信单元的优先级更高的数据包可以以被减少的等待时间来被发送,而且直至在第一通信单元本身对优先级更高的数据包的发送为止的时长可以被减少。
[0025]
按照该方法的一个扩展方案,借助于第一通信单元的被构造用于操控传输信道的控制器来执行该分段。例如,数据包可存在于通信单元的mac(mac:media access control(媒体访问控制),德文medienzugriffssteuerung)组件中。mac组件可构造为:按照数据包的优先级将这些数据包存储在不同的队列或者发送队列中。按照该扩展方案,比如可能的是对在这些队列之内的数据包进行分段。例如,在mac组件之内基于硬件来分段成包分段。对包分段的分段可以在通信单元的第2层(layer/schicht)环境之内被执行。这方面的优点可在于:可以高效地进行该分段,而无需例如通过实施程序或软件来消耗通信单元的处理器能力。
[0026]
在该方法的一个扩展方案中,使通信系统的物理层的包分段供支配。这些包分段比如可以由mac组件传送给通信单元的phy组件。例如,通信单元的物理层、phy组件或phy层可以构造为确定共享传输信道的当前的访问优先级。借此,phy层可以直接根据当前的访问优先级来自主执行对相应的包分段的发送。优点可在于:可以将在确定当前的访问优先级与发送包分段之间的延迟减少到最低限度。
[0027]
按照该方法的一个扩展方案,根据传输信道和/或根据通信系统的通信单元的类型来调整包分段的最大大小。例如,第一传输信道可以比第二传输信道实现对包分段的更快的传输。因此,可能的是:在使用第一传输信道的情况下,即使包分段更大也可由于传输时间更短而始终确保实时要求。因此,要经由第一传输信道来发送的包分段的最大大小可以被选择得比在使用第二传输信道的情况下更大。例如,在第一通信系统中可以提供对时间要求特别严格的通信单元。在这种情况下,能够将包分段的最大大小选择得更小,例如小于32字节。由此,可得出如下优点:例如当在其它通信单元处要发送优先级更高的数据包
时,可以特别快地中断对消息的发送。该最大大小可以按照利用比例来被选择。由于较小的包分段可能具有与大的包分段相同大小的控制数据(比如报头),则信息数据与控制数据的比例可能随着最大大小变小而下降。较小的比例例如可能由于总利用率更高、比如由于与消息的所要满足的实时要求进行权衡而被容忍。优点可在于能够与不同的要求匹配。
[0028]
按照该方法的一个扩展方案,经由本地通信系统的有线传输信道来传送包分段。本地通信系统例如可以在车辆中、在机器、电气设施中或在房屋中被提供。通过使用有线传输信道,能够获得关于有多少个通信单元连接到传输信道上的精确信息。由此,可以有利地非常精确地预测通信系统或通信单元的行为。例如,在有线传输信道中,传输速度和/或带宽可以始终恒定。因此,可以有利地结合对包分段的最大大小的选择来确定直至发送高优先级的数据包为止可能出现的最大等待时间。
[0029]
在该方法的一个扩展方案中,给每个包分段添加相应的分段报头,其中该分段报头至少表明包分段是数据包的第一包分段还是最后一个包分段。分段报头例如可以在以太网网络中附加于以太网报头地被添加。例如,数据包的第一包分段的分段报头可表明:还有关于该数据包的其它包分段被发送。例如,数据包的最后一个包分段的分段报头可表明:不再有其它包分段被发送并且对整个数据包的发送已结束。有利地,以这种方式可以将包分段更容易分配给相应的数据包。例如,经由共享传输信道对数据包的发送可能由于中断而被延迟不确定的时间。有利地,通过分段报头,例如可以更容易确定数据包的所有包分段是否被发送。
[0030]
本发明的与对数据包的发送对应的方面涉及一种用于在第一通信单元处接收数据包的方法。该数据包经由具有第一通信单元的通信系统的共享传输信道来被传送。用于接收数据包的方法包括:从通信系统的其它通信单元接收至少一个包分段。该包分段可以是由该其它通信单元按照之前所描述的方法发送给第一通信单元的数据包的包分段。可以接收多个包分段。
[0031]
第一通信单元确定包分段的优先级值并且执行对该其它通信单元的包分段的缓存。该缓存根据该包分段的优先级值来进行。例如,第一通信单元具有用于数据包的所有被使用的优先级值的相应的缓存存储器。第一通信单元例如可以接收第一优先级值的包分段,其中该包分段可具有如下分段报头,该分段报头表明该包分段是数据包的第一包分段。第一通信单元可以将从该其它通信单元接收到的同一优先级的其它包分段分配给该第一包分段。通过将包分段分配到相应的通信单元并且根据优先级来进行缓存,可以将这些包分段分类或整理成相应的原来的数据包。
[0032]
最后,第一通信单元可以在接收到所有构成数据包的包分段之后输出由所接收到的包分段组成的数据包。数据包的最后一个包分段例如可以通过相对应的分段报头来表征。这些包分段例如可以在第一通信单元的mac组件中或者在第一通信单元的第2层环境中被缓存并且在接收到最后一个包分段之后被组合成原来的、未经分段的数据包。例如,可以在硬件侧将这些包分段组合成数据包,使得有利地例如为此不需要(比如由于实施软件)消耗第一通信单元的中央处理器能力。例如,为了该组合,可以将相应的报头、比如这些包分段的分段报头除去。
[0033]
在该方法的一个扩展方案中,在接收到数据包的最后被接收的包分段之后的预先给定的停滞时间之后,将该数据包的所缓存的包分段删除。可能的是:通信单元已经开始经
由共享传输信道来发送数据包的包分段,然而例如由于错误而尚未(通过发送所有包分段)将该数据包发送完成。在可通过停滞时间预先给定的一定时间之后,可以预计该数据包不再能够完整地被发送或不再能够在第一通信单元处完整地被接收。将对应的所缓存的包分段删除可带来如下优点:使在第一通信单元处不必要地被占用的存储空间重新可供支配。替选地或附加地,在缓存存储器不足的情况下,可以将所有被缓存的包分段中的优先级值最低的数据包的所缓存的包分段删除。第一通信单元例如可以接收多个数据包的包分段。例如,低优先级的数据包的第一包分段可以已经被接收,其中不是低优先级的数据包的所有包分段都已被接收。例如,在间隔时间内可能已经接收优先级更高的数据包。由于第一通信单元的存储器容量可能有限,所以可以是有利的是:使用有限的存储器来缓存优先级更高的数据包。为了例如能够实现对优先级更高的消息的完整接收,可以有利地通过删除优先级更低的不完整的消息或与之对应的包分段来释放缓存存储空间。因此,可得出如下优点:始终优先接收优先级更高的数据包。对低优先级的消息的传输比如可以在稍后的时间点重新开始。
[0034]
在一个实施例中,根据数据包的优先级值来调整停滞时间。例如,在低优先级的消息的情况下,这些消息没有完整地被接收到可能具有较小的影响。因此,在低优先级的消息的情况下,停滞时间可以被选择得比在高优先级的消息的情况下更少,在高优先级的消息的情况下,例如即使高优先级的消息的剩余的包分段仍被接收的概率由于停滞时间更长而可能变得更低,存储空间也应该保持被占用。借此可得出如下优点:缓存存储空间不被其中用于使数据包完整的其它包分段仍被接收的概率低的低优先级的包分段所占用。
[0035]
按照用于接收数据包的方法的一个扩展方案,在缓存存储器不足的情况下,在第一通信单元处对新数据包的包分段的缓存停止。例如,仅仅其中数据包的其它包分段已经被缓存的这种数据包的包分段可以被缓存。例如,如果只有高优先级的包分段被缓存,则对新消息的接收停止。因此,可得出如下优点:已经部分地被接收到的数据包不必被删除并再次完整地被发送和接收,而是这些数据包可以首先完整地被接收,直至其它数据包可以重新被接收为止。
[0036]
本发明还涉及一种计算机程序,该计算机程序用于当该计算机程序在计算机、处理器或可编程硬件组件上运行时执行先前或随后描述的方法。
[0037]
本发明的另一方面涉及一种用于传输数据包的通信单元。该传输可涉及经由共享传输信道来发送和/或接收一个数据包或多个数据包,其中该通信单元构造为实施上述方法之一。该通信单元例如具有控制器,该控制器构造用于将所要发送的数据包分段成预定大小的包分段。例如,可以在该通信单元的mac组件或第2层环境中执行数据分段。通信单元例如可以构造用于在车辆中使用。通信单元例如可以是麦克风、传感器或控制器。例如在具有共享传输信道的车辆网络中使用按照本发明的通信单元的优点可在于:可以减少高优先级的数据包或消息的最大等待时间,并且例如可以提高对应的功能的可靠性。
[0038]
本发明的另一方面涉及一种具有通信系统的机动车,该通信系统包括共享传输信道。该通信系统具有至少一个所提出的通信单元。该机动车可以是就上文或下文的描述而言的车辆。机动车可以是用于运输人员和/或货物的摩托化的移动交通装置,例如陆上交通工具。机动车例如是载客车、载货车或者摩托化两轮车。机动车尤其可以被构造为:比如在使用通过传感器和/或控制器所构造的通信单元的情况下,能够实现自主和/或部分自主或
者部分自动化驾驶。对于自主或部分自主驾驶车辆的功能来说,可能有利的是:通过应用本发明将在传输高优先级的数据包时的等待时间减少到最低限度。
[0039]
按照本发明的计算机程序、通信单元和机动车的扩展方案同样属于本发明,这些扩展方案具有如已经结合按照本发明的方法的扩展方案所描述的那样的一个或多个特征。出于该原因,按照本发明的计算机程序、通信单元和机动车的相对应的扩展方案这里并未再一次被描述,而是对于这些扩展方案来说同样被视为公开。
附图说明
[0040]
现在,在下文参考随附的附图进一步描述本发明的示例。为此:图1示出了基于优先级的用于在使用分段的情况下发送数据包的方法的示例的示意性流程图;图2示出了基于优先级的用于在使用分段的情况下接收数据包的方法的示例的示意性流程图;图3示出了用于在使用分段的情况下发送数据包的发送方的示意图;图4示出了具有不同优先级的被分段的数据包的发送协议的示意图;图5示出了用于在使用分段的情况下接收数据包的接收方的示意图。
具体实施方式
[0041]
图1示出了基于优先级的用于在使用分段的情况下发送数据包的方法100的示例的示意性流程图。按照方法100,从通信系统的第一通信单元经由与至少一个其它的通信单元共享的传输信道来发送数据包。按照轮询方法向这些通信单元提供对共享传输信道的访问。方法100包括:确定110第一通信单元对共享传输信道的当前的访问优先级,其中当前的访问优先级基于当前在传输信道上传输的数据。方法100还包括:将数据包分段120成包分段,其中这些包分段具有与数据包的优先级值对应的优先级值。最后,第一通信单元经由共享传输信道来发送130这些包分段,其中这些包分段根据优先级值和当前的访问优先级被连续发送。
[0042]
在一个示例中,方法100在机动车中被实施。第一通信单元例如可以是雷达传感器,为了实施机动车的自动化驾驶的功能,该雷达传感器将消息或数据包发送到控制器,比如经由共享的10mbit/s以太网信道来发送到控制器。第二通信单元可以是用于打开和关闭车窗的开关,该开关同样将数据发送给控制器。因为雷达传感器可具有比开关更高的优先级,所以当开关已经发送了消息的第一包分段时,雷达传感器可以使该开关的消息中断,以便发送消息。例如当雷达传感器的消息被完整发送时,开关可以发送消息的其余的包分段。
[0043]
第一通信单元例如可以是麦克风,该麦克风必须对时间要求严格地发送数据包,以便确保高音频质量。可能的是:该麦克风与发送大数据包的控制器共享传输信道。通过所提出的分段,可能的是:比如当麦克风具有比控制器更高的优先级时,麦克风的消息使控制器的长消息中断。例如,通过分段以及对访问权限的基于优先级的分发,可以实现有利地高服务质量(qos,quality of service,德文servicequalit
ä
t)。
[0044]
在图2中示出了基于优先级的用于在使用分段的情况下接收数据包的方法200的示例的示意性流程图。按照用于在第一通信单元处接收数据包的方法200,经由具有第一通
信单元的通信系统的共享传输信道来传送数据包。方法200包括:从通信系统的其它通信单元接收210包分段。按照该方法,确定220该包分段的优先级值,并且在分配给该其它通信单元的情况下并根据该包分段的优先级值来对该包分段进行缓存。在接收到所有构成数据包的包分段之后,输出230由所接收到的包分段组成的数据包。
[0045]
方法100、200例如可以在工业控制和调节技术以及建筑物自动化和/或铁路技术中使用以及在航空和航运中使用。
[0046]
可能的是:在车辆中使用例如数据率为10mbit/s的以太网联网技术。不同于比如数据率为100mbit/s或1gbit/s的其它方法,共同被使用的传输信道(“shared medium(共享介质)”)可投入使用。这意味着:在一个时间点最多允许一个网络成员发送到共同的传输介质上。一些车辆属于实时系统类别。这意味着:例如不仅数据、比如数据包的完整性而且传输的及时性都可属于无差错的传输。为了保证共同的传输介质没有不必要地被可能比其它消息或数据包对时间响应的要求更低的消息、比如数据包所阻塞,可以区分在总线访问时的优先级,比如通过访问优先级来区分优先级。由此可以实现:只有当没有优先程度更高(优先级更高)的消息等候传输时,才传输低优先级的消息。然而,在设计网络的时间响应(比如所要预期的最大传输等待时间)时,可能要考虑:对低优先级且具有所容许的最大大小的消息的传输刚刚开始。当另一通信成员想要发送优先级更高的消息时,其它总线访问方法有可能不容许在共同的传输信道上的这种发送被该另一通信成员中断。因而,按照其它方法,必须等待正在进行的传输结束,以便接着发送(例如高优先级的)新消息。由此形成的等待时间可能会通过以短传输时间仅传输比较小的消息来被减少。
[0047]
然而,在车辆网络中所传输的消息或数据包常常比较大。在基于以太网的网络中,为了传输更大的数据量,通常可以使用大小为1500字节的消息(以太网帧)。在数据传输率为10mbit/s的网络中,1500字节的消息大约需要1.2ms用来传输。这可意味着:对于传输优先程度高(高优先级)的消息来说,例如总是必须等待最小为1.2ms的附加的等待时间,用于网络的仲裁。
[0048]
在使用所提出的方法的情况下,可以减少所要列入计划的等待时间。所提出的方法可以被用于在实时系统中使用,因为该方法考虑到使用优先级。在此,高优先级的消息可以使优先级更低的消息中断,而在此不发生数据丢失。在该中断之后,之前被中断的消息例如可以继续并且在一个或多个接收方中被组合成原来的形式,例如可以将包分段重新组合成数据包。
[0049]
该方法的示例可以在媒体访问控制器(media access controller,mac)中的基于以太网的系统中被实现。例如,以太网标准ieee 802.1q规定了八个不同的优先级,其中优先级0对应于最低优先级而优先级7对应于最高优先级。考虑优先级的mac可具有多个(通常是8个)发送队列。调度程序可以确保总是首先传输具有最高优先级的队列中的消息,并且当该队列为空时才传输低优先级的队列中的消息。例如根据类似原理来接收被区分优先级的消息。mac访问多个(通常是8个)接收队列。一旦该mac接收到消息,该消息就可以被置于所属的队列中并且通知(通常是硬件中断(hardware-interrupt))可以被发给处理器。然后,所属的(软件)应用程序例如从接收队列中获取数据。在时间要求低的应用程序(其中例如容许大的通信等待时间)的情况下,这例如以比在时间要求很高的应用程序(其中例如需要更少的通信等待时间)的情况下更大的时间间隔来进行。提供多个队列可以实现:(例如
以较大的时间间隔来获取的)低优先级的消息不能“阻塞”接收队列。为了对高优先级的消息的传输始终可以迅速进行,这些消息(全部)、例如数据包按照这里所描述的方法在发送时被分成较小的分段(包分段)并且在接收方中重新被组合。高优先级的消息也可以根据该方法来被分段,因为在网络中可能有多个成员想要以该优先级来进行发送并且由此具有同等机会(公平方法)来在特定时间内开始发出消息。
[0050]
提出了一种发送方、例如用于发送数据包的通信单元,用来执行所提出的方法。所要发送的消息可处在具有当前最高优先级的队列的最前方的位置。分段机制可以产生分段报头,该分段报头可以与消息的之前所限定的数目的字节共同被发送。只有当网络成员获得对共同的通信介质的发送访问时(在成功仲裁之后,例如通过数据包的优先级与当前的访问优先级的比较来进行成功仲裁之后)才进行实际发送。对于数据率为10mbit/s的车辆网络来说,例如64字节是可能的分段大小。那么,一个分段的包括分段报头在内的传输时间可以约为54μs。借此,例如也可以实现快速的控制和调节系统。在消息的第一分段被发送了之后,分段装置可以产生下一个分段(后续分段)并且同样对该下一个分段进行发送。只有当例如消息的所有分段都被发送了之后,才将该消息从发送队列中除去。消息的最后一个分段可能比消息的其它分段短,原因在于该消息例如正好是分段大小的倍数。
[0051]
按照该方法,不需要发送方立即一个接一个地发送属于一个消息的所有分段。例如可设想的是:在第一时间点,具有最高优先级的消息具有优先级3并且网络成员开始发送该消息的第一分段。然而,有另一消息然后可能出现在优先级4的队列中。由此,成员例如首先不发送优先级3的其它分段,而是开始发送优先级4的消息的分段。这例如也可能在例如有要发送的优先级5或更高的消息抵达或出现时又被中断。例如只有当在优先级更高的队列中不存在消息时,才继续之前被中断的例如优先级3的消息。有利地,该系统可以被设计为使得存在8个优先级。由此可以实现深度为7的递归中断。
[0052]
图3相对应地示出了示例性的用于在使用分段的情况下发送数据包的发送方300的示意图。模块sq可具有用于不同的消息优先级(数据包的优先级值)的多达7个发送队列。例如,为相应的优先级值0、1和7提供三个发送队列310、312、314。组件s可以构造为:从具有最高优先级的消息的队列的相应第一元素中选择正确的分段。为此,s例如将消息中的预先限定的数目的字节复制到一个分段中。组件p可以构造为:通过添加分段报头来使该分段完整。组件s例如必须为所有消息(每个队列一次)标记位置(例如可以在表格或存储器320中记录或存储相应的位置),直至消息的数据已经被分段并发送为止。在下一次发送过程中,例如从该位置起发送数据。
[0053]
按照该方法,优先级更低的消息可被优先级更高的消息中断并且然后可以在相同位置再次继续。为此,图4示出了具有不同优先级410的被分段的数据包的示例性的发送协议400的示意图。包分段可以随时间一个接一个地、例如根据时间轴420排序地被发送。第一数据包430可具有优先级2,第二数据包440可具有优先级3,第三和第四数据包450和460可分别具有优先级4,而第五数据包470可具有优先级5。例如,当存在第二数据包440要发送时,首先可能已经发送了第一数据包430的两个包分段432、434。例如,当存在第三数据包450要发送时,可能已经发送了第二数据包440的第一包分段442。例如,当存在第五数据包470要发送时,可能已经发送了第三数据包450的第一包分段452。在此,优先级更高的数据包可以分别使对优先级更低的数据包的发送中断。例如,对第三数据包450的发送可在发送
第一包分段452之后被中断,直至整个第五数据包470被发送了为止。在完全发送第五数据包470之后,第三数据包450例如可以通过对第二包分段454的发送来被完成。然后,对第二数据包440的发送例如可以通过发送第二包分段444以及第三包分段446来继续。例如,在发送第三包分段446期间可能存在优先级更高的第四消息460并且使对第二数据包的发送再次中断。例如,当第四数据包460被完全发送了时,可以发送第二数据包440的最后一个包分段448。在对第二数据包440的发送结束之后,例如可以发送第一数据包430的剩余的包分段436、438。
[0054]
例如,可以给包分段添加分段报头。分段报头的任务可在于:能够使消息在接收方处重新以原来的形式组合。分段报头例如与消息的内容无关。由于接收方可从多个发送方接收消息,所以该接收方必须能够分配相应的分段来自哪个发送方。每个发送方例如都具有多达8个发送队列。接收方例如必须知道分段属于哪个队列或哪个优先级。在队列之内,包或数据分段的顺序是唯一的,使得例如不必传输关于该顺序的信息。可能有利的是:对消息的第一分段单独进行标记。由此,例如可以识别出消息何时结束以及新消息何时开始。如果例如存在传输错误或失去同步,则接收方例如可以一直丢弃队列的所有分段,直至该接收方接收到新消息的开头为止。消息的最后一个分段例如同样可以被标记。由此,接收方中的分段机制可以识别出消息何时完整被接收并且可被进一步处理。例如,然后触发对应用程序的通知(例如中断,德文unterbrechung)。进行发送的网络成员的身份例如只须在网段之内是唯一的。网络范围内的唯一的编址通过消息的报头、例如以太网报头来实现。由此,例如10位就足以用于对发送方的标识(对于1024个可能的网络成员来说)。对于队列的编址来说,例如需要3位(0至7)。因此,与表明是不是起始分段的位以及表明是不是结尾分段的位一起,例如需要15位用于分段报头。报头的大小例如可以被设计成8位的倍数。由此,例如简化了对数据的按字节的访问。出于该原因,可以引入附加位,该附加位例如可以作为对将来的扩展的指示符来被发送。整个分段报头例如为2字节长。
[0055]
例如,提出了一种接收方,该接收方构造用于接收包分段,该接收方可以将这些包分段组合成数据包。在具有共同被使用的通信介质的网络中,例如每个成员(比如每个通信单元)都接收所有数据分段并且必须自己判断数据分段是特定用于该成员还是可以被丢弃。关于消息特定用于哪个或哪些接收方的信息例如在该消息的报头中(例如不在分段报头中)。在以太网格式下的消息的情况下,这可能是以太网报头。按照这里所描述的方法,接收方地址可以总是在消息的第一分段中。在以太网帧格式下,接收方地址例如占用18字节大的报头的前6字节。由此,比如显著小于64字节的分段也是可能的。首先,网络成员例如一直将分段丢弃,直至该网络成员接收到起始分段为止。例如从起始分段或起始帧中提取接收方地址。在以太网地址的情况下,这可能是单播地址(对正好一个接收方进行编址)、多播地址(对多个接收方进行编址)或者广播地址(对所有接收方进行编址)。如果接收方已经确定:所接收到的分段所属的消息必须被接收,则该分段例如被复制到分段机制或通信单元的内部存储器中。附加地,接收方例如从分段报头中提取发送方id以及队列id。接收方可以自己在内部存储器中的“部分接收到的消息的列表”中记录:该接收方已经接收到了具有特定发送方id和队列id的消息的一部分和/或第一分段被存放在了哪个存储区(缓存)内。对于列表录入项来说,例如可以补充对其它所接收到的分段的存储区的参阅。从该时间点开始,一旦发送方id和队列id对应于之前存储的值,接收方就例如除了所有经由共同的通信
介质来发送的起始分段之外还分析所有后续分段(没有设置用于起始分段的位)。如果接收到属于已经部分被接收到的消息的后续分段,则这同样可以被复制到接收方的存储分段中。存储分段的地址例如在“部分接收到的消息的表格”中被存储在起始分段的地址后面。如果接收到设置了结尾分段的位的分段,则消息例如已被完整接收。然后,可以将消息的所有分段从分段机制的存储区复制到接收队列中。例如,网络成员具有多个接收队列,例如八个接收队列,对于每个优先级级别来说都有一个队列。例如只将完整接收到的消息复制到这些队列中。紧接着,可以触发用于处理所接收到的数据的通知(例如中断)。此外,之前所使用的在(例如接收方的缓存存储器的)分段机制之内的存储区可以重新被释放。这例如涉及所有所属的分段的分段缓存以及例如录入到“部分接收到的消息的列表”中的录入项。比如可能的是:消息小得使得这些消息与唯一的分段匹配。在这种情况下,在分段报头中,不仅可以设置用于起始帧的位而且可以设置用于结尾帧的位。由于在接收到这种分段时不必等待其它分段,所以消息可以直接被复制到接收队列中。如果接收方接收到包含与已经存在于“部分接收到的消息的列表”中那样相同的发送方id和队列id的起始分段,则这例如表明有错误,因为来自发送方的队列中的先前的消息显然没有被完整传输或者比如在途中丢失了。由于有可能不再能够使部分被传输的消息完整,所以在接收方中例如将所有到目前为止接收到的对应的分段丢弃。作为替代,可以存储新的起始分段。由此,比如可以保证:针对部分被传输的消息的存储需求不会无限增长。在此,消息(例如以太网帧)的大小不必是最大分段大小的倍数。这例如意味着:消息的最后一个分段小于其它分段。一旦消息的所有分段都被接收,所有分段的内容例如就被复制到接收队列中的消息对象中。
[0056]
图5相对应地示出了示例性的用于在使用分段的情况下接收数据包的接收方500、例如通信单元的示意图。过滤器f例如观察所有在共同的传输介质上传输的分段并且比如判断该分段是否应该被用于进一步处理。当涉及具有对于网络成员来说重要的目标地址的起始分段或者对其来说在“不完整地被接收到的消息的表格”t中已经存在录入项的后续分段来说,情况可能如此。在起始分段的情况下,例如在表格t中产生新的录入项。该分段的内容可被写到分段缓存b中。一旦消息的所有分段都被接收到,例如组件d就将该消息写到相关的接收队列rq中。例如,提供具有相应的优先级0、1和7的三个接收队列510、512、514。组件g可以定期检查表格t的内容并且例如将属于死连接的录入项(包括b中的数据在内)删除。
[0057]
示例示出了该方法的变化和优化可能性、例如可调整的最大分段大小。包分段或分段的大小比如可以不同于64字节的大小。根据网络是应该有关最大数据吞吐量被设计还是应该有关最小通信等待时间被设计,可以有利地使该值匹配。按照示例,该方法被设计为使得能够寄送小于最大分段大小的分段。例如在结尾帧时情况如此。因此,对最大分段大小的调整可能主要对发送方有影响。接收方比如可在使用该选项时有能力对任意大的分段进行处理。
[0058]
一个示例性的优化方案具有与未经分段的消息的兼容性。该改进方案规定:接收方有能力从总线或传输信道不仅读取被分段的消息(包分段)而且读取未经分段的消息(完整的数据包)。由此,例如可以实现与尚不支持分段机制的系统的向后兼容性。也可能的是:只对大的消息进行分段。那么,(小于或等于分段大小的)小的消息比如可以在没有附加的分段报头的情况下被传输。为了实现该扩展,例如需要接收方可以区分未经分段的消息和
消息分段。为此,例如需要附加特征。为了实现向后兼容性,比如不能够错过具有附加特征的未经分段的消息。在以太网网络中实现这一点的途径比如是对以太网帧前导码的匹配。以太网帧比如开始于以“101010...1011”为形式的64位长的序列。消息分段比如可以开始于另一前导码。对此的建议例如是“10101000”。这个四位长的前导码明显不同于未经分段的标准帧的前导码。
[0059]
一个示例性的优化方案涉及在分段报头中的校验和。在分段报头的范围内的传输错误例如可能不利,因为数据在某些情况下可能会被分类到错误的接收队列中。因而可以规定:附加地传输校验和。对于这种类型的方法来说,8位crc可以是有利的。
[0060]
一个示例性的优化方案涉及省去分段报头中的发送方id。根据使用哪种总线访问方法,在某些情况下可以省去对分段报头中的发送方id的传输。在总线访问方法plca的情况下,每个网络成员比如已经具有id,通过该id来调节在总线访问时的顺序。依据消息分段出现在传输介质上的时间点,网络成员比如可以清楚地查明该分段来自哪个其它成员。为了也可以将该信息用于去分段(对包分段进行组合),例如规定对在以太网-phy组件与以太网-mac组件之间的接口的匹配,该以太网-phy组件控制网络访问,该以太网-mac组件包含这里所描述的分段机制以及发送和接收队列。通常使用的在phy与mac之间的接口比如只传输所接收到的消息的内容,然而不传输这些数据在通信周期之内的位置。因而,这里提出了对该接口的扩展,以便传输这些数据在该通信周期之内的位置。这可以通过数据流中的附加的位来实现。
[0061]
一个示例性的优化方案涉及在没有显式传输的情况下考虑crc中的发送方id。即使发送方id不在分段报头之内被传输,在计算crc时考虑该发送方id也可以是有利的。由此可以实现:在仲裁过程中、在phy中或在phy与mac之间通信时的错误不会导致将被误导的分段添加到错误的消息中。
[0062]
一个示例性的优化方案涉及对接收方中的存储需求的调节。在分段机制下可支配的存储器可能由于该原理而受限,使得比如根据所接收到的数据分段可能发生可支配的存储器的缺乏。在所提出的方法中,每个网络成员例如都具有八个发送队列,而且例如在网络中可存在1023(10位-1)个其它成员。如果每个成员都开始以每个队列将大的消息、例如1500字节(对应于24个分段,每个分段64字节)发送给所有成员,则在所有接收方中的分段机制都必须有能力对不完整地被接收到的消息的超过12mbyte(兆字节)数据进行缓存。这可能带来高成本。因此,提出适应小得多的存储器的方法。如果可以假定消息的有错误的部分不再被传输,则部分被传输的消息的所接收到的分段比如应该尽可能早地被丢弃,以便可以将存储器用于其它消息。
[0063]
为此,一个示例性的优化方案相对应地涉及对丢失的分段的识别。该方法的扩展规定:在分段报头中包含计数器。如果在传输期间有个别分段丢失,则这比如能从两个相邻的分段之间的计数器的值中的跳变>1来被识别出。即使在任何时候接收到结尾分段,也必须假定所接收到的消息不完整。不完整地被接收到的消息例如不需要被转交给下一个更高的网络层,因为这些消息反正在那里都可能被丢弃。该优化方案规定:一旦识别出计数器值中的跳变>1,就将所有被接收到的分段以及在“部分接收到的消息的列表”中的录入项删除。
[0064]
一个示例性的优化方案涉及对死连接的识别。如果在消息被完整传输之前应该取
消通信伙伴(通信单元)或者网络连接,则这根据到目前为止所描述的方法会导致消息的已经被接收到的分段的存储器在下一次复位之前不再被释放。该优化方案规定:识别这种“死连接”并且释放被阻塞的存储器。为此,分段机制例如需要本地时间参考,以便确定最后被接收到的分段的年龄并且比如在超过极限值(最大容许年龄)时将存储器释放。本地时间参考可以通过本地振荡器和计数器来实现。在每次接收到分段时,将当前的计数器值作为“最后被接收到的分段的时间点”存储在“不完整地被接收到的消息的列表”中。另一方面,可以定期检查“不完整地被接收到的消息的列表”:例如是否存在其中“最后被接收到的分段的时间点”与当前的计数器值之差超过预先给定的值的录入项。如果情况如此,则比如将录入项以及所有引用的分段删除并且释放存储器。可将连接视为“死”时起的值(超时(time out))能够通过寄存器来调整。
[0065]
一个示例性的优化方案涉及基于优先程度更低(优先级更低)的分段对死连接的识别。在之前描述的方法中,如果在优先级更高的发送队列中没有消息,则网络成员只发送特定优先级的消息的分段。如果接收方知道该行为并且该接收方接收到例如优先级4的分段,则该接收方比如可以推断出优先级5、6和7的队列为空。如果在同一发送方的“不完整地被接收到的消息的列表”中存在具有该优先级的录入项,则比如可以假定:不再使这些消息完整。该优化方案规定:将这些录入项从该列表中删除并且释放所有到目前为止被接收到的分段的相关联的存储器。
[0066]
一个示例性的优化方案涉及与队列有关的超时(time-out)。在实时系统中,具有所容许的很短的通信等待时间的消息被列入高优先级(例如7)的队列中,而具有所容许的很长的通信等待时间的消息被列入优先级更低的队列中。在特定用于高优先级的队列的消息(信息比如处在分段报头中)的情况下,可以将用于识别死连接的所容许的等待时间选择得明显小于在长等待时间之后也仍有效的消息的情况下。因而,可能有利的是:可以针对每个队列单独地(通常是7个)调整超时值。由此,可以更早地释放存储器。
[0067]
一个示例性的优化方案涉及在存储器不足时对新消息的拒绝。释放存储器的正常方式是完整地接收消息并且(通过接收队列)将数据移交给下一个协议层。该优化方案的目的在于:在即将发生存储器不足时不是消耗存储器用于新消息(起始分段),而是只还尝试使已经开始的消息结束。为了该目的,比如调整极限值(treshold,德文schwelle)。一旦已分配的存储器的大小超过了该值,分段机制就例如将所有起始分段忽略并且只还对关于已经开始的消息的后续和结尾分段进行处理。
[0068]
一个示例性的优化方案涉及在存储器不足时中断低优先级的连接。借助于低优先级的队列来传输的消息例如允许附加的延迟(通信等待时间)。因而,对于这种消息来说有时可能的是:在接收方过载的情况下中断传输并且在稍后的时间点重复该传输。在只允许很短的通信等待时间的消息的情况下,这是不可能的。因而,该优化方案规定:例如当可支配的存储器不足以完整地接收高优先级的消息时,可以将低优先级的消息的分段删除。例如当可支配的存储器实际上完全被耗尽时,应用该措施。通过删除部分被接收到的消息,例如创建空闲存储器用于多个新的分段。可以将具有最低优先级的不完整的消息删除。如果存在具有同等低优先级的多个消息并且“最后接收到的分段的时间点”已知,则可以将其时间点离得最远的消息删除。使该消息迅速完整的概率是最低的。
[0069]
其它实施例是计算机程序,所述计算机程序用于当其在计算机、处理器或者可编
程硬件组件上运行时执行在本文中所描述的方法之一。根据特定的实现要求,本发明的实施例可以以硬件或者以软件来实现。根据特定的实现要求,本发明的实施例可以以硬件或者以软件来实现。所述实现可以在使用数字存储介质(例如软盘(floppy-disk)、dvd、蓝光光碟(blu-ray disc)、cd、rom、prom、eprom、eeprom或者闪速存储器、硬盘或者其它磁或者光学存储器的情况下被执行,以电子方式可读的控制信号被存储在该数字存储介质上,这些以电子方式可读的控制信号与可编程硬件组件共同起作用或者可以共同起作用,使得相应的方法被执行。
[0070]
可编程硬件组件可以通过处理器、计算机处理器(cpu=中央处理单元(central processing unit))、图形处理器(gpu=图形处理单元(graphics processing unit))、计算机、计算机程序、专用集成电路(asic=application-specific integrated circuit)、集成电路(ic=integrated circuit)、芯片上系统(soc=system on chip)、可编程的逻辑元件或者具有微处理器的现场可编程门阵列(fpga=field programmable gate array)来形成。
[0071]
因而,数字存储介质可以是机器可读的或者可以是计算机可读的。因此,有些实施例包括数据载体,该数据载体具有以电子方式可读的控制信号,这些以电子方式可读的控制信号能够与可编程计算机系统或可编程硬件组件共同起作用,使得执行在本文中所描述的方法之一。因此,一个实施例是数据载体(或者数字存储介质或者计算机可读介质),在该数据载体上记录用于执行在本文中所描述的方法之一的程序。
[0072]
一般来说,本发明的实施例可以被实现为具有程序代码的程序、固件、计算机程序或者计算机程序产品或者可以被实现为数据,其中如果程序在处理器或者可编程硬件组件上运行则所述程序代码或者所述数据有效地执行所述方法之一。所述程序代码或者所述数据例如也可以存储在机器可读载体或者数据载体上。所述程序代码或者所述数据尤其可以作为源代码、机器代码或者字节代码以及作为其它的中间代码存在。
[0073]
上面所描述的实施例仅仅是对本发明的原理的阐明。易于理解的是:在本文中所描述的布置和细节的修改方案和变型方案将使其他的本领域技术人员明白(einleuchten)。因此所意图的是:本发明应仅仅通过下述专利权利要求书的保护范围来限制而不是通过已在本文中依据对实施例的描述和阐述来表现的特定的细节来限制。
[0074]
附图标记列表100
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
用于发送数据包的方法110
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
确定访问优先级120
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
对数据包进行分段130
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
发送包分段200
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
用于接收数据包的方法210
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
接收包分段220
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
确定优先级值230
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
输出数据包300
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
发送方310
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第一发送队列312
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第二发送队列
314
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第三发送队列320
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
存储器400
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
发送协议410
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
优先级420
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
时间轴430
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第一数据包432、434、436、438 第一数据包的包分段440
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第二数据包442、444、446、448 第二数据包的包分段450
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第三数据包452、454
ꢀꢀꢀꢀꢀ
第三数据包的包分段460
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第四数据包470
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第五数据包500
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
接收方510
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第一接收队列512
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第二接收队列514
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
第三接收队列