أخر الاخبار

تعلم تصميم برامج الأنظمة المدمجة embedded systems بطريقة إحترافية

تعلم تصميم برامج الأنظمة المدمجة embedded system software

embedded system الأنظمة المدمجة هي أنظمة حاسوبية لكن بمصادر محدودة و تستخدم لتنفيذ تعليمات محددة مسبقاً لأداء وظائف محددة في الغالب تكون مضمنة مع أنظمة أخرى.

فى هذا المقال سوف تتعلم  كيف تقوم بتصميم و تطوير برامج الأنظمة المدمجة embedded system بطريقة احترافيه كما يحدث تماما بالشركات وكما يقوم به المحترفين في هذا المجال الأكثر من رائع .

 

embedded systems


ما هو embedded system


embedded systems أو الانظمة المدمجة أو الانظمة المضمنة هي نظام مضمن بين وحدة المعالجة المركزية CPU وذاكرة الحاسوب RAM/Flash Ram/ROM، وهي عبارة عن جزء من جهاز كامل يتضمن مجموعة من الإلكترونيات الكهربائية التي تساعد هذا الجهاز على العمل بشكل سلس ليؤدي الوظيفة المطلوبه منه بأكمل وجه.


مجالات عمل embedded systems

  مجالات عمل مجال embedded systems أصبحت كثيرة و متوفره عن السابق وخصوصاً في مصر , فيحتوي مجال ال embedded system علي الكثير من التخصصات الدقيقه هي :
  • Embedded software Engineer 
  • Embedded hardware Engineer 
  • Embedded automotive Engineer 
  • Embedded Linux Engineer 
  • Embedded wireless Engineer

أمثلة على برمجة الأنظمة المدمجة embedded system

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


أمثله على الأجهزة التي تحتوي على أنظمة مدمجة embedded systems؟

  • منبهات ساعات رقمية
  • عدادات محطات الدفع ومناطق ركن السيارات
  • المكانس الكهربائية التي تعمل بالية روبوتية
  • الساعات الذكية في اليد

مكونات الانظمة المدمجة embedded system

embedded systems هى فى الاصل عبارة عن اندماج مكونات مادية hardware والبرمجيات software وتتحكم البرمجيات فى المكونات المادية لأداء المهمة المطلوبة على أكمل وجه .



ما هو الفرق بين الأنظمة المدمجة embedded system و الحواسيب العادية

الانظمة المدمجة embedded systems بإختصار هى أجهزة computer لأغراض خاصة specific purpose  محددة بدقة عالية . لكن الأجهزة العادية (الحواسيب/computers) التي تستخدم لأغراض عامة general purpose .



أهم تحديات الأنظمة المضمنة embedded systems

أهم تحديات الأنظمة المدمجه embedded system هي :

  • الأداء : سواء علي مستوي software أو hardware كونه صمم لأداء مهمة بعينها فوجب أدائها على أكمل وجه و باستقرار تام .
  • الحجم : ويعتبر من أهم التحديات حيث في الغالب النقصان فى الحجم يعنى زيادة سرعة الأداء وتقليل التكلفة .
  • إستهلاك الطاقة : تقليل إستهلاك الطاقة يعنى مدة عمل أطول بالنسبة للأنظمة المدمجة واستقرار أكبر في الأداء وكذلك خفض التكلفة .
  • التكلفة : التكلفة من أهم العوامل التي يجب أن تأخذ فى الحسبان عند تصميم أى نظام system design  فقد يعتمد عليها إستمرار إنتاج النظام من عدمه .

أهم سمات الأنظمة المدمجة ( امبيدد سيستم)

تتميز الأنظمة المدمجة بسمات أساسية يمكن من خلالها الحكم على نظام بالنجاح أو الفشل وهى :

1- الاعتمادية وتنقسم إلى :

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

2- الفعالية :

  • من حيث التكلفة
  • من حيث الوزن
  • من حيث الطاقة
  • من حيث حجم الكود الرئيسي.
  • من حيث العمل فى الزمن الحقيقي.

استخدامات الأنظمة المدمجة

  • الأجهزة المنزلية والتحكم فيها .
  • المصانع والتحكم والمراقبة والجودة والمزارع أيضا .
  • المعدات العسكرية والتحكم و التوجيه .
  • الاتصالات والرادارات والإنارة .
  • الأقمار الصناعية و السيارات .
  • الهواتف المحمولة والأجهزة الذكية .

تصميم برامج الأنظمة المدمجة من الصفر للمبتدئين و المحترفين

لجعل المقال عملى بشكل أكبر دعنا نأخذ مثال حقيقي نطبق عليه مثلا مشروع إنارة و إطفاء لمبة ( led blinking project ) كل 500ms وهو مشروع بسيط ولكن جيد بشكل كافى لتعلم تصميم برامج الأنظمة المدمجة بطريقة إحترافية .


الخطوة الأولى فى تحديد متطلبات أى مشروع بالأنظمة المدمجة سواء مادية أو برمجية هى تحليل المشروع :


أولا فى مشروعنا هنتعامل مع LED وهى عنصر رقمى ( digital ) :

وكما نعرف إن ال LED بتكون فى حالة ON ---> 1

و تكون فى حالة OFF----->0


ثانيا بما إننا هنتعامل مع عنصر خارجى فبالتالى هنستخدم

Digital Input/Output pins) DIO)

وبعد ما اتفقنا اننا هنستخدم digital pin محتاجين نتحكم انها تكون Output .

كمان محتاجين دالة علشان تعمل التأخير الزمنى (delay) .

خلينا نطول شوية كمان ونقول إننا محتاجين المشروع بتاعنا يكون Modular بمعنى انه متكون من أكتر من ملف من نوع (.c) .

تقسيم المشروع لطبقات

بعد تحليل المشروع وتحديد المتطلبات يتم تقسيم المشروع لطبقات طبقا للحاجة حسب التحليل السابق . الآن فى مثالنا سوف نقوم بتقسيم المشروع إلى (3) طبقات كما هو موضح بالصورة


  • (Microcontroller Abstraction ( MCAL
  ودى الطبقة التي تشمل ملفات من نوع (.c) اللى بتتحكم فى الريجسترى داخل الميكروكونترولر .
  • (Hardware Abstraction ( HAL
  ودى الطبقة التي تشمل ملفات من نوع (.c) اللى بتتحكم فى ال Hardware component فى مثالنا هنا هى ال LED.
  •   ( Application Abstraction ( APP
  ودى الطبقة التي تشمل ملفات من نوع (.c) اللى بتحتاج فى تنفيذها إلى منطق أو Logic يعنى بناء على حدث معين يتم تنفيذ هذه التعليمات .

الآن نحاول تطبيق الكلام السابق على مشروعنا فعليا بالتالى نحن بحاجة لكتابة ثلاث أكواد أو بحاجة إلى ثلاث ملفات من نوع (.c) وهم :

  • للتحكم ب GPIO reg للتحكم فى جعلها OUTPUT .
  • للتحكم في ال LED سواء ON/OFF.
  • دالة للتحكم فى زمن الإضفاء و الإنارة ل LED.

إذا وظيفة الملف الأول هى التحكم فى حالة أطراف التحكم الرقمى لاستخدامها تخرج ثم التحكم فى حالتها سواء High / LOW.


و الملف الثاني للتغير فى حالة الـ LED بمعنى اخر الإتصال و تفعيل الملف الأول .


الملف الثالث مهمة الفاصل الزمني لتغير الحالة كل 500ms .


فى النهاية الملف الرئيسي main.c سوف يقوم بنداء الملف الثانى والذى يعتمد فى تنفيذه على الملف الأول والثالث . ( جرب بنفسك كتابة هذا البرنامج وحاول ربط الملفات ببعضها وأخبرنا بنتيجة تجربتك و تناقش مع أكبر جروب عربى على فيس بوك مهتم بالأنظمة المدمجة من هنا ) .


قد تتسائل ما أهمية عمل كل هذه الخطوات لكتابة كود برمجى للأنظمة المدمجة ؟؟

فى الشركات الكبيره مهم جدا ما يسمونه بـ ( إمكانية إعادة الإستخدام) ففى مثالنا لاحظ الآن أنك تستطيع إستخدام الملف الثانى فى مشروع آخر وهو ما يوفر الكثير من الجهد والوقت والمال أيضاً .


كتاب Embedded systems بالعربي


تعلم أساسيات الأنظمة المدمجة مع الرائع عبدالله على و كتابه simply avr pdf كتاب أكثر من رائع باللغة العربية مصمم بشكل جميل جدا يبدأ معك من الاساسيات حتى الاحتراف للتحميل إضغط هنا



دمتم موفقين و أتمنى أن يكون المقال كان مفيد لكم و فى حالة وجود أى إستفسار لا تتردد بترك تعليق على هذا المقال و سوف أقوم بالرد عليك فى أقرب فرصه .


تعليقات
ليست هناك تعليقات
إرسال تعليق



    وضع القراءة :
    حجم الخط
    +
    16
    -
    تباعد السطور
    +
    2
    -