主从总线系统和用于运行总线系统的方法与流程

文档序号:21997196发布日期:2020-08-25 19:39阅读:238来源:国知局
主从总线系统和用于运行总线系统的方法与流程

主/从是一种在调节和控制的许多问题中对到公共资源的访问的分级管理的形式,公共资源大多以公共的数据信道的形式。对于数据传输,仅一个公共的传输信道可供使用(例如作为无线电链路或以数据总线的形式)。当多个参与者同时发送时,不再发生传输,因为只有残缺的数据到达接收参与者处的总线。因此,必须建立一种使得参与者在相互确认的情况下共享数据信道的可能性。一种可能性是应用主从原理。一个参与者是主设备,所有其他参与者是从设备。主设备唯一地具有未经请求地访问公共资源的权利。从设备自己不能访问公共资源;它必须等待直到它被主设备询问(轮询),或者通过经过公共资源的连接向主设备指示它想被询问。主从方法在总线系统中使用,总线系统例如是现场总线,例如profibus、bitbus、as-i。



背景技术:

由ep2466406b1已知一种用于自动产生动态帧包组的方法。为了在自动化系统中提高数据从现场设备到控制器的传输速度,引入了动态帧分组(dfp)概念。在此,在使用容器帧的情况下进行数据传输。分配给包组的终端设备在此在所述容器帧内传输其数据。由此得到的优点是,所使用的以太网帧的额外开销对于给定的传输仅一次性地被承担,因为基于容器帧仅使用例如前导码、起始帧定界符和报头。这实现提高包密度,从而在一个时钟周期内,可以通过多个现场设备进行数据传输,其中与不使用dfp的数据传输相比,更新率在传输方面显著提高。

由2014年的“industrialcommunicationwithprofinet”,manfredpopp,第165-168页已知,对于动态帧分组(dfp),最远的节点开始发送其输入数据,办法是:该最远的节点产生数据帧,该数据帧具有报头、数据区域和尾部。通信中接入的每个现场设备内部地存储了整个数据帧的虚拟映像。它将其输入数据插入到数据帧中,并且在报头和尾部方面更新长度和校验和。为此需要精确的时序,从而每个现场设备知道,该现场设备必须在何时将其输入数据插入到数据帧中。数据帧的长度相应地随着每次通过现场设备添加输入数据而增长,并且最终到达控制器。



技术实现要素:

本发明的任务在于,说明一种总线系统,该总线系统的在总线系统的从设备向主设备的方向上的通信尽可能被改善。

所述任务通过具有权利要求1的特征的总线系统解决。有利的改进方案是从属权利要求的主题。

因此,设置了总线系统,该总线系统具有主设备、第一从设备、第二从设备和总线。通过总线,主设备和第一从设备和第二从设备彼此连接。总线优选地构造为串行总线。总线也可以称为本地总线。在总线系统中,除了第一从设备和第二从设备之外,一个或多个从设备可以与总线连接。

总线将主设备和第一从设备和第二从设备彼此连接,以便将数据包从主设备通过第一从设备并且通过第二从设备传输回到主设备。优选地,传输路径在此环形地构造。在此,数据包可以经过环形传输路径中的其他从设备。

主设备设置用于产生具有报头和数据区域的数据包并且将所产生的数据包发送到总线上。相反,总线系统的从设备优选地设置用于不产生数据包。由主设备产生的数据包不具有从设备中的一个从设备的地址,即不寻址到特定的从设备。数据包由主设备作为点向作为总线系统的参与者的所有从设备传输。

第一从设备设置用于将其第一地址和第一有效数据写入到数据包的数据区域的第一分段中。优选地,第一从设备设置用于与主设备无关地形成数据区域的第一分段。有利地,第一从设备在此设置用于至少确定第一分段的长度。根据该改进方案,主设备不设置用于形成第一分段。

第二从设备设置用于将其第二地址和第二有效数据写入到数据包的数据区域的第二分段中。优选地,第二从设备设置用于与主设备无关地形成数据区域的第二分段。有利地,第二从设备在此设置用于至少确定第二分段的长度。根据该改进方案,主设备不设置用于形成第二分段。

主设备设置用于从总线接收数据包。由主设备生成的相同的数据包以第一有效数据和第二有效数据补充地又返回到主设备。在此,主设备设置用于,基于第一地址将第一有效数据分配给第一从设备并且基于第二地址将第二有效数据分配给第二从设备。主设备设置用于,进一步处理所分配的第一有效数据和所分配的第二有效数据。

有利地,主设备设置用于进一步处理,第一有效数据和/或第二有效数据被存储在属于相应的第一或第二地址的所寻址的存储区域中。有利地,主设备设置用于进一步处理,将第一有效数据和/或第二有效数据基于第一地址或第二地址写入到一个或多个寄存器中。有利地,主设备在进一步处理方面设置用于通过主设备的软件评估第一有效数据和/或第二有效数据。有利地,主设备在进一步处理方面设置用于经由主设备的与总线分离的接口(尤其是现场总线接口或服务接口)转发第一有效数据和/或第二有效数据。

根据一个有利的改进方案,数据包的数据区域在通过总线传输期间具有固定大小。因此,数据包的大小在由主设备产生之后不被从设备中的任何从设备改变。主设备有利地设置用于产生具有空的数据区域的数据包。因此,通过数据包在数据区域内不向从设备中的一个从设备传输数据。有利地,主设备设置用于确定数据区域的固定大小。相反,固定大小不能由第一从设备或第二从设备改变。第一和第二有效数据可以通过第一和第二从设备仅仅写入数据包的通过主设备产生的数据区域中,即仅仅写入在报头与数据区域的通过主设备确定的结尾之间。

根据一个有利的改进方案,主设备设置用于基于消息确定数据包的数据区域的固定大小。有利地,消息包含在先前接收的数据包中。有利地,第一从设备和/或第二从设备设置用于发送消息。有利地,第一从设备和/或第二从设备设置用于发送消息,以将值写入到先前的数据包的报头或数据区域中。

根据一个有利的改进方案,第一从设备设置用于确定数据包的数据区域中的未被写的区段的大小和第一有效数据的大小。优选地,第一从设备设置用于,当第一有效数据的大小不超过未被写的区段的大小时,将第一从设备的第一地址和第一从设备的第一有效数据写入到第一分段中。否则,第一从设备优选不将有效数据写入到数据区域中。

根据一个有利的改进方案,第一从设备设置用于,当要发送的第一有效数据的大小超过未被写的区段的大小时,将消息写入到数据包的报头和/或数据区域中。如上所述,消息由主设备接收,并且用作确定数据包中的数据区域的固定大小的基础。

根据一个有利的改进方案,第二从设备设置用于确定数据包的数据区域中的未被写的区段的大小和第二有效数据的大小。在此,未被写的区段的大小在通过第二从设备接收时是决定性的。因此,第一从设备已经可以将有效数据写入到第一分段中,使得数据区域的一部分已经被写入并且由此缩小未被写的区段。优选地,第二从设备也设置用于,当第二有效数据的大小不超过未被写的区段的大小时,将第二从设备的第二地址和第二从设备的第二有效数据写入到第二分段中。

根据一个有利的改进方案,第二从设备设置用于,当第二有效数据的大小超过未被写的区段的大小时将消息写入到数据包的报头或数据区域中。换言之,每个从设备仅当在数据区域中有足够的位置时才可以写入。附加地,其他条件可以允许或禁止由相应的从设备进行写入。

根据一个有利的改进方案,主设备设置用于基于确定的事件和/或周期性地产生数据包。例如,数据包可以总是在周期帧内的预定时间点从主设备发送。附加地,在通过主设备的高的数据通信量的情况下,还可以附加地更频繁地发送数据包。

根据一个有利的改进方案,主设备设置用于将主优先级添加到数据包中。在此,主优先级通过用于数据包的主设备被确定并且可以从数据包到数据包变化。在此,主优先级是控制数据,借助于控制数据从从设备向主设备仅传输被相应高优先化的有效数据。低优先级的有效数据可以借助主优先级被复位。

根据一个有利的改进方案,第一从设备设置用于将数据包中所包含的主优先级与第一有效数据的第一有效数据优先级进行比较。有利地,第一从设备设置用于,当主优先级不高于第一有效数据优先级时,将第一从设备的第一地址和第一从设备的第一有效数据写入到第一分段中。相反,如果主优先级高于第一有效数据优先级,则第一从设备不将其第一有效数据写入到数据区域中。因此,在主优先级太高的情况下,第一从设备将必须等待具有足够低的主优先级的后续数据包。

根据一个有利的改进方案,第一从设备设置用于,当主优先级高于第一有效数据优先级时,将优先级消息写入到数据包的报头和/或数据区域中。有利地,主设备设置用于接收和评估优先级消息。

根据一个有利的改进方案,第二从设备设置用于将数据包中所包含的主优先级与第二有效数据的第二有效数据优先级进行比较。有利地,第二从设备设置用于,当主优先级不高于第二有效数据优先级时,将第二从设备的第二地址和第二从设备的第二有效数据写入到第二分段中。

根据一个有利的改进方案,第二从设备设置用于,当主优先级高于第二有效数据优先级时,将优先级消息写入到数据包的报头和/或数据区域中。

根据一个有利的改进方案,主设备设置用于评估优先级消息并且基于优先级消息的评估来适配用于随后的数据包的主优先级。例如,当优先级消息已由主设备接收并且同时从设备未请求更高优先级的有效数据的数据传输时,可以降低主优先级。

根据一个有利的改进方案,第一从设备和/或第二从设备设置用于确定数据包的数据区域中的未被写的区段。优选地,未被写的区段的确定基于数据包的报头中的包长度说明和/或数据包的数据区域内的分段报头和/或数据包的数据区域的已经描述的区段的计数。

根据本发明的另一方面,设置一种总线系统的从设备。从设备具有发送接收电路,发送接收电路可以与总线系统的总线连接。从设备具有计算单元,尤其是状态机,计算单元与发送接收电路连接。从设备具有与计算单元连接的存储区域。发送接收电路设置用于接收具有报头和数据区域的数据包,其中数据区域可以具有未被写的区段。计算单元设置用于确定未被写的区段的大小。计算单元设置用于比较数据包的数据区域中的未被写的区段的大小和存储在存储区域中的有效数据的大小。计算单元和发送接收电路设置用于,当所存储的有效数据的大小不超过未被写的区段的大小时,将地址和所存储的有效数据写入数据包的数据区域中的分段中。

本发明的另一方面是总线系统的主设备。

主设备具有发送电路,发送电路可以与总线系统的总线连接。主设备具有接收电路,接收电路可以与总线系统的总线连接。主设备具有计算单元、尤其是状态机,计算单元与发送电路和接收电路连接。计算单元设置用于产生具有报头和数据区域的数据包。数据包的报头具有标识符,该标识符确定用于从与总线连接的从设备向主设备的有效数据的通信方向的数据包的类型。发送电路设置用于将所产生的数据包发送到总线上。接收电路设置用于从总线接收数据包。计算单元设置用于将有效数据基于地址分配给至少一个从设备并且进一步处理所分配的有效数据。

根据一个有利的改进方案,主设备设置用于确定数据包的长度。数据包的报头有利地具有关于数据包的长度的长度说明。

根据一个有利的改进方案,主设备设置用于将不同类型的多个数据包发送到总线上。有利地,在周期帧内,即周期地,传输过程数据。过程数据优选是与由系统控制的过程相关联的数据,例如来自传感器的测量数据和/或用于控制执行器的控制数据。在周期传输的过程数据之间,异步数据(例如控制数据或配置数据或编程数据)优选地作为有效数据在数据包中传输。有利地,数据包在周期传输的过程数据之间的间隙中被发送到总线上。优选地,由主设备将数据包作为空包发送,尤其是用于收集从设备的尤其要异步传输的有效数据。备选地,数据包也可以用于传输作为有效数据的周期性的或异步的过程数据。

本发明的另一方面是一种用于运行总线系统的方法。

该方法包括步骤:通过主设备产生具有报头和数据区域的数据包。刚产生的数据包的数据区域优选是空的,尤其是通过零值填充。有利地,数据区域可以由从设备来写入。优选地,数据包的产生基于确定的事件和/或连续地、尤其周期性地通过主设备进行。

该方法包括步骤:将数据包从主设备发送到第一从设备和第二从设备。在此,数据包通过主设备发送到连接主设备和从设备的总线上。

该方法包括步骤:通过第一从设备将第一从设备的第一地址和第一有效数据写入数据包的数据区域的第一分段中。

该方法包括步骤:通过第二从设备将第二从设备的第二地址和第二有效数据写入数据包的数据区域的第二分段中。

该方法包括步骤:通过主设备从总线接收包括所写入的第一分段和所写入的第二分段的数据包。

该方法包括步骤:基于第一地址通过主设备将第一有效数据分配给第一从设备。该方法包括步骤:通过主设备基于第二地址将第二有效数据分配给第二从设备。

有利地,所述分配借助于对存储区域的寻址或借助于开关装置基于第一地址和第二地址进行。例如根据其在第一分段报头中的位置,通过主设备识别和读出第一地址。基于所读取的第一地址,通过对存储区域寻址将第一从设备的有效数据由主设备写入所属的存储区域中。

例如,借助于多路复用器将第二从设备的第二有效数据写入寄存器中,在此,借助于分配表(lut)基于第二从设备的第二地址控制多路复用器的切换并且因此建立分配。

该方法包括步骤:通过主设备进一步处理所分配的第一有效数据和所分配的第二有效数据。

原则上,只要不通过相关性得出顺序,就可以以改变的顺序执行方法步骤。原则上,这些方法步骤不必直接彼此相继。同样可能的是,在方法步骤之间在时间上插入其他步骤。同样地,由此可以确定新的顺序。

根据一个有利的改进方案,在时间上在数据包之前传输先前的数据包。有利地,在时间上在数据包之后传输随后的数据包。优选地,由主设备基于包含在先前数据包中的消息来确定数据包的数据区域的大小。有利地,由第一从设备和/或第二从设备将消息写入到先前的数据包中。

然而,数据包在广播或多播的意义上相继地被发送给总线系统的所有从设备。因此,不需要数据包的倍增。刚刚由主设备发送的数据包不包含地址,即不寻址到确定的从设备。然而,正好由主设备发送的数据包也不包含应由主设备发送给从设备的有效数据。相应地,数据包是空的。数据包在该意义上是请求从设备将其首先向主设备指向的有效数据写入数据包中。由于数据包的有限大小,可能并非所有从设备都能够将其有效数据写入数据包中。然而为了向主设备告知应由至少一个从设备向主设备发送另外的有效数据,由相应的从设备插入例如以代码形式的消息。基于该消息,由主设备产生用于提取从设备的有效数据的另外的数据包。

本发明不限于改进方案的上述特征。例如,改进方案的特征也可以相互组合。本发明的有利的实施例参考附图来阐述。

附图说明

在此图示

图1示出总线系统的一个实施例的示意图,

图2、2a、2b示出数据包的一个实施例的示意图,

图3示出总线系统的从设备的一个实施例的示意图,

图4示出总线系统的主设备的一个实施例的示意图,并且

图5a、5b、5c示出方法步骤的实施例的示意流程图。

具体实施方式

在图1和图2中示出的数据包4允许主设备900从每个从设备100、200、300读取有效数据d1、d2、d3。在此,例如第一从设备100保持确定的优先级的第一有效数据d1以用于传输。数据包4被构造成从多个从设备100、200、300传输有效数据d1、d2、d3。可以共享同一数据包4以用于有效数据传输的从设备100、200、300的数量受到数据包4的数据区域4.2的大小限制。

在图2、2a和2b的实施例中示意示出具有报头4.1、数据区域4.2和尾部4.3的数据包4。图2、2a和2b的三个示图示出在不同时刻的相同的数据包4,其中数据区域4.2由从设备100、200改变。在此,在图2中示出初始状态下的数据包4。

在图2b中示出,在数据包4的数据区域4.2中形成分段10、20。在数据区域4.2内,每个分段10、20针对有效数据d1、d2具有其自身的分段报头1.1、2.1和针对有效数据d1、d2的其自身的有效数据区域1.2、2.2。如果在最后的有效数据区域2.2之后对于分段报头0.1’存在足够的空间,则最后写入到数据区域4.2中的从设备200添加最后分段报头,使得数据区域4.2的未被写的区段nd具有其自身的分段报头。

最后写入的从设备200以零值0x00填充最后分段报头。在图2b中在数据包4已经经过另一个从设备300之后示出该数据包。由先前从设备200写入的分段报头0.1’的字段均具有除计数器值c之外的值0x00,其中存储计数器值c,当该从设备300的有效数据d3的未被写的区段nd不是足够大时,则该计数器值c可以由所述另一从设备300改变,例如可以递增。这种情况在图2b中示出。

总线系统1中的每个从设备100、200、300具有计算单元150、250、350,所述计算单元设置用于处理数据包4。相应地,数据包4通过从设备100、200、300的计算单元150、250、350处理,该从设备具有准备好用于传输给主设备900的有效数据d1、d2、d3。附加地,有效数据能够被优先化(在图1的实施例中未示出)。

图1示出总线系统1的示例性场景,该总线系统具有主设备900和第一从设备100和第二从设备200和第三从设备300和将主设备900和从设备100、200、300彼此连接的总线40。在图1的实施例中简化地示出总线系统1。现有的总线系统通常具有明显更多数量的被接入到与主设备900的通信中的从设备。

在图1的实施例中,主设备900具有第一接口,该第一接口具有发送电路910和接收电路920以用于与总线40连接。此外,主设备900具有用于与现场总线80、例如根据ieee802.1的profinet或者ethercat或者时间敏感网络(tsn)连接的第二接口。相应地,总线40是下级的总线并且现场总线80是上级的总线。总线40也可以被称为本地总线。通常,从设备100、200、300布置在主设备900附近,有利地机械地固定在主设备900的壳体上。在图1的实施例中,主设备900设置用于将经由现场总线80接收的数据报文转换为本地总线40的数据包,并且反之亦然。相应地,主设备900也可以称为联接器。

连接在主设备900的第一接口上的总线40设置用于传输数据包4。主设备900设置用于产生数据包4。尤其是,主设备900的计算单元950设置用于产生具有报头4.1和数据区域4.2的数据包4。数据包4在产生之后由主设备900发送到总线40上。由主设备900发送的数据包4在图1中示意地示出。该数据包具有报头4.1、数据区域4.2和尾部4.3。数据区域4.2在由主设备900发送之后立即仅仅被未被写的区段nd占用。数据包4相应地通过主设备900空地发送,即不具有有效数据。相应地,数据包4可以直接在通过主设备900发送之后也被称为空数据包4。在此,空数据包4具有长度lh。主设备900不将从设备100、200、300的地址写入到数据包4中。数据包4相应地指向系统1的所有从设备100、200、300。

数据包4被所有从设备100、200、300传输并且然后返回到主设备900。相应地,在图1的实施例中,用于数据包4的传输路径通过总线40环形地构造。在此,在图1的实施例中不需要的是,数据包4在被继续传输给第二从设备200之前首先必须被第一从设备100完全接收。更确切地说,数据包4能够区段式、例如以符号的方式从一个参与者900、100、200、300传输至下一个参与者。例如,第一从设备100将数据包4的之前已经接收的第一符号发送给第二从设备200,而同时第一从设备100从主设备900接收第二符号。由此显著地降低了延迟。符号优选地具有固定数量的比特,例如4、8、16或32比特。在图2、2a和2b的实施例中,示意地示出具有符号的数据包4,所述符号具有例如32比特的位宽。

在图1的实施例中,数据包4从主设备900通过总线40和多个从设备100、200、300返回到主设备900。在此,数据包4从主设备900首先经由第一从设备输入接口110到达第一从设备100。数据包4从第一从设备100的第一从输出接口120通过总线40和第二从设备输入接口210到达第二从设备200。数据包4从第二从设备200的第二从输出接口220通过总线40和第三从设备输入接口310到达第三从设备300。数据包4从第三从设备300的第三从输出接口320通过总线40和输入接口920返回到主设备900。相应地,数据包4不由从设备100、200、300中的任何一个从设备新生成。从设备100、200、300不能改变数据包4的长度lh。因此,有效数据d1、d2、d3在从设备100、200、300向着主设备900的方向上的传输通过数据包4的长度lh来限制。然而,为了实现传输带宽的动态适配,主设备900有利地设置用于在一个周期内改变数据包4的长度lh和/或数量。在此,通过主设备900优选地基于主设备900尤其从设备100、200、300获得的信息来进行数据包4的长度lp和/或数量的改变。

在图1的实施例中,第一从设备100具有存储在存储区域160中的第一有效数据d1。借助计算单元150,第一从设备100将第一有效数据d1插入到数据包4的数据区域4.2中的第一分段10中。相应地,在图1中示意地示出由第一从设备100发送的数据包4。第一分段10具有第一分段报头1.1和带有第一有效数据d1的第一分段数据区域1.2。第一从设备100将其第一地址a1写入第一分段报头1.1中。第一从设备100将仅具有值0x00的空分段报头0.1附接到第一分段10中的有效数据d1,数据包4的数据区域4.2和尾部4.3内的未被写的区段nd跟随在该空分段报头之后。

在图1的实施例中,第二从设备200具有存储在存储区域260中的第二有效数据d2。借助于计算单元250,第二从设备200将第二有效数据d2插入到数据包4的数据区域4.2中的第二分段20中。相应地,在图1中示意地示出由第二从设备200发送的数据包4。第二分段20在此直接跟随第一分段10并且具有第二分段报头2.1和带有第二有效数据d2的第二分段数据区域2.2。在此,第二分段报头2.1在通过第二从设备200接收数据包4之前替换目前为止的空分段报头。在第二分段报头2.1中,第二从设备200已写入其第二地址a2。第二从设备200在第二分段20中的第二有效数据d2上重新附接仅仅具有值0x00的空分段报头0.1,数据包4的数据区域4.2和尾部4.3内的剩余的未被写的区段nd跟随在该空分段报头之后。

然而,在图1的实施例中,在数据区域4.2中的剩余的未被写的区段nd在通过第三从设备300接收数据包4之前如此小,使得第三从设备300的第三有效数据d3不匹配到剩余的未被写的区段nd中。相应地,第三从设备300的计算单元350不能从存储区域360获取第三有效数据d3并且写入到数据包4中(在图1中通过x示意地示出)。在图1的实施例中,第三从设备300在数据包4中将消息c插入空分段报头0.1中。例如,消息的值被定义为计数器值c,该计数器值通过第三从设备300改变,尤其是递增或递减。备选地,消息c也可以通过设置比特等来产生。在数据包4中示出消息c,该数据包在图1中的主设备900的接收电路920上被示意示出。因此,在未被写的区段nd的前方示出已修改的分段报头0.1’。

主设备900在图1的实施例中具有计算单元950,该计算单元与发送电路910和接收电路920连接。计算电路950例如具有状态机。在图1的实施例中,数据包4由主设备900的接收电路920接收。在此,计算单元950设置用于将具有第一地址a1的第一有效数据d1分配给第一从设备100。在最简单的情况下,可以通过将在第一分段10中接收的第一地址与预定的地址值进行比较来进行该分配。如果这些一致,则第一有效数据d1被写入到存储区域960中、例如被写入到预定的存储地址上或预定的寄存器中,并且例如在软件内被读取、被进一步处理等。在图1的实施例中,将第二分段20中的第二有效数据d2基于第二地址a2分配给第二从设备200。在图2的实施例中,第二有效数据d2示例性地设置用于经由现场总线80来转发,从而所述进一步处理在于,将第二有效数据d2写入到收发器940中直至现场总线80。

在图1的实施例中,可以作为第一有效数据d1、第二有效数据d2和第三有效数据d3,例如作为用于过程、尤其是用于制造过程的过程数据被传输。这些例如是传感器数据和/或执行器数据。备选地,在图1的实施例中,作为第一有效数据d1、第二有效数据d2和第三有效数据d3传输系统数据,尤其是用于配置、参数化、编程和/或初始化。系统数据在此用于设定系统1的各个参与者100、200、300或者读取信息,例如状态或参数。

在图1的实施例中,过程数据被周期性地、例如在一个周期帧内的一个或多个预定时刻被传输。系统数据被分离地传输到过程数据。系统数据在此异步地被传输。在图1的实施例中,主设备900有利地设置用于分离地、即在过程数据的传输间隙中传输数据包4。在此,主设备900设置用于在发送数据包4之前确定数据区域4.2的固定大小。在图1的实施例中,数据区域4.2的固定大小的确定一方面基于两个过程数据传输之间的传输间隙的大小。此外,数据区域4.2的固定大小的确定基于先前的数据包4’的消息c,其中所述消息来自于系统1的从设备100、200、300中的一个或多个从设备。

在图2、2a和2b的实施例中,示意地示出具有详细结构的另一个数据包4。与图1的实施例不同的是,所示出的数据包4具有多个所示出的数据字段。在图2、2a、2b的实施例中,每个数据字段具有32比特(.0至.31)的位宽。数据包4具有报头4.1、数据区域4.2和尾部4.3。在尾部4.3中传输用于循环冗余校验的值crc32。然而,尾部4.3和循环冗余校验不是强制必需的。数据包4的报头4.1具有标识符mrd,该标识符确定用于从与总线40连接的从设备100、200、300(例如在图1或图3中示出)向主设备900(例如在图1或图4中示出)的有效数据d1、d2的通信方向的数据包4的类型。此外,数据包4的报头4.1在图2的实施例中具有关于数据包4的长度lh的长度说明lp、主优先级pp和优先级消息lpc。在此,报头4.1通过主设备900产生,其中从设备100、200、300设置用于读取报头4.1的数据字段mrd、lp、pp、lpc。

在图2、2a和2b中示出相同的数据包4,其中然而在图2a和2b中由从设备100、200、300进行数据区域4.2的改变。图2示出在初始状态下的数据包4,如该数据包可以由主设备900生成的那样。数据区域4.2是空的,并且因此具有未被写的区段nd。只有报头4.1中的数据由主设备产生。在图2、2a和2b中可以看到该实施例,其中数据包4具有固定的长度lh,该长度由主设备900确定。基于数据包4的长度lh,主设备900将长度说明lp写入数据包4的报头4.1中。无论是长度lh还是长度说明lp都不能被从设备100、200、300改变。

从设备100、200、300此外设置用于在报头4.1中仅改变、尤其是递增或覆盖优先级消息lpc。从设备100、200、300设置用于借助优先级消息lpc告知主设备900,属于有效数据d1的有效数据优先级p1小于主优先级pp。因此,主设备900可以对此作出响应并且基于消息lpc产生具有适配的主优先级pp的新的数据包4。

在图2a的实施例的数据包4的数据区域4.2中形成第一分段10。该第一分段10通过从设备100写入数据包4的数据区域4.2中。第一分段10具有第一分段报头1.1和第一分段有效数据区域1.2,在所述第一分段有效数据区域中写入从设备100的第一有效数据d1。利用该第一分段10,数据包4由在总线40的传输路径中后续的从设备200接收。

在图2a的实施例中,在第一分段报头1.1中存在第一地址a1、第一分段长度l1和第一计数器值c1。第一计数器值c1例如定义为从尤其是后续的从设备200、300到主设备900的消息。如果后续的从设备200例如在未被写的区段nd中没有写入其有效数据d2,则第二从设备200可以提高第一计数器值c1(这种情况在图2a中没有示出)。

在图2b的实施例的数据包4的数据区域4.2中形成多个分段10、20。原则上,每个分段10、20都可以定位在数据区域4.2内的任意位置处。然而,优选地,数据区域4.2内的数据不被分割。在图2b的实施例中,第一分段10和第二分段20彼此邻接。有利地,数据区域4.2从报头4.1或尾部4.3出发被填充。在图2b的实施例中,第一分段10直接邻接于报头4.1并且第二分段20直接邻接于第一分段10。在此,分段10、20覆盖之前未被写的区段nd,该区段例如仅仅具有零值或者一值或者允许的随机值或者预定的位模式。

第二分段20具有第二分段报头2.1和第二分段有效数据区域2.2,第二有效数据d2被写入所述第二分段有效数据区域中。在图2b的实施例中,在第二分段报头2.1中存在第二地址a2、第二分段长度l2和第二计数器值c2。第二计数器值c2例如定义为从设备300向主设备900的消息。在图2b的实施例中,对于最后的有效数据区域2.2之后的最后分段报头0.1’存在足够的空间。相应地,最后写入到数据区域4.2中的从设备200将最后分段报头0.1’附接到最后的有效数据区域2.2上。在此,地址a和长度l以及计数器值c首先由零值0x00构成。然而,在图2b中未示出仅具有零值的该状态。

在图2b的实施例中,在最后分段报头0.1’上还连接有未被写的区段nd。然而,在图2b的实施例中,对于所有其它后续的从设备来说,该未被写的区段过小而无法写入有效数据。在图2b的实施例中,计数器值c具有与零不同的值0x01,该值例如通过从设备300递增,因为该从设备300不能将其有效数据写入数据区域4.2中。有利地,主设备900设置用于基于消息、尤其是至少一个字段lpc、c1、c2、c在连续运行中动态地适配在传输期间固定大小的相继的数据包4。

在图3中作为框图示意地示出总线系统的从设备100。从设备100具有用于与总线40连接的第一接口110(port10)和第二接口(port11)。从设备100设置用于通过第一接口110从总线40接收总线数据并且通过第二接口120发送到总线40上。

从设备100具有发送接收电路140,发送接收电路与总线40通过第一接口110和第二接口120连接。在图3的实施例中,发送接收电路140、第一接口110和第二接口120设置用于处理具有固定长度、例如4、8、16或32比特的恰好一个数据符号。例如,发送接收电路140作为数据符号加载图2中示出的具有32比特的恰好一个字段。在将数据符号经由第二接口120发送到后续的从设备(未示出)之前,现在可以读取和/或覆盖32比特中的一个或多个比特。在此,数据符号的接收、处理和发送持续确定数量的时钟并且因此在时间上严格地确定。

此外,从设备100具有计算单元150,计算单元与发送接收电路140连接。计算单元150可以被构造为处理器,然而在图3的实施例中,计算单元150被构造为状态机,例如在asic或者fpga中。从设备100具有与计算单元150连接的存储区域160。存储区域160例如是ram的可寻址区域。备选地,存储区域160可以由多个寄存器形成。

发送接收电路140设置用于接收具有报头4.1和数据区域4.2的数据包(图4,在图2中),其中数据区域4.2可以具有未被写的区段nd。计算单元150设置用于确定未被写的区段nd的大小。计算单元150例如基于数据包4的报头4.1中的长度说明lp以及基于分段长度说明l1、l2等来确定未被写的区段nd的大小。

计算单元150设置用于比较数据包4的数据区域4.1中的未被写的区段nd的大小和存储区域160中存储的有效数据d1的大小sd1。在图3中示意地示出存储在存储区域160中的有效数据d1的大小sd1。计算单元150和发送接收电路140设置用于,当所存储的有效数据d1的大小sd1不超过未被写的区段nd的大小时,将地址a1和所存储的有效数据d1写入到数据包4的数据区域4.1中的分段10中。

在图3的实施例中,在存储区域160中存储有属于有效数据d1的有效数据优先级p1。从设备100设置用于将数据包中所包含的主优先级(图2中的pp)与有效数据d1的有效数据优先级p1进行比较。当主优先级pp不高于有效数据优先级p1时,从设备100将其地址a1和其有效数据d1写入到数据区域4.1中的一个分段10中。

在图4的实施例中,作为框图示意地示出总线系统的主设备900。主设备900具有用于与总线40连接的第一接口911和第二接口921。主设备900设置用于通过第一接口911向总线40发送数据包4并且通过第二接口921从总线40接收数据包4。主设备900具有发送电路910(tx),发送电路在图4的实施例中通过接口911与总线系统的总线40连接。主设备900具有接收电路920(rx),接收电路在图4的实施例中通过第二接口921与总线系统的总线40连接。

主设备900具有计算单元950,计算单元与发送电路910和接收电路920连接。在图4的实施例中,计算单元950具有状态机956fsm(状态自动装置)和处理器955(cpu)。此外,主设备900具有存储区域960(ram)。不仅计算单元950的状态机956而且处理器955与存储区域960连接以用于读取和写入。状态机956和处理器955例如被集成在半导体芯片上。在此,例如处理器955通过cpu构成并且状态机956通过半导体芯片的fpga构成。

在图4的实施例中,主设备900此外具有用于与上级总线80、例如ethercat总线、具有专有通信协议的其他现场总线或根据开放的opcua和tsn协议的总线连接的收发器电路940(trx)。收发器电路940与计算单元950的状态机956连接。

主设备900的计算单元950的状态机956设置用于产生具有报头4.1和数据区域4.2的数据包4,例如类似于图2的实施例。数据包4的报头4.1具有标识符mrd,该标识符确定用于从与总线40连接的从设备100、200、300向主设备900的有效数据d1、d2、d3的通信方向的数据包4的类型。在图4的实施例中示出,状态机956在数据区域4.2中产生具有标识符mrd、长度说明lp、主优先级pp和未被写的区段nd的数据包4。在图4的实施例中,主设备900的计算单元950设置用于基于先前由从设备100、200、300接收的消息来确定数据包4的长度,并且以长度说明lp来反映数据包4的长度。

发送电路910设置用于将产生的数据包4发送到总线40上。接收电路920设置用于在数据包4至少部分地经过总线系统的所有从设备100、200、300之后从总线40接收该数据包。计算单元950设置用于将例如在图1中示出的有效数据d1基于地址a1分配给至少一个从设备100并且进一步处理所分配的有效数据d1。为了进一步处理,主设备900将有效数据d1例如经由收发器940和上级总线80转发给控制站(在图4中未示出)。备选地,主设备900可以具有软件程序,该软件程序存储在存储区域960中并且可以通过处理器950处理。借助于软件程序评估有效数据d1、d2、d3。例如,主设备900设置用于基于对有效数据d1、d2、d3的评估来重新配置从设备100、200、300。

在图5a、5b和5c中通过流程图示意地示出方法流程的部分。在图5a的实施例中,在主设备900中进行方法步骤s0至s2并且在第一从设备100中进行方法步骤s3至s6。在图5b的实施例中,方法步骤s7至s10在第二从设备200中进行并且方法步骤s11至s13在第三从设备300中进行并且方法步骤s14和s15在主设备900中进行。在图5c的实施例中,在主设备900中进行方法步骤s20至s22。所示出的方法步骤在此不是封闭的,因此可以添加其他未示出的方法步骤或者组合两个或更多个方法步骤。

在步骤s0中,由主设备900接收先前的数据包4’。该先前的数据包4’最初同样由主设备900发送(在图5a中未示出)。先前的数据包4’以主优先级pp=5被发送。因为从设备100、200、300不能改变主优先级pp=5,所以接收具有不变的主优先级pp=5的该先前的数据包4’。此外,先前的数据包4’包括消息lpc=0、c1=0、c2=0和c=1。对于消息的各个字段的意义,参见对于图2的阐述。

在图5a的实施例的步骤s1中由主设备900检验,是否存在消息,办法是:将分段c1、c2的计数器字段和结束分段报头0.1’的计数器字段c与零值比较。如果根据比较得到不等于零的计数器值,则接下来是步骤s2,如果所有计数器值都等于零,则接下来是步骤2a。

在图5a的实施例的步骤s2中,数据包4由主设备900发送,数据包具有值pp=5、lpc=0、长度说明lp和具有计数器值c=0的最后分段报头0.1。

在图5a的实施例的没有详细阐述的步骤s2a中,必要时数据包4在计时器结束之后稍后才会被发送,或者会发送具有减小的长度lp’的数据包。

在图5a的实施例中,在步骤s2之后跟随着步骤s3。在步骤s3中,由第一从设备100接收数据包4。在图5a的实施例的步骤s4中,将主优先级pp与第一从设备100的第一有效数据d1的第一有效数据优先级p1进行比较。如果第一有效数据优先级p1小于主优先级pp,那么接下来进行步骤6a,办法是:由从设备100将数据包4的报头4.1中的优先级计数器值lpc提高一(lpc+1)。

然而,在图5a的实施例中,第一有效数据优先级p1等于或大于主优先级pp,从而在这种情况下接下来是步骤s5。在步骤s5中,将第一有效数据d1的第一大小sd1与未被写的区段nd的大小进行比较。如果第一有效数据d1的第一大小sd1大于未被写的区段nd的大小,则接着进行步骤s6b,其中从设备100将消息传送给主设备900,办法是:计数器值c被提高一(c+1)。

然而在图5a的实施例中,第一有效数据d1的第一大小sd1等于或小于未被写的区段nd的大小,从而接着进行步骤s6。在步骤6中,第一从设备100转发数据包4,其中用第一分段10覆盖未被写的区段nd的一部分,其中第一分段10具有第一地址a1、第一分段长度说明l1和第一有效数据d1。此外,第一从设备100可以将具有字段a、l和c的具有零值0x00的空分段报头0.1附接到第一有效数据d1。

在图5b的实施例中,通过流程图示意地示出方法流程的另一部分,该部分可以紧接在图5a中示出的方法流程部分之后。

在图5b的实施例中,首先进行步骤s7。在步骤s7中,由第二从设备200接收数据包4。在图5b的实施例的步骤s8中,将主优先级pp与第二从设备200的第二有效数据d2的第二有效数据优先级p2进行比较。如果第二有效数据优先级p2小于主优先级pp,那么接下来进行步骤10a,办法是:由第二从设备200将数据包4的报头4.1中的优先级计数器值lpc提高一(lpc+1)。其它值a、l、c等可以保持不变。

然而,在图5b的实施例中,第二有效数据优先级p2等于或大于主优先级pp,从而在这种情况下接下来是步骤s9。在步骤s9中,将第二有效数据d2的第二大小sd2与还未被写的区段nd的大小进行比较。如果第二有效数据d2的第二大小sd2大于还未被写的区段nd的大小,则接着进行步骤s10b,其中第二从设备200将消息传送给主设备900,办法是:计数器值c被提高一(c+1)。其它值a、c等可以保持不变。

然而在图5b的实施例中,第二有效数据d2的第二大小sd2等于或小于还未被写的区段nd的大小,从而接着进行步骤s10。在步骤s10中,第二从设备200转发数据包4,其中用第二分段20覆盖还未被写的区段nd的一部分,其中第二分段20具有第二地址a2、第二分段长度说明l2和第二有效数据d2。

在图5b的实施例中,在步骤s11中接收具有第一分段10和第二分段20以及剩余的未被写的区段nd的数据包4。在图5b中为了更好的清晰性缩短地示出第三从设备300的步骤。优选地,所有从设备100、200、300执行相同的步骤。在步骤s12中,由第三从设备300将剩余的未被写的区段nd的大小与第三有效数据d3的第三大小sd3进行比较。如果剩余的未被写的区段nd的大小等于或大于第三有效数据d3的第三大小sd3,则接着进行步骤13a(未详细阐述)。

在图5b的实施例中示出如下情况,即剩余的未被写的区段nd的大小小于第三有效数据d3的第三大小sd3,相应地接着进行步骤s13。在此,在步骤13中由第三从设备300由于剩余的未被写的区段nd过小而不将分段插入到数据包4中,而是第三从设备300仅仅将计数器值提高到c=1。

在图5b的实施例中,在步骤s14中,从主设备900接收具有第一分段10和第二分段20和计数器值c=1的数据包4。此外,由主设备900接收另外的符号,如例如在图2b的实施例中所示。

在图5b的实施例中,在随后的步骤s15中通过主设备900基于第一地址a1将第一有效数据d1分配给第一从设备100并且基于第二地址a2将第二有效数据d2分配给第二从设备200。此外,在步骤s15中,通过主设备900进一步处理所分配的第一有效数据d1和第二有效数据d2。在图5b的实施例中,所述进一步处理例如包括对所分配的有效数据d1、d2的存储和转发和评估。

在图5c中示意地示出另一个实施例的方法流程的一部分。在此,在步骤s20中通过主设备900接收数据包4。数据包4具有主优先级pp=5和优先级消息lpc=2。通过主设备900评估主优先级pp=5和优先级消息lpc=2。因此,在图5c中示出的情况下,两个从设备由于过高的主优先级pp而不能将有效数据写入数据包4中。为了进行评估,在步骤s21中通过主设备900将优先级消息lpc与零值进行比较。如果优先级消息lpc不大于零,那么接下来进行步骤22a。在此,在步骤22a中例如重新发送具有相同的主优先级pp=5的另一个数据包(未示出)。

在图5c的实施例中,优先级消息lpc=2大于零,从而接下来进行步骤s22。在步骤s22中,由主设备900发送跟随在数据包4之后的数据包4”,其中降低主优先级pp=3,并且将优先级消息lpc设置为零。相应地,利用随后的数据包4”也可以将低优先级的有效数据(例如3或4)从从设备向着主设备900传输。

方法部分的上述实施例仅是示例性的。因此,取决于系统的结构和配置,对步骤进行适配可以是必要的,尤其可以以不同的顺序执行步骤,或者可以添加另外的步骤,或者可以省略方法步骤。

附图标记列表

0.1、0.1’报头

1系统、总线系统

1.1、2.1分段报头

1.2、2.2分段数据区域

4、4’、4”数据包

4.1头部,报头

4.2数据区域、净荷

4.3尾部

10、20分段

40总线,本地总线

80上级总线、现场总线

100、200、300从设备

110、210、310接口

120、220、320接口

140发送接收电路

150、250、350计算单元

160、260、360存储区域

900主设备

910发送电路

911接口

920接收电路

921接口

940收发器

950计算电路

955处理器

956状态机

960存储区域

a,a1、a2地址

c,c1、c2计数器值

d1、d2、d3有效数据

l,l1、l2分段长度

lh数据包长度

lp长度说明

lpc优先级消息

mrd标识符

nd未被写的区段

p1、p2有效数据优先级

pp主优先级

rx接收

s0至s22步骤

sd1、sd2、sd3有效数据的大小

tx发送

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1