Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΦΩΤΙΑ ΗΣ Α. ΗΜΗΤΡΗΣ M.Sc. ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ (Σ.Τ.ΕΦ.) ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr
Ασύγχρονη σειριακή επικοινωνία Οι κοινές σειριακές πόρτες, με τις Tx και Rx γραμμές είναι ασύγχρονες (δεν υπάρχει έλεγχος για το πότε στέλνονται δεδομένα, ούτε για το εάν ο πομπός και ο δέκτης λειτουργούν με την ίδια ταχύτητα, Προστίθενται επιπρόσθετα start και stop bits προκειμένου να συγχρονιστεί ο δέκτης για τη λήψη δεδομένων. Και τα δύο μέρη (πομπός και δέκτης) πρέπει να συγχρονιστούν στην ίδια ταχύτητα εκ των προτέρων. Μικρές αποκλίσεις στην ταχύτητα μετάδοσης δεδομένων δε δημιουργούν πρόβλημα, μιας και ο δέκτης «ξανασυγχρονίζεται» στην αρχή κάθε νέου byte. 2
Ασύγχρονη σειριακή επικοινωνία (συν.) Είναι ξεκάθαρο ότι η τιμή 11001010Β δενισούταιμε0x53η. Τα σειριακά πρωτόκολλα επικοινωνίας στέλνουν πολλές φορές το LSB πρώτο. Εάν λοιπόν η τιμή 11001010Β διαβαστεί «ανάποδα», δίνει τον αριθμό 53Η. 3
Ασύγχρονη σειριακή επικοινωνία (συν.) Ο δέκτης δειγματοληπτεί τα δεδομένα σε πολύ συγκεκριμένες χρονικές στιγμές. Εάν αυτό δεν πραγματοποιηθεί τη συγκεκριμένη στιγμή (εκεί που υπάρχουν τα πράσινα βελάκια με τις διάστικτες κάθετες γραμμές), τότε τα δεδομένα θα είναι λανθασμένα κι «άχρηστα». 4
SPI (Serial Peripheral Interface) H σύγχρονη επικοινωνία προϋποθέτει ξεχωριστές γραμμές για τα δεδομένα και για παλμούς ρολογιού (clock), ούτως ώστε να υπάρχει συγχρονισμός μεταξύ του πομπού και του δέκτη των δεδομένων. To SPI είναι ένα πρωτόκολλο επικοινωνίας το οποίο αναπτύχθηκε αρχικά από τη Motorola και υιοθετήθηκε αργότερα κι από άλλες εταιρείες. To Microwire της National Semiconductors είναι πρακτικά το ίδιο με το SPI. Πολλές φορές το SPI ονομάζεται και τετρασύρματος σειριακός δίαυλος (four-wire serial bus). Περιφερειακά που συνήθως συνδέονται με SPI είναι: Real Time Clocks (RTCs), ADCs και DACs, μνήμες ΕEPROM και Flash, αισθητήρες, κ.α. 5
SPI (Serial Peripheral Interface) (συν.) Το clock είναι ένα ταλαντούμενο σήμα, το οποίο ενημερώνει το δέκτη για το πότε θα πρέπει να δειγματοληπτήσει τα bits στη γραμμή των δεδομένων. 6
SPI (Serial Peripheral Interface) (συν.) Η δειγματοληψία των δεδομένων γίνεται είτε στο ανοδικό (0-to-1) είτε στο καθοδικό (1-to-0) άκρο του clock. Η ταχύτητα δεν αποτελεί σημαντική παράμετρο της επικοινωνίας, αν και πάντα ορίζεται στα φύλλα προδιαγραφών η μέγιστη ταχύτητα λειτουργίας. 7
SPI (Serial Peripheral Interface) (συν.) Τα δεδομένα φαίνεται ξεκάθαρα πως υπάρχουν διαθέσιμα ως έξοδος κατά το καθοδικό άκρο του clock (μετάβαση 1-to-0). Τα δεδομένα δειγματοληπτούνται κατά το ανοδικό άκρο του clock (μετάβαση 0-to-1) στη γραμμή SDI. 8
SPI (Serial Peripheral Interface) (συν.) Ένας από τους λόγους για τους οποίους το SPI αποτελεί δημοφιλή διεπαφή έχει να κάνει με το γεγονός ότι το hardware του δέκτη μπορεί να αποτελείται αποκλειστικά και μόνο από έναν απλό καταχωρητή ολίσθησης (shift register). 9
SPI Αμφίδρομη επικοινωνία Μέχρι στιγμής το SPI φαίνεται να είναι μια πολύ καλή λύση για μονόδρομη αποστολή δεδομένων. Τι γίνεται όμως όταν ζητούμενο είναι η αμφίδρομη ανταλλαγή δεδομένων; Μόνο η μία πλευρά παράγει και διανέμει το clock (το σήμα που συνήθως συμβολίζεται ως SCK). 10
SPI Αμφίδρομη επικοινωνία H πλευρά που παράγει το clock αποτελεί τον Master, ενώ η πλευρά που λαμβάνει το clock είναι ο Slave. O έλεγχος του διαύλου γίνεται αποκλειστικά και πάντα από τον Master (σε αντίθεση με το I 2 C) Υπάρχει μόνο ένας Master (συνήθως ένας μικροεπεξεργαστής / μικροελεγκτής) και μπορεί να υπάρχουν περισσότεροι του ενός Slaves. 11
SPI Αμφίδρομη επικοινωνία (συν.) εδομένα από τον Master προς τον Slave γραμμή MOSI (Master Out / Slave In). εδομένα από τον Slave προς τον Master γραμμή MISO (Master In / Slave Out). 12
SPI Αμφίδρομη επικοινωνία (συν.) 13
Φιλοσοφία καταχωρητή ολίσθησης (Shift register) 14
Περιγραφή ολίσθησης δεδομένων με χρήση δύο Shift registers 15
Περιγραφή ολίσθησης δεδομένων με χρήση δύο Shift registers (2) 16
SPI Αμφίδρομη επικοινωνία (συν.) Εφόσον πρόκειται να αποσταλλούν δεδομένα από το Slave προς το Master, o Master θα πρέπει να συνεχίσει να στέλνει συγκεκριμένο αριθμό παλμών ρολογιού. Ο Master θα πρέπει να γνωρίζει εκ των προτέρων τον αριθμό παλμών ρολογιού που θα πρέπει να στείλει, προκειμένου ο Slave να αποστείλει συγκεκριμένα bytes δεδομένων. Αυτή είναι και μια από τις βασικές διαφορές μεταξύ της ασύγχρονης και της σύγχρονης επικοινωνίας, μιας και στην ασύγχρονη επικοινωνία ο αριθμός των δεδομένων που θα αναλλαγούν είναι ακαθόριστος, σε αντίθεση με την σύγχρονη όπου έχουμε συγκεκριμένο αριθμό bytes που ανταλλάσονται. Το SPI προσφέρει full duplex επικοινωνία, δηλαδή μπορεί να στέλνει και να λαμβάνει δεδομένα ταυτόχρονα. 17
Γραμμή Slave Select (SS) 18
Γραμμή Slave Select (SS) Η γραμμή SS (ή CS Chip Select) συνήθως βρίσκεται σε λογικό «1», γεγονός που αποσυνδέει πρακτικά το Slave από το δίαυλο SPI (είναι ένα active low σήμα). Σε έναν καταχωρητή ολίσθησης (shift register) η γραμμή αυτή αντιστοιχεί στην είσοδο Latch, η οποία επιτρέπει τη μεταφορά δεδομένων που έχουν ληφθεί στις γραμμές εξόδου του shift register. 19
Πολλαπλοί Slaves Κάθε Slave απαιτείτηδικήτηςγραμμήss. Προκειμένου να επιλεγεί η επικοινωνία του Master με ένα συγκεκριμένο Slave, θα πρέπει η αντίστοιχη γραμμή SS να πάρει τιμή λογικού «0» και όλες οι υπόλοιπες γραμμές να έχουν τιμή λογικού «1». 20
Πολλαπλοί Slaves (συν.) Σε περίπτωση που δεν υπάρχουν διαθέσιμες πολλές γραμμές εξόδου που να προσφέρουν τα πολλαπλά σήματα SS, μπορεί να χρησιμοποιηθεί αποκωδικοποιητής διευθύνσεων όπως ο 74LS138. Μία ακόμα περίπτωση είναι να είναι συνδεδεμένοι οι Slaves μεταξύ τους, με μια συνδεσμολογία που ονομάζεται daisy-chain (υλοποίηση ενός ευρύτερου Shift register). Στη συνδεσμολογία αυτή η MISO (έξοδος) γραμμή του ενός Slave συνδέεται με την MOSI (είσοδος) του επόμενου. Μία γραμμή SS από τον Master ενεργοποιεί όλους τους Slaves μαζί. Με την ολοκλήρωση της αποστολής των δεδομένων, η γραμμή SS παίρνει τιμή «1», απενεργοποιώντας όλους τους Slaves. 21
Slaves σε daisy-chain configuration 22
Πλεονεκτήματα SPI Είναι ταχύτερο από τις ασύγχρονες σειριακές διεπαφές. Υποστηρίζονται ταχύτητες μεταφοράς δεδομένων μέχρι και 10Mbps. Το hardware του δέκτη μπορεί να είναι ένας απλός καταχωρητής ολίσθησης (shift register). Υποστηρίζει πολλαπλούς Slaves. Υποστηρίζει Full duplex επικοινωνία. Απλότητα hardware διασύνδεσης. 23
Πλεονεκτήματα SPI (συν( συν.) Μικρότερη κατανάλωση ενέργειας σε σχέση με το I 2 C, λόγω των μικρότερων κι απλούστερων κυκλωμάτων (Shift registers). Οι Slaves χρησιμοποιούν το clock του Master, με αποτέλεσμα να μην απαιτούνται κυκλώματα ταλαντωτών με μεγάλη ακρίβεια στη συχνότητα λειτουργίας τους. Τα περισσότερα σήματα (εκτός του SS) μοιράζονται μεταξύ των Slaves. 24
Μειονεκτήματα SPI Απαιτεί περισσότερες γραμμές ή ακροδέκτες (pins) σε σχέση με άλλες διεπαφές ή πρωτόκολλα επικοινωνίας. Η επικοινωνία θα πρέπει να είναι προκαθορισμένη (δε μπορεί να αποσταλλεί τυχαίος αριθμός δεδομένων κατά βούληση). Ο Master ελέγχει πάντα την επικοινωνία (οι Slaves δε μπορούν να επικοινωνήσουν απ ευθείας μεταξύ τους). Συνήθως απαιτούνται ξεχωριστές γραμμές SS για κάθε Slave, γεγονός που προβληματίζει σε περίπτωση χρήσης πολλαπλών Slaves. 25
Μειονεκτήματα SPI (συν.) H επικοινωνία μεταξύ Master και Slave θα πρέπει να γίνει σε μικρή απόσταση, λόγω της υψηλής ταχύτητας μετάδοσης δεδομένων, που έχει σαν αποτέλεσμα την αύξηση της αντίστασης των γραμμών, καθιστώντας την ανταλλαγή δεδομένων ανέφικτη. Το παραπάνω πρακτικά σημαίνει ότι η επικοινωνία ενός Master κι ενός Slave θα πρέπει να πραγματοποιηθεί σε επίπεδο πλακέτας (PCB) και να μη χρησιμοποιηθούν εξωτερικά καλώδια. Το SPI θα μπορούσε να χρησιμοποιηθεί κι εξωτερικά της πλακέτας, όμως η ταχύτητα μεταφοράς δεδομένων θα πρέπει να είναι χαμηλή. Εξωτερική διευθυνσιοδότηση, κι όχι ενσωματωμένη. 26
Μειονεκτήματα SPI (συν.) εν υφίστανται Acknowledgment σήματα από τους Slaves. εν υπάρχει προτυποποίηση, με αποτέλεσμα τη δυσκολία υιοθέτησης συμβατότητας για τις διάφορες συσκευές που υποστηρίζουν SPI. 27