Der Controller und seine Firmware: DDM, APC, Speicher, Schutz · Im Inneren des Moduls: Laser und Empfänger · Optische Transceiver und Kabel · Dokumentation · CodingBox
CodingBox Dokumentation

Der Controller und seine Firmware: DDM, APC, Speicher, Schutz

Jeder verwaltete Transceiver hat einen kleinen Computer eingebaut. Der Mikrocontroller (MCU) misst, regelt, meldet und — aus Sicht des Programmierers am wichtigsten — ist der Speicher, den Sie lesen und schreiben. Ob ein Modul ein einfaches EEPROM hat oder einen MCU, der eines vortäuscht, entscheidet, wie es codiert werden kann, warum manche Schreibvorgänge nach einem Stromzyklus verschwinden und warum es überhaupt Passwörter gibt. Diese Seite beschreibt, was der Controller tut und wie sich sein Design auf der Werkbank zeigt.

Was der MCU tut

AufgabeDetailsSichtbar als
Messungtastet Temperatur (Thermistor oder On-Chip-Sensor), Vcc, Laser-Bias, Monitor-PD-Strom (Tx) und Empfänger-Fotostrom (Rx) mehrmals pro Sekunde über einen 10–12-Bit-ADC ab; wendet die Werkskalibrierung anDDM-Werte — Parameter
APC — automatische Leistungsregelungvergleicht den Monitor-PD-Strom mit dem Werkssollwert und passt den Bias-DAC des Treibers ankonstante Tx-Leistung, steigender Bias — Tx-Bias & Alterung
TemperaturkompensationLookup-Tabellen passen Modulationsstrom und, bei PAM4, DSP-Einstellungen über der Temperatur anstabiles Extinktionsverhältnis
TEC-RegelungPID-Regelkreis, der bei gekühlten Modulen die Lasertemperatur hält; Rückkopplung des Wellenlängen-Lockers bei DWDMLasertemperatur, TEC-Strom-Monitore
Schwellwerte und Flagsvergleicht jeden Monitorwert mit den Alarm-/Warnschwellen, setzt verriegelte Flags, steuert IntLSchwellwerte & Alarme
Low-Speed-Pinsliest TX_DISABLE, RS0/RS1, LPMode, ResetL; steuert TX_FAULT, RX_LOS (oder gattert die Hardwaresignale)Pin-Verhalten
Zweidraht-Slaveantwortet auf A0h/A2h (SFP) oder A0h mit Pages/Bänken (QSFP, CMIS)die Speicherkarte — Zweidraht-Schnittstelle
ZustandsautomatenCMIS-Modul- und Datenpfad-Zustände; Anwendungsauswahl; SquelchCMIS
Schutz- und Vendor-FunktionenPasswörter, schreibgeschützte Bereiche, Save-Befehle, Vendor-Unlock, AuthentifizierungssignaturenSchreibschutzarten
CDB/Firmware-Updateempfängt und flasht bei CMIS-Modulen neue Firmware-ImagesFirmware-Versions-Bytes

Typische Bauteile: 8-Bit-MCUs (8051-Klasse) mit wenigen kB Flash in günstigen SFP/SFP+; 32-Bit-Cortex-M-Klasse in 100G+- und CMIS-Modulen; manche Hersteller setzen einen dedizierten Transceiver-Controller-ASIC ein, der ADCs, DACs und den Zweidraht-Slave integriert.

Zwei Wege, den Speicher aufzubauen

DesignWie die Karte gespeichert wirdFolgen für die Programmierung
Diskretes EEPROM (z. B. AT24C02-Klasse) für A0h, MCU für A2hdie Identität in A0h ist ein echtes serielles EEPROM, mit dem Host und Programmiergerät direkt sprechen; der MCU übernimmt nur die DiagnoseSchreibvorgänge auf A0h sind normale EEPROM-Schreibvorgänge — t_WR und Seitengröße beachten; ein Hardware-WP-Pin kann sie blockieren (Schreibschutzarten 1–3)
MCU-emulierte Karteder MCU beantwortet jede Zweidraht-Anfrage aus dem RAM und spiegelt Änderungen in sein internes Flash/EEPROM — oder auch nichtSchreibvorgänge landen dort, wo die Firmware entscheidet: akzeptiert, ignoriert, passwortgesperrt, erst nach einem Save-Befehl gespeichert, oder beim nächsten Boot durch die eigene Kopie der Firmware überschrieben (Arten 4–5)
HybridEEPROM für den Vendor-Block, MCU für Pages und Passwörtergemischte Regeln je Byte-Bereich

Eine emulierte Karte erklärt die meisten Rätsel auf der Werkbank: FFh von einer Page, die die Firmware nicht implementiert, Schreibvorgänge, die „gelingen“ und dann zurückspringen, Bytes, die in einem Bereich schreibgeschützt und im nächsten frei sind, Clock Stretching, während der MCU mit dem Sampling beschäftigt ist (EEPROM-Lese-/Schreibfehler).

Boot und das t_init-Fenster

Beim Einschalten lädt der MCU Kalibrierung und Identität aus seinem nichtflüchtigen Speicher, startet den ADC, führt die APC bis zu ihrem Sollwert und aktiviert erst dann den Zweidraht-Slave und löscht data-not-ready. Das sind die 300 ms (SFP) bis 2 s (QSFP/CMIS), die die Spezifikationen einräumen, bevor ein Host Antworten erwarten darf, und der Grund, warum ein Lesevorgang unmittelbar nach dem Einstecken Datenmüll liefert (Was der Host tut).

Hier lebt die Kalibrierung

Die rohen ADC-Zählwerte bedeuten nichts ohne die Konstanten, die die Fabrik an einer Teststation gemessen hat: Monitor-PD-Strom vs. tatsächliche Sendeleistung, Empfänger-Fotostrom vs. Eingangsleistung bei der Wellenlänge des Moduls, Thermistorkurve, Bias-DAC-Skalierung. Bei intern kalibrierten Modulen wendet die Firmware sie an und meldet physikalische Einheiten; bei extern kalibrierten Modulen werden die Konstanten in A2h 56–91 geschrieben, damit der Host sie anwendet (Kalibrierung). Das Überschreiben des Vendor-Bereichs, in dem manche Firmwares diese Konstanten aufbewahren, erzeugt absurde DDM-Werte oder eine tote APC-Schleife — die klassische Art, wie ein unbedachter Schreibvorgang ein Modul „bricked“ (Fertigung & Prüfung).

Wie der Schutz umgesetzt ist

MechanismusUmsetzungSicht auf der Werkbank
Passwortdie Firmware vergleicht die 4 in den Passwortbereich geschriebenen Bytes (SFP A2h 123–126, QSFP 123–126, CMIS 122–125) mit einem gespeicherten Wert; schaltet Schreibvorgänge für die Sitzung freiWRITE FAIL, bis der richtige Wert eingegeben wird — Passwörter
Schreibgeschützte Bereichedie Firmware ignoriert Schreibvorgänge in Bereiche, die sie als schreibgeschützt betrachtet (Prüfsummen, Schwellwerte, Kalibrierung, Vendor-Bereich)beim Rücklesen unveränderte Bytes, kein Fehler
Hardware-WP-Pin an einem diskreten EEPROMder Pin liegt im Modul fest auf High oder wird vom MCU angesteuerterfordert, dass das Programmiergerät ihn ansteuert
Save-BefehlSchreibvorgänge landen im RAM; eine herstellerspezifische Sequenz übernimmt sie ins Flashspringt nach einem Stromzyklus zurück, sofern die Sequenz nicht gesendet wird
Firmware-Spiegelbeim Booten schreibt die Firmware die Karte aus ihrem eigenen Image neuÄnderungen verschwinden bei jedem Stromzyklus — nur das Tool des Herstellers kann das Image ändern
Authentifizierungdie Firmware berechnet eine Signatur (Hash aus Seriennummer, Vendor-Daten und einem Geheimnis) in Vendor-Bytes; der Host prüft sieIdentitätsänderungen bestehen die Prüfsummen, und dennoch lehnt der Host sie ab — Herstellersperre

Wie sich jede Art erkennen und programmieren lässt: Schreibschutzarten, EEPROM-Umcodierung.

Firmware-Updates

CMIS-Module können über den Zweidraht-Bus per CDB-Befehlen Firmware empfangen (Start-Download, Blöcke schreiben, Abschluss, Ausführen, Commit), oft mit zwei Image-Bänken, sodass ein fehlgeschlagenes Update zurückfällt. SFF-8472/8636-Module haben keinen Standardmechanismus; Hersteller nutzen proprietäre Sequenzen über Vendor-Bytes. Firmware-Fixes sind der Weg, wie Hersteller CMIS-Interoperabilitätsprobleme lösen (CMIS-Probleme), und Firmware-Versions-Bytes (CMIS Lower Page 39–40, Page 01h 128–129) lohnt es sich, zusammen mit der Identität festzuhalten.

Fehlermodi des Controllers

SymptomWahrscheinliche Ursache
Modul auf dem Bus unsichtbar, Optik ansonsten in OrdnungMCU bootet nicht: beschädigte Firmware, Brown-out, defekter Quarz
DDM-Werte eingefroren oder absurdADC- oder Kalibrierungsdefekt; Firmware hängt
Tx-Leistung driftet, obwohl die APC sie halten sollteFehler an Monitor-PD oder ADC, APC deaktiviert
Zufällige NACKs, langsame LesevorgängeMCU überlastet (Sampling), Clock-Stretch-Grenzen durch ein schnelles Programmiergerät überschritten
Funktioniert, aber jeder Schreibvorgang springt zurückFirmware-Spiegel per Design — kein Fehler
Modul nach einem Schreibvorgang totFirmware-Konfigurations- oder Kalibrierbereich überschrieben

In CodingBox

CodingBox behandelt das Modul so, wie die Firmware es darstellt: Es erkennt den Kartentyp, wendet bekannte Passwörter und Programmierskripte für Save-Befehl- und Spiegel-Designs an, berechnet Prüfsummen neu, legt vor jedem Schreibvorgang ein Backup an und lässt Sie es aus der Code-Datenbank wiederherstellen, falls ein Controller schlecht reagiert. Der EEPROM-Editor markiert Bereiche, die die Spezifikation als schreibgeschützt oder herstellerspezifisch definiert, damit Sie wissen, wann Sie in das private Territorium der Firmware schreiben.


Wenn Sie in diesem Artikel eine Ungenauigkeit oder einen Fehler finden, markieren Sie die betreffende Stelle und drücken Sie Ctrl+Enter, um .