Ρύθμιση ρυθμού μετάδοσης σειριακής επικοινωνίας και αλγόριθμος ρυθμού μετάδοσης

Aug 07, 2018Αφήστε ένα μήνυμα

Ρυθμός ρυθμού μετάδοσης σειριακής επικοινωνίας και αλγόριθμος ρυθμού baud


Όταν χρησιμοποιείται η σειριακή επικοινωνία του μικροϋπολογιστή με ένα τσιπ, ο ρυθμός μετάδοσης πρέπει να ρυθμιστεί και ο ρυθμός μετάδοσης πρέπει να ρυθμιστεί στα 9600, 19200 ...; Είναι αυτή η παράδοση; Από τι? Ο αντίστοιχος ταλαντωτής κρυστάλλου είναι επίσης γενικά 11.0592MHZ.

Είναι πρώτα να ρυθμίσετε τον ταλαντωτή κρυστάλλου και στη συνέχεια να ορίσετε την ταχύτητα baud ή να ρυθμίσετε πρώτα την ταχύτητα baud και στη συνέχεια να ρυθμίσετε τον ταλαντωτή κρυστάλλου. Γιατί πρέπει αυτό να οριστεί;


Υπάρχουν δύο πιο αξιόπιστες δηλώσεις:


1: Ανάλογα με τα φυσικά χαρακτηριστικά του ηλεκτρισμού, των μέσων μετάδοσης κ.λπ. σε συνδυασμό με τις απαιτήσεις της χρήσης σειριακών συσκευών

Προκειμένου να διασφαλιστεί η αποτελεσματική επικοινωνία, σύμφωνα με τα φυσικά χαρακτηριστικά του ηλεκτρισμού, των μέσων μετάδοσης κ.λπ. σε συνδυασμό με τις απαιτήσεις της χρήσης σειριακών συσκευών, προσδιορίζεται ότι ο μέγιστος ρυθμός μετάδοσης RS232 μπορεί να είναι μόνο 115200 και στη συνέχεια λαμβάνεται με δύο στάδια για να πάρετε 57600, 28800, 19200? για να προσαρμοστούν σε αυτούς τους ρυθμούς, σχεδιάστε την αντίστοιχη συχνότητα κρυστάλλου.


2: Αυτό καθορίζεται από τα χαρακτηριστικά της τηλεπικοινωνιακής γραμμής.

Το εύρος ζώνης της τηλεφωνικής γραμμής είναι 300--3KHz. Εκείνη την εποχή, ο hayes ασχολείται αρχικά με το μόντεμ, οπότε το σήμα 2400ΗΖ που χρησιμοποιείται, ο αντίστοιχος ρυθμός μετάδοσης είναι 2400. Δεδομένου ότι προσδιορίζεται η βασική συχνότητα, το βελτιωμένο πέρασμα υιοθετεί τη μέθοδο του ρυθμού πολλαπλασιάζεται επί τη βάση των 2400 αργότερα, το σχηματισμό του 9600.19200. . . .


Είτε έτσι είτε αλλιώς, υπάρχει ρυθμός baud και στη συνέχεια κρυσταλλική συχνότητα.


Υπολογισμός του ρυθμού baud της σειριακής επικοινωνίας του μικροϋπολογιστή με ένα τσιπ.


Στη λειτουργία 0 και στη λειτουργία 2, η ταχύτητα μετάδοσης σειριακής θύρας είναι σταθερή και η λειτουργία 0 είναι Fosc / 12. Η λειτουργία 2 είναι Fosc / 32 ή Fosc / 64, η οποία καθορίζεται από το bit SMOD του καταχωρητή PCON.


Στη λειτουργία 1 και τη λειτουργία 3, ο ρυθμός μετάδοσης είναι μια μεταβλητή τιμή. Ο ρυθμός μετάδοσης μπορεί να δημιουργηθεί με τον Χρονοδιακόπτη 1 (8052 μπορεί να δημιουργηθεί από το χρονισμό 2). Ποιος είναι ο ρυθμός μετάδοσης; Ποσοστό μετάδοσης από το χρονόμετρο 1 Ποσοστό υπερχείλισης που θα καθοριστεί:

Ρυθμός Baud = (2SMOD / 32) * (Ρυθμός υπερχείλισης 1)

ΣΗΜΕΙΩΣΗ: 2SMOD εδώ SMOD είναι ο δείκτης, SMOD είναι το δυαδικό bit bit ρυθμού baud, αυτό το κομμάτι βρίσκεται στον καταχωρητή PCON.


Όταν χρησιμοποιείτε το χρονομετρητή 1 ως γεννήτρια ταχύτητας μετάδοσης, είναι συνήθως απαραίτητο να ρυθμίσετε το χρονοδιακόπτη 1 ώστε να λειτουργεί σε λειτουργία αυτόματης επαναφόρτισης 8-bit και επίσης να απενεργοποιήσετε τη διακοπή του χρονοδιακόπτη 1, και στη συνέχεια την υπερχείλιση του χρονοδιακόπτη 1 πώς να υπολογίσετε; Ο ρυθμός υπερχείλισης είναι η συχνότητα υπερχείλισης. Υποθέτοντας ότι η κρυσταλλική συχνότητα είναι 12MHz και η τιμή TH1 είναι 0xFE, μόνο δύο παλμοί ρολογιού θα απαιτηθούν για υπερχείλιση και η περίοδος υπερχείλισης είναι 2us, τότε η συχνότητα υπερχείλισης είναι 500KHz. Σύμφωνα με την ενότητα χρονοδιακόπτη, ο χρόνος χρονισμού έχει τον ακόλουθο τύπο:

Χρόνος χρονισμού = (μέγιστη τιμή μέτρησης - αρχική τιμή μετρητή) * κύκλος μηχανής = (μέγιστη τιμή μέτρησης - αρχική τιμή μετρητή) * (12 / OSC_FREQ Hz)).


Στη συνέχεια, η συχνότητα της υπερχείλισης είναι φυσικά:

OSC_FREQ (Hz) / ((256-TH1) * 12).


Έτσι, ο τελικός ρυθμός push-to-baud είναι:

(2SMOD / 32) * (OSC_FREQ (Ηζ) / ((256-ΤΗ1) * 12)).


Ο τύπος υπολογισμού του ρυθμού μετάδοσης είναι διαθέσιμος και φυσικά η αρχική τιμή της TH1 μπορεί να ληφθεί σύμφωνα με την ταχύτητα μετάδοσης:

BAUD_RATE = (2SMOD / 32) * (OSC_FREQ (Ηζ) / ((256-ΤΗ1) * 12))


32 * 12 * (256-ΤΗ1) = (2SMOD * OSC_FREQ (Hz)) / BAUD_RATE


256-ΤΗ1 = (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)


TH1 = 256- (2SMOD * OSC_FREQ (Hz)) / (BAUD_RATE * 32 * 12)


Υποθέτοντας ότι η κρυσταλλική συχνότητα είναι 11.0592MHz, ο ρυθμός baud είναι 9600, SMOD = 0, τι θα έπρεπε να είναι η αρχική τιμή του TH1; Σύμφωνα με τον παραπάνω τύπο, μπορεί να υπολογιστεί TH1 = 256-11059200 / (9600 * 32 * 12) = 0xFD.



Αποστολή ερώτησής

whatsapp

Τηλέφωνο

Ηλεκτρονικό ταχυδρομείο

Εξεταστική