62
Έλεγχος με μικροϋπολογιστές Παρουσίαση 1: Εισαγωγή στα ενσωματωμένα συστήματα (embedded systems – hardware) Εργαστήριο Αυτομάτου Ελέγχου μΥ και Ψηφιακός Έλεγχος

Έλεγχος με μικροϋπολογιστές

Embed Size (px)

DESCRIPTION

Έλεγχος με μικροϋπολογιστές. μΥ και Ψηφιακός Έλεγχος. Παρουσίαση 1: Εισαγωγή στα ενσωματωμένα συστήματα (embedded systems – hardware). Εργαστήριο Αυτομάτου Ελέγχου. Ενσωματωμένα Συστήματα – Embedded Systems. Έλεγχος με Μικροϋπολογιστές. Ενσωματωμένα Συστήματα – Embedded Systems. Ορισμός - PowerPoint PPT Presentation

Citation preview

Page 1: Έλεγχος με μικροϋπολογιστές

Έλεγχος με μικροϋπολογιστές

Παρουσίαση 1: Εισαγωγή στα ενσωματωμένα συστήματα(embedded systems – hardware)

Εργαστήριο Αυτομάτου Ελέγχου

μΥ και Ψηφιακός Έλεγχος

Page 2: Έλεγχος με μικροϋπολογιστές

Ενσωματωμένα Συστήματα – Embedded Systems

Έλεγχος με Μικροϋπολογιστές

Page 3: Έλεγχος με μικροϋπολογιστές

Ενσωματωμένα Συστήματα – Embedded Systems

Έλεγχος με Μικροϋπολογιστές

Ορισμός

Είναι ένα συγκεκριμένου σκοπού (single-purpose) ενσωματωμένο υπολογιστικό υποσύστημα ενός συνολικού συστήματος που έχει ως σκοπό την επίβλεψη και τον έλεγχο του συστήματος αυτού.

Υλοποίηση

Υπάρχουν πολλές παραλλαγές στην υλοποίηση ενσωματωμένων συστημάτων. Συνήθως είναι μικρού μεγέθους συσκευές οι οποίες αποτελούνται από 3 απαραίτητα στοιχεία:

i. Μικροελεγκτές/ Μικροεπεξεργαστέςii. Μνήμηiii. Διεπαφές με το περιβάλλον

Page 4: Έλεγχος με μικροϋπολογιστές

Ενσωματωμένα Συστήματα – Embedded Systems

Έλεγχος με Μικροϋπολογιστές

Ορισμός

Είναι ένα συγκεκριμένου σκοπού (single-purpose) ενσωματωμένο υπολογιστικό υποσύστημα ενός συνολικού συστήματος που έχει ως σκοπό την επίβλεψη και τον έλεγχο του συστήματος αυτού.

Η έννοια «ενσωματωμένο» έχει να κάνει με τις λειτουργίες και όχι με το μέγεθος ή τις δυνατότητες.

ΠΡΟΣΟΧΗ!

Υλοποίηση

Υπάρχουν πολλές παραλλαγές στην υλοποίηση ενσωματωμένων συστημάτων. Συνήθως είναι μικρού μεγέθους συσκευές οι οποίες αποτελούνται από 3 απαραίτητα στοιχεία:

i. Μικροελεγκτές/ Μικροεπεξεργαστέςii. Μνήμηiii. Διεπαφές με το περιβάλλον

Page 5: Έλεγχος με μικροϋπολογιστές

Ενσωματωμένα Συστήματα – Embedded Systems

Η «καρδιά ή το μυαλο» των ενσωματωμένων συστημάτων.

Έλεγχος με Μικροϋπολογιστές

Page 6: Έλεγχος με μικροϋπολογιστές

Ενσωματωμένα Συστήματα – Embedded Systems

Έλεγχος με Μικροϋπολογιστές

Page 7: Έλεγχος με μικροϋπολογιστές

Ενσωματωμένα Συστήματα – Embedded Systems

Πλατφόρμες και Λογισμικό

Υπάρχουν διάφορες πλατφόρμες που χρησιμοποιούν διαφορετικού τύπου λογισμικό. Χωρίζονται σε δύο κύριες κατηγορίες:

Συστήματα με μικροελεγκτές (μC)

Χρησιμοποιούνται γενικώς για πολύ συγκεκριμένες λειτουργίες. Δεν διαθέτουν κάποιο λειτουργικό σύστημα. Ο προγραμματισμός τους γίνεται είτε με χαμηλού επιπέδου assemply (architecture-specific) ή ειδικές εκδόσεις της C. Συστήματα με μικροεπεξεργαστές (μP)

Οι δυνατότητες τους και οι λειτουργίες τους είναι μεγαλύτερες από αυτές των μC. Συνήθως τρέχουν κάποιο «ελαφρύ» λειτουργικό σύστημα (Linux, QNX,VxWorks,*BSD) και επιδέχονται υψηλού επιπέδου προγραμματισμό. Παρέχουν όλες τις ευκολίες ενός Λ/Σ (multitasking, networking, κ.τ.λ)

Έλεγχος με Μικροϋπολογιστές

Page 8: Έλεγχος με μικροϋπολογιστές

Ενσωματωμένα Συστήματα – Embedded Systems

Πλατφόρμες και Λογισμικό

Υπάρχουν διάφορες πλατφόρμες που χρησιμοποιούν διαφορετικού τύπου λογισμικό. Χωρίζονται σε δύο κύριες κατηγορίες:

Συστήματα με μικροελεγκτές (μC)

Χρησιμοποιούνται γενικώς για πολύ συγκεκριμένες λειτουργίες. Δεν διαθέτουν κάποιο λειτουργικό σύστημα. Ο προγραμματισμός τους γίνεται είτε με χαμηλού επιπέδου assemply (architecture-specific) ή ειδικές εκδόσεις της C. Συστήματα με μικροεπεξεργαστές (μP)

Οι δυνατότητες τους και οι λειτουργίες τους είναι μεγαλύτερες από αυτές των μC. Συνήθως τρέχουν κάποιο «ελαφρύ» λειτουργικό σύστημα (Linux, QNX,VxWorks,*BSD) και επιδέχονται υψηλού επιπέδου προγραμματισμό. Παρέχουν όλες τις ευκολίες ενός Λ/Σ (multitasking, networking, κ.τ.λ)

Δεν πρέπει να γίνεται σύγχυση των ενσωματωμένων συστημάτων με έναν κανονικό υπολογιστή (PC).

• Προτερήματα μPΜικρότερο μέγεθοςΜικρότερη κατανάλωση ενέργειαςΑυξημένη αξιοπιστία

• Μειονεκτήματα μPΜικρότερες επιδόσειςΛιγότερα περιφερειακά

ΠΡΟΣΟΧΗ!

Έλεγχος με Μικροϋπολογιστές

Page 9: Έλεγχος με μικροϋπολογιστές

Η Πλατφόρμα Robostix

Έλεγχος με Μικροϋπολογιστές

μC: AVR-ATmega 128

Μνήμες:

128 ΚΒ flash (program memory)

4KΒ SRAM (άμεσα προσπελάσιμη)

4ΚΒ EEPROM (έμμεσα προσπελάσιμη)

Ι/Ο διεπαφές

8 channels 10bit ADC (analog to digital converters)

6 PWM channels

2 UART ports

Αρχιτεκτονική Atmel AVR (Advanced RISC -Reduced

instruction set computing)

Page 10: Έλεγχος με μικροϋπολογιστές

Η Πλατφόρμα Robostix

Έλεγχος με Μικροϋπολογιστές

Θύρες Εισόδου-Εξόδου (I/O)

Page 11: Έλεγχος με μικροϋπολογιστές

8-bit RISC instruction set

32 Registers του ενός byte

3 είδη μνήμης (Flash, SRAM,

EEPROM)

Διάφορες Ι/Ο διεπαφές.

Έχει σχεδιαστεί για να τρέχει

compiled κώδικα C και όχι

μόνο assembly.

Έλεγχος με Μικροϋπολογιστές

Αρχιτεκτονική AVR

Page 12: Έλεγχος με μικροϋπολογιστές

8-bit RISC instruction set

32 Registers του ενός byte

3 είδη μνήμης (Flash, SRAM,

EEPROM)

Διάφορες Ι/Ο διεπαφές.

Έχει σχεδιαστεί για να τρέχει

compiled κώδικα C και όχι

μόνο assembly.

Έλεγχος με Μικροϋπολογιστές

Αρχιτεκτονική AVR

Page 13: Έλεγχος με μικροϋπολογιστές

8-bit RISC instruction set

32 Registers του ενός byte

3 είδη μνήμης (Flash, SRAM,

EEPROM)

Διάφορες Ι/Ο διεπαφές.

Έχει σχεδιαστεί για να τρέχει

compiled κώδικα C και όχι

μόνο assembly.

Έλεγχος με Μικροϋπολογιστές

Αρχιτεκτονική AVR

Page 14: Έλεγχος με μικροϋπολογιστές

CPU: 400MHz Marvell PXA270 (ARM)

RAM: 64MB

Flash Memory: 16MB

Λ/Σ: Linux –based OpenEmbedded Kernel

2.6.22

Boards:

netwifi-microSD : Ethernet 10/100Mbps,

Wi-Fi (802.11g), micro-SD card connector

Tweener: Σειριακή θύρα RS232 για

επικοινωνία με το Gumstix

Αρχιτεκτονική: Intel/Marvell XScale (RISC)

Έλεγχος με Μικροϋπολογιστές

Η Πλατφόρμα Gumstix Verdex XM4

Page 15: Έλεγχος με μικροϋπολογιστές

Programmer

Εξωτερική συσκευή για τη μεταφορά του εκτελέσιμου κώδικα στην Program Memory του AVR. Υπάρχουν διάφορες συσκευές, συνήθως RS-232 ή USB. Το CSL διαθέτει έναν AVR-ISP Mk II. Εκτός από τον programmer απαιτείται και ειδικό software, το οποίο πραγματοποιεί τον προγραμματισμό του AVR μαζί με την τροποποίηση ειδικών registers (fuses).

Συσκευή Προγραμματισμού

Έλεγχος με Μικροϋπολογιστές

Page 16: Έλεγχος με μικροϋπολογιστές

Έλεγχος με Μικροϋπολογιστές

μΥ και Ψηφιακός Έλεγχος

Τέλος Παρουσίασης 1

Page 17: Έλεγχος με μικροϋπολογιστές

Έλεγχος με μικροϋπολογιστές

Παρουσίαση 2: Βασικός Προγραμματισμός AVR (AVR-lib)

μΥ και Ψηφιακός Έλεγχος

Page 18: Έλεγχος με μικροϋπολογιστές

Η Πλατφόρμα Robostix

Έλεγχος με Μικροϋπολογιστές

μC: AVR-ATmega 128

Μνήμες:

128 ΚΒ flash (program memory)

4KΒ SRAM (άμεσα προσπελάσιμη)

4ΚΒ EEPROM (έμμεσα προσπελάσιμη)

Ι/Ο διεπαφές

8 channels 10bit ADC (analog to digital converters)

6 PWM channels

2 UART ports

Αρχιτεκτονική Atmel AVR (Advanced RISC -Reduced

instruction set computing)

Page 19: Έλεγχος με μικροϋπολογιστές

Programmer

Εξωτερική συσκευή για τη μεταφορά του εκτελέσιμου κώδικα στην Program Memory του AVR. Υπάρχουν διάφορες συσκευές, συνήθως RS-232 ή USB. Το CSL διαθέτει έναν AVR-ISP Mk II. Εκτός από τον programmer απαιτείται και ειδικό software, το οποίο πραγματοποιεί τον προγραμματισμό του AVR μαζί με την τροποποίηση ειδικών registers (fuses).

Συσκευή Προγραμματισμού

Έλεγχος με Μικροϋπολογιστές

Page 20: Έλεγχος με μικροϋπολογιστές

Προγραμματισμός σε C

Υπάρχουν εξειδικευμένοι compilers που μπορούν να παράξουν εκτελέσιμο κώδικα για τους μικροελεγκτές της οικογένειας AVR, π.χ. AVR-GCC.

Cross-compiling

Χρήση compiler σε έναν κοινό υπολογιστή. Ο κώδικας που παράγεται δεν μπορεί να τρέξει στον ίδιο τον Η/Υ απευθείας, λόγω διαφοράς αρχιτεκτονικής.

Emulator

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

Έλεγχος με Μικροϋπολογιστές

Προγραμματισμός Robostix

Έλεγχος με Μικροϋπολογιστές

Page 21: Έλεγχος με μικροϋπολογιστές

Σειριακή εκτέλεση

Το πρόγραμμα που υλοποιούμε σε AVR C εκτελείτε σειριακά.

ΕΞΑΙΡΕΣΗ!: ISR (Interrupt Service Routine)

Έναρξη προγράμματος

Κάθε πρόγραμμα στην AVR C ξεκινάει από την συνάρτηση main()

Memory-mapped I/O

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

AVR C – Ροή Προγράμματος

Έλεγχος με Μικροϋπολογιστές

Page 22: Έλεγχος με μικροϋπολογιστές

Σειριακή εκτέλεση

Το πρόγραμμα που υλοποιούμε σε AVR C εκτελείτε σειριακά. Τι γίνεται όταν χρειάζεται άμεση ανταπόκριση από εξωτερικά γεγονότα; Interrupts

ΟρισμόςΕιδικά «κανάλια» επικοινωνίας, τα οποία προκαλούν τη διακοπή της κανονικής εκτέλεσης του προγράμματος και την εκτέλεση κώδικα σε συγκεκριμένες θέσεις μνήμης (Interrupt Handler ή Interrupt Service Routine - ISR).

ΤύποιΥπάρχουν εξωτερικά και εσωτερικά interrupts:Εσωτερικά είναι τα interrupts που έχουν σχέση με την ίδια την κατάσταση του μικροελεγκτή, π.χ. «έγινε υπερχείλιση ενός counter». Εξωτερικά είναι τα interrupts που προκαλούνται από το περιβάλλον, π.χ. «υπάρχουν διαθέσιμα δεδομένα στη σειριακή θύρα». Ο μικροελεγκτής διαθέτει επιπλέον εισόδους που προκαλούν interrupts.

*Μετά την ολοκλήρωση εκτέλεσης του ISR, ο μικροελεγκτής επιστρέφει στηνπροηγούμενη θέση στο πρόγραμμα.

Έλεγχος με Μικροϋπολογιστές

AVR C – Interrupts

Έλεγχος με Μικροϋπολογιστές

Page 23: Έλεγχος με μικροϋπολογιστές

Σειριακή εκτέλεση

Το πρόγραμμα που υλοποιούμε σε AVR C εκτελείτε σειριακά. Τι γίνεται όταν χρειάζεται άμεση ανταπόκριση από εξωτερικά γεγονότα; Interrupts

ΟρισμόςΕιδικά «κανάλια» επικοινωνίας, τα οποία προκαλούν τη διακοπή της κανονικής εκτέλεσης του προγράμματος και την εκτέλεση κώδικα σε συγκεκριμένες θέσεις μνήμης (Interrupt Handler ή Interrupt Service Routine - ISR).

ΤύποιΥπάρχουν εξωτερικά και εσωτερικά interrupts:Εσωτερικά είναι τα interrupts που έχουν σχέση με την ίδια την κατάσταση του μικροελεγκτή, π.χ. «έγινε υπερχείλιση ενός counter». Εξωτερικά είναι τα interrupts που προκαλούνται από το περιβάλλον, π.χ. «υπάρχουν διαθέσιμα δεδομένα στη σειριακή θύρα». Ο μικροελεγκτής διαθέτει επιπλέον εισόδους που προκαλούν interrupts.

*Μετά την ολοκλήρωση εκτέλεσης του ISR, ο μικροελεγκτής επιστρέφει στηνπροηγούμενη θέση στο πρόγραμμα.

Έλεγχος με Μικροϋπολογιστές

AVR C – Interrupts

Τα interrupts επιτρέπουν την άμεση εξυπηρέτηση έκτακτων αιτημάτων, με αντίτιμο τη μη-προβλέψιμη συμπεριφορά του κώδικα. (event-based vs. Poll based)

ΠΡΟΣΟΧΗ!

Έλεγχος με Μικροϋπολογιστές

Page 24: Έλεγχος με μικροϋπολογιστές

“avr-libc”

Για τον προγραμματισμό ενός AVR μας παρέχεται μια έτοιμη βιβλιοθήκη. Πρόκειται για μια βιβλιοθήκη C που περιέχει έτοιμες συναρτήσεις και μακροεντολές για την διευκόλυνση του προγραμματισμού των μικροελεγτών.

Χαρακτηριστικά – Ιδιότητες

Γίνεται στατικά link μέσα στο ίδιο το πρόγραμμα

Είναι χωρισμένη σε ενότητες (modules), με τη μορφή κανονικών header files

Αξιοποιεί τις δυνατότητες του ίδιου του hardware και προσφέρει και εξομοίωση σε επίπεδο λογισμικού για χαρακτηριστικά που δεν υπάρχουν στο ίδιο το hardware.

Έλεγχος με Μικροϋπολογιστές

AVR C – Βιβλιοθήκη

Έλεγχος με Μικροϋπολογιστές

Page 25: Έλεγχος με μικροϋπολογιστές

Θύρες Εισόδου-Εξόδου

Ο AVR είναι 8-bitος, επομένως οι θύρες εισόδου/εξόδου έχουν εύρος 8 bit. Οι θύρες ψηφιακής εισόδου/εξόδου αντιστοιχούν σε 8 pins στην πλακέτα για κάθε θύρα.

Registers

Κάθε θύρα σχετίζεται με 3 θέσεις μνήμης (registers):

DDRx - Data Direction Register: Ρυθμίζει ποια pins της θύρας θα είναι είσοδοι και ποια έξοδοι. 0 = είσοδος, 1 = έξοδος. π.χ: DDRA = 0xF0 = 11110000 = «τα 4 πρώτα pins είσοδοι, τα 4 τελευταία έξοδοι»PINx - Port Input Register: Χρησιμοποιείται για την ανάγνωση των τιμών των bits της θύρας.PORTx: Χρησιμοποιείται για τη ρύθμιση των τιμών των bits εξόδου. Επιπρόσθετα, χρησιμοποιείται για την ενεργοποίηση των εσωτερικών αντιστάσεων pull-up για τα pins εισόδου. Στις περισσότερες εφαρμογές συνιστάται η ενεργοποίηση των αντιστάσεων pull-up, δηλαδή η τιμή 1 στις αντίστοιχες θέσεις του PORTx.

Έλεγχος με Μικροϋπολογιστές

AVR C – Ι/Ο Είσοδος-Έξοδος

Έλεγχος με Μικροϋπολογιστές

Page 26: Έλεγχος με μικροϋπολογιστές

Θύρες Εισόδου-Εξόδου του Robostix

To Robostix διαθέτει διάφορες διεπαφές με το περιβάλλον. Οι κυριότερες είναι οι εξής:

GPIO : Port A και Port C

Την Port C μπορούμε να την χρησιμοποιήσουμε ως ψηφιακή είσοδο/έξοδο (digital I/O)

A/D : Port F (8 Κανάλια)

PWM : Port B (bits 5-7) και Port E (bits 3-5) (6 κανάλια)

Interupts : Port G (bits 0-2) (3 εξωτερικά interupts)

LEDs : Port G (bit3) <- Μπλε LEDPort G (bit4) <- Κόκκινο LEDPort B (bit4) <- Κίτρινο LED

AVR C – Ι/Ο Είσοδος-Έξοδος

Έλεγχος με Μικροϋπολογιστές

Page 27: Έλεγχος με μικροϋπολογιστές

Έλεγχος με Μικροϋπολογιστές

Θύρες Εισόδου-Εξόδου του Robostix

AVR C – Ι/Ο Είσοδος-Έξοδος

Έλεγχος με Μικροϋπολογιστές

Page 28: Έλεγχος με μικροϋπολογιστές

Μετά-module <avr/io.h>

To header file <avr/io.h> κάνει include τα κατάλληλα headers που δίνουν την δυνατότητα να χειριστούμε τις εισόδους/εξόδους της οικογένειας μικροελεγκτών AVR που διαλέγουμε. Τύποι ορισμών

Σταθερές Συμβολικά ονόματα για τις θύρες εισόδου/εξόδου. (π.χ. PORTA, PORTC, USARTEO,

ADCA, κ.τ.λ.) Συμβολικά ονόματα για τα pins των θυρών εισόδου/εξόδου. (π.χ. PORTA1, PORTC8,

κ.τ.λ.)Μακροεντολές

_BV(bit) : Αντικαθιστάται με το δεκαδικό που προκύπτει από αληθές bit στη θέση bit. π.χ: _BV(4) = (1 << 4) = 00010000 = 16

bit_is_clear(reg,bit) και bit_is_set(reg,bit) : ελέγχουν αν το bit στη θέση bit της θύρας I/O reg έχει τιμή 0 ή 1 αντίστοιχα.

loop_until_bit_is_clear(reg,bit) και loop_until_bit_is_set(reg,bit) : Σταματούν την εκτέλεση του προγράμματος μέχρι το bit στη θέση bit της θύρας I/O reg έχει τιμή 0 ή 1 αντίστοιχα.

Έλεγχος με Μικροϋπολογιστές

AVR C – Βασικά header files

Έλεγχος με Μικροϋπολογιστές

Page 29: Έλεγχος με μικροϋπολογιστές

<avr/io.h> - Παραδείγματα

Αλλαγή του bit 7 της θύρας B σε 1PORTB |= _BV(PB7);

Αλλαγή του bit 4 της θύρας A σε 0PORTA &= ~_BV(PA4);

Ενέργεια με βάση την τιμή ενός bitif (bit_is_set(PINB, PB1)) {

PORTA &=~_BV(PA2);}

Αναμονή για μια συνθήκηloop_until_bit_is_clear (PINA, PA2);PORTB |= _BV(PB2);

AVR C – Βασικά header files

Έλεγχος με Μικροϋπολογιστές

Page 30: Έλεγχος με μικροϋπολογιστές

<avr/interrupt.h>

To header file <avr/interrupt.h> περιλαμβάνει ορισμούς για τα ονόματα των interrupts καθώς και μακροεντολές για την ρύθμιση των ISR

Τύποι ορισμών

Σταθερές Oνόματα interrupts. π.χ. INT1_vect (external IRQ) , TIMER0_OVF_vect (timer 0

overflow), ADC_vect (A/D conversion complete)

Μακροεντολές ISR(int_name) : Δημιουργεί ένα νέο interrupt service routine για το interrupt με

όνομα int_name

Έλεγχος με Μικροϋπολογιστές

AVR C – Βασικά header files

Έλεγχος με Μικροϋπολογιστές

Page 31: Έλεγχος με μικροϋπολογιστές

<avr/math.h>

To header file <avr/math.h> περιλαμβάνει μαθηματικούς ορισμούς και συναρτήσεις για τον χειρισμό αριθμητικών δεδομένων

Τύποι ορισμών

Σταθερές M_PI = π Μ_SQRT2 = NAN = Not A Number INFINITY = άπειρο

Συναρτήσεις cos(), sin(), tan(), atan(), sqrt(), square() , exp() κ.τ.λ.

*Αρκετές από αυτές δεν υποστηρίζονται από το hardware απευθείας και είναι αργές.

2

AVR C – Βασικά header files

Έλεγχος με Μικροϋπολογιστές

Page 32: Έλεγχος με μικροϋπολογιστές

<util/delay.h>

To header file <util/delay.h> περιλαμβάνει συναρτήσεις για την υλοποίηση των χρονοκαθυστερήσεων.Οι χρονοκαθυστερήσεις γίνονται με busy-wait: ο μικροελεγkτής καταναλώνει κύκλους ρολογιού χωρίς να προβαίνει σε καμία ενέργεια (no-op).Η διάρκεια του κύκλου ρολογιού εξαρτάται απο τη συχνότητα του επεξεργαστή

Τύποι ορισμών

Συναρτήσεις _delay_ms(amount) : Καθυστέρηση amount ms _delay_us(amount) : Καθυστέρηση amount μs

AVR C – Βασικά header files

Έλεγχος με Μικροϋπολογιστές

Page 33: Έλεγχος με μικροϋπολογιστές

<util/delay.h>

To header file <util/delay.h> περιλαμβάνει συναρτήσεις για την υλοποίηση των χρονοκαθυστερήσεων.Οι χρονοκαθυστερήσεις γίνονται με busy-wait: ο μικροελεγkτής καταναλώνει κύκλους ρολογιού χωρίς να προβαίνει σε καμία ενέργεια (no-op).Η διάρκεια του κύκλου ρολογιού εξαρτάται απο τη συχνότητα του επεξεργαστή

Τύποι ορισμών

Συναρτήσεις _delay_ms(amount) : Καθυστέρηση amount ms _delay_us(amount) : Καθυστέρηση amount μs

AVR C – Βασικά header files

Οι συναρτήσεις αυτές απαιτούν τον ορισμό της σταθεράς F_CPU η οποία πρέπει να έχει τιμή ίση με τη συχνότητα λειτουργίας του μικροελεγκτή σε Hz.H μέγιστη χρονοκαθυστέρηση που μπορεί να δώσει η delay_ms είναι:

ΠΡΟΣΟΧΗ!

262.14

( )ms

ό C MHz

Έλεγχος με Μικροϋπολογιστές

Page 34: Έλεγχος με μικροϋπολογιστές

/* Define CPU Clock speed, needed by _delay_ms */#define F_CPU 1000000UL#include <avr/io.h>#include <util/delay.h>

void main(){

/* Initialize port C as output and zero all bits */DDRC = 0xFF;PORTC= 0x00;

while(1){

/* Turn the LED off */PORTC &= ~_BV(PC0);/* Wait for half a second */_delay_ms(500);/* Turn the LED on */PORTC |= _BV(PC0);/* Wait for half a second */_delay_ms(500);

}}

AVR C – Ολοκληρωμένο Παράδειγμα

Έλεγχος με Μικροϋπολογιστές

Page 35: Έλεγχος με μικροϋπολογιστές

Έλεγχος με Μικροϋπολογιστές

μΥ και Ψηφιακός Έλεγχος

Τέλος Παρουσίασης 2

Page 36: Έλεγχος με μικροϋπολογιστές

Έλεγχος με μικροϋπολογιστές

Παρουσίαση 3: Παρουσίαση Ασκήσεων

μΥ και Ψηφιακός Έλεγχος

Εργαστήριο Αυτομάτου Ελέγχου

Page 37: Έλεγχος με μικροϋπολογιστές

Έλεγχος απλών ηλεκτρικών κυκλωμάτων μέσω της πλατφόρμας Robostix.

Χρήση μόνο D/IO Interfaces

Προγραμματισμός μΥ με χρήση avr-libc σε γλώσσα C

Σκοπός εργαστηριακών ασκήσεων

Έλεγχος με Μικροϋπολογιστές

Page 38: Έλεγχος με μικροϋπολογιστές

Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-Υ για να:

Ανάψετε ένα LED

Να ανιχνεύσετε το πάτημα ενός διακόπτη

Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα

Διασύνδεση με εξωτερικό περιβάλλον

Έλεγχος με Μικροϋπολογιστές

Page 39: Έλεγχος με μικροϋπολογιστές

Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-Υ για να:

Ανάψετε ένα LED

Να ανιχνεύσετε το πάτημα ενός διακόπτη

Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα

Διασύνδεση με εξωτερικό περιβάλλον

Έλεγχος με Μικροϋπολογιστές

Page 40: Έλεγχος με μικροϋπολογιστές

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

Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-Υ για να:

Ανάψετε ένα LED

o Στα pins του μ-Υ υπάρχουν διαθέσιμες τάσεις 5V.

o Υπάρχουν διαθέσιμα pins γείωσης (GND)

o Το λογικό 1 σε ένα pin αντιστοιχεί σε τάση 5V.

o Το λογικό 0 σε ένα pin αντιστοιχεί σε τάση 0V.

o Για να μειώσουμε το ρεύμα τροφοδοσίας ενός LED συνδέουμε σε σειρά μια αντίσταση (5-10KΩ).

5V

Διασύνδεση με εξωτερικό περιβάλλον

Page 41: Έλεγχος με μικροϋπολογιστές

Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-Υ για να:

Ανάψετε ένα LED

o Γίνεται ρύθμιση ενός bit μιας θύρας σαν έξοδο, και στέλνεται σε αυτό το λογικό 1 (5V)

Διασύνδεση με εξωτερικό περιβάλλον

Έλεγχος με Μικροϋπολογιστές

Page 42: Έλεγχος με μικροϋπολογιστές

Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-Υ για να:

Ανάψετε ένα LED

Να ανιχνεύσετε το πάτημα ενός διακόπτη

Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα

Διασύνδεση με εξωτερικό περιβάλλον

Έλεγχος με Μικροϋπολογιστές

Page 43: Έλεγχος με μικροϋπολογιστές

Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-Υ για να:

Να ανιχνεύσετε το πάτημα ενός διακόπτη

o Γίνεται ρύθμιση ενός bit μιας θύρας σαν είσοδος, και στέλνεται το σήμα εξόδου μετά τον διακόπτη

5V

Σήμα Εξόδου

Διασύνδεση με εξωτερικό περιβάλλον

Έλεγχος με Μικροϋπολογιστές

Page 44: Έλεγχος με μικροϋπολογιστές

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

Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-Υ για να:

Να ανιχνεύσετε το πάτημα ενός διακόπτη

5V

Σήμα Εξόδου

1 0 0 0 0 0 0 0

Διασύνδεση με εξωτερικό περιβάλλον

Page 45: Έλεγχος με μικροϋπολογιστές

Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-Υ για να:

Ανάψετε ένα LED

Να ανιχνεύσετε το πάτημα ενός διακόπτη

Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα

Διασύνδεση με εξωτερικό περιβάλλον

Έλεγχος με Μικροϋπολογιστές

Page 46: Έλεγχος με μικροϋπολογιστές

Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-Υ για να:

Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα

Διασύνδεση με εξωτερικό περιβάλλον

Έλεγχος με Μικροϋπολογιστές

Page 47: Έλεγχος με μικροϋπολογιστές

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΕΙΣ

Page 48: Έλεγχος με μικροϋπολογιστές

“Υλοποίηση Συστήματος Ασφαλείας με Χρήση Τριψήφιου Κωδικού Αριθμού”

Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης

Απαραίτητες γνώσεις

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 1

Page 49: Έλεγχος με μικροϋπολογιστές

“Υλοποίηση Συστήματος Ασφαλείας με Χρήση Τριψήφιου Κωδικού Αριθμού”

Ο κωδικός αριθμός θα ορίζεται εσωτερικά στον κώδικα και θα μπορεί να πάρει οποιαδήποτε ακέραια τιμή μεταξύ [000,999]

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

Τα LEDs θα παραμένουν αναμμένα για ικανό χρονικό διάστημα (1-2 sec)

Περαιτέρω επισημάνσεις

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 1

Page 50: Έλεγχος με μικροϋπολογιστές

“Υλοποίηση Συστήματος Ελέγχου Ολοκληρωμένου Κυκλώματος 7400”

Άναμμα LED Ρουτίνες χρονικής καθυστέρησης

Απαραίτητες γνώσεις

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 2

Page 51: Έλεγχος με μικροϋπολογιστές

“Υλοποίηση Συστήματος Ελέγχου Ολοκληρωμένου Κυκλώματος 7400”

Το πρόγραμμα θα εκτελεί και θα ελέγχει όλους τους πιθανούς συνδυασμούς και θα τερματίζεται στην περίπτωση που έστω ένας από αυτούς δεν ικανοποιείται

Το κύκλωμα θα ελεγχθεί για την ορθότητά του με εισαγωγή ψευδών αποτελεσμάτων

Περαιτέρω επισημάνσεις

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 2

Page 52: Έλεγχος με μικροϋπολογιστές

“Υλοποίηση Συστήματος Μετρητή Αντικειμένων με Δυνατότητα Ελέγχου του

Αποτελέσματος”

Σύστημα διακοπτών Ρουτίνες χρονικής καθυστέρησης Άναμμα LED

Απαραίτητες γνώσεις

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 3

Page 53: Έλεγχος με μικροϋπολογιστές

“Υλοποίηση Συστήματος Μετρητή Αντικειμένων με Δυνατότητα Ελέγχου του

Αποτελέσματος”

Το αποτέλεσμα της μέτρησης απλά θα μεταφέρεται ως αριθμός σε δυαδική μορφή στη θύρα Α

Τα LEDs θα παραμένουν αναμμένα για ικανό χρονικό διάστημα (1-2 sec) για διευκόλυνση του χρήστη

Περαιτέρω επισημάνσεις

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 3

Page 54: Έλεγχος με μικροϋπολογιστές

“Υλοποίηση Συστήματος Ελέγχου Πρόσβασης σε Κτίριο”

Απαραίτητες γνώσεις

Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 4

Page 55: Έλεγχος με μικροϋπολογιστές

Η ρουτίνα χρονικής καθυστέρησης θα ελέγχει συνεχώς για πάτημα διακόπτη

Η ρουτίνα χρονικής καθυστέρησης θα έχει με ακρίβεια τη δεδομένη χρονική διάρκεια

Περαιτέρω επισημάνσεις

“Υλοποίηση Συστήματος Ελέγχου Πρόσβασης σε Κτίριο”

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 4

Page 56: Έλεγχος με μικροϋπολογιστές

“Υλοποίηση Συστήματος Ελέγχου Ανελκυστήρα Διώροφης Οικοδομής”

Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης

Απαραίτητες γνώσεις

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 5

Page 57: Έλεγχος με μικροϋπολογιστές

Η ρουτίνα χρονικής καθυστέρησης θα ελέγχει συνεχώς για πάτημα διακόπτη

Η ρουτίνα χρονικής καθυστέρησης θα έχει με ακρίβεια τη δεδομένη χρονική διάρκεια

“Υλοποίηση Συστήματος Ελέγχου Ανελκυστήρα Διώροφης Οικοδομής”

Περαιτέρω επισημάνσεις

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 5

Page 58: Έλεγχος με μικροϋπολογιστές

“Υλοποίηση Συστήματος Έξυπνων Φαναριών σε διαστάυρωση”

Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης

Απαραίτητες γνώσεις

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 6

Page 59: Έλεγχος με μικροϋπολογιστές

Η ρουτίνα χρονικής καθυστέρησης θα ελέγχει συνεχώς για πάτημα διακόπτη

Θα υπάρχουν οι αναγκαίες χρονικές καθυστερήσεις μεταξύ της εναλλαγής σε πράσινο και κόκκινο σήμα

Περαιτέρω επισημάνσεις

Έλεγχος με Μικροϋπολογιστές

ΑΣΚΗΣΗ 5

“Υλοποίηση Συστήματος Έξυπνων Φαναριών σε διαστάυρωση”

Page 60: Έλεγχος με μικροϋπολογιστές

Κατανόηση του προβλήματος

Σχεδίαση γενικής μεθοδολογίας

Υλοποίηση και εκτέλεση αλγορίθμου βήμα-βήμα χωρίς να γράφουμε όλο τον κώδικα από την αρχή

Έλεγχος με Μικροϋπολογιστές

Βήματα για καλύτερο προγραμματισμό

Page 61: Έλεγχος με μικροϋπολογιστές

Ένα κακοφτιαγμένο και μη δομημένο κύκλωμα έχει ελάχιστες πιθανότητες να λειτουργήσει σωστά, ακόμα και αν ο προγραμματισμός είναι ορθός.

Χρησιμοποιούμε πολύμετρο για να ελέγξουμε τις συνδέσεις του κυκλώματος, πριν να εφαρμόσουμε τάσεις σε αυτό.

Για γείωση, χρησιμοποιούμε πάντα αυτή του μ/ε. (GND)

Έλεγχος με Μικροϋπολογιστές

ΓΕΝΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ

Page 62: Έλεγχος με μικροϋπολογιστές

Έλεγχος με Μικροϋπολογιστές

μΥ και Ψηφιακός Έλεγχος

Τέλος Παρουσίασης 3