ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Εισαγωγή Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε.
Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3
Προγραμματισμός και Η/N Μηχ. (1) Προγραμματισμός Βασική γνώση, απαραίτητη στην τριτοβάθμια εκπαίδευση των θετικών επιστημόνων Η γνώση του είναι προαπαιτούμενο για μεγάλο αριθμό άλλων μαθημάτων.. και ένα διασκεδαστικό παιχνίδι επίσης για κάποιους Προγραμματισμός ηλεκτρονικών συστημάτων Μια τεράστια αγορά εργασίας για τους ηλεκτρονικούς μηχανικούς Προγραμματισμός εφαρμογών Μια τεράστια αγορά για όλους τους κλάδους των επιστημών που άπτονται της πληροφορικής 4
Προγραμματισμός και Η/N Μηχ. (2) Η Ευρώπη δίνει ιδιαίτερη έμφαση στην εκπαίδευση των ηλεκτρονικών μηχανικών της σε θέματα προγραμματισμού PARADES 5
Προγραμματισμός και Η/N Μηχ. (3) Προγραμματισμός ηλεκτρονικών συστημάτων Οι εταιρείες όλων των τομέων (τηλεπικοινωνίες, αυτοκινητοβιομηχανίες, κ.α.) έχουν κοινή ανάγκη την εκπαίδευση των ηλεκτρονικών μηχανικών τους στο προγραμματισμό! Προσέξτε ότι δεν αναφερόμαστε σε εταιρείες λογισμικού!
Ανάπτυξη συστημάτων Οι ηλεκτρονικοί μηχανικοί σχεδιάζουν και κατασκευάζουν συστήματα (hardware+ software) Αν οι «υπολογιστές» μετρούνται σε εκατομμύρια, τα ηλεκτρονικά συστήματα με ενσωματωμένους υπολογιστές μετρούνται σε δισεκατομμύρια
Προγραμματισμός και γλώσσες προγραμματισμού (1) Προγραμματισμός Σημαντική γνώση που πρέπει να αποκτήσετε, ανεξάρτητα γλώσσας προγραμματισμού (διαγράμματα ροής, αλγόριθμοι, δομές δεδομένων κ.α.).. ανεξάρτητη τεχνολογίας Η φιλική γλώσσα για τον μαθητή είναι η Pascal ή ο ψευδοκώδικας (π.χ. αυτός που έχετε διδαχθεί στο λύκειο) Γλώσσα προγραμματισμού (όσο υψηλότερο το επίπεδο της εφαρμογής τόσο «φιλικότερη» συνήθως προς τον προγραμματιστή) Οι επαγγελματίες του λογισμικού συνήθως χρησιμοποιούν C++, Java, scripting languages, high level tools που παράγουν κώδικα, μεθοδολογίες κ.α.
Προγραμματισμός και γλώσσες προγραμματισμού (2) ΑΛΛΑ Οι ηλεκτρονικοί μηχανικοί συνήθως προγραμματίζουν στο χαμηλότερο (και δυσκολότερο) επίπεδο και έχουν γνώση του υλικού (hardware) Η γλώσσα προγραμματισμού των ηλεκτρονικών συστημάτων (όπως και των σκληρών πυρήνων του λογισμικού) είναι η C (η δυσκολότερη των γλωσσών) ΣΤΟΧΟΣ του μαθήματος και του εργαστηρίου είναι διπλός (άρα χρειάζεται διπλή προσπάθεια! ) 1) Η καλή γνώση του προγραμματισμού (ανεξαρτήτου γλώσσας) 2) Η καλή γνώση της γλώσσας C
Ανάπτυξη σύνθετων ηλεκτρονικών συστημάτων σχεδιασμός ηλεκτρονικού συστήματος (system design groups) σχεδιασμός αναλογικού υποσυστήματος (analog design groups) σχεδιασμός ψηφιακού υποσυστήματος (digital design groups) σχεδιασμός ψηφιακού υποσυστήματος επεξεργασίας σημάτων (DSP design groups) σχεδιασμός συστήματος ελέγχου υλοποίηση αναλογικού υποσυστήματος υλοποίηση ψηφιακού υποσυστήματος ολοκληρωμένα και στοιχεία (τμήματα components) σχεδιασμός PCB (PCB design τμήματα) υλοποίηση ειδικών ψηφιακών υποσυστημάτων (VHDL development, digital logic design, FPGA / VLSI design τμήματα) υλοποίηση λογισμικού ψηφιακού υποσυστήματος επεξεργασίας σημάτων (DSP processors software development groups) υλοποίηση λογισμικού μικροεπεξεργαστή (embedded software group) υλοποίηση λογισμικού ελέγχου του ψηφιακού υποσυστήματος υλοποίηση δικτυακού πρωτοκόλλου υλοποίηση άλλων εφαρμογών ολοκλήρωση πρωτοτύπου παραγωγή
Μεθοδολογία ανάπτυξης ηλεκτρονικών συστημάτων (1) System Specification Model (UML use cases & sequence diagrams) Executable System Specification (UML Objects) High-Level Model Simulation & Validation Mapping: HW/SW partition, interface Testing SW Design (Detailed Objects, Drivers) HW Interface (Specification, Design) HW Design (HW blocks) Low-Level Model co-simulation & Validation SW Integration HW Integration System Integration & System Testing Παράδειγμα μεθοδολογίας ανάπτυξης του πρωτοτύπου επεξεργαστή για ένα wireless terminal. Προσέξτε ότι το software είναι στην εικόνα από το αρχικό στάδιο του σχεδιασμού του συστήματος
Μεθοδολογία ανάπτυξης ηλεκτρονικών συστημάτων (2) Local Bu s PC I Bu s Channel #1 Channel #2 Channel #3 Channel #4 DM Controller A SDRAM controlle r PCI Controlle r &Bridg e Buffer SRAM irq fiq ARM7TDMI/ ARM9TDM I Timers, Watchdog, POCO, Aux. ARM's I/O DMA channel Interrupt Controller Auxiliary I/ O Local Bus #3 (Ext. System Bus) AH Bus B I/F AH Bus B I/F Local Bus #1 (Protocol/CL) Local/Cach e SRA M (Flash) ROM Tes t Port Test Controller AMB Arbite r AmBa AHB (Trunk Bus) AHB Bus I/F HIPERLAN/2 Baseban dd Processor & Modem Chip (1 ) Timers, Watchdog, irq ARM's DMA channel fiq Interrupt ARM7TDMI/ Controller ARM9TDMI Bus Isolation Local Bus #2 (User Plane) (Flash) ROM Local Bus #2 (User Plane) Local/Cach e SRAM RF- Ctrl I/ F Rate-Matching Buffers (Tx/Rx) Modem Analog / R Front F - End Παράδειγμα σχεδιασμού του ψηφιακού υποσυστήματος για το wireless terminal (δύο επεξεργαστές: ένας για το πρωτόκολλο και ένας για τον έλεγχο του physical layer). Επεξεργαστής είναι ο ARM7 και γλώσσα προγραμματισμού η C.
Μεθοδολογία ανάπτυξης ηλεκτρονικών συστημάτων (3) Παράδειγμα ανάπτυξης ενός wireless terminal
Τέλος Ενότητας