DE102008059204A1 - Verfahren zum Suchen eines Slave-Knotens in einem Kommunikationsnetz, Master-Knoten und Slave-Knoten für ein Kommunikationsnetz - Google Patents

Verfahren zum Suchen eines Slave-Knotens in einem Kommunikationsnetz, Master-Knoten und Slave-Knoten für ein Kommunikationsnetz Download PDF

Info

Publication number
DE102008059204A1
DE102008059204A1 DE102008059204A DE102008059204A DE102008059204A1 DE 102008059204 A1 DE102008059204 A1 DE 102008059204A1 DE 102008059204 A DE102008059204 A DE 102008059204A DE 102008059204 A DE102008059204 A DE 102008059204A DE 102008059204 A1 DE102008059204 A1 DE 102008059204A1
Authority
DE
Germany
Prior art keywords
command
identifier
slave
node
index
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.)
Granted
Application number
DE102008059204A
Other languages
English (en)
Other versions
DE102008059204B4 (de
DE102008059204B9 (de
Inventor
Wolfgang Furtner
Stephan Kronseder
Debin Li
Jason Sen Mississsauga Qian
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102008059204A priority Critical patent/DE102008059204B9/de
Priority to US12/626,539 priority patent/US8099469B2/en
Publication of DE102008059204A1 publication Critical patent/DE102008059204A1/de
Publication of DE102008059204B4 publication Critical patent/DE102008059204B4/de
Application granted granted Critical
Publication of DE102008059204B9 publication Critical patent/DE102008059204B9/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40019Details regarding a bus master
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/604Address structures or formats

Abstract

Es wird ein Verfahren zum Suchen einer Kennung (uid) oder Teilkennung eines Slave-Knotens (130, 150, 170; 130', 150', 170') in einem Kommunikationsnetz (100) beschrieben, wobei das Kommunikationsnetz einen Master-Knoten (110) und einen oder mehrere Slave-Knoten (130, 150, 170) aufweist, die über eine Kommunikationsverbindung (102) miteinander verbunden sind, wobei jeder Slave-Knoten einen Speicher aufweist, indem eine mehrstellige Kennung (uid) gespeichert ist, die eine eindeutige Identifizierung des Slave-Knotens in dem Kommunikationsnetz ermöglicht, wobei jede Stelle einen vorbestimmten Wert aufweist; wobei das Verfahren folgende Schritte aufweist: Definieren (412, 422) einer Stelle der Kennung (uid) oder Teilkennung mittels eines Index (idptr) in dem Master-Knoten und in dem Slave-Knoten oder in einem der mehreren Slave-Knoten; Senden (414) eines ersten Prüfbefehls (DIP0) von dem Master-Knoten an den Slave-Knoten oder an die mehreren Slave-Knoten, wobei der erste Prüfbefehl an der durch den Index (idptr) definierten Stelle der Kennung (uid) oder Teilkennung einen ersten zu prüfenden Wert ("0") definiert; Vergleichen des ersten zu prüfenden Werts ("0") mit einem Wert (uid[idptr]) an der durch den Index (idptr) definierten Stelle einer eigenen Kennung (uid) oder Teilkennung in dem Slave-Knoten oder in den mehreren Slave-Knoten; Senden eines Bestätigungssignals (IRQ) von dem Slave-Knoten oder einem (130, 130') der mehreren Slave-Knoten, wenn der Vergleich ergibt, dass ...

Description

  • Hintergrund
  • Die vorliegende Erfindung bezieht sich auf Kommunikationsnetze, beispielsweise auf die Suche eines Slave-Knoten in einem solchen Kommunikationsnetz.
  • Entsprechend der verschiedenen Anforderungen an Bandbreite, Komplexität und Kosten, haben sich verschiedene Kommunikationssysteme herausgebildet, um diese verschiedenen Anforderungen zu erfüllen.
  • Eindraht-Kommunikationsnetze mit Eindraht-Schnittstellen (im Englischen als „single wire interface” SWI bezeichnet) haben sich am Markt für weniger komplexe Applikationen, bei denen eine geringe Anzahl von Anschlusskontakten gewünscht ist etabliert. Eindraht-Kommunikationsnetze unterstützen die Anbindung einer Vielzahl von Slave-Knoten. Ein wichtiges Anwendungsfeld bildet dabei die Automobilindustrie. In Automobilen werden beispielsweise mehrere einfache Aktuatoren oder auch Sensoren als Slave-Knoten in einem hierarchischen Eindraht-Kommunikationsnetz durch einen gemeinsamen Master-Knoten gesteuert.
  • Der Master-Knoten und die Slave-Knoten sind an die Eindraht-Verbindung bzw. an das Eindraht-Bussystem angebunden. Dabei können neue Slave-Knoten jederzeit an ein solches Eindraht-Kommunikationsnetz hinzugefügt werden und angeschlossene Slave-Knoten entfernt werden oder auch zeitweilig oder endgültig ausfallen und ggf. ersetzt werden. Jeder dieser Slave-Knoten weist einen Speicher auf, indem eine Kennung gespeichert ist, mit der der jeweilige Slave-Knoten identifiziert werden kann.
  • Die Kennung jedes Knoten bzw. Geräts ist dabei, z. B. weltweit, einzigartig, und wird daher im Englischen auch als „unique ID (IDentifier)” bezeichnet. Für den Master-Knoten stellt sich damit die Aufgabe, mit den einzelnen Slawe-Knoten zu kommunizieren, um festzustellen, welche Slawe-Knoten an das Eindraht-Kommunikationsnetz angeschlossen sind und welche Kennung diese haben, um dann mit Ihnen mittels ihrer einzigartigen Kennung beispielsweise gezielt kommunizieren zu können.
  • Im Folgenden wird anhand der 6 ein bekannter Suchalgorithmus mittels binärer Suche beschrieben, der verwendet wird, um eine Kennung bzw. eine Adresse eines Slawe-Knotens zu bestimmen. Dabei basiert dieser binäre Suchalgorithmus auf der im Folgenden kurz erläuterten Befehlsliste:
    • DISS: Starten des Kennungssuchalgorithmus;
    • DIS0: Gerätekennungssuche „0”;
    • DIS1: Gerätekennungssuche „1”;
    • idptr: Zeiger zu interner Kennungsbitposition;
    • active: Gerätestatus, der „True” bzw. „Wahr” sein kann, d. h. das Gerät ist aktiv, oder „False” bzw. „Falsch” sein, d. h. das Gerät ist deaktiviert und antwortet nicht auf weitere Suchanfragen DIS0 bzw. DSI1;
    • uid[x]: Matrix, das den Kennungsbitstrom enthält, wobei „x” die Auswahl des gewünschten Bits angibt.
    • Assert_IRQ: Slawe-Gerät antwortet mit einem Bestätigungssignal IRQ (im Englischen auch als „Interrupt” bezeichnet);
    • Sens_IRQ: wenn Master-Knoten, auch als „HOST” bezeichnet, ein Bestätigungssignal IRQ von einem Slawe-Gerät empfängt.
  • Der entsprechende Suchalgorithmus, der von einem Slawe-Knoten bzw. Slawe-Gerät ausgeführt wird, lautet wie folgt:
    Figure 00020001
    Figure 00030001
  • In anderen Worten, wenn der Slave-Knoten den Befehl DISS zum Start der Suche empfängt, setzt er seinen Zeiger idptr auf den Wert N, wobei N die Anzahl der Bits der Kennung bezeichnet, z. B. in 6: N = 4, und geht in den aktiven Status. Wenn der Slave-Knoten den Befehl DIS0 empfängt und in einem aktiven Status ist, dekrementiert er den Zeiger idptr und vergleicht den Wert, der in seinem Matrixfeld an der Stelle des Zeigers gespeichert ist, mit dem Wert „0” und sendet ein Bestätigungssignal IRQ, wenn dieser Wert gleich dem Wert „0” ist. Wenn der Wert nicht gleich ist, geht der Slave-Knoten in den inaktiven Status über. Entsprechend verfährt der Slave-Knoten, wenn er den Befehl DIS1 empfängt und in einem aktiven Status ist. In diesem Fall dekrementiert er den Zeiger idptr und vergleicht den Wert des Matrixfeldes, das durch den Zeiger definiert ist, mit dem Wert „1” und gibt ein Bestätigungssignal IRQ aus, wenn der Wert dem Wert „1” entspricht. Ansonsten, geht der Slave-Knoten in den inaktiven Zustand über.
  • 6 zeigt beispielhaft die Abfolge von Suchbefehlen DIS0 bzw. DIS1 bis ein Master-Knoten die Adressen „0010” und „0110” (B = binäre Kennung) findet. Während dieser binären Suche geht der Master-Knoten durch den binären Baum Zweig für Zweig, um die entsprechende Kennung bzw. Adresse des Slave-Knotens zu finden. Dabei geht der Master-Knoten beispielsweise so vor, dass er zuerst nach der Adresse „0000” sucht, dann nach der Adresse „0001”, dann nach der Adresse „0010” usw. Dabei geht der Master-Knoten Stelle für Stelle vor, prüft in einer ersten Iteration, ob ein Slave-Knoten mit dem Wert „0” an der höchsten Stelle (idptr = 3) aufweist, nur dies ist in 6 der Fall, das heißt die zwei Slave-Knoten antworten auf das erste DIS0 mit einem Bestätigungssignal IRQ. Danach sendet der Master-Knoten ein zweites DIS0, auf das nun nur der Slave-Knoten mit der Kennung „0010” mit dem Bestätigungssignal IRQ antwortet. Da der zweite Slave-Knoten mit der Adresse „0110” an dieser Stelle einen Wert „1” aufweist, deaktiviert er sich, und wird auf keinen der folgenden Suchbefehle des Master-Knoten mehr antworten, bis er von dem Master wieder aktiviert wird. Der Master-Knoten sendet nun sein drittes DIS0. Da der Slave-Knoten mit der Adresse „0010” jedoch an der Stelle UID[1] keine „0”, sondern eine „1” aufweist, deaktiviert sich auch dieser Slave-Knoten. Der Master-Knoten empfängt somit kein Bestätigungssignal IRQ, und weiß somit, dass kein Slave-Knoten mit der Adresse „000x” vorliegt, wobei x ein Platzhalter für einen der beiden binären Werte „0” und „1” ist.
  • Damit ist der erste Suchdurchlauf abgeschlossen und der Master-Knoten beginnt einen neuen Suchdurchlauf, indem er das Suchstartkommando DISS sendet, so dass sich alle Slave-Knoten wieder initialisieren, das heißt, ihren internen Zähler auf den Wert N = 4 setzen und in den aktiven Status gehen. In diesem zweiten Suchdurchlauf wiederholt sich für die ersten zwei Stellen UID[3] und UID[2] der gleiche Befehls- bzw. Signalwechsel wie in dem ersten Durchlauf. Als dritten Suchbefehl sendet der Master-Knoten nun jedoch ein DIS1, erhält von dem Slave-Knoten mit der Adresse „0010” ein Bestätigungssignal, wobei gleichzeitig dieser Slave-Knoten aktiv für die Fortführung der Suche auf diesem Zweig bzw. Pfad bleibt. Als viertes Suchsignal in diesem Suchdurchlauf sendet der Master-Knoten dann ein DIS0, erhält von dem Slave-Knoten mit der Adresse „0010” ein Bestätigungssignal und weiß nun, da die Kennung nur vier Stellen hat, dass die Suche erfolgreich abge schlossen ist, und ein Slawe-Knoten mit der Adresse „0010” bzw. Kennung an dem Eindrahtkommunikationsnetz angeschlossen ist. Entsprechend fährt der Master-Knoten für alle anderen möglichen Kennungen fort, bis er alle Slawe-Knoten gefunden hat.
  • Dieses Vorgehen führt dazu, dass für den Fall, dass die Kennungen eine große Zahl an Bits aufweisen, die binäre Suche sehr lange dauert. Angenommen N ist die Anzahl der Kennungsbits, dann benötigt der Master-Knoten, wenn er jeden Zweig des entsprechenden binären Baums mit der Länge N durchläuft, 2N Durchläufe. Wenn beispielsweise N = 96 Bits ist, geht der Master-Knoten durch bis zu 79.228.162.514.264.337.593.543.950.336 Zweige durch, um alle Slawe-Knoten, die an der Eindrahtleitung angebunden sind, zu finden. Typischerweise sind jedoch weniger Suchdurchläufe notwendig, da nur eine geringe Anzahl von Slawe-Knoten an das Eindraht-Kommunikationsnetz angeschlossen sind und so bei der Suche ganze Teilbäume wegfallen, in denen sich kein Slave-Knoten befindet.
  • Ausführungsbeispiele des Verfahrens zum Suchen einer Kennung eines Slawe-Knoten in einem Kommunikationsnetz, z. B. einem Eindraht-Kommunikationsnetz, und des Master-Knoten und des Slawe-Knoten für ein solches Kommunikationsnetz werden nachfolgend unter Bezugnahme auf beiliegende Zeichnungen näher erläutert.
  • 1A zeigt ein Blockdiagramm eines ersten und dritten Ausführungsbeispiels eines Master-Knotens und zumindest eines Slawe-Knotens, die durch ein Eindraht-Kommunikationsnetz verbunden sind.
  • 1B zeigt ein Blockdiagramm eines zweiten und vierten Ausführungsbeispiels eines Master-Knotens und zumindest eines Slawe-Knotens, die durch ein Eindraht-Kommunikationsnetz verbunden sind.
  • 2 zeigt ein Ausführungsbeispiel eines binären Suchbaums gemäß einem ersten und dritten Ausführungsbeispiel.
  • 3 zeigt ein Flussdiagramm eines Verfahren zum Suchen eines Slave-Knotens mit unbekannter Kennung, das durch einen Master-Knoten eines ersten Ausführungsbeispiels durchgeführt wird.
  • 4 zeigt ein Flussdiagramm eines Verfahrens zum Suchen eines Slave-Knotens mit bekannter Kennung, das durch erstes Ausführungsbeispiel eines Master-Knotens durchgeführt wird.
  • 5 zeigt ein Flussdiagramm eines Verfahrens zum Suchen eines Slave-Knotens mit bekannter Kennung, das durch ein zweites Ausführungsbeispiel eines Master-Knotens durchgeführt wird.
  • 6 zeigt einen binären Suchraum für einen bekannten Suchalgorithmus, der durch einen Master-Knoten durchgeführt wird.
  • In der vorliegenden Anmeldung werden für Objekte und Funktionseinheiten, die gleiche oder ähnliche funktionelle Eigenschaften aufweisen, gleiche Bezugszeichen verwendet.
  • Ausführungsbeispiele des Verfahrens, des Master-Knotens und des Slave-Knotens werden im Folgenden anhand eines Eindraht-Kommunikationsnetzes erläutert, sind jedoch nicht auf diese beschränkt. So können alternative Ausführungsbeispiele statt des einen Drahtes als Kommunikationsverbindung auch mehrdrahtige Kommunikationsverbindungen oder andere Kommunikationsmedien als Drähte, z. B. Glasfasern oder Funk, aufweisen, um den Master-Knoten und die Slave-Knoten miteinander zu verbinden.
  • Eindraht-Kommunikationsnetze bzw. Eindraht-Kommunikationssysteme sind hierarchische Kommunikationssysteme, bei denen ein Master-Knoten die Kommunikation steuert und einer oder mehrere Slave-Knoten auf diese Befehle des Master-Knoten antworten, beispielsweise, indem sie Daten senden oder Befehle bzw. Anfragen des Master-Knotens bestätigen oder nicht bestätigen. Dabei können die Slave-Knoten ausgebildet sein, um beispielsweise ein bestimmtes Bestätigungssignal zu senden, um eine Anfrage bzw. einen Befehl eines Master-Knoten zu bestätigen, und dieses bestimmte Bestätigungssignal nicht zu senden, um dem Master-Knoten zu signalisieren, dass sie die Anfrage bzw. den Befehl nicht bestätigen. Die Master-Knoten und die Slave-Knoten sind über einen einzelnen Draht miteinander verbunden.
  • Dabei kann die Eindraht-Kommunikation darauf beruhen, dass an den einen Draht grundsätzlich ein hoher Spannungspegel (im Englischen auch als „high” bezeichnet) angelegt wird, z. B. durch einen Strom oder eine Spannungsquelle, und ein einziger Teilnehmer, Master-Knoten oder Slave-Knoten, durch Anlegen eines niedrigen Pegels (im Englischen auch als „low” bezeichnet) den Pegel der gesamten Leitung auf den niedrigen Pegel ziehen kann. Ein Slave-Knoten kann dann ausgebildet sein, als Bestätigungssignal, das im Englischen auch als Interrupt IRQ bezeichnet wird, diesen niedrigen Pegel anzulegen, und zum „Nicht-Bestätigen” den Pegel auf diesem hohen Pegel zu belassen.
  • In diesem hierarchischen Kommunikationssystem kann der Master-Knoten auch als Master-Gerät oder kurz als Master bezeichnet bzw. als übergeordneter Knoten oder Steuer-Knoten bezeichnet werden, und der Slave-Knoten auch als Slave-Gerät oder kurz als Slave bezeichnet bzw. als untergeordneter Knoten bzw. gesteuerter Knoten bezeichnet werden.
  • In Bezug auf den Aktivitätsstatus der Slave-Knoten, der kurz auch als Status oder Zustand bezeichnet wird, werden auch der Begriffe „aktiv” bzw. „aktivieren” verwendet, um auszudrü cken, dass der Slave-Knoten einen aktiven Zustand aufweist bzw. sein Status in den aktiven Status wechselt, und „inaktiv” bzw. „deaktivieren”, um auszudrücken, dass der Slave-Knoten einen inaktiven Zustand aufweist bzw. sein Status in den inaktiven Status wechselt.
  • 1A zeigt ein Blockdiagramm eines ersten oder dritten Ausführungsbeispiels eines Master-Knotens 110, und eines ersten oder dritten Ausführungsbeispiels eines Slave-Knotens 130, die über einen einzelnen Draht 102 eines Eindraht-Kommunikationsnetzes 100 verbunden sind.
  • Das Ausführungsbeispiel des Masterknotens 110 weist einen Sender 112 und einen Empfänger 114 auf, die mit dem Draht 102 gekoppelt bzw. verbunden sind, sowie eine Prozesseinheit 116 auf, die mit dem Sender 112 und dem Empfänger 114 gekoppelt ist, um von dem Empfänger 114 über den Draht 102 empfangene Kommunikationssignale auszuwerten bzw. verarbeiten zu können, und mit dem Sender 112 gekoppelt ist, um diesen derart zu steuern, dass dieser Befehle bzw. Kommandos über den Draht 102 an einen oder mehrere Slave-Knoten sendet, die an dem Draht 102 angebunden sind, um z. B. einen Suchalgorithmus zur Suche einer Kennung eines Slave-Knotens durchzuführen.
  • Ferner weist der Master-Knoten 110 einen Speicher 118 auf, der mit der Prozesseinheit 116 gekoppelt ist, um beispielsweise Informationen für die Durchführung eines Suchalgorithmus zu speichern.
  • Der Slave-Knoten 130 weist einen Sender 132 und einen Empfänger 134 auf, die mit dem Draht 102 gekoppelt bzw. verbunden sind, um Kommunikationssignale über den Draht 102 zu senden bzw. zu empfangen, sowie eine Prozesseinheit 136 auf, die mit dem Sender 132 und dem Empfänger 134 gekoppelt ist, um von dem Empfänger über den Draht 102 empfangene Kommunikationssignale auswerten bzw. verarbeiten zu können und den Sender derart zu steuern, dass dieser beispielsweise Antwortsignale auf Befehle des Master-Knotens 110 über den Draht 102 senden kann.
  • Ferner weist der Slawe-Knoten 130 einen Speicher 138 auf, der mit der Prozesseinheit 136 verbunden ist, um dort gespeicherte Daten auszulesen und ggf. Daten dort abzulegen bzw. zu speichern. Dabei ist der Speicher 138 ausgebildet, um eine Kennung zu speichern, die eine eindeutige Identifizierung des Slawe-Knotens in dem Eindraht-Kommunikationsnetz 100 ermöglicht. Zum anderen ist der Speicher 138 ausgebildet, Informationen für die Durchführung eines Such-Algorithmus bzw. Durchführung eines Slawe-Anteils des Suchalgorithmus zu speichern, zum Beispiel einen Index oder Zeiger, der eine aktuelle Position bzw. Stelle in der Kennung bei der Durchführung eines Suchalgorithmus bestimmt. Dabei weist der Speicher 138 beispielsweise einen nicht-flüchtigen Speicheranteil auf, um die Kennung zu speichern, und einen flüchtigen Speicheranteil, um beispielsweise den Index oder Zeiger bzw. Zeigerwert und weitere Informationen wie den eigenen Aktivitätsstatus zu speichern.
  • 2 zeigt einen beispielhaften binären Suchbaum für die Suche einer binären Kennung mit 4 Stellen bzw. 4 Bits. Die Kennungen können die Werte „0000” bis „1111” aufweisen, wobei das linke Bit auch als höchstwertiges Bit, im Englischen als „most significant bit” (MSB) bezeichnet, und das rechte Bit als niedrigstwertiges Bit, im Englischen auch als „least significant bit” (LSB) bezeichnet, bezeichnet werden.
  • Typischerweise erfolgt die Indexierung der Stellen des Kennworts, beginnend mit dem Index 0 für das niedrigstwertige Bit, der dann kontinuierlich ansteigen, typischerweise um jeweils 1 pro Stelle erhöht, mit dem höchsten Index 3 bzw. N – 1, endet.
  • Die einzelnen Stellen einer Kennung können dann über den entsprechenden Index adressiert bzw. bestimmt werden, wobei der Index als Zeiger auf die entsprechende Stelle bzw. Position in der Kennung dient. Der Speicher uid, der die Kennung speichert, ist oben in 2 zusammen mit dem jeweiligen Index in eckigen Klammern eingezeichnet. Die Pfeile 2 zeigen alle möglichen Zweige eines binären Suchbaums an, der im Laufe des Suchverfahrens bzw. der Durchführung des Suchalgorithmus durchlaufen werden kann. Dabei beginnt der Suchbaum bzw. der Suchalgorithmus bei dem höchstwertigen Bit uid[3] und prüft sukzessive, das heißt, Stelle für Stelle, ob an dem Eindraht-Kommunikationsnetz 100 ein Slave-Knoten, z. B. 130, 150, 170 angeschlossen ist, der an der aktuellen oder nächsten Stelle einen bestimmten binären Wert aufweist.
  • Im Folgenden werden Ausführungsbeispiele des Verfahrens zum Suchen einer Kennung oder Teilkennung eines Slave-Knoten in einem Eindraht-Kommunikationsnetz sowie Ausführungsbeispiele eines Master-Knotens und eines Slave-Knotens in einem solchen Eindraht-Kommunikationsnetz anhand der vierstelligen binären Kennwörter gemäß 2 beispielhaft beschrieben.
  • Dabei zeigt 2 einen binären Suchbaum für die 4-stellige Kennung, wobei ein erster Slave-Knoten 130 mit der Kennung „0010” (B steht für binär), ein zweiter Slave-Knoten 150 mit der Kennung „0110”, sowie ein dritter Slave-Knoten 170 mit der Kennung „0111” an dem Eindraht-Kommunikationsnetz angeschlossen sind. Oben sind in 2 die Stellen der Kennung, die im Englischen auch als Identifier bzw. ID bezeichnet wird, mit ihren entsprechenden Indizes von 0 bis 3 eingezeichnet. Dabei wird in 2 der Teilbaum für alle Kennungen mit dem höchstwertigen Bit „0”, wobei der Teilbaum (siehe Pfeile) ausgehend von dem höchstwertigen Bit mit dem Index 3, siehe UID[3], hin zu den Blättern des Suchbaums mit dem niedrigstwertigen Bit und dem Index 0, siehe UID[0], eingezeichnet ist.
  • In anderen Worten, 2 zeigt einen binären Suchbaum für eine Suche, bei der das höchstwertige Bit als Startstelle bzw. der entsprechende Index als Startindex verwendet wird, das niedrigstwertige Bit als Endstelle bzw. der entsprechende Index als Endindex verwendet wird, und der Zeiger bzw. Index in Suchrichtung von der Startstelle zu den Endstellen bzw. Blättern, um eine Stelle nach rechts geschoben bzw. reduziert wird, das heißt, dekrementiert wird. In alternativen Ausführungsbeispielen kann der Index stattdessen inkrementiert werden.
  • Dabei weist der Suchbaum Knoten und Pfade (siehe Pfeile) auf, wobei jeder Pfad von der Startstelle zu einer Endstelle eine mögliche Kennung eines Slave-Knoten repräsentiert, wie in 2 dargestellt ist. Ein Knoten des Suchbaums stellt dabei einen möglichen binären Wert an einer bestimmten Stelle der Kennung dar. Gemäß eines Ausführungsbeispiels wird während der Suche der Suchbaum Stelle für Stelle bzw. Knoten für Knoten durchlaufen und pro Knoten geprüft, ob Slave-Knoten vorliegen, die eine Kennung oder Teilkennung aufweisen, die durch den bis dahin beschrittenen bzw. eingeschlagenen Pfad entsprechen.
  • Dabei wird im Folgenden von „Einschlagen” im Sinne von „einen Pfad einschlagen” gesprochen, wenn der Index dekrementiert wird und damit in Bezug auf den Suchbaum gemäß 2 eine Stelle nach rechts fortgeschritten wird, und von „Prüfen” gesprochen, wenn ein Wert an einer Stelle der Kennung, die durch den Index definiert ist, geprüft wird. Dabei wird beim Prüfen der Index nicht geändert.
  • Im folgenden werden mögliche Befehle eines Ausführungsbeispiels anhand einer Befehlsliste näher erläutert:
    • DISS (Suchstart-Befehl) – Start des Kennungssuchalgorithmus,
    • DIP0 (Null-Prüf-Befehl) – Vergleichen des Wertes des aktuellen Knotens bzw. der aktuellen Stelle mit dem Bitwert ”0”
    • DIP1 (Eins-Prüf-Befehl) – Vergleichen des Wertes des aktuellen Knotens bzw. der aktuellen Stelle mit Bit „1”,
    • DIE0 (Null-Einschlag-Befehl) – Einschlagen in den „0”-Knoten bzw. der nächsten Stelle mit dem Bit „0”,
    • DIE1 (Eins-Einschlag-Befehl) – Einschlagen in den „1”-Knoten bzw. der nächsten Stelle mit dem Bit „1”,
    • DI00 (kombinierter Null-Einschlag-Null-Prüf-Befehl) – kombiniert die Befehle DIE0 und DIP0,
    • DI01 (kombinierter Null-Einschlag-Eins-Prüf-Befehl) – kombiniert die Befehle DIE0 und DIP1,
    • DI10 (kombinierter Eins-Einschlag-Null-Prüf-Befehl) – kombiniert die Befehle DIE1 und DIP0,
    • DI11 (kombinierter Eins-Einschlag-Eins-Prüf-Befehl) – kombiniert die Befehle DIE1 und DIP1,
    • DIMM (Speicherbefehl) – Speichern der aktuellen Suchposition und des Aktivitätsstatus,
    • DIRC (Zurückrufbefehl) – Zurückrufen bzw. Auslesen der gespeicherten aktuellen Suchposition und des gespeicherten aktuellen Aktivitätstatus,
    • DILC (Längenprüfbefehl) – Slave-Knoten antwort mit Bestätigungssignal IRQ, wenn der Suchprozess das letzte Bit erreicht hat.
  • Dabei werden im Folgenden die folgenden Elemente bzw. Definitionen für einen Beispielcode eines Ausführungsbeispiels eines Suchverfahrens bzw. eines Suchalgorithmus verwendet:
    • idptr: Zeiger auf interne Kennungsbitposition, Index idptr_mem – gespeicherter Zeiger auf interne Kennungsbitposition,
    • uid[x]: Speicherfeld, das den Kennungsbitstrom vorhält, mit „x” als Index, der das gewünschte Bit auswählt bzw. definiert,
    • active: Gerätestatus bzw. Aktivitätsstatus des Slave-Knoten, der „True” sein kann, wenn der Slave-Knoten aktiv ist, oder ”False” – sein kann, wenn der Slave-Knoten deaktiviert ist und nicht auf weitere Prüfanfragen antwortet,
    • active_mem: gespeicherter Status des Slawe-Knotens bzw. Slawe-Geräts,
    • Assert_SWI_IRQ bzw. Assert_SWI_Interrupt: Slawe-Knoten antwortet mit Bestätigungssignal IRQ über eine Drahtkommunikationsschnittstelle,
    • Wait_SWI_IRQ bzw. Wait_SWI_IRQ: Warten auf Bestätigungssignal IRQ auf der Eindrahtkommunikationsschnittstelle,
    • device_id_length: Anzahl der Stellen der Kennung, auch als Kennungslänge bezeichnet.
  • Wobei der Beispielcode wie folgt lautet:
    Figure 00130001
    Figure 00140001
    Figure 00150001
  • Dabei geht der Bereich des Index bzw. der Werte des Index idptr von „device_id_length-1” bis „0”, wobei der Parameter device_id_length die Länge bzw. Anzahl der Stellen der Kennung angibt, und in den folgenden Beispielen gemäß 2 den Wert 4 aufweist.
  • Dabei können Ausführungsbeispiele des Verfahrens, des Master-Knotens und/oder des Slave-Knotens in Bezug auf den verwendeten Befehlssatz in vier generelle Ausführungsbeispiele unterteilt werden:
    • 1. Erstes Ausführungsbeispiel mit einem Befehlssatz, der die Befehle DISS, DIE0, DIE1, DIP0, DIP1 und optional DILC aufweist,
    • 2. Zweites Ausführungsbeispiel, das zusätzlich zu dem ersten Ausführungsbeispiel die Befehle DIMM und DIRC aufweist,
    • 3. Drittes Ausführungsbeispiel, das zusätzlich zu den Befehlen des ersten Ausführungsbeispiels zumindest einen der kombinierten Einschlag-Prüf-Befehle DI00, DI01, DI10 und DI11 aufweist, und
    • 4. Viertes Ausführungsbeispiel, das die Befehle der drei ersten Ausführungsbeispiele aufweist.
  • Dabei kann der Befehl DIE0 auch als „0-Einschlag-Befehl”, der Befehl DIE1 als „1-Einschlag-Befehl”, der Befehl DIP0 als „0-Prüf-Befehl”, der Befehl DIP1 als „1-Prüf-Befehl”, der Befehl DI00 als – „0-Einschlag-0-Prüf-Befehl”, der Befehl DI01 als „0-Einschlag-1-Prüf-Befehl”, der Befehl DI10 als „1-Einschlag-0-Prüf-Befehl”, und der Befehl DI11 als „1-Einschlag-1-Prüfbefehl” bezeichnet werden. Ferner kann der Befehl DIEx als Sammelbegriff für die beiden Einschlagbefehle aus DIE0 und DIE1, der Begriff DIPx als Sammelbegriff für die Prüfbefehle DIP0, DIP1 und der Begriff DIxx als Sammelbegriff für die vier kombinierten Einschlag-Prüf-Befehle verwendet werden.
  • Dabei zeigt 1A, wie zuvor erläutert, einen Master-Knoten 100 und Slawe-Knoten 130, 150, 170 gemäß einem ersten oder dritten Ausführungsbeispiel, und 1B einen Master-Knoten 100' und Slawe-Knoten 130', 150', 170' gemäß einem zweiten oder vierten Ausführungsbeispiel, die zusätzlich zu den Ausführungsbeispielen gemäß 1A einen Speicher für den Index des letzten Abzweig-Knotens bzw. der letzten Zweigstelle aufweist und bei dem die Slawe-Knoten zusätzlich für das Speichern des eigenen Zustands bzw. des Status für den entsprechenden Index bzw. des Status, den der jeweilige Slawe-Knoten inne hatte, als der Index der aktuelle Index war und bevor der Index aufgrund eines Einschlagbefehls DIEx dekrementiert wurde.
  • Dabei sei ferner darauf hingewiesen, dass der Beispielcode ein möglicher Programmcode eines Ausführungsbeispiels eines Slawe-Knotens darstellt, das heißt, die Aktionen bzw. Schritte beschreibt, die der Slawe-Knoten durchläuft bzw. die Prozesseinrichtung 136 durchführt, wenn der Slawe-Knoten 130, 150, 170 den jeweiligen Befehl über den Empfänger 134 empfängt.
  • Die 3 bis 5 zeigen dagegen Flussdiagramme, die die Steuerung des Master-Knotens betreffen, nämlich: 3 ein Flussdiagramm eines ersten Ausführungsbeispiels für die Suche einer unbekannten bzw. beliebigen Kennung, 4 ein Flussdiagramm eines ersten Ausführungsbeispiels für eine bekannte Kennung bzw. Referenzkennung, und 5 ein Flussdiagramm eines dritten Ausführungsbeispiels für die Suche einer bekannten Kennung bzw. Referenzkennung.
  • Zunächst soll anhand des Beispielcodes, der 1A, 2 und der 3 ein erstes Ausführungsbeispiel des Verfahrens zum Suchen einer Kennung eines Slave-Knotens eines Eindraht-Kommunikationsnetzes beschrieben werden. Dabei beschreibt das Flussdiagramm gemäß 3 die Suche einer unbekannten Kennung, wie sie zum Beispiel von dem Master-Knoten 110 durchgeführt wird, um festzustellen, ob Slave-Knoten an das Eindrahtkommunikationsnetz angeschlossen sind, und welche Kennung die angeschlossenen Slave-Knoten 130, 150 und 170 haben. Diese Suche kann auch als offene Suche bezeichnet werden.
  • In 3 sind die Schritte, die der Master-Knoten 110 durchläuft, gezeigt und stichwortartig erläutert, und durch die entsprechenden Befehle, die der Master-Koten sendet und die von den Slave-Knoten empfangen werden, neben den Blöcken des Flussdiagramms ergänzt.
  • Dabei werden für die folgenden Erläuterungen, wo möglich, dieselben Elemente, z. B. idptr für den Index, sowohl für den Master-Knoten als auch für die Slave-Knoten verwendet, und bei der gleichartigen Vorgängen, z. B. dem Dekrementieren des Index, das sowohl der Master-Knoten als auch die Slave-Knoten durchführen, auch zur Erläuterung des Master-Knoten auf entsprechende Stellen des Codes der Slave-Knoten Bezug genommen.
  • Vor dem Start der Suche wird in Schritt 402 der Master-Knoten 110 zurückgesetzt.
  • In Schritt 410 beginnt der Master-Knoten die Suche, indem er den Befehl DISS über das Eindraht-Kommunikationsnetz sendet und in Schritt 412 den Index analog zu den Slave-Knoten auf einen Startwert setzt bzw. initialisiert, also idptr = device_id_length_1 = 4 – 1 = 3 setzt, da in dem Beispiel gemäß 2 die Kennungslänge bzw. device_length den Wert 4 beträgt. Damit definiert der Index das höchstwertige Bit uid[3] der Kennung. Entsprechend setzen die Slave-Knoten 130, 150, 170 nach Empfang des Befehls DISS (Initialisieren) den Index idptr ebenfalls auf den Wert 3 und setzen ihren Zustand bzw. ihren Zustandsparameter active auf den Wert Wahr bzw. True (siehe Programmcode).
  • In Schritt 414 sendet der Master-Knoten den 0-Prüf-Befehl DIP0 (siehe hierzu auch Bezugszeichen 212 in 2), um zu prüfen, ob ein Slave-Knoten an das Eindrahtkommunikationsnetz angeschlossen ist, der eine Kennung mit dem Wert „0” als höchstwertiges Bit aufweist. Entsprechend dem Programmcode für den Befehl DIP0 prüfen die Slave-Knoten 130, 150, 170, ob der Wert an der Stelle, die durch den Index definiert wird (uid[idptr]), gleich dem durch den Prüfbefehl DIE0 vorgegeben und zu prüfenden Wert „0” ist bzw. mit diesem übereinstimmt, und ob sie aktiv sind, das heißt, ob ihr jeweiliger, eigener Aktivitätsstatus den Wert „Wahr” bzw. „True” hat. Aufgrund des vorhergehenden DISS-Befehls sind alle Slave-Knoten aktiv und wie in 2 ersichtlich, weisen alle drei Slave-Knoten 130, 150, 170 an der Stelle uid[3] den Wert „0” auf, so dass alle drei Slave-Knoten das Bestätigungssignal IRQ (siehe „Assert_SWI_Interrupt”) über das Eindraht-Kommunikationsnetz senden.
  • In Schritt 416 prüft der Master-Knoten, ob eine „0” entdeckt wurde, das heißt, ob ein Slave-Knoten den Wert „0” an der aktuellen Stelle hat und das Bestätigungssignal gesendet hat. In diesem Fall wurde ein Bestätigungssignal gesendet (siehe so dass der Master-Knoten den Wert „0” in einem Kennungsspeicher in Schritt 418 speichert, wobei der Kennungsspeicher die von dem Master-Knoten durch eine Suche gefundenen Teilkennungen und/oder Kennungen der Slave-Knoten speichert.
  • In Schritt 420 sendet der Master-Knoten 100 dann den Einschlagbefehl DIE0 (siehe Bezugszeichen 214 in 2).
  • Auf den Empfang des Befehls DIE0 hin prüfen die Slave-Knoten, ob der Index idptr gleich 0 ist, das heißt, die letzte Stelle gemäß der Suchreihenfolge bzw. das niedrigstwertige Bit erreicht ist. Dies ist nicht der Fall, da idptr den Wert 3 hat. Zudem prüfen die Slawe-Knoten, ob die eigene Kennung an der durch den Index definierten Stelle (uid[idptr]) den Wert „1” aufweist, das heißt, nicht den durch den Einschlagbefehl DIE0 definierten Wert „0” aufweisen. Wie 2 zu entnehmen ist, weisen alle drei Slawe-Knoten an dieser Stelle UID[3] den Wert „0” auf, so dass keine der zwei in dem Programmcode genannten Bedingungen erfüllt sind, und somit alle drei Slave-Knoten aktiv bleiben. Zudem dekrementieren die Slawe-Knoten den Index von 3 auf 2 (sieh Code).
  • Ähnlich verfährt der Master-Knoten in Schritt 422, das heißt auch der Master-Knoten reduziert den Index bzw. dekrementiert seinen eigenen Index.
  • In Schritt 424 prüft der Master-Knoten, ob er alle Bits geprüft hat, oder in anderen Worten ausgedrückt, ob er alle Stellen geprüft hat, beispielsweise, indem er prüft, ob der Index kleiner als 0 ist. Da der Index idptr den Wert 2 hat, erkennt der Master-Knoten, dass noch nicht alle Bits geprüft wurden, und geht zurück zu Schritt 414 und sendet einen Prüfbefehl DIP0 (siehe 222 in 2)
  • Wie schon für die erste Bit-Stelle uid[3], verfahren alle Slawe-Knoten gemäß dem Programmcode für den Befehl DIP0, und prüfen nun, ob ihre eigene Kennung an der Stelle uid[2] den Wert 0 hat, und ob sie aktiv sind. Aktiv sind alle drei Slawe-Knoten, jedoch hat lediglich der erste Slawe-Knoten 130 an der aktuellen Stelle idptr = 2 den Wert „0”. Die zwei anderen Slawe-Knoten 150, 170 haben an dieser Stelle den Wert „1”, wie in 2 ersichtlich. Somit sendet lediglich der erste Slawe-Knoten 130 das Bestätigungssignal IRQ.
  • Der Master-Knoten 100 erkennt somit, dass zumindest ein Slawe-Knoten auch an der zweiten Stelle den Wert „0” aufweist und führt nach Schritt 416 entsprechend (siehe „ja”) Schritt 418 aus, das heißt, der Master-Knoten speichert gemäß dem aktuellen Index an der zweiten Stelle des Kennungsspeichers den Wert „0”.
  • Nach dem Speichern sendet der Master-Knoten in Schritt 420 den Einschlagbefehl DIE0 (siehe 224 in 2).
  • Bei Erhalt des Einschlagbefehls DIE0 prüfen die drei Slave-Knoten, wie in dem Programm für den Befehl DIE0 beschrieben, ob die letzte Stelle erreicht ist, oder ob der Wert der eigenen Kennung an der aktuellen Stelle uid[2] den Wert „1” aufweist. Wie aus 2 ersichtlich, ist dies für den ersten Slawe-Knoten 130 nicht der Fall. Der erste Slawe-Knoten 130 bleibt somit aktiv und dekrementiert seinen eigenen Index von dem Wert 2 auf den Wert 1. Die zweiten und dritten Slave-Knoten 150, 170 weisen jedoch an der Stelle uid[2] den Wert „1” auf, so dass sie ihren Zustand in den inaktiven Zustand ändern bzw. sich deaktivieren bzw. deaktiviert werden (active = False) und dann wie der erste Slawe-Knoten ihren Index dekrementieren.
  • Der Master-Knoten dekrementiert seinen Index in Schritt 422 ebenfalls, so dass weiterhin der Master-Knoten und die Slave-Knoten, jeder für sich, den gleichen aktuellen Index gespeichert haben, um einen Zugriff auf die gleiche Stelle in einer Kennung zu gewährleisten.
  • In Schritt 424 überprüft der Master-Knoten wiederum, ob alle Bits geprüft sind. Dies ist nicht der Fall („nein”), so dass der Master-Knoten einen dritten DIP0-Befehl, siehe Bezugszeichen 232 in 2, sendet.
  • Nach Erhalt des Befehls DIP0 prüfen alle Slawe-Knoten 130, 150, 170, ob ihr eigener Wert an der Stelle uid[1] den Wert „0” aufweist und ob sie aktiv sind. Da der zweite und dritte Slawe-Knoten 150, 170 nicht mehr aktiv sind, können diese keine Bestätigung mehr senden, selbst wenn sie an dieser Stelle den Wert „0” aufweisen würden. Der erste Slawe-Knoten 130 ist noch aktiv und weist an der aktuellen Stelle uid[1] seiner Kennung jedoch eine „1” auf, und erfüllt somit die Bedingung für das Senden eines Bestätigungssignals nicht. Somit sendet keiner der Slawe-Knoten ein Bestätigungssignal.
  • Nach Ablauf einer vorgegebenen Antwortzeit, erkennt der Master-Knoten gemäß Schritt 416, dass kein Slawe-Knoten ein Bestätigungssignal geschickt hat bzw. dass keiner der aktiven Slawe-Knoten an der aktuellen Stelle den zu prüfenden Wert „0” aufweist (siehe „nein”).
  • Durch das vorherige Prüfen mittels des Prüfbefehls DIP0, ob ein Slawe-Knoten an dem Netz angeschlossen ist, der eine „0” an der aktuellen Stelle aufweist, wird vermieden, dass der Master-Knoten, im Gegensatz zu den herkömmlichen Verfahren, den Pfad 234 einschlägt, bzw. ohne Prüfung den Einschlagbefehl DIE0 mit dem Bezugszeichen 234 sendet, und somit in einer Sackgasse landet, und beispielsweise wieder von vorne beginnen müsste, das heißt, wieder von der Wurzel des Suchbaums einen nächsten Pfad prüfen würde.
  • Zur Unterscheidung sind die Pfeile, die Prüfbefehlen zugeordnet sind, in 2 mit gestrichelten Linien gezeichnet, Pfeile, die Einschlagbefehlen zugeordnet sind, die zu einer validen bzw. existierenden Kennung führen, mit durchgezogenen Linien gezeichnet, und Sackgassen bzw. nicht gesendete Einschlagbefehle punktiert gezeichnet.
  • Der Master-Knoten bricht daher die weitere Prüfung für den Wert „0” an dieser Stelle ab (siehe Schritt 426) und sendet in Schritt 428 den Prüfbefehl DIP1, siehe 236 in 2.
  • Bei Erhalt des Befehls DIP1 prüfen alle Slawe-Knoten analog zu dem Prüfbefehl DIP0, ob sie an der aktuellen Stelle UID[1] den Wert „1” aufweisen und aktiv sind. in diesem Fall ist nur noch Slawe-Knoten 130 aktiv, und weist zudem den Wert „1” an der Stelle auf, so dass dieser in Antwort auf den Befehl DIP1 ein Bestätigungssignal IRQ sendet.
  • Der Master-Knoten 110 empfängt das Bestätigungssignal IRQ in Schritt 430 und erkennt somit das zumindest ein aktiver Slave-Knoten mit einer Kennung an das Kommunikationsnetz angeschlossen ist, der an der aktuellen Stelle den zu prüfenden Wert aufweist („ja”) und speichert daraufhin in Schritt 432 für den Index 1 der Kennung den Wert „1” in dem Kennungsspeicher.
  • In Schritt 434 sendet der Master-Knoten den Einschlagbefehl DIE1, siehe Bezugszeichen 238 in 2.
  • Nach Erhalt des Befehls DIE1 prüfen die Slave-Knoten, ob die letzte Stelle erreicht ist und ihre eigene Kennung an der Stelle uid[1] den Wert „0” aufweist. Der erste Slave-Knoten 130 erfüllt diese Bedingung nicht, so dass er aktiv bleibt und lediglich den Index auf den Wert „0” dekrementiert. Die zwei anderen Slave-Knoten dekrementieren ihren Index ebenfalls.
  • Der Master-Knoten dekrementiert den eigenen Index in Schritt 422 auch auf den Wert „0”.
  • Da noch nicht alle Bits geprüft sind, siehe Schritt 424 und Pfeil „nein”, sendet der Master-Knoten in Schritt 414 den Befehl „DIP0”, in 2 Bezugszeichen 242. Der zweite und dritte Slave-Knoten 150, 170 sind deaktiviert und können somit kein Bestätigungssignal senden, obwohl beispielsweise der zweite Slave-Knoten 150 an der Stelle uid[0] den zu prüfenden Wert „0” aufweist und somit die erste Bedingung gemäß des Programmcodes erfüllt. Der erste Slave-Knoten 130 ist jedoch aktiv und erfüllt ebenfalls die erste Bedingung, das heißt, weist an der Stelle uid[0] den Wert „0” auf und schickt somit ein Bestätigungssignal IRQ an den Master-Knoten.
  • Somit entdeckt der Master-Knoten in Schritt 416, dass ein entsprechender Slave-Knoten vorhanden ist (siehe „ja”) und speichert in Schritt 418 an der Stelle uid[0] in seinem Kennungsregister den Wert „0”.
  • Daraufhin sendet der Master-Knoten 110 den Einschlagbefehl DIE0 in Schritt 420, siehe 244 in 2.
  • Da der aktuelle Index den Wert „0” hat, das heißt die letzte Stelle der Kennung definiert, deaktiviert sich der erste Slave-Knoten 130 (siehe Programmcode) und dekrementiert ebenso wie die zwei anderen Slave-Knoten seinen Index auf den Wert „–1”.
  • Auch der Master-Knoten reduziert sein Index in Schritt 422 ein weiteres Mal und erkennt somit in Schritt 424, dass alle Bits geprüft sind und beendet den ersten Suchlauf erfolgreich (ja), siehe Schritt 436. Damit hat der Master-Knoten die Kennung des ersten Slave-Knoten 130, nämlich „0010” gefunden und in seinem Kennungsspeicher gespeichert.
  • Dabei ist der Master-Knoten 110 in dem ersten Ausführungsbeispiel ausgebildet, um beispielsweise den Index der Stelle, an der der Master-Knoten das letzte Mal ein Bestätigungssignal auf einen Null-Prüf-Befehl DIP0 empfangen hat, zu speichern, in 2 der Index „1”, um dann analog dem ersten Durchlauf nach Einschlagen des Pfads 238 bzw. Senden des Einschlagbefehls DIE1 238, nicht nochmals den Wert „0” für den nächsten Index idptr = 0 zu prüfen, sondern den Wert „1”, mittels des Eins-Prüf-Befehls DIP1 zu prüfen, siehe Bezugszeichen 246 in 2. Dieser Index bzw. diese Stelle wird auch als Abzweigungsindex bzw. Abzweigungsstelle bezeichnet, da sie eine Stelle beschreiben, an der der Pfad auch in einer anderen Richtung hätte weiterverfolgt werden können.
  • Da der der Slave-Knoten 130 an dieser Stelle den Wert „1” nicht aufweist, und die anderen Slave-Knoten schon deakti viert sind, empfängt der Master-Knoten kein Bestätigungssignal und stellt somit fest, dass diese Kennung in dem Netz nicht vorliegt.
  • Das dritte Ausführungsbeispiel, das die Befehle DIMM zum Speichern eines aktuellen Index und Status in einem Slave-Knoten und dem Befehl DIRC, zum Zurückrufen des gespeicherten Status und des gespeicherten Index in einem Slave-Knoten aufweist, ermöglicht eine wesentlich schnellere Rückkehr an solche letzten „Abzweigungsstellen” und vermeidet, dass bei einem nächsten Suchlauf der komplette Baum noch einmal von vorne durchlaufen werden muss.
  • Bei dem zweiten Ausführungsbeispiel weist der Master-Knoten 110' im Wesentlichen dieselben Merkmale wie der Master-Knoten 110 auf (siehe 1B), wobei der Speicher 118 als Speicher 118' implementiert ist, der zusätzlich ausgebildet, um einen aktuellen Indexwert zu speichern, und die Slave-Knoten 130', 150', 170' im Wesentlichen dieselben Merkmale wie die Slave-Knoten 130. 150, 170 aufweisen (siehe 1B), wobei der Speicher 138 als Speicher 138' implementiert ist, der zusätzlich ausgebildet, um einen eigenen aktuellen Index (siehe idptr_mem in dem Programmcode) und einen eigenen aktuellen Aktivitätsstatus bzw. Status (siehe active_mem in dem Programmcode) zu speichern. Dabei entspricht der Durchlauf bzw. das Flussdiagramm in Bezug auf einen einzelnen Suchlauf zum Ermitteln einer Kennung dem des ersten Ausführungsbeispiels gemäß 3, weist jedoch zusätzlich die Schritte des Sendens des Speicherbefehls DIMM durch den Master-Knoten an möglichen oder tatsächlichen Abzweigungspunkten innerhalb des Suchalgorithmus auf, und den Schritt des Zurückrufens der gespeicherten Indices bzw. eigenen Aktivitätsstati der Slave-Knoten am Ende eines Suchdurchlaufs, um einen nächsten Suchdurchlauf an dem letzten Abzweigungspunkt beginnend, durchzuführen.
  • Dabei sind tatsächliche Abzweigungsstellen oder -knoten solche Abzweigungsstellen, bei denen der Master-Knoten zuvor durch das Senden beider Prüfbefehle DIP0 und DIP1 positiv geprüft hat, dass beide Pfade eingeschlagen werden können, d. h. Slawe-Knoten mit Kennungen für beide Bitwerte an dieser Stelle vorliegen.
  • Demgegenüber sind mögliche Abzweigungsstellen oder -knoten solche Abzweigungsstellen, bei denen der Master-Knoten zuvor auf das Senden lediglich eines Prüfbefehls, z. B. DIP0, schon ein Bestätigungssignal IRQ erhalten hat, und keinen zweiten Prüfbefehl DIP1 gesendet hat, um zu prüfen, ob ein Slave-Knoten auch für diesen Wert eine Bestätigung schickt.
  • In Bezug auf das in 3 gezeigte Flussdiagramm, weist der Schritt 418', ebenfalls in 3 eingezeichnet, zusätzlich zu dem Schritt 418 das Senden des Speicherbefehls DIMM durch den Master-Knoten 110' auf, bevor der Master-Knoten den Einschlagbefehl DIE0 in Schritt 420 sendet.
  • Wenn der Master-Knoten den Speicherbefehl DIMM sendet, speichert er gleichzeitig den aktuellen Index idptr als idptr_mem ab. Bei Empfang des Speichersignals DIMM speichern die Slave-Knoten 130', 150', 170', unabhängig von ihrem Aktivitätsstatus, ihren aktuellen Index idptr als idptr_mem und ihren aktuellen Status active als active_mem ab (siehe Programmcode zu dem Befehl DIMM). In Bezug auf 2 schickt der Master-Knoten 110' den Speicherbefehl DIMM vor dem Senden des Einschlagbefehls 224. Somit speichern sowohl der Master-Knoten als auch die Slawe-Knoten den Index 3 als Rückkehrindex idptr_mem, auf den mittels des Zurückrufbefehls DIRC zurückgekehrt werden könnte.
  • Im weiteren Verlauf des ersten Suchdurchlaufs wird jedoch auch der Null-Prüf-Befehl DIP0 dann 242 von dem ersten Slave-Knoten 130 bestätigt, von dem Master-Knoten ein weiterer Speicher-Befehl DIMM gesendet und somit der Index „0” in dem Index-Speicher idptr_mem der Slawe-Knoten und des Master-Knotens gespeichert, und damit der in zwischen gespeicherte Index-Wert „2” mit dem Wert „0” zur Kennzeichnung der letzten möglichen Abzweigungsstelle überschrieben. Die Slawe-Knoten speichern zusätzlich den eigenen Zustand, der dem gespeicherten Index zugeordnet ist, das heißt Slawe-Knoten 130 den aktiven Zustand bzw. „True” und die zwei anderen Slawe-Knoten 150', 170' ihren inaktiven Status, das heißt den Status „False”. In Bezug auf die Stati der einzelnen Slawe-Knoten wird auf die Ausführungen in Bezug auf das erste Beispiel gemäß 1A verwiesen.
  • Damit kann nach Abschluss des ersten Suchdurchlaufs der Schritt 436, der Master-Knoten 110' einen zweiten Suchdurchlauf starten, der direkt an dem letzten gespeicherten Suchstatus fortfährt. Dies initiiert der Master-Knoten 110' durch Senden des Zurückruf-Befehls DIRC. Der Master-Knoten lädt gleichzeitig den Index „0” als aktuellen Status aus active_mem zurück in active, und die Slawe-Knoten ihren gespeicherten Index idptr_mem als aktuellen Index idptr und ihren gespeicherten Status active_mem als aktuellen Status active in ihre Speicher zurück. Somit ist der erste Slawe-Knoten 130' wieder aktiv und die zwei anderen Slawe-Knoten jedoch weiterhin inaktiv. In dem zweiten Suchdurchlauf sendet der Master-Knoten 110' anstelle des Null-Prüf-Befehls DIP0 (siehe 242 in 2) nun direkt den Ein-Prüf-Befehl DIP1 (siehe 246 in 2), um zu prüfen, ob ggf. Slawe-Knoten an dem Eindraht-Kommunikationsnetzwerk angeschlossen sind, die die Kennung „0011” aufweisen. Dies ist in dem in 2 gezeigten Ausführungsbeispiel nicht der Fall, so dass der Master-Knoten 110' kein Bestätigungssignal erhält, und somit nach Ablauf einer vorgegeben Zeitspanne, erkennt, dass kein aktiver Slawe-Knoten an das Eindraht-Kommunikationsnetzwerk angeschlossen ist, der an der Stelle uid[0] den Wert „1” aufweist, und damit kein Slawe-Knoten, der insgesamt die Kennung „0011” aufweist.
  • Eine Variante des dritten Ausführungsbeispiels ist ausgebildet, um einen dritten Suchlauf, wieder ausgehend von der Wurzel des Suchbaums zu beginnen, und beispielsweise nach Einschlagen des Pfads 214 den Pfad 228 einzuschlagen.
  • Eine weitere Variante des dritten Ausführungsbeispiels weist mehr als ein Speicherfeld für einen gespeicherten Index und einen gespeicherten Status auf, so dass durch mehrfaches Senden des Befehls DIMM mehrere Indices idptr und die entsprechenden Stati active in den Slave-Knoten in zeitlicher Abfolge bzw. in der Reihenfolge gemäß des Durchlaufens des Suchbaums als idptr_mem[j] und active_mem[j] abgespeichert werden und durch mehrfaches Senden des Befehls DIRC in entgegengesetzter Richtung wieder aus dem Speicher zurückgerufen werden können. In anderen Worten, der zuletzt gespeicherte Index bzw. Status wird bei dem ersten Zurückrufbefehl als aktueller Index bzw. Status ausgelesen, der vorletzte gespeicherte Index bzw. Status durch den zweiten Zurückruf-Befehl, usw.. In derartigen Ausführungsbeispielen arbeiten die Befehle DIMM und DIRC, in anderen Worten, wie Stackspeicher-Befehle PUSH und POP, und es werden also beispielsweise mehrere DIMM-Befehle hintereinander und/oder mehrere DIRC-Befehle hintereinander ausgeführt. Bei derartigen Ausführungsbeispielen mit mehreren DIMM-Befehlen können beispielsweise rekursiv alle Abzweigungen abgearbeitet werden.
  • Diesbezüglich bilden die zuvor beschriebenen Ausführungsbeispiele mit nur einem Speicher idptr_mem, in anderen Worten, den Sonderfall mit einer Stackspeichertiefe von „1”.
  • In dem in 2 gezeigten Beispiel würden der Master-Knoten und die Slave-Knoten in zeitlicher Reihenfolge, beginnend mit dem Index j = 1 für den ersten gespeicherten Abzweigungsindex, die folgenden möglichen Abzweigungsindizes durch Senden dreier DIMM-Befehle in den Schritten 418' speichern:
    idptr_mem[1] = 3, idptr_mem[2] = 2 und idptr_mem[3] = 0. Durch Senden dreier Zurückruf-Befehle würden die Abzweigungsindizes in umgekehrter Reihenfolge wieder in den Suchindex idptr und die Stati in die Suchstati active zurück gelesen werden.
  • Im Folgenden wird das dritte Ausführungsbeispiel, bei dem die Kommandos auch die kombinierten Einschlag-Prüf-Befehle umfassen, ausgehend von 3 beschrieben.
  • Dabei beginnt ein Verfahren gemäß dem zweiten Ausführungsbeispiel, wie ein Verfahren gemäß dem ersten Ausführungsbeispiel, beispielsweise mit den Schritten 402 bis 418.
  • Der Master-Knoten 110' ist ausgebildet, um nach den Schritten 422 und 424 anstelle der separaten Befehle DIE0 in Schritt 420 und DIP0 in Schritt 414 den kombinierten Null-Einschlag-Null-Prüf-Befehl DI00 senden. Dieser kombinierte Befehl DI00 ist, wie der Begriff „kombiniert” schon gesagt, eine Kombination der Einzelbefehle Null-Einschlag-Befehl DIE0 und Null-Prüf-Befehl DIP0 und beinhaltet ebenso das Dekrementieren des Index durch den Einschlag-Befehl und das nachfolgende Prüfen (siehe Code).
  • Ferner weist das Verfahren gemäß des zweiten Ausführungsbeispiels anstelle des Einschlagbefehls DIE1 in Schritt 434 und des Prüfbefehls DIP0 in Schritt 414 einen kombinierten 1-Einschlag-0-Prüf-Befehl DI10 auf. Dieser kombinierte Befehl DI10 ist eine Kombination des Einzelbefehls 1-Einschlag-Befehl DIE1 mit einem anschließenden Null-Prüf-Befehl DIP0 (siehe Code).
  • Die zwei anderen kombinierten Einschlag-Prüf-Befehle werden bei diesem Ausführungsbeispiel nicht eingesetzt.
  • Dabei kann das Flussdiagramm, abweichend von 3 allgemein so angepasst sein, dass bei Erreichen der vorletzten Stelle, das heißt, z. B. bei Erreichen des Index „1” kein kombinierter Einschlag-Prüf-Befehl DIxx gesendet wird, sondern lediglich ein einfacher Einschlagbefehl DIEx, um dann nach Schritt 424 den Suchdurchlauf ggf. mit Schritt 436 erfolgreich zu beenden, und ggf. einen neuen Suchdurchlauf zu beginnen.
  • Bezug nehmend auf 2 sendet der Master-Knoten 110 somit folgende Befehle: den Prüf-Befehl DIP0 212, den kombinierten 0-Einschlag-0-Prüf-Befehl 214, 222 anstelle der Einzelbefehle DIE0 214 und DIP0 222, einen weiteren kombinierten 0-Einschlag-0-Prüf-Befehl 224, 232 statt der Einzelbefehle DIE0 224 und DIP0 232, aufgrund des fehlenden Bestätigungssignals für UID[1] = 0 in Antwort auf den kombinierten 0-Einschlag-0-Prüf-Befehl 224, 232, da kein Slave-Knoten mit einer derartigen Teilkennung vorliegt, ein kombinierter 1-Einschlag-0-Prüfbefehl 238, 242 anstelle der Einzelbefehle DIE1 238 und zuletzt der Einschlag-Befehl DIE0 242.
  • Verfahren gemäß dem zweiten Ausführungsbeispiel benötigen daher weniger Befehle als Ausführungsbeispiele gemäß dem ersten Verfahren, und ermöglichen somit eine Beschleunigung der Suche von Kennungen einzelner Slave-Knoten.
  • Gemäß einem vierten Ausführungsbeispiel können in dem Verfahren auch die Verwendung der kombinierten Einschlag-Prüf-Befehle DIxx mit dem Speicherbefehl DIMM (siehe Schritt 418') und dem Zurückruf-Befehl DIRC kombiniert werden, wie sich dies aus 3 und den vorhergehenden Erläuterungen ergibt, um die Suche weiter zu beschleunigen.
  • 4 zeigt ein Flussdiagramm eines Programms für einen Master-Knoten 110 zum Suchen einer Kennung eines Slave-Knoten, wobei die Kennung als Referenzkennung bekannt ist. Dies kann auch als geschlossene Suche bezeichnet werden.
  • Ähnlich wie in 3 beginnt das Verfahren mit den Schritten 402 bis 412, das heißt, der Master-Knoten sendet einen Start-Befehl DISS, die Indizes werden initialisiert und die Slave-Knoten aktiviert.
  • Da die Kennung bekannt ist, holt der Master-Knoten in dem Schritt 513 den Wert der entsprechenden Stelle, die durch den Index definiert ist, aus dem Kennungsspeicher, der zum Beispiel zuvor mit einem Verfahren gemäß 3 erstellt wurde.
  • Ähnlich wie in 3, beginnt das Verfahren die Suche selbst mit dem höchstwertigen Bit und führt die Suche dann gemäß des Suchbaums vom höchstwertigen Bit zum niedrigstwertigen Bit durch. Ausgehend davon, dass die Referenzkennung beispielsweise die Kennung des ersten Slawe-Knotens 130 ist, holt der Master-Knoten als erstes Referenzbit eine „0” (uid[3] in 2), stellt in Schritt 514 fest, ob die Referenz den Wert „0” aufweist. Dies ist der Fall („ja”), so dass der Master-Knoten in Schritt 414 den Prüfbefehl DIP0 sendet, und, sofern der Slawe-Knoten 130 antwortet, in Schritt 416 die Prüfung bestätigt bekommt (siehe „ja”), und in Schritt 420 den Einschlagbefehl DIE0 sendet.
  • In Schritt 422, wie zuvor schon dargelegt, reduzieren sowohl der Master-Knoten wie auch die Slawe-Knoten ihren Index. In Schritt 424 prüft der Master-Knoten, wie schon in 3 erläutert, ob alle Bits geprüft sind und kehrt zurück zu Schritt 513, da lediglich das höchstwertige Bit bis jetzt geprüft wurde.
  • Diese Schritte werden für den nächsten Index 2 entsprechend wieder durchlaufen (siehe uid[2] in 2).
  • Das dritte Bit bzw. die Stelle uid[1] weist jedoch den Wert „1” auf, so dass der Master-Knoten den Schritt 514 auf Schritt 428 verzweigt und einen Prüfbefehl DIP1 sendet. Sofern der Slawe-Knoten 130 weiterhin antwortet, wird auch die dritte Stelle in Schritt 430 bestätigt (siehe „ja”) und der Master-Knoten sendet das Einschlagsignal DIE1 in Schritt 434.
  • In Schritt 422 reduzieren sowohl der Master-Knoten als auch die Slawe-Knoten wieder den Index. Da noch nicht alle Bits geprüft sind, wird von Schritt 424 in Schritt 513 zurück verzweigt und wieder der Pfad für die Prüfung des Wertes „0” an der letzten Bitstelle (uid[0] siehe 2) durchlaufen. Bei erfolgreichem Durchlauf, das heißt, bei Bestätigung durch den Slawe-Knoten 130, sind alle Bits geprüft (siehe Schritt 424) und die Suche wird in Schritt 436 erfolgreich abgeschlossen. Die Suche ergibt somit, dass ein Knoten mit der Referenzkennung „0010” weiterhin am Eindrahtnetz angeschlossen ist, und bleibt damit weiter in dem Kennungsspeicher des Master-Knoten gespeichert.
  • Sollte der Slawe-Knoten 130 beispielsweise während dieser Prüfung ausfallen, so erhält der Master-Knoten entweder keine Bestätigung für den Wert „0” (siehe Schritt 416 und „nein”) oder keine Bestätigung für den Wert „1” (siehe Schritt 430 und „nein”) und bricht in Schritt 538 die Prüfung ab bzw. beendet diese erfolglos in Schritt 440. In diesem Fall kann der Master-Knoten ausgebildet sein, die erfolglos gesuchte Referenzkennung wieder aus dem Kennungsspeicher zu löschen, um so nur positiv validierte Kennungen zu speichern.
  • 5 zeigt ein Flussdiagramm eines Ausführungsbeispiels zum Suchen einer Kennung eines Slawe-Knotens eines Eindraht-Kommunikationsnetzes bei dem die Kennung bekannt ist und mittels der zuvor schon erläuterten kombinierten Einschlag-Prüf-Befehle DIxx gesucht wird.
  • Wie in den zuvor erläuterten Verfahren, beginnt das Verfahren mit den Schritten 402 bis 412, das heißt, der Master-Knoten sendet ein Suchstart-Befehl DISS, die Indizes werden initialisiert und die Slawe-Knoten aktiviert.
  • In Schritt 613 holt der Master-Knoten dann das Referenzbit und das nächste Referenzbit, oder in anderen Worten, die nächsten zwei Referenzbits.
  • Ähnlich wie in Bezug auf 4 wird im Folgenden ein Durchlauf anhand der Suche der Kennung des Slawe-Knotens 130 gemäß 2 beschrieben. In diesem Fall holt sich der Master-Knoten die zwei höchstwertigen Referenzbits aus dem Kennungsspeicher, nämlich uid[3] und uid[2] bzw. die entsprechenden Werte „0” und „0”, um zu bestimmen, welcher der vier kombinierten Einschlag-Prüf-Befehle als nächstes gesendet wird.
  • In Schritt 514 prüft der Master-Knoten, ob die Stelle, die durch den aktuellen Index definiert ist, in diesem Fall uid[3] den Wert „0” hat. Dies ist der Fall („ja”), so dass der Master-Knoten in dem Schritt 614 prüft, ob auch die nächste Stelle uid[2] den Wert „0” aufweist. Dies ist der Fall („ja”), so dass der Master-Knoten in dem Schritt 616 den kombinierten Einschlag-Prüf-Befehl DI00 sendet.
  • In Antwort auf den kombinierten Einschlag-Prüf-Befehl DI00 prüft jeder der Slawe-Knoten 130, 150, 170 gemäß dem Code für den DIE0-Anteil des Befehls DI00, ob der Wert an der durch den Index definierten Stelle uid[3] den Wert „0” aufweist. Dies ist für alle 3 Slawe-Knoten der Fall, so dass alle 3 Slawe-Knoten aktiv bleiben. Ferner dekrementieren alle drei Slawe-Knoten, wie auch der Master-Knoten in Schritt 424, ihren Index um eins auf den Wert 2. Danach prüfen die Slave-Knoten, ohne dass der Master-Knoten einen weiteren Befehl sendet, den DIP0-Anteil des Befehls DI00 (siehe Code), und der Slawe-Knoten 130 sendet das Bestätigungssignal IRQ an den Master.
  • In Schritt 424 wird, da noch nicht alle Bits geprüft sind, zu Schritt 613 zurückgekehrt. Dabei werden jetzt der Wert „0”, der durch den aktuellen Index 2 definiert ist, aus dem Kennungsspeicher uid[2] ausgelesen und zudem der Wert „1”, der der durch den in Bezug auf die Suchrichtung nächsten Index 1 definiert ist, aus dem Kennungsspeicher uid[1] ausgelesen.
  • Entsprechend ergibt die Prüfung in Schritt 514, ob das aktuelle Bit den Wert „0” hat, das Ergebnis „ja”, und in Schritt 614, ob das nächste Bit den Wert „0” hat, das Ergebnis „nein”, so dass der Master-Knoten in Schritt 618 den kombinierten Befehl DI01 sendet.
  • In Antwort auf den kombinierten Einschlag-Prüf-Befehl DI01 prüft jeder der Slawe-Knoten 130, 150, 170 gemäß dem Code für den DIE0-Anteil des Befehls DI01, ob der Wert an der durch den Index definierten Stelle uid[2] den Wert „0” aufweist. Dies ist nur Slawe-Knoten 130 der Fall, so dass nur der Slawe-Knoten 130 aktiv bleibt. Ferner dekrementieren alle drei Slawe-Knoten, wie auch der Master-Knoten in Schritt 424, ihren Index um eins auf den Wert 1. Danach prüfen die Slave-Knoten, ohne dass der Master-Knoten einen weiteren Befehl sendet, den DIP1-Anteil des Befehls DI01 (siehe Code), und der Slawe-Knoten 130 sendet das Bestätigungssignal IRQ an den Master-Knoten.
  • In Schritt 424 wird, da noch nicht alle Bits geprüft sind, zu Schritt 613 zurückgekehrt. Dabei werden jetzt der Wert „1”, der durch den aktuellen Index 1 definiert ist, aus dem Kennungsspeicher uid[1] ausgelesen und zudem der Wert „0”, der der durch den in Bezug auf die Suchrichtung nächsten Index 0 definiert ist, aus dem Kennungsspeicher uid[0] ausgelesen.
  • Entsprechend ergibt die Prüfung in Schritt 514, ob das aktuelle Bit den Wert „0” hat, das Ergebnis „nein”, und in Schritt 620, ob das nächste Bit den Wert „0” hat, das Ergebnis „ja”, so dass der Master-Knoten in Schritt 622 den kombinierten Befehl DI10 sendet.
  • In Antwort auf den kombinierten Einschlag-Prüf-Befehl DI10 prüft jeder der Slawe-Knoten 130, 150, 170 gemäß dem Code für den DIE0-Anteil des Befehls DI10, ob der Wert an der durch den Index definierten Stelle uid[1] den Wert „0” aufweist und der Index gleich 0 ist. Da der Index erst nach dem Vergleich dekrementiert wird, ist der Index noch größer als 0 und, da der Slave-Knoten den Wert „1” an der Indexstelle 1 aufweist, bleibt der Slave-Knoten 130 aktiv. Ferner dekrementieren alle drei Slave-Knoten, wie auch der Master-Knoten in Schritt 424, ihren Index um eins auf den Wert 0. Danach prüfen die Slave-Knoten, ohne dass der Master-Knoten einen weiteren Befehl sendet, den DIP0-Anteil des Befehls DI10 (siehe Code), und der Slave-Knoten 130 sendet das Bestätigungssignal IRQ an den Master-Knoten.
  • Dabei kann in Ausführungsbeispielen der Suchlauf schon an dieser Stelle erfolgreich abgeschlossen werden, da ein Einschlagen des letzten Pfades aufgrund der Prüfung der letzten Stelle für die Suche bzw. Verifizierung der Referenzkennung nicht notwendig ist (siehe 5). In diesem Fall kann der Schritt 424 darin bestehen, den Index mit dem Wert 0 zu vergleichen, und die Suche in Schritt 436 erfolgreich abzuschließen, wenn der Index den Wert 0 aufweist, wie dies hier der Fall ist.
  • In einem alternativen Ausführungsbeispiel, kann der Einschlag-Befehl durchgeführt werden, und Schritt 424 in einem darauf folgenden Durchlauf darin bestehen, zu prüfen, ob der Index kleiner als der Wert 0 ist, und die Suche in Schritt 436 erfolgreich abzuschließen, wenn der Index kleiner als der Wert 0 ist.
  • Obwohl zuvor Ausführungsbeispiele mit Kennungen beschrieben wurden, die 4 Stellen aufweisen, können Ausführungsbeispiele für Kennungen beliebiger Länge N bzw. device_id_length eingesetzt werden, wobei jede der Stellen eine Vielzahl M von verschiedenen Werten aufweisen kann. Bei einem binären Kennwort mit M = 2, kann jede der Stellen bzw. Positionen den Wert „0” oder „1” aufweisen.
  • Obwohl zuvor Ausführungsbeispiele mit Kennungen beschrieben wurden, deren Stellen binäre Werte aufweisen, können Ausfüh rungsbeispiele beliebige andere Werte, z. B. dezimale oder hexadezimale Werte aufweisen. Dabei weisen Ausführungsbeispiele, die zum Beispiel dezimale Werte aufweisen, einen Programmcode auf, der zwischen diesen 10 Werten unterscheidet, d. h. z. B. zehn verschiedene Prüfbefehle und Einschlagbefehle aufweisen, für jeden Wert jeweils einen, und entsprechend angepasst ist.
  • Dabei sind die Slave-Knoten beispielsweise ausgebildet, wie bei dem Programmcode für das binäre Ausführungsbeispiel, bei dem entsprechenden DIPx-Befehl zu prüfen, ob der eigene Wert an der durch den Index definierten Stelle der eigenen Kennung mit dem zu prüfenden Wert, der durch den DIPx als „x” definiert ist, übereinstimmt.
  • Dabei sind die Slave-Knoten beispielsweise ausgebildet, im Gegensatz zu dem Programmcode für das binäre Ausführungsbeispiel, bei dem entsprechenden DIEx-Befehl zu prüfen, ob der eigene Wert an der durch den Index definierten Stelle der eigenen Kennung mit dem einzuschlagenden Wert, der durch den DIEx als „x” definiert ist, übereinstimmt, wobei analog zu dem binären Ausführungsbeispiel die Slave-Knoten aktiv bleiben, für die dies zutrifft, während die anderen Slave-Knoten deaktiviert werden.
  • Bei Ausführungsbeispielen, die mehr als zwei Werte pro Stelle aufweisen können, ergibt sich entsprechend beispielsweise ein dezimaler oder hexadezimaler Suchbaum, mit entsprechend zehn oder 16 Pfaden pro Knoten, die für die Suche geprüft werden können. Entsprechend kann sich auch analog zu den Ausführungen über die binären Beispiele eine Mehrzahl an tatsächlichen oder möglichen Abzweigungsknoten und -Pfaden pro Abzweigungsknoten ergeben, die dann gemäß des zweiten oder vierten Ausführungsbeispiels gespeichert werden.
  • Ferner, können, obwohl zuvor Ausführungsbeispiele beschrieben wurden, in denen die Indexierung von der niedrigstwertigen Stelle bzw. Bit mit dem Index 0 beginnt, andere Ausführungsbeispiele auch andere Indexierungen aufweisen, beispielsweise beginnend mit dem Index 0 für die höchstwertige Stelle bzw. Bit, oder eine Suchreihenfolge aufweisen, die von der niedrigstwertigen Stelle zu der höchstwertigen Stelle verläuft.
  • Im Folgenden werden weitere Ausführungsformen beispielhaft für binäre Kennungen beschrieben, ohne diese jedoch auf diese einzuschränken bzw. auf diesen konkreten Beispiele der Befehle einzuschränken.
  • In Anbetracht der vorhergehenden Erläuterungen können Ausführungsbeispiele des Verfahrens ein Verfahren zum Suchen einer Kennung uid oder Teilkennung eines Slave-Knotens 130, 150, 170; 130', 150', 170' in einem Eindraht-Kommunikations-Netz 100 schaffen, wobei das Eindraht-Kommunikations-Netz einen Master-Knoten 110 und einen oder mehrere Slave-Knoten 130, 150, 170 aufweist, die über eine Eindrahtverbindung 102 miteinander verbunden sind, wobei jeder Slave-Knoten einen Speicher aufweist, indem eine mehrstellige Kennung uid gespeichert ist, die eine eindeutige Identifizierung des Slave-Knotens in dem Eindraht-Kommunikationsnetz ermöglicht, wobei jede Stelle einen vorbestimmten Wert aufweist; wobei das Verfahren folgende Schritte aufweist:
    Definieren 412,422 einer Stelle der Kennung uid oder Teilkennung mittels eines Index idptr in dem Master-Knoten und in dem Slave-Knoten oder in einem der mehrere Slave-Knoten;
    Senden 414 eines ersten Prüfbefehls DIP0 von dem Master-Knoten an den Slave-Knoten oder an die mehreren Slave-Knoten, wobei der erste Prüfbefehl an der durch den Index idptr definierten Stelle der Kennung uid oder Teilkennung einen ersten zu prüfenden Wert „0” definiert;
    Vergleichen des ersten zu prüfenden Werts „0” mit einem Wert uid[idptr] an der durch den Index idptr definierten Stelle einer eigenen Kennung uid oder Teilkennung in dem Slave-Knoten oder in den mehreren Slave-Knoten;
    Senden eines Bestätigungssignals IRQ von dem Slave-Knoten oder einem 130, 130' der mehreren Slave-Knoten, wenn der Vergleich ergibt, dass der erste zu prüfende Wert „0” gleich dem Wert uid[idptr] an der durch den Index definierten Stelle der eigenen Kennung oder Teilkennung ist, und der Slave-Knoten oder der eine 130, 130' der mehreren Slave-Knoten einen aktiven Status (active = True) aufweist;
    Senden 420 eines Einschlagbefehls DIE0 von dem Master-Knoten an den Slave-Knoten oder die mehreren Slave-Knoten, wenn der Master-Knoten das Bestätigungssignal IRQ empfängt (416 in Verbindung mit „ja”), wobei der Einschlagbefehl an der durch den Index idptr definierten Stelle der Kennung uid oder Teilkennung einen einzuschlagenden Wert „0” definiert;
    Vergleichen des einzuschlagenden Werts „0” mit einem Wert uid[idptr] an der durch den Index idptr definierten Stelle der eigenen Kennung uid oder Teilkennung in dem Slave-Knoten oder in den mehreren Slave-Knoten;
    Ändern eines eigenen Status des Slave-Knoten oder eines eigenen Status eines 130, 130' der mehreren Slave-Koten von einem aktiven Status in einen inaktiven Status (active=False), wenn der Vergleich ergibt, dass der einzuschlagende Wert „0” nicht gleich dem Wert uid[idptr] an der durch den Index definierten Stelle der eigenen Kennung oder Teilkennung ist; und
    Ändern 422 des Index idptr, um eine Stelle in einer Suchrichtung in dem Master-Knoten und dem Slave-Knoten oder den mehreren Slave-Knoten, wenn der Einschlagbefehl DIE0 gesendet oder empfangen wird.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, dass das Verfahren mit folgenden Schritten beginnt:
    Senden eines Suchstartbefehls DISS durch den Master-Knoten an den Slawe-Knoten oder die mehreren Slawe-Knoten;
    Setzen des Slawe-Knoten oder der mehreren Slawe-Knoten in den aktiven Status (active = True); und
    Initialisieren 412 des Index in dem Master-Knoten und dem Slawe-Knoten oder den mehreren Slawe-Knoten, um mittels des Index eine Startstelle der Kennung oder Teilkennung zu definieren, von der die Suche startet.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, folgende Schritte aufzuweisen:
    Senden eines zweiten Prüfbefehls DIP1 von dem Master-Knoten bei gleichem bzw. unverändertem Index, wobei der zweite Prüfbefehl einen von dem ersten zu prüfenden Wert unterschiedlichen zu prüfenden zweiten Wert „1” definiert, und wobei der zweite Prüfbefehl nach dem ersten Prüfbefehl DIP0 und vor dem Einschlagbefehl DIE0 gesendet wird; und
    Senden des Bestätigungssignals IRQ durch den Slawe-Knoten oder einen der mehreren Slawe-Knoten, wenn der Vergleich ergibt, dass der zweite zu prüfende Wert „1” gleich dem Wert uid[idptr] an der durch den Index definierten Stelle der eigenen Kennung oder Teilkennung ist, und der Slawe-Knoten oder der eine 130, 130' der mehreren Slawe-Knoten einen aktiven Status (active = True) aufweist.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, dass ein zweiter Prüfbefehl DIP1 von dem Master-Knoten nur gesendet wird, wenn der Master-Knoten auf den zuvor gesendeten ersten Prüfbefehl DIP0 kein Bestätigungssignal IRQ empfangen hat.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, dass der Einschlagbefehl DIE0 einen ersten einzuschlagenden Wert „0” definiert, der mit dem ersten zu prüfenden Wert „0” des zuvor gesendeten ersten Prüfbefehls DIP0 übereinstimmt, wenn der Master-Knoten das Bestätigungssignal IRQ auf den zuvor gesendeten ersten Prüfbefehl DIP0 hin empfangen hat.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, dass ein zweiter Prüfbefehl DIP1 von dem Master-Knoten immer gesendet wird.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, dass der Einschlagbefehl DIE0 einen ersten einzuschlagenden Wert „0” definiert, der mit dem ersten zu prüfenden Wert „0” eines vorab gesendeten ersten Prüfbefehls DIP0 übereinstimmt, wenn der Master-Knoten das Bestätigungssignal IRQ auf den ersten Prüfbefehl DIP0 hin empfangen hat, und wobei der Einschlagbefehl DIE1 einen zweiten zu prüfenden Wert „1” definiert, der mit einem zweiten zu prüfenden Wert „1” des vorab gesendeten zweiten Prüfbefehls DIP1 übereinstimmt, wenn der Master-Knoten kein Bestätigungssignal auf den zuvor gesendeten ersten Prüfbefehl DIP0 hin empfangen hat und ein Bestätigungssignal IRQ auf den zuvor gesendeten zweiten Prüfbefehl DIP1 hin empfangen hat.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, dass anstelle des Einschlagbefehls DIE0, DIE1 ein kombinierter Einschlag-Prüf-Befehl DIxx von dem Master-Knoten an den Slawe-Knoten oder an die mehreren Slawe-Knoten gesendet wird, wenn der Master-Knoten das Bestätigungssignal IRQ auf einen zuvor gesendeten ersten oder zweiten Prüfbefehl empfängt, wobei der kombinierte Einschlag-Prüf-Befehl die Wirkung des Einschlagbefehls DIE0, DIE1 und eines anschließenden ersten oder zweiten Prüfbefehls DIP0, DIP1 hat.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, dass ein erster kombinierter Einschlag-Prüf-Befehl DI00 oder ein zweiter kombinierter Einschlag-Prüf-Befehl DI01 gesendet wird, wenn der Master-Knoten das Bestätigungssignal IRQ auf den zuvor gesendeten ersten Prüfbefehl DIP0 empfängt, wobei der erste kombinierte Einschlag-Prüf-Befehl DI00 die Wirkung des Einschlagbefehls DIE0, der einen ersten einzuschlagenden Wert „0” definiert, und eines anschließenden ersten Prüfbefehls DIP0, DIP1 hat, und wobei der zweite kombinierte Einschlag-Prüf-Befehl DI01 die Wirkung des Einschlagbefehls DIE0, der einen ersten einzuschlagenden Wert „0” definiert, und eines anschließenden zweiten Prüfbefehls DIP1 hat.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, dass ein dritter kombinierter Einschlag-Prüf-Befehl DI10 oder ein vierter kombinierter Einschlag-Prüf-Befehl DI11 gesendet wird, wenn der Master-Knoten das Bestätigungssignal IRQ auf den zuvor gesendeten zweiten Prüfbefehl DIP1 empfängt, wobei der dritte kombinierte Einschlag-Prüf-Befehl DI10 die Wirkung des Einschlagbefehls DIE1, der einen zweiten einzuschlagenden Wert „1” definiert, und eines anschließenden ersten Prüfbefehls DIP0, DIP1 hat, und wobei der vierte kombinierte Einschlag-Prüf-Befehl DI11 die Wirkung des Einschlagbefehls DIE1, der einen zweiten einzuschlagenden Wert „1” definiert, und eines anschließenden zweiten Prüfbefehls DIP1 hat.
  • Dabei können Ausführungsbeispiele ferner folgende Schritte aufweisen:
    Senden eines Speicherbefehls DIMM durch den Master-Knoten an den Slave-Knoten oder die mehreren Slave-Knoten, wenn der Master-Knoten ein Bestätigungssignal IRQ auf den ersten Prüfbefehl DIP0 empfangen hat und keinen zweiten Prüfbefehl DIP1 bei gleichem Index gesendet hat und der Index somit eine mögliche Abzweigungsstelle definiert, oder wenn der Master-Knoten ein Bestätigungssignal IRQ auf den ersten Prüfbefehl DIP0 und den zweiten Prüfbefehl DIP1 empfangen hat, und der Index somit eine tatsächliche Abzweigungsstelle definiert, um nach Beendigung der Suche eine weitere Suche von der möglichen oder der tatsächlichen Abzweigungsstelle durchführen zu können;
    Speichern idptr_mem des Index idptr durch den Master-Knoten und den Slave-Knoten oder die mehreren Slave-Knoten, wenn der Speicherbefehl gesendet oder empfangen wird; und
    Speichern active_mem des eigenen Status active durch den Slave-Knoten oder die mehreren Slave-Knoten, wenn der Speicherbefehl empfangen wird.
  • Dabei können Ausführungsbeispiele ferner folgende Schritte aufweisen:
    Senden eines Zurückrufbefehls DIRC durch den Master-Knoten an den Slave-Knoten oder die mehreren Slave-Knoten, wenn die Suche bzw. ein Suchdurchlauf beendet ist, z. B. wenn die letzte Stelle der Kennung gemäß der Suchreihenfolge erreicht ist (idptr < 0);
    Setzen des Index idptr auf den gespeicherten Index idptr_mem durch den Master-Knoten und den Slave-Knoten oder die mehreren Slave-Knoten; und
    Setzen des Status active auf den gespeicherten Status active_mem durch den Slave-Knoten oder die mehreren Slave-Knoten.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, dass der Index und der entsprechende Status einer in Bezug auf die Suchrichtung letzten möglichen oder tatsächlichen Abzweigungsstelle durch den Speicherbefehl DIMM gespeichert und durch den Zurückrufbefehl DIRC zurückgerufen werden.
  • Dabei können Ausführungsbeispiele ferner ausgebildet sein, dass mehrere Indizes und entsprechende eigene Stati möglicher oder tatsächlicher Abzweigungsstellen in Reihenfolge der Suchrichtung durch mehrere Speicherbefehle DIMM gespeichert werden, und entgegen der Suchrichtung durch mehrere Zurückrufbefehle (DIRC) zurückgerufen werden.
  • Dabei kann in alternativen Ausführungsbeispielen der erste Prüf-Befehl auch der Befehl DIP1 und der erste zu prüfenden Wert der wert „1” sein, und entsprechend der zweite Prüfbefehl der Befehl DIP0 sein und der zweite zu prüfenden Wert der Wert „0” sein. Entsprechendes gilt für den Einschlagbefehl DIEx bzw. den zu prüfenden Wert sowie die kombinierten Einschlag-Prüf-Befehle DIxx.
  • Zusammenfassend kann ferner gesagt werden, dass Ausführungsbeispiele es ermöglichen, dass der Master-Knoten die Slave-Knoten mit der Prüfunterstützung bzw. mittels der Prüfbefehle DIPx finden kann, was es wiederum dem Master-Knoten ermöglicht, durch den binären Suchbaum in einem Durchlauf mit oder ohne Wissen der gesuchten Slawe-Kennung durchzulaufen.
  • Der Master-Knoten kann den Index zu jeder Zeit während des Suchdurchlaufs speichern und während der Suche zu den gespeicherten Knoten bzw. Abzweigungsstellen des Suchbaums zurückkehren. Des Weiteren kann der Master-Knoten die Index-Speicher-Funktion verwenden, um eine Gruppe verschiedener Slawe-Knoten zu gruppieren, das heißt, die Slawe-Knoten mit derselben Produktkennung zu gruppieren. Die Bitlänge der Kennung kann einfach auf die gewünschten Anforderungen angepasst werden, da ein Verlängern der Bitlänge die Suchzeit nicht exponential, sondern lediglich linear anwachsen lässt. Ferner kann mittels des Befehls DILC gemischte Kennungslängen unterstützt werden.
  • Ferner wird mittels der kombinierten Einschlag-Prüf-Befehle DIxx die Suche mit einer Minimalanzahl von Befehlen ermöglicht.
  • Ferner zeichnen sich Ausführungsbeispiele dadurch aus, dass sie durch die Prüfmethode bzw. den Suchalgorithmus den nächsten Knoten des Suchbaums vorab anschauen, um eine maximale Effizienz zu erreichen.
  • Ferner zeichnen sich das dritte und das vierte Ausführungsbeispiel dadurch aus, dass eine Indexkennung und ein Aktivitätsstatus zu jeder Zeit während der Suche gespeichert werden kann und der gespeicherte Ort bzw. Knoten mit der entsprechenden gespeicherten Aktivitätsstatus zu gewünschten Zeiten wieder aufgerufen bzw. wieder hergestellt werden kann.
  • Dabei sind Ausführungsbeispiele nicht auf die binäre Suche beschränkt, sondern können pro Stelle eine beliebige Anzahl von Werten aufweisen, beispielsweise Werte gemäß dem Dezimal- oder Hexadezimalsystem.
  • Alternative Ausführungsbeispiele ermöglichen die Suche einer, mehrerer oder aller Kennungen der Slave-Knoten, die an dem Kommunikationsnetz angeschlossen sind.
  • Weitere alternative Ausführungsbeispiele des Verfahrens, des Master-Knotens und/oder des Slave-Knotens führen die verschiedenen Schritte gemäß der zuvor beschriebenen Reihenfolgen oder in beliebiger anderer Reihenfolge durch, z. B. können mehrere DIEx Befehle hintereinander gesendet werden, wenn Teile der Kennung oder die gesamte Kennung bekannt sind.
  • Alternative Ausführungsbeispiele können zur Suche einer Teilkennung ausgebildet sein, die Suche nicht erst nach dem zuvor beschriebenen Ende-Kriterium, z. B. idptr < 0 für eine Vollkennung, zu beenden, sondern beispielsweise gemäß einem anderen Ende-Kriterium, z. B. idptr < 2, wenn eine Suche in dem zuvor beschriebenen Beispiel mit einer Kennungslänge von N = 4 nach den ersten zwei Stellen beendet werden soll, also die zu suchende Teilkennung oder der Suchzweig die ersten 2 Stellen umfasst.
  • Ferner können Ausführungsbeispiele ausgebildet sein, in einem Kommunikationsnetz mit Slawe-Knoten unterschiedlicher Kennungslänge, also einer unterschiedlichen Anzahl von Stellen N oder device_id_length verwendet zu werden, und um zu prüfen, ob ein Slawe-Knoten mit einer geringeren Kennungslänge als einer durch den Master-Knoten suchbaren Kennungslänge an dem Kommunikationsnetz angeschlossen ist, oder, ob dessen kürzere Kennung gefunden ist.
  • Weist das Kommunikationsnetz beispielsweise einen Slave-Knoten mit N1 = 4 Stellen und einen zweiten Slawe-Knoten mit N2 = 6 Stellen auf, so setzt der erste Slawe-Knoten mit der ersten Kennung uid1 seinen Index idptr1 zu Beginn der Suche auf idptr1 = 3 und sowohl der zweite Slawe-Knoten mit der zweiten Kennung uid2 als auch der Master-Knoten ihren Index idptr2 auf idptr2 = 5. Unabhängig von den unterschiedlichen Indizes definieren gemäß der zuvor erläuterten Ausführungsbeispiele, die die Suche mit der höchstwertigen Stelle der Kennung beginnen und mit der niedrigstwertigen Stelle beenden, idptr1 = 3 und idptr2 = 5 beide die höchstwertige zulässige Stelle der jeweiligen Kennung, idptr1 = 2 und idptr2 = 4 beide die zweithöchste zulässige Stelle der jeweiligen Kennung, idptr1 = 1 und idptr2 = 3 beide die dritthöchste zulässige Stelle der jeweiligen Kennung, und idptr1 = 0 und idptr2 = 2 beide die vierthöchste zulässige Stelle der jeweiligen Kennung, wobei die vierthöchste Stelle für den ersten Slawe-Knoten gleichzeitig auch die niedrigstwertige zulässige und kleinste zulässige Stelle ist. Eine weitere Reduzierung der Indizes aufgrund eines weiteren Einschlagbefehls DIEx führt dazu, dass idptr1 = ”–1” ist, also kleiner als der kleinste für den ersten Slawe-Knoten zulässige Index, nämlich „0”, ist. Hat der erste Slawe-Knoten beispielsweise die Kennung „0010” (siehe Slave-Knoten 130 in 2), der zweite Slawe-Knoten die Kennung „011100”, und hat der Master-Knoten den Suchpfad „0010” beschritten, so ist der zweite Slawe-Knoten seit dem zweiten Einschlagbefehl DIE0 224 (siehe 2) inaktiv, und der ers te Slave-Knoten nach dem Empfang des vierten Einschlagbefehls DIE0 244 (siehe 2) auch inaktiv. Der Master-Knoten ist dann beispielsweise ausgebildet, um bei unverändertem Index idptr2 = 1 den ersten Prüfbefehl DIP0 und den zweiten Prüfbefehl zu senden, um zu prüfen, ob ein Slave-Knoten mit der Kennung bzw. Teilkennung „0010x” vorhanden ist. In diesem Fall, ist ein Slave-Knoten mit dieser Teilkennung jedoch nicht vorhanden, und der Master-Knoten erhält für keinen der beiden Prüfbefehle ein Bestätigungssignal IRQ. Der Master-Knoten ist dann beispielsweise ausgebildet, um einen Längenprüfbefehl DILC zu senden, und so zu prüfen, ob ein Slave-Knoten mit einer Kennungslänge N = 4 vorliegt. Der erste Slave-Knoten prüft nach Erhalt des Längenprüfbefehls, ob der Index kleiner als der kleinste zulässige Index „0” ist (siehe Beispielscode für Slave-Knoten für Befehl DILC: idptr(0). Dies ist der Fall. Der erste Slave-Knoten sendet das Bestätigungssignal IRQ. Der Master-Knoten erkennt somit, dass eine Kennung „0010” des Slave-Knoten 130, 130' mit der kürzeren Kennung, also der Kennungslänge N = 4, gefunden worden ist.
  • Ausführungsbeispiele des Master-Knoten können daher ausgebildet sein, zu erkennen, dass ein Slave-Knoten mit kürzerer Kennungslänge gefunden wurde, und beispielsweise einen Suchdurchlauf zu beenden und die Kennung zu speichern, wenn der Master-Knoten auf alle möglichen Prüfbefehle DIPx hin kein Bestätigungssignal erhalten hat und auf einen Längensuchbefehl jedoch ein Bestätigungssignal erhält. Bei der binären Suche sind zwei Werte und damit zwei unterschiedliche Prüfbefehle DIP0, DIP1 möglich, bei der hexadezimalen Suche sind 16 unterschiedliche Werte möglich, und damit 16 unterschiedliche Prüfbefehle DIP”0” bis DIP”15” möglich.
  • In anderen Worten können Ausführungsbeispiele des Verfahrens oder des Master-Knotens ferner ausgebildet sein, um eine Kennung mit einer ersten Anzahl N1 = 6 von Stellen zu suchen, wobei der Slave-Knoten oder einer der mehreren Slave-Knoten eine Kennung mit einer zweiten Anzahl N2 = 4 von Stellen auf weist, die geringer ist als die erste Anzahl von Stellen, wobei ein größter zulässiger Index „3” eine höchstwertige Stelle uid[3] und ein kleinster zulässiger Index „0” eine niedrigstwertige Stelle uid[0] der Kennung uid des Slave-Knoten oder des einen der mehreren Slave-Knoten definiert, und der Master-Knoten erkennt, dass die Kennung des Slave-Knoten oder des einen der mehreren Slave-Knoten gefunden wurde, wenn der Master-Knoten alle möglichen Prüfbefehle DIPx, bei gleichem Index gesendet hat und auf keinen der Prüfbefehle das Bestätigungssignal IRQ empfangen hat, und nach einem Senden eines Längenprüfbefehls DILC das Bestätigungssignal IRQ von dem Slave-Knoten oder dem einen der Slave-Knoten empfängt. Dabei können Ausführungsbeispiele des Slave-Knoten ausgebildet sein, um das Bestätigungssignal IRQ zu senden, wenn eine durch den Empfang des Längenprüfbefehls DILC initiierte Prüfung, z. B. idptr1 < 0, des Index idptr1 ergibt, dass der Index größer als der höchstwertige zulässige Index „3” oder kleiner als der niedrigstwertige zulässige Index „0” der Kennung des Slave-Knotens ist. In dem oben beschriebenen Fall ist der Index „–1” kleiner als der kleinste zulässige Index „0”. In anderen Worten, der Index „–1” ist kein zulässiger Index. Der erste Slave-Knoten sendet also das Bestätigungssignal.
  • Ausführungsbeispiele des Verfahrens, des Master-Knotens und des Slave-Knotens führen die Suche nach der Kennung oder Teilkennung eines Slave-Knotens Stelle für Stelle zeitlich nacheinander, also seriell, durch, und sind so insbesondere für Einzeldraht-Kommunikationsnetze geeignet, die nur einen Draht 102 für die Übermittlung sowohl der Befehle, z. B. DIPx, DIEx, als auch für die Bestätigungssignale IRQ oder andere Daten aufweisen, und beispielsweise nicht mehrere Drähte für eine parallele Übermittlung mehrerer Stellen der Kennung oder Teilkennung aufweisen.
  • Ferner können Ausführungsbeispiele sowohl für Software als auch für Hardware angewendet werden.
  • Abhängig von den Gegebenheiten können die Ausführungsbeispiele der erfindungsgemäßen Verfahren in Hardware oder in Software implementiert werden. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette, CD oder einer DVD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken, dass eines der Ausführungsbeispiele der erfindungsgemäßen Verfahren ausgeführt wird. Allgemein bestehen die Ausführungsbeispiele der vorliegenden Erfindung somit in Software-Programm-Produkten, bzw. Computer-Programm-Produkten bzw. Programm-Produkten mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung eines der Ausführungsbeispiele der erfindungsgemäßen Verfahren, in eines der Software-Programmprodukte auf einem Rechner oder einem Prozessor abläuft. In anderen Worten ausgedrückt, kann ein Ausführungsbeispiel der vorliegenden Erfindung somit also ein Computer-Programm bzw. Software-Programm bzw. Programm mit einem Programmcode zur Durchführung eines Ausführungsbeispiels eines erfindungsgemäßen Verfahrens realisiert werden, wenn das Programm auf einem Prozessor abläuft.

Claims (20)

  1. Verfahren zum Suchen einer Kennung (uid) oder Teilkennung eines Slawe-Knotens (130, 150, 170; 130', 150', 170') in einem Kommunikationsnetz (100), wobei das Kommunikationsnetz einen Master-Knoten (110) und einen oder mehrere Slawe-Knoten (130, 150, 170) aufweist, die über eine Kommunikationsverbindung (102) miteinander verbunden sind, wobei jeder Slawe-Knoten einen Speicher aufweist, indem eine mehrstellige Kennung (uid) gespeichert ist, die eine eindeutige Identifizierung des Slawe-Knotens in dem Kommunikationsnetz ermöglicht, wobei jede Stelle einen vorbestimmten Wert aufweist; wobei das Verfahren folgende Schritte aufweist: Definieren (412, 422) einer Stelle der Kennung (uid) oder Teilkennung mittels eines Index (idptr) in dem Master-Knoten und in dem Slawe-Knoten oder in einem der mehrere Slawe-Knoten; Senden (414) eines ersten Prüfbefehls (DIP0; DIPx) von dem Master-Knoten an den Slawe-Knoten oder an die mehreren Slawe-Knoten, wobei der erste Prüfbefehl an der durch den Index (idptr) definierten Stelle der Kennung (uid) oder Teilkennung einen ersten zu prüfenden Wert („0”) definiert; Vergleichen des ersten zu prüfenden Werts („0”) mit einem Wert (uid[idptr]) an der durch den Index (idptr) definierten Stelle einer eigenen Kennung (uid) oder Teilkennung in dem Slawe-Knoten oder in den mehreren Slawe-Knoten; Senden eines Bestätigungssignals (IRQ) von dem Slave-Knoten oder einem (130, 130') der mehreren Slave-Knoten, wenn der Vergleich ergibt, dass der erste zu prüfende Wert („0”) gleich dem Wert (uid[idptr]) an der durch den Index definierten Stelle der eigenen Kennung oder Teilkennung ist, und der Slave-Knoten oder der eine (130, 130') der mehreren Slave-Knoten einen aktiven Status (active = True) aufweist; Senden (416, 420) eines Einschlagbefehls (DIE0; DIEx) von dem Master-Knoten an den Slave-Knoten oder die mehreren Slave-Knoten, wenn der Master-Knoten das Bestätigungssignal (IRQ) empfängt, wobei der Einschlagbefehl an der durch den Index (idptr) definierten Stelle der Kennung (uid) oder Teilkennung einen einzuschlagenden Wert („0”) definiert; Vergleichen des einzuschlagenden Werts („0”) mit einem Wert (uid[idptr]) an der durch den Index (idptr) definierten Stelle der eigenen Kennung (uid) oder Teilkennung in dem Slave-Knoten oder in den mehreren Slave-Knoten; lindern eines eigenen Status des Slave-Knoten oder eines eigenen Status eines (130, 130') der mehreren Slave-Knoten von einem aktiven Status in einen inaktiven Status (active = False), wenn der Vergleich ergibt, dass der einzuschlagende Wert („0”) nicht gleich dem Wert (uid[idptr]) an der durch den Index definierten Stelle der eigenen Kennung oder Teilkennung ist; und lindern (422) des Index (idptr), um eine Stelle in einer Suchrichtung in dem Master-Knoten und dem Slave-Knoten oder den mehreren Slave-Knoten, wenn der Einschlagbefehl (DIE0; DIEx) gesendet oder empfangen wird.
  2. Verfahren nach Anspruch 1, wobei das Kommunikationsnetz ein Eindraht-Kommunikationsnetz (100) mit einem Draht (102) als Kommunikationsverbindung ist, und der Master-Knoten (110) und der eine oder die mehreren Slave- Knoten (130, 150, 170) über den Draht (102) miteinander verbunden sind.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Verfahren mit folgenden Schritten beginnt: Senden eines Suchstartbefehls (DISS) durch den Master-Knoten an den Slave-Knoten oder die mehreren Slave-Knoten; Setzen des Slave-Knoten oder der mehreren Slave-Knoten in den aktiven Status (active = True); und Initialisieren (412) des Index in dem Master-Knoten und dem Slave-Knoten oder den mehreren Slave-Knoten, um mittels des Index eine Startstelle der Kennung oder Teilkennung zu definieren, von der die Suche startet.
  4. Verfahren nach einem der Ansprüche 1 bis 3, mit: Senden eines zweiten Prüfbefehls (DIP1) von dem Master-Knoten, wobei der zweite Prüfbefehl einen zweiten zu prüfenden Wert („1”) definiert, und wobei der zweite Prüfbefehl nach dem ersten Prüfbefehl (DIP0) und vor dem Einschlagbefehl (DIE0) gesendet wird; und Senden des Bestätigungssignals (IRQ) durch den Slave-Knoten oder einen der mehreren Slave-Knoten, wenn der Vergleich ergibt, dass der zweite zu prüfende Wert („1”) gleich dem Wert (uid[idptr]) an der durch den Index definierten Stelle der eigenen Kennung oder Teilkennung ist, und der Slave-Knoten oder der eine (130, 130') der mehreren Slave-Knoten einen aktiven Status (active = True) aufweist.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei ein zweiter Prüfbefehl (DIP1) von dem Master-Knoten nur ge sendet wird, wenn der Master-Knoten auf den zuvor gesendeten ersten Prüfbefehl (DIP0) kein Bestätigungssignal (IRQ) empfangen hat.
  6. Verfahren nach einem der Ansprüche 1 bis 5, wobei der Einschlagbefehl (DIE0) einen ersten einzuschlagenden Wert („0”) definiert, der mit dem ersten zu prüfenden Wert („0”) des zuvor gesendeten ersten Prüfbefehls (DIP0) übereinstimmt, wenn der Master-Knoten das Bestätigungssignal (IRQ) auf den zuvor gesendeten ersten Prüfbefehl (DIP0) hin empfangen hat.
  7. Verfahren nach einem der Ansprüche 1 bis 4, wobei ein zweiter Prüfbefehl (DIP1) von dem Master-Knoten immer gesendet wird.
  8. Verfahren nach Anspruch 7, wobei der Einschlagbefehl (DIE0) einen ersten einzuschlagenden Wert („0”) definiert, der mit dem ersten zu prüfenden Wert („0”) eines vorab gesendeten ersten Prüfbefehls (DIP0) übereinstimmt, wenn der Master-Knoten das Bestätigungssignal (IRQ) auf den ersten Prüfbefehl (DIP0) hin empfangen hat, und wobei der Einschlagbefehl (DIE1) einen zweiten zu prüfenden Wert („1”) definiert, der mit einem zweiten zu prüfenden Wert („1”) des vorab gesendeten zweiten Prüfbefehls (DIP1) übereinstimmt, wenn der Master-Knoten kein Bestätigungssignal auf den zuvor gesendeten ersten Prüfbefehl (DIP0) hin empfangen hat und ein Bestätigungssignal (IRQ) auf den zuvor gesendeten zweiten Prüfbefehl (DIP1) hin empfangen hat.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei anstelle des Einschlagbefehls (DIE0, DIE1) ein kombinierter Einschlag-Prüf-Befehl (DIxx) von dem Master-Knoten an den Slave-Knoten oder an die mehreren Slave-Knoten gesendet wird, wenn der Master-Knoten das Bestätigungssignal (IRQ) auf einen zuvor gesendeten ersten oder zweiten Prüfbefehl empfängt, wobei der kombinierte Einschlag-Prüf-Befehl die Wirkung des Einschlagbefehls (DIE0, DIE1) und eines anschließenden ersten oder zweiten Prüfbefehls (DIP0, DIP1) hat.
  10. Verfahren nach Anspruch 9, wobei ein erster kombinierter Einschlag-Prüf-Befehl (DI00) oder ein zweiter kombinierter Einschlag-Prüf-Befehl (DI01) gesendet wird, wenn der Master-Knoten das Bestätigungssignal (IRQ) auf den zuvor gesendeten ersten Prüfbefehl (DIP0) empfängt, wobei der erste kombinierte Einschlag-Prüf-Befehl (DI00) die Wirkung des Einschlagbefehls (DIE1), der einen ersten einzuschlagenden Wert („0”) definiert, und eines anschließenden ersten Prüfbefehls (DIP0, DIP1) hat, und wobei der zweite kombinierte Einschlag-Prüf-Befehl (DI01) die Wirkung des Einschlagbefehls (DIE0), der einen ersten einzuschlagenden Wert („0”) definiert, und eines anschließenden zweiten Prüfbefehls (DIP1) hat.
  11. Verfahren nach Anspruch 10, wobei ein dritter kombinierter Einschlag-Prüf-Befehl (DI10) oder ein vierter kombinierter Einschlag-Prüf-Befehl (DI11) gesendet wird, wenn der Master-Knoten das Bestätigungssignal (IRQ) auf den zuvor gesendeten zweiten Prüfbefehl (DIP1) empfängt, wobei der dritte kombinierte Einschlag-Prüf-Befehl (DI10) die Wirkung des Einschlagbefehls (DIE0), der einen zweiten einzuschlagenden Wert („1”) definiert, und eines anschließenden ersten Prüfbefehls (DIP0, DIP1) hat, und wobei der vierte kombinierte Einschlag-Prüf-Befehl (DI11) die Wirkung des Einschlagbefehls (DIE1), der einen zweiten einzuschlagenden Wert („1”) definiert, und eines anschließenden zweiten Prüfbefehls (DIP1) hat.
  12. Verfahren nach einem der Ansprüche 1 bis 11, mit: Senden eines Speicherbefehls (DIMM) durch den Master-Knoten an den Slawe-Knoten oder die mehreren Slave-Knoten, wenn der Master-Knoten ein Bestätigungssignal (IRQ) auf den ersten Prüfbefehl (DIP0) empfangen hat und keinen zweiten Prüfbefehl (DIP1) bei gleichem Index gesendet hat und der Index somit eine mögliche Abzweigungsstelle definiert, oder wenn der Master-Knoten ein Bestätigungssignal (IRQ) auf den ersten Prüfbefehl (DIP0) und den zweiten Prüfbefehl (DIP1) empfangen hat, und der Index somit eine tatsächliche Abzweigungsstelle definiert, um nach Beendigung der Suche eine weitere Suche von der möglichen oder der tatsächlichen Abzweigungsstelle durchführen zu können; Speichern (idptr_mem) des Index (idptr) durch den Master-Knoten und den Slawe-Knoten oder die mehreren Slawe-Knoten, wenn der Speicherbefehl gesendet oder empfangen wird; und Speichern (active_mem) des eigenen Status (active) durch den Slawe-Knoten oder die mehreren Slawe-Knoten, wenn der Speicherbefehl empfangen wird.
  13. Verfahren nach Anspruch 12, mit: Senden eines Zurückrufbefehls (DIRC) durch den Master-Knoten an den Slawe-Knoten oder die mehreren Slave-Knoten, wenn die Suche der Kennung oder Teilkennung beendet (idptr < 0) ist; Setzen des Index (idptr) auf den gespeicherten Index (idptr_mem) durch den Master-Knoten und den Slave-Knoten oder die mehreren Slawe-Knoten; und Setzen des Status (active) auf den gespeicherten Status (active_mem) durch den Slawe-Knoten oder die mehreren Slawe-Knoten.
  14. Verfahren nach Anspruch 12 oder 13, wobei der Index und der entsprechende Status einer in Bezug auf die Suchrichtung letzten möglichen oder tatsächlichen Abzweigungsstelle durch den Speicherbefehl (DIMM) gespeichert und durch den Zurückrufbefehl (DIRC) zurückgerufen werden.
  15. Verfahren nach einem der Ansprüche 12 bis 14, wobei mehrere Indices und entsprechende eigene Stati möglicher oder tatsächlicher Abzweigungsstellen in Reihenfolge der Suchrichtung durch mehrere Speicherbefehle (DIMM) gespeichert werden, und entgegen der Suchrichtung durch mehrere Zurückrufbefehle (DIRC) zurückgerufen werden.
  16. Verfahren nach einem der Ansprüche 1 bis 15, wobei der Master-Knoten ausgebildet ist, um eine Kennung mit einer ersten Anzahl von Stellen zu suchen, und der Slave-Knoten oder einer der mehreren Slawe-Knoten eine Kennung mit einer zweiten Zahl von Stellen aufweist, die geringer ist als die erste Anzahl von Stellen, wobei ein größter zulässiger Index eine höchstwertige Stelle und ein kleinster zulässiger Index eine niedrigstwertige Stelle der Kennung des Slawe-Knoten oder des einen der mehreren Slawe-Knoten definiert; mit folgendem Schritt: Erkennen durch den Master-Knoten, dass die Kennung des Slawe-Knoten oder des einen der mehreren Slawe-Knoten gefunden wurde, wenn der Master-Knoten alle Prüfbefehle bei gleichem Index gesendet hat und auf keinen der Prüfbefehle das Bestätigungssignal (IRQ) empfangen hat, und nach einem Senden eines Längenprüfbefehls (DILC) das Bestätigungssignal von dem Slawe-Knoten oder dem einen der Slawe-Knoten empfängt.
  17. Master-Knoten (110, 110') für ein Kommunikationsnetz (100), wobei das Kommunikationsnetz eine Kommunikationsverbindung (102), einen Master-Knoten (110, 110') und einen oder mehrere Slawe-Knoten (130, 150, 170; 130', 150', 170') aufweisen kann, die miteinander über die Kommunikationsverbindung verbunden sind, und jeder der Slawe-Knoten einen Speicher aufweist, indem eine mehrstellige Kennung (uid) gespeichert ist, die eine eindeutige Identifizierung des Slawe-Knotens in dem Kommunikationsnetz ermöglicht, wobei jede Stelle eine vorbestimmten Wert aufweist; und wobei der Master-Knoten folgenden Merkmale aufweist: einen Sender (112), der mit der Kommunikationsverbindung verbindbar ist; eine Prozesseinheit (116) zum Suchen einer Kennung (uid) oder Teilkennung eines Slawe-Knotens, wobei die Prozesseinheit ausgebildet ist, um für die Suche mittels eines Index (idptr) eine Stelle der Kennung (uid) zu definieren, und um den Sender (112) zu steuern, um einen ersten Prüfbefehl (DIP0) zu senden, der an der durch den Index (idptr) definierten Stelle der Kennung (uid) oder Teilkennung einen ersten zu prüfenden Wert („0”) definiert, und um den Sender zu steuern, einen Einschlagbefehl (DIE0) zu senden, der an der durch den Index (idptr) definierten Stelle der Kennung (uid) oder Teilkennung einen einzuschlagenden Wert („0”) definiert, wenn der Master-Knoten ein Bestätigungssignal (IRQ) empfängt, wobei die Prozesseinheit ausgebildet ist, um den Index (idptr) um eine Stelle in einer Suchrichtung zu ändern, wenn die Prozesseinheit den Sender steuert, den Ein schlagbefehl (DIE0) zu senden, und den Index (idptr) nicht zu ändern, wenn die Prozesseinheit den Sender steuert, den Prüfbefehl (DIE0) zu senden.
  18. Master-Knoten (110, 110') nach Anspruch 17, wobei das Kommunikationsnetz ein Eindraht-Kommunikationsnetz (100) mit einem Draht (102) als Kommunikationsverbindung ist, und der Sender (112) des Master-Knotens mit dem Draht verbindbar sind.
  19. Slawe-Knoten (130, 150, 170; 130', 150', 170') für ein Kommunikationsnetz (100), wobei das Kommunikationsnetz eine Kommunikationsverbindung (102), einen Master-Knoten (110, 110') und einen oder mehrere Slawe-Knoten (130, 150, 170) aufweisen kann, die mit dem Draht verbunden sind, und jeder der Slawe-Knoten einen Speicher aufweist, indem eine mehrstellige Kennung (uid) gespeichert ist, die eine eindeutige Identifizierung des Slawe-Knotens ermöglicht, wobei jede Stelle einen vorbestimmten Wert aufweist, und wobei der Slawe-Knoten folgende Merkmale aufweist: einen Empfänger (134), der mit der Kommunikationsverbindung verbindbar ist; einen Sender (132), der mit dem Draht koppelbar ist; und eine Prozesseinheit, die ausgebildet ist, um für eine Suche einer Kennung oder Teilkennung eines Slave-Knotens, mittels eines Index (idptr) eine Stelle in einer eigenen Kennung (uid) zu definieren, wobei der Empfänger ausgebildet ist, um einen ersten Prüfbefehl (DIP0) zu empfangen, der an der durch den Index (idptr) definierten Stelle der eigenen Kennung (uid) oder Teilkennung einen für die Suche zu prüfenden Wert („0”) definiert, und der Empfänger ausgebildet ist, um einen Einschlagbefehl (DIE0,) zu empfangen, der an der durch den Index (uid) definierten Stelle der eigenen Kennung (uid) oder Teilkennung einen für die Suche einzuschlagenden Wert („0”) definiert; wobei die Prozesseinheit ausgebildet ist, den Sender zu steuern, um ein Bestätigungssignal (IRQ) zu senden, wenn der Empfänger den ersten Prüfbefehl (DIP0) empfängt und der zu prüfende Wert („0”) gleich dem Wert (uid[idptr]) an der durch den Index (idptr) definierten Stelle der eigenen Kennung (uid) ist, und der Slave-Knoten einen aktiven Status (active = True) aufweist, und wobei die Prozesseinheit (136) ausgebildet, um den Index (idptr) um eine Stelle in eine Suchrichtung zu ändern, wenn der Empfänger den Einschlagbefehl (DIE0) empfängt und der einzuschlagende Wert („0”) gleich einem Wert (uid[idptr]) an der durch den Index (idptr) definierten Stelle der eigenen Kennung (uid) oder Teilkennung ist, und den Index (idptr) nicht zu ändern, wenn der Empfänger den ersten Prüfbefehl (DIP0) empfängt.
  20. Slawe-Knoten (130, 130') nach Anspruch 19, wobei das Kommunikationsnetz ein Eindraht-Kommunikationsnetz (100) mit einem Draht (102) als Kommunikationsverbindung ist, und der Sender (132) und der Empfänger (134) des Slawe-Knotens mit dem Draht verbindbar sind.
DE102008059204A 2008-11-27 2008-11-27 Verfahren zum Suchen eines Slave-Knotens in einem Kommunikationsnetz, Master-Knoten und Slave-Knoten für ein Kommunikationsnetz Expired - Fee Related DE102008059204B9 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102008059204A DE102008059204B9 (de) 2008-11-27 2008-11-27 Verfahren zum Suchen eines Slave-Knotens in einem Kommunikationsnetz, Master-Knoten und Slave-Knoten für ein Kommunikationsnetz
US12/626,539 US8099469B2 (en) 2008-11-27 2009-11-25 Master nodes and slave nodes for a communication network, and methods thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102008059204A DE102008059204B9 (de) 2008-11-27 2008-11-27 Verfahren zum Suchen eines Slave-Knotens in einem Kommunikationsnetz, Master-Knoten und Slave-Knoten für ein Kommunikationsnetz

Publications (3)

Publication Number Publication Date
DE102008059204A1 true DE102008059204A1 (de) 2010-06-10
DE102008059204B4 DE102008059204B4 (de) 2010-10-07
DE102008059204B9 DE102008059204B9 (de) 2011-05-05

Family

ID=42145354

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102008059204A Expired - Fee Related DE102008059204B9 (de) 2008-11-27 2008-11-27 Verfahren zum Suchen eines Slave-Knotens in einem Kommunikationsnetz, Master-Knoten und Slave-Knoten für ein Kommunikationsnetz

Country Status (2)

Country Link
US (1) US8099469B2 (de)
DE (1) DE102008059204B9 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9083762B2 (en) * 2010-05-28 2015-07-14 Greg Saunders System and method for providing hybrid on demand services to a work unit
US9319101B2 (en) 2012-09-28 2016-04-19 Siemens Industry, Inc. System and method for ground fault detection in a transformer isolated communication channel of a network device
US9013980B2 (en) * 2012-09-28 2015-04-21 Siemens Industry, Inc. System and method for fail-safe communication across a compromised communication channel of a network device
TWI486965B (zh) * 2012-10-03 2015-06-01 Pixart Imaging Inc 使用於存取裝置與控制裝置之間之一傳輸埠的通訊方法以及存取裝置
US9921981B2 (en) 2013-08-24 2018-03-20 Qualcomm Incorporated Method to minimize the number of IRQ lines from peripherals to one wire
EP3055780A1 (de) 2013-10-09 2016-08-17 Qualcomm Incorporated Slave-identifikationskennung und hot-plug-kapazität über einen ccie-bus
JP6299374B2 (ja) * 2014-04-21 2018-03-28 富士通株式会社 処理連携方法,処理連携プログラム及び処理連携システム
JP6524720B2 (ja) * 2015-03-06 2019-06-05 オムロン株式会社 無線機
EP3413517A1 (de) * 2017-06-06 2018-12-12 Delphi France SAS Verfahren zur bestimmung von slave-einheiten, die in einem lokalen verbindungsnetzwerk verbunden sind
CN108919762B (zh) * 2018-07-06 2021-05-25 东莞市李群自动化技术有限公司 基于工业以太网的控制方法及装置
KR20210012439A (ko) * 2019-07-25 2021-02-03 삼성전자주식회사 마스터 지능 소자 및 이의 제어 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4730251A (en) * 1985-10-28 1988-03-08 International Business Machines Corporation Automatic I/O address assignment

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3921744A1 (de) 1989-07-01 1991-01-03 Bayerische Motoren Werke Ag Kommunikationsverfahren fuer einen einleitungs-datenbus von kraftfahrzeugen
US5619066A (en) 1990-05-15 1997-04-08 Dallas Semiconductor Corporation Memory for an electronic token
FR2776094B1 (fr) * 1998-03-12 2002-09-06 Commissariat Energie Atomique Procede et systeme de lecture multiple d'un ensemble d'etiquettes portant des codes d'identification distincts
JP4565793B2 (ja) * 1999-12-10 2010-10-20 エスエイテック・グループ・エー・ビー・リミテッド・ライアビリティ・カンパニー 最長一致アドレスルックアップのための方法および装置
US7099970B1 (en) * 2001-04-03 2006-08-29 Electronic Label Technology, Inc. Apparatus and method to enhance a one-wire bus
US7167856B2 (en) * 2001-05-15 2007-01-23 Jonathan Keir Lawder Method of storing and retrieving multi-dimensional data using the hilbert curve
US6988667B2 (en) * 2001-05-31 2006-01-24 Alien Technology Corporation Methods and apparatuses to identify devices
US7346009B2 (en) * 2002-09-30 2008-03-18 Mosaid Technologies, Inc. Dense mode coding scheme
US7181557B1 (en) * 2003-09-15 2007-02-20 National Semiconductor Corporation Single wire bus for connecting devices and methods of operating the same
US20050259609A1 (en) 2004-05-20 2005-11-24 Hansquine David W Single wire bus interface
JP5220483B2 (ja) * 2008-06-06 2013-06-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 木構造のデータに対する集約計算を行うコンピュータ・システム、並びにその方法及びコンピュータ・プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4730251A (en) * 1985-10-28 1988-03-08 International Business Machines Corporation Automatic I/O address assignment

Also Published As

Publication number Publication date
DE102008059204B4 (de) 2010-10-07
DE102008059204B9 (de) 2011-05-05
US8099469B2 (en) 2012-01-17
US20100131610A1 (en) 2010-05-27

Similar Documents

Publication Publication Date Title
DE102008059204B4 (de) Verfahren zum Suchen eines Slave-Knotens in einem Kommunikationsnetz, Master-Knoten und Slave-Knoten für ein Kommunikationsnetz
EP2882145B1 (de) Verfahren und Filteranordnung zum Speichern von Informationen über einen seriellen Datenbus eines Kommunikationsnetzwerks eingehender Nachrichten in einem Teilnehmer des Netzwerks
EP3669500B1 (de) Verfahren zum betreiben einer sensoranordnung in einem kraftfahrzeug auf basis eines dsi-protokolls
EP2090031B1 (de) Verfahren und anordnung zur kommunikation auf einem lin-bus
DE102014111962B4 (de) Kalibrieren einer elektronischen Steuerungseinheit eines Fahrzeugs
DE2139731A1 (de) Anordnung und Verfahren zur Code Um Setzung mit einem Assoziativ Speicher
WO2006069762A1 (de) Verfahren zur konfiguration von feldgeräten
EP0586715B1 (de) Informationsübertragungsverfahren zur Übertragung digitaler Informationen
WO2006128400A1 (de) Verfahren zur übertragung von daten zur steuerung einer hgüanlage
DE3501194C2 (de) Verfahren und Vorrichtung zum Datenaustausch zwischen Mikroprozessoren
WO2006069763A1 (de) Verfahren zur konfiguration von feldgeräten
EP3669527B1 (de) Verfahren zum betreiben einer sensoranordnung in einem kraftfahrzeug auf basis eines dsi-protokolls
DE10322885A1 (de) Verfahren zum Organisieren von Datenpaketen
EP1139603A1 (de) Verfahren und Vorrichtung zur Analyse von Daten
DE1462688B2 (de) Einrichtung zur adressierung von empfangsstationen
DE10038783A1 (de) Bussystem und Verfahren zur automatischen Adreßvergabe
EP2283426B1 (de) Verfahren und vorrichtung zur korrektur von digital übertragenen informationen
DE19645057C2 (de) Vorrichtung zur Selektion von Adressenwörtern mittels Demultiplex-Decodierung
DE102009053753A1 (de) Verfahren zum Ermitteln der Ursache eines Fehlers an einem Kraftfahrzeug
DE102020213893A1 (de) Verfahren zur Erkennung eines unerlaubten physischen Zugriffs auf ein Bussystem
EP1680895B1 (de) Anlage zum übertragen von daten in einem seriellen, bidirektionalen bus
DE10333888B3 (de) Verfahren zum Steuern eines Datenaustauschs
DE60220669T3 (de) System und verfahren zum vorladen einer bussteuerung mit einem befehlsplan
EP3257232B1 (de) Verfahren zur nutzung eines steuergerätes in unterschiedlichen datenübertragungssystemen, steuergerät und datenübertragungssystem zur durchführung eines derartigen verfahrens
DE102020206326A1 (de) Verfahren zum Betreiben einer Recheneinheit und Recheneinheit

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8397 Reprint of erroneous patent document
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee