Nothing Special   »   [go: up one dir, main page]

Introducción A Los Sistemas Embebidos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 13

INTRODUCCIÓN A LOS SISTEMAS EMBEBIDOS

El permanente desarrollo tecnológico y la necesidad de realizar control automático y procesamiento de señales


originó el nacimiento de una de las áreas tecnológicas de mayor crecimiento a nivel mundial: los Sistemas
Embebidos. Estos sistemas han manifestado un gran desarrollo sustentado en dos tendencias fundamentales: la
programación y la configuración de circuitos.

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++.

Además, el especialista en sistemas embebidos necesita entender el hardware y sus componentes. El


ingeniero de software embebido no solo tiene que testear código, ya que es posible que algo del hardware esté
fallando. Para identificar y corregir potenciales problemas, es necesario que se entienda el funcionamiento del
hardware.

Normalmente, un sistema embebido es un sistema de computación en tiempo real y las tareas de


procesamiento también se realizan en tiempo real. Por eso, se necesitan conocimientos de Sistemas operativos
en tiempo real (RTOS).

Los RTOS más populares incluyen:

 LynxOS
 OSE
 QNX
 RTLinux
Conocimientos necesarios como desarrollador de sistemas embebidos:

 Dominio de la programación en C/C++ en entorno Linux.


 Conocimiento de sistemas operativos en tiempo real (RTOS): QNX, OSE, RTLinux, LynxOS.
 Valorable experiencia en otros lenguajes como Python o Java.
 Experiencia con especificación de características, diseño e implementación de la arquitectura del plano de
datos.
 Conocimiento de microprocesadores (SDK, ARM) y microcontroladores (Microchip PIC, Atmel AVR,
Espressif ESP32).
 Conocimiento de los principios de la electrónica como la lectura de esquemas y el uso de analizadores
lógicos, osciloscopio y otros equipos de prueba.
 Experiencia con herramientas de desarrollo como IAR/Keil y el sistema de control de versiones Git.
 Conocimiento de prácticas debugging (JTAG y las integraciones asociadas del BGF).
 Experiencia con protocolos de comunicación como SPI, I2C, UART, TCP/IP, NFC.
SISTEMAS DE CONTROL

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.

Sistema de control de procesos automatizado.

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:

1. - Unidad de Control (UC).


2. - Unidad Aritmético Lógica (ALU).
3. - Memoria Principal, donde se almacenan los datos y las instrucciones de los programas.
4. - Dispositivos de entrada y de salida.
5. - Buses de datos, de instrucciones y de control, que permiten el flujo de información, de instrucciones o
de señales de control a través de las partes del ordenador.
Esta forma de interconectar los diferentes dispositivos entre sí, como se ha visto en la clase anterior y en otra
asignatura fundamental, es llamada “Arquitectura de Von Neumann”.

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.

Microcontroladores ATMEGA328P, utilizados en placas de desarrollo Arduino.


Los microcontroladores están conquistando el mundo, pero la invasión acaba de comenzar y el nacimiento del siglo
XXI es testigo de la conquista masiva de estos diminutos dispositivos que gobiernan la mayor parte de los aparatos
que se fabrican hoy en día. Cada vez existen más productos que incorporan un Microcontrolador en su interior con
el fin de aumentar sustancialmente sus prestaciones, reducir sus tamaños y costos, como así también, mejorar su
fiabilidad, consumo eléctrico y eficiencia.

El funcionamiento y aplicación de los microcontroladores y los microprocesadores permite profundizar en los


aspectos tecnológicos de las arquitecturas de las nuevas computadoras y controladores lógicos programables,
convirtiéndose de esta forma en una herramienta útil para el desarrollo de variadas aplicaciones que contribuyen al
avance tecnológico y desarrollo integral de la sociedad.

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

"UN MUNDO MICROCONTROLADO"

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.

Sistema de control automático de un equipo de Aire Acondicionado

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:

 Unidad Central de Procesamiento


 Memoria
 Periféricos de entrada/salida.
ARQUITECTURA DE UN MICROCONTROLADOR

Un microcontrolador actual, a diferencia de un microprocesador, generalmente utiliza la arquitectura llamada


“Arquitectura Harvard”, en la cual, básicamente, se distingue del modelo Von Neumann por la división de la
memoria en una “Memoria de Instrucciones” y una “Memoria de datos”, de manera que el procesador puede
acceder separada y simultáneamente a las dos memorias.

Arquitectura Harvard.

El procesador dispone de un sistema de conexión independiente para acceder a la memoria de instrucciones y a la


memoria de datos. Cada memoria y cada conexión pueden tener características diferentes; por ejemplo, el tamaño
de las palabras de memoria (el número de bits de una palabra), el tamaño de cada memoria (desde Bytes hasta
varios Kilobytes o Megabytes) y la tecnología utilizada para implementarlas (OTP-ROM, EPROM, EEPROM, FLASH,
etc.).

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.

Placa Madre de una computadora personal.

Un ejemplo clásico de convivencia entre un microprocesador y microcontroladores es el que se presenta en las


motherboards o mainboards (placa madre) de una computadora personal, donde el microprocesador es el
encargado principal de coordinar todo el sistema de cómputo general, acorde a un programa establecido, que
puede variar continuamente cada vez que se necesite (Sistema Operativo y Software de Aplicación); mientras que
éste recurre, a la vez, a varios microcontroladores (ya programados desde fábrica) que son los encargados de
controlar, por ejemplo, la temperatura del sistema (mediante los sensores y los ventiladores), comunicar al
microprocesador con los “puertos de entrada y salida” (controladores de teclado, mouse, USB, Red, etc.), y
comprobar y controlar las tensiones de alimentación de la placa, entre otros.
ESTRUCTURA INTERNA DE UN MICROCONTROLADOR

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 estos bloques, los podemos ver, de manera gráfica, en la siguiente ilustración:

A simple vista, podemos notar los siguientes componentes básicos presentes en el mismo chip:

1. - Microprocesador: Es el encargado de procesar toda la información (contiene a la ALU y a la Unidad de


Control).
2. - Memoria RAM: Es el lugar donde se almacena la información para uso temporal.
3. - Memoria de Programa o ROM: Memoria donde se almacena el programa o conjunto de instrucciones a
ejecutar.
4. - Memoria de Datos o EEPROM: Es la memoria que permite almacenar datos de usuario de manera
permanente y que no se borra al inicializar el sistema.
5. - Oscilador o Reloj Principal: Es el generador de pulsos de sincronización de todo el sistema.
6. - Puertos de Entrada/Salida: Es la conexión que permite comunicar al sistema con el exterior mediante
varios conductores, de manera paralela o individual.
7. - Puertos de Comunicación Serial: Es la conexión que permite comunicar al sistema de manera serial, es
decir, mediante un solo conductor, enviando un dato detrás de otro por el mismo canal.
8. - Conversores A/D y D/A: Son módulos que convierten señales analógicas al código binario que el
microprocesador pueda interpretar y viceversa.
9. - Timers y Contadores: Son dispositivos que cuentan eventos o temporizan, para el control de
operaciones que requieren precisión con el manejo de tiempos de operación.
10. - Módulos diversos (Watchdog Timer, CCP, Comparadores, etc.): Son módulos que controlan el tiempo
mínimo de ejecución de un programa, capturan cuentas, y/o comparan tensiones o eventos producidos en
sus entradas.

Esquema de un microcontrolador básico y sus módulos.

También podría gustarte