UART (מבוטא "יוּ - אַרט") הוא פרוטוקול תקשורת נפוץ לתקשורת טורית א-סינכרונית. מקור השם באנגלית בראשי תיבות של Universal Asynchronous Receiver Transmitter, ובעברית "מקלט משדר אסינכרוני אוניברסלי" שהתייחס אל השבב אשר מימש את פרוטוקול התקשורת הטורית. מערכות רבות מממשות את הפרוטוקול כחלק ממעגל משולב או בתוך רכיב מתכנת, ולא עושות יותר שימוש בשבב המקורי, אך השם UART נותר לתיאור מערכות אלו.

רכיב UART מדגם 8250

מבנה מסגרת עריכה

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

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

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

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

  • קצב העברת הנתונים
מסיבות היסטוריות, הקצבים האפשריים (קצבי העברת הסימבולים; קצבי ה-באוד) עבור פרוטוקול ה-UART הם 50, 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 57600 ו-115200 סיביות לשנייה. כאשר לא משתמשים בבקר UART קנוי, ניתן להשתמש בפרוטוקול עבור כל קצב רצוי, בהתאם למגבלות הפיזיקליות של המעגל עליו הוא ממומש.
  • כמות סיביות המידע בכל מסגרת
5,6,7 או 8 סיביות מידע בכל מסגרת (כלומר בין סימבול ההתחלה לסימבול הסיום).
ניתן להוסיף לכל מסגרת סיבית אשר תקבע את מצב הזוגיות של ביטי המידע במסגרת. אם פרמטר זה הוא even הבקר יוסיף סיבית כך שכמות האחדות במסגרת יהיה זוגי. כאשר פרמטר זה הוא odd תתווסף סיבית כך שכמות האחדות במסגרת יהיה אי-זוגי. כאשר הפרמטר הוא None לא תתווסף סיבית זוגיות למסגרת.
ניתן לקבוע את משך הזמן של שידור סימבול הסיום לאורך של 1, 1.5 או 2 סיביות.

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

קצב המידע עריכה

קצב העברת הנתונים נטו ניתן לחישוב לפי פרמטרי המערכת. למשל, סט הפרמטרים 8N1, קצב הנתונים הוא ביחס של 8:10 מקצב הסימבולים, עקב 2 סיביות תקורה אשר מתווספות לכל בית של מידע גולמי. ניתן לחשב את קצב הנתונים לפי הנוסחה הבאה: נגדיר:   אורך סימבול הסיום;   קיום סיבית זוגיות (0 אם לא קיימת, 1 אם קיימת); ו  כמות סיביות המידע בכל מסגרת. קצב המידע נתון על ידי  .

בקר תקשורת עריכה

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

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

ראו גם עריכה


קישורים חיצוניים עריכה

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