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

Verhinderung eines Nachrichtenverlustes in CAN-Systemen Download PDF

Info

Publication number
DE102010004298B4
DE102010004298B4 DE102010004298.6A DE102010004298A DE102010004298B4 DE 102010004298 B4 DE102010004298 B4 DE 102010004298B4 DE 102010004298 A DE102010004298 A DE 102010004298A DE 102010004298 B4 DE102010004298 B4 DE 102010004298B4
Authority
DE
Germany
Prior art keywords
synchronization
lha
task
frequency
message loss
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.)
Active
Application number
DE102010004298.6A
Other languages
English (en)
Other versions
DE102010004298A1 (de
Inventor
Shengbing 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

Images

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

Verfahren zum Verhindern eines Nachrichtenverlustes in einem Controller-Area-Network-System (CAN-System), wobei das CAN-System mehrere verteilte Knoten (24, 26) umfasst, die in der Lage sind, über einen CAN-Bus miteinander zu kommunizieren, wobei jedem von den mehreren verteilten Knoten (24, 26) eine Task zugewiesen wird, wobei die mehreren verteilten Knoten (24, 26) einen Master-Knoten (24) und zumindest einen Slave-Knoten (26) umfassen, wobei das Verfahren umfasst, dass: eine Synchronisationsfrequenz ermittelt wird; Synchronisationsrahmen von dem Master-Knoten (24) an den zumindest einen Slave-Knoten (26) gesendet werden, wobei die Synchronisationsrahmen mit der Synchronisationsfrequenz gesendet werden; und eine Taskaktivierungs-Synchronisation an dem zumindest einen Slave-Knoten (26) basierend auf einer Information ausgeführt wird, die in den Synchronisationsrahmen enthalten ist, dadurch gekennzeichnet, dass 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, die anfänglich derart gewählt wird, dass sie die höchste Frequenz ist, die der LHA unter gegebenen System-Ressourcenbeschränkungen annehmen kann, und anschließend im iterativer Betrieb an dem LHA mit jeder Iteration solange verringert wird, bis ein Nachrichtenverlust im LHA beobachtet wird, und wobei die Synchronisationsfrequenz als die niedrigste Testfrequenz festgelegt wird, bei der noch kein Nachrichtenverlust im LHA auftritt.

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.
  • Aus der US 6,111,888 A ist ein Verfahren gemäß dem Oberbegriff des Anspruchs 1 bekannt.
  • Die US 7,466,717 B1 beschreibt ein ähnliches Verfahren.
  • In der US 2007/0271204 A1 ist ein Verfahren zur Verifikation eines linearen Hybridautomaten beschrieben.
  • Ferner beschreibt die US 2003/0070019 A1 ein Verfahren zur Übertragung von Informationen in einem Bussystem, die Synchronisationsinformationen umfassen.
  • Eine Aufgabe der Erfindung besteht darin, ein Verfahren zum Verhindern eines Nachrichtenverlustes in einem CAN-System gemäß dem Ansatz mit einer digitalen Uhr für jeden ECU-Knoten zu schaffen, bei dem ein angepasstes Betriebssystem eingesetzt wird, das mit den digitalen Uhren zu verwenden ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst.
  • 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 als Master-Knoten oder als Slave-Knoten klassifiziert. Ferner weist jeder verteilte Knoten seine eigene lokale Taskdauer auf, welche die Zeit ist, die ein Knoten benötigt, um eine ihm zugewiesene Task abzuarbeiten. Eine Synchronisationsfrequenz wird ermittelt, und Synchronisationsrahmen werden mit der Synchronisationsfrequenz von dem Master-Knoten an die Slave-Knoten 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, wenn diese mit den begleitenden Zeichnungen in Verbindung gebracht 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 einer Task an einem Master-Knoten zeigt;
  • 4 stellt ein Flussdiagramm dar, das die Ausführung einer Task an einen Slave-Knoten zeigt;
  • 5 stellt ein Flussdiagramm dar, das die Ausführung einer Task 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 zum 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 eine Task zugewiesen, die dieser periodisch abarbeitet, wenn seine Uhr Zeiteinheiten gleich der Taskdauer oder der Taskaktivierungszeit misst, die nachstehend austauschbar verwendet werden. Eine 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 der Task. 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 jeder Task 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 eine 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 Nachrichtenverlustes 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 der Task 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 die 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 Knotens 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 die 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 der Task ti an dem Slave-Knoteni 26 zeigt, wobei i = 1, 2, ..., (n – 1) ist. Der Prozess ist hier dem Prozess zum Abarbeiten der Task 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 der Task tn an dem Slave-Knotenn 26 zeigt. Der Prozess ist hier dem Prozess zum Abarbeiten der Task 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). Wenn der Slave-Knoteni 26 einen Synchronisationsrahmen von dem Master-Knoten0 24 empfängt, berechnet er die Aktivierungszeitdrift Si der Task ti (hier ist i = 1, 2, ..., n) bezogen auf t0. Hier wird Si unter Verwendung 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 lokalen Taskdauer Ti des i-ten Slave-Knotens und der Taskdauer T ist. Ferner passt der Slave-Knoteni 26 die Taskaktivierungsdauer der Task 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 der Task 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.

Claims (8)

  1. Verfahren zum Verhindern eines Nachrichtenverlustes in einem Controller-Area-Network-System (CAN-System), wobei das CAN-System mehrere verteilte Knoten (24, 26) umfasst, die in der Lage sind, über einen CAN-Bus miteinander zu kommunizieren, wobei jedem von den mehreren verteilten Knoten (24, 26) eine Task zugewiesen wird, wobei die mehreren verteilten Knoten (24, 26) einen Master-Knoten (24) und zumindest einen Slave-Knoten (26) umfassen, wobei das Verfahren umfasst, dass: eine Synchronisationsfrequenz ermittelt wird; Synchronisationsrahmen von dem Master-Knoten (24) an den zumindest einen Slave-Knoten (26) gesendet werden, wobei die Synchronisationsrahmen mit der Synchronisationsfrequenz gesendet werden; und eine Taskaktivierungs-Synchronisation an dem zumindest einen Slave-Knoten (26) basierend auf einer Information ausgeführt wird, die in den Synchronisationsrahmen enthalten ist, dadurch gekennzeichnet, dass 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, die anfänglich derart gewählt wird, dass sie die höchste Frequenz ist, die der LHA unter gegebenen System-Ressourcenbeschränkungen annehmen kann, und anschließend im iterativer Betrieb an dem LHA mit jeder Iteration solange verringert wird, bis ein Nachrichtenverlust im LHA beobachtet wird, und wobei die Synchronisationsfrequenz als die niedrigste Testfrequenz festgelegt wird, bei der noch kein Nachrichtenverlust im LHA auftritt.
  2. Verfahren nach Anspruch 1, 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.
  3. Verfahren nach Anspruch 2, wobei die Bedingung erfüllt ist, wenn ein Nachrichtenverlust in dem LHA beobachtet wird.
  4. Verfahren nach Anspruch 2, wobei die Bedingung erfüllt ist, wenn kein Nachrichtenverlust in dem LHA beobachtet wird.
  5. Verfahren nach Anspruch 1, wobei das Ermitteln der Synchronisationsfrequenz offline ausgeführt wird.
  6. Verfahren nach Anspruch 1, wobei jeder der mehreren verteilten Knoten (24, 26) eine lokale Taskdauer aufweist, die der ihm zugewiesenen Task entspricht, und wobei die lokale Taskdauer, die einem von den mehreren verteilten Knoten (24, 26) entspricht, eine Zeit ist, die von dem einen der mehreren verteilten Knoten (24, 26) benötigt wird, um die ihm zugewiesene Task abzuarbeiten.
  7. Verfahren nach Anspruch 1, wobei das Ausführen der Taskaktivierungs-Synchronisation umfasst, dass die lokale Taskdauer des Slave-Knotens (26) modifiziert wird.
  8. Verfahren nach Anspruch 1, 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 2009-01-14
US12/353,772 US9098816B2 (en) 2009-01-14 2009-01-14 Message loss prevention in can systems

Publications (2)

Publication Number Publication Date
DE102010004298A1 DE102010004298A1 (de) 2010-10-07
DE102010004298B4 true 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 中车青岛四方车辆研究所有限公司 分布式控制系统链式分时通信方法和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111888A (en) * 1997-05-27 2000-08-29 Micro Motion, Inc. Deterministic serial bus communication system
US20030070019A1 (en) * 2001-09-26 2003-04-10 Lambros Dalakuras Method and device for transmitting information on a bus system, and a bus system
US20070271204A1 (en) * 2006-05-19 2007-11-22 Gm Global Technology Operations, Inc. Verification of Linear Hybrid Automaton
US7466717B1 (en) * 2000-01-05 2008-12-16 Robert Bosch Gmbh Method and device for exchanging data between at least two users that are connected to a bus system

Family Cites Families (16)

* 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
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コントローラを内蔵したワンチップ・コンピュータ
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
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 엘지전자 주식회사 캔에서의 데이터 길이 코드를 이용한 데이터 필드 패딩방법
CN102255796B (zh) * 2006-02-17 2015-02-11 标准微体系有限公司 利用以以太网编码违例区分的帧和分组结构在以太网传输线上传递不同类型的流数据和分组数据的系统和方法
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6111888A (en) * 1997-05-27 2000-08-29 Micro Motion, Inc. Deterministic serial bus communication system
US7466717B1 (en) * 2000-01-05 2008-12-16 Robert Bosch Gmbh Method and device for exchanging data between at least two users that are connected to a bus system
US20030070019A1 (en) * 2001-09-26 2003-04-10 Lambros Dalakuras Method and device for transmitting information on a bus system, and a bus system
US20070271204A1 (en) * 2006-05-19 2007-11-22 Gm Global Technology Operations, Inc. Verification of Linear Hybrid Automaton

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Karl-Heinz BRINKMANN, Herbert F. BLAHA: Wörterbuch der Daten- und Kommunikationstechnik Deutsch-Englisch Englisch-Deutsch, 6. Auflage, 2002, Oscar Brandstetter Verlag, Wiesbaden, S. 501 *

Also Published As

Publication number Publication date
US20100180003A1 (en) 2010-07-15
DE102010004298A1 (de) 2010-10-07
US9098816B2 (en) 2015-08-04

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
DE10291119B4 (de) Verfahren und Vorrichtung zur Synchronisation der Zykluszeit von mehreren Bussen, wobei mindestens einer der Busse ein TTCAN Bus ist, sowie entsprechendes Bussystem
EP2667269B1 (de) Verfahren zum Betreiben eines redundanten Automatisierungssystems
EP1723750B1 (de) Verfahren zur Datenkommunikation
EP3014438B1 (de) Verfahren und vorrichtung zur zeitrichtigen datenübergabe an die zyklischen tasks in einem verteilten echtzeitsystem
EP1763768B1 (de) Verfahren und vorrichtung zur steuerung eines bussystems sowie entsprechendes busysstem
DE102006010400A1 (de) Verfahren zur Erstellung eines optimierten Ablaufplans für ein zeitgesteuertes verteiltes Rechnersystem
DE102004027503A1 (de) Verfahren zur Etablierung einer globalen Zeitbasis in einem zeitgesteuerten Kommunikationssystem und Kommunikationssystem
EP3176696A1 (de) Verfahren zur realisierung und zum ausführen einer umfangreichen echtzeitcomputeranwendung
DE102014105211A1 (de) Verfahren zum Betreiben eines Teilnehmers eines Kommunikationsnetzwerks
EP1639758B1 (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
DE69106422T2 (de) Multiplexierungsanordnung für Taktsignale.
EP2299614B1 (de) Vorrichtung und Verfahren zur Zeitsynchronisation in einem Kommunikationsnetz
EP2843486B1 (de) Verfahren und Vorrichtung zum Synchronisieren einer Steuereinheit und mindestens einer zugeordneten Peripherieeinheit
DE102016011493A1 (de) Numerisches Steuersystem mit synchroner Steuerfunktion zwischen Einheiten
DE102016222618A1 (de) Verfahren zum Überwachen eines Zeitgebers einer integrierten Schaltung
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
EP0715412A1 (de) Verfahren und Anordnung zur Ermittlung von Phasenänderungen eines Referenz-Eingangssignals eines Phasenregelkreises

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