Μπήκατε στο αυτοκίνητό σας, πατήσατε το κουμπί εκκίνησης και ο κινητήρας ήρθε στη ζωή σε χρόνο μηδέν, αλλά πώς αποφάσισε το αυτοκίνητό σας αν έπρεπε να ξεκινήσει ή όχι;
Λοιπόν, για να ξεκινήσει το αυτοκίνητο, πολλές κεραίες και Ηλεκτρονικές Μονάδες Ελέγχου επικοινωνούσαν με το μπρελόκ. Το πρωτόκολλο Ελεγκτή Περιοχής Δικτύου (CAN) διασφαλίζει ότι η επικοινωνία μεταξύ του μπρελόκ, των κεραιών και των ECU πραγματοποιείται κατάλληλα μέσα στο αυτοκίνητό σας.
Τι είναι λοιπόν το πρωτόκολλο CAN και πώς βοηθά τις συσκευές στα συστήματα του οχήματός σας να συνεργάζονται; Λοιπόν, ας μάθουμε.
Τι είναι το πρωτόκολλο CAN και γιατί χρειάζεται;
Στην εποχή μας, τα αυτοκίνητα δεν είχαν πολλά ηλεκτρονικά. Στην πραγματικότητα, αν θέλατε να ξεκινήσετε το όχημά σας στις αρχές του 1900, έπρεπε να βγείτε από το όχημά σας και να βάλετε τη μίζα με το χέρι.
Τα σημερινά αυτοκίνητα, αντίθετα, διαθέτουν αρκετούς ηλεκτρονικούς αισθητήρες και οι ηλεκτρονικές συσκευές παρακολουθούν τα πάντα, από τη θερμοκρασία της καμπίνας μέχρι τις στροφές του στροφαλοφόρου άξονα.
Τούτου λεχθέντος, τα δεδομένα που λαμβάνονται από αυτούς τους αισθητήρες δεν έχουν καμία αξία μέχρι να υποστούν επεξεργασία. Αυτή η επεξεργασία δεδομένων εκτελείται από υπολογιστικές συσκευές γνωστές ως Ηλεκτρονικές Μονάδες Ελέγχου (ECU).
Σε αντίθεση με έναν υπολογιστή με μία μόνο CPU, ένα αυτοκίνητο έχει πολλές ECU, καθεμία από τις οποίες είναι υπεύθυνη για την εκτέλεση μιας συγκεκριμένης εργασίας. Παρόλο που αυτά τα ECU μπορούν να εκτελέσουν αποτελεσματικά μια μεμονωμένη εργασία, πρέπει να συνεργαστούν για να εξασφαλίσουν χαρακτηριστικά όπως ABS και ESC δουλεύει σωστά.
Εξαιτίας αυτού, όλα τα ECU σε ένα αυτοκίνητο πρέπει να συνδεθούν. Θα μπορούσε κανείς να χρησιμοποιήσει μια τοπολογία από σημείο σε σημείο για να πραγματοποιήσει αυτές τις συνδέσεις, όπου κάθε ECU συνδέεται απευθείας με κάθε άλλη ECU. Ωστόσο, αυτή η αρχιτεκτονική θα έκανε το σύστημα πολύπλοκο. Στην πραγματικότητα, ένα σύγχρονο όχημα διαθέτει πάνω από 70 ECU και η σύνδεσή τους με έναν τρόπο ένα προς ένα θα αύξανε το βάρος της καλωδίωσης εκθετικά.
Για να λύσει αυτό το πρόβλημα, η Bosch, μαζί με τη Mercedes-Benz και την Intel, δημιούργησαν το πρωτόκολλο Controller Area Network το 1986. Αυτό το πρωτόκολλο επέτρεψε στα ECU να επικοινωνούν μεταξύ τους χρησιμοποιώντας έναν κοινόχρηστο δίαυλο δεδομένων γνωστό ως δίαυλο CAN.
Πώς λειτουργεί το CAN;
Το πρωτόκολλο CAN είναι μια μεθοδολογία επικοινωνίας που βασίζεται σε μηνύματα που βασίζεται σε ένα σύνολο καλωδίων συνεστραμμένου ζεύγους για τη μετάδοση δεδομένων. Αυτά τα καλώδια είναι γνωστά ως CAN high και CAN low.
Για να ενεργοποιηθεί η μετάδοση δεδομένων σε αυτά τα καλώδια, αλλάζουν τα επίπεδα τάσης τους. Αυτές οι αλλαγές στα επίπεδα τάσης μεταφράζονται στη συνέχεια σε λογικά επίπεδα που επιτρέπουν στις ECU ενός αυτοκινήτου να επικοινωνούν μεταξύ τους.
Για τη μετάδοση της λογικής ενός στο δίαυλο CAN, η τάση και των δύο γραμμών έχει ρυθμιστεί στα 2,5 βολτ. Αυτή η κατάσταση είναι επίσης γνωστή ως υπολειπόμενη κατάσταση, που σημαίνει ότι ο δίαυλος CAN είναι διαθέσιμος για χρήση από οποιαδήποτε ECU.
Αντίθετα, η λογική 0 μεταδίδεται στον δίαυλο CAN όταν η γραμμή υψηλής τάσης CAN είναι σε τάση 3,5 βολτ και η χαμηλή γραμμή CAN είναι στα 1,5 βολτ. Αυτή η κατάσταση του διαύλου είναι επίσης γνωστή ως η κυρίαρχη κατάσταση, η οποία λέει σε κάθε ECU του συστήματος ότι μια άλλη ECU εκπέμπει, επομένως θα πρέπει να περιμένουν μέχρι να τελειώσει η μετάδοση προτού αρχίσουν να μεταδίδουν το μήνυμά τους.
Για να ενεργοποιηθούν αυτές οι αλλαγές τάσης, οι ECU του αυτοκινήτου συνδέονται με τον δίαυλο CAN μέσω ενός πομποδέκτη CAN και ενός ελεγκτή CAN. Ο πομποδέκτης είναι υπεύθυνος για τη μετατροπή των επιπέδων τάσης στο δίαυλο CAN σε επίπεδα που μπορεί να καταλάβει η ECU. Ο ελεγκτής, από την άλλη πλευρά, χρησιμοποιείται για τη διαχείριση των λαμβανόμενων δεδομένων και τη διασφάλιση ότι πληρούνται οι απαιτήσεις του πρωτοκόλλου.
Όλες αυτές οι ECU που είναι συνδεδεμένες στο δίαυλο CAN μπορούν να μεταδώσουν δεδομένα στο στριμμένο καλώδιο, αλλά υπάρχει μια σύλληψη, μόνο το μήνυμα με την υψηλότερη προτεραιότητα μπορεί να μεταδοθεί στον δίαυλο CAN. Για να κατανοήσουμε πώς μια ECU μεταδίδει δεδομένα στον δίαυλο CAN, πρέπει να κατανοήσουμε τη δομή μηνυμάτων του πρωτοκόλλου CAN.
Κατανόηση της δομής μηνυμάτων του πρωτοκόλλου CAN
Κάθε φορά που δύο ECU θέλουν να επικοινωνήσουν, μηνύματα με την παρακάτω δομή μεταδίδονται στον δίαυλο CAN.
Αυτά τα μηνύματα μεταφέρονται αλλάζοντας τα επίπεδα τάσης στο δίαυλο CAN και η σχεδίαση συνεστραμμένου ζεύγους των καλωδίων CAN αποτρέπει την καταστροφή των δεδομένων κατά τη μετάδοση.
- SOF: Συντομογραφία του Start Of Frame, το bit SOF είναι ένα πλαίσιο δεδομένων με κυρίαρχο bit. Αυτό το bit μεταδίδεται από έναν κόμβο όταν θέλει να στείλει δεδομένα στον δίαυλο CAN.
- Αναγνωριστικό: Το αναγνωριστικό στο πρωτόκολλο CAN μπορεί να έχει μέγεθος είτε 11 bit είτε 29 bit. Το μέγεθος του αναγνωριστικού βασίζεται στην έκδοση του πρωτοκόλλου CAN που χρησιμοποιείται. Εάν χρησιμοποιείται η εκτεταμένη έκδοση του CAN, τότε το μέγεθος του αναγνωριστικού είναι 29 bit και σε άλλες περιπτώσεις, το μέγεθος του αναγνωριστικού είναι 11 bit. Ο κύριος στόχος του αναγνωριστικού είναι να προσδιορίσει την προτεραιότητα του μηνύματος.
- RTR: Το αίτημα απομακρυσμένης μετάδοσης ή το RTR χρησιμοποιείται από έναν κόμβο όταν χρειάζεται να ζητηθούν δεδομένα από άλλον κόμβο. Για να γίνει αυτό, ο κόμβος που θέλει τα δεδομένα στέλνει ένα μήνυμα με ένα υπολειπόμενο bit στο πλαίσιο RTR στον προβλεπόμενο κόμβο.
- DLC: Ο κωδικός μήκους δεδομένων καθορίζει το μέγεθος των δεδομένων που μεταδίδονται στο πεδίο δεδομένων.
- Πεδίο δεδομένων: Αυτό το πεδίο περιέχει το ωφέλιμο φορτίο δεδομένων. Το μέγεθος αυτού του ωφέλιμου φορτίου είναι 8 byte, αλλά νεότερα πρωτόκολλα όπως το CAN FD αυξάνουν το μέγεθος αυτού του ωφέλιμου φορτίου στα 64 byte.
- CRC: Συντομογραφία του Cyclic Redundancy Check, το πεδίο CRC είναι ένα πλαίσιο ελέγχου σφαλμάτων. Το ίδιο έχει μέγεθος 15 bit και υπολογίζεται και από τον δέκτη και από τον πομπό. Ο κόμβος μετάδοσης δημιουργεί ένα CRC για τα δεδομένα όταν μεταδίδονται. Κατά τη λήψη των δεδομένων, ο δέκτης υπολογίζει το CRC για τα ληφθέντα δεδομένα. Εάν και τα δύο CRC ταιριάζουν, επιβεβαιώνεται η ακεραιότητα των δεδομένων. Εάν όχι, τα δεδομένα έχουν σφάλματα.
- Πεδίο αναγνώρισης: Μόλις ληφθούν τα δεδομένα και δεν υπάρχουν σφάλματα, ο κόμβος λήψης τροφοδοτεί ένα κυρίαρχο bit στο πλαίσιο επιβεβαίωσης και το στέλνει πίσω στον πομπό. Αυτό λέει στον πομπό ότι τα δεδομένα έχουν ληφθεί και δεν υπάρχουν σφάλματα.
- Τέλος καρέ: Μόλις ολοκληρωθεί η μετάδοση δεδομένων, μεταδίδονται επτά διαδοχικά υπολειπόμενα bit. Αυτό διασφαλίζει ότι όλοι οι κόμβοι γνωρίζουν ότι ένας κόμβος έχει ολοκληρώσει τη μετάδοση δεδομένων και μπορούν να μεταδώσουν δεδομένα στο δίαυλο.
Εκτός από τα παραπάνω bit, το πρωτόκολλο CAN έχει μερικά bit δεσμευμένα για μελλοντική χρήση.
Απλοποίηση CAN μέσω ενός παραδείγματος
Τώρα που έχουμε μια βασική κατανόηση του πώς φαίνεται ένα μήνυμα στο δίαυλο CAN, μπορούμε να καταλάβουμε πώς μεταδίδονται δεδομένα μεταξύ διαφορετικών ECU.
Για απλότητα, ας πούμε ότι το αυτοκίνητό μας έχει 3 ECU: Node 1, Node 2 και Node 3. Από τα 3 ECU, ο Κόμβος 1 και ο Κόμβος 2 θέλουν να επικοινωνήσουν με τον Κόμβο 3.
Ας δούμε πώς το πρωτόκολλο CAN βοηθά στη διασφάλιση της επικοινωνίας σε ένα τέτοιο σενάριο.
- Ανίχνευση της κατάστασης του λεωφορείου: Όλες οι ECU του αυτοκινήτου είναι συνδεδεμένες με το λεωφορείο CAN. Στην περίπτωση του παραδείγματός μας, ο Κόμβος 1 και ο Κόμβος 2 θέλουν να στείλουν δεδομένα σε άλλη ECU. Πριν το κάνετε αυτό, και οι δύο ECU πρέπει να ελέγξουν την κατάσταση του διαύλου CAN. Εάν ο δίαυλος βρίσκεται σε κυρίαρχη κατάσταση, τότε οι ECU δεν μπορούν να μεταδώσουν δεδομένα καθώς ο δίαυλος χρησιμοποιείται. Από την άλλη πλευρά, εάν ο δίαυλος είναι σε υπολειπόμενη κατάσταση, οι ECU μπορούν να μεταδώσουν δεδομένα.
- Αποστολή της έναρξης του πλαισίου: Εάν η διαφορική τάση στο δίαυλο CAN είναι μηδέν, τόσο ο Κόμβος 1 όσο και ο Κόμβος 2 αλλάζουν την κατάσταση του διαύλου σε κυρίαρχη. Για να γίνει αυτό, η τάση του CAN high αυξάνεται στα 3,5 volt και η τάση του CAN low μειώνεται στα 1,5 volt.
- Αποφασίζοντας ποιος κόμβος μπορεί να έχει πρόσβαση στο δίαυλο: Μόλις σταλεί το SOF, και οι δύο κόμβοι ανταγωνίζονται για την πρόσβαση στον δίαυλο CAN. Ο δίαυλος CAN χρησιμοποιεί το πρωτόκολλο Carrier Sense Multiple Access/Collision Detection (CSMA/CD) για να αποφασίσει ποιος κόμβος αποκτά πρόσβαση. Αυτό το πρωτόκολλο συγκρίνει τα αναγνωριστικά που μεταδίδονται και από τους δύο κόμβους και δίνει πρόσβαση σε αυτόν με την υψηλότερη προτεραιότητα.
- Αποστολή στοιχείων: Μόλις ο κόμβος έχει πρόσβαση στο δίαυλο, το πεδίο δεδομένων, μαζί με το CRC, αποστέλλεται στον δέκτη.
- Έλεγχος και τερματισμός της επικοινωνίας: Κατά τη λήψη των δεδομένων, ο Κόμβος 3 ελέγχει το CRC των δεδομένων που λαμβάνονται. Εάν δεν υπάρχουν σφάλματα, ο Κόμβος 3 στέλνει ένα μήνυμα CAN στον κόμβο μετάδοσης με ένα κυρίαρχο bit στο πλαίσιο επιβεβαίωσης μαζί με τον EOF για να τερματίσει την επικοινωνία.
Διαφορετικοί τύποι CAN
Αν και η δομή του μηνύματος που χρησιμοποιείται από το πρωτόκολλο CAN παραμένει η ίδια, η ταχύτητα μετάδοσης δεδομένων και το μέγεθος των bit δεδομένων αλλάζουν για να μεταφέρουν μεγαλύτερα εύρη ζώνης δεδομένων.
Λόγω αυτών των διαφορών, το πρωτόκολλο CAN έχει διαφορετικές εκδόσεις και μια επισκόπηση του δίδεται παρακάτω:
- Υψηλής ταχύτητας CAN: Τα δεδομένα στα καλώδια CAN μεταδίδονται σειριακά και αυτή η μετάδοση μπορεί να γίνει με διαφορετικούς ρυθμούς. Για CAN υψηλής ταχύτητας, αυτή η ταχύτητα είναι 1 Mbps. Λόγω αυτής της υψηλής ταχύτητας μετάδοσης δεδομένων, το δοχείο υψηλής ταχύτητας χρησιμοποιείται για τις ECU, οι οποίες ελέγχουν το σύστημα μετάδοσης κίνησης και τα συστήματα ασφαλείας.
- CAN χαμηλής ταχύτητας: Στην περίπτωση του CAN χαμηλής ταχύτητας, ο ρυθμός μετάδοσης δεδομένων μειώνεται στα 125 kbps. Καθώς η χαμηλή ταχύτητα μπορεί να προσφέρει χαμηλότερους ρυθμούς μετάδοσης δεδομένων, χρησιμοποιείται για τη σύνδεση ECU που διαχειρίζονται την άνεση του επιβάτη, όπως ο κλιματισμός ή το σύστημα ψυχαγωγίας.
- Μπορεί FD: Συντομογραφία του ευέλικτου ρυθμού δεδομένων CAN, το CAN FD είναι η νεότερη έκδοση του πρωτοκόλλου CAN. Αυξάνει το μέγεθος του πλαισίου δεδομένων στα 64 byte και επιτρέπει στις ECU να μεταδίδουν δεδομένα με ταχύτητες που κυμαίνονται από 1 Mbps έως 8 Mbps. Αυτή η ταχύτητα μετάδοσης δεδομένων μπορεί να διαχειρίζεται τα ECU σε πραγματικό χρόνο με βάση τις απαιτήσεις του συστήματος, επιτρέποντας τη μεταφορά δεδομένων σε υψηλότερες ταχύτητες.
Ποιο είναι το μέλλον της αυτοκινητικής επικοινωνίας;
Το πρωτόκολλο CAN επιτρέπει σε πολλά ECU να επικοινωνούν μεταξύ τους. Αυτή η επικοινωνία επιτρέπει χαρακτηριστικά ασφαλείας, όπως ηλεκτρονικό έλεγχο ευστάθειας και προηγμένα συστήματα υποβοήθησης οδηγού, όπως ανίχνευση τυφλού σημείου και προσαρμοστικό cruise control.
Τούτου λεχθέντος, με την εμφάνιση προηγμένων χαρακτηριστικών όπως η αυτόνομη οδήγηση, ο όγκος των δεδομένων που μεταδίδονται από το δίαυλο CAN αυξάνεται εκθετικά. Για να ενεργοποιηθούν αυτές οι δυνατότητες, νεότερες εκδόσεις του πρωτοκόλλου CAN, όπως το CAN FD, κυκλοφορούν στην αγορά.