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

ממשק CAN STM32: 7 שלבים
ממשק CAN STM32: 7 שלבים

וִידֵאוֹ: ממשק CAN STM32: 7 שלבים

וִידֵאוֹ: ממשק CAN STM32: 7 שלבים
וִידֵאוֹ: Полный курс Redux Toolkit + RTK Query для начинающих | Редакс за 2 часа! 2024, נוֹבֶמבֶּר
Anonim
ממשק CAN STM32
ממשק CAN STM32

האוטובוס Controller Area Network, או CAN bus, הוא פרוטוקול תקשורת יעיל מאוד הודות ליכולות המהירות הגבוהה שלו, האמינות לטווח ארוך וחסינות הרעשים. מסיבות אלה, תקשורת CAN הפכה לסטנדרט בטכנולוגיות רכב וסביבות רעש גבוה. התקנים באוטובוס CAN נקראים צמתים. כל הצמתים באפיק CAN מחוברים במקביל, כלומר כל צומת מחובר לכל הצמתים האחרים ברשת. אוטובוס CAN יחיד יכול להכיל עד 115 צמתים בבת אחת, בהתאם לקצב העברת ההודעות, אך עבור רוב היישומים, מומלץ להחזיק עד 32 מכשירים. מומלץ גם לשמור על האורך בין הצומת הראשון והאחרון במרחק של פחות מ -40 מטרים זה מזה.

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

אספקה

עבור כל צומת CAN:

  • 1x לוח פריצת STM32 (Nucleo, Blue Pill, אחרים)
  • 1x מקלט משדר MCP2551 מסוג CAN
  • קבל 0.1µF
  • נגד 120Ω
  • נגד 1kΩ
  • 1+ קלט קריא (כפתור, מתג, פוטנציומטר וכו ') או פלט (LED, MOSFET וכו')
  • 1x מחבר Dsub9

שלב 1: מעגל המשדר

מעגל המשדר
מעגל המשדר

כדי לתקשר עם אוטובוס CAN, נשתמש ב- ICP מקלט MCP2551 CAN. ה- IC פועל כזוג משדרים/מקלט ביניים לחיבור ה- STM32 לאוטובוס CAN. המעגל להקמת IC זה הוא די פשוט, אך יש לשים לב למספר דברים:

  • CAN_RX (סיכה 4) ו- CAN_TX (סיכה 1) בשבב MCP2551 יכולים לעבור רק לסיכות מסוימות ב- STM32.

    • ב- Nucleo STM32F1, חבר את קו RX להצמד PB8 ואת קו TX לסיכה PB9.
    • על הגלולה הכחולה STM32F1, חבר את RX לסיכה PA11 ו- TX לסיכה PA12.
    • שים לב שלקצאות סיכות אלה יש חלופות. עיין במדריכי הבקר למיקרו כדי לקבוע אילו סיכות מסוגלות CAN_RD ו- CAN_TD
    • אם משתמשים בארדואינו או לוח ללא תקשורת CAN מובנית, שבב ה- MCP2515 IC יידרש להמיר פרוטוקולי הודעות אחרים ל- CAN.
  • יש לחבר את סיכת CANL לסיכות CANL האחרות של צמתי האוטובוס האחרים. אותו דבר לגבי סיכות CANH.
  • הנגד 120Ω על פני סיכות CANH ו- CANL נדרש רק אם הצומת הוא צומת מסוף. פירוש הדבר שהוא נמצא בסוף חיווט חיבור מקביל. במילים אחרות, לאוטובוס CAN צריכים להיות שני נגדים של 120Ω בלבד, והם צריכים להיות רחוקים זה מזה ככל האפשר.
  • לבסוף, ניתן להחליף את הנגד 1kΩ ב- RS (סיכה 8) לנגד 10kΩ כדי לשלוט בזמן העלייה/הירידה של סיביות ההודעה CAN. עיין בגיליון הנתונים של שבב MCP2551 לפרטים נוספים.

שלב 2: קריאה וכתיבה לאוטובוס CAN

קריאה וכתיבה לאוטובוס CAN
קריאה וכתיבה לאוטובוס CAN

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

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

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

שלב 3: חיבור צמתים

צמתים מחברים
צמתים מחברים

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

חיבורי CAN עוקבים אחר סטנדרט תעשייתי של שימוש במחבר Dsub9 עם קו CANL בפין 2 וקו CANH בפין 7. האפשרות CANGND יכולה להיכנס לפין 3.

שלב 4: הפוך את ה- PCB

הפוך את ה- PCB
הפוך את ה- PCB

בעת ניתוב אותות CAN על לוח PCB, זכור כי CAN הוא אות דיפרנציאלי, ולכן יש להקפיד על הנחיות ניתוב עבור CANH ו- CANL.

שלב 5: הרחבת הלוח

הרחבת הלוח
הרחבת הלוח

זרק עוד כמה צמתים יחד, הוסף כמה כניסות/יציאות, וחבר את כל סיכות ה- CANH וה- CANL שלהם. שים לב שכל STM32 או מיקרו -בקר אחר דורש שבב MCP2551 משלו; לא ניתן לשתף אותם.

עם זאת, נסה לשמור על ה- PCB שלך קטן יותר מזה שמוצג כאן

שלב 6: הזמינו את ה- PCB שלכם מ- JLCPCB

הזמינו את ה- PCB שלכם מ- JLCPCB
הזמינו את ה- PCB שלכם מ- JLCPCB

JLCPCB מציעה שירות מהיר ואיכותי במחירים נוחים במיוחד. קבל 5 לוחות, בכל צבע עם טונות של התאמה אישית, ב -2 $ בלבד! ואם זו ההזמנה הראשונה שלך, קבל 10 לוחות באותו מחיר!

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

בדוק את זה כאן

שלב 7: קבל את הלוחות שלך

קבל את הלוחות שלך!
קבל את הלוחות שלך!

צעקה ענקית ל- JLCPCB על חסות הפרויקט הזה. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), הוא מפעל האב-טיפוס הגדול ביותר בסין ויצרנית היי-טק המתמחה באב טיפוס מהיר של PCB וייצור PCB בקבוצות קטנות. הם היו אדיבים מספיק כדי לספק ל- UBC Solar את ה- PCB החדש שלנו לרכב המירוץ המונע על ידי השמש שלנו. ביצענו את ההזמנה ביום שישי וקיבלנו את הלוחות ביום רביעי!

מוּמלָץ: