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



Σχετικά έγγραφα
ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

Ι ΑΣΚΩΝ ΚΑΘΗΓΗΤΗΣ: ΚΑΘΗΓΗΤΗΣ ΕΦΑΡΜΟΓΩΝ. ΤΕΙ ΥΤΙΚΗΣ ΜΑΚΕ ΟΝΙΑΣ

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

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

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

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

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

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

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

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

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

Κεφάλαιο 1.5: Τα βασικά μέρη ενός υπολογιστή

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

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

Κεντρική Μονάδα Επεξεργασίας

Βασικές Έννοιες της Πληροφορικής

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

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

Τεχνολογίες Κύριας Μνήμης

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ

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

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

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

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

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

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

WDT και Power Up timer

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

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

Αρχιτεκτονικές Συνόλου Εντολών

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

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

Σύστημα διασύνδεσης και. διαδικασία εισόδου-εξόδου

Το υλικό του υπολογιστή

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

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

Βασίλειος Κοντογιάννης ΠΕ19

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

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

CTMU. => C = 50pF 10pF = 40 pf. C stray. d (C V ) I= I = C V. C= I t. Ι = dq dt

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

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

Βασική δοµή και Λειτουργία Υπολογιστή

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

Ηλεκτρονικοί Υπολογιστές Δ Εξάμηνο

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

Φουκαράκη Χρυσούλα - ΓΕΛ Γαζίου

Δομή Ηλεκτρονικού υπολογιστή

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

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Μαλούτα Θεανώ Σελίδα 1

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

ΠΛΗΡΟΦΟΡΙΚΗ 4 ο Μάθημα. Το Υλικό του Υπολογιστή

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

; Τι περιέχεται στη συσκευασία ενός μικροεπεξεργαστή σήμερα;

Χρ. Καβουσιανός Επίκουρος Καθηγητής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

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

Εκτέλεση προγράμματος

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

1. Ηλεκτρικοί κινητήρες- σερβοκινητήρας 2. Ελεγκτές. ΜΠΔ, 9 Ο Εξάμηνο Σάββας Πιπερίδης

Συστήματα σε Ολοκληρωμένα Κυκλώματα

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

Εφαρμογές Σειριακής Επικοινωνίας

ΘΕΜΑ : ΗΛΕΚΤΡΟΝΙΚΗ ΜΝΗΜΗ ΚΑΙ ΜΙΚΡΟΕΛΕΓΚΤΕΣ. ΔΙΑΡΚΕΙΑ: 1 περίοδος

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Λειτουργίες CNC-DNC. Επισκόπηση λειτουργιών CNC Επισκόπηση λειτουργιών DNC Επικοινωνίες. Λειτουργίες CNC-DNC. Γ.Βοσνιάκος-ΕΡΓΑΛΕΙΟΜΗΧΑΝΕΣ

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

- Δομή πλαισίου Ethernet - Πλαίσια Ethernet μεγάλου μεγέθους (Jumbo frames)

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

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

Κεφάλαιο 7. Αρχιτεκτονική υπολογιστών βασικές έννοιες

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: ΣΥΣΤΗΜΑΤΩΝ ΚΑΙ ΑΥΤΟΜΑΤΟΥ ΕΛΕΓΧΟΥ ΚΑΤΑΣΚΕΥΗ ΟΘΟΝΗΣ ΠΟΛΛΑΠΛΩΝ ΕΝΔΕΙΞΕΩΝ ΓΙΑ ΗΛΕΚΤΡΙΚΟ ΟΧΗΜΑ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ του ΙΣΑΑΚ Σ. ΝΤΖΑΝΙΔΗ Επιβλέπων: Δερματάς Ευάγγελος Αναπληρωτής Καθηγητής Πανεπιστημίου Πατρών Αριθμός Διπλωματικής Εργασίας: Πάτρα, Ιούλιος 2013

ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «ΚΑΤΑΣΚΕΥΗ ΟΘΟΝΗΣ ΠΟΛΛΑΠΛΩΝ ΕΝΔΕΙΞΕΩΝ ΓΙΑ ΗΛΕΚΤΡΙΚΟ ΟΧΗΜΑ» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Ντζανίδη Ισαάκ του Σέργιου Αριθμός Μητρώου: 6043 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις 29/07/2013 Ο Επιβλέπων Ο Διευθυντής του Τομέα Δερματάς Ευάγγελος, Αναπληρωτής Καθηγητής Κούσουλας Νικόλαος, Καθηγητής

Αριθμός Διπλωματικής Εργασίας: Θέμα: «ΚΑΤΑΣΚΕΥΗ ΟΘΟΝΗΣ ΠΟΛΛΑΠΛΩΝ ΕΝΔΕΙΞΕΩΝ ΓΙΑ ΗΛΕΚΤΡΙΚΟ ΟΧΗΜΑ» Φοιτητής: Ντζανίδης Ισαάκ του Σέργιου Επιβλέπων: Δερματάς Ευάγγελος

Ευχαριστίες Θα ήθελα καταρχήν να ευχαριστήσω όλους όσους συνέλαβαν με οποιονδήποτε τρόπο στην επιτυχή εκπόνηση αυτής της διπλωματικής εργασίας. Θα ήθελα να ευχαριστήσω θερμά τον Αν. Καθηγητή Ευάγγελο Δερματά για την επίβλεψη αυτής της διπλωματικής εργασίας. Ήταν πάντα διαθέσιμος να μου προσφέρει τις γνώσεις και την εμπειρία του για την βαθύτερη κατανόηση της περιοχής των ολοκληρωμένων συστημάτων. Στη συνέχεια, ευχαριστώ ιδιαίτερα τον Επ. Καθηγητή Επαμεινώνδα Μητρονίκα, ο οποίος ήταν αυτός που έστρεψε την προσοχή μου στο πεδίο των ολοκληρωμένων συστημάτων, με ενθάρρυνε και συνέβαλε στην απόφαση μου να αναλάβω την παρούσα διπλωματική εργασία. Έπειτα, θα ήθελα να ευχαριστήσω τους καθηγητές του τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών του Πανεπιστημίου Πατρών που με καθοδήγησαν τα τελευταία χρόνια στο πολύ ενδιαφέρον και ευρύ αντικείμενο του ηλεκτρολόγου μηχανικού. Σε αυτό το σημείο θα ήθελα να ευχαριστήσω τους ανθρώπους, εκτός του ακαδημαϊκού περιβάλλοντος, που υπήρξαν σημαντική πόλοι στη ζωή μου. Θέλω να ευχαριστήσω τους φίλους μου, που ήταν, και ελπίζω να παραμείνουν στη ζωή μου, παρά τη μεγάλη απόσταση που μας χωρίζει. Ξεχωριστά θα ήθελα να ευχαριστήσω τον παιδικό μου φίλο Β.Π που από την ηλικία των 10 ετών μου μέχρι και σήμερα δεν έπαψε ποτέ να είναι στη ζωή μου παρόλο που κάποιες περιόδους μας χώριζαν αποστάσεις άνω των χιλίων χιλιομέτρων. Ένα μεγάλο ευχαριστώ στην οικογένεια μου που στήριξε τις σπουδές μου με οποιονδήποτε τρόπο. Την παρούσα διπλωματική εργασία την αφιερώνω σε ένα άτομο καταλύτη όλων των προσπαθειών μου, ακαδημαϊκών και μη, στην κοπέλα μου Α.Φ. 1

2

Περίληψη Στην παρούσα διπλωματική εργασία, παρουσιάζεται η ανάπτυξη συναρτήσεων και ρουτινών, οι οποίες χρησιμοποιούνται για την ψηφιακή απεικόνιση διάφορων οργάνων μέτρησης του πίνακα ενός ηλεκτρικού οχήματος, πάνω σε οθόνη TFT LCD ολοκληρωμένου συστήματος. Στην εισαγωγή της εργασίας παρουσιάζεται αναδρομικά η εξέλιξη του αυτοκινήτου και των διάφορων οργάνων μέτρησης, τα οποία χρησιμοποιήθηκαν για την αποτύπωση σημαντικών πληροφοριών, όπως είναι η ταχύτατα. Στην συνέχεια, γίνεται αναφορά σε στοιχεία των ψηφιακών συστημάτων απεικόνισης, όπως είναι ο μικροεπεξεργαστής, η οθόνη υγρών κρυστάλλων TFT LCD και το δίκτυο CAN. Στο 2 ο κεφάλαιο, αναλύεται το υλικό του ολοκληρωμένου συστήματος LPC2478 STK, το οποίο χρησιμοποιήθηκε για την υλοποίηση του ψηφιακού πίνακα οργάνων. Ιδιαίτερη έμφαση δίνεται στον μικροεπεξεργαστή LPC2478 αρχιτεκτονικής ARM, στην οθόνη LCD TFT και στον ελεγκτή CAN δικτύου. Στην συνέχεια, στο 3 ο κεφάλαιο, παρουσιάζεται το λογισμικό περιβάλλον IAR Embedded Workbench, που χρησιμοποιήθηκε στα πλαίσια της διπλωματικής εργασίας, για την σύνταξη των συναρτήσεων και των ρουτινών. Δίνεται μια γενική εικόνα των δυνατοτήτων του λογισμικού πακέτου και αναλύονται τα σημαντικότερα εργαλεία του: ο μεταγλωττιστής (compiler), ο συμβολομεταφραστής (assembler), το πρόγραμμα διασύνδεσης (linker) και ο αποσφαλματωτής (debugger). Τέλος, στο 4 ο κεφάλαιο, αναλύονται όλες οι συναρτήσεις και οι ρουτίνες που αναπτύχθηκαν για την εκπόνηση της εργασίας αυτής. Οι συναρτήσεις χωρίζονται σε δύο αρχεία βιβλιοθηκών, το mygraphics.c και το mynumbers.c. Οι ρουτίνες που υλοποιούν τα ψηφιακά όργανα, βρίσκονται στο αρχείο mywork.c. Για την εποπτεία της ορθής λειτουργίας των ρουτινών αναπτύσσεται μια εφαρμογή Demo στην οποία παράγονται πειραματικές τιμές ταχύτητας, θερμοκρασίας κινητήρα και στάθμης φόρτωσης μπαταρίας, οi οποίες εκτυπώνονται στην οθόνη του LPC2478STK board. 3

4

Περιεχόμενα 1 ΕΙΣΑΓΩΓΗ 9 1.1 Το αυτοκίνητο 9 1.2 Πίνακας οργάνων και όργανα μέτρησης αυτοκινήτου 10 1.3 Ψηφιακά συστήματα απεικόνισης στα αυτοκίνητα 11 1.4 Οθόνες υγρών κρυστάλλων LCD, TFT 13 1.5 Δίκτυα CAN 14 1.6 Μικροεπεξεργαστές 19 1.6.1 Η εμφάνιση των μικροεπεξεργαστών 12 1.6.2 Οργάνωση μικροεπεξεργαστή 20 1.6.3 Τρόπος λειτουργίας 20 2 ΥΛΙΚΟ ΕΡΓΑΣΙΑΣ 22 2.1 Αρχιτεκτονική ARM 22 2.1.1 Η εμφάνιση της Αρχιτεκτονικής ARM 22 2.1.2 Βασικά χαρακτηριστικά Αρχιτεκτονικής ARM 23 2.2 LPC2478 μικροεπεξεργαστής 28 2.3 Η πλακέτα LPC2478STK 28 2.3.1 Αρχιτεκτονική του LPC2478STK 33 2.3.2 Ενσωματωμένη flash μνήμη προγραμματισμού, τύπου flash 33 2.3.3 Ενσωματωμένη SRAM 33 2.3.4 Χάρτης μνήμης 34 2.3.5 Ελεγκτής διακοπών 35 2.3.6 Πηγές διακοπών 35 2.3.7 Τμήμα σύνδεσης ακροδεκτών 35 2.3.8 Ελεγκτής εξωτερικής μνήμης 35 2.3.9 Ελεγκτής γενικού σκοπού GPDMA (General Purpose Direct Memory Access) 36 2.3.10Ακροδέκτες παράλληλων Εισόδου/Εξόδου 36 2.3.11 Ελεγκτής Ethernet 37 2.3.12 Μετασχηματιστής ADC (Analog-to-Digital Converter) 37 2.3.13 Μετασχηματιστής DAC Digital-to-Analog Converter 37 5

2.3.14 Γενικοί ασύγχρονοι πομποδέκτες 38 2.3.15 Περιφερειακή Σειριακή Διεπαφή SPI (Serial Peripheral Interface) 38 2.3.16 Ελεγκτής σύγχρονων σειριακών θυρών Εισόδου/Εξόδου 38 2.3.17 Διεπαφή (SD/MMC/ MCI ) card. 38 2.3.18 Ελεγκτής I 2 C-bus (Inter-Integrated Circuit) 38 2.3.19 Ελεγκτής σειριακής Εισόδου/Εξόδου καναλιού I 2 S 39 2.3.20 Χρονόμετρα/απαριθμητές εξωτερικών γεγονότων 39 2.3.21 Διαμορφωτής εύρους παλμού (Pulse Width Modulator PWM) 39 2.3.22 Watchdog timer 39 2.3.23 Ρολόι πραγματικού χρόνου (RTC) και RAΜ με μπαταρία 40 2.3.24 Έλεγχος ρολογιών-κατανάλωσης ενέργειας 40 2.3.25 Κρυσταλλικοί ταλαντωτές 41 2.3.26 Έλεγχος ενέργειας και διατάξεις παροχής 41 2.3.27 Θερμικά χαρακτηριστικά 43 2.3.28 Ελεγκτής LCD 43 2.3.29 Οθόνη LCD 44 2.3.30 CAN ελεγκτής και φίλτρα παραλαβής 47 2.4 Συσκευή Jtag 47 3 ΛΟΓΙΣΜΙΚΟ ΕΡΓΑΣΙΑΣ 49 3.1 IAR Embedded Workbench (IEW) 49 3.2 Μεταγλωττιστής 51 3.2.1 Δομή του μεταγλωττιστή 52 3.2.2 Μεταγλωττιστής IAR C/C++ του IEW 53 3.3 Συμβολομεταφραστής IAR (Assembler) 54 3.4 Πρόγραμμα σύνδεσης (IAR Linker) 55 3.5 Αποσφαλματωτής 56 3.5.1 Αποσφαλματωτής IAR C-SPY 57 3.5.2 Πρόγραμμα οδήγησης C-SPY GDB Server-OpenOCD 60 4 ΥΛΟΠΟΙΗΣΗ 63 4.1 Προσδιορισμός απαιτήσεων εργασίας-προετοιμασία 63 4.2 Βασικοί ορισμοί 64 4.3 Σύνταξη των βασικών συναρτήσεων 66 4.3.1 Συναρτήσεις του αρχείου mygraphics.c 66 4.3.2 Συναρτήσεις του αρχείου mynumbers.c 73 6

4.3.3 Ρουτίνες του αρχείου mywork.c 75 4.4 Ψηφιακός πίνακας οργάνων-demo με πειραματικές τιμές 79 4.5 Συμπεράσματα-Μελλοντικές επεκτάσεις 82 4.5.1 Προσαρμογή σε συστήματα πραγματικού χρόνου RTOS (Real Time Operating Systems) 82 4.5.2 Δυνατότητες επέκτασης 82 Παράρτημα Α 83 Παράρτημα B 101 Παράρτημα Γ 110 Πίνακας Συντομογραφιών 121 Βιβλιογραφία 123 7

8

Κεφάλαιο 1 ο Εισαγωγή Κεφάλαιο 1 ΕΙΣΑΓΩΓΗ. 1.1 Το αυτοκίνητο. Το πρώτο αυτοκίνητο όχημα, ένα αυτοκινούμενο αμάξι, το fardier, παρουσιάστηκε στην Γάλλια,το 1769 από τον Νικολά Κουνιό (Nicolas Jοseph Cugnot). Αργότερα μετά από 92 χρόνια, ο Ετιέν Λενουάρ (Etienne Lenoir) έφτιαξε το πρώτο αυτοκίνητο με μηχανή εσωτερικής καύσης. 1 Αυτοκίνητα με μηχανές εσωτερικής καύσης παράχθηκαν για πρώτη φορά στην Γερμανία από τον Καρλ Μπένζ (Κarl Benz) το 1885-1886 και τον Γκότλιμπ Νταίμλερ (Gotlieb Daimler) ανάμεσα στο 1886 και το 1889. Η παραγωγή επιβατικών αυτοκινήτων συνεχίστηκε και διαδόθηκε και σε άλλες χώρες. Το 1891 τα πρώτα αυτοκίνητα στις ΗΠΑ κατασκευάσθηκαν από τον Τζον Λάμπερτ {John Lambert). Το 1908 παράγεται και διοχετεύεται στην αγορά το αυτοκίνητο - ιστορικός σταθμός της αυτοκίνησης το Ford Model T, το οποίο στοίχιζε μόλις 950 δολάρια. Απο τότε η αυτοκινητοβιομηχανία αναπτύχθηκε με αλματώδεις ρυθμούς σε πολλές χώρες. Τα περισσότερα αυτοκίνητα σήμερα χρησιμοποιούν ως καύσιμο βενζίνη ή πετρέλαιο ντίζελ, τα οποία προκαλούν μόλυνση της ατμόσφαιρας και κατηγορούνται ότι συμβάλλουν στην κλιματική αλλαγή και στο φαινόμενο του θερμοκηπίου, καθώς στα καυσαέρια περιέχονται διοξείδιο του άνθρακα, μονοξείδιο του άνθρακα, οξείδια του αζώτου, του θείου και στερεά μικροσωματίδια. Γίνονται, όμως, σημαντικές προσπάθειες για την κατασκευή αυτοκινήτων οχημάτων, που προκαλούν λιγότερους ρύπους, όπως τα υβριδικά και αυτά αποκλειστικά με ηλεκτροκίνηση. Τα τελευταία χρόνια έχει διατεθεί ένας μικρός αριθμός μοντέλων με ηλεκτροκίνηση, όπως το σπορ ηλεκτροκίνητο Tesla Roadster και έχει αναγγελθεί η παραγωγή αρκετών μελλοντικών μοντέλων, όπως τα τρίδυμα Mitsubishi i MiEV / Peugeot ion / Citroën C-Zero που κυκλοφόρησαν στα τέλη του 2010. Σήμερα ωστόσο, τα περισσότερα εξακολουθούν να είναι πρωτότυπα, ενώ ορισμένα έχουν διατεθεί σε περιορισμένα αντίτυπα, όπως το Subaru Stella, με μόλις 170 αντίτυπα. 1 Ένα χρόνο αργότερα ο Λενουάρ πραγματοποίησε το πρώτο ταξίδι με αυτοκίνητο στον κόσμο καλύπτοντας κυκλική διαδρομή 19,3 χμ. με μέση ταχύτητα 6,4 χμ/ώρα και ισχύ μόλις 0,5 ίππους. 9

Κεφάλαιο 1 ο Εισαγωγή 1.2 Πίνακας οργάνων και όργανα μέτρησης αυτοκινήτου. Ο οδηγός ενός αυτοκινήτου έχει την ανάγκη να γνωρίζει κάποιες σημαντικές πληροφορίες, όπως είναι η ταχύτητα του αυτοκινήτου, η θερμοκρασία του κινητήρα, οι στροφές του κινητήρα, η στάθμη λαδιού κ.α. ώστε να μπορέσει αφ ενός να ενημερωθεί έγκαιρα για κάποια βλάβη η δυσλειτουργία και αφ ετέρου να προλάβει καταστροφή σημαντικών τμημάτων του αυτοκινήτου,όπως είναι ο κινητήρα, και να οδηγήσει με περισσότερη ασφάλεια το όχημα. Μία από τις απαιτήσεις αυξημένης ασφάλειας της δεκαετίας του 1970 ήταν η διαδεδομένη υιοθέτηση των ταμπλό με πολλά όργανα και ενδείξεις. Το ταμπλό σε ένα αυτοκίνητο είναι ένα πλαίσιο το οποίο βρίσκεται κάτω από το παρμπρίζ και περιέχει τον πίνακα οργάνων. Ο πίνακας οργάνων περιέχει τους μετρητές οργάνων, όπως το ταχύμετρο, το στροφόμετρο, τον χιλιομετρητή, το μετρητή καυσίμων κ.α. 2 Μέχρι τη δεκαετία του 1970, ορισμένα μοντέλα διέθεταν και αμπερόμετρο, για την απεικόνιση της κατάστασης του συστήματος ηλεκτρικής φόρτωσης, το οποίο μετά αντικαταστάθηκε από το βολτόμετρο. Επιπλέον, ορισμένοι πίνακες οργάνων μπορεί να διαθέτουν και δείκτη πίεσης λαδιού ή πολύ σπάνια ακόμα και θερμόμετρο λαδιού. Στην Εικόνα 1.1 φαίνεται ένα ταμπλό με μηχανικά όργανα απεικόνισης μετρήσεων από διάφορες σημαντικές παραμέτρους, όπως οι στροφές ανά λεπτό RPM, θερμοκρασία κινητήρα, στάθμη καυσίμων κ.α. Το πρώτο στροφόμετρο εφευρέθηκε από τον Γερμανό Ντίτριχ Ούλχορν (Dietrich Uhlhorn). Η λειτουργία του βασιζόταν στην μέτρηση της φυγόκεντρου δύναμης. Το στροφόμετρο χρησιμοποιήθηκε το 1817 σε μηχανές για την μέτρηση της ταχύτητας σε στροφές ανά λεπτό και το 1840 χρησιμοποιήθηκε για την μέτρηση ταχύτητας κινητήρων. Το πρώτο όργανο μέτρησης ταχύτητας εφευρέθηκε από τον Κροάτη Ιωσήφ Μπελούσικ (Josip Belusic) τo 1888. Τα όργανα που επικράτησαν για την μέτρηση της ταχύτητας ήταν τα ταχύμετρα eddy current, λόγο αξιοπιστίας που παρείχαν και της λειτουργικότητας τους. Ένα όργανο eddy current μέτρησης ταχύτητας με μηχανικά μέρη φαίνεται στην Εικόνα 1.3. Το πρώτο όργανο αυτού του τύπου για μέτρηση ταχύτητας εφευρέθηκε από τον Otto Schulze και παρουσιάστηκε στις 7 Οκτωβρίου του 1902. Τα όργανα eddy current χρησιμοποιήθηκαν ευρέως για έναν περίπου αιώνα μέχρι το 1980 όταν εμφανίστηκαν τα αναλογικά ηλεκτρικά όργανα μέτρησης ταχύτητας. Τα ηλεκτρικά αναλογικά όργανα μετρήσεων, Εικόνα 1.4, στα αυτοκίνητα χρησιμοποιούν ηλεκτρικούς αισθητήρες για την μέτρηση των τιμών των παραμέτρων ενός οχήματος και ένα 2 Κάποιοι κατασκευαστές, όπως η BMW και η Mercedes-Benz, τοποθετούν και δείκτη οικονομίας καυσίμου (fuel economy gauge), ο οποίος δείχνει κάθε στιγμή την στιγμιαία κατανάλωση καυσίμου. 10

Κεφάλαιο 1 ο Εισαγωγή πάνελ για την απεικόνιση των μετρήσεων. Το επόμενο βήμα στην απεικόνιση των παραμέτρων του οχήματος είναι η ψηφιακή απεικόνιση. 1.3 Ψηφιακά συστήματα απεικόνισης στα αυτοκίνητα. Τα ψηφιακά ταμπλό ή ακριβέστερα οι διάφορες ψηφιακές ενδείξεις στα όργανα των αυτοκινήτων χρόνο με το χρόνο γίνονται όλο και πιο δημοφιλή. Και πιο εντυπωσιακές, καθώς πλέον υπεισέρχεται έντονο το στοιχείο της προσωποποίησης, επιλογή που βέβαια δεν υπήρχε καν στο πρόσφατο παρελθόν. Η πρώτη εφαρμογή των ψηφιακών οργάνων χρονολογείται από το 1976 στην Aston Martin Lagonda. Δύο χρόνια αργότερα οι ψηφιακές ενδείξεις αρχίζουν να χρησιμοποιούνται κατ αρχήν από τις αμερικάνικες εταιρίες (Lincoln, Chrysler κ.λπ.) και στη συνέχεια από τις ιταλικές και τις ιαπωνικές. To πρώτο ευρωπαϊκό μοντέλο με ψηφιακό πίνακα ήταν το Renault 11 (1983). Το επόμενο βήμα στην ψηφιακή απεικόνιση βασίζετε σε μικροεπεξεργαστές και σε οθόνες υγρών κρυστάλλων. Το πλεονέκτημά τους είναι οι υπεράριθμες επιλογές που προσφέρουν στον τρόπο απεικόνισης διάφορων σημάτων και φυσικά το αισθητικό αποτέλεσμα. Σήμερα, λοιπόν, οι αυτοκινητοβιομηχανίες έχουν στρέψει το ενδιαφέρον τους προς αυτήν την κατεύθυνση. Όλο και περισσότερα νέα μοντέλα αυτοκινήτων εμφανίζονται εφοδιασμένα με οθόνες TFT για απεικόνιση των οργάνων μετρήσεων του αυτοκινήτου και διάφορων παραμέτρων του, όπως η ταχύτητα. 3 Στα πλαίσια της παρούσας διπλωματικής εργασίας θα σχεδιαστεί ένα ψηφιακό ταμπλό πειραματικού ηλεκτρικού αυτοκινήτου. Για το σκοπό αυτό θα χρησιμοποιηθεί το ολοκληρωμένο σύστημα LPC2478STK της εταιρίας OLIMEX. Αποτελείται από την οθόνη LCD TFT και από μια πλακέτα πάνω στην οποία βρίσκεται ο μικροελεγκτής LPC2478 της NXP, με πυρήνα τον ARM7TDMI-S, μαζί με τα περιφερειακά του. Ο LPC2478 κρίθηκε κατάλληλος για την ανάπτυξη της οθόνης πολλαπλών ενδείξεων του ηλεκτρικού οχήματος, διότι, μεταξύ άλλων περιφερειακών του, ενσωματώνει ελεγκτή οθόνης LCD TFT και ελεγκτή CAN. Ο ελεγκτής CAN θα χρησιμοποιηθεί για την συλλογή τιμών από αισθητήρες που βρίσκονται τοποθετημένοι στα διάφορα τμήματα του αυτοκινήτου, μέσω δικτύου CAN, οι οποίες θα απεικονίζονται στην οθόνη LCD TFT. Για την απεικόνιση αυτή θα πρέπει να εμφανίζονται, στην οθόνη, τα όργανα του αυτοκινήτου. Θα αναπτυχθούν, λοιπόν, βιβλιοθήκες συναρτήσεων για την γραφική απεικόνιση των οργάνων καθώς επίσης και ρουτίνες οι οποίες θα απεικονίζουν τις συλλεγόμενες 3 Τα νέα μοντέλα της Volvo (S60, V60, XC60) και η σειρά C-class της Mercedes, για παράδειγμα, χρησιμοποιούν TFT ταμπλό για πλήρη ψηφιακή απεικόνιση του πίνακα οργάνων του αυτοκινήτου. 11

Κεφάλαιο 1 ο Εισαγωγή πληροφορίες στα όργανα της οθόνης. Το λογισμικό το οποίο θα χρησιμοποιηθεί είναι το IAR Embedded Workbench της IAR Systems. Πρόκειται για ένα ολοκληρωμένο περιβάλλον ανάπτυξης και διαχείρισης εφαρμογών και εργασιών ολοκληρωμένων συστημάτων μικροελεγκτών. Το λογισμικό αυτό περιβάλλον υποστηρίζει μικροελεγκτές με διάφορους πυρήνες μεταξύ των οποίων συγκαταλέγεται και ο ARM7. Εικόνα 1.1 Ταμπλό με διάφορα όργανα μέτρησης και απεικόνισης. Εικόνα 1.2 Εddy current όργανο μέτρησης. Εικόνα 1.3 Ταμπλό με όργανο μέτρησης ταχύτητας, eddy current. Εικόνα 1.4 Ταμπλό με ηλεκτρικό πάνελ απεικόνισης. 12

Κεφάλαιο 1 ο Εισαγωγή 1.4 Οθόνες υγρών κρυστάλλων LCD, TFT. Οι οθόνες υγρών κρυστάλλων βασίζονται στην ανακάλυψη του υγρού κρυστάλλου που έκανε το 1888 ο αυστριακός βοτανολόγος Friedrich Reinitzer. Ωστόσο η πρώτη πειραματική συσκευή ηλεκτρονικής απεικόνιση με τη βοήθεια υγρών κρυστάλλων έγινε από την εταιρία RCA το 1968 και από τότε μέχρι σήμερα λόγο της ραγδαίας τεχνολογικής εξέλιξη οι οθόνες τεχνολογίας CRT έχουν αντικατασταθεί από τις οθόνες υγρών κρυστάλλων. Το βασικό δομικό στοιχείο μιας οθόνης υγρών κρυστάλλων είναι ο υγρός κρύσταλλος. Υπάρχουν κάποια υλικά στη φύση τα οποία βρίσκονται σε μια ενδιάμεση κατάσταση, δηλαδή δεν μπορούν να θεωρηθούν ούτε υγρά αλλά ούτε στερεά. Από τη μια τα μόριά τους μπορούν να κινηθούν ελεύθερα όπως τα υγρά, ενώ από την άλλη ο προσανατολισμός τους παραμένει ο ίδιος, όπως τα στερεά. Λόγω της μοριακής τους δομής, οι υγροί κρύσταλλοι έχουν την ιδιότητα να αλλάζουν την πολικότητα του φωτός που περνά από μέσα τους, ανάλογα με την τάση του ηλεκτρικού ρεύματος που εφαρμόζεται σε αυτούς. Συνεπώς, εσωκλείοντας ένα στρώμα υγρών κρυστάλλων μεταξύ δύο φίλτρων οριζόντιας πόλωσης του φωτός, τα οποία είναι προσανατολισμένα ώστε να μην αφήνουν τη διέλευση του, είναι εφικτό να ελεγχθεί η ποσότητα του φωτός, που θα περάσει τη διάταξη αυτή, προσαρμόζοντας την ηλεκτρική τάση που εφαρμόζεται στο στρώμα των υγρών κρυστάλλων. Επειδή, όμως, οι υγροί κρύσταλλοι δεν εκπέμπουν φως, οι οθόνες υγρών κρυστάλλων φωτίζονται από κάποια εξωτερική πηγή φωτός, π.χ. μια μικρή λάμπα φθορίου πίσω από το στρώμα των υγρών κρυστάλλων, η οποία συνοδεύεται από μια επιφάνεια διάχυσης του φωτός για την ισόποση κατανομή της φωτεινότητας σε όλη την επιφάνεια της οθόνης. Η εικόνα σχηματίζεται ανάλογα με το ηλεκτρικό φορτίο που ασκείται στους υγρούς κρυστάλλους, είτε από ένα πλέγμα μικροσκοπικών ηλεκτροδίων στις οθόνες τύπου LCD, οι οποίες έχουν είδη ξεπεραστεί και η παραγωγή τους έχει περιοριστεί στο ελάχιστο, είτε από μια συστοιχία ημιαγωγών (τρανζίστορ) στις οθόνες τύπου TFT, οι οποίες αποτελούν την πλέον αποδεκτή πρόταση απεικόνισης με τη βοήθεια υγρών κρυστάλλων. Τα σημαντικότερα πλεονεκτήματα που παρουσιάζουν οι οθόνες υγρών κρυστάλλων είναι η μικρή κατανάλωση ηλεκτρικής ενέργειας, μια οθόνη TFT των 15 ιντσών καταναλώνει γύρω στα 35 watt ηλεκτρικής ενέργειας, η ελάχιστη εκπομπή ηλεκτρομαγνητικής ακτινοβολίας και οι μικρές διαστάσεις, χαρακτηρίζονται κυρίως από το πολύ μικρό τους πάχος, που σε πολλές περιπτώσεις μπορεί να συγκριθεί με αυτό ενός κάδρου. Ακόμη, δεν παρατηρείται τρέμουλο στην εικόνα τους, αφού αυτή δεν σχηματίζεται από μια ακτίνα που σαρώνει την επιφάνεια της οθόνης πολλές φορές το δευτερόλεπτο. Αντιθέτως η εικόνα που σχηματίζεται παραμένει ως έχει, μέχρι 13

Κεφάλαιο 1 ο Εισαγωγή αυτή να ανανεωθεί με κάποια καινούργια. Επίσης, δεν παρουσιάζουν γεωμετρικές παραμορφώσεις στην εικόνα. Η ευθεία γραμμή απεικονίζεται ως ευθεία γραμμή. Η ιδιότητα αυτή επέτρεψε την κατασκευή οθονών τρισδιάστατης στερεοσκοπικής απεικόνισης, οι οποίες επιτρέπουν σε έναν ή και περισσότερους χρήστες να αντιληφθούν πραγματικό βάθος, χωρίς τη χρήση ιδικών γυαλιών ή άλλων συσκευών. Από οικολογική άποψη, κατασκευάζονται από οργανικά υλικά περισσότερο φιλικά προς το περιβάλλον. Τέλος, παρουσιάζουν μεγάλη διάρκεια ζωής. Οι κατασκευαστές εγγυώνται περί τις 50.000 ώρες καλής λειτουργίας. Η διάρκεια ζωής των οθονών υγρών κρυστάλλων καθορίζεται από τη διάρκεια ζωής του λαμπτήρα φθορισμού που παρέχει το απαιτούμενο φως για την ανάγνωση τους. Αν μετά από 50.000 ώρες ο λαμπτήρας αυτός πάψει να λειτουργεί και αντικατασταθεί με καινούργιο, τότε η διάρκεια ζωής της οθόνης παρατείνεται για άλλες 50.000 ώρες καλής λειτουργίας. Εικόνα 1.5: Οθόνη LCD-TFT. 1.5 Δίκτυα CAN. Το CAN (Controller Area Network) είναι ένα πρωτόκολλο σειριακών επικοινωνιών το οποίο υποστηρίζει αποτελεσματικά τον κατανεμημένο έλεγχο πραγματικού χρόνου, παρέχοντας ασφάλεια υψηλού επιπέδου. Χρησιμοποιείται σε ένα ευρύ φάσμα εφαρμογών σε δίκτυα υψηλών ταχυτήτων έως και σε δίκτυα πολλαπλών καλωδίων. Αρχικά σχεδιάστηκε για αυτοκίνητα ως ένα απλό δίκτυο μεταφοράς δεδομένων από αισθητήρες. 14

Κεφάλαιο 1 ο Εισαγωγή Οι κόμβοι του δικτύου CAN συνδέονται κατά την τοπολογία διαδρόμου, δηλ. καθένας συνδέεται σε έναν κοινό δίαυλο πολλαπλών σημείων. Εικόνα 1.6: Τοπολογία διαδρόμου δικτύων CAN. Το φυσικό μέσο που χρησιμοποιείται για τη μετάδοση των δεδομένων είναι το θωρακισμένο συνεστραμμένο ζεύγος καλωδίων. Το CAN υποστηρίζει την τεχνολογία πολλαπλής προσπέλασης με ανίχνευση διαύλου (CSMA- Carrier Sense Multiple Access). Οι σταθμοί του δικτύου ακούνε τη γραμμή και όσο είναι κατειλημμένη περιμένουν να ελευθερωθεί για να αρχίσουν την μετάδοση. Αν παρουσιαστεί σύγκρουση το CAN προσπαθεί να λύσει την περίπτωση με τον καλύτερο δυνατό τρόπο. Είναι σχεδιασμένο έτσι ώστε ένα μήνυμα να μην χάνεται ακόμη και σε περίπτωση σύγκρουσης. Μετά από μια αποτυχημένη μετάδοση οι μεταδότες δοκιμάζουν ξανά την επόμενη φορά που τους δίνεται η ευκαιρία. Το δίκτυο CAN σχεδιάστηκε από την Bosch και περιγράφεται από το πρότυπο ISO 11898. Σύμφωνα με το μοντέλο OSI το CAN καθορίζει υπηρεσίες για το 1 ο και το 2 ο επίπεδο, φυσικό και σύνδεσης δεδομένων αντίστοιχα. Αλλά πρότυπα όπως το DeviceNet, Smart Distributed System, CAL, CAN Kingdom και CAN Open (πρωτόκολλα υψηλότερου επιπέδου) βασίζονται πάνω σε θεμελιώδη χαρακτηριστικά του δικτύου CAN και καθορίζουν επιπλέον υπηρεσίες στα υπόλοιπα επίπεδα του μοντέλου OSI. Καθώς το δίκτυο CAN καλύπτει το 1 ο και το 2 ο επίπεδο του μοντέλου OSI υποστηρίζει το πρωτόκολλο προσπέλασης μέσου (Medium Access Control, MAC) και τη σηματοδότηση φυσικού επιπέδου (Physical Layer Signaling, PLS). Το πρωτόκολλο προσπέλασης μέσου πραγματοποιείται χρησιμοποιώντας μια τεχνική σοφής διαιτησίας (Non Destructive Bit-wise Arbitration). Όταν ένας σταθμός έχει άδεια μετάδοσης, παρακολουθεί αν η μετάδοση δεδομένων γίνεται αξιόπιστα. Αν δεν συμβαίνει αυτό τότε ο σταθμός υποθέτει ότι έχει σταλεί συγχρόνως μήνυμα υψηλότερης προτεραιότητας και γι αυτό 15

Κεφάλαιο 1 ο Εισαγωγή διακόπτει τη μετάδοση και επιστρέφει στην αρχική κατάσταση και επιχειρεί να στείλει ξανά σε επόμενη χρονική στιγμή. Το πλεονέκτημα αυτού του τρόπου μετάδοσης είναι ότι δεν χάνονται δεδομένα από συγκρούσεις στο δίκτυο, ενώ, παράλληλα όλοι οι σταθμοί πετυχαίνουν πρόσβαση σε αυτό. Πρόβλημα αυτής της διαδικασίας είναι ότι η διαιτησία γίνεται σε κάθε bit, κάτι που απαιτεί όλοι οι σταθμοί να ακούν ο ένας τον άλλον σε χρόνο ενός bit. Τα δίκτυα CAN είναι συνήθως αρκετά μικρά με μήκος λιγότερο από 100 μέτρα για μεγάλες ταχύτητες. Οι μεταδόσεις του δικτύου CAN γίνονται με βάση το μοντέλο Παραγωγού/Καταναλωτή (Producer/Consumer). Κάθε φορά μόνο μία συσκευή μεταδίδει τα δεδομένα της και οι υπόλοιπες δεν είναι διευθυνσιοδοτημένες. Το μήνυμα περιέχει ένα πεδίο εξακρίβωσης ταυτότητας. Αυτό το πεδίο που είναι μοναδικό εντός του δικτύου προσδιορίζει το περιεχόμενο, αλλά και την προτεραιότητα του μηνύματος. Όλες οι άλλες συσκευές ακούν τον αποστολέα και δέχονται μόνο τα μηνύματα που τις αφορούν, μέσω ενός φίλτρου αποδοχής, που είναι αναπόσπαστο συστατικό του ολοκληρωμένου κυκλώματος ελέγχου του CAN. Δεδομένα που δεν ικανοποιούν τα κριτήρια καταλληλότητας απορρίπτονται. Το δίκτυο CAN έχει τα εξής 4 είδη πλαισίων: α) Data Frame: χρησιμοποιείται για τη μετάδοση των δεδομένων στο δίκτυο. β) Remote Frame: χρησιμοποιείται για να ζητηθεί η αποστολή κάποιου μηνύματος από άλλο κόμβο του δικτύου. γ) Error Frame: ειδοποιεί τους κόμβους για σφάλμα που υπάρχει στο δίκτυο, διαγράφει το πλαίσιο που περιέχει σφάλμα και ζητά να σταλεί ξανά το μήνυμα. δ)overload Frame: χρησιμοποιείται από έναν δέκτη για να ειδοποιήσει τον αποστολέα να καθυστερήσει τη μετάδοση του επόμενου μηνύματος. Το πρωτόκολλο του δικτύου CAN συναντάται κυρίως σε δύο μορφές, ανάλογα με τη μορφή του πλαισίου των μηνυμάτων (data frame): Στον τύπο Α, Εικόνα 1.7α, το πρότυπο πλαίσιο μηνυμάτων αποτελείται από 8 διαφορετικά πεδία δυαδικών ψηφίων. 1) Έναρξη του πλαισίου (SOF). 2) Πεδίο Διαιτησίας(Arbitration Field), όπου το πεδίο Message ID καθορίζει την προτεραιότητα, και το πεδίο RTR bit καθορίζει τη διάκριση των πλαισίων Data και Remote. 3)Πεδίο Ελέγχου (Control Field),όπου το πεδίο IDE bit διακρίνει τα βασικά και τα επεκταμένα πλαίσια και το πεδίο DLC ορίζει το μέγεθος του πεδίου δεδομένων. 4) Πεδίο Δεδομένων (Data Field). 5) Πεδίο Κυκλικού Ελέγχου Πλεονασμού (CRC Field) το οποίο ενημερώνει τον δέκτη για τυχόν αλλοίωση του πλαισίου κατά τη μετάδοση. 6) Πεδίο Αναγνώρισης (Ack Field), όπου ο αποστολέας κόμβος ενημερώνεται αν τουλάχιστον ένας δέκτης έλαβε σωστά το πλαίσιο.7) Τέλος του πλαισίου. 8) Πεδίο Intermission. 16

Κεφάλαιο 1 ο Εισαγωγή Στον τύπο Β, Εικόνα 1.7β, το πρότυπο πλαίσιο μηνυμάτων αποτελείται επίσης από 8 πεδία δυαδικών ψηφίων, με μόνη διαφορά στο πεδίο διαιτησίας. Το IDE bit διάκρισης των πλαισίων βρίσκεται στο πεδίο διαιτησίας. Υπάρχει ένα επιπλέον bit ελέγχου, το SRR, και υπάρχει και τμήματα 18 bits Extended Message Identifier. Τέλος, τα διαθέσιμα προσδιοριστικά στους χρήστες είναι πάνω από 536 εκατομμύρια (2 29 ), έναντι των 2048 (2 11 ) που είναι διαθέσιμα στους χρήστες του τύπου Α Εικόνα 1.7α CAN Α Εικόνα 1.7β CAN B δεν ισχύει. Οι ελεγκτές τύπου Β είναι πλήρως συμβατοί με τους αντίστοιχους τύπου Α. Το αντίθετο 17

Κεφάλαιο 1 ο Εισαγωγή Η τεχνική που χρησιμοποιείται για τη μετάδοση των δεδομένων είναι η μετάδοση βασικής συχνότητας, με κωδικοποίηση bit NRZ (Non-Return to Zero). Το σήμα δεν μεταφέρει πληροφορίες συγχρονισμού πομπού και δέκτη, αλλά κάθε κόμβος συγχρονίζεται με τον κεντρικό δίαυλο. Συγκεκριμένα, τα τοπικά ρολόγια κάθε κόμβου συγχρονίζονται σε κάθε αλλαγή δυναμικού, που αναπαριστά ένα δυαδικό ψηφίο. Όταν μεταδίδονται δύο η περισσότερα bit ίδιας τιμής, δεν μεταβάλλεται το επίπεδο δυναμικού και μπορεί να χάσουν τον συγχρονισμό τους λόγω ταλαντώσεων. Αν κάποια στιγμή σταλεί μια σειρά από πέντε ίδια σύμβολα, ο μεταδότης αυτόματα προσθέτει ένα αντίστροφο σύμβολο για να εξασφαλίσει τον συγχρονισμό από τον δέκτη. Στη συνέχεια το πρόσθετο σύμβολο απορρίπτεται αυτόματα από τον δέκτη. Στη μέθοδο αυτή τα δεδομένα μεταφέρονται σειριακά. Original bit stream (TX node) Level on the bus Decode bit stream (RX node) Η διαχείριση του δικτύου επιτυγχάνεται, όπως προαναφέρθηκε, χρησιμοποιώντας τον μηχανισμό σοφής διαιτησίας (NDBWA). Με τον μηχανισμό αυτό σε περίπτωση σύγκρουσης πακέτων, το πακέτο με την κυρίαρχη κατάσταση (λογικό 0 ) αλλάζει την υπολειπόμενη κατάσταση (λογικό 1 ). Έτσι, καθώς οι διάφοροι μεταδότες διοχετεύουν τα δεδομένα τους στο δίαυλο, ταυτόχρονα παρακολουθούν κάθε bit των δεδομένων τους για την σωστή διεξαγωγή της μετάδοσης έως ότου διαπιστώσουν ότι κάποιο κυρίαρχο bit άλλου πακέτου άλλαξε το δικό του υπολειπόμενο bit. Αυτό υποδεικνύει ότι μια συσκευή με μήνυμα μεγαλύτερης προτεραιότητας είναι παρούσα, οπότε, ο «ηττημένος» της αναμέτρησης επιστρέφει στην αρχική του κατάσταση. Με αυτήν την προσέγγιση δεν καταστρέφονται δεδομένα και επομένως η απόδοση αυξάνεται. Ο σταθμός που αναγκάζεται να υποχωρήσει απλά δοκιμάζει εκ νέου την επόμενη φορά που θα του δοθεί η ευκαιρία μετάδοσης. Το μειονέκτημα αυτού του συστήματος είναι ότι, όλες οι συσκευές πρέπει να διεκδικήσουν τα δεδομένα τους εντός του ίδιου χρονικού διαστήματος του ενός bit και πριν γίνει η δειγματοληψία, αλλιώς, τα δεδομένα μπορεί να ληφθούν εσφαλμένα η ακόμα και να καταστραφούν. 18

Κεφάλαιο 1 ο Εισαγωγή 1.6 Μικροεπεξεργαστές. 1.6.1 Η εμφάνιση των μικροεπεξεργαστών. Ο πρώτος μικροεπεξεργαστής έκανε την εμφάνιση του στις αρχές του 1972, σχεδόν τρεις δεκαετίες μετά από τους πρώτους ηλεκτρονικούς υπολογιστές. Το αποτέλεσμα της εμφάνισης της τεχνολογίας των ολοκληρωμένων κυκλωμάτων ήταν η ενσωμάτωση σε ένα μόνο ολοκληρωμένο κύκλωμα όλης της Κεντρικής Μονάδας Επεξεργασίας, η οποία βέβαια θα έπρεπε να προγραμματίζεται για να περιέχει τις βασικότερες λειτουργίες ενός ψηφιακού υπολογιστή. Το κύκλωμα αυτό ονομάστηκε Μικροεπεξεργαστής. Η μνήμη του βρίσκεται σε αρκετά ολοκληρωμένα κυκλώματα περιορισμένων αποθηκευτικών δυνατοτήτων, τα οποία το συνοδεύουν. Επίσης υποστηρίζεται από μια πλειάδα ολοκληρωμένων κυκλωμάτων, για να διασυνδέεται κατάλληλα και με τον εξωτερικό κόσμο μιας και δεν έχει ενσωματωμένες αυτές τις δυνατότητες, και από έναν μεγάλο αριθμό ολοκληρωμένων κυκλωμάτων, που επιτελούν τις λειτουργίες χρονισμού και προώθησης δεδομένων στον τελικό τους προορισμό. Ο τρόπος κατασκευής των ΚΜΕ άλλαξε σημαντικά στην δεκαετία του 70, όταν κατασκευάστηκαν οι πρώτοι επεξεργαστές από ένα μόνο ολοκληρωμένο κύκλωμα μεγάλης ολοκλήρωσης. Επειδή μειώθηκε το μέγεθος, οι νέοι επεξεργαστές ονομάστηκαν μικροεπεξεργαστές, ενώ σήμερα ο όρος "ΚΜΕ" αναφέρεται αποκλειστικά σε αυτούς. Το μικρότερο μέγεθος μείωσε επίσης και τον χρόνο μεταγωγής λόγω των φυσικών παραγόντων. Έτσι, οι σύγχρονοι μικροεπεξεργαστές έχουν συχνότητα ρολογιού που κυμαίνεται από εκατοντάδες megahertz έως αρκετά gigahertz. Παράλληλα, αυξήθηκε η πολυπλοκότητα και ο αριθμός των τρανζίστορ που αποτελούσαν ένα ολοκληρωμένο κύκλωμα. Ο ρυθμός αύξησης των τρανζίστορ περιγράφεται από τον νόμο του Μούρ, που ισχύει μέχρι σήμερα και προβλέπει τον διπλασιασμό του αριθμό των τρανζίστορ, που ενσωματώνονται σε ένα ολοκληρωμένο κύκλωμα, κάθε 18 μήνες. Εικόνα 1.8 Μικροεπεξεργαστής. Εικόνα 1.9 ΚΜΕ LPC2478 της NXP. 19

Κεφάλαιο 1 ο Εισαγωγή 1.6.2 Οργάνωση μικροεπεξεργαστή. Οι περισσότεροι σύγχρονοι μικροεπεξεργαστές ακολουθούν μια απλοποιημένη μορφή της αρχιτεκτονικής φον Νόημαν. Συνδυάζουν την Αριθμητική και Λογική μονάδα με την μονάδα ελέγχου, δημιουργώντας την ΚΜΕ, και τις μονάδες εισόδου και εξόδου σε μια μονάδα εισόδου/εξόδου (Ε/Ε). Επομένως κάθε σύγχρονο υπολογιστικό σύστημα, αποτελείται από τρία μέρη, την ΚΜΕ, την μνήμη και την μονάδα Ε/Ε. H KME (ο μικροεπεξεργαστής) αποτελείται από τρία κύρια τμήματα: Καταχωρητές (Registers), που είναι μικρά κύτταρα μνήμης στο εσωτερικό του επεξεργαστή, και χρησιμοποιούνται για την προσωρινή αποθήκευση των δεδομένων, καθώς αυτά υφίστανται επεξεργασία. Μερικοί καταχωρητές έχουν ειδική λειτουργία όπως: Απαριθμητής προγράμματος ( program counter): περιέχει την διεύθυνση της επόμενης εντολής που θα ανακτηθεί από την μνήμη για να εκτελεστεί. Καταχωρητής εντολών (Instruction register): αποθηκεύει τον κωδικό λειτουργίας της εντολής πριν αποκωδικοποιηθεί από την ΚΜΕ. Συσσωρευτής (accumulator): καταχωρητής που συνήθως χρησιμοποιείται για τις αριθμητικές και λογικές πράξεις. Αριθμητική και Λογική Μονάδα (Arithmetic and Logical Unit, ALU) που εκτελεί αριθμητικές και λογικές πράξεις. Μονάδα Ελέγχου (Control Unit) που ελέγχει τη ροή δεδομένων από και προς την ΚΜΕ, τους καταχωρητές, τη μνήμη και τις περιφερειακές μονάδες εισόδου/εξόδου. Η διασύνδεση μεταξύ αυτών των μονάδων επιτυγχάνεται μέσω ενός κοινού διαύλου που ονομάζεται δίαυλος συστήματος. 1.6.3 Τρόπος λειτουργίας. Η ενσωμάτωση όλων των στοιχείων της κεντρικής μονάδας επεξεργασίας σε ένα μόνο ολοκληρωμένο κύκλωμα, συνδυάζει τα πλεονεκτήματα του μικρού μεγέθους, της υψηλής αξιοπιστίας και του χαμηλού κόστους. Ο μικροεπεξεργαστής συνδέεται κατάλληλα με τα ολοκληρωμένα κυκλώματα της μνήμης και των μονάδων εισόδου/εξόδου, για να αποτελέσει το υπολογιστικό σύστημα που ονομάζουμε μικροϋπολογιστή ή μικροϋπολογιστικό σύστημα. Θα πρέπει να αναφέρουμε επίσης ότι και οι μικροεπεξεργαστές, όπως άλλωστε και όλα τα λογικά κυκλώματα, λειτουργούν με βάση τη δυαδική λογική, όπου με τη βοήθεια δύο μόνο λογικών καταστάσεων (λογικό 0 και λογικό 1), που αναπαρίστανται με επίπεδα ηλεκτρικών τάσεων, εκτελούν όλες τις αριθμητικές πράξεις. Η τεχνική αυτή επιβλήθηκε για λόγους 20

Κεφάλαιο 1 ο Εισαγωγή τεχνολογικής αξιοπιστίας. Έτσι οι πληροφορίες που ανταλλάσσει ο μικροεπεξεργαστής με τη μνήμη και τις μονάδες εισόδου/εξόδου είναι συνδυασμοί δυαδικών ψηφίων. Η μεταφορά της δυαδικής πληροφορίας ανάμεσα στις διάφορες μονάδες του μικροϋπολογιστή γίνεται παράλληλα από ένα σύνολο γραμμών, που αναφέρονται σαν δίαυλος δεδομένων (data bus). Οι γραμμές αυτές αναφέρονται σαν γραμμές δεδομένων (data lines). Ο δίαυλος δεδομένων, όμως, δεν λύνει όλα τα προβλήματα μεταφοράς της πληροφορίας. Ο μικροεπεξεργαστής θα πρέπει να έχει τη δυνατότητα επιλογής της μονάδας, με την οποία θα επικοινωνήσει, και να μπορεί να την ειδοποιήσει ότι θα στείλει ή θα πάρει δεδομένα από αυτή. Για το λόγο αυτό διαθέτει δύο ακόμα διαύλους, το δίαυλο διευθύνσεων (address bus) και το δίαυλο ελέγχου (control bus). Οι γραμμές των διαύλων αυτών λέγονται αντίστοιχα γραμμές διευθύνσεων (address lines) και γραμμές ελέγχου (control lines). Με τις γραμμές διευθύνσεων ο μικροεπεξεργαστής στέλνει τη δυαδική διεύθυνση της θέσης μνήμης ή της μονάδας εισόδου/εξόδου, με την οποία θέλει να επικοινωνήσει, και με τις γραμμές ελέγχου τα κατάλληλα ηλεκτρικά σήματα για την ενεργοποίηση των επιθυμητών λειτουργιών της μνήμης ή των μονάδων εισόδου/εξόδου. Η απαίτηση της ενεργοποίησης στοιχειωδών λειτουργιών σε προκαθορισμένα χρονικά διαστήματα, δημιουργεί την ανάγκη ύπαρξης μιας βάσης χρόνου, που αναφέρεται ως κύκλωμα χρονισμού (clock). Το κύκλωμα χρονισμού αποτελείται συνήθως από ένα κρυσταλλικό ταλαντωτή, που παράγει τετραγωνικούς παλμούς σταθερής συχνότητας. Η συχνότητα αυτή του ταλαντωτή καθορίζει και τη συχνότητα λειτουργίας του μικροεπεξεργαστή. 21

Κεφάλαιο 2 ο Υλικό Κεφάλαιο 2 ο ΥΛΙΚΟ ΕΡΓΑΣΙΑΣ 2.1 Αρχιτεκτονική ARM. 2.1.1 Η εμφάνιση της Αρχιτεκτονικής ARM. Μετά την επιτυχία του υπολογιστή BBC Micro, η Acorn Computers Ltd εξέτασε την μετάβαση από τον απλό επεξεργαστή MOS Technology 6502 ώστε να ικανοποιήσει τις ανάγκες των εταιρικών πελατών. Το σχέδιο Acorn Business Computer (ABC) απαιτούσε έναν αριθμό δεύτερων επεξεργαστών που θα συνδυάζονταν με την πλατφόρμα του BBC Micro. Η Acorn θα χρειαζόταν μια νέα αρχιτεκτονική, γιατί είχε δοκιμάσει όλους τους υπάρχοντες επεξεργαστές και δεν την ικανοποιούσαν. Το επίσημο εγχείρημα Acorn RISC Machine άρχισε τον Οκτώβριο του 1983. Τη σχεδίαση διηύθυναν οι Wilson και Furber, έχοντας σαν βασικό σκοπό να πετύχουν τον χειρισμό των διακοπών εισόδου/εξόδου (input /output (interrupt) handling) με χαμηλή καθυστέρηση, όπως ο 6502. Η αρχιτεκτονική πρόσβασης στη μνήμη του 6502 είχε επιτρέψει την παραγωγή γρήγορων υπολογιστών, χωρίς τη χρήση ακριβού υλικού, απευθείας πρόσβασης στη μνήμη (direct memory access). Η VLSI παρήγαγε το πρώτο πυρίτιο ARM στις 26 Απριλίου 1985 αυτό λειτούργησε κατευθείαν και ονομάστηκε ARM1. Τα πρώτα «πραγματικά» συστήματα για χρήση στην παραγωγή κυκλοφόρησαν τον επόμενο χρόνο, με το όνομα ARM2. Ο ARM2 είχε έναν δίαυλο δεδομένων 32-bit (data bus), χώρο διευθύνσεων 26-bit (address space) και 27 καταχωρητές 32- bit. Ο κώδικας του προγράμματος έπρεπε να βρίσκεται μέσα στα πρώτα 64 Mbyte της μνήμης, επειδή ο μετρητής προγράμματος (program counter) είχε μόνο 24 bit τα 6 πρώτα και τα 2 τελευταία bit του καταχωρητή 32-bit λειτουργούσαν σαν σημαίες κατάστασης (status flags). Ο ARM2 ήταν ίσως ο απλούστερος χρήσιμος μικροεπεξεργαστής 32-bit στον κόσμο, έχοντας μόνο 30.000 τρανζίστορ. 4 Μεγάλο μέρος αυτής της απλότητας οφειλόταν στο ότι ο επεξεργαστής δεν είχε μικροκώδικα 5 και, όπως οι περισσότεροι επεξεργαστές της εποχής, δεν είχε καθόλου κρυφή μνήμη (cache). Συνέπεια αυτής της απλότητας ήταν η χαμηλή κατανάλωση ισχύος, ενώ ήταν πιο γρήγορος από τον Intel 80286. Ακολούθησε ο ARM3, ο οποίος είχε κρυφή μνήμη 4 KB, 4 Συγκριτικά ο 68000 της Motorola ήταν 6 χρόνια παλαιότερος αλλά, όπως φαίνεται και από την ονομασία του, περιείχε 68.000 τρανζίστορ. 5 Ο μικροκώδικας του ARM2 αναλογούσε στο ένα τέταρτο με ένα τρίτο του 68000. 22

Κεφάλαιο 2 ο Υλικό βελτιώνοντας και άλλο την ταχύτητα. Ο πυρήνας ARM έχει παραμείνει σχεδόν στο ίδιο μέγεθος παρά τις αλλαγές σε αυτόν. Ο ARM2 είχε 30.000 τρανζίστορ ενώ ο ARM6 αυξήθηκε μόλις σε 35.000. Η πιο επιτυχημένη υλοποίηση είναι ο ARM7TDMI που έχει πουλήσει εκατομμύρια τεμάχια. Η βασική ιδέα είναι ότι ο κατασκευαστής της σχεδίασης (original design manufacturer) συνδυάζει τον πυρήνα ARM με κάποια επιπλέον μέρη για να παράγει μια πλήρη CPU, η οποία να μπορεί να κατασκευαστεί σε παλιά εργοστάσια κατασκευής ημιαγωγών αλλά να έχει καλή ταχύτητα με χαμηλό κόστος. 2.1.2 Βασικά χαρακτηριστικά Αρχιτεκτονικής ARM. Από το 1995 μέχρι σήμερα, το ARM Architecture Reference Manual είναι η βασική πηγή τεκμηρίωσης πάνω στην αρχιτεκτονική του επεξεργαστή ARM και του συνόλου εντολών του ενώ, διακρίνει μεταξύ διεπαφών που όλοι οι επεξεργαστές πρέπει να υποστηρίζουν (όπως η σημασία των εντολών) και λεπτομερειών υλοποίησης, οι οποίες μπορούν να διαφέρουν ανά περίπτωση. Η αρχιτεκτονική έχει εξελιχθεί και ορίζονται τρία «προφίλ», «Εφαρμογής» ("Application), «Πραγματικού χρόνου» ("Real-time"), «Μικροελεγκτή» ("Microcontroller). Τα προφίλ μπορεί να αποτελούν υποσύνολο της αρχιτεκτονικής. Για παράδειγμα, το προφίλ ARMv7-M υποστηρίζει μόνο το σύνολο εντολών Thumb-2, και το προφίλ ARMv6-M είναι υποσύνολο του προφίλ ARMv7-M και υποστηρίζει λιγότερες εντολές. Για να διατηρηθεί η σχεδίαση καθαρή, απλή και γρήγορη, η αρχική υλοποίηση ARM είχε κατασκευαστεί κατευθείαν, χωρίς τη χρήση μικροκώδικα. Η αρχιτεκτονική ARM περιλαμβάνει τα εξής χαρακτηριστικά RISC: a) Αρχιτεκτονική φόρτωσης/αποθήκευσης (load/store). b) Δεν υποστηρίζει μη-ευθυγραμμισμένη (misaligned) πρόσβαση στη μνήμη, η οποία υποστηρίζεται στους πυρήνες ARMv6, με εξαιρέσεις όσον αφορά τις εντολές φόρτωσης/αποθήκευσης πολλών λέξεων. c) Ομοιόμορφο αρχείο 16 32-bit καταχωρητών. d) Σταθερό εύρος εντολών 32-bit για εύκολη αποκωδικοποίηση και διοχέτευση (pipelining), με μειονέκτημα την μικρότερη πυκνότητα κώδικα. Αργότερα, το σύνολο εντολών Thumb αύξησε την πυκνότητα του κώδικα. e) Συνήθως η εκτέλεση γίνεται σε έναν κύκλο. f) Εκτέλεση υπό συνθήκη των περισσότερων εντολών, που μειώνει την επιβάρυνση διακλάδωσης (branch overhead) και αντιμετωπίζει την έλλειψη μηχανισμού πρόβλεψης διακλάδωσης (branch predictor). 23

Κεφάλαιο 2 ο Υλικό g) Οι αριθμητικές εντολές αλλάζουν τον κώδικα κατάστασης μόνο όταν χρειάζεται. h) Ολίσθηση βαρελιού (barrel shift) των 32-bit, που μπορεί να χρησιμοποιηθεί χωρίς επιβάρυνση στην ταχύτητα, στις περισσότερες εντολές αριθμητικής και υπολογισμού διευθύνσεων. i) Ισχυροί τρόποι σχηματισμού διευθύνσεων με δείκτες (indexed addressing modes). j) Ένας καταχωρητής συνδέσμου (link register) για γρήγορες κλήσεις συναρτήσεων-φύλλων (leaf function calls). k) Υποσύστημα διακοπών, 2 επιπέδων προτεραιοτήτων, με εναλλασσόμενους πίνακες καταχωρητών (switched register banks). Η εκτέλεση υπό συνθήκη (που ονομάζεται και predication) υλοποιείται με έναν επιλογέα κωδικού διακλάδωσης 4-bit,που ονομάζεται predicate, σε κάθε εντολή. Ένας από τους κωδικούς αυτούς των 4 bit θεωρείται «κωδικός διαφυγής» ("escape code") και χρησιμοποιείται για κάποιες εντολές χωρίς συνθήκη, αλλά σχεδόν όλες οι συνηθισμένες εντολές είναι υπό συνθήκη. Οι περισσότερες αρχιτεκτονικές επεξεργαστών έχουν κωδικούς συνθήκης μόνο στις εντολές διακλάδωσης. Αυτό μειώνει σε σημαντικό βαθμό τα bit κωδικοποίησης που μπορούν να χρησιμοποιηθούν για τη μετατόπιση (displacement) στις εντολές πρόσβασης στη μνήμη, αλλά αποφεύγει και τις εντολές διακλάδωσης όταν παράγεται κώδικας για μικρές εντολές if. Στη γλώσσα προγραμματισμού C, η επαναληπτική δομή του αλγορίθμου είναι: while(i!= j) { if (i > j) i -= j; else j -= i;} Σε συμβολική γλώσσα ARM, η επαναληπτική δομή είναι: loop CMP Ri, Rj ; θέτει τη συνθήκη "NE" αν (i!= j), ; "GT" αν (i > j), ; ή "LT" αν (i < j) SUBGT Ri, Ri, Rj ; αν "GT" (μεγαλύτερο από), i = i-j; SUBLT Rj, Rj, Ri ; αν "LT" (μικρότερο από), j = j-i; BNE loop ; αν "NE" (όχι ίσο), τότε επανάληψη που αποφεύγει τις διακλαδώσεις στο then και στο else. Αν ο Ri και ο Rj είναι ίσοι, τότε δεν θα εκτελεστεί καμία από τις εντολές SUB, με αποτέλεσμα να μη χρειάζεται μια διακλάδωση υπό συνθήκη για να υλοποιηθεί ο έλεγχος της while στην αρχή της επανάληψης. Αν, για παράδειγμα, 24

Κεφάλαιο 2 ο Υλικό είχε χρησιμοποιηθεί η SUBLE (μικρότερο ή ίσο). Ένας από τους τρόπους με τους οποίους ο κώδικας Thumb παρέχει μια πυκνότερη κωδικοποίηση είναι να αφαιρέσει αυτόν τον επιλογέα των 4 bit από τις εντολές που δεν είναι διακλαδώσεις. Ένα άλλο χαρακτηριστικό του συνόλου εντολών είναι η δυνατότητα να ενσωματώνονται ολισθήσεις (shifts) και περιστροφές (rotates) στις εντολές επεξεργασίας δεδομένων (αριθμητικών, λογικών ή μετακινήσεων από καταχωρητή σε καταχωρητή), ώστε η εντολή C: a += (j << 2); να μπορεί να εκτελεστεί με μια εντολή μιας λέξης και ενός κύκλου εκτέλεσης στον ARM: ADD Ra, Ra, Rj, LSL #2 Αυτό έχει σαν αποτέλεσμα τα προγράμματα για ARM να τείνουν να είναι πιο πυκνά από όσο θα αναμενόταν με αραιότερη πρόσβαση στη μνήμη και επομένως η διοχέτευση χρησιμοποιείται πιο αποδοτικά. Αν και οι ARM τρέχουν σε σχετικά χαμηλές ταχύτητες, έχουν καλές επιδόσεις σε σχέση με πιο πολύπλοκες σχεδιάσεις επεξεργαστών. Ο επεξεργαστής ARM έχει επίσης κάποια χαρακτηριστικά που δεν εμφανίζονται συχνά σε άλλες αρχιτεκτονικές RISC, όπως η διευθυνσιοδότηση με βάση τον μετρητή προγράμματος και τρόπους σχηματισμού διευθύνσεων με αύξηση πριν ή μετά την εντολή. Στην πραγματικότητα, στον ARM 32-bit, ο μετρητής προγράμματος είναι ένας από τους 16 καταχωρητές. Επειδή η αρχιτεκτονική υπάρχει για πολλά χρόνια, το σύνολο εντολών έχει αυξηθεί με την πάροδο του χρόνου. Κάποιοι από τους αρχικούς επεξεργαστές ARM (πριν τον ARM7TDMI), για παράδειγμα, δεν έχουν εντολή για να αποθηκεύουν δεδομένα των 2-byte, με αποτέλεσμα να είναι δύσκολο να παραχθεί γρήγορος κώδικας για αντικείμενα της C τύπου int16_t. Όλοι οι σύγχρονοι επεξεργαστές ARM περιλαμβάνουν υποστήριξη στο υλικό για αποσφαλμάτωση, που είναι απαραίτητη ώστε οι αποσφαλματωτές σε λογισμικό να μπορούν να σταματούν κώδικα, να τον εκτελούν βηματικά και να τοποθετούν σημεία διακοπής (breakpoints) σε αυτόν. Η υποστήριξη αυτή υλοποιείται μέσω JTAG, αν και κάποιοι νεότεροι πυρήνες υποστηρίζουν το πρωτόκολλο δύο γραμμών «SWD» του ARM. Στους πυρήνες ARM7TDMI, το «D» δείχνει την υποστήριξη αποσφαλμάτωσης μέσω JTAG, ενώ το «I» δείχνει την παρουσία του αρθρώματος αποσφαλμάτωσης «EmbeddedICE». Στις σειρές πυρήνων ARM7 και ARM9, ο ποιο γνωστός τρόπος αποσφαλμάτωσης ήταν το EmbeddedICE μέσω JTAG, αν και αυτό δεν το εξασφάλιζε η αρχιτεκτονική. Η αρχιτεκτονική ARMv7 ορίζει βασικά βοηθήματα αποσφαλμάτωσης σε επίπεδο αρχιτεκτονικής, όπως τα σημεία διακοπής, τα σημεία παρακολούθησης (watchpoints) και η εκτέλεση εντολών σε «κατάσταση αποσφαλμάτωσης» ("Debug Mode"), ενώ παρόμοια 25

Κεφάλαιο 2 ο Υλικό βοηθήματα παρέχει και το EmbeddedICE. Υποστηρίζεται η αποσφαλμάτωση τόσο «κατάστασης παύσης» ("halt mode") όσο και «κατάστασης παρακολούθησης» ("monitor mode"). Ο πραγματικός μηχανισμός επικοινωνίας που δίνει πρόσβαση στα βοηθήματα αποσφαλμάτωσης δεν ορίζεται στην αρχιτεκτονική αλλά συνήθως οι υλοποιήσεις περιλαμβάνουν υποστήριξη μέσω JTAG. Υπάρχει επίσης μια ξεχωριστή αρχιτεκτονική αποσφαλμάτωσης για ARM με τον τίτλο CoreSight, η οποία δεν είναι υποχρεωτική στην αρχιτεκτονική των επεξεργαστών ARMv7. Για να βελτιωθεί η πυκνότητα του κώδικα, οι επεξεργαστές από τον ARM7TDMI και ύστερα περιλαμβάνουν την κατάσταση συνόλου εντολών Thumb. (Το «T» στο «TDMI» δείχνει το χαρακτηριστικό Thumb.) Όταν ο επεξεργαστής βρίσκεται σε αυτήν την κατάσταση εκτελεί το σύνολο εντολών Thumb, το οποίο είναι μια πιο συμπαγής κωδικοποίηση 16-bit ενός υποσυνόλου του συνόλου εντολών του ARM. Οι περισσότερες από τις εντολές Thumb αντιστοιχίζονται απευθείας σε κανονικές εντολές ARM. Η οικονομία χώρου προκύπτει με το να εννοούνται κάποιοι τελεστές και με τις εντολές να μπορούν να έχουν λιγότερα πιθανά αποτελέσματα σε σχέση με τις εντολές ARM που εκτελούνται στην κατάσταση συνόλου εντολών ARM. Στο Thumb, οι κωδικοί των εντολών (opcodes) των 16-bit έχουν λιγότερες λειτουργίες. Για παράδειγμα, μόνο οι εντολές διακλάδωσης μπορούν να είναι υπό συνθήκη και πολλοί κωδικοί περιορίζονται στο να μπορούν να έχουν πρόσβαση μόνο στους μισούς από τους καταχωρητές γενικής χρήσης του επεξεργαστή. Οι πιο σύντομοι κωδικοί εντολών βελτιώνουν τη συνολική πυκνότητα του κώδικα, αν και κάποιες λειτουργίες απαιτούν επιπλέον εντολές. Σε περιπτώσεις που η θύρα της μνήμης ή ο δίαυλος έχουν λιγότερα από 32 bit, οι συντομότερες εντολές του Thumb επιτρέπουν βελτιωμένη ταχύτητα σε σχέση με τον κώδικα ARM 32-bit, καθώς χρειάζεται να φορτωθεί λιγότερος κώδικας στον επεξεργαστή μέσω του περιορισμένου εύρους της μνήμης. Το ενσωματωμένο υλικό, όπως αυτό της LPC2478STK board, συνήθως έχει ένα μικρό ποσό μνήμης RAM προσβάσιμο στο πλήρως 32-bit μονοπάτι δεδομένων (datapath). Η πρόσβαση στο μεγαλύτερο μέρος της μνήμης γίνεται μέσω ενός δεύτερου μονοπατιού δεδομένων εύρους 16 bit ή και λιγότερο. Σε αυτήν την περίπτωση είναι συνήθως καλύτερο να προκύπτει κώδικας Thumb από τη μεταγλώττιση και να βελτιστοποιούνται με το χέρι τα λίγα μέρη του κώδικα που απαιτούν επεξεργαστική ισχύ σε πλήρως 32-bit εντολές ARM, τοποθετώντας αυτές τις πιο μεγάλες εντολές στη μνήμη που φαίνεται από το δίαυλο των 32-bit. 26

Κεφάλαιο 2 ο Υλικό Ο πρώτος επεξεργαστής που μπορούσε να αποκωδικοποιήσει εντολές Thumb ήταν ο ARM7TDMI. Όλοι οι ARM9 και οι σειρές επεξεργαστών που ακολούθησαν, συμπεριλαμβανομένου του XScale, περιλαμβάνουν αποκωδικοποιητή εντολών Thumb. Ένα άλλο αξιοσημείωτο χαρακτηριστικό των εξελιγμένων ARM μικροεπεξεργαστών προστέθηκε στην ARMv6, όπου η αρχιτεκτονική ARM υποστηρίζει την προστασία σελίδων από εκτέλεση (no-execute page protection), η οποία ονομάζεται XN (execute Never). Στην Εικόνα 2.1 παρακάτω, φαίνεται το σχεδιάγραμμα ενός μικροεπεξεργαστή με αρχιτεκτονική ARM. Εικόνα 2.1: Σχέδιο μικροεπεξεργαστή ARM7. 27

Κεφάλαιο 2 ο Υλικό 2.2 LPC2478 μικροεπεξεργαστής. Η NXP Semiconductors σχεδίασε τον LPC2478 μικροελεγκτή, με πυρήνα τον ARM7TDMI-S, με στόχο την παραγωγή ενός ολοκληρωμένου μικροεπεξεργαστή ο οποίος θα μπορέσει να χρησιμοποιηθεί για την ανάπτυξη ευρείας σειράς εφαρμογών οι οποίες απαιτούν δυνατότητα σύγχρονων μεθόδων επικοινωνίας και υψηλή ποιότητας γραφικών. Η μέγιστη συχνότητα στην οποία λειτουργεί ο μικροεπεξεργαστής είναι 72 MHz. Ένα πολύ σημαντικό στοιχείο του LPC2478 το οποίο, σήμερα, το βρίσκουμε μόνο στη σειρά των μικροεπεξεργαστών LPC2000 ARM, είναι τα 512κB ενσωματωμένης μνήμης προγραμματισμού υψηλής ταχύτητας (flash) με δυνατότητα In-System Programming(ISP) και In application Programming (IAP). Η μνήμη αυτή βρίσκεται πάνω στο τοπικό κανάλι ARM και εμπεριέχει μια ειδική 128-bit ευρεία διεπαφή μνήμης και αρχιτεκτονική επιτάχυνσης. Έτσι, η κεντρική μονάδα επεξεργασίας (ΚΜΕ) έχει την δυνατότητα να εκτελεί σειριακές εντολές τις οποίες δέχεται απευθείας από τη μνήμη στην ταχύτητα των 72 MHz, ταχύτητα ρολογιού συστήματος. Ο LPC2478, περιέχει διεπαφές αποσφαλμάτωσης πραγματικού χρόνου (JTAG και Embedded Trace), χάρη στις οποίες έχει τη δυνατότητα να εκτελέσει εντολές 32-bit ARM και 16-bit Thumb. Ακόμη για λόγους εξοικονόμησης ενέργειας η ΚΜΕ μπορεί να λειτουργήσει σε τέσσερις καταστάσεις εξοικονόμησης ενέργειας: idle, sleep, power-down και deep power-down και να ενεργοποιηθεί από κατάσταση αδράνειας (power-down) μέσω οποιουδήποτε διακοπής ικανής να λειτουργήσει στην κατάσταση αυτή. Στις διακοπές αυτές συμπεριλαμβάνονται και οι εξωτερικές διακοπές, RTC διακοπές, δραστηριότητα του USB, διακοπή αφύπνισης του Ethernet, δραστηριότητα του CAN καναλιού, διακοπές ακροδεκτών των θυρών 0/2. 2.3 Η πλακέτα LPC2478STK. Η πλακέτα LPC2478STΚ, που σχεδιάστηκε από την OLIMEX, ενσωματώνει πάνω της, μεταξύ άλλων, τον μικροεπεξεργαστή LPC2478, ελεγκτή οθόνης TFT LCD, ελεγκτή CAN δικτύου, ελεγκτή 10/100 Ethernet και πολλά άλλα κυκλώματα και περιφερειακά, σχηματίζοντας έτσι μια συσκευή για ανάπτυξη ολοκληρωμένων εφαρμογών. Στα πλαίσια της παρούσας διπλωματικής εργασίας, η LPC2478STK, θα χρησιμοποιηθεί για την ψηφιακή απεικόνιση του πίνακα οργάνων ενός ηλεκτρικού οχήματος. Συνοπτικά τα βασικά ολοκληρωμένα κυκλώματα και τα περιφερειακά της LPC2478STK (Εικόνα 2.4 και Εικόνας 2.3) είναι τα ακόλουθα: 28

Κεφάλαιο 2 ο Υλικό Επεξεργαστής ARM7TDMI-S, με μέγιστη συχνότητα λειτουργίας στα 72 MHz και 512Kb flash ενσωματωμένη μνήμη προγραμματισμού. Ενσωματωμένη μνήμη SRAM 98 kb από τα οποία, τα 64 kb SRAM βρίσκονται στο ARM τοπικό κανάλι για άμεση πρόσβασης από την ΚΜΕ (κεντρική μονάδα επεξεργασίας), τα 16 kb SRAM διατίθενται για την Ethernet διασύνδεση, και είναι διαθέσιμα και για γενική χρήση, τα 16 kb διατίθενται για χρήση γενικού σκοπού DMA, τα οποία είναι προσπελάσιμα και από το USB, και 2 kb SRAM τα οποία χρησιμοποιούνται για αποθήκευση δεδομένων που προέρχονται από το Real- Time Clock (RTC). Ελεγκτής LCD με δυνατότητα απευθείας πρόσβασης στην μνήμη. Ο ελεγκτής υποστηρίζει και τους δύο τύπους οθόνης STN (Super-Twisted Nematic) και TFT Thin-Film Transistors. Η ανάλυση της οθόνης μπορεί να ρυθμιστεί ανάλογα με τις απαιτήσεις των διάφορων εφαρμογών (έως και 1024 x 768 pixels). Τέλος, ο ελεγκτής LCD υποστηρίζει έως και 24-bit true color mode. Έγχρωμη οθόνη LCD-TFT 3,5 320 24-bit με touchsceen. Σύστημα διπλού καναλιού (Dual High Performance Bus (AHB) System) που επιτρέπει ταυτόχρονη USB και Ethernet απευθείας πρόσβαση στη μνήμη και εκτέλεση προγράμματος από την ενσωματωμένη μνήμη χωρίς συγκρούσεις και προβλήματα. Υποδοχή PS2 για σύνδεση πληκτρολογίου. Εξωτερικός ελεγκτής μνήμης (External Memory Controller-EMC) που παρέχει υποστήριξη σε συσκευές με ασύγχρονη στατική μνήμη, RAM, ROM και flash. Ελεγκτής διακοπών (Advanced Vectored Interrupt Controller-VIC), που υποστηρίζει μέχρι και 32 διακοπές με δείκτη. Ελεγκτής γενικού σκοπού απευθείας πρόσβασης στη μνήμη (GPDMA) στο ΑΗΒ κανάλι το οποίο μπορεί να χρησιμοποιηθεί με το SSP, I 2 S-bus και με τη SD/MMC διεπαφή για μεταφορές από μνήμη σε μνήμη. Σειριακή διεπαφή Ethernet MAC με MII/RMII (Media Independent Interface Reduced Media Independent Interface) και συνεργαζόμενος ελεγκτής απευθείας πρόσβασης στην μνήμη. Όπου οι λειτουργίες αυτές βρίσκονται πάνω σε ένα ανεξάρτητο ΑΗΒ κανάλι. Ελεγκτής συσκευής USB 2.0 FULL-Speed Dual Port/host/OTG με ενσωματωμένη μνήμη και συνεργαζόμενος ελεγκτής απευθείας πρόσβασης στην μνήμη. 29

Κεφάλαιο 2 ο Υλικό Ελεγκτής CAN με δυο κανάλια. Ελεγκτής SPI. Δυο ελεγκτές SSP με FIFO και δυνατότητα multi-protocol. Όπου ο ένας είναι εναλλακτικός για την SPI θύρα, και μοιράζεται την διακοπή της. Επίσης, οι ελεγκτές SSP μπορούν να χρησιμοποιηθούν μαζί με τον ελεγκτή GPDMA. Τρείς I 2 C-bus (Inter-IC Sound) διασυνδέσεις. Μια I 2 C (Intel-IC Sound) διασύνδεση για είσοδο η έξοδο ψηφιακού ήχου. Το οποίο μπορεί να χρησιμοποιηθεί με απευθείας πρόσβαση στην μνήμη. Εσωτερικός RC ταλαντωτής των 4MHz με ακρίβεια 1% το οποίο μπορεί επιλεκτικά να χρησιμοποιηθεί ως ρολόι συστήματος. Τέσσερις εξωτερικές είσοδοι διακοπών οι οποίες μπορούν να ρυθμιστούν σε ανίχνευση παρυφής/κορυφής. Όλοι οι ακροδέκτες στις θύρες 0 και 2 μπορούν να χρησιμοποιηθούν σαν πηγές διακοπτών με ευαισθησία παρυφής/κορυφής. Δυο ανεξάρτητες διατάξεις παροχής ενέργειας, μπαταρία και εξωτερική παροχή ενέργειας από πηγή τροφοδοσίας 3.3V (3.0V-3.6V). Η χρήση των διατάξεων αυτών επιλέγεται ανάλογα με τις απαιτήσεις των λειτουργιών που εκτελούνται. Ξεχωριστός διαιρέτης ρολογιού για κάθε περιφερειακό για περαιτέρω εξοικονόμηση ενέργειας. Έτσι επιτυγχάνεται εξοικονόμηση ενέργεια της τάξεως 20% έως 30%. Ενσωματωμένος κρυσταλλικός ταλαντωτής με εύρος λειτουργίας από 1MHz έως 25MHz. Ενσωματωμένος PLL (Phase-Locked Loop) ο οποίος επιτρέπει την λειτουργία του επεξεργαστή στο μέγιστο βαθμό χωρίς να χρειαστεί κάποιος κρύσταλλος υψηλής συχνότητας. Για την τροφοδοσία του μπορεί να χρησιμοποιηθεί ο κυρίως ταλαντωτής, ο εξωτερικός RC ταλαντωτής η ο RTC ταλαντωτής. Άλλα περιφερικά όπως, MP3 αποκωδικοποιητής, ψηφιακό επιταχυνσιόμετρο 3-αξόνων με ακρίβεια 11-bit, υποδοχή SD/MMC κάρτας μνήμης, 160 ακροδέκτες Ι/Ο γενικού σκοπού με διαμορφώσιμες αντιστάσεις, 10-bit ADC με πολυπλεξία εισόδου ανάμεσα σε 8 αντιστάσεις και 10-bit DAC, τέσσερα ρολόγια και απαριθμητές γενικού σκοπού, δυο τμήματα PWM/ρολογιού με υποστήριξη για έλεγχο τριφασικών κινητήρων και μια επιπρόσθετη σειρά εισόδων απαρίθμησης για κάθε PWM, RTC με ξεχωριστή πηγή ενέργεια και ρολόι APB που μπορούν να χρησιμοποιηθούν σαν πηγή ρολογιού, WDT (WatchDog Timer) το οποίο μπορεί να χρονιστεί 30