תוכן עניינים:
- אספקה
- שלב 1: מעגל המשדר
- שלב 2: קריאה וכתיבה לאוטובוס CAN
- שלב 3: חיבור צמתים
- שלב 4: הפוך את ה- PCB
- שלב 5: הרחבת הלוח
- שלב 6: הזמינו את ה- PCB שלכם מ- JLCPCB
- שלב 7: קבל את הלוחות שלך
וִידֵאוֹ: ממשק CAN STM32: 7 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
האוטובוס 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
כעת, כאשר מעגל המשדר מחובר ל- 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
בעת ניתוב אותות CAN על לוח PCB, זכור כי CAN הוא אות דיפרנציאלי, ולכן יש להקפיד על הנחיות ניתוב עבור CANH ו- CANL.
שלב 5: הרחבת הלוח
זרק עוד כמה צמתים יחד, הוסף כמה כניסות/יציאות, וחבר את כל סיכות ה- CANH וה- CANL שלהם. שים לב שכל STM32 או מיקרו -בקר אחר דורש שבב MCP2551 משלו; לא ניתן לשתף אותם.
עם זאת, נסה לשמור על ה- PCB שלך קטן יותר מזה שמוצג כאן
שלב 6: הזמינו את ה- PCB שלכם מ- JLCPCB
JLCPCB מציעה שירות מהיר ואיכותי במחירים נוחים במיוחד. קבל 5 לוחות, בכל צבע עם טונות של התאמה אישית, ב -2 $ בלבד! ואם זו ההזמנה הראשונה שלך, קבל 10 לוחות באותו מחיר!
פשוט העלה את הגרברים שלך וקבל הצעת מחיר מיידית! שלח את ההזמנה והלוחות שלך ייבדקו לייצור תוך שעה. לאחר שתשלם, תוכל לצפות ללוחות האיכותיים שלך תוך שלושה ימים!
בדוק את זה כאן
שלב 7: קבל את הלוחות שלך
צעקה ענקית ל- JLCPCB על חסות הפרויקט הזה. JLCPCB (ShenzhenJLC Electronics Co., Ltd.), הוא מפעל האב-טיפוס הגדול ביותר בסין ויצרנית היי-טק המתמחה באב טיפוס מהיר של PCB וייצור PCB בקבוצות קטנות. הם היו אדיבים מספיק כדי לספק ל- UBC Solar את ה- PCB החדש שלנו לרכב המירוץ המונע על ידי השמש שלנו. ביצענו את ההזמנה ביום שישי וקיבלנו את הלוחות ביום רביעי!
מוּמלָץ:
חיישן טביעות אצבע קיבולי ממשק עם Arduino UNO: 7 שלבים
חיישן טביעות אצבע קיבולי ממשק עם Arduino UNO: היי, מה קורה, חבר'ה! אקרש כאן מ- CETech. היום אנו הולכים להוסיף שכבת הגנה לפרויקטים שלנו. אל תדאג, אנחנו לא הולכים למנות שומרי ראש עבור אותו דבר. זה יהיה חיישן טביעות אצבע חמוד ונאה של DFRobot. אז
תחילת העבודה עם ממשק חיישן I2C ?? - ממשק MMA8451 שלך באמצעות ESP32s: 8 שלבים
תחילת העבודה עם ממשק חיישן I2C ?? - ממשק ה- MMA8451 שלך באמצעות ESP32s: במדריך זה, תלמד הכל על איך להתחיל, להתחבר ולהשיג מכשיר I2C (מאיץ) שעובד עם בקר (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
חיישן ADXL335 ממשק ב- Raspberry Pi 4B ב -4 שלבים: 4 שלבים
ממשק חיישן ADXL335 ב- Raspberry Pi 4B בארבעה שלבים: במדריך זה אנו הולכים לחבר חיישן ADXL335 (מד תאוצה) ב- Raspberry Pi 4 עם Shunya O/S
ממשק ממשק קל ליישם -- תצוגת OLED עם ג'ויסטיק ולחצנים: 6 שלבים
ממשק ממשק קל ליישם || תצוגת OLED עם ג'ויסטיק ולחצנים: מודול זה כולל צג OLED עם שני כפתורים, ג'ויסטיק 5 כיוונים ומד תאוצה 3 צירים. זה שימושי בהגדרת ממשק משתמש לפרויקט. היי, מה קורה חבר'ה? אקרש כאן מ- CETech. היום אנו נסתכל על מודול הכל-באחד, אשר
עיצוב תפריט ARDUINO עם ממשק משתמש OLED (ממשק משתמש): 4 שלבים
עיצוב תפריט ARDUINO עם OLED-UI (ממשק משתמש): היי כולם! במדריך זה אנסה להסביר כיצד ליצור עיצוב תפריט ARDUINO באמצעות מסך OLED i2c. הוא ידוע גם בשם ממשק משתמש (ממשק משתמש). הוא משמש לפרויקטים רבים אך הוא חייב להיות מוכר לך ממדפסות תלת מימד :) כאן גם סרטון