Introducción A Los Sistemas Embebidos
Introducción A Los Sistemas Embebidos
Introducción A Los Sistemas Embebidos
Este tipo de sistemas se utiliza en diversas áreas como son: la tecnología de la información, las comunicaciones
móviles y los sistemas de control específicos.
Los Sistemas Embebidos deben afrontar problemas de tiempo real, requiriendo no solamente proveer una
determinada plataforma funcional sino también haciéndolo dentro de intervalos de tiempo determinados y con alta
confiabilidad.
Los desarrolladores de sistemas embebidos son profesionales del sector IT muy demandados, sobre todo
debido al auge del Internet of Things (IoT), los smartwatch, drones y otros dispositivos.
Los sistemas embebidos (embedded systems) surgen para cubrir necesidades específicas y no necesidades
generales como las que cubre un ordenador. En español también es frecuente referirse a ellos como software
integrado o incrustado.
Los sistemas embebidos consiguen muy a menudo no parecer un ordenador, sino algo completamente distinto.
Deberíamos pensar, por ejemplo, en un sistema de control de acceso de una empresa, el software que controla las
máquinas de vending o los taxímetros. También los relojes inteligentes o los mp3 son ejemplos con software
embebido.
En general, todos los componentes del sistema embebido (el audio, tarjeta de vídeo, etc.) se incluyen en
su misma placa base.
Para programar sistemas embebidos, los desarrolladores pueden programar directamente en Assembler
(Lenguaje Ensamblador) del microprocesador, o utilizar lenguajes como C, C++ o incluso Java.
Además de estos lenguajes, existen plataformas que tienen herramientas específicas para el diseño de apps y
prototipos con sistemas embebidos:
Arduino
Atmel AVR
Microchip PIC
Raspberry Pi
BeagleBone
Mbed
En general es posible dividir el área de los sistemas embebidos en dos:
Hardware embebido: Los ingenieros de hardware embebido se encargan de los diseños esquemáticos,
el diseño de la placa base integrada y del PCB, de la electrónica de potencia, etc. Necesitan experiencia
con software como CAD o EDA.
Software embebido: El ingeniero de software en sistemas embebidos trabaja con los cargadores de
arranque y es responsable de programar los controladores de los dispositivos. Para ello necesitan
experiencia en programación de sistemas y microcontroladores.
El desarrollador de software embebido necesita dominar el lenguaje de programación C. Este lenguaje está
considerado como uno de los lenguajes más eficientes; e independientemente del campo o empresa en la que se
trabaje, es muy probable que se trabaje con C y C++.
LynxOS
OSE
QNX
RTLinux
Conocimientos necesarios como desarrollador de sistemas embebidos:
Inicialmente, cuando no existían los microprocesadores, las personas se ingeniaban en diseñar sus circuitos
electrónicos, y los resultados estaban expresados en diseños que implicaban muchísimos componentes
electrónicos y enormes cálculos matemáticos, como a su vez, un simple circuito lógico básico requería de muchos
elementos como ser transistores, diodos, resistencias, relays, etc.
Al principio se creía que el manejo de un microprocesador era para aquellas personas con un coeficiente intelectual
muy alto. Por lo contrario, con la aparición de este circuito integrado todo sería mucho más fácil de entender, y los
diseños electrónicos serían muchísimo más pequeños y simplificados.
Hoy en día, los microprocesadores se utilizan más en las computadoras de uso general, ya sea, para la casa, para
la oficina, para el control industrial avanzado, dispositivos móviles inteligentes, etc; donde se requiere un mayor
grado de procesamiento, conectividad multimedia y presentación de datos.
Como bien sabemos y hemos estudiado, una computadora básica está compuesta de al menos:
Ahora bien, cuando necesitamos agregar un control automático o funciones adicionales a un dispositivo que sólo se
dedica a realizar las mismas tareas periódicamente y no necesita de un gran número de cálculos, manejo y
presentación de datos, como por ejemplo: un horno microondas, una lavadora automática, un equipo de aire
acondicionado, una heladera, el control remoto de un televisor, un sistema de alarma, entre otros; no se justificaría
utilizar el sistema anterior (computadora) por varios motivos, entre los cuales, surge al responder a los siguientes
requerimientos:
Ser un sistema básico y lo más pequeño posible, que no ocupe mucho lugar dentro del artefacto a
controlar.
Responder a escasas instrucciones, ya que las tareas a realizar son pocas y siempre las mismas.
Ser fácil de programar y reprogramar, cuando sea necesario.
Presentar un consumo de energía escaso.
Y tener un coste muy bajo, ya que encarecería al producto final.
Para lograr este objetivo, fue necesario crear a los “Microcontroladores” (abreviados µC, UC o MCU), los cuales
son simplemente unos pequeños circuitos integrados digitales programables capaces de ejecutar las órdenes
grabadas en su memoria. Los microcontroladores están compuestos de varios bloques funcionales que cumplen
una tarea específica, y a su vez, incluyen en su interior las tres principales unidades funcionales de una
computadora: la Unidad Central de Procesamiento, la Memoria y los Periféricos de Entrada / Salida.
Estas aplicaciones que han surgido con propósitos, para solucionar las diversas necesidades existentes, que
frustraban la realización de actividades ejecutadas por personas en los diferentes escenarios industriales y
empresariales, entre otros, son llevadas a cabo actualmente por estos diminutos dispositivos. Para lograr estas
aplicaciones y acciones, los microprocesadores y microcontroladores necesitarán obligatoriamente responder a un
PROGRAMA preestablecido, el cual les dará las órdenes e instrucciones necesarias para que ejecuten y realicen la
tarea para el cual fueron diseñados.
Es este el motivo por el cual comenzaremos a utilizar microcontroladores como base mínima para aprender a
programar de una manera práctica, rápida, concisa y entretenida.
INTRODUCCIÓN A LOS MICROCONTROLADORES
Todos los días, desde que nos levantamos hasta acostarnos, interactuamos con dispositivos electrónicos:
despertadores, cafeteras, secadoras, hornos microondas, licuadoras, ascensores, alarmas de vehículos, puertas
electrónicas, semáforos, computadores, teléfonos móviles, robots, etc. Todos estos dispositivos, que hacen nuestra
vida más cómoda y sencilla, poseen dentro de su electrónica a uno o varios microcontroladores.
Retomando la definición que hemos dado en el apartado anterior, podemos volver a definir a este dispositivo como:
Un microcontrolador es un circuito integrado digital programable, capaz de ejecutar las órdenes grabadas en su
memoria. Está compuesto de varios bloques funcionales que cumplen una tarea específica. Un microcontrolador
incluye en su interior las tres principales unidades funcionales de una computadora:
Arquitectura Harvard.
Al seguir el diseño de esta arquitectura, debe haber un mapa de direcciones de instrucciones y un mapa de
direcciones de datos separados.
Los Microcontroladores y los DSP (procesador de señales digitales o Digital Signal Processor) son dos tipos de
computadores que utilizan esta Arquitectura Harvard.
DIFERENCIAS ENTRE MICROPROCESADOR Y MICROCONTROLADOR
Un microprocesador es un dispositivo que permite el cálculo y procesamiento masivo de datos, siendo escalable y
ampliable en su mayor parte, pero requiriendo siempre de otros componentes externos para su funcionamiento;
mientras que un microcontrolador es un dispositivo con menor capacidad de procesamiento, con la gran ventaja
de integrar todo lo necesario para funcionar en un solo chip y en un empaquetado muy pequeño, con un consumo y
costo bajísimo.
A grandes rasgos, podríamos resumir las diferencias más notables entre estos dispositivos en la siguiente tabla:
Acorde a la tabla anterior, podríamos deducir que, para una aplicación en la que sea necesario monitorear el
exterior por medio de sensores o controlar algún proceso repetitivo por medio de motores y actuadores, lo más
conveniente es usar un microcontrolador; pero, si lo que se busca es procesar un gran conjunto de datos,
implementar una interfaz gráfica de usuario o transferir información por medio de internet, un microprocesador sería
lo más conveniente, aunque también es posible integrar ambos en caso de ser necesario.
Como se ha definido anteriormente, “Un microcontrolador es un circuito integrado digital programable, capaz de
ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales que cumplen una
tarea específica.”
A simple vista, podemos notar los siguientes componentes básicos presentes en el mismo chip: