CodingBox الوثائق

وحدة التحكم وبرنامجها الثابت: DDM وAPC والذاكرة والحماية

يحتوي كل وحدة إرسال واستقبال مُدارة على حاسوب صغير بداخلها. المتحكم الدقيق (MCU) يقيس، وينظّم، ويُبلغ، والأهم من وجهة نظر المبرمج — هو الذاكرة التي تقرؤها وتكتب فيها. وسواء أكانت الوحدة تحتوي EEPROM عادية أم MCU يتظاهر بأنه كذلك فهذا ما يحدد كيفية ترميزها، ولماذا تختفي بعض الكتابات بعد دورة تغذية، ولماذا توجد كلمات المرور أصلًا. وتصف هذه الصفحة ما يفعله المتحكم وكيف يظهر تصميمه على منصة الاختبار.

ما الذي يفعله MCU

المهمةالتفاصيلتظهر باسم
القياسيأخذ عينات من درجة الحرارة (ثرمستور أو مستشعر على الشريحة)، وVcc، وانحياز الليزر، وتيار PD المراقِب (Tx)، والتيار الضوئي للمستقبل (Rx) عبر ADC بدقة 10–12 بت عدة مرات في الثانية؛ ويطبّق معايرة المصنعقيم DDMالمعاملات
APC — التحكم الآلي في القدرةيقارن تيار PD المراقِب بهدف المصنع ويضبط DAC انحياز المشغّلقدرة Tx ثابتة، وانحياز مرتفع — انحياز Tx والتقادم
تعويض درجة الحرارةتضبط جداول البحث تيار التضمين، وعلى PAM4 إعدادات DSP، عبر درجة الحرارةنسبة إطفاء ثابتة
التحكم في TECحلقة PID تُبقي درجة حرارة الليزر ثابتة في الوحدات المبرَّدة؛ وتغذية راجعة من مثبِّت الطول الموجي في DWDMمراقبا درجة حرارة الليزر وتيار TEC
العتبات والأعلاميقارن كل قيمة مراقَبة بعتبات الإنذار/التحذير، ويضبط أعلامًا مُثبَّتة، ويقود IntLالعتبات والإنذارات
الدبابيس المنخفضة السرعةيقرأ TX_DISABLE وRS0/RS1 وLPMode وResetL؛ ويقود TX_FAULT وRX_LOS (أو يبوّب الإشارات العتادية)سلوك الدبابيس
التابع الثنائي السلكيجيب عند A0h/A2h (SFP) أو A0h بصفحات/مصارف (QSFP، CMIS)خريطة الذاكرة — الواجهة الثنائية السلك
آلات الحالةحالات وحدة CMIS ومسار البيانات؛ واختيار التطبيق؛ والكتمCMIS
الحماية ووظائف المورّدكلمات المرور، ومناطق الحماية من الكتابة، وأوامر الحفظ، وفتح قفل المورّد، وتوقيعات المصادقةأنواع الحماية من الكتابة
CDB / تحديث البرنامج الثابتيستقبل صور برنامج ثابت جديدة ويكتبها في وحدات CMISبايتات إصدار البرنامج الثابت

أجزاء نمطية: وحدات MCU بـ 8 بت (من فئة 8051) بسعة فلاش قليلة الكيلوبايتات في SFP/SFP+ منخفضة التكلفة؛ ووحدات من فئة Cortex-M بـ 32 بت في وحدات 100G+ وCMIS؛ ويستخدم بعض الموردين ASIC مخصصًا للتحكم بوحدة الإرسال والاستقبال يدمج ADC وDAC والتابع الثنائي السلك.

طريقتان لبناء الذاكرة

التصميمكيفية تخزين الخريطةالتبعات على البرمجة
EEPROM منفصلة (مثلًا من فئة AT24C02) لـ A0h، وMCU لـ A2hبيانات تعريف A0h هي EEPROM تسلسلية حقيقية يتحدث معها المضيف والمبرمج مباشرة؛ ويتولى MCU التشخيص فقطكتابات A0h هي كتابات EEPROM عادية — احترم t_WR وحجم الصفحة؛ وقد يحجبها دبوس WP العتادي (أنواع الحماية من الكتابة 1–3)
خريطة يحاكيها MCUيجيب MCU عن كل طلب ثنائي السلك من RAM ويعكس التغييرات إلى فلاش/EEPROM الداخلية — أو لا يفعلتذهب الكتابات إلى حيث يقرر البرنامج الثابت: مقبولة، أو متجاهَلة، أو مشروطة بكلمة مرور، أو تُخزَّن فقط بعد أمر حفظ، أو تُستبدَل من نسخة البرنامج الثابت الخاصة عند الإقلاع التالي (النوعان 4–5)
هجينEEPROM لكتلة المورّد، وMCU للصفحات وكلمات المرورقواعد مختلطة حسب نطاق البايتات

وتفسر الخريطة المحاكاة معظم ألغاز منصة الاختبار: FFh من صفحة لا ينفذها البرنامج الثابت، وكتابات «تنجح» ثم تتراجع، وبايتات للقراءة فقط في نطاق وحرة في النطاق التالي، وإطالة الساعة (clock stretching) أثناء انشغال MCU بأخذ العينات (أخطاء القراءة والكتابة في EEPROM).

الإقلاع ونافذة t_init

عند التشغيل يحمّل MCU بيانات المعايرة والتعريف من ذاكرته غير المتطايرة، ويُشغّل ADC، ويُشغّل APC حتى هدفه، ولا يُمكِّن التابع الثنائي السلك ويمسح بيانات غير جاهزة إلا حينئذ. وهذه هي المدة من 300 ms (SFP) إلى 2 s (QSFP/CMIS) التي تسمح بها المواصفات قبل أن يتوقع المضيف إجابات، وسبب أن تعيد القراءة فور الإدخال بيانات عشوائية (ما يفعله المضيف).

المعايرة تعيش هنا

لا تعني قراءات ADC الخام شيئًا دون الثوابت التي قاسها المصنع على محطة اختبار: تيار PD المراقِب مقابل قدرة الإطلاق الفعلية، والتيار الضوئي للمستقبل مقابل قدرة الدخل عند طول موجة الوحدة، ومنحنى الثرمستور، ومقياس DAC الانحياز. وفي الوحدات المعايَرة داخليًا يطبّقها البرنامج الثابت ويبلغ بوحدات فيزيائية؛ وفي الوحدات المعايَرة خارجيًا تُكتب الثوابت في A2h 56–91 ليطبّقها المضيف (المعايرة). والكتابة فوق منطقة المورّد حيث تحتفظ بعض البرامج الثابتة بهذه الثوابت تنتج DDM عبثيًا أو حلقة APC ميتة — وهذه هي الطريقة الكلاسيكية التي «تُعطِّل» بها كتابة غير حذرة وحدةً بالكامل (التصنيع والاختبار).

كيف تُنفَّذ الحماية

الآليةالتنفيذكما تظهر على منصة الاختبار
كلمة المروريقارن البرنامج الثابت البايتات الأربعة المكتوبة في منطقة كلمة المرور (SFP A2h 123–126، QSFP 123–126، CMIS 122–125) بقيمة مخزَّنة؛ ويفتح الكتابة لهذه الجلسةWRITE FAIL حتى تُدخَل القيمة الصحيحة — كلمات المرور
مناطق الحماية من الكتابةيتجاهل البرنامج الثابت الكتابات إلى نطاقات يعتبرها للقراءة فقط (المجاميع الاختبارية، والعتبات، والمعايرة، ومنطقة المورّد)تُقرأ البايتات دون تغيير، بلا خطأ
دبوس WP العتادي على EEPROM منفصلةالدبوس مربوط بجهد عالٍ داخل الوحدة أو يقوده MCUيحتاج إلى لوحة المبرمج لقيادته
أمر الحفظتستقر الكتابات في RAM؛ ويُثبِّتها في الفلاش تسلسل خاص بالمورّدتتراجع بعد دورة تغذية ما لم يُرسَل التسلسل
انعكاس البرنامج الثابتيعيد البرنامج الثابت عند الإقلاع كتابة الخريطة من صورته الخاصةتختفي التغييرات عند كل دورة تغذية — أداة المورّد وحدها يمكنها تغيير الصورة
المصادقةيحسب البرنامج الثابت توقيعًا (تجزئة hash للرقم التسلسلي وبيانات المورّد وسرّ ما) في بايتات المورّد؛ ويتحقق المضيف منهتعديلات بيانات التعريف تجتاز المجاميع الاختبارية ومع ذلك يرفضها المضيف — قفل المورّد

كيف يُتعرَّف على كل نوع ويُبرمج: أنواع الحماية من الكتابة، إعادة ترميز EEPROM.

تحديثات البرنامج الثابت

يمكن لوحدات CMIS استقبال برنامج ثابت عبر الناقل الثنائي السلك بأوامر CDB (بدء التنزيل، وكتابة الكتل، والإكمال، والتشغيل، والاعتماد)، غالبًا بمصرفي صور بحيث يمكن التراجع عند فشل التحديث. ولا تملك وحدات SFF-8472/8636 آلية قياسية؛ ويستخدم الموردون تسلسلات خاصة عبر بايتات المورّد. وإصلاحات البرنامج الثابت هي وسيلة الموردين لحل مشكلات توافق تشغيل CMIS (مشكلات CMIS)، وتستحق بايتات إصدار البرنامج الثابت (صفحة CMIS السفلية 39–40، الصفحة 01h 128–129) أن تُسجَّل مع بيانات التعريف.

أنماط أعطال المتحكم

العَرَضالسبب المرجَّح
الوحدة غير مرئية على الناقل، والبصريات سليمة خلاف ذلكMCU لا يُقلِع: برنامج ثابت تالف، أو هبوط جهد (brown-out)، أو بلّورة تالفة
قيم DDM مجمَّدة أو عبثيةتلف ADC أو المعايرة؛ أو تجمُّد البرنامج الثابت
انزياح قدرة Tx رغم أن APC يفترض أن يثبتهاعطل PD المراقِب أو ADC، أو تعطيل APC
NACK عشوائية، وقراءات بطيئةMCU محمَّل زيادة (أخذ عينات)، أو تجاوز مبرمج سريع لحدود إطالة الساعة
يعمل، لكن كل كتابة تتراجعانعكاس البرنامج الثابت بالتصميم — وليس عطلًا
الوحدة ميتة بعد كتابةتمت الكتابة فوق منطقة إعدادات البرنامج الثابت أو المعايرة

في CodingBox

يتعامل CodingBox مع الوحدة كما يعرضها البرنامج الثابت: فهو يكتشف نوع الخريطة، ويطبّق كلمات المرور وبرامج النصوص البرمجية المعروفة لتصاميم أمر الحفظ والتصاميم المنعكسة، ويعيد حساب المجاميع الاختبارية، ويحتفظ بنسخة احتياطية قبل كل كتابة، ويتيح لك استعادتها من code database إذا تصرف المتحكم بشكل سيئ. ويضع EEPROM editor علامات على النطاقات التي تُعرِّفها المواصفة بأنها للقراءة فقط أو خاصة بالمورّد كي تعرف متى تكتب داخل المنطقة الخاصة بالبرنامج الثابت.


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