البرمجة داخل النظام

موصلات AVR ISP ذات 6 و 10 دبابيس

البرمجة داخل النظام (ISP)، أو ما يُسمى أيضًا بالبرمجة التسلسلية داخل الدائرة (ICSP)، هي قدرة جهاز منطقي قابل للبرمجة ، أو متحكم دقيق ، أو شريحة ، أو أي جهاز مُدمج آخر ، على البرمجة أثناء تثبيته في نظام كامل، بدلاً من اشتراط برمجة الشريحة قبل التثبيت. كما أنها تسمح بتحديث البرامج الثابتة إلى ذاكرة الشريحة في المتحكمات الدقيقة والمعالجات ذات الصلة دون الحاجة إلى دوائر برمجة متخصصة على لوحة الدوائر، مما يُبسط عملية التصميم. [ 1 ]

ملخص

لا يوجد معيار موحد لبروتوكولات برمجة الأنظمة (ISP) لأجهزة التحكم الدقيقة . يدعم معظم مصنعي أجهزة التحكم الدقيقة بروتوكول ISP، لكن كل منهم طور بروتوكولاته الخاصة، والتي غالبًا ما تختلف حتى بين الأجهزة المختلفة من نفس المصنع. قد يتطلب تنفيذ واجهة JTAG القياسية ما يصل إلى 4 دبابيس. عمومًا، تحاول البروتوكولات الحديثة تقليل عدد الدبابيس المستخدمة، عادةً إلى دبوسين. بعض واجهات ISP تحقق ذلك باستخدام دبوس واحد فقط. بل إن أجهزة التحكم الدقيقة ATtiny الأحدث المزودة بواجهة UPDI يمكنها إعادة استخدام دبوس البرمجة هذا كمدخل /مخرج للأغراض العامة . [ 2 ]

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

عادةً ما يتم لحام وحدات التحكم الدقيقة مباشرة على لوحة الدوائر المطبوعة، وعادةً لا تحتوي على الدوائر أو المساحة اللازمة لكابل برمجة خارجي كبير لجهاز كمبيوتر آخر.

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

تاريخ

ابتداءً من أوائل التسعينيات، شهدنا تطورًا تقنيًا هامًا في بنية المتحكمات الدقيقة. في البداية، كانت تُصنع بحلين: ذاكرة قابلة للبرمجة لمرة واحدة (OTP) أو ذاكرة قابلة للمسح والبرمجة كهربائيًا (EPROM ). في حالة EPROM، تتطلب عملية مسح الذاكرة تعريض الشريحة للأشعة فوق البنفسجية من خلال نافذة خاصة أعلى الغلاف. في عام 1993، قدمت شركة مايكروشيب تكنولوجي أول متحكم دقيق مزود بذاكرة EEPROM : وهو PIC16C84. يمكن مسح ذاكرة EEPROM كهربائيًا. سمحت هذه الميزة بخفض تكاليف التصنيع عن طريق إزالة نافذة المسح أعلى الغلاف، وبدأت تقنية البرمجة داخل النظام (ISP). مع ISP، يمكن إجراء عملية البرمجة مباشرةً على اللوحة في نهاية عملية الإنتاج. أتاح هذا التطور إمكانية توحيد مرحلتي البرمجة والاختبار الوظيفي في بيئات الإنتاج، وبدء الإنتاج الأولي للوحات حتى قبل اكتمال تطوير البرامج الثابتة. بهذه الطريقة، أصبح من الممكن تصحيح الأخطاء أو إجراء التغييرات لاحقًا. وفي نفس العام، طورت شركة Atmel أول وحدة تحكم دقيقة مزودة بذاكرة فلاش، وهي أسهل وأسرع في البرمجة ولها دورة حياة أطول بكثير مقارنة بذاكرة EEPROM.

عادةً ما تُزوَّد وحدات التحكم الدقيقة التي تدعم برمجة ISP بمنافذ يستخدمها طرفية الاتصال التسلسلي للتفاعل مع المبرمج، وذاكرة فلاش/EEPROM، والدوائر اللازمة لتوفير الجهد الكهربائي المطلوب لبرمجة وحدة التحكم الدقيقة. وتتصل طرفية الاتصال بدورها بطرفية البرمجة التي تُصدر الأوامر اللازمة للعمل على ذاكرة الفلاش أو EEPROM.

عند تصميم اللوحات الإلكترونية لبرمجة ISP، من الضروري مراعاة بعض الإرشادات لضمان موثوقية عملية البرمجة قدر الإمكان. تشترك بعض المتحكمات الدقيقة ذات عدد المنافذ المنخفض في خطوط البرمجة مع خطوط الإدخال/الإخراج. قد يُشكل هذا مشكلةً إذا لم تُراعَ الاحتياطات اللازمة في تصميم اللوحة؛ إذ قد تتعرض مكونات الإدخال/الإخراج للتلف أثناء البرمجة. علاوةً على ذلك، من المهم توصيل خطوط ISP بدوائر ذات مقاومة عالية ، وذلك لتجنب تلف المكونات بواسطة المبرمج، ولأن المتحكم الدقيق غالبًا ما يعجز عن توفير تيار كافٍ لتشغيل الخط. تحتاج العديد من المتحكمات الدقيقة إلى خط إعادة ضبط مخصص للدخول في وضع البرمجة. من الضروري الانتباه إلى التيار المُزوَّد لتشغيل الخط، والتحقق من وجود دوائر مراقبة متصلة بخط إعادة الضبط، والتي قد تُسبب إعادة ضبط غير مرغوب فيها، وبالتالي فشل البرمجة. علاوة على ذلك، تحتاج بعض وحدات التحكم الدقيقة إلى جهد أعلى للدخول في وضع البرمجة، وبالتالي، من الضروري التحقق من أن هذه القيمة لم يتم إضعافها وأن هذا الجهد لا يتم تمريره إلى مكونات أخرى على اللوحة.

التطبيقات الصناعية

تتم برمجة النظام خلال المرحلة النهائية من إنتاج المنتج. ويمكن تنفيذها بطريقتين مختلفتين بناءً على حجم الإنتاج:

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

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

في خطوط الإنتاج، تُثبّت اللوحات الإلكترونية على قاعدة من المسامير تُسمى " المثبت" . تُدمج هذه المثبتات، بناءً على حجم الإنتاج، في أنظمة اختبار شبه آلية أو آلية بالكامل تُسمى "معدات الاختبار الآلية" (ATE) . تُصمّم المثبتات خصيصًا لكل لوحة إلكترونية، أو على الأكثر لعدد قليل من النماذج المشابهة للوحة التي صُمّمت من أجلها، ولذلك فهي قابلة للتبديل في بيئة النظام التي تُدمج فيها. يحتوي نظام الاختبار، بمجرد وضع اللوحة والمثبت في مكانهما، على آلية لملامسة إبر المثبت لنقاط الاختبار على اللوحة المراد اختبارها. يتصل النظام، أو يُدمج فيه مباشرةً، مبرمج ISP. يتولى هذا المبرمج برمجة الجهاز أو الأجهزة المثبتة على اللوحة، مثل وحدة تحكم دقيقة و/أو ذاكرة تسلسلية.

معالج الدوائر المتكاملة الدقيقة

في معظم وحدات التحكم الدقيقة من شركة Microchip، تتم برمجة ICSP باستخدام منفذين، هما منفذ الساعة (PGC) ومنفذ البيانات (PGD)، مع  وجود جهد عالٍ (12 فولت) على منفذ Vpp/MCLR. أما البرمجة بجهد منخفض (5  فولت أو 3.3  فولت) فتستغني عن الجهد العالي، ولكنها تحتفظ باستخدام منفذ الإدخال/الإخراج بشكل حصري. مع ذلك، في وحدات التحكم الدقيقة الأحدث، وتحديدًا عائلات وحدات التحكم الدقيقة PIC18F6XJXX/8XJXX من شركة Microchip Technology ، يختلف الدخول إلى أوضاع ICSP قليلًا. [ 3 ] يتطلب الدخول إلى وضع برمجة/تحقق ICSP الخطوات الثلاث التالية:

  1. يتم تطبيق الجهد لفترة وجيزة على دبوس MCLR (مسح الدائرة الرئيسية).
  2. يتم عرض تسلسل مفاتيح مكون من 32 بت على PGD.
  3. يتم إعادة تطبيق الجهد على MCLR.
مبرمج Microchip PICkit ICSP

يلزم وجود جهاز منفصل، يُسمى المبرمج، لتوصيله بمنفذ الإدخال/الإخراج في الحاسوب من جهة، وبوحدة التحكم الدقيقة PIC من جهة أخرى. فيما يلي قائمة بميزات كل نوع رئيسي من أنواع البرمجة:

  1. المنفذ المتوازي - كابل كبير الحجم، ومعظم أجهزة الكمبيوتر مزودة بمنفذ واحد فقط، وقد يكون من غير العملي تبديل كابل البرمجة عند توصيل طابعة. معظم أجهزة الكمبيوتر المحمولة الأحدث من عام 2010 لا تدعم هذا المنفذ. تتميز برمجة المنفذ المتوازي بسرعة فائقة.
  2. المنفذ التسلسلي (منفذ COM) - كان في وقت من الأوقات الطريقة الأكثر شيوعًا. عادةً ما تفتقر المنافذ التسلسلية إلى جهد التغذية الكافي لبرمجة الدوائر. معظم أجهزة الكمبيوتر المحمولة والمكتبية الأحدث من عام 2010 لا تدعم هذا المنفذ.
  3. المقبس (داخل أو خارج الدائرة) - يجب إزالة وحدة المعالجة المركزية من لوحة الدائرة، أو يجب تثبيت مشبك على الشريحة مما يجعل الوصول إليها مشكلة.
  4. كابل USB - صغير الحجم وخفيف الوزن، يدعم مصادر الطاقة، ومعظم أجهزة الكمبيوتر مزودة بمنافذ إضافية. تُحدَّد المسافة بين الدائرة المراد برمجتها والكمبيوتر بطول كابل USB، والذي يجب ألا يتجاوز عادةً 180  سم. قد يُشكِّل هذا عائقًا أمام برمجة الأجهزة الموجودة في أعماق الآلات أو الخزائن.

تتميز مبرمجات ICSP بالعديد من المزايا، أبرزها صغر الحجم وتوفر منافذ الحاسوب ومصدر الطاقة. ونظرًا لاختلافات مخططات التوصيل البيني والدوائر المستهدفة المحيطة بوحدة التحكم الدقيقة، لا يوجد مبرمج واحد يعمل مع جميع الدوائر المستهدفة أو التوصيلات البينية الممكنة. توفر شركة Microchip Technology دليلًا تفصيليًا لبرمجة ICSP [ 4 ] . كما توفر العديد من المواقع الإلكترونية أمثلة على البرمجة والدوائر.

تُبرمج متحكمات PIC باستخدام خمس إشارات (يوجد طرف سادس يُسمى "aux" ولكنه غير مُستخدم). تُنقل البيانات باستخدام نظام تسلسلي متزامن ثنائي الأسلاك، بينما توفر ثلاثة أسلاك أخرى البرمجة وتزويد الشريحة بالطاقة. ويتحكم المبرمج دائمًا في إشارة الساعة.

التواصل البرمجي النموذجي

الإشارات وترتيب الأطراف

  • Vpp - جهد وضع البرمجة. يجب توصيل هذا الجهد بطرف MCLR، أو طرف Vpp لمنفذ ICSP الاختياري المتوفر في بعض وحدات PIC ذات عدد الأطراف الكبير. لوضع وحدة PIC في وضع البرمجة، يجب أن يكون هذا الخط ضمن نطاق محدد يختلف من وحدة PIC إلى أخرى. بالنسبة لوحدات PIC التي تعمل بجهد 5 فولت  ، يكون هذا الجهد دائمًا أعلى من Vdd ، وقد يصل إلى 13.5 فولت. أما وحدات PIC التي تعمل بجهد 3.3 فولت فقط، مثل سلسلة 18FJ و24H و33F، فتستخدم إشارة خاصة للدخول إلى وضع البرمجة، ويكون Vpp إشارة رقمية إما عند مستوى الأرض أو عند Vdd. لا يوجد جهد Vpp واحد ضمن نطاق Vpp الصحيح لجميع وحدات PIC. في الواقع، قد يؤدي الحد الأدنى المطلوب لمستوى Vpp لبعض وحدات PIC إلى تلف وحدات أخرى.
  • Vdd - هذا هو مدخل الطاقة الموجب لوحدة التحكم PIC. تتطلب بعض المبرمجات أن يتم توفير هذا المدخل من الدائرة (يجب أن تكون الدائرة موصولة بالطاقة جزئيًا على الأقل)، بينما تتوقع مبرمجات أخرى تشغيل هذا الخط بنفسها وتتطلب إيقاف تشغيل الدائرة، في حين يمكن تهيئة مبرمجات أخرى بأي من الطريقتين (مثل Microchip ICD2). تتوقع مبرمجات Embed Inc تشغيل خط Vdd بنفسها وتتطلب إيقاف تشغيل الدائرة المستهدفة أثناء البرمجة.
  • V ss - مدخل الطاقة السالب إلى وحدة التحكم الدقيقة PIC، وهو مرجع الصفر فولت للإشارات المتبقية. يتم حساب جهد الإشارات الأخرى ضمنيًا بالنسبة إلى V ss .
  • خط الساعة ICSPCLK - خط الساعة الخاص بواجهة البيانات التسلسلية. يتأرجح هذا الخط بين الأرضي (GND) وجهد التغذية (Vdd ) ويتم التحكم به دائمًا بواسطة المبرمج. تُنقل البيانات عند الحافة الهابطة للإشارة.
  • خط بيانات تسلسلي (ICSPDAT) . هذه الواجهة التسلسلية ثنائية الاتجاه، لذا يمكن التحكم بهذا الخط إما بواسطة المبرمج أو وحدة التحكم الدقيقة (PIC) حسب العملية الجارية. في كلتا الحالتين، يتأرجح هذا الخط بين الأرضي (GND) وجهد التغذية (Vdd). يتم نقل بت واحد عند الحافة الهابطة لإشارة التحكم في الكسب (PGC).
  • AUX/PGM - تستخدم وحدات التحكم PIC الحديثة هذا المنفذ لتفعيل برمجة الجهد المنخفض (LVP). عند رفع مستوى إشارة PGM، تدخل وحدة التحكم الدقيقة في وضع LVP. تُشحن وحدات التحكم الدقيقة PIC مع تفعيل وضع LVP، لذا يمكنك استخدام شريحة جديدة تمامًا في هذا الوضع. الطريقة الوحيدة لتغيير الوضع هي استخدام مبرمج جهد عالٍ. إذا قمت ببرمجة وحدة التحكم الدقيقة دون توصيلها بهذا المنفذ، فسيبقى الوضع كما هو.

مخطط توصيل RJ11

مبرمج PIC من RJ11 إلى ICSP

تدعم شركة Microchip معيارًا صناعيًا لاستخدام مقابس RJ11 مع مبرمج ICSP. يوضح الرسم التوضيحي المعلومات الواردة في بياناتها. مع ذلك، قد يكون هناك بعض الالتباس. تُظهر بيانات PIC مقبسًا مقلوبًا ولا توفر عرضًا تصويريًا لتوزيع الأطراف، لذا من غير الواضح على أي جانب من المقبس يقع الطرف 1. الرسم التوضيحي المقدم هنا غير مُختبَر، ولكنه يستخدم توزيع الأطراف القياسي في صناعة الهواتف (تم تطوير قابس/مقبس RJ11 في الأصل للهواتف المكتبية السلكية).

مراجع

  1. أورايلي، تصميم الأجهزة المدمجة، الطبعة الثانية، بقلم جون كاتسوليس
  2. "معلومات تفعيل الجهد العالي لواجهة البرمجة والتصحيح الموحدة (UPDI) - مساعدة المطورين" . developerhelp.microchip.com . مؤرشف من الأصل في 7 أكتوبر 2024. تم الاطلاع عليه في 17 ديسمبر 2024. دبوس UPDI مشترك . يُستخدم هذا التنفيذ عادةً في الأجهزة ذات الأحجام الصغيرة. يمكن إعادة تهيئة دبوس UPDI ليصبح دبوس GPIO أو /RESET. في هذه الحالة، يتم تعطيل وظيفة UPDI، ويلزم مصدر جهد عالٍ لإعادة تفعيلها. تشمل الأمثلة أجهزة tinyAVR من السلسلة 0، والسلسلة 1، والسلسلة 2.
  3. "مواصفات برمجة المتحكم الدقيق الفلاشي" (PDF) .
  4. دليل برمجة ICSP ، مايكروشيب،

انظر أيضاً