AVR Microcontroller (Atmel 8) Διαμόρφωση σειριακής επικοινωνίας USART

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





Ο μικροελεγκτής είναι μια συσκευή ελέγχου που περιέχει έναν αριθμό περιφερειακών όπως RAM, ROM TIMERS, σειριακή επικοινωνία δεδομένων , κ.λπ., που απαιτούνται για την εκτέλεση ορισμένων προκαθορισμένων εργασιών. Στην εποχή μας, προηγμένος τύπος μικροελεγκτών χρησιμοποιούνται σε μια μεγάλη ποικιλία εφαρμογών σύμφωνα με την ικανότητα και τη σκοπιμότητά τους για την εκτέλεση ορισμένων επιθυμητών εργασιών και περιλαμβάνουν αυτούς τους ελεγκτές 8051, AVR και PIC μικροελεγκτής . Σε αυτό το άρθρο, θα μάθουμε για τον προηγμένο μικροελεγκτή οικογένειας AVR και τον προγραμματισμό του .

Μικροελεγκτής AVR

Το AVR είναι ένας τύπος συσκευής ελέγχου που κατασκευάστηκε από την Atmel Corporation το 1996. Το AVR δεν σημαίνει τίποτα, είναι απλώς ένα όνομα. Το AVR Οι μικροελεγκτές αποτελούνται από την αρχιτεκτονική του Χάρβαρντ και, επομένως, η συσκευή λειτουργεί πολύ γρήγορα με μειωμένο αριθμό οδηγιών σε επίπεδο μηχανήματος (RISC). Οι μικροελεγκτές AVR αποτελούνται από ειδικές λειτουργίες σε σύγκριση με άλλους μικροελεγκτές όπως λειτουργίες 6 ύπνου, ενσωματωμένο ADC, εσωτερικό ταλαντωτή και σειριακή επικοινωνία δεδομένων κ.λπ. Μικροελεγκτές AVR διατίθενται σε διαφορετικές διαμορφώσεις των 8-bit, 16-bit και 32-bit για την εκτέλεση διαφόρων λειτουργιών.




Μικροελεγκτής AVR

Μικροελεγκτής AVR

Σειριακή επικοινωνία δεδομένων USART σε μικροελεγκτή AVR

Το USART σημαίνει καθολικό σύγχρονο και ασύγχρονο δέκτη και πομπό. Είναι μια σειριακή επικοινωνία δύο πρωτοκόλλων. Αυτό το πρωτόκολλο χρησιμοποιείται για τη μετάδοση και λήψη των δεδομένων bit-bit σε σχέση με τους παλμούς ρολογιού σε ένα μόνο καλώδιο. ο Μικροελεγκτής AVR έχει δύο ακίδες: TXD και RXD, οι οποίες χρησιμοποιούνται ειδικά για τη μετάδοση και τη λήψη των σειριακών δεδομένων. Οποιοσδήποτε μικροελεγκτής AVR αποτελείται από πρωτόκολλο USART με τις δικές του δυνατότητες.



Επικοινωνία USART σε μικροελεγκτή AVR

Επικοινωνία USART σε μικροελεγκτή AVR

Τα κύρια χαρακτηριστικά του AVR USART

  • Το πρωτόκολλο USART υποστηρίζει το πρωτόκολλο full-duplex.
  • Παράγει ρυθμό baud υψηλής ανάλυσης.
  • Υποστηρίζει μετάδοση bit σειριακών δεδομένων από 5 έως 9 και αποτελείται από δύο bit διακοπής.

Διαμόρφωση καρφίτσας USART

Το USART του AVR αποτελείται από τρεις ακίδες:


  • RXD: Καρφίτσα δέκτη USART (ATMega8 PIN 2 ATMega16 / 32 Pin 14)
  • TXD: Καρφίτσα πομπού USART (ATMega8 PIN 3 ATMega16 / 32 Pin 15)
  • XCK: Καρφίτσα ρολογιού USART (ATMega8 PIN 6 ATMega16 / 32 Pin 1)

Τρόποι λειτουργίας

Ο μικροελεγκτής AVR του πρωτοκόλλου USART λειτουργεί σε τρεις λειτουργίες που είναι:

  • Ασύγχρονη κανονική λειτουργία
  • Λειτουργία ασύγχρονης διπλής ταχύτητας
  • Σύγχρονη λειτουργία
Τρόποι λειτουργίας

Τρόποι λειτουργίας

Ασύγχρονη κανονική λειτουργία

Σε αυτόν τον τρόπο επικοινωνίας, τα δεδομένα μεταδίδονται και λαμβάνονται bit-bit χωρίς παλμούς ρολογιού από τον προκαθορισμένο ρυθμό baud που ορίζεται από τον καταχωρητή UBBR.

Λειτουργία ασύγχρονης διπλής ταχύτητας

Σε αυτόν τον τρόπο επικοινωνίας, τα δεδομένα που μεταφέρονται με διπλάσιο ρυθμό baud ορίζονται από τον καταχωρητή UBBR και ορίζουν U2X bits στον καταχωρητή UCSRA. Πρόκειται για μια λειτουργία υψηλής ταχύτητας για σύγχρονη επικοινωνία για γρήγορη μετάδοση και λήψη των δεδομένων. Αυτό το σύστημα χρησιμοποιείται όπου απαιτούνται ακριβείς ρυθμίσεις ρυθμού baud και ρολόι συστήματος.

Σύγχρονη λειτουργία

Σε αυτό το σύστημα, η μετάδοση και λήψη δεδομένων σχετικά με τον παλμό ρολογιού ορίζεται UMSEL = 1 στον καταχωρητή UCSRC.

Διαμόρφωση USART σε μικροελεγκτή AVR

Το USART μπορεί να ρυθμιστεί χρησιμοποιώντας πέντε καταχωρητές όπως τρεις καταχωρητές ελέγχου , ένα μητρώο δεδομένων και ένα μητρώο επιλογής baud-rate, όπως UDR, UCSRA, UCSRB, UCSRC και UBRR.

7 βήματα για τη σύνθεση του προγράμματος

Βήμα 1: Υπολογίστε και ορίστε το Baud Rate

Ο ρυθμός baud του USART / UART ορίζεται από τον καταχωρητή UBRR. Αυτός ο καταχωρητής χρησιμοποιείται για τη δημιουργία της μετάδοσης δεδομένων με τη συγκεκριμένη ταχύτητα. Το UBRR είναι ένας καταχωρητής 16 bit. Δεδομένου ότι το AVR είναι μικροελεγκτής 8-bit και οποιοδήποτε μέγεθος μητρώου είναι 8-bit. Επομένως, εδώ ο καταχωρητής UBRR 16-bit αποτελείται από δύο καταχωρητές 8-bit, όπως UBRR (H), UBRR (L).

Ο τύπος του ρυθμού baud είναι

BAUD = Σκούρο / (16 * (UBBR + 1))

Ο τύπος του μητρώου UBRR είναι

UBRR = Σκούρο / (16 * (BAUD-1))

Η συχνότητα του μικροελεγκτή AVR είναι 16MHz = 16000000 Ας υποθέσουμε ότι ο ρυθμός baud είναι 19200Bps, τότε

UBRR = 16000000 / (16 * (19200-1))

UBRR = 16000000 / (16 * (19200-1))

UBRR = 51.099

Τελικά βρείτε το ρυθμό baud

BAUD = 16000000 / (16 * (51 + 1))
UBRR = 19230bps

Βήμα 2: Επιλογή τρόπου δεδομένων

Ο τρόπος μετάδοσης δεδομένων, το bit έναρξης και το bit διακοπής και το μέγεθος χαρακτήρων ορίζεται από τον καταχωρητή ελέγχου και κατάστασης UCSRC.

Επιλογή τρόπου δεδομένων

Επιλογή τρόπου δεδομένων

Βήμα 3: Επιλογή τρόπου μετάδοσης δεδομένων

Η σύγχρονη και ασύγχρονη λειτουργία επιλέγεται από το bit UMSEL του μητρώου κατάστασης ελέγχου. Εάν δώσουμε UMSEL = 0, τότε το USART λειτουργεί σε ασύγχρονη λειτουργία, διαφορετικά λειτουργεί σε σύγχρονη λειτουργία.

Επιλογή τρόπου μετάδοσης δεδομένων

Επιλογή τρόπου μετάδοσης δεδομένων

Βήμα 4: Έναρξη Bit και Stop Bit

Τα bit έναρξης και διακοπής είναι ένας τρόπος για την αποστολή και λήψη δεδομένων σειριακά. Γενικά κάθε φήμη δεδομένων αποτελείται από ένα bit bit και ένα bit διακοπής, αλλά ο μικροελεγκτής AVR έχει ένα bit έναρξης και δύο bit διακοπής για την επεξεργασία των δεδομένων. Το επιπλέον bit stop μπορεί να είναι χρήσιμο για την προσθήκη λίγο επιπλέον χρόνου επεξεργασίας λήψης. Είναι ιδιαίτερα χρήσιμο για υψηλούς ρυθμούς μεταφοράς δεδομένων, ενώ η ταχύτητα μεταφοράς δεδομένων είναι πολύ υψηλή, επομένως δεν λαμβάνουμε τα κατάλληλα δεδομένα. Έτσι, μπορούμε να αυξήσουμε τον χρόνο επεξεργασίας χρησιμοποιώντας δύο bit διακοπής για να λάβουμε τα κατάλληλα δεδομένα.

Έναρξη Bit και Stop Bit

Έναρξη Bit και Stop Bit

Ο αριθμός των bit διακοπής επιλέγεται από το USBS bit του UCSRC - το μητρώο κατάστασης ελέγχου. Το USBS = 0, για ένα bit διακοπής, και το USBS = 1, για δύο bit διακοπής.

Βήμα 5: Ορίστε το μέγεθος χαρακτήρων

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

Μορφή πλαισίου δεδομένων

Μορφή πλαισίου δεδομένων

Βήμα 6: Αποθηκεύστε τα ληφθέντα δεδομένα

Ο μικροελεγκτής AVR αποτελείται από έναν καταχωρητή buffer UDR για μετάδοση και λήψη δεδομένων. Το UDR είναι ένας καταχωρητής buffer 16-bit όπου τα 8-bit χρησιμοποιούνται για τη λήψη (RXB) των δεδομένων και άλλα bits χρησιμοποιούνται για τη μετάδοση των δεδομένων (TXB). Η διαβίβαση του καταχωρητή buffer δεδομένων θα είναι ο προορισμός στο μητρώο UDR για τα γραπτά δεδομένα στη θέση του. Η λήψη του καταχωρητή buffer δεδομένων θα επιστρέφει το περιεχόμενο του μητρώου UDR.

Βήμα 7: Ενεργοποίηση πομπού και δέκτη

Τα δεδομένα που μεταδίδονται και λαμβάνονται θα επιτρέπονται από τους ακροδέκτες RXC και TXC του μικροελεγκτή που ορίζονται από τον καταχωρητή UCSRA του μικροελεγκτή. Αυτό το bit σημαίας που έχει οριστεί από τον μικροελεγκτή για τα δεδομένα ολοκληρώνεται με τη λήψη και τη μετάδοση (TXC = RXC = 1).

Διπλασιάστε το Baud Rate

Μπορούμε να διπλασιάσουμε το ρυθμό μεταφοράς της USART επικοινωνίας του AVR μικροελεγκτής από 16 bit έως 8-bit αποτελεσματικά από το U2X –bit στο μητρώο UCSRA. Αυτό το bit επηρεάζει μόνο την ασύγχρονη λειτουργία. Εάν μπορούμε να ρυθμίσουμε αυτό το bit (U2X = 1), θα μειώσει τον ρυθμό baud από 16-bit σε 8-bit διπλασιάζοντας αποτελεσματικά τον ρυθμό μεταφοράς για σύγχρονη επικοινωνία.

Αυτό είναι ένα προηγμένο χαρακτηριστικό του μικροελεγκτή AVR για ταχεία επεξεργασία των δεδομένων.

Πρόγραμμα USART

Κάθε μικροελεγκτής είναι προκαθορισμένος με ένα συγκεκριμένο IDE και βασίζεται σε αυτό το IDE, Οι μικροελεγκτές προγραμματίζονται με ενσωματωμένο C ή γλώσσα συναρμολόγησης. Ο προγραμματισμός μικροελεγκτή AVR αναπτύχθηκε από το στούντιο AVR. Επιπλέον, εάν θέλετε πρόσθετες πληροφορίες σχετικά με το βήματα για τη δημιουργία έργων που βασίζονται σε μικροελεγκτή ή λεπτομερείς πληροφορίες για αυτό το θέμα, μπορείτε να επικοινωνήσετε μαζί μας σχολιάζοντας παρακάτω.