Κατανόηση για το πρωτόκολλο επικοινωνίας SPI στο ενσωματωμένο

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων





Η επικοινωνία διαδραματίζει ουσιαστικό ρόλο στο σχεδιασμό του ενσωματωμένου συστήματος. Χωρίς να πάτε στα πρωτόκολλα, η περιφερειακή επέκταση είναι πολύ περίπλοκη και καταναλώνει υψηλή ισχύ. ο ενσωματωμένο σύστημα βασικά χρησιμοποιεί σειριακή επικοινωνία για να επικοινωνεί με τα περιφερειακά.
Υπάρχουν πολλά πρωτόκολλα σειριακής επικοινωνίας, όπως επικοινωνία UART, CAN, USB, I2C και SPI. Η σειρά πρωτόκολλο επικοινωνίας Τα χαρακτηριστικά περιλαμβάνουν υψηλή ταχύτητα και χαμηλή απώλεια δεδομένων. Διευκολύνει τη σχεδίαση σε επίπεδο συστήματος και εξασφαλίζει αξιόπιστη μεταφορά δεδομένων.

Σειριακή επικοινωνία δεδομένων

Οι ηλεκτρικώς κωδικοποιημένες πληροφορίες ονομάζονται σειριακά δεδομένα, τα οποία μεταδίδονται σιγά-σιγά από τη μία συσκευή στην άλλη μέσω ενός συνόλου πρωτοκόλλων. Στο ενσωματωμένο σύστημα, τα δεδομένα των αισθητήρων ελέγχου και των ενεργοποιητών λαμβάνονται ή μεταδίδονται σε συσκευές ελεγκτή όπως μικροελεγκτές, έτσι ώστε τα δεδομένα να αναλύονται και να υποβάλλονται σε περαιτέρω επεξεργασία. Καθώς οι μικροελεγκτές συνεργάζονται με τα ψηφιακά δεδομένα, οι πληροφορίες από το αναλογικοί αισθητήρες , οι ενεργοποιητές και άλλα περιφερειακά μετατρέπονται σε δυαδική λέξη ενός byte (8-bit) πριν μεταδοθούν στον μικροελεγκτή.




Σειριακή επικοινωνία δεδομένων

Σειριακή επικοινωνία δεδομένων

Αυτά τα σειριακά δεδομένα μεταδίδονται σε σχέση με ορισμένους παλμούς ρολογιού. Ο ρυθμός μετάδοσης δεδομένων αναφέρεται ως ο ρυθμός baud. Ο αριθμός των bit δεδομένων που μπορούν να μεταδοθούν ανά δευτερόλεπτο ονομάζεται baud rate. Ας υποθέσουμε ότι τα δεδομένα είναι 12 byte, και στη συνέχεια κάθε byte μετατρέπεται σε 8 bits έτσι ώστε το συνολικό μέγεθος της μετάδοσης δεδομένων να είναι περίπου 96 bits / sec των δεδομένων (12 bytes * 8 bits ανά byte). Εάν τα δεδομένα μπορούν να μεταδοθούν μία φορά κάθε δευτερόλεπτο, οι ρυθμοί baud είναι περίπου 96 bits / sec ή 96 baud. Η οθόνη εμφάνισης ανανεώνει την τιμή δεδομένων μία φορά κάθε δευτερόλεπτο.



Βασικά σειριακά περιφερειακά περιβάλλοντα

Η επικοινωνία SPI σημαίνει σειριακή περιφερειακή διεπαφή πρωτόκολλο επικοινωνίας , το οποίο αναπτύχθηκε από τη Motorola το 1972. Η διεπαφή SPI είναι διαθέσιμη σε δημοφιλείς ελεγκτές επικοινωνίας όπως PIC, AVR και Ελεγκτής ARM , κλπ. Διαθέτει σύνδεσμο δεδομένων σύγχρονης σειριακής επικοινωνίας που λειτουργεί σε πλήρη αμφίδρομη, πράγμα που σημαίνει ότι τα σήματα δεδομένων μεταφέρουν ταυτόχρονα και τις δύο κατευθύνσεις.

Το πρωτόκολλο SPI αποτελείται από τέσσερα καλώδια όπως MISO, MOSI, CLK, SS που χρησιμοποιούνται για την επικοινωνία master / slave. Ο κύριος είναι μικροελεγκτής και οι σκλάβοι είναι άλλα περιφερειακά όπως αισθητήρες, Μόντεμ GSM και μόντεμ GPS κ.λπ. Οι πολλαπλοί σκλάβοι συνδέονται με τον κύριο μέσω ενός σειριακού διαύλου SPI. Το πρωτόκολλο SPI δεν υποστηρίζει την επικοινωνία Multi-master και χρησιμοποιείται για μικρή απόσταση μέσα σε μια πλακέτα κυκλώματος.

Βασικά σειριακά περιφερειακά περιβάλλοντα

Βασικά σειριακά περιφερειακά περιβάλλοντα

Γραμμές SPI

MISO (Master στο Slave out) : Η γραμμή MISO έχει διαμορφωθεί ως είσοδος σε μια κύρια συσκευή και ως έξοδος σε μια εξαρτημένη συσκευή.


MOSI (Master out Slave μέσα) : Το MOSI είναι μια γραμμή που έχει διαμορφωθεί ως έξοδος σε μια κύρια συσκευή και ως είσοδος σε μια εξαρτημένη συσκευή όπου χρησιμοποιείται για τον συγχρονισμό της κίνησης δεδομένων.

SCK (σειριακό ρολόι) : Αυτό το σήμα οδηγείται πάντα από τον κύριο για τη σύγχρονη μεταφορά δεδομένων μεταξύ του κύριου και του σκλάβου. Χρησιμοποιείται για το συγχρονισμό της κίνησης δεδομένων τόσο εντός όσο και εκτός μέσω των γραμμών MOSI και MISO.

SS (Slave Select) και CS (Chip Select) : Αυτό το σήμα καθοδηγείται από τον κύριο για να επιλέξει μεμονωμένους σκλάβους / Περιφερειακές συσκευές. Είναι μια γραμμή εισόδου που χρησιμοποιείται για την επιλογή των εξαρτημένων συσκευών.

Master Slave Επικοινωνία με το SPI Serial Bus

Εφαρμογή Single Master και Single Slave SPI

Εδώ, η επικοινωνία ξεκινά πάντα από τον πλοίαρχο. Η κύρια συσκευή διαμορφώνει πρώτα τη συχνότητα ρολογιού που είναι μικρότερη ή ίση με τη μέγιστη συχνότητα που υποστηρίζει η εξαρτημένη συσκευή. Στη συνέχεια, ο πλοίαρχος επιλέγει τον επιθυμητό σκλάβο για επικοινωνία σύροντας τη γραμμή επιλογής τσιπ (SS) της συγκεκριμένης εξαρτημένης συσκευής για να πάει σε χαμηλή κατάσταση και ενεργή. Ο πλοίαρχος δημιουργεί τις πληροφορίες στη γραμμή MOSI που μεταφέρει τα δεδομένα από το master στο slave.

Master Slave Επικοινωνία

Master Slave Επικοινωνία

Εφαρμογές Single Master και Multiple Slave

Αυτή είναι μια διαμόρφωση πολλαπλών σκλάβων με έναν κύριο και πολλούς σκλάβους μέσω του σειριακού διαύλου SPI. Οι πολλαπλοί σκλάβοι συνδέονται παράλληλα με την κύρια συσκευή με το σειριακό δίαυλο SPI. Εδώ, όλες οι γραμμές ρολογιού και οι γραμμές δεδομένων είναι συνδεδεμένες μεταξύ τους, αλλά ο ακροδέκτης επιλογής τσιπ από κάθε δευτερεύουσα συσκευή πρέπει να είναι συνδεδεμένος με έναν ξεχωριστό ακροδέκτη επιλογής υποτελούς στη συσκευή maser

Ενιαίος κύριος και πολλαπλοί σκλάβοι

Ενιαίος κύριος και πολλαπλοί σκλάβοι

Σε αυτήν τη διαδικασία, ο έλεγχος κάθε εξαρτημένης συσκευής εκτελείται από μια γραμμή επιλογής τσιπ (SS). Το pin select chip πηγαίνει χαμηλά για να ενεργοποιήσει τη δευτερεύουσα συσκευή και πηγαίνει ψηλά για να απενεργοποιήσει τη εξαρτημένη συσκευή.

Η μεταφορά δεδομένων οργανώνεται χρησιμοποιώντας τους καταχωρητές μετατόπισης και στις δύο συσκευές master και slave με δεδομένο μέγεθος λέξης περίπου 8-bit και 16-bit, αντίστοιχα. Και οι δύο συσκευές συνδέονται σε μορφή δακτυλίου έτσι ώστε η τιμή του καταχωρητή μετατόπισης μεταδόσεων να μεταδίδεται μέσω της γραμμής MOSI και, στη συνέχεια, ο σκλάβος μετατοπίζει δεδομένα στον καταχωρητή μετατόπισης. Τα δεδομένα μεταφέρονται συνήθως με το MSB πρώτα και μετατοπίζουν νέο LSB στον ίδιο καταχωρητή.

Μεταφορά δεδομένων μεταξύ Master και Slave

Μεταφορά δεδομένων μεταξύ Master και Slave

Σημασία της πολικότητας και της φάσης του ρολογιού

Γενικά, η μετάδοση και λήψη δεδομένων πραγματοποιείται σε σχέση με τους παλμούς του ρολογιού σε άνοδο και άκρα. Οι προηγμένοι μικροελεγκτές έχουν δύο συχνότητες: εσωτερική συχνότητα και εξωτερική συχνότητα. Τα περιφερειακά SPI θα μπορούσαν να προστεθούν με κοινή χρήση των γραμμών MISO, MOSI και SCLK. Τα περιφερειακά έχουν διαφορετικούς τύπους ή ταχύτητες όπως ADC, DAC, κ.λπ. Επομένως, πρέπει να αλλάξουμε τις ρυθμίσεις SPCR μεταξύ των μεταφορών σε διαφορετικά περιφερειακά.

Μητρώο SPCR

Μητρώο SPCR

Ο δίαυλος SPI λειτουργεί σε έναν από τους 4 διαφορετικούς τρόπους μεταφοράς με πολικότητα ρολογιού (CPOL) και φάση ρολογιού (CPHA) που καθορίζει τη μορφή ρολογιού που θα χρησιμοποιηθεί. Η πολικότητα του ρολογιού και οι ρυθμοί ρολογιού φάσης εξαρτώνται από την περιφερειακή συσκευή που προσπαθείτε να επικοινωνήσετε με τον κύριο.
CPHA = 0, CPOL = 0: Το πρώτο bit ξεκινά ως χαμηλότερο σήμα - τα δεδομένα λαμβάνονται δείγματα στην άνοδο του άκρου και τα δεδομένα αλλάζουν στην πτώση του άκρου.

CPHA = 0, CPOL = 1: Το πρώτο bit ξεκινά με ένα χαμηλότερο ρολόι - τα δεδομένα λαμβάνονται δείγματα στην άκρη πτώσης και τα δεδομένα αλλάζουν στην άνοδο.

CPHA = 1, CPOL = 0: Το πρώτο bit ξεκινά με υψηλότερο ρολόι - τα δεδομένα λαμβάνονται δείγματα στην άκρη πτώσης και τα δεδομένα αλλάζουν στην άνοδο.

CPHA = 1, CPOL = 1: Το πρώτο bit ξεκινά με ένα υψηλότερο ρολόι - τα δεδομένα λαμβάνονται δείγματα στην άνοδο και τα δεδομένα αλλάζουν στην πτώση.

Χρονισμοί διαύλου SPI

Χρονισμοί διαύλου SPI

Πρωτόκολλο επικοινωνίας SPI

Πολλοί μικροελεγκτές έχουν ενσωματωμένα πρωτόκολλα SPI που χειρίζονται όλα τα δεδομένα αποστολής και λήψης. Οποιαδήποτε από τις λειτουργίες λειτουργίας δεδομένων (R / W) ελέγχεται από ένα μητρώο ελέγχου και κατάστασης του πρωτοκόλλου SPI. Εδώ, μπορείτε να παρατηρήσετε τη διεπαφή EEPROM στον μικροελεγκτή PIC16f877a μέσω του πρωτοκόλλου SPI.

Εδώ, το 25LC104 EEROM είναι μια μνήμη 131072 byte όπου ο μικροελεγκτής μεταφέρει δύο byte δεδομένων στο Μνήμη EEROM μέσω ενός σειριακού λεωφορείου SPI. Το πρόγραμμα για αυτήν τη διασύνδεση δίνεται παρακάτω.

Master to Slave επικοινωνία μέσω σειριακού διαύλου SPI

Master to Slave επικοινωνία μέσω σειριακού διαύλου SPI

#περιλαμβάνω
Sbit SS = RC ^ 2
Sbit SCK = RC ^ 3
Sbit SDI = RC ^ 4
Sbit SDO = RC ^ 5
Άκυρο αρχικοποίηση EEROM ()
Κενό κενών ()
{
SSPSPAT = 0x00
SSPCON = 0x31
SMP = 0
SCK = 0
SDO = 0
SS = 1
EE_adress = 0x00
SPI_write (0x80)
SPI_write (1234)
SS = 0
}

Πλεονεκτήματα του πρωτοκόλλου SPI

  • Είναι μια πλήρης αμφίδρομη επικοινωνία.
  • Είναι μεγάλης ταχύτητας δίαυλος δεδομένων 10MHz.
  • Δεν περιορίζεται στα 8 bit κατά τη μεταφορά
  • Η διασύνδεση υλικού είναι απλή μέσω του SPI.
  • Ο Slave χρησιμοποιεί ένα κύριο ρολόι και δεν χρειάζεται πολύτιμους ταλαντωτές.

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

Φωτογραφικές μονάδες:

  • Σειριακή επικοινωνία δεδομένων από glowscotland
  • Βασικά σειριακά περιφερειακά περιβάλλοντα από Νι
  • Ενιαίος κύριος και πολλαπλοί σκλάβοι από τρώω
  • Μεταφορά δεδομένων μεταξύ Master και Slave από μηχανικός γκαράζ
  • Χρονοδιάγραμμα λεωφορείων SPI έως μεγιστοποιημένο