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

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

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

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

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

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

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

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

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

2. Δήλωση μεταβλητών. #include <avr/io.h> #include <util/delay.h> unsigned char i=0xa0; register unsigned char i asm("r3");

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

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

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

1. Περιβάλλον εργασίας παραδείγματα σύνταξης

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016)

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

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

Εφαρμογές μικροελεγκτών

12. Διακοπές Interrupts (IRQ)

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

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

Γνωριμία με το Arduino

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

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

10. Πληκτρολόγιο matrix 4x4

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

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

15. Seven Segment Display. Πολυπλεγμένη λειτουργία

ΠΕΡΙΓΡΑΦΗ ΥΛΙΚΟΥ AVR 1. ΕΙΣΑΓΩΓΗ 1.1 ΓΕΝΙΚΗ ΔΟΜΗ 1.2 ΟΙΚΟΓΕΝΕΙΕΣ 1.3 ΤΥΠΟΙ 1.4 ΕΡΓΑΛΕΙΑ

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

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

A 1. DDRA = 0b ; k = PINB; DDRC = 0xf0; PORTC = 0x0f;

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

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

ΗΜΥ 213. Εργαστήριο Οργάνωσης Η.Y. και Μικροεπεξεργαστών week 5. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Περιεχόµενα. I Βασικές Γνώσεις 1

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Α : Υλικά

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

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

ΠΛΗΡΟΦΟΡΙΚH ΓΙΑ ΤΗΝ ΤEΧΝΗ Η ΕΞAΜΗΝΟ

10. Πληκτρολόγιο matrix 4x4

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών

ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO. Υποψήφιος Διδάκτωρ

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

Υλικό Υπολογιστών (Hardware) ΜΥΥ-106 Εισαγωγή στους Η/Υ και Πληροφορική

Αρχιτεκτονική Η/Υ Το chipset ενός υπολογιστικού συστήματος. Δρ. Μηνάς Δασυγένης

Προγραμματισμο ς σε Arduino

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 6 C & Assembly

Συστήματα Μικροεπεξεργαστών

ARDUINO ΟΔΗΓΟΣ ΓΙΑ ΑΡΧΑΡΙΟΥΣ

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

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

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

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης

WDT και Power Up timer

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

Διασύνδεση Εισόδου-Εξόδου

Τροφοδοσία : 3,3V, 5V Αυτή η πινακίδα επιτρέπει τη σύνδεση και των 8 απολήξεων (pins) μίας θύρας E- blocks με καλώδια με τη χρήση τερματισμών με

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Σχεδιασμός και υλοποίηση κυκλώματος μέτρησης κατανάλωσης ισχύος

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

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

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 5: Εξωτερικές διακοπές του 8051

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

Εργαστηριακές ασκήσεις λογικών κυκλωμάτων 11 A/D-D/A

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

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

8051 Interrupt Ports. Name Alternate Function

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

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

Καταχωρητής STATUS. IRP: Bit επιλογής περιοχής μνήμης (Bank) για την έμμεση διευθυνσιοδότηση 1= Bank2, Bank3 0= Bank0, Bank1

Οργάνωση Υπολογιστών (IΙI)

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

Δυαδικό Σύστημα Αρίθμησης

Το κύκλωμα σε breadboard

ΕΓΧΕΙΡΙΔΙΟ ΛΕΙΤΟΥΡΓΙΑΣ ΕΤ4000

Όταν το πρόγραμμα φτάσει σε αυτή την εντολή και ο καταχωρητής PINA έχει την τιμή

Keyboard. Ασσιούρας Ιωάννης 5593 Βούκας Ιωάννης 5001 Πρωτονοτάριος Ιωάννης 6072

ΜΙΚΡΟΕΛΕΓΚΤΕΣ ΘΕΜΑΤΑ ΦΕΒ Ημ/νία:

Lab 1: Experimenting on Arduino & AI Sense

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

Εισαγωγή στην Αρχιτεκτονική Η/Υ

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

*Ένας υπολογιστής είναι στην πραγματικότητα ένα σύστημα πολλών μερών που συνεργάζονται μεταξύ τους.

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

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

Εφαρμογές Αναλογικών Ε/Ε PWM (pulse Width Modulation)

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

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων.

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

Εισαγωγή στην πληροφορική -4

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

Transcript:

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

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

Ενσωματωμένα Συστήματα Embedded Systems Ορισμός Είναι ένα συγκεκριμένου σκοπού (single-purpose) ενσωματωμένο υπολογιστικό υποσύστημα ενός συνολικού συστήματος που έχει ως σκοπό την επίβλεψη και τον έλεγχο του συστήματος αυτού. Υλοποίηση Υπάρχουν πολλές παραλλαγές στην υλοποίηση ενσωματωμένων συστημάτων. Συνήθως είναι μικρού μεγέθους συσκευές οι οποίες αποτελούνται από 3 απαραίτητα στοιχεία: i. Μικροελεγκτές/ Μικροεπεξεργαστές ii. Μνήμη iii. Διεπαφές με το περιβάλλον

Ενσωματωμένα Συστήματα Embedded Systems Ορισμός Είναι ένα συγκεκριμένου σκοπού (single-purpose) ενσωματωμένο υπολογιστικό υποσύστημα ενός συνολικού συστήματος που έχει ως σκοπό την επίβλεψη και τον έλεγχο του συστήματος αυτού. Υλοποίηση Υπάρχουν πολλές παραλλαγές στην υλοποίηση ενσωματωμένων συστημάτων. Συνήθως είναι μικρού μεγέθους συσκευές οι οποίες αποτελούνται από 3 απαραίτητα στοιχεία: i. Μικροελεγκτές/ Μικροεπεξεργαστές ii. Μνήμη iii. Διεπαφές με το περιβάλλον ΠΡΟΣΟΧΗ! Η έννοια «ενσωματωμένο» έχει να κάνει με τις λειτουργίες και όχι με το μέγεθος ή τις δυνατότητες.

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

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

Ενσωματωμένα Συστήματα Embedded Systems Πλατφόρμες και Λογισμικό Υπάρχουν διάφορες πλατφόρμες που χρησιμοποιούν διαφορετικού τύπου λογισμικό. Χωρίζονται σε δύο κύριες κατηγορίες: Συστήματα με μικροελεγκτές (μc) Χρησιμοποιούνται γενικώς για πολύ συγκεκριμένες λειτουργίες. Δεν διαθέτουν κάποιο λειτουργικό σύστημα. Ο προγραμματισμός τους γίνεται είτε με χαμηλού επιπέδου assemply(architecture-specific) ή ειδικές εκδόσεις της C. Συστήματα με μικροεπεξεργαστές (μp) Οι δυνατότητες τους και οι λειτουργίες τους είναι μεγαλύτερες από αυτές των μc. Συνήθως τρέχουν κάποιο «ελαφρύ» λειτουργικό σύστημα (Linux, QNX,VxWorks,*BSD) και επιδέχονται υψηλού επιπέδου προγραμματισμό. Παρέχουν όλες τις ευκολίες ενός Λ/Σ(multitasking, networking, κ.τ.λ)

Ενσωματωμένα Συστήματα Embedded Systems Πλατφόρμες και Λογισμικό Υπάρχουν διάφορες πλατφόρμες που χρησιμοποιούν διαφορετικού τύπου λογισμικό. Χωρίζονται σε δύο κύριες κατηγορίες: ΠΡΟΣΟΧΗ! Συστήματα με μικροελεγκτές (μc) Δεν πρέπει να γίνεται σύγχυση των ενσωματωμένων συστημάτων με έναν Χρησιμοποιούνται γενικώς για πολύ συγκεκριμένες λειτουργίες. Δεν διαθέτουν κανονικό υπολογιστή (PC). κάποιο λειτουργικό σύστημα. Ο προγραμματισμός τους γίνεται είτε με χαμηλού επιπέδου assemply(architecture-specific) ή ειδικές εκδόσεις της C. Προτερήματα μp Συστήματα Μικρότερο με μικροεπεξεργαστές μέγεθος (μp) Μικρότερη κατανάλωση ενέργειας Οι δυνατότητες Αυξημένη τουςαξιοπιστία και οι λειτουργίες τους είναι μεγαλύτερες από αυτές των μc. Συνήθως τρέχουν κάποιο «ελαφρύ» λειτουργικό σύστημα (Linux, QNX,VxWorks,*BSD) και επιδέχονται Μειονεκτήματα υψηλούμp επιπέδου προγραμματισμό. Παρέχουν όλες τις ευκολίες ενός Λ/Σ(multitasking, Μικρότερες networking, επιδόσεις κ.τ.λ) Λιγότερα περιφερειακά

Η Πλατφόρμα Robostix μc: AVR-ATmega 128 Μνήμες: 128 ΚΒ flash(program memory) 4KΒ SRAM(άμεσα προσπελάσιμη) 4ΚΒ EEPROM(έμμεσα προσπελάσιμη) Ι/Ο διεπαφές 8 channels 10bit ADC(analog to digital converters) 6PWMchannels 2UARTports Αρχιτεκτονική Atmel AVR (Advanced RISC -Reduced instruction set computing)

Η Πλατφόρμα Robostix Θύρες Εισόδου-Εξόδου (I/O)

Αρχιτεκτονική AVR 8-bit RISC instruction set 32Registers τουενόςbyte 3 είδη μνήμης (Flash, SRAM, EEPROM) Διάφορες Ι/Ο διεπαφές. Έχει σχεδιαστεί για να τρέχει compiled κώδικα C και όχι μόνο assembly.

Αρχιτεκτονική AVR 8-bit RISC instruction set 32Registers τουενόςbyte 3 είδη μνήμης (Flash, SRAM, EEPROM) Διάφορες Ι/Ο διεπαφές. Έχει σχεδιαστεί για να τρέχει compiled κώδικα C και όχι μόνο assembly.

Αρχιτεκτονική AVR 8-bit RISC instruction set 32Registers τουενόςbyte 3 είδη μνήμης (Flash, SRAM, EEPROM) Διάφορες Ι/Ο διεπαφές. Έχει σχεδιαστεί για να τρέχει compiled κώδικα C και όχι μόνο assembly.

Η Πλατφόρμα Gumstix Verdex XM4 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)

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

μυ και Ψηφιακός Έλεγχος Τέλος Παρουσίασης 1

Έλεγχος με μικροϋπολογιστές μυ και Ψηφιακός Έλεγχος Παρουσίαση 2: Βασικός Προγραμματισμός AVR (AVR-lib)

Η Πλατφόρμα Robostix μc: AVR-ATmega 128 Μνήμες: 128 ΚΒ flash(program memory) 4KΒ SRAM(άμεσα προσπελάσιμη) 4ΚΒ EEPROM(έμμεσα προσπελάσιμη) Ι/Ο διεπαφές 8 channels 10bit ADC(analog to digital converters) 6PWMchannels 2UARTports Αρχιτεκτονική Atmel AVR (Advanced RISC -Reduced instruction set computing)

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

Προγραμματισμός Robostix Προγραμματισμός σε C Υπάρχουν εξειδικευμένοι compilers που μπορούν να παράξουν εκτελέσιμο κώδικα για τους μικροελεγκτές της οικογένειας AVR, π.χ. AVR-GCC. Cross-compiling Χρήση compiler σε έναν κοινό υπολογιστή. Ο κώδικας που παράγεται δεν μπορεί να τρέξει στον ίδιο τον Η/Υ απευθείας, λόγω διαφοράς αρχιτεκτονικής. Emulator Εφόσον είναι επιθυμητή, είναι δυνατή η εκτέλεση του κώδικα που παράγει ο compiler σε έναν προσομοιωτή, χρησιμοποιώντας έναν κοινό υπολογιστή. Ο προσομοιωτής δίνει πρόσβαση στην εσωτερική κατάσταση του μικροελεγκτή και μπορεί να χρησιμοποιηθεί για τον έλεγχο της ομαλής λειτουργίας του προγράμματος.

AVR C Ροή Προγράμματος Σειριακή εκτέλεση Το πρόγραμμα που υλοποιούμε σε AVR C εκτελείτε σειριακά. ΕΞΑΙΡΕΣΗ!: ISR(Interrupt Service Routine) Έναρξη προγράμματος Κάθε πρόγραμμα στην AVR C ξεκινάει από την συνάρτηση main() Memory-mapped I/O Οι διάφορες είσοδοι/έξοδοι του μικροελεγκτή εμφανίζονται ως κοινές, σταθερές θέσεις μνήμης μέσα στο χώρο μνήμης του προγράμματος.

AVR C Interrupts Σειριακή εκτέλεση Το πρόγραμμα που υλοποιούμε σε AVR C εκτελείτε σειριακά. Τι γίνεται όταν χρειάζεται άμεση ανταπόκριση από εξωτερικά γεγονότα; Interrupts Ορισμός Ειδικά «κανάλια» επικοινωνίας, τα οποία προκαλούν τη διακοπή της κανονικής εκτέλεσης του προγράμματος και την εκτέλεση κώδικα σε συγκεκριμένες θέσεις μνήμης(interrupt Handler ή Interrupt Service Routine- ISR). Τύποι Υπάρχουν εξωτερικά και εσωτερικά interrupts: Εσωτερικά είναι τα interrupts που έχουν σχέση με την ίδια την κατάσταση του μικροελεγκτή, π.χ.«έγινε υπερχείλιση ενός counter». Εξωτερικά είναι τα interrupts που προκαλούνται από το περιβάλλον, π.χ. «υπάρχουν διαθέσιμα δεδομένα στη σειριακή θύρα». Ο μικροελεγκτής διαθέτει επιπλέον εισόδους που προκαλούν interrupts. *Μετά την ολοκλήρωση εκτέλεσης του ISR, ο μικροελεγκτής επιστρέφει στην προηγούμενη θέση στο πρόγραμμα.

AVR C Interrupts Σειριακή εκτέλεση Το πρόγραμμα που υλοποιούμε σε AVR C εκτελείτε σειριακά. Τι γίνεται όταν χρειάζεται άμεση ανταπόκριση από εξωτερικά γεγονότα; Interrupts Ορισμός Ειδικά «κανάλια» επικοινωνίας, τα οποία προκαλούν τη διακοπή της κανονικής εκτέλεσης του προγράμματος και την εκτέλεση κώδικα σε συγκεκριμένες θέσεις μνήμης(interrupt Handler ή Interrupt Service Routine- ISR). Τύποι ΠΡΟΣΟΧΗ! Υπάρχουν εξωτερικά και εσωτερικά interrupts: Εσωτερικά είναι τα interrupts που έχουν σχέση με την ίδια την κατάσταση του Τα μικροελεγκτή, interrupts επιτρέπουν π.χ.«έγινε την υπερχείλιση άμεση εξυπηρέτηση ενός counter». έκτακτων αιτημάτων, με αντίτιμο Εξωτερικά τη μη-προβλέψιμη είναι τα interrupts συμπεριφορά που προκαλούνται του κώδικα. από το περιβάλλον, π.χ. (event-based «υπάρχουν vs. διαθέσιμα Poll based) δεδομένα στη σειριακή θύρα». Ο μικροελεγκτής διαθέτει επιπλέον εισόδους που προκαλούν interrupts. *Μετά την ολοκλήρωση εκτέλεσης του ISR, ο μικροελεγκτής επιστρέφει στην προηγούμενη θέση στο πρόγραμμα.

AVR C Βιβλιοθήκη avr-libc Για τον προγραμματισμό ενός AVR μας παρέχεται μια έτοιμη βιβλιοθήκη. Πρόκειται για μια βιβλιοθήκη C που περιέχει έτοιμες συναρτήσεις και μακροεντολές για την διευκόλυνση του προγραμματισμού των μικροελεγτών. Χαρακτηριστικά Ιδιότητες Γίνεται στατικά link μέσα στο ίδιο το πρόγραμμα Είναι χωρισμένη σε ενότητες(modules), με τη μορφή κανονικών header files Αξιοποιεί τις δυνατότητες του ίδιου του hardware και προσφέρει και εξομοίωση σε επίπεδο λογισμικού για χαρακτηριστικά που δεν υπάρχουν στο ίδιο το hardware.

AVR C Ι/Ο Είσοδος-Έξοδος Θύρες Εισόδου-Εξόδου Ο 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 εισόδου. Στις περισσότερες εφαρμογές συνιστάται η ενεργοποίηση των αντιστάσεων pullup,δηλαδήητιμή 1στις αντίστοιχες θέσεις τουportx.

AVR C Ι/Ο Είσοδος-Έξοδος Θύρες Εισόδου-Εξόδου του Robostix To Robostix διαθέτει διάφορες διεπαφές με το περιβάλλον. Οι κυριότερες είναι οι εξής: GPIO:PortAκαιPortC Την Port C μπορούμε να την χρησιμοποιήσουμε ως ψηφιακή είσοδο/έξοδο (digital I/O) A/D:PortF(8Κανάλια) PWM:PortB(bits 5-7)καιPortE(bits 3-5)(6 κανάλια) Interupts: Port G(bits 0-2) (3 εξωτερικά interupts) LEDs: PortG(bit3) <-Μπλε LED PortG(bit4) <-ΚόκκινοLED PortB(bit4) <-Κίτρινο LED

AVR C Ι/Ο Είσοδος-Έξοδος Θύρες Εισόδου-Εξόδου του Robostix

AVR C Βασικά header files Μετά-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/Oregέχει τιμή 0ή1αντίστοιχα. loop_until_bit_is_clear(reg,bit) και loop_until_bit_is_set(reg,bit) : Σταματούν την εκτέλεση του προγράμματος μέχρι το bit στη θέσηbit της θύρας I/Oreg έχει τιμή 0 ή 1 αντίστοιχα.

AVR C Βασικά header files <avr/io.h>- Παραδείγματα Αλλαγήτουbit7τηςθύρας Bσε 1 PORTB =_BV(PB7); Αλλαγήτουbit4τηςθύρας Aσε 0 PORTA&= ~_BV(PA4); Ενέργεια μεβάσητηντιμή ενός bit if(bit_is_set(pinb, PB1)){ PORTA&=~_BV(PA2); } Αναμονή για μια συνθήκη loop_until_bit_is_clear(pina, PA2); PORTB =_BV(PB2);

AVR C Βασικά header files <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 <avr/math.h> To header file <avr/math.h> περιλαμβάνει μαθηματικούς ορισμούς και συναρτήσεις για τον χειρισμό αριθμητικών δεδομένων Τύποι ορισμών Σταθερές M_PI = π Μ_SQRT2= NAN=NotANumber INFINITY = άπειρο Συναρτήσεις cos(),sin(),tan(),atan(),sqrt(),square(),exp()κ.τ.λ. *Αρκετές από αυτές δεν υποστηρίζονται από το hardware απευθείας και είναι αργές.

AVR C Βασικά header files <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 <util/delay.h> To header file <util/delay.h> περιλαμβάνει συναρτήσεις για την υλοποίηση των χρονοκαθυστερήσεων. Οι χρονοκαθυστερήσεις γίνονται με busy-wait: ο μικροελεγkτής καταναλώνει κύκλους ρολογιού ΠΡΟΣΟΧΗ! χωρίς να προβαίνει σε καμία ενέργεια (no-op). Η διάρκεια του κύκλου ρολογιού εξαρτάται απο τη συχνότητα του επεξεργαστή Τύποι Οιορισμών συναρτήσεις αυτές απαιτούν τον ορισμό της σταθεράς F_CPU η οποία πρέπει να έχει τιμή ίση με τη συχνότητα λειτουργίας του μικροελεγκτή σε Hz. Συναρτήσεις H μέγιστη χρονοκαθυστέρηση που μπορεί να δώσει η delay_ms είναι: _delay_ms(amount) : Καθυστέρηση amount ms _delay_us(amount) : Καθυστέρηση amount μs

AVR C Ολοκληρωμένο Παράδειγμα /* 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);

μυ και Ψηφιακός Έλεγχος Τέλος Παρουσίασης 2

Έλεγχος με μικροϋπολογιστές μυ και Ψηφιακός Έλεγχος Παρουσίαση 3: Παρουσίαση Ασκήσεων Εργαστήριο Αυτομάτου Ελέγχου

Σκοπός εργαστηριακών ασκήσεων Έλεγχος απλών ηλεκτρικών κυκλωμάτων μέσω της πλατφόρμας Robostix. Χρήση μόνο D/IO Interfaces Προγραμματισμός μυ με χρήση avr-libc σε γλώσσα C

Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED Να ανιχνεύσετε το πάτημα ενός διακόπτη Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα

Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED Να ανιχνεύσετε το πάτημα ενός διακόπτη Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα

Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED o Στα pins του μ-υ υπάρχουν διαθέσιμες τάσεις 5V. o Υπάρχουν διαθέσιμα pins γείωσης (GND) o Το λογικό 1 σε ένα pinαντιστοιχεί σε τάση5v. o Το λογικό 0 σε ένα pinαντιστοιχεί σε τάση 0V. o Για να μειώσουμε το ρεύμα τροφοδοσίας ενός LED συνδέουμε σε σειρά μια αντίσταση (5-10KΩ). ΕΡΓΑΣΤΗΡΙΟ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ & ΡΥΘΜΙΣΕΩΣ ΜΗΧΑΝΩΝ & ΕΓΚΑΤΑΣΤΑΣΕΩΝ Ε.Μ.Π

Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED o Γίνεται ρύθµιση ενός bit µιας θύρας σαν έξοδο, και στέλνεται σε αυτό το λογικό 1 (5V)

Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED Να ανιχνεύσετε το πάτημα ενός διακόπτη Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα

Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Να ανιχνεύσετε το πάτημα ενός διακόπτη o Γίνεται ρύθμιση ενός bit μιας θύρας σαν είσοδος, και στέλνεται το σήμα εξόδου μετά τον διακόπτη

Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Να ανιχνεύσετε το πάτημα ενός διακόπτη ΕΡΓΑΣΤΗΡΙΟ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ & ΡΥΘΜΙΣΕΩΣ ΜΗΧΑΝΩΝ & ΕΓΚΑΤΑΣΤΑΣΕΩΝ Ε.Μ.Π

Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Ανάψετε ένα LED Να ανιχνεύσετε το πάτημα ενός διακόπτη Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα

Διασύνδεση με εξωτερικό περιβάλλον Πως θα χρησιμοποιήσετε τις λειτουργίες των θυρών A & C του μ-υ για να: Να επικοινωνήσετε με εξωτερικό ολοκληρωμένο κύκλωμα

ΑΣΚΗΣΕΙΣ

ΑΣΚΗΣΗ 1 Υλοποίηση Συστήματος Ασφαλείας με Χρήση Τριψήφιου Κωδικού Αριθμού Απαραίτητες γνώσεις Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης

ΑΣΚΗΣΗ 1 Υλοποίηση Συστήματος Ασφαλείας με Χρήση Τριψήφιου Κωδικού Αριθμού Περαιτέρω επισημάνσεις Ο κωδικός αριθμός θα ορίζεται εσωτερικά στον κώδικα και θα μπορεί να πάρει οποιαδήποτε ακέραια τιμή μεταξύ [000,999] Ο έλεγχος μπορεί να γίνεται και μετά την εισαγωγή του κάθε ψηφίου, αλλά θα τερματίζεται στην περίπτωση λανθασμένου αριθμού Τα LEDs θα παραμένουν αναμμένα για ικανό χρονικό διάστημα (1-2 sec)

ΑΣΚΗΣΗ 2 Υλοποίηση Συστήματος Ελέγχου Ολοκληρωμένου Κυκλώματος 7400 Απαραίτητες γνώσεις Άναμμα LED Ρουτίνες χρονικής καθυστέρησης

ΑΣΚΗΣΗ 2 Υλοποίηση Συστήματος Ελέγχου Ολοκληρωμένου Κυκλώματος 7400 Περαιτέρω επισημάνσεις Το πρόγραμμα θα εκτελεί και θα ελέγχει όλους τους πιθανούς συνδυασμούς και θα τερματίζεται στην περίπτωση που έστω ένας από αυτούς δεν ικανοποιείται Το κύκλωμα θα ελεγχθεί για την ορθότητά του με εισαγωγή ψευδών αποτελεσμάτων

ΑΣΚΗΣΗ 3 Υλοποίηση Συστήματος Μετρητή Αντικειμένων με υνατότητα Ελέγχου του Αποτελέσματος Απαραίτητες γνώσεις Σύστημα διακοπτών Ρουτίνες χρονικής καθυστέρησης Άναμμα LED

ΑΣΚΗΣΗ 3 Υλοποίηση Συστήματος Μετρητή Αντικειμένων με υνατότητα Ελέγχου του Αποτελέσματος Περαιτέρω επισημάνσεις Το αποτέλεσμα της μέτρησης απλά θα μεταφέρεται ως αριθμός σε δυαδική μορφή στη θύρα Α Τα LEDs θα παραμένουν αναμμένα για ικανό χρονικό διάστημα (1-2 sec) για διευκόλυνση του χρήστη

ΑΣΚΗΣΗ 4 Υλοποίηση Συστήματος Ελέγχου Πρόσβασης σε Κτίριο Απαραίτητες γνώσεις Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης

ΑΣΚΗΣΗ 4 Υλοποίηση Συστήματος Ελέγχου Πρόσβασης σε Κτίριο Περαιτέρω επισημάνσεις Η ρουτίνα χρονικής καθυστέρησης θα ελέγχει συνεχώς για πάτημα διακόπτη Η ρουτίνα χρονικής καθυστέρησης θα έχει με ακρίβεια τη δεδομένη χρονική διάρκεια

ΑΣΚΗΣΗ 5 Υλοποίηση Συστήματος Ελέγχου Ανελκυστήρα ιώροφης Οικοδομής Απαραίτητες γνώσεις Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης

ΑΣΚΗΣΗ 5 Υλοποίηση Συστήματος Ελέγχου Ανελκυστήρα ιώροφης Οικοδομής Περαιτέρω επισημάνσεις Η ρουτίνα χρονικής καθυστέρησης θα ελέγχει συνεχώς για πάτημα διακόπτη Η ρουτίνα χρονικής καθυστέρησης θα έχει με ακρίβεια τη δεδομένη χρονική διάρκεια

ΑΣΚΗΣΗ 6 Υλοποίηση Συστήματος Έξυπνων Φαναριών σε διαστάυρωση Απαραίτητες γνώσεις Σύστημα διακοπτών Άναμμα LED Ρουτίνες χρονικής καθυστέρησης

ΑΣΚΗΣΗ 5 Υλοποίηση Συστήματος Έξυπνων Φαναριών σε διαστάυρωση Περαιτέρω επισημάνσεις Η ρουτίνα χρονικής καθυστέρησης θα ελέγχει συνεχώς για πάτημα διακόπτη Θα υπάρχουν οι αναγκαίες χρονικές καθυστερήσεις μεταξύ της εναλλαγής σε πράσινο και κόκκινο σήμα

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

ΓΕΝΙΚΕΣ ΠΑΡΑΤΗΡΗΣΕΙΣ Ένα κακοφτιαγμένο και μη δομημένο κύκλωμα έχει ελάχιστες πιθανότητες να λειτουργήσει σωστά, ακόμα και αν ο προγραμματισμός είναι ορθός. Χρησιμοποιούμε πολύμετρο για να ελέγξουμε τις συνδέσεις του κυκλώματος, πριν να εφαρμόσουμε τάσεις σε αυτό. Για γείωση, χρησιμοποιούμε πάντα αυτή του μ/ε. (GND)

μυ και Ψηφιακός Έλεγχος Τέλος Παρουσίασης 3