שפותחה על ידי פיליפס בשנת 1980, I2C הפך לאחד פרוטוקולי התקשורת הטורית הנפוצה ביותר בתחום האלקטרוניקה. I2C מאפשר תקשורת בין רכיבים אלקטרוניים או IC IC, בין אם הרכיבים נמצאים באותו PCB או מחוברים באמצעות כבל. המאפיין המרכזי של I2C הוא היכולת לקבל מספר עצום של רכיבים על אוטובוס תקשורת יחיד עם רק שני חוטים מה שהופך את I2C מושלם עבור יישומים הדורשים פשטות בעלות נמוכה על מהירות.
סקירה כללית של פרוטוקול I2C
I2C הוא פרוטוקול תקשורת טורי הדורש רק שני קווי אותות שתוכננו לתקשורת בין שבבים ב- PCB. I2C תוכנן במקור עבור תקשורת 100kbps, אבל מצבי העברת נתונים מהירים יותר פותחו במהלך השנים כדי להשיג מהירויות של עד 3.4Mbit. פרוטוקול I2C הוקם כסטנדרט רשמי, המספק תאימות טובה בין יישומי I2C ותאימות טובה לאחור.
אותות I2C
פרוטוקול I2C משתמש רק בשני קווי אות דו-כיווניים כדי לתקשר עם כל ההתקנים באוטובוס I2C. שני האותות המשמשים הם:
- קו נתונים טורי (SDL)
- שעון נתונים סידורי (SDC)
הסיבה I2C יכול להשתמש רק שני אותות לתקשורת עם מספר ציוד היקפי הוא איך התקשורת לאורך האוטובוס מטופל. כל תקשורת I2C מתחילה בכתובת של 7 סיביות (או 10 סיביות) הקוראת את הכתובת של הפריפריה, שאר חלקי התקשורת אמורים לקבל את התקשורת. זה מאפשר התקנים מרובים על האוטובוס I2C לשחק את התפקיד של המכשיר הראשי כמו הצרכים של המערכת להכתיב. כדי למנוע התנגשויות תקשורת, פרוטוקול I2C כולל בוררות והתנגשות יכולות גילוי המאפשרים תקשורת חלקה לאורך האוטובוס.
יתרונות ומגבלות
כפרוטוקול תקשורת, I2C יש הרבה יתרונות זה עושה הוא בחירה טובה עבור יישומי עיצוב מוטבע רבים. I2C מביא את היתרונות הבאים:
- I2C דורש רק שני קווים
- תעבורת נתונים גמישה
- כל התקן באוטובוס ניתן לתיאור באופן עצמאי
- התקנים יש מערכת יחסים פשוטה הורים / עבד
- I2C מסוגל להתמודד עם תקשורת הורים מרובים על ידי מתן גילוי התנגשות בוררות ותקשורת
- תקשורת מרחוק יותר מאשר SPI
עם כל היתרונות הללו, I2C יש גם כמה מגבלות שאולי צריך להיות מתוכנן סביב. המגבלות החשובות ביותר של I2C כוללות:
- מכיוון שרק 7 סיביות (או 10 סיביות) זמינות עבור כתובת מכשיר, התקנים באותו אוטובוס יכולים לשתף את אותה כתובת. התקנים מסוימים מסוגלים להגדיר את החלקים האחרונים של הכתובת, אבל זה עדיין מטיל הגבלה של התקנים על אותו אוטובוס.
- רק כמה מהירויות תקשורת מוגבלות זמינות ומכשירים רבים אינם תומכים במהירויות השידור הגבוהות יותר. תמיכה חלקית עבור כל מהירות באוטובוס נדרשת כדי למנוע התקני איטי יותר לתפוס קטעים חלקיים שיגרמו תקלות מבצעיות.
- האופי המשותף של האוטובוס I2C יכול לגרום לכל האוטובוס התלוי כאשר מכשיר אחד על האוטובוס מפסיק לפעול. רכיבה על אופניים את האוטובוס ניתן להשתמש כדי להפעיל מחדש את האוטובוס ולשחזר המבצע תקין.
- מאחר שהתקנים יכולים להגדיר את מהירות התקשורת שלהם, התקנים מבצעיים איטיים יותר עלולים לעכב את פעולתם של התקני מהירות מהירים יותר.
- I2C שואבת יותר כוח מאשר באוטובוסים תקשורת טורי אחר עקב טופולוגיה פתוח לטמיחה של קווי התקשורת.
- המגבלות של אוטובוס I2C מגבילות בדרך כלל את מספר ההתקנים באוטובוס לסביבות תריסר התקנים.
יישומים
האוטובוס I2C הוא אופציה נהדרת עבור יישומים הדורשים עלות נמוכה ויישום פשוט ולא במהירות גבוהה. לדוגמה, קריאת מעגלים משולבים מסוימים של זיכרון, גישה ל- DACs ו- ADC, קריאת חיישנים , שידור ושימוש בפעולות מכוונות משתמש, קריאת חיישני חומרה והתקשרות עם מיקרו-בקרים מרובים הם שימושים נפוצים בפרוטוקול התקשורת I2C.