با سلام خدمت دوستان
از RS422 برای ارتباط بین 20 تا میکرو استفاده کردم .
به صورتی که یک میکرو رو مستر قرار دادم و بقیه رو SLAVE.
برای هر Slave روی یه پورت یک کد قرار دادم که با جامپر قابل تنظیمه(کد شناسایی اسلیو)
حالا با استفاده از کابل cat5 مستر رو به اسلیوها وصل کردم
طریقه اتصال هم بدین صورته که:
از مستر با یه کابل به اسلیو اول میایم و از سر دیگه اسلیو با یه کابل دیگه به اسلیو دوم میریم و از سر دیگه اسلیو دوم به اسلیو سوم و الا آخر
یعنی در بردهایی که برای slaveها زدم از یک سمت به عنوان ورودی با یک کابل وارد اسلیو میشه و با یک max488 میره به میکرو و از سمت دیگه و قبل از max میره به سمت دیگه برد تا به اسلیو بعدی وصل بشه
به عبارتی مستر یک مسیر ارسال و یک مسیر دریافت (حالا در rs422 ، هر مسیر دارای دو سیم هست که تفاضلی کار میکن) داره که اسلیو ها مسیرهای دریافت و ارسالشون رو از اون انشعاب گرفتن
حالا مشکل کجاست:
مشکل اینجاست که وقتی من تک تک برد های اسلیو رو به مستر وصل میکنم ، ارتباطشون به طور کامل برقرار میشه
یعنی ابتدا کدهای اسلیو رو سرچ میزنم و اسلیوی که با اون کد تو مداره جواب میده و مستر نیز تصدیق میکنه و اسلیو هم جواب میده و فرامین و اطلاعات رد و بدل میشه.
و به طور کامل هر داده ای که مستر ارسال میکنه اسلیو میگیره و هر داده ای که اسلیو ارسال میکنه مستر میگیره
این کار برای همه اسلیو ها به صورت تکی انجام میشه
اما وقتی چند تا از این اسلیو ها رو با هم شبکه میکنم و به مستر وصل میکنم ، این بار مستر هرچی میفرسته اسلیو ها میگیرن ولی تنها جواب یک اسلیو به مستر میرسه و مستر تصور میکنه تنها اون اسلیو در مدار است و دستور ها رو فقط برای اون اسلیو میفرسته (مستر ابتدا اسلیوها رو سرچ میزنه و هر اسلیوی که کدش صدا زده میشه پیام تصدیق میده و مستر هم برای ارسال دستور تنها به اسلیوهایی که جواب دادن دستور و داده ارسال میکنه)
اون مقاومت 120 اهمی مربوط به امپدانس مشخصه خط در max488 زو هم در مستر و اسلیو آخر قرار دادم
برنامه در پروتئوس به طور کامل جواب داده اما در عمل نه.
به نظرتون مشکل کجاست؟؟؟
خیلی کارم گیره و وقت هم کم دارم
لطفا راهی پیشنهاد کنید.
از RS422 برای ارتباط بین 20 تا میکرو استفاده کردم .
به صورتی که یک میکرو رو مستر قرار دادم و بقیه رو SLAVE.
برای هر Slave روی یه پورت یک کد قرار دادم که با جامپر قابل تنظیمه(کد شناسایی اسلیو)
حالا با استفاده از کابل cat5 مستر رو به اسلیوها وصل کردم
طریقه اتصال هم بدین صورته که:
از مستر با یه کابل به اسلیو اول میایم و از سر دیگه اسلیو با یه کابل دیگه به اسلیو دوم میریم و از سر دیگه اسلیو دوم به اسلیو سوم و الا آخر
یعنی در بردهایی که برای slaveها زدم از یک سمت به عنوان ورودی با یک کابل وارد اسلیو میشه و با یک max488 میره به میکرو و از سمت دیگه و قبل از max میره به سمت دیگه برد تا به اسلیو بعدی وصل بشه
به عبارتی مستر یک مسیر ارسال و یک مسیر دریافت (حالا در rs422 ، هر مسیر دارای دو سیم هست که تفاضلی کار میکن) داره که اسلیو ها مسیرهای دریافت و ارسالشون رو از اون انشعاب گرفتن
حالا مشکل کجاست:
مشکل اینجاست که وقتی من تک تک برد های اسلیو رو به مستر وصل میکنم ، ارتباطشون به طور کامل برقرار میشه
یعنی ابتدا کدهای اسلیو رو سرچ میزنم و اسلیوی که با اون کد تو مداره جواب میده و مستر نیز تصدیق میکنه و اسلیو هم جواب میده و فرامین و اطلاعات رد و بدل میشه.
و به طور کامل هر داده ای که مستر ارسال میکنه اسلیو میگیره و هر داده ای که اسلیو ارسال میکنه مستر میگیره
این کار برای همه اسلیو ها به صورت تکی انجام میشه
اما وقتی چند تا از این اسلیو ها رو با هم شبکه میکنم و به مستر وصل میکنم ، این بار مستر هرچی میفرسته اسلیو ها میگیرن ولی تنها جواب یک اسلیو به مستر میرسه و مستر تصور میکنه تنها اون اسلیو در مدار است و دستور ها رو فقط برای اون اسلیو میفرسته (مستر ابتدا اسلیوها رو سرچ میزنه و هر اسلیوی که کدش صدا زده میشه پیام تصدیق میده و مستر هم برای ارسال دستور تنها به اسلیوهایی که جواب دادن دستور و داده ارسال میکنه)
اون مقاومت 120 اهمی مربوط به امپدانس مشخصه خط در max488 زو هم در مستر و اسلیو آخر قرار دادم
برنامه در پروتئوس به طور کامل جواب داده اما در عمل نه.
به نظرتون مشکل کجاست؟؟؟
خیلی کارم گیره و وقت هم کم دارم
لطفا راهی پیشنهاد کنید.
دیدگاه