EP1430654A1 - Verfahren zur erzeugung einer statischen adresstabelle und datennetz - Google Patents
Verfahren zur erzeugung einer statischen adresstabelle und datennetzInfo
- Publication number
- EP1430654A1 EP1430654A1 EP02774354A EP02774354A EP1430654A1 EP 1430654 A1 EP1430654 A1 EP 1430654A1 EP 02774354 A EP02774354 A EP 02774354A EP 02774354 A EP02774354 A EP 02774354A EP 1430654 A1 EP1430654 A1 EP 1430654A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- address
- entry
- destination
- target
- address table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
Definitions
- the invention relates to a method for generating a static address table for a set of target addresses and a method for transmitting a data message with a target address in a data network and a corresponding coupling node in the data network.
- Various types of data networks are known from the prior art, in which the data network components make a decision about which port of the data network component in question is to be used to send a data telegram.
- so-called switchable data networks are also known, in which a connection is formed in the data network between two subscribers by means of one or more point-to-point connections.
- each entry in the address table saves e.g. B. the station address of a target data network component (a so-called unicast address) or a multicast address or a network address and the numbers of the ports of the relevant data network component via which a received data telegram is to be sent for forwarding to its target address.
- Dynamic address tables have dynamically changeable table entries that are managed independently by the hardware of the relevant data network component without software support.
- static entries are table address table managed by the application software of each data network component and must not be changed by the hardware of a data network component.
- a possibility known from the prior art to recognize whether an address, e.g. B. a multicast address, and the information assigned to the multicast address is stored in an address table, is the direct comparison of the target address of the relevant data telegram with all addresses stored in the address table. This process is time-consuming or requires a content-addressable memory.
- a method which allows address entries which are initially mapped to the same entry address of the address table to be simultaneously stored in an address table is described in US-A-5923660.
- an hash address table with a corresponding controller is provided in an Ethernet controller, which forms the hash value of the address of a data packet in order to find an initial value for a jump into the hash address table. If necessary, this initial value is changed by a fixed jump value if the address that does not match the received target address in the row of the hash address table that is localized by the initial value.
- Data networks enable communication between several participants by networking, i.e. connecting the individual participants to one another. Communication means the transfer of data between the participants.
- the data to be transmitted are sent as data telegrams, which means that the data is packed into several packets and sent in this form to the corresponding recipient via the data network.
- the term transmission of data is used synonymously with the transmission of data telegrams or data packets mentioned above.
- the networking itself is achieved, for example, in the case of switchable high-performance data networks, in particular Ethernet, in that at least one coupling unit, which is connected to both users, is connected between two users. Each coupling unit can be connected to more than two participants.
- Each participant is connected to at least one coupling unit, but not directly to another participant.
- Participants are, for example, computers, programmable logic controllers (PLCs) or other machines that exchange, in particular process, electronic data with other machines.
- PLCs programmable logic controllers
- the switchable data networks are exclusively point-to-point connections, i.e. a participant can only indirectly connect all other participants in the switchable data network , by appropriate
- bus systems Various standardized communication systems, also called bus systems, are known from the prior art for data transmission. exchange between two or more electronic assemblies or devices known, in particular for use in automation systems. Examples of such communication systems are: Fieldbus, Profibus, Ethernet, Industrial Ethernet, FireWire or internal PC bus systems (PCI). These bus systems are designed and optimized for different fields of application and allow the construction of a decentralized control system. Very fast and reliable communication systems with predictable response times are required for process control and monitoring in automated production and especially with digital drive technologies.
- Synchronous, clocked communication systems with aquidistance properties are known in particular from automation technology.
- This is understood to mean a system composed of at least two participants which are connected to one another via a data network for the purpose of mutual exchange of data or the mutual transmission of data.
- the data exchange takes place cyclically in equidistant communication cycles, which are specified by the communication cycle used by the system.
- Participants are, for example, central automation devices, programming, project planning or operating devices, peripheral devices such as Input / output
- control units are understood to mean any type of regulator or control unit.
- An equidistant deterministic cyclic data exchange in communication systems is based on a common clock or Time base of all components involved in communication. The clock or time base is transferred from an excellent component (beater) to the other components. With isochronous real-time Ethernet, the clock or the time base is specified by a synchronization master by sending synchronization telegrams.
- German patent application DE 100 58 524.8 discloses a system and a method for the transmission of data via switchable data networks, in particular the Ethernet, which permits mixed operation of real-time-critical and non-real-time-critical, in particular Internet or intranet-based data communication.
- the invention has for its object to provide an improved method for generating a static address table, in particular for a coupling unit in a data network, as well as an improved method for transmitting a data telegram and a corresponding improved coupling node and a computer program product.
- the invention allows a set of target addresses of a target address space to be mapped to a set of entry addresses of a static address table. For example, 48 bit Ethernet station addresses on entry addresses of a length of z. B. 6 or 8 bit mapped.
- mapping is preferably carried out in such a way that each Ethernet station address is reversibly uniquely assigned an entry address, that is to say one and the same entry address. address is only assigned to exactly one Ethernet station address.
- a static address table with N entries of M bytes each is generated in a contiguous memory area of (N * M) bytes. This method also allows entries in the address table that were initially mapped to the same entry address to be stored simultaneously.
- an address table is present in each switching node of the data network.
- Each line in such an address table contains at least one destination address and the specification of one or more ports of the coupling node, depending on whether the destination address in question is a unicast or a multicast address.
- an offset can be provided in the relevant line of the address table.
- Each line in the address table also contains an entry as to whether the offset entered in this line is valid. This is possible with a special offset valid bit in this line or with an end identifier in the offset field of this line.
- An offset entered in a row of the address table is valid if and only if the offset points to a further entry in the address table in which another destination address is entered, which refers to the same entry address how the target address of the table entry just read was mapped.
- the target address contained in the data telegram is first read. This destination address is then mapped to an entry address in the address table. The corresponding line in the address table is accessed by means of the entry address obtained in this way. The target address stored in the relevant line of the address table is then compared with the target address of the received data telegram. If they match, the data telegram is forwarded via the port or ports specified in the relevant line of the address table.
- the data telegram is sent analogously to a broadcast telegram via all ports of the coupling node with the exception of the receiving port.
- this target address can be stored at another location in the address table.
- the row of the address table identified by the entry address contains an offset. Based on this offset, the address table is accessed again by the original entry address is incremented by the offset.
- the target address in the row of the address table which is located by the entry address incremented by the offset, is in turn compared with the target address of the data message. If again no match can be found, check again whether the offset entered in this line is valid. If this is not the case, the data telegram is treated in the same way as a broadcast telegram. If the offset is valid, however, the offset of this address line is accessed in order to increment the entry address again by this offset.
- the relevant line in the address table is then accessed in order to carry out a comparison of the target addresses in the address table and in the data telegram again. This process is repeated until a line in the address table with an invalid offset or until a line in the address table with a target address that corresponds to the target address of the data message has been found.
- the data telegram is sent in the same way as a broadcast telegram.
- the data telegram is forwarded via the port or ports that are specified in this line of the address table, depending on whether it is a unicast or a multicast address.
- LFSR linear feedback shift register
- the feedback of the LFSR is preferably parameterized in such a way that a predetermined set of destination addresses is mapped as reversibly as possible to a set of entry addresses or in such a way that as few as possible entry addresses are assigned to two or more of the destination addresses.
- FIG. 1 shows a block diagram of a section from a data network according to the invention with coupling nodes
- FIG. 2 the address tables of two different coupling nodes
- Figure 3 shows an embodiment of a linear feedback
- LFSR Shift registers
- FIG. 4 shows a flowchart of an embodiment of the method according to the invention for generating an address table.
- FIG. 1 shows a section of a data network 1.
- the data network 1 is a switched data network in which a data telegram 2 uses point-to-point connections via the coupling nodes 3 and 4 of the data network 1 and, if appropriate, further ones for the sake of clarity Coupling node not shown in Figure 1 is transmitted.
- the coupling node 3 has the ports A, B, C and D. Via each of the ports A to D of the coupling node 3, a point-to-point connection to the neighboring node in the data network 1 can be established if necessary. For example, the coupling node 3 receives a data telegram 2 from an adjacent node in the data network 1 in the application shown in FIG. 1.
- This data telegram 2 contains a target address.
- the destination address can be a unicast, multicast or broadcast address. In the event that it is a broadcast address, the data telegram received at port A is forwarded via all other ports B, C and D.
- the address table 5 contains several lines, that is, for. B. 64 or 128 lines. Each of these lines contains a destination address with an indication of those ports of the relevant coupling node 3 assigned to the destination address, via which a received data message 2 is to be forwarded.
- an entry address 7 is formed from the target address of the data message 2 by means of the program 6 of the coupling node 3.
- a line in the address table 5 is uniquely identified by means of the entry address 7.
- This line of the address table 5 is then accessed in order to find the port or ports via which the data telegram 2 is to be forwarded. For this purpose, it may be necessary to increment the entry address 7 once or several times by means of offsets stored in the address table 5. ment to get to the required line in address table 5. The corresponding method is explained in more detail below with reference to FIGS. 2, 3 and 4.
- the coupling node 4 is basically constructed like the coupling node 3.
- the coupling node 4 has the ports E, F, G and H and also an address table 8.
- the address table 8 is formed according to the same principles as the address table 5, but is not identical to the address table 5.
- the address table 8 contains in particular the details of those ports via which a data telegram to be received by the coupling node 4 is to be forwarded.
- the program 6 again serves to determine the entry address 7 in the address table 8 based on the destination address of a data telegram 2 received in the coupling node 4.
- the coupling nodes 3 and 4 are connected to one another by a line via their ports D and E, respectively.
- the coupling node 3 is connected via its port B to a further coupling node, which is not shown in FIG. 1.
- An automation component 9 is located at port C of coupling node 3.
- the coupling node 4 is also connected at its port F to an automation component 10, at its port G to an automation component 11 and at its port H to an automation component 12.
- the automation components 9 to 12 can be any components for the control, regulation and monitoring of a system, such as. B. sensors, controllers, conductors, drives, programmable logic controllers (PLC), input / output modules, etc.
- PLC programmable logic controllers
- FIG. 2 shows the structure of the address table 5 and the address table 8 in detail.
- the destination address to which the relevant row belongs is stored in a row of the address sections 5 and 8.
- the destination address is an indication of the or assigned to the ports of the relevant coupling node 3 or 4, via which a received data telegram with the destination address is to be forwarded.
- Such a line also contains an offset, in the event that the destination address in question has not been irreversibly mapped uniquely to an entry address.
- the target address Ai is a multicast address with which a data telegram 2 is addressed to the automation components 9 and 10.
- the destination address A 2 is a unicast address, with which only the automation component 12 is addressed.
- the destination address A 3 is also a unicast destination address with which the automation component 11 is addressed.
- the destination address A is a multicast address with which the automation components 10, 11 and 12 are addressed.
- Entry address 7 can be mapped.
- the line of target address Ai in address table 5 contains a valid offset Oi
- the line of target address A 3 contains a valid offset 0 3
- the line of target address A 7 contains an invalid offset.
- the procedure is as follows:
- the target address A 2 of the data telegram 2 is mapped to an entry address 7. With this entry address 7 can directly on the line of
- Destination address A 2 can be accessed in the address table 5. Since the destination address A 2 stored in the relevant row of the address table 5 corresponds to the destination address A 2 of the data message 2, the specification of the port D is read and the data message 2 is forwarded to the coupling node 4 via the port D (see FIG. 1). If, on the other hand, a data telegram 2 with the target address Ai is received, an entry address 7 is likewise generated from the target address of the data telegram 2 by means of the program 6. The address table 5 is then accessed with the entry address 7, specifically directly to the line in the address table 5 with the destination address Ai.
- the destination address A 7 is mapped to the same entry address 7 as the destination address i. Accordingly, the line in the address table 5 of the destination address Ai is first accessed. A comparison of the target address A 7 of the data telegram 2 with the target address i of the line of the address table 5 identified by the entry address 7 then results in a discrepancy, so that the valid offset O ⁇ of the relevant line is accessed.
- Entry address 7 is then incremented by offset O ⁇ .
- Address table 5 is then accessed again with entry address 7 incremented by offset Oi.
- the relevant line of the address table 5 is the line with the target address A 3 .
- a comparison of the destination addresses A 7 of the data telegram 2 with the destination address A 3 of the relevant line of the address table 5 again shows a discrepancy, so that the valid offset 0 3 of this line is accessed.
- the entry address 7 is then also incremented by the offset 0 3 , so that the entry address 7 thus incremented then points to the line of the destination address A 7 in the address table 5.
- a comparison of the destination se A 7 of the data telegram 2 with the target address A 7 of the relevant line shows the correspondence of the relevant target addresses, so that the specification of the corresponding port D in this line of the address table 5 is then accessed in order to get the data telegram 2 via this port D forward.
- the address table 8 is structured accordingly, with the destination addresses being assigned those ports of the coupling node 4 via which a received data message 2 is to be forwarded.
- FIG. 3 shows an embodiment of a linear feedback shift register (LFSR) which can be used for mapping target addresses to entry addresses.
- LFSR linear feedback shift register
- Each shift register element has a memory 14 which is connected to an input of an XOR gate 15. Furthermore, the XOR gate 15 has a feedback input 16, which is preceded by an AND gate 17.
- the output of the XOR gate 15 is fed to the D input of a flip-flop 18.
- the Q output of the flip-flop 18 is also the output of the shift register element 13. This output is fed to the input of the next following shift register 13 in the chain of shift registers.
- the output of the last shift register in the chain is routed via a feedback path 19 to an input of the AND gates 17 of the individual shift register elements. Depending on how the other input of the AND gate 17 is assigned, the relevant XOR gate 15 is then acted upon with the feedback or not.
- the destination address is stored in the shift register memory 14. terimplantation 13 clocked. The contents of the flip-flops 18 are then read out. This results in the entry address of the relevant destination address. This process is repeated for each of the destination addresses.
- the inputs of the AND gates 17 are parameterized in such a way that, if possible, each destination address is reversibly uniquely assigned to only one entry address. However, since the address space of the destination addresses is considerably larger than the address space of the entry addresses, it cannot always be avoided that two or more destination addresses are assigned to the same entry address in this way.
- FIG. 4 shows a flow diagram which reveals how an address table corresponding to address tables 5 and 8 of FIGS. 1 and 2 can be generated on the basis of the mapping of the target addresses to entry addresses obtained in this way.
- step 40 a set of a number N of destination addresses A k is inputted. These destination addresses A k can be
- step 42 the target address A k is clocked into a linear feedback shift register - corresponding to the shift register of FIG. 3.
- a purely software solution is also advantageous.
- step 44 This results in a corresponding mapping of the destination address A k to an entry address E (A k ), which is output in step 44.
- the index k is then incremented in step 46 and the next destination address A k is mapped to its entry address in steps 42 and 44. This process is repeated until all N destination addresses A k have been mapped to entry addresses E (A k ).
- step 48 it is then checked whether there are destination addresses A m , ..., A m + P with the same entry address. It is therefore checked whether two or more of the destination addresses have been mapped to the same entry address.
- the address table is generated in step 50, this taking place directly on the basis of the reversibly unique entry addresses E (A k ).
- the address table is generated in step 52.
- the entry address E (A m ) is used as the entry address in the table for the destination address A m . This entry address is thus already occupied.
- this entry address must be incremented in order to refer to a free line in the address table for the respective destination address.
- the entry address for the destination address A m + ⁇ is formed in such a way that an offset O m is added to the entry address E (A m ).
- the entry address E (A m + ) is obtained by incrementing the entry address again by the offset O m + ⁇ . This process continues until a free address line is assigned in the address table for all destination addresses A m + ⁇ to A m + P by repeatedly incrementing the original entry address E (A m ).
- the addresses A m , ..., A m + P which are mapped with the LFSR to the same entry address of the address table, over the still free memory areas, the addresses A m , ..., A m + P _ ⁇ assigned to the table entries valid offset addresses that specify the offset to the free memory locations.
- the offset address In the assigned table entry of the address A m + P , the offset address must be marked as not valid, since this table entry is only read out if in the assigned table entries of the addresses A m A m + P _! the received destination address of a data telegram was not found and only the addresses A m , ..., A m + P were mapped to the same entry address by the LFSR.
- Entry address of A m + ⁇ entry address of A m + offset address of the table entry of A m
- Entry address of A m + 2 entry address of A m + ⁇ + offset address of the table entry of A m + 1
- Entry address of A m + P Entry address of A m + P _ ⁇ + offset address of the table entry of A m + P _ ⁇
- a particular advantage of the address sections generated in this way is that they occupy a coherent memory area, so that the required lines in the address table can be accessed very quickly with little hardware expenditure in order to call up the information required for forwarding a data telegram. Because of the speed of this method, there is an advantageous application, in particular real-time Ethernet communication, for example in the fieldbus area.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
Die Erfindung betrifft ein Datennetz (1) und ein Verfahren zur Erzeugung einer statischen Adresstabelle (5, 8) für eine Menge von Zieladressen mit folgenden Schritten: Abbildung jeder der Zieladressen auf eine Einsprungadresse der Adresstabelle (5, 8), falls eine Untermenge der Menge von Zieladressen auf dieselbe Einsprungadresse (7) abgebildet wird:a) Zuordnung der Einsprungadresse (7) zu einer der Zieladressen der Untermenge, b) Zuordnung der Einsprungadresse (7) mit einem Offset zu jeder der weiteren Zieladressen der Untermenge,c) Speicherung eines oder mehrerer Sendeports in der Adresstabelle (5, 8) für jede Zieladresse der Menge an einer durch die jeweilige Einsprungadresse (7) bzw. durch die jeweilige Einsprungadresse (7) mit einem oder mehreren Offsets gekennzeichneten Stellen zusammen mit der betreffenden Zieladresse.
Description
Beschreibung
Verfahren zur Erzeugung einer statischen Adresstabelle und Datennetz
Die Erfindung betrifft ein Verfahren zur Erzeugung einer statischen Adresstabelle für eine Menge von Zieladressen sowie ein Verfahren zur Übertragung eines Datentelegramms mit einer Zieladresse in einem Datennetz und einen entsprechenden Kop- pelknoten in dem Datennetz.
Aus dem Stand der Technik sind verschiedene Typen von Datennetzen bekannt, bei denen die Datennetzkomponenten eine Entscheidung treffen, über welchen Port der betreffenden Daten- netzkomponente ein Datentelegramm zu senden ist. Insbesondere sind auch so genannte schaltbare Datennetze bekannt, bei denen eine Verbindung in dem Datennetz zwischen zwei Teilnehmern mittels einer oder mehrerer Punkt-zu-Punkt Verbindungen gebildet wird.
Ebenfalls ist es aus dem Stand der Technik an sich bekannt, dass die Entscheidung, über welchen Port einer Datennetzkomponente ein zuvor empfangenes Datentelegramm zu senden ist, mit Hilfe einer Adresstabelle erfolgt. Jeder Eintrag in der Adresstabelle speichert z. B. die Stationsadresse einer Ziel- Datennetz-Komponente (eine so genannte Unicast-Adresse) oder eine Multicast-Adresse oder eine Netzwerkadresse sowie die Nummern der Ports der betreffenden Datennetzwerkkomponente, über die ein empfangenes Datentelegramm zur Weiterleitung an dessen Zieladresse zu senden ist.
Ferner ist aus dem Stand der Technik die Verwendung von dynamisch veränderbaren und statischen Adresstabellen bekannt. Dynamische Adresstabellen haben dynamisch veränderbare Tabel- leneinträge, die von der Hardware der betreffenden Datennetzkomponente selbständig ohne Softwareunterstützung verwaltet werden. Dagegen werden die statischen Einträge in einer sta-
tischen Adresstabelle von der AnwendungsSoftware jeder Datennetzkomponente verwaltet und dürfen von der Hardware einer Datennetzkomponente nicht verändert werden.
Eine aus dem Stand der Technik bekannte Möglichkeit zu erkennen, ob eine Adresse, z. B. eine Multicast Adresse, und die der Multicast Adresse zugeordneten Informationen in einer Adresstabelle gespeichert sind, ist der direkte Vergleich der Zieladresse des betreffenden Datentelegramms mit allen in der Adresstabelle gespeicherten Adressen. Dieses Verfahren ist zeitaufwendig oder setzt einen inhaltsadressierbaren Speicher voraus .
Ein Verfahren, das es erlaubt Adresseinträge, die zunächst auf dieselbe Einsprungadresse der Adresstabelle abgebildet werden, gleichzeitig in einer Adresstabelle zu speichern, ist in US-A-5923660 beschrieben. In einem Ethernet-Kontroller ist dazu eine hash-Adresstabelle mit einer entsprechenden Steuerung vorgesehen, die den hash-Wert der Adresse eines Datenpa- kets bildet, um einen initialen Wert für einen Einsprung in die hash-Adresstabelle zu finden. Dieser initiale Wert wird erforderlichenfalls um einen festen Sprung-Wert geändert, wenn die Adresse, die in der durch den initialen Wert lokalisierten Zeile der hash-Adresstabelle nicht mit der empfange- nen Zieladresse übereinstimmt.
Datennetze ermöglichen die Kommunikation zwischen mehreren Teilnehmern durch die Vernetzung, also Verbindung der einzelnen Teilnehmer untereinander. Kommunikation bedeutet dabei die Übertragung von Daten zwischen den Teilnehmern. Die zu übertragenden Daten werden dabei als Datentelegramme verschickt, das heißt die Daten werden zu mehreren Paketen zusammengepackt und in dieser Form über das Datennetz an den entsprechenden Empfänger gesendet. Man spricht deshalb auch von Datenpaketen.
Der Begriff Übertragung von Daten wird hier synonym zur oben erwähnten Übertragung von Datentelegrammen oder Datenpaketen verwendet. Die Vernetzung selbst wird beispielsweise bei schaltbaren Hochleistungsdatennetzen, insbesondere Ethernet, dadurch gelöst, dass zwischen zwei Teilnehmern jeweils mindestens eine Koppeleinheit geschaltet ist, die mit beiden Teilnehmern verbunden ist. Jede Koppeleinheit kann mit mehr als zwei Teilnehmern verbunden sein.
Jeder Teilnehmer ist mit mindestens einer Koppeleinheit, aber nicht direkt mit einem anderen Teilnehmer verbunden. Teilnehmer sind beispielsweise Computer, speicherprogrammierbare Steuerungen (SPS) oder andere Maschinen, die elektronische Daten mit anderen Maschinen austauschen, insbesondere verar- beiten. Im Gegensatz zu Bussystemen, bei denen jeder Teilnehmer jeden anderen Teilnehmer des Datennetzes direkt über den Datenbus erreichen kann, handelt es sich bei den schaltbaren Datennetzen ausschließlich um Punkt-zu-Punkt Verbindungen, das heißt ein Teilnehmer kann alle anderen Teilnehmer des schaltbaren Datennetzes nur indirekt, durch entsprechende
Weiterleitung der zu übertragenden Daten mittels einer oder mehrerer Koppeleinheiten erreichen.
In verteilten Automatisierungssystemen, beispielsweise im Be- reich Antriebstechnik, müssen bestimmte Daten zu bestimmten Zeiten bei den dafür bestimmten Teilnehmern eintreffen und von den Empfängern verarbeitet werden. Man spricht dabei von echtzeitkritischen Daten bzw. Datenverkehr, da ein nicht rechtzeitiges Eintreffen der Daten am Bestimmungsort zu uner- wünschten Resultaten beim Teilnehmer führt. Gemäss IEC 61491,
EN61491 SERCOS interface - Technische Kurzbeschreibung (http://www.sercos.de/deutsch/index_deutsch.htm) kann ein erfolgreicher echtzeitkritischer Datenverkehr der genannten Art in verteilten Automatisierungssystemen gewährleistet werden.
Aus dem Stand der Technik sind verschiedene standardisierte Kommunikationssysteme, auch Bussysteme genannt, zum Datenaus-
tausch zwischen zwei oder mehreren elektronischen Baugruppen bzw. Geräten bekannt, insbesondere auch für den Einsatz in Automatisierungssystemen. Beispiele für solche Kommunikationssysteme sind: Feldbus, Profibus, Ethernet, Industrial E- thernet, FireWire oder auch PC-interne Bussysteme (PCI) . Diese Bussysteme sind jeweils für unterschiedliche Anwendungsfelder konzipiert bzw. optimiert und erlauben den Aufbau eines dezentralen Steuerungssystems . Für die Prozesssteuerung und -Überwachung in der automatisierten Fertigung und insbe- sondere bei digitalen Antriebstechniken sind sehr schnelle und zuverlässige Kommunikationssysteme mit vorhersagbaren Reaktionszeiten erforderlich.
Mit parallelen Bussystemen, wie beispielsweise SMP, ISA, PCI oder VME, ist eine sehr schnelle und einfache Kommunikation zwischen verschiedenen Baugruppen aufbaubar. Diese bekannten Bussysteme finden ihren Einsatz dabei insbesondere in Rechnern und PCs .
Insbesondere aus der Automatisierungstechnik sind synchrone, getaktete Kommunikationssysteme mit Aquidistanz-Eigenschaften bekannt. Hierunter versteht man ein System aus wenigstens zwei Teilnehmern, die über ein Datennetz zum Zweck des gegenseitigen Austauschs von Daten bzw. der gegenseitigen Übertra- gung von Daten miteinander verbunden sind. Dabei erfolgt der Datenaustausch zyklisch in äquidistanten KommunikationsZyklen, die durch den vom System verwendeten Kommunikationstakt vorgegeben werden. Teilnehmer sind beispielsweise zentrale Automatisierungsgeräte, Programmier-, Projektierungs- oder Bediengeräte, Peripheriegeräte wie z.B. Ein- / Ausgabe-
Baugruppen, Antriebe, Aktoren, Sensoren, speicherprogrammierbare Steuerungen (SPS) oder andere Kontrolleinheiten, Computer, oder Maschinen, die elektronische Daten mit anderen Maschinen austauschen, insbesondere Daten von anderen Maschinen verarbeiten. Unter Kontrolleinheiten werden im folgenden Regler- oder Steuerungseinheiten jeglicher Art verstanden.
Ein äquidistanter deterministischer zyklischer Datenaustausch in Kommunikationssystemen basiert auf einer gemeinsamen Taktbzw. Zeitbasis aller an der Kommunikation beteiligten Komponenten. Die Takt- bzw. Zeitbasis wird von einer ausgezeichne- ten Komponente (Taktschläger) zu den anderen Komponenten ü- bertragen. Bei isochronem Realtime-Ethernet wird der Takt bzw. die Zeitbasis von einem Synchronisationsmaster durch das Senden von Synchronisationstelegrammen vorgegeben.
In der deutschen Patentanmeldung DE 100 58 524.8 ist ein System und ein Verfahren zur Übertragung von Daten über schaltbare Datennetze, insbesondere das Ethernet, offenbart, das einen Mischbetrieb von echtzeitkritischer und nichtechtzeit- kritischer, insbesondere Inter- bzw. Intranet basierter Da- tenkommunikation erlaubt.
Der Erfindung liegt die Aufgabe zugrunde, ein verbessertes Verfahren zur Erzeugung einer statischen Adresstabelle, insbesondere für eine Koppeleinheit in einem Datennetz, sowie ein verbessertes Verfahren zur Übertragung eines Datentelegramms und einen entsprechenden verbesserten Koppelknoten und ein Computerprogrammprodukt zu schaffen.
Die der Erfindung zugrunde liegende Aufgabe wird jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Bevorzugte Ausführungsformen der Erfindung sind in den abhängigen Ansprüchen angegeben.
Die Erfindung erlaubt es, eine Menge von Zieladressen eines Zieladressraumes auf eine Menge von Einsprungadressen einer statischen Adresstabelle abzubilden. Beispielsweise werden 48 Bit Ethernet-Stationsadressen auf Einsprungadressen einer Länge von z. B. 6 oder 8 Bit abgebildet.
Vorzugsweise erfolgt die Abbildung dabei so, dass jeder E- thernet-Stationsadresse umkehrbar eindeutig eine Einsprungadresse zugeordnet wird, das heißt ein und dieselbe Einsprung-
adresse nur genau einer Ethernet-Stationsadresse zugeordnet wird.
Jedoch kann es vorkommen, dass aufgrund des wesentlich klei- neren Adressraumes der Einsprungadressen im Vergleich zu dem Adressraum der Stationsadressen, das heißt der Zieladressen, zwei Zieladressen auf dieselbe Einsprungadresse abgebildet werden. Für diesen Fall wird erfindungsgemäß nur einer der Zieladressen die Einsprungadresse zugeordnet. Die Einsprung- adressen der weiteren Zieladressen, bei denen die Abbildung dieselbe Einsprungadresse ergeben hat, werden durch verschiedene Offsets identifiziert.
Nach einer bevorzugten Ausführungsform der Erfindung wird ei- ne statische Adresstabelle mit N Einträgen zu je M Byte in einem zusammenhängenden Speicherbereich von (N * M) Byte erzeugt. Dieses Verfahren erlaubt auch das gleichzeitige Speichern von Einträgen in der Adresstabelle, die zunächst auf dieselbe Einsprungadresse abgebildet worden sind.
Nach einer bevorzugten Ausführungsform der Erfindung ist in jedem Koppelknoten des Datennetzes eine erfindungsgemäße Adresstabelle vorhanden. Jede Zeile in einer solchen Adresstabelle beinhaltet zumindest eine Zieladresse und die Angabe von einem oder mehreren Ports des Koppelknotens, je nachdem, ob es sich bei der betreffenden Zieladresse um eine Unicast oder eine Multicast Adresse handelt. Ferner kann ein Offset in der betreffenden Zeile der Adresstabelle vorgesehen sein. Weiterhin enthält jede Zeile der Adresstabelle einen Eintrag, ob der in dieser Zeile eingetragene Offset gültig ist. Dies ist durch ein spezielles Offset-Gültigbit in dieser Zeile o- der durch eine Ende-Kennung im Offset-Feld dieser Zeile möglich. Ein in einer Zeile der Adresstabelle eingetragener Off- set ist genau dann gültig, wenn der Offset auf einen weiteren Eintrag in der Adresstabelle zeigt, in dem eine andere Zieladresse eingetragen ist, die auf dieselbe Einsprungadresse
wie die Zieladresse des gerade ausgelesenen Tabelleneintrags abgebildet wurde .
Wird beim Betrieb des Datennetzes ein Datentelegramm an einem der Ports des Koppelknotens empfangen, so wird zunächst die in dem Datentelegramm beinhaltete Zieladresse gelesen. Diese Zieladresse wird dann auf eine Einsprungadresse in die Ad- resstabelle abgebildet. Mittels der so gewonnenen Einsprungadresse wird auf die entsprechende Zeile in der Adresstabelle zugegriffen. Die in der betreffenden Zeile der Adresstabelle gespeicherte Zieladresse wird dann mit der Zieladresse des empfangenen Datentelegramms verglichen. Stimmen diese überein, so wird das Datentelegramm über den oder die in der betreffenden Zeile der Adresstabelle angegebenen Ports wei- tergeleitet.
Falls keine Übereinstimmung zwischen der Zieladresse, der Adresstabelle und der Zieladresse des Datentelegramms besteht, handelt es sich um einen Fall, bei dem entweder die Zielad- resse des Datentelegramms nicht in der Adresstabelle gespeichert ist oder diese Zieladresse ist eine von zwei oder mehreren Zieladressen, die auf dieselbe Einsprungadresse abgebildet worden sind.
Ist der Offset der ausgelesenen Zeile der Adresstabelle nicht gültig oder ist die Zieladresse des Datentelegramms nicht in der Adresstabelle gespeichert, so wird das Datentelegramm a- nalog zu einem Broadcast-Telegramm über alle Ports des Koppelknotens mit Ausnahme des Empfangsports gesendet.
Ist der Offset der ausgelesenen Zeile der Adresstabelle dagegen gültig, kann diese Zieladresse an einer anderen Stelle in der Adresstabelle abgespeichert sein. Für diesen Fall beinhaltet die durch die Einsprungadresse identifizierte Zeile der Adresstabelle einen Offset. Basierend auf diesem Offset erfolgt ein erneuter Zugriff auf die Adresstabelle, indem die
ursprüngliche Einsprungadresse um den Offset inkrementiert wird.
Die Zieladresse in der Zeile der Adresstabelle, die durch die um den Offset inkrementierte Einsprungadresse lokalisiert ist, wird wiederum mit der Zieladresse des Datentelegramms verglichen. Falls wiederum keine Übereinstimmung festgestellt werden kann, ist wiederum zu prüfen, ob der in dieser Zeile eingetragene Offset gültig ist. Ist dies nicht der Fall, wird das Datentelegramm analog zu einem Broadcast-Telegramm behandelt. Ist der Offset aber gültig, wird auf den Offset dieser Adresszeile zugegriffen, um die Einsprungadresse um diesen Offset erneut zu inkrementieren.
Mit der so erneut inkrementierten Einsprungadresse wird dann auf die betreffende Zeile in der Adresstabelle zugegriffen, um erneut einen Vergleich der Zieladressen in der Adresstabelle und in dem Datentelegramm vorzunehmen. Dieser Vorgang wird so lange wiederholt, bis eine Zeile in der Adresstabelle mit einem ungültigen Offset oder bis eine Zeile in der Adresstabelle mit einer Zieladresse, die der Zieladresse des Datentelegramms entspricht, gefunden wurde. Im ersten Fall (d.h. ungültiger Offset) wird das Datentelegramm analog zu einem Broadcast-Telegramm versendet. Im zweiten Fall (d.h. die Zieladresse wurde gefunden) wird das Datentelegramm über den oder die Ports, die in dieser Zeile der Adresstabelle angegeben sind, weitergeleitet, je nachdem, ob es sich um eine Unicast- oder um eine Multicast-Adresse handelt.
Wird das Datentelegramm auf diese Art und Weise von dem Koppelknoten an einen weiteren Koppelknoten über eine Punkt-zuPunkt Verbindung weitergeleitet, so wiederholt sich dieser Vorgang in dem betreffenden Koppelknoten. Auf diese Art und Weise durchläuft das Datentelegramm in dem Datennetz einen bestimmten Pfad bzw. mehrere Pfade bei einer Multicast- Adresse, wobei das erfindungsgemäße Verfahren in jedem der Koppelknoten des Pfads zur Anwendung kommt.
Nach einer weiteren bevorzugten Ausführungsform der Erfindung wird ein linear rückgekoppeltes Schieberegister (Linear Feedback Shift Register - LFSR) für die Abbildung der Menge von Zieladressen auf die Einsprungadressen verwendet. Vorzugsweise wird dabei die Rückkopplung des LFSR so parametriert , dass eine vorgegebene Menge von Zieladressen möglichst umkehrbar eindeutig auf eine Menge von Einsprungadressen abgebildet wird oder so, dass möglichst nur wenigen Einsprungadressen zwei oder mehrere der Zieladressen zugeordnet werden.
Im Weiteren wird eine bevorzugte Ausführungsform der Erfindung mit Bezugnahme auf die Zeichnungen näher erläutert. Es zeigen:
Figur 1 ein Blockdiagramm eines Ausschnitts aus einem erfindungsgemäßen Datennetz mit Koppelknoten,
Figur 2 die Adresstabellen von zwei verschiedenen Koppelknoten,
Figur 3 eine Ausführungsform eines linear rückgekoppelten
Schieberegisters (LFSR) für die Abbildung der Zieladressen auf Einsprungadressen in die Adresstabellen,
Figur 4 ein Flussdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens für die Erzeugung einer Adresstabelle .
Die Figur 1 zeigt einen Ausschnitt aus einem Datennetz 1. Bei dem Datennetz 1 handelt es sich um ein geschaltetes Datennetz, in dem ein Datentelegramm 2 mittels Punkt-zu-Punkt Verbindungen über die Koppelknoten 3 und 4 des Datennetzes 1 sowie gegebenenfalls weiterer der Übersichtlichkeit halber nicht in der Figur 1 dargestellter Koppelknoten übertragen wird.
Der Koppelknoten 3 hat die Ports A, B, C und D. Über jeden der Ports A bis D des Koppelknotens 3 kann im Bedarfsfall eine Punkt-zu-Punkt Verbindung zu dem jeweils benachbarten Knoten im Datennetz 1 aufgebaut werden. Beispielsweise empfängt der Koppelknoten 3 in dem in der Figur 1 gezeigten Anwendungsfall ein Datentelegramm 2 von einem benachbarten Knoten im Datennetz 1.
Dieses Datentelegramm 2 beinhaltet eine Zieladresse. Bei der Zieladresse kann es sich um eine Unicast-, Multicast- oder um eine Broadcast-Adresse handeln. Für den Fall, dass es sich um eine Broadcast-Adresse handelt, wird das am Port A empfangene Datentelegramm über alle anderen der Ports B, C und D weitergeleitet .
In dem Fall, dass es sich um eine Unicast- oder um eine Mul- ticast-Zieladresse im Datentelegramm 2 handelt, ist ein Zugriff auf die Adresstabelle 5 des Koppelknotens 3 erforderlich, um den oder die Ports des Koppelknotens 3 festzustel- len, über die das Datentelegramm 2 weitergeleitet werden soll bzw. sollen.
Die Adresstabelle 5 beinhaltet mehrere Zeilen, das heißt z. B. 64 oder 128 Zeilen. Jede dieser Zeilen beinhaltet eine Zieladresse mit einer der Zieladresse zugeordneten Angabe derjenigen Ports des betreffenden Koppelknotens 3, über den oder die ein empfangenes Datentelegramm 2 weiterzuleiten ist.
Zum Zugriff auf die Adresstabelle 5 wird aus der Zieladresse des Datentelegramms 2 mittels des Programms 6 des Koppelknotens 3 eine Einsprungadresse 7 gebildet. Mittels der Einsprungadresse 7 ist eine Zeile in der Adresstabelle 5 eindeutig identifiziert. Auf diese Zeile der Adresstabelle 5 wird dann zugegriffen, um den oder die Ports aufzufinden, über die das Datentelegramm 2 weiterzuleiten ist. Hierzu kann es erforderlich sein, die Einsprungadresse 7 einmal oder mehrfach durch in der Adresstabelle 5 gespeicherte Offsets zu inkre-
mentieren, um zu der benötigten Zeile in der Adresstabelle 5 zu gelangen. Das entsprechende Verfahren wird weiter unten mit Bezugnahme auf die Figuren 2, 3 und 4 näher erläutert.
Der Koppelknoten 4 ist prinzipiell wie der Koppelknoten 3 aufgebaut. Der Koppelknoten 4 hat die Ports E, F, G und H sowie ebenfalls eine Adresstabelle 8. Die Adresstabelle 8 ist nach denselben Prinzipien wie die Adresstabelle 5 gebildet, ist jedoch nicht zu der Adresstabelle 5 identisch. Die Ad- resstabelle 8 beinhaltet insbesondere die Angaben derjenigen Ports, über die ein vom Koppelknoten 4 zu empfangendes Datentelegramm weiterzuleiten ist. Zur Bestimmung der Einsprungadresse 7 in die Adresstabelle 8 basierend auf der Zieladresse eines im Koppelknoten 4 empfangenen Datentelegramms 2 dient wiederum das Programm 6.
Die Koppelknoten 3 und 4 sind über deren Ports D bzw. E miteinander durch eine Leitung verbunden. Der Koppelknoten 3 ist über dessen Port B mit einem weiteren Koppelknoten, der in der Figur 1 nicht gezeigt ist, verbunden. Am Port C des Koppelknotens 3 befindet sich eine Automatisierungskomponente 9.
Der Koppelknoten 4 ist ferner an dessen Port F mit einer Automatisierungskomponente 10, an dessen Port G mit einer Auto- matisierungskomponente 11 und an dessen Port H mit einer Automatisierungskomponente 12 verbunden.
Bei den Automatisierungskomponenten 9 bis 12 kann es sich um beliebige Komponenten für die Steuerung, Regelung und Überwa- chung einer Anlage handeln, wie z. B. Sensoren, Regler, Leitwertgeber, Antriebe, speicherprogrammierbare Steuerungen (SPS) , Eingabe/Ausgabe Module, etc.
Die Figur 2 zeigt den Aufbau der Adresstabelle 5 und der Ad- resstabelle 8 im Detail. In einer Zeile der Adresstabeilen 5 und 8 ist die Zieladresse, zu der die betreffende Zeile gehört, gespeichert. Der Zieladresse ist eine Angabe des oder
der Ports des betreffenden Koppelknotens 3 bzw. 4 zugeordnet, über die ein empfangenes Datentelegramm mit der Zieladresse weiterzuleiten ist. Ferner beinhaltet eine solche Zeile einen Offset, für den Fall, dass die betreffende Zieladresse nicht umkehrbar eindeutig auf eine Einsprungadresse abgebildet worden ist.
Beispielsweise handelt es sich bei der Zieladresse Ai um eine Multicast-Adresse, mit der ein Datentelegramm 2 an die Auto- matisierungskomponenten 9 und 10 adressiert wird. Bei der Zieladresse A2 handelt es sich hingegen um eine Unicast- Adresse, mit der lediglich die Automatisierungskomponente 12 adressiert wird. Bei der Zieladresse A3 handelt es sich ebenfalls um eine Unicast-Zieladresse, mit der die Automatisie- rungskomponente 11 adressiert wird. Ferner handelt es sich bei der Zieladresse A um eine Multicast-Adresse, mit der die Automatisierungskomponenten 10, 11 und 12 adressiert werden.
Im Weiteren wird ohne Beschränkung der Allgemeinheit davon ausgegangen, dass die Zieladressen Ai, A3 und A7 auf dieselbe
Einsprungadresse 7 abgebildet werden. Für diesen Fall beinhaltet die Zeile der Zieladresse Ai in der Adresstabelle 5 einen gültigen Offset Oi, die Zeile der Zieladresse A3 einen gültigen Offset 03 und die Zeile der Zieladresse A7 einen nicht gültigen Offset.
Wird ein Datentelegramm 2 mit der Zieladresse A2 empfangen, so wird wie folgt verfahren: Die Zieladresse A2 des Datentelegramms 2 wird auf eine Einsprungadresse 7 abgebildet. Mit dieser Einsprungadresse 7 kann unmittelbar auf die Zeile der
Zieladresse A2 in der Adresstabelle 5 zugegriffen werden. Da die in der betreffenden Zeile der Adresstabelle 5 gespeicherte Zieladresse A2 mit der Zieladresse A2 des Datentelegramms 2 übereinstimmt, wird die Angabe des Ports D gelesen und das Datentelegramm 2 über den Port D an den Koppelknoten 4 weitergeleitet (vgl. Figur 1).
Wird dagegen ein Datentelegramm 2 mit der Zieladresse Ai empfangen, so wird ebenfalls aus der Zieladresse des Datentelegramms 2 mittels des Programms 6 eine Einsprungadresse 7 generiert. Mit der Einsprungadresse 7 wird dann auf die Adress- tabelle 5 zugegriffen und zwar unmittelbar auf die Zeile in der Adresstabelle 5 mit der Zieladresse Ai . Da die Angaben der Zieladressen in der betreffenden Zeile der Adresstabelle 5 und in dem Datentelegramm 2 wiederum übereinstimmen, wird auf die Angabe der Ports C und D in der Zeile zugegriffen und das Datentelegramm über die betreffenden Ports C und D zu der Automatisierungskomponente 9 bzw. zu dem Port E des Koppelknotens 4 weitergeleitet. Ein Zugriff auf den gültigen Offset Oi in der betreffenden Zeile der Adresstabelle 5 erübrigt sich in diesem Fall.
Wird dagegen ein Datentelegramm 2 mit der Zieladresse A7 empfangen, so wird die Zieladresse A7 auf dieselbe Einsprungadresse 7 wie die Zieladresse i abgebildet. Entsprechend wird zunächst auf die Zeile in der Adresstabelle 5 der Zieladresse Ai zugegriffen. Ein Vergleich der Zieladresse A7 des Datentelegramms 2 mit der Zieladresse i der durch die Einsprungad- resse 7 identifizierten Zeile der Adresstabelle 5 ergibt dann eine Diskrepanz, so dass auf den gültigen Offset Oχ der betreffenden Zeile zugegriffen wird.
Die Einsprungadresse 7 wird dann um den Offset Oχ inkremen- tiert. Mit der um den Offset Oi inkrementierten Einsprungadresse 7 wird dann erneut auf die Adresstabelle 5 zugegriffen. Bei der betreffenden Zeile der Adresstabelle 5 handelt es sich um die Zeile mit der Zieladresse A3. Ein Vergleich der Zieladressen A7 des Datentelegramms 2 mit der Zieladresse A3 der betreffenden Zeile der Adresstabelle 5 zeigt wiederum eine Diskrepanz, so dass auf den gültigen Offset 03 dieser Zeile zugegriffen wird. Die Einsprungadresse 7 wird dann zusätz- lieh um den Offset 03 inkrementiert, so dass die so inkremen- tierte Einsprungadresse 7 dann auf die Zeile der Zieladresse A7 in der Adresstabelle 5 zeigt. Ein Vergleich der Zieladres-
se A7 des Datentelegramms 2 mit der Zieladresse A7 der betreffenden Zeile zeigt dann die Übereinstimmung der betreffenden Zieladressen, so dass dann auf die Angabe des entsprechenden Ports D in dieser Zeile der Adresstabelle 5 zugegrif- fen wird, um das Datentelegramm 2 über diesen Port D weiterzuleiten.
Die Adresstabelle 8 ist entsprechend aufgebaut, wobei den Zieladressen jeweils diejenigen Ports des Koppelknotens 4 zu- geordnet sind, über die ein empfangenes Datentelegramm 2 weiterzuleiten ist.
Die Figur 3 zeigt eine Ausführungsform eines linear rückgekoppelten Schieberegisters (LFSR) , welches für die Abbildung von Zieladressen auf Einsprungadressen verwendet werden kann.
Das linear rückgekoppelte Schieberegister der Figur 3 beinhaltet eine gewisse Anzahl von Schieberegisterelementen 13. Jedes Schieberegisterelement hat einen Speicher 14, der mit einem Eingang eines XOR-Gatters 15 verbunden ist. Ferner hat das XOR-Gatter 15 einen Rückkopplungseingang 16, dem ein UND- Gatter 17 vorgeschaltet ist.
Der Ausgang des XOR-Gatters 15 ist auf den D-Eingang eines Flip-Flops 18 geführt. Der Q-Ausgang des Flip-Flops 18 ist zugleich der Ausgang des Schieberegisterelements 13. Dieser Ausgang wird auf den Eingang des nächstfolgenden Schieberegisters 13 in der Kette der Schieberegister geführt. Der Ausgang des letzten Schieberegisters in der Kette wird über ei- nen Rückkopplungspfad 19 auf je einen Eingang der UND-Gatter 17 der einzelnen Schieberegisterelemente geführt. Je nachdem, wie der jeweils andere Eingang des UND-Gatters 17 belegt ist, wird dann das betreffende XOR-Gatter 15 mit der Rückkopplung beaufschlagt oder nicht.
Zur Abbildung einer Zieladresse auf eine Einsprungadresse wird die Zieladresse über die Speicher 14 der Schieberegis-
terelemente 13 eingetaktet. Die Inhalte der Flip-Flops 18 werden dann ausgelesen. Hieraus ergibt sich die Einsprungadresse der betreffenden Zieladresse. Dieser Vorgang wird für jede der Zieladressen wiederholt. Die Eingänge der UND Gatter 17 werden dabei so parametriert , dass möglichst jeder Zieladresse umkehrbar eindeutig nur eine Einsprungadresse zugeordnet wird. Da jedoch der Adressraum der Zieladressen wesentlich größer ist als der Adressraum der Einsprungadressen, kann es nicht immer vermieden werden, dass zwei oder mehrere Zieladressen derselben Einsprungadresse auf diese Art und Weise zugeordnet werden.
Die Figur 4 zeigt ein Flussdiagramm, welches offenbart, wie auf der Grundlage der so gewonnenen Abbildung der Zieladres- sen auf Einsprungadressen eine Adresstabelle entsprechend den Adresstabellen 5 und 8 der Figuren 1 und 2 erzeugt werden kann.
Im Schritt 40 wird eine Menge von einer Anzahl N Zieladressen Ak eingegeben. Bei diesen Zieladressen Ak kann es sich um
Multicast- und/oder um Unicast-Zieladressen handeln.
Im Schritt 42 wird die Zieladresse Ak in ein linear rückgekoppeltes Schieberegister eingetaktet - entsprechend dem Schieberegister der Figur 3. Alternativ zu dem Eintakten in ein solches rückgekoppeltes Schieberegister ist auch eine rein softwaretechnische Lösung vorteilhaft.
Hieraus resultiert eine entsprechende Abbildung der Zielad- resse Ak auf eine Einsprungadresse E (Ak) , die im Schritt 44 ausgegeben wird. Im Schritt 46 wird dann der Index k inkre- mentiert und die nächste Zieladresse Ak wird auf deren Einsprungadresse in den Schritten 42 und 44 abgebildet. Dieser Vorgang wiederholt sich, bis alle N Zieladressen Ak auf Ein- sprungadressen E (Ak) abgebildet worden sind.
Im Schritt 48 wird dann geprüft, ob es Zieladressen Am, ..., Am+P mit derselben Einsprungadresse gibt. Es wird also geprüft, ob zwei oder mehrere der Zieladressen auf dieselbe Einsprungadresse abgebildet worden sind.
Ist dies nicht der Fall, so wird im Schritt 50 die Adresstabelle erzeugt, wobei dies unmittelbar auf der Grundlage der umkehrbar eindeutigen Einsprungadressen E(Ak) erfolgt.
Ist jedoch das Gegenteil der Fall, so wird die Adresstabelle im Schritt 52 generiert. Die Einsprungadresse E (Am) wird als Einsprungadresse in die Tabelle für die Zieladresse Am verwendet. Diese Einsprungadresse ist damit bereits belegt. Für die weiteren Zieladressen Am+ι bis Am+P muss diese Einsprungad- resse inkrementiert werden, um jeweils auf eine freie Zeile in der Adresstabelle für die betreffende Zieladresse zu verweisen. Die Einsprungadresse für die Zieladresse Am+χ wird dabei so gebildet, dass der Einsprungadresse E (Am) ein Offset Om aufaddiert wird. Entsprechend erhält man die Einsprungad- resse E(Am+ ) durch erneutes inkrementieren der Einsprungadresse um den Offset Om+ι . Dieser Vorgang setzt sich fort, bis für alle Zieladressen Am+ι bis Am+P durch wiederholtes inkrementieren der ursprünglichen Einsprungadresse E(Am) eine freie Adresszeile in der Adresstabelle zugeordnet ist.
Um die Adressen Am, ..., Am+P, die mit dem LFSR auf dieselbe Einsprungadresse der Adresstabelle abgebildet werden, auf die noch freien Speicherbereiche zu verteilen, werden in die, diesen Adressen Am, ..., Am+P_ι zugeordneten Tabelleneinträge je- weils gültige Offsetadressen eingetragen, die den Offset zu den freien Speicherplätzen angeben. Im zugeordneten Tabelleneintrag der Adresse Am+P ist die Offsetadresse als nicht gültig zu kennzeichnen, da dieser Tabelleneintrag nur dann ausgelesen wird, wenn in den zugeordneten Tabelleneinträgen der Adressen Am Am+P_! die empfangene Zieladresse eines Datentelegramms nicht gefunden wurde und nur die Adressen
Am, ..., Am+P vom LFSR auf dieselbe Einsprungadresse abgebildet wurden.
Damit gilt für die Einsprungadressen von Am, ..., Am+P:
Einsprungadresse von Aκ = LFSR-Inhalt nach dem Eintakten der Adresse Am
Einsprungadresse von Am+ι = Einsprungadresse von Am + Offsetadresse des Tabelleneintrages von Am
Einsprungadresse von Am+2 = Einsprungadresse von Am+ι + Offsetadresse des Tabelleneintrages von Am+1
analog bis:
Einsprungadresse von Am+P = Einsprungsadresse von Am+P_ι + Offsetadresse des Tabelleneintrages von Am+P_χ
Ein besonderer Vorteil der so erzeugten Adresstabeilen ist, dass diese einen zusammenhängenden Speicherbereich belegen, so dass mit wenig Hardwareaufwand ein sehr schneller Zugriff auf die benötigten Zeilen in der Adresstabelle erfolgen kann, um die für die Weiterleitung eines Datentelegramms erforderlichen Informationen abzurufen. Aufgrund der Schnelligkeit dieses Verfahrens ist eine vorteilhafte Anwendung insbesondere auch die Echtzeit-Ethernetkommunikation, beispielsweise im Feldbusbereich, gegeben.
Claims
1. Verfahren zur Erzeugung einer statischen Adresstabelle (5, 8) für eine Menge von Zieladressen mit folgenden Schritten:
- Abbildung jeder der Zieladressen auf eine Einsprungadresse (7) der Adresstabelle (5, 8),
- falls eine Untermenge der Menge von Zieladressen auf dieselbe Einsprungadresse (7) abgebildet wird:
a. Zuordnung der Einsprungadresse (7) zu einer der Zieladressen der Untermenge,
b. Zuordnung der Einsprungadresse (7) mit einem Offset zu jeder der weiteren Zieladressen der Untermenge,
c . Speicherung eines oder mehrerer Sendeports in der Adresstabelle (5, 8) für jede Zieladresse der Menge an einer durch die jeweilige Einsprungadresse (7) bzw. durch die jeweilige Einsprungadresse (7) mit einem oder mehreren Offsets gekennzeichneten Stellen zusammen mit der betreffenden Zieladresse.
2. Verfahren nach Anspruch 1, wobei es sich bei den Zieladressen um Unicast- und/oder Multicast-Zieladressen handelt.
3. Verfahren nach Anspruch 1 oder 2, wobei die Abbildung ei- ner Zieladresse auf eine Einsprungadresse (7) mittels eines linear rückgekoppelten Schieberegisters (LFSR) (13) erfolgt.
4. Verfahren zur Übertragung eines Datentelegramms (2) mit einer Zieladresse in einem Datennetz (1) mit folgenden Schritten: - Abbildung der Zieladresse auf eine Einsprungadresse (7) einer statischen Adresstabelle (5, 8) ,
- Zugriff auf eine, durch die Einsprungadresse (7) bestimmte Zeile der Adresstabelle (5, 8), wobei jede Zeile der Adresstabelle (5, 8) eine Zieladresse, eine Angabe eines oder mehrerer Sendeports und zusätzlich einen, entweder gültigen oder nicht gültigen, Offset beinhaltet, wenn die Abbildung nicht umkehrbar eindeutig ist,
- Prüfung, ob die Zieladresse des Datentelegramms (2) mit der Zieladresse in der durch die Einsprungadresse (7) gekennzeichneten Zeile der Adresstabelle (5, 8) übereinstimmt,
- falls das nicht der Fall ist und ein gültiger Offset eingetragen ist, Zugriff auf den Offset und erneuter Zugriff auf die Adresstabelle (5, 8) mittels der Einsprungadresse (7) und des Offsets,
- falls das nicht der Fall ist und ein nicht gültiger Offset eingetragen ist, ist die Zieladresse des empfangenen Datentelegramms (2) nicht in der Adresstabelle (5, 8) eingetragen und das Unicast- oder Multicast-Telegramm ist analog zu einem Broadcast-Telegramm weiterzuleiten,
- Wiederholung der Prüfung.
5. Verfahren nach Anspruch 4, wobei es sich bei der Zieladresse des Datentelegramms (2) um eine Unicast- oder Multi- cast-Zieladresse handelt.
6. Koppelknoten (3, 4) für ein Datennetz (1) mit einer Menge von Kommunikationsports, mit einer Adresstabelle (5, 8), wobei jede Zeile der Adresstabelle (5, 8) eine Zieladresse, ei- ne Angabe eines oder mehrerer Sendeports und zusätzlich einen Offset beinhaltet, wenn die Abbildung nicht umkehrbar eindeutig ist, und mit Mitteln zur Erzeugung einer Abbildung einer Zieladresse eines empfangenen Datentelegramms (2) zur Generierung einer Einsprungadresse (7) in die Adresstabelle (5, 8) .
7. Koppelknoten (3, 4) nach Anspruch 6, wobei es sich bei der Zieladresse um eine Unicast- oder um eine Multicast- Zieladresse handelt.
8. Koppelknoten (3, 4) nach Anspruch 6 oder 7, bei dem die Mittel zur Erzeugung einer Abbildung als linear rückgekoppeltes Schieberegister (LFSR) (13) ausgebildet sind.
9. Automatisierungskomponente (9, 10, 11, 12) mit einem Koppelknoten (3, 4) nach einem der Ansprüche 6, 7 oder 8.
10. Datennetz (1) mit einer Menge von Koppelknoten (3, 4) nach einem der vorhergehenden Ansprüche 6, 7 oder 8.
11. Computerprogrammprodukt zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche 1 bis 5, wenn das
Computerprogramm von einem Computer ausgeführt wird.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10147412A DE10147412A1 (de) | 2001-09-26 | 2001-09-26 | Verfahren zur Erzeugung einer statischen Adresstabelle und Datennetz |
DE10147412 | 2001-09-26 | ||
PCT/DE2002/003433 WO2003028306A1 (de) | 2001-09-26 | 2002-09-13 | Verfahren zur erzeugung einer statischen adresstabelle und datennetz |
Publications (1)
Publication Number | Publication Date |
---|---|
EP1430654A1 true EP1430654A1 (de) | 2004-06-23 |
Family
ID=7700317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP02774354A Ceased EP1430654A1 (de) | 2001-09-26 | 2002-09-13 | Verfahren zur erzeugung einer statischen adresstabelle und datennetz |
Country Status (6)
Country | Link |
---|---|
US (1) | US20040250025A1 (de) |
EP (1) | EP1430654A1 (de) |
CN (1) | CN1561613A (de) |
CA (1) | CA2461487A1 (de) |
DE (1) | DE10147412A1 (de) |
WO (1) | WO2003028306A1 (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004050423A1 (de) * | 2004-10-15 | 2006-04-20 | Bosch Rexroth Ag | Kommunikationssystem und Verfahren zur Synchronisation desselben |
CN100499669C (zh) * | 2005-09-09 | 2009-06-10 | 上海贝尔阿尔卡特股份有限公司 | IPv6接入网络中网络地址重构方法 |
DE102007004044B4 (de) * | 2007-01-22 | 2009-09-10 | Phoenix Contact Gmbh & Co. Kg | Verfahren und Anlage zur optimierten Übertragung von Daten zwischen einer Steuereinrichtung und mehreren Feldgeräten |
EP2026147A1 (de) * | 2007-08-13 | 2009-02-18 | Siemens Aktiengesellschaft | Verfahren zum Übermitteln von Telegrammen zwischen einer Steuereinrichtung und einem Peripherieelement über ein Zwischengerät |
DE102007054417A1 (de) * | 2007-11-13 | 2009-05-14 | Endress + Hauser Flowtec Ag | Bestimmen von geräteinternen Parameteradressen aus feldbusspezifischen Parameteradressen eines Feldgerätes |
EP2642403B1 (de) * | 2012-03-23 | 2014-07-23 | Siemens Aktiengesellschaft | Schnittstellenvorrichtung und Verfahren für einen konsistenten Datenaustausch |
CN105163062B (zh) * | 2015-06-16 | 2018-09-14 | 浙江宇视科技有限公司 | 一种将社会资源接入到公共平台的系统及方法 |
US10735218B2 (en) * | 2018-05-23 | 2020-08-04 | Beckhofff Automation GmbH | Data transmission method and automation-communication network |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555387A (en) * | 1995-06-06 | 1996-09-10 | International Business Machines Corporation | Method and apparatus for implementing virtual memory having multiple selected page sizes |
US6098109A (en) * | 1996-12-30 | 2000-08-01 | Compaq Computer Corporation | Programmable arbitration system for determining priority of the ports of a network switch |
US5920900A (en) * | 1996-12-30 | 1999-07-06 | Cabletron Systems, Inc. | Hash-based translation method and apparatus with multiple level collision resolution |
GB9827911D0 (en) * | 1998-12-19 | 1999-02-10 | 3Com Technologies Ltd | System for controlling look-ups in a data table in a network switch |
DE19923517C1 (de) * | 1999-05-21 | 2000-06-15 | Siemens Ag | Verfahren und Vorrichtung zum Verzweigen bei der Abarbeitung eines Programms durch einen Prozessor |
-
2001
- 2001-09-26 DE DE10147412A patent/DE10147412A1/de not_active Withdrawn
-
2002
- 2002-09-13 EP EP02774354A patent/EP1430654A1/de not_active Ceased
- 2002-09-13 WO PCT/DE2002/003433 patent/WO2003028306A1/de not_active Application Discontinuation
- 2002-09-13 US US10/489,470 patent/US20040250025A1/en not_active Abandoned
- 2002-09-13 CA CA002461487A patent/CA2461487A1/en not_active Abandoned
- 2002-09-13 CN CNA028190327A patent/CN1561613A/zh active Pending
Non-Patent Citations (1)
Title |
---|
See references of WO03028306A1 * |
Also Published As
Publication number | Publication date |
---|---|
CA2461487A1 (en) | 2003-04-03 |
WO2003028306A1 (de) | 2003-04-03 |
US20040250025A1 (en) | 2004-12-09 |
CN1561613A (zh) | 2005-01-05 |
DE10147412A1 (de) | 2003-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1368942B1 (de) | Verfahren und system zur kopplung von datennetzen | |
EP3679691B1 (de) | Datenübertragungsverfahren und kommunikationsnetzwerk | |
EP1456722A2 (de) | Datenübertragungsverfahren, serielles bussystem und anschalteinheit für einen passiven busteilnehmer | |
DE10220334A1 (de) | Verfahren und System zur Übertragung von Daten über schaltbare Datennetze | |
DE102018001574B4 (de) | Master-Slave Bussystem und Verfahren zum Betrieb eines Bussystems | |
EP1430689B1 (de) | Empfang von datentelegrammen in kommunikationssystemen mit redundanten netzwerkpfaden | |
EP1430654A1 (de) | Verfahren zur erzeugung einer statischen adresstabelle und datennetz | |
EP1430670B1 (de) | Verfahren zum betrieb eines isochronen, zyklischen kommunikationssystems | |
DE102017117288A1 (de) | Datenübertragungsverfahren zwischen einem Drehwinkelgeber und einer Motorsteuereinrichtung oder einer Auswerteeinheit | |
WO2003027784A2 (de) | Verfahren zur übertragung eines datentelegramms zwischen einer echtzeit-domain und einer nicht-echtzeit-domain und koppeleinheit | |
DE10140861A1 (de) | Verfahren und System zur Kopplung von Datennetzen | |
DE69323263T2 (de) | Kreuzschienenschalter zum Herstellen Mehrfach-Rückwand-Verbindungs-Topologien in Kommunikationssystemen | |
WO2003036879A1 (de) | Teilnehmergerät für ein hochperformantes kommunikationssystem | |
EP1371184B1 (de) | Elektronischer schaltkreis und verfahren für eine kommunikationsschnittstelle mit zwischenspeicherung | |
WO2019043447A1 (de) | Master eines bussystems | |
EP1430657B1 (de) | Verfahren zur erstellung einer dynamischen adresstabelle für einen koppelknoten in einem datennetz und verfahren zur übertragung eines datentelegramms | |
DE10141187B4 (de) | Elektronischer Schaltkreis und Verfahren für eine Kommunikationsschnittstelle mit Zwischenspeicherung | |
EP1371185A2 (de) | Verfahren und elektronischer schaltkreis für eine skalierbare kommunikationsschnittstelle in automatisierungskomponenten | |
EP1371193B1 (de) | Electronical switch and method for a communication interface with cut through buffer memory | |
EP3631630B1 (de) | Verteilte verarbeitung von prozessdaten | |
DE10241183A1 (de) | Verfahren zur Übertragung eines Datentelegramms zwischen einer Echtzeit-Domain und einer Nicht-Echtzeit-Domain und Koppeleinheit | |
DE10228823A1 (de) | Verfahren zum Betrieb eines isochronen, zyklischen Kommunikationssystems | |
DE10234149A1 (de) | Empfang von Datentelegrammen in Kommunikationssystemen mit redundanten Netzwerkpfaden | |
EP1430647A2 (de) | Verfahren und vorrichtung zum betrieb eines koppelknotens | |
DE10234148A1 (de) | Teilnehmer für ein hochperformantes Kommunikationssystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20040212 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR |
|
17Q | First examination report despatched |
Effective date: 20041019 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
18R | Application refused |
Effective date: 20050804 |