ارتباط سریال USART

ارتباط سریال USART در AVR

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

۱) موازی (parallel): در روش موازی، اطلاعات n بیتی در n خط انتقال داده می شود.

۲) سریال (serial): در روش سریال، اطلاعات در یک یا دو خط پشت سر هم ارسال می گردد.

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

انواع تبادل سریال

۱) ارسال و دریافت اطلاعات سریال به صورت سنکرون یا همزمان (USRT): در این روش دیتای مورد نظر بر روی یک خط همراه با یک خط کلاک همزمان کننده ارسال می شود و گیرنده نیز می تواند دیتا را بر روی یک خط توسط کلاک همزمان کننده که از طرف فرستنده ارسال می شود، دریافت نماید. به طور مثال اطلاعاتی که Keyboard یا Mouse کامپیوتر به خروجی ارسال می کنند به همین روش می باشد. میکرو کنترلرهای AVR در روش سنکرون می توانند به صورت چند پردازنده ای به شکل Master و Slave کار نمایند.

۲)  ارسال و دریافت اطلاعات سریال به صورت آسنکرون یا غیر همزمان (UART): در این روش دیتای مورد نظر بر روی یک خط ارسال (TXD) یا یک خط دریافت (RXD) منتقل می شود و به همراه دیتا، کلاکی ارسال نمی گردد بنابراین به اصطلاح می گوییم فرستنده و گیرنده غیر همزمان عمل می کنند. پس در چنین روشی باید دیتای مورد نظر با قالب بندی خاصی به صورت بیت به بیت با فواصل زمانی تعریف شده برای فرستنده و گیرنده منتقل شود، که به این فواصل زمانی در این نوع ارتباط نرخ انتقال داده یا Baud rate گفته می شود. از کاربردهای مهم این روش می توان به تبادل اطلاعات با کامپیوتر و میکروکنترلرهای دیگر و یا تراشه های دیگر اشاره نمود، به طور مثال می توان ارتباط با ماژول GSM ، ماژول GPS ، ماژول فرستده و گیرنده RF و… را از کاربردهای مهم این روش برشمرد.

به طور کلی سه روش برای انتقال وجود دارد:

۱) یک طرفه: در این روش اطلاعات فقط در یک جهت انجام میگیرد (فقط ارسال می شود).

۲) نیمه دو طرفه: در این روش اطلاعات در هر دو جهت ولی در زمان مشخص ارسال یا دریافت می شود.

۳) دو طرفه: در این روش اطلاعات در یک زمان می تواند هم دریافت شود هم ارسال.

ارتباط سریال در AVR

Baud Rate:

واحد ارتباط سریال USART دارای یک تولید کننده داخلی جهت ایجاد نرخ انتقال داده در حالت آسنکرون و حالت سنکرون در مو Master می باشد که این کانتر ۱۲ بیتی و پایین شمار بوده است. این شمارنده کلاک خود را از کلاک سیستم تامین می کند، هر بار که محتوای شمارنده به صفر می رسد یک کلاک ایجاد می گردد و محتوای سخت افزاری از رجیستر UBRR بارگذاری مجدد شده که با توجه به مد عملکرد ارتباط سریال این کلاک می تواند بر ۲ ، ۸ و ۱۶ تقسیم شود.

برای محاسبه نرخ انتقال و بدست آوردن عدد مورد نظر در رجیستر UBRR ار جدول زیر استفاده نمایید.

ارتباط سریال در AVR

البته در زمان استفاده از CodeWizard تنظیمات مربوط به رجیسترهای ارتباط USART و همچنین Baud Rate با توجه به کریستال تعیین شده توسط CodeWizard انجام خواهد گرفت.

بیت شروع یا Start:

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

بیت Data:

بیت داده، اطلاعات اصلی را منتقل می کند و می تواند بین ۵ تا ۹ بیت متغیر باشد . انتخاب تعداد این بیت ها با کاربر است و باید در فرستنده و گیرنده به صورت یکسان تنظیم شود .

بیت پایان یا Stop:

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

بیت توازن یا Parity:

زمانی که در قالب کاراکتر دریافتی خطای توازن رخ دهد، این بیت یک خواهد شد، موقع مقدار دهی به رجیستر UCSRA این بیت را می بایست صفر کرد. استفاده از این بیت اجباری نبوده و در صورت استفاده می تواند در آشکارسازی خطا کمک کند.

فیسبوک توییتر گوگل + لینکداین تلگرام واتس اپ کلوب

پاسخی بگذارید

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