I2C Bus

Το πρωτόκολλο επικοινωνίας I2C υποστηρίζει σειριακή επικοινωνία και ανταλλαγή δεδομένων μεταξύ συσκευών και είναι κατοχυρωμένο από τη Philips, η οποία και το θέσπισε. Συναντάται επίσης με το όνομα  Two-wire Serial Interface με τα ίδια ακριβώς χαρακτηριστικά.

 

Συγγραφέας: Πορλιδάς Δημήτριος

Βιογραφικό Σημείωμα

electronics@porlidas.gr

Facebook

Linkedin


 

 

Ο δίαυλος I2C αποτελείται από δύο γραμμές. Η μία είναι γραμμή ρολογιού (SCL) και η άλλη γραμμή δεδομένων (SDA). Κάθε bit δεδομένων που μεταφέρεται στη γραμμή SDA συνοδεύεται και από έναν παλμό ρολογιού στη γραμμή SCL.  Η μέγιστη συχνότητα λειτουργίας μπορεί να φτάσει τα 400kHz. Στο δίαυλο μπορούν να συνδεθούν μέχρι 128 συσκευές και να λαμβάνουν ή να αποστέλλουν δεδομένα. Οι μοναδικοί περιορισμοί στον αριθμό των συσκευών που μπορούν να συνδεθούν, προκύπτουν από τη συνολική χωρητικότητα που μπορεί να αποκτήσει ο δίαυλος, η οποία δεν μπορεί να ξεπεράσει τα 400pF και από τον περιορισμό των διευθύνσεων, ο οποίος περιορίζεται στα 7 bits. Οι συσκευές που είναι συνδεδεμένες στο δίαυλο είναι ανοιχτού συλλέκτη και όταν είναι σε αδράνεια βρίσκονται σε κατάσταση υψηλής σύνθετης αντίστασης. Όταν όλες οι συσκευές είναι σε αδράνεια οι δύο γραμμές του διαύλου βρίσκονται σε υψηλή στάθμη, λόγω αντιστάσεων πρόσδεσης που υπάρχουν σε αυτές.

Οι συσκευές που συνδέονται στο δίαυλο μπορούν να χαρακτηριστούν ως κύριοι (master) ή ως σκλάβοι  (slave). Οι masters έχουν την ευθύνη διαχείρισης του διαύλου, ενώ οι slave αποκρίνονται στις αιτήσεις των masters. Όταν ένας master θέλει να στείλει δεδομένα σε κάποια συσκευή, αφού ελέγξει πρώτα ότι ο δίαυλος είναι ελεύθερος, ξεκινάει την αποστολή τοποθετώντας την SDA σε χαμηλή στάθμη και αποστέλλει παλμούς ρολογιού στην SCL. Στη συνέχεια στέλνει τη διεύθυνση του παραλήπτη, η οποία αποτελείται από 7 bits, ένα bit ελέγχου εγγραφής/ανάγνωσης (R/W) και ένα bitαπόκρισης (ACK).

Όταν ο παραλήπτης αναγνωρίσει ότι διευθυνσιοδοτείται, απαντάει τοποθετώντας την SDA σε χαμηλή στάθμη κατά τη διάρκεια του ACK. Η απάντηση αναγνωρίζεται από τον master και στη συνέχεια αυτός στέλνει τα δεδομένα που θέλει, μέχρι να τερματίσει ο ίδιος τη μετάδοση, τοποθετώντας και τις δύο γραμμές σε υψηλή στάθμη. Αν κάποιος παραλήπτης δεν προλαβαίνει να δεχτεί τα δεδομένα που του αποστέλλονται, τοποθετεί την SCL σε χαμηλή στάθμη, μέχρι να είναι έτοιμος να δεχτεί πάλι δεδομένα, οπότε και την απελευθερώνει. Αυτό γίνεται αντιληπτό από τον master και διακόπτει προσωρινά τη μετάδοση. Η προσωρινή διακοπή δεν επηρεάζει την περίοδο του ρολογιού, η οποία συνεχίζει αμετάβλητη, όταν επιτραπεί η αποστολή δεδομένων. Στο σχήμα που ακολουθεί παρουσιάζονται πληροφορίες σχετικά με τη σύνδεση συσκευών στο δίαυλο και τον τρόπο που αποστέλλονται δεδομένα.

 

 

 
 

 

 

© 2014 Πορλιδάς Δημήτριος