السلام عليكم ورحمة الله وبركاته
أعزائي بهذا المنتدى
مشكلتي تتلخص في الآتي:
قمت بصناعة 6 أجهزة بميكروكنترولر 16f877a وشاشة سفن سيجمنت أعتمد في
أخذ الداتا من هذه الأجهزة السبعة عن طريق ارسالها لجهاز قمت بتصميمه به وحدة
ماكس 232 متصل بجهاز الكمبيوتر عن طريق برنامج قمت بتصميمه بالفيجوال
بيسيك.
المشكلة التي واجهتني أنني لا أستطيع توصيل أكثر من جهازين للماكس وإن
وضعت الثالث لا أستطيع أن أرسل من هذه الأجهزة للماكس ومن ثم لجهاز
الكمبيوتر بمعنى أخر تتوقف كل الأجهزة بعد الجهاز الثالث عن الارسال والغريب
أن الاستقبال لدى هذه الأجهزة يعمل بكفاءة بدون أي مشاكل أي يمكنني ارسال
بيانات من جهاز الكمبيوتر للأجهزة وهذا أمر محير وحاولت بشتى الطرق معالجة
هذا الامر إلا أني لم أفلح علماً أن هذه الاجهزة يجب أن تعمل في المنشأة وهي
تعمل جميعها بنفس الوقت.؟!
|
ليس ممكنا اقتراح حلول حيث المشكلة غير معلومة فلا فكرة عن كيفية عمل كل من الأجهزة الموضحة فى مشروعك ولا كيفية عمل البرنامج الذى صنعته
لكن عموما فى الأنظمة العاملة هناك إشارات تحكم تكون بين الحاسب و الأجهزة أقلها RTS,CTS وهى إشارة يرسلها الحاسب للجهاز و يتنظر رده قبل أن يبدأ فى الإرسال ولكنك لا تعانى مشاكل فى هذا الإتجاه
وهناك زوج آخر من الإشارات شبيه ولكنه من الجهاز للحاسب DTE,DCE حيث يرسل الجهاز للحاسب هذه الإشارة و ينتظر الرد منه قبل البدء فى الإرسال و هكذا يمنع الحاسب أن تتداخل إشارات الأجهزة معا كما أنه يتحكم فى كم ما يرسله كل منهما بما يتيح له أن يأخذ البيانات و يتعامل معها قبل أن يقبل غيرها
هذه الاشارات على خطوط مستقله لكل جهاز و لهذا فالكابل يكون من 9 أسلاك.
أيضا هذه الإشارة تتيح أمر هام جدا :
عندما توصل 3 أجهزة معا (أو اكثر) ، 2 منهما يضعان خرج =1 و الثالث يحاول إرسال صفر
هل يستطيع التغلب عليهما؟؟ بالتأكيد لا وهذا ما يسبب ما تظنه توقف المجموعة، لذا فتلك الإشارة السابق ذكرها أيضا تتيح التحكم فى وحدة RS232 و تجعلها متاحة أو غير متاحة - انظر للوحدات MAX206,MAX211,MAX213,MAX241 ستجد لها طرف EN يفعل أو يوقف الوحدة و يجعلها Disabled فلا تتداخل مرسلاتها معا.
ملحوظة : محول RS232-USB لا يجدى هنا فهو ببساطة سيحول كل ما يأتى له إلى صورة أخرى ولو كان الحاسب قادر على قراءتها سيكون نفس الشيء بالمحول و السبب أن الأجهزة ليست مجهزة بهذا USB و بهذا لا يمكن التفرقة بين جهاز و آخر ولو جهزت كل جهاز بمحول يو اس بى ستحتاج إلى HUB لربطهم ثم برنامج آخر للتعامل مع يو اس بى ربما فيجيوال بيزك 10 يتعامل مع يو اس بى - ليست لدى فكرة فلم احصل عليه بعد
ملحوظة أخرى: بروتوكول يو اس بى يحتوى تعريف الجهاز وبهذا ترسل رقم التعريف فتتعامل مع وحدة واحدة فقط من الموجود على الباص بينما RS232 لا يحتوى هذه الخاصية