-
Die
Erfindung betrifft ein Verfahren zum Prüfen der Funktionsfähigkeit
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 überwachen.
-
Ein
eingebettetes System verrichtet – weitestgehend unsichtbar
für den
Benutzer – den
Dienst in einer Vielzahl von Anwendungsbereichen und Geräten, wie
z. B. in Waschmaschinen, Flugzeugen, Kraftfahrzeugen, Kühlschränken, 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 Funktionsstörungen
kommen. Solche Funktionsstörungen
können 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 Funktionsfähigkeit
zumindest einer eingebetteten Komponente in einem eingebetteten
System. Zur Prüfung
der Funktionsfähigkeit
einer eingebetteten Komponente in einem eingebetteten System werden
spezifische Abfragenachrichten simuliert, welche die im zu prüfenden System
eingebettete Komponente erwartet. Es werden darauf bestimmte vorgegebene Antworten
erzeugt und geprüft,
ob die vorgegebenen Antworten tatsächlich geliefert werden.
-
Die
US 2003/0172177 A1 offenbart
ein Testverfahren für
ein zu testendes Netzwerkgerät.
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 über ein
Callcenter mit einem automatisierten Testsystem durchgeführt.
-
Aufgabe
der vorliegenden Erfindung ist es, die Nachteile nach dem Stand
der Technik zu beseitigen. Es soll insbesondere ein Verfahren zum
Prüfen
der Funktionsfähigkeit
einer eingebetteten Komponente in einem mit einem CAN-Bus vernetzten,
komplexen eingebetteten System angegeben werden, welches einfach und
kostengünstig
durchführbar
ist. Nach einem weiteren Ziel der Erfindung soll das Verfahren schon
in einem frühen
Entwicklungsstadium eines eingebetteten Systems verlässliche
Informationen über
dessen Funktionsfähigkeit
liefern.
-
Diese
Aufgabe wird durch die Merkmale des Anspruchs 1 gelöst. Zweckmäßige Ausgestaltungen
ergeben sich aus den Merkmalen der Ansprüche 2 bis 19.
-
Nach
Maßgabe
der Erfindung ist ein Verfahren zum Prüfen 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 Nach richtenpaketsendeabschnitt 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
für die
eingebettete Komponente vorgesehenen ersten Nachrichtenpaketen und/oder
eine steuernde, regelnde oder überwachende
Funktion der eingebetteten Komponente mittels eines zweiten Simulationsprogrammabschnitts
simuliert wird, und
wobei die Funktionsfähigkeit der eingebetteten Komponente
durch einen Vergleich des Zeitverhaltens von damit erzeugten Signalen
gegenüber
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 über
einen CAN-Bus mit der ”eingebetteten
Komponente” verbunden
ist. Die ”eingebettete
Komponente” und
die über
einen CAN-Bus damit verbundene zumindest eine ”weitere eingebettete Komponente” bilden
das ”eingebettete System”.
-
Selbstverständlich ist
es nach dem Gegenstand der vorliegenden Erfindung möglich, nicht
nur die Funktionsfähigkeit
einer eingebetteten Komponente, sondern auch die Funktionsfähigkeit
einer Mehrzahl eingebetteter Komponenten zu prüfen.
-
Indem
sowohl die eingebettete Komponente als auch die weitere eingebettete
Komponente sowie die damit erzeugte Ausgabe ers ter und zweiter Nachrichtenpakete
auf dem CAN-Bus und/oder eine Verarbeitung von für die eingebettete Komponente
vorgesehenen ersten Nachrichtenpaketen und/oder die steuernde, regelnde
oder überwachende
Funktion der eingebetteten Komponente mittels eines Simulationsprogramms
simuliert wird, kann ohne großen
Aufwand frühzeitig
die Funktionsfähigkeit
eines eingebetteten Systems geprüft werden.
Sowohl die eingebettete Komponente als auch die weitere eingebettete
Komponente werden mittels des vorgeschlagenen Simulationsprogramms
simuliert. Es entfällt
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 ermöglicht.
-
Im
Sinne der vorliegenden Erfindung werden unter einem ”Nachrichtenpaket” Informationssequenzen verstanden,
die in ihrem Volumen den bei CAN möglichen 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 können auch
verzögert
auf den CAN-Bus ausgegeben werden, wenn dieser bereits belegt ist
und/oder sie eine niedrigere Priorität 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 ausgelöst werden können.
-
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
Nachrichtenpa kete, 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 kann der erste Simulationsprogrammabschnitt
zur Erzeugung der Abfolge der ersten Nachrichtenpakete einen periodischen
Nachrichtenpaketerzeugungsabschnitt, einen Ereignis gesteuerten Nachrichtenpaketerzeugungsabschnitt
und einen Anfrage-gesteuerten Nachrichtenpaketerzeugungsabschnitt
umfassen. 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än dig 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-Anfragesystems 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 29 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.
-
- 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