قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

hamzazayyad
:: مهندس متميز ::
تاريخ التسجيل: Aug 2005
الدولة: موزنبيق
المشاركات: 696
نشاط [ hamzazayyad ]
قوة السمعة:
قديم 26-05-2015, 07:33 PM المشاركة 17   
افتراضي



السلام عليكم

عندي سؤال يخص البرتوكول RS485 و I2C انتم تعلمون ان يمكن ربط عده slaves بنفس الاسلاك وبالطبع كل واحد له عنوان معين مشكله في الارسال البيانات وأستقبالها من slaves خصوصا بأستخدام البرتوكول RS485

يعني دعوني اقول كيف أتجنب عمليه التصادم بين البيانات المرسله ومستقبله اي القاعده تقول بالنسبه half duplex انه احد الاجهزه بترسل البيانات المفروض البقيه تستقبل

فهل لديكم طريقه متبعه تضمن عمليه الاتصال ناجح (( ارسال واستقبال )) بين الاجهزه بدون ان يحدث اي خطأ error اي وجود جهازين يرسلان البيانات بنفس الوقت

صراحه هذا موضوع جدا مهم


تحياتي
بالنسبه لبروتوكول RS485 مشاكله معروفه بحدوت التصادم لدلك تجد ان القطعه عادتا محميه من short circuit والحراره

ففي حاله ارسال البيانات من جهازين سيحصل داره قصر

لدلك المصممون لم يسموا الداره القائده master والتابع slave من العبث
حيث ان master هو اولا سيحدد عدد اتباعه اولا ومن تم سيبدا بارسال البيانات اليهم بالترتيب متلا(الترتيب الدي تريده انت) وبعد انتهاء كل slaves
سيقوم بالتحويل الى القراءه وهكدا

يجب ان تقوم بعمل جدول زمني للقراءه (REAL TIME SYSTEM)(

ايضا ستجد ان الانظمه التي تعمل بهدا البروتوكول تحتاج وقت زمني حتى تحدد وجود خطا ما في بورد SLAVE معين لان وقت قراءته لم ياتي متلا..زز


هل تقوم حاليا بتجريب عملي للبروتوكول ام تقوم بالعمل على بروتوس؟؟؟

اعلانات

الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 26-05-2015, 08:01 PM المشاركة 18   
افتراضي


بالنسبه لبروتوكول RS485 مشاكله معروفه بحدوت التصادم لدلك تجد ان القطعه عادتا محميه من short circuit والحراره

ففي حاله ارسال البيانات من جهازين سيحصل داره قصر

لدلك المصممون لم يسموا الداره القائده master والتابع slave من العبث
حيث ان master هو اولا سيحدد عدد اتباعه اولا ومن تم سيبدا بارسال البيانات اليهم بالترتيب متلا(الترتيب الدي تريده انت) وبعد انتهاء كل slaves
سيقوم بالتحويل الى القراءه وهكدا

يجب ان تقوم بعمل جدول زمني للقراءه (REAL TIME SYSTEM)(

ايضا ستجد ان الانظمه التي تعمل بهدا البروتوكول تحتاج وقت زمني حتى تحدد وجود خطا ما في بورد SLAVE معين لان وقت قراءته لم ياتي متلا..زز


هل تقوم حاليا بتجريب عملي للبروتوكول ام تقوم بالعمل على بروتوس؟؟؟
والله أخي اريد تجربه بشكل عملي

يعني تقصد ان ماستر لازم يرسل البيانات الى salve واحد بعد أخر

هو قوم ماستر مثلا بأرسال البيانات الى slave1 ومن ثم يرسل البيانات الى ماستر وبعدها يقوم ماستر بأرسال البيانات الى slave2 ومن ثم يرسل البيانات الى ماستر
وهكذا

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

hamzazayyad
:: مهندس متميز ::
تاريخ التسجيل: Aug 2005
الدولة: موزنبيق
المشاركات: 696
نشاط [ hamzazayyad ]
قوة السمعة:
قديم 26-05-2015, 08:32 PM المشاركة 19   
افتراضي


والله أخي اريد تجربه بشكل عملي

يعني تقصد ان ماستر لازم يرسل البيانات الى salve واحد بعد أخر

هو قوم ماستر مثلا بأرسال البيانات الى slave1 ومن ثم يرسل البيانات الى ماستر وبعدها يقوم ماستر بأرسال البيانات الى slave2 ومن ثم يرسل البيانات الى ماستر
وهكذا
نعم اقصد الارسال الواحد تلو الاخر
لكن ما المشكله اللتي تواجهها؟؟؟


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 26-05-2015, 08:55 PM المشاركة 20   
افتراضي


نعم اقصد الارسال الواحد تلو الاخر
لكن ما المشكله اللتي تواجهها؟؟؟
أخي أفرض عندي 3 بوردات تتصل في مابينها ببرتوكول RS485

يعني ماستر و 2 slaves

ماستر فيه 10 مداخل و 8 مخارج
slave 1 فيه 10 مداخل و 8 مخارج
slave 2 يمثل الانترنيت يعني ENC28J60 - Ethernet Controllers
مشكله هنا هو انه اي حدث يحصل في اي slave يرسل البيانات الى ماستر وبتالي قد يحدث ارسال البيانات من slave1 , salve2 في ان واحد اريد طريقه تتجنب هذا التصادم

طبعا هو صعب اجعل ماستر يسيطر على salves لان البيانات تاتي من slaves

تحياتي


hamzazayyad
:: مهندس متميز ::
تاريخ التسجيل: Aug 2005
الدولة: موزنبيق
المشاركات: 696
نشاط [ hamzazayyad ]
قوة السمعة:
قديم 26-05-2015, 09:41 PM المشاركة 21   
افتراضي


أخي أفرض عندي 3 بوردات تتصل في مابينها ببرتوكول RS485

يعني ماستر و 2 slaves

ماستر فيه 10 مداخل و 8 مخارج
slave 1 فيه 10 مداخل و 8 مخارج
slave 2 يمثل الانترنيت يعني ENC28J60 - Ethernet Controllers
مشكله هنا هو انه اي حدث يحصل في اي slave يرسل البيانات الى ماستر وبتالي قد يحدث ارسال البيانات من slave1 , salve2 في ان واحد اريد طريقه تتجنب هذا التصادم

طبعا هو صعب اجعل ماستر يسيطر على salves لان البيانات تاتي من slaves

تحياتي
لم افهم اخي بالضبط؟؟
هل تقصد ان لديك بورد يزود البوردات بالانترنت عن طريق الايثرنت؟؟

لكن ما الفائده من الماستر؟؟ لمادا لا تكون الوظائف المهمه على الماستر و slave للمهمات غير المعقده؟؟


الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 27-05-2015, 05:33 AM المشاركة 22   
افتراضي


لم افهم اخي بالضبط؟؟
هل تقصد ان لديك بورد يزود البوردات بالانترنت عن طريق الايثرنت؟؟

لكن ما الفائده من الماستر؟؟ لمادا لا تكون الوظائف المهمه على الماستر و slave للمهمات غير المعقده؟؟
قصدي أخي العزيز هو لزياده عدد مداخل ومخارج يتم ربط بوردات عن طريق برتوكول RS485 كما في smart home
وبتالي بورد الانترنيت Ethernet يقوم بأرسال البيانات الى master لكي هو بدوره يوصل معلومات الى salve لانه لاتوجد أمكانيه ارسال بين slave واخر وايضا يأخذ ماستر feedback من slave لكي يعيدها الى بورد ايثرنت لكي تظهر حالتها على برنامج الكومبيوتر

يعني slave له مهمتين ارسال اي حدث جديد (( مثلا تغير حاله سويج او ...)) الى ماستر وايضا يرجع feedback الى master في حاله تلغيه بيانات من ماستر



الصورة الرمزية حسن هادي محمود
حسن هادي محمود
:: عضو ذهبي ::
تاريخ التسجيل: Sep 2012
الدولة: العراق /البصره
المشاركات: 2,673
نشاط [ حسن هادي محمود ]
قوة السمعة:
قديم 28-05-2015, 08:04 PM المشاركة 23   
افتراضي


قصدي أخي العزيز هو لزياده عدد مداخل ومخارج يتم ربط بوردات عن طريق برتوكول RS485 كما في smart home
وبتالي بورد الانترنيت Ethernet يقوم بأرسال البيانات الى master لكي هو بدوره يوصل معلومات الى salve لانه لاتوجد أمكانيه ارسال بين slave واخر وايضا يأخذ ماستر feedback من slave لكي يعيدها الى بورد ايثرنت لكي تظهر حالتها على برنامج الكومبيوتر

يعني slave له مهمتين ارسال اي حدث جديد (( مثلا تغير حاله سويج او ...)) الى ماستر وايضا يرجع feedback الى master في حاله تلغيه بيانات من ماستر

السلام عليكم
اخي hamzazayyad راح أتبع طريقتك في تنظيم جدول زمني للماستر و slaves
حسب مخطط راح ارسل البيانات بهذه الشكل
خلي ماستر يرسل البيانات الى slave1 بهيئه check يعني مثلا اضع البيانات في RS485 كالتالي 200=[dd[0 و200 تعني check راح يقوم slave1 برد على master ويرسله البيانات راح يقوم ماستر بتحليل البيانات اذا كانت هناك بيانات جديده راح يرسلها الى Ethernet ليقوم هذا بدوره بأرسال feedback الى برنامج الكومبيوتر او موبايل وبنفس الوقت ينفذ البرنامج
اما اذا لم تكن هناك بيانات جديده فماستر ماراح يرسل الى Ethernet

بعدها يبدء ماستر بأرسال البيانات check الى slave2 وبنفس الطريقه أعلاه

بعدها يرسل ماستر البيانات check الى Ethernet وبنفس الطريقه

اي ماستر راح يرسل لجهاز جهاز في كل مره ينتظر استقبال
تحياتي


التعديل الأخير تم بواسطة : حسن هادي محمود بتاريخ 28-05-2015 الساعة 08:15 PM

hamzazayyad
:: مهندس متميز ::
تاريخ التسجيل: Aug 2005
الدولة: موزنبيق
المشاركات: 696
نشاط [ hamzazayyad ]
قوة السمعة:
قديم 28-05-2015, 09:42 PM المشاركة 24   
افتراضي


السلام عليكم
اخي hamzazayyad راح أتبع طريقتك في تنظيم جدول زمني للماستر و slaves
حسب مخطط راح ارسل البيانات بهذه الشكل
خلي ماستر يرسل البيانات الى slave1 بهيئه check يعني مثلا اضع البيانات في RS485 كالتالي 200=[dd[0 و200 تعني check راح يقوم slave1 برد على master ويرسله البيانات راح يقوم ماستر بتحليل البيانات اذا كانت هناك بيانات جديده راح يرسلها الى Ethernet ليقوم هذا بدوره بأرسال feedback الى برنامج الكومبيوتر او موبايل وبنفس الوقت ينفذ البرنامج
اما اذا لم تكن هناك بيانات جديده فماستر ماراح يرسل الى Ethernet

بعدها يبدء ماستر بأرسال البيانات check الى slave2 وبنفس الطريقه أعلاه

بعدها يرسل ماستر البيانات check الى Ethernet وبنفس الطريقه

اي ماستر راح يرسل لجهاز جهاز في كل مره ينتظر استقبال
تحياتي
السلام عليكم
اخي حسن كما تعلم مواضيع الاتصالات والبروتوكولات صعبه عادتا وخاصه RS485 بسبب كتره slaves
ما هي طريقتك لرؤيه ان master و ال slavesيرسلو وسيتقبلوا بطريقه صحيحه اقصد طريقه فحص الاخطاء ؟؟
هل ستستخدم بروتوس فقط ام سترى البيانات على شاشه متلا؟؟



الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 05:53 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)