Microcontroladores.
Origen
Inicialmente cuando no existan los microprocesadores las personas se ingeniaban en diseñar sus circuitos electrónicos y los resultados estaban expresados en diseños que implicaban muchos componentes electrónicos y cálculos matemáticos. Un circuito lógico básico requería de muchos elementos como transistores, resistencias.
Al principio se creía que el manejo de un microprocesador era para aquellas personas con un coeficiente intelectual muy alto; Por lo contrario con la aparición de este circuito integrado todo sería mucho más fácil de entender y los diseños electrónicos serian mucho más pequeños y simplificados.
Al principio se creía que el manejo de un microprocesador era para aquellas personas con un coeficiente intelectual muy alto; Por lo contrario con la aparición de este circuito integrado todo sería mucho más fácil de entender y los diseños electrónicos serian mucho más pequeños y simplificados.
Antecedentes.
Los microcontroladores están conquistando el mundo, pero la invasión acaba de comenzar y el nacimiento del siglo XXI será testigo de la conquista masiva de estos diminutos computadores, que gobernarán la mayor parte de los aparatos que se fabrican hoy en días. Cada vez existen más productos que incorporan un Microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamaño y costo, mejorar su fiabilidad.
Los microcontroladores están conquistando el mundo, pero la invasión acaba de comenzar y el nacimiento del siglo XXI será testigo de la conquista masiva de estos diminutos computadores, que gobernarán la mayor parte de los aparatos que se fabrican hoy en días. Cada vez existen más productos que incorporan un Microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tamaño y costo, mejorar su fiabilidad.
El funcionamiento y aplicaciones de los microcontroladores y los microprocesadores permiten profundizar en los aspectos tecnológicos de las arquitecturas de las nuevas computadoras, convirtiéndose de esta forma en una herramienta útil para el desarrollo de variadas aplicaciones que contribuyen al avance tecnológico y desarrollo integral de la sociedad. Estas aplicaciones que han surgido con propósitos, para solucionar las diversas necesidades existentes, que frustraban la realización de actividades ejecutadas por personas en los diferente escenarios industriales, empresariales entre otros.
Las circunstancias con las que nos encontramos hoy en el campo de los microcontroladores tienen sus raíces en el desarrollo de la tecnología de los circuitos integrados. Este desarrollo ha hecho posible contener cientos de miles de transistores en un solo chip. Ése era uno de los requisitos previos para la producción de los microprocesadores, y las primeras computadoras eran hechas agregando periféricos externos como la memoria, timers etc. lo que aumentaba el volumen de los circuitos integrados. Estos circuitos integrados contenían procesador y periféricos. Así es cómo se desarrollo el primer chip que contenía una microcomputadora, o lo que después se llegaría a conocer como un microcontrolador.
Para desencadenar la temática propuesta acerca de las similitudes, diferencias, de los microprocesadores y microcontroladores, es necesario que el lector tenga un poco de conocimiento sobre el tema.
El µC es un computador completo, aunque de limitadas prestaciones, que está contenido en el chip de un circuito integrado programable y se destina a gobernar una sola tarea con el programa que reside en su memoria. Sus líneas de entrada/salida soportan el conexionado de los sensores y actuadores del dispositivo a controlar.
Las partes principales de un microcontrolador son:
- Procesador: La necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones ha desembocado en el empleo generalizado de procesadores de arquitectura Harvard frente a las tradicionales que seguían la arquitectura Von Neumann.
- Memoria no volatín para contener el programa:
Hay cinco tipo de memoria para soportar estas función, estas son:
ROM. Se graba el chip durante su fabricación, implica costos altos y solo se recomienda cuando se produce en serie.
EPROM. Se graba con un dispositivo que es gobernado mediante un computador personal.
OTP. Se graba por el usuario igual que la memoria EPROM, a diferencia de la EPROM la OTP se puede grabar solamente una vez.
EEPROM. La grabación es similar a la de las memorias EPROM y OTP, la diferencia es que el borrado se efectúa de la misma forma que el grabado, o sea eléctricamente.
FLASH. Posee las mismas características que la EEPROM, pero esta tiene menor consumo de energía y mayor capacidad de almacenamiento.
Memoria de lectura y escritura para guardar los datos
Algunos microcontroladores manejan la memoria RAM estática (SRAM), otros como el PIC16F84A disponen de una memoria de datos del tipo EEPROM.
Línea de E/S para los controladores de periféricos
Comunicación paralelo
Comunicación serial
Diversas puertas de comunicación A excepción de dos pines para la alimentación, dos para el cristal de cuarzo y una más para provocar el Reset, los restantes pines de un microcontrolador sirven para soportar con los periféricos externos que controla.
Historia.
En el año 1969, un equipo de ingenieros japoneses de la compañía BUSICOM llegó a Estados Unidos con una idea, ellos deseaban usar para sus proyectos pocos circuitos integrados de los que se usaban en las calculadoras. La proposición se hizo a INTEL, y Marcían Off era el responsable del proyecto. Ya que él era quien tenía experiencia trabajando con una computadora (PC) PDP8, se le ocurrió pensar en una solución fundamentalmente diferente en lugar de la construcción sugerida. Esta solución presumía que la función del circuito integrado se determinaría por un programa almacenado en él. Eso significaba que la configuración sería más simple, pero que requeriría mucho más memoria de lo que requería el proyecto que propusieron los ingenieros japoneses.
Después de un tiempo, aunque los ingenieros japoneses probaron soluciones más fáciles, la idea de Marcean ganó, y el primer microprocesador nació. Para transformar esta idea en un producto ya fabricado, Federico Faggin, se unió a INTEL, y en sólo 9 meses tuvo éxito. INTEL obtuvo los derechos para vender este "bloque integrado" en 1971. Primero, compraron la licencia de la compañía BUSICOM, que no tenía idea del tesoro que poseían. Durante ese año, apareció en el mercado un microprocesador que se llamó 4004, este fue el primer microprocesador de 4 bits con velocidad de 6 000 operaciones por segundo. No mucho tiempo después de eso, la compañía americana CTC pidió a INTEL y Texas Instruments que hiciera un microprocesador de 8 bits. Aunque después a CTC no le interesó mas la idea, Intel e Texas Instruments siguieron trabajando en el microprocesador y el primero de abril de 1972, el microprocesador de 8 bits
aparece en el mercado con el nombre de 8008. Podía direccionar 16 Kb de memoria, con un set de 45 instrucciones y una velocidad de 300 000 operaciones por segundo. Este microprocesador es el predecesor de todos los microprocesadores de hoy. Intel mantuvo sus desarrollos y saco al mercado el procesador de 8 bits bajo el nombre 8080, el cual podía direccionar 64Kb de memoria, con 75 instrucciones, a un precio de 360 dlls.
aparece en el mercado con el nombre de 8008. Podía direccionar 16 Kb de memoria, con un set de 45 instrucciones y una velocidad de 300 000 operaciones por segundo. Este microprocesador es el predecesor de todos los microprocesadores de hoy. Intel mantuvo sus desarrollos y saco al mercado el procesador de 8 bits bajo el nombre 8080, el cual podía direccionar 64Kb de memoria, con 75 instrucciones, a un precio de 360 dlls.
En otra compañía americana, Motorola, comprendieron rápidamente lo que estaba sucediendo, así que ellos sacaron al mercado su microprocesador de 8 bits, el 6800. Su constructor principal era Chuck Peddle, y junto con el procesador, Motorola fue la primera compañía en hacer otros periféricos como el 6820 y el 6850. En ese momento muchas compañías reconocieron importancia de los microprocesadores y empezaron sus propios desarrollos. Chuck Peddle
abandonó Motorola para unirse a la Tecnología MOS y se mantuvo trabajando intensamente en el desarrollo de los microprocesadores.
abandonó Motorola para unirse a la Tecnología MOS y se mantuvo trabajando intensamente en el desarrollo de los microprocesadores.
Un evento muy importante tuvo lugar en la historia de microprocesadores en una exhibición de WESCON en 1795 en Estados Unidos. La Tecnología MOS anunció que estaba comercializando los microprocesadores 6501 y 6502 a 25 dlls. Cada uno, y que los compradores podrían adquirirlos inmediatamente. Esto era tan extraordinario, que algunas personas creyeron que era un escándalo, considerando que los competidores estaban vendiendo el 8080 y el 6800 a 179
dlls. Cada uno. Intel y Motorola bajaron sus precios en el primer día de la exhibición como una respuesta a su competidor, 69.95 por microprocesador. Motorola reclama a la Tecnología de MOS y a Chuck Peddle el haberles copiado su 6800. La Tecnología MOS suspende la fabricación del 6501, pero siguen produciendo el 6502. Los 6502 eran microprocesadores de 8 bits, 56
instrucciones y la capacidad de direccionar 64Kb de memoria directamente. Para reducir el costo, el 6502 se vuelve muy popular, así que se instala en las computadoras tales como: KIM-1, Apple I, Apple II, Atari, Comodore, Acorn, Oric, Galeb, Orao, Ultra, y muchas otras. Y muy pronto aparecieron varios fabricantes del 6502 (Rockwell, Sznertek, GTE, NCR, Ricoh, y Comodore quienes toman la Tecnología MOS) el cual estaba en su momento de apogeo y se vendía a una velocidad de 15 millones de procesadores por año. Otros, sin embargo, no se rindieron. Federico Faggin deja Intel, y empieza su propio Zilog Inc.
dlls. Cada uno. Intel y Motorola bajaron sus precios en el primer día de la exhibición como una respuesta a su competidor, 69.95 por microprocesador. Motorola reclama a la Tecnología de MOS y a Chuck Peddle el haberles copiado su 6800. La Tecnología MOS suspende la fabricación del 6501, pero siguen produciendo el 6502. Los 6502 eran microprocesadores de 8 bits, 56
instrucciones y la capacidad de direccionar 64Kb de memoria directamente. Para reducir el costo, el 6502 se vuelve muy popular, así que se instala en las computadoras tales como: KIM-1, Apple I, Apple II, Atari, Comodore, Acorn, Oric, Galeb, Orao, Ultra, y muchas otras. Y muy pronto aparecieron varios fabricantes del 6502 (Rockwell, Sznertek, GTE, NCR, Ricoh, y Comodore quienes toman la Tecnología MOS) el cual estaba en su momento de apogeo y se vendía a una velocidad de 15 millones de procesadores por año. Otros, sin embargo, no se rindieron. Federico Faggin deja Intel, y empieza su propio Zilog Inc.
En 1976, Zilog anuncia el Z80. Durante la fabricación de este microprocesador, Faggin toma una decisión giratoria. Sabiendo que ya se han desarrollado muchos programas para 8080, Faggin sabía que muchos se quedarían fieles a ese microprocesador. Así que decide diseñar un nuevo
procesador que pueda ser compatible con 8080, o que sea capaz de desarrollar todos los programas que ya se habían escrito para el 8080. Además de estas características, se agregaron muchas otras para que el Z80 fuera un microprocesador muy poderoso. Podía direccionar 64 Kb de memoria, tenía 176 instrucciones, un gran número de registros, una opción para refresco de
memoria dinámica de la RAM, mayor velocidad de trabajo etc. El Z80 fue un gran éxito y todos cambiaron del 8080 al Z80. Puede decirse que el Z80 fue el microprocesador comercializado más exitoso de ese tiempo. Además de Zilog, también aparecieron otros nuevos fabricantes como Mostek, NEC, SHARP, y SGS. Z80 estaba en el corazón de muchas computadoras como en Spectrum, Partner, TRS703, Z-3 etc.
procesador que pueda ser compatible con 8080, o que sea capaz de desarrollar todos los programas que ya se habían escrito para el 8080. Además de estas características, se agregaron muchas otras para que el Z80 fuera un microprocesador muy poderoso. Podía direccionar 64 Kb de memoria, tenía 176 instrucciones, un gran número de registros, una opción para refresco de
memoria dinámica de la RAM, mayor velocidad de trabajo etc. El Z80 fue un gran éxito y todos cambiaron del 8080 al Z80. Puede decirse que el Z80 fue el microprocesador comercializado más exitoso de ese tiempo. Además de Zilog, también aparecieron otros nuevos fabricantes como Mostek, NEC, SHARP, y SGS. Z80 estaba en el corazón de muchas computadoras como en Spectrum, Partner, TRS703, Z-3 etc.
En 1976, Intel propone una versión mejorada del microprocesador de 8 bits, al cual nombró 8085. Sin embargo, el Z80 era tan bueno que Intel perdió la batalla. Aunque más procesadores aparecían en el mercado (6809, 2650, SC/MP etc.), ya todo estaba decidido. Ya no había grandes mejoras departe de los fabricantes para hacer algo nuevo, así que el 6502 y el Z80 junto con el
6800 permanecieron como los representantes principales de los microprocesadores de 8 bits de ese tiempo.
Aunque en toda esta historia, se mencionan erróneamente microprocesadores, la realidad, es que las primeras PCs, emplearon microcontroladores, los cuales, como ya vimos, cuentan con un procesador y memoria. Posteriormente, se dio el paso a los microprocesadores, que no cuentan con la memoria, en el mismo circuito integrado, y los microcontroladores, tienen su aplicación en aparatos electrodomésticos automóviles, en la industria, entre otros.
En 1980 aproximadamente, los fabricantes de circuitos integrados iniciaron la difusión de un nuevo circuito para control, medición e instrumentación al que llamaron microcomputador en un sólo chip o de manera más exacta MICROCONTROLADOR.
Un microcontrolador es un circuito integrado que contiene toda la estructura (arquitectura) de un microcomputador, o sea CPU, RAM, ROM y circuitos de entrada y salida. Los resultados de tipo práctico, que pueden lograrse a partir de estos elementos, son sorprendentes.
En 1980 aproximadamente, los fabricantes de circuitos integrados iniciaron la difusión de un nuevo circuito para control, medición e instrumentación al que llamaron microcomputador en un sólo chip o de manera más exacta MICROCONTROLADOR.
Un microcontrolador es un circuito integrado que contiene toda la estructura (arquitectura) de un microcomputador, o sea CPU, RAM, ROM y circuitos de entrada y salida. Los resultados de tipo práctico, que pueden lograrse a partir de estos elementos, son sorprendentes.
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 Ortogonal Arquitectura Ortogonal: Cualquier instrucción puede utilizar cualquier elemento de la arquitectura como fuente o destino.
Arquitectura basada en banco de registros Arquitectura 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 operadnos, uno que proviene del registro W (Works), 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
En la Figura siguiente se representa el diagrama de bloques del PIC 16C84 del que podemos resaltar las siguientes características:
- Memoria de programa EEPROM de 1Kx14 bits
- Memoria de datos dividida en 2 áreas:
- Área RAM formada por 22 registros de propósito específico (SFR) y 36 de propósito general (GPR).
- Área EEPROM formada por 64 bytes.
- 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.
- Recursos conectados al bus de datos: PortA de 5 bits <RA0:RA4>, PortB de 8 bits <RB0:RB7>, Temporizador con Preescaler TMR0, etc.
- Contador de programa de 13 bit (lo que en teoría permitiría direccionar 4 KB de memoria, aunque el 16C84 solo dispone de 1KB de memoria implementada).
- Pila de 8 niveles.
La arquitectura del PIC16C84 se mantiene para todos los microcontroladores de esta subfamilia, diferenciándose unos de otros por las siguientes características:
- PIC 16F84PIC 16F84: La memoria de programa es del K palabras de l4 bits, pero de tipo Flash. La memoria de datos RAM tiene 68 registros de tamaño byte de propósito general, en lugar de 36.
- PIC16CR84: La memoria de programa es de IK palabras de 14 bits tipo ROM y la de datos tiene iguales características que el PIC16F84.: La memoria de programa es de 1K palabras de 14 bits tipo ROM y la de datos tiene iguales características que el PIC16F84.
- PIC16F83PIC16F83: La memoria de programa es de 512 palabras de 14 bits y la RAM de datos tiene 36 bytes de registros de propósito general.
- PIC16CR83PIC16CR83: Igual que el PIC16F83, pero la memoria de instrucciones es de tipo ROM, o sea, sólo grabable durante el proceso de fabricación y utilizada en grandes series.
El elemento diferencial más importante del PIC16C84 respecto al resto de los elementos de la familia media de los PIC, es que la su memoria de programa es del tipo EEPROM y en el caso del PIC16F84 es que su memoria es del tipo Flash, por lo demás, otros dispositivos de esta familia disponen de más memoria, tienen más periféricos, etc.
Construcción.
El PIC 16C84 al igual que los demás miembros de su familia, se caracterizan por qué:
- Su procesador es segmentado, "pipe-line".
- Su procesador es tipo RISC
- Tiene una arquitectura HARVARD
- El formato de las instrucciones es ortogonal
- Todas las instrucciones tienen la misma longitud (14 bits)
- La arquitectura está basada en banco de registros
Procesador segmentado "pipe-line": quiere decir que aplica la técnica de segmentación que permite al procesador realizar simultáneamente la ejecución de una instrucción y la búsqueda de código de la siguiente. De esta manera, se puede ejecutar una instrucción en un ciclo. (Cada ciclo de instrucción son cuatro ciclos de reloj).
Ejemplo: | Búsqueda 1 | Ejecuta 1 | ||||
1. MOVLW 55h | Búsqueda 2 | Ejecuta2 | ||||
2 .MOVWF PORTB | Búsqueda 3 | Ejecuta 3 | ||||
3. CALL SUB_1 | Busqueda 4 | Salir | ||||
4. BSF PORTA,BIT3 | Busqueda SUB_1 | Ejecuta SUB_1 |
Procesador Segmentado pipeline
Procesador tipo RISC: Las CPU´s atendiendo al tipo de instrucciones que utilizan pueden clasificarse en:
- CISC: (Complex Instruction Set Computer) Computadores de juego de instrucciones complejo, que disponen de un repertorio de instrucciones elevado (unas 80), algunas de ellas muy sofisticadas y potentes, pero que como contrapartida requieren muchos ciclos de máquina para ejecutar las instrucciones complejas.
- RISC: (Reduced Instruction Set Computer) Computadores de juego de instrucciones reducido, en los que el repertorio de instrucciones es muy reducido (en nuestro caso 35), las instrucciones son muy simples y suelen ejecutarse en un ciclo máquina. Además los RISC deben tener una estructura pipeline y ejecutar todas las instrucciones a la misma velocidad.
- SISC. (Specific Instriction Set Computer) Computadores de juego de instrucciones específico.
Composición.
Se trata de uno de los microcontroladores más populares del mercado actual, ideal para principiantes, debido a su arquitectura de 8 bits, 18 pines, y un set de instrucciones RISC muy amigable para memorizar y fácil de entender, internamente consta de:
- Memoria Flash de programa (1K x 14).
- Memoria EEPROM de datos (64 x 8).
- Memoria RAM (68 registros x 8).
- Un temporizador/contador (timer de 8 bits).
- Un divisor de frecuencia.
- Varios puertos de entrada-salida (13 pines en dos puertos, 5 pines el puerto A y 8 pines el puerto B).
Otras características son:
- Manejo de interrupciones (de 4 fuentes).
- Perro guardián (watchdog).
- Bajo consumo.
- Frecuencia de reloj externa máxima 10MHz. (Hasta 20MHz en nuevas versiones). La frecuencia de reloj interna es un cuarto de la externa, lo que significa que con un reloj de 20Mhz, el reloj interno sería de 5Mhz y así pues se ejecutan 5 Millones de Instrucciones por Segundo (5 MIPS)
- No posee conversores analógicos-digital ni digital-analógicos.
- Pipe-line de 2 etapas, 1 para búsqueda de instrucción y otra para la ejecución de la instrucción (los saltos ocupan un ciclo más).
- Repertorio de instrucciones reducido (RISC), con tan solo 30 instrucciones distintas.
- 4 tipos distintos de instrucciones, orientadas a byte, orientadas a bit, operación entre registros, de salto.