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

Ένα απλό σεμινάριο για το CANBUS: 8 βήματα
Ένα απλό σεμινάριο για το CANBUS: 8 βήματα

Βίντεο: Ένα απλό σεμινάριο για το CANBUS: 8 βήματα

Βίντεο: Ένα απλό σεμινάριο για το CANBUS: 8 βήματα
Βίντεο: Dropshipping σε 8 βήματα 2024, Ιούλιος
Anonim
Ένα απλό σεμινάριο για το CANBUS
Ένα απλό σεμινάριο για το CANBUS

Σπουδάζω CAN για τρεις εβδομάδες και τώρα ολοκλήρωσα ορισμένες αιτήσεις για να επικυρώσω τα μαθησιακά μου αποτελέσματα. Σε αυτό το σεμινάριο, θα μάθετε πώς να χρησιμοποιείτε το Arduino για την εφαρμογή της επικοινωνίας CANBUS. Εάν έχετε οποιεσδήποτε προτάσεις, καλώς ήλθατε να αφήσετε ένα μήνυμα.

Προμήθειες:

Σκεύη, εξαρτήματα:

  • Maduino Zero CANBUS
  • Μονάδα θερμοκρασίας & υγρασίας DHT11
  • 1.3 "I2C OLED 128x64- Μπλε
  • Καλώδιο DB9 σε DB9 (θηλυκό σε θηλυκό)
  • Dupont Line

Λογισμικό:

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 με ταχύτητα επικοινωνίας μικρότερη από 125kbps.

Εδώ εστιάζουμε σε 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 Controller

Ο ελεγκτής CAN είναι το βασικό συστατικό του CAN, το οποίο πραγματοποιεί όλες τις λειτουργίες του επιπέδου σύνδεσης δεδομένων στο πρωτόκολλο CAN και μπορεί να επιλύσει αυτόματα το πρωτόκολλο CAN.

MCU

Το MCU είναι υπεύθυνο για τον έλεγχο του κυκλώματος λειτουργίας και του ελεγκτή CAN. Για παράδειγμα, οι παράμετροι του ελεγκτή CAN αρχικοποιούνται όταν ξεκινά ο κόμβος, το πλαίσιο CAN διαβάζεται και αποστέλλεται μέσω του ελεγκτή CAN κ.λπ.

Βήμα 2: Σχετικά με τις επικοινωνίες CAN

Όταν ο δίαυλος είναι αδρανής, όλοι οι κόμβοι μπορούν να αρχίσουν να στέλνουν μηνύματα (έλεγχος πολλαπλών βασικών). Ο κόμβος που εισέρχεται πρώτα στο δίαυλο αποκτά το δικαίωμα αποστολής (λειτουργία CSMA/CA). Όταν πολλαπλοί κόμβοι αρχίζουν να στέλνουν ταυτόχρονα, ο κόμβος που στέλνει το μήνυμα αναγνωριστικής προτεραιότητας αποκτά το δικαίωμα αποστολής.

Στο πρωτόκολλο CAN, όλα τα μηνύματα αποστέλλονται σε σταθερή μορφή. Όταν ο δίαυλος είναι αδρανής, όλες οι μονάδες που είναι συνδεδεμένες στο δίαυλο μπορούν να αρχίσουν να στέλνουν νέα μηνύματα. Όταν περισσότερα από δύο κελιά αρχίζουν να στέλνουν μηνύματα ταυτόχρονα, η προτεραιότητα καθορίζεται με βάση το αναγνωριστικό. Το αναγνωριστικό δεν αντιπροσωπεύει τη διεύθυνση προορισμού της αποστολής, αλλά την προτεραιότητα του μηνύματος που έχει πρόσβαση στο δίαυλο. Όταν περισσότερα από δύο κελιά αρχίζουν να στέλνουν μηνύματα ταυτόχρονα, κάθε bit του άτοκου αναγνωριστικού διαιτητεύεται ένα προς ένα. Η μονάδα που κερδίζει τη διαιτησία μπορεί να συνεχίσει να στέλνει μηνύματα και η μονάδα που χάνει τη διαιτησία σταματά αμέσως την αποστολή και λαμβάνει το έργο.

Το δίαυλο CAN είναι ένας τύπος διαύλου μετάδοσης. Αυτό σημαίνει ότι όλοι οι κόμβοι μπορούν να «ακούσουν» όλες τις εκπομπές. όλοι οι κόμβοι θα παραλαμβάνουν πάντα όλη την κίνηση. Το υλικό CAN παρέχει τοπικό φιλτράρισμα έτσι ώστε κάθε κόμβος να μπορεί να αντιδρά μόνο στα ενδιαφέροντα μηνύματα.

Βήμα 3: Πλαίσια

Κουφώματα
Κουφώματα

Οι συσκευές CAN στέλνουν δεδομένα σε όλο το δίκτυο CAN σε πακέτα που ονομάζονται πλαίσια. Το CAN έχει τέσσερις τύπους πλαισίων:

  • Πλαίσιο δεδομένων: ένα πλαίσιο που περιέχει δεδομένα κόμβων για μετάδοση
  • Απομακρυσμένο πλαίσιο: ένα πλαίσιο που ζητά τη μετάδοση ενός συγκεκριμένου αναγνωριστικού
  • Πλαίσιο σφάλματος: ένα πλαίσιο που μεταδίδεται από οποιονδήποτε κόμβο ανιχνεύει σφάλμα
  • Πλαίσιο υπερφόρτωσης: ένα πλαίσιο για την εισαγωγή καθυστέρησης μεταξύ δεδομένων ή απομακρυσμένου πλαισίου

Πλαίσιο δεδομένων

Υπάρχουν δύο τύποι πλαισίων δεδομένων, τα τυπικά και τα εκτεταμένα.

Η έννοια των πεδίων bit του σχήματος είναι:

  • SOF - Το μόνο κυρίαρχο bit έναρξης πλαισίου (SOF) σηματοδοτεί την έναρξη του μηνύματος και χρησιμοποιείται για συγχρονισμό των κόμβων σε ένα δίαυλο μετά από αδράνεια.
  • Αναγνωριστικό-Το τυπικό αναγνωριστικό CAN 11-bit καθορίζει την προτεραιότητα του μηνύματος. Όσο χαμηλότερη είναι η δυαδική τιμή, τόσο μεγαλύτερη είναι η προτεραιότητά της.
  • RTR - Το bit του αιτήματος απομακρυσμένης μετάδοσης (RTR)
  • IDE – Ένα κυρίαρχο bit επέκτασης αναγνωριστικού (IDE) σημαίνει ότι μεταδίδεται ένα τυπικό αναγνωριστικό CAN χωρίς επέκταση.
  • R0 - Επιφυλακτικό bit (για πιθανή χρήση με μελλοντική τυπική τροποποίηση).
  • DLC-Ο κωδικός μήκους δεδομένων 4 bit (DLC) περιέχει τον αριθμό των byte δεδομένων που μεταδίδονται.
  • Δεδομένα - Ενδέχεται να μεταδοθούν έως και 64 bit δεδομένων εφαρμογής.
  • CRC-Ο κυκλικός έλεγχος πλεονασμού 16 bit (15 bits plus delimiter) (CRC) περιέχει το άθροισμα ελέγχου (αριθμός των bit που μεταδόθηκαν) των δεδομένων της προηγούμενης εφαρμογής για ανίχνευση σφαλμάτων.
  • Το ACK – ACK είναι 2 bits, το ένα είναι το bit αναγνώρισης και το δεύτερο είναι οριοθέτης.
  • EOF-Αυτό το τελικό πλαίσιο (EOF), 7-bit πεδίο σηματοδοτεί το τέλος ενός CAN καρέ (μήνυμα) και απενεργοποιεί την πλήρωση bit, υποδεικνύοντας ένα σφάλμα γεμίσματος όταν είναι κυρίαρχο. Όταν εμφανίζονται διαδοχικά 5 bits του ίδιου λογικού επιπέδου κατά τη διάρκεια της κανονικής λειτουργίας, ένα κομμάτι του αντίθετου λογικού επιπέδου εισάγεται στα δεδομένα.
  • IFS-Αυτός ο χώρος 7-bit interframe (IFS) περιέχει το χρόνο που απαιτείται από τον ελεγκτή για να μετακινήσει ένα σωστά ληφθέν πλαίσιο στην κατάλληλη θέση του σε μια περιοχή buffer μηνυμάτων.

Διαιτησία

Στην κατάσταση αδράνειας του διαύλου, η μονάδα που αρχίζει να στέλνει το μήνυμα παίρνει το δικαίωμα αποστολής. Όταν πολλαπλές μονάδες αρχίζουν να στέλνουν ταυτόχρονα, κάθε μονάδα αποστολής ξεκινά στο πρώτο bit του τμήματος διαιτησίας. Η μονάδα με τον μεγαλύτερο αριθμό κυρίαρχων επιπέδων συνεχούς εξόδου μπορεί να συνεχίσει να στέλνει.

Βήμα 4: Ταχύτητα και απόσταση

Ταχύτητα και Απόσταση
Ταχύτητα και Απόσταση

Το δίαυλο CAN είναι ένας δίαυλος που συνδέει πολλές μονάδες ταυτόχρονα. Θεωρητικά δεν υπάρχει όριο στο συνολικό αριθμό μονάδων που μπορούν να συνδεθούν. Στην πράξη, ωστόσο, ο αριθμός των μονάδων που μπορούν να συνδεθούν περιορίζεται από τη χρονική καθυστέρηση στο δίαυλο και το ηλεκτρικό φορτίο. Μειώστε την ταχύτητα επικοινωνίας, αυξήστε τον αριθμό των μονάδων που μπορούν να συνδεθούν και αυξήστε την ταχύτητα επικοινωνίας, μειώνεται ο αριθμός των μονάδων που μπορούν να συνδεθούν.

Η απόσταση επικοινωνίας σχετίζεται αντιστρόφως με την ταχύτητα επικοινωνίας και όσο μεγαλύτερη είναι η απόσταση επικοινωνίας, τόσο μικρότερη είναι η ταχύτητα επικοινωνίας. Η μεγαλύτερη απόσταση μπορεί να είναι 1χλμ ή περισσότερο, αλλά η ταχύτητα είναι μικρότερη από 40χλμ.

Βήμα 5: Υλικό

Σκεύη, εξαρτήματα
Σκεύη, εξαρτήματα

Η μονάδα Maduino Zero CAN-BUS είναι ένα εργαλείο που αναπτύχθηκε από την Makerfabs για επικοινωνία CANbus-βασίζεται στο Arduino, με τον ελεγκτή CAN και τον πομποδέκτη CAN, για τη δημιουργία μιας έτοιμης προς χρήση θύρας CAN-bus.

  • Το 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 ------ ΔΕΔΟΜΕΝΑ

Η σύνδεση μεταξύ 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) που απαιτείται για την εγκατάσταση.
  • Επιλέξτε εργαλεία -> Board -> Board Manager, αναζητήστε "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 σε άλλο module.

Βήμα 8: Εμφάνιση

προβολή
προβολή
προβολή
προβολή

Στην οθόνη θα εμφανιστεί η ενεργοποίηση των δύο μονάδων, η θερμοκρασία και η υγρασία.

Συνιστάται: