I2C - Ο δίαυλος διασυνδεδεμένων κυκλωμάτων
Ο δίαυλος I2C χρησιμοποιείται πολύ συχνά στον ενσωματωμένο τομέα. Εξηγούμε πώς λειτουργεί και πώς να τον ρυθμίσετε στο Raspberry Pi με ένα παράδειγμα.
Χαρακτηριστικά I2C
Ο δίαυλος διασυνδεδεμένων κυκλωμάτων είναι ένας σύγχρονος σειριακός δίαυλος επικοινωνίας. Η Philips Semiconductors ήταν υπεύθυνη για την εφεύρεσή του το 1982, αλλά η διασύνδεση απέκτησε γρήγορα δημοτικότητα.
Συνήθως χρησιμοποιούμενα συνώνυμα είναι I2C, I2C ή IIC. Η διασύνδεση χρησιμοποιεί μια αρχιτεκτονική ελεγκτή-στόχου και επιτρέπει στον ελεγκτή να επικοινωνεί με έως και 112 συσκευές με δύο μόνο καλώδια.
Ο ελεγκτής μπορεί να προσαρμόσει το ρυθμό μετάδοσης ώστε να ταιριάζει στις ανάγκες του εκάστοτε στόχου. Ως εκ τούτου, το I2C είναι συμβατό με πολλές συσκευές όπως αισθητήρες, συσκευές EEPROM, ρολόγια, οδηγούς κινητήρων και άλλα.
Καλωδίωση
Η καλωδίωση του διαύλου I2C δεν θα μπορούσε πραγματικά να είναι ευκολότερη, αφού χρειάζεστε μόνο δύο καλώδια. Συνδέστε τον ακροδέκτη σειριακού ρολογιού (SCL) του ελεγκτή με τους ακροδέκτες σειριακού ρολογιού των στόχων και συνδέστε επίσης τους ακροδέκτες σειριακών δεδομένων (SDA). Το λογισμικό I2C θα κάνει τα υπόλοιπα.
Εάν πρέπει να τροφοδοτήσετε τη συσκευή I2C με ρεύμα, μπορείτε να χρησιμοποιήσετε τις ακίδες 3V3, 5V και GROUND του Raspberry Pi.
Ορισμένες συσκευές όπως το BME688 Breakout Board διαθέτουν κεφαλίδα I2C, ώστε να μην χρειάζεστε καλώδια για τη σύνδεσή τους.
Επικοινωνία I2C
Ο Διαδικτυακός δίαυλος κυκλωμάτων μπορεί να συνδέσει 128 συσκευές με δύο μόνο καλώδια. Αυτό είναι εφικτό χάρη στην έξυπνη αρχή επικοινωνίας.
Τα καλώδια (SDA και SCL) δεν οδηγούνται ποτέ ενεργά σε υψηλά επίπεδα. Εάν μια συσκευή θέλει να στείλει ένα λογικό 1, αφήνει το καλώδιο ελεύθερο. Για να στείλει ένα λογικό μηδέν τραβάει το καλώδιο στη γείωση.
Ο ελεγκτής ξεκινά την επικοινωνία. Οποιαδήποτε συσκευή στο δίκτυο μπορεί να λειτουργήσει ως ελεγκτής και στόχος.
Το παρακάτω γράφημα δείχνει τα επιμέρους bit.
Για να ξεκινήσει η επικοινωνία, ο ελεγκτής στέλνει ένα Start-bit ακολουθούμενο από τη διεύθυνση I2C του στόχου και τον επιθυμητό τρόπο λειτουργίας (R - Read ή W - Write).
Στην επικοινωνία I2C ο στόχος πρέπει να επιστρέφει ένα ACK-bit κάθε 8 bit (μετά από κάθε byte). Δεδομένου ότι ο χώρος διευθύνσεων είναι συνήθως 7-bit, υπάρχουν 128 (0 έως 127) διευθύνσεις. Οι 16 από αυτές είναι δεσμευμένες. Αυτό αφήνει 112 πιθανές διευθύνσεις για τις συσκευές.
Η διεύθυνση του στόχου και ο τρόπος λειτουργίας είναι ένα byte, οπότε ο στόχος πρέπει να επιστρέψει ένα ACK-bit. Στη συνέχεια, ο ελεγκτής στέλνει τη διεύθυνση καταχωρητή (8-bit), την οποία ο στόχος επιβεβαιώνει και πάλι. Από εκεί και πέρα, η επικοινωνία ανάγνωσης και εγγραφής διαφέρει.
Για την εγγραφή ο ελεγκτής στέλνει τα δεδομένα σε μπλοκ των 8 bit. Ο στόχος επιβεβαιώνει κάθε μπλοκ. Μόλις ο ελεγκτής ολοκληρώσει την εγγραφή, στέλνει το Stop-bit.
Για ανάγνωση ο ελεγκτής στέλνει ξανά το bit Start, ακολουθούμενο από τη διεύθυνση στόχου. Ο στόχος επιβεβαιώνει και αρχίζει να στέλνει τα δεδομένα σε μπλοκ των 8 bit. Αυτή τη φορά ο ελεγκτής πρέπει να επιβεβαιώσει κάθε byte. Για τη διακοπή της ανάγνωσης ο ελεγκτής στέλνει το NACK-bit και τέλος το Stop-bit.
Πλεονεκτήματα, μειονεκτήματα και εφαρμογές
Πλεονεκτήματα
Τα πλεονεκτήματα του διαύλου I2C είναι αρκετά σαφή. Μπορείτε να συνδέσετε 128 συσκευές με μόνο δύο καλώδια και δύο ακίδες η καθεμία. Αυτό είναι πραγματικά ισχυρό. Επιπλέον, έχετε ευέλικτες ταχύτητες. Η ρύθμιση του υλικού θα μπορούσε να είναι πολύ πιο εύκολη. Σε αντίθεση με το SPI, ο ελεγκτής γνωρίζει αν ο στόχος έλαβε σωστά τα δεδομένα.
Μειονεκτήματα
Ο δίαυλος δια-ενσωμάτωσης κυκλωμάτων απαιτεί περισσότερο χώρο και ενέργεια επειδή χρησιμοποιεί αντιστάσεις pull-up. Είναι πιο αργός σε σύγκριση με το SPI. Μπορεί να αντιμετωπίσετε προβλήματα εάν δύο συσκευές χρησιμοποιούν την ίδια διεύθυνση I2C. Η διεύθυνση αποθηκεύεται απευθείας στη συσκευή. Ορισμένες συσκευές σας επιτρέπουν να επιλέξετε μεταξύ δύο πιθανών διευθύνσεων κολλώντας ένα βραχυκυκλωτήρα σε ένα συγκεκριμένο σημείο της συσκευής.
Εφαρμογές
Αν αναζητήσετε Αισθητήρας στο κατάστημά μας θα παρατηρήσετε ότι σχεδόν όλοι οι αισθητήρες που δεν είναι αναλογικοί χρησιμοποιούν τη διεπαφή I2C. Είναι πολύ διαδεδομένη στον ενσωματωμένο χώρο. Υπάρχουν πράγματα όπως η μνήμη I2C. Συχνά οι μικροελεγκτές χρησιμοποιούν το δίαυλο για επικοινωνία. Εκτός από αυτό, πολλοί DACs (Digital Analog Converter) και ADCs (Analog Digital Converter) είναι συμβατές με τη διεπαφή.
I2C στο Raspberry Pi
Το μας βίντεο δείχνει πώς να ρυθμίσετε τον δίαυλο διασυνδεδεμένων κυκλωμάτων στο Raspberry Pi σας.
[...] Επίσης, αν ενδιαφέρεστε να μάθετε περισσότερα για το I2C, δείτε αυτό το άρθρο. [...]
[...] Θέλετε να μάθετε περισσότερα για το I2C; Ελέγξτε το άρθρο μας σχετικά με αυτό εδώ. [...]
[...] I2C - Ο δίαυλος διασυνδεδεμένων κυκλωμάτων [...]
[...] I2C - ο δίαυλος διασυνδεδεμένων κυκλωμάτων [...]
[...] I2C - Ο δίαυλος διασυνδεδεμένων κυκλωμάτων [...]
[...] Όπως εξηγεί ο Naveen, η σύνδεση μεταξύ του Nano και της οθόνης TFT βασίζεται στη σειριακή περιφερειακή διεπαφή (SPI). Εν τω μεταξύ, το joystick και τα κουμπιά συνδέονται μέσω του Inter-Integrated Circuit Bus (I2C). [...]