Registerkaart CMIS: lane-pagina’s (10h, 11h, VDM, CDB)
Alles per lane in een CMIS-module staat op gebankte pagina’s: bank b (lager byte 126) omvat lanes 8b+1 … 8b+8. Op pagina 10h schrijft de host: datapadinitalisatie, Tx-uitschakeling, polariteit, squelch, egalisatie en de voorbereide besturingssets die toepassingen selecteren. Op pagina 11h leest de host terug: datapadtoestanden, flags per lane, monitors, configuratiestatus en de actieve besturingsset. Pagina’s 20h–2Fh bevatten VDM en 9Fh de CDB-mailbox. Deze pagina vermeldt de belangrijkste bytes, samengesteld op basis van CMIS 5.x (byteposities van enkele signaalintegriteitsvelden verschillen tussen 4.x en 5.x; die zijn als bereiken opgegeven). Toelichting: CMIS.
Legenda: bytes per lane gebruiken bit n−1 voor lane n (bit 0 = lane 1 … bit 7 = lane 8); nibblevelden gebruiken bits 7–4 voor de oneven lane en 3–0 voor de even lane van elk paar, tenzij anders vermeld · rsvd = gereserveerd.
Pagina 10h — lanebesturing (host schrijft)
| Byte | Veld | Bits / inhoud |
|---|---|---|
| 128 | DPDeinitLane | bit per lane: 1 = deïnitialiseren (brengt het datapad van de lane naar DPDeactivated) |
| 129 | rsvd | — |
| 130 | OutputDisableTx | bit per lane: 1 = Tx-uitgang (laser) uit |
| 131 | PolarityFlipTx | bit per lane: elektrische Tx-ingang inverteren |
| 132 | SquelchDisableTx | bit per lane: 1 = automatische Tx-squelch uitschakelen |
| 133 | ForceSquelchTx | bit per lane: 1 = Tx-squelch forceren |
| 134 | rsvd | — |
| 135 | AdaptiveInputEqEnableTx | bit per lane: 1 = adaptieve ingangsegalisatie aan hostzijde |
| 136 | AdaptiveInputEqRecallTx | bit per lane: opgeslagen EQ-instelling oproepen (4.x: bevriezen) |
| 137 | rsvd | — |
| 138–141 | FixedInputEqTargetTx | nibble per lane (138: lanes 1–2 … 141: lanes 7–8): vaste ingangsegalisatiecode 0–15 |
| 142 | rsvd | — |
| 143 | ApplyDPInitLane | bit per lane: 1 = Staged Control Set 0 toepassen en DPInit uitvoeren |
| 144 | ApplyImmediateLane | bit per lane: SCS0 toepassen zonder het datapad opnieuw te initialiseren |
| 145–152 | Staged Control Set 0 — datapadconfiguratie | één byte per lane (145 = lane 1 … 152 = lane 8): bits 7–4 AppSelCode (1–15 = descriptorindex, 0 = geen) · 3–1 DataPathID (eerste host-lane van het datapad − 1) · 0 ExplicitControl (1 = gebruik onderstaande SI-instellingen in plaats van de toepassingsstandaarden) |
| 153 | SCS0 AdaptiveInputEqEnableTx | bit per lane |
| 154 | SCS0 AdaptiveInputEqRecallTx | bit per lane |
| 155 | rsvd | — |
| 156–159 | SCS0 FixedInputEqTargetTx | nibble per lane |
| 160 | SCS0 CDREnableTx | bit per lane: 1 = Tx CDR aan, 0 = bypass |
| 161 | SCS0 CDREnableRx | bit per lane |
| 162–165 | SCS0 OutputEqPreCursorTargetRx | nibble per lane |
| 166–169 | SCS0 OutputEqPostCursorTargetRx | nibble per lane |
| 170–173 | SCS0 OutputAmplitudeTargetRx | nibble per lane |
| 174–177 | rsvd | — |
| 178–210 | Staged Control Set 1 | zelfde indeling als 145–177 (178–185 datapadconfiguratie, 186–210 SI-doelen) |
| 211–255 | Rx-uitgangsbesturing en maskers | OutputDisableRx, PolarityFlipRx, SquelchDisableRx per lane; flagmaskers voor pagina 11h (byteposities per revisie) |
Selectieverloop: schrijf 145–152 → zet 143 voor de lanes → vraag pagina 11h 202–205 op voor ConfigStatus → lees 128–131 voor de datapadtoestand — CMIS, Snelheid & rate.
Pagina 11h — lanestatus (host leest)
| Byte | Veld | Bits / inhoud |
|---|---|---|
| 128 | DPStateHostLane 1–2 | 3–0 lane 1-toestand · 7–4 lane 2-toestand (codetabel hieronder) |
| 129 | DPStateHostLane 3–4 | zoals hierboven |
| 130 | DPStateHostLane 5–6 | — |
| 131 | DPStateHostLane 7–8 | — |
| 132–133 | rsvd | — |
| 134 | DPStateChangedFlag | bit per lane; gelatcht |
| 135 | TxFaultFlag | bit per lane |
| 136 | TxLOSFlag | bit per lane (LOS aan hostzijde) |
| 137 | TxCDRLOLFlag | bit per lane |
| 138 | TxAdaptiveInputEqFailFlag | bit per lane |
| 139 | Tx-vermogen hoog alarm | bit per lane |
| 140 | Tx-vermogen laag alarm | — |
| 141 | Tx-vermogen hoge waarschuwing | — |
| 142 | Tx-vermogen lage waarschuwing | — |
| 143 | Tx-bias hoog alarm | — |
| 144 | Tx-bias laag alarm | — |
| 145 | Tx-bias hoge waarschuwing | — |
| 146 | Tx-bias lage waarschuwing | — |
| 147 | RxLOSFlag | bit per lane (LOS aan mediakant) |
| 148 | RxCDRLOLFlag | bit per lane |
| 149 | Rx-vermogen hoog alarm | — |
| 150 | Rx-vermogen laag alarm | — |
| 151 | Rx-vermogen hoge waarschuwing | — |
| 152 | Rx-vermogen lage waarschuwing | — |
| 153 | OutputStatusRx | bit per lane: 1 = Rx-uitgang ingeschakeld/geldig |
| 154–169 | Tx-vermogensmonitors | 2 bytes per lane (154–155 lane 1 … 168–169 lane 8), zonder teken, 0,1 µW |
| 170–185 | Tx-biasmonitors | 2 bytes per lane, 2 µA × vermenigvuldiger |
| 186–201 | Rx-vermogensmonitors | 2 bytes per lane, 0,1 µW |
| 202 | ConfigStatus lanes 1–2 | 3–0 lane 1 · 7–4 lane 2 (codetabel hieronder) |
| 203 | ConfigStatus lanes 3–4 | — |
| 204 | ConfigStatus lanes 5–6 | — |
| 205 | ConfigStatus lanes 7–8 | — |
| 206–213 | Active Control Set — datapadconfiguratie | één byte per lane, zelfde indeling als pagina 10h 145–152: de daadwerkelijk geldende configuratie |
| 214–234 | Active Control Set — SI-instellingen | adaptieve EQ inschakelen/oproepen, vaste EQ, CDR Tx/Rx, Rx pre/post-cursor, Rx-amplitude — spiegel van de SCS-indeling |
| 235 | DPInitPending | bit per lane: 1 = een voorbereide configuratie wacht op ApplyDPInit |
| 236–255 | rsvd / flags per revisie | — |
Datapadtoestandscodes (bytes 128–131)
| Code | Toestand | Betekenis |
|---|---|---|
| 1h | DPDeactivated | lane inactief; Tx uit |
| 2h | DPInit | initialiseert met de toegepaste configuratie |
| 3h | DPDeinit | wordt afgebouwd |
| 4h | DPActivated | Tx aan, gegevens stromen |
| 5h | DPTxTurnOn | laser wordt ingeschakeld |
| 6h | DPTxTurnOff | laser wordt uitgeschakeld |
| 7h | DPInitialized | geconfigureerd, wacht op Tx-inschakeling |
| 0h, 8h–Fh | rsvd | — |
ConfigStatus-codes (bytes 202–205)
| Code | Status | Betekenis |
|---|---|---|
| 0h | ConfigUndefined | nog geen configuratie toegepast |
| 1h | ConfigSuccess | voorbereide set geaccepteerd en van kracht |
| 2h | ConfigRejected | algemene afwijzing |
| 3h | ConfigRejectedInvalidAppSel | AppSel-code niet in de mogelijkheden vermeld |
| 4h | ConfigRejectedInvalidDataPath | DataPathID niet toegestaan voor die toepassing |
| 5h | ConfigRejectedInvalidSI | signaalintegriteitsdoel buiten bereik |
| 6h | ConfigRejectedLaneInUse | lane maakt al deel uit van een ander actief datapad |
| 7h | ConfigRejectedPartialDataPath | niet alle lanes van het datapad zijn geconfigureerd |
| 8h–Bh | rsvd | — |
| Ch | ConfigInProgress | wordt toegepast |
| Dh–Fh | custom | fabrikant |
Pagina 12h — afstembare laserbesturing (per lane)
Kanaalnummerinstelling, golflengte-/frequentie-instelling, fijnafstemmingsoffset, afstemstatus en flags per lane, met mogelijkheden op pagina 04h — Afstembare kaarten.
Pagina’s 20h–2Fh — VDM (Versatile Diagnostics Monitoring)
| Pagina’s | Inhoud | Indeling |
|---|---|---|
| 20h–23h | Descriptors | 2 bytes per observeerbare waarde (128–255 → 64 per pagina, 256 in totaal): byte 0 bits 7–4 ID van drempelset, 3–0 lane (0 = moduleniveau); byte 1 type observeerbare waarde (1 laserleeftijd · 2 TEC-stroom · 3 laserfrequentiefout · 4 lasertemperatuur · 5/6 eSNR media/host · 7/8 PAM4-niveauovergang media/host · 9–16 pre-FEC BER min/max/gem./huidig media/host · 17–24 FERC min/max/gem./huidig media/host · 128+ coherente set) |
| 24h–27h | Samples | 2 bytes per observeerbare waarde, dezelfde index als de descriptor; indelingen U16 / S16 / F16 |
| 28h–2Bh | Drempels | 8 bytes per drempelset: hoog alarm, laag alarm, hoge waarschuwing, lage waarschuwing |
| 2Ch–2Fh | Flags en maskers | alarm-/waarschuwingsflags per observeerbare waarde (2Ch–2Dh) en maskers (2Eh–2Fh) |
F16-ratioformaat: bits 15–11 exponent e, bits 10–0 mantisse m; waarde = m × 10^(e − 24). Details: VDM- & FEC-metrieken.
Pagina 9Fh — CDB-opdrachtblok
| Bytes | Veld | Inhoud |
|---|---|---|
| 128–129 | CMD ID | opdracht-ID, MSB eerst (0000h status opvragen · 0040h modulefuncties · 0041h functies voor firmwarebeheer · 0100h firmwareinformatie ophalen · 0101h firmwaredownload starten · 0102h afbreken · 0103h firmwareblok LPL schrijven · 0104h firmwareblok EPL schrijven · 0107h download voltooien · 0109h image uitvoeren · 010Ah image vastleggen) |
| 130–131 | EPL-lengte | bytes van extended payload in pagina’s A0h–AFh |
| 132 | LPL-lengte | bytes van local payload (0–120) |
| 133 | CdbChkCode | checksum over 128–132 en de LPL: one’s complement van (Σ) mod 256 |
| 134 | RPL-lengte | reply-payloadlengte die de module schrijft |
| 135 | RplChkCode | reply-checksum |
| 136–255 | LPL | local payload (opdrachtparameters / antwoord) |
| A0h–AFh 128–255 | EPL | maximaal 2048 bytes extended payload |
Het als laatste schrijven van byte 129 (de LSB van CMD ID) start de uitvoering; de host vraagt vervolgens lagere bytes 37–38 (CdbStatus) op totdat CdbIsBusy verdwijnt.
Gerelateerde kaarten
- CMIS lower page-kaart — modulestatus, flags, toepassingen.
- CMIS upper pages-kaart — identiteit, geadverteerde mogelijkheden, drempels.
- SFF-8636 lower page-kaart — de 4-lane-voorganger.