-
Die Erfindung betrifft ein Verfahren zum Prüfen der Funktionsfahigkeit einer eingebetteten Komponente in einem eingebetteten System.
-
Bei einem eingebetteten System handelt es sich um einen elektronischen Rechner oder Computer, der in einem technischen Kontext eingebunden bzw. eingebettet ist. Dabei hat der elektronische Rechner die Aufgabe, das System, in welches er eingebettet ist, zu steuern, zu regeln oder zu uberwachen.
-
Ein eingebettetes System verrichtet – weitestgehend unsichtbar fur den Benutzer – den Dienst in einer Vielzahl von Anwendungsbereichen und Geraten, wie z. B. in Waschmaschinen, Flugzeugen, Kraftfahrzeugen, Kuhlschranken, Fernsehern, DVD-Playern, Mobiltelefonen u. dgl. Eine Vernetzung einer Vielzahl von ansonsten autonomen, eingebetteten Systemen wird auch als komplexes eingebettetes System bezeichnet.
-
Die elektronischen Rechner bzw. die eingebetteten Komponenten eines komplexen eingebetteten Systems sind in der Regel zum Datenaustausch mit einem Bus verbunden. Üblicherweise handelt es sich bei einer Komponente um eine gemischte Hardware/Software-Implementierung, welche eine vorgegebene Spezifikation erfüllt.
-
Auch wenn die einzelnen Komponenten eines komplexen eingebetteten Systems für sich genommen, die vorgegebenen Spezifikationen erfüllen, kann es bei ihrem Zusammenwirken dennoch zu Funktionsstorungen kommen. Solche Funktionsstörungen konnen durch eine Nichteinhaltung von Reaktions- oder Antwortzeiten auf bestimmte Ereignisse, durch Aus- oder Überlastung von Prozessoren oder Bussen, durch Nachrichtenverlust und dgl. hervorgerufen werden.
-
Nach dem Stand der Technik ist der so genannte CAN-Bus (Controller Area Network) bekannt. Es handelt sich dabei um einen asynchronen, seriellen und nichtdeterministischen Feldbus, der nach dem CSMA/CR(Carrier Sense Multiple Access/Collision Resolution)-Verfahren arbeitet. Nachrichtenlaufzeiten, Nachrichtenverluste und dgl. sind hier einer Varianz unterworfen, welche zu den vorerwähnten Funktionsstörungen führen kann. Zur Behebung solcher Funktionsstörungen ist es mitunter erforderlich, Hardware/Software-Implementierungen, lokale/globale Systemarchitekturen oder Busvarianten zu ändern. Das ist kosten- und zeitaufwändig.
-
Die
US 2007/0192076 A1 offenbart ein Verfahren zum Prüfen der Funktionsfahigkeit zumindest einer eingebetteten Komponente in einem eingebetteten System. Zur Prufung der Funktionsfahigkeit einer eingebetteten Komponente in einem eingebetteten System werden spezifische Abfragenachrichten simuliert, welche die im zu prufenden System eingebettete Komponente erwartet. Es werden darauf bestimmte vorgegebene Antworten erzeugt und gepruft, ob die vorgegebenen Antworten tatsachlich geliefert werden.
-
Die
US 2003/0172177 A1 offenbart ein Testverfahren für ein zu testendes Netzwerkgerat. Dabei wird durch ein Software-basiertes Testmodul Netzwerkverkehr simuliert und an das zu testende Gerät gesendet.
-
Die
US 7,194,372 B2 offenbart ein Prüfverfahren für ein eingebettetes Modul in einem Fahrzeug. Dabei wird ein Test uber ein Callcenter mit einem automatisierten Testsystem durchgefuhrt.
-
Aufgabe der vorliegenden Erfindung ist es, die Nachteile nach dem Stand der Technik zu beseitigen. Es soll insbesondere ein Verfahren zum Prufen der Funktionsfahigkeit einer eingebetteten Komponente in einem mit einem CAN-Bus vernetzten, komplexen eingebetteten System angegeben werden, welches einfach und kostengunstig durchführbar ist. Nach einem weiteren Ziel der Erfindung soll das Verfahren schon in einem fruhen Entwicklungsstadium eines eingebetteten Systems verlassliche Informationen uber dessen Funktionsfahigkeit liefern.
-
Diese Aufgabe wird durch die Merkmale des Anspruchs 1 gelöst. Zweckmaßige Ausgestaltungen ergeben sich aus den Merkmalen der Ansprüche 2 bis 18.
-
Nach Maßgabe der Erfindung ist ein Verfahren zum Prufen der Funktionsfähigkeit zumindest einer eingebetteten Komponente in einem eingebetteten System vorgesehen, bei dem die eingebettete Komponente und zumindest eine weitere eingebettete Komponente zum Datenaustausch über einen CAN-Bus verbunden sind,
wobei die zumindest eine weitere eingebettete Komponente und eine damit erzeugte Ausgabe erster Nachrichtenpakete auf den CAN-Bus mittels eines ersten Simulationsprogrammabschnitts simuliert wird, wobei der erste Simulationsprogrammabschnitt einen Nachrichtenpaketerzeugungsabschnitt zur Erzeugung einer Abfolge von mit einer vorgegebenen Priorisierung versehenen ersten Nachrichtenpaketen und einen damit verbundenen Nachrichtenpaketsendeabschnitt zur Ausgabe der ersten Nachrichtenpakete auf den CAN-Bus umfasst,
wobei die eingebettete Komponente, eine damit erzeugte Ausgabe zweiter Nachrichtenpakete auf den CAN-Bus und/oder eine Verarbeitung von fur die eingebettete Komponente vorgesehenen ersten Nachrichtenpaketen und/oder eine steuernde, regelnde oder uberwachende Funktion der eingebetteten Komponente mittels eines zweiten Simulationsprogrammabschnitts simuliert wird, und
wobei die Funktionsfahigkeit der eingebetteten Komponente durch einen Vergleich des Zeitverhaltens von damit erzeugten Signalen gegenuber einem vorgegebenen Zeitverhalten ermittelt wird.
-
Im Sinne der vorliegenden Erfindung wird unter dem Begriff ”eingebettete Komponente” eine zu testende Hardware/Software-Implementierung verstanden. Unter dem Begriff ”weitere eingebettete Komponente” wird eine weitere Hardware/Software-Implementierung verstanden, welche zum Datenaustausch uber einen CAN-Bus mit der ”eingebetteten Komponente” verbunden ist. Die ”eingebettete Komponente” und die uber einen CAN-Bus damit verbundene zumindest eine ”weitere eingebettete Komponente” bilden das ”eingebettete System”.
-
Selbstverständlich ist es nach dem Gegenstand der vorliegenden Erfindung moglich, nicht nur die Funktionsfähigkeit einer eingebetteten Komponente, sondern auch die Funktionsfahigkeit einer Mehrzahl eingebetteter Komponenten zu prüfen.
-
Indem sowohl die eingebettete Komponente als auch die weitere eingebettete Komponente sowie die damit erzeugte Ausgabe erster und zweiter Nachrichtenpakete auf dem CAN-Bus und/oder eine Verarbeitung von fur die eingebettete Komponente vorgesehenen ersten Nachrichtenpaketen und/oder die steuernde, regelnde oder uberwachende Funktion der eingebetteten Komponente mittels eines Simulationsprogramms simuliert wird, kann ohne großen Aufwand fruhzeitig die Funktionsfahigkeit eines eingebetteten Systems geprüft werden. Sowohl die eingebettete Komponente als auch die weitere eingebettete Komponente werden mittels des vorgeschlagenen Simulationsprogramms simuliert. Es entfallt die Notwendigkeit der Bereitstellung entsprechender Hardware/Software-Implementierungen.
-
Unter dem Begriff ”CAN-Bus” wird im Sinne der vorliegenden Erfindung der in ISO 11898 standardisierte Kommunikationsweg verstanden, der eine asynchrone, serielle und nichtdeterministische nach dem CSMA/CR-Verfahren arbeitende Übertragung von Nachrichtenpaketen ermoglicht.
-
Im Sinne der vorliegenden Erfindung werden unter einem ”Nachrichtenpaket” Informationssequenzen verstanden, die in ihrem Volumen den bei CAN moglichen realen Nachrichtenpaketen mit 0 bis 8 Datenbytes sowie Header- und Trailerbits entsprechen, und die weiterhin in exakt demselben zeitlichen Verhalten wie in einem realen eingebetteten System erzeugt und auf den CAN-Bus ausgegeben werden. Die Nachrichtenpakete im Sinne der vorliegenden Erfindung konnen auch verzogert auf den CAN-Bus ausgegeben werden, wenn dieser bereits belegt ist und/oder sie eine niedrigere Prioritat als andere zu sendende Nachrichtenpakete aufweisen und/oder wenn die die Nachrichtenpakete erzeugende und verarbeitende Software selbst Verzögerungen verursacht. Ferner können Nachrichtenpakete im Sinne der vorliegenden Erfindung reelle Dateninhalte transportieren, welche mit der zu testenden eingebetteten Komponente verarbeitet und infolge dessen Funktionen ausgelost werden konnen.
-
Als besonders vorteilhaft wird es angesehen, dass der CAN-Bus ein durch das Simulationsprogramm erzeugter virtueller CAN-Bus ist. In diesem Fall wird mit dem vorgeschlagenen Verfahren also das eingebettete System insgesamt durch das Simulationsprogramm simuliert. Das Vorsehen eines physischen CAN-Busses ist nicht erforderlich.
-
Die mit dem vorgeschlagenen Verfahren erzeugten ”Nachrichtenpakete” entsprechen zweckmäßigerweise den Nachrichtenpaketen, wie sie im späteren implementierten eingebetteten System verwendet werden.
-
Nach einer weiteren vorteilhaften Ausgestaltung kann der Nachrichtenpaketerzeugungsabschnitt unter Verwendung einer Kommunikationsdatenbank parametrisiert werden. Eine solche Kommunikationsdatenbank kann beispielsweise eine oder mehrere herkömmliche DBC-Dateien und/oder eine oder mehrere standardisierte Fibex-XML-Dokumente umfassen. Sie kann ferner Informationen über die auf den CAN-Bus ausgegebenen Nachrichtenpakete, wie Ursprung, Empfängerliste, Typ, enthaltene Nutzdaten, Sendemodi, Zyklenzeiten, Entprellzeiten und dgl., enthalten.
-
Nach einer weiteren vorteilhaften Ausgestaltung wird mit dem Nachrichtenpaketerzeugungsabschnitt jedem der ersten Nachrichtenpakete ein vorgegebener Zeitstempel zugeordnet. Bei einem ”Zeitstempel” handelt es sich um eine Zeitinformation welche angibt, ab wann genau versucht werden soll das betreffende erste Nachrichtenpaket auf den CAN-Bus auszugeben.
-
Um eine besonders realitätsnahe Simulation zu gewährleisten ist nach einer weiteren Ausgestaltung vorgesehen, dass der weiteren Komponente eine lokale Uhr zugeordnet ist. Unter einer ”lokalen Uhr” wird eine absolute Zeitbasis verstanden, auf deren Grundlage ein der weiteren eingebetteten Komponente zugeordneter Taktgeber arbeitet. Eine solche lokale Uhr kann ebenfalls mit einem Programm simuliert werden. Es wird beispielhaft verwiesen auf den Offenbarungsgehalt der
DE 100 57 651 C2 , welche hiermit einbezogen wird.
-
Mit dem Nachrichtenpaketerzeugungsabschnitt ist es auch möglich mehrere weitere eingebettete Komponenten zu simulieren. In diesem Fall kann mit dem Nachrichtenpaketerzeugungsabschnitt jedem der ersten Nachrichtenpakete eine die weitere eingebettete Komponente identifizierende Information zugeordnet werden. In diesem Fall kann jeder weiteren Komponente wiederum eine besondere lokale Uhr zugeordnet sein.
-
Zur Abbildung der in der Realität vorkommenden Kommunikationsmodi umfasst der erste Simulationsprogrammabschnitt zur Erzeugung der Abfolge der ersten Nachrichtenpakete einen periodischen Nachrichtenpaketerzeugungsabschnitt, einen Ereignis-gesteuerten Nachrichtenpaketerzeugungsabschnitt und einen Anfrage-gesteuerten Nachrichtenpaketerzeugungsabschnitt. Mit ihnen können besonders realitätsnahe Zeitstempel erzeugt werden.
-
Durch den periodischen Nachrichtenpaketerzeugungsabschnitt erzeugte periodische Zeitstempel können durch eine Zyklendauer, einen Startversatz und dgl. definiert werden. Durch den Ereignis-gesteuerten Nachrichtenpaketerzeugungsabschnitt erzeugte Ereignis-gesteuerte Zeitstempel können durch den Zeitstempel des Ereignisses, Entprellzeiten und dgl. bestimmt werden. Zeitstempel der Ereignisse können dem Nachrichtenpaketerzeugungsabschnitt als Nachrichtenspur, nach einer stochastischen Verteilungsfunktion oder mit einem eigenen sie erzeugenden Simulationsprogramm zur Verfügung gestellt werden. Durch den Anfrage-gesteuerten Nachrichtenpaketerzeugungsabschnitt erzeugte Anfragenachrichtenzeitstempel sind durch den Zeitstempel der Anfragenachrichten definiert. Diese ergeben sich direkt durch den CAN-Busverkehr.
-
Des Weiteren kann der Nachrichtenpaketerzeugungsabschnitt einen Scheduler umfassen, mit dem die ersten Nachrichtenpakete entsprechend ihrer Zeitstempel und/oder gemäß einer Priorisierung an den Nachrichtenpaketsendeabschnitt übergeben werden. Bei der ”Priorisierung” handelt es sich um eine Information, welche gemäß einer vorgegebenen Regel in Abhängigkeit eines Typs und/oder eines aktuellen Zustands des CAN-Busses erzeugt wird. Es kann sich ebenfalls um Verhalten eines Nachrichten erzeugenden und verarbeitenden Kommunikations-Softwarestapel handeln. Der Kommunikations-Softwarestapel umfasst den Teil einer Software einer eingebetteten Komponente, der für die Erzeugung, Priorisierung und Übertragung von ersten Nachrichtenpaketen bis in den Hardware-Bus-Controller zuständig ist. Es können somit besonders realitätsnahe Sendezeitpunkte erzeugt werden.
-
Nach einer weiteren besonders vorteilhaften Ausgestaltung wird mit dem Nachrichtenpaketsendeabschnitt zur Simulation von CAN-Busstörungen die Ausgabe der ersten Nachrichtenpakete auf den CAN-Bus inhaltlich verfälscht oder zeitlich verzögert. Damit wird weiter die Realitätsnähe des vorgeschlagenen Simulationsprogramms erhöht.
-
Die Ausgabe der zweiten Nachrichtenpakete auf den CAN-Bus kann genau wie die steuernde, regelnde oder überwachende Funktion der eingebetteten Komponente durch einen im zweiten Simulationsprogrammabschnitt vorgesehenen Ereignis-basierten Simulator veranlasst werden. Derartige Ereignis-basierte Simulatoren sind nach dem Stand der Technik allgemein bekannt. Es wird dazu beispielhaft verwiesen auf die für diesen Zweck definierten Simulationssprachen SystemC und VHDL.
-
Bei den von der eingebetteten Komponente erzeugten Signalen kann es sich um auf den CAN-Bus ausgegebene zweite Nachrichtenpakete handeln. Es kann sich bei den Signalen aber auch um Funktionen handeln, welche durch die Verarbeitung von für die eingebettete Komponente vorgesehenen ersten Nachrichtenpaketen ausgelöst werden. Bei den Signalen kann es sich ebenfalls um die steuernden, regelnden oder überwachenden Funktionen der eingebetteten Komponente handeln, welche indirekt vom zeitlichen Ablauf der Kommunikation auf den CAN-Bus beeinflusst werden. Bei ”für die eingebettete Komponente vorgesehenen ersten Nachrichtenpaketen” handelt es sich um eine Teilmenge der ersten und der, von anderen eingebetteten Komponente gesendeten, zweiten Nachrichtenpakete, deren Vorkommen oder Dateninhalt für die eingebettete Komponente relevant sind. – Die Verarbeitung solcher an die eingebettete Komponente adressierter erster Nachrichtenpakete löst Funktionen aus. Das durch Sequenz und Zeitpunkte definierte Zeitverhalten der verschiedenen erzeugten Signale dient der Prüfung der Funktionsfähigkeit der eingebetteten Komponente. Dazu wird das jeweils beobachtete Zeitverhalten mit einem vorgegebenen Zeitverhalten, z. B. einem spezifizierten Zeitverhalten, verglichen.
-
Des Weiteren wird es als vorteilhaft angesehen, dass zur Ermittlung des Zeitverhaltens der über die CAN-Busse übertragenen Nachrichtenpakete und/oder des Zeitverhaltens von mit der eingebetteten Komponente ausgeführten Funktionen eine Protokolldatei erzeugt wird. Ferner kann die Funktionsfähigkeit der eingebetteten Komponente auch durch eine geeignete Grafik an einem Bildschirm dargestellt werden.
-
Als weitere Maßgabe der Erfindung ist ein Datenträger mit einem Simulationsprogramm zur Durchführung des erfindungsgemäßen Verfahrens vorgesehen. Bei dem Datenträger kann es sich um einen optischen oder magnetischen Datenträger handeln. Der Datenträger kann Bestandteil eines Computers sein.
-
Nachfolgend werden Ausführungsbeispiele anhand der Zeichnungen näher erläutert. Es zeigen:
-
1 Schematisch die Architektur eines erfindungsgemäßen Simulationsprogramms,
-
2 schematisch den Aufbau einer OBD-Anfraesystems in einem Kraftfahrzeug und
-
3 eine Architektur eines Simulationsprogramms für das in 2 gezeigte Beispiel.
-
Mit dem Bezugszeichen 1 ist ein virtueller CAN-Bus bezeichnet, der eine oder mehrere zu testende eingebettete Komponenten 2 zum Nachrichtenaustausch mit zumindest einer weiteren eingebetteten Komponente 3 verbindet. Die weitere eingebettete Komponente 3 wird mit einem ersten Simulationsprogrammabschnitt 4, die eingebettete Komponente 2 mit einem zweiten Simulationsprogrammabschnitt 5 und der virtuelle CAN-Bus 1 mit einem dritten Simulationsprogrammabschnitt 6 eines Simulationsprogramms simuliert.
-
Der erste Simulationsprogrammabschnitt 4 umfasst eine Teilkommunikationsdatenbank 7 mit Sollvorgabentabellen für periodische erste Nachrichtenpakete 8, Ereignis-gesteuerte erste Nachrichtenpakete 9 und Anfrage-gesteuerte erste Nachrichtenpakete 10. Die Sollvorgabentabelle für periodische erste Nachrichtenpakete 8, eine lokale Uhr 11 und ein Zählersatz 12 sind u. a. einem periodischen Nachrichtenpaketerzeugungsabschnitt 13 zugeordnet. Die Sollvorgabentabelle für Ereignis-gesteuerte erste Nachrichtenpakete 9, die lokale Uhr 11, der Zählersatz 12, eine stochastische Verteilungsfunktion 14, eine Nachrichtenspur 15 und ein Ereignis-Simulationsteilprogramm 16 sind einem Ereignis-gesteuerten Nachrichtenpaketerzeugungsabschnitt 17 zugeordnet. Die Sollvorgabentabelle für Anfrage-gesteuerte erste Nachrichtenpakete 10, die lokale Uhr 11, der Zählersatz 12 und ein CAN-Bus-Nachrichtenpaketfilter 18 sind einem Anfrage-gesteuerten Nachrichtenpaketerzeugungsabschnitt 19 zugeordnet. Die drei Nachrichtenpaketerzeugungsabschnitte 13, 17, 19 sind über einen Einfügealgorithmus 20 mit einem Nachrichtenpaketspeicher 21 verbunden, der wiederum über einen Scheduler 22 mit einem Nachrichtenpaketsendeabschnitt 23 verbunden ist.
-
Der zweite Simulationsprogrammabschnitt 5 umfasst für jede zu testende eingebettete Komponente 2 jeweils einen Ereignis-basierten Simulator 24 in Kombination mit einem weiteren Nachrichtenpaketsendeabschnitt 25, mit welchem zweite Nachrichtenpakete auf den virtuellen CAN-Bus 1 ausgegeben werden.
-
Die Funktion des ersten Simulationsprogrammabschnitts 4 ist folgende:
Jede simulierte weitere eingebettete Komponente 3 gibt, unter Berücksichtigung des weiteren CAN-Busverkehrs, eine zeitlich besonders realitätsnahe Abfolge von ersten Nachrichtenpaketen über den Nachrichtenpaketsendeabschnitt 23 auf den virtuellen CAN-Bus 1 aus.
-
In den Sollvorgabentabellen 8, 9 und 10 sind jeweils insbesondere Nachrichtenpaket-Identifier und Nachrichtenpakettyp enthalten. Die Sollvorgabentabellen für periodische erste Nachrichtenpakete 8 enthält u. a. zusätzliche Angaben über eine Periode und einen Startversatz, die Tabelle für Ereignis-gesteuerte Nachrichtenpakete 9 enthält u. a. zusätzlich eine Entprellzeit und die Tabelle für Anfrage-gesteuerte Nachrichtenpakete 10 enthält u. a. zusätzlich einen Anfragenachrichtenpaket-Identifier, einen Anfragenachrichtenpakettyp, eine Antwortzeit und eine Entprellzeit.
- • Nachrichtenpaket-Identifier, ist eine Nummer mit 11 oder 2 Bit, die sowohl die Bedeutung des Nachrichtenpakets und ihres Inhalts kodiert als auch der Priorisierung der Ausgabe auf dem CAN-Bus dient;
- • CAN-Nachrichtenpakettypen,
beschreibt, ob für die Nachrichtenpakete Standard- oder Extended-Identifier mit oder ohne Remote-Request-Markierung verwendet werden;
- • Periode,
gibt an, in welcher Zeitspanne periodische Nachrichtenpakete wiederholt werden sollen;
- • Startversatz,
definiert, nach welchem Zeitraum nach Systemstart damit begonnen werden soll, periodische Nachrichtenpakete zu senden;
- • Entprellzeiten,
legen minimal einzuhaltende Abstände fest, die zwischen zwei Erzeugungen der gleichen Nachrichtenpakets vergehen muss;
- • Anfragenachricht-Identifier und -Typ,
beschreiben, auf welche der auf dem virtuellen CAN-Bus 1 gesendeten Nachrichtenpakete geantwortet werden soll. Der Anfragenachricht-Identifier entspricht im Normalfall dem Nachrichtenpaket-Identifier, wobei im Anfragetyp die Remote-Request-Markierung gesetzt ist;
- • Antwortzeit,
gibt an, wie lange nach Eingang des Anfragenachrichtenpakets die Antwort erzeugt werden soll.
-
Der periodische Nachrichtenpaketerzeugungsabschnitt 13 ist zur Erzeugung der Sendewünsche der in der Sollvorgabentabelle 8 gespeicherten periodischen erste Nachrichtenpakete, der Ereignis-gesteuerte Nachrichtenpaketerzeugungsabschnitt 17 für die der in der Sollvorgabentabelle 9 gespeicherten Ereignis-gesteuerten erste Nachrichtenpakete und der Anfrage-gesteuerte Nachrichtenpaketerzeugungsabschnitt 10 für die der in der Sollvorgabentabelle 10 gespeicherten Abfrage-gesteuerten erste Nachrichtenpakete zuständig.
-
Gemeinsam ist ihnen die Verwendung der lokalen Uhr
11, welche der im Allgemeinen in jeder weiteren eingebetteten Komponente enthaltenen Hardware-Uhr entspricht. Zur Verbesserung der Zeitgenauigkeit der Simulation können alle verwendeten Zeiten und insbesondere die durch die Nachrichtenpaketerzeugungsabschnitte
13,
17 und
19 erzeugten Sendewunschzeitstempel auf eine systemglobale Zeitbasis transponiert werden. Dazu kann ein Verfahren benutzt werden, wie es z. B. in der
DE 100 57 651 C2 beschrieben ist. Ein eventueller Jitter, der auf die lokale Uhr
11 wirkt, kann zusätzlich Effekte simulieren, wie sie beispielsweise durch Verdrängung von Prozessen in den weiteren Komponenten bedingt werden können.
-
Des Weiteren arbeiten alle drei Nachrichtenpaketerzeugungsabschnitte 13, 17, 19 mit einem gemeinsamen Zählersatz 12, in dem u. a. für jedes erste Nachrichtenpaket der letzte Sendewunschzeitstempel zur Einhaltung eventueller Entprellzeiten gehalten wird.
-
Für die Erzeugung der periodischen ersten Nachrichtenpakete der weiteren eingebetteten Komponente verwendet der periodische CAN-Nachrichtenpaketerzeugungsabschnitt 13 neben dem Beschriebenen mindestens eine Periode und einen Startversatz.
-
Die Erzeugung der Ereignis-gesteuerten ersten Nachrichtenpakete ist unter Verwendung von lokaler Uhr 11, Zählersatz 12, Entprellzeit und dgl. auf verschiedene Weisen möglich:
- • Stochastisch nach der stochastischen Verteilungsfunktion 14, welche für eine oder mehrere Nachrichten und beliebig oft vorliegen kann;
- • Durch die Nachrichtenspur 15,
welche sowohl eine als auch mehrere Nachrichtenpakete betreffen kann und bspw. als eine Folge von Tupeln aus Nachrichtenpaket-Identifier und Zeitstempel oder Nachrichtenpaket-Identifier und Zwischensendezeit beliebig oft vorliegen kann;
- • Simulativ durch das Ereignis-Simulationsteilprogramm 16,
welches als nach dem Stand der Technik allgemein bekannter, Ereignis-basierter Simulator beliebig oft vorliegen kann.
-
Der CAN-Bus-Nachrichtenpaketfilter 18 steuert unter Verwendung von lokaler Uhr 11, Zählersatz 12, Antwortzeit, Entprellzeit und dgl. die Erzeugung der Anfrage-gesteuerte Nachrichtenpakete. Hierbei wird eine Antwort ausgelöst, wenn eine entsprechende Anfrage über den CAN-Bus übertragen wurde.
-
Die Erzeugung selbst umfasst das Versehen jedes ersten Nachrichtenpakets mit einem Sendewunschzeitstempel und einem Dateninhalt. Die enthaltenen Daten können entweder leere Hülle oder vorzugsweise mit Originalinhalt gefüllt sein, etwa folgendermaßen:
Nachrichten-Identifier | Datum 1 | Datum 2 | ... |
- – Nachrichten-Identifier,
welcher die zu sendende Nachricht eindeutig identifiziert;
- – Datum 1 bis n,
welche die aktuelle Belegung mit Daten, die in Nachrichtenpakete verpackt werden sollen, anzeigen. Statt diese Liste sequenziell zu übertragen, kann den einzelnen Daten auch jeweils ein Gültigkeitsintervall zugeordnet werden.
-
Die von den CAN-Nachrichtenpaketerzeugungsabschnitten 13, 17 und 19 erzeugten ersten Nachrichtenpakete werden mittels des Einfügealgorithmus 20, der ein entsprechendes Verhalten eines Kommunikations-Software-Stapels simulieren kann, in eine Abfolge gebracht und im eventuell in seiner Größe beschränkten Nachrichtenpaket-Speicher 21 gespeichert, wobei auch, in Abhängigkeit von dessen Füllzustand, einzufügende erste Nachrichtenpakete verworfen oder bereits gespeicherte überschrieben werden können.
-
Der Scheduler 22 entnimmt der mittels der Zeitstempel chronologisch sortierten Abfolge der ersten Nachrichtenpakete den jeweils zeitlich nächsten Zeitstempel und setzt damit seine Aufweckzeit im System. Danach begibt er sich in eine inaktiven Wartezustand. Sobald eine weiteres erstes Nachrichtenpaket eingefügt wird, die Aufweckzeit erreicht wird oder der Nachrichtensendeabschnitt 23 erfolgreich ein erstes Nachrichtenpaket übertragen hat, wählt der Scheduler 22 gemäß den Eigenschaften des virtuellen CAN-Busses 1 und/oder des Verhaltens eines Kommunikations-Software-Stapels das nächste zu sendende erste Nachrichtenpaket aus und übergibt es an den Nachrichtenpaketsendeabschnitt 23, sofern dieser nicht bereits belegt ist.
-
Der Nachrichtenpaketsendeabschnitt 23 konkurriert mit den anderen Nachrichtenpaketsendeabschnitten 23 und den weiteren Nachrichtenpaketsendeabschnitten 25 um die Ausgabe der zu sendenden Nachrichtenpakete auf den virtuellen CAN-Bus 1. CAN-üblich dienen hierbei die Nachrichten-Identifier und Typen der Priorisierung untereinander. Ist der virtuelle CAN-Bus 1 bei Empfang des ersten Nachrichtenpakets vom Scheduler 22 durch eine gerade laufende Übertragung bereits belegt oder hat das erste Nachrichtenpaket nicht die CAN-spezifisch höchste Priorität, so setzt der Nachrichtenpaketsendeabschnitt 23 seine Aufweckzeit auf das Ende der gerade laufenden bzw. begonnenen Übertragung.
-
2 zeigt schematisch den Aufbau eines OBD-Systems (On-Board-Diagnosis System) in einem Kraftfahrzeug. Eine eingebettete Komponente ”Tester” 26 kommuniziert über einen physischen CAN-Bus 27 mit einer eingebetteten Komponente ”Motorsteuerung” 28. Es stellt zu Diagnosezwecken bestimmte Anfragen und erwartet darauf bestimmte Antworten. Nebenher kommunizieren weitere eingebettete Komponenten 29, wie bspw. Getriebesteuerung, Zugangskontrollsystem oder dgl., untereinander und/oder mit den eingebetteten Komponenten 26 und 28 ebenfalls über den CAN-Bus 27, welche aber nicht zu testen sind.
-
Hinsichtlich der zu testenden eingebetteten Komponenten ”Tester” 26 und ”Motorsteuerung” 28 könnte im vorliegenden Beispiel die Spezifikation verlangen, dass die Gesamtdauer Anfrage-Antwort eine bestimmte Grenze nicht überschreitet. Zusätzlich könnte es aufschlussreich sein, zu wissen, wie diese Antwortzeitdauern verteilt sind.
-
Infolgedessen sind, neben den internen Prozessen der eingebetteten Komponenten 26 und 28 selbst, auf dem CAN-Bus 1 die folgenden Nachrichten zu simulieren.
- – Die Anfragenachrichten der eingebetteten Komponente ”Tester” 26 an ”Motorsteuerung” 28, welche als Dateninhalte Parameter für den genauen Typ der interessierenden Daten enthalten;
- – Die Antwortnachrichten der eingebetteten Komponente ”Motorsteuerung” 28 an ”Tester” 26, welche als Dateninhalt die verlangten Informationen enthalten;
- – Nachrichten der weiteren eingebetteten Komponenten 29, welche die internen Prozesse der eingebetteten Komponente ”Motorsteuerung” 28 beeinflussen;
- – Sonstige Nachrichten der untereinander kommunizierenden weiteren eingebetteten Komponenten 3.
-
3 zeigt schematisch eine mögliche Architektur eines Simulationsprogramms für das in 2 gezeigte Beispiel. Der erste Simulationsprogrammabschnitt 4 simuliert die Funktionen der in 2 mit einer unterbrochenen Linie umgebenen weiteren eingebetteten Komponenten. Die damit erzeugten ersten Nachrichtenpakete werden über die Nachrichtenpaketsendeabschnitte 23 auf den virtuellen CAN-Bus 1 ausgegeben. Mit dem zweiten Simulationsprogrammabschnitt 5 werden die in 2 gezeigten eingebetteten Komponenten ”Tester” 26 und ”Motorsteuerung” 28 simuliert. Es werden damit zweite Nachrichtenpakete entsprechend der jeweiligen Anfrage und Antwort erzeugt.
-
Zur Prüfung der Funktionsfähigkeit des simulierten Systems wird das Zeitverhalten der erzeugten zweiten Nachrichtenpakete durch einen Vergleich mit einem spezifizierten Zeitverhalten geprüft und ausgewertet. Das spezifizierte Zeitverhalten wird vorteilhafterweise nach dem Stand der Technik auf der Basis von zeitbehafteten Ereignissen beschrieben. Zur Auswertung werden die Zeitstempel der Ereignisse zueinander in Beziehung gesetzt und mit den spezifizierten Zeitschranken verglichen.
-
Bezugszeichenliste
-
- 1
- CAN-Bus
- 2
- eingebettete Komponente
- 3
- weitere eingebettete Komponente
- 4
- erster Simulationsprogrammabschnitt
- 5
- zweiter Simulationsprogrammabschnitt
- 6
- dritter Simulationsprogrammabschnitt
- 7
- Teilkommunikationsdatenbank
- 8
- Sollvorgabentabelle für periodische erste Nachrichtenpakete
- 9
- Sollvorgabentabelle für Ereignis-gesteuerte erste Nachrichtenpakete
- 10
- Sollvorgabentabellen für Anfrage-gesteuerte erste Nachrichtenpakete
- 11
- lokale Uhr
- 12
- Zählersatz
- 13
- periodischer Nachrichtenpaketerzeugungsabschnitt
- 14
- stochastische Verteilungsfunktion
- 15
- Nachrichtenspur
- 16
- Ereignis-Simulationsteilprogramm
- 17
- Ereignis-gesteuerter Nachrichtenpaketerzeugungsabschnitt
- 18
- CAN-Bus-Nachrichtenpaketfilter
- 19
- Anfrage-gesteuerter Nachrichtenpaketerzeugungsabschnitt
- 20
- Einfügealgorithmus
- 21
- Nachrichtenpaketspeicher
- 22
- Scheduler
- 23
- Nachrichtenpaketsendeabschnitt
- 24
- Ereignis-basierter Simulator
- 25
- weiterer Nachrichtenpaketsendeabschnitt
- 26
- Tester
- 27
- physischer CAN-Bus
- 28
- Motorsteuerung