Yazma koruması türleri ve programlama · Alıcı-vericiler ve form faktörleri · Optik alıcı-vericiler ve kablolar · Belgeler · CodingBox
CodingBox Belgeler

Yazma koruması türleri ve programlama

Form faktörü, bir modülün alanlarının nerede bulunduğunu söyler. İkinci, bağımsız bir eksen ise onları değiştirip değiştiremeyeceğinizi belirler: modülün belleğini yazmalara karşı nasıl koruduğu. Üreticiler beş farklı yaklaşım kullanır ve her biri farklı bir programlama yöntemi gerektirir. Türü önceden tanımak, saatler süren başarısız yazma denemelerinden tasarruf sağlar.

Beş koruma türü

#TürNasıl tanınırNasıl programlanır
1KorumasızYazmaları hemen kabul ederDoğrudan yazma — ancak yavaş saat hızıyla
2Donanımsal yazma koruma piniNe yaparsanız yapın salt okunur; hiçbir parola işe yaramazYazma sırasında WP hattını kontrol edin
3Parola (ürün yazılımı kontrolörü)Parola girilene kadar WRITE FAILÖnce 0x7B’deki parolayı girin
4Geçici depolama + kaydetme komutuYazmalar “başarılı” olur ama güç döngüsünden sonra eski hâline dönerSatıcının kaydetme dizisini gönderin
5BirleşikKilidini açmak için satıcıya özgü bir G/Ç dizisi gerekirSatıcının programlama algoritması (betikler)

1. Korumasız

EEPROM’da yazma kısıtlaması yoktur. Pratikteki sorun zamanlamadır: güvenilir programlama genellikle normal okuma hızından yaklaşık on kat daha yavaş, ~1 kHz civarında iki telli bir saat hızı gerektirir. Standart hızda yazmalar aralıklı olarak başarısız olur ve kısmen yazılmış sayfalar bırakır. İlgili bir belirti: bazı basit modüllerde yalnızca A0h temiz okunurken A2h hata döndürür.

2. Donanımsal yazma koruma pini

EEPROM’un WP pini bir direnç üzerinden beslemeye bağlıdır, bu yüzden çip kilitli olarak açılır. Kilidi açmak, yazma sürerken WP hattını daha düşük empedanslı bir yol üzerinden toprağa çekmek anlamına gelir — bunu yalnızca o hat üzerinde kontrole sahip bir programlayıcı kart yapabilir. Yazılım tek başına bu türü aşamaz: modül, güç döngülerinde ve parola denemelerinde salt okunur kalır.

3. Parola korumalı (ürün yazılımı kontrolörü)

SFF-8472’ye göre, A2h bloğu 0x7B ofsetinden başlayan 7 baytlık bir parola alanı ayırır; çoğu modül 4 baytlık bir parola kullanır. Modüldeki bir kontrolör, oraya yazılanı kendi saklı değeriyle karşılaştırır ve yalnızca o zaman EEPROM yazmalarının kilidini açar. Parola olmadan her yazma WRITE FAIL döndürür.

  • Doğru parolayı girin, ardından yazın.
  • Bilinmiyorsa: bilinen satıcı parolalarında bir sözlük araması (yaygın değerler için bkz. EEPROM yeniden kodlama) veya üreticiye başvurun.
  • Bu kontrolörler saat hızına ve bloklar arasındaki boşluklara duyarlıdır — yavaş programlamak için bir neden daha.

4. Kaydetme komutuyla geçici depolama

Yazmalar uçucu bellekte kalır. Her şey yolunda görünür — ta ki modülün gücü döngüye alınıp eski kod geri dönene kadar. Satıcının ürün yazılımı, geçici görüntüyü kalıcı depolamaya işlemek için açık bir kaydetme komutu (özel bir bayt dizisi) gerektirir. Bunu hiçbir standart tanımlamaz; her satıcının dizisi farklıdır ve bir betik olarak kaydedilir.

5. Birleşik koruma

En yeni modüller birden fazla mekanizmayı üst üste kullanır: donanımsal WP ve bir parola ve bir kaydetme komutu ve işlevsel ön koşullar — örneğin modülün yazmaları kabul etmeden önce düşük güç modunda olması gerekir. Bu, A2h ofset 0x80’in üzerinde 256+ sayfa sunan yakın tarihli SFF-8472 revizyonlarındaki modüllerin ve CMIS modüllerinin tipik özelliğidir. Programlama, üreticinin algoritmasını gerektirir; bu genellikle toptan alım yapan müşterilerle paylaşılır.

Türü tanımlama

  1. Basit bir okuma deneyin: A2h temiz okunuyor mu? (Tür 1 genellikle burada başarısız olur.)
  2. Korumasız bir alana tek baytlık bir yazma deneyin. Anında başarı → tür 1. WRITE FAIL → tür 3 (veya 5). Güç döngüsünden sonra eski hâline dönen sessiz başarı → tür 4.
  3. Bilinen parolaları girin. Hâlâ salt okunursa → tür 2 (donanımsal) veya tür 5 (birleşik).
  4. Form faktörünü ve teknik özellik revizyonunu kontrol edin — CMIS ve geç revizyonlu SFF-8472 modülleri genellikle tür 5’tir.

CodingBox’ta

  • Parola ayarları — tablo adresi, parola adresi (0x7B) ve değeri Yazma korumalı bellek ve parolalar bölümünde ayarlanır; bilinen parolalar veritabanından uygulanır.
  • Betikler — CodingBox’ın programlama betikleri, tür 4 ve 5 için satıcı kaydetme dizilerini ve kilit açma algoritmalarını içerir.
  • Standart hızda başarısız olan modüller için bayt bayt yazma ve yavaş saatleme.
  • Donanımsal WP, yazılım tarafından değil, programlayıcı kart tarafından yönetilir.
  • Yazmadan önce her okuma code database’a kaydedilir, böylece başarısız bir deneme her zaman kurtarılabilir.

Tezgâhta görülen belirtiler — WRITE FAIL, eski hâline dönen bir yazma, reddedilen parola — ve her biri için yapılması gereken: EEPROM okuma ve yazma hataları.

Bu türlerin neden var olduğu — ayrı bir EEPROM’a karşı MCU tarafından emüle edilen bir harita, kaydetme komutları, ürün yazılımının uyguladığı şekliyle ürün yazılımı yansımaları ve imzalar: Kontrolör ve ürün yazılımı.


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