-
Die vorliegende Erfindung betrifft das Gebiet von Mikrocontrollern und Steuerungssystemen mit Mikrocontrollern.
-
Mikrocontroller werden in einer großen Vielfalt von Anwendungen verwendet und sie werden insbesondere zur Steuerung von elektrischen, mechanischen oder elektromechanischen Systemen eingesetzt. Ein Beispiel eines derartigen elektrischen Systems ist ein Schaltnetzteil, d.h. eine getaktete Energieversorgung (switched-mode power supply, SMPS); ein SMPS kann einen Mikrocontroller enthalten, der sämtliche der Kernfunktionen durchführt, die erforderlich sind, um das System zu steuern, um ein gewünschtes Systemverhalten zu erzielen.
-
Abhängig von der Anwendung ist ein Mikrocontroller oftmals zusammen mit anderen Schaltungen wie beispielsweise Schnittstellenschaltkreisen, die erforderlich sind, um eine Verbindung mit Sensorschaltungen, Treiberschaltungen, Kommunikationsschnittstellen, etc. herzustellen, in einen anwendungsspezifischen, integrierten Schaltkreis (Application Specific Integrated Circuit, ASIC) eingebettet. Bei vielen Anwendungen ist Energieverbrauch (power consumption ein Thema, und deshalb enthalten viele Mikrocontroller eine sogenannte Energieverwaltungseinheit (Power Management Unit, PMU) (oder sind damit gekoppelt), die dazu ausgebildet ist, den Mikrocontroller (oder eine andere Schaltung) in dem Fall, in dem der Zustand des Systems mit einer oder mehr vorgegebenen Bedingungen übereinstimmt, in einen Modus mit geringem Energieverbrauch zu versetzen. Die PMU ist auch dazu ausgebildet, den Mikrocontroller in dem Fall, in dem eine oder mehr Funktion(en), die durch den Mikrocontroller implementiert wird (werden), erneut benötigt wird (werden), um das System zu steuern, aus dem Modus geringem Energieverbrauchs „aufzuwachen“ .
-
Wie allgemein bekannt ist, wird (werden) die durch einen Mikrocontroller bereitgestellten Funktion(en) im Wesentlichen durch Software (im Fall von eingebetteten Systemen manchmal als Firmware bezeichnet) bestimmt. Abhängig von der Anwendung kann Software vergleichsweise komplex und fehleranfällig sein; deshalb beinhaltet der Softwareentwicklungsprozess üblicherweise eine Aktivität, die allgemein als Debugging bezeichnet wird, was zum Beispiel zum Zweck der Analyse von Software geschieht, um Fehler zu finden und die software-implementierten Funktionen zu überprüfen.
-
Um ein Debuggen unter „realistischen“ Bedingungen zu ermöglichen, enthalten moderne Mikrocontroller üblicherweise Hardwareunterstützung zum Debuggen, wodurch eine systeminterne Programmierung, Unterstützung für Hardware-Haltepunkte, etc. ermöglicht werden. Zum Debuggen kann das Debug-Ziel (d. h. der Mikrocontroller) über einen Debug-Adapter mit einem Debug-Host (z. B. einem Personal-Computer, der eine als Debug-Frontend bezeichnete Softwareanwendung ausführt), verbunden werden. Der Adapter bildet im Wesentlichen eine Schnittstelle/einen Konverter zwischen einer Standard-Computerschnittstelle wie beispielsweise USB (Universal Serial Bus) und einem standardisierten JTAG-(Join Test Action Group)-Verbinder auf der Leiterplatte, die das Debug-Ziel trägt. Die Informationen, die während des Debuggens in dem Debug-Ziel verwendet werden, werden üblicherweise als Debug-Kontext bezeichnet und können über den erwähnten Adapter von dem Debug-Host zu dem Debug-Ziel geladen werden. Die Publikation
US009632137B2 zeigt beispielsweise eine serielle Debug-Vorrichtung (debug bridge) für einen integrierten Schaltkreis.
-
Systeme, die während des Betriebs wiederholt den Modus mit geringem Energieverbrauch aufnehmen und wieder aufwachen können, stellen im Hinblick auf das Debugging Herausforderungen dar, da der Debug-Kontext üblicherweise verloren geht, wenn der Mikrocontroller in den Modus geringem Energieverbrauchs wechselt. Die der Erfindung zugrunde liegende Aufgabe kann daher darin gesehen werden, eine elektronische Vorrichtung mit einem Controller zu schaffen, die verbesserte Debugging-Möglichkeiten bietet.
-
Die genannte Aufgabe wird durch eine elektronische Vorrichtung gemäß Anspruch 1, durch ein Schaltnetzteil gemäß Anspruch 16 sowie durch das Verfahren gemäß Anspruch 9 gelöst. Verschieden Ausführungsbeispiele und Weiterentwicklungen sind Gegenstand der abhängigen Ansprüche
-
Es wird im Folgenden eine elektronische Vorrichtung beschrieben, die beispielsweise in einem Schaltnetzteil verwendet werden kann. Gemäß einem Ausführungsbeispiel enthält die elektronische Vorrichtung einen eingebetteten Controller mit einer Debug-Logik, eine Energieverwaltungseinheit (power management unit, PMU), die dazu ausgebildet ist, den Controller bei einem Wechsel von einem Normalbetrieb in einen Modus mit geringem Energieverbrauch auszuschalten, einen Schnittstellenschaltkreis, der mit der Debug-Logik gekoppelt ist, und einen Speicher, der mit dem Schnittstellenschaltkreis gekoppelt ist. Der Schnittstellenschaltkreis ist dazu ausgebildet, in der Debug-Logik gespeicherte Debug-Informationen zu lesen und die gelesenen Debug-Informationen an den Speicher zu übertragen. Der Schnittstellenschaltkreis ist weiterhin dazu ausgebildet, die in dem Speicher gespeicherten Debug-Informationen zu empfangen und die empfangenen Debug-Informationen in die Debug-Logik zu schreiben. Die PMU ist dazu ausgebildet, die Übertragung der Debug-Informationen von dem Schnittstellenschaltkreis an den Speicher beim Wechseln vom Normalbetrieb in einen Modus mit geringem Energieverbrauch auszulösen, und ist weiter dazu ausgebildet, beim Wechseln zurück in den Normalbetrieb den Empfang der Debug-Informationen von dem Speicher durch den Schnittstellenschaltkreis auszulösen.
-
Des Weiteren wird hier ein Verfahren beschrieben, das gemäß einer Ausgestaltung - während eines Wechsels in einen Modus mit geringem Energieverbrauch einer elektronischen Vorrichtung, die einen eingebetteten Controller enthält - das Lesen von Debug-Informationen von einer Debug-Logik eines eingebetteten Controllers durch einen Schnittstellenschaltkreis und das Übertragen der gelesenen Debug-Informationen an einen Speicher beinhaltet. Weiterhin beinhaltet das Verfahren - beim Verlassen des Modus mitgeringem Energieverbrauch - das Empfangen der Debug-Informationen von dem Speicher durch den Schnittstellenschaltkreis und das Wiederherstellen der empfangenen Debug-Informationen in der Debug-Logik.
-
Darüber hinaus wird hier eine getaktete Energieversorgung (SMPS) beschrieben. Gemäß einer Ausgestaltung enthält die SMPS einen Schaltwandler und einen integrierten Steuerschaltkreis, der mit dem Schaltwandler gekoppelt und dazu ausgebildet ist, den Schaltbetrieb des Schaltwandlers zu steuern. Der integrierte Steuerschaltkreis enthält einen eingebetteten Controller mit einer Debug-Logik, einen mit der Debug-Logik gekoppelten Schnittstellenschaltkreis,einen mit dem Schnittstellenschaltkreis gekoppelten Speicher und eine PMU, die dazu ausgebildet ist, den Controller (22) bei einem Wechsel von einem Normalbetrieb in einen Modus mit geringem Energieverbrauch auszuschalten. Der Schnittstellenschaltkreis ist dazu ausgebildet, in der Debug-Logik gespeicherte Debug-Informationen zu lesen und die gelesenen Debug-Informationen an den Speicher zu übertragen, und der Schnittstellenschaltkreis weiterhin dazu ausgebildet, in dem Speicher gespeicherte Debug-Informationen zu empfangen und die empfangenen Debug-Informationen in die Debug-Logik zu schreiben. Wie erwähnt ist die PMU dazu ausgebildet, die Übertragung der Debug-Informationen von dem Schnittstellenschaltkreis an den Speicher beim Wechseln vom Normalbetrieb in einen Modus mit geringem Energieverbrauch auszulösen, und weiter dazu ausgebildet, beim Wechseln zurück in den Normalbetrieb den Empfang der Debug-Informationen von dem Speicher durch den Schnittstellenschaltkreis auszulösen.
-
Die Erfindung lässt sich unter Bezugnahme auf die folgenden Zeichnungen und Beschreibungen besser verstehen. Die Komponenten in den Figuren sind nicht notwendigerweise maßstabgetreu; stattdessen wird der Schwerpunkt auf die Darstellung der Prinzipien der Erfindung gelegt. Darüber hinaus bezeichnen in den Figuren gleiche Bezugsziffern entsprechende Teile. Zu den Zeichnungen:
- 1 veranschaulicht einen beispielhaften Aufbau, der verwendet werden kann, um einen Mikrocontroller, der zum Beispiel in einem eingebetteten System eingesetzt wird, zu debuggen.
- 2 ist ein Blockschaltbild, das einen Ziel-IC (z. B. einen ASIC), das einen eingebetteten Mikrocontroller, eine PMU und eine Debugger-Hardware gemäß einer ersten Ausgestaltung enthält, veranschaulicht.
- 3 ist ein Blockschaltbild, das eine beispielhafte Implementierung der Ausgestaltung von 2 ausführlicher veranschaulicht.
- 4 ist ein Blockschaltbild, das eine weitere beispielhafte Implementierung der Ausgestaltung von 2 ausführlicher veranschaulicht.
- 5 enthält Zeitverlaufsdiagramme, die die Funktionsweise des Beispiels von 4 veranschaulichen.
- 6 ist ein Blockschaltbild, das eine SMPS mit einem Schaltwandler, der einen eingebetteten Mikrocontroller enthält, veranschaulicht.
- 7 ist ein Flussdiagramm, das ein Beispiel eines Verfahrens zur Handhabung einer Betriebsartumschaltung zwischen einem Normalbetrieb und einem Modus mit geringem Energieverbrauchs eines Mikrocontrollers veranschaulicht, gemäß einer Ausgestaltung.
-
1 veranschaulicht einen beispielhaften Aufbau, der verwendet werden kann, um einen Mikrocontroller, der zum Beispiel in einem eingebetteten System eingesetzt wird, zu debuggen. Im Allgemeinen enthalten Mikrocontroller einen Mikroprozessor (mit einem oder mehr Prozessorkernen), sowie zumindest irgendeine Schaltung, die einige grundlegende Peripheriefunktionen wie beispielsweise Eingabe-/Ausgabe-Schnittstellen (z. B. serielle Kommunikationsschnittstellen), Speicher, etc. bereitstellt. Obwohl sich der Prozess des Debuggens hauptsächlich auf den Mikroprozessor bezieht, wird in der gesamten Beschreibung der Ausdruck Mikrocontroller verwendet.
-
Gemäß dem Beispiel von 1 trägt eine Leiterplatte (printed circuit board, PCB, auch als Ziel-Platine bezeichnet) 20, neben anderen elektronischen Komponenten, einen einen Mikrocontroller 21 enthaltenden Ziel-IC 21, der bei den hierin beschriebenen Beispielen auch als Debug-Ziel bezeichnet wird. Der eingebettete Mikrocontroller enthält eine Logikschaltung 221, die auch als Debug-Logik bezeichnet wird und die die zum Debuggen von Hardware benötigten Grundfunktionen wie beispielsweise Hardware-Haltepunkte, etc. bereitstellt. Die Debug-Logik 221 ist, z. B. über ein Kabel 13, mit einem Debug-Hardware-Adapter 12 gekoppelt. Bei dem dargestellten Beispiel handelt es sich bei dem Debug-Hardware-Adapter 12 um eine separate Einrichtung. Allerdings können die elektronischen Schaltungen, die den Debug-Hardware-Adapter 12 bilden, auch auf der PCB 20 angeordnet sein. Der Debug-Hardware-Adapter 12 kann eine Kommunikationsschnittstelle wie beispielsweise eine universelle serielle BUS-(USB)-Schnittstelle enthalten. Die USB-Schnittstelle ermöglicht es, den Debug-Hardware-Adapter 12, z. B. über ein USB-Kabel 11, mit einem Personalcomputer (PC, als Debug-Host 10 bezeichnet) zu verbinden und so eine Kommunikation mit dem PC, der eine Softwareanwendung ausführt, die die Debugger-Front implementiert und die graphische Benutzerschnittstelle enthalten kann, ermöglicht. Die Struktur des in 1 gezeigten Aufbaus ist als solche bekannt und für das In-System-Programmieren (in-systemprogramming, ISP) und das In-System-Debuggen eines Debug-Ziels weit verbreitet.
-
Wie oben erwähnt tritt ein Problem auf, wenn der eingebettete Mikrocontroller 22 einen Modus mit geringem Energieverbrauch aufnimmt, da Informationen, die in der Debug-Logik gespeichert sind und während des Debuggens verwendet werden, verloren gehen können. Diese Informationen werden als Debug-Kontext-Informationen oder kurz Debug-Kontext bezeichnet und beinhalten Informationen betreffend Hardware-Haltepunkte oder dergleichen. Sobald ein Aufwachen des Mikrocontrollers 22 ausgelöst wird, kann es einige Mikrosekunden dauern, bis der Betrieb des Mikrocontrollers einen stationären Zustand erreicht. Im Gegensatz dazu würde es mehrere Millisekunden dauern, bis der Debug-Host den Debug-Kontext lädt und den Debugging-Kontext startet. Infolgedessen ist ohne weitere Maßnahmen ein Debuggen des Mikrocontrollers während der Einschalt-Phase nach einem Aufwachsignal nicht möglich, weil sich die Debug-Logik nach dem Aufwachen des Mikrocontrollers noch in einem Ruhezustand befindet. Dennoch wäre zumindest für einige Anwendungen wie beispielsweise SMPS eine Debugging-Fähigkeit während der erwähnten Einschalt-Phase wünschenswert oder kann in einigen Situationen sogar erforderlich sein. Das Systemverhalten für Anwendungen wie SMPS (und im Allgemeinen für Anwendungen, die unter harten Echtzeit-Anforderungen arbeiten) nach Aufwachereignissen stellt hohe Anforderungen an das Verhalten, muss also beobachtbar und folglich debugbar sein.
-
2 veranschaulicht in einem Blockdiagramm ein Beispiel eines integrierten Schaltkreises (Ziel-IC 21), z. B. einen ASIC, der zwei oder mehr Teile enthält, die als Versorgungsdomänen (power domains) bezeichnet werden. Jede Versorgungsdomäne enthält zumindest eine Spannungsversorgung (Energieversorgung, power supply) zur Versorgung der elektronischen Komponenten und Schaltungen, die in der betreffenden Versorgungsdomäne enthalten sind. Die Spannungsversorgung einer Versorgungsdomäne arbeitet unabhängig von der Spannungsversorgung einer anderen Versorgungsdomäne. Die verschiedenen Spannungsversorgungen können durch separate Versorgungsschaltungen (einschließlich Spannungsregler etc.) implementiert werden, die dieselbe Versorgungsspannung über einen externen Pin des ICs oder verschiedene Versorgungsspannungen über verschiedene externe Pins des ICs empfangen.
-
Bei dem in 2 gezeigten Beispiel enthält der Ziel-IC 21 eine erste Versorgungsdomäne 23 und eine zweite Versorgungsdomäne 24; die erste Versorgungsdomäne 23 wird als „Immer-Ein“-Versorgungsdomäne bezeichnet, während die zweite Versorgungsdomäne 24 als „Ein-Aus-Versorgungsdomäne bezeichnet wird. Das heißt, die Spannungsversorgung der zweiten Versorgungsdomäne 24 kann während des Modus mit geringem Energieverbrauch ausgeschaltet werden, während die Spannungsversorgung der ersten Versorgungsdomäne 23 während des Normalbetriebs sowie während des Modus mit geringem Energieverbrauch immer aktiv (ein) ist. Abhängig von der tatsächlichen Implementierung können in dem Ziel-IC weitere Versorgungsdomänen (Ein-Aus-Versorgungsdomänen sowie Immer-Ein-Versorgungsdomänen) bereitgestellt werden. Es wird darauf hingewiesen, dass eine Signalübermittlung zwischen zwei verschiedenen Versorgungsdomänen üblicherweise eine Art von Schnittstellenschaltkreis wie beispielsweise Pegelumsetzer oder dergleichen erfordert. Um auf der Chip-Schaltung Platz zu sparen, versuchen Entwickler üblicherweise, die Anzahl von Signalen, die von einer Versorgungsdomäne zu einer anderen Versorgungsdomäne zu senden sind, gering zu halten.
-
Bei vielen Anwendungen ist es wünschenswert, den eingebetteten Mikrocontroller (Debug-Ziel 22) während des Modus mit geringem Energieverbrauch auszuschalten, da es sich bei dem Mikrocontroller um eine elektrische Last handeln, die wesentlich zum Gesamt-Energieverbrauch des Ziel ICs 21 beiträgt. Daher befindet sich das Debug-Ziel 22, das die Debug-Logik 221 enthält, in der Ein-Aus-Versorgungsdomäne 24, deren Versorgungsspannung beim Aufnehmen des Modus mit geringem Energieverbrauch deaktiviert wird. Infolgedessen geht der Debug-Kontext, der in der Debug-Logik 221 gespeichert ist, verloren, wenn das Debug-Ziel ausgeschaltet wird.
-
Die first Versorgungsdomäne 23 (Immer-Ein-Versorgungsdomäne) enthält eine Schaltung, die während des Modus mit geringem Energieverbrauch aktiv bleiben muss. Bei dem vorliegenden Beispiel ist die PMU 232 in der Immer-Ein-Versorgungsdomäne enthalten, da eine Aufgabe der PMU 232 darin besteht, ein Aufwachen auszulösen (d. h., den Modus mit geringem Energieverbrauch zu verlassen), was das Reaktivieren der Spannungsversorgung der Ein-Aus-Versorgungsdomäne beinhaltet. Im Allgemeinen ist die PMU 232 dazu ausgebildet, den Betrieb des Ziel-ICs 21 und anderer damit gekoppelter Schaltungen zu überwachen und als Reaktion auf die Detektion bestimmter Ereignisse einen Übergang in den Modus mit geringem Energieverbrauch sowie ein Aufwachen auszulösen. Die Ereignisse, die einen Übergang in den Modus mit geringem Energieverbrauch (Abschalt-Ereignis) und ein Aufwachen (Aufwach-Ereignis) bewirken, können für verschiedene Anwendungen unterschiedlich sein. Zum Beispiel kann bei einer SMPS ein Aufwachen ausgelöst werden, wenn der Ausgangsstrom einen bestimmten Aufwach-Schwellenwert übersteigt, und ein Übergang in den Modus mit geringem Energieverbrauch kann ausgelöst werden, wenn der Ausgangsstrom unter den bestimmten Abschalt-Schwellenwert abfällt.
-
Gemäß den hierin beschriebenen Beispielen werden die in der Debug-Logik 221 gespeicherten Debug-Kontext-Informationen in einem Speicher 231, der sich in der ersten Versorgungsdomäne 23 (Immer-Ein-Versorgungsdomäne) befindet, gesichert (z. B. darin gespeichert). Dementsprechend werden die Debug-Kontext-Informationen in dem Speicher 231 gehalten, während sich das Debug-Ziel 221 im Modus mit geringem Energieverbrauch befindet. Eine Sicherung der Debug-Kontext-Informationen kann durch die PMU 232 direkt bevor die Spannungsversorgung der zweiten Versorgungsdomäne bei der Aufnahme des Modus mit geringem Energieverbrauch abgeschaltet wird, ausgelöst werden. Wenn die PMU 232 ein Aufwachen von dem Modus mit geringem Energieverbrauch auslöst, werden die Debug-Kontext-Informationen von dem Speicher 231 wiederhergestellt und zurück zu der Debug-Logik 221 kopiert (oder bewegt). Diese Sicherungs- und Widerherstellungsprozesse können innerhalb weniger Mikrosekunden durchgeführt werden, und Debug-Funktionen werden während der Einschalt-Phase des Debug-Ziels nach einem Aufwachsignal verfügbar (und damit verwendbar), ohne dass ein Debug-Adapter oder ein Debug-Host zu dieser Zeit mit dem Debug-Ziel kommuniziert.
-
Wie bei dem Beispiel von 2 gezeigt, ist in der zweiten Versorgungsdomäne 24 (Ein-Aus-Versorgungsdomäne) einen Schnittstellenschaltkreis 241 bereitgestellt, der mit der Debug-Logik 221 gekoppelt und dazu ausgebildet ist, die in der Debug-Logik 221 enthaltenen Debug-Kontext-Informationen an den Speicher 231 zu übertragen. Man kann sich Debug-Kontext-Informationen als Folge von Bits (z. B. ein 62-Bit-Wort) vorstellen, das in einem in der Debug-Logik 221 enthaltenen Register (Debug-Kontext-Register) gespeichert ist. Wenn die PMU 232 eine Aufforderung signalisiert, den Debug-Kontext zu sichern, liest der Schnittstellenschaltkreis 241 die Debug-Kontext-Informationen von der Debug-Logik 221 und überträgt die Informationen über die Versorgungsdomänengrenze hinweg an den Speicher 231. Ähnlich empfängt der Schnittstellenschaltkreis 241, wenn die PMU 232 eine Aufforderung, den Debug-Kontext wiederherzustellen, signalisiert, die Debug-Kontext-Informationen von dem Speicher 231 über die Versorgungsdomänengrenze hinweg und schreibt die empfangenen Informationen in das Debug-Kontext-Register in der Debug-Logik 221.
-
Bei dem vorliegenden Beispiel enthält die erste Versorgungsdomäne 23 (Immer-Ein-Versorgungsdomäne) weiterhin eine Debugger-Eingangs-/Ausgangs-(I/O)-Steuerschaltung 234, die als Schnittstellenschaltkreis zwischen dem Ziel-IC 21 und dem Debug-Hardware-Adapter 12 (siehe auch 1), der über I/O-Pins oder Steckverbinder (connector) 131 angeschlossen ist, angesehen werden kann. Während des Modus mit geringem Energieverbrauch veranlasst die PMU 232 die Debugger-I/O-Steuerschaltung 234, dem Debug-Host 10 über den Debug-Hardware-Adapter 12 den Modus mit geringem Energieverbrauch zu melden. Dieses Melden kann erreicht werden, indem die Spannung der (in dem Kabel 13 enthaltenen, siehe 1) Datenleitung aktiv auf einen niedrigen Spannungspegel (Low-Level) gezogen wird, der durch den Debug-Hardware-Adapter 12 detektiert und weiter an den Debug-Host übermittelt werden kann. Die durch den Debug-Host ausgeführte Softwareanwendung wird auf diese Weise über den Zustand geringen Energieverbrauchs des Ziel-ICs 21 informiert und wird nicht versuchen, sich wieder mit dem Debug-Ziel 22 zu verbinden oder anderweitig damit zu kommunizieren, solange der Spannungspegel der Datenleitung einen Modus mit geringem Energieverbrauch anzeigt. Natürlich kann anstelle der Datenleitung eine beliebige andere Leitung verwendet werden, um einen Modus mit geringem Energieverbrauch zu melden.
-
3 ist ein Blockdiagramm, das eine beispielhafte Implementierung der Ausgestaltung von 2 ausführlicher veranschaulicht. Gemäß 3 enthält der Schnittstellenschaltkreis 241 eine serielle Schnittstelle, die dazu ausgebildet ist, die Debug-Kontext-Informationen (z. B. das erwähnte 62-Bit-Wort) von der Debug-Logik 221 zu lesen und diese Informationen in Form eines seriellen Datenstroms an den Speicher 231 zu übertragen, um die Debug-Kontext-Informationen zu sichern (Sicherung bei der Aufnahme des Modus mit geringem Energieverbrauch). Der Schnittstellenschaltkreis 241 ist weiterhin dazu ausgebildet, die Debug-Kontext-Informationen als seriellen Datenstrom von dem Speicher 231 zu empfangen und so den Debug-Kontext in der Debug-Logik 221 wiederherzustellen (Wiederherstellen beim Verlassen des Modus mit geringem Energieverbrauch und Wiederaufnahme des Normalbetriebs). Bei diesem Beispiel kann es sich bei dem Speicher 231 zum Beispiel um ein Schieberegister mit seriellem Eingang und seriellem Ausgang (serial in/serial out) handeln.
-
Der Schnittstellenschaltkreis 241 kann auch ein oder mehr Schieberegister enthalten, die zum Beispiel eine Art von „SerDes“ (Serialisierer/Deserialisierer) bilden, enthalten. In diesem Fall bildet ein Schieberegister des SerDes einen PISO-Block mit parallelem Eingang und seriellem Ausgang (PISO (parallel in/serial out) Block), der dazu ausgebildet ist, die Debug-Kontext-Informationen von der Debug-Logik 221 (z. B. das erwähnte 62-Bit-Wort) zu lesen und die Debug-Kontext-Informationen zu serialisieren und so den erwähnten, an den Speicher 231 übertragenen, seriellen Datenstrom zu erzeugen. Ähnlich bildet ein weiteres Schieberegister des SerDes einen SIPO-Block mit seriellem Eingang und parallelem Ausgang (SIPO (serial in/parallel out) Block), der dazu ausgebildet ist, den seriellen Datenstrom von dem Speicher 231 (einschließlich des gesicherten Debug-Kontextes) zu empfangen und die empfangenen Debug-Kontext-Informationen in der Debug-Logik 221, z. B. durch Schreiben des empfangenen 62-Bit-Worts in ein Debug-Kontext-Register der Debug-Logik 221, wiederherzustellen.
-
Abgesehen von dem Schnittstellenschaltkreis 241 und dem Speicher 231 ist das Beispiel von 3 dasselbe wie das vorangehende Beispiel von 2, und es wird Bezug genommen auf die entsprechenden Erläuterungen oben. 4 ist ein Blockdiagramm, das eine weitere beispielhafte Implementierung des Beispiels von 2 veranschaulicht. Gemäß 4 ist der Speicher 231 als Schieberegister implementiert und der Schnittstellenschaltkreis 241 als SerDes, was bereits oben erörtert wurde. Bei dem vorliegenden Beispiel ist in der ersten Versorgungsdomäne 23 ein Zähler 233 enthalten und dazu ausgebildet, die von dem Speicher 231 (Schieberegister) an den Schnittstellenschaltkreis 241 (SerDes) oder umgekehrt übertragenen Bits zu zählen. Sobald eine Datenübertragung abgeschlossen ist (z. B. sobald sämtliche 62 Bits des Debug-Kontextes gesichert oder wiederhergestellt wurden), kann der Zähler den Abschluss der Datenübertragung an die PMU 232 melden (siehe 4, Logiksignal SDONE).
-
Eine Datenübertragung von oder zu dem Speicher 231 (Schieberegister) kann durch die PMU 232 durch Signalisieren einer Aufforderung an den Speicher 231 und den Schnittstellenschaltkreis 241 (SerDes) ausgelöst werden. Zu diesem Zweck kann die PMU 232 ein Logiksignal SREQ (Aufforderungssignal) mit einem definierten Logikpegel (z. B. einem High-Pegel) erzeugen, das dem Speicher 231 und dem Schnittstellenschaltkreis 241 zugeführt wird. Das Aufforderungssignal SREQ kann den Zähler 233 zurücksetzen und eine Datenübertragung von dem Speicher 231 an den Schnittstellenschaltkreis 241 oder umgekehrt abhängig davon auslösen, ob der Ziel-IC dabei ist, den Modus mit geringem Energieverbrauch aufzunehmen oder davon aufzuwachen. Die PMU 232 meldet auch der Debugger-I/O-Steuereinheit 234 den Modus mit geringem Energieverbrauch, z. B. durch ein Logiksignal SSTATE. Wie oben erläutert, kann die Debugger-I/O-Steuerschaltung 234 dem Debug-Host 10 weiterhin den Zustand des Ziel-ICs 21 (Modus mit geringem Energieverbrauch aktiv oder inaktiv) melden. Ebenfalls in 4 gezeigt sind die Spannungsversorgungsschaltungen 230 und 240 der ersten Versorgungsdomäne 23 bzw. der zweiten Versorgungsdomäne 24. Die PMU 232 kann die Spannungsversorgung 24 der zweiten Versorgungsdomäne (Ein-Aus-Versorgungsdomäne) durch Erzeugen eines entsprechenden Logiksignals SVOFF ausschalten. Im Gegensatz dazu bleibt die Spannungsversorgungsschaltung 230 selbst während des Modus mit geringem Energieverbrauch aktiv.
-
Die Funktion der in 4 gezeigten Ausgestaltungen werden unter Bezugnahme auf die Zeitverlaufsdiagramme von 5 weiter erläutert. Das erste (obere) Zeitverlaufsdiagramm von 5 veranschaulicht ein Taktsignal DCLK, das zum Beispiel durch einen Taktgenerator, der sich in der zweiten Versorgungsdomäne 24 (Ein-Aus-Versorgungsdomäne) befindet, erzeugt werden kann. Der Takt kann zum Beispiel, falls der Taktgenerator Teil des Debug-Ziels ist, durch den eingebetteten Controller 22 (Debug-Ziel) erzeugt werden. Allerdings können, abhängig von der tatsächlichen Implementierung, separate Taktgeneratoren verwendet werden. Bei dem vorliegenden Beispiel detektiert die PMU 232 ein Ereignis, das anzeigt, die zweite Spannungsdomäne auszuschalten. Allerdings setzt die PMU 232 vor dem tatsächlichen Ausschalten der Spannungsversorgung 240 das Aufforderungssignal SREQ zur Zeit tB0 auf einen High-Pegel und löst dadurch die Sicherung des Debug-Kontextes aus (siehe zweites Zeitverlaufsdiagramm von 5). Zum Zeitpunkt tB0 wird der durch das 62-Bit-Datenwort r[61:0] repräsentierte Debug-Kontext durch den Schnittstellenschaltkreis 241 gelesen, z. B. in ein Schieberegister in dem PISO-Block des SerDes geladen. Nachfolgend wird ein serieller Datenstrom durch Verschieben des Datenworts von dem SerDes (Schnittstellenschaltkreis 241) über Versorgungsdomänengrenze hinweg zu dem Sicherungsspeicher 231 (Schieberegister) geschoben (siehe drittes und viertes Zeitverlaufsdiagramm von 5). Nach 62 Taktzyklen wurde das Datenwort [61:0] zur Zeit tB1 vollständig in den Sicherungsspeicher 231 geschoben, während das Schieberegister in dem PISO-Block des SerDes mit Nullen (oder irgendwelchen anderen Daten) gefüllt wurde. Die Taktzyklen werden durch den Zähler 233 gezählt (siehe fünftes Zeitverlaufsdiagramm von 5), und der Abschluss der Sicherung wird durch das Signal SDONE angezeigt (siehe sechstes Zeitverlaufsdiagramm von 5).
-
Der Sicherungsprozess, d. h. die Datenübertragung von dem SerDes an den Speicher 231, beansprucht nur wenige Mikrosekunden. Bei dem abgebildeten Beispiel wird die Spannungsversorgung 240 der zweiten Versorgungsdomäne 24 zur Zeit tPD abgeschaltet, und die in der Debug-Logik 221 gespeicherten Daten sowie der Inhalt der Schieberegister in dem Schnittstellenschaltkreis 241 gehen verloren. Während des Modus mit geringem Energieverbrauch fährt die PMU 232 damit fort, das System zu überwachen und löst ein Aufwachen aus, sobald ein Aufwachereignis detektiert wird. Bei dem vorliegenden Beispiel zeigt das Signal SREQ (siehe zweites Zeitverlaufsdiagramm von 5) eine Wiederherstellung des Debug-Kontextes zur Zeit tR0 an, und die Daten werden über die Versorgungsdomänengrenze hinweg von dem Speicher 231 zurück zu dem Schieberegister in den SIPO-Block des SerDes (Schnittstellenschaltkreis 241) geschoben. Nach 62 Taktzyklen wurde das Datenwort [61:0] zur Zeit tR1 vollständig an das Schieberegister in dem Schnittstellenschaltkreis 241 geschoben und wird in die Debug-Logik 221 geschrieben. Der Abschluss der Wiederherstellung wird durch das Signal SDONE (sechstes Zeitverlaufsdiagramm von 5) angezeigt. Der Wiederherstellungsprozess, d. h. die Datenübertragung von dem Speicher 231 an das SerDes, benötigt nur wenige Mikrosekunden, und die Debug-Funktionen sind praktisch sofort nach dem Aufwachen des eingebetteten Controllers verfügbar. Zwischen der Zeit tB0 , zu der eine Sicherung des Debug-Kontextes initiiert wird, und der Zeit tR1 , zu der die Wiederherstellung des Debug-Kontextes abgeschlossen ist, zeigt das Signal SSTATE des Debug-Hosts, wie oben erwähnt, den Modus mit geringem Energieverbrauch an (siehe siebtes Zeitverlaufsdiagramm von 5).
-
6 veranschaulicht eine beispielhafte Anwendung eines integrierten Steuerschaltkreises (Steuer-IC) mit einem eingebetteten Controller, der Hardware-Debug-Funktionen bereitstellt. Bei dem abgebildeten Beispiel wird ein Steuer-IC 21 eingesetzt, um den Betrieb eines Schaltnetzteils (SMPS) zu steuern. Zur Energiewandlung kann die SMPS einen Schaltwandler 30 enthalten, bei dem es sich um einen DC/DC-Wandler (z. B. einen Tiefsetzsteller, einen Tiefsetz-Hochsetzsteller etc.), einen AC/DC-Wandler, eine Leistungsfaktorsteuerung, oder dergleichen handeln kann. Verschiedene Schaltwandlertopologien sind als solche bekannt und werden daher nicht weiter erörtert. Im Wesentlichen ist der Steuer-IC 21 dazu ausgebildet, von dem Schaltwandler ein oder mehr Rückkopplungssignale zu empfangen; die Rückkopplungssignale können Informationen betreffend den gegenwärtigen Zustand des Schaltwandlers, der unter anderem durch den Ausgangsstrom, die Ausgangsspannung, die Eingangsspannung, etc. repräsentiert werden kann, tragen. Dementsprechend können die Rückkopplungssignale ein Stromerfassungssignal SIL und ein Spannungserfassungssignal SVOUT , die den Ausgangsstrom bzw. Ausgangsspannung repräsentieren, aufweisen. Basierend auf den Rückkopplungssignalen und weiteren Informationen (z. B. einem Spannungssollwert für die Ausgangsspannung) erzeugt der Steuer-IC 21 Treibersignale S1 und S2 , die den Schaltbetrieb des Schaltwandlers 30 steuern, z. B. das Einschalten und Ausschalten des/der in dem Schaltwandler 30 enthaltenen Schalter(s).
-
Schaltwandler können in verschiedenen Betriebsarten wie beispielsweise kontinuierlichem Leitungsmodus (continuous conduction mode, CCM) mit Pulsweitenmodulation (PWM), diskontinuierlichem Leitungsmodus (discontinuous conduction mode, DCM) mit PWM, DCM mit Pulsfrequenzmodulation (PFM), etc. betrieben werden. Steuerstrukturen und -algorithmen zum Steuern eines Schaltwandlers in einem bestimmten Modus sowie während einer Betriebsartumschaltung sind als solche bekannt und werden hier nicht weiter ausführlicher erläutert. Insbesondere wenn die an eine SMPS angeschlossene elektrische Last gering (oder sogar null) ist, sollte der Energieverbrauch des Schaltwandlers ebenfalls gering sein. Deshalb kann die SMPS in einem Modus mit geringem Energieverbrauch betrieben werden, wenn der durch eine Last verbrauchte Ausgangsstrom unter einem vorgegebenen Schwellenwert liegt. Wie oben erwähnt bringt der Modus mit geringem Energieverbrauch das Abschalten des in dem Steuer-IC 21 enthaltenen, eingebetteten Controllers mit sich (siehe z. B. 2-4, eingebetteter Controller 22). Um ein Hardware-Debugging des eingebetteten Controllers zu ermöglichen, kann ein Sicherungs-/Wiederherstellungsmechanismus für die Debug-Informationen, wie unter Bezugnahme auf die 2-5 ausführlich erläutert, bereitgestellt werden.
-
Ein System-Debugging (z. B. Software- und Firmware-Debugging) ist insbesondere während Betriebsartumschaltungen wie beispielsweise in der Einschalt-Phase des eingebetteten Controllers interessant, wenn der Modus mit geringem Energieverbrauch belassen wird. Bei einer typischen Implementierung kann die Einschalt-Phase näherungsweise 50 bis 500 Mikrosekunden andauern. Das Wiederherstellen der Debug-Informationen von dem Sicherungsspeicher an die Debug-Logik kann innerhalb weniger 100 Nanosekunden erreicht werden, und das Hardware-Debuggen ist von Beginn der Einschalt-Phase des Mikrocontrollers an verfügbar.
-
7 ist ein Flussdiagramm, das ein Beispiel eines Verfahrens zur Handhabung einer Betriebsartumschaltung zwischen einem Normalbetrieb und einem Modus mit geringem Energieverbrauch eines Mikrocontrollers gemäß einer Ausgestaltung veranschaulicht. Das Verfahren kann, wie oben unter Bezugnahme auf die 2-4 erörtert, in einem Ziel-IC (z. B. einem Steuer-IC einer SNPS) implementiert werden. Wie oben erwähnt kann die PMU 232 (siehe 2-4) Ereignisse detektieren, die Betriebsartumschaltbedingungen detektieren. Ein derartiges Ereignis kann zum Beispiel darin bestehen, dass der Ausgangsstrom einer SMPS unter einen vorgegebenen Schwellenwert abfällt oder einen anderen vorgegebenen Schwellenwert übersteigt.
-
Der Normalbetrieb wird beibehalten (siehe 7, Schritt S1, „Nein“-Zweig), bis ein Ereignis detektiert wird, das eine Betriebsartumschaltbedingung für einen Wechsel in einen Modus mit geringem Energieverbrauch anzeigt (siehe 7, Schritt S1, „Ja“-Zweig). Auf die Detektion eines derartigen Ereignisses hin initiiert die PMU 232 einen Wechsel in einen Modus mit geringem Energieverbrauch, was das Lesen der Debug-Informationen von der Debug-Logik (221) des in dem Ziel-IC 21 enthaltenen, eingebetteten Controllers (22), z. B. durch den Schnittstellenschaltkreis 241, mit sich bringt (siehe 7, Schritt S2), und das Senden der gelesenen Debug-Informationen an den (Sicherungs)-Speicher 231 (siehe 7, Schritt S3). Schließlich wird die Versorgung des eingebetteten Controllers deaktiviert, z. B. ausgeschaltet oder abgeschlossen (siehe 7, Schritt S4). Es versteht sich, dass sich die PMU ebenso wie der Sicherungsspeicher in einer Versorgungsdomäne befinden, die immer ein ist, wohingegen sich der eingebettete Controller in einer anderen Versorgungsdomäne befindet, die während des Modus mit geringem Energieverbrauch inaktiv ist.
-
Der Modus mit geringem Energieverbrauch wird beibehalten (siehe 7, Schritt S5, „nein“-Zweig), bis ein Ereignis detektiert wird, das eine Betriebsartumschaltbedingung zum Zurückkehren zum Normalbetrieb anzeigt (siehe 7, Schritt S5, „ja“-Zweig). Auf die Detektion eines derartigen Ereignisses hin initiiert die PMU 232 einen Wechsel zum Normalbetrieb. Um den Modus mit geringem Energieverbrauch zu verlassen, wird die Versorgung des eingebetteten Controllers (siehe 7, Schritt S6) wieder aktiviert, der Schnittstellenschaltkreis empfängt die Debug-Informationen von dem Sicherungsspeicher 231 (siehe 7, Schritt S7) und stellt die empfangenen Informationen in der Debug-Logik wieder her (siehe 7, Schritt S8).
-
Obwohl die Erfindung in Bezug auf eine oder mehrere Implementierungen dargestellt und beschrieben wurde, können Änderungen und Anpassungen an den dargestellten Beispielen durchgeführt werden, ohne den Geist und die Reichweite der angehängten Ansprüche zu verlassen. Insbesondere hinsichtlich der verschiedenen Funktionen, die von den oben beschriebenen Bauelementen oder Strukturen (Einheiten, Baugruppen, Vorrichtungen, Schaltungen, Systemen, usw.) durchgeführt werden, sowie der Bergriffe (einschließlich eines Bezugs auf ein „Mittel“), die verwendet werden, um solche Bauelemente zu beschreiben, sollen diese - sofern nicht anders angegeben - jeglichem Bauelement oder Struktur entsprechen, die die erwähnte Funktion des beschriebenen Bauelements durchführen (d.h. die funktionell gleichwertig sind), auch wenn diese nicht der offenbarten Struktur, welche die Funktion in den hier dargestellten beispielhaften Implementierungen der Erfindung durchführen, strukturell gleich ist.