آشنایی با پروتکل های ارتباطی: درس دوم(UART)

پنج شنبه, 17 تیر 1395 11:31
این مورد را ارزیابی کنید
(16 رای‌ها)

حتما به خاطر می آورید که پرینترها، موس و مودم ها دارای چه کابل های ضخیم و کانکتورهای بزرگی برای اتصال به کامپیوتر بودند. تمامی این قطعات از روش UART برای برقراری ارتباط با کامپیوتر استفاده می کردند. اگرچه USB تقریبا به طور کامل جایگزین کانکتورهای قدیمی شده است، اما این به معنی کنار گذاشتن روش UART نیست.

از UART در بسیاری از پروژه های الکترونیکی جهت اتصال ماژول های GPS، بلوتوث و RFID به رزپبری پای، آردوینو و سایر میکروکنترلرها استفاده می شود.

UART یا Universal Asynchronous Receiver/Transmitter یک پروتکل ارتباطی مانند SPI و یا I2C نمی باشد، بلکه یک مدار فیزیکی است در میکروکنترلر و یا به صورت یک IC. هدف اصلی UART ارسال و دریافت داده ها به صورت سریال می باشد.

یکی از نقاط قوت UART، استفاده از دو سیم جهت انتقال داده ها بیت قطعات می باشد. درک اصول عملکرد UART ساده است. لذا در صورتی که درس اول مربوط به پروتکل SPI را مطالعه نکردید، می توانید از همین درس شروع کنید.

معرفی ارتباط UART:

در ارتباط UART دو دستگاه به طور مستقیم به یکدیگر متصل می شوند. دستگاه ارسال کننده داده های موازی را که از یک بخش کنترلی مانند CPU دریافت می کند، به صورت سریال تبدیل کرده و برای دستگاه دریافت کننده ارسال می کند. سپس در سمت دریافت کننده داده های سریال به صورت موازی تبدیل می شوند. داده ها از پین TX دستگاه ارسال کننده برای پین RX دستگاه دریافت کننده فرستاده می شوند.

UART داده ها را به صورت ناهمزمان ارسال می کند. به این معنی که سیگنال کلاک برای همزمان کردن داده های خروجی دستگاه ارسال کننده با داده های نمونه دستگاه دریافت کننده، وجود ندارد. به جای سیگنال کلاک از بیت های شروع، توازن(parity) و  پایان در بسته داده های ارسالی استفاده می کند، لذا دستگاه دریافت کننده متوجه می شود که چه زمانی شروع به خواندن داده ها کند.

زمانی که دستگاه دریافت کننده متوجه بیت شروع شد، داده های ورودی را با فرکانس مشخصی که به آن نرخ انتقال داده(baud rate) می گویند، دریافت می کند. baud rate  تعیین کننده سرعت انتقال اطلاعات بوده و برحسب بیت برثانیه(bps) سنجیده می شود. هر دو دستگاه UART باید با baud rate یکسان عمل کرده و حداکثر میزان اختلاف آنها می تواند 10 % باشد.

تعداد سیم های مورد استفاده =  2

حداکثر سرعت  =  115200baud    و به طور معمول  9600 baud

همزمان و یا ناهمزمان =  ناهمزمان

حداکثر تعداد master (کنترل کننده)  =  1

حداکثر تعداد slave (کنترل شونده مثل سنسورها و ماژول ها و...) =  1

UART به چه صورت کار می کند:

دستگاه ارسال کننده UART داده ها را از گذرگاه داده(data bus) دریافت می کند. گذرگاه داده برای ارسال داده ها به UART توسط قطعاتی مانند CPU، حافظه و یا میکروکنترلر استفاده می شود. داده ها به صورت موازی از گذرگاه داده به UART فرستاده شده، دستگاه ارسال کننده با اضافه کردن بیت های شروع، توازن و پایان یک بسته داده ایجاد می کند. در ادامه این بسته به صورت سریال و بیت به بیت از طریق پین TX ارسال می شود. دستگاه دریافت کننده داده های سریال را از طریق پین RX دریافت و  به حالت موازی تبدیل کرده و  بیت های شروع، تعادل و پایان را حذف می کند. در انتها این داده ها به گذرگاه داده در دستگاه دریافت کننده فرستاده می شوند.

همان طور که گفته شد داده ها در ارتباط UART به صورت یک بسته فرستاده می شوند. هربسته شامل یک بیت شروع، 5 تا 9 بیت داده(به UART  بستگی دارد)، یک بیت توازن قابل تنظیم و یک یا دو بیت پایانی.

 

بیت شروع:

خط انتقال اطلاعات از UART زمانی که از آن استفاده نمی شود، در حالت HIGH  می گیرد. برای شروع انتقال اطلاعات این خط برای مدت یک کلاک ساعت در وضعیت LOW قرار می گیرد. زمانی که دستگاه دریافت کننده یک تغییر سطح ولتاژ از حالت HIGH به LOW را تشخیص داد، شروع به دریافت داده ها با baud rate مشخص می شود.

ساختار داده ها(data frame):

در این قسمت داده اصلی قرار گرفته و می تواند از 5 تا 8 بیت، در صورتی که از بیت توازن استفاده شود، را شامل شود. و در صورتی که بیت تعادل به کار نرود، می تواند تا 9 بیت باشد. در اکثرا اوقات ابتدا بیت کم ارزش(LSB) فرستاده می شود.

بیت توازن:

این بیت ها معمولا توازن زوج و یا فرد در داده ها به وجود می آورند. از بیت توازن برای تشخیص وجود خطا در داده های ارسالی UART استفاده می شود. بیت های ارسالی ممکن است به دلایلی مانند: امواج الکترومغناطیسی، عدم تطابق baud rate و یا فاصله طولانی بین دستگاه ها به وجود آید. زمانی که داده دریافت شد، تعداد یک های موجود در آن با توجه به توازن زوج و یا فرد انتخاب شده، بررسی می شود. در صورتی که بیت توازن صفر باشد(توازن زوج)، در این صورت تعداد یک ها باید زوج، و در صورتی که بیت توازن یک باشد(توازن فرد) تعداد یک ها باید فرد باشد. از این طریق وجود و یا عدم وجود خطا در داده ارسالی بررسی می شود.

بیت پایانی:

برای مشخص کردن داده پایانی، دستگاه فرستنده خط انتقال داده را برای مدت حداقل دو بیت از حالت LOW به حالت HIGH  منتقل می کند.

مراحل انتقال داده در UART:

1- دستگاه ارسال کننده داده ها را به صورت موازی از گذرگاه داده دریافت می کند.

2- دستگاه ارسال کننده بیت شروع، توازن و پایانی را به داده اضافه می کند.

3- بسته داده به صورت سریال و با توجه به سرعت baud rate از دستگاه ارسال کننده فرستاده می شود.

دستگاه دریافت کننده بیت شروع، توازن و پایانی را از داده حذف می کند.

دستگاه دریافت کننده داده سریال را به موازی تبدیل کرده و به گذرگاه داده ارسال می کند.

مزایا و معایب روش UART:

عدم وجود پروتکل ارتباطی جالب به نظر می رسد ولی UART به توجه به نحوه عملکردش بسیار مناسب و کاربردی است.

مزایا:

  • استفاده از فقط دو سیم
  • ضرورتی به استفاده از سیگنال کلاک وجود ندارد
  • وجود بیت توازن برای بررسی خطا
  • ساختار بسته های داده با توجه به تنظیمات دو سمت قابل تغییر است
  • در اختیار بودن مستندات و اطلاعات مفید و روش های گسترده استفاده

معایب:

  • اندازه داده های ارسالی حداکثر به 9 بیت محدود شده
  • عدم پشتیبانی از چند master(کنترل کننده) و چند slave(کنترل شونده)
  • میزان baud rate دو سمت حداکثر می توانند 10% با یکدیگر اختلاف داشته باشند.

 

در درس بعدی مبانی پروتکل I2C بررسی خواهد شد.


 

ترجمه شده توسط صنعت بازار | منبع: circuitbasics

خواندن 15818 دفعه

کاربرانی که در این گفتگو شرکت کرده اند

نظرات (16)

  1. شکوفه

من مخابراتی هستم و با این مباحث اصلا آشنا نبودم. خیلی کمکم کرد. ممنون

 
  1. پشتیبانی    شکوفه

ممنون از نظرو دلگرمی شما دوست عزیز
امیدوارم آموزشهای دیگه هم همچنان براتون مفید باشه
موفق باشید

 
  1. حسین

خیلی عالی
ممنون

 
  1. hossein

سپاسگزارم .

 
  1. hossein

سپاسگذارم.

 
  1. مهدی

پس دیگه تو یوزارت نیازی به کلاک نیست؟

 
  1. رضا    مهدی

همونطور از اسمش برمیاد این روش آسنکرون هست پس به کلاک نیازی نداره

 
  1. سامان

ممنون
خیلی خوب توضیح داده شده

 
  1. شمس

UART در واقع همانند I2C و SPI یک پروتکل ارتباطی است که لایه فیزیکی آن قابل پیاده سازی به صورت RS232/Rs485/Rs422 است.پاراگراف سوم را اصلاح کنید.

 
  1. پشتیبان    شمس

سلام دوست من. مقاله از نظر علمی مشکلی نداره و صرفاْ چون ترجمه شده ممکنه با کج‌فهمی‌هایی همراه باشه. پیشنهاد می‌کنم برای توضیحات بیشتر به لینک‌های زیر رجوع کنید. از اینکه نظراتتون رو با ما در میون می‌ذارین بسیار خوشحالیم. موفق و پیروز باشید.

ادامه مطلب
 
  1. امین

خیلی توضیح خوب و به زبان ساده بود ممنونم

 
  1. اکبر

مفید بود<br /><br />با تشکر

 
  1. بطالبلو

[quote name="امین"]با سلام و احترام.با تشکر فراوان از مطلب واقعا عالیتون . یه پیشنهاد اینکه کاش کی بیشتر راجع به بیت های توازن توضیح میدادید.اینکه چگونه با استفاده از اون میشه خطا رو تشخیص داد .با تشکر فراوان از زحماتتون[/quote]<br /><br...

[quote name="امین"]با سلام و احترام.با تشکر فراوان از مطلب واقعا عالیتون . یه پیشنهاد اینکه کاش کی بیشتر راجع به بیت های توازن توضیح میدادید.اینکه چگونه با استفاده از اون میشه خطا رو تشخیص داد .با تشکر فراوان از زحماتتون[/quote]<br /><br />با سلام<br />در این روش یک بیت توازن به داده اضافه می شود و مقدار بیت توازن به گونه ای مقداردهی می شود که تعداد بیت های 1 زوج و یا فرد باشند و تعداد 1 ها در گیرنده نیز بررسی می شوند که در صورت اشتباه بودن به معنای رخ دادن خطا در داده است. بیت توازن به دو روش پیاده سازی می شود: توازن زوج و توازن فرد<br />برای محاسبه بیت توازن زوج، باید حاصل XOR بیت‌های ورودی را محاسبه کرد.<br />برای محاسبه بیت توازن فرد، باید حاصل XNOR بیت‌های ورودی را محاسبه کرد.<br />ممنون از نظر موثرتون

ادامه مطلب
 
هیچ نظری در اینجا وجود ندارد
بارگذاری بیشتر ...

نظر خود را اضافه کنید.

ارسال نظر بعنوان یک مهمان
پیوست ها (0 / 3)
مکان خود را به اشتراک بگذارید
عبارت تصویر زیر را بازنویسی کنید. واضح نیست؟

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

ما را دنبال کنید:

Copyright © 2017-2018 | Sanatbazar.com