|
جزاك الله خير
اكمل نحن متابعين
|
مرحبا بك مهندس هيثم ، وبارك الله فيك ،
سعدت بمرورك أخى
---------
السلام عليكم ورحمة الله وبركاته
نلتقى من جديد
رأينا فى التجربة السابقة طريقة لنقل ثلاث نتائج من كل متحكم من المتحكمان الفرعيان وتم عرض التائج على شاشة المتحكم الرئيسي
الموضوع هو تطوير لموضوعى السابق لطريقة ربط المتحكمات ولكن قمنا فيه بعمل بورت للإرسال وبورت آخر للإستقبال لتوضيح الفكرة ،
هنا سنقوم باستخدام بورت واحد لعملية الإرسال والإستقبال ولن نتناول حاليا فكرة الربط بين المتحكمات بطرفان اثنان فقط بطريقة ( I2C ) وسنؤجلها لموضوع قادم بمشيئة الله تعالى ،
فكرة ربط المتحكمات باستخدام بورت واحد فقط تعتمد على تقسيم البورت لأربعة أطراف تعمل على إرسال البيانات وأربع أطراف أخرى تعمل على استلام البيانات ،
الفكرة كالتالى
① سنقوم فى الشرح بتسمية البورت المستخدم فى الربط بين المتحكمات بإسم " بورت الإتصال "
② سنقوم بتسمية الأطراف المنخفضة والمعروفة بـ ( R0, R1, R2, R3 ) بإسم اطراف الإستقبال
③ سنقوم بتسمية الأطراف العليا من بورت الإتصال والمعروفة بـ ( R4, R5, R6, R7 ) باسم اطراف الإرسال .
المتحكم الرئيسي يبدأ البرنامج بتعريف المداخل والمخارج والشاشة والمتغيرات
تبدأ عملية الإرسال والإستقبال كما يلى .
1- المتحكم الرئيسي يقوم بتصفير اطراف الإرسال ( يجعلها صفرا منطقيا أى بدون أى خرج ) وهذه الحالة يستقبلها باقى المتحكمات بعملية قطع الإخراج على اطراف الإرسال الخاصة بهم .
* والآن الوضع بدون إشارات مرسلة وبدون إشارات مستقبلة .
* تمام يعنى الوضع هادئ وهنا يستطيع المتحكم الرئيسي أن يقوم بالنداء على المتحكم الفرعي المطلوب .
* سينادى المتحكم الرئيسي على باقى المتحكمات الفرعية ( على جميع المتحكمات انتباه ) ثم ينادى بعد ذلك ( المتحكم الفرعى رقم x ) وطبعا هذا الرمز اخترته للمثال هنا ،
* الآن صدر من المتحكم الرئيسي نداءان اثنان النداء الأول هو ( انتباه ) والنداء الثاني ( رقم المتحكم المطلوب ) .
وفى هذه الحالة فإن أمر انتباه هو الكود 15 ينتظر لمدة قصيرة متبوعا برقم المتحكم الفرعي المطلوب ولنفرض أننا سنعطيه عنوان 10 فتكون كالتالى :-
1- يقوم المتحكم الرئيسي باخراج الرقم 15 على أطراف الإرسال لمدة زمنية ثم يقوم بمنع الإرسال أى يجعل هذا الإخراج صفر بدلا من الرقم 15 لمدة زمنية ثم يقوم بإخراج رقم المتحكم الفرعي الذى اخترناه هنا فى المثال بـ 10 ثم يظل هذا الرقم موجود على اطراف الإرسال للمتحكم الرئيسي وأثناء هذا الوقت يقوم المتحكم الرئيسي بقراءة اطراف الإستقبال باستمرار حتي يرد المتحكم الفرعي بنفس الرقم الخاص به وهو 10
----------------
إلى هنا وصلنا لعملية ربط بين المتحكم الرئيسي والمتحكم الفرعي رقم 10 ، وقبل أن نكمل قد يتبادر للأذهان سؤال : يا ترى كم متحكم فرعي يمكن توصيله ؟؟
والجواب هو أن رقم النداء هو 15 وبذلك يتبقى لنا الأرقام من واحد وحتى 14 متحكم فرعي يمكن أن يأتوا بعد كود النداء .
هل تريد أكثر من 14 متحكم ؟؟ إذا كان مشروعك أكثر تعقيدا وتحتاج لأكثر من 14 متحكم فرعي فقط فما عليك إلا أن تبرمج كود المتحكم الفرعي كى يكون رقمان متتابعان مثلما فعلنا برقم النداء ورقم المتحكم الفرعي الذى يليه سنجعل رقم المتحكم الفرعي رقمان متتابعان بدل من رقم واحد فمثلا بدلا أن يكون رقم 10 مثلا سنجعله 10 ثم انقطاع ارسال ثم رقم آخر ما بين 1 و 14 لكن لا يمكن استخدام الرقم 15 مطلقا لأنه نداء لجميع المتحكمات .
ارجو من الإخوة الإنتظار حتى اكمال الموضوع كى لا يتم التشتيت لغيرنا من المتابعين ثم فى النهاية سيكون هناك مجال للأسئلة والستفسارات إن شاء الله
فاصل ونواصل