του ΚΩΣΤΗ ΝΙΚΟΛΑΟΥ ΑΜ: 3988
|
|
- Βαρβάρα Θεοτόκης
- 8 χρόνια πριν
- Προβολές:
Transcript
1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του ΚΩΣΤΗ ΝΙΚΟΛΑΟΥ ΑΜ: 3988 ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΣΥΝΘΕΤΗ ΣΥΧΝΟΤΗΤΩΝ ΜΕ ΒΡΟΧΟ ΚΛΕΙΔΩΜΕΝΗΣ ΦΑΣΗΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΩΣΤΑΣ ΕΥΣΤΑΘΙΟΥ Αριθμός Διπλωματικής Εργασίας : xxx ΠΑΤΡΑ 2002
2
3 ΠΡΟΛΟΓΟΣ Η παρούσα διπλωματική εργασία είχε ως στόχο το σχεδιασμό και την υλοποίηση ενός Συνθέτη Συχνοτήτων που ελέγχεται από τον υπολογιστή. Η σχεδίαση βασίστηκε στην εξαιρετικά διαδεδομένη μέθοδο σύνθεσης υψηλών συχνοτήτων με βρόχο κλειδωμένης φάσης (phase locked loop, PLL). Η ιδέα μιας τέτοιας εφαρμογής αποτελεί μέρος ενός ευρύτερου σχεδίου που διεξάγεται στο Εργαστήριο Ηλεκτρονικών Εφαρμογών, του τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών. Σκοπός της είναι να δημιουργηθεί ένα «Εργαστήριο Ηλεκτρονικών Οργάνων» το οποίο δε θα υστερεί σε τίποτα από τα συνηθισμένα εργαστήρια. Τα όργανα από τα οποία θα αποτελείται το Desk Top Lab θα είναι τα όργανα που συναντάμε συνήθως σε έναν τέτοιο χώρο (παλμογράφος, λογικός αναλυτής, γεννήτρια συχνοτήτων, τροφοδοτικό κ.α.), όμως το κόστος παραγωγής τους θα είναι σημαντικά μικρότερο και η ποιότητα λειτουργίας τους σαφώς καλύτερη. Κατά την ανάπτυξη της διπλωματικής αυτής απέκτησα πολυτιμότατες γνώσεις και εμπειρία στην επιστήμη του Ηλεκτρολόγου Μηχανικού, τόσο σε πρακτικό όσο και σε θεωρητικό επίπεδο. Αισθάνομαι λοιπόν την ανάγκη να ευχαριστήσω τον κ. Κ. Ευσταθίου, ο οποίος με την πολύτιμη και συνεχή βοήθεια του κατέστησε δυνατή την επιτυχή ολοκλήρωση της διπλωματικής. Πάτρα, 2002 Νίκος Κωστής
4
5 ΠΕΡΙΕΧΟΜΕΝΑ Κεφάλαιο 1 - Εισαγωγή 1.1 Η ιδέα του Desktop Lab Το θέμα της διπλωματικής Εργαλεία που χρησιμοποιήθηκαν Κεφάλαιο 2 - Θεωρία Έμμεσης Σύνθεσης Συχνοτήτων 2.1 Έμμεση σύνθεση συχνοτήτων Σύνθεση συχνοτήτων με βρόχο κλειδωμένης φάσης Phase-Frequency Detector (PFD) Ανακεφαλαίωση Περιγραφή του PLL που βασίζεται στον DIPA Περιγραφή της μεθόδου Μαθηματική ανάλυση της εξόδου του DIPA Η ανάγκη χρήσης ενός DAC Η χαρακτηριστική μεταφοράς του DIPA Ποιοτική περιγραφή του συνολικού βρόχου του PLL Μαθηματική ανάλυση του βρόχου του PLL Απλό κατωδιαβατό φίλτρο Ενεργό Lead / Lag φίλτρο 2 ης τάξης Ενεργό Lead / Lag φίλτρο 3 ης τάξης Σύγκριση του DIPA με το κλασσικό PLL Ανάλυση Αποτελέσματα Συμπεράσματα Κεφάλαιο 3 - Επικοινωνία του Συστήματος με τον Υπολογιστή 3.1 Η παράλληλη θύρα του υπολογιστή Enhanced Parallel Port Mode (EPP) EPP Data Write Cycle EPP Address Write Cycle EPP Data Read Cycle EPP Address Read Cycle Standard Parallel Port Mode (SPP) Το Πρωτόκολλο Επικοινωνίας Υλοποίηση του Πρωτοκόλλου Επικοινωνίας- Διαμόρφωση του PLD
6 Κεφάλαιο 4 - Σχεδίαση και Υλοποίηση της Κάρτας του Συνθέτη 4.1 Εισαγωγή - Βασικά μέρη της κάρτας Interface Unit Control Unit Application Unit Το FPGA Digital to Analog Converter (DAC) Το φίλτρο Το VCO Υλοποίηση της κάρτας (PCB) Κεφάλαιο 5 - Δομή και Περιεχόμενο του FPGA 5.1 Εισαγωγή στη λογική σχεδιασμού ψηφιακών κυκλωμάτων Ο προγραμματισμός του FPGA Μονάδα ελέγχου Το ρολόι Βασικά κυκλώματα στο frontend του FPGA Το frontend του DIPA Ο DIPA Το κύκλωμα tuning του VCO Κύκλωμα υπολογισμού του Κv - κύκλωμα μέτρησης συχνοτήτων Κεφάλαιο 6 - Επικοινωνία με το χρήστη - Ανάπτυξη του Λογισμικού 6.1 Εισαγωγή στη γλώσσα προγραμματισμού - Γενική δομή του προγράμματος Λειτουργικότητα του λογισμικού Αρχικοποίηση της κάρτας Ορισμός χαρακτηριστικών μεγεθών του συνθέτη Έλεγχος του συνθέτη Ο υπολογισμός του Κv ενός VCO Αρχικοποίηση της κάρτας μέσω του προγράμματος Προσπέλαση της Παράλληλης Θύρας Προγραμματισμός του FPGA Αρχικοποίηση δεδομένων του προγράμματος Βασικές συναρτήσεις του κώδικα Συμπεράσματα σχετικά με το πρόγραμμα Κεφάλαιο 7 - Μετρήσεις - Αποτελέσματα - Συμπεράσματα 7.1 Μετρήσεις του VCO (Kv) Μετρήσεις του συνθέτη συχνοτήτων Η έξοδος του DAC Ταχύτητα κλειδώματος του συνθέτη Μετρήσεις φασματικής καθαρότητας και θορύβου φάσης της εξόδου
7 Κεφάλαιο 1 Εισαγωγή Περιεχόμενα: 1.1 Η ιδέα του Desktop Lab Το θέμα της διπλωματικής Εργαλεία που χρησιμοποιήθηκαν... 5
8 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ 2
9 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ Η ιδέα του Desktop Lab Η υλοποίηση ενός «Ηλεκτρονικού Εργαστηρίου» αποτέλεσε την ιδέα πάνω στην οποία στηρίχτηκαν μια ομάδα διπλωματικών εργασιών. Σκοπός τους ήταν να κάνουν πιο προσιτή τη χρήση των οργάνων που συναντάμε σε ένα εργαστηριακό περιβάλλον, με τη βοήθεια του ηλεκτρονικού υπολογιστή. Το Desk Top Lab μπορεί πολύ εύκολα και με μικρό κόστος να αντικαταστήσει ένα υψηλών απαιτήσεων εργαστήριο, ενώ μπορεί να εγκατασταθεί ακόμα και στο σπίτι μας. Κάτι τέτοιο θα βοηθήσει στην εξοικείωση του Ηλεκτρολόγου Μηχανικού με πειράματα και εφαρμογές, που παλιότερα είχε τη δυνατότητα να κάνει μόνο στο εργαστήριο. Κάθε ένα από αυτά τα όργανα υλοποιείται πάνω σε μία κάρτα η οποία συνδέεται με ένα PC μέσω της παράλληλης θύρας του. Όλες οι κάρτες τοποθετούνται μέσα σε ένα ειδικά διαμορφωμένο κουτί. Έτσι το ηλεκτρονικό εργαστήριο στην τελική του μορφή θα είναι ένα ξεχωριστό περιφερειακό που θα μπορεί να συνδέεται είτε εσωτερικά είτε εξωτερικά στον υπολογιστή. Πολύ εύκολα θα μπορεί επίσης να γίνει και η επέκτασή του, προσθέτοντας ή αφαιρώντας κάρτες από το κουτί κάθε φορά που το απαιτούν οι ανάγκες μας. Οι προδιαγραφές σύμφωνα με τις οποίες σχεδιάστηκε το Desk Top Lab, μας δίνουν τη δυνατότητα να λειτουργούν ταυτόχρονα μέχρι και 16 τέτοιες συσκευές, αριθμός υπερ-αρκετός για τις ανάγκες μας. Ο χρήστης ελέγχει τις συσκευές από τον υπολογιστή, μέσα από το περιβάλλον Windows, με λογισμικό ειδικά διαμορφωμένο για κάθε μία από αυτές. Οι κάρτες που θα εφοδιάζουν το Desk Top Lab είναι οι παρακάτω : Ψηφιακός παλμογράφος (Digital Oscilloscope) Ψηφιακή γεννήτρια (Direct Digital Synthesizer) Συνθέτης Υψηλών Συχνοτήτων (High Frequency Synthesizer) Γεννήτρια Αυθαίρετων Κυματομορφών (Arbitrary Waveform Generator) Λογικός Αναλυτής (Logic Analyser) Αναλυτής Φάσματος (Spectrum Analyser) Μετρητής Συχνότητας (Frequency Counter) Ψηφιακό Πολύμετρο (Digital Multimeter) Τροφοδοτικό με έλεγχο ρεύματος και τάσης. Η μόνη απαίτηση για τη λειτουργία του Desk Top Lab είναι ένα PC που διαθέτει λειτουργικό σύστημα Windows. Κάτι τέτοιο βρίσκεται σήμερα σχεδόν παντού και κάνει έτσι εφικτή τη λειτουργία του ηλεκτρονικού εργαστηρίου ακόμα στο σπίτι μας. Τα βασικά πλεονεκτήματα πού έχει η ιδέα αυτή, όπως είπαμε και παραπάνω, είναι το μικρό κόστος και ο ελάχιστος χώρος πού καταλαμβάνουν τα όργανα του Desk Top Lab, σε σχέση με τα κοινά όργανα πού υπάρχουν στο εργαστήριο, χωρίς όμως κάτι τέτοιο να συνεπάγεται ανάλογη μείωση της ποιότητάς τούς. Οι υπολογιστές στις ημέρες μας έχουν συνεισφέρει πολλά σε όλους τους τομείς και τους χώρους εργασίας. Πιστεύουμε ότι μια τέτοια προσπάθεια είναι μια ακόμη χρήσιμη εφαρμογή των ηλεκτρονικών υπολογιστών στο χώρο του ηλεκτρολόγου μηχανικού. 3
10 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ Το θέμα της διπλωματικής Το θέμα της διπλωματικής είναι η σχεδίαση και υλοποίηση ενός συνθέτη συχνοτήτων. Ο συνθέτης αυτός βασίζεται μεν στην εξαιρετικά διαδεδομένη μέθοδο του βρόχου κλειδωμένης φάσης, χρησιμοποιεί όμως ως κύριο δομικό στοιχείο του τον ψηφιακό συσσωρευτή φάσης, μια τεχνική σύγκρισης φάσεων που έχει αναπτυχθεί από τον επιβλέποντα της διπλωματικής κ. Κ. Ευσταθίου. Η τεχνική αυτή διατηρεί όλα τα πλεονεκτήματα της κλασσικής μεθόδου, προσφέρει όμως αυξημένες επιδόσεις σε ότι αφορά στην ταχύτητα κλειδώματος της συχνότητας εξόδου, και στην φασματική καθαρότητα της τελευταίας. Σύγκριση των δύο τεχνικών θα γίνει στο κεφάλαιο 2. Ταυτόχρονα, όπως ήδη ειπώθηκε, η διπλωματική αυτή αποτελεί μέρος μιας ευρύτερης ομάδας διπλωματικών, οπότε υλοποιείται με παρόμοιο τρόπο με αυτές, διατηρεί δηλαδή ακριβώς τον ίδιο τρόπο επικοινωνίας με τον υπολογιστή. Το πρωτόκολλο που αναπτύχθηκε για την επικοινωνία αυτή θα συζητηθεί στο κεφάλαιο 3. Οι βασικές προδιαγραφές της κάρτας που θα υλοποιεί τον συνθέτη συχνοτήτων είναι οι εξής:!"παραγωγή τετραγωνικού παλμού. Το εύρος συχνοτήτων καθορίζεται από το VCO που θα χρησιμοποιηθεί.!"βήμα συχνότητας προγραμματιζόμενο. (Η υλοποίηση έγινε με βήμα 2000 Hz)!"Πλάτος τάσης του σήματος εξόδου 5 Vpp. Εκτός από τα παραπάνω χαρακτηριστικά υπάρχουν και κάποιες επιπλέον σημαντικές δυνατότητες του συνθέτη που είναι :!"Δυνατότητα συνεργασίας με εξωτερικό VCO. Αυτόματη εύρεση του συντελεστή Kv.!"Δυνατότητα διαμόρφωσης κατά Πλάτος (AM), Συχνότητα (FM) και Φάση (PM) της συχνότητας εξόδου με ένα εξωτερικό σήμα.!"δυνατότητα υπολογισμού συχνότητας που εφαρμόζεται σε είσοδο του FPGA. 4
11 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ Εργαλεία που χρησιμοποιήθηκαν Τόσο για το σχεδιασμό όσο και για την υλοποίηση του της διπλωματικής χρησιμοποιήθηκαν κάποια αναπτυξιακά εργαλεία, τα οποία επιλέχθηκαν έτσι ώστε να μας εξυπηρετούν και να ικανοποιούν τις απαιτήσεις μας. Αυτές ήταν αρχικά η σχεδίαση του συστήματος ώστε να πληροί τις απαραίτητες προδιαγραφές, έπειτα η κατασκευή του board που θα φιλοξενούσε τα διάφορα στοιχεία του συστήματος, καθώς επίσης και o προγραμματισμός ορισμένων από αυτά. Τέλος έπρεπε να γραφεί το λογισμικό που θα έλεγχε την κάρτα. Οι προγραμματιζόμενες συσκευές που χρησιμοποιήθηκαν είναι το PLD ATF22V10CQ της ATMEL και το FPGA EPF8636ALC84-4 της ALTERA. Ο ρόλος τους θα αναλυθεί αργότερα στη διπλωματική. Οι συσκευές αυτές απαιτούν συγκεκριμένο software των αντίστοιχων εταιριών για να μπορέσουν να χρησιμοποιηθούν σε εφαρμογές. Πιο συγκεκριμένα τα εργαλεία που χρησιμοποιήσαμε είναι τα παρακάτω: #" Το σχεδιαστικό πακέτο MAX+PLUS II της Altera (Ver.9.01), με το οποίο έγινε ο σχεδιασμός και η εξομοίωση των ψηφιακών κυκλωμάτων του FPGA. Επίσης το λογισμικό αυτό παράγει το binary αρχείο με το οποίο προγραμματίζεται το FPGA με τρόπο που θα αναλυθεί αργότερα. Όλα τα ψηφιακά κυκλώματα που παρουσιάζονται στη διάρκεια της διπλωματικής δημιουργήθηκαν είτε στον Schematic Editor του προγράμματος, είτε περιγράφηκαν με τις γλώσσες περιγραφής υλικού VHDL και AHDL, και πέρασαν από τους ενσωματωμένους compiler / synthesizer του πακέτου για να ενσωματωθούν στο τελικό project. Τέλος ιδιαίτερα χρήσιμος ήταν και ο Timing Analyzer του πακέτου με τον οποίο έγινε πρόβλεψη των καθυστερήσεων στους χρονισμούς των κρίσιμων μονοπατιών. #" Το σχεδιαστικό πακέτο PROTEL 99SE (service pack 6) στο οποίο βασίστηκε ουσιαστικά ο σχεδιασμός ολόκληρου του board της διπλωματικής. Με αυτό σχεδιάστηκαν τα σχηματικά διαγράμματα για το board και κατέβηκαν σε επίπεδο PCB. Επίσης με αυτό δημιουργήθηκαν τα αρχεία gerber που χρησιμοποιήθηκαν για την κατασκευή της πλακέτας. #" Το WinCupl της Atmel, χρησιμοποιήθηκε για το σχεδιασμό των Boolean συναρτήσεων στο PLD και τη δημιουργία του κατάλληλου αρχείου για τον προγραμματισμό του. Το πρόγραμμα διαθέτει επίσης και περιβάλλον λογικής εξομοίωσης (WinSim), με το οποίο έγινε ο έλεγχος του τελικού σχεδίου. #" Ο Programmer MICROMASTER LV 48, της ICETECH, που χρησιμοποιήθηκε για τον τελικό προγραμματισμό του PLD. #" Το μηχάνημα κατασκευής πρότυπων πλακετών, LPKF, με το οποίο «τυπώσαμε» την πλακέτα χρησιμοποιώντας το τελικό σχέδιο από το Protel. 5
12 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ #" Το μηχάνημα δημιουργίας των plated through, LPKF, με το οποίο έγινε η επιμετάλλωση στα vias και στα pins των εξαρτημάτων. #" Η γλώσσα προγραμματισμού Visual Basic (Ver. 6.0), με την οποία έγινε η δημιουργία του interface του συνθέτη. Με αυτό ο χρήστης μπορεί να επικοινωνεί με την κάρτα και να δίνει τις εντολές που χρειάζονται για τη ρύθμιση των διαφόρων επιλογών της. Το περιβάλλον επικοινωνίας είναι γραφικό (περιβάλλον Windows), κάτι που κάνει πιο εύκολη τη χρήση του. #" Ο Vector Signal Analyzer της Hewlett-Packard (model 89410A) που χρησιμοποιήθηκε για την ανάλυση του σήματος της συχνότητας εξόδου, και πιο συγκεκριμένα για την ανάλυση του θορύβου φάσης του σήματος και για την παρατήρηση της φασματικής καθαρότητας του. #" Ο mixed signal παλμογράφος της Agilent (model 54622D) που χρησιμοποιήθηκε κατά κόρον καθ όλη τη διάρκεια του ελέγχου της κάρτας και των μετρήσεων αυτής. 6
13 Κεφάλαιο 2 Θεωρία Έμμεσης Σύνθεσης Συχνοτήτων Περιεχόμενα: 2.1 Έμμεση σύνθεση συχνοτήτων Σύνθεση συχνοτήτων με βρόχο κλειδωμένης φάσης Phase-Frequency Detector (PFD) Ανακεφαλαίωση Περιγραφή του PLL που βασίζεται στον DIPA Περιγραφή της μεθόδου Μαθηματική ανάλυση της εξόδου του DIPA Η ανάγκη χρήσης ενός DAC Η χαρακτηριστική μεταφοράς του DIPA Ποιοτική περιγραφή του συνολικού βρόχου του PLL Μαθηματική ανάλυση του βρόχου του PLL Απλό κατωδιαβατό φίλτρο Ενεργό Lead / Lag φίλτρο 2 ης τάξης Ενεργό Lead / Lag φίλτρο 3 ης τάξης Σύγκριση του DIPA με το κλασσικό PLL Ανάλυση Αποτελέσματα Συμπεράσματα 34
14 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Έμμεση σύνθεση συχνοτήτων Η έμμεση σύνθεση συχνοτήτων είναι η δημοφιλέστερη σήμερα μέθοδος για τη σύνθεση υψηλών συχνοτήτων. Συναντάται στις περισσότερες σημερινές εμπορικές εφαρμογές, είτε πρόκειται για συσκευές ευρείας καταναλωτικής χρήσης, είτε για εξειδικευμένες εφαρμογές τηλεπικοινωνιών και ηλεκτρονικών υπολογιστών. Οι βασικότερες αιτίες που οδηγούν τους σχεδιαστές να επιλέξουν αυτή τη μέθοδο είναι: ο φθηνός και εύκολος τρόπος υλοποίησης ο ελάχιστος όγκος κατασκευής η μικρή κατανάλωση η πολύ καλή ποιότητα του σήματος εξόδου (όταν η ταχύτητα σύγκλισης δεν είναι κρίσιμος παράγοντας στη σχεδίαση του συνθέτη) είναι εφικτή οποιαδήποτε διαμόρφωση της εξόδου Με βάση τη μέθοδο αυτή η επιθυμητή συχνότητα παράγεται συγκρίνοντας μια σταθερή συχνότητα αναφοράς (reference frequency) με την τρέχουσα συχνότητα εξόδου. Ανάλογα με το αν συγκρίνουμε φάσεις ή συχνότητες έχουμε δύο βασικές υποκατηγορίες της μεθόδου, την σύνθεση συχνοτήτων με βρόχο κλειδωμένης φάσης και την σύνθεση συχνοτήτων με βρόχο κλειδωμένης συχνότητας. Θα περιγραφεί εδώ η πρώτη κατηγορία, που είναι και η συνηθέστερη. Σύνθεση συχνοτήτων με βρόχο κλειδωμένης φάσης Η βασική δομή του συμβατικού συνθέτη συχνοτήτων με τη μέθοδο του βρόχου κλειδωμένης φάσης φαίνεται στο παρακάτω σχήμα: Fref divider (/Nref) Fstep phase detector low-pass filter VCO Fout programmable divider (/Nout) Σχ Βασικό σχεδιάγραμμα του βρόχου κλειδωμένης φάσης Το σημαντικότερο στοιχείο του βρόχου είναι ο συγκριτής φάσης. Ως έξοδο έχει μια κυματομορφή της οποίας το DC περιεχόμενο είναι ανάλογο της διαφοράς φάσης μεταξύ των δύο εισόδων του. Η μια είσοδος είναι η συχνότητα αναφοράς Fref διαιρεμένη κατά Nref που μας δίνει την συχνότητα βήματος του συνθέτη Fstep. Η άλλη είσοδος έρχεται από τον κλάδο της ανάδρασης και είναι η συχνότητα εξόδου που παράγεται από ένα ταλαντωτή ελεγχόμενο από τάση (VCO) διαιρεμένη δια την τιμή Nout. Η συμπεριφορά του συγκριτή φάσης καθορίζει σε μεγάλο βαθμό την απόδοση του συνθέτη, οπότε η επιλογή του χρίζει μεγάλης σημασίας. Έχουν προταθεί αρκετές μέθοδοι υλοποίησης του, οι οποίες και θα μελετηθούν παρακάτω. 2
15 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Επειδή κατά κανόνα η μετατροπή της διαφοράς φάσης σε τάση δημιουργεί ανεπιθύμητες υψηλές συχνότητες, είναι αναγκαία η χρησιμοποίηση ενός κατωδιαβατού φίλτρου στην έξοδο του συγκριτή. Το φίλτρο αυτό απορρίπτει τις συχνότητες αυτές και οδηγεί τον ταλαντωτή με μια σταθερή τάση, οπότε ο τελευταίος παράγει μια σταθερή συχνότητα. Στον κλάδο ανάδρασης η σταθερή αυτή συχνότητα εξόδου διαιρείται με τον ακέραιο αριθμό Nout (συνεπώς διαιρείται και η φάση της εξόδου) και κλείνει τον βρόχο, οδηγώντας όπως είπαμε την είσοδο του συγκριτή. Όταν ο βρόχος είναι κλειδωμένος (σε σταθερή κατάσταση) οι είσοδοι στον συγκριτή φάσης βρίσκονται σε μια σταθερή διαφορά φάσης, και όχι απαραίτητα μηδενική. Βρίσκονται όμως σε μηδενική διαφορά συχνότητας (αυτό είναι και το πλεονέκτημα έναντι του βρόχου κλειδωμένης συχνότητας όπου σταθερή διαφορά των δύο εισόδων του συγκριτή είναι φυσικά μη επιτρεπτή). Αυτή η διαφορά φάσης είναι τέτοια ώστε να προκαλεί στην έξοδο του συγκριτή τάση τέτοια που να οδηγεί την έξοδο VCO στην επιθυμητή συχνότητα. Αφού οι συχνότητες στην είσοδο του συγκριτή είναι ίσες θα ισχύει: Fstep = Fout/Nout Fout = Nout. Fstep Fout = (Nout / Nref). Fref Η συχνότητα αναφοράς Fref παράγεται από κρυσταλλικό ταλαντωτή και έχει άριστα χαρακτηριστικά. Ο αριθμός Nref είναι σταθερός και επιλέγεται ανάλογα με το επιθυμητό βήμα συχνότητας του συνθέτη. Συνεπώς βλέπουμε ότι μπορούμε να καθορίσουμε τη συχνότητα εξόδου του συνθέτη ελέγχοντας τον αριθμό Nout του προγραμματιζόμενου διαιρέτη. Η σταθερότητα της συχνότητας εξόδου είναι ανάλογη της συχνότητας Fstep. Η τελευταία πρέπει να είναι αρκετά μικρή αφού συνήθως θέλουμε και το ελάχιστο βήμα συχνότητας του συνθέτη να είναι μικρό. Αυτό όμως οδηγεί σε βρόχο που συγκλίνει με αργό ρυθμό στην επιθυμητή συχνότητα. Όπως ειπώθηκε η έξοδος του συγκριτή φάσης είναι μια ψηφιακή κυματομορφή, το DC περιεχόμενο της οποίας είναι ανάλογο της διαφοράς φάσης των δύο εισόδων του. Ο σκοπός του κατωδιαβατού φίλτρου είναι να εξάγει αυτό το DC περιεχόμενο για να οδηγήσει το VCO, απορρίπτοντας τις αρμονικές συνιστώσες της κυματομορφής. Αυτό μας οδηγεί σε ένα από τα σημαντικότερα προβλήματα του συνθέτη. Όσο περισσότερο απορρίπτουμε το AC περιεχόμενο τόσο κερδίζουμε σε ποιότητα του σήματος εξόδου, έτσι όμως μειώνουμε το bandwidth του, κάνοντας τον βρόχο πιο αργό. Η συχνότητα Fstep είναι η βασική αρμονική της εξόδου του συγκριτή, και όπως είπαμε συνήθως επιλέγουμε μικρή συχνότητα Fstep (για να έχουμε ικανοποιητικό βήμα συχνότητας). Άρα συνήθως το φίλτρο είναι αναγκαίο να είναι πολύ «στενό» με σκοπό να αποκόπτει την μικρή συχνότητα Fstep, κάτι που οδηγεί σε βρόχο με αργή σύγκλιση στην επιθυμητή συχνότητα. Είναι σημαντικό να οριστούν εδώ δύο σημαντικές έννοιες της έμμεσης σύνθεσης συχνοτήτων. Η πρώτη είναι η περιοχή κλειδώματος (lock range) που ορίζει το μέγιστο αποδεκτό βήμα συχνότητας ενώ ο βρόχος είναι ήδη κλειδωμένος. 3
16 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Όταν ο χρήστης ζητήσει μια αλλαγή στη συχνότητα τότε για όσο χρόνο ο βρόχος βρίσκεται στην διαδικασία σύγκλισης ο συγκριτής φάσης έχει στην έξοδο του την διαφορά των δύο συχνοτήτων εισόδου. Όσο μεγαλύτερο είναι το ζητούμενο βήμα συχνότητας τόσο μεγαλύτερη είναι και η διαφορά συχνότητας που θα εμφανιστεί αρχικά στην έξοδο του. Αν το φίλτρο απορρίψει την διαφορά αυτή τότε ο βρόχος θα ξεκλειδώσει. Η δεύτερη είναι περιοχή σύλληψης (capture range) που ορίζει την διαφορά της συχνότητας εξόδου του βρόχου όταν αυτός δεν είναι κλειδωμένος και της επιθυμητής συχνότητας. Επειδή όπως είπαμε το βασικότερο δομικό στοιχείο του βρόχου είναι ο συγκριτής φάσης, θα αναλύσουμε διεξοδικά τον πιο διαδεδομένο εξ αυτών που είναι ο Phase-Frequency Detector. Phase-Frequency Detector (PFD) Ο συγκριτής φάσης PFD φαίνεται στο σχήμα 2.3. Υλοποιήθηκε για πρώτη φορά από την Motorola στο ολοκληρωμένο MC4044. Είναι ψηφιακός και ανιχνεύει πίπτουσες παρυφές στις εισόδους του. Έτσι οι κυματομορφές εισόδου δεν χρειάζεται να έχουν duty cycle ίσο με 50% όπως σε άλλους συγκριτές φάσης. Αυτό όμως έχει ως συνέπεια τη μείωση της βασικής συχνότητας των αρμονικών εξόδου στο μισό που αναγκάζει τον σχεδιαστή του βρόχου να χρησιμοποιήσει φίλτρο με χαμηλότερη συχνότητα αποκοπής. Σημαντικό πλεονέκτημα του PFD είναι η ευαισθησία του στη διαφορά συχνότητας. Συγκεκριμένα το DC περιεχόμενο της εξόδου είναι ανάλογο της διαφοράς φάσης μόνο όταν οι δύο συχνότητες εισόδου είναι ίδιες. Όταν οι δύο συχνότητες είναι διαφορετικές τότε το DC περιεχόμενο της εξόδου είναι «σχεδόν ανάλογο» της διαφοράς των δύο συχνοτήτων. Εκτός αυτού ο PFD έχει γραμμική περιοχή από -2π έως 2π (όπως φαίνεται στο σχήμα 2.2), η οποία και αναδιπλώνεται έξω από αυτή την περιοχή (δεν υπάρχουν δηλαδή ανάποδες κλίσεις). Αυτό σημαίνει ότι μπορεί να μετρήσει οποιαδήποτε διαφορά φάσης. Συνεπώς έχει απεριόριστο capture και lock range. Σχ Χαρακτηριστική μεταφοράς του PFD Το κέρδος του ισούται προφανώς με Kd = Vfs / (2. 2π) Volt/rad. 4
17 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Σχ Υλοποίηση του phase frequency detector Όπως φαίνεται στο σχήμα αποτελείται από δύο negative edge triggered flip-flops, των οποίων οι είσοδοι D είναι μονίμως high. Όταν έρθει πίπτουσα παρυφή της εισόδου U1 τότε η έξοδος up μεταβαίνει σε υψηλή στάθμη. Αν συνεχίσουν να έρχονται παλμοί στην είσοδο U1 η κατάσταση της εξόδου του συγκριτή δεν αλλάζει. Σε περίπτωση που έρθει ένας παλμός από την είσοδο U2 ενώ η έξοδος up είναι high τότε για ελάχιστο χρονικό διάστημα η έξοδος down μεταβαίνει στην χαμηλή στάθμη και η AND πύλη (G1) καθαρίζει (reset) τα δύο flip-flop. Αντίστοιχα αν προηγηθεί η πίπτουσα παρυφή στην είσοδο U2 τότε η έξοδος down μεταβαίνει σε χαμηλή στάθμη και η εμφάνιση πίπτουσας παρυφής στην U1 θα καθαρίσει πάλι τα δύο flipflop. Παρατηρούμε λοιπόν ότι η σταθερή κατάσταση του συγκριτή είναι up = low και down = high, όταν δηλαδή δεν έχουμε κατερχόμενη παρυφή σε καμία από τις U1 ή U2. Συνεπώς σε αυτή την κατάσταση και με δεδομένο ότι η τάση του σημείου εξόδου OUT του συγκριτή είναι μικρότερη από την τάση της λογικής στάθμης που αντιστοιχεί στο 1 και μεγαλύτερη από την τάση της λογικής στάθμης που αντιστοιχεί στο 0, οι δίοδοι D1, D2 δεν άγουν και έτσι η έξοδος του συγκριτή βρίσκεται σε κατάσταση υψηλής εμπέδησης (tri-stated). Οι δύο άλλες σταθερές καταστάσεις στις οποίες μπορεί να βρεθούν οι έξοδοι up και down του συγκριτή ενεργοποιούν μια εκ των δύο διόδων. Έτσι στην περίπτωση που έχουμε προήγηση της εισόδου U1 ο συγκριτής βρίσκεται στην κατάσταση up = high, down = high και άρα άγει η δίοδος D1 και ρέει ρεύμα από τον συγκριτή προς το φίλτρο. Στην περίπτωση που προηγείται η U2 ο συγκριτής βρίσκεται στην κατάσταση up = low, down = low με αποτέλεσμα να άγει η δίοδος D2 και να ρέει ρεύμα από το φίλτρο προς το συγκριτή. Τέλος η κατάσταση up = low, down = high δεν είναι σταθερή και μεταπίπτει με καθυστέρηση ίση με αυτή της AND πύλης στην κατάσταση up = low και down = high. Συνοπτικά η λειτουργία του PFD φαίνεται στον παρακάτω πίνακα: 5
18 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Up Down Έξοδος συγκριτή Περιγραφή 0 0 Low Προήγηση φάσης της κυματομορφής U2 0 1 Tri-state Κατάσταση ισορροπίας 1 0 invalid Μετάπτωση στην προηγούμενη κατάσταση 1 1 High Προήγηση φάσης της κυματομορφής U1 Πίνακας Οι καταστάσεις του PFD Στις περισσότερες των περιπτώσεων ο PFD οδηγεί κάποιο ενεργό φίλτρο, όπως φαίνεται και στο σχήμα 2.4. Σχ Το σύστημα PFD - LPF του συμβατικού συνθέτη συχνοτήτων Όταν ο βρόχος είναι κλειδωμένος τότε ο PFD βρίσκεται στην κατάσταση ισορροπίας - tristate, οπότε δεν είναι δυνατόν να ρέει ρεύμα μέσα από την αντίσταση R1. Έτσι η τάση εξόδου του φίλτρου (που είναι ολοκληρωτής) παραμένει σταθερή (ο πυκνωτής είναι φορτισμένος σε μια τάση. Όμως λαμβάνοντας υπ όψιν ότι: Η συχνότητα του VCO μεταβάλλεται με την θερμοκρασία, το χρόνο και γενικά δεν είναι ιδιαίτερα σταθερή για σταθερή τάση εισόδου, Η τάση εξόδου του φίλτρου δεν είναι σταθερή για μηδενική είσοδο επειδή υπάρχει διαρροή στον πυκνωτή, και επειδή ο τελεστικός ενισχυτής χρειάζεται κάποιο μικρό ρεύμα για την πόλωση του (τυπική τιμή περίπου 100 pa) γίνεται φανερό ότι ο PFD είναι υποχρεωμένος να διορθώνει συνεχώς την τάση εξόδου του LPF γιατί τελικά ακόμα και όταν ο βρόχος είναι κλειδωμένος, υπάρχει διαφορά φάσης μεταξύ των δύο σημάτων εισόδου. Στο σχήμα 2.5 παρουσιάζεται η έξοδος του PFD και του LPF με δεδομένες τις εισόδους U1 και U2. Όταν η διαφορά φάσης μεταξύ των δύο εισόδων είναι μεγάλη η έξοδος του PFD μεταβαίνει στην κατάσταση low ή high, ανάλογα με το πρόσημο της διαφοράς φάσης που διαπιστώθηκε. Η χρονική διάρκεια που θα παραμείνει σε αυτή την κατάσταση είναι ανάλογη της διαφοράς φάσης των δύο εισόδων. Το LPF είναι ένα ενεργό φίλτρο που ολοκληρώνει τον παλμό διόρθωσης φάσης. Όσο μεγαλύτερη είναι η διάρκεια του παλμού, τόσο μεγαλύτερη είναι 6
19 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ και η τελική μεταβολή στην τάση εξόδου του φίλτρου. Είναι αναγκαίο να σημειωθεί ότι ο ρυθμός με τον οποίο γίνονται οι διορθώσεις τάσης στην έξοδο του φίλτρου είναι ίδιος με την συχνότητα των δύο κυματομορφών εισόδου. U1 U2 PFD Out LPF Out Σχ Η συμπεριφορά του συστήματος PFD-LPF κατά την σύγκλιση του βρόχου Όταν ο βρόχος είναι κλειδωμένος, ο PFD διορθώνει συνεχώς την τάση εξόδου του φίλτρου οδηγώντας το με στενούς παλμούς εξόδου. Παρατηρούμε ότι ακόμα και όταν ο βρόχος είναι σε ηρεμία ο PFD κάνει μικροδιορθώσεις με συχνότητα ίση με την συχνότητα βήματος του συνθέτη. Οι μικροδιορθώσεις αυτές παράγουν μια κυματομορφή στην έξοδο του LPF όπως αυτή του σχήματος 2.6. Όταν το VCO οδηγείται με μια κυματομορφή σαν αυτή του σχήματος είναι αναμενόμενο να παράγει αρμονικές και θόρυβο (jitter) στην συχνότητα εξόδου. U1 U2 PFD Out LPF Out Σχ Η συμπεριφορά του συστήματος PFD-LPF στην κατάσταση ηρεμίας Έχει παρατηρηθεί πειραματικά ότι ο PFD έχει μια ασυνέχεια στη χαρακτηριστική μεταφοράς του στο σημείο 0, όπως φαίνεται με λεπτομέρεια στο σχήμα 2.7. Σχ Η νεκρή ζώνη στη χαρακτηριστική μεταφοράς του PFD 7
20 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Είναι πράγματι πολύ δύσκολο να ανιχνευθεί σχεδόν μηδενική διαφορά φάσης. Έτσι όταν η χρονική διαφορά μεταξύ των δύο πιπτουσών παρυφών των κυματομορφών εισόδου του PFD είναι πολύ μικρή, τότε η έξοδος του PFD δεν αντιδρά και έτσι παρ όλο που έχουμε μια μικρή διαφορά φάσης η έξοδος του PFD αντιστοιχεί στην μηδενική διαφορά φάσης. Έτσι εισάγεται jitter στον βρόχο. Επίσης η περιοχή αυτή παρουσιάζει και σημεία με πολύ μεγάλο κέρδος (απότομη κλίση) τα οποία είναι δυνατόν να ξεκλειδώσουν το PLL και να ρίξουν τον βρόχο σε αστάθεια. Η περιοχή αυτή ονομάζεται νεκρή ζώνη (dead zone) και είναι καλό, λόγω της μη γραμμικότητας της, να μην χρησιμοποιείται. Ο σχεδιαστής του βρόχου φροντίζει λοιπόν να υπάρχει μια πολύ μικρή διαρροή ρεύματος στο φίλτρο έτσι ώστε ο PFD προσπαθώντας να εξισορροπήσει αυτές τις απώλειες ρεύματος να έχει στην έξοδό του ένα παλμό πολύ μικρής χρονικής διάρκειας, όπως αυτόν που φαίνεται στο σχήμα 2.8. U1 U2 PFD Out LPF Out Σχ Η συμπεριφορά του PFD - LPF στην κατάσταση ηρεμίας, με μικρή διαρροή ρεύματος στο φίλτρο Όταν υπάρχει διαρροή ρεύματος στο σύστημα του ολοκληρωτή είτε διότι υπάρχουν απώλειες στον πυκνωτή, είτε διότι ο τελεστικός ενισχυτής χρειάζεται μια μικρή ποσότητα ρεύματος για να πολωθεί, τότε η τάση εξόδου του ολοκληρωτή μειώνεται συνεχώς όπως φαίνεται στο σχήμα 2.8. Αυτές οι διαρροές πρέπει να εξισορροπηθούν από ρεύμα που θα παρέχει ο PFD. Συνεπώς πρέπει οι δύο κυματομορφές να βρίσκονται συνεχώς σε μια διαφορά φάσης τόση όση χρειάζεται για να αντισταθμιστούν οι διαρροές ρεύματος. Έτσι η κυματομορφή εξόδου του LPF θα είναι ένας τριγωνικός παλμός σαν αυτόν που φαίνεται στο σχήμα 2.8. Οδηγώντας το VCO με μια είσοδο σαν αυτή, ουσιαστικά διαμορφώνουμε τη συχνότητα εξόδου με μια τριγωνική κυματομορφή κατά FM. Σαν αποτέλεσμα έχουμε ανεπιθύμητες αρμονικές στην έξοδο. Είναι προφανές ότι όσο μεγαλύτερη είναι η διαρροή ρεύματος στο κύκλωμα του ολοκληρωτή τόσο μεγαλύτερο θα είναι το πλάτος του τριγωνικού παλμού εξόδου με συνέπεια την αύξηση του πλάτους των ανεπιθύμητων αρμονικών. Συμπεράσματα για τον PFD Ο PFD δειγματολαμβάνει την διαφορά φάσης μεταξύ των δύο ψηφιακών κυματομορφών εισόδου με συχνότητα ίση με τη συχνότητα τους, που στην περίπτωση του συμβατικού PLL ισούται με την συχνότητα βήματος Fstep. 8
21 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Η έξοδος του PFD έχει την δυνατότητα να λάβει τρεις καταστάσεις (high, low, tri-state) με την βοήθεια των οποίων οδηγεί το φίλτρο / ολοκληρωτή στην επιθυμητή αν πάσα στιγμή τάση εξόδου. Θεωρητικά όταν ο βρόχος βρίσκεται σε κατάσταση ισορροπίας τότε η διαφορά φάσης μεταξύ των δύο εισόδων είναι μηδενική και έτσι η έξοδος του PFD μεταβαίνει στην κατάσταση tristate. Ως εκ τούτου η τάση του ολοκληρωτή είναι -θεωρητικά- σταθερή και συνεπώς και η συχνότητα εξόδου είναι σταθερή και ίση με την επιθυμητή. Δυστυχώς όμως οι διάφοροι παράγοντες που προαναφέρθηκαν όπως η ολίσθηση και ο θόρυβος του VCO, διαρροές και θόρυβος του ολοκληρωτή, καθιστούν αδύνατη την επιτυχία της μηδενικής διαφοράς φάσης με συνέπεια την ύπαρξη ανεπιθύμητων αρμονικών (spurious outputs) στην συχνότητα εξόδου. Ανακεφαλαίωση Το μεγάλο πλεονέκτημα του συνθέτη συχνοτήτων που είναι βασισμένος σε βρόχο κλειδωμένης φάσης είναι η εύκολη υλοποίηση του. Η ποιότητα εξόδου του είναι δυνατόν να ικανοποιήσει πολύ αυστηρές προδιαγραφές και επιπλέον είναι εφικτή η οποιαδήποτε διαμόρφωση της. Οι επιδόσεις του συνθέτη στο μέγεθος, την κατανάλωση ισχύος και την ικανότητα προγραμματισμού είναι εξαιρετικές. Επιπλέον έχει τη δυνατότητα να συνθέσει πολύ μεγάλες συχνότητες σε αντίθεση με την τεχνική σύνθεσης DDS. Το βασικό του μειονέκτημα είναι ο αργός ρυθμός δειγματοληψίας της διαφοράς φάσης. Αυτό έχει ως συνέπεια την χαμηλή ταχύτητα σύγκλισης κατά την διαδικασία αλλαγής της συχνότητας, αφού χρειάζεται σημαντικός αριθμός μετρήσεων για να βρεθεί ο βρόχος σε ηρεμία. Συνεπώς αφού η συχνότητα δειγματοληψίας είναι αυτή της συχνότητας βήματος του συνθέτη, δεν ενδείκνυται η χρήση του συμβατικού PLL σε εφαρμογές όπου απαιτείται ταυτόχρονα γρήγορη σύγκλιση και μικρό βήμα συχνότητας. Έχουν αναπτυχθεί και μελετηθεί διάφορες τεχνικές βελτίωσης των επιδόσεων της μεθόδου. Οι τεχνικές αυτές, όπως είναι φυσικό, εστιάζουν τις περισσότερες φορές στη βελτίωση του συγκριτή φάσης. Δεν είναι σκοπός του παρόντος κειμένου να αναφέρει και να εξηγήσει όλες αυτές τις προτάσεις. Αναλύεται όμως παρακάτω μια συγκεκριμένη καινούρια σχεδίαση συγκριτή φάσης, αφού είναι αυτή η οποία χρησιμοποιείται στην υλοποίηση του PLL του συνθέτη συχνοτήτων αυτής της διπλωματικής. 9
22 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Περιγραφή του PLL που βασίζεται στον DIPA Αντί για τον κλασσικό συγκριτή φάσης (PFD) που χρησιμοποιείται στις περισσότερες σχεδιάσεις PLL, χρησιμοποιήθηκε όπως είπαμε μια σχετικά καινούρια τεχνική εύρεσης της διαφοράς φάσης μεταξύ συχνοτήτων, αυτή που βασίζεται στον Dual Input Phase Accumulator (DIPA). Έτσι κρίνεται αναγκαίο πριν από οποιαδήποτε περιγραφή της υλοποίησης της διπλωματικής, να αναλυθεί το βασικό αυτό στοιχείο του PLL, το οποίο έτσι και αλλιώς είναι ο σημαντικότερος παράγοντας για την σωστή λειτουργία του συνθέτη. Με χρήση του DIPA επιτυγχάνεται η ταχύτατη δειγματοληψία της διαφοράς φάσης δύο συχνοτήτων. Η έξοδός του ενημερώνεται με ταχύτατους ρυθμούς δίνοντας την ικανότητα στο συνθέτη συχνοτήτων να συγκλίνει ταχύτατα στην επιθυμητή συχνότητα. Το bandwidth του βρόχου μπορεί και πρέπει να είναι πολύ μεγάλο. Αφ ενός μπορεί γιατί οι AC συνιστώσες του σήματος εξόδου του DIPA βρίσκονται σε πολύ υψηλές συχνότητες και αφ ετέρου πρέπει να είναι μεγάλο για να επιτυγχάνεται η γρήγορη σύγκλιση και η καλή ποιότητα του φάσματος εξόδου. Περιγραφή της μεθόδου Για την κατανόηση της μεθόδου, θεωρούμε το εξής παράδειγμα. Έστω ότι η συχνότητα αναφοράς είναι μια σταθερή συχνότητα παραγόμενη από κρυσταλλικό ταλαντωτή με κανονικοποιημένη τιμή 5 και ότι η επιθυμητή συχνότητα εξόδου έχει τιμή 7 όπως φαίνεται στο σχήμα 2.9. Ο βρόχος βρίσκεται σε ηρεμία. Σχ Η τιμή της φάσης των δύο συχνοτήτων εισόδου και η διαχείριση τους από τον κοινό PFD και από τον DIPA Για να μπορέσουμε να συγκρίνουμε τις δύο φάσεις πρέπει να τροποποιήσουμε τον ρυθμό ροής των δύο φάσεων έτσι ώστε να γίνει ίδιος και για τις δύο συχνότητες. 10
23 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Η κοινή μέθοδος σύνθεσης συχνότητας διαιρεί τις δύο φάσεις, έτσι ώστε να έχουμε πτώση του ρυθμού αλλαγής στο ίδιο επίπεδο. Αυτό έχει σαν αποτέλεσμα την υποδειγματοληψία της φάσης των δύο συχνοτήτων. Με χρήση ψηφιακών κυκλωμάτων (ψηφιακοί απαριθμητές) διαιρούνται οι ρυθμοί αλλαγής φάσης των δύο συχνοτήτων (5 και 7) με τους κατάλληλους αριθμούς και τελικά υποβιβάζονται σε ρυθμούς ανάλογους με τον μέγιστο κοινό διαιρέτη των δύο συχνοτήτων. Στο σχήμα 2.9 βλέπουμε ότι με την κλασσική μέθοδο έχουμε υποβάθμιση της ροής της φάσης στη συχνότητα 1. Μια άλλη μέθοδος είναι να πολλαπλασιάσουμε τους δύο ρυθμούς αλλαγής φάσης έτσι ώστε να εξομοιωθούν με το ελάχιστο κοινό πολλαπλάσιο των δύο συχνοτήτων. Με τον τρόπο αυτό η δειγματοληψία των δύο φάσεων διατηρείται σε μέγιστο ρυθμό αφού δεν είναι ανάγκη να υποβιβάσουμε τους δύο άνισους ρυθμούς αλλαγής φάσης. Η μέθοδος DIPA χρησιμοποιεί αυτή την τεχνική. Ο πολλαπλασιασμός της φάσης της κάθε συχνότητας επιτυγχάνεται με τη χρήση ενός ψηφιακού συσσωρευτή (accumulator) η τιμή του οποίου μεταβάλλεται σε κάθε ανιούσα παρυφή των κυματομορφών εισόδου. Επίσης σημειώνεται ότι δεν είναι ανάγκη να υπολογιστεί ξεχωριστά η τιμή της κανονικοποιημένης φάσης της κάθε συχνότητας. Έτσι στο παράδειγμα που θεωρήσαμε αρχικά, η ροή φάσης των συχνοτήτων γίνεται ίση με τον αριθμό 35 (σχ. 2.9) Η υλοποίηση της μεθόδου επιτυγχάνεται με τη βοήθεια ψηφιακών κυκλωμάτων που συσσωρεύουν τη διαφορά φάσης των δύο συχνοτήτων, δηλαδή σε κάθε παλμό της συχνότητας 5 η τιμή του συσσωρευτή αυξάνεται κατά 7, ενώ σε κάθε παλμό της συχνότητας 7 η τιμή του συσσωρευτή μειώνεται κατά 5. Η τιμή του συσσωρευτή είναι συνεπώς ανάλογη με τη διαφορά φάσης των δύο συχνοτήτων, κινείται δε γύρω από μία ακολουθία αριθμών όταν ο βρόχος είναι κλειδωμένος, δηλαδή όταν ισχύει η σχέση: Fref. NOUT = Fout. NREF Προφανώς αν η συχνότητα εξόδου είναι μεγαλύτερη από την επιθυμητή τότε η τιμή του συσσωρευτή θα τείνει σε μεγάλες αρνητικές τιμές, ενώ σε αντίθετη περίπτωση θα τείνει σε μεγάλες θετικές τιμές. Η τιμή του συσσωρευτή κινείται γύρω από αλληλουχία αριθμών μόνο όταν η συχνότητα εξόδου είναι η επιθυμητή. Στο σχήμα 2.10 παρουσιάζεται η λειτουργία της καινούριας μεθόδου μέτρησης διαφοράς φάσης. Παρατηρούμε ότι η τιμή της εξόδου του συσσωρευτή κινείται γύρω από την ακολουθία αριθμών: +1, -4, +3, -2, +5, 0, -5, +2, -3, +4, -1 Η σειρά των αριθμών επαναλαμβάνεται επ άπειρο, ενώ η μέση τιμή της είναι ίση με το 0. 11
24 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Σχ Η μέθοδος μέτρησης διαφοράς φάσης με τον DIPA Με χρήση ενός DAC μετατρέπουμε την ακολουθία των αριθμών σε αναλογική κυματομορφή. Βασικές συχνότητες της κυματομορφής αυτής είναι οι δύο συχνότητες εισόδου στον DIPA. Φυσικά το αρμονικό περιεχόμενο της κυματομορφής εξόδου του DAC έχει πολλές συχνότητες που είναι όμως αρμονικές των δύο συχνοτήτων εισόδου. Είναι σαφές ότι το φιλτράρισμα που απαιτείται για την εξάλειψη των συνιστωσών των συχνοτήτων εισόδου και των αρμονικών τους, ελάχιστα περιορίζει το χρόνο σύγκλισης (settling time) του βρόχου, αφού ο πόλος του φίλτρου μπορεί και πρέπει να τοποθετηθεί σε πολύ μεγάλες συχνότητες. Σημειώνεται επίσης ότι παρόλο που στο σχήμα 2.10 οι κανονικοποιημένες φάσεις των δύο συχνοτήτων τείνουν στο άπειρο με πολύ μεγάλη ταχύτητα, δεν υπάρχει ανάγκη υπολογισμού των δύο αυτών φάσεων ξεχωριστά, αλλά μόνο της διαφοράς τους. Το γεγονός αυτό επιτρέπει την γραμμική συμπεριφορά του συγκριτή φάσης. Μαθηματική ανάλυση της εξόδου του DIPA Η έξοδος του DIPA (βλέπε σχ. 2.10) παράγεται από την διαφορά δύο συναρτήσεων κλίμακας (σκάλας). Για την εύρεση του αρμονικού περιεχομένου της εξόδου του DIPA θα περιγράψουμε με μαθηματικές εκφράσεις τις αυτές σκάλες και θα τις αφαιρέσουμε. Η πρώτη έχει ύψος σκαλοπατιού ανάλογο της τιμής NOUT και μήκος ανάλογο της περιόδου της συχνότητας Fref, ενώ η δεύτερη αντιστοίχως έχει μήκος σκαλοπατιού ανάλογο της τιμής NREF και μήκος ανάλογο της περιόδου της συχνότητας Fout. Κάθε μια από τις σκάλες αυτές μπορεί να αναλυθεί στο άθροισμα ενός τριγωνικού παλμού πλάτους ίσου με το ύψος του σκαλοπατιού και συχνότητας ίσης με την γεννήτορα συχνότητα της σκάλας, και μίας ράμπας με κλίση ίση με το γινόμενο Fref. NOUT ή Fout. NREF. 12
25 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Η διαφορά των δύο αυτών κυματομορφών σκάλας αποτελεί την έξοδο του DIPA. Επειδή στην σταθερή κατάσταση η διαφορά των δύο ραμπών δίνει μηδενική έξοδο, συνεπάγεται ότι τελικά η έξοδος του DIPA αποτελείται από την διαφορά των δύο τριγωνικών κυματομορφών. Η γενική έκφραση της τριγωνικής κυματομορφής δίνεται από την παρακάτω σχέση: 1 f t = ( ) π = n 1 1 sin n ( n 2πF t) Βλέπουμε ότι η χαμηλότερη και ταυτόχρονα ισχυρότερη αρμονική της τριγωνικής κυματομορφής ισούται με την κύρια συχνότητα της. Για τις δύο συχνότητες θα ισχύει: Nout fref t = ( ) π n= 1 1 sin n ( n 2π Fref t) Nref fout t = ( ) π = n 1 1 sin n ( n 2π Fout t) και οι γραφικές τους παραστάσεις φαίνονται στο σχήμα 2.11 με τη βοήθεια του MathCAD. Σχ Οι δύο τριγωνικές κυματομορφές στο MathCAD Στο επόμενο σχήμα βλέπουμε το άθροισμα των δύο παραπάνω κυματομορφών. 13
26 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Σχ Το αποτέλεσμα της άθροισης των δύο παραπάνω κυματομορφών. Παρατηρούμε ότι η νέα αυτή κυματομορφή συμπίπτει με αυτή που υποθέσαμε ποιοτικά στο σχήμα Είναι λοιπόν γνωστή και η μαθηματική έκφραση της εξόδου του DIPA και έτσι είναι γνωστό και το αρμονικό της περιεχόμενο. Οι βασικές συχνότητες είναι η συχνότητα αναφοράς και η συχνότητα εξόδου. Η διαπίστωση αυτή είναι πολύ σημαντική και μας οδηγεί στο συμπέρασμα ότι το κατωδιαβατό φίλτρο που θα αποκόψει αυτές τις συχνότητες πρέπει να έχει επικρατούντα πόλο σε συχνότητα πολύ μεγαλύτερη από την συχνότητα βήματος Fstep του συνθέτη. Με ένα τέτοιο κατωδιαβατό φίλτρο, ο βρόχος θα έχει πολύ μικρό χρόνο κλειδώματος αφού η απόκριση του βρόχου είναι ανάλογη της απόκρισης του φίλτρου. Επίσης η καθαρότητα του φάσματος του σήματος εξόδου θα βελτιωθεί σημαντικά αφού ο DIPA δεν έχει έξοδο με χαμηλό αρμονικό περιεχόμενο και έτσι ακόμα και ένα θορυβώδες VCO είναι δυνατόν να χρησιμοποιηθεί για τη σύνθεση συχνοτήτων επειδή ο θόρυβος του VCO θα μειωθεί σημαντικά σε φάσμα ίσο με την συχνότητα αποκοπής του φίλτρο γύρω από τη συχνότητα εξόδου. Η ανάγκη χρήσης ενός DAC Είναι απαραίτητη η μετατροπή του ψηφιακού σήματος εξόδου του DIPA σε αναλογική τάση, διότι το VCO που παράγει την συχνότητα εξόδου είναι αναλογική συσκευή και χρειάζεται αναλογική τάση εισόδου για την παραγωγή της συχνότητας αυτής. Επίσης η έξοδος του DIPA χρειάζεται και κάποιο φιλτράρισμα που γίνεται πολύ πιο εύκολα και φτηνά με αναλογικό τρόπο. Η μετατροπή του ψηφιακού σήματος εξόδου του DIPA γίνεται με τη βοήθεια ενός DAC. Ο αριθμός των bits του DAC πρέπει κανονικά να είναι ίσος με τον αριθμό των bits του DIPA. Είναι όμως δυνατό να χρησιμοποιηθεί DAC με μικρότερο αριθμό bits μειώνοντας έτσι το κόστος του συνθέτη συχνοτήτων. Έχει αναφερθεί ότι η έξοδος του DIPA αυξομειώνεται κατά ποσά ανάλογα με τις συχνότητες εισόδου του. Είναι λοιπόν δυνατό για ένα συνθέτη με συγκεκριμένα χαρακτηριστικά να βρεθεί η μικρότερη δυνατή αλλαγή εξόδου του DIPA αυτή θα είναι ίση με τον μικρότερο ψηφιακό αριθμό εισόδου στον DIPA. Αφού λοιπόν είναι γνωστή η μικρότερη δυνατή αλλαγή του DIPA ( min(nref, NOUT MIN ) ), είναι επίσης γνωστό και ποιο είναι το λιγότερο σημαντικό bit του DIPA που αλλάζει οπωσδήποτε στην μικρότερη αλλαγή της τιμής εξόδου του. Με βάση τα παραπάνω μπορούμε να συνδέσουμε τα bits ενός οικονομικού DAC με τα most significant bits του DIPA και τότε το αρμονικό περιεχόμενο της εξόδου του συστήματος DIPA/DAC θα έχει εξίσου μεγάλες συχνότητες με αυτές του ιδανικού συστήματος όταν η ελάχιστη δυνατή αλλαγή της τιμής του DIPA προκαλεί αλλαγή της τιμής του DAC. Πρέπει λοιπόν να ισχύει: max(log 2 (NREF),log 2 (NOUT MAX )) + 1 << Ν DIPA Ν DAC + min(log 2 (NREF),log 2 (NOUT MIN )) 14
27 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Πρέπει δηλαδή ο αριθμός των bits του DIPA (Ν DIPA ) να είναι αρκετά μεγαλύτερος από τον αριθμό των bits που απαιτούνται για να περιγραφεί ο μέγιστος αριθμός εισόδου του DIPA, και μικρότερος ή το πολύ ίσος με το άθροισμα του αριθμού των bits του DAC και του αριθμού των bits που απαιτούνται για να περιγραφεί ο ελάχιστος αριθμός εισόδου του DIPA. Ειδική μέριμνα πρέπει να ληφθεί κατά την σχεδίαση έτσι ώστε η υπερχείλιση του συσσωρευτή (underflow ή overflow) να μην προκαλεί ανακύκλωση της τιμής εξόδου του DIPA. Όταν ο συσσωρευτής υπερχειλίσει αρνητικά, τότε η τιμή του πρέπει να κρατηθεί στο 0. Ομοίως όταν ο συσσωρευτής υπερχειλίσει θετικά, τότε η τιμή του πρέπει να κρατηθεί στη μέγιστη τιμή που μπορεί να περιγραφεί με τον διαθέσιμο αριθμό bits. Με βάση τα παραπάνω το block διάγραμμα του DIPA είναι: Σχ Block διάγραμμα του DIPA Η χαρακτηριστική της εξόδου του DIPA/DAC αποτελεί αντικείμενο μελέτης της επόμενης παραγράφου. Η χαρακτηριστική μεταφοράς του DIPA Η περιοχή λειτουργίας του DIPA (που είναι ένα ψηφιακό κύκλωμα) εξαρτάται από τον αριθμό των bits (ο αριθμός Ν DIPA που αναφέρθηκε παραπάνω) από τον οποίο αποτελούνται τα επιμέρους τμήματά του. Αύξηση του αριθμού των bits αυξάνει εκθετικά το μέγεθος της γραμμικής του περιοχής. Δηλαδή ένας 16-bit DIPA μπορεί να χειριστεί αριθμούς τόσο μεγάλους όσο 2 16 = Όσο μεγαλύτερη η γραμμική του περιοχή, τόσο μεγαλύτερη διαφορά φάσης μπορεί να εκφράσει. Η ανάγκη για μεγάλη γραμμική περιοχή είναι: Ανάλογη με το επιθυμητό μέγιστο βήμα του συνθέτη. Όσο μεγαλύτερα άλματα συχνότητας (frequency hops) καλείται να κάνει ο συνθέτης, τόσο μεγαλύτερη είναι και η διαφορά φάσης που θα εμφανιστεί και συνεπώς τόσο μεγαλύτερος είναι ο αριθμός που θα πρέπει να την εκφράσει. Αντιστρόφως ανάλογη με το ελάχιστο βήμα συχνότητας. Όσο μικρότερη είναι η συχνότητα βήματος του συνθέτη, τόσο μεγαλύτεροι είναι οι αριθμοί που κανονικοποιούν τις φάσεις των δύο συχνοτήτων εξόδου. Οι αριθμοί αυτοί 15
28 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ προσθαφαιρούνται στον DIPA και προφανώς το μέγεθος τους είναι αυτό που ορίζει και το μέγεθος της γραμμικής του περιοχής. Αντιστρόφως ανάλογη με το settling time του βρόχου. Ο αργός βρόχος παρουσιάζει μεγάλες διαφορές φάσης κατά την διαδικασία σύγκλισης της συχνότητας εξόδου προς την επιθυμητή. Επειδή η σύγκλιση είναι αργή έπεται ότι και ο χρόνος κατά τον οποίο υπάρχει διαφορά φάσης μεταξύ των δύο συχνοτήτων είναι μεγάλος, άρα και ο DIPA συσσωρεύει μεγάλες διαφορές φάσης. Η χαρακτηριστική μεταφοράς του συστήματος DIPA/DAC παρουσιάζεται στο επόμενο σχήμα: Σχ Η χαρακτηριστική μεταφοράς του DIPA Η έξοδος του συστήματος DIPA / DAC είναι μια τάση που κυμαίνεται από την ελάχιστη μέχρι την μέγιστη τάση εξόδου που ο DAC μπορεί να παράγει. Η τάση αυτή είναι ανάλογη της ψηφιακής τιμής του συσσωρευτή του DIPA. Καθώς η τιμή εξόδου του DIPA μεταβάλλεται από 0 μέχρι (2 ΝDIPA -1), το κέρδος του phase detector του DIPA/DAC είναι: Kd Vfs DAC NDIPA = Volt/rad 2 π 2 Σε κάθε παλμό της συχνότητας αναφοράς η φάση της αλλάζει κατά 2π rad. Έτσι η τάση εξόδου του DIPA/DAC σε κάθε παλμό της συχνότητας αναφοράς αλλάζει κατά (2π. NOUT. Kd) Volt, ενώ σε κάθε παλμό της συχνότητας εξόδου αλλάζει κατά (2π. NREF. Kd) Volt. Το κέρδος Kd είναι βασική σταθερά του συστήματος DIPA/DAC και λαμβάνεται υπ όψιν στη σχεδίαση και επιλογή των παραμέτρων του συνθέτη συχνοτήτων. Οι επιδόσεις του DIPA είναι οι καλύτερες δυνατές (συγκρινόμενες με άλλα συστήματα μέτρησης διαφοράς φάσης) όσον αφορά στην χαρακτηριστική μεταφοράς φάσης - τάσης επειδή έχει γραμμική περιοχή με εύρος πολύ μεγαλύτερο των 360 ο και με σταθερό κέρδος. Η κλίση της χαρακτηριστικής είναι θεωρητικά πάντα σταθερή και μηδενίζεται στις περιοχές κορεσμού, σε αντίθεση με χαρακτηριστικές άλλων συστημάτων που σε συγκεκριμένα σημεία έχουν κλίση με διαφορετικό πρόσημο με συνέπεια την μείωση του capture / lock range. 16
29 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Η ευαισθησία του στην διαφορά συχνότητας μεταξύ των δύο εισόδων είναι γραμμική. Η ποιότητα εξόδου του DIPA είναι συγκρίσιμη μόνο με αυτή του αναλογικού phase detector (analog multiplier) λόγω της χρήσης του DAC και του υψηλού ρυθμού δειγματοληψίας της διαφοράς φάσης. [Πρέπει εδώ να σημειωθεί ότι η κλίση της χαρακτηριστικής είναι σταθερή και απόλυτη ευθεία, μόνο αν η συμπεριφορά του DAC είναι απόλυτα γραμμική, κάτι που βεβαίως δεν είναι δυνατό. Συνεπώς η γραμμικότητα της χαρακτηριστικής του συστήματος DIPA/DAC εξαρτάται άμεσα από την επιλογή του κατάλληλου DAC] Το μέγεθος της απαιτούμενης γραμμικής περιοχής του DIPA μπορεί να υπολογιστεί με βάση την παρακάτω λογική. Στο επόμενο σχήμα δίνεται ο τρόπος προσέγγισης του συνθέτη στην επιθυμητή συχνότητα. Σχ Άλμα από την ελάχιστη στη μέγιστη συχνότητα Η συχνότητα που ο συνθέτης είναι κλειδωμένος μέχρι την χρονική στιγμή Τ 0 είναι η ελάχιστη δυνατή συχνότητα εξόδου. Την χρονική στιγμή Τ 0 δίδεται η εντολή να αλλάξει η συχνότητα εξόδου στην μέγιστη δυνατή. Την χρονική στιγμή Τ 1 θεωρούμε ότι ο συνθέτης έχει επιτύχει την συχνότητα αυτή. Η χρονική διάρκεια που μεσολαβεί για την προσέγγιση του συνθέτη στην επιθυμητή συχνότητα είναι ο χρόνος Ts (settling time) του βρόχου. Καθ όλο το χρονικό διάστημα Ts ο συσσωρευτής αυξάνει την τιμή του με ρυθμό ίσο με την Fref και κατά ποσό ίσο με NOUT ΜΑΧ ενώ την μειώνει με ρυθμό ίσο με Fout και κατά ποσό ίσο με NREF. Η μεταβολή της τιμής του συσσωρευτή κατά το χρονικό διάστημα Ts μπορεί να υπολογιστεί σύμφωνα με τον τύπο: Ts. [ NOUT ΜΑΧ. Fref - NREF. ½. (Fout ΜΑΧ + Fout ΜΙΝ ) ] Αν στον παραπάνω τύπο αντικαταστήσουμε την τιμή της Fout με χρήση του τύπου Fout. NREF = Fref. NOUT τότε η μεταβολή της τιμής του συσσωρευτή κατά την χρονική διάρκεια Ts γίνεται: Ts Fref N max N min 2 17
30 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Η μέγιστη τιμή που μπορεί να εκφράσει ο συσσωρευτής πρέπει να είναι τουλάχιστον διπλάσια της παραπάνω τιμής, αφού η κανονική θέση ισορροπίας της εξόδου του DIPA είναι το κέντρο της γραμμικής του περιοχής. Δίνεται λοιπόν μια σχέση που προσεγγίζει με πολύ καλή ακρίβεια τον αριθμό των απαιτούμενων bits του DIPA όπως αυτά ορίζονται από τις ανάγκες του συνθέτη: Ν DIPA log 2 ( Ts. Fref. (Nmax - Nmin) ) Ποιοτική περιγραφή του συνολικού βρόχου του PLL Το ποιοτικό block διάγραμμα του βρόχου του PLL που βασίζεται στον DIPA δίνεται στο σχήμα Σχ Αρχικό block διάγραμμα του βρόχου Ο βρόχος αποτελείται από τον DIPA, τον DAC, το φίλτρο, το VCO και τον κρύσταλλο που παράγει την συχνότητα αναφοράς Fref. Επίσης μπορεί να χρησιμοποιηθεί και κάποιος prescaler στην ανάδραση που να διαιρεί την συχνότητα Fout. Πρέπει εδώ να αναφέρουμε ότι η συχνότητα αναφοράς Fref δεν είναι η συχνότητα βήματος του συνθέτη. Η Fref παράγει έμμεσα την συχνότητα Fstep και (πρέπει να) είναι πολύ μεγαλύτερη από αυτήν. Η είσοδος NREF είναι ένας ψηφιακός αριθμός ο οποίος μεταξύ άλλων καθορίζει και την συχνότητα βήματος του συνθέτη σύμφωνα με τη σχέση: Fstep = Fref / NREF Αν υπάρχει και κάποιος prescaler στην ανάδραση τότε το βήμα συχνότητας πολλαπλασιάζεται επί την τιμή που αυτός διαιρεί την συχνότητα Fout. Οι είσοδοι Fout και Fref ενεργοποιούν με τις παρυφές τους τα διάφορα ψηφιακά κυκλώματα του DIPA, είναι δηλαδή και αυτές ψηφιακές είσοδοι. Η είσοδος NOUT μπορεί να μεταβάλλεται και καθορίζει την συχνότητα εξόδου του PLL σύμφωνα με τη σχέση: Fref Fout = Nout = Fstep Nout Nref 18
31 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Η έξοδος του DIPA μετατρέπεται σε αναλογική από τον DAC και περιέχει μια DC συνιστώσα ανάλογη της διαφοράς φάσης των δύο συχνοτήτων, με υπερτιθέμενο ένα AC σήμα με βασικές αρμονικές τις δύο συχνότητες εξόδου. Το φίλτρο καλείται να απορρίψει τις αρμονικές των συχνοτήτων αναφοράς και εξόδου και να ενισχύσει το DC περιεχόμενο του DIPA/DAC ώστε να οδηγήσει με αυτό το VCO. Το VCO έχει σαν είσοδο την τάσης εξόδου του φίλτρου και παράγει σαν έξοδο την επιθυμητή συχνότητα. Μαθηματική ανάλυση του βρόχου του PLL Το γενικό block διάγραμμα του PLL που βασίζεται στον DIPA φαίνεται στο επόμενο σχήμα. Σχ Block διάγραμμα του βρόχου Στο κεφάλαιο 4 θα αναλυθεί με μεγαλύτερη λεπτομέρεια η υλοποίηση του κάθε στοιχείου του βρόχου. Με Φref συμβολίζεται η φάση της συχνότητας αναφοράς Fref, ενώ με Φout η φάση της συχνότητας εξόδου Fout. Ο DIPA συσσωρεύει την διαφορά φάσης μεταξύ των συχνοτήτων εισόδου Fref και Fout. Η συχνότητα δειγματοληψίας της διαφοράς φάσης είναι ίση με Fref. Φροντίζουμε δηλαδή πάντα η συχνότητα Fref να είναι μεγαλύτερη της Fout, χρησιμοποιώντας κάποιο divider στην έξοδο του VCO. Θα κάνουμε εδώ μια σύντομη μαθηματική ανάλυση του βρόχου με σκοπό να εξάγουμε θεωρητικά συμπεράσματα για τη λειτουργία του PLL. Αργότερα τα αποτελέσματα αυτά θα συγκριθούν με τις πραγματικές μετρήσεις που πήραμε χρησιμοποιώντας την κάρτα που κατασκευάστηκε στο εργαστήριο. Επίσης στο επόμενο κεφάλαιο τα αποτελέσματα αυτά θα συγκριθούν και με τα αποτελέσματα χρήσης ενός κοινού PLL. Εκφράζοντας τα σήματα μετασχηματισμένα κατά Laplace έχουμε ότι η έξοδος του DIPA ισούται με: ud(s) = Kd. [Φref(s). Nout - Φout(s). Nref] 19
32 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Άρα η φάση της συχνότητας εξόδου ισούται με: Φout(s) = (Κv / s). F(s). ud(s) = (Κv / s). F(s). Kd. [Φref(s). Nout - Φout(s). Nref] Άρα η συνάρτηση μεταφοράς του βρόχου είναι μετά από πράξεις: Φout( s) Kτ F( s) Nout H ( s) = = Φref ( s) s + Kτ F( s) Nref (2.1) όπου το γινόμενο Κv.Kd έχει αντικατασταθεί από το Κτ και F(s) είναι η συνάρτηση μεταφοράς του κατωδιαβατού φίλτρου. Είναι προφανές ότι η συμπεριφορά του PLL εξαρτάται άμεσα από το επιλεγέν φίλτρο. Υπάρχει μάλιστα ειδική ορολογία που καθορίζει τον τύπο και την τάξη του βρόχου και εξαρτάται άμεσα από το φίλτρο που επιλέγεται. Έτσι η τάξη του φίλτρου είναι ο μέγιστος εκθέτης του s του πολυωνύμου του παρονομαστή, ενώ ο τύπος του βρόχου είναι ο αριθμός των ολοκληρωτών του. Επειδή το VCO είναι ήδη ολοκληρωτής φάσης, και επειδή το απλούστερο φίλτρο εισάγει ένα τουλάχιστον πόλο, έπεται ότι ο απλούστερος βρόχος είναι πρώτου τύπου και δεύτερης τάξης. Για την εξαγωγή περαιτέρω συμπερασμάτων για την συμπεριφορά του βρόχου είναι αναγκαίο να μελετηθούν ορισμένα δημοφιλή φίλτρα σε συνάρτηση με τον DIPA. Απλό κατωδιαβατό φίλτρο Το πιο απλό κατωδιαβατό φίλτρο που μπορεί να χρησιμοποιηθεί είναι αυτό του σχήματος Σχ Απλό κατωδιαβατό φίλτρο Η χρήση του δίνει βρόχο πρώτου τύπου και δεύτερης τάξης. Η συνάρτηση μεταφοράς του φίλτρου είναι: 1 Uo( s) sc 1 1 F( s) = = = = (2.2) Ui( s) 1 R + 1+ src 1+ sτ sc όπου τ = RC 20
33 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ και έτσι εισάγοντας την (2.2) στην σχέση (2.1) η συνάρτηση μεταφοράς του συνολικού βρόχου είναι: Kτ Nout 2 Nout ωn. Nref H ( s) = τ = (2.3) Kτ Nref s s s + 2ζω n + ω + + n τ τ με φυσική συχνότητα ω n = Kτ Nref και συντελεστή απόσβεσης ζ = 1 / ( 2. ω. n τ ). τ Απόκριση συχνότητας του βρόχου Επιλέγοντας ω n = 2π και ζ = 0,707 το Mathcad δίνει το γράφημα 2.1 για την απόκριση συχνότητας του συνολικού βρόχου. TodB( H( f) ) 2π f wn Γραφ Κανονικοποιημένη απόκριση συχνότητας του βρόχου σε db 21
34 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Ανάλυση Θορύβου στο βρόχο Θέλουμε τώρα να υπολογίσουμε την απόρριψη θορύβου του βρόχου στην έξοδο του VCO. Έχουμε το εξής σχηματικό διάγραμμα: Σχ Block διάγραμμα για υπολογισμό του θορύβου στο VCO Ξέρουμε από την θεωρία αυτομάτου ελέγχου ότι ισχύει Ε VCO (s) = G / (1±GF), όπου G είναι το κέρδος του απ ευθείας κλάδου, ενώ F το κέρδος της ανάδρασης στον κλάδο αυτό. Στη συγκεκριμένη περίπτωση είναι προφανώς G = 1 (από το Ε VCO (s) μέχρι την έξοδο F OUT (s) ) ενώ η ανάδραση είναι F = Nref. Kd. F(s). Kv / s και είναι αρνητική. Άρα γενικά έχουμε για το θόρυβο (ανεξαρτήτως φίλτρου): 1 s E VCO ( s) = = (2.4) Kv 1+ Nref Kd F( s) s + Nref Kτ F( s) s Για το συγκεκριμένο φίλτρο που περιγράφεται από την (2.2) θα έχουμε: E VCO Η (2.5) μας δίνει το επόμενο γράφημα: s ( s) = (2.5) 1 s + Nref Kτ 1 + τ s TodB( N( f) ) 2π f wn 22
35 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Γραφ Κανονικοποιημένη απόρριψη θορύβου του βρόχου σε db 23
36 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Βηματική απόκριση του βρόχου Η απόκριση του βρόχου σε βηματική διέγερση βρίσκεται εφαρμόζοντας τον αντίστροφο μετασχηματισμό Laplace στην συνάρτηση μεταφοράς του βρόχου. Η συνάρτηση μεταφοράς του βρόχου με το απλό κατωδιαβατό φίλτρο δίνεται από την σχέση (2.3). 2 ω n 1 Άρα Ht( t) = inv. Laplace (2.6) 2 2 s + 2ζω ns + ωn s Ο παράγοντας Nout / Nref αφαιρέθηκε για να κανονικοποιηθεί το αποτέλεσμα ως προς το 1. Η (2.6) δίνει το παρακάτω γράφημα: Ht() t t 10 6 Γραφ Βηματική απόκριση του βρόχου σε μsec Οι τιμή της φυσικής συχνότητας που επιλέχθηκε είναι ενδεικτική και θα χρησιμοποιηθεί στις θεωρητικές μετρήσεις για όλα τα εξεταζόμενα φίλτρα. Κατά την διάρκεια όμως των πραγματικών μετρήσεων στο εργαστήριο, η τιμή για την φυσική συχνότητα επιλέγεται με βάση τα χαρακτηριστικά των διαφόρων στοιχείων του βρόχου καθώς και τις απαιτήσεις στην ταχύτητα κλειδώματος Το φίλτρο που μόλις περιγράφηκε είναι το απλούστερο δυνατό. Παρόλα αυτά επιλέγοντας κατάλληλες τιμές για την αντίσταση και τον πυκνωτή, το σύστημα θα δουλέψει ικανοποιητικά. Θα αναλυθούν παρακάτω όμως δύο ακόμη φίλτρα που παρέχουν καλύτερο ποιοτικά σήμα εξόδου. Επίσης η ανάλυση τους κρίνεται απαραίτητη ώστε να είναι περισσότερο δίκαιη η μετέπειτα σύγκριση του παρόντος συστήματος με κλασσικές υλοποιήσεις PLL. 24
37 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Ενεργό Lead / Lag φίλτρο 2 ης τάξης Το φίλτρο αυτό περιέχει ολοκληρωτή, όπως φαίνεται και στο επόμενο σχήμα. Η ύπαρξη του τελευταίου εγγυάται καλύτερη ποιότητα του σήματος της συχνότητας εξόδου αφού η έξοδος του φίλτρου είναι σταθερή μόνο όταν η είσοδος του είναι μηδενική, δηλαδή όταν η διαφορά φάσης μεταξύ των δύο συχνοτήτων εισόδου στον DIPA είναι επίσης μηδενική. Άρα το φίλτρο διορθώνει συνεχώς την συχνότητα εξόδου του VCO, καθώς επίσης πολώνει το σύστημα DIPA/DAC στο κέντρο της γραμμικής του περιοχής. Σχ Φίλτρο 2 ης τάξης με ολοκληρωτή Η συνάρτηση μεταφοράς του φίλτρου είναι: 1+ sr2c 1+ sτ 2 F( s) = = (2.7) sr1c sτ1 με τ 1 = R 1 C και τ 2 = R 2 C Άρα έχουμε βρόχο δεύτερου τύπου και δεύτερης τάξης. Παρατηρούμε επίσης ότι υπάρχει ένα μηδενικό στη συχνότητα 1/τ 2. Η σημασία του γεγονότος αυτού θα εξηγηθεί αργότερα. Η συνάρτηση μεταφοράς του συνολικού βρόχου είναι: 2 Nout 2ζωns + ωn H ( s) = (2.8) 2 Nref s + 2ζω s + ω n 2 n με ω 2 n Kτ Nref τ 2 = και ζ = ωn τ
38 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Απόκριση συχνότητας του βρόχου Επιλέγοντας τις ίδιες τιμές για φυσική συχνότητα και συντελεστή απόσβεσης με το προηγούμενο φίλτρο (δηλαδή bandwidth 1 MHz και συντελεστή απόσβεσης 0,707) έχουμε το εξής γράφημα για την απόκριση συχνότητας του βρόχου: TodB( H( f) ) 2π f wn Γραφ Κανονικοποιημένη απόκριση συχνότητας του βρόχου σε db Ανάλυση Θορύβου στο βρόχο Χρησιμοποιώντας τη σχέση (2.4), που δίνει το θόρυβο στην έξοδο του VCO ανεξαρτήτως του φίλτρου, με την σχέση (2.7) για το ενεργό lead / lag φίλτρο έχουμε ότι: s E VCO ( s) = (2.9) 1+ τ 2s s + Nref Kτ τ s 1 TodB( N( f) ) 2π f wn 26
39 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Γραφ Κανονικοποιημένη απόρριψη θορύβου του βρόχου σε db Από τα δύο προηγούμενα γραφήματα βλέπουμε ότι με το δεύτερο φίλτρο ο βρόχος αποκρίνεται σε μεγαλύτερο εύρος συχνοτήτων σε σχέση με το πρώτο (και άρα αναμένεται να είναι ταχύτερος), ενώ επίσης η απόρριψη θορύβου του βρόχου είναι εντυπωσιακά καλύτερη. Συνεπώς ο βρόχος με το δεύτερο φίλτρο είναι σταθερότερος. Βηματική απόκριση του βρόχου Εφαρμόζοντας την ίδια μεθοδολογία με αυτήν για το προηγούμενο φίλτρο, και χρησιμοποιώντας την σχέση (2.8) ως την συνάρτηση μεταφοράς έχουμε ότι: Ht t) = inv. Laplace s 2 2ζω s + ωn + 2ζω s + ω s n 1 ( 2 2 n n (2.10) ht() t t 10 6 Γραφ Βηματική απόκριση του βρόχου σε μsec Παρατηρείται λοιπόν ότι επιλέγοντας όμοια χαρακτηριστικά για τα δύο συστήματα, η συμπεριφορά του δεύτερου βρόχου είναι προτιμότερη. Το επόμενο φίλτρο διορθώνει και το τελευταίο πρόβλημα του τωρινού. Ενεργό Lead / Lag φίλτρο 3 ης τάξης Όπως ειπώθηκε κατά την ανάλυση του προηγούμενου φίλτρου, υπάρχει ένα μηδενικό στην συχνότητα 1/τ2. Αυτό σημαίνει ότι επιτρέπεται η διέλευση κάποιων υψηλών συχνοτήτων και συνεπώς υπάρχει μια κυμάτωση σημαντικού πλάτους στην τάση εξόδου. Το γεγονός αυτό 27
40 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ επηρεάζει αρνητικά την ποιότητα του σήματος εξόδου του φίλτρου και άρα την ποιότητα της συχνότητας εξόδου. Το παρακάτω φίλτρο προσθέτει ένα ακόμη πόλο που σκοπό έχει να εξουδετερώσει την επιρροή του προαναφερθέντος μηδενικού. Σχ Φίλτρο 3 ης τάξης με ολοκληρωτή Η συνάρτηση μεταφοράς του φίλτρου είναι: sτ F ( s) = (2.11) sτ ( sτ + 1) 1 3 με τ 1 = R 1. C 1, τ 2 = R 2. (C 1 +C 2 ) και τ 3 = R 2. C 2. Υπάρχει λοιπόν προσθήκη ενός μηδενικού στην συχνότητα 1/τ 3. Ο βρόχος είναι πλέον 2 ου τύπου και 3 ης τάξης. Η συνολική συνάρτηση μεταφοράς βρίσκεται αντικαθιστώντας την( 2.11) στην (2.1) sτ Kτ Nout sτ1 ( sτ 3 + 1) H ( s) = (2.12) sτ s + Kτ Nref sτ ( sτ + 1) 1 3 Απόκριση συχνότητας του βρόχου Επιλέγοντας ω n = 1 MHz και περιθώριο φάσης ίσο με 60 ο συχνότητας του βρόχου το εξής γράφημα: παίρνουμε για την απόκριση 28
41 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ M( f) Wn Γραφ Κανονικοποιημένη απόκριση συχνότητας του βρόχου σε db 2π f Παρατηρούμε ότι με το βελτιωμένο φίλτρο η απόκριση του βρόχου παρουσιάζει πολύ πιο ομαλό «γόνατο» (πτώση 3 db) και μάλιστα σε συχνότητα πολλαπλάσια από αυτή με το προηγούμενο φίλτρο. Ανάλυση Θορύβου στο βρόχο Εργαζόμενοι όμοια με τα προηγούμενα φίλτρα έχουμε για τον θόρυβο στην έξοδο του VCO: s E VCO ( s) = (2.13) τ 2s + 1 s + Nref Kτ τ s ( τ s + 1) 1 3 Mn( f) Γραφ Κανονικοποιημένη απόρριψη θορύβου του βρόχου σε db 2π f Wn 29
42 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Βλέπουμε πως η απόρριψη του θορύβου είναι ακόμα καλύτερη με τη χρήση αυτού του φίλτρου. Για τους παραπάνω λόγους, το φίλτρο με ολοκληρωτή και δύο πόλους είναι αυτό που επιλέχθηκε για χρήση στην υλοποίηση του συνθέτη συχνοτήτων. Σύγκριση του DIPA με το κλασσικό PLL Στην παρούσα παράγραφο θα γίνει μια σύντομη σύγκριση του PLL που είναι βασισμένο στον DIPA και της κλασσικής σχεδίασης PLL. Η σύγκριση αυτή θα είναι κυρίως θεωρητική και σκοπό έχει να εξηγήσει την επιλογή του συγκεκριμένου PLL σε σχέση με τις σχεδιάσεις που διατίθενται. Είδαμε ήδη ότι το block διάγραμμα για ένα PLL βασισμένο στον DIPA είναι το εξής: Σχ Block διάγραμμα του DIPA PLL και η συνάρτηση μεταφοράς του είναι Φout( s) H ( s) = Φref ( s) = Kτ F( s) Nout s + Kτ F( s) Nref (2.1) Για το κλασσικό PLL το block διάγραμμα φαίνεται στο παρακάτω σχήμα: Σχ Block διάγραμμα του κλασσικού PLL και η συνάρτηση μεταφοράς του βρόχου είναι : 30
43 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Φout( s) H ( s) = Φref ( s) = Kτ F( s) Nout s Nout + Kτ F( s) (2.14) Χρησιμοποιούμε και για τα δύο συστήματα το φίλτρο 2ης τάξης με ολοκληρωτή που έχει συνάρτηση μεταφοράς αυτήν της σχέσης (2.7), δηλαδή f(s) = (1+τ 2.s) / (τ 1.s). Είδαμε στην ανάλυση της προηγούμενης παραγράφου ότι το φίλτρο αυτό προσφέρει βρόχο πολύ καλών επιδόσεων. Το ενεργό φίλτρο 3 ης τάξης δεν χρησιμοποιείται για λόγους απλούστευσης των πράξεων. Ανάλυση Έστω λοιπόν ένα PLL που πρέπει στην έξοδό του να δίνει συχνότητες 900 MHz μέχρι 1 GHz με βήμα συχνότητας το 1 MHz. Θεωρούμε επίσης ότι το VCO έχει Kv = 2π και ότι Vfs = 20 Volt (full scale αλλαγή της τάσης εξόδου του PFD ή του DAC στην έξοδο του DIPA) Για το βασισμένο στην κλασσική σχεδίαση PLL τα χαρακτηριστικά του βρόχου θα είναι τα παρακάτω. Το κέρδος του είναι Kd,c = Vfs / 4π (V/rad) όπως είπαμε σε προηγούμενη παράγραφο. Επίσης από την ανάλυση που έγινε στην εισαγωγή της διπλωματικής (αλλά και από το σχήμα 2.23) ξέρουμε ότι ισχύει Fout = Nout. Fstep. Άρα είναι προφανές ότι αφού έχουμε μέγιστη συχνότητα 1000 MHz και βήμα συχνότητας 1 MHz η μέγιστη τιμή που πρέπει να διαιρεί ο prescaler είναι Nout = Fmax / Fstep = Για την άλλη σχεδίαση τώρα, είναι προφανές ότι δεν γίνεται να εφαρμοστεί η συχνότητα εξόδου του 1 GHz στην είσοδο ενός ψηφιακού κυκλώματος όπως ο DIPA. Για αυτό στην ανάδραση χρησιμοποιούμε ένα διαιρέτη, έστω δια Νpr=32. Άρα η μέγιστη συχνότητα εισόδου στον DIPA λόγω ανάδρασης είναι Fmax / Npr = 31,25 MHz. Για απλούστευση των τύπων θεωρούμε το πηλίκο Nf = Nref / Npr. Για την ομαλή λειτουργία του συστήματος η συχνότητα αναφοράς του συσσωρευτή φάσης πρέπει να είναι πάντα μεγαλύτερη από την συχνότητα μέσω ανάδρασης (δηλαδή την συχνότητα εξόδου δια την τιμή του prescaler). Άρα επιλέγουμε ως συχνότητα λειτουργίας του DIPA την τιμή Fref = 32 MHz. Υπολογίζουμε την τιμή Nref. Είναι : ( Nref / Npr ) = ( Fref / Fstep ) Nref = Ο αριθμός αυτός για να περιγραφεί ψηφιακά χρειάζεται log 2 (Nref) = 10 bits. Συνεπώς, σύμφωνα με όσα περιγράφηκαν σχετικά με τον τρόπο λειτουργίας του ψηφιακού DIPA στην παράγραφο 2.2, ορίζουμε ως τιμή των bits του DIPA τα 13 bits. 31
44 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Το κέρδος Kd,d του συσσωρευτή φάσης του DIPA δίνεται από την σχέση Kd = Vfs / (2π. 2 bits ) όπως αναφέρθηκε στην παράγραφο Άρα στην συγκεκριμένη περίπτωση όπου έχουμε DIPA των 13 bits θα ισχύει Κd,d = 3, Αποτελέσματα Έστω ότι θέλουμε το κάθε PLL να κλειδώνει το πολύ σε Ν=50 παλμούς της συχνότητας αναφοράς. Όπως φαίνεται και στο block διάγραμμα του κλασσικού PLL η συχνότητας αναφοράς του συγκριτή φάσης είναι ίση με Fstep. Άρα ο χρόνος κλειδώματος θα ισούται με Τ C = Ν. (1/Fstep) = sec = 50 μsec. Αντίθετα στον DIPA ο χρόνος κλειδώματος θα ισούται με Τ D = N. (1/Fref) = 1,5625 μsec, δηλαδή 32 φορές ταχύτερος (προφανές αφού η συχνότητα Fref είναι 32 φορές μεγαλύτερη από το Fstep). Η φυσική συχνότητα του κάθε συστήματος είναι: 1 1 ω n, C = π 2 = 2π. 14, ω n, D = π 2 = 2π. 452, ΤC Τd Δηλαδή ο βρόχος του DIPA είναι 32 φορές πιο γρήγορος. Χρησιμοποιώντας τις παραπάνω τιμές για την φυσική συχνότητα, την τιμή 0,707 για τον συντελεστή απόσβεσης και τους τύπους για το φίλτρο 2ης τάξεως με ολοκληρωτή υπολογίζουμε τα εξής: τ 1, C k k d, C V = = 12, d, D V sec 2 τ1, D 2 Nout ωn, C ωn, D τ 2, C 2 ζ = = sec ω n, C k k N f = = 96, sec τ 2, D 2 ζ = = 497, sec ω n, D Απόκριση συχνότητας των βρόχων Οι συναρτήσεις μεταφοράς των δύο βρόχων είναι οι εξής: H C ( s) = Kτ FC ( s) Nout s Nout + Kτ F ( s) C H D ( s) = Kτ FD ( s) Nout s + Kτ F ( s) N D f Η F Χ (s) είναι η συνάρτηση μεταφοράς του χρησιμοποιηθέντος φίλτρου Σχεδιάζουμε το κοινό διάγραμμα Bode των δυο PLL, το οποίο φαίνεται στην επόμενη σελίδα. 32
45 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ HCdb() s HDdb() s WAn Γραφ Κανονικοποιημένη απόκριση συχνότητας για τα δυο PLL. s Η έντονη γραμμή αναφέρεται στο PLL που βασίζεται στον DIPA. Ανάλυση Θορύβου στους δύο βρόχους Όσον αφορά στην απόρριψη του θορύβου του VCO εργαζόμενοι ακριβώς όπως και στις προηγούμενες παραγράφους έχουμε για τους δύο βρόχους: E C ( s) = s Nout s Nout + Kτ F ( s) C E D ( s) = s s + Kτ F ( s) N D f Το κοινό διάγραμμα Bode των δύο παραπάνω συναρτήσεων είναι: 10 0 ECdb ( s) EDdb( s) s WAn Γραφ Κανονικοποιημένη απόρριψη θορύβου του VCO για τα δυο PLL
46 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Βηματική απόκριση των βρόχων Γνωρίζοντας τις τιμές της φυσικής συχνότητας και του συντελεστή απόσβεσης μπορούμε με χρήση του αντίστροφου μετασχηματισμού Laplace να σχεδιάσουμε και τις αποκρίσεις των δύο συστημάτων σε βηματική διέγερση. 2 2ζω ns + ωn Για το συγκεκριμένο φίλτρο έχουμε δει πως ισχύει H ( s) =. 2 2 s + 2ζω s + ω n n Άρα αντικαθιστώντας στον τύπο: inv Laplace s κάθε βρόχο παίρνουμε το επόμενο γράφημα. 2 2ζω s + ωn + 2ζω s + ω s n n n το κατάλληλο ω n για HC() t HD() t t 10 6 Γραφ Βηματική απόκριση των δύο βρόχων σε μsec Συμπεράσματα Η διαφορά στις επιδόσεις των δύο συστημάτων είναι εμφανής. Στον DIPA η διαφορά φάσης δειγματολαμβάνεται με συχνότητα Fref δηλαδή 32 MHz, ενώ στον PFD με συχνότητα Fstep που είναι μόλις 1 MHz. Αν μάλιστα θέλαμε μικρότερο βήμα στην αλλαγή της συχνότητας, ενώ στην κλασσική σχεδίαση θα ήμαστε υποχρεωμένοι σε περαιτέρω μείωση του ρυθμού δειγματοληψίας, στον DIPA θα αλλάζαμε απλώς την τιμή Nref αφήνοντας τα υπόλοιπα χαρακτηριστικά του βρόχου, και εν πολλοίς την ταχύτητα σύγκλισης και την ποιότητα της συχνότητας εξόδου, ανεπηρέαστα. Η σχεδίαση του DIPA είναι τέτοια που επιτρέπει χρήση πιο «χαλαρών» φίλτρων, δηλαδή επίτευξη μεγαλύτερου bandwidth, και συνεπώς γρηγορότερου βρόχου. 34
47 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ Ένα ακόμα σημείο που δεν πρέπει να διαφύγει της παρατήρησης μας είναι αυτό του κέρδους των δύο συγκριτών φάσης. Με μια πρώτη ματιά φαίνεται ότι ο PFD υπερτερεί αφού έχει κέρδος Κd,c = 1,592 ενώ ο DIPA Κd,d =2, , δηλαδή 600 φορές μικρότερο. Η πραγματικότητα όμως είναι αρκετά διαφορετική. Για να μεταβάλλει την έξοδο του κατά Vfs ο PFD χρειάζεται: Κd,c. N Fstep = Vfs (Vfs / 4π). N Fstep = Vfs N Fstep = 4π = 12,5 παλμούς της συχνότητας Fstep. Εργαζόμενοι ομοίως βρίσκουμε ότι ο DIPA των 13 bits χρειάζεται: Κd,d. N Fref. Nout = Vfs (Vfs / 2π ). N Fref. Nout = Vfs N Fref = π / Nout Γνωρίζοντας ότι ισχύει Fout = Fstep. Nout, βρίσκουμε ότι η τιμή Nout κυμαίνεται μεταξύ των αριθμών 900 και 1000, σύμφωνα με τα δεδομένα του παραδείγματος. Έστω NOUT = 1000 και άρα N Fref = 51,5 παλμοί της συχνότητας Fref. Συνεπώς ο PFD χρειάζεται 12,5. (1/Fstep) = 12,5 μsec για την αλλαγή της εξόδου του κατά Vfs, ενώ ο DIPA χρειάζεται 51,5. (1/Fref) = 1,6 μsec, με βάση τις συχνότητες που θεωρήσαμε από την αρχή του παραδείγματος. Για τους παραπάνω λόγους κρίθηκε σκόπιμο να χρησιμοποιηθεί ως κύριο δομικό στοιχείο του PLL του συνθέτη ο συσσωρευτής φάσης DIPA. Σε αυτούς τους λόγους προστίθεται και η όρεξη να χρησιμοποιηθεί και να ελεγχθεί για την ορθή λειτουργία της, μια νέα και πολλά υποσχόμενη τεχνολογία. 35
48 ΚΕΦΑΛΑΙΟ 2 ΘΕΩΡΙΑ ΕΜΜΕΣΗΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ 36
49 Κεφάλαιο 3 Επικοινωνία του Συστήματος με τον Υπολογιστή Περιεχόμενα: 3.1 Η παράλληλη θύρα του υπολογιστή Enhanced Parallel Port Mode (EPP) EPP Data Write Cycle EPP Address Write Cycle EPP Data Read Cycle EPP Address Read Cycle Standard Parallel Port Mode (SPP) Το Πρωτόκολλο Επικοινωνίας Υλοποίηση του Πρωτοκόλλου Επικοινωνίας- Διαμόρφωση του PLD... 13
50 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Η παράλληλη θύρα του υπολογιστή Ο βασικός σύνδεσμος μεταξύ της κάρτας που υλοποιεί τον συνθέτη και του περιβάλλοντος του χρήστη είναι η παράλληλη θύρα του υπολογιστή (LPT). Όπως έχει ήδη ειπωθεί μέσα από αυτή διέρχονται όλα τα απαραίτητα σήματα για την επικοινωνία με όλα τα όργανα του Desk Top Lab. Η παράλληλη θύρα είναι εξαιρετικά διαδεδομένη σήμερα εξαιτίας της πιο συνηθισμένης εφαρμογής της, που είναι η επικοινωνία με εκτυπωτές. Το μεγάλο πλεονέκτημά της, όπως φαίνεται και από την ονομασία της, είναι ότι έχουμε στη διάθεσή μας ταυτόχρονα 8 γραμμές δεδομένων, μαζί με κάποια σήματα ελέγχου (control) και κατάστασης (status). Οι υπολογιστές σήμερα έχουν συνήθως 3 παράλληλες θύρες ενσωματωμένες στην μητρική κάρτα (LPT1, LPT2, LPT3), αν και έχουν έξοδο μόνο για την πρώτη. Οι θύρες αυτές είναι δικατευθυντήριες, δηλαδή μπορούμε να στείλουμε αλλά και να λάβουμε δεδομένα από αυτές. Η κατασκευή μιας κάρτας, που υλοποιεί ένα συνθέτη συχνοτήτων (ή κάποιας άλλης μονάδας του DeskTop Lab), αποτελεί μια εφαρμογή που επεκτείνει τη χρήση της LPT πέρα από τις συνηθισμένες εφαρμογές. Με τη χρήση ενός απλού PC βλέπουμε πώς μπορούμε να οδηγήσουμε ένα περιφερειακό όπως είναι τα ηλεκτρονικά όργανα του Desk Top Lab και να ελέγξουμε συσκευές όπως PLDs, FPGAs, DACs κ.τ.λ. Συγκεκριμένα η LPT1 βρίσκεται στο πίσω μέρος του υπολογιστή και καταλήγει σε ένα βύσμα τύπου DB-25 θηλυκό. Οι διευθύνσεις που χρησιμοποιούνται στους υπολογιστές για τις LPT1, LPT2, LPT3 είναι συνήθως οι 378h-37Fh για την LPT1, οι 278h-27Fh για την LPT2 και οι 3BCh-3BFh για την LPT3 (παλιότερα οι διευθύνσεις 3BCh-3BFh χρησιμοποιούνταν για τις κάρτες γραφικών). Η αντιστοιχία μεταξύ των LPT και των διευθύνσεών τους μπορεί να διαφέρει από υπολογιστή σε υπολογιστή, συνήθως όμως η LPT1, που είναι αυτή που χρησιμοποιείται και στη διπλωματική, βρίσκεται στη διεύθυνση 378h. Ούτως ή άλλως η διεύθυνση αυτή μπορεί να ρυθμιστεί μέσα από το setup του BIOS του υπολογιστή ή μέσω του λειτουργικού συστήματος. Η παράλληλη θύρα πριν το 1994 λειτουργούσε στον Standard Parallel Mode (SPP mode), από εκεί και έπειτα όμως οι καινούργιες παράλληλες θύρες κατασκευάζονται σύμφωνα με το πρότυπο IEEE Το πρότυπο αυτό ορίζει εκτός από το SPP mode και άλλους 5 modes λειτουργίας οι οποίοι πληροφοριακά μόνο είναι οι: 1. Compatibility Mode 2. Nibble Mode 3. Byte Mode 4. EPP Mode 5. ECP Mode Σκοπός ήταν οι καινούργιες συσκευές και οι οδηγοί τους να είναι συμβατές μεταξύ τους, καθώς επίσης και προς τα πίσω συμβατές με τις παλαιότερες παράλληλες θύρες, που λειτουργούσαν με τον SPP mode. Οι τρεις πρώτοι τρόποι λειτουργίας, Compatibility, Nibble και Byte Mode χρησιμοποιούν το ήδη υπάρχον hardware που χρησιμοποιούσε και η παλιότερη παράλληλη θύρα. Αντίθετα οι δύο τελευταίοι, EPP και ECP Mode, χρησιμοποιούν επιπλέον 2
51 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ hardware το οποίο μας δίνει τη δυνατότητα να έχουμε μεγαλύτερες ταχύτητες προσπέλασης σε σχέση με την SPP, ενώ συγχρόνως διατηρείται και η συμβατότητα με τον SPP mode λειτουργίας. Με τον παραδοσιακό τρόπο λειτουργίας της παράλληλης χρειάζονταν περίπου 4 εντολές για να μεταφέρουμε προς τα έξω ένα byte δεδομένων. Οι περισσότερες από αυτές τις εντολές χρησιμοποιούνταν για συνεχές handshaking μεταξύ της LPT και του περιφερειακού. Οι EPP και ECP mode λειτουργίας χρησιμοποιούν το επιπλέον hardware για να δημιουργήσουν και να οργανώσουν το handshaking έτσι ώστε να αυξηθεί η ταχύτητα προσπέλασης στην παράλληλη. Πράγματι, με μία μόνο εντολή μπορούμε τώρα να στείλουμε ένα byte δεδομένων μέσω της παράλληλης με αποτέλεσμα να αυξάνεται ο χρόνος προσπέλασης στα 1-2 megabytes το δευτερόλεπτο. Στη συγκεκριμένη εφαρμογή λοιπόν χρησιμοποιείται ο Enhanced Parallel Port τρόπος λειτουργίας) αφού μας επιτρέπει υψηλές ταχύτητες προσπέλασης, έχοντας όμως και σαν εναλλακτική επιλογή τον (SPP mode) λειτουργίας. Πριν αρχίσουμε όμως να αναλύουμε τη λειτουργία του EPP θα πρέπει να δούμε ποια είναι τα σήματα στο βύσμα της παράλληλης θύρας. Αυτά φαίνονται στον παρακάτω πίνακα τόσο για τον EPP όσο και για τον SPP mode. Η εξήγηση των σημάτων αναφέρεται στον EPP τρόπο λειτουργίας. Pin SPP Signal EPP Signal In/Out Function 1 Strobe Write Out 0 δηλώνει εγγραφή (Write), 1 δηλώνει ανάγνωση (Read). 2-9 Data 0-7 Data 0-7 In-Out Data Bus, δικατευθυντήριο 10 Ack Interrupt In Σήμα διακοπής (Interrupt). To interrupt ενεργοποιείται στην ανερχόμενη παρυφή. 11 Busy Wait In Χρησιμοποιείται για handshaking. Ένας EPP κύκλος μπορεί να αρχίσει όταν το σήμα είναι 0 και τελειώνει όταν είναι Paper Out/ Spare In Spare Δε χρησιμοποιείται End στο EPP handshake. 13 Select Spare In Spare Δε χρησιμοποιείται 14 Auto Linefeed Error/ Fault Data Strobe Out στο EPP handshake. Όταν είναι 0 δηλώνει κύκλο μεταφοράς δεδομένων. 15 Spare In Spare Δε χρησιμοποιείται στο EPP handshake. 16 Initialize Reset Out Reset Ενεργό σε Select Printer Address Strobe Out Όταν είναι 0 δηλώνει κύκλο εντολής Ground Ground GND Ground Γείωση. Πίνακας Ανάθεση των pins του DB-25 connector για τον EPP και SPP mode. 3
52 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Enhanced Parallel Port Mode (EPP) Ο Enhanced Parallel Port mode λειτουργίας (EPP), είναι ο τρόπος που επιλέξαμε για την επικοινωνία του υπολογιστή με το σύστημα της γεννήτριας. Όπως είπαμε, με τον mode αυτό μπορούμε να προσπελάσουμε 1 byte δεδομένων με μία μόνο εντολή, κάνοντας έτσι πιο εύκολο και γρήγορο τον προγραμματισμό. Τόσο ο EPP όσο και ο SPP mode χρησιμοποιούν κάποιους καταχωρητές (Software Registers) για να μπορέσουν να προσπελάσουν τα δεδομένα στην παράλληλη θύρα. Στον EPP mode χρησιμοποιούνται επιπλέον και κάποιοι καινούργιοι καταχωρητές συγχρόνως με τους ήδη υπάρχοντες στον SPP mode. Όλους αυτούς μπορούμε να τους δούμε στον παρακάτω πίνακα μαζί με τις διευθύνσεις τους, που αναφέρονται σε συναρτήσει μιας διεύθυνσης βάσης (Base), η οποία για την LPT1 είναι η 378h, όπως αναφέρθηκε πιο πριν. Address Port Name Read/Write Base+0 Data Port (SPP) Write Base+1 Status Port (SPP) Read Base+2 Control Port (SPP) Write Base+3 Address Port (EPP) Read/Write Base+4 Data Port (EPP) Read/Write Base+5 Undefined ( 16/32 bit Transfer ) - Base+6 Undefined (32 bit Transfer ) - Base+7 Undefined (32 bit Transfer ) - Πίνακας Οι καταχωρητές στoν EPP mode. Όπως βλέπουμε οι τρεις πρώτοι καταχωρητές του EPP mode είναι κοινοί με του αυτούς του SPP. Έτσι μπορούμε να προσπελάσουμε την LPT όπως θα κάναμε και στον SPP, διατηρώντας έτσι τη συμβατότητα με τις παλαιότερες γενιές περιφερειακών συσκευών. Στην περίπτωση όμως που θέλουμε να επικοινωνήσουμε με τον EPP mode τότε χρησιμοποιούμε μόνο δύο καταχωρητές, τον Address Register και τον Data Register. Όταν θέλουμε να μεταφέρουμε ένα byte δεδομένων μέσα από την LPT, τότε το μόνο που έχουμε να κάνουμε είναι να εκτελέσουμε έναν κύκλο εγγραφής του συγκεκριμένου byte στον Data Register (στη διεύθυνση Base+4). Όταν θέλουμε να διαβάσουμε ένα byte δεδομένων τότε εκτελούμε έναν κύκλο ανάγνωσης από τον Data Register, ενώ με ανάλογο τρόπο γίνεται η εγγραφή και η ανάγνωση ενός byte διεύθυνσης από τον Address Register. Όπως θα δούμε παρακάτω τα handshaking σήματα πού έπρεπε να δημιουργήσουμε εμείς στον SPP mode, τώρα δημιουργούνται αυτόματα από την παράλληλη θύρα με την εκτέλεση της εντολής ανάγνωσης ή εγγραφής. Είναι λοιπόν φανερό πόσο πιο εύκολη και γρήγορη γίνεται η οδήγηση της κάρτας μας χρησιμοποιώντας τον EPP mode. Παρακάτω φαίνονται σχηματικά οι κύκλοι εγγραφής και ανάγνωσης στους Address και Data Registers και εξηγούνται αναλυτικά όλα τα βήματα που ακολουθούνται. 4
53 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Πρέπει να σημειωθεί στο σημείο αυτό ότι οι λογικές τιμές 1 και 0 αντιστοιχούν σε TTL στάθμες τάσης, δηλαδή +5V και 0V αντίστοιχα, ενώ το γράμμα n μπροστά από ένα σήμα (π.χ. nwrite) χρησιμοποιείται για να φανερώσει ότι το σήμα αυτό είναι ενεργό στο 0. EPP Data Write Cycle EPP Data Write Write Data Strobe Wait Data DATA Σχήμα Κύκλος εγγραφής δεδομένων Τα βήματα εκτέλεσης ενός κύκλου εγγραφής δεδομένων στον EPP mode έχουν ως εξής : 1. Εκτέλεση εντολής εγγραφής στον EPP Data Register (Base + 4). 2. Το σήμα nwrite γίνεται 0 πριν την πτώση του σήματος ndata Strobe (DS) δηλώνοντας κύκλο εγγραφής. 3. Τα δεδομένα τοποθετούνται στο Data Bus (Data 0-7). Πρέπει να είναι valid κατά την πτώση του DS μέχρι και την άνοδο του. 4. Το σήμα ndata Strobe ενεργοποιείται (τίθεται στο 0 ), αν το nwait είναι 0. (Ένδειξη έναρξης του κύκλου εγγραφής) 5. Η παράλληλη περιμένει αναγνώριση του περιφερειακού με το σήμα nwait να πηγαίνει στο 1. ( Ένδειξη τερματισμού του κύκλου εγγραφής ) 6. Το σήμα ndata Strobe ελευθερώνεται (πηγαίνει στο 1 ). 5
54 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ 7. Ο EPP κύκλος εγγραφής δεδομένων τελειώνει. Το περιφερειακό οδηγεί το nwait στο 0. Τα σήματα ndata Strobe, nwait, nwrite (και αργότερα το naddress Strobe) ελέγχονται αυτόματα από το hardware της θύρας. EPP Address Write Cycle EPP Address Write Write Addr Strobe Wait Data DATA Σχήμα Κύκλος εγγραφής διεύθυνσης Τα βήματα της εκτέλεσης ενός κύκλου εγγραφής διεύθυνσης με τον EPP mode έχουν ως εξής : 1. Εκτέλεση εντολής εγγραφής στον EPP Address Register (Base + 3). 2. Το σήμα nwrite γίνεται 0, δηλώνοντας κύκλο εγγραφής. 3. Η διεύθυνση τοποθετείται στο Data Bus (Data 0-7). 4. Το σήμα naddress Strobe ενεργοποιείται (τίθεται στο 0 ), αν το nwait είναι 0. (Ένδειξη έναρξης του κύκλου εγγραφής) 5. Η παράλληλη θύρα περιμένει αναγνώριση από το περιφερειακό, που συμβαίνει όταν το σήμα nwait να πηγαίνει στο 1. ( Ένδειξη τερματισμού του κύκλου εγγραφής ) 6
55 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ 6. Το σήμα naddress Strobe ελευθερώνεται. 7. Ο EPP κύκλος εγγραφής διεύθυνσης τελειώνει. Το περιφερειακό οδηγεί το nwait στο 0. EPP Data Read Cycle EPP Data Read Write Data Strobe Wait Data DATA Data read on this edge Σχήμα Κύκλος ανάγνωσης δεδομένων Τα βήματα της εκτέλεσης ενός κύκλου ανάγνωσης δεδομένων με τον EPP mode έχουν ως εξής: 1. Εκτέλεση εντολής ανάγνωσης του EPP Data Register (Base + 4). 2. Το σήμα ndata Strobe ενεργοποιείται ( τίθεται στο 0 ), αν το nwait είναι 0. ( Ένδειξη έναρξης του κύκλου εγγραφής ). Το nwrite παραμένει στο Η παράλληλη θύρα περιμένει αναγνώριση από το περιφερειακό που συμβαίνει όταν το σήμα nwait να πηγαίνει στο 1. ( Ένδειξη τερματισμού του κύκλου εγγραφής ) 4. Τα δεδομένα διαβάζονται από το Data Bus της παράλληλης (Data 0-7), στην ανερχόμενη παρυφή του σήματος ndata Strobe. 5. Ο EPP κύκλος ανάγνωσης δεδομένων τελειώνει. Το περιφερειακό οδηγεί το nwait στο 0. 7
56 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ EPP Address Read Cycle EPP Address Read Write Addr Strobe Wait Data DATA Data read on this edge Σχήμα Κύκλος ανάγνωσης διεύθυνσης Τα βήματα της εκτέλεσης ενός κύκλου ανάγνωσης διεύθυνσης με τον EPP mode έχουν ως εξής : 1. Εκτέλεση εντολής ανάγνωσης του EPP Address Register (Base + 3). 2. Το σήμα naddress Strobe ενεργοποιείται (τίθεται στο 0 ), αν το nwait είναι 0. (Ένδειξη έναρξης του κύκλου εγγραφής). Το nwrite παραμένει στο Η παράλληλη περιμένει αναγνώριση του περιφερειακού με το σήμα nwait να πηγαίνει στο 1. ( Ένδειξη τερματισμού του κύκλου εγγραφής ) 4. Τα δεδομένα διαβάζονται από το Data Bus της παράλληλης (Data 0-7) στην ανερχόμενη παρυφή του σήματος naddress Strobe. 5. Ο EPP κύκλος ανάγνωσης διεύθυνσης τελειώνει. Το περιφερειακό οδηγεί το nwait στο 0. 8
57 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Όπως βλέπουμε λοιπόν με τους τέσσερις αυτούς κύκλους μπορούμε να εκτελέσουμε όλες τις απαραίτητες ενέργειες για να επικοινωνήσουμε με την κάρτα μας, χωρίς να ασχοληθούμε καθόλου με τα σήματα handshaking. Standard Parallel Port Mode (SPP) Όπως έχει ειπωθεί, ο Standard Parallel Port mode (SPP) είναι ο παραδοσιακός τρόπος επικοινωνίας της παράλληλης θύρας με τις περιφερειακές συσκευές και χρησιμοποιείται ακόμα και σήμερα για λόγους συμβατότητας. Αν και ο τρόπος με τον οποίο επιλέξαμε να επικοινωνεί το σύστημα μας είναι ο EPP mode, θα ήταν σωστό να αναφέρουμε και τον SPP mode ως μια εναλλακτική επιλογή. Ο Πίνακας 3.1 (στην αρχή του παρόντος κεφαλαίου) δείχνει την αντιστοιχία των pins της παράλληλης με τα σήματα στον SPP mode αλλά και την αντιστοιχία τους με τον EPP mode. Στους παρακάτω πίνακες μπορούμε να δούμε τους τρεις καταχωρητές, Data Register, Control Register, Status Register, καθώς και τη σημασία του κάθε bit. Μιας και έχουμε τη δυνατότητα να χρησιμοποιήσουμε τους καταχωρητές αυτούς και στον EPP mode, μπορούμε με χειροκίνητο τρόπο να δημιουργήσουμε τα σήματα που είδαμε στα σχήματα 3-1, 3-2, 3-3 και 3-4. Πρέπει να σημειωθεί ότι τα bit που χαρακτηρίζονται σαν Hardware Inverted αντιστοιχούν σε κάποια γραμμή της οποίας η πολικότητα αντιστρέφεται από το hardware της παράλληλης. Ένα τέτοιο παράδειγμα είναι το Status bit Busy που δείχνει ο Πίνακας 3. Αν εφαρμόσουμε μια τάση + 5V στη γραμμή αυτή (λογικό 1 ), τότε θα διαβάσουμε ένα λογικό 0 στο bit 7 του Status Register. Offset Name Read/Write Bit No. Properties Base + 0 Data Port Write Bit 7 Data 7 Bit 6 Data 6 Bit 5 Data 5 Bit 4 Data 4 Bit 3 Data 3 Bit 2 Data 2 Bit 1 Data 1 Bit 0 Data 0 Πίνακας Data Port Ο καταχωρητής δεδομένων ή αλλιώς Data Port, βρίσκεται στη διεύθυνση βάσης (Base) της LPT και χρησιμοποιείται για την έξοδο δεδομένων από την παράλληλη. Συνήθως στον καταχωρητή αυτό μπορούμε μόνο να γράψουμε δεδομένα, κάποιες φορές όμως μπορούμε και να διαβάσουμε από αυτόν. Αυτό συμβαίνει αν η LPT χρησιμοποιείται σα δικατευθυντήρια θύρα και τότε διαβάζουμε από αυτή το τελευταίο byte δεδομένων που έχει σταλεί. 9
58 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Hardware Inverted Bit 7 Busy Yes Bit 6 Ack - Bit 5 Paper Out - Bit 4 Select In - Bit 3 Error - Bit 2 IRQ (Not) - Bit 1 Reserved - Bit 0 Reserved - Offset Name Read/Write Bit No. Properties Base + 1 Status Port Read Only Πίνακας Status Port Ο καταχωρητής Κατάστασης, ή Status Port, είναι καταχωρητής μόνο ανάγνωσης και μόνο τα 6 πιο σημαντικά ψηφία του χρησιμοποιούνται. Τα bits του καταχωρητή αυτού χρησιμοποιούνται για να δείξουν την κατάσταση στην οποία βρίσκεται η παράλληλη θύρα, να γνωστοποιήσουν τυχόν λάθη ή αιτήσεις διακοπής από τη θύρα κ.τ.λ. Το Bit 7, όπως είπαμε και παραπάνω χαρακτηρίζεται σαν Hardware Inverted και με τον ίδιο τρόπο λειτουργεί και το Bit 2 το οποίο έχει αρνητική λογική. Offset Name Read/Write Bit No. Properties Hardware Inverted Bit 7 Unused - Bit 6 Unused - Bit 5 Enable Bi- Directional Port - Base + 2 Control Port Read/Write Bit 4 Enable IRQ Via Ack Line - Bit 3 Select Printer Yes Bit 2 Initialise Printer (Reset ) - Bit 1 Auto Linefeed Yes Bit 0 Strobe Yes Πίνακας Control Port Ο καταχωρητής Ελέγχου (Control Port) μας δίνει τη δυνατότητα να γράφουμε αλλά και να διαβάζουμε από αυτόν, αφού οι γραμμές του Control Port είναι έξοδοι κυκλωμάτων «Ανοικτού Συλλέκτη» ή αλλιώς «Open Collector». Αυτό σημαίνει ότι έχουν δύο καταστάσεις λειτουργίας, 10
59 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ μια κατάσταση λογικού 0 και μία κατάσταση υψηλής εμπέδησης Ζ, για να μην υπάρχει κίνδυνος «σύγκρουσης δεδομένων» σ αυτές τις γραμμές. Γι αυτό το λόγο στις περισσότερες κάρτες εκτυπωτών τα σήματα αυτά συνδέονται σε pull up αντιστάσεις. Όπως βλέπουμε και στον πίνακα τα Bits 7 και 6 δεν χρησιμοποιούνται, ενώ στην περίπτωση οδήγησης ενός Printer από την παράλληλη χρησιμοποιούνται μόνο τα τέσσερα πρώτα control σήματα (Bit0 - Bit3). Το Bit4 χρησιμοποιείται για να ενεργοποιούμε / απενεργοποιούμε την αίτηση διακοπής (Interrupt Requests) της LPT, που συνήθως είναι τα IRQ5 ή IRQ7. Το Bit 5 χρησιμοποιείται για να επιλέξουμε δικατευθυντήρια λειτουργία της παράλληλης θύρας, δηλαδή την επιπλέον δυνατότητα λήψης δεδομένων από τις γραμμές (DATA 0 7). Όπως δείχνει ο Πίνακας 3, τα σήματα Strobe, Auto Linefeed και Select Printer αντιστοιχούν στα σήματα Write, Data Strobe και Address Strobe για τον EPP mode. Στην περίπτωση της διπλωματικής, που το περιφερειακό δεν είναι ένας Printer αλλά μια άλλη συσκευή με ξεχωριστό πρωτόκολλο επικοινωνίας, μπορούμε να τα ελέγχουμε κατάλληλα για τη δημιουργία των επιθυμητών σημάτων. Λόγω της συμβατότητας που υπάρχει μεταξύ των EPP και SPP, μπορούμε με τον τρόπο αυτό, να έχουμε μια εναλλακτική επιλογή εντολών που θα εξομοιώνουν το πρωτόκολλο στον SPP mode. Το Πρωτόκολλο Επικοινωνίας Μετά από την απαραίτητη εισαγωγή στη λειτουργία της παράλληλης θύρας του υπολογιστή θα δούμε τώρα ποια λογική ακολουθήθηκε για την υλοποίηση της επικοινωνίας με την κάρτα. Όπως αναφέρθηκε και πιο πάνω χρησιμοποιείται ο EPP mode και σε αυτόν θα αναφερόμαστε από εδώ και στο εξής. Συγκεκριμένα οι τέσσερις κύκλοι που παρουσιάστηκαν στην παράγραφο 3.2 (EPP Data Write cycle, EPP Address Write cycle, EPP Data Read cycle, EPP Address Read cycle), είναι αυτοί που θα χρησιμοποιηθούν από το User Interface του χρήστη. Το πρώτο βήμα που λάβαμε υπόψη μας ήταν το πρόβλημα της ταυτόχρονης λειτουργίας δυο ή και περισσοτέρων καρτών του Desk Top Lab. Κάτι τέτοιο δεν είναι απλώς χρήσιμο στις εργαστηριακές εφαρμογές, είναι φυσικά αναγκαίο, όπως για παράδειγμα η ταυτόχρονη χρήση ενός παλμογράφου και μίας γεννήτριας. Η έννοια της «ταυτόχρονης λειτουργίας» μιας κάρτας με κάποια άλλη είναι εφικτή, και δε θα πρέπει να συγχέεται με την έννοια της «ταυτόχρονης διαχείρισης». Μπορεί η διαχείριση των καρτών να γίνεται με κάποιου είδους καταμερισμό των εντολών στο χρόνο (time sharing), αλλά μια γεννήτρια συχνοτήτων ή ένα τροφοδοτικό δεν παύουν να λειτουργούν. Το πρόβλημα εδώ εντοπίζεται στο ότι όλες οι κάρτες συνδέονται σε μια μόνο παράλληλη θύρα και μέσω αυτής θα πρέπει να τις ελέγχουμε όλες. Δε μπορούμε επομένως να έχουμε πρόσβαση σε όλες τις περιφερειακές συσκευές συγχρόνως και γι αυτό χρειαζόμαστε τη βοήθεια κάποιου «διαχειριστή» των οργάνων του Desk Top Lab, ο οποίος θα αποφασίζει κάθε στιγμή για το ποιο περιφερειακό θα οδηγείται από την LPT. Κάτι τέτοιο μπορεί να υλοποιηθεί με ένα επιπλέον software, το οποίο θα είναι υπεύθυνο για την ομαλή διεξαγωγή της επικοινωνίας του PC με τις συσκευές. Ο σκοπός του είναι να αναγνωρίζει πόσες κάρτες είναι συνδεδεμένες στην παράλληλη θύρα, τι είδους κάρτες είναι και ανάλογα με το είδος τους να εκτελεί τις κατάλληλες υπορουτίνες. Η υλοποίησή του όμως δεν αποτελεί αντικείμενο της παρούσας διπλωματικής εργασίας και γι αυτό το λόγο δεν αναλύεται περισσότερο. 11
60 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Η ανάγκη «εποπτικής διαχείρισης» όλων των οργάνων του Desk Top Lab οδήγησε στην ανάγκη ανάπτυξης ενός ολοκληρωμένου πρωτοκόλλου επικοινωνίας μεταξύ των καρτών και του υπολογιστή. Το front-end του συνθέτη συχνοτήτων της παρούσας διπλωματικής, που αποτελεί όπως ειπώθηκε στην εισαγωγή μέρος του Desk Top Lab, σχεδιάστηκε με βάση αυτό ακριβώς το πρωτόκολλο επικοινωνίας, το οποίο και αναλύεται παρακάτω. Καταρχήν χρησιμοποιείται ένας 4-bit αριθμός ο οποίος δηλώνει το είδος της συσκευής που είναι συνδεδεμένη στο PC. Κάθε φορά που θα εκτελείται το πρόγραμμα «διαχείρισης» τότε θα μπορεί, μέσω αυτού του αριθμού, να αναγνωρίζει τι είδους είναι οι συσκευές που έχουμε στη διάθεσή μας. Κάτι τέτοιο είναι αναγκαίο αφού θα πρέπει αυτόματα να επιλεγεί το κατάλληλο αρχείο για τον προγραμματισμό του FPGA, που διαθέτουν όλα τα όργανα. Ανάλογα με τον κωδικό της συσκευής στέλνεται και το αντίστοιχο αρχείο προκειμένου να τεθεί η κάρτα σε κατάσταση λειτουργίας. Για να μπορούμε να διαχειριζόμαστε περισσότερα από ένα όργανα του Desk Top Lab, κρίθηκε σκόπιμη η προσθήκη ενός συνόλου διακοπτών στην κάρτα που σχηματίζουν τον κωδικό αναγνώρισης της κάρτας (identification number, id). Χρησιμοποιείται λοιπόν ένα dip-switch 8 διακοπτών, από τους οποίους οι 4 αναφέρονται στην κωδικοποίηση του είδους της κάρτας (όπως αναφέρθηκε λίγο παραπάνω) ενώ οι υπόλοιποι 4 εκφράζουν τον αύξοντα αριθμό της συγκεκριμένης κάρτας. Έτσι το λογισμικό εκμεταλλευόμενο το id μπορεί να επιλέγει απ ευθείας μια μεμονωμένη κάρτα και να αναφέρεται σε αυτή κατά τις επόμενες εντολές που στέλνει. Συγκεκριμένα ενεργοποιεί με τον κωδικό αυτό ένα άλλο σήμα της, το οποίο καλούμε Card Select και αποτελεί την ένδειξη επιλογής της. Η ένδειξη αυτή είναι μονοσήμαντη, μόνο μια κάρτα μπορεί να κάθε φορά να έχει άσσο στο σήμα Card Select. Επίσης μόνο όταν το σήμα αυτό είναι ενεργοποιημένο η κάρτα αποκωδικοποιεί τις εντολές που λαμβάνει από την παράλληλη θύρα, παρέχοντάς μας έτσι τη δυνατότητα να δίνουμε εντολές κάθε στιγμή και σε διαφορετικό περιφερειακό, χωρίς να επηρεάζεται η κατάσταση των υπολοίπων. Είναι φανερό λοιπόν ότι ένα όργανο του Desk Top Lab μπορεί να λειτουργεί στην κατάσταση που το είχαμε αφήσει ενώ διαχειριζόμαστε κάποιο άλλο, έχοντας έτσι πολλές συσκευές να λειτουργούν ταυτόχρονα. Όταν θελήσουμε να επικοινωνήσουμε με κάποια άλλη συσκευή, τότε θα πρέπει να επιλέξουμε το Card Select της κάρτας που επιθυμούμε και μετά να στείλουμε μια ή περισσότερες εντολές σε αυτή. Η συσκευή που ήταν προηγουμένως επιλεγμένη τώρα «χάνει» αυτόματα το Card Select με αποτέλεσμα να διακόπτεται η επικοινωνία της με την παράλληλη. Τότε τα pins τα οποία συνδέονται με την παράλληλη θα πρέπει να έρχονται σε κατάσταση Z (High Impedance) για να μπορούν να οδηγηθούν οι υπόλοιπες κάρτες χωρίς να υπάρχει σύγκρουση δεδομένων. Άλλο ένα ζήτημα που προκύπτει στο θέμα της επικοινωνίας μας με τη κάρτα είναι πώς θα επιτευχθεί ο προγραμματισμός του FPGA, ο οποίος πρέπει να γίνεται από το PC κάθε φορά πού θα ενεργοποιούμε την κάρτα. Για το σκοπό αυτό πρέπει να διαθέσουμε τρία σήματα πού θα είναι αποκλειστικά για τον προγραμματισμό του FPGA και θα είναι είσοδοι σ αυτό, ενώ απαιτούνται άλλα δυο σήματα που είναι έξοδοι από το FPGA και πρέπει να ελέγχονται για να επιβεβαιωθεί ότι ο προγραμματισμός του έχει γίνει σωστά. Στα τρία σήματα που είναι είσοδοι 12
61 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ στο FPGA, θα πρέπει εμείς να καθορίζουμε την τιμή τους έτσι ώστε να μπορέσουμε να υλοποιήσουμε τα βήματα που απαιτούνται για να γίνει ο προγραμματισμός. Όλα αυτά έκαναν αναγκαία τη χρήση μίας απλής Προγραμματιζόμενης Λογικής Συσκευής (PLD) με την οποία θα δημιουργούνται όλα αυτά τα απαραίτητα σήματα που θα κάνουν πιο εύκολη τη διαδικασία προγραμματισμού του FPGA επάνω στο board. Το PLD μαζί με κάποια απλά ολοκληρωμένα, αποτελούν το τμήμα του Interface Unit της κάρτας. Ωστόσο στο σημείο αυτό θα πρέπει να δούμε πώς αξιοποιείται μια συσκευή, όπως είναι ένα PLD, για να υλοποιήσουμε το πρωτόκολλο επικοινωνίας. Υλοποίηση του Πρωτοκόλλου Επικοινωνίας- Διαμόρφωση του PLD Οι Προγραμματιζόμενες Λογικές Συσκευές (PLD s) είναι ψηφιακά ολοκληρωμένα κυκλώματα τα οποία μπορούν να διαμορφωθούν από το χρήστη για την υλοποίηση λογικών συναρτήσεων. Τα PLD s, τα τελευταία χρόνια, αποτελούν την περισσότερο προτιμούμενη επιλογή λόγω και του χαμηλού κόστους αλλά και της ευκολίας στη χρήση τους. Το συγκεκριμένο PLD που χρησιμοποιείται εδώ είναι το ATF22V10CQ της ATMEL, το οποίο αποτελεί μια ιδιαίτερα φθηνή επιλογή με μικρές δυνατότητες ολοκλήρωσης, που όμως είναι υπεραρκετές για τις ανάγκες μας. Η συσκευή αυτή έχει τη δυνατότητα επαναπρογραμματισμού ενώ διατηρείται προγραμματισμένη ακόμα και όταν χαθεί η τροφοδοσία. Τα προγράμματα που χρησιμοποιήσαμε για τη διαμόρφωσή και την εξομοίωσή είναι τα WinCupl και WinSim της ATMEL. Η διαμόρφωση του PLD γίνεται σύμφωνα με τις αρχές του πρωτοκόλλου επικοινωνίας που περιγράψαμε. Στο σχήμα 3.5 φαίνεται το pinout του χρησιμοποιηθέντος PLD. Σχήμα Αντιστοίχιση σημάτων στο PLD Το pin 1 της συσκευής αποτελεί το ρολόι (clk) όλων των σύγχρονων κυκλωμάτων που χρησιμοποιούμε και συνδέεται στο σήμα Address Strobe της LPT. Οι υπόλοιπες είσοδοι του 13
62 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ ολοκληρωμένου είναι τα σήματα DS, WR και οι γραμμές δεδομένων D0-D3 και D6, D7 της LPT, καθώς και τα σήματα S0-S3 που σχηματίζουν το id κάρτας. Τα σήματα που δημιουργούνται σαν έξοδοι του PLD είναι το σήμα Wait, που χρησιμοποιείται για handshaking με την LPT, τα τρία σήματα (DPrg0, DClk, nconfig), για τον προγραμματισμό του FPGA, το σήμα επιλογής της κάρτας Card Select (CSL) και ένα σήμα STATUS η χρησιμότητα του οποίου θα φανεί αργότερα. Το EQ είναι ένα dummy σήμα με σκοπό το ευκολότερο και καλύτερο compiling από το WinCupl. Παρακάτω φαίνονται με σχηματικά ο σχεδιασμός των Boolean συναρτήσεων για να γίνει καλύτερα κατανοητό το πρόγραμμα που είναι γραμμένο σε Cupl (γλώσσα προγραμματισμού των PLDs). Η λογική που χρησιμοποιείται είναι ότι τα δύο πιο σημαντικά bits του Data Bus της παράλληλης θύρας, τα D6 και D7 αποκωδικοποιούνται σε κάθε Address Write Cycle, προκειμένου να δηλώσουν επιθυμητό είδος εντολής προς την κάρτα. Τα δυνατά είδη εντολών προς την κάρτα είναι: επιλογή κάρτας (Card Select) προγραμματισμός του FPGA (Program FPGA) αίτηση ελέγχου της κατάστασης της κάρτας (STATUS request) εντολή προς αποκωδικοποίηση από το FPGA, παράκαμψη του PLD (Command to FPGA) Η αντιστοιχία των καταστάσεων αυτών με τους τέσσερις δυνατούς συνδυασμούς των D6, D7 φαίνονται στον παρακάτω πίνακα. D7 D6 D5 D4 D3 D2 D1 D0 CARD STATUS 1 1 x x S3 S2 S1 S0 Card Select 1 0 x x x nconfig DCLK DPRG0 Program FPGA 0 1 x x x x x x STATUS request 0 0 D5 D4 D3 D2 D1 D0 Command to FPGA Πίνακας Η αποκωδικοποίηση του Data Bus της LPT στις 4 καταστάσεις της κάρτας. Στο Σχήμα 3.6 φαίνεται πώς δημιουργείται το σήμα Card Select όταν επιλεγεί ο κατάλληλος κωδικός (D7D6 = 11 ) και το id της συγκεκριμένης κάρτας. 14
63 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Σχήμα Σχηματικό του κυκλώματος δημιουργίας του σήματος Card Select. Όταν τα D7 και D6 είναι άσσοι τότε η πύλη U69 ενεργοποιείται ανάλογα με το αποτέλεσμα της σύγκρισης των S3-0 με τα D3-0. Άρα το D-flip-flop U80 οπωσδήποτε τίθεται ή επανατίθεται (αφού ενεργοποιείται το AS λόγω κύκλου εγγραφής εντολών) και η κάρτα επιλέγεται ή αποεπιλέγεται. Η ανάδραση στο D-flip flop χρησιμοποιείται για να διατηρείται το σήμα ενεργό ακόμα και όταν μεταβούμε σε κάποια άλλη κατάσταση και στέλνουμε άλλου είδους εντολές. Στα σχήματα 3.7 με 3.9 φαίνεται πώς δημιουργούνται τα σήματα με τα οποία προγραμματίζουμε το FPGA. Σχήμα Σχηματικό κύκλωμα δημιουργίας του σήματος DPrg0 (σειριακό stream δεδομένων προς το FPGA) 15
64 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Σχήμα Σχηματικό κύκλωμα δημιουργίας του σήματος χρονισμού DClk Σχήμα Σχηματικό κύκλωμα δημιουργίας του σήματος nconfig Τα bits δεδομένων βγαίνουν στην έξοδο του flip flop στην ανερχόμενη παρυφή του AS και εφ όσον το σήμα Card Select είναι ενεργοποιημένο. Με τον τρόπο αυτό μπορούμε να καθορίζουμε τις τιμές και των τριών σημάτων ταυτόχρονα σε έναν κύκλο Address Write. Η ανάδραση εδώ χρησιμοποιείται για να διατηρούν τα σήματα την τελευταία τους τιμή όταν αλλάξει η κατάσταση της κάρτας. Στο Σχήμα 310 φαίνεται η δημιουργία δυο σημάτων, του CSSTAT και του STATUS. Σχήμα Σχηματικό του κυκλώματος δημιουργίας των σημάτων CSSTAT και STATUS. 16
65 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Με το τέλος του κύκλου Address Write και ενώ έχει επιλεγεί ο κωδικός D7D6 = 01, ενεργοποιείται το σήμα CSSTAT, ένδειξη ότι βρισκόμαστε σε κατάσταση ελέγχου της κάρτας. Εφ όσον το CSSTAT είναι high και η κάρτα επιλεγμένη, τότε εκτελώντας έναν Data Read κύκλο δημιουργείται ένας παλμός στο STATUS ίσης διάρκειας με το DS. Με τον τρόπο αυτό και με την προσθήκη ενός απομονωτή 74HC245, μπορούμε να ελέγξουμε το σωστό προγραμματισμό του FPGA και να κάνουμε πιο εύκολο το debugging της κάρτας. Πιο αναλυτικά το κύκλωμα αυτό θα συζητηθεί στο επόμενο κεφάλαιο. Η τέταρτη κατάσταση D7D6 = 00 είναι η κατάσταση η οποία αναφέρεται στο FPGA και δεν χρειάζεται η δημιουργία κάποιου σήματος από το PLD, δηλαδή το τελευταίο παρακάμπτεται. Όπως θα δούμε σε παρακάτω κεφάλαιο, εκτελώντας κύκλους Address Write μπορούμε να διευθυνσιοδοτούμε καταχωρητές στο FPGA, προσέχοντας όμως τα D7 D6 να αντιστοιχούν πάντα στον κωδικό 00. Κάτι τέτοιο βέβαια σημαίνει ότι μπορούμε να χρησιμοποιήσουμε 6 από τα 8 bit δεδομένων σε έναν Address Write cycle, όταν λειτουργεί η κάρτα μας. Αυτά αντιστοιχούν σε 2 6 διαφορετικούς συνδυασμούς, δηλαδή σε 64 διαφορετικές διευθύνσεις. Ακόμα όμως και αυτό το όριο μπορεί να παρακαμφθεί εκτελώντας διπλούς κύκλους Address Write για επιλογή μιας εντολής, αυξάνοντας φυσικά την πολυπλοκότητα του συστήματος. 64 εντολές / διευθύνσεις είναι λοιπόν υπεραρκετές για τις ανάγκες μας. Τέλος το σήμα Wait υλοποιείται από τη συνάρτηση WAIT = AS + DS, δημιουργώντας έναν παλμό κάθε φορά που έρχεται το σήμα AS ή DS. Έτσι ολοκληρώνεται το handshaking της κάρτας με την LPT που απαιτείται για τελειώσει ένας κύκλος ανάγνωσης ή εγγραφής στον EPP mode. Στην επόμενη σελίδα ακολουθεί το τελικό αρχείο προγραμματισμού του PLD γραμμένο στη γλώσσα CUPL. 17
66 ΚΕΦΑΛΑΙΟ 3 ΕΠΙΚΟΙΝΩΝΙΑ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ /****************************************************************/ /* */ /* PLD FOR DESK TOP LAB CARDS */ /* */ /****************************************************************/ /* Allowable Target Device Types : PAL22V10 */ /****************************************************************/ /** Inputs **/ PIN 1 = AS; /* Address Strobe */ PIN 2 = DS; /* Data Strobe */ PIN 3 = WR; /* Write Input */ PIN [7..4] = [D3..0]; /* Data Inputs */ PIN [11..10] = [D7..6]; /* Command select inputs */ PIN [9..8] = [S3..2]; /* Card Select Inputs */ PIN 19 = S0; PIN 18 = S1; /** Outputs **/ PIN 14 = NCONFIG; /* CNF OF FPGA */ PIN 15 = DCLK; /* DCLK OF FPGA */ PIN 17 = DPRG; /* D0prog OF FPGA */ PIN 16 = CSL; /* Card Select */ PIN 23 = STATUS; PIN 20 = WAIT; /* *************** DUMMY PINS ************************* */ PIN 22 = EQ; /* DUMMY OUTPUT (D[3..0]==S[3..0]*/ PIN 21 = CSSTAT; /* Status Latch */ /** Declarations and Intermediate Variable Definitions **/ field CARD = [S3..0]; /* Card Select Inputs */ field DATA = [D3..0]; /* Data Inputs */ /** Logic Equations **/ CSL.AR = 'b'0; CSL.SP = 'b'0; 18
67 Κεφάλαιο 4 Σχεδίαση και Υλοποίηση της Κάρτας του Συνθέτη Περιεχόμενα: 4.1 Εισαγωγή - Βασικά μέρη της κάρτας Interface Unit Control Unit Application Unit Το FPGA Digital to Analog Converter (DAC) Το φίλτρο Το VCO Υλοποίηση της κάρτας (PCB)... 20
68 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Το παρόν και το επόμενο κεφάλαιο είναι πολύ σημαντικά καθώς σε αυτά παρουσιάζεται ο τρόπος υλοποίησης της διπλωματικής, αναλύονται δηλαδή και εξηγούνται οι διάφορες επιλογές που πάρθηκαν κατά την ανάπτυξη της. Σε αυτό το κεφάλαιο αναφερόμαστε στην σχεδίαση και υλοποίηση του υλικού από το οποίο αποτελείται η κάρτα, ενώ στο επόμενο στο σχεδιασμό της δομής και του περιεχομένου του FPGA. Εισαγωγή - Βασικά μέρη της κάρτας Έχει ήδη αναφερθεί στην εισαγωγή πως ο συνθέτης συχνοτήτων του ο οποίος αναλύεται σε αυτή τη διπλωματική, θα υλοποιηθεί σε μία πλακέτα τυπωμένου κυκλώματος ώστε να μπορεί να χρησιμοποιηθεί σαν περιφερειακό σε κάποιο PC. Πριν μπούμε λοιπόν σε περισσότερες λεπτομέρειες, θα δούμε ποια είναι η γενική δομή πού έχει το hardware, ώστε να γίνει πιο εύκολη και κατανοητή η παρουσίασή του. Αρχικά θα μπορούσαμε να διακρίνουμε τρία βασικά μέρη από τα οποία αποτελείται η σχεδίαση και τα οποία θα αναλυθούν στις αντίστοιχες παραγράφους. Όπως φαίνεται στο σχήμα 4.1, αυτά είναι η μονάδα Διεπαφής του Συστήματος (Interface Unit), η Μονάδα Ελέγχου (Control Unit) και το Τμήμα της Εφαρμογής (Application Unit). PCB Interface Control Unit Application Unit (inside fpga / on pcb board) Σχ Τα βασικά μέρη της σχεδίασης του συνθέτη Το πρώτο πρόβλημα που έχουμε να αντιμετωπίσουμε στο σχεδιασμό της κάρτας είναι με ποιο τρόπο θα επικοινωνεί αυτή με τον υπολογιστή. Το Interface Unit είναι το τμήμα του hardware που αναλαμβάνει την αποκωδικοποίηση των σημάτων που λαμβάνονται από την κάρτα μέσω της παράλληλης θύρας του υπολογιστή σύμφωνα με το πρωτόκολλο επικοινωνίας που είδαμε στο προηγούμενο κεφάλαιο. Το τμήμα αυτό αναλαμβάνει επίσης να στείλει προς τον υπολογιστή απαραίτητες πληροφορίες για την ορθή λειτουργία του συνθέτη. Αποτελείται από κάποια ολοκληρωμένα πού κρίθηκαν αναγκαία για να γίνει ο προγραμματισμός του FPGA καθώς επίσης και για να είναι εφικτή η ανάγνωση και η αποστολή κάποιων σημάτων από και προς την παράλληλη θύρα. Αξίζει να σημειωθεί εδώ, ότι το τμήμα του Interface Unit είναι το ίδιο για όλα τα εργαστηριακά όργανα του Desk Top Lab, αφού σε 2
69 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ όλα ο τρόπος επικοινωνίας κάρτας - υπολογιστή είναι απαραίτητο να είναι κοινός και σε όλα γίνεται χρήση ενός FPGA. Το τμήμα του Interface Unit επικοινωνεί με το αμέσως επόμενο, στο σχήμα 4.1, που είναι το τμήμα του Control Unit και το οποίο αποτελεί τη κεντρική μονάδα επεξεργασίας της κάρτας μας. Το τμήμα αυτό υλοποιείται χρησιμοποιώντας μέρος των logic cells του FPGA, κάτι που μας διευκολύνει πάρα πολύ αφού είναι δυνατή η τροποποίηση του σχεδιασμού μας πολύ εύκολα και γρήγορα. Είναι ένα εξαιρετικά σημαντικό μέρος της σχεδίασης αφού είναι αυτό που ευθύνεται για την αποκωδικοποίηση των εντολών του χρήστη, που διευθυνσιοδοτεί καταχωρητές και επιλέγει ποιο τμήμα του fpga θα λειτουργεί ανά πάσα στιγμή, καθώς και άλλα πολλά τα οποία θα συζητηθούν αναλυτικά στις επόμενες παραγράφους. Επίσης καθιστά δυνατή την επιτυχή αποσφαλμάτωση (debugging) της κάρτας σε λογικό επίπεδο. Είναι δηλαδή το τμήμα που ελέγχει εν πολλοίς τη λειτουργία ολόκληρης της κάρτας (και όχι μόνο του συνθέτη). Τέλος το τρίτο τμήμα της κάρτας είναι το Application Unit (Τμήμα Εφαρμογής) και είναι προφανώς ξεχωριστό για κάθε όργανο του Desk Top Lab. Αυτό υλοποιεί την κύρια λειτουργία της κάρτας που είναι η σύνθεση συχνοτήτων, καθώς επίσης και τις όποιες παράπλευρες λειτουργίες της. Αποτελείται κυρίως από την ψηφιακή έκδοση του DIPA, που είναι υλοποιημένη εντός του FPGA, και από κάποια άλλα ολοκληρωμένα και αναλογικά στοιχεία που είναι τοποθετημένα στο board. Τα ολοκληρωμένα από τα οποία αποτελείται το τμήμα εφαρμογής και το πώς αυτά λειτουργούν και συνεργάζονται με τα υπόλοιπα μέρη της κάρτας είναι και αυτό ένα θέμα που θα αναλυθεί στην πορεία αυτού του κεφαλαίου. Interface Unit Το interface unit αναλαμβάνει τη βασική επικοινωνία του υπολογιστή με την κάρτα, τόσο σε φυσικό επίπεδο (παράλληλη θύρα) όσο και σε λογικό (αρχικοποιήσεις, προγραμματισμός του FPGA, βασική επικοινωνία με λογισμικό, κ.α.). Φυσικό επίπεδο Όλες οι κάρτες συνδέονται σε ένα ειδικό κουτί που με τη σειρά του τις συνδέει με την παράλληλη θύρα του υπολογιστή. Η σύνδεση με το κουτί γίνεται μέσω ενός διασυνδετικού που ονομάζεται euroconnector. Ο euroconnector έχει δύο σειρές με 32 σήματα η κάθε μια. Για λόγους αξιοπιστίας το κάθε σήμα μεταδίδεται από δύο ακροδέκτες. Η πληθώρα σημάτων του euroconnector καθώς και η αυξημένη αξιοπιστία του είναι πολύ χρήσιμα χαρακτηριστικά, για 3
70 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ αυτό και τον επιλέξαμε ως το διασυνδετικό της κάρτας με τον υπολογιστή. Με αυτόν μπορούμε να μεταφέρουμε όλα τα απαραίτητα σήματα της παράλληλης θύρας, καθώς και την τροφοδοσία της κάρτας. Το σχηματικό του euroconnector όπως υλοποιήθηκε για την κάρτα μας φαίνεται στο σχήμα 4.2. Σχ Μεταφορά σημάτων από την παράλληλη θύρα στην κάρτα Διακρίνονται τα σήματα AS, DS, WR, Wait (address strobe, data strobe, read/write, wait αντίστοιχα), το data bus (D[7..0]), και τα σήματα τροφοδοσίας και γείωσης. Επίσης παρατηρούμε κάποια test points στα σήματα AS, DS και WR. Αυτά παρείχαν σημαντικότατη βοήθεια στο debugging των αρχικών σταδίων. Test points θα συναντήσουμε σε αρκετά από τα σήματα της κάρτας. Ανάλογα με το σύμβολο του port μπορούμε εύκολα να καταλάβουμε αν ένα σήμα είναι είσοδος, έξοδος ή είναι δικατευθυντήριο (bi-directional), κάτι που βοηθάει σημαντικά στην ευκολότερη κατανόηση των σχηματικών. Τα σήματα τροφοδοσίας οδηγούνται φυσικά σε regulators τα οποία έχουν ως σκοπό να παράγουν τις επιθυμητές τάσεις με ακρίβεια. Το σχηματικό τους παρουσιάζεται στο σχήμα
71 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Η τάση των +5V (VCC) χρησιμοποιείται κυρίως για την τροφοδοσία των ψηφιακών μερών της κάρτας όπως το FPGA και τα ολοκληρωμένα HC (τεχνολογίας CMOS). Τα +12V (VDD) και -12V (VEE) χρησιμοποιούνται για την τροφοδοσία του ψηφιοαναλογικού μετατροπέα (DAC) και του τελεστικού ενισχυτή του φίλτρου. Τα regulators που χρησιμοποιούμε είναι τα LM7805CT, MC7812T και MC7912T τα οποία έχουν τρεις ακροδέκτες (είσοδος, γείωση, έξοδος). Μεταξύ της εξόδου και της γείωσης των Regulators συνδέονται ηλεκτρολυτικοί πυκνωτές (C6-C8) οι οποίοι είναι απαραίτητοι για τη σωστή λειτουργία των κυκλωμάτων. Σχ Τα χρησιμοποιηθέντα regulators Στο σχήμα 4.4 έχουμε το σχηματικό των 8 διακοπτών για τους οποίους μιλήσαμε στην παράγραφο 3.4. όπως φαίνεται συνδέονται σε ισάριθμες pull-up αντιστάσεις μέσω του R_PACK. Σχ Επιλογή τύπου και αριθμού της κάρτας 5
72 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Οι 4 διακόπτες S3..0 υλοποιούν τα 4 bit του αύξοντα αριθμού της κάρτας. Δηλαδή τα σήματα S3..S0 μπορούν να ορίσουν μονοσήμαντα μια κάρτα, έτσι ώστε η τελευταία να μπορεί να επιλέγεται και να αποεπιλέγεται από το χρήστη. Οι διακόπτες CD3..CD0 υλοποιούν τα 4 bit που κωδικοποιούν τον τύπο της κάρτας. Βελτιώνεται έτσι η διαχείριση των καρτών από το λογισμικό, καθώς επίσης αποκτούμε επιπλέον δυνατότητες debugging, όπως θα φανεί λίγο αργότερα. Λογικό επίπεδο Στο σχήμα 4.5 έχουμε το σχηματικό του σημαντικότερου μέρους του interface unit που είναι ο συνδυασμός των PLD - απομονωτή. Η ανάγκη ύπαρξης του PLD καθώς ο τρόπος λειτουργίας του συζητήθηκε στην παράγραφο 3.5, ας δούμε τώρα το πώς επικοινωνεί αυτό με τα υπόλοιπα μέρη της κάρτας. Σχ Η διασύνδεση των PLD και buffer Είσοδοι στο PLD είναι τα AS, DS, WR και μέρος του data bus της παράλληλης θύρας που χρειάζονται για την αποκωδικοποίηση εντολών του χρήστη και δημιουργία των σημάτων εξόδου. Επίσης είσοδοι είναι και τα σήματα S3..S0 ώστε το PLD να αποφασίζει αν πρέπει να επιλεγεί η συγκεκριμένη κάρτα. 6
73 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Έξοδοι είναι τα CSL (ένδειξη επιλογής της κάρτας) και DPRG0, DClk, nconfig που οδηγούνται προς το FPGA. Τα τρία τελευταία σήματα αναλαμβάνουν τον προγραμματισμό του FPGA, ενώ η Control unit του FPGA δεν λειτουργεί αν το σήμα CSL δεν είναι σε κατάσταση high. Περισσότερες λεπτομέρειες θα δοθούν στο μέρος της διπλωματικής όπου αναλύεται το περιεχόμενο του FPGA. Ιδιαίτερα σημαντική είναι η έξοδος STATUS του PLD. Όπως φαίνεται από το σχήμα οδηγεί την είσοδο enable του απομονωτή 74HC245. Είδαμε στην παράγραφο 3.5 ότι όταν ενεργοποιείται το σήμα CSSTAT (εσωτερικό του PLD) και κατ επέκταση το σήμα STATUS τότε ο χρήστης διαβάζει κάποια σήματα κατάστασης της κάρτας. Καιρός να δούμε ποια είναι αυτά τα σήματα. Κατ αρχάς παρατηρούμε ότι η είσοδος Direction είναι δεμένη στο high ώστε η κατεύθυνση του απομονωτή να είναι πάντα από αριστερά προς τα δεξιά. Όταν το σήμα enable είναι 1 (δηλ. το STATUS είναι επίσης 1 ) τότε το κύκλωμα HC245 απομονώνει το bus A από το bus B. Συνεπώς αφήνει το data bus σε κατάσταση υψηλής εμπέδησης, ώστε να μπορεί να χρησιμοποιηθεί από άλλα κυκλώματα. Όταν ο χρήστης στείλει εντολή Status (συνδυασμός D7D6 = 01 και epp write address) και αμέσως μετά εντολή epp data read (φυσικά η κάρτα πρέπει να ήδη επιλεγμένη) τότε δημιουργείται στην έξοδο STATUS ένας παλμός αρνητικής λογικής και διάρκειας ίσης με τη διάρκεια του παλμού DS. Ο παλμός αυτός ενεργοποιεί τον απομονωτή. Έτσι τα δεδομένα στο bus A «βγαίνουν» στο bus B που είναι και το data bus της παράλληλης θύρας, καθ όλη τη διάρκεια του παλμού DS. Σαν παρένθεση αναφέρεται ότι πρέπει να σχεδιάσουμε με μεγάλη προσοχή την υλοποίηση του πρωτοκόλλου, ώστε να αποκλεισθεί οποιαδήποτε περίπτωση σύγκρουσης στο data bus. Μάλιστα κατά την ανάπτυξη της διπλωματικής υπήρξαν αρκετές βελτιώσεις στον τομέα αυτό για να απαλειφθούν και τα τελευταία προβλήματα. Το αποτέλεσμα των παραπάνω είναι φυσικά ότι ο χρήστης διαβάζει τα σήματα στο bus A του απομονωτή. Ποια είναι αυτά τα σήματα; Τα δύο σημαντικότερα είναι τα σήματα Conf_Done και nstatus. Τα σήματα αυτά μας πληροφορούν για την κατάσταση προγραμματισμού του FPGA. Περισσότερες λεπτομέρειες για το προγραμματισμό του FPGA θα δοθούν αργότερα, για την ώρα όμως αρκεί να ξέρουμε ότι για να είναι επιτυχής ο προγραμματισμός του FPGA πρέπει και τα δύο να έχουν τιμή 1. Είναι και τα δύο συνδεδεμένα σε pull-up αντιστάσεις, επειδή είναι open-drain σήματα και το FPGA μπορεί να τα οδηγήσει μόνο στο 0. Συνεπώς πρέπει να διαβάζουμε την τιμή C στο πιο σημαντικό nibble του byte καταστάσεως, για να είμαστε σίγουροι ότι το FPGA έχει προγραμματιστεί σωστά. Στο less significant nibble διαβάζουμε τα σήματα CD3..CD0, απευθείας από τους διακόπτες του στοιχείου SW-DIP8. Αφ ενός αυτό επιτρέπει στο λογισμικό του υπολογιστή να αναγνωρίσει το είδος της κάρτας και να συμπεριφερθεί καταλλήλως (π.χ. να προγραμματίσει το FPGA με το κατάλληλο αρχείο). Αφ ετέρου προσφέρει σημαντική βοήθεια στο debugging αφού μπορούμε να ελέγχουμε κάθε φορά αν ο μηχανισμός ανάγνωσης δεδομένων από την κάρτα προς τον υπολογιστή λειτουργεί σωστά, επιλέγοντας κάποιο συνδυασμό στα CD3..CD0 και στέλνοντας status read. 7
74 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Τέλος, αν και δεν ανήκει ακριβώς στο interface unit, ο header του σχήματος 4.6 είναι εξαιρετικά σημαντικός για το debugging της κάρτας. Συνδέεται σε I/O pins του FPGA. Συνεπώς μπορούμε να αντιστοιχίσουμε σε αυτόν οποιοδήποτε εσωτερικό σήμα του FPGA, καθώς επίσης και σήματα που δεν δημιουργούνται εντός του FPGA αλλά είναι είσοδοι σε αυτό, όπως τα AS, DS, WR, CSL και το data bus της κάρτας. Σχ Debugging header Με τη βοήθεια ενός λογικού αναλυτή μπορούμε πολύ εύκολα να παρατηρούμε ταυτόχρονα πολλές κυματομορφές (η επιλογή των ποιων σημάτων θα «βγουν» στον header είναι πολύ εύκολη όπως θα φανεί παρακάτω) και να εξετάζουμε χρονικές αλληλουχίες σημάτων, και διάφορα άλλα κρίσιμα σημεία της σχεδίασης. Ένα pin του header καλό είναι να παραμένει ασύνδετο (όπως το 15 εδώ), ώστε να το σπάμε πάνω στην κάρτα και να καταλαβαίνουμε ευκολότερα ποιο είναι το orientation του header. Control Unit Η μονάδα ελέγχου του συστήματος έχει υλοποιηθεί εξ ολοκλήρου εντός του FPGA. Κρίνεται λοιπόν καταλληλότερη η παρουσίαση στο αντίστοιχο μέρος της διπλωματικής. Application Unit Όπως ειπώθηκε στην εισαγωγή του κεφαλαίου το τμήμα εφαρμογής περιέχει όλα τα ολοκληρωμένα κυκλώματα και διακριτά στοιχεία για την επιτυχή σύνθεση συχνοτήτων. Σε αυτήν την παράγραφο θα αναλυθεί το πώς αλληλεπιδρούν αυτά μεταξύ τους. Το FPGA Το σχηματικό του FPGA που είναι τοποθετημένο πάνω στην κάρτα φαίνεται στο σχήμα
75 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Σχ Το σχηματικό του FPGA και των διασυνδέσεων του Είναι το 8636 της σειράς FLEX8000 της Altera και έχει 84 pins. Χρησιμοποιήθηκε στη συσκευασία PLCC84. Το FPGA αυτό είναι το μεγαλύτερο της σειράς (περιέχει 636 χρησιμοποιήσιμα logic cells όπως δηλώνει και το όνομα του) και επιλέχθηκε όταν το 8452 αποδείχθηκε πολύ μικρό για να χωρέσει ταυτόχρονα το τμήμα ελέγχου και την ψηφιακή έκδοση του DIPA. Έχει το ίδιο pinout και την ίδια συμπεριφορά και προγραμματισμό με το 8452, κάτι που ήταν απολύτως απαραίτητο καθώς δεν ήταν δυνατόν να αλλάξει η πορεία της σχεδίασης σε τόσο προχωρημένη φάση υλοποίησης της διπλωματικής. Μπορούμε να χωρίσουμε την χρήση των pins του FPGA σε 5 κατηγορίες. Τα pins 15 με 36 χρησιμοποιούνται για την επικοινωνία με το τμήμα διεπαφής (Interface Unit) του συστήματος. Παρατηρούμε ότι σε αυτούς τους ακροδέκτες εισάγεται το data bus της κάρτας καθώς και τα διάφορα σήματα ελέγχου όπως τα WR, AS, DS, και CSL. Τα pins 37 με 54 χρησιμοποιούνται για το κλείσιμο του βρόχου του PLL μέσω ανάδρασης, δηλαδή τροφοδοτούν τον DIPA εντός του FPGA με την συχνότητα εξόδου. 9
76 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Τα pins 55 με 72 αποτελούν ένα 16-bit bus και οδηγούν τον DAC που με τη σειρά του οδηγεί το φίλτρο του PLL. Τα pins 1 με 9 και 76 με 84 οδηγούν τον debug header για τον οποίο μιλήσαμε σε προηγούμενη παράγραφο. Υπάρχουν τέλος κάποια μεμονωμένα pins που χρησιμοποιούνται για τον προγραμματισμό και τον έλεγχο της λειτουργίας του FPGA. Όλα τα παραπάνω θα αναλυθούν διεξοδικά στις παραγράφους που ακολουθούν. Το ρολόι του FPGA Τα κυκλώματα που υλοποιούνται στο FPGA είναι όλα σύγχρονα. Γι αυτό χρειάζεται να δημιουργήσουμε μια παλμοσειρά και να οδηγήσουμε με αυτή όλα τα κυκλώματα στο FPGA. Χρησιμοποιούμε το παρακάτω κύκλωμα για την δημιουργία του ρολογιού. Σχ Κύκλωμα Pierce για τη δημιουργία του ρολογιού στο FPGA Ο κρύσταλλος Y1 ταλαντώνει (με τη βοήθεια κατάλληλου κυκλώματος πόλωσης) στα 18,432 MHz. Όπως παρατηρούμε στο κύκλωμα αυτό υπάρχουν μία είσοδος και μία έξοδος, προς και από το FPGA αντίστοιχα (XT1, XT2, ακροδέκτες 12 και 13). Οι γραμμές αυτές συνδέονται στην είσοδο και στην έξοδο ενός αντιστροφέα για να ολοκληρώσουν το κύκλωμα του Pierce που βλέπουμε στο σχήμα 4.8. Από την έξοδο CLK παίρνουμε το ρολόι που χρησιμοποιούμε στα κυκλώματά του FPGA. 10
77 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Ο προγραμματισμός του FPGA Ο προγραμματισμός του FPGA θεωρούμε ότι είναι καλύτερο να αναλυθεί στο επόμενο κεφάλαιο που αναφέρεται στο περιεχόμενο και στη δομή του ολοκληρωμένου αυτού. Digital to Analog Converter (DAC) Ο συγκριτής φάσης στο PLL που χρησιμοποιούμε είναι ο DIPA και είναι ψηφιακός. Αυτό σημαίνει ότι στην έξοδο του ανά πάσα στιγμή έχουμε μια ψηφιακή λέξη (το μήκος της οποίας είναι χαρακτηριστικό μέγεθος του DIPA) που εκφράζει την διαφορά φάσης μεταξύ των δύο κυματομορφών εξόδου. Αυτή ακριβώς η ψηφιακή λέξη πρέπει μέσω ανάδρασης να διορθώσει τον βρόχο και να φέρει την συχνότητα εξόδου στην επιθυμητή συχνότητα. Φυσικά όλα τα υπόλοιπα στοιχεία του PLL, πέραν του DIPA είναι αναλογικά, οπότε είναι προφανές ότι αυτή η ψηφιακή λέξη πρέπει να μετατραπεί σε αναλογική τάση για να τροφοδοτήσει το φίλτρο και κατ επέκταση το VCO. Είναι απαραίτητο λοιπόν να χρησιμοποιήσουμε ένα μετατροπέα ψηφιακού σήματος σε αναλογικό (Digital-to-Analog Converter, DAC), επιλογή αρκετά σημαντική για τις επιδόσεις του συνολικού βρόχου. Θέλαμε ένα αρκετά γρήγορο 16-bit DAC από τον οποίο είχαμε την απαίτηση (λόγω ανάλογης σχεδίασης του DIPA) να μην έχει buffered ή latched εισόδους, να μη λειτουργεί με κανενός είδους ρολόι, δηλαδή να είναι πλήρως ασύγχρονος. Θέλαμε η έξοδος του να αλλάζει τιμή μόνο όταν αλλάξει η ψηφιακή στάθμη κάποιας από τις εισόδους του. Στην έρευνα μας βρήκαμε ότι η παραπάνω απαίτηση δεν ήταν τόσο εύκολο να καλυφθεί. Συνεπώς αναγκαστήκαμε να κάνουμε κάποιους συμβιβασμούς οι οποίοι θα φανούν αργότερα. Παρουσίαση του DAC Ο DAC που τελικά επελέγη είναι το μοντέλο 712 της Burr-Brown (θυγατρική εταιρεία της Texas Instruments), το pinout του οποίου φαίνεται στο σχήμα Για οικονομία χώρου στο PCB επελέγη το SOIC package (surface mount) που φαίνεται στην φωτογραφία του σχήματος 4.9. Σχ Burr-Brown DAC712 11
78 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Σχ Pinout του DAC712 Pin Label Pin Description 1 DCOM Power Supply return for digital currents 2 ACOM Analogue Supply Return 3 V OUT ±10V D/A Output 4 Off Adj Offset Adjust (Bipolar) 5 V REF OUT Voltage Reference Output 6 Gain Adj Gain Adjust 7 +V CC +12V to +15V Supply 8 -V CC -12V to -15V Supply 9 CLR CLEAR. Sets D/A output to BIPOLAR ZERO (Active Low) 10 WR Write (Active Low) 11 A1 Enable for D/A latch (Active Low) 12 A0 Enable for Input latch (Active Low) 13 D15 Data Bit 15 (Most Significant Bit) 14- D14-D1 Data Bits 14 to D0 Data Bit 0 (Least Significant Bit) Πίνακας Περιγραφή των pins του DAC712 Ο DAC αυτός εκτός από το πλεονέκτημα της δυνατότητας του για ασύγχρονη λειτουργία, έχει 20V full scale αναλογική έξοδο (±10V). Αυτό σημαίνει ότι μπορούμε να οδηγήσουμε το VCO με αρκετά μεγάλο εύρος τάσης, κερδίζοντας αντίστοιχα υψηλό εύρος συχνοτήτων (κάτι που εξαρτάται φυσικά από τη σχεδίαση του VCO και από το Kv του). 12
79 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Στο σχήμα 4.11 φαίνεται η βασική υλοποίηση του DAC όπως αυτή παρουσιάζεται στο datasheet. Σχ Block διάγραμμα του DAC712 Παρατηρούμε φυσικά ότι υπάρχουν latches στο block διάγραμμα. Στο datasheet όμως αναφέρεται ότι μπορούμε να κάνουμε διαφανή αυτά τα latches και πλήρως ασύγχρονη τη λειτουργία του DAC γειώνοντας τα control pins /Α0, /Α1, /WR και κρατώντας σε υψηλή στάθμη το /CLR. Η συνδεσμολογία του DAC στη σχεδίαση μας φαίνεται στο σχήμα Σχ Η συνδεσμολογία του DAC 13
80 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Το bus Q[15..0] δέχεται τις αντίστοιχες εξόδους του FPGA. Η έξοδος του DAC είναι η DAC_out του ακροδέκτη 13, η οποία οδηγεί το ενεργό φίλτρο που χρησιμοποιήσαμε (βλ. παράγραφο 4.4.3). Εφόσον δεν χρειαζόμαστε τις δυνατότητες gain και offset adjust του DAC αφήνουμε τα αντίστοιχα pins (4,5,6) ασύνδετα. Τέλος γειώνουμε τα pins 10,11,12 και κρατάμε σε high το pin 9 ώστε να λειτουργήσουμε τον DAC σε ασύγχρονο τρόπο. Επιδόσεις του DAC Παρακάτω παρατίθενται κάποια διαγράμματα από το datasheet του DAC με σκοπό να δώσουν κάποιες ενδείξεις για τις δυνατότητες και επιδόσεις του. Σύμφωνα με τα χαρακτηριστικά του DAC, ο τυπικός χρόνος ανόδου / καθόδου για την έξοδο είναι 10 V/μsec. Όπως φαίνεται στο παρακάτω σχήμα (4.13) η έξοδος μεταβάλλεται από -10V σε 0V σε 1/5 του div δηλαδή σε 2 μsec ενώ καλύτερες είναι οι επιδόσεις καθόδου. Σίγουρα όμως οι χρόνοι αυτοί είναι χειρότεροι από τους τυπικά αναμενόμενους. Σχ full scale μετάβαση της εξόδου (-10V έως +10V) 14
81 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Σχ Λεπτομέρεια χρονικής απόκρισης αλλαγής της εξόδου Ειπώθηκε στην αρχή της παρουσίασης του DAC ότι αναγκαστήκαμε να κάνουμε κάποιους συμβιβασμούς κατά την επιλογή του. Το πρώτο πρόβλημα ήταν ότι ο DAC δέχεται τα ψηφιακά δεδομένα εισόδου κωδικοποιημένα κατά το συμπλήρωμα του 2. Δηλαδή η αντιστοιχία ψηφιακής λέξης εισόδου με τάση εξόδου είναι αυτή που φαίνεται στον παρακάτω πίνακα: Ψηφ. Λέξη Εισόδου Τάση Εξόδου (16 bits) V V μv μv μv V μv μv V μv V Πίνακας Αντιστοιχία εισόδου - εξόδου του DAC σύμφωνα με το συμπλήρωμα του 2 15
82 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Σύμφωνα με την μέχρι τότε σχεδίαση μας, ο DAC θα έκανε άλμα από τα +10V στα -10V όταν εμείς θα περιμέναμε να περάσει ομαλά από το σημείο 0V. Αυτό φαίνεται καλύτερα στο παρακάτω σχήμα. +10V 0 - (65536) -10V (32768) 0V +10V (32767) -10V 0 + (0) Επιθυμητή συμπεριφορά Συμπεριφορά του DAC712 Σχ Το πρόβλημα αυτό ξεπεράστηκε εύκολα τροποποιώντας την λειτουργία των adders του DIPA στο FPGA (επιλογή signed πρόσθεσης) κάτι που θα συζητηθεί στο κεφάλαιο 5, και αλλάζοντας τον τρόπο που κωδικοποιούνται οι αριθμοί Nout και Nref από το λογισμικό (βλέπε κεφ. 6). Ένα δεύτερο και πιο σημαντικό πρόβλημα είναι ότι ο DAC παρουσιάζει συχνότητα αποκοπής f S = 100 KHz. Συνεπώς, ανεξαρτήτως του φίλτρου, έχουμε ήδη ένα περιοριστικό παράγοντα στο bandwidth και άρα στη ταχύτητα του βρόχου. Πράγματι αφαιρώντας τελείως το φίλτρο παρατηρήσαμε ότι το σύστημα λειτουργούσε κανονικά και ταχύτατα, χάνοντας βέβαια κάπως στην ποιότητα του σήματος εξόδου. Περισσότερες πληροφορίες θα δοθούν στο κεφάλαιο παρουσίασης των μετρήσεων (κεφ. 7). Το συγκεκριμένο πρόβλημα δεν λύθηκε ποτέ αφού αφενός ο συνθέτης λειτουργούσε εξαιρετικά παρά την ύπαρξή του (απλώς θα μπορούσε να είναι ταχύτερος) και αφετέρου δεν ήταν δυνατό να παραγγείλουμε και να χρησιμοποιήσουμε άλλο DAC σε τόσο προχωρημένο στάδιο της υλοποίησης της διπλωματικής. Το πιο σημαντικό πρόβλημα του DAC όμως ήταν η πολύ μέτρια γραμμικότητα του. Για την έκδοση 712U που χρησιμοποιήσαμε το datasheet ανέφερε μέγιστο σφάλμα γραμμικότητας τα ±4 Least Significant Bits (LSB) που φυσικά κάθε άλλο παρά λίγο είναι. Η εξαιρετικά σημαντική επίδραση του προβλήματος αυτού στις επιδόσεις του συνθέτη θα φανεί καθαρά στο κεφάλαιο 7 όπου παρουσιάζονται οι μετρήσεις και τα αποτελέσματα της λειτουργίας της κάρτας. 16
83 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Το φίλτρο Η αναλογική έξοδος του DAC πρέπει να οδηγηθεί στην είσοδο κάποιου φίλτρου. Έχει ήδη αναλυθεί το γιατί χρειάζεται το φίλτρο και το πόσο σημαντική είναι η σωστή επιλογή και ρύθμισή του για την ταχύτητα του βρόχου και την ποιότητα της συχνότητας εξόδου. Επιλέγουμε το ενεργό φίλτρο 3 ης τάξης που φαίνεται στο σχήμα 4.16 και παρουσιάστηκε στο κεφάλαιο 2. Κάνουμε αυτή την επιλογή θέλοντας να εκμεταλλευτούμε τα σημαντικά πλεονεκτήματα του ολοκληρωτή που περιέχει το φίλτρο, και τα οποία αναφέρθηκαν προηγουμένως. Επιλέγουμε το συγκεκριμένο φίλτρο (και όχι τον απλό ολοκληρωτή) λόγω του επιπλέον πόλου που αυτό διαθέτει, και που έχει ως αποτέλεσμα σημαντική μείωση του πλάτους της κυμάτωσης της εξόδου του, ώστε να επιτυγχάνει καλύτερη οδήγηση του VCO. Σχ Το ενεργό φίλτρο 3 ης τάξης Είναι προφανές ότι το σημαντικότερο στοιχείο του φίλτρου είναι ο τελεστικός ενισχυτής που αυτό περιέχει. Επιλέξαμε τον τελεστικό ενισχυτή AD843 (pinout στο σχήμα 4.17) της Analog Devices σε συσκευασία DIP-8. Τροφοδοτείται και αυτός με ±12V και κάποια από τα χαρακτηριστικά του είναι το Gain Bandwidth product των 34 MHz, 250 V/μsec slew rate και 95 nsec settling time για ±0,1% της απαιτούμενης τάσης εξόδου. Σχ Pinout του τελεστικού ενισχυτή AD843 17
84 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Στο σχήμα 4.18 φαίνεται το σχηματικό διάγραμμα του φίλτρο όπως υλοποιήθηκε για τη διπλωματική. Παρατηρούμε την αναλογία των σχημάτων 4.16 και Σχ Κυκλωματική υλοποίηση του φίλτρου Η είσοδος του φίλτρου είναι το σήμα DAC_out., η έξοδος του το pin 6 που δημιουργεί το σήμα FilterOut που οδηγεί το VCO, και η ανάδραση δημιουργείται μέσω του κλάδου που περιέχει τα στοιχεία R2, C1 και C2. Η είσοδος στο pin 3 (που αντιστοιχεί στο Vref) γειώνεται συμμετρική ως προς το 0 έξοδο του φίλτρου, δηλαδή θέλουμε η σύγκριση που θα «ενεργοποιεί» τον ολοκληρωτή να γίνεται με το 0. Ο τελεστικός ενισχυτής έχει τάσεις τροφοδοσίας VEE (-12V, pin 4) και VDD (+12V, pin 7)Οι πυκνωτές C17, C18 είναι ηλεκτρολυτικοί και όπως και στον DAC και στα regulators χρησιμοποιούνται για decoupling των τάσεων τροφοδοσίας. Επιλέγονται να είναι περίπου 2 μf. Τα στοιχεία R6, C14 δημιουργούν ένα απλό κατωδιαβατό φίλτρο και παρεμβάλλονται ανάμεσα στην έξοδο του τελεστικού ενισχυτή και στην έξοδο του φίλτρου. Το VCO Η συχνότητα εξόδου του συνθέτη που μέσω ανάδρασης οδηγείται πίσω στον DIPA, δημιουργείται ως γνωστόν από ένα VCO (voltage controlled oscillator), δηλαδή από ένα κύκλωμα που έχει ως έξοδο ένα ημιτονοειδές σήμα ή μια παλμοσειρά, των οποίων η συχνότητα εξαρτάται από την τάση της εισόδου του. 18
85 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Για την υλοποίηση της διπλωματικής σχεδιάστηκε το VCO που παρουσιάζεται στο σχήμα Σχ Το VCO που χρησιμοποιήθηκε Χρησιμοποιείται η τεχνική του ring oscillation, έχουμε δηλαδή 3 αντιστροφείς στη σειρά, και η έξοδος του τελευταίου οδηγεί την είσοδο του πρώτου μέσω ανάδρασης. Αναλυτικότερη περιγραφή της μεθόδου θα παρουσιαστεί στο επόμενο κεφάλαιο και συγκεκριμένα στην παράγραφο 5.5, που αναφέρεται στο tuning του VCO. Ο ένας αντιστροφέας βρίσκεται εντός του FPGA ενώ δύο ακόμα βρίσκονται πάνω στην κάρτα σε ένα ολοκληρωμένο 74HC04. Ο έλεγχος της συχνότητας γίνεται μεταβάλλοντας την τάση τροφοδοσίας των δύο αντιστροφέων που βρίσκονται πάνω στην κάρτα με την βοήθεια του κυκλώματος που φαίνεται στο σχήμα Δηλαδή η τάση VCC με την οποία τροφοδοτείται το ολοκληρωμένο 74HC04 που περιέχει τους αντιστροφείς εξαρτάται από την τιμή του σήματος filter_out που είναι και η τάση εξόδου του φίλτρου. Σχ Έλεγχος της συχνότητας εξόδου του VCO 19
86 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Υλοποίηση της κάρτας (PCB) Με το πρόγραμμα Protel (έκδοση 99SE, service pack 6) σχεδιάστηκε και το PCB της κάρτας που κατασκευάστηκε. Χρησιμοποιήθηκαν 2 ground planes ανά πλευρά της κάρτας με σκοπό την καλύτερη απομόνωση αναλογικού με ψηφιακού θορύβου. Συγκεκριμένα το ένα plane περιείχε όλο το frontend της κάρτας, το FPGA, την ψηφιακή πλευρά του DAC και το regulator των +5V, ενώ το άλλο περιείχε την αναλογική πλευρά του DAC, το φίλτρο, το κύκλωμα tuning του VCO και τα regulator των ±12V. Επίσης με σκοπό την ελαχιστοποίηση των αποστάσεων των γραμμών αλλά και τον καλύτερο έλεγχο της σχεδίασης, το placement αλλά και το routing έγιναν με το χέρι και όχι με κάποιο αυτοματοποιημένο τρόπο. Μια γενική άποψη του τελικού PCB της κάρτας φαίνεται στα σχήματα 4.21 και Σχ Το PCB της κάρτας (top view) 20
87 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Σχ Το PCB της κάρτας (bottom view) Σχ D αναπαράσταση της κάρτας από το Protel 21
88 ΚΕΦΑΛΑΙΟ 4 ΣΧΕΔΙΑΣΗ ΚΑΙ ΥΛΟΠΟΙΗΣΗ ΤΗΣ ΚΑΡΤΑΣ Σχ Λεπτομέρεια του DAC με το FPGA σε 3D 22
89 Κεφάλαιο 5 Δομή και Περιεχόμενο του FPGA Περιεχόμενα: 5.1 Εισαγωγή στη λογική σχεδιασμού ψηφιακών κυκλωμάτων Ο προγραμματισμός του FPGA Μονάδα ελέγχου Το ρολόι Βασικά κυκλώματα στο frontend του FPGA Το frontend του DIPA Ο DIPA Το κύκλωμα tuning του VCO Κύκλωμα υπολογισμού του Κv - κύκλωμα μέτρησης συχνοτήτων... 21
90 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Σε αυτό το κεφάλαιο παρουσιάζεται η πορεία ανάπτυξης των ψηφιακών κυκλωμάτων που περιέχονται στο FPGA και αναλύονται τα διάφορα στάδια σχεδιασμού του. Εισαγωγή στη λογική σχεδιασμού ψηφιακών κυκλωμάτων Όπως έχει αναφερθεί και στα προηγούμενα κεφάλαια, το FPGA αποτελεί τη βασική μονάδα του συνθέτη συχνοτήτων που κατασκευάσαμε. Όπως όλες οι συσκευές που ανήκουν στη οικογένεια των FPGAs, μας δίνει τη δυνατότητα να υλοποιήσουμε Boolean συναρτήσεις και να σχεδιάσουμε ψηφιακά κυκλώματα. Η ευελιξία των FPGAs σε αλλαγές και μετατροπές των ψηφιακών κυκλωμάτων που υλοποιούμε, μας βοηθάει ώστε να κάνουμε εύκολα και γρήγορα δοκιμές στο υπάρχον hardware. Κάτι τέτοιο αποτελεί προφανώς πολύ σημαντικό βοήθημα για εμάς. Η κατασκευάστρια εταιρία του συγκεκριμένου ολοκληρωμένου, η Altera, παρέχει ένα πολύ εύχρηστο σχεδιαστικό πακέτο το οποίο μας βοήθησε τόσο στη δημιουργία όσο και στη δοκιμή των ψηφιακών κυκλωμάτων επάνω στο board του συστήματος. Το Max+Plus II είναι το περιβάλλον το οποίο χρησιμοποιήθηκε αποκλειστικά για το σχεδιασμό του περιεχομένου του FPGA, μιας και προσφέρει ένα μεγάλο φάσμα δυνατοτήτων στο χρήστη. Το μεγαλύτερο μέρος των κυκλωμάτων έχουν δημιουργηθεί κυρίως με σχηματικά διαγράμματα αλλά και κάποια με τη χρήση Γλώσσας Περιγραφής Υλικού, κυρίως της VHDL. Η δυνατότητα λογικής εξομοίωσης που παρέχει το περιβάλλον αυτό μας βοήθησε σημαντικά ώστε να γλιτώσουμε πολύτιμο χρόνο και κόπο καθώς επίσης και να εντοπίσουμε λάθη σε επίμαχα σημεία του σχεδιασμού. Το σχεδιαστικό πακέτο της Altera μας παρέχει επιπλέον και τη δυνατότητα χρονικής εξομοίωσης των κυκλωμάτων. Το τελευταίο στάδιο πριν τον προγραμματισμό της συσκευής είναι η ανάθεση των εισόδωνεξόδων του σχεδίου μας στα pins του ολοκληρωμένου (pin assignment). Η διαδικασία αυτή έγινε πολύ εύκολα μέσα από το γραφικό περιβάλλον του Max+Plus II και μας βοήθησε σημαντικά στον έλεγχο του hardware. Συνοψίζοντας τα παραπάνω, μπορούμε να αναφέρουμε με τη σειρά τα βήματα που ακολουθήθηκαν, από το σχεδιασμό των κυκλωμάτων μέχρι τον προγραμματισμό του FPGA. 1. Σχεδιασμός των ψηφιακών κυκλωμάτων 2. Compiling του τελικού σχεδίου. 3. Λογική εξομοίωση στον Waveform Simulator. 4. Χρονική Εξομοίωση στον Timing Analyzer. 5. Ανάθεση των εισόδων-εξόδων, στα Ι/Ο pins του συγκεκριμένου FPGA (Assignment). 6. Re-compiling του σχεδίου 7. Download του σχεδίου στο FPGA (σειριακή μετάδοση του αρχείου <*.ttf> προς το FPGA) Επειδή το αρχικό σχέδιο τροποποιήθηκε πάρα πολλές φορές μέχρι να έχουμε την επιθυμητή λειτουργία της γεννήτριας, μερικές από τις εξομοιώσεις παραλείπονταν όπου κρινόταν μη αναγκαίες. Ωστόσο όμως η σειρά των παραπάνω βημάτων παρέμεινε πάντα η ίδια. Στις 2
91 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA παρακάτω παραγράφους του κεφαλαίου περιγράφεται η λειτουργία των ψηφιακών κυκλωμάτων που αποτελούν το τελικό σχέδιο του συστήματός. Ο προγραμματισμός του FPGA Το ολοκληρωμένο που χρησιμοποιούμε είναι το EPF8636ALC84-4 και ανήκει στην οικογένεια Flex8000 της ALTERA. Το ολοκληρωμένο αυτό αποτελεί μια πολύ οικονομική λύση ενώ ταυτόχρονα έχει πολύ ικανοποιητικές δυνατότητες ολοκλήρωσης, για τις απαιτήσεις της εφαρμογής μας. Το Max+Plus II, με την εφαρμογή του compiler, δημιουργεί το κατάλληλο αρχείο που χρησιμοποιείται για τη διαμόρφωση (configuration) του ολοκληρωμένου. Η διαδικασία της διαμόρφωσης του FPGA είναι ένα θέμα που μας απασχόλησε αρκετά κατά τη διάρκεια του σχεδιασμού και της υλοποίησης της κάρτας και είναι το θέμα που θα μας αναλυθεί στην παράγραφο αυτή. Η αρχιτεκτονική όλων των συσκευών της οικογένειας Flex8000 χρησιμοποιεί SRAM cells για να αποθηκεύει τα δεδομένα κατά τη διάρκεια του configuration. Κατά συνέπεια κάθε φορά που το FPGA σταματάει να τροφοδοτείται, χάνει τα δεδομένα αυτά και χρειάζεται να επαναληφθεί η διαδικασία της διαμόρφωσης. Επομένως δεν είναι δυνατό να προγραμματίσουμε το ολοκληρωμένο με κάποιον Programmer, μιας και τα δεδομένα θα σβηστούν από τη μνήμη του κατά την τοποθέτησή του στην πλακέτα. Γι αυτό το λόγο ο προγραμματισμός του FPGA γίνεται επάνω στην κάρτα του συστήματός μας. Ας δούμε όμως ποιοι είναι οι δυνατοί τρόποι με τους οποίους γίνεται η διαμόρφωση των συσκευών Flex8000. Αυτοί χωρίζονται σε δυο κατηγορίες, τους Active και τους Passive Configuration Modes. Σε έναν Active Configuration Mode όλα τα σήματα που χρειάζονται για τον προγραμματισμό του FPGA δημιουργούνται από την ίδια τη συσκευή κάθε φορά που γίνεται power up το σύστημά μας. Τα δεδομένα που χρειάζονται βρίσκονται σε μια εξωτερική EPROM με τις κατάλληλες προδιαγραφές, και διαβάζονται από το ολοκληρωμένο με τη βοήθεια των σημάτων που είναι αφιερωμένα γι αυτό το σκοπό. Στους Passive Configuration Modes ο προγραμματισμός του FPGA γίνεται από εξωτερικές συσκευές οι οποίες είναι υπεύθυνες για τη δημιουργία των κατάλληλων σημάτων. Τα δεδομένα σε αυτή την περίπτωση μπορούν να βρίσκονται αποθηκευμένα σε κάποιο σκληρό δίσκο ενώ ο χρήστης έχει επιπλέον τη δυνατότητα να επιλέξει ανάμεσα σε σειριακή ή παράλληλη προσπέλαση των δεδομένων. Στην περίπτωσή μας οι απαιτήσεις μας επιβάλλουν ένα τρόπο με τον οποίο θα μπορούμε συνεχώς να διαμορφώνουμε τη συσκευή διαβάζοντας το κατάλληλο αρχείο που προκύπτει από τη διαδικασία του compiling. Επομένως για το configuration επιλέγουμε κάποιον από τους Passive Configuration Modes ώστε η διαμόρφωση του FPGA να γίνεται ενώ αυτό είναι τοποθετημένο στην κάρτα, οποιαδήποτε στιγμή θέλουμε. Με βάση αυτή τη λογική σχεδιάστηκε και το Interface Unit που αναλύσαμε και σε προηγούμενο κεφάλαιο, για να μπορούμε να ελέγχουμε εμείς τα σήματα που προγραμματίζουν το FPGA. Οι έξι συνολικά δυνατοί τρόποι διαμόρφωσης των συσκευών Flex8000 είναι οι: 1. Active Serial (AS) 3
92 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA 2. Active Parallel up (APU) 3. Active Parallel down (APD) 4. Passive Serial (PS) 5. Passive Parallel Synchronous (PPS) 6. Passive Parallel Asynchronous (PPA) Από αυτούς εμείς επιλέγουμε τον Passive Serial, με τον οποίο τα δεδομένα μεταφέρονται με σειριακό τρόπο μέσα από την παράλληλη του PC. Στην PS διαμόρφωση η ALTERA παρέχει τη δυνατότητα configuration των συσκευών Flex8000 με τη χρήση εναλλακτικών τρόπων. Τέτοιοι είναι η χρήση του MAX+PLUS II Programmer και του PL-MPU Master Programming Unit μαζί με το FLEX Download Cable ή ακόμα και ενός RS-242 καλωδίου, του ALTERA BitBlaster Serial Cable. Οι τρόποι αυτοί όμως είναι περιοριστικοί στο θέμα του hardware που απαιτούν για την υλοποίησή τους. Έτσι η διαμόρφωση γίνεται με το Bit-Wide Interface που προβλέπεται στον PS, με μόνο περιορισμό, η συχνότητα προγραμματισμού να είναι μικρότερη από 6 MHz. Σχήμα Σχηματικό διάγραμμα του Bit-Wide Passive Serial Configuration Mode Στο σχήμα 5.1 φαίνεται ένα σχηματικό διάγραμμα της υλοποίησης μιας τέτοιας Bit-Wide PS διαμόρφωσης, με τα σήματα του FPGA που χρησιμοποιούνται αποκλειστικά και μόνο γι αυτό το σκοπό (dedicated pins). Όπως παρατηρούμε τα σήματα ns/p, MSEL1, MSEL0 έχουν σταθερές τιμές 0, 1 και 0 αντίστοιχα, οι οποίες αντιστοιχούν στο συνδυασμό που δηλώνει τον PS Configuration Mode. Αν κοιτάξουμε και στο σχηματικό διάγραμμα του FPGA στο σχήμα 4.7, θα δούμε πράγματι ότι τα σήματα ns/p και MSEL0 είναι συνδεδεμένα στο GND ενώ το MSEL1 στο VCC. Πρέπει να 4
93 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA σημειώσουμε στο σημείο αυτό ότι οι high και low στάθμες που χρησιμοποιούμε στο συγκεκριμένο FPGA αντιστοιχούν σε +5 V και 0 V, όπως προβλέπεται από τις προδιαγραφές του. Τα υπόλοιπα σήματα DCLK, DATA0, nconfig, CONF_DONE και nstatus είναι αυτά που χρησιμοποιούνται κατά τη διάρκεια του configuration της συσκευής. Από αυτά τα CONF_DONE και nstatus, όπως είδαμε και στην παράγραφο 4.2.2, είναι σήματα open drain και για ο λόγο αυτό είναι απαραίτητη η χρήση δυο pull up αντιστάσεων 1 KΩ η κάθε μία. Τα CONF_DONE και nstatus είναι σήματα διπλής κατεύθυνσης τα οποία είναι δεσμευμένα από το FPGA για τη διαδικασία του προγραμματισμού του. Εμείς όμως τα χρησιμοποιούμε εδώ σαν εξόδους για να επιβεβαιώσουμε το σωστό προγραμματισμό της συσκευής. Όταν η συσκευή αρχίσει να τροφοδοτείται, τότε το σήμα nstatus πηγαίνει στο 0 και παραμένει εκεί για περίπου 100 msec, επανερχόμενο μετά στο 1. Κατά τη διάρκεια της διαμόρφωσης του FPGA το nstatus βρίσκεται σε high στάθμη και σε περίπτωση που συμβεί κάποιο λάθος τότε το FPGA το κατεβάζει πάλι σε 0. Αυτό μπορεί να συμβαίνει και όταν η τάση τροφοδοσίας πέσει κάτω από την επιτρεπτή τιμή της. Το σήμα «ελευθερώνεται» μόλις δοθεί ένας παλμός (high, low, high) στο nconfig και τότε ξαναρχίσει ένας καινούργιος κύκλος διαμόρφωσης. Επειδή το nstatus είναι σήμα διπλής κατεύθυνσης μπορεί να κατέβει στο 0 και από κάποιο εξωτερικό κύκλωμα. Τότε η συσκευή καταλαβαίνει ότι έχει συμβεί κάποιο λάθος και σταματάει τον προγραμματισμό του. Το σήμα CONF_DONE είναι ένα σήμα που χρησιμοποιείται από το FPGA για να δηλώσει ότι βρίσκεται σε κατάσταση προγραμματισμού. Κατά τη διάρκεια μετάδοσης των δεδομένων το σήμα αυτό πηγαίνει στο 0 και παραμένει εκεί μέχρι και 10 παλμούς του DCLK μετά το τελευταίο bit. Τότε το FPGA «ελευθερώνει» το CONF_DONE το οποίο πηγαίνει σε 1, δηλώνοντας ότι τελείωσε η φάση της διαμόρφωσης. Αν κάτι τέτοιο δεν συμβεί μέσα σε αυτό το χρονικό διάστημα, τότε η συσκευή διαπιστώνει πρόβλημα και διακόπτει τη διαδικασία κατεβάζοντας το nstatus σε 0. Οι γραμμές DCLK, DATA0 και nconfig είναι «αποκλειστικές είσοδοι» (dedicated inputs) στο ολοκληρωμένο και καθορίζονται από εμάς κατά τη διάρκεια του configuration. Ο τρόπος καθορισμού των σημάτων αυτών είναι συγκεκριμένος και φαίνεται στο σχήμα 5.2. Σχήμα Διάγραμμα χρονισμού του Passive Serial Configuration Mode. 5
94 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Η διαδικασία της διαμόρφωσης έχει ως εξής. Αρχικά στέλνουμε έναν παλμό στο nconfig με τον οποίο γίνεται το reset της συσκευής ώστε να ξεκινήσει ο κύκλος διαμόρφωσης. Για όσο διάστημα κρατάμε το nconfig στο 0 ο κύκλος διαμόρφωσης καθυστερείται, ενώ με τη μετάβασή του σε 1 σηματοδοτείται η έναρξή της. Αφού περάσει το πολύ 1 μsec από την κατερχόμενη παρυφή του nconfig, το CONF_DONE πηγαίνει σε low και παραμένει εκεί μέχρι να τελειώσει το configuration. Την ίδια στιγμή στο nstatus δημιουργείται ένας παλμός στο 0 με διάρκεια 2,5 μsec περίπου και στη συνέχεια πηγαίνει σε high. Αν κατά τη διάρκεια του configuration συμβεί κάποιο λάθος, τότε το nstatus πηγαίνει σε low και παραμένει εκεί μέχρι να αρχίσει καινούργιος κύκλος διαμόρφωσης. Τα δυο αυτά σήματα CONF_DONE και nstatus διαβάζονται από την παράλληλη του PC, κάθε φορά που τελειώνει ο προγραμματισμός του FPGA. Αυτό γίνεται, όπως έχουμε δει στο κεφάλαιο 3, στέλνοντας την command D7D6 = 01 (STATUS) και στη συνέχεια εκτελώντας έναν EPP Data Read cycle. Αν τα CONF_DONE και nstatus είναι 1 τότε κάτι τέτοιο σημαίνει ότι ο προγραμματισμός έχει γίνει σωστά και η συσκευή είναι έτοιμη για περαιτέρω χρήση. Σε διαφορετική περίπτωση κάποιο λάθος έχει συμβεί κατά τη διάρκεια του προγραμματισμού και θα πρέπει να επαναληφθεί η ίδια διαδικασία. Η μετάδοση των δεδομένων από τον υπολογιστή στο FPGA γίνεται σειριακά μέσα από το σήμα DATA0 με πρώτο το λιγότερο σημαντικό bit του κάθε byte. Όπως φαίνεται και στο σχήμα 5.2, τα δεδομένα βγαίνουν στη γραμμή DATA0 στην πίπτουσα παρυφή του DCLK και μανδαλώνονται από το ολοκληρωμένο στην ανερχόμενη παρυφή του DCLK. Μόλις τελειώσει η μετάδοση ολόκληρου του αρχείου τότε θα πρέπει να ακολουθήσουν 10 παλμοί στο DCLK (χωρίς παλμούς DATA0), έτσι ώστε το FPGA να ελευθερώσει το CONF_DONE και να γίνει high. Η μετάβαση αυτή του CONF_DONE από 0 σε 1 μεταφράζεται από τις συσκευές της Flex800 σα μια εντολή initialization, για να μπει η συσκευή σε κανονική λειτουργία. Παρακάτω στον πίνακα φαίνονται οι χρονισμοί στον Passive Serial Configuration Mode. Πίνακας Χρονισμοί στον Passive Serial Configuration Mode. 6
95 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Τα δεδομένα που χρησιμοποιούμε για να προγραμματίσουμε το ολοκληρωμένο βρίσκονται αποθηκευμένα σε ένα αρχείο το οποίο δημιουργείται μέσα από τη διαδικασία του compilation του σχεδίου που έχουμε φτιάξει στο περιβάλλον του MAX+PLUS II. Αυτό είναι ένα αρχείο της μορφής <filename>.ttf στο οποίο υπάρχουν τα δεδομένα που χρειάζονται για τη διαμόρφωση της συσκευής σε ASCII χαρακτήρες. Το συγκεκριμένο format μάλιστα αποτελείται από τριάδες ASCII χαρακτήρων οι οποίοι χωρίζονται μεταξύ τους με κόμμα. Το μέγεθος των αρχείων αυτών είναι πάντα σταθερό και είναι 31,2 Kbytes για το EPF8636 ενώ ο συνολικός χρόνος που απαιτείται για την ολοκλήρωση του configuration είναι περίπου 100 msec. Μονάδα ελέγχου Το ρολόι Το FPGA όπως κάθε τέτοιου είδους ολοκληρωμένο κύκλωμα αποτελείται από logic cells (LCs). Σε κάθε τέτοιο κελί μπορεί να υλοποιηθεί περιορισμένη ψηφιακή λογική. Κάθε LC περιέχει και ένα flip-flop. Συνεπώς μπορούμε να σχεδιάσουμε όλα τα κυκλώματα του FPGA πλήρως σύγχρονα με κάποιο ρολόι. Είδαμε στο προηγούμενο κεφάλαιο ότι η δημιουργία του ρολογιού επιτυγχανόταν με το κύκλωμα ταλαντωτή Pierce (βλ. σχ. 4.8) το οποίο προϋπέθετε την ύπαρξη δύο αντιστροφέων εντός του FPGA. Αυτοί οι αντιστροφείς φαίνονται στο παρακάτω σχήμα. Σχ Δημιουργία ρολογιού εντός του FPGA Το σήμα XTAL1 συνδέεται στο pin 12 που αντιστοιχεί στο σήμα XT1 του board, ενώ το XTAL2 συνδέεται στο pin 13 που αντιστοιχεί στο σήμα XT2. Η έξοδος FREF αποτελεί το ρολόι για τα περισσότερα κυκλώματα του FPGA, είτε αυτούσιο, είτε διαιρεμένο κατά κάποιο αριθμό. Υπενθυμίζουμε ότι το FREF είναι ένας τετραγωνικός παλμός συχνότητας 18,432 MHz, όση δηλαδή και του κρυσταλλικού ταλαντωτή που έχει τοποθετηθεί στο board. Βασικά κυκλώματα στο frontend του FPGA 7
96 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Χειρισμός βασικών σημάτων Αφού η μονάδα ελέγχου είναι αυτή που είναι υπεύθυνη για την επικοινωνία με την μονάδα διεπαφής και άρα με την παράλληλη θύρα, πρέπει να χειρίζεται, εκτός των άλλων, τα σήματα WR, AS και DS που δηλώνουν ότι ο χρήστης επικοινωνεί με την κάρτα. Επίσης πρέπει το FPGA να επεξεργάζεται αυτά τα σήματα μόνο όταν η κάρτα μας είναι επιλεγμένη, δηλαδή όταν το σήμα CSL είναι σε υψηλή στάθμη. Ως εκ τούτου, πριν απ όλα σχεδιάζουμε το παρακάτω κύκλωμα. Σχ Χειρισμός των σημάτων WR, AS και DS Τα σήματα xwr, xas και xds είναι απευθείας συνδεδεμένα στους αντίστοιχους ακροδέκτες του FPGA, όπως και το σήμα CSL. Έτσι στο σήμα WR, ας πούμε, μπορεί να περάσει ένας παλμός (high $ low $ high) μόνο αν το σήμα CSL είναι σε υψηλή στάθμη. Σε αντίθετη περίπτωση το WR θα είναι μονίμως σε υψηλή στάθμη, όποια και αν είναι η συμπεριφορά του xwr. Το ίδιο φυσικά ισχύει και για τα σήματα AS και DS. Το FPGA ανταλλάσσει δεδομένα με την παράλληλη θύρα, δηλαδή λαμβάνει αλλά και στέλνει δεδομένα. Συνεπώς ο χειρισμός του data bus από το FPGA πρέπει να γίνει όπως φαίνεται στο σχήμα 5.5. Σχ Εισαγωγή του data bus στο FPGA Το δικατευθυντήριο data bus ονομάζεται DB[7..0] και δηλώνεται με το κατάλληλο σύμβολο στο σχεδιαστικό περιβάλλον του Max+Plus II. Αυτό το bus οδηγεί -μέσω των Logic Cells- το bus εισόδου D[7..0]. 8
97 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Αργότερα θα δούμε ότι ο δίαυλος DB οδηγείται από δεδομένα τα οποία θέλουμε να στείλουμε πίσω στο λογισμικό του χρήστη. Πρέπει εδώ να σημειωθεί ότι σύμφωνα με τη σημειολογία του σχεδιαστικού Max+Plus II θα δημιουργηθούν αυτόματα τόσα στοιχεία BIDIR και LCELL όσα και το μήκος του bus. Δηλαδή γενικά όταν στην είσοδο ενός στοιχείου εφαρμόσουμε ένα bus, τότε το Max+Plus II αυτόματα θα δημιουργήσει τόσα στοιχεία όσα το μήκος του bus. Αυτό φαίνεται καλύτερα στο σχήμα 5.6. Σχ Το κύκλωμα αριστερά είναι ισοδύναμο με το δεξιά, κατά το Max+Plus II Επίσης σύμφωνα με το πρόγραμμα η έκφραση SIG[x] ισοδυναμεί με την έκφραση SIGx, αν -και μόνο αν- το σήμα SIG έχει δηλωθεί σαν bus. Αποκωδικοποίηση εντολών Ο χρήστης ελέγχει την κάρτα στέλνοντας εντολές και επιλέγοντας καταχωρητές. Η μορφή των εντολών παρουσιάζεται στο επόμενο κεφάλαιο (κεφ.6), εξαρτάται όμως άμεσα από την υλοποίηση του πρωτοκόλλου εντός του FPGA. Ο τρόπος που υλοποιήθηκαν τα κυκλώματα του FPGA μας δίνει τη δυνατότητα για απλούστατες εντολές. Αντιστοιχίζεται ένας αριθμός σε κάθε καταχωρητή ή εντολή και ο προγραμματιστής του λογισμικού ελέγχου της κάρτας απλά «αναφέρει» τον αριθμό αυτό στον κώδικα. Φυσικά ο τελικός χρήστης δεν κάνει τίποτα από όλα αυτά αφού το τελικό πρόγραμμα είναι πλήρως παραθυρικό. Η μονάδα αποκωδικοποίησης εντολών φαίνεται στο παρακάτω σχήμα. 9
98 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Σχ Αποκωδικοποίηση εντολών To component epp_cmd αναγνωρίζει το πότε ο χρήστης στέλνει εντολή προς το FPGA, απομονώνει τα κατάλληλα bits από το data bus και τα τροφοδοτεί στο component demux38 που όπως λέει και το όνομα του ενεργοποιεί μία από τις 8 εξόδους του, επιλέγοντας έτσι το κατάλληλο κύκλωμα. Όπως φαίνεται στο σχήμα, υπάρχει μια παράμετρος, η CMD. Οι παράμετροι ορίζονται πριν το compiling του σχεδίου με τρόπο που παρουσιάζεται στο σχήμα 5.8. Σχ Ορισμός παραμέτρων στο σχέδιο των ψηφ. Κυκλωμάτων Η παράμετρος BITS αναφέρεται στο ψηφιακό κύκλωμα του DIPA, και συγκεκριμένα στον αριθμό των bits του, που είναι και χαρακτηριστικό μέγεθός του (βλέπε παράγραφο 5.4). Η παράμετρος CMD αναφέρεται στο μήκος των εντολών σε bits. Δηλαδή αν θέλαμε να έχουμε 10 εντολές / καταχωρητές στο FPGA, θα χρειαζόμασταν log 2 (10) = 3,3 bits. Άρα το CMD θα έπαιρνε φυσικά την τιμή 4. Συνεπώς θα χρειαζόταν να απομονώσουμε τα 4 λιγότερο σημαντικά bits του data bus για να αποκωδικοποιήσουμε την εντολή. Στο σχήμα 5.7 το CMD θα είναι προφανώς ίσο με 3, αφού ο decoder είναι 3 σε 8. Το περιεχόμενο του στοιχείου epp_cmd φαίνεται στο εξής σχήμα: Σχ Εντός του epp_cmd component 10
99 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Στο κεφάλαιο 3 είδαμε πως εγγραφή εντολής προς το FPGA έχουμε όταν τα D7D6 είναι 00, και όταν έχουμε παλμό στο AS με το WR σε χαμηλή στάθμη. Όταν πληρούνται οι παραπάνω προϋποθέσεις τότε στο data bus έχουμε τον κωδικό μιας εντολής, και άρα πρέπει να το απομονώσουμε. Αυτό ακριβώς επιτυγχάνουμε με το κύκλωμα του σχήματος 5.6. Το flip-flop είναι enabled όταν πληρούνται οι παραπάνω προϋποθέσεις (WR, D7, D6 όλα ίσα με 0 ) και περνάει τα δεδομένα στην έξοδο του όταν έρθει ανερχόμενη παρυφή στο AS (συγκεκριμένα στο AS θα έρθει ο παλμός high $ low $ high). Έτσι μετά από την ανερχόμενη παρυφή του AS ο κωδικός της εντολής είναι «αποθηκευμένος» στο bus WC[x..0], το οποίο και οδηγεί κατευθείαν το κύκλωμα αποπολύπλεξης. Αυτό είναι υλοποιημένο όπως φαίνεται στο σχήμα Σχ σε 8 demultiplexer Έτσι ελάχιστα nanoseconds μετά από την ανερχόμενη παρυφή του AS όλα τα σήματα στο bus select[7..0] θα είναι 0 εκτός από κάποιο που θα είναι 1. Έτσι χρησιμοποιώντας αυτά τα σήματα επιλέγουμε καταχωρητές ή ενεργοποιούμε κυκλώματα. 11
100 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Στον παρακάτω πίνακα παρουσιάζεται η χρήση όλων των σημάτων select. Αναλυτικότερη εξήγηση θα δίνεται στην κατάλληλη παράγραφο. Α/Α σήματος select Εξήγηση της χρήσης του sel0 Απαγορεύεται η χρήση του sel1 με WR= 0 Επιλογή καταχωρητή γενικών σημάτων ελέγχου sel2 με WR= 0 Επιλογή 8-bit καταχωρητή προσωρινής αποθήκευσης sel1 με WR= 1 Αποστολή low-byte μετρηθείσας συχνότητας sel2 με WR= 1 Αποστολή high-byte μετρηθείσας συχνότητας sel3 Αποθήκευση του 16-bit αριθμού NOUT sel4 Αποθήκευση του 16-bit αριθμού NREF sel5 Επιλογή κυκλώματος μέτρησης συχνότητας sel6 Ελεύθερο για χρήση sel7 Ελεύθερο για χρήση Πίνακας Τα σήματα select και η χρήση τους Σήματα ελέγχου στο FPGA Στο σχήμα 5.11 φαίνεται η δημιουργία των σημάτων S[4..0]. Τα σήματα αυτά είναι γενικά σήματα ελέγχου για κάποια κυκλώματα στο FPGA. Το S[0] χρησιμοποιείται σαν σήμα reset στον DIPA, τα σήματα S[3..1] ελέγχουν το κύκλωμα tuning του VCO, και το σήμα S[4] επιλέγει το από ποιο κύκλωμα θα δέχεται ψηφιακά δεδομένα ο DAC. Όλα αυτά θα συζητηθούν αναλυτικότερα στην κατάλληλη παράγραφο, στο συγκεκριμένο σημείο μας ενδιαφέρει περισσότερο ο τρόπος «απόκτησης» αυτών των σημάτων. Σχ Αποθήκευση γενικών σημάτων ελέγχου Όπως εύκολα μπορούμε να υποθέσουμε από το σχήμα, το κύκλωμα επιλέγεται με το σήμα sel1. Ο καταχωρητής wdata είναι γενικής χρήσεως 8-bit καταχωρητής δεδομένων (δηλαδή ελέγχει ανερχόμενη παρυφή στο σήμα DS). Η υλοποίηση του παρουσιάζεται στο παρακάτω σχήμα. 12
101 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Σχ Υλοποίηση του καταχωρητή WDATA Τα flip-flop είναι enabled όταν το σήμα select είναι 1 και το WR είναι 0, και ενεργοποιείται στην ανερχόμενη παρυφή του DS. Τότε μανδαλώνει τα δεδομένα εισόδου στην έξοδο. Η έξοδος select_strobe χρησιμοποιείται για debug, δηλαδή για να βλέπουμε αν ενεργοποιούνται τα flip-flop και πότε συμβαίνει αυτό σε σχέση με άλλα σήματα. Καταλαβαίνουμε λοιπόν ότι το λογισμικό για να τροποποιήσει τα σήματα του bus S[4..0], πρέπει να στείλει πρώτα μια εντολή επιλογής του σήματος sel1 (με epp address write), και μετά να στείλει τα κατάλληλα δεδομένα (με epp data write). Η ίδια ακριβώς λογική ισχύει για το μεγαλύτερο μέρος της επικοινωνίας με το FPGA. Η οδήγηση του DAC Με το παρακάτω κύκλωμα ελέγχουμε από ποιο bus θα οδηγείται o DAC που βρίσκεται πάνω στην κάρτα και πλησίον του FPGA. Αν και ακόμα δεν έχουμε μιλήσει για τα δύο buses που οδηγούν τον DAC, η επιλογή ενός από αυτά αποτελεί αρμοδιότητα της μονάδας ελέγχου, και γι αυτό παρουσιάζεται εδώ. Σχ Επιλογή των σημάτων οδήγησης του DAC Επιλέγουμε μεταξύ της εξόδου του DIPA και του bus του αριθμού NOUT για το ποιος θα τροφοδοτεί τον DAC. Στην κανονική λειτουργία του κυκλώματος σαν συνθέτης συχνοτήτων θέλουμε ο DAC να τροφοδοτείται από τον DIPA, γι αυτό και η προεπιλογή είναι το σήμα S[4] να είναι 0. 13
102 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Αν το λογισμικό θέσει το σήμα S[4] τότε ο DAC οδηγείται από το bus που αντιστοιχεί στον αριθμό NOUT. Η δυνατότητα αυτή χρησιμοποιείται από το κύκλωμα υπολογισμού του Kv του VCO, όπως θα φανεί αργότερα. Επίσης επειδή στο λογισμικό η επιλογή του NOUT γίνεται πολύ εύκολα με ένα scrollbar έπεται ότι μπορούμε με αυτό τον τρόπο να δίνουμε ότι τιμή θέλουμε εμείς στον DAC. Συνεπώς η δυνατότητα αυτή είναι πολύ χρήσιμη για τον έλεγχο της συμπεριφοράς του DAC (γραμμική περιοχή, κωδικοποίηση εισόδου, κ.α.), ενώ μπορεί να χρησιμοποιηθεί και για την παραγωγή οποιασδήποτε test τάσης μεταξύ -10 και +10V. Λέμε test τάση γιατί προφανώς ο DAC έχει πολύ μικρές δυνατότητες οδήγησης (drive) κυκλωμάτων (συγκεκριμένα παρέχει μέχρι 5 ma ρεύμα). Είναι σημαντικό ο DAC να «βλέπει» μεγάλη αντίσταση εισόδου στην επόμενη βαθμίδα (ο τελεστικός ενισχυτής του φίλτρου τα καταφέρνει καλά σε αυτό τον τομέα) Debug pins Τελειώνοντας την υλοποίηση της μονάδας ελέγχου, παρουσιάζουμε το σχήμα 5.14, όπου αντιστοιχίζουμε διάφορα σήματα στα pins του FPGA που οδηγούν τον debug header που παρουσιάστηκε στο κεφάλαιο 4. Σχ Ανάθεση των debug pins (οδηγούν τον debug header) 14
103 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Το frontend του DIPA Το frontend του DIPA είναι αρκετά απλό, όπως άλλωστε και μεγάλο μέρος των κυκλωμάτων εντός του FPGA. Ξέρουμε ήδη ότι ο DIPA λειτουργεί κάνοντας κάποιες πράξεις μεταξύ δύο αριθμών, των NREF και NOUT. Οι αριθμοί αυτοί ορίζονται από το χρήστη (ή καλύτερα από το λογισμικό του χρήστη) και από αυτούς εξαρτάται άμεσα η επιθυμητή συχνότητα εξόδου του PLL. Άρα πρώτα απ όλα πρέπει να σχεδιάσουμε τον τρόπο με τον οποίο οι αριθμοί αυτοί θα μεταφέρονται στο FPGA. Ήδη φανταζόμαστε ότι αυτό θα συμβαίνει επιλέγοντας πρώτα το κατάλληλο σήμα select (address write) και στέλνοντας μετά τα κατάλληλα δεδομένα (data write). Και είναι αλήθεια, μόνο που υπάρχει μια μικρή τροποποίηση. Οι αριθμοί NOUT και NREF είναι σίγουρα μεγαλύτεροι των 8 bits (δεν είναι υποχρεωτικό, αλλά αντικατοπτρίζει την συντριπτική πλειοψηφία των περιπτώσεων), οπότε χρειαζόμαστε 16- bit καταχωρητές. Η παράλληλη θύρα όμως είναι 8-bits wide. Συνεπώς πρέπει να στείλουμε τα δεδομένα σε 2 κύκλους. Παρόλα αυτά θέλουμε κάθε αριθμός να περάσει στον DIPA σαν ένας 16-bit (ή λιγότερο) αριθμός και όχι σαν δύο 8-bit με χρονική διαφορά μεταξύ τους. Το τελευταίο θα συνέβαινε επειδή οι έξοδοι των καταχωρητών NOUT και NREF οδηγούν κατευθείαν τον DIPA, δεν είναι συγχρονισμένες δηλαδή με κάποιο clock πέραν των παλμών DS. Άρα γράφοντας ένα low-orderbyte αυτό θα πέρναγε στον DIPA μαζί με το προηγουμένως αποθηκευμένο high-order-byte του αριθμού. Το κανονικό high-order-byte θα αποθηκευόταν μετά από κάποια μsec (ή και παραπάνω ανάλογα με το λογισμικό). Το FPGA όμως λειτουργεί με ταχύτητες της τάξης των nsec. Είναι προφανές ότι κάτι τέτοιο θα ήταν επικίνδυνο και θα μπορούσε να δημιουργήσει λάθη στη λειτουργία του PLL, ή απλά άσκοπη χρήση του DIPA. Γι αυτό χρησιμοποιούμε το εξής τέχνασμα. Αποθηκεύουμε πρώτα το low-order-byte σε ένα καταχωρητή προσωρινής αποθήκευσης. Αυτό φαίνεται στο σχήμα 5.15 και δεν διαφέρει σε τίποτα από τον καταχωρητή δεδομένων που παρουσιάστηκε στο σχήμα 5.12 (απλά επιλέγεται με το σήμα sel2). Σχ Καταχωρητής προσωρινής αποθήκευσης δεδομένων Μετά στέλνουμε και το high-order-byte σε ένα καινούριο 16-bit καταχωρητή που έχει σαν εισόδους τα 8 bits του temp καταχωρητή και τα καινούρια 8-bits, όπως φαίνεται στο σχήμα
104 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Σχ Υλοποίηση του 16-bit Καταχωρητή δεδομένων Όπως βλέπουμε τα τελικά δεδομένα τώρα μανδαλώνονται με την ίδια παρυφή του DS, και άρα οδηγούνται ταυτόχρονα στον DIPA. Για τον αριθμό NOUT το κύκλωμα είναι αυτό του σχήματος 5.17 και επιλέγεται με το σήμα ελέγχου sel3, ενώ για τον NREF αυτό του σχ (επιλέγεται με το sel4). Σχ Αποθήκευση του αριθμού NOUT Σχ Αποθήκευση του αριθμού NREF Στο επόμενο κεφάλαιο που περιγράφεται η υλοποίηση του λογισμικού, θα φανεί και πώς επηρεάζεται η διαδικασία αποστολής των αριθμών αυτών προς το FPGA. 16
105 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Ο DIPA Ο DIPA καταλαμβάνει το μεγαλύτερο μέρος του FPGA. Αντιμετωπίζεται παρόλα αυτά σχεδόν σαν ένα «μαύρο κουτί», αφού η υλοποίηση του είναι ιδιαίτερα πολύπλοκη και δεν μας απασχολεί εδώ. Οι μοναδικές αλλαγές που έγιναν στην σχεδίαση του ήταν η μετατροπή της λειτουργίας όλων των adders σε signed addition, για να εναρμονιστούν με την σχεδίαση του DAC που δέχεται δεδομένα σε συμπλήρωμα του 2, καθώς και η βελτίωση του control unit του ώστε να ανταποκρίνεται καλύτερα και γρηγορότερα σε απότομες αλλαγές της συχνότητας εξόδου. Αναφέρεται λοιπόν ενδεικτικά ότι χρησιμοποιήθηκε η πρώτη έκδοση του DIPA, με βελτιωμένη όπως είπαμε selection unit. Για περισσότερες πληροφορίες σχετικά με την υλοποίηση του DIPA ο αναγνώστης μπορεί να ανατρέξει στο κεφ. 6 του διδακτορικού του κ. Ευσταθίου. Το μοντέλο του DIPA που χρησιμοποιήθηκε φαίνεται στο παρακάτω σχήμα. Σχ Το σύμβολο του DIPA Η είσοδος RST (reset) τροφοδοτείται από το σήμα S[0], όπως είπαμε και προηγουμένως. Είναι active low, δηλαδή όταν είναι S[0] = 0 ο DIPA «παγώνει», όλα τα flip-flops του μηδενίζονται, το ίδιο και η έξοδος του. Το VCO συνεπώς δέχεται μηδενική τάση, και ταλαντώνει στη free-run συχνότητα του. Για τις εισόδους NR και NO μιλήσαμε ήδη αναλυτικά στην προηγούμενη παράγραφο. Μέσω αυτών εισάγονται οι αριθμοί NOUT και NREF στο κύκλωμα του DIPA. Οι δύο επόμενοι είσοδοι είναι οι συχνότητες FREF και FOUT, και αξίζει να σημειωθούν κάποια πράγματα γι αυτές. Στην είσοδο της συχνότητας FREF θα μπορούσαμε να εφαρμόσουμε τα 18 MHz του κρυστάλλου που είναι τοποθετημένος στην κάρτα. Κάτι τέτοιο συνέβη όντως κατά τις δοκιμές της κάρτας, με ενθαρρυντικά αποτελέσματα. Αποφασίσαμε όμως να διαιρέσουμε την συχνότητα αυτή με ένα prescaler για λόγους αξιοπιστίας του συστήματος. [Είναι ίσως εξεζητημένο να βάλουμε το ψηφιακό κύκλωμα του DIPA με αρκετούς 16-bit adders να δουλεύει συνεχώς στα 18 MHz σε ένα φτηνό FPGA. Παρόλα αυτά, ανάλογα με την 17
106 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA επιλογή του υλικού υλοποίησης (καλύτερο FPGA, ASIC) μπορούμε να λειτουργήσουμε το κύκλωμα σε πολύ υψηλές συχνότητες απολαμβάνοντας τα πλεονεκτήματα της ιδιαίτερα γρήγορης δειγματοληψίας της διαφοράς φάσης των δύο συχνοτήτων αναφοράς] Για την επιλογή της συχνότητας Fref σκεφτόμαστε ως εξής. Η τιμή των 18,432 MHz αναλύεται σε Hz. Ο αριθμός Hz είναι πολύ βολικός καθώς διαιρούμενος με κάποια δύναμη του 2, μας δίνει ακέραιο αριθμό. Αν θυμηθούμε ότι ισχύει Fstep = (Fref / NREF). Npr και θέσουμε NREF = 2 BITS καταλαβαίνουμε ότι αν χρησιμοποιηθεί η συχνότητα των Hz ως FREF θα έχουμε ακέραιο βήμα αλλαγής συχνότητας (, 50, 100, 200, Hz). Πράγματι αν ας πούμε έχουμε 14 bits DIPA, θα είναι Nref = 2 14 = και άρα θα έχουμε βήμα Fstep = / = 25. Npr Hz. Δηλαδή ένα πάρα πολύ μικρό βήμα αλλαγής συχνότητας, με μεγάλη παρόλα αυτά συχνότητα δειγματοληψίας της διαφοράς φάσης. Συνεπώς θέλουμε ένα prescaler που να διαιρεί με τον αριθμό 45. Ο αριθμός αυτός δεν είναι κάποια δύναμη του δύο και άρα ο διαιρέτης δεν υλοποιείται απλά με κάποια σχεδίαση σύγχρονου απαριθμητή. Ο διαιρέτης σχεδιάστηκε τελικώς σε structural VHDL, μετρώντας 22 παλμούς με την έξοδο σε low και 23 παλμούς με την έξοδο σε high. Στο σχήμα 5.20 φαίνεται το σύμβολο της μετατροπής, ενώ ο κώδικας της οντότητας DIV45 παρουσιάζεται στο τέλος του κεφαλαίου. Σχ Ο prescaler για την συχνότητα FREF Όπως έχει ξαναειπωθεί η υλοποίηση του DIPA είναι τέτοια που απαιτείται η συχνότητα εξόδου FOUT να είναι πάντα μικρότερη από την συχνότητα αναφορά FREF. Γι αυτό και η συχνότητα from_vco του σχήματος 5.19 δημιουργείται διαιρώντας δια 2. 45, όπως φαίνεται και στο σχήμα Αυτή είναι και η τιμή Npr του prescaler. Σχ Prescaler για την συχνότητα FOUT Το σήμα Β είναι η συχνότητα που δέχεται το FPGA κατευθείαν από την έξοδο του VCO. 18
107 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Όπως βλέπουμε η συχνότητα αυτή διαιρείται πρώτα δια 45 (όπως και η FREF) και μετά δια 2 με χρήση ενός T-flip-flop. [Σημ.: Κατά την τελική φάση της διπλωματικής δεν χρησιμοποιήσαμε ως Fref την συχνότητα των Hz αλλά μια πολύ μεγαλύτερη συχνότητα. Παρόλα αυτά το παραπάνω κείμενο παραμένει ως έχει, καθώς είναι ενδεικτικό της λογικής της ψηφιακής σχεδίασης και των οφελών της] Ως έξοδο ο DIPA δίνει μόνο το bus dipa_out. Αυτό οδηγεί τον DAC (ανάλογα με τη στάθμη του bit S[4] όπως είδαμε προηγουμένως) σε μια αναλογική τάση εξόδου που τροφοδοτεί το φίλτρο πάνω στην κάρτα. Οι έξοδοι sca, scb, scc είναι σήματα της selection unit του DIPA που ελέγχονταν συνεχώς στον λογικό αναλυτή για επιβεβαίωση της σωστής λειτουργίας του κυκλώματος. Το κύκλωμα tuning του VCO Κάθε ταλαντωτής ελεγχόμενος από τάση (είτε είναι VCO είτε VCM) έχει ένα συγκεκριμένο εύρος συχνοτήτων που μπορεί να παράγει, ανάλογα με τη σχεδίαση του. Δηλαδή η ελάχιστη με τη μέγιστη συχνότητα που μπορεί να παραχθεί έχουν μια αναλογία 1:1,5 με 1:2, ενώ η περιοχή για την οποία η μεταβολή της συχνότητας είναι αρκούντως γραμμική είναι ακόμα μικρότερη (άρα οι παραπάνω αριθμοί μειώνονται στο 1:1,2 έως 1:1,5). Άρα για να κατασκευάσουμε ένα συνθέτη με πολύ μεγάλο εύρος συχνοτήτων χρειάζεται να τροποποιούμε κάποια παράμετρο της σχεδίασης κάθε φορά που θέλουμε να αλλάξουμε πεδίο συχνοτήτων. Όπως είδαμε στο κεφ. 4, χρησιμοποιούμε ένα VCO που βασίζεται στην τεχνολογία ring oscillation και αποτελείται από περιττό αριθμό αντιστροφέων συνδεδεμένων σε σειρά. Χωρίς την ανάδραση, το σύστημα των 3 αντιστροφέων έχει μοναδιαίο DC κέρδος και η διαφορά φάσης μεταξύ εισόδου και εξόδου είναι φυσικά 180 ο αφού έχουμε περιττό αριθμό αντιστροφών, και το σήμα στην έξοδο είναι αντίθετο του σήματος εισόδου. Χρησιμοποιώντας την ανάδραση του σχήματος, ο κάθε αντιστροφέας πολώνεται στην περιοχή που στρέφει την φάση κατά 60 ο ώστε η συνολική στροφή φάσης να είναι πάλι 180 ο. Το κύκλωμα ταλαντώνει λόγω της στροφής φάσης μεταξύ της εισόδου του πρώτου αντιστροφέα και της εξόδου του τελευταίου. Τα δύο αυτά σημεία είναι βέβαια συνδεδεμένα μέσω ενός κυκλώματος που εισάγει μια ελεγχόμενη καθυστέρηση. Αυτή η καθυστέρηση είναι που καθορίζει την συχνότητα που ταλαντώνει το VCO. Ελαχιστοποίηση της καθυστέρησης αυτής 19
108 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA δίνει τη μέγιστη δυνατή συχνότητα εξόδου. Η έξοδος του φίλτρου συνδέεται σε κατάλληλο σημείο του ταλαντωτή ώστε αλλαγή της τάσης εξόδου του (του φίλτρου) να προκαλεί αλλαγή στην καθυστέρηση του βρόχου των αντιστροφέων και άρα αλλαγή στην παραγόμενη συχνότητα. Συνεπώς για να αλλάζουμε πεδίο συχνοτήτων, χρειάζεται να σχεδιαστεί ένα κύκλωμα που να εισάγει επιπλέον καθυστερήσεις στο βρόχο, ενώ εμείς θα συνεχίζουμε να τον ελέγχουμε μέσω της εξόδου του φίλτρου. Έτσι θα έχουμε παραδείγματος χάριν το πρώτο πεδίο συχνοτήτων MHz για την ελάχιστη δυνατή καθυστέρηση, μετά ένα πεδίο MHz εισάγοντας κατάλληλη επιπλέον σταθερή καθυστέρηση στο βρόχο και ούτω καθεξής. Η αλλαγή αυτή των πεδίων είναι προφανώς αόρατη στον τελικό χρήστη, καθώς το λογισμικό ελέγχει την ζητούμενη συχνότητα εξόδου και στέλνει αυτόματα τις κατάλληλες εντολές προς το FPGA. Το κύκλωμα που αναλαμβάνει το tuning αυτό του VCO φαίνεται στο παρακάτω σχήμα. Σχ Κύκλωμα tuning του VCO Πρώτα απ όλα παρατηρούμε τα σήματα S1, S2, S3 που αποτελούν φυσικά μέρος του bus S[4..0] που παρουσιάστηκε σε προηγούμενη παράγραφο. Τα σήματα αυτά λοιπόν ενεργοποιούν και απενεργοποιούν καθυστερήσεις στο βρόχο και άρα με αυτά μπορούμε να αλλάζουμε πεδία 20
109 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA συχνοτήτων εξόδου. Όταν όλα τα Sx είναι 0 έχουμε το μεγαλύτερο πεδίο συχνοτήτων. Όταν το λογισμικό διαπιστώσει ότι ο χρήστης ζητά μικρότερη συχνότητα από το εύρος του τρέχοντος πεδίου, αυτόματα στέλνει πρώτα μια εντολή που τροποποιεί αυτά τα σήματα (π.χ. δίνει 1 στο S2, 0 στα υπόλοιπα) επιλέγοντας το κατάλληλο πεδίο, και μετά κάνοντας κάποιους υπολογισμούς στέλνει τους κατάλληλους αριθμούς NOUT και NREF. Όταν μόνο ένα από τα S1, S2, S3 είναι 1, τότε μόνο ένα από τα Χ1, Χ2, Χ3 εκφράζει κάποια συχνότητα η οποία και οδηγείται στην έξοδο μέσω μιας πύλης OR. Σχ Συχνότητα εξόδου Μπορούμε φυσικά να δώσουμε τιμή 1 σε δύο ή και τρία από τα S1, S2, S3 οπότε η συχνότητα εξόδου θα είναι η συμβολή δύο ή τριών ημιτονοειδών κυματομορφών διαφορετικής συχνότητας. Κύκλωμα υπολογισμού του Κv - κύκλωμα μέτρησης συχνοτήτων Στο σύστημα έχει υλοποιηθεί η δυνατότητα μέτρησης συχνοτήτων με πολύ μεγάλη ακρίβεια (1 / 2 16 ). Το κύκλωμα αυτό χρησιμοποιείται κυρίως για τον αυτόματο υπολογισμό του Κv του χρησιμοποιηθέντος VCO (η κάρτα όπως ειπώθηκε στην αρχή της διπλωματικής μπορεί πολύ εύκολα να συνεργαστεί με εξωτερικές γεννήτριες ή VCO), αλλά μπορεί να χρησιμεύσει και ως γενικής χρήσεως μετρητής συχνοτήτων. Για να υπολογιστεί το Κv ενός VCO το FPGA συνεργάζεται με το λογισμικό. Η διαδικασία έχει ως εξής. Επιλέγουμε ως πηγή οδήγησης του DAC τον αριθμό NOUT (σήμα S[4] = 1 ) ο οποίος ελέγχεται πολύ εύκολα μέσω του λογισμικού. Απενεργοποιούμε το φίλτρο, μετατρέποντας το σε buffer 1:1 (με χρήση δύο αντιστάσεων της ίδιας τιμής). Έτσι το VCO οδηγείται απευθείας με την έξοδο του DAC, και άρα το ελέγχουμε άμεσα. Μέσω λογισμικού (δηλαδή του αριθμού NOUT) οδηγούμε τον DAC με όλο το εύρος τιμών του (από μέχρι ) με μικρά βήματα (ανάλογα με την ακρίβεια στην γραφική παράσταση του Κv που επιθυμούμε). Για κάθε τιμή του DAC το VCO οδηγείται με μια τάση και παράγει μια συχνότητα. Η συχνότητα αυτή εισάγεται στο FPGA, αυτό υπολογίζει την τιμή της με το κύκλωμα μέτρησης συχνοτήτων, στέλνει πίσω το αποτέλεσμα στο λογισμικό το οποίο και καταγράφει την τιμή αυτή. Η διαδικασία επαναλαμβάνεται 5 φορές για κάθε είσοδο στο VCO και επιλέγεται από το λογισμικό ο μέσος όρος των συχνοτήτων που μετρήθηκαν. 21
110 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Μετά από το τέλος των μετρήσεων έχει δημιουργηθεί αυτόματα ένα φύλλο Excel το οποίο περιέχει τις αντίστοιχες συχνότητες εξόδου του VCO για κάθε τάση εισόδου σε αυτό. Είναι προφανές ότι η εξαγωγή του γραφήματος του Fout = f(v) είναι ζήτημα δευτερολέπτων. Η αριθμητική τιμή του Κv ισούται φυσικά με dfout/dv, δηλαδή με την κλίση της ευθείας στο γράφημα. Το Excel υπολογίζει αυτόματα την κλίση αυτή (και άρα το Kv) αλλά και την διασπορά της ευθείας, δηλαδή το πόσο απέχει αυτή από την «τέλεια» ευθεία. Φυσικά ο χρήστης δεν χρειάζεται να ανατρέξει στο αρχείο του Excel για να δει το Kv που υπολογίστηκε, καθώς αυτό υπολογίζεται και από το λογισμικό (μ.ο. των Κv=(F n -F n-1 )/(V n -V n-1 )) και παρουσιάζεται στο κατάλληλο πεδίο του προγράμματος. Τα παραπάνω μπορεί να ακούγονται πολύπλοκα, αλλά για τον τελικό χρήστη η όλη διαδικασία ολοκληρώνεται σε λίγα λεπτά (ανάλογα με την επιθυμητή ακρίβεια, και όχι με την ταχύτητα του υπολογιστή) με το πάτημα ενός κουμπιού στο interface του λογισμικού. Στα επόμενο κεφάλαιο (κεφ. 6, λογισμικό) θα εξηγηθεί αναλυτικότερα η συμβολή του προγράμματος στον υπολογισμό, ενώ στο κεφάλαιο των μετρήσεων (κεφ. 7) θα δοθούν και παραδείγματα υπολογισμών. Για την ώρα θα αναλύσουμε το ρόλο του FPGA στον υπολογισμό αυτό, δηλαδή το κύκλωμα μέτρησης συχνοτήτων και το κύκλωμα αποστολής των αποτελεσμάτων στον υπολογιστή. Το σύμβολο του κυκλώματος υπολογισμού συχνοτήτων φαίνεται στο σχήμα Έχει γραφεί και αυτό σε structural VHDL (και αυτός ο κώδικας παρουσιάζεται στο τέλος του κεφαλαίου) και η λειτουργία του είναι πολύ απλή. Σχ Σύμβολο του κυκλώματος υπολογισμού συχνοτήτων Το κύκλωμα ουσιαστικά συγκρίνει την διαφορά δύο συχνοτήτων, αυτήν της αναφοράς (Fref) σε σχέση με της ζητούμενης (fgen). Λειτουργεί όσο η είσοδος rst είναι σε υψηλή στάθμη (ελέγχεται από το λογισμικό) και όταν η μέτρηση τελειώσει η έξοδος last_ff γίνεται 1. Η χρονική διάρκεια της μέτρησης εξαρτάται μόνο από την συχνότητα Fref και μόνη απαίτηση του κυκλώματος για ορθή λειτουργία είναι η συχνότητα Fref να είναι μεγαλύτερη από την fgen. Όταν η μέτρηση τελειώσει στην έξοδο counter[15..0] έχει «παγώσει» ένας 16-bit αριθμός που χρησιμοποιείται για τον υπολογισμό της fgen. Ο αριθμός αυτός παραμένει εκεί μέχρι την επόμενη μέτρηση. Αναλυτικότερα η υλοποίηση βασίζεται σε δύο διαφορετικούς 16-bit σύγχρονους απαριθμητές. Ο πρώτος μετρά παλμούς της συχνότητας Fref, ενώ ο δεύτερος παλμούς της συχνότητας fgen. 22
111 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Όταν η είσοδος rst γίνει 1 τότε όλα τα flip-flop είναι έτοιμα να δεχτούν παλμούς. Μετά από συγκεκριμένο και σταθερό χρονικό διάστημα (που εξαρτάται από τη συχνότητα Fref) ο πρώτος απαριθμητής θα έχει κάνει overflow, θα έχει δηλαδή ξεπεράσει την τιμή Άρα θα τεθεί η έξοδος του 17 ου flip-flop του πρώτου απαριθμητή και έτσι θα ξέρουμε ότι η μέτρηση έχει τελειώσει (είναι η πιο αξιόπιστη μέθοδος για να πληροφορηθούμε το τέλος της μέτρησης). Το 17 ο flip-flop εκτός από το να ενημερώνει για το τέλος της μέτρησης, παγώνει και την κατάσταση εξόδου όλων των flip-flop (οπότε για νέα μέτρηση χρειάζεται πρώτα reset, δηλαδή παλμός high $ low $ high στο σήμα sel5), αφού συνδέεται στην είσοδο enable όλων των ffs. Τελικώς στην έξοδο count_out θα έχουμε τον αριθμό που μέτρησε ο δεύτερος απαριθμητής, το οποίο ονομάζουμε έστω NGEN. Στον χρόνο που ο πρώτος απαριθμητής μέτρησε 2 16 παλμούς (που είναι t = (1/Fref) ), ο δεύτερος μέτρησε NGEN παλμούς. Συνεπώς πολύ εύκολα συμπεραίνουμε ότι ισχύει : 2 16 / Fref = NGEN / fgen % fgen = ( NGEN / 2 16 ). Fref και με βάση την παραπάνω σχέση το λογισμικό υπολογίζει κάθε φορά την συχνότητα fgen, και μάλιστα με ακρίβεια ±(1/2 16 ) Hz. Το FPGA πρέπει όπως είπαμε να στείλει τον 16-bit αριθμό NGEN στον υπολογιστή. Χρειάζονται προφανώς δύο κύκλοι ανάγνωσης δεδομένων. Το κύκλωμα που υλοποιεί αυτές τις αναγνώσεις φαίνεται στο σχήμα Σχ Αποστολή του αριθμού που μετρήθηκε προς τον υπολογιστή Δηλαδή όταν πληρούνται οι κατάλληλες προϋποθέσεις για τα σήματα ελέγχου το data bus οδηγείται από τα σήματα counter[15..0]. Πρέπει φυσικά να είμαστε σίγουροι ότι το data bus δεν οδηγείται από κανένα άλλο σήμα και εντός του FPGA αλλά και πάνω στην κάρτα. 23
112 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA Σύμφωνα με το παραπάνω σχήμα το data bus θα οδηγείται από τα σήματα counter για χρόνο ίσο με τη διάρκεια του παλμού DS, αφού μετά την άνοδο του DS η έξοδος της NOR πύλης γίνεται 1 και το data bus έρχεται σε κατάσταση υψηλής εμπέδησης (tri-state) επιτρέποντας σε άλλα σήματα να το οδηγήσουν. Παρατηρούμε επίσης ότι τα select σήματα που ελέγχουν την διαδικασία αυτή είναι τα σήματα sel1 και sel2 παρόλο που αυτά τα σήματα χρησιμοποιούνται ήδη από άλλα κυκλώματα. Πρέπει όμως να προσέξουμε ότι εδώ έχουμε να κάνουμε με κύκλο ανάγνωσης, οπότε το σήμα WR θα παραμείνει στην τιμή 1. Επομένως έχουμε ήδη φροντίσει για την σωστή επιλογή του κατάλληλου περιφερειακού, αφού όπως φαίνεται καθαρά στο σχήμα 5.12 τα αντίστοιχα περιφερειακά (που οδηγούνται επίσης από τα sel1 και sel2) θα επιλεγούν μόνο αν έχουμε κύκλο εγγραφής και άρα WR = 0. Η παραπάνω υλοποίηση του πρωτοκόλλου επικοινωνίας και επιλογής περιφερειακών, δοκιμάστηκε και πρακτικά κατά τις μετρήσεις χωρίς να παρουσιαστεί κανένα πρόβλημα. Στις δύο επόμενες σελίδες παρατίθεται ο κώδικας σε VHDL των οντοτήτων του prescaler και του κυκλώματος υπολογισμού συχνοτήτων. 24
113 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA -- divider by clocks q=low, 23 clocks q=high written in VHDL library altera; use altera.maxplus2.all; library ieee ; use ieee.std_logic_1164.all; entity div45 is port ( clk : in std_logic ; c_out : out std_logic ); end entity div45; architecture struct of div45 is signal q_out : std_logic_vector(5 downto 0) ; signal rst, vcc, c_int : std_logic ; begin vcc <= '1' ; c_out <= c_int ; tff0: tff port map(t=>vcc, q=>q_out(0), clk=>clk, clrn=>rst, prn=>vcc); gen_statement: for i in 1 to 5 generate tffi: tff port map(t=>vcc,q=>q_out(i),clk=>q_out(i-1),clrn=>rst,prn=>vcc); end generate gen_statement ; rst <= '0' when (c_int='1' and q_out = "101010") else '0' when (c_int='0' and q_out = "101001") else '1' ; tffout: tff port map(t=>vcc, q=>c_int, clk=> not rst, clrn=> vcc, prn=>vcc); end architecture struct ; 25
114 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA -- frequency counter, code in VHDL library altera; use altera.maxplus2.all; library ieee; use ieee.std_logic_1164.all; entity counter16 is generic(num : integer := 16); port( fref : in std_logic ; fgen : in std_logic ; rst : in std_logic ; last_ff : out std_logic ; count_out : out std_logic_vector(num-1 downto 0) ); end counter16; architecture struct of counter16 is signal q_ref, t_ref : std_logic_vector(num downto 0) ; signal q_gen, t_gen : std_logic_vector(num-1 downto 0) ; signal vcc, nrst, n_last_ff : std_logic ; begin vcc <= '1' ; t_ref(0) <= vcc ; t_gen(0) <= vcc ; last_ff <= q_ref(num); n_last_ff <= not q_ref(num); nrst <= not rst ; fref_inst_0: tffe port map(t=>t_ref(0),q=>q_ref(0),clk=>fref,clrn=>nrst, prn=>vcc, ena=>n_last_ff); fgen_inst_0: tffe port map(t=>t_gen(0), q=>q_gen(0), clk=>fgen, clrn=>nrst, prn=>vcc, ena=>n_last_ff); gen_statement: for i in 1 to num-1 generate t_ref(i) <= q_ref(i-1) and t_ref(i-1) ; t_gen(i) <= q_gen(i-1) and t_gen(i-1) ; fref_inst_i: tffe port map(t=>t_ref(i), q=>q_ref(i), clk=>fref, clrn=> nrst, prn=>vcc, ena=>n_last_ff); fgen_inst_i: 26
115 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA tffe port map(t=>t_gen(i), q=>q_gen(i), clk=>fgen, clrn=> nrst, prn=>vcc, ena=>n_last_ff); end generate gen_statement ; t_ref(num) <= q_ref(num-1) and t_ref(num-1) ; fref_inst_16: tffe port map(t=>t_ref(num), q=>q_ref(num), clk=>fref, clrn=> nrst, prn=>vcc, ena=>vcc); count_out <= q_gen; end architecture struct ; 27
116 ΚΕΦΑΛΑΙΟ 5 ΔΟΜΗ ΚΑΙ ΠΕΡΙΕΧΟΜΕΝΟ ΤΟΥ FPGA 2
117 ΚΕΦΑΛΑΙΟ 6 Επικοινωνία με το Χρήστη - Ανάπτυξη του Λογισμικού Περιεχόμενα: 6.1 Εισαγωγή στη γλώσσα προγραμματισμού - Γενική δομή του προγράμματος Λειτουργικότητα του λογισμικού Αρχικοποίηση της κάρτας Ορισμός χαρακτηριστικών μεγεθών του συνθέτη Έλεγχος του συνθέτη Ο υπολογισμός του Κv ενός VCO Αρχικοποίηση της κάρτας μέσω του προγράμματος Προσπέλαση της Παράλληλης Θύρας Προγραμματισμός του FPGA Αρχικοποίηση δεδομένων του προγράμματος Βασικές συναρτήσεις του κώδικα Συμπεράσματα σχετικά με το πρόγραμμα... 21
118 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή στη γλώσσα προγραμματισμού - Γενική δομή του προγράμματος Το τελικό στάδιο υλοποίησης του συνθέτη είναι η δημιουργία ενός προγράμματος το οποίο θα παρέχει στο χρήστη τη δυνατότητα ελέγχου της συσκευής. Το εργαλείο που επιλέξαμε για το συγκεκριμένο σκοπό είναι η γλώσσα προγραμματισμού Visual Basic (ver. 6.0). Οι βασικοί λόγοι που την προτιμήσαμε είναι οι πολλές δυνατότητες στο σχεδιασμό γραφικών (δημιουργώντας μικρού μήκους κώδικα), η σχετικά εύκολη χρήση της και η πολύ καλή συνεργασία της με το λειτουργικό σύστημα των Windows. Η επέκταση του προγράμματος και οι αναγκαίες μετατροπές σ αυτό μπορούν να γίνουν ιδιαίτερα εύκολα και γρήγορα, κάτι το οποίο μας βοήθησε σημαντικά κατά τη διάρκεια υλοποίησης του συστήματος. Εδώ αξίζει να σημειώσουμε ότι με την ίδια γλώσσα προγραμματισμού μπορεί να υλοποιηθεί και το software «διαχείρισης» των συσκευών του Desk Top Lab. Λόγω όμως του μικρού του μεγέθους, κάτι τέτοιο μπορεί να γίνει και με κάποια γλώσσα που δεν υποστηρίζει γραφικά, όπως η C ή η C++. Το θέμα αυτό όμως είναι εκτός του αντικείμενου της διπλωματικής και δε θα μας απασχολήσει περισσότερο. Στο κεφάλαιο αυτό παρουσιάζεται το User Interface που δημιουργήθηκε ώστε να έχουμε την επιθυμητή λειτουργία της συσκευής. Η λογική στην οποία βασίστηκε ο προγραμματισμός, ήταν να καθιερωθεί μια όσο το δυνατόν πιο modular δομή, έτσι ώστε να γίνεται πιο εύκολος ο έλεγχος και η επέκτασή του. Κάτι τέτοιο μας οδήγησε στη δημιουργία ρουτινών που εκτελούν βασικές ενέργειες και οι οποίες συναντώνται συχνά κατά τη διάρκεια του προγράμματος. Με τον τρόπο αυτό καταφέρνουμε να κάνουμε πιο συνεπτυγμένο τον κώδικα και να αποφύγουμε περιττές επαναλήψεις. Κάθε επέμβαση του χρήστη στο περιβάλλον του προγράμματος, προσπαθούμε να την υλοποιήσουμε με τις βασικές ρουτίνες. Το πρόγραμμα γενικής διαχείρισης όλων των καρτών δεν ήταν έτοιμο κατά τη διάρκεια της ανάπτυξης και ελέγχου της κάρτας. Γι αυτό το λογισμικό της κάρτας του συνθέτη συχνοτήτων σχεδιάστηκε ώστε να είναι αυτόνομο, να μπορεί δηλαδή να προγραμματίσει και να ελέγξει πλήρως την κάρτα, χωρίς την ανάγκη εξωτερικού λογισμικού. Φυσικά το υπάρχον λογισμικό μπορεί πολύ εύκολα να συνεργαστεί και να ενσωματωθεί αργότερα στο ευρύτερο project του Desk Top Lab. Στη συνέχεια του κεφαλαίου παρουσιάζεται το περιβάλλον λειτουργίας του συνθέτη και εξηγούνται οι δυνατότητες που έχουμε μέσα από αυτό. Πρέπει όμως να υπενθυμίσουμε ότι το τελικό περιβάλλον λειτουργίας της κάρτας θα διαφέρει σε σημεία από αυτό που παρουσιάζεται καθώς κάποιες λειτουργίες θα υλοποιούνται από το γενικότερο πρόγραμμα διαχείρισης. Επίσης όπως κάθε λογισμικό υπόκειται σε συνεχή βελτίωση. 2
119 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Λειτουργικότητα του λογισμικού Ξεκινώντας το πρόγραμμα ο χρήστης θα δει το παρακάτω λιτό παράθυρο (θεωρώντας ότι το FPGA δεν είναι ήδη προγραμματισμένο). Εικ Αρχική οθόνη του προγράμματος Όπως βλέπουμε το περιβάλλον εργασίας χωρίζεται σε 4 «φύλλα» (tabs), το καθένα από τα οποία εκτελεί διαφορετικές λειτουργίες που σχετίζονται με τον συνθέτη, όπως αρχικοποίηση και προγραμματισμός του, έλεγχος και παραγωγή συχνοτήτων κ.α. Οι λειτουργίες αυτές παρουσιάζονται αναλυτικά στις επόμενες παραγράφους. 3
120 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Αρχικοποίηση της κάρτας Το πρώτο tab τιτλοφορείται uploader και ευθύνεται για τον προγραμματισμό του FPGA με το κατάλληλο αρχείο. Όπως φαίνεται και στην εικόνα 6.1 ο χρήστης πατώντας το πλήκτρο browse έχει την δυνατότητα να επιλέξει το αρχείο που θα «ανεβάσει» στο FPGA, μέσω ενός κλασσικού open dialog (Εικ. 6.2). Εικ Επιλογή αρχείου για τον προγραμματισμό του FPGA Η δυνατότητα αυτή δόθηκε γιατί θεωρήσαμε ως καλύτερη επιλογή να μην ξεκινάμε το πρόγραμμα προγραμματίζοντας αυτόματα το FPGA, δίνοντας στο χρήστη τη δυνατότητα αυτή. Έτσι το πρόγραμμα ξεκινά δίνοντας στο χρήστη πληροφορίες για την τρέχουσα κατάσταση του FPGA (σαν να έχει πατήσει το πλήκτρο Read Status ). Ο χρήστης πατώντας το πλήκτρο Program FPGA θα δει την εξέλιξη του προγραμματισμού (που θα αναλυθεί σε επόμενη παράγραφο) μέσω του progress bar και στο τέλος της μπορεί να διαπιστώσει αν ο προγραμματισμός ήταν πετυχημένος διαβάζοντας το κατάλληλο μήνυμα του λογισμικού. 4
121 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Εικ Προγραμματισμός του FPGA εν εξελίξει Αν ο προγραμματισμός αποτύχει θα δούμε ένα μήνυμα ανάλογο της εικόνας 6.1, όπου το πρόγραμμα θα μας πληροφορεί ότι το FPGA παραμένει απρογραμμάτιστο και θα αναφέρει το Status της κάρτας. Όταν τελικά ο προγραμματισμός επιτευχθεί θα δούμε την επόμενη εικόνα. Εικ Επιτυχής προγραμματισμός του FPGA 5
122 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Ορισμός χαρακτηριστικών μεγεθών του συνθέτη Αναφερόμαστε στο τρίτο tab του προγράμματος που τιτλοφορείται Preferences και φαίνεται στην παρακάτω εικόνα. Εικ Βασικές επιλογές για το συνθέτη Τα στοιχεία που παρουσιάζονται στην αρχή του frame (συχνότητα κρυστάλλου, prescaler, Fref) είναι preset από το πρόγραμμα και ο χρήστης δεν μπορεί να τα αλλάξει, κάτι που είναι λογικό αφού είναι σημαντικές επιλογές που αφορούν ολόκληρη την κάρτα, και δεν γίνεται να αλλάξουν κατά τη διάρκεια εκτέλεσης του προγράμματος. Σε αυτό το tab επιλέγουμε μια σημαντικότατη παράμετρο που είναι ο αριθμός NREF που στέλνουμε στο FPGA. Η επιλογή αυτή καθορίζει πολύ σημαντικές παραμέτρους του συνθέτη, όπως το βήμα αλλαγής συχνότητας. Όπως έχουμε ξαναπεί το βήμα αυτό υπολογίζεται από τη σχέση Fstep = Fref / Nref επί την τιμή του prescaler αν αυτός υπάρχει. Τέλος στην ενότητα VCO range ορίζουμε εμμέσως το range του αριθμού Nout που θα στέλνεται στο FPGA. Είναι και αυτό ένα στοιχείο του προγράμματος που δεν χρειάζεται να υπάρχει στην τελική έκδοση του προγράμματος, αφού το εύρος συχνοτήτων του συνθέτη θα είναι προκαθορισμένο. Στην φάση της ανάπτυξης όμως χρησιμοποιήσαμε διάφορα VCO με διαφορετικά εύρη συχνοτήτων και έτσι έπρεπε να ορίσουμε τα άνω και κάτω όρια ώστε το PLL να μην ξεκλειδώνει χωρίς ουσιαστικό λόγο (δηλαδή θέλαμε να ξεκλειδώνει λόγω αδυναμιών του συγκριτή φάσης, και όχι λόγω εγγενούς αδυναμίας του συστήματος να παράγει την επιθυμητή συχνότητα). Ξέρουμε ότι η συχνότητα εξόδου του PLL καθορίζεται από τον κατάλληλο συνδυασμό των αριθμών Nout και Nref. Εφόσον ο τελευταίος είναι σταθερός κάθε φορά (αλλάζει όταν θέλουμε να αλλάξουμε τις παραμέτρους του PLL, π.χ. το βήμα συχνότητας), ελέγχουμε την συχνότητα εξόδου μέσω του αριθμού Nout. 6
123 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Η μετατροπή αυτή από συχνότητα σε αριθμό Nout είναι πολύ σημαντική και δίνεται από τις παρακάτω σχέσεις: Nout Fout = prescaler Fref = Nout Fstep prescaler (6.1) Nref Fout Nref Fout Nout = = (6.2) Fref prescaler Fstep prescaler Ο prescaler των παραπάνω σχέσεων αναφέρεται στον prescaler που είναι συνδεδεμένος (αν είναι) στην έξοδο του VCO. Περισσότερα θα αναφερθούν στην αμέσως επόμενη παράγραφο σχετικά με τον έλεγχο της λειτουργίας του συνθέτη. Το πλήκτρο preview προσφέρει προεπισκόπηση της αλλαγής στο βήμα συχνότητας, όταν αλλάζουμε τον αριθμό NREF. (πάτημα του enter στο πλαίσιο του NREF ισοδυναμεί με πάτημα του πλήκτρου preview) Οι νέες παράμετροι (Fstep, εύρος Nout) περνάνε πραγματικά στο FPGA με το πάτημα του πλήκτρου submit. Έλεγχος του συνθέτη Η κύρια λειτουργία του συνθέτη ελέγχεται από το tab Synthesizer. Εδώ ορίζουμε τη συχνότητα εξόδου καθώς και το αν το PLL θα είναι ενεργοποιημένο. Όταν το PLL δεν είναι ενεργοποιημένο το VCO θα λειτουργεί στη free-run συχνότητα του. Εικ Κύρια οθόνη ελέγχου του συνθέτη 7
124 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Στο πεδίο S[4..0] μπορούμε να επιλέξουμε ποια σήματα ελέγχου του FPGA θα ενεργοποιήσουμε. Φυσικά στην τελική έκδοση του λογισμικού, αυτό θα γίνεται αυτόματα. Μέσω του πλήκτρου dipa on/off μπορούμε να κάνουμε toggle την ενεργοποίηση ή όχι του PLL. Είναι μια χρήσιμη επιλογή για να διαπιστώνουμε αν το PLL μπορεί να κλειδώνει αμέσως από τη free-run συχνότητα του VCO. Στο μεσαίο μέρος του παραθύρου έχουμε το σημαντικότερο μέσο ελέγχου του PLL. Ο χρήστης μπορεί να επιλέξει άμεσα την επιθυμητή συχνότητα μετακινώντας με το ποντίκι τον slider. Η συχνότητα μεταβάλλεται συνεχώς χωρίς να χρειάζεται να αφήσουμε το ποντίκι (κάτι το οποίο μπορούμε να παρατηρήσουμε και στον παλμογράφο) ενώ το πλαίσιο που αναφέρει την αναμενόμενη συχνότητα εξόδου ενημερώνεται συνεχώς. Ο χρήστης μπορεί επίσης να επιλέξει την συχνότητα εξόδου απλά γράφοντάς τη στο πλαίσιο Fout με ακρίβεια Hz.. Το λογισμικό θα βρει αυτόματα τον κατάλληλο αριθμό Nout που πρέπει να σταλεί στο FPGA, θα ελέγξει αν είναι εντός των τρεχόντων ορίων, και θα τoν στείλει, ενημερώνοντας ταυτόχρονα το πλαίσιο Fout για την προσέγγιση που έγινε (που εξαρτάται φυσικά από το βήμα συχνότητας). Αν η επιλεχθείσα συχνότητα είναι εκτός ορίων θα εμφανίσει μήνυμα λάθους και η τρέχουσα συχνότητα δεν θα μεταβληθεί. Σε περίπτωση που ο χρήστης μεταβάλει μια παράμετρο του PLL, που αλλάζει το εύρος του αριθμού Nout, το λογισμικό θα υπολογίσει και θα στείλει αυτόματα τον νέο αριθμό Nout που χρειάζεται για να παραμείνει κλειδωμένο το PLL στην προηγούμενη συχνότητα. Το τελευταίο πεδίο υπάρχει για έλεγχο και καταγραφή αποτελεσμάτων της συμπεριφοράς του PLL. Συγκεκριμένα ο χρήστης εισάγει δύο διαφορετικούς αριθμούς Nout στα δύο πλαίσια και τους στέλνει πατώντας τα αντίστοιχα πλήκτρα, ή απλά enter. Χρησιμοποιείται για να διαπιστώσουμε την συμπεριφορά του PLL σε μεγάλα ή απλά δύσκολα (στο κεφάλαιο των μετρήσεων θα διαπιστώσουμε τι σημαίνει «δύσκολα») βήματα της συχνότητας εξόδου. Επίσης το πλήκτρο ανάμεσα στα δύο πλαίσια ενεργοποιεί ένα timer που επαναλαμβάνει αενάως το άλμα από τη μια συχνότητα στην άλλη, ώστε να παρατηρούμε με μεγαλύτερη ευκολία τα αποτελέσματα στον παλμογράφο. Είναι προφανές ότι από τα στοιχεία που περιγράψαμε παραπάνω, μόνο το πεδίο ελέγχου της συχνότητας εξόδου και το on/off του PLL χρειάζεται να υπάρχουν στην τελική εκδοχή του λογισμικού. Παρόλα αυτά παρουσιάζονται εδώ και τα υπόλοιπα μέρη του προγράμματος, τα οποία ήταν εξαιρετικά χρήσιμα κατά την διαδικασία ανάπτυξης και μετρήσεων της κάρτας. Ο υπολογισμός του Κv ενός VCO Όπως παρουσιάστηκε στο κεφάλαιο 5, η κάρτα έχει τη δυνατότητα υπολογισμού του Κv του χρησιμοποιηθέντος VCO. Σε αυτή την παράγραφο παρουσιάζεται ο έλεγχος της διαδικασίας αυτής. 8
125 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Εικ Οθόνη για τον υπολογισμό του Κv του VCO Ο χρήστης επιλέγει που θα αποθηκεύσει το αρχείο των μετρήσεων και ξεκινάει τον υπολογισμό πατώντας το πλήκτρο begin test. Κατά τη διάρκεια του υπολογισμού εμφανίζεται στο κατάλληλο πεδίο η στιγμιαία συχνότητα όπως υπολογίζεται από το κύκλωμα μέτρησης συχνοτήτων μετά από κατάλληλο μετασχηματισμό (σχέση 6.1) Εικ Υπολογισμός του Kv εν εξελίξει Μετά από κάποιο χρονικό διάστημα ο υπολογισμός έχει τελειώσει και εμφανίζονται τα υπολογισμένα Κv και Kτ (= Κv. Kd) όπως φαίνεται παρακάτω. Ο χρήστης μπορεί φυσικά να 9
126 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ ανατρέξει στο αρχείο <*.CSV> που δημιουργήθηκε και να δει τα αποτελέσματα με λεπτομέρεια. Στην εικόνα που φαίνεται το Kv υπολογίστηκε περίπου 654 KHz / V, ενώ το Κτ ισούται με Kτ = Κv. Kd = Kv. (Vfs / 2 bits ) όπου Vfs, η full scale έξοδος του DAC (20V), και bits τα bits του DIPA (16 bits). Εικ Εμφάνιση αποτελεσμάτων μετά από το τέλος του υπολογισμού Αρχικοποίηση της κάρτας μέσω του προγράμματος Πριν η κάρτα είναι έτοιμη για να χρησιμοποιηθεί από τον χρήστη, πρέπει φυσικά να εκτελεστούν κάποιες βασικές διαδικασίες. Πρέπει να ρυθμίσουμε την παράλληλη θύρα ώστε να είναι προσπελάσιμη από το λογισμικό, πρέπει έπειτα να προγραμματίσουμε το FPGA με τα κατάλληλα δεδομένα, και τέλος πρέπει να περάσουμε στο FPGA κάποιες βασικές παραμέτρους και επιλογές. Προσπέλαση της Παράλληλης Θύρας Μια από τις βασικές αδυναμίες της Visual Basic είναι ότι δεν υπάρχει δυνατότητα άμεσης προσπέλασης των διευθύνσεων του υπολογιστή, επομένως ούτε και της LPT. Έτσι το πρώτο, και πιο σημαντικό, βήμα στην υλοποίηση του προγράμματος ήταν να βρεθεί ο τρόπος με τον οποίο θα γινόταν η πρόσβαση στην παράλληλη θύρα του υπολογιστή. Η αδυναμία της γλώσσας αυτής αντιμετωπίζεται με μια άλλη δυνατότητα που διαθέτει, να χρησιμοποιεί δηλαδή ρουτίνες που είναι γραμμένες σε γλώσσες πιο χαμηλού επιπέδου. Οι γλώσσες αυτές καλύπτουν τις ανάγκες που δε μπορεί να ικανοποιήσει η Visual Basic. Έτσι η 10
127 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ πιο απλή λύση ήταν να χρησιμοποιήσουμε μια Dynamic Link Library (DLL) και συγκεκριμένα την inpout32.dll. Αυτή είναι ουσιαστικά μια βιβλιοθήκη με συναρτήσεις που έχουν γραφεί σε γλώσσες C++ και Assembly, με τις οποίες μπορούμε να έχουμε εύκολα πρόσβαση στην παράλληλη θύρα του υπολογιστή. Η inpout32.dll διαθέτει δυο βασικές εντολές, μια για εγγραφή και μια για ανάγνωση. Οι Out και In μπορούν να γράψουν και να διαβάσουν δεδομένα, από και προς τη θύρα του υπολογιστή που επιλέγουμε κάθε φορά. Η σύνταξή τους είναι: Out(x, y) και var = In( x ) Οι μεταβλητή x δηλώνει τη διεύθυνση στην οποία γίνεται η πρόσβαση, ενώ y είναι τα δεδομένα που θέλουμε να γράψουμε. Με τις δυο αυτές εντολές, είναι τώρα φανερό ότι μπορούμε να εκτελέσουμε οποιονδήποτε από τους τέσσερις κύκλους που συναντάμε στον EPP mode της LPT (EPP Address Write, EPP Address Read, EPP Data Write, EPP Data Read). Έτσι λοιπόν κάθε εντολή του χρήστη «μεταφράζεται», με τον τρόπο αυτό, σε κύκλους του EPP mode. Η παράλληλη θύρα χρειάζεται αρχικά να αρχικοποιηθεί καθώς και να δηλωθούν οι base και offset διευθύνσεις στις οποίες θα αναφέρονται οι ρουτίνες. epp_init() base_adr = &H378 Out base_adr + 2, 4 ctrl_adr = base_adr + 3 data_adr = base_adr + 4 stat_port = base_adr + 1 Ενδεικτικά παρουσιάζεται ο τρόπος με τον οποίο εκτελείται ένας EPP Address Write κύκλος και ένας EPP Data Read κύκλος με υπορουτίνες. Με τον ίδιο τρόπο υλοποιούνται και οι υπόλοιποι κύκλοι τους οποίους καλεί το πρόγραμμα οποιαδήποτε στιγμή χρειάζεται να γίνει προσπέλαση στην LPT. Sub epp_cw(x As Integer) Out ctrl_adr, x End Sub Function epp_dr() [ορίζουμε συνάρτηση επειδή επιστρέφεται τιμή] epp_dr = Inp(data_adr) End Function Έτσι για να επιλέξουμε ας πούμε ένα περιφερειακό που ενεργοποιείται με το σήμα sel3 (βλ. κεφ.5) γράφουμε απλά: epp_cw 3 [δηλ. D7D6 = 00 και επιλογή του 3 ου select σήματος] Ενώ για να διαβάσουμε το Status της κάρτας και να το αποθηκεύσουμε στην μεταβλητή τύπου string stat_var γράφουμε: 11
128 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ epp_cw 64 [ D7D6 = 01 ] stat_var = Hex(epp_dr) [αποθήκευση του αποτελέσματος σε δεκαεξαδική μορφή ] Προγραμματισμός του FPGA. Το Configuration του FPGA είναι η βασική ρουτίνα που καλείται από το πρόγραμμα, κάθε φορά που ο χρήστης πατά το πλήκτρο Program FPGA. Σκοπός της είναι να δημιουργήσει τα κατάλληλα σήματα που χρειάζεται η συσκευή για να φορτωθεί σ αυτή το κατάλληλο αρχείο της μορφής <file.ttf>. Τον τρόπο με τον οποίο γίνεται το Configuration των συσκευών της οικογένειας Flex 8000 τον είδαμε στην παράγραφο και σύμφωνα με αυτή τη λογική δημιουργήσαμε τη ρουτίνα: pgm_fpga(f As String, card As Integer, progbar As ProgressBar) Οι μεταβλητές που χρειάζεται είναι τρεις. Η f είναι τύπου String και δηλώνει το path στο οποίο βρίσκεται το αρχείο που πρέπει να διαβαστεί (<file.ttf>). Η card είναι τύπου Integer και δηλώνει το ID της κάρτας μας. Η μεταβλητή progbar1 χρησιμοποιείται για την ενημέρωση κάθε στιγμή του progress bar της εφαρμογής που ενημερώνει για την εξέλιξη του προγραμματισμού. Πριν αρχίσει η διαδικασία του Configuration η ρουτίνα επιλέγει την κάρτα ώστε το PLD να δημιουργήσει τα σήματα nconfig, DCLK και DATA0. Αφού γίνει το απαραίτητο reset με τον παλμό στο nconfig, διαβάζεται το αρχείο που δηλώνει η μεταβλητή f και τα δεδομένα περνάνε σειριακά μέσα από το DATA0. Ταυτόχρονα με τον καθορισμό του σήματος αυτού γίνεται και ο καθορισμός του DCLK ώστε τα σήματα να είναι συγχρονισμένα. Κατά την ανάγνωση του αρχείου μετατρέπουμε τους χαρακτήρες του σε Binary μορφή προκειμένου να τους στείλουμε στο FPGA. Η μορφή του αρχείου φαίνεται παρακάτω : 255,255,111,244,255,240,255,246,255,255,255,255,255,255,255,255,255,2 55,255,255,255,255,255,255,255,255,255,255,255,255,255,32, 32, Όπως βλέπουμε στο αρχείο υπάρχουν τριάδες αριθμών που χωρίζονται μεταξύ τους με κόμμα. Η ρουτίνα διαβάζει τους αριθμούς και ύστερα από την κατάλληλη μετατροπή, τους στέλνει στο DATA0. Αφού τελειώσει το Configuration, κάνουμε ανάγνωση των σημάτων του 74HC245 (STATUS) ώστε να επιβεβαιώσουμε τη σωστή τιμή των nstatus και CONF_DONE. Όπως έχουμε ξαναπεί πρέπει το high order nibble να ισούται με C για να έχει επιτευχθεί ο προγραμματισμός του FPGA. 12
129 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Αρχικοποίηση δεδομένων του προγράμματος Μια επιπλέον δυνατότητα που πρέπει να έχει το πρόγραμμα, είναι και αυτή του προσδιορισμού της αρχικής κατάστασης του συστήματος. Κάθε φορά που γίνεται η εκκίνηση του User Interface θέλουμε η κατάσταση του συνθέτη να είναι ίδια με αυτή που είχε πριν τον απενεργοποιήσουμε (π.χ. να ξανακλειδώσει στην συχνότητα που είχε όταν κλείσαμε το πρόγραμμα). Έτσι ο χρήστης δε θα χρειάζεται να ρυθμίζει πάλι τα χαρακτηριστικά μεγέθη του συνθέτη, προκειμένου να συνεχίσει την εφαρμογή του. Η λογική που χρησιμοποιήσαμε εδώ είναι ότι το πρόγραμμα πριν κλείσει, θα αποθηκεύει τις καταστάσεις και τις τιμές όλων των controls σε ένα αρχείο. Έτσι κάθε φορά που θα ξαναφορτώνεται θα διαβάζει το αρχείο και θα αρχικοποιεί πάλι τα controls με τις αντίστοιχες τιμές. Οι τιμές αποθηκεύονται σε ένα αρχείο <*.ini>. Τα αρχεία αυτής της μορφής αποθηκεύουν τις τιμές με ένα συγκεκριμένο τρόπο. Η δομή ενός τέτοιου αρχείου φαίνεται παρακάτω : [freq] vco_min= 20 vco_max= 150 progr_path= d:\ee-data\diplomatikh\fpga\dipav1\dipa-dtl.ttf kv_path= d:\ee-data\diplomatikh\vb\_results.csv dipa_bits= 16 last_nref= 9216 last_nout= Όπως μπορούμε να δούμε, όλα τα δεδομένα που αποθηκεύονται ανήκουν σε ένα «θέμα» [freq] και το κάθε ένα από αυτά αντιστοιχεί σε μια ένα όνομα που το χαρακτηρίζει (π.χ. last_nout). Μια τέτοια δομή μας βολεύει πολύ αφού μπορούμε σε ένα τέτοιο αρχείο, να αποθηκεύσουμε τις τιμές που χρειάζονται για την αρχικοποίηση όλων των συσκευών του Desk Top Lab. Παραπάνω οι τιμές αναφέρονται μόνο στο συνθέτη της παρούσας διπλωματικής και δηλώνουν κάποιες βασικές παραμέτρους του συνθέτη. Ο τρόπος με τον οποίο γίνεται η αποθήκευση και η ανάγνωση αυτών των αρχείων είναι με τη χρήση δυο συναρτήσεων που βρίσκονται στη βιβλιοθήκη Kernel32.dll των Windows. Οι συναρτήσεις αυτές είναι οι GetPrivateProfileString και WritePrivateProfileString τις οποίες έχουμε δηλώσει σε ένα ξεχωριστό Module. Οι παράμετροι των συναρτήσεων φαίνονται παρακάτω : WritePrivateProfileString(Topic, Name, Value, IniFileName) GetPrivateProfileString(Topic, Name, Default, x, Size, IniFileName) Στην WritePrivateProfileString δίνουμε με τη σειρά το θέμα (Topic) στο οποίο αναφερόμαστε, το όνομα (Name) της μεταβλητής, την τιμή (Value) της μεταβλητής και τέλος το όνομα του αρχείου που θέλουμε να γράψουμε (IniFileName). Το αρχείο αυτό δημιουργείται αυτόματα από την εντολή, αν φυσικά δεν υπάρχει. 13
130 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Έτσι για να αποθηκεύσουμε την τιμή 15 στην μεταβλητή dipa_bits θα γράψουμε: WritePrivateProfileString( freq,dipa_bits,15, freq.ini ) Στην GetPrivateProfileString οι μεταβλητές Topic, Name και IniFileName έχουν την ίδια σημασία με πριν ενώ υπάρχουν τρεις ακόμα καινούργιες μεταβλητές. Η Default είναι η τιμή την οποία γυρνάει η συνάρτηση αν δε βρει τη θέση που καθορίσαμε. Η x είναι η μεταβλητή στην οποία αποθηκεύεται η string τιμή που γυρνάει η συνάρτηση, ενώ το Size είναι το μήκος αυτής της τιμής. Αντίστοιχα για να διαβάσουμε την ίδια τιμή με αυτή που γράψαμε προηγουμένως, γράφουμε: GetPrivateProfileString( freq,dipa_bits,16,bits,255, freq.ini ) Στην πραγματικότητα οι παραπάνω συναρτήσεις έχουν απλουστευθεί κάπως ώστε να είναι πιο εύκολη η χρήση τους κατά τη συγγραφή του κώδικα. Τελικώς ο κώδικας που εκτελείται κατά την εκκίνηση αλλά και τον τερματισμό της εφαρμογής φαίνεται παρακάτω: Private Sub Form_Load() IniFileName = "d:\ee-data\diplomatikh\vb\freq.ini" FIN = divider = 4 vco_div = 4 dipa_bits.text = GPPS("freq", "bits", "16") vco_min.text = GPPS("freq", "vco_min", "15") vco_max.text = GPPS("freq", "vco_max", "30") preview_click HScroll1.Min = Val(vco_min.Text) * (10 ^ 6) / (FSTEP * vco_div) HScroll1.Max = Val(vco_max.Text) * (10 ^ 6) / (FSTEP * vco_div) HScroll1.Value = GPPS("freq", "NOUT", "1") Text2.Text = GPPS("freq", "progr_path", "") Text4.Text = GPPS("freq", "kv_path", "") epp_init End Sub read_status_click ανάγνωση της κατάστασης του FPGA Label17.Caption = HScroll2.Value submit_click πέρασμα των παραμέτρων στο FPGA 14
131 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Private Sub Form_Unload(Cancel As Integer) αποθήκευση των κατάλληλων μεταβλητών End Sub dummy = WPPS("freq", "bits", dipa_bits.text) dummy = WPPS("freq", "vco_min", vco_min.text) dummy = WPPS("freq", "vco_max", vco_max.text) dummy = WPPS("freq", "NOUT", HScroll1.Value) dummy = WPPS("freq", "progr_path", Text2.Text) dummy = WPPS("freq", "kv_path", Text4.Text) Βασικές συναρτήσεις του κώδικα Όπως αναφέρθηκε και στην αρχή, ο προγραμματισμός του User Interface έγινε με χρήση βασικών ρουτινών. Ο προγραμματισμός σε Visual Basic είναι εξαιρετικά απλός, καθώς ο προγραμματιστής αναπτύσσει το γραφικό περιβάλλον της εφαρμογής, και αντιστοιχίζει κομμάτια κώδικα σε κάθε πεδίο του περιβάλλοντος αυτού. Παρακάτω παρουσιάζονται βασικά μέρη του κώδικα και της λογικής του. Καταρχάς παρουσιάζεται ο κώδικας που ελέγχει το αν το PLL είναι ενεργοποιημένο ή όχι. Όπως έχουμε γράψει για να απενεργοποιήσουμε τον DIPA κρατάμε το reset pin του στο 0, όπως φαίνεται παρακάτω: Private Sub dipa_onoff_click() toggle = 1 - toggle If toggle = 1 Then epp_cw 1 epp_dw Val(Text1.Text) Or 1 Else epp_cw 1 epp_dw Val(Text1.Text) And 0 End If End Sub Σύμφωνα με τον παραπάνω κώδικα, κάθε φορά που ενεργοποιείται αυτή η ρουτίνα (δηλαδή ο χρήστης πατάει το αντίστοιχο πλήκτρο), αναστρέφεται η υπάρχουσα κατάσταση του DIPA, δηλαδή απενεργοποιείται αν είναι ενεργοποιημένος και αντίστροφα. Το σημαντικότερο μέρος φυσικά του λογισμικού είναι ο έλεγχος της συχνότητας εξόδου του συνθέτη. Το λογισμικό πρέπει να στέλνει τον κατάλληλο αριθμό NOUT προς το FPGA κάνοντας την μετατροπή από την επιθυμητή συχνότητα που επιλέγει ο χρήστης. Η συνάρτηση που στέλνει τον αριθμό NOUT προς το FPGA είναι η παρακάτω: 15
132 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Private Sub write_nout(num As Long) epp_cw 2 epp_dw &HFF And num epp_cw 3 epp_dw (&HFF00 And num) / 256 shifts the MSByte to LSB position End Sub Δέχεται όπως βλέπουμε ένα αριθμό τύπου Long, τον σπάει σε δύο byte, στέλνει το πρώτο (low) στον temp register (sel2) και μετά το δεύτερο στον 16-bit register (sel3), έτσι ώστε, όπως έχει ξαναειπωθεί, ο αριθμός να φορτώνεται ολόκληρος ταυτόχρονα στον DIPA. Η επόμενη συνάρτηση στέλνει και τους δύο χαρακτηριστικούς αριθμούς προς το FPGA, οπότε καλείται κατά την αρχικοποίηση της κάρτας, ή κατά την αλλαγή κάποιας παραμέτρου που επηρεάζει τον αριθμό NREF. Private Sub update_nout_nref() epp_cw 2 epp_dw &HFF And -NREF epp_cw 4 epp_dw (&HFF00 And -NREF) / 256 write_nout -NOUT End Sub Όπως βλέπουμε τα δεδομένα στέλνονται έξω με αντίθετο πρόσημο, επειδή το φίλτρο είναι σχεδιασμένο ώστε να αναστρέφει την τάση εισόδου του. Επίσης για λόγους καλύτερης αναγνωσιμότητας του κώδικα, ο αριθμός NOUT στέλνεται καλώντας την κατάλληλη συνάρτηση και όχι απευθείας. Όπως είπαμε η μετατροπή μεταξύ του αριθμού NOUT και της συχνότητας εξόδου βασίζεται στις σχέσεις (6.1) και (6.2). Παρακάτω βλέπουμε τον κώδικα που χρησιμοποιείται για την μετάδοση των βασικών παραμέτρων του συνθέτη, δηλαδή τον κώδικα που εκτελείται πατώντας το πλήκτρο submit : Private Sub submit_click() Dim f_temp As Double If NREF <> 0 Then f_temp = NOUT * FSTEP * vco_div & σχέση (6.1) End If preview_click 16
133 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ HScroll1.Min = Val(vco_min.Text) * (10 ^ 6) / (FSTEP * vco_div) HScroll1.Max = Val(vco_max.Text) * (10 ^ 6) / (FSTEP * vco_div) If f_temp = 0 Then NOUT = HScroll1.Min Else NOUT = f_temp / (FSTEP * vco_div) & σχέση (6.2) End If If NOUT < HScroll1.Min Or NOUT > HScroll1.Max Then HScroll1.Value = HScroll1.Min Else HScroll1.Value = NOUT End If update_nout_nref End Sub Βλέπουμε ότι αρχικά σώζεται η τρέχουσα επιλογή συχνότητας ώστε να μπορούμε να την ανακαλέσουμε μετά την μετατροπή του εύρους τιμών του NOUT. Εκτελείται έπειτα η ρουτίνα preview που ενημερώνει τα πεδία του προγράμματος με τις νέες τιμές και μετά ανανεώνεται το εύρος τιμών του slider του αριθμού NOUT. Μετά το πρόγραμμα φροντίζει ώστε να ανανεώσει την τιμή του NOUT με τέτοιο τρόπο που η έξοδος του συνθέτη να παραμείνει περίπου στην ίδια συχνότητα. Τέλος οι αριθμοί NOUT και NREF στέλνονται στο FPGA μέσω της συνάρτησης update_nout_nref. Η συχνότητα μπορεί να μεταβληθεί από το χρήστη με δύο τρόπους. Ο χρήστης μπορεί να γράψει την επιθυμητή συχνότητα στο κατάλληλο πεδίο και να πατήσει enter, οπότε εκτελείται ο παρακάτω κώδικας: Private Sub exp_fout_keypress(keyascii As Integer) If KeyAscii = 13 Then temp = Val(exp_fout.Text) / (FSTEP * vco_div) If temp < HScroll1.Max And temp > HScroll1.Min Then HScroll1.Value = temp Else MsgBox "Out Of Bounds" 'HScroll1.Value = HScroll1.Min End If End If End Sub 17
134 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Το πρόγραμμα ελέγχει αν πατήθηκε το πλήκτρο enter (κωδικός ASCII: 13). Έπειτα ελέγχει αν η ζητούμενη συχνότητα είναι εντός των ορίων του slider (που καθορίζονται από το δηλωμένο εύρος του VCO). Αν η αλλαγή είναι εφικτή τότε μεταβάλλει κατάλληλα την τιμή του slider. Η μεταβολή αυτή ενεργοποιεί αυτόματα την ρουτίνα που καλείται όταν ο χρήστης αλλάξει ο ίδιος τον slider, που είναι και ο δεύτερος τρόπος μεταβολής της συχνότητας. Private Sub HScroll1_Change() NOUT = HScroll1.Value write_nout -NOUT epp_cw 1 epp_dw Val(Text1.Text) And toggle scroll_nout_value.caption = HScroll1.Value exp_fout.text = vco_div * (NOUT / NREF) * FREF & σχέση (6.1) End Sub Όπως βλέπουμε, η ρουτίνα ανανεώνει την τιμή του NOUT με βάση την τρέχουσα θέση του slider, την στέλνει στο FPGA, και μετά ανανεώνει τα πεδία που αναγράφουν την συχνότητα εξόδου και την τιμή του slider. Σημαντικό μέρος του λογισμικού είναι και ο χειρισμός του κυκλώματος μέτρησης συχνοτήτων του FPGA, και ο υπολογισμός του Kv. Παρακάτω παρουσιάζεται αρχικά ο κώδικας υπολογισμού του Kv: Private Sub test_click() Dim arr(9) As Long Dim temp1, arr_sum, i, n As Long Dim step_val As Integer Dim freq_mean(150), kv(150), Kv_sum, Kv_final, j, k As Integer epp_cw 1 epp_dw 'assign dac inputs to nout register / dipa power off Open Text4.Text For Output As 1 Print #1, "dac input" & ";" & "mean freq." step_val = 2000 For i = To Step step_val k = k + 1 HScroll2.Value = i 'write dac value 18
135 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ DoEvents For j = 0 To 4 epp_cw 5 epp_cw 0 'reset counters 'take 5 freq. measurements For n = 1 To Next n ' delay epp_cw 1 X1 = epp_dr epp_cw 2 Y1 = epp_dr temp1 = Y1 * X1 xy1 = temp1 * vco_div * FREF / Label13.Caption = Format(xy1, "#,###.##"&" Hz") DoEvents arr(j) = xy1 arr_sum = arr_sum + arr(j) Next j freq_mean(k) = arr_sum / j arr_sum = 0 If k <> 1 Then kv(k)=(freq_mean(k)-freq_mean(k-1))/( *step_val) End if Kv_sum = Kv_sum + kv(k) Print #1, i & ";" & freq_mean(k) inserting comma separated values ProgressBar1.Value = Int(99 * (i ) / 64000) + 1 Next i Kv_final = Kv_sum / (k - 1) Label19.Caption = Format(Kv_final, "#,###.##" & " Hz/Volt") Label20.Caption = Format(Kv_final * 20 / 65536, "#.####") Close #1 epp_cw 6 epp_dw 0 End Sub ' assign dac inputs to dipa 19
136 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Αν και ο παραπάνω κώδικας είναι αρκετά μεγάλος σε μέγεθος, είναι πολύ απλός στη λογική του. Αποτελείται από τον ευρύτερο βρόχο i που ενσωματώνει τον βρόχο j. Ο βρόχος i χρησιμοποιείται για την κάλυψη του εύρους τιμών εισόδου του DAC. Ο j ζητά 10 φορές την συχνότητα και αποθηκεύει το μέσο όρο στο στοιχείο i του πίνακα freq_mean. f ( k) f ( k 1) Έπειτα υπολογίζει το Κv με βάση τον τύπο, όπου f(k) είναι freq_mean(k) V ( k) V ( k 1) και V(k) είναι (DAC_minimum + dac_step. k), οπότε θα είναι V(k) - V(k-1) = dac_step. Τώρα το βήμα που κάνει η έξοδος του DAC ισούται με το ελάχιστο βήμα της (~305 μv) επί την τιμή step_val που είναι το άλμα μεταξύ δύο εισόδων στον DAC. Όσο μικραίνει είναι αυτός ο αριθμός, παίρνουμε περισσότερες μετρήσεις, άρα έχουμε ακριβέστερο -αλλά και πολύ πιο χρονοβόρο αν θεωρήσουμε ότι χρειάζεται 0,5 sec για κάθε μέτρηση συχνότητας- υπολογισμό του Kv. Έτσι συνολικά έχουμε κ-1 (k = / step_val) μετρήσεις του Kv από τις οποίες υπολογίζουμε τον μέσο όρο του. Ο υπολογισμός αυτός είναι αρκετά ακριβής, αν και η τιμή που υπολογίζουμε συνήθως διαφέρει ελάχιστα από την αντίστοιχη του Excel. Πραγματικά παραδείγματα μετρήσεων θα παρουσιαστούν στο επόμενο κεφάλαιο (κεφ. 7). Επίσης ο χρήστης μπορεί να υπολογίσει όποια συχνότητα θέλει μετακινώντας τον slider που φαίνεται στην εικόνα 6.7. Μετακινώντας τον slider αντιστοιχίζει μια ψηφιακή είσοδο στον DAC, οπότε αυτός οδηγεί το VCO με μια τάση που προκαλεί μια συχνότητα στην έξοδο την οποία και υπολογίζουμε απευθείας. Private Sub HScroll2_Change() Dim temp As Long Static insub As Boolean If insub = True Then Exit Sub insub = True temp = HScroll2.Value Label17.Caption = temp write_nout temp epp_cw 5 epp_cw 0 'reset counters For n = 1 To Next n ' delay epp_cw 1 X1 = epp_dr epp_cw 2 Y1 = epp_dr temp1 = Y1 * X1 20
137 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ Hz") Label13.Caption = Format(temp1*vco_div*FREF/65536, "#,###.##" & " End Sub insub = False Όπως φαίνεται ο κώδικας είναι παρόμοιος με τον προηγούμενο. Χρησιμοποιείται μια απλή τεχνική αμοιβαίου αποκλεισμού (μέσω της μεταβλητής insub) ώστε η συνάρτηση να μην καλείται όταν εκείνη τη στιγμή υπολογίζεται κάποια άλλη συχνότητα (διαδικασία σχετικά χρονοβόρος όπως είπαμε) Συμπεράσματα σχετικά με το πρόγραμμα Όπως φάνηκε και στην πράξη, η επιλογή της Visual Basic ήταν καθοριστική για την επιτυχή και γρήγορη ολοκλήρωση του περιβάλλοντος ελέγχου του συνθέτη. Το περιβάλλον αυτό μας έδωσε πολύ μεγάλες δυνατότητες ελέγχου και αξιοποίησης του συστήματός μας. Η χρήση μιας τέτοιας γεννήτριας είναι τώρα δυνατή από τον κάθε ένα, μιας και το λειτουργικό σύστημα των Windows χρησιμοποιείται από τους περισσότερους ηλεκτρονικούς υπολογιστές. Βέβαια κάτι τέτοιο έχει και τα αναμενόμενα μειονεκτήματα που αντιμετωπίζει κάθε εφαρμογή των Windows. Κάποιες φορές η αξιοπιστία δεν είναι η επιθυμητή, αφού υπάρχει το ενδεχόμενο «κολλήματος» του προγράμματος. Πρέπει να σημειωθεί ακόμα ότι οι ταχύτητες επικοινωνίας που μπορούμε να φτάσουμε δεν είναι και τόσο υψηλές, τόσο λόγω της περιορισμένης διαμεταγωγής της παράλληλης θύρας, όσο και λόγω του υψηλού λογικού επιπέδου της γλώσσας Basic. Όμως ο παράγοντας αυτός δεν επηρεάζει σχεδόν καθόλου την απόδοση της συγκεκριμένης κάρτας. Κατά την υλοποίηση της εφαρμογής η σωστή συνεργασία του υλικού (hardware) και του λογισμικού (software) επιβεβαιώθηκε με τον καλύτερο δυνατό τρόπο. DPRG.SP = 'b'0; DCLK.AR = 'b'0; DCLK.SP = 'b'0; NCONFIG.AR = 'b'0; NCONFIG.SP = 'b'0; CSSTAT.AR = 'b'0; CSSTAT.SP = 'b'0; /* */ EQ = (CARD == DATA); /* CARD SELECT (D7 D6 == 3) */ CSL.D =!WR & EQ & D7 & D6 # CSL &!(D7 & D6); /* PROGRAM (D7 D6 == 2) */ DPRG.D = (D0 & CSL &!WR & D7 &! D6) # (DPRG &!(CSL & D7 &! D6)); DCLK.D = (D1 & CSL &!WR & D7 &! D6) # (DCLK &!(CSL & D7 &! D6)); NCONFIG.D = (D2 & CSL &!WR & D7 &! D6) # (NCONFIG &!(CSL & D7 &! D6)); /* CSSTAT (D7 D6 == 1) */ CSSTAT.D =!WR &!D7 & D6 & CSL; STATUS =!(CSSTAT &!DS & WR & CSL); /* WAIT */ WAIT =!AS #!DS; /* END OF DEFINITIONS*/ 21
138 ΚΕΦΑΛΑΙΟ 6 ΕΠΙΚΟΙΝΩΝΙΑ ΜΕ ΤΟ ΧΡΗΣΤΗ - ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ 2
139 ΚΕΦΑΛΑΙΟ 7 Μετρήσεις - Αποτελέσματα - Συμπεράσματα Περιεχόμενα: 7.1 Μετρήσεις του VCO (Kv) Μετρήσεις του συνθέτη συχνοτήτων Η έξοδος του DAC Ταχύτητα κλειδώματος του συνθέτη Μετρήσεις φασματικής καθαρότητας και θορύβου φάσης της εξόδου 7 Πρώτη σύγκριση γεννήτριας και κλειδωμένου PLL... 8 Ακόμα ένα παράδειγμα Η επίδραση του DAC στις επιδόσεις του συνθέτη Σχετικά με τις αρμονικές συνιστώσες Συμπεράσματα... 22
140 ΚΕΦΑΛΑΙΟ 7 ΜΕΤΡΗΣΕΙΣ - ΑΠΟΤΕΛΕΣΜΑΤΑ - ΣΥΜΠΕΡΑΣΜΑΤΑ Στο τελευταίο κεφάλαιο παρουσιάζονται τα πειραματικά αποτελέσματα και μετρήσεις που πήραμε κατά την πραγματική λειτουργία της κάρτας, και εξηγείται η απόκλιση ή μη αυτών από τα θεωρητικώς προβλεπόμενα αποτελέσματα. Μετρήσεις του VCO (Kv) Το μεγαλύτερο μέρος των μετρήσεων έγινε χρησιμοποιώντας ως VCO μια γεννήτρια κυματομορφών 0-15 MHz, συνδέοντας την έξοδο του φίλτρου της κάρτας στην είσοδο VCG IN (Voltage Controlled Generator In) της γεννήτριας και την έξοδο της τελευταίας σε κατάλληλη είσοδο του FPGA ώστε να οδηγεί την είσοδο FOUT του DIPA. Επίσης χρησιμοποιήθηκε ένας ταλαντωτής τύπου VCM (Voltage Controlled Multi-vibrator) που ταλαντώνει σύμφωνα με την μέθοδο ring oscillation (κεφ. 4, σχ. 4.19, σελ. 4.19) και ο οποίος σχεδιάστηκε για την διπλωματική. Προφανώς έπρεπε να μετρηθεί το κέρδος Kv των ταλαντωτών για τον περαιτέρω έλεγχο του συνθέτη (π.χ. για τον αρχικό υπολογισμό των τιμών του φίλτρου). Η τιμή του Kv όπως είπαμε στα κεφάλαια 5 και 6 υπολογίζεται με χρήση κάποιων κυκλωμάτων του FPGA σε συνδυασμό με λογισμικό που τρέχει στον υπολογιστή. Τα αποτελέσματα των μετρήσεων για το VCO με τη μέθοδο ring oscillation φαίνονται στο σχήμα Frequency (Hz) y = x + 3E+07 R 2 = 0, Dac Output (V) Σχ Γραφ. παράσταση του κέρδους του VCO του σχήματος
141 ΚΕΦΑΛΑΙΟ 7 ΜΕΤΡΗΣΕΙΣ - ΑΠΟΤΕΛΕΣΜΑΤΑ - ΣΥΜΠΕΡΑΣΜΑΤΑ Παρατηρούμε ότι έχει ένα αρκετά καλό εύρος συχνοτήτων (περίπου 16 με 30 MHz) και άρα αρκετά υψηλό κέρδος (~630 KHz / Volt). Επίσης ενώ η συμπεριφορά του δεν είναι απόλυτα γραμμική, ο δείκτης διασποράς που υπολογίστηκε (R 2 = 0,9613) κρίνεται ικανοποιητικός. Για την γεννήτρια συχνοτήτων που χρησιμοποιήσαμε ο υπολογισμός έδωσε την εξής γραφική παράσταση Frequency (Hz) y = x + 1E+07 R 2 = 0, DAC output (V) Σχ Γραφική παράσταση του κέρδους της χρησιμοποιηθείσας γεννήτριας Παρατηρούμε ότι η γεννήτρια έχει μικρότερο κέρδος αλλά πολύ καλύτερο δείκτη διασποράς (σχεδόν ίσος με 1). Παρόλα αυτά στην πράξη αποδείχτηκε ότι η γεννήτρια είχε μετριότατες επιδόσεις (όπως θα φανεί καθαρότατα στην επόμενη παράγραφο), κάτι το οποίο άλλωστε θέλαμε ώστε να δούμε την συμπεριφορά του PLL της κάρτας υπό τις δυσκολότερες συνθήκες. Ας σημειωθεί εδώ ότι και τα δύο γραφήματα παρουσιάζουν σε μια ποιοτική μέτρηση της απόκρισης των δύο VCO χωρίς να εμφανίζουν τις πολλές μη γραμμικότητες που αυτά θα έχουν. Αυτό συμβαίνει γιατί οδηγούμε τον DAC με βήματα των 1000 ή 2000 τιμών εισόδου, ενώ μια πιο ακριβής μέτρηση θα ήταν απαγορευτικά χρονοβόρος. Άλλωστε οι μετρήσεις γίνεται για να έχουμε ένα αρχικό υπολογισμό των τιμών του φίλτρου (μέσω της τιμής Kv) και όχι για την αξιολόγηση των VCO. 3
142 ΚΕΦΑΛΑΙΟ 7 ΜΕΤΡΗΣΕΙΣ - ΑΠΟΤΕΛΕΣΜΑΤΑ - ΣΥΜΠΕΡΑΣΜΑΤΑ Μετρήσεις του συνθέτη συχνοτήτων Για τις μετρήσεις της ποιότητας του συνθέτη χρησιμοποιήθηκε το εξής configuration. Η συχνότητα F REF δημιουργήθηκε διαιρώντας δια 4 την συχνότητα του κρυστάλλου (18,432 MHz). Άρα οδηγήσαμε την είσοδο FREF του DIPA με συχνότητα 4,608 MHz. Η συχνότητα εξόδου της γεννήτριας διαιρέθηκε και αυτή με τον αριθμό 4, αφού η γεννήτρια είχε μέγιστη συχνότητα εξόδου τα 15 MHz, μικρότερη δηλαδή των 18 MHz του κρυστάλλου και άρα της F REF. Ορίσαμε τον αριθμό NREF ίσο με την τιμή Αυτή η τιμή επιτρέπει σημαντικό κέρδος Kd στον DIPA ενώ παράλληλα συνεπάγεται ακέραιο βήμα αλλαγής συχνότητας. Συγκεκριμένα το βήμα Fstep ισούται με Fstep = ( Fref / Nref ). Npr = ( / 9216 ). 4 = Hz. Οι παραπάνω τιμές για τα βασικά χαρακτηριστικά μεγέθη του συνθέτη είναι υπέρ το δέον ικανοποιητικές αφού επιτρέπουν την ταχύτατη δειγματοληψία της διαφοράς φάσης των δύο συχνοτήτων, την υλοποίηση πολύ γρήγορου βρόχου (χαλαρό φίλτρο), διατηρώντας ταυτόχρονα πολύ μικρό βήμα αλλαγής της συχνότητα εξόδου. Η έξοδος του DAC Σε αυτό το σημείο μπορεί να παρουσιαστεί η πρώτη μέτρηση για την λειτουργία της κάρτας. Πιο συγκεκριμένα ξέρουμε από την θεωρία που περιγράφηκε στην παράγραφο 2.2 ότι περιμέναμε η έξοδος του DAC κατά την ομαλή λειτουργία της κάρτας (κλειδωμένο PLL) να έχει την μορφή του σχήματος 7.3. Σχ Αναμενόμενη από τη θεωρία μορφή της εξόδου του DAC Η προσδοκία μας αυτή επιβεβαιώθηκε θεαματικά από τις μετρήσεις όπως φαίνεται και στο επόμενο σχήμα: 4
143 ΚΕΦΑΛΑΙΟ 7 ΜΕΤΡΗΣΕΙΣ - ΑΠΟΤΕΛΕΣΜΑΤΑ - ΣΥΜΠΕΡΑΣΜΑΤΑ Σχ Πραγματική έξοδος του DAC Φαίνεται δηλαδή ότι η έξοδος του DAC είναι το αποτέλεσμα διαδοχικών πράξεων μεταξύ των αριθμών NOUT και NREF, που σαν αποτέλεσμα έχουν την οδήγηση του φίλτρου με την κυματομορφή του σχήματος. Αναφέρουμε επίσης ότι η τιμή NOUT στη συγκεκριμένη περίπτωση ήταν ίση με τον αριθμό 1536, ο οποίος είναι ακέραιο υποπολλαπλάσιο της τιμής NREF (NREF = 6. NOUT αφού NREF=9216), γι αυτό και η έξοδος του DAC είναι τόσο απλή και ομαλή. Μια τυχαία τιμή της NOUT θα προκαλέσει μια έξοδο στον DAC που θα έχει τη μορφή πολύπλοκου διακροτήματος με συχνότητα περιβάλλουσας ανάλογη της διαφοράς των δύο τιμών. Στην αδυναμία του DAC να παράγει το διακρότημα αυτό στην ιδανική του μορφή (συμμετρικό ως προς τον άξονα χ) οφείλονται τα προβλήματα που θα παρουσιαστούν σε επόμενη παράγραφο, όπως οι ισχυρές αρμονικές συνιστώσες του σήματος εξόδου. Ταχύτητα κλειδώματος του συνθέτη Τελικό βήμα για να είναι έτοιμη προς χρήση η κάρτα είναι ο υπολογισμός των τιμών των στοιχείων του φίλτρου. Χρησιμοποιήθηκε ως γνωστό φίλτρο ολοκληρωτή 3 ης τάξεως και άρα χρειαζόμασταν 2 αντιστάσεις (R1,R2) και δύο πυκνωτές (C1, C2). Θέλαμε ένα βρόχο με γρήγορη απόκριση (δηλαδή γρήγορο κλείδωμα του PLL). Χρησιμοποιώντας τη σχέση ω n. Ts = 4,5 όπου ω n η φυσική συχνότητα του βρόχου και Ts ο χρόνος κλειδώματος υπολογίσαμε μια αρχική τιμή για το ω n. Συγκεκριμένα για ένα χρόνο κλειδώματος γύρω στα 100 μsec (εξαρτάται και από το βήμα της αλλαγής στη συχνότητα εξόδου) βρίσκουμε ότι ω n = rad / sec. Χρησιμοποιώντας ένα φύλλο υπολογισμών στο πρόγραμμα Mathcad και δίνοντας την προηγούμενη τιμή του ω n βρίσκουμε κάποιες αρχικές τιμές για τα στοιχεία. Τελικά βρήκαμε τις τελικές τιμές των στοιχείων θέτοντας τον συνθέτη σε λειτουργία, παρατηρώντας τις επιδόσεις του στον παλμογράφο, και προσπαθώντας να έχουμε τα βέλτιστα χαρακτηριστικά στην ταχύτητα κλειδώματος σε συνδυασμό με την κυμάτωση στην έξοδο του φίλτρου και το overshoot κατά την αλλαγή της συχνότητας. Ενδεικτικά αναφέρουμε ότι χρησιμοποιήσαμε τις τιμές R1=39KΩ, R2=10KΩ, C1=22nF, C2=150pF. 5
144 ΚΕΦΑΛΑΙΟ 7 ΜΕΤΡΗΣΕΙΣ - ΑΠΟΤΕΛΕΣΜΑΤΑ - ΣΥΜΠΕΡΑΣΜΑΤΑ Παρουσιάζονται μερικά ενδεικτικά snapshots της απόκρισης του PLL κατά την αλλαγή της συχνότητας εξόδου. Στο σχήμα 7.5 βλέπουμε την απόκριση του PLL κατά την αλλαγή από NOUT=2800 σε NOUT=2500 (βήμα αλλαγής KHz = 600 KHz). Σχ Απόκριση του PLL σε βήμα των 600 KHz Όπως φαίνεται το PLL έχει κλειδώσει σε μόλις 70 μsec (3,5 divs), με μόλις 10% overshoot, ενώ έχει ταυτόχρονα πολύ μικρή κυμάτωση. [Σημ.: Παρατηρούμε την έξοδο του φίλτρου. Έτσι μείωση του αριθμού NOUT σημαίνει μείωση της τάσης εξόδου του φίλτρου γιατί το σήμα υφίσταται δύο αναστροφές, μια από το λογισμικό προς το FPGA και άρα στον DAC (στέλνουμε το συμπλήρωμα του 2 του NOUT στην κάρτα), και άλλη μια λόγω της αναστρέφουσας διάταξης του φίλτρου] Για την αλλαγή από NOUT=1536 (συχνότητα KHz) σε NOUT=1792 (συχνότητα KHz) έχουμε το σχήμα 7.6. Σχ Απόκριση του PLL σε βήμα 512 KHz 6
Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ ΠΑΤΡΑ
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ ΣΗΜΕΙΩΣΕΙΣ ΑΠΑΡΙΘΜΗΤΕΣ Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ
ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ.3 ΑΣΥΓΧΡΟΝΟΣ ΔYΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.5 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ.7 ΑΣΥΓΧΡΟΝΟΣ ΔΕΚΑΔΙΚΟΣ ΑΠΑΡΙΘΜΗΤΗΣ ΜΕ LATCH.
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ ΣΗΜΕΙΩΣΕΙΣ ΑΠΑΡΙΘΜΗΤΕΣ Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ
4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER
4. ΚΕΦΑΛΑΙΟ ΕΦΑΡΜΟΓΕΣ ΤΟΥ ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΥ FOURIER Σκοπός του κεφαλαίου είναι να παρουσιάσει μερικές εφαρμογές του Μετασχηματισμού Fourier (ΜF). Ειδικότερα στο κεφάλαιο αυτό θα περιγραφούν έμμεσοι τρόποι
ΑΝΔΡΕΑ ΑΝΔΡΕΟΥ (ΑΜ:5218)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΤΕΧΝΙΚΕΣ ΣΥΝΘΕΣΗΣ ΣΥΧΝΟΤΗΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΤΟΥ ΑΝΔΡΕΑ ΑΝΔΡΕΟΥ (ΑΜ:58) Αρ. Διπλ. Εργ.:
ΠΑΡΟΥΣΙΑΣΗ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ
ΠΑΡΟΥΣΙΑΣΗ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ ΜΕΛΕΤΗ ΔΟΜΩΝ ΜΕΤΑΤΡΟΠΕΩΝ ΑΝΑΛΟΓΙΚΟΥ ΣΗΜΑΤΟΣ ΣΕ ΨΗΦΙΑΚΟ Καραβίτης Κωνσταντίνος Α.Μ: 5030 Επιβλέπων Καθηγητής: Κ.Ευσταθίου Συνεπιβλέπων Καθηγητής: Γ.Παπαδόπουλος ΠΑΤΡΑ 2008
ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ & ΣΥΣΤΗΜΑΤΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΣΥΣΤΗΜΑΤΩΝ & ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ & ΣΥΣΤΗΜΑΤΩΝ Διδάσκων : Δημήτρης Τσιπιανίτης Γεώργιος Μανδέλλος
FSK Διαμόρφωση και FSK Αποδιαμόρφωση (FSK Modulation-FSK Demodulation)
FSK Διαμόρφωση και FSK Αποδιαμόρφωση (FSK Modulation-FSK Demodulation) ΣΚΟΠΟΙ ΤΗΣ ΑΣΚΗΣΗΣ Η εκμάθηση της αρχής λειτουργίας της ψηφιακής διαμόρφωσης συχνότητας (Frequency Shift Keying, FSK) και της αποδιαμόρφωσής
ΤΕΛΕΣΤΙΚΟΣ ΕΝΙΣΧΥΤΗΣ
ΤΕΛΕΣΤΙΚΟΣ ΕΝΙΣΧΥΤΗΣ ΕΠΩΝΥΜΟ ΟΝΟΜΑ Α.Μ. ΤΜΗΜΑ ΗΜΕΡΟΜΗΝΙΑ ΔΙΕΞΑΓΩΓΗΣ:.... /..../ 20.. ΗΜΕΡΟΜΗΝΙΑ ΠΑΡΑΔΟΣΗΣ:.... /..../ 20.. ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. Αντικείμενο της εργαστηριακής
ΑΣΚΗΣΗ 7 ΚΥΚΛΩΜΑ R-L-C: ΣΥΝΔΕΣΗ ΣΕ ΣΕΙΡΑ ΣΥΝΤΟΝΙΣΜΟΣ
ΑΣΚΗΣΗ 7 ΚΥΚΛΩΜΑ R-L-C: ΣΥΝΔΕΣΗ ΣΕ ΣΕΙΡΑ ΣΥΝΤΟΝΙΣΜΟΣ 1 Σκοπός Στην άσκηση αυτή μελετάται η συμπεριφορά ενός κυκλώματος RLC σε σειρά κατά την εφαρμογή εναλλασσόμενου ρεύματος. Συγκεκριμένα μελετάται η μεταβολή
7 ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ ΑΥΤΟΕΞΕΤΑΣΗΣ. 1) Ποιος είναι ο ρόλος του δέκτη στις επικοινωνίες.
7 ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ ΑΥΤΟΕΞΕΤΑΣΗΣ 1) Ποιος είναι ο ρόλος του δέκτη στις επικοινωνίες. Ρόλος του δέκτη είναι να ενισχύει επιλεκτικά και να επεξεργάζεται το ωφέλιμο φέρον σήμα που λαμβάνει και να αποδίδει
5 η ενότητα ΑΝΑΤΡΟΦΟΔΟΤΗΣΗ ΣΤΟΥΣ ΕΝΙΣΧΥΤΕΣ
ρ. Λάμπρος Μπισδούνης Καθηγητής 5 η ενότητα ΑΝΑΤΡΟΦΟΔΟΤΗΣΗ ΣΤΟΥΣ ΕΝΙΣΧΥΤΕΣ T.E.I. ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περιεχόμενα 5 ης ενότητας Στην πέμπτη ενότητα θα μελετήσουμε την ανατροφοδότηση
Αναφορά Εργαστηριακής Άσκησης PLL Μάθημα: Εργαστήριο Αναλογικών VLSI Ομάδα: Αδαμαντίδη Αικατερίνη 1146 Κωνσταντίνος Μουρτζιάπης 867
Αναφορά Εργαστηριακής Άσκησης PLL Μάθημα: Εργαστήριο Αναλογικών VLSI Ομάδα: Αδαμαντίδη Αικατερίνη 1146 Κωνσταντίνος Μουρτζιάπης 867 Εισαγωγή: Ο βρόγχος κλειδωμένης φάσης, ή PLL, είναι ένα απο τα πιο χρήσιμα
ΚΕΦΑΛΑΙΟ 7 Τελεστικός ενισχυτής
ΚΕΦΑΛΑΙΟ 7 Τελεστικός ενισχυτής Ο τελεστικός ενισχυτής, TE (operational ampliier, op-amp) είναι ένα από τα πιο χρήσιμα αναλογικά κυκλώματα. Κατασκευάζεται ως ολοκληρωμένο κύκλωμα (integrated circuit) και
ΠΕΙΡΑΜΑΤΙΚΗ ΔΙΑΔΙΚΑΣΙΑ
ΕΙΣΑΓΩΓΗ: Ο τελεστικός ενισχυτής είναι ένα προκατασκευασμένο κύκλωμα μικρών διαστάσεων που συμπεριφέρεται ως ενισχυτής τάσης, και έχει πολύ μεγάλο κέρδος, πολλές φορές της τάξης του 10 4 και 10 6. Ο τελεστικός
Κεφάλαιο 11. Κυκλώματα Χρονισμού
Κεφάλαιο 11. Κυκλώματα Χρονισμού Σύνοψη Στο κεφάλαιο αυτό αναλύεται η λειτουργία των κυκλωμάτων χρονισμού. Τα κυκλώματα αυτά παρουσιάζουν πολύ μεγάλο πρακτικό ενδιαφέρον και απαιτείται να λειτουργούν με
7. ΤΕΛΕΣΤΙΚΟΣ ΕΝΙΣΧΥΤΗΣ
ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΣΤΟΧΟΙ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ. Ε. ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΙΙ 7. ΤΕΛΕΣΤΙΚΟΣ ΕΝΙΣΧΥΤΗΣ η κατανόηση της λειτουργίας του τελεστικού ενισχυτή, Ημερομηνία:.... /.... /...... Τμήμα:....
Κ. ΕΥΣΤΑΘΙΟΥ, Γ. ΠΑΠΑΔΟΠΟΥΛΟΣ ΠΑΤΡΑ
ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ ΨΗΦΙΑΚΑ ΟΛΟΚΛΗΡΩΜΕΝΑ ΚΥΚΛΩΜΑΤΑ & ΣΥΣΤΗΜΑΤΑ ΣΗΜΕΙΩΣΕΙΣ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΟΙ ΑΠΑΡΙΘΜΗΤΕΣ Κ. ΕΥΣΤΑΘΙΟΥ,
ΑΣΚΗΣΗ 9. Tα Flip-Flop
ΑΣΚΗΣΗ 9 Tα Flip-Flop 9.1. ΣΚΟΠΟΣ Η κατανόηση της λειτουργίας των στοιχείων μνήμης των ψηφιακών κυκλωμάτων. Τα δομικά στοιχεία μνήμης είναι οι μανδαλωτές (latches) και τα Flip-Flop. 9.2. ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ
Ειδικά Θέματα Ηλεκτρονικών 1
Ειδικά Θέματα Ηλεκτρονικών 1 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 3...2 ΑΠΟΚΡΙΣΗ ΣΥΧΝΟΤΗΤΑΣ ΕΝΙΣΧΥΤΩΝ...2 3.1 Απόκριση συχνότητας ενισχυτών...2 3.1.1 Παραμόρφωση στους ενισχυτές...5 3.1.2 Πιστότητα των ενισχυτών...6 3.1.3
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του ΛΑΜΠΡΟΠΟΥΛΟΥ ΜΑΝΘΟΥ ΑΜ:3990 ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ
Τελεστικοί Ενισχυτές
Τελεστικοί Ενισχυτές Ενισχυτές-Γενικά: Οι ενισχυτές είναι δίθυρα δίκτυα στα οποία η τάση ή το ρεύμα εξόδου είναι ευθέως ανάλογη της τάσεως ή του ρεύματος εισόδου. Υπάρχουν τέσσερα διαφορετικά είδη ενισχυτών:
Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστημάτων
Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστημάτων Αναλογικές & Ψηφιακές Διατάξεις Τα διάφορα μεγέθη των φυσικών διεργασιών τα μετράμε με αισθητήρες που ουσιαστικά παρέχουν ηλεκτρικά σήματα χαμηλής
Ψηφιακά Ηλεκτρονικά. Προαιρετική εργασία
Τ.Ε.Ι. ΑΘΗΝΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΙΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Ψηφιακά Ηλεκτρονικά Προαιρετική εργασία «Κατασκευή δυαδικού απαριθμητή με δεκαδική απεικόνιση δεκάδων και μονάδων» Συνυπεύθυνος
ΚΕΦΑΛΑΙΟ 6 Διαφορικός ενισχυτής
ΚΕΦΑΛΑΙΟ 6 Διαφορικός ενισχυτής Ο διαφορικός ενισχυτής (differential amplifier) είναι από τα πλέον διαδεδομένα και χρήσιμα κυκλώματα στις ενισχυτικές διατάξεις. Είναι βασικό δομικό στοιχείο του τελεστικού
Ιατρικά Ηλεκτρονικά. Χρήσιμοι Σύνδεσμοι. ΙΑΤΡΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ - ΔΙΑΛΕΞΗ 2η. Σημειώσεις μαθήματος: E mail:
Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Τμήμα Μηχανικών Βιοϊατρικής Τεχνολογίας Τ.Ε Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/ E mail: pasv@teiath.gr 2 1 Όπως
Ι. Ν. ΛΥΓΟΥΡΑΣ ΚΑΘΗΓΗΤΗΣ ΠΟΛΥΤΕΧΝΙΚΗΣ ΣΧΟΛΗΣ Δ. Π. Θ
Ι. Ν. ΛΥΓΟΥΡΑΣ ΚΑΘΗΓΗΤΗΣ ΠΟΛΥΤΕΧΝΙΚΗΣ ΣΧΟΛΗΣ Δ. Π. Θ Έκδοση 4 η 4 Στη Χαρά τον Νίκο και τον Λευτέρη 5 6 ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ 15 ΚΕΦΑΛΑΙΟ 1 ΕΣΩΤΕΡΙΚΗ ΔΟΜΗ ΤΟΥ ΤΕΛΕΣΤΙΚΟΥ ΕΝΙΣΧΥΤΗ 1.1. ΕΙΣΑΓΩΓΗ 19 1.2. Ο
ΑΝΑLOG TO DIGITAL CONVERTER (ADC)
ΑΝΑLOG TO DIGITAL CONVERTER (ADC) O ADC αναλαμβάνει να μετατρέψει αναλογικές τάσεις σε ψηφιακές ώστε να είναι διαθέσιμες εσωτερικά στο μικροελεγκτή για επεξεργασία. Η αναλογική τάση που θέλουμε να ψηφιοποιηθεί
ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ
ΣΧΟΛΗ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΑΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ 1) Οι απαριθμητές ή μετρητές (counters) είναι κυκλώματα που
Εργαστηριακές ασκήσεις λογικών κυκλωμάτων 11 A/D-D/A
11.1 Θεωρητικό μέρος 11 A/D-D/A 11.1.1 Μετατροπέας αναλογικού σε ψηφιακό σήμα (A/D converter) με δυαδικό μετρητή Σχ.1 Μετατροπέας A/D με δυαδικό μετρητή Στο σχήμα 1 απεικονίζεται σε block diagram ένας
Εισαγωγή στις Τηλεπικοινωνίες. Δομή της παρουσίασης
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΙΚΟΙΝΩΝΙΩΝ ΤΜΗΜΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Εισαγωγή στις Τηλεπικοινωνίες Εφαρμογές της Ανάλυσης Fourier Αθανάσιος
Ασύγχρονοι Απαριθμητές. Διάλεξη 7
Ασύγχρονοι Απαριθμητές Διάλεξη 7 Δομή της διάλεξης Εισαγωγή στους Απαριθμητές Ασύγχρονος Δυαδικός Απαριθμητής Ασύγχρονος Δεκαδικός Απαριθμητής Ασύγχρονος Δεκαδικός Απαριθμητής με Latch Ασκήσεις 2 Ασύγχρονοι
Ιατρικά Ηλεκτρονικά. Χρήσιμοι Σύνδεσμοι. ΙΑΤΡΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ - ΔΙΑΛΕΞΗ 1η. Σημειώσεις μαθήματος: E mail:
Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Τμήμα Μηχανικών Βιοϊατρικής Τεχνολογίας Τ.Ε Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/ E mail: pasv@teiath.gr 2 1 ΠΕΡΙΕΧΟΜΕΝΑ
Άσκηση 10 Στοιχεία ηλεκτρονικής τεχνολογίας
Άσκηση 10 Στοιχεία ηλεκτρονικής τεχνολογίας ΔΙΟΔΟΣ Οι περισσότερες ηλεκτρονικές συσκευές όπως οι τηλεοράσεις, τα στερεοφωνικά συγκροτήματα και οι υπολογιστές χρειάζονται τάση dc για να λειτουργήσουν σωστά.
Λογαριθµικοί Ενισχυτές
Λογαριθµικοί Ενισχυτές I D ontrol Sytem Laboratory Σε πολλές εφαρμογές το δυναμικό εύρος (dynamic range), δηλαδή το μέγεθος του σήματος, είναι πολύ μεγάλο για τις ικανότητες ορισμένων chip (π.χ. ΤΕ, κλπ)
Σύγχρονοι Απαριθμητές. Διάλεξη 8
Σύγχρονοι Απαριθμητές Διάλεξη 8 Δομή της διάλεξης Εισαγωγή Σύγχρονος Δυαδικός Απαριθμητής Σύγχρονος Δεκαδικός Απαριθμητής Προγραμματιζόμενοι Απαριθμητές Ασκήσεις 2 Σύγχρονοι Απαριθμητές Εισαγωγή 3 Εισαγωγή
6. Τελεστικοί ενισχυτές
6. Τελεστικοί ενισχυτές 6. Εισαγωγή Ο τελεστικός ενισχυτής (OP AMP) είναι ένας ενισχυτής με μεγάλη απολαβή στον οποίο προσαρτάται ανάδραση, ώστε να ελέγχεται η λειτουργία του. Χρησιμοποιείται για την πραγματοποίηση
Απαριθμητές (Ασύγχρονοι Σύγχρονοι, Δυαδικοί Δεκαδικοί)
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ Εργαστήριο Ηλεκτρονικών Εφαρμογών Ψηφιακά Ολοκληρωμένα Κυκλώματα & Συστήματα Εργαστηριακή Άσκηση
Εισαγωγή στις Τηλεπικοινωνίες
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στις Τηλεπικοινωνίες Ενότητα : Εισαγωγή στη Διαμόρφωση Συχνότητας (FΜ) Όνομα Καθηγητή: Δρ. Ηρακλής Σίμος Τμήμα: Ηλεκτρονικών
ΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος. Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων
Πανεπιστήμιο Κρήτης Τμήμα Επιστήμης Υπολογιστών ΗΥ-121: Ηλεκτρονικά Κυκλώματα Γιώργος Δημητρακόπουλος Άνοιξη 2008 Βασικές Αρχές Ηλεκτρικών Κυκλωμάτων Ηλεκτρικό ρεύμα Το ρεύμα είναι αποτέλεσμα της κίνησης
Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστηµάτων
Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστηµάτων Αναλογικές & Ψηφιακές Διατάξεις Control Systems Laboratory Τα διάφορα μεγέθη των φυσικών διεργασιών τα μετράμε με αισθητήρες που ουσιαστικά παρέχουν
Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).
Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται
Σήματα και Συστήματα. Διάλεξη 10: Γραμμικά Φίλτρα. Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής
Σήματα και Συστήματα Διάλεξη 10: Γραμμικά Φίλτρα Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Γραμμικά Φίλτρα 1. Ιδανικά Γραμμικά Φίλτρα Ιδανικό Κατωδιαβατό Φίλτρο Ιδανικό Ανωδιαβατό Φίλτρο Ιδανικό Ζωνοδιαβατό
Flip-Flop: D Control Systems Laboratory
Flip-Flop: Control Systems Laboratory Είναι ένας τύπος συγχρονιζόμενου flip- flop, δηλαδή ενός flip- flop όπου οι έξοδοί του δεν αλλάζουν μόνο με αλλαγή των εισόδων R, S αλλά χρειάζεται ένας ωρολογιακός
1. ΤΕΛΕΣΤΙΚΟΙ ΕΝΙΣΧΥΤΕΣ
1. ΤΕΛΕΣΤΙΚΟΙ ΕΝΙΣΧΥΤΕΣ Ο τελεστικός ενισχυτής αποτελεί την βασική δομική μονάδα των περισσοτέρων αναλογικών κυκλωμάτων. Στην ενότητα αυτή θα μελετήσουμε τις ιδιότητες του τελεστικού ενισχυτή, μερικά βασικά
ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ
Σχολή Θετικών Επιστημών Τμήμα Επιστήμης και Τεχνολογίας Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΠΙΚΟΙΝΩΝΙΕΣ Ι Μπατιστάτος Μιχάλης Εργαστήριο 8 ο : Διαμόρφωση Γωνίας Βασική Θεωρία
Ανάδραση. Ηλεκτρονική Γ τάξη Επ. Καθηγ. Ε. Καραγιάννη
Ανάδραση Ηλεκτρονική Γ τάξη Επ. Καθηγ. Ε. Καραγιάννη 3 Συστήματα Ελέγχου Σύστημα Ελέγχου Ανοικτού Βρόχου Α Σύστημα Ελέγχου Κλειστού Βρόχου με Ανάδραση Ε =β Α β Μάρτιος 2 Μάθημα 3, Ηλεκτρονική Γ' Έτος 2
ΕΝΙΣΧΥΤΗΣ ΜΕ ΣΥΖΕΥΞΗ ΜΕΣΩ ΠΥΚΝΩΤΗ
ΕΝΙΣΧΥΤΗΣ ΜΕ ΣΥΖΕΥΞΗ ΜΕΣΩ ΠΥΚΝΩΤΗ ΕΠΩΝΥΜΟ ΟΝΟΜΑ Α.Μ. ΤΜΗΜΑ ΗΜΕΡΟΜΗΝΙΑ ΔΙΕΞΑΓΩΓΗΣ:.... /..../ 20.. ΗΜΕΡΟΜΗΝΙΑ ΠΑΡΑΔΟΣΗΣ:.... /..../ 20.. ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. ΣΤΟΧΟΙ η κατανόηση
ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ
ΣΧΟΛΗ ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΘΕΩΡΗΤΙΚΟ ΜΕΡΟΣ ΤΙΤΛΟΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ ΣΥΓΧΡΟΝΟΙ ΜΕΤΡΗΤΕΣ 1) Οι σύγχρονοι μετρητές υλοποιούνται με Flip-Flop τύπου T
Ταλαντωτές. Ηλεκτρονική Γ Τάξη Β εξάμηνο Μάρτιος 2011 Επ. Καθ. Ε. Καραγιάννη
Ταλαντωτές Ηλεκτρονική Γ Τάξη Β εξάμηνο Μάρτιος Επ. Καθ. Ε. Καραγιάννη Ταλαντωτές ΑΝΑΔΡΑΣΗ Στοιχεία Ταλάντωσης Ενισχυτής OUT Ταλαντωτής είναι ένα κύκλωμα που παράγει ηλεκτρικό σήμα σταθερής συχνότητας
ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ
Σχολή Θετικών Επιστημών Τμήμα Επιστήμης και Τεχνολογίας Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΕΠΙΚΟΙΝΩΝΙΕΣ Ι Μπατιστάτος Μιχάλης Εργαστήριο 3 ο : Διαμόρφωση ΑΜ-DSBSC/SSB Βασική
ΜΕΤΑΤΡΟΠΕΙΣ ΣΥΝΕΧΟΥΣ ΡΕΥΜΑΤΟΣ
ΜΑΘ.. 12 ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΜΕΤΑΤΡΟΠΕΙΣ ΣΥΝΕΧΟΥΣ ΡΕΥΜΑΤΟΣ 1. ΓΕΝΙΚΑ Οι μετατροπείς συνεχούς ρεύματος επιτελούν τη μετατροπή μιας τάσης συνεχούς μορφής, σε συνεχή τάση με ρυθμιζόμενο σταθερό πλάτος ή και πολικότητα.
ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ
Σχολή Οικονομίας Διοίκησης και Πληροφορικής Τμήμα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ Αρχές Τηλ/ων Συστημάτων Μπατιστάτος Μιχάλης Εργαστήριο 8 ο : Διαμόρφωση
ΜΕΡΟΣ Α: Απαραίτητες γνώσεις
ΜΕΡΟΣ Α: Απαραίτητες γνώσεις Φίλτρα RC Τα φίλτρα RC είναι από τις σπουδαίες εφαρμογές των πυκνωτών. Τα πιο απλά φίλτρα αποτελούνται από έναν πυκνωτή και μία αντίσταση σε σειρά. Με μια διαφορετική ματιά
K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων
K15 Ψηφιακή Λογική Σχεδίαση 7-8: Ανάλυση και σύνθεση συνδυαστικών λογικών κυκλωμάτων Γιάννης Λιαπέρδος TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ Η έννοια του συνδυαστικού
Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο Εργαστηριακή Άσκηση 6: Δειγματοληψία - Πειραματική Μελέτη Δρ. Ηρακλής Σίμος Τμήμα:
Τεχνολογικό Eκπαιδευτικό Ίδρυμα Kρήτης TMHMA MHXANOΛOΓIAΣ. Δρ. Φασουλάς Γιάννης
Τεχνολογικό Eκπαιδευτικό Ίδρυμα Kρήτης TMHMA MHXANOΛOΓIAΣ Δρ. Φασουλάς Γιάννης jfasoulas@staff.teicrete.gr Θα μάθετε: Έννοιες που σχετίζονται με την μετατροπή μεταξύ αναλογικών και ψηφιακών σημάτων Πώς
f o = 1/(2π LC) (1) και υφίσταται απόσβεση, λόγω των ωμικών απωλειών του κυκλώματος (ωμική αντίσταση της επαγωγής).
Συστήματα εκπομπής Το φέρον σήμα υψηλής συχνότητας (f o ) δημιουργείται τοπικά στον πομπό από κύκλωμα αρμονικού (ημιτονικού) ταλαντωτή. Η αρχή λειτουργίας των ταλαντωτών L-C στηρίζεται στην αυτοταλάντωση,
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Σχεδίαση Ψηφιακών Συστημάτων. Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα ᄃ Σχεδίαση Ψηφιακών Συστημάτων Ενότητα: ΚΑΤΑΧΩΡΗΤΕΣ - ΑΠΑΡΙΘΜΗΤΕΣ Κυριάκης - Μπιτζάρος Ευστάθιος Τμήμα Ηλεκτρονικών Μηχανικών
Ανάλυση και υπολογισμός του βρόχου φάσης (PLL). Β μέρος του Αθανάσιου Νασιόπουλου Τμήμα Ηλεκτρονικής ΤΕΙ Αθήνας
Ανάλυση και υπολογισμός του βρόχου φάσης (PLL). Β μέρος του Αθανάσιου Νασιόπουλου Τμήμα Ηλεκτρονικής ΤΕΙ Αθήνας 1. Εισαγωγή Στο προηγούμενο μάθημα - εισήγηση αναλύθηκε ποιοτικά η λειτουργία του βρόχου
NETCOM S.A. ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΠΑΛΜΟΜΕΤΑΤΡΟΠΕΩΝ DIGITAL CONTROL OF SWITCHING POWER CONVERTERS
NETCOM S.A. ΨΗΦΙΑΚΟΣ ΕΛΕΓΧΟΣ ΠΑΛΜΟΜΕΤΑΤΡΟΠΕΩΝ DIGITAL CONTROL OF SWITCHING POWER CONVERTERS Αρχή λειτουργίας των Αναλογικών και ψηφιακών Παλμομετατροπεων Ο παλμός οδήγησης ενός παλμομετατροπέα, με αναλογική
Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL
Κεφάλαιο 3 ο Ακολουθιακά Κυκλώματα με ολοκληρωμένα ΤΤL 3.1 Εισαγωγή στα FLIP FLOP 3.1.1 Θεωρητικό Υπόβαθρο Τα σύγχρονα ακολουθιακά κυκλώματα με τα οποία θα ασχοληθούμε στο εργαστήριο των Ψηφιακών συστημάτων
ΑΣΚΗΣΗ 7 FLIP - FLOP
ΑΣΚΗΣΗ 7 FLIP - FLOP Αντικείμενο της άσκησης: Η κατανόηση της δομής και λειτουργίας των Flip Flop. Flip - Flop Τα Flip Flop είναι δισταθή λογικά κυκλώματα με χαρακτηριστικά μνήμης και είναι τα πλέον βασικά
Ο ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Ζ διακριτές σήματα και συστήματα διακριτού χρόνου χρονοσειρές (time series)
Ο ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Ζ Είναι σύνηθες να μελετάμε διάφορα φαινόμενα σε διακριτές (και όχι συνεχείς) τιμές της μεταβλητής του χρόνου, οπότε, μιλάμε για για σήματα και συστήματα διακριτού χρόνου. Τα σήματα διακριτού
Ιατρικά Ηλεκτρονικά. Χρήσιμοι Σύνδεσμοι ΙΑΤΡΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ - ΜΕΤΑΓΩΓΙΚΟΙ ΣΤΑΘΕΡΟΠΟΙΗΤΕΣ. Σημειώσεις μαθήματος: E mail:
Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Τμήμα Μηχανικών Βιοϊατρικής Τεχνολογίας Τ.Ε Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/ E mail: pasv@teiath.gr 2 1 Μεταγωγικοί
ΤΙ ΕΙΝΑΙ Η ΗΛΕΚΤΡΟΝΙΚΗ;
ΤΙ ΕΙΝΑΙ Η ΗΛΕΚΤΡΟΝΙΚΗ; Ηλεκτρονικοί Υπολογιστές Κινητά τηλέφωνα Τηλεπικοινωνίες Δίκτυα Ο κόσμος της Ηλεκτρονικής Ιατρική Ενέργεια Βιομηχανία Διασκέδαση ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΗΛΕΚΤΡΟΝΙΚΗ Τι περιέχουν οι ηλεκτρονικές
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΑΤΡΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ 24/01/2012 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ
ΘΕΜΑ 1 ο (1.5 μονάδες) (α) Να προσδιορίσετε την διακριτική ικανότητα (resolution) ενός ψηφιακού βτομέτρου με ενδείκτη (display) τριών ψηφίων και μέγιστη ένδειξη 99.9 olts. (0.5 μ.) (β) Στα ακόλουθα σχήματα
Να σχεδιαστεί ένας ενισχυτής κοινού εκπομπού (σχ.1) με τα εξής χαρακτηριστικά: R 2.3 k,
Να σχεδιαστεί ένας ενισχυτής κοινού εκπομπού (σχ) με τα εξής χαρακτηριστικά: 3 k, 50, k, S k και V 5 α) Nα υπολογιστούν οι τιμές των αντιστάσεων β) Να επιλεγούν οι χωρητικότητες C, CC έτσι ώστε ο ενισχυτής
Τελεστικοί Ενισχυτές
Τελεστικοί Ενισχυτές Ο Τελεστικός Ενισχυτής (ΤΕ) αποτελεί ένα ιδιαίτερο είδος ενισχυτή, το οποίο έχει ευρύτατη αποδοχή ως δομικό στοιχείο των ηλεκτρονικών κυκλωμάτων. Η μεγάλη του δημοτικότητα οφείλεται
Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Εισαγωγή στις Τηλεπικοινωνίες / Εργαστήριο Εργαστηριακή Άσκηση 4: Πειραματική μελέτη συστημάτων διαμόρφωσης συχνότητας (FΜ) Δρ.
ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΣΑΕ ΙΙ. Αισθητήρια θερμοκρασίας Εισαγωγή
ΕΡΓΑΣΤΗΡΙΟ ΣΥΣΤΗΜΑΤΩΝ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΣΑΕ ΙΙ Εργαστηριακή Άσκηση 1 Αισθητήρια θερμοκρασίας Εισαγωγή Η μέτρηση της θερμοκρασίας είναι μια σημαντική ασχολία για τους μηχανικούς παραγωγής γιατί είναι, συνήθως,
ΜΕΛΕΤΗ ΤΟΥ ΒΡΟΧΟΥ ΕΛΕΓΧΟΥ ΦΑΣΗΣ PLL Του Καθηγητή Αθανάσιου Νασιόπουλου Τμήμα Ηλεκτρονικής ΤΕΙ Αθήνας
ΜΕΛΕΤΗ ΤΟΥ ΒΡΟΧΟΥ ΕΛΕΓΧΟΥ ΦΑΣΗΣ PLL Του Καθηγητή Αθανάσιου Νασιόπουλου Τμήμα Ηλεκτρονικής ΤΕΙ Αθήνας. Εισαγωγή Στο προηγούμενο μάθημα - εισήγηση ασχοληθήκαμε με τους ταλαντωτές VO. Εξετάσαμε τις βασικές
Ιατρικά Ηλεκτρονικά. Δρ. Π. Ασβεστάς Τμήμα Μηχανικών Βιοϊατρικής Τεχνολογίας Τ.Ε
Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Τμήμα Μηχανικών Βιοϊατρικής Τεχνολογίας Τ.Ε Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/ https://eclass.teiath.gr/courses/tio101/
Συστήματα Επικοινωνιών
Συστήματα Επικοινωνιών Ενότητα 5: Διαμορφώσεις γωνίας Μιχαήλ Λογοθέτης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Παρουσίαση της διαμόρφωσης συχνότητας και
4. ΕΝΙΣΧΥΤΗΣ ΜΕ ΑΜΕΣΗ ΣΥΖΕΥΞΗ
ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΣΤΟΧΟΙ 4. ΕΝΙΣΧΥΤΗΣ ΜΕ ΑΜΕΣΗ ΣΥΖΕΥΞΗ Ημερομηνία:.... /.... /...... Τμήμα:.... Ομάδα: η κατανόηση της αρχής λειτουργίας ενός ενισχυτή δύο βαθμίδων με άμεση σύζευξη η εύρεση της περιοχής
K24 Ψηφιακά Ηλεκτρονικά 9: Flip-Flops
K24 Ψηφιακά Ηλεκτρονικά 9: TEI Πελοποννήσου Σχολή Τεχνολογικών Εφαρμογών Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΟΛΟΓΙΚΟ Περιεχόμενα 1 2 3 Γενικά Ύστερα από τη μελέτη συνδυαστικών ψηφιακών κυκλωμάτων, θα μελετήσουμε
ΕΝΕΡΓΟ CROSSOVER 3 ΔΡΟΜΩΝ
ΕΝΕΡΓΟ CROSSOVER 3 ΔΡΟΜΩΝ Μια απ' τις πρώτες ερωτήσεις που πρέπει ν' απαντήσει κανείς όταν αρχίσει ν' ασχολείται μ' ένα νέο σύστημα ηχείων είναι το είδος των φίλτρων κατανομής συχνοτήτων (crossover) που
Παράδειγμα 14.2 Να βρεθεί ο μετασχηματισμός Laplace των συναρτήσεων
Κεφάλαιο 4 Μετασχηματισμός aplace 4. Μετασχηματισμός aplace της εκθετικής συνάρτησης e Είναι Άρα a a a u( a ( a ( a ( aj F( e e d e d [ e ] [ e ] ( a e (c ji, με a (4.9 a a a [ e u( ] a, με a (4.3 Η σχέση
1) Να σχεδιαστεί και να σχολιαστεί το γενικό ενός πομπού ΑΜ.
5 ο ΚΕΦΑΛΑΙΟ ΕΡΩΤΗΣΕΙΣ ΑΥΤΟΕΞΕΤΑΣΗΣ 1) Να σχεδιαστεί και να σχολιαστεί το γενικό ενός πομπού ΑΜ. Με βάση το γενικό δομικό διάγραμμα ενός πομπού, όπως προέκυψε στο τρίτο κεφάλαιο (σχήμα 5.1.1), η διαδικασία
Τηλεπικοινωνιακά Συστήματα ΙΙ
Τηλεπικοινωνιακά Συστήματα ΙΙ Διάλεξη 3: Εισαγωγή στην Έννοια της Διαμόρφωσης Δρ. Μιχάλης Παρασκευάς Επίκουρος Καθηγητής 1 Ατζέντα 1. Η ανάγκη για διαμόρφωση 2. Είδη διαμόρφωσης 3. Διαμόρφωση με ημιτονοειδές
Ιατρικά Ηλεκτρονικά. Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων
Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/
ΠΕΡΙΓΡΑΦΗ ΕΡΓΑΣΤΗΡΙΑΚΟΥ ΕΞΟΠΛΙΣΜΟΥ
ΠΕΡΙΓΡΑΦΗ ΕΡΓΑΣΤΗΡΙΑΚΟΥ ΕΞΟΠΛΙΣΜΟΥ ΕΡΓΑΣΤΗΡΙΑΚΑ ΔΟΚΙΜΙΑ Στο εργαστήριο ηλεκτρισμού χρησιμοποιούνται εργαστηριακά δοκίμια που είναι ειδικά διαμορφωμένες πλακέτες, στις οποίες έχουν τοποθετηθεί παθητικά
ΠΕΙΡΑΜΑ 4: ΕΞΟΙΚΕΙΩΣΗ ΜΕ ΠΑΛΜΟΓΡΑΦΟ ΚΑΙ ΜΕΤΡΗΣΗ ΕΝΑΛΛΑΣΣΟΜΕΝΩΝ ΣΗΜΑΤΩΝ
ΠΕΙΡΑΜΑ 4: ΕΞΟΙΚΕΙΩΣΗ ΜΕ ΠΑΛΜΟΓΡΑΦΟ ΚΑΙ ΜΕΤΡΗΣΗ ΕΝΑΛΛΑΣΣΟΜΕΝΩΝ ΣΗΜΑΤΩΝ [1] ΘΕΩΡΙΑ ΚΑΙ ΑΡΧΗ ΛΕΙΤΟΥΡΓΙΑΣ ΠΑΛΜΟΓΡΑΦΟΥ Ο παλμογράφος είναι το βασικό εργαστηριακό όργανο για την μέτρηση χαρακτηριστικών ηλεκτρικών
Σχεδίαση Ηλεκτρονικών Κυκλωμάτων RF
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Σχεδίαση Ηλεκτρονικών Κυκλωμάτων F Ενότητα: Φίλτρα και Επαναληπτικές Ασκήσεις Στυλιανός Μυτιληναίος Τμήμα Ηλεκτρονικής, Σχολή
4. Ποιο από τα παρακάτω δεν ισχύει για την ευαισθησία ενός δέκτη ΑΜ; Α. Ευαισθησία ενός δέκτη καθορίζεται από την στάθμη θορύβου στην είσοδό του.
Τηλεπικοινωνικακά Συστήματα Ι - Ενδεικτικές Ερωτήσεις Ασκήσεις Δ.Ευσταθίου Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Κεντρικής Μακεδονίας 1) 1. Ποιο από τα παρακάτω δεν ισχύει για το χρονικό διάστημα που μηδενίζεται
ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ. Εργαστήριο 8 ο. Αποδιαμόρφωση PAM-PPM με προσαρμοσμένα φίλτρα
Τμήμα Πληροφορικής και Τηλεπικοινωνιών ΕΡΓΑΣΤΗΡΙΟ ΑΝΑΛΟΓΙΚΩΝ & ΨΗΦΙΑΚΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ ΨΗΦΙΑΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ Εργαστήριο 8 ο Αποδιαμόρφωση PAM-PPM με προσαρμοσμένα φίλτρα Βασική Θεωρία Σε ένα σύστημα μετάδοσης
Πρακτικές μέθοδοι αποδιαμόρφωσης FM. Ανίχνευση μηδενισμών Διευκρίνιση ολίσθησης φάσης Μετατροπή FM σε ΑΜ Ανάδραση συχνότητας
Αποδιαμόρφωση FM Πρακτικές μέθοδοι αποδιαμόρφωσης FM Ανίχνευση μηδενισμών Διευκρίνιση ολίσθησης φάσης Μετατροπή FM σε ΑΜ Ανάδραση συχνότητας Ανίχνευση μηδενισμών Η έξοδος είναι ανάλογη του ρυθμού των μηδενισμών,
ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α)
ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α) 3.1. ΣΚΟΠΟΣ ΑΣΚΗΣΗΣ Σκοπός της εργαστηριακής αυτής άσκησης είναι η μελέτη της παλμοκωδικής διαμόρφωσης που χρησιμοποιείται στα σύγχρονα τηλεπικοινωνιακά
Άσκηση 5. Τρανζίστορ Διπολικής Επαφής σε συνδεσμολογία Κοινής Βάσης
ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. ΗΛΕΚΤΡΟΝΙΚΑ Ι (ΕΡ) Άσκηση 5 Τρανζίστορ Διπολικής Επαφής σε συνδεσμολογία Κοινής Βάσης Στόχος Ο στόχος της εργαστηριακής άσκησης είναι η μελέτη των
Τηλεπικοινωνικακά Συστήματα Ι - Ενδεικτικές Ερωτήσεις Ασκήσεις 1)
Τηλεπικοινωνικακά Συστήματα Ι - Ενδεικτικές Ερωτήσεις Ασκήσεις Δ.Ευσταθίου Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Κεντρικής Μακεδονίας 1) 1. Ποια από τις παρακάτω συχνότητες δεν εμφανίζεται στην έξοδο ενός
ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΗΣ
ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΗΣ ΔΙΟΔΟΣ (Μάθημα 4 ο 5 ο 6 ο 7 ο ) 1/12 4 o εργαστήριο Ιδανική δίοδος n Συμβολισμός της διόδου n 2/12 4 o εργαστήριο Στατική χαρακτηριστική διόδου Άνοδος (+) Κάθοδος () Αν στην ιδανική
ΑΣΚΗΣΕΙΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΗΣ ΕΡΓΑΣΤΗΡΙΑΚΗ ΗΛΕΚΤΡΟΝΙΚΗ 5 ο ΕΞΑΜΗΝΟ ΗΜΜΥ ΑΣΚΗΣΕΙΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ 1 Ι. ΠΑΠΑΝΑΝΟΣ ΑΠΡΙΛΙΟΣ
Για τη μοντελοποίηση των ταλαντωτών μπορεί να χρησιμοποιηθεί το παρακάτω δομικό διάγραμμα:
7. ΤAΛΑΝΤΩΤΕΣ 7.. Γενικά Οι ταλαντωτές είναι κυκλώματα που, στην έξοδό τους, εμφανίζουν κυματομορφές συγκεκριμένης συχνότητας f o. Οι ταλαντωτές περιλαμβάνουν έναν ενισχυτή και ένα κύκλωμα θετικής ανάδρασης
1η ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ:
ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Ι η ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ: ΣΤΟΙΧΕΙΩΔΕΣ ΤΗΛΕΦΩΝΙΚΟ ΣΥΣΤΗΜΑ Εισαγωγή. Η διεξαγωγή της παρούσας εργαστηριακής άσκησης προϋποθέτει την μελέτη τουλάχιστον των πρώτων παραγράφων του
Επικοινωνίες I FM ΔΙΑΜΟΡΦΩΣΗ. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Τμήμα Πληροφορικής & Επικοινωνιών
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Τμήμα Πληροφορικής & Επικοινωνιών Επικοινωνίες I ΔΙΑΜΟΡΦΩΣΗ ΓΩΝΙΑΣ FM ΔΙΑΜΟΡΦΩΣΗ Σήμα FM Η ακόλουθη εξίσωση δίδει την ισοδύναμη για τη διαμόρφωση συχνότητας έκφραση
ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ & ΣΥΣΤΗΜΑΤΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΣΥΣΤΗΜΑΤΩΝ & ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ & ΣΥΣΤΗΜΑΤΩΝ Διδάσκων : Δημήτρης Τσιπιανίτης Γεώργιος Μανδέλλος
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Τμήμα Πληροφορικής & Επικοινωνιών Επικοινωνίες I SSB Παραγωγή - Αποδιαμόρφωση FM Διαμόρφωση
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Τμήμα Πληροφορικής & Επικοινωνιών Επικοινωνίες I SSB Παραγωγή - Αποδιαμόρφωση FM Διαμόρφωση ΔΙΠΛΟΠΛΕΥΡΙΚΕΣ - ΜΟΝΟΠΛΕΥΡΙΚΕΣ ΕΠΙΚΟΙΝΩΝΙΕΣ ΑΜ 0 f DSB 0 f SSB 0 f SINGLE
ΠΑΡΑΓΩΓΗ ΜΙΚΡΟΚΥΜAΤΩΝ ΜΕ ΔΙΟΔΟ GUNN
ΠΑΡΑΓΩΓΗ ΜΙΚΡΟΚΥΜAΤΩΝ ΜΕ ΔΙΟΔΟ GUNN Το φαινόμενο Gunn, ή το φαινόμενο των μεταφερόμενων ηλεκτρονίων, που ανακαλύφθηκε από τον Gunn το 1963 δηλώνει ότι όταν μια μικρή τάση DC εφαρμόζεται κατά μήκος του
Ανάλυση Ηλεκτρικών Κυκλωμάτων
Ανάλυση Ηλεκτρικών Κυκλωμάτων Κεφάλαιο 3: Συνδυασμός αντιστάσεων και πηγών Οι διαφάνειες ακολουθούν το βιβλίο του Κων/νου Παπαδόπουλου «Ανάλυση Ηλεκτρικών Κυκλωμάτων» ISBN: 9789609371100 κωδ. ΕΥΔΟΞΟΣ:
Πανεπιστήμιο Πατρών Τμήμα Φυσικής Εργαστήριο Ηλεκτρονικής. Ψηφιακά Ηλεκτρονικά
Πανεπιστήμιο Πατρών Τμήμα Φυσικής Ψηφιακά Ηλεκτρονικά Μετατροπή Αναλογικού Σήματος σε και Ψηφιακού Σήματος σε Επιμέλεια Διαφανειών: Δ. Μπακάλης Πάτρα, Φεβρουάριος 2009 Εισαγωγή A/D Ψηφιακή Επεξεργασία
ΔΙΑΜΟΡΦΩΣΗ ΓΩΝΙΑΣ. () t. Διαμόρφωση Γωνίας. Περιεχόμενα:
ΔΙΑΜΟΡΦΩΣΗ ΓΩΝΙΑΣ Περιεχόμενα: Διαμόρφωση Φάσης (PM) και Συχνότητας (FM) Διαμόρφωση FM από Απλό Τόνο - - Στενής Ζώνης - - Ευρείας Ζώνης - - από Πολλούς Τόνους Εύρος Ζώνης Μετάδοσης Κυματομορφών FM Απόκριση