-
Die vorliegende Erfindung betrifft im Allgemeinen eine elektronische Steuereinheit mit einem Mikrocontroller, der wenigstens zwei Verarbeitungsblöcke auf einem Halbleiterchip aufweist, wobei jeder der wenigstens zwei Verarbeitungsblöcke jeweils eine CPU und eine periphere Schaltung aufweist.
-
In einem System, in dem eine Steuerung auch während eines Fehlers in einer Steuervorrichtung fortgesetzt werden muss, wird eine Systemredundanz durch Multiplexing bereitgestellt. So weist beispielsweise eine Steuervorrichtung, die in einem Patentdokument, der
JP 2012-73748 (Patentdokument 1), beschrieben ist, eine Doppelkern-CPU auf, bei der ein Kern einen Betrieb des anderen Kerns unter Verwendung eines Watchdog-Timers (Laufzeitüberwachung) überwacht, und dann, wenn eine Abnormität von einem der beiden Kerne erfasst wird, der Prozess, der von dem fehlerhaften Kern ausgeführt wird, von dem anderen Kern als Ersatz ausgeführt/hervorgebracht wird.
-
Bei der Konfiguration gemäß Patentdokument 1 verwenden die zwei Kerne jedoch eine periphere Schaltung in einer gemeinschaftlichen Weise, was es unmöglich macht, dass der Prozess des fehlerhaften Kerns von dem anderen Kern ausgeführt wird, sobald eine Abnormität in der peripheren Schaltung verursacht wird.
-
Es ist Aufgabe der vorliegenden Erfindung, einen Mikrocontroller und eine ECU mit solch einem Mikrocontroller bereitzustellen, die mit einer verbesserten Fail-Safe-Funktion ausgestattet sind.
-
Gemäß einem Aspekt der vorliegenden Erfindung weist der Mikrocontroller, auf einem Halbleiterchip, zwei oder mehr als zwei Verarbeitungsblöcke auf, die jeweils eine CPU (Central Processing Unit oder zentrale Recheneinheit) und eine periphere Schaltung, die in der CPU angeordnet ist, aufweisen. Die periphere Schaltung in einem Verarbeitungsblock ist nur von der CPU in demselben Verarbeitungsblock zugreifbar bzw. zugänglich. Bei solch einer Konfiguration kann, auch wenn einer der beiden Verarbeitungsblöcke einen Fehler aufweist, der andere der beiden Verarbeitungsblöcke problemlos einen Prozess von dem fehlerhaften/ausgefallenen Verarbeitungsblock fortführen/beerben und den beerbten/delegierten Prozess ausführen. Genauer gesagt, eine Delegierung eines Prozesses von einem ausgefallenen Verarbeitungsblock an den anderen Verarbeitungsblock wird auf diese Weise ermöglicht.
-
Der Mikrocontroller gemäß einem weiteren Aspekt der vorliegenden Erfindung weist einen Lockstep-(Gleichschritt)-Kern als die periphere Schaltung auf, so dass es für den Mikrocontroller möglich wird, zu erfassen, ob ein Fehler in den Verarbeitungsblöcken verursacht worden ist, und zwar anhand eines Betriebs des Lockstep-Kerns.
-
Der Mikrocontroller gemäß noch einem weiteren Aspekt der vorliegenden Erfindung weist einen gemeinsamen Speicher auf, der von jeder der CPUs in den Verarbeitungsblöcken zugreifbar ist. Bei solch einer Konfiguration ist, wenn beispielsweise ein Fehler in einem der zwei oder mehr als zwei Verarbeitungsblöcke verursacht wird, solch ein Ereignis (d. h., Verarbeitung eines Prozesses) in einem der Verarbeitungsblöcke über den gemeinsamen Speicher an den anderen Verarbeitungsblock übertragbar, so dass der Prozess in dem ausgefallenen Verarbeitungsblock an den anderen Verarbeitungsblock delegiert werden kann.
-
Die obigen und weitere Aufgaben, Eigenschaften und Vorteile der vorliegenden Erfindung sind aus der nachfolgenden detaillierten Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen näher ersichtlich. In den Zeichnungen zeigt:
-
1 ein Blockdiagramm eines Mikrocontrollers gemäß einer ersten Ausführungsform der vorliegenden Erfindung;
-
2 ein Blockdiagramm einer elektronischen Steuereinheit (ECU), die den in der 1 gezeigten Mikrocontroller aufweist, und eines solch eine ECU verwendenden Steuersystems;
-
3 ein Ablaufdiagramm eines Prozesses, der von jedem von Verarbeitungsblöcken in der ECU ausgeführt wird;
-
4 ein Blockdiagramm der ECU und des Steuersystems gemäß einer zweiten Ausführungsform der vorliegenden Erfindung, einschließlich des in der 5 gezeigten Mikrocontrollers;
-
5 ein Blockdiagramm des Mikrocontrollers in der zweiten Ausführungsform der vorliegenden Erfindung;
-
6 ein Ablaufdiagramm eines Prozesses, der von einem Steuerblock ausgeführt wird;
-
7 ein Ablaufdiagramm eines Prozesses, der von einem Standby-Block ausgeführt wird;
-
8 ein Ablaufdiagramm eines Prozesses, der von einem von zwei Verarbeitungsblöcken ausgeführt wird, gemäß einer dritten Ausführungsform der vorliegenden Erfindung;
-
9 ein Ablaufdiagramm eines Prozesses, der von dem anderen der beiden Verarbeitungsblöcke ausgeführt wird, in der dritten Ausführungsform der vorliegenden Erfindung;
-
10 ein Blockdiagramm der ECU gemäß einer vierten Ausführungsform der vorliegenden Erfindung;
-
11 ein Ablaufdiagramm eines Prozesses, der von einer externen integrierten Schaltung (IC) ausgeführt wird;
-
12 ein Ablaufdiagramm eines Prozesses, der von einem der beiden Verarbeitungsblöcke ausgeführt wird, in der vierten Ausführungsform der vorliegenden Erfindung;
-
13 ein Ablaufdiagramm eines Prozesses, der von dem anderen der beiden Verarbeitungsblöcke ausgeführt wird, in der vierten Ausführungsform der vorliegenden Erfindung;
-
14 ein Ablaufdiagramm eines Prozesses, der von der externen integrierten Schaltung (IC) ausgeführt wird, gemäß einer fünften Ausführungsform der vorliegenden Erfindung;
-
15 ein Ablaufdiagramm eines Prozesses, der von einem der beiden Verarbeitungsblöcke ausgeführt wird, in der fünften Ausführungsform der vorliegenden Erfindung;
-
16 ein Ablaufdiagramm eines Prozesses, der von dem anderen der beiden Verarbeitungsblöcke ausgeführt wird, in der fünften Ausführungsform der vorliegenden Erfindung;
-
17 ein Blockdiagramm des Mikrocontrollers gemäß einer sechsten Ausführungsform der vorliegenden Erfindung;
-
18 ein Blockdiagramm des Mikrocontrollers gemäß einer siebten Ausführungsform der vorliegenden Erfindung;
-
19 ein Blockdiagramm des Mikrocontrollers gemäß einer achten Ausführungsform der vorliegenden Erfindung;
-
20 ein Blockdiagramm des Mikrocontrollers gemäß einer neunten Ausführungsform der vorliegenden Erfindung;
-
21 ein Blockdiagramm des Mikrocontrollers gemäß einer zehnten Ausführungsform der vorliegenden Erfindung;
-
22 ein Blockdiagramm des Mikrocontrollers gemäß einer elften Ausführungsform der vorliegenden Erfindung;
-
23 ein Ablaufdiagramm eines Prozesses, der von einer Taktüberwachungseinheit ausgeführt wird; und
-
24 ein Blockdiagramm des Mikrocontrollers gemäß einer zwölften Ausführungsform der vorliegenden Erfindung.
-
(Erste Ausführungsform)
-
Nachstehend ist die erste Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die 1 beschrieben. Ein Mikrocontroller 1 der vorliegenden Ausführungsform wird beispielsweise auf eine Servolenkanlage eines Fahrzeugs angewandt und weist zwei Verarbeitungsblöcke 2_0 und 2_1 auf einem Halbleiterchip auf. ”_0” und ”_1” entsprechen in diesem Fall ”#0” und ”#1” in der 1. Die zwei Verarbeitungsblöcke 2 weisen eine symmetrische Konfiguration auf. Eine CPU (Central Processing Unit bzw. zentrale Recheneinheit) 3 verwendet ein ROM (Read-Only Memory bzw. Nur-Lese-Speicher) 4 und ein RAM (Random Access Memory bzw. Schreib-Lese-Speicher) 5, um ein gespeichertes Steuerprogramm, das im ROM 4 gespeichert und aus dem ROM 4 gelesen wird, unter Verwendung des RAM 5 als ein Arbeitsbereich auszuführen, wobei die Ausführung des gespeicherten Programms eine Verarbeitung einer gewünschten Anwendung ermöglicht.
-
Ferner greift die CPU 3 auf jede von peripheren Schaltungen, wie beispielsweise ein Timer 7, ein A/D-(Analog-zu-Digital)-Wandler (ADC) 8, eine SENT-(Single-Edge Nibble Transmission)-Kommunikationseinheit 9, eine CAN-(Controller Area Network)-Kommunikationseinheit 10, ein PWM-(Pulse Width Modulation bzw. Pulsweitenmodulation)-Signalgenerator 11 und dergleichen, über einen Bus 6 zu. Die Bezeichnung ”CAN” beschreibt ein ”Controller Area Network” und ist eine eingetragene Marke.
-
Ein Lockstep-Kern 12 greift, gleich der CPU 3, auf jede der peripheren Schaltungen zu, einschließlich des vorstehend beschriebenen ROM 3 bis zu dem vorstehend beschriebenen PWM-Signalgenerator 11 und dergleichen und überwacht die CPU 3, indem er den gleichen Prozess wie die CPU 3 ausführt. Wenn der Lockstep-Kern 12 eine Diskrepanz in einem Vergleichsergebnis, d. h. einem Vergleich zwischen dem Verarbeitungsergebnis der CPU 3 und dem Verarbeitungsergebnis des Lockstep-Kerns 12, ermittelt, bestimmt der Lockstep-Kern 12, dass ein Fehler in der CPU 3 vorliegt und gibt der Lockstep-Kern 12 fehlerbedingte Information aus.
-
Die peripheren Schaltungen in jedem der Verarbeitungsblöcke 2 sind für einen Zugriff von der CPU 3 in demselben Verarbeitungsblock ausgelegt, und der Verarbeitungsblock 2_0 und der Verarbeitungsblock 2_1 stören sich nicht gegenseitig. Nachstehend ist der Mikrocontroller 1 einfach als der Controller 1 bezeichnet.
-
Der Controller 1 weist zwei Taktzuführungseinheiten 13_0 und 13_1 auf. Taktsignale, die von diesen Taktzuführungseinheiten 13_0 und 13_1 bereitgestellt werden, werden an zwei Schaltkreise 14_0 und 14_1 gegeben, und die zwei Schaltkreise 14_0 und 14_1 geben ein Taktsignal von einer der beiden Taktzuführungseinheiten 13_0 und 13_1 in schaltbarer Weise an die zwei Verarbeitungsblöcke 2_0 und 2_1.
-
Wie in 2 gezeigt, weist eine ECU (elektronische Steuereinheit) 15 den Controller 1 auf und führt die ECU 15 eine Antriebssteuerung eines Motors 16 aus, der eine Servolenkanlage bildet (EPS-ECU).
-
Die ECU 15 führt eine Antriebssteuerung des Motors 16, praxisnaher beschrieben, über Ansteuerschaltungen (nicht gezeigt), wie beispielsweise eine H-Brücke, ein Inverter und dergleichen, aus.
-
Der Motor 16 ist gleichbedeutend mit einem Aktuator in den Ansprüchen. Der Statorwicklungsdraht des Motors 16 ist gemultiplext (d. h., geduplext bzw. doppelt vorgesehen), und die zwei Verarbeitungsblöcke 2_0 und 2_1 des Controllers 1 nehmen die Energieversorgung zu den zwei Statorwicklungsdrähten jeweils unabhängig vor. Die Antriebssteuerung ist ebenso gemultiplext (d. h., geduplext bzw. doppelt vorgesehen), anhand einer Konfiguration, bei der die Verarbeitungsblöcke 2_0 und 2_1 den gleichen Steuerinhalt zur Ansteuerung des Motors 16 ausführen. Solch eine Konfiguration ist als ein Verfahren zweier unabhängiger Systeme bezeichnet. Es sollte beachtet werden, dass das Umschalten der Schaltkreise 14 ebenso durch die ECU 15 erfolgt.
-
Wenn die ECU 15 eine Kommunikation mit drei ECUs 17_0, 17_1, 17_2 auf einer Befehlsseite über ein CAN ausführt, wird eine Kommunikationsleitung 18 zwischen den drei ECUs 17_0 bis 17_2 und den zwei Verarbeitungsblöcken 2_0 und 2_1 ebenso geduplext. D. h., die CAN-Kommunikationseinheit 10 in jeder der drei ECUs 17_0 bis 17_2 ist dazu ausgelegt, mit solch einer geduplexten Konfiguration kompatibel zu sein. Die ECU 17 ist gleichbedeutend mit einem externen Controller in den Ansprüchen.
-
Die ECU 15 empfängt, von der ECU 17_0 bis 17_2, einen Lenkwinkeländerungsbefehl für einen Fahrspurwechsel eines Fahrzeugs, um einem Hindernis oder dergleichen auszuweichen.
-
Zwei Sensoren 19_0 und 19_1 sind Sensoren, die beispielsweise einen Lenkwinkel eines Lenkrades erfassen, und die Sensorsignale von den Sensoren 19_0 und 19_1 werden per SENT-Kommunikation an jeden der Verarbeitungsblöcke 2_0 und 2_1 gegeben. Eine Kommunikationsleitung 20 der SENT-Kommunikation ist zur Kommunikation mit jedem der Verarbeitungsblöcke 2_0 und 2_1 ebenso geduplext.
-
Nachstehend ist der Betrieb der vorliegenden Ausführungsform beschrieben.
-
Jeder der Verarbeitungsblöcke 2_0 und 2_1 führt einen in der 3 gezeigten Prozess aus. Wenn die CPU 3 beispielsweise unter Verwendung des Lockstep-Kerns 12 erfasst, dass ein Fehler in einem Verarbeitungsblock 2 verursacht wird (S1: JA), stoppt der fehlerbehaftete Verarbeitungsblock 2 den Betrieb (S2). D. h., wenn der Verarbeitungsblock 2_0 ausfällt, erfolgt eine Antriebssteuerung des Motors 16 folglich nur durch den Verarbeitungsblock 2_1.
-
In solch einem Fall kann, wenn eine Abnahme in der Anzahl der Antriebsverarbeitungsblöcke zur gleichzeitigen Ansteuerung des Motors 16 von ”2” auf ”1” ein Problem, wie beispielsweise eine unzureichende Ausgangsleistung des Motors 16, verursacht, die Ausgangsleistung des Motors 16 zur Kompensierung abgestimmt, d. h. verdoppelt werden. Es sollte beachtet werden, dass ein Fehler von einem der beiden Verarbeitungsblöcke 2 einem Nutzer gemeldet werden kann, indem Fehlerinformation an die ECU 17 auf der Befehlsseite gesendet wird, obgleich dies optional ist (S3).
-
Ferner kann die Fehlererfassung in Schritt S1 nicht nur durch den Lockstep-Kern 12 erfolgen, sondern ebenso anhand der folgenden Verfahren.
- – Wenn eine Speicherabnormität beispielsweise per ECC (Error Checker und Corrector) über das RAM 5 erfasst wird, wird der Betrieb eines Verarbeitungsblocks per Software gestoppt.
- – Wenn eine Abnormität in der CAN-Kommunikation durch die ECU 17 erfasst wird, wird ein Betriebsstoppbefehl an den Verarbeitungsblock 2 gesendet. In solch einem Fall ist die ECU 17 gleichbedeutend mit einer Kommunikationsüberwachungseinheit in den Ansprüchen.
- – Wenn bestimmt wird, dass ein bestimmter Fehler vorliegt, basierend auf einem unerwarteten Ablauf von Software, wird der Betrieb eines Verarbeitungsblocks per Software gestoppt.
-
Gemäß der vorliegenden Ausführungsform ist der Controller 1 mit zwei Verarbeitungsblöcken 2 ausgerüstet, in denen jeweils die CPU 3 und deren periphere Schaltung angeordnet sind, so wie es vorstehend beschrieben ist. Die peripheren Schaltungen, d. h. das ROM 4 bis zu dem PWM-Signalgenerator 11, sind derart konfiguriert, dass sie nur von der CPU 3 zugreifbar zw. zugänglich sind, die in demselben Verarbeitungsblock 2 wie die jeweiligen peripheren Schaltungen angeordnet ist.
-
Hierdurch kann, auch wenn ein Fehler in einem der Verarbeitungsblöcke 2 auftritt, der von dem fehlerbehafteten bzw. ausgefallenen Verarbeitungsblock 2 ausgeführte Prozess problemlos von dem anderen Verarbeitungsblock 2 ausgeführt, d. h. an den anderen Verarbeitungsblock 2 delegiert werden. Ferner wird, da der Verarbeitungsblock 2 mit dem Lockstep-Kern 12 als eine der peripheren Schaltungen ausgerüstet ist, ein Fehler des Verarbeitungsblocks 2 durch den Betrieb des Lockstep-Kerns 12 überwacht.
-
Darüber hinaus weist der Controller 1 die zwei Taktzuführungseinheiten 13 auf und ist das Taktsignal von einer der beiden Taktzuführungseinheiten 13 dazu ausgelegt, über den Schaltkreis 14 selektiv an jeden der Verarbeitungsblöcke 2 gegeben zu werden. Folglich ist eine Taktsignalzuführung ebenso redundant ausgelegt.
-
Ferner ist die Kommunikationsleitung 18 gemultiplext, um das Signal von der ECU 17 auf der Befehlsseite an den Controller 1 zu geben, wobei der Motor 16, d. h. ein Motor, auf der Grundlage des Signals von der ECU 17 unter Verwendung der beiden Verarbeitungsblöcke 2 angetrieben wird.
-
Hierdurch ist, auch wenn ein Fehler in einem der beiden Verarbeitungsblöcke 2 der ECU 15 verursacht wird, die Antriebssteuerung des Motors 16 durch den anderen der Verarbeitungsblöcke 2 fortsetzbar. Ferner wird, per Überwachung einer CAN-Kommunikation unter Verwendung der ECU 17, wenn eine Abnormität in der Kommunikation verursacht wird, das Umschalten der Verarbeitungsblöcke 2 ermöglicht.
-
(Zweite Ausführungsform)
-
Nachstehend sind Komponenten gleich denjenigen in der ersten Ausführungsform mit den gleichen Bezugszeichen versehen und nicht wiederholt beschrieben.
-
Wie in 4 gezeigt, ist eine ECU 21 in der zweiten Ausführungsform mit einem Controller 22 anstelle des Controllers 1 ausgerüstet.
-
Wie in 5 gezeigt, ist der Controller 22 mit einem gemeinsamen RAM 23 ausgerüstet, das gleichbedeutend mit einem gemeinsamen Speicher in den Ansprüchen ist, und weist die CPU 3 in jedem der Verarbeitungsblöcke 24_0 und 24_1 einen Zugriff auf das gemeinsame RAM 23 über den Bus 6 und eine Vermittlungseinheit (Arbitrator, nicht gezeigt) in jedem der Blöcke 24 auf.
-
Jeder der Verarbeitungsblöcke 24 weist eine E/A (Eingabe/Ausgabe) 25, die mit dem Bus 6 verbunden ist, als eine der peripheren Schaltungen auf. Wie in 4 gezeigt, ist, an einer Position zwischen jedem der Verarbeitungsblöcke 24 und dem Motor 16, ein Schalter 26 zum Trennen eines Ausgangs angeordnet, wobei die CPU 3 das EIN/AUS des Schalters 26 in Übereinstimmung mit einem im Register gespeicherten Setup steuert.
-
Nachstehend ist der Betrieb der zweiten Ausführungsform beschrieben.
-
Jeder der zwei Verarbeitungsblöcke 24 führt gleichzeitig den gleichen Steuerinhalt aus, der gleich der ersten Ausführungsform ist. Ferner führt, in der zweiten Ausführungsform, einer der beiden Verarbeitungsblöcke 24 eine Antriebssteuerung des Motors 16 aus, was als ein sogenanntes Hot-Standby-(sofort einsetzbarer Ersatz)-Verfahren bezeichnet wird. Nachstehend ist der Verarbeitungsblock 24, der eine Antriebssteuerung des Motors 16 ausführt, als ein ”Steuerblock” bezeichnet, und der Verarbeitungsblock 24, der einen Standby-Zustand aufweist, ohne eine Antriebssteuerung des Motors 16 auszuführen, als ein ”Standby-Block” bezeichnet.
-
Im Anfangszustand versetzt der Steuerblock 24 den Schalter 26 in einen EIN-Zustand und versetzt der Standby-Block 24 den Schalter 26 in einen AUS-Zustand. Anschließend meldet der Steuerblock 24, wie in 6 gezeigt, wenn ein Fehler auf eine Weise gleich derjenigen in Schritt S1 erfasst wird (S11: JA), das Auftreten eines Fehlers an den Standby-Block 24 (S12). Solch eine Meldung kann erfolgen, indem ein ”Fehlerauftritts-Flag” an einer bestimmten Adresse des gemeinsamen RAM 23, die vorher festgelegt wird, gesetzt wird. Anschließend wird, indem der Schalter 26 in einen AUS-Zustand versetzt wird, um ”eine Trennung des Ausgangs zu validieren” (S13)”, der Prozess beendet.
-
Demgegenüber fragt der Standby-Block 24, wie in 7 gezeigt, die vorstehend erwähnte bestimmte Adresse des gemeinsamen RAM 23 ab, auf eine Fehlermeldung, die das Auftreten eines Fehlers anzeigt, vom Steuerblock 24 wartend (S14).
-
Anschließend versetzt der Standby-Block 24, auf eine Bestätigung, dass das Fehlerauftritts-Flag gesetzt ist (S14: JA), den Schalter 26 in einen EIN-Zustand, um ”die Trennung des Ausgangs für ungültig zu erklären” (S15). Auf diese Weise wird der Standby-Block 24 zu dem Steuerblock 24. Anschließend kann, wie in Schritt S3, eine Benachrichtigung an den Benutzer gegeben werden (S16), was jedoch optional ist.
-
Gemäß der zweiten Ausführungsform wird, wie vorstehend beschrieben, indem das gemeinsame RAM 23 vorgesehen wird, auf das die CPU 3, die in jedem der Verarbeitungsblöcke 24 angeordnet ist, gemeinsam zugreifen kann, für den Fall, dass ein Fehler in einem der Verarbeitungsblöcke 24 auftritt, solch ein Ereignis über das gemeinsame RAM 23 an den anderen Verarbeitungsblock 24 gesendet, um so eine Delegierung der Ausführung des Prozesses an den anderen Verarbeitungsblock 24 zu ermöglichen.
-
(Dritte Ausführungsform)
-
In der dritten Ausführungsform führen, obgleich die ECU 21 gleich derjenigen in der zweiten Ausführungsform ist, die zwei Verarbeitungsblöcke 24 nicht den gleichen Prozess zur Steuerung desselben Motors 16 aus. D. h., während der Verarbeitungsblock 24_0 beispielsweise den Motor 16 steuert, führt der Verarbeitungsblock 24_1 eine Steuerung von anderen Steuerobjekten verschieden von dem Motor 16 aus, als eine Annahme. Anschließend wechselt der Controller 22 für den Fall, dass ein Fehler in dem Verarbeitungsblock 24_0 auftritt, zu einer sogenannten Degenerationssteuerung, indem er eine Steuerung des Motors 16 an den Verarbeitungsblock 24_1 delegiert.
-
Folglich schreibt der Verarbeitungsblock 24_0, während einer Antriebssteuerung des Motors 16, in das gemeinsame RAM 23, je nach Bedarf, Information, die für eine Delegierung der Antriebssteuerung des Motors 16 an den Verarbeitungsblock 24_1 erforderlich ist.
-
Anschließend wird, wenn ein Fehler im Verarbeitungsblock 24_0 erfasst wird, so wie es in der 8 gezeigt ist (S11: JA), das Auftreten eines Fehler an den Verarbeitungsblock 24_1 gemeldet (S12'). Hierauf folgend wird der Betrieb des Verarbeitungsblocks 24_0 gestoppt (S17).
-
Demgegenüber steuert, wie in 9 gezeigt, der Verarbeitungsblock 24_1 die anderen Steuerobjekte, während der Verarbeitungsblock 24_0 eine Antriebssteuerung des Motors 16 ausführt, wobei er überwacht, ob ihn irgendeine Fehlermeldung von dem Verarbeitungsblock 24_0 erreicht hat, gleich der zweiten Ausführungsform (S14').
-
Anschließend wird, wenn eine Fehlermeldung, die das Auftreten eines Fehlers anzeigt, von dem Verarbeitungsblock 24_0 empfangen wird (S14': JA), ein Betriebszustand zu der Degenerationssteuerung geschaltet (S18). In solch einem Fall liest der Verarbeitungsblock 24_1 die Information, die für eine Antriebssteuerung des Motors 16 erforderlich ist, aus dem gemeinsamen RAM 23, die durch den Verarbeitungsblock 24_0 dort hinein geschrieben wurde (S19).
-
Gemäß der dritten Ausführungsform ist das Degenerationssteuerverfahren, wie vorstehend beschrieben, von der ECU 21 ausführbar.
-
(Vierte Ausführungsform)
-
Obgleich eine ECU 31 der vierten Ausführungsform gemäß 10, gleich der dritten Ausführungsform, das Degenerationssteuerverfahren anwendet, weist die ECU 31 einen Controller 32 und eine externe integrierte Schaltung (IC) 33 zum Ausführen der Degenerationssteuerung auf.
-
Der Controller 32 weist zwei Verarbeitungsblöcke 34_0 und 34_1 auf, und der externe IC 33 führt eine Abnormitätsüberwachung und eine Fehlererfassung der zwei Verarbeitungsblöcke 34 zusammen mit der Bereitstellung eines Befehls zum Umschalten zu der Degenerationssteuerung und dergleichen aus.
-
Der externe IC 33 führt die Abnormitätsüberwachung der Verarbeitungsblöcke 34 beispielsweise anhand der folgenden Verfahren aus.
- – Gleich der Verwendung eines Watch-dog-Timers sendet jeder der Verarbeitungsblöcke 34 beispielsweise periodisch ein Impulssignal an den externen IC 33. Anschließend erfasst der externe IC 33 einen Fehler der Verarbeitungsblöcke 34, wenn ein Senden des Impulssignals stoppt oder der Sendezyklus fehlerhaft wird.
- – Wenn sich ein Kommunikationsformat der Kommunikation, die zwischen dem Verarbeitungsblock 34 und dem externen IC 33 erfolgt, von demjenigen unterscheidet, das im Voraus definiert wird, erfasst der externe IC 33 einen Fehler des Verarbeitungsblocks 34.
-
Nachstehend ist der Betrieb der vierten Ausführungsform beschrieben.
-
Gleich der dritten Ausführungsform steuert der Verarbeitungsblock 34_0 den Motor 16 und steuert der Verarbeitungsblock 34_1 die Steuerobjekte verschieden von dem Motor 16. Wie in 11 gezeigt, überwacht der externe IC 33, wie vorstehend beschrieben, ob ein Fehler in dem Verarbeitungsblock 34_0 aufgetreten ist (S21), und sendet der externe IC 33, wenn das Auftreten eines Fehlers erfasst wird (S21: JA), ein Befehlssignal an den Verarbeitungsblock 34_1, um ein Umschalten zu der Degenerationssteuerung zu erwirken (S22). Anschließend sendet der externe IC 33, an den Verarbeitungsblock 34_0, ein Stoppsignal, das den Verarbeitungsblock 34_0 anweist, den Betrieb zu stoppen (S23).
-
Wie in 12 gezeigt, stoppt der Verarbeitungsblock 34_0 den Betrieb (S25), wenn er das Stoppsignal von dem externen IC 33 empfängt (S24: JA).
-
Demgegenüber schaltet der Verarbeitungsblock 34_1, wie in 13 gezeigt, bei Empfang eines Signals, das das Umschalten zu der Degenerationssteuerung anweist, von dem externen IC 33 (S26: JA), zu der Degenerationssteuerung (S27). Anschließend erfolgen die gleichen Prozesse wie in Schritt S19 und in Schritt S16 (S28, S29). Es sollte beachtet werden, dass Prozesse verschieden von dem Hauptmerkmal der vierten Ausführungsform aus den Ablaufdiagrammen gemäß den 11 bis 13 ausgelassen sind.
-
Gemäß der vierten Ausführungsform ist, wie vorstehend beschrieben, da die ECU 31 mit dem externen IC 33 ausgerüstet ist und der Betrieb der Verarbeitungsblöcke 34 durch den externen IC 33 überwacht wird, das Umschalten zu der Degenerationssteuerung ausführbar, wenn ein Fehler in einem der Verarbeitungsblöcke 34 auftritt.
-
(Fünfte Ausführungsform)
-
Gemäß der fünften Ausführungsform erfolgt, beispielsweise unter Verwendung der ECU 31 der vierten Ausführungsform, eine Antriebssteuerung des Motors 16 durch einen der Verarbeitungsblöcke 34, wobei der andere der Verarbeitungsblöcke 34 seinen Betrieb stoppt. Die Bezugszeichen der Komponenten sind gleich denjenigen der zweiten Ausführungsform. In der fünften Ausführungsform wird ein sogenanntes Cold-Standby-Verfahren angewandt, bei dem, wenn in einem der Steuerblöcke 34 einen Fehler auftritt, ein Subjekt der Steuerung zu dem anderen Steuerblock 34 geschaltet wird, d. h. zu einem Standby-Steuerblock, um die Antriebssteuerung des Motors 16 auszuführen.
-
Nachstehend ist der Betrieb der fünften Ausführungsform beschrieben.
-
Der Verarbeitungsblock 34_0 wird beispielsweise als ein Steuerblock angenommen, und der Verarbeitungsblock 34_1 wird als ein Standby-Block angenommen. Wie in 14 gezeigt, startet der externe IC 33, wenn ein Fehler im Verarbeitungsblock 34_0 erfasst wird (S31: JA), einen Betrieb des Verarbeitungsblocks 34_1, indem er ein Wecksignal sendet (S32). Anschließend sendet der externe IC 33 ein Stoppsignal an den Verarbeitungsblock 34_0 und stoppt der Betrieb des Verarbeitungsblocks 34_0 (S33).
-
Wie in 15 gezeigt, stoppt der Verarbeitungsblock 34_0 den Betrieb (S35) bei Empfang des Stoppsignals (S34: JA). Wie in 16 gezeigt, startet der Verarbeitungsblock 34_1 den Betrieb (S37) bei Empfang des Wecksignals (S36: JA). Anschließend erfolgen die gleichen Prozesse wie in Schritt S19 und in Schritt S16 (S38, S39).
-
Gemäß der fünften Ausführungsform ist die ECU 31 in der Lage, das Cold-Standby-Verfahren auszuführen, so wie es vorstehend beschrieben ist.
-
(Sechste Ausführungsform)
-
Ein Controller 41 der sechsten Ausführungsform gemäß 17 weist eine Konfiguration ähnlich dem Controller 1 der ersten Ausführungsform auf, wobei sich der Controller 41 einzig im Taktsignalzuführungsverfahren unterscheidet.
-
Was die peripheren Schaltungen, wie beispielsweise den Bus 6 bis zu dem PWM-Signalgenerator 11 und dergleichen, betrifft, so beschreibt eine periphere Funktion 42 diese Schaltungen in kollektiver Weise.
-
In der sechsten Ausführungsform gibt eine der beiden Taktzuführungseinheiten 13_0 und 13_1 das Taktsignal an einen der beiden Verarbeitungsblöcke 2_0 und 2_1, ohne den Schalter 14 zu verwenden. Es ist beispielsweise nur eine der Taktzuführungseinheiten 13_0 und 13_1 dazu ausgelegt, zu arbeiten. In solch einem Fall kann der Taktpfad zwischen der Taktzuführungseinheit 13_0, oder 13_1, und den Verarbeitungsblöcke 2_0 und 2_1 ein gemeinsamer Pfad sein.
-
Gemäß der sechsten Ausführungsform wird, wie vorstehend beschrieben, wenn die zwei Taktzuführungseinheiten 13_0 und 13_1 vorgesehen sind, das Taktsignal von nur einer der Taktzuführungseinheiten 13 an jeden der Verarbeitungsblöcke 2_0 und 2_1 gegeben. Auf diese Weise wird das Taktsignalzuführungssystem oder Taktsignalzuführungsverfahren redundant ausgelegt.
-
(Siebte Ausführungsform)
-
Ein Controller 51 der siebten Ausführungsform gemäß 18 weist eine Konfiguration ähnlich dem Controller 41 der sechsten Ausführungsform auf, mit einem Unterschied einzig im Taktsignalzuführungsverfahren.
-
D. h., die Taktzuführungseinheit 13_0 gibt das Taktsignal an den Verarbeitungsblock 2_0, und die Taktzuführungseinheit 13_1 gibt das Taktsignal an den Verarbeitungsblock 2_1, in einer festen, d. h. nicht änderbaren Weise.
-
Gemäß der auf diese Weise konfigurierten Taktsignalzuführung ist, auch wenn eine der beiden Taktzuführungseinheiten 13_0 und 13_1 unterbrochen wird, der Prozess durch den Verarbeitungsblock 2 auf der anderen Seite fortsetzbar.
-
(Achte bis zehnte Ausführungsform)
-
Controllers 1A–1C der achten bis zehnten Ausführungsform gemäß den 19–21 sind Variationen der Details der Taktzuführungseinheit 13 im Controller 1 der ersten Ausführungsform.
-
Der Controller 1A der achten Ausführungsform gemäß 19 weist eine Konfiguration auf, bei der jede der Taktzuführungseinheiten 13A jeweils einen externen Oszillator 43 als eine Quelle für die Schwingung des Taktsignals verwendet.
-
Der Controller
1B der neunten Ausführungsform gemäß
20 weist eine Konfiguration auf, bei der jede der Taktzuführungseinheiten
13B jeweils einen integrierten MEMS-(Micro Electro-Mechanical Systems oder mikro-elektromechanische Systeme)-Oszillator
44 als eine Quelle für die Schwingung des Taktsignals aufweist. Bezüglich der detaillierten Konfiguration des MEMS-Oszillators
44 wird beispielsweise auf die Offenbarung der
JP 2009-200888 A oder dergleichen verwiesen.
-
Der Controller 1C der zehnten Ausführungsform gemäß 21 weist eine Konfiguration auf, bei der der Verarbeitungsblock 2_0 die Taktzuführungseinheit 13A verwendet und der Verarbeitungsblock 2_1 die Taktzuführungseinheit 13B verwendet.
-
Gemäß den Konfigurationen der achten bis zehnten Ausführungsform, die vorstehend beschrieben sind, sind die gleichen Effekte wie in der ersten Ausführungsform erzielbar.
-
(Elfte Ausführungsform)
-
Ein Controller 61 der elften Ausführungsform gemäß 22 weist eine Konfiguration mit einer Taktüberwachungseinheit 62 auf, die zu dem Controller 41 der sechsten Ausführungsform hinzugefügt ist.
-
Die Taktüberwachungseinheit 62 überwacht, ob der Schwingungsbetrieb der Taktzuführungseinheiten 13 normal ist, indem sie beispielsweise auf eine Schwingungsfrequenz Bezug nimmt. D. h., wenn eine Schwingungsfrequenz innerhalb eines zulässigen Bereichs von weniger als ± einigen Prozent bezüglich eines Referenzwerts liegt, wird bestimmt, dass der Schwingungsbetrieb normal ist (23, S41: NEIN).
-
Für den Fall, dass die Schwingungsfrequenz den zulässigen Bereich überschreitet und somit als fehlerhaft bestimmt wird (S41: JA), wird das normale Taktsignal an den Verarbeitungsblock 2 gegeben, an den das als fehlerhaft bestimmte Taktsignal gegeben wurde (S42), und, je nach Bedarf, der Benutzer benachrichtigt (S43).
-
Wie in 22 gezeigt, wird beispielsweise, wenn das Taktsignal im Anfangszustand von der Taktzuführungseinheit 13_0 an die Verarbeitungsblöcke 2_0 und 2_1 gegeben wird, angenommen, dass die Taktzuführungseinheit 13_0 als fehlerhaft bestimmt wird.
-
In diesem Fall stoppt die Taktüberwachungseinheit 62 den Betrieb der Taktzuführungseinheit 13_0 und schaltet die Taktüberwachungseinheit 62, indem sie eine Ausgabe des Taktsignals von der Taktzuführungseinheit 13_1 ermöglicht, den Betrieb dahingehend um, dass das Taktsignal von der Taktzuführungseinheit 13_1 an die Verarbeitungsblöcke 2_0 und 2_1 gegeben wird.
-
In der elften Ausführungsform wird, da der Controller 61 mit der Taktüberwachungseinheit 62 ausgerüstet ist, die, wie vorstehend beschrieben, überwacht, ob der Betrieb der Taktzuführungseinheiten 13 normal ist, dann, wenn der Betrieb der Taktzuführungseinheit 13, die das Taktsignal zuführt, fehlerhaft wird, die fehlerhafte Taktzuführungseinheit 13 zu der normalen Taktzuführungseinheit 13 u geschaltet, um das normale Taktsignal zuzuführen.
-
(Zwölfte Ausführungsform)
-
Die zwölfte Ausführungsform gemäß 24 weist eine Konfiguration auf, bei der der Controller 41 der sechsten Ausführungsform die Taktüberwachungseinheit 62 außerhalb des Controllers 41 aufweist. In solch einem Fall dient die Taktüberwachungseinheit 62 beispielsweise als ein Element der ECU, die dazu ausgelegt ist, den Controller 41 aufzuweisen. Bei solch einer Konfiguration, bei der die Taktüberwachungseinheit 62 als eine externe Vorrichtung zu dem Controller 41 vorgesehen ist, wird der Taktüberwachungseinheit 62 ermöglicht, den Betrieb der Taktzuführungseinheit 13 zu überwachen, ohne durch einen internen Zustand des Controllers 41 beeinflusst zu werden.
-
Obgleich die vorliegende Erfindung vorstehend in Verbindung mit ihren bevorzugten Ausführungsformen unter Bezugnahme auf die beigefügten Zeichnungen beschrieben ist, sollte beachtet werden, dass Fachleuten verschiedene Änderungen und Modifikationen ersichtlich sein werden.
-
Es können beispielsweise mehr als drei Verarbeitungsblöcke 2 vorgesehen sein.
-
Das Design der peripheren Schaltungen im Controller kann als eine Designangelegenheit auf beliebige Weise geändert werden.
-
Die siebte Ausführungsform kann die achte und die neunte Ausführungsform kombiniert enthalten.
-
Der vom erfindungsgemäßen Mikrocontroller angesteuerte Aktuator ist nicht zwangsläufig auf den Motor beschränkt. Der vorliegende Mikrocontroller kann ferner auf eine Vorrichtung verschieden von dem elektrischen Servolenkungssystem angewandt werden.
-
Solche Änderungen, Modifikationen und zusammengefassten Schemata sollen als mit im Schutzumfang der vorliegenden Erfindung, so wie er in den beigefügten Ansprüchen dargelegt ist, beinhaltet verstanden werden.
-
Vorstehend sind ein Mikrocontroller und eine elektronische Steuereinheit beschrieben.
-
Ein Mikrocontroller 1 weist zwei Verarbeitungsblöcke 2 auf, die jeweils eine CPU 3 und eine periphere Schaltung aufweisen, wobei ein Zugriff auf die periphere Schaltung in jedem der Verarbeitungsblöcke 2, d. h. auf ein ROM 3 oder einen PWM-Signalgenerator 11, nur von der CPU 3 aus möglich ist, die in demselben Verarbeitungsblock 2 angeordnet ist. Hierdurch kann eine Fail-Safe-Funktionalität des Mikrocontrollers verbessert werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 2012-73748 [0002]
- JP 2009-200888 A [0091]