Kontroler dan firmware-nya: DDM, APC, memori, proteksi · Di dalam modul: laser dan penerima · Transceiver optik dan kabel · Dokumentasi · CodingBox
CodingBox Dokumentasi

Kontroler dan firmware-nya: DDM, APC, memori, proteksi

Setiap transceiver terkelola memiliki komputer kecil di dalamnya. Mikrokontroler (MCU) mengukur, mengatur, melaporkan, dan — dari sudut pandang programmer yang paling penting — adalah memori yang Anda baca dan tulis. Apakah sebuah modul memiliki EEPROM biasa atau MCU yang berpura-pura menjadi EEPROM menentukan bagaimana modul itu dapat dikodekan, mengapa sebagian penulisan hilang setelah siklus daya, dan mengapa kata sandi ada sama sekali. Halaman ini menjelaskan apa yang dilakukan kontroler dan bagaimana desainnya terlihat di meja kerja.

Apa yang dilakukan MCU

TugasDetailTerlihat sebagai
Pengukuranmengambil sampel suhu (termistor atau sensor terintegrasi), Vcc, bias laser, arus monitor-PD (Tx), dan fotoarus penerima (Rx) melalui ADC 10–12-bit beberapa kali per detik; menerapkan kalibrasi pabriknilai DDM — Parameter
APC — kontrol daya otomatismembandingkan arus monitor-PD dengan target pabrik dan menyesuaikan DAC bias driverdaya Tx konstan, bias naik — Tx bias & penuaan
Kompensasi suhutabel pencarian menyesuaikan arus modulasi dan, pada PAM4, setting DSP terhadap suhuextinction ratio stabil
Kontrol TECloop PID menjaga suhu laser pada modul yang didinginkan; umpan balik pengunci panjang gelombang pada DWDMmonitor suhu laser, arus TEC
Ambang dan flagmembandingkan setiap monitor dengan ambang alarm/peringatan, menetapkan flag ter-latch, menggerakkan IntLAmbang & alarm
Pin kecepatan rendahmembaca TX_DISABLE, RS0/RS1, LPMode, ResetL; menggerakkan TX_FAULT, RX_LOS (atau mengendalikan sinyal perangkat keras-nya)perilaku pin
Slave two-wiremerespons di A0h/A2h (SFP) atau A0h dengan halaman/bank (QSFP, CMIS)peta memori — Antarmuka two-wire
Mesin statusstatus modul dan jalur data CMIS; pemilihan aplikasi; squelchCMIS
Perlindungan dan fungsi vendorkata sandi, rentang perlindungan tulis, perintah simpan, pembukaan kunci vendor, tanda tangan autentikasiJenis perlindungan tulis
CDB / update firmwarepada modul CMIS, menerima dan mem-flash image firmware barubyte versi firmware

Komponen tipikal: MCU 8-bit (kelas 8051) dengan flash beberapa kB pada SFP/SFP+ berbiaya rendah; kelas 32-bit Cortex-M pada modul 100G+ dan CMIS; sebagian vendor memakai ASIC kontroler transceiver khusus yang mengintegrasikan ADC, DAC, dan slave two-wire.

Dua cara membangun memori

DesainCara peta disimpanKonsekuensi untuk pemrograman
EEPROM diskret (misalnya kelas AT24C02) untuk A0h, MCU untuk A2hidentitas A0h adalah EEPROM serial sungguhan yang diajak bicara langsung oleh host dan programmer; MCU hanya menangani diagnostikpenulisan A0h adalah penulisan EEPROM biasa — perhatikan t_WR dan ukuran halaman; pin WP perangkat keras dapat memblokirnya (Jenis perlindungan tulis 1–3)
Peta yang diemulasikan MCUMCU merespons setiap permintaan two-wire dari RAM dan mencerminkan perubahan ke flash/EEPROM internalnya — atau tidakpenulisan berakhir sesuai keputusan firmware: diterima, diabaikan, dijaga kata sandi, disimpan hanya setelah perintah simpan, atau ditimpa dari salinan firmware sendiri pada boot berikutnya (jenis 4–5)
HibridaEEPROM untuk blok vendor, MCU untuk halaman dan kata sandiaturan campuran per rentang byte

Peta yang diemulasikan menjelaskan sebagian besar misteri di meja kerja: FFh dari halaman yang tidak diimplementasikan firmware, penulisan yang “berhasil” lalu kembali seperti semula, byte yang read-only pada satu rentang dan bebas pada rentang berikutnya, clock stretching ketika MCU sedang sibuk mengambil sampel (Kesalahan baca & tulis EEPROM).

Boot dan jendela t_init

Saat dinyalakan, MCU memuat kalibrasi dan identitas dari penyimpanan non-volatile-nya, menjalankan ADC, menjalankan APC hingga mencapai targetnya, dan baru setelah itu mengaktifkan slave two-wire serta menghapus data-not-ready. Itulah rentang 300 ms (SFP) hingga 2 s (QSFP/CMIS) yang diizinkan spesifikasi sebelum host dapat mengharapkan jawaban, dan alasan mengapa pembacaan segera setelah penyisipan menghasilkan data sampah (Yang dilakukan host).

Di sinilah kalibrasi berada

Hitungan ADC mentah tidak berarti apa-apa tanpa konstanta yang diukur pabrik pada stasiun uji: arus monitor-PD vs daya pancar aktual, fotoarus penerima vs daya input pada panjang gelombang modul, kurva termistor, skala DAC bias. Pada modul dikalibrasi secara internal, firmware menerapkan konstanta ini dan melaporkan dalam satuan fisik; pada modul dikalibrasi secara eksternal, konstanta dituliskan ke A2h 56–91 agar diterapkan oleh host (Kalibrasi). Menimpa area vendor tempat sebagian firmware menyimpan konstanta ini menghasilkan DDM yang tidak masuk akal atau loop APC yang mati — cara klasik penulisan yang ceroboh “mem-brick” sebuah modul (Manufaktur & pengujian).

Bagaimana perlindungan diterapkan

MekanismeImplementasiTampilan di meja kerja
Kata sandifirmware membandingkan 4 byte yang dituliskan ke area kata sandi (SFP A2h 123–126, QSFP 123–126, CMIS 122–125) dengan nilai yang tersimpan; membuka penulisan untuk sesi tersebutWRITE FAIL hingga nilai yang benar dimasukkan — Kata sandi
Rentang perlindungan tulisfirmware mengabaikan penulisan ke rentang yang dianggapnya read-only (checksum, ambang, kalibrasi, area vendor)byte terbaca kembali tanpa perubahan, tanpa kesalahan
Pin WP perangkat keras pada EEPROM diskretpin ditarik tinggi di dalam modul atau digerakkan oleh MCUmembutuhkan papan programmer untuk menggerakkannya
Perintah simpanpenulisan mendarat di RAM; urutan khusus vendor meng-commit-nya ke flashkembali seperti semula setelah siklus daya kecuali urutan tersebut dikirim
Cermin firmwaresaat boot, firmware menulis ulang peta dari image miliknya sendiriperubahan hilang setiap siklus daya — hanya alat vendor yang dapat mengubah image tersebut
Autentikasifirmware menghitung tanda tangan (hash dari nomor seri, data vendor, dan sebuah rahasia) ke dalam byte vendor; host memverifikasinyaperubahan identitas lolos checksum tetapi host tetap menolaknya — Penguncian vendor

Bagaimana setiap jenis dikenali dan diprogram: Jenis perlindungan tulis, Pengodean ulang EEPROM.

Update firmware

Modul CMIS dapat menerima firmware melalui bus two-wire lewat perintah CDB (start download, write block, complete, run, commit), sering dengan dua image bank sehingga update yang gagal dapat fallback. Modul SFF-8472/8636 tidak memiliki mekanisme standar; vendor memakai urutan eksklusif melalui byte vendor. Perbaikan firmware adalah cara vendor menyelesaikan masalah interoperabilitas CMIS (Masalah CMIS), dan byte versi firmware (halaman bawah CMIS 39–40, halaman 01h 128–129) layak dicatat bersama identitasnya.

Mode kegagalan kontroler

GejalaKemungkinan penyebab
Modul tidak terlihat pada bus, optik baik-baik sajaMCU tidak boot: firmware korup, penurunan tegangan, kristal rusak
Nilai DDM beku atau tidak masuk akalkorupsi ADC atau kalibrasi; firmware hang
Daya Tx drift padahal seharusnya dijaga oleh APCgangguan monitor-PD atau ADC, APC nonaktif
NACK acak, pembacaan lambatMCU overload (pengambilan sampel), batas clock-stretch terlampaui oleh programmer yang cepat
Berfungsi, tetapi setiap penulisan kembali seperti semulacermin firmware memang dirancang begitu — bukan gangguan
Modul mati setelah penulisanarea konfigurasi firmware atau kalibrasi tertimpa

Di CodingBox

CodingBox memperlakukan modul sesuai dengan bagaimana firmware menyajikannya: mendeteksi jenis peta, menerapkan kata sandi yang diketahui dan script pemrograman untuk desain perintah-simpan dan cermin, menghitung ulang checksum, menyimpan backup sebelum setiap penulisan, dan memungkinkan Anda memulihkannya dari code database jika kontroler bereaksi buruk. EEPROM editor menandai rentang yang didefinisikan spesifikasi sebagai read-only atau khusus vendor sehingga Anda tahu kapan sedang menulis ke wilayah privat firmware.


Jika Anda menemukan ketidakakuratan atau kesalahan dalam artikel ini, pilih bagian teks yang bersangkutan lalu tekan Ctrl+Enter untuk .