كتب @ahmedeldeep:
بسم الله الرحمن الرحيم
الحمد لله رب العالمين والصلاة والسلام على أشرف المرسلين، بفضل الله وتوفيقه نقدم لكم الدرس الأول بسلسلة دروستعلم برمجة الأنظمة المدمجة والمتحكم الدقيق STM32 المعتمد على نواة ARM Cortex-M4
بعنوان
مقدمة عن الأنظمة المدمجة وبنية الكمبيوتر
أصبحت الأنظمة المدمجة اليوم واسعة الأنتشار ونجدها حولنا في كل مكان فهي جزء لا غنى عنه من حياتنا ويوميا نتعامل مع مختلف الأنظمة المدمجة الموجودة في بيوتنا وسياراتنا وهواتفنا. وقبل البدء في تعريف الأنظمة المدمجة يجب علينا أولا التعرف على بنية الكمبيوتر ومكوناته لأنها الأساس لأي نظام مدمج.
بنية الكمبيوتر
يتكون جهاز الكمبيوتر من معالج processor وهو المسئول عن العمليات الحسابية كالجمع والطرح وغيرها وكذلك العمليات المنطقية كالمقارنة، يحتوي أيضا جهاز الكمبيوتر على ذاكرة الوصول العشوائية random access memory والتي تسمى أختصارا رام RAM والتي يتم بها تحزين البرنامج مؤقتا أثناء تشغليه وهذه الذاكرة يتم مسح جميع محتوايتها عن فصل التيار الكهربائي، ويحتوي أيضا على ذاكرة القراءة فقط read only memory والتي تسمى روم ROM وكذلك وسائل الأدخال كلوحة المفاتيح ووسائل الأخراج كالشاشة او السماعات. وهذه المكونات السابق ذكرها تكون بنية الكمبيوتر كما نعرفها اليوم وموضحه في الصورة الاتية
وهذه البنية تسمى بنية von Neumann حيث يكون هناك خط رئيسي Bus لنقل البيانات والعناوين وأوامر التحكم الي جميع مكونات الكمبيوتر حيث يقوم المعالج بجلب تعليمات البرنامج المخزنة في ذاكرة القراءة فقط الي وحدة المعالجة المركزية لتنفذيها كذلك يتم جلب البيانات من وسائل الأدخال او من الذاكرة العشوائية أو بالعكس أخراج البيانات لوسائل الأخراج او تخزينها في الذاكرة. وبنية von Neumann والتي تم تسميتها على اسم عالم الرياضيات John von Neumann يتم فيها مشاركة الذاكرة واشارات التحكم لأكواد البرنامج وبياناته ولذلك من السهل ان يقوم البرنامج بتغير نفسه حيث يتم تخزينه في ذاكرة الرام وهي ذاكرة للقراءة والكتابة.
أما البنية الأخرى الشائعة الأستخدام ايضا وهي بنية هارفارد Harvard Architecture وتعتمد على تخزين أكواد البرنامج وبياناته في أماكن مختلفة حيث يتم تخزين تعليمات البرنامج في ذاكرة الروم وهي للقراءة فقط أما البيانات يتم تخزينها في الرام، مما يتيح جلب التعليمات لتنفيذها من الروم وفي نفس الوقت قراءة وكتابة البيانات في ذاكرة الرام كما يمكن أيضا ان يقوم البرنامج بتغيير محتواياته بنفسه.
الفرق بين بنية von Neumann وبنية Harvardتعريف النظام المدمج
النظام المدمج هو نظام كمبيوتر كما سبق تعريفه له وظيفة محددة داخل نظام ميكانيكي او كهربائي أكبر ويسمي مدمج لانه يكون عبارة عن جهاز واحد يحتوي على الأجزاء الكهربائية والميكانيكية معا. كما يسمي مدمج نظرا لوجود جهاز كمبيوتر صغير جدا موجود داخل الجهاز وتعتمد الأنظمة المدمجة أساسا على المتحكم الدقيق ونظرا لوجود وظيفة محددة للنظام المدمج فانه يمكن تصغير حجمه وزيادة سرعته حيث ان اغلب الانظمة المدمجة لابد أن تعمل بسرعة الزمن الحقيقي Real Time كما يمكن أيضا تقليل تكلفته مما يتيح تنوع في أستخداماته ونرى الكثير من الانظمة المدمجة موجودة اليوم في السيارات والمنازل كما توجد أيضا في الأجهزة الطبية والتطبيقات العسكرية.
المعالج الدقيق microprocessor
العقل الرئيسي في بنية نظام الكمبيوتر أو النظام المدمج هو المعالج الدقيق microprocessor حيث يقوم المعالج بنتفيذ تعليمات البرنامج واحدة تلو الأخرى بسرعة كبيرة كذلك يقوم بالتنسيق بين العناصر الأخرى كالذاكرة او وسائل الأدخال والأخراج.
يطلق على المعالج الدقيق غالبا وحدة المعالجة المركزية Central processing unit CPU حيث يحتوي على وحدة التحكم ووحدة الحساب والمنطق والمسجلات وتقوم وحدة التحكم بجلب التعليمة المراد تنفيذها من الذاكرة فثلا اذا كانت هذه التعليمة جميع رقمين فستقوم وحدة التحكم بجلب قيمة هذان الرقمان من الذاكرة أو من وسائل الأدخال وستقوم بتخزين قيمة كل رقم في مسجل خاص وتمريرها لوحدة الحساب والمنطق وعند الانتهاء من عملية الجمع تقوم وحدة التحكم بجلب الناتج من المسجلات وارساله للذاكرة او الي وسائل الأخراج. ومن أمثلة المعالجات الدقيقة Intel Xeon أو AMD FX أو ARM ® CortexTM-M.
المتحكم الدقيق microcontroller
هو جهاز كمبيوتر صغير يحتوي على جميع المكونات السابق ذكرها ومن ضمنها المعالج الدقيق داخل شريحة الكترونية واحدة مثل المتحكم stm32F4 الذى سنقوم بدراسته في هذه السلسلة بالتفصيل وهو من المتحكمات القوية وخاصة انه يحتوي على نواة ARM Cortex-M4
تاريخ المتحكم الدقيق :
فى سنة ١٩٦٩ سافر فريق من المهندسين اليابانيين من شركة BUSICOM الى الولايات المتحدة الأمريكية بدعوة من شركة INTEL حيث طلبت منهم بعض الدوائر المتكاملة للالات الحاسبة. ومن بين هذا الفريق مهندس يدعى Marcian Hoff قام بوضع اقتراح جديد هو ضرورة ايجاد حلول بديلة للدوائر متكاملة حيث يتم بها تخزين للبرامج المستخدمة.
وكان هذا الاقتراح يتطلب المزيد من وحدات الذاكرة فى مشروع الشركة اليابانية حول تصميم الدوائر المتكاملة الذى سوف يكون اكثر تعقيدا بهذا الاقتراح. ولكن مع الوقت تم التفكير فى اول متحكم دقيق وبدات فكرة Marcian Hoff دخول حيز التنفيذ.
ولتحقيق هذه الفكرة قام Frederico Faggin بمساعده شركة Intel فى انتاج اول متحكم دقيق وحصلت على الحق فى بيعه عام ١٩٧١ ولكن بعد شراء رخصة من شركة BUSICOM بدون ان تعلم ان لديها هذا الكنز. وفى خلال هذه السنة ظهر فى الاسواق المعالج الدقيق 4004 ويحتوى على ٤ بت. وفى هذا الوقت طالبت الشركة الاميريكية CTC شركتى INTEL و Texas Instruments بعمل معالج دقيق ٨ بت وفى عام ١٩٧٢ ظهر اول معالج دقيق ٨ بت فى الاسواق تحت اسم 8008 وكان يحتوى على ذاكرة 1١٦ كيلو بايت وكان سعره حوالى ٣٦٠ دولار .
وفى هذا العام ادركت معظم الشركات اهمية هذا الاختراع العجيب فى تغيير مستقبل الدوائر المتكاملة وعلى راسهم Motorola حيث قامت بانتاج 6820 و 6850. فى عام ١٩٧٥ اعلنت شركة The MOS Technology عن المعالج الدقيق 6501 و 6502 وسعره ٢٥ دولار.
كما قام المهندس Frederico Faggin بترك العمل مع شركة INTEL وتكوين شركته الخاصة Zilog Inc وفى عام ١٩٧٦ اعلن عن المتحكم Z80 حيث كان الاهتمام فى ذلك الوقت بتطوير برامج لى 8080 فلذلك قام Frederico Faggin باضافة امكانية التوافق مع المعالج الدقيق 8080 الى Z80 حيث كان يقوم بتنفيذ البرامج المكتوبة خصيصا لى 8080.
ومع زيادة سعة الذاكرة قام ايضا باضافة ذاكرة عشوائية RAM ولذلك حقق Z80 نجاحا باهرا فى ذلك الوقت. ونتيجة هذا قامت انتل بتطوير ال 8080 الى 8085 ولكن لم يصمد ايضا امام Z80. وبعدها قامت العديد من الشركات بتطوير ذلك الكنز وانتاج العديد من المتحكمات الدقيقة لها قدارت هائلة.
شركة ARM
من بين الشركات التي نشأت في ذلك الوقت شركة بريطانية تسمى Acorn Computers Ltd حيث قامت بتطوير معالج 6502 سنة ١٩٨١ وكان لهذه الشركة طموح وخطط لتصميم معالج ٣٢ بت خاص بها حيث قام مؤسسي الشركة Sophie Wilson بكتابة مجموعة التعليمات instruction set للمعالج ARM1 أما زميله Steve Furber فقام بالعمل على تصميم شريحة اليكترونية لتناسب هذا المعالج الجديد وكان العام ١٩٨٥ حيث قامت شركة Acorn بانتاج اول معالج لها ARM1 وبالبدء في تصميم المعالج ARM2 وتم انتاج اول كمبيوتر يحتوي على معالج ARM سنة ١٩٨٧.
وفي سنة ١٩٩٠ تم تأسيس شركة ARM وهي أختصار لي Advanced RISC Machines Ltd كشراكة بين شركة Acorn وشركة Apple الامريكية المعروفة بالاضافة لشركة VLSI Technology ويرجع السبب في هذه الشراكة أن شركة أبل أرادت استخدام معالجات ARM وارادت ان يكون هذا المعالج خاصا بها وليس ملكية شركة Acorn التي كانت تعتبر منافسا لها في ذلك الوقت، وبفضل أموال شركة أبل وأدوات شركة VLSI Technology الرائدة في تصميم الدوائر المتكاملة وبخبرات وعقول شركة Acorn تم تأسيس شركة ARM وبناء عليه قامت شركة أبل بانتاج المساعد الرقمي Apple Newton واستخدمت به المعالج ARM 610 RISC ولكن للاسف لم يلقى النجاح المطلوب وتم في النهاية إلغاءه بناء على توجيهات من ستيف جوبز سنة ١٩٩٨.
المساعد الرقمي Apple Newtonأدركت شركة ARM انه لا يمكن النجاح وانتشار معالجاتها داخل جهاز واحد فقط سواء كان Newton او غيره ولهذا قام Robin Saxby المدير التنفيذي لشركة ARM في ذلك الوقت بتقديم نموذج جديد على خلاف المتبع في أغلب شركات أمثال انتل وموتورولا وهو نموذج الملكية الفكرية حيث يضمن لشركة ARM حقوق ملكيتها الفكرية لمعالجات الشركة ويمكن كل شركات الإلكترونيات والدوائر المتكاملة استخدام هذه المعالجات وكان لهذا النموذج أحد أهم العوامل في نجاح شركة ARM وأصبحت لديها شراكة مع كل الشركات المصنعة الإلكترونيات بدلا من ان يتم استخدام معالجتها في منتج واحد فقط حيث يتم اليوم استخدام معالجات ARM في الالاف الاجهزة.
الشراكة مع نوكيا
كان من أبرز واهم الشراكات في ذلك الوقت لشركة ARM هو شراكتها مع شركة NOKIA عملاقة الهواتف المحمولة ونظرا لبعض المخاوف لدي شركة نوكيا من استهلاك الذاكرة قامت ARM بانتاج معالج خاص ١٦ بت ذو استهلاك أقل للذاكرة وكان هاتف نوكيا ٦١١٠ هو اول ثمرة هذه الشراكة حيث يحتوي على معالج ذو بنية ARM7 والذي اعتمدته ARM للهواتف المحمولة نظرا للنجاح الكبير الذى حققه هاتف نوكيا ٦١١٠ وتم منح 165 رخصة للمعالج ARM7 وتم انتاج ١٠ مليار شريحة الكترونية تحتوي على هذا المعالج.
هاتف نوكيا ٦١١٠عائلة ARM Cortex
قامت شركة ARM بانتاج المعالجات ARM9 وبعدها ARM9E ثم ARM10 ثم ARM11 مع التركيز على تقليل استهلاك الطاقة حتي عام ٢٠٠٥ أنتجت شركة ARM عائلة المعالجات الدقيقة ARM Cortex والتي تشمل على Cortex-A كأمتداد ARM11 مع التركيز على تطبيقات واحتياجات الهواتف المحمولة كما قامت أيضا بانتاج Cortex-R لتطيبقات الزمن الحقيقي وتلبية متطلبات الأداء الخارق، وذلك بالأضافة لي Cortex-M ذات التكلفة المنخفضة لتطبيقات الانظمة المدمجة واليوم أصبحت معالجات شركة ARM موجودة بجميع الهواتف الذكية حيث تحتل الشركة نسبة ٩٦٪ من المعالجات المستخدمة بالهواتف الذكية ومن أشهر الهواتف المستخدم به معالجات ARM هواتف Iphone.
لماذا stm32F4 و ARM Cortex-M4 وليس الأردوينو؟
رأينا الفترة الأخيرة انتشار الأردوينو وكيف اتاح الفرصة للكثيرين من الهواة والطلاب بدخول عالم برمجة الأنظمة المدمجة والمتحكمات الدقيقة ولكن يجب ملاحظة ان الأردوينو ليس متحكم دقيق وانما هو بيئة تطويرية متكاملة حيث يحتوي على متحكمات ٨ بت ATMega328 من انتاج شركة Atmel كذلك هناك Arduino IDE الذي يقوم بتسهيل عملية البرمجة والتعامل مع المتحكم الدقيق بدون الدخول في كثير من التفاصيل كذلك هناك الكثير من المكتبات البرمجية الجاهزة Arduino libraries التي يمكن استخدامها مباشرة والمتاحة للعديد من التطبيقات البرمجية. ولكننا اليوم بصدد تعلم كيفية التعامل مع متحكمات دقيقة قوية ٣٢ بت والتي يتم استخدامها في تطبيقات الأنظمة المدمجة الحقيقية كالموجودة في الهواتف الذكية والساعات والسيارات. كذلك نريد الخوض والتعمق في دراستنا لهذه المتحكمات الدقيقة حيث انه هناك الكثير من التفاصيل يتم اخفاءها في بيئة الأردوينو لتسهيل عملية البرمجة.
وإلى اللقاء في الدرس القادم
المنشورات: 1
المشاركون: 1