CodingBox الوثائق

أنواع الحماية من الكتابة والبرمجة

يخبرك عامل الشكل أين تقيم حقول الوحدة. أما المحور الثاني، المستقل تمامًا، فيقرر هل يمكنك تغييرها: كيف تحمي الوحدة ذاكرتها من الكتابة. ويستخدم المصنّعون خمسة أساليب، ولكل واحد منها طريقة برمجة مختلفة. والتعرف على النوع أولًا يوفر ساعات من محاولات الكتابة الفاشلة.

أنواع الحماية الخمسة

#النوعكيف تتعرف عليهكيف يُبرمَج
1غير محميةتقبل الكتابة فورًاكتابة مباشرة — لكن بـساعة بطيئة
2دبوس الحماية من الكتابة العتاديللقراءة فقط مهما حاولت؛ ولا تفيد أي كلمة مرورالتحكم بخط WP أثناء الكتابة
3كلمة مرور (متحكم في البرنامج الثابت)WRITE FAIL حتى تُدخَل كلمة المرورأدخل كلمة المرور عند 0x7B أولًا
4تخزين مؤقت + أمر حفظتبدو الكتابة «ناجحة» لكنها تتراجع بعد دورة تغذيةأرسل تسلسل الحفظ الخاص بالمورّد
5مُركَّبةتحتاج تسلسل إدخال/إخراج خاصًا بالمورّد لفك القفلخوارزمية برمجة المورّد (سكربتات)

1. غير محمية

لا تفرض EEPROM أي قيد على الكتابة. والمشكلة العملية هي التوقيت: فالبرمجة الموثوقة تحتاج عادةً إلى ساعة ثنائية الأسلاك بمعدل 1 kHz تقريبًا — أي أبطأ بنحو عشر مرات من سرعة القراءة العادية. وعند السرعة القياسية، تفشل الكتابة بشكل متقطع وتترك صفحات مكتوبة جزئيًا. وثمة مؤشر مرتبط بذلك: في بعض الوحدات البسيطة تُقرأ A0h نظيفة بينما تُرجع A2h أخطاء.

2. دبوس الحماية من الكتابة العتادي

دبوس WP في EEPROM موصول بالتغذية عبر مقاومة، فتُقلِع الشريحة مقفلة. وفك القفل يعني سحب خط WP نحو الأرضي عبر مسار أقل ممانعة أثناء الكتابة — وهذا أمر لا يقدر عليه إلا لوحة مبرمج لها تحكم في ذلك الخط. ولا يستطيع البرنامج وحده تجاوز هذا النوع: تبقى الوحدة للقراءة فقط عبر دورات التغذية ومحاولات كلمة المرور.

3. محمية بكلمة مرور (متحكم في البرنامج الثابت)

وفق SFF-8472، تحجز كتلة A2h منطقة كلمة مرور بسعة 7 بايتات تبدأ عند الإزاحة 0x7B؛ وتستخدم معظم الوحدات كلمة مرور بسعة 4 بايتات. ويقارن متحكم داخل الوحدة ما يُكتب هناك بالقيمة المخزَّنة لديه، ولا يفك قفل الكتابة في EEPROM إلا عندئذ. وبلا كلمة المرور، تُرجع كل كتابة WRITE FAIL.

  • أدخل كلمة المرور الصحيحة، ثم اكتب.
  • إن كانت مجهولة: بحث قاموسي في كلمات مرور الموردين المعروفة (راجع إعادة ترميز EEPROM للقيم الشائعة) أو التواصل مع الشركة المصنِّعة.
  • وهذه المتحكمات حساسة لسرعة الساعة وللفجوات بين الكتل — سبب آخر للبرمجة ببطء.

4. تخزين مؤقت مع أمر حفظ

تستقر الكتابات في ذاكرة متطايرة. ويبدو كل شيء سليمًا — إلى أن تمر الوحدة بدورة تغذية فيعود الرمز القديم. ويحتاج البرنامج الثابت للمورّد إلى أمر حفظ صريح (تسلسل بايتات خاص) لتثبيت الصورة المؤقتة في التخزين الدائم. ولا يحدد أي معيار هذا الأمر؛ فتسلسل كل مورّد مختلف ويُسجَّل في سكربت.

5. الحماية المُركَّبة

تجمع أحدث الوحدات عدة آليات معًا: حماية WP العتادية وكلمة مرور وأمر حفظ وشروط تشغيلية مسبقة — مثل اشتراط وضع الوحدة في وضع القدرة المنخفضة قبل أن تقبل الكتابة. وهذا نمط معتاد في وحدات مراجعات SFF-8472 الحديثة التي تكشف 256 صفحة فأكثر فوق A2h عند الإزاحة 0x80، وفي وحدات CMIS. وتحتاج البرمجة إلى خوارزمية الشركة المصنِّعة، التي تُشارَك عادة مع عملاء الشراء بالجملة.

كيف تحدد النوع

  1. جرّب قراءة عادية: هل تُقرأ A2h نظيفة؟ (غالبًا ما يفشل النوع 1 هنا.)
  2. جرّب كتابة بايت واحد في حقل غير محمي: النجاح الفوري يعني النوع 1، وظهور WRITE FAIL يعني النوع 3 (أو 5)، والنجاح الصامت الذي يتراجع بعد دورة تغذية يعني النوع 4.
  3. أدخل كلمات مرور معروفة. إن بقيت للقراءة فقط، فهذا يعني النوع 2 (العتادي) أو النوع 5 (المُركَّب).
  4. تحقق من عامل الشكل ومراجعة المواصفة — عادة ما تكون وحدات CMIS ومراجعات SFF-8472 المتأخرة من النوع 5.

في CodingBox

  • إعدادات كلمة المرور — يُضبط عنوان الجدول، وعنوان كلمة المرور (0x7B)، والقيمة في الذاكرة المحمية من الكتابة وكلمات المرور؛ وتُطبَّق كلمات المرور المعروفة من قاعدة البيانات.
  • السكربتات — تحمل سكربتات البرمجة في CodingBox تسلسلات الحفظ الخاصة بالموردين وخوارزميات فك القفل للنوعين 4 و5.
  • الكتابة بايتًا بايتًا وخفض سرعة الساعة للوحدات التي تفشل عند السرعة القياسية.
  • تتولى لوحة المبرمج حماية WP العتادية، لا البرنامج.
  • تُحفظ كل قراءة في code database قبل الكتابة، لذا يمكن التعافي دائمًا من أي محاولة فاشلة.

الأعراض على منصة الاختبار — WRITE FAIL، وكتابة تتراجع، ورفض كلمة المرور — وما يجب فعله حيال كل واحد منها: أخطاء القراءة والكتابة في EEPROM.

لماذا توجد هذه الأنواع — EEPROM منفصلة مقابل خريطة يحاكيها MCU، وأوامر الحفظ، وانعكاسات البرنامج الثابت وتواقيعه كما ينفذها البرنامج الثابت: المتحكم والبرنامج الثابت.


إذا وجدت معلومة غير دقيقة أو خطأً في هذه المادة، فحدِّد المقطع المعني واضغط Ctrl+Enter .