Elementos Internos Del MCU

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 6

Registros

Son un espacio de memoria muy reducido pero necesario para cualquier microprocesador, de aquí se toman los datos para
varias operaciones que debe realizar el resto de los circuitos del procesador. Los registros sirven para almacenar los resultados
de la ejecución de instrucciones, cargar datos desde la memoria externa o almacenarlos en ella.

Aunque la importancia de los registros parezca trivial, no lo es en absoluto. De hecho una parte de los registros, la destinada a
los datos, es la que determina uno de los parámetros más importantes de cualquier microprocesador. Cuando escuchamos que
un procesador es de 4, 8, 16, 32 o 64 bits, nos estamos refiriendo a procesadores que realizan sus operaciones con registros
de datos de ese tamaño, y por supuesto, esto determina muchas de las potencialidades de estas máquinas.

Mientras mayor sea el número de bits de los registros de datos del procesador, mayores serán sus prestaciones, en cuanto a
poder de cómputo y velocidad de ejecución, ya que este parámetro determina la potencia que se puede incorporar al resto de
los componentes del sistema, por ejemplo, no tiene sentido tener una ALU de 16 bits en un procesador de 8 bits.

Por otro lado un procesador de 16 bits, puede que haga una suma de 16 bits en un solo ciclo de máquina, mientras que uno de
8 bits deberá ejecutar varias instrucciones antes de tener el resultado, aun cuando ambos procesadores tengan la misma
velocidad de ejecución para sus instrucciones. El procesador de 16 bits será más rápido porque puede hacer el mismo tipo de
tareas que uno de 8 bits, en menos tiempo.

Unidad de control

Esta unidad es de las más importantes en el procesador, en ella recae la lógica necesaria para la decodificación y ejecución de
las instrucciones, el control de los registros, la ALU, los buses y cuanta cosa más se quiera meter en el procesador.

La unidad de control es uno de los elementos fundamentales que determinan las prestaciones del procesador, ya que su tipo y
estructura, determina parámetros tales como el tipo deconjunto de instrucciones, velocidad de ejecución, tiempo del ciclo de
máquina, tipo de buses que puede tener el sistema, manejo de interrupciones y un buen número de cosas más que en
cualquier procesador van a parar a este bloque.

Por supuesto, las unidades de control, son el elemento más complejo de un procesador y normalmente están divididas en
unidades más pequeñas trabajando de conjunto. La unidad de control agrupa componentes tales como la unidad de
decodificación, unidad de ejecución, controladores de memoria cache, controladores de buses, controlador de interrupciones,
entre otros elementos, dependiendo siempre del tipo de procesador.

Unidad aritmético-lógica

Como los procesadores son circuitos que hacen básicamente operaciones lógicas y matemáticas, se le dedica a este proceso
una unidad completa, con cierta independencia. Aquí es donde se realizan las sumas, restas, y operaciones lógicas típicas del
álgebra de Boole.

Actualmente este tipo de unidades ha evolucionado mucho y los procesadores más modernos tienen varias ALU,
especializadas en la realización de operaciones complejas.

Su impacto en las prestaciones del procesador es también importante porque, dependiendo de su potencia, tareas más o
menos complejas, pueden hacerse en tiempos muy cortos.
Buses

Son el medio de comunicación que utilizan los diferentes componentes del procesador para intercambiar información entre sí,
eventualmente los buses o una parte de ellos estarán reflejados en los pines del encapsulado del procesador.

En el caso de los microcontroladores, no es común que los buses estén reflejados en el encapsulado del circuito, ya que estos
se destinan básicamente a las E/S de propósito general y periféricos del sistema.

Existen tres tipos de buses:

• Dirección: Se utiliza para seleccionar al dispositivo con el cual se quiere trabajar o en el caso de las memorias,
seleccionar el dato que se desea leer o escribir.
• Datos: Se utiliza para mover los datos entre los dispositivos de hardware (entrada y salida).
• Control: Se utiliza para gestionar los distintos procesos de escritura lectura y controlar la operación de los dispositivos
del sistema.

Conjunto de instrucciones

Aunque no aparezca en el esquema, no podíamos dejar al conjunto o repertorio de instrucciones fuera de esta fiesta, porque
este elemento determina lo que puede hacer el procesador.

Define las operaciones básicas que puede realizar el procesador, que conjugadas y organizadas forman lo que conocemos
como software. Elconjunto de instrucciones vienen siendo como las letras del alfabeto, el elemento básico del lenguaje, que
organizadas adecuadamente permiten escribir palabras, oraciones y cuanto programa se le ocurra.

Existen dos tipos básicos de repertorios de instrucciones, que determinan la arquitectura del procesador: CISC y RISC.

CISC, del inglés Complex instruction set computing, Computadora de Conjunto de Instrucciones Complejo. Los
microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y que permiten realizar
operaciones complejas entre operandos situados en la memoria o en los registros internos. Este tipo de repertorio dificulta el
paralelismo entre instrucciones, por lo que en la actualidad, la mayoría de los sistemas CISC de alto rendimiento, convierten las
instrucciones complejas en varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones.

Dentro de los microcontroladores CISC podemos encontrar a la popular familia Intel 8051 y la Z80, aunque actualmente existen
versiones CISC-RISC de estos microcontroladores, que pretenden aprovechar las ventajas de los procesadores RISC a la vez
que se mantiene la compatibilidad hacia atrás con las instrucciones de tipo CISC.

RISC, del inglés Reduced Instruction Set Computer, Computadora con Conjunto de Instrucciones Reducido. Se centra en la
obtención de procesadores con las siguientes características fundamentales:

• Instrucciones de tamaño fijo.


• Pocas instrucciones.
• Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.
• Número relativamente elevado de registros de propósito general.
Una de las características más destacables de este tipo de procesadores es que posibilitan el paralelismo en la ejecución, y
reducen los accesos a memoria. Es por eso que los procesadores más modernos, tradicionalmente basados en arquitecturas
CISC implementan mecanismos de traducción de instrucciones CISC a RISC, para aprovechar las ventajas de este tipo de
procesadores.

Los procesadores de los microcontroladores PIC son de tipo RISC.


Memoria

Anteriormente habíamos visto que la memoria en los microcontroladores debe estar ubicada dentro del mismo encapsulado,
esto es así la mayoría de las veces, porque la idea fundamental es mantener el grueso de los circuitos del sistema dentro de un
solo integrado.

En los microcontroladores la memoria no es abundante, aquí no encontrará Gigabytes de memoria como en las computadoras
personales. Típicamente la memoria de programas no excederá de 16 K-localizaciones de memoria no volátil para contener los
programas.

La memoria RAM está destinada al almacenamiento de información temporal que será utilizada por el procesador para realizar
cálculos u otro tipo de operaciones lógicas.

El tipo de memoria utilizada en las memorias RAM de los microcontroladores es SRAM, lo que evita tener que implementar
sistemas derefrescamiento como en el caso de las computadoras personales, que utilizan gran cantidad de memoria,
típicamente alguna tecnología DRAM. A pesar de que la memoria SRAM es más costosa que la DRAM, es el tipo adecuado
para los microcontroladores porque éstos poseen pequeñas cantidades de memoria RAM.

En el caso de la memoria de programas se utilizan diferentes tecnologías, y el uso de una u otra depende de las características
de la aplicación a desarrollar, a continuación se describen las cinco tecnologías existentes, que mayor utilización tienen o han
tenido:

• Memoria ROM. En este caso no se “graba” el programa en memoria sino que el microcontrolador se fabrica con el
programa, es un proceso similar al de producción de los CD comerciales mediante masterización. El costo inicial de
producir un circuito de este tipo es alto, porque el diseño y producción de la máscara es un proceso costoso, sin
embargo, cuando se necesitan varios miles o incluso cientos de miles de microcontroladores para una aplicación
determinada, como por ejemplo, algún electrodoméstico, el costo inicial de producción de la máscara y el de fabricación
del circuito se distribuye entre todos los circuitos de la serie y, el costo final de ésta, es bastante menor que el de sus
semejantes con otro tipo de memoria.
• Memoria PROM(Programmable Read-Only Memory) también conocida como OTP (One Time Programmable). Este tipo
de memoria, también es conocida como PROM o simplemente ROM.
Los microcontroladores con memoria OTP se pueden programar una sola vez, con algún tipo de programador. Se utilizan en
sistemas donde el programa no requiera futuras actualizaciones.

• Memoria EPROM(Erasable Programmable Read Only Memory). Los microcontroladores con este tipo de memoria son
muy fáciles de identificar porque su encapsulado es de cerámica y llevan encima una ventanita de vidrio desde la cual
puede verse la oblea de silicio del microcontrolador.
Se fabrican así porque la memoria EPROM es reprogramable, pero antes debe borrase, y para ello hay que exponerla a
una fuente de luz ultravioleta, el proceso de grabación es similar al empleado para las memorias OTP.

• EEPROM (Electrical Erasable Programmable Read Only Memory). Fueron el sustituto natural de las memorias
EPROM, la diferencia fundamental es que pueden ser borradas eléctricamente, por lo que la ventanilla de cristal de
cuarzo y los encapsulados cerámicos no son necesarios.
Al disminuir los costos de los encapsulados, los microcontroladores con este tipo de memoria se hicieron más baratos y
cómodos para trabajar que sus equivalentes con memoria EPROM.
Otra característica destacable de este tipo de microcontrolador es que fue en ellos donde comenzaron a utilizarse los sistemas
deprogramación en el sistema que evitan tener que sacar el microcontrolador de la tarjeta que lo aloja para hacer
actualizaciones al programa.
• Memoria flash. En el campo de las memorias reprogramables para microcontroladores, son el último avance
tecnológico en uso a gran escala, y han sustituido a los microcontroladores con memoria EEPROM.
A las ventajas de las memorias flash se le adicionan su gran densidad respecto a sus predecesoras lo que permite incrementar
la cantidad de memoria de programas a un costo muy bajo. Pueden además ser programadas con las mismas tensiones de
alimentación del microcontrolador, el acceso en lectura y la velocidad de programación es superior, disminución de los costos
de producción, entre otras.

Lo más habitual es encontrar que la memoria de programas y datos está ubicada toda dentro del microcontrolador, de hecho,
actualmente son pocos los microcontroladores que permiten conectar memoria de programas en el exterior del encapsulado.
Las razones para estas “limitaciones” están dadas porque el objetivo fundamental es obtener la mayor integración posible y
conectar memorias externas consume líneas de E/S que son uno de los recursos más preciados de los microcontroladores.

Interrupciones

Las interrupciones son esencialmente llamadas a subrutinas generadas por los dispositivos físicos, al contrario de las
subrutinas normales de un programa en ejecución. Como el salto de subrutina no es parte del hilo o secuencia de ejecución
programada, el controlador guarda el estado del procesador en la pila de memoria y entra a ejecutar un código especial
llamado "manejador de interrupciones" que atiende al periférico específico que generó la interrupción. Al terminar la rutina, una
instrucción especial le indica al procesador el fin de la atención de la interrupción. En ese momento el controlador restablece el
estado anterior, y el programa que se estaba ejecutando antes de la interrupción sigue como si nada hubiese pasado. Las
rutinas de atención de interrupciones deben ser lo más breves posibles para que el rendimiento del sistema sea satisfactorio,
por que normalmente cuando una interrupción es atendida, todas las demás interrupciones están en espera.

Imagine que está esperando la visita de un amigo, al que llamaremos Juan. Usted y Juan han acordado que cuando él llegue a
su casa esperará pacientemente a que le abra la puerta. Juan no debe tocar a la puerta porque alguien en la casa duerme y no
quiere que le despierten.

Ahora usted ha decidido leer un libro mientras espera a que Juan llegue a la casa, y para comprobar si ha llegado, cada cierto
tiempo detiene la lectura, marca la página donde se quedó, se levanta y va hasta la puerta, abre y comprueba si Juan ha
llegado, si éste todavía no está en la puerta, esperará unos minutos, cerrará la puerta y regresará a su lectura durante algún
tiempo.

Como verá este es un método poco eficiente para esperar a Juan porque requiere que deje la lectura cada cierto tiempo y vaya
hasta la puerta a comprobar si él ha llegado, además debe esperar un rato si todavía no llega. Y por si fuera poco, imagine que
Juan no llega nunca porque se le presentó un problema, tuvo que cancelar la cita y no pudo avisarle a tiempo, o peor, que Juan
ha llegado a la puerta un instante después que usted la cerraba. Juan, respetando lo acordado, espera un tiempo, pero se
cansa de esperar a que le abran y decide marcharse porque cree que ya usted no está en la casa o no puede atenderlo. A este
método de atender la llegada de Juan lo llamaremos encuesta.

Veamos ahora otro método. En esta ocasión simplemente se recuesta en el sofá de la sala y comienza a leer su libro, cuando
Juan llegue debe tocar el timbre de la puerta y esperar unos momentos a que le atiendan. Cuando usted oye sonar el timbre,
interrumpe la lectura, marca la página donde se quedó y va hasta la puerta para atender a la persona que toca el timbre. Una
vez que Juan o la persona que ha tocado el timbre, se marcha, usted regresa a su asiento y retoma la lectura justo donde la
dejó. Este último es un método más eficiente que el anterior porque le deja más tiempo para leer y elimina algunos
inconvenientes como el de que Juan nunca llegue o se marche antes de que usted abra la puerta. Es, en principio, un método
simple pero muy eficaz y eficiente, lo llamaremos atención por interrupción.

El primero de ellos, la encuesta, es un metodo poco eficiente porque requiere realizar lecturas constantes y muchas veces
innecesarias del estado del proceso que queremos atender. Sin embargo, es muy utilizado en la programación de
microcontroladores porque resulta fácil de aprender, la implementación de código con este método es menos compleja y no
requiere de hardware especial para llevarla adelante. Por otra parte, la encuesta, tiene muchas deficiencias que con frecuencia
obligan al diseñador a moverse hacia otros horizontes
El mundo está lleno de situaciones; de las cuales no podemos determinar ni cuando, ni como ni por qué se producen, en la
mayoría de los casos lo único que podemos hacer es enterarnos de que determinada situación, asociada a un proceso, ha
ocurrido. Para ello seleccionamos alguna condición o grupo de condiciones que nos indican que el proceso que nos interesa
debe ser atendido, a este fenómeno, en el cual se dan las condiciones que nos interesa conocer, lo llamaremos evento. En el
segundo ejemplo vemos que para atender a Juan, éste debe tocar el timbre, por tanto, la llegada de Juan es el proceso que
debemos atender y el sonido del timbre es el evento que nos indica que Juan ha llegado.

Periféricos

Cuando observamos la organización básica de un microcontrolador, señalamos que dentro de este se ubican un conjunto de
periféricos. A continuación describiremos algunos de los periféricos que con mayor frecuencia encontraremos en los
microcontroladores.
--Entradas y salidas de propósito general

También conocidos como puertos de E/S, generalmente agrupadas en puertos de 8 bits de longitud, permiten leer datos del
exterior o escribir en ellos desde el interior del microcontrolador, el destino habitual es el trabajo con dispositivos simples como
relés, LED, o cualquier otra cosa que se le ocurra al programador.

Algunos puertos de E/S tienen características especiales que le permiten manejar mecanismos de interrupción para el
procesador.

Típicamente cualquier pin de E/S puede ser considerada E/S de propósito general, pero como los microcontroladores no
pueden tener infinitos pines, ni siquiera todos los pines que queramos, las E/S de propósito general comparten los pines con
otros periféricos.
--Temporizadores y contadores

Son circuitos sincrónicos para el conteo de los pulsos que llegan a su poder para conseguir la entrada de reloj. Si la fuente de
un gran conteo es el oscilador interno del microcontrolador es común que no tengan un pin asociado, y en este caso trabajan
como temporizadores. Por otra parte, cuando la fuente de conteo es externa, entonces tienen asociado un pin configurado
como entrada, este es el modo contador.

Los temporizadores son uno de los periféricos más habituales en los microcontroladores y se utilizan para muchas tareas,
como por ejemplo, la medición de frecuencia, implementación de relojes, para el trabajo de conjunto con otros periféricos que
requieren una base estable de tiempo entre otras funcionalidades. Es frecuente que un microcontrolador típico incorpore más
de un temporizador/contador.
--Conversor analógico/digital

Como es muy frecuente el trabajo con señales analógicas, éstas deben ser convertidas a digital y por ello muchos
microcontroladores incorporan un conversor analógico-digital, el cual se utiliza para tomar datos de varias entradas diferentes
que se seleccionan mediante un multiplexor.

Las resoluciones más frecuentes son 8 y 10 bits, que son suficientes para aplicaciones sencillas. Para aplicaciones en control e
instrumentación están disponibles resoluciones de 12bit, 16bit y 24bit.6 También es posible conectar un convertidor externo, en
caso de necesidad

Puertos de comunicación
Puerto serie

El destino común de este periférico es la comunicación con otro microcontrolador o con una PC y en la mayoría de los casos
hay que agregar circuitos externos para completar la interfaz de comunicación. La forma más común de completar el puerto
serie es para comunicarlo con una PC mediante la interfaz EIA-232 (más conocida como RS-232), es por ello que muchas
personas se refieren a la UART (Universal Asynchronous Receiver-Transmitter) como puerto serie RS-232, pero esto constituye
un error, puesto que este periférico se puede utilizar para interconectar dispositivos mediante otros estándares de
comunicación. En aplicaciones industriales se utiliza preferiblemente RS-485 por sus superior alcance en distancia, velocidad y
resistencia al ruido.
SPI
El Bus SPI (Serial Peripheral Interface) es un estándar de comunicaciones, usado principalmente para la transferencia de
información entre microcontroladores en equipos electrónicos. El bus de interfaz de periféricos serie o bus SPI es un estándar
para controlar casi cualquier dispositivo electrónico digital que acepte un flujo de bits serie regulado por un reloj (comunicación
sincrónica).
USB

Los microcontroladores son los que han permitido la existencia de este sistema de comunicación. Es un sistema que trabaja
por monitorización de un conjunto de periféricos inteligentes por parte de un amo, que es normalmente un computador
personal. Cada periferico inteligente está gobernado inevitablemente por un microcontrolador.
Ethernet

Es el sistema más extendido en el mundo para redes de área local cableadas. Los microcontroladores más poderosos de 32
bits se usan para implementar periféricos lo suficientemente poderosos como para que puedan ser accesados directamente por
la red. Muchos de los enrutadores caseros de pequeñas empresas están construidos en base a un microcontrolador que hace
del cerebro del sistema.
Otros puertos de comunicación

Hay una enorme cantidad de otros buses disponibles para la industria automotriz. Es usuario se los encontrará cuando trabaje
en algún área especializada.

Comparadores

Son circuitos analógicos basados en amplificadores operacionales que tienen la característica de comparar dos señales
analógicas y dar como salida los niveles lógicos ‘0’ o ‘1’ en dependencia del resultado de la comparación. Es un periférico muy
útil para detectar cambios en señales de entrada de las que solamente nos interesa conocer cuando está en un rango
determinado de voltaje.
Modulador de ancho de pulsos

Los PWM (Pulse Width Modulator) son periféricos muy útiles sobre todo para el control de motores, sin embargo hay un grupo
de aplicaciones que pueden realizarse con este periférico, dentro de las cuales podemos citar: inversión DC/AC para
UPS,conversión digital analógica D/A, control regulado de luz (dimming) entre otras.
Memoria de datos no volátil

Muchos microcontroladores han incorporado estos tipos de memoria como un periférico más, para el almacenamiento de datos
de configuración o de los procesos que se controlan. Esta memoria es independiente de la memoria de datos tipo RAM o la
memoria de programas, en la que se almacena el código del programa a ejecutar por el procesador del microcontrolador.

También podría gustarte