Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistema Embebido
Un sistema embebido (anglicismo "embedded") o empotrado es
un sistema de computacin diseado para realizar una o algunas pocas
funciones dedicadas frecuentemente en un sistema de computacin en
tiempo real . Al contrario de lo que ocurre con los ordenadores de
propsito general (como por ejemplo una computadora personal o PC)
que estn diseados para cubrir un amplio rango de necesidades, los
sistemas embebidos se disean para cubrir necesidades especficas. En
un sistema embebido la mayora de los componentes se encuentran
incluidos en la placa base (la tarjeta de vdeo , audio, mdem , etc.).
Y tambin lo que es un microcontrolador:
de
Fabricantes de microcontroladores
INTEL 8048 8051 80C196 80386
MOTOROLA 6805 68HC11 68HC12
HITACHI HD64180
PHILIPS 8051 (si es el de Intel)
SGS-THOMSON ST62XX
NATIONAL Semiconductor COP400 COP800
ZILOG Z8 Z86XX
TEXAS INSTRUMENT TMS370
TOSHIBA 68HC11 (si, el de Motorola)
MICROCHIP serie PIC
ATMEL 8051 - AT91SAM - AVR - AVR32
Microcontroladores de 8 bits
Disponen de:
Reset
Reloj
Procesador
Memoria ROM para el programa e interfaz de programacin
Memoria RAM para variables.
I/O Pins.
Adicionalmente pueden incluir:
Capacidad de debugging
Interrupciones
I/O analgica
Comunicacin serial y/o paralela
Interfaz con memoria
Familias Intel:
podemos mencionar como referencia histrica, a la familia MCS-48
compuesta principalmente por el 8048AH.
Caractersticas
| Beneficios |
| Facilidad.simple
| Soluciones.Hace posible diseos en una sola
Familias Motorola:
codificar los tres registros, este esquema no suele estar disponible en los
procesadores RISC con pequeas instrucciones de 16 bits: load a,reg1;
load b,reg2; add reg1+reg2->reg3; store reg3,c;
ms operandos, algunas mquinas CISC permiten una variedad de
modos de direccionamiento que permiten ms de 3 operandos (registros
o accesos a memoria), como el VAX "POLY", instruccin de evaluacin de
polinomi
Nemotcnicos ms frecuentes:
del
origen
en
varias
posiciones
de
add: Suma.
subtract: Resta.
multiply: multiplica.
divide: divide.
Nemotcnicos ms frecuentes:
Nemotcnicos ms frecuentes:
Nemotcnicos ms frecuentes:
Nemotcnicos ms frecuentes:
hasta
que
una
Se usan como semforos, esto es, se declara una variable entera que
tendr el valor 0 si el recurso esta libre y 1 si est siendo utilizado, de
manera que si un procesador comprueba y el semforo est en 1 tendr
que esperar hasta que este cambie a 0. (1 = s.rojo y 0 = s.verde).
El lenguaje ensamblador
En el lenguaje ensamblador el programador utiliza instrucciones
simblicas en lugar de instrucciones de mquina y nombres descriptivos
para los elementos de datos y para las localidades de memoria. Usted
escribe un programa en ensamblador de acuerdo con un conjunto
estricto de reglas que despus utiliza el programa traductor de
ensamblador para convertir el programa ensamblador en cdigo
mquina.
Existen 2 clases de lenguajes de programacin: de alto nivel y de bajo
nivel. Los programadores que escriben en un lenguaje de alto nivel
(como C y Pascal), codifican comandos poderosos, cada uno de los
LENGUAJE ENSAMBLADOR
INSTRUCCIONES
EN
LENGUAJE
ACALL
Llamar Absoluto
AADIR
Aadir Acumulador
ADDC
AJMP
Salto Absoluto
ANL
ANL bits
CJNE
CLR A
Borrar Acumulador
Poco CLR
Claro bits
CPL A
Complementar Acumulador
Poco CPL
Poco Complemento
DA
Diciembre
Disminuye el Registro
DIV
DJNZ
INC
Incrementa el Registro
JB
JBC
JC
JMP @
JNB
JNC
JNZ
JZ
LCALL
Long Call
LJMP
Salto de longitud
MOV
Poco MOV
Poco Move
MOVC
MOVX
MUL
NOP
No Operacin
ORL
ORL bits
POP
Pop De Pila
PUSH
Empuje en la pila
RET
Regresa de la subrutina
RETI
Regreso de la interrupcin
RL
RLC
RR
RRC
Carry
SETB
Bit Set
SJMP
Corto Jump
SUBB
SWAP
XCH
Tipo Bytes
XCHD
Dgitos Tipo
XRL
OR exclusivo
??
Instruccin Indefinido
Eficiencia de tamao
Flexibilidad
Tiempo de programacin
Falta de portabilidad
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 costoadicional 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.
Tamao
Por las mismas razones que vimos en el aspecto de velocidad, los compiladores
e intrpretes generan ms cdigo mquina del necesario; por ello, el programa
ejecutable crece. As, cuando es importante reducir el tamao del ejecutable,
R de 16 b al que pe
AF
AF
BC
BC
DE
DE
HL
HL
AF
AF
BC
BC
DE
DE
HL
HL
Xh
IX
Xl
IX
Yh
IY
Yl
IY
"IR"
"IR"
PC
SP
A parte de esos, tiene otro dos que son bolanos (1 slo bit), llamados iff0 y iff1
(y al menos otro registro interno de 8 bits para clculos internos suyos).
Los registros con un <> son alternativos. Digamos que estn en el banquillo
esperando que salga del juego su homlogo para entrar l. No se les puede
acceder directamente (habra ms jugadores de los reglamentarios), pero
siempre se puede hacer el cambio (aqu son ilimitados). Siempre que se
produce uno de stos cambios, se intercambia un registro de 16 bits enterito.
No vale cambiar slo uno de 8.
Xh, Yh, Xl, Yl son los registros de 8 bits que conforman IX e IY. Oficialmente, las
instrucciones que operan sobre ellos estn indocumentadas, pero me parece
una tontera el no hablar de ellos desde el principio.
PC contiene el "contador del programa", es decir, la direccin de memoria en
la cual el procesador leer su prxima instruccin
Modos de direccionamiento
Se les llama modos de direccionamiento a las distintas formas de combinar los
operadores segn el acceso que se hace a memoria.
Dicho de otra manera, un modo de direccionamiento ser una forma de
parmetro para las instrucciones. Una instruccin que lleve un parmetro, por
lo tanto, usar un modo de direccionamiento, que depender de cmo
direccionar (accesar) al parmetro; una instruccin de dos parmetros,
combinar dos modos de direccionamiento.
Modo registro
Modo inmediato
Tiene dos operandos: un registro y una constante que se usa por su valor.
El valor constante no se tiene que buscar en memoria, pues ya se obtuvo al
hacer el "fetch" de la instruccin.
Por tanto, es rpido aunque no tanto como el modo registro; requiere ir al BIU
por el dato.
Modo directo
Modo indirecto
Formato:
[
BX o BP
+ SI o DI (opcionales)
+ constante (opcional)
]
BX o BP indica una localidad base de la memoria
A partir de BX o BP, se puede tener un desplazamiento variable y uno
constante
La diferencia es el segmento sobre el que trabajan por defecto:
BX por defecto en el segmento de datos
BP por defecto en el segmento de pila.
Puertos de comunicacin.
Puerto serie
USB
Los microcontroladores son los que han permitido la existencia de este
sistema de comunicacin. Es un sistema que trabaja
por polling (monitorizacin) de un conjunto de perifricos inteligentes
por parte de un amo, que es normalmente un computador personal.
Cada modo inteligente est gobernado inevitablemente por un
microcontrolador.
Temporizadores y contadores
Son circuitos sincrnicos para el conteo de los pulsos que llegan a su
poder para conseguir la entrada de reloj. Si la fuente de un gran conteo
es el oscilador interno del microcontrolador es comn que no tengan un
pin asociado, y en este caso trabajan como temporizadores. Por otra
Cada vez existen ms productos que incorporan un microcontrolador con el fin de aumentar sustancialmente
sus prestaciones, reducir su tamao y coste, mejorar su fiabilidad y disminuir el consumo. Algunos fabricantes
de microcontroladores superan el milln de unidades de un modelo determinado producidas en una semana.
Este dato puede dar una idea de la masiva utilizacin de estos componentes. Los microcontroladores estn
siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno
microondas, frigorficos, televisores, computadoras, impresoras, mdems, el sistema de arranque de nuestro
automovil,
etc.
Y
otras
aplicaciones
con
las
que
seguramente
no
estaremos
tan
familiarizados
como instrumentacin electrnica, control de sistemas en una nave espacial, etc. Una aplicacin tpica podra
emplear varios microcontroladores para controlar pequeas partes del sistema. Estos pequeos controladores
podran comunicarse entre ellos y con un procesador central, probablemente ms potente,
para compartir la informacin y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier
PC