UBC104 Embedded Systems. Review: Introduction to Microcontrollers. Processors. General purpose processors: 80386 Pentium Core Duo Large number of pins External memory External peripherals . * Figure from Intel 386 DX Datasheet. General Purpose Registers.
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
Processors • General purpose processors: • 80386 • Pentium • Core Duo • Large number of pins • External memory • External peripherals * Figure from Intel 386 DX Datasheet UBC 104 Embedded Systems
General Purpose Registers • Registers are dedicated for moving data • EAX, EBX, ECX, EDX: general purpose registers • EBP: Base pointer • ESP: Stack pointer • ESI, EDI: Index register UBC 104 Embedded Systems
Accessing Ports in C void main (void) { unsigned int i; /* Delay var */ unsigned char j; /* LED var */ while (1) { /* Loop forever */ for (j=0x01; j< 0x80; j<<=1) { /* Blink LED 0, 1, 2, 3, 4, 5, 6 */ P1 = j; /* Output to LED Port */ for (i = 0; i < 10000; i++) { /* Delay for 10000 Counts */ wait (); /* call wait function */ } } for (j=0x80; j> 0x01; j>>=1) { /* Blink LED 6, 5, 4, 3, 2, 1 */ P1 = j; /* Output to LED Port */ for (i = 0; i < 10000; i++) { /* Delay for 10000 Counts */ wait (); /* call wait function */ } } } } UBC 104 Embedded Systems
Summary • General information about 8051 • Special Function Registers (SFRs) • Control of functionality of uController • Ports • Input/Output of uController UBC 104 Embedded Systems
Tasks for Microcontroller • Controlling of processes (autonomic) • e.g. speed of vehicles, chemical processes • Control of devices through human operator • e.g. remote control, etc UBC 104 Embedded Systems
Topics for the Following Lectures • Interrupts & Timers • Communication • Analog to digital (A/D) conversation • Pulse Width Modulation UBC 104 Embedded Systems
Today’s Topics • Interrupts • Timers UBC 104 Embedded Systems
Interrupts Definition of ‘Interrupt’ Event that disrupts the normal execution of a program and causes the execution of special instructions UBC 104 Embedded Systems
Interrupts Program time t UBC 104 Embedded Systems
Interrupts Interrupt Program time t UBC 104 Embedded Systems
Interrupts Interrupt Program Program Interrupt Service Routine time t UBC 104 Embedded Systems
Interrupt Handling Address space in code space • Code that deals with interrupts: Interrupt Handler or Interrupt Service Routines (ISRs) UBC 104 Embedded Systems
Interrupt Handling • Code that deals with interrupts: Interrupt Handler or Interrupt Service Routines (ISRs) • Possible code: void ISR(void) interrupt 1 { ++interruptcnt; } Interrupt number UBC 104 Embedded Systems
9 fahr= (cent * ) +32 5 Interrupts Interrupt Program mov R1, cent mul R1, 9 div R1, 5 add R1, 32 mov fahr, R1 time t UBC 104 Embedded Systems
Interrupts Interrupt Program Program Interrupt Service Routine mul R1, 9 mov R1, cent mov R1, 0x90 mov sensor, R1 ret time t UBC 104 Embedded Systems
Interrupts Interrupt Program Program Save Context Restore Context Interrupt Service Routine mul R1, 9 mov R1, cent time t UBC 104 Embedded Systems
Interrupts Interrupt Program Program Save Context Restore Context Interrupt Service Routine mul R1, 9 mov R1, cent eg push R1 eg pop R1 time t UBC 104 Embedded Systems
Interrupt Overheads Interrupt arrives Complete current instruction Save essential register information Vector to ISR Save additional register information Execute body of ISR Restore other register information Return from interrupt and restore essential registers Resume task Interrupt Latency Interrupt Termination UBC 104 Embedded Systems
Interrupt Response Time Interrupt Latency Interrupt Response Time= Interrupt Latency + Time in Interrupt Routine UBC 104 Embedded Systems
Interrupts • Internal or External • Handling can be enabled/disabled • Prioritized • General 8051: • 3x timer interrupts, • 2x external interrupts • 1x serial port interrupt UBC 104 Embedded Systems
Interrupt Priorities • Each interrupt source has an inherent priority associated with it UBC 104 Embedded Systems
Interrupt Priorities • Priorities can be adapted by programs • Original 8051 provides 1-bit per interrupt to set the priority UBC 104 Embedded Systems
External Interrupts • External Interrupts: Level- or edge-triggered UBC 104 Embedded Systems
External Interrupts • External Interrupts: Level- or edge-triggered Level-triggered threshold t trigger point UBC 104 Embedded Systems
External Interrupts • External Interrupts: Level- or edge-triggered Level-triggered threshold t trigger point Edge-triggered t trigger point UBC 104 Embedded Systems
Timer • A timer is a counter that is increased with every time an instruction is executed e.g. 8051 with 12MHz increases a counter every 1.000 µs • General 8051 has 3 timer: • 2 16-bit timer • 1 16-bit timer with extra-functionality (introduced with the 8052) Timer/Counter Mode Control Register TMOD Timer/Counter Control Register TCON UBC 104 Embedded Systems