البرمجة في الأنظمة المدمجة

محمد سمير - الفرقة التانية كهربا

محمود حسن - الفرقة التانية ميكا

لماذا العربية في التقديم؟

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

الحاسوب Computer

ما هو الحاسوب؟

ينتج حوالي 6️⃣ ستة مليارات معالج microprocessor في العام

ومنهم فقط ٢٪ يستخدموا في الحواسيب الشخصية والحواسيب عامة المقصد general-purpose computers

النظام المدمج

Embedded system

ما هو النظام المدمج؟

  • النظام المدمج هو تركيبة من العتاد الصلب Hardware
  • وال Drivers
  • والأكواد والبرمجيات
  • لا تكون الأنظمة المدمجة قائمة بذاتها ولكن تتواصل مع ملحقات Peripherals
  • وتأخد المدخلات من المستشعرات Sensors البيانات للتخذ القرارات على إثرها
- اختصارا، النظام المدمج هو حاسوب ليس للأغراض العامة مثل جهازك الشخصي الذي لا يدري المصنع فيما ستسخدمه، سواءا كان في لعب PES أو FIFA أو أن تستخدمه في استضافة المواقع والحوسبة السحابية، أو أن تستخدمه في كتابة تقرير طلبه منك دكتور مادة من المواد التي لا تطيقها في الكلية...
- أما النظام المدمج فهو نظام مصمم بداية من العتاد الصلب وصولا للأكواد والبرمجيات ليؤدي الوظيفة التي أرادها المصنع (أو يأمل المصنع أن يوديها النظام المدمج 🙂)
  • اختصارا، النظام المدمج هو حاسوب ليس للأغراض العامة مثل جهازك الشخصي الذي لا يدري المصنع فيما ستسخدمه، سواءا كان في لعب PES أو FIFA أو أن تستخدمه في استضافة المواقع والحوسبة السحابية، أو أن تستخدمه في كتابة تقرير طلبه منك دكتور مادة من المواد التي لا تطيقها في الكلية...
  • أما النظام المدمج فهو نظام مصمم بداية من العتاد الصلب وصولا للأكواد والبرمجيات ليؤدي الوظيفة التي أرادها المصنع (أو يأمل المصنع أن يوديها النظام المدمج 🙂)
  • كما ذكرنا أمثلة مسبقة عن أنظمة مدمجة نعتمد عليها في حياتنا وتحيط بنا في المقدمة، يمكن أن يستبدل بالنظام المدمج الذي هو تركيبة من العتاد Hardware وبرمجيات Software، الدائرة مدمجة Integrated circuit IC لكن النظام المدمج أكثر مرونة من ال IC التي تصمم كل العمليات في دائرة خاصة تؤدي وظيفتها المحددة لها فحسب
  • في النبذة التاريخية التالية سنتحدث عن موضوع ال IC والفرق بينها وبين الأنظمة المدمجة

نبذة تاريخية

بدأت القصة عندما أذن الله للانفجار العظيم أن يحدث منذ 13 مليار سنة ،والله أعلم، ومنذ أربعة مليارات ونص المليار تقريبا بدأ كوكبنا الجميل في التكون ...........

في أواخر السبعينبات كان الآلات الحاسبة calculator تشغل جزءا كبيرا من التصنيع والإهتمام كما هي الهواتف الذكية اليوم. ومن الشركات المصنعة لهذه الآلات شركة Busicom وكانت تعتمد في آلاتها الحاسبة على الدوائر المدمجة Integrated ciruit IC

  • في عام 1969م طلبت شركة بيزيكم كم Intel أن تصمم لها دائرة مدمجة لكن نموذج ونوع من الآلات الحاسبة
  • فكان رد إنتل عليها بالمعالج إنتل 4004 والذي هو أول معالج microprocessor نعرفه وكان هذا في عام 1971م ثم ها نحن هنا تحاصرنا المعالجات والأنظمة المدمجة في بيتنا ووسائل النقل والشوراع بعد مرور نصف قرن.

مما يتكون النظام المدمج

يمكننا أن ننظر للنظام المدمج على أنه تركيبة من طبقات يعتمد بعضها على الآخر لتؤدي الوظيفة المخصصة لها
  1. العتاد الصلب Hardware
  2. وطبقة من الأوامر Software
  3. وهذه الأوامر تحتاج أن تجد لها مساحة تخزين يقرأ منها
  4. المعالج هذه الأموار وينفذها

المعالج

processor

  • سلف أن ذكرنا أن أول معالج كان من تصنيع Intel وهو المعالج 4004 الذي صنعته في 1971. المعالج هو العقل الذي ينفذ الأوامر المقررة له.
  • تُحسب قوة المعالج استنادا على كم من ملايين العمليات في الثانية يقدر أن ينفذها المعالج Million of instructions per second أو اختصارا نقول عليها MIPS. فالمعالج ذو 10 MIPS أقوى من العالج ذي 5 MIPS وقِس على هذا
  • في الحواسيب الشخصية نجد أن المعمارية الأكثر استخداما هي 32-bit أو معمارية ال 64-bit مع أن الثاني أكثر انتشارا في هذه الأيام. لكن في الأنظمة المدمجة فالأمر أبسط من هذا فيستخدم غالبا 4-bit, 8-bit أو 16-bit.

الذاكرة

memory

لتخزين الأوامر والبيانات المطلوبة وأيضا المدخلات التي تدخل لا بد من وجد مساحة تخزين ويمكن أن تكون

  • ذاكرة عشوائية Random access memory RAM
  • ذاكرة للقراءة فقط Read-only memory والتي لا يمكن تغيير البيانات بها
  • يمكن الاستغناء عن الذاكرة الخارجية ويستخدم ذاكرة ضمن المعالج نفسه إذا كانت متطلبات requirements لا تحتاج لذاكرة كبيرة نسبيا
  • واعتمادا على اتساع السجل register في المعالج نجد حدودا للذاكرة التي يمكن توفيرها، فالأوامر تُقرأ من مكانها وعنوانها في الذاكرة وهذا المكان أو العنوان يُخزن في السجلات في المعالج فيقرأ المعالج عنوان الأوامر ليجلبها من الذاكرة
  • فمثلا لو أن اتساع السجل في المعالج register width هو 16 bits فقط فإن أقصى قيمة للذاكرة يمكن توفيرها هي 64KB أي $2^16$

المدخلات والمخرجات

input and output

  • تدخل المدخلات عن طريق المستشعرات Sensors أو الملحقات Peripherals ليستقبلها النظام المدمج ويجري عليها عملياته الحسابيه مستخدما المعالجات والذاكرة
  • ثم يخرج الخرج الجديد اعتمادا على الدخل والذي يعتمد أيضا على أمور أخرى منها الوقت مثلا، فينتج النظام المدمج خرجا اعتمادا على الوقت

البرمجيات

software

Embedded system

vs

Software engineering

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

🤏

  1. مبرمج الأنظمة المدمجة لديه مصادر محدودة وسعة ذاكرة كل كلمة (بايت) فيها بل كل حرف (بيت) له قيمة لابد من عدم إهدارها
  2. يحده إمكانيات المعالج
  3. يتعامل مع العالم الخارجي ويحتك به على عكس مبرمج التطبيقات الذي ينحسب داخل قوقعة الأكواد والعالم الافتراضي
  • فيتعامل مبرمج الأنظمة المدمجة مع المدخلات من المستشعرات Sensors والملحقات Peripherals. كما أن لكن منها طريقة تعامل مختلفة فليس كل مستشعر يُتعامل معه ويُقرأ منه كصاحبه.
  • يكتب الكود ليعيش، إذ أنه يكتب الكود وفي تصوراته أنه سيعمل لسنين طويلة دون مشاكل وأخطاء... ومبرمج الأنظمة المدمجة أكثر تركيزا في هذا الجانب من مبرمج التطبيقات

7️⃣0️⃣0️⃣➕

أي لغات البرمجة أستعمل؟ 🤔

هي لغة برمجة عالية المستوى high-level ومنخفضة المستوى low-level نسبيا في نفس الوقت إذ أنها توفر لنا تفاعلا مباشرا مع العتاد الصلب Hardware

بنيت على ال C وكان الهدف إنشاء مزايا إضافيه مثل البرمجة كائنية التوجه Object oriented programming OOP. يمكنها التواصل مع العتاد Hardware وتقدم حزمة من الوظائف والمزايا الأخرى الغير موجودة في ال C بطريقة مباشرة ومستخدمة في الأنظمة المدمجة

هي لغة توفر التواصل المباشر مع العتاد لكنها أصعب وأكثر تعقيدا من ال C

لغة أنتجها Defense Department of U.S. وتستخدم في الأنظمة المدمجة وتوفر أسلوبا صارما يضمن سلامة الكود من المشكلات على قدر الإمكان حيث تستخدم هذه اللغة في المركبات والأجهزة العسكرية والأقمار الصناعية لكنها تفقد شهرتها ويقل استخدامها على حساب لغات أخرى

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