Arquitecturas Embebidas y Microcontroladores
Un sistema embebido (anglicismo
"embedded") o empotrado es un sistema
de computación diseñado para realizar una o algunas pocas
funciones dedicadas1 2 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.).
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:
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.
Los microcontroladores
son diseñados para reducir el costo económico y el consumo de energía de un
sistema en particular.
Firmware
§ Rutinas de software almacenadas en memoria ROM.
§ Software que se encuentra embebido en un dispositivo de hardware.
§ Es una combinación de software y hardware.
Tipos de Microcontroladores
§ Los microcontroladores se pueden clasificar
en:
§ Microcontroladores embebidos de 8 bits.
§ Microcontroladores de 16-32 bits
§ Procesadores de señales digitales (DSP)
Microcontroladores
de 8 bits
§ Todos los recursos necesarios están
incluidos en el chip.
§ Solo necesitan alimentación y reloj.
§ Proporcionan control e interfaz con
dispositivos externos de manera económica y programable.
Microcontroladores
de 8 bits
Disponen de:
§ Reset
§ Reloj
§ Procesador
§ Memoria ROM para el programa e interfaz de
programación
§ Memoria RAM para variables.
§ I/O
Pins.
Adicionalmente pueden incluir:
§ Capacidad de debugging
§ Interrupciones
§ I/O
analógica
§ Comunicación serial y/o paralela
§ Interfaz con memoria
Microcontroladores
de 8 bits
§ Muy
poca RAM (decenas de KB).
§ Muy
poca velocidad de reloj (decenas de MHZ).
§ Muy
utilizados en aplicaciones de control.
§ Bajo
costo.
§ Bajo
consumo energético (algunos μA).
Procesador
de señales digital
§ Es
una categoría relativamente nueva de microprocesadores.
§ El
objetivo de los DSP es tomar una señal analógica y calcular una respuesta
apropiada.
§ Ejecutan a gran velocidad para permitir el
control en tiempo real.
Fabricantes
Intel
§ 8048
§ 8051
(Intel y Otros)
§ 80186, 80186 y 80386 EX.
Microchip
§ PIC
Motorola
§ 68HC11 (Motorola y Toshiba)
§ 683xx
Atmel
§ AVR
Lenguaje
Ensamblador
El lenguaje ensamblador, o assembler (assembly language en
inglés), es un lenguaje de programación de bajo nivel paralos 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.
Ventajas
1. .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa más rápido.
1. .- Como trabaja directamente con el microprocesador al ejecutar un programa, pues como este lenguaje es el más cercano a la máquina la computadora lo procesa más rápido.
2. Eficiencia
de tamaño .- Un programa en ensamblador no ocupa mucho espacio en
memoria porque no tiene que cargan librerías y demás como son los lenguajes de
alto nivel.
Desventajas
Tiempo de programación .- Como es un lenguaje de bajo nivel requiere más instrucciones para realizar el mismo proceso, en comparación con un lenguaje de alto nivel. Por otro lado, requiere de más cuidado por parte del programador, pues es propenso a que los errores de lógica se reflejen más fuertemente en la ejecución.
Programas fuente grandes .- Por las mismas razones que aumenta el tiempo, crecen los programas fuentes; simplemente requerimos más instrucciones primitivas para describir procesos equivalentes. Esto es una desventaja porque dificulta el mantenimiento de los programas, y nuevamente reduce la productividad de los programadores.
Características
Ensamblador
es directamente traducible al Lenguaje de Máquina, y viceversa.
La
computadora no entiende directamente al Lenguaje Ensamblador; es necesario
traducirle a Lenguaje de Máquina.
Se
utilizan traductores que convierten el código fuente (en Lenguaje Ensamblador)
a código objeto.
Instrucciones en ensamblador
- Mov.-mueve el valor de un registro o un
numero hacia otro registro ejemplo mov Bx,5, movAX,bx.
- add.-Sumar el valor de un registro a
otro registro ADD BX,5
- sub.-Rest el valor de un registro o
valor especifico a un registro sub cx,2
- inc incrementa en 1 el valor del registro
incbx
- dec.-Decrementa en 1 el valor del registodecbx18
Características y
usos de los microcontroladores
Características y
usos
Son diseñados para disminuir el coste económico y el
consumo de energía de un sistema en particular. Por eso el tamaño de la CPU, la
cantidad de memoria y los periféricos incluidos dependerán de la aplicación. El
control de un electrodoméstico sencillo como una batidora, utilizará un
procesador muy pequeño (4 u 8 bit) por que sustituirá a un autómata finito. En
cambio un reproductor de música y/o vídeo digital (mp3 o mp4) requerirá de un
procesador de 32 bit o de 64 bit y de uno o más Códec de (audio y/o vídeo). El control de un sistema
de frenos ABS se basa normalmente en un microcontrolador de 16 bit, al igual
que el sistema de control electrónico del motor.
El procesador: Es el elemento más importante del microcontrolador y
determina sus principales características, tanto a nivel hardware como
software. Se encarga de direccionar la memoria de instrucciones, recibir el código
OP 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 operandos y el
almacenamiento del resultado. Existen tres orientaciones en cuanto a la
arquitectura y funcionalidad de los procesadores actuales.
Memoria: En los microcontroladores la memoria de instrucciones y
datos está integrada en el propio chip. Una parte debe ser no volátil, tipo
ROM, y se destina a contener el programa de instrucciones que gobierna la
aplicación. Otra parte de memoria será tipo RAM, volátil, y se destina a
guardar las variables y los datos.
Hay dos peculiaridades que diferencian a los
microcontroladores de los computadores personales:
No existen sistemas de almacenamiento masivo como disco
duro o disquetes. Como el microcontrolador sólo se destina a una tarea en la
memoria ROM, sólo hay que almacenar un único programa de trabajo.
La RAM en estos dispositivos es de poca capacidad pues
sólo debe contener las variables y los cambios de información que se produzcan
en el transcurso del programa. Por otra parte, como sólo existe un programa
activo, no se requiere guarda r una copia del mismo en la RAM pues se ejecuta
directamente desde la ROM.
Puertas de Entrada y
Salida: Las puertas de Entrada y
Salida (E/S) permiten comunicar al procesador con el mundo exterior, a través
de interfaces, o con otros dispositivos. Estas puertas, también llamadas
puertos, son la principal utilidad de las patas o pines de un microprocesador.
Según los controladores de periféricos que posea cada modelo de
microcontrolador, las líneas de E/S se destinan a proporcionar el soporte a las
señales de entrada, salida y control.
Reloj principal: Todos los microcontroladores disponen de un circuito
oscilador que genera una onda cuadrada de alta frecuencia, que configura los
impulsos de reloj usados en la sincronización de todas las operaciones del
sistema. Esta señal del reloj es el motor del sistema y la que hace que el
programa y los contadores avancen.
Generalmente, el circuito de reloj está incorporado en el
microcontrolador y sólo se necesitan unos pocos componentes exteriores para
seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen
consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador
cerámico o una red R-C.
Aumentar la frecuencia de reloj supone disminuir el
tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento
del consumo de energía y de calor generado.
Temporizadores o
Timers: Se emplean para controlar
periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos
que suceden en el exterior (contadores).
Para la medida de tiempos se carga un registro con el
valor adecuado y a continuación dicho valor se va incrementando o decrementando
al ritmo de los impulsos de reloj o algún múltiplo hasta que se desborde y
llegue a 0, momento en el que se produce un aviso. Cuando se desean contar
acontecimientos que se materializan por cambios de nivel o flancos en alguna de
las patitas del microcontrolador, el mencionado registro se va incrementando o
decrementando al ritmo de dichos impulsos.
Convertidores: Es un circuito electrónico que convierte una señal
analógica en digital. Se utiliza en equipos electrónicos como ordenadores o
computadoras, grabadores digitales de sonido y de vídeo, y equipos de
comunicaciones. La señal analógica, que varía de forma continua en el tiempo,
se conecta a la entrada del dispositivo y se somete a un muestreo
(cuantificación discreta, o asignación de un valor numérico a una determinada
intensidad de la señal) a una velocidad fija, obteniéndose así una señal
digital a la salida del mismo. Esta señal se puede volver a convertir en analógica
mediante un convertidor digital analógico.
.jpg)
No hay comentarios:
Publicar un comentario