Kontroler i jego firmware: DDM, APC, pamięć, zabezpieczenia · Wnętrze modułu: lasery i odbiorniki · Transceivery optyczne i kable · Dokumentacja · CodingBox
CodingBox Dokumentacja

Kontroler i jego firmware: DDM, APC, pamięć, zabezpieczenia

Każdy zarządzany transceiver ma w środku mały komputer. Mikrokontroler (MCU) mierzy, reguluje, raportuje i — z punktu widzenia programisty najważniejsze — jest pamięcią, którą odczytujesz i zapisujesz. To, czy moduł ma zwykłą EEPROM, czy MCU udający EEPROM, decyduje o tym, jak można go zakodować, dlaczego część zapisów znika po cyklu zasilania i po co w ogóle istnieją hasła. Ta strona opisuje, co robi kontroler i jak jego konstrukcja objawia się na stanowisku.

Co robi MCU

ZadanieSzczegółyWidoczne jako
Pomiarpróbkuje przez 10–12-bitowy ADC kilka razy na sekundę temperaturę (termistor albo czujnik na chipie), Vcc, prąd polaryzacji lasera, prąd monitor-PD (Tx) i fotoprąd odbiornika (Rx); stosuje kalibrację fabrycznąwartości DDM — Parametry
APC — automatyczna regulacja mocyporównuje prąd monitor-PD z celem fabrycznym i dostraja DAC polaryzacji sterownikastała moc Tx, rosnący prąd polaryzacji — Prąd polaryzacji Tx i starzenie
Kompensacja temperaturowatabele przeglądowe dostrajają prąd modulacji oraz, w PAM4, ustawienia DSP w funkcji temperaturystabilny współczynnik wygaszenia
Sterowanie TECpętla PID utrzymująca temperaturę lasera w modułach chłodzonych; sprzężenie zwrotne stabilizatora długości fali w DWDMmonitory temperatury lasera i prądu TEC
Progi i flagiporównuje każdy monitor z progami alarmu/ostrzeżenia, ustawia zatrzaśnięte flagi, steruje IntLProgi i alarmy
Piny niskoprędkościoweodczytuje TX_DISABLE, RS0/RS1, LPMode, ResetL; steruje TX_FAULT, RX_LOS (albo przepuszcza sygnały sprzętowe)zachowanie pinów
Urządzenie podrzędne szyny dwuprzewodowejodpowiada pod A0h/A2h (SFP) albo A0h ze stronami/bankami (QSFP, CMIS)mapa pamięci — Interfejs dwuprzewodowy
Automaty stanówstany modułu i toru danych CMIS; wybór aplikacji; squelchCMIS
Ochrona i funkcje producentahasła, obszary chronione przed zapisem, polecenia zapisu, odblokowanie producenta, sygnatury uwierzytelniająceRodzaje zabezpieczenia przed zapisem
CDB / aktualizacja firmwarew modułach CMIS odbiera i wgrywa nowe obrazy firmwarebajty wersji firmware

Typowe układy: 8-bitowe MCU (klasy 8051) z kilkoma kB flash w tanich SFP/SFP+; 32-bitowe klasy Cortex-M w modułach 100G+ i CMIS; część producentów używa dedykowanego ASIC kontrolera transceivera, integrującego ADC, DAC i urządzenie podrzędne szyny dwuprzewodowej.

Dwa sposoby budowy pamięci

KonstrukcjaJak przechowywana jest mapaKonsekwencje dla programowania
Osobna EEPROM (np. klasy AT24C02) dla A0h, MCU dla A2hdane identyfikacyjne A0h to prawdziwa szeregowa EEPROM, z którą host i programator rozmawiają bezpośrednio; MCU zajmuje się tylko diagnostykązapisy do A0h to zwykłe zapisy EEPROM — trzeba respektować t_WR i rozmiar strony; sprzętowy pin WP może je blokować (Rodzaje zabezpieczenia przed zapisem 1–3)
Mapa emulowana przez MCUMCU odpowiada na każde żądanie z szyny dwuprzewodowej z RAM i odzwierciedla zmiany w swojej wewnętrznej flash/EEPROM — albo niezapisy trafiają tam, gdzie zdecyduje firmware: przyjęte, zignorowane, zablokowane hasłem, zapisane dopiero po poleceniu zapisu, albo nadpisane własną kopią firmware przy następnym rozruchu (rodzaje 4–5)
HybrydaEEPROM dla bloku producenta, MCU dla stron i hasełmieszane reguły w zależności od zakresu bajtów

Emulowana mapa wyjaśnia większość zagadek ze stanowiska: FFh ze strony, której firmware nie implementuje, zapisy, które „udają się” i cofają, bajty tylko do odczytu w jednym zakresie i wolne w sąsiednim, rozciąganie taktu, gdy MCU jest zajęty próbkowaniem (Błędy odczytu i zapisu EEPROM).

Rozruch i okno t_init

Przy włączeniu zasilania MCU wczytuje kalibrację i dane identyfikacyjne z pamięci nieulotnej, uruchamia ADC, doprowadza APC do wartości docelowej i dopiero wtedy włącza urządzenie podrzędne szyny dwuprzewodowej oraz kasuje data-not-ready. To te 300 ms (SFP) do 2 s (QSFP/CMIS), które specyfikacje dają, zanim host może oczekiwać odpowiedzi, i powód, dla którego odczyt zaraz po wsunięciu zwraca śmieci (Co robi host).

Tu mieszka kalibracja

Surowe odczyty ADC nic nie znaczą bez stałych, które fabryka zmierzyła na stacji testowej: prąd monitor-PD względem rzeczywistej mocy nadawanej, fotoprąd odbiornika względem mocy wejściowej na długości fali modułu, krzywa termistora, skala DAC polaryzacji. W modułach kalibrowanych wewnętrznie firmware je stosuje i raportuje jednostki fizyczne; w modułach kalibrowanych zewnętrznie stałe są zapisane w A2h 56–91, żeby zastosował je host (Kalibracja). Nadpisanie obszaru producenta, w którym część firmware'ów trzyma te stałe, daje absurdalny DDM albo martwą pętlę APC — to klasyczny sposób, w jaki nieostrożny zapis zamienia moduł w bezużyteczną „cegłę” (Produkcja i testowanie).

Jak zaimplementowana jest ochrona

MechanizmImplementacjaWidok ze stanowiska
Hasłofirmware porównuje 4 bajty zapisane w obszarze hasła (SFP A2h 123–126, QSFP 123–126, CMIS 122–125) z zapisaną wartością; odblokowuje zapisy na czas sesjiWRITE FAIL, dopóki nie zostanie podana właściwa wartość — Hasła
Obszary chronione przed zapisemfirmware ignoruje zapisy do zakresów, które uważa za tylko do odczytu (sumy kontrolne, progi, kalibracja, obszar producenta)bajty odczytane z powrotem bez zmian, bez błędu
Sprzętowy pin WP w osobnej EEPROMpin jest podciągnięty wewnątrz modułu albo sterowany przez MCUwymaga, żeby sterowała nim płytka programująca
Polecenie zapisuzapisy trafiają do RAM; sekwencja specyficzna dla producenta zatwierdza je we flashcofa się po cyklu zasilania, jeśli sekwencja nie zostanie wysłana
Kopia lustrzana firmwareprzy rozruchu firmware przepisuje mapę z własnego obrazuzmiany znikają przy każdym cyklu zasilania — obraz może zmienić tylko narzędzie producenta
Uwierzytelnianiefirmware oblicza sygnaturę (hash numeru seryjnego, danych producenta i sekretu) do bajtów producenta; host ją weryfikujeedycje danych identyfikacyjnych przechodzą sumy kontrolne, a host mimo to odrzuca — Blokada producenta

Jak rozpoznać i zaprogramować każdy typ: Rodzaje zabezpieczenia przed zapisem, Przekodowanie EEPROM.

Aktualizacje firmware

Moduły CMIS mogą odbierać firmware przez szynę dwuprzewodową za pomocą poleceń CDB (rozpoczęcie pobierania, zapis bloków, zakończenie, uruchomienie, zatwierdzenie), często z dwoma bankami obrazów, dzięki czemu nieudana aktualizacja się wycofuje. Moduły SFF-8472/8636 nie mają standardowego mechanizmu; producenci używają zastrzeżonych sekwencji przez bajty producenta. Poprawki firmware to sposób, w jaki producenci rozwiązują problemy z interoperacyjnością CMIS (Problemy z CMIS), a bajty wersji firmware (dolna strona CMIS 39–40, strona 01h 128–129) warto zapisywać razem z danymi identyfikacyjnymi.

Tryby awarii kontrolera

ObjawPrawdopodobna przyczyna
Moduł niewidoczny na szynie, optyka poza tym sprawnaMCU się nie uruchamia: uszkodzony firmware, zanik zasilania, uszkodzony kwarc
Wartości DDM zamrożone albo absurdalneuszkodzenie ADC albo kalibracji; zawieszenie firmware
Moc Tx dryfuje, mimo że APC powinno ją utrzymywaćusterka monitor-PD albo ADC, APC wyłączone
Losowe NACK, wolne odczytyMCU przeciążony (próbkowaniem), szybki programator przekracza limity rozciągania taktu
Działa, ale każdy zapis się cofakopia lustrzana firmware zgodnie z zamierzeniem — to nie usterka
Moduł martwy po zapisienadpisany obszar konfiguracji albo kalibracji firmware

W CodingBox

CodingBox traktuje moduł tak, jak przedstawia go firmware: wykrywa typ mapy, stosuje znane hasła i skrypty programujące dla konstrukcji z poleceniem zapisu i kopią lustrzaną, przelicza sumy kontrolne, zachowuje kopię zapasową przed każdym zapisem i pozwala ją przywrócić z code database, jeśli kontroler zareaguje źle. EEPROM editor oznacza zakresy, które specyfikacja definiuje jako tylko do odczytu albo specyficzne dla producenta, żebyś wiedział, kiedy zapisujesz na prywatnym terytorium firmware.


Jeśli znajdziesz nieścisłość lub błąd w tym materiale, zaznacz odpowiedni fragment i naciśnij Ctrl+Enter, aby .