DE102021100044A1 - Dynamische leistungsdrosselung basierend auf systemzuständen in einem usb-typ-c-leistungsabgabe(usb-c/pd)-ökosystem - Google Patents

Dynamische leistungsdrosselung basierend auf systemzuständen in einem usb-typ-c-leistungsabgabe(usb-c/pd)-ökosystem Download PDF

Info

Publication number
DE102021100044A1
DE102021100044A1 DE102021100044.0A DE102021100044A DE102021100044A1 DE 102021100044 A1 DE102021100044 A1 DE 102021100044A1 DE 102021100044 A DE102021100044 A DE 102021100044A DE 102021100044 A1 DE102021100044 A1 DE 102021100044A1
Authority
DE
Germany
Prior art keywords
power
usb
power level
operating state
operating condition
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
DE102021100044.0A
Other languages
English (en)
Other versions
DE102021100044A9 (de
Inventor
Ajay Venkideswaran
Debraj Bhattacharjee
Kailas Iyer
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.)
Cypress Semiconductor Corp
Original Assignee
Cypress Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/825,803 external-priority patent/US11119548B2/en
Application filed by Cypress Semiconductor Corp filed Critical Cypress Semiconductor Corp
Publication of DE102021100044A1 publication Critical patent/DE102021100044A1/de
Publication of DE102021100044A9 publication Critical patent/DE102021100044A9/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J7/00Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries
    • H02J7/34Parallel operation in networks using both storage and other dc sources, e.g. providing buffering
    • H02J7/342The other DC source being a battery actively interacting with the first one, i.e. battery to battery charging
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

Beschrieben wird eine Technologie, um die Leistung in einem Leistungsabgabesystem dynamisch zu drosseln. In einer Ausführungsform umfasst ein Leistungsabgabesystem einen Controller, der mit einem Port zur Lieferung von Leistung assoziiert ist. Der Controller verwaltet ein für den Port verfügbares Leistungsbudget basierend auf einem aktuellen Status eines oder mehrerer Systemparameter. Das für den Port verfügbare Leistungsbudget kann gedrosselt werden, wenn das Leistungsabgabesystem unter Stresszuständen arbeitet, und angepasst werden, wenn das Leistungsabgabesystem nicht mehr unter Stresszuständen arbeitet.

Description

  • VERWANDTE PATENTANMELDUNGEN
  • Diese Patentanmeldung beansprucht den Nutzen der provisorischen US-Patentanmeldung Nr. 62/958,535 , eingereicht am 8. Januar 2020, deren gesamte Inhalte durch Bezugnahme einbezogen sind.
  • STAND DER TECHNIK
  • Verschiedene elektronische Vorrichtungen (wie etwa z. B. Smartphones, Tablets, Notebook-Computer, Laptop-Computer, Hubs, Ladegeräte, Adapter usw.) sind konfiguriert, um Leistung über Universal-Serial-Bus(USB)-Verbinder gemäß USB-Leistungsabgabeprotokollen, die in verschiedenen Revisionen der USB-Leistungsabgabe(PD, Power Delivery)-Spezifikation (USB-PD-Spezifikation) definiert sind, zu übertragen. Beispielsweise kann in einigen Anwendungen eine elektronische Vorrichtung als ein Leistungsverbraucher konfiguriert sein, um Leistung über einen USB-Verbinder zu empfangen (z. B. zum Batterieladen), während in anderen Anwendungen eine elektronische Vorrichtung als ein Leistungsbereitsteller konfiguriert sein kann, um einer anderen Vorrichtung, die mit ihr über einen USB-Verbinder verbunden ist, Leistung bereitzustellen. Die USB-PD-Spezifikation erlaubt es Leistungsbereitstellern und Leistungsverbrauchern jedoch, die Pegel der bereitgestellten Spannungen und Ströme dynamisch auszuhandeln.
  • Figurenliste
  • Die Offenbarung ist in den Figuren der begleitenden Zeichnungen beispielhaft und nicht beschränkend illustriert.
    • 1 ist ein Blockdiagramm eines USB-Typ-C-Leistungsabgabe(USB-C/PD)-Systems gemäß einer Ausführungsform, das eine dynamische Leistungsdrosselung durchführt.
    • 2 ist ein Ablaufdiagramm eines Verfahrens zur dynamischen Leistungsdrosselung gemäß einer Ausführungsform.
    • 3 ist ein Ablaufdiagramm eines Verfahrens zur dynamischen Leistungsdrosselung gemäß einer Ausführungsform.
    • 4 ist ein Ablaufdiagramm eines Verfahrens zum Aktualisieren eines Betriebszustands eines Systemparameters zur dynamischen Leistungsdrosselung gemäß einer Ausführungsform.
    • 5 ist ein Ablaufdiagramm eines Verfahrens zur Entprellung bei einer dynamischen Leistungsdrosselung gemäß einer Ausführungsform.
    • 6 ist ein Ablaufdiagramm einer Zuordnung zwischen Betriebszustand und Leistungsbudgetwert bei einer dynamischer Leistungsdrosselung gemäß einer Ausführungsform.
    • 7 ist ein Funktionsdiagramm eines Systems gemäß einer Ausführungsform, das eine Leistungsdrosselung mit einem Systemparameter durchführt.
    • 8A ist ein Funktionsdiagramm eines Systems gemäß einer Ausführungsform, das eine dynamische Leistungsdrosselung mit vier Systemparametern durchführt.
    • 8B ist ein Funktionsdiagramm eines Systems gemäß einer Ausführungsform, das eine dynamische Leistungsdrosselung mit vier Systemparametern durchführt.
    • 8C ist ein Funktionsdiagramm eines Systems gemäß einer Ausführungsform, das eine dynamische Leistungsdrosselung mit vier Systemparametern durchführt.
    • 8D ist ein Funktionsdiagramm eines Systems gemäß einer Ausführungsform, das eine dynamische Leistungsdrosselung mit vier Systemparametern durchführt.
    • 9 ist ein Ablaufdiagramm eines Verfahrens zum Aktualisieren von Systemfähigkeiten gemäß einer Ausführungsform.
    • 10 ist ein Blockdiagramm eines Systemkontext- und Lösungsstapel-Layouts einer dynamischen Leistungsdrosselung gemäß einer Ausführungsform.
    • 11 ist ein Ablaufdiagramm eines Verfahrens zum Aktualisieren von Systemfähigkeiten gemäß einer Ausführungsform.
    • 12 ist ein Blockdiagramm, das ein System für eine USB-Vorrichtung zur Verwendung bei einer USB-Leistungsabgabe in Übereinstimmung mit einigen Ausführungsformen illustriert.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Beschreibung legt zahlreiche spezifische Details dar, wie etwa Beispiele spezifischer Systeme, Komponenten, Verfahren und so weiter, um ein gutes Verständnis verschiedener Ausführungsformen der hierin beschriebenen Techniken zum Ermöglichen einer dynamischen Leistungsdrosselung basierend auf Systemzuständen in einem USB-Typ-C/PD-Ökosystem bereitzustellen. Es wird einem Fachmann jedoch klar sein, dass mindestens einige Ausführungsformen ohne diese spezifischen Details ausgeübt werden können. In anderen Fällen werden gut bekannte Komponenten, Elemente oder Verfahren nicht im Detail beschrieben oder sie werden in einem einfachen Blockdiagrammformat präsentiert, um ein unnötiges Verschleiern der hierin beschriebenen Techniken zu vermeiden. Die nachfolgend dargelegten spezifischen Details sind daher lediglich beispielhaft. Bestimmte Implementierungen können von diesen beispielhaften Details abweichen und trotzdem als im Geist und Umfang der vorliegenden Erfindung enthalten angesehen werden.
  • Eine Bezugnahme in der Beschreibung auf „eine Ausführungsform“, „ein Ausführungsbeispiel“, „einige Ausführungsformen“ und „verschiedene Ausführungsformen“ bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur, ein bestimmter Schritt, eine bestimmte Operation oder eine bestimmte Eigenschaft, auf die in Verbindung mit der bzw. den Ausführungsformen Bezug genommen wird, in mindestens einer Ausführungsform der Erfindung eingeschlossen ist. Ferner wird mit dem Auftreten der Ausdrücke „eine Ausführungsform“, „ein Ausführungsbeispiel“, „einige Ausführungsformen“ und „verschiedene Ausführungsformen“ an verschiedenen Stellen in der Beschreibung nicht notwendigerweise jedes Mal auf die gleiche(n) Ausführungsform(en) Bezug genommen.
  • Die Beschreibung umfasst Bezugnahmen auf die begleitenden Zeichnungen, die einen Teil der detaillierten Beschreibung bilden. Die Zeichnungen zeigen Illustrationen in Übereinstimmung mit Ausführungsbeispielen. Diese Ausführungsformen, die hierin auch als „Beispiele“ bezeichnet werden können, werden detailliert genug beschrieben, um es Fachleuten zu ermöglichen, die Ausführungsformen des hierin beschriebenen beanspruchten Gegenstands auszuüben. Die Ausführungsformen können kombiniert werden, andere Ausführungsformen können genutzt werden oder es können strukturelle, logische und elektrische Änderungen gemacht werden, ohne von dem Geist und Umfang des beanspruchten Gegenstands abzuweichen. Es versteht sich, dass die hierin beschriebenen Ausführungsformen den Umfang des Gegenstands nicht begrenzen sollen, sondern es vielmehr Fachleuten ermöglichen sollen, den Gegenstand auszuüben, herzustellen und/oder zu verwenden.
  • Es werden hierin verschiedene Ausführungsformen von Techniken zur dynamischen Leistungsdrosselung basierend auf Systemzuständen in einem USB-Typ-C/PD-Ökosystem beschrieben. Beispiele solcher elektronischen Vorrichtungen umfassen, ohne darauf begrenzt zu sein, Personal Computer (z. B. Laptop-Computer, Notebook-Computer usw.), mobile Rechenvorrichtungen (z. B. Tablets, Tablet-Computer, E-Reader-Vorrichtungen usw.), mobile Kommunikationsvorrichtungen (z. B. Smartphones, Mobiltelefone, Personal Digital Assistants, Nachrichtenübermittlungsvorrichtungen, Taschen-PCs usw.), Konnektivitäts- und Ladevorrichtungen (z. B. Hubs, Andockstationen, Adapter, Ladegeräte usw.), Audio-/ Video-/Datenaufzeichnungs- und/oder -wiedergabevorrichtungen (z. B. Kameras, Sprachaufzeichnungsgeräte, tragbare Scanner, Monitore usw.) und andere ähnliche elektronische Vorrichtungen, die USB-Verbinder (USB-Schnittstellen) zum Kommunizieren, Batterieladen und/oder zur Leistungsabgabe verwenden können. Die hierin beschriebenen Ausführungsformen können für Gleichstrom-Gleichstrom(DC-DC)-Leistungsadapter, Wechselstrom-Gleichstrom(AC-DC)-Leistungsadapter, GaN-basierte Leistungsadapter, die mit Frequenzen von 600 kHz arbeiten, Leistungsadapter mit Primär- oder Sekundärseitencontrollern, Leistungsadapter, die in Betriebsmodi wie etwa einem Quasi-Resonanz(QR)-Modus, einem lückenden Modus (DCM, Discontinuous Conduction Mode) oder einem nichtlückenden Modus (CCM, Continuous Conduction Mode) arbeiten, oder dergleichen verwendet werden. Die hierin beschriebenen Ausführungsformen können in Leistungsadapterlösungen zusammen mit einer Typ-C-PD-Fähigkeit verwendet werden. Diese Ausführungsformen können dazu beitragen, zu ermöglichen, dass eine Leistungsquelle eine deutlich niedrigere Kapazität haben kann, was Kosten und Komplexität reduziert, während sie das maximale Ladepotential untergeordneter USB-Typ-C/PD-Ports weiterhin effizient einsetzen.
  • Eine USB-fähige elektronische Vorrichtung oder ein USB-fähiges elektronisches System kann mindestens einem Release einer USB-Spezifikation entsprechen. Beispiele solcher USB-Spezifikationen umfassen, ohne darauf begrenzt zu sein, die USB-Spezifikation Revision 2.0, die USB-3.0-Spezifikation, die USB-3.1-Spezifikation und/oder verschiedene Ergänzungen (wie etwa z. B. On-The-Go oder OTG), Versionen und Errata davon. Die USB-Spezifikationen definieren allgemein die Eigenschaften (z. B. Attribute, Protokolldefinition, Transaktionstypen, Busverwaltung, Programmierschnittstellen usw.) eines differentiellen seriellen Busses, die erforderlich sind, um standardmäßige Kommunikationssysteme und -peripherieeinheiten zu gestalten und zu erstellen. Eine USB-fähige Peripherievorrichtung wird beispielsweise an eine USB-fähige Host-Vorrichtung über einen USB-Port der Host-Vorrichtung angeschlossen, um ein USB-fähiges System zu bilden. Ein USB-2.0-Port umfasst eine Leistungsspannungsleitung von 5 V (als VBUS gekennzeichnet), ein differentielles Paar Datenleitungen (als D+ bzw. DP und D- bzw. DN gekennzeichnet) und eine Masseleitung zur Leistungsrückführung (als MASSE gekennzeichnet). Ein USB-3.0-Port stellt auch die Leitungen VBUS, D+, D- und MASSE für eine Rückwärtskompatibilität mit USB 2.0 bereit. Zusätzlich stellt ein USB-3.0-Port, um einen schnelleren differentiellen Bus (den USB-SuperSpeed-Bus) zu unterstützen, auch ein differentielles Paar Senderdatenleitungen (als SSTX+ und SSTX- gekennzeichnet), ein differentielles Paar Empfängerdatenleitungen (als SSRX+ und SSRX- gekennzeichnet), eine Leistungsleitung für die Leistung (als DPWR gekennzeichnet) und eine Masseleitung zur Leistungsrückführung (als DMASSE gekennzeichnet) bereit. Ein USB-3.1-Port stellt für die Rückwärtskompatibilität mit USB-2.0- und USB-3.0-Kommunikationen die gleichen Leitungen wie ein USB-3.0-Port bereit, erweitert aber das Leistungsverhalten des SuperSpeed-Busses durch eine Reihe von Merkmalen, die als Enhanced SuperSpeed bezeichnet werden.
  • Eine jüngere Technologie für USB-Verbinder, die USB-Typ-C genannt wird, ist in verschiedenen Releases und/oder Versionen der USB-Typ-C-Spezifikation definiert. Die USB-Typ-C-Spezifikation definiert eine Typ-C-Buchse, einen Typ-C-Stecker und Typ-C-Kabel, die USB-Kommunikationen sowie eine Leistungsabgabe über neuere USB-Leistungsabgabeprotokolle, die in verschiedenen Revisionen/Versionen der USB-PD-Spezifikation definiert sind, unterstützen können. Beispiele für USB-Typ-C-Funktionen und -Anforderungen können, ohne darauf begrenzt zu sein, Daten- und andere Kommunikationen gemäß USB 2.0 und USB 3.0/3.1, elektromechanische Definitionen und Leistungsverhaltensanforderungen für Typ-C-Kabel, elektromechanische Definitionen und Leistungsverhaltensanforderungen für Typ-C-Buchsen, elektromechanische Definitionen und Leistungsverhaltensanforderungen für Typ-C-Stecker, Anforderungen für Typ-C-zu-Vorgängerkabelbaugruppen und -adapter, Anforderungen für Typ-C-basierte Vorrichtungsdetektion und Schnittstellenkonfiguration, Anforderungen für eine optimierte Leistungsabgabe für Typ-C-Verbinder usw. umfassen. Gemäß der/den USB-Typ-C-Spezifikation(en) stellt ein Typ-C-Port unter anderem die Leitungen VBUS, D+, D-, MASSE, SSTX+, SSTX-, SSRX+ und SSRX- bereit. Zusätzlich stellt ein Typ-C-Port auch eine Leitung zur Seitenbandverwendung (als SBU (Sideband Use) gekennzeichnet) zum Signalisieren einer Seitenbandfunktionalität und einen Konfigurationskanal (als CC (Configuration Channel) gekennzeichnet) zum Entdecken, Konfigurieren und Verwalten von Verbindungen über ein Typ-C-Kabel bereit. Ein Typ-C-Port kann mit einem Typ-C-Stecker und/oder einer Typ-C-Buchse assoziiert sein. Um die Verwendung zu erleichtern, sind der Typ-C-Stecker und die Typ-C-Buchse als ein reversibles Paar gestaltet, das unabhängig von der Stecker-Buchse-Orientierung arbeitet. Ein standardmäßiger USB-Typ-C-Verbinder, der als standardmäßige(r) Typ-C-Stecker oder -Buchse angeordnet ist, stellt daher unter anderem Pins für vier VBUS-Leitungen, vier Masserückleitungen (MASSE-Leitungen), zwei D+-Leitungen (DP1 und DP2), zwei D--Leitungen (DN1 und DN2), zwei SSTX+-Leitungen (SSTXP1 und SSTXP2), zwei SSTX-Leitungen (SSTXN1 und SSTXN2), zwei SSRX+-Leitungen (SSRXP1 und SSRXP2), zwei SSRX-Leitungen (SSRXN1 und SSRXN2), zwei CC-Leitungen (CC1 und CC2) und zwei SBU-Leitungen (SBU1 und SBU2) bereit.
  • Einige USB-fähige elektronische Vorrichtungen können einer spezifischen Revision und/oder Version der USB-PD-Spezifikation entsprechen. Die USB-PD-Spezifikation definiert ein Standardprotokoll, das so gestaltet ist, dass es die maximale Funktionalität USB-fähiger Vorrichtungen ermöglicht, indem es neben Datenkommunikationen auch eine flexiblere Leistungsabgabe über ein einziges USB-Typ-C-Kabel über USB-Typ-C-Ports bereitstellt. Die USB-PD-Spezifikation beschreibt auch die Architektur, die Protokolle, das Leistungslieferungsverhalten, die Parameter und die Verkabelung, die zum Verwalten der Leistungsabgabe über USB-Typ-C-Kabel mit bis zu 100 W Leistung notwendig sind. Gemäß der USB-PD-Spezifikation können Vorrichtungen mit USB-Typ-C-Ports (wie etwa z. B. USB-fähige Vorrichtungen) einen höheren Strom und/oder höhere oder niedrigere Spannungen über ein USB-Typ-C-Kabel aushandeln, als dies in älteren USB-Spezifikationen (wie etwa z. B. der USB-2.0-Spezifikation, der USB-3.1-Spezifikation, der USB-Batterieladespezifikation Rev. 1.1/1.2 usw.) erlaubt ist. Beispielsweise definiert die USB-PD-Spezifikation die Anforderungen für einen Leistungsabgabevertrag (PD-Vertrag), der zwischen einem Paar USB-fähiger Vorrichtungen ausgehandelt werden kann. Der PD-Vertrag kann sowohl den Leistungspegel als auch die Richtung der Leistungsübertragung, die für beide Vorrichtungen passend sind, spezifizieren und kann auf Anfrage durch eine beliebige der Vorrichtungen und/oder als Reaktion auf verschiedene Ereignisse und Zustände, wie etwa Leistungsrollenwechsel, Datenrollenwechsel, Kaltstart, Ausfall der Leistungsquelle usw., dynamisch neu ausgehandelt werden (z. B. ohne den Stecker der Vorrichtung herauszuziehen).
  • Gemäß der USB-PD-Spezifikation ist eine elektronische Vorrichtung typischerweise konfiguriert, um Leistung über einen Leistungspfad, der auf einer USB-VBUS-Leitung konfiguriert ist, an eine andere Vorrichtung abzugeben. Die Vorrichtung, die Leistung bereitstellt, wird typischerweise als ein „Bereitsteller“ (oder eine Leistungsquelle) bezeichnet (oder umfasst eine(n) solche(n)), und die Vorrichtung, die Leistung verbraucht, wird typischerweise als ein „Verbraucher“ (oder eine Leistungssenke) bezeichnet (oder umfasst eine(n) solche(n)). Ein Leistungspfad umfasst typischerweise einen Leistungsschalter, der in der VBUS-Leitung in Reihe gekoppelt und konfiguriert ist, um die Abgabe von Leistung ein- und auszuschalten.
  • In einer Ausführungsform kann eine USB-PD-Leistungsquelle konfiguriert sein, um Leistung aus einer Gleichstrom(DC, Direct Current)-Leistungsquelle zu beziehen, und kann einen Gleichstrom-Gleichstrom(DC-DC)-Wandler umfassen. In anderen Ausführungsformen kann eine USB-PD-Leistungsquelle konfiguriert sein, um Leistung aus einem Wechselstrom(AC, Alternating Current)-Leistungsadapter oder aus einer anderen AC-Quelle zu beziehen. Deshalb können einige Implementierungen als Teil der AC-DC-Wandlung einen großen Stützkondensator auf der Leistungsquellenseite der VBUS-Leitung verwenden, um die AC-Komponente des Leistungssignals zu entfernen. Das Ein- und Ausschalten von Leistungsschaltern (auch als Leistungs-FETs bezeichnet) kann basierend auf einer Analyse von Strom- und Spannungszuständen und der Detektion von Fehlern einen weiteren Schaltungsschutz erlauben.
  • In einem USB-Typ-C/PD-System kann ein Liefern der vollen Port-Leistung unter Stresszuständen zu einem ineffizienten Betrieb, Schäden am Port und/oder einer durchgebrannten Sicherung führen, was zu einer Störung des Systems führen kann. Leistungsdrosselungslösungen tragen dazu bei, das System vor Störungen aufgrund eines Betriebs unter Stresszuständen zu schützen. Eine Leistungsdrosselungstechnik verwendet einen externen Controller, um eine Temperatur und eine Eingangsspannung des Systems zu messen. Leistungspegel, die der gemessenen Temperatur und dem gemessenen Eingangspegel entsprechen, werden bestimmt und ein entsprechender Leistungsbudgetwert wird über eine serielle Kommunikationsschnittstelle (wie etwa eine 12C-Schnittstelle) an die PD-Controller kommuniziert. Diese Technik erfordert einen dedizierten externen Controller, um notwendige Leistungsänderungen zu erfassen und auszulösen. Da der Controller extern ist, kann er möglicherweise keine dynamische Konfiguration von Leistungspegeln erlauben. Ferner kann der externe Controller möglicherweise keinen Mechanismus für den Umgang mit fehlerhaften oder falschen Daten aufweisen, und ein Algorithmus der Technik bezieht keine Hysterese mit ein.
  • Es werden hierin verschiedene Ausführungsformen von Techniken zur dynamischen Leistungsdrosselung basierend auf Systemzuständen in einem USB-Typ-C/PD-Ökosystem beschrieben. Die hierin beschriebenen Ausführungsformen können die oben genannten und andere Herausforderungen bewältigen, indem sie einen dynamischen Leistungsdrosselungsmechanismus bereitstellen, mit dem der USB-Typ-C/PD-Controller in der Lage ist, ein für einen Port verfügbares Leistungsbudget basierend auf einem aktuellen Status von Systemparametern zu verwalten. Der Algorithmus stellt sicher, dass das System und der Port bei Systemstress nicht weiter mit voller Leistung arbeiten. Systemstress kann durch eine Erhöhung der Temperatur, eine niedrige Eingangsspannung oder dergleichen hervorgerufen werden. Unter Stresszuständen kann eine Port-Leistung des Ports vorübergehend auf einen niedrigeren Wert abgesenkt werden, falls eine beliebige andere Aufgabe auf Systemebene mehr Leistung erfordert. Falls beispielsweise eine Systemebenenaufgabe einen hohen Leistungsbedarf aufweist, kann die Leistung zu dem Port auf einen niedrigeren Leistungspegel gedrosselt werden, sodass eine mit dem Port verbundene Vorrichtung weiter laden oder arbeiten kann, wenn auch mit einer niedrigeren Leistung. Sobald die Systemebenenaufgabe abgeschlossen ist, kann die Leistung wieder auf den erforderlichen Pegel der Vorrichtung entdrosselt werden.
  • Die Ausführungsformen sind bei der Leistungsdrosselungsaufgabe nicht auf einen externen Controller angewiesen, was den USB-Typ-C/PD-Controller für Kommunikationsfehler unanfällig machen kann. Die OCs (oder Betriebszustands(Operating Condition)-Pegel) definieren die Leistungspegel. Die Ausführungsformen treffen keine Annahmen über die Leistungspegel, die jedem Betriebszustands(OC)-Pegel entsprechen. Die OCs (oder Betriebszustandspegel) definieren die Leistungspegel. Die Betriebszustandspegel sind konfigurierbar und können je nach Systemanforderungen aktualisiert oder eingestellt werden. Die Leistungspegel können vorkonfiguriert sein oder dynamisch konfiguriert werden, um den Bedürfnissen eines Endbenutzers gerecht zu werden. Die Ausführungsformen können eine eingebaute Entprellungslogik bereitstellen, um mehrere Abtastungen eines Systemparameterwerts zu berücksichtigen, bevor der Betriebszustand, der dem Systemparameter entspricht, bestimmt wird, um sicherzustellen, dass eine inkorrekte Ablesung nicht zu einer Leistungsdrosselung auf einen falschen Betriebszustandspegel führt. Die Ausführungsformen können eine eingebaute Hystereselogik bereitstellen, um sicherzustellen, dass schwankende Werte im Schwellenbereich keine unkorrekte Betriebszustandsänderung auslösen. Die Ausführungsformen können einen Algorithmus bereitstellen, der einen Status der Systemparameter auf periodische Weise überwacht, ohne dabei die Funktionalität des Systems zu beeinträchtigen. Die Ausführungsform kann einen Algorithmus bereitstellen, der ein verbesserter Mechanismus für den Umgang mit Systemparameterfehlern ist. Falls ein beliebiger Parameter einen Fehlerwert liest, wird der Betriebszustand, der diesem Systemparameter entspricht, auf den kritischsten Betriebszustand, der für ihn definiert ist, eingestellt. Die hierin beschriebenen Ausführungsformen und Techniken sind mit mehreren Systemparametern (z. B. Systemstimuli), wie etwa einer Eingangsspannung, einer Batteriespannung, einer Ausgangsspannung, einer Kabelverlustmetrik, Feuchtigkeit oder anderen messbaren Parametern, kompatibel. Die hierin beschriebenen Ausführungsformen und Techniken können bewirken, dass ein System beim Messen oder Ablesen von Systemparametern für Rauschen (z. B. zufällige Fluktuationen) unanfällig ist.
  • 1 ist ein Blockdiagramm eines USB-Typ-C-Leistungsabgabe(USB-C/PD)-Systems 100 gemäß einer Ausführungsform, das eine dynamische Leistungsdrosselung durchführt. Ein Firmware-Algorithmus kann es einem USB-C/PD-System 100 ermöglichen, eine dynamische Leistungsdrosselung durchzuführen, indem er ein für einen Port 112 verfügbares Leistungsbudget basierend auf einem aktuellen Status oder Wert von Systemparametern verwaltet. In einer Ausführungsform führt ein USB-Controller 102 den Firmware-Algorithmus aus, der die dynamische Leistungsdrosselung durchführt. In einer anderen Ausführungsform weist der USB-Controller 102 einen eingebetteten Code oder eine eingebettete Logik auf und ist konfiguriert, um Anweisungen auszuführen, um die dynamische Leistungsdrosselung durchzuführen. In einer anderen Ausführungsform implementiert der USB-Controller 102 die Funktionalität in einer oder mehreren Schaltungen. In einer Ausführungsform reduziert das USB-C/PD-System 100 das für den Port verfügbare Leistungsbudget von einem maximalen Wert auf einen niedrigeren Wert, wenn das USB-C/PD-System 100 unter einem Stresszustand, wie etwa einer hohen Temperatur, einer niedrigen Eingangsspannung oder dergleichen, arbeitet. In einer anderen Ausführungsform erhöht das USB-C/PD-System 100 das für den Port verfügbare Leistungsbudget von einem niedrigeren Wert auf einen höheren Wert, wenn der Stresszustand reduziert wird. In einer Ausführungsform ist der USB-Controller 102 ein USB-Port-Controller zum Steuern eines USB-Ports.
  • Der USB-Controller 102 ist mit dem Port 112 betriebsfähig gekoppelt. Um die dynamische Leistungsdrosselung durchzuführen, erhält der USB-Controller 102 Daten für eine Anzahl von Systemparametern des USB-C/PD-Systems 100. In einer Ausführungsform sind die Daten eine Messung eines Systemparameters. In einer anderen Ausführungsform sind die Daten ein Status eines Systemparameters. Das USB-C/PD-System 100 weist an einer Eingangsleitung 104 eine Eingangsspannung VIN von einer Leistungsquelle auf. Die Leistungsquelle stellt dem USB-C/PD-System 100 eine Systemleistung bereit. Ein Leistungswandler 106 wandelt die Eingangsspannung in eine unterschiedliche Spannung um, die an den Port 112 geliefert werden soll. In einer Ausführungsform kann der Leistungswandler 106 die Eingangsspannung auf eine niedrigere Spannung verringern (was z. B. als eine Spannungsverminderung bezeichnet wird). Ein Feldeffekttransistor (FET) 110 kann zwischen Ein und Aus umgeschaltet werden, um dem Port 112 Leistung bereitzustellen. Der USB-Controller 102 stellt ein Signal bereit, um den FET 110 zwischen Ein und Aus umzuschalten. Der FET 110 ist über eine VBus-Leitung 114 mit dem Port 112 gekoppelt. Der USB-Controller 102 ist durch eine Kommunikationsschnittstelle 108 mit dem Leistungswandler 106 und dem FET 110 gekoppelt. In einer Ausführungsform ist die Kommunikationsschnittstelle 108 eine serielle Kommunikationsschnittstelle wie etwa FB/I2C. In einer anderen Ausführungsform ist die Kommunikationsschnittstelle 108 eine serielle Kommunikationsschnittstelle wie etwa RS-232, RS-485, 12C, SPI oder dergleichen. Obwohl als Leistungswandler 106 illustriert, kann der Leistungswandler 106 in einer Ausführungsform ein Gleichstrom-Gleichstrom(DC-DC)-Wandler sein. In einer anderen Ausführungsform ist der Leistungswandler 106 ein Wechselstrom-Gleichstrom(AC-DC)-Wandler. Alternativ können andere Typen von Leistungswandlern (z. B. Spannungswandler, Gleichrichter, Zerhacker oder dergleichen) verwendet werden.
  • Obwohl der USB-Controller 102 in 1 als eine von dem Leistungswandler 106 und dem FET 110 separate Komponente veranschaulicht ist, kann der USB-Controller 102 in anderen Ausführungsformen ein USB-Controller sein, der einen integrierten Leistungs-FET und/oder einen integrierten Leistungswandler (z. B. Leistungsregler) umfasst.
  • Der Leistungswandler 106 kann ein linearer DC-DC-Wandler, ein geschalteter DC-DC-Wandler oder dergleichen sein. Der Leistungswandler 106 kann alternativ als ein AC-DC-Wandler oder anderer Leistungswandler implementiert sein. Der FET 110 kann ein N-Kanal-FET, ein P-Kanal-FET oder dergleichen sein. Der Port 112 kann ein USB-C-Port, ein Mikro-USB-Port oder ein anderer leistungsbereitstellender oder leistungsempfangender Port sein.
  • In der veranschaulichten Ausführungsform umfasst das USB-C/PD-System 100 Temperatursensoren 118. Die Temperatursensoren 118 sind mit einem Temperaturerfassungs-Controller 116 gekoppelt. Der Temperaturerfassungs-Controller 116 ist über eine serielle Kommunikationsleitung 120 mit dem USB-Controller 102 gekoppelt. Der USB-Controller kann dem Temperaturerfassungs-Controller 116 ein Signal bereitstellen, um zu bewirken, dass die Temperatursensoren 118 Temperaturdaten oder -messungen sammeln. Ein Thermistor 122 ist mit dem USB-Controller 102 gekoppelt. Der USB-Controller 102 kann direkt bewirken, dass der Thermistor 122 Temperaturdaten oder -messungen sammelt. Eine Temperaturmessung von dem Thermistor 122 kann sich von einer Temperaturmessung von den Temperatursensoren 118 unterscheiden, da sich der Thermistor 122 und die Temperatursensoren 118 in unterschiedlichen Teilen des USB-C/PD-Systems 100 befinden können. Der USB-Controller 102 kann auch eine Eingangsspannung von der Eingangsleitung 104 direkt messen. Der USB-Controller 102 ist mit einem Sensor 124 gekoppelt. Der Sensor 124 misst einen Systemparameter X. Der Systemparameter X stellt einen beliebigen anderen Systemparameter dar, der gemessen werden kann. Der Sensor 124 kann ein beliebiger Typ von Sensor sein, der den Systemparameter X erhält. In einer Ausführungsform ist der Systemparameter X eine Temperatur. In einer anderen Ausführungsform ist der Systemparameter X eine Batteriespannung. In anderen Ausführungsformen kann der Systemparameter X ein Strom, eine Leistung, eine Kabelverlustmetrik, eine Ausgangsleistung, Feuchtigkeit oder dergleichen sein. Die Temperaturmessungen von den Temperatursensoren 118, die Temperaturmessungen von dem Thermistor 122, die Eingangsspannungsmessungen von der Eingangsleitung 104 und die Messungen des Systemparameters X von dem Sensor 124 sind Systemparameterdaten, die Eingänge für den USB-Controller 102 sind, wenn der USB-Controller 102 eine dynamische Leistungsdrosselung durchführt. In einer Ausführungsform erhält der USB-Controller 102 die Systemparameterdaten direkt. In einer anderen Ausführungsform stellen Sensoren dem USB-Controller 102 die Systemparameterdaten bereit. In einer Ausführungsform umfasst der USB-Controller 102 einen Anschluss, der mit dem Port 112 gekoppelt ist. Ferner umfasst der USB-Controller 102 einen Satz Anschlüsse, um die Systemparameterdaten zu empfangen. Der USB-Controller 102 umfasst eine Verarbeitungsschaltung, die mit dem Anschluss und dem Satz Anschlüsse gekoppelt ist und bewirkt, dass der USB-Controller 102 die dynamische Leistungsdrosselung durchführt. In einer Ausführungsform bestimmt die Verarbeitungsschaltung einen Systembetriebszustand basierend auf den Systemparameterdaten. Die Verarbeitungsschaltung bestimmt einen Leistungspegel, der dem Systembetriebszustand entspricht, und stellt eine Leistungseinstellung des USB-C/PD-Systems 100 auf den Leistungspegel ein. Der USB-Controller 102 kann als ein Port-Controller betrachtet werden.
  • Der USB-Controller 102 kann einen Systembetriebszustand basierend auf den Daten für die Systemparameter bestimmen. Um den Systembetriebszustand zu bestimmen, bestimmt der USB-Controller 102 einen Betriebszustand für jeden der Systemparameter.
  • In einer Ausführungsform bestimmt der USB-Controller 102 einen ersten Betriebszustand für einen ersten Systemparameter, der mit den Temperatursensoren 118 assoziiert ist. Um den ersten Betriebszustand zu bestimmen, vergleicht der USB-Controller 102 einen ersten Temperaturmesswert von den Temperatursensoren 118 mit einem ersten Satz einer oder mehrerer Temperaturschwellen. Der USB-Controller 102 identifiziert den ersten Betriebszustand basierend auf dem Vergleich des ersten Temperaturmesswerts mit dem ersten Satz einer oder mehrerer Temperaturschwellen. Der USB-Controller 102 bestimmt einen zweiten Betriebszustand für einen zweiten Systemparameter, der mit dem Thermistor 122 assoziiert ist. Der USB-Controller 102 vergleicht einen zweiten Temperaturmesswert von dem Thermistor 122 mit einem zweiten Satz einer oder mehrerer Temperaturschwellen. Der USB-Controller 102 identifiziert den zweiten Betriebszustand basierend auf dem Vergleich des zweiten Temperaturmesswerts mit dem zweiten Satz einer oder mehrerer Temperaturschwellen. Der USB-Controller 102 bestimmt einen dritten Betriebszustand für einen dritten Systemparameter, der mit der Eingangsspannung an der Eingangsleitung 104 assoziiert ist. Der USB-Controller 102 vergleicht eine Eingangsspannungsmessung mit einem Satz einer oder mehrerer Spannungsschwellen. Der USB-Controller 102 identifiziert den dritten Betriebszustand basierend auf dem Vergleich der Eingangsspannungsmessung mit dem Satz einer oder mehrerer Spannungsschwellen. Der USB-Controller 102 bestimmt einen vierten Betriebszustand für einen vierten Systemparameter für den mit dem Sensor 124 assoziierten Systemparameter X. Der USB-Controller 102 vergleicht eine Messung des Systemparameters X mit einem Satz einer oder mehrerer Systemparameter-X-Schwellen. Der USB-Controller 102 identifiziert den vierten Betriebszustand basierend auf dem Vergleich der Messung des Systemparameters X mit dem Satz einer oder mehrerer Systemparameter-X-Schwellen. Alternativ kann jeder Betriebszustand auf eine unterschiedliche Weise bestimmt werden, wie etwa durch das Überwachen über einen Anschluss (z. B. einen Statuspin), der mit einem Sensor gekoppelt ist. Es sei auch angemerkt, dass die vier Parameter Beispiele sind und dass die tatsächliche Anzahl von Parametern größer als diese Anzahl von Parametern sein kann.
  • Jeder Betriebszustand kann einem unterschiedlichen Leistungspegel entsprechen. Der Leistungspegel wird als ein Leistungsbudgetwert des Ports 112 spezifiziert. In einer Ausführungsform ist der Leistungsbudgetwert ein Prozentsatz eines vollen Leistungspegels. In einer anderen Ausführungsform ist der Leistungsbudgetwert ein Bruchteil des vollen Leistungspegels. Der volle Leistungspegel entspricht einem maximalen Leistungsbetrag, der durch den Port 112 geliefert werden kann. Der USB-Controller kann einen Speicher umfassen, um eine Zuordnung zwischen Betriebszustand und Leistungspegel zu speichern. Die Zuordnung kann gleich einer oder ähnlich wie eine Zuordnung sein, wie sie mit Bezug auf 6 beschrieben ist. In einer Ausführungsform kann die Zuordnung zu einem Zeitpunkt der Herstellung vorkonfiguriert und auf dem USB-Controller 102 gespeichert werden, um Anforderungen eines Endbenutzers gerecht zu werden. In einer anderen Ausführungsform kann die Zuordnung durch den Endbenutzer dynamisch programmiert werden.
  • Der USB-Controller 102 vergleicht den ersten Betriebszustand, den zweiten Betriebszustand, den dritten Betriebszustand und den vierten Betriebszustand und bestimmt als Systembetriebszustand den Betriebszustand, der am kritischsten (oder am wenigsten stabil) ist. Der Betriebszustand, der am kritischsten ist, ist der Betriebszustand, der einem niedrigsten Leistungspegel entspricht. Der USB-Controller 102 ist konfiguriert, um zu bewirken, dass der Port 112 mit einem Leistungspegel arbeitet, der dem Systembetriebszustand entspricht.
  • Obwohl das USB-C/PD-System 100 als ein Leistungsbereitsteller veranschaulicht ist, kann das USB-C/PD-System in anderen Ausführungsformen ein USB-C-Leistungsverbraucher sein. Der USB-C-Leistungsverbraucher kann mit dem auf Firmware basierenden Verfahren zur dynamischen Leistungsdrosselung basierend auf Systemzuständen des USB-C-Leistungsverbrauchers implementiert sein.
  • 2 ist ein Ablaufdiagramm eines Verfahrens 200 zur dynamischen Leistungsdrosselung gemäß einer Ausführungsform. Das Verfahren 200 kann durch eine Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Schaltkreise, eine dedizierte Logik, eine programmierbare Logik, einen Mikrocode usw.), Software, Firmware oder eine Kombination daraus beinhaltet. In einer Ausführungsform kann das Verfahren 200 durch eine beliebige der hierin beschriebenen Verarbeitungsvorrichtungen durchgeführt werden. In einer Ausführungsform wird das Verfahren 200 durch eine Verarbeitungslogik eines USB-Controllers, wie etwa des USB-Controllers 102 aus 1, durchgeführt. In einer Ausführungsform führt der USB-Controller einen Firmware-Algorithmus aus, der die folgenden Operationen durchführt. In einer anderen Ausführungsform weist der USB-Controller einen eingebetteten Code oder eine eingebettete Logik auf und ist konfiguriert, um Anweisungen auszuführen, um die folgenden Operationen durchzuführen.
  • Das USB-Typ-C/PD-System 100 kann Teil eines USB-C-Ladegeräts in einem Fahrzeug, Auto, Lastwagen, Lieferwagen, Boot, Flugzeug, Gebäude, Haus oder dergleichen sein. Das USB-C/PD-System kann ein Leistungsadapter sein, der einen DC-DC-Leistungswandler umfassen kann, und der Leistungsadapter kann Teil einer Head-Unit eines Automobils, eines Rücksitzunterhaltungssystems des Automobils, eines Rücksitzladegeräts des Automobils oder dergleichen sein. Der Leistungsadapter kann ein Multi-Port-Leistungsadapter sein und Leistung kann für jeden Port des Multi-Port-Adapters dynamisch gedrosselt werden. Alternativ kann das USB-C/PD-System 100 ein Leistungsadapter sein, der einen AC-DC-Leistungswandler umfassen kann, und der Leistungsadapter kann Teil eines USB-C-Wandladegeräts, einer USB-C-Powerbank, eines USB-C-Power-Hubs, eines Leistungsadapters oder dergleichen sein. Das USB-C/PD-System 100 kann ein Multi-Port-Leistungsadapter, wie etwa ein Multi-Port-Wandladegerät, ein Multi-Port-Power-Hub, eine Multi-Port-Powerbank oder dergleichen, sein. Ein anderer Systemtyp, wie etwa eine Wandsteckdose, ein Mikro-USB/PD-System oder dergleichen, kann mit dem hierin beschriebenen dynamischen Leistungsdrosselungsalgorithmus implementiert sein.
  • Erneut bezugnehmend auf 2 beginnt das Verfahren 200 damit, dass die Verarbeitungslogik einen ersten Betriebszustand (OC) für einen ersten Systemparameter erhält (Block 202). Ein Systemparameter kann eine Temperatur, eine Eingangsspannung, eine Batteriespannung oder ein anderer messbarer Parameter, wie etwa eine Kabelverlustmetrik, eine Ausgangsspannung, Feuchtigkeit oder dergleichen, sein. Die Verarbeitungslogik überwacht den ersten Systemparameter regelmäßig, um zu überprüfen, ob es eine Änderung beim Status oder Wert des ersten Systemparameters gibt. Um den ersten Systemparameter zu überwachen, misst die Verarbeitungslogik den ersten Systemparameter oder empfängt eine Messung, die diesem entspricht. Die Verarbeitungslogik bestimmt den ersten Betriebszustand basierend auf der Messung des ersten Systemparameters.
  • Die Verarbeitungslogik kann den ersten Betriebszustand anhand eines Satzes OCs (z. B. OC1, OC2, OC3 usw.) bestimmen. Jeder Betriebszustand entspricht einem Bereich von Systemparameterwerten. Falls in einer Ausführungsform der erste Systemparameter beispielsweise in einem ersten Wertebereich liegt, bestimmt die Verarbeitungslogik, dass der erste Betriebszustand OC1 ist. Falls der erste Systemparameter in einem zweiten Wertebereich liegt, bestimmt die Verarbeitungslogik, dass der erste Betriebszustand OC2 ist. Falls der erste Systemparameter in einem dritten Wertebereich liegt, bestimmt die Verarbeitungslogik, dass der erste Betriebszustand OC3 ist. In einer anderen Ausführungsform bestimmt die Verarbeitungslogik, falls der erste Systemparameter unter einem ersten Schwellenwert liegt, dass der erste Betriebszustand OC1 ist. Falls der erste Systemparameter zwischen dem ersten Schwellenwert und einem zweiten Schwellenwert liegt, bestimmt die Verarbeitungslogik, dass der erste Betriebszustand OC2 ist. Falls der erste Systemparameter über dem zweiten Schwellenwert liegt, bestimmt die Verarbeitungslogik, dass der erste Betriebszustand OC3 ist.
  • Jeder Betriebszustand entspricht einem Leistungspegel, der einen Leistungsbudgetwert spezifiziert. Beispielsweise kann in einer Ausführungsform OC1 einem ersten Leistungspegel entsprechen, OC2 einem zweiten Leistungspegel entsprechen und OC3 einem dritten Leistungspegel entsprechen usw. Die Verarbeitungslogik definiert den ersten Betriebszustand als einen aktuellen OC. Falls noch kein Systembetriebszustand definiert ist, definiert die Verarbeitungslogik den aktuellen Betriebszustand als den System-OC. Falls der Systembetriebszustand bereits definiert ist und nicht gleich dem aktuellen OC ist, aktualisiert die Verarbeitungslogik den Systembetriebszustand, sodass dieser der aktuelle OC ist. Falls der Systembetriebszustand bereits definiert ist und gleich dem aktuellen OC ist, unternimmt die Verarbeitungslogik nichts.
  • Erneut bezugnehmend auf 2 bestimmt die Verarbeitungslogik den Leistungspegel, um mit dem Systembetriebszustand übereinzustimmen (Block 204). Basierend auf dem Leistungspegel aktualisiert die Verarbeitungslogik Systemeinstellungen auf einen berechneten Leistungsbudgetwert (Block 206). Die Verarbeitungslogik bewirkt, dass ein Port den berechneten Leistungspegel liefert. Das Verfahren 200 endet.
  • In weiteren Ausführungsformen überwacht die Verarbeitungslogik zusätzlich zu dem ersten Systemparameter einen zweiten Systemparameter und erhält einen zweiten Betriebszustand für den zweiten Systemparameter. Die Verarbeitungslogik überwacht den zweiten Systemparameter regelmäßig, um zu überprüfen, ob es eine Änderung beim Status oder Wert des zweiten Systemparameters gibt. Die Verarbeitungslogik misst den zweiten Systemparameter oder empfängt eine Messung, die diesem entspricht. Die Verarbeitungslogik bestimmt den zweiten Betriebszustand des zweiten Systemparameters basierend auf der Messung des zweiten Systemparameters.
  • Die Verarbeitungslogik vergleicht den ersten Betriebszustand des ersten Systemparameters und den zweiten Betriebszustand des zweiten Systemparameters und bestimmt einen aktuellen Betriebszustand, der gleich einem von dem ersten Betriebszustand oder dem zweiten Betriebszustand ist, der der kritischste oder der am wenigsten stabile ist (z. B. der Betriebszustand, der den höchsten Leistungsreduzierungspegel erfordern würde). Der Betriebszustand, der am kritischsten ist, ist der Betriebszustand, der dem niedrigsten Leistungspegel entspricht. Beispielsweise entspricht in einer Ausführungsform der Betriebszustand des ersten Systemparameters einem Leistungspegel mit einem Leistungsbudgetwert von 100 % und der Betriebszustand des zweiten Systemparameters einem Leistungspegel mit einem Leistungsbudgetwert von 60 %, und die Verarbeitungslogik definiert den Betriebszustand des zweiten Systemparameters als den aktuellen Betriebszustand. Sobald die Verarbeitungslogik den kritischsten OC als den aktuellen Betriebszustand definiert hat, definiert die Verarbeitungslogik den System-OC. Falls noch kein Systembetriebszustand definiert ist, definiert die Verarbeitungslogik den aktuellen Betriebszustand als den System-OC. Falls der Systembetriebszustand bereits definiert ist und nicht gleich dem aktuellen OC ist, aktualisiert die Verarbeitungslogik den Systembetriebszustand, sodass dieser der aktuelle OC ist. Falls der Systembetriebszustand bereits definiert ist und gleich dem aktuellen OC ist, unternimmt die Verarbeitungslogik nichts.
  • In weiteren Ausführungsformen kann die Verarbeitungslogik das Verfahren 200 für einen Satz Systemparameter wiederholen. Der Satz Systemparameter kann einen, zwei, drei, vier oder mehr Systemparameter umfassen. Die Verarbeitungslogik überwacht den Satz Systemparameter regelmäßig, um zu überprüfen, ob es eine Änderung beim Status oder Wert des Satzes Systemparameter gibt. Die Verarbeitungslogik misst jeden von dem Satz Systemparameter oder empfängt eine Messung, die jedem von diesem entspricht. Die Verarbeitungslogik bestimmt einen Satz OCs, die jedem von dem Satz Systemparameter entsprechen, basierend auf den Messungen von jedem von dem Satz Systemparameter.
  • Die Verarbeitungslogik vergleicht jeden von dem Satz Systemparameter und bestimmt einen aktuellen Betriebszustand, der gleich einem von dem Satz OCs ist, der am kritischsten (oder am wenigsten stabil) ist. Der Betriebszustand, der am kritischsten ist, ist der Betriebszustand, der dem niedrigsten Leistungsbudgetwert entspricht. Sobald die Verarbeitungslogik den aktuellen Betriebszustand kritischsten OC definiert hat, definiert die Verarbeitungslogik den System-OC. Falls noch kein Systembetriebszustand definiert ist, definiert die Verarbeitungslogik den aktuellen Betriebszustand als den System-OC. Falls der Systembetriebszustand bereits definiert ist und nicht gleich dem aktuellen OC ist, aktualisiert die Verarbeitungslogik den Systembetriebszustand, sodass dieser der aktuelle OC ist. Falls der Systembetriebszustand bereits definiert ist und gleich dem aktuellen OC ist, unternimmt die Verarbeitungslogik nichts.
  • 3 ist ein Ablaufdiagramm eines Verfahrens 300 zur dynamischen Leistungsdrosselung gemäß einer Ausführungsform. Das Verfahren 300 kann durch eine Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Schaltkreise, eine dedizierte Logik, eine programmierbare Logik, einen Mikrocode usw.), Software, Firmware oder eine Kombination daraus beinhaltet. In einer Ausführungsform kann das Verfahren 300 durch eine beliebige der hierin beschriebenen Verarbeitungsvorrichtungen durchgeführt werden. In einer Ausführungsform wird das Verfahren 300 durch eine Verarbeitungslogik eines USB-Controllers, wie etwa des USB-Controllers 102 aus 1, durchgeführt. In einer Ausführungsform führt der USB-Controller einen Firmware-Algorithmus aus, der die folgenden Operationen durchführt. In einer anderen Ausführungsform weist der USB-Controller einen eingebetteten Code oder eine eingebettete Logik auf und ist konfiguriert, um Anweisungen auszuführen, um die folgenden Operationen durchzuführen.
  • Erneut bezugnehmend auf 3 beginnt das Verfahren 300 damit, dass die Verarbeitungslogik einen für jeden Systemparameter spezifischen Betriebszustand berechnet (Block 302). Ein System kann einen Systemparameter oder aber einen Satz Systemparameter, wie etwa zwei, drei, vier usw., aufweisen. In Block 304 führt die Verarbeitungslogik ein Systemparameterschnittstellenverfahren durch. Während dieses Schritts wendet die Verarbeitungslogik eine Hysterese an, um sicherzustellen, dass das Berechnen des Betriebszustands basierend auf einer Messung oder einer Ablesung von jedem der Systemparameter korrekt erfolgt. Die Verarbeitungslogik bestimmt einen kritischsten Betriebszustand als einen aktuellen Betriebszustand (AKTUELLER_OC) (Block 306). Die Verarbeitungslogik vergleicht den aktuellen Betriebszustand mit einem Systembetriebszustand, um zu bestimmen, ob sie gleich sind (Block 308). In einem ersten Fall ist der aktuelle Betriebszustand der gleiche wie der System-OC, was bedeutet, dass sich keiner der Systemparameter um einen ausreichenden Betrag verändert hat, um seinen entsprechenden OC zu ändern, und das Verfahren 300 endet. In einem zweiten Fall ist der aktuelle Betriebszustand nicht der gleiche wie der System-OC. Die Verarbeitungslogik überprüft, ob ein Entprellungsverfahren aktiv ist (Block 310). Falls das Entprellungsverfahren aktiv ist, führt die Verarbeitungslogik das Entprellungsverfahren durch (Block 314). Falls das Entprellungsverfahren nicht aktiv ist, aktiviert die Verarbeitungslogik das Entprellungsverfahren (Block 312) und führt das Entprellungsverfahren durch (Block 314). Die Verarbeitungslogik führt das Entprellungsverfahren durch, um sicherzustellen, dass der Unterschied zwischen dem aktuellen Betriebszustand und dem Systembetriebszustand nicht aus einer inkorrekten Systemparametermessung resultiert. Sobald die Verarbeitungslogik bestimmt hat, dass der Unterschied zwischen dem aktuellen Betriebszustand und dem Systembetriebszustand fortbesteht, stellt die Verarbeitungslogik den Systembetriebszustand auf den aktuellen Betriebszustand ein (Block 316); das Verfahren 300 endet.
  • 4 ist ein Ablaufdiagramm eines Verfahrens 400 zum Aktualisieren eines Betriebszustands eines Systemparameters zur dynamischen Leistungsdrosselung gemäß einer Ausführungsform. Das Verfahren 400 kann durch eine Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Schaltkreise, eine dedizierte Logik, eine programmierbare Logik, einen Mikrocode usw.), Software, Firmware oder eine Kombination daraus beinhaltet. In einer Ausführungsform kann das Verfahren 400 durch eine beliebige der hierin beschriebenen Verarbeitungsvorrichtungen durchgeführt werden. In einer Ausführungsform wird das Verfahren 400 durch eine Verarbeitungslogik eines USB-Controllers, wie etwa des USB-Controllers 102 aus 1, durchgeführt. Die Verarbeitungslogik führt das Verfahren 400 für jeden Systemparameter durch. Das Verfahren 400 wird durch die Verarbeitungslogik verwendet, um sicherzustellen, dass eine inkorrekte Systemparameterwertablesung nicht in einer unzutreffenden Einstellung oder Änderung eines Betriebszustands des Systemparameterwerts resultiert.
  • Erneut bezugnehmend auf 4 beginnt das Verfahren 400 mit Block 304 aus 3. In Block 402 liest die Verarbeitungslogik einen Systemparameterwert. In einer Ausführungsform liest die Verarbeitungslogik den Systemparameterwert aus einem Sensor aus. In einer anderen Ausführungsform sendet ein Sensor-Controller den Systemparameterwert an die Verarbeitungslogik. In Block 404 wendet die Verarbeitungslogik, falls notwendig, eine Hysterese auf den Systemparameterwert an. Die Verarbeitungslogik kann eine Hystereseüberprüfung anwenden, wenn sich der Systemparameterwert um einen Schwellenbetrag gegenüber einer vorherigen Ablesung des Systemparameterwerts geändert hat. In einer Ausführungsform kann der Schwellenbetrag ein Prozentsatz oder ein Absolutwert sein. In einer anderen Ausführungsform kann die Verarbeitungslogik die Hystereseüberprüfung anwenden, wenn sich der Systemparameterwert um einen Schwellenbetrag gegenüber einem Satz vorheriger Ablesungen des Systemparameterwerts geändert hat. In anderen Ausführungsformen kann die Verarbeitungslogik die Hystereseüberprüfung anwenden, wenn sich der Systemparameterwert um einen Schwellenbetrag gegenüber einer Berechnung, die auf einem Satz vorheriger Ablesungen des Systemparameterwerts basiert, wie etwa einem Durchschnittswert, einem Mittel, einem Boxcar-Mittelwert oder dergleichen, geändert hat.
  • In einer anderen Ausführungsform führt die Verarbeitungslogik die Hystereseüberprüfung durch, indem sie sicherstellt, dass sich in der Schwelle zwischen zwei Betriebszuständen keine Messschwankungen befinden. Auf einen Messwert kann ein Hysteresekorrekturfaktor angewendet werden, das System von einem niedrigeren Leistungspegel zu einem höheren Leistungspegel übergeht, um fehlerhafte Ablesungen zu verhindern, die auslösen könnten, dass das System Leistungspegel basierend auf einer inkorrekten Ablesung verschiebt. Eine solche Hystereseüberprüfung kann einen zusätzlichen Schutz bereitstellen, wenn das System einen Leistungspegel erhöht oder den Systembetriebszustand ändert.
  • Die Verarbeitungslogik überprüft, ob der aus dem Sensor ausgelesene Systemparameterwert innerhalb eines Schwellenbereichs eines alten Betriebszustands liegt (Block 406). Der alte Betriebszustand entspricht der vorherigen Ablesung des Systemparameterwerts. Der Schwellenbereich von Systemparameterwerten entspricht einem gegebenen OC. In einer Ausführungsform liegt der Schwellenbereich zwischen einem ersten Systemparameterwert und einem zweiten Systemparameterwert. In einer anderen Ausführungsform liegt der Schwellenbereich unter einem Schwellensystemparameterwert. In einer anderen Ausführungsform liegt der Schwellenbereich über einem Schwellensystemparameterwert. Falls der aus dem Sensor ausgelesene Systemparameterwert innerhalb der Schwelle des alten OC liegt, bleibt ein Betriebszustand des Systemparameterwerts unverändert und das Verfahren 400 endet. Falls der aus dem Sensor ausgelesene Systemparameterwert nicht innerhalb der Schwelle des alten OC liegt, wird der Betriebszustand des Systemparameterwerts geändert. Die Verarbeitungslogik aktualisiert den alten Betriebszustand auf den geänderten Betriebszustand des Systemparameterwerts, der aus dem Sensor ausgelesen wurde (Block 408). Das Verfahren 400 endet. Wenn das Verfahren 400 endet, führt die Verarbeitungslogik den Block 306 aus 3 aus.
  • 5 ist ein Ablaufdiagramm eines Verfahrens 500 zur Entprellung bei einer dynamischen Leistungsdrosselung gemäß einer Ausführungsform. Das Verfahren 500 kann durch eine Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Schaltkreise, eine dedizierte Logik, eine programmierbare Logik, einen Mikrocode usw.), Software, Firmware oder eine Kombination daraus beinhaltet. In einer Ausführungsform kann das Verfahren 500 durch eine beliebige der hierin beschriebenen Verarbeitungsvorrichtungen durchgeführt werden. In einer Ausführungsform wird das Verfahren 200 durch eine Verarbeitungslogik eines USB-Controllers, wie etwa des USB-Controllers 102 aus 1, durchgeführt. Das Verfahren 500 wird durch die Verarbeitungslogik verwendet, um sicherzustellen, dass eine Leistungsdrosselung nicht bei inkorrekten oder fehlerhaften Systemparameterwertablesungen auftritt. Mehrere Abtastungen von Systemparametern werden berücksichtigt, um sicherzustellen, dass ein Systembetriebszustand nicht anhand einer einzelnen oder einiger weniger inkorrekter Ablesungen bestimmt wird.
  • Erneut bezugnehmend auf 5 beginnt das Verfahren 500 mit Block 314 aus 3. Die Verarbeitungslogik vergleicht den aktuellen Betriebszustand mit dem Systembetriebszustand, wie mit Bezug auf 3 beschrieben. Die Verarbeitungslogik fährt mit einer Entprellung fort (Block 502), wenn der aktuelle Betriebszustand nicht der gleiche wie der System-OC ist. In einer Ausführungsform werden Systemparameterwerte zu mehreren Zeitpunkten gelesen und dann verglichen, um sicherzustellen, dass nicht eine einzelne oder einige wenige inkorrekte Ablesungen den System-OC bestimmen. Die Entprellung wird durchgeführt, um das dynamische Leistungsdrosselungsverfahren 300 gegenüber kurzzeitigen Systemparameterwertänderungen robust zu machen. Während der Entprellung werden die Systemparameterwerte zu einem späteren Zeitpunkt erneut abgetastet und es wird der aktuelle Entprellungsbetriebszustand bestimmt (Block 504). Der spätere Zeitpunkt kann zu einer Zeit auftreten, die kürzer ist als das Zeitintervall, mit dem die Systemparameter abgetastet werden. Mit anderen Worten werden während der Entprellung die Systemparameterwerte früher abgetastet, als sie ohne Entprellung erneut abgetastet worden wären. Die Verarbeitungslogik vergleicht den aktuellen Entprellungsbetriebszustand mit dem aktuellen Betriebszustand (Block 506). Falls der aktuelle Entprellungsbetriebszustand zu dem späteren Zeitpunkt der gleiche wie der aktuelle OC ist, dann aktualisiert die Verarbeitungslogik den Systembetriebszustand auf den aktuellen Betriebszustand (Block 508) und das Verfahren 500 endet.
  • 6 ist ein Ablaufdiagramm einer Zuordnung 600 zwischen Betriebszustand und Leistungsbudgetwert bei einer dynamischer Leistungsdrosselung gemäß einer Ausführungsform. Block 508 ist der Block 508 aus 4. Die Zuordnung 600 kann vorkonfiguriert werden, um Anforderungen eines Endbenutzers gerecht zu werden. Der Firmware-Algorithmus zur dynamischen Leistungsdrosselung trifft keine Annahmen über Leistungspegel, die jedem Betriebszustandspegel entsprechen. Die Zuordnung 600 kann in einem Speicher eines Controllers, wie etwa des USB-Controllers 102 aus 1, gespeichert werden. Der Controller kann ein Controller eines Systems, wie etwa des USB-C/PD-Systems 100 aus 1, sein.
  • Nachdem der Controller einen Leistungspegel des Systems berechnet hat, können Systemeinstellungen und Leistungsdatenobjekte (PDOs, Power Data Objects) aktualisiert werden, sodass sie neue Leistungswerte widerspiegeln. Mehrere Betriebszustände können verschiedenen Leistungspegeln entsprechen. Ein erster Betriebszustand kann einem ersten Leistungspegel entsprechen (Block 602), ein zweiter Betriebszustand kann einem zweiten Leistungspegel entsprechen, ein dritter Betriebszustand kann einem dritten Leistungspegel entsprechen usw., und ein N-ter Betriebszustand kann einem N-ten Leistungspegel entsprechen (Block 604). Als ein Beispiel gibt es vier Betriebszustände, bei denen ein erster Betriebszustand einem Leistungspegel von 100 % entspricht, ein zweiter Betriebszustand einem Leistungspegel von 50 % entspricht, ein dritter Betriebszustand einem Leistungspegel von 15 Watt (W) entspricht und ein vierter Betriebszustand einem Leistungspegel von 0 W (z. B. Abschaltung) entspricht. Als ein anderes Beispiel gibt es vier Betriebszustände, bei denen ein erster Betriebszustand einem Leistungspegel von 100 % entspricht, ein zweiter Betriebszustand einem Leistungspegel von 50 % entspricht, ein dritter Betriebszustand einem Leistungspegel von 25 % entspricht und ein vierter Betriebszustand einem Leistungspegel von 0 W (z. B. Abschaltung) entspricht. In anderen Ausführungsformen entspricht jeder Betriebszustand einem eindeutigen Leistungspegel. In einer Ausführungsform entspricht der erste Betriebszustand einem Leistungspegel von 100 % und der N-te Betriebszustand einem Leistungspegel von 0 W (z. B. Abschaltung), bei dem das System nicht länger arbeitet.
  • In einer Ausführungsform ist die Zuordnung 600 vorkonfiguriert und als Teil des Firmware-Algorithmus zur dynamischen Leistungsdrosselung gespeichert. In einer anderen Ausführungsform kann ein Endbenutzer die Zuordnung 600 dynamisch konfigurieren, um Benutzeranforderungen gerecht zu werden.
  • 7 ist ein Funktionsdiagramm eines Systems 700 gemäß einer Ausführungsform, das eine Leistungsdrosselung mit einem Systemparameter durchführt. In einer Ausführungsform kann das System 700 ein USB-Typ-C/PD-System sein. In einer anderen Ausführungsform kann das System 700 ein Mikro-USB-PD-System sein. In anderen Ausführungsformen ist das System 700 ein PD-System. Das System 700 umfasst einen Controller 702 und einen Port 712. Eine Vorrichtung 708 ist mit dem Port 712 verbunden. Der Controller 702 umfasst einen Speicher, um einen Firmware-Algorithmus zur dynamischen Leistungsdrosselung und eine Zuordnung zwischen Betriebszustand und Leistungspegel, die einen Leistungsbudgetwert spezifiziert, wie etwa die Zuordnung 600 aus 6, zu speichern. Der Controller 702 umfasst eine Verarbeitungslogik, um den Firmware-Algorithmus auszuführen und Verfahren, wie etwa das Verfahren 200 aus 2, das Verfahren 300 aus 3, das Verfahren 400 aus 4 und das Verfahren 500 aus 5, durchzuführen. 7 illustriert das System 700 zu zwei unterschiedlichen Zeitpunkten. System 700a ist das System 700 zu einem ersten Zeitpunkt. System 700b ist das System 700 zu einem zweiten Zeitpunkt.
  • Eine Zuordnung 710, wie in 7 gezeigt, ordnet Folgendes einander zu: i) einen ersten Betriebszustand, der einem ersten Leistungspegel entspricht, einem ersten Leistungsbudgetwert, wenn der Systemparameterwert 704a kleiner als ein erster Schwellenwert ist, ii) einen zweiten Betriebszustand, der einem zweiten Leistungspegel entspricht, einem zweiten Leistungsbudgetwert, wenn der Systemparameterwert zwischen dem ersten Schwellenwert und einem zweiten Schwellenwert liegt, iii) einen dritten Betriebszustand, der einem dritten Leistungspegel entspricht, einem dritten Leistungsbudgetwert, wenn der Systemparameterwert zwischen dem zweiten Schwellenwert und einem dritten Schwellenwert liegt, und iv) einen vierten Betriebszustand, der einem vierten Leistungspegel entspricht, einem vierten Leistungsbudgetwert, wenn der Systemparameterwert größer als der dritte Schwellenwert ist. In anderen Ausführungsformen kann der Controller 702 mit einer Zuordnung vorkonfiguriert sein, die zwei OCs zwei Leistungspegeln, drei OCs drei Leistungspegeln usw. zuordnet. In der veranschaulichten Ausführungsform ist der Controller 702 mit einer Zuordnung 710 vorkonfiguriert, die vier OCs vier Leistungsbudgetwerten zuordnet.
  • In dem System 700a empfängt der Controller 702 zu einem ersten Zeitpunkt einen Systemparameterwert 704a als einen Eingang. In der veranschaulichten Ausführungsform ist der Systemparameterwert 704a eine Temperatur. In anderen Ausführungsformen kann der Systemparameter eine Eingangsspannung, eine Batteriespannung, eine Ausgangsspannung, eine Kabelverlustmetrik, Feuchtigkeit oder ein anderer messbarer Parameter sein. Der Controller 702 empfängt den Systemparameterwert 704a (35 Grad Celsius (°C)) als einen Eingang und bestimmt, dass der Systemparameterwert 704a unter dem ersten Schwellenwert (45 °C) liegt, und bestimmt, dass der Betriebszustand der erste Betriebszustand (OC1) ist. Der Controller 702 bestimmt, dass der erste Betriebszustand dem ersten Leistungsbudgetwert (100 % Leistungsbudget) entspricht, und aktualisiert Systemeinstellungen, sodass der Port 712 einer Vorrichtung 708 den ersten Leistungsbudgetwert bereitstellen kann.
  • In dem System 700b empfängt der Controller 702 zu einem zweiten Zeitpunkt einen Systemparameterwert 704b als einen Eingang. Der zweite Zeitpunkt unterscheidet sich von dem ersten Zeitpunkt. In einer Ausführungsform kann der erste Zeitpunkt sein, wenn das System 700 initialisiert wird, und kann der zweite Zeitpunkt während des Betriebs des Systems 700 sein. In anderen Ausführungsformen kann der erste Zeitpunkt während des Betriebs des Systems 700 sein und der zweite Zeitpunkt später während des Betriebs des Systems 700 sein. Der Controller 702 empfängt den Systemparameterwert 704b (80 °C) als einen Eingang und bestimmt, dass der Systemparameterwert 704b zwischen dem zweiten Schwellenwert (60 °C) und dem dritten Schwellenwert (85 °C) liegt, und bestimmt, dass der Betriebszustand der dritte Betriebszustand (OC3) ist. Der Controller 702 bestimmt, dass der dritte Betriebszustand dem dritten Leistungsbudgetwert (15 W) entspricht. Der Controller 702 führt ein Entprellungsverfahren, wie etwa das Verfahren 500 aus 5, durch, um sicherzustellen, dass die Änderung des Betriebszustands zwischen dem ersten Zeitpunkt und dem zweiten Zeitpunkt gültig ist. Dann aktualisiert der Controller 702 die Systemeinstellungen, sodass der Port 712 der Vorrichtung 708 den dritten Budgetpegel bereitstellen kann.
  • 8A ist ein Funktionsdiagramm eines Systems 800a gemäß einer Ausführungsform, das eine dynamische Leistungsdrosselung mit vier Systemparametern durchführt. Das System 800 kann das gleiche oder ähnlich wie das System 700 sein, wie durch ähnliche Bezugszeichen verdeutlicht. Der Controller 702 umfasst einen Speicher, um einen Firmware-Algorithmus zur dynamischen Leistungsdrosselung und eine Zuordnung zwischen Betriebszustand und Leistungsbudgetwert, wie etwa die Zuordnung 600 aus 6, zu speichern. Der Controller 702 umfasst eine Verarbeitungslogik, um den Firmware-Algorithmus auszuführen und Verfahren, wie etwa das Verfahren 200 aus 2, das Verfahren 300 aus 3, das Verfahren 400 aus 4 und das Verfahren 500 aus 5, durchzuführen.
  • In einer Ausführungsform empfängt der Controller 702 einen ersten Systemparameterwert 804a, einen zweiten Systemparameterwert 805a, einen dritten Systemparameterwert 806a und einen vierten Systemparameterwert 807a. Der erste Systemparameterwert 804a ist eine Temperatur, die an einem ersten räumlichen Ort eines USB-PD-Systems gemessen werden kann. Der zweite Systemparameterwert 805a ist eine Temperatur, die an einem zweiten räumlichen Ort des USB-PD-Systems gemessen werden kann. Der dritte Systemparameterwert 806a ist eine Eingangsbatteriespannung, die der Controller 702 an einem Leistungseingang des USB-PD-Systems messen kann. Der vierte Systemparameterwert 807a kann ein beliebiger messbarer Systemparameter sein.
  • Die Zuordnung ordnet einen ersten Betriebszustand (OC1) einem ersten Leistungsbudgetwert (100 % Leistung), einen zweiten Betriebszustand (OC2) einem zweiten Leistungsbudgetwert (50 % Leistung), einen dritten Betriebszustand (OC3) einem dritten Leistungsbudgetwert (15 W Leistung) und einen vierten Betriebszustand (OC4) einem vierten Leistungsbudgetwert (Abschaltung) zu. Die Betriebszustände, die einem jeweiligen Systemparameter entsprechen, können unabhängig voneinander konfiguriert werden. Beispielsweise können in einer Ausführungsform für den ersten Systemparameter OC1, OC2 und OC4 konfiguriert sein, während für den zweiten Systemparameter OC2 und OC3 konfiguriert sind. Ferner ist eine Schwelle, die jedem Betriebszustand für jeden Systemparameter entspricht, konfigurierbar. Beispielsweise kann in einer Ausführungsform der Betriebszustand für den ersten Systemparameter Folgendes sein: i) ein erster Betriebszustand, wenn der erste Systemparameterwert kleiner als ein erster Schwellenwert ist, ii) ein zweiter Betriebszustand, wenn der erste Systemparameterwert zwischen dem ersten Schwellenwert und einem zweiten Schwellenwert liegt, iii) ein dritter Betriebszustand, wenn der erste Systemparameterwert zwischen dem zweiten Schwellenwert und einem dritten Schwellenwert liegt, und iv) ein vierter Betriebszustand, wenn der erste Systemparameterwert größer als der dritte Schwellenwert ist, während der Betriebszustand für den zweiten Systemparameter Folgendes sein kann: i) der erste Betriebszustand, wenn der zweite Systemparameterwert kleiner als ein vierter Schwellenwert ist, ii) der zweite Betriebszustand, wenn der zweite Systemparameterwert zwischen dem vierten Schwellenwert und einem fünften Schwellenwert liegt, iii) der dritte Betriebszustand, wenn der zweite Systemparameterwert zwischen dem fünften Schwellenwert und einem sechsten Schwellenwert liegt, und iv) der vierte Betriebszustand, wenn der zweite Systemparameterwert größer als der sechste Schwellenwert ist, und so weiter. Beispielsweise kann in einer anderen Ausführungsform der Betriebszustand für den ersten Systemparameter Folgendes sein: i) der erste Betriebszustand, wenn der erste Systemparameterwert in einem ersten Wertebereich liegt, ii) der zweite Betriebszustand, wenn der erste Systemparameterwert in einem zweiten Wertebereich liegt, iii) der dritte Betriebszustand, wenn der erste Systemparameterwert in einem dritten Wertebereich liegt, und iv) der vierte Betriebszustand, wenn der erste Systemparameterwert in einem vierten Wertebereich liegt, während der Betriebszustand für den zweiten Systemparameter Folgendes sein kann: i) der erste Betriebszustand, wenn der zweite Systemparameterwert in einem fünften Wertebereich liegt, ii) der zweite Betriebszustand, wenn der zweite Systemparameterwert in einem sechsten Wertebereich liegt, iii) der dritte Betriebszustand, wenn der zweite Systemparameterwert in einem siebten Wertebereich liegt, und iv) der vierte Betriebszustand, wenn der zweite Systemparameterwert in einem achten Wertebereich liegt, und so weiter.
  • In der veranschaulichten Ausführungsform bestimmt der Controller 702, dass ein Betriebszustand des ersten Systemparameters mit dem ersten Systemparameterwert 804a der erste Betriebszustand (OC1) ist, ein Betriebszustand des zweiten Systemparameters mit dem zweiten Systemparameterwert 805a der erste Betriebszustand ist, ein Betriebszustand des dritten Systemparameters mit dem dritten Systemparameterwert 806a der erste Betriebszustand ist und ein Betriebszustand des vierten Systemparameters mit dem vierten Systemparameterwert 807a der erste Betriebszustand ist. Der Controller 702 stellt als Systembetriebszustand den ersten Betriebszustand ein, der dem ersten Leistungsbudgetwert (100 % Leistung) entspricht. Der Controller 702 aktualisiert Systemeinstellungen, sodass der Port 712 einer Vorrichtung 708 den ersten Leistungsbudgetwert bereitstellen kann.
  • 8B ist ein Funktionsdiagramm eines Systems 800b gemäß einer Ausführungsform, das eine dynamische Leistungsdrosselung mit vier Systemparametern durchführt. Das System 800b ist das gleiche wie das System 800a aus 8A. Der Controller 702 empfängt einen ersten Systemparameterwert 804b, einen zweiten Systemparameterwert 805b, einen dritten Systemparameterwert 806b und einen vierten Systemparameterwert 807b. Der Controller 702 bestimmt, dass ein Betriebszustand des ersten Systemparameters mit dem ersten Systemparameterwert 804b der erste Betriebszustand (OC1) ist, ein Betriebszustand des zweiten Systemparameters mit dem zweiten Systemparameterwert 805b der zweite Betriebszustand (OC2) ist, ein Betriebszustand des dritten Systemparameters mit dem dritten Systemparameterwert 806b der erste Betriebszustand ist und ein Betriebszustand des vierten Systemparameters mit dem vierten Systemparameterwert 807b der erste Betriebszustand ist. Da sich der Betriebszustand des zweiten Systemparameters geändert hat (von dem ersten Betriebszustand in 8A zu dem zweiten Betriebszustand in 8B), wendet der Controller 702 eine Hystereseüberprüfung an, wie mit Bezug auf 4 beschrieben, um sicherzustellen, dass die Betriebszustandsänderung gültig ist. Der Controller 702 stellt als aktuellen Betriebszustand den zweiten Betriebszustand, der dem zweiten Leistungsbudgetwert entspricht, ein, da der zweite Betriebszustand kritischer als der erste Betriebszustand ist. Falls sich der aktuelle Betriebszustand und der Systembetriebszustand unterscheiden, beginnt der Controller 702 ein Entprellungsverfahren, um sicherzustellen, dass die Betriebszustandsänderung nicht durch eine fehlerhafte Systemparametermessung ausgelöst wird. Das Entprellungsverfahren ist mit Bezug auf 3 genauer beschrieben. Sobald der Controller 702 bestimmt hat, dass die Betriebszustandsänderung nicht durch eine fehlerhafte Systemparametermessung ausgelöst wird, aktualisiert der Controller 702 Systemeinstellungen, sodass der Port 712 der Vorrichtung 708 den zweiten Leistungsbudgetwert (50 % Leistung) bereitstellen kann.
  • 8C ist ein Funktionsdiagramm eines Systems 800c gemäß einer Ausführungsform, das eine dynamische Leistungsdrosselung mit vier Systemparametern durchführt. Das System 800c ist das gleiche wie das System 800a aus 8A und das System 800b aus 8B. Der Controller 702 empfängt einen ersten Systemparameterwert 804c, einen zweiten Systemparameterwert 805c, einen dritten Systemparameterwert 806c und einen vierten Systemparameterwert 807c. Der Controller 702 bestimmt, dass ein Betriebszustand des ersten Systemparameters mit dem ersten Systemparameterwert 804c der erste Betriebszustand (OC1) ist, ein Betriebszustand des zweiten Systemparameters mit dem zweiten Systemparameterwert 805c der zweite Betriebszustand (OC2) ist, ein Betriebszustand des dritten Systemparameters mit dem dritten Systemparameterwert 806c der dritte Betriebszustand (OC3) ist und ein Betriebszustand des vierten Systemparameters mit dem vierten Systemparameterwert 807c der erste Betriebszustand ist. Da sich der Betriebszustand des dritten Systemparameters geändert hat (von dem ersten Betriebszustand in 8B zu dem dritten Betriebszustand in 8C), wendet der Controller 702 eine Hystereseüberprüfung an, wie mit Bezug auf 4 beschrieben, um sicherzustellen, dass die Betriebszustandsänderung gültig ist. Der Controller 702 stellt als aktuellen Betriebszustand den dritten Betriebszustand, der dem dritten Leistungsbudgetwert entspricht, ein, da der dritte Betriebszustand kritischer als der erste Betriebszustand und der zweite Betriebszustand ist. Falls sich der aktuelle Betriebszustand und der Systembetriebszustand unterscheiden, beginnt der Controller 702 ein Entprellungsverfahren, um sicherzustellen, dass die Betriebszustandsänderung nicht durch eine fehlerhafte Systemparametermessung ausgelöst wird. Das Entprellungsverfahren ist mit Bezug auf 3 genauer beschrieben. Sobald der Controller 702 bestimmt hat, dass die Betriebszustandsänderung nicht durch eine fehlerhafte Systemparametermessung ausgelöst wird, aktualisiert der Controller 702 Systemeinstellungen, sodass der Port 712 der Vorrichtung 708 den dritten Leistungsbudgetwert (15 W Leistung) bereitstellen kann.
  • 8D ist ein Funktionsdiagramm eines Systems 800d gemäß einer Ausführungsform, das eine dynamische Leistungsdrosselung mit vier Systemparametern durchführt. Das System 800d ist das gleiche wie das System 800a aus 8A, das System 800b aus 8B und das System 800c aus 8C. Der Controller 702 empfängt einen ersten Systemparameterwert 804d, einen zweiten Systemparameterwert 805d, einen dritten Systemparameterwert 806d und einen vierten Systemparameterwert 807d. Der Controller 702 bestimmt, dass ein Betriebszustand des ersten Systemparameters mit dem ersten Systemparameterwert 804d der erste Betriebszustand (OC1) ist, ein Betriebszustand des zweiten Systemparameters mit dem zweiten Systemparameterwert 805d der zweite Betriebszustand (OC2) ist, ein Betriebszustand des dritten Systemparameters mit dem dritten Systemparameterwert 806d der dritte Betriebszustand (OC3) ist und ein Betriebszustand des vierten Systemparameters mit dem vierten Systemparameterwert 807d der vierte Betriebszustand (OC4) ist. Da sich der Betriebszustand des vierten Systemparameterwerts 807a geändert hat (von dem ersten Betriebszustand in 8C zu dem vierten Betriebszustand in 8D), wendet der Controller 702 eine Hystereseüberprüfung an, wie mit Bezug auf 4 beschrieben, um sicherzustellen, dass die Betriebszustandsänderung gültig ist. Der Controller 702 stellt als aktuellen Betriebszustand den vierten Betriebszustand, der dem vierten Leistungsbudgetwert (Abschaltung) entspricht, ein, da der dritte Betriebszustand kritischer als der erste Betriebszustand und der zweite Betriebszustand ist. Falls sich der aktuelle Betriebszustand und der Systembetriebszustand unterscheiden, beginnt der Controller 702 ein Entprellungsverfahren, um sicherzustellen, dass die Betriebszustandsänderung nicht durch eine fehlerhafte Systemparametermessung ausgelöst wird. Das Entprellungsverfahren ist mit Bezug auf 3 genauer beschrieben. Sobald der Controller 702 bestimmt hat, dass die Betriebszustandsänderung nicht durch eine fehlerhafte Systemparametermessung ausgelöst wird, aktualisiert der Controller 702 Systemeinstellungen, sodass der Port 712 der Vorrichtung 708 den dritten Leistungsbudgetwert bereitstellen kann.
  • 9 ist ein Ablaufdiagramm eines Verfahrens 900 zum Aktualisieren von Systemfähigkeiten gemäß einer Ausführungsform. Das Verfahren 900 kann durch eine Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Schaltkreise, eine dedizierte Logik, eine programmierbare Logik, einen Mikrocode usw.), Software, Firmware oder eine Kombination daraus beinhaltet. In einer Ausführungsform kann das Verfahren 900 durch eine beliebige der hierin beschriebenen Verarbeitungsvorrichtungen durchgeführt werden. In einer Ausführungsform wird das Verfahren 900 durch eine Verarbeitungslogik eines USB-Controllers, wie etwa des USB-Controllers 102 aus 1, durchgeführt. In einer anderen Ausführungsform wird das Verfahren 900 durch den Controller 702 aus 7 und 8 durchgeführt. In einer Ausführungsform führt der USB-Controller einen Firmware-Algorithmus aus, der die folgenden Operationen durchführt. In einer anderen Ausführungsform weist der USB-Controller einen eingebetteten Code oder eine eingebettete Logik auf und ist konfiguriert, um Anweisungen auszuführen, um die folgenden Operationen durchzuführen. Das Verfahren 900 kann durchgeführt werden, wenn für einen Port ein Leistungsbudgetpegel eingestellt oder spezifiziert wird. Der USB-Controller stellt eine Leistungseinstellung des Ports ein, wenn sich ein Systembetriebszustand ändert, wie beispielsweise mit Bezug auf 7 und 8A-8D beschrieben. Der USB-Controller kann einen ersten Systembetriebszustand, der einem ersten Leistungspegel entspricht, bestimmen, indem er Daten für einen oder mehrere Systemparameter erhält. Dann kann der USB-Controller zusätzliche Daten für den einen oder die mehreren Systemparameter erhalten und einen zweiten Betriebszustand bestimmen, der einem zweiten Leistungspegel entspricht. In einer Ausführungsform bestimmt der USB-Controller, dass der erste Betriebszustand und der zweite Betriebszustand die gleichen sind, und der USB-Controller aktualisiert eine Leistungseinstellung des Systems nicht. In einer anderen Ausführungsform bestimmt der USB-Controller, dass sich der erste Betriebszustand und der zweite Betriebszustand unterscheiden, und der USB-Controller führt das Verfahren 900 durch, um die Leistungseinstellung des Systems auf den zweiten Leistungspegel einzustellen.
  • Erneut bezugnehmend auf 9 beginnt das Verfahren 900 damit, dass der USB-Controller eine PDO- oder Systemeinstellungsaufstellung bildet (Block 902). In einer Ausführungsform kann das System eine Liste mit Spannungs- und Strompegeln bilden, die es unterstützen kann, um den erforderlichen Leistungspegel zu erzielen. In anderen Ausführungsformen hat das System die Liste gespeichert und ruft sie auf. Das PDO informiert eine mit dem Port verbundene Senkenvorrichtung über die Fähigkeiten des Ports, Leistung bereitzustellen. In einer Ausführungsform aktualisiert der USB-Controller eine PDO-Spannung. In einer anderen Ausführungsform aktualisiert der USB-Controller einen PDO-Strom. Die Senkenvorrichtung kann eine Leistung von dem Port anfordern, indem sie ein angefordertes Datenobjekt (RDO, Requested Data Object) sendet. In einer Ausführungsform sendet die Senkenvorrichtung eine RDO-Spannung. In einer anderen Ausführungsform sendet die Senkenvorrichtung einen RDO-Strom. In einer Ausführungsform ist der zweite Leistungspegel ein voller Leistungspegel (z. B. ein maximaler Leistungsbetrag, den der Port der Senkenvorrichtung bereitstellen kann) und der USB-Controller aktualisiert das PDO auf den vollen Leistungspegel. In einer anderen Ausführungsform ist der zweite Leistungspegel kleiner als der volle Leistungspegel und der USB-Controller aktualisiert das PDO auf den zweiten Leistungspegel.
  • Der USB-Controller bestimmt, ob es erforderlich ist, ein individuelles PDO zu generieren oder nicht (Block 904). In einer Ausführungsform generiert der USB-Controller individuelle PDOs (Block 906). In einer anderen Ausführungsform generiert der USB-Controller PDOs aus einer Spezifikation (Block 908). Basierend auf den generierten PDOs bestimmt der USB-Controller, ob ein maximaler Strom, der der Senkenvorrichtung bereitgestellt werden soll, begrenzt werden soll (Block 910). In einer Ausführungsform bestimmt der USB-Controller, dass er den maximalen Strom nicht begrenzen muss, und aktualisiert die Systemeinstellungen auf den berechneten Leistungspegel (z. B. den zweiten Leistungspegel, wenn der zweite Leistungspegel der volle Leistungspegel ist) (Block 912) und das Verfahren 900 endet. In einer anderen Ausführungsform bestimmt der USB-Controller, dass er den maximalen Strom begrenzen muss (z. B. wenn der zweite Leistungspegel kleiner als der volle Leistungspegel ist), und aktualisiert die maximale Stromeinstellung, indem er das PDO aktualisiert (Block 914). Dann aktualisiert der USB-Controller die Systemeinstellungen auf den berechneten Leistungspegel (z. B. den zweiten Leistungspegel, wenn der zweite Leistungspegel kleiner als der volle Leistungspegel ist) (Block 912) und das Verfahren 900 endet.
  • 10 ist ein Blockdiagramm eines Systemkontext- und Lösungsstapel-Layouts 1000 einer dynamischen Leistungsdrosselung gemäß einer Ausführungsform. Ein Firmware-Algorithmus 1002 zur dynamischen Leistungsdrosselung sitzt in einer Anwendungsschicht 1004 eines Teilsystems. Der Firmware-Algorithmus 1002 zur dynamischen Leistungsdrosselung kann durch ein USB-C/PD-System implementiert werden, welches einen Mechanismus erfordert, mit dem eine Gesamtsystemleistung basierend auf einem aktuellen Status von Systemparametern verwaltet werden kann. Eine Gesamtanzahl N von Systemparametern, die von Systemparameter 1 1006 bis zu Systemparameter N 1008 reichen, sind Eingänge für den Firmware-Algorithmus 1002 zur dynamischen Leistungsdrosselung. Die Gesamtanzahl von Systemparametern kann beliebige Systemstimuli oder -parameter oder eine beliebige Kombination von Systemstimuli oder -parametern umfassen. Die Anwendungsschicht 1004 kann auch eine Lösungsschicht sein. Die Anwendungsschicht 1004 ist eine Abstraktionsschicht eines Kommunikationsnetzwerks, wie etwa des Kommunikationsnetzwerks zwischen einem USB-Controller und einem USB-Port, die gemeinsam genutzte Kommunikationsprotokolle und Schnittstellenverfahren spezifiziert. Die Anwendungsschicht 1004 hängt von einer Richtlinienschicht 1010 ab. Die Richtlinienschicht 1010 hängt von einer Protokollschicht 1012 ab. Die Protokollschicht 1012 hängt von einer physischen Schicht 1014 ab. Die physische Schicht 1014 kann für Übertragung und Empfang von Kommunikationsdaten verantwortlich sein. Die Anwendungsschicht 1004 kann einen vorherrschenden Betriebszustand konfigurieren und bestimmen. Die Richtlinienschicht 1010 kann Spezifikationsrichtlinien implementieren und über die Protokollschicht 1012 und die physische Schicht 1014 (z. B. physische Kommunikationsschicht) mit dem Port kommunizieren.
  • 11 ist ein Ablaufdiagramm eines Verfahrens 1100 zum Aktualisieren von Systemfähigkeiten gemäß einer Ausführungsform. Das Verfahren 1100 kann durch eine Verarbeitungslogik durchgeführt werden, die Hardware (z. B. Schaltkreise, eine dedizierte Logik, eine programmierbare Logik, einen Mikrocode usw.), Software, Firmware oder eine Kombination daraus beinhaltet. In einer Ausführungsform kann das Verfahren 1100 durch eine beliebige der hierin beschriebenen Verarbeitungsvorrichtungen durchgeführt werden. In einer Ausführungsform wird das Verfahren 1100 durch eine Verarbeitungslogik eines USB-Controllers, wie etwa des USB-Controllers 102 aus 1, durchgeführt. In einer anderen Ausführungsform wird das Verfahren 900 durch den Controller 702 aus 7 und 8 durchgeführt. In einer Ausführungsform führt der USB-Controller einen Firmware-Algorithmus aus, der die folgenden Operationen durchführt. In einer anderen Ausführungsform weist der USB-Controller einen eingebetteten Code oder eine eingebettete Logik auf und ist konfiguriert, um Anweisungen auszuführen, um die folgenden Operationen durchzuführen.
  • Erneut bezugnehmend auf 11 startet das Verfahren 1100 damit, dass die Verarbeitungslogik Daten für einen oder mehrere Systemparameter eines Systems erhält (Block 1102). In einer Ausführungsform ist das System ein USB-C/PD-System. In einer anderen Ausführungsform ist das System ein Multiport-USB-C/PD-System. In anderen Ausführungsformen kann das System ein Mikro-USB/PD-System oder ein anderes PD-System sein. Der eine oder die mehreren Systemparameter sind mindestens eines von einer Temperatur, einer Eingangsspannung, einer Ausgangsspannung, einer Kabelverlustmetrik, Feuchtigkeit oder dergleichen. Die Verarbeitungslogik bestimmt einen Systembetriebszustand basierend auf den Daten für den einen oder die mehreren Systemparameter (Block 1104). Der Systembetriebszustand ist ein Stresszustand, der bestimmt wird, wenn das Liefern eines vollen Leistungspegels des Systems zu einem ineffizienten Betrieb des Systems, Schäden an einem Port des Systems, einer Störung des Systems, einer durchgebrannten Sicherung des Systems oder dergleichen führen kann. Die Verarbeitungslogik bestimmt einen Leistungspegel, der dem Systembetriebszustand entspricht (Block 1106). Der Leistungspegel entspricht dem Systembetriebszustand. In einer Ausführungsform ist der Leistungspegel ein voller Leistungspegel, der einem maximalen Leistungsbetrag entspricht, der durch den Port geliefert werden kann. In einer anderen Ausführungsform ist der Leistungspegel kleiner als der volle Leistungspegel. Die Verarbeitungslogik stellt eine Leistungseinstellung des Systems auf den Leistungspegel ein (Block 1108) und das Verfahren 1100 endet. Der Leistungspegel wird als ein Leistungsbudgetwert spezifiziert. In einer Ausführungsform ist der Leistungsbudgetwert ein Prozentsatz des vollen Leistungspegels. In einer anderen Ausführungsform ist der Leistungsbudgetwert ein Bruchteil des vollen Leistungspegels. In einer anderen Ausführungsform ist der Leistungsbudgetwert ein Leistungsbetrag, der durch den Port geliefert werden kann. In einer anderen Ausführungsform ist der Leistungsbudgetwert ein maximaler Leistungsbetrag. Als ein Beispiel kann das Verfahren 1100 im Fall einer Senkenvorrichtung, falls sich die Temperatur erhöht, bewirken, dass das System den Systembetriebszustand auf einen Betriebszustand einstellt, der einem niedrigeren Leistungsbudgetwert entspricht, um eine Störung der Senkenvorrichtung zu verhindern und um die Effizienz bei der höheren Temperatur zu erhöhen.
  • In einer anderen Ausführungsform erhält die Verarbeitungslogik, um die Daten zu erhalten, einen mit dem System assoziierten Temperaturwert. Die Verarbeitungslogik erhält ferner eine mit dem System assoziierte Eingangsspannung. Um den Systembetriebszustand zu bestimmen, vergleicht die Verarbeitungslogik den Temperaturwert mit einem Satz einer oder mehrerer Temperaturschwellen, und die Verarbeitungslogik vergleicht den Eingangsspannungswert mit einem Satz einer oder mehrerer Spannungsschwellen. Die Verarbeitungslogik identifiziert den Systembetriebszustand basierend auf den Vergleichen des Temperaturwerts mit dem Satz einer oder mehrerer Temperaturschwellen und der Eingangsspannung mit dem Satz einer oder mehrerer Spannungsschwellen. Die Verarbeitungslogik bestimmt als Systembetriebszustand einen kritischsten oder am wenigsten stabilen Betriebszustand, der dem niedrigsten Leistungspegel entspricht. In einer Ausführungsform bestimmt die Verarbeitungslogik einen ersten Betriebszustand, der einem ersten Leistungspegel entspricht, für den Temperaturwert und einen zweiten Betriebszustand, der einem zweiten Leistungspegel entspricht, der kleiner als der erste Leistungspegel ist, für den Eingangsspannungswert und bestimmt, dass der Systembetriebszustand der zweite Betriebszustand ist. In einer anderen Ausführungsform bestimmt die Verarbeitungslogik einen ersten Betriebszustand, der einem ersten Leistungspegel entspricht, für den Temperaturwert und einen zweiten Betriebszustand, der einem zweiten Leistungspegel entspricht, der größer als der erste Leistungspegel ist, für den Eingangsspannungswert und bestimmt, dass der Systembetriebszustand der erste Betriebszustand ist.
  • In einer anderen Ausführungsform erhält die Verarbeitungslogik, um die Daten zu erhalten, einen ersten Wert, der mit einem ersten Parameter des einen oder der mehreren Systemparameter assoziiert ist. Um den Systembetriebszustand zu bestimmen, bestimmt die Verarbeitungslogik einen ersten Betriebszustand basierend auf dem ersten Wert. Der erste Betriebszustand entspricht einem ersten Leistungspegel. Der Systembetriebszustand ist der erste Betriebszustand.
  • In einer anderen Ausführungsform erhält die Verarbeitungslogik, um die Daten zu erhalten, einen ersten Wert, der mit einem ersten Parameter des einen oder der mehreren Systemparameter assoziiert ist. Die Verarbeitungslogik erhält einen zweiten Wert, der mit einem zweiten Parameter des einen oder der mehreren Systemparameter assoziiert ist. Um den Systembetriebszustand zu bestimmen, bestimmt die Verarbeitungslogik einen ersten Betriebszustand basierend auf dem ersten Wert und einen zweiten Betriebszustand basierend auf dem zweiten Wert. Der erste Betriebszustand entspricht einem ersten Leistungspegel und der zweite Betriebszustand entspricht einem zweiten Leistungspegel. In einer Ausführungsform bestimmt die Verarbeitungslogik, dass der zweite Leistungspegel kleiner als der erste Leistungspegel ist und die Verarbeitungslogik wählt den zweiten Betriebszustand als den Systembetriebszustand aus. In einer anderen Ausführungsform bestimmt die Verarbeitungslogik, dass der erste Leistungspegel kleiner als der zweite Leistungspegel ist und die Verarbeitungslogik wählt den ersten Betriebszustand als den Systembetriebszustand aus. In einer weiteren Ausführungsform erhält die Verarbeitungslogik einen dritten Wert, der mit einem dritten Parameter des einen oder der mehreren Systemparameter assoziiert ist. Basierend auf dem dritten Wert bestimmt die Verarbeitungslogik einen dritten Betriebszustand, der einem dritten Leistungspegel entspricht. In einer Ausführungsform bestimmt die Verarbeitungslogik, dass der dritte Leistungspegel kleiner als der zweite Leistungspegel und der erste Leistungspegel ist, und die Verarbeitungslogik wählt den dritten Betriebszustand als den Systembetriebszustand aus. In einer anderen Ausführungsform bestimmt die Verarbeitungslogik, dass der zweite Leistungspegel kleiner als der erste Leistungspegel und der dritte Leistungspegel ist, und die Verarbeitungslogik wählt den zweiten Betriebszustand als den Systembetriebszustand aus. In einer anderen Ausführungsform bestimmt die Verarbeitungslogik, dass der erste Leistungspegel kleiner als der dritte Leistungspegel und der zweite Leistungspegel ist, und die Verarbeitungslogik wählt den ersten Betriebszustand als den Systembetriebszustand aus.
  • In einer anderen Ausführungsform erhält die Verarbeitungslogik Daten, die dem einen oder den mehreren Systemparametern entsprechen. Basierend auf den Daten bestimmt die Verarbeitungslogik, dass der Systembetriebszustand ein erster Systembetriebszustand ist, der einem ersten Leistungspegel entspricht. Die Verarbeitungslogik aktualisiert einen Port-Budgefiniert des Ports auf einen ersten Port-Budgefiniert, der dem ersten Leistungspegel entspricht. Die Verarbeitungslogik erhält zusätzliche Daten für den einen oder die mehreren Systemparameter. In einer Ausführungsform erhält die Verarbeitungslogik die zusätzlichen Daten zu einem späteren Zeitpunkt. In einer anderen Ausführungsform erhält die Verarbeitungslogik die zusätzlichen Daten, wenn sie eine Änderung eines Werts für den einen oder die mehreren Systemparameter detektiert. Basierend auf den zusätzlichen Daten bestimmt die Verarbeitungslogik einen zweiten Systembetriebszustand. Die Verarbeitungslogik bestimmt einen zweiten Leistungspegel, der dem zweiten Systembetriebszustand entspricht. Die Verarbeitungslogik bestimmt, dass der erste Systembetriebszustand und der zweite Systembetriebszustand unterschiedlich sind. Die Verarbeitungslogik aktualisiert den Systembetriebszustand auf den zweiten Systembetriebszustand. Die Verarbeitungslogik stellt die Leistungseinstellung des Systems auf den zweiten Leistungspegel ein. In einer Ausführungsform ist der zweite Leistungspegel der volle Leistungspegel und die Verarbeitungslogik erhöht die Leistungseinstellung des Ports auf den vollen Leistungspegel. In einer anderen Ausführungsform ist der zweite Leistungspegel kleiner als der volle Leistungspegel und die Verarbeitungslogik ändert die Leistungseinstellung des Ports auf den zweiten Leistungspegel.
  • In einer weiteren Ausführungsform überprüft die Verarbeitungslogik, wenn die Verarbeitungslogik bestimmt, dass der erste Systembetriebszustand und der zweite Systembetriebszustand unterschiedlich sind, ob der Unterschied gültig ist. Wenn die Verarbeitungslogik detektiert, dass sich der zweite Systembetriebszustand von dem ersten Systembetriebszustand unterscheidet, tastet die Verarbeitungslogik die zusätzlichen Daten für den einen oder die mehreren Systemparameter erneut ab und bestimmt einen entsprechenden Betriebszustand. Falls der entsprechende Betriebszustand der gleiche wie der zweite Systembetriebszustand ist, bestimmt die Verarbeitungslogik, dass der Unterschied (zwischen dem ersten Systembetriebszustand und dem zweiten Systembetriebszustand) gültig ist und die Verarbeitungslogik aktualisiert den Systembetriebszustand auf den zweiten Systembetriebszustand.
  • In einer anderen Ausführungsform erhält die Verarbeitungslogik einen ersten Wert, der mit einem Parameter des einen oder der mehreren Systemparameter assoziiert ist. Basierend auf dem ersten Wert bestimmt die Verarbeitungslogik einen ersten Betriebszustand. Die Verarbeitungslogik stellt einen Betriebszustand des Parameters als den ersten Betriebszustand ein. Der erste Betriebszustand entspricht einem ersten Leistungspegel. Die Verarbeitungslogik erhält einen zweiten Wert, der mit dem Parameter assoziiert ist. Basierend auf dem zweiten Wert bestimmt die Verarbeitungslogik einen zweiten Betriebszustand, der sich von dem ersten Betriebszustand unterscheidet. Die Verarbeitungslogik überprüft, ob der Unterschied gültig ist. Die Verarbeitungslogik vergleicht den zweiten Wert mit dem ersten Wert. In einer Ausführungsform unterscheidet sich der zweite Wert um mehr als einen Schwellenbetrag von dem ersten Wert und die Verarbeitungslogik bestimmt, dass der Unterschied (zwischen dem ersten Wert und dem zweiten Wert) ein Resultat einer fehlerhaften Messung ist, und die Verarbeitungslogik aktualisiert den Betriebszustand des Parameters nicht auf den zweiten Betriebszustand. In einer anderen Ausführungsform bestimmt die Verarbeitungslogik, dass der Unterschied kleiner als der Schwellenbetrag ist, und die Verarbeitungslogik bestimmt, dass der Unterschied gültig ist, und aktualisiert den Betriebszustand auf den zweiten Betriebszustand. In einer anderen Ausführungsform bestimmt die Verarbeitungslogik, dass der Unterschied gleich dem Schwellenbetrag ist, und die Verarbeitungslogik bestimmt, dass der Unterschied ein Resultat einer fehlerhaften Messung ist, und die Verarbeitungslogik aktualisiert den Betriebszustand des Parameters nicht auf den zweiten Betriebszustand. In einer anderen Ausführungsform bestimmt die Verarbeitungslogik, dass der Unterschied gleich dem Schwellenbetrag ist, und die Verarbeitungslogik bestimmt, dass der Unterschied gültig ist, und aktualisiert den Betriebszustand auf den zweiten Betriebszustand.
  • In einer anderen Ausführungsform kann die Verarbeitungslogik den Algorithmus zur dynamischen Leistungsdrosselung in einem Controller betreiben, der sich außerhalb des Systems befindet. In einer anderen Ausführungsform sendet der externe Controller, der den einen oder die mehreren Systemparameter überwacht, den Leistungspegel oder die Leistungseinstellung über einen Kommunikationskanal an den Controller des Systems. In einer anderen Ausführungsform arbeitet die Verarbeitungslogik in dem Controller des Systems und überwacht einen Systemparameter. Die Verarbeitungslogik kann fortfahren, indem sie neue zu überwachende Parameter inkremental hinzufügt.
  • 12 ist ein Blockdiagramm, das ein System 1200 für eine USB-Vorrichtung zur Verwendung bei einer USB-Leistungsabgabe in Übereinstimmung mit einigen Ausführungsformen illustriert. Das System 1200 kann ein Peripherieteilsystem 1210 umfassen, das eine Anzahl von Komponenten zur Verwendung bei der USB-Leistungsabgabe (USB-PD) umfasst. Das Peripherieteilsystem 1210 kann eine Peripherieanbindung 1211 umfassen, die ein Taktmodul, einen Peripherietakt (PCLK) 1212 zum Bereitstellen von Taktsignalen an die verschiedenen Komponenten des Peripherieteilsystems 1210 umfasst. Die Peripherieanbindung 1211 kann ein Peripheriebus, wie etwa ein Einzelebenen- oder Mehrfachebenen-Advanced-High-Performance-Bus (AHB), sein und kann eine Daten- und Steuerschnittstelle zwischen dem Peripherieteilsystem 1210, einem CPU(Central Processing Unit, zentrale Verarbeitungseinheit)-Teilsystem 1230 und Systemressourcen 1240 bereitstellen. Die Peripherieanbindung 1211 kann Controller-Schaltungen, wie etwa DMA(Direct Memory Access, direkter Speicherzugriff)-Controller, umfassen, die programmiert sein können, um Daten zwischen Peripherieblöcken ohne Mitwirkung durch, Steuerung durch oder Belastung des CPU-Teilsystems 1230 zu übertragen. In einigen Ausführungsformen kann das CPU-Teilsystem 1230 die Funktionalität eines Controllers zur dynamischen Leistungsdrosselung, wie etwa des Controllers 102 aus 1 oder des Controllers 702 aus 7 und 8A-8D, durchführen.
  • Die Peripherieanbindung 1211 kann verwendet werden, um Komponenten des Peripherieteilsystems 1210 mit anderen Komponenten des Systems 1200 zu koppeln. Eine Anzahl von GPIOs (General Purpose Input/Outputs, Allzweckeingänge/- ausgänge) 1215 kann mit der Peripherieanbindung 1211 gekoppelt sein, um Signale zu senden und zu empfangen. Die GPIOs 1215 können Schaltungen umfassen, die konfiguriert sind, um verschiedene Funktionen zu implementieren, wie etwa Pull-up, Pulldown, Eingangsschwellenauswahl, Eingangs- und Ausgangspuffer-Aktivierung/-Deaktivierung, Einzelmultiplexen usw. Noch weitere Funktionen können durch die GPIOs 1215 implementiert werden. Ein oder mehrere TCPWMs (Timer/Counter/Pulsweitenmodulator) 1217 können auch mit der Peripherieanbindung gekoppelt sein und Schaltkreise zum Implementieren von Zeitgeberschaltungen (Timer), Zählern, Pulsweitenmodulatoren (PWMs), Decodern und anderen digitalen Funktionen umfassen, die mit E/A-Signalen arbeiten können und Systemkomponenten des Systems 1200 digitale Signale bereitstellen können. Das Peripherieteilsystem 1210 kann auch einen oder mehrere serielle Kommunikationsblöcke (SCBs, Serial Communication Blocks) 1219 umfassen, um serielle Kommunikationsschnittstellen wie etwa I2C, SPI (Serial Peripheral Interface, serielle Peripherieschnittstelle), UART (Universal Asynchronous Receiver/Transmitter, universeller asynchroner Empfänger/Transmitter), CAN (Controller Area Network), CXPI (Clock eXtension Peripheral Interface) usw., zu implementieren.
  • Für USB-Leistungsabgabeanwendungen kann das Peripherieteilsystem 1210 ein USB-Leistungsabgabeteilsystem 1220 umfassen, das mit der Peripherieanbindung gekoppelt ist und einen Satz USB-PD-Module 1221 zur Verwendung bei der USB-Leistungsabgabe beinhaltet. Die USB-PD-Module 1221 können über eine USB-PD-Anbindung 1223 mit der Peripherieanbindung 1211 gekoppelt sein. Die USB-PD-Module 1221 können Folgendes umfassen: ein ADC(Analog-to-Digital Conversion, Analog-Digital-Wandlung)-Modul zum Umwandeln verschiedener analoger Signale in digitale Signale; einen Fehlerverstärker (AMP), der die Ausgangsspannung an der VBUS-Leitung mittels eines PD-Vertrags regelt; einen Hochspannungs(HV)-Regler zum Umwandeln der Leistungsquellenspannung in eine exakte Spannung (wie etwa 3,5-5 V) zur Versorgung des Systems 1200 mit Leistung; einen Low-Side-Stromerfassungsverstärker (LSCSA, Low-Side Current Sense Amplifier) zur präzisen Messung eines Laststroms, ein OVP(Over-Voltage Protection, Überspannungsschutz)-Modul und ein OCP(Over-Current Protection, Überstromschutz)-Modul zum Bereitstellen eines Schutzes vor Überstrom und Überspannung an der VBUS-Leitung mit konfigurierbaren Schwellen und Reaktionszeiten; einen oder mehrere Gate-Treiber für externe Leistungs-FETs (Field Effect Transistors, Feldeffekttransistoren), die bei einer USB-Leistungsabgabe in Bereitsteller- und Verbraucherkonfigurationen verwendet werden; und ein Kommunikationskanal-PHY(CC BB PHY)-Modul zum Unterstützen von Kommunikationen über eine Typ-C-Kommunikationskanal(CC)-Leitung. Die USB-PD-Module 1221 können auch ein Ladegerätdetektionsmodul, um zu bestimmen, dass eine Ladeschaltung vorhanden und mit dem System 1200 gekoppelt ist, und ein VBUS-Entlademodul, um das Entladen von Spannung an VBUS zu steuern, umfassen. Das Entladesteuermodul kann konfiguriert sein, um sich mit einem Leistungsquellenknoten an der VBUS-Leitung oder mit einem Ausgangs(Leistungssenken)-Knoten an der VBUS-Leitung zu koppeln und um die Spannung an der VBUS-Leitung auf den gewünschten Spannungspegel (d. h. den in dem PD-Vertrag ausgehandelten Spannungspegel) zu entladen. Das USB-Leistungsabgabeteilsystem 1220 kann auch Pads 1227 für externe Verbindungen und einen Schaltkreis 1229 zum Schutz vor elektrostatischer Entladung (ESD), der an einem Typ-C-Port erforderlich sein kann, umfassen. Die USB-PD-Module 1221 können auch ein bidirektionales Kommunikationsmodul zum Unterstützen von bidirektionalen Kommunikationen mit einem anderen Controller umfassen, wie etwa zwischen einem Primärseiten-Controller und einem Sekundärseiten-Controller eines Sperrwandlers.
  • Die GPIOs 1215, die TCPWMs 1217 und die SCBs 1219 können mit einem Eingangs/Ausgangs(E/A)-Teilsystem 1250 gekoppelt sein, das eine High-Speed(HS)-E/A-Matrix 1251 umfassen kann, die mit einer Anzahl von GPIOs 1253 gekoppelt ist. Die GPIOs 1215, die TCPWMs 1217 und die SCBs 1219 können über die HS-E/A-Matrix 1251 mit den GPIOs 1253 gekoppelt sein.
  • Das System 1200 kann auch ein CPU-Teilsystem 1230 zum Verarbeiten von Befehlen, Speichern von Programminformationen und Daten umfassen. Das CPU-Teilsystem 1230 kann eine oder mehrere Verarbeitungseinheiten 1231 umfassen, um Anweisungen auszuführen und innerhalb einer Anzahl von Speichern Speicherorte auszulesen und zu beschreiben. Die Verarbeitungseinheit 1231 kann ein Prozessor sein, der für einen Betrieb in einer integrierten Schaltung (IC, Integrated Circuit) oder einer SOC(System-On-Chip)-Vorrichtung geeignet ist. In einigen Ausführungsformen kann die Verarbeitungseinheit 1231 für einen Betrieb mit niedriger Leistung mit umfassendem Clock-Gating optimiert sein. In dieser Ausführungsform können verschiedene interne Steuerschaltungen für einen Betrieb der Verarbeitungseinheit in verschiedenen Leistungsstatus implementiert sein. Beispielsweise kann die Verarbeitungseinheit 1231 einen Aufweck-Unterbrechungs-Controller (WIC, Wake-up Interrupt Controller) umfassen, der konfiguriert ist, um die Verarbeitungseinheit aus einem Schlafstatus aufzuwecken, wodurch erlaubt wird, die Leistung auszuschalten, wenn sich die IC oder der SOC in einem Schlafstatus befindet. Das CPU-Teilsystem 1230 kann einen oder mehrere Speicher umfassen, umfassend einen Flash-Speicher 1233 und einen statischen Direktzugriffsspeicher (SRAM, Static Random Access Memory) 1235 und einen Festwertspeicher (ROM, Read-Only Memory) 1237. Der Flash-Speicher 1233 kann ein nichtflüchtiger Speicher (NAND-Flash, NOR-Flash usw.) sein, der für das Speichern von Daten, Programmen und/oder anderen Firmware-Anweisungen konfiguriert ist. Der Flash-Speicher 1233 kann einen Lesebeschleuniger umfassen und kann Zugriffszeiten durch Integration innerhalb des CPU-Teilsystems 1230 verbessern. Der SRAM 1235 kann ein flüchtiger Speicher sein, der für das Speichern von Daten und Firmware-Anweisungen, auf die die Verarbeitungseinheit 1231 zugreifen kann, konfiguriert ist. Der ROM 1237 kann konfiguriert sein, um Hochfahrroutinen, Konfigurationsparameter und andere Firmware-Parameter und -Einstellungen zu speichern, die sich während des Betriebs des Systems 1200 nicht ändern. Der SRAM 1235 und der ROM 1237 können miteinander assoziierte Steuerschaltungen aufweisen. Die Verarbeitungseinheit 1231 und die Speicher können mit einer Systemanbindung 1239 gekoppelt sein, um Signale zu und von den verschiedenen Komponenten des CPU-Teilsystems 1230 zu anderen Blöcken oder Modulen des Systems 1200 zu leiten. Die Systemanbindung 1239 kann als ein Systembus, wie etwa ein Einzelebenen- oder Mehrfachebenen-AHB, implementiert sein. Die Systemanbindung 1239 kann als eine Schnittstelle konfiguriert sein, um die verschiedenen Komponenten des CPU-Teilsystems 1230 miteinander zu koppeln. Die Systemanbindung 1239 kann mit der Peripherieanbindung 1211 gekoppelt sein, um Signalpfade zwischen den Komponenten des CPU-Teilsystems 1230 und des Peripherieteilsystems 1210 bereitzustellen.
  • Das System 1200 kann auch eine Anzahl von Systemressourcen 1240 umfassen, umfassend ein Leistungsmodul 1241, ein Taktmodul 1243, ein Reset-Modul 1245 und ein Testmodul 1247. Das Leistungsmodul 1241 kann ein Schlafsteuermodul, ein Aufweck-Unterbrechungs-Steuerungs(WIC)-Modul, ein Power-on-Reset(POR)-Modul, eine Anzahl von Spannungsreferenzen (REF) und ein PWRSYS-Modul umfassen. In einigen Ausführungsformen kann das Leistungsmodul 1241 Schaltungen umfassen, die es dem System 1200 erlauben, Leistung mit unterschiedlichen Spannungs- und/oder Strompegeln aus externen Quellen zu beziehen oder diesen bereitzustellen und einen Controller-Betrieb in unterschiedlichen Leistungsstatus, wie etwa aktiv, mit niedriger Leistung oder Schlaf, zu unterstützen. In verschiedenen Ausführungsformen können mehr Leistungsstatus implementiert werden, wenn das System 1200 den Betrieb drosselt, um einen gewünschten Leistungsverbrauch oder -ausgang zu erzielen. Das Taktmodul 1243 kann ein Taktsteuermodul, einen Watchdog-Timer (WDT), einen internen Low-Speed-Oszillator (ILO) und einen internen Hauptoszillator (IMO, Internal Main Oscillator) umfassen. Das Reset-Modul 1245 kann ein Reset-Steuermodul und ein Externer-Reset(XRES)-Modul umfassen. Das Testmodul 1247 kann ein Modul zum Steuern und Eingeben eines Testmodus sowie Teststeuermodule für analoge und digitale Funktionen (digitaler Test und analoger DFT) umfassen.
  • Das System 1200 kann in einem monolithischen (z. B. einzelnen) Halbleiterplättchen implementiert sein. In anderen Ausführungsformen können verschiedene Abschnitte oder Module des Systems 1200 auf unterschiedlichen Halbleiterplättchen implementiert sein. Beispielsweise können Speichermodule des CPU-Teilsystems 1230 On-Chip oder separat angeordnet sein. In noch anderen Ausführungsformen können Schaltungen auf separaten Plättchen in einem einzelnen Multi-Chip-Modul gepackt sein oder aber separat bleiben und auf einer Leiterplatte (oder in einem USB-Kabelverbinder) als separate Elemente angeordnet sein.
  • Das System 1200 kann in einer Anzahl von Anwendungskontexten implementiert sein, um diesen eine USB-PD-Funktionalität bereitzustellen. In jedem Anwendungskontext kann ein IC-Controller oder ein SOC, der das System 1200 implementiert, in einer elektronischen Vorrichtung (z. B. einer USB-fähigen Vorrichtung) angeordnet und konfiguriert sein, um Operationen in Übereinstimmung mit den hierin beschriebenen Techniken durchzuführen. In einem Ausführungsbeispiel kann ein System 1200 in einem PC(Personal Computer)-Leistungsadapter für einen Laptop, einen Notebook-Computer usw. angeordnet und konfiguriert sein. In einem anderen Ausführungsbeispiel kann das System 1200 in einem Leistungsadapter (z. B. einem Wandladegerät) für eine mobile elektronische Vorrichtung (z. B. ein Smartphone, ein Tablet usw.) angeordnet und konfiguriert sein. In einem anderen Ausführungsbeispiel kann das System 1200 in einer Wandsteckdose angeordnet und konfiguriert sein, die konfiguriert ist, um Leistung über einen oder mehrere USB-Typ-A- und/oder -Typ-C-Ports bereitzustellen. In einem anderen Ausführungsbeispiel kann das System 1200 in einem Autoladegerät angeordnet und konfiguriert sein, das konfiguriert ist, um Leistung über einen oder mehrere USB-Typ-A- und/oder -Typ-C-Ports bereitzustellen. In noch einem anderen Ausführungsbeispiel kann das System 1200 in einer Powerbank angeordnet und konfiguriert sein, die geladen werden kann und dann einer anderen elektronischen Vorrichtung Leistung über einen USB-Typ-A- oder -Typ-C-Port bereitstellen kann. In anderen Ausführungsformen kann ein System wie das System 1200 mit den hierin beschriebenen Leistungsschalter-Gate-Steuerschaltkreisen konfiguriert sein und kann in verschiedenen anderen USB-fähigen elektronischen oder elektromechanischen Vorrichtungen angeordnet sein.
  • Es versteht sich, dass ein System wie das System 1200, das auf einem oder als ein IC-Controller implementiert ist, in verschiedenen Anwendungen angeordnet sein kann, die sich dahingehend unterscheiden können, welcher Typ von Leistungsquelle verwendet wird und in welche Richtung die Leistung abgegeben wird. In dem Fall eines Autoladegeräts ist die Leistungsquelle beispielsweise eine Autobatterie, die DC-Leistung bereitstellt, während in dem Fall eines mobilen Leistungsadapters die Leistungsquelle eine AC-Wandsteckdose ist. Ferner geht in dem Fall eines PC-Leistungsadapters der Fluss der Leistungsabgabe von einer Bereitstellervorrichtung zu einer Verbrauchervorrichtung, während in dem Fall einer Powerbank der Fluss der Leistungsabgabe in beide Richtungen gehen kann, abhängig davon, ob die Powerbank als ein Leistungsbereitsteller (z. B. um eine andere Vorrichtung mit Leistung zu versorgen) oder als ein Leistungsverbraucher (z. B. um selber geladen zu werden) arbeitet. Aus diesen Gründen sind die verschiedenen Anwendungen des Systems 1200 eher in einem illustrativen als in einem einschränkenden Sinn zu betrachten.
  • In der obigen Beschreibung werden einige Abschnitte der detaillierten Beschreibung in Form von Algorithmen und symbolischen Darstellungen von Operationen an Datenbits innerhalb eines Computerspeichers präsentiert. Diese algorithmischen Beschreibungen und Darstellungen sind die Mittel, die von Fachleuten auf dem Gebiet der Datenverarbeitung verwendet werden, um die Substanz ihrer Arbeit anderen Fachleuten am effektivsten zu vermitteln. Ein Algorithmus wird hierin und allgemein als eine in sich widerspruchsfreie Folge von Schritten gesehen, die zu einem gewünschten Ergebnis führt. Bei den Schritten handelt es sich um solche, die physikalische Manipulationen physikalischer Größen erfordern. Üblicherweise, jedoch nicht notwendigerweise, haben diese Größen die Form elektrischer oder magnetischer Signale, die gespeichert, übertragen, kombiniert, verglichen und anderweitig manipuliert werden können. Es hat sich zuweilen als praktisch erwiesen, hauptsächlich aus Gründen der allgemeinen Verwendung, diese Signale als Bits, Werte, Elemente, Symbole, Zeichen, Ausdrücke, Zahlen oder dergleichen zu bezeichnen.
  • Es sollte jedoch bedacht werden, dass all diese und ähnliche Begriffe mit den eigentlichen physikalischen Größen zu assoziieren sind und lediglich praktische Etiketten sind, mit denen diese Größen versehen wurden. Sofern nicht ausdrücklich anderweitig spezifiziert, wie aus der oben stehenden Erörterung zu entnehmen, ist es selbstverständlich, dass in der gesamten Beschreibung Erörterungen, die Begriffe wie etwa „erhalten“, „bestimmen“, „einstellen“, „vergleichen“, „identifizieren“, „auswählen“, „einstellen“ oder dergleichen verwenden, die Aktionen und Prozesse eines Rechensystems oder einer ähnlichen elektronischen Rechenvorrichtung bezeichnen, welche(s) Daten, die innerhalb der Rechensystemregister und -speicher als physikalische (z. B. elektronische) Größen dargestellt sind, manipuliert und in andere Daten transformiert, die auf ähnliche Weise als physikalische Größen innerhalb der Rechensystemspeicher oder -register oder sonstiger derartiger Vorrichtungen zur Speicherung, Übertragung oder Anzeige von Informationen dargestellt werden.
  • Die Wörter „Beispiel“ oder „beispielhaft“ werden hierin verwendet, um als ein Beispiel, Fall oder eine Illustration dienend zu bedeuten. Hierin als „Beispiel“ oder „beispielhaft“ beschriebene Aspekte oder Ausgestaltungen sind nicht notwendigerweise als bevorzugt oder vorteilhaft gegenüber anderen Aspekten oder Ausgestaltungen aufzufassen. Vielmehr ist die Verwendung der Wörter „Beispiel“ oder „beispielhaft“ dazu gedacht, Konzepte auf konkrete Weise zu präsentieren. So wie er in dieser Patentanmeldung benutzt wird, soll der Begriff „oder“ ein inklusives „oder“ anstatt eines exklusiven „oder“ bedeuten. Das heißt, dass, sofern nicht anderweitig spezifiziert oder aus dem Zusammenhang klar ersichtlich, „X umfasst A oder B“ irgendeine der natürlichen inklusiven Permutationen bedeuten soll. Das heißt, dass, wenn X A umfasst, X B umfasst oder X sowohl A als auch B umfasst, dann in allen vorgenannten Fällen „X umfasst A oder B“ erfüllt ist. Zusätzlich sollten die Artikel „ein“ und „eine“, wie sie in dieser Patentanmeldung und den angehängten Ansprüchen verwendet werden, allgemein als „ein(e) oder mehrere“ bedeutend aufgefasst werden, sofern nicht anderweitig spezifiziert oder aus dem Zusammenhang klar ersichtlich auf eine Singularform hingeleitet wird. Darüber hinaus soll die durchgängige Verwendung des Begriffs „eine Ausführungsform“ nicht bedeuten, dass dieselbe Ausführungsform gemeint ist, soweit nicht als solche beschrieben.
  • Hierin beschriebene Ausführungsformen können sich auch auf einen Apparat zum Durchführen der hierin beschriebenen Operationen beziehen. Dieser Apparat kann für die erforderlichen Zwecke speziell hergestellt sein oder kann einen Universalcomputer beinhalten, der durch ein in dem Computer gespeichertes Computerprogramm selektiv aktiviert oder rekonfiguriert wird. Ein solches Computerprogramm kann auf einem nichttransitorischen, computerlesbaren Speichermedium gespeichert sein, wie etwa, ohne darauf begrenzt zu sein, jeglicher Art von Disk einschließlich Disketten, optischer Disks, CD-ROMs und magneto-optischer Disks, Festwertspeicher (ROMs), Direktzugriffsspeicher (RAMs), EPROMs, EEPROMs, magnetischer oder optischer Karten, Flash-Speicher oder jeglicher Art von Medium, das zum Speichern elektronischer Anweisungen geeignet ist. Der Begriff „computerlesbares Speichermedium“ sollte so verstanden werden, dass er ein einzelnes Medium oder mehrere Medien (z. B. eine zentrale oder dezentrale Datenbank und/oder assoziierte Caches und Server), die einen oder mehrere Sätze Anweisungen speichern, umfasst. Der Begriff „computerlesbares Medium“ ist auch so zu verstehen, dass er jegliches Medium umfasst, das fähig ist, einen Satz Anweisungen zur Ausführung durch die Maschine zu speichern, zu kodieren oder zu tragen, und das die Maschine veranlasst, eine oder mehrere Methodologien der vorliegenden Ausführungsformen durchzuführen. Der Begriff „computerlesbares Speichermedium“ ist dementsprechend so zu verstehen, dass er, ohne darauf begrenzt zu sein, Folgendes umfasst: Festkörperspeicher, optische Medien, magnetische Medien, jegliches Medium, das fähig ist, einen Satz Anweisungen zur Ausführung durch die Maschine zu speichern, und das die Maschine veranlasst, eine oder mehrere Methodologien der vorliegenden Ausführungsformen durchzuführen.
  • Die hierin präsentierten Algorithmen und Anzeigen sind nicht von Natur aus mit irgendeinem bestimmten Computer oder anderen Apparat verbunden. Verschiedene Universalsysteme können mit Programmen in Übereinstimmung mit den Lehren hierin verwendet werden, oder es kann sich als zweckmäßig herausstellen, einen spezialisierteren Apparat herzustellen, um die erforderlichen Verfahrensschritte durchzuführen. Die erforderliche Struktur für vielerlei dieser Systeme wird aus der unten stehenden Beschreibung ersichtlich. Zusätzlich sind die vorliegenden Ausführungsformen nicht unter Bezugnahme auf eine bestimmte Programmiersprache beschrieben. Es ist selbstverständlich, dass vielerlei Programmiersprachen verwendet werden können, um die Lehren der Ausführungsformen wie hierin beschrieben zu implementieren.
  • Die oben stehende Beschreibung legt zahlreiche spezifische Details dar, wie etwa Beispiele spezifischer Systeme, Komponenten, Verfahren und so weiter, um ein gutes Verständnis diverser Ausführungsformen der vorliegenden Offenbarung bereitzustellen. Es versteht sich, dass die obige Beschreibung als illustrativ und nicht beschränkend beabsichtigt ist. Viele andere Ausführungsformen werden Fachleuten nach der Lektüre und dem Verstehen der obigen Beschreibung klar sein. Der Umfang der Offenbarung sollte daher unter Bezugnahme auf die angehängten Ansprüche zusammen mit dem vollen Umfang von Äquivalenten, zu denen derartige Ansprüche berechtigt sind, bestimmt werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 62/958535 [0001]

Claims (21)

  1. Ein Verfahren, das Folgendes beinhaltet: Erhalten, durch einen USB-Typ-C-Leistungsabgabe(USB-C/PD)-Controller, von Daten für einen oder mehrere Systemparameter eines Systems; Bestimmen, durch den USB-C/PD-Controller, eines Systembetriebszustands basierend auf den Daten für den einen oder die mehreren Systemparameter; Bestimmen, durch den USB-C/PD-Controller, eines Leistungspegels, der dem Systembetriebszustand entspricht, wobei der Leistungspegel kleiner als ein voller Leistungspegel des Systems ist; und Einstellen, durch den USB-C/PD-Controller, einer Leistungseinstellung des Systems auf den Leistungspegel.
  2. Verfahren gemäß Anspruch 1, wobei der eine oder die mehreren Systemparameter mindestens eines von einer Temperatur, einer Eingangsspannung, einer Kabelverlustmetrik, Feuchtigkeit oder einer Ausgangsspannung sind.
  3. Verfahren gemäß Anspruch 1, wobei: das Erhalten der Daten das Erhalten eines mit dem System assoziierten Temperaturwerts beinhaltet; und das Bestimmen des Systembetriebszustands Folgendes beinhaltet: Vergleichen des Temperaturwerts mit einem Satz einer oder mehrerer Temperaturschwellen; und Identifizieren des Systembetriebszustands basierend auf einem Vergleich des Temperaturwerts mit dem Satz einer oder mehrerer Temperaturschwellen.
  4. Verfahren gemäß Anspruch 3, wobei: das Erhalten der Daten ferner das Erhalten eines mit dem System assoziierten Eingangsspannungswerts beinhaltet; und das Bestimmen des Systembetriebszustands ferner Folgendes beinhaltet: Vergleichen des Eingangsspannungswerts mit einem Satz einer oder mehrerer Spannungsschwellen; und Identifizieren des Systembetriebszustands basierend auf Vergleichen des Temperaturwerts mit dem Satz einer oder mehrerer Temperaturschwellen und des Eingangsspannungswerts mit dem Satz einer oder mehrerer Spannungsschwellen.
  5. Verfahren gemäß Anspruch 1, wobei: das Erhalten der Daten Folgendes beinhaltet: Erhalten eines ersten Werts, der mit einem ersten Parameter des einen oder der mehreren Systemparameter assoziiert ist; und Erhalten eines zweiten Werts, der mit einem zweiten Parameter des einen oder der mehreren Systemparameter assoziiert ist; das Bestimmen des Systembetriebszustands Folgendes beinhaltet: Bestimmen eines ersten Betriebszustands basierend auf dem ersten Wert, wobei der erste Betriebszustand einem ersten Leistungspegel entspricht; Bestimmen eines zweiten Betriebszustands basierend auf dem zweiten Wert, wobei der zweite Betriebszustand einem zweiten Leistungspegel, der niedriger als der erste Leistungspegel ist, entspricht; und Auswählen des zweiten Betriebszustands als den Systembetriebszustand.
  6. Verfahren gemäß Anspruch 1, wobei: das Erhalten der Daten Folgendes beinhaltet: Erhalten eines ersten Werts, der mit einem ersten Parameter des einen oder der mehreren Systemparameter assoziiert ist; Erhalten eines zweiten Werts, der mit einem zweiten Parameter des einen oder der mehreren Systemparameter assoziiert ist; Erhalten eines dritten Werts, der mit einem dritten Parameter des einen oder der mehreren Systemparameter assoziiert ist; das Bestimmen des Systembetriebszustands Folgendes beinhaltet: Bestimmen eines ersten Betriebszustands basierend auf dem ersten Wert, wobei der erste Betriebszustand einem ersten Leistungspegel entspricht; Bestimmen eines zweiten Betriebszustands basierend auf dem zweiten Wert, wobei der zweite Betriebszustand einem zweiten Leistungspegel, der niedriger als der erste Leistungspegel ist, entspricht; Bestimmen eines dritten Betriebszustands basierend auf dem dritten Wert, wobei der dritte Betriebszustand einem dritten Leistungspegel, der niedriger als der erste Leistungspegel und der zweite Leistungspegel ist, entspricht; und Auswählen des dritten Betriebszustands als den Systembetriebszustand.
  7. Verfahren gemäß Anspruch 1, wobei: das Erhalten der Daten das Erhalten eines ersten Werts, der mit einem ersten Parameter des einen oder der mehreren Systemparameter assoziiert ist, beinhaltet; und das Bestimmen des Systembetriebszustands das Bestimmen eines ersten Betriebszustands basierend auf dem ersten Wert beinhaltet, wobei der erste Betriebszustand einem ersten Leistungspegel entspricht, wobei der Systembetriebszustand der erste Betriebszustand ist.
  8. Verfahren gemäß Anspruch 1, wobei der Leistungspegel als ein Leistungsbudgetwert spezifiziert wird, wobei der Leistungsbudgetwert mindestens eines von einem Prozentsatz des vollen Leistungspegels, einem Bruchteil des vollen Leistungspegels oder einem maximalen Leistungsbetrag ist.
  9. Verfahren gemäß Anspruch 1, das ferner Folgendes beinhaltet: Erhalten, durch den USB-C/PD-Controller, von zusätzlichen Daten für den einen oder die mehreren Systemparameter; Bestimmen, durch den USB-C/PD-Controller, eines zweiten Systembetriebszustands basierend auf den zusätzlichen Daten; Bestimmen, durch den USB-C/PD-Controller, eines zweiten Leistungspegels, der dem zweiten Systembetriebszustand entspricht, wobei sich der zweite Leistungspegel von dem Leistungspegel unterscheidet; und Einstellen, durch den USB-C/PD-Controller, der Leistungseinstellung des Systems auf den zweiten Leistungspegel.
  10. Verfahren gemäß Anspruch 9, wobei der zweite Leistungspegel der volle Leistungspegel ist.
  11. Verfahren gemäß Anspruch 1, wobei das Einstellen der Leistungseinstellung das Aktualisieren mindestens eines von einer PDO(Power Data Object, Leistungsdatenobjekt)-Spannung, einem PDO-Strom, einer RDO(Requested Data Object, angefordertes Datenobjekt)-Spannung oder einem RDO-Strom, die/der mit einer mit einem USB-C/PD-Port des Systems verbundenen Vorrichtung assoziiert ist, beinhaltet.
  12. Ein System, das Folgendes beinhaltet: einen USB-Typ-C-Leistungsabgabe(USB-C/PD)-Port; einen Controller, der mit dem USB-C/PD-Port betriebsfähig gekoppelt ist, wobei der Controller für Folgendes konfiguriert ist: Erhalten von Daten für einen oder mehrere Systemparameter eines Systems; Bestimmen eines Systembetriebszustands basierend auf den Daten für den einen oder die mehreren Systemparameter; Bestimmen eines Leistungspegels, der dem Systembetriebszustand entspricht, wobei der Leistungspegel kleiner als ein voller Leistungspegel des Systems ist; und Einstellen einer Leistungseinstellung des Systems auf den Leistungspegel.
  13. System gemäß Anspruch 12, das ferner einen ersten Sensor beinhaltet, der mit dem Controller gekoppelt ist, wobei der erste Sensor die Aufgabe hat, einen ersten Wert, der mit einem ersten Parameter des einen oder der mehreren Systemparameter assoziiert ist, bereitzustellen.
  14. System gemäß Anspruch 13, das ferner einen zweiten Sensor beinhaltet, der mit dem Controller gekoppelt ist, wobei der zweite Sensor die Aufgabe hat, einen zweiten Wert, der mit einem zweiten Parameter des einen oder der mehreren Systemparameter assoziiert ist, bereitzustellen.
  15. System gemäß Anspruch 11, das ferner Folgendes beinhaltet: einen Leistungswandler, der mit einer Leistungsquelle gekoppelt ist, die eine Systemleistung mit dem vollen Leistungspegel liefert; und einen Leistungs-Feldeffekttransistor (FET), der zwischen dem Leistungswandler und dem USB-C/PD-Port gekoppelt ist, wobei der Leistungs-FET durch den Controller gesteuert wird.
  16. System gemäß Anspruch 15, wobei der Leistungswandler ein erster Gleichstrom-Gleichstrom(DC-DC)-Wandler eines Leistungsadapters ist, wobei der Leistungsadapter Teil einer Head-Unit eines Automobils, eines Rücksitzunterhaltungssystems des Automobils oder eines Rücksitzladegeräts des Automobils ist.
  17. System gemäß Anspruch 15, wobei der Leistungswandler ein erster Wechselstrom-Gleichstrom(AC-DC)-Wandler eines Leistungsadapters ist, wobei der Leistungsadapter Teil eines Wandladegeräts, eines Power-Hubs oder einer Powerbank ist.
  18. Ein USB-Typ-C-Leistungsabgabe(USB-C/PD)-Controller, der Folgendes beinhaltet: einen ersten Anschluss, der mit einem ersten USB-C/PD-Port gekoppelt ist; einen Satz Anschlüsse, um Daten für einen oder mehrere Systemparameter eines Systems zu empfangen; und eine Verarbeitungsschaltung, die mit dem ersten Anschluss und dem Satz Anschlüsse gekoppelt ist, wobei die Verarbeitungsschaltung die folgende Aufgabe hat: Bestimmen eines Systembetriebszustands basierend auf den Daten für den einen oder die mehreren Systemparameter; Bestimmen eines Leistungspegels, der dem Systembetriebszustand entspricht, wobei der Leistungspegel kleiner als ein voller Leistungspegel des Systems ist; und Einstellen einer Leistungseinstellung des Systems auf den Leistungspegel.
  19. USB-C/PD-Controller gemäß Anspruch 18, wobei die Verarbeitungsschaltung die folgende Aufgabe hat: Empfangen, über den Satz Anschlüsse, eines ersten Werts, der mit einem ersten Parameter des einen oder der mehreren Systemparameter assoziiert ist; und Empfangen, über den Satz Anschlüsse, eines zweiten Werts, der mit einem zweiten Parameter des einen oder der mehreren Systemparameter assoziiert ist; Bestimmen eines ersten Betriebszustands basierend auf dem ersten Wert, wobei der erste Betriebszustand einem ersten Leistungspegel entspricht; Bestimmen eines zweiten Betriebszustands basierend auf dem zweiten Wert, wobei der zweite Betriebszustand einem zweiten Leistungspegel, der niedriger als der erste Leistungspegel ist, entspricht; und Auswählen des zweiten Betriebszustands als den Systembetriebszustand.
  20. USB-C/PD-Controller gemäß Anspruch 18, wobei der Leistungspegel als ein Leistungsbudgetwert spezifiziert wird, wobei der Leistungsbudgetwert mindestens eines von einem Prozentsatz des vollen Leistungspegels, einem Bruchteil des vollen Leistungspegels oder einem maximalen Leistungsbetrag ist.
  21. USB-C/PD-Controller gemäß Anspruch 18, wobei die Verarbeitungsschaltung ferner die folgende Aufgabe hat: Empfangen, über den Satz Anschlüsse, von zusätzlichen Daten für den einen oder die mehreren Systemparameter; Bestimmen eines zweiten Systembetriebszustands basierend auf den zusätzlichen Daten; Bestimmen eines zweiten Leistungspegels, der dem zweiten Systembetriebszustand entspricht, wobei sich der zweite Leistungspegel von dem Leistungspegel unterscheidet; und Einstellen der Leistungseinstellung des Systems auf den zweiten Leistungspegel.
DE102021100044.0A 2020-01-08 2021-01-05 Dynamische leistungsdrosselung basierend auf systemzuständen in einem usb-typ-c-leistungsabgabe(usb-c/pd)-ökosystem Pending DE102021100044A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062958535P 2020-01-08 2020-01-08
US62/958,535 2020-01-08
US16/825,803 2020-03-20
US16/825,803 US11119548B2 (en) 2020-01-08 2020-03-20 Dynamic power throttling based on system conditions in USB Type-C power delivery (USB-C/PD) ecosystem

Publications (2)

Publication Number Publication Date
DE102021100044A1 true DE102021100044A1 (de) 2021-07-08
DE102021100044A9 DE102021100044A9 (de) 2021-09-02

Family

ID=76432451

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021100044.0A Pending DE102021100044A1 (de) 2020-01-08 2021-01-05 Dynamische leistungsdrosselung basierend auf systemzuständen in einem usb-typ-c-leistungsabgabe(usb-c/pd)-ökosystem

Country Status (1)

Country Link
DE (1) DE102021100044A1 (de)

Also Published As

Publication number Publication date
DE102021100044A9 (de) 2021-09-02

Similar Documents

Publication Publication Date Title
DE112019001318T5 (de) Programmierbare gate-treiber-steuerung in der usb-leistungsabgabe
DE112016002768B4 (de) Eine Niedrigstrom-Implementierung eines Typ-C-Verbinder-Teilsystems
DE112019001303T5 (de) Programmierbare vbus-entladung bei usb-stromlieferung
DE112019002626T5 (de) Spannungsschutz für universal-serial-bus-typ-c(usb-c)-verbindersysteme
DE112019002607T5 (de) Leistungsversorgungsarchitektur für usb-c zur unterstützung von aktiven kabel- und dfp/ufp/drp-anwendungen
DE112020003117T5 (de) Primärcontroller-kalibrierung und -trimmen unter verwendung eines sekundärcontrollers in sekundärgesteuerten sperrwandlern
US11119548B2 (en) Dynamic power throttling based on system conditions in USB Type-C power delivery (USB-C/PD) ecosystem
DE112020003962T5 (de) Gate-Treiber für n-Kanal-Feldeffekttransistor (NFET) mit gesteuerter Gate-Source-Spannung
DE112020003957T5 (de) Sekundärgesteuerte aktivklemmen-implementierung für verbesserte effizienz
DE112020003086T5 (de) Kommunizieren von fehlermeldungen zwischen primären und sekundären steuereinheiten in einem sekundär-gesteuerten sperrwandler
DE112019001910T5 (de) Überstromschutz für universal-serial-bus-typ-c(usb-c)-steckverbindersysteme
DE112016000994T5 (de) Ein niedrigstrom-typ-c-empfänger mit hoher leerlaufrausch- und dc-pegel-unterdrückung
DE102009058425B4 (de) Überspannungserkennung bei Upstream-Geräten mit Stromabschaltung bei Downstream-Geräten
DE112012002784T5 (de) System und Verfahren zum Bereitstellen von Strom durch eine umgekehrte lokale Datenübertragungsverbindung
DE112019000995T5 (de) Hybrid-Power-Boost-Laden mit Spitzenleistungsschutz
DE112021004551T5 (de) Schalttakt-Phasenverschiebung für Multi-Port-Tiefsetz-Hochsetz-Wandler
DE102021120912A1 (de) Auffrischung der bootstrap-spannung für einen abwärts-/ aufwärtswandler
DE112020003722T5 (de) Digital-linearer hybrid-schaltkondensator-spannungsregler
DE102021128527A1 (de) Vorrichtung, verfahren und system zur programmierung einer leistungsversorgung zur erleichterung von dynamischer leistungsabstimmung
DE102021121019A1 (de) Masse- und versorgungskabel-kompensationsarchitektur für usb-leistungszufuhrsubsystem
DE102023105160A1 (de) Floating-gate-treiber mit programmierbarer treiberstärke für ein breites spektrum an universal-serial-bus(usb)-leistungsabgabeanwendungen
DE102021120927A1 (de) Echtzeitüberwachung und -steuerung von usb-typ-c/pd-ports ineinem kraftfahrzeug- oder industrieökosystem
DE112018005673T5 (de) Konfigurierbares leeren von daten aus einem flüchtigen speicher in einen nicht flüchtigen speicher
DE102021100044A1 (de) Dynamische leistungsdrosselung basierend auf systemzuständen in einem usb-typ-c-leistungsabgabe(usb-c/pd)-ökosystem
DE102023106204A1 (de) Architekturen Mit Potentialfreier Masse In Usb-Typ-C-Controllern Zur Fehlererkennung