SFF-8472 — SFP 진단
SFF-8472, 즉 광 트랜시버용 진단 모니터링 인터페이스는 SFP, SFP+, SFP28, 그리고 확장 코드를 쓰는 SFP56까지 모든 SFP 계열 모듈의 관리 규격입니다. SFP MSA(INF-8074)의 Serial ID 블록에서 출발해 그 블록을 바이트 그대로 유지한 채, 실시간 진단을 담당하는 두 번째 메모리 장치를 추가했습니다. 구리 SFP, PON 스틱, 튜너블 DWDM SFP+, DAC/AOC 케이블 양 끝단 모두 이 규격을 통해 자신을 드러냅니다. 개정 이력과 버전 바이트: 규격 버전.
두 개의 메모리 주소
모듈은 2선식 인터페이스를 통해 두 개의 장치 주소에서 읽습니다:
| 주소 | 장치 | 내용 |
|---|---|---|
| A0h | Serial ID EEPROM(256바이트, 플랫) | 식별 정보: 유형, 커넥터, 컴플라이언스 코드, 속도, 길이, 벤더 블록, 옵션, 체크섬 |
| A2h | 진단(128바이트 + 페이지형 상위 절반) | 임계값, 교정 상수, 실시간 측정값, 상태/제어, 플래그, 사용자 EEPROM, 벤더 페이지 |
A2h가 아예 존재하는지는 A0h 바이트 92 비트 6에 선언되어 있습니다. 기본 버스 속도는 100 kHz입니다. 바이트 단위 표: 메모리 맵 빠른 참조.
A0h: 다섯 블록으로 이루어진 식별 정보
| 바이트 | 블록 | 내용 |
|---|---|---|
| 0–2 | 유형 | 식별자(03h = SFP 계열, SFF-8024), 확장 식별자(04h = MOD_DEF 4, Serial ID 있음), 커넥터 코드 |
| 3–10 | 컴플라이언스 코드 | 10G 이더넷, InfiniBand, ESCON, SONET, 1G 이더넷, Fibre Channel 길이/기술/매체/속도를 위한 비트 필드 — 컴플라이언스 코드에서 디코딩 |
| 11–19 | 신호와 전송 거리 | 인코딩(11), 공칭 비트 레이트 ×100 Mb/s(12), RS0/RS1용 속도 식별자(13, 속도 선택 참고), 링크 길이: SMF km(14), SMF ×100 m(15), OM2 ×10 m(16), OM1 ×10 m(17), OM4 ×10 m 또는 구리 미터(18), OM3 ×10 m(19) |
| 20–63 | 벤더와 체크섬 | 벤더명(20–35), SFF-8024의 확장 컴플라이언스 코드(36), IEEE OUI(37–39), 부품 번호(40–55), 리비전(56–59), 파장(nm) 또는 구리용 케이블 컴플라이언스/감쇠(60–61), Fibre Channel 속도 2(62), CC_BASE(63) — 벤더 필드 참고 |
| 64–95 | 확장 ID | 옵션(64–65), 비트 레이트 최대/최소 마진 %(66–67), 단 바이트 12 = FFh이면 바이트 66은 ×250 Mb/s 단위의 속도, 시리얼 번호(68–83), 날짜 코드(84–91), 진단 유형(92), 확장 옵션(93), SFF-8472 컴플라이언스 리비전(94), CC_EXT(95) |
| 96–127 | 벤더 지정 | 제조사가 자유롭게 사용; 흔히 설정이나 서명을 담음 |
| 128–255 | 예약 | SFF-8079 애플리케이션 선택 표를 위해 예약 |
옵션 바이트 64–65
| 바이트.비트 | 설정 시 의미 |
|---|---|
| 64.5 | 고전력 레벨 선언 — 레벨 3(최대 2.0 W) |
| 64.4 | 페이징 구현 — A2h 바이트 127로 상위 페이지 선택 |
| 64.3 | 리타이머 또는 CDR 탑재 |
| 64.2 | 냉각형 송신기 |
| 64.1 | 전력 레벨 2(최대 1.5 W); 클리어 시 = 레벨 1(1.0 W) |
| 64.0 | 선형 수신기 출력(예: 10GBASE-LRM) |
| 65.7 | 수신기 판정 임계값 구현 |
| 65.6 | 튜너블 송신기 — 튜너블 맵 참고 |
| 65.5 | RATE_SELECT 구현 |
| 65.4 | TX_DISABLE 구현 |
| 65.3 | TX_FAULT 구현 |
| 65.2 | LOS 신호 반전 |
| 65.1 | LOS 구현 |
바이트 92: 진단 모니터링 유형
| 비트 | 의미 |
|---|---|
| 6 | 디지털 진단(A2h) 구현 |
| 5 | 내부 교정 — A2h 측정값이 이미 물리 단위로 표시됨 |
| 4 | 외부 교정 — 호스트가 A2h 56–91의 상수를 적용해야 함 |
| 3 | 수신 파워 측정 방식: 1 = 평균 파워, 0 = OMA |
| 2 | A2h 접근 전 주소 변경 시퀀스 필요(레거시) |
비트 6이 설정된 경우 비트 5와 4 중 정확히 하나만 설정되어야 합니다. 각 모드가 화면의 수치에 어떤 의미인지: 교정.
바이트 93: 확장 옵션
비트 7 알람/경고 플래그 구현 · 6 소프트 TX_DISABLE 제어 · 5 소프트 TX_FAULT 모니터링 · 4 소프트 RX_LOS 모니터링 · 3 소프트 RATE_SELECT · 2 SFF-8079 방식 애플리케이션 선택 · 1 SFF-8431 방식 소프트 속도 선택.
A2h: 아홉 블록으로 이루어진 진단
| 바이트 | 블록 | 비고 |
|---|---|---|
| 0–39 | 알람 및 경고 임계값 | 측정값 5개 × (하이 알람, 로우 알람, 하이 경고, 로우 경고), 각 2바이트, 실시간 값과 같은 형식 — 임계값과 알람 |
| 40–55 | 선택적 임계값 | 레이저 온도와 TEC 전류(냉각형/튜너블 모듈) |
| 56–91 | 교정 상수 | Rx_PWR(4..0)를 32비트 부동소수점으로, Tx_I/Tx_PWR/T/V의 기울기와 오프셋; 바이트 92 비트 4가 설정된 경우에만 의미 있음 |
| 92–94 | 예약 | — |
| 95 | CC_DMI | A2h 바이트 0–94의 체크섬 — 체크섬 |
| 96–105 | 실시간 측정값 | 온도(96–97), Vcc(98–99), Tx 바이어스(100–101), Tx 파워(102–103), Rx 파워(104–105) |
| 106–109 | 선택적 측정값 | 레이저 온도, TEC 전류 |
| 110–118 | 상태 및 제어 | 바이트 110(아래 참고), 알람 플래그 112–113, 경고 플래그 116–117, 확장 상태/제어 118(소프트 RS1, 전력 레벨 상태와 선택) |
| 119–126 | 벤더 지정 | 실제로는 많은 컨트롤러 기반 모듈에서 비밀번호 입력 영역(123–126) — 쓰기 보호 유형 참고 |
| 127 | 페이지 선택 | A0h 바이트 64 비트 4가 설정된 경우 존재 |
| 128–255 | 상위 페이지 | 페이지 00h/01h: 사용자 EEPROM(128–247)과 벤더 제어(248–255); 페이지 02h: 제어 기능, SFF-8690 튜너블 레지스터가 위치; 그 외 페이지는 벤더 지정 |
측정값 형식
| 측정값 | 형식 | 단위 |
|---|---|---|
| 온도 | 부호 있는 16비트 | 1/256 °C |
| Vcc | 부호 없는 16비트 | 100 µV |
| Tx 바이어스 | 부호 없는 16비트 | 2 µA |
| Tx 파워, Rx 파워 | 부호 없는 16비트 | 0.1 µW(dBm 변환: 10·log10(µW/1000)) |
환산과 예시 계산: 단위와 환산.
바이트 110: 상태/제어
| 비트 | 의미 | 접근 |
|---|---|---|
| 7 | TX_DISABLE 핀 상태 | 읽기 |
| 6 | 소프트 TX_DISABLE | 읽기/쓰기(바이트 93 비트 6인 경우) |
| 5 | RS1 핀 상태 | 읽기 |
| 4 | RS0 핀 상태(속도 선택) | 읽기 |
| 3 | 소프트 RS0 선택 | 읽기/쓰기 |
| 2 | TX_FAULT 상태 | 읽기 |
| 1 | RX_LOS 상태 | 읽기 |
| 0 | 데이터 미준비(측정값 초기화 중에는 1) | 읽기 |
구리와 케이블 관련 특이사항
패시브 및 액티브 구리(DAC)에서는 바이트 60–61이 파장을 담지 않습니다: 패시브 케이블은 바이트 60이 SFF-8431 부록 E 준수 여부를 나타내고, 액티브 케이블은 비트로 FC-PI-4/SFF-8431의 리미팅 또는 선형 준수를 나타냅니다. 바이트 8 비트 2–3은 패시브/액티브 케이블 기술을 나타내고, 바이트 18은 길이를 미터 단위로 담습니다. 자세히: 구리 이더넷과 DAC.
호스트가 실제로 읽는 것
일반적인 스위치는 삽입 시 A0h 바이트 0–95를 읽어 CC_BASE와 CC_EXT를 검증하고, 식별자, 커넥터, 컴플라이언스 코드, 속도를 디코딩하며, 벤더 블록을 자체 정책과 대조한 다음에야 A2h를 폴링해 DDM을 얻습니다 — 보통 몇 초마다입니다. 전체 시퀀스와 타이밍: 호스트의 동작. 이 필드들과 실제 광학계가 어긋나는 것이 대부분의 속도와 레이트, 벤더 락 문의의 근본 원인입니다.
CodingBox에서
CodingBox는 A0h와 A2h를 모두 읽고(선언된 경우 페이지형 A2h 포함), 위 표의 모든 필드에 EEPROM editor에서 이름표를 붙이며, 쓰기 시 CC_BASE, CC_EXT, CC_DMI를 다시 계산하고, DDM 화면에서 내부 또는 외부 교정을 적용하며, Check transceiver에서 디코딩된 식별 정보를 보여줍니다.
두 장치의 바이트별, 비트별 표: A0h 레지스터 맵, A2h 레지스터 맵.