ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1

Σχετικά έγγραφα
Σύγχρονη και Ασύγχρονη Σειριακή Επικοινωνία

WDT και Power Up timer

(Universal Asynchronous Receiver Transmitter

Ενότητα 8.1. Σειριακή και παράλληλη μετάδοση δεδομένων

Είναι το πρωτόκολλο RS232 που χρησιμοποιείται στις σειριακές θύρες COM με τη διαφορά ότι εκτελείται σε επίπεδο τάσεων TTL. 2

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. ΚΕΦΑΛΑΙΟ 2ο ΚΑΤΑΧΩΡΗΤΕΣ. (c) Αμπατζόγλου Γιάννης, Ηλεκτρονικός Μηχανικός, καθηγητής ΠΕ17

Σπύρος Καζαρλής, Χειμώνας

Ενσωματωμένα Συστήματα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication

ΑΣΚΗΣΗ 8 ΚΑΤΑΧΩΡΗΤΕΣ - REGISTERS

CTMU. => C = 50pF 10pF = 40 pf. C stray. d (C V ) I= I = C V. C= I t. Ι = dq dt

Χρ. Καβουσιανός Επίκουρος Καθηγητής

Οδηγίες εγκατάστασης και χρήσης του Quartus

Εφαρμογές Σειριακής Επικοινωνίας

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

για τις ρυθμίσεις LabView μέσα από το κανάλι και του καλωδίου USB.

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ: ΑΝΙΧΝΕΥΣΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΔΙΚΤΥΑ

Λογικά σύμβολα των CPU, RAM, ROM και I/O module

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

Πανεπιστήμιο Πατρών. Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ

Εργαστηριακή Άσκηση 4: Ιεραρχική σχεδίαση και προσχεδιασμένοι πυρήνες

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ


26-Nov-09. ΗΜΥ 210: Λογικός Σχεδιασμός, Χειμερινό Εξάμηνο Καταχωρητές 1. Διδάσκουσα: Μαρία Κ. Μιχαήλ

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών

ΑΝΑLOG TO DIGITAL CONVERTER (ADC)

ΗΜΥ 210 ΣΧΕΔΙΑΣΜΟΣ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Χειµερινό Εξάµηνο 2016 ΔΙΑΛΕΞΗ 15: Καταχωρητές (Registers)

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΚΑΤΑΧΩΡΗΤΕΣ ΟΛΙΣΘΗΤΕΣ

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΗΧΟΣ I. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστημάτων

ΗΜΥ 210: Σχεδιασμός Ψηφιακών Συστημάτων. Καταχωρητές 1

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α)

Το υλικό του υπολογιστή

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Γ ΕΠΑΛ 14 / 04 / 2019

Περίληψη. ΗΜΥ-210: Λογικός Σχεδιασµός Εαρινό Εξάµηνο Παράδειγµα: Καταχωρητής 2-bit. Καταχωρητής 4-bit. Μνήµη Καταχωρητών

Βασικές τεχνικές εισόδου/εξόδου δεδοµένων

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

7. ΚΑΤΑΧΩΡΗΤΕΣ ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών

Μαθαίνοντας το hardware του αναπτυξιακού

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

Δραστηριότητα 9: Σύνδεση ΗΥ με το πολύμετρο METEX 3870D μέσω σειριακής επικοινωνίας RS232 και εφαρμογή σε LabView

ΠΕΡΙΦΕΡΕΙΑΚΑ ΤΟΥ PIC16F887

Πτυχιακή Εργασία Σχεδίαση κυκλωμάτων επικοινωνίας με απλές οθόνες, με τη γλώσσα VHDL και υλοποίηση στις αναπτυξιακές πλακέτες LP-2900 και DE2.

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών

Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.

ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ

ΗΥ220: Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Χειµερινό Εξάµηνο

Behavioral & Mixed VHDL Architectures Finite State Machines in VHDL

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας

Δίκτυα Υπολογιστών. Επικοινωνίες ψηφιακών δεδομένων Εισαγωγικές έννοιες. Κ. Βασιλάκης

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects)

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ. Ιωάννης Σταυρακάκης, Καθηγητής Password: edi

«Σχεδιασμός Ολοκληρωμένων Κυκλωμάτων» Χειμερινό εξάμηνο Μηχανές Πεπερασμένων Καταστάσεων

ΚΛΙΣΙΜΕΤΡΟ V1.0 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΤΗ

Συστήµατα DAQ. 6.1 Εισαγωγή

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ

Μέτρηση Θερμοκρασίας με τον αισθητήρα TMP36. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Βασική δομή ενός προγράμματος στο LabVIEW.

Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά. Καταχωρητές και Μετρητές 2. Επιμέλεια Διαφανειών: Δ.

ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΑΡΑΓΚΙΑΟΥΡΗΣ ΝΙΚΟΛΑΟΣ

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ. Ιωάννης Σταυρακάκης, Καθηγητής Password: edi

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

ΠΛΗΡΟΦΟΡΙΚΗ 4 ο Μάθημα. Το Υλικό του Υπολογιστή

ΕΙΣΑΓΩΓΗ. Αρχιτεκτονική Η/Υ ΗΜΟΣ ΜΠΟΛΑΝΑΚΗΣ

ΗΥ220: Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Πανεπιστήµιο Κρήτης Χειµερινό Εξάµηνο

Ανάκτηση θερμοκρασιακού πεδίου σε περιστρεφόμενο (εν κινήσει)

Έλεγχος της Σειριακής Θύρας

ΗΜΥ211 Εργαστήριο Ψηφιακών Συστηµάτων

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Εκτέλεση προγράμματος

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Σειριακό Τερματικό Serial Terminal (Dumb Terminal)

Αρχιτεκτονική υπολογιστών

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ

606. ΜΗΧΑΤΡΟΝΙΚΗ ΙI. Περιεχόμενα. Σημειώσεις παραδόσεων θεωρίας-ενότητες 1η & 2η

Σχεδίαση Ψηφιακών Συστημάτων

Τεχνολογικό Eκπαιδευτικό Ίδρυμα Kρήτης TMHMA MHXANOΛOΓIAΣ. Δρ. Φασουλάς Γιάννης

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΗΥ220 Εργαστήριο Ψηφιακών Κυκλωµάτων Τµήµα Επιστήµης Υπολογιστών Χειµερινό Εξάµηνο

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1. Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

; Οι HL δείχνουν την επόµενη θέση µνήµης MVI A, 38H CMP H JNZ DO_FLMEM ; POP B. ; Ανάκτηση καταχωρητών απο το σωρό.

ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΕΦΑΡΜΟΓΕΣ ΚΑΤΑΧΩΡΗΤΩΝ ΟΛΙΣΘΗΣΗΣ

FHL Wind Data Logger By FURUNO Hellas SA

Ενσωματωμένα Συστήματα

Transcript:

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 1 Σε αυτή την εργαστηριακή άσκηση θα σχεδιάσετε ένα σύστημα που θα υλοποιεί έναν ενιαίο ασύγχρονο πομποδέκτη UART (Universal Asynchronous Receiver Transmitter). Το UART θα υλοποιηθεί στην αναπτυξιακή κάρτα ZedBoard και θα συνδεθεί με το PC σας μέσω μιας εξωτερικής γέφυρας USB-to-UART που θα τρέχει μια εφαρμογή σειριακού τερματικού για την επαλήθευση της σχεδίασης και την επίδειξη μιας full-duplex σειριακής επικοινωνίας σε διάφορες ταχύτητες. Βασικές έννοιες πρωτοκόλλου UART Το UART είναι ένα πρωτόκολλο ασύγχρονης λήψης και μετάδοσης που χρησιμοποιείται για εφαρμογές σειριακής επικοινωνίας. Ιστορικά, χρησιμοποιήθηκε ευρέως για τη σειριακή θύρα σε υπολογιστές σε συνδυασμό με το πρότυπο RS-232, όπου το λογισμικό του υπολογιστή προγραμμάτιζε το ρυθμό μεταφοράς bit και άλλες παραμέτρους. Σήμερα, τα UARTs χρησιμοποιούνται ευρέως σε εφαρμογές μικροελεγκτών για τη σύνδεση απομακρυσμένων συσκευών σε ψηφιακά συστήματα μέσω σειριακής επικοινωνίας. Η διαφορά με το ιστορικά πατρικό πρωτόκολλο είναι η χαλάρωση των ηλεκτρικών χαρακτηριστικών και η παράλειψη κάποιων side-band σημάτων, όπως στην υλοποίηση που σας ζητείται όπου θα υλοποιήσετε μόνο τα Rx και Tx. Για παράδειγμα, ένα σύστημα οργάνων ελέγχου με απομακρυσμένους αισθητήρες που μεταδίδουν δεδομένα σε σχετικά χαμηλούς ρυθμούς μεταφοράς bit μπορεί να χρησιμοποιήσει σειριακή μετάδοση την οποία διαχειρίζονται συστήματα UART. Ένα UART περιλαμβάνει έναν πομπό (transmitter) και έναν δέκτη (receiver). Ο πομπός στην ουσία είναι ένας καταχωρητής ολίσθησης που φορτώνει δεδομένα παράλληλα και τα ολισθαίνει στην έξοδο σειριακά (μετατροπή parallel-to-serial), με συγκεκριμένο ρυθμό. O δέκτης, δέχεται στην είσοδο σειριακά δεδομένα με τον ίδιο συγκεκριμένο ρυθμό και τα μετατρέπει πίσω στην αρχική παράλληλη μορφή (μετατροπή serial-toparallel). Όταν το κανάλι είναι σε κατάσταση αδράνειας (idle), δηλαδή δεν μεταφέρει δεδομένα, τότε βρίσκεται σε λογικό 1. Αυτό έχει προκύψει από τον παραδοσιακό τηλέγραφο όπου η γραμμή βρίσκονταν σε υψηλό επίπεδο τάσης ώστε να δείχνει ότι ο πομπός και η γραμμή δεν είχαν καταστραφεί. Η μετάδοση ξεκινά με ένα start bit, το οποίο βρίσκεται σε λογικό 0. Στην συνέχεια ακολουθούν τα data bits και ένα προαιρετικό bit ισοτιμίας (parity bit) για ανίχνευση σφάλματος (error detection). Η μετάδοση ολοκληρώνεται με τα stop bits που βρίσκονται σε λογικό 1. Η παρακάτω εικόνα δείχνει ένα παράδειγμα μετάδοσης 1 byte (8 data bits), 0 parity bits και 1 stop bit. Παρατηρείστε ότι πρώτα μεταδίδεται το LSBit της λέξης. Εικόνα 1. Σειριακή μετάδοση ενός byte

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Η σειριακή μετάδοση δεν περιλαμβάνει πληροφορία σχετικά με το ρολόι. Έτσι, πριν την έναρξη της μετάδοσης, ο πομπός και ο δέκτης θα πρέπει να έχουν συμφωνήσει σε ένα προκαθορισμένο σύνολο από παραμέτρους που συμπεριλαμβάνουν το baud rate (δηλ. τον αριθμό των bit ανά sec), τον αριθμό των data bits και των stop bits καθώς και την χρήση parity bits. Τα συνήθη baud rates είναι 1200, 2400, 4800, 9600, 19200, 28800, 38400, 57600, 115200 και 230400 baud. Έχουν προκύψει για ιστορικούς λόγους κυρίως αλλά για λόγους συνέπειας με τα περισσότερα διαθέσιμα προϊόντα και IP Cores της αγοράς. Προσέξτε οτι ο ρυθμός δεν φτάνει σε ιδιαίτερα υψηλές ταχύτητες, για αυτό το UART χρησιμοποιείται κυρίως για αργούς αισθητήρες ή ως διεπαφή ελέγχου. Αυτό προκύπτει από προβλήματα signal integrity που προκύπτουν σε υψηλές ταχύτητες στο φυσικό κανάλι του Rx και Tx που σε πιο σύγχρονα γρήγορα πρωτόκολλα (π.χ. Ethernet) αντιμετωπίζονται στο ηλεκτρικό επίπεδο αλλά και στο επίπεδο του πρωτοκόλλου (keywords: LVDS, Differential Signaling, 8/10b encoding) Αρχιτεκτονική ενός UART Η προτεινόμενη αρχιτεκτονική για την υλοποίηση του συστήματος UART παρουσιάζεται στην παρακάτω εικόνα και περιγράφεται στις παρακάτω παραγράφους. Εικόνα 2. Προτεινόμενη αρχιτεκτονική UART 2

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3 Εικόνα 3. Oversampling στον δέκτη του UART Το UART αποτελείται από 3 βασικές μονάδες: τη μονάδα δέκτη (receiver), τη μονάδα πομπού (transmitter) και τη μονάδα παραγωγής σημάτων χρονισμού αναφοράς (baud rate generator). Ο δέκτης και ο πομπός συνδέονται με το σύστημα του χρήστη (user data/control side) και με το σειριακό κανάλι (serial transmission side). Επιπλέον, τόσο ο πομπός όσο και ο δέκτης ενσωματώνουν ένα FIFO buffer. Με δεδομένο ότι το UART αφορά σε ασύγχρονη μετάδοση/λήψη, για τον καθορισμό της χρονικής στιγμής όπου ο δέκτης θα πραγματοποιήσει δειγματοληψία στα σειριακά δεδομένα εισόδου που μεταδίδονται με περίοδο 1/BaudRate, χρησιμοποιείται η τεχνική oversampling σε συνδυασμό με την ευθυγράμμιση της δειγματοληψίας στο κέντρο της περιόδου (1/BaudRate) των σειριακών δεδομένων εισόδου. Ο ρυθμός δειγματοληψίας είναι πολλαπλάσιο του Baud Rate. Ο πλέον συνήθης ρυθμός δειγματοληψίας (sampling rate) είναι x 16, δηλαδή κάθε σειριακό bit στην είσοδο δειγματοληπτείται 16 φορές. Για παράδειγμα έστω ότι απαιτείται Baud Rate 38400Hz και το διαθέσιμο ρολόι του συστήματος είναι 100MHz. Αυτό μπορεί να επιτευχθεί με διαίρεση της συχνότητας του συστήματος (100,000,000/(16 x 38400)=162.76 163 (το σφάλμα είναι της τάξης του 0.14% το οποίο εφόσον είναι <1% θεωρούμε ότι είναι αποδεκτό για την ορθή λειτουργία). Συνεπώς, ο baud-rate generator είναι ένας pulse generator που στο παράδειγμα θα πρέπει να παράγει ένα παλμό enable (en_x16_baud) που χρησιμοποιείται για το oversampling κάθε 163 κύκλους ρολογιού. Η τεχνική του oversampling παρουσιάζεται στην Εικόνα 3. Τα σειριακά δεδομένα εισόδου λαμβάνονται με περίοδο 1/BaudRate. Ο δέκτης χρησιμοποιεί την κατερχόμενη ακμή του start bit για την εκκίνηση ενός εσωτερικού μετρητή mod-16. Όταν ο εσωτερικός μετρητής δείξει το μέσο του start bit, μηδενίζει και επαναλαμβάνει ολοκληρώνοντας την μέτρηση και δείχνοντας πλέον στο μέσο του 1 ου data bit το οποίο γράφεται στον καταχωρητή Serial-Input Parallel-Output (SIPO). Αυτό επαναλαμβάνεται για το σύνολο των data bits και μπορεί να επεκταθεί για τα parity bits. Το βήμα αυτό επαναλαμβάνεται για τα stop bits που ακολουθούν τα data bits. Μετά την ορθή δειγματοληψία στο κέντρο της περιόδου και την ανίχνευση του start bit, την μετατροπή serial-to-parallel και την ανίχνευση του stop bit, τα data bits αποθηκεύονται παράλληλα στην FIFO του δέκτη (Receive FIFO). Η FIFO του δέκτη είναι σύγχρονη με το ρολόι του συστήματος. Όταν η FIFO δεν είναι κενή (empty) η έξοδος ελέγχου Rx_Valid του UART προς την πλευρά του χρήση είναι σε λογικό 1 που σημαίνει ότι υπάρχει τουλάχιστον μια λέξη δεδομένων στην Receive FIFO έτοιμη να διαβαστεί στην έξοδο δεδομένων Rx_data θέτοντας το σήμα ελέγχου 3

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Rx_Read σε λογικό 1. Εάν η Receive FIFO είναι fall-through τότε η λέξη δεδομένων ήδη βρίσκεται στην έξοδο δεδομένων και η ενεργοποίηση του σήματος Rx_Read σημαίνει «σε διάβασα, φέρε το επόμενο» (pop). Η έξοδος Rx_Perror σηματοδοτεί την παρουσία σφάλματος ισοτιμίας. Η μετάδοση των δεδομένων εξόδου από την πλευρά του χρήστη απαιτεί την εγγραφή των λέξεων δεδομένων στην FIFO του πομπού. Η FIFO του πομπού (Transmit FIFO) είναι σύγχρονη με το ρολόι του συστήματος. Όταν η Transmit FIFO δεν είναι γεμάτη (full), η έξοδος του δέκτη προς την πλευρά του χρήστη Tx_Ready βρίσκεται σε λογικό 1 που σημαίνει ότι υπάρχει ελεύθερη τουλάχιστον μια λέξη δεδομένων στην Transmit FIFO έτοιμη να γραφτεί στην είσοδο δεδομένων του πομπού Tx_Data θέτοντας το σήμα ελέγχου Tx_Write σε 1. Εάν γίνει εγγραφή όσο το σήμα Tx_Ready βρίσκεται σε λογικό 0 (δηλαδή η Transmit FIFO είναι γεμάτη), τότε τα δεδομένα εγγραφής αγνοούνται. Ο πομπός του UART αναλαμβάνει την σειριακή μετάδοση των δεδομένων που βρίσκονται στον FIFO buffer μέχρι να αδειάσει. Η σειριακή μετάδοση από τον πομπό είναι παρόμοια με αυτή του δέκτη. Ο πομπός διαβάζει την Transmit FIFO παράλληλα και εκτελεί μετατροπή parallel-to-serial. Παράλληλα, υπολογίζει στο parity bit. Ο πομπός λαμβάνει το σήμα χρονισμού αναφοράς (en_16x_baud) από τον baud-rate generator και παράγει τα σειριακά δεδομένα εξόδου με περίοδο (1/BaudRate) χρησιμοποιώντας έναν εσωτερικό μετρητή mod-16. 4

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 3 Εργαστηριακή άσκηση Στα πλαίσια του εργαστηριακού μέρους θα υλοποιήσετε ένα UART με 1 start bit, 8 data bits και 1 stop bit. Το UART θα συνδεθεί με PC που θα τρέχει εφαρμογή terminal (πχ. Termite για Windows, CuteCOM, PicoCOM για Linux) για την επαλήθευση της σχεδίασης και την επίδειξη μιας full-duplex σειριακής επικοινωνίας. Η πλευρά του user data/control του κυκλώματος επίδειξης θα υλοποιηθεί στην αναπτυξιακή κάρτα ZedBoard συνδέοντας την έξοδο δεδομένων του δέκτη Rx_Data στην είσοδο δεδομένων του πομπού (Tx_Data) (loop back στο user interface) συνδέοντας κατάλληλα τα σήματα ελέγχου (Tx_Write, Tx_Ready, Rx_Read, Rx_Valid). H αναπτυξιακή κάρτα ZedBoard, δεν παρέχει connectors για σειριακή μετάδοση ενώ τα ενσωματωμένα bridges USB-to-UART της κάρτας είναι δεσμευμένα από το PS. Συνεπώς θα πρέπει να χρησιμοποιηθεί ένα εξωτερικό hardware module που υλοποιεί το USB-to-UART bridge και το οποίο συνδέεται στο Pmod JB1. Το UART θα πρέπει να υποστηρίζει programmable baud-rate με την χρήση generics (για το baud-rate generator να σχεδιάσετε κύκλωμα ενός generic pulse generator). Η υλοποίηση της λογικής του πομπού και του δέκτη θα γίνει ως δύο διαφορετικά Finite State Machine (FSM) Για τις FIFO του πομπού και του δέκτη να χρησιμοποιήσετε τον FIFO Generator της Xilinx. Θα επιλέξετε First-Word Fall-Through FIFOs με Write Width=8 bits, Write Depth=16 που θα υλοποιηθούν ως Distributed RAM. Σχετικά με τα pin constraints, για τα σήματα RxD και TxD θα χρησιμοποιήσετε τους εξής ακροδέκτες των Pmod: RxD->JB3, TxD->JB2, η έξοδος σφάλματος ισοτιμίας Rx_PError στο Led0, για system clock θα χρησιμοποιήσετε τον κρύσταλλο των 100MHz, και για το reset το BTNU της αναπτυξιακής κάρτας. Για τα pin constraints συμβουλευτείτε το manual της κάρτας. Χρησιμοποιήστε οπωσδήποτε ηλεκτρικά χαρακτηριστικά 3.3V στα pins (IOSTANDARD LVCMOS33). Να χρησιμοποιήσετε το πρότυπο για το top level entity του UART από το eclass. Για την επαλήθευση της ορθής σχεδίασης με προσομοίωση να γράψετε κατάλληλο VHDL testbench Ελέγξτε τη λειτουργία του κυκλώματος αρχικά με προσομοίωση χρησιμοποιώντας διαφορετικά σενάρια testbenches από αυτό της επίδειξης. Για παράδειγμα, μπορείτε να συνδέσετε το UART βραχυκυκλώνοντας το TxD με το RxD (loop-back στη σειριακή γραμμή) και με το testbench να γράφετε την Transmit FIFO και να διαβάζετε την Receive FIFO. Τέλος ελέγξτε την λειτουργία του κυκλώματος στην αναπτυξιακή κάρτα ZedBoard συνδέοντας τη ZedBoard με το USB-to-UART bridge, προγραμματίζοντας το FPGA και χρησιμοποιώντας μια εφαρμογή terminal. Για την εφαρμογή terminal να ορίσετε την ορθή θύρα (θα τη βρείτε στα windows απο το hardware manager, στο Linux στο /dev συνήθως ttyusbxx) που βλέπει το PC σας το USB-to- UART bridge (πρώτα να βάλετε τον driver του συγκεκριμένου converter που θα χρησιμοποιήσουμε: 5

ΣΧΕΔΙΑΣΗ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Silicon Labs CP2102) και να θέσετε τις εξής παραμέτρους: Baud rate: 115200, Data Bits: 8, Stop bits: 1,Parity: No Flow control: None. Σχετικά με τη δυνατότητα line ending επιλέξτε «Append nothing» ή «No line end». Να επιδείξετε την ορθή λειτουργία στον εκπαιδευτή. 6