İki telli arayüz: adresler, sayfalar, bankalar ve zamanlama · Spesifikasyonlar ve standartlar · Optik alıcı-vericiler ve kablolar · Belgeler · CodingBox
CodingBox Belgeler

İki telli arayüz: adresler, sayfalar, bankalar ve zamanlama

Her takılabilir modül, spesifikasyonların iki telli arayüz (TWI) dediği I²C protokolünü kullanarak aynı iki tel — bir seri saat ve bir seri veri hattı — üzerinden yönetilir. SFP, QSFP, XFP ve CMIS modülleri arasındaki fark, adres alanının bunun üzerinde nasıl düzenlendiğidir: ayrı cihazlar, sayfalanmış bellek veya sayfa bankaları. Bu materyal, programlayıcıların, hostların ve CodingBox’ın hepsinin dayandığı protokol düzeyindeki görünümdür.

Fiziksel katman

  • İki açık drenajlı hat, SCL ve SDA, host tarafında yukarı çekilir; 3,3 V mantık.
  • Modül her zaman slave’dir; host (veya programlayıcı) master’dır ve saati üretir.
  • Bir denetleyici veri getirirken modüller saati gerebilir (SCL’yi düşükte tutabilir) — spesifikasyonlar 500 µs’ye kadar izin verir.
  • Varlık ve seçim, veri yolu işlemleri değil ayrı pinlerdir: MOD_ABS (SFP), ModPrsL ve ModSelL (QSFP sınıfı ve CMIS). ModSelL, birkaç modülün bir veri yolunu paylaşmasına olanak tanır; SFP’de seçim pini yoktur, bu yüzden hostlar her kafese kendi veri yolunu veya bir çoklayıcı verir.

Spesifikasyona göre adres alanı

AileCihaz adresleri (8 bit yazma / 7 bit)DüzenSayfa seçimi
SFP, SFP+, SFP28 (SFF-8472)A0h / 50h kimlik, A2h / 51h tanılamaA0h: 256 düz bayt; A2h: 128 düz + isteğe bağlı sayfalanmış üst yarıA0h bayt 64 bit 4 ayarlıysa, A2h bayt 127
XFP (INF-8077i)A0h128 düz + sayfalanmış üst “tablolar”bayt 127
QSFP+, QSFP28 (SFF-8636)A0h128 düz + sayfalanmış üst 128bayt 127
QSFP-DD, OSFP, SFP-DD… (CMIS)A0h128 düz + üst 128’in banka × sayfalarıbayt 126 banka, bayt 127 sayfa

Bu nedenle bir SFP, temel işlevler için iki cihaz adresine ihtiyaç duyar ve sayfalama kullanmaz; XFP’den sonraki her şey tek adres ve sayfalama kullanır. Bazı eski SFP’ler A0h bayt 92 bit 2’yi (“adres değişikliği gerekli”) ayarlar ve A2h yanıt vermeden önce bir satıcı dizisine ihtiyaç duyar.

İşlemler

İşlemSıraNotlar
Rastgele okumaSTART · cihaz adresi+W · bayt ofseti · START · cihaz adresi+R · veri… · STOPgünlük okuma; ofset otomatik artar
Ardışık okumailk bayttan sonra saatlemeye devam edingeçerli cihaz/sayfa görünümünde 255 → 0’da sarar
Geçerli adres okumasıSTART · cihaz adresi+R · verison ofsetten devam eder — başka bir master araya girdiyse kırılgandır
Bayt yazmaSTART · adres+W · ofset · veri · STOPardından t_WR kadar bekleyin
Sayfa yazmaSTART · adres+W · ofset · veri × n · STOPbellek cihazıyla sınırlıdır (tipik olarak 4–16 bayt) ve kendi iç sayfa sınırını aşmamalıdır
Onay sorgulamamodül ACK verene kadar START + adres+W gönderinbir yazma döngüsünün bittiğini bilmenin en hızlı yolu

Bir üst sayfayı okumak her zaman iki işlemdir: sayfa seçim baytını yazın (127, CMIS bankaları için ayrıca 126), ardından 128–255’i okuyun. Seçim değiştirilene kadar kalıcıdır; bu yüzden eskimiş bir sayfa seçimi, “yanlış içerik” okumalarının klasik bir kaynağıdır.

Hız

SpesifikasyonSaat
SFF-8472 (SFP)temel 100 kHz; bazı modüller 400 kHz’e tolerans gösterir
INF-8077i (XFP)100 kHz
SFF-8636 rev 2.x (QSFP)400 kHz’e kadar
CMIS / QSFP-DD / OSFP donanım spesifikasyonları400 kHz’e kadar

Daha yavaş her zaman geçerlidir. Yazma için çoğu programlayıcı, nominal saatin çok altına — düşük kilohertz seviyesine — iner; çünkü EEPROM yazma döngüleri ve denetleyici aracılı modüller, okumalardan çok daha fazla zamanlamaya duyarlıdır.

Önemli olan zamanlamalar

ParametreTipik sınırAnlamı
t_init (SFP)300 msgüç verilmesinden / TX_DISABLE kaldırılmasından, modülün tam olarak çalışır duruma gelmesine ve veri yolunun yanıt vermesine kadar
t_init (QSFP)2 sbaşlatma tamamlanana ve Data_Not_Ready temizlenene kadar
MgmtInit (CMIS)donanım spesifikasyonlarına göre ≤ 2 smodül MgmtInit’ten çıkana ve kimlik geçerli olana kadar
t_WR40 msbir bayt veya ardışık yazma için maksimum yazma döngüsü; ACK’i sorgulayın veya bekleyin
t_clock_hold500 µsmodülün maksimum saat gerdirmesi
ton_IntL200 msbayrak olayından IntL etkinleşmesine kadar
Veri hazırbayt 110 bit 0 (SFP), bayt 2 bit 0 (QSFP)ayarlıyken ölçülen değerlere güvenmeyin

Tuzaklar ve düzeltmeleri

BelirtiProtokol nedeniDüzeltme
Tümü FFhACK yok — yanlış cihaz adresi, sayfa uygulanmamış, modül yokA0h’a karşı A2h’yi, sayfa bitlerini, oturmayı kontrol edin
Yanlış içerikeskimiş sayfa/banka seçimiher üst sayfa erişiminden önce 127’yi (ve 126’yı) yazın
Bozuk baytlarsaat çok hızlı, uzun kablo uçları, DDM’yi yoklayan bir hostla çakışmayavaşlatın, kısa kablo kullanın, canlı bir anahtarda değil tezgâhta okuyun
Yazma “başarılı” ama eskisini geri okutuyorçok hızlı yazıldı, t_WR yok sayıldı, bir sayfa yazma sınırı aşıldıbeklemeli bayt yazmaları veya küçük parçalar; ACK sorgulama
Veri yolu askıda kalır, SCL veya SDA düşükte sıkışıryarıda kesilen işlemdokuz SCL darbesi saatleyin, ardından STOP; modülü güç döngüsünden geçirin
Anahtarda çalışıyor, programlayıcıda ölümodül LPMode’un bırakılmasını veya bir seçim pinini bekliyorModSelL/LPMode’a uyun; t_init’e izin verin

Bunlar için tezgâh tarafı tanılama EEPROM okuma ve yazma hataları sayfasında toplanmıştır; veri yolunun üzerinde taşınan koruma şemaları (parolalar, donanımsal WP, kaydetme komutları) ise Yazma koruması türleri sayfasındadır.

Canlı bir sistemde okuma

Bir host DDM’yi birkaç saniyede bir yoklar ve bayraklara tepki verir; aynı veri yolundaki ikinci bir master (bir programlayıcı klipsi, bant içi bir araç) çakışmalara, yanlış adreslenmiş yazmalara ve en kötü durumda, yanlış bir ofsete inen bir sayfa yazmasının modülü kullanılamaz hale getirmesine yol açar. Gerekiyorsa yerinde okuyun; tezgâhta yazın.

CodingBox’ta

CodingBox, adres modelini form faktörüne göre otomatik olarak ele alır — SFP için A0h/A2h, QSFP ve XFP için sayfalama, CMIS için banka + sayfa — programlayıcı profiline göre veri yolu hızını ve yazma zamanlamasını ayarlamanızı sağlar ve her yazmayı geri okuyarak doğrular (Modül yazma).


Bu materyalde bir yanlışlık veya hata bulursanız ilgili bölümü seçin ve Ctrl+Enter tuşlarına basarak .