الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طلب في كيفية التحكم.................(ارجو المساعدة)

مغلق
بدأه cyber@man في 30 مايو 2006 · 3 رد · 884 مشاهدة · في التحكم الصناعي وربط الحاسب بالعالم الخارجي
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم.....

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

لدي طلب؟؟..هو في الحقيقة بسيط نوعاً ما ولكنه بالنسبة لي من الممكن أن يصنع مستقبلي العلمي؟؟!!..

أنا طالب.. بكلية هندسة الحاسب....جامعة الملك سعود....

و من اسم الكلية يدل ذلك على أننا نتعامل بالـ(hardware)...ومن ذلك برمجتها والتحكم بها عن طريق الكمبيوتر باستخدام لغات البرمجة......وهذه جزء من خلاصة مهندس الحاسب.

ما أريده هو:-

أولاً:

كيفية استخدام الـ(c++) - أو البرمجة بشكل عام - في التحكم في الـ(ports) و في الموَصَل عن طريق الـ(ports) أو بشكل أخص كيفية التحكم بالأجهزة عن طريقها..-- ولو وضّحت قليلاً-- بفرض أن لدي(camera), كيف؟ أصمم برنامجاً..مثلاًً..يتحكم بالـ(camera) بحيث تعمل على تمييز المجسمات التي أمامها أو كما هو موجود حالياً تقنية بصمة العين(eye print id)...أو التحكم بالمحركات (motors) أو بأي جهاز آخر....

ثانياً:

كيفية برمجة الـ(microcontroller) ؟

مع العلم أنني على دراية بـ(c++) حيث أنها من ضمن المقررات...

أتمنا منكم العون ....

#2

وعليكم السلام و رحمة الله

مرحبا بك أخي cyber@man في منتديات الفريق العربي.

من أهم وحدات الحاسب هي وحدات الأدخال والخرج وهي ميزة في بنية الحواسيبب.

يعتمد الحاسب في ربطه بالعالم الخارجي بمجموعة من المعدات عبر منافذ للدخل والخرج input and output Ports. تقنية هذه المنافذ كثيرة ومتنوعة: usb , منفذ الطابعة, المنفذ التسلسلي. isa و PCI, pcmcia و غيرها كثير.

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

يعتمد المبرمج لهذه المنافذ عادة على لغة قوية تسمح له للوصول لأخفظ المستويات في الوصول لعتاد الحاسب, فليس كل اللغات البرمجية صالحة. أفضل لغات البرمجة للتحكم بعتاد الحاسب هي لغة C وليس C++و أضف إليها كذلك لغة التجميع assembly.

يجب أيضا التقيد بالبيئة التي ستطور لها: فالتطوير في بيئة الدوس ليس كالبرمجة للويندوز 3.11 أو البرمجة للويندوز win32 أو winNTو كذلك لبيئات أخرى كلينكس.

فمثلا في بيئة dos يمكنك الوصول لأي منفذ ولك كامل الحرية في التعامل معها كما تشاء لأن النظام هو monotask.

الأمر يختلف عندما تريد التحكم مثلا بمنفذ في بيءة WinNTو فإن نظام التشغيل سيمنع عنك المنافذ ما لم تكن لك صلاحيات خاصة كمستخدم للبيئة.

فالتطبيقات في ويندوز تتميز بصلاحيات تنقسم إلى اربعة تبدأ بما يسمى ب ring0 إلى ring3.

فنظام التشغيل مثلا ينفذ في ring0 وله كل الصلاحيات في الوصول لكل عتاد الحاسب وكذلك لمجموعة كبيرة من registries الموجودة بالمعالج وهذا حتى يتمكن من السيطرة على الحاسب سيطرة كاملة تمنع تهنج الجهاز.

أما باقي التطبيقات العامة ك notepad او office فهي تنفذ في ring3 وليس لها اية صلاحيات في التحكم المباشر في العتاد.

وأية محاولة منها ستبوء بالفشل وسيقوم النظام برصد كل مخالفة وإتمام البرنامج قبل نهايته إذا ما أحل بها. فمثلا في ring3 لا يمكنك الوصول لمجموعة من registries للمعالج وكذلك بعض التعليمات للغة الألة الوافقة لتعليمات الأسمبلي IN و Out و Int.

سنجد في ring1 مثلا كل البرامج ذات صلاحيات أكبر من التطبيقات العامة واقل من صلاحيات نظام التشغيل يمكنها الوصول لمعظم تعليمات الألة دون قيود في ذلك لكنها تفتقد لبعض الصلاحيات لبعض registries في المعالج التي تبقى حكرا على نظام التشغيل. نجد في هذا الصنف من التطبيقات drivers..

هذا عن السؤال الأول.

أما ما يخص المتحكمات الصغرية microcontroler: فبرمجتها تكون بواسطة ادوات ( برامج تمكنك من كتابة الكود بلغة عليا كلغة c أو لغة assembly, مع مجمع compilerو linker) تساعدك في كتابة برامجها على الحواسيب الشخصية, ثم تقوم بإرسال هذا البرنامج إلى ذاكرة المتحكم عبر interface خاصة للبرمجة ( تحميل البرنامج نحو الذاكرة للمتحكم الصغري).

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

#3

مشكور اخوي(مراد) على الرد السريع!!!!!!!!!!!!

وصراحة مهمة (مشرف أقسام الإلكترونيات) لم تعطى إلا للي قدها.....

وعندي سؤال..

هل يوجد مصادر لتعلم مااشرت إليه سابقاً؟

#4

عليك بالكتب الورقية وإستعن بالكتب الإلكترونية كذلك ebook. وستجد في المتدى مواضيع ونقاشات وبعض المقالات التي ستزكي بها رصيدك المعرفي.

المجال الذي تسأل فيه كبير جدا: برمجة + إلكترونيات + بنية المادية لنظام حاسوبي. ;)

سأتغيب عن المنتدى وستكون لي زيارات خفيفة بين الحين و الحين

يا صاحب الهم إن الهم منفرج.....................أبشر بخير فإن الفارج الله.

اليأس يقطع أحيانا بصاحبه..........................لا تيأس فإن الكافي الله.

الله يحدث بعد العسر ميسرة.........................لا تفزعن فإن الصانع الله.

إذا بليت فثق بالله وارض به...................فإن الذي يكشف البلوى هو الله.

و الله ما لك غير الله من أحد.......................فحسبك الله في كل لك الله

أخوكم مراد

27_06_06_05_21_41_1151410901logo_adl_wal_ihsan.jpg

هذا الموضوع مغلق.

مواضيع مشابهة