ARQUITECTURA, CONSTRUCCION Y COMPOSICION DEL PIC 16F84
Enstudiaremos la estructura del PIC16F84A con el fin de entender mejor su funcionamiento. Empezaremos con una relación de sus principales características:
- Repertorio de 35 Instrucciones.
- Todas las instrucciones se ejecutan en un solo ciclo excepto las de salto que necesitan dos.
- Versiones para bajo consumo (16LF84A), de 4 MHz (PIC16F84A-04) y 20 MHz (PIC16F84A-20). Un ciclo máquina del PIC son 4 ciclos de reloj, por lo cual si tenemos un PIC con un cristal de 4 MHz, se ejecutarán 1 millón de instrucciones por segundo.
- Memoria de programa Flash de 1 K x 14 bits.
- Memoria RAM dividida en 2 áreas: 22 registros de propósito específico (SFR) y 68 de propósito general (GPR) como memoria de datos.
- 15 registros de funciones especiales.
- Memoria de datos RAM de 68 bytes (68 registros de proposito general).
- Memoria de datos EEPROM de 64 bytes.
- Contador de programa de 13 bit (lo que en teoría permitiría direccionar 4 KB de memoria, aunque el 16F84 solo dispone de 1KB de memoria implementada).
- Pila con 8 niveles de profundidad.
- Modos de direccionamiento directo, indirecto y relativo.
- ALU de 8 bits y registro de trabajo W del que normalmente recibe un operando que puede ser cualquier registro, memoria, puerto de Entrada/Salida o el propio código de instrucción.
- 4 fuentes de interrupciones:
- A través del pin RB0/INT.
- Desbordamiento del temporizador TMR0.
- Interrupción por cambio de estado de los pins 4:7 del Puerto B.
- Completada la escritura de la memoria EEPROM.
- 1.000.000 de ciclos de borrado/escritura de la memoria EEPROM.
- 40 años de retención de la memoria EEPROM.
- 13 pins de E/S con control individual de dirección.
- PortA de 5 bits <RA0:RA4>.
- PortB de 8 bits <RB0:RB7>.
- Contador/Temporizador TMR0 de 8 bits con divisor programable.
- Power-on Reset (POR).
- Power-up Timer (PWRT).
- Oscillator Start-up Timer (OST).
- Watchdog Timer (WDT).
- Protección de código.
- Modo de bajo consumo SLEEP.
- Puede operar bajo 4 modos diferentes de oscilador.
- Programación en serie a través de dos pins.
- Tecnología de baja potencia y alta velocidad CMOS Flash/EEPROM.
- Características eléctricas máximas (no deben ser superadas y de mantenerse por un tiempo en algún máximo puede dañarse al PIC)
- Temperatura ambiente máxima para funcionamiento de -55°C to +125°C.
- Tensión máxima de VDD respecto a VSS de -0,3 a +7,5V.
- Tensión de cualquier patilla con respecto a VSS (excepto VDD, MCLR, y RA4) de -0,3V a (VDD + 0.3V).
- Tensión en MCLR con respecto a VSS -0,3 a +14V.
- Tensión en RA4 con respecto a VSS -0,3 a +8,5V.
- Disipación de potencia total de 800 mW.
- Máxima corriente de salida a VSS 150 mA.
- Máxima corriente de salida de VDD 100 mA.
- Máxima corriente del puerto "A" como fuente, 50 mA.
- Máxima corriente del puerto "A" como sumidero, 80 mA.
- Máxima corriente del puerto "B" como fuente, 100 mA.
- Máxima corriente del puerto "B" como sumidero, 150 mA.
- Máxima corriente que puede suministrar una sóla salida como fuente o sumidero, 25 mA.
- Rango de alimentación:
- 16LF84A: de 2 a 5,5 V en configuración de oscilador XT, RC y LP.
- 16F84A:
- de 4 a 5,5 v en configuración de oscilador XT, RC y LP.
- de 4,5 a 5.5 v en configuración de oscilador HS.
- Consumo típico:
- 16LF84A:
- de 1 a 4 mA en configuración de oscilador RC y XT (FOSC=2 MHz, VDD=5,5V).
- de 15 a 45 μA en configuración de oscilador LP (FOSC=32kHz, VDD=2V, WDT deshabilitado).
- 16F84A:
- de 1,8 a 4.5 mA en configuración de oscilador RC y XT (FOSC=4 MHz, VDD=5,5V).
- de 3 a 10 mA en configuración de oscilador RC y XT durante la programación de la FLASH (FOSC=4MHz, VDD=5,5V).
- 16F84A-20: de 10 a 20 mA en configuración de oscilador HS (FOSC=20 MHz, VDD=5,5V).
Las altas prestaciones de los microcontroladores PIC derivan de las características de su arquitectura. Están basados en una arquitectura tipo Harvard que posee buses y espacios de memoria por separado para el programa y los datos, lo que hace que sean más rápidos que los microcontroladores basados en la arquitectura tradicional de Von Neuman.
Otra característica es su juego de instrucciones reducido (35 instrucciones) RISC, donde la mayoría se ejecutan en un solo ciclo de reloj excepto las instrucciones de salto que necesitan dos.
Posee una ALU (Unidad Aritmético Lógica) de 8 bits capaz de realizar operaciones de desplazamientos, lógicas, sumas y restas. Posee un Registro de Trabajo (W) no direccionable que usa en operaciones con la ALU.
Dependiendo de la instrucción ejecutada, la ALU puede afectar a los bits de Acarreo , Acarreo Digital (DC) y Cero (Z) del Registro de Estado (STATUS).
La pila es de 8 niveles. No existe ninguna bandera que indique que esté llena, por lo que será el programador el que deberá controlar que no se produzca su desbordamiento.
Este microcontrolador posee caracterísitcas especiales para reducir componentes externos con lo que se reducen los costos y se disminuyen los consumos. Posee 4 diferentes modos de oscilador, desde el simple circuito oscilador RC con lo que se disminuyen los costos hasta la utilización de un oscilador a cristal.
En el modo SLEEP el consumo se reduce significativamente y puede ‘despertarse’ al microcontrolador utilizando tanto interrupciones internas como externas y señal de reset. Además posee la función Watchdog Timer (Perro Guardian) que protege al micro de ‘cuelgues’ debido a fallos software que produzcan bucles infinitos.
Esquema de diseño de Un Microcontrolador.
En las siguientes gráficas se muestra los diferentes tipos de arquitecturas y el diagrama de bloque de un Microcontrolador:
Arquitectura Von Neumann
Arquitectura Harvard
Fabricantes y Novedades:
Analog Devices:
Integra convertidores A/D y D/A de altas prestaciones en la que le han añadido un microcontrolador de 8 bits del 8051 con Flash. Además incluye un sensor de temperatura, un multiplexor de entrada, una circuitería para la calibración del convertidor, referencia de tensión, etc. Es la familia AduC8xx, con convertidores de 12 bits, 16 y 24 bits.
Analog Devices:
Integra convertidores A/D y D/A de altas prestaciones en la que le han añadido un microcontrolador de 8 bits del 8051 con Flash. Además incluye un sensor de temperatura, un multiplexor de entrada, una circuitería para la calibración del convertidor, referencia de tensión, etc. Es la familia AduC8xx, con convertidores de 12 bits, 16 y 24 bits.
Cypress:Ha fabricado lo que puede ser la cuarta generación de microcontroladores con Flash de 8 bits con Periféricos Analógicos y Digitales Programables a muy bajo costo. Los denominan PSOC (Sistema Programable integrado en un microcontrolador, desde 8 pins y 4Kbytes de Flash hasta 48 pins y 16Kbytes de Flash. Los bloques PSoC Digitales pueden actuar como ‘timers’, contadores, puertos serie, generadores de CRC o generadores de números pseudo-aleatorios. Los bloques PSoC también se pueden interconectar para aumentar su precisión (por ejemplo, dos contadores de 8 bits hacen un contador de 16 bits). Los bloques PSoC Analógicos consisten en circuitos amplificadores operacionales programables que pueden configurarse para realizar un juego de funciones periféricas analógicas típicas. Pueden ser programados a través de unos registros para interconectar y ajustar el circuito amplificador operacional apropiado para crear el resultado deseado.
Entre los periféricos típicos que se puede crear hay amplificadores, DACs, ADCs, drivers analógicos y filtros pasaaltos, pasa-bajos y pasa-banda.
Hitachi:Cubre los 8, 16 y 32 bits sobre todo con muchas E/S, con Flash, con una buena relación Prestaciones/Precio, sobre todo en los 16 bits.
Intel:Está centrado en los microprocesadores de 32 bits 386, 486, Pentium procedentes del mundo del PC y últimamente con un sistema completo ARM de muy bajo consumo, para aplicaciones de mano.
Infineon:Está centrado en los microcontroladores de 8, 16 bits dedicados principalmente a la automoción, con bus CAN, aunque son OTP.
Motorola:
Cubre los 8, 16 y 32 bits, centrándose en los 8 bits con una familia muy amplia en capacidades y patillajes; y en los 32 bits de bajo costo con la familia ColdFire, MCore y PowerPC. Es la familia más completa y evolutiva, compatible en software desde hace veinte años con el 6805, 68HC11 y el 68000.
Philips:Ha expandido y evolucionado los 8051, con versiones Flash con ISP y IAP, y con versiones de alta velocidad. También los LPC (LowPinCount) de pequeño patillaje, UART incorporada y también DAC o PWM según el modelo, aparecerán próximamente con Flash.
ST Microelectronics:Avanza en los 8 bits con la Flash con la familia ST7 y en 32 bits con el STPC (un PC en un xip). También acaba de presentar la familia ST5 especializada en lógica difusa, para control industrial y control de motores. Integran una CPU y además un coprocesador Fuzzy, llamado Decision Processor, que realiza:
- Hasta 8 Entradas y 2 Salidas para Algoritmos de Decisión
- Pautas de Decisión hasta la capacidad de la memoria
- Resolución de datos de 8/16-Bits
- Acumulador de 20-Bits
- Multiplicación y División por hardware
- Acumulación por hardware
- Mínimo hardware y cálculos Máximos
- 3 bytes para Pautas de Decisión
- Tiempo de ejecución 2,9 us de Pautas de Decisión
- Manejo de Funciones de Decisión
- Decodificación de Instrucciones Fuzzy
- Manejo de variables Fuzzy
- Manejo de Interrupciones Fuzzy
- Cómputo de pautas
- Registros de Decisión especializados
Texas Instruments:
Es el líder absoluto en bajo consumo, en una estructura de 16 bits Flash de un bajo costo, con la familia MSP430. Todo equipo con batería tiene esta familia de microcontroladores para que tenga una larga vida sin cambiar la batería.
En la gráfica anterior se pueden ver los consumos en los diferentes Modos de consumo: Activo, LPM0, 2, 3 y 4, del MSP430. En la otra gráfica se pueden ver los picos de consumo al despertarse el microcontrolador, que no se pueden comparar con otros micros de bajo consumo.
Es el líder absoluto en bajo consumo, en una estructura de 16 bits Flash de un bajo costo, con la familia MSP430. Todo equipo con batería tiene esta familia de microcontroladores para que tenga una larga vida sin cambiar la batería.
En la gráfica anterior se pueden ver los consumos en los diferentes Modos de consumo: Activo, LPM0, 2, 3 y 4, del MSP430. En la otra gráfica se pueden ver los picos de consumo al despertarse el microcontrolador, que no se pueden comparar con otros micros de bajo consumo.
Arquitectura Harvard: Tradicionalmente los microprocesadores se basan en la estructura de Von Neumann, como la de la figura siguiente, que se caracteriza por disponer de una única memoria principal en la que se almacenan los datos y las instrucciones. A esta memoria se accede a través de un sistema de buses único:
- Bus de datos
- Bus de direcciones
- Bus de control
Arquitectura según el modelo de Von Neumann
El modelo Harvard , representado en la figura siguiente, dispone de dos memorias:
- Memoria de datos
- Memoria de Programa
Además cada memoria dispone de su respectivo bus, lo que permite, que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones. Como los buses son independientes éstos pueden tener distintos contenidos en la misma dirección .
Arquitectura según el modelo HARVARD
Arquitectura OrtogonalArquitectura Ortogonal: Cualquier instrucción puede utilizar cualquier elemento de la arquitectura como fuente o destino.
Arquitectura basada en banco de registrosArquitectura basada en banco de registros: Implica que todos los elementos del sistema, es decir, temporizadores, puertos de entrada/salida, posiciones de memoria, etc, están implementados físicamente como registros.
En los PIC el manejo del banco de registros, que participan activamente en la ejecución de las instrucciones, es muy interesante al ser ortogonales. En la figura siguiente se muestra como la ALU (Unidad Aritmético-Lógica) efectúa sus operaciones con dos operandos, uno que proviene del registro W (Work), que en otras CPUs recibe el nombre de Acumulador, y el otro que se encuentra en cualquier otro registro o del propio código de instrucción.
Registros que pueden enviar datos a la ALU. El resultado puede ir a cualquier registro o al registro W
Arquitectura Harvard: Tradicionalmente los microprocesadores se basan en la estructura de Von Neumann, como la de la figura siguiente, que se caracteriza por disponer de una única memoria principal en la que se almacenan los datos y las instrucciones. A esta memoria se accede a través de un sistema de buses único:
- Bus de datos
- Bus de direcciones
- Bus de control
Arquitectura según el modelo de Von Neumann
El modelo Harvard , representado en la figura siguiente, dispone de dos memorias:
- Memoria de datos
- Memoria de Programa
Además cada memoria dispone de su respectivo bus, lo que permite, que la CPU pueda acceder de forma independiente y simultánea a la memoria de datos y a la de instrucciones. Como los buses son independientes éstos pueden tener distintos contenidos en la misma dirección .
Arquitectura según el modelo HARVARD
Arquitectura OrtogonalArquitectura Ortogonal: Cualquier instrucción puede utilizar cualquier elemento de la arquitectura como fuente o destino.
Arquitectura basada en banco de registrosArquitectura basada en banco de registros: Implica que todos los elementos del sistema, es decir, temporizadores, puertos de entrada/salida, posiciones de memoria, etc, están implementados físicamente como registros.
En los PIC el manejo del banco de registros, que participan activamente en la ejecución de las instrucciones, es muy interesante al ser ortogonales. En la figura siguiente se muestra como la ALU (Unidad Aritmético-Lógica) efectúa sus operaciones con dos operandos, uno que proviene del registro W (Work), que en otras CPUs recibe el nombre de Acumulador, y el otro que se encuentra en cualquier otro registro o del propio código de instrucción.
Registros que pueden enviar datos a la ALU. El resultado puede ir a cualquier registro o al registro W