Είτε πρόκειται για περιφερειακά υπολογιστών, έξυπνες συσκευές, συσκευές Internet of Things (IoT) ή ηλεκτρονικά εργαλεία μέτρησης, όλα χρησιμοποιούν πρωτόκολλα σειριακής επικοινωνίας για τη σύνδεση διαφορετικών ηλεκτρονικών εξαρτημάτων μαζί.
Αυτά τα εξαρτήματα συνήθως αποτελούνται από έναν μικροελεγκτή και υποτελείς μονάδες, όπως έναν αισθητήρα δακτυλικών αποτυπωμάτων, ένα ESP8266 (μονάδα Wi-Fi), σερβομηχανισμούς και σειριακές οθόνες.
Αυτές οι συσκευές χρησιμοποιούν διαφορετικά είδη πρωτοκόλλων επικοινωνίας. Παρακάτω θα μάθετε για μερικά από τα πιο δημοφιλή πρωτόκολλα σειριακής επικοινωνίας, πώς λειτουργούν, τα πλεονεκτήματά τους και γιατί παραμένουν σε χρήση.
Τι είναι η σειριακή επικοινωνία;
Τα σειριακά πρωτόκολλα επικοινωνίας υπάρχουν εδώ από την εφεύρεση του Κώδικα Μορς το 1838. Σήμερα, τα σύγχρονα πρωτόκολλα σειριακής επικοινωνίας χρησιμοποιούν τις ίδιες αρχές. Τα σήματα παράγονται και μεταδίδονται σε ένα μόνο καλώδιο βραχυκυκλώνοντας επανειλημμένα δύο αγωγούς μεταξύ τους. Αυτό το σορτς λειτουργεί σαν διακόπτης. ανάβει (υψηλή) και απενεργοποιείται (χαμηλή), παρέχοντας δυαδικά σήματα. Ο τρόπος μετάδοσης και λήψης αυτού του σήματος θα εξαρτηθεί από τον τύπο του πρωτοκόλλου σειριακής επικοινωνίας που χρησιμοποιείται.
Με την εφεύρεση του τρανζίστορ και τις καινοτομίες που ακολούθησαν, οι μηχανικοί και οι τεχνίτες έκαναν τις μονάδες επεξεργασίας και τη μνήμη μικρότερες, ταχύτερες και πιο αποδοτικές από πλευράς ισχύος. Αυτές οι αλλαγές απαιτούσαν τα πρωτόκολλα επικοινωνίας διαύλου να είναι τόσο προηγμένα τεχνολογικά όσο και τα εξαρτήματα που συνδέονται. Έτσι, η εφεύρεση των σειριακών πρωτοκόλλων όπως τα UART, I2C και SPI. Αν και αυτά τα σειριακά πρωτόκολλα είναι παλιάς πολλών δεκαετιών, εξακολουθούν να προτιμώνται για μικροελεγκτές και προγραμματισμό γυμνού μετάλλου.
UART (Καθολικός ασύγχρονος δέκτης-πομπός)
Το πρωτόκολλο UART είναι ένα από τα παλαιότερα αλλά πιο αξιόπιστα πρωτόκολλα σειριακής επικοινωνίας που χρησιμοποιούμε ακόμα σήμερα. Αυτό το πρωτόκολλο χρησιμοποιεί δύο καλώδια γνωστά ως Tx (μετάδοση) και Rx (Λήψη) για την επικοινωνία και των δύο στοιχείων.
Για τη μετάδοση δεδομένων, τόσο ο πομπός όσο και ο δέκτης πρέπει να συμφωνούν με πέντε κοινές διαμορφώσεις, οι οποίες είναι:
- Ταχύτητα Baud: Η ταχύτητα μετάδοσης της ταχύτητας μετάδοσης δεδομένων.
- Μήκος δεδομένων: Ο συμφωνημένος αριθμός bit που θα αποθηκεύσει ο δέκτης στους καταχωρητές του.
- Bit έναρξης: Ένα χαμηλό σήμα που ενημερώνει τον δέκτη πότε πρόκειται να μεταφερθούν δεδομένα.
- Stop Bit: Ένα υψηλό σήμα που ενημερώνει τον δέκτη πότε έχει σταλεί το τελευταίο bit (το πιο σημαντικό bit).
- Bit ισοτιμίας: Είτε υψηλό είτε χαμηλό σήμα που χρησιμοποιείται για τον έλεγχο εάν τα δεδομένα που στάλθηκαν ήταν σωστά ή κατεστραμμένα.
Δεδομένου ότι το UART είναι ένα ασύγχρονο πρωτόκολλο, δεν έχει δικό του ρολόι που ρυθμίζει την ταχύτητα μετάδοσης δεδομένων. Εναλλακτικά, χρησιμοποιεί ρυθμό baud για τον χρονισμό όταν μεταδίδεται ένα bit. Ο συνήθης ρυθμός baud που χρησιμοποιείται για το UART είναι 9600 baud, δηλαδή ρυθμός μετάδοσης 9600 bit ανά δευτερόλεπτο.
Εάν κάνουμε τα μαθηματικά και διαιρέσουμε ένα bit με 9600 baud, μπορούμε να υπολογίσουμε πόσο γρήγορα μεταδίδεται ένα bit δεδομένων στον δέκτη.
1/9600 =104 μικροδευτερόλεπτα
Αυτό σημαίνει ότι οι συσκευές μας UART θα αρχίσουν να μετρούν 104 μικροδευτερόλεπτα για να γνωρίζουν πότε θα εκπέμπει το επόμενο bit.
Όταν έχουν συνδεθεί συσκευές UART, το προεπιλεγμένο σήμα αυξάνεται πάντα στο υψηλό. Όταν ανιχνεύσει ένα σήμα χαμηλής συχνότητας, ο δέκτης θα αρχίσει να μετρά 104 μικροδευτερόλεπτα συν άλλα 52 μικροδευτερόλεπτα προτού αρχίσει να αποθηκεύει τα bit στους καταχωρητές του (μνήμη).
Εφόσον είχε ήδη συμφωνηθεί ότι τα οκτώ bit έπρεπε να έχουν μήκος δεδομένων, μόλις αποθηκεύσει οκτώ bit δεδομένων, θα αρχίσει να ελέγχει την ισοτιμία για να ελέγξει εάν τα δεδομένα είναι μονά ή ζυγά. Μετά τον έλεγχο ισοτιμίας, το bit διακοπής θα ανυψώσει ένα υψηλό σήμα για να ειδοποιήσει τις συσκευές ότι όλα τα οκτώ bit δεδομένων μεταδόθηκαν επιτυχώς στον δέκτη.
Όντας το πιο μινιμαλιστικό σειριακό πρωτόκολλο που χρησιμοποιεί μόνο δύο καλώδια, το UART χρησιμοποιείται συνήθως σήμερα σε έξυπνες κάρτες, κάρτες SIM και αυτοκίνητα.
Σχετίζεται με: Τι είναι η κάρτα SIM; Πράγματα που πρέπει να γνωρίζετε
SPI (σειριακή περιφερειακή διεπαφή)
Το SPI είναι ένα άλλο δημοφιλές σειριακό πρωτόκολλο που χρησιμοποιείται για ταχύτερους ρυθμούς δεδομένων περίπου 20 Mbps. Χρησιμοποιεί συνολικά τέσσερα καλώδια, και συγκεκριμένα SCK (Σειριακή γραμμή ρολογιού), MISO (Master Out Slave In), MOSI (Master In Slave Out) και SS/CS (Chip Select). Σε αντίθεση με το UART, το SPI χρησιμοποιεί μια μορφή master-to-slave για τον έλεγχο πολλαπλών βοηθητικών συσκευών με μόνο ένα master.
Το MISO και το MOSI λειτουργούν όπως τα Tx και Rx του UART που χρησιμοποιούνται για τη μετάδοση και λήψη δεδομένων. Το Chip Select χρησιμοποιείται για την επιλογή του slave με τον οποίο θέλει να επικοινωνήσει ο κύριος.
Δεδομένου ότι το SPI είναι ένα σύγχρονο πρωτόκολλο, χρησιμοποιεί ένα ενσωματωμένο ρολόι από το κύριο για να διασφαλίσει ότι τόσο η κύρια όσο και η εξαρτημένη συσκευή λειτουργούν στην ίδια συχνότητα. Αυτό σημαίνει ότι οι δύο συσκευές δεν χρειάζεται πλέον να διαπραγματεύονται έναν ρυθμό baud.
Το πρωτόκολλο ξεκινά με τον κύριο να επιλέγει τη εξαρτημένη συσκευή χαμηλώνοντας το σήμα της στο συγκεκριμένο SS/CK που είναι συνδεδεμένο στη εξαρτημένη συσκευή. Όταν ο slave λάβει χαμηλό σήμα, αρχίζει να ακούει και το SCK και το MOSI. Στη συνέχεια, το master στέλνει ένα bit έναρξης πριν στείλει τα bit που περιέχουν δεδομένα.
Τόσο το MOSI όσο και το MISO είναι full-duplex, που σημαίνει ότι μπορούν να μεταδίδουν και να λαμβάνουν δεδομένα ταυτόχρονα.
Με την ικανότητά του να συνδέεται με πολλαπλούς slaves, full-duplex επικοινωνία και χαμηλότερη κατανάλωση ενέργειας από άλλα Τα σύγχρονα πρωτόκολλα όπως το I2C, το SPI χρησιμοποιούνται σε συσκευές μνήμης, ψηφιακές κάρτες μνήμης, μετατροπείς ADC σε DAC και κρύσταλλο ενδείξεις μνήμης.
I2C (Inter-Integrated Circuit)
Το I2C είναι ένα ακόμη σύγχρονο σειριακό πρωτόκολλο όπως το SPI, αλλά με αρκετά πλεονεκτήματα σε σχέση με αυτό. Αυτά περιλαμβάνουν τη δυνατότητα να έχετε πολλαπλούς κύριους και slaves, απλή διευθυνσιοδότηση (δεν χρειάζεται Chip Επιλέξτε), λειτουργεί με διάφορες τάσεις και χρησιμοποιεί μόνο δύο καλώδια συνδεδεμένα σε δύο έλξεις αντιστάσεις.
Το I2C χρησιμοποιείται συχνά σε πολλές συσκευές IoT, βιομηχανικό εξοπλισμό και ηλεκτρονικά είδη ευρείας κατανάλωσης.
Οι δύο ακίδες σε ένα πρωτόκολλο I2C είναι το SDA (Serial Data Line) που μεταδίδει και λαμβάνει δεδομένα και το SCL (Serial Clock Line), το οποίο λειτουργεί ως ρολόι.
- Το πρωτόκολλο ξεκινά με την κύρια αποστολή να στέλνει ένα bit έναρξης (χαμηλό) από τον ακροδέκτη SDA του, ακολουθούμενο από μια διεύθυνση επτά bit που επιλέγει το slave και ένα bit για την επιλογή ανάγνωσης ή εγγραφής.
- Μετά τη λήψη του bit έναρξης και της διεύθυνσης, ο slave στέλνει ένα bit επιβεβαίωσης στον κύριο και αρχίζει να ακούει το SCL και το SDA για τις εισερχόμενες μεταδόσεις.
- Μόλις ο κύριος το λάβει αυτό, γνωρίζει ότι η σύνδεση έχει γίνει με τη σωστή υποτελή. Ο κύριος θα επιλέξει τώρα σε ποιον συγκεκριμένο καταχωρητή (μνήμη) από το slave που θέλει να έχει πρόσβαση. Αυτό το κάνει στέλνοντας άλλα οκτώ bit προσδιορίζοντας ποιος καταχωρητής θα χρησιμοποιηθεί.
- Με τη λήψη της διεύθυνσης, ο slave προετοιμάζει τώρα τον επιλεγμένο καταχωρητή πριν στείλει άλλη επιβεβαίωση στον κύριο.
- Έχοντας επιλέξει ποιο συγκεκριμένο slave και ποιους από τους καταχωρητές του θα χρησιμοποιήσει, ο master στέλνει τελικά το bit δεδομένων στον slave.
- Μετά την αποστολή των δεδομένων, ένα τελικό bit επιβεβαίωσης αποστέλλεται στον κύριο προτού το master τελειώσει με ένα bit διακοπής (υψηλό).
Σχετίζεται με: Τα καλύτερα έργα Arduino IoT
Γιατί οι σειριακές επικοινωνίες είναι εδώ για να μείνουν
Με την άνοδο των παράλληλων και πολλών ασύρματων πρωτοκόλλων, οι σειριακές επικοινωνίες δεν έπεσαν ποτέ από τη δημοτικότητα. Γενικά χρησιμοποιώντας μόνο δύο έως τέσσερα καλώδια για τη μετάδοση και τη λήψη δεδομένων, τα σειριακά πρωτόκολλα είναι ένας ουσιαστικός τρόπος επικοινωνίας για τα ηλεκτρονικά που διαθέτουν μόνο λίγες θύρες.
Ένας άλλος λόγος είναι η απλότητά του που μεταφράζεται σε αξιοπιστία. Με λίγα μόνο καλώδια που στέλνουν δεδομένα μία φορά τη φορά, η σειρά έχει αποδείξει την αξιοπιστία της να στέλνει ολόκληρα πακέτα δεδομένων χωρίς απώλεια ή καταστροφή κατά τη μετάδοση. Ακόμη και σε υψηλές συχνότητες και επικοινωνία μεγαλύτερης εμβέλειας, τα σειριακά πρωτόκολλα εξακολουθούν να ξεπερνούν πολλά σύγχρονα πρωτόκολλα παράλληλων επικοινωνιών που είναι διαθέσιμα σήμερα.
Αν και πολλοί μπορεί να πιστεύουν ότι οι σειριακές επικοινωνίες όπως το UART, το SPI και το I2C έχουν το μειονέκτημα επειδή είναι παλιά και ξεπερασμένα, το γεγονός παραμένει ότι έχουν αποδείξει την αξιοπιστία τους σε πολλές περιπτώσεις δεκαετίες. Τα πρωτόκολλα που είναι τόσο παλιά χωρίς πραγματική αντικατάσταση υποδηλώνουν ότι είναι, στην πραγματικότητα, απαραίτητα και θα συνεχίσουν να χρησιμοποιούνται στα ηλεκτρονικά για το άμεσο μέλλον.
Έχετε μπερδευτεί μεταξύ SBC όπως το Raspberry Pi και μικροελεγκτών όπως το Arduino και το Raspberry Pi Pico; Εδώ είναι τι πρέπει να ξέρετε.
Διαβάστε Επόμενο
- Επεξήγηση τεχνολογίας
- Χρήση δεδομένων
Εγγραφείτε στο ενημερωτικό μας δελτίο
Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Κάντε κλικ εδώ για να εγγραφείτε