Compartir tecnología

Arquitectura de software Diseño de sistemas integrados (2)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

12.4 Sistema de red integrado

La red integrada es un sistema de red que se utiliza para conectar varios sistemas integrados para que puedan transferirse información entre sí y compartir recursos. Los sistemas integrados utilizan diferentes tecnologías de conexión en diferentes situaciones, como redes de información domésticas en salas familiares, buses de campo en el campo de la automatización industrial y redes de comunicación móvil en sistemas integrados como equipos de información móviles. Además, existen algunas tecnologías de conectividad dedicadas. Se utiliza para conectar sistemas integrados.

12.4.1 Red de bus de campo

Fieldbus es una tecnología de control por computadora desarrollada a mediados de la década de 1980 después de los sistemas de control de instrumentos analógicos, los sistemas de control digital centralizados y los sistemas de control distribuido. También es uno de los puntos calientes en el desarrollo de la tecnología en el campo del control de automatización. A menudo se le llama red informática de área local en el campo de la automatización industrial.

Fieldbus es una red que interconecta dispositivos de campo como sensores digitales, convertidores, instrumentos industriales y actuadores de control con unidades de control de procesos industriales y estaciones operativas de campo. Tiene las características de digitalización total, descentralización, transmisión bidireccional y multirama. Es el producto del desarrollo de la red de control industrial al nivel de campo.

Fieldbus es una red de control subyacente de bajo ancho de banda ubicada en la parte inferior de las estructuras de red y control de producción, por lo que también se la denomina red subyacente (Infranet). Se utiliza principalmente en sitios de producción para lograr una comunicación digital bidireccional, en serie y de múltiples nodos entre equipos de medición y control.

El sistema de control de campo (FCS) es un sistema de control que utiliza un bus de campo para conectar varios controladores y equipos de instrumentos. Este sistema de control descentraliza completamente las funciones de control en el sitio, lo que reduce los costos de instalación y mantenimiento. De hecho, FCS es un sistema de control distribuido abierto, interoperable y completamente descentralizado.

El sistema de control de campo integrado incorpora un microprocesador dedicado en un instrumento de medición y control tradicional, lo que le permite tener capacidades de computación y comunicación digitales. Utiliza pares trenzados, líneas eléctricas o fibras ópticas como bus para conectar múltiples instrumentos de medición y control en una red. De acuerdo con protocolos de comunicación estándar, conecta múltiples equipos computarizados de medición y control ubicados en el sitio y entre los instrumentos en el sitio y el monitoreo remoto. La transmisión de datos y el intercambio de información se realizan entre computadoras, formando varios sistemas de control automático adecuados a las necesidades reales. En resumen, el sistema de control de bus de campo convierte dispositivos de control y medición distribuidos individuales en nodos de red, utilizando el bus de campo como enlace para hacer de estos dispositivos distribuidos un sistema de red que puede comunicarse entre sí y completar tareas de control automático juntos. Con la ayuda de la tecnología de bus de campo, el equipo de control distribuido único tradicional se ha convertido en un todo que se comunica entre sí y trabaja en colaboración.

12.4.2 Red de información familiar

La red de información del hogar es una red de área local que conecta computadoras personales, electrodomésticos, agua, electricidad, medidores de gas, equipos de iluminación, equipos de red y equipos de seguridad dentro del hogar. Su función principal es controlar de forma centralizada los dispositivos antes mencionados y conectarlos a Internet para compartir recursos y servicios de red. Además, la red de información del hogar también puede extenderse a toda la casa o incluso a toda la comunidad, convirtiéndose en la base de comunidades residenciales y sociedades inteligentes. En el sistema de red de información del hogar, todos los dispositivos del hogar son inteligentes, incluidos los electrodomésticos, los medidores de agua, electricidad, gas y equipos de iluminación. Pueden comunicarse entre sí y acceder a Internet a través de la puerta de enlace del hogar. La realización de una red de información en el hogar proporciona a las personas un entorno hogareño más seguro, conveniente y confortable. Por ejemplo, cuando el propietario sale, la puerta se cerrará y bloqueará automáticamente, el sistema de monitoreo se encenderá automáticamente y se notificará automáticamente al propietario sobre cualquier anomalía en el hogar. Se pueden controlar varios dispositivos en el hogar en cualquier momento. tiempo y en cualquier lugar, y los datos del instrumento se pueden cargar automáticamente.

La red de información familiar necesita resolver dos problemas básicos:
(1) Cómo conectar entre sí electrodomésticos, agua, electricidad, contadores de gas, equipos de iluminación, etc.
(2) Cómo lograr la interoperabilidad entre estos dispositivos conectados, es decir, los dispositivos en la red de información del hogar pueden solicitar servicios automáticamente cuando sea necesario, y los dispositivos relacionados pueden proporcionar servicios o aceptar solicitudes y procesarlas. La red de información doméstica puede adoptar diferentes estructuras topológicas, como tipo de bus, estructura en estrella, etc. La red de información doméstica se puede dividir en varias subredes de control y subredes de datos. La subred de control es similar a un bus de campo. Es una red con poco ancho de banda y se utiliza principalmente para enviar y recibir información de control. La subred de datos tiene mayores requisitos de ancho de banda y los dispositivos conectados a ella necesitan transmitir una gran cantidad de información de datos.

11.4.3 Red de comunicación de datos inalámbrica

En los últimos años, con el rápido desarrollo de las comunicaciones por teléfono móvil y la rápida popularización de las computadoras personales, la comunicación de datos entre computadoras fijas ha aumentado rápidamente con una variedad de computadoras portátiles, como computadoras portátiles, computadoras portátiles, computadoras de mano, etc. ya no satisface las necesidades. La gente espera transmitir e intercambiar información de datos en cualquier momento y en cualquier lugar, por lo que los medios de transmisión de comunicación de datos comenzaron a expandirse de cableados a inalámbricos, y surgió la comunicación de datos móviles inalámbrica. La red de comunicación de datos inalámbrica es un sistema de red que transmite datos a través de ondas de radio. Está desarrollado sobre la base de la comunicación de datos por cable y puede realizar la comunicación de datos en estado móvil.A través de redes inalámbricas de comunicación de datos, teléfonos inteligentes, PDA y
Las computadoras portátiles pueden transferir información de datos entre sí y acceder a Internet. Las redes inalámbricas de comunicación de datos se dividen en redes inalámbricas de corto alcance e Internet inalámbrico. Las redes inalámbricas de corto alcance incluyen principalmente 802.11, Bluetooth, IrDA y HomeRF. Internet inalámbrico o Internet móvil utiliza principalmente dos tecnologías de conexión inalámbrica: una es la tecnología de acceso inalámbrico móvil, como GSM, GPRS, CDPD (Cellular Digital Packet Data), etc., la otra es la tecnología de acceso inalámbrico fijo, incluidas las comunicaciones por microondas y de espectro ensanchado; , transmisión óptica vía satélite e inalámbrica, etc.

12.4.4 Internet integrado

Con el rápido desarrollo de Internet y la tecnología integrada, es necesario que cada vez más dispositivos de información, como videoteléfonos web, decodificadores y electrodomésticos de información y otros productos de sistemas integrados, estén conectados a Internet para compartir la comodidad. , velocidad y conveniencia proporcionados por Internet recursos y servicios de información ubicuos, a saber, tecnología de Internet integrada. La tecnología de Internet integrada tiene amplias perspectivas de aplicación en los campos del transporte inteligente, sistemas de limpieza, domótica, automatización industrial, POS y comercio electrónico.

1.Método de acceso a Internet integrado
Los dispositivos integrados integran la pila de protocolos TCP/IP y el software relacionado. Dichos dispositivos pueden usarse como un nodo en Internet, asignarles una dirección IP e interconectarse directamente con Internet. Las características de este método de acceso son:

  • El dispositivo se puede conectar directamente a Internet y proporcionar acceso transparente a Internet;
  • No se requiere equipo de acceso especial;
  • Estandarización de protocolos de equipos;
  • El rendimiento y los recursos del procesador necesarios son relativamente altos;
  • Es necesario ocupar recursos IP Debido a la escasez actual de recursos IPv4, esta solución puede ser más realista en redes IPv6.
  • Acceda a Internet a través de una puerta de enlace, es decir, se adopta una solución de dispositivo delgado. El dispositivo no accede directamente a Internet y no requiere un conjunto de protocolo TCP/IP complejo. En cambio, accede a Internet a través del dispositivo de acceso. Por ejemplo, la tecnología Embedded Micro Internet-working Technology (EMIT) es una tecnología que conecta dispositivos integrados a Internet. Las características de este método de acceso son:
  • Menores requisitos de rendimiento y recursos para los equipos de acceso;
    -La sobrecarga de la pila de protocolos del dispositivo de acceso es pequeña;
  • No es necesario asignar una dirección IP legal;
  • Puede reducir el costo total del sistema;
    -Los equipos pueden diversificarse y miniaturizarse.

2.Pila de protocolo TCP/IP integrada
Las funciones completadas por la pila de protocolos TCP/IP integrada son las mismas que las de la pila de protocolos TCP/IP completa. Sin embargo, debido a las limitaciones de recursos del sistema integrado, algunos indicadores e interfaces de la pila de protocolos integradas pueden ser diferentes de los normales. pilas de protocolos.

(1) La interfaz de llamada de la pila de protocolos integrada es diferente de la de la pila de protocolos ordinaria. La interfaz de socket de la pila de protocolos ordinaria es estándar y el software de la aplicación tiene buena compatibilidad. Sin embargo, la sobrecarga de código, procesamiento y almacenamiento de la implementación de la interfaz estandarizada es enorme. Por lo tanto, cuando la mayoría de los fabricantes trasplantaron interfaces de pila de protocolos estándar a sistemas integrados, realizaron diversos grados de modificación y simplificación y establecieron pilas de protocolos dedicadas eficientes. Las API que proporcionaron eran diferentes de las API de las pilas de protocolos generales. .

(2) La adaptabilidad de la pila de protocolos integrados. La mayoría de las pilas de protocolos integrados son modulares. Si el espacio de memoria es limitado, se pueden instalar dinámicamente cuando sea necesario y omiten varias partes no esenciales para los sistemas integrados, como el reenvío de interfaces y un conjunto completo de herramientas de servicios de Internet.

(3) Compatibilidad de plataforma de la pila de protocolos integrados. Generalmente, la pila de protocolos está estrechamente integrada con el sistema operativo y la mayoría de las pilas de protocolos se implementan en el núcleo del sistema operativo. La implementación de la pila de protocolos depende de los servicios proporcionados por el sistema operativo y tiene poca portabilidad. La implementación de la pila de protocolos integrados generalmente depende poco del sistema operativo y es fácil de trasplantar. Muchas pilas de protocolos integrados comerciales admiten múltiples plataformas de sistemas operativos.

(4) Alta eficiencia de la pila de protocolos integrados. Las implementaciones de pilas de protocolos integrados normalmente ocupan menos espacio, requieren una memoria de datos más pequeña y son eficientes en el código, lo que reduce los requisitos de rendimiento del procesador.

12.5 Sistema de gestión de bases de datos integrado

Con el desarrollo de la tecnología integrada, las bases de datos integradas están avanzando gradualmente hacia la aplicación. En esencia, las bases de datos integradas se desarrollan a partir de bases de datos generales y se ejecutan en varios dispositivos integrados o dispositivos móviles. Muestran su superioridad en los sistemas integrados porque están restringidas por el entorno de aplicación del propio sistema integrado. Las bases de datos integradas tienen características diferentes de las bases de datos generales. .

Normalmente, un sistema de gestión de bases de datos integrado es un sistema de gestión de bases de datos que se utiliza en dispositivos integrados. Dado que la mayoría de los sistemas de gestión de bases de datos integrados son dispositivos de información móviles, como computadoras de mano, PDA, dispositivos montados en vehículos y otros dispositivos de comunicación móviles, los dispositivos integrados de posición fija rara vez se utilizan. Por lo tanto, las bases de datos integradas también se denominan bases de datos móviles o móviles. Bases de datos. Base de datos móvil integrada.Su función principal es resolver problemas de gestión de datos en un entorno informático móvil. La base de datos móvil es una parte importante del entorno informático móvil.
Base de datos distribuida.

La introducción de la tecnología de bases de datos en sistemas integrados se debe principalmente a las siguientes deficiencias en el desarrollo de aplicaciones de gestión de información directamente en sistemas operativos integrados o bare metal:
(1) Todas las aplicaciones requieren un trabajo repetido de gestión de datos, lo que aumenta la dificultad y el costo de desarrollo.
(2) El intercambio de datos entre aplicaciones es deficiente.
(3) El software de aplicación tiene poca independencia, portabilidad y baja reutilización.
La introducción de un sistema de gestión de bases de datos en sistemas integrados puede resolver en gran medida los problemas anteriores y mejorar la eficiencia del desarrollo y la portabilidad de los sistemas de aplicaciones.

12.5.1 Características del entorno de uso

El sistema de base de datos integrado es un sistema integral que incluye un sistema de gestión de base de datos integrado y abarca dispositivos de comunicación móviles, estaciones de trabajo o computadoras de escritorio y servidores de datos. Esta característica del sistema y el entorno de uso del sistema tienen una gran influencia en el sistema de gestión de base de datos integrado. El impacto mayor afecta directamente a la estructura del sistema de gestión de bases de datos integrado. Las características de su entorno de uso se pueden resumir simplemente de la siguiente manera:
(1) El dispositivo es móvil en cualquier momento. Las bases de datos integradas se utilizan principalmente en dispositivos de información móviles. La ubicación del dispositivo a menudo se mueve con el usuario.

(2) La red se desconecta con frecuencia y la ubicación de los dispositivos móviles o terminales móviles a menudo cambia durante el uso. También se ve afectada por factores como los métodos de uso, el suministro de energía, la comunicación inalámbrica y las condiciones de la red. Por lo tanto, la conexión de red generalmente no se mantiene de forma continua, sino que a menudo se desconecta y se conecta de forma activa o pasiva de forma intermitente.

(3) Las condiciones de la red son diversas debido a los frecuentes cambios en la ubicación de los dispositivos de información móviles, los dispositivos de información móviles y los servidores de datos pueden estar conectados a través de diferentes sistemas de red en diferentes momentos. Estas redes pueden diferir en el ancho de banda de la red, el costo de la comunicación, el retraso de la red, la calidad del servicio, etc.

(4) Capacidades de comunicación asimétricas Debido a las limitaciones de recursos de los dispositivos móviles, las capacidades de comunicación de la red entre dispositivos móviles y servidores son asimétricas. Las capacidades de envío de los dispositivos móviles son muy limitadas, lo que hace que el ancho de banda de comunicación de enlace descendente desde el servidor de datos al dispositivo móvil y el ancho de banda de enlace ascendente desde el dispositivo móvil al servidor de datos sean muy diferentes.

12.5.2 Composición del sistema y tecnologías clave

Un sistema de gestión de bases de datos integrado completo consta de varios subsistemas, incluido el sistema de gestión de bases de datos principal, el servidor de sincronización, el sistema de gestión de bases de datos integrado, la red de conexión y otros subsistemas, como se muestra en la Figura 12-6.
Insertar descripción de la imagen aquí
(1) Sistema de gestión de bases de datos integrado. El sistema de gestión de bases de datos integrado es un sistema de gestión de bases de datos de un solo usuario funcionalmente independiente. Puede ejecutarse independientemente del servidor de sincronización y del sistema de administración de la base de datos principal para administrar los datos en el sistema integrado. También se puede conectar al servidor principal a través del servidor de sincronización para operar los datos en la base de datos principal. una variedad de formas de sincronización de datos.

(2) Servidor de sincronización. El servidor de sincronización es el centro de conexión entre la base de datos integrada y la base de datos principal, lo que garantiza la coherencia de los datos en la base de datos integrada y la base de datos principal.

(3) Servidor de datos. La base de datos principal y el sistema de gestión de bases de datos del servidor de datos pueden utilizar sistemas de bases de datos de uso general a gran escala, como Oracle o Sybase.

(4) Conéctese a la red. El servidor de base de datos principal y el servidor de sincronización generalmente están conectados a través de una red fija de baja latencia y gran ancho de banda. La conexión entre el dispositivo móvil y el servidor de sincronización puede ser una LAN inalámbrica, una conexión de infrarrojos, una línea serie universal o una red pública según las condiciones específicas del dispositivo.

1.La clave para las bases de datos móviles integradas en las aplicaciones
En aplicaciones prácticas, las bases de datos móviles integradas deben resolver problemas como la coherencia de los datos (replicación), el procesamiento eficiente de transacciones y la seguridad de los datos.

(1) Coherencia de los datos. Una característica notable de la base de datos móvil incorporada es que la conexión entre los terminales de datos móviles y el servidor de sincronización es una conexión débil, es decir, ancho de banda bajo, retraso prolongado, inestabilidad y desconexión frecuente. Para respaldar las operaciones de los usuarios en la base de datos en entornos débiles, ahora se usa comúnmente el método de replicación optimista (replicación optimista o replicación diferida) para permitir a los usuarios operar copias de datos en el caché local. Una vez reconectada la red, la información de modificación de datos se intercambia con el servidor de la base de datos u otros terminales de datos móviles y se restablece la coherencia de los datos mediante la detección y coordinación de conflictos.

(2) Procesamiento eficiente de transacciones. Las transacciones móviles se realizan en un entorno móvil con desconexiones frecuentes y predecibles. Para garantizar la finalización sin problemas de las transacciones activas, se deben diseñar e implementar nuevas estrategias y algoritmos de gestión de transacciones. Determine la prioridad del procesamiento de transacciones en función de las condiciones de conexión de la red, y las solicitudes de transacciones con altas velocidades de conexión de red se procesarán primero;
Determine si la transacción se migra en función del tiempo de operación, es decir, todas las operaciones de transacción a largo plazo se migrarán al servidor para su ejecución y no es necesario asegurarse de que la red esté siempre fluida para determinar si la transacción se carga; para su ejecución o descarga después de ejecutar la copia de datos según el tamaño de los datos. Estrategia de registro mejorada durante el procesamiento de transacciones, ya sea para utilizar el mecanismo de descubrimiento del servidor o el mecanismo de declaración del cliente cuando se actualiza en tiempo real los atributos de ubicación del usuario; movimiento de transacciones (como consultas relacionadas con la ubicación).

(3) Seguridad de los datos. Los dispositivos integrados en muchos campos de aplicación son dispositivos clave para la gestión o el procesamiento de datos en el sistema, por lo que el sistema de base de datos en el dispositivo integrado tiene un control más estricto sobre los permisos de acceso. Al mismo tiempo, muchos dispositivos integrados tienen alta movilidad, portabilidad y entornos de trabajo no fijos, lo que también conlleva posibles factores inseguros. Además, algunos datos tienen una alta privacidad personal, por lo que la seguridad de los datos personales debe garantizarse plenamente en términos de prevención de colisiones, interferencias de campos magnéticos, pérdidas y robos. Las principales medidas para garantizar la seguridad de los datos son: autenticar los terminales móviles para evitar el acceso fraudulento por parte de terminales ilegales; cifrar las comunicaciones inalámbricas para evitar la fuga de información de datos; cifrar y almacenar copias de datos descargados para evitar la pérdida física de los terminales móviles.

2.Características de los sistemas de gestión de bases de datos móviles.
El entorno informático del DBMS móvil es una extensión del DBMS distribuido tradicional. Puede considerarse como un sistema distribuido en el que los clientes y los nodos de servidores fijos están conectados dinámicamente. Por lo tanto, el sistema de gestión de bases de datos en el entorno informático móvil es un sistema de gestión de bases de datos distribuido dinámico. Dado que el sistema integrado de gestión de bases de datos móviles se aplica en un sistema operativo integrado en un entorno informático móvil, tiene sus propias características y requisitos funcionales:

(1) La estructura de microkernel facilita la realización de funciones integradas. Teniendo en cuenta los recursos limitados de los dispositivos integrados, los DBMS móviles integrados deben implementarse utilizando tecnología de miniaturización y compactar la estructura de su sistema para satisfacer las necesidades de las aplicaciones integradas.

(2) Soporte para SQL estándar. El DBMS móvil integrado debe proporcionar soporte para SQL estándar. Admite un subconjunto del estándar SQL92, admite consultas de datos (consulta de unión, subconsulta, clasificación, agrupación, etc.), inserta, actualiza y elimina múltiples declaraciones SQL estándar, lo que satisface plenamente las necesidades del desarrollo de aplicaciones integradas.

(3) Función de gestión de transacciones. Los DBMS móviles integrados deben tener funciones de procesamiento de transacciones, mantener automáticamente la integridad de las transacciones, la atomicidad y otras características que respalden la integridad de la entidad y la integridad referencial;

(4) Mecanismo completo de sincronización de datos. La sincronización de datos es la característica más importante de las bases de datos integradas. A través de la replicación de datos, los cambios en la base de datos integrada o en la base de datos principal se pueden aplicar entre sí para garantizar la coherencia de los datos. El mecanismo de sincronización de datos del sistema de gestión de bases de datos móviles integrado debe tener las siguientes características:

  • Proporciona una variedad de métodos de sincronización de datos, con tres métodos de sincronización: sincronización de carga, sincronización de descarga y sincronización completa;
  • Tiene un mecanismo completo de detección de conflictos y resolución de conflictos flexible, y tiene una función de registro de conflictos;
  • Admite sincronización rápida. Cuando el sistema se sincroniza, solo se transmiten los datos modificados, lo que ahorra mucho tiempo de sincronización;
  • Admite la división horizontal y la replicación de tablas con división vertical, minimizando el tamaño de la base de datos integrada;
  • Admite la sincronización de conexiones de fuentes de datos heterogéneas y puede utilizar fuentes de datos heterogéneas que admitan ODBC como base de datos principal y la base de datos en el dispositivo integrado para la sincronización de datos;
  • Tiene una función de sincronización activa, lo que permite a los usuarios personalizar el proceso de sincronización de eventos proporcionados por el sistema, proporcionando un proceso de sincronización con la máxima flexibilidad.

(5) Admite múltiples protocolos de conexión. Los DBMS móviles integrados deben admitir múltiples protocolos de conexión de comunicación. Las conexiones a dispositivos integrados y servidores de bases de datos se pueden lograr mediante varios métodos de conexión, como comunicación en serie, TCP/IP, transmisión por infrarrojos y Bluetooth.

(6) Funciones completas de gestión de bases de datos integradas. El DBMS móvil integrado debe tener una función de recuperación automática, que básicamente no requiere intervención manual para la gestión de la base de datos integrada y puede proporcionar copia de seguridad y recuperación de datos para garantizar la seguridad y confiabilidad de los datos del usuario.

(7) Independencia de plataforma y soporte para múltiples sistemas operativos integrados. El DBMS móvil integrado debería poder soportar una variedad de sistemas operativos integrados actualmente populares, tales como Windows CE y Palm OS, de modo que el sistema de gestión de bases de datos móviles integrados no esté restringido por terminales móviles.

(8) Funciones de gestión cero. La base de datos integrada tiene una función de recuperación automática. Puede gestionar la base de datos integrada sin intervención manual y proporcionar copia de seguridad y sincronización de datos.

Además, un estado ideal es que los usuarios puedan realizar operaciones y gestión de datos en todas las bases de datos móviles relacionadas utilizando solo un terminal móvil (como un teléfono móvil). Esto requiere que el sistema frontal sea universal y que la interfaz de la base de datos móvil tenga estándares unificados y estandarizados. El sistema de gestión de front-end genera automáticamente comandos de procesamiento de transacciones unificados durante el procesamiento de datos y los envía al servidor de datos actualmente conectado para su ejecución. Esto mejora efectivamente la versatilidad del sistema de gestión de bases de datos móviles integradas y amplía las perspectivas de aplicación de la base de datos móvil integrada.

En resumen, en el sistema de gestión de bases de datos móviles integrado, es necesario considerar muchos problemas que no es necesario considerar en los entornos informáticos tradicionales, como el soporte para operaciones de desconexión, el soporte para transacciones largas entre regiones y el soporte para consultas relacionadas con la ubicación. y optimización de consultas. Consideraciones especiales y consideraciones para mejorar la utilización de recursos limitados y la eficiencia del sistema. Para resolver eficazmente los problemas anteriores, se utilizan tecnologías como la tecnología de replicación y almacenamiento en caché, el procesamiento de transacciones móviles, la tecnología de transmisión de datos, el procesamiento y optimización de consultas de consultas móviles, la tecnología de consultas y procesamiento de datos relacionados con la ubicación, la tecnología de publicación de información móvil, los agentes móviles y otros. Las tecnologías aún se están desarrollando y mejorando promoverán aún más el desarrollo de sistemas integrados de gestión de bases de datos móviles.

12.6 Sistemas en tiempo real y sistemas operativos integrados

En pocas palabras, un sistema en tiempo real puede verse como un sistema que puede responder a eventos externos de manera oportuna. La característica más importante de este tipo de sistema es la puntualidad, es decir, el tiempo real. La exactitud de un sistema en tiempo real no solo depende de los resultados lógicos de los cálculos del sistema, sino que también depende del momento en que se generan estos resultados.

En la actualidad, la mayoría de los sistemas integrados en tiempo real están integrados y los sistemas integrados en ejecución reales también tienen requisitos de tiempo real. Por lo tanto, entre muchos tipos de sistemas operativos integrados, los sistemas operativos integrados en tiempo real son los más representativos. todo tipo de sistemas operativos integrados, por lo tanto, esta sección se centra principalmente en las características y conceptos de los sistemas operativos integrados en tiempo real e introduce los conceptos y características básicos, la arquitectura básica y el núcleo de los sistemas operativos integrados. como servicios, objetos del kernel y servicios del kernel.

12.6.1 Concepto de tiempo real de sistemas integrados

En el mundo real, no todos los sistemas integrados tienen características de tiempo real y no todos los sistemas en tiempo real están necesariamente integrados. Sin embargo, estos dos sistemas no son mutuamente excluyentes y los sistemas que tienen las características de ambos sistemas se denominan sistemas integrados en tiempo real. La relación entre ellos se muestra en la Figura 12-7.
Insertar descripción de la imagen aquí
(1) Lógica (o función) correcta significa que el sistema puede producir resultados correctos al procesar eventos externos.
(2) Tiempo correcto significa que el procesamiento de eventos externos por parte del sistema debe completarse dentro de un período predeterminado.
(3) Fecha límite o límite de tiempo, límite de tiempo, fecha límite se refiere al último límite de tiempo que el sistema debe procesar eventos externos. El incumplimiento de este límite puede tener consecuencias graves. Por lo general, el cálculo debe completarse antes de que se alcance el límite de tiempo.
(4) El sistema en tiempo real se refiere a un sistema que satisface tanto la función correcta como el tiempo correcto. Ambos son igualmente importantes. En otras palabras, los sistemas en tiempo real tienen limitaciones de tiempo y plazos. Sin embargo, en algunos sistemas, se puede sacrificar la exactitud del tiempo para garantizar la corrección funcional.
Para la división de sistemas en tiempo real, los sistemas en tiempo real generalmente se pueden dividir en:
(1) Sistema fuerte en tiempo real, el tiempo de respuesta del sistema es muy corto, generalmente en el nivel de milisegundos o microsegundos.
(2) Para los sistemas generales en tiempo real, el tiempo de respuesta del sistema es menor que el de los sistemas fuertes en tiempo real, generalmente en el segundo nivel.
(3) Para sistemas débiles en tiempo real, el tiempo de respuesta del sistema puede ser mayor y también puede cambiar con la gravedad de la carga del sistema.

Los sistemas en tiempo real se pueden dividir en sistemas blandos en tiempo real y sistemas duros en tiempo real según la tolerancia al incumplimiento de los plazos o la gravedad de las consecuencias.
(1) Un sistema estricto en tiempo real se refiere a un sistema en tiempo real cuya flexibilidad está cerca del límite de tiempo cero.Se debe cumplir el límite de tiempo
De lo contrario, se producirán consecuencias catastróficas y los resultados del procesamiento obtenidos después del límite de tiempo serán inútiles de nivel cero o estarán muy devaluados.
(2) Un sistema flexible en tiempo real se refiere a un sistema en tiempo real que debe cumplir con requisitos de límite de tiempo pero que tiene un cierto grado de flexibilidad. Los plazos pueden incluir niveles de tolerancia variables, plazos promedio o incluso distribuciones estadísticas con distintos grados de aceptabilidad de los tiempos de respuesta. En los sistemas blandos en tiempo real, el incumplimiento de los plazos no suele tener consecuencias graves, como fallos del sistema. La Tabla 12-2 es una comparación de sistemas de tiempo real suave y de tiempo real duro.
Insertar descripción de la imagen aquí
En comparación, se puede ver que dado que los plazos incumplidos no tienen un impacto decisivo en el funcionamiento de los sistemas blandos en tiempo real, un sistema blando en tiempo real no necesita predecir si puede haber plazos incumplidos pendientes. Por el contrario, los sistemas blandos en tiempo real pueden iniciar un proceso de recuperación después de detectar un plazo incumplido.

En un sistema en tiempo real, la hora de inicio de una tarea es tan importante como la fecha límite o el tiempo de finalización. Dado que la tarea carece de los recursos necesarios, como CPU y memoria, puede dificultar el inicio de la ejecución de la tarea y provocar directamente su falta. la fecha límite de finalización de la tarea, por lo que el problema de la fecha límite evoluciona y se convierte en un problema de programación de recursos.
Esto tiene un impacto crucial en los algoritmos de programación y el diseño de tareas.

12.6.2 Descripción general de los sistemas operativos integrados

El llamado sistema operativo integrado se refiere a un sistema operativo que se ejecuta en un sistema informático integrado para admitir aplicaciones integradas. Es una colección de software que se utiliza para controlar y administrar recursos de hardware y software en sistemas integrados y proporcionar servicios del sistema. El sistema operativo integrado es una parte importante del software integrado. Su aparición ha mejorado la eficiencia del desarrollo de software integrado, ha mejorado la portabilidad del software de aplicación y ha promovido eficazmente el desarrollo de sistemas integrados.

1.Características de los sistemas operativos integrados
En comparación con los sistemas operativos de propósito general, los sistemas operativos integrados tienen principalmente las siguientes características:

(1) Miniaturización: la plataforma de ejecución del sistema operativo integrado no es una computadora de uso general, sino un sistema informático integrado. Este tipo de sistema generalmente no tiene memoria de gran capacidad y casi no tiene memoria externa. Por lo tanto, el sistema operativo integrado debe ser compacto para ocupar la menor cantidad de recursos del sistema posible. Para mejorar la velocidad de ejecución y la confiabilidad del sistema, el software del sistema integrado generalmente se solidifica en el chip de memoria en lugar de almacenarse en un soporte como un disco.

(2) Código de alta calidad: en la mayoría de las aplicaciones, el espacio de almacenamiento sigue siendo un recurso valioso, lo que requiere que el código del programa sea de alta calidad y lo más optimizado posible.

(3) Especialización: existen varias plataformas de hardware para sistemas integrados y los procesadores se actualizan rápidamente. Cada una de ellas está especialmente diseñada para diferentes campos de aplicación. Por lo tanto, el sistema operativo integrado debe tener buena adaptabilidad y portabilidad, y también debe admitir múltiples plataformas de desarrollo.

(4) Fuerte rendimiento en tiempo real: los sistemas integrados se utilizan ampliamente en control de procesos, recopilación de datos, comunicaciones, procesamiento de información multimedia y otras situaciones que requieren respuesta en tiempo real. Por lo tanto, el rendimiento en tiempo real se ha convertido en otra característica de los sistemas operativos integrados. .

(5) Cortable y configurable: la diversidad de aplicaciones requiere que el sistema operativo integrado tenga una gran adaptabilidad y pueda configurarse de manera flexible y cortarse razonablemente de acuerdo con las características y requisitos específicos de la aplicación para adaptarse a los requisitos de miniaturización y especialización.

2.Clasificación de sistemas operativos integrados.
Existen muchos tipos de sistemas operativos integrados, que se pueden clasificar desde diferentes perspectivas. Desde la forma de adquisición del sistema operativo integrado, se puede dividir en dos categorías: tipo comercial y tipo gratuito:

(1) Tipo comercial. Los sistemas operativos integrados comerciales generalmente tienen funciones estables y confiables, soporte técnico completo, herramientas de desarrollo completas y servicios posventa. Como VxWorks de WindRiver, pSOS y Palm OS de Palm, etc. Sin embargo, es caro y los usuarios normalmente no pueden obtener el código fuente del sistema.

(2) Tipo libre. La ventaja de un sistema operativo integrado gratuito radica en su precio. Además, los desarrolladores de sistemas de aplicaciones pueden obtener el código fuente del sistema, lo que aporta comodidad al desarrollo. Sin embargo, los sistemas operativos gratuitos tienen funciones simples, soporte técnico deficiente y estabilidad del sistema deficiente. Los sistemas representativos típicos incluyen Linux integrado, uC/OS, etc. Por la naturaleza en tiempo real de los sistemas operativos integrados, se pueden dividir en dos categorías: sistemas operativos integrados en tiempo real y sistemas operativos integrados en tiempo no real.

(1) SO integrado en tiempo real (RTEOS). El sistema operativo integrado en tiempo real admite el trabajo del sistema en tiempo real. Su tarea principal es programar todos los recursos disponibles para cumplir con el límite de tiempo en tiempo real para responder a eventos externos. Los sistemas operativos integrados en tiempo real se utilizan principalmente en control, comunicación y otros campos. Actualmente, la mayoría de los sistemas operativos integrados comerciales son sistemas operativos en tiempo real.

(2) Sistema operativo integrado que no es en tiempo real. Este tipo de sistema operativo no presta especial atención al tiempo de respuesta de una sola tarea. Su rendimiento promedio, eficiencia del sistema y utilización de recursos son generalmente altos y es adecuado para productos de electrónica de consumo que no tienen requisitos estrictos en tiempo real. como asistentes digitales personales, descodificadores, etc.

12.6.3 Sistema operativo integrado en tiempo real

En general, el rendimiento en tiempo real de un sistema integrado está determinado por el hardware, el sistema operativo en tiempo real y las aplicaciones. Entre ellos, el rendimiento del núcleo del sistema operativo integrado en tiempo real juega un papel clave. Generalmente, existen dos tipos de sistemas operativos integrados en tiempo real: RTEOS basados ​​en kernel en tiempo real y RTEOS de propósito general.

RTEOS de tipo kernel en tiempo real: en este tipo de sistema operativo, los controladores están tradicionalmente integrados en el kernel y las aplicaciones y el middleware se implementan en interfaces de programación de aplicaciones estándar (API, interfaces de programación de aplicaciones).

RTEOS de propósito general en tiempo real: en este tipo de sistema operativo, el controlador no está profundamente integrado en el kernel, sino que se implementa sobre el kernel y solo contiene algunos controladores necesarios. Las aplicaciones y el middleware se pueden implementar directamente en él. parte superior del controlador, en lugar de tener que implementarse en API estándar. Sus diferencias se muestran en la Figura 12-8.
Existen muchas similitudes funcionales entre los sistemas operativos integrados en tiempo real y los sistemas operativos de propósito general. Por ejemplo, ambos admiten la multitarea, la gestión de recursos de software y hardware y ambos brindan servicios básicos de sistema operativo para aplicaciones.
Insertar descripción de la imagen aquí
1.Características clave de los sistemas operativos integrados en tiempo real
En comparación con los sistemas operativos de propósito general, los sistemas operativos integrados en tiempo real tienen muchas características funcionales. Las características clave exclusivas de los sistemas operativos integrados en tiempo real que son diferentes de los sistemas operativos de propósito general incluyen:

  • Conozca la alta confiabilidad de las aplicaciones integradas;
  • Capacidades hechas a medida para satisfacer las necesidades de las aplicaciones;
  • Requisitos de memoria bajos;
  • Previsibilidad de las operaciones;
  • Adoptar una estrategia de programación en tiempo real;
  • El sistema es de tamaño compacto;
  • Admite el arranque y la ejecución desde ROM o RAM;
  • Tiene mejor portabilidad a diferentes plataformas de hardware.

2.Indicadores de rendimiento en tiempo real de sistemas operativos integrados en tiempo real Al evaluar el rendimiento de los diseños de sistemas operativos en tiempo real, los indicadores de rendimiento del tiempo
El indicador es el indicador de desempeño más importante. Los indicadores de desempeño del tiempo de uso común incluyen principalmente los siguientes:

(1) Tiempo de cambio de tarea: se refiere al tiempo necesario para transferir el control de la CPU de una tarea en ejecución a otra tarea lista, incluido el tiempo dedicado a guardar y restaurar el contexto de la tarea y seleccionar la siguiente tarea que se ejecutará al realizar el cambio de tareas. En este momento, este indicador está relacionado con el número de registros y la estructura del sistema del microprocesador. El mismo sistema operativo puede tardar tiempos diferentes cuando se ejecuta en diferentes microprocesadores. El diagrama de tiempo correspondiente al tiempo de cambio de tarea se muestra en la Figura 12-9.
Insertar descripción de la imagen aquí
(2) Indicadores de tiempo relacionados con el procesamiento de interrupciones. El diagrama de tiempo de interrupción correspondiente se muestra en la Figura 12-10.
Insertar descripción de la imagen aquí
El tiempo de retardo de interrupción se refiere al tiempo desde que ocurre la interrupción hasta que el sistema aprende la interrupción. Se ve afectado principalmente por el tiempo máximo de interrupción del sistema.

Cuanto mayor sea el tiempo de interrupción, mayor será el retraso de la interrupción;
Tiempo de ejecución del procesamiento de interrupciones, que está determinado por la aplicación específica;
El tiempo de respuesta a la interrupción se refiere al tiempo desde que ocurre una interrupción hasta el inicio de la ejecución de la rutina del servicio de interrupción del usuario;
El tiempo de recuperación de interrupción se refiere al tiempo entre que finaliza la rutina del servicio de interrupción del usuario y regresa al código interrumpido;

El tiempo máximo de interrupción incluye dos aspectos: uno es el tiempo máximo de interrupción del kernel, es decir, el kernel desactiva las interrupciones cuando se ejecuta código de sección crítica y el otro es el tiempo de interrupción máximo de la aplicación; el tiempo es el máximo de estos dos tiempos de interrupción; el tiempo de respuesta de la tarea se refiere al tiempo desde que se genera la interrupción correspondiente a la tarea hasta que la tarea realmente comienza a ejecutarse;
Para la programación preventiva, el tiempo de recuperación de la interrupción también se agrega al tiempo para cambiar de tarea y restaurar el nuevo contexto de tarea.
entre.

(3) Tiempo de respuesta del sistema: se refiere al tiempo desde que el sistema emite una solicitud de procesamiento hasta que el sistema responde, es decir, el retraso en la programación. El tamaño de este tiempo está determinado principalmente por el algoritmo de programación de tareas del núcleo. Como resumen, en la Tabla 12-3 se muestra el método típico de cálculo del índice de rendimiento del kernel interrumpible en tiempo real.
Insertar descripción de la imagen aquí

12.6.4 Introducción a los principales sistemas operativos integrados

Hasta ahora, según estadísticas incompletas, el número total de sistemas operativos integrados existentes en el mundo llega a cientos. Existen más de una docena de los sistemas operativos más utilizados. Estos sistemas operativos tienen una gran popularidad y una gran base de usuarios en sus respectivos campos de aplicación. La Tabla 12-4 selecciona algunos sistemas operativos integrados comunes en la industria para comparar.
Insertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

12.7 Desarrollo y diseño de sistemas integrados

La tarea principal del diseño de un sistema integrado es definir las funciones del sistema, determinar la arquitectura del sistema y asignar las funciones a la arquitectura de implementación del sistema. Aquí, la arquitectura del sistema incluye tanto la arquitectura del sistema de software como la arquitectura del sistema de hardware. Una arquitectura se puede asignar a una variedad de implementaciones físicas diferentes, cada una de las cuales representa diferentes compensaciones y al mismo tiempo satisface ciertos criterios de diseño y optimiza otros.

El método de diseño de sistemas integrados es diferente de los métodos generales de diseño de hardware y desarrollo de software. Adopta el método de codiseño de hardware y software. El proceso de desarrollo no solo implica conocimiento en el campo del software, sino que también implica un conocimiento integral del hardware. campo, e incluso involucra maquinaria, etc. aspectos del conocimiento. Los diseñadores deben estar familiarizados y ser capaces de utilizar libremente diversas tecnologías en estos campos para optimizar el sistema diseñado.

Aunque las soluciones de diseño del software de aplicación de sistemas integrados varían según los diferentes campos de aplicación, los métodos de análisis y diseño de los sistemas integrados también siguen los principios generales de la ingeniería de software. Se pueden aplicar muchos métodos de análisis y diseño maduros en el campo integrado. El proceso de desarrollo de sistemas integrados también incluye varias etapas básicas: análisis de requisitos, diseño, implementación y prueba del sistema, y ​​cada etapa tiene sus propias características y enfoque únicos.

Esta sección presenta principalmente la tecnología y los métodos de desarrollo y diseño de sistemas integrados, y analiza los métodos de diseño de software de aplicaciones y los principales problemas enfrentados en el proceso de diseño desde la perspectiva de las aplicaciones de sistemas integrados y los modelos informáticos. Finalmente, se discuten cuestiones relacionadas con el trasplante de software en el campo integrado.

12.7.1 Descripción general del diseño de sistemas integrados

Antes de diseñar un sistema integrado, se deben aclarar las características del diseño del sistema integrado en sí y algunos de los principales indicadores técnicos para medir el diseño del sistema integrado.

1.Características del diseño de sistemas integrados.
En comparación con el diseño de sistema habitual, el diseño de sistema integrado tiene las siguientes características:

  • Desarrollo colaborativo y paralelo de software y hardware;
  • Existen muchos tipos de microprocesadores;
    -Los sistemas operativos integrados en tiempo real son diversos;
  • En comparación con el desarrollo general del sistema, los recursos del sistema disponibles son pocos;
  • Poco soporte para aplicaciones;
  • Requiere herramientas de desarrollo especiales;
  • Tanto el software como el hardware deben ser robustos;
  • La depuración es difícil.

2.Indicadores técnicos de sistemas integrados.
Los indicadores comúnmente utilizados para el diseño de sistemas integrados incluyen:
(1) Costo NRE (costo de ingeniería no recurrente): el costo monetario único que debe pagarse para diseñar el sistema. Es decir, una vez completado el diseño, se puede fabricar cualquier cantidad de productos sin pagar tarifas de diseño adicionales. .

(2) Costo unitario: el costo monetario requerido para producir un solo producto, excluyendo los costos NRE.

(3) Tamaño: se refiere al espacio ocupado por el sistema, para el software, generalmente se mide por el número de bytes; para el hardware, se mide por el número de puertas lógicas o transistores.

(4) Rendimiento: el tiempo necesario para que el sistema complete tareas específicas es el indicador de diseño más utilizado durante el diseño. Hay dos métodos de medición principales. Uno es el tiempo de respuesta, que es el tiempo entre el inicio de la ejecución y el final de la misma. la tarea. El segundo es la cantidad de finalización, que es la cantidad de tareas completadas por unidad de tiempo.

(5) Potencia: La potencia consumida por el sistema, que determina la vida útil de la batería o los requisitos de disipación de calor del circuito.

(6) Flexibilidad: la capacidad de cambiar las funciones del sistema sin aumentar los costos de NRE.

(7) Tiempo de creación del prototipo: el tiempo necesario para establecer una versión ejecutable del sistema. El prototipo del sistema puede ser más grande y más costoso que el producto final, pero puede verificar el uso y la corrección del sistema y mejorar la funcionalidad del mismo. sistema.

(8) Tiempo de comercialización: el tiempo desde el desarrollo del sistema hasta el momento en que se puede vender a los consumidores. Los factores que influyen más importantes incluyen el tiempo de diseño, el tiempo de fabricación y el tiempo de prueba.

(9) Mantenibilidad: La facilidad con la que un sistema puede modificarse después de su lanzamiento o comercialización, especialmente por parte de desarrolladores no originales.

(10) Corrección: si la función del sistema se implementa correctamente, la función del sistema se puede verificar durante todo el proceso de diseño y también se puede insertar un circuito de prueba para verificar si es correcto.

(11) Seguridad: la probabilidad de que el sistema no cause daño. Varios indicadores de diseño generalmente compiten entre sí. La mejora de un indicador a menudo conducirá al deterioro de otros indicadores. Para cumplir mejor con los requisitos de optimización del diseño, los diseñadores deben comprender varias tecnologías de implementación de software y hardware y poder aprender de ellas. La tecnología se transfiere a otro para encontrar la mejor solución bajo restricciones específicas.

3.Desafíos del diseño de sistemas integrados
Los desafíos que enfrenta el diseño de sistemas integrados incluyen los siguientes aspectos.
(1) Cuánto hardware se necesita: los diseñadores tienen un fuerte control sobre la potencia informática utilizada para resolver problemas. No solo pueden elegir qué procesador usar, sino también la cantidad de memoria, los periféricos utilizados, etc., porque no solo el diseño. Para cumplir con los requisitos de rendimiento, también existen limitaciones en los costos de fabricación. La elección del hardware es muy importante. Muy poco hardware no cumplirá con los requisitos funcionales y de rendimiento, y demasiado hardware encarecerá el producto.

(2) Cómo cumplir con el límite de tiempo: no es recomendable utilizar el método de aumentar la velocidad del procesador para hacer que el programa se ejecute más rápido para resolver la restricción de tiempo, porque esto aumentará el precio del sistema. Al mismo tiempo, aumentar la frecuencia del reloj del procesador a veces no mejora la velocidad de ejecución, porque la velocidad del programa puede estar limitada por el sistema de almacenamiento.

(3) Cómo reducir el consumo de energía del sistema: para los sistemas que funcionan con baterías, el consumo de energía es un tema muy delicado. Para sistemas que no funcionan con baterías, alta potencia significa alta disipación de calor. Una forma de reducir el consumo de energía del sistema es reducir su velocidad de computación, pero simplemente reducir la velocidad de computación obviamente conducirá a un rendimiento insatisfactorio. Por lo tanto, se debe realizar un diseño cuidadoso para reducir el consumo de energía y al mismo tiempo cumplir con las restricciones de rendimiento.

(4) Cómo garantizar la escalabilidad del sistema: la plataforma de hardware del sistema puede usar varias generaciones o usar diferentes niveles de productos de la misma generación, estos solo requieren algunos cambios simples. El diseñador debe cambiar las características del sistema. cambiando el software. Diseñe una máquina que pueda proporcionar capacidades de rendimiento que aún no están disponibles en el software.

(5) Cómo garantizar la confiabilidad del sistema: la confiabilidad es un indicador importante al vender productos. Es un requisito razonable de los consumidores que el producto pueda funcionar bien. La confiabilidad es particularmente importante en algunos sistemas, como los sistemas de control de seguridad.

(6) Complejidad de las pruebas: probar un sistema integrado es mucho más difícil que simplemente ingresar algunos datos, por lo que se debe ejecutar toda la máquina para generar los datos correctos. El momento en que se generan los datos es muy importante, es decir, no puede. abandonar el sistema integrado. Trabajar con todo el entorno para probar los sistemas integrados.

(7) Visibilidad y controlabilidad limitadas: los sistemas integrados generalmente no tienen dispositivos de visualización ni teclados, lo que dificulta que los desarrolladores comprendan lo que sucede dentro del sistema y no pueden responder a las acciones del sistema. A veces tienen que observar los microcontroladores. señales para entender. En los sistemas en tiempo real, generalmente no es posible apagar el sistema para realizar observaciones.

(8) Entorno de desarrollo limitado: el entorno de desarrollo de los sistemas integrados, como el software de desarrollo y las herramientas de hardware, suele ser más limitado que el entorno disponible en computadoras o estaciones de trabajo de uso general. Por lo tanto, solo se puede utilizar el desarrollo cruzado, lo que es en gran medida. afecta el progreso del desarrollo.

12.7.2 Modelo de desarrollo y proceso de diseño.

De manera similar al desarrollo de sistemas generales, el desarrollo de sistemas integrados también puede adoptar modelos de desarrollo comunes en ingeniería de software, que incluyen principalmente el modelo en cascada, el modelo en espiral, el modelo de refinamiento paso a paso y el modelo jerárquico.

1.Modelos de desarrollo comunes
Un proceso de diseño es una serie de pasos que se deben seguir durante el diseño de un sistema, algunos de los cuales pueden realizarse mediante herramientas automatizadas, mientras que otros solo pueden realizarse manualmente. En el campo de los sistemas integrados, existen los siguientes modelos de procesos de desarrollo de uso común.

(1) Modelo de cascada. El modelo en cascada consta de cinco etapas principales: la etapa de análisis de requisitos determina las características básicas del sistema de destino; la etapa de diseño de la estructura del sistema descompone las funciones del sistema en estructuras principales; la etapa de codificación escribe y depura principalmente programas; y la última es la fase de mantenimiento, que se encarga principalmente de modificar el código para adaptarlo a los cambios del entorno, corregir errores y actualizar. El trabajo y la información en cada etapa siempre fluyen en una dirección desde la abstracción de alto nivel hasta pasos de diseño más detallados, lo cual es un modelo de diseño de arriba hacia abajo ideal.

(2) Modelo en espiral. El modelo en espiral supone que se construirán múltiples versiones del sistema. La primera versión es un modelo experimental simple para ayudar al diseñador a establecer su intuición sobre el sistema y acumular experiencia en su desarrollo. A medida que avanza el diseño, se crearán versiones más complejas. sistema creado. En cada capa de diseño, los diseñadores pasarán por tres etapas: análisis de la demanda, diseño estructural y pruebas. En una etapa posterior, cuando se construyan versiones más complejas del sistema, se realizará más trabajo en cada etapa y será necesario ampliar la espiral de diseño. Este enfoque de refinamiento paso a paso permite al diseñador profundizar su conocimiento. comprensión del sistema desarrollado a través de una serie de ciclos de diseño. El primer bucle en la parte superior de la espiral es muy pequeño y corto, mientras que el último bucle en la parte inferior de la espiral agrega detalles a los primeros bucles del modelo en espiral, que es más realista que el modelo en cascada.

(3) Refinamiento paso a paso del modelo. El modelo de refinamiento paso a paso es un sistema que se construye varias veces. El primer sistema se utiliza como prototipo y luego el sistema se perfecciona uno por uno. Este enfoque tiene sentido cuando el diseñador no está muy familiarizado con el dominio de aplicación del sistema que se está construyendo. Refinar el sistema mediante la construcción de varios sistemas de complejidad creciente permite a los diseñadores probar la arquitectura y las técnicas de diseño. Además, varias técnicas iterativas pueden completarse sólo parcialmente hasta que el sistema esté finalmente completado.

(4) Modelo jerárquico. Muchos sistemas integrados se componen de diseños más pequeños, y un sistema completo puede requerir varios componentes de software y hardware. Estas partes pueden estar compuestas de partes más pequeñas que aún no han sido diseñadas, por lo que el proceso de diseño cambia con el nivel de abstracción del sistema, desde el diseño inicial del sistema completo hasta el diseño de partes individuales, desde el diseño general en el nivel más alto de abstracción al intermedio El diseño detallado en el nivel abstracto y luego el diseño de cada módulo específico se desarrollan capa por capa. Cada proceso puede ser realizado por un solo diseñador o equipo de diseño. Cada grupo se basa en los resultados de otros grupos. , y cada grupo aprende de los superiores. Los grupos obtienen requisitos, mientras que los grupos de padres confían en la calidad y el desempeño de los diseños de los grupos individuales. Además, cada etapa de implementación del proceso es un proceso completo desde la especificación hasta las pruebas.

2.Métodos de diseño de sistemas integrados.
Un buen método de diseño de sistemas integrados es muy importante porque:
(1) Un buen método de diseño permite a los diseñadores comprender claramente el progreso del trabajo que están realizando, para garantizar que no se pierda ninguno de ellos.
(2) Permitir el uso de herramientas asistidas por computadora para ayudar a los diseñadores a trabajar y dividir todo el proceso en varios pasos controlables.
(3) Los buenos métodos de diseño facilitan la comunicación entre los miembros del equipo de diseño. Al definir un proceso de diseño integral, cada miembro del equipo puede tener una buena comprensión del trabajo que debe realizar y los pasos necesarios para completar las tareas que se le asignan. Metas logradas.

El proceso de desarrollo de software de sistema integrado se puede dividir en varias etapas, como planificación del proyecto, análisis de viabilidad, análisis de requisitos, diseño general, diseño detallado, creación de programas, descarga, depuración, solidificación, pruebas y operación.

Las etapas de planificación del proyecto, análisis de viabilidad, análisis de requisitos, diseño general y diseño detallado son básicamente las mismas que el proceso de desarrollo de software general y todas pueden llevarse a cabo de acuerdo con métodos de ingeniería de software, como métodos de creación de prototipos, métodos estructurados, etc. .

Dado que los entornos de ejecución y desarrollo del software integrado son diferentes, el trabajo de desarrollo se realiza de forma transversal, por lo que esto debe considerarse en cada paso. El trabajo en la fase de establecimiento del programa se basa en los documentos generados durante la fase de diseño detallado. El trabajo en esta etapa incluye principalmente varios subprocesos, como la escritura, compilación y vinculación del código fuente. Todas estas tareas se realizan en la máquina host y no requieren el uso de la máquina de destino. Después de generar el archivo ejecutable de la aplicación, debe utilizar el entorno de desarrollo cruzado para la depuración. Puede elegir según la situación real.
Haga esto utilizando uno de los diversos métodos de depuración disponibles o una combinación válida de ellos. El diseño del sistema integrado es diferente del diseño de software tradicional, como se muestra en la Figura 12-11. A menudo implica diseño de hardware y diseño de software, donde las actividades iniciales, como las especificaciones y la arquitectura del sistema, requieren la consideración de aspectos tanto de hardware como de software.
Insertar descripción de la imagen aquí
De manera similar, el diseño de back-end, como la integración y las pruebas del sistema, considera el sistema completo. En la etapa intermedia, los componentes de software y hardware se desarrollan de forma independiente entre sí, y la mayor parte del trabajo de hardware y software se puede realizar de forma relativamente independiente. Finalmente, el programa ejecutable correcto después de la depuración debe solidificarse en la máquina de destino.Dependiendo de la configuración del hardware del sistema integrado, existen varios métodos de curado. Se puede curar en memorias como EPROM y FLASH, o en dispositivos electrónicos como DOC y DOM.
subplaca. Generalmente esto se hace con la ayuda de algunos programadores especiales.

Dado que los sistemas integrados tienen mayores requisitos de seguridad y confiabilidad que los sistemas informáticos de uso general, se requiere una mayor cobertura de código al realizar pruebas de caja blanca de sistemas integrados. En cada etapa del proceso de desarrollo del sistema, se debe llevar a cabo la confirmación del sistema y la evaluación del desempeño, la evaluación de la seguridad y la evaluación de riesgos, y se debe probar y verificar la implementación del sistema.

12.7.3 Tecnologías centrales del diseño de sistemas integrados

El desarrollo de sistemas integrados es un desarrollo integral de software y hardware, que es muy diferente del desarrollo de sistemas generales. Por un lado, cada sistema integrado es una combinación de software y hardware, por otro lado, un sistema integrado. se desarrolla, el software se solidifica en el producto junto con el hardware y tiene una gran especificidad. Bajo la influencia de estas características, debe existir una metodología de ingeniería que sea diferente del proceso general de desarrollo de software para respaldar el proceso de desarrollo de sistemas integrados. Al mismo tiempo, estas características también determinan las tecnologías centrales únicas utilizadas en el desarrollo de sistemas integrados.

En términos generales, en el campo del desarrollo integrado, existen tres tecnologías centrales principales: tecnología de procesador, tecnología IC y tecnología de diseño/verificación.

1. Tecnología de procesador
La tecnología de procesador está relacionada con la estructura del motor informático que implementa funciones del sistema. Muchos sistemas digitales no programables también pueden considerarse procesadores. La diferencia entre estos procesadores es su grado de especialización para funciones específicas, lo que da como resultado especificaciones de diseño diferentes a las de otros procesadores. .

(1) Procesador de uso general. Este tipo de procesador se puede utilizar para diferentes tipos de aplicaciones. Una característica importante es la capacidad de almacenar programas. Dado que el diseñador no sabe qué operaciones realizará el procesador, es imposible crear un programa utilizando circuitos digitales. Otra característica es la ruta de datos universal. Para manejar varios cálculos, la ruta de datos es universal. La ruta de datos generalmente tiene una gran cantidad de registros y una o más unidades lógicas aritméticas de uso general. El diseñador sólo necesita programar la memoria del procesador para realizar las funciones requeridas, es decir, el software relacionado con el diseño.

El uso de procesadores de propósito general en sistemas integrados tiene varias ventajas en términos de métricas de diseño. El tiempo de comercialización y el costo de NRE son bajos porque el diseñador solo necesita escribir el programa sin realizar ningún diseño digital. Es muy flexible y se pueden realizar cambios funcionales modificando el programa. En comparación con el diseño interno del procesador, el costo unitario es menor cuando la cantidad es pequeña.

Por supuesto, este método también tiene algunos defectos en los indicadores de diseño. Cuando la cantidad es grande, el costo unitario es relativamente alto, porque cuando la cantidad es grande, el costo del NRE de diseño propio se amortiza, lo que puede reducir el costo unitario. Al mismo tiempo, para algunas aplicaciones, el rendimiento puede ser deficiente. El tamaño del sistema y el consumo de energía pueden aumentar debido a la inclusión de hardware de procesador innecesario.

(2) Procesador de propósito único. Un procesador de propósito único es un circuito digital diseñado para ejecutar un programa específico. También se refiere a coprocesadores, aceleradores, periféricos, etc. Los códecs como JPEG ejecutan un único proceso para comprimir o descomprimir la información del vídeo. Los diseñadores de sistemas integrados pueden crear procesadores de propósito único mediante el diseño de circuitos digitales específicos. Los diseñadores también pueden utilizar procesadores comerciales de propósito único prediseñados.

El uso de procesadores de propósito único en sistemas integrados tiene algunas ventajas y desventajas en términos de métricas. Estas ventajas y desventajas son básicamente opuestas a las de los procesadores de uso general: el rendimiento puede ser mejor, el tamaño y la potencia pueden ser menores, el costo unitario puede ser menor cuando la cantidad es grande y el tiempo de diseño y el costo de NRE pueden ser altos. la flexibilidad es escasa y el costo unitario por hora es mayor; para algunas aplicaciones, el rendimiento no es tan bueno como el de los procesadores de uso general.

(3) Procesador dedicado. Un procesador de conjunto de instrucciones de propósito especial es un procesador programable optimizado para un tipo específico de aplicación. Estas aplicaciones específicas tienen las mismas características, como control integrado, procesamiento de señales digitales, etc. El uso de procesadores dedicados en sistemas integrados puede proporcionar una mayor flexibilidad y al mismo tiempo garantizar un buen rendimiento, potencia y tamaño, pero dichos procesadores aún requieren costos elevados para construir el procesador en sí y el compilador. Los microcontroladores y los procesadores de señales digitales son dos tipos de procesadores especializados que se utilizan ampliamente. Los procesadores de señales digitales son microprocesadores que realizan operaciones comunes en señales digitales, mientras que los microcontroladores son microprocesadores optimizados para aplicaciones de control integradas.

2. tecnología de circuitos integrados
La tecnología de implementación que obtiene el proceso de mapeo físico del chip real a partir de la descripción del diseño del circuito integrado del sistema es la tecnología IC (circuitos integrados, circuito integrado). Actualmente, existen tres tipos de tecnologías de implementación en el campo de los semiconductores, a saber, la personalización completa. , semipersonalización y tecnología programable. Se puede aplicar al diseño de hardware de sistemas integrados.

(1) Totalmente personalizado/VLSI (Very Large Scale Integrated Circuits, circuitos integrados de muy gran escala). En la tecnología IC totalmente personalizada, los diseñadores de cada capa necesitan optimizar la implementación digital de un sistema integrado específico. Los diseñadores comienzan desde el tamaño del diseño, la posición y el cableado de los transistores para lograr una alta utilización del área del chip, una velocidad rápida y un bajo consumo de energía. . Optimizar el rendimiento. Al utilizar máscaras para producir chips reales en la planta de fabricación, los diseños de circuitos integrados totalmente personalizados, también llamados a menudo VLSI, tienen altos costos de NRE, largos tiempos de fabricación y son adecuados para aplicaciones de alto volumen o de rendimiento crítico.

(2) Semipersonalizado/ASIC (Circuito integrado de aplicación específica, circuito integrado de aplicación específica). El ASIC semipersonalizado es un método de diseño restringido, que incluye el método de diseño de matriz de puertas y el método de diseño de celda estándar. Es un hardware semiacabado con algunos componentes de unidad universal y grupos de componentes fabricados en el chip. El diseñador sólo necesita considerar las funciones lógicas del circuito y las conexiones razonables entre los módulos funcionales. Este método de diseño es flexible, conveniente y rentable, acorta el ciclo de diseño y mejora el rendimiento.

(3) Programable/ASIC. Todas las capas del dispositivo programable ya existen. Una vez completado el diseño, el chip diseñado se puede disparar en el laboratorio sin la participación de los fabricantes de circuitos integrados y el ciclo de desarrollo se acorta significativamente. El ASIC programable tiene un costo NRE más bajo, un costo unitario más alto, un consumo de energía más alto y una velocidad más lenta.

3.Tecnología de diseño/verificación
La tecnología de diseño de sistemas integrados incluye principalmente dos categorías: tecnología de diseño de hardware y tecnología de diseño de software. Entre ellos, la tecnología en el campo del diseño de hardware incluye principalmente tecnología de diseño a nivel de chip y tecnología de diseño a nivel de placa de circuito.

El núcleo de la tecnología de diseño a nivel de chip es la compilación/síntesis, la biblioteca/IP (propiedad intelectual, propiedad intelectual) y las pruebas/verificación. La tecnología de compilación/síntesis permite a los diseñadores describir la funcionalidad requerida de forma abstracta y analizar e insertar automáticamente detalles de implementación. La tecnología de biblioteca/IP utiliza implementaciones de abstracción de bajo nivel prediseñadas para abstracciones de alto nivel. La tecnología de prueba/verificación garantiza que cada nivel funcione correctamente, lo que reduce el costo del diseño iterativo entre niveles.

El núcleo de la tecnología de diseño de software es el lenguaje del software. Los lenguajes de software han experimentado el proceso de desarrollo desde lenguajes de bajo nivel (lenguaje de máquina, lenguaje ensamblador) hasta lenguajes de alto nivel (por ejemplo, lenguajes de diseño estructurados, lenguajes de diseño orientados a objetos). tecnología de ensamblaje, tecnología de análisis, tecnología de compilación/interpretación, etc., muchas tecnologías relacionadas. Los niveles de los lenguajes de software también están pasando gradualmente del nivel de implementación, el nivel de diseño y el nivel funcional al desarrollo del lenguaje a nivel de demanda.

En los primeros días, con la formación gradual del concepto de procesadores de uso general, la tecnología de software se desarrolló rápidamente, la complejidad del software también comenzó a aumentar y las tecnologías y campos del diseño de software y el diseño de hardware se separaron por completo. Las técnicas y herramientas de diseño se han desarrollado simultáneamente en estos dos campos, permitiendo que la descripción del comportamiento se realice en niveles cada vez más abstractos para adaptarse a las crecientes necesidades de la complejidad del diseño. Este desarrollo simultáneo ahora hace que ambos campos utilicen el mismo modelo de tiempo para describir el comportamiento, por lo que es posible que los dos campos se unifiquen nuevamente en uno solo.

En vista del hecho de que la mayoría de los sistemas integrados son sistemas reactivos en tiempo real, los sistemas reactivos tienen las características de concurrencia de múltiples tareas, restricciones de tiempo estrictas y alta confiabilidad. Para el diseño y descripción de sistemas reactivos, las personas han propuesto sucesivamente una variedad de. lenguajes de descripción y metodología de Validación. Por ejemplo, la lógica secuencial se utiliza para describir la naturaleza de los sistemas reactivos y la razón sobre el comportamiento de los sistemas reactivos, y la tecnología de verificación de modelos se utiliza para verificar la exactitud de los diseños de los sistemas reactivos. Estas tecnologías han jugado gradualmente un papel importante en el desarrollo integrado. proceso. .

12.7.4 Entorno de diseño y desarrollo integrado

Existen muchos tipos de entornos de desarrollo para sistemas integrados, que generalmente se pueden dividir en las siguientes categorías:
(1) Entornos de desarrollo que soportan sistemas operativos integrados Hay muchos entornos de desarrollo en esta categoría, como PalmOS, THOS, VxWorks, Windows CE y otros sistemas operativos integrados comerciales, que tienen entornos de desarrollo completamente funcionales que los respaldan.

(2) Entorno de desarrollo que soporta el chip del procesador. Este tipo de entorno de desarrollo generalmente lo proporcionan los fabricantes de procesadores. Por ejemplo, un kit de herramientas lanzado por EPSON específicamente para el desarrollo de sistemas integrados basados ​​en la serie S1C33 de chips de microcontroladores es este tipo de entorno de desarrollo.

(3) Un entorno de desarrollo que coincida con la plataforma de aplicación específica. Este tipo de entorno de desarrollo es muy específico, como Brew SDK de Qualcomm.

(4) Otros tipos de entornos de desarrollo. Este tipo de entorno de desarrollo se refiere principalmente a un entorno de desarrollo más general desarrollado o personalizado por algunos proveedores de sistemas integrados basados ​​en herramientas de código abierto GNU. Estas herramientas están disponibles de forma gratuita, admiten una amplia gama de tipos de procesadores y tienen funciones completas, pero su soporte técnico es ligeramente inferior al de las herramientas comerciales profesionales.

12.7.5 Modelo de diseño de software integrado

A medida que las funciones de los sistemas integrados se vuelven cada vez más complejas, resulta cada vez más difícil describir el comportamiento de estos sistemas funcionalmente complejos. La práctica ha demostrado que describir y analizar sistemas mediante el uso de modelos computacionales es un método con valor de ingeniería.

Esta sección presenta varios modelos informáticos de uso común en el campo integrado y analiza y explica cuestiones relacionadas con el diseño y desarrollo de aplicaciones integradas desde la perspectiva de los modelos informáticos. Los modelos computacionales proporcionan un conjunto de métodos para combinar comportamientos complejos con objetos simples, que pueden ayudar a los diseñadores a comprender y describir el comportamiento del sistema. Los modelos informáticos comúnmente utilizados en sistemas integrados incluyen los siguientes: modelo informático secuencial, modelo de proceso de comunicación, modelo de máquina de estados, modelo de flujo de datos, modelo orientado a objetos y modelo de proceso concurrente. Estos modelos se utilizan en diferentes campos de aplicación. Por ejemplo, el modelo de máquina de estados es particularmente adecuado para describir sistemas orientados al control, y el modelo de flujo de datos puede describir bien problemas de conversión y procesamiento de datos. Actualmente el más utilizado es el modelo de procesos concurrentes.

1.modelo de máquina de estados
La máquina de estados finitos (FSM) es un modelo de estados básico que puede utilizar un conjunto de estados posibles para describir el comportamiento del sistema. El sistema solo puede estar en uno de los estados en cualquier momento, o también puede describir el estado determinado. por la entrada, finalmente, puede describir las operaciones que pueden ocurrir en un determinado estado o durante una transición de estado.
La máquina de estados finitos FSM es una F de seis tuplas<S,I,O,F,H,S0> , donde S es un conjunto de estados {s0, s1,…,sl}, I es un conjunto de entradas {I0, I1,…,Im}, O es un conjunto de salidas {o0, o1,…,on} y F es una función de subestado. O función de transición, que asigna el estado y la entrada al estado (S×I→S), H es la función de salida, que asigna el estado a la salida (S→O), y S0 es el estado inicial. .

La Figura 12-12 es la descripción de la máquina de estados de la unidad de control del ascensor. En el estado inicial "inactivo", configure arriba y abajo en 0 y abra en 1. La máquina de estado permanece en estado "inactivo" hasta que el piso solicitado sea diferente del piso actual. Si el piso solicitado es mayor que el piso actual, la máquina de estado se transfiere al estado "arriba" y se establece en 1. Si el piso solicitado es más pequeño que el piso actual, la máquina de estado se mueve al estado "abajo" y abajo se establece en 1. La máquina de estado permanece en el estado "abajo" o "arriba" hasta que el piso actual sea igual al piso solicitado, y luego el estado pasa al estado "abierto" con abierto establecido en 1. Por lo general, el sistema tiene un temporizador, por lo tanto, cuando la máquina de estado pasa al estado de "puerta abierta", el temporizador también se inicia. La máquina de estado permanece en el estado de "puerta abierta" hasta que el temporizador expira y finalmente pasa al estado. el estado "inactivo".
Insertar descripción de la imagen aquí
Cuando se utiliza FSM en el diseño de sistemas integrados, los tipos de datos de su entrada y salida son ambos tipos booleanos, y la función representa una función booleana que contiene operaciones booleanas. Este modelo se ha utilizado para muchos sistemas de control puro sin suficiente entrada o salida de datos. . Si desea procesar datos, extienda el FSM a una máquina de estado con ruta de datos (FSM con ruta de datos, FSMD). Además, el modelo de máquina de estados se puede ampliar aún más para admitir jerárquico y concurrente. Este modelo se denomina modelo FSM jerárquico/concurrente (HCFSM).

2.modelo de flujo de datos
El modelo de flujo de datos es un modelo derivado del modelo multitarea concurrente. Este modelo describe el comportamiento del sistema como un conjunto de nodos y bordes, donde los nodos representan transformaciones y los bordes representan el flujo de datos de un nodo a otro. . Cada nodo utiliza datos de sus bordes de entrada, realiza transformaciones y produce datos en sus bordes de salida.

Cada borde puede tener datos o no. Los datos que aparecen en el borde se denominan token. Cuando todos los bordes de entrada de un nodo tienen al menos un token, el nodo se puede activar. Después de activar el nodo, se utilizará un token de cada borde de entrada, se realizará la transformación de datos en todos los tokens utilizados y se generará un token en el borde de salida. La activación del nodo solo depende de la aparición del token. .

La Figura 12-13 muestra el modelo de flujo de datos para calcular z=(a+b)×(cd). Actualmente, existen varias herramientas comerciales que admiten la expresión de modelos de flujo de datos en lenguajes gráficos. Estas herramientas pueden convertir automáticamente modelos de flujo de datos en modelos multitarea concurrentes para su implementación en microprocesadores. El método de conversión consiste en convertir cada nodo en una tarea y cada borde en un canal. El método de implementación del modelo multitarea concurrente es utilizar un sistema operativo en tiempo real para asignar tareas concurrentes.

La Figura 12-14 es un modelo de flujo de datos síncrono. En este modelo, cada borde de entrada y borde de salida del nodo están marcados con la cantidad de tokens utilizados y generados para cada activador. La ventaja de este modelo es que no es necesario convertirlo en un modelo multitarea concurrente durante la implementación. En cambio, los nodos se programan de manera estática para generar un modelo de programa secuencial. El modelo se puede expresar utilizando un lenguaje de programación secuencial (como el lenguaje C) y se puede ejecutar sin un sistema operativo en tiempo real, por lo que su eficiencia de ejecución es mayor.
Insertar descripción de la imagen aquí
3. Modelo de proceso concurrente
El modelo de proceso concurrente se compone de un grupo de procesos. Cada proceso es un proceso de ejecución secuencial y cada proceso se puede ejecutar al mismo tiempo. El modelo de proceso concurrente proporciona operaciones para crear, terminar, suspender, reanudar y conectar procesos. Los procesos pueden comunicarse entre sí e intercambiar datos durante la ejecución. La comunicación entre procesos puede adoptar dos formas: variables compartidas y paso de mensajes. Se utilizan semáforos, secciones críticas, tubos, expresiones de ruta, etc. para sincronizar las operaciones de procesos concurrentes.

En general, un sistema en tiempo real puede verse como un sistema compuesto por muchos procesos que se ejecutan simultáneamente, cada uno de los cuales tiene requisitos de tiempo. De esta manera, muchos sistemas integrados se describen más fácilmente mediante un conjunto de tareas ejecutadas simultáneamente, porque estos sistemas en sí mismos son sistemas multitarea y, naturalmente, el modelo de proceso concurrente se puede implementar mediante la multitarea de un sistema operativo en tiempo real.

4.modelo orientado a objetos
El modelo de proceso concurrente tradicional está diseñado en torno al concepto de proceso. El proceso es un concepto a nivel de implementación. Es una simulación indirecta de actividades en el mundo objetivo. Por lo tanto, es extremadamente difícil utilizar el modelo de proceso para resolver problemas de concurrencia. mundo objetivo. Es antinatural y también hace que los programas concurrentes sean difíciles de diseñar y comprender.

El modelo orientado a objetos describe actividades en el mundo objetivo de una manera más directa y existe una capacidad potencial de ejecución concurrente en el modelo. Después de que un objeto envía un mensaje a otro objeto, si el resultado del procesamiento del mensaje no es necesario o no es necesario de inmediato, el primero no tiene que esperar a que el segundo procese el mensaje, y el remitente y el receptor del mensaje pueden ejecutarlo. al mismo tiempo.No todos los objetos se encuentran en un estado pasivo de prestación de servicios. Además de proporcionar servicios mediante la recepción de mensajes, algunos de ellos también pueden tener su propio procesamiento de transacciones.
razón. A menudo, un objeto puede manejar varios mensajes al mismo tiempo.

Un objeto es una encapsulación de datos y operaciones. Los datos se almacenan en las variables locales del objeto. El estado del objeto está representado por los valores de todas las variables locales del objeto en un momento determinado. En un entorno concurrente, también se debe considerar la descripción del estado concurrente del objeto, porque el control de concurrencia del objeto se basa en el estado concurrente del objeto. La combinación de concurrencia y orientación a objetos se puede resumir de dos formas:
(1) Introducir un mecanismo de concurrencia en el modelo orientado a objetos, hacer pleno uso de la tecnología orientada a objetos para describir la buena capacidad de modelo del mundo objetivo y varias características importantes de la orientación a objetos, y al mismo tiempo describir sus capacidades potenciales de concurrencia. , lo que lo hace adecuado para describir la computación concurrente.

(2) Introducir el pensamiento orientado a objetos en el modelo de concurrencia tradicional. Los modelos de concurrencia orientados a objetos se pueden dividir en dos tipos: modelos de concurrencia implícita y modelos de concurrencia explícita.

(1) Modelo de concurrencia implícita. Este modelo se caracteriza por diferir el diseño concurrente y utilizar el modelado de objetos como base para el modelado. Antes de entrar en la fase de ejecución, trate los objetos como unidades autónomas y las actividades de varios objetos como tareas específicas completadas de manera concurrente ideal. Así como cada objeto tiene su propio procesador, este procesador puede proporcionar un hilo de ejecución para el objeto. Los eventos externos que ingresan al sistema se consideran una solicitud de procesamiento y se transmiten a algunos objetos. Estos objetos luego realizan solicitudes de procesamiento adicionales a otros objetos. En teoría, en respuesta a una solicitud, cualquier número de objetos puede realizar el procesamiento correspondiente. Durante la implementación, el planificador determina en última instancia el orden de las operaciones en sus objetos, como se muestra en la Figura 12-15.

(2) Modelo de concurrencia explícita. La característica de este modelo es que se debe considerar primero la concurrencia y separar primero el concepto de concurrencia y el concepto de objetos. Una vez establecido el objeto, el concepto de proceso admitido por el sistema operativo en tiempo real se utiliza para representar la concurrencia, formando dos niveles abstractos de objeto y proceso, es decir, primero descomponiendo el sistema en procesos cuasi concurrentes como punto de partida. utilizando tecnología orientada a objetos dentro de cada proceso. Las interacciones entre objetos se expresan como llamadas a funciones anidadas y se agregan mecanismos de sincronización explícitos como bloqueos, monitores y semáforos para garantizar la integridad de los objetos. Este modelo coloca los procesos por encima de los objetos y no es necesario considerar la concurrencia o la serialización de objetos en los objetos, como se muestra en la Figura 12-16.
Insertar descripción de la imagen aquí
En los primeros días, el método de diseño de sistemas en tiempo real era principalmente un método de diseño estructurado. Los sistemas que utilizaban métodos estructurados tenían grandes limitaciones en términos de reutilización y modificabilidad. El método de diseño de sistemas en tiempo real orientado a objetos obviamente tiene ventajas obvias en estos problemas. El método de diseño orientado a objetos más práctico es el método OCTOPUS de Nokia. Este método se basa en OMT y Fusion Method, y propone métodos para procesar el tiempo de respuesta del sistema en tiempo real, el dominio del tiempo y la concurrencia, y propone específicamente métodos para manejar el tiempo real. tiempo de respuesta del sistema, dominio del tiempo y concurrencia. Manejo de aspectos de concurrencia, sincronización, comunicaciones, manejo de interrupciones, ASIC, interfaces de hardware, tiempos de respuesta de un extremo a otro. El enfoque OCTOPUS combina bien las fases principales del desarrollo de software, proporciona una transición estrecha y natural desde la especificación al modelo en ejecución y respalda el desarrollo incremental. El método OCTOPUS es un método de diseño típico que combina tecnología actual orientada a objetos y sistemas en tiempo real. Además, las técnicas formales de desarrollo orientadas a objetos y los lenguajes de modelado se están aplicando gradualmente en la etapa inicial del modelado de sistemas en tiempo real.

12.7.6 Análisis de requisitos

Antes de diseñar, el diseñador debe saber qué diseñar. Los requisitos y especificaciones se utilizan a menudo para describir estos dos pasos relacionados pero distintos del proceso de diseño. Los requisitos son descripciones informales de lo que los usuarios quieren, mientras que las especificaciones son descripciones más detalladas, precisas y consistentes que pueden usarse para crear una arquitectura de sistema. Por supuesto, los requisitos y especificaciones son representaciones externas del sistema de guía, no representaciones internas. Hay dos tipos de requisitos: requisitos funcionales y requisitos no funcionales. Los requisitos funcionales describen lo que debe hacer el sistema, mientras que los requisitos no funcionales describen otros atributos del sistema, como el tamaño físico, el precio, el consumo de energía, el tiempo de diseño y la confiabilidad. esperar.

El análisis de requisitos para un sistema grande es una tarea compleja y que requiere mucho tiempo, pero obtener una pequeña cantidad de información en un formato claro y simple es un buen comienzo para comprender los requisitos del sistema. La Tabla 12-5 es un formulario de requisitos que se completa al comienzo de un proyecto y puede usarse como lista de verificación al considerar las características básicas del sistema.

Insertar descripción de la imagen aquí
El contenido de este formulario de requisitos se prepara utilizando GPS (Sistema de Posición Global, sistema de mapas móviles) como ejemplo. El sistema de mapas móviles es un dispositivo portátil diseñado para usuarios que conducen en carreteras o usuarios similares. El dispositivo puede obtener información de ubicación del GPS y mostrar la ubicación actual y los mapas del terreno circundante para el usuario. Cambia dependiendo de la ubicación del usuario y del dispositivo.

El resultado del documento más importante durante la fase de análisis de requisitos son las especificaciones del sistema.
Una especificación es un documento técnico que refleja con precisión las necesidades del cliente y sirve como requisitos que se deben seguir durante el diseño. En el proceso de desarrollo de software, las especificaciones son muy importantes. Los analistas de sistemas aceptan los requisitos del usuario y generan especificaciones para el sistema de software de destino. Los diseñadores y codificadores diseñan módulos de acuerdo con las especificaciones y finalmente generan códigos de programa. El personal de pruebas y aceptación verifica si el software final cumple con las especificaciones. Las especificaciones deben ser claras e inequívocas; de lo contrario, es posible que el sistema construido a partir de las especificaciones no cumpla con los requisitos reales.

Actualmente, el método más popular en la industria es utilizar UML para describir especificaciones. UML es un lenguaje de modelado estándar universal que puede modelar cualquier sistema con estructura estática y comportamiento dinámico. UML es adecuado para diferentes etapas del proceso de desarrollo del sistema, desde la especificación de requisitos hasta las pruebas una vez completado el sistema. La Figura 12-17 es un ejemplo de una especificación de máquina de estados que muestra que las operaciones de inicio y fin son estados especiales, y los estados en la máquina de estados representan diferentes operaciones conceptuales.
Insertar descripción de la imagen aquí
En la fase de análisis de requisitos, los requisitos de los usuarios se capturan a través de casos de uso. Mediante el modelado de casos de uso, describir los actores externos interesados ​​en el sistema y sus requisitos funcionales para el sistema (casos de uso). La fase de análisis se ocupa principalmente de los conceptos principales (como abstracciones, clases, objetos, etc.) y mecanismos en el dominio del problema. Es necesario identificar estas clases y sus relaciones y describirlas con diagramas de clases UML. Durante la fase de análisis, sólo se modelan los objetos (conceptos del mundo real) del dominio del problema, sin considerar las clases que definen los detalles técnicos en el sistema de software (como las clases que manejan cuestiones como interfaces de usuario, bases de datos, comunicación, y paralelismo).

12.7.7 Diseño del sistema

Actualmente, las herramientas de diseño de sistemas integrados se pueden dividir en dos categorías: herramientas de síntesis colaborativa y herramientas de simulación colaborativa.
(1) Herramientas de síntesis colaborativa. Actualmente, las principales herramientas de síntesis colaborativa utilizadas para el desarrollo integrado incluyen POLIS, COSYMA y Chinook.

POLIS: POLIS es un marco de codiseño de software y hardware para sistemas integrados interactivos desarrollado por UC-Berkeley. Es adecuado para el diseño de pequeños sistemas de control que admiten lenguaje basado en FSM (Finite State Machine). Dado que tanto el software como el hardware se pueden obtener de forma transparente a partir de la misma descripción CFSM, la flexibilidad del espacio de diseño también aumenta en consecuencia. Se admite la simulación colaborativa utilizando PTOLEMY tanto en la capa de descripción como en la de implementación. es limitado, es decir, los CFSM de hardware están rodeados por un solo procesador y no admiten memoria compartida.

COSYMA: COSYMA es una plataforma desarrollada por la empresa alemana IDA para explorar el proceso de síntesis del codiseño de hardware y software. Tiene una descripción relativamente simple para sistemas de software, admite segmentación automática y síntesis de coprocesador y puede explorar el espacio de diseño. Durante el período de síntesis, la síntesis del sistema depende de las limitaciones del hardware y no admite módulos de concurrencia, es decir, solo se puede ejecutar un subproceso a la vez. La arquitectura también es limitada y no admite la verificación formal. Depende de las técnicas de partición y estimación de costos.

Chinook: Chinook está diseñado para sistemas de control. La descripción de todo el sistema se proporciona a Chinook como entrada. Su modelo interno se basa en un modelo de estado jerárquico. No segmenta el código. Todo el diseño Chinook admite una variedad de arquitecturas de sistemas, especialmente arquitecturas multiprocesador. También admite la descripción de restricciones de tiempo. Puede sintetizar una variedad de interfaces, incluidas interfaces de software y hardware entre sistemas. Puede sintetizar controladores de dispositivos directamente desde gráficos de tiempos y controlar la comunicación entre procesadores.

(2) Herramientas de simulación colaborativa. La simulación colaborativa es un aspecto crucial en el diseño de sistemas integrados. Una vez completado todo el diseño del sistema, es necesario simular diferentes tipos de componentes bajo un marco unificado. La simulación colaborativa no solo proporciona verificación, sino que también proporciona a los usuarios información sobre el rendimiento de cada sistema. , lo que ayuda a proponer cambios en las primeras etapas del sistema sin causar grandes pérdidas. Actualmente, existen dos herramientas principales de simulación colaborativa:

PTOLEMY: La idea clave de PTOLEMY es combinar modelos informáticos con núcleos orientados a objetos. Puede usarse para simular una variedad de sistemas y se usa ampliamente en varias aplicaciones, pero no es adecuado para la simulación de hardware. también una de sus funciones. TSS: TSS (Herramienta para simulación de sistemas) es una herramienta para simular hardware complejo. Está escrita en lenguaje C. La extracción de módulos individuales puede ser controlada por el usuario y los módulos se pueden agregar y eliminar fácilmente. Sin embargo, los módulos jerárquicos no son compatibles y no existe ningún mecanismo para sincronizar el acceso a estructuras de datos compartidas por parte de cada procesador. La comunicación entre módulos se realiza a través de puertos y buses. Además, TSS admite la simulación de sistemas multinúcleo.

1.Diseño de arquitectura del sistema.
Describir cómo el sistema implementa las funciones definidas en la especificación es el propósito principal del diseño de la arquitectura del sistema. Sin embargo, al diseñar la estructura de un sistema integrado, es difícil separar completamente el software y el hardware. El enfoque habitual es considerar primero la arquitectura de software del sistema y luego considerar su implementación de hardware. La descripción de la arquitectura del sistema debe cumplir con requisitos funcionales y no funcionales. No sólo se debe implementar la funcionalidad requerida, sino que también se deben cumplir restricciones no funcionales como costo, velocidad, consumo de energía, etc. Es un método práctico para considerar y refinar los elementos funcionales en el diagrama de bloques original del sistema uno por uno, y convertir el diagrama de bloques original en una estructura de sistema de software y hardware teniendo en cuenta las restricciones no funcionales. A continuación se toma como ejemplo el diseño arquitectónico del sistema de mapas móviles GPS.

(1) Diagrama de bloques original. Como se muestra en la Figura 12-18, este diagrama de bloques original es la operación principal y el flujo de datos del sistema de mapas móviles.
Insertar descripción de la imagen aquí
(2) Arquitectura del sistema de software. Como se muestra en la Figura 12-19, el sistema de software consta principalmente de una interfaz de usuario, un motor de búsqueda de bases de datos y un conversor de datos.
Insertar descripción de la imagen aquí
(3) Arquitectura del sistema de hardware. Como se muestra en la Figura 12-20, el sistema de hardware consta de un microprocesador de uso general, memoria y dispositivos de E/S. Este sistema selecciona dos tipos de memoria: datos generales, memoria de programa y memoria intermedia de cuadros para visualización de píxeles.
Insertar descripción de la imagen aquí
2.Diseño de subsistemas de hardware.
El entorno de desarrollo de sistemas integrados consta de 4 partes: plataforma de hardware de destino, sistema operativo integrado, lenguaje de programación y herramientas de desarrollo. Entre ellos, la selección del procesador y el sistema operativo debe considerar más factores para evitar decisiones equivocadas que afecten el progreso del proyecto. .

(1) Seleccione la tecnología del procesador. Un desafío importante en el diseño de sistemas integrados es cómo optimizar simultáneamente las especificaciones de diseño competitivas. Los diseñadores deben hacer concesiones entre varias tecnologías de procesador y tecnologías de circuitos integrados. En términos generales, la tecnología del procesador no tiene nada que ver con la tecnología IC, es decir, cualquier tecnología de procesador se puede implementar utilizando cualquier tecnología IC, pero el rendimiento, el costo NRE, el consumo de energía, el tamaño y otros indicadores del dispositivo final serán muy diferente, como se muestra en la Figura 12-21.
Insertar descripción de la imagen aquí
La tecnología programable más versátil proporciona mayor flexibilidad, reduce los costos de NRE y permite tiempos de lanzamiento y prototipo de productos más rápidos. La tecnología personalizada puede proporcionar un menor consumo de energía, mejor rendimiento, menor tamaño y menor costo para una producción de gran volumen.

Por lo general, cuando una empresa quiere lanzar un producto, como un decodificador, un enrutador doméstico o un procesador de uso general, primero puede lanzar un producto semipersonalizado para capturar el mercado lo más rápido posible y luego lanzar un producto semipersonalizado para capturar el mercado lo más rápido posible. Producto totalmente personalizado. También puede utilizar primero tecnología antigua más confiable para implementar el procesador y luego utilizar nueva tecnología de proceso para implementar la próxima generación. Del mismo modo, los diseñadores de sistemas integrados pueden utilizar dispositivos programables para crear prototipos que aceleren el tiempo de comercialización y luego utilizar dispositivos personalizados para la producción en volumen. Con base en estos principios, los diseñadores pueden tomar decisiones razonables sobre la tecnología del procesador y el procesador utilizado. Generalmente, el "software de procesador universal" totalmente personalizable y disponible comercialmente es una opción adecuada para la mayoría de las situaciones.

(2) Selección de procesador integrado general. Elija un procesador integrado de uso general adecuado según las necesidades del usuario y el proyecto. Se deben considerar los siguientes indicadores al seleccionar.
Velocidad del procesador. El rendimiento de un procesador depende de muchos factores: frecuencia de reloj, tamaño de los registros internos, si las instrucciones procesan todos los registros por igual, etc. Para muchos diseños de sistemas integrados que requieren un procesador, el objetivo no es elegir el procesador más rápido, sino elegir el procesador y el subsistema de E/S que puedan realizar el trabajo. El rendimiento del procesador satisface las necesidades del sistema y tiene un cierto margen, pero no es necesario elegirlo demasiado alto. Indicadores técnicos. Actualmente, muchos procesadores integrados integran las funciones de dispositivos periféricos, reduciendo así la cantidad de chips y reduciendo así el costo de desarrollo de todo el sistema. Lo primero que consideran los desarrolladores es si parte del hardware requerido por el sistema se puede conectar al procesador sin una lógica combinatoria excesiva. En segundo lugar, considere algunos chips de soporte del procesador, como el controlador DMA, el administrador de memoria, el controlador de interrupciones, el dispositivo serie, el reloj, etc. La familiaridad del desarrollador con el procesador significa que el desarrollador del proyecto necesita hacer un equilibrio entre el costo del procesador en sí y el costo de desarrollo.

Si la función de E/S del procesador satisface las necesidades del sistema, es decir, muchos procesadores proporcionan dispositivos externos integrados para reducir la cantidad de chips y reducir costos. Esta solución debe considerarse tanto como sea posible. Herramientas de soporte de software relevantes para el procesador, es decir, si el procesador tiene soporte completo para sistemas operativos integrados, lenguajes de programación y herramientas de desarrollo, etc.

La depuración del procesador se refiere a si el procesador tiene funciones de depuración integradas, como si admite JTAG, BDM y otros métodos de depuración. El fabricante del procesador respalda la credibilidad. A la hora de elegir un determinado procesador durante el ciclo de vida del producto, los diseñadores deben confirmar que tiene suministro suficiente, soporte técnico, etc. El bajo consumo energético del procesador.

El mercado más grande y de más rápido crecimiento para los microprocesadores integrados son los productos electrónicos de consumo, como dispositivos portátiles, blocs de notas electrónicos, PDA, teléfonos móviles, navegadores GPS y electrodomésticos inteligentes. Los microprocesadores adquiridos en estos productos suelen caracterizarse por altos requisitos de rendimiento. bajo consumo de energía. Muchos fabricantes de CPU ya se han adentrado en este campo.

(3) Precauciones para el diseño de hardware. Primero, divida el hardware en componentes o módulos y dibuje un diagrama de bloques de las conexiones de los componentes o módulos. En segundo lugar, refine cada módulo y divida el sistema en partes más manejables que puedan implementarse de forma independiente. Por lo general, algunas funciones del sistema se pueden implementar tanto en software como en hardware. No existe un método unificado para guiar al diseñador a decidir la asignación de funciones de software y hardware, pero se puede hacer un equilibrio entre rendimiento y costo en función del lista de restricciones. Al diseñar la interfaz entre software y hardware, los diseñadores de hardware y de software deben trabajar juntos para completarla. Un buen diseño de interfaz puede garantizar que el hardware sea simple y fácil de programar. Es necesario tener en cuenta los siguientes puntos al diseñar.

  • Puertos de E/S: enumera todos los puertos del hardware, direcciones de puerto, atributos de puerto, el significado de los comandos y secuencias utilizados, puerto
    estatus y significado.
  • Registros de hardware: para cada registro, diseñe la dirección del registro, la dirección de bit del registro y el significado de cada bit, y
  • Descripción de la lectura y escritura del registro, requisitos e instrucciones de tiempos para el uso de este registro.
  • Mapeo de memoria: las direcciones de la memoria compartida y las E/S asignadas en memoria. Para cada mapeo de memoria, se describen la secuencia de lectura/escritura y la asignación de direcciones de cada operación de E/S.
  • Interrupciones de hardware: cómo utilizar las interrupciones de hardware, enumerando los números de interrupción de hardware utilizados y los eventos de hardware asignados.
  • Asignación de espacio de memoria: indique el tamaño del espacio y la ubicación que ocupan los programas y datos en el sistema, así como el tipo de memoria y el método de acceso, etc.

En resumen, los diseñadores de hardware deberían brindar a los diseñadores de software información cada vez más detallada para facilitar el diseño y desarrollo del software.

3.Diseño de subsistemas de software.
De acuerdo con el documento de especificaciones en la etapa de análisis de requisitos, determine el modelo de cálculo del sistema y realice un diseño razonable de la parte del software.
(1) Selección del sistema operativo. Al elegir un sistema operativo integrado, es necesario considerar muchos aspectos:
Funciones del sistema operativo. Seleccione los productos del sistema operativo en función de las funciones del sistema operativo requeridas por el proyecto. Considere si el sistema admite todas o parte de las funciones del sistema operativo, si admite sistemas de archivos, interfaces hombre-máquina y si es un sistema en tiempo real. o un sistema de tiempo compartido, y si el sistema se puede reducir, etc.

Selección de herramientas de desarrollo de soporte. Algunos sistemas operativos en tiempo real (rtos) solo admiten las herramientas de desarrollo del proveedor del sistema. En otras palabras, también debe obtener un compilador, depurador, etc. del proveedor del sistema operativo. Algunos sistemas operativos se utilizan ampliamente y hay herramientas de terceros disponibles, por lo que la elección es más amplia. Qué fácil es portar el sistema operativo. La migración del sistema operativo al hardware es un tema importante. Es un factor clave relacionado con si todo el sistema se puede completar a tiempo. Por lo tanto, se deben seleccionar sistemas operativos con un alto grado de portabilidad para evitar diversas dificultades causadas por la dificultad de portar el sistema operativo al hardware y acelerar el progreso del desarrollo. del sistema. ¿Cuáles son los requisitos de memoria del sistema operativo? Considere si se necesita ram o eeprom adicional para satisfacer los mayores requisitos de memoria del sistema operativo. Algunos sistemas operativos tienen requisitos de memoria específicos de cada destino. Como tornado/vxworks, los desarrolladores pueden asignar los recursos necesarios según las necesidades de la aplicación en lugar de asignar recursos al sistema operativo. Los desarrolladores pueden elegir entre hasta 80 configuraciones diferentes, que van desde diseños integrados que requieren varios kilobytes de memoria hasta aplicaciones complejas de alta gama en tiempo real que requieren más funcionalidad del sistema operativo.

Paquetes complementarios del sistema operativo. Si contiene los componentes de software necesarios, como pilas de protocolos de red, sistemas de archivos, controladores para diversos periféricos de uso común, etc. ¿Qué tan en tiempo real es el sistema operativo? El tiempo real se divide en tiempo real suave y tiempo real duro. Algunos sistemas operativos integrados sólo pueden proporcionar un rendimiento suave en tiempo real. Por ejemplo, Microsoft Windows CE 2.0 es un sistema operativo en tiempo real escalable, microkernel, compatible con Windows, que puede satisfacer las necesidades de la mayoría de los sistemas integrados y no integrados. aplicaciones.Sin embargo, el rendimiento en tiempo real no es lo suficientemente sólido y es una operación integrada suave en tiempo real.
Sistema operativo. ¿Qué tan flexible es el sistema operativo? Si el sistema operativo se puede adaptar, es decir, si las funciones del sistema se pueden adaptar de acuerdo con las necesidades reales. Algunos sistemas operativos tienen una gran adaptabilidad, como Linux integrado, tornado/vxworks, etc.

(2) Elección del lenguaje de programación. A la hora de elegir un lenguaje de programación, también hay que tener en cuenta muchos aspectos:

Versatilidad. Con el continuo desarrollo de la tecnología de microprocesadores, sus funciones se vuelven cada vez más especializadas y cada vez existen más tipos. Sin embargo, los diferentes tipos de microprocesadores tienen su propio lenguaje ensamblador dedicado. Esto crea un gran obstáculo para los desarrolladores de sistemas, ya que hace que la programación del sistema sea más difícil y que la reutilización del software sea imposible de lograr. Los lenguajes de alto nivel generalmente tienen menos contacto con la estructura del hardware de máquinas específicas. ​Están disponibles para la mayoría de los microprocesadores. Buen soporte y buena versatilidad.

portabilidad. Dado que el lenguaje ensamblador está estrechamente relacionado con un microprocesador específico, un programa diseñado para un determinado microprocesador no puede trasplantarse directamente a otro microprocesador de un tipo diferente. Por lo tanto, la portabilidad es deficiente. Los lenguajes de alto nivel son comunes a todos los microprocesadores, por lo que los programas pueden ejecutarse en diferentes microprocesadores y son más portátiles. Ésta es la base para la reutilización del software. eficacia. En términos generales, cuanto más alto sea el lenguaje, mayor será el compilador y la sobrecarga, y más grande y lenta será la aplicación. Sin embargo, depender únicamente de lenguajes de bajo nivel, como el lenguaje ensamblador, para desarrollar aplicaciones trae problemas como programación compleja y ciclos de desarrollo largos. Por lo tanto, existe un equilibrio entre el tiempo de desarrollo y el rendimiento en tiempo de ejecución.

Mantenibilidad. Los lenguajes de bajo nivel, como el lenguaje ensamblador, no se pueden mantener. Los programas en lenguajes de alto nivel suelen tener un diseño modular y las interfaces entre cada módulo son fijas. Por lo tanto, cuando ocurre un problema en el sistema, el problema se puede localizar rápidamente en un módulo determinado y resolverlo lo antes posible. Además, el diseño modular también facilita la ampliación y actualización de las funciones del sistema.
Rendimiento básico. Hay muchos tipos de lenguajes utilizados en el proceso de desarrollo de sistemas integrados. Los lenguajes de alto nivel más utilizados incluyen Ada, C/C++, Modula-2 y Java, etc. El lenguaje Ada está estrictamente definido, es fácil de leer y comprender y tiene un rico soporte para programas de biblioteca. Actualmente, se usa ampliamente en la defensa nacional, la aviación, el sector aeroespacial y otros campos relacionados, y seguirá ocupando una posición importante en estos campos en el. futuro. El lenguaje C tiene un amplio soporte de programas de biblioteca y es el lenguaje de programación más utilizado en sistemas integrados. Seguirá ocupando una posición importante en el campo de las aplicaciones de sistemas integrados durante mucho tiempo. C++ es un lenguaje de programación orientado a objetos que también se usa ampliamente en el diseño de sistemas integrados, como GNU C++. Visual C++ es un entorno de desarrollo integrado que admite la programación visual y se usa ampliamente en el desarrollo de programas GUI. Sin embargo, en comparación con C++, el código de destino de C++ suele ser más grande y complejo. Este factor debe considerarse plenamente en las aplicaciones de sistemas integrados.

(3) Proceso de desarrollo de software. El proceso de desarrollo de software integrado es diferente del proceso de desarrollo de software general. Incluye principalmente los siguientes pasos:

  • Elija un lenguaje de desarrollo y establezca un entorno de desarrollo cruzado;
  • Escriba el código fuente de acuerdo con instrucciones de diseño detalladas, realice una compilación cruzada y vincule;
  • Reubicación y descarga de código objeto;
  • Depurar y verificar las funciones del software en el host o en la máquina de destino;
  • Realizar la optimización del código.

(4) Documentos de desarrollo de software. En el proceso de desarrollo y diseño de productos integrados, la etapa de desarrollo completa la implementación de los productos del sistema. Esta etapa también requiere la finalización de una serie de documentos. Estos documentos son muy importantes para completar el diseño y el mantenimiento del producto. , tareas técnicas, etc. documentos, informes de planos técnicos, especificaciones de producto, condiciones técnicas, instrucciones de diseño, informes de pruebas, informes resumidos, etc.

12.7.8 Integración y prueba del sistema

Por lo general, las pruebas de sistemas integrados incluyen principalmente tres partes: pruebas de software, pruebas de hardware y pruebas unitarias. Las pruebas generales de hardware del sistema incluyen pruebas de confiabilidad y pruebas de compatibilidad electromagnética. Actualmente existen estándares nacionales e internacionales obligatorios para la compatibilidad electromagnética.

Los métodos y principios de prueba del software del sistema integrado son básicamente los mismos que los de la prueba del software general. Cuando se prueba software, generalmente se requieren instancias de prueba o secuencias de prueba: una es diseñada por el usuario y la otra. es una secuencia de prueba estándar. No importa qué tipo de instancia de prueba, se requiere que la instancia pueda encontrar más errores con una alta probabilidad, pero existen algunas diferencias en el contenido de la prueba:
(1) El software integrado debe funcionar de manera estable durante mucho tiempo.
(2) El software integrado generalmente no se actualiza con frecuencia.
(3) El software integrado se suele utilizar en aplicaciones críticas.
(4) El software integrado debe ser responsable de las fallas y la confiabilidad del producto junto con el hardware integrado.
(5) Las condiciones del mundo real son asincrónicas e impredecibles, lo que dificulta mucho las pruebas de simulación.
Debido a estas diferencias, las pruebas de software de sistemas integrados se centran principalmente en los siguientes cuatro aspectos diferentes:
(1) Debido a que el tiempo real y la simultaneidad son difíciles de satisfacer al mismo tiempo, la mayoría de las pruebas se centran en pruebas en tiempo real.
(2) La mayoría de los sistemas en tiempo real tienen limitaciones de recursos y, por lo tanto, requieren más pruebas de rendimiento y usabilidad.
(3) La cobertura del código se puede probar utilizando herramientas de seguimiento dedicadas en tiempo real.
(4) El nivel de prueba de confiabilidad es mucho más alto que el del software general.
Además, las pruebas de rendimiento son también una de las actividades de prueba más importantes que deben completarse en el diseño de sistemas integrados y tienen un impacto decisivo en los sistemas integrados.
Debido a las características especiales de los sistemas integrados, el sistema tiene varias plataformas de hardware y software, cada una de las cuales está especialmente diseñada para diferentes aplicaciones. Por lo tanto, el software de aplicación rara vez es universal entre varias plataformas y los sistemas integrados La velocidad de actualización es relativamente rápida. Para proteger las inversiones existentes, aprovechar al máximo los recursos de software existentes y acelerar el desarrollo de productos, el trasplante de software se ha vuelto muy frecuente en el campo integrado.