SPI לעומת UART: באיזה פרוטוקול כדאי להשתמש?

מבוא

ה-SPI וה-UART משמשים בכל דבר, החל ממיקרו-בקרים פשוטים ועד מורכבים התעשייה צִיוּד. אם אתה מחפש לחבר שני מכשירים, תצטרך לבחור אחד או אחר.

נשווה את SPI ו-UART במאמר זה כדי לעזור לך לקבוע איזה פרוטוקול מתאים לפרויקט שלך.

SPI

SPI

מהו SPI (ממשק היקפי טורי)?

זה קיצור של Serial Peripheral Interface. זהו פרוטוקול תקשורת המאפשר לשני מכשירים לתקשר אחד עם השני.

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

מכיוון ש-SPI הוא פרוטוקול טורי, הוא משתמש רק בחוט (או קו) אחד כדי להעביר נתונים. המשמעות היא שהנתונים הנשלחים דרך החוט נשלחים רק ביט אחד בכל פעם. ברוב המקרים, שידור טורי זה מתרחש מהר מאוד.

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

חוטי SPI

חוטי SPI

חוטי SPI

פרוטוקול זה מאפשר לשני מכשירים לשלוח מידע זה לזה. פרוטוקול SPI מורכב מארבעה חוטים:

מיסו

MISO מייצג master in slave out. זוהי דרך לתקשר בין שני התקני SPI.

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

SS/CS

זה שולט אם המכשיר שאליו מתקשרים נבחר או לא. קו SS/CS הוא אחד מהקווים המשותפים הללו. ניתן להשתמש בו כדי לבחור באיזה מכשיר באוטובוס אתה רוצה לתקשר.

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

SCK

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

אות שעון זה משמש לסנכרון כל האותות האחרים באפיק SPI. בדרך כלל הוא מחובר לפין ייעודי במכשיר הראשי. ה תדר של אות השעון הזה חייב להיות גדול או שווה ל-1 מגה-הרץ.

MOSI

אות ה-MOSI מאפשר למיקרו-בקר במחשב לדעת שעליו לשלוח נתונים לציוד ההיקפי של SPI. לאחר מכן זה יקרא אותו וישלח אותו לציוד ההיקפי שלו.

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

UART

UART

מהו UART (משדר מקלט אסינכרוני אוניברסלי)?

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

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

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

דמיון SPI ו-UART

שניהם משמשים לתקשורת בין מיקרו-בקרים והתקנים היקפיים. שני הפרוטוקולים מבוססים על אותם עקרונות:

תקשורת סדרתית

תקשורת סדרתית

דופלקס תקשורת טורית

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

זה מאפשר גם לפרוטוקולי SPI וגם לפרוטוקולי UART לפעול במהירויות גבוהות יותר מאשר ממשקים טוריים אחרים, מכיוון שהם לא צריכים לחכות לתגובה לפני שליחת אות נוסף.

תקשורת למרחקים קצרים

הן SPI והן UART משמשות לתקשורת למרחקים קצרים. המשמעות היא שהם מעבירים נתונים על פני כמה מטרים, ולא על פני מרחקים ארוכים כמו Ethernet. שניהם משמשים במיקרו-בקרים, שהם מחשבים זעירים שמבצעים משימות כמו שליטה במנועים או חיישנים.

עיבוד נתונים

גם ל-SPI וגם ל-UART יש תפיסה דומה של עיבוד נתונים. שניהם התקני מקלט-משדר המשתמשים בממשק תקשורת טורית כדי לשלוח ולקבל נתונים. ב-SPI המקלט מחובר למיקרו-מעבד ואילו ב-UART הוא מחובר למכשיר היקפי. המיקרו-מעבד יכול לשלוח בתים של נתונים דרך אפיק SPI או קו UART במהירויות גבוהות.

הבדלי SPI ו-UART

הם דומים באופן שהם מאפשרים שליחת נתונים בין מכשירים, אבל יש כמה הבדלים עיקריים ביניהם.

מהירות

SPI משתמש בארבעה חוטי נתונים כדי להעביר נתונים במהירויות גבוהות, בעוד ש-UART משתמש רק בשני, לכן פרוטוקולי SPI יכולים להעביר נתונים למכשיר וממנו הרבה יותר מהר בהשוואה לפרוטוקולי UART.

תעריפי נתונים

SPI שולח ומקבל נתונים במהירות גבוהה של עד 100 מגה-הרץ, בעוד ש-UART שולח ומקבל נתונים במהירות נמוכה בהרבה של עד 20 קילו-ביט לשנייה. משמעות הדבר היא שניתן להשתמש ב-UART עבור יישומים במהירות נמוכה כגון שליחת הודעות טקסט, בעוד SPI מתאים יותר ליישומים במהירות גבוהה כגון שליטה במנועים או התקני חומרה אחרים.

ממשק חוטי

ממשק חוטי

ממשק חוטי

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

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

העברת נתונים

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

UART אינו טוב לתמסורת במהירות גבוהה מכיוון שכל ביט חייב להישלח בנפרד; אין דרך לשלוח מספר ביטים בבת אחת.

יתרונות SPI

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

ספירת אותות/סיכות נמוכה

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

תומך במספר מאסטרים

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

לדוגמה, מכשיר מבוסס SPI יכול לשלוח נתונים למכשיר אחר מבוסס SPI (כגון א תצוגה או חיישן) מבלי לדאוג אם המכשיר השני השלים את המשימה שלו או לא.

שני חוטים לתקשורת

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

הסתגלו לדרישותיו של עבדים שונים

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

חסרונות SPI

בעוד ל-SPI יש יתרונות רבים, כולל היכולת שלו לתמוך במספר מכשירים, יש לו גם כמה חסרונות.

מסובך

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

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

מהירות איטית יותר

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

ממשק חצי דופלקס

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

יתרונות UART

ל-UART מספר יתרונות נוספים על פני ממשקים טוריים אחרים:

אין צורך בשעון

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

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

קל לתפעול

UARTs הם פשוטים להגדרה ולשימוש מכיוון שהם אינם דורשים שום תצורה מעבר לחיבור פין הנתונים לפין ה-I/O המתאים במיקרו-בקר שלך. יש להם גם מעט סיכות, אז אתה יכול לקבל הרבה מהם ב- לוח מעגל בודד מבלי לדאוג לנצל יותר מדי מקום או כּוֹחַ.

סיביות זוגיות לבדיקת שגיאות

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

חסרונות UART

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

גודל מסגרת 9 ביטים בלבד

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

מהירויות העברת נתונים נמוכות

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

הסיבה לכך היא ש-UART משתמש רק בחוט אחד לתקשורת ואינו משתמש בטכניקות כלשהן לתיקון שגיאות.

בשל כך, UART אינו מתאים ליישומים שבהם יש צורך להעביר כמויות גדולות של נתונים במהירות בין שני מכשירים.

לא יכול להשתמש בכמה מערכות מאסטר או עבדים

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

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

SPI נגד UART

SPI נגד UART

סיכום

אז מה פסק הדין? באיזה פרוטוקול אוטובוס כדאי להשתמש? האם זה SPI או UART? ובכן, אין לכך תשובה פשוטה. הבחירה הטובה ביותר תהיה תלויה ככל הנראה בצרכי הפרויקט והיכרות עם הפרוטוקולים הללו. עם זאת, אם יש לך מערכת שכבר משתמשת באחד מהפרוטוקולים הללו, עדיף להישאר איתה כדי לשמור על תקשורת עקבית בין מספר מערכות.

עדכן העדפות קובצי Cookie
גלול למעלה