You are on page 1of 21

Unidad Didáctica 3: Microcontroladores & Interrupciones

Sistemas embebidos para tiempo real

Sistemas embebidos de tiempo real - Microcontroladores

1

Índice
• Primera clase
– Repaso – Arquitectura de microcontroladores – Comparación AVR vs. MSP430

• Segunda clase
– Fundamentos de las Interrupciones – Problema de datos compartidos – Latencia en las interrupciones

• Tercera clase
– Soluciones al problema de los datos compartidos
Sistemas embebidos de tiempo real - Microcontroladores 2

CISC – Harvard vs. tamaño de palabra.Arquitectura de microprocesadores • Repaso: µP vs. CPU.Microcontroladores 3 . • Arquitectura – RISC vs. µC. von Neuman • Comparación AVR vs. MSP430 Sistemas embebidos de tiempo real .

µControladores Figura modificada de “Fundamentals of Microcontrollers” de John Donovan (NXP) Sistemas embebidos de tiempo real .Microcontroladores 4 .µProcesadores vs.

Microcontroladores 5 .CPU: unidad central de proc. (core) • Tipos: – – – Figura extraida de “Fundamentals of Microcontrollers” de John Donovan (NXP) Acumulador Registros Pila (stack) Sistemas embebidos de tiempo real .

Microcontroladores 6 .) Figuras extraidas de http://es.org/wiki/Unidad_central_de_procesamiento Sistemas embebidos de tiempo real .wikipedia.CPU: pipeline (entubado de instr.

Microcontroladores 7 .Tamaño de palabra • Bus de datos • Bus de direcciones Figura extraida de “Fundamentals of Microcontrollers” de John Donovan (NXP) Sistemas embebidos de tiempo real .

RISC Complex Instruction Set Computing Reduced Instruction Set Computing Figura modificada de “Fundamentals of Microcontrollers” de John Donovan (NXP) Sistemas embebidos de tiempo real .Procesadores CISC vs.Microcontroladores 8 .

integer multiply (~ 80) • Procesador RISC (Reduced Instruction Set Computing) – conjunto de instrucciones reducidas y ortogonal – instrucciones de tamaño fijo (o varía muy poco) y similar formato – decodificación de instrucciones más fácil – ejecuta misma (aprox.Procesadores CISC vs. RISC • Procesador CISC (Complex Instruction Set Computing) – instrucciones de largo variable – decodificación de instrucciones complejo (microcoding) – número de ciclos de reloj de ejecución variable • Ejemplo: shift and rotate (2 ciclos).Microcontroladores 9 .) cantidad de ciclos Sistemas embebidos de tiempo real .

Arquitectura Harvard vs.Microcontroladores 10 . von Neumann Figura modificada de “Fundamentals of Microcontrollers” de John Donovan (NXP) Sistemas embebidos de tiempo real .

Sistemas embebidos de tiempo real . von Neumann • Arquitectura Harvard – Memorias de código y datos • espacio de memoria diferentes • caminos separados (exclusivos) hacia la CPU.Arquitectura Harvard vs. – Más flexible: • Fácilmente puede escribir en memoria e código • Pueden ejecutar código desde RAM • Arquitectura Harvard modificada – Contenido de la memoria de código puede ser leída como datos. – Más rápida • Arquitectura von Neumann – Código y datos son mapeados en uno solo espacio.Microcontroladores 11 .

Controlador de interrupciones Fuente: Figura modificada de “Fundamentals of Microcontrollers” de John Donovan (NXP) • Fundamental imporancia – señal asíncrona1 – flujo de ejecucion del programa – arquitectura de software 1 También sincrona para implementar llamadas al sistema 12 Sistemas embebidos de tiempo real .Microcontroladores .

– Prever mecanismo para reactivarse..Microcontroladores 13 .Modos de operación idle active pwr-dwn standby . • Idea básica: – Modos de bajo consumo: CPU y periféricos no usados.. – Modo de operación compatible con arquitectura Sistemas embebidos de tiempo real .

I/O: interfaces seriales • asíncorono – UART (Unversal Asynchronous Receiver / Trasmitter) • síncronos – SPI (Serial Peripheral Interface) – I2C (Inter Intergratd Circuit) • avanzados: – – – – USB (Universal Serial Bus) CAN (Controller Area NEtwork) Ethernet IEEE 802.4/Zigbee .15.

N-bits.) PC+ SR + SP Modos de direccionamiento Instruction set Modos de bajo consumo – Grupos: • MSP430 • AVR – Materiales • Manuales correspondientes . etc. frecuencia máxima Arquitectura y mapa de memoria Registros (cantidad. MSP430 • Actividad • Comparar los microcontroladores: ATmega vs. uso. MSP430 según: – – – – – – – Tipo procesador.Actividad en grupo • Contrapunto de microcontroladores: ATmega vs.

. Modos de operac.Tabla comparativa Atmega (AVR) Arq. MSP430 Sistemas embebidos de tiempo real .Microcontroladores 16 . procesador Frec.. Máxima Tamaño de palabra .

Block Diagram.Ejemplo de microcontrolador CPU Figura modificada de: "ATmega32 (L)“ datasheet (Figure 2. page 3) MCU (µC Unit): CPU + memoria + IO +… Fuente: "ATmega32 (L)“ datasheet (Figure 2. Block Diagram.Microcontroladores 17 . page 3) Sistemas embebidos de tiempo real .

= 2.Microcontroladores 18 . mem. – Grupos: • MSP430 • AVR (Atmega) – Materiales • Manuales correspondientes – Puesta en común • Comparación programas: complejidad. = a + b. int { a b c } main( void ) = 1. ciclos reloj. Sistemas embebidos de tiempo real . cant.Actividad en grupo • Compilación “manual” – Actividad • Bosquejar el código assembler del siguiente código C • Contabilizar: – memoria – ciclos int a. c. b.

Microcontroladores 19 .Comparación • AVR (Atmega) • MSP430 Sistemas embebidos de tiempo real .

0x16 bytes) Sistemas embebidos de tiempo real .Microcontroladores 20 . 0x2c bytes) • MSP430 – ciclos: 95-74 = 21 – memoria codigo: 22 (021E – 0233.Comparación • AVR (Atmega) – ciclos: 139-104 = 35 – memoria codigo: 44 (00000006-00000031.

Microcontroladores 21 .Bibliografía • “An Embedded Software Primer”David E. Simon – Chapter 4: Interrupts • “MSP430x1xx Familiy User's Guide” • “ATmega32 (L)” Sistemas embebidos de tiempo real .