البرمجيات المدمجة

البرمجيات المدمجة هي برمجيات حاسوبية مصممة للتحكم في آلات أو أجهزة لا تُصنف عادةً كحواسيب، وتُعرف باسم الأنظمة المدمجة . وهي عادةً ما تكون متخصصة في الأجهزة التي تعمل عليها، وتخضع لقيود زمنية وذاكرة محددة. [ 1 ] يُستخدم هذا المصطلح أحيانًا كمرادف للبرمجيات الثابتة . [ 2 ]

صورة مقرّبة لشريحة SMSC LAN91C110 (SMSC 91x)، وهي شريحة إيثرنت مدمجة

من السمات المميزة الدقيقة والمستقرة أنه لا يتم تشغيل/التحكم في جميع وظائف البرامج المدمجة أو بعضها عبر واجهة بشرية ، بل من خلال واجهات آلية بدلاً من ذلك. [ 3 ]

يُدمج المصنّعون برمجيات مُدمجة في إلكترونيات السيارات ، والهواتف، وأجهزة المودم، والروبوتات ، والأجهزة المنزلية، والألعاب، وأنظمة الأمان، وأجهزة تنظيم ضربات القلب ، وأجهزة التلفاز، وأجهزة الاستقبال الرقمي، والساعات الرقمية ، على سبيل المثال. [ 4 ] قد تكون هذه البرمجيات بسيطة للغاية، مثل أنظمة التحكم في الإضاءة التي تعمل على متحكم دقيق 8 بت بذاكرة بضعة كيلوبايتات ، مع تحديد مستوى تعقيد المعالجة المناسب باستخدام إطار عمل الحساب التقريبي الصحيح [ 5 ] (وهي منهجية تعتمد على الخوارزميات العشوائية ). مع ذلك، يمكن أن تصبح البرمجيات المُدمجة بالغة التعقيد في تطبيقات مثل أجهزة التوجيه ، وعناصر الشبكات الضوئية، والطائرات ، والصواريخ ، وأنظمة التحكم في العمليات . [ 6 ]

أنظمة التشغيل

على عكس الحواسيب التقليدية التي تستخدم أنظمة تشغيل مثل macOS أو Windows أو Linux ، قد لا تستخدم البرامج المدمجة أي نظام تشغيل. وعند استخدامها لنظام تشغيل، يتوفر نطاق واسع من الخيارات، وعادةً ما يكون نظام تشغيل في الوقت الحقيقي . يُكتب كود البرامج المدمجة عادةً بلغة C أو C++ ، ولكن تُستخدم الآن لغات برمجة عالية المستوى ، مثل C# و Java و Python و JavaScript ، على نطاق واسع لاستهداف المتحكمات الدقيقة والأنظمة المدمجة. [ 7 ] كما تُستخدم لغات التجميع بكثرة، خاصةً في عمليات الإقلاع ومعالجة المقاطعات . وتُستخدم لغة Ada في بعض المشاريع العسكرية والطيران.

الاختلافات عن برامج التطبيقات

واجهة مستخدم نصية لنظام مضمن باستخدام MicroVGA [ nb 1 ]

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

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

تُستخدم تطبيقات الويب غالبًا لإدارة الأجهزة، مع إمكانية تمرير ملفات XML وغيرها من المخرجات إلى الحاسوب لعرضها. وتُستخدم عادةً أنظمة الملفات التي تحتوي على مجلدات، إلا أن قواعد بيانات SQL غالبًا ما تكون غائبة.

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

تختلف سعة ذاكرة التخزين وذاكرة الوصول العشوائي (RAM) اختلافًا كبيرًا. فبعض الأنظمة تعمل  بذاكرة فلاش سعتها 16 كيلوبايت  وذاكرة وصول عشوائي سعتها 4 كيلوبايت مع معالج مركزي يعمل بتردد 8  ميجاهرتز، بينما تضاهي أنظمة أخرى الحواسيب الحديثة. [ 9 ] وتؤدي متطلبات المساحة هذه إلى استخدام لغة C أو C++ المضمنة في معظم العمل ، بدلًا من C++. أما اللغات المفسرة مثل BASIC (مع أن Parallax Propeller، على سبيل المثال ، يمكنه استخدام BASIC المترجم) و Java ( يتوفر Java ME Embedded 8.3 [ 10 ] لمعالجات ARM Cortex-M4 و Cortex-M7 ومعالجات ARM11 القديمة المستخدمة في Raspberry Pi و Intel Galileo Gen. 2) فلا تُستخدم على نطاق واسع؛ في حين أن تطبيقًا للغة Python 3 المفسرة - MicroPython - متوفر خصيصًا للاستخدام مع المعالجات الدقيقة، مثل معالجات ARM ذات 32 بت (مثل BBC micro:bit ) ومعالجات PIC ذات 16 بت .   

بروتوكولات الاتصال

تُعدّ الاتصالات بين المعالجات، وبين معالج واحد ومكونات أخرى، ضرورية. فإلى جانب عنونة الذاكرة المباشرة ، تشمل البروتوكولات الشائعة على مستوى الأجهزة I²C و SPI والمنافذ التسلسلية و1- Wires و Ethernet و USB .

تتوفر بروتوكولات الاتصالات المصممة للاستخدام في الأنظمة المدمجة كمصدر مغلق من شركات مثل InterNiche Technologies و CMX Systems . أما البروتوكولات مفتوحة المصدر فتنبثق من uIP و lwip وغيرها.

انظر أيضاً

ملحوظات

  1. لمزيد من التفاصيل حول MicroVGA، راجع ملف PDF هذا .

مراجع

  • إدوارد أ. لي، "البرمجيات المدمجة"، التقدم في الحوسبة ( مارفن فيكتور زيلكوفيتز ، محرر) 56 ، دار النشر الأكاديمية، لندن، 2002.
  1. "Stroustrup on C++ for embedded (bottom p.2)" (PDF) . تم الاطلاع عليه بتاريخ 9 ديسمبر 2012 .
  2. إميليو، ماوريتسيو دي باولو (2014-09-01). تصميم الأنظمة المدمجة لاكتساب البيانات والتحكم بها بسرعة عالية . سبرينغر. ISBN 978-3-319-06865-7.
  3. "أنظمة التحكم الصناعية على البرمجيات المدمجة" . مؤرشف من الأصل بتاريخ 22 مارس 2013. تم الاطلاع عليه بتاريخ 22 يوليو 2013 .
  4. "أساليب وتقنيات الأنظمة المدمجة" . مؤرشف من الأصل في 29 أكتوبر 2013. تم الاطلاع عليه في 9 ديسمبر 2012 .
  5. أليبي، سيزار (2014)، الذكاء للأنظمة المدمجة ، سبرينغر، ISBN 978-3-319-05278-6.
  6. لي، إدوارد أ. (1 نوفمبر 2001). "البرمجيات المدمجة" (ملف PDF) . ptolemy.berkeley.edu . تاريخ الاسترجاع: 16 نوفمبر 2025 .
  7. مازاي، دانييلي؛ مونتيليسكياني، غابرييل؛ بالدي، جياكومو؛ فانتوني، غوالتيرو (2015). تغيير نموذج البرمجة للأنظمة المدمجة في مجال إنترنت الأشياء . إنترنت الأشياء (WF-IoT)، المنتدى العالمي الثاني لمعهد مهندسي الكهرباء والإلكترونيات (IEEE) لعام 2015. ميلانو: معهد مهندسي الكهرباء والإلكترونيات. الصفحات 239-244 . doi : 10.1109/WF-IoT.2015.7389059 . 
  8. "Stroustrup حول البرمجيات المدمجة" . مؤرشف من الأصل في 3 فبراير 2013. تم الاطلاع عليه في 9 ديسمبر 2012 .
  9. "مثال على وحدة المعالجة المركزية المدمجة" . تم الاطلاع عليه بتاريخ 9 ديسمبر 2012 .
  10. "Java ME Embedded" . شبكة أوراكل التقنية .