Weniger ist mehr Automotive Ethernet PHY unterstützt Low-Power-Betrieb

Ethernet PHY überstützt mehrere Low-Power-Betreibsarten und die Funtkion einer Low-Power-State-Maschine werden vorgestellt.
Der Ethernet-PHY von TI überstützt mehrere Low-Power-Betreibsarten und die Funtkion einer Low-Power-State-Maschine werden vorgestellt.

Der Automotive Ethernet PHY des Typs DP83TC811-Q1 unterstützt mehrere Low-Power-Betriebsarten und eine Wake-on-LAN-Funktion, die alle in diesem Artikel beschrieben werden. Zusätzlich wird auf die Funktion der Low-Power-State-Machine eingegangen und ein exemplarischer Schaltplan vorgestellt.

Der Automotive Ethernet PHY des Typs DP83TC811 ist für den Betrieb mit 100 Mbit/s und für die Unterstützung von IEEE802.3bw, 100BASE-T1 ausgelegt. Ethernet wurde ursprünglich für das Teilen von Daten zwischen verschiedenen Computer-Arbeitsstationen sowie zur Übertragung von Daten an Laserdrucker entworfen, wurde aber mittlerweile weiterentwickelt und stellt nun einem breiten Spektrum von Anwendungen ein Medium zum Austausch von Informationen zur Verfügung.

Automotive Ethernet ist ein relativ neuer Zweig im Rahmen des Ethernet-Standards, dessen Fokus in der Fahrzeugvernetzung, der Minimierung der Störabstrahlung – d. h. des hohen Störaufkommens von Multi-Twisted-Pair-Ethernet wie etwa 10BASE-T, 100BASE-TX und 1000BASE-T – sowie der Senkung des Fahrzeuggewichts durch Unterstützung des Vollduplexbetriebs über UTP-Kabel ist. IEEE802.3bw definiert diese neue Automotive-Spezifikation zur Erfüllung aller drei kritischen Vorgaben. Als weitere entscheidende Zielsetzung beim Einsatz von Ethernet in Automobil-Anwendungen kommt die Senkung des Stromverbrauchs hinzu. Eine Herausforderung bei den derzeitigen Ethernet-Lösungen ist die Notwendigkeit eines konstanten IDLE-Streams, um Punkt-zu-Punkt-Anwendungen beim Aufrechterhalten der Verbindung zu helfen, sowie sämtliche zugehörigen Unterprozesse für den Verbindungsaufbau. Weil MDIs stets aktiv sind, ist die Verlustleistung selbst bei einer Netzwerk-Auslastung von null größer als es in den meisten Automotive-Applikationen wünschenswert ist. Um in Zeiten, in denen die Auslastung gering und keine Datenübertragung erforderlich ist – also, wenn das Auto geparkt und die Zündung abgeschaltet ist – einen unnötigen Stromverbrauch zu vermeiden, wird die Low Power State Machine (LPSM) des DP83TC811 benutzt, um den PHY und die angeschlossenen Gegenstellen vom aktiven/normalen Betriebszustand durch eine Reihe von Zwischenschritten in einen stromsparenden Sleep-Status zu bringen.
Darüber hinaus unterstützt der DP83TC811 eine alternative Methode mithilfe der Wake-on-LAN-Funktion (WoL), bei der der PHY aktiv ist, während sich der angeschlossene Prozessor in einem Low-Power-Status befindet.

Dieser Artikel geht im Detail auf folgende Themen ein:

Low-Power State Machine
– Mögliche Betriebszustände des PHY
– Zustandsübergänge
– Relevante PHY-Pins und deren Nutzung
– Exemplarischer Schaltplan für eine
System-Implementierung der LPSM

Wake-on-LAN
– Prinzipien des WoL-Betriebs
– Magic Packet Detection und Custom

Packet Detection
– WoL-Implementierung
– Beispiele für die Nutzung der WoL-Funktion

Low-Power State Machine

Die LPSM definiert die vom DP83TC811 unterstützten Zustände und zugehörigen Zustandswechsel zum Erzielen eines möglichst energieeffizienten Betriebs. Beide PHYs müssen über die LPSM verfügen, um in die Zustände Silent und Sleep zu wechseln. Ist der DP83TC811 mit einem nicht LPSM-fähigen PHY verbunden, funktioniert er normal und ohne Einfluss auf die Verbindungsqualität oder andere funktionale Abläufe.

Für den LPSM-Betrieb müssen die folgenden Registerwerte (Tabelle 1) gesetzt sein.

 

PHY-Zustände
Es gibt im DP83TC811 fünf definierte digitale Zustände und drei zusätzliche Zustände außerhalb des digitalen Bereichs. Informationen zum Verhalten des Bausteins in jedem der drei zusätzlichen Zustände lassen sich in den Datenblättern zum DP83TC811 und zum DP83TC811S nachlesen.

Dieser Artikel befasst sich im Detail mit den fünf Zuständen Stand-by, Normal, Sleep Request, Silent und Sleep innerhalb des digitalen Bereichs. Bild 1 illustriert diese Zustände und ihre gegenseitigen Beziehungen. Die Bedingungen für die Zustandswechsel sind in den nachfolgenden Abschnitten ausführlich beschrieben.

Stand-by

Ist er für den Master- oder Slave-Modus konfiguriert, wechselt der PHY automatisch in den Stand-by-Status, wenn der Power-on Reset (POR) abgeschlossen ist, EN und WAKE Aktiv-HIGH-Status haben und der Baustein für den Managed-Betrieb konfiguriert ist. Die Leistungsaufnahme im Stand-by-Zustand ist etwas geringer als im Zustand Normal. Wenn beispielsweise UDDIO = 3,3 V und das MAC-Interface als MII konfiguriert ist, reduziert sich die Stromaufnahme des digitalen Blocks von 31 mA auf 24 mA (typ).

Der Managed-Betrieb hält den PHY nach dem POR vom Wechsel in den Normal-Zustand ab und hindert ihn daran, Zugriff auf das SMI-Register zu verlangen, um dem Baustein das Verlassen des Stand-by-Modus zu erlauben. Der Autonomous-Betrieb erlaubt dem PHY den automatischen Wechsel vom POR in den Normal-Betrieb ohne Eingriff des Benutzers.

Im Stand-by-Modus sind mit Ausnahme der Blöcke PCS und PMA alle Funktionen des PHY in Betrieb. Der PHY kann im Stand-by-Modus keine Verbindungen aufbauen und am MDI keine Daten senden oder empfangen. Die SMI-Funktionen sind im Stand-by-Modus aktiv.

Normal

Der Modus Normal lässt sich mit zwei Methoden erreichen – nämlich autonomous oder managed. Im Autonomous-Betrieb versucht der PHY nach dem POR automatisch eine Verbindung mit einer gültigen Gegenstelle aufzubauen.
Im Managed-Betrieb ist der SMI-Zugriff erforderlich, damit der Baustein den Stand-by-Modus verlassen darf. Um den Baustein in den Normal-Modus zu zwingen, muss bit[0] im Power Mode Register (PWRM, Adresse 0x018C) gesetzt sein. Dieses Bit wird selbsttätig zurückgesetzt, sobald der Baustein in den Normal-Zustand wechselt.
Darüber hinaus lässt sich der Autonomous-Betrieb über das SMI konfigurieren, indem bit[6] im Low-Power Sleep Control Register (AUTO_PHY, Adresse 0x018B) gesetzt wird.

Schlafanforderung (Sleep Request)

Sleep Request ist ein Zwischenzustand, in den beim Übergang vom Normal- in den Sleep-Zustand gewechselt wird. Dieser Zwischenzustand wird neben dem Silent-Zustand benutzt, um für einen sanften Übergang aus einem aktiven Betrieb in einen Low-Power-Zustand zu sorgen. Wenn er sich im Sleep-Request-Zustand befindet, sendet der PHY LPS-Codegruppen (Low Power Sleep), um die Gegenstelle über die Anforderung des Sleep-Zustands zu informieren.
Der sleep_rqst_timer des PHY beginnt zu laufen, sobald der PHY in den Sleep-Request-Zustand wechselt. Die Gegenstelle decodiert die LPS-Codegruppen und triggert nach erfolgter Bestätigung den LPS_RECEIVED-Interrupt. Nach Ablauf des sleep_rqst_timer wechselt der PHY in den Silent-Status, bevor er in den Sleep-Zustand übergeht.

Während des Sleep-Request-Zustands beendet jeder am MDI oder MII eingehende Frame den sleep_rqst_timer und lässt den PHY aus dem Sleep-Request- wieder in den Normal-Modus wechseln. Während des Zustandswechsels gehen keine gesendeten oder empfangenen Daten verloren.

Low-Power-Sleep-Codegruppen (LPS) werden vom PHY dafür verwendet, die Gegenstelle über seine Anforderung zum Wechsel in den Sleep-Modus zu informieren. Der DP83TC811 codiert die LPS-Codegruppen innerhalb des Sdn[1] Scrambled Streams.

Die Sende- und Empfangspfade im DP83TC811 sind standardmäßig so konfiguriert, dass sie – falls freigegeben – denselben LPS-Codegruppen-Mechanismus verwenden. Unmittelbar beim Wechsel in den Sleep-Request-Zustand sendet der PHY LPS-Codegruppen. Diese werden gesendet, bis der sleep_rqst_timer abläuft oder der PHY aus dem Sleep-Request-Zustand in einen anderen Zustand wechselt.

Um LPS-Codegruppen zu senden oder empfangene LPS-Codegruppen zu decodieren, muss bit[0] im LPS-Control-Register Nr. 2 (LPS_CTRL2, Adresse 0x0487) gesetzt sein, und die bits[9:8] im LPS-Configuration-Register (LPS_CFG, Adresse 0x04E5) müssen auf [1,1] gesetzt sein, wie in Tabelle 2 gezeigt.
Für den programmierbaren Modus konfiguriert, definieren das TX-LPS-CODES-Register (TX_LPS_CODES, Adresse 0x4E1) und das RX-LPS-CODES-Register (RX_LPS_CODES, Adresse 0x4E3) die Codegruppen für LPS-Sendung und -Empfang. Die programmierbaren LPS-Codegruppen bestehen standardmäßig aus der Vektorsequenz (0, 0), (0, 0), (1, -1), (1, -1).

Silent

In den Silent-Zustand wird gewechselt, sobald der sleep_rqst_timer abgelaufen ist oder wenn der PHY feststellt, dass der TX-Modus der Gegenstelle SEND_Z ist, wobei Vektoren aus ternären, durch (0, 0) definierten Symbolen am MDI empfangen werden und damit signalisieren, dass die Gegenstelle bereits in den Silent-Zustand übergangen ist. Nach dem Eintritt in den Silent-Status beginnt der silent_timer abzulaufen. Sobald er abgelaufen ist, geht der PHY in den Sleep-Zustand über. Werden nach dem Ablaufen von silent_timer jedoch von null verschiedene ternäre Symbole am MDI erkannt, wechselt der PHY in den Stand-by-Status.

Sleep

Der Sleep-Status ist die stromsparendste Betriebsart des DP83TC811. Voraussetzung für den Wechsel des PHY in den Sleep-Zustand ist, dass sleep_en mit bit[1] im LPS_CTRL-Register gesetzt und der silent_timer abgelaufen ist. Ist sleep_en nicht gesetzt, wechselt der PHY nach Ablaufen von silent_timer in den Stand-by-Modus.

Im Sleep-Modus sind sämtliche Blöcke des PHY mit Ausnahme der Energy-Detection-Schaltung deaktiviert. Sämtliche Registerkonfigurationen gehen im Sleep-Zustand verloren. Es können weder Verbindungen aufgebaut noch Daten gesendet oder empfangen werden, und das SMI ist deaktiviert. Im Sleep-Modus wird INH auf HIGH gesetzt, während sich dieser Pin in allen anderen Betriebsarten im LOW-Status befindet. Die Stromaufnahme des digitalen Blocks geht in den unteren Mikroampere-Bereich zurück. Wenn beispielsweise UDDIO 3,3 V beträgt und sich das MAC-Interface im MII-Modus befindet, geht IDDIO auf 12 µA zurück.

Der PHY verlässt den Sleep-Zustand und rekonfiguriert sich (POR), wenn eine der in Tabelle 3 aufgeführten Bedingungen erfüllt ist.