آموزش کار کردن با ارتباط UART میکروکنترولر

در اين بخش مي‌توانيد آموزش و مثال‌های مرتبط با میکروکنترلرهای AVR را مشاهده بفرمایید

مدیران انجمن: SAMAN, sinaset, شوراي نظارت

ارسال پست
Colonel II
Colonel II
نمایه کاربر
پست: 7011
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9183 بار
سپاس‌های دریافتی: 21042 بار
تماس:

آموزش کار کردن با ارتباط UART میکروکنترولر

پست توسط sinaset » سه شنبه 1 دی 1394, 2:17 pm

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

آموزش کار کردن با ارتباط UART میکروکنترولر


در این تاپیک سعی می کنیم،ارتباط UART (برای میکروکنترولر AVR با نام USART) را اموزش دهیم
 تصویر 
 تصویر 
مقدمه


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

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

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

اگر درون میکروکنترولر واحد Uart نبود.چه اتفاقی می افتاد.؟!


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

به عنوان مثال،یکی از دستور uart که توسط کتابخانه کدویژن پشتیبانی میشود puts می باشد . حال اگر ما بخواهیم متن Hello را برای uart دیگر میکروکنترولر ارسال کنیم ، فقط این دستور ساده را می نویسیم ("puts("Hello و متن به راحتی برای میکروکنترولر دیگر ارسال میشود.

اما اگر سخت افزار uart نبود!، ما باید دست کم 20 تا 30 خط برنامه با حلقه های for و .. و تا حدود پیچیده می نوشتیم. تا دستورات توسط یکی از پایه ها میکروکنترولر ارسال میشد .. !

 تصویر  دیتا 8 بیتی توسط واحد usart به صورت سریالی ارسال میشود  (همانجور که در تصویر بالا می ببینید،بجایی دیتا موازی که سیم زیادی می برد! فقط از طریق یک خط سیم ، بیت ها 0 و 1 پشت سر هم برای گیرنده uart دیگر میکروکنترولر یا ایسی فرستاده میشود) 
انشالله در اینده بحث رو بیشتر باز می کنیم...
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 7011
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9183 بار
سپاس‌های دریافتی: 21042 بار
تماس:

Re: آموزش کار کردن با ارتباط UART میکروکنترولر

پست توسط sinaset » شنبه 10 بهمن 1394, 11:01 am

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



برتری های USART نسبت به دیگر واحدهای ارتباطی
 تصویر  USART بدلیل اینکه ،که تنها با دو پایه می تواند اطلاعات را هم زمان دریافت و ارسال کند،نسبت به دیگر رقبا خودچون SPI و I2C از نظر سادگی برقرار کردن ارتباط، بالاتر می باشد .

در واحدی های دیگری چون SPI و I2C باید همراه با دیتا یک کلاک جداگانه بر روی یک پایه دیگر ایجاد کنیم. که اصطلاحا به چنین مودهایی "سنکرون" گفته میشود(Synchronous)
اما در USART می توان در مد "آسنکرون" هم کار کرد و از این بابت پیچیدگی ها کار کردن با مود "سنکرون" را ندارد.به چنین مودم های که خودشان کلاک هم زمان دارن آسنکرون گفته میشود (ASynchronous)
تفاوت UART با USART
UART مخفف کلمه Universal Asynchronous Receiver Transmitter که به معنی ارسال و دریافت اطلاعات در مد آسنکرون می باشد اما USART مخفف کلمه Universal Synchronous Asynchronous Receiver Transmitter که به معنی ارسال و دریافت اطلاعات در مدهای آسنکرون و سنکرون می باشد.
در واقع USART علاوه بر مود آسنکرون می تواند در مود سنکرون هم کار کند . (ولی در باقی موارد شبیه uart می باشد .

سرعت در UART
(همانجور که در البته پست اول گفتم،برای سادگی کار ما از همان لفظ uart استفاده می کنیم)

البته سرعت در uart قابل تنظیم نیست،اما واحدی به نام Baud rate وجود که به کمک ان می توانید پهنایی داده ارسالی را مشخص کنید .

که در uart از 2400 بیت در ثانیه شروع میشود تا به 250 کیلوبایت در ثانیه می رسید .
 تصویر  *لازم به ذکر است،باید حتما کریستال به پایه میکروکنترولر وصل باشد،وگرنه در زمان بندهای اشکالی پیش می اید و دیتا بدرستی ارسال نمی شود  *در تصویر بالا،میکروکنترولر Atmega328 در فرکانس های مختلف(با کریستال) با سرعت های مختلف مورد ازمایش قرار گرفته است ،که در بعضی سرعت و فرکانس ها،خطاهای به وجود امده که با Erro و به صورت درصد مقابل آنها ذکر شده است.  نقاط ضعف واحد UART   واحد حدود 20 تا 25 ثانت برد ارسال داده هاش است و بیشتر از این به مشکل بر می خورد . برای همین نمی توان از سیم های بزرگ برای انتقال داده از پایه های Rx و Tx استفاده کرد .  کارهای که می توان با uart انجام داد   کمک این میکرو می توانید با ماژول های فرستنده و گیرنده وایرلس ارتباط برقرار کنید،همچنین می توانید به کمک واحد با ایسی واسط کامپیوتر چون RS232 و rs485 و واسط های کامپیوتر و . ارتباط برقرار کنید و کارهای را بهتر انجام دهید(به عنوان مثال موسی یا کیبورد برای سیستم بسازید بعد به کمک uart اطلاعات را به واسط های چون rs232 و .. ارسال کنید تا به زبان قابل فهم برای کامپیوتر ان را تبدیل کند)  uart تا حدودی شبیه USB می باشد ، بدلیل انکه برای ارسال اطلاعات به دو سیم بیشتر نیاز ندارد و برای کارهای حساس و کارهای که نیاز به سیم های کمتر وجود دارد بیشتر مورد استفاده قرار می گیرد .  . 
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

ارسال پست

بازگشت به “آموزش و مثال‌ها AVR”