340 likes | 848 Views
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.
E N D
USART SPI I2C CAP COMP PWM EEPROM A / D D / A Display Drivers Power Drivers FLASH EstructuraMicrocontrolador 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
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 C P U Program & Data Memory • Arquitectura Von-Neumann • El programa de instrucciones y los datoscomparten la mismamemoria 8 = 8 C P U • Arquitectura Harvard • Utiliza dos espacios de memoriadistintosparalasinstrucciones y los datos. Estopermiteutilizardistintoancho de bus en ambos buses. Data Memory Program Memory 12 14 16 24 8 16
Características de los Microcontroladores • CISC (ComplexInstruction 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 (ReducedInstruction 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 (SpecificInstruction 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 • Opciones de Memoria • EEPROM (ElectricallyErasable 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 • 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 • 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 • 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.