-
Die Erfindung betrifft ein Verfahren zur Beeinflussung der Buskommunikation eines Steuergeräts, wobei die Buskommunikation wenigstens eine bushardwareunabhängige erste Kommunikationsschicht und wenigstens eine bushardwareabhängige zweite Kommunikationsschicht umfasst. Verfahren zur Beeinflussung der Buskommunikation eines Steuergeräts werden häufig dann eingesetzt, wenn ein Steuergerät, das mit anderen Kommunikationspartnern über einen Bus verbunden ist bzw. verbunden werden soll, zu testen ist, insbesondere dann, wenn das Kommunikationsverhalten des Steuergeräts selbst Gegenstand der Untersuchung ist. Verfahren zur Beeinflussung der Buskommunikation eines Steuergeräts dienen deshalb häufig dem Test eines Steuergeräts und zur Erprobung des Steuergeräteverhaltens im Fehlerfall. Derartige Verfahren sind beispielsweise bekannt im Rahmen der sog. Restbussimulation, bei der reale Steuergeräte in eine hard- und softwaremäßig simulierte Kommunikationsumgebung eingesetzt und in ihrem Verhalten getestet werden. Solche Verfahren sind aber auch bekannt im Rahmen der Restbussimulation virtueller Steuergeräte.
-
Die erste und die zweite Kommunikationsschicht können weitere Sub-Kommunikationsschichten umfassen. Der Begriff der "Kommunikationsschicht" ist dabei im Wesentlichen in dem Sinne zu verstehen, wie er dem allgemeinen Verständnis nach für Netzwerk-Protokolle oder Busprotokolle verwendet wird. Jede Kommunikationsschicht stellt üblicherweise Funktionalitäten zur Verfügung, um Informationen aus einer benachbarten Kommunikationsschicht entgegenzunehmen und zu einer weiteren benachbarten Kommunikationsschicht aufbereitet weiterzugeben. Hinsichtlich der zuvor dargestellten Unterteilung in eine bushardwareunabhängige erste Kommunikationsschicht und eine bushardwareabhängige zweite Kommunikationsschicht bedeutet dies konkret, dass die erste Kommunikationsschicht wenigstens eine Information in eine erste Protokoll-Dateneinheit kodiert und an die zweite Kommunikationsschicht überträgt und/oder dass die erste Kommunikationsschicht von der zweiten Kommunikationsschicht die erste Protokoll-Dateneinheit erhält und aus der ersten Protokoll-Dateneinheit die Information dekodiert. Bei der Information handelt es sich in der bushardwareunabhängigen ersten Kommunikationsschicht üblicherweise um ein anwendungsnahes Datum, beispielsweise um einen Messwert, der von dem Steuergerät aufgenommen worden ist und über einen Bus an andere Busteilnehmer versendet wird, oder beispielsweise um eine vom Steuergerät berechnete Größe. Um welchen Bus es sich dabei konkret handelt, ist für die in Rede stehenden Verfahren weder im Stand der Technik noch bei dem erfindungsgemäßen Verfahren von Bedeutung; das Verfahren kann mit beliebigen Datenbussen verwendet werden. Beispiele für in der industriellen Praxis häufig verwendete Bus-Standards sind CAN, LIN oder FlexRay. Die Information wird jedenfalls in Senderichtung, also von der ersten Kommunikationsschicht zur zweiten Kommunikationsschicht kodiert, also beispielsweise um bestimmte Verwaltungsinformationen erweitert, und an busnähere Schichten weitergereicht, vorliegend also an die zweite Kommunikationsschicht. In Sende- und Kodierrichtung wird die Information in die vorgenannte Protokoll-Dateneinheit verpackt. In Empfangs- oder Dekodierrichtung wird die verpackte Information, also die erste Protokoll-Dateneinheit korrespondierend von Verwaltungsinformationen befreit und letztlich die Information als solche zur Verfügung gestellt. Wenn die erste Kommunikationsschicht in der Lage ist, sowohl zu senden als auch zu empfangen, ist sowohl die Funktionalität des Kodierens als auch die Funktionalität des Dekodierens implementiert. Die erste Kommunikationsschicht ist deshalb bushardwareunabhängig, weil in ihr lediglich solche Dienste implementiert sind, die unabhängig von der konkreten Bushardware sind. D. h. die in der bushardwareunabhängigen Schicht realisierten Dienste sind entweder unabhängig vom Bussystem oder abhängig vom Bussystem, aber nicht abhängig von der konkreten Bushardware. Die busunabhängige erste Kommunikationsschicht liegt daher oberhalb der Kommunikationshardwareabstraktionsschichten. Für das Beispiel eines gemäß des AUTOSAR Standards realisierten Steuergeräts umfasst die bushardwareunabhängige erste Kommunikationsschicht dann Application Layer, Runtime Environment (RTE) und Communication Services (auch inkl. bussystemabhängiger Anteile, wie z. B. CAN Transport Protokoll oder FlexRay Transport Protokoll), aber nicht die bushardwareabhängigen Treiberschichten, wie z. B. CAN Interface oder FlexRay Interface.
-
Auch die bushardwareabhängige zweite Kommunikationsschicht umfasst Funktionalitäten, die die Übermittlung von Daten in Senderichtung – also in Richtung auf den Bus – oder in Empfangsrichtung – also in Richtung auf die erste Kommunikationsschicht – oder die Übermittlung von Daten in beide Richtungen realisieren. Das bedeutet, dass die zweite Kommunikationsschicht aus der ersten Protokoll-Dateneinheit oder aus einer aus der ersten Protokoll-Dateneinheit abgeleiteten weiteren Protokoll-Dateneinheit zur Übertragung über den Bus eine bushardwareabhängige Businformation erzeugt – Senderichtung – und/oder dass die zweite Kommunikationsschicht zumindest aus einer bushardwareabhängigen Businformation die erste Protokoll-Dateneinheit oder eine weitere Protokoll-Dateneinheit, aus der die erste Protokoll-Dateneinheit ableitbar ist, erzeugt – Empfangsrichtung –. Neben der ersten Protokoll-Dateneinheit kann es demnach auch weitere Protokoll-Dateneinheiten geben, die entweder aus der ersten Protokoll-Dateneinheit abgeleitet sind, oder aus denen die erste Protokoll-Dateneinheit ableitbar ist. Dies trägt lediglich dem Umstand Rechnung, dass die zweite Kommunikationsschicht mehrere Sub-Kommunikationsschichten oder Protokollschichten umfassen kann, von denen jede ihre korrespondierende Protokoll-Dateneinheit erzeugt, so wie dies im Zusammenhang mit der ersten Protokoll-Dateneinheit erläutert worden ist. In Senderichtung werden jeder weiteren Protokoll-Dateneinheit üblicherweise weitere Verwaltungsinformationen hinzugefügt und in Empfangsrichtung werden in Sub-Kommunikationsschichten oder Protokollschichten die weiteren Protokoll-Dateneinheiten extrahiert, bis letztlich die erste Protokoll-Dateneinheit erhalten wird, aus der in der ersten Kommunikationsschicht letztlich die Information erhalten wird.
-
Beim Test von Steuergeräten und der Buskommunikation von Steuergeräten besteht ein Interesse darin, den Test möglichst realitätsnah durchzuführen, um ein möglichst aussagekräftiges Testergebnis zu erhalten. Beim Steuergerät kann diese Bedingung erfüllt werden, indem schlicht dasjenige Steuergerät in einer Testumgebung verwendet wird, das in jeder Hinsicht dem später zum Einsatz kommenden Seriensteuergerät entspricht, das also Serienhardware wie auch Seriensoftware aufweist.
-
Bei dem Test eines realen Steuergeräts werden andere Kommunikationspartner häufig im Rahmen einer Restbussimulation auf einem Hardware-in-the-Loop-Simulator (HIL-Simulator) nachgebildet, wobei nicht sämtliche Kommunikationspartner simuliert werden müssen, ein Teil der anderen Kommunikationspartner kann auch real vorliegen. Im Fall dieser jedenfalls auch vorhandenen Restbussimulation können Fehler im simulierten Restbusanteil verhältnismäßig einfach generiert werden, Fehler zwischen real vorhandenen Steuergeräten lassen sich jedoch nicht ohne weiteres einstreuen. Soll auch die Kommunikation zwischen realen Steuergeräten beeinflusst werden, wird dies häufig mit einem Fehlergateway realisiert. Bei einem Fehlergateway wird neben dem normalen, fehlerfrei arbeitenden Bus ein zweiter "Fehlerbus" zur Verfügung gestellt, der im Fehlerfall zwischen zwei realen Steuergeräten zum Tragen kommt. Das Fehlergateway vermittelt dann zwischen dem normalen Bus und dem Fehlerbus, wobei das Fehlergateway die zu beeinflussenden Daten im zu testenden Fehlerfall empfängt und dekodiert, bis eine solche Protokoll-Dateneinheit vorliegt, in die ein Fehler einzubringen ist, woraufhin die beeinflusste Nachricht wieder kodiert und über den Fehlerbus einem anderen Steuergerät zugeleitet wird. Es ist ohne weiteres ersichtlich, dass die Beeinflussung der Buskommunikation eines Steuergeräts über ein Fehlergateway ausgesprochen aufwendig ist. Darüber hinaus setzt die Restbussimulation mit realen Steuergeräten immer voraus, dass das Steuergerät auch in seiner Serienfassung oder zumindest als Hardware-Realisierung (sogenannte Vorserie) vorliegt, was den Test der Buskommunikation eines Steuergeräts zu einem frühen Zeitpunkt praktisch unmöglich macht. Dazu kommt, dass in dem Restbusmodell eines simulierten Steuergeräts auf einem HIL-Simulator nicht der Code implementiert ist, der später in den tatsächlichen Steuergeräten zum Einsatz kommt, so dass die beeinflusste und getestete Buskommunikation nicht der später tatsächlich realisierten Buskommunikation entspricht.
-
Genau hier setzt das sogenannte virtuelle Steuergeräte Testen an. Im Gegensatz zum Steuergerätemodell einer Restbussimulation, enthält der Code eines virtuellen Steuergeräts bereits Komponenten des Seriensteuergerätecodes, der später auf der Steuergeräte-Hardware eingesetzt werden soll. Als virtuelles Steuergerät wird also Software bezeichnet, die in einem Simulationsszenario ein echtes Steuergerät emuliert. Das virtuelle Steuergerät umfasst dabei beispielsweise die Komponenten der Applikations-Software, das Runtime-Environment sowie von Teile der Basis-Software als Seriensteuergerätecode.
-
Ein virtuelles Steuergeräte-Modell wird beispielsweise auf einem Standard-PC in einer Offline-Simulation oder auf einem Echtzeit-Simulator getestet. Dabei sollen in der Simulation realitätsnahe Effekte wie das Kommunikationsverhalten untersucht werden.
-
Aufgabe der vorliegenden Erfindung ist es daher, ein Verfahren zur Beeinflussung der Buskommunikation eines Steuergeräts bereitzustellen, das einen möglichst realitätsnahen Test der Buskommunikation des Steuergeräts zulässt.
-
Die zuvor aufgezeigte und hergeleitete Aufgabe ist im Wesentlichen dadurch gekennzeichnet, dass wenigstens eine entweder zwischen der ersten Kommunikationsschicht und der zweiten Kommunikationsschicht oder innerhalb der zweiten Kommunikationsschicht realisierte Sende-Beeinflussungsschicht die erste Protokoll-Dateneinheit und/oder wenigstens eine von der ersten Protokoll-Dateneinheit abgeleitete weitere Protokoll-Dateneinheit beeinflusst und die beeinflusste erste Protokoll-Dateneinheit und/oder die beeinflusste weitere Protokoll-Dateneinheit zur weiteren Verarbeitung der zweiten Kommunikationsschicht zur Verfügung stellt und/oder dass wenigstens eine entweder zwischen der ersten Kommunikationsschicht und der zweiten Kommunikationsschicht oder innerhalb der zweiten Kommunikationsschicht realisierte Empfangs-Beeinflussungsschicht die weitere Protokoll-Dateneinheit oder die aus der von der weiteren Protokoll-Dateneinheit abgeleitete erste Protokoll-Dateneinheit beeinflusst und die erhaltene beeinflusste erste Protokoll-Dateneinheit und/oder die beeinflusste weitere Protokoll-Dateneinheit zur weiteren Verarbeitung der zweiten Kommunikationsschicht zur Verfügung stellt.
-
Ein wesentlicher Aspekt des erfindungsgemäßen Verfahrens besteht darin, das außerhalb der bushardwareunabhängigen ersten Kommunikationsschicht eine Sende-Beeinflussungsschicht – Senderichtung – und/oder eine Empfangs-Beeinflussungsschicht – Empfangsrichtung – vorgesehen ist, die praktisch in beliebiger Tiefe des Protokollstapels eine Beeinflussung der zu versendenden oder empfangenen Daten ermöglicht. Dadurch, dass die Beeinflussungsschichten jedenfalls außerhalb der bushardwareunabhängigen ersten Kommunikationsschicht vorgesehen sind, kann der der ersten Kommunikationsschicht zugrunde liegende Code des Steuergeräts unverändert auch bei einer Fehlereinstreuung durch die Beeinflussungsschichten getestet werden. Der Code der bushardwareunabhängigen ersten Kommunikationsschicht muss für die erfindungsgemäße Fehlereinstreuung durch die Beeinflussungsschichten in keinster Weise verändert werden, er muss demzufolge auch nicht neu generiert werden. Da die bushardwareunabhängige erste Kommunikationsschicht in realen Anwendungen üblicherweise eine Applikations-Schicht, eine Schicht zur Implementierung einer Laufzeitumgebung und eine bestimmte bushardwareunabhängige Kommunikationsdienste umfassende Sub-Kommunikationsschicht umfasst, werden mit dem erfindungsgemäßen Verfahren bei der Beeinflussung der Buskommunikation insbesondere auch die unveränderten bushardwareunabhängigen Kommunikationsdienste getestet, was gegenüber den aus dem Stand der Technik bekannten Verfahren einen erheblichen Vorteil darstellt.
-
Für das erfindungsgemäße Verfahren ist es nicht entscheidend, ob die Sende-Beeinflussungsschicht und/oder die Empfangs-Beeinflussungsschicht zwischen der bushardwareunabhängigen ersten Kommunikationsschicht und der bushardwareabhängigen zweiten Kommunikationsschicht realisiert ist, also praktisch außerhalb der ersten und der zweiten Kommunikationsschicht, oder ob die Empfangs- und/oder die Sende-Beeinflussungsschicht als Bestandteil der zweiten Kommunikationsschicht realisiert ist. Je nach Anwendungsfall und je nach gewünschtem Ort der Einflussnahme auf die Buskommunikation kann es auch gewünscht sein, eine oder beide Beeinflussungsschichten sowohl zwischen der ersten Kommunikationsschicht und der zweiten Kommunikationsschicht als auch innerhalb der zweiten Kommunikationsschicht zu realisieren.
-
In einer vorteilhaften Ausgestaltung des Verfahrens wird die erste Protokoll-Dateneinheit und/oder wenigstens eine von der ersten Protokoll-Dateneinheit abgeleitete weitere Protokoll-Dateneinheit durch die Sende-Beeinflussungsschicht beeinflusst, indem die erste Protokoll-Dateneinheit und/oder die weitere Protokoll-Dateneinheit dekodiert wird, die erhaltene dekodierte und zu beeinflussende Information beeinflusst wird und die beeinflusste Information wieder zu einer beeinflussten ersten Protokoll-Dateneinheit und/oder zu einer beeinflussten weiteren Protokoll-Dateneinheit kodiert wird. Vor allem wenn die zweite Kommunikationsschicht mehrere Sub-Kommunikationsschichten – auch Protokollschichten genannt – umfasst, kommen in der zweiten Kommunikationsschicht von der ersten Protokoll-Dateneinheit abgeleitete weitere Protokoll-Dateneinheiten vor, die in Richtung auf die busnahen Sub-Kommunikationsschichten jeweils mit zusätzlichen und protokollabhängigen Informationen ausgestattet sind.
-
Korrespondierend zu dem vorgenannten bevorzugten Ausführungsbeispiel zeichnet sich ein weiteres bevorzugtes Ausführungsbeispiel des Beeinflussungsverfahrens dadurch aus, dass die Empfangs-Beeinflussungsschicht die weitere Protokoll-Dateneinheit und/oder die von der weiteren Protokoll-Dateneinheit abgeleitete erste Protokoll-Dateneinheit beeinflusst, indem die weitere Protokoll-Dateneinheit und/oder die erste Protokoll-Dateneinheit dekodiert wird, die erhaltene dekodierte und zu beeinflussende Information beeinflusst wird und die beeinflusste Information wieder zu der beeinflussten ersten Protokoll-Dateneinheit und/oder zu der beeinflussten weiteren Protokoll-Dateneinheit kodiert wird. Genau wie schon bei der Sende-Beeinflussungsschicht erläutert, wird die erste Protokoll-Dateneinheit oder die weitere Protokoll-Dateneinheit soweit entpackt, bis die zu beeinflussenden Daten "freiliegen" und daher einer Beeinflussung zugänglich sind, woraufhin die beeinflussten Daten durch Kodierung wieder "verpackt" und dem Datenfluss der Buskommunikation wieder zur Verfügung gestellt werden. Durchzuführende Manipulationen bzw. Fehlereinstreuungen betreffen beispielsweise das Ausfallenlassen und/oder eine Verzögerung der Übertragung von Protokoll-Dateneinheiten, das Ausfallenlassen oder Verzögern einer Empfangsbestätigung, die Beeinflussung von Rohdaten, Update-Bits, Checksummen, Countern und Signalen/Daten.
-
Wie zuvor schon angedeutet worden ist, wird bei einer weiteren bevorzugten Ausgestaltung des Beeinflussungsverfahrens aus der ersten Protokoll-Dateneinheit eine Mehrzahl von Protokoll-Dateneinheiten für eine Mehrzahl von Protokollschichten erzeugt und/oder wird in einer Mehrzahl von Protokollschichten aus einer Mehrzahl von Protokoll-Dateneinheiten die erste Protokoll-Dateneinheit abgeleitet. Dabei nimmt zwischen einer Mehrzahl von Protokollschichten eine Mehrzahl von Sende- und/oder Empfangs-Beeinflussungsschichten eine Mehrzahl von Beeinflussungen einer Mehrzahl von Protokoll-Dateneinheiten vor. Wenn dies innerhalb der zweiten Kommunikationsschicht erfolgt, dann sind die genannten Protokollschichten praktisch Sub-Kommunikationsschichten innerhalb der zweiten Kommunikationsschicht. Beispiele für Protokollschichten innerhalb der zweiten Kommunikationsschicht, also für Sub-Kommunikationsschichten innerhalb der zweiten Kommunikationsschicht, sind eine Hardware-Abstraktionsschicht und eine Hardware-Treiberschicht, wobei die Sende-Beeinflussungsschicht und/oder die Empfangs-Beeinflussungsschicht beispielsweise zwischen der Hardware-Abstraktionsschicht und der Hardware-Treiberschicht realisiert ist. Zusätzliche Beeinflussungsschichten können darüber hinaus oder alternativ realisiert sein.
-
Das erfindungsgemäße Verfahren zur Beeinflussung der Buskommunikation eines Steuergeräts lässt sich zwanglos in Zusammenhang mit bereits existierenden Standards einsetzen. Ein bevorzugter Anwendungsfall besteht darin, dass die bushardwareunabhängige erste Kommunikationsschicht gemäß der Automotive Open System Architecture (AUTOSAR) umgesetzt ist, die darauf ausgelegt ist eine Trennung zwischen Applikation und der zugrunde liegenden Hardware vorzunehmen.
-
Das erfindungsgemäße Verfahren hat den Vorteil, dass mit ihm praktisch beliebige Testszenarien unter Beibehaltung der beschriebenen Vorteile realisiert werden können. Das Verfahren ist beispielsweise problemlos mittels einer Softwareimplementierung auf einem Steuergerät durchführbar, insbesondere auf einem Serien-Steuergerät. Bei einer solchen Softwareimplementierung kann der der ersten bushardwareunabhängigen Kommunikationsschicht zugrunde liegende Code unberührt bleiben, das Serien-Steuergerät muss nur insoweit instrumentiert werden, als dass die Sende-Beeinflussungsschicht und/oder die Empfangs-Beeinflussungsschicht zwischen der ersten Kommunikationsschicht und der zweiten Kommunikationsschicht und/oder innerhalb der zweiten Kommunikationsschicht vorgesehen werden müssen bzw. muss. Insbesondere innerhalb der ersten Kommunikationsschicht vorgesehene Kommunikationsdienste werden unabhängig von der Sende-Beeinflussungsschicht und/oder der Empfangs-Beeinflussungsschicht getestet.
-
Zur Durchführung des erfindungsgemäßen Beeinflussungsverfahrens bedarf es eines Serien-Steuergeräts jedoch nicht. In einem bevorzugten Anwendungsfall wird das erfindungsgemäße Beeinflussungsverfahren mittels einer Softwareimplementierung auf einem emulierten Steuergerät durchgeführt, insbesondere beispielsweise auf einem mittels eines Hardware-in-the-Loop-Simulators in Echtzeit emulierten Steuergeräts. Besonders hervorzuheben ist auch hier, dass der der ersten bushardwareunabhängigen Kommunikationsschicht zugrunde liegende Code, so wie er später auf der endgültigen Zielhardware zur Anwendung kommt, auch auf einem emulierten Steuergerät zur Anwendung kommt und dort praktisch losgelöst von den implementierten Beeinflussungsschichten getestet wird.
-
Das erfindungsgemäße Verfahren ist ohne weiteres auch gänzlich "offline" durchführbar, also mittels einer Softwareimplementierung auf einem Zielrechner, der insbesondere nicht-echtzeitfähig ist. Auch hier ist wiederum der Code der ersten Kommunikationsschicht mit den darin enthaltenen Kommunikationsdiensten ohne weiteres so verwendbar, wie er später auf der finalen Hardware verwendet wird.
-
Eine weitere vorteilhafte Ausgestaltung des Verfahrens zeichnet sich dadurch aus, dass die erste Kommunikationsschicht und/oder die zweite Kommunikationsschicht und/oder die Sende-Beeinflussungsschicht und/oder die Empfangs-Beeinflussungsschicht auf verschiedenen Recheneinheiten ausgeführt werden/wird, insbesondere auf verschiedenen Prozessoren oder auf verschiedenen Kernen eines Prozessors.
-
Im Einzelnen gibt es nun eine Vielzahl von Möglichkeiten, das erfindungsgemäße Verfahren zur Beeinflussung der Buskommunikation eines Steuergeräts auszugestalten und weiterzubilden. Dazu wird verwiesen sowohl auf die dem Patentanspruch 1 nachgeordneten Patentansprüche, als auch auf die nachfolgende Beschreibung von bevorzugten Ausführungsbeispielen in Verbindung mit der Zeichnung. In der Zeichnung zeigen:
-
1 schematisch die Funktionsweise der Buskommunikation eines Steuergeräts gemäß dem Stand der Technik,
-
2 eine Sende-Beeinflussungsschicht und eine Empfangs-Beeinflussungsschicht innerhalb einer zweiten Kommunikationsschicht,
-
3 eine Sende-Beeinflussungsschicht und eine Empfangs-Beeinflussungsschicht zwischen einer bushardwareunabhängigen ersten Kommunikationsschicht und einer bushardwareabhängigen zweiten Kommunikationsschicht,
-
4 schematisch den Aufbau der Sende-Beeinflussungsschicht und der Empfangs-Beeinflussungsschicht,
-
5 eine Detailansicht einer möglichen Funktionsweise der Sende-Beeinflussungsschicht und der Empfangs-Beeinflussungsschicht,
-
6 die bushardwareabhängige zweite Kommunikationsschicht mit einer Mehrzahl von Protokollschichten als Sub-Kommunikationsschichten,
-
7 die bushardwareabhängige zweite Kommunikationsschicht mit einer Mehrzahl an Sende- und Empfangsbeeinflussungsschichten,
-
8 den Einsatz des Beeinflussungsverfahrens mit Seriensteuergeräten im Feld,
-
9 den Einsatz des Beeinflussungsverfahrens bei einem Steuergerät mit Restbussimulation und
-
10 den Einsatz des Beeinflussungsverfahrens "offline" auf einem nicht-echtzeitfähigen PC.
-
In den 1 bis 10 sind verschiedene Aspekte eines Verfahrens zur Beeinflussung der Buskommunikation eines Steuergeräts 1 dargestellt, wobei ein reales Steuergerät 1 lediglich in den 8 und 9 explizit dargestellt ist, 10 zeigt ein simuliertes Steuergerät 1.
-
In 1 ist der Aufbau einer aus dem Stand der Technik bekannten Buskommunikation schematisch dargestellt, umfassend eine bushardwareunabhängige erste Kommunikationsschicht 2 und eine bushardwareabhängige zweite Kommunikationsschicht 3. Die bushardwareunabhängige erste Kommunikationsschicht 2 kodiert eine Information 4 in eine erste Protokoll-Dateneinheit 5 und überträgt diese an die bushardwareabhängige zweite Kommunikationsschicht 3. Umgekehrt erhält auf der „Empfängerseite“ die erste Kommunikationsschicht 2 von der zweiten Kommunikationsschicht 3 die erste Protokoll-Dateneinheit 5 und dekodiert aus der ersten Protokoll-Dateneinheit 5 wiederum die Information 4. Die Information 4 ist typischerweise eine anwendungsspezifische Information, beispielsweise eine Prozessgröße wie Druck oder Temperatur, ein Stellwert für ein von dem Steuergerät umfasstes oder an das Steuergerät angeschlossenes Stellglied oder vielleicht auch nur eine darzustellende Information. Die Information 4 ist im Regelfall bushardwareunabhängig.
-
In Senderichtung wird von der zweiten Kommunikationsschicht 3 aus der ersten Protokoll-Dateneinheit 5 oder aus einer aus der ersten Protokoll-Dateneinheit 5 abgeleiteten weiteren Protokoll-Dateneinheit 6 zur späteren Übertragung über den Bus eine bushardwareabhängige Businformation 7 erzeugt. In Empfangsrichtung bedeutet dies, dass die zweite Kommunikationsschicht 3 aus der bushardwareabhängigen Businformation 7 die erste Protokoll-Dateneinheit 5 oder eine weitere Protokoll-Dateneinheit 6, aus der die erste Protokoll-Dateneinheit 5 ableitbar ist, erzeugt. Die erste Kommunikationsschicht 2 und die zweite Kommunikationsschicht 3 können in weitere Sub-Kommunikationsschichten untergliedert sein, können also ihrerseits mehrere Protokollschichten enthalten. In Senderichtung, also von der ersten Kommunikationsschicht 2 über die zweite Kommunikationsschicht 3 hin zu der Businformation 7, wird die Information 4 beim Durchlaufen des Protokollstapels in eine zunehmende Anzahl von Protokollinformationen eingekleidet. In Empfangsrichtung, also von der Businformation 7 über die zweite Kommunikationsschicht 3 hin zur ersten Kommunikationsschicht 2, wird die Businformation 7 beim umgekehrten Durchlaufen des Protokollstapels immer weiter von Protokollinformationen entkleidet, bis letztlich nur noch die Information 4 vorliegt.
-
In 2 ist die Funktionsweise des erfindungsgemäßen Verfahrens zur Beeinflussung der Buskommunikation des Steuergeräts 1 dargestellt. In der zweiten Kommunikationsschicht 3 ist eine Sende-Beeinflussungsschicht 8 realisiert, die die erste Protokoll-Dateneinheit 5 und/oder eine von der ersten Protokoll-Dateneinheit 5 abgeleitete weitere Protokoll-Dateneinheit 6 beeinflusst und die beeinflusste erste Protokoll-Dateneinheit 5b und/oder die beeinflusste weitere Protokoll-Dateneinheit 6b zur weiteren Verarbeitung der zweiten Kommunikationsschicht 3 zur Verfügung stellt. Die Sende-Beeinflussungsschicht 8 dient hier beispielsweise zur bewussten Fehlereinstreuung und daher zum Test der Buskommunikation. Bemerkenswert ist hier, dass die bushardwareunabhängige erste Kommunikationsschicht 2 durch das erfindungsgemäße Verfahren zur Beeinflussung der Buskommunikation nicht verändert oder angepasst zu werden braucht, insbesondere können alle von der bushardwareunabhängigen ersten Kommunikationsschicht 2 umfassten Protokollschichten, insbesondere auch hier angesiedelte Kommunikationsdienste, so verwendet werden, wie sie praktisch im Seriensteuergerät zum Einsatz kommen.
-
Ferner ist in 2 zu erkennen, dass innerhalb der zweiten Kommunikationsschicht 3 auch eine Empfangs-Beeinflussungsschicht 9 realisiert ist, die die weitere Protokoll-Dateneinheit 6 oder die aus der von der weiteren Protokoll-Dateneinheit 6 abgeleitete erste Protokoll-Dateneinheit 5 beeinflusst und die erhaltene beeinflusste erste Protokoll-Dateneinheit 5b und/oder die beeinflusste weitere Protokoll-Dateneinheit 6b zur weiteren Verarbeitung der zweiten Kommunikationsschicht 3 zur Verfügung stellt (Empfangsrichtung).
-
Selbstverständlich müssen nicht alle Protokoll-Dateneinheiten einer Beeinflussung durch die Sende-Beeinflussungsschicht 8 bzw. durch die Empfangs-Beeinflussungsschicht 9 unterzogen werden, bedarfsweise können Protokoll-Dateneinheiten auch an den Beeinflussungsschichten vorbeigeleitet werden, was hier im Einzelnen nicht dargestellt ist.
-
In 3 ist ebenfalls das erfindungsgemäße Verfahren zur Beeinflussung der Buskommunikation eines Steuergeräts dargestellt, wobei im Unterschied zu dem Ausführungsbeispiel gemäß 2 sowohl die Sende-Beeinflussungsschicht 8 als auch die Empfangs-Beeinflussungsschicht 9 zwischen der ersten Kommunikationsschicht 2 und der zweiten Kommunikationsschicht 3 realisiert sind. Ergebnis jeder Beeinflussungsschicht 8, 9 ist jeweils, dass aus der ersten Protokoll-Dateneinheit 5 bzw. aus der von der ersten Protokoll-Dateneinheit 5 abgeleiteten weiteren Protokoll-Dateneinheit 6 durch entsprechende Beeinflussung die beeinflusste erste Protokoll-Dateneinheit 5b bzw. die beeinflusste weitere Protokoll-Dateneinheit 6b erzeugt wird. In Senderichtung wirken die beeinflusste erste Protokoll-Dateneinheit 5b bzw. die beeinflusste weitere Protokoll-Dateneinheit 6b für die zweite Kommunikationsschicht 3 wie eine erste Protokoll-Dateneinheit 5 bzw. wie eine davon abgeleitete weitere Protokoll-Dateneinheit 6, dies ist für die zweite Kommunikationsschicht 3 nicht unterscheidbar.
-
4 zeigt den genaueren Vorgang bei der Beeinflussung der Buskommunikation, einerseits für den Sendepfad und die Sende-Beeinflussungsschicht 8 (links), andererseits für den Empfangspfad mittels der Empfangs-Beeinflussungsschicht 9 (rechts). Die Sende-Beeinflussungsschicht 8 beeinflusst die erste Protokoll-Dateneinheit 5 bzw. eine von der ersten Protokoll-Dateneinheit 5 abgeleitete weiterer Protokoll-Dateneinheit 6, indem die erste Protokoll-Dateneinheit 5 bzw. die weitere Protokoll-Dateneinheit 6 dekodiert wird 10, die erhaltene dekodierte und zu beeinflussende Information beeinflusst wird 11 und die beeinflusste Information wieder zu einer beeinflussten ersten Protokoll-Dateneinheit 5b bzw. zu einer beeinflussten weiteren Protokoll-Dateneinheit 6b kodiert wird 12. Sinngemäß geschieht die Beeinflussung auch in Empfangsrichtung, die Empfangs-Beeinflussungsschicht 9 beeinflusst dort die weitere Protokoll-Dateneinheit 6 bzw. die von der weiteren Protokoll-Dateneinheit 6 abgeleitete erste Protokoll-Dateneinheit 5, indem die weitere Protokoll-Dateneinheit 6 bzw. die erste Protokoll-Dateneinheit 5 dekodiert wird 10, die erhaltene dekodierte und zu beeinflussende Information beeinflusst wird 11 und die beeinflusste Information wieder zu der beeinflussten ersten Protokoll-Dateneinheit 5b bzw. zu der beeinflussten weiteren Protokoll-Dateneinheit 6b kodiert wird 12. Selbstverständlich können die hier für den Sendepfad und den Empfangspfad beschriebenen Schritte der Dekodierung 10, der Beeinflussung 11 und der Kodierung 12 voneinander abweichen, auch wenn sie hier mit gleichen Bezugszeichen versehen sind, selbstverständlich kann auch nur im Sendepfad eine Beeinflussung vorgenommen werden oder auch nur im Empfangspfad. Wie zuvor erwähnt, können Protokoll-Dateneinheiten auch selektiv an den Beeinflussungsschichten vorbeigeleitet werden.
-
5 verdeutlicht die Funktionsweise der zuvor anhand von 4 erläuterten Sende-Beeinflussungsschicht 8 und der Empfangs-Beeinflussungsschicht 9. In 5 ist in sehr kompakter Weise dargestellt, dass die zu beeinflussende Information in unterschiedlicher Tiefe des Protokolls stattfinden kann und dass die Dekodierung 10 in Abhängigkeit davon, in welcher Tiefe des Protokollstapels eine Beeinflussung vorzunehmen ist, auch sehr unterschiedlich weitreichend sein kann. In dem in 5 dargestellten Ausführungsbeispiel ist exemplarisch dargestellt, dass die Dekodierung 10 entweder bis auf eine Netzwerk-Protokollschicht 13, auf eine Interaktions-Protokollschicht 14 oder sogar bis auf eine Signalebene 15 reicht, wobei die Beeinflussung 11 dann auf der jeweiligen Protokollschicht geschieht. Umgekehrt muss die Kodierung 12 dann wieder durch sämtliche Protokollschichten gehen, also von der Signalebene 15 über die Interaktions-Protokollschicht 14 bis hin zur Netzwerk-Protokollschicht 13. Korrespondierendes gilt jeweils für die Sende-Beeinflussungsschicht 8 wie auch die Empfangs-Beeinflussungsschicht 9. Wenn eine Beeinflussung jedoch nur auf der Netzwerk-Protokollschicht 13 erfolgen soll, muss die Dekodierung 10 nicht in den Protokollschichten 14 und 15 erfolgen, an die Dekodierung 10 der Netzwerk-Protokollschicht 13 schließt sich direkt die Beeinflussung 11 und die darauf folgende Kodierung 12 in der Netzwerk-Protokollschicht 13 an. In jeder der Protokollschichten liegt dann eine für die jeweilige Protokollschicht eigene Protokoll-Dateneinheit vor, die Gegenstand einer Beeinflussung 11 sein kann.
-
Anhand 6 ist der typische Aufbau eines einer zu beeinflussenden Buskommunikation zugrunde liegenden Protokollstapels dargestellt. In dem Beispiel ist die Software-Architektur an den modularen und offenen Aufbau gemäß dem AUTOSAR-Standard angelehnt. Die bushardwareunabhängige erste Kommunikationsschicht 2 umfasst dabei die Anwendungs-Protokollschicht 16, die Laufzeitumgebung (Run Time Environment) 17 und bushardwareunabhängige Kommunikationsdienste 18. Die bushardwareabhängige Kommunikationsschicht 3 umfasst hingegen eine Hardwareabstraktions-Protokollschicht 19 und eine Treiber-Protokollschicht 20. Innerhalb der zweiten Kommunikationsschicht 3 ist den Sub-Kommunikationsschichten 19 und 20 eine kombinierte Sende- und Empfangs-Beeinflussungsschicht 8, 9 vorgelagert. Die Sende- und Empfangs-Beeinflussungsschichten 8, 9 erfordern in keiner Weise eine Abänderung oder Instrumentierung der bushardwareunabhängigen ersten Kommunikationsschicht 2, so dass das dargestellte Verfahren zur Beeinflussung der Buskommunikation eines Steuergeräts es ermöglicht, bei der Simulation und dem Test der Steuergerätekommunikation den dem Steuergerät eigenen Kommunikations-Code einzusetzen, der in dem dargestellten Beispiel in der Protokollschicht 18 mit den Kommunikationsdiensten enthalten ist. Wie auch in den 1 bis 3 dargestellt, wird die bushardwareabhängige Businformation 7 von der bushardwareabhängigen zweiten Kommunikationsschicht 3 je nach Kommunikationsrichtung gesendet oder empfangen.
-
Das Ausführungsbeispiel gemäß 7 ist ähnlich dem Ausführungsbeispiel gemäß 6, mit dem Unterschied, dass neben der ersten Sende- und Empfangs-Beeinflussungsschicht 8, 9 nunmehr auch eine weitere, zweite Sende- und Empfangs-Beeinflussungsschicht 8, 9 vorgesehen ist, nämlich zwischen den Protokollschichten 19 und 20, wobei es sich bei der Protokollschicht 19 ebenfalls um eine Hardware-Abstraktionsschicht und bei der Protokollschicht 20 um eine Hardware-Treiberschicht handelt.
-
8 zeigt den Anwendungsfall, dass das Verfahren zur Beeinflussung der Buskommunikation eines Steuergeräts 1 auf einem Seriensteuergerät 1 durchgeführt wird, wobei das Serien-Steuergerät 1 über einen Bus 21 mit weiteren an dem Bus 21 angeschlossenen Steuergeräten und Peripheriegeräten verbunden ist, von denen nur ein weiteres Steuergerät 22 dargestellt ist. In dem Steuergerät 1 ist für die Realisierung der Buskommunikation eine erste bushardwareunabhängige Kommunikationsschicht und eine bushardwareabhängige zweite Kommunikationsschicht realisiert, wobei zur Beeinflussung der Buskommunikation darüber hinaus zwischen den beiden Kommunikationsschichten auch eine Sende- und Empfangs-Beeinflussungsschicht realisiert ist, die der gezielten Fehlereinstreuung und damit dem Test des Steuergeräts 1 und des gesamten Netzwerks dient.
-
9 zeigt den Anwendungsfall, dass das Verfahren zur Beeinflussung der Buskommunikation auf einem Seriensteuergerät 1 implementiert ist, wobei das Steuergerät 1 an einen Hardware-in-the-Loop-Simulator 23 angeschlossen ist, der über eine entsprechende Busschnittstelle verfügt und in dem im Rahmen einer Restbussimulation die weiteren Teilnehmer 24a, 24b des Busnetzwerkes simuliert werden. Ggf. sind zusätzlich zu dem Seriensteuergerät 1 und zu den durch den Hardware-in-the-Loop-Simulator 23 simulierten Steuergeräten weitere Seriensteuergeräte an den Bus angeschlossen, was hier im Einzelnen nicht dargestellt ist.
-
In einem weiteren – hier aber im Einzelnen nicht dargestellten Anwendungsfall – wird auch das Steuergerät, auf dem das Verfahren zur Beeinflussung der Buskommunikation implementiert ist, mit einer echtzeitfähigen Hardware simuliert, das Verfahren wird also auf einem virtuellen Steuergerät in Echtzeit betrieben. Wesentlich ist auch hier, dass obwohl in dem letztgenannten Anwendungsbeispiel keine Steuergeräte-Hardware vorhanden ist, trotzdem die bushardwareunabhängige erste Kommunikationsschicht so verwendet werden kann, wie sie später auf einem Serien-Steuergerät verwendet wird, insbesondere können so auch exakt die Kommunikationsdienste erprobt und getestet werden, die Bestandteil der bushardwareunabhängigen ersten Kommunikationsschicht sind.
-
In 10 ist schließlich der "offline"-Anwendungsfall dargestellt, bei dem das zuvor beschriebene Verfahren zur Beeinflussung der Buskommunikation auf einem nicht-echtzeitfähigen PC 25 betrieben wird. Auch hier ist das Steuergerät 1, auf dem das Verfahren durchgeführt wird, simuliert, genauso wie die Busverbindung 21 zu weiteren Teilnehmern der Kommunikation, von denen nur das virtuelle Steuergerät 24 dargestellt ist.