Mapa de registros CMIS: páginas de carril (10h, 11h, VDM, CDB)
Todo lo relativo a cada carril en un módulo CMIS vive en páginas bancarizadas: el banco b (byte inferior 126) cubre los carriles 8b+1 … 8b+8. La página 10h es donde escribe el host — inicialización de la ruta de datos, Tx disable, polaridad, squelch, ecualización y los conjuntos de control por etapas que seleccionan aplicaciones; la página 11h es donde se lee de vuelta — estados de la ruta de datos, banderas por carril, monitores, estado de configuración y el conjunto de control activo. Las páginas 20h–2Fh contienen VDM y 9Fh el buzón CDB. Esta página enumera los bytes clave, compilados según CMIS 5.x (las posiciones de byte de algunos campos de integridad de señal difieren entre 4.x y 5.x; esos se dan como rangos). Narrativa: CMIS.
Leyenda: los bytes por carril usan el bit n−1 para el carril n (bit 0 = carril 1 … bit 7 = carril 8); los campos de nibble usan los bits 7–4 para el carril impar y 3–0 para el carril par de cada par, salvo que se indique lo contrario · rsvd = reservado.
Página 10h — control de carril (escritura del host)
| Byte | Campo | Bits / contenido |
|---|---|---|
| 128 | DPDeinitLane | bit por carril: 1 = desinicializar (llevar la ruta de datos del carril a DPDeactivated) |
| 129 | rsvd | — |
| 130 | OutputDisableTx | bit por carril: 1 = salida Tx (láser) apagada |
| 131 | PolarityFlipTx | bit por carril: invertir la entrada eléctrica Tx |
| 132 | SquelchDisableTx | bit por carril: 1 = desactivar el squelch automático de Tx |
| 133 | ForceSquelchTx | bit por carril: 1 = forzar squelch de Tx |
| 134 | rsvd | — |
| 135 | AdaptiveInputEqEnableTx | bit por carril: 1 = ecualización de entrada adaptativa del lado host |
| 136 | AdaptiveInputEqRecallTx | bit por carril: recuperar el ajuste de EQ guardado (4.x: congelar) |
| 137 | rsvd | — |
| 138–141 | FixedInputEqTargetTx | nibble por carril (138: carriles 1–2 … 141: carriles 7–8): código de EQ de entrada fija 0–15 |
| 142 | rsvd | — |
| 143 | ApplyDPInitLane | bit por carril: 1 = aplicar el Staged Control Set 0 y ejecutar DPInit |
| 144 | ApplyImmediateLane | bit por carril: aplicar SCS0 sin reinicializar la ruta de datos |
| 145–152 | Staged Control Set 0 — configuración de la ruta de datos | un byte por carril (145 = carril 1 … 152 = carril 8): bits 7–4 AppSelCode (1–15 = índice de descriptor, 0 = ninguno) · 3–1 DataPathID (primer carril de host de la ruta de datos − 1) · 0 ExplicitControl (1 = usar los ajustes SI de abajo en vez de los predeterminados de la aplicación) |
| 153 | SCS0 AdaptiveInputEqEnableTx | bit por carril |
| 154 | SCS0 AdaptiveInputEqRecallTx | bit por carril |
| 155 | rsvd | — |
| 156–159 | SCS0 FixedInputEqTargetTx | nibble por carril |
| 160 | SCS0 CDREnableTx | bit por carril: 1 = CDR de Tx activo, 0 = bypass |
| 161 | SCS0 CDREnableRx | bit por carril |
| 162–165 | SCS0 OutputEqPreCursorTargetRx | nibble por carril |
| 166–169 | SCS0 OutputEqPostCursorTargetRx | nibble por carril |
| 170–173 | SCS0 OutputAmplitudeTargetRx | nibble por carril |
| 174–177 | rsvd | — |
| 178–210 | Staged Control Set 1 | misma disposición que 145–177 (178–185 configuración de la ruta de datos, 186–210 objetivos SI) |
| 211–255 | Controles y máscaras de salida Rx | OutputDisableRx, PolarityFlipRx, SquelchDisableRx por carril; máscaras de bandera para la página 11h (posiciones de byte según revisión) |
Flujo de selección: escribir 145–152 → fijar 143 para los carriles → sondear la página 11h 202–205 buscando ConfigStatus → leer 128–131 para el estado de la ruta de datos — CMIS, Velocidad y tasa.
Página 11h — estado de carril (lectura del host)
| Byte | Campo | Bits / contenido |
|---|---|---|
| 128 | DPStateHostLane 1–2 | 3–0 estado del carril 1 · 7–4 estado del carril 2 (tabla de códigos abajo) |
| 129 | DPStateHostLane 3–4 | como arriba |
| 130 | DPStateHostLane 5–6 | — |
| 131 | DPStateHostLane 7–8 | — |
| 132–133 | rsvd | — |
| 134 | DPStateChangedFlag | bit por carril; con retención |
| 135 | TxFaultFlag | bit por carril |
| 136 | TxLOSFlag | bit por carril (LOS de entrada del lado host) |
| 137 | TxCDRLOLFlag | bit por carril |
| 138 | TxAdaptiveInputEqFailFlag | bit por carril |
| 139 | Alarma alta de potencia Tx | bit por carril |
| 140 | Alarma baja de potencia Tx | — |
| 141 | Advertencia alta de potencia Tx | — |
| 142 | Advertencia baja de potencia Tx | — |
| 143 | Alarma alta de bias Tx | — |
| 144 | Alarma baja de bias Tx | — |
| 145 | Advertencia alta de bias Tx | — |
| 146 | Advertencia baja de bias Tx | — |
| 147 | RxLOSFlag | bit por carril (LOS del lado de medio) |
| 148 | RxCDRLOLFlag | bit por carril |
| 149 | Alarma alta de potencia Rx | — |
| 150 | Alarma baja de potencia Rx | — |
| 151 | Advertencia alta de potencia Rx | — |
| 152 | Advertencia baja de potencia Rx | — |
| 153 | OutputStatusRx | bit por carril: 1 = salida Rx habilitada/válida |
| 154–169 | Monitores de potencia Tx | 2 bytes por carril (154–155 carril 1 … 168–169 carril 8), sin signo, 0,1 µW |
| 170–185 | Monitores de bias Tx | 2 bytes por carril, 2 µA × multiplicador |
| 186–201 | Monitores de potencia Rx | 2 bytes por carril, 0,1 µW |
| 202 | ConfigStatus carriles 1–2 | 3–0 carril 1 · 7–4 carril 2 (tabla de códigos abajo) |
| 203 | ConfigStatus carriles 3–4 | — |
| 204 | ConfigStatus carriles 5–6 | — |
| 205 | ConfigStatus carriles 7–8 | — |
| 206–213 | Active Control Set — configuración de la ruta de datos | un byte por carril, misma disposición que la página 10h 145–152: la configuración realmente vigente |
| 214–234 | Active Control Set — ajustes SI | habilitación/recuperación de EQ adaptativa, EQ fija, CDR Tx/Rx, precursor/postcursor de Rx, amplitud de Rx — reflejo de la disposición SCS |
| 235 | DPInitPending | bit por carril: 1 = una configuración por etapas espera ApplyDPInit |
| 236–255 | rsvd / banderas según revisión | — |
Códigos de estado de la ruta de datos (bytes 128–131)
| Código | Estado | Significado |
|---|---|---|
| 1h | DPDeactivated | carril inactivo; Tx apagado |
| 2h | DPInit | inicializando con la configuración aplicada |
| 3h | DPDeinit | desmontando |
| 4h | DPActivated | Tx encendido, datos fluyendo |
| 5h | DPTxTurnOn | el láser se está encendiendo |
| 6h | DPTxTurnOff | el láser se está apagando |
| 7h | DPInitialized | configurado, esperando la habilitación de Tx |
| 0h, 8h–Fh | rsvd | — |
Códigos de ConfigStatus (bytes 202–205)
| Código | Estado | Significado |
|---|---|---|
| 0h | ConfigUndefined | aún no se aplicó ninguna configuración |
| 1h | ConfigSuccess | el conjunto por etapas fue aceptado y está vigente |
| 2h | ConfigRejected | rechazo genérico |
| 3h | ConfigRejectedInvalidAppSel | el código AppSel no se anuncia |
| 4h | ConfigRejectedInvalidDataPath | DataPathID no permitido para esa aplicación |
| 5h | ConfigRejectedInvalidSI | el objetivo de integridad de señal está fuera de rango |
| 6h | ConfigRejectedLaneInUse | el carril ya forma parte de otra ruta de datos activa |
| 7h | ConfigRejectedPartialDataPath | no se configuraron todos los carriles de la ruta de datos |
| 8h–Bh | rsvd | — |
| Ch | ConfigInProgress | aplicando |
| Dh–Fh | personalizado | fabricante |
Página 12h — control del láser sintonizable (por carril)
Fijación del número de canal, fijación de longitud de onda/frecuencia, desplazamiento de ajuste fino, estado de sintonización y banderas por carril, con las capacidades en la página 04h — Mapas sintonizables.
Páginas 20h–2Fh — VDM (Versatile Diagnostics Monitoring)
| Páginas | Contenido | Disposición |
|---|---|---|
| 20h–23h | Descriptores | 2 bytes por observable (128–255 → 64 por página, 256 en total): byte 0 bits 7–4 ID del conjunto de umbrales, 3–0 carril (0 = nivel de módulo); byte 1 tipo de observable (1 edad del láser · 2 corriente TEC · 3 error de frecuencia del láser · 4 temperatura del láser · 5/6 eSNR medio/host · 7/8 transición de nivel PAM4 medio/host · 9–16 BER previo al FEC mín/máx/prom/actual medio/host · 17–24 FERC mín/máx/prom/actual medio/host · 128+ conjunto coherente) |
| 24h–27h | Muestras | 2 bytes por observable, mismo índice que su descriptor; formatos U16 / S16 / F16 |
| 28h–2Bh | Umbrales | 8 bytes por conjunto de umbrales: alarma alta, alarma baja, advertencia alta, advertencia baja |
| 2Ch–2Fh | Banderas y máscaras | banderas de alarma/advertencia por observable (2Ch–2Dh) y máscaras (2Eh–2Fh) |
Formato de relación F16: bits 15–11 exponente e, bits 10–0 mantisa m; valor = m × 10^(e − 24). Detalles: Métricas VDM y FEC.
Página 9Fh — bloque de comandos CDB
| Bytes | Campo | Contenido |
|---|---|---|
| 128–129 | CMD ID | identificador de comando, MSB primero (0000h consultar estado · 0040h capacidades del módulo · 0041h capacidades de gestión de firmware · 0100h obtener información de firmware · 0101h iniciar descarga de firmware · 0102h abortar · 0103h escribir bloque de firmware LPL · 0104h escribir bloque de firmware EPL · 0107h completar descarga · 0109h ejecutar imagen · 010Ah confirmar imagen) |
| 130–131 | Longitud EPL | bytes de carga útil extendida en las páginas A0h–AFh |
| 132 | Longitud LPL | bytes de carga útil local (0–120) |
| 133 | CdbChkCode | suma de comprobación sobre 128–132 y el LPL: complemento a uno de (Σ) mod 256 |
| 134 | Longitud RPL | longitud de la carga útil de respuesta escrita por el módulo |
| 135 | RplChkCode | suma de comprobación de la respuesta |
| 136–255 | LPL | carga útil local (parámetros de comando / respuesta) |
| A0h–AFh 128–255 | EPL | hasta 2048 bytes de carga útil extendida |
Escribir el byte 129 (el LSB del CMD ID) en último lugar dispara la ejecución; el host entonces sondea los bytes inferiores 37–38 (CdbStatus) hasta que se despeja CdbIsBusy.
Mapas relacionados
- Mapa de la página inferior de CMIS — estado del módulo, banderas, aplicaciones.
- Mapa de las páginas superiores de CMIS — identidad, anuncio de capacidades, umbrales.
- Mapa de la página inferior de SFF-8636 — el predecesor de 4 carriles.