תוכן עניינים:

מדריך פשוט ל- CANBUS: 8 שלבים
מדריך פשוט ל- CANBUS: 8 שלבים

וִידֵאוֹ: מדריך פשוט ל- CANBUS: 8 שלבים

וִידֵאוֹ: מדריך פשוט ל- CANBUS: 8 שלבים
וִידֵאוֹ: תפסתי אותה על חםםםם!!!!!! 2024, יולי
Anonim
מדריך פשוט ל- CANBUS
מדריך פשוט ל- CANBUS

אני לומד CAN במשך שלושה שבועות, ועכשיו סיימתי כמה יישומים לאימות תוצאות הלמידה שלי. במדריך זה תלמד כיצד להשתמש ב- Arduino ליישום תקשורת CANBUS. אם יש לך הצעות, מוזמן להשאיר הודעה.

אספקה:

חוּמרָה:

  • Maduino Zero CANBUS
  • מודול טמפרטורה ולחות DHT11
  • 1.3 אינץ 'I2C OLED 128x64- כחול
  • כבל DB9 ל- DB9 (נקבה לנקבה)
  • קו דופונט

תוֹכנָה:

Arduino IDE

שלב 1: מהו CANBUS

מהו CANBUS
מהו CANBUS
מהו CANBUS
מהו CANBUS

על CAN

CAN (Controller Area Network) היא רשת תקשורת טורית שיכולה לממש שליטה מבוזרת בזמן אמת. הוא פותח לתעשיית הרכב כדי להחליף את רתמת החיווט המורכבת באוטובוס דו חוטי.

פרוטוקול CAN מגדיר את שכבת קישור הנתונים וחלק מהשכבה הפיזית במודל OSI.

פרוטוקול CAN הוא ISO סטנדרטי עם ISO11898 ו- ISO11519. ISO11898 הוא תקן התקשורת המהיר CAN עם מהירות תקשורת של 125kbps-1Mbps. ISO11519 הוא תקן התקשורת במהירות נמוכה CAN עם מהירות תקשורת של פחות מ -125 kbps.

כאן אנו מתמקדים ב- CAN במהירות גבוהה.

ISO-11898 מתאר כיצד מידע מועבר בין התקנים ברשת ותואם את מודל חיבור המערכות הפתוחות (OSI) המוגדר במונחים של שכבות. התקשורת בפועל בין מכשירים המחוברים על ידי המדיום הפיזי מוגדרת על ידי השכבה הפיזית של המודל

  • כל יחידת CAN המחוברת לאוטובוס יכולה להיקרא צומת. כל יחידות ה- CAN מחוברות לאוטובוס המסתיים בכל קצה עם נגדים של 120 Ω ליצירת רשת. האוטובוס כולל קווי CAN_H ו- CAN_L. בקר CAN קובע את רמת האוטובוס בהתבסס על ההבדל ברמת ההספק בשני החוטים. רמות האוטובוסים מתחלקות לרמות דומיננטיות ורסיסיות, שחייבות להיות אחת מהן. השולח שולח את ההודעה למקלט על ידי שינוי ברמת האוטובוס. כאשר הקו הלוגי "ו" מבוצע באוטובוס, הרמה הדומיננטית היא "0" והרמה הרצסיבית היא "1".
  • במצב הדומיננטי, המתח של CAN_H הוא בערך 3.5V והמתח של CAN_L הוא בערך 1.5V. במצב רצסיבי, המתח של שני הקווים הוא סביב 2.5V.
  • האות הוא דיפרנציאלי ולכן CAN נובעת מחסינות הרעשים החזקה והעמידות בפני תקלות. אות דיפרנציאלי מאוזן מפחית צימוד רעש ומאפשר קצבי איתות גבוהים על פני כבל זוג מעוות. הזרם בכל קו אות שווה אך בכיוון ההפוך וכתוצאה מכך אפקט ביטול שדה שהוא המפתח לפליטת רעש נמוך. השימוש במקלטי דיפרנציאל מאוזנים ובכבלים מפותלים משפר את הדחייה במצב נפוץ וחסינות רעש גבוהה של אוטובוס CAN.

מקלט מסוג CAN

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

בקר CAN

בקר CAN הוא מרכיב הליבה של CAN, שמממש את כל הפונקציות של שכבת קישור הנתונים בפרוטוקול CAN ויכול לפתור פרוטוקול CAN באופן אוטומטי.

MCU

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

שלב 2: אודות תקשורת CAN

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

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

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

שלב 3: מסגרות

מסגרות
מסגרות

התקני CAN שולחים נתונים ברחבי רשת CAN במנות הנקראות פריימים. ל- CAN ארבעה סוגי מסגרות:

  • מסגרת נתונים: מסגרת המכילה נתוני צומת להעברה
  • מסגרת מרוחקת: מסגרת המבקשת העברת מזהה ספציפי
  • מסגרת שגיאה: מסגרת המועברת על ידי כל צומת המזהה שגיאה
  • מסגרת עומס יתר: מסגרת להזרקת עיכוב בין נתונים או למסגרת מרוחקת

מסגרת נתונים

ישנם שני סוגים של מסגרות נתונים, סטנדרטיות ומורחבות.

המשמעות של שדות הסיביות באיור היא:

  • SOF - סיבית ההתחלה היחידה הדומיננטית של מסגרת (SOF) מסמנת את תחילת ההודעה, ומשמשת לסנכרן את הצמתים באוטובוס לאחר שהיא לא פעילה.
  • מזהה-מזהה 11 הסיביות הסטנדרטי מסוג CAN קובע את עדיפות ההודעה. ככל שהערך הבינארי נמוך יותר, כך עדיפותו גבוהה יותר.
  • RTR - ביט הבקשה לשידור מרחוק יחיד (RTR)
  • IDE - סיומת דומיננטית של מזהה יחיד (IDE) פירושה שמשדר מזהה CAN סטנדרטי ללא הרחבה.
  • R0 - סיביות שמורות (לשימוש אפשרי על ידי תיקון תקן עתידי).
  • DLC-קוד אורך הנתונים של 4 סיביות (DLC) מכיל את מספר הבתים של הנתונים המועברים.
  • נתונים - ניתן להעביר עד 64 סיביות של נתוני יישום.
  • CRC-בדיקת היתירות המחזורית של 16 סיביות (15 סיביות פלוס תוחם) מכילה את סכום הביקורת (מספר הביטים המועברים) של נתוני היישום הקודמים לאיתור שגיאות.
  • ACK - ACK הוא 2 סיביות, אחד הוא ביט ההכרה והשני מפריד.
  • EOF-שדה סוף-מסגרת זה (EOF), 7 סיביות, מסמן את סופה של מסגרת CAN (הודעה) ומבטל מילוי סיביות, המציין שגיאת מלית כשהיא דומיננטית. כאשר 5 סיביות של אותה רמת לוגיקה מתרחשות ברצף במהלך פעולה רגילה, מעט מרמת ההגיון ההפוכה נכלל בנתונים.
  • IFS-מרחב מסגרות בין 7 סיביות זה (IFS) מכיל את הזמן הדרוש לבקר להעביר מסגרת שהתקבלה כראוי למיקומה הנכון באזור חיץ הודעות.

בוררות

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

שלב 4: מהירות ומרחק

מהירות ומרחק
מהירות ומרחק

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

מרחק התקשורת קשור הפוך למהירות התקשורת, וככל שמרחק התקשורת רחוק יותר, מהירות התקשורת קטנה יותר. המרחק הארוך יותר יכול להיות 1 ק"מ או יותר, אך המהירות היא פחות מ -40 קמ"ש.

שלב 5: חומרה

חוּמרָה
חוּמרָה

מודול Maduino Zero CAN-BUS הוא כלי שפותח על ידי Makerfabs לתקשורת CANbus-הוא מבוסס על Arduino, עם בקר ה- CAN ומשדר ה- CAN, ליצירת יציאת אוטובוס CAN מוכנה לשימוש.

  • MCP2515 הוא בקר CAN העומד בפני עצמו ומיישם את מפרט ה- CAN. הוא מסוגל לשדר ולקבל נתונים סטנדרטיים ומורחבים ומסגרות מרוחקות.
  • ממשק MAX3051 בין בקר פרוטוקול CAN לבין החוטים הפיזיים של קווי האוטובוס ברשת אזור בקר (CAN). ה- MAX3051 מספק יכולת שידור דיפרנציאלית לאוטובוס ויכולת קבלה דיפרנציאלית לבקר CAN.

שלב 6: חיבור

חיבור
חיבור

חבר את מודול DHT11 למודול Maduino Zero CAN-BUS עם חוטים שישמשו כמכשיר לתמיכה בתקשורת CAN. באופן דומה, חבר את התצוגה למודול כדי לקבל את הנתונים ולהציג אותם.

החיבור בין Maduino Zero CANBUS ל- DHT11:

Maduino Zero CANBUS - DHT11

3v3 ------ VCC GND ------ GND D10 ------ DATA

החיבור בין Maduino Zero CANBUS ל- OLED:

Maduino Zero CANBUS - OLED

3v3 ------ VCC GND ------ GND SCL ------ SCL SDA ------ SDA

השתמש בכבל DB9 לחיבור שני המודולים של Maduino Zero CANBUS.

שלב 7: קוד

ה- MAX3051 משלים את ההמרה של רמות דיפרנציאליות לאותות לוגיות. MCP2515 משלים את פונקציית CAN כגון קידוד ופענוח נתונים. ה- MCU צריך לאתחל את הבקר ולשלוח ולקבל נתונים.

  • Github:
  • לאחר התקנת Arduino, אין חבילה שתתמוך בלוח (Arduino zero) הדרוש להתקנה.
  • בחר כלים -> לוח -> מנהל לוח, חפש "Arduino zero" והתקן "Arduino SAMD Boards".
  • בחר כלים -> לוח -> Arduino Zero (יציאת USB מקורית), בחר כלים -> יציאה -> com …
  • לאחר קבלת התוכנית מ- GitHub, עליך לוודא שכל הקבצים נמצאים בספריית הפרויקטים, המכילה קבצי ספרייה התומכים ב- CANBUS.
  • התקן את ספריית חיישני DHT על ידי Adafruit, המשמשת להנעת ה- DHT11 להשגת טמפרטורה ולחות.
  • השתמש בכתובות שונות כדי לשלוח טמפרטורה ולחות בנפרד בקוד Test_DHT11.ino.

CAN.sendMsgBuf (0x10, 0, stmp1.length (), stmp_send1);

עיכוב (500); CAN.sendMsgBuf (0x11, 0, stmp2.length (), stmp_send2); עיכוב (500);

"0x10" פירושו מזהה ההודעה, "0" פירושו מסגרת סטנדרטית, "stmp1.length ()" פירושו אורך ההודעה, "stmp_send1" הם הנתונים שנשלחו.

  • בקוד Test_OLED.ino, כל ההודעות ב- CANBUS מתקבלות בשאילתה והמידע הנדרש מוצג ב- OLED.
  • העלה את התוכנית Maduino-CANbus-RS485/Test_DHT11_OLED/Test_DHT11/Test_DHT11.ino למודול שהתחבר לחיישן, והעלה את התוכנית Maduino-CANbus RS485/Test_DHT11_OLED/Test_OLED/Test_OLED.ino למודול אחר שהתחבר ל- OLED.

שלב 8: הצג

הופעה
הופעה
הופעה
הופעה

ההפעלה של שני המודולים, טמפרטורה ולחות יוצגו בתצוגה.

מוּמלָץ: