הפיתוח של פרוטוקול התקשורת ®CAN החל בשנת 1983, הוא הוצג באופן רשמי בשנת 1986 והתקני בקר CAN הראשונים יצאו לשוק בשנת 1987. חברת ™Bosch פרסמה את מפרט CAN 2.0 בשנת 1991. פרוטוקול CAN התפתח למפרט בינלאומי בשנת 1993 כאשר התקן 11898-1 פורסם על ידי ארגון ISO עם שדרוגים בשנים 1995 ו-2003. בשנת 2012 הגדירה חברת Bosch את פרוטוקול CAN המשופר המכונה CAN FD. פרוטוקול CAN נוצר עבור רשתות אלקטרוניות המשמשות בכלי רכב. כיום הוא משמש במספר רב של רשתות בתוך כלי רכב לדוגמה בקישור יחידות של הדלתות או בקרי הבלמים, יחידות ספירת הנוסעים ועוד.
המהימנות והיתרונות של תקשורת CAN שהוכחו במהלך 20 השנים האחרונות, היו גורמים חשובים שדחפו תחומי הנדסה אחרים לאמץ את הפרוטוקול הזה במגוון רחב של יישומים. תקשורת CAN מיושמת במטוסים עם חישני מצב טיסה, במערכות ניווט ובמכשירים אחרים בתא הטייס. בנוסף, אפיקי CAN קיימים ביישומים רבים בתחום הטיסה והחלל, החל בניתוח נתונים תוך כדי טיסה ועד מערכות בקרת מנועי המטוסים כגון מערכות הדלק, משאבות ומנועים (מפעילים) קוויים. וגם ביישומים בתחום הרכבות, כגון חשמליות, רכבות תחתיות, רכבות קלות ורכבות למרחקים ארוכים, משולבת תקשורת CAN.
יצרני ציוד רפואי משתמשים בתקשורת CAN בהתקנים רפואיים כברשת משובצת. בתי חולים משתמשים בתקשורת CAN לניהול חדרי ניתוחים שלמים לצורך בקרת תאורה, שולחנות, מצלמות, מכונות לצילומי רנטגן ומיטות של מטופלים, באמצעות מערכות מבוססות CAN. תקשורת CAN משמשת גם ביישומים שאינם תעשייתיים כגון בציוד מעבדה, במצלמות לשימושי ספורט, בדלתות אוטומטיות ואפילו במכונות קפה.
סקירת טכנולוגיית CAN
בכלי רכב מודרניים מותקנות כמה עשרות יחידות בקרה אלקטרוניות (ECU) עבור תת מערכות שונות. בדרך כלל, המעבד המורכב יותר הוא יחידת הבקרה של המנוע שידועה גם בשם מודול בקרת המנוע (ECM) או מודול בקרת מערכת העברת הכוח (powertrain)
(). מעבדים נוספים משמשים עבור תמסורת, כריות אוויר, מערכת למניעת נעילה של הבלמים (ABS), בקרת שיוט, הגה כוח חשמלי (EPS), מערכות קול, הרמת חלונות, נעילת דלתות, כיוונוני מראות ומושבים, מערכות ניהול מצברים וטעינה במכוניות חשמליות והיברידיות ועוד. חלק ממעבדים אלו הם תת מערכות עצמאיות, אבל התקשורת ביניהן חיונית ביותר. תת מערכת יכולה לבקר מנועים (actuators) או לקבל משוב מחיישנים. תקן CAN תוכנן למלא את הצרכים האלו והוא מסייע בהפחתת כמות החיווט בין כל מודולי ECU כפי שאפשר לראות באיור 1.
כל צומת CAN יכול לשדר ולקלוט הודעות, אם כי לא בו-זמנית. הודעה מורכבת בעיקר מחלק מזהה – ID – אשר מזהה את המשמעות והעדיפות של ההודעה ובהמשכה יש עד שמונה בתים של נתונים. תקן CAN המשופר (CAN FD) מרחיב את אורך החלק של הנתונים ל-64 בתים לכל היותר בכל מסגרת. ההודעות משודרות באופן טורי על-גבי האפיק. תבנית האותות המשודרים מקודדת “ללא חזרה לאפס” (NRZ) ונקלטת על ידי כל הצמתים.
רשת תקשורת מבוססת CAN מספקת:
• יכולת פעולה עם ריבוי התקנים שולטים (master): כל צומת CAN רשאי לשלוח הודעה אם האפיק במצב סרק.
• תקשורת שידור: כל ההודעות המשודרות נקלטות על ידי כל הצמתים. בצומת שקולט נעשית החלטה אם ההודעה רלוונטית, או לא, בהתבסס על מדדי סינון לפי קוד זיהוי.
• מנגנונים חכמים לגילוי שגיאות ול”הגבלת” תקלות (fault Confinement) ושידור מחדש של הודעות שגויות: כך מובטחים שלמות ועקביות הנתונים.
• בוררות (arbitration) אפיק לא הרסנית: אם שני צמתי CAN או יותר מבקשים באותו זמן לשדר הודעה, הפרוטוקול מוודא שההודעה עם העדיפות הגבוהה יותר תקבל גישה לאפיק באופן מיידי.
בדרך כלל, ההתקנים המחוברים לרשת CAN הם חיישנים, מנועים (actuators) והתקני בקרה אחרים. התקנים אלו פועלים ביניהם בשיתוף על פני רשת CAN ומחליפים ביניהם פקודות ומצבים רגילים, פקודות למנועים, נתוני חיישנים שנאספו בצומת של חיישן או בקשה למידע לגבי צמתים אחרים שיכולים לאסוף נתונים ברחבי סביבת היישום. התקנים אלו אינם יכולים להיות מחוברים באופן ישיר לאפיק, אלא דרך מעבד מארח מקומי, בקר CAN ומקמ”ש CAN.
עבור מסגרות CAN קלאסיות, אפשר להגיע לקצבים שמגיעים עד 1Mbit/s באורך של קווי רשת של פחות מ-40 מטר. הקטנת קצב הסיביות מאפשרת מרחקי רשת ארוכים יותר (למשל, 500 מטר ב-125kbit/s).התכונה של תקן CAN FD, שנמצא כעת בפרישה, מרחיבה את המהירות של חלק הנתונים עד 8Mbit/s.
תבנית הודעת CAN
התקני CAN שולחים נתונים על פני רשת CAN בחבילות שנקראות מסגרות. דוגמה למסגרת CAN (או הודעה) בתבנית של תקן CAN קלאסי מורחב (Classical CAN Extended) נראית באיור 2 ומתבססת על שדות הסיביות הבאים:
סיבית (Start of Frame – תחילת המסגרת) – מציינת את תחילת ההודעה עם סיבית דומיננטית (אפס לוגי).
זיהוי בוררות – מזהה את ההודעה ומציין את העדיפות שלה: זיהוי רגיל של 11 סיביות או זיהוי מורחב של 29 סיביות.
סיביות בקרה – הסיבית
(Identifier Extension – הרחבת המזהה), הסיבית (Remote Transmission Request – בקשת שידור מרחוק), הסיבית FDF (בחירת FD CAN). הסיבית
(Data Length Code – קוד אורך הנתונים) שדה הנתונים – כולל 0 עד 8 סיביות של נתונים עבור מסגרות קלאסיות של CAN או 0 עד 64 סיביות עבור מסגרות CAN FD.
סיבית (Cyclic Redundancy Check – בדיקת יתירות מחזורית) – כולל את קוד בדיקת היתירות המחזורית וסיבית מגביל נסגני (recessive delimiter). השדה CRC משמש לגילוי שגיאות.
סיבית (Acknowledgment slot אישור) – כל בקר CAN שקולט את ההודעה בצורה נכונה שולח סיב אישור בסוף ההודעה.
לכל צומת ברשת CAN יש אות שעון משל עצמו, ובמהלך שידור נתונים לא יישלח אות שעון כלשהו. הרשת עצמה מוגדרת עבור קצב סיביות מסוים משותף לכל הצמתים. ואולם, כל צומת מגדיר את יחידת הזמן (Time Quantum – TQ) הנגזרת מאות השעון המקומי שלו, שמשמש כיחידת זמן כדי להגדיר את משך זמן הסיביות הנומינלי (Nominal Bit Time) בהתאמה לקצב הסיביות המצופה. הסנכרון מתבצע על ידי חלוקה של כל סיבית של המסגרת למספר מקטעים: סנכרון, התפשטות (propagation), מופע 1 ומופע 2. אפשר להתאים את האורך של כל מקטע בהתבסס על דרישות הרשת וקצב הסיביות. נקודת הדגימה נמצאת בין מקטע מופע 1 לבין מקטע מופע 2. כללי הסנכרון מוגדרים בפירוט בתקן פרוטוקול CAN. באיור 3 נראה תזמון סיביות CAN לדוגמה עם 10 יחידות זמן לכל סיבית CAN.
בקר FlexCAN של CAN
איור 4 מתאר את FlexCAN, יחידת IP של בקר CAN, אשר משמשת כאן כדוגמה. המדובר במימוש ספרתי של כל המשאבים הנדרשים, ליצירת ממשק של מקמ”ש CAN אל המעבד המארח.
יחידת המשנה של מנוע הפרוטוקול (PE) מקבלת הודעות CAN מממשק מקמ”ש CAN בתבנית טורית. מנוע פרוטוקול מבצע את אימות ההודעה בהתאם לחוקי פרוטוקול CAN, מבקר את תזמון סיביות CAN הן עבור תהליך הקליטה והן עבור תהליך השידור, מגלה שגיאות שנמצאות בשדות הסיביות השונים ומפיק לגביהם אותות, למשל, שגיאות דחיסת סיביות (bit stuff error), שגיאות צורה, שגיאות CRC, שגיאות אישור (ACK) במהלך קליטה ושגיאות של סיביות במהלך שידור. הוא מפענח את הקידוד של שדות הסיביות השונים שבהודעת CAN ומעביר את חלקי ההודעה ליחידת המשנה של ממשק מארח הבקר (CHI). כמו כן, הוא מקבל את חלקי ההודעות ממשק CHI, מחבר את ההודעה השלמה ושולח אותה באופן טורי אל מקמ”ש CAN, תוך כדי ציות לתבנית ההודעה הנכונה. זיכרון RAM המקומי מאורגן בכמה מבני נתונים מסוימים המכונים “תיבות דואר” (MB), כל אחד מהם מורכב מממספר קבוע של בתים לאחסון סיביות זיהוי (ID), כמה סיביות בקרה, חותמת זמן ובתי נתונים. אפשר לקבוע את הקונפיגורציה של כל “תיבת דואר” כתיבת דואר לקליטה – RxMB – או כתיבת דואר לשידור – TxMB.
יחידת המשנה CHI בודקת את כל ההודעות הנכנסות על השוואת סיביות הזיהוי שלהן עם סיביות הזיהוי שבמוקד העניין אשר ממוקמת בתיבות RxMB. כל “תיבות הדואר” שמוגדרות בקונפיגורציה כתיבות RxMB עוברות סריקה וכאשר הזיהוי (ID) תואם לזיהוי של הודעה נקלטת, ההודעה מאוחסנת בתיבת RxMB הנבחרת לצורך עיבודה בהמשך על ידי המעבד המארח. ממשק CHI סורק באופן מחזורי גם את רשימת תיבות TxMB המוגדרות בקונפיגורציה לשידור, על מנת לאתר את זיהוי ID עם העדיפות הגבוהה ביותר לשידור ברשת CAN ולהעביר את התוכן של תיבת TxMB המתאימה ליחידת המשנה – מנוע PE. ממשק CHI מממש בנוסף את ממשק האפיק אל המעבד המארח ומקבל מידע בקרה מהמחשב המארח (קונפיגורציה של זמן סיבית CAN, סיביות בקרה עבור תהליכים פנימיים וכיו”ב). הוא מחולל גם פסיקות למחשב המארח עם התרחשות מוצלחת של קליטת הודעה או שידור הודעה ומדווח על מצב העיבוד ועל מצב השגיאות במהלך התקשורת.
CAN ביישומי האינטרנט
של הדברים
האינטרנט של הדברים הוא רשת של התקנים שמעבירים בקרה ונתונים דרך רשת האינטרנט. התקנים אלו מכילים יכולות עיבוד משובץ כדי לפעול הדדית עם מצבים פנימיים או עם הסביבה החיצונית. לארכיטקטורה זו יש פוטנציאל לאפשר ניטור ו/או בקרה מרחוק של התקנים המחוברים ביניהם במערכת מורכבת.
האינטרנט של הדברים מחבר מקומות חדשים כמו למשל רצפות ייצור, רשתות אספקת אנרגיה, מתקנים רפואיים ומערכות הסעה ותובלה אל רשת האינטרנט, ולכן אפשר לשלוט בכל המקומות האלו מכל מקום. המשמעות של הקישוריות היא יותר נתונים שנאספים מאתרים רבים יותר, עם דרכים נוספות להגדיל את היעילות ולשפר את הבטיחות ואת האבטחה. עצמים, בעלי חיים או אנשים מקבלים סימני זיהוי ייחודיים ונוצרת יכולת להעביר באופן אוטומטי נתונים דרך הרשת, מבלי להידרש לפעילות הדדית מאדם לאדם או מאדם למחשב. דבר יכול להיות אדם שבו מושתלת מערכת ניטור לב, בעל חיים בחווה עם משיב בשבב מושתל, כלי רכב שיש בו חיישנים מובנים שמתריעים בפני הנהג על לחץ אוויר נמוך בצמיג או כל עצם טבעי או מלאכותי שאפשר להקצות לו כתובת IP ולספק לו יכולת להעביר נתונים דרך רשת. עד כה, האינטרנט של הדברים היה מקושר באופן הדוק לתקשורת מכונה למכונה (M2M) במתקני ייצור, ובמתקני אספקת חשמל, דלק וגז.
ההתפתחות של האינטרנט של הדברים מביאה את הרישות אל סוגים חדשים של התקנים ולמקומות חדשים. בסביבות שבהן שוררים תנאים קיצוניים של מזג אוויר וטמפרטורה, יש צורך שהרשתות יחברו אנשים ודברים באופן אמין ומאובטח. רשתות אלו חייבות גם לספק קישוריות חלקה בהתקנים שיש בהם מגבלות של גודל, משקל וצריכת הספק בכל מקום ובכל תנאי.
במובן זה, השימוש בפרוטוקולי תקשורת מוכרים היטב, עבור רשתות אלחוטיות וקוויות ביישומים של האינטרנט של הדברים הופך להיות דרישה חשובה. פרוטוקול CAN הוא כיום פתרון רישות קווי בשל ונפוץ בשימוש. העמידות והמהימנות שלו הן תכונות חשובות עבור האינטרנט של הדברים. בקרי CAN המבוססים על מפרט CAN הקיים נקלטו במקור לשימוש בפעולה רציפה והם כל הזמן יוצרים תקשורת באופן קרוב מאוד לרוחב הפס המרבי של האפיק. הצומת מקבל אספקת מתח כל הזמן או שהוא ממתג לכיבוי, דרך האפיק. מצד שני, יישומי IoT יכולים להציג תקשורת דלילה בין צומתי רשת מרובים כאשר צריכת ההספק יכולה להפוך להיות דרישת קדם חשובה. הסעיף הבא מציג תכונה חדשה שנוספה לבקר CAN קיים, על מנת לאפשר גמישות נוספת בחיסכון באנרגיה תוך שמירה על התקשורת במצב פעיל על פני הרשת.
תכונת התעוררות משופרת
איור 5 מציג התאמה שמומשה בבקר CAN מסוג FlexCAN המקורי, שבה נוספה לו תכונה חדשה, המכונה ‘רישות מדומה’ (PN – pretended networking) לצורך התעוררות (wake up) ממצב של צריכת הספק נמוכה עם קבלת הודעה מסוימת. יחידת המשנה מנוע הפרוטוקול הורחבה כך שתכלול פונקציונליות נוספת להתאמה של הודעה, כאשר רוב המשאבים של יחידת ECU ויחידת המשנה CHI נמצאות במצב של צריכת הספק נמוכה, כלומר כאשר אות השעון שלהן ממותג להפחתת הפונקציונליות ולחיסכון בהספק. הפתרונות הראשוניים היו מבוססים על חישה של הפעילות באפיק כדי להתעורר עם כל אירוע ואירוע באפיק באופן לא בררני.
השימוש בטכניקה זו הוביל למצב שכל יחידת ECU התעוררה (עברה למצב פעולה מלא) גם עבור הודעות שלא היו קשורות לפונקציונליות המסוימת שלה, וזמן האתחול הארוך שנדרש להביא את יחידת ECU למצב פעולה מלא מנע את אפשרות הקליטה והעיבוד של ההודעה על ידי המחשב המארח.
הרישות המדומה (PN) מספק גישה שמאפשרת ליישומים המותקנים בצמתים שונים של רשת CAN לשמור את יחידות ECU שלהם במצב של צריכת הספק נמוכה, כל עוד המצב מאפשר זאת. אפשר לעורר כל יחידת ECU לפי בחירה באמצעות הודעת CAN מסוימת שעוברת התאמה ביחידת המשנה PN, מיד עם הפקת הפסיקה המתאימה. החסרון הכרוך בזמן האתחול של יחידת ECU לא קיים. בנוסף, הודעת ההתעוררות נשמרת בתוך מודול CAN, כך שאפשר לזהות את המקור של ההתעוררות, והנתונים המתאימים הופכים להיות זמינים לאחר שיחידת ECU חוזרת לפעולה רגילה.
התוספת של פונקציונליות הרישות המדומה לבקרי CAN הרגילים מאפשרת הקמה של רשת גדולה עם כמה צמתים חכמים (עם חיישנים ועם מנועים קוויים) שאותם אפשר להשאיר במצב המתנה או במצב של צריכת הספק נמוכה, והם יכולים להתעורר בזמן המתאים או על ידי צומת שולט (master) או על ידי כל צומת שיש לו מידע חשוב, על ידי הפקה של הודעות התעוררות בררניות על מנת שישדרו מידע נדרש אל הרשת כולה או כדי שיקלטו פקודות או מידע מסוים מהרשת.
האינטרנט של הדברים מקושר, בדרך כלל, עם רשתות אלחוטיות בזכות היתרונות הפנימיים שלהן שמאפשרים גישה ובקרה מרחוק. ביסוד הקישור הזה עומדת ההנחה שלכל אחד מצומתי החישה או ההפעלה שברשת מוקצית כתובת IP עצמאית של רשת האינטרנט והתקשורת מתקיימת דרך רשת האינטרנט. מודל זה תקף עבור כל מימוש חדש של צומת ורשת. מצד שני, הוא אינו מקל את ההגירה של רשתות קיימות.
טופולוגית החיווט המפושטת ועמידות הפרוטוקול של CAN יכולים להיות שימושיים בכמה מבין היישומים. אפשר לצרף את האינטרנט של הדברים לרשת CAN קיימת באמצעות אחד הצמתים שלה שיכול להיות מצויד בממשק קווי או אלחוטי עבור האינטרנט של הדברים. צומת ממשק זה פועל עם יתר צומתי CAN של היישומים הקיימים וממפה אותם באופן עקיף לסביבת האינטרנט של הדברים.
CAN היא טכנולוגית תקשורת בשלה המשמשת באופן נרחב ביישומי רכב שבהם עמידות, מהימנות ואמינות הן תכונות חשובות. היא משמשת ונבחנת במכוניות ובסביבות אחרות מזה כמעט 30 שנים. אבל היא נמצאת גם בשימוש נרחב במערכות אוטומציה ובקרת תהליכים במפעלים עם מערכי תקשורת ויישומים מוגדרים היטב ואמינים. פרוטוקול CAN משמש עם ריבוי התקנים שולטים (master), כך שכל צומת רשאי ליזום תקשורת באופן עצמאי מהצומת השולט. זיהוי ID מגדיר את סוג ההודעה, לא את כתובת הצומת. הודעות שיש להן עדיפות גבוהה יותר משודרות ראשונות. הודעות ששודרו מגיעות לכל הצמתים ונקלטות רק על ידי אותם הצמתים שמוגדרים בקונפיגורציה לזיהוי ID המסוים של מוקד העניין. יש גילוי של שגיאות תקשורת והן נרשמות ביומן ואפשר לנהל אותן באופן מקומי או גלובלי. הודעות תקולות משודרות באופן אוטומטי פעם נוספת. התנגשויות נתונים מנוהלות באופן אוטומטי על ידי פרוטוקול CAN.
עם תכונת ההתעוררות הסלקטיבית שנוספה באמצעות יכולת הרישות המדומה, כל המאפיינים האלו הופכים את CAN לטכנולוגיה מתאימה לשימוש בתקשורת קווית ביישומי האינטרנט של הדברים.
מסקנות
בקרי CAN בצירוף עם מעבדים מארחים ומקמ”שי אפיקים משמשים באופן נרחב בכמה יישומים בטווח, החל בתחום המקורי של כלי הרכב ומגיעים היום עד לתחומי התעבורה האחרים, התעשייה, הרפואה ומוצרי הצריכה. יישומי IoT מתקדמים יכולים לזכות מהעמידות, המהימנות והאמינות המובנות של CAN עבור רשתות קוויות לחיבור חיישנים חכמים ומנועים קוויים שנתמכים בעיבוד מחשב מארח מקומי.
תכונת הרישות המדומה שנוספה לאחרונה בבקר CAN מסוג FlexCAN מאפשרת להשתמש בפרוטוקול CAN ביישומי האינטרנט של הדברים הקוויים שבהם יש דרישות מחמירות יותר של צריכת הספק נמוכה. תכונה חדשה זו מומשה במשפחת המיקרו בקרים Qorivva® MPC5748G של ®Freescale.