introdución a los microcontroladores
DESCRIPTION
Introduccion a los uCsTRANSCRIPT
[DETRI]
12
SISTEMAS
MICROPROCESADOS ESCUELA POLITECNICA NACIONAL [Escribir el nombre del autor]
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-2
CAPÍTULO PRIMERO
ASPECTOS GENERALES DE LOS MICROCONTROLADORES
Objetivo del curso:
Los estudiantes entienden los fundamentos de los Sistemas Microprocesados y se
encuentran en condiciones de aplicar los conocimientos en el diseño de soluciones sobre
la base de los circuitos microcontroladores que pueden ser emplear para resolver
problemas de carácter práctico, al saber los conceptos y herramientas para el diseño del
software y hardware.
1.1. Aspectos Generales.
En los sistemas digitales existen básicamente dos maneras de resolver un problema,
mediante el diseño y construcción de un circuito para la solución del mismo: utilizando
circuitos integrados de larga escala de integración (LSI), mediana (MSI) y pequeña
(SSI) escala de integración, que en la actualidad se denominaría utilizando circuitos
discretos o la otra alternativa que sería utilizando dispositivos que trabajan sobre la base
de un programa almacenado, como es el caso de los microprocesadores y
microcontroladores, que corresponden a circuitos de muy alta (VLSI) y ultra alta
(ULSI) escala de integración. En el caso particular de los microcontroladores, estos
circuitos incluyen dentro de un mismo encapsulado (CI), en los distintos modelos
disponibles, la unidad central de procesamiento, memoria de datos, memoria de
programa, pórticos de entrada y salida, y una amplia variedad de otros dispositivos
internos, son circuitos que pueden ser fácilmente programados para resolver problemas
de muy diversa índole.
Dentro de las ventajas que ofrece el diseño utilizando microcontroladores, a diferencia
del diseño con otro tipo de componentes digitales (discretos), es que la mayoría de las
modificaciones requeridas para ampliar sus características u opciones se las puede
realizar simplemente cambiando una parte del programa de control que ejecuta el
microcontrolador y eventualmente con pequeños cambios en las etapas circuitales de
entrada de datos y salida de actuación o indicación, que por el contrario en el diseño
tradicional, utilizando componentes denominados discretos, cualquier cambio por
pequeño que este sea obliga a realizar un nuevo diseño y la construcción de un nuevo
circuito.
Básicamente un microcontrolador corresponde a un circuito integrado que dispone en su
interior de las unidades funcionales de una computadora, esto es: la Unidad Central de
Procesamiento (CPU), memoria de programa, memoria de datos, unidades de E/S y
varios circuitos denominados periféricos internos, razón por la cual se lo refiere como
una computadora completa en un solo circuito integrado; sin embargo, hay que tener
presente que su orientación es distinta y por lo tanto sus aplicaciones también son
diferentes de un microprocesador y limitadas al compararlo con una computadora
personal.
Los microcontroladores son circuitos digitales de muy alta aceptación en el mercado y
se los puede encontrar aplicados para facilitar casi todo tipo de actividad humana, entre
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-3
otras aplicaciones en electrodomésticos como lavarropas, hornos microondas, teléfonos,
equipos de audio, etc y en casi todo equipo electrónico profesional, en la mayoría de los
casos forman parte del dispositivo que controlan.
En dependencia de la aplicación que se vaya a dar al circuito microcontrolador, se debe
escoger de muchos fabricantes y de cada uno a su vez una muy amplia variedad de
circuitos con distintas características que típicamente pueden incluir: circuito de reloj,
memoria SRAM y EEPROM de datos, memoria de programa UVEPROM o FLASH,
convertidores de analógico a digital, circuitos de temporización, circuitos de
comunicación serial UART o USART, buses de interfaz serial especializados, entre
otros. Como una ilustración se presenta en la figura N° 1.1 un circuito que incluye un
microcontrolador de Atmel.
Figura N° 1.1. Circuito con un microcontrolador ATmel.
En el año 1971 el fabricante Intel lanzó al mercado el primer circuito microprocesador,
denominado 4004, ver figura N° 1.2, el mismo que constituye el hito de un nuevo tipo
de diseño con circuitos que funcionan sobre la base de un programa almacenado, que en
la solución incluye unos pocos circuitos adicionales. Desde ese entonces se han ido
presentando al mercado una gran cantidad de circuitos microprocesadores y
microcontroladores, con estos últimos se simplificó aún más el diseño de las soluciones
electrónicas de carácter práctico.
Figura N° 1.2. Microprocesador Intel 4004
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-4
Como se indicó, en la actualidad es posible encontrar aplicaciones de los
microcontroladores en casi todas las actividades que realiza el ser humano, en vista a las
potencialidades que sobre la base de sus múltiples circuitos internos ofrecen estos
circuitos microcontroladores, características a las que se complementan con la
posibilidad de ampliación del circuito con elementos externos, para cuyo propósito los
pines del circuito permiten la comunicación con el exterior, con distintos dispositivos,
para cumplir el propósito esperado.
1.2. El computador digital.
Es un dispositivo electrónico digital diseñado para poder realizar el procesamiento de
información, el computador digital se encuentra formado por una serie de circuitos y
demás componentes y dispositivos relacionados, los mismos que posibilitan la ejecución
de una amplia variedad de órdenes que son establecidas por el usuario, al conjunto de
esas órdenes llamadas también instrucciones se le denomina un programa, cuyo
propósito es la aplicación o utilización del computador para resolver un problema en
particular. Como puede observarse en las figuras N° 1.3 y Nº 1.4, la computadora, en
términos generales, dispone de varias unidades o etapas circuitales internas y en el caso
particular del elemento central o unidad central de procesamiento, que constituye su
elemento inteligente, a este se le conoce como un microprocesador, que con sus
respectivas diferencias también puede ser un microcontrolador, a los que se les ha
agregado otras etapas, el detalle de estos dispositivos se puede observar en las figuras
antes indicadas.
Figura N° 1.3. Computador digital
Fuente: Material del curso del Ing. Jaime Velarde G.
El computador para poder realizar sus tareas internas y ejecutar el programa, dispone
además de los siguientes medios para realizar la comunicación o intercambiar
información entre sí, a los cuales se los conoce como buses, que corresponden a un
grupo de conductores que permiten efectivamente llevar la información entre los
distintos bloques o etapas de la computadora digital.
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-5
Es importante destacar que en el caso de los microcontroladores en la actualidad, no
están definidos los buses que se indican a continuación en los pines del encapsulado del
circuito, ya que estos pines se destinan básicamente a las aplicaciones de entradas y/o
salidas de propósito general y alternativamente a los dispositivos periféricos internos del
microcontrolador. La razón para no disponer de los buses en los pines están dadas en la
mayor integración que sea posible y porque el objetivo fundamental es no desperdiciar
líneas de E/S que son uno de los recursos más importantes de los microcontroladores.
ROM
Cs
RAM
Cs
μC
μP
CPU
SALIDAS (O)
ENTRADAS (I)
DEC
BIN
3 / 8
DEC
BIN
3 / 8
Bus de control
Bus de
direcciones
Figura N° 1.4. Microcomputador
Bus de datos.
Se encuentra conformado por un conjunto de líneas físicas de carácter bidireccional, que
se aplican para el envío de instrucciones o datos, entre el microprocesador o
microcontrolador y los demás elementos del sistema. Se lo conoce también como el bus
externo de datos y el número de líneas que posee es generalmente igual al número de
bits que procesa la ALU.
Bus de direcciones.
Son líneas físicas unidireccionales que parten del microprocesador hacia la memoria y
demás dispositivos de entrada/salida (E/S), sirven para enviar la dirección de la
localidad o elemento seleccionado para la transferencia de datos con la unidad central
de procesamiento, el número de líneas o bits que posee este bus, determina la capacidad
máxima de acceso a memoria que tiene el microprocesador o microcontrolador según el
caso.
Bus de control.
Corresponden a un conjunto de líneas físicas unidireccionales, unas que terminan y
otras que parten del microprocesador o microcontrolador, sirven para enviar señales que
actúan sobre la unidad de control o que parten de esta para dar las órdenes necesarias
para controlar a los demás elementos que conforman la microcomputadora, o para
informar del estado en que se encuentra la unidad de control, permitiendo de esta
manera coordinar el funcionamiento de todo el sistema.
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-6
Microprocesador.
A la construcción de la unidad de control y la unidad de lógica y aritmética (ALU) en
una sola pastilla de semiconductor o circuito integrado, es a lo que se conoce como
microprocesador (uP).
Microcontrolador.
El desarrollo en la tecnología de fabricación de circuitos integrados permite en la
actualidad disponer de circuitos integrados de ultra alta escala de integración, lo que ha
permitido que además de la CPU, en la misma pastilla de semiconductor se construyan
otras unidades o bloques funcionales como la unidad de memoria de datos y de
programa, sistemas de entrada/salida y circuitos periféricos internos desde unidades
elementales hasta sistemas complejos, a estos circuitos se les conoce como
microcontroladores (uC) o microcomputadoras en un solo circuito integrado. Estos
circuitos difieren de los microprocesadores en que en sí ya son una microcomputadora y
en el peor de los casos requieren de un mínimo de circuitos externos.
Memorias.
Los dispositivos microcontroladores disponen internamente de distintos tipos de
memorias y de distinta capacidad, lo cual depende del modelo que se requiere para la
aplicación en la solución de un problema en particular, sin perder de vista que siendo un
recurso definitivamente es limitado y en ningún caso, al menos por ahora, se dispone
por ejemplo de capacidades en gigabytes.
Los circuitos en referencia disponen de distintos tipos de memoria tanto para datos
como para el programa y además utilizan diferentes tecnologías, el uso de la memoria
en términos generales depende de las características de la aplicación, a continuación se
describen algunos de los dispositivos más comunes:
Circuitos con memoria ROM grabada en fábrica. Es una memoria no volátil de sólo
lectura, cuyo contenido es grabado durante la fabricación del circuito integrado. La
máscara a ser utilizada para la grabación de la información corresponde a la forma como
se fabrican los circuitos integrados. El alto precio del diseño de la máscara sólo hace
aconsejable el empleo de los microcontroladores, con este tipo de memoria, cuando se
requieren varios miles de unidades, para disponer de un costo final razonable.
Circuitos con memoria PROM OTP. Es una memoria no volátil de sólo lectura
"programable una sola vez" por el usuario, OTP (One Time Programmable). El usuario
puede programar el circuito con un grabador controlado por un programa desde un
computador. La versión OTP es recomendable para prototipos y diseños que no
requieren de cambios posteriores.
Circuitos con memoria UVEPROM (Ultra Violet Erasable Programmable Read OnIy
Memory), son dispositivos que pueden programarse varias veces, mediante el borrado
por medios fotoeléctricos. La grabación se realiza, con la ayuda de un equipo
especializado y un programa en un computador. Su utilización ha disminuido
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-7
significativamente al ser circuitos sustituidos por memorias de tecnología más flexible y
más barata como las memorias Flash.
Circuitos con memoria EEPROM (Electrical Erasable Programmable Read OnIy
Memory), son memorias de sólo lectura, programables y borrables eléctricamente.
Existe la tendencia de incluir una memoria EEPROM de pequeña capacidad en los
circuitos microcontroladores, para guardar especialmente datos o parámetros que son
requeridos para la operación del circuito. Hay que tener presente que este tipo de
memoria es relativamente lenta.
Circuitos con memoria FLASH, la memoria Flash constituyen la tecnología más
avanzada al momento y se ha convertido en poco tiempo en una de las más populares
tecnologías de almacenamiento de datos, por su gran capacidad de almacenamiento,
mucho más rápida que otros dispositivos para el mismo propósito, porque puede retener
datos aun cuando el equipo se encuentre apagado y además trabaja a las mismas
tensiones que el microcontrolador; por otra parte están diseñadas con componentes que
trabajan con niveles muy bajos de fuentes de polarización; este tipo de memoria se la
destina normalmente al almacenamiento de los programas.
Circuitos con memoria SRAM (RAM estáticas), son memorias que permiten
operaciones de lectura y escritura mientras al circuito se encuentra aplicada energía. Las
SRAM de tecnología MOS, son las más utilizadas porque tienen capacidades mucho
mayores con menor consumo de potencia. La memoria RAM está destinada al
almacenamiento de información a ser utilizada por la CPU para realizar cálculos u otro
tipo de operaciones lógicas. En el espacio de direcciones de memoria RAM se ubican
además los registros de trabajo de la unidad de procesamiento y los de configuración y
trabajo de los distintos periféricos del microcontrolador. Es por ello que en la mayoría
de los casos, aunque se tenga un espacio de direcciones de un tamaño determinado, la
cantidad de memoria RAM de que dispone el programador para almacenar sus datos es
menor que la que puede direccionar el procesador.
Cuando se requiere aumentar la cantidad de memoria de datos, se debería acoplar
dispositivos de memoria externa, esta forma de expandir la memoria de datos está
determinada, en la mayoría de lo casos, por el tipo de instrucciones disponibles para el
microcontrolador.
1.2.1. La Unidad Central de Proceso o CPU.1
La unidad central de procesamiento (CPU), llamada simplemente procesador puede
estar resuelta sobre la base de un microprocesador y a su vez es el elemento más
importante de un microcontrolador, constituye el verdadero cerebro de un sistema
microprocesado y es la que determina sus principales características, tanto a nivel de
hardware como de software.
El propósito de esta etapa del circuito es constituirse en el elemento de control y
coordinación de todas las operaciones que puede realizar el sistema. Para poder ejecutar
sus actividades se encarga de direccionar la memoria de programa donde están las
1 Este subcapítulo es una adaptación de información tomada de: www.mundopc.net/ginformatico/p
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-8
instrucciones, así como recibir el código de operación de la instrucción en curso, su
decodificación y la ejecución de la operación que implica la instrucción, así como la
búsqueda de los datos (llamados operandos) y el almacenamiento del resultado.
A un computador se lo define como un sistema electrónico digital, capaz de resolver
problemas de forma muy rápida sobre la base de la ejecución de instrucciones, que
integran un programa; un circuito básico de las partes o bloques que lo componen se
presenta en la figura N° 1.5, con la finalidad de que se tenga una idea preliminar de
cómo trabaja el mismo.
Unidad de
Memoria
ROM │ RAM
Unidad de
Logical Aritmetica
(ALU)
Unidad de
Entrada │ Salida
( I \ O )
PERIFERICOS
Unidad
De
Control
CK
Figura N° 1.5 Diagrama en bloques de un computador
1.2.2. Unidad de control.
Es la etapa circuital que se encarga de decodificar o interpretar la instrucción que se
encuentra en curso de ejecución; es decir, reconoce de qué instrucción se trata, para
establecer el tipo de operaciones a ser ejecutadas. Cuando el microcontrolador o
microprocesador lee de la memoria una instrucción, el código de esa instrucción es
transferido a esta unidad, por esta forma de trabajo se considera a esta unidad como una
de las más importantes en el microcontrolador.
Una vez realizada la decodificación, pasa a coordinar a los distintos circuitos que se
encuentran involucrados en la ejecución de la instrucción a través de las señales
necesarias y en un orden y temporización determinados. Es decir, es la unidad
encargada de dar las órdenes necesarias y coordinar a las diversas partes del
microcontrolador para poder ejecutar cada una de las instrucciones. En otras palabras se
puede decir, que la unidad de control tiene como funciones básicas las siguientes:
Realizar operaciones de lectura de las instrucciones de la memoria de programa.
Decodificar o interpretar las instrucciones.
Coordinar la ejecución de las instrucciones.
Para realizar su función, la unidad de control dispone entre otros de los siguientes
elementos o registros:
Contador de programa
Registro de instrucciones
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-9
Decodificador de instrucciones
Circuito de temporización
Selección de circuitos
a) Contador de programa. Este registro, en la generalidad de circuitos
microcontroladores, contiene la dirección de memoria de la próxima (siguiente)
instrucción a ser ejecutada. Al iniciar la ejecución de un programa su contenido es
puesto en el bus de direcciones y generalmente corresponderá a la dirección de la
primera instrucción del programa, luego de forma automática va incrementando su
valor en uno, o en el número de palabras que tenga la instrucción a ser ejecutada,
con excepción de que la instrucción que se está ejecutando sea de salto, en cuyo
caso el contador de programa tomará la dirección de la instrucción que se tenga que
ejecutar a continuación, una vez ejecutado el salto.
b) Registro de instrucciones. Contiene el código de operación de la instrucción que se
está ejecutando en ese momento y que fue traída desde la memoria de programa. El
código de operación (OPCOD) indica qué tipo de operación se va a realizar y
eventualmente los operandos que son necesarios (datos sobre los que actúa la
instrucción).
c) Decodificador de instrucciones. Es el circuito encargado de interpretar el código de
operación de la instrucción en curso, que se encuentra en el registro de instrucciones
y generar las órdenes elementales (microórdenes), sobre la base de la información
que contiene la ROM, a la que se le conoce como firmware.
d) Circuitos de temporización. Son los encargados de proporciona una sucesión de
señales a una frecuencia establecida por el reloj interno, que sirven para determinar
los instantes en que han de actuar los distintos circuitos involucrados en la ejecución
de la instrucción.
d) Selección de circuitos. Es el registro encargado de generar las señales necesarias que
en forma sincronizada se aplican al resto de elementos y que hacen que se vaya
ejecutando paso a paso la instrucción cuyo código está cargado en el registro de
instrucción.
En la figura Nº 1.6, se pueden observar los circuitos que se está describiendo y que
forman parte de un microprocesador en general.
1.2.3. Unidad de lógica y aritmética (ALU).
La ALU es el bloque funcional del microcontrolador encargada de ejecutar todas
aquellas operaciones matemáticas y de lógica que puede realizar, de acuerdo con su set
de instrucciones, que entre otras pueden ser: suma, resta y operaciones lógicas típicas
del álgebra de Boole. Estas operaciones se realizan a través de los buses internos que
comunica con la unidad de control y registros de datos.
La ALU está formada a su vez por los siguientes elementos o circuitos:
Circuito de la ALU
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-10
Registro temporal
Registro acumulador
Registro de banderas
a) Circuito de la ALU. Contiene los circuitos electrónicos digitales necesarios para la
realización de las operaciones tanto de aritmética, como de lógica con los datos
procedentes de los registros de entrada (operandos). Este circuito dispone de las
entradas requeridas para seleccionar la operación que debe realizar.
b) Registro temporal. Es un circuito en el que se almacenan los datos también
conocidos como operandos, que forman parte de la instrucción y que se encuentran
en estos registros antes de la realización de la operación por parte del circuito de la
ALU.
Buffer del Bus de
Datos
Registro de Pila
STACK (SP)
Registro de
Proposito General
Registro Indice
Contador de
Programa
(PC)
Buffer del Bus de
Direcciones
Registro de
Instrucciones
Decodificador
De Instrucciones
Seleccion de
Registros
Registro Temporal
C, AC,OVP,Z
Registro de
BanderaALU
Acumulador
Circuito de
Temporizacion
Y control
Bus de 16
Direcciones
8
Bus de Datos
7 0
15 0
Figura N° 1.6. Estructura de un microprocesador
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-11
c) Registro acumulador. Este registro contiene inicialmente uno de los operandos que
intervienen en la operación de aritmética o lógica y una vez ejecutada la misma en
este circuito se guarda el resultado, de acuerdo con el fabricante existen circuitos
que disponen de más de un acumulador y otros en los cuales no se dispone de
acumuladores y las operaciones se realizan con los registros denominados de
propósito general.
d) Registro de banderas. Se trata de un registro en el que los distintos bits que lo
conforman sirven para indicar las condiciones que se dieron en la última operación
realizada, por ejemplo, si el resultado fue cero, si hubo carry, si fue negativo, etc;
algunos fabricantes le denominan registro de estado.
1.3. El microcontrolador.
Existen dos tipos de arquitecturas de solución de los microcontroladores, las cuales
definen dos formas de trabajo diferentes para la memoria de datos y memoria de
programa, son las siguientes:
La arquitectura Von Neumann, conocida como CISC (Computadores con un conjunto
de Instrucciones Complejo), se caracteriza por estar estructurada sobre la base de un
sistema de buses comunes a las distintas etapas circuitales, tanto para direcciones, así
como para datos y control, como puede observarse en la figura Nº 1.7., lo cual
determina un trabajo con los datos e instrucciones del programa a través de ellos. Estos
circuitos disponen de un amplio repertorio de instrucciones que requirieren de varios
ciclos de reloj para su ejecución.
Figura Nº 1.7. Arquitectura Von Neumann
Fuente: Tomado del poligrafiado del Ing. Jaime Velarde
La otra arquitectura es la denominada Harvard, conocida también como RISC
(Computadores con un conjunto de Instrucciones Reducido). En estos circuitos la
generalidad de las instrucciones requieren de un ciclo de reloj para su ejecución. Por
otra parte, la optimización del hardware y mayor eficacia del software se lo ha
conseguido por medio del manejo independiente de las dos memorias principales, una
que contiene las instrucciones del programa y otra sólo de datos y cada una con buses
independientes, como se puede ver en la figura Nº 1.8., mediante esta arquitectura es
posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-12
memorias; además, la ejecución de las instrucciones se realiza mediante la metodología
conocida como pipeline, que permite que mientras se esta buscando una instrucción, en
ese mismo ciclo de reloj se está ejecutando otra instrucción.
1.3.1. Recursos Especiales del Microcontrolador.
Cada fabricante posee numerosas versiones de circuitos que se desarrollan sobre una
arquitectura básica de un microcontrolador. En algunas familias de circuitos se amplía
las capacidades de las memorias, en otras se incorporan nuevos recursos como
temporizadores, conversores, etc, en otras se reduce las características al mínimo para
aplicaciones muy simples, o se reduce el tamaño del circuito para aplicaciones donde el
espacio es muy limitado, etc. A este respecto cabe destacar, como ya se indicó, que un
microprocesador corresponde a una CPU construida en un solo circuito integrado,
mientras que un microcontrolador es un circuito integrado que en una sólo pastilla
contiene la CPU, memoria de programa y datos, circuitos de E/S y varios recursos
adicionales.
Figura Nº 1.8. Arquitectura Harvard.
Fuente: Tomado del poligrafiado del Ing. Jaime Velarde
Puntero de Pila.
El Stack o Pila, es un área en la memoria de datos cuyo propósito es disponer de un
espacio de memoria para salvar temporalmente datos, especialmente en el trabajo del
circuito con subrutinas e interrupciones, para esto se dispone de un registro que permite
conocer en que parte de este bloque de memoria se encuentra la información, entonces
el registro puntero contiene la dirección de la memoria de datos que corresponde a la
última dirección ocupada en la pila o stack.
Registro Índice.
Los registros índice tienen como finalidad facilitar los acceso a la memoria, sea esta de
datos o de programa, para esto un registro contiene una dirección de memoria, sea esta
la memoria de datos o la memoria de programa y es utilizado como puntero para hacer
más flexible el trabajo con tablas de datos, algunos circuitos poseen varios registros
índices, también conocidos como punteros por su aplicación.
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-13
Puertos de Entrada y Salida.
La principal utilidad, ventaja e importancia de los pines que posee un circuito
microcontrolador, esta orientada a soportar las líneas de E/S que comunican al
computador interno con los periféricos exteriores y, según los controladores de
periféricos que posea cada modelo de microcontrolador, se destinan a proporcionar el
soporte a las señales de entrada, salida y control.
Todos los microcontroladores destinan algunos de sus pines a soportar líneas de E/S de
tipo digital. Por lo general, estas líneas se agrupan de ocho en ocho formando los
denominados Puertos o Pórticos. Las líneas digitales de los Pórticos pueden
configurarse como Entrada o como Salida, cargando un 1 ó un 0 en el bit
correspondiente de un registro destinado a su configuración. Es importante tener en
cuenta que existen puertos paralelos (para especificar varias líneas o pines) y puertos
seriales.
Modulador de Ancho de Pulsos o PWM.
Son circuitos internos de los microcontroladores que proporcionan en su salida señales
de frecuencia variable, que se encuentran disponibles al exterior a través de los pines del
encapsulado. Dichas señales son útiles para sistemas de control de potencia, como por
ejemplo 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, conversión digital
analógica D/A, control regulado de luz (dimming) entre otras.
Puertos de Comunicación.
Para que el circuito microcontrolador se pueda comunicar con otros dispositivos, otros
buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con
otros elementos o dispositivos bajo otras normas y protocolos es necesario que el mismo
disponga de unidades o puertos de comunicación, los mismos que normalmente son del
tipo serial. Algunos modelos de microcontroladores, que dependen del fabricante en
particular, disponen de recursos que permiten directamente esta tarea, entre los que se
pueden señalar:
UART, adaptador de comunicación serie asincrónica.
USART, adaptador de comunicación serie sincrónica y asincrónica.
Puerto paralelo esclavo para poder conectarse con los buses de otros
microprocesadores.
USB (Universal Serial Bus).
Interfase SPI, que corresponde a un puerto serie sincrónico.
Periféricos.
En términos generales se los conoce como dispositivos auxiliares, los mismos que se
encargan de acondicionar las señales digitales de la computadora y el mundo exterior o
viceversa, dentro de ellos se pueden citar a los monitores o pantallas de video, los
visualizadores o displays, las impresoras, los modems, los teclados, etc. Al respecto
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-14
cabe destacar que de acuerdo con cada fabricante se define también como periféricos a
los circuitos internos que permiten realizar determinadas tareas, tales como la
conversión de analógico a digital, temporización, entre otros.
1.4. El microcomputador.
Un microcomputador puede contener como su elemento central a un microprocesador o
un microcontrolador, en este último caso difiere de una CPU normal, debido a que ya de
hecho es una computadora completa en vista a que contiene internamente las distintas
unidades de un computador, con las limitaciones del caso, razón por la cual es más fácil
estructurar un computador en base a un microcontrolador, ya que se requiere para su
funcionamiento de un mínimo número de circuitos externos adicionales. Es importante
destacar que es una máquina de propósito general, lo que significa que puede realizar
tareas muy diversas, de acuerdo a las posibilidades que brinden los lenguajes de
programación y el hardware.
Un computador en base a un microcontrolador, es una máquina electrónica que recibe y
procesa datos para convertirlos en resultados, puede ejecutar con exactitud, rapidez y de
forma automática una gran variedad de programas que son ordenados, organizados y
sistematizados en función de una aplicación práctica por quien lo programó, los
sistemas que están conformados sobre la base de un microcontrolador se aplican a la
resolución de problemas preferentemente orientados al control.
1.5. Desarrollo de un programa.
Los sistemas digitales que trabajan sobre la base de un microprocesador o
microcontrolador, requieren para su funcionamiento previamente del desarrollo de un
programa que es el que va a realizar el control de la operación general del sistema, es
decir, se requiere desarrollar dicho programa el mismo que una vez que ha sido
totalmente establecido, es almacenado en la memoria precisamente denominada de
programa, de donde es buscado por el microprocesador para ejecutar las funciones y
tareas deseadas o programadas.
Con el diseño de un programa se busca aplicar un sistema en base a un circuito
microcontrolador para encontrar la solución a un determinado problema, el diseño,
estructuración y desarrollo del programa involucra normalmente una serie de etapas,
como se ilustra en la figura N° 1.9, y que en forma resumida se presentan una
explicación a continuación.
a) Planteamiento del problema.
El punto de partida para el desarrollo del programa corresponde a la definición del
problema, esto es lo primero y requiere darle la importancia del caso dentro de los pasos
de todo el proceso, ya que permite conocer y delimitar el alcance del resultado que se
desea lograr, por tanto debe ser un planteamiento muy claro y concreto de lo que se
busca. Puede asegurarse que una definición incorrecta del problema no va a permitir que
se encuentre la solución requerida o que el resultado que se logre sea insatisfactorio,
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-15
suele decirse que la correcta definición del problema, ya es por lo menos la mitad de su
solución.
b) Algoritmo de solución.
Se conoce como un algoritmo a un conjunto de operaciones y procedimientos que deben
seguirse para resolver un problema en particular, dichas operaciones o actividades se
encuentran establecidas en un orden, que es en el cual se deben realizar.
El algoritmo es importante para la programación, su diseño o estructuración requiere de
la compresión clara del problema a resolver, así como de creatividad y conocimientos
básicos de programación. Dentro de las características fundamentales que debe cumplir
todo algoritmo, se tiene las siguientes:
Un algoritmo debe ser preciso e indicar el orden secuencial de realización de
cada paso.
Si se sigue un algoritmo dos veces o más, se debe obtener el mismo resultado
cada vez.
Un algoritmo debe tener un número definido de pasos, lo que significa que si se
sigue el mismo se debe terminar el proceso en algún momento (terminación del
programa).
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-16
Definición del
Problema
Establecer el
algoritmo
De solucion
Escribir el Programa
En lenguaje
mnemonico
Sintaxis correcta
>
Escribir el programaen
lenguaje de maquina
(ensamblador)
Ensamblado
Correcto
?
Grabar el programa
En el circuito
Ejecucion
Resultados
Correctos
?
Fin
(editor)
No
Si
No
Si
No
Si
Figura N° 1.9. Etapas para la solución de un problema
c) Escritura en lenguaje mnemónico.
En esta etapa, el algoritmo propuesto se lo escribe o se lo transforma a un programa que
mantiene o permite una relación entre el usuario y el microprocesador; es un lenguaje
que puede ser considerado de bajo nivel que trabaja en base a símbolos denominados
mnemónicos, que en esencia constituyen los códigos de las operaciones o instrucciones
que ejecutará el microprocesador e incluye la información de donde se encuentran los
datos con los cuales va a trabajar.
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-17
Un lenguaje en mnemónico o lista de instrucciones consiste en un conjunto de códigos
simbólicos, cada uno de los cuales corresponde a una instrucción, que es reconocida por
el circuito. Se le conoce como un lenguaje de programación para trabajar con los
microprocesadores (uPs) y microcontroladores (uCs), que se basa en símbolos que
pueden ser recordados con facilidad y que pueden ser ensamblados o compilados a
lenguaje de máquina mediante un software apropiado. En la escritura en mnemónicos
se pueden distinguir las dos partes que forman una instrucción, esto es:
INSTRUCCIÓN = CÓDIGO DE OPERACIÓN + OPERANDOS
Durante el desarrollo del curso se estudiarán los diferentes tipos de instrucciones, los
modos de direccionamiento (que es la forma en que el circuito busca los datos) y se
realizará una revisión de todo el repertorio de instrucciones del circuito que se ha
tomado como referencia. Es conveniente estudiar todas y cada una de las instrucciones
para ir familiarizándose con ellas, entender como definen el funcionamiento del circuito
y visualizar la sintaxis de las mismas. Los fabricantes proveen suficiente información
para poder realizar estas tareas.
d) Escritura en lenguaje de máquina.
Una vez que se cuenta con el programa desarrollado en lenguaje mnemónico, o también
denominado código fuente, este contiene las instrucciones del programa, además de las
etiquetas y directivas que fueron requeridas para estructurar el programa, también
contiene los datos conocidos como operandos, o donde se los debe buscar, es importante
tener presente que es un lenguaje que los microcontroladores no pueden procesar.
Debemos considerar además que los microprocesadores trabajan solamente con
lenguaje del más bajo nivel, es decir, trabajan con lo que se conoce como lenguaje de
máquina o código objeto, que corresponde a los códigos directamente interpretables o
ejecutables por un circuito microprocesador o microcontrolador. Para disponer del
programa en lenguaje de máquina, se utiliza un programa denominado ensamblador que
es el que posibilita la traducción o transformación de los códigos escritos en lenguaje
mnemónico a código de máquina.
Es conveniente resaltar que cada microprocesador o familia de microprocesadores,
interpreta su propio lenguaje de máquina, el mismo que constituye una referencia para
determinar las potencialidades y facilidades que ofrece cada familia de circuitos, de un
determinado fabricante. Las instrucciones ya transformadas a código de máquina son
almacenadas en la memoria de programa.
e) Grabación en memoria.
El almacenamiento en la memoria de programa se realiza normalmente utilizando un
sistema de grabación que es el que permite transmitir la información (datos e
instrucciones) al circuito, sistema que es manejado por un computador y a través de
uno de sus puertos se transmite el archivo para su grabación en la memoria.
El programa en lenguaje de máquina, también puede ser utilizado como la entrada a un
programa de simulación, para poder efectuar las pruebas iniciales de su funcionamiento,
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-18
en este caso puede decirse que corresponde a una prueba fuera de línea o que no
corresponde a tiempo real.
1.6. Ciclo de ejecución de una instrucción.
Como se ha señalado, un programa está constituido por un conjunto ordenado de
instrucciones, que constituyen el cuerpo principal del programa, al mismo que se agrega
uno o más bloques de ayuda a la estructuración del mismo, así como los datos iniciales
necesarios para una correcta ejecución de la secuencia de instrucciones que permitirá al
circuito resolver un problema especifico.
El proceso básico de ejecución de un programa en un microcontrolador, requiere de dos
etapas perfectamente definidas, que se las reconoce como de inicialización, que
corresponde a la preparación o desarrollo del programa, la grabación o almacenamiento
del mismo en la memoria del circuito y la acción de inicialización de los circuitos
internos propiamente dicha, que es la acción conocida como del reset, toda esta parte
corresponden a acciones exteriores al circuito.
Una vez que el circuito se ha liberado de la acción del reset, se cumple lo que se conoce
como el ciclo de la instrucción, por parte del microprocesador o microcontrolador, que
es la repetición de los siguientes pasos: Leer de la memoria una instrucción completa
del programa (código de operación y operandos), conocida también como fase de
búsqueda (fetch), para luego interpretar la instrucción leída y ejecutar dicha instrucción;
estas etapas se ilustran en la figura N° 1.10.
Preparacion del
Programa
Grabacion en
MemoriaRESET
Busqueda de la
instruccion
Ejecucion de la
instruccion
InicializacionCiclo de la Instruccion
Figura N° 1.10. Etapas de ejecución de un programa
Se define como el ciclo de ejecución de una instrucción a todos los pasos internos que
sigue el microprocesador o microcontrolador para ejecutar una instrucción. El número
de pasos y duración de este ciclo varían de un microprocesador a otro microprocesador
ya que depende totalmente de su arquitectura. La mayor parte de las técnicas utilizadas
para obtener un mayor rendimiento en la ejecución de las instrucciones están orientadas
a modificar la arquitectura para obtener un ciclo de ejecución más rápido.
Desde el punto de vista más simple, se considera que el procesamiento de una
instrucción se cumple en dos etapas, como se explicó; es decir, primero la CPU lee o
busca (trae, fetch) la instrucción desde la memoria y como segundo paso procede a su
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-19
ejecución. La ejecución del programa consiste en la repetición del proceso de traer y
ejecutar instrucciones, como se ilustra en la figura N° 1.11.
La etapa de traída significa la búsqueda de los distintos datos que conforman una
instrucción, es una operación común a todas las instrucciones, y consiste en la lectura de
la instrucción de una o más localidades de memoria de programa; esta etapa es similar
para todas las instrucciones, se diferencia de una a otra instrucción en el número de
lecturas y eventualmente en la manera en que el microcontrolador busca los datos con
los cuales va a trabajar (modos de direccionamiento). La ejecución de la instrucción que
ha sido traída desde la memoria, supone varias operaciones las cuales dependen de la
característica propia u operación que debe realizar cada instrucción.
Una vez que ha concluido la búsqueda de la instrucción y se ha completado la misma
(código de operación y operandos), el circuito procede a realiza la ejecución de la
instrucción que corresponde a la operación indicada en la propia instrucción y que es
particular para cada instrucción.
En resumen para entender cómo funciona un microprocesador o microcontrolador, se
requiere conocer cómo se van ejecutando cada una de las instrucciones del programa
que se encuentra almacenado en la memoria, cabe destacar que el conjunto de
instrucciones que es capaz de entender y ejecutar un microprocesador o un
microcontrolador es particular de ese circuito.
1.7. Definiciones utilizadas en microcomputadores.
Para el efecto, conviene tomar como referencia los diagramas de bloques de las figuras,
que ya se han presentado en el texto y entre otras se presentan las siguientes
definiciones:
Computador digital. Sistema electrónico capaz de resolver problemas mediante la
ejecución de un conjunto de órdenes o instrucciones, denominado programa. Está
diseñado para aceptar datos digitales y realizar operaciones aritméticas y lógicas sobre
esos datos y suministrar los resultados de las operaciones a muy altas velocidades.
Unidad aritmética y lógica. Corresponde a un conjunto de circuitos digitales que
realizan las operaciones tanto lógicas como aritméticas.
Unidad de control. Conjunto de circuitos electrónicos digitales que conforman un
módulo encargado de buscar e interpretar las instrucciones de un programa, a efecto de
lo cual coordina el funcionamiento de las demás unidades que conforman el computador
digital, por medio de las señales de control, para conseguir la ejecución de la
instrucción.
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-20
(PC) Bus de Add
(PC) (PC) + 1
Localidad de memoria Registro μP
Codigo
Operacion
?
Pasa el dato a un
Registro interno
Pasa el OpCod
Al registro de
Instrucciones
Instruccion
Completa
?
Ejecucion
De la instruccion
Reset
Si No
No Si
Figura N° 1.11. Ciclo de una instrucción
Unidad de memoria. Definida como un recurso del cual dispone un computador donde
se almacenan las instrucciones de los programas (memoria solo de lectura) y los datos y
resultados que se procesan (memoria de lectura/escritura).
Sistema de entrada/salida (I/O). Es el conjunto de circuitos electrónicos que permiten el
flujo de la información entre las distintas unidades del computador digital con el mundo
exterior mediante los dispositivos periféricos.
Periférico. Se lo considera un dispositivo electrónico auxiliar que se encarga de
acondicionar entre las señales digitales del computador y el mundo exterior o viceversa.
Así por ejemplo: los monitores o pantallas de video, los visualizadores o displays, las
impresoras, los modems, los teclados, etc.
Bus. Es un grupo de conductores físicos que permiten llevar la información entre los
distintos bloques del computador digital.
SISTEMAS MICROPROCESADOS
Ing. Oswaldo Buitrón B 1-21
Unidad central de proceso (CPU). Por la estrecha relación en su funcionamiento, la
unidad de control y la ALU, siempre se las construyó una junto a la otra, llamándoles en
su conjunto la CPU.
Microprocesador. La construcción de la CPU en un solo circuito integrado VLSI, se
conoce como microprocesador.
Microcontrolador. El desarrollo en la tecnología de fabricación de circuitos integrados
permite en la actualidad disponer de circuitos integrados VLSI y ULSI, que contienen
además de la CPU la unidad de memoria y un sistema de E/S elementales, a los que se
les conoce como microcontroladores o microcomputadoras en un solo circuito
integrado.
Microcomputador. Es un computador digital que utiliza como elemento inteligente para
su funcionamiento, un microprocesador o un microcontrolador.
Instrucción. Es una orden o comando para que la CPU realice alguna operación.
Programa. Corresponde a una secuencia de instrucciones que permiten a la CPU
procesar datos y obtener resultados con algún fin específico.
Software. Son las instrucciones, programas y demás información que se dispone para
una correcta y eficaz utilización de un computador digital.
Hardware. Son los circuitos y dispositivos físicos que conforman el computador digital,
incluye a sus periféricos.
Firmware. Corresponde al software que se encuentra almacenado en una memoria del
tipo no volátil (ROM) y es lo que se conoce como la microprogramación.
1.8. Algunas aplicaciones de los microcontroladores son:
En sistemas de comunicación: centrales telefónicas, transmisores, receptores,
teléfonos fijos, celulares, fax, etc.
En electrodomésticos: lavarropas, hornos de microondas, heladeras, lavavajillas,
televisores, reproductores de DVD, minicomponentes, controles remotos, etc.
Industria informática: Se encuentran en casi todos los periféricos; ratones,
teclados, impresoras, escáner, etc.
Domótica: sistemas de alarma y seguridad, control de procesos hogareños a
distancia, etc.
Automación: climatización, seguridad, ABS, etc.
Industria: Autómatas, control de procesos, etc.
Otros: Instrumentación, electromedicina, ascensores, calefacción, aire
acondicionado, sistemas de navegación, etc.
http://es.wikipedia.org/wiki/Microcontrolador