-
HINTERGRUND
DER ERFINDUNG
-
Die vorliegende Erfindung betrifft
einen Mikrocomputer mit einer Selbstdiagnoseeinheit und spezieller einen
Mikrocomputer mit einer Selbstdiagnosefunktion zum Diagnostizieren
der CPU des Mikrocomputers durch den CPU-Monitor-Macro-Dienst, der ein Programm
zum Ausführen
einer Folge von Instruktionen ist, die zum Diagnostizieren der CPU
mittels eines externen Interrupt-Signals notwendig sind.
-
Um die Leistungsfähigkeit des Motorfahrzeuges
zu steigern und dessen Sicherheit zu erhöhen, wurde unlängst allgemein
ein mit einem Mikrocomputer ausgestatteter elektronischer Controller
im Hauptcontroller des Motorfahrzeuges, wie dem Motorcontroller
oder dem Bremscontroller, verwendet. Wenn in der Benutzerkarte,
die den Motorcontroller oder den Bremscontroller umfaßt, oder
in dem Mikrocomputer ein Fehler auftritt, kann dieser das menschliche
Leben gefährden.
Deshalb verlangt der für
den Gebrauch in einem solchen technischen Feld bestimmte Mikrocomputer
eine hohe Verläßlichkeit.
Um zu überprüfen, ob
ein Fehler in dem Mikrocomputer vor der Auslieferung der Benutzerkarte
auftritt oder nicht, wendet der Ingenieur des Controllers für das Motorfahrzeug
die Selbstdiagnosesoftware von außen auf den Mikrocomputer an,
nachdem diese in die Benutzerkarte installiert wurde. Die Selbstdiagnosesoftware
diagnostiziert also die CPU in dem Mikrocomputer, um basierend auf
dem Diagnoseergebnis zu bestätigen,
ob ein Fehler auftritt oder nicht.
-
Wie oben für die konventionellen in dem
Motorfahrzeug verwendeten Mikrocomputer beschrieben, wird die Selbstdiagnosesoftware,
die die CPU diagnostiziert, nach ihrer Installation in der Benutzerkarte
auf den Mikrocomputer angewandt, um vor der Auslieferung der Benutzerkarte
den Status des Mikrocomputers zu bestätigen. In diesem Fall wird
die Selbstdiagnose der CPU den Instruktionen der von außen eingelesenen CPU-Selbstdiagnosesoftware
folgend implementiert. Daher ist die Zeit zum Einlesen der Instruktionen
der CPU-Selbstprüfungssoftware
notwendig.
-
Auf der anderen Seite wurde ein Macro-Dienst,
der eine Folge von Instruktionen durch einen Interrupt ausführt, in
der japanischen Patentoffenlegungsschrift Nr. 60-183639 "data processing apparatus" veröffentlicht.
In dem konventionellen Macrodienst umfaßt die zentrale Verarbeitungseinheit
(CPU) ein Datenverarbeitungssteuermittel, das die arithmetische
Operation und das Weiterleiten der in dem Speicher gespeicherten Daten
mit dem gesamten unveränderten
Status durchführt,
wobei der erste Prozeß,
der für
die Ausführung
des Programms im Programmspeicher relevant ist, verzögert wird.
In Reaktion auf die Verarbeitungsanforderung des Zählers führt das
Datenverarbeitungsmittel die arithmetische Operation und das Weiterleiten
aus. Folglich reduziert die konventionelle Datenverarbeitungsvorrichtung
die Zeit für
die Interruptverarbeitung und kehrt daher schnell zu dem ersten
Prozeß zurück.
-
Der Zweck des obigen konventionellen
Macro-Dienstes ist jedoch nur, die Zeit zu verringern, die notwendig
ist, um das externe Programm als eine Interruptverarbeitung auszuführen, aber
nicht, um die Zeit zum Diagnostizieren der CPU zu verringern. Bezüglich der
CPU-Diagnostik lehrt die obige Veröffentlichung weder irgendeine
Funktion noch irgendeine Struktur.
-
Die EP-A-0 018 736 offenbart einen
selbsttestenden Mikrocomputer. Der Mikrocomputer hat ein ROM, der
Platz für
ein Benutzersteuerprogramm enthält
und auch Speicher für
ein residentes Selbsttestprogramm alloziert, das durch Erzeugen
von Interrupts eingegeben wird, die zu anderen als den normalen
Benutzerorten zeigen, wenn ein Selbsttestmode eingegeben wird. Dann
wird das Selbsttestprogramm eher als das Benutzerprogramm ausgeführt. Um
eine Instruktion zu verarbeiten, wird der Befehlscode (opcode) vorübergehend
in einem Instruktionsregister gespeichert und durch eine Decodier-
und Steuerlogik decodiert. Die Decodier- und Steuerlogik generiert
Signale, die die Register und die ALU der CPU steuern.
-
Eine Aufgabe der vorliegenden Erfindung
ist, einen Mikrocomputer mit einer Selbstdiagnoseeinheit zur Verfügung zu
stellen, die in der Lage ist, die CPU in einem kürzeren Zeitraum zu diagnostizieren,
indem die Zeit zum Lesen der Instruktionen der Software reduziert
wird.
-
Diese Aufgabe wird gelöst durch
einen Mikrocomputer gemäß Anspruch
1. Ein bevorzugtes Ausführungsbeispiel
ist in Anspruch 2 definiert.
-
Das bevorzugte Ausführungsbeispiel
umfaßt:
ein erstes Register, das einen Anfangswert zur Ausführung der
Diagnose der CPU speichert, wobei der Anfangswert vor der Initiierung
des CPU-Monitor-Macro-Dienstes unter Verwendung eines Benutzerprogramms
in einem externen Speicher in den RAM geschrieben wird, und zwar
gemäß den Instruktionscodes
des CPU-Monitor-Macro-Dienstes
in dem Micro-ROM; ein zweites Register, das eine Adresse speichert,
die ein Ausgabeziel für
einen Ausführungsergebniswert
bestimmt, nachdem die Diagnose der CPU unter Verwendung des Anfangswertes,
der wie oben mittels eines Benutzerprogramms in dem externen Speicher
in den RAM geschrieben wird, ausgeführt wird; ein drittes Register,
das Adressen des RAM und Wege dorthin prüft, wobei der Anfangswert verwendet
wird, um Daten bei der Interruptverarbeitung zu sichern; eine Benennungseinheit,
die das dritte Register benennt; ein viertes Register, das ein Ergebnis
der arithmetischen Operation mittels einer Operationseinheit speichert,
die arithmetische Operationen des Ausführungsergebniswertes des Prüfens implementiert;
und eine Ausgabeeinheit, die das Ergebnis des vierten Registers
nach dem Prüfen
speichert und den in dem ersten Register gespeicherten Ausführungsergebniswert
zum Äußeren des
Mikrocomputers über
einen von dem zweiten Register benannten Port ausgibt, wobei der
Status der CPU des Mikrocomputers mit Bezug zu dem Ausführungsergebniswert
im Äußeren des
Mikrocomputers diagnostiziert wird.
-
1 ist
ein Blockschaltbild, das die Struktur des Ausführungsbeispiels des Mikrocomputers
mit Selbstdiagnoseeinheit gemäß der vorliegenden
Erfindung zeigt; und
-
2 ist
ein Blockschaltbild, das die detaillierte Struktur des Ausführungsbeispiels
des Mikrocomputers mit Selbstdiagnoseeinheit gemäß der vorliegenden Erfindung
zeigt.
-
Im folgenden wird jetzt ein bevorzugtes
Ausführungsbeispiel
des Mikrocomputers mit Selbstdiagnoseeinheit mit Bezug zu den beigefügten Zeichnungen
beschrieben.
-
1 ist
ein Blockschaltbild, das die Struktur des Ausführungsbeispiels des Mikrocomputers
mit Selbstdiagnoseeinheit gemäß der vorliegenden
Erfindung zeigt und 2 ist
ein Blockschaltbild, das die detaillierte Struktur des Ausführungsbeispiels
zeigt.
-
Zuerst wird die Struktur des Ausführungsbeispiels
mit Bezug zu 1 beschrieben.
-
Wie in 1 gezeigt,
umfaßt
der Mikrocomputer 10 eine CPU 1, ein RAM 2,
der beliebig beschreibbar und lesbar ist, eine Interruptverarbeitungseinheit 3,
einen Datenbus 4, einen Eingabe-/Ausgabe-Port 5 und eine
Selbstdiagnoseeinheit 9. Die Selbstdiagnoseeinheit 9 umfaßt einen
CPU-Monitor-Macro-Dienst 6, ein CPU-Diagnosemodul 7 und
ein Ausgabemodul 8. Der CPU-Monitor-Macro-Dienst 6 ist
ein Programm, das eine Folge von Anweisungen ausführt und
die CPU 1 in Reaktion auf das externe Interruptsignal diagnostiziert.
Das CPU-Diagnosemodul 7 diagnostiziert die CPU 1,
indem es sich auf die Daten in einem externen Speicher 11 in Übereinstimmung
mit dem CPU-Monitor-Macro-Dienst
bezieht. Das Ausgabemodul 8 gibt das Diagnoseergebnis der
CPU 1 unter Verwendung der Referenzdaten nach außen aus.
-
Als nächstes wird die detaillierte
Struktur des Ausführungsbeispiels
des Mikrocomputers mit Selbstdiagnoseeinheit mit Bezug zu 2 erläutert.
-
In Reaktion auf ein Interruptsignal 100,
das die Dia gnose der CPU anfordert, aktiviert ein Micro-ROM-Steuerkreis 101 den
CPU-Monitor-Macro-Dienst, der eine Folge von Instruktionen ausführt, die
notwendig zum Diagnostizieren der CPU sind. Dann benennt der Micro-ROM-Steuerkreis 101,
der Adressen von Instruktionscode-Speicherbereichen produziert,
die Instruktionen und Interruptsignalen entsprechen, einen CPU-Monitor-Macro-Dienst-Code 102 in
einem Micro-ROM 115, der der Instruktionscode-Speicherbereich
ist. Gemäß dem CPU-Monitor-Macro-Dienst-Code 102 werden
ein Anfangswert a, der zum Diagnostizieren der CPU verwendet wird,
und eine Adresse in einem TA-Register 114 bzw. einem TC-Register 112 gespeichert. Der
Anfangswert α wird
von dem Benutzerprogramm in dem externen Speicher 11 über die
Leitung eines externen Signals 127 vor der Aktivierung
des CPU-Monitor-Macro-Dienstes
in einen RAM 110 geschrieben. Die Adresse bestimmt die
Ausgabebenennung für
den Ausführungsergebniswert
des Diagnostizierens der CPU mittels des Anfangswertes α. Der Anfangswert α in dem TA-Register 114 verwendet,
um sequentiell Adressen des RAMs 110 und Funktionen eines
TB-Registers 113 zu prüfen,
das die Daten in der Interruptverarbeitung sichert. Nach der Prüfung führt eine
ALU 111, die eine Arithmetikoperationseinheit ist, die
Operation auf dem Ausführungsergebniswert
durch, um den bearbeiteten Ausführungsergebniswert
zu einem ALU-Register 126 weiterzuleiten, wobei er in dem
TA-Register 114 gespeichert wird. Danach wird der Ausführungsergebniswert in
dem TA-Register 114 als ein internes Signal 120 des
Mikrocomputers 125 über
einen Port 118, der über
die obige Adresse in dem TC-Register 112 benannt wird,
ausgegeben, wobei der Benutzer mit Bezug zu dem Ausführungsergebniswert
bestätigt,
ob ein Fehler auftritt oder nicht.
-
Ein Mikrobefehl 116 benennt
einen Block, an dem Daten zu dem Datenbus 103 ausgegeben
werden sollen. Ein PSWL 119 sind die 8 niederwertigen Bits
eines Programmstatuswortes. Ein Spezialbefehl 117 führt ein
Setzen und Zurücksetzen
eines Flags des PSWL 119 durch. Ein SPH 108 ist
ein Speicherzeiger mit acht höherwertigen
Bits, der aus vier höherwertigen
Bits des obigen Registers zur Sicherung zusammengesetzt ist. Ein
SP 109 ist ein Speicherzeiger mit 16 niederwertigen Bits,
welcher der Speicherzeiger ist, der 16 niederwertige Bits des Registers,
das die Daten in der Interruptverarbeitung speichert, einschließt.
-
Als nächstes wird der Betrieb des
obigen Ausführungsbeispiels
beschrieben.
-
Das Interruptsignal 100 aktiviert
den CPU-Monitor-Macro-Dienst
zum Ausführen
einer Folge von Instruktionen in Reaktion auf das Interruptsignal.
Der CPU-Monitor-Macro-Dienst
schreibt in das TA-Register 114 bzw. in das TC-Register 112 den
Anfangswert α zur
Verwendung beim Diagnostizieren der CPU und die Ausgabezieladresse β des Ausführungsergebniswerts
des Diagnostizierens der CPU (im folgenden mit SFR-Ausgabezieladresse
abgekürzt),
wobei beide über
die Leitung des externen Signals 127 unter Verwendung des Benutzerprogramms
in dem externen Speicher 11 vor der Initiierung des CPU-Monitor-Macro-Dienstes
in den RAM 110 geschrieben wurden.
-
Zuerst wird die Adresse bestätigt, die
von dem RAMAD 105 (RAM-Adressenzwischenspeicher) benannt
wird, der Adressen in dem RAM 110 bereitstellt. Der Wert
Va in einem Register des RAM 110, der dort vor dem Start
des CPU-Monitor-Macro-Dienstes
abgelegt wurde, wird in das TB-Register 113 gespeichert.
Der Anfangswert α wird
von dem TA-Register 114 zum Register des RAM 110 weitergeleitet,
das von dem RAMAD 105 benannt wird. Danach benennt der
RAMAD 105 das Register des RAMs 110, das den Anfangswert α speichert.
Das Register des RAMs 110 transferiert den Anfangswert α zur ALU 111,
und der CPU-Monitor-Macro-Dienst-Code 102 aktiviert gleichzeitig
die ALU 111 durch die ALUDEC 107, die deren Operationen
spezifiziert. Die ALU 111 führt die von der ALUDEC 107 spezifizierte
Dekrementierung durch, so daß sie
den Ausführungsergbniswert
(α – 1) zum
TA-Register 114 schiebt. Dann kehrt der in dem TB-Register 113 gesicherte
Wert Va zum Register des RAM 110 zurück. Auf diese Weise ist die
Prüfung
des RAM 110 vollendet.
-
Als nächstes wird der SP 109 (Speicherzeiger
mit 16 niederwertigen Bits) geprüft,
der der Speicherzeiger ist, der 16 niederwertige Bits des Registers,
das die Daten in der Interruptverarbeitung sichert, einschließt. Der
Wert Vb in dem SP 109 wird in dem TB-Register 113 gesichert.
Auch der Ausführungsergebniswert
(α – 1) in
dem TA-Register 114 wird zu dem SP 109 weitergeleitet
und wird von dort weiter zur ALU 111 weitergeleitet. Gleichzeitig
spezifiziert der CPU-Monitor-Macro-Dienst-Code 102 die
Operation der ALU 111 durch die ALUDEC 107. Dabei
führt die
ALU 111 die von der ALUDEC 107 spezifizierte Dekrementierung
aus und transferiert so den Ausführungsergebniswert
(α – 2) zum
TA-Register 114. Der im TB-Register 113 gesicherte
Wert Vb kehrt zum SP 109 zurück. Auf diese Weise ist das
Prüfen
der SP 109 vollendet.
-
Weiter werden die Inkrementierungs-
und Dekrementierungsoperationen in der SPH 108 (Speicherzeiger
mit 8 höherwertigen
Bits), der aus vier höherwertigen
Bits des obigen Registers zur Sicherung zusammengesetzt ist, geprüft. Zuerst
wird der Wert Vc in der SPH 108 in das TB-Register 113 gesichert,
und der Wert (α – 2) in
dem TA-Register 114 wird
zum SPH 108 weitergeleitet. Dann transferiert der CPU-Monitor-Macro-Dienst-Code 102 die
Daten "FFFF(H)" über das TA-Register 114 zur
ALU 111 und spezifiziert auch die Operation der ALU 111 durch
die ALUDEC 107. So implementiert die ALU 111 die
durch die ALUDEC 107 spezifizierte Inkrementierung. Die
Inkrementierung ermöglicht
dem Trägerflag
in dem ALU-Register 126, "1" zu sein,
was dem Wert (α – 2) in
der SPH 108 erlaubt, dekrementiert zu werden, um auf (α – 3) vermindert
zu werden. Der Wert (α – 3) in
der SPH 108 wird zum TA-Register 114 geschoben.
Der in dem TB- Register 113 gesicherte
Wert Vc kehrt zu der SPH 108 zurück. Auf diese Weise ist das
Prüfen
der SPH 108 vollendet.
-
Des weiteren wird der Weg von einem
TQ 104 (Befehlscoderegister), der ein Instruktionscoderegister ist,
der Instruktionscodes holt, zur Adresse in dem durch den RAMAD 105 benannten
RAM 110 geprüft.
Durch Zugreifen auf den TQ 104 transferiert der CPU-Monitor-Macro-Dienst-Code 102 die
Daten Vd an der Adresse "0080(H)" in dem RAM 110,
der durch das TRA 106 (temporäres RAM-Adressenregister) benannt
wird, das das Register ist, das die für den RAM 110 relevanten
Adressen sichert, zum TB-Register 113. Der Wert (α – 3) im
TA-Register 114 wird zur Adresse AA in dem von dem TRA 106 benannten
RAM 110 weitergeleitet und wird von dort weiter zur ALU 111 weitergeleitet.
Auch der CPU-Monitor-Macro-Dienst-Code 102 spezifiziert
die Operation der ALU 111 durch die ALUDEC 107,
wobei die ALU 111 die von der ALUDEC 107 spezifizierte
Dekrementierung ausführt,
um den Ausführungsergebniswert
(α – 4) zum
TA-Register 114 zu verschieben. Dann kehrt der in dem TB-Register 113 gespeicherte
Wert Vd zur Adresse "0080(H)" in dem von dem TRA 106 benannten
RAM 110 zurück.
Auf diese Weise wird das Prüfen
des den RAM 110 betreffenden Wegs vollendet.
-
Des weiteren transferiert der CPU-Monitor-Macro-Dienst-Code 102 die
Adresse "0000(H)" zum TQ 104,
um die TQLL 121 zu prüfen,
die aus den vier niedrigstwertigen Bits des TQ 104 zusammengesetzt
sind. Die Daten Ve an der Adresse AB in dem von der TQLL 121 benannten
RAM 110 werden über
die ALU 111 in dem TB-Register 113 gesichert.
Der Wert (α – 4) in
dem TA-Register 114 wird
zur Adresse AB in dem von dem RAMAD 105 benannten RAM 110 weitergeleitet
und wird weiter zur ALU 111 weitergeleitet. Danach spezifiziert der
CPU-Monitor-Macro-Dienst-Code 102 die
Operation der ALU 111 durch die ALUDEC 107, wobei
die ALU 111 die von der ALUDEC 107 spezifizierte
Dekrementierung ausführt,
um den Ausführungsergebniswert
(α – 5) zum
TA-Register 114 weiterzuleiten. Dann kehren die in das
TB-Register 113 gesicherten Daten Ve zur Adresse AB in
dem von der TQLL 121 benannten RAM 110 zurück. Auf
diese Weise ist das Prüfen
der TQLL 121 vollendet.
-
Anschließend wird der Weg zur Adresse
in dem RAM 110 geprüft,
der von dem TQHH 124, der die höchstwertigen vier Bits des
TQ 104 darstellt, benannt ist. Die Daten Vf an der Adresse
AC in dem von dem TQHH 124 benannten RAM 110 werden
in das TB-Register 113 gesichert. Der Wert (α – 5) in
dem TA-Register 114 wird
zur Adresse AC in dem von dem TQHH 124 benannten RAM 110 weitergeleitet
und wird weiter zur ALU 111 weitergeleitet. Der CPU-Monitor-Macro-Dienst-Code 102 spezifiziert
die Operation der ALU 111 durch die ALUDEC 107,
wobei die ALU 111 die von der ALUDEC 107 spezifizierte
Dekrementierung implementiert, um den Ausführungsergebniswert (α – 6) zum
TA-Register 114 zu transferieren. Die in dem TB-Register 113 gesicherten
Daten Vf kehren zur Adresse AC in dem von dem TQHH 124 benannten
RAM 110 zurück.
-
Nach der Prüfung der peripheren Funktionen
wird die SFR-Ausgabezieladresse β in dem TC-Register 112 zum
TB-Register 113 weitergeleitet, während der Wert (α – 6) in
dem TA-Register 114 zum
TC-Register 112 weitergeleitet wird. Der CPU-Monitor-Macro-Dienst-Code 102 spezifiziert
die Operation der ALU 111 durch die ALUDEC 107,
wobei die ALU 111 den Vergleich zwischen dem Wert (α – 6) in
dem TA-Register 114 und dem Wert (α – 6) in dem TC-Register 112 ausführt. Wenn
sie übereinstimmen,
wird der Wert (α – 6) in
dem TA-Register 114 zur ALU 111 weitergeleitet,
wobei die ALU 111 die von dem CPU-Monitor-Macro-Dienst-Code 102 durch
die ALUDEC 107 spezifizierte Dekreierung ausführt, um
den Ausführungsergebniswert
(α – 7) zum TA-Register 114 zu
transferieren.
-
Gemäß der Benennung durch den CPU-Monitor-Macro-Dienst-Code 102 durch
die ALUDEC 107 vergleicht die ALU 111 den im TA-Register 114 gesicherten
Wert (α – 7) und
den Wert β oder
die in dem TC-Register 112 gesicherte SFR-Ausgabezieladresse β. Wenn sie
verschieden sind, wird der Wert (α – 7) in
dem TA-Register 114 zur ALU 111 ausgegeben, wobei
die ALU 111 die von der ALUDEC 107 spezifizierte
Dekrementierung des Wertes (α – 7) durchführt, um
den Ausführungsergebniswert
(α – 8), der
das Ergebnis des Diagnostizierens der CPU darstellt, zum TA-Register 114 zu
transferieren.
-
Schließlich wird der Wert (α – 8) des
TA-Registers 114, das die Ausführungsergebnisdaten der CPU-Diagnose
speichert, gemäß der im
TB-Register 113 gesicherten SFR-Ausgabeadresse nach außen 120 aus
dem Microcomputer ausgegeben. Somit kann der Benutzer von außen den
Status der CPU prüfen,
indem er sich auf den Wert (α – 8) bezieht.
-
Wie oben beschrieben wird die CPU
von dem CPU-Monitor-Macro-Dienst
diagnostiziert, der eine Folge von Instruktionen unter Verwendung
von internen Interrupts ausführt.
Dies reduziert die Zeit für
das Lesen der Instruktionen verglichen mit konventionellen Verfahren
zum Lesen von außen
mittels eines Programms zur Verwendung beim Selbstdiagnostizieren
der CPU. Dadurch kann die CPU in dem Microcomputer, auch wenn sie
auf der Benutzerkarte sitzt, schnell diagnostiziert werden.
-
Legende
zu den Figuren:
Englisch | Deutsch |
Figur
1: | |
EXTERNAL
MEMORY | externer
Speicher |
DATA
BUS | Datenbus |
INTERRUPT
PROCESSING UNIT | Interruptverarbeitungseinheit |
CPU
DIAGNOSIS MODULE | CPU-Diagnosemodul |
CPU
MONITOR MACRO SERVICE | CPU-Monitor-Macro-Dienst |
OUTPUT
MODULE | Ausgabemodul |
INPUT/OUTPUT
PORT | Eingabe-/Ausgabe-Port |
Figur
2: | |
INTERRUPT
SIGNAL | Interruptsignal |
MICRO
ROM | Micro-ROM |
CPU
MONITOR MACRO SERVICE CODE | CPU-Monitor-Macro-Dienst-Code |
MICRO
ROM CONTROL CIRCUIT | Micro-ROM-Steuerkreis |
COMMAND
CODE LATCH | Befehlscoderegister |
RAM
ADDRESS BUFFER | RAM-Adreß-Zwischenspeicher |
RAM
ADDRESS TEMPORARY REGISTER | temporäres RAM-Adreßregister |
DATA
BUS | Datenbus |
MICRO
ORDER | Microbefehl |
SPECIAL
ORDER | Spezialbefehl |
ALU
REGISTER | ALU-Register |
TC
REGISTER | TC-Register |
TB
REGISTER | TB-Register |
TA
REGISTER | TA-Register |
PORT | Port |