לדלג לתוכן

UART

מתוך ויקיפדיה, האנציקלופדיה החופשית
רכיב UART מדגם 8250

UART (קרי "יוּ־אַרט"; ראשי תיבות באנגלית של Universal asynchronous receiver-transmitter; בעברית: מקלט־משדר אסינכרוני אוניברסלי) הוא פרוטוקול תקשורת נפוץ לתקשורת טורית א-סינכרונית. מקור השם הוא בשבב אשר מימש את פרוטוקול התקשורת הטורית שנקרא כך. מערכות רבות מממשות את הפרוטוקול כחלק ממעגל משולב או בתוך רכיב מתכנת, ולא עושות יותר שימוש בשבב המקורי, אך השם UART נותר לתיאור מערכות אלו.

מבנה מסגרת

[עריכת קוד מקור | עריכה]

כל זמן שאין שידור נשלח אות גבוה (1), בתחילת שידור המידע נשלח ביט אחד נמוך (0), לאחריו הביטים של המידע, לאחריו ביט הזוגיות האופציונלי ולבסוף ביט סיום גבוה (1).

סיביות התחלה (start), סיום (stop) וזוגיות (parity) מתווספים לסיביות הנתונים (D0 עד Dn)

פרמטרים של הפרוטוקול

[עריכת קוד מקור | עריכה]

הפרוטוקול מאפשר שליטה על מספר פרמטרים, אותם הצדדים צריכים לתאם ביניהם מראש:

  • קצב העברת הנתונים
מסיבות היסטוריות, הקצבים האפשריים (קצבי העברת הסימבולים; קצבי הבאוד) עבור פרוטוקול ה-UART הם 50, 300, 1,200, 2,400, 4,800, 9,600, 14,400, 19,200, 28,800, 57,600 ו-115,200 סיביות לשנייה. כאשר לא משתמשים בבקר UART קנוי, ניתן להשתמש בפרוטוקול עבור כל קצב רצוי, בהתאם למגבלות הפיזיקליות של המעגל עליו הוא ממומש.
  • כמות סיביות המידע בכל מסגרת
5,6,7 או 8 סיביות מידע בכל מסגרת (כלומר בין סימבול ההתחלה לסימבול הסיום).
ניתן להוסיף לכל מסגרת סיבית אשר תקבע את מצב הזוגיות של ביטי המידע במסגרת. אם פרמטר זה הוא even (זוגי) הבקר יוסיף סיבית כך שכמות האחדות במסגרת יהיה זוגי. כאשר פרמטר זה הוא odd (אי-זוגי) תתווסף סיבית כך שכמות האחדות במסגרת יהיה אי-זוגי. כאשר הפרמטר הוא None לא תתווסף סיבית זוגיות למסגרת.
ניתן לקבוע את משך הזמן של שידור סימבול הסיום לאורך של 1, 1.5 או 2 סיביות.

סט הפרמטרים הנפוץ ביותר הוא 8N1 שמשמעותו '8' סיביות מידע, 'N' – ללא סיבית זוגיות, '1' – אורך סיבית הסיום היא (משך הזמן של) סיבית יחידה. על-מנת לקיים תקשורת תקינה על שני הצדדים לכוון לאותו סט של פרמטרים, למשל, 2400-8N1.

קצב העברת הנתונים נטו ניתן לחישוב לפי פרמטרי המערכת. למשל, סט הפרמטרים 8N1, קצב הנתונים הוא ביחס של 4:5 מקצב הסימבולים, עקב 2 סיביות תקורה אשר מתווספות לכל בית של מידע גולמי. ניתן לחשב את קצב הנתונים לפי הנוסחה הבאה:

כאשר:

  • הוא אורך סימבול הסיום
  • הוא קיום סיבית זוגיות (0 אם לא קיימת, 1 אם קיימת)
  • הוא כמות סיביות המידע בכל מסגרת

בקר תקשורת

[עריכת קוד מקור | עריכה]

השבבים שהיו מקובלים בעבר היו מדגם 8250 (8 סיביות) המאפשר קצב נתונים עד 19,200 סל"ש (BPS) ודגם 16450 (16 סיביות). שבבי ה-UART שימשו לכיול שידור או קליטה של קו נתונים. במצב של קליטה הוא דוגם את הקו בקצב גבוה כדי לזהות סיביות נשלחות, ובעת היותו משדר הוא מוסיף סיביות התחלה, סיום וזוגיות לכל תו. שבבי UART חדשים יותר מכילים בתוכם גם מאגר פנימי (Internal Buffer), המאפשר אגירת נתונים טרם פיענוחם ובכך מאפשר להגדיל את קצב העברת הנתונים עד ל-115,200 סל"ש.

השבב החדש הוא מסוג 16550 (16550afn), והוא משמש לממשקי ה-COM וה-LPT של המחשב. שבב זה פתר את הבעיה שהייתה בדחיסת הנתונים בכך שהשתמש בחוצץ המשתמש הפועל בשיטת ה-FIFO, ושמר את הנתונים באוגר מקומי עד שהמעבד התפנה לטפל בהם.

קישורים חיצוניים

[עריכת קוד מקור | עריכה]
ויקישיתוף מדיה וקבצים בנושא UART בוויקישיתוף
  • פרנק דורדה, מדריך לבקר UART (באנגלית)