Download Presentación de PowerPoint

Document related concepts
no text concepts found
Transcript
• Estructura Microcontrolador
– CPU.
– Memoria RAM de datos.
– Memoria ROM/UVPROM/OTPROM de programa.
– Memoria EEPROM de datos.
– Puertos de entrada-salida.
– Temporizadores/contadores.
USART
SPI
I2C
EEPROM
CAP
COMP
PWM
– Sistemas de interrupción.
– Módulos auxiliares:
• Convertidores A/D.
A/D
D/A
• USART.
• Etc
Power
Drivers
FLASH
Display
Drivers
•
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.
INTRODUCCIÓN A LOS MICROCONTROLADORES
CPU
8=8
Data
Memory
CPU
8
16
Arquitectura Von-Neumann
Program
& Data
Memory
12
14
16
24
• El programa de instrucciones y los datos
comparten la misma memoria
Program
Memory
Arquitectura Harvard
• Utiliza dos espacios de memoria distintos
para las instrucciones y los datos. Esto
permite utilizar distinto ancho de bus en
ambos buses.
3
• 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.
• 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.
• 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.
• 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.
• 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.
• 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.
• 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.
• 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.º
• 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.
• 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.
•• 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.
•• 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.
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.
•• 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”)
• 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.
• 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.
• 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.