רכיב UART מדגם 8250
**UART** (מבוטא "יוּ - אַרט") הוא פרוטוקול תקשורת נפוץ לתקשורת טורית א-סינכרונית. מקור השם באנגלית בראשי תיבות של **U**niversal **A**synchronous **R**eceiver **T**ransmitter, ובעברית "**מקלט משדר אסינכרוני אוניברסלי**" שהתייחס אל השבב אשר מימש את פרוטוקול התקשורת הטורית. מערכות רבות מממשות את הפרוטוקול כחלק ממעגל משולב או בתוך רכיב מתכנת, ולא עושות יותר שימוש בשבב המקורי, אך השם UART נותר לתיאור מערכות אלו.

מבנה מסגרת
----------

פרק זה לוקה בחסר. אנא תרמו לוויקיפדיה והשלימו אותו. 
כל זמן שאין שידור נשלח אות גבוה (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 סיביות תקורה אשר מתווספות לכל בית של מידע גולמי. ניתן לחשב את קצב הנתונים לפי הנוסחה הבאה:
נגדיר: {\displaystyle SB} אורך סימבול הסיום; P קיום סיבית זוגיות (0 אם לא קיימת, 1 אם קיימת); וD כמות סיביות המידע בכל מסגרת. קצב המידע נתון על ידי
{\displaystyle DataRate=BaudRate\cdot {\frac {D}{D+P+SB+1}}}.

בקר תקשורת
----------

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

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

ראו גם
------

* RS-232
* COM (ממשק חומרה)

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

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