DE102017211568B4 - ELECTRONIC CONTROL UNIT - Google Patents

ELECTRONIC CONTROL UNIT Download PDF

Info

Publication number
DE102017211568B4
DE102017211568B4 DE102017211568.8A DE102017211568A DE102017211568B4 DE 102017211568 B4 DE102017211568 B4 DE 102017211568B4 DE 102017211568 A DE102017211568 A DE 102017211568A DE 102017211568 B4 DE102017211568 B4 DE 102017211568B4
Authority
DE
Germany
Prior art keywords
memory protection
microcomputer
memory
access
count value
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.)
Active
Application number
DE102017211568.8A
Other languages
German (de)
Other versions
DE102017211568A1 (en
Inventor
Hirotaka Kunibe
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 DE102017211568A1 publication Critical patent/DE102017211568A1/en
Application granted granted Critical
Publication of DE102017211568B4 publication Critical patent/DE102017211568B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/40Services specially adapted for particular environments, situations or purposes for vehicles, e.g. vehicle-to-pedestrians [V2P]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2139Recurrent verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Elektronische Steuereinheit mit einem Mikrocomputer (12), welcher umfasst:einen Speicherschutzteil (22, 24, 28), welcher einen Zugriff auf einen anderen Bereich als einen zugriffserlaubten Speicherbereich als einen verletzenden Zugriff verbietet und bei Auftreten des verletzenden Zugriffs eine Speicherschutzverletzungsunterbrechung erzeugt, um den Mikrocomputer zurückzusetzen,dadurch gekennzeichnet, dass der Mikrocomputer (12) ferner umfasst:einen Zählteil (20, S400) zum Zählen einer Häufigkeit von verletzenden Zugriffen; undeinen Invalidationsteil (20, S300, S320) zum Invalidieren der Erzeugung der Speicherschutzverletzungsunterbrechung in dem Fall, in dem ein durch den Zählteil (20, S400) gezählter Zählwert der verletzenden Zugriffe einen vorbestimmten Zählwert erreicht, während das Verbieten der verletzenden Zugriffe durch den Speicherschutzteil beibehalten wird.An electronic control unit having a microcomputer (12), comprising: a memory protection part (22, 24, 28) which prohibits access to an area other than an access-permitted memory area as an infringing access and, upon occurrence of the infringing access, generates a memory protection violation interrupt to prevent the A microcomputer reset, characterized in that the microcomputer (12) further comprises: a counting part (20, S400) for counting a frequency of access violations; andan invalidation part (20, S300, S320) for invalidating the generation of the memory protection violation interrupt in the case where a count value of the violating accesses counted by the counting part (20, S400) reaches a predetermined count value while maintaining prohibition of the violating accesses by the memory protection part will.

Description

Die Erfindung betrifft eine elektronische Steuereinheit mit einem Mikrocomputer, welcher einen Zugriff auf andere Speicherbereiche als zugriffserlaubte Speicherbereiche verbietet und eine Speicherschutzverletzungsunterbrechung erzeugt, wenn ein verletzender Zugriff auftritt.The invention relates to an electronic control unit with a microcomputer which prohibits access to memory areas other than access-permitted memory areas and generates a memory protection violation interrupt when a violating access occurs.

Die Druckschrift JP 2014-137734A offenbart eine Informationsverarbeitungseinheit, welche eine Speicherschutzfunktion aufweist. Diese Informationsverarbeitungseinheit beinhaltet eine zentrale Verarbeitungseinheit (CPU) zum Ausführen mehrerer Anwendungsprogramme, die in einem Speicher gespeichert sind, und einen Zugriffsüberwachungsteil zum Registrieren von Erlaubnis- und Verbotsinformation in Entsprechung zu jeder Adresse. Die Erlaubnis- und Verbotsinformation zeigt für jedes Anwendungsprogramm an, ob ein Zugriff auf den Speicher erlaubt oder verboten ist.The pamphlet JP 2014-137734A discloses an information processing unit having a memory protection function. This information processing unit includes a central processing unit (CPU) for executing a plurality of application programs stored in a memory and an access control part for registering permission and prohibition information corresponding to each address. The permission and prohibition information indicates whether access to the memory is permitted or prohibited for each application program.

Die Informationsverarbeitungseinheit beinhaltet weiter einen Datenspeicherteil, einen Erlaubnis- und Verbotsinformationsteil bzw. Erlaubnis/Verbotsinformationsänderungsteil und einen Sicherungsteil. Der Datenspeicherteil speichert Daten, die in einer Adresse des Speichers gespeichert sind, auf welche die CPU einen Speicherzugriff durchgeführt hat, aus dem Speicher in einen Sicherungs- bzw. Speicherbereich zusammen mit der Adresse, auf die zugegriffen wurde, wenn der Zugriffsüberwachungsteil erfasst, dass der Speicherzugriff auf den Speicher durchgeführt wurde, welcher durch die das Anwendungsprogramm ausführende CPU verboten wurde. Der Erlaubnis/Verbotsinformationsänderungsteil ändert die Erlaubnis/Verbotsinformation dazu, den Zugriff auf die Adresse zu erlauben, auf welche die CPU den Speicherzugriff durchgeführt hat. Der Sicherungsteil sichert die Daten aus dem Speicher in einen Sicherungsbereich zusammen mit der entsprechenden Adresse in Kombination, nachdem die CPU, welche das Anwendungsprogramm ausführt, den Zugriff auf den verbotenen Speicher zugeführt hat. Der Sicherungsteil ist dazu konfiguriert, die in dem Sicherungsbereich gespeicherten Daten an die entsprechende Adresse wiederherzustellen, bevor die CPU das Anwendungsprogramm, in welchem die CPU den verbotenen Speicherzugriff durchgeführt hat, das nächste Mal ausführt. Wenn der Sicherungsteil die Daten in dem Sicherungsbereich wiederherstellt, werden die Daten an bzw. in der entsprechenden Adresse durch den Datensicherungs- bzw. Datenspeicherteil in dem Sicherungs- bzw. Speicherbereich gesichert bzw. gespeichert.The information processing unit further includes a data storage part, a permission and prohibition information changing part, and a backup part. The data storage part saves data stored in an address of the memory to which the CPU has performed a memory access from the memory into a save area together with the accessed address when the access monitoring part detects that the Memory access was made to the memory which was forbidden by the CPU executing the application program. The permission/prohibition information changing part changes the permission/prohibition information to allow access to the address to which the CPU has performed the memory access. The saving part saves the data from the memory into a saving area together with the corresponding address in combination after the CPU executing the application program has supplied access to the forbidden memory. The backup part is configured to restore the data stored in the backup area to the corresponding address before the CPU next executes the application program in which the CPU performed the prohibited memory access. When the backup part restores the data in the backup area, the data is saved at the corresponding address by the data backup part in the backup area.

Wenn eine Zugriffsverletzung auftritt, führt eine Speicherschutzschaltung allgemein eine Ausnahmeverarbeitung durch, indem sie eine Speicherschutzverletzungsunterbrechung erzeugt, die die gegenwärtig ausgeführte Verarbeitung (Befehle verwerfend) beendet, und der CPU eine nächste Verarbeitung oder einen Neustart eines Betriebssystems bzw. OS zuweist. In Übereinstimmung mit dieser Ausnahmeverarbeitung wird die Ausführung von Programmen beschränkt. In Übereinstimmung mit der vorstehend beschriebenen Informationsverarbeitungseinheit ist es jedoch möglich, die Ausführung von Anwendungsprogrammen auch in dem Fall fortzusetzen, in dem die Zugriffsverletzung auftritt.When an access violation occurs, a memory protection circuit generally performs exception processing by generating a memory protection violation interrupt that terminates currently executing processing (discarding instructions) and assigns next processing or OS restart to the CPU. In accordance with this exception processing, execution of programs is restricted. However, according to the information processing unit described above, it is possible to continue execution of application programs even in the case where the access violation occurs.

Die vorstehend beschriebene Informationsverarbeitungseinheit erfordert extra bzw. zusätzliche Speicherbereiche zum redundanten Speichern und Sichern von Daten. Da die Speicherschutzschaltung die Ausnahme erzeugt, wenn die Zugriffsverletzung auftritt, darüber hinaus zum Sichern von Daten oder Ausführen der Änderungsverarbeitung von Erlaubnis/Verbotsinformation und zum Übertragen der Daten aus dem Sicherungsbereich nach dem Speichern der Daten in dem Speicherbereich zurzeit des Umschaltens von Anwendungen. Infolgedessen nimmt ein Überhang zu.The information processing unit described above requires extra memory areas for redundantly storing and backing up data. In addition, since the memory protection circuit generates the exception when the access violation occurs, to save data or execute the change processing of permission/prohibition information and to transfer the data from the save area after saving the data in the memory area at the time of switching applications. As a result, an overhang increases.

Ferner bezieht sich die Druckschrift US 2014/0136806 A1 auf Speichervorrichtungen und deren Sicherheit und offenbart ein Verfahren zum Schutz einer Speichervorrichtung, umfassend das Zählen von Leistungszyklusereignissen der Speichervorrichtung innerhalb der Speichervorrichtung, das Aufrechterhalten eines Zählwerts der Leistungszyklusereignisse, die innerhalb einer bestimmten Zeitspanne auftreten, das Vergleichen des Zählwerts mit einem Schwellenwert, und das Aufrufen einer Sicherheitsmaßnahme, wenn der Zählwert den Schwellenwert überschreitet.Furthermore, the document relates U.S. 2014/0136806 A1 on memory devices and their security and discloses a method for protecting a memory device, comprising counting power cycle events of the memory device within the memory device, maintaining a count of the power cycle events that occur within a certain period of time, comparing the count with a threshold value, and invoking a security measure when the count exceeds the threshold.

Der Erfindung liegt als eine Aufgabe zugrunde, eine elektronische Steuereinheit bereitzustellen, welche in der Lage ist, Programme sicher und ohne Zunahme von Speicherbereichen und Überhang kontinuierlich auszuführen.It is an object of the invention to provide an electronic control unit capable of continuously executing programs safely and without increasing memory areas and overhead.

In Übereinstimmung mit der Erfindung beinhaltet eine elektronische Steuereinheit einen Mikrocomputer, welcher einen Speicherschutzteil zum Verbieten, als einen verletzenden Zugriff, eines Zugriffs auf einen anderen Bereich als einen zugriffserlaubten Speicherbereich und Erzeugen, bei Auftreten des verletzenden Zugriffs, einer Speicherschutzverletzungsunterbrechung zum Zurücksetzen des Mikrocomputers umfasst. Der Mikrocomputer ist dadurch gekennzeichnet, dass er ferner einen Zählteil und einen Invalidationsteil umfasst. Der Zählteil zählt eine Häufigkeit von verletzenden Zugriffen. Der Invalidationsteil invalidiert die Erzeugung der Speicherschutzverletzungsunterbrechung in dem Fall, in dem ein durch den Zählteil gezählter Zählwert der verletzenden Zugriffe einen vorbestimmten Zählwert erreicht, während das Verbieten der verletzenden Zugriffe durch den Speicherschutzteil beibehalten wird.

  • 1 ist ein Blockdiagramm, das eine Konfiguration einer elektronischen Steuereinheit gemäß einem Ausführungsbeispiel der Erfindung zeigt;
  • 2 ist ein Ablaufdiagramm, das eine Speicherschutzverarbeitung zeigt, die durch eine Speicherschutzschaltung auf der Grundlage von Speicherbereicheinstelldaten, die in einem Speicherschutzeinstellregister festgelegt sind, ausgeführt wird;
  • 3 ist ein Ablaufdiagramm, das eine Verarbeitung in einer Fehlersteuerschaltung zeigt;
  • 4 ist ein Ablaufdiagramm, das eine Prüfverarbeitung zeigt zum Umschalten einer Speicherschutzverletzungsunterbrechung auf eine Invalidierungseinstellung und Sicherheitsverarbeitung, die ausgeführt wird, wenn die Speicherschutzverletzungsunterbrechung auf ungültig festgelegt ist;
  • 5 ist eine Fehlerverarbeitung, die ausgeführt wird, wenn die Speicherschutzschaltung ein Auftreten der Speicherschutzverletzung im Ansprechen auf einen verletzenden Zugriff ermittelt;
  • 6 ist ein Sequenzdiagramm, das ein Beispiel einer Zeitbeziehung zwischen einer von einem Mikrocomputer ausgeführten Verarbeitung zeigt; und
  • 7 ist ein Ablaufdiagramm, das eine Rücksetzverarbeitung zum Zurücksetzen eines Speicherschutzverletzungszählers und einer Invalidierungszeit zeigt.
In accordance with the invention, an electronic control unit includes a microcomputer which includes a memory protection part for prohibiting, as an infringing access, access to an area other than an access-permitted memory area and generating, upon occurrence of the infringing access, a memory protection violation interrupt for resetting the microcomputer. The microcomputer is characterized by further comprising a counting part and an invalidating part. The counting part counts a frequency of infringing accesses. The invalidation part invalidates the generation of the memory protection violation interrupt in the event that a count of violating accesses counted by the counting part exceeds a predetermined count value is reached while maintaining the prohibition of the violating accesses by the memory protection part.
  • 1 12 is a block diagram showing a configuration of an electronic control unit according to an embodiment of the invention;
  • 2 Fig. 12 is a flowchart showing memory protection processing executed by a memory protection circuit based on memory area setting data set in a memory protection setting register;
  • 3 Fig. 12 is a flowchart showing processing in an error control circuit;
  • 4 Fig. 14 is a flowchart showing check processing for switching a memory protection violation interrupt to invalid setting and security processing executed when the memory protection violation interrupt is set to invalid;
  • 5 is error processing executed when the memory protection circuit detects an occurrence of the memory protection violation in response to a violation access;
  • 6 Fig. 14 is a sequence chart showing an example of a timing relationship between processing executed by a microcomputer; and
  • 7 14 is a flowchart showing reset processing for resetting a memory protection violation counter and an invalidation time.

Die Erfindung wird nachstehend unter Bezugnahme auf ein in den Zeichnungen gezeigtes, beispielhaftes Ausführungsbeispiel beschrieben. Eine elektronische Steuereinheit gemäß dem vorliegenden Ausführungsbeispiel wird dazu verwendet, zum Beispiel eine fahrzeuginterne Einrichtung wie etwa eine elektronische Drosselklappe eines Fahrzeugs zu steuern.The invention is described below with reference to an exemplary embodiment shown in the drawings. An electronic control unit according to the present embodiment is used to control, for example, an in-vehicle device such as an electronic throttle of a vehicle.

1 zeigt ein Beispiel einer Gesamtkonfiguration einer elektronischen Steuereinheit (ECU) 10, welche eine elektronische Drosselklappe 40 als ein Steuerobjekt bzw. zu steuerndes Objekt steuert. In diesem Beispiel berechnet die ECU 10 eine Motorleistung, welche der Fahrer anfordert, im Ansprechen auf ein Beschleuniger- bzw. Fahrpedalbetätigungsausmaß des Fahrers, das durch einen Beschleuniger- bzw. Fahrpedalsensor erfasst wird, und steuert die elektronische Drosselklappe 40 dazu, die berechnete Motorleistung zu erzeugen. 1 12 shows an example of an overall configuration of an electronic control unit (ECU) 10 that controls an electronic throttle valve 40 as a control object. In this example, the ECU 10 calculates an engine output that the driver requests in response to a driver's accelerator operation amount detected by an accelerator sensor, and controls the electronic throttle valve 40 to supply the calculated engine output produce.

Das Steuerobjekt der elektronischen Steuereinheit gemäß der Erfindung ist nicht auf die elektronische Drosselklappe beschränkt, sondern kann andere fahrzeuginterne Einrichtungen sein. Ferner kann das Steuerobjekt eine andere Einrichtung als die fahrzeuginterne Einrichtung sein.The control object of the electronic control unit according to the invention is not limited to the electronic throttle valve but may be other in-vehicle devices. Further, the control object may be a device other than the in-vehicle device.

Wie in 1 gezeigt, beinhaltet die ECU 10 einen Mikrocomputer 12, eine Drosselklappenmotoransteuerschaltung 14 und eine integrierte Überwachungsschaltung bzw. ein Überwachungs-IC 16. Der Mikrocomputer 12 empfängt ein Erfassungssignal des Beschleunigungssensors, welcher das Betätigungsausmaß des Fahrpedals erfasst, über eine Eingangsschaltung 34. Der Mikrocomputer 12 berechnet die Motorausgangsleistung (Motordrehmoment), welche der Fahrer anfordert, auf der Grundlage des empfangenen Erfassungssignals. Der Mikrocomputer 12 legt eine Ansteuerausgabe an die Drosselklappenmotoransteuerschaltung 14 über die Ausgangsschaltung 36 so an, dass die elektronische Drosselklappe 40 dazu gesteuert wird, die berechnete Motorausgangsleistung zu erzeugen. Die Drosselklappenmotoransteuerschaltung 14 gibt im Ansprechen auf die von dem Mikrocomputer 12 angelegte Ansteuerausgabe einen Ansteuer- bzw. Treiberstrom zum Rotieren eines (nicht gezeigten) Drosselklappenmotors aus. Folglich wird der Öffnungswinkel der elektronischen Drosselklappe 40 durch den Drosselklappenmotor verändert, welcher entsprechend dem Ansteuerstrom rotiert.As in 1 shown, the ECU 10 includes a microcomputer 12, a throttle motor drive circuit 14 and a monitoring IC 16. The microcomputer 12 receives a detection signal of the acceleration sensor, which detects the operating amount of the accelerator pedal, via an input circuit 34. The microcomputer 12 calculates the engine output (engine torque) that the driver requests based on the received detection signal. The microcomputer 12 applies a drive output to the throttle motor drive circuit 14 via the output circuit 36 so that the electronic throttle 40 is controlled to produce the calculated engine output. The throttle motor drive circuit 14, in response to the drive output applied from the microcomputer 12, outputs a drive current for rotating a throttle motor (not shown). Consequently, the opening angle of the electronic throttle valve 40 is changed by the throttle valve motor rotating according to the drive current.

Zusätzlich zu der Eingangsschaltung 34 und der Ausgangsschaltung 36 beinhaltet der Mikrocomputer 12 ferner eine CPU 20, ein Speicherschutzeinstellregister 22, eine Speicherschutzschaltung 23, ein Speicherschutzverletzungsunterbrechungseinstellregister 26, eine Fehlersteuerschaltung 28, ein ROM 30, ein RAM 32 und eine Kommunikationsschaltung 38. Die CPU 20 führt, durch Ausführung verschiedenartiger, in dem ROM 30 gespeicherter Programme, eine Offenwinkelsteuerfunktion für die elektronische Drosselklappe 40 und eine Fehlerverarbeitungsfunktion und eine Sicherheitsfunktion im Fall eines Auftretens einer Speicherschutzverletzung durch. Aus diesem Grund speichert das ROM 30 zumindest ein Steuerfunktionsprogramm 30A, ein Sicherheitsfunktionsprogramm 30B, ein Fehlerverarbeitungsprogramm 30C und ein OS- bzw. BS- bzw. Betriebssystemprogramm 30D, wie in 1 gezeigt. Das Steuerfunktionsprogramm 30A ist bereitgestellt, um den Offenwinkel bzw. Öffnungswinkel der elektronischen Drosselklappe 40 zu steuern. Das Sicherheitsfunktionsprogramm 30B ist bereitgestellt, um den Mikrocomputer 12 zu diagnostizieren, und führt eine Sicherheitsverarbeitung im Falle eines Auftretens der Speicherschutzverletzung aus. Das Fehlerverarbeitungsprogramm 30C ist bereitgestellt, um eine Fehlerverarbeitung zu definieren, welche auszuführen ist, wenn die Fehlersteuerschaltung 28 die Speicherschutzverletzungsunterbrechung erzeugt. Das Betriebssystemprogramm 30D ist als eine grundlegende Software bereitgestellt, welche die Ausführung jedes vorstehend beschriebenen Anwendungsprogramms unterstützt und verwaltet.In addition to the input circuit 34 and the output circuit 36, the microcomputer 12 further includes a CPU 20, a memory protection setting register 22, a memory protection circuit 23, a memory protection violation interrupt setting register 26, an error control circuit 28, a ROM 30, a RAM 32 and a communication circuit 38. The CPU 20 performs , by executing various programs stored in the ROM 30, an open angle control function for the electronic throttle valve 40 and an error processing function and a security function in the event of a memory protection violation occurrence. For this reason, the ROM 30 stores at least a control function program 30A, a security function program 30B, an error processing program 30C, and an OS program 30D, as shown in FIG 1 shown. The control function program 30A is provided to control the opening angle of the electronic throttle valve 40 . The security function program 30B is provided to diagnose the microcomputer 12 and executes security processing in the event of occurrence of the memory protection violation. The error processing program 30C is provided to define error processing which is is to be supplied when the error control circuit 28 generates the memory protection violation interrupt. The operating system program 30D is provided as basic software that supports and manages the execution of each application program described above.

Wenn der Mikrocomputer 12 mit Strom bzw. Leistung versorgt wird, liest die CPU 20 das Betriebssystemprogramm 30D aus dem ROM 30 aus und führt es aus. Die CPU 20 liest ferner andere Anwendungsprogramme aus und führt diese Anwendungsprogramme aus, wenn jeweilige Aktivierungsbedingungen erfüllt sind. Das RAM 32 ist mit bestimmten Bereichen versehen, die jedem Anwendungsprogramm zum Speicher verschiedenartiger Daten, die zum Ausführen jeweiliger Programme notwendig sind, zugewiesen sind. Die Speicherschutzschaltung 24 ist bereitgestellt, um im Prinzip den bestimmten Bereich jedes Anwendungsprogramms vor Zugriffen durch andere Programme zu schützen.When the microcomputer 12 is powered, the CPU 20 reads the operating system program 30D from the ROM 30 and executes it. The CPU 20 also reads out other application programs and executes these application programs when respective activation conditions are satisfied. The RAM 32 is provided with specific areas allocated to each application program for storing various data necessary for executing respective programs. The memory protection circuit 24 is provided to protect, in principle, the specific area of each application program from being accessed by other programs.

Die Speicherschutzschaltung 24 prüft auf der Grundlage von Speicherbereicheinstelldaten, die in dem Speicherschutzeinstellregister 22 eingestellt bzw. festgelegt sind, ob ein Zugriff für die Speicherzugriffsanforderung, die von dem von der CPU 20 ausgeführten Programm erfolgte, zu erlauben oder zu verbieten ist. Speziell bestimmt dann, wenn die Speicherzugriffsanforderung auf den Speicherbereich erfolgt, für welchen ein Zugriff erlaubt ist, die Speicherschutzschaltung 24 eine Erlaubnis des Zugriffs und erlaubt den Zugriff auf den entsprechenden Speicherbereich. Wenn die Speicherzugriffsanforderung als der verletzende Zugriff auf den Speicherbereich bestimmt wird, für welchen der Zugriff verboten ist, verbietet die Speicherschutzschaltung 24 den Zugriff auf den entsprechenden Speicherbereich und bestimmt bzw. ermittelt ein Auftreten einer Speicherschutzverletzung. Es ist folglich möglich, einen Fall derart zu verhindern, dass eine Ausführung eines Anwendungsprogramms fehlerhaft die anderen Anwendungsprogramme oder das Betriebssystemprogramm ebenso wie Daten, welche in jeweiligen Programmen verwendet werden, überschreibt.The memory protection circuit 24 judges whether to allow or prohibit access for the memory access request made by the program executed by the CPU 20 based on memory area setting data set in the memory protection setting register 22 . Specifically, when the memory access request is to the memory area for which access is permitted, the memory protection circuit 24 determines permission of the access and allows access to the corresponding memory area. When the memory access request is determined to be the violating access to the memory area for which access is prohibited, the memory protection circuit 24 prohibits access to the corresponding memory area and determines an occurrence of a memory protection violation. It is therefore possible to prevent a case such that execution of one application program erroneously overwrites the other application programs or the operating system program as well as data used in respective programs.

Die Speicherbereicheinstelldaten, welche in dem Speicherschutzeinstellregister 22 eingestellt bzw. festgelegt sind, geben einen Speicherbereich (auf welchen ein Zugriff erlaubt ist) an, auf den durch jedes der Anwendungsprogramme und das Betriebssystemprogramm zugegriffen werden kann. Alternativ kann der Speicherbereich, auf welchen durch jedes Programm nicht zugegriffen werden kann (auf welchen ein Zugriff verboten ist), als die Speicherbereicheinstelldaten festgelegt sein.The memory area setting data set in the memory protection setting register 22 indicates a memory area (to which access is permitted) that can be accessed by each of the application programs and the operating system program. Alternatively, the memory area which cannot be accessed by each program (access is prohibited) may be set as the memory area setting data.

Die Speicherbereicheinstelldaten werden durch Ausführung des Betriebssystemprogramms in dem Speicherschutzeinstellregister 22 gespeichert. Zum Beispiel werden die Speicherbereicheinstelldaten vorab Programm für Programm in dem ROM 30 gespeichert. Wenn der Mikrocomputer 12 mit Stromversorgung aktiviert wird, werden die Speicherbereicheinstelldaten jedes Programms aus dem ROM 30 ausgelesen und in dem RAM 32 gespeichert. Durch Ausführung des Betriebssystemprogramms werden die Speicherbereicheinstelldaten des auszuführenden Programms aus dem RAM 32 ausgelesen und in dem Speicherschutzeinstellregisters 22 gespeichert.The memory area setting data is stored in the memory protection setting register 22 by executing the operating system program. For example, the memory area setting data is stored in the ROM 30 program by program in advance. When the microcomputer 12 with power supply is activated, the memory area setting data of each program is read out from the ROM 30 and stored in the RAM 32. By executing the operating system program, the memory area setting data of the program to be executed is read out from the RAM 32 and stored in the memory protection setting register 22.

Das Speicherschutzeinstellregister 22 kann aus zum Beispiel mehreren Registern gebildet sein. In diesem Fall wird zumindest ein Register dazu verwendet, die Speicherbereicheinstelldaten zu speichert, welche den Speicherbereich angeben, auf welchen ein Zugriff durch das OS-Programm möglich ist. Die anderen Register werden zum Speichern der Speicherbereicheinstelldaten verwendet, welche den Speicherbereich angeben, auf den durch die Anwendungsprogramme zugegriffen werden kann. Das Betriebssystemprogramm schreibt nur die Inhalte des Registers neu, welches die Speicherbereicheinstelldaten für die Anwendungsprogramme speichert, wenn das auszuführende Anwendungsprogramm umgeschaltet wird. Mit mehreren Registern als dem Speicherschutzeinstellregister 22 ist es möglich, die Häufigkeit des Neuschreibens der Speicherbereicheinstelldaten zu verringern.The memory protection setting register 22 may be formed of multiple registers, for example. In this case, at least one register is used to store the memory area setting data indicating the memory area accessible by the OS program. The other registers are used to store the memory area setting data, which specifies the memory area that can be accessed by the application programs. The operating system program rewrites only the contents of the register storing the memory area setting data for the application programs when the application program to be executed is switched. With more registers than the memory protection setting register 22, it is possible to reduce the frequency of rewriting the memory area setting data.

Der vorstehend beschriebene Speicher ist in den meisten Fällen das RAM 32, welches als ein Arbeitsraum jedes Programms verwendet wird. Er kann jedoch das ROM 30 und Register beinhalten. Das heißt, der Speicher kann das RAM 32, das ROM 30 und Register beinhalten und kann kollektiv als ein Adressraum verwaltet werden.The memory described above is the RAM 32 in most cases, which is used as a work space of each program. However, it may include the ROM 30 and registers. That is, the memory may include RAM 32, ROM 30, and registers, and may be managed collectively as an address space.

Wenn die Speicherschutzschaltung 24 ein Auftreten der Speicherschutzverletzung ermittelt und eine Benachrichtigung über die Verletzung ausgibt, gibt die Fehlersteuerschaltung 28 die Speicherschutzverletzungsunterbrechung an die CPU 20, falls die Speicherschutzverletzungsunterbrechung in dem Speicherschutzverletzungsunterbrechungseinstellregister 26 als gültig festgelegt ist, und zeigt dadurch an, dass die Erzeugung der Unterbrechung wirksam gegen die Verletzung arbeiten wird. Die Fehlersteuerschaltung 28 gibt jedoch die Speicherschutzverletzungsunterbrechung nicht aus, falls die Speicherschutzverletzungsunterbrechung in dem Speicherschutzverletzungsunterbrechungseinstellregister 28 als ungültig festgelegt ist, und zeigt dadurch an, dass die Erzeugung der Unterbrechung nicht wirksam gegen die Verletzung arbeiten wird, auch wenn die Benachrichtigung über die Speicherschutzverletzung von der Speicherschutzschaltung 24 empfangen wird. Bei Empfangen der Speicherschutzverletzungsunterbrechung von der Fehlersteuerschaltung 28 führt die CPU 20 die vorbestimmte Fehlerverarbeitung aus. Als die vorbestimmte Fehlerverarbeitung wird die Häufigkeit des Auftretens bzw. von Erscheinungen der Speicherschutzverletzungen durch einen Speicherschutzverletzungszähler gezählt, und wird die Ausgabe des Überwachungssignals aus der Ausgangsschaltung 36 des Mikrocomputers 12 an die integrierte Überwachungsschaltung 16 durch Ausführen zum Beispiel einer Endlosschleifenverarbeitung beendet bzw. angehalten.When the memory protection circuit 24 detects an occurrence of the memory protection violation and issues a notification of the violation, the error control circuit 28 issues the memory protection violation interrupt to the CPU 20 if the memory protection violation interrupt is set valid in the memory protection violation interrupt setting register 26, thereby indicating that the generation of the interrupt will work effectively against the injury. However, the error control circuit 28 does not issue the memory protection violation interrupt if the memory protection violation interrupt is set invalid in the memory protection violation interrupt setting register 28, thereby indicating that the generation of the interrupt will not effectively work against the violation even if the memory protection violation notification is from the memory protection circuit 24 is received. When receiving the memory protection violation interrupt from the error control circuit 28, the CPU 20 executes the predetermined error processing. As the predetermined error processing, the occurrences of the memory protection violations are counted by a memory protection violation counter, and the output of the monitor signal from the output circuit 36 of the microcomputer 12 to the monitor IC 16 is stopped by executing, for example, endless loop processing.

Die integrierte Überwachungsschaltung des Mikrocomputers 12 gibt ein Rücksetzsignal an dem Mikrocomputer 12 aus, wenn das Überwachungssignal für eine vorbestimmte Zeitspanne von dem Mikrocomputer 12 nicht ausgegeben wird. Aus diesem Grund wird der Mikrocomputer 12 jedes Mal dann zurückgesetzt, wenn die Speicherschutzschaltung 24 das Auftreten der Speicherschutzverletzung in dem Fall ermittelt, in dem die Speicherschutzverletzungsunterbrechung als gültig festgelegt ist. Alternativ kann ähnlich zu der herkömmlichen Weise die gegenwärtig ausgeführte Verarbeitung entsprechend der Speicherschutzverletzungsunterbrechung beendet werden (Befehle verworfen werden), um die nächste Verarbeitung zu beginnen oder das Betriebssystem neu zu starten.The monitor integrated circuit of the microcomputer 12 outputs a reset signal to the microcomputer 12 when the monitor signal is not output from the microcomputer 12 for a predetermined period of time. For this reason, the microcomputer 12 is reset each time the memory protection circuit 24 detects the occurrence of the memory protection violation in the case where the memory protection violation interrupt is determined to be valid. Alternatively, similar to the conventional manner, the currently executed processing may be terminated (instructions discarded) according to the memory protection violation interrupt to start the next processing or restart the operating system.

Falls die Speicherschutzverletzung aus permanenter Abnormalität, wie beispielsweise Programmfehlern, auftritt, wird die Speicherschutzverletzungsunterbrechung wiederholt, und besteht die Möglichkeit, dass der Mikrocomputer 12 grundlegend daran gehindert wird, seine Steuerfunktion fortzusetzen, selbst wenn der Mikrocomputer 12 zurückgesetzt wird. Falls die gegenwärtige Verarbeitung beendet wird, um die nächste Verarbeitung zu beginnen, oder das Betriebssystem neu gestartet wird, im Ansprechen auf die Speicherschutzverletzungsunterbrechung, ist es hoch wahrscheinlich, dass eine normale kontinuierliche Fortsetzung der Programme gesperrt wird.If the memory protection violation occurs from permanent abnormality such as program errors, the memory protection violation interruption is repeated, and there is a possibility that the microcomputer 12 will be fundamentally prevented from continuing its control function even if the microcomputer 12 is reset. If the current processing is terminated to start the next processing or the operating system is restarted in response to the memory protection violation interrupt, it is highly likely that the programs will be inhibited from continuing normally.

Aus diesem Grund ist in Übereinstimmung mit dem vorliegenden Ausführungsbeispiel das Speicherschutzverletzungsunterbrechungseinstellregister 26 bereitgestellt, um die Speicherschutzverletzungsunterbrechung auf ungültig zu setzen. Falls die Speicherschutzverletzungsunterbrechung in dem Speicherschutzverletzungsunterbrechungseinstellregister 26 als ungültig festgelegt ist, ist die Fehlersteuerschaltung 28 dazu konfiguriert, die Speicherschutzverletzungsunterbrechung im Ansprechen auf die Benachrichtigung über das Auftreten der Speicherschutzverletzung von der Speicherschutzschaltung 24 nicht zu erzeugen. Aus diesem Grund ist es möglich, die Ausführung der Programme ohne Zurücksetzen des Mikrocomputers 12, Beenden der gegenwärtigen Verarbeitung oder Neustarten des Betriebssystems fortzusetzen. In diesem Fall wird die Speicherschutzverletzungsunterbrechung nicht durchgeführt. Jedoch wird ein verletzender Zugriff auf den Speicherbereich, welcher außerhalb liegt oder ein anderer ist als der zugriffserlaubte Bereich, durch die Speicherschutzschaltung 24 kontinuierlich gesperrt bzw. verboten. Infolge dessen ist es möglich, die Programme sicher ohne fehlerhaftes Überschreiben oder Auslesen von Daten weiter auszuführen.For this reason, in accordance with the present embodiment, the memory protection violation interrupt setting register 26 is provided to invalidate the memory protection violation interrupt. If the memory protection violation interrupt is set invalid in the memory protection violation interrupt setting register 26, the error control circuit 28 is configured not to generate the memory protection violation interrupt in response to the notification of the memory protection violation occurrence from the memory protection circuit 24. For this reason, it is possible to continue executing the programs without resetting the microcomputer 12, stopping the current processing, or restarting the operating system. In this case, the memory protection violation interrupt is not performed. However, a violating access to the memory area which is outside or other than the access-permitted area is continuously prohibited by the memory protection circuit 24 . As a result, it is possible to safely continue running the programs without erroneously overwriting or reading out data.

Zusätzlich zu dem vorstehend beschriebenen Speicherschutz führt die CPU 20 eine Diagnoseverarbeitung durch zum Prüfen, ob der Mikrocomputer 12 normal arbeitet, indem das Sicherheitsfunktionsprogramm 30B ausgeführt wird. Das Diagnoseergebnis der Diagnoseverarbeitung wird über die Kommunikationsschaltung 38 an die integrierte Überwachungsschaltung 16 übertragen. Wenn die integrierte Überwachungsschaltung 16 auf der Grundlage des Diagnoseergebnisses ermittelt, dass eine kritische Abnormalität, welche die normale Steuerung für die elektronische Drosselklappe 40 unterbindet, vorliegt, wendet sie eine Ausschaltausgabe auf die Drosselklappenmotoransteuerschaltung 14 an. Bei Empfangen der Ausschaltausgabe beendet die Drosselklappenmotoransteuerschaltung 14 die Zufuhr des Ansteuerstroms zu dem Drosselklappenmotor, welcher die elektronische Drosselklappe 40 antreibt. Es ist folglich möglich, zu verhindern, dass die elektronische Drosselklappe 40 aufgrund einer Abnormalität des Mikrocomputers 12 abnormal arbeitet.In addition to the memory protection described above, the CPU 20 performs diagnostic processing to check whether the microcomputer 12 is operating normally by executing the safety function program 30B. The diagnosis result of the diagnosis processing is transmitted to the monitoring integrated circuit 16 via the communication circuit 38 . When the monitoring integrated circuit 16 determines, based on the diagnosis result, that there is a critical abnormality that prohibits the normal control for the electronic throttle valve 40 , it applies a cut-off output to the throttle motor drive circuit 14 . Upon receiving the turn-off output, the throttle motor drive circuit 14 stops supplying the drive current to the throttle motor that drives the electronic throttle valve 40 . Consequently, it is possible to prevent the electronic throttle valve 40 from operating abnormally due to an abnormality of the microcomputer 12 .

In dem vorliegenden Ausführungsbeispiel ist der Mikrocomputer 12 so konfiguriert, dass das Ausschaltsignal von der Ausgabe- bzw. Ausgangsschaltung 36 auch an die Drosselklappenmotoransteuerschaltung 14 angelegt wird. Der Mikrocomputer 12 legt das Ausschaltsignal an die Drosselklappenmotoransteuerschaltung 14 über die Ausgangsschaltung 36 in zum Beispiel den folgenden Fällen an. Der Mikrocomputer 12 misst eine Invalidierungszeitspanne nach dem Invalidieren bzw. Ungültig machen der Erzeugung der Speicherschutzverletzungsunterbrechung durch das Speicherschutzverletzungsunterbrechungseinstellregister 26. Die Invalidierungszeitspanne gibt eine Zeitspanne an, während welcher die Speicherschutzverletzungsunterbrechung fortwährend auf ungültig festgelegt ist. Wenn die gemessene Invalidierungszeitspanne eine vorbestimmte Zeitspanne erreicht, gibt der Mikrocomputer 12 das Ausschaltsignal aus der Ausgangsschaltung 36 an die Drosselklappenmotoransteuerschaltung 14 aus.In the present embodiment, the microcomputer 12 is configured so that the turn-off signal from the output circuit 36 is also applied to the throttle motor drive circuit 14 . The microcomputer 12 applies the OFF signal to the throttle motor drive circuit 14 through the output circuit 36 in the following cases, for example. The microcomputer 12 measures an invalidate period of time after invalidating the generation of the memory protection violation interrupt by the memory protection violation interrupt setting register 26. The invalidate period of time indicates a period of time during which the memory protection violation interrupt is continuously set to invalid. When the measured invalidation time period reaches a predetermined time period, the microcomputer 12 outputs the disable signal from the output circuit 36 to the throttle motor driver circuit 14 .

Wenn die Erzeugung der Speicherschutzverletzungsunterbrechung auf ungültig gesetzt ist, wird der Zugriff auf den Speicher durch den verletzenden Zugriff verboten. Es ist jedoch weiterhin möglich, dass der verletzende Zugriff selbst fortwährend erzeugt wird. Falls das Programm ohne Beschränkung fortgesetzt ausgeführt wird, kann der verletzende Zugriff auf den Speicher nicht verboten bzw. verhindert werden, wenn ein Fehler bzw. Ausfall in der Speicherschutzschaltung 24 auftritt. Um diesem Problem entgegenzuwirken, legt dann, wenn die Invalidierungszeitspanne, die nach dem Invalidieren der Erzeugung der Speicherschutzverletzungsunterbrechung gemessen wird, der Mikrocomputer 12 die Ausschaltausgabe von der Ausgangsschaltung 36 an die Drosselklappenmotoransteuerschaltung 14 an und beendet das Fließen des Ansteuerstroms zu der elektronischen Drosselklappe 40.If the generation of the memory protection violation interrupt is set to invalid, access to memory by the violating access is prohibited. However, it is still possible that the infringing access itself is perpetually generated. If the program continues to be executed without restriction, the infringing access to the memory cannot be prohibited when a failure occurs in the memory protection circuit 24. To counteract this problem, when the invalidation period of time measured after invalidating the generation of the memory protection violation interrupt, the microcomputer 12 applies the turn-off output from the output circuit 36 to the throttle motor drive circuit 14 and stops the drive current from flowing to the electronic throttle valve 40.

Die von der CPU 12 und dergleichen des Mikrocomputers 12 ausgeführte Verarbeitung für den Speicherschutz wird nachstehend unter Bezugnahme auf in 2 bis 5 gezeigte Ablaufdiagramme beschrieben. Das Ablaufdiagramm von 2 zeigt eine Speicherschutzverarbeitung, die von der Speicherschutzschaltung 24 auf der Grundlage der in dem Speicherschutzeinstellregister 22 eingestellten bzw. festgelegten Daten ausgeführt wird. Das Ablaufdiagramm von 3 zeigt eine Verarbeitung, die von der Fehlersteuerschaltung 28 ausgeführt wird. Die Speicherschutzschaltung 24 und die Fehlersteuerschaltung 28 können als Hardwareschaltungen konfiguriert sein, welche dieselben Funktionen wie die in 2 und 3 gezeigte Verarbeitung durchführen. Das Ablaufdiagramm von 4 zeigt eine von der CPU 20 dann, wenn die Speicherschutzverletzungsunterbrechung auf die Invalidierungs- bzw. Ungültigkeitsfestlegung bzw. Einstellung umgeschaltet wird, ausgeführte Prüfverarbeitung und eine von der CPU 20 dann, wenn die Speicherschutzverletzungsunterbrechung auf ungültig festgelegt ist, ausgeführte Sicherheitsverarbeitung. Das Ablaufdiagramm von 5 zeigt eine Fehlerverarbeitung, die von der CPU 20 dann, wenn die Speicherschutzverletzungsunterbrechung durch die Fehlersteuerschaltung 28 erzeugt wird, ausgeführt wird.The processing for the memory protection executed by the CPU 12 and the like of the microcomputer 12 will be described below with reference to FIG 2 until 5 shown flow charts described. The flowchart of 2 FIG. 12 shows memory protection processing executed by the memory protection circuit 24 based on the data set in the memory protection setting register 22. FIG. The flowchart of 3 FIG. 12 shows processing executed by the error control circuit 28. FIG. The memory protection circuit 24 and the error control circuit 28 may be configured as hardware circuits having the same functions as those in FIG 2 and 3 perform the processing shown. The flowchart of 4 Fig. 12 shows check processing executed by the CPU 20 when the memory protection violation interrupt is switched to the invalid setting and security processing executed by the CPU 20 when the memory protection violation interrupt is set invalid. The flowchart of 5 FIG. 12 shows an error processing executed by the CPU 20 when the memory protection violation interrupt is generated by the error control circuit 28. FIG.

In dem Ablaufdiagramm von 2 empfängt zunächst bei Schritt S100 die Speicherschutzschaltung 24 die Anforderung des Zugriffs auf den Speicher. Die Speicherzugriffsanforderung beinhaltet zum Beispiel eine Adresse des Speichers, auf die zugegriffen werden soll, eine Art eines Programms, das die Speicherzugriffsanforderung erzeugt, und Information, die Inhalte einer Verarbeitung (Lesen, Schreiben) bezüglich des Speichers angibt.In the flow chart of 2 First, at step S100, the memory protection circuit 24 receives the request to access the memory. The memory access request includes, for example, an address of the memory to be accessed, a kind of program that generates the memory access request, and information indicating contents of processing (reading, writing) on the memory.

Die Speicherschutzschaltung 24 prüft bei Schritt S110, ob die Adresse des Speichers, auf welche das sich unter Ausführung befindende Programm im Begriff ist, einen Zugriff durchzuführen, ein normaler Zugriff ist, welcher in einem Adressbereich enthalten ist, der in dem Speicherschutzeinstellregister 22 festgelegt ist, oder ein abnormaler Zugriff, welcher nicht in dem festgelegten Adressbereich enthalten ist. Die Speicherbereicheinstelldaten werden durch das Betriebssystemprogramm in dem Speicherschutzeinstellregister 22 gespeichert, wenn das auszuführende Programm umgeschaltet wird. Aus diesem Grund ist es für die Speicherschutzschaltung 24 möglich, durch Bezugnahme auf die Inhalte des Speicherschutzeinstellregisters 22 zur Zeit des Empfangens der Speicherzugriffsanforderung zu prüfen, ob der Zugriff der normale Zugriff oder der verletzende Zugriff ist.The memory protection circuit 24 checks at step S110 whether the address of the memory to which the program under execution is about to access is a normal access included in an address range set in the memory protection setting register 22. or an abnormal access that is not included in the specified address range. The memory area setting data is stored in the memory protection setting register 22 by the operating system program when the program to be executed is switched. For this reason, it is possible for the memory protection circuit 24 to check whether the access is the normal access or the violating access by referring to the contents of the memory protection setting register 22 at the time of receiving the memory access request.

Falls der Zugriff bei Schritt S110 als der normale Zugriff ermittelt wird, wird bei S120 der Zugriff auf den Speicher erlaubt. Falls der Zugriff bei S110 als der verletzende Zugriff ermittelt wird, wird bei S130 der Zugriff auf den Speicher verboten. In dem folgenden Schritt S140 wird der Fehlersteuerschaltung 28 gemeldet, dass die Speicherschutzverletzung aufgetreten ist. Bei der Prüfung, ob der Zugriff der normale Zugriff oder der verletzende Zugriff ist, können nicht nur der Speicherbereich, auf den zugegriffen werden soll, sondern auch die Inhalte einer Verarbeitung bezüglich des Speichers geprüft werden.If the access is determined to be the normal access at step S110, access to the memory is allowed at S120. If the access is determined to be the offending access at S110, access to the memory is prohibited at S130. In the following step S140, the error control circuit 28 is notified that the memory protection violation has occurred. In checking whether the access is the normal access or the infringing access, not only the memory area to be accessed but also the contents of processing related to the memory can be checked.

Die Verarbeitung, die in der Fehlersteuerschaltung 28 ausgeführt wird, wird als nächstes unter Bezugnahme auf das in 3 gezeigte Ablaufdiagramm beschrieben. In dem Ablaufdiagramm von 3 prüft die Fehlersteuerschaltung 28 zunächst bei S200, ob die Benachrichtigung über das Auftreten der Speicherschutzverletzung von der Speicherschutzschaltung 24 empfangen wurde. Falls die Benachrichtigung als empfangen worden ermittelt wird, wird Schritt S210 ausgeführt. Falls die Benachrichtigung als nicht empfangen ermittelt wird, wird Schritt S200 erneut ausgeführt, um dadurch darauf zu warten, bis die Benachrichtigung über das Auftreten der Speicherschutzverletzung empfangen wird.The processing executed in the error control circuit 28 will be described next with reference to FIG 3 flow chart shown. In the flow chart of 3 First, at S200, the error control circuit 28 checks whether the notification of the occurrence of the memory protection violation has been received from the memory protection circuit 24. If the notification is determined to have been received, step S210 is executed. If the notification is determined not to have been received, step S200 is executed again to thereby wait until the notification of the memory protection violation occurrence is received.

In Schritt S210 prüft die Fehlersteuerschaltung 28, ob die Einstellung bzw. Festlegung des Speicherschutzverletzungsunterbrechungseinstellregisters 26 dazu dient, die Verletzungsunterbrechung zu validieren bzw. gültig zu setzen oder die Verletzungsunterbrechung zu invalidieren bzw. ungültig zu setzen. Falls die Einstellung als die Verletzungsunterbrechung validierend ermittelt wird, erzeugt die Fehlersteuerschaltung 28 bei Schritt S220 die Speicherschutzverletzungsunterbrechung. Falls die Einstellung als die Verletzungsunterbrechung invalidierend ermittelt wird, wird die Verarbeitung beendet, ohne die Speicherschutzverletzungsunterbrechung zu erzeugen.In step S210, the error control circuit 28 checks whether the setting of the memory protection violation interrupt setting register 26 is to validate the violation interrupt or to invalidate the violation interrupt. If the setting is determined to validate the violation interrupt, the error control circuit 28 generates the memory protection violation interrupt in step S220. If the setting is determined to invalidate the violation interrupt, processing terminates without generating the memory protection violation interrupt.

Als Nächstes wird die in dem Ablaufdiagramm von 4 gezeigte Verarbeitung beschrieben. Diese Verarbeitung wird in vorbestimmten Intervallen durch die CPU 20 wiederholt. Zunächst wird bei Schritt S300 geprüft, ob ein Zählwert des Speicherschutzverletzungszählers gleich oder kleiner ist als ein vorbestimmter Wert. Der Speicherschutzverletzungszähler wird bei Schritt S300 von 5 wie später beschrieben inkrementiert. Das Ablaufdiagramm von 5 wird ausgeführt, wenn die Speicherschutzverletzungsunterbrechung durch die Fehlersteuerschaltung 28 erzeugt wird. Aus diesem Grund gibt der Zählwert des Speicherschutzverletzungszählers die Häufigkeit der verletzenden Zugriffe, d. h. die Häufigkeit des Auftretens der Speicherschutzverletzung, an.Next, the flowchart shown in FIG 4 shown processing described. This processing is repeated by the CPU 20 at predetermined intervals. First will it is checked at step S300 whether a count value of the memory protection violation counter is equal to or smaller than a predetermined value. The memory protection violation counter is counted from step S300 5 incremented as described later. The flowchart of 5 is executed when the memory protection violation interrupt is generated by the error control circuit 28. For this reason, the count value of the memory protection violation counter indicates the frequency of the violating accesses, ie the frequency of the occurrence of the memory protection violation.

Falls der Zählwert des Speicherschutzverletzungszählers bei Schritt S300 gleich oder kleiner ist, wird Schritt 310 ausgeführt, um die Speicherschutzverletzungsunterbrechung in dem Speicherschutzverletzungsunterbrechungseinstellregister 26 auf gültig festzulegen. Falls der Zählwert des Speicherschutzverletzungszählers als gleich oder größer bzw. größer als der vorbestimmte Wert ermittelt wird, wird Schritt S320 ausgeführt, um die Speicherschutzverletzungsunterbrechung auf ungültig festzulegen. Aus diesem Grund wird, soweit die Häufigkeit des Auftretens der Speicherschutzverletzung gleich oder kleiner ist als der vorbestimmte Wert, die Speicherschutzverletzungsunterbrechung auf gültig festgelegt, und wird die Speicherschutzverletzungsunterbrechung bei jedem Auftreten der Speicherschutzverletzung erzeugt. Die Speicherschutzverletzungsunterbrechung wird jedoch auf ungültig festgelegt, wenn die Häufigkeit des Auftretens der Speicherschutzverletzung größer wird als der vorbestimmte Wert. Infolge dessen wird die Speicherschutzverletzungsunterbrechung auch im Falle des Auftretens der Speicherschutzverletzung nicht erzeugt.If the count value of the memory protection violation counter is equal to or smaller at step S300, step 310 is executed to set the memory protection violation interrupt in the memory protection violation interrupt setting register 26 to valid. If the count of the memory protection violation counter is determined to be equal to or greater than the predetermined value, step S320 is executed to invalidate the memory protection violation interrupt. For this reason, as far as the number of occurrences of the memory protection violation is equal to or less than the predetermined value, the memory protection violation interrupt is set valid, and the memory protection violation interrupt is generated every occurrence of the memory protection violation. However, the memory protection violation interrupt is set to be invalid when the number of occurrences of the memory protection violation becomes greater than the predetermined value. As a result, the memory protection violation interrupt is not generated even if the memory protection violation occurs.

Bei dem folgenden Schritt S330 wird eine Warnleuchte in einem Instrumentenfeld vor dem Fahrer aktiviert, d. h. dazu angesteuert, einzuschalten und dadurch den Fahrer über die Abnormalität zu benachrichtigen, welche bewirken wird, dass die Speicherschutzverletzung kontinuierlich auftritt. Zurzeit des Aufleuchtens der Warnleuchte wird die Speicherschutzverletzungsunterbrechung invalidiert, aber arbeitet die Speicherschutzfunktion in gültiger Weise. Infolge dessen werden die Daten in dem Speicher nicht fehlerhaft überschrieben, und wird die Steuerung sicher fortgesetzt.In the following step S330, a warning lamp in an instrument panel in front of the driver is activated, i. H. commanded to turn on, thereby notifying the driver of the abnormality which will cause the memory protection violation to occur continuously. At the time the warning lamp is lit, the memory protection violation interrupt is invalidated, but the memory protection function is validly operating. As a result, the data in the memory is not erroneously rewritten, and control is safely continued.

Bei dem folgenden Schritt S340 wird eine Invalidierungszeitspanne gemessen, nachdem die Speicherschutzverletzungsunterbrechung auf ungültig gesetzt worden ist. Bei Schritt S350 wird geprüft, ob die Invalidierungszeitspanne gleich oder länger ist als eine vorbestimmte Zeitspanne. Falls die Invalidierungszeitspanne als gleich oder länger als die vorbestimmte Zeitspanne ermittelt wird, wird Schritt S360 ausgeführt, um die Ausschaltausgabe über die Ausgangsschaltung 36 an die Drosselklappenmotoransteuerschaltung 14 zu legen. Folglich ist es möglich, das Auftreten unvorhersehbarer Situationen auch dann zu verhindern, wenn die Speicherschutzschaltung 24 ausfällt und gesperrt wird, um den verletzenden Zugriff nach dem Invalidieren der Speicherschutzverletzungsunterbrechung zu verbieten. In diesem Fall ist es erwünscht, den Fahrer durch Aktivieren einer Warnleuchte, die sich von der bei Schritt S330 aktivierten Warnleuchte unterscheidet, oder durch Ändern der Betriebsart der bei Schritt S330 aktivierten Warnleuchte, darüber zu benachrichtigen, dass die ECU 10 das Steuern des Steuerobjekts angehalten hat.In the following step S340, an invalidation period of time is measured after the memory protection violation interrupt has been set to invalid. In step S350, it is checked whether the invalidation period is equal to or longer than a predetermined period. If the invalidation time period is determined to be equal to or longer than the predetermined time period, step S360 is executed to apply the cut-off output to the throttle motor drive circuit 14 via the output circuit 36 . Consequently, it is possible to prevent unpredictable situations from occurring even when the memory protection circuit 24 fails and is disabled to prohibit the infringing access after invalidating the memory protection violation interrupt. In this case, it is desirable to notify the driver that the ECU 10 stops controlling the control object by activating a warning lamp different from the warning lamp activated at step S330 or by changing the mode of the warning lamp activated at step S330 Has.

In der Verarbeitung des Ablaufdiagramms von 5, welche durch die CPU 20 zur Zeit des Auftretens der Speicherschutzverletzungsunterbrechung ausgeführt wird (S310), wird der Speicherschutzverletzungszähler bei Schritt S400 aktiviert. Ferner wird bei Schritt S410 die Ausgabe des Überwachungssignals durch Ausführen zum Beispiel der Endlosschleifenverarbeitung angehalten. Folglich wird der Mikrocomputer 12 durch ein Mikrocomputerrücksetzsignal, das von der integrierten Überwachungsschaltung 16 angelegt wird, zurückgesetzt. Infolge dessen wird in dem Fall, in dem die Speicherschutzverletzung nur vorübergehend auftritt, der Mikrocomputer 12 normalisiert, so dass die Speicherzugriffsverletzung danach nicht erneut auftritt.In the processing of the flowchart of 5 which is executed by the CPU 20 at the time of occurrence of the memory protection violation interrupt (S310), the memory protection violation counter is activated at step S400. Further, at step S410, the output of the monitor signal is stopped by executing, for example, the endless loop processing. Consequently, the microcomputer 12 is reset by a microcomputer reset signal applied from the monitor integrated circuit 16. FIG. As a result, in the case where the memory protection violation occurs only temporarily, the microcomputer 12 is normalized so that the memory access violation does not occur again thereafter.

Falls die Speicherzugriffsverletzung fortdauernd bzw. beständig auftritt, wird der Mikrocomputer 12 wiederholt zurückgesetzt und grundlegend gesperrt, um seinen Steuerungsbetriebsablauf fortzusetzen. In dem vorstehend beschriebenen Ausführungsbeispiel jedoch wird in dem Fall, dass die Speicherschutzverletzungsunterbrechung bei Schritt S210 als auf ungültig gesetzt ermittelt wird, wird die Verarbeitung des Ablaufdiagramms von 3 einmalig beendet, ohne die Speicherschutzverletzungsunterbrechung zu erzeugen. Folglich wird die ECU 10 in die Lage versetzt, die Steuerung des Steuerobjekts auch dann fortzusetzen, wenn die Speicherschutzverletzung auftritt.If the memory access violation persists, the microcomputer 12 will be repeatedly reset and fundamentally disabled to continue its control operation. However, in the embodiment described above, in the event that the memory protection violation interrupt is determined to be invalid at step S210, the processing of the flowchart of FIG 3 terminated once without generating the memory protection violation interrupt. Consequently, the ECU 10 is enabled to continue the control of the control object even when the memory protection violation occurs.

6 ist ein Sequenzdiagramm, das ein Beispiel einer Zeitbeziehung zwischen der Verarbeitung verschiedenartiger Programme zeigt, die in dem Mikrocomputer 12 ausgeführt werden. In dem in 6 gezeigten Beispiel wird angenommen, dass das Betriebssystemprogramm ein Steuerfunktionsprogramm ausliest und aktiviert, nachdem die Speicherschutzverletzungsunterbrechung auf der Grundlage des Zählwerts des Speicherschutzverletzungszählers auf gültig oder ungültig gesetzt worden ist. Wenn die Speicherschutzverletzung im Verlauf der Ausführung des Steuerfunktionsprogramms auftritt, erzeugt die Fehlersteuerschaltung 28 die Speicherschutzverletzungsunterbrechung, falls die Speicherschutzverletzungsunterbrechung als gültig festgelegt ist. Die Ausführung des Steuerfunktionsprogramms wird durch die Speicherschutzverletzungsunterbrechung unterbrochen und die Fehlerverarbeitung wird begonnen. Speziell wird der Speicherschutzverletzungszähler inkrementiert und wird die Verarbeitung zum Anhalten bzw. Beenden des Überwachungssignals ausgeführt. Folglich wird, da das Überwachungssignal angehalten wird, der Mikrocomputer durch die integrierte Überwachungsschaltung 16 zurückgesetzt. 6 12 is a sequence chart showing an example of a timing relationship between the processing of various programs executed in the microcomputer 12. FIG. in the in 6 In the example shown, it is assumed that the operating system program reads and activates a control function program after the memory protection violation interrupt has been validated or invalid based on the count value of the memory protection violation counter. When the memory protection violation occurs in the course of execution of the control function program, the error control circuit 28 generates the memory protection violation interrupt if the memory protection violation interrupt is determined to be valid is. Execution of the control function program is interrupted by the memory protection violation interrupt and error processing is started. Specifically, the memory protection violation counter is incremented and processing for stopping the monitor signal is performed. Consequently, since the monitor signal is stopped, the microcomputer is reset by the monitor IC 16. FIG.

Wenn der Mikrocomputer 12 zurückgesetzt ist und seinen Betriebsablauf neu beginnt, arbeitet das Betriebssystemprogramm, und wird das Überwachungssignal periodisch ausgegeben (Aktivierung des Überwachungssignals). Das Betriebssystemprogramm liest aus und aktiviert ein Sicherheitsfunktionsprogramm. Das Sicherheitsfunktionsprogramm diagnostiziert den Betriebsablauf des Mikrocomputers 12 und gibt sein Diagnoseergebnis an die integrierte Überwachungsschaltung 16 aus. Falls das Diagnoseergebnis einen kritischen Fehler anzeigt, legt die integrierte Überwachungsschaltung 16 die Ausschaltausgabe an die Drosselklappenmotoransteuerschaltung 14 an.When the microcomputer 12 is reset and restarts its operation, the operating system program operates and the monitor signal is periodically output (activation of the monitor signal). The operating system program reads and activates a security function program. The safety function program diagnoses the operation of the microcomputer 12 and outputs its diagnosis result to the monitor IC 16 . If the diagnostic result indicates a critical fault, the monitor integrated circuit 16 applies the turn-off output to the throttle motor driver circuit 14 .

Falls der Zählwert des Speicherschutzverletzungszählers den vorbestimmten Wert erreicht, das heißt, falls die Speicherschutzverletzungsunterbrechung auf ungültig gesetzt wird, misst das Sicherheitsfunktionsprogramm die Invalidierungszeitspanne der Speicherschutzverletzungsunterbrechung und führt eine Verarbeitung zum Aktivieren der Warnleuchte aus. Wenn die Invalidierungszeitspanne als länger als die vorbestimmte Zeitspanne ermittelt wird, legt das Sicherheitsfunktionsprogramm die Ausschaltausgabe über die Ausgangsschaltung 36 an die Drosselklappenmotoransteuerschaltung 14 an.If the count value of the memory protection violation counter reaches the predetermined value, that is, if the memory protection violation interrupt is set invalid, the safety function program measures the invalidation period of the memory protection violation interrupt and executes processing for activating the warning lamp. If the invalidation time period is determined to be longer than the predetermined time period, the safety functions program applies the disable output to the throttle motor driver circuit 14 via the output circuit 36 .

Nachstehend wird eine Rücksetzverarbeitung zum Zurücksetzen des Speicherschutzverletzungszählers und der Invalidierungszeitspanne unter Bezugnahme auf das Ablaufdiagramm von 7 beschrieben. Die in dem Ablaufdiagramm von 7 gezeigte Rücksetzverarbeitung wird bei jeder Erfassung, dass ein Zündschalter des Fahrzeugs ausgeschaltet wird, ausgeführt. Das heißt, die in dem Ablaufdiagramm von 7 gezeigte Rücksetzverarbeitung wird unter der Annahme, dass ein Fahrzyklus des Fahrzeugs von dem Einschalten bis zu dem Ausschalten des Zündschalters andauert, zu einem Endezeitpunkt jedes Fahrzyklus ausgeführt.Next, reset processing for resetting the memory protection violation counter and the invalidation period will be described with reference to the flowchart of FIG 7 described. The in the flow chart of 7 The reset processing shown is executed every time it is detected that an ignition switch of the vehicle is turned off. That is, in the flow chart of 7 The reset processing shown is executed on the assumption that a driving cycle of the vehicle lasts from turning on to turning off the ignition switch at an end point of time of each driving cycle.

Bei einem ersten Schritt S500 wird der Fahrzyklus zu bzw. bei der Endezeit des Fahrzyklus aktualisiert. In einem nächsten Schritt S510 wird der Zählwert des Speicherschutzverletzungszählers, der in dem vorangehenden Zyklus gespeichert wurde, ausgelesen. Der Zählwert des Speicherschutzverletzungszählers wird mit dem entsprechenden Fahrzyklus kombiniert, das heißt, der Zählwert und der Fahrzyklus werden korreliert, und als die Kombination in einem Speicher gespeichert, welcher in der Lage ist, deren Inhalte auch nach dem Ausschalten des Zündschalters zu speichern, wie beispielsweise ein nicht-flüchtiger Speicher und ein stromgestütztes RAM.At a first step S500, the driving cycle is updated at the end time of the driving cycle. In a next step S510, the count value of the memory protection violation counter stored in the previous cycle is read out. The count value of the memory protection violation counter is combined with the corresponding driving cycle, that is, the count value and the driving cycle are correlated, and stored as the combination in a memory capable of storing their contents even after the ignition switch is turned off, such as a non-volatile memory and a powered RAM.

Bei einem nächsten Schritt S520 wird der aktuelle Zählwert des Speicherschutzverletzungszählers ausgelesen. Dann werden bei einem Schritt S530 der vorangehende Zählwert des Speicherschutzverletzungszählers, der in dem vorangehenden Fahrzyklus gespeichert wurde, und der aktuelle Wert des Speicherschutzverletzungszählers verglichen, um zu prüfen, ob die beiden Zählwerte gleich sind. Der Speicherschutzverletzungszähler behält seinen Zählwert ungeachtet des Einschaltens und Ausschaltens des Zündschalters bei, bis sein Zählwert bei Schritt S400 in dem Ablaufdiagramm von 5 inkrementiert wird oder bei einem noch zu beschreibenden Schritt S540 auf null gesetzt wird. Aus diesem Grund wird in dem Fall, in dem beide bei Schritt S530 verglichenen Zählwerte gleich sind, ermittelt, dass in dem aktuellen Fahrzyklus keine Speicherschutzverletzung aufgetreten ist und die Abnormalität mit Bezug zu der Speicherschutzverletzung entfernt ist, das heißt, die Speicherschutzfunktion auf normal wiederhergestellt ist. In diesem Fall wird bei Schritt S540 der Zählwert des Speicherschutzverletzungszählers und die Invalidierungszeitspanne auf null gesetzt. Falls der gespeicherte vorangehende Zählwert und der aktuelle Zählwert nicht gleich sind, das heißt, der aktuelle Zählwert größer ist als der gespeicherte vorangehende Zählwert, wird der aktuelle Zählwert in der korrelierten Form mit dem aktualisierten Fahrzyklus bei Schritt S550 gespeichert.At a next step S520, the current count value of the memory protection violation counter is read out. Then, in step S530, the previous count value of the memory protection violation counter stored in the previous driving cycle and the current value of the memory protection violation counter are compared to check whether the two count values are equal. The memory protection violation counter keeps its count value regardless of turning on and off the ignition switch until its count value is reset at step S400 in the flowchart of FIG 5 is incremented or set to zero at a step S540 to be described later. For this reason, in the case where both count values compared at step S530 are equal, it is determined that no memory protection violation has occurred in the current driving cycle and the abnormality related to the memory protection violation is removed, that is, the memory protection function is restored to normal . In this case, at step S540, the count value of the memory protection violation counter and the invalidation period are set to zero. If the stored previous count and the current count are not equal, that is, the current count is greater than the stored previous count, the current count is stored in the correlated form with the updated drive cycle at step S550.

Es wird angemerkt, dass die Speicherschutzverletzungsunterbrechung als ein Teil einer Initialisierungsverarbeitung dann, wenn der Zündschalter eingeschaltet und der aktuelle Fahrzyklus begonnen wird, auf gültig gesetzt wird. Aus diesem Grund wird in dem Fall, dass die Speicherschutzverletzung in dem aktuellen Fahrzyklus auftritt, die Fehlerverarbeitung im Ansprechen auf die Speicherschutzverletzungsunterbrechung ausgeführt, und wird der Zählwert des Speicherschutzverletzungszählers inkrementiert. Falls keine Speicherschutzverletzung in dem aktuellen Fahrzyklus auftritt, bleibt der Zählwert des Speicherschutzverletzungszählers derselbe wie der Zählwert des Speicherschutzverletzungszählers, der in dem vorangehenden Zyklus gespeichert wurde.It is noted that the memory protection violation interrupt is validated as part of initialization processing when the ignition switch is turned on and the current driving cycle is started. For this reason, in the event that the memory protection violation occurs in the current driving cycle, the error processing is executed in response to the memory protection violation interruption, and the count value of the memory protection violation counter is incremented. If no memory violation occurs in the current drive cycle, the count of the memory violation counter remains the same as the count of the memory violation counter stored in the previous cycle.

Es wird ferner angemerkt, dass kein Umschalten der Festlegung der Speicherschutzverletzungsunterbrechung auf gültig oder ungültig in Entsprechung zu dem Zählwert der Speicherschutzverletzungsunterbrechung als ein Teil der Initialisierungsverarbeitung nicht erfolgt, bis zumindest ein Auftreten der Speicherschutzverletzung ermittelt wird, nachdem die Speicherschutzverletzungsunterbrechung auf gültig gesetzt ist. Folglich ist es auch dann, wenn der Zählwert des Speicherschutzverletzungszählers inkrementiert wurde, bis die Speicherschutzverletzungsunterbrechung in dem vorangehenden Fahrzyklus auf ungültig gesetzt worden war, möglich, zumindest ein Auftreten der Speicherschutzverletzung durch den Speicherschutzverletzungszähler in dem aktuellen Fahrzyklus zu zählen.It is further noted that no toggling of the memory protection violation interrupt determination as valid or invalid in Correspondence to the memory protection violation interrupt count is not made as part of the initialization processing until at least one occurrence of the memory protection violation interrupt is detected after the memory protection violation interrupt is validated. Consequently, even if the count value of the memory protection violation counter was incremented until the memory protection violation interrupt was set to invalid in the previous driving cycle, it is possible to count at least one occurrence of the memory protection violation by the memory protection violation counter in the current driving cycle.

Die vorstehend unter Bezugnahme auf ein bevorzugtes Ausführungsbeispiel beschriebene Erfindung ist nicht auf das offenbarte Ausführungsbeispiel beschränkt, sondern kann mit verschiedenartigen Modifikationen implementiert werden.The invention described above with reference to a preferred embodiment is not limited to the disclosed embodiment but can be implemented with various modifications.

Zum Beispiel kann in dem vorstehend beschriebenen Ausführungsbeispiel die vorbestimmte Zeitspanne, die dazu verwendet wird, mit der Invalidierungszeitspanne zum Ermitteln des Zeitpunkts des Anlegens der Ausschaltausgabe an die Drosselklappenmotoransteuerschaltung 14 verglichen zu werden, eine feste Zeitspanne oder eine variable Zeitspanne sein. Falls die vorbestimmte Zeitspanne variabel ausgelegt ist, kann die Länge der vorbestimmten Zeitspanne mit zum Beispiel einem Zeitintervall von Erscheinungen der Speicherschutzverletzungsunterbrechungen variiert werden. Speziell kann das Zeitintervall zwischen Erscheinungen der Speicherschutzverletzungsunterbrechungen durch einen Intervallmessteil gemessen werden, und kann die vorbestimmte Zeitspanne, welche mit der Invalidierungszeitspanne zu vergleichen ist, vergrößert werden, wenn ein Mittelwert von Zeitintervallen, die durch den Intervallmessteil gemessen wurden, zunimmt.For example, in the embodiment described above, the predetermined time period used to be compared with the invalidation time period for determining the timing of applying the disable output to the throttle motor driver circuit 14 may be a fixed time period or a variable time period. If the predetermined period of time is made variable, the length of the predetermined period of time may be varied with, for example, a time interval of occurrences of the memory protection violation interrupts. Specifically, the time interval between occurrences of the memory protection violation interrupts can be measured by an interval measuring part, and the predetermined time period to be compared with the invalidation time period can be increased as an average value of time intervals measured by the interval measuring part increases.

Ferner wird in dem vorstehend beschriebenen Ausführungsbeispiel geprüft, ob die Abnormalität mit Bezug zu der Speicherschutzverletzung beseitigt ist, indem der aktuelle Zählwert des Speicherschutzverletzungszählers, der zur Endezeit des aktuellen Fahrzyklus bereitgestellt wurde, mit dem vorangehenden Zählwert des Speicherschutzverletzungszählers, welcher zur Endezeit (erster Zeitpunkt) des vorangehenden Fahrzyklus gespeichert wurde, verglichen wird. Jedoch braucht der Zeitpunkt (zweiter Zeitpunkt) des Messens des Zählwerts des Speicherschutzverletzungszählers in dem aktuellen Fahrzyklus nicht immer bei der Endezeit des aktuellen Fahrzyklus liegen, sondern kann bei einem Zeitpunkt liegen, welcher ein ausreichendes Zeitintervall zum zumindest einmaligen Ausführen des Programms, das die Speicherschutzverletzung verursacht, nach dem Beginnen des aktuellen Fahrzyklus sicherstellt.Further, in the embodiment described above, it is checked whether the abnormality related to the memory protection violation is eliminated by comparing the current count value of the memory protection violation counter provided at the end time of the current driving cycle with the previous count value of the memory protection violation counter provided at the end time (first time point). of the previous driving cycle was stored is compared. However, the point in time (second point in time) of measuring the count value of the memory protection violation counter in the current driving cycle does not always have to be at the end time of the current driving cycle, but can be at a point in time which is a sufficient time interval for at least once executing the program that causes the memory protection violation , after starting the current driving cycle.

Claims (5)

Elektronische Steuereinheit mit einem Mikrocomputer (12), welcher umfasst: einen Speicherschutzteil (22, 24, 28), welcher einen Zugriff auf einen anderen Bereich als einen zugriffserlaubten Speicherbereich als einen verletzenden Zugriff verbietet und bei Auftreten des verletzenden Zugriffs eine Speicherschutzverletzungsunterbrechung erzeugt, um den Mikrocomputer zurückzusetzen, dadurch gekennzeichnet, dass der Mikrocomputer (12) ferner umfasst: einen Zählteil (20, S400) zum Zählen einer Häufigkeit von verletzenden Zugriffen; und einen Invalidationsteil (20, S300, S320) zum Invalidieren der Erzeugung der Speicherschutzverletzungsunterbrechung in dem Fall, in dem ein durch den Zählteil (20, S400) gezählter Zählwert der verletzenden Zugriffe einen vorbestimmten Zählwert erreicht, während das Verbieten der verletzenden Zugriffe durch den Speicherschutzteil beibehalten wird.An electronic control unit having a microcomputer (12), comprising: a memory protection part (22, 24, 28) which prohibits access to an area other than an access-permitted memory area as an infringing access and, upon occurrence of the infringing access, generates a memory protection violation interrupt to prevent the resetting the microcomputer, characterized in that the microcomputer (12) further comprises: a counting part (20, S400) for counting a frequency of access violations; and an invalidating part (20, S300, S320) for invalidating generation of the memory protection violation interrupt in the case where a count of the violating accesses counted by the counting part (20, S400) reaches a predetermined count while prohibiting the violating accesses by the memory protecting part is maintained. Elektronische Steuereinheit nach Anspruch 1, bei der: der Mikrocomputer (12) dazu konfiguriert ist, ein Steuersignal zum Steuern eines vorbestimmten Steuerobjekts (40) auszugeben; der Mikrocomputer (12) ferner einen Messteil (20; S340) umfasst zum Messen einer Invalidierungszeitspanne nach dem Invalidieren der Erzeugung der Speicherschutzverletzungsunterbrechung durch den Invalidationsteil (20, S300, S320); und der Mikrocomputer (12) ferner einen Abschaltteil (20, S350, S360) umfasst zum Abschalten des Ausgebens des Steuersignals an das Steuerobjekt (40), wenn die durch den Messteil (20; S340) gemessene Invalidierungszeitspanne eine vorbestimmte Zeitspanne erreicht.Electronic control unit after claim 1 wherein: the microcomputer (12) is configured to output a control signal for controlling a predetermined control object (40); the microcomputer (12) further comprises a measuring part (20; S340) for measuring an invalidation time period after invalidating generation of the memory protection violation interrupt by the invalidating part (20, S300, S320); and the microcomputer (12) further comprises a turning off part (20, S350, S360) for turning off the outputting of the control signal to the control object (40) when the invalidation period measured by the measuring part (20; S340) reaches a predetermined period of time. Elektronische Steuereinheit nach Anspruch 1, bei der: der Mikrocomputer (12) dazu konfiguriert ist, eine fahrzeuginterne Einrichtung (40), die in einem Fahrzeug verbaut ist, zu steuern; der Mikrocomputer (12) ferner einen Speicherteil (20, S550) umfasst zum Speichern, zu einem ersten Zeitpunkt des Ausschaltens eines Zündschalters des Fahrzeugs, des Zählwerts der durch den Zählteil (20, S400) gezählten verletzenden Zugriffe; und der Mikrocomputer (12) ferner einen Rücksetzteil (20, S520, S530, S540) umfasst zum Auslesen, zu einem zweiten Zeitpunkt nach dem Einschalten des Zündschalters des Fahrzeugs nach dem ersten Zeitpunkt, des durch den Zählteil (20, S520) gezählten Zählwerts von verletzenden Zugriffen, Vergleichen des Zählwerts mit einem in dem Speicherteil (20, S550) gespeicherten vorbestimmten Wert, und Zurücksetzen des Zählwerts des Zählteils (20, S400), wenn ein Vergleichsergebnis anzeigt, dass der Zählwert gleich dem vorbestimmten Wert ist.Electronic control unit after claim 1 wherein: the microcomputer (12) is configured to control an in-vehicle device (40) installed in a vehicle; the microcomputer (12) further comprises a storage part (20, S550) for storing, at a first timing of turning off an ignition switch of the vehicle, the count value of the violative accesses counted by the counting part (20, S400); and the microcomputer (12) further comprises a resetting part (20, S520, S530, S540) for reading out, at a second point in time after turning on the ignition switch of the vehicle after the first point in time, the count value counted by the counting part (20, S520). violating accesses, comparing the count value with a predetermined value stored in the memory part (20, S550), and resetting the count value of the count part (20, S400) when a comparison result indicates that the count value is equal to the predetermined value. Elektronische Steuereinheit nach Anspruch 2, bei der: der Mikrocomputer (12) dazu konfiguriert ist, eine fahrzeuginterne Einrichtung (40), die in einem Fahrzeug verbaut ist, als das Steuerobjekt zu steuern; der Mikrocomputer (12) ferner einen Speicherteil (20, S550) umfasst zum Speichern, zu einem ersten Zeitpunkt des Ausschaltens eines Zündschalters des Fahrzeugs, des durch den Zählteil (20, S520) gezählten Zählwerts der verletzenden Zugriffe; und der Mikrocomputer (12) ferner einen Rücksetzteil (20, S520, S530, S540) umfasst zum Auslesen, zu einem zweiten Zeitpunkt nach dem Einschalten eines Zündschalters des Fahrzeugs nach dem ersten Zeitpunkt, des durch den Zählteil (20, S520) gezählten Zählwerts von verletzenden Zugriffen, Vergleichen des Zählwerts mit einem in dem Speicherteil (20, S550) gespeicherten vorbestimmten Wert, und Zurücksetzen des Zählwerts des Zählteils (20, S520) und der durch den Messteil (20, S340) gemessenen Invalidationszeitspanne, wenn ein Vergleichsergebnis anzeigt, dass der Zählwert gleich dem in dem Speicherteil (20, S550) gespeicherten vorbestimmten Wert ist.Electronic control unit after claim 2 wherein: the microcomputer (12) is configured to control an in-vehicle device (40) installed in a vehicle as the control object; the microcomputer (12) further comprises a storage part (20, S550) for storing, at a first timing of turning off an ignition switch of the vehicle, the count value of the violating accesses counted by the counting part (20, S520); and the microcomputer (12) further comprises a resetting part (20, S520, S530, S540) for reading out, at a second point in time after an ignition switch of the vehicle is turned on after the first point in time, the count value of counted by the counting part (20, S520). violating accesses, comparing the count value with a predetermined value stored in the storage part (20, S550), and resetting the count value of the counting part (20, S520) and the invalidation time period measured by the measuring part (20, S340) if a comparison result indicates that the count value is equal to the predetermined value stored in the storage part (20, S550). Elektronische Steuereinheit nach einem der Ansprüche 2 bis 4, bei der: der Mikrocomputer (12) ferner einen Intervallmessteil (20) umfasst zum Messen eines Intervalls von Erscheinungen der Speicherschutzunterbrechungen; und der Abschaltteil (20, S350, S360) die vorbestimmte Zeitspanne, welche mit der Invalidationszeitspanne verglichen wird, vergrößert, wenn ein mittlerer Wert von durch den Intervallmessteil (20) gemessenen Intervallen zunimmt.Electronic control unit according to any of claims 2 until 4 wherein: the microcomputer (12) further comprises an interval measuring part (20) for measuring an interval of occurrences of the memory protection breaks; and the disabling part (20, S350, S360) increases the predetermined period of time, which is compared with the invalidation period of time, as an average value of intervals measured by the interval measuring part (20) increases.
DE102017211568.8A 2016-07-27 2017-07-06 ELECTRONIC CONTROL UNIT Active DE102017211568B4 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-147634 2016-07-27
JP2016147634A JP6589767B2 (en) 2016-07-27 2016-07-27 Electronic control unit

Publications (2)

Publication Number Publication Date
DE102017211568A1 DE102017211568A1 (en) 2018-02-01
DE102017211568B4 true DE102017211568B4 (en) 2022-04-28

Family

ID=60951528

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017211568.8A Active DE102017211568B4 (en) 2016-07-27 2017-07-06 ELECTRONIC CONTROL UNIT

Country Status (2)

Country Link
JP (1) JP6589767B2 (en)
DE (1) DE102017211568B4 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136806A1 (en) 2009-11-25 2014-05-15 Micron Technology, Inc. Authenticated Operations and Event Counters
JP2014137734A (en) 2013-01-17 2014-07-28 Toyota Motor Corp Information processor and program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006235924A (en) * 2005-02-24 2006-09-07 Denso Corp Electronic control device for detecting execution address abnormality of program
JP5942778B2 (en) * 2012-10-22 2016-06-29 トヨタ自動車株式会社 Information processing device
JP5975923B2 (en) * 2013-03-29 2016-08-23 日立オートモティブシステムズ株式会社 Vehicle control device
JP6323235B2 (en) * 2014-07-29 2018-05-16 株式会社デンソー Electronic control unit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136806A1 (en) 2009-11-25 2014-05-15 Micron Technology, Inc. Authenticated Operations and Event Counters
JP2014137734A (en) 2013-01-17 2014-07-28 Toyota Motor Corp Information processor and program

Also Published As

Publication number Publication date
JP2018018274A (en) 2018-02-01
JP6589767B2 (en) 2019-10-16
DE102017211568A1 (en) 2018-02-01

Similar Documents

Publication Publication Date Title
EP2718689B1 (en) Method for monitoring a subsystem installed in a motor vehicle
DE19929796B4 (en) Apparatus and method for rewriting data from a volatile memory to a nonvolatile memory
DE102014222860A1 (en) Electronic vehicle control unit
WO2016156095A1 (en) Method for protecting security-relevant data in a cache memory
DE102005009813B4 (en) Electronic control system and method with microcomputer monitoring suppression function
DE102017211568B4 (en) ELECTRONIC CONTROL UNIT
DE102006047637A1 (en) Method for scanning an environment of a vehicle
DE102016200130B4 (en) Electronic control device
WO2015135704A1 (en) Device and method for detecting a manipulation to a program code
DE102020205416A1 (en) Device and method for diagnosing a sleep mode of a CAN for a vehicle
DE112019007432T5 (en) ELECTRONIC CONTROL UNIT AND PROGRAM
DE3714325A1 (en) DATA PROTECTION DEVICE FOR A COMPUTER OF AN INTERNAL COMBUSTION ENGINE CONTROLLER
DE102016200413A1 (en) MICROCOMPUTER
DE102022100458A1 (en) ON-BOARD INFORMATION PROCESSING EQUIPMENT, INFORMATION PROCESSING METHOD AND COMPUTER READABLE STORAGE MEDIA
DE102006003147B4 (en) Method of restoring control of a continuously resetting control unit
DE102013221343A1 (en) CONTROL DEVICE AND VEHICLE CONTROL SYSTEM
EP1894101A1 (en) Method and apparatus for monitoring unauthorized access to the memory of an arithmetic unit, especially in a motor vehicle
DE102017219195B4 (en) PROCEDURE FOR ENSURE OPERATION OF A COMPUTER
DE112020007129T5 (en) INFORMATION PROCESSING DEVICE AND INFORMATION PROCESSING METHOD
DE102018219700B4 (en) Control device
DE112020002650T5 (en) vehicle device
DE102017208872A1 (en) Electronic control unit
DE102017200280B4 (en) Method and apparatus for qualifying a fault of a sensor by means of status information
EP3752911A1 (en) Method for installing a program code packet onto a device, device, and motor vehicle
DE102019208129B4 (en) Electronic control unit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R084 Declaration of willingness to licence