DE112016007522T5 - Fault tolerant group on a distributed network - Google Patents

Fault tolerant group on a distributed network Download PDF

Info

Publication number
DE112016007522T5
DE112016007522T5 DE112016007522.7T DE112016007522T DE112016007522T5 DE 112016007522 T5 DE112016007522 T5 DE 112016007522T5 DE 112016007522 T DE112016007522 T DE 112016007522T DE 112016007522 T5 DE112016007522 T5 DE 112016007522T5
Authority
DE
Germany
Prior art keywords
health status
node
nodes
messages
status message
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.)
Withdrawn
Application number
DE112016007522.7T
Other languages
German (de)
Inventor
Samuel Beilin
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.)
Charles Stark Draper Laboratory Inc
Original Assignee
Charles Stark Draper Laboratory Inc
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 Charles Stark Draper Laboratory Inc filed Critical Charles Stark Draper Laboratory Inc
Publication of DE112016007522T5 publication Critical patent/DE112016007522T5/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • 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
    • H04L2012/40208Bus networks characterized by the use of a particular bus standard
    • H04L2012/40215Controller Area Network CAN

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

In einem Ausführungsbeispiel der vorliegenden Erfindung empfängt ein Verfahren bei einem ersten Knoten einer Vielzahl von Knoten, wobei jeder Knoten mit einem gemeinsamen Netzwerkbus verbunden ist, eine Gesundheitszustandsnachricht von einem zweiten Knoten. Die Gesundheitszustandsnachricht weist eine Aufstellung bzw. einen Log von Gesundheitszustandsnachrichten von anderen Knoten auf. Jeder Knoten sendet Gesundheitszustandsnachrichten mit einer Frequenz, die der Vielzahl von Knoten bekannt ist. Das Verfahren weist weiter auf, bei dem ersten Knoten, die Aufstellung von Nachrichten von anderen Knoten in der empfangenen Gesundheitszustandsnachricht mit einer Aufstellung von Gesundheitszustandsnachrichten zu vergleichen, die zuvor von anderen Knoten empfangen wurden, die durch den ersten Knoten gespeichert wurden. Basierend auf dem Vergleich wird ein Gesundheitszustand von jedem Knoten bestimmt. Unter Verwendung von Ausführungsbeispielen des vorliegenden Verfahrens und des Systems können Berechnungs- bzw. Computereinheiten dynamische fehlertolerante Gruppen bilden.In one embodiment of the present invention, a method at a first node of a plurality of nodes, each node connected to a common network bus, receives a health status message from a second node. The health status message includes a log of health status messages from other nodes. Each node sends health status messages at a frequency known to the plurality of nodes. The method further comprises, at the first node, comparing the placement of messages from other nodes in the received health status message with a list of health status messages previously received from other nodes stored by the first node. Based on the comparison, a health status of each node is determined. Using embodiments of the present method and system, computing units may form dynamic fault tolerant groups.

Description

Hintergrundbackground

Bei den schnellen technischen Entwicklungen in Bereichen wie Flugverkehr, Raumflug, Robotik, autonome Fahrzeuge, medizinische Vorrichtungen und elektronische Finanzsysteme, gibt es eine zunehmende Notwendigkeit, dass Computersysteme zuverlässig und unempfindlich gegen Versagen sind. Somit besteht eine immer weiter zunehmende Nachfrage nach zuverlässigen Computersystemen. Mehrfach vorgesehene Computer, welche identische Operationen ausführen, können eine Fehlertoleranz vorsehen, in dem die Ausgangsgrößen von jedem der Computer verglichen werden und bestimmt wird, welcher der Computer einen Fehler während der Operation versursacht haben könnte.With the rapid technological developments in areas such as air traffic, space flight, robotics, autonomous vehicles, medical devices and electronic financial systems, there is an increasing need for computer systems to be reliable and immune to failure. Thus, there is an ever-increasing demand for reliable computer systems. Multiple computers that perform identical operations may provide for fault tolerance by comparing the outputs from each of the computers and determining which of the computers might have caused an error during the operation.

ZusammenfassungSummary

In einem Ausführungsbeispiel der vorliegenden Erfindung nimmt ein Verfahren bei einem ersten Knoten von mehreren Knoten eine Gesundheitszustandsnachricht von einem zweiten Knoten auf, wobei jeder Knoten mit einem gemeinsamen Netzwerkbus verbunden ist. Die Gesundheitszustandsnachricht weist eine Aufstellung von Gesundheitszustandsnachrichten von anderen Knoten auf. Jeder Knoten sendet Gesundheitszustandsnachrichten mit einer Frequenz, die der Vielzahl von Knoten bekannt ist. Das Verfahren vergleicht weiter bei dem ersten Knoten die Aufstellung von Nachrichten von anderen Knoten in der empfangenen Gesundheitszustandsnachricht mit einer Aufstellung von Gesundheitszustandsnachrichten, die zuvor von anderen Knoten empfangen wurden, die von dem ersten Knoten gespeichert wurden. Basierend auf dem Vergleich bestimmt das Verfahren einen Gesundheitszustand von jedem Knoten.In one embodiment of the present invention, a method at a first node of a plurality of nodes receives a health status message from a second node, wherein each node is connected to a common network bus. The health status message includes a list of health status messages from other nodes. Each node sends health status messages at a frequency known to the plurality of nodes. The method further compares at the first node the establishment of messages from other nodes in the received health status message with a list of health status messages previously received from other nodes stored by the first node. Based on the comparison, the method determines a health status of each node.

In einem Ausführungsbeispiel weist das Empfangen einer Gesundheitszustandsnachricht weiter auf, mehrere Gesundheitszustandsnachrichten von einem oder mehreren der anderen Knoten der Vielzahl von Knoten zu empfangen. Das Vergleichen weist weiter auf, jede Aufstellung von Nachrichten aus der empfangenen Vielzahl von Gesundheitszustandsnachrichten mit der Aufstellung von Gesundheitszustandsnachrichten zu vergleichen, die von dem ersten Knoten gespeichert wurden.In one embodiment, receiving a health status message further includes receiving a plurality of health status messages from one or more of the other nodes of the plurality of nodes. The comparing further comprises comparing each lineup of messages from the received plurality of health status messages with the health status message list stored by the first node.

In einem Ausführungsbeispiel ist der gemeinsame Bus ein CAN-Bus (CAN = Controller Area Network) und/oder ein Ethernet-Bus.In one embodiment, the common bus is a CAN bus (CAN = Controller Area Network) and / or an Ethernet bus.

In einem Ausführungsbeispiel weist das Verfahren weiter auf, bei dem ersten Knoten die Aufstellung von Gesundheitszustandsnachrichten von anderen Knoten zu erzeugen, die durch den ersten Knoten gespeichert wurden, und zwar durch Aufzeichnen eines Zeitstempels von jeder empfangenen Gesundheitszustandsnachricht von anderen Knoten in einer Aufstellung während eines Taktzyklus des ersten Knotens.In one embodiment, the method further comprises generating at the first node health status messages from other nodes stored by the first node by recording a timestamp of each received health status message from other nodes in a deployment during a clock cycle of the first node.

In einem Ausführungsbeispiel wird das Bestimmen eines Gesundheitszustands eines speziellen Knotens ausgeführt durch Verifizieren von Zeitstempeln von Gesundheitszustandsnachrichten von dem speziellen Knoten, der Zeitstempeln in der Aufstellung entspricht, die vom ersten Knoten gespeichert wurde.In one embodiment, determining a health status of a particular node is performed by verifying time stamps of health status messages from the particular node corresponding to time stamps in the deployment that was stored by the first node.

In einem Ausführungsbeispiel weist das Verfahren weiter auf, von dem ersten Knoten über einen gemeinsamen Netzwerkbus eine Gesundheitszustandsnachricht des ersten Knotens an die anderen Knoten auszustrahlen bzw. zu broadcasten, wobei der Gesundheitszustand eine Aufstellung von anderen empfangenen Gesundheitszustandsnachrichten aufweist.In one embodiment, the method further comprises broadcasting from the first node via a common network bus a health status message of the first node to the other nodes, the health status comprising a list of other received health status messages.

In einem Ausführungsbeispiel kann jeder Knoten die gleiche Clock- bzw. Taktfrequenz haben. Jedoch kann der normale Fachmann erkennen, dass das Verfahren arbeiten kann, solange die Taktfrequenz von jedem Knoten jedem anderen Knoten bekannt ist.In one embodiment, each node may have the same clock frequency. However, one of ordinary skill in the art can appreciate that the method can operate as long as the clock frequency of each node is known to every other node.

In einem Ausführungsbeispiel weist das Vergleichen weiter auf, zu bestimmen, dass alle Gesundheitszustandsnachrichten bei dem ersten Knoten mit Zeitstempeln von ihren jeweiligen Knoten in den Aufstellungen von Gesundheitszustandsnachrichten von den Knoten übereinstimmen. Anderenfalls markiert das Verfahren die Knoten, die nicht passende Zeitstempel haben, als außer Synchronisation bzw. nicht synchronisiert.In one embodiment, the comparing further comprises determining that all health status messages at the first node match time stamps from their respective nodes in the health status message headers from the nodes. Otherwise, the method marks the nodes that do not have appropriate timestamps as out-of-sync or out-of-sync.

In einem Ausführungsbeispiel weist das Verfahren weiter auf, eine fehlertolerante Gruppe mit anderen Knoten basierend auf dem bestimmten Gesundheitszustand von jedem Knoten zu bilden.In one embodiment, the method further includes forming a fault-tolerant group with other nodes based on the determined health of each node.

In einem Ausführungsbeispiel weist das Verfahren weiter auf, einen Gesundheitszustand des ersten Knotens durch Vergleichen eines Eintrags der Aufstellung von Nachrichten in der empfangenen Gesundheitszustandsnachricht entsprechend dem ersten Knoten mit Einträgen der Aufstellung von Nachrichten in anderen empfangenen Gesundheitszustandsnachrichten zu bestimmen.In one embodiment, the method further comprises determining a health state of the first node by comparing an entry of the message set up in the received health status message corresponding to the first node with entries of the message set up in other received health status messages.

In einem Ausführungsbeispiel weist ein System einen gemeinsamen Netzwerkbus und eine Vielzahl von Knoten auf, wobei jeder mit dem gemeinsamen Netzwerkbus verbunden ist. Ein erster Knoten von der Vielzahl von Knoten ist konfiguriert, um eine Gesundheitszustandsnachricht von einem zweiten Knoten zu empfangen, wobei die Gesundheitszustandsnachricht eine Aufstellung von Gesundheitszustandsnachrichten von anderen Knoten der Vielzahl von Knoten aufweist. Jeder Knoten sendet Gesundheitszustandsnachrichten mit einer Frequenz, die der Vielzahl von Knoten bekannt ist. Das System ist weiter konfiguriert, um bei dem ersten Knoten die Aufstellung von Nachrichten von anderen Knoten in der empfangenen Gesundheitszustandsnachricht mit einer Aufstellung von Gesundheitszustandsnachrichten zu vergleichen, die zuvor von anderen Knoten empfangen wurden, die von den ersten Knoten gespeichert wurden. Das System ist weiter konfiguriert, um basierend auf dem Vergleich einen Gesundheitszustand von jedem Knoten zu bestimmen.In one embodiment, a system includes a common network bus and a plurality of nodes, each connected to the common network bus. A first node of the plurality of nodes is configured to receive a health status message receive a second node, wherein the health status message comprises a listing of health status messages from other nodes of the plurality of nodes. Each node sends health status messages at a frequency known to the plurality of nodes. The system is further configured to compare at the first node the establishment of messages from other nodes in the received health status message with a list of health status messages previously received from other nodes stored by the first nodes. The system is further configured to determine health status of each node based on the comparison.

In einem Ausführungsbeispiel ist ein nicht-transitorisches, computerlesbares Medium konfiguriert, um Anweisungen zu speichern. Die Anweisungen bewirken, wenn sie von einem Prozessor geladen und ausgeführt werden, dass der Prozessor bei einem ersten Knoten einer Vielzahl von Knoten, die jeweils mit einem gemeinsamen Netzwerkbus verbunden sind, eine Gesundheitszustandsnachricht von einem zweiten Knoten empfängt. Die Gesundheitszustandsnachricht weist eine Aufstellung von Gesundheitszustandsnachrichten von anderen Knoten der Vielzahl von Knoten auf. Jeder Knoten sendet Gesundheitszustandsnachrichten mit einer Frequenz, die der Vielzahl von Knoten bekannt ist. Die Instruktionen bzw. Anweisungen bewirken weiter, dass der Prozessor bei dem ersten Knoten die Aufstellung von Nachrichten von anderen Knoten in der empfangenen Gesundheitszustandsnachricht mit einer Aufstellung von Gesundheitszustandsnachrichten vergleicht, die zuvor von anderen Knoten empfangen wurden, die von dem ersten Knoten gespeichert sind. Die Instruktionen bewirken weiter, dass der Prozessor basierend auf dem Vergleich einen Gesundheitszustand von jedem Knoten bestimmt.In one embodiment, a non-transitory computer-readable medium is configured to store instructions. The instructions, when loaded and executed by a processor, cause the processor to receive a health status message from a second node at a first node of a plurality of nodes, each connected to a common network bus. The health status message comprises a list of health status messages from other nodes of the plurality of nodes. Each node sends health status messages at a frequency known to the plurality of nodes. The instructions further cause the processor at the first node to compare the placement of messages from other nodes in the received health status message with a list of health status messages previously received from other nodes stored by the first node. The instructions further cause the processor to determine a health state of each node based on the comparison.

Figurenlistelist of figures

Das Vorangegangene wird aus der folgenden spezielleren Beschreibung von beispielhaften Ausführungsformen der Erfindung offensichtlich werden, wie in den beigefügten Zeichnen veranschaulicht, in welchen gleiche Bezugszeichen sich in den unterschiedlichen Ansichten auf die gleichen Teile beziehen. Die Zeichnungen sind nicht notwendigerweise in Maßstab, wobei stattdessen Betonung darauf gelegt wird, Ausführungsbeispiele der vorliegenden Erfindung zu veranschaulichen.

  • 1 ist eine Abbildung, welche eine beispielhafte Ausführungsform eines Fahrzeugs mit einem veranschaulichenden CAN-Bus (CAN = Controller Area Network) veranschaulicht, welcher mehrere Subsysteme verbindet.
  • 2A ist ein Blockdiagramm, welches eine beispielhafte Ausführungsform eines CAN-Buses veranschaulicht, der mit Knoten verbunden ist.
  • 2B ist ein Blockdiagramm, welches eine beispielhafte Ausführungsform eines Knotens mit einer Berechnungs- bzw. Computereinheit und einer Fehlertoleranzschicht veranschaulicht, die betriebsmäßig mit einem CAN-Bus gekoppelt ist.
  • 3 ist eine Abbildung einer beispielhaften Ausführungsform eines Paktes mit einer Gesundheitszustandsnachricht.
  • 4 ist ein Flussdiagramm, welches eine beispielhafte Ausführungsform eines Verfahrens veranschaulicht, welches durch die vorliegende Erfindung eingesetzt wird.
  • 5 ist eine Abbildung, welche eine beispielhafte Ausführungsform einer Zeitlinie von Gesundheitszustandsnachrichten veranschaulicht.
  • 6 ist ein Blockdiagramm, welches eine Überprüfung einer Kommunikationsleitung veranschaulicht.
  • 7 ist eine Abbildung, welcher eine beispielhafte Ausführungsform einer Überprüfungstabelle veranschaulicht, die in einem Ausführungsbeispiel der vorliegenden Erfindung eingesetzt wird.
  • 8 ist ein Flussdiagramm, welches eine beispielhafte Ausführungsform eines Verfahrens veranschaulicht, welches von der vorliegenden Erfindung bezüglich der oben beschriebenen Überprüfungstabelle eingesetzt wird.
  • 9 veranschaulicht ein Computernetzwerk oder eine ähnliche digitale Verarbeitungsumgebung, in welcher Ausführungsbeispiele der vorliegenden Erfindung implementiert bzw. eingesetzt werden können.
  • 10 ist eine Abbildung einer beispielhaften internen Struktur eines Computers (beispielsweise Client-Prozessor/Vorrichtung oder Server-Computer) in dem Computersystem der 9.
The foregoing will become apparent from the following more particular description of exemplary embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, with emphasis instead being placed to illustrate embodiments of the present invention.
  • 1 FIG. 10 is a diagram illustrating an exemplary embodiment of a vehicle having an illustrative CAN (Controller Area Network) bus interconnecting multiple subsystems.
  • 2A FIG. 10 is a block diagram illustrating an exemplary embodiment of a CAN bus connected to nodes. FIG.
  • 2 B FIG. 10 is a block diagram illustrating an exemplary embodiment of a node having a computing unit and a fault tolerance layer operably coupled to a CAN bus. FIG.
  • 3 FIG. 10 is an illustration of an exemplary embodiment of a health state message pact. FIG.
  • 4 FIG. 10 is a flow chart illustrating an exemplary embodiment of a method employed by the present invention. FIG.
  • 5 FIG. 13 is an illustration illustrating an exemplary embodiment of a health status message timeline. FIG.
  • 6 Fig. 10 is a block diagram illustrating a check of a communication line.
  • 7 FIG. 10 is a diagram illustrating an exemplary embodiment of a verification table employed in an embodiment of the present invention.
  • 8th FIG. 10 is a flow chart illustrating an exemplary embodiment of a method employed by the present invention with respect to the verification table described above. FIG.
  • 9 illustrates a computer network or similar digital processing environment in which embodiments of the present invention may be implemented.
  • 10 FIG. 12 is a diagram of an exemplary internal structure of a computer (eg, client processor / device or server computer) in the computer system of FIG 9 ,

Detaillierte BeschreibungDetailed description

Eine Beschreibung von beispielhaften Ausführungsformen der Erfindung folgt.A description of exemplary embodiments of the invention follows.

Frühere Verfahren zum Implementieren einer Fehlertoleranz setzen Knoten ein, die direkt miteinander verbunden sind. Jeder Knoten führt unabhängig die gleiche Funktion aus und für jeden Betriebsvorgang bzw. jede Operation werden Ergebnisse verglichen und von dem anderen System bewertet. Beim Bewerten, kann, wenn es einen Unterschied bei den Ergebnissen gibt, ein Versagen bzw. Fehler durch die korrekt berechnet Antwort überstimmt werden, die durch eine Mehrheit von Knoten gefunden wurde, oder, wenn es keine Mehrheit gibt, kann ein Fehler angezeigt bzw. mit Flag versehen werden.Previous methods of implementing fault tolerance employ nodes that are directly interconnected. Each node independently performs the same function, and for each operation or operation, results are compared and evaluated by the other system. When evaluating, if there is a difference in the results, a failure can be overruled by the correctly calculated answer found by a majority of nodes or, if there is no majority, an error can be flagged.

Im Allgemeinen werden fehlertolerante Betriebsgruppen durch die Anzahl von eingesetzten Back-up- bzw. Reservesystemen bezeichnet. Beispielsweise ist ein Simplex eine Betriebsgruppe mit einem Knoten, und ein Duplex ist eine Betriebsgruppe mit zwei Knoten. Sowohl Simplex- als auch Duplex-Betriebsgruppen sind null-Fehler-tolerant. Ein Simplex hat keinen anderen Knoten, um Ergebnisse dagegen zu prüfen und während ein Duplex jeden Knoten gegen jeden anderen prüfen kann, können die Knoten im Falle eines Fehlers sich nicht darauf einigen, welcher Knoten korrekt ist. Jedoch kann der Duplex den Fehler bemerken, und andere Korrekturhandlungen können unternommen werden, wie beispielsweise das Abbrechen eines Launches bzw. Starts oder einer anderen Operation. Eine ein-Fehler-tolerante Betriebsgruppe ist ein Triplex, der drei Knoten hat. Eine zwei-Fehler-tolerante Betriebsgruppe ist ein Quad oder Quadraplex. Im Allgemeinen wird die Anzahl der Knoten in einer Betriebsgruppe durch die Formel m = n + 2 gegeben, wobei m die Anzahl der Knoten ist und n das erwünschte Toleranzniveau. Ein Fachmann kann gemäß dieser Formel Betriebsgruppen mit Fehlertoleranz auf höherem Niveau erdenken. Bei diesen Verfahren wurde jeder Knoten direkt mit allen anderen Knoten verbunden. Beispielsweise hätte ein Duplex zwei Leitungen - eine von dem ersten Knoten zum Zweiten, und eine vom Zweiten zum Ersten. Für Betriebsgruppen mit Fehlertoleranz auf höherem Niveau werden jedoch vielmehr Verbindungen benötigt. Beispielsweise werden in einem Triplex sechs Drähte benötigt. In einem Quad werden 12 Drähte benötigt. Ein ähnliches System wird im U.S. Patent Nr. 8,972,772 , „System and Method for Duplexed Replicated Computing“ von Beilin und anderen beschrieben, welches hier in seiner Gesamtheit durch Bezugnahme mitaufgenommen ist.In general, fault-tolerant operating groups are designated by the number of back-up or reserve systems used. For example, a simplex is an operating group with a node, and a duplex is a two-node operating group. Both simplex and duplex operations are zero-error tolerant. A simplex has no other node to test results against, and while a duplex can check each node against each other, in the event of an error, the nodes can not agree on which node is correct. However, the duplex may notice the error and other corrective actions may be taken, such as aborting a launch or other operation. A one-fault tolerant group of operations is a triplex that has three nodes. A two-fault-tolerant operation group is a quad or quadraplex. In general, the number of nodes in an operational group is given by the formula m = n + 2, where m is the number of nodes and n is the desired tolerance level. A person skilled in the art can devise operating groups with fault tolerance on a higher level according to this formula. In these procedures, each node was connected directly to all other nodes. For example, a duplex would have two lines - one from the first node to the second, and one from the second to the first. However, higher-level fault tolerance operations require connections instead. For example, six wires are needed in a triplex. In a quad 12 wires are needed. A similar system will be used in the U.S. Patent No. 8,972,772 , "System and Method for Duplexed Replicated Computing" by Beilin et al., Which is incorporated herein by reference in its entirety.

Da Systeme jedoch immer mehr Komponenten haben, kann das Vorsehen von einzelnen Drähten zwischen allen Komponenten eines Systems hinderlich werden. Außerdem können Komponenten des Systems in Distanzen beabstandet sein, die es schwierig machen, in kompakter Weise Drähte zu und von jeder und allen Komponenten in der fehlertoleranten Betriebsgruppe auszulegen. Beispielweise sind in einem halbautonomen oder vollautonomen Fahrzeug Komponenten und ihre jeweiligen Computer in unterschiedlichen Teilen des Fahrzeugs. Viele Fahrzeuge verwenden daher einen CAN-Bus (CAN = Controller Area Network), der ein Fahrzeug-Bus ist. Der CAN-Bus ist ein serielles Kommunikationsprotokoll, welches verteilte Echtzeitsteuerung und Multiplexing für die Verwendung von Straßenfahrzeugen und anderen Steueranwendungen unterstützt. Der CAN-Bus kann durch die internationale Organisation für Standardisierung (ISO) 11898 implementiert werden, insbesondere durch ISO 11897-1:2003 und ISO 11898-1:2015 , die hier durch Bezugnahme in ihrer Gesamtheit mitaufgenommen sind. Jedoch müssen an einer CAN-Bus-Architektur, wie beispielsweise ISO 11898 , Änderungen gegenüber einer herkömmlichen fehlertoleranten Überwachung vorgenommen werden, um den Mangel an Einwegverdrahtung, die jede Komponente verbindet, Rechnung zu tragen. Der ISO-Standard 11898-3 beschreibt das Erzeugen von redundanten Verbindungen zwischen Komponenten auf dem CAN-Bus, erzeugt jedoch nicht fehlertolerante Betriebsgruppen. Anders gesagt, wenn ein Draht des CAN-Bus, der von 11898-3 beschrieben wird, durchgeschnitten wäre, würde ein alternativer Drahtpfad den Komponenten auf dem CAN-Bus gestatten, weiter zu kommunizieren. Wenn jede Komponente über einen Bus verbunden ist, wird stattdessen das Erzeugen einer fehlertoleranten Architektur in anderer Weise implementiert, wie unten beschrieben.However, as systems have more and more components, the provision of individual wires between all the components of a system can be a hindrance. In addition, components of the system may be spaced at distances that make it difficult to compactly design wires to and from any and all components in the fault tolerant group of operations. For example, in a semi-autonomous or fully autonomous vehicle, components and their respective computers are in different parts of the vehicle. Many vehicles therefore use a CAN (Controller Area Network) bus, which is a vehicle bus. The CAN bus is a serial communication protocol that supports distributed real-time control and multiplexing for the use of road vehicles and other control applications. The CAN bus can be implemented by the International Organization for Standardization (ISO) 11898, in particular by ISO 11897-1: 2003 and ISO 11898-1: 2015 , which are incorporated herein by reference in their entirety. However, on a CAN bus architecture, such as ISO 11898 , Changes are made to conventional fault tolerant monitoring to account for the lack of one-way wiring connecting each component. Of the ISO standard 11898-3 describes creating redundant connections between components on the CAN bus, but does not create fault tolerant operating groups. In other words, if a wire of the CAN bus described by 11898-3 were cut through, an alternative wire path would allow the components on the CAN bus to continue to communicate. Instead, when each component is connected via a bus, the generation of a fault tolerant architecture is implemented in some other way, as described below.

1 ist eine , welche eine beispielhafte Ausführungsform eines Automobils bzw. Fahrzeugs 102 veranschaulicht, welches einen veranschaulichenden CAN-Bus 104 hat, der mehrere Subsysteme bzw. Untersysteme verbindet. In einem Ausführungsbeispiel eines Fahrzeugs 102 können Computer- bzw. Berechnungseinheiten 108a-1 für jedes Fahrzeugsystems 106a-1 in einer verteilten Weise verwendet werden, um einander zu helfen. Die beispielhaften Systeme der 1 sind ein Traktionssteuersystem 106a, ein Entertainment- bzw. Unterhaltungssystem 106b, ein Antiblockierbremssystem 106c, ein Vorkollisionsbrems/Kollisionswarnsystem 106d, ein Totwinkeldetektionssystem 106e, ein Bildverarbeitungssystem 106f, ein Servolenkungssystem 106g, ein adaptives Tempomatsystem 106h, ein Fahrbahnüberwachungssystem 106i, ein Airbag-Einsatzsystem 108j, ein adaptives Scheinwerfersystem 108k und ein Rückwärtskamerasystem 1061. Ein Fachmann kann erkennen, das mehr oder weniger Systeme in dem Automobil bzw. Fahrzeug 102 eingesetzt werden können und über den CAN-Bus 104 verbunden werden können; jedoch sind die Systeme 106a-l zu Beispielszwecken gezeigt. 1 is a , which is an exemplary embodiment of an automobile or vehicle 102 which illustrates an illustrative CAN bus 104 has several subsystems or subsystems. In one embodiment of a vehicle 102 can be computer or calculation units 108a-1 for every vehicle system 106a-1 be used in a distributed way to help each other. The exemplary systems of 1 are a traction control system 106a , an entertainment system 106b , an anti-lock braking system 106c , a pre-collision brake / collision warning system 106d , a blind spot detection system 106e , an image processing system 106f , a power steering system 106g , an adaptive cruise control system 106h , a roadway monitoring system 106i , an airbag deployment system 108j , an adaptive headlamp system 108k and a backward camera system 1061 , One skilled in the art can recognize the more or less systems in the automobile 102 can be used and over the CAN bus 104 can be connected; however, the systems are 106a-l shown for illustrative purposes.

In einem breitgefassten Beispiel kann die Berechnungs- bzw. Computereinheit 108a-l für ein Nicht-Notfallsystem (beispielsweise das Unterhaltungssystem 106b des Fahrzeugs) bei der Verarbeitung für ein kritisches System helfen (beispielsweise Anti-Blockierbremsen 106c, Vorkollisionsbremsen 106d, ein Bildverarbeitungssystem 106f zum Abbilden bzw. zur Bildverarbeitung von Objekten, die das Fahrzeug umgeben usw.). In Ausführungsbeispielen kann das Automobil bzw. Fahrzeug 102 die Systeme in fehlertoleranten Gruppen basierend auf der erforderlichen Fehlertoleranz der angefragten Funktion gruppieren. Beispielsweise können Funktionen, die kritischer sind, zwei-Fehler-tolerant sein, während weniger kritische Funktionen, wie beispielsweise Heizung oder Unterhaltung, null-Fehler-tolerant sein können. Bei zeitkritischen Situationen können jedoch kritische Funktionen ein Simplex als Overhead bzw. Reserve haben, wie beispielsweise eine Anwendung durch eine Nutzereingabe des Fahrers der Notbremse.In a broad example, the computing unit 108a-l for a non-emergency system (for example, the entertainment system 106b of the vehicle) during processing for a critical system (eg anti-lock brakes 106c , Pre-collision brakes 106d , an image processing system 106f for imaging purposes of objects surrounding the vehicle, etc.). In embodiments, the automobile or vehicle 102 group the systems into fault tolerant groups based on the required fault tolerance of the requested function. For example, functions that are more critical may be two-error tolerant, while less critical functions, such as heating or entertainment, can be zero-error tolerant. However, in time-critical situations, critical functions may have a simplex as overhead, such as an application by a user input of the driver of the emergency brake.

Die Computereinheiten 108a von jedem Untersystem können in fehlertoleranter Weise gemeinsam verwendet werden. Als ein Beispiel sei das Bildverarbeitungssystem 106f betrachtet. Die Bildverarbeitung 106f kann Stereo-Visionssysteme, Radar, Lidar, oder andere Visions- bzw. Sichtsysteme aufweisen und die Verarbeitung von Daten, die damit in Beziehung steht. Bei einem halbautonomen oder vollautonomen Fahrzeug 102 ist die Bildverarbeitung 106f kritisch für die autonomen Funktionen des Fahrzeugs. Ein Fehler bei der Bildverarbeitung 106f kann zur Folge haben, dass das Fahrzeug 102 ein Objekt auf der Straße nicht erkennt, was eine Kollision verursachen kann. Daher könnte das Fahrzeug 102 das Bildverarbeitungssystem zwei-Fehler-tolerant machen. Dies zu tun erfordert ein Quad, was bei vorherigen Systemen erforderte, dass Vier-Bildverarbeitungssysteme direkt miteinander verbunden werden, und zwar alle programmiert, um die gleiche Funktion auszuführen. Bei der vorliegenden Erfindung kann das Bildverarbeitungssystem 106f jedoch die Computereinheiten 108a-e und 108g-l der anderen Systeme 106a-e und 106g-l einsetzen bzw. gewichten, um seine Berechnungen in verteilter Weise zu überprüfen. Um daher ein Quad zu emulieren können vier der Verarbeitungseinheiten 108a-l Berechnungen ausführen, Berechnungen bewerten und eine Antwort ausgeben, so dass das Automobil bzw. Fahrzeug 102 eine geeignete Handlung ausführen kann. Auf diese Weise verteilt das Fahrzeug seine Berechnungsleistung in fehlertoleranter Weise. Ein Fachmann kann erkennen, dass ein Triplex, Duplex oder Simplex in ähnlicher Weise implementiert bzw. ausgeführt werden kann. Weiterhin kann jegliche n-Fehler-tolerante Betriebsgruppe für jegliches n größer als oder gleich Null implementiert werden, auch wenn es ungewöhnlich ist, dass n größer als Drei ist. In einem Ausführungsbeispiel der vorliegenden Erfindung können die Knoten nach dem Bestimmen von Gesundheitszuständen der Knoten eine fehlertolerante Betriebsgruppe formen, wie beispielsweise ein Simplex, Duplex, Triplex, Quad oder eine drei-Fehler-tolerante oder höher-Fehler-tolerante Betriebsgruppe. Die fehlertolerante Betriebsgruppe kann auch als Redundanzgruppe bezeichnet werden.The computer units 108a Each subsystem can be shared in a fault-tolerant way. As an example, consider the image processing system 106f considered. The image processing 106f may include stereo vision systems, radar, lidar, or other vision systems and the processing of data related thereto. For a semi-autonomous or fully autonomous vehicle 102 is the image processing 106f critical for the autonomous functions of the vehicle. An error in image processing 106f can result in the vehicle 102 an object on the road does not recognize what can cause a collision. Therefore, the vehicle could 102 make the image processing system two-error tolerant. To do this requires a quad, which in previous systems required four-machine vision systems to be connected directly to each other, all programmed to perform the same function. In the present invention, the image processing system 106f however the computer units 108a-e and 108g-l the other systems 106a-e and 106g-l to weight his calculations in a distributed fashion. Therefore, to emulate a quad may be four of the processing units 108a-l Perform calculations, evaluate calculations and spend a response, so that the automobile or vehicle 102 can perform a suitable action. In this way, the vehicle distributes its calculation performance in a fault-tolerant manner. One skilled in the art can appreciate that a triplex, duplex, or simplex can be similarly implemented. Furthermore, any n-error tolerant group of operations may be implemented for any n greater than or equal to zero, although it is unusual for n to be greater than three. In one embodiment of the present invention, upon determining health conditions of the nodes, the nodes may form a fault-tolerant group of operations, such as a simplex, duplex, triplex, quad, or a three-error-tolerant or higher-error-tolerant group of operations. The fault-tolerant operating group can also be referred to as a redundancy group.

Ein Fachmann kann auch erkennen, dass andere Bus-Architekturen oder Netzwerk-Technologien anstelle der ISO 11898-Architektur implementiert werden können. Beispielsweise ist verdrahtetes oder drahtloses Ethernet ein Beispiel einer Netzwerk-Technologie, die in anderen Ausführungsbeispielen eingesetzt werden kann; jedoch können unterschiedliche Arten von Netzwerken außer Ethernet verwendet werden. Ein Fachmann kann Ethernet mit den Prinzipien einsetzen, die bezüglich des CAN-Buses 104 in dieser Anmeldung beschrieben wurden, und dies wird nicht separat beschrieben. Es sei jedoch bemerkt, dass in einem Ethernet-System Paket-Kollisionen berücksichtig werden müssen, was bei dem CAN-Bus 104 kein Faktor ist. In einem Ethernet-Netzwerk werden Pakete, die kollidieren, zu einem späteren Zeitpunkt mit einem aktualisierten Zeitstempel erneut gesendet. Um daher ein Ethernet-Netzwerk zu verwenden, können Knoten berücksichtigen, dass Pakete aufgrund von Paketkollisionen verzögert sein können, bevor bestimmt wird, dass ein Knoten, der eine vorhergesagte Gesundheitszustandsnachricht nicht gesendet hat, einem Fehler unterliegt. Während viele Verfahren dies ausführen können, verzögert ein Ausführungsbeispiel eine Bestimmung eines Gesundheitszustandes eines speziellen Knotens während Perioden von starker Netzwerkbelastung.One skilled in the art may also recognize that other bus architectures or network technologies may be implemented instead of the ISO 11898 architecture. For example, wired or wireless Ethernet is an example of network technology that may be used in other embodiments; however, different types of networks other than Ethernet can be used. One skilled in the art can use Ethernet with the principles that apply to the CAN bus 104 in this application, and this will not be described separately. It should be noted, however, that packet collisions must be considered in an Ethernet system, which is the case with the CAN bus 104 is not a factor. In an Ethernet network, packets that collide are resent at a later time with an updated timestamp. Therefore, to use an Ethernet network, nodes may consider that packets may be delayed due to packet collisions before determining that a node that has not sent a predicted health status message is subject to failure. While many methods may do so, one embodiment delays determination of a health state of a particular node during periods of heavy network load.

2A ist ein Blockdiagramm 200, welches eine beispielhafte Ausführungsform eines CAN-Bus 204 veranschaulicht, der mit Knoten A-E 208a-e verbunden ist. Die Knoten 208a-e können beispielsweise Berechnungseinheiten 108a-l der 1 aufweisen. Jedoch können die Knoten 208a-e weiter irgendeine Berechnungseinheit in einer fehlertoleranten Betriebsgruppe darstellen. In einer beispielhaften Ausführungsform können die Knoten 208a-e vier Knoten eines Quad, eines zwei-Fehler-toleranten Systems darstellen, und einen zusätzlichen Voting- bzw. Bewertungsknoten, der regelt. Ungeachtet der Funktionen der Knoten hat jeder zu bestätigen, dass die anderen die korrekten Daten miteinander austauschen bzw. kommunizieren. Zu diesem Zweck sendet jeder Knoten 208a-e seine eigene Gesundheitszustandsnachricht 210 auf einem Takt, der allen anderen Knoten 208a-e bekannt ist. Anders gesagt, jeder Knoten 208a-e kennt die Taktgeschwindigkeit der anderen Knoten 208a-e. Jeder Knoten 208a-e kann die gleiche Taktgeschwindigkeit oder unterschiedliche Taktgeschwindigkeiten haben. Wenn ein Knoten, wie beispielsweise der Knoten E 208e eine Gesundheitszustandsnachricht 210 auf dem CAN-Bus 204 sendet, wird die Nachricht darauf folgend an den Knoten A-D 208a-d empfangen. In einem Ausführungsbeispiel kann die Nachricht 210 an alle Knoten auf dem CAN-Bus 204 gesendet werden. In anderen Ausführungsbeispielen kann die Nachricht 210 jedoch an spezielle Knoten auf dem CAN-Bus 204 mehrfach gesendet bzw. mit multicast gesendet werden. 2A is a block diagram 200 , which is an exemplary embodiment of a CAN bus 204 illustrated with node AE 208a-e connected is. The knots 208a-e For example, you can use calculation units 108a-l of the 1 exhibit. However, the nodes can 208a-e continue to represent any calculation unit in a fault-tolerant operation group. In an exemplary embodiment, the nodes may 208a-e represent four nodes of a quad, a two-error tolerant system, and an additional voting node that governs. Regardless of the functions of the nodes, everyone has to confirm that the others are exchanging or communicating the correct data. For this purpose, each node sends 208a-e his own health status message 210 on a clock, all other nodes 208a-e is known. In other words, every node 208a-e knows the clock speed of the other nodes 208a-e , Every node 208a-e can have the same clock speed or different clock speeds. When a node such as node E 208e sends a health status message 210 on the CAN bus 204 the message is subsequently sent to node AD 208a-d receive. In one embodiment, the message 210 to all nodes on the CAN bus 204 be sent. In other embodiments, the message 210 however, to special nodes on the CAN bus 204 be sent multiple times or sent with multicast.

Während eines Initialisierungszyklus kann die Gesundheitszustandsnachricht 210 nur Daten über den Knoten E 208e aufweisen. Nach einem Zyklus jedoch sollte jede Gesundheitszustandsnachricht 210 genauso Daten über die anderen Knoten A-D 208a-d aufweisen. Dies wird erreicht, in dem bei jedem Knoten aufgezeichnet wird, wann die jeweiligen Gesundheitszustandsnachrichten von jedem Knoten empfangen wurden. Dann schließt der Knoten in der nächsten Gesundheitszustandsnachricht eine Aufstellung von allen anderen Gesundheitszustandsnachrichten ein, die er empfangen hat. Auf diese Weise kann jeder Knoten seine Aufstellung von (a) empfangenen Gesundheitszustandsnachrichten und (b) seinen eigenen gesendeten Gesundheitszustandsnachrichten mit der Aufstellung von Gesundheitszustandsnachrichten vergleichen, die von anderen Knoten empfangen wurden. Wenn die zwei Aufstellungen eines ersten Knotens mit den Aufstellungen übereinstimmen, die in einer Gesundheitszustandsnachricht von einem zweiten Knoten empfangen wurden, dann kann der erste Knoten überprüfen, dass seine Verbindung mit dem zweiten Knoten, Nachrichten korrekt empfängt. Wenn dies bei allen Knoten ausgeführt wird, kann dies das gesamte Netzwerk verifizieren bzw. überprüfen. Wenn im Gegensatz dazu die Aufstellungen nicht übereinstimmen, kann dies eine Anzeige sein, dass ein oder mehrere der Knoten eine Fehlfunktion haben oder nicht korrekt kommunizieren. In diesem Fall kann der erste Knoten den zweiten Knoten markieren bzw. mit Flag versehen, was verschiedene Optionen auslösen kann, einschließlich des Zurückstufens des zweiten Knotens bei der Wertung oder das Markieren des zweiten Knotens für eine Instandhaltung.During an initialization cycle, the health status message 210 only have data about node E 208e. After a cycle, however, every health status message should 210 as well data about the other nodes AD 208a-d exhibit. This is achieved in is recorded at each node, when the respective health status messages were received from each node. Then, in the next health status message, the node includes a list of all other health status messages that it has received. In this way, each node may compare its listing of (a) received health status messages and (b) its own sent health status messages with the establishment of health status messages received from other nodes. If the two statements of a first node match the listings received in a health status message from a second node, then the first node can verify that its connection with the second node correctly receives messages. If done at all nodes, this can verify or verify the entire network. Conversely, if the lists do not match, this may be an indication that one or more of the nodes are malfunctioning or not communicating correctly. In this case, the first node may flag the second node, which may trigger various options, including downgrading the second node during scoring or marking the second node for maintenance.

2B ist ein Blockdiagramm, welches eine beispielhafte Ausführungsform eines Knotens 256 veranschaulicht, der eine Berechnungs- bzw. Computereinheit 252 und eine Fehlertoleranzschicht 254 hat, der betriebsmäßig mit einem CAN-Bus 204 gekoppelt ist. Der Knoten 256 der 2B ist eine beispielhafte Ausführungsform von irgendeinem der Knoten A-E 208a-e. Der Knoten 256 kann beispielsweise irgendeines der in 1 gezeigten Systeme 106a-l implementieren, kann jedoch genauso irgendein anderes System implementieren. Der Knoten 256 weist eine Computereinheit 252 auf, die durch Berechnungen benötige Daten bestimmt, die an den Bus 258 gesendet werden sollen, und zwar ansprechend auf Daten, die von dem Bus 260 empfangen wurden. In einem Ausführungsbeispiel können die Daten, die von dem Bus empfangen wurden, Anfragen zur Ausführung von Operationen von anderen Knoten sein, die mit dem CAN-Bus 204 verbunden sind. In einem anderen Ausführungsbeispiel kann die Computereinheit 252 Daten basierend auf Eingaben der echten Umgebung berechnen, wie beispielsweise, dass ein Fußgänger durch das Fahrzeug detektiert wurde. Nachdem die Daten berechnet wurden, werden die Daten an den Bus 258 zuerst zu einer Fehlertoleranzschicht 254 gesendet. Die Fehlertoleranzschicht 254 hängt eine Gesundheitszustandsnachricht, die weiter bezüglich 3 beschrieben wird, an das Datenpaket an. Die Daten mit der Gesundheitszustandsnachricht 262 werden dann an den CAN-Bus 204 gesendet. In einem Ausführungsbeispiel kann die Gesundheitszustandsnachricht 210 zu den Daten 258 hinzugefügt werden, um die Daten 262 mit einer Gesundheitszustandsnachricht zu werten. 2 B FIG. 10 is a block diagram illustrating an exemplary embodiment of a node. FIG 256 illustrating a computing unit 252 and a fault tolerance layer 254 which has operational with a CAN bus 204 is coupled. The knot 256 of the 2 B FIG. 10 is an exemplary embodiment of any of the nodes AE 208a-e , The knot 256 For example, any of the in 1 shown systems 106a-l but can implement any other system as well. The knot 256 has a computer unit 252 on, which determines by data needed to the bus 258 should be sent, in response to data coming from the bus 260 were received. In one embodiment, the data received from the bus may be requests to perform operations on other nodes connected to the CAN bus 204 are connected. In another embodiment, the computer unit 252 Calculate data based on real environment inputs, such as a pedestrian being detected by the vehicle. After the data has been calculated, the data is sent to the bus 258 first to a fault tolerance layer 254 Posted. The fault tolerance layer 254 hangs a health status message that continues to reference 3 is described to the data packet. The data with the health status message 262 will be sent to the CAN bus 204 Posted. In one embodiment, the health status message 210 to the data 258 be added to the data 262 to evaluate with a health status message.

Die Fehlertoleranzschicht 254 empfängt weiter Daten vom CAN-Bus 204 mit Gesundheitszustandsnachrichten von anderen Knoten. Die Fehlertoleranzschicht 254 bestimmt die Gesundheit der anderen Knoten genauso wie des Knotens 256 selbst, bevor die Daten 260 zur Verarbeitung an die Computereinheit 252 gesendet werden. In dieser Weise abstrahiert die Fehlertoleranzschicht 254 ein Fehlertoleranzmanagement weg von Computereinheiten 252 von irgendwelchen Knoten. Die Fehlertoleranzschicht 254 kann in Software bzw. Programmen durch einen Prozessor oder auch in Hardware bzw. Komponenten durch eine FPGA oder durch eine andere Hardware-Vorrichtung implementiert sein.The fault tolerance layer 254 continues to receive data from the CAN bus 204 with health status messages from other nodes. The fault tolerance layer 254 determines the health of the other nodes as well as the node 256 even before the data 260 for processing to the computer unit 252 be sent. In this way, the fault tolerance layer abstracts 254 a fault tolerance management away from computer devices 252 from any knots. The fault tolerance layer 254 can be implemented in software or programs by a processor or in hardware or components by an FPGA or by another hardware device.

3 ist eine einer beispielhaften Ausführungsform eines Paketes 302 mit einer Gesundheitszustandsnachricht 306. Das Paket 302 weist Paketdaten 304 auf, weist jedoch weiter die Gesundheitszustandsnachricht 306 auf. Die Gesundheitszustandsnachricht 306 weist zwei Komponenten auf, einen Zeitstempel 308 des Paketes und eine Aufstellung 310 von anderen Zeitstempeln 310. Die Aufstellung 310 kann während eines Initialisierungstaktzyklus aufgrund eines Mangels an empfangenen Daten leer oder unvollständig sein. 3 is a an exemplary embodiment of a package 302 with a health status message 306 , The package 302 has packet data 304 but continues to indicate the health status message 306 on. The health status message 306 has two components, a timestamp 308 of the package and a lineup 310 from other timestamps 310 , The preparation 310 may be empty or incomplete during an initialization clock cycle due to a lack of received data.

Wenn Knoten miteinander kommunizieren, werden ein CRC-Hash (CRC = Cyclic Redundancy check = zyklische Redundanzprüfung), Check- bzw. Prüfbits oder eine Check- bzw. Prüfsumme an jedes Paket 302 angehängt. Wie in der Technik bekannt ist, ist CRC ein Fehlerdetektions-Code, der zuerst durch einen sendenden knoten berechnet wird und dann an das Paket 302 angehängt wird. Die Länge der Nachricht ist entweder vorbestimmt oder in die Nachricht codiert, so dass der empfangende Knote weiß, welcher Teil der Nachricht die CRC oder Check-Summe bzw. Prüfsumme ist. Dann berechnet der empfangende Knote die CRC basierend auf den Paketdaten 304 und optional auf der Gesundheitszustandsnachricht 306 und bestätigt, dass die empfangende CRC zu der CRC passt, die an das Paket 302 angehängt ist. Dies überprüft, dass keine zufälligen Datenänderungen an dem Paket 302 vorgenommen worden sind.When nodes communicate with each other, a Cyclic Redundancy Check (CRC) hash, check bits, or a check sum is sent to each packet 302 attached. As is known in the art, CRC is an error detection code calculated first by a sending node and then to the packet 302 is appended. The length of the message is either predetermined or encoded into the message so that the receiving node knows which part of the message is the CRC or Checksum or Checksum. Then, the receiving node calculates the CRC based on the packet data 304 and optionally on the health status message 306 and confirms that the receiving CRC matches the CRC attached to the packet 302 is attached. This verifies that there are no random data changes to the package 302 have been made.

Zusätzlich zu der obigen CRC-Information kann die Gesundheitszustandsnachricht 306 auch einen Zeitstempel des Paketes 308 und eine Aufstellung von anderen Zeitstempeln 310 aufweisen. Diese Information kann, getrennt von der CRC-Information, ebenfalls gegen Zeitstempelaufstellungen in jedem entsprechenden Knoten nach der Übertragung von jedem Paket geprüft werden.In addition to the above CRC information, the health status message 306 also a timestamp of the package 308 and a list of other timestamps 310 exhibit. This information may also be checked against timestamp statements in each corresponding node after the transmission of each packet, apart from the CRC information.

4 ist ein Flussdiagramm 400, welches eine beispielhafte Ausführungsform eines Verfahrens veranschaulicht, welches von der vorliegenden Erfindung eingesetzt wird. Zuerst empfängt das Verfahren eine Gesundheitszustandsnachricht von einem anderen Netzwerkelement auf dem gleichen Netzwerkbus (402). Die Gesundheitszustandsnachricht kann, wie oben beschrieben, an ein Datenpaket als ein Zeitstempel und als eine Aufstellung von Zeitstempeln von anderen Gesundheitszustandsnachrichten angehängt sein, die von anderen Knoten empfangen wurden oder als CRC-Information oder als beides. Das Verfahren prüft dann, ob die Aufstellung von Nachrichten in der Gesundheitszustandsnachricht in Übereinstimmung mit der Aufstellung von Gesundheitszustandsnachrichten ist, die durch das Netzwerkelement (404) gespeichert sind. Basierend auf diesem Vergleich bestimmt das Verfahren einen Gesundheitszustand von jedem Netzwerkelement (406). 4 is a flowchart 400 which illustrates an exemplary embodiment of a method employed by the present invention. First, the method receives a health status message from another network element on the same network bus ( 402 ). As described above, the health status message may be attached to a data packet as a time stamp and as a list of time stamps of other health status messages received from other nodes, or as CRC information, or both. The method then checks whether the establishment of messages in the health status message is in accordance with the establishment of health status messages sent by the network element (FIG. 404 ) are stored. Based on this comparison, the method determines health status of each network element ( 406 ).

5 ist ein , welche eine beispielhafte Ausführungsform einer Zeitlinie 502 von Gesundheitszustandsnachrichten 504-(0-7) veranschaulicht. Ein Fachmann kann erkennen, dass die Gesundheitszustandsnachrichten 504-(0-7) an Datenpakete angehängt sein können, oder, in einem anderen Ausführungsbeispiel, unabhängige Nachrichten. Ein Fachmann kann weiter erkennen, dass, während die Zeitlinie 502 in einer Millisekundenskala ist, irgendeine andere Zeitskala verwendet werden kann. Weiterhin kann der Fachmann erkennen, dass jedes Netzwerkelement Nachrichten mit unterschiedlichen Frequenzen oder mit der gleichen Frequenz senden kann, wie andere Knoten auf dem Bus. Die Gesundheitszustandsnachrichten können sequentiell, simultan oder in irgendeiner Kombination davon gesendet werden. Dieses Beispiel nimmt an, dass jede Nachricht erfolgreich durch jeden anderen Knoten empfangen wird. 5 is a showing an exemplary embodiment of a timeline 502 of health status news 504 - (0-7). A person skilled in the art can recognize that the health status messages 504- (0-7) may be attached to data packets or, in another embodiment, independent messages. A person skilled in the art can further recognize that while the timeline 502 on a millisecond scale, any other timescale can be used. Further, those skilled in the art will recognize that each network element may transmit messages at different frequencies or at the same frequency as other nodes on the bus. The health status messages may be sent sequentially, simultaneously or in any combination thereof. This example assumes that every message is successfully received by every other node.

Die Gesundheitszustandsnachrichten 504-(0-3) können als Initialisierungs-Gesundheitszustandsnachrichten betrachtet werden, welche leere Aufstellungen bei den jeweiligen Knoten A-E auffüllen. Die Gesundheitszustandsnachrichten 504-(5-7) werden andererseits nach der Initialisierungsphase gesendet. In einem Ausführungsbeispiel editieren die Gesundheitszustandsnachrichten, die nach der Initialisierungsphase gesendet wurden, ihre jeweiligen Aufstellungen als durchlaufende Schlange. In einem anderen Ausführungsbeispiel, das bezüglich der 7-8 gezeigt ist, editieren die Knoten ihre jeweilige Überprüfungstabelle oder Überprüfungsmatrix.The health status news 504- (0-3) may be considered as initialization health status messages populating empty lists at the respective nodes AE. The health status news 504- (5-7) On the other hand, they are sent after the initialization phase. In one embodiment, the health status messages sent after the initialization phase edit their respective lists as a traversing queue. In another embodiment, with respect to the 7-8 is shown, the nodes edit their respective validation table or validation matrix.

Eine erste Gesundheitszustandsnachricht 504-0 wird vom Knoten A bei t = 0 ms über den Bus an die Knoten B-E gesendet. Wenn sie erfolgreich empfangen wird, fügt jeder Knoten zu seiner Aufstellung hinzu, dass eine Gesundheitszustandsnachricht vom Knoten A mit einem Zeitstempel von 0ms empfangen wurde.A first health status message 504-0 is sent from the node A at t = 0 ms via the bus to the node BE. If successfully received, each node adds to its inventory that a health status message was received from node A with a timestamp of 0ms.

Eine zweite Gesundheitszustandsnachricht 504-1 wird vom Knoten B bei t = 1 ms über den Bus an die Knoten A und C-E gesendet. Diese Gesundheitszustandsnachricht 504-1 weist eine Aufstellung von Gesundheitszustandsnachrichten auf, die von anderen Knoten empfangen wurden. Bei diesem Punkt weist die Aufstellung die Darstellung vom Knoten A auf, die mit einem Zeitstempel 0ms empfangen wurde.A second health status message 504-1 is sent from node B at t = 1 ms via the bus to nodes A and CE. This health status message 504-1 has a list of health status messages received from other nodes. At this point, the lineup displays the representation of node A, which was received with a timestamp 0ms.

Eine dritte Gesundheitszustandsnachricht 504-2 wird vom Knoten C bei t = 2 ms über den Bus an die Knoten A-B und D-E gesendet. Die Gesundheitszustandsnachricht 504-3 weist eine Aufstellung von Gesundheitszustandsnachrichten auf, die von anderen Knoten empfangen wurden. Bei diesem Punkt weist die Aufstellung der Gesundheitszustandsnachricht 504-3 die Darstellung der Nachricht vom Knoten A auf, die mit einem Zeitstempel 0ms empfangen wurde und die Nachricht vom Knoten B, die mit einem Zeitstempel von 1ms empfangen wurde.A third health status message 504-2 is sent by the node C at t = 2 ms via the bus to the nodes AB and DE. The health status message 504-3 has a list of health status messages received from other nodes. At this point, the statement of health status message indicates 504-3 the representation of the message from node A received with a timestamp 0ms and the message from node B received with a timestamp of 1ms.

Vierte und fünfte Gesundheitszustandsnachrichten 504-3d und 504-3e werden entsprechend vom Knoten D und vom Knoten E über den Bus zu den Knoten A-C und E bzw. zu den Knoten A-D bei t = 3 ms gesendet. An diesem Punkt weist die Aufstellung von beiden Gesundheitszustandsnachrichten 504-3d und 504-3e die Darstellungen der Nachrichten von dem Knoten A, der mit dem Zeitstempel von 0ms empfangen wurde, die Nachricht vom Knoten B, der mit dem Zeitstempel 1ms empfangen wurde, und die Nachricht vom Knoten C mit einem Zeitstempel von 2ms auf.Fourth and fifth health status news 504-3d and 504-3e are respectively transmitted from the node D and from the node E via the bus to the nodes AC and E and to the nodes AD at t = 3 ms. At this point, the lineup of both health status messages 504-3d and 504-3e the representations of the messages from the node A received with the time stamp of 0ms, the message from the node B received with the timestamp 1ms, and the message from the node C with a timestamp of 2ms.

Ein Fachmann kann erkennen, dass die vierten und fünften Nachrichten 504-3d und 504-3e ein Beispiel von Nachrichten sind, die parallel auf dem CAN-Bus gesendet werden. Insgesamt zeigen die beispielhaften Gesundheitszustandsnachrichten, die in 5 dargestellt sind, dass Nachrichten entweder parallel oder sequentiell auf einem CAN-Bus gesendet werden können. Wie oben beschrieben, haben jedoch Nachrichten, die zur gleichen Zeit gesendet werden, eine Paketkollision, wenn ein Ethernet-Netzwerk verwendet wird, und ein oder mehrere Nachrichten können gemäß dem Ethernet-Netzwerkprotokoll erneut gesendet werden. Ein Fachmann kann auch erkennen, dass Nachrichten in einem Ethernet-Netzwerk nicht parallel gesendet werden können, sondern in einer Sequenz kurz nacheinander gesendet werden können. Weiterhin kann ein Fachmann erkennen, dass keine Nachrichten bei 4ms gesendet werden. Dies stellt die Tatsache dar, dass es Leerlaufperioden auf dem CAN-Bus geben kann.A person skilled in the art can recognize that the fourth and fifth messages 504-3d and 504-3e an example of messages sent in parallel on the CAN bus. Overall, the exemplary health status messages available in 5 are shown that messages can be sent either in parallel or sequentially on a CAN bus. However, as described above, messages sent at the same time have a packet collision when an Ethernet network is used, and one or more messages can be retransmitted according to the Ethernet network protocol. A person skilled in the art can also recognize that messages in an Ethernet network can not be sent in parallel but can be sent in sequence in quick succession. Furthermore, a person skilled in the art can recognize that no messages are sent at 4 ms. This represents the fact that there may be idle periods on the CAN bus.

An diesem Punkt haben alle Knoten A-E Gesundheitszustandsnachrichten über den Bus gesendet. Daher hat die Aufstellung bei jedem Knoten Datenpunkte von letzten Gesundheitszustandsnachrichten von jedem anderen Knoten. In diesem Ausführungsbeispiel ersetzt die Aufstellung Anzeigen von Gesundheitszustandsnachrichten an einem Knoten durch irgendeine neu empfangene Gesundheitszustandsnachricht. At this point, all nodes have AE Health status messages sent over the bus. Therefore, the schedule at each node has data points from recent health status messages from each other node. In this embodiment, the deployment replaces health status messages at a node with any newly received health status message.

Genauso sendet der Knoten A bei 5ms eine Gesundheitszustandsnachricht 504-5 über den Bus, wobei die Aufstellung die Darstellungen der Nachricht vom Knoten B aufweist, die mit einem Zeitstempel von 1ms empfangen wurde, die Nachricht vom Knoten C bei 2ms, die Nachricht vom Knoten D mit einem Zeitstempel von 3ms und die Nachricht vom Knoten E mit einem Zeitstempel von 3ms. In diesem Ausführungsbeispiel weist die Aufstellung keinen Eintrag für Knoten A auf, weil die Gesundheitszustandsnachricht selbst diese darstellen kann. Jedoch kann die Aufstellung in anderen Ausführungsbeispielen expliziter bzw. genauer sein oder sie kann auch mehrere Iterationen von Nachrichten von mehreren Knoten aufweisen.The same way, the node sends A at 5ms, a health status message 504-5 over the bus, the listing being the representations of the message from the node B that was received with a timestamp of 1 ms, the message from the node C at 2ms, the message from the node D with a timestamp of 3ms and the message from the node e with a timestamp of 3ms. In this embodiment, the listing has no entry for nodes A because the health status message itself can represent this. However, in other embodiments, the deployment may be more explicit, or it may include multiple iterations of messages from multiple nodes.

Bei t = 6ms sendet der Knoten B eine Gesundheitszustandsnachricht 504-6 über den Bus, wobei die Aufstellung die Darstellungen der Nachricht von der Nachricht von der Nachricht vom Knoten C bei 2ms aufweisen, weiter die Nachricht vom Knoten D mit einem Zeitstempel von 3ms, die Nachricht vom Knoten E mit einem Zeitstempel von 3ms und die Nachricht vom Knoten A mit einem Zeitstempel von 5ms.At t = 6ms, the node sends B a health status message 504-6 over the bus, the assembly comprising the representations of the message from the message from the message from the node C at 2ms, continue the message from the node D with a time stamp of 3 ms, the message from node E with a timestamp of 3 ms and the message from the node A with a timestamp of 5ms.

Bei t = 7ms sendet der Knoten C eine Gesundheitszustandsnachricht 504-7 über den Bus, wobei die Aufstellung die Darstellungen der Nachricht von der Nachricht von der Nachricht von der Nachricht vom Knoten D mit einem Zeitstempel von 3ms, die Nachricht vom Knoten E mit einem Zeitstempel von 3ms, die Nachricht vom Knoten A mit einem Zeitstempel von 5ms und vom Knoten B mit einem Zeitstempel von 6ms aufweist.At t = 7ms the node sends C a health status message 504-7 over the bus, the lineup being the representations of the message from the message from the message from the message from the node D with a timestamp of 3ms, the message from the node e with a timestamp of 3ms, the message from the node A with a timestamp of 5ms and from the node B with a timestamp of 6ms.

Die in 5 gezeigten Gesundheitszustandsnachrichten können daher durch die Knoten analysiert werden, bei denen sie empfangen werden, um sicherzustellen, dass ein Kommunikationskanal von dem Knoten, der die Gesundheitszustandsnachricht an den Knoten gesendet hat, der die Gesundheitszustandsnachricht empfangen hat, ordnungsgemäß funktioniert. Der Kommunikationskanal kann verifiziert werden durch Ausführen der oben beschriebenen CRC-Überprüfungen. Der Kommunikationskanal kann weiter verifiziert werden durch Vergleichen der Zeitstempel in jeder Gesundheitszustandsnachricht mit Zeitstempeln von Gesundheitszustandsnachrichten, die bei jedem Knoten empfangen wurden, und zwar auf einer Basis pro Knoten, was kollektiver Weise das gesamte Netzwerk von Knoten verifizierten kann. Beide dieser Überprüfungen können ausgeführt werden oder in anderen Ausführungsbeispielen kann eine Überprüfung ausgeführt werden. Ein Fachmann könnte weiter andere Wege erdenken, um eine Nachrichtenintegrität von einem Knoten zum anderen zu verifizieren.In the 5 Therefore, health status messages shown may be analyzed by the nodes at which they are received to ensure that a communication channel is functioning properly from the node that sent the health status message to the node that received the health status message. The communication channel can be verified by performing the CRC checks described above. The communication channel can be further verified by comparing the timestamps in each health status message with timestamps of health status messages received at each node on a per-node basis, which can collectively verify the entire network of nodes. Both of these checks may be performed, or in other embodiments, a check may be performed. One skilled in the art could further devise other ways to verify message integrity from one node to another.

Ein Fachmann kann erkennen, dass die hier beschriebenen Beispiele zur Vereinfachung veranschaulichen, dass die Gesundheitszustandsnachrichten alle auf der gleichen Frequenz gesendet werden. Jedoch kann ein Fachmann das beschriebene System konfigurieren, so dass es genauso arbeitet, wenn Gesundheitszustandsnachrichten über den Bus mit unterschiedlichen Frequenzen gesendet werden. In diesem Fall müssen alle Knoten die Frequenz kennen, mit der alle anderen Knoten ihre Nachrichten senden. Mit diesem Wissen können die Knoten genau bestimmen, ob eine Gesundheitszustandsnachricht eines speziellen Knotens empfangen worden sein sollte, oder nicht. Anders gesagt, damit ein empfangender Knoten einen gebenden bzw. sendenden Knoten überprüfen kann, kann der empfangende Knoten die Zeit, zu der er zuletzt eine Nachricht von dem empfangenden Knoten (Übersetzer: sendenden Knoten) empfangen hat, mit der bekannten Frequenz des Sendens von Gesundheitszustandsnachrichten des empfangenden Knotens vergleichen. Wenn mehr Zeit verstrichen ist, als die Frequenz, kann der Kommunikationskanal mit dem Knoten fehlerhaft sein. Dieses Ausführungsbeispiel von Knoten, die Nachrichten mit unterschiedlichen, jedoch bekannten, Frequenzen senden, kann auf die anderen hier beschriebenen Ausführungsbeispiele angewendet werden.One skilled in the art will appreciate that the examples described herein for simplicity illustrate that the health status messages are all sent on the same frequency. However, one skilled in the art can configure the described system to work the same way when health status messages are sent over the bus at different frequencies. In this case, all nodes must know the frequency with which all other nodes send their messages. With this knowledge, the nodes can accurately determine whether or not a health status message of a particular node should have been received. In other words, in order for a receiving node to check a sending node, the receiving node may determine the time at which it last received a message from the receiving node (translator: sending node) at the known frequency of sending health status messages of the receiving node. If more time has elapsed than the frequency, the communication channel with the node may be faulty. This embodiment of nodes transmitting messages at different but known frequencies may be applied to the other embodiments described herein.

6 ist ein Blockdiagramm 600, welches eine Überprüfung einer Kommunikationsleitung veranschaulicht. In einem Ausführungsbeispiel wird die Überprüfung beim Knoten A 208a auf seiner Kommunikationsleitung vom Knoten B 208b ausgeführt, wie zuvor bezüglich 2 beschrieben. Der Knoten B 208b sendet eine Gesundheitszustandsnachricht 504-6, wie mit Bezug auf 5 beschrieben, an ein Vergleichsmodul 602 des Knotens A 208a. Das Vergleichsmodul 602 vergleicht die Gesundheitszustandsnachricht 504-6 und seine Aufstellung mit der Aufstellung 608 des Knotens A 208a. Bei dem Vergleich sind die Einträge für die Knoten, C, D, E, und A konsistent. Die Aufstellung 608 weist auch einen Eintrag für den Knoten B bei 1ms auf, da er noch nicht die gegenwärtige Gesundheitszustandsnachricht 504-6 des Knotens B ersetzt hat. Jedoch kann das Vergleichsmodul 602 dies berücksichtigen und eine Überprüfung der Verbindung des Knotens B mit dem Knoten A gestatten 606. 6 is a block diagram 600 which illustrates a check of a communication line. In one embodiment, the check is at the node A 208a on his communication line from the node B 208b carried out as previously with respect to 2 described. The knot B 208b sends a health status message 504-6 as related to 5 described to a comparison module 602 of the node A 208a , The comparison module 602 compares the health status message 504 - 6 and his lineup with the lineup 608 of the node A 208a , In the comparison, the entries for the nodes, C . D . e , and A consistent. The preparation 608 also has an entry for the node B at 1ms, since it is not yet the current health status message 504 - 6 of node B has replaced. However, the comparison module 602 Take this into consideration and verify the connection of the node B with the node A allow 606 ,

Wenn jedoch die Einträge der Gesundheitszustandsnachricht 504-6 nicht mit den Einträgen der Aufstellung 608 übereinstimmen, dann kann das System die Kommunikationsverbindung als nicht verifiziert markieren. Das System kann beispielsweise den Knoten A 208a oder den Knoten B 208b als fehlerhaft markieren bzw. mit Fleck versehen. Das System kann auch Nachrichten zum Vergleich aller Überprüfungen von anderen Knoten senden. Dies kann beispielsweise zeigen, dass die Nachrichten des Knotens B 208b an alle anderen Knoten in dem Netzwerk korrumpiert bzw. gestört waren und der Rest der Knoten kann annehmen, dass der Knoten B fehlerhaft ist. In einem weiteren Beispiel, das unten beschrieben wird, können kollektiv empfangene Aufstellungen bzw. Logs bei einem Knoten verglichen werden, um die Quelle eines Netzwerksproblems oder eines Fehlers in einem Knoten zu bestimmen.However, if the entries of the health status message 504-6 not with the entries of list 608 then the system can mark the communication connection as not verified. For example, the system can use the node A 208a or the node B 208b marked as defective or provided with stain. The system can also send messages comparing all checks from other nodes. This can, for example, show that the messages of the node B 208b to all other nodes in the network were corrupted and the rest of the nodes can assume that the node B is faulty. In another example, described below, collectively received logs may be compared at a node to determine the source of a network problem or failure in a node.

7 ist eine , welche eine beispielhafte Ausführungsform einer Überprüfungs- bzw. Verifizierungstabelle 702 veranschaulicht, die in einem Ausführungsbeispiel der vorliegenden Erfindung eingesetzt ist. Eine Verifizierungstabelle 702 wird basierend auf empfangene Logs bzw. Aufstellungen von jedem Knoten bei einem speziellen Knoten aufgebaut. Die Verifizierungstabelle 702 kann bei jedem Knoten die gleiche sein, und zwar unter der Annahme, dass jeder Knoten jeder Gesundheitszustandsnachricht und jede entsprechende Aufstellung korrekt empfangen hat. In Ausführungsbeispielen kann eine separate Aufstellung (beispielsweise die Aufstellung 208 der 6) für die Gesundheitszustandsnachricht aufrechterhalten werden, die bei jedem Knoten empfangen wurde. Jedoch ist die Verifizierungstabelle 702 ein alternatives Ausführungsbeispiel, welches robuster ist, da sie die Zeitstempel der Nachrichten speichert, die bei dem speziellen Knoten empfangen wurden, genauso wie die Zeitstempel der Aufstellungen bzw. Logs von allen Gesundheitszustandsnachrichten. 7 is a showing an exemplary embodiment of a verification table 702 illustrated used in an embodiment of the present invention. A verification table 702 is established based on received logs from each node at a particular node. The verification table 702 may be the same at each node, assuming that each node has received each health status message and each corresponding list correctly. In embodiments, a separate listing (for example, the installation 208 of the 6 ) for the health status message received at each node. However, the verification table is 702 an alternative embodiment which is more robust in that it stores the timestamps of the messages received at the particular node as well as the timestamps of the logs of all health status messages.

Die Verifizierungstabelle 702 stellt die Aufstellungen dar, die von der jüngsten Gesundheitszustandsnachricht von jedem Knoten empfangen wurden. Jede Spalte der Verifizierungstabelle 702 stellt eine Aufstellung von dem Knoten dar, der im Header bzw. Kopfteil aufgelistet ist. Jede Zeile der Verifizierungstabelle 702 stellt den Zeitstempel von jedem speziellen Knoten in dem Netzwerk dar. Daher stellt die Zelle bei der Spalte „Knoten A“ und die Zeile „Knoten E“ den Zeitstempel des Knotens E in der Aufstellung der jüngsten Gesundheitszustandsnachricht des Knotens A dar.The verification table 702 Represents the statements received from the most recent health status message from each node. Each column of the verification table 702 represents a list of the node listed in the header. Each line of the verification table 702 represents the timestamp of each particular node in the network. Therefore, the cell in the column "node A "And the line" node e "The time stamp of the node e in the formation of the node's recent health status message A represents.

Ein Fachmann kann weiter erkennen, dass die Verifizierungstabelle 702 erweitert werden kann, um mehr Aufstellungen bzw. Logs zu speichern, als die jüngste Aufstellung von jedem Knoten. Beispielsweise kann die Verifizierungstabelle 702 zu einer Verifizierungsmatrix erweitert werden, welche eine Sammlung von mehreren Verifizierungstabellen ist, wobei jede Schicht frühere Sätze von empfangenden Gesundheitszustandsnachrichten darstellt. Wenn jedoch eine Verifizierungstabelle 702 verwendet wird, kann die Tabelle frühere Einträge überschreiben, wenn neue Gesundheitszustandsnachrichten eintreffen.One skilled in the art can further recognize that the verification table 702 can be extended to store more logs than the most recent set up of each node. For example, the verification table 702 to a verification matrix, which is a collection of multiple verification tables, each layer representing earlier sets of receiving health status messages. However, if a verification table 702 The table may overwrite earlier entries as new health status messages arrive.

Einige Daten in der Verifizierungstabelle 702 können verglichen werden, um zu bestimmen, ob ein Versagen oder ein Kommunikationsfehler aufgetreten ist, jedoch einige Daten veraltet sind. Beispielsweise stellen die schraffierten Zellen in der Verifizierungstabelle die Zeit dar, zu der die Gesundheitszustandsnachricht von diesem speziellen Knoten gesendet wurde (beispielsweise hat der Knoten A seine Gesundheitszustandsnachricht bei 5ms gesendet, der Knoten B hat seine Gesundheitszustandsnachricht bei 6ms gesendet usw.). In der Tabelle können die Daten in jeder Zeile verglichen werden, um die Verbindung zu verifizieren. Der Knoten ist beginnend beim Knoten C angeordnet, wobei jede Zeile und Spalte sequentiell rückwärts in der Zeit organisiert sind, und zwar basierend auf der letzten Gesundheitszustandsnachricht, die von jedem Knoten empfangen wurde. Dies macht es einfacher, neue Daten und veraltete Daten zu visualisieren.Some data in the verification table 702 can be compared to determine if a failure or communication error has occurred but some data is outdated. For example, the hatched cells in the verification table represent the time at which the health status message was sent from that particular node (e.g., the node has A his health status message sent at 5ms, the node B has sent his health status message at 6ms etc). In the table, the data in each row can be compared to verify the connection. The node is starting at the node C with each row and column organized sequentially backward in time based on the most recent health status message received from each node. This makes it easier to visualize new data and stale data.

Beispielsweise sind die Knoten D und E der einfache Fall, wo alle Zeitstempel über alle Knoten hinweg zusammenpassen, und daher können diese Verbindungen über das gesamte Netzwerk verifiziert werden. Diese Fälle werden durch die Tatsache einfach gemacht, dass zu dem Zeitpunkt, wo die Verifizierung aufgenommen wurde, t = 7 ms, die Knoten D und E keine Aktualisierungen seit ihrer letzten Aktualisierung gesendet hatten.For example, the nodes D and e the simple case where all timestamps match across all nodes, and therefore these connections can be verified across the entire network. These cases are made simple by the fact that at the time the verification was taken, t = 7 ms, the nodes D and e have not sent any updates since their last update.

Jedoch trifft eine komplexere Analyse auf die Zeiten zu, die beispielsweise den Knoten A betreffen. Die Einträge des Knotens A in der Aufstellung der Knoten C, B und A sind die gleichen, das heißt 5ms, jedoch sind die Einträge in den Aufstellungen der Knoten E und D unterschiedliche, das heißt 0ms. Das Verfahren kann bestimmen, dass die Knoten D und E nicht fehlerhaft, sondern einfach veraltet sind, in dem es überprüft, ob die Gesundheitszustandsnachricht von den Knoten B und E beide bei 3ms gesendet wurden - und daher einen Zeitstempeln von 5ms nicht ihrer letzten Nachrichten enthalten sein konnte. Jedoch können Ausführungsbeispiele der Erfindung ein Ausführungsbeispiel der Verifizierungstabelle 702 aufweisen, die zwei oder mehr Versionen von Zeitstempelaufstellungen von allen Knoten enthält. Auf diese Weise können veraltete Zeitstempel mit Zeitstempeln eines vorherigen Clock- bzw. Taktzyklus verglichen werden.However, a more complex analysis applies to times such as the node A affect. The entries of the node A in the list of nodes C, B and A are the same, that is 5ms, but the entries in the lists are the nodes e and D different, that is 0ms. The method may determine that the nodes D and e not flawed, but simply obsolete, in that it checks to see if the health status message from the nodes B and e both were sent at 3ms - and therefore a timestamp of 5ms could not be included in their latest messages. However, embodiments of the invention may be an embodiment of the verification table 702 which contains two or more versions of timestamp statements from all nodes. In this way, outdated timestamps can be compared with timestamps of a previous clock cycle.

Im allgemeinen Fall kann das Verfahren jedoch Knoten mit Aufstellungen mit dem gleichen Zeitstempel in jeder ihrer Gesundheitszustandsnachrichten verifizieren, solange jene Gesundheitszustandsnachrichten zur gleichen Zeit oder später als der Zeitstempel gesendet werden. Für aufgezeichnete Zeitstempel eines Knotens, die vor dem letzten berichteten Zeitstempel dieses Knotens sind, können diese Knoten mit dem letzten Taktzyklus von Zeitstempeln verglichen werden, oder sie können alternativ bis zu einer neueren Gesundheitszustandsnachricht ignoriert werden.In the general case, however, the method can use nodes with lists with the same timestamp in each of their Health status messages verify as long as those health status messages are sent at the same time or later than the time stamp. For recorded timestamps of a node that are prior to the last reported timestamp of that node, these nodes may be compared to the last clock cycle of timestamps, or alternatively they may be ignored until a later health status message.

8 ist ein Flussdiagramm 800, welches eine beispielhafte Ausführungsform des Verfahrens veranschaulicht, welches von der vorliegenden Erfindung bezüglich der oben beschriebenen Verifizierungstabelle eingesetzt wird. Das Verfahren beginnt durch Empfangen einer Gesundheitszustandsnachricht von einem anderen Netzwerkelement auf einem gleichen Netzwerkbus (802). Dann speichert das Verfahren die Gesundheitszustandsnachricht und die Aufstellung von Zeitstempeln in der Gesundheitszustandsnachricht in einer Verifizierungstabelle (804). In dem dies über mehrere Gesundheitszustandsnachrichten hinweg getan wird, wächst die Verifizierungstabelle an, so dass sie einen Verlauf aller Nachrichten enthält. Ein Fachmann kann erkennen, dass die Verifizierungstabelle unbegrenzt Gesundheitszustandsnachrichten speichern kann, für eine eingestellte Zeitperiode speichern kann, für eine eingestellte Periode von Taktzyklen speichern kann oder für eine andere konfigurierbare Zeitperiode. Dann bestimmt das Verfahren für jeden speziellen Knoten ob die Zeitstempel für diesen speziellen Knoten in den Aufstellungen von jeder Gesundheitszustandsnachricht, die nun in der Verifizierungstabelle gespeichert sind, die an oder nach dem Zeitstempel der Gesundheitszustandsnachricht gesendet worden sind, zueinander passen (806). Wenn dies so ist, verifiziert das Verfahren, dass der spezielle Knoten ordnungsgemäß funktioniert (808). Wenn nicht, markiert das Verfahren den Knoten bezüglich einer Aktion bzw. setzt ein Flag (810), so dass der Knoten außer Dienst gesetzt wird, was eine Bewertung des Knotens abschaltet bzw. beendet usw.. 8th is a flowchart 800 which illustrates an exemplary embodiment of the method employed by the present invention with respect to the verification table described above. The method begins by receiving a health status message from another network element on a same network bus ( 802 ). The method then stores the health status message and the establishment of time stamps in the health status message in a verification table ( 804 ). By doing this across multiple health status messages, the verification table grows to include a history of all messages. One skilled in the art can appreciate that the verification table can store health status messages indefinitely, store for a set period of time, store for a set period of clock cycles, or for some other configurable period of time. Then, for each particular node, the method determines whether the timestamps for that particular node in the lists of each health status message now stored in the verification table that have been sent on or after the timestamp of the health status message match each other ( 806 ). If so, the procedure verifies that the specific node is functioning properly ( 808 ). If not, the method marks the node with respect to an action or sets a flag ( 810 ), so that the node is put out of service, which turns off a rating of the node, etc., etc.

Ein Fachmann kann weiter erkennen, dass das obige Verfahren ausgeführt werden kann, ohne formell eine Verifizierungstabelle zusammenzustellen, wobei es jedoch die Vielzahl von Gesundheitszustandsnachrichten in einem Speicher oder in einer Datenbank speichern kann und jeden Zeitstempel separat für jeden Vergleich aufrufen kann. Jedoch abstrahiert das Zusammenstellen der Verifizierung bzw. Verifizierungstabelle weg von einem solchen Datenaufruf und hilft bei der Verarbeitung des Vergleichs.One skilled in the art may further appreciate that the above method may be performed without formally composing a verification table, but may store the plurality of health status messages in a memory or in a database and call each time stamp separately for each comparison. However, the compilation of the verification table abstracts away from such a data call and aids in the processing of the comparison.

9 veranschaulicht ein Computernetzwerk oder eine ähnliche digitale Verarbeitungsumgebung in der Ausführungsbeispiele der vorliegenden Erfindung implementiert werden können. 9 Illustratively, a computer network or similar digital processing environment may be implemented in the embodiments of the present invention.

Der bzw. die Client-Computer/Vorrichtung(en) 50 und der bzw. die Server-Computer 60 sieht bzw. sehen Verarbeitungs-, Speicherungs- und Eingabe/Ausgabe-Vorrichtungen vor, welche Anwendungsprogramme usw. ausführen. Der bzw. die Client-Computer/Vorrichtung(en) 50 können auch durch das Kommunikationsnetzwerk 70 mit anderen Berechnungs- bzw. Computervorrichtungen verbunden sein, einschließlich anderer Client-Vorrichtungen/Verfahren 50 und Server-Computer 60. Das Kommunikationsnetzwerk 70 kann Teil eines Fernzugriffsnetzwerks, eines globalen Netzwerkes (beispielsweise das Internet), einer weltweiten Sammlung von Computern, Lokalbereichs- oder Fernbereichsnetzwerke und Gateways sein, die gegenwärtig jeweilige Protokolle (TCP/IP, Bluetooth®, eine registrierte Marke der Bluetooth SIG, Inc., usw.) verwenden, um miteinander zu kommunizieren. Andere elektronische Vorrichtungs-/Computernetzwerkarchitekturen sind geeignet bzw. möglich.The client computer / device (s) 50 and the server computer (s) 60 provide processing, storage, and input / output devices that execute application programs, and so on. The client computer / device (s) 50 can also through the communication network 70 be associated with other computing devices, including other client devices / methods 50 and server computer 60 , The communication network 70 may be part of a remote access network, a global network (e.g., the Internet), a worldwide collection of computers, local area or wide area networks, and gateways that currently have respective protocols (TCP / IP, Bluetooth®, a registered trademark of Bluetooth SIG, Inc., etc.) to communicate with each other. Other electronic device / computer network architectures are suitable.

10 ist eine Abbildung eines Beispiels einer internen Struktur eines Computers (beispielsweise Client-Prozessor/Vorrichtung 50 oder Server-Computer 60) in dem Computersystem der 9. Jeder Computer 50, 60 enthält einen System-Bus 79, wo ein Bus ein Satz von Hardware- bzw. Komponentenleitungen ist, die für die Datenübertragung zwischen den Komponenten eines Computers oder eines Verarbeitungssystems verwendet werden. Der System-Bus 79 ist im Wesentlichen eine gemeinsam verwendete Leitung, welche unterschiedliche Elemente eines Computersystems (beispielsweise Prozessor, Plattenspeicher, Speicher, Eingabe/Ausgabe-Anschlüsse, Netzwerkanschlüsse usw.) verbindet, welche die Übertragung von Informationen zwischen den Elementen ermöglicht. An dem System-Bus 79 ist eine I/O- bzw. Eingabe/Ausgabe-Vorrichtungsschnittstelle 82 angebracht, um verschiedene Eingabe- und Ausgabe-Vorrichtungen (beispielsweise Tastatur, Maus, Anzeigen, Drucker, Lautsprecher usw.) mit dem Computer 50, 60 zu verbinden. Eine Netzwerkschnittstelle 86 gestattet, dass der Computer eine Verbindung zu verschiedenen anderen Vorrichtungen herstellt, die mit einem Netzwerk verbunden sind (beispielsweise mit dem Netzwerk 70 der 9). Der Speicher 90 sieht einen flüchtigen Speicher für Computer-Software-Instruktionen 92 und Daten 94 vor, die verwendet werden, um ein Ausführungsbeispiel der vorliegenden Erfindung zu implementieren (beispielsweise das Vergleichsmodul, den CAN-Bus und den Verifizierungstabellenerzeugungs-Code, die oben im Detail beschrieben wurden). Der Plattenspeicher 95 sieht einen nicht-flüchtigen Speicher für Computer-Software-Instruktionen 92 und Daten 94 vor, die verwendet werden, um ein Ausführungsbeispiel der vorliegenden Erfindung zu implementieren. Eine zentrale Prozessoreinheit 84 ist auch an dem System-Bus 79 angeschlossen und sorgt für die Ausführung von Computerinstruktionen. 10 FIG. 12 is a diagram of an example of an internal structure of a computer (eg, client processor / device 50 or server computer 60 ) in the computer system of 9 , Every computer 50 . 60 contains a system bus 79 where a bus is a set of hardware or component lines used for data transmission between the components of a computer or processing system. The system bus 79 is essentially a shared line that connects different elements of a computer system (eg, processor, disk storage, memory, input / output ports, network ports, etc.) that allows the transfer of information between the elements. On the system bus 79 is an I / O or input / output device interface 82 attached to various input and output devices (eg, keyboard, mouse, displays, printers, speakers, etc.) to the computer 50 . 60 connect to. A network interface 86 allows the computer to connect to various other devices connected to a network (such as the network 70 of the 9 ). The memory 90 sees a volatile memory for computer software instructions 92 and dates 94 which are used to implement an embodiment of the present invention (e.g., the comparison module, the CAN bus, and the verification table generation code described in detail above). The disk storage 95 sees a non-volatile memory for computer software instructions 92 and dates 94 which are used to implement an embodiment of the present invention. A central processor unit 84 is also on the system bus 79 connected and ensures the execution of computer instructions.

In einem Ausführungsbeispiel sind die Prozessorroutinen 92 und die Daten 94 ein Computerprogrammprodukt (im Allgemeinen als 92 bezeichnet), welches ein nicht-transitorisches, computerlesbares Medium (beispielsweise ein entfernbares Speichermedium, wie beispielsweise ein oder mehrere DVD-ROMs, CD-ROMs, Disketten, Bänder usw.) aufweist, welches zumindest einen Teil der Software bzw. Programminstruktionen für das System der Erfindung vorsieht. Das Computerprogrammprodukt 92 kann durch irgendeine geeignete Programm- bzw. Software-Installationsprozedur installiert werden, wie in der Technik wohl bekannt ist. In einem weiteren Ausführungsbeispiel kann zumindest ein Teil der Software-Instruktionen auch über eine Kabelkommunikation und/oder eine drahtlose Verbindung heruntergeladen werden. In anderen Ausführungsbeispielen sind die Programme der Erfindung ein von einem Computerprogramm propagiertes bzw. weitergeleitetes Signalprodukt, welches in einem geleiteten bzw. propagierten Signal auf einem Weiterleitungsmedium verkörpert ist (beispielsweise auf einer Funkwelle, einer Infrarotwelle, einer Laserwelle, einer Schallwelle oder einer elektrischen Welle, die über ein globales Netzwerk, wie beispielsweise das Internet oder ein anderes Netzwerk auf andere Netzwerke) weitergeleitet wird. Ein solches Trägermedium oder solche Trägersignale können eingesetzt werden, um zumindest einen Teil der Software-Instruktionen für die Routinen/Programme 92 der vorliegenden Erfindung vorzusehen. In one embodiment, the processor routines are 92 and the data 94 a computer program product (generally referred to as 92) comprising a non-transitory, computer-readable medium (eg, a removable storage medium such as one or more DVD-ROMs, CD-ROMs, floppy disks, tapes, etc.) that includes at least a portion of the Software or program instructions for the system of the invention provides. The computer program product 92 may be installed by any suitable software installation procedure, as is well known in the art. In another embodiment, at least a portion of the software instructions may also be downloaded via cable communication and / or wireless connection. In other embodiments, the programs of the invention are a signal product propagated by a computer program embodied in a propagated signal on a relay medium (eg, a radio wave, an infrared wave, a laser wave, a sound wave or an electric wave, which is routed to other networks via a global network such as the Internet or another network). Such carrier medium or carrier signals may be employed to provide at least a portion of the software instructions for the routines / programs 92 to provide the present invention.

Die Lehren von allen Patenten, veröffentlichten Anmeldungen und Referenzen, die hier zitiert werden, sind in ihrer Gesamtheit durch Bezugnahme mit aufgenommen.The teachings of all patents, published applications, and references cited herein are incorporated by reference in their entirety.

Während dieser Erfindung insbesondere mit Bezugnahme auf beispielhafte Ausführungsformen davon gezeigt und beschrieben worden ist, wird der Fachmann verstehen, dass verschiedene Veränderungen bezüglich Form und Details daran vorgenommen werden können, ohne vom Umfang der Erfindung abzuweichen, wie durch die beigefügten Ansprüche umrissen wird.While this invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the scope of the invention as outlined by the appended claims.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 8972772 [0017]US 8972772 [0017]

Zitierte Nicht-PatentliteraturCited non-patent literature

  • ISO 11897-1:2003 [0018]ISO 11897-1: 2003 [0018]
  • ISO 11898-1:2015 [0018]ISO 11898-1: 2015 [0018]
  • ISO 11898 [0018]ISO 11898 [0018]
  • ISO-Standard 11898-3 [0018]ISO standard 11898-3 [0018]

Claims (24)

Verfahren, welches Folgendes aufweist: Empfangen, bei einem ersten Knoten von einer Vielzahl von Knoten, die jeweils mit einem gemeinsamen Netzwerkbus verbunden sind, einer Gesundheitszustandsnachricht von einem zweiten der Vielzahl von Knoten, wobei die Gesundheitszustandsnachricht eine Aufstellung von Gesundheitszustandsnachrichten von anderen Knoten der Vielzahl von Knoten aufweist, wobei jeder Knoten Gesundheitszustandsnachrichten mit einer Frequenz sendet, die der Vielzahl von Knoten bekannt ist; Vergleichen, bei den ersten Knoten, der Aufstellung von Nachrichten von anderen Knoten in der empfangenen Gesundheitszustandsnachricht mit einer Aufstellung von Gesundheitszustandsnachrichten, die zuvor von anderen Knoten empfangen wurden, die von dem ersten Knoten gespeichert wurden; und Bestimmen eines Gesundheitszustandes von jedem Knoten basierend auf dem Vergleich.A method comprising: Receiving, at a first node of a plurality of nodes each connected to a common network bus, a health status message from a second one of the plurality of nodes, the health status message comprising a health status message list from other nodes of the plurality of nodes, each node Sends health status messages at a frequency known to the plurality of nodes; Comparing, at the first nodes, the establishment of messages from other nodes in the received health status message with a list of health status messages previously received from other nodes stored by the first node; and Determining a health status of each node based on the comparison. Verfahren nach Anspruch 1, wobei das Empfangen einer Gesundheitszustandsnachricht weiter aufweist, mehrere Gesundheitszustandsnachrichten von einem oder mehreren der anderen Knoten der Vielzahl von Knoten zu empfangen, und wobei das Vergleichen weiter aufweist, jede Aufzeichnung von Nachrichten von der empfangenen Vielzahl von Gesundheitszustandsnachrichten mit der Aufstellung von Gesundheitszustandsnachrichten zu vergleichen, die von dem ersten Knoten gespeichert wurden.Method according to Claim 1 wherein receiving a health status message further comprises receiving a plurality of health status messages from one or more of the other nodes of the plurality of nodes, and wherein the comparing further comprises comparing each record of messages from the received plurality of health status messages with the health status message list; that were stored by the first node. Verfahren nach Anspruch 1, wobei der gemeinsame Bus ein Controller Area Network- bzw. CAN-Bus und/oder ein Ethernet-Bus ist.Method according to Claim 1 , wherein the common bus is a Controller Area Network or CAN bus and / or an Ethernet bus. Verfahren nach Anspruch 1, welches weiter Folgendes aufweist: Erzeugen, bei dem ersten Knoten, der Aufstellung von Gesundheitszustandsnachrichten von anderen Knoten, die durch den ersten Knoten gespeichert wurden, und zwar durch Aufzeichnen eines Zeitstempels von jeder empfangenen Gesundheitszustandsnachricht von anderen Knoten in der Aufstellung während eines Clock- bzw. Taktzyklus des ersten Knotens.Method according to Claim 1 further comprising: at the first node, generating health status messages from other nodes stored by the first node by recording a timestamp of each received health status message from other nodes in the deployment during a clocking session Clock cycle of the first node. Verfahren nach Anspruch 1, wobei das Bestimmen eines Gesundheitszustandes eines speziellen Knotens ausgeführt wird durch Verifizieren von Zeitstempeln von Gesundheitszustandsnachrichten von dem speziellen Knoten, der mit Zeitstempeln in der Aufstellung übereinstimmt, die von dem ersten Knoten gespeichert wurde.Method according to Claim 1 wherein determining a health status of a particular node is performed by verifying time stamps of health status messages from the particular node that matches time stamps in the location that was stored by the first node. Verfahren nach Anspruch 1, welches weiter Folgendes aufweist: Ausstrahlen bzw. Broadcasten von dem ersten Knoten über den gemeinsamen Netzwerkbus, einer Gesundheitszustandsnachricht des ersten Knotens zu den anderen Knoten, wobei der Gesundheitszustand eine Aufstellung von anderen empfangenen Gesundheitszustandsnachrichten enthält.Method according to Claim 1 further comprising: broadcasting from the first node over the common network bus, a health status message of the first node to the other nodes, the health status including a list of other received health status messages. Verfahren nach Anspruch 1, wobei jeder Knoten die gleiche Taktfrequenz hat.Method according to Claim 1 , where each node has the same clock frequency. Verfahren nach Anspruch 1, wobei das Vergleichen weiter aufweist, zu bestimmen, dass alle Gesundheitszustandsnachrichten bei dem ersten Knoten mit Zeitstempeln ihre jeweiligen Knoten in den Aufstellungen von Gesundheitszustandsnachrichten von der Vielzahl von Knoten übereinstimmen; und ansonsten Markieren der Knoten mit nicht übereinstimmenden Zeitstempeln als außer Synchronisation bzw. nicht synchronisiert.Method according to Claim 1 wherein the comparing further comprises determining that all health status messages at the first time stamped node match their respective nodes in the health status message listings of the plurality of nodes; and otherwise marking the nodes with mismatched timestamps as out-of-sync. Verfahren nach Anspruch 1, welches weiter aufweist, eine fehlertolerante Gruppe, basierend auf dem bestimmten Gesundheitszustand von jedem Knoten zu bilden.Method according to Claim 1 which further comprises forming a fault-tolerant group based on the determined health of each node. Verfahren nach Anspruch 1, welches weiter aufweist, einen Gesundheitszustand des ersten Knotens durch Vergleichen eines Eintrags der Aufstellung von Nachrichten in der empfangenen Gesundheitszustandsnachricht entsprechend dem ersten Knoten mit Einträgen der Aufstellung von Nachrichten in anderen empfangenen Gesundheitszustandsnachrichten zu bestimmen.Method according to Claim 1 which further comprises determining a health state of the first node by comparing an entry of the establishment of messages in the received health status message corresponding to the first node with entries of the establishment of messages in other received health status messages. System, welches Folgendes aufweist: einen gemeinsamen Netzwerkbus; und eine Vielzahl von Knoten, die jeweils mit dem gemeinsamen Netzwerkbus verbunden sind; wobei ein erster Knoten einer Vielzahl von Knoten konfiguriert ist zum: Empfangen einer Gesundheitszustandsnachricht von einem zweiten der Vielzahl von Knoten, wobei die Gesundheitszustandsnachricht eine Aufstellung von Gesundheitszustandsnachrichten von anderen Knoten der Vielzahl von Knoten enthält, wobei jeder Knoten Gesundheitszustandsnachrichten mit einer Frequenz sendet, die der Vielzahl von Knoten bekannt ist; Vergleichen, bei dem ersten Knoten, der Aufstellung von Nachrichten von anderen Knoten in der empfangenen Gesundheitszustandsnachricht mit einer Aufstellung von Gesundheitszustandsnachrichten, die zuvor von anderen Knoten empfangen wurden, die von dem ersten Knoten gespeichert wurden; und Bestimmen eines Gesundheitszustandes von jedem Knoten, basierend auf dem Vergleich.A system comprising: a common network bus; and a plurality of nodes each connected to the common network bus; wherein a first node of a plurality of nodes is configured to: Receiving a health status message from a second of the plurality of nodes, the health status message including a list of health status messages from other nodes of the plurality of nodes, each node sending health status messages at a frequency known to the plurality of nodes; Comparing, at the first node, the establishment of messages from other nodes in the received health status message with a list of health status messages previously received from other nodes stored by the first node; and Determining a health status of each node based on the comparison. System nach Anspruch 11, wobei das Empfangen einer Gesundheitszustandsnachricht weiter aufweist, mehrere Gesundheitszustandsnachrichten von einem oder mehreren der anderen Knoten der Vielzahl von Knoten zu empfangen, und wobei das Vergleichen weiter aufweist, jede Aufzeichnung von Nachrichten von der empfangenen Vielzahl von Gesundheitszustandsnachrichten mit der Aufstellung von Gesundheitszustandsnachrichten zu vergleichen, die von dem ersten Knoten gespeichert wurden.System after Claim 11 wherein receiving a health status message further comprises a plurality of health status messages receive from one or more of the other nodes of the plurality of nodes, and wherein the comparing further comprises comparing each record of messages from the received plurality of health status messages with the establishment of health status messages stored by the first node. System nach Anspruch 11, wobei der gemeinsame Bus ein Controller Area Network- bzw. CAN-Bus und/oder ein Ethernet-Bus ist.System after Claim 11 , wherein the common bus is a Controller Area Network or CAN bus and / or an Ethernet bus. System nach Anspruch 11, wobei der erste Knoten weiter konfiguriert ist zum: Erzeugen der Aufstellung von Gesundheitszustandsnachrichten von anderen Knoten, die durch den ersten Knoten gespeichert wurden, und zwar durch Aufzeichnen eines Zeitstempels von jeder empfangenen Gesundheitszustandsnachricht von anderen Knoten in der Aufstellung während eines Clock- bzw. Taktzyklus des ersten Knotens.System after Claim 11 wherein the first node is further configured to: generate the health status message list from other nodes stored by the first node by recording a time stamp of each received health status message from other nodes in the deployment during a clock cycle of the first node. System nach Anspruch 11, wobei das Bestimmen eines Gesundheitszustandes eines speziellen Knotens ausgeführt wird durch Verifizieren von Zeitstempeln von Gesundheitszustandsnachrichten von dem speziellen Knoten, der mit Zeitstempeln in der Aufstellung übereinstimmt, die von dem ersten Knoten gespeichert wurde.System after Claim 11 wherein determining a health status of a particular node is performed by verifying time stamps of health status messages from the particular node that matches time stamps in the location that was stored by the first node. System nach Anspruch 11, wobei der erste Knoten weiter konfiguriert ist zum Ausstrahlen bzw. Broadcasten über den gemeinsamen Netzwerkbus, einer Gesundheitszustandsnachricht des ersten Knotens zu den anderen Knoten, wobei der Gesundheitszustand eine Aufstellung der anderen empfangenen Gesundheitszustandsnachrichten enthält.System after Claim 11 wherein the first node is further configured to broadcast over the common network bus a health status message of the first node to the other nodes, the health status including a list of the other received health status messages. System nach Anspruch 11, wobei jeder Knoten die gleiche Taktfrequenz hat.System after Claim 11 , where each node has the same clock frequency. System nach Anspruch 11, wobei das Vergleichen weiter aufweist, zu bestimmen, dass alle Gesundheitszustandsnachrichten bei dem ersten Knoten mit Zeitstempeln ihre jeweiligen Knoten in den Aufstellungen von Gesundheitszustandsnachrichten von der Vielzahl von Knoten übereinstimmen; und ansonsten Markieren der Knoten mit nicht übereinstimmenden Zeitstempeln als außer Synchronisation bzw. nicht synchronisiert.System after Claim 11 wherein the comparing further comprises determining that all health status messages at the first time stamped node match their respective nodes in the health status message listings of the plurality of nodes; and otherwise marking the nodes with mismatched timestamps as out-of-sync. System nach Anspruch 11, wobei der erste Knoten weiter konfiguriert ist, um eine fehlertolerante Gruppe mit anderen Knoten, basierend auf dem bestimmten Gesundheitszustand von jedem Knoten zu bilden.System after Claim 11 wherein the first node is further configured to form a fault-tolerant group with other nodes based on the determined health of each node. System nach Anspruch 11, wobei der erste Knoten weiter konfiguriert ist, um einen Gesundheitszustand des ersten Knotens durch Vergleichen eines Eintrags der Aufstellung von Nachrichten in der empfangenen Gesundheitszustandsnachricht entsprechend dem ersten Knoten mit Einträgen der Aufstellung von Nachrichten in anderen empfangenen Gesundheitszustandsnachrichten zu bestimmen.System after Claim 11 wherein the first node is further configured to determine a health status of the first node by comparing an entry of the establishment of messages in the received health status message corresponding to the first node with entries of the establishment of messages in other received health status messages. Nicht-transitorisches, computerlesbares Medium, welches konfiguriert ist, um Instruktionen zu speichern, wobei die Instruktionen, wenn sie von einem Prozessor geladen und ausgeführt werden, den Prozessor veranlassen zum Empfangen, bei einem ersten Knoten von einer Vielzahl von Knoten, die jeweils mit einem gemeinsamen Netzwerkbus verbunden sind, einer Gesundheitszustandsnachricht von einem zweiten der Vielzahl von Knoten, wobei die Gesundheitszustandsnachricht eine Aufstellung von Gesundheitszustandsnachrichten von anderen Knoten der Vielzahl von Knoten aufweist, wobei jeder Knoten Gesundheitszustandsnachrichten mit einer Frequenz sendet, die der Vielzahl von Knoten bekannt ist; Vergleichen, bei den ersten Knoten, der Aufstellung von Nachrichten von anderen Knoten in der empfangenen Gesundheitszustandsnachricht mit einer Aufstellung von Gesundheitszustandsnachrichten, die zuvor von anderen Knoten empfangen wurden, die von dem ersten Knoten gespeichert wurden; und Bestimmen eines Gesundheitszustandes von jedem Knoten basierend auf dem Vergleich.A non-transitory computer readable medium configured to store instructions, the instructions, when loaded and executed by a processor, causing the processor to: Receiving, at a first node of a plurality of nodes each connected to a common network bus, a health status message from a second one of the plurality of nodes, the health status message comprising a health status message list from other nodes of the plurality of nodes, each node Sends health status messages at a frequency known to the plurality of nodes; Comparing, at the first nodes, the establishment of messages from other nodes in the received health status message with a list of health status messages previously received from other nodes stored by the first node; and Determining a health status of each node based on the comparison. Nicht-transitorisches, computerlesbares Medium nach Anspruch 21, wobei das Empfangen einer Gesundheitszustandsnachricht weiter aufweist, mehrere Gesundheitszustandsnachrichten von einem oder mehreren der anderen Knoten der Vielzahl von Knoten zu empfangen, und wobei das Vergleichen weiter aufweist, jede Aufzeichnung von Nachrichten der empfangenen Vielzahl von Gesundheitszustandsnachrichten mit der Aufstellung von Gesundheitszustandsnachrichten zu vergleichen, die von dem ersten Knoten gespeichert wurden.Non-transitory, computer-readable medium after Claim 21 wherein the receiving a health status message further comprises receiving a plurality of health status messages from one or more of the other nodes of the plurality of nodes, and wherein the comparing further comprises comparing each record of messages of the received plurality of health status messages with the health status message set up stored by the first node. Nicht-transitorisches, computerlesbares Medium nach Anspruch 21, wobei der gemeinsame Bus ein Controller Area Network- bzw. CAN-Bus und/oder ein Ethernet-Bus ist.Non-transitory, computer-readable medium after Claim 21 , wherein the common bus is a Controller Area Network or CAN bus and / or an Ethernet bus. Nicht-transitorisches, computerlesbares Medium nach Anspruch 21, wobei die Instruktionen weiter den Prozessor veranlassen zum Erzeugen, bei dem ersten Knoten, der Aufstellung von Gesundheitszustandsnachrichten von anderen Knoten, die durch den ersten Knoten gespeichert wurden, und zwar durch Aufzeichnen eines Zeitstempels von jeder empfangenen Gesundheitszustandsnachricht von anderen Knoten in der Aufstellung während eines Clock- bzw. Taktzyklus des ersten Knotens.Non-transitory, computer-readable medium after Claim 21 wherein the instructions further cause the processor to generate, at the first node, the establishment of health status messages from other nodes stored by the first node by recording a timestamp of each received health status message from other nodes in the array during a clock cycle of the first node.
DE112016007522.7T 2016-12-15 2016-12-15 Fault tolerant group on a distributed network Withdrawn DE112016007522T5 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/066862 WO2018111272A1 (en) 2016-12-15 2016-12-15 Fault-tolerant operational group on a distributed network

Publications (1)

Publication Number Publication Date
DE112016007522T5 true DE112016007522T5 (en) 2019-10-10

Family

ID=57796983

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112016007522.7T Withdrawn DE112016007522T5 (en) 2016-12-15 2016-12-15 Fault tolerant group on a distributed network

Country Status (3)

Country Link
DE (1) DE112016007522T5 (en)
SE (1) SE1950600A1 (en)
WO (1) WO2018111272A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972772B2 (en) 2011-02-24 2015-03-03 The Charles Stark Draper Laboratory, Inc. System and method for duplexed replicated computing

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2419305C (en) * 2003-02-20 2006-03-21 Ibm Canada Limited - Ibm Canada Limitee Unified logging service for distributed applications
US9647921B2 (en) * 2012-08-07 2017-05-09 Qualcomm Incorporated Statistics and failure detection in a network on a chip (NoC) network
EP2953295B1 (en) * 2014-06-06 2019-05-15 Nokia Solutions and Networks Oy Automatic delta event synchronization in multiple manager-agent environments

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972772B2 (en) 2011-02-24 2015-03-03 The Charles Stark Draper Laboratory, Inc. System and method for duplexed replicated computing

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ISO 11897-1:2003
ISO 11898
ISO 11898-1:2015
ISO-Standard 11898-3

Also Published As

Publication number Publication date
SE1950600A1 (en) 2019-05-21
WO2018111272A1 (en) 2018-06-21

Similar Documents

Publication Publication Date Title
DE112010001370B4 (en) Signal transmission device for an elevator
DE102018122152A1 (en) SYSTEMS AND METHOD FOR IMPACT DETECTION INTO THE NETWORK IN THE VEHICLE
EP1100230B1 (en) Data transmission system for aircrafts
DE10211281B4 (en) Method and device for synchronizing the cycle time of several buses and corresponding bus system
EP3211533B1 (en) Fault-tolerant system architecture for controlling a physical installation, particularly of a machine or of a motor vehicle
DE102018122143A1 (en) SYSTEMS AND METHOD FOR IMPACT DETECTION INTO THE NETWORK IN THE VEHICLE
DE102015213378A1 (en) Method and device for diagnosing a network
EP3568322B1 (en) Central data store in vehicle electrical system
EP2036263B1 (en) Method and device for the creation of a communication system based on can communication controllers featuring an increased data throughput
WO2016087584A1 (en) Method and control device for transmitting safety-relevant data in a motor vehicle by means of an ethernet standard
EP3061213B1 (en) Method for transmitting messages in a computer network, and computer network
WO2021122362A1 (en) Communication between networks of a motor vehicle
DE102019121085B4 (en) Network arrangement and addressing of network components for a charging park
EP3172869B1 (en) Method for reproducing delays in networks and corresponding gateway
DE112016007522T5 (en) Fault tolerant group on a distributed network
DE102018220324A1 (en) Method for monitoring a data transmission system, data transmission system and motor vehicle
EP3607437B1 (en) Method for configuring at least one device of a railway vehicle in a network, computer program and computer-readable storage medium
DE102016209370A1 (en) Control device and method for transmitting data packets between an Ethernet network and a timed bus network, in particular in a motor vehicle
DE102016110148A1 (en) End system device with integrated switching device
EP4187858A1 (en) A secondary control unit for a vehicle with a primary control unit and a data transmission path
DE102021204789A1 (en) PROCEDURE AND SYSTEM TO ENSURE GUARANTEED QUALITY OF SERVICE IN VEHICLES
EP3560153B1 (en) Method for operating a data processing system, and data processing system
WO2023052416A1 (en) Method and simulator for testing at least one controller
DE102019215058A1 (en) AVIONICS NETWORK WITH SYNCHRONIZATION DOMAINS AND METHODS FOR SYNCHRONIZING NETWORK PARTICIPANTS IN AN AVIONICS NETWORK
DE102021127310A1 (en) System and method for data transmission

Legal Events

Date Code Title Description
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee