Вы находитесь на странице: 1из 18

Trabajo de investigacion de las Unidades 1 y 2

Martn Valencia Flores.


13 de Marzo 2014

Indice
1. Microcontroladores, 2
1.0 Elementos basicos de un Mi-
croprocesador y un Microcon-
trolador, 2
1.1 Arquitectura de Microcontro-
ladores, Microprocesadores, 7
1.1.1 Que es una arquitectura?,
7
1.2 El Microprocesador y la Mi-
crocomputadora., 8
1.3 Microcomputadoras en un solo
Circuito Integrado., 9
1.4 Microcontroladores., 10
1.5 Ventajas y Desventajas de Mi-
crocontroladores., 10
2. Sistemas empotrados, 11
2.1 Introduccion, 11
2.2 Arquitectura de Sistemas Empo-
trados, 11
2.3 Analisis y Dise no, 12
2.4 Implementacion de programas, 13
2.5 Ejemplos, 14
1
Introducci on
En nuestro diario acontecer interactuamos con una gran cantidad (dentro
del rango de los cientos) de artefactos, herramientas que nos ayudan con las
diferentes labores que realizamos durante el da. Esto nos expone a una inter-
acci on con un sinn umero de diferentes mecanismos, sistemas, componentes
que no visualizamos y, en ocasiones, ni siquiera conocemos o tomamos en
cuenta.
Entre ellos se encuentran los microcontroladores (C) y microprocesadores
(P), los cuales son circuitos electr onicos integrados que se encuentran en
diversos aparatos, desde hornos microondas hasta en un automovil.
Desde hace ya unas decadas, los sistemas empotrados (o embebidos como
tambien son nombrados) han ido aumentando en su uso y aplicacion, ya que
estos sistemas representan un menor costo y tama no, caracteristicas que se
han logrado gracias a los diversos avances tecnol ogicos que se han dado a
traves de los a nos. Es curioso el ver como en poco m as de 40 a nos algo tan
peque no fue ganandose importancia hasta llegar a el nivel actual.
Esta investigaci on tiene como motivo desglosar que son, como funcionan
y para que sirven los microcontroladores, por lo que veremos su arquitectura,
sus ventajas y desventajas, as como otros conceptos b asicos al tema.
1.0 Elementos basicos de un Microprocesador y un Microcontro-
lador
Circuitos Electronicos
Como todo circuito integrado, los microcontroladores y microprocesadores
tienen dentro de su encapsulado una gran cantidad de circuitos electronicos,
los cuales desemepe nan diferentes funciones dentro del mismo. Estos circuitos
de tama no extremadamente reducido son la razon por la que los circutos in-
tegrados son considerados VLSI
1
.
Entre estos circuitos electr onicos sobresalen cinco en especial: el diodo,
el transistor, las compuertas logicas, el latch y el ip-op.
1
Very Large Scale Integration
2
Diodo: Un diodo es un circuito electronico de dos electrodos que posee
propiedades conductivas unidireccionales (o asimetricas). Los primeros dio-
dos datan desde nales de la decada de 1880, y al igual que muchos otros
circuitos electr onicos han ido cambiando conforme se descubren nuevos ma-
teriales y nuevas tecnicas, reduciendolos en tama no y costo.
Los diodos tienen multiples usos, desde recticadores de voltaje, modu-
ladores, hasta la base para construir compuertas l ogicas. El transistor naci o
apartir de un experimento con un diodo de union p-n.
Transistor: Un transistor es un dispositivo semiconductor, el cual naci o
en 1948 al tratar de controlar la conducci on de un diodo de union p-n (semi-
condutor). Se logro descubir que cuando se colocan 2 puntas metalicas sobre
un semiconductor, y se aplica una cierta tensi on, la corriente de la otra vena
inuida por la otra.
Los transistores han pasado por una serie de cambios en estructura, tipos y
sobretodo tama no, de hecho, es gracias a ellos que tenemos circuitos dise nados
como VLSI, y muchos otros componentes, como las compuertas logicas, se
basan en

logica de transistores.
Compuertas l ogicas: Las compuertas logicas son circuitos electr onicos
con funcionamiento basado en la l ogica booleana, por lo que existen diversas
compuertas logicas, entre ellas: AND, OR, NOT, NAND, NOR, etc.
Una virtud de las compuertas l ogicas es que al combinarlas se pueden lo-
grar circuitos l ogicos de considerable complejidad y utilidad. Para construir
compuertas l ogicas se pueden utilizar tubos al vacio, relays o transistores.
Este ultimo es el mas com un hoy en da debido a la reducci on signicativa
en tama no.
Flip-Flop y Latch: El Flip-Flop (tambien llamado biestable) es un
tipo de multivibrador que puede mantenerse en uno de 2 estados posibles
durante un tiempo indeterminado. Este cambio de estado son activados por
ancos en la se nal externa al Flip-Flop.
Los Flip-Flops se crearon para eliminar las deciencias que presentaban los
latches, multivibradores monoestables que cambian de estado al cambiar el
nivel de voltaje de la se nal externa al latch.
3
Componentes de un Microprocesador y un Microcontrolador
Microcontroladores y Microprocesadores: Los microprocesadores
y microcontroladores normalmente son objeto de confusion, en ocasiones in-
cluso llegan a (erroneamente) considerarlos sinonimos, puesto que ambos
circuitos integrados pueden, y son utilizados como base en los sistemas em-
potrados.
A un asi, hay diferencias bastante signicativas entre ambos circuitos inte-
grados, entre ellos:
Los microprocesadores son, basicamente una unidad de procesamiento
en un encapsulado, requieren de otros circuitos integrados (memoria,
reloj, interfaz de entrada/salida, y otros perifericos). Por el contrario,
los microcontroladores constituyen un sistema autocontenido en un solo
encapsulado (es decir, tiene su propia unidad de procesamiento, unidad
de memoria, contador/temporizador, interfaz de entrada/salida, etc.).
Los microcontroladores sobresalen en la realizaci on de una tarea es-
pecca (especializaci on), mientras que los microprocesadores, pueden
usarse como base en sistemas un poco mas complejos.
Un microprocesador es parte de una microcomputadora (al a nadirsele
los elementos faltantes puede considerarse una microcomputadora de
m as de un solo circuito integrado). Por otra parte, un microcontrolador
puede considerarse un subconjunto que pertence a las denominadas
microcomputadoras un solo circuito integrado.
Un microprocesador, debido a su estructura, esta orientado al manejo
de memoria y datos, ya que al componerse de varios circuitos inte-
grados, puede asignarsele una memoria seg un las necesidades que se
presenten. Mientras que un microcontrolador esta orientado al manejo
de puertos, ya que al estar todo en un encapsulado, su memoria es re-
ducida y debe de hacerse uso eciente de los recursos y del manejo de
los mismos.
A un tomando en cuenta estas diferencias existen similitudes entre ellos,
en componentes principalmente, ya que ambos tienen (o en el caso del mi-
croprocesador) una unidad de procesamiento.
A continuacion se listan y explican de manera general algunos de estos
elementos:
4
Unidad Aritmetico-Logica: La Unidad Aritmetico-Logica, o ALU
por sus siglas en ingles, es la encargada de las operaciones aritmeticas y
l ogicas, tal como su nombre lo indica. Para ello la ALU accesa la memoria
interna durante cada instrucci on para obtener la siguiente instruccion a eje-
cutar. Normalmente dichas instrucciones requieren accesar a la memoria de
registros para obtener los datos con los que trabajar a, guardar el resultado
del mismo o en algunos casos desplegarlo por algun dispositivo de entrada y
salida.
Entre las operaciones que puede realizar la ALU se encuentran:
Aritmeticas
Suma
Resta
Multiplicaci on
Incremento/Decremento
Logicas
AND
NOT
OR
XOR
Unidad de Control: Tal como su nombre lo dice, la unidad de control
es la seccion del procesador encargada de controlar los demas componentes,
indicando que acciones se deben de realizar y en que orden.
Esto lo hace por medio de el microprograma, el cual es una serie de pasos
secuenciales que la unidad de control ejecuta, mediante estos pasos puede
se nalar en que parte de la memoria se tiene que escribir o leer, incrementar
el mismo contador de programa, indicar a la ALU que operaci on realizar, etc.
La unidad de Control en conjunto con la ALU, forman, a grandes rasgos,
lo que se denomina Unidad Central de Procesamiento (CPU por sus siglas
en ingles).
5
Memoria Interna: La memoria es una parte indispensable de un sis-
tema dedicado, ya que estos al ser stand-alone, es decir independiente en
su funcionamiento, debe tener un espacio donde guardar sus funciones, ruti-
nas, etc.
El mencionar memoria, dentro del contexto de sistemas computacionales,
siempre abarca un gran campo de deniciones y clasicaciones, lo mismo es
cierto en un enfoque a un ambito empotrado.
La variedad de memoria que se utilizan en este entorno van desde la
memoria interna de la unidad de procesamiento (registros internos), hasta las
unidades de memoria del componente (externas si es un microprocesador).
Estas memorias tienden a ser tipo ROM, RAM o una mezcla de ambas.
Ductos: Los ductos (llamados buses en ingles) son lneas de se nales
dentro de los microprocesadores y microcontroladores, los cuales pueden di-
vidirse en los ductos internos y externos. Los ductos internos son aquellos
que forman parte de la comunicaci on y organizacion interna de la unidad de
procesamiento y no interfazan con el resto del circuito integrado, por lo que
conciernen mas a quienes fabrican el circuito que al programador nal.
En el caso de los ductos externos, contrario a los internos, interfazan
la unidad de control con el resto del circuito y son de principal interes para
el programador. Estos ductos, por lo general, pueden identicarse como duc-
tos de control, direcciones y datos.
Ducto Descripcion
Control Por medio de este ducto el CPU enva las se nales para
activar los perifericos a su disposicion, o los dispositivos
de memoria de ser el caso. Es de una sola direcci on.
Datos Este ducto es bidirecci onal, por lo que el CPU puede
leer datos de la memoria o de los puertos direccionados,
y un la informacion que entra por los puertos puede de
igual manera llegar a memoria.
Direcci on Por medio de este ducto el CPU enva la direcci on (lo-
calidad en memoria) a la que se va a escribir o de la cual
se va a leer. Es de una sola direcci on.
Tabla 1: Tipos de Ductos.
6
1.1 Arquitectura de Microcontroladores, Microprocesadores
Que es una arquitectura? Una arquitectura dene como esta orga-
nizado conceptual y estructuralmente un sistema, los microcontroladores y
los microprocesadores no son la excepci on.
El decidir bajo que arquitectura seran dise nados implica un analisis pre-
vio de los requisitos del problema que se intenta solucionar,requisitos nos
guiar an al momento de seleccionar el dispositivo adecuado, o bien los ele-
mentos necesarios para el funcionamiento del mismo.
El tener una arquitectura denida nos ayuda a hacer un uso mas e-
ciente de los recursos del mismo sistema, puesto que la misma arquitectura
dene la intercomunicaci on entre los recursos tanto fsica como l ogica. Por
ello, no es poco com un el encontrarnos con hbridos entre arquitecturas, o
derivados de las mismas, o ver losofas de dise no, lenguages de programacion
que pareceran ser parte de la arquitectura por defecto.
Existen diversas arquitecturas computacionales, varias de ellas derivadas
de alguna otra arquitectura, pero las mas conocidas, y punto de partida
de muchas otras, son la arquitectura de Von Neumann y la arquitectura de
Harvard.
Arquitectura de von Neumann: La arquitectura de Von Neumann
(en ocasiones llamada arquitectura de Princeton) fue propuesta a nes de los
a nos 40s, por el fsico-matematico John Von Neumann, la cual consiste de
5 partes : la unidad aritmetico-logica
2
, la unidad de control, los ductos de
datos (o buses), la memoria y un dispositivo de entrada/salida.
Esta arquitectura es la mas comun en microprocesadores, debido a que
es la mas afn a la estructura del microprocesador, as mismo es com un ver
un dise no de losofa CISC (Complex Instrution Set Computing), la cual se
caracteriza por tener un conjunto amplio de operaciones complejas sobre los
datos que se tienen en memoria.
Tomando en cuenta que los microprocesadores estan orientados hacia
el manejo de memoria, se vuelve l ogico el que estos se dise nen bajo dicha
arquitectura y losofa.
2
ALU por sus siglas en ingles
7
Figura 1: Modelo Von Neumann
Arquitectura Harvard: La arquitectura Harvard, llamada asi por la
Harvard Mark I, se compone principalmente de una central de procesamiento
(donde se encuentran la unidad de control y la ALU), Memoria de Instruc-
ciones y Memoria de datos, asi como sus respectivos ductos (ya que a difer-
encia de la arquitectura Von Neumann estos estan separados, lo cual permite
accesar datos de memoria y leer una instrucci on al mismo tiempo.
La arquitectura Harvard, y derivados hbridos de la misma es frecuente-
mente utilizada en microcontroladores, ya que es la mas afn a su estructura,
y, a diferencia de la arquitectura Von Neumann, es com un ver un dise no tipo
losofa RISC (Reduced Instruction Set Computing), la cual se caracteriza
por tener pocas operaciones pero un decodicado m as sencillo de las mismas.
Siendo que en un microprocesdor todo esta en un mismo encapsulado,
nuestra mejor opcion tiende a ser un conjunto reducido de operaciones, que
a si vez sean ecientes y se complementen con la (relativamente) cantidad
considerable de registros internos que un microprocesador tiene. Por lo que
la seleccion en este caso termina siendo esta arquitectura y losofa.
Figura 2: Modelo Harvard
8
El Microprocesador y la Microcomputadora
Las microcomputadoras, consideradas las sucesoras de las minicomputa-
doras, pueden denirse vagamente como el conjunto de perifericos, puertos y
otros elementos con un microprocesador/unidad de procesamiento. Por tal
motivo, un microprocesador no puede considerarse una microcomputadora,
pero si parte integral de una.
El ser una unidad de procesamiento en un solo encapsulado presenta
ventajas y desventajas, por ejemplo: el tener que agregar perifericos para
acompletar el sistema (subiendo el costo del mismo), esta misma caracteris-
tica otorga una adaptabilidad del componente en si.
Por ello, entre otras cosas, ha existido una gran variedad de microproce-
sadores en el mercado, tomando como ejemplo a los microprocesadores de
Intel, vemos como ha cambiado desde el Intel 4004, conocido como el primer
microprocesador comercial, hasta los Core i7.
Microcomputadoras en un solo Circuito Integrado
Con la implementaci on dispositivos VLSI se abrio camino a la fabricaci on
de componentes electronicos de menor tama no sin sacricar eciencia, esta-
bilidad y rapidez. Entre los dispositivos que se desarrollaron se encuentran
las microcomputadoras en un solo circuito integrado.
Si bien estas microcomputadoras no pueden comparase en ciertos paramet-
ros (tama no de memoria y otras capacidades) contra sus contrapartes de
mayor tama no, debe considerarse que ese no es el n con el que fueron
dise nados, ya que su verdadero valor sobresale en los sistemas dedicados
(empotrados).
Un claro ejemplo de una microcomputadora de un solo circuito integrado
es el microcontrolador.
9
Microcontroladores.
Los sistemas dedicados abarcan una amplia gama en el mercado hoy en
dia, desde juguetes hasta misiles de largo alcance. Y la tendencia muestra
a un incremento en su integraci on, incremento que en parte ha sido posible
gracias a la ecacia de los microcontroladores.
La presencia de los microcontroladores es t an signicativa que no solo
existen en esa diversidad de articulos y herramientas, adem as hay una gran
variedad de modelos de microcontroladores, todos con especicaciones que
pueden adaptarse a todo tipo de necesidad.
Ventajas y Desventajas de los Microcontroladores.
Como en todo sistema, el uso de microcontroladores como solucion a
un problema conlleva ventajas y desventajas al respecto, las cuales son to-
talmente dependientes del problema en si, as, es decir, lo que podra ser una
ventaja en usar un microcontrolador en un caso, digamos un horno microon-
das, puede ser un problema en otra instancia.
Con esto en mente, a continuaci on, y de manera general, mencionare-
mos algunas caracteristicas que por lo general son ventaja, o desventaja,
seg un sea el caso, en comparaci on con un microprocesador:
Ventajas:
Menor costo.
Menor tama no.
Bajo consumo de energa.
Alto nivel de integracion con sistemas empotrados.
Desventajas:
Memoria reducida.
Las fallas de hardware tienden a requerir un cambio total del circuito,
ya que todo esta en un solo encapsulado.
10
Sistemas empotrados
Introducci on
Los sistemas empotrados (o embebidos como tambien son llamados) son
sistemas basados en microcontoladores / microprocesadores, el cual esta
dise nado para controlar o realizar un cierto rango de funciones, sin que el
usuario nal interera en su programaci on.
Esto no quiere decir que el usuario nal no tenga algun control sobre las
funciones (ya que algunos parametros tendran que recibirse invariablemente
por el), pero si limita al usuario sobre el software en si, es decir, el usuario
nal no puede modicar el software de igual manera que en un equipo de
computo profesional.
A manera de ejemplo, en el equipo de computo personal se puede es-
tar en un ambiente de desarrollo en un momento, y en otro se puede tener
un editor de texto o algun tipo de videojuego, mientras que un sistema em-
bebido esta dedicado a una tarea y sus multiples opciones y variantes.
Como se fue mencionando en los puntos anteriores, conforme la tec-
nologa avanza, los sistemas empotrados han incrementado en importancia y
reduciendose en espacio, sin perder poder de procesamiento y funcionalidad.
2.2 Arquitectura de Sistemas Empotrados
El decidir que arquitectura utilizar para un sistema empotrado depende
en gran parte del analisis y de la direcci on que se decida tomar apartir de
este, ya sea por la complejidad del problema o por el circuito que se utilizara
como base del sistema.
En cuanto a las arquitecturas mas usuales en un sistema empotrado,
como se mencion o en el punto 1.2, suelen ser RISC o CISC, Harvard o Von
Neumann. Veamos un poco m as a detalle las 2 primeras.
CISC: Como se mencion o anteriormente la arquitectura CISC se car-
acteriza por tener un amplio listado de instrucci ones, y es muy com un verlo
junto a un modelo de Von Neumann, esto es porque el ducto de datos y
direcciones estan en uno solo, compartidos.
11
Estas caractersticas causan que el paralelismo se diculte en esta ar-
quitectura, pero vuelve el hardware mas simple, en el sentido de que al con-
tar con una amplia gama de instrucci ones se reduce la necesidad de ciertos
componentes.
RISC: En contraposicion de la arquitectura CISC, la RISC tiene un
listado compacto de instrucci ones es com un verla junto con un modelo Har-
vard y tiene el ducto de datos y de direcciones por separado.
Esto facilita el paralelismo al ejecutar instrucciones dentro de un mismo
ciclo de reloj, pero siendo que las instrucciones son reducidas, el hardware se
vuelve mas complejo.
En la actualidad existen derivados e hbridos de ambas arquitectura,
las cuales fueron desarrolladas para mejorar dise no, mejorar la velocidad
de procesamiento y ejecuci on, etc. La arquitectura ARM destaca entre las
derivadas de RISC (es usada en productos de Atmel).
2.3 Analisis y Dise no
Como todo sistema, debe existir un an alisis y un dise no detras de todo,
ya que el empezar a desarrollar el sistema empotrado, tanto por la parte de
hardware y software, sera equivalente a construir una cochera sin conocer la
cantidad y tama no de los autos que la usaran.
Hoy en da contamos con software de modelado a nuestra disposici on,
as como lenguajes con el mismo n. Aunque no estan especicamente pen-
sados para considerar a los sistemas empotrados, existen adaptaciones. Un
popular ejemplo es UML
3
enfocado a empotrados, el cual en conjunto con
el perl MARTE
4
facilitan el dise no y especicaci on e implementacion del
sistema.
Claro esta, no es tan sencillo como suena, ya que no solo es identicar el
problema y proponer una arquitectura; el analisis y dise no obedecer an a una
serie de restricciones, principalmente fsicas (sea tama no, peso, forma, entre
otras) y economicas, las cuales por lo general presentan problemas, ya que
el impacto de las dimensiones fsicas del sistema no es algo que se considere
3
Unied Modeling Language
4
Modeling and Analysis of Real-Time and Embedded systems
12
en el an alisis de un sistema, y es algo que en ocasiones se omite al realizarlo
para sistemas empotrados.
Estas restricciones, junto con el enfoque del an alisis nos ayudan a escoger
la arquitectura, los componentes necesarios y el lenguaje de programacion en
el cual se codicar a la parte logica del sistema.
2.4 Implementaci on de programas
Los programas desarrollados con enfoque a sistemas empotrados, al igual
que el sistema mismo, tienden a caracterizarse por ser de compactos, de bajo
costo (en energia), pero sobre todo deben ser robustos.
Esta robustez y bajo coste energetico son imperativos, en especial con-
siderando que son sistemas que comunmente deben controlar alguna labor
o monitorearla, muchas ocasiones bajo ambientes de alto estres, ya sea por
altura, temperatura, humedad, incluso presi on.
Estas variables y la disponibilidad, o falta, de elementos son puntos cru-
ciales al momento de seleccionar el lenguaje en el que se programara.
Aunque por lo general los lenguajes de programacion comunmente utiliza-
dos son en gran parte independientes de la arquitectura, debe seleccionarse
basados en conocimiento del mismo lenguaje y operabilidad con el hardware,
de igual manera tomando en cuenta la disponibilidad de un compilador o
interprete, ya que debemos recordar que estos componentes funcionan con
instrucciones en lenguaje maquina.
Los lenguajes que se emplean usualmente son el lenguaje C, el cual es
un lenguaje de nivel medio/alto (esto por el hecho de que aunque dispone
de estructuras comunes en los lenguajes de alto nivel, dispone de funcional-
idades que le permiten un control a bajo nivel) y el lenguaje ensamblador
o ASM (por Assembler, ensamblador en ingles, este es un lenguaje de bajo
nivel).
El hecho de que estos dos lenguajes sean los mas usuales no implica que un
sistema empotrado este atado con uno u otro lenguaje, por el contrario, existe
una gran variedad de lenguajes de donde seleccionar, siempre y cuando exista
un compilador que soporte el modelo de microcontrolador/microprocesador
13
que se usar a, entre ellos se encuentran:
LUA, FORTH, Embedded Pascal (Pascal Embebido) y Embedded C++
(C++ Embebido), por mencionar algunos.
2.5 Ejemplos
A continuaci on se muestran 2 funciones, una en lenguaje ensamblador
y otra en C, esto con el n de dar un ejemplo visual del c odigo desarrollado
para un sistema embebido.
Ejemplo en C:
El siguiente codigo en lenguaje C, es una funci on que inicializa el UART0
del dispositivo para el que se programo, en este caso un ATMega 644p y su
archivo .h respectivo.
Se puede observar que no hay cambios signicativos comparando con
alg un otro codigo en C, exceptuando que estamos incluyendo las librerias de
AVR, por obvias razones.
Figura 3: Prototipos en el archivo H
14
Figura 4: Codigo en C.
Ejemplo en ASM:
El siguiente c odigo en ensamblador, es una funcion que obtiene una ca-
dena guardada en una direcci on de la memoria RAM, y lo imprime caracter
por caracter a traves del UART0 del dispositivo en cuestion.
Estructuralmente es bastante similar al lenguaje ensamblador normal,
con la excepcion del cambio en los nombres de las instrucciones (palabras
reservadas).
15
Figura 5: Codigo en ASM.
16
Bibliografa
[1] Gustavo Galeno. Programacion de Sistemas Embebidos. Alfaomega,
Mexico, D.F, 2009.
[2] Steve Heath. Embedded Systems Design. Elsevier Science, Burlington,
MA, 2003.
[3] J. M. Thomson J.D. Ryder. Electric Circuits and Systems. Prentice-Hall,
Englewood Clis, New Jersey, 1976.
[4] Lester P. Laskowski Ronald J. Tocci. Microprocessors and Microcom-
puters: Hardware and Software. Prentice-Hall, Englewood Clis, New
Jersey, 1982.
[5] Ted Van Sickle. Programming Microcontrollers in C. LLH Technology
Publishing, El Cajon, California, 2001.
[6] Joseph Sifakis Thomas A. Henzinger. The discipline of embedded systems
design. Computer, 40(10):3240, 2007.
17

Вам также может понравиться