الأنظمة المدمجة هى أنظمة حاسوبية لاكن بمصادر محدودة و تستخدم لتنفيذ تعليمات محددة مسبقاً لأدآء وظائف محددة فى الغالب تكون مضمنة مع أنظمة أخرى .
فى هذا المقال سوف تتعلم بإسلوب سهل وبسيط كيف تقوم بتصميم برامج الأنظمة المدمجة بطريقة إحترافيه كما يحدث تماما بالشركات وكما يقوم به المحترفين فى هذا المجال الأكثر من رائع .
فى هذا المقال سوف تتعلم بإسلوب سهل وبسيط كيف تقوم بتصميم برامج الأنظمة المدمجة بطريقة إحترافيه كما يحدث تماما بالشركات وكما يقوم به المحترفين فى هذا المجال الأكثر من رائع .
أمثله على الإنظمة المضمنة embedded system
جميع عناصر التحكم فى منزلك مثل ريموت المكيف أو نظام التحكم فى السرعات بالغسالة أو حتى التحكم بدرجة الحرارة فى المثلج و هاتفك المحمول أيضا كذلك عناصر الرفاهية و التحكم الآلى فى السيارات الحديثة حتى التحكم فى الصواريخ والطائرات وأنظمة الدفاع الجوى والردارات كلها فى الحقيقه عبارة عن أنظمة مدمجة و قيس على ذلك الكثير ممن تجده حولك وتتعامل معه بشكل يومى .
مكونات الأنظمة المدمجة embedded system
هى فى الإصل عباره عن إندماج لمكونات مادية hardware مع البرمجيات software وتتحكم البرمجيات فى المكونات المادية لإداء المهمة المطلوبة على أكمل وجه .
الفرق بين الأنظمة المدمجة و الحواسيب العادية
الإنظمة المدمجة بإختصار هى أجهزة كمبيوتريه لأغراض خاصة أومحدوده بدقة عالية .
لكن الأجهزة العادية (الحواسيب) التى تستخدم لأغراض عامه .
أهم تحديات الأنظمة المضمنه
- الأدآء : كونه صمم لآداء مهمة بعينها فوجب أدائها على أكمل وجه و بإستقرار تام .
- الحجم : ويعتبر من أهم التحديات حيث فى الغالب النقصان فى الحجم يعنى زيادة سرعة الأداء وتقليل التكلفة .
- إستهلاك الطاقة : تقليل إستهلاك الطاقة يعنى مدة عمل أطول بالنسبة للأنظمة المدمجة وإستقرار أكبر فى الأدآء وكذلك خفض التكلفة .
- التكلفة : التكلفة من أهم العوامل اللى يجب أن تأخذ فى الحسبان عند تصميم أى نظام فقد يعتمد عليها إستمرار إنتاج النظام من عدمه .
أهم سمات الأنظمة المدمجة ( إيمبيدد سيستم)
تتميز الأنظمة المدمجة بسمات أساسية يمكن من خلالها الحكم على نظام بالنجاح أو الفشل وهى :
1- الإعتمادية وتنقسم إلى :
- الوثوقية وهى إحتمالية عدم فشل النظام وفى القيام بوظيفته .
- قابلية الصيانة .
- الإتاحية : وهى أن النظام صالح للعمل فى الوقت الذى صمم ليعمل فيه .
- الأمان : أى انه فى حالة الفشل لن يسبب ضرر.
- أمن المعطياة : يكفل سرية المعلومات بداخله .
- من حيث التكلفة
- من حيث الوزن
- من حيث الطاقة
- من حيث حجم الكود الرئيسي.
- من حيث العمل فى الزمن الحقيقي.
إستخدامات الأنظمة المدمجة
- الأجهزة المنزلية والتحكم فيها .
- المصانع والتحكم والمراقبة والجودة والمزارع أيضا .
- المعدات العسكرية والتحكم و التوجيه .
- الإتصالات والرادرات والإنارة .
- الأقمار الصناعية و السيارات .
- الهواتف المحمولة والأجهزة الذكية .
تصميم برامج الأنظمة المدمجة من الصفر للمبتدئين و المحترفين
لجعل المقال عملى بشكل أكبر دعنا نأخذ مثال حقيقي نطبق عليه مثلا مشروع إنارة و إطفاء لمبة ( led blinking project ) كل 500ms وهو مشروع بسيط ولكن جيد بشكل كافى لتعلم تصميم برامج الأنظمة المدمجة بطريقة إحترافية .
الخطوة الأولى فى تحديد متطلبات أى مشروع بالأنظمة المدمجة سواء مادية أو برمجية هى تحليل المشروع :
- أولا فى مشروعنا هنتعامل مع LED وهى عنصر رقمى ( digital ) :
وكما نعرف إن ال LED بتكون فى حالة ON ---> 1
و تكون فى حالة OFF----->0
- ثانيا بما إننا هنتعامل مع عنصر خارجى فبالتالى هنستخدم
Digital Input/Output pins) DIO) - وبعد ما اتفقنا اننا هنسخدم digital pin محتاجين نتحكم انها تكون Output .
- كمان محتاجين دالة علشان تعمل التأخير الزمنى (delay) .
- خلينا نطول شوية كمان ونقول إننا محتاجين المشروع بتاعنا يكون Modular بمعنى انه متكون من أكتر من ملف من نوع (.c) .
تقسيم المشروع لطبقات
بعد تحليل المشروع وتحديد المتطلبات يتم تقسم المشروع لطبقات طبقا للحاجه حسب التحليل السابق . الآن فى مثالنا سوف نقوم بتقسيم المشروع إلى (3) طبقات كما هو موضح بالصورة
1- (Micro-controller Abstraction ( MCAL
ودى الطبقة اللى بتشمل ملفات من نوع (.c) اللى بتتحكم فى الريجيستر داخل المايكروكنترولر .
2- (Hardware Abstraction ( HAL
ودى الطبقة الى بتشمل ملفات من نوع (.c) اللى بتتحكم فى ال Hardware component فى مثالنا هنا هى ال LED.
3-( Application Abstraction ( APP
ودى الطبقة اللى بتشمل ملفات من نوع (.c) اللى بتحتاج فى تنفيذها إلى منطق أو Logic يعنى بناء على حدث معين يتم تنفيذ هذه التعليمات .
الآن نحاول تطبيق الكلام السابق على مشروعنا فعليا بالتالى نحن بحاجه لكتابة ثلاث أكواد أو بحاجه إلى ثلاث ملفات من نوع (.c) وهم :
1- للتحكم ب GPIO reg للتحكم فى جعلها OUTPUT .
2- للتحكم فى ال LED سواء ON/OFF.
3- دالة للتحكم فى زمن الإضفاء و الإنارة ل LED.
إذا وظيفة الملف الأول هى التحكم فى حالة أطراف التحكم الرقمى لإستخدامها كخرج ثم التحكم فى حالتها سواء High / LOW.
و الملف الثانى للتغير فى حالة الـ LED بمعنى اخر الإتصال و تفعيل الملف الأول .
الملف الثالث مهمة الفاصل الزمنى ليغير الحالة كل 500ms .
فى النهاية الملف الرئيسي main.c سوف يقوم بنداء الملف الثانى والذى يعتمد فى تنفيذه على الملف الأول والثالث . ( جرب بنفسك كتابة هذا البرنامج وحاول ربط الملفات ببعضها وأخبرنا بنتيجة تجربتك و تناقش مع أكبر جروب عربى على فيس بوك مهتم بالأنظمة المدمجة من هنا ) .
قد تتسائل ما أهمية عمل كل هذه الخطوات لكتابة كود برمجى للأنظمة المدمجة ؟؟
فى الشركات الكبيره مهم جدا ما يسمونه بـ ( إمكانية إعادة الإستخدام) ففى مثالنا لاحظ الآن أنك تستطيع إستخدام الملف الثانى فى مشروع آخر وهو مايوفر الكثر من الجهد والوقت و المال أيضاً .
أهم كتب الأنظمة المدمجة بصيغة pdf
تعلم أساسيات الأنظمة المدمجة مع الرائع عبدالله على و كتابه simply avr pdf كتاب أكثر من رائع باللغه العربية مصمم بشكل جميل جدا يبدأ معك من الأساسيات حتى الإحتراف للتحميل إضغط هنا
دمتم موفقين و أتمنى أن يكون المقال كان مفيد لكم و فى حالة وجود أى إستفسار لا تتردد بترك تعليق على هذا المقال و سوف أقوم بالرد عليك فى أقرب فرصه .
إنتظروا المزيد من المقالات التى تخص :
مجالات عمل embedded systems
كورس الانظمة المدمجة
كتاب الانظمة المدمجة pdf
كتب امبيدد سيستم
افضل كورس embedded systems
كتاب الانظمة المضمنة pdf
تعلم embedded system
مرتب مهندس embedded system