آموزش پروتکل های ارتباطی و لایه فیزیکی RS485

آموزش میکروکنترلر avr

به نام خدا و با سلام

در این مطلب قصد دارم پروتکل های ارتباطی برای ارتباط و ارسال و دریافت دیتا در فواصل دور توسط سیم را خدمت دوستان توضیج بدم.

در حالت کلی وقتی صحبت از انتقال دیتا در فاصله های دور در حد کیلومتر میشه همه ارتباط rs485 رو به یاد میارن،اما اینکه چطور این ارتباط رو برقرار کنیم و از چه استانداردهایی استفاده کنیم تا طول عمر مدارمون بره بالا و در مقابل نویز و emc بی تاثیر باشه جای بحث داره.

RS485 چیست؟

لایه فیزیکی rs485 (دوستان توجه داشته باشید این یک لایه فیزیکی یا پورت یا درگاه میباشد که گاها در بعضی از موارد به عنوان پروتکل از ان یاد شده که تعبیر اشتباهی است در مطالب اینده تفاوت این دو موضوع را به طور کامل بیان خواهم کرد) به عنوان TIA-485(-A), EIA-485 نیز شناخته میشود که یک استاندارد ارسال و دریافت اطلاعات از طریق پورت سریال میباشد و مهمترین مزیت ان قابلیت شبکه کردن چند دستگاه روی یک باس اطلاعات میباشد.

معایب و مزایای rs485 :

این لایه فیزیکی یکی از لایه فیزیکی های پرکاربرد در صنعت و همچنین الکترونیک میباشد.
این درگاه مزایای بسیاری دارد که تعدادی از انها را به صورت مختصر بیان نموده ام.
۱-امکان شبکه کردن چند دستگاه روی یک باس اطلاعاتی
۲-امکان انتقال دیتا به مسافت های دور تا ۱ کیلومتر(از این فاصله بیشتر نیز پشتیبانی میشود که باید از Reapeter یا تکرار کننده ها استفاده نمود)
۳-تاثیر نویز بسیار کم روی این پورت زیرا این لایه فیزیکی سیگنال های اطلاعات TTL را تبدیل به سیگنال های دیفرانسیلی مینماید که در این صورت در مکان هایی که نویز زیاد است روی هردو خط اطلاعات به یک مقدار نویز تاثیر میگذارید بنابراین تغییری در صحت اطلاعات به وجود نمیاید.
و یکی از معایبی که میتوان ذکر نمود امکان انتقال اطلاعات به صورت half duplex میباشد به این معنی که باس اطلاعاتی به صورت نیمه دوطرفه اطلاعات را انتقال میدهد یعنی در یک لحظه نمیتوان هم دیتا دریافت نمود و هم دیتا ارسال کرد. (البته در این مورد اگر نیاز به ارسال و دریافت همزمان اطلاعات باشد از لایه فیزیکی rs422 استفاده میکنند که خود از دو چیپ تبدیل کننده TTL به RS485 استفاده میشود).

 

در ارتباط RS485 از یک زوج سیم به هم تابیده شده جهت ارسال اطلاعات استفاده میشود و تماما دیتا توسط دوسیم انتقال میباید.برای استفاده از این لایه فیزیکی در پروژه های خود باید از چیپ های تبدیل کننده ارتباط استفاده نماییم.
در مدارات الکترونیکی و میکروکنترلری ارتباط سریال به صورت TTL یا سطح ۰ و ۱ میباشد. برای اینکه ما بتوانیم سطوح ۰ , ۱ منطقی TTL را روی یک باس RS485 پیاده سازی نماییم باید از مبدل هایی استفاده کنیم که هم به صورت ماژولار در بازار موجود است و هم میتوانیم انرا بسازیم (این مبحث را نیز در پست های اینده بیان خواهم نمود) چیپ های تبدیل سطح کننده ی مختلفی در بازار موجود هستند مانند: MAX485,ADM485,SP3485,LTC2850
حال اگر به ساختار این چیپ ها توجه کنید میبیند که چیپ هایی ۸ پایه هستند که دوپایه انها جهت تغذیه و دوپایه جهت اتصال به RX,TX میکرو کنترلر و همچنین دو پایه A,B که خروجی های تبدیل شده وروری هستند را دارد.دو پایه دیگر نیز موجود است که این دو پایه عملکرد چیپ را مشخص مینماید که در حالت دریافت باشد یا در حالت ارسال!!!
همانطور که پیشتر هم بیان شد این ارتباط یک ارتباط نیمه دوطرفه است و ما باید جهت ارتباط خود را به چیپ بفهمانیم که توسط این دو پایه انجام میشود.

تعریف لایه فیزیکی:

به راه های ارتباطی (سخت افزارها) سیستم با سیستم های دیگر را لایه فیزیکی میگویند. مانند: پورت RS232,RS485,LAN روی PLC یا HMI و ….

تعریف پروتکل چیست:

پروتکل به عبارتی نحوه ی انتقال دیتا ها روی لایه فیزیکی میباشد. اگر بخواهیم تعریف دقیق تری ارائه دهیم مجموعه ای از قوانین استانداردی که مشخص میکند چگونه سیستم با دنیای بیرون یا دیگر سیستم ها ارتباط برقرار کند.

مثالی از لایه فیزیکی و پروتکل:

در صنعت یکی از پروتکل های پرکاربرد، مدباس میباشد. این پروتکل روی لایه فیزیکی های مختلفی از جمله: RS232,RS485,RS422,LAN ارائه میشود. مدباس یکی از پروتکل های پرکاربرد در PLC و HMI میباشد. لایه فیزیکی RS485 به دلیل مزایایی که دارد بیشتر مورد استفاده قرار میگیرد. به طور مثال یک PLC توسط مدباس میتواند به تعداد زیادی دستگاه که روی باس ۴۸۵ قرار گرفته اند و ارتباط انها نیز مدباس میباشد ارتباط برقرار کرده و دیتای انها را بخواند و یا روی انها دیتا بفرستد.

هماهنطور که دیدید در توضیحات بالا اسم چند نمونه آی سی گفته شد که برای ارتباط سریال ttl با rs485 به کار می روند و تفاوت آنها در ولتاژ تغذیه و شرکت سازنده است.

اول از همه اینو بگم برای ارتباط rs485 ای سی های تقلبی زیادی وجود دارن پس حتما اورجینالشو تهیه کنید تا به مشکل نخورید.

آی سی هایی که برای ارتباط rs485 وجود دارن :

MAX485 MAXIM 5V

ADM485 ANALOG DEVICE 5V

SP3485 Sipex Corporation 3.3V

LTC2850 Linear Technology 3.3V

همه این آی سی ها 8 پین دارند و در دو مدل smd و dip  عرضه میشوند و شماتیک همشون به صورت زیر هستش:

Image result for LTC2850 datasheet

همانطور که میبینید 4 تا پایه دارن برای ارتباط با میکرو کنترلر و میدونید که ارتباطشونم یک طرفه هست پس میکرو باید تعیین کنه  که ای سی فرستنده باشه یا گیرنده و سپس دیتارو بفرسته رو خط.

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

Image result for max485 circuit to micro

بخش حفاظت از آی سی هم در شکل زیر توضیح میدم:

در این تصویر ملاحضات حفاظت چیپ از ولتاژ زیاد و اسپایک های روی خط اورده شده است. بخش اول این شماتیک جهت محافظت کفایت میکند.

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

• خط A با مقاومت ۱ کیلو اهم پول آپ و خط B با مقاومت ۱ کیلو اهم پول داون شود.

• برای محافظت از افتادن ولتاژ فراتر از حد مجاز روی خط دیتا ۴۸۵ یک دیود tvs sm712 روی خط A و B قرار دهید.

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

Image result for sm712

حالا ازدوتا دیود زنر هم میتونید به صورت شکل زیر استفاده کنید

Related image

• جهت محافظت از اتصال کوتاه شدن خطوط RS-485 و محافظت از ای سی، خطوط A و B را با یک مقاومت بین ۱۰ تا ۲۰ اهم سری کنید.

• ابتدای و انتهای خط RS-485 را با یک مقاومت ۱۲۰ اهم ببندید.

• برای شبکه کردن چند دستگاه روی باس RS-485حتما از سیم های بهم تابیده شده استفاده کنید و اگر در مکان پر نویز استفاده میشود جهت افزایش ضریب اطمینان از سیم های زوج بهم تابیده شده شیلد دار استفاده نمایید .

• از توپولوژی ستاره در شبکه کردن استفاده ننمایید زیرا در این صورت امپدانس روی خط کاهش یافته و جریان کشی بین خطوط A و B افزایش خواهد یافت که در نتیجه داغ کردن ایسی و احتمال سوختن آن را به همراه خواهد داشت.

• پایه های DIR را همیشه صفر نگه دارید تا ای سی همیشه در حالت دریافت باشد و زمان ارسال دیتا بین ۱ تا ۵ میلی ثانیه قبل DIR را یک کنید و پس از ارسال آن را صفر کنید.

• گاها دیده شده که پس از ارسال دیتا و صفر کردن پایه های DIR دیتا به صورت کامل ارسال نمی شود که در این حالت باید پس از یک تاخیر زمانی کوتاه پس از ارسال، پایه های DIR را صفر کنید تا دیتا کامل ارسال شود.

دوستان یک مساله بسیار مهم اینکه گاها دیده شده که بدلیل اشتباه متوجه شدن این ارتباط در روی هر برد یک عدد مقاومت ۱۲۰ اهم میگذارند یعنی به ازای هر دستگاهی که روی باس RS-485 سوار میشود یک عدد مقاومت ۱۲۰ اهم گذاشته شده است که این عمل در نهایت باعث داغ کردن چیپ و سوختن ان میشود

فقط باید در ابتدا و انتهای خط یک عدد مقاومت قرار داده شود.

وقتی هم که میخواین با لبتاب ارتباط داشته باشین به صورت شکل زیر به ای سی ft232 متصل کنید.

Image result for max485 circuit to micro

1
دیدگاه بگذارید

avatar
1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
fffffffffffdrt Recent comment authors
fffffffffffdrt
Guest
fffffffffffdrt

SN65HVD10 3.3 V Half-duplex RS-485
SN75ALS176BD 5v