am in 25041 اشتراک گذاری ارسال شده در 7 شهریور، ۱۳۸۹ شاید بیشترخوانندگان این مطلب با RS232 آشناباشند.در این استانداردداده سریال UART ازسطوح منطقی صفرو یک به ترتیب به سطوح ولتاژ +3~ +12 ولت و -3~ -12 ولت تبدیل می شوند. پس از بیت آغاز( Start bit )،هشت بیت داده به همراه بیتهای اختیاری [8] وبیت توازن [P] ارسال می شوند وبه این صورت یک فریم داده کامل می شود. عمل تبدیل صفرویک(مثلا 0V و 5V ) به ولتاژهای +12V و -12V تا حدودزیادی اثرنویزهای محیطی را کاهش می دهد.اما برای مسافتهای طولانی، Baud Rate بالا و محیطهای با اثر القاء نویزبالا،زیاد قابل اطمینان نیست.چراکه: 1-در مسافتهای طولانی اثرنویزهای محیطی بیشتر می شود. 2-در فرکانسهای بالا،تشعشع خط فرستنده،روی گیرنده اثر می گذارد. برای حل مشکلات فوق،استاندارد RS422 پیشنهاد می شود. برای خروجی TXD دستگاه،یک فرستنده تفاضلی و برای ورودی RXD دستگاه، یک گیرنده تفاضلی قرار داده می شود. برای ارتباط ازنوع RS422 به 5 خط نیازاست.فرستنده تفاضلی روی خط A ، سیگنال TXD وروی خط B ، معکوس سیگنال فوق را تولید می کند.گیرنده نیز تفاضل این دو سیگنال رابه RXD دستگاه تحویل می دهد.به این صورت نویزهای محیط که به صورت مشترک روی دو سیم A و B قرار می گیرند،درورودی گیرنده تفاضلی حذف می شوند.اما سیگنال اصلی که با دامنه معکوس روی دو سیم ارسال می شود،با صحت کامل در گیرنده دریافت می شود.همچنین به این شکل اثر تشعشع خط فرستنده روی گیرنده از بین می رود. ارتباط RS422 (مانند RS232 ) ازنوع کاملا دو طرفه( Full duplex ) است.به این معنی که خط ارسال و دریافت برای دستگاه جدا ازهم بوده،بنابراین درآن واحد دستگاه می تواند هم فرستنده باشد وهم گیرنده. اما در RS485 این ارتباط نیمه دوطرفه( Half duplex ) می باشد. به این معنی که دستگاه درآن واحد یا فرستنده است یا گیرنده. چرا که خط ارسال ودریافت یکی است.بنابراین در این سیستم،ارتباط بایدبه صورت Master و Slave انجام شود. ارتباط به گونه ایست که Slave ها نمی توانند سرخودداده ای را ارسال کنند.بلکه Master درزمانبندیهای خاصی آدرس Slave هاراپشت سرهم می فرستدوبا آنهاارتباط برقرارمی کند.البته نرم افزار این سیستمها بسته به نیاز پروژه و سلیقه طراح قابل طراحی است. نکته قابل تامل دراستاندارد RS485 این است که درحالت عادی خروجی Slave ها باید tri-state باشدتاروی خط ودرنتیجه روی عملکرد Master اثر نگذارندوفقط وقتی که قرار است داده ای ارسال کنند،به خط متصل شوند. به همین شکل ورودی Master فقط بایدوقتی فعال شودکه قراراست داده ای از Slave مربوط بگیرد.چرا که در غیراین صورت،داده های ارسالی خود Master ، توسط Master دریافت می شوند.البته درباره آنچه گفته شد،شاید راهکارهای دیگری بسته به نیاز پروژه وجود داشته باشد. لینک به دیدگاه
ارسال های توصیه شده