1 / 25

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ. ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Μελέτη των επεξεργαστών 32 bit της εταιρίας Microchip Technology και ανάπτυξη σειράς υποδειγματικών εφαρμογών Ευθυμία Τάσιου, ΑΕΜ 1563

Download Presentation

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΣΕΡΡΩΝΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Μελέτη των επεξεργαστών 32 bit της εταιρίας Microchip Technology και ανάπτυξη σειράς υποδειγματικών εφαρμογών Ευθυμία Τάσιου, ΑΕΜ 1563 Επιβλέπων: Ιωάννης Καλόμοιρος

  2. ΠΕΡΙΓΡΑΦΗ ΘΕΜΑΤΟΣ Στόχος αυτής της πτυχιακής είναι η εγκατάσταση των εργαλείων λογισμικού, η μελέτη της βασικής αρχιτεκτονικής της οικογένειας των μικροεπεξεργαστών PIC32, καθώς και ορισμένες πρακτικές εφαρμογές. Στις πρακτικές εφαρμογές θα μελετηθεί η ψηφιακή είσοδος/έξοδος δεδομένων, ο χρονισμός, οι διακοπές καθώς και η σειριακή επικοινωνία. Τέλος, θα χρησιμοποιηθεί ο C Compiler του περιβάλλοντος MPLAB.

  3. Αρχιτεκτονική Von-Newman, MIPS και RISC • O PIC32 είναι ο πρώτος μικροελεγκτής της οικογένειας των PIC που χρησιμοποιεί το μοντέλο Von-Newman. Δηλαδή, διαθέτει ένα διάδρομο 32-bits για τα δεδομένα και για τις εντολές του προγράμματος. • Ο μικροελεγκτής PIC32MX795F512L χρησιμοποιεί την αρχιτεκτονική MIPS.Ο πυρήνας MIPS βρίσκεται στην καρδιά του μικροελεγκτή. Η αρχιτεκτονική MIPS είναι μία απλή αρχιτεκτονική φόρτωσης και αποθήκευσης και βασίζεται στους καταχωρητές γενικού σκοπού. • Η αρχιτεκτονική RISC που χρησιμοποιεί ο PIC32MX795F512L χαρακτηρίζεται από αφθονία καταχωρητών γενικής χρήσης και τα υπολογιστικά συστήματα που χρησιμοποιούν αυτή την αρχιτεκτονική εκτελούν εφαρμογές με μεγάλη ταχύτητα.

  4. Κεντρική Μονάδα Επεξεργασίας (CPU) του PIC32 Η CPU χρησιμοποιεί την αρχιτεκτονική RISC 32-bit. Στη CPU υπάρχουν δύο εσωτερικοί διάδρομοι για την σύνδεση με όλα τα περιφερειακά. Η περιφερειακή γέφυρα διασυνδέει μεταξύ τους τον ελεγκτή διακοπών, τoυς διαύλους DMA, τον δίαυλο Controller Area Network (CAN) και τους Ethernet controllers, με τα in-circuit κυκλώματα εντοπισμού σφαλμάτων και τα USB περιφερειακά. Επίσης, η CPU εκτελεί εργασίες υπό τον έλεγχοτου προγράμματος.

  5. Η Μνήμη του Συστήματος Μνήμη • Η μνήμη είναι μια ολοκληρωμένη συσκευή του μικροελεγκτή.Το μέγεθος της καθορίζει το κόστος και την διαθεσιμότητα του προϊόντος. Ο πυρήνας MIPS βρίσκεται στην καρδιά του PIC32 και επιτρέπει τον διαχωρισμό του χώρου της μνήμης σε χώρο κατάλληλο για εφαρμογές χρήστη και σε χώρο για τις εφαρμογές του λειτουργικού συστήματος. Ο διαχωρισμος αυτός έχει ως στόχο την ακεραιότητα των εφαρμογών και την προστασία των δεδομένων. Μνήμη CACHE • H μνήμη CACHE του PIC32MX795F512L είναι στα 256byte και αποτελεί το πρώτο επίπεδο μνήμης στο υπολογιστικό σύστημα. Ο ρόλος της είναι να βελτιώνει την ταχύτητα του συστήματος. Επίσης, τοποθετείται μεταξύ της CPU και της RAM και εκεί αποθηκεύονται τα δεδομένα και οι εντολές που χρησιμοποιούνται πιο συχνά.

  6. Διαχείριση I/O (PORTS) Η διαχείριση εισόδου/εξόδου στο σύστημα χρησιμεύει για την ανάγνωση και την εγγραφή των δεδομένων. Η επικοινωνία του PIC γίνεται μέσω θυρών με τα pins. Ο PIC32MX795F512L χρησιμοποιεί την PORTD η οποία απoτελείται από 13 bits.Χρησιμοποιείται ο καταχωρητής TRIS για να ελέγχεται αν μία θύρα είναι είσοδος (λογικό 1) ή έξοδος (λογικό 0). Επιπλέον, ανάλογα με την λογική κατάσταση που βρίσκονται οι ακροδέκτες οι ψηφιακές είσοδοι μπορεί να ενεργοποιούν κάποια διακοπή. Τέλος, τα δεδομένα παραμένουν στη έξοδο μιας θύρας μέχρι να αλλάξει.

  7. Διαχείριση χρονισμού Οι χρονιστές είναι κυκλώματα που υπάρχουν στο εσωτερικό του μικροελεγκτή και χρησιμοποιούνται για τον συγχρονισμό μιας εφαρμογής. Κάθε χρονιστής διαθέτει έναν καταχωρητή που αυξάνεται βάση μιας πηγής χρονισμού. Οι οικογένεια PIC32 έχει διάφορους χρονιστές. Στις συγκεκριμένες εφαρμογές χρησιμοποιείται ο timer1 και ο timer2. • O timer1 λειτουργεί ως χρονιστής ή ως απαριθμητής. Διαθέτει ξεχωριστό κύκλωμα χρονισμού από το κεντρικό σύστημα. Ο καταχωρητής TMR1 αυξάνεται κατά ένα με κάθε παλμό της πηγής. • Ο timer2 δεν λειτουργεί σας απαριθμητής. Διαθέτει έναν διαιρέτη συχνότητας, τον καταχωρητή TMR2 και τον καταχωρητή περιόδου PR2. Επιπλέον ο timer2 διαθέτει έναν δεύτερο διαιρέτη συχνότητας (postscaler).

  8. Διαχείριση Σημάτων Διακοπής Τα σήματα διακοπής αποτελούν τον πιο αποδοτικό τρόπο χρήσης της CPU. Όταν δεχθεί μία διακοπή, η CPU σταματά την εκτέλεση του προγράμματος, αποθηκεύει τη διεύθυνση της επόμενης εντολής στον καταχωρητή στοίβας, πηγαίνει στην εντολή του κυρίους προγράμματος και συνεχίζει την εκτέλεση από εκεί. Ο πυρήνας MIPs περιέχει όλα τα interrupts. Οι πηγές διακοπών διοχετεύονται από μία ή περισσότερες ρουτίνες εξυπηρέτησης διακοπών. Ο PIC32 προσφέρει έναν εναλλακτικό μηχανισμό που χρησιμοποιεί διακοπές vectored και σύνολα multiple register.

  9. Σειριακή Επικοινωνία Η σειριακή επικοινωνία είναι μία μέθοδος μετάδοσης δεδομένων ανάμεσα σε μία περιφερειακή συσκευή και έναν υπολογιστή. Η σειριακή επικοινωνία είναι πολύ δημοφιλής επειδή οι περισσότεροι υπολογιστές έχουν μία ή περισσότερες θύρες και έτσι χρειάζεται μόνο ένα καλώδιο για τη σύνδεση περιφερειακής συσκευής με τον υπολογιστή ή των δύο υπολογιστών. Η σειριακή επικοινωνία χωρίζεται σε: • σύγχρονη σειριακή επικοινωνία. • ασύγχρονη σειριακή επικοινωνία.

  10. Ασύγχρονη Σειριακή Επικοινωνία Στο ασύγχρονο σειριακό interface δεν υπάρχει γραμμή ρολογιού, υπάρχουν μόνο δύο γραμμές -TX και –RX που χρησιμοποιούνται αντίστοιχα για είσοδο και έξοδο των δεδομένων. Η διεπαφή UART είναι η παλαιότερη διεπαφή που χρησιμοποιείται. Για την βασική λειτουργία της θα χρησιμοποιηθεί ο Explorer16. Αυτός μπορεί να είναι συνδεδεμένος σε οποιαδήποτε σειριακή θύρα του PC και μαζί με το πρόγραμμα Windows Hyper Terminal ανταλλάσσονται δεδομένα. Η ασύγχρονη σειριακή επικοινωνία χαρακτηρίζεται για την απλότητα της και για το χαμηλό κόστος των εφαρμογών της.

  11. Pic32 Ethernet Starter Kit Στην διπλανή εικόνα βλέπουμε το αναπτυξιακό που χρησιμοποιούμε. Το PIC32 Ethernet Starter Kit.

  12. Ο EXPLORER 16 ΟEXPLORER16 ο οποίος χρησιμοποιείται για την ασύγχρονη σειριακή επικοινωνία

  13. PICKit 3 Το PICK it 3 είναι ένα κύκλωμα χαμηλού κόστους,χρησιμοποιείται για τον εντοπισμό σφαλμάτων και για την ανάπτυξη λογισμικού των μικροελεγκτών PIC

  14. INPUT-OUTPUT ΘΥΡΩΝ Στον παρακάτω κώδικα παρουσιάζεται μία εφαρμογή των LEDS που ανάβουν με το πάτημα των SWITCHES αντίστοιχα. while(1) { if(PORTD==0x2080) { DelayMs(100); PORTD=0x01; // Set LED0 ON DelayMs(100) PORTD=0x00; } // Set LED0 OFF

  15. if(PORTD==0x2040) { DelayMs(100); PORTD=0x02; // Set LED1 ON DelayMs(100); PORTD=0x00; } // Set LED1 OFF

  16. if(PORTD==0x00C0) { DelayMs(100); PORTD=0x04; // Set LED2 ON DelayMs(100); PORTD=0x00; // Set LED2 OFF } } return 0; }

  17. Χρονισμός Χρονική καθυστέρηση με χρήση του timer1 και τα LED1 και LED2 αναβοσβήνουν. #include <plib.h> //External Crystal Frequency=8MHz //Configuration Bits are set in code: #pragma config POSCMOD=XT //Primary Oscillator Mode=Crystal Oscillator (XT) #pragma config FNOSC=PRIPLL //Select Primary Oscillator with PLL Circuit #pragma config FPLLIDIV=DIV_2 //PLL Input Divider 1:2 #pragma config FPLLMUL=MUL_20 //PLL Multiplier x20 #pragma config FPLLODIV=DIV_1 //System PLL output clock divider 1:1 System Clock=80MHz

  18. #pragma config FPBDIV=DIV_4 //Periferal Clock divisor 1:4. Periferal BusClock=20MHz #pragma config FWDTEN=OFF //Watchdog Timer disable #pragma config CP=OFF //Code Protection OFF #pragma config BWP=OFF //Boot Flash Write Protect is OFF #define DELAY 39062 //The relation is: Realdelay=Period_of_the_Peripheral_bus_Clock*Prescaler value (256)*DELAY // We want Real delay=500ms main() { //Initialize Registers //configure all PORTD pins TRISD=0; //Configure all RD pins as output

  19. //Output zeroes on PORTD PORTD=0x0000;//Turn Leds OFF T1CON=0x8030; //We set TON=1, TCS=0, TCKPS=11 (Prescaler=1:256),TGATE=0, TSYNC=0, SIDL=0 PR1=0xFFFF; // We set the Period Register to the maximum value //Main Loop while(1) //loop endlessly { PORTD=0x01; //Turn LED1 ON, LED2 OFF TMR1=0; while(TMR1<DELAY) {} //wait 0,5 s

  20. PORTD=0x02; //Turn LED2 ON, LED1 OFF TMR1=0; while (TMR1<DELAY) {} //wait 0,5 s } }

  21. Διαχείριση Διακοπών Διακοπή του ακροδέκτη RD0. To LED3 ανάβει και καλείται η υπορουτίνα εξυπηρέτησης της διακοπής. #include <plib.h> int count=0; #pragma interrupt InterruptHandler ipl1 vector 0 //INT0 External Interrupt, Priority level 1. void InterruptHandler(void) //ISR { count++; //Increase count at each interrupt PORTD=~PORTD; // PORTD toggles at each interrupt mINT0ClearIntFlag(); }

  22. main() { TRISD=0x01; //RD0/INT0 is INPUT PORTD=4; //RD2 ON //INTCONbits.INT0EP=1; Define pulse edge at INT0 mINT0SetIntPriority(1); INTEnableSystemSingleVectoredInt(); mINT0IntEnable(1); while(1) //Endless loop. It waits for the interrupt here. {} }

  23. Συμπεράσματα Το σύστημα που χρησιμοποιήσαμε είναι ένα εύχρηστο σύστημα. Ο μικροελεγκτής PIC32MX795F512L παρέχει πολλές δυνατότητες στον χρήστη μαζί με την χρήση του MPLAB. Η ευελιξία του οφείλεται στα περιφερειακά και στο πλήθος των ακροδεκτών για είσοδο και έξοδο δεδομένων. Η ασύγχρονη σειριακή επικοινωνία κάνει τον μικροελεγκτή δυνατό σε εφαρμογές επικοινωνίας με άλλες συσκευές.

  24. ΕΥΧΑΡΙΣΤΩ ΓΙΑ ΤΗΝ ΒΟΗΘΕΙΑ ΣΕ ΟΛΗ ΤΗΝ ΔΙΑΡΚΕΙΑ ΤΗΣ ΕΡΓΑΣΙΑΣ ΤΟΝ ΕΠΙΒΛΕΠΟΝΤΑ ΚΑΘΗΓΗΤΗ ΤΗΣ ΠΤΥΧΙΑΚΗΣ: Δρ. Ιωάννη Καλόμοιρο

  25. ΕΥΧΑΡΙΣΤΩ ΓΙΑ ΤΗΝ ΠΡΟΣΟΧΗ ΣΑΣ

More Related