Estructura Microcontrolador CPU. Memoria RAM de datos. Memoria ROM/UVPROM/OTPROM de programa.

27
Estructura Microcontrolador – CPU. – Memoria RAM de datos. – Memoria ROM/UVPROM/OTPROM de programa. – Memoria EEPROM de datos. – Puertos de entrada-salida. – Temporizadores/contadores. – Sistemas de interrupción. – Módulos auxiliares: • Convertidores A/D. • USART. • Etc Display Drivers D / A A / D FLASH USART SPI I 2 C CAP COMP PWM EEPROM Power Drivers

description

USART SPI I 2 C. CAP COMP PWM. EEPROM. A / D. D / A. Display Drivers. Power Drivers. FLASH. Estructura Microcontrolador CPU. Memoria RAM de datos. Memoria ROM/UVPROM/OTPROM de programa. Memoria EEPROM de datos. Puertos de entrada-salida. Temporizadores/contadores. - PowerPoint PPT Presentation

Transcript of Estructura Microcontrolador CPU. Memoria RAM de datos. Memoria ROM/UVPROM/OTPROM de programa.

Page 1: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Estructura Microcontrolador– CPU.– Memoria RAM de datos.– Memoria ROM/UVPROM/OTPROM de programa.– Memoria EEPROM de datos.– Puertos de entrada-salida.– Temporizadores/contadores.– Sistemas de interrupción.– Módulos auxiliares:

• Convertidores A/D.• USART.• Etc

DisplayDrivers

D / AA / D

FLASH

USARTSPII2C

CAPCOMPPWM

EEPROM

PowerDrivers

Page 2: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

Tipo de Arquitectura

– Arquitectura Von-Neuman• Un único bus de datos para instrucciones y datos.• Las instrucciones del programa y los datos se guardan conjuntamente en una memoria

común.• Cuando la CPU se dirige a la memoria principal, primero accede a la instrucción y

después a los datos necesarios para ejecutarla, esto retarda el funcionamiento.

– Arquitectura Harvard• El bus de datos y el bus de instrucción están separados• Acceso en paralelo:

– Cuando se está leyendo una instrucción, la instrucción actual está utilizando el bus de datos. Una vez finalizada la instrucción actual, la siguiente ya está disponible en la CPU.

– Permite una ejecución más rápida.

Page 3: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

3

INTRODUCCIÓN A LOS MICROCONTROLADORES

Arquitectura Von-Neumann

• El programa de instrucciones y los datos comparten la misma memoria

C P U C P U

8 = 8

Program& DataMemory

Program& DataMemory

Arquitectura Harvard

• Utiliza dos espacios de memoria distintos para las instrucciones y los datos. Esto permite utilizar distinto ancho de bus en ambos buses.

DataMemory

DataMemory C P U C P U

816

ProgramMemory

ProgramMemory

12141624

Page 4: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

– CISC (Complex Instruction Set Computer)– El conjunto de instrucciones es bastante heterogéneo:

• Instrucciones son muy potentes. En algunos casos equivalen a muchas instrucciones simples.

• Instrucciones especializadas para una tarea concreta.• Facilita la programación.

– RISC (Reduced Instruction Set Computers)– Al tener un conjunto de instrucciones reducido:

• – El controlador es más sencillo y el chip es más pequeño.• – Es más rápido.• – Tiene un consumo menor.

– SISC (Specific Instruction Set Computer)– Incluyen instrucciones específicas para control:

• Instrucciones de entrada/salida eficaces y sencillas.• Instrucciones específicas para operar a nivel de bit.

Page 5: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

3. Opciones de Memoria

– EEPROM (Electrically Erasable PROM)• Muchos microcontroladores incorporan una pequeña memoria EEPROM

dentro del chip (Contiene parámetros que pueden cambiarse si la aplicación lo necesita).

• Es lenta.• El número de veces que se puede borrar/grabar está limitado.

– FLASH (EPROM)• Son más rápidas que las memoria EEPROM.• Permiten más ciclos de borrado/grabación.

Page 6: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

– Memoria RAM• Útiles para programas de gran tamaño.• Más rápida que las memorias no volátiles.• Número ilimitado de veces que puede grabarse.• Apropiada para aplicaciones con grandes cantidades de datos que

cambian contínuamente.

– Memoria Field programming/reprogramming• Memoria no volátil.• Puede reprogramase sin desconectar el microcontrolador.• Permite actualizaciones remotas.

Page 7: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

– Memoria OTP (One Time Programmable)• Un OTP es una memoria PROM que sólo puede grabarse una vez.• Se utiliza para pequeñas series.• Para probar el programa; antes de fabricar grandes cantidad de

microcontroladores con memorias ROM de máscara.• Como los ciclos de desarrollo de productos son cada vez más cortos, es

interesante para los fabricantes de microcontroladores ofrecer OTPs como una opción.

– ROM de máscara• Son interesantes para un gran número de unidades cuando el programa va

a ser el definitivo.• El tiempo de entrega es de 8 a 44 semanas.

Page 8: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

– Conversor Analógico Digital (A/D).• Convierte la tensión analógica a su valor digital.

– Pueden ser externos o internos al micro.– Existen, en general, tres tipos integrados:

» Aproximaciones sucesivas (común en micro).» Delta-Sigma (común en DSP).» Flash (rápido pero menos habitual).

– Conversores D/A.– Obtienen una tensión analógica a partir de un valor digital. – Conversor D/A con Modulador de ancho de Pulso (PWM).

– Otros Dispositivos.– Contador de pulsos: cada pulso incrementa un contador.– Entrada de Captura: sirve para medir intervalos de tiempo entre

eventos.– Comparadores analógicos.

Page 9: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

– Salidas en paralelo.• Son las más comunes y se suelen utilizar para controlar relés, led, displays,

LCD, transistores, etc.– Se caracterízan por una corriente máxima individual y una máxima

común.– Salidas de Potencia.

• Montaje Darlington.• Control de relé.• Control de triacs.

– Entradas en paralelo.• Son las comunes y se utilizan para lectura de pulsadores, teclados, en

general para leer el nivel lógico de la entrada. Pueden estas optoaisladas. – Entradas/Salidas.

– Permiten cambiar la patilla como salida o entrada en cada instante.

Page 10: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

6. Interrupciones y Polling– Transferencia de E/S por consulta (Polling)

• El polling es una técnica software en la que el microcontrolador pregunta constantemente al periférico si necesita ser atendido.

– Interrupciones• Cuando los periféricos necesitan ser atendidos por el microcontrolador se

lo comunican; de esta forma el micro puede atender a un programa principal (a diferencia del polling).

• Es una técnica más rápida en atender al periférico que el polling.• El micro recibe la interrupción, identifica quién la ha provocado, ejecuta la

rutina para atenderla y vuelve al programa principal.• Disparo de interrupciones:

– Por flanco (de subida o bajada).– Por nivel.

Page 11: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

– Interrupciones (cont.)• Interrupciones enmascarables

– Se pueden habilitar o inhibir de forma global o individual.• Interrupciones No enmascarables

– No se pueden inhibir, son de obligada atención.• Interrupciones vectorizadas

– Cuando se recibe una interrupción el micro debe localizar al periférico:» Preguntando a cada uno (modo muy lento).» Con las int. Vectorizadas donde cada uno se identifica por el bus

de datos.» Los micros de 4 bits no tiene interrupciones vectorizadas, los de 8,

16 y 32 tienen vectorizadas con jerarquía de prioridad.º

Page 12: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

7. Reset y Reloj– Inicialización o reset

• La mayoría de los micros disponen de un sistema de inicialización cuando se conectan a alimentación.

• Poseen, además, de una entrada de reset sensible a nivel

– Reloj• Todos los micros tienen integrado un oscilador y sólo necesitan un

elemento externo para fijar la frecuencia dentro del margen indicado. • Puede ser interno o externo con ayuda de un cristal de cuarzo, resonador

cerámico o una red RC.

Page 13: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• Características de los Microcontroladores

8. Características especiales– Watchdog (Perro Guardian).

• Un temporización que permite la recuperación del sistema ante un bloqueo.

• Si el programa entra en bucle infinito o si deja de funcionar el watchdog provoca un reset tras un tiempo predeterminado.

– Monitor de reloj (Clock Monitor).• Permite apagar el micro si la señal de reloj varia.

– Cargador del programa residente.• Al inicializar, el micro carga automáticamente el programa a ejecutar por

un puerto desde un lugar remoto (o desde el mismo micro).– Programa Monitor.

• Un programa instalado en el micro que permite desarrollos básicos y depuración de programas.

• Pueden comunicarse con un PC para ser ejecutado desde el mismo.

Page 14: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

•• CONTADOR DE PROGRAMA (PC)– A la memoria de programa de los PIC16 se accede mediante un registro de 13 bits que actúa como puntero de la instrucción que se debe ejecutar en el siguiente ciclo de instrucción.– Este registro de 13 bits se denomina Contador de Programa (Program Counter) y su acrónimo es PC.– Con este contador de programa de 13 bits se pueden direccionar 8K posiciones de memoria de 14 bits cada una. La memoria se organiza en páginas de 2K de tamaño.– Como cada instrucción ocupa una posición de memoria resulta mucho más fácil saber si un dispositivo tiene memoria de programa suficiente para una aplicación.

Page 15: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

•• CONTADOR DE PROGRAMA (PC)– Los 8K de memoria de programa disponible están divididos en 4 páginas de 2K cada una (0h–7FFh, 800h-FFFh, 1000h- 17FFh y 1800h-1FFFh). Esto es debido a que las instrucciones de salto y llamada a subprograma permiten cargar sólo 11 bits en el PC (desplazamiento en 211 = 2K)– Si se están ejecutando instrucciones secuencialmente, el contador de programa pasará de una página a otra sin necesidad de intervención por parte del usuario o programador.– Para saltar entre páginas de la memoria de programa los 2 bits más altos del PC deben modificarse. Esto se realiza escribiendo en el registro PCLATH (es un registro situado en la memoria de datos).– Los dispositivos con menos de 2K de memoria, como el PIC16F84, no necesitan paginado.

Page 16: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

CONTADOR DE PROGRAMA (PC)– El PC de 13 bits se divide en dos registros: PCH (parte alta) y PCL (parte baja).

– El byte bajo PC<0:7> se denomina PCL y está disponible en la memoria de datos (Banco 0, posición 02h), es un registro que se puede leer y escribir directamente desde programa. El “cuasibyte” alto PC<12:8> se denomina PCH y no está disponible en la memoria de datos. Este registro no se puede leer ni escribir directamente. La escritura debe realizarse usando los 5 bits menos significativos del registro PCLATH que sí es un registro de 8 bits accesible en la memoria de datos (Banco 0, posición 08h).– Los saltos relativos afectan a los 8 bits de menor peso del PC (PCL) y los 5 bits de mayor peso los aporta el PCLATH. En las instrucciones GOTO y CALL, los 11 bits de menor peso del PC se suministran desde el código de operación, los 2 bits de más peso del PC se cargan con los bits [4:3] del PCLATH. Con los 11 bits se posicionan los 2K de cada página y con los 2 bits se posiciona una de las 4 páginas.

Page 17: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

•• CONTADOR DE PROGRAMA (PC)– PILA (STACK)

• La pila permite almacenar las direcciones (PC) a donde debe retornar el programa cuando se finaliza una llamada a una subrutina o cuando se finaliza la ejecución de una rutina de interrupción.• Los microcontroladores de la familia PIC16 tienen una pila de 8 niveles x 13 bits, que por tanto permite concatenar como máximo 8 saltos a subrutinas (CALL) o ejecuciones de rutinas de interrupción (salto a 0004h).• El espacio de memoria para la pila no forma parte de la memoria de programa ni de la memoria de datos que tiene el microcontrolador. Es un espacio de memoria totalmente independiente. El puntero de pila no es leíble ni escribíble. • Al contrario que en otros micros, no se dispone de una pila en RAM que se pueda gestionar por software (no hay inst.“PUSH” ni “POP”)

Page 18: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• VECTOR DE RESET

– El vector de RESET está siempre en la posición 0000h de la memoria de programa.

– Cualquier reset (interno o externo) que se genere en un microcontrolador hará que su contador de programa pase a tener el valor 0000h y que por tanto el microcontrolador pase a ejecutar la instrucción situada en dicha posición.

– El RESET también limpia el contenido del registro PCLATH.

Page 19: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• VECTOR DE INTERRUPCIÓN

– El vector de INTERRUPCION está siempre en la posición 0004h de la memoria de programa.

– Cualquier interrupción que se fuerce a un microcontrolador hará que su contador de programa pase a tener el valor 0004h y que por tanto el microcontrolador pase a ejecutar la instrucción situada en dicha posición.

– El salto a la rutina de interrupción no modifica el contenido del PCLATH, por lo que cualquier modificación que se realice del PC en la rutina de interrupción debe realizarse con cuidado de lo que se tiene cargado en el PCLATH.

Page 20: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.

• MEMORIA DE DATOS– La memoria de datos esta distribuida hasta en 4 posibles bancos de 128 bytes (27) cada

uno. Por tanto, la máxima cantidad de memoria disponible en los microcontroladores PIC16 es de 512 bytes. No obstante, no están implementadas todas las posiciones de memoria en todos los bancos, ni todos los PIC de la gama disponen de todos los bancos.

– A cada posición de memoria se le denomina registro.

Page 21: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.
Page 22: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.
Page 23: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.
Page 24: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.
Page 25: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.
Page 26: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.
Page 27: Estructura Microcontrolador  CPU.  Memoria RAM de datos.  Memoria ROM/UVPROM/OTPROM de programa.