در این مقاله، میخواهیم نگاهی داشته باشیم به انواع پروتکلهای ارتباطی سریال که معمولاً در ارتباط میکروکنترلر با میکروکنترلر های دیگر، سنسورها، کامپیوتر و… استفاده میشود. در این مقاله قصد بررسی جزئیات هر پروتکل را نداریم و تنها مقایسهای کلی میان همهی آنها انجام خواهیم داد تا هنگامی که میخواهید مداری را طراحی کنید، بتوانید یک مقایسه سریع داشته باشید و بهترین گزینه را انتخاب کنید.
با این مقاله از سیسوگ همراه باشید!
جدول مقایسه پروتکلهای ارتباطی سریال
با مشاهده جدول زیر، می توانید برتری و کاستی های هر یک از پروتکل های ارتباطی سریال را مشاهده کنید:
جمع بندی و نتیجه گیری کلی
پروتکلها و استانداردهای ارتباطی واقعاً قابلیت فوقالعادهای هستند! بهویژه اگر در دستگاههای هوشمند دیجیتال از آن ها استفاده کنید. شما میتوانید ترکیبی از چندین تراشه دیجیتال یا حتی مختلط آنالوگ و دیجیتال را کنار همدیگر داشته باشید. میکروکنترلرها خیلی محبوب هستند و در اکثر دستگاههای الکترونیکی وجود دارند. گذرگاههای ارتباطی سری امکان تبادل اطلاعات بین این دستگاهها را فراهم میکند. اگرچه ارتباطات سریال نسبت به ارتباط موازی بسیار کندتر است، اما همین سرعتها و نرخهای تبادل برای اکثر ICها و دستگاهها کافی است. زیرا اطلاعات و دستورات معمولاً حجم بسیار کمی دارند. همچنین ارتباط سریال تعداد سیمها را نیز بسیار کمتر کرده و مدار ما بسیار سادهتر، کوچکتر و ارزانتر تولید میشود.
شاید برای شما مفید باشد: الکترونیک چیست؟ | از 0 تا 100 الکترونیک
UART یک ارتباط سریال ساده است که به شما امکان ارتباط دوطرفه کامل را میدهد. USART برای ارتباط بین دو دستگاه مفید است.
I2C این اجازه میدهد تا دستگاههای بسیار زیادی را تنها با استفاده از دو پین متصل کنید. بااینحال، هرچه دستگاههای بیشتری متصل شوند، برای عملکرد بهتر باید سرعت داده نیز کاهش یابد. همچنین، این خیلی خوب است که سرعت تبادل اطلاعات توسط سختافزار ما تعیین شود (بر خلاف USART که باید دو دستگاه دارای تنظیمات یکسان باشند) و آدرسهای Slave نیز توسط سختافزار تنظیم شوند.
SPI یک پروتکل ارتباطی سریع است که یک Master میتواند تعداد زیادی Slave را کنترل کند. هرچند با افزایش تعداد Slaveها تعداد پینها نیز بیشتر میشود، اما بر خلاف I2C سرعت کاهش پیدا نمیکند. سرعت ارتباطات SPI بسیار عالی است و علاوهبرآن نیازی به تطبیق امپدانس و تغییر ولتاژ بین دستگاهها ندارد. در برخی موارد (مثل SD Card) استفاده از تقسیم مقاومت در خطوط ارتباطی تواند مشکلگشا باشد.
MICROWIRE (در تصویر بالا نیست) یک رابط سریال 3 سیمه با سرعت 3 مگابیت بر ثانیه و کامل دوطرفه است که زیرمجموعه ای از رابط SPI است. Microwire در واقع یک پورت ورودی/خروجی سریال روی میکروکنترلرها است. این گذرگاه در EEPROM ها و سایر تراشه های جانبی نیز یافت می شود. 3 خط ارتباطی SI (ورودی سریال)، SO (خروجی سریال) و SK (کلاک سریال) دارد. همچنین یک معماری جدید تر نیزبه نام MICROWIRE/Plus وجود دارد که به نظر می رسد تفاوت اصلی بین این دو گذرگاه، پیچیدگی بیشتر معماری در میکروکنترلر است. همچنین از سرعت حداکثر 3 مگابیت بر ثانیه پشتیبانی می کند. (اطلاعات بیشتر در مورد پروتکل ها را می توانید اینجا به زبان اصلی بخوانید.)
1-wire روش جالبی است. امکان برقراری ارتباط و همچنین تأمین برق را تنها با استفاده از یک سیم و به کمک تکنیک parasitic power فراهم میکند. بااینحال، دستگاههای زیادی وجود ندارد که بتوانند از آن استفاده کنند.
CAN در محیطی با سطوح تداخل الکترومغناطیسی بسیار قوی عمل میکند و تصحیح خطای خوبی هم دارد؛ بنابراین نباید تعجب کرد که از این پروتکل بیشتر برای کاربردهای مهم، مثل خودرو و صنعت استفاده میشود.
شما میتوانید نحوه کار انواع پروتکل های بکار رفته در خودرو را در سیسوگ یاد بگیرید!
LIN یک نوع CAN است که بهعنوان زیرسیستم CAN توسعهیافته است. LIN معمولاً برای کاربردهای کماهمیت در خودروها استفاده میشود. ارزان و سرراست است. دستگاههای LIN از کوارتز یا رزوناتور برای زمانبندی استفاده نمیکنند. آنها فقط از یک مدار RC داخلی ساده برای صرفهجویی در هزینهها استفاده میکنند.
شما میتوانید نحوه کار LIN BUS را در سیسوگ یاد بگیرید:
RS-485 یک پروتکل استاندارد است که در بسیاری از دستگاهها، بهویژه در اتوماسیون و PLC استفاده میشود. از یک یا دو جفت دیفرانسیل استفاده میکند. پروتکل نسبتاً قوی است، زیرا میتواند در سرعتهای نسبتاً زیاد یا مسافتهای طولانی جواب بدهد.
RS-232 یک پروتکل سریال استاندارد قدیمی است که بسیار محبوب بود. اگرچه دستگاههای مدرن دیگر از این استاندارد استفاده نمیکنند، اما هنوز تعداد زیادی از این دستگاهها وجود دارد؛ بنابراین داشتن دانش در مورد آن مفید خواهد بود.
منبع زبان اصلی
لایه فیزیکی و پروتکل رو قاطی کردید. لایه فیزیک بستر انتقال داده و پروتکل قانون انتقال داده هست و شما RS232 و Rs485 رو پروتکل معرفی کردید. در حالی که با RS485 ما USART میفرستیم میتونیم باهاش Modbus بفرستیم بستگی به نیاز داره.
Physical layer مثل خودرو و جاده میمونه و پروتکل مثل قوانین راهنمایی رانندگی
عالی بود ، تشکر فراوان (:
دوستان برای یه ارتباط ساده بین دو تا AVR پروتکل ساده و ارزان و سبک که حجم کمی از پردازش میکرو بگیره چی پیشنهاد میکنین؟
دورد بر شما! یوزارت به نظر من برای ارتباط بین دو میکرو گزینه خوبیه.
مقایسه کلی هست، اما همین میتونه تو طراحی و انتخاب پروتکل خیلی کمک کنه و ساعت ها توی وقت صرفه جویی کنه، ممنون دیجی بوی
شما بزرگوارید ?
خیلی مفید بود ممنون
شما لطف دارید ?
خیلی جالب و کاربردی بود. یه جدول به درد بخور که میتونه همیشه بهمون کمک کنه. ممنون.
خواهش میکنم.
موفق باشید!