Kontrolör ve ürün yazılımı: DDM, APC, bellek, koruma
Her yönetilebilir alıcı-vericinin içinde küçük bir bilgisayar bulunur. Mikrodenetleyici (MCU) ölçer, düzenler, raporlar ve — programcı açısından en önemlisi — okuyup yazdığınız bellek odur. Bir modülde sıradan bir EEPROM mu yoksa EEPROM’muş gibi davranan bir MCU mu bulunduğu, modülün nasıl kodlanabileceğini, bazı yazmaların neden bir güç döngüsünden sonra kaybolduğunu ve parolaların neden var olduğunu belirler. Bu sayfa denetleyicinin ne yaptığını ve tasarımının tezgâhta nasıl karşınıza çıktığını anlatır.
MCU ne yapar
| Görev | Ayrıntılar | Nasıl görünür |
|---|---|---|
| Ölçüm | sıcaklığı (termistör veya yonga üzeri sensör), Vcc’yi, lazer bias’ını, monitör PD akımını (Tx) ve alıcı foto akımını (Rx) saniyede birkaç kez 10–12 bit bir ADC üzerinden örnekler; fabrika kalibrasyonunu uygular | DDM değerleri — Parametreler |
| APC — otomatik güç kontrolü | monitör PD akımını fabrika hedefiyle karşılaştırır ve sürücünün bias DAC’ını ayarlar | sabit Tx gücü, yükselen bias — Tx bias ve yaşlanma |
| Sıcaklık kompanzasyonu | arama tabloları modülasyon akımını ve PAM4’te DSP ayarlarını sıcaklığa göre ayarlar | kararlı sönüm oranı |
| TEC kontrolü | soğutmalı modüllerde lazer sıcaklığını tutan bir PID döngüsü; DWDM’de dalga boyu kilitleyici geri beslemesi | lazer sıcaklığı, TEC akımı monitörleri |
| Eşikler ve bayraklar | her monitörü alarm/uyarı eşikleriyle karşılaştırır, mandallanmış bayraklar ayarlar, IntL’yi sürer | Eşikler ve alarmlar |
| Düşük hızlı pinler | TX_DISABLE, RS0/RS1, LPMode, ResetL’i okur; TX_FAULT, RX_LOS’u sürer (veya donanım sinyallerini geçirir) | pin davranışı |
| İki telli slave | A0h/A2h’de (SFP) veya sayfalar/bankalarla A0h’de (QSFP, CMIS) yanıt verir | bellek haritası — İki telli arayüz |
| Durum makineleri | CMIS modül ve veri yolu durumları; uygulama seçimi; susturma | CMIS |
| Koruma ve satıcı işlevleri | parolalar, yazma korumalı bölgeler, kaydetme komutları, satıcı kilidi açma, kimlik doğrulama imzaları | Yazma koruması türleri |
| CDB / ürün yazılımı güncelleme | CMIS modüllerinde yeni ürün yazılımı görüntülerini alır ve yazar | ürün yazılımı sürüm baytları |
Tipik parçalar: düşük maliyetli SFP/SFP+’ta birkaç kB flaşlı 8 bit MCU’lar (8051 sınıfı); 100G+ ve CMIS modüllerinde 32 bit Cortex-M sınıfı; bazı satıcılar ADC’leri, DAC’leri ve iki telli slave’i tümleştiren özel bir alıcı-verici denetleyici ASIC’i kullanır.
Belleği kurmanın iki yolu
| Tasarım | Harita nasıl saklanır | Programlama açısından sonuçları |
|---|---|---|
| A0h için ayrık EEPROM (örn. AT24C02 sınıfı), A2h için MCU | A0h kimlik bilgileri, hostun ve programlayıcının doğrudan konuştuğu gerçek bir seri EEPROM’dur; MCU yalnızca tanılamayı yönetir | A0h yazmaları sıradan EEPROM yazmalarıdır — t_WR’ye ve sayfa boyutuna uyun; donanımsal bir WP pini bunları engelleyebilir (Yazma koruması türleri 1–3) |
| MCU emülasyonlu harita | MCU her iki telli isteği RAM’den yanıtlar ve değişiklikleri dahili flaşına/EEPROM’una yansıtır — ya da yansıtmaz | yazmalar ürün yazılımının kararına göre gider: kabul edilir, yok sayılır, parola korumalıdır, yalnızca bir kaydetme komutundan sonra saklanır veya bir sonraki önyüklemede ürün yazılımının kendi kopyasından üzerine yazılır (türler 4–5) |
| Hibrit | satıcı bloğu için EEPROM, sayfalar ve parolalar için MCU | bayt aralığına göre karışık kurallar |
Emülasyonlu bir harita, tezgâhtaki çoğu gizemi açıklar: ürün yazılımının uygulamadığı bir sayfadan gelen FFh, “başarılı” olup geri dönen yazmalar, bir aralıkta salt okunur olup bir sonrakinde serbest olan baytlar, MCU örnekleme ile meşgulken saat germe (EEPROM okuma ve yazma hataları).
Önyükleme ve t_init penceresi
Güç verildiğinde MCU, kalibrasyon ve kimlik bilgilerini kalıcı belleğinden yükler, ADC’yi başlatır, APC’yi hedefine ulaşana kadar çalıştırır ve ancak o zaman iki telli slave’i etkinleştirip data-not-ready bayrağını temizler. Spesifikasyonların bir hostun yanıt beklemesine izin vermeden önce tanıdığı süre budur — SFP’de 300 ms, QSFP/CMIS’te 2 sn — ve takmadan hemen sonra yapılan bir okumanın anlamsız veri döndürmesinin nedeni de budur (Host ne yapar).
Kalibrasyon burada yaşar
Ham ADC sayımları, fabrikanın bir test istasyonunda ölçtüğü sabitler olmadan hiçbir anlam taşımaz: gerçek gönderim gücüne göre monitör PD akımı, modülün dalga boyunda giriş gücüne göre alıcı foto akımı, termistör eğrisi, bias DAC ölçeği. Dahili kalibrasyonlu modüllerde ürün yazılımı bunları uygular ve fiziksel birimler raporlar; harici kalibrasyonlu modüllerde sabitler, hostun uygulaması için A2h 56–91’e yazılır (Kalibrasyon). Bazı ürün yazılımlarının bu sabitleri tuttuğu satıcı alanının üzerine yazmak, anlamsız DDM’ye veya ölü bir APC döngüsüne yol açar — dikkatsiz bir yazmanın bir modülü “tuğlaya” çevirmesinin klasik yoludur (Üretim ve test).
Koruma nasıl uygulanır
| Mekanizma | Uygulama | Tezgâhtaki görünüm |
|---|---|---|
| Parola | ürün yazılımı, parola alanına (SFP A2h 123–126, QSFP 123–126, CMIS 122–125) yazılan 4 baytı saklanan bir değerle karşılaştırır; oturum için yazmaların kilidini açar | doğru değer girilene kadar WRITE FAIL — Parolalar |
| Yazma korumalı bölgeler | ürün yazılımı, salt okunur saydığı aralıklara (sağlama toplamları, eşikler, kalibrasyon, satıcı alanı) yapılan yazmaları yok sayar | baytlar değişmeden geri okunur, hata yok |
| Ayrık bir EEPROM üzerinde donanımsal WP pini | pin, modülün içinde yükseğe bağlanmıştır veya MCU tarafından sürülür | programlayıcı kartının onu sürmesi gerekir |
| Kaydetme komutu | yazmalar RAM’e düşer; satıcıya özgü bir dizi bunları flaşa işler | dizi gönderilmedikçe güç döngüsünden sonra geri döner |
| Ürün yazılımı yansıması | önyüklemede ürün yazılımı haritayı kendi görüntüsünden yeniden yazar | değişiklikler her güç döngüsünde kaybolur — görüntüyü yalnızca satıcının aracı değiştirebilir |
| Kimlik doğrulama | ürün yazılımı, satıcı baytlarına bir imza (seri numarasının, satıcı verisinin ve bir gizli anahtarın özeti) hesaplar; host bunu doğrular | kimlik düzenlemeleri sağlama toplamlarını geçer, ama host yine de reddeder — Satıcı kilidi |
Her türün nasıl tanındığı ve programlandığı: Yazma koruması türleri, EEPROM yeniden kodlama.
Ürün yazılımı güncellemeleri
CMIS modülleri, iki telli veri yolu üzerinden CDB komutlarıyla (indirmeyi başlat, blokları yaz, tamamla, çalıştır, işle) ürün yazılımı alabilir; başarısız bir güncellemenin geri dönebilmesi için genellikle iki görüntü bankası bulunur. SFF-8472/8636 modüllerinde standart bir mekanizma yoktur; satıcılar satıcı baytları üzerinden kendilerine özgü diziler kullanır. Satıcıların CMIS birlikte çalışabilirlik sorunlarını çözme yolu ürün yazılımı düzeltmeleridir (CMIS sorunları), ve ürün yazılımı sürüm baytlarını (CMIS alt sayfa 39–40, sayfa 01h 128–129) kimlik bilgileriyle birlikte kaydetmeye değer.
Denetleyicinin arıza türleri
| Belirti | Olası neden |
|---|---|
| Modül veri yolunda görünmüyor, optik aksi hâlde sorunsuz | MCU önyüklenmiyor: bozuk ürün yazılımı, gerilim düşmesi, hasarlı kristal |
| DDM değerleri donmuş veya anlamsız | ADC veya kalibrasyon bozulması; ürün yazılımı kilitlenmesi |
| APC tutması gerekirken Tx gücü kayıyor | monitör PD veya ADC arızası, APC devre dışı |
| Rastgele NACK’ler, yavaş okumalar | MCU aşırı yüklü (örnekleme), hızlı bir programlayıcının saat germe sınırlarını aşması |
| Çalışıyor, ama her yazma geri dönüyor | tasarım gereği ürün yazılımı yansıması — arıza değil |
| Bir yazmadan sonra modül ölü | ürün yazılımı yapılandırması veya kalibrasyon alanının üzerine yazılmış |
CodingBox’ta
CodingBox, modülü ürün yazılımının sunduğu şekilde ele alır: harita türünü tespit eder, kaydetme komutlu ve yansımalı tasarımlar için bilinen parolaları ve programlama betiklerini uygular, sağlama toplamlarını yeniden hesaplar, her yazmadan önce bir yedek tutar ve bir denetleyici kötü tepki verirse onu code database üzerinden geri yüklemenize olanak tanır. EEPROM editor, spesifikasyonun salt okunur veya satıcıya özgü olarak tanımladığı aralıkları işaretler, böylece ürün yazılımının özel bölgesine ne zaman yazdığınızı bilirsiniz.