-
HINTERGRUND DER ERFINDUNG
-
Die Erfindung betrifft allgemein Controllerbereichsnetzsysteme innerhalb eines Fahrzeugs und insbesondere ein verteiltes eingebettetes Echtzeit-Controllerbereichsnetzsystem für Fahrzeuge sowie ein Verfahren zum Übertragen von Nachrichten zwischen Knoten innerhalb eines verteilten eingebetteten Echtzeit-Controllerbereichsnetzsystems eines Fahrzeugs.
-
Ein Controllerbereichsnetz (CAN) ist ein Fahrzeugbusstandard, der ermöglichen soll, dass elektronische Steuereinheiten (ECUs) und andere Vorrichtungen ohne zentralen oder Hauptrechner miteinander kommunizieren. Fahrzeugsysteme und -untersysteme weisen zahlreiche ECUs auf, die Aktuatoren steuern oder Fahrzeugbetriebsdaten von Erfassungsvorrichtungen empfangen. Das CAN-System ist ein asynchroner serieller Sendebus, der Nachrichten seriell überträgt. Daher wird zu einem Zeitpunkt nur eine Nachricht auf einem Kommunikationsbus übertragen. Wenn eine Nachricht bereit ist, auf dem Kommunikationsbus übertragen zu werden, steuert der CAN-Controller die Nachrichtenübertragung auf dem Bus. Wenn mehr als eine Nachrichtenübertragung gleichzeitig durch mehrere Sender eingeleitet werden, wird die dominantere Nachricht übertragen.
-
Dies ist als Zuteilungsprozess bekannt. Eine Nachricht mit einer höchsten Priorität dominiert die Zuteilung und eine Nachrichtenübertragung mit der niedrigeren Priorität erfasst dies und wartet.
-
In verschiedenen Szenarios können Nachrichten von verschiedenen Knoten der Reihe nach innerhalb eines CAN-Systems verarbeitet werden. In einem solchen Szenario werden die Nachrichten zu einem ersten Knoten zugeführt und die Nachrichten werden zu verschiedenen Zeitpunkten verarbeitet. Wenn die Verarbeitung für eine jeweilige Nachricht an einem jeweiligen Knoten vollendet ist, wird sie entlang des Kommunikationsbusses zu einem nächsten Knoten zur zusätzlichen Verarbeitung übertragen. Unterdessen werden die nächsten Nachrichten im ersten Knoten verarbeitet und werden danach nacheinander entlang des Kommunikationsbusses zum nächsten Knoten zur zusätzlichen Verarbeitung übertragen. Aufgrund von innewohnenden Verzögerungen bei der Verarbeitung von Nachrichten oder eines Konflikts im Kommunikationsbus können Nachrichten im Kommunikationsprozess verloren gehen, da kein zentraler oder Hauptrechner vorhanden ist, um sicherzustellen, dass jede der Nachrichten aufrechterhalten und nicht fallen gelassen wird. In einem solchen Fall kann der Nachrichtengehalt aufgrund von Überschreiben mit einem anderen Nachrichtenwert verloren gehen. Wenn der Pufferplatz einer Sendeeinheit begrenzt ist und wenn eine nächste Nachricht zur Übertragung gesendet wird, während die Sendeeinheit noch die vorherige Nachricht im Puffer hält, dann geht überdies die aktuelle gesendete Nachricht aufgrund eines Konflikts am Senderpuffer verloren. Daher besteht ein Bedarf daran, sicherzustellen, dass Nachrichten durch das CAN-System ohne Verlieren der Nachrichten korrekt verarbeitet werden.
-
Aus der
DE 699 23 938 T2 ist ein verteiltes System mit einer Vielzahl von Steuerungseinheiten bekannt, die durch ein CAN-Netzwerk miteinander verbunden sind. Dabei umfassen die Steuerungseinheiten jeweils eine CPU, einen Speicher und einen CAN-Controller, die durch einen Bus miteinander verbunden sind. Die Steuerungseinheiten, bei denen es sich u. a. um eine Motor- oder Bremssteuerungseinheit handeln kann, werden jeweils betätigt, indem sie mit anderen Steuerungseinheiten kommunizieren. Der Speicher einer jeweiligen Steuerungseinheit enthält u. a. ein Anwendungsprogramm sowie einen CAN-Treiber, der die Software für den CAN-Controller darstellt, der mit einer jeweils anderen Steuerungseinheit das Nachrichtensenden- und -empfangen bewerkstelligt. Der CAN-Controller benutzt als Kommunikationsprotokoll ein CAN-Protokoll, in dem die Nachricht eine spezifische Nachrichten-Identifikation besitzt, der eine Priorität zugeordnet wird. Die Prioritätssteuerung des CAN-Netzwerks erfolgt auf der Basis der Priorität der Nachrichten-Identifikation. In einem Fall, dass die Steuerungseinheiten zur selben Zeit jeweils eine Nachricht an das Netzwerk senden, erwirbt nur die Steuerungseinheit, die eine Nachricht mit der höchsten Priorität sendet, das Recht, das Netzwerk zu nutzen, und es kann nur diese Steuerungseinheit ihre Nachricht an das Netzwerk senden. Der CAN-Treiber umfasst einen für einen Sende-/Empfangsbriefkasten reservierten Puffer sowie eine Nachrichtenattributtabelle mit einem Speicherbereich LOCKED, in dem ein Bit besetzt wird, wenn eine in dem Briefkasten gespeicherte Nachricht sich in der Ausführung eines Nachrichtensendens an das Netzwerk durch eine Empfangsnachrichtensendeaufforderung befindet. Ist im Speicherbereich LOCKED ein Bit gesetzt, so wird über einen Rückparameter signalisiert, dass eine zu sendende Nachricht nicht einem bestimmten Bereich Data des Briefkastens zugeführt werden kann, da die in diesem Bereich des Briefkastens gespeicherten Daten noch nicht gesendet wurden.
-
Aus der
US 2008/0137679 A1 ist ein Kommunikationsmodul mit einer Steuereinheit und einem Netzwerk-Controller bekannt, bei dem sowohl die Steuereinheit als auch der Netzwerk-Controller jeweils mit einem Speicher für zu übertragende Nachrichten versehen ist. Dabei ist in Verbindung mit einem CAN-Bus zur Verwendung in einem Fahrzeug eine zyklische Nachrichtenübertragung möglich.
-
In der
US 6 111 888 A ist ein an einen CAN-D-Bus angeschlossener Knotenpunkt mit einem einen RAM-Speicher, einen ROM-Speicher sowie eine nichtflüchtige Speichereinrichtung umfassenden Mikroprozessor, einem Standardmerkmale des CAN-Protokolls wie Prioritätsentscheidung und Fehlerkontrolle verwirklichenden CAN-Controller und einem CAN-Transceiver beschrieben.
-
Die Druckschrift
DE 101 48 331 A1 offenbart eine Steuervorrichtung zur Steuerung eines Datenbuszugangs von mindestens einem Datenpaket auf einen Datenbus, wobei der Datenbus dazu ausgebildet ist, eine Vielzahl von Datenpaketen zu übertragen. Abhängig von einem letzten auf den Datenbus übertragenen Datenpaket ist der Datenbuszugang derart verzögerbar, dass zwischen dem letzten auf den Datenbus übertragenen Datenpaket und dem Datenbuszugang eines weiteren Datenpakets eine vorgebbare Zeitspanne liegt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Der Erfindung liegt die Aufgabe zu Grunde, ein verbessertes verteiltes eingebettetes Echtzeit-Controllerbereichsnetzsystem für ein Fahrzeug sowie ein verbessertes Verfahren zum Übertragen von Nachrichten zwischen Knoten innerhalb eines verteilten eingebetteten Echtzeit-Controllerbereichsnetzsystems eines Fahrzeugs anzugeben, bei denen auf einfache und zuverlässige Weise sichergestellt ist, dass auch dann, wenn bestimmte Nachrichten von verschiedenen Knoten innerhalb des Controllerbereichsnetzsystems der Reihe nach verarbeitet werden müssen, die Nachrichten möglichst ohne irgendwelche Nachrichtenverluste zuverlässig verarbeitet werden.
-
Erfindungsgemäß wird diese Aufgabe gelöst durch ein verteiltes eingebettetes Echtzeit-Controllerbereichsnetzsystem mit den Merkmalen des Anspruchs 1 bzw. ein Verfahren zum Übertragen von Nachrichten zwischen Knoten innerhalb eines verteilten eingebetteten Echtzeit-Controllerbereichsnetzsystems mit den Merkmalen des Anspruchs 8. Bevorzugte Ausführungsformen des erfindungsgemäßen Systems und eine bevorzugte Ausgestaltung des erfindungsgemäßen Verfahrens sind in den Unteransprüchen angegeben.
-
Ein Vorteil einer Ausführungsform ist die Speicherung von Nachrichten in einem Senderpuffer, die zur Übertragung auf dem Kommunikationsbus und in dem Zeitintervall, in dem die Nachrichten vom Senderpuffer zum Buscontroller übertragen werden, in eine Warteschlange gestellt werden, was die Möglichkeiten dafür, dass eine Nachricht vom CAN-System aufgrund eines Konflikts auf einer Empfängerseite eines Knotens fallen gelassen wird, verringert. Der Konflikt zwischen übertragenen Nachrichten, der das Ergebnis von Verzögerungen bei der Übertragung aufgrund von Jitter, endlicher CAN-Controller-Puffergröße und asynchroner Takte ist, kann unter Verwendung eines Senderpuffers und einer Zeitgeberfunktion, die angibt, wann eine gespeicherte Nachricht auf dem Kommunikationsbus übertragen werden kann, vermieden werden.
-
Eine Ausführungsform zieht ein verteiltes eingebettetes Echtzeit-Controllerbereichsnetzsystem für ein Fahrzeug in Betracht. Ein Kommunikationsbus überträgt Nachrichten innerhalb des Controllerbereichsnetzsystems. Mehrere Knoten bilden mehrere Kommunikationsendpunkte, die durch den Kommunikationsbus kommunikationsfähig gekoppelt sind. Jeder Knoten umfasst mindestens eine Anwendungskomponente zum Erzeugen von Fahrzeugbetriebsdaten und eine elektronische Steuereinheit in Kommunikation mit der mindestens einen Anwendungskomponente. Die elektronische Steuereinheit erzeugt eine Nachricht, die die Fahrzeugbetriebsdaten enthält. Die elektronische Steuereinheit funktioniert in einem durch ein Ereignis ausgelösten Modus, um eine Übertragung der Nachricht zum Kommunikationsbus einzuleiten. Die elektronische Steuereinheit umfasst einen Senderpuffer zum Speichern der erzeugten Nachricht und einen Buscontroller, der mit der elektronischen Steuereinheit über eine Schnittstelle koppelt. Der Buscontroller managt die Übertragung von Nachrichten zum und vom Kommunikationsbus. Die Übertragung von Nachrichten auf den Kommunikationsbus wird durch den Controllerbereichsnetz-Controller auf einer Unterbrechungsbasis ausgeführt. Der Buscontroller ist nicht verfügbar, um eine Nachricht von der elektronischen Steuereinheit zu empfangen, wenn eine vorherige Nachricht, die in einem Speicher des Buscontrollers gespeichert ist, auf die Übertragung auf dem Kommunikationsbus wartet. Der Buscontroller ist zum Empfangen einer Nachricht von der elektronischen Steuereinheit verfügbar, wenn der Speicher leer ist. Der Senderpuffer speichert Nachrichten, die von der elektronischen Steuereinheit empfangen werden, wenn der Buscontroller nicht verfügbar ist. Die elektronische Steuereinheit umfasst ferner ein Verkehrsgestaltungsmodul zum auswählbaren Verzögern einer Übertragung von Nachrichten zum Buscontroller, wobei der Bus-Controller der elektronischen Steuereinheit die erfolgreiche Übertragung einer jeweiligen Nachricht auf dem Kommunikationsbus bestätigt und eine weitere Nachricht vom Senderpuffer erst dann zum Buscontroller übertragen wird, nachdem der Buscontroller verfügbar ist und nachdem eine vorbestimmte Zeitdauer ab der Bestätigung, dass die vorherige Nachricht erfolgreich auf dem Kommunikationsbus übertragen wurde, abgelaufen ist.
-
Eine Ausführungsform zieht ein Verfahren zum Übertragen von Nachrichten zwischen Knoten innerhalb eines verteilten eingebetteten Echtzeit-Controllerbereichsnetzsystems eines Fahrzeugs in Betracht. Das Controllerbereichsnetzsystem umfasst einen Kommunikationsbus und einen Buscontroller zum Steuern einer Übertragung von Nachrichten auf dem Kommunikationsbus, wobei die Übertragung von Nachrichten auf den Kommunikationsbus durch den Buscontroller auf einer Unterbrechungsbasis ausgeführt wird. Das Controllerbereichsnetzsystem umfasst ferner mehrere Knoten, die mehrere Kommunikationsendpunkte bilden, die durch den Kommunikationsbus kommunikationsfähig gekoppelt sind. Jeder Knoten umfasst mindestens eine Anwendungskomponente, eine elektronische Steuereinheit, einen Senderpuffer, einen Empfängerpuffer und mindestens einen Buscontroller. Die elektronische Steuereinheit empfängt Fahrzeugbetriebsdaten von der mindestens einen Anwendungskomponente und erzeugt eine Nachricht, die die Fahrzeugbetriebsdaten umfasst, zur Übertragung auf dem Kommunikationsbus. Die elektronische Steuereinheit funktioniert in einem durch ein Ereignis ausgelösten Modus zum Einleiten der Übertragung der Nachricht auf dem Kommunikationsbus zu einem nächsten jeweiligen Knoten. Die Nachricht wird im Senderpuffer in Ansprechen darauf, dass der Buscontroller nicht verfügbar ist, gespeichert. Der Buscontroller ist nicht verfügbar, um die nächste Nachricht von der elektronischen Steuereinheit zu empfangen, wenn eine in einem Speicher des Buscontrollers gespeicherte vorherige Nachricht auf die Übertragung auf dem Kommunikationsbus wartet. Der Buscontroller ist zum Empfangen einer Nachricht von der elektronischen Steuereinheit verfügbar, wenn der Speicher leer ist. Eine Feststellung wird gemacht, wenn die im Buscontroller gespeicherte vorherige Nachricht erfolgreich auf dem Kommunikationsbus übertragen wird. Ein Verkehrsgestaltungs-Flag wird in Ansprechen darauf, dass die im Buscontroller gespeicherte vorherige Nachricht erfolgreich auf dem Kommunikationsbus übertragen wird, gelöscht. Das Löschen des Verkehrsgestaltungs-Flags gibt an, dass Nachrichten nicht zum Buscontroller übertragen werden können. Eine Feststellung wird gemacht, wenn eine vorbestimmte Zeitdauer ab der Feststellung, dass die vorherige Nachricht erfolgreich auf dem Kommunikationsbus übertragen wurde, abgelaufen ist. In Ansprechen darauf, dass die vorbestimmte Zeitdauer abläuft, wird das Verkehrsgestaltungs-Flag zum Angeben, dass eine Nachricht zum Buscontroller übertragen werden kann, gesetzt. Die Nachricht wird in Ansprechen auf das Setzen des Verkehrsgestaltungs-Flags vom Senderpuffer zum Buscontroller übertragen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist eine schematische Darstellung eines Controllerbereichsnetzsystems.
-
2 ist ein Zeitplan, der eine Datennachrichtenverarbeitung im Controllerbereichsnetzsystem darstellt.
-
3 ist ein Zeitplan, der eine Puffertechnik für das Controllerbereichsnetzsystem darstellt.
-
4 ist ein Ablaufplan einer Puffertechnik für einen Senderpuffer gemäß einer Ausführungsform der Erfindung.
-
5 ist ein Ablaufplan für eine Warteschlangenaufbautätigkeit für den Senderpuffer gemäß einer Ausführungsform der Erfindung.
-
6 ist ein Ablaufplan für eine Warteschlangenabbautätigkeit für den Senderpuffer gemäß einer Ausführungsform der Erfindung.
-
7 ist ein Ablaufplan einer Verkehrsgestaltung-Managementroutine gemäß einer Ausführungsform der Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
In 1 ist ein Controllerbereichsnetzsystem (CAN-System) 10 gezeigt. Das CAN-System 10 umfasst mehrere elektronische Steuereinheiten (ECUs) 12–18, die mit einem Kommunikationsbus 20 gekoppelt sind, der ermöglicht, dass die ECUs miteinander kommunizieren. Jede der mehreren ECUs 12–18 ist mit einem oder mehreren Sensoren, Aktuatoren oder Steuervorrichtungen gekoppelt (die Gruppe wird nachstehend als Anwendungskomponenten bezeichnet) und sie sind im Allgemeinen jeweils durch 22–28 dargestellt. Die Anwendungskomponenten sind nicht direkt mit dem Kommunikationsbus 20 verbunden, sondern sind über die jeweiligen ECUs gekoppelt. Die Anwendungskomponenten könnten auch Softwarekomponenten in ECUs sein. Ein einzelnes Steuermerkmal kann sich über mehrere Anwendungskomponenten erstrecken und Steuernachrichten von der Quellen- zur Ziel-ECU über eine oder mehrere Zwischen-Verarbeitungs-/Steuer-ECUs, die an demselben Kommunikationsbus angebracht sind, beinhalten. Für die Zwecke dieser Erfindung sind CAN-Systeme selbstverständlich auf dem Fachgebiet bekannt und die ECUs, Anwendungsvorrichtungen, CAN-Controller und Sender/Empfänger werden als Knoten bezeichnet und die Details ihrer Zusammensetzung werden hier nicht im Einzelnen erörtert.
-
In 1 werden Nachrichten seriell über den Kommunikationsbus 20 zu jeder ECU 12–18 und dann zu den Anwendungskomponenten 22–28 übertragen. Jeder Knoten N1, N2, N3 und N4 verarbeitet jede Nachricht vor dem Übertragen jeder Nachricht zu einem nächsten jeweiligen Knoten. Fünf Nachrichten d1–d5 in der Nachrichtenklasse sind in 2 dargestellt. Die Nachrichten d1–d5 werden nacheinander zum ersten Knoten N1 übertragen. Am ersten Knoten N1 wird jede Nachricht auf einer periodischen Basis verarbeitet und wird dann jeweils zum zweiten Knoten N2 zur zusätzlichen Verarbeitung übertragen. Der Zeitplan 30 stellt jeweilige Zeitpunkte dar, zu denen die Nachrichten d1–d5 in den ersten Knoten N1 eingespeist werden. Der Zeitplan 32 stellt jeweilige Zeitpunkte dar, zu denen die Nachrichten d1–d5 zu einem Buscontroller (nachstehend als Buscontroller bezeichnet) zur Übertragung zum zweiten Knoten N2 über den Kommunikationsbus geliefert werden. Jeder Knoten weist mindestens einen Buscontroller zum Steuern von Nachrichten, die zum und vom Kommunikationsbus übertragen werden, auf.
-
Aufgrund eines Konflikts auf dem Kommunikationsbus kann eine Nachricht nicht unmittelbar zum Buscontroller hinzugefügt werden. Wenn ein Konflikt vorhanden ist, dann könnte die Nachricht verloren gehen.
-
Ein Beispiel eines Nachrichtenverlusts ist in 2 dargestellt. Die erste Nachricht d1 wird im ersten Knoten N1 verarbeitet und wird dann auf dem Kommunikationsbus zum zweiten Knoten N2 übertragen. Der Zeitplan 34 stellt den Zeitpunkt dar, zu dem die Nachricht d1 am zweiten Knoten N2 empfangen wird. Die Nachricht d1 wird im zweiten Knoten N2 verarbeitet und wird dann zum Buscontroller zur Übertragung auf dem Kommunikationsbus geliefert. Die Nachricht d2 wird erfolgreich auf dem Kommunikationsbus übertragen und vom zweiten Knoten N2 empfangen, wie auf dem Zeitplan 32 dargestellt. Vor der Ankunft der Nachricht d2 am Knoten N2 benötigt die zweite Ausführung der Anwendungskomponente am Knoten N2 die Eingabe, die bei 38 gezeigt ist, in welchem Fall die erste Nachricht d1 wiederverwendet wird, wie durch die gestrichelte Linie 36 in 2 gezeigt. Zwischen der zweiten Ausführung und der dritten Ausführung der Anwendungskomponente am Knoten N2 auf der Linie 34 kommen zwei Eingangsnachrichten d2 und d3 am Knoten N2 an, wie auf der Linie 32 in 2 gezeigt. Da die typische Puffergröße für jeden Knoten nur eine Nachricht aufnehmen kann, wird die Nachricht d2 mit der Nachricht d3 überschrieben, bevor sie von der Anwendungskomponente am Knoten N2 verwendet werden konnte. Folglich verwendet die dritte Ausführung der Anwendungskomponente am Knoten N2 die Nachricht d3 und die Nachricht d2 geht verloren.
-
2 zeigt ferner, dass Nachrichten d3 und d4 aufgrund eines Konflikts an den Empfängerpuffern auch verloren gehen, wenn die Nachricht d1 wiederholt wiederverwendet wird. Die verarbeiteten Nachrichten, die aus dem vierten Knoten N4 ausgegeben werden, umfassen Nachrichten d1–d1–d1–d1–d5. Die Datennachrichten d2, d3, d4 gehen aufgrund dessen, dass Nachrichten überschrieben werden, verloren, was das direkte Ergebnis von Jitter, von endlichen Puffern oder von asynchronen Takten sein kann.
-
Um den Nachrichtenverlust aufgrund eines Konflikts am Buscontroller oder auf dem Kommunikationsbus zu verringern, werden in jedem Knoten Senderpuffer auf Softwarebasis verwendet. Die CAN-Controller-Hardware enthält Hardwarepufferzellen (CAN-Briefkästen), die zur Datenübertragung und zum Datenempfang verwendet werden. Daher sind die hier beschriebenen Ausführungsformen auf eine Pufferstrategie auf Softwarebasis ohne irgendwelche Auswirkungen auf die tatsächliche CAN-Controller-Hardwarepuffernutzung gerichtet. Eine jeweilige ECU innerhalb eines Knotens umfasst einen Senderpuffer, der von allen Anwendungskomponenten am jeweiligen Knoten gemeinsam genutzt wird. Für die Knoten N1–N4, wie in 2 beschrieben, wird beispielsweise ein gemeinsamer Senderpuffer für alle Anwendungskomponenten in N1 verwendet, ein gemeinsamer Senderpuffer wird für alle Anwendungskomponenten in N2 verwendet, ein gemeinsamer Senderpuffer wird für alle Anwendungskomponenten in N3 verwendet und ein gemeinsamer Senderpuffer wird für alle Anwendungskomponenten in N4 verwendet.
-
3 stellt die Verwendung eines Senderpuffers zum Verhindern eines Nachrichtenverlusts dar. Wie in 3 gezeigt, werden die Nachrichten d1–d5 zum ersten Koten N1 zu periodischen Zeitpunkten übertragen, wie auf dem Zeitplan 40 gezeigt. Der Zeitplan 41 stellt den Zeitpunkt dar, zu dem die Nachrichten zum Buscontroller ausgesendet werden. Der Zeitplan 42 stellt den Zeitpunkt dar, zu dem die Nachrichten auf dem Kommunikationsbus ausgesendet und vom zweiten Knoten N2 empfangen werden.
-
Ein Senderpuffer 44 ist in die ECU des ersten Knotens N1 integriert und wird von allen Anwendungskomponenten am ersten Knoten N1 gemeinsam genutzt. Der Senderpuffer 45 ist in die ECU des zweiten Knotens N2 integriert und wird von allen Anwendungskomponenten am zweiten Knoten N2 gemeinsam genutzt. Der Senderpuffer 44 speichert Nachrichten vorübergehend, bis (1) der Buscontroller bereit ist, eine nächste Nachricht zur Übertragung auf dem Kommunikationsbus anzunehmen, und (2) eine vorbestimmte Zeitdauer abläuft, seitdem eine vorherige Nachricht übertragen wurde. Das Warten, bis eine vorbestimmte Zeitdauer abläuft, nachdem die vorherige Nachricht auf dem Kommunikationsbus übertragen wird, stellt sicher, dass eine ausreichende Menge an Zeit für die Empfangseinheit des nächsten Knotens vorgesehen wird, um die Nachricht zu empfangen und zu verarbeiten. Auf der Empfängerseite eines jeweiligen Knotens werden sowohl die Empfangsvorrichtung als auch die Anwendungskomponente auf einer Unterbrechungsbasis ausgeführt. Als Ergebnis werden Nachrichten durch den Buscontroller in zeitlich gesteuerten Intervallen rechtzeitig übertragen, um sicherzustellen, dass der Anwendungskomponente reichlich Zeit gegeben wurde, um die Eingangsdaten in der vorherigen Nachricht zu lesen, so dass die vorherige Nachricht gelöscht werden kann, bevor eine nächste Nachricht empfangen wird. Selbst wenn der Buscontroller leer ist und verfügbar ist, um eine Nachricht zu empfangen, kann daher eine Nachricht von der Klasse von Nachrichten d1–d5 nicht zum Controller übertragen werden, bis eine vorbestimmte Zeitdauer abläuft, nachdem der Buscontroller bestätigt, dass die vorherige Nachricht erfolgreich auf dem Kommunikationsbus übertragen wurde.
-
In 3 ist die Nachricht d2 als auf dem Kommunikationsbus durch den Buscontroller übertragen auf dem Zeitplan 41 gezeigt. Die Nachricht d3 wird zum ersten Knoten N1 zur Verarbeitung übertragen und steht zur Übertragung zum Buscontroller zur Verfügung, wie im Allgemeinen bei 46 auf dem Zeitplan 41 gezeigt. Die vorbestimmte Zeitdauer ist jedoch nicht abgelaufen, die zu laufen beginnt, nachdem eine Bestätigungsnachricht durch den Buscontroller aufgezeichnet wird, die angibt, dass die Nachricht d2 erfolgreich auf dem Kommunikationsbus übertragen wird. Folglich wird die Nachricht d3, die zur Übertragung zum Zeitpunkt 46 zur Verfügung steht, im Senderpuffer 44 gehalten, bis die vorbestimmte Zeitdauer abgelaufen ist, wie zum Zeitpunkt 48 angegeben. Zum Zeitpunkt 48 wird die Nachricht zum Buscontroller zur Übertragung auf dem Kommunikationsbus übertragen. Jede ECU führt eine Verkehrsgestaltungsroutine aus, die bestimmt, wann die vorbestimmte Zeitdauer abgelaufen ist, was auf der Basis einer Zeitgeberfunktion angibt, wann eine Nachricht zum Buscontroller übertragen werden kann.
-
4 stellt einen breiten Überblick eines Ablaufdiagramms für eine Senderpuffer-Managementtechnik zum Übertragen von Nachrichten von einer Anwendungskomponente eines jeweiligen Knotens zum Buscontroller dar.
-
Im Block 50 verarbeitet die Anwendungskomponente die Fahrzeugbetriebsdaten und überträgt die Daten zur ECU innerhalb des Knotens zum Erzeugen und Übertragen einer Nachricht auf dem Kommunikationsbus. Im Block 51 wird die Senderpuffer-Warteschlangenaufbautätigkeit eingeleitet. Im Block 52 wird die jeweilige Nachricht in einer jeweiligen Zelle des Senderpuffers gespeichert. Im Block 53 wird die Senderpuffer-Warteschlangenabbautätigkeit eingeleitet. Im Block 54 wird die Nachricht zur Übertragung auf dem Kommunikationsbus zum Buscontroller übertragen.
-
Der Prozess zum Puffer von Nachrichten für den Buscontroller wird durch ein Warteschlangenaufbautätigkeitsmodul und ein Warteschlangenabbautätigkeitsmodul gemanagt. Die Warteschlangeaufbautätigkeit wird ausgeführt, wenn die ECU eine Nachricht nicht zum Buscontroller übertragen kann, da der Speicher des Buscontrollers belegt ist. Das Warteschlangenaufbautätigkeitsmodul schafft eine Routine zum Hinzufügen der Nachricht zu einer jeweiligen Zelle des Senderpuffers, wenn der Buscontroller nicht verfügbar ist.
-
Der Senderpuffer umfasst mehrere Pufferzellen. Jede Pufferzelle innerhalb des Senderpuffers wird als individueller Speicherblock behandelt und die Nachrichten in verschiedenen Pufferzellen werden in einer Sendernachrichtenverknüpfungsliste geordnet. Die Sendernachrichtenverknüpfungsliste priorisiert die Reihenfolge der Pufferzellen. Fahrzeugbetriebsdaten werden von der Anwendungskomponente zur ECU geliefert. Das Warteschlangenaufbautätigkeitsmodul fügt die Nachricht, die die Fahrzeugbetriebsdaten enthält, zum Senderpuffer hinzu. Das Warteschlangenaufbautätigkeitsmodul der ECU hält ein binäres Flag für jede Pufferzelle aufrecht. Wenn eine entsprechende Pufferzelle leer ist, wird das binäre Flag auf 1 gesetzt. Wenn eine entsprechende Pufferzelle belegt ist, wird das binäre Flag auf 0 gesetzt.
-
Wenn das Warteschlangenaufbautätigkeitsmodul eine neue Nachricht zum Senderpuffer hinzufügen muss, wird zuerst ein Zustand des binären Flags in jeder Pufferzelle geprüft. Wenn das binäre Flag angibt, dass eine leere Pufferzelle vorhanden ist (d. h. binäres Flag auf 1 gesetzt), dann wird die neue Nachricht in die Pufferzelle eingegeben und die jeweilige Pufferzelle wird zum Ende der Sendernachrichtenverknüpfungsliste hinzugefügt. Das Flag der jeweiligen Pufferzelle wird von 1 auf 0 geändert. Falls keine leere Pufferzelle verfügbar ist, dann können andere Löschrichtlinien übernommen werden, um die neue Nachricht aufzunehmen, wie z. B. dass die älteste Nachricht zuerst gelöscht wird oder die Nachricht mit niedrigster Priorität zuerst gelöscht wird.
-
Die Warteschlangenabbautätigkeit wird verwendet, um Nachrichten vom Senderpuffer geordnet zum Buscontroller zu übertragen. Die Warteschlangenabbautätigkeit wird ausgelöst, nachdem eine Bestätigungsnachricht vom Buscontroller empfangen wird und nachdem ein Verkehrszeitgeber-Flag gesetzt wird. Das heißt, wenn die Warteschlangenabbautätigkeit ausgeführt wird, wird eine Nachricht vom Senderpuffer zum Buscontroller erst dann übertragen, nachdem die Feststellung gemacht ist, dass der Buscontroller verfügbar ist, und nachdem die vorbestimmte Zeitdauer abgelaufen ist, seitdem die vorherige Nachricht erfolgreich vom Buscontroller auf dem Kommunikationsbus übertragen wurde. Wenn die Bedingungen für die Übertragung der Nachricht erfüllt sind, dann wird die Nachricht zum Buscontroller übertragen und die jeweilige Nachricht wird im Senderpuffer gelöscht; ansonsten bleibt die Nachricht im Senderpuffer und wartet, bis diese Bedingungen erfüllt sind.
-
Bei einer erfolgreichen Übertragung der Nachricht auf dem Kommunikationsbus erzeugt der Buscontroller eine Bestätigungsnachricht, die von der ECU empfangen wird. Das Verkehrsgestaltungsmodul löscht ein Verkehrsgestaltungs-Flag und ein Verkehrsgestaltungszeitgeber wird ausgelöst. Beim Ablauf des Zeitgebers wird das Verkehrsgestaltungs-Flag für diese Nachrichtenklasse gesetzt, was angibt, dass irgendeine Nachricht innerhalb dieser Klasse d1–d5 durch die Warteschlangenabbautätigkeit zum Buscontroller gesendet werden kann.
-
Die Warteschlangenabbautätigkeit wird ausgeführt, wenn eine Bestätigungsnachricht von der ECU empfangen wird und wenn das Verkehrsgestaltungs-Flag gesetzt ist (d. h. der Verkehrsgestaltungszeitgeber abläuft). Verschiedene Warteschlangenabbaurichtlinien können zum Bestimmen, welche Nachricht im Senderpuffer zur Übertragung zum Kommunikationscontroller ausgewählt wird, verwendet werden. Warteschlangenabbaurichtlinien können umfassen, dass die älteste Nachricht zuerst gelöscht wird oder die Nachricht mit höchster Priorität zuerst gelöscht wird.
-
5 stellt einen detaillierten Prozess des Senderpuffer-Warteschlangenaufbautätigkeitsmoduls dar, der eingeleitet wird, wie im Block 51 von 4 angegeben. Im Block 60 wird der Senderpuffer-Warteschlangenaufbaualgorithmus eingeleitet. Im Block 61 wird eine Feststellung hinsichtlich dessen gemacht, ob eine leere Pufferzelle im Senderpuffer verfügbar ist. Diese Feststellung basiert darauf, ob irgendeine Pufferzelle ein binäres Flag aufweist, das einen leeren Zellenzustand angibt. Wenn die Feststellung gemacht wird, dass eine Pufferzelle leer ist, dann geht die Routine zum Block 63 weiter. Wenn die Feststellung gemacht wird, dass keine leere Pufferzelle im Senderpuffer verfügbar ist, dann geht die Routine zum Block 62 weiter.
-
Im Block 62 wird eine gegenwärtig gespeicherte Nachricht in der Senderpufferzelle gemäß der Löschrichtlinie gelöscht (z. B. älteste Nachricht zuerst gelöscht oder Nachricht mit niedrigster Priorität zuerst gelöscht).
-
Im Block 63 wird die neue Nachricht in der leeren Pufferzelle gespeichert. Das binäre Flag der Pufferzelle wird auf 1 gesetzt und die Pufferzelle wird zur Sendernachrichtenverknüpfungsliste hinzugefügt.
-
Im Block 64 endet der Warteschlangenaufbaualgorithmus für diese jeweilige Übertragungstätigkeit.
-
6 stellt einen detaillierten Prozess der Senderpuffer-Warteschlangenabbautätigkeit dar, die eingeleitet wird, wie im Block 53 von 4 angegeben. Im Block 70 wird der Senderpuffer-Warteschlangenabbaualgorithmus eingeleitet. Im Block 71 wird eine Feststellung hinsichtlich dessen gemacht, ob der Buscontroller verfügbar ist, um eine Nachricht anzunehmen. Wenn die Feststellung gemacht wird, dass der Buscontroller nicht verfügbar ist, dann geht die Routine zum Block 74 weiter. Wenn die Feststellung gemacht wird, dass der Buscontrollerpuffer verfügbar ist, um eine Nachricht anzunehmen, dann geht die Routine zum Block 72 weiter.
-
Im Block 72 wird eine Feststellung hinsichtlich dessen gemacht, ob das Verkehrsgestaltungs-Flag gesetzt ist. Wenn die Feststellung gemacht wird, dass das Verkehrsgestaltungs-Flag gelöscht ist, dann endet die Routine. Wenn die Feststellung gemacht wird, dass das Verkehrsgestaltungs-Flag gesetzt ist, dann geht die Routine zum Block 73 weiter.
-
Im Block 73 wird die Nachricht aus dem Senderpuffer entfernt und wird gemäß den Warteschlangenabbaurichtlinien (z. B. älteste Nachricht wird zuerst aus der Warteschlange entfernt oder Nachricht mit höchster Priorität wird zuerst aus der Warteschlange entfernt) zum Buscontroller übertragen.
-
Im Block 74 endet der Warteschlangenabbaualgorithmus für die jeweilige Übertragungstätigkeit.
-
7 stellt ein Ablaufdiagramm für die Verkehrsgestaltungsroutine dar. Im Block 80 wird die Verkehrsgestaltungsroutine eingeleitet. Im Block 81 wird eine Feststellung hinsichtlich dessen gemacht, ob eine Nachricht zum Buscontroller gesendet wird. Wenn die Feststellung gemacht wird, dass eine Nachricht kürzlich durch die ECU für diese Nachrichtenklasse zum Buscontroller gesendet wurde, dann geht die Routine zum Block 85 weiter. Im Block 85 wird das Verkehrsgestaltungs-Flag gelöscht. Die Routine geht zum Block 87 weiter. Wenn die Feststellung gemacht wird, dass kürzlich keine Nachricht zum Buscontroller gesendet wurde, dann geht die Routine zum Block 82 weiter.
-
Im Block 82 wird eine Feststellung hinsichtlich dessen gemacht, ob eine Bestätigungsnachricht vom Buscontroller empfangen wird, die angibt, dass eine im Buscontroller gespeicherte vorherige Nachricht erfolgreich auf dem Kommunikationsbus übertragen wird. Wenn die Bestätigungsnachricht empfangen wird, dann geht die Routine zum Block 86 weiter. Im Block 86 wird die Verkehrsgestaltungszeit für die Klasse von Nachrichten gestartet. Die Routine geht dann zum Block 87 weiter. Wenn die Feststellung gemacht wird, dass keine Bestätigungsnachricht empfangen wird, dann geht die Routine zum Block 83 weiter.
-
Im Block 83 wird eine Feststellung hinsichtlich dessen gemacht, ob der Verkehrsgestaltungszeitgeber abgelaufen ist. Wenn der Verkehrsgestaltungszeitgeber nicht abgelaufen ist, dann geht die Routine zum Block 87 weiter. Wenn eine Feststellung gemacht wird, dass die Verkehrsgestaltungszeit abgelaufen ist, dann geht die Routine zum Block 84 weiter.
-
Im Block 84 wird das Verkehrsgestaltungs-Flag gesetzt und es löst die Warteschlangenabbautätigkeit zum Übertragen einer Nachricht zum Buscontroller aus. Die Routine geht zum Block 87 weiter.
-
Im Block 87 endet die Verkehrsgestaltungsroutine für diese Tätigkeit.
-
Obwohl bestimmte Ausführungsformen der vorliegenden Erfindung im Einzelnen beschrieben wurden, erkennt der Fachmann auf dem Gebiet, auf das sich diese Erfindung bezieht, verschiedene alternative Konstruktionen und Ausführungsformen zur Ausführung der Erfindung, wie durch die folgenden Ansprüche definiert.