Beschreibung
Verfahren und Schaltungsanordnung zum Testen von Funktionen und/oder Algorithmen, die in elektronischen Schaltungen implementiert sind
Die Erfindung betrifft ein Verfahren zum Testen von Funktionen und/oder von Algorithmen, die in elektronischen Schaltungen, insbesondere in digitalen Schaltungen implementiert sind. Die Erfindung betrifft weiterhin eine Schaltungsanordnung zum Testen von Funktionen und/oder von Algorithmen, die in elektronischen Schaltungen, insbesondere in digitalen Schaltungen implementiert sind.
Beim Testen von Mikroprozessorschaltungen wird die Konsistenz der implementierten Algorithmen zur Laufzeit üblicherweise durch Berechnung einer Prüfsumme überprüft, die auf den jeweiligen Programmcode und die jeweiligen Programmkonstanten abgestimmt ist. Weicht der ert der errechneten Prüfsumme von einem vorgegebenen Sollwert ab, liegt wahrscheinlich ein Fehler vor; die Konsistenz des Programms und der Algorithmen ist nicht mehr gegeben.
Bei digitalen Schaltungen ist die Prüfung der darin imple- mentierten Algorithmen auf die beschriebene Weise nicht möglich, da aufgrund eines" üblicherweise fehlenden Programmspeichers keine Prüfsumme gebildet werden kann.
Es ist Aufgabe der vorliegenden Erfindung, ein Verfahren sowie eine Schaltungsanordnung zum Testen von elektronischen Schaltungen, insbesondere von DigitalSchaltungen zur Verfügung zu stellen, die mit relativ einfachen Mitteln eine schnelle und zuverlässige Fehlererkennung ermöglichen.
Diese Aufgabe wird durch ein Verfahren mit den Merkmalen des Patentanspruchs 1 bzw. durch eine Schaltungsanordnung
mit den Merkmalen des Anspruchs 5 gelöst. Weiterbildungen der Erfindung sind Gegenstand der jeweiligen abhängigen Ansprüche .
Das erfindungsgemäße Verfahren mit den Merkmalen des Anspruchs 1 sieht vor, dass eine zu testende Schaltung mit vorgebbaren Eingangs Signalen beaufschlagt wird und dass die von der Schaltung gelieferten Ausgangssignale mit vorgegebenen Sollwerten verglichen werden. Die zu testende Schal- tung weist dabei eine gegenüber einem normalen Betriebsmodus weitestgehend unveränderte Gatterverschaltung auf. Bei einer Abweichung der Ausgangs Signale von einem Sollwert wird ein Fehler erkannt . Bei Erkennung eines Fehlers wird die Schaltung in einen stabilen Zustand versetzt bzw. ge- bracht. Der stabile Zustand kann bspw. dadurch erreicht werden, dass Leistungstreiber der Schaltung in einen für das System sicheren Zustand gebracht werden. Wahlweise kann nach Erkennen eines Fehlers ein Neustart des Systems bzw. der Schaltung ausgelöst werden. Bei manchen Anwendungen kann die sinnvollste Möglichkeit darin bestehen, das System in einen Notbetriebsmodus umzuschalten.
Die korrekte Implementierung eines Algorithmus bzw. dessen Konsistenz kann überprüft werden, indem der Algorithmus mit ausgewählten Eingangswerten bzw. sog. Vektoren ausgeführt wird und die tatsächlich resultierenden Werte der Ausgangsgrößen mit Sollwerten verglichen werden. Das Verfahren ähnelt damit einem sog. Modultest, wie er auch in der Softwareentwicklung angewandt wird. Liegt eine Abweichung zwi- sehen Ausgangswert und zugehörigem Sollwert vor, so kann auf einen Fehler im Algorithmus geschlossen werden. Gibt es im Algorithmus Verzweigungen, Schleifen oder Zähler, so sind mehrere derartige Testläufe mit im Allgemeinen verschiedenen Eingangswerten notwendig, um den gesamten Algo- rithmus auf seine Konsistenz hin prüfen zu können.
Gegenüber einem sogenannten "scan-path—test", bei dem Halbleiterschaltungen getestet werden, indem die zu Schieberegistern zusammengeschalteten Gatter der Schaltungen mit bestimmten Testmustern bzw. Bitmustern beaufschlagt werden, werden beim erfindungsgemäßen Verfahren die Gatter weitest- gehend in ihrem Verschaltungs zustand belassen, den sie auch im normalen Betriebsmodus der Schaltung aufweisen. Während bei den bekannten Verfahren ("scan-path-test") nicht sichergestellt werden kann, dass alle in der Schaltung imple- mentierten Algorithmen getestet werden, da ja nicht Algorithmen, sondern Gatter getestet werden und man nur sehr schwer eine genaue Zuordnung zwischen Gatter / Gatterfehlfunktion und Algorithmen / Algori hmenfehlern finden kann, ist die Testabdeckung beim erfindungsgemäßen verfahren sehr hoch und definierbar. Dies kann dadurch erreicht werden, dass die Eingangsvektoren so gewählt werden, dass alle zu überprüfenden Schaltungsteile und Algorithmen auch tatsächlich abgedeckt und durchlaufen werden können.
im Allgemeinen werden die Eingangsvektoren so gewählt, dass jeder Zweig im Algorithmus mindestens einmal durchlaufen wird.
Wenn die Fehler reiheit des Algorithmus besonders kritisch ist, d.h., wenn an die Qualität des Algorithmus besonders hohe Anforderungen gestellt werden, kann es sinnvoll sein, die Testabdeckung zu erhöhen, indem zusätzlich zur Zweigabdeckung für die Anwendung kritische Pfade im Algorithmus auf die beschriebene Weise getestet werden.
Die Erfindung betrifft weiterhin eine Schaltungsanordnung zum Testen von Funktionen und/oder von Algorithmen, die in elektronischen Schaltungen, insbesondere in digitalen Schaltungen implementiert sind. Die Schaltungsanordnung um- fasst eine Simulationseinheit zur Erzeugung von Eingangssignalen für die zu testende Schaltung, eine Auswerteein-
heit zum Vergleich des von der Schaltung gelieferten Ausgangssignals mit einem Sollsignal und eine Ausgabeeinheit zur Ausgabe eines Fehlersignals.
Erfindungsgemäß ist vorgesehen, dass die Schaltung nach Erkennen eines Fehlers in einen stabilen Zustand versetzbar ist. Dieser stabile Zustand kann bspw. dadurch erreicht werden, dass Leistungstreiber der Schaltung in einen für das System sicheren Zustand gebracht werden. Je nach Einsatzzweck der Schaltungsanordnung kann auch vorgesehen sein, dass nach Erkennen eines Fehlers ein Neustart der Schaltung ausgelöst wird. Wahlweise kann die Schaltung nach Erkennen eines Fehlers in einen Notbetriebsmodus umgeschaltet werden, was insbesondere für sicherheitskritische Einsatzgebiete der erfindungsgemäßen Schaltungsanordnung sinnvoll sein kann.
Die Schaltungsanordnung kann weiterhin eine Zählereinheit aufweisen zur Veränderung eines Zählerwertes in Abhängig- keit von der Erkennung einer Abweichung zwischen dem Ausgangssignal und dem Sollsignal. Diese Schaltungsanordnung kann insbesondere zur Durchführung eines Testverfahrens gemäß einer der zuvor beschriebenen Ausführungsformen vorgesehen sein. Während der Funktionstests wird die Schaltungs- anordnung in gegenüber einem normalen Betriebsmodus wei- testgehend unverändertem Verscήaltungszustand betrieben. Dies schließt insbesondere aus, die Gatterschaltungen unter Bildung von großen "Quasi-Schieberegistern" miteinander zu verschalten, wie dies bei sog. "scan-path-tests" der Fall ist; die dort verwendete Verschaltung der Gatter entspricht nicht dem Normalbetrieb, sondern einem Testbetrieb.
Das erfindungsgemäße Verfahren bzw. die erfindungsgemäße Schaltungsanordnung eignet sich insbesondere zum Testen von Komponenten in Motorsteuergeräten, in Getriebesteuerschal-
tungen oder anderen Steuerschaltungen, in denen digitale Steuer- und Regelalgorithmen implementiert sind.
Grundsätzlich jedoch eignet sich das Verfahren bzw. die Schaltungsanordnung zum Testen von Algorithmen aller Art, die in digitalen Schaltungen implementiert sind.
Die Erfindung wird nun anhand der beigefügten Zeichnung beispielhaft näher erläutert. Sie ist jedoch nicht auf die Beispiele beschränkt. Die einzelnen, schematisch zu verstehenden Figuren der Zeichnung zeigen:
Fig. 1 ein Blockschaltbild zur Verdeutlichung von aufeinander folgenden Schritten eines Fehlererken- nungsverfahrens,
Fig. 2 ein Blockschaltbild zur Verdeutlichung der Abläufe in einem Fehlererkennungsmechanismus, Fig. 3 ein Blockschaltbild zur Verdeutlichung der Abläufe in einem Fehlerentprellmechanismus, Fig. 4 ein Blockschaltbild zur Verdeutlichung der Abläufe in einem Fehlerreaktionsmechanismus und Fig. 5 ein schematisches Blockschaltbild zur Verdeutlichung von aufeinander folgenden Verfahrensschritten, wie sie beim Testen einer elektroni— sehen Schaltungen vorgesehen sind.
Die Figuren 1 bis 4 verdeutlichen in beispielhafter Weise einen Algorithmus zur Fehlererkennung, -entprellung und Fehlerreaktion, der mit Hilfe der erfindungsgemäßen Schal- tungsanordnung (vgl. Fig. 5) hinsichtlich eines fehlerfreien Ablaufs getestet wird. Das Ausführungsbeispiel ist jedoch nicht einschränkend zu verstehen. Grundsätzlich eignet sich das erfindungsgemäße Verfahren zum Testen von Funktionen und/oder Algorithmen aller Art, die in einer elektroni- sehen Schaltung, insbesondere in einer Digitalschaltung implementiert sind.
Das schematische Blockschaltbild der Fig. 1 verdeutlicht überblicksartig die einzelnen Bestandteile eines Algorithmus, der aus den drei Funktionsblöcken Fehlererkennung, Fehlerentprellung und Fehlerreaktion besteht. Der Block 10 bezeichnet einen Fehlererkennungsmechanismus, der Block 12 einen Fehlerentprellungsmechanismus und der Block 14 bezeichnet einen Mechanismus zur Fehlerreaktion bzw. zum Feh- lermanagement . Wird mittels des Fehlererkennungsmechanismus 10 ein Fehler erkannt, wird im Block 12 ein Zähler nach o- ben gezählt. Sobald der Zähler nach einer vorgegebenen Anzahl von erkannten Fehlern einen Maximalwert erreicht hat, wird im Block 14 eine Reaktion ausgelöst, die bspw. darin bestehen kann, dass die Leistungstreiber einen für das Sys- tem sicheren Zustand einnehmen (Block 16) oder dass ein
Neustart des Systems ausgelöst wird (Block 18) . Ein derartiger Algorithmus findet sich in Komponenten von sicherheitskritischen Bauteilen wie bspw. in Motorsteuergeräten, die bei einem nicht fehlerfreien Betrieb in einen Notbe— trieb umgeschaltet werden.
Fig. 2 zeigt in schematischer Blockdarstellung eine vereinfachte Form des Fehlererkennungsmechanismus 10. Der Schritt Sl bezeichnet den Start der Fehlererkennung. Im Schritt S2 erfolgt die eigentliche Fehlererkennung. Das Resultat der
Fehlererkennung wird im folgenden Schritt S3 an einen Ent- ' rellmechanismus übergeben, der anhand der Fig. 3 noch näher erläutert wird. Der Schritt S4 bezeichnet schließlich das Ende eines vollständigen Durchlaufs des Fehlererken- nungsmechanismus 10.
Der Fehlerentprell echanismus 12 wird anhand der Fig. 3 erläutert. Der Schritt Sll bezeichnet hierbei den Start des Entprellalgorithmus . Im Schritt S12 erfolgt eine Fehlerab- frage. Ist die Abfrage positiv ( ) , wurde ein Fehler erkannt, wonach der Fehlerzähler hochgezählt wird (Schritt
S13) . Andernfalls wird bei negativem Abfrageergebnis (N) der Fehlerzähler herunter gezählt (Schritt S14) . Im nachfolgenden Schritt S15 erfolgt eine Abfrage des zählerwertes. Erreicht der Fehlerzähler seinen vorgegebenen Maximal- wert, dann hat dies eine Fehlerreaktion zur Folge (Schritt S16) , die anhand der Fig. 4 näher erläutert wird. Vom Schritt S14 führt ein Zweig zum Programmende (Schritt S17) , ebenso bei einem negativen Abfrageergebnis (N) im Schritt S15. Nur bei positivem Abfrageergebnis (J) im Schritt S15 erfolgt eine Auslösung einer Fehlerreaktion.
Das Blockdiagramm der Fig. 4 verdeutlicht die möglichen Reaktionen bei einem erkannten Fehler. Nach dem Start im Schritt S21 wird im Schritt S22 erzwungen, dass die Leis- tungstreiber einen für das System sicheren Zustand einnehmen. Sekundär bzw. optional wird im Schritt S23 ein Fehlereintrag erzeugt und es wird im Schritt S24 ein Versuch unternommen, das System durch einen Neustart wieder verfügbar zu machen. Der Schritt S25 bezeichnet das Programmende. Der Schritt S22 ist unverzichtbar, während auf die Schritte S23 und S24 bei weniger kritischen Algorithmen ggf. auch verzichtet werden kann.
Die Fig. 5 verdeutlicht in schematischer Weise ein erfin- dungsgemäßes Testverfahren bzw. eine Schaltungsanordnung 20 zur Durchführung von Testverfahren für zu testende Algorithmen. Die Steuerschaltung 22 steuert den Testablauf, er¬ zeugt die Eingangsvektoren und vergleicht die tatsächlichen Werte der Ausgangssignale mit vorgegebenen Sollwerten.
Mit den Pfeilen 24 wird jeweils die Initialisierung der Funktionsblöcke des Fehlererkennungsmechanismus 10, des Entprellmechanismus 12 und des Fehlermanagements 14 bezeichnet. Der Pfeil 26 bezeichnet die Aktivierung des Feh- lererkennungsmechanismus 10. Dies erfolgt in der Initialisierungsphase zunächst mit einem Eingangsvektor, der nicht
zur Erkennung eines Fehlers führen sollte. Die Pfeile 28 bezeichnen jeweils die Auswertung von relevanten Signalen aus den einzelnen Funktionsblöcken.
Während der Initialisierungsphase sollte im Fehlererkennungsmechanismus 10 kein Fehler erkannt werden. Im Ent— prellmechanismus 12 sollte auch nicht der Funktionsblock "Fehlerreaktion" ausgelöst werden. Zudem sollte der Funktionsblock "Fehlerreaktion" keinen Einfluss auf die Leis- tungstreiber des Systems ausüben.
In den darauf folgenden Tests kann dann überprüft werden, ob das System im Fehlerfall tatsächlich in einen sicheren Zustand überführt wird, iederum erfolgt die Initialisie- rung der Funktionsblöcke 10, 12 und 14 (Pfeile 24) . Anschließend wird der Fehlererkennungsmechanismus 10 mit einem Eingangsvektor (Pfeil 26) aktiviert, der zur Erkennung eines Fehlers führen sollte.
Anschließend erfolgt die Auswertung von relevanten Signalen aus den einzelnen Funktionsblöcken 10, 12 und 14, wobei bei diesen Testläufen der Fehlererkennungsmechanismus 10 einen Fehler erkannt haben sollte. Der Entprellmechanismus 12 sollte nach ein- oder mehrfacher Aktivierung des Fehlerer- kennungsmechanismus 10 den Funktionsblock "Fehlerreaktion" auslösen. Der Funktionsblock 14 ("Fehlerreaktion") sollte erzwingen, dass die Leistungstreiber einen für das System sicheren Zustand einnehmen.
Diese nach der Initialisierung durchgeführten Schritte können ggf. mehrfach durchgeführt werden. Dies ist insbesondere dann der Fall, falls der Fehlerentprellmechanismus 12 erst mehrere Fehler in Folge zählen muss, damit der Funktionsblock "Fehlerreaktion" aktiviert wird.
Im Allgemeinen werden die Eingangsvektoren so gewählt, dass jeder Zweig im zu testenden Algorithmus mindestens einmal durchlaufen wird. In besonderen Fällen, wenn hohe Anforderungen an die Qualität des Tests gestellt werden, werden zusätzlich zur Zweigabdeckung für die Anwendung kritische Pfade im Algorithmus getestet . Bei dem Fehlererkennungsalgorithmus gemäß Figur 2 sind dies die Schritte S2 (Fehlererkennung) und S3 (Fehlerreaktion) , da die Schaltungskomponente in ihrem Normalbetrieb zuverlässig jeden im überwach- ten System auftretenden Fehler erkennen muss. Bei dem Fehlerreaktionsalgorithmus gemäß Figur 4 sind die Schritte S21 (Start) und S22 (Umschalten des Systems in sicheren Zustand) als besonders kritisch anzusehen, da diese Schritte eine Mindestanforderung darstellen, um nach Erkennen eines Fehlers im System ein sicherheitskritisches Verhalten zu vermeiden.
Das erfindungsgemäße Verfahren eignet sich insbesondere zum Hardwaretest in sicherheitskritischen Anwendungen, bspw. bei Motor- und Getriebesteuergeräten bzw. -Systemen.