21
[DETRI] 12 SISTEMAS MICROPROCESADOS ESCUELA POLITECNICA NACIONAL [Escribir el nombre del autor]

Introdución a los Microcontroladores

Embed Size (px)

DESCRIPTION

Introduccion a los uCs

Citation preview

Page 1: Introdución a los Microcontroladores

[DETRI]

12

SISTEMAS

MICROPROCESADOS ESCUELA POLITECNICA NACIONAL [Escribir el nombre del autor]

Page 2: Introdución a los Microcontroladores

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

Page 3: Introdución a los Microcontroladores

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

Page 4: Introdución a los Microcontroladores

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.

Page 5: Introdución a los Microcontroladores

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.

Page 6: Introdución a los Microcontroladores

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

Page 7: Introdución a los Microcontroladores

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

Page 8: Introdución a los Microcontroladores

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

Page 9: Introdución a los Microcontroladores

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

Page 10: Introdución a los Microcontroladores

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

Page 11: Introdución a los Microcontroladores

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

Page 12: Introdución a los Microcontroladores

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.

Page 13: Introdución a los Microcontroladores

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

Page 14: Introdución a los Microcontroladores

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,

Page 15: Introdución a los Microcontroladores

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).

Page 16: Introdución a los Microcontroladores

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.

Page 17: Introdución a los Microcontroladores

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,

Page 18: Introdución a los Microcontroladores

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

Page 19: Introdución a los Microcontroladores

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.

Page 20: Introdución a los Microcontroladores

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.

Page 21: Introdución a los Microcontroladores

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