DE102019101272A1 - Überwachungsvorrichtung zum wiederherstellen eines angehaltenen busses - Google Patents

Überwachungsvorrichtung zum wiederherstellen eines angehaltenen busses Download PDF

Info

Publication number
DE102019101272A1
DE102019101272A1 DE102019101272.4A DE102019101272A DE102019101272A1 DE 102019101272 A1 DE102019101272 A1 DE 102019101272A1 DE 102019101272 A DE102019101272 A DE 102019101272A DE 102019101272 A1 DE102019101272 A1 DE 102019101272A1
Authority
DE
Germany
Prior art keywords
bus
clock
monitoring device
driver
driving
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102019101272.4A
Other languages
English (en)
Inventor
Wolfgang Scherr
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102019101272A1 publication Critical patent/DE102019101272A1/de
Pending 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/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/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/079Root cause analysis, i.e. error or fault diagnosis
    • 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/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4072Drivers or receivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Gemäß einigen möglichen Implementierungen kann eine Überwachungsvorrichtung eine Menge von Eingaben von einem oder mehreren Treibern einer mit einem Bus verbundenen Vorrichtung umfassen. Der eine oder die mehreren Treiber können fähig sein, eine Busleitung des Busses zu treiben, und der Bus kann mehrere Vorrichtungen verbinden, die fähig sind, die Busleitung zu treiben. Die Überwachungsvorrichtung kann eine Zeitdauer bestimmen, über die die Menge von Eingaben einen Wert aufrechterhält, der angibt, dass der Bus nicht leerläuft. Die Überwachungsvorrichtung kann die Zeitdauer und eine Schwelle vergleichen. Die Überwachungsvorrichtung kann auf der Basis des Vergleichs der Zeitdauer und der Schwelle ein Signal ausgeben.

Description

  • HINTERGRUND
  • Ein Bus kann sich auf eine Kommunikationsschnittstelle beziehen, die Informationen zwischen Komponenten eines Systems transferiert. Ein Bus kann eine Hardwarekomponente wie etwa eine Leitung, eine optische Faser und/oder dergleichen umfassen und Informationen können über den Bus unter Verwendung eines Kommunikationsprotokolls übermittelt werden. In einigen Fällen kann ein Bus mehrere Busleitungen umfassen, die verschiedene Arten von Informationen führen, wie etwa eine Steuerleitung zum Führen von Steuerinformationen, eine Datenleitung zum Führen von Daten und/oder dergleichen.
  • KURZFASSUNG
  • Es werden ein Verfahren nach Anspruch 1, eine Überwachungsvorrichtung nach Anspruch 9 und ein System nach Anspruch 16 bereitgestellt. Die abhängigen Ansprüche definieren weitere Ausführungsformen. Die Überwachungsvorrichtung der Systeme kann die Überwachungsvorrichtung nach einem der Ansprüche 9-15 sein. Die Überwachungsvorrichtungen und/oder die Verfahren können implementiert werden, um das Verfahren nach einem der Ansprüche 1-9 auszuführen.
  • Gemäß einigen möglichen Implementierungen kann ein Verfahren ein Empfangen einer Menge von Eingaben von einem oder mehreren Treibern einer mit einem Bus verbundenen Vorrichtung durch eine Überwachungsvorrichtung umfassen. Der eine oder die mehreren Treiber können fähig sein, eine Busleitung des Busses zu treiben und der Bus kann mehrere Vorrichtungen verbinden, die fähig sind, die Busleitung zu treiben. Das Verfahren kann ein Bestimmen einer Zeitdauer, über die die Menge von Eingaben einen Wert aufrechterhält, der angibt, dass der Bus nicht leerläuft, durch die Überwachungsvorrichtung umfassen. Das Verfahren kann ein Vergleichen der Zeitdauer und einer Schwelle durch die Überwachungsvorrichtung umfassen. Das Verfahren kann ein Ausgeben eines Signals auf der Basis des Vergleichs der Zeitdauer und der Schwelle durch die Überwachungsvorrichtung umfassen.
  • Gemäß einigen möglichen Implementierungen kann eine Überwachungsvorrichtung eine Gatekomponente, Zählerkomponente und eine Komparatorkomponente umfassen. Die Gatekomponente kann Eingaben von einem oder mehreren Bustreibern einer mit einem Bus verbundenen Vorrichtung empfangen, wobei der eine oder die mehreren Bustreiber fähig sind, den Bus zu treiben und wobei der Bus mehrere Vorrichtungen verbindet, die fähig sind, den Bus zu treiben. Die Gatekomponente kann ein Signal ausgeben, das angibt, ob die Eingabe einen Wert umfasst, der angibt, dass der Bus nicht leerläuft. Die Zählerkomponente kann einen Zählerwert inkrementieren, wenn das Signal angibt, dass die Eingabe einen Wert umfasst, der angibt, dass der Bus nicht leerläuft, oder kann den Zählerwert rücksetzen, wenn das Signal angibt, dass die Eingabe einen Wert umfasst, der angibt, dass der Bus leerläuft. Die Zählerkomponente kann den Zählerwert ausgeben. Die Komparatorkomponente kann den Zählerwert und einen Schwellenwert vergleichen und kann auf der Basis des Vergleichens des Zählerwerts und des Schwellenwerts ein Vergleichssignal ausgeben, wobei das Vergleichssignal angibt, ob der Bus angehalten hat.
  • Gemäß einigen möglichen Implementierungen kann ein System Folgendes umfassen: einen Bus, der eine oder mehrere Busleitungen umfasst; mehrere mit dem Bus verbundene Vorrichtungen, die fähig sind, die eine oder mehreren Busleitungen zu treiben; und eine Überwachungsvorrichtung, die mit einer Vorrichtung der mehreren Vorrichtungen verbunden ist. Die Überwachungsvorrichtung kann eine Menge von Eingaben von einem Treiber der Vorrichtung empfangen, der fähig ist, die eine oder mehreren Busleitungen zu treiben. Die Überwachungsvorrichtung kann einen Zählerwert bestimmen, der eine Zeitdauer angibt, über die eine Menge von Eingaben einen Wert aufrechterhält, der angibt, dass die eine oder mehreren Busleitungen nicht leerlaufen. Die Überwachungsvorrichtung kann den Zählerwert und einen Schwellenwert vergleichen und kann auf der Basis des Vergleichs des Zählerwerts und des Schwellenwerts ein Signal ausgeben, das angibt, ob eine oder mehrere Komponenten der Vorrichtung deaktiviert werden.
  • Figurenliste
    • 1 ist eine Darstellung eines Beispielsystems, das mehrere Vorrichtungen umfasst, die fähig sind, einen Bus des Systems zu treiben, gemäß einigen hier beschriebenen Implementierungen;
    • 2 ist eine Darstellung eines Beispiels für das Treiben eines Busses eines Systems, das mehrere Vorrichtungen umfasst, die fähig sind, den Bus zu treiben, gemäß einigen hier beschriebenen Implementierungen;
    • 3A und 3B sind Darstellungen von Beispielen für das Anhalten eines Busses eines Systems, das mehrere Vorrichtungen umfasst, die fähig sind, den Bus zu treiben, gemäß einigen hier beschriebenen Implementierungen;
    • 4 ist eine Darstellung eines Beispielsystems, das eine Überwachungsvorrichtung zum Wiederherstellen eines angehaltenen Busses eines Systems umfasst, das mehrere Vorrichtungen umfasst, die fähig sind, den Bus zu treiben, gemäß einigen hier beschriebenen Implementierungen; und
    • 5 ist ein Flussdiagramm eines Beispielprozesses zum Wiederherstellen eines angehaltenen Busses eines Systems, das mehrere Vorrichtungen umfasst, die fähig sind, den Bus zu treiben, gemäß einigen hier beschriebenen Implementierungen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende ausführliche Beschreibung von Beispielimplementierungen bezieht sich auf die beigefügten Zeichnungen. In verschiedenen Zeichnungen können dieselben Bezugszahlen dieselben oder ähnliche Elemente identifizieren.
  • Wenn ein System mehrere Vorrichtungen umfasst, die fähig sind, einen Bus des Systems zu treiben (z. B. Eingaben in den Bus bereitstellen, Informationen über den Bus transferieren und/oder dergleichen), kann eine der Vorrichtungen den Bus anhalten, indem sie den Bus aktiv hält und verhindert, dass andere Vorrichtungen den Bus benutzen. In einigen Fällen kann eine Master-Vorrichtung einen angehaltenen Bus wiederherstellen, wie etwa durch Senden einer bestimmten Sequenz von Bit (z. B. eines Impulses) über den Bus. In einigen Fällen kann dies jedoch nicht möglich sein, wie hier ausführlicher beschrieben wird. Als Alternative kann das System auf einer Anwendungsschicht auf einen angehaltenen Bus hin überwacht werden. Diese Anwendungsschicht-Überwachung kann jedoch nicht über vielfältige Anhaltszenarien und/oder über vielfältige Systeme funktionieren. Einige Techniken und Vorrichtungen, die hier beschrieben werden, sind fähig, einen angehaltenen Bus über vielfältige Szenarien und Systeme wiederherzustellen, um dadurch Systemleistungsfähigkeit und -verfügbarkeit zu verbessern.
  • 1 ist eine Darstellung eines Beispielsystems 100, das mehrere Vorrichtungen umfasst, die fähig sind, einen Bus des Systems 100 zu treiben, gemäß einigen hier beschriebenen Implementierungen.
  • Wie in 1 gezeigt, kann das System 100 einen Bus 102 umfassen, der eine oder mehrere Busleitungen umfasst. Zum Beispiel kann der Bus 102 eine Taktleitung 104, eine Datenleitung 106 und/oder dergleichen umfassen. Wie weiter gezeigt ist, kann das System 100 mehrere Vorrichtungen 108-1 bis 108-N (N ≥ 2) umfassen (die manchmal einzeln als „Vorrichtung 108“ und zusammen als „Vorrichtungen 108“ bezeichnet werden), die eine oder mehrere Master-Vorrichtungen und/oder eine oder mehrere Slave-Vorrichtungen umfassen können. Die mehreren Vorrichtungen 108 können jeweils fähig sein, den Bus 102 zu treiben. Zum Beispiel können die mehreren Vorrichtungen 108 jeweilige Takttreiber 110 umfassen, die fähig sind, die Taktleitung 104 zu treiben, können jeweilige Datentreiber 112 umfassen, die fähig sind, die Datenleitung 106 zu treiben, und/oder dergleichen. Zusätzlich oder als Alternative können die mehreren Vorrichtungen 108 jeweilige Taktempfänger 114 umfassen, die fähig sind, die Ausgaben der Takttreiber 110 zu empfangen, können jeweilige Datenempfänger 116 umfassen, die fähig sind, die Ausgaben der Datentreiber 112 zu empfangen, und/oder dergleichen.
  • Obwohl der Bus 102 des Beispielsystems 100 mit einer Taktleitung 104 und einer Datenleitung 106 gezeigt ist, kann bei einigen Implementierungen der Bus 102 eine einzige Busleitung umfassen oder kann eine andere Kombination aus mehreren Busleitungen als in 1 gezeigt umfassen. Folglich kann eine Vorrichtung 108 einen einzigen Bustreiber zum Treiben des Busses 102 umfassen (z. B. wenn der Bus 102 eine einzige Busleitung umfasst), oder kann eine andere Kombination von Bustreibern zum Treiben des Busses 102 umfassen (z. B. wenn der Bus 102 eine andere Kombination von mehreren Busleitungen als in 1 gezeigt umfasst). Wenn das System 100 mehrere Vorrichtungen 108 umfasst, die fähig sind, den Bus 102 zu treiben (z. B. einen Bus 102 mit einer einzigen Busleitung oder mehreren Busleitungen), kann eine der Vorrichtungen 108 den Bus 102 anhalten (indem z. B. der Bus 102 aktiv gehalten wird, indem verhindert wird, dass der Bus 102 zu einem Leerlaufzustand zurückkehrt und/oder dergleichen), und kann verhindern, dass andere Vorrichtungen 108 über den Bus 102 kommunizieren. Zusätzliche Einzelheiten hinsichtlich des Anhaltens des Busses 102 werden nachfolgend in Verbindung mit 2, 3A und 3B beschrieben.
  • Wie oben angegeben wird 1 als ein Beispiel angeführt. Es sind andere Beispiele möglich und können sich von dem hinsichtlich 1 Beschriebenen unterscheiden. Zum Beispiel werden die Anzahl und Anordnung von Vorrichtungen und/oder Komponenten des in 1 gezeigten Systems 100 als Beispiel angeführt. In der Praxis kann das System 100 zusätzliche Vorrichtungen und/oder Komponenten, weniger Vorrichtungen und/oder Komponenten, andere Vorrichtungen und/oder Komponenten oder anders angeordnete Vorrichtungen und/oder Komponenten als in 1 gezeigt umfassen. Ferner können zwei oder mehr in 1 gezeigte Komponenten in einer einzigen Komponente implementiert werden, oder eine einzelne in 1 gezeigte Komponente kann als mehrere verteilte Vorrichtungen implementiert werden.
  • 2 ist eine Darstellung eines Beispiels 200 für das Treiben eines Busses 102 eines Systems 100, das mehrere Vorrichtungen 108 umfasst, die fähig sind, den Bus 102 zu treiben, gemäß einigen hier beschriebenen Implementierungen. Während Beispiel 200 ein Beispiel für einen I2C-Busstandard (Inter-Integrated Circuit) von Philips ist, sind andere Beispiele möglich.
  • Wie in 2 gezeigt, kann ein Beispielbus 102 eine Taktleitung 104 und eine Datenleitung 106 umfassen. In diesem Fall kann sich der Bus 102 in einem Leerlaufzustand befinden, in dem sowohl die Taktleitung 104 als auch die Datenleitung 106 sich in einem Hoch-Zustand befinden (z. B. auf einen ersten Logikzustand gesteuert, wie etwa auf einen logischen Eins-Zustand gesteuert wurden).
  • Wie durch die Bezugszahl 202 gezeigt, kann eine Vorrichtung 108 den Start einer Datenübertragung durch Treiben der Datenleitung 106 auf einen Niedrig-Zustand (z. B. einen zweiten Logikzustand, wie etwa einen logischen Null-Zustand) angeben, während sich die Taktleitung 104 in einem Hoch-Zustand befindet. Wie gezeigt kann somit die Bedingung des Treibens der Datenleitung 106 auf niedrig, während die Taktleitung 104 hoch ist, als Startbedingung bezeichnet werden.
  • Wie durch die Bezugszahl 204 gezeigt, kann die Vorrichtung 108 dann durch Hoch- oder Niedrigtreiben der Datenleitung zur Repräsentation von Bit von Einsen oder Nullen Daten übertragen. Wie weiter gezeigt ist, kann die Taktleitung 104 für Steuerinformationen, wie etwa Adressierungsinformationen, Lese-/Schreibangaben, Bestätigungen und/oder dergleichen verwendet werden. Insbesondere kann ein Zustand der Datenleitung 106 nicht geändert werden, während die Taktleitung 104 hoch ist, weil dies eine Stoppbedingung signalisieren würde.
  • Wie durch die Bezugszahl 206 gezeigt, kann die Vorrichtung 108 das Ende der Übertragung durch Treiben der Datenleitung 106 auf hoch, während die Taktleitung 104 hoch ist, angeben. Wie gezeigt kann somit die Bedingung des Hochtreibens der Datenleitung 106, während die Taktleitung 104 hoch ist, als Stoppbedingung bezeichnet werden. In diesem Fall befinden sich sowohl die Datenleitung 106 als auch die Taktleitung 104 in dem Hoch-Zustand, nachdem die Übertragung endet, wodurch der Bus 102 in einen Leerlaufzustand versetzt wird und der Bus 102 für nachfolgende Übertragungen durch die Vorrichtung 108 und/oder Übertragungen durch andere Vorrichtungen 108 verfügbar wird.
  • 2 zeigt Beispielübertragungen auf einem Bus 102 im Normalbetrieb. In einigen Fällen kann eine Vorrichtung 108 den Bus 102 wie nachfolgend in Verbindung mit 3A und 3B beschrieben anhalten. Wie oben angegeben, wird 2 als ein Beispiel angeführt. Es sind andere Beispiele möglich und können sich von dem hinsichtlich 2 Beschriebenen unterscheiden.
  • 3A und 3B sind Darstellungen von Beispielen 300 für das Anhalten eines Busses 102 eines Systems 100, das mehrere Vorrichtungen 108 umfasst, die fähig sind, den Bus 102 zu treiben, gemäß einigen hier beschriebenen Implementierungen.
  • Wie in 3A gezeigt, kann ein Beispielbus 102 eine Taktleitung 104 und eine Datenleitung 106 umfassen. In diesem Fall kann sich der Bus 102 in einem Leerlaufzustand befinden, wenn sich sowohl die Taktleitung 104 als auch die Datenleitung 106 in einem hohen Zustand befinden, wie oben in Verbindung mit 2 beschrieben. Wie durch die Bezugszahl 302 gezeigt, kann eine Vorrichtung 108 den Start einer Datenübertragung durch Treiben der Datenleitung 106 auf einen Niedrig-Zustand zur Angabe einer Startbedingung angeben, wie oben in Verbindung mit 2 beschrieben.
  • Wie durch die Bezugszahl 304 gezeigt, kann in einigen Fällen ein Fehler dazu führen, dass die Datenleitung 106 angehalten wird, wobei die Datenleitung 106 ihren Zustand nicht ändern kann. Zum Beispiel und wie gezeigt kann die Datenleitung 106 in einem Niedrig-Zustand angehalten sein. Dies kann auf einen Fehler zurückzuführen sein, der der Vorrichtung 108 zugeordnet ist, die den Bus 102 treibt. In einigen Fällen kann die den Bus 102 treibende Vorrichtung 108 eine Slave-Vorrichtung sein, und eine Master-Vorrichtung kann die angehaltene Datenleitung 106 detektieren und wiederherstellen.
  • Zum Beispiel kann, wie durch die Bezugszahl 306 gezeigt, in einigen Fällen die Master-Vorrichtung die angehaltene Datenleitung 106 detektieren und kann den Bus 102 wiederherstellen, indem sie über die Taktleitung 104 eine Reihe von Impulsen sendet (z. B. um die Taktleitung 104 abwechselnd wie gezeigt auf hoch und niedrig zu treiben). Dies kann die Slave-Vorrichtung dazu triggern, die Datenleitung 106 auf hoch zu treiben, wie durch die Bezugszahl 308 gezeigt. Nach dem Wiederherstellen der Datenleitung 106 kann die Übertragung beendet werden, indem die Datenleitung 106 auf hoch getrieben wird, während die Taktleitung 104 hoch ist, wie durch die Bezugszahl 310 gezeigt. Senden einer Reihe von Impulsen über die Taktleitung 104 kann jedoch nur in einigen Szenarien zur Wiederherstellung eines angehaltenen Busses 102 funktionieren, wie etwa, wenn es mehrere Busleitungen gibt, wenn es eine Master-Vorrichtung gibt, die fähig ist, die Taktleitung 104 zu steuern, oder wenn die Datenleitung 106 (z. B. und nicht die Taktleitung 104) angehalten ist. Ferner kann diese Wiederherstellungsprozedur nicht Teil eines Protokollstandards sein, der durch eine Vorrichtung 108 auf dem Bus 102 unterstützt wird, was die Verwendung dieser Wiederherstellungsprozedur verhindern kann. Zum Beispiel kann die Master-Vorrichtung nicht fähig sein, Taktimpulse über die Taktleitung 106 zu senden, während die Datenleitung 104 inaktiv gehalten wird.
  • Zum Beispiel und wie in 3B und durch die Bezugszahl 312 gezeigt, kann ein Fehler dazu führen, dass die Taktleitung 104 angehalten wird, wobei die Taktleitung 104 ihren Zustand nicht ändern kann. Zum Beispiel und wie gezeigt kann die Taktleitung 104 aufgrund eines Fehlers, der der Vorrichtung 108 zugeordnet ist, die den Bus 102 treibt (z. B. aufgrund eines Protokollfehlers, eines Soft-Fehlers, eines Open-Drain-Defekts, eines Treiberfehlers, eines Vortreiberfehlers, eines Fehlers in einer Schnittstelle oder einem Pfad und/oder dergleichen), in einem Niedrig-Zustand angehalten sein. In diesem Fall kann die Master-Vorrichtung den Bus 102 nicht durch Senden einer Reihe von Impulsen über die Taktleitung 104 wiederherstellen, da die Taktleitung 104 angehalten hat. Einige hier beschriebene Implementierungen gestatten die Wiederherstellung von diesem Szenario des angehaltenen Busses aus (z. B. wenn die Taktleitung 104 angehalten hat), sowie anderen Szenarien angehaltener Busse, wie etwa wenn die Datenleitung 106 angehalten hat, wenn der Bus 102 eine einzige Busleitung umfasst, die angehalten hat, und/oder dergleichen. Auf diese Weise stellen einige hier beschriebene Implementierungen eine Überwachungsvorrichtung bereit, die fähig ist, einen angehaltenen Bus 102 in vielfältigen Szenarien wiederherzustellen, um dadurch Flexibilität und Nützlichkeit der Überwachungsvorrichtung zu vergrößern, die Entwicklungskosten zu verringern, indem Wiederverwendung der Überwachungsvorrichtung über mehrere Szenarien gestattet wird, und/oder dergleichen.
  • Wie oben angegeben sind 3A und 3B als Beispiele angeführt. Es sind andere Beispiele möglich und können sich von dem in Bezug auf 3A und 3B beschriebenen unterscheiden.
  • 4 ist eine Darstellung eines Beispielsystems 400, das eine Überwachungsvorrichtung 402 zum Wiederherstellen eines angehaltenen Busses 102 eines Systems 100 umfasst, das mehrere Vorrichtungen 108 umfasst, die fähig sind, den Bus 102 zu treiben, gemäß einigen hier beschriebenen Implementierungen.
  • Wie in 4 gezeigt, kann das System 400 ein oben in Verbindung mit 1 beschriebenes System 100 umfassen. Bei einigen Implementierungen kann das System 100 wie gezeigt einen Bus 102 mit mehreren Busleitungen umfassen. Bei einigen Implementierungen kann das System 100 einen Bus 102 mit einer einzigen Busleitung umfassen. Als einige nichteinschränkende Beispiele kann das System 100 ein I2C (Inter-Integrated Circuit), eine SPI (Serial Peripheral Interface), einen UART (Universal Asynchronous Receiver-Transmitter), eine serielle Begleiterschnittstelle, eine Pulscodemodulations- bzw. PCM-Schnittstelle, eine Pulsbreitenmodulations- bzw. PWM-Schnittstelle, eine SPC-Schnittstelle (Short PWM Code), eine SENT-Schnittstelle (Single Edge Nibble Transmission) gemäß SAE J2716, eine inkrementelle Schnittstelle (z. B. mit oder ohne Richtungsinformationen), eine Eindraht- bzw. 1-Wire-Schnittstelle, ein LIN (Local Interconnect Network), ein CAN (Controlled Area Network), eine PSI5 (Peripheral Sensor Interface 5) und/oder dergleichen umfassen. Im Prinzip kann jede beliebige Schnittstelle verwendet werden, die eine beliebige Form von Leerlaufzustand, der überwacht werden kann, bereitstellt.
  • Wie weiter gezeigt ist, kann das System 400 eine mit einer Vorrichtung 108 kommunizierende Überwachungsvorrichtung 402 umfassen. Bei einigen Implementierungen kann das System 400 mehrere Überwachungsvorrichtungen 402 entsprechend den mehreren Vorrichtungen 108 des Systems 100 umfassen. In diesem Fall kann jede Überwachungsvorrichtung 402 mit einer anderen Vorrichtung 108 des Systems 100 kommunizieren. Zusätzlich oder als Alternative kann die Überwachungsvorrichtung 402 in einem System mit einer Punktzu-Punkt-Verbindung mit einer Master-Vorrichtung mit einem Empfänger und einer Slave-Vorrichtung mit einem Sender und/oder einer Master-Vorrichtung mit einem Sender und einer Slave-Vorrichtung mit einem Empfänger verwendet werden, wobei die Überwachungsvorrichtung 402 die Funktionalität (z. B. Eingang) der Vorrichtung 108, die den Sender umfasst, überwacht.
  • Die Überwachungsvorrichtung 402 kann eine Gatekomponente 404 umfassen. Die Gatekomponente 404 kann Eingaben von einem oder mehreren Bustreibern einer mit einem Bus 102 des Systems 100 verbundenen Vorrichtung 108 empfangen. Zum Beispiel kann eine Gatekomponente 404 erste Eingaben von einem Takttreiber 110 empfangen, kann zweite Eingaben von einem Datentreiber 112 empfangen und/oder dergleichen. Bei einigen Implementierungen kann die Gatekomponente 404 als Eingabe die Ausgabe des Takttreibers 110 (z. B. die zum Treiben der Taktleitung 104 verwendete Ausgabe) empfangen. Der Ausgang des Takttreibers 110 kann zu einem Taktempfänger 114 gesendet werden, der die Ausgabe zu der Gatekomponente 404 senden kann. Zusätzlich oder als Alternative kann die Gatekomponente 404 als Eingabe die Ausgabe des Datentreibers 112 (z. B. die zum Treiben der Datenleitung 106 verwendete Ausgabe) empfangen. Die Ausgabe des Datentreibers 112 kann zu einem Datenempfänger 116 gesendet werden, der die Ausgabe zu der Gatekomponente 404 senden kann. Bei einigen Implementierungen kann die Gatekomponente 404 eine Menge von Eingaben empfangen, was sich auf eine einzige Eingabe zu einem bestimmten Zeitpunkt (z. B. von einem einzigen Bustreiber), mehrere Eingaben an einem einzigen Zeitpunkt (z. B. von mehreren Bustreibern) oder mehrere Eingaben über einen Zeitraum (z. B. von einem einzigen Bustreiber oder mehreren Bustreibern) beziehen kann. Bei einigen Implementierungen können die Treiber 110, 112 und/oder die Empfänger 114, 116 der Vorrichtung 108 spannungsbasiert mit Open-Drain-Funktionalität sein, wie in dem System 400 gezeigt. Zusätzlich oder als Alternative können die Treiber 110, 112 und/oder die Empfänger 114, 116 eine Gegentaktschnittstelle mit Tristate-Funktionalität verwenden, können strombasiert mit Stromquellen als Treibern 110, 112 und Stromsenken als Empfänger 114, 116 sein oder ähnliche Standards, die zur tatsächlichen Datenübertragung als asymmetrische oder Differenzsignale verwendet werden.
  • Die Gatekomponente 404 kann ein Signal ausgeben, das angibt, ob die Eingabe in die Gatekomponente 404 angibt, dass der Bus nicht leerläuft (z. B. sich im aktiven Zustand befindet, sich nicht in einem Leerlaufzustand befindet usw.). Wenn zum Beispiel das System 100 eine einzige Busleitung des Busses 102 umfasst, kann die Gatekomponente 404 einen ersten Wert (z. B. 0) ausgeben, wenn die Busleitung aktiv ist, und einen zweiten Wert (z. B. 1), wenn die Busleitung leerläuft. Als ein anderes Beispiel kann, wenn das System 100 zwei Busleitungen umfasst, wie etwa eine Taktleitung 104 und eine Datenleitung 106, die Gatekomponente 404 einen ersten Wert (z. B. 0) ausgeben, wenn sich eine oder beide der Busleitungen in einem ersten Zustand befinden (z. B. wenn beide Busleitungen niedrig sind, wodurch angegeben wird, dass der Bus 102 aktiv ist, wie oben in Verbindung mit 2, 3A und 3B beschrieben), und einen zweiten Wert (z. B. 1), wenn sich beide Busleitungen in einem zweiten Zustand befinden (z. B. wenn beide Busleitungen hoch sind, wodurch angegeben wird, dass der Bus 102 leerläuft, wie oben in Verbindung mit 2, 3A und 3B beschrieben). Bei einigen Implementierungen ist die Gatekomponente 404 ein OR-Gatter.
  • Wie weiter gezeigt ist, kann die Überwachungsvorrichtung 402 eine Zählerkomponente 406 umfassen. Die Zählerkomponente 406 kann das Signal von der Gatekomponente 404 empfangen und kann auf der Basis des Signals einen Zählerwert ausgeben. Bei einigen Implementierungen kann die Zählerkomponente 406 einen Zählerwert inkrementieren, wenn das Signal von der Gatekomponente 404 angibt, dass der Bus nicht leerläuft (z. B. aktiv ist). Zusätzlich oder als Alternative kann die Zählerkomponente 406 den Zählerwert rücksetzen, wenn das Signal von der Gatekomponente 404 angibt, dass der Bus leerläuft. Die Zählerkomponente 406 kann den Zählerwert ausgeben (z. B. nach jedem von der Gatekomponente 404 empfangenen Signal, nach jedem Inkrementieren, nach einem Rücksetzen und/oder dergleichen). Auf diese Weise kann die Zählerkomponente 406 den Zählerwert zur Angabe einer Zeitdauer verwenden, über die ein oder mehrere Bustreiber einer Vorrichtung 108 den Bus 102 in einem aktiven Zustand halten (z. B. eine Zeitdauer, über die Eingaben von der Gatekomponente 404 einen Wert aufrechterhalten, der angibt, dass eine oder mehrere Busleitungen nicht leerlaufen), was ein Anzeichen für einen angehaltenen Bus 102 sein kann.
  • Wie weiter gezeigt ist, kann die Überwachungsvorrichtung 402 eine Komparatorkomponente 408 umfassen. Die Komparatorkomponente 408 kann den Zählerwert von der Zählerkomponente 406 empfangen und kann den Zählerwert und einen (als „Grenzwert“ gezeigten) Schwellenwert vergleichen. Der Schwellenwert kann eine Zeitdauer repräsentieren, die einen angehaltenen Bus 102 angibt. Wenn zum Beispiel der Zählerwert größer oder gleich der Schwelle ist, kann dies angeben, dass der Bus 102 für eine Schwellenzeitdauer aktiv war, wodurch angegeben werden kann, dass der Bus 102 angehalten hat. Die Komparatorkomponente 408 kann auf der Basis des Vergleichs des Zählerwerts und des Schwellenwerts ein Vergleichssignal ausgeben. Das Vergleichssignal kann angeben, ob der Bus 102 angehalten hat. Zum Beispiel kann die Komparatorkomponente 408 einen ersten Wert (z. B. 0) ausgeben, wenn der Zählerwert die Schwelle nicht erfüllt (z. B. kleiner oder gleich der Schwelle ist), wodurch angegeben werden kann, dass der Bus 102 nicht angehalten hat. Als ein anderes Beispiel kann die Komparatorkomponente 408 einen zweiten Wert (z. B. 1) ausgeben, wenn der Zählerwert die Schwelle erfüllt (z. B. größer oder gleich der Schwelle ist), wodurch angegeben werden kann, dass der Bus 102 angehalten hat.
  • Bei einigen Implementierungen können das System 400 und/oder eine oder mehrere Vorrichtungen 108 einem Protokoll zugeordnet sein, und der Schwellenwert kann auf der Basis des Protokolls bestimmt werden. Zusätzlich oder als Alternative kann der Schwellenwert (z. B. auf der Basis des Protokolls) konfigurierbar sein. Zusätzlich oder als Alternative kann der Schwellenwert durch das System 500 über ein spezifisches Busprotokoll zum Setzen des Schwellenwerts, durch den tatsächlichen Protokollmodus (der z. B. einen Schwellenwert angeben kann), durch On-Chip-Konfigurationsspeicher und/oder dergleichen konfiguriert werden.
  • Bei einigen Implementierungen kann die Überwachungsvorrichtung 402 eine oder mehrere Aktionen ausführen, um den angehaltenen Bus 102 wiederherzustellen, wenn das Vergleichssignal angibt, dass der Bus 102 angehalten hat. Zum Beispiel kann die Überwachungsvorrichtung 402 die Vorrichtung 108 (z. B. durch Herunterfahren der Vorrichtung 108 und Wiederherauffahren der Vorrichtung 108 innerhalb eines Schwellenzeitraums) rücksetzen, kann die Vorrichtung 108 (z. B. durch Herunterfahren der Vorrichtung 108 ohne die Vorrichtung 108 innerhalb des Schwellenzeitraums wieder heraufzufahren) deaktivieren, kann einen oder mehrere Bustreiber der Vorrichtung 108 (z. B. einen Takttreiber 110, einen Datentreiber 112 und/oder dergleichen) rücksetzen, kann einen oder mehrere Bustreiber der Vorrichtung 108 deaktivieren, kann eine oder mehrere Diagnostikprüfungen an der Vorrichtung 108 ausführen (z. B. um einen den angehaltenen Bus 102 verursachenden Fehler zu bestimmen und/oder zu lösen, um einen den angehaltenen Bus 102 verursachenden Bustreiber zu identifizieren und/oder dergleichen) und/oder dergleichen. Zusätzlich oder als Alternative kann die Überwachungsvorrichtung 402 eine oder mehrere Komponenten der Vorrichtung 108 rücksetzen oder deaktivieren, wozu Rücksetzen oder Deaktivieren der Vorrichtung 108, Rücksetzen oder Deaktivieren eines oder mehrerer Bustreiber der Vorrichtung 108 und/oder Rücksetzen oder Deaktivieren einer oder mehrerer anderer Komponenten der Vorrichtung 108 gehören kann. Bei einigen Implementierungen kann das Vergleichssignal angeben, dass eine oder mehrere dieser Aktionen auszuführen sind.
  • Bei einigen Implementierungen kann die Überwachungsvorrichtung 402 eine auszuführende Aktion auf der Basis einer Anzahl von Malen bestimmen, wie oft der Zählerwert den Schwellenwert erfüllt (z. B. eine Anzahl von Vergleichen, die angeben, dass der Bus 102 angehalten hat). Als ein Beispiel kann die Überwachungsvorrichtung 402 die Vorrichtung 108 das erste Mal, wenn der Zählerwert die Schwelle erfüllt, rücksetzen, kann einen Treiber der Vorrichtung 108 das zweite Mal, wenn der Zählerwert die Schwelle erfüllt, deaktivieren und/oder kann die Vorrichtung 108 das dritte Mal, wenn der Zählerwert die Schwelle erfüllt, deaktivieren. Auf diese Weise kann die Überwachungsvorrichtung 402 versuchen, den Fehler unter Verwendung von weniger drastischen Aktionen zu lösen, und kann drastischere Aktionen verwenden, wenn die weniger drastischen Aktionen den Fehler nicht lösen.
  • Lediglich als ein Beispiel und wie durch die Bezugszahl 410 gezeigt, kann die Überwachungsvorrichtung 402 die Vorrichtung 108 (gezeigt als „Rücksetzschnittstelle“) jedes Mal rücksetzen, wenn das Vergleichssignal angibt, dass der Bus 102 angehalten hat. Zusätzlich oder als Alternative kann die Überwachungsvorrichtung 402 einen oder mehrere Bustreiber der Vorrichtung 108 deaktivieren, wenn der Bus 102 eine Schwellenanzahl von Malen angehalten hat. Zum Beispiel kann die Überwachungsvorrichtung 402 einen Puffer 412 (z. B. eine Flipflopkomponente) umfassen, der einen Zählerwert einer Anzahl von Malen speichert, wie oft der Bus 102 angehalten hat. Wie durch die Bezugszahl 414 gezeigt, kann die Überwachungsvorrichtung 402 einen oder mehrere Treiber der Vorrichtung 108 deaktivieren, wenn der Bus 102 eine Schwellenanzahl von Malen angehalten hat. Wie durch die Bezugszahl 416 gezeigt, kann das System 100 (z. B. eine Master-Vorrichtung des Systems 100) zur Reaktivierung des einen oder der mehreren Treiber Eingaben zum Rücksetzen des Puffers 412 bereitstellen (z. B. nach dem Diagnostizieren und/oder Lösen eines den angehaltenen Bus 102 verursachenden Fehlers).
  • Wie weiter gezeigt ist, kann die Überwachungsvorrichtung 402 einen Taktgeber 418 umfassen. Bei einigen Implementierungen kann der Taktgeber 418 das Inkrementieren des Zählerwerts durch die Zählerkomponente 406 steuern. Zum Beispiel kann die Zählerkomponente 406 den Zählerwert für jeden Takt-Tick inkrementieren, für den die Eingabe von der Gatekomponente 404 angibt, dass der Bus 102 aktiv ist. Bei einigen Implementierungen kann der Taktgeber 418 von einem Taktgeber der Vorrichtung 108 wie gezeigt unabhängig sein. In diesem Fall kann die Überwachungsvorrichtung 402 eine Synchronisationskomponente 420 zum Synchronisieren des Taktgebers 418 der Überwachungsvorrichtung 402 und des Taktgebers der Vorrichtung 108 umfassen. Bei einigen Implementierungen kann der Taktgeber 418 in der Vorrichtung 108 enthalten sein. In diesem Fall kann die Überwachungsvorrichtung 402 die Synchronisationskomponente 420 nicht umfassen.
  • Durch Verwendung einer unabhängigen Überwachungsvorrichtung 402, die Signale einer Vorrichtung 108 eines Systems 100 mit einem Bus 102 und mehreren Vorrichtungen 108, die fähig sind, den Bus 102 zu treiben, überwacht, gestatten einige hier beschriebene Implementierungen Wiederherstellung von vielfältigen Szenarien aus, die zu einem angehaltenen Bus 102 führen, wie etwa wenn eine Taktleitung 104 des Busses 102 angehalten hat, wenn eine Datenleitung 106 des Busses 102 angehalten hat, wenn der Bus 102 eine einzige Busleitung umfasst, die angehalten hat, und/oder dergleichen. Auf diese Weise können Flexibilität und Nützlichkeit der Überwachungsvorrichtung 402 vergrößert werden und Entwicklungskosten können verringert werden, indem angepasste Schaltungen zur Wiederherstellung von verschiedenen Szenarien mit angehaltenem Bus aus überflüssig gemacht werden. Ferner kann die Überwachungsvorrichtung 402 unabhängig von der Kommunikationsfunktion der Vorrichtung 108 implementiert werden, was bezüglich funktionaler Sicherheit Vorteile hat (z. B. gemäß ISO26262 oder anderen Sicherheitsstandards, die auf das System 100 anzuwenden sind) und Implementierung der Überwachungsvorrichtung 402 unabhängig von jedem durch die Vorrichtung 108 zur Kommunikation verwendeten Protokoll erlaubt.
  • Die Anzahl und Anordnung von in 4 gezeigten Vorrichtungen und Komponenten werden als Beispiel angeführt. In der Praxis können zusätzliche Vorrichtungen und/oder Komponenten, weniger Vorrichtungen und/oder Komponenten, andere Vorrichtungen und/oder Komponenten oder anders angeordnete Vorrichtungen und/oder Komponenten als in 4 gezeigt vorliegen. Ferner können zwei oder mehr in 4 gezeigte Komponenten in einer einzigen Komponente implementiert werden, oder eine in 4 gezeigte einzelne Komponente kann als mehrere verteilte Komponenten implementiert werden. Zusätzlich oder als Alternative kann eine Menge von Komponenten (z. B. eine oder mehrere Komponenten) der Überwachungsvorrichtung 402 eine oder mehrere Funktionen ausführen, die als durch eine andere Menge von Komponenten der Überwachungsvorrichtung 402 ausgeführt beschrieben werden.
  • 5 ist ein Flussdiagramm eines Beispielprozesses 500 zum Wiederherstellen eines angehaltenen Busses eines Systems, das mehrere Vorrichtungen umfasst, die fähig sind, den Bus zu treiben, gemäß einigen hier beschriebenen Implementierungen. Bei einigen Implementierungen können ein oder mehrere Prozessblöcke von 5 durch die Überwachungsvorrichtung 402 ausgeführt werden.
  • Wie in 5 gezeigt, kann der Prozess 500 Empfangen einer Menge von Eingaben von einem oder mehreren Treibern einer mit einem Bus verbundenen Vorrichtung umfassen, wobei der eine oder die mehreren Treiber fähig sind, eine Busleitung des Busses zu treiben und wobei der Bus mehrere Vorrichtungen verbindet, die fähig sind, die Busleitung zu treiben (Block 510). Zum Beispiel kann die Überwachungsvorrichtung 402 (z. B. unter Verwendung der Gatekomponente 404) eine Menge von Eingaben von einem oder mehreren Treibern (z. B. einem oder mehreren Bustreibern, wie etwa dem Takttreiber 110, dem Datentreiber 112 und/oder dergleichen) einer mit einem Bus 102 verbundenen Vorrichtung 108 empfangen, wie oben in Verbindung mit 4 beschrieben. Bei einigen Implementierungen sind der eine oder die mehreren Treiber fähig, eine Busleitung des Busses 102 zu treiben. Bei einigen Implementierungen verbindet der Bus 102 mehrere Vorrichtungen 108, die fähig sind, die Busleitung zu treiben.
  • Bei einigen Implementierungen umfasst die Busleitung eine Taktleitung 104 und/oder eine Datenleitung 106. Bei einigen Implementierungen umfassen der eine oder die mehreren Treiber einen Takttreiber 110, der fähig ist, die Taktleitung 104 zu treiben, und/oder einen Datentreiber 112, der fähig ist, die Datenleitung 106 zu treiben. Bei einigen Implementierungen umfasst die Menge von Eingaben eine erste Menge von Eingaben von dem Takttreiber 110 und/oder eine zweite Menge von Eingaben von dem Datentreiber 112.
  • Bei einigen Implementierungen kann eine Gatekomponente 404 der Überwachungsvorrichtung 402 Eingaben von einem oder mehreren Bustreibern der Vorrichtung 108 empfangen und kann ein Signal ausgeben, das angibt, ob die Eingaben einen Wert umfassen, der angibt, dass der Bus 102 nicht leerläuft. Bei einigen Implementierungen kann die Gatekomponente 404 das Signal an eine Zählerkomponente 406 ausgeben.
  • Wie weiter in 5 gezeigt ist, kann der Prozess 500 Bestimmen einer Zeitdauer umfassen, über die die Menge von Eingaben einen Wert aufrechterhält, der angibt, dass der Bus nicht leerläuft (Block 520). Zum Beispiel kann die Überwachungsvorrichtung 402 (z. B. unter Verwendung der Zählerkomponente 406) eine Zeitdauer bestimmen, über die die Menge von Eingaben einen Wert aufrechterhält, der angibt, dass der Bus 102 nicht leerläuft, wie oben in Verbindung mit 4 beschrieben. Bei einigen Implementierungen wird die Zeitdauer durch einen Zählerwert repräsentiert.
  • Bei einigen Implementierungen kann eine Zählerkomponente 406 der Überwachungsvorrichtung 402 einen Zählerwert inkrementieren, wenn ein Signal von der Gatekomponente 404 angibt, dass die Eingabe einen Wert umfasst, der angibt, dass der Bus 102 nicht leerläuft, oder kann den Zählerwert rücksetzen, wenn das Signal angibt, dass die Eingaben einen Wert umfassen, der angibt, dass der Bus 102 leerläuft. Bei einigen Implementierungen kann die Zählerkomponente 406 den Zählerwert an eine Komparatorkomponente 408 ausgeben. Bei einigen Implementierungen kann ein Taktgeber 418 das Inkrementieren des Zählerwerts durch die Zählerkomponente 406 steuern. Bei einigen Implementierungen ist der Taktgeber 418 in der Vorrichtung 108 enthalten. Bei einigen Implementierungen ist der Taktgeber 418 unabhängig von einem Taktgeber der Vorrichtung 108. Bei einigen Implementierungen umfasst die Überwachungsvorrichtung 402 eine Synchronisationskomponente 420 zum Synchronisieren des Taktgebers 418 der Überwachungsvorrichtung 402 und des Taktgebers der Vorrichtung 108.
  • Wie weiter in 5 gezeigt ist, kann der Prozess 500 Vergleichen der Zeitdauer und einer Schwelle (Block 530) und Ausgeben eines Signals auf der Basis des Vergleichens der Zeitdauer und der Schwelle (Block 540) umfassen. Zum Beispiel kann die Überwachungsvorrichtung 402 (z. B. unter Verwendung der Komparatorkomponente 408) die Zeitdauer und eine Schwelle vergleichen. Bei einigen Implementierungen kann die Komparatorkomponente 408 einen Zählerwert von der Zählerkomponente 406 empfangen und den Zählerwert und einen Schwellenwert vergleichen.
  • Bei einigen Implementierungen kann die Überwachungsvorrichtung 402 (z. B. unter Verwendung der Komparatorkomponente 408) ein Signal (z. B. ein Vergleichssignal) auf der Basis des Vergleichens der Zeitdauer und der Schwelle ausgeben. Bei einigen Implementierungen kann das Signal angeben, ob der Bus 102 angehalten hat. Außerdem oder als Alternative kann das Signal angeben, ob eine oder mehrere Komponenten der Vorrichtung 108 zu deaktivieren sind. Bei einigen Implementierungen umfassen die eine oder mehreren Komponenten den einen oder die mehreren Treiber. Bei einigen Implementierungen gibt das Signal an, dass die Vorrichtung 108 rückzusetzen ist. Bei einigen Implementierungen gibt das Signal an, dass eine oder mehrere Diagnostikprüfungen an der Vorrichtung 108 auszuführen sind.
  • Bei einigen Implementierungen kann die Überwachungsvorrichtung 402 eine Aktion an der Vorrichtung 108 auf der Basis einer Anzahl von Malen ausführen, wie oft ein Vergleich der Zeitdauer und der Schwelle einen der Vorrichtung 108 zugeordneten Fehler (z. B. einen angehaltenen Bus 102) angibt. Bei einigen Implementierungen umfasst die Aktion mindestens eines des Folgenden: Ausführen einer oder mehrerer Diagnostikprüfungen an der Vorrichtung 108, Rücksetzen der Vorrichtung 108, Deaktivieren der Vorrichtung 108, Rücksetzen des einen oder der mehreren Treiber der Vorrichtung 108, Deaktivieren des einen oder der mehreren Treiber der Vorrichtung 108 oder irgendeine Kombination davon.
  • Obwohl 5 Beispielblöcke des Prozesses 500 zeigt, kann bei einigen Implementierungen der Prozess 500 zusätzliche Blöcke, weniger Blöcke, andere Blöcke oder anders angeordnete Blöcke als in 5 abgebildet umfassen. Zusätzlich oder als Alternative können zwei oder mehr der Blöcke des Prozesses 500 parallel ausgeführt werden.
  • Durch Verwendung einer unabhängigen Überwachungsvorrichtung 402, die Signale einer Vorrichtung 108 eines Systems 100 überwacht, das einen Bus 102 und mehrere Vorrichtungen 108 umfasst, die fähig sind, den Bus 102 zu treiben, gestatten einige hier beschriebene Implementierungen Wiederherstellung von vielfältigen Szenarien, die zu einem angehaltenen Bus 102 führen, wie etwa wenn eine Taktleitung 104 des Busses 102 angehalten hat, wenn eine Datenleitung 106 des Busses 102 angehalten hat, wenn der Bus 102 eine einzige Busleitung umfasst, die angehalten hat, und/oder dergleichen. Auf diese Weise können Flexibilität und Nützlichkeit der Überwachungsvorrichtung 402 vergrößert werden und Entwicklungskosten können verringert werden, indem angepasste Schaltungen zur Wiederherstellung von verschiedenen Szenarien mit angehaltenem Bus überflüssig gemacht werden.
  • Die obige Offenbarung stellt eine Veranschaulichung und Beschreibung bereit, soll aber die Implementierungen nicht erschöpfen oder auf die genaue angegebene Form beschränken.
  • Im Hinblick der obigen Offenbarung sind Modifikationen und Abwandlungen möglich, oder sie können aus einer Praktizierung der Implementierungen erlangt werden.
  • Im vorliegenden Gebrauch soll der Ausdruck Komponente allgemein als Hardware, Firmware oder eine Kombination von Hardware und Software aufgefasst werden.
  • Einige Implementierungen werden hier in Verbindung mit Schwellen beschrieben. Im vorliegenden Gebrauch kann sich Erfüllen einer Schwelle darauf beziehen, dass ein Wert größer als die Schwelle ist, mehr als die Schwelle beträgt, höher als die Schwelle ist, größer oder gleich der Schwelle ist, kleiner als die Schwelle ist, weniger als die Schwelle ist, niedriger als die Schwelle ist, kleiner oder gleich der Schwelle ist, gleich der Schwelle ist oder dergleichen.
  • Obwohl bestimmte Kombinationen von Merkmalen in den Ansprüchen angeführt und/oder in der Patentschrift offenbart werden, sollen diese Kombinationen die Offenbarung möglicher Implementierungen nicht beschränken. Tatsächlich können viele dieser Merkmale auf Weisen kombiniert werden, die nicht speziell in den Ansprüchen angeführt und/oder in der Patentschrift offenbart werden. Obwohl jeder nachfolgend aufgelistete abhängige Anspruch direkt von nur einem Anspruch abhängen kann, umfasst die Offenbarung möglicher Implementierungen jeden abhängigen Anspruch in Kombination mit jedem anderen Anspruch in dem Anspruchssatz.
  • Kein Element, kein Schritt oder keine Anweisung, die hier verwendet werden, sollte als kritisch oder wesentlich aufgefasst werden, sofern es nicht ausdrücklich dementsprechend beschrieben wird. Außerdem sollen im vorliegenden Gebrauch die Artikel „ein“ und „eine“ einen oder mehrere Posten umfassen und können austauschbar mit „eines oder mehrere“ verwendet werden. Ferner soll im vorliegenden Gebrauch der Ausdruck „Menge“ einen oder mehrere Posten umfassen (z. B. verwandte Posten, nichtverwandte Posten, eine Kombination von verwandten und nichtverwandten Posten usw.) und kann austauschbar mit „eines oder mehrere“ verwendet werden. Wenn nur ein Posten beabsichtigt ist, wird der Ausdruck „eines“ oder ähnliche Sprache verwendet. Außerdem sollen im vorliegenden Gebrauch die Ausdrücke „hat“, „haben“, „aufweisen“ oder dergleichen Ausdrücke mit offenem Ende sein. Ferner soll der Ausdruck „basiert auf“, sofern es nicht ausdrücklich anders angegeben wird, „mindestens teilweise auf der Basis von“ bedeuten.

Claims (20)

  1. Verfahren, umfassend: Empfangen einer Menge von Eingaben von einem oder mehreren Treibern einer mit einem Bus verbundenen Vorrichtung durch eine Überwachungsvorrichtung, wobei der eine oder die mehreren Treiber fähig sind, eine Busleitung des Busses zu treiben, wobei der Bus mehrere Vorrichtungen verbindet, die fähig sind, die Busleitung zu treiben; Bestimmen einer Zeitdauer, über die die Menge von Eingaben einen Wert aufrechterhält, der angibt, dass der Bus nicht leerläuft durch die Überwachungsvorrichtung; Vergleichen der Zeitdauer und einer Schwelle durch die Überwachungsvorrichtung; und Ausgeben eines Signals auf der Basis des Vergleichs der Zeitdauer und der Schwelle durch die Überwachungsvorrichtung.
  2. Verfahren nach Anspruch 1, wobei das Signal angibt, ob eine oder mehrere Komponenten der Vorrichtung zu deaktivieren sind.
  3. Verfahren nach Anspruch 2, wobei die eine oder mehreren Komponenten den einen oder die mehreren Treiber umfassen.
  4. Verfahren nach einem der Ansprüche 1-3, wobei das Signal angibt, dass die Vorrichtung rückzusetzen ist.
  5. Verfahren nach einem der Ansprüche 1-4, wobei das Signal angibt, dass eine oder mehrere Diagnostikprüfungen an der Vorrichtung auszuführen sind.
  6. Verfahren nach einem der Ansprüche 1-5, das ferner ein Ausführen einer Aktion an der Vorrichtung auf der Basis einer Anzahl von Malen, wie oft ein Vergleich der Zeitdauer und der Schwelle einen der Vorrichtung zugeordneten Fehler angibt, umfasst, wobei die Aktion mindestens eines des Folgenden umfasst: Ausführen einer oder mehrerer Diagnostikprüfungen an der Vorrichtung, Rücksetzen der Vorrichtung, Deaktivieren des einen oder der mehreren Treiber der Vorrichtung, Deaktivieren der Vorrichtung oder irgendeine Kombination davon.
  7. Verfahren nach einem der Ansprüche 1-6, wobei die Zeitdauer durch einen Zählerwert repräsentiert wird.
  8. Verfahren nach einem der Ansprüche 1-7, wobei die Busleitung eine Taktleitung und eine Datenleitung umfasst, wobei der eine oder die mehreren Treiber einen Takttreiber, der fähig ist, die Taktleitung zu treiben, und einen Datentreiber, der fähig ist, die Datenleitung zu treiben, umfassen, und wobei die Menge von Eingaben eine erste Menge von Eingaben von dem Takttreiber und eine zweite Menge von Eingaben von dem Datentreiber umfasst.
  9. Überwachungsvorrichtung, umfassend: eine Gatekomponente zum Empfangen von Eingaben von einem oder mehreren Bustreibern einer mit einem Bus verbundenen Vorrichtung, wobei der eine oder die mehreren Bustreiber fähig sind, den Bus zu treiben, wobei der Bus mehrere Vorrichtungen verbindet, die fähig sind, den Bus zu treiben; Ausgeben eines Signals, das angibt, ob die Eingabe einen Wert umfasst, der angibt, dass der Bus nicht leerläuft; eine Zählerkomponente zum Inkrementieren eines Zählerwerts, wenn das Signal angibt, dass die Eingabe einen Wert umfasst, der angibt, dass der Bus nicht leerläuft, oder Rücksetzen des Zählerwerts, wenn das Signal angibt, dass die Eingabe einen Wert umfasst, der angibt, dass der Bus leerläuft, und Ausgeben des Zählerwerts; und eine Komparatorkomponente zum Vergleichen des Zählerwerts und eines Schwellenwerts; und Ausgeben eines Vergleichssignals auf der Basis des Vergleichens des Zählerwerts und des Schwellenwerts, wobei das Vergleichssignal angibt, ob der Bus angehalten hat.
  10. Überwachungsvorrichtung nach Anspruch 9, die ferner einen Taktgeber zum Steuern des Inkrementierens des Zählerwerts durch die Zählerkomponente umfasst.
  11. Überwachungsvorrichtung nach Anspruch 10, wobei der Taktgeber in der Vorrichtung enthalten ist.
  12. Überwachungsvorrichtung nach Anspruch 10, wobei der Taktgeber von einem Taktgeber der Vorrichtung unabhängig ist.
  13. Überwachungsvorrichtung nach Anspruch 12, die ferner eine Synchronisationskomponente zum Synchronisieren des Taktgebers der Überwachungsvorrichtung und des Taktgebers der Vorrichtung umfasst.
  14. Überwachungsvorrichtung nach einem der Ansprüche 9-13, wobei das Vergleichssignal angibt, dass mindestens eine der Vorrichtungen und/oder der eine oder die mehreren Bustreiber rückzusetzen oder zu deaktivieren sind.
  15. Überwachungsvorrichtung nach einem der Ansprüche 9-14, wobei der Bus eine Taktleitung und/oder eine Datenleitung umfasst, wobei der eine oder die mehreren Bustreiber einen Takttreiber, der fähig ist, die Taktleitung zu treiben, und/oder einen Datentreiber, der fähig ist, die Datenleitung zu treiben, umfassen, und wobei die Eingabe eine erste Eingabe von dem Takttreiber und/oder eine zweite Eingabe von dem Datentreiber umfasst.
  16. System, umfassend: einen Bus, der eine oder mehrere Busleitungen umfasst; mehrere mit dem Bus verbundene Vorrichtungen, die fähig sind, die eine oder mehreren Busleitungen zu treiben; und eine mit einer Vorrichtung der mehreren Vorrichtungen verbundene Überwachungsvorrichtung zum Empfangen einer Menge von Eingaben von einem Treiber der Vorrichtung, der fähig ist, die eine oder mehreren Busleitungen zu treiben; Bestimmen eines Zählerwerts, der eine Zeitdauer angibt, über die die Menge von Eingaben einen Wert aufrechterhält, der angibt, dass die eine oder die mehreren Busleitungen nicht leerlaufen; Vergleichen des Zählerwerts und eines Schwellenwerts; und Ausgeben eines Signals, das anzeigt, ob eine oder mehrere Komponenten der Vorrichtung auf der Basis des Vergleichs des Zählerwerts und des Schwellenwerts deaktiviert werden sollen.
  17. System nach Anspruch 16, wobei das System mindestens eines von Folgendem umfasst: ein I2C (Inter-Integrated Circuit), eine SPI (Serial Peripheral Interface), einen UART (Universal Asynchronous Receiver-Transmitter), eine serielle Begleiterschnittstelle, eine Pulsbreitenmodulations- bzw. PWM-Schnittstelle, eine Pulscodemodulations- bzw. PCM-Schnittstelle, eine inkrementelle Schnittstelle, eine SPC-Schnittstelle (Short PWM Code), eine SENT-Schnittstelle (Single Edge Nibble Transmission) gemäß SAE J2716, eine Eindraht- bzw. 1-Wire-Schnittstelle, ein LIN (Local Interconnect Network), ein CAN (Controlled Area Network), eine PSI5 (Peripheral Sensor Interface 5) oder eine bestimmte Kombination davon.
  18. System nach Anspruch 16 oder 17, wobei das Signal mindestens eines von Folgendem angibt: dass die Vorrichtung zu deaktivieren ist, dass die Vorrichtung rückzusetzen ist oder dass der Treiber zu deaktivieren ist.
  19. System nach Anspruch 16 oder 17, wobei das Signal auf der Basis einer Anzahl von Malen, wie oft ein Vergleich des Zählerwerts und des Schwellenwerts einen der Vorrichtung zugeordneten Fehler angibt, eine an der Vorrichtung auszuführende Aktion angibt, wobei die Aktion mindestens eines des Folgenden umfasst: Ausführen einer oder mehrerer Diagnostikprüfungen an der Vorrichtung, Rücksetzen der Vorrichtung, Deaktivieren des Treibers der Vorrichtung oder Deaktivieren der Vorrichtung.
  20. System nach einem der Ansprüche 16-19, wobei die eine oder mehreren Busleitungen eine Taktleitung und eine Datenleitung umfassen, wobei der Treiber mindestens einen Takttreiber, der fähig ist, die Taktleitung zu treiben, und/oder einen Datentreiber, der fähig ist, die Datenleitung zu treiben, umfasst, und wobei die Eingabe mindestens eine erste Eingabe von dem Takttreiber und/oder eine zweite Eingabe von dem Datentreiber umfasst.
DE102019101272.4A 2018-01-19 2019-01-18 Überwachungsvorrichtung zum wiederherstellen eines angehaltenen busses Pending DE102019101272A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/875,122 US10565088B2 (en) 2018-01-19 2018-01-19 Monitoring device for recovering a stalled bus
US15/875,122 2018-01-19

Publications (1)

Publication Number Publication Date
DE102019101272A1 true DE102019101272A1 (de) 2019-07-25

Family

ID=67145307

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019101272.4A Pending DE102019101272A1 (de) 2018-01-19 2019-01-18 Überwachungsvorrichtung zum wiederherstellen eines angehaltenen busses

Country Status (2)

Country Link
US (1) US10565088B2 (de)
DE (1) DE102019101272A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014116909B4 (de) * 2014-11-19 2016-07-28 Infineon Technologies Ag Empfänger, Sender, Verfahren zum Wiedergewinnen eines zusätzlichen Datenwerts aus einem Signal und Verfahren zum Übertragen eines Datenwerts und eines zusätzlichen Datenwerts in einem Signal

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5101479A (en) * 1989-07-21 1992-03-31 Clearpoint Research Corporation Bus device for generating and responding to slave response codes
US5388247A (en) * 1993-05-14 1995-02-07 Digital Equipment Corporation History buffer control to reduce unnecessary allocations in a memory stream buffer
JP4487756B2 (ja) * 2004-12-16 2010-06-23 日本電気株式会社 コンピュータシステム及びシステム監視プログラム
US8032678B2 (en) * 2008-11-05 2011-10-04 Mediatek Inc. Shared resource arbitration
US9442794B1 (en) * 2013-11-22 2016-09-13 Marvell International Ltd. Methods and apparatus for accessing device memory via a host bus interface

Also Published As

Publication number Publication date
US10565088B2 (en) 2020-02-18
US20190227896A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
DE60219790T2 (de) Generalisierter i2c-slave sender-/empfängerautomat
DE102018113625A1 (de) Fehlerinjektionstestvorrichtung und -verfahren
DE102014206752B4 (de) Bestimmung des Zustands eines I2C-Busses
DE102004009359B4 (de) Elektronische Steuereinheit zur Überwachung eines Mikrocomputers
DE112012006150T5 (de) Konfigurierbare und fehlertolerante Baseboard Management Controller-Anordnung
DE102013224101A1 (de) Verbinden mehrerer Slave-Vorrichtungen mit einem einzigen Master
DE102011120872A1 (de) Systeme und Verfahren zur Nachrichtenübertragungs-Deaktivierungsprüfung eines Controllerbereichsnetzes
DE69432726T2 (de) Verfahren und System zur seriellen Datenübertragung
DE112008001603T5 (de) Weiterleitungs-Verbindungseinheit
DE102010012904A1 (de) Systeme zum Testen von Verbindungen zwischen Chips
DE102014208788A1 (de) Kommunikationssystem
DE112020004019T5 (de) Daisy-chain-modus-eingangssequenz
DE102012209958A1 (de) Verfahren zum Abrufen von Statusinformationen von einer fernen Einheit und entsprechendes Hostsystem
DE112020002619T5 (de) Ein inter-integrated circuit (i2c) gerät
DE102013215925A1 (de) Elektronische Steuervorrichtung
DE102019101272A1 (de) Überwachungsvorrichtung zum wiederherstellen eines angehaltenen busses
EP3738044B1 (de) Spannungsdiagnoseschaltung
DE102015202326A1 (de) Verfahren zum Betreiben einer Datenverarbeitungseinheit eines Fahrerassistenzsystems und Datenverarbeitungseinheit
DE112016005819T5 (de) Kommunikationsvorrichtung, kommunikationsverfahren, programm und kommunikationssystem
DE10344626A1 (de) Systeme und Verfahren zum Zugreifen auf busmastergesteuerte Systembetriebsmittel
DE602004007130T2 (de) Fehlererkennung und unterdrückung in einem tdma-basierten netzknoten
DE112019007853T5 (de) Steuereinrichtung
DE102018219764A1 (de) Mehrprozessor-Fehlerdetektionssystem und Verfahren dafür
DE19962723A1 (de) Verfahren und Vorrichtung zum Erkennen von Handshaking-Protokollfehlern auf einem asynchronen Datenbus
DE102004051966A1 (de) Verfahren, Betriebssystem und Rechengerät zum Abarbeiten eines Computerprogramms

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012260000

Ipc: H04L0043000000

R084 Declaration of willingness to licence