ما هي الأنظمة المدمجة (Embedded Systems)


#1

الجزء الأول – (Embedded Systems) الأنظمة المدمجة

(Embedded Systems) عشان نعرف معنى الأنظمة المدمجة أو ما يعرف باسم الـ

(System) لازم نعرف أولا يعني ايه نظام

(Embedded) و ايه المقصود بكلمة مدمج أو مخفي

و ايه اللي بيميز الأنظمة المدمجة عن باقي الأنظمة Embedded Systems بعدها نقدر نعرف يعني ايه

هنتكلم في الجزء الأول عن تعريف النظام بشكل عام و نذكر مثالين عليه و نحللهم كويس جدا

Embedded و في الجزء الثاني من المقال هنبدأ ندرس معنى كلمة مدمج

Embedded systems وبالتالي نوصل لمعنى الأنظمة المدمجة أو ما يعرف باسم الـ

يعني ايه بقا نظام أو System

بأبسط صورة هو عبارة عن مجموعة من العناصر يتم ربطها معا لآداء غرض معين بناء على خطة محددة System الـ

كلنا عارفينه هو ساعة اليد أو نقدر نقول عليها System و عشان نفهم الكلام ده هناخد مثال على

نظام استعراض الوقت

أهم العناصر اللي بيتكون منها النظام هي الآتي

أولا) هيكل أو جسم الساعة الخارجي

ثانيا) القرص أو الوجه الخاص بالساعة

ثالثا) الأوستيك الخاص بالساعة

رابعا) التروس الموجودة داخل جسم الساعة

خامسا) عقارب الساعة المتصلة بالتروس

سادسا) البطارية الخاصة بالساعة

كدة احنا حددنا العناصر الموجودة في النظام ده

ايه بقا الغرض أو الدور اللي بتقوم بيه العناصر دي ؟

اكيد اننا نعرف منها الساعة كام بمعنى أدق اظهار و استعراض الوقت كل ثانية و تحديثه باستمرار

و بكدة يتبقى لينا حاجة واحدة بس عشان نبقى حللنا النظام ده بالكامل

الخطة أو البرنامج اللي النظام بيعمل وفقا ليه و هي كالتالي

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

ثانيا) يتحرك أطول العقارب و أكثرها رٌفعا بشكل دائري كل ثانية بحيث يدور دورة كاملة و يعود إلى موضعه الأصلي كل 60 ثانية

ثالثا) يتحرك عقرب آخر أقل طولا من السابق بشكل دائري كل دقيقة بحيث يدور دورة كاملة و يعود إلى موضعه الأصلي كل 60 دقيقة

رابعا) يتحرك أقصر العقارب طولا بشكل دائري كل ساعة بحيث يدور دورة كاملة و يعود إلى موضعه الأصلي كل 12 ساعة

خامسا) تعود جميع العقارب إلى موضعها الأصلي كل 12 ساعة من كل يوم

و بكدة يبقى احنا انتهينا من تحليل نظام الساعة بالكامل و فهمنا الى حد ما يعني ايه نظام

و عشان نفهم اكتر تعالو ناخد مثال كمان منتشر جدا نوضح بيه الفكرة أكتر و هو

الغسالة الاوتوماتيك

أهم العناصر اللي بيتكون منها نظام غسيل الملابس الأوتوماتيك كالتالي

أولا) شاشة عرض الوضع الذي تعمل عليه الغسالة

ثانيا) مفاتيح التشغيل و اعداد البرنامج الخاص بالغسالة

ثالثا) الموتور الخاص بالغسالة

رابعا) حساس مستوى المياه

خامسا) مصدر الطاقة و وحدة التحكم

سادسا) محبس لادخال المياه و محبس آخر لاخراج المياه

اما الغرض اللي بتقوم بيه كل العناصر دي فهو

غسل الملابس المتسخة الموجودة داخل حلة الغسالة تبعا لبرنامج معد مسبقا من خلال المستخدم حيث تدور الغسالة عدد محدد من اللفات و المراحل تبعا لعدة قواعد

و بتمثل القواعد بالنسبة لنظام الغسالة الأوتومايتك ثاني نقطة عندنا و هي

الخطة التي يعمل على أساسها النظام و هي كالتالي

أولا) اتباع الخطوات الآتية

أ. غسل الملابس من خلال دوران الموتور عدة دورانات محددة بناء على البرنامج الخاص بالغسالة لوقت محدد

ب. شطف الغسيل بمياه جديدة نظيفة بعد التخلص من المياه الغير نظيفة

ج. بعد الانتهاء من شطف الغسيل تماما يتم دوران الموتور بسرعة عالية لوقت محدد بالبرنامج لتجفيف الغسيل من المياه اعتمادا على قوة الطرد المركزية

د. تنبيه المستخدم لانتهاء دورة غسيل الملابس من خلال اضاءة مؤشرات التنبية و اصدار صافرة التنبيه لمدة دقيقة واحدة

ثانيا) يتم عرض كل خطوة من الخطوات السابقة على شاشة العرض بالغسالة

ثالثا) في حالة حدوث أي توقف مفاجئ مثل انقطاع الكهرباء أو ما إلى ذلك يتم استكمال الجزء المتبقي من البرنامج بدءا من النقطة التي توقف عندها البرنامج

رابعا) لا يتم تكرار الخطوات السابقة الا في حالة قيام المستخدم باعادة تشغيل البرنامج مرة أخرى بعد وضع ملابس جديدة بالغسالة

و بكدة يبقى احنا انتهينا من تحليل نظام عمل الغسالة بالكامل و نقدر نحلل أي نظام بعد كدة بنفس الأسلوب اللي حللنا بيه النظامين السابقين

و بكدة نكون انتهينا من فهم المقصود بكلمة نظام لما بنتكلم عن الأنظمة المدمجة و في المرة القادمة هنعرف مع بعض ايه المقصود بكلمة مدمج و ايه اللي بيميز الأنظمة المدمجة عن أي نظام تاني موجود

منقول من صفحة Embedded Systems Geeks


#2

ما هي الأنظمة المدمجة ( Embedded systems ) - الجزء الثاني "

لكي نعرف ما المقصود بالـ Embedded system تعرفنا في الجزء الأول عن ما هو الـ System و كيف نقوم بتحليل أي System

أما في هذا الجزء سنعرف بالتحديد ما المقصود بالـ Embedded system و ما الذي يميز هذا الـ System عن أي System آخر و نضرب بعض الأمثلة لذلك و كذلك سنعرف ما الذي يميز Embedded systems software engineer عن أي Software engineer آخر فلنبدأ على بركة الله …

أبسط تعريف للـ Embedded system هو أنه كمبيوتر مبرمج لآداء مهمة واحدة أو عدة مهمات محددة فقط ولا يمكنه تنفيذ أي مهام أخرى

و كونه كمبيوتر فهذا يعني أنه يتكون من جزئين رئيسيين Hardware, Software تماماً مثل جهاز الكمبيوتر العادي فإذا نظرنا عن قرب لجهاز الكمبيوتر فنجده يتكون من مجموعة من المكونات نعرفها جميعا جيداً مثل ( البروسيسور - وحدات الإدخال و الإخراج - الذاكرة بأنواعها - نظام التشغيل … إلخ )

أما الـ Embedded systems و لكونه مبرمج لآداء مهمة واحدة أو عدة مهمات محددة فقط كما ذكرنا من قبل فلن يحتاج من كل تلك المكونات سوى ما يكفيه لآداء تلك المهام المحددة فالـ Embedded system يا سادة نظام بخيل جدا و في غاية الحرص كما سنرى …

فعلى سبيل المثال نجد أننا قد نستخدم بروسيسور أقل سرعة عن عمد و ذلك لتوفير استهلاك الطاقة و التي تكون بدورها محدودة بالبطارية المستخدمة - معظم الـ Embedded systems تعمل بالبطارية - و يجب توخي الحرص في استنفاذها

كما نجد أيضا أنه يتوجب علينا استخدام ذاكرة أصغر لتقليل تكلفة التصنيع و من الممكن ألا نحتاج إلى شاشة و قد نستغني عن بعض الإضافات ( peripherals ) التي لا حاجة لنا بها مثل الإتصال بالإنترنت أو البلوتوث أو إضافة ذاكرة خارجية أو وجود منفذ USB أو ما إلى ذلك من الإضافات بالموجودة بجهاز الكمبيوتر العادي …

ليس المقصود بذلك هنا هو عدم استخدام تلك الإضافات فحسب و لكن المقصود هو اختيار بروسيسور لا يدعم أمكانية استخدام تلك الإضافات من الأساس و لكنه يكون أرخص في السعر … ألم أقل لكم أننا نتعامل مع نظام بخيل جداً

ليس فقط الـ Hardware هنا هو من محدودي الدخل و لكن رغم ذلك مطلوب من الـ Software المبني على هذا الـ Hardware القيام بالمهام المحددة له في كل مرة في نفس الوقت و ألا يأخذ أي وقت إضافي فيما يعرف بـ Real time constrains و قد نجد بعض الـ systems التي يوجد بها نوع من السماحية فيما يعرف بـ Fault tolerant و لكن لا تبتهج كثيرا فتلك السماحية تكون محدودة أيضاً حيث تنقسم الـ Real time constrains إلى Hard real time constrains, Soft real time constrains و سنتعرض لهم لاحقا بإذن الله

و لتضح الصورة أكثر و لنعرف أهمية أن يكون الـ System يتميز بكونه Real time فلنفكر في التطبيقات الحرجة لتلك الأنظمة مثل جهاز تنظيم ضربات القلب على سبيل المثال فلا يمكن بأي حال من الأحوال أن يحدث تأخير و لو لجزء من الثانية في البرنامج الذي يعمل عليه الجهاز … مثال آخر هو الـ Air bag الموجودة بالسيارات و التي تعمل عند تعرض السيارة لحادث لحماية السائق من الاصطدام بعجلة القيادة فهل تعتقد أنه سيكون لها أي أهمية اذا تأخرت عن العمل لبضع أجزاء من الثانية بعد حدوث الاصطدام … بالتأكيد لا

تلخيصاً لكل ما سبق فلكي نقوم بتعريف أي نظام على أنه Embedded system فإليك بعض المواصفات التي يجب أن تنطبق عليه :

1- يحتوي بداخله على كمبيوتر
2- يقوم بمهمة واحدة أو عدة مهمات محددة مسبقاً فقط ولا يستطيع تنفيذ غيرها
3- محدود الذاكرة
4- محدود الطاقة ( يعمل بالبطاريات عادة )
5- يحمل بروسيسور محدود الإمكانيات
6- يتسم نظام التشغيل به بكونه Real time operating system

و لأبسط لك فكرة مدى انتشار الـ Embedded systems من حولنا فلتعلم أن أكثر من 95% من الأجهزة التي تحتوي على Software من حولنا ما هي إلا Embedded systems و إليك بعض الأمثلة :

1- Switches & Routers
2- Mobile phones & Tablets
3- Fax, printer and scanners
4- Mp3, Mp4 and Mp5 players
6- Digital cameras
7- CD/DVD players
8- Microwave
9- Washing machine
10- Medical devices

و قريبا ستكون مزروعة داخل أجسادنا لمتابعة وظائف الجسم الحيوية و ستكون موجودة بكل شيئ نراه حولنا من الإبرة إلى الصاروخ فيما يعرف بـ Internet of things

و نلاحظ من الأمثلة أن الـ Software الخاص بأي منها مرتبط بالـ Hardware المبني عليه فلا يمكن وضع الـ Software الخاص بأي System على الـ Hardware الخاص بـ System آخر بالطبع … فلن يتحول الـ Microwave إلى Mobile phone و إن تأكدت بنفسك عدة مرات من نسخة الـ Android التي وضعتها على الـ Hardware الخاص بالـ Microwave …

و بعبارة أخرى أكثر دقة فأي System يكون مفصلاً مخصوص بناء على الـ Application المستخدم به و ذلك من خلال اختيار ما يناسبه من :

  • Processor
  • Available memory
  • Amount of I/O
  • Communication protocols

- و لكن هل يمكن اعتبار جهاز الكمبيوتر أنه Embedded system ؟

بالتأكيد أنت تعرف الإجابة الآن لكن لنوضح الصورة أكثر فجهاز الكمبيوتر يمكنه القيام بعدد لا نهائي من المهام بناء على الـ software الموجود عليه ( تشغيل أغاني - تشغيل فيديو - تحرير النصوص - تشغيل الألعاب - تصميم الجرافيكس - تصفح انترنت … إلخ ) لذا يمكن وصف الـ Hardware الخاص به بأنه General purpose platform that holds different types of software

مما يتعارض بالتالي مع تعريفنا للـ Embedded system في كونه يقوم بمهمة واحدة أو عدد من المهمات المحددة مسبقا فقط … لكن رغم ذلك فيمكن النظر إلى بعض مكونات الكمبيوتر على أنها Embedded systems على سبيل المثال DVD player و كارت الـ LAN لكل منهما مهمة محددة يقوم بها و تنطبق عليه كافة مواصفات الـ Embedded system السابقة لذلك يمكن اعتبارهما كذلك

بعد أن تعرفنا على الـ Embedded system و مواصفاته دعونا ننظر إلى الموضوع من وجهة نظر أخرى …

  • ينبغي على مبرمج الأنظمة المدمجة أن يتعامل مع كل تلك القيود التي ذكرناها
  • و كون الـ Software مرتبط بشدة بالـ Hardware يحتم على المبرمج أن يكون على علم دقيق بالـ Hardware الذي يتعامل معه مما يتطلب دراسته الجيدة للإلكترونيات و الفيزياء
  • أدوات التطوير أكثر تعقيدا فأنت تقوم بكتابة الـ Software على جهاز كمبيوتر يحمل بروسيسور مختلف و له إمكانيات مختلفة عن البروسيسور الحقيقي الذي سيعمل عليه الـ Software في الواقع و لا يمكنك تجربة الـ Software بالكامل و التأكد من فاعليته من خلال الكمبيوتر المستخدم في كتابة الـ Software قبل أن تقوم بحرقه على الـ Hardware الفعلي الذي سيعمل عليه لاحقا لتتأكد من فاعليته على أرض الواقع و ليس مجرد محاكاة تقوم بها
  • من المهم جدا أن تراعي مشكلة محدودية الطاقة كون معظم الـ Embedded systems تعمل بالبطارية لذا قد تلجأ إلى استخدام Sleep mode أو استخدام Clock rate أقل إذا أصبح الحمل على البروسيسور أقل و إن زاد الحمل فيتم زيادة الـ Clock rate مرة أخرى

و لندع ابتسامة لطيفة على وجهك عزيزي القارئ بالنهاية فبسبب كل ما سبق فأجور و مرتبات من يعملون بمجال الـ Embedded systems software engineering تكون أعلى من أجور أي Software engineer آخر و كذلك إمكانية دخول هذا المجال و التخصص به لغير دارسي مجال الهندسة تكاد تكون مستحيلة بعكس مجال البرمجة التقليدي سواء في تطوير مواقع الإنترنت أو الموبايل أو حتى برامج الـ Desktop و الذي يمكن أن يتخصص به أي شخص و إن لم يدرس الهندسة من قبل.

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

المصادر :

منقول من صفحة Embedded Systems Geeks