Карта регистров SFF-8472 A2h
Устройство диагностики по двухпроводному адресу A2h хранит всё, что меняется во время работы модуля класса SFP: пороги аварий и предупреждений, константы калибровки, живые мониторы, биты статуса и управления, защёлкнутые флаги, пользовательскую EEPROM и вендорские страницы. Здесь нижние 128 байт перечислены побайтно, плюс раскладка верхних страниц, по SFF-8472 Rev 12.4. Пояснения: SFF-8472, Пороги и аварии, Калибровка.
Обозначения: резерв = зарезервировано · опц = необязательно, реализовано только при соответствующем бите опций A0h · все 16-битные значения big-endian (младший адрес = старший байт).
Форматы мониторов (для порогов, мониторов и констант)
| Монитор | Формат | LSB | Диапазон |
|---|---|---|---|
| Температура | знаковое 16 бит, дополнительный код | 1/256 °C | −128 … +128 °C |
| Vcc | беззнаковое 16 бит | 100 мкВ | 0 … 6,55 В |
| Ток Tx | беззнаковое 16 бит | 2 мкА | 0 … 131 мА |
| Мощность Tx / Rx | беззнаковое 16 бит | 0,1 мкВт | 0 … 6,55 мВт (−40 … +8,2 дБм) |
| Температура лазера (опц) | знаковое 16 бит | 1/256 °C | как температура |
| Ток TEC (опц) | знаковое 16 бит | 0,1 мА | ±3,2 А; положительный = нагрев |
Пороги аварий и предупреждений — байты 0–55
| Байты | Поле | Байты | Поле |
|---|---|---|---|
| 0–1 | Температура, верхняя авария | 2–3 | Температура, нижняя авария |
| 4–5 | Температура, верхнее предупреждение | 6–7 | Температура, нижнее предупреждение |
| 8–9 | Vcc, верхняя авария | 10–11 | Vcc, нижняя авария |
| 12–13 | Vcc, верхнее предупреждение | 14–15 | Vcc, нижнее предупреждение |
| 16–17 | Ток Tx, верхняя авария | 18–19 | Ток Tx, нижняя авария |
| 20–21 | Ток Tx, верхнее предупреждение | 22–23 | Ток Tx, нижнее предупреждение |
| 24–25 | Мощность Tx, верхняя авария | 26–27 | Мощность Tx, нижняя авария |
| 28–29 | Мощность Tx, верхнее предупреждение | 30–31 | Мощность Tx, нижнее предупреждение |
| 32–33 | Мощность Rx, верхняя авария | 34–35 | Мощность Rx, нижняя авария |
| 36–37 | Мощность Rx, верхнее предупреждение | 38–39 | Мощность Rx, нижнее предупреждение |
| 40–41 | Температура лазера / длина волны, верхняя авария (опц) | 42–43 | … нижняя авария (опц) |
| 44–45 | … верхнее предупреждение (опц) | 46–47 | … нижнее предупреждение (опц) |
| 48–49 | Ток TEC, верхняя авария (опц) | 50–51 | Ток TEC, нижняя авария (опц) |
| 52–53 | Ток TEC, верхнее предупреждение (опц) | 54–55 | Ток TEC, нижнее предупреждение (опц) |
Пороги используют тот же формат, что и ограничиваемый монитор; у внешне калиброванных модулей они в сырых единицах и пересчитываются константами ниже.
Константы внешней калибровки — байты 56–91
Присутствуют и осмысленны только при установленном бите 4 байта 92 A0h (внешняя калибровка).
| Байты | Константа | Формат | Применение |
|---|---|---|---|
| 56–59 | Rx_PWR(4) | float IEEE-754 одинарной точности | Rx_power = Σ Rx_PWR(i) × raw^i, i = 4…0 |
| 60–63 | Rx_PWR(3) | float | (обычно 0) |
| 64–67 | Rx_PWR(2) | float | (обычно 0) |
| 68–71 | Rx_PWR(1) | float | наклон (обычно 1,0 при поведении «как внутренняя») |
| 72–75 | Rx_PWR(0) | float | смещение |
| 76–77 | Tx_I(наклон) | беззнаковое 16 бит, LSB 1/256 | Tx_bias = наклон × raw + смещение |
| 78–79 | Tx_I(смещение) | знаковое 16 бит | — |
| 80–81 | Tx_PWR(наклон) | беззнаковое 16 бит, LSB 1/256 | Tx_power = наклон × raw + смещение |
| 82–83 | Tx_PWR(смещение) | знаковое 16 бит | — |
| 84–85 | T(наклон) | беззнаковое 16 бит, LSB 1/256 | Температура = наклон × raw + смещение |
| 86–87 | T(смещение) | знаковое 16 бит | — |
| 88–89 | V(наклон) | беззнаковое 16 бит, LSB 1/256 | Vcc = наклон × raw + смещение |
| 90–91 | V(смещение) | знаковое 16 бит | — |
| 92–94 | резерв | — | — |
| 95 | CC_DMI | (Σ байтов 0–94) mod 256 | Контрольные суммы |
Мониторы реального времени — байты 96–109
| Байты | Монитор | Примечания |
|---|---|---|
| 96–97 | Температура | внутри модуля |
| 98–99 | Vcc | питание внутри модуля |
| 100–101 | Ток Tx | ток смещения лазера |
| 102–103 | Мощность Tx | с монитор-фотодиода |
| 104–105 | Мощность Rx | средняя (A0h 92.3 = 1) или OMA |
| 106–107 | Температура лазера или длина волны (опц) | формат температуры, либо длина волны в единицах 0,05 нм для перестраиваемых по SFF-8690 |
| 108–109 | Ток TEC (опц) | знаковый, 0,1 мА |
Статус и управление — байты 110–127
| Байт | Поле | Биты |
|---|---|---|
| 110 | Статус/управление | 7 состояние TX_DISABLE (пин или программное) · 6 программный TX_DISABLE (R/W, при A0h 93.6) · 5 состояние RS1 · 4 состояние RS0 / выбора скорости · 3 программный выбор RS0 (R/W, при 93.3) · 2 состояние TX_FAULT · 1 состояние RX_LOS · 0 данные не готовы (1, пока мониторы инициализируются) |
| 111 | резерв | зарезервирован под SFF-8079 |
| 112 | Флаги аварий | 7 температура верх · 6 температура низ · 5 Vcc верх · 4 Vcc низ · 3 ток Tx верх · 2 ток Tx низ · 1 мощность Tx верх · 0 мощность Tx низ |
| 113 | Флаги аварий | 7 мощность Rx верх · 6 мощность Rx низ · 5 температура лазера/длина волны верх (опц) · 4 … низ (опц) · 3 ток TEC верх (опц) · 2 ток TEC низ (опц) · 1–0 резерв |
| 114 | Управление входной эквализацией Tx / предыскажением Rx (опц) | биты 7–4 уровень входной эквализации Tx, 3–0 уровень предыскажения выхода Rx (активные кабели, SFF-8431); иначе резерв |
| 115 | резерв | — |
| 116 | Флаги предупреждений | раскладка как у байта 112 (температура, Vcc, ток Tx, мощность Tx верх/низ) |
| 117 | Флаги предупреждений | раскладка как у байта 113 (мощность Rx, температура лазера, ток TEC) |
| 118 | Расширенный статус/управление | 7–4 резерв · 3 программный выбор RS1 (R/W) · 2 состояние уровня мощности (1 = активен уровень 2/3) · 1 выбор уровня мощности (записать 1 для запроса уровня 2) · 0 выбор уровня мощности 3 ред. 12.3 |
| 119–122 | Вендорское | часто область смены пароля у модулей с контроллером |
| 123–126 | Вендорское | часто область ввода пароля (например, умолчания 00 00 10 11 у некоторых контроллеров) — Типы защиты от записи |
| 127 | Выбор страницы | выбирает верхнюю страницу (128–255) при бите 4 байта 64 A0h; по умолчанию 00h |
Флаги в 112–117 защёлкиваются: остаются установленными до чтения, и хост сбрасывает их чтением. Флаги аварий и предупреждений реализованы только при бите 7 байта 93 A0h.
Верхние страницы — байты 128–255 через байт 127
| Страница | Байты | Содержимое |
|---|---|---|
| 00h / 01h | 128–247 | Пользовательская EEPROM — 120 байт свободны для хоста или вендора (страница 01h в большинстве реализаций — алиас 00h) |
| 00h / 01h | 248–255 | Управление вендора — вендорские функции управления |
| 02h | 128–255 | Функции управления — регистры tunable SFF-8690: 128–129 управление дизерингом · 130–131 флаги возможностей перестройки · 132–133 первая частота, ТГц · 134–135 первая частота, ГГц ×0,1 · 136–137 последняя частота, ТГц · 138–139 … ГГц · 140–141 шаг сетки, ГГц ×0,1 · 144–145 установка номера канала · 146–147 установка длины волны ×0,05 нм · 152 управление дизерингом/длиной волны Tx · 168–169 ошибка частоты, ГГц ×0,1 · 170–171 ошибка длины волны, нм ×0,005 · 172 статус перестройки (биты: перестройка Tx идёт, длина волны не захвачена, ошибка перестройки) · 173–175 защёлкнутые статусы/флаги |
| 03h–7Fh | — | резерв |
| 80h–FFh | — | вендорские |
Пример декодирования
Байты A2h 96–105 читаются как 1A 80 80 E8 1B 58 0F A0 03 E8 у внутренне калиброванного модуля: температура 0x1A80 / 256 = 26,5 °C; Vcc 0x80E8 × 100 мкВ = 3,300 В; ток 0x1B58 × 2 мкА = 14,0 мА; Tx 0x0FA0 × 0,1 мкВт = 400 мкВт = −3,98 дБм; Rx 0x03E8 × 0,1 мкВт = 100 мкВт = −10,0 дБм. Байт 110 = 00 → Tx включён, нет отказа, нет LOS, данные готовы; 112–117 все 00 → флагов нет. Пошагово с инструментами: Снятие DDM инструментами.
Связанные карты
- Карта SFF-8472 A0h — блок идентификации.
- SFF-8636 нижняя страница 00h — QSFP-аналог (мониторы, флаги, управление).
- Нижняя страница CMIS — аналог в CMIS.