الرئيسية / متحكمات / مقدمه عن ال Embedded Systems
382410_10151953992600383_597194464_n

مقدمه عن ال Embedded Systems

بسم الله الرحمن الرحيم

 

كيف تبدا طريقك فى مجال الـ embedded systems

سنتناول في هذا المقال محتويات كورس الامبيديد سيستمس و معنى كل واحدة فيهم ووكيف تقوي من نفسك في هذه الجزئيات ..

 

العمل فى مجال الامبيديد سيستمز يتضمن جزئيتين .. العلم بالمجال + العلم بمجال التطبيق اذا كان شغل كنترول او قياسات او شغل ميديا او تطبيقات حربية الخ الخ

نتكلم الان على العلم نفسه:

  1. Introduction to embedded systems

ماذا يعني  امبيديد سيستم وهذا معروف للكل

 

2.Assembly programming

كيفيه بناء برامج  باستخدام لغة الاسيملى حتي تستطيع فهم  البرمجة على مستوى قريب جدا جدا من الهاردوير..

كل بروسيسور يكون له لغة الاسميبلى الخاصة به .. الكنترولر يكون عبارة عن مجموعة وظائف بجانب البروسيسور .. البروسيسور هذا قد يكون فى الـ avr

هو بروسيسور الشركة او بورسيسور آرم  ARM

 

في العمل لا تحتاج الاسمبلى الا فى حالات قليلة.. عندما تحتاج الي عمل جزئية فى الكود يجب ان تنفذ فى وقت صغير جدا وذلك عندما يكون  التطبيق الذي تقوم  بعمله سرعة تنفيذ الكود فى هذه الجزئية  حرجة … مثل التطبيقات الخاص بتتبع الصواريخ و دقة التوجيه مثلا.

كما انه هناك  وظائف خاصة يقوم بها  البروسيسور.. ولتنفيذها يجب كتابه الاوامر بالاسميللى لانه ليس لها  مقابل فى لغة السى …. لكن الطبيعى فى الشركات انه معظم العمل  بيكون بلغة السى وسنتناول فيما بعد الاسباب

 

الخلاصة.. انك تحتاج ان يكون عندك فكرة عن لغة الاسميبلى لكنليس لدرجه الاحتراف  

 

3. C, advanced C and data structure

لغة السى تتميز  بانها لغة وسطية  قريبة من الهاردوير لكن ليست مثل  الاسمبلى.. و مفهوم السينتاكس الخاص بها  اقل من  اللغات الهاى ليفيل..

المقصود بلغة السى يعنى كيف تقوم  بتعريف متغيرات و فنكشنسز و آرراى و بويتنرز و كيف تنشئ برنامج كامل

الـ advanced C

كيفيه استخدام الاشياء الغير شائعه في اللغه في البرامج الخاصه بك . مثل  انك تستخدم بوينترس كثيره و يكون بين البوينترس علاقات.. و تستخدم array of pointers to structures

و تتعامل مع الداتا مظبوط و ترسلها  و تستقبلها فى فنشكنز مختلفة.. و يكون عندك خلفية عن مكتابات لغة السى و الفنكشنز المتاحة فيها

The standard library I mean

لغة السى لها اكثر من  استندرد ..الذي نتنعامل به   فى الامبيديد هو

ANSI standard which is C99 & C89 as I remember

ونعمل بلغه السي الاصليه التي تسمي

ANSI C

الدات استركتشر.. مهمة لمعرفه كيفيه تخزين البيانات واجراء العمليات عليها .. و عمل سيرش و توفير فى الذاكرة او فى الوقت او خلافة.

 

خلاصة: تحتاج الي اتقان  لغة السى جدا جدا جدا و تعرف استخدامها جيدا و يكون عندك فكرة عن الداتا استركتشر

و ولعمل ذلك عليك بالاتى:

Watch and summarize VTC C programming course

And VTC advanced C programming course

و ارجع لكتاب

The Complete reference

او ممكن تسال اى احد علي   embedded software engineer

 

لمزيد من التفاصيل اقرا هذا المنشور :

من هنا

4.Software Engineering

لعمل  امبيديد سيستم مثل  الموبيل  والذي يحتوي علي  اكتر من 10 مليون سطر كود.. يعمل  فيه  مئات المهندسين المختلفة عقلاياتهم.. و نحتاج تعديل فى هذه الاكواد  بعد سنة او اكتر و بالتالىهناك حاجة الى توحيد طريقة كتابة الاكواد و كتابة التعليقات عليها و شرحها.

و توحيد طريقة توصيف وظيفة الكود. و هذا يدعي  سوفتواير انجنييرنج

ولذلك يفضل ان تقرا عن  UML

و هى طريقة توصيف السوفتواير.. و لا مفر من ان تتعلم كيفيه كتابه  كود بطريقة صحيحة و تتجنب الـ  bugs

الخلاصة: ابحث على جوجل فى هذه  المواضيع  و ستجد مقالات رائعة و بسيطة و صغيرة

– How to write a bug free code

– How to comment your code

و هناك بعض اجزاء  مثل  كيفيه  تقسيم الكود الى موديولس و ليفيلس و كيف تتكامل  الاكواد  مع بعضها لكنه موضوع طويل وليس هذا مجاله في الحديث عنه

 

5.Computer Architecture

يعنىكيف يصل البروسيسور للاماكن المحددة داخل الذاكرة و ياخذ منها المعلومة و يعمل عمليات عليها… و ما هى اجزاء السيستم الذي نقوم  بعمله و كيف تتواصل مع بعض.

 

 مفاهيم الموضوع هذا مهمة يكون عندك  مهاره  للعمل  و مهمة فى البرمجة…فمثلا عند كتابه كود يتعامل مع ذاكره الفلاش .. ستحتاج الي الوصول لاماكن محددة داخل الذاكرة و تخصيص بعض الامكان لخدمة جزء معين من السيستم و جزء اخر من الذاكرة يخدم جزء اخر فى السيستم.. مع مراعاه ان المتغيرات تتحمل عدد معين من الارقام . الخ الخ

الخلاصة:يجب ان تلم  بكيفيه نقل  البروسيسور  الداتا من الذاكرة الي الكاش و فكرة التاج ..

 

5. Tooling

لعمل الامبيديد سيستمالخاص بنا  نحتاج ادوات تساعدنا على هذا مثل :

–      Compilers

البرامج التي تقوم بتحويل  كود السى الى هيكسا فايل

e.g. MicroC, Code Vision, AVR studio, IAR and other

شركات كتيرة فى مصر تعمل  على  IAR

–      IDE

البرامج التى تساعدك على كتابة الكود بسهولة و تسهل  الكتابة

e.g. Eclipse, Netbeans.. etc

–      Simulators

البرامج التى تمكنك من محاكاه   الكود الخاص بك  على كونترولر و تظهر لك  الخرج

Protus, TestBench .. etc

–      Debuggers

البرامج او الاجهزة التي  تمكنك  من معرفه كيف يعمل  الكود الخاص بك فى الحقيقة و المشاكل التي قد تتعرض لها حتي تستطيع تفاديها

e.g. Protus, kits for debugging

– Hardware design tools

البرامج التي تساعدك على عمل تصميم الهادرواير و البرنتد سركت الخاصه به

It’s PCB

e.g. Protus, Orcad, Mentor Graphics tools

شركات كتيرة فى مصرتعمل ب  الـ Orcade

لكن فى مشاريع الكلية نعمل بال  بروتس

 

 

6.Embedded C

يعنىكيفيه كتابه  كود لغة سى خاص بالامبيديد…

كل الاختلاف عن لغة السى العادية هو تطبيق مبادئ الـ operating system

مثل

Resource sharing

لا يصح عمل delay كبير  يستهلك البروسيسور

Memory management

دائما تراعي ان ياخذ  الكود  مكان محدود فى الذاكرة و ان تستخدم متغيرات قليلة و دايناميك قدر المستطاع

الخ الخ

الخلاصة: اقرا اكواد امبيديد سي كثيره كامثله لك و استخدم المبادئ التي تتعلمه منها  فى اكوادك

 

7.Computer interfacing

يعنى كيف يقوم الكنترولر الخاص بك بارسال  واستقبال  داتا من الكمبيوتر العادى سواء عن طريق

Serial, usb, Bluetooth, Ethernet … etc

 

الخلاصة: مطلوب يكون عندك فكرة عن التوصيلات هذه و تكون قد جربت  واحد منهم على الاقل فى الحقيقة فى مشروع حقيقى او حتى سميولاشن.. ابحث في جوجل وستجد ملفات كثيره تساعدك

 

 

8. Testing of Embedded Systems

كيفيه اختبار الامبيديد سيستم الذي قمنا بتصميمه .. سواء الامبيديد سوفتواير او الهاردوير

و هذا موجود فى مادة السوفتواير انجنيرنج

Black test, white test, blue test.. etc

 

المطلوب يكون عندك خلفية عن انواع الاختبارات هذه .. و وانت تعمل  مشروع عملى فكر في كيفيه اجراء اختبار له  و التاكد من  انه يعمل 

 

9.  Device drivers

والان  لتشغيل امكانبيات الكنترولر الخاص بك  لابد  من استخدام  درايفر او عمل درايفر .. بمعني :

الكنتلور هذا يحتوي علي  ADC

فانت تحتاج ان تكتب كود يعمل بالمواصفات التي تريدها .. من حيث تردد السامبلنج و زمن التحويل امتى الخ الخ

هناك  حلين.. اما ان تكتب الدرايفر بيدك  و اما ان  تستخدم واحد جاهز… الافضل انك تكتبه بيدك و لو مرة واحدة لاتقان  الميكروكنترولر لانك سوف تسال عنه   فى الانترفيوهات

 

جزئية ثانية.. حتي يستطيع  الكنترولر التخاطب  مع  other Ices

يحتاج يكون بينهم بروتوكول مثل SPI, UART, I2C .. etc

فانت تحتاج ان تفهم نظرية التشغيل و كيفيه  عمل الدرايفر الخاص به  او على الاقل كيف تستخدمه .

 

الخلاصة: مطلوب منك ان  تفتح الداتا شيت الخاص بالكنترولر و تقراء بتأنى الجزء الذي تريد ان تقوم بعمل درايف له  و تحاول عمل درايقر و تختبره و ممكن تستعين بالاكواد الموجودة على النت كمرشد لك.

و هذا المنشور مفيد جدا في هذه الجزئيه : 

من هنا

 

10.  Real Time Systems and RTOS

بعض الامبيديد سيستمز تحتاج لنظام تشغيل عليها حتي  تقوم بالوظائف التي يجب عليها ان تقوم بها . مثل  الجوال .. يحتاج ان يستقبل المكالمة و يحولها لك لصوت و يحول صوتك لاشارات و يرسلها  و يستقبل فى نفس الوقت ولا يحدث  تاخير فى تنفيذ هذه المهمات ..الذي يتحكم فى تنفيذ هذه المهمات هو  نظام التشغيل.

الخلاصة: مطلوب منك ان تفهم  مادة نظم التشغيل  وتفهم  مادة real time systems 

 و هذا  شرح سهل لمفاهيم الـ RTOS

من هنا

 

واسأل الله ان يوفقنا لكل خير وان يستخدمنا في طاعته .

 

عن معتز

شاهد أيضاً

maxresdefault-1024x576

أسباب تلف المكونات الإلكترونية

هذا الجزء من سلسه عالم الالكترونيات يتضمن مظاهر تلف المكونات الالكترونيه الرئيسيه وظاهر هذا التلف …

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

error: thank you for using Kahrabje website ^^