يعتبر النظام المُدمَج أو النظام المُضمَّن (Embedded System) أحد أنواع نُظُم أجهزة الحاسوب، ووجود برنامج جزء لا يتجزأ منه. وقد يكون نظامًا مستقلًا، أو يمكن أن يكون جزءًا من نظام كبير. و يتواجد فيه أيضًا مُتحكّم أو المعالج القائم على النظام الذي تم تصميمه لأداء مهمة محددة.
مكونات النظام المُدمَج
- الأجهزة (Hardware).
- البرمجيات (Software).
- أنظمة التشغيل في الوقت الحقيقي (Real Time Operating System – RTOS) وهي التى تطبق البرمجيات التي تسمح للمعالج بتشغيل العمليات وفقًا للجدولة؛ للحد من حالات التأخير.
خصائص النظام المُدمَج
ذو وظيفة الواحدة
النظام المُدمَج عادةً ما يؤدي عملية متخصصة، ويفعل الشيء نفسه مراراً وتكراراً، أي يعيد العملية بنفس الطريقة.
كثير من القيود
كل أنظمة الحوسبة لديها قيود على مقاييس التصميم، ولكن تلك الموجودة على نظام مُدمَج يمكن أن تكون ضيقة بشكل خاص. مقاييس التصميم هي مقياس ميزات التنفيذ مثل كلفته وحجمه وقوته وأدائه. يجب أن يكون حجم النظام مناسبًا للوضع على شريحة واحدة، ويجب أن يعمل بسرعة كافية لمعالجة البيانات في الوقت المناسب.
التفاعلية و الوقت المحدد
التفاعلية هي أن يتفاعل العديد من الأنظمة المدمجة باستمرار مع التغيُّرات في بيئة النظام، وأن تُحسب النتائج في الوقت المحدد (Real Time – RT) دون أي تأخير. على سبيل المثال الأنظمة المُدمَجة بالسيارات.
المعالجات الدقيقة
يجب أن يحتوي النظام المُدمَج على المعالج الدقيق أو المتحكّم.
الذاكرة
يجب أن يكون للنظام المُدمَج ذاكرة، كما أن برامجه عادةً يتم تضمينها في ذاكرة القراءة العشوائية (ROM)، أو قد تحتاج إلى أي ذاكرة ثانوية (Secondary Memory) في الحاسوب.
متصل
أن يكون النظام المدمج متصلًا بالأجهزة الطرفية من أجهزة الإدخال والإخراج.
ويوجد بداخل النظام المُدمَج برامج (Software) وعَتَاد (Hardware). وتُستخدم البرامج داخل النظام المُدمَج لتنفيذ الميزات المرجوَّة، بينما تُستخدم أجهزة العَتَاد لتحقيق صفات مثل الأمن، كمراقبة السرعة من خلال الرادار.
البنية الأساسية للنظام المُدمَج
- المستشعر (Sensor): يقيس الكمية الفيزيائية ويحولها إلى إشارات كهربية، وهي التي يمكن قراءتها من قبل مراقب أو من قبل أي أداة إلكترونية مثل محول A-D. ويقوم جهاز الاستشعار بتخزين الكمية المقاسة في الذاكرة
- محول A-D: محول تناظري رقمي يحول الإشارة التناظرية المُرسَلة من جهاز الاستشعار إلى إشارة رقمية
- المعالج(processor): يقوم بمعالجة البيانات، وحساب بيانات الإخراج، وتخزينها في الذاكرة
- ASIC) Application Specific Integrated Circuit): وهي رقاقة مصممة لتطبيق خاص مثل المعالج
- محول D-A: محول رقمي تناظري يحول البيانات الرقمية التي يغذيها المعالج إلى بيانات تناظرية
- المشغل أو المحرك (Actuator): يقوم بمقارنة الناتج الذي يعطية محول D-A بالناتج الفعلي أو المتوقع المُخزَّن فيه، ويُخزن الإخراج المُعتَمَد
مميزات استخدام النظام المُدمَج
- سهولة التخصيص
- انخفاض استهلاك الطاقة
- إخفاض التكلفة
- تحسين الأداء
سلبيّات النظام المُدمَج
- مجهود عالٍ للتطوير
- وقت أكبر للتسويق
خطوات تصنيع النظام المُدمَج
تحديد مواصفات النظام (Specification)
وتتضمن تحديد الوظائف والمهام المطلوبة من النظام، مع وصف واضح ودقيق لكل وظيفة بشكل بعيد عن الغموض.
تشكيل النماذج والوحدات (Modeling)
هي عملية التصوُّر والتخيُّل للنظام، مع إعادة ترتيب للمرحلة الأولى، وفيها يتم إنشاء نموذج الكيان الصلب ونموذج الكيان البرمجي.
التصميم المبدئي وتقسيم الوظائف (Design Space Exploration And Partitioning)
- Homogeneous: وفيه يتم تقسيم الوظائف من قبل مصمم النظام
- Heterogeneous: وفيه يتم تقسيم الوظائف في المرحلة السابقة عند تشكيل النماذج
مرحلة التجميع وتحسين الأداء (Synthesis and Optimization)
وفيها يتم تجميع الوظائف مع بعضها البعض ليتم اختبارها في المرحلة التالية.
مرحلة التحقق والإثبات (Validations)
وفيها يتم اختبار التصميم عن طريق إحدى بيئات المحاكاة؛ وذلك للتأكد من سلامة التصميم.
مرحلة التنفيذ (Implementations)
تعد المرحلة الأخيرة للنظام قبل عرضه في الأسواق.
الهدف من النظام المُدمَج
إدارة المستخدم (User Management)
حيث تسمح الـنواة (Kernel) لأكثر من مستخدم بالتعامل معها، و لكل منهم بياناته الخاصة و امتيازات خاصة به فقط. و بالتأكيد هناك الـ «Master user/Admin» و الذي يملك كافة الصلاحية على النظام.
تعمل Kernel على إدراة و حماية بيانات كل مستخدم من الوصول إليها من المستخدم الآخر.
إداراة العمليات (Process Management)
تسمح النواة (Kernel) لنظام التشغيل بتشغيل أكثر من تطبيق (Application) أو معالج (Processor) في نفس الوقت. وقد تحتوي كل عملية (Process) على أكثر من سلسة أوامر (Thread) تعمل معًا بالتوازي.
تملك Kernel ما يسمى ب«scheduler»، و هو ما يقوم بتحديد الوقت اللازم لكل عملية (Process) أو سلسلة أوامر (Thread) تعمل بشكل محدد مسبقًا؛ ليتمكن نظام التشغيل من تنفيذ أكثر من وظيفة في نفس الوقت، أو ما يسمى بتعددية المهام (Multitasking).
أما الوقت الذي تستهلكه كل عملية (process) يعتمد على جدولة الخوارزم (Scheduling algorithm) من أشهرها «round robin, priority based scheduling».
و يمكن للـscheduler أن يكون «Preemptive» بمعنى أنًّ المهام ذات الأهمية العليا يجوز لها عمل قطع (interrupt) أو إيقاف عمل المهام الأخرى الأقل أهمية قبل اكتمالها. أو يكون «Non-preemptive» بمعنى أنه بمجرد بدأ العملية (Process) فيجب أن تكتمل قبل أن تبدأ أي عملية أخرى.
إعداد :Nora Elshwemy
مراجعة : Ahmed M. Elsherbiny
تدقيق لغوي: خالد نصر
تحرير: زياد الشامي
المصادر:
https://www.tutorialspoint.com/embedded_systems/embedded_systems_tutorial.pdf
http://www.artist-embedded.org/docs/Events/2006/ChinaSchool/1_ESIntroduction.pdf