آموزش طراحی مدار برای استاندارد ارتباطی RS485 به صورت صنعتی

بازگشت به آموزشگاه

به جرات میتوان گفت RS485 از مهمترین و پرکاربردترین استانداردهای صنعتی و حتی تجاری است که به منظور ارتباط میان چندین وسیله مختلف مورد استفاده قرار می گیرد. طراحان بسیاری در محصولات صنعتی خود از مدار این استاندارد ارتباطی استفاده می کنند که گاها به اندازه کافی موارد مربوط به مقابله با نویز، مقاومت ترمینیشن ( Termination )، ولتاژ گذرا، ایزوله سازی و … رعایت نمی کنند. به همین علت در این مطلب به بررسی نکات لازم و ضروری در طراحی مدار استاندارد ارتباطی RS485 به صورت صنعتی می پردازیم.


معرفی استاندارد RS485

یکی از استاندارد های ارتباطی سریال می باشد که توسط مجمع آمریکایی TIA تحت عنوان استاندارد TIA-485 در سال 1998 به ثبت رسیده و مورد استفاده اکثر سازندگان محصولات صنعتی و تجاری قرار گرفته است. مهمترین ویژگی استاندارد ارتباطی RS485 تفاضلی بودن سیگنال ها در آن می باشد که باعث کاهش نویز پذیری و در نتیجه افزایش طول کابل و سرعت ارتباط می شود. به منظور درک ارتباط سریال و تفاوت RS485 با سایر استاندارد های ارتباطی دیگر نظیر RS232، RS422، RS423 به مطلب زیر مراجعه نمایید.

آموزش کامل راه اندازی استانداردهای RS232 ، RS422 ، RS423 و RS485 در ارتباط سریال UART


کاربردهای استاندارد RS485

از کاربردهای این استاندارد میتوان به موارد زیر اشاره کرد:

  • ارتباط میان دو یا چند وسیله میکروکنترلری
  • ارتباط میان یک وسیله میکروکنترلری با کامپیوتر
  • ارتباط میان یک وسیله میکروکنترلری با PLC
  • شبکه سازی میان چندین وسیله مختلف

انواع ماژول های RS485 موجود در بازار

برای اینکه بتوانید از قابلیت شبکه سازی میان دو یا چند میکروکنترلر در بستر RS485 استفاده کنید نیاز به یک ماژول مبدل RS485 به TTL می باشد. که طرف TTL آن به واحد UART میکروکنترلر ( RX و TX و GND ) و طرف RS485 آن به کابل RS485 که شامل سه سیم A و B و GND می شود متصل می گردد. در بازار دو نوع مختلف این ماژول مبدل یافت می شود که در تصویر زیر آن ها را مشاهده می کنید. در ماژول سمت راست از قطعات محافظتی استفاده نشده است و به راحتی می سوزد. اما در ماژول سمت چپ از چند دیود و فیوز جهت محافظت استفاده شده است. هرچند که ماژول سمت چپ صنعتی تر می باشد اما برای استفاده در وسایل صنعتی ایده آل نیست چرا که اقدامات مربوط به نویز و الکتریسیته ساکن در آن به طور کامل رعایت نشده است.


به منظور اتصال RS485 به کامپیوتر که میتواند جهت ارتباط یک وسیله میکروکنترلری، یک PLC یا هر وسیله دیگری به کامپیوتر استفاده شود، از مبدل RS485 به USB استفاده می شود. این مبدل ها دارای دو بخش است. یک بخش برای تبدیل RS485 به TTL و بخش دوم برای تبدیل TTL به USB می باشد. دو نوع مختلف این ماژول های مبدل که در بازار یافت می شود در شکل زیر آورده شده است. ماژول سمت چپ طبق تجربه شخصی من عملکرد بهتری داشته است.


توپولوژی و معماری شبکه RS485

از نظر توپولوژی، شبکه RS485 یک شبکه باس ( Bus ) نیمه دوطرفه (Half-duplex) می باشد. در شبکه های نیمه دو طرفه ارسال و دریافت دیتا در بازه های زمانی جدا و از طریق یک کانال ارتباطی مشترک صورت می گیرد. بنابراین در اینگونه شبکه های باس تنها دو وسیله حق دارند با یکدیگر صحبت کنند. در صورتی که بیش از دو وسیله در چنین شبکه ای بخواهند با یکدیگر صحبت کنند تصادم یا Collision رخ می دهد. تصادم منجر به از دست رفتن دیتا (Data Loss) می گردد. برای جلوگیری از تصادم در چنین شبکه هایی از معماری Master/Slave استفاده می شود. در این گونه شبکه ها یک Master و تعدادی Slave وجود دارد که Master درخواست خود را به یکی از Slave هایی که خود انتخاب کرده است ارسال می کند و پاسخ مورد نظر را از آن وسیله دریافت می کند. سپس به سراغ وسیله بعدی می رود. این معماری باعث می شود که قدرت انتخاب Slave در دست Master باشد تا از بروز تصادم و از دست رفتن دیتا جلوگیری شود.

بنابراین RS485 دارای اتصال یک درایوری و چند دریافت کننده ای است، یعنی وسیله های متعددی می توانند روی یک کابل اطلاعات را دریافت کنند اما فقط یک ایستگاه می تواند در هر زمان ارسال کنند آن اطلاعات باشد. در شبکه های دیفرانسیلی نظیر RS485 از دو خط سیگنال با نام های A و B استفاده می‌شود. همچنین در شبکه های باس وجود مقاومت ترمینیشن (Termination) بین A و B در ابتدا و انتهای خط به منظور جلوگیری از بازتاب (Reflection) دیتا ضروری است. همانطور که در شکل فوق نیز قابل مشاهده است، تنها وسیله های ابتدایی و انتهایی دارای RT هستند و بقیه وسیله ها بدون مقاومت به باس متصل می شوند. اگر این مقاومت در شبکه وجود نداشته باشد شبکه دچار اختلال می گردد و سیگنال ارسالی از یک فرستنده هنگام رسیدن به انتهای خط بازتاب می گردد و در نهایت این سیگنال بازتاب به صورت تضعیف شده به خود فرستنده می رسد. باید از بازتاب در خطوط داده با نرخ انتقال بالا اجتناب کرد زیرا سیگنال های داده ممکن است توسط بازتاب ها خراب یا حتی از بین بروند. شکل زیر این موضوع را نشان می دهد.

سیگنال های الکتریکی با سرعتی معادل 2/3 سرعت نور در طول کابل های الکتریکی عبور می کنند. بنابراین مدت زمانی که سیگنال برای عبور از یک متر کابل نیاز دارد تقریبا 5 نانو ثانیه و برای یک کابل با طول 1200 متر حدود 6 میکروثانیه می شود. دلیل رخ دادن بازتاب از انتهای خطی که مقاومت ترمینیشن ندارد این است که انرژی الکتریکی نمی تواند به سادگی در انتهای یک کابل ناپدید شود، بنابراین دوباره به سمت مبدا باز می گردد. این پدیده انقدر تکرار می شود تا سیگنال تضعیف شده و با کاهش دامنه به صفر برسد. به همین علت است که در نرخ بیت بالا، یعنی برای زمان انتقال کوتاه کوتاه، اثر بازتاب جدی تر است.

به منظور جلوگیری از بازتاب سیگنال از مقاومت های پایان خط یا ترمینیشن استفاده می شود. وظیفه مقاومت های پایان خط دریافت انرژی سیگنال الکتریکی و جلوگیری از بازتاب در انتهای کابل است. بهترین نتیجه زمانی حاصل می شود که مقاومت پایان خط دقیقا معادل امپدانس موج خود کابل باشد. مقاومت ترمینیشن باید در هر دو سر کابل اعمال شود. خط باس را می توان با اندوکتانس در واحد طول L و ظرفیت خازن در واحد طول C مدل کرد. اگر فرکانس ها به اندازه کافی بالا باشند می توان امپدانس موج را طبق فرمول زیر محاسبه کرد:


نحوه انتقال الکتریکی در RS485

RS485 یک سیستم انتقال دو سیمه متقارن دیفرانسیلی (differential) است که در آن اطلاعات به جای اینکه از طریق اختلاف ولتاژ یک هادی از زمین مدار منتقل شود، از طریق اختلاف ولتاژ موجود بین دو هادی با یکدیگر منتقل می شود. خطوط دیفرانسیلی دو سیمه نسبت به خطوط تک سیم یا نامتقارن نسبت به تداخل بسیار کمتر حساس هستند. برای مثال هنگامی که نویز محیط روی کابل تاثیر گذارد، این نویز در هر یک از خطوط سیگنال به یک اندازه تغییر در سطح ولتاژ ایجاد می کند و از آنجا که گیرنده دیفرانسیلی می‌باشد، برای ساخت سیگنال اصلی دو سیگنال را از یکدیگر کم می‌کند و نویز روی سیگنال از یکدیگر کم و تاثیر آن حذف می‌شود.

هنگامی که هیچ اطلاعاتی ارسال نمی شود باس در حالت بیکار یا IDLE قرار دارد. در این حالت وسیله های گیرنده فعال بوده و Load کمی بر روی باس ایجاد می کنند اما وسیله فرستنده فعال نبوده و به حالت امپدانس بالا (سه حالته یا Tri-State) می روند. هنگامی که فرستنده (وسیله Master) بخواهد اطلاعات ارسال کند باس را به طور کامل در اختیار می گیرد به طوری که در هنگام ارسال منطق 0 سطح ولتاژ خط مثبت (A) اندازه 1.5 ولت پایین تر از سطح ولتاژ پایه منفی (B) می شود. همچنین هنگام ارسال منطق 1 ولتاژ خط مثبت (A) اندازه 1.5 ولت بالاتر از ولتاژ خط منفی (B) می شود. این ولتاژ زمانی که به گیرنده می رسد تضعیف می شود و باید در محدوده پذیرش گیرنده قرار گیرد که به آن حساسیت گیرنده گفته می شود. مطابق استاندارد حساسیت گیرنده ها در RS485 برابر 200 میلی ولت است. یعنی کافی است سیکنال A اندازه 200 میلی ولت کمتر یا بیشتر از سیگنال B باشد تا به درستی تشخیص داده شود.


معرفی آی سی های RS485

معروف ترین آی سی که به منظور تبدیل پورت سریال (به آن UART یا TTL هم گفته می شود) به RS485 استفاده می شود، MAX485 نام دارد. این آی سی و پایه های آن را در شکل زیر مشاهده می کنید.

همانطور که مشاهده می شود، این آی سی دو پایه VCC و GND برای تغذیه دارد. پایه A همان پایه +D یا پایه ورودی/خروجی سمت مثبت RS485 است. پایه B همان پایه -D یا پایه ورودی/خروجی سمت منفی RS485 است. پایه DI مخفف Driver input می باشد که بایستی به پایه TX میکروکنترلر وصل شود. پایه RO مخفف Receiver output می باشد که بایستی به پایه RX میکروکنترلر وصل شود. دو پایه DE که مخفف Driver enable و RE# که مخفف Receiver enable به منظور تعیین جهت ارتباط (دریافت/ارسال) مورد استفاده قرار می گیرد. از آن جایی که این آی سی half-duplex هست همزمان نمیتواند ارسال/دریافت را انجام دهد و باید توسط این دو پین جهت انتقال دیتا مشخص شود. به علت این که پین DE به صورت Active high و پین RE به صورت Active Low می باشد میتوان این دو پین را به هم وصل کرد و به یکی از پایه های GPIO میکروکنترلر متصل نمود. شکل زیر نحوه این اتصال را نشان می دهد. بنابراین اگر پایه IO در شکل زیر 0 باشد در حالت دریافت دیتا و اگر 1 باشد در حالت ارسال دیتا هستیم. در وسیله Master زمانی که می خواهد برای slave درخواست بفرستد این پایه را 1 می کند و سپس 0 می کند تا بتواند پاسخ را از سمت slave دریافت کند. در وسیله Slave این پایه همیشه 0 است و تنها زمانی که درخواستی برای او ارسال شود یک لحظه 1 می شود تا جواب درخواست برای Master ارسال شود.


مدار مبدل RS485 به TTL

شماتیک یک نوع ماژول RS485 به TTL که در بالا انواعی از آن معرفی شد، در شکل زیر نشان داده شده است. همانطور که مشاهده می کنید از آی سی MAX3485 استفاده شده است که یک مبدل سریال به RS485 با تغذیه 3.3 ولت است. همچنین این مدار دارای مقاومت ترمینیشن 120 اهم و دو عدد مقاومت محافظتی 1K می باشد. همچنین جهت محافظت از ولتاژ گذرا از آی سی SM712 استفاده شده است که برای کاربردهای معمولی مناسب است. دو عدد فیوز 0.5 آمپر برای مواقعی که جریان کشی اتفاق می افتد قرار داده شده است که جهت محافظت از آی سی MAX3485 می باشد. به جای این فیوز ها میتوان از مقاومت 10 اهم نیز استفاده کرد چرا که این مقاومت با جریان کشی سریع می سوزد و مدار باز می شود و از جریان کشی و سوختن آی سی MAX3485 جلوگیری می کند.


مدار مبدل RS485 به USB

شماتیک یک نوع ماژول RS485 به USB که با استفاده از مبدل USB به سریال FT232 طراحی شده است در شکل زیر نشان داده شده است. همانطور که مشاهده می کنید، به همان مدار مبدل RS485 به سریال بالا یک بخش جدید اضافه شده است که برای تبدیل سریال به USB می باشد. از آی سی مبدل USB به سریال FT232RL استفاده شده است که خود این آی سی کنترل پایه های DE و RE# را به طور اتوماتیک در دست می گیرد.


طراحی ارتباط RS485 در صنعت

همواره در محیط های صنعتی بایستی اقداماتی در نظر گرفته شود که کیفیت ارتباط را افزایش داده و خطا و خرابی های مدار را کاهش دهد. خصوصا اگر مدار کاربرد ایمنی داشته باشد یعنی در ناحیه بحرانی از سیستم قرار داشته باشد. منظور از ناحیه بحرانی جایی است که در صورت بروز اشکال سیستم عملکرد ایمنی لازم را نتواند انجام دهد. در این صورت بایستی از مدارهای مقاوم در برابر خطا و خرابی استفاده شود. ایمنی عملکرد ( functional safety ) در سیستم های خودرویی، نفت و گاز، مهندسی پزشکی، راه آهن و به طور کلی در صنایعی که خرابی سیستم برای آن صنعت هزینه مالی زیاد داشته باشد یا جان افراد در خطر قرار گیرد. پروتکل RS485 به طور ذاتی برای سیستم های مقاوم در برابر خطا طراحی نشده است و تنها در صورت رعایت اقدامات امنیتی در طراحی سیستم می تواند در سیستم های بحرانی-ایمنی استفاده شود. در غیر این صورت استفاده از پروتکل های بهتری نظیر CAN Bus که ذاتا توانایی مدیریت اشکالات و خرابی های سیستم را دارد، توصیه می گردد.

به منظور طراحی مدار RS485 برای کاربردهای صنعتی که نیاز هست در شرایط سخت به کار خود ادامه دهند، بایستی از قطعات دیگری علاوه بر قطعات فوق استفاده شود. این قطعات باعث ایزوله سازی تغذیه و ایزوله سازی سیگنال های میکروکنترلر می شود. این کار بوسیله استفاده از دو ولتاژ 3.3 ولت و ایزوله سازی آن دو از یکدیگر صورت می گیرد. از دیودهای TVS جهت محافظت از ولتاژ گذرا در این مدار استفاده شده است. همچنین استفاده از اپتوکوپلر در مدار موجب ایزوله سازی سیگنال های میکروکنترلر از سمت RS485 می شود. همچنین قطعاتی نظیر TBU و GDT در این مدار معرفی شده و استفاده می شود. سورس کامل این مدار در نرم افزار آلتیوم دیزاینر از طریق لینک زیر در دسترس می باشد. این یک مدار کاملا تخصصی و تست شده است که انتشار رایگان آن امکان پذیر نبود.

محتویات سورس پروژه ارتباط RS485 به صورت صنعتی:

  1. سورس شماتیک ارتباط RS485 صنعتی در نرم افزار آلتیوم ( Altium Designer )
  2. آموزش انواع پروتکل های سریال از جمله RS485 در قالب PDF

لینک خرید آنلاین سورس پروژه RS485 صنعتی

1 دیدگاه

  • سعید اسمعیلی پاسخ

    باسلام و عرض تشکر از شما بابت درج مطالب ارزنده در زمینه ایزولاسیون پورت ارتباطی.
    بمنظور ایزولاسیون در زمینه ارتباط بین دیتالاگر و ترانسمیترها نیاز به ایزولاسیون می باشد.
    اگر در این زمینه نیز مطالب را ارائه بفرمائید و یا عنوان بفرمائید از چه کتاب و یا منبعی ، این اطلاعات قابل دسترسی است ممنون میشوم.
    مانند :
    ایزولاسیون فیلدباس
    ۰ _ ۲۰ میلی آمپر
    ۴ _ ۲۴ میلی آمپر
    ۱۰ _ ۵۰ میلی آمپر

    1403-09-03 در 21:43

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

بازگشت به آموزشگاه