DE102016200413A1 - Mikrocomputer - Google Patents

Mikrocomputer Download PDF

Info

Publication number
DE102016200413A1
DE102016200413A1 DE102016200413.1A DE102016200413A DE102016200413A1 DE 102016200413 A1 DE102016200413 A1 DE 102016200413A1 DE 102016200413 A DE102016200413 A DE 102016200413A DE 102016200413 A1 DE102016200413 A1 DE 102016200413A1
Authority
DE
Germany
Prior art keywords
program
asil
memory
microcomputer
validity check
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102016200413.1A
Other languages
English (en)
Inventor
Kazuhiro Uehara
Soichiro Arai
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Publication of DE102016200413A1 publication Critical patent/DE102016200413A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

Ein Speicher speichert mehrere Programme QM, ASIL_A und ASIL_C, die entsprechend Funktionssicherheitsebenen in einem Schutzzustand klassifiziert sind, der eine Schutzfunktion aktiviert, die eine Ausführung eines Programms verhindert. Ein Arithmetikprozessor überprüft eine Gültigkeit der Programme QM, ASIL_A und ASIL_C programmweise in der Reihenfolge ausgehend von dem Programm QM, dessen Funktionssicherheitsebene niedrig ist (S120, S150, S180). Wenn die Gültigkeitsüberprüfung bestimmt, dass das Programm normal ist, deaktiviert der Arithmetikprozessor die Schutzfunktion für das Programm (S130, S160 und S190) und führt dann das Programm aus (S140, S170, S00).

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft einen Mikrocomputer, der eine Gültigkeit eines Programms überprüft und dann das Programm ausführt.
  • STAND DER TECHNIK
  • Ein Mikrocomputer, der mehrere CPUs (Kerne) enthält, wurde vorgeschlagen, der bewirkt, dass die CPUs dasselbe Programm ausführen, und die Ausführungsergebnisse miteinander vergleicht, um eine Anomalie in den CPUs zu erfassen (siehe beispielsweise JP 2013-084219 A ). Dieser Mikrocomputer kann eine Anomalie erfassen, die in einer von zwei CPUs auftritt. Wenn im Gegensatz dazu nur eine CPU enthalten ist und ein illegales Programm in einem Speicher gespeichert ist, wird das illegale Programm nicht erfasst, sodass die CPU das illegale Programm möglicherweise ausführt. Um dieses zu verhindern, kann gemäß einem ersten Beispiel, wenn ein Programm in einen Speicher geschrieben wird, ein Flag zum Überprüfen einer Gültigkeit in demselben Speicherbereich wie das Programm gespeichert werden. Zu dem Zeitpunkt der Ausführung des Programms kann bestimmt werden, ob das Flag normal ist oder nicht.
  • Wenn das Flag normal ist, wird bestimmt, dass das Programm, das in demselben Speicherbereich gespeichert ist, normal ist, was eine Ausführung des Programms ermöglicht bzw. erlaubt. Wenn das Flag nicht normal ist, wird die Ausführung des Programms verhindert bzw. verboten.
  • Auf ähnliche Weise kann gemäß einem zweiten Beispiel, um einen Programmstart zu gewährleisten, ein gesamtes Programm, das in dem Speicher gespeichert ist, verwendet werden, um einen Wert zur Gültigkeitsüberprüfung zu berechnen. Eine Bestimmung, ob der Berechnungswert ein normaler Wert ist, ermöglicht die Überprüfung der Gültigkeit des Programms.
  • ZUSAMMENFASSUNG
  • Bei dem ersten Beispiel kann jedoch sogar dann, wenn kein legitimes Programm in einen Speicher geschrieben wird, eine Anomalie wie beispielsweise eine Bitverstümmelung dazu führen, dass das Flag zur Gültigkeitsüberprüfung ausdrückt, dass das Programm nicht normal ist. Dieses verhindert, dass die Gültigkeitsprüfung normal ausgeführt wird, was die Ausführung des illegalen Programms ermöglicht.
  • In dem zweiten Beispiel wird die Gültigkeit durch das ganze Programm bestimmt, was die Ausführung eines illegalen Programms verhindert. Dieses benötigt jedoch Zeit, um die Gültigkeit zu bestimmen, was beinhaltet, dass sich eine Verzögerungszeit anschließend an eine Aktivierung (Energie-Ein bzw. Einschalten der Energiezufuhr) eines Mikrocomputers bis zu der Ausführung des Programms (insbesondere einer Freigabe eines Energie-Ein-Rücksetzzustands folgend) erhöht.
  • Es ist eine Aufgabe der vorliegenden Erfindung, einen Mikrocomputer zu schaffen, der eine Gültigkeit eines Programms genau bestimmen kann und außerdem verhindern kann, dass die Gültigkeitsüberprüfung eine Zeitverzögerung bis zur Ausführung des Programms erhöht.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Mikrocomputer geschaffen, der einen Speicher und einen Arithmetikprozessor enthält. Der Speicher speichert ein Programm in einem Schutzzustand bzw. geschützten Zustand, der eine Schutzfunktion ermöglicht bzw. aktiviert, die eine Ausführung des Programms verhindert. Der Arithmetikprozessor führt eine Gültigkeitsüberprüfung für das Programm, das in dem Speicher gespeichert ist, hinsichtlich dessen durch, ob das Programm keine Anomalie aufweist, und sperrt bzw. deaktiviert die Schutzfunktion, wenn durch die Gültigkeitsüberprüfung bestimmt wird, dass das Programm keine Anomalie aufweist, und führt dann das Programm aus. Hier speichert der Speicher mehrere Programme, die entsprechend von Funktionssicherheitsebenen in dem Schutzzustand, der die Schutzfunktion aktiviert, klassifiziert sind. Der Arithmetikprozessor führt die Gültigkeitsüberprüfung der Programme programmweise nacheinander in einer Reihenfolge von einem Programm, dessen Funktionssicherheitsebene bzw. -niveau niedrig ist, durch und sperrt bzw. deaktiviert die Schutzfunktion für ein Programm, wenn durch die Gültigkeitsüberprüfung bestimmt wird, dass das Programm keine Anomalie aufweist, und führt dann das Programm aus.
  • Dieser Aspekt kann die Verzögerungszeit von einer Aktivierung eines Mikrocomputers bis zu einer Ausführung eines Programms im Vergleich zu einem Fall verkürzen, in dem sämtliche Programme, die von einem Arithmetikprozessor auszuführen sind, insgesamt in einem Speicher gespeichert werden, und eine Gültigkeitsüberprüfung ausgeführt wird.
  • Der Aspekt führt die Gültigkeitsüberprüfung von Programmen in der Reihenfolge von einem Programm, dessen Funktionssicherheitsebene niedrig ist, aus. Ein Teil eines Programms kann eine Anomalie aufweisen, und diese Anomalie kann mittels der ersten Gültigkeitsüberprüfung nicht erfasst werden, was eine Ausführung des entsprechenden Programms ermöglicht. Sogar in einem derartigen Fall kann eine Unannehmlichkeit, die dementsprechend auftritt, minimiert werden.
  • Das heißt, der Aspekt der vorliegenden Erfindung führt die Gültigkeitsüberprüfung von Programmen in einer Reihenfolge aus; diese Konfiguration kann eine Anomalie eines Programms erfassen, eine Ausführung des Programms stoppen und ein Unterprogramm zur Ausfallsicherung ausführen.
  • Außerdem kann der Aspekt daher eine Verzögerungszeit von einer Aktivierung eines Mikrocomputers bis zu der Ausführung des Programms verkürzen, während eine Verschlechterung der Sicherheit aufgrund der Ausführung eines illegalen Programms verhindert wird.
  • Der Mikrocomputer des Aspektes kann beispielsweise eine Steuerung zum sicheren Steuern verschiedener Steuerziele wie beispielsweise eine elektronische Steuereinheit, die in einem Fahrzeug montiert ist, verwenden. Dieser Fall kann eine Verzögerungszeit bis zu dem Start der Steuerung des Steuerziels ab der Freigabe (Release) eines Energie-Ein-Rücksetzzustands (Power-On-Reset) eines Mikrocomputers nach dem Start einer Energiezufuhr zu der Steuerung verkürzen.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die obigen und weitere Aufgaben, Merkmale sowie die Vorteile der vorliegenden Erfindung werden anhand der folgenden detaillierten Beschreibung mit Bezug auf die zugehörigen Zeichnungen deutlich. Es zeigen:
  • 1 ein Blockdiagramm, das eine Konfiguration einer elektronischen Steuereinheit einer Ausführungsform darstellt;
  • 2 ein Flussdiagramm, das eine Programmausführung eines Mikrocomputers darstellt;
  • 3 ein Zeitdiagramm, das Änderungen eines Speicherschutzzustands in Verbindung mit einer Ausführung eines Programms darstellt; und
  • 4 ein Zeitdiagramm, das die Beziehung zwischen einer Gültigkeitsüberprüfung, die für ein jeweiliges Programm durchgeführt wird, und einem Startzeitpunkt eines jeweiligen Programms darstellt.
  • DETAILLIERTE BESCHREBUNG
  • 1 stellt eine elektronische Steuereinheit (ECU) 10 einer Ausführungsform der vorliegenden Erfindung dar. Die ECU 10, die in einem Fahrzeug montiert sein kann, um fahrzeugeigene Einheiten wie beispielsweise einen Verbrennungsmotor und ein Getriebe als Steuerziele 2 zu steuern, enthält einen Mikrocomputer 20 als eine Rechenvorrichtung für die Steuerung.
  • Die ECU 10 enthält eine Eingangsschaltung 14 zum Empfangen von Erfassungssignalen von verschiedenen Sensoren 4, die in dem Steuerziel 2 angeordnet sind, und eine Ausgangsschaltung 16 zum Ausgeben von Steuersignalen zum Ansteuern eines Aktuators 6, der in dem Steuerziel 2 angeordnet ist.
  • Die ECU 10 enthält außerdem eine Kommunikationsschaltung 18, die mit anderen Steuervorrichtungen oder einem externen Server über ein Netzwerk 8, beispielsweise ein fahrzeugeigenes LAN, kommuniziert, und eine Energieversorgungsschaltung 12, die eine elektrische Energie von einer fahrzeugeigenen Batterie (nicht gezeigt) empfängt und eine Energieversorgungsspannung Vcc zum Ansteuern von internen Schaltungen erzeugt.
  • Der Mikrocomputer 20 enthält eine CPU 22, einen RAM 24, einen Flash-Speicher 26, eine Eingangs-/Ausgangseinheit 28 und eine Busleitung 29, die diese Einheiten miteinander verbindet.
  • Die Eingangsschaltung 14, die Ausgangsschaltung 16 und die Kommunikationsschaltung 18 sind mit der Eingangs-/Ausgangseinheit 28 in dem Mikrocomputer 20 verbunden. Der Mikrocomputer 20 holt verschiedene Informationen wie beispielsweise einen Betriebszustand des Steuerziels 2 von der Eingangsschaltung 14 und der Kommunikationsschaltung 18 und berechnet eine Steuergröße des Steuerziels 2.
  • Der Mikrocomputer 20 gibt ein Steuersignal entsprechend der berechneten Steuergröße an/über die Ausgangsschaltung 16 aus, um den Aktuator 6 in dem Steuerziel 2 anzusteuern, das Steuerziel 2 anzusteuern, und das Steuerziel 2 in einen vorbestimmten Zustand zu steuern.
  • Programme, die von der CPU 22 auszuführen sind und ein Steuerprogramm zum Steuern des Steuerziels 2 enthalten, sind programmweise in dem Flash-Speicher 26 eines mit Daten wieder beschreibbaren nichtflüchtigen Speichers gespeichert. Derartige Programme werden in dem Flash-Speicher 26 als entsprechend von Funktionssicherheitsebenen in mehrere Arten klassifiziert gespeichert.
  • Die Funktionssicherheitsebene gibt die Anforderung hinsichtlich der Funktionalität und der Sicherheit an. Wenn ein Programm wichtiger ist und eine höhere Funktionalität und Sicherheit aufweisen muss, ist die Funktionssicherheitsebene, die dem Programm zugewiesen ist, höher. Die Ausführungsform stellt die Funktionssicherheitsebene in Übereinstimmung mit dem Funktionssicherheitsstandard ”ISO26262” für Fahrzeuge ein, die von der IEC61508 hergeleitet wird, die ein Funktionssicherheitsstandard für die Industrie ist.
  • Der Funktionssicherheitsstandard ”ISO26262” klassifiziert mögliche Risiken der Funktionen eines Fahrzeugs durch Zuweisen einer ASIL (Automotive Safety Integrity Level: Kraftfahrzeugsicherheitsintegritätsebene bzw. -niveau), die Klassifikationsebenen in einem weiten Bereich von QM (Qualitätsmanagement: keine Beziehung zur Sicherheit) bis ASIL_D (Beziehung zur Sicherheit ist maximal) aufweist. Deren Höhe (Größe) wird entsprechend QM < ASIL_A < ASIL_B < ASIL_C < ASIL_D ausgedrückt.
  • In der Ausführungsform wird unter den Programmen, die von dem Mikrocomputer 20 ausgeführt werden, ein Programm, das die geringste Beziehung zur Sicherheit der Steuerung aufweist (beispielsweise ein Programm zur Anfangseinstellung eines allgemeinen Registers in dem Mikrocomputer 20) als QM in dem Flash-Speicher 26 gespeichert.
  • Programme, die irgendeine Beziehung zur Sicherheit der Steuerung aufweisen, werden als ASIL_A, ASIL_B, ... entsprechend einer benötigten Funktionssicherheitsebene klassifiziert und in dem Flash-Speicher 26 gespeichert.
  • In 1 drückt (*) bei den jeweiligen Ebenen aus, dass die Daten Programmdaten sind. Im Folgenden werden Programme beschrieben, die von der CPU 22 in drei Ebenen QM, ASIL_A und ASIL_C in der Reihenfolge ausgehend von der unteren Ebene klassifiziert werden.
  • Jedem der klassifizierten Programme QM, ASIL_A und ASIL_C wird ein Erwartungswert M (M1, M2 und M3 in 1) zum Bestimmen einer Gültigkeit (Gültigkeitsüberprüfung) hinsichtlich dessen, ob Programmdaten, die in dem Flash-Speicher 26 gespeichert sind, normal sind oder nicht, zugewiesen.
  • Der Erwartungswert M wird in demselben Speicherbereich in dem Flash-Speicher 26 wie die Programmdaten der jeweiligen Programme QM, ASIL_A und ASIL_C gespeichert.
  • Um die Gültigkeit der jeweiligen Programme QM, ASIL_A und ASIL_C noch genauer zu bestimmen, berechnet die Ausführungsform einen Bestimmungswert auf der Grundlage eines Zielprogramms und eines Programms auf einer niedrigeren Ebene als das Zielprogramm.
  • Wenn das entsprechende Programm sich nicht auf der untersten Ebene (in der Ausführungsform: QM) befindet, enthält der Erwartungswert M, der für jedes Programm eingestellt wird, demzufolge Daten des Programms auf der unteren Ebene.
  • Der Erwartungswert M und der Bestimmungswert für die Gültigkeitsüberprüfung werden aus Zielprogrammdaten unter Verwendung eines bekannten Kryptographiealgorithmus wie beispielsweise AES (Advanced Encryption Standard) oder MISTY berechnet. Die Ausführung der jeweiligen Programme QM, ASIL_A und ASIL_C wird durch eine Speicherschutzfunktion begrenzt (geschützt), die in jedem der jeweiligen Speicherbereiche in dem Flash-Speicher 26 eingestellt (das heißt freigegeben) ist.
  • Die Speicherschutzfunktion kann eine allgemeine Speicherschutzfunktion zum Schützen eines Lesens/Schreibens von/in einem/einen Speicher, eine Schutzfunktion (Ausführungsschutz), die eine Ausführung eines Programms durch Schreiben einer nicht ausführbaren Markierung in einen Speicherbereich verhindert, oder einen Ausführungsschutz eines Programms, das ein Betriebssystem oder Sicherheitssoftware verwendet, verwenden.
  • Nach dem Starten des Mikrocomputers 20 führt die CPU 22 eine Gültigkeitsüberprüfung in der Reihenfolge von dem Programm der niedrigsten Funktionssicherheitsebene (in der Ausführungsform: QM) durch, indem bestimmt wird, dass jedes der Programme, die in dem Flash-Speicher 26 gespeichert sind, normal ist oder nicht.
  • Wenn durch die Gültigkeitsüberprüfung bestimmt wird, dass ein Programm normal ist, gibt die CPU 22 die Schutzfunktion für das Programm frei (das heißt deaktiviert oder löscht sie) und führt dann das Programm aus. Wenn durch die Gültigkeitsüberprüfung bestimmt wird, dass ein Programm anormal ist, führt die CPU 22 einen vorbestimmten Ausfallsicherungsprozess durch.
  • Im Folgenden wird eine Prozedur einer Ausführung der jeweiligen Programme in dem Flash-Speicher 26 nach dem Starten des Mikrocomputers 20 mittels der CPU 22 anhand des Flussdiagramms der 2 beschrieben.
  • Die ECU 10 weist eine Energie-Ein-Rücksetzen-Schaltung 19 auf, die den Mikrocomputer 20 in einem Rücksetzzustand für eine Zeitdauer hält, die von der Energiezufuhr von einer fahrzeugeigenen Batterie zu der ECU 10 bis zu dem Zeitpunkt dauert, zu dem die Energieversorgungsspannung Vcc, die von der Energieversorgungsschaltung 12 erzeugt wird, stabil wird, um einen normalen Betrieb des Mikrocomputers 20 zu ermöglichen.
  • Wenn das Energie-Ein-Rücksetzen von der Energie-Ein-Rücksetzen-Schaltung 19 freigegeben (aufgehoben) wird, startet der Mikrocomputer 20 (das heißt die CPU 22) einen Programmstartbestimmungsprozess in 2 (siehe Zeitpunkt t0 in 3).
  • Gemäß 2 startet der Programmstartbestimmungsprozess zunächst in S110 einen Bestimmungswertberechnungsprozess zum Berechnen eines Bestimmungswertes einer Gültigkeit der Programme QM, ASIL_A und ASIL_C.
  • Der Bestimmungswertberechnungsprozess berechnet einen Bestimmungswert aus Programmdaten, die ein niederwertiges Programm enthalten, für jedes der Programme (Programm um Programm) unter Verwendung eines Kryptographiealgorithmus wie beispielsweise AES oder MISTY.
  • In S120 wird bis zu dem Zeitpunkt gewartet, für den ein Bestimmungswert für das Programm QM, dessen Funktionssicherheitsebene die niedrigste ist, von dem Bestimmungswertberechnungsprozess, der in S110 gestartet wurde, berechnet ist und eine Gültigkeitsüberprüfung zum Bestimmen, ob das Programm QM normal ist oder nicht, auf der Grundlage des Bestimmungswertes ausgeführt ist.
  • In S120 wird der Bestimmungswert für das Programm QM, der in dem Bestimmungswertberechnungsprozess berechnet wurde, mit dem Erwartungswert M1, der in demselben Speicherbereich wie das Programm QM gespeichert ist, verifiziert (oder verglichen). Wenn die Werte übereinstimmen, wird bestimmt, dass das Programm QM normal ist.
  • Wenn in S120 bestimmt wird, dass das Programm QM normal ist, mit anderen Worten, wenn es keine Anomalie (das heißt kein Problem mit der Gültigkeit) gibt, schreitet die Routine zu S130, bei dem die Speicherschutzfunktion für den Speicherbereich des Programms QM in dem Flash-Speicher 26 deaktiviert wird (siehe Zeitpunkt t1 in 3).
  • In S140 wird das Programm QM aus dem Speicherbereich in dem Flash-Speicher 26, für den die Speicherschutzfunktion deaktiviert ist, ausgelesen, und dann wird die Ausführung des Programms QM gestartet.
  • Nach dem Start der Ausführung des Programms QM in S140 wird in S150 auf die Berechnung des Bestimmungswertes für das Programm ASIL_A in dem Bestimmungswertberechnungsprozess gewartet. Auf der Grundlage des Bestimmungswertes wird die Gültigkeitsüberprüfung des Programms ASIL_A ausgeführt.
  • In S150 wird wie in S120 der Bestimmungswert für das Programm ASIL_A mit dem Erwartungswert M2, der in demselben Speicherbereich wie das Programm ASIL_A gespeichert ist, verglichen. Wenn die Werte übereinstimmen, wird bestimmt, dass das Programm ASIL_A normal ist.
  • Wenn in S150 bestimmt wird, dass das Programm ASIL_A normal ist, wird in S160 die Speicherschutzfunktion für den Speicherbereich des Programms ASIL_A in dem Flash-Speicher 26 deaktiviert (siehe Zeitpunkt t2 in 3).
  • In S170 wird das Programm ASIL_A aus dem Speicherbereich des Flash-Speichers 26, für den die Speicherschutzfunktion deaktiviert wurde, ausgelesen, und die Ausführung des Programms ASIL_A wird gestartet.
  • Nach dem Start der Ausführung des Programms ASIL_A in S170 wird in S180 auf die Berechnung des Bestimmungswertes für das Programm ASIL_C in dem Bestimmungswertberechnungsprozess gewartet. Auf der Grundlage des Bestimmungswertes wird die Gültigkeitsüberprüfung des Programms ASIL_C ausgeführt.
  • In S180 wird wie in S120 und S150 der Bestimmungswert für das Programm A-SIL_C mit dem Erwartungswert M3, der in demselben Speicherbereich wie das Programm ASIL_C gespeichert ist, verglichen. Wenn die Werte übereinstimmen, wird bestimmt, dass das Programm ASIL_C normal ist.
  • Wenn in S180 bestimmt wird, dass das Programm ASIL_C normal ist, wird in S190 die Speicherschutzfunktion für den Speicherbereich des Programms ASIL_C in dem Flash-Speicher 26 deaktiviert (siehe Zeitpunkt t3 in 3).
  • In S200 wird das Programm ASIL_C aus dem Speicherbereich des Flash-Speichers 26, für den die Speicherschutzfunktion freigegeben wurde, ausgelesen und dann die Ausführung des Programms ASIL_C gestartet.
  • Der Start der Ausführung des Programms ASIL_C gibt an, dass sämtliche Schutzfunktionen für sämtliche Programme in dem Flash-Speicher 26 deaktiviert sind und die Ausführung sämtlicher Programme gestartet wurde; somit endet der Programmstartbestimmungsprozess.
  • Wenn im Gegensatz dazu bestimmt wird, dass das Programm QM, ASIL_A oder ASIL_C in der Gültigkeitsüberprüfung in S120, S150 oder S180 nicht normal ist, schreitet die Routine zu S210.
  • In S210 wird die Ausführung eines vorbestimmten Ausfallsicherungsprozesses gestartet, um das Steuerziel 2 sicher zu steuern; somit endet der Programmstartbestimmungsprozess.
  • Wie es oben beschrieben wurde, werden in dem Mikrocomputer 20 der Ausführungsform die Programme QM, ASIL_A und ASIL_C, die entsprechend den Funktionssicherheitsebenen klassifiziert werden, in einem Zustand gespeichert, in dem die Schutzfunktion in dem Flash-Speicher 26 eingestellt (aktiviert) ist.
  • Wenn die CPU 22 ein Programm in dem Flash-Speicher 26 ausführt, wird in der Reihenfolge von dem Programm QM, dessen Funktionssicherheitsebene niedrig ist, über das Programm ASIL_A bis zu dem Programm ASIL_C bestimmt, ob die jeweiligen Programme normal sind oder nicht, wie es in 3 gezeigt ist.
  • Jedes Mal, wenn bestimmt wird, dass das jeweilige Programm QM, ASIL_A und ASIL_C normal ist (Zeitpunkte t1, t2, t3), deaktiviert die CPU 22 die Schutzfunktion für das entsprechende Programm und startet die Ausführung des Programms.
  • Der Mikrocomputer 20 der Ausführungsform kann somit die Verzögerungszeit von der Aktivierung des Mikrocomputers 20 bis zur Ausführung des Programms im Vergleich zu einem Fall verkürzen, in dem ein Programm, das auszuführen ist, insgesamt in einem Speicher gespeichert wird und die Gültigkeitsüberprüfung für das gesamte Programm ausgeführt wird.
  • Zu dem Zeitpunkt der Berechnung des Bestimmungswertes für die Gültigkeitsüberprüfung für die jeweiligen Programme QM, ASIL_A und ASIL_C verwendet die CPU 22 nicht nur Daten eines zu überprüfenden betreffenden Programms, sondern auch Daten eines Programms, dessen Funktionssicherheitsebene niedriger als diejenige des zu überprüfenden betreffenden Programms ist.
  • Die Gültigkeitsüberprüfung des Programms, dessen Funktionssicherheitsebene hoch ist, verwendet dadurch sämtliche Programme, deren Funktionssicherheitsebenen niedriger als diejenige des Programms sind; die Gültigkeitsüberprüfung des Programms kann somit genauer ausgeführt werden.
  • Die Berechnungszeit des Bestimmungswertes für ein Programm, dessen Funktionssicherheitsebene hoch ist, ist länger als diejenige des Bestimmungswertes für ein Programm, dessen Funktionssicherheitsebene niedriger als diejenige des Programms ist. Dieses kommt daher, dass die Datenmenge, die zur Berechnung des Bestimmungswertes verwendet wird, größer ist.
  • Der Bestimmungswert für die jeweiligen Programme QM, ASIL_A und ASIL_C wird durch den Bestimmungswertberechnungsprozess berechnet, der unmittelbar nach der Aktivierung des Mikrocomputers 20 startet. Wie es in 4 gezeigt ist, wird eine Berechnung des Bestimmungswertes für ein Programm, dessen Funktionssicherheitsebene hoch ist, auch während der Ausführung eines Programms fortgesetzt, dessen Funktionssicherheitsebene niedriger als diejenige des Programms ist.
  • Eine derartige Konfiguration kann verhindern, dass eine Rechenzeit des Bestimmungswertes nach dem Starten des Mikrocomputers 20 lang wird, wodurch ein Start des Programms verzögert würde, und zwar sogar dann, wenn die Berechnung des Bestimmungswertes für ein Programm, dessen Funktionssicherheitsebene hoch ist, Daten eines Programms verwendet, dessen Funktionssicherheitsebene niedriger als diejenige des Programms ist.
  • Auch wenn oben eine Ausführungsform der vorliegenden Erfindung beschrieben wurde, ist die vorliegende Erfindung nicht darauf beschränkt, sondern kann verschiedene Modi annehmen, ohne von dem Bereich der vorliegenden Erfindung abzuweichen.
  • Die erläuterte Ausführungsform berechnet beispielsweise den Bestimmungswert für die Gültigkeitsüberprüfung eines Programms in dem Flash-Speicher 26 unter Verwendung von Daten des Ziel-Programms bzw. betreffenden Programms und Daten eines Programms, dessen Funktionssicherheitsebene niedriger als diejenige des betreffenden Programms bzw. Zielprogramms ist.
  • Alternativ kann der Bestimmungswert für die jeweiligen Programme, die in dem Flash-Speicher 26 gespeichert werden, unter Verwendung nur von Daten eines Zielprogramms berechnet werden. Dieser Fall kann einen Erwartungswert in dem Speicherbereich in jedem Programm unter Verwendung von nur Daten des Zielprogramms bestimmen.
  • Die erläuterte Ausführungsform nimmt an, dass ein Bestimmungswert für eine Gültigkeitsüberprüfung eines Programms in dem Flash-Speicher 26 parallel für jedes Programm in einem Bestimmungswertberechnungsprozess berechnet wird, der unmittelbar nach dem Start des Mikrocomputers 20 gestartet wird.
  • Alternativ können die Bestimmungswerte für die Programme in dem Flash-Speicher 26 in einer Reihenfolge beginnend bei einem Programm, dessen Funktionssicherheitsebene niedrig ist, wie bei den Gültigkeitsüberprüfungen ausgeführt werden.
  • Dieser Fall kann die Zeit, die benötigt wird, um eine Gültigkeitsüberprüfung eines Programms, dessen Funktionssicherheitsebene hoch ist, nach dem Start des Mikrocomputers 20 verlängern, wenn ein Bestimmungswert durch Einschließen von Daten des Programms, dessen Funktionssicherheitsebene niedrig ist, berechnet wird. Die Berechnung des Bestimmungswertes für jedes Programm kann auch nur Daten des Zielprogramms verwenden.
  • Die erläuterte Ausführungsform beinhaltet den Mikrocomputer 20 in der ECU 10, die in einem Fahrzeug montiert ist und verwendet wird, um fahrzeugeigene Instrumente zu steuern. Die vorliegende Erfindung kann verwendet werden, um ein anderes Steuerziel anstatt ein Fahrzeug zu steuern, und außerdem um einen vorbestimmten Berechnungsprozess für Büroarbeit auszuführen.
  • Die vorliegende Erfindung kann ähnliche Wirkungen bei der Anwendung für einen Mikrocomputer erzielen, der Ausführungsprogramme entsprechend Funktionssicherheitsebenen wie in der Ausführungsform klassifizieren kann.
  • Während die vorliegende Erfindung mit Bezug auf ihre bevorzugten Ausführungsformen beschrieben wurde, ist es selbstverständlich, dass die Erfindung nicht auf die bevorzugten Ausführungsformen und Konstruktionen beschränkt ist. Die vorliegende Erfindung deckt verschiedene Modifikationen und äquivalente Anordnungen ab. Während verschiedene Kombinationen und Konfigurationen bevorzugt sind, sind weitere Kombinationen und Konfigurationen einschließlich mehr, weniger oder einem einzelnen Element ebenfalls innerhalb des Bereichs der vorliegenden Erfindung möglich.
  • 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 2013-084219 A [0002]
  • Zitierte Nicht-Patentliteratur
    • ISO26262 [0026]
    • IEC61508 [0026]
    • ISO26262 [0027]

Claims (4)

  1. Mikrocomputer, der aufweist: einen Speicher (26), der ein Programm in einem Schutzzustand speichert, der eine Schutzfunktion aktiviert, die eine Ausführung des Programms verhindert; und einen Arithmetikprozessor (22), der eine Gültigkeitsüberprüfung für das Programm, das in dem Speicher gespeichert ist, dahingehend durchführt, ob das Programm keine Anomalie aufweist, und die Schutzfunktion deaktiviert, wenn durch die Gültigkeitsüberprüfung bestimmt wird, dass das Programm keine Anomalie aufweist, und dann das Programm ausführt, wobei der Speicher mehrere Programme (QM, ASIL_A, ASIL_C) speichert, die entsprechend Funktionssicherheitsebenen in dem Schutzzustand, der die Schutzfunktion aktiviert, klassifiziert sind; und der Arithmetikprozessor die Gültigkeitsüberprüfung der Programme programmweise in einer Reihenfolge ausgehend von einem Programm, dessen Funktionssicherheitsebene niedrig ist, durchführt (S120, S150, S180), und die Schutzfunktion für ein Programm deaktiviert (S130, S160, S190), wenn durch die Gültigkeitsüberprüfung bestimmt wird, dass das Programm keine Anomalie aufweist, und dann das Programm ausführt (S140, S170, S200).
  2. Mikrocomputer nach Anspruch 1, wobei jedes Mal, wenn durch die Gültigkeitsüberprüfung bestimmt wird, dass ein Programm keine Anomalie aufweist, der Arithmetikprozessor die Schutzfunktion für das Programm deaktiviert und dann die Ausführung des Programms startet; und der Arithmetikprozessor während der Ausführung des Programms die Gültigkeitsüberprüfung für ein anderes Programm durchführt.
  3. Mikrocomputer nach Anspruch 1 oder 2, wobei der Arithmetikprozessor eine Gültigkeitsüberprüfung für jedes der Programme ausführt mittels: Durchführen eines vorbestimmten Arithmetikbetriebs auf der Grundlage von Daten in einem Speicherbereich in dem Speicher, der ein erstes zu überprüfendes Programm speichert, und Daten in einem Speicherbereich in dem Speicher, der ein zweites Programm speichert, dessen Funktionssicherheitsebene niedriger als diejenige des zu überprüfenden ersten Programms ist; und dann Verifizieren eines Arithmetikergebnisses des Arithmetikbetriebs mit einem Erwartungswert, der in dem Speicher gespeichert ist.
  4. Mikrocomputer nach einem der Ansprüche 1 bis 3, wobei wenn als Ergebnis der Gültigkeitsüberprüfung für ein Programm bestimmt wird, dass das Programm eine Anomalie aufweist, der Arithmetikprozessor einen vorbestimmten Ausfallsicherungsprozess in einem Zustand ausführt (S210), in dem die Schutzfunktion für das Programm aktiviert gehalten wird.
DE102016200413.1A 2015-01-21 2016-01-15 Mikrocomputer Pending DE102016200413A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-9548 2015-01-21
JP2015009548A JP6471510B2 (ja) 2015-01-21 2015-01-21 マイクロコンピュータ

Publications (1)

Publication Number Publication Date
DE102016200413A1 true DE102016200413A1 (de) 2016-07-21

Family

ID=56293207

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016200413.1A Pending DE102016200413A1 (de) 2015-01-21 2016-01-15 Mikrocomputer

Country Status (2)

Country Link
JP (1) JP6471510B2 (de)
DE (1) DE102016200413A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021125672A1 (de) 2021-10-04 2023-04-06 Bayerische Motoren Werke Aktiengesellschaft Prozessorsystem für ein Fahrzeug und Verfahren zum Überwachen eines Prozesszustands nach einem Remote-Software-Update

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018039134A1 (en) * 2016-08-22 2018-03-01 Peloton Technology, Inc. Automated connected vehicle control system architecture
JP2019160107A (ja) * 2018-03-16 2019-09-19 日立オートモティブシステムズ株式会社 変速機制御装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084219A (ja) 2011-10-12 2013-05-09 Toyota Motor Corp 情報処理装置、異常判定方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06242957A (ja) * 1993-02-16 1994-09-02 Fujitsu Ltd プログラム実行制御装置
JPH06348501A (ja) * 1993-06-14 1994-12-22 Tokyo Electric Co Ltd プログラムダウンロード方法
US7802110B2 (en) * 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
JP2010079579A (ja) * 2008-09-25 2010-04-08 Toshiba Corp レジューム方法および情報処理装置
JP2013143095A (ja) * 2012-01-12 2013-07-22 Toyota Motor Corp 電子制御装置、メモリ検査方法
JP2013218427A (ja) * 2012-04-05 2013-10-24 Of Networks:Kk 情報処理装置及び方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013084219A (ja) 2011-10-12 2013-05-09 Toyota Motor Corp 情報処理装置、異常判定方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEC61508

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021125672A1 (de) 2021-10-04 2023-04-06 Bayerische Motoren Werke Aktiengesellschaft Prozessorsystem für ein Fahrzeug und Verfahren zum Überwachen eines Prozesszustands nach einem Remote-Software-Update

Also Published As

Publication number Publication date
JP2016134082A (ja) 2016-07-25
JP6471510B2 (ja) 2019-02-20

Similar Documents

Publication Publication Date Title
DE112018006702T5 (de) Bestimmung der zuverlässigkeit von fahrzeugsteuerbefehlen unter verwendung eines abstimmungsmechanismus
DE102013225445A1 (de) Verfahren und System zum Umgehen von Authentizitätsüberprüfungen für geschützte Steuermodule
DE102016200413A1 (de) Mikrocomputer
DE102015220884A1 (de) Bildverarbeitungsvorrichtung
DE102016210788A1 (de) Komponente zur Verarbeitung eines schützenswerten Datums und Verfahren zur Umsetzung einer Sicherheitsfunktion zum Schutz eines schützenswerten Datums in einer solchen Komponente
DE102017213510A1 (de) Verfahren und Vorrichtung zum Erzeugen eines maschinellen Lernsystems, und virtuelle Sensorvorrichtung
WO2008090027A1 (de) Ein-chip-computer und tachograph
DE102019004612A1 (de) Verfahren zum Betreiben eines Fahrzeugs mit einem Steuergerät
DE102016200130A1 (de) Elektronische Steuervorrichtung
DE102018215011A1 (de) Verfahren zum Installieren eines Programmcodepakets in ein Gerät sowie Gerät und Kraftfahrzeug
DE102017214057A1 (de) Verfahren zum Prüfen der Integrität von Systemkomponenten eines Systems und Anordnung zur Durchführung des Verfahrens
DE102009012887B4 (de) Verfahren zum Prüfen einer nicht korrekten Installation von Fahrzeugsensoren
DE102008008969B4 (de) Bordnetz-System eines Kraftfahrzeugs mit einer Authentifizierungs-Vorrichtung
DE112021002403T5 (de) Fahrzeugsteuervorrichtung
DE102016224206A1 (de) Fahrzeugsteuervorrichtung
DE102015208598A1 (de) Elektronische steuereinheit
DE102021209691B3 (de) Verfahren zum Überwachen einer Komponente einer Wirkkette
DE102018207504A1 (de) Steuervorrichtung und Steuerverfahren
DE102019208129B4 (de) Elektronische Steuereinheit
DE102017219195A1 (de) Verfahren zum gewährleisten eines betriebs eines rechners
DE102018219700B4 (de) Steuervorrichtung
EP2225640A1 (de) Verfahren zum identifizieren gegenseitiger beeinflussung von softwarekomponenten
DE102016222691A1 (de) Mikrocontrollersystem und Verfahren zur Kontrolle von Speicherzugriffen in einem Mikrocontrollersystem
DE102017208872A1 (de) Elektronische Steuereinheit
DE102021129670A1 (de) Verfahren, Fahrzeugkomponente und Computerprogramm zum Einräumen einer Berechtigung zum Ausführen eines Computerprogramms durch eine Fahrzeugkomponente eines Fahrzeugs

Legal Events

Date Code Title Description
R012 Request for examination validly filed