1. ARQUITECTURA EMBEBIDAS O MICROCONTROLADORES
Un sistema embebido es un sistema de computación diseñado para realizar
una o algunas pocas funciones dedicadas, frecuentemente en un sistema
de computación en tiempo real. Al contrario de lo que ocurre con los ordenadores
de propósito general (como por ejemplo una computadora personal o PC) que
están diseñados para cubrir un amplio rango de necesidades, los sistemas
embebidos se diseñan para cubrir necesidades específicas. En un sistema
embebido la mayoría de los componentes se encuentran incluidos en la placa
base (la tarjeta de vídeo, audio, módem, etc.) y muchas veces los dispositivos
resultantes no tienen el aspecto de lo que se suele asociar a una computadora.
Algunos ejemplos de sistemas embebidos podrían ser dispositivos como un
taxímetro, un sistema de control de acceso, la electrónica que controla una
máquina expendedora o el sistema de control de una fotocopiadora entre otras
múltiples aplicaciones.
Por lo general los sistemas embebidos se pueden programar directamente en
el lenguaje ensamblador del microcontrolador o microprocesador incorporado
sobre el mismo, o también, utilizando los compiladores específicos, pueden
utilizarse lenguajes como C o C++; en algunos casos, cuando el tiempo de
respuesta de la aplicación no es un factor crítico, también pueden usarse
lenguajes interpretados como JAVA.
Puesto que los sistemas embebidos se pueden fabricar por decenas de millares
o por millones de unidades, una de las principales preocupaciones es reducir
los costes. Los sistemas embebidos suelen usar un procesador relativamente
pequeño y una memoria pequeña para ello.
Componentes de un sistema embebido
En la parte central se encuentra el microprocesador, microcontrolador, DSP, etc.
Es decir, la UPC o unidad que aporta capacitores de cómputo al sistema,
pudiendo incluir RAM interna o externa, un micro con arquitectura específica
según requisitos.
Se denominan actuadores a los posibles elementos electrónicos que el sistema
se encarga de controlar. Puede ser un motor eléctrico, un conmutador
tipo relé etc. El más habitual puede ser una salida de señal PWM para control de
la velocidad en motores de corriente continua.
El módulo de E/S analógicas y digitales suele emplearse
para digitalizar señales analógicas procedentes de sensores, activar diodos LED,
reconocer el estado abierto cerrado de un conmutador o pulsador, etc.
El módulo de reloj es el encargado de generar las diferentes señales de reloj a
partir de un único oscilador principal.
2. El módulo de energía (power) se encarga de generar las diferentes tensiones y
corrientes necesarias para alimentar los diferentes circuitos del SE. Usualmente
se trabaja con un rango de posibles tensiones de entrada que mediante
conversores ac/dc o dc/dc se obtienen las diferentes tensiones necesarias para
alimentar los diversos componentes activos del circuito.
Aplicaciones de un sistema embebido
Los lugares donde se pueden encontrar los sistemas embebidos son numerosos
y de varias naturalezas.
En una fábrica, para controlar un proceso de montaje o producción. Una máquina
que se encargue de una determinada tarea hoy en día contiene numerosos
circuitos electrónicos y eléctricos para el control de motores, hornos, etc. que
deben ser gobernados por un procesador, el cual ofrece un interfaz persona –
máquina para ser dirigido por un operario e informarle al mismo de la marcha del
proceso.
Puntos de servicio o venta (POS, Point Of Service). Las cajas donde se
paga la compra en un supermercado son cada vez más completas,
integrando teclados numéricos, lectores de códigos de barras mediante
láser, lectores de tarjetas bancarias de banda magnética o chip, pantalla
alfanumérica de cristal líquido, etc. El sistema embebido en este caso
requiere numerosos conectores de entrada y salida y unas características
robustas para la operación continuada.
Puntos de información al ciudadano. En oficinas de turismo, grandes
almacenes, bibliotecas, etc. existen equipos con una pantalla táctil donde
se puede pulsar sobre la misma y elegir la consulta a realizar, obteniendo
una respuesta personalizada en un entorno gráfico amigable.
Decodificadores y set-top boxes para la recepción de televisión. Cada vez
existe un mayor número de operadores de televisión que aprovechando
las tecnologías vía satélite y de red de cable ofrecen un servicio de
televisión de pago diferenciado del convencional.
Sistemas radar de aviones. El procesado de la señal recibida o reflejada
del sistema radar embarcado en un avión requiere alta potencia de cálculo
además de ocupar poco espacio, pesar poco y soportar condiciones
extremas de funcionamiento (temperatura, presión atmosférica,
vibraciones, etc.).
Equipos de medicina en hospitales y ambulancias UVI – móvil.
Máquinas de revelado automático de fotos.
Cajeros automáticos.
3. ORGANIZACIÓN DEL PROCESADOR
· Captar instrucción: el procesador lee una instrucción de la memoria (registro,
cache o memoria principal).
· Interpretar instrucción: la instrucción se decodifica para determinar qué acción
es necesaria.
Captar datos: la ejecución de una instrucción puede exigir leer datos de la memoria
o de un módulo E/S.
Procesar datos: ejecución de una instrucción puede exigir llevar acabo alguna
operación aritmética o lógica con los datos.
Escribir datos: los resultados de una ejecución pueden exigir escribir datos en la
memoria o en un módulo E/S.
En la figura anterior, es una visión simplificada de un procesador, que indica su
conexión con el resto del sistema a través del bus del sistema. La ALU lleva a
cabo el verdadero calculo o procesamiento de datos. La unidad de control
controla las transferencias de datos e instrucciones hacia dentro y hacia afuera
del procesador, y el funcionamiento de la ALU.
En la figura anterior se presenta una visión un poco más detallada del
procesador. Se indican los caminos de transferencia de datos y de la lógica de
control, que incluyen un elemento con el rotulo bus interno del procesador. Este
elemento es necesario para transferir datos entre los diversos registros y la ALU,
4. ya que la ALU en realidad solo opera con datos de la memoria interna del
procesador.
5. LENGUAJE ENSAMBLADOR
El lenguaje ensamblador es un lenguaje de programación de bajo nivel para
los computadores, microprocesadores, microcontroladores y otros circuitos
integrados programables. Implementa una representación simbólica de
los códigos de máquina BINARIOS y otras constantes necesarias para
programar una arquitectura dada de CPU y constituye la representación más
directa del código máquina específico para cada arquitectura legible por un
programador. Esta representación es usualmente definida por el fabricante
de hardware, y está basada en los mnemónicos que simbolizan los pasos de
procesamiento (las instrucciones), los registros del procesador, las posiciones
de memoria y otras características del lenguaje. Un lenguaje ensamblador es por
lo tanto específico de cierta arquitectura de computador física (o virtual). Esto
está en contraste con la mayoría de los lenguajes de programación de alto nivel,
que idealmente son portátiles.
Un programa utilitario llamado ensamblador es usado para traducir sentencias
del lenguaje ensamblador al código de máquina del computador objetivo. El
ensamblador realiza una traducción más o menos isomorfa (un mapeo de uno a
uno) desde las sentencias mnemónicas a las instrucciones y datos de máquina.
Esto está en contraste con los lenguajes de alto nivel, en los cuales una sola
declaración generalmente da lugar a muchas instrucciones de máquina.
Muchos sofisticados ensambladores ofrecen mecanismos adicionales para
facilitar el desarrollo del programa, controlar el proceso de ensamblaje, y la
ayuda de depuración. Particularmente, la mayoría de los ensambladores modernos
incluyen una facilidad de macro (descrita más abajo), y son llamados macro ensambladores.
Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se
contaba con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se
utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando
se requiere la manipulación directa de hardware, alto rendimiento, o un uso de recursos
controlado y reducido. También es utilizado en el desarrollo de controladores de
dispositivo (en inglés, device drivers) y en el desarrollo de sistemas operativos, debido a la
necesidad del acceso directo a las instrucciones de la máquina. Muchos dispositivos
programables (como los microcontroladores) aún cuentan con el ensamblador como la única
manera de ser manipulados.
6. MICROCONTROLADOR
Microcontrolador PIC 18F8720 en encapsulado TQFP de 80 pines.
Un microcontrolador (abreviado μC, UC o MCU) es un circuito
integrado programable, capaz de ejecutar las órdenes grabadas en su memoria.
Está compuesto de varios bloques funcionales, los cuales cumplen una tarea
específica. Un microcontrolador incluye en su interior las tres principales
unidades funcionales de una computadora: unidad central de
procesamiento, memoria y periféricos de entrada/salida.
Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan
a velocidad de reloj con frecuencias tan bajas como 4 kHz, con un consumo de
baja potencia (mW o microvatios). Por lo general, tendrá la capacidad para
mantener la funcionalidad a la espera de un evento como pulsar un botón o de
otra interrupción, el consumo de energía durante el estado de reposo (reloj de la
CPU y los periféricos de la mayoría) puede ser sólo nanovatios, lo que hace que
muchos de ellos muy adecuados para aplicaciones con batería de larga duración.
Otros microcontroladores pueden servir para roles de rendimiento crítico, donde
sea necesario actuar más como un procesador digital de señal (DSP), con
velocidades de reloj y consumo de energía más altos.
Cuando es fabricado el microcontrolador, no contiene datos en la memoria ROM.
Para que pueda controlar algún proceso es necesario generar o crear y luego
grabar en la EEPROM o equivalente del microcontrolador algún programa, el
cual puede ser escrito en lenguaje ensamblador u otro lenguaje para
microcontroladores; sin embargo, para que el programa pueda ser grabado en la
memoria del microcontrolador, debe ser codificado en sistema numérico
hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador
cuando éste es alimentado con el voltaje adecuado y asociado a
dispositivos analógicos y discretos para su funcionamiento.
7. PUERTOS PS/2
El conector PS/2 o puerto PS/2 toma su nombre de la serie de ordenadores IBM
Personal System/2 que es creada por IBM en1987, y empleada para
conectar teclados y ratones. Muchos de los adelantos presentados fueron
inmediatamente adoptados por el mercado del PC, siendo este conector uno de
los primeros.
En ambos casos es serial (bidireccional en el caso del teclado), y controlada
por microcontroladores situados en la placa madre. No han sido diseñados para
ser intercambiados en caliente, y el hecho de que al hacerlo no suela ocurrir nada
es más debido a que los microcontroladores modernos son mucho más
resistentes a cortocircuitos en sus líneas de entrada/salida.
Aunque idéntico eléctricamente al conector de teclado AT DIN 5 (con un sencillo
adaptador puede usarse uno en otro), por su pequeño tamaño permite que en
donde antes sólo entraba el conector de teclado lo hagan ahora el de teclado
y ratón, liberando además el puerto RS-232 usado entonces mayoritariamente
para los ratones, y que presentaba el inconveniente de compartir interrupciones
con otro puerto serial (lo que imposibilitaba el conectar un ratón al COM1 y
un módem al COM3, pues cada vez que se movía el ratón cortaba al módem la
llamada)
A su vez, las interfaces de teclado y ratón PS/2, aunque eléctricamente similares,
se diferencian en que en la interfaz de teclado se requiere en ambos lados un
colector abierto para permitir la comunicación bidireccional. Los ordenadores
normales de sobremesa no son capaces de identificar al teclado y ratón si se
intercambian las posiciones.
En cambio en un ordenador portátil o un equipo de tamaño reducido es muy
frecuente ver un sólo conector PS/2 que agrupa en los conectores sobrantes
ambas conexiones (ver diagrama) y que mediante un cable especial las divide
en los conectores normales.
Por su parte el ratón PS/2 es muy diferente eléctricamente de la serie, pero
puede usarse mediante adaptadores en un puerto serie.
Este tipo de conexiones se han utilizado en máquinas no-PC como
la DEC AlphaStation o los Acorn RISC PC / Archimedes
En la actualidad, han sido reemplazados por los dispositivos USB Plug and
Play en su mayoría, haciéndolos difíciles de encontrar, ya que ofrecen mayor
velocidad de conexión, ofrecer múltiples posibilidades de conexión de más de un
periférico de forma compatible, no importando el sistema operativo, bien
sea Windows, MacOS ó Linux (Esto es, multiplataforma).