Dieser Post ist Teil der EthTrcv-Serie und baut auf dem AUTOSAR Grundlagen-Post auf. Er richtet sich an Software-Entwickler die täglich EthTrcv konfigurieren, aber noch nie genau wissen wollten was dabei auf PCB-Ebene passiert.

Wer einen ARXML-Parameter wie EthTrcvBusIdx auf ETHTRCV_BUS_TYPE_RGMII setzt, trifft eine Hardware-Entscheidung — auch wenn er das vielleicht nicht so empfindet. Dieser Post macht sichtbar was hinter diesen Parametern steckt.

Der PHY-Chip als Mittler

Ein Ethernet PHY-Chip sitzt exakt in der Mitte zwischen zwei Welten:

  SoC / Microcontroller                    Kabel
  ┌─────────────────┐                   ┌────────┐
  │   Ethernet MAC  │◄── MII/RMII/RGMII ─►│  PHY  │◄── MDI ──► Twisted Pair
  │                 │◄── MDIO ────────── ─►│  Chip │
  └─────────────────┘                   └────────┘

Auf der linken Seite: digitale Interfaces zum MAC im SoC. Auf der rechten Seite: analoge Schnittstelle zum Kabel. In der Mitte: alles was die Konvertierung ausmacht — Encoding, Scrambling, Signal-Shaping.

EthTrcv_Init initialisiert diesen Chip. Was genau dabei passiert, erklärt dieser Post von links nach rechts.

Die MAC-seitigen Interfaces (MII-Familie)

Die MAC-seitige Schnittstelle zwischen SoC und PHY ist standardisiert. IEEE 802.3 definiert mehrere Varianten — alle unter dem Oberbegriff MII-Familie.

MII — Media Independent Interface

Das Original aus IEEE 802.3u (1995). Heute in neuen Designs kaum noch anzutreffen, aber zum Verständnis der Nachfolger unverzichtbar.

Signale:    TX_CLK, TXD[3:0], TX_EN, TX_ER
            RX_CLK, RXD[3:0], RX_DV, RX_ER, CRS, COL
Takt:       25 MHz (100 Mbit/s) / 2,5 MHz (10 Mbit/s)
Datenbreite: 4 Bit parallel (Nibble)
Leitungen:  ~16 Datenleitungen + Steuer-/Taktleitungen

Warum es kaum noch gebaut wird: 16+ Leitungen auf dem PCB, hoher Routing-Aufwand, und bei modernen SoCs sind die GPIO-Pins zu wertvoll.

MII Interface Diagramm

RMII — Reduced MII

Reduzierte Variante mit nur 9 Leitungen statt 16+. Typisch bei kleineren Mikrocontrollern wo GPIO-Pins knapp sind.

Signale:    REF_CLK (50 MHz, vom PHY oder extern), TXD[1:0], TX_EN
            RXD[1:0], CRS_DV, RX_ER
Takt:       50 MHz fix (ein Takt für beide Richtungen)
Datenbreite: 2 Bit parallel
Besonderheit: MAC und PHY teilen sich einen gemeinsamen 50 MHz Referenztakt

Der 50 MHz REF_CLK muss entweder vom PHY geliefert oder extern eingespeist werden. Wer den Takt vergisst oder falsch verdrahtet, hat kein Link und fragt sich warum.

RMII Interface Diagramm

RGMII — Reduced Gigabit MII

Der heute dominierende Standard für Automotive Ethernet mit 1 Gbit/s und für viele moderne 100 Mbit/s Designs.

Signale:    TXC, TXD[3:0], TX_CTL
            RXC, RXD[3:0], RX_CTL
Takt:       125 MHz (1 Gbit/s) / 25 MHz (100 Mbit/s) / 2,5 MHz (10 Mbit/s)
Datenbreite: 4 Bit, DDR (Double Data Rate — Daten auf steigender UND fallender Flanke)
Leitungen:  12 Signale statt MII's 16+

DDR bei 125 MHz liefert effektiv 8 Bit pro Taktzyklus → 1 Gbit/s. Das klingt elegant, hat aber einen Haken: RGMII Timing Delays.

Die Spezifikation schreibt vor dass Daten um 1,5–2 ns gegenüber dem Takt verzögert sein müssen. Diese Verzögerung kann im PHY, im MAC oder über PCB-Trace-Längen realisiert werden — und ist ein häufiger Grund für sporadische Übertragungsfehler wenn das PCB-Layout nicht stimmt.

In AUTOSAR sieht man das nicht direkt, aber der EthTrcvBusIdx-Parameter wählt unter anderem ob interne PHY-Delays aktiviert werden oder ob der MAC-Treiber sie übernimmt.

RGMII Interface Diagramm

SGMII / SerDes

Für Szenarien wo PHY und MAC weiter auseinanderliegen — typisch bei Switch-Chips die mehrere PHYs aggregieren.

Signale:    TX+ / TX- (differenziell), RX+ / RX- (differenziell)
Takt:       1,25 GBaud seriell (8b/10b kodiert → 1 Gbit/s Nutzlast)
Leitungen:  4 (zwei differentielle Paare)
Vorteil:    Längere PCB-Strecken möglich, weniger Leitungen

Bei EthSwt-Konfigurationen begegnet man SGMII häufiger als bei einfachen EthTrcv-Setups.

SGMII Interface Diagramm

Entscheidungshilfe: Welches Interface wofür?

InterfaceMax. GeschwindigkeitLeitungenTypischer EinsatzAutomotive-Relevanz

MII

100 Mbit/s

16+

Legacy

Kaum noch neu

RMII

100 Mbit/s

9

Kleine MCUs

Mittel (Steuergeräte)

RGMII

1 Gbit/s

12

Application-SoCs, 1000BASE-T1

Hoch (ADAS, Gateway)

SGMII

1 Gbit/s

4

Switch-Aggregation

Hoch bei Zonal Architecture

Der MDIO-Bus

MDIO (Management Data Input/Output) ist der Steuerbus zum PHY. Über ihn läuft EthTrcv_Init — nicht über MII/RGMII.

SoC
 │
 ├── MDC  (Management Data Clock) ────────────► PHY 1
 └── MDIO (Management Data I/O, bidirektional) ─► PHY 1
                                                 ► PHY 2 (gleiche Leitung)
                                                 ► PHY 3 (gleiche Leitung)

Elektrische Spezifikation

Spannung:       typisch 3,3 V LVCMOS (oder 1,8 V bei modernen SoCs)
MDC-Frequenz:   max. 2,5 MHz laut IEEE, viele PHYs tolerieren bis 25 MHz
Pull-up:        MDIO benötigt einen Pull-up-Widerstand (typisch 1,5 kΩ – 4,7 kΩ)
Bus-Last:       bis zu 32 PHY-Adressen pro MDIO-Bus möglich

Der Pull-up ist kritisch: fehlt er, bleibt MDIO dauerhaft low und alle Register-Lesevorgänge liefern 0xFF oder 0x00 — was genauso aussieht wie ein falsch konfigurierter PHY.

Clause 22 vs. Clause 45

IEEE 802.3 definiert zwei Frame-Formate für MDIO:

Clause 22 (klassisch):

ST | OP | PHYAD[4:0] | REGAD[4:0] | TA | DATA[15:0]
 2    2       5            5         2        16       Bit

32 PHY-Adressen, 32 Register pro PHY. Reicht für einfache PHYs.

Clause 45 (erweitert):

ST | OP | PRTAD[4:0] | DEVAD[5:0] | TA | ADDR/DATA[15:0]
 2    2       5            5         2          16          Bit

Clause 45 führt einen DEVAD (Device Address) ein — dadurch werden 32 Adressräume à 65536 Register möglich. Pflicht für 1000BASE-T1-PHYs und alle PHYs mit Safety- oder MACsec-Features.

Manche SoC-MAC-Treiber unterstützen nur Clause 22 nativ. Clause 45 auf solchen Systemen erfordert einen Workaround via „Clause 22 Preamble Suppression" — ein häufiger Fallstrick bei neueren PHY-Chips.

Timing und MDC-Frequenz

MDC ───┐  ┌──┐  ┌──┐  ┌──┐  ┌──
       └──┘  └──┘  └──┘  └──┘
MDIO   ════╪═════╪═════╪════
       Setup↑     ↑Hold
  • Setup-Zeit (MDIO vor steigender MDC-Flanke stabil): min. 10 ns

  • Hold-Zeit (MDIO nach steigender MDC-Flanke stabil): min. 10 ns

Bei zu hoher MDC-Frequenz oder langen PCB-Traces werden diese Zeiten verletzt. Symptom: Register-Reads liefern korrumpierte Werte, PHY reagiert nicht auf Init.

Mehrere PHYs an einem MDIO-Bus

Jeder PHY hat eine 5-Bit-PHY-Adresse (0–31), häufig per Hardware-Pins konfiguriert. Im ARXML entspricht das dem Parameter EthTrcvPhyAddress.

SoC-MDIO-Bus
  ├── PHY @ Adresse 1  (PHYAD-Pins: 00001)
  ├── PHY @ Adresse 2  (PHYAD-Pins: 00010)
  └── PHY @ Adresse 3  (PHYAD-Pins: 00011)

Adresskonflikte (zwei PHYs mit gleicher Adresse) sind ein klassischer Hardware-Bug: beide PHYs antworten gleichzeitig, der Bus wird korrumpiert, alle MDIO-Reads liefern Unsinn.

Die leitungsseitigen Interfaces

Auf der anderen Seite des PHY-Chips: der Anschluss ans Kabel.

MDI — Medium Dependent Interface

MDI ist der physikalische Anschluss des PHY ans Übertragungsmedium. Der Name sagt: ab hier ist alles mediumabhängig — der PHY-Standard definiert die elektrischen Eigenschaften des Signals auf der Leitung.

100BASE-T1 — Das automotive Single-Pair Interface

Klassisches 100BASE-TX verwendet zwei verdrillte Aderpaare (TX und RX getrennt). 100BASE-T1 kommt mit einem einzigen verdrillten Aderpaar aus.

100BASE-TX:   ──[TX+/TX-]──  ──[RX+/RX-]──   (2 Paare, ≈ RJ45 Stecker)
100BASE-T1:   ──[T1+/T1-]──                   (1 Paar, differenziell, bidirektional)

Bidirektionaler Betrieb auf einem Paar ist möglich weil das Signal Echo-Cancellation im PHY verwendet — der Chip subtrahiert das eigene Sendesignal um das Empfangssignal zu isolieren.

Kabelspezifikation:

Impedanz:           100 Ω (±15 %)
Maximale Länge:     15 m (Standard), bis 40 m mit geringerer Datenrate
Kabeltyp:           Unshielded Twisted Pair (UTP), automotive-zugelassen
AWG:                typisch AWG 22–24

1000BASE-T1

Gleiche Philosophie wie 100BASE-T1, aber mit 1 Gbit/s über ein Single-Pair-Kabel. Verwendet PAM3 mit höherer Symbolrate, kürzere maximale Kabellänge (ca. 15 m). In Fahrzeugen zunehmend für Backbone-Verbindungen (Zonal Controller → Domain Controller).

Steckverbinder im Fahrzeug

Das Kabel muss irgendwo angeschlossen werden. In der Automotive-Welt gibt es dafür etablierte Steckverbinder-Standards:

SteckverbinderEinsatzRelevanz für Ethernet

FAKRA

Hochfrequenz-Koaxial, klassisch für Antennen und Kameras

Nicht für Twisted-Pair Ethernet — häufige Verwechslung

HSD (High Speed Data)

4-poliger Steckverbinder, für Datenübertragung im Fahrzeug

Wird für 100BASE-T1 und USB verwendet, verbreitet

MATEnet

TE Connectivity Standard speziell für Automotive Ethernet

Optimiert für 100BASE-T1 / 1000BASE-T1, niedrige Einfügedämpfung

H-MTD

Kleiner, für enge Einbausituationen

Zunehmend für 1000BASE-T1 in kompakten Steuergeräten

Der Steckverbinder beeinflusst die Signal-Integrität. Ein HSD-Stecker mit falscher Impedanzanpassung kann bei 1000BASE-T1 genauso gut Link-Probleme verursachen wie ein defektes Kabel.

EMV-Aspekte

Software-Entwickler denken selten an EMV — Hardware-Entwickler immer. Die Schnittstelle liegt im Fahrzeug nahe an anderen Störquellen (Zündanlage, DC/DC-Wandler).

Common-Mode-Filter (CMF): Direkt am MDI-Anschluss verbaut. Unterdrückt Gleichtaktstörungen auf der Leitung. Falscher oder fehlender CMF → PHY hat erhöhtes Rauschen → sporadische Bitfehler.

ESD-Schutz: Transient Voltage Suppressor (TVS) oder ähnliche Bauelemente am Stecker. Schützt den PHY vor elektrostatischen Entladungen beim Stecken/Ziehen. In der Serienapplikation Pflicht — in Entwicklungsboards oft weggelassen.

PCB-Layout: Die differentielle Leitungsführung (T1+ / T1-) muss mit exakt gleicher Länge geroutet werden (Differential-Pair Matching). Längenunterschied > 150 mil → messbare Signal-Qualitätsverluste.

Energieversorgung und Spannungsebenen

Ein moderner Automotive PHY-Chip hat typischerweise mehrere Versorgungsdomänen:

VDD_IO    3,3 V  — I/O-Pegel für MII/MDIO-Signale zur MAC/SoC
VDD_Core  1,8 V  — Interne Core-Logik
VDD_PLL   1,8 V  — PLL für Takterzeugung (oft separates Rail)
VDD_MDI   3,3 V  — Analoge Seite, Leitungsankopplung

Power Sequencing

Die Reihenfolge beim Einschalten ist im PHY-Datenblatt spezifiziert und muss eingehalten werden. Typische Sequenz:

1. VDD_Core einschalten
2. VDD_IO einschalten  (≥ 100 µs nach Core)
3. VDD_MDI einschalten
4. Hardware-Reset (RST_N) deasserten
5. Warten auf PHY-Bootzeit (typisch 1–5 ms)
6. MDIO-Zugriff möglich → EthTrcv_Init kann starten

Verletzung der Sequenz → PHY bootet in undefiniertem Zustand. Symptom: EthTrcv_Init kehrt zurück, aber der Link kommt nie hoch.

WakeUp-Pin und INH-Pin

Zwei Pins die Software-Entwickler kennen sollten, auch wenn sie sie nie direkt ansteuern:

WakeUp-Pin (WU): Eingang am PHY für einen externen WakeUp-Impuls. Wenn das Steuergerät im Sleep ist und Ethernet-WakeUp unterstützt, kann ein spezifischer Impuls auf diesem Pin das Steuergerät aufwecken. AUTOSAR-seitig wird das in EthTrcv_CheckWakeup ausgewertet.

INH-Pin (Inhibit): Ausgang des PHY, der den Spannungsregler des Steuergeräts steuert. Wenn der PHY in Sleep geht, zieht er INH low → Spannungsregler schaltet ab → Steuergerät schläft. Wenn WakeUp erkannt wird, setzt der PHY INH aktiv → Spannungsregler startet → System wacht auf.

WakeUp-Impuls auf Leitung
   → PHY erkennt Impuls
   → PHY setzt INH aktiv
   → Spannungsregler startet
   → SoC bootet
   → EcuM ruft EthTrcv_CheckWakeup auf
   → AUTOSAR WakeUp-Validierung läuft durch

Vom Bit zum Signal — ein Frame durch den PHY

Zum Abschluss der vollständige Weg eines Ethernet-Frames durch den PHY-Chip, von der MAC-Übergabe bis zum differenziellen Signal auf der Leitung.

Schritt 1: MAC übergibt Frame via RGMII

SoC-MAC übergibt: TXD[3:0] = Nibble, TX_CTL = 1 (valid), TXC = 125 MHz
PHY empfängt 4 Bit pro Taktflanke (DDR) → 8 Bit pro Taktzyklus
Bei 125 MHz: 8 Bit × 125.000.000 = 1.000.000.000 Bit/s = 1 Gbit/s

Schritt 2: PCS — Physical Coding Sublayer

Der PCS bereitet die Bits für die Übertragung vor:

  • Scrambling — Bitfolge pseudozufällig verwürfeln, verhindert Dauerpegel (DC-Balance)

  • Encoding — Bei 100BASE-T1: keine 8b/10b, stattdessen direkte PAM3-Abbildung mit Trellis-Code

Schritt 3: PMA — Physical Medium Attachment

Der PMA konvertiert die codierten Bits in physikalische Symbole:

PAM3 bei 100BASE-T1:

Drei Spannungspegel:  +1 (positiv), 0 (null), -1 (negativ)
Symbolrate:           66,67 MBaud (66,67 Millionen Symbole/Sekunde)
Jedes Symbol:         trägt ~1,58 Bit Information (log₂(3))
Nutzlast:             100 Mbit/s nach Overhead

Drei Pegel statt zwei — das ist der Grund warum 100 Mbit/s über ein Single-Pair-Kabel mit nur 66 MBaud Symbolrate möglich ist.

Schritt 4: Echo-Cancellation

Da Senden und Empfangen auf demselben Leitungspaar stattfinden, muss der PHY das eigene Sendesignal vom Empfangssignal subtrahieren. Das passiert digital im PHY mit einem adaptiven Filter — und ist der Grund warum 100BASE-T1 PHYs deutlich komplexer sind als klassische PHYs.

Schritt 5: Signal auf der Leitung

Differenzielles Signal: T1+ und T1- mit 100 Ω Impedanz
Amplitude:              typisch ±1 V (differenziell)
Frequenzbereich:        DC bis ~66 MHz (Hauptenergie)

Latenz durch den PHY

RGMII → PCS → PMA → Kabel:  typisch 150–500 ns (abhängig von PHY-Chip und Implementierung)
Kabel (15 m @ ~0,6c):        ca. 80 ns
Empfangsseite (Kabel → MAC): nochmal 150–500 ns

Gesamtlatenz für einen Frame: ca. 500 ns – 1,5 µs. Relevant für gPTP (Issue #14) wo Sub-Mikrosekunden-Genauigkeit gefordert ist.

Zusammenfassung

InterfaceKernaussage für Software-Entwickler

MII/RMII/RGMII

Wahl beeinflusst EthTrcvBusIdx-Parameter; RGMII-Timing-Delays sind ein häufiger PCB-Bug

MDIO

Pull-up vergessen → alle Reads liefern Unsinn; Clause 45 für moderne PHYs prüfen

MDI / 100BASE-T1

Single-Pair, bidirektional durch Echo-Cancellation; Kabelimpedanz und Stecker sind Signal-Qualitätsfaktoren

EMV

Common-Mode-Filter am Stecker ist Pflicht — fehlt er, zeigen sich Probleme erst im Fahrzeug-EMV-Test

Power Sequencing

Falsche Reihenfolge → PHY antwortet nicht auf Init, kein offensichtlicher Fehlercode

WakeUp/INH-Pin

Diese Pins steuern den Spannungsregler des Steuergeräts — AUTOSAR EcuM muss korrekt konfiguriert sein


Weiter in der EthTrcv-Serie: EthTrcv Teil 1 — Grundlagen & Einordnung