De controller en zijn firmware: DDM, APC, geheugen, beveiliging · Binnenin de module: lasers en ontvangers · Optische transceivers en kabels · Documentatie · CodingBox
CodingBox Documentatie

De controller en zijn firmware: DDM, APC, geheugen, beveiliging

Elke beheerde transceiver bevat een kleine computer. De microcontroller (MCU) meet, regelt, rapporteert en is, vanuit het oogpunt van de programmer, vooral het geheugen dat u leest en schrijft. Of een module een gewone EEPROM heeft of een MCU die zich als EEPROM voordoet, bepaalt hoe deze kan worden gecodeerd, waarom sommige schrijfacties na een stroomcyclus verdwijnen en waarom wachtwoorden überhaupt bestaan. Deze pagina beschrijft wat de controller doet en hoe het ontwerp ervan zich op de werkbank toont.

Wat de MCU doet

TaakDetailsZichtbaar als
Metingmeet temperatuur (thermistor of sensor op de chip), Vcc, laserbias, monitor-PD-stroom (Tx) en fotostroom van de ontvanger (Rx) via een 10–12-bit ADC meerdere malen per seconde; past fabriekskalibratie toeDDM-waarden — Parameters
APC — automatische vermogensregelingvergelijkt de monitor-PD-stroom met de fabrieksdoelwaarde en past de bias-DAC van de driver aanconstant Tx-vermogen, stijgende bias — Tx-bias en veroudering
Temperatuurcompensatieopzoektabellen passen de modulatiestroom en bij PAM4 de DSP-instellingen aan over de temperatuurstabiele extinctieverhouding
TEC-regelingPID-lus houdt de lasertemperatuur in gekoelde modules vast; golflengtevergrendeling geeft terugkoppeling bij DWDMmonitors voor lasertemperatuur en TEC-stroom
Drempels en vlaggenvergelijkt elke monitor met alarm-/waarschuwingsdrempels, stelt vastgehouden vlaggen in en stuurt IntLDrempels en alarmen
Lage-snelheidspinnenleest TX_DISABLE, RS0/RS1, LPMode, ResetL; stuurt TX_FAULT, RX_LOS aan (of gate de hardwaresignalen)pin-gedrag
Two-wire-slaveantwoordt op A0h/A2h (SFP) of A0h met pagina's/banken (QSFP, CMIS)de geheugenkaart — Two-wire-interface
ToestandsmachinesCMIS-module- en datapadtoestanden; applicatieselectie; squelchCMIS
Beveiliging en fabrikantfunctieswachtwoorden, tegen schrijven beveiligde regio's, opslagopdrachten, ontgrendeling door de fabrikant, authenticatiesignaturenTypen schrijfbeveiliging
CDB / firmware-updateontvangt en flasht nieuwe firmware-images op CMIS-modulesfirmwareversiebytes

Gebruikelijke onderdelen: 8-bit MCU's (8051-klasse) met enkele kB flash in goedkope SFP/SFP+-modules; 32-bit Cortex-M-klasse in 100G+- en CMIS-modules; sommige fabrikanten gebruiken een speciale transceiver-controller-ASIC die ADC's, DAC's en de two-wire-slave integreert.

Twee manieren om het geheugen op te bouwen

OntwerpHoe de kaart wordt opgeslagenGevolgen voor het programmeren
Afzonderlijke EEPROM (bijv. AT24C02-klasse) voor A0h, MCU voor A2hA0h-identiteit is een echte seriële EEPROM waarmee host en programmer rechtstreeks communiceren; de MCU behandelt alleen diagnostiekA0h-schrijfopdrachten zijn gewone EEPROM-schrijfopdrachten — houd rekening met t_WR en paginagrootte; een hardware-WP-pin kan ze blokkeren (Typen schrijfbeveiliging 1–3)
Door MCU geëmuleerde kaartde MCU beantwoordt elk two-wire-verzoek vanuit RAM en spiegelt wijzigingen naar zijn interne flash/EEPROM — of nietschrijfacties gaan waar de firmware beslist: geaccepteerd, genegeerd, met wachtwoord afgeschermd, alleen opgeslagen na een opslagopdracht, of bij de volgende start overschreven vanuit de eigen kopie van de firmware (typen 4–5)
HybrideEEPROM voor het fabrikantblok, MCU voor pagina's en wachtwoordengemengde regels per bytebereik

Een geëmuleerde kaart verklaart de meeste mysteries op de werkbank: FFh van een pagina die de firmware niet implementeert, schrijfacties die "slagen" en worden teruggedraaid, bytes die in het ene bereik alleen-lezen zijn en in het volgende vrij, klokstretchen terwijl de MCU bezig is met meten (EEPROM-lees- en schrijffouten).

Opstarten en het t_init-venster

Bij het inschakelen laadt de MCU kalibratie en identiteit uit zijn niet-vluchtige opslag, start de ADC, brengt de APC naar zijn doelwaarde en schakelt pas daarna de two-wire-slave in en wist data-not-ready. Dit zijn de 300 ms (SFP) tot 2 s (QSFP/CMIS) die de specificaties toestaan voordat een host antwoorden mag verwachten, en het verklaart waarom een uitlezing direct na het plaatsen rommel teruggeeft (Wat de host doet).

Kalibratie bevindt zich hier

De ruwe ADC-waarden betekenen niets zonder de constanten die de fabriek op een teststation heeft gemeten: monitor-PD-stroom tegenover werkelijk uitgezonden vermogen, fotostroom van de ontvanger tegenover ingangsvermogen bij de golflengte van de module, thermistorcurve, schaal van de bias-DAC. Bij intern gekalibreerde modules past de firmware deze toe en rapporteert fysieke eenheden; bij extern gekalibreerde modules worden de constanten naar A2h 56–91 geschreven zodat de host ze toepast (Kalibratie). Het overschrijven van het fabrikantgebied waar sommige firmwares deze constanten bewaren, veroorzaakt absurde DDM of een defecte APC-lus — de klassieke manier waarop een onzorgvuldige schrijfopdracht een module "brickt" (Productie en testen).

Hoe beveiliging wordt geïmplementeerd

MechanismeImplementatieOp de werkbank
Wachtwoordfirmware vergelijkt de 4 bytes die naar het wachtwoordgebied zijn geschreven (SFP A2h 123–126, QSFP 123–126, CMIS 122–125) met een opgeslagen waarde; ontgrendelt schrijfacties voor de sessieWRITE FAIL totdat de juiste waarde is ingevoerd — Wachtwoorden
Tegen schrijven beveiligde regio'sfirmware negeert schrijfacties naar bereiken die zij als alleen-lezen beschouwt (checksums, drempels, kalibratie, fabrikantgebied)bytes worden ongewijzigd teruggelezen, geen fout
Hardware-WP-pin op een afzonderlijke EEPROMde pin is in de module hoog verbonden of wordt door de MCU aangestuurdvereist dat de programmerboard deze aanstuurt
Opslagopdrachtschrijfacties komen in RAM terecht; een fabrikantspecifieke reeks schrijft ze naar flashwordt na een stroomcyclus teruggedraaid tenzij de reeks wordt verzonden
Firmware-spiegelbij het opstarten schrijft de firmware de kaart vanuit zijn eigen image opnieuwwijzigingen verdwijnen bij elke stroomcyclus — alleen de tool van de fabrikant kan het image wijzigen
Authenticatiede firmware berekent een handtekening (hash van serienummer, fabrikantgegevens en een geheim) in fabrikantbytes; de host controleert dezeidentiteitsbewerkingen doorstaan checksums, maar de host weigert nog steeds — Fabrikantvergrendeling

Hoe elk type wordt herkend en geprogrammeerd: Typen schrijfbeveiliging, EEPROM-hercodering.

Firmware-updates

CMIS-modules kunnen firmware via de two-wire-bus ontvangen met CDB-opdrachten (start download, schrijfblokken, voltooien, uitvoeren, commit), vaak met twee imagebanken zodat een mislukte update terugvalt. SFF-8472/8636-modules hebben geen standaardmechanisme; fabrikanten gebruiken eigen reeksen via fabrikantbytes. Firmware-oplossingen verhelpen CMIS-interoperabiliteitsproblemen (CMIS-problemen), en firmwareversiebytes (CMIS lower page 39–40, page 01h 128–129) zijn het waard om samen met de identiteit vast te leggen.

Storingsmodi van de controller

SymptoomWaarschijnlijke oorzaak
Module onzichtbaar op de bus, optiek verder in ordeMCU start niet op: beschadigde firmware, brown-out, beschadigd kristal
DDM-waarden bevroren of absurdADC- of kalibratiecorruptie; firmware hangt
Tx-vermogen drijft, hoewel APC dit moet vasthoudenstoring in monitor-PD of ADC, APC uitgeschakeld
Willekeurige NACK's, trage uitlezingenMCU overbelast (meten), klokstretchlimieten overschreden door een snelle programmer
Werkt, maar elke schrijfopdracht wordt teruggedraaidfirmware-spiegel volgens ontwerp — geen storing
Module defect na een schrijfopdrachtfirmwareconfiguratie of kalibratiegebied overschreven

In CodingBox

CodingBox behandelt de module zoals de firmware deze presenteert: de app detecteert het kaarttype, past bekende wachtwoorden en programmeerscripts toe voor ontwerpen met opslagopdracht en spiegeling, herberekent checksums, bewaart vóór elke schrijfopdracht een back-up en laat u deze herstellen uit de codedatabase als een controller slecht reageert. De EEPROM editor markeert bereiken die de specificatie definieert als alleen-lezen of fabrikantspecifiek, zodat u weet wanneer u in het private gebied van de firmware schrijft.


Vindt u een onjuistheid of fout in dit materiaal? Selecteer het betreffende fragment en druk op Ctrl+Enter om .