Πίνακας περιεχομένων:

Διασύνδεση STM32 CAN: 7 βήματα
Διασύνδεση STM32 CAN: 7 βήματα

Βίντεο: Διασύνδεση STM32 CAN: 7 βήματα

Βίντεο: Διασύνδεση STM32 CAN: 7 βήματα
Βίντεο: STNucleo: MCP2515 CAN BUS πομποδέκτης φροντιστήριο για STM32 (Επικοινωνία με Arduino) 2024, Ιούλιος
Anonim
Διασύνδεση STM32 CAN
Διασύνδεση STM32 CAN

Ο δίαυλος Controller Area Network, ή CAN bus, είναι ένα πολύ αποτελεσματικό πρωτόκολλο επικοινωνίας χάρη στις δυνατότητες υψηλής ταχύτητας, την αξιοπιστία μεγάλου εύρους και την ασυλία θορύβου. Για αυτούς τους λόγους, η επικοινωνία CAN έχει γίνει το πρότυπο στις τεχνολογίες αυτοκινήτων και σε περιβάλλοντα με υψηλό θόρυβο. Οι συσκευές στο δίαυλο CAN ονομάζονται κόμβοι. Όλοι οι κόμβοι στο δίαυλο CAN συνδέονται παράλληλα, πράγμα που σημαίνει ότι κάθε κόμβος είναι συνδεδεμένος με όλους τους άλλους κόμβους του δικτύου. Ένα μεμονωμένο δίαυλο CAN μπορεί να έχει έως 115 κόμβους ταυτόχρονα, ανάλογα με το ρυθμό μετάδοσης μηνύματος, αλλά για τις περισσότερες εφαρμογές, συνιστάται να έχετε έως 32 συσκευές. Συνιστάται επίσης να διατηρείτε το μήκος μεταξύ του πρώτου και του τελευταίου κόμβου σε απόσταση μικρότερη από 40 μέτρα.

Αυτό το βήμα προς βήμα σεμινάριο θα σας δείξει πώς να ρυθμίσετε έναν κόμβο CAN χρησιμοποιώντας τον μικροελεγκτή STM32, συμπεριλαμβανομένου του κυκλώματος και του απλού κωδικού C για ανάγνωση και εγγραφή στο δίαυλο CAN

Προμήθειες

Για κάθε κόμβο CAN:

  • 1x STM32 breakout board (Nucleo, Blue Pill, άλλα)
  • 1x IC πομποδέκτη MCP2551 CAN
  • 1x πυκνωτής 0.1μF
  • 1x αντίσταση 120Ω
  • 1x αντίσταση 1kΩ
  • 1+ αναγνώσιμη είσοδος (κουμπί, διακόπτης, ποτενσιόμετρο κ.λπ.) ή έξοδος (LED, MOSFET, κ.λπ.)
  • 1x υποδοχή Dsub9

Βήμα 1: Το κύκλωμα πομποδεκτών

Το κύκλωμα πομποδεκτών
Το κύκλωμα πομποδεκτών

Για να επικοινωνήσουμε με το δίαυλο CAN, θα χρησιμοποιήσουμε το IC πομποδέκτη MCP2551 CAN. Το IC λειτουργεί ως ενδιάμεσο ζεύγος πομπού/δέκτη για τη σύνδεση του STM32 με το δίαυλο CAN. Το κύκλωμα για τη ρύθμιση αυτού του IC είναι αρκετά απλό, αλλά υπάρχουν μερικά πράγματα που πρέπει να σημειωθούν:

  • Τα CAN_RX (pin 4) και CAN_TX (pin 1) στο τσιπ MCP2551 μπορούν να πάνε μόνο σε συγκεκριμένες ακίδες στο STM32.

    • Στο STM32F1 Nucleo, συνδέστε τη γραμμή RX στο pin PB8 και τη γραμμή TX στο pin PB9.
    • Στο μπλε χάπι STM32F1, συνδέστε το RX στο pin PA11 και το TX στο pin PA12.
    • Λάβετε υπόψη ότι αυτές οι αντιστοιχίσεις pin έχουν εναλλακτικές λύσεις. Ανατρέξτε στα εγχειρίδια μικροελεγκτή για να καθορίσετε ποιες ακίδες είναι ικανές για CAN_RD και CAN_TD
    • Εάν χρησιμοποιείτε Arduino ή έναν πίνακα χωρίς ενσωματωμένο επικοινωνιακό CAN, το τσιπ IC MCP2515 θα απαιτηθεί για τη μετατροπή άλλων πρωτοκόλλων μηνυμάτων σε CAN.
  • Ο ακροδέκτης CANL πρέπει να συνδεθεί με τους άλλους ακροδέκτες CANL των άλλων κόμβων διαύλου. Το ίδιο ισχύει και για τις καρφίτσες CANH.
  • Η αντίσταση 120Ω στις ακίδες CANH και CANL απαιτείται μόνο εάν ο κόμβος είναι τερματικός κόμβος. Αυτό σημαίνει ότι βρίσκεται στο τέλος της καλωδίωσης παράλληλης σύνδεσης. Με άλλα λόγια, το δίαυλο CAN θα πρέπει να έχει μόνο δύο αντιστάσεις 120Ω μέσα του και θα πρέπει να απέχουν το ένα από το άλλο όσο το δυνατόν περισσότερο.
  • Τέλος, η αντίσταση 1kΩ στο RS (ακίδα 8) μπορεί να ανταλλαχθεί με αντίσταση 10kΩ για τον έλεγχο του χρόνου ανόδου/πτώσης των δυαδικών ψηφίων CAN. Ανατρέξτε στο φύλλο δεδομένων τσιπ MCP2551 για περισσότερες λεπτομέρειες.

Βήμα 2: Ανάγνωση και γραφή στο CAN Bus

Ανάγνωση και γραφή στο λεωφορείο CAN
Ανάγνωση και γραφή στο λεωφορείο CAN

Τώρα που το κύκλωμα πομποδέκτη είναι συνδεδεμένο στο STM32, μπορούμε να ξεκινήσουμε να γράφουμε μηνύματα στο δίαυλο CAN. Αυτός ο εκπαιδευτικός οδηγός δεν θα εισέλθει σε βάθος στον κώδικα STM32. Ωστόσο, φροντίστε να ελέγξετε τον κωδικό μας για παραδείγματα εδώ. Η χρήση του STM32 ως κόμβος CAN απαιτεί ένα αρχείο κεφαλίδας CAN. Γράψαμε το δικό μας, το οποίο μπορείτε να βρείτε στο github μας εδώ. Εδώ, θα κάνουμε μια σύντομη επισκόπηση της διαδικασίας ανάγνωσης/εγγραφής.

Για να διαβάσουμε από το δίαυλο CAN, πρέπει πρώτα να γνωρίζουμε το αναγνωριστικό του μηνύματος CAN. Κάθε μήνυμα πρέπει να έχει ένα μοναδικό αναγνωριστικό, με χαμηλότερα αναγνωριστικά να έχουν μεγαλύτερη προτεραιότητα. Το απόσπασμα κώδικα που εμφανίζεται εδώ περιμένει ένα μήνυμα CAN με αναγνωριστικό 0x622. Στο σύστημά μας, εάν το πρώτο bit του 6ου byte είναι υψηλό, τότε θέλουμε να ορίσουμε τον ακροδέκτη A10 ψηλό.

Όταν γράφουμε ένα μήνυμα CAN, πρέπει να θυμόμαστε ότι τα μηνύματα CAN είναι πολλαπλών byte. Κάθε γραπτό μήνυμα πρέπει να έχει αναγνωριστικό και μήκος. Στο δεύτερο απόσπασμα κώδικα που εμφανίζεται, γράφουμε δεδομένα σε κάθε byte και μετά στέλνουμε το μήνυμα (Το ID και οι παράμετροι μήκους καθορίζονται νωρίτερα στον κώδικα).

Βήμα 3: Σύνδεση κόμβων

Σύνδεση κόμβων
Σύνδεση κόμβων

Κατά τη σύνδεση πολλαπλών κόμβων CAN, θα πρέπει να δοθεί ιδιαίτερη προσοχή στο μήκος των καλωδίων. Οι δύο απομακρυσμένοι κόμβοι μπορούν να απέχουν μεταξύ τους έως και 40 μέτρα. Οι μεσαίοι κόμβοι που συνδέονται με το δίαυλο πρέπει να βρίσκονται σε απόσταση 50 εκατοστών από τις κύριες γραμμές λεωφορείων.

Οι συνδέσεις CAN ακολουθούν ένα βιομηχανικό πρότυπο χρήσης σύνδεσης Dsub9 με τη γραμμή CANL στον ακροδέκτη 2 και τη γραμμή CANH στον pin7. Η επιλογή CANGND line μπορεί να συνεχίσει στο pin 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 και στην παραγωγή μικρών παρτίδων PCB. Wereταν αρκετά ευγενικοί για να παρέχουν στην UBC Solar τα νέα μας PCB για το αγωνιστικό μας αυτοκίνητο με ηλιακή ενέργεια. Κάναμε την παραγγελία μας την Παρασκευή και πήραμε τους πίνακες την Τετάρτη!

Συνιστάται: