المنظومات المضمنة
منظومات مضمنه
Embedded systems - Systèmes embarqués
المنظومات المضمَّنة
المنظومة المضمَّنة embedded system هي منظومة تعتمد متحكماً ميكروياً microcontroller، ومقادة بالبرمجيات، وذات وثوقية، وهي منظومة للتحكم في الزمن الحقيقي، قابلة للتفاعل مع الإنسان أو الشبكة، وقادرة على العمل مع متحولات فيزيائية، وتعمل في أوساط مختلفة وتباع بأسعار اقتصادية منافسة، وهي من ثم منظومة وظيفتها الأساسية ليست حسابية بل متحكم فيها باستخدام حاسوب مضمَّن ضمنها. قد يكون الحاسوب فيها معالجاً صغرياً microprocessor أو متَحَكِّماً controller. وتعني كلمة مضمَّن أنها موجودة ضمن المنظومة مخفيَّة عن الرؤية مشكلة جزءاً متكاملاً من المنظومة الأكبر. وهذا يعني أن المستخدم قد لا ينتبه لوجود هذا الحاسوب في المنظومة، إضافة إلى أن الحاسوب أيضاً محدَّد الغرض أو صُمم لغرض محدَّد هو التحكم في المنظومة وقيادتها.
وعلى الرغم من أن الحاسوب الشخصي يتضمن معالجاً صغرياً، فإنه ليس منظومة مضمَّنة؛ لأن الغاية من تصميمه هي القيام بالحساب والحوسبة. ولكن إذا تم وضع هذا الحاسوب دوماً ضمن منظومة أكبر وتم تخصيصه لتكون مهمته الرئيسة هي التحكم في المنظومة الأكبر (مما يعني فقدانه لما يميزه بوصفه حاسوباً شخصياً كالعلبة الخارجية case ولوحة مفاتيحه وشاشته وقرصه الصلب) فإنه يشكل عندئذ جزءاً من منظومة مضمَّنة. كما وأن المتحكم المضمَّن embedded controller هو منظومة حاسوب صغري (ميكروي) microcomputer system ضُمِّن بعض البرمجيات التي تخدم الغرض والتطبيق الذي صُمم لأجله.
لمحة تاريخية:
كانت أولى منظومة مضمَّنة هي حاسوب التحكم في قيادة مركبة الفضاء الأمريكية أبولو Apollo الذي طوَّره شارلز ستارك درابر Charles Stark Draper وفريقه في مخابر معهد ماساشوسيتس للتكنولوجيا MIT، وقد تضمنت كل رحلة إلى القمر اثنين منها. وكانت المنظومة الأولى التي تم إنتاجها بكثرة في بداية الستينيات من القرن العشرين هي حواسيب القيادة للصواريخ الأمريكية Minuteman المسماة Automatics D-17. فقد بُنيت بوابات منطقية مكوَّنة من ترانزيستورات مفردة واستُخدم قرص صلب ذاكرة رئيسة، وقد استبدل بهذا الحاسوب في عام 1966 عند إنتاج الجيل الثاني من الصاروخ Minuteman II حاسوب يستخدم دارات متكاملة.
تطورت المنظومات المضمَّنة منذ ذلك التاريخ وحتى اليوم وتزايدت قدرتها على المعالجة وانخفضت كلفة إنتاجها.ـ على سبيل المثال ـ كان المعالج 4004 الذي أنتجته شركة إنتل Intel الشهيرة أول المعالجات الصغرية الذي أخذ طريقه إلى استخدامات عديدة في الآلات الحاسبة ومنظومات صغيرة أخرى، وكان يتطلب بعض المكونات الأخرى كالذاكرة ووحدات الإدخال والإخراج. ومع نهاية الثمانينيات وُضع المعالج وجميع المكونات الخارجية الضرورية في دارة متكاملة واحدة مع المعالج مما أدى إلى تطور ما سُمي بالمتحكم الميكروي microcontroller الذي شاع استخدامه في المنظومات المضمَّنة.
مقومات المنظومة المضمَّنة:
البرمجيات والعتاديات
مثل كل المنظومات الحاسوبية، تتكون المنظومات المضمَّنة من عتاد وبرمجيات، وحتى وقت قريب كان تصميم العتاد الذي يتركز على المعالج الصغري وربطه بوحدة الذاكرة وبوحدات الإدخال والإخراج وكيفية وضع مخطط العنوانات وتفكيكها يأخذ الوقت والجهد الأكبر من التصميم. وكان يتم بعد الانتهاء من تصميم المنظومة الصغرية كتابة برنامج بسيط باستخدام لغة الآلة machine language يتناسب مع حجم الذاكرة ووسائل التطوير المتاحة. وبعد التطور الكبير الذي حصل في تقانات الدارات المتكاملة والإلكترونيات الدقيقة صار يوضع على كسرة واحدة كامل المنظومة السابقة في صيغة متحكم ميكروي microcontroller. كما سمحت التطورات الكبيرة في تصنيع الذواكر بتضمين ذواكر بحجوم كبيرة مُتيحة بذلك كتابة برامج معقدة لتنفيذ مهمات أكثر تعقيداً. وهكذا صار تصميم العتاد بسيطاً، وتَوجَّه التركيز إلى البرمجيات وكيفية استخدام لغات البرمجة المتقدمة العالية المستوى وأدواتها في كتابة برمجيات تخدم تطبيقات أكثر تعقيداً.
الدقة الزمنية
يجب أن يستجيب المتحكم الميكروي بسرعة ليبقى تنفيذ العملية في منطقة الأمان، وهذا يُعدّ من أهم سمات العمل في الزمن الحقيقي real time، إذ يستجيب المتحكم لتغير الدخل ويحقق الاستجابة اللازمة ضمن الإطار الزمني المحدد. وتختلف طريقة العمل هذه عن عمل الحواسيب الشخصية كثيراً، إذ يمكن الانتظار على الحاسوب الشخصي إذا تأخر في تنفيذ عمل معين كتحديث ملف ما، ولكن لا يمكن التأخر في استجابة منظومة مكابح السيارة عند إعطاء الأمر بذلك. وهكذا فإن بعض النظم المضمَّنة تعمل ضمن شروط عمل قاسية من حيث الزمن، وتحقق جميعها الدقة الزمنية timelines التي تعني ضرورة تفهم المصمّم لمتطلبات المنظومة المطلوب التحكم فيها وأن يستجيب لها.
ترابطات المنظومة
قد تتطلب بعض المنظومات أكثر من متحكم واحد لتنفيذ عملها على نحو صحيح وسريع، ويُكلَّف كل متحكم مضمَّن التحكم بمنظومة جزئية. لهذا يجب أن يكون ممكناً ربط النظام المضمَّن بمنظومات أخرى. ويتم تبادل المعلومات المشتركة بين هذه المتحكمات المضمَّنة عبر شبكة بسيطة لتبادل المعلومات تصمم لتناسب متطلبات النظام المتحكم فيه. أصبح هذا المنهج أكثر شيوعاً لأن كلفة عدد من المتحكمات وشبكة ترابطها أقل بكثير من حاسوب وحيد معقَّد يُكلَّف عدداً من المهمات. ومع تطور الإنترنت طُوِّرت مجموعة من المتحكمات المضمَّنة المتوافقة مع الإنترنت، ويمكن حالياً ربط الفرن والتلفاز والغسالة الآلية في شبكة منزلية باستخدام متحكمات مضمَّنة توصل بدورها إلى شبكة الإنترنت، مما يمكِّن الإنسان من إدارة نشاطاته المنزلية من بعد.
الوثوقية
يجب أن تكون البرمجيات المطوَّرة للنظم المضمَّنة ذات وثوقية عالية، وألا تحوي أي أخطاء تصميمية. وعلى عكس البرمجيات التي تُطورها الشركات للحواسيب الشخصية، فإنه لا يمكن أن تحوي النسخة الأولى أي أخطاء على أمل تصحيحها في النسخ اللاحقة، إذ إن أي خطأ قد يؤدي إلى كوارث لا تُحمد عقباها، ويعقد ذلك عمليات التصميم والاختبار والتنصيب لكل من العتاد والبرمجيات الخاصة بالنظم المضمَّنة.
مكوِّنات المتحكم المضمَّن:
يتألف كل متحكم مضمَّن من وحدة المعالجة المركزية ووحدات الإدخال والإخراج ووحدة الذاكرة، وتتوضع جميعها على لوحة مطبوعة يربط بينها مسرى مناسب تتحكم به وحدة المعالجة المركزية.
وحدة المعالجة المركزية: وهي عادة معالج صغري[ر] مناسب للتطبيق، فقد يكون ذا 16.8 ، أو 32 بتاً. كما يُزود عادة بمجموعة تعليمات مناسبة للتطبيق. وقد يكون هذا المعالج من نوع المعالجات ذات مجموعة التعليمات المعقدة CISC أو المعالجات ذات مجموعة التعليمات المخفضة RISC، وله إمكانات عنونة الذاكرة ووحدات الإدخال والإخراج والتخاطب معها. وتوجد بنى عديدة للمعالجات المستخدمة في المنظومات المضمَّنة.
وحدة الذاكرة:
هي تجهيزة إلكترونية لها دارات قراءة وكتابة، ويمكن حفظ كميات معلومات كبيرة فيها ضمن حيز فيزيائي صغير، وتحتفظ بالمعلومات من دون تغيير، وهي ذات استهلاك منخفض نسبياً للطاقة الكهربائية، وذات وثوقية واستمرارية عالية. وتصنَّف وفق إمكانية القراءة والكتابة في ذواكر قراءة فقط read only memory (ROM)، أو ذواكر قراءة وكتابة read-write memory (RWM). كما تصنف وفق طريقة النفاذ الى المعلومات المحفوظة فيها؛ في ذواكر ذات نفاذ متتال sequential access memory (SAM) كما في الأشرطة المغنطيسية، أو ذات نفاذ عشوائي random access memory (RAM).
قد تكون الذواكر ذات النفاذ العشوائي من نوع دينامي dynamic RAM، وتضمحل الشحنة الكهربائية لمثل هذا النوع من الذواكر مع الزمن مما يتطلب إنعاشها دورياً للحفاظ على المعلومات المحفوظة. وقد تكون من النوع الساكن static RAM ولا تتلاشى فيها الشحنة الكهربائية، ومن ثم لا حاجة إلى إنعاشها دورياً إلا أنها أغلى ثمناً من تلك الدينامية.
ويجب على المصمم عند إنجاز المنظومة المضمَّنة أن يقرر مكان توضع الذاكرة، هل يُضمِّنها على رقاقة المعالج أم يضعها خارجها. وهنالك عموماً خيارات رئيسة ثلاثة لمكان توضع الذاكرة في منظومة متحكم ميكروي. فقد تكون الذاكرة ضمن رقاقة المعالج إلا أنها غير كافية ومن ثم سيتوجب على المصمم استخدام ذاكرة خارجية تتوضع على الدارة المطبوعة، ويتم عادة إخراج مسرى المعطيات والعنوان على مخارز الكسرة/الرقاقة لتنجيز هذا التوسيع. وقد تكون موضوعة ضمن رقاقة المعالج وبحجم كاف للتطبيق إلا أن مسرى العنوان والمعطيات غير متوفرين على مخارز المعالج، ومن ثم لا يستطيع المصمم توسعة نظام الذاكرة لاحقاً.
وحدات الإدخال والإخراج:
وهي وحدات مهمتها ربط المعالج بالوسط الخارجي؛ مهمتها إدخال المُعطيات المطلوب معالجتها إلى المعالج وإخراج نتائج المعالجة من المعالج إلى الوحدات المحيطية الأخرى. قد تكون المعطيات المُدخَلة إلى المعالج رقمية فتُستخدم وحدات إدخال رقمية لهذا الغرض. أما إذا كانت المُعطيات المُدخَلة تمثل بإشارة تمثيلية فلابد من استخدام وحدات إدخال تمثيلية. يمكن قول الشيء ذاته عن وحدات الإخراج أيضاً فقد تكون تمثيلية أو رقمية.
عند استعمال وحدات تمثيلية لإدخال إشارات تمثيلية ومعالجتها في المعالج، لا بد من تحويل الإشارة إلى ما يكافئها رقمياً قبل إدخالها إلى المعالج، ويستخدم لهذا الغرض مبدل تمثيلي رقمي (ADC). أما عند إخراج نتائج المعالجة الرقمية من المعالج إلى وحدة تمثيلية فلا بد من استخدام مبدل رقمي تمثيلي (DAC). وقد تستخدم مع الإشارات التمثيلية مراحل للتشكيل conditioning أو الفلترة filtering أو التضميم multiplexing.
وأخيراً قد تكون وحدات الإدخال والإخراج تسلسلية serial أو تفرعية parallel، ومتزامنة synchronous أو غير متزامنة asynchronous. ولكل طريقة معايير وبروتوكولات طُوِّرت لمثل هذه التطبيقات مع الاهتمام بظروف تنجيز المتحكمات الميكروية المضمَّنة وتوضعها على دارة مطبوعة واحدة أو على رقاقة واحدة. فمن أهم البروتوكولات للنقل التسلسلي المتزامن هناك microwire، وserial peripheral interface SPI، وinter-integrated circuit I2C. أما أشهر المعايير والبروتوكولات التسلسلية غير المتزامنة فهي RS-232/ EIA 232 والمسرى controller area network (CAN).
تُستخدم عادة وحدات ترابط interfacing units لربط الوسط الخارجي بوحدات الإدخال والإخراج، ويستخدم بعضها لإدخال إشارات تمثيلية إلى المتحكم المضمَّن وربطها أو إخراجها منه. تستخدم هذه الوحدات لإخراج الإشارات والأوامر إلى المبدلات switches والحواكم relays ولوحات المفاتيح والديودات الضوئية ووحدات الإظهار ذات الكريستال السائل LCD او مرمزات الموضع encoders أو محرك تيار مستمر DC motor أو محرك خطوي stepper motor.
برمجيات المنظومات المضمَّنة:
يستخدم مصممو المنظومات المضمَّنة برمجيات عديدة كالمترجمات compilers والمنقحات debuggers لتطوير البرمجيات التي تتحكم في المنظومات المضمَّنة. كما قد يستخدمون الأدوات الاتية:
ـ مقلد في الدارة in-circuit emulator: هو تجهيزة عتادية-برمجية تقوم مقام المعالج الصغري وتوفر التسهيلات لتحميل الرماز التجريبي للبرنامج التطبيقي وتنقيحه.
ـ تسهيلات لزيادة وثوقية المنظومة بإضافة إحدى طرق الترميز coding مثل اختبار المجموع checksum أو CRC للبرنامج، بحيث تستطيع المنظومة تبيان ما إذا كان رماز البرنامج صحيحاً أم قد ترافق بخطأ ما.
ـ قد تستخدم مترجمات compilers وواصلات linkers لتحسين صياغة البرنامج وتحريره لتطبيق محدَّد.
ـ برمجيات الإقلاع: تستخدم معظم المنظومات المضمَّنة برمجيات محددة لإقلاعها. تقوم هذه البرمجيات باختبار المكونات الإلكترونية وتنجز اختباراً ذاتياً self-test قبل إقلاع البرنامج التطبيقي. تُصمم عملية الإقلاع لتكون قصيرة جداً فلا تستغرق زمناً كبيراً. ويشمل الاختبار الذاتي عادة المعالج والذاكرة والطرفيات ووحدات الإدخال والإخراج إضافة إلى اختبارات الأمان.
متطلبات التغذية الكهربائية:
تتطلب المتحكمات المضمَّنة تغذية كهربائية تُمكِّنها من القيام بمهماتها. ويكون عادة الخيار بين استخدام مصدر التغذية العامة أو البطاريات أو مصادر متجددة. ويجب على مصمم النظام أولاً تقدير قيمة الطاقة اللازمة وتحديد مصدرها وكيفية توصيلها إلى النظام لضمان الاستمرارية والأمن والسلامة وعدم إعاقتها قيام المنظومة بما حُدّد لها؛ مثل إمكانية كونها نقالة في بعض الأحيان. فإذا كان الخيار استخدام بطاريات، فعلى المصمم تحديد نوعها (ألكالين، أو ليثيوم، أو نيكل- كادميوم) وسعتها وسعرها ومعدل إعادة شحنها. أما إذا كان الخيار استخدام الشبكة العامة فيتوجب استخدام منظم جهد ومكيف الاستطاعة للحصول على تغذية نظيفة وتحديد طريقة التغذية لضمان الاستخدام الآمن لها واستمرارية التغذية.
أخيراً يجب استخدام مكونات إلكترونية للمتحكم المضمَّن من تلك الأنواع التي تصنف على أنها منخفضة الطاقة مثل تقانة CMOS، وعلى أن يعمل عند ترددات منخفضة لتقليل استهلاك القدرة.
أمثلة على المنظومات المضمَّنة وتطبيقاتها:
شاع في الآونة الأخيرة استخدام المنظومات المضمَّنة التي تستخدم متحكماً مضمَّناً يقوم بالإشراف على تنفيذ الوظائف المطلوبة. من هذه المنظومات: الهواتف المحمولة الخلوية، ومبدلات الشبكات الحاسوبية network switches والموجِّهات routers وآلات الصرف الآلي ATM في المصارف، ومنظومات الطيار الآلي في الطائرات وأنظمة قيادة الصواريخ وكثير من التجهيزات الطبية، والطابعات الحاسوبية والراسمات… وغيرها.
فيصل العباس
الموضوعات ذات الصلة: |
تحصيل الإشارة ـ الحاسوب ـ المعالج الصغري ـ المؤتمت الصناعي القابل للبرمجة.
مراجع للاستزادة: |
- TAMMY NOERGAARD, Embedded Systems Architecture: A Comprehensive Guide for Engineers and Programmers (Embedded Technology) (Newnes; Bk&CD-Rom edition 2005).
- TIM WESCOTT, Applied Control Theory for Embedded Systems (Embedded Technology) (Newnes; Bk &CD-Rom edition 2006).
- FRANK VAHID & TONY D. GIVARGIS, Embedded System Design: A Unified Hardware/Software Introduction (Wiley; I.S.ed edition 2001).
- التصنيف : التقنيات (التكنولوجية) - النوع : تقانة - المجلد : المجلد التاسع عشر - رقم الصفحة ضمن المجلد : 721 مشاركة :