Professional Documents
Culture Documents
Nixon Rodrguez
Juan Carlos Pereira
Juan Carlos Leal.
TRABAJO PRESENTADO A
EDWIN ALEXIS PINEDA MUOZ
1. Qu es un sistema embebido?
Son dispositivos usados para controlar equipos, operacin de maquinarias o plantas industriales
completas. El trmino "embebido" (tambin se lo conoce como "incrustado" o "embutido") est
caracterizando que esos circuitos integrados son una parte integral del sistema en que se
encuentran. Lo interesante de que un sistema sea "embebido" es que puede estar de tal forma
incrustado, puede quedar tan oculto a nuestros ojos, que la presencia de tales "chips" no resulte
nada obvia a quien lo mira.
2. Como se clasifican los sistemas embebidos.
Se entiende que en nuestra definicin de SE, ste siempre alberga una o ms CPUs ya que son
el elemento encargado de aportar la inteligencia al sistema. El formato en el que la CPU se
encuentra puede ser el de microprocesador, micro controlador (C), DSP, etc. Segn este
formato, la memoria necesaria puede ir integrada dentro del chip que contiene la CPU, de forma
externa a ste o un bajo ambas posibilidades. La oferta en el mercado de semiconductores tanto
de microprocesadores como microcontroladores y DSP es elevada y se requiere de una cuidada
fase de estudio inicial para seleccionar el mas adecuado a cada aplicacin.
La norma IPC-2221B-1.6.2 clasifica a los sistemas
Embebidos en tres clases:
Clase 1 - Productos electrnicos de uso general.
Clase 2 Productos electrnicos de servicio ininterrumpido.
Clase 3 Productos electrnicos con alto grado de Confiabilidad.
Esta clasificacin refleja el grado de sofisticacin.
- Microprocesador.
- Micro controlador de 4, 8, 16 o 32 bits.
- DSP de punto fijo o punto flotante.
- Diseo a medida custom tales como los dispositivos FPGA
Microprocesador:
Es un chip que incluye bsicamente la CPU y circuitera Relacionadas con los buses de datos
y memoria. Para poder realizar su tarea se necesitan otro chips adicionales (Sistema mnimo)
tales como memoria, circuitos de entrada salida E/S (I/O) y reloj.
Microcontrolador
(MCU): Es un dispositivo que alberga el sistema mnimo dentro de un nico chip, esto es,
incluye CPU, buses, reloj, memoria ROM, memoria RAM, E/S, otros perifricos tales como
conversores A/D, temporizadores (timers), etc.
Vistos a muy bajo nivel, los microprocesadores procesan exclusivamente seales electrnicas
binarias. Dar una instruccin a un microprocesador supone en realidad enviar series de unos y ceros
espaciadas en el tiempo de una forma determinada. Esta secuencia de seales se denomina cdigo
mquina. El cdigo representa normalmente datos y nmeros e instrucciones para manipularlos. Un
modo ms fcil de comprender el cdigo mquina es dando a cada instruccin un mnemnico, como
por ejemplo STORE, ADD o JUMP. Esta abstraccin da como resultado el ensamblador, un lenguaje
de muy bajo nivel que es especfico de cada microprocesador. Los lenguajes de bajo nivel permiten
crear programas muy rpidos, pero que son a menudo difciles de aprender. Ms importante es el
hecho de que los programas escritos en un bajo nivel son totalmente dependientes de la mquina o
de cada procesador. Si se lleva el programa a otra mquina se debe reescribir el programa desde el
principio. Al estar prcticamente diseados a medida del hardware, aprovechan al mximo las
caractersticas del mismo.
Dentro de este grupo se encuentran:
LENGUAJE MQUINA.
ENSAMBLADOR.
de los lenguajes intermedios y sus ventajas y desventajas, conviene destacar la diferencia entre la
traduccin de un lenguaje de alto nivel a cdigo mquina anteriormente a su ejecucin (su
compilacin) y su interpretacin, es decir, la conversin de cada instruccin del lenguaje a cdigo
mquina y su ejecucin, una por una, al ejecutar el programa. Este proceso se realiza a travs de
una MV de interpretacin que simula un ordenador cuyo cdigo mquina es el lenguaje de alto nivel
que est siendo interpretado. Y tpicamente, esta MV se construye a travs de un conjunto de
programas de cdigo mquina que representa los algoritmos y estructuras de datos necesarios para
la ejecucin de las instrucciones del lenguaje de alto nivel. Hay ventajas y desventajas en cada
manera de convertir los lenguajes de alto nivel a cdigo mquina, que se pueden resumir as:
funcionamiento interno de la maquina/s para la que estn diseando el programa. Tan solo necesitan
un traductor que entiendan el cdigo fuente como las caractersticas de la maquina. Suelen usar
tipos de datos para la programacin y hay lenguajes de propsito general (cualquier tipo de
aplicacin) y de propsito especifico (como FORTRAN para trabajos cientficos). Ejemplos de estos
lenguajes de alto nivel son PASCAL, APL y FORTRAN (para aplicaciones cientficas), COBOL (para
aplicaciones de procesamiento de datos), SNOBOL (para aplicaciones de procesamiento de textos),
LISP y PROLOG (para aplicaciones de inteligencia artificial), C y ADA (para aplicaciones de
programacin de sistemas) y PL/I (para aplicaciones de propsitos generales) .
Adems del papel de los lenguajes intermedios en la compilacin parcial, se puede destacar su papel
en la compilacin estndar. Como ejemplo se puede considerar C como lenguaje intermedio para un
lenguaje compilado nuevo. Si el autor de un nuevo lenguaje decide utilizar C, por ejemplo, como su
lenguaje intermedio, slo tendr que implementar una MV para convertir el cdigo fuente de su
lenguaje a C, ahorrando mucho trabajo.
Las ventajas de utilizar un lenguaje tan establecido como C como lenguaje intermedio son:
La facilidad de portar el lenguaje a una nueva mquina (slo hay que tener un compilador
C disponible all).
La facilidad de modificar algn rasgo del comportamiento del lenguaje en alguna mquina
en concreto (por ejemplo, caractersticas de memoria o rendimiento se pueden aadir
libreras C customizadas sin grandes problemas).
Las posibilidades disponibles para mapear estructuras intermedias del nuevo lenguaje a
estructuras de datos de C.
La depuracin es muy difcil porque, entre otras cosas, los errores que ocurren en el cdigo
C no son muy fciles de localizar en lo que ha escrito el programador originalmente en el
nuevo lenguaje.
Habr ocasiones en las que no exista una buena traduccin entre una estructura en el
nuevo lenguaje y las estructuras de datos en C, por lo que habr una prdida de eficiencia
en el programa resultante (como, por ejemplo, ocurre en la mayora de las ocasiones en
que se compilan estructuras de Prolog a C slo se puede expresar iteracin en Prolog
utilizando recursin).
LENGUAJE ENSAMBLADOR.
El lenguaje ensamblador constituye el primer intento de sustitucin del lenguaje mquina por uno
ms cercano al usado por los humanos. Este acercamiento a las personas se plasma en las
siguientes aportaciones:
direccionamiento simblico
Se permite el uso de comentarios entre las lneas de instrucciones, haciendo posible
la redaccin de programas ms legibles.
Aparte de esto l LE presenta la mayora de los inconvenientes del lenguaje mquina, como son su
repertorio muy reducido de instrucciones, el rgido formato de instrucciones, la baja potabilidad y la
fuerte dependencia del hardware. Por otro lado mantiene la ventaja del uso ptimo de los recursos
hardware, permitiendo la obtencin de un cdigo muy eficiente.
Ese tipo de lenguajes hacen corresponder a cada instruccin en ensamblador una instruccin en
cdigo mquina. Esta transduccin es llevada a cabo por un programa traductor denominado
Ensamblador.
Para solventar en cierta medida la limitacin que supone poseer un repertorio de instrucciones, tan
reducido, se han desarrollado unos ensambladores especiales denominados macroensambladores.
Los lenguajes que traducen los macroensambladores disponen de macroinstrucciones cuya
traduccin da lugar a varias instrucciones mquina y no a una sola.
Dado que el lenguaje ensamblador esta fuertemente condicionado por la arquitectura del ordenador
que soporta, los programadores no suelen escribir programas de tamao considerable en
ensamblador. Mas bien usan este lenguaje para afinar partes importantes de programas escritos en
lenguajes de ms alto nivel.
Hay un distinto Lenguaje de Mquina (y, por consiguiente, un distinto Lenguaje Ensamblador) para
cada CPU. Por ejemplo, podemos mencionar tres lenguajes completamente diferentes, que sin
embargo vienen de la aplicacin de los conceptos anteriores:
Velocidad
El proceso de traduccin que realizan los intrpretes, implica un proceso de cmputo adicional al
que el programador quiere realizar. Por ello, nos encontraremos con que un intrprete es siempre
ms lento que realizar la misma accin en Lenguaje Ensamblador, simplemente porque tiene el costo
adicional de estar traduciendo el programa, cada vez que lo ejecutamos.
De ah nacieron los compiladores, que son mucho ms rpidos que los intrpretes, pues hacen la
traduccin una vez y dejan el cdigo objeto, que ya es Lenguaje de Mquina, y se puede ejecutar
muy rpidamente. Aunque el proceso de traduccin es ms complejo y costoso que el de ensamblar
un programa, normalmente podemos despreciarlo, contra las ventajas de codificar el programa ms
rpidamente.
Sin embargo, la mayor parte de las veces, el cdigo generado por un compilador es menos eficiente
que el cdigo equivalente que un programador escribira. La razn es que el compilador no tiene
tanta inteligencia, y requiere ser capaz de crear cdigo genrico, que sirva tanto para un programa
como para otro; en cambio, un programador humano puede aprovechar las caractersticas
especficas del problema, reduciendo la generalidad pero al mismo tiempo, no desperdicia ninguna
instruccin, no hace ningn proceso que no sea necesario.
Para darnos una idea, en una PC, y suponiendo que todos son buenos programadores, un programa
para ordenar una lista tardar cerca de 20 veces ms en Visual Basic (un intrprete), y 2 veces ms
en C (un compilador), que el equivalente en Ensamblador.
Por ello, cuando es crtica la velocidad del programa, Ensamblador se vuelve un candidato lgico
como lenguaje. Ahora bien, esto no es un absoluto; un programa bien hecho en C puede ser muchas
veces ms rpido que un programa mal hecho en Ensamblador; sigue siendo sumamente importante
la eleccin apropiada de algoritmos y estructuras de datos. Por ello, se recomienda buscar optimizar
primero estos aspectos, en el lenguaje que se desee, y solamente usar Ensamblador cuando se
requiere ms optimizacin y no se puede lograr por estos medios
8. Qu es un compilador?
Los compiladores son programas de computadora que traducen de un Lenguaje a otro. Un
compilador toma como su entrada un programa Escrito en lenguaje fuente y produce un programa
equivalente escrito en Lenguaje objeto. Generalmente al lenguaje fuente se le asocia como lenguaje
de alto nivel, mientras al lenguaje objeto se le conoce como cdigo objeto (cdigo de Maquina)
escrito especficamente para una maquina objeto. A lo largo del Proceso de traduccin el compilador
debe informar la presencia de Errores en el lenguaje fuente.
Microprocesador, se puede observar que dependiendo del circuito se requeran algunos circuitos
integrados adicionales adems del Microprocesador como por ejemplo:
RAM (para almacenar datos temporalmente y memorias)
ROM (para guardar el programa encargado del proceso del equipo)
Circuito integrado (para los puertos de entrada y salida)
Descodificador de direcciones.
En cambio un Microcontrolador es un sistema cerrado, es en definitiva un circuito
integrado que incluye todos los componentes de un computador. Debido a su reducido
tamao es posible montar el controlador en el propio dispositivo al que gobierna. En ste
caso
el
controlador
recibe
el
nombre
de
controlador
empotrado.
En donde todas las partes del procesador estn contenidas en su interior y slo salen al
exterior las lneas que gobiernan los perifricos.
En conclucion las estas ventajas son reconocidas inmediatamente para aquellas personas que han
trabajado con losMicroprocesadores y despus pasaron a trabajar con los Microcontroladores. Estas
son
las
diferencias
ms
importantes:
Por ejemplo la configuracin mnima bsica de un Microprocesador estaba constituida por un Micro
de 40 Pines, Una memoria RAM de 28 Pines, una memoria ROM de 28 Pines y un decodificador de
direcciones de 18 pines; pero un Microcontrolador incluye todo estos elementos en un solo Circuito
Integrado por lo que implica una gran ventaja en varios factores: En el circuito impreso por su amplia
simplificacin de componentes, el costo para un sistema basado en Microcontrolador es mucho
menor y, lo mejor de todo, el tiempo de desarrollo de su proyecto electrnico se disminuye
considerablemente.
Cules son las principales marcas de micro controladores. Describa las ventajas y
desventajas de cada una.
Los fabricantes de micro controladores son ms de 50, podemos mencionar a:
- microchip
- Motorola
- Microchip
- NEC
- Hitachi
- Mitsibishi
- Philips
- Matsushita
- Toshiba
- AT&T
- Zilog
- Siemens
-National Semiconductor
Las instrucciones y los datos son almacenados en el mismo formato dentro de la misma memoria, lo
que quiere decir que las instrucciones son datos y comparten el mismo bus de datos en su
transmisin. En principio un programa en ejecucin se puede modificar a s mismo y en prctica
usualmente esto significa que un error ocurri. La ventaja de este tipo de arquitectura es que es
eficiente en la utilizacin de la memoria pero su desventaja es que los tipos de datos no pueden ser
reconocidos sin ambigedad. La arquitectura se compone de las siguientes unidades o bloques:
Unidad de memoria principal Unidad aritmtico-lgica. Unidad de control. Unidad de entrada y salida.
La arquitectura Harvard esencialmente posee una diferencia muy marcada con respecto a la
arquitectura Von Neumann, la cual es que los procesadores utilizan dispositivos de almacenamiento
fsicamente separados para el manejo de instrucciones y datos. El acceso a cada espacio de
memoria puede llegar a ser mediante buses distintos, es decir, existe un bus de datos y un bus de
instrucciones; pero lo ms habitual es que exista un nico bus de direcciones, en cuyo caso debe
existir alguna seal de control que permita diferenciar a que espacio de memoria hace referencia
(seales de Read, Write y Fetch).
14. Enumere una ventaja de la arquitectura RISC sobre la CISC y una de la CISC sobre la
RISC.
VENTAJAS DEL RISC:
La CPU trabaja ms rpido al utilizar menos ciclos de reloj para ejecutar instrucciones.
15. Realice una descripcin de las caractersticas del micro controlador PIC16F877 de
Microchip.
El microcontrolador PIC16F877 de Microchip pertenece a una gran familia de micro controladores
de 8 bits (bus de datos) que tienen las siguientes caractersticas generales que los distinguen de
otras familias:
Arquitectura Harvard
Tecnologa RISC
Tecnologa CMOS Estas caractersticas se conjugan para lograr un dispositivo altamente
eficiente en el uso de la memoria de datos y programa y por lo tanto en la velocidad de
ejecucin. Microchip ha dividido sus microcontroladores en tres grandes subfamilias de
acuerdo al nmero de bits de su bus de instrucciones:
Los microcontroladores que produce Microchip cubren una amplio rango de dispositivos cuyas
caractersticas pueden variar como sigue:
Empaquetado (desde 8 patitas hasta 68 patitas)
Tecnologa de la memoria incluida (EPROM, ROM, Flash)
Voltajes de operacin (desde 2.5 v. Hasta 6v)
Frecuencia de operacin (Hasta 20 MHz)
16. Realice una descripcin de las caractersticas del micro controlador MCS08JM60 de
Freescale.
Microcontrolador Freescale MC9S08JM16CLD
MC9S08JM16CLD
Microcontrolador Freescale de 8 bits de la familia HCS08 de bajo costo y alto rendimiento.
16KB de memoria flash para programacin
RAM de 1KB
33 puertos de entrada/salida
8 canales de ADC de 12 bits
2 Timers
Velocidad: 48MHz
Voltaje de alimentacin: 2,7 ~ 5,5V dc
Interfaz SCI / SPI / I2C / USB / LIN
Encapsulado: LQFP-44
PIC16F877 ARQUITECTURA
Arquitectura interna del microcontrolador
Este trmino se refiere a los bloques funcionales internos que conforman el
microcontrolador y la forma en que estn conectados, por ejemplo la memoria FLASH
(de programa), la memoria RAM (de datos), los puertos, la lgica de control que
permite que todo el conjunto funcione, etc.
Memoria de programa PiC16F877
Memoria de programa (FLASH) Es una memoria de 8K de longitud con datos de 14 bits en cada
posicin. Como es del tipo FLASH se puede programar y borrar elctricamente, lo que facilita el
desarrollo de los programas y la experimentacin. En ella se graba o almacena el programa o
cdigos que el microcontrolador debe ejecutar. En la figura 3.8 se muestra el mapa de la memoria
de programa. La memoria de programa est dividida en cuatro bancos o pginas de 2K cada uno.
El primero va de la posicin de memoria 0000h a la 07FFh, el segundo va de la 0800h a la 0FFFh,
el tercero de la 1000h a la 17FFh y el cuarto de la 1800h a la 1FFFh. Vector de reset. Cuando
ocurre un reset al microcontrolador, el contador de programa se pone en ceros (0000H). Por esta
razn, en la primera direccin del programa se debe escribir todo lo relacionado con la iniciacin del
mismo.
Vector de interrupcin.
Cuando el microcontrolador recibe una seal de interrupcin, el contador de programa apunta a la
direccin 04H de la memoria de programa, por eso, all se debe escribir toda la programacin
necesaria para atender dicha interrupcin.
Pila (Stack)
Estos registros no forman parte de ningn banco de memoria y no permiten el acceso por parte del
usuario. Se usan para guardar el valor del contador de programa cuando se hace un llamado a una
subrutina o cuando se atiende una interrupcin; luego, cuando el micro regresa a seguir ejecutando
su tarea normal, el contador de programa recupera su valor leyndolo nuevamente desde la pila. El
PIC16F877 tiene una pila de 8 niveles, esto significa que se pueden anidar 8 llamados a subrutina
sin tener problemas.
Memoria de datos (RAM)
El PIC16F877 posee cuatro bancos de memoria RAM, cada banco posee 128 bytes. De estos 128
los primeros 32 (hasta el 1Fh) son registros que cumplen un propsito especial en el control del
microcontrolador y en su configuracin. Los 96 siguientes son registros de uso general que se
pueden usar para guardar los datos temporales de la tarea que se est ejecutando, figura 3.9. Todas
las posiciones o registros de memoria se pueden acceder directa o indirectamente (esta ltima forma
a travs del registro selector FSR). Para seleccionar que pgina o banco de memoria se trabaja en
un momento determinado se utilizan los bits RP0 y RP1 del registro STATUS.
RESGISTROS DE CONTROL
REGISTRO DE CONTROL
MAPAS DE MEMORIA