للامانة الموضوع اغلبه منقول
بسم الله الرحمن الرحيم
وبه نستعين
اولا وقبل اى شىء وللامانة الشديدة الموضوع منقول من المهندس محمد نصار وله جزيل الشكر
سوف أكون متعاونا معكم باستمرار علي فهم المزيد في هذا المجال من الألف إلى الياء وهذا ليس مجرد كلام فقط بل هو علي علم ودراية وخبرة كاملة في هذا المجال .
سوف ابدأ أولا بتعريفكم ما هي أجهزة الريسيفر أو STB :
هذه المشاركة لمهندسي الصيانة ولمن يريد أن يتعلم من البداية واليكم الـ datasheet الخاصة بال STi5518 الداخلي للأجهزة:
في أي ريسيفر من الموديلات الجديدة التي تفك الشفرة يوجد الآتي:
1- وحدة المعالجة الرئيسية Processor وهي من عدة شركات مثل ومن موديلاتها :
Sti5512 – Sti5518 – Sti5510 – SC2000 – IBM set top box - LSI ……
2- وحدة الذاكرة المؤقتة SRAM أو DRAM
3- وحد الذاكرة الدائمة Flash memory وهي مجال أسئلة العديد من المبتدئتين والتي تسبب لهم العديد من المشاكل عند التحديث ويتلهفون علي معرفتها.
4- وحدة ال Tuner المسؤولة عن تحليل الإشارة المستقبلة من وحدة LNB.
5- وحدة Power supply
6- وحدة العرض علي شاشة الريسيفر Front panel display .
الشـــــــــرح:
1- وحدة المعالجة المركزية Processor :
سوف أقوم بشرح مقتطفات فقط لان هذا المجال واسع جدا ويتطلب الدراسة المتخصصة وهو للمهندسين فقط لكن المهم هو الفهم بصورة عامة الآن وسف اتخذ مثالا للنوع Sti5518 علي أنني أمددتكم بالـ datasheet الخاصة حتى تطلعوا عليها:
- تعتبر هذه الوحدة مثل Chipset في أجهزة الكمبيوتر العادية فهي تحمل بداخلها معالج مركزي من نوع ST20 32 بت بسرعة 81 ميجاهرتز ويعمل علي OSC منخفض السرعة 27 ميجاهرتز وهي لها بعض التأثيرات في الصيانة سوف اذكرها لاحقا.
- تحتوي ايضا علي وحدة Mpeg decoder لمعالجة الصوت والفيديو الرقمي.
- عدد 2 smart card interface .
- وحدة ربط مع الذاكرة .
ويوجد به المزيد أيضا .
بعدما قمتم ألان بتحميل الملف المرفق بالـ Datasheet فما عليكم الآن إلا فتح الملف علي الصفحة رقم 9 وهي تتكلم عن Architecture overview أو المخطط الداخلي لـ Sti5518 وسوف يتضح كل شئ ببساطة وهم كآلاتي:
1- 2 UART وهي اختصار Universal Asynchronous Receiver and Transmitter وهي بكل بساطة مثل المنفذ التسلسلي في أجهزة الكومبيوتر COM PORT وهي التي يخرج منها مخرج RS232 المستخدم في تحديث البرنامج التشغيلي عن طريق الكومبيوتر .
2- Smart Cards interface 2وهي التي تقوم باستقبال البيانات وتتحكم في عمل الكروت التي يتم قراءتها بواسطة smart card reader مثل الموجود في الأجهزة التي تحتوي علي كامة داخلية مثل الكيوماكس والديسكفري وغيرها من الأجهزة.
3- Front End link interface وهو المسؤول عن توصيل الهارد ديسك أو الـ DVD مثل الـIDE الموجودة في الكومبيوتر وهذا مستخدم في الأجهزة التي تحتوي علي هارد ديسك PVR .
4- Programmable CPU interface وهو المسؤول مسؤولية كاملة عن القراءة والكتابة إلى وحدة الذاكرة الدائمة Flash memory وهذا جزء مهم جدا يجب معرفة أسراره وهي يسمي EMI register “external memory interface ويتصل مباشرة بوحدة الـ Diagnostic controller (DCU) المسؤولة عن البوت من الفلاش أو بصورة أخرى طريقة تحميل البرنامج المطلوب تنفيذه من وحدة الـ CPU وهذا شبيه بحد كبير بأجهزة الكومبيوتر وسوف نتعرض لهذا الجزء بتفصيل اكبر .
5- Shared SDRAM interface وهذا خاص بوحدة الذاكرة المؤقتة ويسع الي حوالي 32 ميجا بايت من الذاكرة.
6- خرج الفيديو الرقمي والتماثلي.
7- خرج الصوت
8- JTAG debugging interface وهذا الجزء الذي لا يحب أن يتكلم عنه الفنيين
- ولكن سوف نهتم به بكافة أسراره والدوائر المستخدمة والبرامج المطلوبة .
يمكن عن طريق هذا البورت ان تعيد برمجة الفلاش وقراءتها أيضا وأجراء العديد من المهام الأخرى المطلوبة في عمليات الصيانة.
- إذا قمتم بتنفيذ الدائرة المرفقة فاحرصوا علي ألا يزيد طول الكيبل المستخدم عن 10 سم لان هذا في غاية الأهمية .
- الأطراف موصلة علي 20 pin connector وهذا هو الشائع ولكني كتبت في الرسم باللون الأزرق اسم كل pin مستخدم حتى يتم معرفة الأطراف المقابلة لها في ال processor وهذا يتضح في ملف الـdatasheet الصفحة رقم 15 وهي الأطراف رقم 109 – 110 – 111 – 112 – 113 وهذا يجعلكم عن طريق القياس العادي بالافوميتر معرفة توصيل أي نوع من الـ Connector في لوحة الريسيفر بالـ JTAG الذي نفذتموه.
البرنامج التشغيلي :
بما أن أجهزة الريسيفر تشبه بدرجة كبيرة أجهزة الكومبيوتر فلابد من شيئين بالنسبة للبرنامج وهما في غاية الأهمية:
جزء مسؤول عن تحميل البرنامج التشغيلي من الفلاش ميموري إلى وحدة الذاكرة المؤقتة SDRAM وهو ما يسمي بالبوت boot وهو موجود في الفلاش ميموري .
الجزء الثاني هو البرنامج التشغيلي نفسه وهو ما كتب بلغه برمجة بصورة عادية واشرها هي لغة C++ أو visual c++ وقد تكتب بعض الأجزاء بلغ الـ Assembler أو التجميع وهذا يتطلب مهارات عالية جدا وفي الغالب تكون من الأفراد الذين يعملون في الشركات التي تنتج هذه البروسيسورات وبعد كتابتها وأجراء الاختبارات عليها يتم عمل compiler مها أي يتم بواسطة لغة البرمجة تحويله إلى لغة الآلة التي تعمل به وهو يكون بالكود السادس عشر ويخزن علي هيئة ***ary file او ملف *** الذي يُحمل داخل الفلاش ميموري ويتم بواسطة البوت وضعه في الذاكرة المؤقتة وهذا لعامل السرعة وكثرة القراءة والكتابة أثناء عمل الريسيفر وإذا تساءلنا لماذا لا يتم التنفيذ من الفلاش ميموري مباشرة فهذا بسبب عامل السرعة وكثرة القراءة والكتابة أثناء عمل الريسيفر والفلاش وإلا لانتهت صلاحية الفلاش من مرتين تشغيل علي الأكثر لأنها لا تصلح إلا لحوالي 10.000 مرة كتابة .
ويحتوي البرنامج التشغيلي علي القوائم التي تظهر علي شاشة التليفزيون والبحث علي القنوات وقد يحتوي علي العاب للأطفال وأشياء أخرى عديدة .
نعود مرة أخرى لنتعرف علي البوت وهو عبارة عن برنامج صغير يكون حجمه في الغالب لا يتعدي 64KB يوضع في منطقة تسمي Boot Block في الفلاش ميموري ويتم تحميله مباشرة بواسطة وحدة DCU التي ذكرناها من قبل إلى الذاكرة SDRAM بواسطة خيار يسمي Boot sector1 أو BtSrc1 وهو الطرف رقم 115 في Sti5518 فإذا كان هذا الطرف logic 1 أي موصل علي Vcc وغالبا بواسطة مقاومة 10 ك.اوم يتم التحميل من الفلاش ميموري ويتجه مباشرة إلى منطقة الـ Boot Block وهذا مجهز في تصميم Sti5518 وشبيهاتها ويتم تحميل البوت أولا ثم بواسطة البوت يتم تحميل البرنامج التشغيلي.
أما إذا كان هذا الطرف 115 في Sti5518 موصل علي الأرضي أي Logic0 يتم التحميل من الـ JTAG Port وهذا له شرح خاص أيضا.
الآن وبعد معرفة البرنامج التشغيلي ومكونات الريسيفر الداخلية نتعرض لجزء تحديث البرنامج أو software upgrade وهذا يتم عن طريق الكمبيوتــــــر ولـــــودر خاص لكل نوع مـــــــن أنواع الريسيفرات يمكنه تحميل البرنامج الي الريسيفر ومعظم الهاوين أو المحترفين يجيدون التعامل مع هذا الجزء ولكن لنا عدة ملاحظات وهي:
- عند التحميل من الكمبيوتر إلى الريسيفر بواسطة اللودر معظم الأجهزة تطلب إعادة التشغيل وبعدها يبدأ التحميل فلماذا؟
الإجابة : لأن البوت الخاص بالريسيفر هو المسؤول مسؤولية تامة عن البحث في كل مرة تشغيل عن وجود أمر تحميل برنامج جديد أو أي بيانات اخري مثل قائمة قنوات أو شفرة من المنفذ التسلسلي RS232 المتصل بالكمبيوتر واذا قمتم بتشغيل البرنامج المرفق RS232 Tester ثم اختيار com مناسبة واعادة تشغيل الريسيفر تجدوا أن الريسيفر يرسل بيانات عن البرنامج الموجود واحيانا موديل الريسيفر واشياء أخري حسب تصميم البوت .
- بعد إعادة التحميل يبدأ بكلمة boot او ما يرمز عليه ثم يبدأ بالعد ثم ينتظر ثواني ثم يكتب كلمة ugrd وهي اختصار upgrade ثم good او succ أو Fine أو لا يكتب ثم يعيد التشغيل من نفسه أو يطالب منك إعادة التشغيل فماذا يتم أثناء هذه الأحداث؟
كما بينا سابقا أن البوت هو الذي يقوم بهذه العملية فيبدأ أولا بتحميل البرنامج أو البيانات المرسلة إليه إلى ذاكرة الريسيفر المؤقتة وبعد انتهاء التحميل يبدأ بعمل فحص Check للبيانات التي تم تلقيها ، فإذا كانت برنامج تأكد مما إذا كان مطابقا للريسيفر أم لا أو يحمل إصدارا أحدث وهذا كما قلنا من قبل يتوقف علي تصميم البوت ثم بعد التأكد اذا تحققت كافة شروط الفحص يضعه في المكان المحدد له في الفلاش ميموري .
وهذا ينطبق ايضا علي ملف القنوات والشفرة.
- بعد تحميل البرنامج يفضل إعادة الريسيفر إلى وضع المصنع فلماذا؟
بالتأكيد قد يختلف البرنامج الأحدث عما قبله في طريقة التخزين للقنوات أو مكان القنوات أو الشفرة في الفلاش ميموري وقد يسبب بقاء الحالة القديمة في تهنيج الجهاز ولذلك يفضل إعادة ضبط المصنع من البرنامج الأحدث ثم إعادة تحميل ملف القنوات ثم الشفرة.
- إذا لاحظنا مما سبق نجد انه يمكن للبروسيسور الموجود في الريسيفر إعادة برمجة مكان محدد من الفلاش ميموري مرة أخرى وقد يكون المكان الذي يوضع فيه البرنامج التشغيلي أو ملف القنوات أو الشفرة أو قائمة الأقمار وأحيانا يمكن في بعض الأجهزة تغيير اللودر نفسه وقد يتم هذا في مرحلة واحدة أو علي خطوات فهل نستطيع أن نجعله يقوم بقراءة محتويات الفلاش كلها وهل نستطيع أن نعيد برمجتها مرة أخرى أم لا؟
بالتأكيد نستطيع لأن معظم البروسيسورات تحتوي علي Jtag Port يمكن عن طريقه الوصول إلى الفلاش ميموري وقراءتها ومسحها وإعادة برمجتها بل ونستطيع أيضا قراءة بيانات قناة موجودة في الذاكرة المؤقتة وحفظها علي جهاز الكمبيوتر.
Jtag Port :
يتطلب التوصيل بالكمبيوتر دائرة معينة وهي في غاية البساطة وأعتقد أنها لدي العديد من الأشخاص وقد أرفقت لكم نسخه منها وهي التي أقوم أنا باستعمالها واليكم الدائرة مرة أخرى مع الشرح حتى نتمكن من الفهم الأكثر لهذا الجزء المهم جدا:
واليكم أيضا هذا الجدول الذي يبين لكم موديلات الأجهزة وأرقام الأطراف المحددة للـ Jtag في اغلب الأجهزة :
واليكم الطريقة كاملة:
أولا التوصيل :
1- قم بفتح غطاء الجهاز ثم بالنظر إلى اللوحة الرئيسية بجوار البروسيسور وفي سوف تجد Connector قد يكون مكونا من 20 طرف بشكل 10 طرف علي صفين مثل الموجود في الدائرة المسبقة وأحد الصفين موصل كل أطرافه علي الأرضي ، وقد يكون علي شكل 10 أطراف فقط وهو الصف المقابل لأطراف الأرضي فقط ، وقد تكون الأطراف ملحومة أو قد لا تكون وإذا لم تكون ملحومة فعلينا بلحام الأطراف المستخدمة في الدائرة فقط وهي الأطراف 19 – 15 – 13 – 11 – 9 وطرف واحد من أطراف الأرضي..
2- يجب التأكد من الخطوة السابقة جيدا باستخدام الترقيم الموجود في الجدول السابق وقياس الأطراف الخاصة بالـ Jtag بالمقابل لها في البروسيسور المحدد من الجدول بجهاز افوميتر ديجيتال وهذه الخطوة في غاية الاهمية.
3- كما ذكرنا مسبقا يجب الا يزيد طول الكيبل المستخدم علي 10سم لانه سوف يسبب المشاكل .
4- الآن وبعد معرفة مكان بورت الـ Jtag يمكنك الآن التوصيل وبالتأكيد كل هذه الخطوات والجهاز غير موصل بالتيار الكهربائي.
5- قم بتشغيل البرنامج المرفق وهو Jkeys والجهاز مطفئ سوف تظهر أمامك هذه النافذة :
6- اذا كانت هذه أول مرة تقوم فيها بتشغيل البرنامج يجب عليك اعداد المنفذ المتوالي أو منفذ الطابعة ، قم باتباع فتح النوافذ التالية:
- اختر Parallel port وقم بالضبط كما بالصور.
7-
8- اختر موافق ثم أغلق البرنامج ثم قم بتوصيل الJtag بكيبل التوالي والجهاز مطفئ ثم قم بتشغيل البرنامج مرة أخري ثم اضغط Detect يجب ان تظهر هذه الصورة.
9- نلاحظ وجود الأصفار أمام Device ID وهذا في حالة الريسيفر مطفئ وهذا يدل علي أن الدائرة سليمة ولا يوجد خطر من استخدامها.
10- قم بتوصيل الريسيفر بالتيار الكهربائي " علي سبيل المثال Opentel ODS3000FL " واضغط Detect مرة أخرى سوف تلاحظ هذه الصورة:
إذا كانت الدائرة سليمة وتمت عملية الكشف أو الـ Detect بنجاح وكتب الرقم امام Device ID فيجب أن يكتب رقم البروسيسور أمام الـ Device وهذا يدل علي صحة التوصيل وعمل الدائرة وهذا هو المهم الآن.
- الآن لدينا الدائرة التي تقوم بربط الريسيفر بالكمبيوتر ويمكن الآن إجراء العديد من العمليات ولكن يجب أن نعرف بعض الحالات التي سوف نتعرض وهي:
1- إما أن يكون الريسيفر سليم ويعمل بصورة صحيحة فلا يظهر أي رسائل اخري في النافذة السابقة ونريد أن نقرأ الفلاش ميموري منه ونقوم بحفظ نسخة منها علي الكمبيوتر لأنها تفيدنا في عمليات الصيانة إذا تعرضنا لموديل شبيه تالف أو ميت كم يقولون بسبب خطأ حدث أثناء التحديث بالصورة العادية كتحميل برنامج خاطئ مثلا ، أو نريد أيضا إعادة برمجته لتحديث البوت و اللودر إلى لودر اقل أو اعلي في الإصدار حسب الاحتياج وهذا واضح جدا في أجهزة الأسترا ذات الريموت الجديد الذي يحمل لودر أعلي من 300 لا يقبل الباتش الروسي ويمكن بهذه الطريقة إعادة برمجة الفلاش ميموري بملف فلاشة أخرى تم قراءتها مسبقا وتحتوي علي لودر اقل من 300 وليكنL280 حتى نستطيع تحميل الباتش الروسي الجديد ولكن هذا الموضوع يحتاج إلى شرح اكثر وسنقوم بشرحه إن شاء الله .
2- إما أننا قمنا بتركيب فلاشة جديدة داخل الريسيفر لسبب ما قد تكون الفلاشة السابقة قد تلفت أو أننا نريد تغيير الفلاشة الحالية بسعة اكبر مثل التغيير من 1ميجا الي 2 ميجا وتركيب برنامج جديد وهذا يزيد في عامل السرعة وموجود في أجهزة استرا 9000 الحديثة .
3- إما أن الريسيفر يكون تالفا ولا يقوم بعملية التحميل ولا يظهر أي كتابة علي شاشة التليفزيون لسبب ما وفي هذه الحالة تظهر الرسالة التالية عند عملية الكشف في النافذة السابقة وهي " Error reading Via DCU peek " وهذا دليل علي عدم تحيل البوت أو البرنامج من الفلاش ميموري بصورة صحيحة والرسالة هي :
في هذه الحالة يستحيل القراءة من الريسيفر أو جراء أي عملية وهذا لسبب فشل عملية الربط بين الكمبيوتر والريسيفر عن طريق وحدة الـ DCU وكما ذكرنا سابقا هي المسؤولة عن تهيئة البروسيسور للقراءة والكتابة علي الفلاش ميموري وسوف نقوم بشرحها لاحقا.
- نعود مرة أخري إلى الحالة الأولى وإجراء عملية القراءة من الفلاش ميموري بالطريقة السهلة جدا والتي لا تطلب أي تفكير أو فنيات عالية وهي :
أولا: يجب عليكم معرفة رقم ونوع الفلاش ميموري الموجودة في الريسيفر وهذا مهم جدا فمثلا في هذا الريسيفر OPENTEL ODS3000 FL يوجد به فلاشه SST39VF800A وحجمها 1 ميجا والرقم 800 يدل علي أن الحجم 1 ميجا أما إذا كان الرقم 160 مثل SST39VF160 يكون الحجم 2 ميجا وإذا كان الرقم 320 يكون 4 ميجا وهكذا.
ثانيا: بعد معرفة سعة الفلاش يجب اختيار موديل الريسيفر وهذا في غاية الأهمية أيضا لأنه يحدد عنوان الفلاش ميموري الذي يبدأ من عنده عملية النسخ أو البرمجة فمثلا معظم الأجهزة التي تحتوي علي Sti5518 تبدأ بالعنوان 7FE00000 ونختار الموديل من خانة IRD info مثل الموجود في النافذة التالية :
وإذا أخطأنا الاختيار ولم يكن العنوان مثل المذكور تتم القراءة بصورة غير صحيحة ويسبب تلف أي فلاشة يتم نسخها بهذا الملف لذا يجب الحرص عند الاختيار .
ثالثا: اذا كانت الفلاشة بسعة 2 ميجا فيصلح اختيار الرقم 4900 كما هو ظاهر في النافذة السابقة وعند الاختيار يكتب البيانات عن الموديل في باقي الخانات كما هو واضح في النافذة السابقة وأهمها :
- في مربع Save Memory يكتب أمام Region رقم الفلاش Flash 29LV160ولا يهمنا الآن تطابق رقم الفلاش الموجود بالريسيفر بالرقم الظاهر لكن المهم هو العنوان وسعة الفلاشة فالرقم 200000 يدل علي سعة 2 ميجا والرقم 7FE00000 يدل علي بداية العنوان الذي يبدأ من عنده عملية العد حتى يصل إلى نهاية الرقم بالكود السادس عشر ، فطريقة القراءة ثابته في معظم الأجهزة تقريبا .
رابعا: اذا كانت الفلاشة بسعة 1 ميجا فيصلح اختيار ODS3000FL كما هو ظاهر في النافذة التالية وعند الاختيار يكتب البيانات عن الموديل في باقي الخانات كما هو واضح وكما ذكرنا في البند ثالثا لا يهمنا التطابق في الفلاش أو ولكن يهمنا سعة الفلاش وعنوان البداية Start Address ويكون الرقم أمام كلمة Bytes هو 100000
بالتأكيد ليس لديكم هذه الخطوة في البرنامج المرفق الأول فيجب عليكم تحميل الملف Jkeys.def ونسخه في نفس مجلد البرنامج الحالي بدلا من الملف الموجود لديكم فهذا الملف معدل بهذه الصورة وقد قمت بإضافة تعريفات لبعض أنواع الفلاشات الموجود حاليا وبعدها نقوم بإعادة تشغيل برنامج Jkeys مرة أخرى لتحميل الملف الجديد حتي تظهر معكم النافذة السابقة.
خامسا: الآن كل شئ معد جيدا لعملية القراءة من الفلاش ميموري والحصول علي ملف فلاش بن سليم يمكن تخزينه علي الكمبيوتر وذلك بالضغـــط علي زر Save Mem واختيار مكان علي الهارد ديسك وكتابة اسم الملف ويفضل كتابته بأسلوب يشير إلى بيانات عن اللودر الحالي في الفلاش ورقم الفلاش الموجودة بالفعل في الريسيفر وموديل الريسيفر أيضا وباختصار وذلك يعطي بيانات هامة عند إعادة شحن فلاشة ريسيفر آخر من نفس العائلة فمثلا في هذه الحالة نكتب ODS3000FL_L10_SST39VF800A ثم نضغط Save فتظهر النافذة التالية:
الآن لدينا ملف فلاش بن flash.*** سليم ويمكن التحقق من ذلك بواسطة برنامج
hex workshop وهو موجود علي الإنترنت وعمل مقارنة علي ملف لنفس الفلاشة دون تغيير تمت قراءتها بجهاز مثل اللاب تول أو غيره سوف تجدون انه متطابق تماما.
وبهذه الطريقة المبسطة جدا يمكن لأي شخص عمل نسخة احتياطية لفلاشة الريسيفر الخاص به وهو سليم طبعا وحفظها لديه حتى يمكن حل أي مشكلة قد تحدث أثناء الترقية بالطريقة العادية ويكون طبعا في أمان تام.
لكن المهم لي أنا شخصيا ولكل الأعضاء بالتأكيد أن نمتلك هذه الملفات لأنه لا بديل عنها الآن وقد كثرت المشاكل بسبب التحديث المستمر للأجهزة.
وللشرح بقية....