DE102010004298A1 - Verhinderung eines Nachrichtenverlustes in CAN-Systemen - Google Patents

Verhinderung eines Nachrichtenverlustes in CAN-Systemen Download PDF

Info

Publication number
DE102010004298A1
DE102010004298A1 DE102010004298A DE102010004298A DE102010004298A1 DE 102010004298 A1 DE102010004298 A1 DE 102010004298A1 DE 102010004298 A DE102010004298 A DE 102010004298A DE 102010004298 A DE102010004298 A DE 102010004298A DE 102010004298 A1 DE102010004298 A1 DE 102010004298A1
Authority
DE
Germany
Prior art keywords
synchronization
node
task
frequency
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102010004298A
Other languages
English (en)
Other versions
DE102010004298B4 (de
Inventor
Shengbing Rochester Hills Jiang
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102010004298A1 publication Critical patent/DE102010004298A1/de
Application granted granted Critical
Publication of DE102010004298B4 publication Critical patent/DE102010004298B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/25Pc structure of the system
    • G05B2219/25032CAN, canbus, controller area network bus
    • 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)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Small-Scale Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

Ein Verfahren zur Verhinderung eines Nachrichtenverlustes in einem CAN-System. Das CAN-System weist mehrere verteilte Knoten auf, wie beispielsweise elektronische Steuereinheitsknoten, die über einen CAN-Bus miteinander kommunizieren. Die verteilten Knoten werden in einen ersten Knotentyp oder einen zweiten Knotentyp klassifiziert. Ferner weist jeder verteilte Knoten seine eigene Taskdauer auf, welche die Zeit ist, die von einem Knoten benötigt wird, um einen ihm zugewiesenen Task zu abzuarbeiten. Zuerst wird eine Synchronisationsfrequenz ermittelt. Synchronisationsrahmen werden mit der Synchronisationsfrequenz von dem ersten Knotentyp an den zweiten Knotentyp gesendet. Anschließend wird eine Taskaktivierungs-Synchronisation an dem zweiten Knotentyp basierend auf einer Information ausgeführt, die in den Synchronisationsrahmen enthalten ist, wobei die Taskaktivierungs-Synchronisation ausgeführt wird, indem die Taskdauer des zweiten Knotentyps angepasst wird.

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Diese Erfindung betrifft allgemein ein Controller-Area-Network (CAN), das eine Übertragung von Information zwischen mehreren elektronischen Steuereinheiten (ECU) steuert, die in einem Fahrzeug angeordnet sind, und insbesondere eine Technik zur Verhinderung eines Informationsverlustes, die in einem CAN-System verwendet wird.
  • 2. Beschreibung der verwandten Technik
  • Die modernen Zeiten haben die Verwendung verschiedener innovativer Merkmale bei Kraftfahrzeugen gesehen. Diese Merkmale umfassen Adaptivtempomat-, Kollisionsvermeidungs- und Stabilitätskontrollsysteme. Die Implementierung solcher Systeme umfasst typischerweise die Verwendung eines verteilten Controller-Area-Network-Systems (CAN-Systems) mit mehreren elektronischen Steuereinheits-Knoten (ECU-Knoten) und einem CAN-Bus zur Übertragung von Nachrichten zwischen diesen Knoten. Bei dem verteilten CAN-System gibt es normalerweise keine Uhrensynchronisation zwischen den ECU-Knoten. Aufgrund des Fehlens der Synchronisation driften die Uhren der ECU-Knoten voneinander weg. Typischerweise könnte eine Uhr bei einer Uhrendriftrate von ± 30 ppm (Teile pro Million) bei einer Standardtemperatur (25°C, 77°F) in einer Stunde um 108 Millisekunden driften. Dieses Driften von Uhren kann einen Nachrichtenverlust in dem CAN-System verursachen, der ernste Folgen haben könnte.
  • Ferner könnte eine Sequenz von Nachrichten aufgrund einer Kombination von anderen Faktoren zusätzlich zu der Uhrendrift, wie beispielsweise endliche Puffergröße, Übertragungs-Jitter, usw., in dem CAN-System verloren gehen.
  • Ein existierender Ansatz zum Verhindern eines Nachrichtenverlustes umfasst ein Oversampling, so dass ein einzelner Nachrichtenverlust das Funktionieren des Systems nicht beeinflussen kann. Dieser Ansatz kann jedoch nicht verwendet werden, um eine Sequenz von Nachrichtenverlusten zu überwinden. Dies liegt daran, dass die Samplingrate und die Softwaretask-Ausführungsdauer n-mal schneller sein sollten, um eine Sequenz von n Nachrichtenverlusten zu überwinden. Dies ist in Fällen, bei denen n ≥ 3 ist, aufgrund eines großen Verbrauchs von Ressourcen und aufgrund von Hardwarebeschränkungen im Allgemeinen unmöglich.
  • Ein anderer Ansatz zum Verhindern eines Nachrichtenverlustes ist es, eine digitale Uhr für jeden ECU-Knoten vorzusehen und diese Uhren zu synchronisieren. Eine Uhrensynchronisation kann jedoch einen großen Overhead aufweisen, da diese Synchronisationen bei einer Driftrate von ± 30 ppm üblicherweise ungefähr jede 15 ms (Millisekunden) ausgeführt werden und manche Synchronisationsmechanismen spezielle Hardwareschaltungen erfordern. Derzeit basiert das Betriebssystem zur Taskaktivierung auf den Quarzuhren der ECU-Knoten anstelle der digitalen Uhr. Um den Nachrichtenverlust in dem System gemäß diesem Ansatz zu verhindern, wird daher ein angepasstes Betriebssystem benötigt, das mit den digitalen Uhren zu verwenden ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß den Lehren der vorliegenden Erfindung wird ein Verfahren zur Verhinderung eines Nachrichtenverlustes in einem CAN-System offenbart, das eine spezielle Anwendung für die verschiedenen Steuermerkmale aufweist, die in Fahrzeugen verwendet werden, wie beispielsweise Adaptivtempomat-, Kollisionsvermeidungs- und Stabilitätskontrollysteme. Das Verfahren verwendet ein CAN-System, das mehrere verteilte Knoten aufweist, die miteinander über einen CAN-Bus kommunizieren. Die verteilten Knoten werden in einen ersten Knotentyp oder einen zweiten Knotentyp klassifiziert. Ferner weist jeder verteilte Knoten seine eigene lokale Taskdauer auf, welche die Zeit ist, die ein Knoten benötigt, um einen ihm zugewiesenen Task abzuarbeiten. Eine Synchronisationsfrequenz wird ermittelt, und Synchronisationsrahmen werden mit der Synchronisationsfrequenz von dem ersten Knotentyp an den zweiten Knotentyp gesendet. Anschließend wird eine Taskaktivierungs-Synchronisation an dem zweiten Knotentyp basierend auf einer Information ausgeführt, die in den Synchronisationsrahmen enthalten ist, wobei die Taskaktivierungs-Synchronisation ausgeführt wird, indem die Taskdauer des zweiten Knotentyps angepasst wird.
  • Zusätzliche Merkmale der vorliegenden Erfindung werden anhand der nachfolgenden Beschreibung und der beigefügten Ansprüche offensichtlich werden, die in Verbindung mit den begleitenden Zeichnungen gesetzt werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 stellt ein verteiltes Controller-Area-Network-System (CAN-System) dar, das einen Nachrichtenverlust aufgrund von Uhrendriften zeigt;
  • 2 stellt ein Blockdiagramm eines Verfahrens zum Verhindern eines Nachrichtenverlustes in einem verteilten CAN-System dar;
  • 3 stellt ein Flussdiagramm dar, das die Ausführung eines Tasks an einem Master-Knoten zeigt;
  • 4 stellt ein Flussdiagramm dar, das die Ausführung eines Tasks an einen Slave-Knoten zeigt;
  • 5 stellt ein Flussdiagramm dar, das die Ausführung eines Tasks an dem letzten Slave-Knoten zeigt;
  • 6 stellt ein Flussdiagramm dar, welches das Verfahren zum Ausführen einer Taskaktivierungs-Synchronisation an dem Master-Knoten zeigt; und
  • 7 stellt ein Flussdiagramm dar, das ein Verfahren mm Ausführen der Taskaktivierungs-Synchronisation an dem Slave-Knoten zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
  • Die nachfolgende Diskussion der Ausführungsformen der Erfindung, die auf ein Verfahren zur Verhinderung eines Nachrichtenverlustes in einem CAN-System gerichtet sind, ist nur beispielhafter Natur und ist in keiner Weise dazu gedacht, die Erfindung oder ihre Anwendungsmöglichkeiten oder Verwendungen einzuschränken. Beispielsweise weist das Verfahren zur Verhinderung eines Nachrichtenverlustes in einem CAN-System gemäß der Erfindung eine spezielle Anwendung in Adaptivtempomat-, Kollisionsvermeidungs- und Stabilitätskontrollsystemen auf, die in Fahrzeugen verwendet werden. Wie Fachleute jedoch einsehen werden, kann das Verfahren zur Verhinderung eines Nachrichtenverlustes in einem CAN-System gemäß der Erfindung andere Anwendungen aufweisen.
  • 1 stellt eine beispielhafte Situation dar, die einen Nachrichtenverlust in einem CAN-System aufgrund von Uhrendriften, einer endlichen Puffergröße und eines Übertragungs-Jitters zeigt. Das CAN-System weist mehrere Knoten 12, 14 und 16 auf, die miteinander über einen CAN-Bus 18 kommunizieren können, wobei der Knoten 12 der erste Knoten ist, der Knoten 16 der letzte Knoten ist und die Knoten 14 Zwischenknoten sind. Die Knoten 12, 14 und 16 sind ECU-Knoten, wobei jeder Knoten seine eigene lokale Uhr aufweist. Ferner weisen die Knoten 14 und 16 einen Puffer einer solchen endlichen Größe auf, dass eine Information gespeichert wird, die von dem vorhergehenden Knoten empfangen wird. Jedem Knoten wird ein Task zugewiesen, den dieser periodisch abarbeitet, wenn seine Uhr Zeiteinheiten gleich der Taskdauer oder der Tasaktivierungszeit misst, die nachstehend austauschbar verwendet werden. Ein Task wird hier als abgearbeitet bezeichnet, wenn der Knoten eine Ausgabe basierend auf einer Eingabe erzeugt. Die Taskdauer ist die Zeit zwischen zwei aufeinanderfolgenden Aufrufen des Tasks. In dieser beispielhaften Situation wird angenommen, dass die Taskdauer 10 Millisekunden (ms) beträgt und die Freigabephase, d. h. die Zeitverzögerung zwischen den Aktivierungen der Tasks an ihren entsprechenden Knoten, Null ist. Um den Übertragungs-Jitter in Betracht zu ziehen, wird die Taskausführungszeit jedes Tasks für den besten Fall und für den schlechtesten Fall als 4,9 ms bzw. 5,1 ms angenommen.
  • Wie in 1 gezeigt ist, wird eine Eingabe 10 dem ersten Knoten 12 zugeführt, und eine Ausgabe 20 wird an dem letzten Knoten 16 beobachtet. Es wird gezeigt, dass eine Ausgabesequenz (0 → 0 → 0 → 0 → 0) für eine Eingabesequenz (0 → 1 → 1 → 1 → 0) erhalten wird. Es kann klar beobachtet werden, dass ein fortlaufender Nachrichtenverlust an Positionen 22 bei den Knoten 12 und 14 aufgrund einer Ersetzung einer unverbrauchten alten Nachricht durch eine neue Nachricht auftritt.
  • 2 stellt ein Blockdiagramm eines Verfahrens zum Verhindern eines Nachrichtenverlustes in einem verteilten CAN-System dar. Die Knoten, die von dem CAN-System umfasst werden, gehören zu zwei Typen, nämlich einem ersten Knotentyp 24, der auch als ein Master-Knoten bekannt ist, und einem zweiten Knotentyp 26, der auch als ein Slave-Knoten 26 bekannt ist. Jeder der Knoten in dem CAN-System ist verteilt, da sie die ihnen zugewiesenen Tasks unabhängig ausführen. Der Master-Knoten 24 ist üblicherweise der erste Knoten und alle nachfolgenden Knoten sind die Slave-Knoten (Slave-Knoten0, Slave-Knoten1, ..., Slave-Knotenn). Dem Master-Knoten 24 wird ein Task t0 zugewiesen, und den Slave-Knoten 26 werden Tasks t1, t2, ..., tn zugewiesen. Ferner weist jeder Knoten eine lokale Uhr für seine lokale Taskdauer auf. Alle Slave-Knoten 26 weisen einen Puffer 28 auf, repräsentiert durch b1, b2, ..., bn. Der Puffer 28 wird verwendet, um die Nachricht zu speichern, die von dem vorhergehenden Knoten empfangen wird.
  • Der Master-Knoten 24 sendet periodisch einen Synchronisationsrahmen, der eine Information über das Zeitintervall enthält, nach dem ein Synchronisationsrahmen von dem Master-Knoten 24 gesendet wird und das bezogen auf die lokale Uhr des Master-Knotens 24 gemessen wird. Ferner passt jeder Slave-Knoten 26 bei dem Empfangen des Synchronisationsrahmens seine Taskaktivierungszeit t gemäß der Information an, die in dem Synchronisationsrahmen empfangen wird, wie später bei 7 beschrieben wird. Dieser Vorgang des Anpassens der Taskaktivierungszeit t ist als Taskaktivierungs-Synchronisation bekannt. Bevor der Vorgang der Taskaktivierungs-Synchronisation ausgeführt wird, wird eine Synchronisationsfrequenz ermittelt. Die Synchronisationsfrequenz ist die Frequenz, mit der die Synchronisationsrahmen von dem Master-Knoten 24 an die Slave-Knoten 26 gesendet werden. Um die Synchronisationsfrequenz zu ermitteln, wird ein Modell des CAN-Systems in der Form eines linearen Hybridautomaten (LHA) verwendet. Die Synchronisationsfrequenz wird auf eine solche Weise ermittelt, dass das CAN-System keinen Nachrichtenverlust und einen geringen Overhead aufweist. Dieser Prozess des Ermittelns der Synchronisationsfrequenz wird unten beschrieben und ist ein Offline-Prozess, d. h. er wird während der Ausgestaltungsphrase des CAN-Systems ausgeführt, so dass das Modell für verschiedene Frequenzparameter getestet werden kann.
  • Der LHA weist eine Testfrequenz 1/N' als einen seiner Parameter auf, wobei N' eine ganze Zahl ist. Daher wird die Taskaktivierungs-Synchronisation in dem Modell nach jeder Zeitspanne (N')·T ausgeführt, wobei T die Taskdauer ist. Die anfängliche Testfrequenz wird derart gewählt, dass sie die höchste Frequenz ist, die der LHA unter den gegebenen System-Ressourcenbeschränkungen annehmen kann. Anschließend wird eine formale Verifikation für den LHA ausgeführt, um den Zustand eines Nachrichten verlustes bei der anfänglichen Testfrequenz zu beobachten. Nun wird die anfängliche Testfrequenz um einen Faktor verringert, und die Taskaktivierungs-Synchronisation wird mit dieser neuen Frequenz ausgeführt. Bei einer nicht einschränkenden Ausführungsform wird die Testfrequenz um einen Faktor Zwei verringert. Wiederum wird der Schritt der formalen Verifikation ausgeführt, um den Nachrichtenverlustzustand bei der neuen Testfrequenz zu beobachten. Die oben erwähnten Schritte der iterativen Verringerung der Testfrequenz, der Taskaktivierungs-Synchronisation mit der verringerten Testfrequenz und der formalen Verifikation werden ausgeführt, bis ein Nachrichtenverlust beobachtet wird. Nun wird die Testfrequenz eines Schrittes, der dem Schritt gerade vorangeht, bei dem der erste Nachrichtenverlust aufgetreten ist, welche auch die niedrigste Frequenz ist, bei der es keinen Nachrichtenverlust gibt, als die Synchronisationsfrequenz bezeichnet und durch 1/N angegeben. Wenn jedoch ein Nachrichtenverlust bei der ersten Iteration beobachtet wird, dann wird der Systemzeitplan revidiert, da der Zeitplan selbst nicht robust genug ist und eine kleine Uhrendrift einen Nachrichtenverlust verursachen würde.
  • 3 stellt ein Flussdiagramm dar, das die Ausführung des Tasks t0 an dem Master-Knoten 24 zeigt. Hier ist B0 die Ausführungszeit für den besten Fall, W0 die Ausführungszeit für den schlechtesten Fall, und ein Freshness-Bit1 gibt den Zustand für den Puffer b1 28 an. Das Freshness-Bit wird verwendet, um anzugeben, ob die Daten in dem entsprechenden Puffer 28 durch den ihm zugeordneten Knoten aufgebraucht wurden oder nicht. Der Wert des Freshness-Bits1 ist 0, wenn die Daten in dem Puffer 28 aufgebraucht wurden, oder 1, wenn die Daten in dem Puffer 28 nicht aufgebraucht wurden. Anfänglich befindet sich der Task t0 bei Schritt 32 in einem ”Warten”-Zustand. Die lokale Uhrenvariable ist die Zeiteinheit, die von einer lokalen Uhr des entsprechenden Knotens gemessen wird. Die lokale Uhrenvariable des Master-Knotens 24 ist als C0 gezeigt, und sie ist gleich der Differenz zwischen T0 und R0, wie bei Box 30 angegeben ist. Hier ist T0 die lokale Taskdauer des Master-Knotens 24, und sie ist gleich der Taskdauer T, wobei R0 die Freigabephase ist.
  • Im Allgemeinen ist die lokale Taskdauer eines Knoten die Taskdauer, die von der entsprechenden lokalen Uhr bezüglich der lokalen Uhr des Master-Knotens gemessen wird. Daher kann gesagt werden, dass, nachdem die Taskaktivierungs-Synchronisation stattfindet, die lokalen Taskdauern aller Knoten bezüglich der lokalen Uhr des Master-Knotens gleich der gemeinsamen Taskdauer T für alle Knoten sein werden. Die lokale Uhr des Master-Knotens ist derart gezeigt, dass sie eine Driftrate von E aufweist. Daher lautet die Verlaufsfunktion für die lokale Uhr 1 – E ≤ dC0/dt ≤ 1 + E. Wenn die lokale Uhrenvariable C0 den Wert T0 erreicht, wie es bei Box 34 angegeben ist, findet ein Übergang von dem ”Warten”-Zustand 32 in einen ”Ausführen”-Zustand 38 statt, bei dem der Task des Master-Knotens 24 die Ausführung beginnt und C0 auf Null zurückgesetzt wird. Ferner könnte der Prozess von dem ”Ausführen”-Zustand 38 wieder zurück in den ”Warten”-Zustand 32 übergehen, wenn der Wert von C0 zwischen B0 und W0 liegt und das Freshness-Bit1 gleich Null ist. In diesem Fall wird das Freshness-Bit1 auf Eins zurückgesetzt. Wenn der Wert von C0 jedoch zwischen den Werten B0 und W0 liegt und das Freshness-Bit1 gleich Eins ist, dann geht der Prozess in den Zustand 42 über, bei dem ein Nachrichtenverlust an dem Puffer b1 angegeben wird.
  • 4 stellt ein Flussdiagramm dar, das die Ausführung des Tasks ti an dem Slave-Knoteni 26 zeigt, wobei i = 1, 2, ..., (n – 1) ist. Der Prozess ist hier dem Prozess zum Abarbeiten des Tasks t0 ähnlich, wie er in 3 beschrieben ist, außer dass dann, wenn ein Übergang aus dem ”Warten”-Zustand 46 in den ”Ausführen”-Zustand 52 stattfindet, das Freshness-Bit für den Puffer bi (i = 1, 2, ..., (n – 1)) auf Null zurückgesetzt wird, wie es bei Box 50 angegeben ist.
  • 5 stellt ein Flussdiagramm dar, das die Ausführung des Taks tn an dem Slave-Knoten 26 zeigt. Der Prozess ist hier dem Prozess zum Abarbeiten des Tasks t0 ähnlich, wie er in 3 beschrieben ist, außer dass es keinen Puffer nach dem Slave-Knotenn 26 gibt und es infolgedessen keine Bedingung für einen Nachrichtenverlust gibt.
  • 6 stellt ein Flussdiagramm dar, welches das Taskaktivierungs-Synchronisationsmodell für den Master-Knoten0 24 zeigt. Das Zeitintervall zwischen zwei Synchronisationen wird hier mit S bezeichnet. Ferner ist die Synchronisationsfrequenz die gleiche, wie sie bei 2 beschrieben ist, und C0 ist das gleiche, wie es bei 3 beschrieben ist. Der Synchronisationsrahmen wird anfänglich von dem Master-Knoten0 24 ausgesendet und mit ”Sync” bezeichnet, und die Variable S wird bei Box 68 auf Null gesetzt. Ferner sendet der Master-Knoten0 24 nach jeden N·T Zeiteinheiten, das heißt, wenn S = N·T0 ist, wie bei Box 70 angegeben ist, einen Synchronisationsrahmen an die Slave-Knoten 26. Die Selbstübergangsschleife zum Senden der Synchronisationsrahmen durch den Master-Knoten 24 wurde bei Schritt 72 angegeben. Bei der Box 70 ist T0 die Taskdauer des Master-Knotens 24, und sie ist gleich der Taskdauer T, und daher kann gesagt werden, dass der Master-Knoten einen Synchronisationsrahmen aussendet, wenn die Bedingung N·T0 = N·T erfüllt ist.
  • 7 stellt ein Flussdiagramm dar, welches das Taskaktivierungs-Synchronisationsmodell für den Slave-Knoteni zeigt (hier ist i = 1, 2, ... (n – 1)). Wenn der Slave-Knoteni 26 einen Synchronisationsrahmen von dem Master-Knoten0 24 empfängt, berechnet er die Aktivierungszeitdrift Si des Tasks ti (hier ist i = 1, 2, ..., (n – 1)) bezogen auf t0. Hier wird Si unter Ver wendung der Formel Si = (Ri – R0) – (C0 – Ci) + δ berechnet. R0 und C0 sind hier die gleichen, wie sie bei 3 beschrieben sind, und Ri und Ci sind ähnliche Parameter für den i-ten Slave-Knoten. Es kann abgeleitet werden, dass Si die Differenz zwischen der Taskdauer T und der lokalen Taskdauer Ti des i-ten Slave-Knotens ist. Ferner passt der Slave-Knoteni 26 die Taskaktivierungsdauer des Tasks ti basierend auf dem Wert der empfangenen Synchronisationsrahmen an, wie bei Box 76 angegeben ist.
  • Ferner kann man erkennen, dass die Zeitdifferenz zwischen aufeinanderfolgenden Aktivierungen von ti und t0 wegen der Freigabephasen gleich (Ri – R0) sein würde. Wie oben diskutiert wurde, sind Si, C0 und Ci die entsprechenden Werte der Zeit, die seit der letzten Aktivierung von t0 und ti bis zu dem gegenwärtige Synchronisationspunkt vergangen ist, daher würden T0 – C0 und Ti – Ci die entsprechenden Werte der nächsten Aktivierung von t0 und ti sein, was ferner impliziert, dass (Ti – Ci) – (T0 – C0) = (C0 – Ci) + (Ti – T0) die Differenz zwischen den nächsten Aktivierungen von t0 und ti ist. Daher wird die Aktivierungsdrift gleich (Ri – R0) – (C0 – Ci) – (Ti – T0) sein. Das tatsächliche Aufzeichnen der obigen C0 und Ci wird hier durch den Master-Knoten0 24 bei einem erfolgreichen Übertragen des Synchronisationsrahmens und durch den Slave-Knoten 26 bei einem Empfangen des Synchronisationsrahmens ausgeführt, so dass diese Aufzeichnungen gleichzeitig geschehen. Zusätzlich würde es einen Systemimplementierungsfehler δ geben, so dass die Aktivierungszeitdrift Si = (Ri – R0) – (C0 – Ci) + δ sein würde. Anschließend wird die Taskaktivierungsdauer Ti des Tasks ti unter Verwendung der Gleichung Ti = Ti + Si/N angepasst, so dass die Uhrendrift verringert und der Nachrichtenverlust verhindert werden kann.
  • Verschiedene Ausführungsformen der vorliegenden Erfindung bieten einen oder mehrere Vorteile. Die vorliegende Erfindung schafft ein Verfahren zum Verhindern eines Nachrichtenverlustes in CAN-Systemen, die in Kraftfahrzeugen verwendet werden. Das Verfahren gemäß der vorliegenden Erfindung wird verwendet, um eine Taskaktivierungs-Synchronisation an den ECU-Knoten derart auszuführen, dass der Nachrichtenverlust aufgrund einer Uhrendrift, einer endlichen Puffergröße und eines Jitters bei Übertragungsverzögerungen vermieden werden kann. Die Synchronisation der Knoten wird bei einem geringen Overhead ausgeführt, was erreicht wird, indem die Synchronisation ausgeführt wird, wenn sie notwendig ist. Ferner erfordert das Verfahren keine Verwendung von synchronisierten digitalen Uhren.
  • Die vorstehende Diskussion offenbart und beschreibt nur beispielhafte Ausführungsformen der vorliegenden Erfindung. Ein Fachmann wird anhand einer solchen Diskussion und anhand der begleitenden Zeichnungen und Ansprüche leicht erkennen, dass verschiedene Änderungen, Modifikationen und Abwandlungen darin ausgeführt werden können, ohne von dem Geist und dem Schutzumfang der Erfindung abzuweichen, wie er in den nachfolgenden Ansprüchen definiert ist.

Claims (10)

  1. Verfahren zum Verhindern eines Nachrichtenverlustes in einem Controller-Area-Network-System (CAN-System), wobei das CAN-System mehrere verteilte Knoten aufweist, die in der Lage sind, über einen CAN-Bus miteinander zu kommunizieren, wobei jedem von den mehreren verteilten Knoten ein Task zugewiesen wird, wobei die mehreren verteilten Knoten zumindest einen Knoten eines ersten Typs und zumindest einen Knoten eines zweiten Typs umfassen, wobei das Verfahren umfasst, dass: eine Synchronisationsfrequenz ermittelt wird; Synchronisationsrahmen von dem Knoten des ersten Typs an den Knoten des zweiten Typs gesendet werden, wobei die Synchronisationsrahmen mit der Synchronisationsfrequenz gesendet werden; und eine Taskaktivierungs-Synchronisation an dem Knoten des zweiten Typs basierend auf einer Information ausgeführt wird, die in den Synchronisationsrahmen enthalten ist.
  2. Verfahren nach Anspruch 1, wobei das Ausführen der Taskaktivierungs-Synchronisation umfasst, dass die lokale Taskdauer des Knotens des zweiten Typs modifiziert wird.
  3. Verfahren zum Verhindern eines Nachrichtenverlustes in einem Controller-Area-Network-System (CAN-System), wobei das CAN-System mehrere verteilte Knoten umfasst, die in der Lage sind, über einen CAN-Bus miteinander zu kommunizieren, wobei jedem von den mehreren verteilten Knoten ein Task zugewiesen wird, wobei die mehreren verteilten Knoten einen Master-Knoten und zumindest einen Slave-Knoten umfassen, wobei das Verfahren umfasst, dass: eine Synchronisationsfrequenz ermittelt wird; Synchronisationsrahmen von dem Master-Knoten an den zumindest einen Slave-Knoten gesendet werden, wobei die Synchronisationsrahmen mit der Synchronisationsfrequenz gesendet werden; und eine Taskaktivierungs-Synchronisation an dem zumindest einen Slave-Knoten basierend auf einer Information ausgeführt wird, die in den Synchronisationsrahmen enthalten ist.
  4. Verfahren nach Anspruch 1 oder 3, wobei das Ausführen des iterativen Betriebs an dem LHA umfasst, dass die Testfrequenz um einen Faktor variiert wird, bis eine Bedingung erfüllt ist.
  5. Verfahren nach Anspruch 4, wobei die Bedingung erfüllt ist, wenn ein Nachrichtenverlust in dem LHA beobachtet wird.
  6. Verfahren nach Anspruch 4, wobei die Bedingung erfüllt ist, wenn kein Nachrichtenverlust in dem LHA beobachtet wird.
  7. Verfahren nach Anspruch 1 oder 3, wobei das Ermitteln der Synchronisationsfrequenz offline ausgeführt wird.
  8. Verfahren nach Anspruch 1 oder 3, wobei jeder der mehreren verteilten Knoten eine lokale Taskdauer aufweist, die dem ihm zugewiesenen Task entspricht, und wobei die lokale Taskdauer, die einem von den mehreren verteilten Knoten entspricht, eine Zeit ist, die von dem einen der mehreren verteilten Knoten benötigt wird, um den ihm zugewiesenen Task abzuarbeiten.
  9. Verfahren zum Verhindern eines Informationsverlustes in einem CAN-System, wobei das CAN-System mehrere verteilte Knoten aufweist, die in der Lage sind, über einen CAN-Bus miteinander zu kommunizieren, wobei jedem von den mehreren verteilten Knoten ein Task zugewiesen wird, wobei die mehreren verteilten Knoten einen Master-Knoten und zumindest einen Slave-Knoten umfassen, wobei das Verfahren umfasst, dass: eine Synchronisationsfrequenz ermittelt wird, wobei die Synchronisationsfrequenz eine Frequenz ist, mit der der Master-Knoten einen Synchronisationsrahmen an den zumindest einen Slave-Knoten sendet; und eine Taskaktivierungs-Synchronisation an dem zumindest einen Slave basierend auf der Information ausgeführt wird, die in dem Synchronisationsrahmen enthalten ist.
  10. Verfahren nach Anspruch 1, 3 oder 9, wobei das Ermitteln der Synchronisationsfrequenz umfasst, dass das CAN-System als ein linearer Hybridautomat (LHA) modelliert wird und dass ein iterativer Betrieb an dem LHA ausgeführt wird, wobei der LHA eine Testfrequenz als einen Parameter umfasst, und/oder wobei die Information, die in den Synchronisationsrahmen enthalten ist, einen Wert eines Intervalls zwischen zwei Zeitpunkten umfasst, zu denen aufeinanderfolgende Synchronisationsrahmen gesendet werden.
DE102010004298.6A 2009-01-14 2010-01-11 Verhinderung eines Nachrichtenverlustes in CAN-Systemen Active DE102010004298B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/353,772 US9098816B2 (en) 2009-01-14 2009-01-14 Message loss prevention in can systems
US12/353,772 2009-01-14

Publications (2)

Publication Number Publication Date
DE102010004298A1 true DE102010004298A1 (de) 2010-10-07
DE102010004298B4 DE102010004298B4 (de) 2014-02-13

Family

ID=42319783

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010004298.6A Active DE102010004298B4 (de) 2009-01-14 2010-01-11 Verhinderung eines Nachrichtenverlustes in CAN-Systemen

Country Status (2)

Country Link
US (1) US9098816B2 (de)
DE (1) DE102010004298B4 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098816B2 (en) * 2009-01-14 2015-08-04 GM Global Technology Operations LLC Message loss prevention in can systems
FR2992079A1 (fr) * 2012-06-15 2013-12-20 France Telecom Dispositif et procede d'extraction de donnees sur un bus de communication d'un vehicule automobile
US9373074B2 (en) * 2012-10-09 2016-06-21 Qualcomm Incorporated Method and apparatus for time management and scheduling for sychronous processing on a cluster of processing nodes
KR101399758B1 (ko) * 2012-11-27 2014-05-27 숭실대학교산학협력단 다수의 슬레이브 장치에서 실행되는 태스크의 주기 스케쥴링 장치 및 방법
US9524222B2 (en) * 2013-09-16 2016-12-20 GM Global Technology Operations LLC Method and apparatus for fault detection in a controller area network
US20150214864A1 (en) * 2014-01-30 2015-07-30 Deere & Company Control synchronization between multiple control units for resource load sharing
US9843597B2 (en) * 2015-01-05 2017-12-12 International Business Machines Corporation Controller area network bus monitor
US10187195B2 (en) * 2016-04-28 2019-01-22 Hamilton Sundstrand Corporation Controller area network synchronization
CN106533876B (zh) * 2016-12-30 2019-02-19 广州路派电子科技有限公司 一种基于汽车can总线数据采集系统的数据采集方法
CN108063710A (zh) * 2017-12-20 2018-05-22 广州路派电子科技有限公司 一种基于汽车can总线的数据过滤和交互的方法
CN109636097B (zh) * 2018-11-01 2021-09-21 中车工业研究院有限公司 一种产品设计任务的分配方法及装置
FR3100629B1 (fr) * 2019-09-10 2023-04-07 St Microelectronics Grenoble 2 Communication par bus CAN
CN113067880B (zh) * 2021-03-29 2022-11-18 中车青岛四方车辆研究所有限公司 分布式控制系统链式分时通信方法和存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4709347A (en) * 1984-12-17 1987-11-24 Honeywell Inc. Method and apparatus for synchronizing the timing subsystems of the physical modules of a local area network
DE4321481C1 (de) * 1993-06-28 1994-08-04 Siemens Ag Fernsteuerbares Kommunikationssystem mit einem Fernübertragungsmodul
US6111888A (en) * 1997-05-27 2000-08-29 Micro Motion, Inc. Deterministic serial bus communication system
US6167466A (en) * 1997-07-09 2000-12-26 Texas Instruments Incorporated Multi-channel serial port with programmable features
DE19803686A1 (de) * 1998-01-30 1999-08-05 Siemens Ag Verfahren und Vorrichtung zur Kommunikation gleichberechtigter Stationen eines ringförmigen, seriellen Lichtwellenleiter-Busses
JP2001016234A (ja) * 1999-06-29 2001-01-19 Mitsubishi Electric Corp Canコントローラおよびcanコントローラを内蔵したワンチップ・コンピュータ
DE10000305B4 (de) * 2000-01-05 2011-08-11 Robert Bosch GmbH, 70469 Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens zwei mit einem Bussystem verbundenen Teilnehmern
US6845416B1 (en) * 2000-08-02 2005-01-18 National Instruments Corporation System and method for interfacing a CAN device and a peripheral device
US7046638B1 (en) * 2000-10-12 2006-05-16 Robert Bosch Gmbh Wireless access to closed embedded networks
FR2829655B1 (fr) * 2001-09-10 2003-12-26 Digigram Systeme de transmission de donnees audio, entre un module maitre et des modules esclaves, par l'intermediaire d'un reseau de communication numerique
DE10145218A1 (de) * 2001-09-13 2003-04-03 Bosch Gmbh Robert Verfahren und Vorrichtung zur Zeitbestimmung in einem Bussystem und Bussystem
DE10147445A1 (de) * 2001-09-26 2003-04-17 Bosch Gmbh Robert Verfahren und Vorrichtung zur Übertragung von Informationen auf einem Bussystem und Bussystem
JP3661946B2 (ja) * 2002-09-04 2005-06-22 三菱電機株式会社 コントローラエリアネットワーク通信装置
DE102004027503B4 (de) * 2004-06-04 2012-08-16 Robert Bosch Gmbh Verfahren zur Etablierung einer globalen Zeitbasis in einem zeitgesteuerten Kommunikationssystem und Kommunikationssystem
US7426190B2 (en) * 2005-09-30 2008-09-16 Robert Bosch Gmbh System and method for a communication protocol for wireless sensor systems including systems with high priority asynchronous message and low priority synchronous message
KR101135101B1 (ko) * 2005-10-17 2012-04-16 엘지전자 주식회사 캔에서의 데이터 길이 코드를 이용한 데이터 필드 패딩방법
KR101429249B1 (ko) * 2006-02-17 2014-08-14 스탠다드 마이크로시스템즈 코포레이션 이더넷 코딩 위반으로 구분되는 프레임 및 패킷 구조를 이용하여 이더넷 전송선을 통해 상이한 유형의 스트리밍 및패킷화된 데이터를 전송하는 시스템 및 방법
US8275729B2 (en) * 2006-05-19 2012-09-25 GM Global Technology Operations LLC Verification of linear hybrid automaton
DE102008004641A1 (de) * 2008-01-16 2009-07-23 Robert Bosch Gmbh Detektionsvorrichtung eines Fahrzeugs und entsprechendes Detektionsverfahren
US9098816B2 (en) * 2009-01-14 2015-08-04 GM Global Technology Operations LLC Message loss prevention in can systems

Also Published As

Publication number Publication date
US9098816B2 (en) 2015-08-04
US20100180003A1 (en) 2010-07-15
DE102010004298B4 (de) 2014-02-13

Similar Documents

Publication Publication Date Title
DE102010004298B4 (de) Verhinderung eines Nachrichtenverlustes in CAN-Systemen
DE102018132290B4 (de) Fahrzeuginternes System, Gateway, Relais, nichttransitorisches computerlesbares Medium zum Speichern eines Programms, Informationsverarbeitungsverfahren, Informationsverarbeitungssystem und Fahrzeug
DE10000302B4 (de) Verfahren und Vorrichtung zum Austausch von Daten zwischen wenigstens zwei mit einem Bussystem verbundenen Teilnehmern
EP2434674B1 (de) Verfahren zur Zeitsynchronisation in einem Kommunikationsnetz
EP2034642B1 (de) Verfahren zur Übertragung von Synchronisationsnachrichten in einem Kommunikationsnetz
EP1471432B1 (de) Verfahren und Vorrichtung zur Synchronisation der Zykluszeit von mehreren Bussen sowie entsprechendes Bussystem
EP1723750B1 (de) Verfahren zur Datenkommunikation
EP3014438B1 (de) Verfahren und vorrichtung zur zeitrichtigen datenübergabe an die zyklischen tasks in einem verteilten echtzeitsystem
EP2667269B1 (de) Verfahren zum Betreiben eines redundanten Automatisierungssystems
DE3638947A1 (de) Verfahren zur synchronisation von rechnern eines mehrrechnersystems und mehrrechnersystem
EP1763768B1 (de) Verfahren und vorrichtung zur steuerung eines bussystems sowie entsprechendes busysstem
EP2534775B1 (de) Verfahren zur zeitsynchronisation in einem kommunikationsnetz
EP3176696A1 (de) Verfahren zur realisierung und zum ausführen einer umfangreichen echtzeitcomputeranwendung
DE10327548B4 (de) Verfahren und Vorrichtung zum Austausch von Daten über ein Bussystem
EP1220104A2 (de) Verfahren und Kommunikationssystem zum Austausch von Daten zwischen mindestens zwei Teilnehmern über ein Bussystem
DE2829709C2 (de) Verfahren und Anordnung zur Erzeugung zeitlich unmittelbar aufeinanderfolgender Impulszyklen
EP2299614B1 (de) Vorrichtung und Verfahren zur Zeitsynchronisation in einem Kommunikationsnetz
DE10333934A1 (de) Synchronisation von datenverarbeitenden Einheiten
DE10053525A1 (de) Verfahren und System zur Synchronisation von Teilnehmern einer Kommunikationsverbindung
DE102016222618A1 (de) Verfahren zum Überwachen eines Zeitgebers einer integrierten Schaltung
DE102012219180A1 (de) Recheneinheit für ein Steuergerät und Betriebsverfahren hierfür
WO2009127697A1 (de) Verfahren zum automatischen erzeugen eines zeitschemas für über einen zeitgesteuerten gemeinsamen datenbus kommunizierende verteilte anwendungen oder prozesse eines digitalen netzwerks
DE102009000581A1 (de) Synchronisierung zweier Kommunikationsnetzwerke eines elektronischen Datenverarbeitungssystems
EP2928110B1 (de) Verfahren zur Synchronisation eines isochronen Systems mit einem übergeordneten Taktsystem
DE4407396C2 (de) Verfahren zur Durchführung einer redundanten Signalverarbeitung in 2-von-3 Technik

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

Owner name: GM GLOBAL TECHNOLOGY OPERATIONS LLC , ( N. D. , US

R081 Change of applicant/patentee

Owner name: GM GLOBAL TECHNOLOGY OPERATIONS LLC (N. D. GES, US

Free format text: FORMER OWNER: GM GLOBAL TECHNOLOGY OPERATIONS, INC., DETROIT, MICH., US

Effective date: 20110323

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R020 Patent grant now final

Effective date: 20141114