תצורת USART מיקרו-בקר (Atmel 8) תקשורת טורית

נסה את הכלי שלנו לביטול בעיות





מיקרו-בקר הוא מכשיר בקרה המכיל מספר ציוד היקפי כמו RAM, ROM TIMERS, תקשורת נתונים סדרתית וכו ', אשר נדרשים לביצוע כמה משימות שהוגדרו מראש. כַּיוֹם, סוג מתקדם של מיקרו-בקרים משמשים במגוון רחב של יישומים לפי יכולתם וכדאיותם לבצע כמה משימות רצויות והבקרים הללו כוללים 8051, מיקרו-בקר AVR ו- PIC . במאמר זה, אנו הולכים ללמוד על מיקרו-בקר משפחתי AVR מתקדם ותכנותו .

מיקרו בקר AVR

ה- AVR הוא סוג של מכשיר שליטה המיוצר על ידי תאגיד Atmel בשנת 1996. ה- AVR אינו עומד בדבר, זה רק שם. ה- AVR מיקרו-בקרים מורכבים מארכיטקטורת הרווארד ולכן המכשיר פועל במהירות רבה עם מספר מופחת של הוראות ברמת המכונה (RISC). מיקרו-בקרי ה- AVR מורכבים מתכונות מיוחדות בהשוואה למיקרו-בקר אחר כגון מצבי שינה 6, ADC מובנה, מתנד פנימי ותקשורת נתונים טורית וכו '. מיקרו בקרי AVR זמינים בתצורות שונות של 8 סיביות, 16 סיביות ו- 32 סיביות לביצוע פעולות שונות.




מיקרו בקר AVR

מיקרו בקר AVR

תקשורת נתונים סדרתית של USART במיקרו בקר AVR

ה- USART מייצג מקלט ומשדר סינכרוני ואסינכרוני אוניברסלי. זוהי תקשורת סדרתית של שני פרוטוקולים. פרוטוקול זה משמש להעברה וקבלת הנתונים קצת אחר ביט ביחס לפולסי שעון על חוט יחיד. ה מיקרו בקר AVR בעל שני פינים: TXD ו- RXD, המשמשים במיוחד להעברה וקבלת הנתונים באופן סדרתי. כל מיקרו-בקר AVR מורכב מפרוטוקול USART עם תכונות משלו.



תקשורת USART במיקרו בקר AVR

תקשורת USART במיקרו בקר AVR

התכונות העיקריות של AVR USART

  • פרוטוקול USART תומך בפרוטוקול דופלקס מלא.
  • זה מייצר קצב שידור ברזולוציה גבוהה.
  • הוא תומך בהעברת סיביות נתונים סדרתיות מ -5 עד 9 והוא מורכב משני סיביות עצירה.

תצורת פין USART

ה- USART של AVR מורכב משלושה סיכות:


  • RXD: סיכת מקלט USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: סיכת משדר של USART (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: סיכת שעון USART (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

דרכי פעולה

מיקרו-בקר ה- AVR של פרוטוקול USART פועל בשלושה מצבים שהם:

  • מצב רגיל אסינכרוני
  • מצב מהיר כפול אסינכרוני
  • מצב סינכרוני
דרכי פעולה

דרכי פעולה

מצב רגיל אסינכרוני

במצב תקשורת זה, הנתונים מועברים ומתקבלים קצת אחר ביט ללא פעימות שעון על ידי קצב השידור המוגדר מראש שנקבע על ידי רישום ה- UBBR.

מצב מהיר כפול אסינכרוני

במצב תקשורת זה, הנתונים המועברים בקצב שידור כפול נקבעים על ידי רישום ה- UBBR ומגדירים סיביות U2X בפנקס ה- UCSRA. זהו מצב מהיר לתקשורת סינכרונית להעברה וקבלת הנתונים במהירות. משתמשים במערכת זו כאשר נדרשות הגדרות קצב שידור מדויקות ושעון מערכת.

מצב סינכרוני

במערכת זו, העברת וקבלת הנתונים ביחס לדופק השעון מוגדרת UMSEL = 1 במרשם UCSRC.

תצורת USART במיקרו-בקר AVR

ניתן להגדיר את USART באמצעות חמישה רושמים כגון שלושה מרשמי בקרה , רישום נתונים אחד ומרשם בחירת קצב שידור, כגון UDR, UCSRA, UCSRB, UCSRC ו- UBRR.

7 שלבים לחיבור התוכנית

שלב 1: חשב וקבע את קצב השידור

קצב השידור של USART / UART נקבע על ידי רשם ה- UBRR. רישום זה משמש להפקת העברת הנתונים במהירות הספציפית. ה- UBRR הוא רישום של 16 סיביות. מכיוון שה- AVR הוא מיקרו-בקר של 8 ביט וכל גודל הרישום שלו הוא 8 ביט. מכאן שכאן רישום ה- UBRR בעל 16 הסיביות מורכב משני רושמים של 8 סיביות כגון UBRR (H), UBRR (L).

הנוסחה של קצב השידור היא

BAUD = כהה / (16 * (UBBR + 1))

הנוסחה של רישום ה- UBRR היא

UBRR = כהה / (16 * (BAUD-1))

התדר של המיקרו-בקר AVR הוא 16MHz = 16000000 בואו נניח את קצב השידור כ- 19200Bps, ואז

UBRR = 16000000 / (16 * (19200-1))

UBRR = 16000000 / (16 * (19200-1))

UBRR = 51.099

בסופו של דבר מצא את קצב השידור

BAUD = 16000000 / (16 * (51 + 1))
UBRR = 19230bps

שלב 2: בחירת מצב נתונים

מצב העברת הנתונים, סיבית התחלה וסיבית עצירה וגודל התווים נקבע על ידי UCSRC של רישום הבקרה והמצב.

בחירת מצב נתונים

בחירת מצב נתונים

שלב 3: בחירת מצב העברת נתונים

המצב הסינכרוני והאסינכרוני נבחר על ידי סיבית ה- UMSEL של רישום מצב הבקרה. אם אנו נותנים UMSEL = 0, אז ה- USART פועל במצב אסינכרוני, אחרת פועל במצב סינכרוני.

בחירת מצב העברת נתונים

בחירת מצב העברת נתונים

שלב 4: התחל ביט ועצור קצת

סיביות ההתחלה וסיביות העצירה הן דרך לשליחה וקבלה של הנתונים באופן סדרתי. באופן כללי כל תהילת נתונים מורכבת מקטע סטטיסט אחד וסיבית עצירה אחת, אך למיקרו-בקר AVR יש סיבית התחלה אחת ושני סיביות עצירה לעיבוד הנתונים. סיבית העצירה הנוספת יכולה להיות שימושית להוספת זמן עיבוד לקבלת תוספת קטנה. זה שימושי במיוחד עבור קצב העברת נתונים גבוה, ואילו מהירות העברת הנתונים גבוהה מאוד, כך שאיננו מקבלים נתונים מתאימים. לפיכך, אנו יכולים להגדיל את זמן העיבוד באמצעות שני סיביות עצירה כדי לקבל את הנתונים המתאימים.

התחל ביט ועצור קצת

התחל ביט ועצור קצת

מספר סיביות העצירה נבחר על ידי סיבית ה- USBS של UCSRC - רישום מצב הבקרה. ה- USBS = 0, לסיבית עצירה אחת ו- USBS = 1, לשני סיביות עצירה.

שלב 5: הגדר את גודל התו

כמו במקרה של מיקרו-בקרים בסיסיים שליחה וקבלת בתים של נתונים (8 סיביות) בכל פעם, בין אם במיקרו בקר AVR, אנו יכולים לבחור פורמט מסגרת נתונים בכל מסגרת על ידי סיבית UCSZ של רישום UCSRC.

פורמט מסגרת נתונים

פורמט מסגרת נתונים

שלב 6: אחסן את הנתונים שהתקבלו

מיקרו-בקר ה- AVR מורכב ממאגר חיץ UDR להעברת וקבלת נתונים. ה- UDR הוא רישום חיץ של 16 סיביות שבו 8 ביטים משמשים לקבלת (RXB) את הנתונים וביטים אחרים משמשים להעברת הנתונים (TXB). העברת רישום מאגר הנתונים תהיה היעד לרישום UDR עבור הנתונים הכתובים על מיקומו. קבלת רישום מאגר נתונים תחזיר את תוכן רישום ה- UDR.

שלב 7: משדר ומקלט מאפשר

הנתונים המועברים והמתקבלים יתאפשרו על ידי סיכות ה- RXC וה- TXC של המיקרו-בקר אשר נקבעים על ידי רישום UCSRA של המיקרו-בקר. סיבית דגל זו שנקבעה על ידי המיקרו-בקר לנתונים מושלמת על ידי קבלה ושדר (TXC = RXC = 1).

הכפל את קצב השידור

אנו יכולים להכפיל את קצב ההעברה של תקשורת ה- USART של ה- AVR מיקרו-בקר מ -16 סיביות ל -8 סיביות ביעילות על ידי U2X - ביט במרשם UCSRA. סיבית זו משפיעה רק על פעולה אסינכרונית. אם נוכל להגדיר סיבית זו (U2X = 1), היא תפחית את קצב השידור מ -16 סיביות ל -8 סיביות ביעילות להכפיל את קצב ההעברה לתקשורת סינכרונית.

זוהי תכונה מתקדמת של מיקרו-בקר AVR לעיבוד מהיר של הנתונים.

תוכנית USART

כל מיקרו-בקר מוגדר מראש עם IDE ספציפי, ועל סמך IDE זה, מיקרו-בקרים מתוכנתים עם C מוטבע או שפת הרכבה. תכנות המיקרו בקר AVR פותח על ידי סטודיו AVR. יתר על כן, אם אתה רוצה מידע נוסף על צעדים לבניית פרויקטים מבוססי מיקרו-בקר , או מידע מפורט בנושא זה, תוכלו ליצור איתנו קשר על ידי תגובה למטה.