Σχεδίαση Ενσωματωμένου Συστήματος Λήψης Μετρήσεων σε Συστήματα Ηλεκτρικής Ενέργειας
|
|
- Καλυψώ Μήτζου
- 8 χρόνια πριν
- Προβολές:
Transcript
1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Σχεδίαση Ενσωματωμένου Συστήματος Λήψης Μετρήσεων σε Συστήματα Ηλεκτρικής Ενέργειας Διπλωματική εργασία των Ιωάννη Αλέξανδρου Αντώνογλου Χρήστου Τακούδη υπό την επίβλεψη του Αναπληρωτή Καθηγητή κ. Λουκά Πέτρου και του Λέκτορα κ. Γεώργιου Ανδρέου ΘΕΣΣΑΛΟΝΙΚΗ 2011
2 Στην οικογένειά μου και στη Δώρα Ι.-Α. Α. Αφιερωμένο στη γιαγιά μου Χ.Τ. 2
3 Πίνακας Περιεχομένων Πίνακας Περιεχομένων... 3 Λίστα Σχημάτων... 7 Λίστα Πινάκων... 9 Πρόλογος Διάρθρωση εργασίας Εισαγωγή Κίνητρα για την εκπόνηση της παρούσας διπλωματικής Μη παρεμβατική επιτήρηση φορτίων (Non Intrusive Load monitoring NILM) Υπογραφές φορτίων Απαιτήσεις χρήστη Παρούσες λύσεις Χαρακτηριστικά δικής μας διάταξης, σχηματικό διάγραμμα Υλοποίηση του λογισμικού (software) Παρουσίαση εξαρτημάτων Μικροεπεξεργαστής: Atmel ATUC3A3512 πάνω στην πλακέτα Atmel UC3 A3 Xplained Μετατροπέας από αναλογικό σε ψηφιακό (ADC): Analog Devices AD Λοιπά εξαρτήματα: Καλώδιο rs232 to usb, αντιστάσεις και πυκνωτές, διάτρητη πλακέτα, πινοσερές, βραχυκυκλώματα, μετασχηματιστές Ανάλυση κόστους Επιπρόσθετα Εξαρτήματα Επεκτάσιμες Ιδιότητες Κατασκευή συσκευής πραγματικού χρόνου Συμπεράσματα έρευνας αγοράς Συγκρίσεις λύσεων Κόστος Δυνατότητες δειγματοληψίας Ρυθμίσεις που μπορούν να γίνουν Χρησιμότητα
4 3. Ανάλυση Εξαρτημάτων AtmelAT32UC3A Analog Devices AD Αρχές λειτουργίας Σφάλματα Δειγματοληψία Συνδεσμολογία Διαστάσεις AD διάταξη των pins: Συνδέσεις με τον ADC και ανταλλαγή πληροφορίας με αυτόν Αλγοριθμική ανάλυση Λοιπές παράμετροι του AD Σχεδίαση φίλτρων εισόδου Σύνδεση με τον ATMEL UC3 A3 XPLAINED Υλοποίηση λογισμικού Εισαγωγή Πρόλογος Περιορισμοί και προβλήματα Περιγραφή αρχιτεκτονικής λογισμικού Συστατικά Μέρη του Λογισμικού του Μικροελεγκτή Γενική Περιγραφή Μετρητής Πραγματικού Χρόνου Επικοινωνία μέσω θύρας USB Ανάλυση του λογισμικού διαχείρισης της θύρας USB Εισαγωγή στο πρωτόκολλο USB (Universal Serial Bus) Γενικά Τύποι πακέτων USB Άκρα και ροές
5 Κατηγορίες επικοινωνίας Περιγραφείς Πακέτα κατάστασης αιτήσεις τύπου Standard Ανάλυση USB Firmware Ανάλυση λογισμικού μικροελεγκτή Επανεκκίνηση του Μετρητή Πραγματικού Χρόνου Υπολογισμός Χρονικής Στιγμής λήψης των δειγμάτων Επικοινωνία με τον A/D converter για την δειγματοληψία του σήματος Χρήση Ψηφιακού Φίλτρου Υπολογισμός των τιμών Vrms, S και pf Έλεγχος των σημαιών συγχρονισμού Περιγραφή του Αλγορίθμου της Κυρίως Διεργασίας Ανάλυση Λογισμικού Ηλεκτρονικού Υπολογιστή Γενικής Χρήσης Λογισμικό λήψης και αποθήκευσης τιμών Λογισμικό διεπαφής (GUI) Περιγραφή Κλάση Κυρίως Παραθύρου Κλάση Διαχείρισης Θύρας Κλάση Απεικόνισης τιμών Επέκταση Λογισμικού Και Υπολογισμός Διακριτού Μετασχηματισμού Fourier Γενική Περιγραφή Aκέραιοι Σταθερής Υποδιαστολής (Fixed Point Integers) Yπολογισμός Διακριτού Μετασχηματισμού Fourier (DFT) Υπολογισμός Τετραγωνικής Ρίζας Lookup Tables (LUT) Αλγοριθμική Επέκταση Λογισμικού Αποτελέσματα
6 6.1. Κατασκευή Συμπεράσματα Μελλοντική Έρευνα Παράρτημα 1: Βιβλιογραφία Παράρτημα 2: Σχηματικό διάγραμμα τυπωμένου κυκλώματος
7 Λίστα Σχημάτων Σχήμα 1 Ρεύμα εκκίνησης και στάσιμης κατάστασης λάμπας ενεργειακής απόδοσης Α Σχήμα 2 Αρμονικό περιεχόμενο λάμπας ενεργειακής απόδοσης Α Σχήμα 3 Ρεύμα εκκίνησης και στάσιμης κατάστασης blender Σχήμα 4 Αρμονικό περιεχόμενο blender Σχήμα 5 Probe μέτρησης ρεύματος αγωγού Σχήμα 6 Fluke 1760 Three Phase Power Quality Recorder Σχήμα 7 Trinity ORACLE portable power analysis Σχήμα 8 Σχηματικό διάγραμμα διάταξης Σχήμα 9 Block diagram του AT32UC3A Σχήμα 10 Frame μετάδοσης Σχήμα 11 Φόρμα μετάδοσης RS Σχήμα 12 Block diagram του USB τμήματος του AVR32UC Σχήμα 13 Σύνδεση τμήματος USB με γραμμή μεταφοράς Σχήμα 14 Block diagram του AD Σχήμα 15 Καταχωρητής διαδοχικών προσεγγίσεων Σχήμα 16 Μορφή συμπληρώματος του δύο Σχήμα 17 Σφάλμα κέρδους Σχήμα 18 Διαστάσεις AD Σχήμα 19 Διάταξη των pins του AD Σχήμα 20 Διαδικασία λήψης τιμών με χρήση του interface Σχήμα 21 Αλγόριθμος επικοινωνίας με τον AD Σχήμα 22 Χαμηλοπερατό φίλτρο στις εισόδους του AD Σχήμα 23 Μορφή χαμηλοπερατού φίλτρου Σχήμα 24 Διάγραμμα Bode ολικής συνάρτησης μεταφοράς Σχήμα 25 Εικόνα της πλακέτας ATMEL UC3 A3 XPLAINED Σχήμα 26 Επεξήγηση των μελών της πλακέτας ATMEL UC3 A3 XPLAINED
8 Σχήμα 27 Επικοινωνία με RS Σχήμα 28 Επικοινωνία με USB Σχήμα 29 Στάδιο μεταφοράς δεδομένων έκδοση πακέτων IN και OUT Σχήμα 30 Στάδιο κατάστασης επικύρωση αποστολής πακέτου IN Σχήμα 31 Στάδιο κατάστασης επικύρωση αποστολής πακέτου OUT Σχήμα 32 Ιεραρχία περιγραφέων Σχήμα 33 Διακλαδώσεις περιγραφέων διαμορφώσεων Σχήμα 34 Διασύνδεση USB Device Stack με την Εφαρμογή Σχήμα 35 Μορφή δεδομένων στον απομωνωτή Σχήμα 36 Αποθήκευση τιμών στον απομονωτή Σχήμα 37 Αλλαγή σειράς των bytes Σχήμα 38 Αναγνώριση θυρών υπολογιστή Σχήμα 39 Επιλογή θύρας Σχήμα 40 Επιλογή σημείου αποθήκευσης τιμών Σχήμα 41 Παράθυρο ενημέρωσης χρόνου περιόδων μέτρησης Σχήμα 42 Εικόνα γραφικού περιβάλλοντος Σχήμα 43 Παράδειγμα ακεραίου σταθερής υποδιαστολής Σχήμα 44 FFT 8 σημείων διαίρεσης στο χρόνο με βάση το Σχήμα 45 Διάγραμμα Πεταλούδας (Butterfly Diagramm) Σχήμα 46 Ακέραιος σταθερής υποδιαστολής 4bits ακεραίου και 11bits δεκαδικού μέρους Σχήμα 47 Γραφικό περιβάλλον με προσθήκη ανάλυσης φάσματος Σχήμα 48 Μορφή πλακέτας Σχήμα 49 Τελική μορφή τυπωμένου κυκλώματος Σχήμα 50 Μορφή συνολικής διάταξης
9 Λίστα Πινάκων Πίνακας 1 Έξοδα συσκευής Πίνακας 2 Έξοδα prorotyping Πίνακας 3 Λοιπά έξοδα Πίνακας 4 Έξοδα συσκευής Πίνακας 5 Έξοδα prototyping Πίνακας 6 Λοιπά έξοδα Πίνακας 7 Εξήγηση λειτουργίας των pins [4] Πίνακας 8 Αντιστοίχηση των pins των port1 και port Πίνακας 9 Αντιστοίχηση των pins των port3 και port Πίνακας 10 Αίτηση περιγραφέα συσκευής Πίνακας 11 Αποστολή περιγραφέα συσκευής (1) Πίνακας 12 Αποστολή περιγραφέα συσκευής (2) Πίνακας 13 Συναλλαγή κατάστασης Πίνακας 14 Γενική φόρμα σύνθεσης περιηραφέα Πίνακας 15 Φόρμα περιγραφέων συσκευών Πίνακας 16 Φόρμα περιγραφέων διαμορφώσεων Πίνακας 17 Φόρμα περιγραφέων διεπαφών Πίνακας 18 Φόρμα περιγραφέων άκρων Πίνακας 19 Προσδιορισμός υποστηριζόμενων γλωσσών Πίνακας 20 Φόρμα περιγραφέων ακολουθιών Πίνακας 21 Φόρμα πακέτου ρύθμισης Πίνακας 22 Αιτήσεις Standard Device Πίνακας 23 Φόρμα αίτησης Get Status (αίτηση Standard Device) Πίνακας 24 Αιτήσεις Standard Interface Πίνακας 25 Φόρμα αίτησης windex Πίνακας 26 Αιτήσεις Standard Endpoint
10 Πίνακας 27 Φόρμα αίτησης windex Πίνακας 28 Φόρμα αίτησης Get Status (αίτηση Standard Endpoint)
11 Πρόλογος Η διπλωματική αυτή εργασία είχε ως στόχο την ανάπτυξη ενός ενσωματωμένου συστήματος το οποίο θα περιλάμβανε τη δυνατότητα δειγματοληψίας των ηλεκτρικών μεγεθών μιας εγκατάστασης (ρεύμα και τάση). Το έργο της κατασκευής της διάταξης αυτής εκτεινόταν από τον προσδιορισμό των εξαρτημάτων και τη μελέτη των σχέσεων κόστους και δυνατοτήτων μέχρι την επεξεργασία των λαμβανόμενων τιμών με χρήση μικροεπεξεργαστή και την αποστολή τους σε μια εύκολα επεξεργάσιμη μορφή σε ηλεκτρονικό υπολογιστή, συνοδευμένη και από ένα κατάλληλο γραφικό περιβάλλον. Η παρούσα διπλωματική αποτέλεσε μια τομή ανάμεσα στο software και το hardware, ενώ συνδύασε και γνώσεις ενεργειακών μεγεθών με δυνατότητες που προσφέρονται με προγραμματισμό ηλεκτρονικών εξαρτημάτων. Ο συνδυασμός όλων των παραπάνω τομέων που σήμαινε ανάγκες επικοινωνίας με ένα διευρυμένο αριθμό ατόμων, μαζί με τις δεδομένες ιδιαιτερότητες των εργασιών που σχετίζονται με το hardware και περιλαμβάνουν διαδικασίες επικοινωνίας με εταιρίες παραγωγής εξαρτημάτων και παραγγελίας δοκιμαστικών εξαρτημάτων αποτέλεσε μια διαδικασία απαιτητική αλλά ταυτόχρονα πρωτότυπη και ενδιαφέρουσα. Εν τέλει μπορούμε να πούμε ότι αποκτήσαμε και εφαρμόσαμε γνώσεις πάνω και στους δυο τομείς ηλεκτρικής ενέργειας και ηλεκτρονικής και υπολογιστών και διευρύναμε τις γνώσεις μας πάνω σε θέματα ανάπτυξης ενσωματωμένων συστημάτων, κυρίως με την προοπτική της εφαρμογής τους σε σύγχρονα ενεργειακά ζητήματα. Στο σημείο αυτό ευχαριστούμε τους επιβλέποντες καθηγητές μας κυρίους Λουκά Πέτρου και Γιώργο Ανδρέου που μας εμπιστεύθηκαν την εργασία αυτή καθώς και για την καθοδήγηση και τις συμβουλές που μας έδωσαν. Ιδιαίτερες ευχαριστίες θέλουμε να απευθύνουμε στον υπεύθυνο του εργαστηρίου Αρχιτεκτονικής Υπολογιστών και Συστημάτων Γιώργο Βουκαλή για τις διάφορες διευκολύνσεις που μας παρείχε, στους προπτυχιακούς φοιτητές Πέτρο Αγγελίδη και Πάρη Χουρτσίδη για τις πολύ χρήσιμες γνώσεις που μας παρείχαν καθώς και τα μέλη της ρομποτικής ομάδας του τμήματος ΗΜΜΥ για τη «φιλοξενία» και τις συμβουλές τους. Πάνω από όλα θα θέλαμε να αφιερώσουμε την παρούσα διπλωματική εργασία στις οικογένειές μας για τη στήριξη που μας παρέχουν διαρκώς και στους φίλους μας που μας υπέμεναν τόσα χρόνια 11
12 Διάρθρωση εργασίας Το πρώτο κεφάλαιο αποτελεί μια εισαγωγή στο ευρύτερο πλαίσιο αναγκών της σύγχρονης αγοράς ηλεκτρικής ενέργειας, στο πώς αυτές οδηγούν στην αναγκαιότητα της διάταξης που αποτέλεσε το αντικείμενο της παρούσας εργασίας. Επίσης αναφέρεται στη θεωρητική ανάλυση του προβλήματος που καλείται να επιλύσει, καθώς και στα αναγκαία χαρακτηριστικά της διάταξης αυτής. Το δεύτερο κεφάλαιο αποτελεί την ανάλυση των απαιτήσεων χρηστών και στο πώς αυτές οδήγησαν μαζί με τους διάφορους περιορισμούς που υπήρχαν στα εξαρτήματα που επιλέχθηκαν. Ακόλουθα γίνεται μια ανάλυση κόστους και βγαίνουν ορισμένα συμπεράσματα από τη σύγκριση των επιλογών που πραγματοποιήθηκαν με τις υπάρχουσες επιλογές της αγοράς. Στο τρίτο κεφάλαιο γίνεται μια εξήγηση των χαρακτηριστικών των χρησιμοποιούμενων εξαρτημάτων και το πώς αυτά επηρεάζουν τη λειτουργία τους έτσι ώστε να γίνει κατανοητός ο τρόπος λειτουργίας τους αναφορικά με την διεκπεραίωση των απαιτούμενων διεργασιών. Το τέταρτο κεφάλαιο περιλαμβάνει μια ανάλυση της συνδεσμολογίας από την πλευρά του hardware, δηλαδή το πώς και γιατί συνδέονται μεταξύ τους τα διάφορα εξαρτήματα. Παράλληλα αποτυπώνει τις αντίστοιχες τελικές προδιαγραφές της διάταξης, όπως είναι η καταναλισκόμενη ισχύς και η απόσβεση που εισάγεται σε αρμονικές του δειγματοληπτούμενου σήματος. Στο πέμπτο κεφάλαιο πραγματοποιείται η αντίστοιχη ανάλυση στον τομέα του λογισμικού. Αυτή περιλαμβάνει την αλγοριθμική ανάλυση του λογισμικού που αναπτύχθηκε στο μικροεπεξεργαστή, την επεξήγηση της λειτουργίας της μεταφοράς δεδομένων με τη βοήθεια μιας αντίστοιχης ανάλυσης και την παρουσίαση βασικών κομματιών του κώδικα από την πλευρά του μικροεπεξεργαστή και του ηλεκτρονικού υπολογιστή. Επίσης πραγματοποιείται μια παρουσίαση του γραφικού περιβάλλοντος που υλοποιήθηκε με αναφορά στα βασικά σημεία ανάπτυξής του. Τελικά, παρουσιάζεται μια επέκταση του λογισμικού που υλοποιήθηκε για την ενσωμάτωση της ανάλυσης των σημάτων στο πεδίο της συχνότητας. Στο έκτο κεφάλαιο παρουσιάζονται η τελική κατασκευή της διάταξης, τα συμπεράσματα και προσδιορίζονται τα ζητήματα που μπορούν να αποτελέσουν αντικείμενο μελλοντικής έρευνας. 12
13 1. Εισαγωγή 1.1. Κίνητρα για την εκπόνηση της παρούσας διπλωματικής Προκειμένου να γίνουν κατανοητά τα κίνητρα εκπόνησης της παρούσας διπλωματικής εργασίας κρίνουμε σκόπιμο να αναφερθούμε αρχικά στο ευρύτερο πλαίσιο των αναγκών της σύγχρονης αγοράς ηλεκτρικής ενέργειας. Η αυξανόμενη ζήτηση ηλεκτρικής ενέργειας μαζί με άλλους παράγοντες που αφορούν τη δημιουργία αυτόνομων συστημάτων ηλεκτρικής ενέργειας καθιστούν αναγκαίες όχι μόνο επενδύσεις στην παραγωγή νέων μονάδων παραγωγής ηλεκτρικής ενέργειας αλλά και βελτιώσεις στη λειτουργία του συστήματος [1]. Ορισμένες βελτιώσεις αφορούν την αντιστάθμιση άεργης ισχύος σε επίπεδο μέσης και υψηλής τάσεως, σε εγκαταστάσεις καταναλωτών και σε δημόσια έργα και στην κατασκευή νέων κυκλωμάτων μεταφοράς. Από τις παραπάνω βελτιστοποιήσεις, εμείς οφείλουμε αρχικά να εστιάσουμε σε βελτιώσεις που επιδέχεται το επίπεδο της διανομής της ηλεκτρικής ενέργειας ώστε να γίνει κατανοητό το πλαίσιο γύρω από το αντικείμενο της διπλωματικής αυτής. Οι βελτιώσεις αυτές αφορούν σε γενικές γραμμές στην ομαλοποίηση της καμπύλης κατανάλωσης και στοχεύουν στην ελαχιστοποίηση φαινομένων διακεκομμένης ή ελλιπούς τροφοδότησης φορτίων ή και καθολικής διακοπής ρεύματος με απώτερο σκοπό τη βελτίωση της αξιοπιστίας και ευστάθειας του συστήματος με αποτέλεσμα τον περιορισμό οικονομικών απωλειών και αποδοτικότερη χρήση της ενέργειας. Στα πλαίσια της βελτιστοποίησης της λειτουργίας των δικτύων διανομής ηλεκτρικής ενέργειας, μια πιθανή μέθοδος είναι ενιαίες ομάδες καταναλωτών να δημιουργούνται ανά τοπικές θέσεις και να επιζητείται η ομαλοποίηση της ημερήσιας και συνολικής κατανάλωσής τους. Σε αρχικό στάδιο, απαραίτητο είναι να συλλεχθούν τα δεδομένα κατανάλωσης που αφορούν τη συνολική κατανάλωση ενέργειας του κάθε καταναλωτή. Συνεπώς, αναγκαίο είναι να εγκατασταθούν μετρητικές διατάξεις στην είσοδο της παροχής του καταναλωτή ώστε να είναι δυνατή η επεξεργασία των δεδομένων των μετρήσεων. Ταυτόχρονα με τις μετρήσεις αυτές, απαραίτητοι είναι και πράκτορες ευφυούς λογισμικού, οι οποίοι θα επεξεργάζονται τα δεδομένα που θα προκύπτουν από τις μετρήσεις αυτές. Ο ευφυής πράκτορας είναι ένα ευφυές λογισμικό, το οποίο εγκαθίσταται στους υπολογιστές των μελών της ομάδας. Το λογισμικό αυτό έχει τη δυνατότητα να παρατηρεί παραμέτρους της κατανάλωσης και τελικά να παρεμβαίνει σε αυτές σύμφωνα με κανόνες που έχουν προσδιοριστεί εκ των προτέρων ως επιθυμητοί. Συνεπώς καταλήγουμε στο ότι ο συνδυασμός μετρητικών διατάξεων και πρακτόρων ευφυούς λογισμικού μπορεί να παρατηρήσει «συνήθειες» του καθενός από τους καταναλωτές. Στο πλαίσιο αυτό είναι δυνατόν να παρατηρηθούν ακόμα και οι συσκευές που λειτουργούν σε κάθε καταναλωτή έτσι ώστε σε ένα απώτερο στάδιο η κατανάλωσή τους να ελαττώνεται σύμφωνα με τις εκάστοτε απαιτήσεις. Αυτό γίνεται με τη μη 13
14 παρεμβατική επιτήρηση φορτίων έτσι ώστε να καταγραφούν και στη συνέχεια να παρατηρούνται οι υπογραφές των φορτίων των διαφόρων συσκευών Μη παρεμβατική επιτήρηση φορτίων (Non Intrusive Load monitoring NILM) Υπογραφές φορτίων Συνήθως για τη μέτρηση ηλεκτρικών μεγεθών μιας συσκευής παρεμβάλλεται μεταξύ συσκευής και τροφοδοσίας κάποιο μετρητικό όργανο για την παρατήρηση της λειτουργίας της συσκευής αυτής. Η μέθοδος αυτή ονομάζεται παρεμβατική και εμφανίζει δυσκολίες στην αποτύπωση παραμέτρων της κατανάλωσης ενός καταναλωτή όπως είναι η συνολική ενέργεια που καταναλώνεται και το ποιες συσκευές είναι σε λειτουργία, ενώ εκτός των άλλων απαιτεί την τοποθέτηση μεγάλου αριθμού μετρητικών διατάξεων και εμφανίζει τα προβλήματα που εμφανίζει γενικά η παρεμβολή σε ένα κύκλωμα για τη μέτρηση χαρακτηριστικών του. Από την άλλη πλευρά, η μη παρεμβατική επιτήρηση φορτίων (NILM) παρουσιάζει διαφορετική λογική λειτουργίας. Σύμφωνα με τη διαδικασία αυτή, πραγματοποιούνται μετρήσεις σε ένα κεντρικό σημείο, όπως είναι ο Γενικός Πίνακας Διανομής μιας εγκατάστασης. Πιο συγκεκριμένα είναι δυνατόν να λαμβάνονται τιμές ρεύματος και τάσης ώστε να προσδιορίζεται η ενέργεια που καταναλώνεται. Οι μετρητές που πραγματοποιούν αυτή τη μη παρεμβατική επιτήρηση φορτίων ονομάζονται μη παρεμβατικοί επιτηρητές φορτίου. Την παραπάνω λειτουργία μπορούν να την επιτελέσουν μετρητές οι οποίοι ονομάζονται έξυπνοι μετρητές [7]. Τα χαρακτηριστικά ενός τέτοιου μετρητή είναι ότι πραγματοποιεί μετρήσεις σε ψηφιακή μορφή δειγματοληπτώντας τις τιμές ρεύματος και τάσης. Το τελικό αποτέλεσμα είναι να έχουμε μια πραγματικού χρόνου άποψη για την κατανάλωση, η οποία είναι πιο ακριβής από αυτήν που προκύπτει από τους υπάρχοντες μετρητές και περιλαμβάνει δεδομένα ψηφιακά, άρα και εύκολα στην επεξεργασία, αποθήκευση και μεταφορά τους. Τα κυριότερα πλεονεκτήματα που προκύπτουν [1] είναι ότι: οι λογαριασμοί μπορούν να είναι πιο ακριβείς καθώς μπορεί να υπάρξει διαχωρισμός ανάμεσα στην ισχύ και την ενέργεια. Είναι δηλαδή δυνατόν η χρέωση να αλλάζει ευκολότερα ανάλογα με το πότε καταναλώνεται η ενέργεια ή το τι συνθήκες υπάρχουν στο δίκτυο κατά την κατανάλωση ενέργειας. υπάρχει μεγαλύτερη και πιο αναλυτική πρόσβαση στα δεδομένα κατανάλωσης είτε από την πλευρά του χρήστη είτε από την πλευρά της παραγωγής και διανομής ενέργειας. Αυτό ισχύει είτε κατά την κατανάλωση της ενέργειας είτε κατά την παραγωγή της από την πλευρά όπου έχει εγκατασταθεί ο έξυπνος μετρητής, ο οποίος μπορεί δηλαδή να δώσει πολύ χρήσιμα στοιχεία αν έχει εγκατασταθεί σε μονάδες παραγωγής ενέργειας από ανανεώσιμες πηγές. Συνεχίζοντας με την έννοια της μη παρεμβατικής επιτήρησης φορτίων, στα πλεονεκτήματά της είναι ο περιορισμός των συσκευών που απαιτούνται για την πραγματοποίηση της 14
15 μέτρησης, καθώς απαραίτητη είναι μια συσκευή που θα τοποθετηθεί σε κεντρικό σημείο της εγκατάστασης, η συνεπαγόμενη ευκολία εγκατάστασης και το μειωμένο κόστος. Παράλληλα, η κεντρική φιλοσοφία λειτουργίας προσδίδει και άλλα επιθυμητά χαρακτηριστικά όπως είναι η ευκολότερη συγκέντρωση και επεξεργασία των δεδομένων. Η μη παρεμβατική επιτήρηση φορτίου μπορεί να χρησιμοποιηθεί και για κάτι παραπάνω από τον προσδιορισμό της ισχύος που καταναλώνεται και αυτό είναι ο προσδιορισμός του ποιες συσκευές λειτουργούν. Αυτό μπορεί να γίνει με τη βοήθεια της έννοιας της υπογραφής φορτίου. Η υπογραφή φορτίου είναι η ηλεκτρική συμπεριφορά μιας συσκευής και γενικότερα ενός φορτίου όταν λειτουργεί. Πιο συγκεκριμένα, χαρακτηριστικά όπως η τάση, το ρεύμα, το αρμονικό περιεχόμενο και η ενεργή με την άεργο ισχύ, τόσο στη στάσιμη κατάσταση λειτουργίας όσο και σε μεταβατικές καταστάσεις διαφοροποιούν μια συσκευή από την άλλη, ακόμα και όταν συσκευές έχουν παρόμοια χαρακτηριστικά όπως ίσες ονομαστικές ισχύες. Τονίζουμε εδώ ότι ο προσδιορισμός των συσκευών που λειτουργούν είναι δυνατό να πραγματοποιείται ακόμα και όταν λειτουργούν πολλές συσκευές ταυτόχρονα. Παρακάτω παρουσιάζουμε [2] το ρεύμα εκκίνησης και στάσιμης κατάστασης καθώς και το αντίστοιχο αρμονικό περιεχόμενο δυο συσκευών, μιας λάμπας ενεργειακής απόδοσης Α (είναι η πιο ενεργειακά αποδοτική κατηγορία από λάμπες) και ενός blender. Σχήμα 1 Ρεύμα εκκίνησης και στάσιμης κατάστασης λάμπας ενεργειακής απόδοσης Α 15
16 Σχήμα 2 Αρμονικό περιεχόμενο λάμπας ενεργειακής απόδοσης Α Σχήμα 3 Ρεύμα εκκίνησης και στάσιμης κατάστασης blender 16
17 Σχήμα 4 Αρμονικό περιεχόμενο blender Σε γενικές γραμμές, το αρμονικό περιεχόμενο μπορεί να εξαρτηθεί από διάφορους παράγοντες πέρα από τα ονομαστικά χαρακτηριστικά όπως είναι το ποσοστό κατά το οποίο το φορτίο είναι ωμικό ή όχι ή παράγοντες που αφορούν τον τρόπο λειτουργίας μιας συσκευής [2]. Ενδεικτικά αναφέρουμε ότι μια λάμπα ενεργειακής απόδοσης Α διαρρέεται από ρεύμα ανά τακτά χρονικά διαστήματα και όχι συνεχώς, κάτι που οφείλεται στα ηλεκτρονικά ισχύος που υπάρχουν μέσα στη λάμπα, οπότε τα ενεργειακά χαρακτηριστικά της μπορούν να καταστούν διακριτά. Γενικά συσκευές που διαθέτουν πολλά ηλεκτρονικά ισχύος όπως ένα laptop διαθέτουν έντονο αρμονικό περιεχόμενο κατά την εκκίνησή τους. Σε άλλες περιπτώσεις, συσκευές που διαθέτουν κινητήρα (πχ φραπεδιέρα) έχουν αναλογικά εντονότερο αρμονικό περιεχόμενο από συσκευές που έχουν ωμικό φορτίο (όπως συσκευές που παράγουν θερμότητα πχ ένα ηλεκτρικό σίδερο). Καταλήγουμε λοιπόν στο συμπέρασμα ότι εάν ένας πράκτορας ευφυούς λογισμικού έχει γνώση των υπογραφών των φορτίων των συσκευών που υπάρχουν σε μια εγκατάσταση, θα μπορούσε να αναγνωρίζει το ποιες συσκευές είναι σε λειτουργία μέσα από την αναγνώριση των υπογραφών των συσκευών, ώστε μέσα από μεταβατικά κυρίως φαινόμενα να αναγνωρίζει το ποιες συσκευές και πότε τίθενται σε λειτουργία. Κατόπιν η γνώση αυτή, που είναι εύκολο να συγκεντρωθεί και να υποστεί επεξεργασία, είναι δυνατόν να σταλεί στο διαχειριστή του δικτύου διανομής, για τη βελτιστοποίηση της λειτουργίας του. Η βελτιστοποίηση αυτή αφορά τη συλλογή δεδομένων και τη δημιουργία βάσεων δεδομένων με καταναλωτικές συνήθειες για βελτίωση λειτουργίας δικτύου, αλλά μπορεί και σε ένα απώτερο πλαίσιο να οδηγήσει σε μια κατάσταση όπου θα ρυθμίζονται το ποιες συσκευές θα λειτουργούν ανάλογα με τις ανάγκες που παρουσιάζονται. Είδαμε λοιπόν τα πλεονεκτήματα της μη παρεμβατικής επιτήρησης φορτίων, τη χρησιμότητα των έξυπνων μετρητών και το πώς είναι επιθυμητός ο εντοπισμός των αρμονικών των στοιχείων τάσης και ρεύματος ώστε να αναγνωριστεί το ποιες συσκευές τίθενται σε λειτουργία. Καταλήξαμε δηλαδή στα χαρακτηριστικά που θα έπρεπε να 17
18 διαθέτει μια συσκευή ώστε να μπορούν να πραγματοποιηθούν μετρήσεις, οι οποίες μπορούν να συμβάλλουν σε βελτιώσεις στο επίπεδο διανομής του δικτύου στο πλαίσιο των ζητημάτων αγοράς ηλεκτρικής ενέργειας που αναλύσαμε παραπάνω. Στο επόμενο κεφάλαιο θα αναλύσουμε το πώς από τα παραπάνω καταλήγουμε στις απαιτήσεις και στη φιλοσοφία κατασκευής μιας τέτοιας διάταξης Απαιτήσεις χρήστη Αναλύοντας τις απαιτήσεις μιας συσκευής που θα μπορούσε να αποτελέσει μέρος της παραπάνω διαδικασίας καταλήγουμε σε ορισμένα επιθυμητά χαρακτηριστικά. Το πρώτο ζήτημα είναι η διατήρηση της μη παρεμβατικότητας στις μετρήσεις για τους λόγους που αναφέραμε παραπάνω. Τα ηλεκτρικά μεγέθη που θα πρέπει να γνωρίζουμε είναι η τάση και το ρεύμα που διαπερνούν το μετρούμενο κύκλωμα. Η τάση είναι ένα μέγεθος που είναι δυνατόν να μετρηθεί με τοποθέτηση μετρητικής διάταξης παράλληλα με το κύκλωμα, ωστόσο το ρεύμα για να μετρηθεί πρέπει να παρεμβληθεί μετρητική διάταξη εν σειρά με το φορτίο. Προκειμένου λοιπόν να μην υπάρχει παρέμβαση στο κύκλωμα είναι δυνατόν να χρησιμοποιηθούν ειδικά probes, που λειτουργούν ως μετασχηματιστές οι οποίοι μπορούν να αναπτύξουν τάση ανάλογη της τάσης ή ρεύμα ανάλογο του ρεύματος που διαρρέει έναν αγωγό. Τα probes αυτά έχουν κυκλικό σχήμα που «αγκαλιάζει» τον αγωγό που τροφοδοτεί με ενέργεια την ή τις συσκευές της εγκατάστασης που είναι σε λειτουργία. Παρακάτω βλέπουμε σχηματικά πώς ένα τέτοιο probe μπορεί να διαβάσει το ρεύμα που διαρρέει έναν αγωγό. Σχήμα 5 Probe μέτρησης ρεύματος αγωγού Οι τιμές των τάσεων και ρευμάτων που αναπτύσσουν τα probes αυτά είναι δυνατόν να υποστούν δειγματοληψία ώστε γνωρίζοντας το λόγο μετασχηματισμού των μετασχηματιστών που περιέχουν να έχουμε μια σαφή άποψη για τις τιμές των μεγεθών αυτών. Βέβαια στα probes που αναπτύσσουν ρεύμα ανάλογο του ρεύματος ενός αγωγού πρέπει η τιμή του ρεύματος να μετατραπεί σε τάση. Σημειώνουμε εδώ ότι η κατασκευή ή παροχή των probes δεν αποτελεί τόσο μέρος της συσκευής όσο ο τρόπος με τον οποίο θα πραγματοποιηθούν οι μετρήσεις και ο υπολογισμός των πράξεων. Συνεπώς στην παρούσα διπλωματική η μετατροπή τιμών τάσεων και ρευμάτων σε αποδεκτά επίπεδα τάσης έχει θεωρηθεί, σιωπηρώς, δεδομένη και δεν έχει μελετηθεί περαιτέρω. 18
19 Το δεύτερο ζήτημα είναι η συχνότητα της δειγματοληψίας. Όπως αναφέραμε και παραπάνω, εκτός από το καταναλισκόμενο ρεύμα με τη συνεπαγόμενη μεταβολή στην ενεργό και άεργο ισχύ, σημαντικό μέρος για την αναγνώριση υπογραφών φορτίου διαδραματίζει και το μεταβατικό φαινόμενο. Κατά τη διάρκεια του μεταβατικού φαινομένου μπορεί να εμφανιστεί αρμονικό περιεχόμενο, όπως είδαμε στα παραπάνω διαγράμματα, ακόμα και σε συχνότητες 2.5 με 3 KHz, συνεπώς η συχνότητα δειγματοληψίας θα πρέπει να είναι τουλάχιστον υπερδιπλάσια έτσι ώστε το περιεχόμενο αυτό να είναι δυνατόν να παρατηρηθεί και να καταχωρηθεί. Το τρίτο ζήτημα είναι η λήψη, αποθήκευση και μεταφορά των δεδομένων. Μια δειγματοληψία της τάξης των μερικών KHz σε δυο μεγέθη για μεγάλο χρονικό διάστημα μπορεί να δημιουργήσει μεγάλο όγκο δεδομένων. Η συσκευή θα πρέπει να είναι σε θέση να αναγνωρίσει μεταβατικά φαινόμενα έτσι ώστε κατά τη διάρκειά τους να δειγματοληπτεί με μεγάλες συχνότητες, ωστόσο κατά την εμφάνιση στάσιμης κατάστασης λειτουργίας οφείλει να δειγματοληπτεί με μικρότερη συχνότητα, αφού η αναγνώριση των συσκευών έχει ήδη γίνει, ενώ επιθυμούμε να περιορίσουμε τον όγκο των δεδομένων κατανάλωση της εγκατάστασης. Είναι δυνατό βέβαια η συχνότητα να διατηρείται σταθερή και ο περιορισμός του όγκου των δεδομένων να γίνεται μεταγενέστερα. Σημειώνουμε ότι αναφερόμαστε στον τρόπο συλλογής δεδομένων προτού αυτά σταλούν για επεξεργασία από έναν πράκτορα ευφυούς λογισμικού, ο οποίος θα πάρει τις ανάλογες αποφάσεις. Δεν αποτελεί δηλαδή μέρος της συσκευής η υλοποίηση του εν λόγω πράκτορα λογισμικού. Το γεγονός αυτό μας οδηγεί στο τέταρτο ζήτημα, το οποίο είναι και αυτό της επικοινωνίας. Ο πράκτορας λογισμικού είναι δεδομένο ότι θα υλοποιηθεί σε έναν ηλεκτρονικό υπολογιστή, οπότε ανακύπτει το θέμα της αποστολής δεδομένων από τη συσκευή προς αυτόν. Η αποστολή αυτή οφείλει να είναι πραγματικού χρόνου, δηλαδή να γίνεται ταυτόχρονα με τη διαδικασία δειγματοληψίας ή τουλάχιστον να γίνεται σε πολύ μικρό χρονικό διάστημα εν συγκρίσει με το σύνηθες χρονικό διάστημα μεταξύ της ενεργοποίησης δυο διαφορετικών συσκευών σε μια εγκατάσταση. Επίσης και ο ίδιος ο τρόπος αποστολής παίζει ρόλο καθώς τίθεται και η ανάγκη τα δεδομένα να ανακύπτουν σε λογισμικό του υπολογιστή που μπορεί να τα επεξεργαστεί εύκολα και να πραγματοποιήσει τους κατάλληλους υπολογισμούς σύμφωνα με τον πράκτορα ευφυούς λογισμικού. Ορισμένα ακόμα ζητήματα που υφίστανται είναι η χρηστικότητα και το μέγεθος της συσκευής, το κόστος ανάπτυξής της, η δυνατότητα επέκτασης των μετρήσεων σε τριφασικές εγκαταστάσεις και η μικρή κατανάλωση ενέργειας της ίδιας της συσκευής. Στη συνέχεια θα εντοπίσουμε τα χαρακτηριστικά αυτά σε μια συσκευή που ήδη υπάρχει και που έχει ήδη χρησιμοποιηθεί για την παρατήρηση υπογραφών φορτίων μέσω μη παρεμβατικής επιτήρησης φορτίου. Η συσκευή αυτή χρησιμοποιήθηκε εκτός των άλλων για το σαφέστερο προσδιορισμό ορισμένων χαρακτηριστικών της εκπονημένης διάταξής μας και την επαλήθευση της λειτουργίας της. 19
20 1.4. Παρούσες λύσεις Η συσκευή που χρησιμοποιήθηκε για τους παραπάνω σκοπούς ήταν η Fluke 1760 Three Phase Power Quality Recorder. Όπως φαίνεται από το όνομά του, η συσκευή αυτή είναι τριφασικός μετρητής ποιότητας ισχύος και φαίνεται στην παρακάτω εικόνα. Σχήμα 6 Fluke 1760 Three Phase Power Quality Recorder Η συσκευή αυτή διαθέτει [9] 8 εισόδους κανάλια για μέτρηση τάσεων και ρευμάτων μαζί με τους αντίστοιχους ακροδέκτες. Όσον αφορά στις δυνατότητές της, έχει ικανότητα μέτρησης τάσεων, ρευμάτων, ενέργειας και ισχύος καθώς και ανάλυση των αντίστοιχων αρμονικών. Η συχνότητα δειγματοληψίας μπορεί να φτάσει μέχρι τα KHz, ενώ όσον αφορά την επικοινωνία διαθέτει θύρες Ethernet (για την επίτευξη μεγάλης ταχύτητας μεταφοράς δεδομένων) και RS 232. Η μεταφορά δεδομένων γίνεται σε αναλογικά μικρό χρονικό διάστημα σε σχέση με το διάστημα που πραγματοποιούνται οι μετρήσεις, μετά τη λήξη της δειγματοληψίας. Επίσης διαθέτει δικό του λογισμικό μελέτης των μετρήσεων το οποίο εγκαθίσταται στον ηλεκτρονικό υπολογιστή με τον οποίο επικοινωνεί, ενώ από τα υπόλοιπα χαρακτηριστικά του σημειώνουμε την ικανότητα να μετράει και τα φορτία των διαφόρων συσκευών. Τα παραπάνω χαρακτηριστικά δίνουν στη συσκευή αυτή τη δυνατότητα ανάλυσης μεταβατικών φαινομένων, επιβεβαίωσης της ποιότητας της εισερχόμενης ισχύος, ενώ εκτός των άλλων είναι δυνατή και η παράλληλη μέτρηση 2 ανεξάρτητων συστημάτων. Υπάρχει επίσης η δυνατότητα αποθήκευσης δεδομένων σε μια μνήμη 2GB για τη μεταγενέστερη, αν κάτι τέτοιο κριθεί αναγκαίο, μεταφορά δεδομένων στον υπολογιστή. Πολλές είναι και οι 20
21 δυνατότητες προσδιορισμού παραμέτρων για τις μετρήσεις που πραγματοποιούνται από τη συσκευή αυτή. Όσον αφορά τη δειγματοληψία η συσκευή αυτή μπορεί να παρατηρήσει μέχρι και την 50ή αρμονική, δηλαδή συχνότητες μέχρι 2550 Hz, ενώ περιέχει χαμηλοπερατό φίλτρο που αποκόπτει συχνότητας ανώτερες των 5000 Hz. Γενικά υπάρχουν διάφορες εκδόσεις της εν λόγω συσκευής, οι οποίες έχουν για παράδειγμα δυνατότητες μέτρησης μιας μόνο φάσης, δυνατότητες GPS, εκδόσεις που διαθέτουν τα probes ή που δεν τα διαθέτουν κλπ. Τα παραπάνω χαρακτηριστικά αντιπροσωπεύουν τις περισσότερες συσκευές της αγοράς όπως για παράδειγμα είναι εκτός των άλλων και η συσκευή Trinity ORACLE portable power analysis. Μερικά από τα κοινά αυτά χαρακτηριστικά είναι η ταχύτητα δειγματοληψίας, τα χαρακτηριστικά του χαμηλοπερατού φίλτρου, η φύση των probes δειγματοληψίας και η ικανότητα μέτρησης χαρακτηριστικών τριφασικών συστημάτων. Παρακάτω παραθέτουμε μια εικόνα της συσκευής αυτής. Σχήμα 7 Trinity ORACLE portable power analysis 1.5. Χαρακτηριστικά δικής μας διάταξης, σχηματικό διάγραμμα Στις παραπάνω δυο παραγράφους είδαμε τα χαρακτηριστικά που θα πρέπει να διαθέτει μια συσκευή που πραγματοποιεί μη παρεμβατική επιτήρηση φορτίου και δυο παραδείγματα συσκευών που πληρούν αυτά τα χαρακτηριστικά σε βαθμό που να μπορούν να δώσουν σαφή στοιχεία για τα μεταβατικά φαινόμενα, τα οποία είναι σημαντικά για την αναγνώριση υπογραφών φορτίου. Δύο είναι οι παράγοντες που οδήγησαν στην ανάγκη μελέτης του κόστους και του τρόπου ανάπτυξης μιας συσκευής που να μπορεί να πραγματοποιήσει τις παραπάνω λειτουργίες και κατόπιν στην τελική υλοποίησή της, που άλλωστε αποτέλεσε τα θέμα της παρούσας διπλωματικής εργασίας: Ο πρώτος παράγοντας είναι πρακτικός και αφορά το κόστος των συσκευών που υπάρχουν στην αγορά. Το κόστος των παραπάνω συσκευών κυμαίνεται σε αρκετά 21
22 υψηλά επίπεδα, καθώς κατά την παραγγελία της πρώτης συσκευής (Fluke 1760 Three Phase Power Quality Recorder) αναφέρεται ότι το κόστος της κυμαίνεται στα δολάρια. Η καταφυγή στην αγορά ακριβού εξοπλισμού είναι αναπόφευκτη για την πραγματοποίηση μετρήσεων ακριβείας, ωστόσο ερώτημα αποτελούσε εάν ήταν δυνατόν να κατασκευαστεί μια φτηνότερη εκδοχή, η οποία επρόκειτο φυσικά να χρησιμοποιηθεί σε εφαρμογές μικρότερης βαρύτητας, καθώς και να αποτυπωθούν το πώς παραχωρήσεις στις τελικές προδιαγραφές επηρεάζουν την εν λόγω τιμή. Ο δεύτερος παράγοντας αφορά πιθανή μετατροπή παραμέτρων της εν λόγω συσκευής σε σημείο που δεν μπορούν να πραγματοποιήσουν οι υπάρχουσες λύσεις. Πιο συγκεκριμένα, το κυριότερο ζητούμενο ήταν αν μπορούσε να αυξηθεί η συχνότητα δειγματοληψίας πάνω από τα 10 KHz, κάτι που θα σήμαινε και αντίστοιχη μεταβολή των χαμηλοπερατών φίλτρων για την αποτροπή της επικάλυψης (aliasing) όπως θα αναφέρουμε και στο τρίτο κεφάλαιο. Αυτό που γίνεται αντιληπτό είναι ότι η εν λόγω συσκευή θα αποτελέσει την υλοποίηση ενός ενσωματωμένου συστήματος. Ένα ενσωματωμένο σύστημα είναι ένα σύστημα το οποίο συνδυάζει υλικό (hardware) και λογισμικό (software) και συχνά κάποια πρόσθετα μηχανικά μέρη τα οποία επιτελούν μια συγκεκριμένη λειτουργία. Η διαφορά ενός ενσωματωμένου συστήματος από έναν προσωπικό υπολογιστή και ο λόγος που επιλέγουμε κάτι τέτοιο είναι ότι τα ενσωματωμένα συστήματα επιτελούν ένα περιορισμένο σύνολο από εντολές, οπότε η ανάπτυξή τους είναι απλούστερη και μικρότερου κόστους. Το ερώτημα που παρουσιάζεται είναι πώς φτιάχνονται οι υπάρχουσες λύσεις. Η συσκευή ORACLE portable power analysis για παράδειγμα αναφέρεται από την κατασκευάστρια της εταιρία ότι έχει στον πυρήνα της έναν μικροεπεξεργαστή 32 bit. Συνεπώς καταλήγουμε ότι στον πυρήνα της δικής μας συσκευής θα υπάρχει ένας μικροεπεξεργαστής, έτσι ώστε να πραγματοποιούνται οι αναγκαίες πράξεις. Πιο συγκεκριμένα, η επιλογή αυτή κρίνεται λογική, αφού γενικά οι μικροεπεξεργαστές θεωρούνται ότι χρησιμοποιούνται ευρέως στη βιομηχανία και την επεξεργασία σήματος, δυο περιοχές όπου επικεντρώνουν την αναγκαιότητα μιας τέτοιας συσκευής. Εκτός του μικροεπεξεργαστή. για την επίτευξη ακρίβειας στη δειγματοληψία απαραίτητη είναι μια συσκευή μετατροπής αναλογικού σήματος σε ψηφιακό. Ομοίως, αυτή είναι και η επιλογή της παραπάνω συσκευής, η οποία διαθέτει ένα μετατροπέα από αναλογικό σε ψηφιακό ακρίβειας 16 bit. Τα υπόλοιπα εξαρτήματα που θα χρησιμοποιηθούν είναι αυτά που είναι απαραίτητα για τη μεταξύ τους συνδεσμολογία, την τροφοδοσία των δυο συσκευών και την επικοινωνία με έναν ηλεκτρονικό υπολογιστή. Εν κατακλείδι, παραθέτουμε παρακάτω το σχηματικό διάγραμμα της συσκευής που αποτέλεσε το ζητούμενο της διπλωματικής εργασίας. 22
23 Σχήμα 8 Σχηματικό διάγραμμα διάταξης 1.6. Υλοποίηση του λογισμικού (software) Παλαιότερα, το ενσωματωμένο λογισμικό γραφόταν αποκλειστικά στη γλώσσα assembly του επεξεργαστή της εφαρμογής. Η ανάπτυξη της πολυπλοκότητας όμως των ενσωματωμένων εφαρμογών έχει ως αποτέλεσμα την ανάπτυξη του λογισμικού σε μια γλώσσα υψηλότερου επιπέδου, με την επικρατέστερη από αυτές να είναι η C. Αυτή είναι και η γλώσσα που επιλέξαμε, για διάφορους λόγους: Πρόκειται για μια μικρή και απλή γλώσσα με την οποία διαθέτουμε προηγούμενη εμπειρία. Υπάρχουν μεταφραστές διαθέσιμοι για πολλούς μικροεπεξεργαστές, μεταξύ των οποίων και αυτός που επιλέξαμε. Είναι ανεξάρτητη από την αρχιτεκτονική του επεξεργαστή, δίνοντας στον προγραμματιστή τη δυνατότητα να επικεντρωθεί στον αλγόριθμο και την εφαρμογή Αποτελεί τη χαμηλότερου επιπέδου γλώσσα υψηλού επιπέδου. Συνεπώς δίνει μεγάλο βαθμό άμεσης πρόσβασης στο υλικό χωρίς να θυσιάζει τα πλεονεκτήματα των γλωσσών υψηλού επιπέδου. 23
24 2. Παρουσίαση εξαρτημάτων Για την αγορά των εξαρτημάτων πραγματοποιήθηκε αξιολόγηση κατά τη διάρκεια της οποίας λήφθηκαν υπόψη διάφοροι παράγοντες όπως είναι η τιμή, η διαθεσιμότητα και η βιβλιογραφία που υπάρχει στα εξαρτήματα που αποτελούσαν τις διαθέσιμες επιλογές μας. Παρακάτω θα αναλύσουμε τα εξαρτήματα που υπάρχουν στο σχηματικό διάγραμμα που παρουσιάσαμε παραπάνω Μικροεπεξεργαστής: Atmel ATUC3A3512 πάνω στην πλακέτα Atmel UC3 A3 Xplained Χαρακτηριστικά: Μικροεπεξεργαστής 32 bit Αρχιτεκτονική RISC Μέγιστη ταχύτητα λειτουργίας τα 66 MHz με απόδοση 1.49 DMIPS/MHz 512 KBytes Flash Memory 64 KBytes SRAM SPI RS485, RS232 On chip debug 4xUSARTs 8 κανάλια 10 bit ADC Watchdog timer Real time clock Interface για USB Σχόλια: Οι απαιτήσεις που υπάρχουν ως προς τις δυνατότητες μιας συσκευής που θα ανιχνεύει και θα δειγματοληπτεί τιμές τάσης και ρεύματος και τάσης είναι και αυτές που καθορίζουν τη συσκευή μικροεπεξεργαστή που θα επιλεγεί. Τα χαρακτηριστικά τα οποία καθόρισαν την επιλογή μας είναι κυρίως η επεξεργαστική δύναμη, το μέγεθος της μνήμης SRAM, η επιλογή αν ο επεξεργαστής θα λειτουργεί με εντολές 32 ή 8 bit καθώς και η τιμή και η διαθέσιμη βιβλιογραφία και υποστήριξη για την εν λόγω συσκευή. Ακόλουθα αναλύουμε τα χαρακτηριστικά αυτά ένα προς ένα. Η επεξεργαστική δύναμη είναι ένα χαρακτηριστικό που θα πρέπει να ληφθεί ιδιαίτερα υπόψη για την εν λόγω επιλογή. Δεδομένου ότι θα πρέπει να γίνεται δειγματοληψία συχνότητας τουλάχιστον 10KHz θα πρέπει να συνταχθεί κώδικας που να προλαβαίνει να πραγματοποιήσει αυτή τη ρουτίνα, να λαμβάνει 6 τιμές, 3 ρεύματος και 3 τάσης, κάθε φορά, να πραγματοποιεί πολλαπλασιασμούς και προσθέσεις για την εύρεση των τιμών της στιγμιαίας ισχύος και να αποστέλλει τα δεδομένα όσο το δυνατόν πιο γρήγορα. Η επιλογή αν οι εντολές θα εφαρμόζονται σε τιμές 8 bit ή 32 bit είναι εξίσου σημαντική διότι αν αναλογιστούμε ότι οι τιμές που λαμβάνονται από τη δειγματοληψία είναι μεγέθους 16 bit, 24
25 οπότε σε περίπτωση που προτιμούσαμε ένα μικροεπεξεργαστή 8 bit θα απαιτούνταν ένας σημαντικά αυξημένος αριθμός κύκλων για την πραγματοποίηση πράξεων σε τιμές 16 bit σε σχέση με ένα μικροεπεξεργαστή 32 bit. Σε όλα αυτά θα πρέπει να προσθέσουμε ότι, λόγω της πολυπλοκότητάς του, το πρόγραμμα θα συνταχθεί στη γλώσσα C και όχι σε assembly, οπότε εφόσον ο compiler που θα κάνει την αντίστοιχη μετατροπή είναι αποδοτικός μέχρις ενός βαθμού θα πρέπει να προβλέψουμε ανάγκη πρόσθετης επεξεργαστικής δύναμης. Εν τέλει, επιθυμούσαμε εντολές 32 bit με ταχύτητα επεξεργαστή τουλάχιστον 10MHz. Το μέγεθος της μνήμης SRAM ήταν εξίσου σημαντικό για την εφαρμογή μας. Η μνήμη αυτή επρόκειτο να χρησιμοποιηθεί για την αποθήκευση των τιμών που θα προέρχονταν από τον μετατροπέα από αναλογικό σε ψηφιακό. Λαμβάνοντας υπόψη ότι οι τιμές είναι μεγέθους 16 bit, τότε για δειγματοληψία 10 KHz και θεωρώντας ότι το μεταβατικό φαινόμενο διαρκεί το πολύ για 0.5 sec τότε χρειαζόμαστε μνήμη τουλάχιστον 2 bytes * Hz * 0.5 sec * 6 τιμές=60000 Bytes. Βέβαια χρήση της SRAM κάνει και το κυρίως πρόγραμμα ενώ είναι πιθανόν να εμφανίζεται ανάγκη αποθήκευσης επιπρόσθετων τιμών όπως είναι τιμές ισχύος ή χρονικές στιγμές, ωστόσο θεωρώντας ότι το μεταβατικό φαινόμενο διαρκεί κατά βάση λιγότερο από 0.5 sec (συνήθως 0.1 με 0.2 sec) και ότι στην περίπτωση μονοφασικών συστημάτων θα αποθηκεύονται 2 τιμές αντί για 6 καταλήγουμε ότι επιθυμούμε ένα μικροεπεξεργαστή με μνήμη SRAM με μέγεθος ανώτερο από 60 KBytes. Ο παράγοντας της τιμής υπήρξε περιορισμένης σημασίας, αρκεί ωστόσο η τιμή να ανταποκρίνεται σε μια λύση αντίστοιχων δυνατοτήτων. Σε γενικές γραμμές εκτιμήθηκε ότι η διαδικασία κατασκευής μιας πρωτότυπης λύσης θα έπρεπε να γίνει με λύσεις απλές οπότε και φτηνές ώστε να κατασκευαστεί μια διάταξη που θα πληροί τις βασικές απαιτήσεις. Είναι κατανοητό ότι η διάταξη που κατασκευάσαμε δεν είναι η καλύτερη λύση σε όλους τους τομείς (πχ δεν υπάρχει ενσωματωμένη δυνατότητα ασύρματης επικοινωνίας), ωστόσο παρακάτω θα παρουσιάσουμε λύσεις μικροεπεξεργαστών που μπορούν να αποτελέσουν μια πιο προηγμένη λύση με δεδομένο όμως ότι ο παράγοντας του κόστους θα έχει τότε μικρότερη βαρύτητα. Βεβαίως, οι βασικές αρχές λειτουργίας προφανώς είναι ίδιες και για τις δυο περιπτώσεις. Εν τέλει στην περίπτωσή μας επιλέχθηκε μια λύση που πληροί τα επιθυμητά χαρακτηριστικά αλλά δεν είναι και πολύ πιο ισχυρή, άρα είναι και αρκετά οικονομική όπως θα δούμε παρακάτω. Η διαθέσιμη βιβλιογραφία καθώς και η υποστήριξη από την εταιρία έπαιξαν ρόλο στην επιλογή της εταιρίας Atmel αναφορικά με τον μικροεπεξεργαστή, εταιρία με μικροεπεξεργαστές της οποίας είχαμε ομολογουμένως εμπειρία από εργασίες μαθημάτων της σχολής. Πρέπει να αναφέρουμε ότι υπήρχαν και άλλες εταιρίες με ανάλογη υποστήριξη όπως οι εταιρίες Gumstix, Maxim και Motorola. Εδώ τον κυρίαρχο ρόλο έπαιξε και η πλακέτα ανάπτυξης. Προφανώς δηλαδή για τη διαδικασία του prototyping απαραίτητο ήταν να διαθέτουμε το μικροεπεξεργαστή ενσωματωμένο πάνω σε μια αναπτυξιακή πλακέτα που να διαθέτει τα επιθυμητά χαρακτηριστικά έτσι ώστε να γίνει η ανάπτυξη και αποσφαλμάτωση του κώδικα. Η αναπτυξιακή πλακέτα Atmel UC3 A3 Xplained κρίθηκε ότι έχει σε καλύτερο βαθμό τα χαρακτηριστικά που επιθυμούμε συνεπώς αποτέλεσε και την τελική επιλογή μας. 25
26 Ποιες άλλες επιλογές υπήρχαν: Από άλλες επιλογές που βρέθηκαν, αναφέρουμε την πλακέτα IC Board UC3A eval board, η οποία περιέχει ένα μικροεπεξεργαστή UC3A1 της Atmel. Η εν λόγω συσκευή περιέχει πολύ καλές δυνατότητες διασύνδεσης, ωστόσο έστω και σε μικρό βαθμό κρίθηκε ελαφρώς πιο αδύναμη από την επιλογή που πραγματοποιήσαμε. Επίσης ξεχωρίσαμε τους μικροεπεξεργαστές Analog Devices AD7129 καθώς και τους μικροεπεξεργαστές της εταιρίας Gumstix, οι οποίοι είναι πιο ισχυροί αλλά και πιο ακριβοί και θα τους αναφέρουμε ως επιλογές για την κατασκευή μιας πιο ισχυρής συσκευής Μετατροπέας από αναλογικό σε ψηφιακό (ADC): Analog Devices AD Χαρακτηριστικά: 6 ταυτόχρονα δειγματοληπτούμενες εισόδους Εύρος αναλογικών εισόδων πλήρως διπολικών : : ±10 V, ±5 V Τροφοδοσία μέσω εισόδου 5 V και επιλογή τάσης λειτουργίας επικοινωνιών από 2.3 έως 5.25 V Εσωτερική αντίσταση 1ΜΩ στις αναλογικές εισόδους Δεύτερης τάξης χαμηλοπερατό φίλτρο Butterworth Ταυτόχρονη μετατροπή σε τιμές 16 bit με μέγιστη ταχύτητα 250 Ksps (Kilosamples per second) Δυνατότητα oversampling με χρήση ψηφιακού φίλτρου Χρήση παράλληλης ή σειριακής διεπαφής Χαμηλή κατανάλωση ισχύος 100mW / 25 mw στην κατάσταση standby Λόγος σήματος προς θόρυβο (SNR) 95.5 db Σφάλμα γραμμικότητας ±0.5 LSB Προστασία αναλογικής εισόδου Δυνατότητα χρήσης διεπαφών SPI/QSPI/MICROWIRE/DSP Σχόλια: Καταρχήν πρέπει να σημειώσουμε εδώ ότι είναι δυνατόν να χρησιμοποιηθεί A/D converter από την ίδια τη συσκευή του μικροεπεξεργαστή, ωστόσο κάτι τέτοιο δεν επιλέχθηκε στην περίπτωσή μας για διάφορους λόγους. Κατά τη μετατροπή σε ψηφιακό σήμα χρησιμοποιούνται λίγα (συνήθως 8 bits), τα οποία δεν είναι δυνατόν να εκφράσουν το δειγματοληπτούμενο σήμα στο βαθμό τον οποίο επιθυμούμε. Πιο συγκεκριμένα θεωρώντας ότι δειγματοληπτούμε ένα σήμα που κυμαίνεται από 3 *230 έως 3*230 Volt, η διακριτική ικανότητα μιας συσκευής που χρησιμοποιεί στην έξοδο 8 bits αναπαράστασης είναι 26
27 (2* 3 *230) V, ενώ στην περίπτωσή μας η διακριτική ικανότητα (με τη 8 2 (2* 3 *230) χρήση 12 bits) είναι V, ενώ υπενθυμίζουμε ότι μπορούμε 12 2 να χρησιμοποιήσουμε μέχρι 16 bits για την περαιτέρω αύξηση της ακρίβειας. Προφανώς και για τη δειγματοληψία του ρεύματος υπάρχουν διαφορές ίδιας τάξης μεγέθους. Οι περισσότεροι μικροεπεξεργαστές δεν μπορούν να δειγματοληπτήσουν αρνητικές τιμές αναλογικής τάσης. Το σημαντικότερο μειονέκτημα της χρησιμοποίησης της δυνατότητας μετατροπής από αναλογικό σε ψηφιακό από τον ίδιο το μικροεπεξεργαστή είναι ότι προσφέρουν τη δυνατότητα δειγματοληψίας μόνο σε μια υποδοχή τους κάθε φορά και όχι ταυτόχρονα σε πολλές υποδοχές. Η ταυτόχρονη δειγματοληψία είναι πολύ απαραίτητα στην περίπτωσή μας έτσι ώστε να μην δημιουργούνται αποκλίσεις που θα οφείλονται στη διαφορά φάσης που θα δημιουργείται επειδή τα δείγματα δεν ελήφθησαν την ίδια χρονική στιγμή. Όσον αφορά τη συγκεκριμένη συσκευή, πολυάριθμα πλεονεκτήματα είναι αυτά που υπήρχαν εν συγκρίσει με άλλες συσκευές μετατροπής από αναλογικό σε ψηφιακό. Πολλά από τα πλεονεκτήματα της συσκευής αυτής προέρχονται από το γεγονός ότι περιέχει ακριβώς 6 εισόδους τις τάσεις των οποίων δειγματοληπτεί. Η πραγματικότητα είναι ότι βρέθηκαν πολλές συσκευές οι οποίες αν και πληρούσαν πολλές προδιαγραφές τελικά δεν επιλέχθηκαν διότι είχαν επιλογή για είσοδο περισσότερων (έως και 16) εισόδων από αυτές που ήταν απαραίτητες. Μια τέτοια δυνατότητα αυξάνει την πολυπλοκότητα της συσκευής δειγματοληψίας, η οποία συνεπάγεται πολλά, αν όχι όλα, από τα παρακάτω μειονεκτήματα: μεγαλύτερη κατανάλωση ισχύος, υψηλότερη τιμή, μείωση στη μέγιστη ταχύτητα δειγματοληψίας. Αναφορικά με ορισμένα επιθυμητά χαρακτηριστικά της συσκευής Analog Devices AD7606 6, η συχνότητα δειγματοληψίας είναι δυνατόν να κυμανθεί σε πολύ υψηλά επίπεδα μέχρι 250 KSPS (kilosamples per second), έχει δυνατότητα μεταφοράς δεδομένων πλήρως παράλληλα και όχι μόνο με χρήση SPI (serial parallel interface), γεγονός το οποίο κάνει πιο γρήγορη και απλή τη μεταφορά δεδομένων, ενώ διαθέτει και εσωτερικό χαμηλοπερατό φίλτρο, το οποίο τελικά περιορίζει την εμφάνιση επικάλυψης (aliasing). Στα χαρακτηριστικά αυτά θα αναφερθούμε εκτενέστερα παρακάτω. Επίσης, ο εν λόγω μετατροπέας από αναλογικό σε ψηφιακό έχει το μεγάλο πλεονέκτημα ότι χρειάζεται μια μόνο θετική τροφοδοσία ενώ δε χρειάζεται αρνητική τροφοδοσία, την οποία χρειάζονται πολλοί άλλοι μετατροπείς από αναλογικό σε ψηφιακό της αγοράς. 27
28 Ποιες άλλες επιλογές υπήρχαν Αναφορικά με τις λοιπές διαθέσιμες λύσεις, όπως αναφέραμε μια λύση υπήρξε η μέτρηση τιμών με χρήση των δυνατοτήτων ADC ενός μικροεπεξεργαστή, όμως αυτή η λύση δεν προτιμήθηκε για τους λόγους που αναφέρουμε παραπάνω. Μια άλλη επιλογή υπήρξε για μας ο AD 7656, ο οποίος έχει πολλά από τα παραπάνω πλεονεκτήματα όπως είναι η δειγματοληψία 6 εισόδων (ακριβώς όσες χρειαζόμαστε) και απλό interface, ωστόσο απαιτεί διπολική τροφοδοσία + 5 V, οπότε θα παρουσιάζονταν δυσκολίες στην τροφοδοσία της εν λόγω συσκευής. Τέλος, μια τελευταία συσκευή ADC είναι η συσκευή Maxim Max 1312, η οποία παρουσιάζει δυνατότητα πολύ υψηλής δειγματοληψίας (456 Ksps), όμως έχει το μειονέκτημα της απαίτησης διπολικής εισόδου. Ωστόσο επισημαίνουμε τη συσκευή αυτή διότι έχει την υψηλότερη ταχύτητα ταυτόχρονης δειγματοληψίας σε 6 κανάλια που έχουμε βρει όσον αφορά τις οικονομικά προσιτές λύσεις της αγοράς Λοιπά εξαρτήματα: Καλώδιο rs232 to usb, αντιστάσεις και πυκνωτές, διάτρητη πλακέτα, πινοσερές, βραχυκυκλώματα, μετασχηματιστές. Τα λοιπά εξαρτήματα που χρειάστηκαν για την κατασκευή της συσκευής χωρίζονται σε δυο κατηγορίες, αυτά που είναι απαραίτητα για την ανάπτυξη ενός προτύπου οπότε χρειάζεται ένα κομμάτι από αυτά ανεξαρτήτως του αριθμού των συσκευών που θα κατασκευαστούν και αυτά που είναι απαραίτητα για κάθε συσκευή ξεχωριστά. Μια πλήρης ανάλυση κόστους που θα λαμβάνει υπόψη τα κριτήρια αυτά ακολουθεί στην επόμενη παράγραφο. Στην πρώτη κατηγορία κατατάσσονται η συσκευή μέσω της οποίας θα γίνει ο προγραμματισμός, η οποία υπήρξε στην περίπτωσή μας η συσκευή Atmel JTAGICE mkii. Επίσης αναφέρουμε τις συσκευές που χρησιμοποιήθηκαν για να κατασκευαστεί η πρότυπη πλακέτα και που είναι αναγκαίες για να κατασκευαστεί οποιαδήποτε πλακέτα, οι οποίες είναι μια πένσα, ένα κολλητήρι και ένα πολύμετρο. Στη δεύτερη κατηγορία περιλαμβάνονται τα υλικά που είναι αναγκαία για την κατασκευή μιας οποιασδήποτε συσκευής. Αυτά είναι ορισμένες αντιστάσεις και πυκνωτές (ο ακριβής τρόπος συνδεσμολογίας τους θα περιγραφεί σε επόμενο κεφάλαιο), κολλητικό υλικό (καλάι), μια διάτρητη πλακέτα ή εναλλακτικά μια πλακέτα πάνω στην οποία έχει τυπωθεί ένα κύκλωμα με τη μέθοδο της φωτοχάραξης, καλώδιο rs232 to usb, καλώδιο usb to usb για τροφοδοσία της διάταξης και ασφάλειες. Για την ολοκληρωμένη λειτουργία της διάταξης απαραίτητοι είναι τα probes και οι κατάλληλοι μετασχηματιστές και μετατροπής ρεύματος σε τάση, η επιλογή των οποίων δε συμπεριλαμβάνεται στα ζητούμενα αυτής της 28
29 εργασίας, ωστόσο για κάθε συσκευή είναι απαραίτητοι για την πραγματοποίηση της επιθυμητής μέτρησης. Προφανώς για τις παραπάνω επιλογές δεν υφίσταται διάκρισης στην επιλογή προϊόντων κατάλληλης εταιρίας καθώς οι διάφορες εταιρίες προσφέρουν τα προϊόντα τους σε πολύ κοντινές αποστάσεις τιμής και ποιότητας Ανάλυση κόστους Επιθυμώντας να πραγματοποιήσουμε μια ανάλυση κόστους, θα πρέπει να χωρίσουμε τα έξοδα σε έξοδα εξαρτημένα και ανεξάρτητα από τον αριθμό των συσκευών που θα κατασκευαστούν. Για παράδειγμα τα έξοδα αποστολής ενός αριθμού συσκευών είναι πρακτικά ανεξάρτητη από τον αριθμό των συσκευών αυτών, αλλά το κόστος κάθε συσκευής επηρεάζει αναλογικά το κόστος του αριθμού συσκευών που θα κατασκευαστούν. Επιπρόσθετα θα χωρίσουμε τα έξοδα ανεξάρτητα του αριθμού των συσκευών σε έξοδα που δαπανήθηκαν για την κατασκευή του πρωτότυπου (prototyping) και λοιπά έξοδα. Πίνακας 1 Έξοδα συσκευής Προϊόν Κόστος (Ευρώ) Πλακέτα UC3 Xplained Analog Devices AD Φωτοευαίσθητη πλακέτα Λοιπός εξοπλισμός (καλώδια, αντιστάσεις, πυκνωτές, ασφάλειες) Σύνολο Πίνακας 2 Έξοδα prorotyping Προϊόν Κόστος (Ευρώ) Debugger JTAGICE mkii Πολύμετρο Κολλητήρι, Πένσα Διάτρητη Πλακέτα + Λοιπός εξοπλισμός ανάπτυξης πρωτοτύπου Σύνολο Πίνακας 3 Λοιπά έξοδα Προϊόν Κόστος (Ευρώ) Έξοδα αποστολής πλακετών UC3 EVAL BOARD (IC BOARD) Έξοδα αποστολής τελωνείου συσκευών AD Σύνολο Συνεπώς καταλήγουμε σε ένα κόστος Ευρώ ανά συσκευή και Ευρώ για την ανάπτυξη του πρωτοτύπου και λοιπά έξοδα. Θεωρώντας λοιπόν ανάπτυξη πχ 10 συσκευών, το κόστος ανά συσκευή κυμαίνεται στα Ευρώ. Σημειώσεις: 29
30 Για τη συσκευή Analog Devices το κόστος, επειδή πρόκειται για προϊόν που αγοράζεται από περιοχή εκτός Ευρωπαϊκής Ένωσης, εκτιμήθηκε ως εξής: η τιμή σε δολάριο μετατράπηκε σε ευρώ σύμφωνα με ισοτιμία 1 ης Ιουνιου 2011 στα ευρώ. Στην τιμή αυτή προστέθηκαν ΦΠΑ 23% και δασμοί ύψους 5% επί της τιμής αυτής. Επιπρόσθετα έξοδα είναι τα 35 δολάρια έξοδα αποστολής, και έξοδα διατακτικής εκτελωνισμού, φυλάκτρων και αμοιβής εκτελωνιστή που είναι περίπου 100 ευρώ συνολικά. Ομοίως τα έξοδα σε Ευρώ της πλακέτας UC3 Xplained προκύπτουν μαζί με τα μεταφορικά στα Ευρώ. Βέβαια, είναι δυνατό να αγοραστεί μόνο το ολοκληρωμένο όσον αφορά το μικροεπεξεργαστή και η πλακέτα να κατασκευαστεί από τη σχολή. Όμως κάτι τέτοιο δεν το επιχειρήσαμε για να έχουμε άποψη, ενώ και το κόστος δεν πέφτει ιδιαίτερα, περίπου 10 Ευρώ ανά συσκευή. Για τη συσκευή Atmel JTAGICE mkii, εκτιμήθηκε ότι θα αγοραστεί από την εταιρία Ic Board διότι η αποστολή είναι πιο γρήγορη. Τα έξοδα είναι Ευρώ για τη συσκευή. Για προϊόντα όπως μια φωτοευαίσθητη πλακέτα και ένα πολύμετρο οι τιμές προσδιορίστηκαν όπως υφίστανται σε διάφορα καταστήματα ηλεκτρονικών της Θεσσαλονίκης. Οι τιμές αυτές είναι αρκετά μικρές, οπότε δεν υπάρχουν ιδιαίτερες αποκλίσεις σε σχέση με τη βέλτιστη τιμή. Τα έξοδα κατασκευής της διάταξης στα πλαίσια αυτής της εργασίας ήταν λιγότερα από αυτά που περιγράφουμε διότι τα περισσότερα από τα παραπάνω εξαρτήματα ήταν ήδη διαθέσιμα. Το κόστος της λύσης του Fluke, προκειμένου να γίνει μια σύγκριση όσον αφορά τον τομές αυτόν, υπολογίζεται ομοίως. Η συσκευή κοστίζει δολάρια Αμερικής, τα οποία σύμφωνα με ισοτιμία 1 ης Ιουνίου 2011 είναι ίσα με Ευρώ, τα οποία με την πρόσθεση 23% ΦΠΑ και δασμών 5% γίνονται ίσα με Ευρώ ανά συσκευή συν 125 Ευρώ λοιπά έξοδα αποστολής και τελωνείου, τα οποία είναι ανεξάρτητα από τον αριθμό των συσκευών που θα αγοραστούν. Σημειώνουμε εδώ ότι ως τιμή του Fluke χρησιμοποιήσαμε την τιμή της πιο «λιτής» έκδοσης που περιέχει τα επιθυμητά probes, διότι το να αγοραστεί συσκευή και μετά τα probes ήταν πιο ασύμφορο οικονομικά και ότι η τιμή που παραθέτουμε είναι η επίσημη τιμή που δινόταν από την εταιρία την 1 η Ιουνίου Επιπρόσθετα Εξαρτήματα Επεκτάσιμες Ιδιότητες Κατά τη διάρκεια αναζήτησης εξαρτημάτων αναζητήσαμε λύσεις που μπορούν να επεκτείνουν της δυνατότητες που παρέχει η πλακέτα πάνω στην οποία είναι συνδεδεμένος ο μικροεπεξεργαστής. Σε περίπτωση που επιθυμεί κανείς να είναι σε θέση να εγγράψει τα δεδομένα που προκύπτουν σε μια sd card, τότε υπάρχουν αρκετά διαθέσιμα modules τα οποία μπορούν να πραγματοποιήσουν την εν λόγω διαδικασία. Από αυτά, τα δυο που ξεχωρίσαμε είναι το Futurelec SD/MMC Mini Board στην τιμή των 6.90 δολαρίων (6.14 Ευρώ), και το Mikroelektronika MMC/SD Board στην τιμή των δολαρίων (17.71 Ευρώ). Το πλεονέκτημα της δεύτερης λύσης σε σχέση με την πρώτη είναι ότι η δεύτερη λύση παρέχει έτοιμη διασύνδεση με καλώδιο σε κάποια πλακέτα ανάπτυξης συσκευής μικροεπεξεργαστή 30
31 σε σχέση με την πρώτη. Η διασύνδεση μιας τέτοιας κάρτας με το μικροεπεξεργαστή είναι απλή υπόθεση λόγω του εύκολου interface που διαθέτουν οι κάρτες SD/MMC, και δεν έγινε παραπάνω δουλειά σε αυτόν τον τομέα καθώς έτσι και αλλιώς έχει εξασφαλιστεί η επικοινωνία μέσω θύρας usb Κατασκευή συσκευής πραγματικού χρόνου Μέρος της αναζήτησης των κατάλληλων συσκευών για την ανάπτυξη συσκευής που θα πραγματοποιεί τα ζητούμενα της εργασίας ήταν η εύρεση εξαρτημάτων που θα μπορούσαν να αποτελέσουν την ιδανική λύση με δεδομένο όμως ότι το κόστος θα κυμανθεί σε αρκετά υψηλότερα επίπεδα. Στην περίπτωση αυτή αυτό που θα πρέπει να αναζητηθεί είναι ένας αρκετά δυνατότερος επεξεργαστής ο οποίος θα περιέχει δυνατότητες μεγαλύτερης επεξεργαστικής δύναμης, περισσότερη μνήμη και κυρίως θα έχει δυνατότητες ασύρματης μεταφοράς δεδομένων μέσω ενός πρωτοκόλλου που διαθέτει το κατάλληλο bit rate. Με βάση τα παραπάνω καταλήγουμε στο ότι δεν είναι αναγκαίο να αλλαχθούν τα υπόλοιπα μέρη της διάταξης παρά μόνο ο επεξεργαστής. Ο επεξεργαστής που θα επιλεγόταν στην περίπτωση αυτή είναι ο επεξεργαστής Gumstix Overo Air Com (199$), ο οποίος θα συνδεόταν με την πλακέτα Gumstix Summit (49.90$), μαζί με πρόσθετα έξοδα καλωδίου τροφοδοσίας (10$). Το συνολικό κόστος που προκύπτει είναι δολάρια που σε ευρώ με ΦΠΑ και δασμούς μετατρέπονται σε ευρώ. Τα χαρακτηριστικά του μικροεπεξεργαστή αυτού είναι : Ταχύτητα επεξεργαστή 600 MHz με απόδοση 1200 DMIPS 256 MB RAM 256 MB Flash Υποστήριξη SPI, I2C USB host και USB OTG (On The Go) Δυνατότητες επικοινωνίας μέσω Wi Fi, Bluetooth Υποδοχή για SD card 40 GPIO Σχόλια: Η περίπτωση χρήσης ενός τέτοιου επεξεργαστή επεκτείνει τις δυνατότητες σε βαθμό που είναι δυνατό να αλλάξουν οι προδιαγραφές της συσκευής. Πιο συγκεκριμένα, δημιουργείται η δυνατότητα να γίνεται δειγματοληψία με μεγαλύτερη συχνότητα, εφόσον όλα μπορούν να γίνονται γρηγορότερα ενώ υπάρχει και δυνατότητα να πραγματοποιείται και μεγαλύτερος όγκος πράξεων. Επιπρόσθετα, πράξεις που αφορούν λειτουργίες που μπορεί να επιτελέσει ένας πράκτορας λογισμικού μπορούν να γίνονται στον επεξεργαστή και όχι εκ των υστέρων σε κάποιον υπολογιστή ενώ το κυριότερο είναι ότι δυνατή είναι η ασύρματη μεταφορά δεδομένων σε πραγματικό χρόνο. 31
32 Με τη διαδικασία που ακολουθήθηκε προηγουμένως τα έξοδα προκύπτουν ως εξής Πίνακας 4 Έξοδα συσκευής Προϊόν Κόστος (Ευρώ) Επεξεργαστής Gumstix Overo Air Com + λοιπός εξοπλισμός Analog Devices AD Φωτοευαίσθητη πλακέτα Λοιπός εξοπλισμός (καλώδια, αντιστάσεις, πυκνωτές, ασφάλειες) Σύνολο Πίνακας 5 Έξοδα prototyping Προϊόν Κόστος (Ευρώ) Πολύμετρο Κολλητήρι, Πένσα Διάτρητη Πλακέτα + Λοιπός εξοπλισμός ανάπτυξης πρωτοτύπου Σύνολο Πίνακας 6 Λοιπά έξοδα Προϊόν Κόστος (Ευρώ) Έξοδα αποστολής εξοπλισμού επεξεργαστή Έξοδα αποστολής τελωνείου συσκευών AD Σύνολο Συνεπώς καταλήγουμε σε ένα κόστος Ευρώ ανά συσκευή και Ευρώ για την ανάπτυξη του πρωτοτύπου και λοιπά έξοδα. Θεωρώντας λοιπόν ανάπτυξη πχ 10 συσκευών, το κόστος ανά συσκευή κυμαίνεται στα Ευρώ Συμπεράσματα έρευνας αγοράς Από την έρευνα αγοράς καταλήξαμε σε ορισμένα συμπεράσματα. Καταρχήν η επιλογή των εξαρτημάτων με βάση τα οποία θα γινόταν η ανάπτυξη του πρωτοτύπου επηρεάστηκε από το γεγονός ότι η αγορά εξαρτημάτων από χώρες εκτός Ευρωπαϊκής Ένωσης ήταν δύσκολη λόγω του γεγονότος ότι τα έξοδα τελωνείου κρίνονται μεγάλα για την αγορά μικρού αριθμού συσκευών. Στην αγορά βρήκαμε αρκετές λύσεις έτοιμης σύνδεσης συστημάτων DAS (data acquisition systems) με μικροεπεξεργαστές, οι οποίες είχαν πολύ μεγάλο κόστος άνω των 1000 Ευρώ. Έτσι συμπεραίνουμε ότι είναι η σύνδεση των εξαρτημάτων είναι χρονοβόρα, αλλά πολύ συμφέρουσα οικονομικά. 32
33 Ανεξάρτητα από τα παραπάνω, οι διάφορες εταιρίες στις οποίες αναζητήσαμε τα παραπάνω εξαρτήματα δεν παρουσιάζουν ιδιαίτερες αποκλίσεις όσον αφορά την αναλογία κόστους και χαρακτηριστικών των προϊόντων τους. Πρέπει να αναφέρουμε εδώ ότι η παραπάνω κοστολόγηση δεν ανταποκρίνεται επακριβώς σε μια ανάλυση του κόστους παραγωγής αντιγράφων μιας τέτοιας συσκευής, καθώς υπάρχουν πολλά κόστη που δεν έχουν συμπεριληφθεί όπως είναι η αμοιβή όχι μόνο των δυο ατόμων που έχουν εκπονήσει την εργασία αυτή αλλά και όλων όσων τους βοήθησαν με τις γνώσεις τους. Επίσης δεν έχει συμπεριληφθεί λοιπά έξοδα κατασκευής, καθώς το μεγαλύτερο μέρος της εργασίας εκπονήθηκε στις εγκαταστάσεις του τμήματος Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών ΑΠΘ όπου υπήρχαν διαθέσιμοι κατάλληλοι χώροι εργασίας, όπως και το ρεύμα και προγράμματα απαραίτητα για την πραγματοποίηση της εργασίας. Συνολικά πάντως, κρίνουμε ότι το κόστος ανάπτυξης είναι μικρό ακόμα και εάν συνυπολογιστούν τα δεδομένα αυτά και υλοποιηθούν λίγες τέτοιες διατάξεις Συγκρίσεις λύσεων Μια σύγκριση μεταξύ των λύσεων που έχουμε παρουσιάσει θα πρέπει να πραγματοποιηθεί όχι μόνο ανάμεσα στις συσκευές της αγοράς και τη διάταξή μας αλλά και ως προς το πώς επιλύουν τα προβλήματα βελτιστοποίησης του συστήματος ηλεκτρικής ενέργειας που παρουσιάστηκαν παραπάνω. Θα πραγματοποιήσουμε τη σύγκριση με βάση τρεις άξονες, το κόστος, τις διαφορές τις δυνατότητες δειγματοληψίας και τη χρησιμότητα ως προς την επίλυση των ζητημάτων που αναφέραμε στο πρώτο κεφάλαιο Κόστος Σύμφωνα με τα παραπάνω, υπάρχει μια μεγάλη διαφορά στο κόστος η οποία όμως είναι παραπλανητική. Καταρχήν, στο κόστος της διάταξης δεν έχει συμπεριληφθεί το κόστος των probes και των κατάλληλων μετασχηματιστών που είναι απαραίτητοι για τη μετατροπή ρευμάτων και τάσεων στο κατάλληλο εύρος του A/D converter. Επίσης, επιλέχθηκε η συγγραφή του κώδικα να γίνει για την περίπτωση μονοφασικής τροφοδοσίας για την αρχική επιβεβαίωση της λειτουργίας του όλου συστήματος και να γίνουν βελτιώσεις και μετατροπές σε αυτόν παρά να δοκιμαστεί η εφαρμογή σε τριφασικό σύστημα. Ισχύει πάντως ότι ο μικροεπεξεργαστής έχει την απαραίτητη υπολογιστική δύναμη για να κάνει υπολογισμούς που αφορούν τριφασική τροφοδοσία και ο μετατροπέας από αναλογικό σε ψηφιακό έχει τις 6 εισόδους που απαιτούνται, 3 για ρεύμα και 3 για τάση. Προφανώς υπάρχουν τεράστιες διαφορές στην ποιότητα της κατασκευής, καθώς όλα τα αντίστοιχα προϊόντα της αγοράς είναι πλήρως αποσφαλματωμένα, ενώ το κόστος των συσκευών είναι υψηλό λόγω του ότι τα προϊόντα συμπεριλαμβάνουν τσάντα, manuals και γενικά διάφορα extras. Τέλος, διαθέτουν πολύ αναλυτικό λογισμικό το οποίο μπορεί να επιτελέσει πολλές και σύνθετες λειτουργίες. Οι περισσότερες από αυτές δεν έχουν 33
34 υλοποιηθεί σε αυτήν την εργασία διότι είτε δεν είναι σχετικές είτε πρόκειται για λειτουργίες που θα υλοποιηθούν από έναν πράκτορα λογισμικού. Εν κατακλείδι, το συμπέρασμα που προκύπτει είναι ότι η διάταξη που παρουσιάζεται εδώ είναι δυνατόν να ικανοποιήσει συγκεκριμένες ερευνητικές ανάγκες με μικρό κόστος, δεν είναι δυνατό να συγκριθεί με παρόμοιες λύσεις της αγοράς Δυνατότητες δειγματοληψίας Ρυθμίσεις που μπορούν να γίνουν Από τεχνική άποψη, υπάρχει διαφορά στις συχνότητες δειγματοληψίας και στις συχνότητες που είναι δυνατόν να παρατηρηθούν. Η συχνότητα δειγματοληψίας συσκευών της αγοράς είναι περίπου 10 KHz ενώ η συχνότητα της διάταξής μας είναι 16 KHz. Όσον αφορά στις συχνότητες που μπορούν να παρατηρηθούν, αυτές εξαρτώνται κυρίως από το χαμηλοπερατό φίλτρο που υπάρχει στις εισόδους του μετατροπέα από αναλογικό σε ψηφιακό. Για παράδειγμα, στη διάταξή μας έχει υλοποιηθεί φίλτρο με συχνότητα αποκοπής στα 5 KHz, γεγονός το οποίο σημαίνει ότι μπορούν να παρατηρηθούν συχνότητες μέχρι και λίγο μεγαλύτερες από την τιμή αυτή. Βέβαια, το σημαντικότερο στοιχείο στη διάταξή μας είναι ότι είναι τροποποιήσιμες οι δυνατότητές της. Δηλαδή η συχνότητα της δειγματοληψίας μπορεί να αυξηθεί περαιτέρω με αλλαγές στον κώδικα εάν θεωρηθεί ότι η ταυτόχρονη δειγματοληψία και αποστολή δεδομένων έχει χαμηλή προτεραιότητα και ότι το σύστημα θα δειγματοληπτεί και μετά το τέλος των μετρήσεων θα αποστέλλει τα δεδομένα συγκεντρωτικά, διακόπτωντας τις μετρήσεις. Ο A/D converter έχει δυνατότητες δειγματοληψίας θεωρητικά 250 Ksps, ωστόσο η πλήρης εκμετάλλευση των δυνατοτήτων του οπωσδήποτε δεν είναι δυνατή λόγω της περιορισμένης μνήμης και επεξεργαστικών πόρων. Το πώς μπορεί να γίνονται βελτιώσεις σε ορισμένες προδιαγραφές εις βάρος άλλων ανάλογα με τις ανάγκες που παρουσιάζονται καθώς και το πόσο η χρήση της βελτιωμένης λύσης μπορεί να βοηθήσει προς αυτό μπορεί να αποτελέσει θέμα μιας επόμενης διπλωματικής εργασίας Χρησιμότητα Ο τελικός άξονας σύγκρισης είναι το κατά πόσο μια βελτιστοποιημένη εκδοχή της διάταξής μας μπορεί να αποτελέσει εν τέλει ένα μικρό λιθαράκι στο θέμα της ομαλοποίησης της καμπύλης κατανάλωσης ομάδων καταναλωτών, με τον τρόπο που αναφέραμε στο παραπάνω κεφάλαιο. Για να το δούμε καλύτερα αυτό θα πρέπει να παρουσιάσουμε πρώτα δυο έννοιες, του real time computing και του data logging. Με την έννοια του real time computing αναφερόμαστε στη μελέτη και εφαρμογή συστημάτων hardware ή software που έχουν περιορισμούς πραγματικού χρόνου, δηλαδή πρέπει να έχουν επιτελέσει τις επιθυμητές λειτουργίες μέσα σε αυστηρά προσδιορισμένα χρονικά διαστήματα. Υπάρχουν τρία είδη συστημάτων πραγματικού χρόνου, ανάλογα με την κρισιμότητα επίτευξης των λειτουργιών τους: 34
35 Τα «σκληρά» (hard) όπου αδυναμία λειτουργίας στον προκαθορισμένο χρόνο οδηγεί σε πλήρη αποτυχία του συστήματος. Τα «αυστηρά» (firm) όπου αδυναμία απόκρισης δεν οδηγεί σε αποτυχία του συστήματος αλλά οδηγεί σε πλήρη αχρήστευση του αποτελέσματος εφόσον αυτό δεν προκύψει μέσα στους περιορισμούς. Τα «μαλακά» (soft) όπου αδυναμία απόκρισης δεν οδηγεί σε αποτυχία του συστήματος αλλά οδηγεί σε μείωση της ποιότητας του αποτελέσματος εφόσον αυτό δεν προκύψει μέσα στους περιορισμούς. Με την έννοια του data logging εννοούμε την καταγραφή δεδομένων και με την έννοια data logging interval αναφερόμαστε σε έναν τρόπο καταγραφής δεδομένων. Πιο συγκεκριμένα, η έννοια αυτή χρησιμοποιείται όταν επιθυμούμε να πραγματοποιήσουμε μετρήσεις για ένα χρονικό διάστημα, χωρίς να επεμβαίνουμε στο ενδιάμεσο βάζοντας τη συσκευή να πραγματοποιεί μετρήσεις για το χρονικό αυτό διάστημα. Ο λόγος που εξηγούμε τα παραπάνω είναι για να αναλύσουμε τη χρήση του πρώτου όρου σε διάφορες περιπτώσεις με τη βοήθεια του δεύτερου. Ο όρος real time (πραγματικού χρόνου) έχει μια πολλές φορές χαλαρή έννοια και εκφράζει συχνά συστήματα τα οποία πραγματοποιούν υπολογισμούς σε σύντομο χρονικό διάστημα. Συνεπώς, μετρητικές συσκευές είναι δυνατόν να ονομάζονται πραγματικού χρόνου όταν πραγματοποιούν μετρήσεις και παρουσιάζουν αποτελέσματα μέσα σε ένα χρονικό διάστημα κατά το οποίο δεν πραγματοποιούν μετρήσεις. Στην κατηγορία αυτή ανήκουν οι μετρητικές συσκευές που αναφέραμε παραπάνω. Οι σχετικές δυνατότητες που παρουσιάζουν είναι ο ορισμός ενός data logging interval για τη δειγματοληψία και η αποστολή δεδομένων αμέσως μετά σε ένα μικρό χρονικό διάστημα. Η χρήση συσκευών που διακόπτουν τη λειτουργία τους για τη μεταφορά δεδομένων προφανώς δεν ενδείκνυται για την παρατήρηση υπογραφών φορτίων (σε συνεργασία με έναν πράκτορα λογισμικού), διότι η λήψη μετρήσεων δεν είναι αδιάλειπτη και μπορεί να σημειωθούν μεταβατικά φαινόμενα κατά τη διάρκεια αυτών των διακοπών. Από την άλλη, οι έξυπνοι μετρητές για τους οποίους γράψαμε παραπάνω κάνουν μετρήσεις ταυτόχρονα με τους υπολογισμούς και την αποστολή δεδομένων, ωστόσο δεν έχουν συχνότητα δειγματοληψίας τέτοια ώστε να αποτυπώσουν το μεταβατικό φαινόμενο στον επιθυμητό βαθμό. Είναι δηλαδή χρήσιμοι για ζητήματα χρέωσης ή παρατήρησης καταναλωτικών συνηθειών αλλά δεν μπορούν να δώσουν πληροφορία κατάλληλη ώστε να μπορέσει ένας πράκτορας λογισμικού να παρατηρήσει υπογραφές φορτίων, αν και πραγματοποιείται έρευνα προς αυτή την κατεύθυνση. Γενικά, η δημιουργία μιας συσκευής που θα έχει το συνδυασμό των παραπάνω λειτουργιών αποτελεί γενικά αντικείμενο έρευνας. Η διάταξή μας διαθέτει τα χαρακτηριστικά αυτά σε ένα πολύ πρωτόγονο επίπεδο, όμως μπορεί με βελτιώσεις να χρησιμοποιηθεί προς την κατεύθυνση επίλυσης των ζητημάτων που έχουμε αναφέρει σε ένα απώτερο στάδιο. 35
36 Βέβαια, το θέμα της αναγνώρισης των συσκευών που δουλεύουν σε ένα σπίτι αντιμετωπίζεται και με χρήση άλλων μεθόδων όπως έχουμε διαπιστώσει μετά από σχετική έρευνα που πραγματοποιήσαμε. Σε γενικές γραμμές, αυτό που προσπαθούν να καταφέρουν επιστήμονες και ερευνητικές ομάδες ανά τον κόσμο αυτή την εποχή είναι να συλλέγουν τα δεδομένα από έναν έξυπνο μετρητή (χωρίς δηλαδή να λαμβάνουν αρμονικό περιεχόμενο) και να εφαρμόζουν έξυπνους αλγορίθμους πάνω στα δεδομένα ρεύματος, τάσης και ισχύος που πραγματοποιούν machine learning (πχ markov chains, neural networks). Οι αλγόριθμοι αυτοί είναι δυνατό να αναγνωρίζουν αλληλουχίες ενεργοποίησης και απενεργοποίησης συσκευών (πχ όταν είναι βράδυ πριν ενεργοποιηθεί ο φούρνος ένα άτομο ανάβει πρώτα το φως της κουζίνας) και συνδυάζοντας αυτές με το διαφορετικό τρόπο κατανάλωσης ισχύος διαφόρων συσκευών καταλαβαίνουν ποια συσκευή είναι ανοιχτή. Αυτό γίνεται με πολλές απλοποιήσεις όπως είναι ο περιορισμός του αριθμού των συσκευών σε περίπου 10, η χρήση ενός συνόλου συσκευών που έχουν σαφώς διαφορετική κατανάλωση ισχύος, η εισαγωγή πολλών αλληλουχιών κατανάλωσης που είναι γνωστές από πριν και η χρήση συσκευών που έχουν κατανάλωση ισχύος πάνω από ένα ελάχιστο όριο, ενώ και η αναγνώριση φορτίων γίνεται με ένα ποσοστό επιτυχίας 80 90% στην καλύτερη περίπτωση. Προφανώς η όλη έρευνα βρίσκεται σε πολύ πρώιμο στάδιο. Για περισσότερες πληροφορίες πάνω στο θέμα του appliance recognition ξεχωρίζουμε τις πηγές [10], [11] και [12]. Η περαιτέρω ανάπτυξη του εν λόγω θέματος ξεφεύγει από τους στόχους αυτής της διπλωματικής. 36
37 3. Ανάλυση Εξαρτημάτων Όπως έχουμε αναφέρει, η παρούσα διπλωματική εργασία απαιτεί συνδυασμένες γνώσεις από θέματα ενέργειας ηλεκτρικών κυκλωμάτων και θέματα γνώσης λειτουργίας μικροεπεξεργαστών. Πιο συγκεκριμένα, η συσκευή που κατασκευάστηκε είναι προορισμένη να χρησιμοποιηθεί για τη μέτρηση ηλεκτρικών χαρακτηριστικών διαφόρων κυκλωμάτων και είναι φτιαγμένη από δυο ολοκληρωμένα κυκλώματα και τη μεταξύ τους συνδεσμολογία. Συνεπώς παρουσιάζεται η ανάγκη να παρουσιάσουμε ορισμένες αρχές λειτουργίας και χαρακτηριστικά των επιλεγμένων ολοκληρωμένων κυκλωμάτων, έτσι ώστε να καταστεί σαφές το πώς αυτά επηρεάζουν τις προδιαγραφές της διάταξης, αλλά και για να γίνουν περισσότερο κατανοητά η συνδεσμολογία και ο κώδικας του μικροεπεξεργαστή που παρουσιάζονται στα επόμενα κεφάλαια AtmelAT32UC3A3256 Παρακάτω βλέπουμε ένα block diagram του εν λόγω μικροεπεξεργαστή: 37
38 Σχήμα 9 Block diagram του AT32UC3A3256 Εδώ θα αναφερθούμε σε ορισμένα βασικά σημεία από αυτά που φαίνονται στο παραπάνω διάγραμμα έτσι ώστε να γίνει πιο κατανοητή η λειτουργία του μικροεπεξεργαστή: 38
39 AVR32UC CPU Ο πυρήνας του μικροεπεξεργαστή. Λαμβάνει εντολές από τη μνήμη προγράμματος και μετά τις εκτελεί. Αποτελείται από διάφορα τμήματα όπως τους καταχωρητές και την αριθμητική και λογική μονάδα (ALU). Το γεγονός ότι ο μικροεπεξεργαστής λέμε ότι είναι 32 bit σημαίνει ότι οι εντολές εφαρμόζονται σε τιμές μεγέθους 32 bit. Το γεγονός αυτό σημαίνει ότι επιταχύνεται η επεξεργασία δεδομένων σε σχέση με τους μικροεπεξεργαστές 8 bit, ειδικά όταν αυτά αναπαρίστανται με μεγάλο αριθμό από bits. Flash Memory Ενσωματωμένη μνήμη ταχείας αποθήκευσης η οποία χρησιμοποιείται ως η μνήμη όπου αποθηκεύεται το πρόγραμμα. Η μνήμη αυτή παρέχει τη δυνατότητα προγραμματισμού εντός του συστήματος (ISP In System Programmable). Η Flash Memory έχει γενικά αντικαταστήσει τις μνήμες τύπου EPROM ή ROM, οι οποίες απαιτούσαν μεγάλη διαδικασία για τον επαναπρογραμματισμό τους. SRAM (Static Random Access Memory) Αποτελεί ουσιαστικά τη μνήμη RAM του μικροεπεξεργαστή. Στη μνήμη αυτή αποθηκεύονται τιμές τις οποίες θέλουμε να αποθηκεύσουμε και δε θα τύχουν συχνής χρήσης έτσι ώστε να χρήζουν αποθήκευσης σε κάποιον από τους καταχωρητές εργασίας. Στο διάγραμμα παρατηρούμε ότι η μνήμη αυτή έχει ένα μέγεθος 64 Kbytes, ωστόσο υπάρχουν δυο ακόμα μνήμες RAM μεγέθους 32 KΒytes η καθεμιά οι οποίες μπορούν να προσπελαύνονται ανεξάρτητα η μια από την άλλη και οι δυο από την κεντρική μνήμη SRAM. Jtag Interface / Nexus 2+ OCD (On Chip Debug) Μέσω του Jtag Interface γίνεται ουσιαστικά ο προγραμματισμός του μικροεπεξεργαστή. Η διαδικασία αυτή γίνεται σειριακά μέσω 4 pins τα οποία χρησιμοποιούνται για το χρονισμό, την επιλογή mode λειτουργίας και την αποστολή και λήψη δεδομένων. Με τον όρο On Chip Debug εννοούμε τη δυνατότητα που διαθέτει ένας μικροελεγκτής να καταλαβαίνει τυχόν λάθη που συμβαίνουν κατά την εκτέλεση ενός προγράμματος και να προκαλεί ορισμένες διακοπές οι οποίες φαίνονται όταν τίθενται σε κατάλληλες τιμές ορισμένοι καταχωρητές. Ταλαντωτές χρονισμού Αποτελούν τον τρόπο με τον οποίο δίνεται το ρολόι στο μικροεπεξεργαστή. Στην περίπτωσή μας υπάρχουν διάφοροι τρόποι με τους οποίους γίνεται αυτό. Οι επιλογές που υπάρχουν 39
40 είναι ένας ταλαντωτής RC, ένας ταλαντωτής 32 KHz, ή η χρήση ενός εξωτερικού κρυστάλλου σε συνδυασμό με ένα pll (phase locked loop) για το χρονισμό του μικροεπεξεργαστή. Σειριακή θύρα επικοινωνίας Η σειριακή θύρα επικοινωνίας χρησιμοποιεί το πρωτόκολλο RS 232. Στις τηλεπικοινωνίες το RS 232 (Recommended Standard 232) είναι ένα πρωτόκολλο για σειριακή μετάδοση ψηφιακών σημάτων δεδομένων, το οποίο συνδέει ένα τερματικό δεδομένων εξοπλισμού (Data Terminal Equipment) με ένα κύκλωμα δεδομένων τερματικού εξοπλισμού (Data Circuit terminating Equipment). Ένα προς μετάδοση frame φαίνεται παρακάτω: Σχήμα 10 Frame μετάδοσης Όπως βλέπουμε, ένα frame αποτελείται συνήθως από 8 bit πληροφορίας, αν και ο αριθμός των bit λήξης και η ύπαρξη bit ισοτιμίας είναι παράμετροι που μπορούν να αλλάξουν. Ο ρυθμός μετάδοσης μετριέται σε μια μονάδα που λέγεται baud rate και εκφράζει τον αριθμό των συμβόλων που μεταδίδονται ανά δευτερόλεπτο. Συνήθεις τιμές μετάδοσης baud rate είναι , και σύμβολα ανά δευτερόλεπτο. Ο τρόπος που γίνεται η μετάδοση φαίνεται στο παρακάτω σχήμα. Σχήμα 11 Φόρμα μετάδοσης RS 232 Οι τάσεις που χρησιμοποιούνται για τη μετάδοση δεδομένων κυμαίνονται από + 3V έως + 15V. Γενικά το πρότυπο RS 232 προβλέπει ένα μεγάλο αριθμό pin/σημάτων κυρίως για χειραψία τα οποία και διασφαλίζουν την ορθότητα και ακεραιότητα των δεδομένων, ωστόσο είναι δυνατή η πραγματοποίηση επικοινωνίας με χρήση τριών μόνο pin RxD, TxD και GND, με το μειονέκτημα της μείωσης της αξιοπιστίας της μετάδοσης δεδομένων. Η μετάδοση δεδομένων με χρήσης του RS 232 υπήρξε η επιλογή μας κατά τα αρχικά στάδια ανάπτυξης της εφαρμογής, ωστόσο για την επίτευξη μεγάλης ταχύτητας αποστολής δεδομένων χρησιμοποιήθηκε η θύρα USB. 40
41 Θύρα επικοινωνίας USB Ένας άλλος τρόπος επικοινωνίας του μικροεπεξεργαστή είναι με χρήση της θύρας Σειριακού Διαύλου Γενικής Χρήσης (Universal Serial Bus USB). Η συνδεσμολογία αυτή χρησιμοποιεί 4 γραμμές (D+, D, Vcc, Ground) και με κατάλληλα κυκλώματα που προετοιμάζουν τα δεδομένα για αποστολή ή πραγματοποιούν τη λήψη, Στην περίπτωση του μικροεπεξεργαστή που έχουμε επιλέξει, οι επιτρεπτές ταχύτητες είναι αυτές που προσδιορίζονται από τα πρωτόκολλο High Speed USB 2.0: 480 Mbit/s, Full speed 12Mbit/s και Low speed 1.5 Mbit/s. Το πώς λειτουργεί το USB είναι μια πολύπλοκη διαδικασία, θα προσπαθήσουμε εδώ να εξηγήσουμε μερικά πολύ βασικά στοιχεία όσον αφορά το hardware κομμάτι εκ μέρους του μικροεπεξεργαστή. Στο κεφάλαιο του λογισμικού θα αναλύσουμε ορισμένα σημεία που αφορούν το μέλος του λογισμικού και είναι σημαντικά για την ανάλυση της όλης εφαρμογής. Το πρώτο που θα τονίσουμε είναι ότι η γραμμή Vcc μπορεί να χρησιμοποιηθεί όχι μόνο για τη λειτουργία της θύρας αλλά και για την τροφοδοσία της εν λόγω συσκευής. Αυτό είναι που συμβαίνει σε όλες τις συσκευές που συνδέονται σε υπολογιστή μέσω usb αλλά δεν έχουν τροφοδοσία από μόνες τους και αυτό είναι που ισχύει και για το μικροεπεξεργαστή που χρησιμοποιούμε. Δεύτερον, θα δώσουμε μια ιδέα για την αποστολή των δεδομένων από τη σκοπιά του υλικού. Ένα block diagram του κομματιού του usb φαίνεται παρακάτω: Σχήμα 12 Block diagram του USB τμήματος του AVR32UC 41
42 Ενώ το πώς γίνονται οι συνδέσεις με τη γραμμή του USB φαίνεται παρακάτω: Σχήμα 13 Σύνδεση τμήματος USB με γραμμή μεταφοράς Όσον αφορά το δεύτερο σχήμα εξηγούμε ότι DMFS και DPFS είναι το D και το D+ για την επικοινωνία σε full speed ενώ DMHS και DPHS είναι το D και το D+ για την επικοινωνία σε high speed. Μέσω του USB_ID καθορίζεται ποιος είναι ο master και ποιος ο slave στην επικοινωνία (αυτή η γραμμή είναι προαιρετική και μπορεί να είναι συνδεδεμένη με τη γείωση ή την τροφοδοσία), ενώ το VBUS είναι ο τροφοδοσία που αναφέραμε. Ο δίαυλος HSB είναι το high speed bus του μικροεπεξεργαστή και ο δίαυλος PB ο peripheral bus. Όσον αφορά το πρώτο σχήμα, το block UTMI διαθέτει ένα pll το οποίο μπορεί να πάρει σήμα από ένα ρολόι 12 MHz και το μετατρέπει σε συχνότητα μεγαλύτερη για την αποστολή δεδομένων με την επιθυμητή συχνότητα. Στο USB 2.0 Core γίνονται πολλές διεργασίες όπως είναι η διαχείριση του αν θα λειτουργεί η θύρα, τα διάφορα interrupts και η προετοιμασία των δεδομένων για αποστολή σύμφωνα με το αντίστοιχο πρωτόκολλο, καθώς σε κάθε αποστολή πληροφορίας αποστέλλεται ένα μήνυμα πριν με πληροφορίες για το πακέτο καθώς και μηνύματα acknowledge (περαιτέρω ανάλυση στο πέμπτο κεφάλαιο). Το πακέτα πληροφορίας μπορούν γενικά να έχουν οσοδήποτε μεγάλο μέγεθος σύμφωνα με το πρωτόκολλο. Για τη μεταφορά των δεδομένων από το μικροεπεξεργαστή στο USB core χρειάζεται να μεσολαβήσει μια μνήμη διπλής θύρας (dual port memory). Η μνήμη διπλής θύρας είναι μια μνήμη όπου μπορεί να γίνει ταυτόχρονα εγγραφή και ανάγνωση πληροφορίας. Η εγγραφή ή ανάγνωση μπορεί να γίνουν από περισσότερες από δυο πλευρές ανάλογα με τον αριθμό από «όχθες» (banks) που έχουν τα διάφορα τμήματα της μνήμης. Ο τρόπος λειτουργίας της είναι απλός: η μια πλευρά γράφει σε ένα τμήμα της μνήμης και η άλλη διαβάζει πληροφορία ενώ γίνεται κάθε φορά έλεγχος ώστε να μη γίνονται αυτά στο ίδιο τμήμα μνήμης. Στην περίπτωση του μικροεπεξεργαστή που έχουμε επιλέξει το συνολικό μέγεθος της μνήμης διπλής θύρας είναι 2368 Bytes. Τα παραπάνω τα εξηγούμε έτσι ώστε να γίνει σαφές ότι για την αποστολή ενός πακέτου πληροφορίας χρειάζεται ένα σημαντικό ποσό χρόνου (σε σύγκριση με το χρόνο που απαιτείται για την πραγματοποίηση υπολογισμών), οπότε ο χρόνος που απαιτείται για την 42
43 αποστολή δεδομένων δε βρίσκεται εάν πολλαπλασιάσουμε την ταχύτητα αποστολής δεδομένων του usb με τον όγκο των δεδομένων. Από την άλλη, θα πρέπει η αποστολή δεδομένων να διαρκεί το πολύ όσο χρόνο μεσολαβεί ανάμεσα σε δυο συνεχείς λήψεις δειγμάτων ή να βρεθεί κάποια άλλη φόρμα για την αποστολή δεδομένων. Αυτό θα αναλυθεί περισσότερο στο κομμάτι της παρουσίασης κώδικα Analog Devices AD Αρχές λειτουργίας Παρακάτω βλέπουμε ένα block diagram του μετατροπέα από αναλογικό σε ψηφιακό: Σχήμα 14 Block diagram του AD7606 Βλέποντας τα χαρακτηριστικά του μετατροπέα από αναλογικό σε ψηφιακό σημειώνουμε ότι το εύρος μετατροπής είναι τα + 10 Volts (δηλαδή ο μετατροπέας αυτός είναι διπολικός) και ότι ο αριθμός των bits εξόδου είναι 16 bits, συνεπώς η διακριτική του ικανότητα είναι 2*10 16 = Volts. Ο χρόνος μετατροπής είναι διαφορετικός για κάθε μοντέλο 2 του AD7606 ανάλογα με τα διαθέσιμα κανάλια δειγματοληψίας, για το AD που έχει 6 κανάλια, ο χρόνος αυτός είναι περίπου 4 μs. Στο block diagram μπορούμε να παρατηρήσουμε ότι για κάθε αναλογική είσοδο έχουμε κυκλώματα τα οποία περιλαμβάνουν ένα δεύτερης τάξης χαμηλοπερατό φίλτρο, και κυκλώματα track and hold. Ο λόγος που τα κυκλώματα αυτά χρειάζονται είναι ότι για τη σωστή αναγνώριση της τάσης που εφαρμόζεται στην αναλογική είσοδο είναι απαραίτητη η τάση αυτή να μένει σταθερή. Συνεπώς, στην περίπτωση που κάτι τέτοιο δεν είναι δυνατό 43
44 (όπως στην περίπτωσή μας) χρησιμοποιούνται τα κυκλώματα αυτά, τα οποία με χρήση πυκνωτών διατηρούν σταθερή την τιμή της τάσης στα άκρα τους για ένα μικρό διάστημα αρκετό για τη μέτρηση της τάσης που υπάρχει στα άκρα τους. Η μέτρηση της τιμής που υπάρχει στα άκρα του πυκνωτή για καθεμιά από τις αναλογικές εισόδους γίνεται, στην περίπτωση του μετατροπέα από αναλογικό σε ψηφιακό που έχουμε επιλέξει, με τη χρήση ενός πολυπλέκτη και ενός καταχωρητή διαδοχικών προσεγγίσεων (Successive Approximation Register SAR). Η τεχνική αυτή χρησιμοποιείται γενικά όταν θέλουμε να πετύχουμε σχετικά μεγάλη συχνότητα μετατροπής με μεγάλο αριθμό bit εξόδου, κρατώντας όμως τον αριθμό κυκλωμάτων μετατροπής σε χαμηλό επίπεδο. Σχήμα 15 Καταχωρητής διαδοχικών προσεγγίσεων Σύμφωνα με την τεχνική αυτή [6], ένας μετατροπέας από ψηφιακό σε αναλογικό βγάζει αρχικά τιμή τάσης ίση με το μισό του εύρους μετατροπής και ανάλογα με το αν η τάση εισόδου είναι μεγαλύτερη ή μικρότερη από την τιμή αυτή, το πρώτο bit (MSB) μεταβάλλεται ανάλογα. Τα υπόλοιπα bits προσδιορίζονται ανάλογα, δηλαδή ο μετατροπέας από ψηφιακό σε αναλογικό βγάζει στην έξοδό του μια τιμή ίση με το μισό του εύρους των τάσεων που προκύπτει από τα bits που δεν έχουν προσδιοριστεί. Με την ολοκλήρωση της διαδικασίας, ο πολυπλέκτης συνδέει με τον καταχωρητή διαδοχικών προσεγγίσεων μια διαφορετική είσοδο έτσι ώστε να γίνει η μετατροπή της τάσης μιας διαφορετικής εισόδου κοκ. Η τιμή που προκύπτει στα bits εξόδου είναι σε μορφή συμπληρώματος του 2. Η μορφή αυτή φαίνεται παρακάτω: 44
45 Σχήμα 16 Μορφή συμπληρώματος του δύο Γενικά στη μορφή συμπληρώματος του 2, οι αρνητικές τιμές προκύπτουν από τις αντίστοιχες θετικές όταν πάρουμε το συμπληρωματικό δυαδικό αριθμό και προσθέσουμε 1 [16]. Γενικά η μορφή αυτή είναι και η μορφή που χρησιμοποιείται στους επεξεργαστές γιατί διευκολύνει την πραγματοποίηση πράξεων μεταξύ προσημασμένων αριθμών Σφάλματα Εδώ θα προσπαθήσουμε να προσδιορίσουμε ορισμένα σφάλματα, τα οποία εμφανίζονται γενικά σε μετατροπείς από αναλογικό σε ψηφιακό, θα δούμε το πόσο εμφανίζει τα σφάλματα αυτά ο AD και θα κρίνουμε το κατά πόσο αυτά επηρεάζουν τις μετρήσεις και τη λειτουργίας της όλης διάταξης. Θα ξεκινήσουμε από ένα σφάλμα το οποίο εμφανίζει ο AD (σύμφωνα με το σχετικό manual [4]) και είναι το σφάλμα κέρδους (offset error). Το σφάλμα κέρδους εμφανίζεται όταν η κλίση που ενώνει τα σημεία της εξόδου είναι διαφορετική της ιδανικής, δηλαδή για μεταβολή ενός LSB (least significant bit) δεν έχουμε μεταβολή του μετρούμενου μεγέθους κατά ποσότητα ίση με την επιθυμητή διακριτική ικανότητα. Αυτό μπορούμε να το παρατηρήσουμε καλύτερα στο παρακάτω σχήμα [8]: 45
46 Σχήμα 17 Σφάλμα κέρδους Στην περίπτωση του μετατροπέα που έχουμε επιλέξει μπορεί να υπάρξει σφάλμα κέρδους, το οποίο οφείλεται στο γεγονός ότι ως μέγιστη και ελάχιστη τάση που μπορεί να αναγνωριστεί από το μετατροπέα μπορεί να εμφανίσουν αποκλίσεις της τάξης των +-8* Volts (όπου η τιμή Volts είναι η διακριτική ικανότητα του μετατροπέα όπως έχουμε αναφέρει). Συνεπώς αυτό είναι και το μέγιστο σφάλμα στη μετρούμενη τιμή που μπορεί να εμφανιστεί λόγω του σφάλματος κέρδους. Ένα άλλο είδος σφάλματος είναι το σφάλμα διπολικού μηδενικού κωδικού (bipolar zero code error), το οποίο εκφράζει τη διαφορά της τάσης στην οποία ο μετατροπέας μεταβάλλει την έξοδό του από την τιμή -1* Volts στην τιμή μηδέν από την πραγματική τάση στην οποία συμβαίνει αυτό, η οποία είναι -0.5* Volts. Η μέγιστη τιμή αυτού του σφάλματος είναι +-6* Volts. Σημειώνουμε εδώ ότι η απόκλιση στη μέτρηση που παρουσιάζεται λόγω του σφάλματος διπολικού μηδενικού κωδικού αθροίζεται με την απόκλιση λόγω του σφάλματος κέρδους. Τέλος, σημειώνουμε ότι το σφάλμα διαφορικής γραμμικότητας, δηλαδή η μέγιστη μεταβολή που χρειάζεται για να μεταβληθεί η τιμή της εξόδου κατά 1 LSB είναι της τάξης του LSB (δηλαδή -0.99* Volts ), οπότε κυμαίνεται σε φυσιολογικά επίπεδα. Από τα παραπάνω καταλήγουμε ότι η μετρούμενη τιμή μπορεί να διαφέρει από την πραγματική κατά ένα συνολικό σφάλμα +-15* Volts. Το γεγονός αυτό θα πρέπει να τονιστεί και αυτό που μπορεί να γίνει είναι η τιμή των 4 LSB να μη λαμβάνεται υπόψη κατά την πραγματοποίηση των υπολογισμών ή εναλλακτικά να δίνεται ένα περιθώριο λάθους στις τιμές τάσεων, ρευμάτων και ισχύος που υπολογίζονται. Κατά την υλοποίησή μας έχει επιλεχθεί το δεύτερο, οπότε θα πρέπει να δοθεί από το χρήστη αυτό το περιθώριο λάθους. Συνεπώς, κατά τη μέτρηση σταθερής τάσης ο χρήστης της διάταξής μας θα παρατηρήσει μια απόκλιση στις τιμές που μετρώνται, η οποία οφείλεται στα σφάλματα που αναφέραμε παραπάνω. 46
47 Δειγματοληψία Θα επιδιώξουμε εδώ να δώσουμε μερικές ακόμα πληροφορίες για τη διαδικασία της δειγματοληψίας γενικότερα αλλά και στα πλαίσια της λειτουργίας ενός μετατροπέα από αναλογικό σε ψηφιακό. Καταρχήν, η διαδικασία της δειγματοληψίας περιλαμβάνει τα στάδια της σύνδεσης ενός πυκνωτή με την τάση εισόδου, τη διατήρηση της σύνδεσης έως ότου ο πυκνωτής φορτιστεί στην τάση αυτή, η διακοπή της σύνδεσης και η αναμονή μέχρις ότου η τάση στον πυκνωτή σταθεροποιηθεί ξανά και η εκκίνηση της μετατροπής της τάσης σε ψηφιακή μορφή με τη χρήση πολυπλέκτη και του καταχωρητή διαδοχικών προσεγγίσεων όπως αναφέραμε παραπάνω. Όσον αφορά τη δειγματοληψία, γνωστό είναι το θεώρημα του Shannon, το οποίο λέει ότι μια συνάρτηση του χρόνου της οποίας το φάσμα δεν περιλαμβάνει τις συχνότητες που είναι μεγαλύτερες από f 0 ορίζεται πλήρως από τις τιμές της που λαμβάνονται με τη μορφή δειγμάτων με συχνότητα 2f 0. Η συχνότητα αυτή ονομάζεται συχνότητα Nyquist. Τα παραπάνω όμως ισχύουν στην περίπτωση της ιδανικής δειγματοληψίας. Στην πράξη δεν είναι δυνατό να υπάρξει ιδανικό χαμηλοπερατό φίλτρο ώστε να αποκόπτονται συχνότητες μεγαλύτερες πάνω από μια συγκεκριμένη συχνότητα, ενώ και το σήμα που δειγματοληπτείται είναι χρονικά περιορισμένο. Συνεπώς, η συχνότητα δειγματοληψίας πρέπει να είναι μεγαλύτερη από το διπλάσιο της συχνότητας αποκοπής του φίλτρου που εφαρμόζεται στο σήμα. 47
48 4. Συνδεσμολογία 4.1. Διαστάσεις AD διάταξη των pins: Σχήμα 18 Διαστάσεις AD Σχήμα 19 Διάταξη των pins του AD
49 Πίνακας 7 Εξήγηση λειτουργίας των pins [4] PINS ΟΝΟΜΑ ΛΕΙΤΟΥΡΓΙΑ 1 AVcc Αναλογική τροφοδοσία 2 AGND Γείωση 3 5 OS[2:0] Oversampling mode: Γενικά αυτό έχει την ιδιότητα να ελαττώνει τη μέγιστη συχνότητα δειγματοληψίας αλλά βελτιώνει το SNR των φίλτρων. Εμείς θα το έχουμε στο 000 διότι θα τοποθετήσουμε εξωτερικό χαμηλοπερατό φίλτρο. 6 NOT(PAR) /SER/BYTE SEL Παράλληλο ή σειριακό. Εμείς θα το έχουμε στο 0 έτσι ώστε η μετάδοση δεδομένων να είναι πλήρως παράλληλη. Αν τα παραπάνω δυο ήταν στο 1 με το DB15 στο μηδέν τότε η μετάδοση δεδομένων θα ήταν παράλληλη σε πακέτα των byte. 7 NOT(STDBY) Όταν το pin αυτό είναι τοποθετημένο σε λογικό μηδέν, τότε ο AD7606 μπαίνει σε mode χαμηλής κατανάλωσης. Στην περίπτωση αυτή αν το pin range (το 8) είναι 1 μπαίνει σε standby και αν είναι 0 μπαίνει σε shutdown mode (όλα τα κυκλώματα δε λειτουργούν). 8 RANGE Αν είναι λογικό 1 τότε έχουμε range + 10 V ενώ αν είναι λογικό 0 έχουμε range + 5V 9,10 CONVSTA, CONVSTB Είναι για να αρχίζει η δειγματοληψία. Όταν ο παλμός πάει από λογικό low σε λογικό high αρχίζει η δειγματοληψία. Το CONVSTA αναφέρεται στις πρώτες 3 εισόδους τάσεων και το CONSTB στις επόμενες RESET Είναι το reset και γίνεται στο rising edge του παλμού. 12 NOT(RD)/ SERCLK Όταν βάλουμε είσοδο 0 σε αυτόν τότε στα 16 bits εξόδου περιέχεται το περιεχόμενο των τιμών. 13 NOT(CS) Όταν είναι 0 τότε είναι δυνατή η μεταφορά δεδομένων. 14 BUSY Έχει έξοδο 1 όταν εκείνη τη στιγμή γίνεται το conversion των τιμών. 15 FRSTDATA Όταν γίνεται high τότε δείχνει ότι το αποτέλεσμα από τη μετατροπή της τάσης V1 είναι έτοιμο DB[0:6] Τα πρώτα 7 bit εξόδου ξεκινώντας από το LSB. 49
50 23 Vdrive Σε αυτό το pin βάζουμε μια τάση από 2.3 σε 5.25 η οποία καθορίζει την τάση που θα είναι το λογικό high (0.9*Vdrive) και το λογικό low (0.1*Vdrive) των εξόδων. Σε αυτό το pin εισάγουμε την ψηφιακή τροφοδοσία. 24,25,27 33 DB[7:15] Τα υπόλοιπα 9 bit εξόδου 26 AGND Γείωση 34 REF SELECT Αν το βάλουμε είσοδο 1 τότε η τάση αναφοράς είναι εσωτερική, αλλιώς αν βάλουμε είσοδο 0 η τάση αναφοράς καθορίζεται από την τάση που θα εισάγουμε στο pin AGND Γείωση 36,39 REGCAP Αυτά τα pins θα πρέπει να τα συνδέουμε το καθένα ξεχωριστά με έναν πυκνωτή 1μF με την τροφοδοσία. 37,38 AVcc Αναλογική τροφοδοσία 40,41 AGND Γείωση 42 REFIN/REFOUT Ανάλογα με την είσοδο που τοποθετήσαμε στο pin 34 εδώ πέρα είτε βάζουμε την τάση αναφοράς που θέλουμε είτε το pin βγάζει τάση 2.5V, οπότε πρέπει να το συνδέσουμε στη γείωση με πυκνωτή 10μF. Στη δεύτερη περίπτωση η εισαγωγή του πυκνωτή σταθεροποιεί την τάση της εσωτερικής τάσης αναφοράς. 43,46 AGND Γείωση 44,45 REFCAPA, REFCAPB Αυτά τα pins τα συνδέουμε στη γείωση μέσω πυκνωτών 10 μf 47 AGND Γείωση 48 AVcc Αναλογική τροφοδοσία Vn/ VnGND, n{1,3} 3 ζεύγη τα οποία πάνε διαδοχικά V1, V1gnd,V2 V3gnd 55,56,63,64 AGND Γειώσεις Vn/ VnGND, n{4,6} 3 ζεύγη για V4 έως V6 με τις γειώσεις 50
51 4.2. Συνδέσεις με τον ADC και ανταλλαγή πληροφορίας με αυτόν Συνοψίζοντας έχουμε τα εξής: Καταρχήν ξεκινάμε με τις γειώσεις και τις τροφοδοσίες. Στη γείωση θα πρέπει να συνδέσουμε τα pins 2,26,35,40,41,43,46,47,55,56,63,64. Σε μια AVcc από 4.75 μέχρι 5.25 θα πρέπει να συνδέσουμε τις εισόδους AVcc, οι οποίες είναι οι είσοδοι 1,37,38,48. Κατόπιν συνδέουμε τους πυκνωτές που υποδεικνύει το manual. Πιο συγκεκριμένα συνδέουμε τα pins 36,39 με την τροφοδοσία το καθένα ξεχωριστά μέσω πυκνωτή 1μF ενώ τα pins 42,44,45 τα συνδέουμε με τη γείωση το καθένα ξεχωριστά μέσω πυκνωτή 10μF το καθένα. Επίσης, οι είσοδοι AVcc και Vdrive συνδέονται παράλληλα με έναν πυκνωτή 100nF η καθεμία ξεχωριστά, εκτός από τα pins 37 και 38 που μπορούν να ενωθούν με έναν ενιαίο πυκνωτή με τη γείωση. Τονίζουμε εδώ ότι οι πυκνωτές 10μF πρέπει να έχουν πολικότητα και οι μικρότερης χωρητικότητας πυκνωτές της σχεδίασης όχι. Πολύ σημαντικό είναι το Vdrive στο οποίο τοποθετούμε μια τάση, η οποία θα είναι η τάση του λογικού high των σημάτων εξόδου, πολλαπλασιασμένη με 0.9, ενώ το λογικό low είναι η τιμή της Vdrive πολλαπλασιασμένη με 0.1. Οι μικροεπεξεργαστές διαθέτουν γενικά pins τα οποία μπορούν να παράσχουν αυτή την τάση για την ομαλή επικοινωνία με τέτοιες περιφερειακές μονάδες και ανάμεσα σε αυτούς ο AT32UC3A3256 που έχουμε επιλέξει. Στα pins και συνδέουμε τις 6 εισόδους τάσης και 6 γειώσεις. Ορισμένα pins επικοινωνίας αποτελούν pins ρυθμίσεων παραμέτρων λειτουργίας του μετατροπέα οπότε θα ρυθμιστούν με μια τιμή άπαξ. Πιο συγκεκριμένα θα αρχικοποιήσουμε με μηδενική τιμή τα pins 3,4,5 (oversampling), 6 (εφόσον θα δουλεύουμε παράλληλα). Με τιμή ένα θα αρχικοποιήσουμε τα pins 8 (θα έχουμε εύρος + 10 V) και 34 (εφόσον η τάση αναφοράς θα είναι εσωτερική) Με κάθε πτώση του παλμού NOT(RD) (pin 12) θα διαβάζουμε και από μια νέα τιμή τάσης και όταν η έξοδος FRSTDATA είναι στο λογικό 1 θα ξέρουμε ότι διαβάζoυμε την τάση V1. Καθώς γίνεται το conversion η έξοδος BUSY (pin 14) βρίσκεται σε λογικό high ενώ για να αρχίζει η δειγματοληψία θέλουμε rising edge στις εισόδους CONVSTA και CONVSTB (pins 9,10) που είναι και βραχυκυκλωμένες μεταξύ τους ενώ πριν από όλα ανεβάζουμε και μετά κατεβάζουμε την είσοδο RESET (pin 11). Η διαδικασία αυτή φαίνεται καλύτερα στο παρακάτω σχήμα: Σχήμα 20 Διαδικασία λήψης τιμών με χρήση του interface Το μόνο που μας απέμεινε είναι να συνδέσουμε τα 16 bits της εξόδου με τον microcontroller. 51
52 Εν τέλει, για να ολοκληρώσουμε την περιγραφή της φυσικής σύνδεσης του ADC αναφέρουμε ότι θα πρέπει να συνδέσουμε όλες τις εισόδους AVcc και την είσοδο Vdrive παράλληλα με τη γείωση με πυκνωτές των 100 nf για σταθερότητα του σήματος Αλγοριθμική ανάλυση Με βάση τα παραπάνω προκύπτει ο εξής αλγόριθμος σε ψευδογλώσσα, ο οποίος πρέπει να επιτελείται από το μικροεπεξεργαστή έτσι ώστε να παίρνουμε δείγματα από τον AD7606: Έναρξη_λειτουργίας() { Θέσε το pin 7 (not(standby)) σε λογικό high Περίμενε 30 ms } Αρχικοποιήσεις() { } //Οι παρακάτω αρχικοποιήσεις αφορούν τη ρύθμιση ορισμένων παραμέτρων //λειτουργίας του μετατροπέα Θέσε το pin 3 (OS0) σε λογικό low Θέσε το pin 4 (OS1) σε λογικό low Θέσε το pin 5 (OS2) σε λογικό low Θέσε το pin 6 (not(par)/ser/byte select) σε λογικό low Θέσε το pin 8 (range) σε λογικό high Θέσε το pin 10 (OS0) σε λογικό low //δε θα χρησιμοποιήσουμε το convstb //επειδή αυτό δειγματοληπτεί τις τρεις τελευταίες εισόδους και ο κώδικας //έχει υλοποιηθεί για μονοφασικό δίκτυο προς το παρόν Θέσε το pin 34 (ref select) σε λογικό high //Οι παρακάτω αρχικοποιήσεις δίνουν τις αρχικές τιμές σε pin εξόδου που //θα χρησιμοποιηθούν στη διαδικασία της δειγματοληψίας Θέσε το pin 13 (not(cs)) σε λογικό high Θέσε το pin 11 (reset) σε λογικό low Θέσε το pin 9 (convsta) σε λογικό low Θέσε το pin 12 (not(rd)) σε λογικό high Δειγματοληψία() { Θέσε το pin 11 (reset) από low σε high //σβήσιμο προηγούμενης τιμής Περίμενε 50 ns Θέσε το pin 11 (reset) από high σε low Θέσε τα pins 9,10 (CONVSTA και CONVSTB) από low σε high //οι καταστάσεις high και low των εισόδων αυτών πρέπει σε κάθε περίπτωση //να κρατάνε τουλάχιστον 25ns Περίμενε 40 ns //αρχίζει το conversion και κρατάει όσο το pin 14 (BUSY) είναι σε λογικό //high //άμα θέλουμε να κρατήσουμε τη χρονική στιγμή που έγινε η μέτρηση //(timestamp) είναι ακριβώς αυτή εδώ Δες πότε το pin 14 (BUSY) πηγαίνει σε λογικό low //αυτό γίνεται περίπου 3 μs μετά οπότε ο μικροεπεξεργαστής μπορεί να //κάνει και άλλους υπολογισμούς στο μεταξύ Θέσε το pin 13 (not(cs)) σε λογικό low //υπάρχει και η δυνατότητα να είναι και μόνιμα γειωμένο 52
53 } Γιά i από 1 μέχρι 2{ Θέσε το pin 12 (not(rd)) σε λογικό high Περίμενε 15 ns Θέσε το pin 12 (not(rd)) σε λογικό low Περίμενε 30 ns //η τιμή του χρόνου αναμονής εξαρτάται από τη Vdrive Αν το FRSTDATA είναι 1, τότε η εν λόγω τιμή είναι η V1 Λάβε την τιμή Vi } Θέσε το pin 13 (not(cs)) σε λογικό high Λήξη_λειτουργίας() { Θέσε το pin 7 (not(standby)) σε λογικό low Θέσε το pin 8 (range) σε λογικό low } Σχήμα 21 Αλγόριθμος επικοινωνίας με τον AD Από τα παραπάνω συμπεραίνουμε ότι η ταχύτητα δειγματοληψίας εξαρτάται από την ταχύτητα με την οποία θα εκτελέσουμε τη ρουτίνα της δειγματοληψίας που αναφέρουμε παραπάνω. Η ταχύτητα δειγματοληψίας των 250 Ksps του AD7606 προκύπτει από το γεγονός ότι οι παραπάνω λειτουργίες χρειάζονται ένα χρονικό διάστημα περίπου 4 μs Λοιπές παράμετροι του AD Θέματα ισχύος Όταν δειγματοληπτεί ο ADC και όταν δε δειγματοληπτεί αλλά δε βρίσκεται ούτε σε κατάσταση shutdown ή standby, η διαφορά στην κατανάλωση ισχύος δεν είναι μεγάλη διότι ούτως ή άλλως ο AD έχει μικρή κατανάλωση ισχύος. Πιο συγκεκριμένα η κατανάλωση ισχύος είναι 80mW όταν δε δειγματοληπτεί και 90mW όταν δειγματοληπτεί. Στο standby mode βέβαια η κατανάλωση ισχύος είναι 25mW και στο shutdown mode η κατανάλωση ισχύος είναι 10μW. Όλες οι παραπάνω τιμές είναι μέσες τιμές. Low pass filter Ο AD7606 διαθέτει ένα χαμηλοπερατό φίλτρο Butterworth δεύτερης όπου η απόσβεση που επιφέρει φαίνεται στο παρακάτω διάγραμμα. 53
54 Χρονισμοί Σχήμα 22 Χαμηλοπερατό φίλτρο στις εισόδους του AD7606 Από εδώ πρέπει να κρατήσουμε ότι το conversion time είναι 3μs (με το μέγιστο να είναι 3.15 μs) ενώ χρειάζεται άλλο 1μs έτσι ώστε να συγκρατηθεί η τιμή στα κυκλώματα του ADC. Το εύρος των τιμών εισόδου θα κυμαίνεται από 10 έως 10 V. Η επαναφορά από standby mode σε πλήρη λειτουργία χρειάζεται 100 μs, ενώ η επαναφορά από shutdown mode σε πλήρη λειτουργία χρειάζεται 30 ms όταν χρησιμοποιούμε εσωτερική τάση αναφοράς. Ζητήματα υλοποίησης Υπάρχουν ορισμένες λεπτομέρειες της εφαρμογής στην πράξη που αξίζει εδώ να τονιστούν. Καταρχήν, παράλληλα με τις τροφοδοσίες των 5 και 3.3 Volt είναι δυνατόν να τοποθετηθούν πυκνωτές με μεγάλη χωρητικότητα, της τάξης των 100 μf. Η χρησιμότητά τους είναι να ομαλοποιούν «μακροπρόθεσμες» αλλαγές των τάσεων τροφοδοσίας, σε αντιπαράθεση με τους πυκνωτές 100 nf, οι οποίοι ομαλοποιούν αιχμές τάσεων τροφοδοσίας. Επίσης πρέπει να αναφέρουμε ότι οι πυκνωτές 1 μf και 100 nf είναι χωρίς πολικότητα και κατά προτίμηση κεραμικοί όπως τονίζεται από το manual. Αντίθετα οι πυκνωτές 10 μf πρέπει να έχουν πολικότητα. Αυτή η λεπτομέρεια βέβαια αφορά τη σταθερότητα των στοιχείων του πυκνωτή και δεν επηρεάζει ιδιαίτερα άμεσα τη λειτουργία της συνδεσμολογίας. Επικοινωνία Αναφορικά με την επικοινωνία με τον UC3 η επικοινωνία είναι δυνατή διότι η τάση εξόδου VDDIO του UC3 είναι V ενώ η τάση εξόδου του UC3 είναι (VDDIO 0.4) V, τιμές που συμβαδίζουν με τις αντίστοιχες τιμές του AD ο οποίες είναι 3.3 και 0.9 * 3.3 V. 54
55 4.5. Σχεδίαση φίλτρων εισόδου Η απόσβεση που εισάγεται από το ενσωματωμένο φίλτρο του μετατροπέα από αναλογικό σε ψηφιακό εισάγει έντονη απόσβεση, αλλά έχει συχνότητα αποκοπής αρκετά υψηλότερη από το επιθυμητό. Πιο συγκεκριμένα, η συχνότητα αποκοπής είναι στα 15 KHz, ενώ δεδομένου ότι δειγματοληπτούμε με συχνότητα 16 KHz επιθυμούμε οι συχνότητες 8 KHz και άνω να υπόκεινται σε μια έντονη απόσβεση για να μην έχουμε επικάλυψη. Εμείς θα ορίσουμε ως συχνότητα αποκοπής τη συχνότητα των 5KHz και θα φτιάξουμε ένα επιπρόσθετο φίλτρο που θα την εφαρμόζει. Οι διαθέσιμες επιλογές είναι η κατασκευή ενός παθητικού φίλτρου ή η επιλογή χρήσης ενός αντίστοιχου ενεργού (η κύρια διαφορά τους είναι ότι το ενεργό φίλτρο περιλαμβάνει έναν τελεστικό ενισχυτή στη διάταξή τους). Εμείς επιλέξαμε τη χρήση ενός παθητικού φίλτρου με τον κυριότερο λόγο να αποτελεί το ότι, παρά τα πλεονεκτήματα που παρουσιάζει η εφαρμογή ενός ενεργητικού φίλτρου, ένα παθητικό φίλτρο θα απαιτούσε μια τροφοδοσία περίπου + 10 Volt και η εξασφάλιση μιας τέτοιας τάσης δεν είναι δυνατό να γίνει από το μικροεπεξεργαστή. Η πολυπλοκότητα και η μικρότερη χρηστικότητα μιας τέτοιας λύσης μας οδήγησαν λοιπόν στην εφαρμογή ενός παθητικού φίλτρου. Εν τέλει κρίθηκε ότι ένα φίλτρο πρώτης τάξης είναι αρκετό για να πραγματοποιήσει την επιθυμητή απόσβεση. Στα φίλτρα πρώτης τάξης η συνάρτηση μεταφοράς είναι της μορφής: H(s)= ω c s + ω c Όπου ω c η συχνότητα αποκοπής (συχνότητα όπου έχουμε απόσβεση 3 db). Για ένα low pass filter έχω: 1 f =, 2*π *R *C c άρα θέλω: 1 1 R * C= = =3.18*10 2*π *f 2*π *5.000 c -5 κάτι που μπορεί να πραγματοποιηθεί εύκολα με ένα μια αντίσταση 3.2 ΚΩ και έναν πυκνωτή 10 nf. Προφανώς το φίλτρο θα έχει την παρακάτω μορφή όπου Vin η τάση εξόδου του μετασχηματιστή και Vout η τάση που θα εισέρχεται στον ADC. 55
56 Σχήμα 23 Μορφή χαμηλοπερατού φίλτρου Για να έχουμε μια εικόνα της συνολικής απόσβεσης αν αθροιστεί η επίδραση του φίλτρου που έχουμε σχεδιάσει με την επίδραση του φίλτρου που διαθέτει ο μετατροπέας από αναλογικό σε ψηφιακό θα πρέπει να εκφράσουμε την ολική συνάρτηση μεταφοράς και να τη μετατρέψουμε σε γραφική παράσταση. Γνωρίζουμε ότι η μορφή της συνάρτησης μεταφοράς ενός χαμηλοπερατού φίλτρου Butterworth με δυο πόλους είναι της μορφής [15]: H (s)= 1 s 2 ω c ω + s+ω Q 2 c 2 c Όπου για συχνότητα αποκοπής 15 KHz και Q=0.71 για δυο πόλους για πολυώνυμα Butterworth έχω: H (s)= 1 s 2 (30000π ) 30000π + s+(30000π ) Ενώ από το φίλτρο που σχεδιάσαμε έχουμε: H π (s)= s π Άρα έχουμε μια συνολική συνάρτηση μεταφοράς: π (30000π ) H (s)=h 1(s) H 2 (s)= s π 30000π s + s+(30000π ) 0.71 της οποίας το διάγραμμα Bode φαίνεται στο παρακάτω σχήμα:
57 Σχήμα 24 Διάγραμμα Bode ολικής συνάρτησης μεταφοράς 4.6. Σύνδεση με τον ATMEL UC3 A3 XPLAINED Στο σημείο αυτό θα αναφερθούμε σε ορισμένες δυνατότητες του επεξεργαστή Atmel AT32UC3A3256 που γίνονται προσπελάσιμες μέσα από την πλακέτα όπου είναι συνδεδεμένος ο μικροεπεξεργαστής. Καταρχήν θα δείξουμε στην παρακάτω το πώς φαίνεται αυτή η πλακέτα και τα βασικά σημεία που υπάρχουν στη πλακέτα αυτή. 57
58 Σχήμα 25 Εικόνα της πλακέτας ATMEL UC3 A3 XPLAINED Σχήμα 26 Επεξήγηση των μελών της πλακέτας ATMEL UC3 A3 XPLAINED 58
59 Από την πλακέτα αυτή σημειώνουμε τα εξής: Η τροφοδοσία της πλακέτας γίνεται είτε μέσω usb είτε μέσω σύνδεσης κατάλληλης τάσης σε ένα από τα διαθέσιμα εξωτερικά pins της πλακέτας. Εφόσον θα συνδέσουμε τη θύρα usb της πλακέτας με υπολογιστή για τη μεταξύ τους επικοινωνία, τότε η συσκευή μπορεί να τροφοδοτείται μέσω της θύρας USB αφού είναι δυνατή η ταυτόχρονη επικοινωνία και τροφοδοσία της συσκευής μέσω της θύρας USB. Παράλληλα, η πλακέτα διαθέτει δυνατότητα παροχής τάσης 3.3 V για τις ανάγκες της ψηφιακής τροφοδοσίας του μετατροπέα από αναλογικό σε ψηφιακό. Υπάρχουν 32 GPIO pins επικοινωνίας του μικροεπεξεργαστή, τα οποία είναι διαθέσιμα από τα 4 ports εξόδου από την πλακέτα (το καθένα έχει 8 GPIO pins, ένα pin τροφοδοσίας και ένα pin γείωσης). Το πως αντιστοιχούν τα pins αυτά στις διαθέσιμες εξόδους του μικροεπεξεργαστή φαίνεται στον παρακάτω πίνακα (η αρίθμηση των pins της κάθε port γίνεται από κάτω προς τα πάνω, ξεκινώντας από την αριστερή στήλη και προχωρώντας προς τα δεξιά): Πίνακας 8 Αντιστοίχηση των pins των port1 και port2 PORT1 PORT2 Pin UC3 pin Pin UC3 pin 1 PA25 1 PA21 2 PA26 2 PA22 3 PX57 3 PA23 4 PX58 4 PA24 5 PB09 5 PA20 6 PB10 6 PA19 7 PB08 7 PA18 8 PB07 8 PA17 9 GND 9 GND V V Πίνακας 9 Αντιστοίχηση των pins των port3 και port4 PORT3 PORT4 Pin UC3 pin Pin UC3 pin 1 PA31 1 PA15 2 PA30 2 PA14 3 PA29 3 PA05 4 PA28 4 PA06 5 PA27 5 PA07 6 PB00 6 PA10 7 PB04 7 PA11 8 PX19 8 PA08 9 GND 9 GND V V 59
60 Από τα παραπάνω καταλήγουμε ότι θα χρησιμοποιηθούν και τα 4 ports για την επικοινωνία με τον μετατροπέα από αναλογικό σε ψηφιακό, δυο για την απόκτηση των 16 bits και δυο για την επικοινωνία με το interface και τις αρχικοποιήσεις. Πιο συγκεκριμένα, θα συνδεθούν το port3 στις αρχικοποιήσεις, το port1 για το interface, το port4 για τα MSB της εξόδου και το port2 για τα LSB της εξόδου. Δε θα αναφερθούμε λεπτομερώς στο πώς ακριβώς έγινε αυτό παρά θα πούμε ότι οι συνδέσεις έγιναν με γνώμονα εκτός των άλλων την ευκολία δημιουργίας της πλακέτας που φτιάξαμε για τη σύνδεση του μετατροπέα, την ευκολία σύνδεσης των δυο πλακετών και την απλοποίηση συγγραφής τμημάτων του λογισμικού. 60
61 5. Υλοποίηση λογισμικού 5.1. Εισαγωγή Πρόλογος Το κεφάλαιο αυτό αποτελεί αναμφίβολα το πιο πλούσιο σε ύλη, καθώς περιλαμβάνει την ανάλυση της υλοποίησης του λογισμικού η οποία αποτέλεσε τη μεγαλύτερη πρόκληση της παρούσας διπλωματικής εργασίας, οπότε το γεγονός αυτό μας οδήγησε στην ανάγκη να προλογίσουμε ξεχωριστά το μέρος αυτό. Προκειμένου να εξηγηθεί το λογισμικό πραγματοποιείται εξήγηση με βάση τη χρονολογική σειρά με την οποία εξετάστηκαν οι επιμέρους παράμετροι του λογισμικού και έγινε η αντίστοιχη υλοποίηση. Πιστεύουμε ότι αυτή η μέθοδος θα κάνει πιο κατανοητό το πώς από τις απαιτήσεις προέκυψε το αντίστοιχο λογισμικό. Προφανώς δε θα παρουσιαστούν τμήματα κώδικα αλλά μόνο η φιλοσοφία και οι αρχές του για απλότητα και σαφήνεια. Στην παρούσα ενότητα λοιπόν πραγματοποιείται αναφορά για τους περιορισμούς και το πώς αυτοί επηρεάζουν την αρχιτεκτονική του λογισμικού. Στη δεύτερη ενότητα εξετάζονται τα στοιχεία που αποτέλεσαν τα βασικά προβλήματα προς επίλυση. Αυτά ήταν η λήψη των τιμών από το μετατροπέα, οι υπολογισμοί προς περάτωση, η ακριβής διατήρηση της συχνότητας δειγματοληψίας και η επικοινωνία με χρήση της θύρας USB. Στις δυο επόμενες ενότητες εξηγείται το πώς πραγματοποιείται η επικοινωνία μέσω θύρας USB. Πιο συγκεκριμένα, στην τρίτη ενότητα γίνεται μια εξήγηση ορισμένων παραμέτρων της επικοινωνίας αυτής με στόχο να γίνει πιο κατανοητό στην τέταρτη ενότητα το πώς γίνονται οι κατάλληλες αρχικοποιήσεις ώστε να γίνεται η επικοινωνία με τον επιθυμητό τρόπο. Στην πέμπτη ενότητα παρουσιάζεται το μαθηματικό υπόβαθρο των απαιτούμενων λειτουργιών αποστολής και πράξεων και παρουσιάζεται η υλοποίησή τους. Στην έκτη ενότητα αναλύεται το λογισμικό εκ μέρους του υπολογιστή γενικής χρήσης όσον αφορά τη λήψη των δεδομένων και την παρουσίασή τους με χρήση του γραφικού περιβάλλοντος που υλοποιήθηκε. Τέλος, σύμφωνα και με τη χρονολογική παρουσίαση των ενοτήτων, η έβδομη ενότητα προέκυψε μεταγενέστερα και από τη διαπίστωση ότι είναι δυνατό να υπάρξει ένα trade off ανάμεσα σε μια επιπλέον δυνατότητα πραγματοποίησης υπολογισμών αρμονικού περιεχομένου και ακρίβειας των πράξεων, οπότε αναλύεται το πώς υλοποιήθηκαν τα παραπάνω και ποιες είναι οι επιλογές που δίνονται στο χρήστη Περιορισμοί και προβλήματα Η φύση του προβλήματος προς λύση θέτει περιορισμούς όσον αφορά την υλοποίηση του λογισμικού καθώς και καθορίζει τα χαρακτηριστικά της αρχιτεκτονικής του, όπως αυτά αποτυπώθηκαν κατά τον προσδιορισμό των απαιτήσεων χρήστη. Οι περιορισμοί που 61
62 επιβάλλουν τα χαρακτηριστικά του προβλήματος μπορούν να συνοψιστούν στους παρακάτω: I. Η συχνότητα δειγματοληψίας πρέπει να είναι η μέγιστη δυνατή, έτσι ώστε να γίνεται η κατά το δυνατόν καλύτερη μέτρηση του φασματικού περιεχομένου του σήματος. Άλλωστε όσο μεγαλύτερη είναι η συχνότητα δειγματοληψίας τόσο υψηλότερες αρμονικές του σήματος μπορούν να μετρηθούν. II. Το σύστημα θα πρέπει να είναι αυστηρώς πραγματικού χρόνου, δηλαδή η δειγματοληψία του σήματος να είναι συνεχής και αδιάλειπτη για την υψηλότερη δυνατή τιμή δειγματοληψίας. III. Η αποστολή της πληροφορίας από τον μικροελεγκτή στον υπολογιστή πρέπει να είναι συνεχής σε πραγματικό χρόνο, ενώ είναι απαραίτητο να μην υπάρχει απώλεια πληροφορίας. IV. Πρέπει να γίνεται η καλύτερη δυνατόν αξιοποίηση των πόρων του μικροελεγκτή και να γίνονται από αυτόν οι κατά το δυνατόν περισσότεροι υπολογισμοί. V. Το λογισμικό του υπολογιστή θα πρέπει να ενεργεί κατάλληλα ώστε να αποθηκεύει την πληροφορία που λαμβάνει από τον μικροελεγκτή με την απαίτηση να υπάρχει μηδενική απώλεια πληροφορίας. VI. Θα πρέπει να υπάρχει ρολόι υψηλής ακρίβειας για την επίτευξη σταθερής συχνότητας δειγματοληψίας. Παράλληλα απαιτείται η ύπαρξη ενός συστήματος ρολογιού το οποίο θα χρησιμοποιείται για την αποτίμηση της χρονικής στιγμής όπου έγινε η δειγματοληψία ενός δείγματος του σήματος. VII. Τέλος αναφέρεται ότι το σύστημα θα πρέπει να είναι απλό στην χρήση του (user friendly). Συνεπώς το σύστημα θα πρέπει να περιλαμβάνει κατάλληλο interface στην πλευρά του ηλεκτρονικού υπολογιστή γενικής χρήσης του χρήστη, και η λογική θα πρέπει να είναι απλής σύνδεσης και λειτουργίας (plug n play). Οι παραπάνω περιορισμοί επηρέασαν σε μεγάλο βαθμό τη διαμόρφωση του απαραίτητου λογισμικού. Το συνολικό πακέτο λογισμικού περιλαμβάνει λογισμικό τόσο για τον ηλεκτρονικό υπολογιστή γενικής χρήσης του χρήστη, όσο και το απαραίτητο λογισμικό του μικροελεγκτή. Αρχικά και πριν εξεταστεί το κάθε σύστημα λογισμικού θα παρουσιαστεί η συνολική αρχιτεκτονική του συστήματος Περιγραφή αρχιτεκτονικής λογισμικού Ο βασικός αλγόριθμος της λειτουργίας του συνολικού συστήματος είναι ο εξής: 1. Δειγματοληψία του σήματος και αποθήκευση των τιμών των δειγμάτων. 2. Επεξεργασία των δειγμάτων που ελήφθησαν. 3. Αποστολή των δειγμάτων μέσω της θύρας USB στον ηλεκτρονικό υπολογιστή. 4. Λήψη των τιμών από τον Η/Υ γενικής χρήσης. 5. Επεξεργασία των τιμών που ελήφθησαν έτσι ώστε να αποχτηθεί η πραγματική πληροφορία. 62
63 6. Αποθήκευση των τιμών στο δίσκο του συστήματος. Τα πρώτα 4 βήματα (1 4) του αλγορίθμου εκτελούνται από τον μικροελεγκτή ενώ τα επόμενα 3 (5 7) από τον Η/Υ γενικής χρήσης. Οι λειτουργίες που εκτελεί τόσο ο μικροελεγκτής όσο και Η/Υ πρέπει να τηρούν αυστηρούς χρονικούς περιορισμούς ώστε να μην υπάρχει απώλεια πληροφορίας (time critical systems) Συστατικά Μέρη του Λογισμικού του Μικροελεγκτή Γενική Περιγραφή Όπως αναφέρθηκε και παραπάνω, ο μικροελεγκτής είναι υπεύθυνος για τη λήψη των δειγμάτων από τον αναλογικό σε ψηφιακό μετατροπέα (A/D converter), την επεξεργασία αυτών και τελικά την αποστολή τους μέσω μιας θύρας USB. Όλα τα παραπάνω θα πρέπει να γίνονται μέσα σε αυστηρά χρονικά περιθώρια, έτσι ώστε να διατηρείται συνεχής και αδιάλειπτη η δειγματοληψία του σήματος. Η λήψη δειγμάτων του σήματος σε αυστηρώς καθορισμένες χρονικές στιγμές επιβάλλει αυστηρούς περιορισμούς στο σύστημα. Για να επιτευχθεί σταθερή και αδιάλειπτη δειγματοληψία είναι απαραίτητη η χρήση κάποιου ρολογιού πραγματικού χρόνου το οποίο θα ειδοποιεί το σύστημα για το πότε θα πρέπει αυτό να λάβει το επόμενο δείγμα. Ένα τέτοιο ρολόι, για την ακρίβεια έναν μετρητή πραγματικού χρόνου (Real Time Counter), διαθέτει ο μικροεπεξεργαστής AT32UC3A3256 στον οποίο υλοποιήθηκε το παρών λογισμικό. Το ρολόι αυτό μπορεί να μετράει χρονικά διαστήματα (intervals) και όταν έχει μεσολαβήσει ένα τέτοιο χρονικό διάστημα να προκαλεί μια διακοπή (interrupt) στη CPU του μικροεπεξεργαστή, ώστε ο τελευταίος να διαχειριστεί την διακοπή αυτή εκτελώντας μια ρουτίνα εξυπηρέτησης διακοπής. Με βάση το ρολόι αυτό μπορεί να επιτευχθεί σταθερή και αδιάλειπτη δειγματοληψία. Η μέγιστη συχνότητα δειγματοληψίας που μπορεί να επιτευχθεί με αυτό τον μετρητή είναι 16 KHz, και αποτελεί την τελική συχνότητα δειγματοληψίας του συστήματός μας. Η χρήση μιας αρχιτεκτονικής βασισμένης στις διακοπές (interrupts), πέρα από το να εξασφαλίζει σταθερή και αδιάλειπτη δειγματοληψία, διασφαλίζει ότι ο επεξεργαστής μπορεί να εκτελεί διάφορους υπολογισμούς και να αποστέλλει τα δεδομένα μέσω μιας θύρας USΒ στην περίπτωση της κανονικής λειτουργίας, αντί να είναι υποχρεωμένος να ελέγχει διαρκώς αν πρέπει να λάβει κάποιο καινούργιο δείγμα. Το σύστημα δηλαδή είναι ελεγχόμενο από διακοπές (interrupt driven) και δεν απαιτείται ο διαρκής έλεγχος κάποιας σημαίας (polling) ώστε να υπάρχει ακρίβεια δειγματοληψίας, πράγμα που θα οδηγούσε σε λάθος διαχείριση των πόρων του συστήματος. Εκτός όμως από τις διακοπές λόγω του ρολογιού για την μέτρηση σταθερών χρονικών διαστημάτων μεταξύ δύο διαδοχικών δειγμάτων και η διαδικασία αποστολής των δεδομένων μέσω της θύρας USB γίνεται με την χρήση διακοπών. Η βασική διαδικασία λειτουργίας είναι η εξής : Σε πρώτο στάδιο ο μικροεπεξεργαστής στο στάδιο των αρχικοποιήσεων κάνει κατάλληλες αρχικοποιήσεις που θα επιτρέψουν την χρήση της θύρας USB. Πιο 63
64 συγκεκριμένα ορίζει σύμφωνα με ποιο πρότυπο (mode) θα λειτουργεί η συσκευή, θέτει σε λειτουργία το ρολόι λειτουργίας του υλικού του USB, προσθέτει το διάνυσμα εξυπηρέτησης διακοπών του USB. Σε κανονική λειτουργία, όταν ο μικροελεγκτής θέλει να στείλει κάποια δεδομένα, τότε αποθηκεύει τα δεδομένα αυτά σε μια περιοχή προσωρινής αποθήκευσης (buffer), από όπου ο DMA (ελεγκτής απευθείας πρόσβασης στην μνήμη) του ελεγκτή του USB τα μεταφέρει στον ελεγκτή έτσι ώστε να αποσταλούν από τον τελευταίο. Όταν ολοκληρωθεί η μεταφορά και αποστολή τότε ο μικροελεγκτής ενημερώνεται μέσω κατάλληλης διακοπής ότι έχει ολοκληρωθεί η μεταφορά. Το πώς γίνεται το παραπάνω θα αναλυθεί παρακάτω όπου και αναλύεται ο ακριβής τρόπος λειτουργίας του USB. Τμήμα του λογισμικού που αναπτύχθηκε είναι και η ρουτίνα λήψης των δειγμάτων από τον A/D Converter. Συγκεκριμένα η ρουτίνα λήψης των δειγμάτων αποτελεί τμήμα της ρουτίνας εξυπηρέτησης της διακοπής λόγω του μετρητή πραγματικού χρόνου. Η βασική λειτουργία είναι η εξής : Σε αρχικό επίπεδο ο μικροελεγκτής αρχικοποιεί τον A/D έτσι ώστε να καθοριστεί ο τρόπος λειτουργίας του, δηλαδή με τι τρόπο θα δίνονται οι τιμές στην έξοδο του A/D (σειριακά, παράλληλα ή παράλληλα ανά μια λέξη (1 byte)) κτλ. Αφού αρχικοποιηθεί ο A/D είναι πλέον έτοιμος να χρησιμοποιηθεί. Για τη λήψη του κάθε δείγματος γίνεται μια σειρά από βήματα. Αρχικά ο μικροελεγκτής λαμβάνει τις τιμές που βρίσκονται στην έξοδο του A/D Converter. Στην συνέχεια δίνει σήμα στον A/D να αρχίσει την διαδικασία για την λήψη μιας νέας τιμής. Με αυτόν τον τρόπο ο μικροελεγκτής δεν αναμένει τον A/D να ολοκληρώσει την μετατροπή (conversion). Καθώς ο ελάχιστος χρόνος που απαιτείται για την μετατροπή των δειγμάτων είναι 5μs ο επεξεργαστής αξιοποιεί τον χρόνο αυτό αντί απλά να περιμένει τον A/D Converter να ολοκληρώσει την μετατροπή. Αφού ληφθούν οι τιμές από τον A/D αποθηκεύονται στην μνήμη του μικροεπεξεργαστή. Πέραν από την απλή δειγματοληψία ο μικροελεγκτής εκτελεί και κάποιους υπολογισμούς όσον αφορά τις τιμές. Οι υπολογισμοί που εκτελεί είναι οι παρακάτω : Αποθήκευση της ακριβής χρονικής στιγμής που λήφθηκε το κάθε δείγμα Υπολογισμός της ενεργού τιμής της τάσης και του ρεύματος (Vrms, Irms) Υπολογισμός του μέτρου της ισχύος (S) Υπολογισμός της μέσης τιμής ισχύος Υπολογισμός του συντελεστή απόδοσης (pf ή cosφ) Τελικά η πληροφορία που αποστέλλεται από τον μικροεπεξεργαστή στον υπολογιστή περιλαμβάνει τα εξής : I. Τη στιγμιαία τιμή του ρεύματος. II. Τη χρονική στιγμή που λήφθηκε το κάθε δείγμα 64
65 III. Την ενεργό τιμή της τάσης Vrms IV. Το μέτρο της συνολικής ισχύς του φορτίου που μετράται V. Το συντελεστή απόδοσης pf Στην συνέχεια θα γίνει ανάλυση του κάθε τμήματος του λογισμικού ξεχωριστά, ώστε να γίνει εις βάθος ανάλυση της αρχιτεκτονικής του Μετρητής Πραγματικού Χρόνου Όπως αναφέρθηκε η μέτρηση των χρονικών διαστημάτων μεταξύ δυο δειγμάτων γίνεται με την χρήση ενός μετρητή πραγματικού χρόνου. Ο μετρητής αυτός αναφέρεται ως RTC (Real Time Counter) και αποτελεί τμήμα του υλικού του μικροεπεξεργαστή. Η λειτουργία του RTC έχει ως εξής: Ο μετρητής αυτός αυξάνει την τιμή του κατά ένα κάθε χτύπο ενός ρολογιού που καθορίζεται από την εφαρμογή. Για την παραγωγή του ρολογιού αυτού χρησιμοποιείται ένας ταλαντωτής ή ένα κύκλωμα RC που λειτουργεί ως ταλαντωτής. Με την χρήση κατάλληλου διαιρέτη συχνότητας (prescaler) που επιλέγεται από το πρόγραμμα εφαρμογής μπορεί να προκύψει ένα ρολόι με καθορισμένη συχνότητα. Η τιμή του διαιρέτη συχνότητας καθορίζεται με βάση την τιμή ενός 16 bit καταχωρητή που λαμβάνει την τιμή του με βάση των παρακάτω τύπο : f rtc f input 2 ( PSEL1) Όπου η f rtc είναι η συχνότητα που προκύπτει του ρολογιού του RTC, f input είναι η συχνότητα του ταλαντωτή που χρησιμοποιείται για την παραγωγή του ρολογιού και PSEL είναι η τιμή την οποία καθορίζει η εκάστοτε εφαρμογή, έτσι ώστε να επιλέξει την επιθυμητή συχνότητα του ρολογιού. Με βάση το ρολόι που προκύπτει αυξάνει η τιμή του μετρητή κατά ένα κάθε χτύπο του ρολογιού. Μετά από N+1 αυξήσεις της τιμής του μετρητή, όπου το N καθορίζεται από το πρόγραμμα της εκάστοτε εφαρμογής, προκαλείται μια διακοπή στην CPU έτσι ώστε να εκτελεστεί μια κατάλληλη ρουτίνα διακοπής. Η ρουτίνα διακοπής είναι υπεύθυνη να επαναθέσει την μάσκα της διακοπής, ώστε το ρολόι να αρχίσει ξανά την λειτουργία του. Στην περίπτωση του λογισμικού που υλοποιήθηκε, ο ταλαντωτής που επιλέχθηκε είναι ένας ταλαντωτής του συστήματος με συχνότητα λειτουργίας 32 KHz, ενώ η τιμή του PSEL που επιλέχθηκε είναι το 0. Τελικά ως τιμή αναφοράς του μετρητή τέθηκε το 0, με αποτέλεσμα κάθε αύξηση της τιμής του μετρητή κατά 1 να προκαλεί διακοπή στο σύστημα. Με αυτόν τον τρόπο ο μετρητής προκαλεί στο σύστημα διακοπές το δευτερόλεπτο δηλαδή μια διακοπή κάθε 62.5 μs. Λαμβάνοντας υπόψη ότι η ρουτίνα εξυπηρέτησης της διακοπής του μετρητή είναι υπεύθυνη για τη δειγματοληψία του σήματος, επιτυγχάνεται δειγματοληψία του σήματος με συχνότητα 16 KHz (ή αλλιώς η λήψη 16 KiloSamples per second). 65
66 Η ρουτίνα διακοπής του μετρητή πραγματικού χρόνου (RTC) είναι υπεύθυνη για την δειγματοληψία του σήματος, τον υπολογισμό της χρονικής στιγμής που γίνεται η λήψη των δειγμάτων, καθώς και για τον υπολογισμό της ενεργού τιμής της τάσης (Vrms), του μέτρου της συνολικής ισχύος του φορτίου (S) καθώς και του συντελεστή απόδοσης (pf ή cosφ) Επικοινωνία μέσω θύρας USB Η αποστολή των δεδομένων γίνεται μέσω της θύρας USB του μικροελεγκτή. Ο μικροελεγκτής μπορεί να υποστηρίξει διαφορετικά πρότυπα για επικοινωνία με εξωτερικές συσκευές, καθώς μπορεί σε ένα δίκτυο συνδεδεμένων συσκευών να λειτουργήσει και ως «συσκευή» (device) αλλά και ως «οικοδεσπότης» (host). Το πρότυπο αυτό λειτουργίας που παρέχει ονομάζεται On The Go (OTG) και του παρέχει την δυνατότητα να αποτελεί τον «αφέντη» (Master) ή τον «σκλάβο» (slave) σε ένα δίκτυο υπολογιστών. To υλικό που διαθέτει ο μικροελεγκτής μπορεί να λειτουργήσει σύμφωνα με τα παρακάτω πρότυπα: Το USB HID (Human Interface Device Class), που αποτελεί μια κλάση λειτουργίας του USB που του επιτρέπει να «αλληλεπιδρά» με τον άνθρωπο. Χαρακτηριστικά παραδείγματα χρήσης τέτοιου προτύπου αποτελεί το ποντίκι (mouse) και το πληκτρολόγιο (keyboard) ενός προσωπικού υπολογιστή. Το USB MSC (mass storage device class), που αποτελεί μια κλάση λειτουργίας του USB κατάλληλη για μεταφορά και αποθήκευση αρχείων και δεδομένων σε εξωτερικά αποθηκευτικά μέσα όπως εξωτερικούς σκληρούς δίσκους, εξωτερικές μνήμες flash κτλ. Ο μικροελεγκτής μπορεί με την χρήση ενός τέτοιου πρωτοκόλλου, για παράδειγμα, να αποθηκεύει δεδομένα σε μια SD card. Το USB CDC (Composite Device Communication), που αποτελεί ένα πρωτόκολλο που ενσωματώνει και περιλαμβάνει διαφορετικά είδη διεπαφών μεταξύ μιας συσκευής και ενός οικοδεσπότη. Με χρήση αυτής της κλάσης μπορεί να αναπτυχθεί μια διεπαφή που θα προσομοιάζει μια απλή σειριακή επικοινωνία, με ταχύτητα όμως πολύ μεγαλύτερη του απλού προτύπου της RS232 ή της RS485. Στο λογισμικό που υλοποιήσαμε χρησιμοποιήσαμε το πρωτόκολλο USB CDC για να δημιουργήσουμε μια εικονική απλή σειριακή επικοινωνία (Virtual Serial Communication) μεταξύ της συσκευής και του υπολογιστή. Τα κύρια πλεονεκτήματα από μια τέτοια υλοποίηση είναι η απλότητα που παρέχει καθώς δεν απαιτεί ανάπτυξη οδηγών (drivers) ειδικού σκοπού από την πλευρά του οικοδεσπότη, ενώ τα διαφορετικά λειτουργικά συστήματα των προσωπικών υπολογιστών παρέχουν κατάλληλη διεπαφή προγραμματισμού εφαρμογών, για την ανάπτυξη λογισμικού επεξεργασίας των δεδομένων στην πλευρά του προσωπικού υπολογιστή, καθώς και η μεγάλη εξοικείωση των προγραμματιστών ενσωματωμένων συστημάτων με αυτό το πρωτόκολλο επικοινωνίας. Στην περίπτωση της απλής σειριακής θύρας η αρχιτεκτονική του συστήματος είναι η εξής : Η εφαρμογή που της ενσωματωμένης εφαρμογής (Embedded Application) για να επικοινωνήσει με τον ηλεκτρονικό υπολογιστή γενικής χρήσης (PC) κάνει χρήση των συναρτήσεων του οδηγού (UART driver) της σειριακής θύρας. 66
67 Ο οδηγός της σειριακής θύρας διαχειρίζεται το υλικό μέρος της θύρας (UART Hardware) ώστε να στείλει τα δεδομένα μέσω της θύρας αυτής. Από την πλευρά του υπολογιστή το υλικό της σειριακής θύρας λαμβάνει τα δεδομένα. Οι οδηγοί του λειτουργικού συστήματος του ηλεκτρονικού υπολογιστή διαχειρίζονται τα δεδομένα και τα κάνουν διαθέσιμα για την εφαρμογή που εκτελείται από τον ηλεκτρονικό υπολογιστή. Η εφαρμογή από την πλευρά του ηλεκτρονικού υπολογιστή λαμβάνει τα δεδομένα κάνοντας χρήση της διεπαφής που του παρέχει το λειτουργικό σύστημα του υπολογιστή. Η διαδικασία αυτή φαίνεται στο παρακάτω σχήμα επικοινωνίας μιας ενσωματωμένης εφαρμογής με τον ηλεκτρονικό υπολογιστή μέσω μιας απλής σειριακής θύρας RS 232. Σχήμα 27 Επικοινωνία με RS 232 Στην περίπτωση μιας «εικονικής» σειριακής θύρας (Virtual Com Port), η διαδικασία αυτή είναι διαφορετική. Στην περίπτωση αυτή οι οδηγοί που χρησιμοποιούνται είναι διαφορετικοί αλλά προσομοιώνουν την απλή περίπτωση. Συνεπώς η διαδικασία που ακολουθείται τώρα είναι η παρακάτω: 67
68 Η ενσωματωμένη εφαρμογή καλεί τους οδηγούς για σειριακή επικοινωνία μέσω θύρας USB (UART USB drivers). Οι οδηγοί χρησιμοποιούν την θύρα USB για την αποστολή των δεδομένων. Η θύρα USB του ηλεκτρονικού υπολογιστή λαμβάνει τα δεδομένα. Οι οδηγοί USB (CDC drivers) του ηλεκτρονικού υπολογιστή διαχειρίζονται τα δεδομένα που λαμβάνει ο υπολογιστής. Η εφαρμογή που εκτελείται από τον ηλεκτρονικό υπολογιστή λαμβάνει τα δεδομένα που ελήφθησαν μέσω της θύρας USB, χρησιμοποιώντας την ίδια διεπαφή με την περίπτωση της απλής σειριακής θύρας. Το λειτουργικό σύστημα του ηλεκτρονικού υπολογιστή είναι υπεύθυνο να παρέχει τα δεδομένα στην εφαρμογή με τρόπο τέτοιο ώστε η τελευταία να τα λαμβάνει με τρόπο ίδιο με αυτό της απλής σειριακή επικοινωνίας. Τα παραπάνω φαίνονται στο παρακάτω σχήμα επικοινωνίας ενός ενσωματωμένου συστήματος με έναν ηλεκτρονικό υπολογιστή γενικής χρήσης μέσω θύρας USB. Σχήμα 28 Επικοινωνία με USB 68
69 Ανάλυση του λογισμικού διαχείρισης της θύρας USB. Η θύρα USB όπως έχει αναφερθεί διαχειρίζεται από ειδικό Firmware, το οποίο εκτελεί ο επεξεργαστής του μικροελεγκτή. Το firmware αναπτύχθηκε από την εταιρία ATMEL σαν τμήμα του πακέτου λογισμικού ASF (AVR Software Framework), που παρέχει δωρεάν η εταιρία για υποστήριξη των μικροεπεξεργαστών της. Το συγκεκριμένο firmware παρέχει κατάλληλη προγραμματιστική διεπαφή για διαχείριση της δυνατότητας αποστολής δεδομένων μέσω της θύρας USB από την εφαρμογή που αναπτύσσεται για τον μικροεπεξεργαστή. Στο σημείο αυτό θεωρούμε σκόπιμο να γίνει μια ανάλυση της αρχιτεκτονικής του πρωτοκόλλου USΒ που θα εστιάζεται σε ορισμένα σημεία που αφορούν σημεία του λογισμικού που υλοποιήθηκε, για την καλύτερη κατανόηση βασικών σημείων του κώδικα οι οποίοι διασφαλίζουν τη σχετική επικοινωνία Εισαγωγή στο πρωτόκολλο USB (Universal Serial Bus) Γενικά Η αρχική έκδοση του USB 1.1 υποστήριζε δύο ταχύτητες αποστολής δεδομένων, την πλήρη ταχύτητα των 12Mbits/s και τη χαμηλή ταχύτητα των 1.5Mbits/s, επιτρέποντας τη χρήση φθηνότερου υλικού. Με την δημιουργία του πρωτοκόλλου 2.0 η ταχύτητα αποστολής δεδομένων αυξήθηκε ώστε να υποστηρίζει ταχύτητα αποστολής δεδομένων της τάξης των 480 Mbits/s (υψηλή ταχύτητα αποστολής). Τα χαρακτηριστικά του πρωτοκόλου 2.0 περιγράφονται στο εγχειρίδιο του USB [17], και παρουσιάζονται παρακάτω εν συντομία. Στο πρωτόκολλο USB την ευθύνη για την επικοινωνία την έχει ο οικοδεσπότης (host), οπότε σε κάθε δίαυλο επικοινωνίας USB μπορεί να υπάρχει ένας μόνο οικοδεσπότης. Παρόλα αυτά η εισαγωγή του πρωτοκόλλου OTG (On The Go) παρέχει μια δυνατότητας «διαπραγμάτευσης» μεταξύ δύο συσκευών για τον ρόλο του οικοδεσπότη, έτσι ενώ σε κάποια δεδομένη στιγμή μια από τις δύο συσκευές μπορεί να έχει τον ρόλο του οικοδεσπότη το πρωτόκολλο προβλέπει την δυνατότητα εναλλαγής του ρόλου αυτού μεταξύ δύο συσκευών μετά από κατάλληλη διαπραγμάτευση. Στο πρωτόκολλο του USB ο οικοδεσπότης είναι υπεύθυνος για την πραγματοποίηση της επικοινωνίας. Το USB όπως έχει αναφερθεί πρόκειται για έναν σειριακό δίαυλο επικοινωνίας. Χρησιμοποιεί 4 διαφορετικά καλώδια εκ των οποίων τα δυο αποτελούν την τροφοδοσία (+5V, και γείωση). Μέσω αυτών των δύο καλωδίων μπορεί να γίνεται η τροφοδοσία της συσκευής από τον οικοδεσπότη, χωρίς να απαιτείται η συσκευή να έχει δική της ξεχωριστή τροφοδοσία. Τα υπολειπόμενα δυο αποτελούν ένα διαφορικό ζεύγος για την αποστολή δεδομένων (D+ και D ). Το USB υποστηρίζει την δυνατότητα άμεσης σύνδεσης και λειτουργίας (plug n play), αφού οι οδηγοί που χρησιμοποιούνται μπορούν να φορτώνονται και να ξεφορτώνονται δυναμικά, ενώ ο χρήστης απλώς συνδέει την συσκευή με τον υπολογιστή μέσω του 69
70 διαύλου. Όταν γίνει η σύνδεση αυτή, ο οικοδεσπότης θα αναγνωρίσει την ύπαρξη μιας νέας συσκευής και θα επικοινωνήσει με την συσκευή αυτή έτσι ώστε να πληροφορηθεί για το ποια συσκευή πρόκειται ώστε να φορτώσει τους κατάλληλους οδηγούς. Η αναγνώριση της συσκευής που συνδέθηκε, γίνεται από τον οικοδεσπότη με την χρήση δύο κωδικών που χαρακτηρίζουν την συγκεκριμένη συσκευή το PID (Product ID) και το VID (Vendor ID). Ένα επίσης πολύ σημαντικό χαρακτηριστικό του πρωτοκόλλου του USB είναι το γεγονός ότι υποστηρίζει διάφορα είδη επικοινωνίας, συγκεκριμένα υποστηρίζει επικοινωνία ελέγχου (Control), διακοπών (Interrupt), συγχρονισμένη επικοινωνία (Isochronous transfer) και αποστολή μεγάλων πακέτων πληροφορίας (Bulk transfer). Σε αντίθεση με την περίπτωση της απλής σειριακής επικοινωνίας, όπως για παράδειγμα η περίπτωση του RS 232, η επικοινωνία μέσω USB αποτελείται από πολλά επίπεδα (layers) πρωτοκόλλων. Κάθε διαδικασία επικοινωνίας μεταξύ της συσκευής και του υπολογιστή περιλαμβάνει τα εξής: Ένα πακέτο (Header) που περιλαμβάνει πληροφορίες σχετικά με τα δεδομένα που θα αποσταλούν (Token Packet). Ένα προαιρετικό πακέτο που περιλαμβάνει την πληροφορία που θέλουμε να αποστείλουμε (το πακέτο είναι προαιρετικό γιατί η συναλλαγή πακέτων μεταξύ της συσκευής και του υπολογιστή συμβαίνει και για άλλους λόγους πέραν της αποστολή δεδομένων όπως θα δούμε παρακάτω). Ένα πακέτο κατάστασης (Status Packet), το οποίο χρησιμοποιείται για την αναγνώριση σφαλμάτων κατά την αποστολή και παρέχει στοιχεία για την διόρθωση των σφαλμάτων αυτών. Σύμφωνα με το πρωτόκολλο του USB, όπως έχει αναφερθεί, τον κυρίαρχο ρόλο στην επικοινωνία μέσω του διαύλου έχει ο οικοδεσπότης (host). Αυτός είναι υπεύθυνος για τον έλεγχο των συσκευών την διατήρηση της επικοινωνίας και την λήψη ή την αποστολή τιμών. Συνεπώς το πρώτο πακέτο το δημιουργεί και το αποστέλλει ο οικοδεσπότης και το όποιο περιέχει πληροφορίες σχετικά με το αν η «συναλλαγή» μεταξύ του υπολογιστή και της συσκευής θα είναι αποστολή δεδομένων στην συσκευή ή λήψη δεδομένων από αυτήν, ποια είναι η διεύθυνση η οποία έχει παραχωρηθεί στην συσκευή καθώς και ποιο είναι «άκρο» (endpoint). Το επόμενο πακέτο περιλαμβάνει την πληροφορία που θέλουμε να αποσταλεί από ή προς την συσκευή, ενώ τέλος ακολουθεί ένα πακέτο το οποίο περιλαμβάνει πληροφορίες σχετικά με το αν τα δεδομένα ελήφθησαν επιτυχώς, ή αν το αντίστοιχο άκρο δεν είναι σε θέση να δεχτεί δεδομένα. Κοινά πεδία των πακέτων USB Τα κοινά πεδία των πακέτων USB: I. Sync (Synchronize), όλα τα πακέτα ξεκινάνε με ένα πεδίο συγχρονισμού. Το πεδίο αυτό είναι μεγέθους 8bit στην περίπτωση της χαμηλής και της πλήρους ταχύτητας και 70
71 32 bit στην περίπτωση της υψηλής ταχύτητας. Το πεδίο αυτό είναι απαραίτητο ώστε να συγχρονιστούν τα ρολόγια του παραλήπτη και του αποστολέα. II. PID (Packet ID), είναι το πεδίο που χρησιμοποιείται για την αναγνώριση του τύπου του πακέτου που πρόκειται να αποσταλεί. Χρειάζονται 4 bit για το PID, ωστόσο για να διασφαλιστεί ότι θα ληφθεί σωστά τα 4 αυτά bit επαναλαμβάνονται με αποτέλεσμα να προκύψει μια λέξη των 8bits με την μορφή που φαίνεται παρακάτω: III. ADDR (Address), το πεδίο της διεύθυνσης καθορίζει σε ποια συσκευή πρόκειται να αποσταλεί το πακέτο. Το γεγονός ότι έχει μέγεθος 7bits, του επιτρέπει να υποστηρίζει μέχρι και 127 συσκευές. Πρέπει να σημειωθεί ότι η διεύθυνση 0 δεν είναι έγκυρη, καθώς κάθε συσκευή για την οποία δεν έχει καθοριστεί ακόμα από το σύστημα ξεχωριστή διεύθυνση πρέπει να ανταποκρίνεται σε πακέτα που στέλνονται στην διεύθυνση 0. IV. ENDP (endpoint), το πεδίο του άκρου (endpoint) αποτελείται από 4bits, επιτρέποντας έτσι την ύπαρξη 16 πιθανών άκρων. V. CRC (Cyclic Redundancy Checks), το πεδίο για τον έλεγχο της ορθότητας της πληροφορίας που στάλθηκε. Στα πακέτα Token, το μέγεθος του πεδίο είναι των 5 bits ενώ στα πακέτα δεδομένων των 16 bits. VI. EOP (End Of Packet), το πεδίο αυτό αποτελείται από 2 3 bits και σηματοδοτεί την λήξη του πακέτου Τύποι πακέτων USB Υπάρχουν 4 διαφορετικά είδη πακέτων, τα πακέτα Token (Token Packets) που υποδηλώνουν τον τύπο της επικοινωνίας που θα ακολουθήσει, τα πακέτα δεδομένων (Data packets) που περιλαμβάνουν την πληροφορία που πρέπει να αποσταλεί, τα πακέτα χειραψίας (Handshake packets) που χρησιμοποιούνται για επιβεβαίωση λήψης των δεδομένων ή για την ενημέρωση σχετικά με τυχόν σφάλματα κατά την μεταφορά και τα πακέτα αρχής πλαισίου (Start of Frame packets), τα οποία υποδηλώνουν την αρχή ενός νέου πλαισίου. Πακέτα Token Υπάρχουν τρεις τύποι πακέτων token: 1. In, που ενημερώνει την συσκευή ότι ο οικοδεσπότης επιθυμεί να κάνει λήψη των δεδομένων. 2. Out, που ενημερώνει την συσκευή ότι ο οικοδεσπότης επιθυμεί να αποστείλει δεδομένα. 3. Setup, αυτός ο τύπος πακέτου token χρησιμοποιείται για να ξεκινήσει η επικοινωνία ελέγχου. Η μορφή των πακέτων Token πρέπει ακολουθεί την παρακάτω φόρμα: 71
72 Πακέτα δεδομένων Υπάρχουν δύο τύποι πακέτων δεδομένων (Data0 και Data1), καθένας από τους οποίους έχει τη δυνατότητα να αποστείλει έως και 1024 bytes δεδομένων. H περίπτωση της υψηλής ταχύτητας αποστολής περιλαμβάνει δύο επιπλέον τύπους πακέτων δεδομένων (DATA2, MDATA). Τα πακέτα δεδομένων θα πρέπει να έχουν τελικά την παρακάτω μορφή: Πακέτα Χειραψίας Υπάρχουν τρεις τύποι πακέτων χειραψίας (handshake packets): 1. ACK, πακέτο για την ενημέρωση του αποστολέα ότι το πακέτο πληροφορίας λήφθηκε με επιτυχία. 2. NAK, πακέτο το οποίο ενημερώνει τον οικοδεσπότη ότι η συσκευή δεν μπορεί προσωρινά να δεχτεί ή να αποστείλει δεδομένα. Επίσης χρησιμοποιείται στην περίπτωση επικοινωνίας μέσω διακοπών ώστε να ενημερωθεί ο οικοδεσπότης ότι δεν υπάρχουν δεδομένα προς αποστολή. 3. STALL, ενημερώνεται ο οικοδεσπότης ότι η συσκευή βρίσκεται σε κατάσταση όπου απαιτείται η μεσολάβηση του οικοδεσπότη. Τα πακέτα χειραψίας πρέπει να έχουν την παρακάτω μορφή: Πακέτα αρχής νέου πλαισίου Το πακέτο αρχής νέου πλαισίου (Start of Frame Packet (SOF)) αποτελείται από έναν αριθμό πακέτου που αναπαρίσταται από 11bits, και αποστέλλεται από τον οικοδεσπότη κάθε 1ms στην περίπτωση πλήρους ταχύτητας και κάθε 125μs στην περίπτωση υψηλής ταχύτητας. Τα πακέτα αυτά έχουν την παρακάτω μορφή: Άκρα και ροές Το υλικό του ελεγκτή της θύρας USB περιλαμβάνει ορισμένους απομονωτές για την προσωρινή αποθήκευση των πακέτων που λαμβάνονται. Κάθε απομονωτής θεωρείται ότι αποτελεί ένα ξεχωριστό άκρο. Ένα παράδειγμα λειτουργίας του ελεγκτή είναι το παρακάτω: 72
73 Ο οικοδεσπότης στέλνει στην συσκευή μια αίτηση αναγνώρισης συσκευής. Το υλικό της θύρας USB, θα αντιγράψει την πληροφορία αυτή στο κατάλληλο άκρο (endpoint). Η τιμή του άκρου στο οποίο θα αντιγραφεί η τιμή καθορίζεται από την τιμή του πεδίο άκρου (endpoint field) στο πακέτο του πακέτου Setup. Στην συνέχεια το υλικό θα στείλει ένα πακέτο χειραψίας ώστε να ενημερώσει την συσκευή ότι έχει ληφθεί η αίτηση, προκαλώντας έτσι μια διακοπή στον μικροελεγκτή. Το firmware τότε του μικροεπεξεργαστή είναι υπεύθυνο να διαβάσει και να διαχειριστεί την αίτηση αναγνώρισης συσκευής. Άκρα (Endpoints) Τα άκρα μπορούν να χαρακτηριστούν ως οι πηγές των δεδομένων. Τα άκρα αποτελούν τους απομονωτές διαμέσου των οποίων επιτυγχάνεται η επικοινωνία μεταξύ του οικοδεσπότη και της συσκευής. Καθώς η επικοινωνία διαμέσου του διαύλου του USB ελέγχεται εξ ολοκλήρου από τον οικοδεσπότη, η χρήση των άκρων διασφαλίζει ότι είναι εφικτή η επικοινωνία με την κατά το δυνατόν λιγότερη συμμετοχή της συσκευής. Η λειτουργία τους αυτή μπορεί να φανεί καλύτερα μέσα από το παρακάτω παράδειγμα: Στο επίπεδο του λογισμικού του «οικοδεσπότη» ο οδηγός της συσκευής αποστέλλει ένα πακέτο σε ένα άκρο (endpoint) της συσκευής. Η αποστολή του πακέτου θα προκαλέσει μια διακοπή στην συσκευή όπως αναφέρθηκε παραπάνω και θα εκτελεστεί το κατάλληλο firmware. Το firmware της συσκευής θα διαβάσει τα δεδομένα από το άκρο στο οποίο τοποθετήθηκαν από τον οικοδεσπότη. Καθώς η συσκευή δεν μπορεί να αποστείλει δεδομένα απευθείας μέσω του διαύλου, αφού αυτός ελέγχεται εξ ολοκλήρου από τον οικοδεσπότη, η συσκευή αποθηκεύει τα δεδομένα που θέλει να αποστείλει στο άκρο. Τα δεδομένα παραμένουν αποθηκευμένα στο άκρο μέχρι ο οικοδεσπότης να αποστείλει ένα πακέτο IN, ζητώντας να λάβει τα δεδομένα από το άκρο. Τα άκρα αποτελούν παράλληλα την διεπαφή ανάμεσα στο firmware της συσκευής και στο υλικό (ελεγκτής) της θύρας USB της συσκευής. Πρέπει να επισημανθεί ότι όλες οι συσκευές θα πρέπει να υποστηρίζουν την χρήση του άκρου 0. Στο άκρο αυτό λαμβάνονται όλες αιτήσεις αναγνώρισης της κατάστασης της συσκευής, κατά την περίοδο της απαρίθμησης (δηλαδή κατά την περίοδο αναγνώρισης της συσκευής), αν δεν υποστηρίζεται αυτό το άκρο η συσκευή δεν μπορεί να αναγνωριστεί από τον οικοδεσπότη. Ροές δεδομένων (Pipes) Παρόλο που η συσκευή αποστέλλει και λαμβάνει δεδομένα μέσω μιας σειράς άκρων, το λογισμικό του οικοδεσπότη «αντιλαμβάνεται» την μεταφορά δεδομένων ως ροή δεδομένων. Οι ροές έχουν ένα σύνολο παραμέτρων που σχετίζονται με αυτές όπως το τι 73
74 εύρος ζώνης τους έχει ανατεθεί, τι είδος μεταφοράς υποστηρίζουν (ελέγχου (control), φορτίου (bulk), συγχρονισμένη (isochronous) ή διακοπών), την κατεύθυνση μεταφοράς των δεδομένων καθώς και το μέγιστο μέγεθος πακέτου. Για παράδειγμα μια ροή αποτελεί η διπλής κατεύθυνσης ροή που αποτελείται από το άκρο 0 (endpoint 0) IN και OUT και η οποία υποστηρίζει μεταφορά δεδομένων τύπου ελέγχου (Control transfer). Το πρωτόκολλο USB υποστηρίζει δύο είδη ροών Τη Ροή Ρεύματος δεδομένων (Stream Pipe), στην οποία το είδος των δεδομένων που αποστέλλονται και λαμβάνονται δεν είναι καθορισμένο. Οποιοσδήποτε τύπος δεδομένων μπορεί να μεταφερθεί διαμέσου των άκρων εισόδου και εξόδου (IN και OUT). Αυτού του είδους οι ροές δεδομένων υποστηρίζουν επικοινωνία φορτίου (bulk), συγχρονισμένη (isochronous) ή διακοπών (interrupt), ενώ μπορούν να ελέγχονται είτε από τον οικοδεσπότη είτε από την συσκευή. Την Ροή Μηνυμάτων (Message Pipe), στην οποία τα δεδομένα έχουν προκαθορισμένη μορφή. Αυτού του είδους οι ροές ελέγχονται από τον οικοδεσπότη. Η αποστολή δεδομένων σε αυτές τις ροές γίνεται με την έκδοση αίτησης από τον οικοδεσπότη, τότε τα δεδομένα αποστέλλονται στην επιθυμητή κατεύθυνση ανάλογα με την αίτηση η οποία εκδόθηκε. Συνεπώς, οι ροές μηνυμάτων επιτρέπουν την μεταφορά δεδομένων και προς τις δύο κατευθύνσεις. Πρέπει να επισημανθεί ότι αυτού του είδος οι ροές υποστηρίζουν μόνο την επικοινωνία τύπου ελέγχου (Control) ανάμεσα στον οικοδεσπότη και τη συσκευή Κατηγορίες επικοινωνίας Όπως έχει ήδη αναφερθεί, το πρωτόκολλο του USB προδιαγράφει 4 κατηγορίες επικοινωνίας: Επικοινωνία Ελέγχου (Control Transfer) Επικοινωνία Διακοπών (Interrupt Transfer) Συγχρονισμένη επικοινωνία (Isochronous Transfer) Επικοινωνία φορτίου (Bulk Transfer) Επικοινωνία Ελέγχου Η επικοινωνία ελέγχου χρησιμοποιείται για την αρχικοποίηση της επικοινωνίας μεταξύ του οικοδεσπότη και της συσκευής. Το σύνολο των λειτουργιών για την απαρίθμηση (enumeration) της συσκευής από τον οικοδεσπότη πραγματοποιούνται με την χρήση αυτής της κατηγορίας επικοινωνίας. Το μέγεθος των πακέτων αυτής της κατηγορίας είναι των 8byte για επικοινωνία χαμηλής ταχύτητας (low speed), 64bytes στην περίπτωση πλήρους ταχύτητας (full speed), ενώ στην περίπτωση υψηλής ταχύτητας υποστηρίζονται πακέτα των 8, 16, 32 και 64 bytes. Αυτή η κατηγορία επικοινωνίας μπορεί να περιλαμβάνει 3 στάδια. 74
75 Στάδιο ρύθμισης (Setup Stage). Κατά το στάδιο αυτό στέλνεται η αίτηση επικοινωνίας από τον οικοδεσπότη (host) στην συσκευή (device). Αυτό το στάδιο αποτελείται από 3 διαφορετικά πακέτα. Αρχικά αποστέλλεται το πακέτο ρύθμισης που περιλαμβάνει την διεύθυνση και τον αριθμό του άκρου (endpoint). Στη συνέχεια αποστέλλεται το πακέτο πληροφορίας το οποίο είναι τύπου data0 και το οποίο περιλαμβάνει ένα πακέτο Setup που αναφέρει το είδος της αίτησης του οικοδεσπότη. Το τελευταίο πακέτο είναι ένα πακέτο χειραψίας, το οποίο χρησιμοποιείται για την εξακρίβωση επιτυχής λήψης της πληροφορίας ή για να υποδείξει κάποιο σφάλμα. Εάν η λήψη των δεδομένων γίνει χωρίς σφάλματα (έλεγχος πεδίων CRC και PID), τότε ο ελεγκτής αποστέλλει ένα πακέτο χειραψίας ACK, διαφορετικά αγνοεί τα δεδομένα που ελήφθησαν και δεν αποστέλλει κάποιο πακέτο χειραψίας. Αυτό συμβαίνει διότι ο ελεγκτής δεν μπορεί να εκδώσει ένα πακέτο STALL ή NAK σαν ανταπόκριση σε ένα πακέτο Setup. Στάδιο μεταφοράς Δεδομένων. Το στάδιο αυτό αποτελείται από μια ή πολλαπλές μεταφορές δεδομένων από και προς τον οικοδεσπότη. Η αίτηση Setup καθορίζει τον αριθμό των δεδομένων που θα μεταφερθούν σε αυτό το στάδιο. Αν ο αριθμός των δεδομένων που ζητείται να μεταφερθούν από ή προς τον οικοδεσπότη ξεπερνούν το μέγεθος του μέγιστου πακέτου που μπορεί να μεταφερθεί, τότε τα δεδομένα μεταφέρονται σε πολλαπλές μεταφορές, όπου σε κάθε μεταφορά δεδομένων μεταφέρονται τόσα δεδομένα όσο είναι το μέγεθος του μέγιστου πακέτου. Υπάρχουν δυο πιθανά σενάρια στο στάδιο της μεταφοράς δεδομένων: - IN: Όταν ο οικοδεσπότης είναι έτοιμος να λάβει δεδομένα ελέγχου (control data) εκδίδει ένα Token πακέτο τύπου ΙΝ. Αν η συνάρτηση λάβει το Token πακέτο τύπου IN με κάποιο σφάλμα, τότε το αγνοεί. Αν το Token πακέτο έχει ληφθεί σωστά, η συσκευή μπορεί να απαντήσει είτε με ένα πακέτο DATA που περιέχει τα δεδομένα ελέγχου για αποστολή, είτε με ένα πακέτο που δείχνει ότι το άκρο (endpoint) περιείχε σφάλμα, είτε με ένα πακέτο NAK που υποδεικνύει ότι το άκρο δουλεύει αλλά δεν έχει δεδομένα προς αποστολή. Σχήμα 29 Στάδιο μεταφοράς δεδομένων έκδοση πακέτων IN και OUT 75
76 - OUT: Όταν ο οικοδεσπότης χρειάζεται να στείλει στη συσκευή ένα πακέτο δεδομένων ελέγχου, αποστέλλει ένα Token πακέτο τύπου OUT το οποίο ακολουθείται από ένα πακέτο ελέγχου που περιέχει τα δεδομένα ελέγχου. Αν υπάρχει αλλοίωση στο Token πακέτο αυτό ή στο πακέτο ελέγχου, τότε η συνάρτηση αγνοεί το πακέτο. Εάν ο απομονωτής του άκρου της συνάρτησης ήταν άδειος και έχει μεταφέρει τα δεδομένα στον απομονωτή του άκρου τότε αποστέλλει ένα πακέτο ACK πληροφορώντας τον host ότι έχει λάβει επιτυχώς τα δεδομένα. Εάν ο απομονωτής του άκρου δεν είναι άδειος λόγω της επεξεργασίας του προηγούμενου πακέτου, τότε η συνάρτηση επιστρέφει ένα πακέτο NAK. Εάν το άκρο παρουσιάσει λάθος και ενεργοποιηθεί το halt bit, τότε επιστρέφει ένα πακέτο STALL. Στάδιο κατάστασης (status stage), το οποίο αναφέρει την κατάσταση της συνολικής αίτησης και το οποίο διαφέρει ανάλογα με την κατεύθυνση της μεταφοράς. Η αναφορά της κατάστασης πραγματοποιείται πάντα από τη συνάρτηση. - IN: Αν ο οικοδεσπότης αποστείλει ένα ή περισσότερα Token πακέτα τύπου IN κατά το στάδιο μεταφοράς δεδομένων προκειμένου να λάβει δεδομένα, τότε ο οικοδεσπότης πρέπει να επικυρώσει την επιτυχή λήψη των δεδομένων. Αυτό μπορεί να γίνει με τον οικοδεσπότη να αποστέλλει ένα Token πακέτο τύπου OUT ακολουθούμενο από ένα πακέτο δεδομένων με μηδενικό περιεχόμενο. Η συνάρτηση μπορεί τώρα να αναφέρει την κατάστασή της κατά το στάδιο χειραψίας. Ένα πακέτο ACK υποδηλώνει ότι η συνάρτηση έχει πραγματοποιήσει την εντολή και είναι έτοιμη να αποδεχτεί μια άλλη εντολή. Εάν εμφανιστεί λάθος κατά την πραγματοποίηση της εντολής παρουσιαστεί λάθος, τότε η συνάρτηση αποστέλλει ένα πακέτο STALL. Εάν η συνάρτηση δεν έχει ολοκληρώσει τη λειτουργία της τότε επιστρέφει ένα πακέτο τύπου ΝΑΚ υποδηλώνοντας στον οικοδεσπότη να επαναλάβει το στάδιο κατάστασης αργότερα. Σχήμα 30 Στάδιο κατάστασης επικύρωση αποστολής πακέτου IN - OUT: Εάν ο οικοδεσπότης απέστειλε ένα ή περισσότερα Token πακέτα τύπου OUT κατά το στάδιο μεταφοράς δεδομένων τότε η συνάρτηση θα επικυρώσει την επιτυχημένη αποδοχή δεδομένων αποστέλλοντας ένα πακέτο μηδενικού μήκους ως απάντηση σε ένα token τύπου IN. Εάν παρουσιαστεί λάθος, τότε αποστέλλει ένα πακέτο τύπου STALL ενώ εάν ακόμα επεξεργάζεται δεδομένα τότε αποστέλλει ένα πακέτο τύπου ΝΑΚ ζητώντας από το host να επαναλάβει αργότερα την όλη διαδικασία του σταδίου κατάστασης. Σχήμα 31 Στάδιο κατάστασης επικύρωση αποστολής πακέτου OUT 76
77 Προκειμένου να γίνουν κατανοητά τα παραπάνω, θα τα δούμε λίγο στην πράξη. Ας υποθέσουμε ότι ο οικοδεσπότης επιθυμεί να αποστείλει μια αίτηση περιγραφέα συσκευής κατά τη διαδικασία της απαρίθμησης. Τα πακέτα που αποστέλλονται φαίνονται στο ακόλουθο σχήμα. Ο οικοδεσπότης θα στείλει ένα Token πακέτο ρυθμίσεων υποδεικνύοντας στη συνάρτηση ότι το πακέτο που ακολουθεί είναι ένα πακέτο ρυθμίσεων. Το πεδίο διευθύνσεων θα κρατήσει τη διεύθυνση της συσκευής από όπου ο οικοδεσπότης αιτείται την αναγνώριση συσκευής. Ο αριθμός του άκρου θα πρέπει να είναι μηδέν, οπότε αναφέρεται στην προκαθορισμένη ροή (pipe). Ο οικοδεσπότης θα αποστείλει τότε ένα πακέτο τύπου DATA0. Αυτό θα έχει ένα «φορτίο» μεγέθους 8 bytes που είναι η αίτηση αναγνώρισης συσκευής. Η συνάρτηση του USB επικυρώνει τότε ότι το πακέτο ρυθμίσεων έχει αναγνωστεί σωστά. Εάν υπάρξουν λάθη στο πακέτο, η συσκευή απλά αγνοεί το πακέτο. Στην περίπτωση αυτή ο οικοδεσπότης θα ξαναστείλει το πακέτο ύστερα από μια σύντομη καθυστέρηση. 1. Setup Token 2. Data0 Packet 3. Ack Handshake Πίνακας 10 Αίτηση περιγραφέα συσκευής Sync PID ADDR ENDP CRC5 EOP Sync PID Data0 CRC16 EOP Sync PID EOP Αριθμός διεύθυνσης και άκρου Αίτηση περιγραφέα συσκευής Επικύρωση από συσκευή, πακέτο ρυθμίσεων Τα παραπάνω τρία πακέτα αντιπροσωπεύουν την πρώτη «συναλλαγή» μέσω USB. Η συσκευή θα αποκωδικοποιήσει τώρα τα 8 bytes που ελήφθησαν και θα προσδιορίσει εάν επρόκειτο για αίτηση περιγραφέα συσκευής. Η συσκευή θα προσπαθήσει να αποστείλει τον περιγραφέα συσκευής, που θα αποτελέσει την επόμενη συναλλαγή μέσω USB Πίνακας 11 Αποστολή περιγραφέα συσκευής (1) 1. In Token Sync PID ADDR ENDP CRC5 EOP 2. Data1 Packet 3. Ack Handshake Sync PID Data1 CRC16 EOP Sync PID EOP Αριθμός διεύθυνσης και άκρου Πρώτα 8 Bytes του περιγραφέα συσκευής Ο οικοδεσπότης επικυρώνει το πακέτο 77
78 Πίνακας 12 Αποστολή περιγραφέα συσκευής (2) 1. In Token Sync PID ADDR ENDP CRC5 EOP 2. Data0 Packet 3. Ack Handshake Sync PID Data0 CRC16 EOP Sync PID EOP Αριθμός διεύθυνσης και άκρου Τα τελευταία 4 bytes Ο οικοδεσπότης επικυρώνει το πακέτο Στην περίπτωση αυτή έχουμε υποθέσει ότι το μέγιστο μέγεθος φορτίου είναι ίσο με 8 bytes. Ο οικοδεσπότης αποστέλλει ένα Token πακέτο τύπου IN, υποδεικνύοντας στη συσκευή ότι μπορεί να αποστείλει δεδομένα για αυτό το άκρο. Εφόσον το μέγιστο μέγεθος πακέτου είναι 8 bytes, ο περιγραφέας συσκευής που είναι 12 bytes θα πρέπει να χωριστεί σε κομμάτια που έχουν μέγεθος 8 bytes το καθένα (δηλαδή ένα τέτοιο κομμάτι στην περίπτωσή μας), εκτός από το τελευταίο. Ο οικοδεσπότης πρέπει να αναγνωρίζει να επικυρώνει κάθε πακέτο δεδομένων που του αποστέλλουμε. Όταν αποσταλεί η αναγνώριση συσκευής ακολουθεί μια «συναλλαγή» κατάστασης. Αν οι συναλλαγές ήταν επιτυχείς τότε ο οικοδεσπότης θα αποστείλει ένα πακέτο μηδενικού μεγέθους υποδηλώνοντας ότι η συνολική συναλλαγή υπήρξε επιτυχής. Η συνάρτηση τότε απαντάει με ένα πακέτο μηδενικού μεγέθους υποδηλώνοντας την κατάστασή της. 1. Out Token 2. Data1 Packet 3. Ack Handshake Πίνακας 13 Συναλλαγή κατάστασης Sync PID ADDR ENDP CRC5 EOP Sync PID Data1 CRC16 EOP Sync PID EOP Αριθμός διεύθυνσης και άκρου Πακέτο μηδενικού μήκους Η συσκευή επικυρώνει την όλη συναλλαγή Περιγραφείς Όλες οι συσκευές USB έχουν μια ιεραρχία από περιγραφείς (descriptors) που περιγράφουν στον οικοδεσπότη πληροφορίες όπως το τι είναι η συσκευή, ποιος την κατασκευάζει, τι έκδοση USB υποστηρίζει, τον αριθμό και τύπο των άκρων κλπ (σχήμα). Οι πιο κοινοί περιγραφείς USB είναι οι παρακάτω: 78
79 Περιγραφείς συσκευής (device descriptors) Περιγραφείς διαμορφώσεων (configuration descriptors) Περιγραφείς διεπαφής (interface descriptors) Περιγραφείς άκρων (endpoint descriptors) Περιγραφείς ακολουθιών (string descriptors) Σχήμα 32 Ιεραρχία περιγραφέων Οι συσκευές USB μπορεί να περιέχουν μόνο έναν περιγραφέα συσκευής. Ο περιγραφέας συσκευής περιλαμβάνει πληροφορίες όπως την έκδοση USB στην οποία λειτουργεί η συσκευή, οι κωδικοί Product και Vendor ID που χρησιμοποιούνται για τη φόρτωση των κατάλληλων drivers και τον αριθμό των configurations που μπορεί να έχει η συσκευή. Ο αριθμός των διαμορφώσεων (configurations) υποδηλώνει τον αριθμό των διακλαδώσεων των περιγραφέων διαμορφώσεων που ακολουθούν. Ο περιγραφέας των διαμορφώσεων εκφράζει τιμές όπως η κατανάλωση ισχύος της εν λόγω συσκευής, εάν η συσκευή τροφοδοτείται μέσω της θύρας ή όχι και τον αριθμό των διεπαφών που διαθέτει. Όταν μια συσκευή απαριθμείται, ο οικοδεσπότης διαβάζει τον περιγραφέα συσκευής και πραγματοποιεί μια απόφαση όσον αφορά ποιες διαμορφώσεις να ενεργοποιήσει. Κάθε στιγμή μπορεί να είναι μόνο μια διαμόρφωση ενεργοποιημένη. Για παράδειγμα μπορεί να υπάρχει μια ρύθμιση παροχής τροφοδοσίας μέσω της θύρας και μια ρύθμιση τροφοδοσία από τρίτη πηγή. Ο driver της συσκευής μπορεί να ρυθμίσει ποια από τις δυο διαμορφώσεις θα ισχύσει, ανάλογα με το αν ο οικοδεσπότης τροφοδοτείται από την πρίζα ή από μπαταρία κλπ. Υπάρχει γενικά ένα μεγάλο εύρος από ρυθμίσεις των διαμορφώσεων, ενώ σημειώνουμε εδώ ότι για οποιαδήποτε αλλαγή στις διαμορφώσεις υπάρχει διακοπή της δραστηριότητας σε όλα τα άκρα. Βέβαια παρά τη δυνατότητα αυτή σπάνια διαθέτουν συσκευές περισσότερες από μια διαμορφώσεις. Ο περιγραφέας διεπαφών μπορεί να θεωρηθεί ως μια κεφαλίδα ή εναλλακτικά ομαδοποίηση των άκρων σε ένα λειτουργικό σύνολο που επιτελεί μια συγκεκριμένη και 79
80 σαφώς ορισμένη λειτουργία της συσκευής. Για παράδειγμα, σε μια συσκευή που είναι ταυτόχρονα fax, scanner και printer θα υπάρχει ένας περιγραφέας διεπαφών για καθεμιά από τις λειτουργίες. Είναι δυνατό να υπάρχουν ανά πάσα στιγμή περισσότεροι από ένας ενεργοποιημένοι περιγραφείς διεπαφών. Οι περιγραφείς διεπαφών έχουν ένα πεδίο με όνομα binterfacenumber το οποίο υποδηλώνει τον αριθμό της εκάστοτε διεπαφής και ένα πεδίο με όνομα balternatesetting το οποίο επιτρέπει άμεσες αλλαγές σε μια διεπαφή. Έστω για παράδειγμα ότι έχουμε μια συσκευή με δυο διεπαφές, μια διεπαφή που περιέχει το πεδίο binterfacenumber στο μηδέν υποδηλώνοντας ότι είναι η πρώτη αναγνώριση διεπαφής και μηδενικό πεδίο balternativesetting και μια διεπαφή που περιέχει binterfacenumber στο ένα υποδηλώνοντας ότι είναι η δεύτερη διεπαφή και επίσης μηδενικό πεδίο balternativesetting. Μπορούμε να δημιουργήσουμε μια ακόμη αναγνώριση με το binterfacenumber στο ένα υποδηλώνοντας ότι πρόκειται για τη δεύτερη διεπαφή αλλά με balternativesetting στο ένα υποδηλώνοντας ότι αποτελεί μια εναλλακτική ρύθμιση από την άλλη δεύτερη ρύθμιση. Στο παραπάνω set ρυθμίσεων χρησιμοποιούνται οι δυο πρώτοι περιγραφείς διεπαφών, αλλά με μια αίτηση SetInterface μπορούμε να ενεργοποιήσουμε την εναλλακτική δεύτερη διεπαφή, κάτι που μπορεί να γίνει ακόμη και κατά τη διάρκεια της επικοινωνίας. Το αποτέλεσμα είναι ότι μπορούν κατά τη διάρκεια των αλλαγών να παραμένουν σταθερές οι διεπαφές που δε θέλουμε να αλλάξουν, διατηρώντας έτσι τις ρυθμίσεις άκρων που διαθέτουν. Κάθε περιγραφέας άκρου προσδιορίζει τον τύπο της μεταφοράς, την κατεύθυνση, το διάστημα της διακοπής του polling και το μέγιστο μέγεθος πακέτου για κάθε άκρο. Το μηδενικό άκρο (zero endpoint) είναι το άκρο ελέγχου και δε διαθέτει περιγραφέα (σχήμα). Σχήμα 33 Διακλαδώσεις περιγραφέων διαμορφώσεων 80
81 Γενική σύνθεση περιγραφέων USB Όλοι οι περιγραφείς αποτελούνται από παρόμοιες φόρμες. Το πρώτο byte υποδηλώνει το μέγεθος του περιγραφέα και το δεύτερο τον τύπο του περιγραφέα. Εάν το μέγεθος του περιγραφέα είναι μικρότερο από το προσδιορισμένο, τότε ο οικοδεσπότης το αγνοεί, ενώ αν το μέγεθος είναι μεγαλύτερο τότε θεωρείται ότι τα επιπλέον bytes εκφράζουν τον επόμενο περιγραφέα. Πίνακας 14 Γενική φόρμα σύνθεσης περιηραφέα Offset Πεδίο Μέγεθος Τιμή Περιγραφή 0 blength 1 Αριθμός Μέγεθος περιγραφέα σε bytes 1 bdescriptiontype 1 Σταθερά Τύπος περιγραφέα 2... n Παράμετροι περιγραφέα Περιγραφείς συσκευής Ο περιγραφέας συσκευής μιας συσκευής USB εκφράζει όλη τη συσκευή και κάθε συσκευή μπορεί να διαθέτει μόνο έναν τέτοιο περιγραφέα. Περιέχει πληροφορίες που αφορούν την έκδοση USB που υποστηρίζεται, το μέγιστο μέγεθος πακέτου, τα vendor και product IDs και τον αριθμό των configurations που μπορεί να έχει η συσκευή. Η φόρμα των περιγραφέων συσκευών αποτυπώνεται παρακάτω. Πίνακας 15 Φόρμα περιγραφέων συσκευών Offset Πεδίο Μέγεθος Τιμή Περιγραφή 0 blength 1 Αριθμός Μέγεθος περιγραφέα σε bytes (18 bytes) 1 bdescriptortype 1 Σταθερά Περιγραφέας συσκευής (0x01) 2 bcdusb 2 BCD Ποιο πρωτόκολλο USB υποστηρίζει η συσκευή 4 bdeviceclass 1 Κλάση Κώδικας κλάσης. Αν είναι ίσος με 0, κάθε διεπαφή προσδιορίζει το δικό της κώδικα κλάσης. Αν είναι ίσος με 0xFF, ο κώδικας κλάσης καθορίζεται από διανύσματα, αλλιώς το πεδίο αναφέρεται στον κώδικα κλάσης 5 bdevicesubclass 1 Υποκλάση Κώδικας υποκλάσης 6 bdeviceprotocol 1 Πρωτόκολλο Κώδικας πρωτοκόλλου 7 bmaxpacketsize 1 Αριθμός Μέγιστο μέγεθος πακέτου για το άκρο μηδέν. Μπορεί να είναι 8, 16, 32 ή 64 8 idvendor 2 ID Vendor ID 10 idproduct 2 ID Product ID 12 bcddevice 2 BCD Αριθμός συσκευής 81
82 14 imanufacturer 1 Πίνακας 15 iproduct 1 Πίνακας 16 iserialnumber 1 Πίνακας Πίνακας περιγραφέα ακολουθίας κατασκευαστή Πίνακας περιγραφέα ακολουθίας προϊόντος Πίνακας περιγραφέα ακολουθίας σειριακού αριθμού 17 bnumconfigurations 1 Ακέραιος Αριθμός πιθανών configurations Σημειώνουμε εδώ τα εξής: Το πεδίο bcdusb εκφράζει την έκδοση USB που χρησιμοποιείται ως εξής: για την έκδοση 1.1 έχει την τιμή 0x0110 για τη έκδοση 2.0 την τιμή 0x0200 κοκ. Το πεδίο bnumconfigurations εκφράζει τον αριθμό των configurations για το εκάστοτε πρωτόκολλο USB Περιγραφείς διαμορφώσεων Μια συσκευή USB μπορεί να διαθέτει διάφορες διαμορφώσεις, αν και γενικά η πλειονότητα διαθέτει μόνο μία. Οι περιγραφείς διαμορφώσεων εκφράζουν το πώς μια συσκευή τροφοδοτείται, τη μέγιστη κατανάλωση ισχύος και των αριθμό των interfaces που έχει. Όπως είδαμε παραπάνω, μπορούν να υπάρχουν περισσότερες από μία διαμορφώσεις, οπότε όταν οι διαμορφώσεις έχουν εξεταστεί από τον οικοδεσπότη, τότε αυτός αποστέλλει μια εντολή SetConfiguration που έχει μια τιμή που αντιστοιχεί σε μια τιμή bconfigurationvalue, οπότε επιλέγεται έτσι η επιθυμητή διαμόρφωση. Πίνακας 16 Φόρμα περιγραφέων διαμορφώσεων Offset Πεδίο Μέγεθος Τιμή Περιγραφή 0 blength 1 Αριθμός Μέγεθος περιγραφέα σε bytes 1 bdescriptortype 1 Σταθερά Περιγραφέας διαμόρφωσης 2 wtotallength 2 Αριθμός Συνολικός αριθμός από bytes δεδομένων που επιστρέφονται 4 bnuminterfaces 1 Αριθμός Αριθμός των διεπαφών 5 bconfigurationvalue 1 Αριθμός Τιμή επιλογής κατάλληλης διαμόρφωσης 6 iconfiguration 1 Πίνακας Πίνακας περιγραφέα ακολουθίας που περιγράφει τη διαμόρφωση 7 bmattributes 1 Bitmap D7 Reserved D6 Εξωτερική τροφοδοσία D5 Remote Wakeup D4..0 Reserved, με τιμή 0 8 bmaxpower 1 ma Μέγιστη κατανάλωση ρεύματος. Ο αριθμός αυτός πολλαπλασιάζεται επί 2 ma ώστε να προκύψει η κατανάλωση 82
83 Περιγραφείς διεπαφών Ο περιγραφέας διεπαφών είναι η ομαδοποίηση των άκρων σε λειτουργικά σύνολα και ακολουθεί την παρακάτω φόρμα: Πίνακας 17 Φόρμα περιγραφέων διεπαφών Offset Πεδίο Μέγεθος Τιμή Περιγραφή 0 blength 1 Αριθμός Μέγεθος περιγραφέα σε bytes 1 bdescriptortype 1 Σταθερά Περιγραφέας διεπαφής. Αυξάνεται κατά ένα για κάθε νέα διεπαφή 2 binterfacenumber 1 Αριθμός Αριθμός διεπαφής 3 balternatesetting 1 Αριθμός Τιμή με την οποία μπορεί να επιλεγεί εναλλακτική ρύθμιση 4 bnumendpoints 1 Αριθμός Αριθμός των άκρων σε αυτή τη διεπαφή 5 binterfaceclass 1 Κλάση Κώδικας κλάσης 6 binterfacesubclass 1 Υποκλάση Κώδικας υποκλάσης 7 binterfaceprotocol 1 Πρωτόκολλο Κώδικας πρωτοκόλλου 8 iinterface 1 Πίνακας Πίνακας περιγραφέα ακολουθίας που περιγράφει τη διεπαφή Σημειώνουμε ότι τα πεδία binterfaceclass, binterfacesubclass και binterfaceprotocol προσδιορίζουν υποστηριζόμενες κλάσεις, οπότε μπορούν να υπάρχουν από πριν εγκατεστημένοι drivers για τις διάφορες κλάσεις ώστε να μην υπάρχει ανάγκη δημιουργίας νέων κλάσεων κάθε φορά. Περιγραφείς άκρων Οι περιγραφείς άκρων περιγράφουν άκρα διάφορα του μηδενικού, που είναι το άκρο ελέγχου. Από αυτούς τους περιγραφείς καθορίζεται οι ανάγκες όσον αφορά το bandwidth του διαύλου. Πίνακας 18 Φόρμα περιγραφέων άκρων Offset Πεδίο Μέγεθος Τιμή Περιγραφή 0 blength 1 Number Μέγεθος περιγραφέα σε bytes 1 bdescriptortype 1 Constant Περιγραφέας άκρου 2 bendpointaddress 1 Endpoint Διεύθυνση άκρου: Bits 0..3 Αριθμός άκρου Bits 4..6 Reserved (μηδέν) Bits 7 Κατεύθυνση 0 = Έξω, 1 = Μέσα 3 bmattributes 1 Bitmap Bits 0..1 Τρόπος μεταφοράς 00 = Ελέγχου 01 = Συγχρονισμένη 83
84 10 = Φορτίου 11 = Διακοπών Bits 2..7 reserved. 4 wmaxpacketsize 2 Number 6 binterval 1 Number Αν έχουμε συγχρονισμένη μεταφορά τότε Bits 3..2 = τύπος συγχρονισμού 00 = No Synchonisation 01 = Asynchronous 10 = Adaptive 11 = Synchronous Bits 5..4 = τύπος χρήσης 00 = Data Endpoint 01 = Feedback Endpoint 10 = Explicit Feedback Data Endpoint 11 = Reserved Μέγιστο μέγεθος πακέτου που το συγκεκριμένο άκρο μπορεί να στείλει ή να λάβει Τιμή σε αριθμό πλαισίων. Εκφράζει το διάστημα διακοπής για συγκεκριμένες μεταφορές. Περιγραφείς ακολουθιών Οι περιγραφείς ακολουθιών περιγράφουν πληροφορία αναγνώσιμη από το χρήστη και είναι προαιρετικοί. Είναι κωδικοποιημένοι σε φόρμα Unicode και μπορούν να στηριχθούν πολλαπλές γλώσσες. Μια λίστα με τις γλώσσες των USB IDs μπορεί να βρεθεί στο link που έχει τα Universal Serial Bus Language Identifiers (LANGIDs) version 1.0. Πίνακας 19 Προσδιορισμός υποστηριζόμενων γλωσσών Offset Πεδίο Μέγεθος Τιμή Περιγραφή 0 blength 1 Αριθμός Μέγεθος περιγραφέα σε bytes 1 bdescriptortype 1 Σταθερά Περιγραφέας ακολουθίας 2 wlangid[0] 2 Αριθμός Κώδικας πρώτης υποστηριζόμενης γλώσσας 4 wlangid[1] 2 Αριθμός Κώδικας δεύτερης υποστηριζόμενης γλώσσας n wlangid[x] 2 Αριθμός Κώδικας χιοστής υποστηριζόμενης γλώσσας 84
85 Παραπάνω φαίνεται ο μηδενικός περιγραφέας ακολουθίας. Ο οικοδεσπότης διαβάζει ποιες γλώσσες είναι διαθέσιμες και εάν υποστηρίζεται μια συγκεκριμένη γλώσσα τότε προσδιορίζεται από την αίτηση Get Descriptor(String). Όλες οι επακόλουθες ακολουθίες φαίνονται παρακάτω: Πίνακας 20 Φόρμα περιγραφέων ακολουθιών Offset Πεδίο Μέγεθος Τιμή Περιγραφή 0 blength 1 Αριθμός Μέγεθος περιγραφέα σε bytes 1 bdescriptortype 1 Σταθερά Περιγραφέας ακολουθίας 2 bstring n Unicode Ακολουθία σε Unicode Πακέτα κατάστασης αιτήσεις τύπου Standard Τα πακέτα κατάστασης χρησιμοποιούνται για την ανίχνευση και τη διαμόρφωση της συσκευής και την περάτωση κοινών λειτουργιών όπως η ρύθμιση της διεύθυνσης του USB, η αίτηση περιγραφέα συσκευής ή ο έλεγχος της κατάστασης ενός άκρου. Ένας οικοδεσπότης απαιτεί όλες οι αιτήσεις να υλοποιούνται μέσα σε 5 το πολύ δευτερόλεπτα. Έχει επίσης αυστηρότερους χρονικούς περιορισμούς όπως οι παρακάτω: Οι αιτήσεις προς τη συσκευή χωρίς δεδομένα πρέπει να ολοκληρώνονται μέσα σε 50 ms. Οι αιτήσεις προς τη συσκευή που απαιτούν την αποστολή δεδομένων πρέπει να επιστρέφουν δεδομένα μέσα σε 500 ms. Κάθε πακέτο δεδομένων πρέπει να αποστέλλεται μέσα σε 500ms μετά από την επιτυχή αποστολή του προηγούμενου. Το στάδιο κατάστασης πρέπει να έχει ολοκληρωθεί μέσα σε 50 ms από την αποστολή του τελευταίου πακέτου δεδομένων. Η εντολή SetAddress πρέπει να έχει ολοκληρωθεί και επιστρέψει την κατάσταση μέσα σε 50 ms. Η συσκευή έχει 2 ms να αλλάξει διεύθυνση προτού αποσταλεί η επόμενη αίτηση. Οι παραπάνω περίοδοι συνεπάγονται περιορισμούς στο debugging των συσκευών. Κάθε αίτηση ξεκινά με ένα πακέτο ρύθμισης μεγέθους 8 bytes και ακολουθεί την παρακάτω φόρμα: Πίνακας 21 Φόρμα πακέτου ρύθμισης Offset Πεδίο Μέγεθος Τιμή Περιγραφή 0 bmrequesttype 1 Bit Map 85 D7 Κατεύθυνση μεταφοράς δεδομένων 0 = Host to Device
86 1 = Device to Host D6..5 Tύπος 0 = Standard 1 = Class 2 = Vendor 3 = Reserved D4..0 Λήπτης 0 = Device 1 = Interface 2 = Endpoint 3 = Other = Reserved 1 brequest 1 Αριθμός Αίτηση 2 wvalue 2 Αριθμός Αριθμός 4 windex 2 Πίνακας ή offset Πίνακας 6 wlength 2 Αριθμός αριθμός των bytes που θα μεταφερθούν αν υπάρξει μεταφορά δεδομένων. Το πεδίο bmrequesttype καθορίζει την κατεύθυνση της αίτησης, το είδος της και τον παραλήπτη. Το πεδίο brequest καθορίζει την εν λόγω αίτηση. Το πεδίο bmrequesttype μπορεί να απευθύνεται σε διάφορους διαχειριστές. Τα πεδία wvalue και windex επιτρέπουν παραμέτρους να μεταφέρονται μαζί με την αίτηση. Από τα παραπάνω, θα διακρίνουμε τον τύπο αιτήσεων Standard. Υπάρχουν 8 τέτοιες αιτήσεις (Standard Device requests), όπως βλέπουμε παρακάτω: Πίνακας 22 Αιτήσεις Standard Device bmrequestt ype brequest wvalue windex wlength Δεδομένα b GET_STATUS Κατάσταση Μηδέν Μηδέν Δύο (0x00) συσκευής b CLEAR_FEATURE Επιλογέας (0x01) χαρακτηριστικού Μηδέν Μηδέν Κανένα b SET_FEATURE Επιλογέας (0x03) χαρακτηριστικού Μηδέν Μηδέν Κανένα b SET_ADDRESS Διεύθυνση (0x05) συσκευής Μηδέν Μηδέν Κανένα b Τύπος GET_DESCRIPTOR Μηδέν/ID Μέγεθος περιγραφέα και (0x06) γλώσσας περιγραφέα πίνακας Περιγραφέας b Τύπος SET_DESCRIPTOR Μηδέν/ID Μέγεθος περιγραφέα και (0x07) γλώσσας περιγραφέα πίνακας Περιγραφέας b GET_CONFIGURATION Μηδέν Μηδέν Ένα Τιμή 86
87 b (0x08) SET_CONFIGURATION (0x09) Τιμή διαμόρφωσης διαμόρφωσης Μηδέν Μηδέν Κανένα Σημειώνουμε εδώ ότι: Η αίτηση Get Status προς τη συσκευή θα επιστρέψει δύο bytes κατά τη διάρκεια της μεταφοράς δεδομένων με την ακόλουθη φόρμα: Πίνακας 23 Φόρμα αίτησης Get Status (αίτηση Standard Device) Remote Αυτοτροφ Reserved Wakeup οδότηση D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Το D0 δείχνει αν η συσκευή τροφοδοτείται από μόνη της ή μέσω του USB ενώ το D1 δείχνει εάν η συσκευή επιτρέπεται να ξυπνήσει τον οικοδεσπότη. Οι αιτήσεις Clear Feature και Set Feature απενεργοποιούν και ενεργοποιούν τις επιλογές DEVICE_REMOTE_WAKEUP and TEST_MODE της συσκευής. Με το Set Address ορίζεται κατά τη διάρκεια της απαρίθμησης μια μοναδική διεύθυνση στη συσκευή (μέγιστη τιμή το 127). Με τις αιτήσεις Set Descriptor και Get Descriptor επιστρέφεται ο προσδιορισμένος περιγραφέας μέσω του wvalue. Με την αίτηση αυτή επιστρέφονται οι περιγραφείς συσκευής, διεπαφών και άκρων μέσω της ίδιας αίτησης. Η επιστροφή των περιγραφέων ακολουθιών περιλαμβάνει και ID γλώσσας. Με τις αιτήσεις Get Configuration και Set Configuration ζητείται η θέτεται η ισχύουσα διαμόρφωση της συσκευής. Η τιμή ένα δείχνει ότι έχει επιλεγεί κάποια διαμόρφωση και η τιμή μηδέν ότι δεν έχει επιλεχθεί. Όταν θέτεται κάποια διαμόρφωση, η αίτηση έχει την τιμή του bconfigurationvalue του επιθυμητού περιγραφέα διαμόρφωσης στο lower byte για την αντίστοιχη επιλογή. Αιτήσεις Standard Interface Οι προδιαγραφές προσδιορίζουν 5 αιτήσεις όπως βλέπουμε παρακάτω: bmrequestt ype b Πίνακας 24 Αιτήσεις Standard Interface brequest wvalue windex wlength Δεδομένα GET_STATUS (0x00) Μηδέν Διεπαφή Δύο Κατάσταση διεπαφής 87
88 b b b b CLEAR_FEATURE (0x01) SET_FEATURE (0x03) GET_INTERFACE (0x0A) SET_INTERFACE (0x11) Επιλογέας χαρακτηριστικού Επιλογέας χαρακτηριστικού Διεπαφή Μηδέν Κανένα Διεπαφή Μηδέν Κανένα Μηδέν Διεπαφή Ένα Εναλλακτική ρύθμιση Εναλλακτική διεπαφή Διεπαφή Μηδέν Κανένα Η αίτηση windex δείχνει τη διεπαφή αναφοράς για τις αιτήσεις στις διεπαφές και ακολουθεί την παρακάτω φόρμα: Πίνακας 25 Φόρμα αίτησης windex Reserved Interface Number D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Η αίτηση Get Status επιστρέφει την κατάσταση της διεπαφής. Όλα τα bits είναι reserved για μελλοντική χρήση, οπότε επιστρέφεται μηδενική τιμή. Οι αιήσεις Get Interface και Set Interface θέτουν επιλογές ενεργοποίησης εναλλακτικής διεπαφής. Αιτήσεις Standard Endpoint Εδώ ακολουθείται η παρακάτω φόρμα: bmrequestt ype b b b b Πίνακας 26 Αιτήσεις Standard Endpoint brequest wvalue windex wlength Δεδομένα GET_STATUS Κατάσταση Μηδέν Άκρο Δύο (0x00) άκρου CLEAR_FEATURE Επιλογέας (0x01) χαρακτηριστικού Άκρο Μηδέν Κανένα SET_FEATURE Επιλογέας (0x03) χαρακτηριστικού Άκρο Μηδέν Κανένα SYNCH_FRAME Αριθμός Μηδέν Άκρο Δύο (0x12) πλαισίου Το πεδίο windex χρησιμοποιείται για να καθορίσει το άκρο αναφοράς και για να προσδιορίσει τη διεύθυνση και ακολουθεί την παρακάτω φόρμα: Πίνακας 27 Φόρμα αίτησης windex Reserved Κατεύθυνση Reserved Αριθμός άκρου D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Η αίτηση Get Status επιστρέφει την κατάσταση ενός άκρου και έχει την παρακάτω φόρμα: 88
89 Πίνακας 28 Φόρμα αίτησης Get Status (αίτηση Standard Endpoint) Reserved Halt D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 Η αίτηση Synch Frame δίνει αναφορά σε πλαίσιο συγχρονισμού άκρου 5.4. Ανάλυση USB Firmware Για την ενσωμάτωση του πρωτοκόλλου USB,όπως αυτό παρουσιάστηκε παραπάνω, στην εφαρμογή που υλοποιήθηκε έγινε χρήση ειδικού firmware που παρέχει η εταιρία της Atmel [13]. Το firmware αυτό παρέχει κατάλληλη προγραμματιστική διεπαφή (API) η οποία μπορεί να ενσωματωθεί στο λογισμικό της εφαρμογής. Το συγκεκριμένο firmware ονομάζεται USB device stack και παρέχει τις κατάλληλες διεπαφές για την ενσωμάτωση στην εκάστοτε εφαρμογή διαφορετικών προτύπων επικοινωνίας USB. Στην περίπτωση της εφαρμογής που ανατπύχθηκε έχει αναπτυχθεί ένα πρότυπο τύπου CDC για την αποστολή μεγάλων πακέτων πληροφορίας (bulk transfer). Το firmware της USB device stack αποτελείται από 3 τμήματα: 1. Τον ελεγκτή συσκευής USB UDC (USB Device Controller) 2. Την διεπαφή της συσκευής USB UDI (USB Device Interface) 3. Τον οδηγό συσκευής USB UDD (USB Device Driver) Ο τρόπος με τον οποίο ενσωματώνεται το firmware αυτό με την εφαρμογή φαίνεται σχηματικά παρακάτω: Σχήμα 34 Διασύνδεση USB Device Stack με την Εφαρμογή 89
90 UDD To UDD (USB Device Driver) παρέχει μια χαμηλού επιπέδου διεπαφή των οδηγών που χειρίζονται το υλικό της συσκευής USB. Όταν προκαλείται μια διακοπή από το υλικό του USB στον μικροελεγκτή τότε ο οδηγός του υλικού του USB που χειρίζεται την διακοπή καλεί τις συναρτήσεις του UDD για να εκτελεστούν οι κατάλληλες ενέργειες. To UDD περιλαμβάνει τις εξής συναρτήσεις: udd_include_vbus_monitoring, συνάρτηση παρακολούθησης για περίπτωση ύπαρξης ή μη δίαυλου USB. udd_enable, η συνάρτηση αυτή ενεργοποιεί την λειτουργία του USB σε mode συσκευής (USB Device mode). udd_disable, η συνάρτηση αυτή απενεργοποιεί την λειτουργία του USB σε mode συσκευής. udd_attach, η συνάρτηση αυτή συνδέει την συσκευή στον δίαυλο όταν αυτό είναι δυνατόν. udd_detach, η συνάρτηση αυτή αποσυνδέει την συσκευή από τον δίαυλο. udd_is_high_speed, ελέγχει αν η συσκευή του USB λειτουργεί σε mode υψηλής ταχύτητας επικοινωνίας. udd_set_address, η συνάρτηση αυτή αλλάζει την διεύθυνση USB της συσκευής. udd_getaddress, η συνάρτηση αυτή επιστρέφει την διεύθυνση USB της συσκευής. udd_get_frame_number, η συνάρτηση επιστρέφει τον αριθμό του τρέχοντος πακέτου SOF (Start of Frame). Udd_set_setup_payload, η συνάρτηση αυτή φορτώνει τις απαραίτητες πληροφορίες ενός πακέτου τύπου Setup. udd_ep_alloc, η συνάρτηση αυτή ρυθμίζει και ενεργοποιεί ένα άκρο (endpoint). udd_ep_free, η συνάρτηση αυτή απενεργοποιεί ένα άκρο (endpoint). udd_ep_is_halted, η συνάρτηση αυτή ελέγχει αν για ένα άκρο έχει ενεργοποιηθεί το halt bit. udd_ep_set_halt, η συνάρτηση αυτή θέτει το halt bit ενός άκρου. udd_ep_clear_halt, η συνάρτηση αυτή απενεργοποιεί το halt bit ενός άκρου. udd_ep_run, η συνάρτηση αυτή χρησιμοποιείται για την αποστολή και λήψη δεδομένων από και προς ένα άκρο. Ο οδηγός χρησιμοποιεί τον DMA του USB για την μεταφορά των δεδομένων από την μνήμη RAM στο άκρο. Udd_ep_abort, η συνάρτηση ακυρώνει μια μεταφορά δεδομένων που συμβαίνει σε ένα άκρο. UDC Το UDC παρέχει την κατάλληλη διεπαφή για τον χειρισμό της συσκευής USB. Με χρήση των συναρτήσεων αυτών είναι δυνατόν να εκκινήσει η συσκευή USB, να σταματήσει, να συνδεθεί στον δίαυλο ή να αποσυνδεθεί από αυτόν. Συγκεκριμένα περιλαμβάνει τις εξής συναρτήσεις: udc_start, συνάρτηση εκκίνησης της συσκευής USB 90
91 udc_stop, συνάρτηση διακοπής της συσκευής USB udc_include_vbus_monitoring, συνάρτηση παρακολούθησης για περίπτωση ύπαρξης ή μη δίαυλου σε περίπτωση όπου η τροφοδοσία της συσκευής δεν γίνεται από την θύρα USB. udc_attach, συνάρτηση για την σύνδεση στον δίαυλο σε περίπτωση που η τροφοδοσία δεν γίνεται από την θύρα USB, και έχει ανιχνευθεί δίαυλος. udc_detach, συνάρτηση αποσύνδεσης από τον δίαυλο. UDI Το UDI παρέχει μια κοινή προγραμματιστική διεπαφή (API) για όλες τις κλάσεις USB που μπορούν να υλοποιηθούν ενώ περιλαμβάνει συναρτήσεις callbacks η οποίες χρησιμοποιούνται από το UDC για τον χειρισμό της διεπαφής της συσκευής USB (USB device interface). Περιλαμβάνει τις εξής συναρτήσεις: enable, η συνάρτηση αυτή ενεργοποιεί μια διεπαφή disable,η συνάρτηση αυτή απενεργοποιεί μια διεπαφή setup, χειρίζεται μια αίτηση ελέγχου για την συγκεκριμένη διεπαφή getsetting, επιστρέφει τις ισχύουσες ρυθμίσεις της διεπαφής sof_notify, ενημερώνει σχετικά με την αρχή νέου πακέτου (SOF) Πέραν όμως από την παραπάνω γενική προγραμματιστική διεπαφή, για την περίπτωση της κάθε διαφορετικής κλάσης USB το UDI περιλαμβάνει επιπλέον συγκεκριμένη διεπαφή για την κλάση αυτή. Στην περίπτωση της εφαρμογής που αναπτύχθηκε χρησιμοποιήθηκε το UDI_CDC το οποίο αποτελεί μια διεπαφή για την υλοποίηση της κλάσης USB τύπου CDC. Η συγκεκριμένη προγραμματιστική διεπαφή παρέχει κατάλληλο API παρόμοιο με αυτό μιας απλής σειριακής θύρας RS 232 ενώ ταυτόχρονα περιλαμβάνει τους περιγραφείς που αναφέρονται στην κλάση CDC. Συγκεκριμένα περιλαμβάνει τις εξής συναρτήσεις: udi_cdc_ctrl_signal_dcd, η συνάρτηση αυτή ενημερώνει σχετικά με αλλαγή του σήματος DCD (Data Carrier Detect). udi_cdc_ctrl_signal_dsr, η συνάρτηση αυτή ενημερώνει σχετικά με αλλαγή του σήματος DSR (Data Set Ready). udi_cdc_signal_framing_error, η συνάρτηση αυτή ενημερώνει για τυχόν σφάλματα στο πλαίσιο (frame) πληροφορίας. udi_cdc_signal_parity_error, η συνάρτηση αυτή ενημερώνει για τυχόν σφάλμα ισοτιμίας (parity error). udi_cdc_signal_overrun, η συνάρτηση αυτή ενημερώνει σχετικά με τυχόν σφάλμα overrun (με τον όρο overrun εννοείται το σφάλμα που συμβαίνει όταν υπάρχει απώλεια πληροφορίας λόγω αποθήκευσης νέας πληροφορίας σε έναν απομονωτή του οποίου η προηγουμένως αποθηκευμένη πληροφορία δεν έχει προλάβει να διαβαστεί από την εφαρμογή). udi_cdc_is_rx_ready, η συνάρτηση αυτή ελέγχει αν έχει ληφθεί νέα πληροφορίας μεγέθους 1 byte στην γραμμή CDC. 91
92 udi_cdc_getc, η συνάρτηση λαμβάνει πληροφορία μεγέθους 1 byte (1 χαρακτήρας) από την γραμμή CDC. udi_cdc_read_buf, η συνάρτηση αυτή «διαβάζει» την πληροφορία που είναι αποθηκευμένη σε έναν απομονωτή της μνήμης RAM, ο οποίος αναφέρεται στην γραμμή CDC. udi_cdc_is_tx_ready, η συνάρτηση ελέγχει αν είναι εφικτή η αποστολή ενός νέου χαρακτήρα (πληροφορία 1 byte) μέσω της γραμμής CDC. udi_cdc_putc, η συνάρτηση προσθέτει νέα πληροφορία μεγέθους 1 byte προς αποστολή στην γραμμή CDC. udi_cdc_write_buf, η συνάρτηση αυτή αντιγράφει την πληροφορία που είναι αποθηκευμένη σε έναν απομονωτή της RAM στον απομονωτή της γραμμής CDC ώστε η πληροφορία αυτή να αποσταλεί. Ρυθμίσεις Θύρας USB Τα χαρακτηριστικά της επικοινωνίας μέσω της θύρας USB που είναι επιθυμητό να έχει η εφαρμογή χρησιμοποιείται η βιβλιοθήκη conf_usb. Τα χαρακτηριστικά που καθορίζονται σε αυτήν την βιβλιοθήκη είναι τα εξής: a. Το Vendor ID (VID) της συσκευής, στην περίπτωση του λογισμικού που αναπτύχθηκε πρόκειται για το VID που παρέχει η εταιρία της Atmel για τις συσκευές της. b. Το Product ID (PID) της συσκευής, στην περίπτωση του λογισμικού που αναπτύχθηκε πρόκειται για το PID που παρέχει η εταιρία της Atmel για τους μικροελεγκτές της που υλοποιούν την κλάση επικοινωνίας CDC. c. Την ταχύτητα λειτουργίας της επικοινωνίας, στην περίπτωση της εφαρμογής που αναπτύχθηκε επιλέχθηκε επικοινωνία υψηλής ταχύτητας (High Speed Mode) καθώς ο μικροελεγκτής AT32UC3A3256 υποστηρίζει αυτό το mode λειτουργίας. d. Τα χαρακτηριστικά της επικοινωνίας της θύρας, όπως τον αριθμό των stop bits, το είδος της ισοτιμίας και τον αριθμό των bits πληροφορίας. Στην περίπτωση της εφαρμογής επιλέχθηκε να χρησιμοποιηθεί ένα stop bit, να μην γίνει χρήση bits ισοτιμίας και ο αριθμός των bits ισοτιμίας επιλέχθηκε στα 8 bits (περίπτωση απλή σειριακής επικοινωνίας). Συναρτήσεις Ελέγχου Διαύλου Για την πρόβλεψη της περίπτωσης όπου η συσκευή δεν τροφοδοτείται από τον δίαυλο USB αλλά έχει ξεχωριστή τροφοδοσία (περίπτωση τροφοδοσίας από μπαταρία ή από το δίκτυο με κατάλληλο μετασχηματιστή), αναπτύχθηκε η βιβλιοθήκη usb_callbacks. Η βιβλιοθήκη αυτή περιλαμβάνει την συνάρτηση usb_vbus_event η οποία χρησιμοποιείται από την εφαρμογή για να συνδέσει την συσκευή στον δίαυλο σε περίπτωση που αυτό είναι δυνατόν, ή να την αποσυνδέσει. 92
93 Ενσωμάτωση Στην Εφαρμογή Η εφαρμογή κάνει χρήση της προγραμμαστικής διεπαφής που παρέχει το firmware USB device stack. Η χρήση της διεπαφής γίνεται ως εξής: 1. Στο στάδιο των αρχικοποιήσεων καλείται η συνάρτηση udc_start έτσι ώστε να ενεργοποιηθεί η συσκευή USB στο mode λειτουργίας συσκευής (USB Device Mode). 2. Στην συνέχεια καλείται η συνάρτηση udc_include_vbus_monitoring για να ελεγχθεί αν είναι απαραίτητη η σύνδεση και αποσύνδεση της συσκευής από τον δίαυλο μέσω του λογισμικού. Σε περίπτωση που η συσκευή τροφοδοτείται από τον δίαυλο η συσκευή είναι διαρκώς συνδεδεμένη στον δίαυλο ώστε να μπορεί να τροφοδοτείται από αυτόν και δεν μπορεί να αποσυνδεθεί από αυτόν. Σε περίπτωση που η συσκευή δεν τροφοδοτείται από τον δίαυλο είναι απαραίτητη η σύνδεση και η αποσύνδεση της συσκευής από το λογισμικό, πράγμα που επιτυγχάνεται με την χρήση των συναρτήσεων udc_attach και udc_detach, μέσω της χρήσης της συνάρτηση usb_vbus_event. 3. Για την αποστολή των δεδομένων χρησιμοποιείται η συνάρτηση udi_cdc_write_buf η οποία λαμβάνει την διεύθυνση μνήμης της αρχής ενός απομονωτή της RAM της τιμές του οποίου θέλουμε να αποστείλουμε μέσω της γραμμής CDC καθώς και τον αριθμό των δεδομένων που θέλουμε να αποστείλουμε Ανάλυση λογισμικού μικροελεγκτή Όπως έχει αναφερθεί, με την χρήση των διακοπών η λειτουργία του συστήματος είναι παρόμοια με αυτήν της εκτέλεσης δυο διαφορετικών διεργασιών από έναν μονοπύρηνο επεξεργαστή. Η μια διεργασία μπορεί να θεωρηθεί ότι είναι η ρουτίνα εξυπηρέτησης της διακοπής του μετρητή πραγματικού χρόνου ενώ η άλλη η κυρίως διεργασία του λογισμικού. Αυτές οι δυο διεργασίες διαχειρίζονται κοινές μεταβλητές και πρέπει να υπάρχει ένα είδος συγχρονισμού μεταξύ αυτών των δύο. Η ρουτίνα εξυπηρέτησης διακοπής του μετρητή πραγματικού χρόνου είναι υπεύθυνη για τον υπολογισμό των τιμών που πρέπει να αποσταλούν στον ηλεκτρονικό υπολογιστή ενώ η κυρίως διεργασία του λογισμικού είναι υπεύθυνη για την αποστολή των τιμών αυτών μέσω της θύρας USB. Ο τρόπος που λειτουργεί η παραπάνω αρχιτεκτονική αποτελεί μια παραλλαγή της περίπτωσης παραγωγού καταναλωτή, όπου τον ρόλο του παραγωγού τον έχει η ρουτίνα εξυπηρέτησης διακοπής ενώ τον ρόλο του καταναλωτή το κυρίως πρόγραμμα. Οι δύο αυτές «διεργασίες» διαχειρίζονται έναν κοινό απομονωτή ενώ με την χρήση δύο κατάλληλων σημαιών επιτυγχάνεται ο συγχρονισμός τους. Σε κάθε αποστολή δεδομένων στέλνονται οι τιμές ρεύματος μιας περιόδου του σήματος, οι χρονικές στιγμές όπου ελήφθησαν τα δείγματα αυτά, καθώς και η ενεργός τιμή της τάσης (Vrms), η συνολική ισχύς (S) και ο συντελεστής απόδοσης (pf ή cosφ). Εφόσον η περίοδος του σήματος λαμβάνεται 50 Hz και η συχνότητα δειγματοληψίας είναι της τάξης των 16 KHz οι τιμές του ρεύματος που συλλέγονται κατά την διάρκεια μιας περιόδου είναι: 93
94 1 Aριθμός Δειγμάτων Samples / second 50 Aριθμός Δειγμάτων 320 Samples Συνεπώς στέλνονται 320 τιμές ρεύματος, όπου για την κάθε τιμή έχουμε δύο τιμές που αναπαριστούν την χρονική στιγμή όπου ελήφθησαν τα δείγματα αυτά, συνολικά δηλαδή 960 τιμές. Αν συνυπολογιστούν και οι τιμές Vrms, S και pf καταλήγουμε ότι το σύνολο των τιμών που στέλνονται είναι 963 τιμές των 4 bytes (τιμές float). Με βάση τα παραπάνω το μέγεθος του απομονωτή επιλέχθηκε να έχει μέγεθος διπλάσιο του αριθμού των τιμών που στέλνονται κάθε φορά. Συνεπώς το μέγεθος του απομονωτή είναι 2*963 = 1926 τιμές των 4 byte (float). Η αποστολή των δεδομένων γίνεται όταν οι πρώτες 963 θέσεις του απομονωτή έχουν γεμίσει με τιμές ή όταν οι τελευταίες 963 θέσεις περιέχουν τιμές. Για να γίνεται αντιληπτό αυτό από την κυρίως διεργασία ώστε να αποστέλλει τα δεδομένα χρησιμοποιούνται δύο σημαίες (semifull και full) ανάλογα με το ποιες θέσεις του απομονωτή πρέπει να αποσταλούν στον ηλεκτρονικό υπολογιστή. Ο λόγος που επιλέχθηκε η αρχιτεκτονική αυτή είναι ότι καθώς η αποστολή των δεδομένων διαρκεί μεγαλύτερο χρονικό διάστημα από το χρονικό διάστημα που μεσολαβεί μεταξύ της λήψης δύο δειγμάτων, όταν η κυρίως διεργασία θα επεξεργάζεται τα δεδομένα ώστε να τα αποστείλει, η ρουτίνα εξυπηρέτησης θα πρέπει να αποθηκεύει κάπου τις νέες τιμές που λαμβάνει από τον A/D χωρίς να τίθεται ζήτημα επικάλυψης αυτών των τιμών που μπορεί να οδηγήσει σε απώλεια πληροφορίας. Συνεπώς, όταν η κυρίως διεργασία αποστέλλει τις τιμές που βρίσκονται αποθηκευμένες στον μισό απομονωτή η ρουτίνα εξυπηρέτησης προσθέτει νέες τιμές στον υπόλοιπο μισό. Η λειτουργία του απομονωτή είναι παρόμοια με αυτή μιας κυκλικής ουράς όπου η μια διεργασία διαχειρίζεται την μισή ουρά ενώ η άλλη την άλλη μισή. Στο παρακάτω σχήμα φαίνεται η περίπτωση όπου η κυρίως διεργασία διαχειρίζεται τις 963 τελευταίες θέσεις του απομονωτή έτσι ώστε να τις αποστείλει διαμέσου της θύρας USB στον υπολογιστή, ενώ η ρουτίνα διακοπής φορτώνει τις τιμές φορτώνει τις νέες τιμές προς αποστολή στις πρώτες 963 θέσεις του απομονωτή. Η συγκεκριμένη περίπτωση συμβαίνει όταν η σημαία full είναι αληθής (δηλαδή οι τελευταίες 963 τιμές είναι έτοιμες προς αποστολή), ενώ η σημαία semifull είναι ψευδής (δηλαδή η ρουτίνα διακοπής φορτώνει ακόμα τις 963 πρώτες τιμές του απομονωτή που πρέπει να αποσταλούν). 94
95 Σχήμα 35 Μορφή δεδομένων στον απομωνωτή Ο τρόπος που αποθηκεύονται στον απομονωτή οι τιμές που πρέπει να αποσταλούν είναι συγκεκριμένος. Κάθε φορά που προστίθεται μια νέα τιμή ρεύματος στον απομονωτή αποθηκεύεται πρώτα η πρώτη τιμή που αντιπροσωπεύει την χρονική στιγμή που λήφθηκε το δείγμα (τιμή th), στην συνέχεια η δεύτερη τιμή και τελικά η τιμή του ρεύματος που λήφθηκε. Στις τελευταίες 3 θέσεις του κάθε πακέτου μεγέθους 963 τιμών αποθηκεύονται οι τιμές της ενεργούς τιμής τάσης (Vrms), η τιμή συνολικής ισχύς (S) και ο συντελεστής απόδοσης pf. Ο τρόπος αυτός φαίνεται στο παρακάτω σχήμα: Σχήμα 36 Αποθήκευση τιμών στον απομονωτή Περιγραφή του Αλγορίθμου της Ρουτίνας Διαχείρισης Διακοπής Η διεργασία της ρουτίνας εξυπηρέτησης διακοπής, εκτελεί τις παρακάτω ενέργειες : 95
96 I. Επανεκκινεί το μετρητή πραγματικού χρόνου και μηδενίζει την σημαία διακοπής του μετρητή, έτσι ώστε ο μετρητής να προκαλέσει νέα διακοπή στον επεξεργαστή μετά από χρονικό διάστημα 62.5 μs. II. Υπολογίζει την χρονική στιγμή που λαμβάνεται το κάθε δείγμα. III. Επικοινωνεί με τον A/D για την λήψη των δειγμάτων των δύο σημάτων. IV. Υπολογίζει τις τιμές της ενεργού τιμής τάσης (Vrms), της συνολικής Ισχύος και του συντελεστή απόδοσης. V. Ελέγχει εάν οι τιμές των πρώτων 963 θέσεων του απομονωτή ή των τελευταίων 963 θέσεων του απομονωτή είναι έτοιμες προς αποστολή και θέτει κατάλληλα τις τιμές των σημαιών semifull και full. Στην συνέχεια θα αναλυθεί πως υλοποιείται το κάθε βήμα του αλγορίθμου ξεχωριστά Επανεκκίνηση του Μετρητή Πραγματικού Χρόνου Η επανεκκίνηση του μετρητή πραγματικού χρόνου έτσι ώστε να προκαλέσει μια νέα διακοπή στο σύστημα μετά από χρόνο 62.5μs γίνεται θέτοντας την τιμή 1 στην κατάλληλη σημαία της διακοπής. Συγκεκριμένα, θέτοντας ένα το bit Top Interrupt (TOPI) του καταχωρητή IER ( Interrupt Enable Register ) Υπολογισμός Χρονικής Στιγμής λήψης των δειγμάτων. Ο υπολογισμός της χρονικής στιγμής που λαμβάνονται τα δείγματα υπολογίζεται αυξάνοντας την τιμή μια μεταβλητής κατά κάθε φορά. Καθώς ο μετρητής πραγματικού χρόνου προκαλεί μια διακοπή στον επεξεργαστή κάθε δευτερολέπτα ή 62.5 μs και εφόσον θεωρούμε ως χρονική στιγμή 0 την στιγμή όπου λαμβάνεται το πρώτο δείγμα του σήματος, η μεταβλητή αυτή αντιπροσωπεύει την χρονική στιγμή που λαμβάνεται το κάθε δείγμα σε milliseconds (seconds * 0.001). Λόγω του γεγονότος ότι η μεταβλητή αυτή είναι μεγέθους 4 byte (float), η μεταβλητή αυτή μπορεί να μετρήσει χρόνο της τάξης των milliseconds χωρίς να έχουμε απώλεια ακρίβειας λόγω στρογγυλοποίησης. Στην περίπτωση που η τιμή αυτή αποχτάει την τιμή αυξάνεται μια άλλη μεταβλητή 4 byte (float) κατά ενώ η τιμή της πρώτης μηδενίζεται. Η ανάγκη να έχουμε την ακριβή χρονική στιγμή που λήφθηκε ένα δείγμα για ένα πολύ μεγάλο χρονικό διάστημα όπως το παραπάνω πηγάζει από το γεγονός ότι το σύστημα θέλουμε να είναι πραγματικού χρόνου και η λειτουργία του να είναι συνεχής και αδιάλειπτη για πάρα πολύ χρόνο, για παράδειγμα η συσκευή θα μπορούσε να μετράει την κατανάλωση ισχύος μιας εγκατάστασης για μεγάλο χρονικό διάστημα, ακόμα και μερικά χρόνια. 96
97 Επικοινωνία με τον A/D converter για την δειγματοληψία του σήματος Ο μικροελεγκτής επικοινωνεί με τον A/D converter παράγοντας τα κατάλληλα σήματα. Αφού λάβει το κατάλληλο σήμα ο A/D converter να αρχίσει την διαδικασία της λήψης των δειγμάτων ξεκινάει η διαδικασία της μετατροπής (conversion). Η διαδικασία αυτή διαρκεί τουλάχιστον 3 μs. Καθώς μια λύση όπου ο μικροελεγκτής αναμένει τον A/D converter να ολοκληρώσει την μετατροπή οδηγεί σε μη αποδοτική χρήση του πρώτου, μια άλλη προσέγγιση χρησιμοποιήθηκε. Σύμφωνα με την προσέγγιση αυτή ο μικροελεγκτής αρχικά λαμβάνει τις τιμές που βρίσκονται στην έξοδο του A/D και στην συνέχεια του δίνει εντολή να αρχίσει την διαδικασία της δειγματοληψίας. Κατά τον χρόνο που ο A/D converter κάνει την μετατροπή των τιμών ο μικροελεγκτής επεξεργάζεται τις τιμές που έχει λάβει και είναι αποτέλεσμα τις προηγούμενης μετατροπής. Είναι σημαντικό να αναφερθεί ότι οι πρώτες τιμές που λαμβάνει ο μικροελεγκτής στην αρχή της λειτουργίας του (πρώτη δειγματοληψία της συσκευής) δεν αποτελούν πραγματικά δείγματα του σήματος και θεωρείται από το σύστημα ότι ελήφθησαν την χρονική στιγμή s. Με αυτόν τον τρόπο το σύστημα δεν αναμένει την ολοκλήρωση της μετατροπής με αποτέλεσμα να γίνεται καλύτερη αξιοποίηση του μικροελεγκτή. Αφού διαβαστούν οι τιμές των δύο δειγμάτων ρεύματος και τάσης αποθηκεύονται σε 2 μεταβλητές των 16 bits. Για να αποκτήσουμε την πραγματική τιμή του ρεύματος, η τιμή που λήφθηκε από τον A/D πολλαπλασιάζεται επί μια σταθερά. Το αποτέλεσμα του πολλαπλασιασμού αυτού είναι η πραγματική τιμή ρεύματος. Αν ονομάσουμε με AMPI την σταθερά με την οποία πολλαπλασιάζεται η τιμή ρεύματος που δίνει στην έξοδο του ο A/D, με I την πραγματική τιμή του ρεύματος και με I A/ D την τιμή του ρεύματος στην real έξοδο του A/D, τότε η τιμή του AMPI προκύπτει ως εξής: Όπου I 20 A I I I A / D I A / D real real A I 2 20 A I AMPI I AMPI I 16 2 real A/ D A I είναι η τιμή του κέρδους του μετασχηματιστή ρεύματος, για παράδειγμα αν ο μετασχηματιστής υποβιβάζει την τιμή κατά 20 φορές τότε A I 20. Αφού υπολογιστεί η πραγματική τιμή του ρεύματος τότε η τιμή αυτή μαζί με τις τιμές των δύο μεταβλητών που αναπαριστούν τη χρονική στιγμή που λήφθηκε το δείγμα αποθηκεύονται στον απομονωτή Χρήση Ψηφιακού Φίλτρου Πέραν από το αναλογικό φίλτρο που υλοποιήθηκε καθώς και από το φίλτρο που διαθέτει ο A/D converter, υλοποιήθηκε και ένα ψηφιακό φίλτρο σε επίπεδο λογισμικού. Το φίλτρο αυτό ονομάζεται φίλτρο ακίδας θορύβου [18], και εξομαλύνει τις απότομες και μικρής διάρκειας μεταβολές του πλάτους του θορύβου (noise Spikes) που προκαλούνται από ηλεκτρικές τάσεις που επάγονται στο περιβάλλον των αισθητηρίων κατά την εκκίνηση 97
98 κινητήρων, ή από υπερκείμενες γραμμές μεταφοράς ηλεκτρικής ενέργειας. Το φίλτρο αυτό περιγράφεται από την παρακάτω σχέση: y x x y x n n n n1 y y x ( y x ) x n n1 n1 n y y x ( y x ) x n n1 n1 n Όπου το yn είναι το τελικό νέο δείγμα του σήματος, το xn είναι το αποτέλεσμα της μετατροπής από τον A/D converter, και το yn 1 είναι το προηγούμενο δείγμα του σήματος. Στην περίπτωση του φίλτρου που υλοποιήθηκε το x επιλέχθηκε να έχει την τιμή Υπολογισμός των τιμών Vrms, S και pf Με βάση τα δείγματα των στιγμιαίων τιμών τάσης και ρεύματος μπορούμε να υπολογίσουμε τις τιμές Vrms, S και pf για κάθε περίοδο των σημάτων (θεωρούμε ως περίοδο την περίοδο του σήματος της τάσης, δηλαδή 50Hz). Αν vn ( ) είναι το n οστό δείγμα τάσης μιας περιόδου του σήματος και in ( ) το αντίστοιχο δείγμα του ρεύματος τότε η τιμή της ενεργού τιμής της τάσης και του ρεύματος προκύπτουν ως εξής: V rms N 1 2 n0 v ( n) N Και I rms N 1 2 n0 i ( n) N όπου το Ν είναι ίσο με τον αριθμό των δειγμάτων για μια περίοδο του σήματος της τάσης, δηλαδή το Ν =320 δείγματα για συχνότητα δειγματοληψίας 16KHz. Με βάση τις τιμές των ενεργών τιμών τάσης και ρεύματος μπορεί να προκύψει η τιμή της συνολικής ισχύος S από την παρακάτω σχέση: S V I rms Η τιμή του συντελεστή απόδοσης pf από τον ορισμό του προκύπτει με βάση την παρακάτω σχέση: P pf S rms 98
99 όπου P είναι η μέση τιμής της ισχύος του συνολικού φορτίου και προκύπτει από την εξής σχέση: P N 1 n0 vn ( ) in ( ) Ωστόσο αν συνυπολογίσουμε το γεγονός ότι οι τιμές στην έξοδο του A/D δίνονται από τις σχέσεις: I 20 A I I I A / D I A/ D real real A I 2 20 A I AMPI I AMPI I 16 2 N real A / D V 20 AV V V V A/ D A/ D real real AV 2 20 AV AMPV V 16 real AMPV V 2 Μπορούμε να υπολογίσουμε τις παραπάνω τιμές ως εξής: A/ D V rms N1 N1 N1 2 2 / AD / n0 n0 n0 2 AD v ( n) AMPV v ( n) v ( n) AMPV N N N I rms N1 N1 N1 2 2 / AD / n0 n0 n0 2 AD i ( n) AMPI i ( n) i ( n) AMPI N N N S V I rms rms P N1 N1 v( n) i( n) AMPV v ( n) AMPI i ( n) AD / AD / n0 n0 N N1 N1 vad / ( n) iad / ( n) vad / ( n) iad / ( n) n0 n0 P AMPV AMPI AMPP N N N pf P S Ο λόγος που επιλέγεται να χρησιμοποιηθούν οι τελευταίες σχέσεις αντί των αρχικών έχει σχέση με το υλικό του μικροεπεξεργαστή. Συγκεκριμένα καθώς η επιλογή του μικροεπεξεργαστή που πραγματοποιήσαμε δε διαθέτει μονάδα επεξεργασίας αριθμών 99
100 κινητής υποδιαστολής είναι προτιμότερο να γίνονται υπολογισμοί με ακεραίους παρά με αριθμούς κινητής υποδιαστολής. Με τον τρόπο όλοι οι απαραίτητοι πολλαπλασιασμοί γίνονται μεταξύ ακεραίων, όπου ο επεξεργαστής του μικροελεγκτή έχει το κατάλληλο υλικό για να διαχειριστεί, ενώ όλοι οι πολλαπλασιασμοί αριθμών κινητής υποδιαστολής περιορίζονται σε μόλις 4 στο τέλος της διαδικασίας. Με βάση τους παραπάνω τύπους η ρουτίνα διακοπής υπολογίζει τις τιμές Vrms, S και pf ακολούθως : Κάθε φορά που λαμβάνονται νέα δείγματα τάσης και ρεύματος υπολογίζονται το τετράγωνο της τιμής της τάσης και του ρεύματος καθώς και το μεταξύ τους γινόμενο και οι τιμές αυτές προστίθενται σε τρεις διαφορετικές ακέραιες μεταβλητές Vr, Ir και Pr αντίστοιχα. Όταν ο αριθμός των δειγμάτων που έχουν ληφθεί αποχτήσει την τιμή 320 τότε έχουν ληφθεί τα δείγματα των σημάτων μιας περιόδου του σήματος τάσης, επομένως μπορεί να γίνει ο υπολογισμός των Vrms, S και pf. Τότε οι μεταβλητές Vr, Ir και Pr έχουν τιμή : N 1 2 Vr v A/ D( n) n0 N 1 2 A/ D n0 Ir i ( n) N 1 P v ( n) i ( n) r A/ D A/ D n0 Οπότε υπολογίζονται οι ζητούμενες τιμές ως εξής: V rms AMPV Vr N S V AMPI rms Ir N Pr AMPP P N pf P S Οι τιμές αυτές αποθηκεύονται τελικά στην κατάλληλη θέση στον απομονωτή έτσι ώστε να αποσταλούν, ενώ οι τιμές των Vr, Ir και Pr μηδενίζουν έτσι ώστε να επαναληφθεί η παραπάνω διαδικασία για την επόμενη περίοδο του σήματος της τάσης. 100
101 Έλεγχος των σημαιών συγχρονισμού Προτού επιστρέψει η ρουτίνα διακοπής ελέγχει αν οι πρώτες 963 θέσεις του απομονωτή ή οι τελευταίες 963 είναι έτοιμες για αποστολή και θέτει κατάλληλα την τιμή της μεταβλητής semifull ή full αληθής αντίστοιχα. Η ρουτίνα πραγματοποιεί τον έλεγχο αυτόν ελέγχοντας αν η θέση του απομονωτή που θα προστεθεί η επόμενη τιμή είναι ίση με 963, οπότε μπορούν να αποσταλούν οι πρώτες 963 τιμές του απομονωτή, ή ίση με 1926 οπότε μπορούν να αποσταλούν οι τελευταίες 963 τιμές του απομονωτή. Στην τελευταία περίπτωση η μεταβλητή που δείχνει την επόμενη θέση του απομονωτή μηδενίζει ώστε να δείχνει ξανά στην αρχή του απομονωτή (περίπτωση κυκλικής ουράς) Περιγραφή του Αλγορίθμου της Κυρίως Διεργασίας Η κυρίως διεργασία είναι υπεύθυνη για την αποστολή των τιμών μέσω της θύρας USB. Αυτό το επιτυγχάνει ως εξής: Εκτελώντας έναν βρόγχο επανάληψης ελέγχει τις τιμές των σημαιών semifull και full. Σε περίπτωση που μια από τις δύο σημαίες είναι αληθής τότε αποστέλει τις τιμές που είναι αποθηκευμένες στις κατάλληλες θέσεις του απομονωτή, δηλαδή αν η σημαία semifull είναι αληθής αποστέλλονται οι πρώτες 963 τιμές του απομονωτή ενώ αν η full είναι αληθής αποστέλλονται οι τελευταίες 963 τιμές. Για την αποστολή των τιμών αυτών καλεί την συνάρτηση udi_cdc_write_buf. Η συνάρτηση αυτή λαμβάνει δύο ορίσματα: Την διεύθυνση μνήμης του πρώτου στοιχείου ενός μπλοκ μνήμης που θέλουμε να αποστείλουμε μέσω της θύρας. Τον αριθμό των byte του συνεχόμενου μπλοκ μνήμης που θέλουμε να αποστείλουμε. Στην περίπτωση του λογισμικού που αναπτύχθηκε η διεύθυνση μνήμης που δίνεται ως όρισμα είναι η θέση μνήμης του πρώτου στοιχείου του απομονωτή (πρώτες 963 τιμές) ή η θέση μνήμης του μεσαίου στοιχείου του απομονωτή (τελευταίες 963 τιμές), ενώ ο αριθμός των byte που θέλουμε να αποσταλούν είναι 963*4bytes, εφόσον οι τιμές είναι τύπου float (4 bytes). Για την αποστολή των δεδομένων από τον ελεγκτή της θύρας USB, οι τιμές που πρέπει να αποσταλούν πρέπει να αποθηκευτούν πρώτα σε έναν απομονωτή της θύρας USB. Η συνάρτηση udi_cdc_write_buf στέλνει το σύνολο των τιμών που θέλουμε να αποστείλουμε σε πακέτα συγκεκριμένου μεγέθους. Το μέγεθος του κάθε πακέτου εξαρτάται από τον τρόπο λειτουργίας της θύρας USB, συγκεκριμένα σε περίπτωση επικοινωνίας χαμηλής ταχύτητας (Low Speed) το μέγεθος του κάθε πακέτου είναι 64 bytes, στην περίπτωση πλήρους ταχύτητας (Full Speed) το μέγεθος κάθε πακέτου είναι 320 bytes ενώ στην περίπτωση της μέγιστης ταχύτητας είναι 512 bytes. Στην περίπτωση του λογισμικού που υλοποιήθηκε, η ταχύτητα λειτουργίας είναι η μέγιστη οπότε το μέγεθος του κάθε πακέτου είναι 512 bytes. Η συνάρτηση udi_cdc_write_buf ελέγχει αν υπάρχει διαθέσιμος χώρος στον απομονωτή να προστεθεί και νέο πακέτο, αν υπάρχει το προσθέτει, σε διαφορετική περίπτωση αναμένει μέχρις ότου υπάρχει ελεύθερος χώρος στον απομονωτή. Η παραπάνω 101
102 διαδικασία επαναλαμβάνεται μέχρι το σύνολο των τιμών που θέλουμε να αποστείλουμε να αποθηκευτεί στον απομονωτή, έτσι ώστε να αποσταλούν από τον ελεγκτή της θύρας USB. Η συνάρτηση αυτή αποτελεί τη διεπαφή του κυρίως προγράμματος με το λογισμικό που είναι υπεύθυνο για την αποστολή των δεδομένων μέσω της θύρας USB, και του οποίου η λειτουργία έχει ήδη αναλυθεί Ανάλυση Λογισμικού Ηλεκτρονικού Υπολογιστή Γενικής Χρήσης Από την πλευρά του Ηλεκτρονικού υπολογιστή Γενικής χρήσης αναπτύχθηκε λογισμικό που λαμβάνει τις τιμές που στέλνει ο μικροελεγκτής μέσω της θύρας USB και τις αποθηκεύει. Το λογισμικό αυτό περιλαμβάνει επίσης και την διεπαφή του συνολικού συστήματος προς τον χρήστη. Συνεπώς, η ανάλυσή του μπορεί να χωριστεί σε δύο μέρη: Το λογισμικό που διαχειρίζεται τις τιμές που λαμβάνονται μέσω της θύρας USB από τον μικροελεγκτή. Το λογισμικό που παρέχει την διεπαφή με τον χρήστη (GUI). Στην συνέχεια θα αναλυθεί κάθε τμήμα του λογισμικού ξεχωριστά καθώς και η συνολική λειτουργία του Λογισμικό λήψης και αποθήκευσης τιμών Η λήψη και η αποθήκευση των δεδομένων γίνεται από μια ξεχωριστή διεργασία. Η διεργασία εκτελεί τις κατάλληλες εντολές έτσι ώστε να διαχειριστεί την θύρα από όπου λαμβάνονται τα δεδομένα, επεξεργάζεται τα δεδομένα και στην συνέχεια τα αποθηκεύει. Συγκεκριμένα η διεργασία : 1. Ανοίγει την θύρα μέσω της οποίας στέλνονται τα δεδομένα έτσι ώστε να μπορεί να την διαχειριστεί. Εδώ πρέπει να επισημανθεί ότι ο χρήστης είναι υπεύθυνος να επιλέξει την κατάλληλη θύρα στην οποίαν έχει συνδεθεί ο μικροελεγκτής. 2. Στην συνέχεια δημιουργεί ένα αρχείο ώστε να αποθηκεύσει τις τιμές τις οποίες θα λάβει. Την θέση στον κατάλογο αρχείων όπου θα αποθηκευτούν οι τιμές την επιλέγει ο χρήστης. 3. Η διεργασία για όσο χρονικό διάστημα επιθυμεί ο χρήστης λαμβάνει τα δεδομένα με χρήση της συνάρτησης ReadFile που παρέχεται από την προγραμματιστική διεπαφή των windows (API) για την διαχείριση των θυρών. Σε κάθε κλήση της συνάρτησης η διεργασία λαμβάνει 963 τιμές 4 bytes, όσες τιμές δηλαδή στέλνει ο μικροελεγκτής ανά πακέτο. Οι τιμές αυτές αποθηκεύονται σε έναν απομονωτή μεγέθους 963*4 bytes. 4. Οι τιμές που λαμβάνονται από τον μικροεπεξεργαστή δεν έχουν την μορφή τιμών κινητής υποδιαστολής (float), έτσι ώστε να μπορεί να τις διαχειριστεί απευθείας ο υπολογιστής. Για να αποκτήσουν την μορφή αυτή πρέπει να γίνει αναδιάταξη των bytes κάθε τιμής κινητής υποδιαστολής (float) που λαμβάνεται. Συγκεκριμένα για 102
103 κάθε τιμή κινητής υποδιαστολής των 4 byte, που λαμβάνεται από τον μικροεπεξεργαστής πρέπει να γίνει αναδιάταξη των bytes έτσι ώστε το MSB (Most Significant Byte) να αλλάξει θέση με το LSB (Least Significant Byte) και τα δύο μεσαία bytes να αλλάξουν τιμή μεταξύ τους όπως φαίνεται στο παρακάτω σχήμα: Σχήμα 37 Αλλαγή σειράς των bytes Αφού γίνει η συγκεκριμένη αναδιάταξη των bytes, οι τιμές που ελήφθησαν αντιγράφονται σε έναν απομονωτή μεγέθους 963 αριθμών κινητής υποδιαστολής. Η παραπάνω διαδικασια είναι απαραίτητη λόγω της διαφοράς της αρχιτεκτονικής στην αποθήκευση τιμών κινητής υποδιαστολής του μικροελεγκτή (AVR32) και του ηλεκτρονικού υπολογιστή (Intel x86). Η αποθήκευση των τιμών στον μικροελεγκτή ακολουθεί το πρότυπο big Endian ενώ στον υπολογιστή το little Endian. Αυτό σημαίνει ότι στον μικροελεγκτή το περισσότερο σημαντικό byte (ΜSB) αποθηκεύεται πρώτο, δηλαδή στην χαμηλότερη διεύθυνση μνήμης ενώ στον υπολογιστή το χαμηλότερο σημαντικό byte (LSB) αποθηκεύεται πρώτο. Συνεπώς για να γίνουν αντιληπτές οι τιμές που στέλνει ο μικροεπεξεργαστής από τον ηλεκτρονικό υπολογιστή θα πρέπει να γίνει μετατροπή των τιμών από μορφή Big Endian σε μορφή Little Endian. 5. Οι τιμές στην συνέχεια αποθηκεύονται από τον απομονωτή σε ένα αρχείο εγγράφου. 6. Η παραπάνω διαδικασία πραγματοποιείται για όσο χρόνο επιθυμεί ο χρήστης της εφαρμογής. 7. Όταν ο χρήστης επιθυμεί την ολοκλήρωση της λήψης των τιμών, τότε η διεργασία πριν ολοκληρώσει την λειτουργία της λαμβάνει τις τιμές που έχουν αποθηκευτεί προηγουμένως στο αρχείο και τις αποθηκεύει σε 2 διαφορετικά αρχεία. Στο ένα αρχείο αποθηκεύονται οι τιμές του ρεύματος που ελήφθησαν μαζί με την χρονική στιγμή όπου έγινε η λήψη τους, ενώ σε άλλο αρχείο οι τιμές της ενεργού τιμή της τάσης, της συνολικής ισχύς και του συντελεστή απόδοσης για κάθε περίοδο. Τελικά η διεργασία διαγράφει το αρχικό αρχείο όπου αποθηκεύτηκαν οι τιμές και ο ολοκληρώνει την λειτουργία της. 103
104 Λογισμικό διεπαφής (GUI) Περιγραφή Για λόγους ευκολίας στην χρήση παρέχεται από την εφαρμογή μια παραθυρική διεπαφή για την πραγματοποίηση της συνολικής διαδικασίας. Στον χρήστη παρέχονται οι παρακάτω δυνατότητες: 1. Το σύστημα αναγνωρίζει τις διαθέσιμες θύρες στον υπολογιστή του χρήστη και του ζητάει να επιλέξει την θύρα στην οποία είναι συνδεδεμένος ο μικροελεγκτής. 2. Ο χρήστης επιλέγει την θέση στον κατάλογο αρχείων όπου θέλει να αποθηκευτούν οι τιμές που θα ληφθούν. 3. Όταν ο χρήστης επιθυμεί να αρχίσει την λήψη των τιμών πιέζει το «κουμπί» (button), capture και η το σύστημα ξεκινάει την λήψη και αποθήκευση των τιμών. Για να σταματήσει η διαδικασία λήψης και αποθήκευσης των τιμών ο χρήστης πρέπει να πιέσει άλλη μια φορά το συγκεκριμένο κουμπί. 4. Αφού έχει γίνει η λήψη των τιμών, ο χρήστης μπορεί αν το επιθυμεί να εμφανίσει ένα διάγραμμα με τις τιμές ρεύματος που ελήφθησαν πιέζωντας το κουμπί Plot Signal. Τότε το σύστημα εμφανίζει τις τιμές που ελήφθησαν σε έναν ξεχωριστό παράθυρο με μορφή παρόμοια με αυτή ενός παλμογράφου. Για να σταματήσει την απεικονίσει των τιμών ο χρήστης θα πρέπει να πιέσει ξανά το κουμπί Plot Signal. 5. Τελικά ο χρήστης έχει την δυνατότητα να διαγράψει τα αρχεία με τις τιμές που έχουν ληφθεί με την χρήση της επιλογής delete. Στα παρακάτω σχήματα φαίνονται οι λειτουργίες που περιγράφησαν. Σχήμα 38 Αναγνώριση θυρών υπολογιστή Οι διαθέσιμες θύρες του Ηλεκτρονικού Υπολογιστή είναι η COM1 και η COM5, στην περίπτωση αυτή ο μικροελεγκτής είναι συνδεδεμένος στην θύρα COM5, την οποία μπορεί να επιλέξει ο χρήστης. 104
105 Σχήμα 39 Επιλογή θύρας Ο χρήστης κάνοντας χρήση της επιλογής open μπορεί να επιλέξει την θέση στον κατάλογο αρχείων όπου επιθυμεί να αποθηκευτούν οι τιμές. Η εφαρμογή του εμφανίζει ένα παράθυρο με την βοήθεια του οποίου μπορεί να επιλέξει την θέση στον κατάλογο. Σχήμα 40 Επιλογή σημείου αποθήκευσης τιμών 105
106 Σχήμα 41 Παράθυρο ενημέρωσης χρόνου περιόδων μέτρησης Ο χρήστης πιέζει το κουμπί capture για να ξεκινήσει η λήψη των τιμών, όταν επιθυμεί να διακοπή η λήψη των τιμών επαναπιέζει το κουμπί capture. Τότε εμφανίζεται ένα παράθυρο που τον ενημερώνει σχετικά με το χρονικό διάστημα που έγινε η λήψη των τιμών (time elapsed), καθώς και τον αριθμό των περιόδων του σήματος τάσης που έχουν ληφθεί και αποθηκευτεί (number of periods sampled). Το παραπάνω λογισμικό αναπτύχθηκε στο προγραμματιστικό περιβάλλον της Microsoft, Visual Studio Σχήμα 42 Εικόνα γραφικού περιβάλλοντος 106
107 Ο χρήστης πιέζοντας το κουμπί Plot Signal μπορεί να εμφανίσει την κυματομορφή των τιμών ρεύματος που έχουν ληφθεί. Τότε εμφανίζεται ένα παράθυρο που εμφανίζει την κυματομορφή με τρόπο παρόμοιο ενός παλμογράφου, δηλαδή το πώς μεταβάλλεται η τιμή στον χρόνο. Το παραπάνω λογισμικό αναπτύχθηκε στο προγραμματιστικό περιβάλλον των Windows, Visual Studio 2005, με χρήση της προγραμματιστικής επαφής που παρέχει το περιβάλλον.net των Windows. Το λογισμικό αποτελείται από 3 διαφορετικά αντικείμενα κλάσεις : 1. Το αντικείμενο (κλάση) που διαχειρίζεται το παράθυρο της εφαρμογής και ελέγχει τα διάφορα γεγονότα που μπορεί να συμβούν, όπως το πάτημα κάποιου κουμπιού ή τις επιλογές που κάνει ο χρήστη για διάφορες μεταβλητές πχ επιλογή θύρας. 2. Το αντικείμενο (κλάση) που διαχειρίζεται την επικοινωνία με την θύρα για την λήψη και αποθήκευση των τιμών σε κατάλληλα αρχεία. 3. Το αντικείμενο (κλάση) που διαχειρίζεται το παράθυρο όπου εμφανίζεται η κυματομορφή των τιμών, καθώς και εμφανίζει τις κατάλληλες τιμές Κλάση Κυρίως Παραθύρου Η κλάση του κυρίως παραθύρου περιλαμβάνει τα εξής αντικείμενα: Το αντικείμενο που σχετίζεται με το κουμπί capture. Το αντικείμενο που σχετίζεται με το κουμπί Plot Signal. Το αντικείμενο που σχετίζεται με την επιλογή open για την επιλογή της θέση των κατάλογο αρχείων όπου θα αποθηκευτούν τα αρχεία των τιμών. Το αντικείμενο που σχετίζεται με την επιλογή delete για την διαγραφή των αρχείων που έχουν δημιουργηθεί. Το αντικείμενο που σχετίζεται με την επιλογή θύρας επικοινωνίας από τον χρήστη. Όταν αρχίζει να εκτελείται η εφαρμογή, η κυρίως διεργασία του συστήματος δημιουργεί ένα νέο παραθυρικό αντικείμενο μαζί με τα αντικείμενα που αυτό περιλαμβάνει. Η αρχικοποίηση του αντικειμένου περιλαμβάνει την δημιουργία του παραθύρου και των αντικειμένων που το αποτελούν μαζί με πληροφορίες σχετικά με καθένα από τα αντικείμενα αυτά, πχ την θέση του πάνω στο παράθυρο της εφαρμογής,, το όνομα τους, το μέγεθος κτλ. Αφού δημιουργηθούν τα παραπάνω αντικείμενα η διεργασία αναμένει για τα διάφορα γεγονότα (events) που μπορεί να συμβούν. Κάθε γεγονός είναι συσχετισμένο με μια ρουτίνα εξυπηρέτησης του. Έτσι όταν πιέζεται κάποιο από τα κουμπιά ή όταν επιλέγεται κάποια θύρα ή όταν ζητείται από τον χρήστη να επιλέξει την τοποθεσία αποθήκευσης των αρχείων με τις τιμές, τότε εκτελείται η αντίστοιχη ρουτίνα διαχείρισης του γεγονότος. Οι εργασίες που εκτελεί κάθε ρουτίνα εξυπηρέτησης γεγονότος περιγράφονται παρακάτω: 107
108 Ρουτίνα Γεγονότος Κουμπιού capture Όταν πιεστεί το κουμπί capture, η ρουτίνα εξυπηρέτησης ελέγχει αρχικά αν έχει γίνει επιλογή θύρας και τοποθεσίας αποθήκευσης τιμών από τον χρήστη. Αν δεν έχει γίνει του ζητάει να κάνει τις παραπάνω επιλογές. Αν έχει γίνει τότε η ρουτίνα ελέγχει αν η διεργασία λήψης των τιμών είναι ήδη σε λειτουργία, οπότε στην περίπτωση αυτήν την διακόπτει, ενώ αν δεν είναι σε λειτουργία δημιουργεί ένα νέο νήμα ώστε να αρχίσει η διαδικασία λήψης των τιμών. Τελικά η ρουτίνα ολοκληρώνει την λειτουργία της. Ρουτίνα Γεγονότος Κουμπιού Plot Signal Όταν πιεστεί το κουμπί Plot Signal, η ρουτίνα εξυπηρέτησης ελέγχει αρχικά αν οι τιμές που ζητάει ο χρήστης να εμφανίζει έχουν δημιουργηθεί και δεν έχουν διαγραφεί προηγουμένως. Σε περίπτωση που δεν έχουν δημιουργηθεί ζητάει από τον χρήστη να δημιουργήσει αρχικά τα αρχεία με τις τιμές πιέζοντας το πλήκτρο capture, ενώ σε περίπτωση που έχουν διαγραφεί προηγουμένως από τον χρήστη τον ενημερώνει σχετικά. Αν οι τιμές έχουν δημιουργηθεί και δεν έχουν διαγραφεί τότε, τότε η ρουτίνα ελέγχει αν η διαδικασίας σχεδίασης εκτελείται ήδη, οπότε σταματάει την λειτουργία της, ή δεν βρίσκεται σε λειτουργία οπότε δημιουργεί ένα νέο παράθυρο για την απεικόνιση των τιμών και ένα νέο νήμα το οποίο εκτελεί κατάλληλη συνάρτηση για την απεικόνιση των τιμών. Ρουτίνα Επιλογής Θύρας Όταν επιλεγεί η κατάλληλη θύρα από τον χρήστη η ρουτίνα εξυπηρέτησης του γεγονότος αποθηκεύει την τιμή που επέλεξε ο χρήστης ώστε η τελευταία να μπορεί να χρησιμοποιηθεί από το σύστημα, ενώ ενημερώνει μια κατάλληλη σημαία η οποία υποδηλώνει ότι ο χρήστης έχει κάνει επιλογή θύρας. Ρουτίνα Επιλογής Αρχείου για την αποθήκευση των τιμών Ο χρήστης με την επιλογή open μπορεί να επιλέξει την θέση στον κατάλογο αρχείων όπου θα αποθηκευτούν οι τιμές. Η ρουτίνα εξυπηρέτησης του γεγονότος αρχικά δημιουργεί ένα κατάλληλο παράθυρο μέσω του οποίου ο χρήστης μπορεί να κάνει επιλογή της θέσης όπου θα αποθηκευτούν οι τιμές. Στην συνέχεια αποθηκεύει την θέση που επέλεξε ο χρήστης σε κατάλληλη μεταβλητή, και ενημερώνει την κατάλληλη σημαία ότι ο χρήστης έχει κάνει επιλογή θέσης στον κατάλογο αρχείων. Ρουτίνα Διαγραφής Αρχείων Όταν ο χρήστης επιλέγει να διαγράψει τα αρχεία, τότε η ρουτίνα εξυπηρέτησης γεγονότος διαγράφει τα αρχεία τα αρχεία που έχει δημιουργήσει η εφαρμογή. 108
109 Κλάση Διαχείρισης Θύρας Όταν δημιουργείται μια νέα τέτοια κλάση, τότε με κλήση της συνάρτησης CreateFile ανοίγει η θύρα που έχει επιλεγεί από τον χρήστη. Η συνάρτηση DoWork είναι υπεύθυνη για την εκτέλεση της διαδικασίας λήψης και αποθήκευσης των τιμών όπως αυτή έχει περιγραφεί (βλ Λογισμικό λήψης και αποθήκευσης τιμών) Κλάση Απεικόνισης τιμών Η κλάση περιλαμβάνει την συνάρτηση plotting η οποία είναι υπεύθυνη για την απεικόνιση των τιμών. Η συνάρτηση αυτή καλεί την συνάρτηση show η οποία λαμβάνει ως όρισμα την θέση στον κατόλογο των αρχείων όπου βρίσκονται τα αρχεία των τιμών και η οποία εμφανίζει τις τιμές. Παράθυρο απεικόνισης τιμών Η απεικόνηση των τιμών γίνεται με την χρήση ειδικής δυναμικής βιβλιοθήκης η οποία υλοποιήθηκε από τον Michael Bernstein και η οποία διατίθεται διαδικτυακά εντελώς δωρεάν, στο επίσημο site της βιβλιοθήκης lib.com/. Με χρήση της δυναμικής αυτής βιβλιοθήκης γίνεται η απεικόνιση των τιμών. Για την διαχείριση της βιβλιοθήκης αυτής υλοποιήθηκαν τρεις διαφορετικές συναρτήσεις η initdll, η οποία φορτώνει την δυναμική βιβλιοθήκη έτσι ώστε να μπορεί να χρησιμοποιηθεί από το σύστημα, η closelibrary η οποία αποδεσμεύει την βιβλιοθήκη όταν έχει ολοκληρωθεί η χρήση της από το πρόγραμμα και η show η οποία λαμβάνει τις τιμές των δειγμάτων από τα κατάλληλα αρχεία όπου είχαν αποθηκευτεί προηγουμένως και τις εμφανίζει με την χρήση κατάλληλων συναρτήσεων που παρέχει η παραπάνω δυναμική βιβλιοθήκη. Η εκκίνηση της απεικόνισης των τιμών καθώς και της διακοπής της απεικόνισης γίνεται όπως αναφέρθηκε μέσω του κουμπιού Plot Signal Επέκταση Λογισμικού Και Υπολογισμός Διακριτού Μετασχηματισμού Fourier Γενική Περιγραφή Σε συστήματα (όπως αυτό που υλοποιήθηκε) μέτρησης ηλεκτρικών σημάτων μια επιθυμητή ανάλυση των δειγμάτων του σήματος που λαμβάνονται είναι η ανάλυση τους στο πεδίο της συχνότητας (Frequency Domain). Για να επιτευχθεί η ανάλυση αυτή απαραίτητος είναι ο υπολογισμός του Διακριτού μετασχηματισμού Fourier (DFT). Συνεπώς, είναι επιθυμητό στα πλαίσια των υπολογισμών που εκτελεί ο μικροελεγκτής να συμπεριλαμβάνεται και ο υπολογισμός του Διακριτού μετασχηματισμού Fourier. Η επιπρόσθετη αυτή επεξεργασία, ωστόσο, δεν πρέπει να έχει αρνητικό αντίκτυπο στην πληροφορία των δειγμάτων που λαμβάνονται. Συνεπώς ένα απαιτητικό εγχείρημα είναι να βρεθούν και να υλοποιηθούν αλγόριθμοι οι οποίοι εκτελούν τους υπολογισμούς αυτούς γρήγορα με την χρήση των κατά 109
110 το δυνατόν λιγότερων πόρων. Με κριτήριο τους αυστηρούς χρονικούς περιορισμούς που πρέπει να τηρεί το σύστημα και την αυξημένη πολυπλοκότητα των υπολογισμών που έχει να εκτελέσει αναπτύχθηκαν κατάλληλοι αλγόριθμοι για την επεξεργασία του σήματος στο πεδίο της συχνότητας. Η αρχιτεκτονική του συστήματος που προκύπτει μετά την προσθήκη του υπολογισμού του Διακριτού μετασχηματισμού Fourier είναι παρόμοια με την απλούστερη περίπτωση που έχει αναλυθεί παραπάνω αν και προϋποθέτει ορισμένες αλγοριθμικές αλλαγές, οι βασικότερες εκ των οποίων είναι οι εξής: Το μέγεθος της πληροφορίας που αποστέλλεται πρέπει να αυξηθεί έτσι ώστε να συμπεριλαμβάνει και την πληροφορία που σχετίζεται με τον Διακριτό μετασχηματισμό Fourier. Ο τρόπος με τον οποίo γίνεται ο υπολογισμός των παραμέτρων Vrms, S, pf πρέπει να αλλάξει έτσι ώστε να εξοικονομηθούν κύκλοι μηχανής. Πρέπει να υλοποιηθούν κατάλληλοι αλγόριθμοι για τον υπολογισμός του Διακριτού μετασχηματισμού Fourier. Με την υλοποίηση των αλλαγών αυτών προκύπτει το νέο σύστημα. Αξίζει να σημειωθεί ότι οι παραπάνω αλλαγές αποτελούν προσθήκη στο σύστημα που έχει αναλυθεί ως τώρα. Το τελικό σύστημα δίνει την δυνατότητα στον χρήστη να επιλέξει τον τρόπο με τον οποίο θέλει να λειτουργεί το σύστημα, επιλέγοντας εάν θέλει το σύστημα να περιλαμβάνει τον υπολογισμό του Διακριτού μετασχηματισμού Fourier ή όχι. Η επιλογή αυτή γίνεται κατά την διαδικασία της μεταγλώττισης του πηγαίου κώδικα, οπότε ο χρήστης μπορεί να ορίσει τον κώδικα που θέλει να παράγει ο μεταγλωττιστής και ο οποίος θα εκτελεστεί από τον μικροελεγκτή. Τελικά προκύπτουν τρεις περιπτώσεις παραγόμενου κώδικα ανάλογα με τις επιλογές του χρήστη: Ο χρήστης επιλέγει να μην γίνει καμιά αλλαγή στο σύστημα στην περίπτωση αυτή το σύστημα λειτουργεί όπως έχει ήδη περιγραφεί. Στην περίπτωση αυτή, ο υπολογισμός των τιμών Vrms, S, pf απαιτεί πολλούς κύκλους μηχανής αλλά τα αριθμητικά αποστελεσμάτα είναι το κατά το δυνάτον ακριβέστερα. Ο χρήστης επιλέγει ο υπολογισμός των τιμών Vrms, S και pf να γίνεται ταχύτερα αλλά και με λιγότερη ακρίβεια. Ο υπολογισμός των τιμών Vrms, S και pf σε αυτή την περίπτωση απαιτεί λιγότερους κύκλους μηχανής οι οποίοι μπορούν αξιοποιηθούν για άλλους πρόσθετους υπολογισμούς που τυχόν είναι επιθυμητό να προστεθούν Ο χρήστης επιλέγει να γίνεται επιπρόσθετα ο υπολογισμός του διακριτού μετασχηματισμού Fourier από την συσκευή. Στην περίπτωση αυτή έχουμε αποτελέσματα χαμηλότερης ακρίβειας από τις δύο προηγούμενες περιπτώσεις αφού είναι απαραίτητο να εξοικονομηθούν κύκλοι μηχανής για τον υπολογισμό του Διακριτού μετασχηματισμού Fourier. Στα επόμενα θα αναλυθούν οι αλγόριθμοι των δύο τελευταίων περιπτώσεων, εφόσον η πρώτη περίπτωση έχει ήδη αναλυθεί. Αρχικά όμως και πριν από την ανάλυση των δύο 110
111 αυτών περιπτώσεων είναι απαραίτητο να παρουσιαστεί το μαθηματικό και θεωρητικό υπόβαθρο των αλγορίθμων που περιλαμβάνουν Aκέραιοι Σταθερής Υποδιαστολής (Fixed Point Integers) Η μείωση των κύκλων μηχανής για τους υπολογισμούς των διαφόρων παραμέτρων έγινε με την χρήση ακεραίων σταθερής υποδιαστολής. Με τον όρο αυτό εννοούνται ακέραιοι οι οποίοι χρησιμοποιούνται για να αναπαραστήσουν δεκαδικούς αριθμούς. Ορισμένα bits των ακεραίων αυτών χρησιμοποιούνται για να αναπαραστήσουν το ακέραιο μέρος ενός δεκαδικού αριθμού ενώ τα υπόλοιπα το δεκαδικό μέρος. Αν και ακέραιοι αυτοί αναπαριστούν δεκαδικούς αριθμούς το σύστημα τους διαχειρίζεται ως ακεραίους. Η χρήση ακεραίων βελτιώνει την απόδοση του συστήματος λόγω του ότι γίνεται καλύτερη χρήση του υλικού της συσκευής. Καθώς ο μικροελεγκτής δε διαθέτει κατάλληλο υλικό που να του επιτρέπει να διαχειρίζεται δεκαδικούς αριθμούς (Floating Point Unit) η εκτέλεση πράξεων μεταξύ δεκαδικών αριθμών απαιτεί πολύ περισσότερους κύκλους μηχανής από ότι μεταξύ ακεραίων. Στην πραγματικότητα ο μεταγλωτιστής φροντίζει να παρέχει στον προγραμματιστή την δυνατότητα να διαχειρίζεται αριθμούς κινητής υποδιαστολής, μια δυνατότητα που το υλικό δεν διαθέτει. Αυτό έχει σαν αποτέλεσμα ο χειρισμός αριθμών κινητής υποδιαστολής να απαιτεί πολύ περισσότερες πράξεις. Αντίθετα όταν χρησιμοποιούνται ακέραιοι το υλικό μπορεί να τους διαχειριστεί απευθείας και έτσι το σύστημα δεν επιβαρύνεται. Ένας ακέραιος σταθερής υποδιαστολής χαρακτηρίζεται από την σύμβαση που ακολουθεί (Format), έτσι για παράδειγμα ένας ακέραιος μεγέθους 16 bits μπορεί να έχει την εξής μορφή: Σχήμα 43 Παράδειγμα ακεραίου σταθερής υποδιαστολής Όπου το πρώτο bit καθορίζει το πρόσημο του αριθμού, τα επόμενα 2 εκφράζουν το ακέραιο μέρος του δεκαδικού αριθμού και τα τελευταία 12 το δεκαδικό του μέρος. Με αυτόν τον τρόπο ακέραιοι (integers) αριθμοί, μπορούν να αναπαραστήσουν δεκαδικούς αριθμούς. Ο ακέραιος αριθμός που αναπαριστά έναν αριθμό κινητής υποδιαστολής προκύπτει πολλαπλασιάζοντας τον αριθμό αυτό με την δύναμη του δύο του αριθμού των bits του δεκαδικού μέρους του ακεραίου που τον αναπαριστά. Έτσι για παράδειγμα η τιμή του ακέραιου αριθμού με μορφή όπως φαίνεται στο Σχήμα (1) όταν αυτός αναπαριστά τον 111
112 12 δεκαδικό αριθμό είναι Αντίστοιχα, από τον ακέραιο προκύπτει ο δεκαδικός αριθμός που αναπαριστά με πραγματική (real) διαίρεση του ακεραίου με την δύναμη του 2 του αριθμού των bits του δεκαδικού μέρους του ακεραίου. Έτσι για παράδειγμα ο αριθμός 5509 αναπαριστά την δεκαδική τιμή , όπου φαίνεται ότι η αναπαράσταση του αριθμού από τον ακέραιο δεν είναι απόλυτα ακριβής και η ακρίβεια της εξαρτάται από τον αριθμό των bits του δεκαδικού μέρους. Με αυτόν τον τρόπο είναι δυνατόν να λαμβάνονται δεκαδικές τιμές, οι οποίες υπόκεινται επεξεργασία ως ακέραιες και τα αποτελέσματα να μεταφράζονται σε δεκαδικές τιμές. Ιδιότητες Πράξεων Ακεραίων σταθερής υποδιαστολής Ο ακέραιος σταθερής υποδιαστολής που προκύπτει από το άθροισμα δύο ακεραίων κινητής υποδιαστολής αναπαριστά έναν δεκαδικό αριθμό που είναι ίσος με το άθροισμα των δεκαδικών αριθμών που αναπαριστούν οι δύο ακέραιοι κινητής υποδιαστολής. Το ίδιο ισχύει και για τις πράξεις του πολλαπλασιασμού και της αφαίρεσης. Συνεπώς εκτελώντας τις πράξεις αυτές μεταξύ των ακεραίων μπορούμε να υπολογίσουμε τον ζητούμενο δεκαδικό αριθμό. Παρόλα ο ακέραιος που προκύπτει από τις παραπάνω πράξεις έχει διαφορετική μορφή από τους ακεραίους από τους οποίου προκύπτει, συγκεκριμένα: Πρόσθεση, από το άθροισμα δύο ακεραίων σταθερής υποδιαστολής μπορεί να προκύψει ένας αριθμός με ίδιο αριθμό bits δεκαδικού μέρους και με αριθμό bits ακεραίου μέρους ίσο με τον αριθμό bits του ακεραίου μέρους των δύο αριθμών αυξημένο κατά ένα. Έτσι για παράδειγμα από το άθροισμα δύο ακεραίων με μορφή 3 bits ακέραιου μέρους και 12 bits δεκαδικού προκύπτει ένας αριθμός με 4 bits ακέραιο μέρος και 12 bits δεκαδικό. Αφαίρεση, παρόμοια με την πρόσθεση ισχύει και για την αφαίρεση στην περίπτωση που ένας θετικός αριθμός αφαιρείται από έναν αρνητικό αριθμό, σε διαφορετική περίπτωση το αποτέλεσμα έχει μορφή ίδια με αυτή των bits από τα οποία προέκυψε. Πολλαπλασιασμός, από το γινόμενο δύο ακεραίων σταθερής υποδιαστολής μπορεί να προκύψει ένας αριθμός με διπλάσιο αριθμό bits τόσο στο ακέραιο όσο και στο δεκαδικό μέρος, έτσι για παράδειγμα το γινόμενο δύο ακεραίων με μορφή 3 bits ακέραιο μέρος και 12 bits δεκαδικό έχει μορφή 6 bits ακέραιου μέρους και 24 bits δεκαδικού. Διαίρεση, το αποτέλεσμα της πραγματικής διαίρεσης δύο αριθμών σταθερής υποδιαστολής είναι ίδιο με το αποτέλεσμα της διαίρεσης των δεκαδικών αριθμών που αυτοί αναπαριστούν. 112
113 Με χρήση συνεπώς των ακεραίων σταθερής υποδιαστολής (integers) είναι δυνατόν να αποφευχθεί η χρήση αριθμών κινητής υποδιαστολής (float) Yπολογισμός Διακριτού Μετασχηματισμού Fourier (DFT) Ο Διακριτός Μετασχηματισμός Fourier μιας ακολουθίας τιμών μεγέθους N δίνεται από τον παρακάτω τύπο: N 1 X( k) x( n) e n0 2 kn j N ή αν συμβολίσουμε το e 2 kn j N με nk W N τότε N 1 X( k) x( n) W n0 nk N Είναι φανερό ότι ο υπολογισμός του DFT απευθείας από τον ορισμό του απαιτεί πολλές πράξεις και συγκεκριμένα αν η ακολουθία των τιμών είναι πραγματική (δηλαδή όχι μιγαδική) τότε η πολυπλοκότητα του υπολογισμού του είναι της τάξης του 2 On ( ). Ωστόσο διάφοροι αλγόριθμοι έχουν αναπτυχθεί για ώστε να μειωθεί η πολυπλοκότητα των υπολογισμών. Οι αλγόριθμοι αυτοί είναι γενικά γνωστοί με την ονομασία Γρήγοροι Μετασχηματισμοί Fourier (Fast Fourier Transform FFT). Γνωστοί αλγόριθμοι FFT είναι ο FFT διαίρεσης στο χρόνο με βάση το 2 (Radix 2 Decimation in Time FFT), ο FFT διαίρεσης στη συχνότητα με βάση το 2 (Radix 2 Decimation in Frequency FFT), ο FFT με μικτή βάση και ο FFT πρώτων παραγόντων (Prime Factor FFT). Ο γνωστότερος από τους παραπάνω αλγορίθμους είναι ο FFT διαίρεσης στον χρόνο με βάση το 2 ο οποίος δημοσιεύθηκε για πρώτη φορά από τους Cooley και Tukey το 1965 και έχει πολυπλοκότητα της τάξης του On ( lg n ), όπου με lg εννοείται ο λογάριθμος με βάση το 2. Ο αλγόριθμος αυτός για να εφαρμοστεί απαιτεί το μέγεθος της ακολουθίας των τιμών να είναι δύναμη του 2. Η βασική αρχή στην οποία βασίζεται ο παραπάνω αλγόριθμος είναι το γεγονός ότι ο FFT ενός σήματος μεγέθους N, όπου το Ν δύναμη του 2, μπορεί να προκύψει αναδρομικά. Το μαθηματικό υπόβαθρο στο οποίο στηρίζεται ο αλγόριθμος φαίνεται παρακάτω: 2kn 2kn 2kn N1 j N1 j N1 j N N N n0 nά nί X ( k ) xn ( ) e xn ( ) e xn ( ) e 2mk 2km j 2 k j N 1 N j N 1 N 2 2 N 2 2 m0 m0 X ( k ) x (2 m ) e e x (2 m 1) e k X( k) F( k) W G( k) N Παραπάνω φαίνεται ότι ο Διακριτός Μετασχηματισμός Fourier ενός σήματος μεγέθους N δειγμάτων όπου το N είναι άρτιος αριθμός είναι ίσος με το άθροισμα του Διακριτού Μετασχηματισμού Fourier των άρτιων δειγμάτων του σήματος και του Διακριτού μετασχηματισμού Fourier των περιττών δειγμάτων του σήματος πολλαπλασιασμένα επί 113
114 έναν παράγοντα (twiddle factor). Παρόλο που οι Διακριτοί Μετασχηματισμοί Fourier των περιττών και των άρτιων δειγμάτων του σήματος είναι μεγέθους Ν/2 παρόλα αυτά ο FFT του συνολικού σήματος μπορεί να προκύψει λόγω της περιοδικότητας του Διακριτού Μετασχηματισμού Fourier: X ( k N) X( k) Όπου N είναι το μέγεθος του Διακριτού Mετασχηματισμού Fourier. Συνεπώς αν ληφθεί υπόψιν το γεγονός ότι: W kn kn 2 2 N WN Προκύπτει ότι ο Διακριτός μετασχηματισμός Fourier ενός σήματος μεγέθους N όπου το N είναι άρτιος αριθμός προκύπτει ως εξής: k X( k) F( k) WN G( k), k 0,1,..., N 1 2 m X( k) F( m) WN G( m), k N,..., N 1 m0,1,..., N Όπου: F( k) Gk ( ) X ( k) είναι ο Διακριτός Μετασχηματισμός Fourier των άρτιων δειγμάτων του σήματος είναι ο Διακριτός Μετασχηματισμός Fourier των περιττών δειγμάτων του σήματος είναι ο Διακριτός Μετασχηματισμός Fourier του σήματος Στην περίπτωση που το μέγεθος των υποακολουθιών που προκύπτουν είναι άρτιος αριθμός η παραπάνω διαδικασία μπορεί να συνεχιστεί και για τον υπολογισμό των F( k ) και Gk ( ), οπότε ο αρχικός Διακριτός Μετασχηματισμός Fourier μπορεί να προκύψει από τον υπολογισμό τεσσάρων μικρότερων Διακριτών Μετασχηματιστών Fourier μεγέθους N/4 ο καθένας. Στην περίπτωση που το μέγεθος Ν είναι δύναμη του 2 η παραπάνω διαδικασία μπορεί να συνεχιστεί μέχρι να προκύψουν υποακολουθίες μεγέθους 2. Για παράδειγμα ο Διακριτός Μετασχηματισμός Fourier ενός σήματος μεγέθους 8 μπορεί να προκύψει όπως φαίνεται στο παρακάτω σχήμα: 114
115 Σχήμα 44 FFT 8 σημείων διαίρεσης στο χρόνο με βάση το 2 Στο αρχικό βήμα ο Διακριτός Μετασχηματισμός Fourier μιας ακολουθίας μεγέθους 2 προκύπτει όπως φαίνεται στο παρακάτω σχήμα: Δηλαδή : X(0) x(0) x(1) X(1) x(0) x(1) Σχήμα 45 Διάγραμμα Πεταλούδας (Butterfly Diagramm) Στην συνέχεια ακολουθείται η διαδικασία που έχει περιγραφεί για να υπολογιστούν οι Μετασχηματισμοί μεγαλύτερου μεγέθους εώς ότου τελικά υπολογιστεί ο συνολικός Διακριτός Μετασχηματισμός Fourier. Το αποτέλεσμα του Διακριτού Μετασχηματισμού Fourier είναι μια μιγαδική ακολουθία μεγέθους ίσου με το μέγεθος του σήματος από το οποίο προέκυψε. Στις περισσότερες εφαρμογές επεξεργασίας ενός σήματος στο πεδίο της συχνότητας είναι περισσότερο χρήσιμος ο υπολογισμός του φάσματος (Spectrum) του σήματος παρά της μιγαδικής ακολουθίας του DFT. Με το όρο φάσμα (Spectrum) εννοείται το μέτρο της ακολουθίας του Διακριτού Μετασχηματισμού Fourier που δίνεται από την παρακάτω σχέση: X k X k X k k N 2 2 ( ) Re ( ( )) Im ( ( )), 0,..., 1 115
116 Στην περίπτωση που το σήμα του οποίου υπολογίζεται ο Διακριτός Μετασχηματισμός Fourier είναι πραγματικό τότε ισχύει: N 1 2 n( Nk) j N * n0 X( N k) x( n) e X ( k) X N k X k X k k N 2 * ( ) ( ) ( ), 0,..., 1 Συνεπώς δεν είναι απαραίτητος ο υπολογισμός του μέτρου κάθε στοιχείου του Διακριτού Μετασχηματισμού Fourier αλλά μόνο των πρώτων N/2 στοιχείων έτσι ώστε να υπολογίσουμε το φάσμα του σήματος Υπολογισμός Τετραγωνικής Ρίζας Ο υπολογισμός της τετραγωνικής ρίζας ενός αριθμού είναι μια χρονοβόρα διαδικασία από άποψη υπολογισμών. Ο υπολογισμός της τετραγωνικής ρίζας ενός αριθμού S μπορεί να θεωρηθεί ως πρόβλημα επίλυσης της εξίσωσης x 2 S 0 Με τον υπολογισμό του x που ικανοποιεί την παραπάνω εξίσωση έχει ουσιαστικά υπολογιστεί η τετραγωνική ρίζα του x. Ένας από τους γνωστότερους και αρχαιότερους αλγορίθμους για τον υπολογισμό της τετραγωνικής ρίζας είναι η Βαβυλονιακή Μέθοδος (Babylonian Method), σύμφωνα με την οποία ο υπολογισμός της τετραγωνικής ρίζας ενός αριθμού S γίνεται με διαδοχικές προσεγγίσεις της τιμής με βάση τις παρακάτω σχέσεις: x ήή x o n1 ( xn S ) xn 2 S lim x n n Ο αλγόριθμος αυτός αποτελεί στην πραγματικότητα όμως και την εφαρμογή της Νευτόνιας μεθόδου (Newton s Method) για την επίλυση της εξίσωσης του υπολογισμού της ρίζας. Έτσι από την Νευτόνια μέθοδο έχουμε: x ήή 0 2 f( x) x S ' f x x ( ) 2 ( x S ) f ( x ) x S x x x x 2 n n n n n1 n ' n f ( xn) 2 xn 2 116
117 Ο παραπάνω αλγόριθμος αποτελεί μια πολύ γρήγορη μέθοδο για τον υπολογισμό της τετραγωνικής ρίζας ενός αριθμού Lookup Tables (LUT) Σε πολλές περιπτώσεις είναι απαραίτητος ο υπολογισμός δεδομένων που χρησιμοποιούνται από το σύστημα για την επεξεργασία της πληροφορίας. Οι επιπλέον υπολογισμοί επιβαρύνουν το σύστημα και όταν αυτό πρόκειται για ένα σύστημα περιορισμένων πόρων που απαιτεί τον υπολογισμό πολλών παραμέτρων, οι επιπλέον αυτοί υπολογισμοί έχουν μεγάλο αρνητικό αντίκτυπο στην απόδοση του συστήματος. Μια συνήθης τεχνική συνεπώς για να ξεπεραστεί το παραπάνω πρόβλημα είναι η χρήση ειδικών πινάκων όπου αποθηκεύονται τα αποτελέσματα ορισμένων υπολογισμών έτσι ώστε να χρησιμοποιηθούν οι τιμές αυτές χωρίς να είναι απαραίτητο να υπολογιστών. Οι πίνακες αυτοί ονομάζονται Lookup Tables και αποθηκεύονται στην μνήμη του προγράμματος του μικροελεγκτή ως σταθερές. Οι πίνακες αυτοί συνήθως περιλαμβάνουν προυπολογισμένες τιμές τριγωνομετρικών συναρτήσεων ή λογαριθμικών συναρτήσεων Αλγοριθμική Επέκταση Λογισμικού Όπως έχει αναφερθεί, η επιπρόσθετη λειτουργία του υπολογισμού του Διακριτού Μετασχηματισμού Fourier επιβάλλει κάποιες αλγοριθμικές αλλαγές στο σύστημα. Οι αλλαγές αυτές στην περίπτωση του υπολογισμού του FFT είναι οι εξής: Αριθμός Δεδομένων Ο αριθμός των δεδομένων που πρέπει να αποσταλούν αυξάνεται έτσι ώστε να περιλαμβάνει την νέα πληροφορία που σχετίζεται με τον υπολογισμό του FFT. Συγκεκριμένα αποστέλλεται το φάσμα του σήματος του ρεύματος. Καθώς το σήμα του ρεύματος για το οποίο υπολογίζεται ο FFT έχει μέγεθος 320 δειγμάτων και καθώς πρόκειται για πραγματικό σήμα, οι τιμές του φάσματος που χρειάζεται να αποσταλούν είναι 320/2 δηλαδή 160 τιμές. Έτσι για κάθε περίοδο του σήματος αποστέλλονται συνολικά αντί για 963 τιμές 1123 τιμές. Έτσι το κάθε πακέτο δεδομένων που αποστέλλεται γίνεται από 963 float τιμές 1123 τιμές float, και έτσι καθώς το μέγεθος του απομονωτή όπου αποθηκεύονται οι τιμές προς αποστολή είναι ίσο με 2 πακέτα δεδομένων προς αποστολή, το νέο μέγεθος του απομονωτή προκύπτει 2246 τιμές float. Υπολογισμός Διακριτού Μετασχηματισμού Fourier Πριν την αποστολή των δεδομένων μέσω της θύρας του USB υπολογίζεται το φάσμα με κλήση της συνάρτησης calculate_fft. 117
118 Μέγεθος Απομονωτή Δεδομένων Προς Αποστολή Χρησιμοποιείται ένας επιπλέον απομονωτής για την αποθήκευση των τιμών του σήματος του ρεύματος με βάση τις οποίες θα υπολογιστεί το φάσμα. Το μέγεθος του απομονωτή αυτού είναι 640 τιμές, δηλαδή έχει μέγεθος δύο περιόδων του σήματος (σε κάθε περίοδο δειγματοληπτούμε 320 τιμές). Με αυτόν τον τρόπο η συνάρτηση του υπολογισμού του FFT επεξεργάζεται τις τιμές μιας περιόδου που βρίσκονται αποθηκευμένες στο ένα μισό του απομονωτή ενώ στο άλλο μισό συνεχίζεται να προστίθενται νέες τιμές του σήματος του ρεύματος από την συνάρτηση εξυπηρέτησης της διακοπής του ρολογιού, με αποτέλεσμα να μην υπάρχει πρόβλημα απώλειας πληροφορίας λόγω επικάλυψης των τιμών. Υπολογισμός Vrms, S και pf Ο τρόπος με τον οποίον υπολογίζονται οι τιμές των Vrms, S και pf αλλάζει έτσι ώστε οι υπολογισμοί αυτοί να γίνονται γρηγορότερα και με λιγότερους κύκλους μηχανής. Έτσι για τον υπολογισμό των παραπάνω τιμών γίνεται χρήση ακεραίων σταθερής υποδιαστολής καθώς και ειδικής συνάρτησης υπολογισμού της τετραγωνικής ρίζας αριθμών κινητής υποδιαστολής. Έτσι τα δεδομένα αυτά υπολογίζονται γρηγορότερα αλλά με κόστος την μικρότερη ακρίβεια των υπολογιζόμενων τιμών. Οι ακέραιοι σταθερής υποδιαστολής που χρησιμοποιούνται για την αναπαράσταση της τιμής των δειγμάτων έχων την εξής μορφή: Σχήμα 46 Ακέραιος σταθερής υποδιαστολής 4bits ακεραίου και 11bits δεκαδικού μέρους Δηλαδή έχουν 4bits ακέραιο μέρος και 11 bits δεκαδικό μέρος. Η μορφή αυτή επιλέχθηκε καθώς ο A/D δίνει στην έξοδο του τιμές από 10 έως και 10, συνεπώς χρειάζονται 4 bits για το ακέραιο μέρος της τιμής. Καθώς οι τύποι για τον υπολογισμό των Vrms, Irms και P μέσου όπως έχει αναφερθεί είναι οι παρακάτω: V rms N 1 2 n0 v ( n) N I rms N 1 2 n0 i ( n) N 118
119 P N 1 n0 vn ( ) in ( ) N Ο υπολογισμός των παραμέτρων γίνεται ως εξής: Αρχικά υπολογίζονται τα αθροίσματα N 1 v ( n ), N i ( n ), N v ( n ) i ( n ) n0 n0 τα οποία n0 αποθηκεύονται σε τρεις ακεραίους σταθερής υποδιαστολής μεγέθους των 32bits. Καθώς οι τιμές της τάσης και του ρεύματος είναι 16bits ακέραιοι σταθερής υποδιαστολής με 11bits δεκαδικό μέρος και 4bits ακέραιο, το γινόμενο τους είναι ένας αριθμός των 8bits ακέραιο μέρος και 22bits δεκαδικό. Για να μην έχουμε πρόβλημα υπερχείλισης λόγω της άθροισης πολλών τέτοιων αριθμών το αποτέλεσμα του γινομένου κανονικοποιείται έτσι ώστε να έχει δεκαδικό μέρος των 11bits. Αφού υπολογιστούν τα παραπάνω αθροίσματα, διαιρούνται με τον αριθμό N (δηλαδή 320) και υπολογίζεται η τετραγωνική τους ρίζα. Ο υπολογισμός των ριζών γίνεται είτε με την χρήση της συνάρτησης sqrt της βιβλιοθήκης math αφού πρώτα αποχτηθεί η τιμή κινητής υποδιαστολής που αναπαριστούν οι ακέραιοι είτε με την χρήση ειδικής συνάρτησης υπολογισμού τετραγωνικής ρίζας ακεραίων σταθερής υποδιαστολής που έχει υλοποιηθεί και στην συνέχεια το αποτέλεσμα μετατρέπεται σε τιμή κινητής υποδιαστολής. Το ποιος τρόπος υπολογισμού θα χρησιμοποιηθεί εξαρτάται από την επιλογή του χρήστη κατά το στάδιο της μεταγλώττισης. Συνάρτηση Υπολογισμού Τετραγωνικής Ρίζας Για την βελτίωση της απόδοσης του συστήματος αναπτύχθηκε ειδική συνάρτηση υπολογισμού της τετραγωνικής ρίζας ακεραίων σταθερής υποδιαστολής. Η συνάρτηση αυτή απαιτεί πολύ λιγότερους κύκλους μηχανής από η ενσωματωμένη συνάρτηση της βιβλιοθήκης math, αλλά η ακρίβειά της είναι μικρότερη. Η συνάρτηση μπορεί να υπολογίσει τετραγωνικές ρίζες ακεραίων σταθερής υποδιαστολής με άρτιο αριθμό bits δεκαδικού μέρους, καθώς εκμεταλλεύεται το γεγονός ότι ένας αριθμός με άρτιο αριθμό bits δεκαδικού μέρους μπορεί να προκύψει από το γινόμενο δύο αριθμών με τον μισό αριθμό bits δεκαδικού μέρους. Επίσης εκμεταλλεύεται το γεγονός ότι η τετραγωνική ρίζα ενός ακεραίου σταθερής υποδιαστολής έχει μέγεθος ίσο με το μισό των bits του ακεραίου. Για παράδειγμα η τετραγωνική ρίζα ενός ακεραίου αριθμoύ σταθερής υποδιαστολής μεγέθους 32bits έχει μέγεθος 16bits. Έτσι γνωρίζοντας ότι η τιμή που χρειάζεται να υπολογιστεί μπορεί να αναπαρασταθεί από τον μισό αριθμό bits μπορούμε να χρησιμοποιήσουμε μια καλύτερη αρχική εκτίμηση για την ρίζα με αποτέλεσμα η προσέγγιση στην πραγματική τιμή να είναι ταχύτερη. Ο αλγόριθμος που χρησιμοποιείται για τον υπολογισμό της ρίζας είναι αυτός της Νευτόνιας μεθόδου όπως αυτή έχει περιγραφεί παραπάνω. Καθώς η συνάρτηση αυτή υπολογίζει την τετραγωνική ρίζα ακεραίων αριθμών σταθερή υποδιαστολή η ακρίβεια της είναι μικρότερη από μια συνάρτηση που υπολογίζει την τετραγωνική ρίζα ενός αριθμού κινητής υποδιαστολής (float). 119
120 Υπολογισμός Φάσματος Για τον υπολογισμό του φάσματος χρησιμοποιήθηκε ο αλγόριθμος του FFT διαίρεσης στο χρόνο με βάση το 2 (Radix 2 Decimation in Time). Ο τρόπος με τον οποίο υλοποιήθηκε και εφαρμόστηκε ο αλγόριθμος αυτός στην περίπτωση του λογισμικού παρουσιάζεται παρακάτω. Πρόσθεση Μηδενικών (Zero Padding) Καθώς το σήμα μας έχει μέγεθος 320 τιμές είναι απαραίτητο να προστεθούν μηδενικά στο τέλος της ακολουθίας του σήματος έτσι ώστε το μέγεθος της να είναι δύναμη του 2 και συγκεκριμένα ίσο με 512 (πρώτη δύναμη του 2 μεγαλύτερη του 320). Η πρόσθεση των μηδενικών (zero padding) είναι απαραίτητη καθώς έτσι το μέγεθος του σήματος να είναι δύναμη του 2 και να μπορεί να χρησιμοποιηθεί ο αλγόριθμος FFT διαίρεσης στον χρόνο με βάση το 2 οποίος απαιτεί λιγότερες πράξεις από αλγορίθμους που παράγουν τον FFT ενός σήματος με μέγεθος μη δύναμη του 2. Ωστόσο ένα επιπλέον πλεονέκτημα της πρόσθεσης των μηδενικών στο τέλος του σήματος είναι η «καλύτερη» ανάλυση του φάσματος της συχνότητας. Συνεπώς για να υπολογιστεί ο αρχικός FFT αρκεί να υπολογιστεί ο FFT της ακολουθίας που προκύπτει. Αναδιάταξη Τιμών Σήματος Πέραν από την πρόσθεση μηδενικών στο τέλος του σήματος είναι απαραίτητη και η αναδιάταξη των τιμών για τον υπολογισμό του FFT, με τρόπο παρόμοιο με αυτόν που φαίνεται στο Σχήμα 2 στην περίπτωση ενός FFT μεγεθους 8. Η αναδιάταξη αυτή μπορεί να γίνει είτε με πραγματική αντιμετάθεση των τιμών του πίνακα είτε με κατάλληλη δεικτοδότηση (indexing) στον αλγόριθμο έτσι ώστε να γίνονται οι πράξεις μεταξύ των κατάλληλων δειγμάτων του σήματος. Η πρώτη περίπτωση απαιτεί πολλές αντιμεταθέσεις αλλά πολύ λιγότερες πράξεις δεικτοδότησης (indexing), ενώ η δεύτερη δεν περιλαμβάνει πράξεις αντιμετάθεσης αλλά περιλαμβάνει πολλές πράξεις δεικτοδότησης. Ωστόσο η διαδικασία της αναδιάταξης των τιμών και της πρόσθεσης των μηδενικών μπορούν να συνδυαστούν σε μία αυξάνοντας την απόδοση του συστήματος. Συγκεκριμένα στο λογισμικό που υλοποιήθηκε χρησιμοποιείται ένας πίνακας μεγέθους 512 τιμών ο οποίος κατά την διαδικασία των αρχικοποιήσεων αρχικοποιείται με όλες τις τιμές του 0. Όταν χρειάζεται να υπολογιστεί ο FFT οι τιμές του σήματος αποθηκεύονται στις κατάλληλες θέσεις του πίνακα με τρόπο σύμφωνο με την απαραίτητη αναδιάταξη. Έτσι ο τελικός πίνακας έχει τις τιμές του σήματος κατάλληλα αναδιατεταγμένες ενώ έχουν προστεθεί τα απαραίτητα μηδενικά. Χρησιμοποιείται ένας Lookup table οποίος δείχνει την θέση μέσα στον νέο πίνακα όπου πρέπει να τοποθετηθεί κάθε δείγμα. Έτσι για παράδειγμα το δείγμα στην θέση 0 θα τοποθετηθεί στην θέση 0, το δείγμα στην θέση 1 θα τοποθετηθεί στην θέση 256 κ.ο.κ. Η διαδικασία αυτή έχει πολλά πλεονεκτήματα: Δε χρειάζεται να γίνεται η πρόσθεση μηδενικών κάθε φορά που χρειάζεται να υπολογιστεί ο FFT παρά μόνο μια φορά στην φάση των αρχικοποιήσεων. 120
121 Δε χρειάζεται να γίνει αναδιάταξη των τιμών καθώς αυτές τοποθετούνται στην κατάλληλη θέση του νέου, έτσι αντί για αντί για αναδιάταξη των τιμών του πίνακα έχουμε απλά καταχώρηση της τιμής ενός πίνακα σε μια θέση ενός άλλου πίνακα. Δε χρειάζεται να υπάρχει περίπλοκη δεικτοδότηση που απαιτεί πολλές πράξεις μέσα στον αλγόριθμο. Δε χρειάζεται να υπολογιστεί η θέση στην οποία θα τοποθετηθεί η κάθε τιμή αφού η θέση είναι υπολογισμένη και αποθηκευμένη σε έναν Lookup table. Παράγοντες WN k Ο αλγόριθμος FFT διαίρεσης στον χρόνο με βάση το 2 περιλαμβάνει τον υπολογισμό των παραγόντων (twiddle factors). Οι παράγοντες αυτοί είναι μιγαδικοί αριθμοί όπου το πραγματικό και φανταστικό τους μέρος δίνεται από τις σχέσεις: k 2 k Re( WN ) cos( ) N k 2 k Im( WN ) sin( ) N Οι παράγοντες αυτοί είναι απαραίτητοι για τον υπολογισμό του FFT αλλά ο υπολογισμός τους κάθε φορά που απαιτείται μειώνει κατά πολύ την απόδοση του συστήματος. Μια λύση στο πρόβλημα του υπολογισμού των τιμών αυτών είναι η χρήση Lookup table, όπου βρίσκονται αποθηκευμένες οι προϋπολογισμένες τιμές των ημιτόνων και των συνημιτόνων. 2 k 2 k Έτσι υπολογίζονται οι τιμές των cos( ),sin( ), για N=512 και k=0,1,,511. N N Λόγω της περιοδικότητας του ημιτόνου και του συνημιτόνου δεν είναι απαραίτητο να υπολογιστούν περισσότερες τιμές καθώς ισχύει για τιμή του k μεγαλύτερη του 511 ότι: 2 k 2 ( mn ) 2 sin( ) sin( ) sin( ) N N N k mn, 512 Επιπλεόν λόγω της σχέσης: 2 ( N 2 k 2 k k ) cos( ) sin( ) sin( 4 ) N N 2 N Προκύπτει ότι τελικά χρειάζεται ένας lookup table μόνο των τιμών του ημιτόνου μεγέθους /4 = 640 τιμών. Έτσι ο πίνακας αυτός περιέχει όλες τις τιμές των ημιτόνων και συνημιτόνων που χρειάζονται για τον υπολογισμό του FFT του σήματος. Ο πίνακας αυτός περιέχει αποθηκευμένες τις προϋπολογισμένες τιμές του ημιτόνου σε μορφή ακεραίων σταθερής υποδιαστολής και συγκεκριμένα με μορφή αυτή του Σχήματος 121
122 4. Αυτό συμβαίνει έτσι ώστε να υπάρχει συμβατότητα μεταξύ των τιμών του πίνακα και των τιμών του σήματος. Υπολογισμός Διακριτού Μετασχηματισμού Fourier Ο υπολογισμός του Διακριτού Μετασχηματισμού Fourier γίνεται με την υλοποίηση του FFT διαίρεσης στον χρόνο με βάση το 2. Όπως έχει ήδη αναφερθεί οι πράξεις για τον υπολογισμό του FFT είναι μεταξύ ακέραιων αριθμών σταθερής υποδιαστολής. Έτσι είναι απαραίτητο να υπάρχει ειδική μέριμνα για να μην υπάρχουν προβλήματα υπερχείλισης των ακεραίων. Οι τιμές του σήματος όπως και οι τιμές των παραγόντων αναπαρίστανται από ακεραίους σταθερής υποδιαστολής της μορφής 4bits ακέραιο μέρος και 11bits δεκαδικό μέρος. Οι τιμές των τιμών του FFT που προκύπτουν τελικά είναι ακέραιοι σταθερής υποδιαστολής της μορφής 1bit πρόσημου 13bit ακέραιου μέρους και 2bit δεκαδικού. Η μορφή αυτή προκύπτει ώστε να μην υπάρχει πρόβλημα υπερχείλισης του ακεραίου. Σε κάθε επανάληψη όταν πολλαπλασιάζεται μια τιμή του FFT με έναν παράγοντα προκύπτει ένας ακέραιος με ίδιο αριθμό bits ακέραιου μέρους με την τιμή του FFT, καθώς οι παράγοντες έχουν πραγματική τιμή μικρότερη του 1, και δεκαδικό μέρος με αριθμό bits ίσο με το άθροισμα των αριθμών των bits του δεκαδικού μέρους της τιμής και του παράγοντα. Το αποτέλεσμα του γινομένου για να μην έχουμε υπερχείλιση κανονικοποιείται κατά 11bits, δηλαδή αφαιρούνται τα τελευταία 11bits του δεκαδικού μέρους. Καθώς οι τιμές των γινομένων αθροίζονται μεταξύ τους υπάρχει περίπτωση να έχουμε υπερχείλιση λόγω πρόσθεσης οπότε το αποτέλεσμα της κάθε άθροισης κανονικοποιείται κατά 1bit, δηλαδή το λιγότερο σημαντικό bit του δεκαδικού μέρους αφαιρείται. Καθώς για τον υπολογισμό της κάθε τιμής του FFT απαιτούνται 9 (lg(512)) επαναλήψεις, το τελικό αποτέλεσμα προκύπτει κανονικοποιημένο κατά 9bits, δηλαδή τα 9 λιγότερα σημαντικά bits αφαιρούνται. Έτσι προκύπτει η μορφή 1bit προσήμου 13bits ακέραιο μέρος και 2bits δεκαδικό μέρος. Αφού υπολογιστούν οι τιμές του FFT τότε τελικά υπολογίζεται το φάσμα τους σήματος. Για τον υπολογισμό του φάσματος υπολογίζεται το μέτρο των πρώτων 160 τιμών του FFT. Αφού το σήμα έχει πραγματικό μέγεθος 320 και είναι πραγματικό. Για τον υπολογισμό του φάσματος χρησιμοποιείται η συνάρτηση υπολογισμού της τετραγωνικής ρίζας που υλοποιήθηκε. Το αποτέλεσμα μετατρέπεται σε δεκαδικό κινητής υποδιαστολής (float). Πρωτού επιστραφεί το αποτέλεσμα οι τιμές του πρέπει να πολλαπλασιαστούν επί το πραγματικό κέρδος του μετασχηματιστή του ρεύματος έτσι ώστε να έχουμε ως αποτέλεσμα τον Διακριτό Μετασχηματισμό Fourier του πραγματικού σήματος ρεύματος. Προσθήκες Στο Λογισμικό Του Υπολογιστή Όσον αφορά το λογισμικό του υπολογιστή έγιναν οι κατάλληλες προσθήκες για να υποστηρίζει και την περίπτωση όπου υπολογίζεται ο Διακριτός Μετασχηματισμός Fourier. Ο χρήστης πλέον έχει την δυνατότητα να ενημερώνει αν ο μικροελεγκτής παράγει το φάσμα του σήματος ή όχι. Με τον τρόπο αυτό το ίδιο λογισμικό μπορεί να χρησιμοποιηθεί για όλες τους τρόπους λειτουργίας της συσκευής. Είναι σημαντικό να τονιστεί ότι το λογισμικό του 122
123 μικροελεγκτή δεν ελέγχει τον μικροελεγκτή κατάλληλα ώστε αυτός να υπολογίζει ή μη το φάσμα, και έτσι ο χρήστης πρέπει να ενημερώσει το λογισμικό του υπολογιστή σχετικά με το mode λειτουργίας του μικροελεγκτή. Το λογισμικό του υπολογιστή σε περίπτωση υπολογισμού του Διακριτού Μετασχηματισμού Fourier από τον μικροελεγκτή αποθηκεύει τις τιμές που υπολογίστηκαν στο κατάλληλο αρχείο (fft.txt). Το γραφικό περιβάλλον του λογισμικού του υπολογιστή που προκύπτει τελικά φαίνεται στο παρακάτω σχήμα: Σχήμα 47 Γραφικό περιβάλλον με προσθήκη ανάλυσης φάσματος 123
124 6. Αποτελέσματα 6.1. Κατασκευή Στην ενότητα αυτή θα δώσουμε ορισμένες λεπτομέρειες για την κατασκευή της διάταξης, για την εύκολη και σύντομη δημιουργία ενός αριθμού διατάξεων. Για αρχή αυτό που είναι απαραίτητο είναι μια πλακέτα της παρακάτω μορφής για τον ευκολότερο χειρισμό των pins του μετατροπέα: Σχήμα 48 Μορφή πλακέτας Την παραπάνω πλακέτα τη βρήκαμε στο link αν και γενικά η εύρεση μιας τέτοιας πλακέτας δεν είναι δύσκολη. Αυτό που χρειάζεται κανείς να αναζητήσει είναι μια πλακέτα για ολοκληρωμένο κύκλωμα με 64 εξόδους με απόσταση μεταξύ δυο εξόδων 0.5 mm. Το κόστος είναι πολύ μικρό, περίπου 2 ευρώ ανά πλακέτα Αφού συγκολληθεί το ολοκληρωμένο πάνω σε αυτή την πλακέτα οι έξοδοι της πλακέτας θα πρέπει να έρθουν σε αγώγιμη σύνδεση με ένα τυπωμένο κύκλωμα το οποίο φαίνεται στην προτελευταία σελίδα της παρούσας αναφοράς (στο δεύτερο παράρτημα), ενώ στην τελευταία σελίδα φαίνονται το πώς θα πρέπει να συνδεθούν αντιστάσεις και πυκνωτές πάνω στην πλακέτα καθώς και το πώς γίνονται οι συνδέσεις με τα ports της πλακέτας ανάπτυξης του μικροεπεξεργαστή μας. Όσον αφορά το τυπωμένο κύκλωμα, η διαδρομή της θέσης του αρχείου γράφεται για να διαχωρίζεται στη διαφάνεια το ποια πλευρά είναι από πάνω. Αν τα εξαρτήματα συγκολληθούν πάνω από την πλευρά της τύπωσης, τότε η τύπωση πρέπει να γίνει με τα γράμματα αναγνώσιμα στην κανονική τους μορφή. Αν τα εξαρτήματα συγκολληθούν από την πίσω πλευρά της πλακέτας (που είναι και το πιο σύνηθες), τότε η τύπωση πρέπει να γίνει με τη διαφάνεια γυρισμένη ανάποδα, ώστε στη διαφάνεια τα γράμματα να φαίνονται στην κατοπτρική τους μορφή. Από τα χαρακτηριστικά του σχεδίου της τυπωμένης πλακέτας τονίζουμε το γεγονός ότι οι δυο τροφοδοσίες (αναλογική των 5 Volt και ψηφιακή των 3.3 Volt) συνδέονται στο ολοκληρωμένο με γραμμές αυξημένου πάχους για τον περιορισμό της αντίστασής τους. Για αποφυγή πιθανών πηγών θορύβου, διατίθενται προς χρήση μόνο οι δυο πρώτες είσοδοι του μετατροπέα (για λήψη τιμών τάσης και ρεύματος), ενώ οι υπόλοιπες είσοδοι γειώνονται. Στο τυπωμένο κύκλωμα θα παρατηρήσει κανείς ότι όλες οι γειώσεις των εισόδων προς δειγματοληψία είναι βραχυκυκλωμένες μεταξύ τους και συνδέονται με τη γείωση που παρέχει ο μικροεπεξεργαστής. Αυτό συμβαίνει διότι ο μετατροπέας που έχουμε επιλέξει 124
125 μετατρέπει single ended εισόδους, δηλαδή οι γειώσεις του εισόδων πρέπει να συνδέονται με δυναμικό μηδέν. Χρειάζεται προσοχή κατά τη λήψη μετρήσεων διότι υπάρχουν διατάξεις που η γείωση που διαθέτουν έχουν συνεχή τάση ή και εναλλασσόμενη ημιτονοειδή τάση διάφορη του μηδενός, οπότε τα αποτελέσματα θα είναι διαφορετικά διότι μετράται η διαφορά της τάσης όχι από τη γείωση της διάταξης, αλλά από μια τάση 0 Volt. Παρακάτω παραθέτουμε δυο εικόνες που απεικονίζουν την τελική μορφή του τυπωμένου κυκλώματος και της συνολικής διάταξης (με τη διάταξη να μετρά την έξοδο μιας γεννήτριας): Σχήμα 49 Τελική μορφή τυπωμένου κυκλώματος Σχήμα 50 Μορφή συνολικής διάταξης 125
Σχεδίαση Έξυπνου Μετρητή Ηλεκτρικής Ενέργειας
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τομέας Ηλεκτρονικής και Υπολογιστών Διπλωματική Εργασία Σχεδίαση Έξυπνου Μετρητή Ηλεκτρικής
ΤΡΙΦΑΣΙΚΑ ΚΥΚΛΩΜΑΤΑ ΕΝΑΛΛΑΣΣΟΜΕΝΟΥ ΡΕΥΜΑΤΟΣ
Εργαστήριο Ηλεκτρικών Μηχανών Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας ΤΡΙΦΑΣΙΚΑ ΚΥΚΛΩΜΑΤΑ ΕΝΑΛΛΑΣΣΟΜΕΝΟΥ ΡΕΥΜΑΤΟΣ Εισαγωγή Τα τριφασικά κυκλώματα Ε.Ρ. αποτελούν τη σπουδαιότερη
Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστημάτων
Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστημάτων Αναλογικές & Ψηφιακές Διατάξεις Τα διάφορα μεγέθη των φυσικών διεργασιών τα μετράμε με αισθητήρες που ουσιαστικά παρέχουν ηλεκτρικά σήματα χαμηλής
Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr
Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΦΩΤΙΑ ΗΣ Α. ΗΜΗΤΡΗΣ M.Sc. ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ (Σ.Τ.ΕΦ.) ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ d.fotiadis@kastoria.teikoz.gr Ασύγχρονη σειριακή
Μαθαίνοντας το hardware του αναπτυξιακού
1. ΑΣΚΗΣΗ 1 Μαθαίνοντας το hardware του αναπτυξιακού Προϋποθέσεις Το εργαστήριο αυτό προϋποθέτει το διάβασμα και χρήση των εξής: Αρχείο mcbstr9.chm HTML, που δίδεται με τα υπόλοιπα αρχεία του εργαστηρίου.
Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστηµάτων
Κεφάλαιο 5 Διασύνδεση Αναλογικών & Ψηφιακών Συστηµάτων Αναλογικές & Ψηφιακές Διατάξεις Control Systems Laboratory Τα διάφορα μεγέθη των φυσικών διεργασιών τα μετράμε με αισθητήρες που ουσιαστικά παρέχουν
Ιατρικά Ηλεκτρονικά. Δρ. Π. Ασβεστάς Τμήμα Μηχανικών Βιοϊατρικής Τεχνολογίας Τ.Ε
Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Τμήμα Μηχανικών Βιοϊατρικής Τεχνολογίας Τ.Ε Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/ https://eclass.teiath.gr/courses/tio101/
ΡΟΜΠΟΤΙΚΗ. ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication
ΡΟΜΠΟΤΙΚΗ ΕΡΓΑΣΙΑ ΠΑΝΩ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΝΧΤ ΚΑΙ ΤΑ ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ BLUETOOTH, I2C και serial communication ΜΠΑΝΤΗΣ ΑΝΤΩΝΙΟΣ 533 ΤΣΙΚΤΣΙΡΗΣ ΔΗΜΗΤΡΙΟΣ 551 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΤΟΥ ΡΟΜΠΟΤ LEGO NXT Το ρομπότ
Τεχνολογικό Eκπαιδευτικό Ίδρυμα Kρήτης TMHMA MHXANOΛOΓIAΣ. Δρ. Φασουλάς Γιάννης
Τεχνολογικό Eκπαιδευτικό Ίδρυμα Kρήτης TMHMA MHXANOΛOΓIAΣ Δρ. Φασουλάς Γιάννης jfasoulas@staff.teicrete.gr Θα μάθετε: Έννοιες που σχετίζονται με την μετατροπή μεταξύ αναλογικών και ψηφιακών σημάτων Πώς
Εργαστήριο Ανάλυσης Συστημάτων Ηλεκτρικής Ενέργειας
Εργαστήριο Ανάλυσης Συστημάτων Ηλεκτρικής Ενέργειας Ενότητα: Άσκηση 6: Αντιστάθμιση γραμμών μεταφοράς με σύγχρονους αντισταθμιστές Νικόλαος Βοβός, Γαβριήλ Γιαννακόπουλος, Παναγής Βοβός Τμήμα Ηλεκτρολόγων
Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2
Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου Ενότητα 2 Τι είναι το PLC ΠΕΡΙΕΧΟΜΕΝΑ 2 Τι είναι το PLC. 2.1 Πλεονεκτήματα των PLC. 2.2 Η δομή ενός PLC. 2.3 Τα PLC της αγοράς. 2.4 Αρχή λειτουργίας ενός PLC.
ΤΕΙ ΚΑΒΑΛΑΣ 2012. 1.1 Εισαγωγή Αντικείμενο πτυχιακής εργασίας.σελ. 2. 1.2 Περιεχόμενα εγχειριδίου Αναφοράς Προγραμμάτων.. σελ. 3
1 ΠΕΡΙΕΧΟΜΕΝΑ 1.1 Εισαγωγή Αντικείμενο πτυχιακής εργασίας.σελ. 2 1.2 Περιεχόμενα εγχειριδίου Αναφοράς Προγραμμάτων.. σελ. 3 1.3 Παράδειγμα τριφασικού επαγωγικού κινητήρα..σελ. 4-9 1.4 Σχεδίαση στο Visio
ΑΝΑLOG TO DIGITAL CONVERTER (ADC)
ΑΝΑLOG TO DIGITAL CONVERTER (ADC) O ADC αναλαμβάνει να μετατρέψει αναλογικές τάσεις σε ψηφιακές ώστε να είναι διαθέσιμες εσωτερικά στο μικροελεγκτή για επεξεργασία. Η αναλογική τάση που θέλουμε να ψηφιοποιηθεί
Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 3 Μέτρηση Θερμοκρασίας Σύστημα Ελέγχου Θερμοκρασίας. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων
Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 3 Μέτρηση Θερμοκρασίας Σύστημα Ελέγχου Θερμοκρασίας με Θερμοστάτη. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Σκοπός Βασική δομή ενός προγράμματος στο LabVIEW.
Σχεδιασμός και υλοποίηση κυκλώματος μέτρησης κατανάλωσης ισχύος
Σχεδιασμός και υλοποίηση κυκλώματος μέτρησης κατανάλωσης ισχύος Φοιτητής Φετινίδης Αναστάσιος Επιβλέπων Δασυγένης Μηνάς Μάρτιος 2014 1 Περιεχόμενα παρουσίασης Εισαγωγή Θεωρητικό υπόβαθρο Υλικό μέρος του
ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ
ΠΡΟΤΕΙΝΟΜΕΝΑ ΘΕΜΑΤΑ ΔΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ ΑΚΑΔΗΜΑΪΚΟΥ ΕΤΟΥΣ 2015-2016 Προτεινόμενο Θέμα: [1] Ανάλυση της μόνιμης και της μεταβατικής κατάστασης Συστημάτων Ηλεκτρικής Ενέργειας με το λογισμικό PSAT Για
ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών
44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.
ΚΕΦΑΛΑΙΟ 5 ΠΡΟΣΟΜΟΙΩΤΗΣ PLC SIMATIC S7-300
ΚΕΦΑΛΑΙΟ 5 ΠΡΟΣΟΜΟΙΩΤΗΣ PLC SIATIC S7-300 5. Σκοπός του προσομοιωτή. Χωρίς τον προσομοιωτή ο έλεγχος της ορθότητας ενός προγράμματος μπορεί να γίνει μόνο offline με τη χρήση του λογισμικού STEP 7 της Siemens
Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων
Σκοπός Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5 Ρυθμίζοντας τη Φορά Περιστροφής DC Κινητήρα. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Βασική δομή ενός προγράμματος στο LabVIEW. Εμπρόσθιο Πλαίσιο (front
Ενσωµατωµένα Συστήµατα
Ενσωµατωµένα Συστήµατα για εφαρµογές πραγµατικού χρόνου Μικροελεγκτής Arduino Ιωάννης Καλόµοιρος Αναπληρωτής Καθηγητής Τµήµα Μηχανικών Πληροφορικής Μάθηµα 7ο Τι είναι το Arduino... Ένα open-hardware σύστηµα
Συστήματα Αυτόματου Ελέγχου
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Συστήματα Αυτόματου Ελέγχου Ενότητα : Ψηφιακός Έλεγχος Συστημάτων Aναστασία Βελώνη Τμήμα Η.Υ.Σ Άδειες Χρήσης Το παρόν εκπαιδευτικό
Περιεχόμενα. Πρόλογος...13
Περιεχόμενα Πρόλογος...3 Κεφάλαιο : Στοιχεία ηλεκτρικών κυκλωμάτων...5. Βασικά ηλεκτρικά μεγέθη...5.. Ηλεκτρικό φορτίο...5.. Ηλεκτρικό ρεύμα...5..3 Τάση...6..4 Ενέργεια...6..5 Ισχύς...6..6 Σύνοψη...7.
Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή
Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή 1.5.1 Ανάλυση των μερών ενός υπολογιστή Μονάδα συστήματος Είναι το κουτί του υπολογιστή το οποίο φαίνεται αρκετά συμπαγές, αλλά στην πραγματικότητα αποτελείται
Προηγμένος έλεγχος ηλεκτρικών μηχανών
Προηγμένος έλεγχος ηλεκτρικών μηχανών Ενότητα 3: Βαθμωτός Έλεγχος Ασύχρονων Μηχανών Επαμεινώνδας Μητρονίκας - Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Υπολογιστών
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΣΤΗ ΔΙΟΙΚΗΣΗ ΚΑΙ ΣΤΗΝ ΟΙΚΟΝΟΜΙΑ 2 Ο ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΠΟΣΤΟΛΙΑ ΠΑΓΓΕ Υπολογιστής Συνοπτικό λεξικό Οξφόρδης -> «ηλεκτρονική υπολογιστική μηχανή»
Μάθημα 1 Πρώτα Βήματα στη Σχεδίαση μίας Εγκατάστασης: Απαιτούμενες Ηλεκτρικές Γραμμές και Υπολογισμοί
Μάθημα 1 Πρώτα Βήματα στη Σχεδίαση μίας Εγκατάστασης: Απαιτούμενες Ηλεκτρικές Γραμμές και Υπολογισμοί Φορτίων Περίληψη Πως σχεδιάζουμε μία ηλεκτρική εγκατάσταση? Ξεκινώντας από τα αρχιτεκτονικά σχέδια
6 Εισαγωγή στα Συστήματα Ηλεκτρικής Ενέργειας
Πρόλογος Σ το βιβλίο αυτό περιλαμβάνεται η ύλη του μαθήματος «Εισαγωγή στα Συστήματα Ηλεκτρικής Ενέργειας» που διδάσκεται στους φοιτητές του Γ έτους σπουδών του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας
Περιεχόμενα. Πρόλογος...13
Περιεχόμενα Πρόλογος...3 Κεφάλαιο : Στοιχεία ηλεκτρικών κυκλωμάτων...5. Βασικά ηλεκτρικά μεγέθη...5.. Ηλεκτρικό φορτίο...5.. Ηλεκτρικό ρεύμα...5..3 Τάση...6..4 Ενέργεια...6..5 Ισχύς...6..6 Σύνοψη...7.
Δυαδικό Σύστημα Αρίθμησης
Δυαδικό Σύστημα Αρίθμησης Το δυαδικό σύστημα αρίθμησης χρησιμοποιεί δύο ψηφία. Το 0 και το 1. Τα ψηφία ενός αριθμού στο δυαδικό σύστημα αρίθμησης αντιστοιχίζονται σε δυνάμεις του 2. Μονάδες, δυάδες, τετράδες,
Κεφάλαιο 1 Εισαγωγή.
Κεφάλαιο 1 Εισαγωγή Αντικείμενο της εργασίας είναι η σχεδίαση και κατασκευή του ηλεκτρονικού τμήματος της διάταξης μέτρησης των θερμοκρασιών σε διάφορα σημεία ενός κινητήρα Ο στόχος είναι η ανάκτηση του
Κεφάλαιο 1.6: Συσκευές αποθήκευσης
Κεφάλαιο 1.6: Συσκευές αποθήκευσης 1.6.1 Συσκευές αποθήκευσης Μνήμη τυχαίας προσπέλασης - RAM Η μνήμη RAM (Random Access Memory Μνήμη Τυχαίας Προσπέλασης), κρατεί όλη την πληροφορία (δεδομένα και εντολές)
Δραστηριότητα 9: Σύνδεση ΗΥ με το πολύμετρο METEX 3870D μέσω σειριακής επικοινωνίας RS232 και εφαρμογή σε LabView
1o ΕΠΑΛ Ε.Κ. ΝΕΑΠΟΛΗΣ Μπουλταδάκης Σ, Μαυρίδης Κ. Δραστηριότητα 9: Σύνδεση ΗΥ με το πολύμετρο METEX 3870D μέσω σειριακής επικοινωνίας RS232 και εφαρμογή σε LabView Mάθημα: Εργαστήριο Δικτύων Υπολογιστών
- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών
Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης
ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2
ΘΕΜΑ : ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2 ΔΙΑΡΚΕΙΑ:? περίοδος Οι μικροελεγκτές είναι υπολογιστές χωρίς περιφερειακά, σε ολοκληρωμένα κυκλώματα. Μπορούν να συνδυάσουν αρκετές από τις βασικές λειτουργίες άλλων ειδικών
Ιατρικά Ηλεκτρονικά. Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων
Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/
Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC
Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.
Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών
Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές Εισαγωγή στο Arduino Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών Τι είναι Μικροελεγκτής; Ηλεκτρονική συσκευή που διαχειρίζεται ηλεκτρονικά
Φυσική για Μηχανικούς
Φυσική για Μηχανικούς Ρεύμα και Αντίσταση Εικόνα: Οι γραμμές ρεύματος μεταφέρουν ενέργεια από την ηλεκτρική εταιρία στα σπίτια και τις επιχειρήσεις μας. Η ενέργεια μεταφέρεται σε πολύ υψηλές τάσεις, πιθανότατα
Εφαρμογή 9.2 Μετατροπή Ασύμμετρης Τριφασικής Κατανάλωσης σε Συμμετρική, με Ανακατανομή των Φορτίων
Εφαρμογή 9.2 Μετατροπή Ασύμμετρης Τριφασικής Κατανάλωσης σε Συμμετρική, με Ανακατανομή των Φορτίων Περίληψη Ασύμμετρη Τριφασική Κατανάλωση σε σύνδεση Αστέρα με ουδέτερο αγωγό. Μετατροπή της ασύμμετρης
Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία
Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοινωνία. Σειριακή Επικοινωνία USB Σύνδεση / Πρωτόκολλο Σκοπός Εντολή επιλογής (if) Εντολή Επανάληψης (while) Πίνακες 1 Μέρος Α : Σκοπός
Παράρτημα. Πραγματοποίηση μέτρησης τάσης, ρεύματος, ωμικής αντίστασης με χρήση του εργαστηριακού εξοπλισμού Άσκηση εξοικείωσης
Παράρτημα Πραγματοποίηση μέτρησης τάσης, ρεύματος, ωμικής αντίστασης με χρήση του εργαστηριακού εξοπλισμού Άσκηση εξοικείωσης Σκοπός του παραρτήματος είναι η εξοικείωση των φοιτητών με τη χρήση και τη
Συνδυασμοί αντιστάσεων και πηγών
ΗΛΕΚΤΡΟΤΕΧΝΙΑ Ι Κεφάλαιο 3 Συνδυασμοί αντιστάσεων και πηγών ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟΥ Σύνδεση σε σειρά. Παράλληλη σύνδεση Ισοδυναμία τριγώνου και αστέρα Διαιρέτης τάσης Διαιρέτης ρεύματος Πραγματικές πηγές.
Συστήµατα DAQ. 6.1 Εισαγωγή
6 Συστήµατα DAQ 6.1 Εισαγωγή Με τον όρο Acquisition (Απόκτηση) περιγράφουµε τον τρόπο µε τον οποίο µεγέθη όπως η πίεση, η θερµοκρασία, το ρεύµα µετατρέπονται σε ψηφιακά δεδοµένα και απεικονίζονται στην
ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ
ΚΕΦΑΛΑΙΟ 7 ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΜΕΤΑΔΟΣΗ ΨΗΦΙΑΚΩΝ ΔΕΔΟΜΕΝΩΝ 1 ΕΙΣΑΓΩΓΗ Ο πραγματικός κόσμος είναι ένας αναλογικός κόσμος. Όλα τα μεγέθη παίρνουν τιμές με άπειρη ακρίβεια. Π.χ. το ηλεκτρικό σήμα τάσης όπου κάθε
Δοκιμαστικό μοτίβο ευρείας οθόνης (16:9)
Δοκιμαστικό μοτίβο ευρείας οθόνης (16:9) Δοκιμή αναλογιών εικόνας (Πρέπει να εμφανίζεται κυκλικό) 4x3 16x9 Α.Τ.Ε.Ι. ΠΕΙΡΑΙΑ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. Πτυχιακή εργασία
ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε
Στατικοί μετατροπείς συχνότητας μεγάλης ισχύος
Στατικοί μετατροπείς συχνότητας μεγάλης ισχύος Οι στατικοί μετατροπείς συχνότητας χρησιμοποιούνται κατά κύριο λόγο για τη μετατροπή μίας εναλλασσόμενης τάσης σε μία τάση άλλης συχνότητας και σε μεγάλες
ΑΣΚΗΣΗ 4 η ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΜΗΧΑΝΕΣ ΣΥΝΕΧΟΥΣ ΡΕΥΜΑΤΟΣ
ΑΣΚΗΣΗ 4 η ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΜΗΧΑΝΕΣ ΣΥΝΕΧΟΥΣ ΡΕΥΜΑΤΟΣ Σκοπός της Άσκησης: Σκοπός της εργαστηριακής άσκησης είναι α) η κατανόηση της αρχής λειτουργίας των μηχανών συνεχούς ρεύματος, β) η ανάλυση της κατασκευαστικών
27-Ιαν-2009 ΗΜΥ (ι) Βασική στατιστική (ιι) Μετατροπές: αναλογικό-σεψηφιακό και ψηφιακό-σε-αναλογικό
ΗΜΥ 429 2. (ι) Βασική στατιστική (ιι) Μετατροπές: αναλογικό-σεψηφιακό και ψηφιακό-σε-αναλογικό 1 (ιι) Μετατροπές: αναλογικό-σεψηφιακό και ψηφιακό-σε-αναλογικό 2 Βασικά μέρη συστήματος ΨΕΣ Φίλτρο αντι-αναδίπλωσης
ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ
ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Πλατφόρμες ενσωματωμένων συστημάτων Διδάσκων: Παναγιώτης Καρκαζής Περίγραμμα - Δίαυλοι επικοινωνίας - Μνήμες -Συσκευές Ι/Ο Timers Counters keyboards Leds 7 segment display
ΚΥΚΛΩΜΑΤΑ AC-DC. ΚΕΦΑΛΑΙΟ 1ο ΒΑΣΙΚΑ ΚΥΚΛΩΜΑΤΑ ΚΑΙ ΕΞΑΡΤΗΜΑΤΑ - ΑΠΛΑ ΓΡΑΜΜΙΚΑ ΚΥΚΛΩΜΑΤΑ
ΚΥΚΛΩΜΑΤΑ AC-DC ΚΕΦΑΛΑΙΟ 1ο ΒΑΣΙΚΑ ΚΥΚΛΩΜΑΤΑ ΚΑΙ ΕΞΑΡΤΗΜΑΤΑ - ΑΠΛΑ ΓΡΑΜΜΙΚΑ ΚΥΚΛΩΜΑΤΑ Βασικά στοιχεία κυκλωμάτων Ένα ηλεκτρονικό κύκλωμα αποτελείται από: Πηγή ενέργειας (τάσης ή ρεύματος) Αγωγούς Μονωτές
Ιατρικά Ηλεκτρονικά. Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων
Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/
Εισαγωγή στους Ταλαντωτές Οι ταλαντωτές είναι από τα βασικότερα κυκλώματα στα ηλεκτρονικά. Χρησιμοποιούνται κατά κόρον στα τηλεπικοινωνιακά συστήματα
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Υλοποίηση και Εργαστηριακή Αναφορά Ring και Hartley Ταλαντωτών Φοιτητής: Ζωγραφόπουλος Γιάννης Επιβλέπων Καθηγητής: Πλέσσας Φώτιος
Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή
Γενικά Στοιχεία Ηλεκτρονικού Υπολογιστή 1. Ηλεκτρονικός Υπολογιστής Ο Ηλεκτρονικός Υπολογιστής είναι μια συσκευή, μεγάλη ή μικρή, που επεξεργάζεται δεδομένα και εκτελεί την εργασία του σύμφωνα με τα παρακάτω
Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής
Μία μέθοδος προσομοίωσης ψηφιακών κυκλωμάτων Εξελικτικής Υπολογιστικής Βασισμένο σε μια εργασία των Καζαρλή, Καλόμοιρου, Μαστοροκώστα, Μπαλουκτσή, Καλαϊτζή, Βαλαή, Πετρίδη Εισαγωγή Η Εξελικτική Υπολογιστική
Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.
Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. 5.1 Το ρολόι Κάθε μία από αυτές τις λειτουργίες της Κ.Μ.Ε. διαρκεί ένα μικρό χρονικό διάστημα. Για το συγχρονισμό των λειτουργιών αυτών, είναι απαραίτητο κάποιο ρολόι.
ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΘΕΜΑ 1
ΛΥΣΕΙΣ ΘΕΜΑΤΩΝ ΜΑΘΗΜΑ: ΗΛΕΚΤΡΙΚΑ ΚΥΚΛΩΜΑΤΑ ΙΙ ΠΕΡΙΟΔΟΣ: ΦΕΒΡΟΥΑΡΙΟΣ 00 ΘΕΜΑ Δύο συζευγμένα πραγματικά πηνία συνδέονται εν παραλλήλω, όπως στο Σχ.. Να βρεθούν () οι ενδείξεις των τριών βατομέτρων, () η
Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07
Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή
Φυσική για Μηχανικούς
Φυσική για Μηχανικούς Ρεύμα και Αντίσταση Εικόνα: Οι γραμμές ρεύματος μεταφέρουν ενέργεια από την ηλεκτρική εταιρία στα σπίτια και τις επιχειρήσεις μας. Η ενέργεια μεταφέρεται σε πολύ υψηλές τάσεις, πιθανότατα
Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης
Bread Online Σχεδιασμός και μετατροπή μιας απλής οικιακής συσκευής σε επαναπρογραμματιζόμενη συσκευή IP Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών
ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ. Δρ. Δ. Λαμπάκης (1 η σειρά διαφανειών)
ΣΧΕΔΙΑΣΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΗΛΕΚΤΡΟΝΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ Δρ. Δ. Λαμπάκης (1 η σειρά διαφανειών) Τα ηλεκτρονικά κυκλώματα, ιδιαίτερα τα ψηφιακά χρησιμοποιούνται για την υλοποίηση λογικών συναρτήσεων και την αποθήκευση
PCS100 RPC - Reactive Power Conditioner
PCS100 RPC - Reactive Power Conditioner H ΑΒΒ διαθέτει ένα μεγάλο εύρος προϊόντων για τη διαχείριση και προστασία της ενέργειας. Τελευταία προσθήκη στην κατηγορία αυτή αποτελεί o διαχειριστής αέργου ισχύος
Ήχος. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 04-1
Ήχος Χαρακτηριστικά του ήχου Ψηφιοποίηση με μετασχηματισμό Ψηφιοποίηση με δειγματοληψία Κβαντοποίηση δειγμάτων Παλμοκωδική διαμόρφωση Συμβολική αναπαράσταση μουσικής Τεχνολογία Πολυμέσων και Πολυμεσικές
ΑΣΚΗΣΗ 2 (powerworld): ΜΟΝΤΕΛΟΠΟΙΗΣΗ & ΠΡΟΣΟΜΟΙΩΣΗ ΛΕΙΤΟΥΡΓΙΑΣ ΕΝΕΡΓΕΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΗΛΕΚΤΡΟΠΑΡΑΓΩΓΗΣ 8 ΖΥΓΩΝ ΜΕ ΕΠΙΛΥΣΗ ΡΟΗΣ ΦΟΡΤΙΟΥ.
ΑΣΚΗΣΗ 2 (powerworld): ΜΟΝΤΕΛΟΠΟΙΗΣΗ & ΠΡΟΣΟΜΟΙΩΣΗ ΛΕΙΤΟΥΡΓΙΑΣ ΕΝΕΡΓΕΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ ΗΛΕΚΤΡΟΠΑΡΑΓΩΓΗΣ 8 ΖΥΓΩΝ ΜΕ ΕΠΙΛΥΣΗ ΡΟΗΣ ΦΟΡΤΙΟΥ. 2.1 ΕΙΣΑΓΩΓΗ ΣΚΟΠΟΣ ΚΑΙ ΣΤΟΧΟΙ ΑΣΚΗΣΗΣ Η παρούσα εργαστηριακή άσκηση
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 9 ΤΕΧΝΟΛΟΓΙΑ (ΙΙ) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΜΑΘΗΜΑ : Εφαρμοσμένη Ηλεκτρολογία
ΑΣΚΗΣΕΙΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΗΣ ΕΡΓΑΣΤΗΡΙΑΚΗ ΗΛΕΚΤΡΟΝΙΚΗ 5 ο ΕΞΑΜΗΝΟ ΗΜΜΥ ΑΣΚΗΣΕΙΣ ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ 1 Ι. ΠΑΠΑΝΑΝΟΣ ΑΠΡΙΛΙΟΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ MM505 ΗΛΕΚΤΡΙΚΕΣ ΜΗΧΑΝΕΣ ΒΙΟΜΗΧΑΝΙΚΟΙ ΑΥΤΟΜΑΤΙΣΜΟΙ Εργαστήριο ο - Θεωρητικό Μέρος Βασικές ηλεκτρικές μετρήσεις σε συνεχές και εναλλασσόμενο
ΑΔΜΗΕ ΜΑΪΟΣ 2017 ΔΙΕΥΘΥΝΣΗ ΣΥΝΤΗΡΗΣΗΣ ΣΥΣΤΗΜΑΤΟΣ ΜΕΤΑΦΟΡΑΣ ΤΟΜΕΑΣ ΜΕΤΡΗΣΕΩΝ ΚΑΙ ΟΡΓΑΝΩΝ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΟΙ ΜΟΡΦΟΤΡΟΠΕΙΣ ΠΟΛΛΑΠΛΩΝ ΔΥΝΑΤΟΤΗΤΩΝ
ΑΔΜΗΕ ΜΑΪΟΣ 2017 ΔΙΕΥΘΥΝΣΗ ΣΥΝΤΗΡΗΣΗΣ ΣΥΣΤΗΜΑΤΟΣ ΜΕΤΑΦΟΡΑΣ ΤΟΜΕΑΣ ΜΕΤΡΗΣΕΩΝ ΚΑΙ ΟΡΓΑΝΩΝ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΟΙ ΜΟΡΦΟΤΡΟΠΕΙΣ ΠΟΛΛΑΠΛΩΝ ΔΥΝΑΤΟΤΗΤΩΝ ΣΚΟΠΟΣ Η τεχνική αυτή περιγραφή αφορά τα τεχνικά χαρακτηριστικά
Ο ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Ζ διακριτές σήματα και συστήματα διακριτού χρόνου χρονοσειρές (time series)
Ο ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ Ζ Είναι σύνηθες να μελετάμε διάφορα φαινόμενα σε διακριτές (και όχι συνεχείς) τιμές της μεταβλητής του χρόνου, οπότε, μιλάμε για για σήματα και συστήματα διακριτού χρόνου. Τα σήματα διακριτού
Δεδομένων. Μοναστηρίου 7, 14565 Άγιος Στέφανος. Tηλ.: 211 7058321 Φαξ: 2117406171 E-mail: info@axiatech.gr Website: www.axiatech.
UΈλεγχος από Η/Υ + Απόληψη Δεδομένων + Επεξεργασία Δεδομένων Το μεγαλύτερο μέρος των μηχανημάτων της EDIBON είναι διαθέσιμα και σε έκδοση ελεγχόμενη από Η/Υ. Δεν γίνεται απλή καταγραφή των δεδομένων, αλλά
ΑΣΚΗΣΕΙΣ ΗΛΕΚΤΡΙΚΩΝ ΜΗΧΑΝΩΝ ΙΙ
ΑΣΚΗΣΕΙΣ ΗΛΕΚΤΡΙΚΩΝ ΜΗΧΑΝΩΝ ΙΙ ΣΥΓΧΡΟΝΕΣ ΜΗΧΑΝΕΣ Ε.Ρ. 1. Μια σύγχρονη γεννήτρια με ονομαστικά στοιχεία: 2300V, 1000kV, 60Hz, διπολική με συντελεστής ισχύος 0,8 επαγωγικό και σύνδεση σε αστέρα έχει σύγχρονη
C (3) (4) R 3 R 4 (2)
Πανεπιστήμιο Θεσσαλίας Βόλος, 29/03/2016 Τμήμα: Μηχανολόγων Μηχανικών Συντελεστής Βαρύτητας: 40%/ Χρόνος Εξέτασης: 3 Ώρες Γραπτή Ενδιάμεση Εξέταση στο Μάθημα: «ΜΜ604, Ηλεκτροτεχνία Ηλεκτρικές Μηχανές»
Φυσική για Μηχανικούς
Φυσική για Μηχανικούς Χωρητικότητα Εικόνα: Όλες οι παραπάνω συσκευές είναι πυκνωτές, οι οποίοι αποθηκεύουν ηλεκτρικό φορτίο και ενέργεια. Ο πυκνωτής είναι ένα είδος κυκλώματος που μπορούμε να συνδυάσουμε
Ανασκόπηση Τελικού Πειράματος με μετρήσεις θερμοκρασιών Στάτορα και Ρότορα. Δοκιμασία της κατασκευασμένης διάταξης.
Κεφάλαιο 8 Ανασκόπηση Τελικού Πειράματος με μετρήσεις θερμοκρασιών Στάτορα και Ρότορα. Δοκιμασία της κατασκευασμένης διάταξης. Η μέτρηση των θερμοκρασιών στα συγκεκριμένα σημεία του στάτη της μηχανής έγινε
Πανεπιστήμιο Θεσσαλίας
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Ανάλυση Κυκλωμάτων Εργαστηριακές Ασκήσεις Εργαστήριο 5 Κυκλώματα RC (φόρτιση/εκφόρτιση πυκνωτή, σύνθετη αντίσταση) Φ. Πλέσσας
ΠΑΛΜΟΓΡΑΦΟΣ ΤΡΟΦΟ ΟΤΙΚΟ ΓΕΝΝΗΤΡΙΑ
ΟΡΓΑΝΑ ΕΡΓΑΣΤΗΡΙΟΥ 1 Εργαστήριο Κινητών Ραδιοεπικοινωνιών, ΣΗΜΜΥ ΕΜΠ Εισαγωγή στις Τηλεπικοινωνίες ΟΡΓΑΝΑ ΕΡΓΑΣΤΗΡΙΟΥ ΠΑΛΜΟΓΡΑΦΟΣ ΤΡΟΦΟ ΟΤΙΚΟ ΓΕΝΝΗΤΡΙΑ 2 Εργαστήριο Κινητών Ραδιοεπικοινωνιών, ΣΗΜΜΥ ΕΜΠ
ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΩΝ & ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΜΕ Η /Υ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ - Δ ΕΤΟΣ
ΑΣΠΑΙΤΕ ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΗΛΕΚΤΡΟΛΟΓΩΝ & ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΕΓΚΑΤΑΣΤΑΣΕΩΝ ΜΕ Η /Υ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ - Δ ΕΤΟΣ Ενότητα 1(3 Μονάδες): ΘΕΜΑΤΑ ΠΕΡΙΟΔΟΥ ΦΕΒΡΟΥΑΡΙΟΥ (Α) 1. Η ονομαστική ισχύς λειτουργίας
Μετρολογικές Διατάξεις Μέτρησης Θερμοκρασίας. 4.1. Μετρολογικός Ενισχυτής τάσεων θερμοζεύγους Κ και η δοκιμή (testing).
Κεφάλαιο 4 Μετρολογικές Διατάξεις Μέτρησης Θερμοκρασίας. 4.1. Μετρολογικός Ενισχυτής τάσεων θερμοζεύγους Κ και η δοκιμή (testing). Οι ενδείξεις (τάσεις εξόδου) των θερμοζευγών τύπου Κ είναι δύσκολο να
ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ & ΣΥΣΤΗΜΑΤΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΣΥΣΤΗΜΑΤΩΝ & ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ & ΣΥΣΤΗΜΑΤΩΝ Διδάσκων : Δημήτρης Τσιπιανίτης Γεώργιος Μανδέλλος
Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα
Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο
Ιατρικά Ηλεκτρονικά. Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων
Ιατρικά Ηλεκτρονικά Δρ. Π. Ασβεστάς Εργαστήριο Επεξεργασίας Ιατρικού Σήματος & Εικόνας Τμήμα Τεχνολογίας Ιατρικών Οργάνων Χρήσιμοι Σύνδεσμοι Σημειώσεις μαθήματος: http://medisp.bme.teiath.gr/eclass/courses/tio127/
μετασχηματιστή. ΤΜΗΜΑ: ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΤΕ ΘΕΜΑ: Περιγράψτε τον τρόπο λειτουργίας ενός μονοφασικού
ΤΜΗΜΑ: ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΤΕ ΘΕΜΑ: Περιγράψτε τον τρόπο λειτουργίας ενός μονοφασικού μετασχηματιστή. ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: κ. Δημήτριος Καλπακτσόγλου ΕΡΓΑΣΙΑ ΤΗΣ: Αικατερίνης-Χρυσοβαλάντης Γιουσμά Α.Ε.Μ:
ΑΣΚΗΣΗ 5 η ΑΣΥΓΧΡΟΝΟΣ ΤΡΙΦΑΣΙΚΟΣ ΚΙΝΗΤΗΡΑΣ. 1. Η μελέτη της δομής και της αρχής λειτουργίας ενός ασύγχρονου τριφασικού κινητήρα.
Σκοπός της άσκησης: ΑΣΚΗΣΗ 5 η ΑΣΥΓΧΡΟΝΟΣ ΤΡΙΦΑΣΙΚΟΣ ΚΙΝΗΤΗΡΑΣ Σκοπός της εργαστηριακής άσκησης είναι: 1. Η μελέτη της δομής και της αρχής λειτουργίας ενός ασύγχρονου τριφασικού κινητήρα. 1. Γενικά Οι
ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α)
ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ 4 ΠΑΛΜΟΚΩΔΙΚΗ ΔΙΑΜΟΡΦΩΣΗ - PCM (ΜΕΡΟΣ Α) 3.1. ΣΚΟΠΟΣ ΑΣΚΗΣΗΣ Σκοπός της εργαστηριακής αυτής άσκησης είναι η μελέτη της παλμοκωδικής διαμόρφωσης που χρησιμοποιείται στα σύγχρονα τηλεπικοινωνιακά
Αρχιτεκτονική Υπολογιστών
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Α ) Ενσωματωμένα Συστήματα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Τίτλος Άσκησης : ΜΕΤΡΗΣΗ ΑΝΤΙΣΤΑΣΕΩΝ ΜΕ ΤΗ ΓΕΦΥΡΑ WHEATSTONE
ΤΕΙ ΧΑΛΚΙΔΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΙΚΩΝ ΜΕΤΡΗΣΕΩΝ Α/Α ΕΡΓΑΣΤΗΡΙΑΚΗΣ ΑΣΚΗΣΗΣ : ΑΣΚΗΣΗ 3 η Τίτλος Άσκησης : ΜΕΤΡΗΣΗ ΑΝΤΙΣΤΑΣΕΩΝ ΜΕ ΤΗ ΓΕΦΥΡΑ WHEATSTONE Σκοπός Η κατανόηση της λειτουργίας και
Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος
ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος Κλήμης Νταλιάνης Λέκτορας Π.Δ.407/80 Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Αρχιτεκτονική
ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΕΝΑΛΛΑΚΤΗΡΩΝ. Συγρονισμός δύο (ή περισσοτέρων) γεννητριών
1 ΠΑΡΑΛΛΗΛΙΣΜΟΣ ΕΝΑΛΛΑΚΤΗΡΩΝ Η αυτόνομη λειτουργία σύγχρονων γεννητριών είναι πολύ σπάνια. Σχεδόν πάντα εμφανίζονται πάνω από μία γεννήτριες, που συνδέονται παράλληλα για την ικανοποίηση των αναγκών του
ΑΣΚΗΣΗ 3: ΥΛΟΠΟΙΗΣΗ ΗΛΕΚΤΡΟΝΙΚΟΥ ΒΟΛΤΟΜΕΤΡΟΥ
ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ. Ε. ΕΡΓΑΣΤΗΡΙΟ ΤΕΧΝΟΛΟΓΙΑΣ ΜΕΤΡΗΣΕΩΝ Ημερομηνία:... /.... /20... Τμήμα:..... Ομάδα: ΑΣΚΗΣΗ 3: ΥΛΟΠΟΙΗΣΗ ΗΛΕΚΤΡΟΝΙΚΟΥ ΒΟΛΤΟΜΕΤΡΟΥ Βήμα 1. Υλοποιήστε μη
Διαφορές single-processor αρχιτεκτονικών και SoCs
13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό
Συλλογή μεταφορά και έλεγχος Δεδομένων ΘΟΡΥΒΟΣ - ΓΕΙΩΣΕΙΣ
Συλλογή μεταφορά και έλεγχος Δεδομένων ΘΟΡΥΒΟΣ - ΓΕΙΩΣΕΙΣ ΘΟΡΥΒΟΣ - ΓΕΙΩΣΕΙΣ Σε ένα ηλεκτρικό κύκλωμα δημιουργούνται ανεπιθύμητα ηλεκτρικά σήματα, που οφείλεται σε διάφορους παράγοντες, καθώς επίσης και
ΣΥΝΘΕΤΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ. Μετά την ολοκλήρωση της ενότητας αυτής θα μπορείτε:
Ενότητα 2.6 Κεφάλαιο 2 ΣΥΝΘΕΤΑ ΣΥΣΤΗΜΑΤΑ ΑΥΤΟΜΑΤΙΣΜΟΥ ΣΤΟΧΟΙ Μετά την ολοκλήρωση της ενότητας αυτής θα μπορείτε: Να αιτιολογείτε την αναγκαιότητα χρησιμοποίησης κάθε είδους αυτοματισμού. Να διακρίνετε
ΑΣΚΗΣΗ 4 η ΜΕΛΕΤΗ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ ΛΕΙΤΟΥΡΓΙΑΣ ΣΥΓΧΡΟΝΟΥ ΤΡΙΦΑΣΙΚΟΥ ΚΙΝΗΤΗΡΑ
ΑΣΚΗΣΗ 4 η ΜΕΛΕΤΗ ΧΑΡΑΚΤΗΡΙΣΤΙΚΩΝ ΛΕΙΤΟΥΡΓΙΑΣ ΣΥΓΧΡΟΝΟΥ ΤΡΙΦΑΣΙΚΟΥ ΚΙΝΗΤΗΡΑ Σκοπός της άσκησης: Σκοπός της άσκησης είναι: 1. Να εξοικειωθεί ο σπουδαστής με την διαδικασία εκκίνησης ενός σύγχρονου τριφασικού
WIRELESS SENSOR NETWORKS (WSN)
WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα: Τεχνολογία Αναλογικών και Ψηφιακών Ηλεκτρονικών Τεχνολογία Τεχνικών Σχολών
Τεχνολογία Πολυμέσων. Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Τεχνολογία Πολυμέσων Ενότητα # 4: Ήχος Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙ ΕΥΤΙΚΟ Ι ΡΥΜΑ ΠΑΤΡΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ 21/06/2011 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ
ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ 2/06/20 ΘΕΜΑ ο (2 μονάδες) Το ρεύμα που διαρρέει κλάδο ενός ηλεκτρικού δικτύου μετρήθηκε με ηλεκτρονικό πολύμετρο και προέκυψαν οι ακόλουθες μετρήσεις: Μέτρηση Τιμή (ma) 4.75
J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου
J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,
ΗΛΕΚΤΡΙΚΩΝ ΜΕΤΡΗΣΕΩΝ
ΤΕΙ ΠΑΤΡΑΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΙΑΣ ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ ΗΛΕΚΤΡΙΚΩΝ ΜΕΤΡΗΣΕΩΝ ( ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ) ΜΑΙΟΣ 009 ΒΙΒΛΙΟΓΡΑΦΙΑ. Ηλεκτροτεχνία Εναλλασσόμενου Ρεύματος: Α. Δροσόπουλος:.6 Φάσορες: σελ..
ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙΙ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙΙ Μάθημα ασκήσεων 4: Κοντή γραμμή μεταφοράς Λαμπρίδης Δημήτρης Ανδρέου Γεώργιος Δούκας Δημήτριος Τμήμα