انواع تبادل اطلاعات

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

1) موازی  ( parallel)
۲) سری (serial)

در روش موازی اطلاعات n بیتی در خط (پایه) انتقال داده می شود اما در روش سریال اطلاعات می تواند در یک خط یا دو خط ارسال گردد.

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


تبادل (اطلاعات به صورت) موازی :

همون طور که در بالا بیان شد (  n بیتی در خط (پایه)   )   میشه نتیجه گرفت که تو این روش مثلا برا تبادل اطلاعات دومیکروکنترلر avr با هم همانند عکس زیر این دو رو به هم وصل میکنیم
و میکروکنترلر 1 (فرستنده) که مثلا قرار است اطلاعات بفرستد ، PORTC (الزامی ندارد که حتما PORTC باشد ) آن را به صورت خروجی تعریف میکنیم.( چون قرار است اطلاعات ارسال کند.)
و میکروکنترلر 2 (گیرنده) که مثلا قرار است اطلاعات بگیرد ، PORTC (الزامی ندارد که حتما PORTC باشد ) آن را به صورت ورودی تعریف میکنیم.( چون قرار است اطلاعات دریافت کند.)

حالا اگه مثلا  در میکروکنترلر 1  ، PORTC.0=1 شود آنگاه در میکروکنترلر 2 هم  PORTC.0=1 میشود.

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

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

۱) ارسال و دریافت اطلاعات سریال به صورت سنکرون( USRT )

در این روش دیتای مورد نظر بر روی یک خط همراه با یک خط کلاک همزمان کننده ارسال می شود و گیرنده نیز می تواند دیتا را بر روی یک خط توسط کلاک همزمان کننده که از طرف فرستنده ارسال می شود ، دریافت نماید. به طور مثال اطلاعاتی که Keyboard یا Mouse کامپیوتر به خروجی ارسال می کنند به همین روش می باشد.

میکرو کنترلرهای AVR در روش سنکرون می توانند به صورت چند پردازنده ای به شکل Master و Slave  (منظور همون فرستنده گیرنده هستش) کار نمایند.

این ویژگی فقط در بعضی از میکرو کنترلر های AVR حمایت شده است که البته ATmega16 قابلیت تبادل سریال در مد سنکرون را دارد.

2)  ارسال و دریافت اطلاعات سریال به صورت آسنکرون(  UART )

در این روش دیتای مورد نظر بر روی یک خط ارسال ( TXD ) یا یک خط دریافت( RXD ) منتقل می شود و به همراه دیتا کلاکی ارسال نمی گردد بنابراین به اصطلاح می گوییم فرستنده و گیرنده غیر همزمان عمل می کنند.

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

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

به طور مثال می توان ارتباط با ماژول GSM ، ماژول GPS ، ماژول فرستده و گیرنده RF و… را از کاربردهای مهم این روش برشمرد.

3) ارتباط جانبی سریال ( SPI )

4) ارتباط سریال دو سیمه ( TWI )

ریجسترها در ارتباط سریال USART

تو این جلسه که عنوانش  ” ارتباط سریال USART ” هست یه 5 تا ریجستر داریم با نام های UCSRA – UCSRB – UCSRC – UBRRL – UBRRH  که در ادامه توضیح میدمشون.بریم سراغ آموزش avr مون و این بار با موضوع قشنگ و زیبا USART !!!

1) ریجستر UCSRA :

 آموزش avr

بیت 0 : میکروکنترلر avr به حالت ارتباط سریال چند پردازنده ای میرود ؛ مربوط به اتصال چند میکروکنترلر به صورت سریال.

بیت 1 : فقط در حالت آسنکرون کاربرد داره ، در حالت سنکرون باید صفر شود ، با یک کردنش تقسیم فرکانسی (برا تولید نرخ انتقال داده) از 16 به 8 تغیر میکند.

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

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

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

بیت 5 : اگه بافر خالی باشه و آماده دریافت داداه جدید باشه این بیت یک میشه.(موقع مقدار دهی به این ریجستر ، این بیت را باید صفر کرد.)

بت 6 : اگه داده جدیدی برا ارسال موجود نباشه این بیت یک میشه.(موقع مقدار دهی به این ریجستر ، این بیت را باید صفر کرد.)

بیت 7 : زمانی که داده دریافتی در بافر دریافت موجود باشه و این بافر هنوز خونده نشده باشه.

 

2) ریجستر UCSRB :

میکروکنترلر

بیت 0 : اگه فریم داده ارسالی رو 9 بیت انتخاب کنیم ، این بیت به عنوان بیت 9 ام عمل میکند لذا باید این بیت رو یک کنیم.

بیت 1 : اگه فریم داده دریافتی رو 9 بیت انتخاب کنیم ، این بیت به عنوان بیت 9 ام عمل میکند لذا باید این بیت رو یک کنیم.

بیت 2 : این بیت به همراه بیت 1 و 2 ریجستر UCSRC مربوط به تعیین تعداد بیت داده هستش که با توجه به جدول زیر میتونید تعیینش کنید.

بیت 3 : برا تعیین قطعه مورد نظر (مثلا میکرو) به عنوان ارسال کننده داده باید این بیت یک شود.(با این کار عملکرد عادی پایهPORTD.1 قطع شده و نقش دومش یعنی TXD فعال میشه.)

بیت 4 : برا تعیین قطعه مورد نظر (مثلا میکرو) به عنوان دریافت کننده داده باید این بیت یک شود.(با این کار عملکرد عادی پایهPORTD.0 قطع شده و نقش دومش یعنی RXD فعال میشه.)

بیت 5 : با یک کردن این بیت وقفه خالی بودن بافر دریافتی فعال میشه.(البته به شرطی که بافر کلی(یا همون سراسری!) هم فعال باشه)

بت 6 : با یک کردن این بیت وقفه کامل شدن ارسال فعال میشه.(البته به شرطی که بافر کلی(یا همون سراسری!) هم فعال باشه)

بیت 7 : با یک کردن این بیت وقفه کامل شدن دریافت فعال میشه.(البته به شرطی که بافر کلی(یا همون سراسری!) هم فعال باشه)

 

میکروکنترلر avr

 

3) ریجستر UCSRC :

آموزش جامع میکروکنترلر AVR جلسه5

بیت 0 : در مد سنکرون کاربرد دارد.

بیت 1 , 2 : توسط این دو بیت به همراه  بیت 2 ریجستر UCSRB میتوان تعداد بیت داده رو تعیین کرد. که با توجه به جدول بالا میتونید تعیینش کنید.

بیت 3 : تعیین تعداد بیت های STOP  (اگه صفرش کنیم>>یک بیت STOP و اگه یکش کنیم>> دوبیت STOP )

بیت 4 و 5 : تعیین بیت توازن ارسالی توسط ارسال کننده.با توجه به عکس(جدول!) زیر این کار رو کنید.

آموزش جامع میکروکنترلر AVR جلسه5

بیت 6 : انتخاب مد ارتباط سریال ؛ 0»»مد اسنکرون   و   1»»مد سنکرون

بیت 7 : انتخاب دسترسی به یکی از ریجستر های UCSRC یا UBRRH  ، برای دسترسی به UCSRC باید این بیت یک شود.

 

4) ریجستر های  UBRRL و UBRRH :

آموزش avr

آموزش avr

بیت 0 تا 11 : این 12 بیت برا تعیین نرخ انتقال داده استفاده میشوند.(توسط جدول زیر—جدول زیر رو از دیتاشیت مگا16 گرفتم)

روی عکس ها کلید کنید و در اندازه اصلی ببینیدشون

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

 

 

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

 

 آموزش AVR

 

 آموزش AVR