DE102010003530A1 - Hardware-Datenverarbeitungseinheit und Verfahren zur Überwachung einer Rundendauer einer Routingeinheit - Google Patents

Hardware-Datenverarbeitungseinheit und Verfahren zur Überwachung einer Rundendauer einer Routingeinheit Download PDF

Info

Publication number
DE102010003530A1
DE102010003530A1 DE102010003530A DE102010003530A DE102010003530A1 DE 102010003530 A1 DE102010003530 A1 DE 102010003530A1 DE 102010003530 A DE102010003530 A DE 102010003530A DE 102010003530 A DE102010003530 A DE 102010003530A DE 102010003530 A1 DE102010003530 A1 DE 102010003530A1
Authority
DE
Germany
Prior art keywords
unit
routing
data processing
module
processing unit
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.)
Ceased
Application number
DE102010003530A
Other languages
English (en)
Inventor
Eberhard Boehl
Ruben Bartholomae
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.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
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 Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102010003530A priority Critical patent/DE102010003530A1/de
Priority to US13/638,091 priority patent/US20130204580A1/en
Priority to PCT/EP2011/053952 priority patent/WO2011120798A1/de
Priority to CN201180016883.XA priority patent/CN102822805B/zh
Publication of DE102010003530A1 publication Critical patent/DE102010003530A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • 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/0745Error 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 an input/output transactions management context
    • 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/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Die Erfindung betrifft eine Hardware-Datenverarbeitungseinheit mit mindestens einem Basisgebermodul, welches Basiswerte einer physikalischen Größe zur Verfügung stellt, mit mindestens einem Logikmodul und mit mindestens einer Routingeinheit. Dabei arbitiert die Routingeinheit eine Gruppe ihr zugeordneter Datenknoten nacheinander in einer festgelegten Reihenfolge und durch ein komplettes Durchlaufen der festgelegten Arbitrierungsreihenfolge ist eine Rundendauer bestimmt. Weiterhin weist die Hardware-Datenverarbeitungseinheit zur Überprüfung der Rundendauer der Routingeinheit Mittel auf, ein erstes blockierendes Zugreifen eines bestimmten Datenknoten der Gruppe durchzuführen, einen ersten Basiswert der physikalischen Größe durch das Basisgebermodul zu empfangen und zu speichern, ein zweites blockierendes Zugreifen des bestimmten Datenknoten durchzuführen, einen zweiten Basiswert der physikalischen Größe durch das Basisgebermodul zu empfangen und zu speichern und eine Differenz zwischen dem ersten und dem zweiten Basiswert zu bilden.

Description

  • Stand der Technik
  • Die vorliegende Erfindung betrifft eine Hardware-Datenverarbeitungseinheit und ein Verfahren zur Überwachung einer Rundendauer einer Routingeinheit.
  • Es ist üblich, interne zeitliche Abläufe von Hardware-Datenverarbeitungs-Einheiten durch einen externen Prozessor oder durch einen externen Watchdog mit eigener Zeitbasis zu überwachen. Zum Beispiel bei Steuergeräten im Automotive-Bereich kommen solche Überwachungsansätze zum Einsatz, insbesondere, wenn mit den zeitlichen Abläufen sicherheitskritische Steuerungsabläufe, zum Beispiel in der Motorsteuerung, verbunden sind. Dazu muss also entweder ein einer Hardware-Datenverarbeitungseinheit zugeordneter Prozessor Rechenressource und Zeit für diese Aufgabe zur Verfügung stellen oder es muss die zusätzliche Hardware und Software für eine externe Watchdog-Überwachung zur Verfügung gestellt werden.
  • Offenbarung der Erfindung
  • Vorteile der Erfindung
  • Die vorliegende Erfindung gemäß den unabhängigen Ansprüchen ermöglicht eine besonders effiziente, sichere und zuverlässige Überprüfung der Rundenzeit einer Routingeinheit eines Hardware-Datenverarbeitungssystems, indem die Überwachung durch Mittel der Hardware-Datenverarbeitungseinheit durchgeführt wird. Die Routingeinheit arbitriert nacheinander alle Datenknoten einer ihr zugewiesenen Gruppe an Datenknoten. Durch einen Durchgang durch diese Reihenfolge (von einer bestimmten Position der Reihenfolge bis diese Position wieder erreich ist) ist die zu überprüfende Rundenzeit definiert. Durch wiederholte blockierende Zugriffe auf einen Datenknoten durch ein Logikmodul der Hardware-Datenverarbeitungseinheit, welches selbst zu der Gruppe der Datenknoten gehört, kann aus diesen Basiswerten die Rundendauer ermittelt werden, indem durch den Erfolg der Zugriffe die Übermittlung und Speicherung von Basiswerten durch ein Basisgebermodul getriggert wird.
  • Weitere Vorteile und Verbesserungen ergeben sich durch die Merkmale der abhängigen Ansprüche.
  • Besonders vorteilhaft ist es, wenn die durch die Routingeinheit nacheinander arbitrierten Datenknoten entweder (alle) der Routingeinheit zugewiesenen Datensenken oder (alle) der Routingeinheit zugewiesenen Datenquellen sind, da dadurch ein besonders übersichtliche und aussagekräftige Überwachung der Rundenzeit möglich ist und die Zugriffe durch die Logikeinheit als ausschließlich Lese- bzw. ausschließlich Schreibprozesse ausgestaltet werden können.
  • Es ist besonders zweckmäßig als Basis die Zeit und als Basiswerte Zeitstempel vorzusehen. Zum Beispiel im Automotivebereich ist alternativ oder zusätzlich auch die Basis „Winkel” (Basiswerte Winkelstempel) von Bedeutung. Je nach Anwendungsfall können auch andere physikalische Größen bzw. Basen zu diesen herangezogen werden.
  • In einer vorteilhaften Ausgestaltung wird die ermittelte Rundendauer bzw. die Differenz der Basiswerte mit Vergleichswerten bzw. mit mindestens einem Vergleichswert verglichen, zum Beispiel mit einem Minimum, einem Maximum, einem genau zu erfüllenden Wert, einem Intervall oder auch der Vergleich größer Null. Damit sind je nach Anforderungen der Rundendauer verschiedene Randbedingungen und darüber hinaus auch die Aktivität bestimmter an dem Vergleich beteiligten Module und Signale überprüfbar bzw. überwachbar. Um die Aktivität der an dem Vergleich beteiligten Module und Signale besonders effizient zu überprüfen, kann es darüber hinaus vorgesehen sein, bei einem Vergleich, vorzugsweise bei jedem Vergleich, egal, ob erfolgreich oder erfolglos, ein Aktivitätssignal zu generieren, beispielsweise als CPU-Interrupt oder auch als Signal nach außen oder an ein anderes Modul.
  • Wenn mindestens ein Vergleich erfolglos ist, kann diese Information zu Folgemaßnahmen wie Fehlersignalgenerierung oder CPU-Interrupts genutzt werden, so dass der erkannte Fehler z. B. schnell zur Aktivierung von Fehlerbehandlungsroutinen führen kann.
  • Zeichnungen
  • Es zeigen
  • 1 Schematische Architektur eines Timer-Moduls
  • 2 Schematische Architektur eines Logikmoduls eines Timer-Moduls
  • 3 Verfahren zur Überprüfung einer Rundendauer einer Routingeinheit
  • Ein Timer-Modul eines Steuergerätes kann vorzugsweise als IP-Block im Mikrocontroller eines Steuergeräts, beispielweise eines Fahrzeugsteuergeräts, implementiert werden. Er vereint die Zeit- und gegebenenfalls Winkelfunktionen auf sich, empfängt Signale von der Sensorik des Fahrzeugs (z. B. Drehratensensor eines ESP), bzw. wertet diese aus und wirkt auf die Aktuatoren des Autos (z. B. auf die Fahrdynamik im Falle „Schleudern”). Man könnte einen solchen Timer, wie im Folgenden beschrieben, alternativ auch in eine Endstufe integrieren oder separat vorsehen, er braucht aber immer eine konfigurierende Einheit (z. B. externe Recheneinheit), im Fall seiner Integration im Steuergerät-Mikrocontroller ist das z. B. die bzw. eine Steuergeräte-CPU (bzw. Recheneinheit).
  • In 1 ist die Gesamtarchitektur eines beispielhaften Timer-Moduls 100 gezeigt. Vereinfacht weist die Gesamtstruktur des Timer-Moduls eine Signal-Eingabeeinheit(en) 116 auf, die Werte an eine Routing-Einheit 101 ausgibt, diese Werte werden in anderen Modulen verarbeitet und die verarbeiteten Werte werden über die Routing-Einheit 101 an die Ausgabeeinheit 114 weitergeleitet. Durch die parallele Arbeitsweise der im Folgenden beschriebenen Module kann eine hohe Anzahl von Anforderungen innerhalb kurzer Zeit bedient werden. Sofern bestimmte Module nicht benötigt werden, können diese auch zum Zwecke der Stromersparnis (Leistungsverbrauch, Temperaturreduzierung) abgeschaltet werden.
  • Kern des Timer-Moduls 100 ist die zentrale Routing-Einheit 101, an welche Eingabe- (z. B. Modul(e) 116), Ausgabe- (z. B. Modul(e) 114), Verarbeitungs- (z. B. Modul 109) und Speichereinheiten (z. B. Modul 120) angeschlossen sind.
  • Die Routing-Einheit 101 verbindet die Module flexibel und konfigurierbar miteinander und stellt durch das blockierende Anfordern und Senden von Daten ein neues Interruptkonzept für ein Timer-Modul dar. Sie kommt ohne die Implementierung eines Interruptcontrollers aus, was Fläche und damit Chipkosten einspart. Ein zentrales Konzept der Timer-Einheit 100 ist der Routing-Mechanismus der Routing-Einheit 101 für Datenströme. Jedes Modul (bzw. Submodul) des Timer-Moduls 100, welches mit der Routing-Einheit 101 verbunden ist, kann eine beliebige Anzahl an Routing-Einheit-Schreibkanälen (Datenquellen) und eine beliebige Anzahl an Routing-Einheit-Lesekanälen (Datensenken) aufweisen. Das Konzept der Routing-Einheit 101 sieht vor, flexibel und effizient eine beliebige Datenquelle mit einer beliebigen Datensenke zu verbinden. Dies kann über den Datenrouting-Mechanismus realisiert werden, wie er aus der nicht vorveröffentlichten DE 10200900189 bekannt ist.
  • Das Parameterspeichermodul 120 besteht aus drei Untereinheiten 121, 122 und 123. Die Untereinheit 121 stellt die Schnittstelle zwischen dem FIFO(First In, First Out)-Speicher 122 und Routing-Einheit 101 dar. Die Untereinheit 123 stellt die Datenschnittstelle zwischen den generischen Busschnittstellen der Module, bzw. der Multiplexvorrichtung 112 (siehe unten), und dem FIFO 122 dar. Das Parameterspeichermodul 120 kann als Datenspeicher für eingehende Datencharakteristika oder als Parameterspeicher für ausgehende Daten dienen. Die Daten werden in einem Speicher, beispielweise einem RAM, gespeichert, welcher sich logisch innerhalb der FIFO-Untereinheit 122 befindet.
  • Das Timer-Eingangsmodul 116 (bestehend vorzugsweise aus mehreren Eingängen) ist verantwortlich für die Filterung und die Aufnahme von Eingangssignalen des Timermoduls 100. Verschiedene Charakteristika der Eingangssignale können innerhalb der Kanäle des Timer-Eingangsmoduls 116 gemessen werden. Dabei werden im Timer-Eingangsmodul 116 die Signale mit Zeitinformationen und anderen physikalischen Informationen verknüpft und nach der Verarbeitung und ggf. Zwischenspeicherung in der Ausgabeeinheit 114 zur Generierung von Ausgangssignalen benutzt. Die physikalischen Informationen sind beispielsweise der Winkel eines Motors oder auch jede andere physikalische Größe wie Masse, Temperatur, Pegelstand einer Flüssigkeit, Phasenlage einer Schwingung eine Anzahl von Ereignissen (Kanten) oder die Periodendauer eines Signals. Eingangscharakteristika können z. B. Zeitstempelwerte von detektierten steigenden oder fallenden Eingangsflanken zusammen mit dem neuen Signallevel oder die Anzahl der Flanken seit einer Kanal-Freigabe zusammen mit dem aktuellen Zeitstempel oder PWM-Signallängen für eine ganze PWM-Periode umfassen. Die Werte, die einem Eingangssignal zugeordnet werden, wie der Wert der Zeitbasis und der Wert der Winkelbasis zum Zeitpunkt des Eingangsevents, charakterisieren also das Eingangssignal und lassen Berechnungen in weiteren Modulen zu, die an die Routingeinheit 101 angeschlossen sind (z. B. Modul 109) und können dann eine Ausgabeeinheit (Ausgabeeinheit 114) ansprechen, in der in Abhängigkeit von den übermittelten Werten in Verbindung mit den aktuellen Zeit- und/oder Winkelbasis-Werten Ausgangssignale erzeugt werden.
  • Für fortgeschrittene Datenverarbeitung können die detektierten Eingangs-Charakteristika des Timer-Eingangsmoduls 116 durch die Routing-Einheit 101 zu weiteren Verarbeitungseinheiten des Timer-Moduls 100 geroutet werden.
  • Die Einheit zur Taktaufbereitung 102 ist verantwortlich für die Takt-Erzeugung der Zähler und des Timer-Moduls 100. Sie stellt konfigurierbare Takte zur Verfügung und die Zeitbasis-Einheit 103 mit sowohl zeit- als auch positionsbezogenen Zählern liefert eine gemeinsame Zeitbasis für das Timer-Modul 100 bzw. stellt aktuelle Zeit- und Positionsinformation (z. B. Winkel) zur Verfügung.
  • Die Einzelmodule werden mit den Takten und Zeitbasen versorgt und tauschen über die Routing-Einheit 101 Daten miteinander aus. Durch lokal in den Einzelmodulen vorliegende Komparatoren werden die Daten gegenüber der aktuellen Zeit und/oder Position verglichen und dabei getroffene Entscheidungen signalisiert, wie zum Beispiel dem Schalten eines Ausgangssignals.
  • Bei dem Routen der Daten mittels der Routing-Einheit 101 stellt die Verzweigungseinheit 111 die Daten einer Quelle auch mehreren Datensenken in einem oder verschiedenen Modulen zur Verfügung, da in der Regel ein blockierendes Lesen der Daten vorgesehen ist, das nur das einmalige Lesen eines Datums von einer Quelle erlaubt. Da jede Schreibadresse für die Submodul-Kanäle des Timer-Moduls 100, welche zu der Routing-Einheit 101 schreiben können, nur von einem einzigen Modul gelesen werden kann, ist es unmöglich, einen Datenstrom verschiedenen Modulen parallel zur Verfügung zu stellen. Dies gilt nicht für Quellen, die ihre Daten nicht ungültig machen, nachdem die Daten von einem Empfänger gelesen wurden, wie es zum Beispiel für das DPLL-Modul 104 vorgesehen sein kann. Um dieses Problem für reguläre Module zu lösen, ermöglicht es die Verzweigungseinheit 111, Datenströme mehrmals zu duplizieren. Dieses Submodul 111 stellt Eingangs- und Ausgangskanäle zur Verfügung. Um einen eingehenden Datenstrom zu klonen, kann der entsprechende Eingangskanal auf einen oder mehrere Ausgangskanäle gemappt werden.
  • Das DPLL(digital Phase locked loop)-Modul 104 wird für Frequenzmultiplikation eingesetzt. Zweck dieses Moduls 104 ist es eine größere Genauigkeit der Positions- oder Wert-Information auch im Fall von Anwendungen mit schnell veränderlichen Eingangsfrequenzen zu erreichen. Das DPLL-Modul 104 erzeugt aus positionsbezogenen Eingangssignalen Impulse, die feiner unterteilte Positionsinformationen in der Zeitbasis-Einheit 103 ermöglichen. Damit kann zum Beispiel eine Winkeluhr eine feinere Auflösung eines Drehwinkels anzeigen als die Eingangssignale vorgeben. Darüber hinaus sind in dem DPLL-Modul 104 Informationen über Geschwindigkeit oder Drehzahl verfügbar und es können Voraussagen getroffen werden, wann eine vorgegebene Position auch unter Einbeziehung eines zeitlichen Vorlaufs (z. B. Berücksichtigung der Trägheit des Ansteuermoduls) erreicht sein wird. Die Eingangssignale für das DPLL-Modul 104 werden über das Timer-Eingangsmodul 106 geführt, in einem Eingangsmapping-Modul 105 gefiltert oder auch in einem Sensormuster-Auswertungsmodul 115, beispielsweise insbesondere für die Auswertung von Elektromotoren, kombiniert.
  • Das Timer-Eingangsmodul 106 hat gegenüber den anderen Timer-Eingangsmodulen 116 also die Besonderheit, dass er aktuelle Filterwerte, mit denen er Eingangssignale filtert, an das Eingangsmapping-Modul 105 und das DPLL-Modul 104 weitergibt, und dort die Filterwerte auf die Zeitstempel der gefilterten Kante angerechnet werden, um eine tatsächliche Kantenzeit zu erhalten.
  • Das Sensormuster-Auswertungsmodul 115 kann verwendet werden, um die Eingaben von mehreren Hall-Sensoren auszuwerten und um gemeinsam mit dem Timer-Ausgangsmodul 113 (bestehend vorzugsweise aus mehreren Ausgängen) den Betrieb von Gleichstrommaschinen (BLDC, brushless direct current) zu unterstützen. Zusätzlich kann das Sensormuster-Auswertungsmodul 115 zum Beispiel auch verwendet werden, um die Rotationsgeschwindigkeit einer oder zweier elektrischer Maschinen zu berechnen.
  • Mittels der Ausgangsvergleichs-Einheit 108 können Ausgangssignale bitweise miteinander verglichen werden. Sie ist für den Einsatz in sicherheitsrelevanten Anwendungen konzipiert. Die Hauptidee ist hierbei, die Möglichkeit zu haben, Ausgänge zu verdoppeln, um in dieser Einheit verglichen werden zu können. Wird dazu zum Beispiel eine einfache EXOR(exclusive OR)-Funktion verwendet, kann es notwendig sein, das Ausgangsverhalten eines kompletten Zyklus der zu vergleichenden Ausgangsmodule sicherzustellen. Wie in 1 gezeigt, ist die Ausgangsvergleich-Einheit 108 über die mit dem Bezugszeichen 9 angedeutete Verbindung mit der Verbindung zwischen Timer-Ausgangsmodul 113 und dem Pin 12 verbunden.
  • Die Monitor-Einheit 107 ist ebenfalls für den Einsatz in sicherheitsrelevanten Anwendungen konzipiert. Die Hauptidee ist dabei, die Möglichkeit zu schaffen, gemeinsam genutzte Schaltkreise und Ressourcen zu überwachen. So wird die Aktivität der Uhren sowie die Grundaktivität der Routing-Einheit 101 überwacht. Die Monitor-Einheit 107 ermöglicht einer externen CPU (central processing unit) bzw. allgemein einer externen Recheneinheit die einfache Überwachung von zentralen Signalen für sicherheitskritische Anwendungen.
  • Unterbrechungslinien (Interrupt request lines) der Module sind in 1 durch vierstellige Bezugszeichen mit der Endung „2” und den ersten drei Ziffern entsprechend dem Modul gekennzeichnet. Das Unterbrechungskonzentrierungsmodul 110 wird eingesetzt, um die Unterbrechungslinien XXX2 der individuellen Submodule geeignet in Unterbrechungsgruppen zu bündeln und dann an die externe Recheneinheit weiterzuleiten.
  • Alle Module sind von der Recheneinheit über eine Busschnittstelle (universelle Handshaking-Schnittstelle) konfigurierbar. Über diese Busschnittstelle sind auch Daten austauschbar. Für das nicht an die Routing-Einheit angeschlossene Ausgabemodul Timer-Ausgangsmodul 113 werden hiermit die Ausgänge zum Beispiel für periodische Abläufe konfiguriert. Das Timer-Ausgangsmodul 113 bietet unabhängige Kanäle, z. B. um PWM(pulse width modulated)-Signale an jedem Ausgangspin zu generieren. Zusätzlich kann an einem Ausgang des Timer-Ausgangsmodul 113 ein Pulszähler-moduliertes Signal erzeugt werden.
  • Das mit der Router-Einheit 101 verbundene Timer-Ausgangsmodul 114 ist aufgrund seiner Verbindung mit der Routereinheit 101 in der Lage, komplexe Ausgangssignale ohne CPU-Interaktion zu erzeugen. Typischerweise werden Ausgangssignal-Charakteristika über die Verbindung zur Router-Einheit 101 durch mit der Router-Einheit 101 verbundene Submodule wie zum Beispiel das DPLL-Submodul 104, das Mehrkanal-Sequenzer-Modul 109 oder das Parameterspeichermodul 120 zur Verfügung gestellt.
  • Das Mehrkanal-Sequenzer-Modul 109 ist ein generisches Datenverarbeitungsmodul, welches mit der Routing-Einheit 101 verbunden ist. Eine seiner Hauptanwendungen ist es, komplexe Ausgangssequenzen zu berechnen, welche von den Zeitbasis-Werten der Zeitbasis-Einheit 103 abhängen können und welche in Kombination mit dem Modul 114 bearbeitet werden. Jedes Untermodul des mit der Router-Einheit 101 verbundenen Timer-Ausgangsmoduls 114 umfasst Ausgangskanäle, welche unabhängig voneinander in verschiedenen konfigurierbaren Betriebsmodi operieren können.
  • Der Mikrocontroller-Bus ist in 1 mit dem Bezugszeichen 11, verschiedene Pins (bzw. Pingruppen) sind mit den Bezugszeichen 1215 bezeichnet.
  • Das Timermodul ist mit einer generischen Busschnittstelle ausgerüstet, welche vielseitig auf verschiedene SoC-Busse (Soc=System an a chip) angepasst werden kann. Die Anpassung der generischen Busschnittstelle wird typischerweise über ein Brückenmodul erreicht, welches die Signale der generischen Busschnittstelle in die Signale des jeweiligen SoC-Busses übersetzt. Die generischen Busschnittstellen der Module sind in 1 durch vierstellige Bezugszeichen mit der Endung „1” und den ersten drei Ziffern entsprechend dem Modul gekennzeichnet. Die Multiplexvorrichtung 112 multiplext die generischen Busschnittstellen. In der 1 sind die Verbindungen zwischen den generischen Busschnittstellen XXX1 und der Multiplexvorrichtung 112 mit den Bezugszeichen 18 angedeutet.
  • In 2 ist das Mehrkanal-Sequenzer-Modul 109 aus 1 in einer vorteilhaften Ausführungsform 200 gezeigt. Dabei weist das Mehrkanal-Sequenzer-Modul (MCS) 200 die Stufen RAM-Zugangsdecodierung 201, RAM-Zugang 202, Befehlsvordecodierung 203 und Befehlsausführung 204 auf. Die Stufe RAM-Zugangsdecodierung 201 umfasst den RAM-Zugangscodierer 220, die Stufe RAM-Zugang 202 den RAM-Speicher 221, die Stufe Befehlsvorcodierung 203 den Befehlsvordecodierer 222 und die Stufe Befehlsausführung 204 den Befehlsdecodierer 223, die arithmetisch-logische Einheit (ALU) 224 sowie die Routingeinheit-Schnittstelle 225.
  • Der RAM-Zugangsdecoder 220 umfasst einen Eingang 210 für Daten bzw. Adressinformationen seitens der externen Recheneinheit, sowie weitere Eingänge von der Stufe Befehlsausführung 204 sowie Ausgänge zu der Stufe RAM-Zugang 202. Zwischen den Stufen 201 und 202 sind die Register 234 und 235 angeordnet.
  • Das Register 234 ist über die RAM-Dateneingangsverbindung 214 mit einem Eingang des RAM 221 verbunden, das Register 235 über die RAM-Adressverbindung 215 mit einem weiteren Eingang des RAM 221. Der RAM 221 ist über die RAM-Datenausgangsverbindung 216 mit dem Register 236 verbunden, welches zwischen den Stufen 202 und 203 angeordnet ist.
  • Das Register 236 ist mit einem Eingang des Befehlsvordecodierers 222 verbunden. Der Befehlsvordecodierer 222 verfügt des Weiteren über einen Datenausgangverbindung 213 Richtung externe Recheneinheit und über eine Verbindung zum Register 230, welches zwischen den Stufen 203 und 204 angeordnet ist.
  • Das Register 230 ist mit einem Eingang des Befehlsdecodierers 223 sowie mit einem Eingang des RAM-Zugangsdecodierers 220 verbunden. Ein Eingang des Befehlsdecodierers 223 ist mit einer Verbindung 212 von Seiten der Zeitbasiseinheit 103 aus 1 verbunden. Ebenfalls ist der Befehlsdecodierer 223 mit dem Registerblock 232, bzw. dessen einzelnen Register 2320, 2321, 2322 und 2323, verbunden. Zwei Ausgänge des Befehlsdecodierers 223 sind mit zwei Eingängen der ALU 224 verbunden. Ebenfalls ist der Befehlsdecodierers 223 über die Verbindungen 240 und 241 jeweils mit dem RAM-Zugangsdecoder 220, der Routereinheitsschnittstelle 225 und dem Registerblock 233 verbunden. Der Registerblock 233 umfasst die Register 2330, 2331, ..., 2337. Die ALU 224 ist über eine Verbindung sowohl mit dem Register 231 als auch mit dem Registerblock 233 verbunden. Das Register 231 ist zwischen der Stufe 204 und der Stufe 201 angeordnet und wiederum mit dem RAM-Zugangsdecoder 220 verbunden. Die Routereinheitsschnittstelle 225 ist über Verbindungen 242 und 243 mit dem Registerblock 233 verbunden. Außerdem verfügt die Routereinheitsschnittstelle 225 über eine Verbindung 211 zur Routereinheit 101 aus 1.
  • Für die in einer HW-Datenverarbeitungseinheit (HW-DV-Einheit), z. B. Timer-Modul 100 gemäß 1, mittels einer Routing-Einheit, vorzugsweise Routing-Einheit 101 gemäß 1, bedienten Module ist gegebenenfalls eine Überwachung von Zeitabläufen, bzw. einer im folgenden noch näher definierten Rundendauer, der Routing-Einheit nötig. Im Timer-Modul 100 gemäß 1 ist die Überwachung der Rundendauer der Routing-Einheit 101 besonders wichtig, weil bei einem Ausfall der Routing-Einheit 101 die angeschlossenen Module nicht mehr mit Daten versorgt werden. Das ist besonders mit Blick auf Sicherheitsanforderungen wichtig, weil auch Überwachungen von Signalverläufen von Ausgangssignalen an die vom Steuergerät, in welches das Timer-Modul 100 vorzugsweise integriert ist, zu steuernde Aktuatorik ggf. verspätet stattfinden oder Module gar nicht aktiv werden können. So kann u. U. eine konstante Rundendauer gefordert werden, um die langsamste Routing-Dauer (worst case) einfach ermitteln zu können. Um diese Umlaufzeit zu überprüfen, ist ein eigenes, programmierbares Logik-Modul der HW-DV-Einheit, bzw. des Timer 100, wie zum Beispiel das Multikanal-Sequenzer-Modul 109 (1), bzw. 200 (2) einsetzbar. Dadurch wird ein ständiges Überprüfen durch die externe CPU nicht notwendig, was diese entlastet, und es kann auch auf einen externen Watchdog zu diesem Zweck verzichtet werden.
  • Auch für nicht-sicherheitskritische Anwendungen kann eine konstante ARU-Rundenzeit wichtig sein, weil das Routing der Daten eine Verzögerung eines Ablaufs bedeutet. Wenn die Rundenzeit nicht konstant ist, bedeutet das, dass die nachfolgenden Prozesse einmal eher oder später bedient werden. Dieser Jitter in der Abarbeitung ist u. U. nicht erwünscht, wenn man die Verzögerungswerte bei der Steuerung von Abläufen berücksichtigen will. Bei einer konstanten Kundenzeit kann man die Verzögerung ggf. als einen konstanten Offset berücksichtigen.
  • Ein besonders vorteilhaftes Routingverfahren für die Routingeinheit 101 ist in der nicht vorveröffentlichten DE 10200900189 beschrieben. Grundprinzip ist dabei in einer bevorzugten Ausgestaltung, dass die Routingeinheit sequenziell, bzw. nacheinander in einer festgelegten Reihenfolge, alle ihr zugeordneten Datenquellen arbitriert und die in den Datenquellen vorhandenen Daten an die entsprechenden Datensenken weiterleitet. Das darin beschriebene Verfahren wird im Folgenden anhand zweier Ausführungsbeispiele näher erläutert, für weitere Details der Umsetzung wird auf die DE 10200900189 verwiesen.
  • Dabei werden hier die Begriffe Datenquelle, Datensenke und Datenknoten in folgender Bedeutung verwendet: Eine Datenquelle ist ein Datenknoten, der Daten bereitstellt und eine Datensenke ist ein Datenknoten, der Daten empfängt. Es wird darauf hingewiesen, dass eine funktionale Einheit, die beispielsweise in einem Gehäuse oder einem Chip angebracht ist, sowohl als Datenquelle als auch als Datensenke fungieren kann und das auch mehrfach. Diese Einheit ist dann für den erfindungsgemäßen Datenaustausch zwischen Datenquellen und Datensenken in die entsprechende Anzahl von Datensenken und Datenquellen aufgeteilt zu betrachten.
  • Die erfindungsgemäße Schaltungsanordnung besteht allgemein aus n + m Datenknoten (Anzahl Datenquellen n > 0, Anzahl Datensenken m > 0). Weiterhin gehört zu der Schaltungsanordnung in diesem Ausführungsbeispiel eine Arbitrierungseinheit, beispielsweise ein modulo-n-Zähler als Auswahleinheit zur Arbitrierung. Über einen Decoder, beispielsweise einen 1-aus-n-Dekoder wird mit jedem Zustand der Zählers genau eine Datenquelle aus den Datenquellen n ausgewählt. Es werden alle Datenquellen nacheinander in festgelegter Reihenfolge arbitriert/ausgewählt, unabhängig davon, ob die jeweilige Quelle über ein Datum verfügt und damit verbunden eine Schreibanforderung (bzw. ein Anforderungssignal) hat, was durch die oben erläuterte Gültigkeitsinformation bedingt ist. Die jeweils ausgewählte Datenquelle überträgt an alle Datensenken die bereitgestellten Daten zum Beispiel zusammen mit einem Gültigkeitssignal über eine Kommunikationsleitung und zusätzlich eine Adresse über die Kommunikationsleitung zu einem 1-aus-m-Dekoder. Die damit ausgewählte Datensenke erhält ein aus der Adresse gebildetes Auswahlsignal. Ein an der Datensenke vorhandene Bereitschaftssignal (read request) gibt an, ob die Datensenke bereit ist zum Empfang neuer Daten. Aus der Gültigkeitsinformation des mitübertragenen Gültigkeitssignals und der Bereitschaft der Senke zum Übernehmen der Daten wird ein Schreib-Signal generiert. Mit diesem Schreib-Signal werden die Daten in den Speicher übernommen und gleichzeitig wird das Leseanforderungs-Signal der ausgewählten Datensenke zurückgesetzt. Gleichzeitig ist das Schreib-Signal das Quittungssignal der erfolgreichen Übertragung und wird von der ausgewählten Datensenke an die ausgewählte Datenquelle zurückgesendet, um dort die Gültigkeitsinformationen zu beeinflussen, konkret um das Datum als gelesen zu markieren und damit die Schreibanforderung zurückzusetzen.
  • In besonderen Ausgestaltungen einer Arbitrierung der Quellen ist eine Verzögerung der Signale über Pipelinestufen oder andere Verzögerungsmechanismen möglich. Auch kann ein Datum an mehrere der Datensenken übertragen werden. Neben der Abfrage aller Quellen nacheinander in einer festen Reihenfolge können gegebenenfalls auch bestimmte Quellen in einem Durchgang der Routereinheit durch Konfiguration der Arbitrierung mehrfach abgefragt werden.
  • Analog kann das Routing-Verfahren gemäß einem zweiten Ausführungsbeispiel der DE 10200900189 auch durchgeführt werden, indem nacheinander alle Datensenken arbitriert bzw. ausgewählt werden, wie im Folgenden beispielhaft beschrieben. Dabei kommt dann ein modulo-m-Zähler als Auswahleinheit zur Arbitrierung zum Einsatz. Ein Zähler inkrementiert Ausführungsbeispiel mit einem vorgebbaren Takt den Wert des Zählers bis zu m – 1 und beginnt dann wieder bei 0. Über den 1-aus-m-Dekoder wird mit jedem Zustand des Zählers genau eine Datensenke aus den Datensenken ausgewählt. Diese ausgewählte Datensenke gibt eine Adresse und ein Lese-Anforderungssignal (Read-Request-Signal) an einen Multiplexer, welcher die Daten des selektierten Blocks der ausgewählten Datensenke zusammen mit der Adresse und dem Leseanforderungs-Signal über eine Kommunikationsverbindung weiterleitet. In einem 1-aus-n-Dekoder wird aus der Adresse genau eine Datenquelle aus den Datenquellen ausgewählt und dieser Datenquelle die Leseanforderung mit dem Daten-Bereit-Signals zur Verfügung gestellt. Aus der Leseanforderung und dem Daten-Bereit-Signal wird ein Gültigkeitssignal gebildet, das genau dann gültige Daten kennzeichnet, wenn sowohl das Read-Request als auch das Daten-Bereit-Signal aktiv sind. Diese ausgewählte Datenquelle gibt die angeforderten Daten an den Multiplexer aus und dieser sorgt dafür, dass genau die Daten der ausgewählten Datenquelle zusammen mit der Gültigkeitsinformation (Quittungssignal) über die Kommunikationsverbindung zu allen Datensenken weitergeleitet werden. Die ausgewählte Datensenke speichert die gültigen Daten ab.
  • Für solche sequenziellen Routingkonzepte, bei denen also nacheinander in einer festgelegten bzw. auch flexibel festlegbaren Reihenfolge alle einer Routingeinheit zugeordneten Datenquellen (bzw. alle Datensenken) abgefragt werden, kann mit dem im Folgenden beschriebenen Vorgehen die Rundendauer der Routingeinheit überwacht werden – also die Dauer bis alle Datenquellen (bzw. alle Datendenken) mindestens einmal abgefragt ist, genauer bis die Arbitrierungsrunde, also die festgelegte Reihenfolge (in obigen Beispielen die Zähler), wieder von vorn beginnt. Allgemeiner ist die Routingdauer die Dauer von einer bestimmten Stelle in der Arbitrierungsreihenfolge bis diese Stelle der Arbitrierungsreihenfolge das nächste Mal wieder erreicht ist. Dabei kann es sich bei der Rundendauer um eine Zeitdauer, aber auch eine Winkeldauer oder allgemein um die Rundendauer relativ zu einer physikalischen Größe (in den genannten Beispielen Zeit und Winkel) handeln. Als Basiswerte werden in diesem Fall Werte bezeichnet, die zu einem bestimmten Zeitpunkt den Wert der Basis angeben und von einer Basiseinheit, in 1 beispielsweise das Modul 103, zur Verfügung gestellt werden, zum Beispiel Zeit- oder Winkelstempel.
  • An die Routing-Einheit 101 können für die Überwachung ihrer Rundendauer zum Beispiel folgende zwei alternative Anforderungen gestellt werden:
    • a) Die Rundendauer der Routing-Einheit 101 muss (weitestgehend) konstant sein (zum Beispiel in einem festgelegten Intervall liegen), um die längste zugelassene Routing-Dauer (worst case) einfach ermitteln zu können.
    • b) Die Rundendauer muss genau konstant sein, um eine variable Verzögerung für nachfolgende Prozesse zu vermeiden.
    • c) Die Rundendauer der Routing-Einheit 101 darf einen vorgegebenen Wert nicht überschreiten, um auf Ereignisse rechtzeitig reagieren zu können.
  • Zum Einsatz kommen kann dabei ein Logikmodul, zum Beispiel der Vielkanal-Sequenzer 109 (1) bzw. 200 (2). Der Vielkanal-Sequenzer 109 ist dabei eine über seine Register (z. B. durch die externe CPU, bzw. Recheneinheit) programmierbare Logikeinheit (mit Logikuntereinheiten wie arithmetisch-logische Einheit (ALU) 224 oder (Pre-)Decoder 220, 222, 223), die auch Rechenoperationen und Vergleichsoperationen vornehmen kann. Der Vielkanal-Sequenzer 109 ist vorzugsweise im obigen Bild der der Routingeinheit 101 zugewiesenen Datenknoten selbst mindestens eine Datensenke und mindestens eine Datenquelle.
  • Im Folgenden wird ein Ausführungsbeispiel beschrieben, das im Falle einer sequentiellen Arbitrierung der Datensenken für die Überprüfung der Rundendauer der Routingeinheit 101 bezüglich der Basis „Zeit” einsetzbar ist. Das Basisgebermodul in der Hardware-Datenverarbeitungseinheit ist damit ein Zeitbasis-Geber. Im Multikanal-Sequenzer-Modul 109 bzw. 200 wird dazu eine Programmschleife vorgesehen, die beispielweise folgenden Ablauf hat:
    • 1. Blockierendes Lesen durch das Multikanal-Sequenzer-Modul 109 bzw. 200 als Datensenke für einen festgelegten Kanal (eine festgelegte Datensenke, falls der Vielkanal-Sequenzer 109 bzw. 200 mehrere Datensenken darstellt) von einer festgelegten Adresse (Datenquelle) der Routing-Einheit 101, welche ständig ein Datum zu Lesen bereithält. Unter blockierendem Lesen wird dabei verstanden, dass das Multikanal-Sequenzer-Modul 109 bzw. 200 eine Lese-Anforderung stellt – hier an eine feste Adresse der Routing-Einheit 101, die so konfiguriert ist, dass immer ein gültiges Datum vorhanden ist. Die feste Adresse kann dabei zum Beispiel eine Datenquelle wie das Eingangsmodul 116 sein. Der Wert des Datums selbst ist für das Vorgehen nicht von Bedeutung. Diese Leseanforderung wird zyklisch von der Routing-Einheit 101 berücksichtigt. Durch die sequentielle Arbitrierung der Senken, zu denen der Vielkanal-Sequenzer 109 bzw. 200 gehört, nach vorgegebenen/vorgebbarer Reihenfolge wird die Leseanforderung in jeder Runde abgefragt und, da immer ein gültiges Datum an der gewählten Adresse verfügbar ist, erfüllt. Danach wird im Programmablauf des Multikanal-Sequenzer-Moduls 109 bzw. 200 fortgefahren.
    • 2. Holen eines ersten Zeitbasiswertes (eines ersten Zeitstempels) durch das Multikanal-Sequenzer-Modul 109 bzw. 200 von der Zeitbasis-Einheit 103 und Abspeichern in einem ersten Register des Multikanal-Sequenzer-Modul 109 bzw. 200, z. B. in einem ersten Register des Registerblocks 233. Dieser Schritt wird getriggert durch das erfolgreiche Lesen in Schritt 1.
    • 3. Nochmaliges Blockierendes Lesen für den gleichen Kanal (die gleiche Multikanal-Sequenzer-Senke) an der festgelegten Adresse (Quelle) der Routing-Einheit 101 durch das Multikanal-Sequenzer-Modul 109 bzw. 200 (analog zu Schritt 1). Dieses Lesen kann erst dann vorgenommen werden, wenn die die Routing-Unit das nächste mal diesen Kanal bedient, d. h. genau eine Rundenzeit später als bei Schritt 1.
    • 4. Holen eines zweiten Zeitbasiswertes (eines zweiten Zeitstempels) durch das Multikanal-Sequenzer-Modul 109 bzw. 200 von der Zeitbasis-Einheit 103 und Abspeichern in einem zweiten Register des Multikanal-Sequenzer-Modul 109 bzw. 200, z. B. in einem zweiten Register des Registerblocks 233. Dieser Schritt wird getriggert durch das erfolgreiche Lesen in Schritt 3.
    • 5. Bildung der Differenz aus den Werten im zweiten und ersten Register, z. B. durch die ALU 224 und Abspeicherung in einem dritten Register, z. B. in einem dritten Register des Registerblocks 233.
    • 6. Gegebenenfalls mindestens einen Vergleich des Differenzwertes mit Vergleichswerten. Z. B. Prüfung, ob die Differenz der Zeitbasiswerte im dritten Register > 0 oder größer als ein Mindestwert ist, oder ob die Differenz kleiner als eine vorgegebene Schranke ist.
    • 7. Gegebenenfalls Konsequenzen. Zum Beispiel kann im Fall eines nicht erfolgreichen Vergleichs ein Fehler signalisiert werden. Die Signalisierung des Fehlers erfolgt z. B. über ein spezielles Fehlersignal, z. B. an ein weiteres Modul (insbesondere die Monitor-Einheit 107) und/oder durch ein Fehlersignal an extern (d. h. an außerhalb des Timermoduls) und/oder durch Auslösung eines Interrupts an die externe Recheneinheit. Die möglichen Fehlersignal- bzw. Interruptleitungen des Multikanal-Sequenzer-Moduls 200 ist in 2 nicht gezeigt, könnten aber zum Beispiel von der die Vergleiche ausführenden ALU 224 ausgehen. Die Fehlersignale bzw. Interrupts können im Folgenden Fehlerbehandlungs- oder -korrekturs-Routinen triggern oder zum Beispiel die Umschaltung eines Steuergeräts, zu welchem das Timer-Modul gehört, in einen Sicherheitsmodus bewirken. Diese verschiedenen, möglichen Fehlersignal-Mechanismen gelten so auch für die übrigen Ausführungsbeispiele.
  • Da nach dem Lesen im Schritt 1 das Lesen im Schritt 3 von der gleichen Adresse erst dann bedient werden kann, wenn die Routing-Einheit 101 alle anliegenden zusätzlichen Anforderungen bedient hat (bzw. in der festgelegten Reihenfolge die übrigen Senken arbitriert bzw. ausgewählt hat), vergeht zwischen den Abrufvorgängen der Zeitbasenwerte in den Schritten 2 und 4 eine Rundendauer der Routing-Einheit 161. Die Differenz im dritten Register ist damit diese Rundendauer, in diesem Fall Rundenzeit, der Routing-Einheit 101.
  • Mit dem Prüfen > 0 im Schritt 6 wird zusätzlich zu einer reinen Überprüfung der Rundendauer beispielsweise festgestellt, ob die Zeitbasis überhaupt aktiv ist. Bei einer inaktiven Zeitbasis würden sich die Zeitstempel entsprechen und deren Differenz Null betragen. Somit kann hier auch die Aktivität der Zeitbasis einfach mitüberprüft werden. Diese Prüfung kann bei einer Prüfung auf eine Mindestschwelle entfallen (bzw. fällt mit dieser zusammen). Im Schritt 6 wird vorzugsweise geprüft, ob die Runde zu lange gedauert hat. Natürlich kann je nach Anwendung auch überprüft werden, ob sie zu kurz gedauert hat oder ob sie in einem gewünschten Intervall liegt bzw. genau einem gewünschten Wert entspricht.
  • Schlägt einer der Vergleiche fehl, so kann ein Fehler gemeldet und z. B. ein Interrupt an den externen Prozessor (externe Recheneinheit) ausgelöst werden. Das Fehlersignal kann ebenfalls zur Überwachungseinheit bzw. Monitoreinheit 107 gesendet werden, kann dort gespeichert werden und kann dann dort von der Recheneinheit (regelmäßig oder unregelmäßig) geprüft werden.
  • Es ist möglich, zusätzliche (zugelassene, bzw. zulässige) Toleranzen der Rundendauern zu dem Differenzwert zu addieren oder zu subtrahieren, oder die Toleranzen bei der Festlegung der Vergleichswerte zu berücksichtigen.
  • Wichtig ist es für eine zuverlässige Überwachung auf Signalverläufe dabei generell, dass gemeinsam benutzte Signale, z. B. die Takt- oder Zeitinformationen der Module 102 und 103, überwacht werden, ob sie zum Beispiel noch aktiv sind und nicht ausgefallen sind (z. B. Zeitbasis bleibt stehen), da die Inaktivität dieser gemeinsam benutzten Signale das Ergebnis der beschriebenen Signalüberprüfungen verfälschen würden. Für diesen Zweck kann der oben beschriebene Aktivitätsvergleich (> 0) eingesetzt werden. In einer weiteren bevorzugten Ausgestaltung ist es darüber hinaus möglich, im Schritt 6 unabhängig von dem Erfolg des Vergleichs, also insbesondere auch bei einem erfolgreichen Vergleich, einen Interrupt an die externe Recheneinheit auszulösen und/oder ein Signal an die Monitoreinheit 107 zur Abspeicherung zu senden. Die Recheneinheit empfängt diesen Interrupt (wenn enabled/von Recheneinheit erwünscht, z. B. nicht bei zu hoher Interrupt-Last) oder fragt die Monitoreinheit 107 ab, und erfährt damit, dass ein Vergleich stattgefunden hat. Damit kann die Recheneinheit implizit die Funktionsfähigkeit der Routing-Einheit 101 und die Aktivität der benutzten Takte feststellen. Durch diese Ausgestaltung der Erfindung wird die Recheneinheit in die Überprüfung der Rundendauer der Routing-Einheit 101 mit einbezogen. Die Recheneinheit besitzt eine eigene Zeitbasis, die üblicherweise durch einen zusätzlichen Watchdog überwacht wird, bleibt also auch im Fall einer fehlerhaften Zeitbasis des Timermoduls handlungsfähig.
  • In weiteren Ausgestaltungen der Erfindung können auch zusätzliche Basen anderer physikalischer Größen (wie zum Beispiel Winkelwerte) überprüft werden. Wie zu 1 beschrieben, werden durch das Modul 103 neben Zeit- z. B. auch Winkelbasiswerte zur Verfügung gestellt. Dazu können in dem Vielkanal-Sequenzer zusätzliche Register vorgesehen sein, in denen diese Werte abgelegt werden, und die Differenzbildung erfolgt dann auch (oder nur) für diese Werte. Es kann dann insbesondere auch wiederum ein Mindestwert (z. B. > 0) dieser zusätzlichen Differenz geprüft werden, um die Aktivität der Basisgeber zu überprüfen. Wiederum können natürlich wie oben verschiedene Vergleiche erfolgen (Mindestwert, Maximalwert, Intervall ... siehe oben). Falls der zu erwartende Signalverlauf nicht monoton steigend bzw. fallend ist (bei der Basis Zeit gilt monoton steigender Verlauf), kann zumindest eine erwartete Signalaktivität geprüft werden (z. B. Winkelverlauf im Fall eines Rückwärtslauf).
  • In 3 ist ein beispielhaftes Verfahren zur Überprüfung einer Routing-Rundendauer einer Routingeinheit einer Hardware-Datenverarbeitungseinheit durch ein Logikmodul der Hardware-Datenverarbeitungseinheit gezeigt.
  • In einem ersten Schritt 301 liest das Logikmodul als Datensenke eine festgelegte Adresse (Datenquelle) der Routing-Einheit durch blockierendes Lesen. Dabei sind die festgelegte Adresse bzw. die Routing-Einheit im vorhinein so konfiguriert, dass an dieser festgelegten Adresse ständig ein Datum zum Lesen bereit gehalten wird.
  • Im zweiten Schritt 302 holt das Logikmodul einen zum Lesezeitpunkt des Datums der festgelegten Adresse gehörigen Basiswert von einem Basisgebermodul, zum Beispiel einen Zeitstempel von einer Zeitbasiseinheit, und speichert diesen in einem Speicher, vorzugsweise in einem ersten Register des Logikmoduls, ab.
  • Die daraufhinfolgenden Schritte 303 bzw. 304 entsprechen weitestgehend den Schritten 301 bzw. 302. Wiederum wird an der festgelegten Adresse der Routingeinheit von dem Logikmodul das ständig bereitgestellte Datum durch blockierendes Lesen gelesen (Schritt 303) und ein dazugehöriger Basiswert (beispielsweise ein Zeitstempel von einem Zeitbasismodul) wird in einem weiteren Speicher, vorzugsweise in einem zweiten Register des Logikmoduls, abgespeichert.
  • Im Schritt 305 wird in diesem Ausführungsbeispiel die Differenz der beiden abgespeicherten Basiswerte gebildet und der Differenzwert wiederum in einem Speicher, vorzugsweise in einem dritten Register des Logikmoduls, angespeichert.
  • In den nächsten Schritten erfolgt ein Vergleich dieser abgespeicherten Zeitbasiswerte mit vorher festgelegten Vergleichswerten. Der Vergleich kann dabei zum Beispiel mit Maximal- und oder Minimalwerten, beispielsweise auch unter Einbeziehung von zugelassenen Werttoleranzen erfolgen. Insbesondere kann auch durch einen Zugriff auf die Register des Logikmoduls, in welchem die Vergleichswerte gespeichert werden, eine Konfiguration bzw. Veränderung der Vergleichswerte durch das Logikmodul und/oder die externe CPU (Recheneinheit) je nach Anwendungsfall oder nach dem Wert bestimmter Parameter erfolgen.
  • Der Schritt 306 entspricht dabei einer Prüfung, ob die Differenz der Zeitbasiswerte im dritten Register größer Null oder größer als ein Mindestwert ist und der Schritt 307 einer Prüfung, ob die Differenz kleiner als eine vorgegebene Schranke ist.
  • Im Schritt 308 wird nun registriert, ob alle Vergleiche erfolgreich waren oder ob mindestens einer nicht erfolgreich war. Im Fall eines oder mehrerer erfolgloser Vergleiche werden im Schritt 309 Konsequenzen, wie zum Beispiel Fehlermeldungen, Recheneinheit-Unterbrechungen (CPU-Interrupts) oder Mitteilungen an andere Module (z. B. Monitormodul 107), aus dem erfolglosen Vergleich/den erfolglosen Vergleichen gezogen. Die Konsequenzen können zum Beispiel auch abhängig davon sein, welcher Vergleich und wie der Vergleich erfolglos war. Von diesem Schritt 310 springt das Verfahren weiter in Schritt 311. Sind alle Vergleich erfolgreich verlaufen, kann springt das Verfahren in Schritt 310. Von diesem kann einfach ein Weitersprung auf Schritt 311 erfolgen, es können aber auch Mitteilungen über den erfolgreichen Vergleich oder auch einfach über die Tatsache, dass ein überhaupt Vergleich/Vergleiche durchgeführt wurden versendet werden, zum Beispiel an andere Module wie das Monitormodul 107 oder auch zum Beispiel an die externe CPU durch einen Interrupt. Auch in diesem Fall springt das Verfahren weiter auf Schritt 311.
  • Dieser Schritt 311 entspricht dem Abschluss des Verfahrens. Gegebenenfalls erfolgt wiederum ein Sprung auf den Anfang des Verfahrens, Schritt 301.
  • Eine alternative Ausführung kann auch für ein Routingprinzip, nach welchem nacheinander alle Datenquellen arbitriert werden, eingesetzt werden. In dem zu 3 beschriebenen Verfahren, bzw. entsprechend in den weiteren Ausführungsbeispielen, muss dazu das blockierende Lesen durch ein blockierendes Schreiben an eine Adresse (Datensenke) erfolgen, die so konfiguriert ist, dass sie immer bereit ist, ein Datum aufzunehmen. Der Multikanalsequenzer meldet dabei als Datenquelle (immer mit dem gleichen Kanal also der gleichen Datenquelle, wenn die physikalische Einheit Multikanalsequenzer 109 bzw. 200 logisch mehreren der Routingeinheit 101 zugeordneten Datenquellen entspricht) eine Schreibanforderung an die Routingeinheit 101. Analog zum obigen Vorgehen wird dabei dann durch das erfolgreiche Schreiben des Datums durch den Multikanalsequenzer 109 an die bestimmte Datensenke der Routingeinheit 101 das Empfangen eines zugewiesenen Basiswerts durch das Basisgebermodul (z. B. Modul 103) getriggert. Durch einen entsprechenden zweiten Schreibvorgang kann ein zweiter Basiswert erhalten werden und ab dann wie in den Ausführungsbeispielen für die sequentielle Arbitrierung der Quellen weiter verfahren werden, also zum Beispiel die Differenz der Basiswerte gebildet werden, diese Differenz mit Vergleichswerten verglichen werden und gegebenenfalls Maßnahmen eingeleitet werden.
  • Allgemein erfolgt also die Überprüfung bzw. Überwachung einer Rundendauer einer Routingeinheit durch blockierenden Zugriff durch die Logikeinheit auf eine bestimmte Adresse bzw. einen bestimmten Datenknoten der Routingeinheit zugewiesener Datenknoten. Die Logikeinheit (also die physikalische Einheit) ist dabei (logisch) selbst mindestens eine Datensenke und mindestens eine Datenquelle. Sie gehört zu einer Gruppe von der Routingeinheit zugeordneten Datenknoten, welche die Routingeinheit nacheinander nach einer festgelegten bzw. festlegbaren Reihenfolge arbitriert. Die Rundendauer der Routingeinheit ist damit durch das komplette Durchlaufen dieser Arbitrierungsreihenfolge bestimmt. Eine solche Gruppe Datenknoten kann z. B. nur aus Datensenken, nur aus Datenquellen oder einer Mischung bestehen. Der Zugriff auf die bestimmte Adresse erfolgt dabei beispielsweise als Schreibzugriff, falls der bestimmte Datenknoten eine Datensenke ist, die Logikeinheit eine Datenquelle ist und die Datenquellen nacheinander in festgelegter Reihenfolge arbitriert werden. Der Zugriff auf die bestimmte Adresse erfolgt beispielsweise als Lesezugriff, falls der bestimmte Datenknoten eine Datenquelle ist, die Logikeinheit eine Datensenke ist und die Datensenken nacheinander in festgelegter Reihenfolge arbitiert werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • DE 10200900189 [0016, 0041, 0041, 0045]

Claims (15)

  1. Hardware-Datenverarbeitungseinheit (100) mit mindestens einem Basisgebermodul (103), welches Basiswerte einer physikalischen Größe zur Verfügung stellt, mit mindestens einer Logikeinheit (109, 200) und mit mindestens einer Routingeinheit (101), wobei die Routingeinheit (101) eine Gruppe ihr zugeordneter Datenknoten nacheinander in einer festgelegten Reihenfolge arbitriert, wobei die Logikeinheit (109, 200) zu der Gruppe Datenknoten gehört und wobei durch ein komplettes Durchlaufen der festgelegten Arbitrierungsreihenfolge eine Rundendauer bestimmt ist, dadurch gekennzeichnet, dass die Hardware-Datenverarbeitungseinheit (100) zur Überprüfung der Rundendauer der Routingeinheit (101) Mittel aufweist, – durch die Logikeinheit (109, 200) ein erstes blockierendes Zugreifen eines bestimmten Datenknoten durchzuführen, wobei der bestimmte Datenknoten ständig für den Zugriff bereit ist, – durch die Logikeinheit (109, 200), durch den ersten Zugriff getriggert, einen ersten Basiswert der physikalischen Größe durch das Basisgebermodul (103) zu empfangen und zu speichern, – durch die Logikeinheit (109, 200) ein zweites blockierendes Zugreifen des bestimmten Datenknoten durchzuführen, – durch die Logikeinheit (109, 200), durch den zweiten Zugriff getriggert, einen zweiten Basiswert der physikalischen Größe durch das Basisgebermodul (103) zu empfangen und zu speichern und – durch die Logikeinheit (109) eine Differenz zwischen dem ersten und dem zweiten Basiswert zu bilden.
  2. Hardware-Datenverarbeitungseinheit (100) nach Anspruch 1, dadurch gekennzeichnet, dass die Gruppe der zugeordneten Datenknoten Datensenken sind und das erste und das zweite blockierende Zugreifen Lesezugriffe sind.
  3. Hardware-Datenverarbeitungseinheit (100) nach Anspruch 1, dadurch gekennzeichnet, dass die Gruppe der zugeordneten Datenknoten Datenquellen sind und das erste und das zweite blockierende Zugreifen Schreibzugriffe sind.
  4. Hardware-Datenverarbeitungseinheit (100) nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass es Mittel aufweist, Zeitstempel als Basiswerte der physikalischen Größe Zeit zur Verfügung zu stellen.
  5. Hardware-Datenverarbeitungseinheit (100) nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass es Mittel aufweist, Winkelstempel als Basiswerte der physikalischen Größe Winkel zur Verfügung zu stellen.
  6. Hardware-Datenverarbeitungseinheit (100) nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass es Mittel aufweist, die Differenz der Basiswerte mit mindestens einem Vergleichswert zu vergleichen.
  7. Hardware-Datenverarbeitungseinheit (100) nach Anspruch 6, dadurch gekennzeichnet, dass es Mittel aufweist, bei einem erfolglosen Vergleich ein Fehlersignal zu generieren und/oder eine Recheneinheit-Unterbrechung zu veranlassen.
  8. Hardware-Datenverarbeitungseinheit (100) nach einem der Ansprüche 6 und 7, dadurch gekennzeichnet, dass es Mittel aufweist, bei einer Durchführung des Vergleichs ein Aktivitätssignal zu generieren.
  9. Verfahren zur Überprüfung einer Rundendauer einer Routingeinheit (101) einer Hardware-Datenverarbeitungseinheit (100) bezüglich einer Basis einer physikalischen Größe, wobei die Routingeinheit (101) ihr zugeordnete Datenquellen nacheinander in einer festgelegten Reihenfolge arbitriert, wobei eine Logikeinheit (109) der Hardware-Datenverarbeitungseinheit (100) zu den nacheinander arbitrierten Datenquellen gehört und wobei die Rundendauer bestimmt ist durch ein komplettes Durchlaufen der festgelegten Arbitrierungsreihenfolge, wobei die Hardware-Datenverarbeitungseinheit (100) mindestens ein Basisgebermodul (103) aufweist, welches Basiswerte der physikalischen Größe zur Verfügung stellt, dadurch gekennzeichnet, dass – die Logikeinheit (109) ein erstes blockierendes Schreiben zu einer bestimmten Datensenke der Routingeinheit (101) durchführt, wobei die bestimmte Datensenke der Routingeinheit (101) ständig ein Datum lesen kann, – die Logikeinheit (109), durch das erste Schreiben des Datums getriggert, einen ersten Basiswert der physikalischen Größe durch das Basisgebermodul (103) empfängt und speichert, – die Logikeinheit (109) ein zweites blockierendes Schreiben zu der bestimmten Datensenke der Routingeinheit (101) durchführt, – die Logikeinheit (109), durch das zweite Schreiben getriggert, einen zweiten Basiswert der physikalischen Größe durch das Basisgebermodul (103) empfängt und speichert und – die Logikeinheit (109) eine Differenz zwischen dem ersten und dem zweiten Basiswert bildet.
  10. Verfahren zur Überprüfung einer Rundendauer einer Routingeinheit (101) einer Hardware-Datenverarbeitungseinheit bezüglich einer Basis einer physikalischen Größe, wobei die Routingeinheit (101) ihr zugeordnete Datensenken nacheinander in einer festgelegten Reihenfolge arbitriert, wobei eine Logikeinheit (109) der Hardware-Datenverarbeitungseinheit (100) zu den nacheinander arbitrierten Datensenken gehört und wobei die Rundendauer bestimmt ist durch ein komplettes Durchlaufen der festgelegten Arbitrierungsreihenfolge, wobei die Hardware-Datenverarbeitungseinheit mindestens ein Basisgebermodul (103) aufweist, welches Basiswerte der physikalischen Größe zur Verfügung stellt, dadurch gekennzeichnet, dass – die Logikeinheit (109) ein erstes blockierendes Lesen von einer bestimmte Datenquelle der Routingeinheit (101) durchführt, wobei die bestimmte Datenquelle der Routingeinheit (101) ständig ein Datum verfügbar hat, – die Logikeinheit (109), durch das erste Lesen des Datums getriggert, einen ersten Basiswert der physikalischen Größe durch das Basisgebermodul (103) empfängt und speichert, – die Logikeinheit (109) ein zweites blockierendes Lesen von der bestimmten Datenquelle der Routingeinheit (101) durchführt, – die Logikeinheit (109), durch das zweite Lesen getriggert, einen zweiten Basiswert der physikalischen Größe durch das Basisgebermodul (103) empfängt und speichert und – die Logikeinheit (109) eine Differenz zwischen dem ersten und dem zweiten Basiswert bildet.
  11. Verfahren nach einem der Ansprüche 9 oder 10, dadurch gekennzeichnet, dass die physikalische Größe eine Zeit ist und die Basiswerte als Zeitstempel realisiert sind.
  12. Verfahren nach einem der Ansprüche 9 oder 10, dadurch gekennzeichnet, dass die physikalische Größe ein Winkel ist und die Basiswerte als Winkelstempel realisiert sind.
  13. Verfahren nach einem der Ansprüche 9 bis 12, dadurch gekennzeichnet, dass mindestens ein Vergleich der Differenz mit Vergleichswerten erfolgt.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass bei einem erfolglosem Vergleich ein Fehlersignal generiert und/oder eine Recheneinheit-Unterbrechung veranlasst wird.
  15. Verfahren nach einem der Ansprüche 13 und 14, dadurch gekennzeichnet, dass bei einer Durchführung des Vergleichs ein Aktivitätssignal generiert wird.
DE102010003530A 2010-03-31 2010-03-31 Hardware-Datenverarbeitungseinheit und Verfahren zur Überwachung einer Rundendauer einer Routingeinheit Ceased DE102010003530A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102010003530A DE102010003530A1 (de) 2010-03-31 2010-03-31 Hardware-Datenverarbeitungseinheit und Verfahren zur Überwachung einer Rundendauer einer Routingeinheit
US13/638,091 US20130204580A1 (en) 2010-03-31 2011-03-16 Hardware Data Processing Unit and Method for Monitoring a Cycle Duration of a Routing Unit
PCT/EP2011/053952 WO2011120798A1 (de) 2010-03-31 2011-03-16 Hardware-datenverarbeitungseinheit und verfahren zur überwachung einer rundendauer einer routingeinheit
CN201180016883.XA CN102822805B (zh) 2010-03-31 2011-03-16 监控路由单元的循环持续时间的方法和硬件数据处理单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102010003530A DE102010003530A1 (de) 2010-03-31 2010-03-31 Hardware-Datenverarbeitungseinheit und Verfahren zur Überwachung einer Rundendauer einer Routingeinheit

Publications (1)

Publication Number Publication Date
DE102010003530A1 true DE102010003530A1 (de) 2011-10-06

Family

ID=44064898

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010003530A Ceased DE102010003530A1 (de) 2010-03-31 2010-03-31 Hardware-Datenverarbeitungseinheit und Verfahren zur Überwachung einer Rundendauer einer Routingeinheit

Country Status (4)

Country Link
US (1) US20130204580A1 (de)
CN (1) CN102822805B (de)
DE (1) DE102010003530A1 (de)
WO (1) WO2011120798A1 (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105728898A (zh) * 2016-03-29 2016-07-06 唐山松下产业机器有限公司 脉冲焊接设备及其控制方法
DE102016203421A1 (de) 2016-03-02 2017-09-07 Robert Bosch Gmbh Verfahren und Anordnung zum Überstromschutz eines elektronischen Schalters

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110912268B (zh) * 2019-11-27 2023-06-30 南京亚派科技股份有限公司 一种基于物联信息平台的有源滤波器信息处理方法
US11305810B2 (en) 2020-04-24 2022-04-19 Steering Solutions Ip Holding Corporation Method and system to synchronize non-deterministic events
TWI739556B (zh) * 2020-08-19 2021-09-11 瑞昱半導體股份有限公司 時脈死結檢測系統、方法以及非暫態電腦可讀取媒體

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009001898A1 (de) 2009-03-26 2010-09-30 Robert Bosch Gmbh Schaltungsanordnungen und Verfahren zur Steuerung eines Datenaustauschs in einer Schaltungsanordnung

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06274415A (ja) * 1993-03-17 1994-09-30 Nec Corp 共有メモリシステム
DE10327548B4 (de) * 2003-06-18 2014-05-22 Robert Bosch Gmbh Verfahren und Vorrichtung zum Austausch von Daten über ein Bussystem
WO2007110099A1 (en) * 2006-03-27 2007-10-04 Freescale Semiconductor, Inc. Apparatus for detecting clock failure and method therefor
US8468283B2 (en) * 2006-06-01 2013-06-18 Telefonaktiebolaget Lm Ericsson (Publ) Arbiter diagnostic apparatus and method
DE102007038542A1 (de) * 2007-08-16 2009-02-19 Robert Bosch Gmbh Begleit-Chip für einen Mikrokontroller
DE102007044803A1 (de) * 2007-09-20 2009-04-09 Robert Bosch Gmbh Schaltungsanordnung zur Signalaufnahme und -erzeugung sowie Verfahren zum Betreiben dieser Schaltungsanordnung
CN201355815Y (zh) * 2008-12-26 2009-12-02 中国科学院空间科学与应用研究中心 一种应用于空间技术的ieee1394总线协议控制器
DE102009000189B4 (de) 2009-01-13 2016-07-21 BSH Hausgeräte GmbH Geschirrspülmaschine
EP2372490A1 (de) * 2010-03-31 2011-10-05 Robert Bosch GmbH Schaltungsanordnung für ein Datenverarbeitungssystem und Verfahren zur Datenverarbeitung
DE102010003551A1 (de) * 2010-03-31 2011-10-06 Robert Bosch Gmbh Timermodul und Verfahren zur Überprüfung von Ausgangssignalen eines Timermoduls
DE102010003538A1 (de) * 2010-03-31 2011-10-06 Robert Bosch Gmbh Verfahren zur Überprüfung von Signal- und Modulaktivitäten in einem Timermodul und Timermodul

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102009001898A1 (de) 2009-03-26 2010-09-30 Robert Bosch Gmbh Schaltungsanordnungen und Verfahren zur Steuerung eines Datenaustauschs in einer Schaltungsanordnung

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102016203421A1 (de) 2016-03-02 2017-09-07 Robert Bosch Gmbh Verfahren und Anordnung zum Überstromschutz eines elektronischen Schalters
CN105728898A (zh) * 2016-03-29 2016-07-06 唐山松下产业机器有限公司 脉冲焊接设备及其控制方法

Also Published As

Publication number Publication date
CN102822805A (zh) 2012-12-12
US20130204580A1 (en) 2013-08-08
WO2011120798A1 (de) 2011-10-06
CN102822805B (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
DE19815715C2 (de) Elektronisches, datenbusfähiges Fahrzeugsteuergerät
EP2235628A2 (de) Kraftfahrzeug-steuervorrichtung
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.
DE102013210064A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE102010003532B4 (de) Timermodul und Verfahren zur Überprüfung eines Ausgangssignals
DE102010003530A1 (de) Hardware-Datenverarbeitungseinheit und Verfahren zur Überwachung einer Rundendauer einer Routingeinheit
DE102017214068B4 (de) Verfahren, Vorrichtung und Computerprogramm zur dynamischen Ressourcenzuweisung in einem Mehrprozessor-Computersystem
DE102013210077A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
WO2011120802A1 (de) Verfahren zur überprüfung von signal- und modulaktivitäten in einem timermodul und timermodul
DE3236302A1 (de) Speicherprogrammierbare steuerung
DE102013210182A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE102013113262A1 (de) Auslöser-Leitwegeinheit
DE102009022330A1 (de) Mikrocomputer mit einer zentralen Verarbeitungseinheit und einem Pulsbreitenmodulations-Zeitgeber
EP1700211A1 (de) Laden von software-modulen
DE10336585B4 (de) Echtzeit-Interruptmodul für Betriebssysteme und zeitgetriggerte Anwendungen
EP1067448A2 (de) PC-System für Echtzeit- und Nicht-Echtzeitprogramme
WO2009021816A1 (de) Kommunikationsverfahren und schnittstelle zwischen einem begleit-chip und einem mikrocontroller
DE10063449B4 (de) Steuergerät mit einer Konsistenzüberwachung von Interrupts und ein Verfahren zur Durchführung einer Konsistenzüberwachung von Interrupts bei einem Steuergerät
DE102010003551A1 (de) Timermodul und Verfahren zur Überprüfung von Ausgangssignalen eines Timermoduls
EP2203837B1 (de) Server mit einer schnittstelle zum anschluss an ein serversystem und serversystem
DE102013210066A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle mit CRC-Funktionalität sowie Mikrocontroller mit generischer Schnittstelle und CRC-Einheit
DE102013210088A1 (de) Verfahren zur Bereitstellung einer generischen Schnittstelle sowie Mikrocontroller mit generischer Schnittstelle
DE102009047121A1 (de) Verfahren zum Erzeugen von Sequenzen
DE102009061083B3 (de) Modifizieren periodischer Signale, die von einem Mikrocontroller erzeugt worden sind
EP1153339A1 (de) Verfahren und vorrichtung zur funktionsauswahl einer steuereinheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final