SFF-8472 – SFP-Diagnose
SFF-8472, das Diagnostic Monitoring Interface for Optical Transceivers, ist die Management-Spezifikation für jedes Modul der SFP-Klasse: SFP, SFP+, SFP28 und, mit erweiterten Codes, SFP56. Sie entstand aus dem Serial-ID-Block der SFP-MSA (INF-8074), übernahm diesen Block Byte für Byte und fügte ein zweites Speichergerät mit Echtzeitdiagnose hinzu. Kupfer-SFPs, PON-Sticks, durchstimmbare DWDM-SFP+ und DAC-/AOC-Kabelenden melden sich alle über diese Spezifikation. Revisionshistorie und das Versions-Byte: Spezifikationsrevisionen.
Zwei Speicheradressen
Das Modul wird über das Zweidraht-Interface an zwei Geräteadressen ausgelesen:
| Adresse | Gerät | Inhalt |
|---|---|---|
| A0h | Serial-ID-EEPROM (256 Bytes, flach) | Identität: Typ, Steckverbinder, Compliance-Codes, Rate, Längen, Herstellerblock, Optionen, Prüfsummen |
| A2h | Diagnose (128 Bytes + paginierte obere Hälfte) | Schwellwerte, Kalibrierungskonstanten, Live-Monitore, Status/Steuerung, Flags, Anwender-EEPROM, Herstellerseiten |
Ob A2h überhaupt existiert, wird in A0h Byte 92 Bit 6 deklariert. Die Standard-Bus-Geschwindigkeit beträgt 100 kHz. Byte-für-Byte-Tabellen: Speicherbelegung – Kurzreferenz.
A0h — Identität in fünf Blöcken
| Bytes | Block | Was dort steht |
|---|---|---|
| 0–2 | Typ | Identifier (03h = SFP-Familie, SFF-8024), erweiterter Identifier (04h = MOD_DEF 4, Serial-ID vorhanden), Steckverbinder-Code |
| 3–10 | Compliance-Codes | Bitfelder für 10G Ethernet, InfiniBand, ESCON, SONET, 1G Ethernet, Fibre-Channel-Länge / -Technologie / -Medium / -Geschwindigkeit — dekodiert in Compliance-Codes |
| 11–19 | Signal & Reichweite | Encoding (11), nominale Bitrate ×100 Mb/s (12), Rate-Identifier für RS0/RS1 (13, siehe Rate Select), Linklängen: SMF km (14), SMF ×100 m (15), OM2 ×10 m (16), OM1 ×10 m (17), OM4 ×10 m oder Kupfer in Metern (18), OM3 ×10 m (19) |
| 20–63 | Hersteller & Prüfsumme | Herstellername (20–35), erweiterter Compliance-Code aus SFF-8024 (36), IEEE-OUI (37–39), Teilenummer (40–55), Revision (56–59), Wellenlänge in nm oder Kabel-Compliance/-Dämpfung bei Kupfer (60–61), Fibre-Channel-Geschwindigkeit 2 (62), CC_BASE (63) — siehe Herstellerfelder |
| 64–95 | Erweiterte ID | Optionen (64–65), maximale/minimale Bitraten-Marge % (66–67) oder, wenn Byte 12 = FFh, ist Byte 66 die Rate in ×250 Mb/s, Seriennummer (68–83), Datumscode (84–91), Diagnosetyp (92), erweiterte Optionen (93), SFF-8472-Compliance-Revision (94), CC_EXT (95) |
| 96–127 | Herstellerspezifisch | frei für den Hersteller; enthält oft Konfiguration oder eine Signatur |
| 128–255 | Reserviert | reserviert für SFF-8079-Applikationsauswahltabellen |
Optionsbytes 64–65
| Byte.Bit | Bedeutung, wenn gesetzt |
|---|---|
| 64.5 | Hochleistungspegel-Deklaration — Level 3 (bis 2,0 W) |
| 64.4 | Paging implementiert — A2h Byte 127 wählt obere Seiten |
| 64.3 | Retimer oder CDR vorhanden |
| 64.2 | gekühlter Sender |
| 64.1 | Leistungspegel 2 (bis 1,5 W); nicht gesetzt = Level 1 (1,0 W) |
| 64.0 | linearer Empfängerausgang (z. B. 10GBASE-LRM) |
| 65.7 | Entscheidungsschwelle des Empfängers implementiert |
| 65.6 | durchstimmbarer Sender — siehe Tuning-Register |
| 65.5 | RATE_SELECT implementiert |
| 65.4 | TX_DISABLE implementiert |
| 65.3 | TX_FAULT implementiert |
| 65.2 | LOS-Signal ist invertiert |
| 65.1 | LOS implementiert |
Byte 92 — Diagnose-Überwachungstyp
| Bit | Bedeutung |
|---|---|
| 6 | digitale Diagnose (A2h) implementiert |
| 5 | intern kalibriert — A2h-Monitore liegen bereits in physikalischen Einheiten vor |
| 4 | extern kalibriert — Host muss die Konstanten bei A2h 56–91 anwenden |
| 3 | Empfangsleistungsmessung: 1 = Durchschnittsleistung, 0 = OMA |
| 2 | Adresswechselsequenz vor A2h-Zugriff erforderlich (Legacy) |
Wenn Bit 6 gesetzt ist, sollte genau eines der Bits 5 und 4 gesetzt sein. Was jeder Modus für die angezeigten Werte bedeutet: Kalibrierung.
Byte 93 — erweiterte Optionen
Bit 7 Alarm-/Warn-Flags implementiert · 6 Soft-TX_DISABLE-Steuerung · 5 Soft-TX_FAULT-Überwachung · 4 Soft-RX_LOS-Überwachung · 3 Soft-RATE_SELECT · 2 Applikationsauswahl nach SFF-8079 · 1 Soft-Rate-Select nach SFF-8431.
A2h — Diagnose in neun Blöcken
| Bytes | Block | Hinweise |
|---|---|---|
| 0–39 | Alarm- & Warnschwellwerte | fünf Monitore × (Alarm hoch, Alarm niedrig, Warnung hoch, Warnung niedrig), je 2 Bytes, gleiches Format wie der Live-Wert — Schwellwerte & Alarme |
| 40–55 | Optionale Schwellwerte | Lasertemperatur und TEC-Strom (gekühlte/durchstimmbare Module) |
| 56–91 | Kalibrierungskonstanten | Rx_PWR(4..0) als 32-Bit-Floats, Tx_I / Tx_PWR / T / V Steigung und Offset; nur aussagekräftig, wenn Byte 92 Bit 4 gesetzt ist |
| 92–94 | Reserviert | — |
| 95 | CC_DMI | Prüfsumme von A2h Bytes 0–94 — Prüfsummen |
| 96–105 | Echtzeitmonitore | Temperatur (96–97), Vcc (98–99), Tx-Bias (100–101), Tx-Leistung (102–103), Rx-Leistung (104–105) |
| 106–109 | Optionale Monitore | Lasertemperatur, TEC-Strom |
| 110–118 | Status & Steuerung | Byte 110 (unten), Alarm-Flags 112–113, Warn-Flags 116–117, erweiterter Status/Steuerung 118 (Soft-RS1, Leistungspegel-Zustand und -Select) |
| 119–126 | Herstellerspezifisch | in der Praxis der Bereich für Passworteingabe bei vielen controllerbasierten Modulen (123–126) — siehe Schreibschutzarten |
| 127 | Seitenauswahl | vorhanden, wenn A0h Byte 64 Bit 4 gesetzt ist |
| 128–255 | Obere Seiten | Seite 00h/01h: Anwender-EEPROM (128–247) und Herstellersteuerung (248–255); Seite 02h: Steuerfunktionen, Heimat der SFF-8690-Tuning-Register; andere Seiten herstellerspezifisch |
Monitor-Formate
| Monitor | Format | Einheit |
|---|---|---|
| Temperatur | vorzeichenbehaftet 16-Bit | 1/256 °C |
| Vcc | vorzeichenlos 16-Bit | 100 µV |
| Tx-Bias | vorzeichenlos 16-Bit | 2 µA |
| Tx-Leistung, Rx-Leistung | vorzeichenlos 16-Bit | 0,1 µW (Umrechnung in dBm: 10·log10(µW/1000)) |
Umrechnungen und durchgerechnete Beispiele: Einheiten & Umrechnungen.
Byte 110 — Status/Steuerung
| Bit | Bedeutung | Zugriff |
|---|---|---|
| 7 | TX_DISABLE-Pin-Zustand | lesen |
| 6 | Soft-TX_DISABLE | lesen/schreiben (falls Byte 93 Bit 6) |
| 5 | RS1-Pin-Zustand | lesen |
| 4 | RS0-Pin-Zustand (Rate Select) | lesen |
| 3 | Soft-RS0-Select | lesen/schreiben |
| 2 | TX_FAULT-Zustand | lesen |
| 1 | RX_LOS-Zustand | lesen |
| 0 | Daten nicht bereit (1, solange Monitore noch initialisieren) | lesen |
Besonderheiten bei Kupfer und Kabeln
Bei passivem und aktivem Kupfer (DAC) enthalten die Bytes 60–61 keine Wellenlänge: Bei passivem Kabel kennzeichnet Byte 60 die Konformität mit SFF-8431 Appendix E; bei aktivem Kabel markieren Bits die Konformität mit FC-PI-4/SFF-8431 limiting oder linear. Byte 8 Bits 2–3 kennzeichnen passive/aktive Kabeltechnologie, und Byte 18 trägt die Länge in Metern. Details: Kupfer-Ethernet & DAC.
Was Hosts tatsächlich lesen
Ein typischer Switch liest beim Einstecken A0h Bytes 0–95, prüft CC_BASE und CC_EXT, dekodiert Identifier, Steckverbinder, Compliance-Codes und Rate, gleicht den Herstellerblock gegen seine Richtlinie ab und pollt erst danach A2h für DDM — üblicherweise alle paar Sekunden. Die vollständige Abfolge und ihre Timings: Was der Host tut. Abweichungen zwischen diesen Feldern und der realen Optik sind die Ursache der meisten Tickets zu Geschwindigkeit & Rate und Herstellersperre.
In CodingBox
CodingBox liest sowohl A0h als auch A2h (einschließlich paginiertem A2h, wenn deklariert), beschriftet jedes Feld der obigen Tabellen im EEPROM-Editor, berechnet CC_BASE, CC_EXT und CC_DMI beim Schreiben neu, wendet auf dem Bildschirm DDM interne oder externe Kalibrierung an und zeigt die dekodierte Identität bei Check transceiver.
Byte-für-Byte- und Bit-für-Bit-Tabellen beider Geräte: A0h-Speicherbelegung, A2h-Speicherbelegung.