Sistemas integrados de
Un sistemas integrados de es un computadora sistema de con una función dedicada dentro de un sistema mecánico o eléctrico más grande, a menudo con Computación en tiempo real limitaciones.[1][2] Es incrustado como parte de un dispositivo completo a menudo incluye hardware y partes mecánicas. Sistemas embebidos de control hoy en día muchos dispositivos de uso común.[3] Noventa y ocho por ciento de todos microprocesadores se fabrican como componentes de sistemas embebidos.[4]
Ejemplos de propiedades de ordenadores normalmente integrados en comparación con sus homólogos de propósito general son bajo consumo de energía, pequeño tamaño, rugosas gamas de funcionamiento y coste bajo por unidad. Esto viene en el precio de los recursos de procesamiento limitada, que hacen significativamente más difíciles de programar e interactuar con. Sin embargo, mediante la construcción de mecanismos de inteligencia sobre el hardware, aprovechando posibles sensores existentes y la existencia de una red de unidades incrustadas, uno puede tanto óptimo administrar los recursos disponibles en los niveles de unidad y de la red como proporcionar funciones aumentadas, más allá de los disponibles.[5] Por ejemplo, pueden diseñarse técnicas inteligentes para gestionar el consumo de energía de sistemas embebidos.[6]
Modernos sistemas embebidos se basan a menudo en microcontroladores (es decir, 's CPU con la memoria integrada o interfaces periféricas),[7] pero también son comunes, especialmente en sistemas más complejos microprocesadores ordinarios (fichas externas para la memoria y circuitos de interfaz periférico). En cualquier caso, los procesadores utilizados pueden ser tipos que van de propósito general que especializado en cierta clase de cómputos o incluso personalizadas para la aplicación a mano. Es una clase de estándar común de los procesadores dedicados de la procesador de señal digital (DSP).
Puesto que el sistema embebido se dedica a tareas específicas, los ingenieros de diseño pueden optimizarlo para reducir el tamaño y costo del producto y aumentar la fiabilidad y el rendimiento. Algunos sistemas encajados son producidos en masa, de economías de escala.
Gama de sistemas integrados de dispositivos portátiles tales como relojes digitales y Reproductores de mp3, para grandes instalaciones fijas como luces de tráfico, Controladores de fábrica, y como sistemas complejos en gran parte vehículos híbridos, RESONANCIA MAGNÉTICA, y aviónica. Complejidad varía de baja, con un solo microcontrolador chip, a muy alto con varias unidades, periféricos y redes dentro de una gran chasis o recinto.
Contenido
- 1 Historia
- 2 Variedades
- 3 Características
- 3.1 Interfaz de usuario
- 3.2 Procesadores en sistemas embebidos
- 3.2.1 Placas de ordenador listo
- 3.2.2 Soluciones de ASIC y de FPGA
- 3.3 Periféricos
- 3.4 Herramientas
- 4 Depuración de
- 4.1 Seguimiento
- 4.2 Fiabilidad
- 4.3 Alto vs bajo volumen
- 5 Arquitecturas de software embebido
- 5.1 Lazo de control simple
- 5.2 Sistema de control de interrupción
- 5.3 Multitarea cooperativa
- 5.4 Multitarea preferente o multi-threading
- 5.5 Microkernels y exokernels
- 5.6 Núcleos monolíticos
- 5.7 Componentes de software adicionales
- 6 Véase también
- 7 Notas
- 8 Referencias
- 9 Lectura adicional
- 10 Acoplamientos externos
Historia
Uno de los primeros sistemas encajados reconocible modernos fue la Computadora de orientación Apollo, desarrollado por Charles Stark Draper en el laboratorio de instrumentación del MIT. En el inicio del proyecto, la computadora de orientación Apollo era considerada el elemento más riesgo en el proyecto Apolo como empleó el entonces recientemente desarrollado circuitos integrados monolíticos para reducir el tamaño y peso. Un temprano sistema integrado producido en serie fue el Equipo de orientación de Autonetics D-17 para la Misil Minuteman, aparecido en 1961. Cuando el Minuteman II entró en producción en 1966, el D-17 fue sustituido por un nuevo equipo que fue el primer uso de alto volumen de los circuitos integrados.
Puesto que estas aplicaciones tempranas en la década de 1960, incorporado sistemas han bajado de precio y ha habido un aumento dramático en el procesamiento de potencia y funcionalidad. Un temprano microprocesador por ejemplo, la Intel 4004, fue diseñada para Calculadoras y otros sistemas pequeños pero todavía requieren chips de memoria y soporte externos. En 1978 Asociación Nacional de fabricantes de ingeniería lanzó un "estándar" para microcontroladores programables, incluyendo casi cualquier controladores basados en ordenador, como controladores de placa única computadoras, numérico y basada en eventos.
Como bajó el costo de los microprocesadores y microcontroladores llegó a ser factible para reemplazar costosos basados en perilla análogo componentes tales como potenciómetros y Condensadores variables con arriba/abajo botones o perillas leída por un microprocesador incluso en productos de consumo. Por la década de 1980, memoria, entrada y salida de los componentes del sistema habían sido integrados en el mismo chip que el procesador forman un microcontrolador. Microcontroladores encuentran aplicaciones donde una computadora de propósito general sería demasiado costosa.
Se puede programar un microcontrolador de bajo costo comparativamente a cumplir el mismo papel que un gran número de componentes por separado. Aunque en este contexto un sistema embebido es generalmente más complejo que una solución tradicional, la mayor parte de la complejidad está contenida dentro del microcontrolador sí mismo. Muy pocos componentes adicionales pueden ser necesario y la mayor parte de los esfuerzos de diseño en el software. Prueba y software prototipo pueden compararse más rápido con el diseño y construcción de un nuevo circuito no utiliza un procesador embebido.
Variedades
Sistemas embebidos se encuentran comúnmente en consumo, cocina, industrial, automoción, aplicaciones médicas, comerciales y militares.
Sistemas de telecomunicaciones emplean numerosos sistemas integrados de interruptores del teléfono para la red de teléfonos celulares en el usuario final. Utiliza redes de ordenador dedicado enrutadores y puentes de la red para enrutar los datos.
Electrónica de consumo incluyen asistentes personales digitales (PDAs), Reproductores de mp3, teléfonos móviles, consolas de videojuegos, cámaras digitales, Reproductores de DVD, GPS receptores, y impresoras. Electrodomésticos, tales como Hornos de microondas, máquinas de lavar y lavavajillas, incluyen sistemas embebidos para proporcionar flexibilidad, eficacia y características. Avanzado HVAC uso de los sistemas en red termostatos más exactamente y eficientemente control de temperatura que puede cambiar por hora del día y temporada. Automatización del hogar usos con cable y wireless-redes que puede utilizar para controlar luces, clima, seguridad, audio y video, vigilancia, etc., que utilizan dispositivos integrados para la detección y control.
Sistemas de transporte de vuelo a los automóviles cada vez más usan de sistemas embebidos. Contienen nuevos aviones avanzados aviónica tales como sistemas de guía inercial y GPS receptores que también tienen requisitos de seguridad considerable. Varios motores eléctricos, motores DC sin escobillas, motores de inducción y Motores de corriente continua — uso eléctrico/electrónico Controladores de motor. Automóviles, vehículos eléctricos, y vehículos híbridos cada vez más utilizar sistemas integrados para maximizar la eficiencia y reducir la contaminación. Incluyen otros sistemas de seguridad automotriz sistema de frenos antibloqueo (ABS), Control electrónico de estabilidad (ESC/ESP), control de tracción (TCS) y automática impulsión de cuatro ruedas.
Equipo médico usos integrados sistemas de signos vitales monitoreo, Estetoscopios electrónicos para amplificar los sonidos y varios proyección de imagen médica (MASCOTA, SPECT, CT, y RESONANCIA MAGNÉTICA) para la inspección interna no invasivo. Sistemas embebidos dentro de equipos médicos a menudo son alimentados por computadoras industriales.[9]
Sistemas integrados se utilizan en el transporte, seguridad, seguridad, aplicaciones médicas y sistemas críticos de la vida, el fuego como estos sistemas pueden ser aislado de piratería y por lo tanto, ser más confiable.[citación necesitada] Para seguridad contra incendios, los sistemas pueden diseñarse para tener mayor capacidad para manejar temperaturas más altas y siguen funcionando. Tratar con seguridad, los sistemas encajados pueden ser autosuficiente y ser capaz de tratar con corte eléctrico y sistemas de comunicación.
Una nueva clase de dispositivos inalámbricos miniatura llamado motas de polvo son sensores inalámbricos en red. Redes inalámbricas de sensores WSN, hace uso de miniaturización hecha posible por el avanzado diseño del IC acoplar subsistemas completo inalámbricos sensores sofisticados, permitiendo a personas y empresas medir una miríada de cosas en el mundo físico y actuar sobre esta información a través de monitoreo y sistemas de control. Estos motes son completamente autónomas y se ejecutarán normalmente una fuente de batería durante años antes de que las baterías se deben cambiar o cargar.
Módulos embebidos Wi-Fi proporcionan un medio simple de forma inalámbrica que permite a cualquier dispositivo que se comunica vía un puerto serial.
Características
Sistemas embebidos están diseñados para hacer alguna tarea específica, en lugar de ser una computadora de propósito general para múltiples tareas. Algunos también tienen en tiempo real limitaciones de performance que se deben cumplir, por razones tales como seguridad y facilidad de uso; otros pueden tener poco o no requisitos de desempeño, permitiendo que el hardware del sistema a simplificarse para reducir los costos.
Sistemas embebidos no siempre son dispositivos independientes. Muchos sistemas empotrados consisten en pequeñas piezas dentro de un dispositivo más grande que sirve a un propósito más general. Por ejemplo, la Guitarra de la robusteza de Gibson características un sistema integrado para la afinación de las cuerdas, pero el propósito general de la guitarra Robot es, por supuesto, para reproducir música.[10] Del mismo modo, un sistema embebido en una automóvil proporciona una función específica como un subsistema del coche sí mismo.
Las instrucciones del programa escritas para los sistemas encajados se conocen como firmwarey se almacenan en memoria de sólo lectura o memoria Flash fichas. Funcionan con recursos de hardware de computadora limitada: poca memoria, pequeña o inexistente del teclado o pantalla.
Interfaz de usuario
Gama de sistemas integrados de sin interfaz de usuario en todo, en sistemas dedicados sólo a una tarea, al complejo interfaces gráficas de usuario se asemejan a sistemas operativos de computadora moderna de escritorio. Usan de dispositivos incrustados simples botones, LED, gráficas o caracteres Pantallas LCD (LCD HD44780 por ejemplo) con un simple sistema de menús.
Dispositivos más sofisticados que utilizan una pantalla gráfica con toque detección o margen de la pantalla botones proporcionan flexibilidad minimizando el espacio utilizado: el significado de los botones puede cambiar con la pantalla, y selección involucra el comportamiento natural de señalar en lo que se desea. Sistemas portátiles a menudo tienen una pantalla con un botón de"joystick" para un dispositivo señalador.
Algunos sistemas proporcionan interfaz de usuario de forma remota con la ayuda de una serie (p. ej. RS-232, USB, I²Cetc..) o red (p. ej. Ethernet) conexión. Este enfoque le da varias ventajas: extiende las capacidades de sistema integrado, evita el costo de una pantalla, simplifica BSP y permite crear una interfaz de usuario en el PC. Un buen ejemplo de esto es la combinación de un servidor web integrado ejecuta en un dispositivo embebido (tales como un Cámara IP) o un router de red. La interfaz de usuario se muestra en un navegador web en un PC conectado al dispositivo, por lo tanto no necesidad de ningún software para ser instalado.
Procesadores en sistemas embebidos
Procesadores integrados se pueden romper en dos amplias categorías. Los microprocesadores (μP) utilizan diferentes circuitos integrados de memoria y periféricos. Microcontroladores (μC) tienen la en-viruta periféricos, reduciendo coste, tamaño y consumo de energía. En contraste con el mercado del ordenador personal, muchos básicos diferentes Arquitecturas de CPU se utilizan, puesto que el software es desarrollado a medida para una aplicación y no es un producto de los productos básicos instalado por el usuario final. Ambos Von Neumann así como diversos grados de Arquitecturas de Harvard se utilizan. RISC así como se encuentran no-RISC procesadores. Longitudes de palabra varían de 4-bit a 64-bits y más allá, aunque los más típicos siguen siendo 8/16 bits. La mayoría de arquitecturas vienen en una gran cantidad de variantes y formas, muchos de los cuales también son fabricadas por varias compañías.
Numerosos microcontroladores se han desarrollado para el uso de sistemas embebidos. Uso general microprocesadores también se utilizan en sistemas embebidos, pero generalmente requieren más circuitos de microcontroladores.
Placas de ordenador listo
PC/104 y PC / 104 + son ejemplos de normas para preparada placas de ordenador destinado a pequeño, bajo volumen sistemas embebidos y resistente, sobre todo basado en la x86. Estas son a menudo físicamente pequeñas comparado con un PC estándar, aunque todavía bastante grande en comparación con la mayoría simple (8/16 bits) sistemas embebidos. Suelen usar DOS, Linux, NetBSD, o un sistema operativo en tiempo real tales como MicroC/OS-II, RN; o VxWorks. A veces estas tablas utilizan procesadores no x86.
En ciertas aplicaciones, en su pequeño tamaño o potencia de eficiencia no son principales preocupaciones, los componentes utilizados sean compatibles con las utilizadas en los ordenadores de propósito general x86. Como la vía EPIA ayuda para llenar el vacío por ser compatible con la gama pero altamente integrado, físicamente más pequeños o tienen otros atributos haciéndolos atractivos para ingenieros incrustados. La ventaja de este enfoque es que los componentes de materias primas de bajo costo pueden usarse junto con las mismas herramientas de desarrollo de software utilizadas para el desarrollo de software en general. Sistemas construidos de esta manera se consideran todavía incrustados ya que se integran en dispositivos más grandes y cumplan un papel único. Son ejemplos de dispositivos que pueden adoptar este enfoque Cajeros automáticos y máquinas de Arcade, que contiene código específico de la aplicación.
Sin embargo, la mayoría prefabricadas sistemas embebidos no están centrados en la PC y no use los buses ISA o PCI. Cuando un sistema-en-un-chip procesador está involucrado, puede ser un beneficio a tener un bus estandarizados conectar componentes discretos y el entorno de herramientas de hardware y software puede ser muy diferente.
Un estilo de diseño común utiliza un módulo pequeño, tal vez el tamaño de una tarjeta de negocios, con alta densidad BGA chips como un BRAZO-base sistema-en-un-chip procesador y los periféricos, externos memoria Flash para el almacenamiento, y DRAM para la memoria de tiempo de ejecución. El proveedor del módulo generalmente se proporcionan software de arranque y asegúrese de que hay una gran variedad de sistemas operativos, generalmente incluyendo Linux y algunas opciones de tiempo real. Estos módulos pueden ser fabricados en gran volumen, por las organizaciones familiares con sus cuestiones de pruebas especializadas y combinados con mucho mainboards personalizado de bajo volumen con periféricos externos específicos de la aplicación.
Han avanzado la implementación de sistemas embebidos, sistemas embebidos pueden fácilmente implementar con ya hizo las tablas que se basan en plataforma aceptada en todo el mundo. Estas plataformas incluyen, pero no se limitan a, Arduino y Frambuesa Pi.
Soluciones de ASIC y de FPGA
Un conjunto común de configuración n para sistemas embebidos de alto volumen es el sistema en un chip (SoC) que contiene un sistema completo que consta de múltiples procesadores, multiplicadores, cachés y interfaces en un solo chip. SoCs puede aplicarse como un circuito integrado de aplicación específica (ASIC) o usando un arsenal de puerta programable del campo (FPGA).
Periféricos
Charla de sistemas embebidos con el mundo exterior a través de periféricos, tales como:
- Interfaces de comunicación serie (SCI): RS-232, RS-422, RS-485, etc..
- Interfaz de comunicación Serial síncrona: I2C, SPI, SSC y ESSI (interfaz en serie síncrona mejorada)
- Bus serie universal (USB)
- Tarjetas de medios multi (tarjetas SD, Compact Flash, etc.)
- Redes: Ethernet, LonWorks, etc..
- Planta: CAN Bus, LIN-Bus, PROFIBUS, etc..
- Temporizadores: PLL(s), captura/comparar y Tiempo unidades de procesamiento
- IO discreto: también conocido como Entrada/salida de propósito general (GPIO)
- Analógico a Digital/Digital a análogo (ADC/DAC)
- Depuración: JTAG, ISP, ICSP, BDM Puerto, BITP y DB9 puertos.
Herramientas
Como con otro software, utilizan los diseñadores de sistemas embebidos compiladores de, ensambladores, y depuradores para desarrollar software de sistemas integrados. Sin embargo, también pueden utilizar algunas herramientas más específicas:
- En circuito depuradores o emuladores (véase la sección siguiente).
- Utilidades para agregar una suma de comprobación o CRC a un programa, así que el sistema encajado puede chequear si el programa es válido.
- Para sistemas con procesamiento digital de señales, los desarrolladores pueden utilizar una mesa de trabajo de matemáticas tales como Scilab / Scicos, MATLAB / Simulink, EICASLAB, MathCad, Mathematica, o Otro DSP para simular las matemáticas. También pueden utilizar bibliotecas para el host y el destino que elimina rutinas DSP en desarrollo como en DSPnano RTOS.
- Nivel herramientas de modelado y simulación de sistema tales como VisualSim ayuda a los diseñadores para construir modelos de simulación de un sistema con componentes de hardware tales como procesadores de, recuerdos, DMA, interfaces de, autobuses y comportamiento de software flujo como un diagrama de estado diagrama de flujo usando los bloques configurables de la biblioteca. Simulación se lleva a cabo para seleccionar los componentes adecuados realizando poder vs equilibrio de rendimiento, análisis de confiabilidad y análisis de cuellos de botella. Los informes típicos que ayuda a diseñador a tomar decisiones de arquitectura incluye latencia aplicación rendimiento del dispositivo, utilización de dispositivos, consumo de energía de todo el sistema, así como consumo de energía de nivel de dispositivo.
- Como una herramienta de desarrollo basada en modelos VisSim le permite crea y simula el flujo de datos gráfica y UML diagramas de componentes como filtros digitales, controladores de motor, decodificación de protocolo de comunicación y las tareas de multi-rate del estado. Interrumpir los controladores también pueden crearse gráficamente. Después de la simulación, puede generar automáticamente código C a la VisSim RTOS que encarga de la tarea principal de control y solicitud de preferencia de las tareas, así como configuración y programación de periféricos de la en-viruta.
- Enlazadores y compiladores personalizados pueden utilizarse para optimizar el hardware especializado.
- Un sistema embebido puede tienen su propio lenguaje o herramienta de diseño o añadir mejoras a una lengua existente como Adelante hacia atrás o Básico.
- Otra alternativa es añadir un sistema operativo en tiempo real o sistema operativo integrado, que pueden tener capacidades DSP como DSPnano RTOS.
- Modelado y generación de código herramientas a menudo basada en máquinas de estado
Herramientas de software pueden venir de varias fuentes:
- Empresas de software que se especializan en el mercado integrado
- Portado desde la GNU herramientas de desarrollo de software
- A veces, herramientas de desarrollo para un ordenador personal pueden utilizarse si el procesador incorporado es un cercano relativo a un procesador de PC común
A medida que crece la complejidad de sistemas embebidos, sistemas operativos y herramientas de nivel superiores están migrando en una máquina donde tiene sentido. Por ejemplo, teléfonos móviles, asistentes personales digitales y otros equipos de consumo a menudo significativo software comprado o suministrado por una persona que no sea el fabricante de la electrónica. En estos sistemas, un ambiente de programación abierto como Linux, NetBSD, OSGi o Java encajada es necesario para que el proveedor de software de terceros puede vender a un gran mercado.
Sistemas embebidos se encuentran comúnmente en consumo, cocina, industrial, automotores, médicos aplicaciones. Algunos ejemplo de sistemas embebidos son reproductores MP3, teléfonos móviles, consolas de videojuegos, cámaras digitales, reproductores de DVD y GPS. Electrodomésticos, como hornos microondas, lavadoras y lavavajillas, incluyen sistemas embebidos para proporcionar flexibilidad y eficiencia.
Depuración de
Embedded depuración de puede realizarse a diferentes niveles, dependiendo de las instalaciones disponibles. Son las diferentes métricas que caracterizan a las diferentes formas de depuración incrustado: hace ralentizar la aplicación principal, qué tan cerca está el depurado sistema o aplicación para el sistema o aplicación, como expresivos son los disparadores que puedo configurar para la depuración (por ejemplo, quiero examinar la memoria cuando un particular contador de programa valor se alcanza), y lo que puedo inspeccionar en el proceso de depuración (por ejemplo, sólo memoria, o memoria y registros, etc.).
Del más simple al más sofisticado pueden más o menos agruparse en las siguientes áreas:
- Interactivo residente de depuración, utilizando el shell simple proporcionado por el sistema operativo encajado (e.g. adelante y Basic)
- Depuración externa con salida de puerto serial o registro para funcionamiento de rastro sea un monitor en flash o utilizando un servidor de depuración como la Remedio depurador que funciona incluso para heterogéneo Multicore sistemas.
- Un depurador en circuito (ICD), un dispositivo de hardware que conecta al microprocesador a través de un JTAG o Nexo entre interfaz. Esto permite la operación del microprocesador controlar externamente, pero está normalmente restringido a capacidades específicas de depuración en el procesador. Un sistema de prototipo construido usando FPGA para depurar a las velocidades de la principal aplicación es AVEKSHA.[11]
- Un emulador en circuito (ICE) reemplaza el microprocesador con un equivalente simulado, proporcionando un control completo sobre todos los aspectos del microprocesador.
- Un completo emulador proporciona una simulación de todos los aspectos del hardware, permitiendo a todos a ser controlada y modificada y que permite depurar en un PC normal. Las desventajas son gastos y funcionamiento lento, en algunos casos hasta 100 veces más lentos que el sistema final.
- Para los diseños SoC, el enfoque típico es verificar y depurar el diseño en una placa de prototipo FPGA. Herramientas como Certus[12] se utilizan para introducir sondas en la RTL FPGA que señales disponibles para observación. Se utiliza para depurar las interacciones de hardware, firmware y software a través de múltiples FPGA con capacidades similares a un analizador lógico.
A menos que se limita a depuración externa, el programador normalmente carga y ejecutar software a través de las herramientas, ver el código que se ejecuta en el procesador y arrancar o detener su funcionamiento. La vista del código puede ser como HLL código fuente, código ensamblador o mezcla de ambos.
Porque un sistema embebido se compone a menudo de una amplia variedad de elementos, puede variar la estrategia de depuración. Por ejemplo, depuración de un sistema integrado centrado en software (y microprocesador-) es diferente de un sistema integrado de depuración donde la mayor parte de la transformación se realiza mediante periféricos (DSP, FPGA y coprocesador). Un número creciente de sistemas integrados utiliza hoy más de un núcleo de procesador único. Un problema común con el desarrollo de núcleo múltiples es la correcta sincronización de la ejecución de software. En tal caso, el diseño del sistema integrado puede controlar el tráfico de datos en los buses de los núcleos del procesador, que requiere muy bajo nivel de depuración, a nivel de la señal y autobuses, con una analizador lógico, por ejemplo.
Seguimiento
(Sistemas operativos en tiempo realRTOS) a menudo apoya seguimiento de eventos del sistema operativo. Una vista gráfica es presentada por una herramienta de PC host, basada en una grabación del comportamiento del sistema. La grabación del rastro puede realizarse en el software, los RTOS, o por el hardware de seguimiento especial. RTOS permite a los desarrolladores a entender problemas de performance y sincronización del sistema de software y da una buena comprensión de los comportamientos de alto nivel del sistema. Herramientas comerciales como RTXC Quadros o Sistemas de IAR existe.
Fiabilidad
Sistemas embebidos a menudo residen en máquinas que deben funcionar continuamente por años sin errores y en algunos casos se recupera por sí mismos si ocurre un error. Por lo tanto, el software es generalmente desarrollado y probado con más cuidado que para las computadoras personales, y se evitan piezas móviles mecánicas poco fiables como unidades de disco, interruptores o botones.
Problemas de confiabilidad específicos pueden incluir:
- El sistema no puede cerrar con seguridad para la reparación, o es demasiado inaccesible para reparar. Los ejemplos incluyen sistemas de espacio, cables submarinos, balizas de navegación, sistemas de perforación y automóviles.
- El sistema debe estar funcionando por razones de seguridad. "Modos de blando" son menos tolerables. A menudo copias de seguridad son seleccionados por un operador. Los ejemplos incluyen navegación aérea, sistemas de control de reactor, controles de seguridad fábrica química, señales de tren.
- El sistema va a perder grandes cantidades de dinero cuando cerró: automatización de interruptores del teléfono, controles de fábrica, puente, controles de elevador, transferencia de fondos y decisiones de mercado, ventas y servicio.
Una variedad de técnicas se utilizan, a veces en combinación, para recuperarse de errores — ambos errores de software como pérdidas de memoriay también errores menores en el hardware:
- temporizador de vigilancia que reinicia el ordenador a menos que el software notifica periódicamente a los subsistemas de vigilancia con repuestos redundantes que pueden conmutarse a software "modos blando" que proporcionan función parcial
- Diseñar con un Trusted Computing Base Arquitectura (TCB)[13] garantiza un entorno altamente seguro y confiable del sistema
- A hipervisor diseñado para sistemas embebidos, es capaz de proporcionar encapsulación segura para cualquier componente del subsistema, para que un componente de software comprometida no puede interferir con otros subsistemas, o software del sistema de nivel de privilegio alto. Esta encapsulación mantiene fallas de propagación de un subsistema a otro, mejorar la fiabilidad. Esto también puede permitir a un subsistema automáticamente apagar y reinicia en la detección de fallas.
- Programación consciente de inmunidad
Alto vs bajo volumen
Para sistemas de alto volumen como reproductores de música portátiles o teléfonos móviles, minimizar costos es generalmente la consideración primaria del diseño. Los ingenieros típicamente seleccione hardware que es sólo "suficiente" implementar las funciones necesarias.
De bajo volumen o prototipo de sistemas embebidos, general propósito equipos pueden adaptarse limitando los programas o por cambiar el sistema operativo con un sistema operativo en tiempo real.
Arquitecturas de software embebido
Hay diferentes tipos de arquitectura de software de uso común.
Lazo de control simple
En este diseño, el software sólo tiene un lazo. El bucle llama a subrutinas, que administra una parte de hardware o software. Por lo tanto, se llama un lazo de control simple o un lazo de control.
Sistema de control de interrupción
Algunos sistemas encajados son predominantemente controladas por interrupciones. Esto significa que las tareas realizadas por el sistema se desencadenan por diferentes tipos de eventos; se pudo generar una interrupción, por ejemplo, un temporizador con una frecuencia predefinida o un controlador de puerto serie recibe un byte.
Este tipo de sistemas se utiliza si los controladores de eventos necesitan una latencia baja, y los controladores de eventos son cortos y simples. Generalmente, este tipo de sistemas de ejecuta una tarea simple en un bucle principal también, pero esta tarea no es muy sensible a retrasos inesperados.
A veces el manejador de interrupción añade más tareas a una estructura de cola. Más tarde, cuando haya terminado el manejador de interrupción, estas tareas son ejecutadas por el bucle principal. Este método trae el sistema cerca de un núcleo multitarea con procesos discretos.
Multitarea cooperativa
A multitarea nonpreemptive sistema es muy similar del esquema de lazo de control simple, excepto que el bucle está escondido en una API DE. El programador define una serie de tareas y cada tarea tiene su propio entorno a "ejecutar". Cuando una tarea está inactiva, llama a una rutina de inactividad, generalmente llamado "pause", "esperar", "rendimiento", "nop" (siglas de la ninguna operación), etc..
Las ventajas y desventajas son similares a la del lazo de control, salvo que agregar nuevo software es más fácil, simplemente escribiendo una nueva tarea, o añadiendo a la cola.
Multitarea preferente o multi-threading
En este tipo de sistema, una baja porción de código cambia entre las tareas o hilos basados en un temporizador (conectado a una interrupción). Este es el nivel en el cual el sistema se considera generalmente tener un núcleo del "sistema operativo". Dependiendo de cuánta funcionalidad requerida, presenta más o menos de las complejidades de manejar tareas múltiples expresiones paralelamente.
Como cualquier código puede potencialmente dañar los datos de otra tarea (excepto en sistemas más grandes con un MMU) los programas deben ser cuidadosamente diseñados y probados, y acceso a datos compartidos debe ser controlado por alguna estrategia de sincronización, tales como colas de mensajes, semáforos o un sincronización no bloqueando esquema.
Debido a estas complejidades, es común que las organizaciones a utilizar un sistema operativo en tiempo real (RTO), permitiendo a los programadores de aplicaciones para concentrarse en la funcionalidad del dispositivo en lugar de servicios del sistema operativo, al menos para grandes sistemas; sistemas más pequeños a menudo no pueden permitirse la sobrecarga asociada a un genérico sistema en tiempo real, debido a limitaciones con respecto a vida de tamaño, rendimiento o la batería de memoria. La elección que un RTOS es necesario trae en sus propios problemas, sin embargo, que la selección debe hacerse antes de iniciar el proceso de desarrollo de aplicación. Este momento obliga a elegir el sistema operativo embebido para su dispositivo basado en los requisitos actuales de los desarrolladores y así restringe futuras opciones en gran parte.[14] La limitación de opciones futuras se convierte en más de un problema que disminuye la vida útil del producto. Además el nivel de complejidad continuamente crece a medida que se necesitan para manejar variables como serial, USB, TCP/IP, Bluetooth, Wireless LAN, radio del tronco, múltiples canales, datos y voz, dispositivos mejorado gráficos, múltiples Estados, varios subprocesos, espera numerosos Estados y así sucesivamente. Estas tendencias llevan a la absorción de middleware integrado Además de un sistema operativo en tiempo real.
Microkernels y exokernels
A microkernel es un paso lógico de un sistema operativo en tiempo real. El arreglo generalmente es que el núcleo del sistema operativo asigna memoria y cambia la CPU a los diferentes hilos de ejecución. Procesos del modo usuario implementan funciones importantes tales como sistemas de archivos, interfaces de red, etc..
En general, microkernels tienen éxito cuando la comunicación intertask y conmutación de tareas es rápida y no cuando son lentos.
Exokernels comunicar eficientemente por las llamadas de subrutina normal. El hardware y el software en el sistema están disponibles para y por los programadores de aplicaciones extensibles.
Núcleos monolíticos
En este caso, un núcleo relativamente grande con sofisticadas capacidades se adaptan a un entorno integrado. Esto le da a los programadores un entorno similar a un sistema operativo de escritorio como Linux o Microsoft Windowsy por lo tanto es muy productivo para el desarrollo; en el lado negativo, requiere considerablemente más recursos de hardware, a menudo es más caro y, debido a la complejidad de estos núcleos, puede ser menos predecible y confiable.
Son ejemplos comunes de núcleos monolíticos integrados Linux embebido y Windows CE.
A pesar del aumento de los costos en hardware, este tipo de sistema encajado está aumentando en popularidad, especialmente en los más potentes dispositivos integrados como routers inalámbricos y Sistemas de navegación GPS. Estas son algunas de las razones:
- Puertos comunes conjuntos de chips integrados están disponibles.
- Permiten la reutilización de código disponible para Controladores de dispositivo, servidores Web, cortafuegosy otro código.
- Desarrollo de sistemas puede empezar con un amplio conjunto de característica, y entonces la distribución puede configurarse para excluir funcionalidad innecesaria y ahorrar el gasto de la memoria que consumiría.
- Muchos ingenieros creen que ejecuta código de la aplicación en modo de usuario es más confiable y fácil de depurar, lo que hace más fácil el proceso de desarrollo y el código más portable.[citación necesitada]
- Características que requieren una respuesta más rápida que puede garantizarse a menudo pueden ser colocados en hardware.
Componentes de software adicionales
Además el sistema operativo, muchos sistemas embebidos tienen componentes de software de capa superior adicional. Estos componentes consisten en pilas de protocolos como el de redes PUEDE, TCP/IP, FTP, HTTP, y HTTPSy también se incluyen las capacidades de almacenamiento de información como GRASA y sistemas de gestión de memoria. Si el dispositivo encajado tiene capacidades de audio y video, los codecs y controladores apropiados estarán presentes en el sistema. En el caso de los núcleos monolíticos, se incluyen muchas de estas capas de software. En la categoría RTOS, la disponibilidad de los componentes de software adicionales depende de la oferta comercial.
Véase también
- Servidor de comunicaciones
- Sistema de Cyber-física
- DSP
- Unidad de Control electrónico
- Hipervisor
- Sistemas operativos embebidos
- Software embebido
- Firmware
- FPGA
- Aparato de información
- Microprocesador
- Microcontrolador
- Compilador de silicio
- Sistema operativo en tiempo real
- Ingeniería de software
- Sistema en un chip
- Sistema módulo de
- Computación ubicua
Notas
- ^ Para más detalles de MicroVGA ver esto PDF.
Referencias
- ^ Michael Barr. "Glosario de sistemas empotrados". Biblioteca técnica de neutrino. 2007-04-21.
- ^ Brezo, Steve (2003). Diseño de sistemas embebidos. Serie EDN para ingenieros de diseño (2 ed.). Newnes. p. 2. ISBN 978-0-7506-5546-0.
Un sistema embebido es un microprocesador sistema basado en que se construye para controlar una función o una gama de funciones.
- ^ Michael Barr; Anthony J. Massa (2006). "Introducción". Programación de sistemas embebidos: con C y GNU herramientas de desarrollo. O ' Reilly. págs. 1 – 2. ISBN 978-0-596-00983-0.
- ^ Barr, Michael (01 de agosto de 2009). "Programa de hombres reales en C". Diseño de sistemas embebidos. TechInsights (United Business Media). p. 2. 2009-12-23.
- ^ C.Alippi: Inteligencia para sistemas embebidos. Springer, 2014, 283pp, ISBN 978-3-319-05278-6.
- ^ S. Mittal "Un estudio de técnicas para mejorar la eficiencia energética en sistemas de computación empotrados", IJCAET, 6.4, 440-459, 2014.
- ^ Giovino, Bill. "Micro controller.com – supersite de sistemas empotrados".
- ^ Máquina de votación electrónica información hoja Accupoll AVS 1000
- ^ Integrados sistemas Dell OEM soluciones | Dell. Content.Dell.com (2011-01-04). Recuperado en 06-02-2013.
- ^ Embedded.com – bajo el capó: Guitarra de la robusteza incrusta autotuning Por David Carey, TechOnline EE veces (22/04/08, 11:10:00 AM EDT) integrados de diseño de sistemas – Embedded.com
- ^ Tancreti, Mateo; Hossain, Mohammad Sajjad; Bagchi, Saurabh; Raghunathan, Vijay (2011-01-01). "Aveksha: un enfoque de Hardware-software para rastreo no intrusiva y perfiles del Wireless en sistemas embebidos". Actas de la 9a Conferencia ACM en sistemas de sensores en red integrado. SenSys 11. Nueva York, NY, Estados Unidos: ACM: 288-301. doi:10.1145/2070942.2070972. ISBN 9781450307185.
- ^ "Tektronix sacude de prototipos, instrumentación incorporado alza placas al estado de emulador". Revista de ingeniería electrónica. 2012-10-30. 2012-10-30.
- ^ Heiser, Gernot (diciembre de 2007). ¿"Su sistema es seguro? Pruébalo" (PDF). ; Inicio de sesión:. 2 (6): 35 – 8.
- ^ "Trabajando a través de múltiples plataformas Embedded" (PDF). clarinox. 2010-08-17.
Lectura adicional
- John Catsoulis (mayo de 2005). Diseño integrado de Hardware, 2ª edición. O ' Reilly. ISBN 0-596-00755-8.
- James M. Conrad; Alexander G. Dean (septiembre de 2011). Sistemas integrados, un introducción utilizando el microcontrolador Renesas RX62N. Micrium. ISBN 978-1935-7729-96.
- Elk de Klaus (agosto de 2016). Desarrollo de Software Embebido para la Internet de cosas, los fundamentos, tecnologías y mejores prácticas. ISBN 978-1534602533.
Acoplamientos externos
Campos comunes de Wikimedia tiene medios relacionados con Sistemas embebidos. |
Wikilibros tiene un libro sobre el tema de: Sistemas embebidos |
Wikiversity tiene materiales de aprendizaje sobre Ingeniería de sistemas integrados |
- Curso de sistemas embebido con mbed para YouTube curso de 2015
- Tendencias en seguridad cibernética y en sistemas embebidos Dan Geer, noviembre de 2013
- Modernos sistemas programación curso Video embebidos YouTube curso de 2013
- Semana de sistemas embebidos (ESWEEK) evento anual con conferencias, talleres y tutoriales que cubren todos los aspectos de software y sistemas embebidos
- Taller sobre Educación de sistemas embebidos y Cyber-física, taller sobre aspectos educativos de sistemas embebidos