-
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.