Temas principales Sistemas embebidos (ES) – características Ingeniería del Software – comparación con programación del software y la ingeniería de sistema Componentes del Software components de los Sistemas Embebidos (ES) Principales etapas del desarrollo del software para Sistemas embebidos (ES) Calidad del Software Sistemas de tiempo Real embebidos Lenguajes de programación en Sistemas embebidos (ES)
1
2 ¿Qué es un Sistema embebido? Una definición de uso general de los sistemas embebidos es que son dispositivos que se utilizan para controlar, supervisar o ayudar en la operación de equipos, maquinaria o planta. “Embebido” refleja el hecho de que son una parte integral del Sistema. En muchos casos, su “arraigo” puede ser tal que su presencia está lejos de ser evidente para el observador casual. Instituto de Ingeniería Eléctrica (IEE)
3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones predefinidas para ejecutar; Fuente de alimentación limitada y la administración de energía efectiva; Disponibilidad de recursos de reserve para situaciones inesperadas. Funcionamiento en tiempo real (con mayor frecuencia); Periféricos anchos e interfaces Interfaces: Interfaces de operador (Interfaces Máquina-Hombre – HMI) – teclados, monitores, interruptores, botones, indicadores emisores individuales o grupales de los diferentes tipos de señales, motores eléctricos, solenoides y otros. Interfaces eléctricas (interfaces con otros components y dispositivos) Interno – I2C, SPI, ISA y otros. Externos – RS232, TTY, Ethernet, Centronics, FlexRay, CAN, LIN, RF y otros
4 Características de los sistemas embebidos (2) Plataforma de sistemas embebidos: Microprocesador (MP o ?P) y los microcontroladores (MCU), que tienen menos poder de cómputo, pero varios periféricos; Arquitecturas – Von Neumann y Harvard; Utilizan ?P y MCU – CISC (Complex Instruction Set Computer) y más a menudo RISC (Reduced Instruction Set Computer); Las populares familias de procesadores RISC: ARC (ARC International), ARM (ARM Holdings), AVR (Atmel), PIC (Microchip), MSP430 (TI) y otros; CISC CPUs: Intel y Motorola; Por lo general en el interior hay una memoria cache y procesamiento de la canalización de instrucciones; Memoria para datos e instrucciones: RAM, PROM – OTP (Programable de una sola vez), EEPROM o memoria Flash; Periféricos: Propósito general Entrada /Salida – GPIO, temporizadores, ADC, DAC y más.
5 Características de los sistemas embebidos (3) Comunicación: RS-232, RS-422, RS-485, UART / USART (Receptor / Transmisor universal síncrono y asíncrono); I2C (Inter-Integrated Circuit – Circuito integrado), SPI (Serial Peripheral Interface Bus – Bus de la interfaz de periféricos serie), SSC and ESSI (Enhanced Synchronous Serial Interface – Interfaz mejorada serie síncrona), USB (Bus Universal en serie); Protocolos de comunicación de red: Ethernet, CAN (Controller Area Network – Controlador del área de red), LonWorks etc. Software: Popular OS – QNX4 RIOS, Linux embebido y Linux-based (Android, etc.), iOS, Windows CE, etc. Herramientas para probar y corregir (depuración) JTAG (Joint Test Action Group) – una interfaz especializada para la prueba saturada PCB; ISP (In-System Programming) – Programación de circuito; ICSP (circuito de programación en serie) – un método para la programación directa del microcontrolador, por ejemplo, de la serie PIC y AVR; BDM (Modo de depuración de fondo) – utilizado principalmente en productos de Freescale; IDE (Integrated Development Environment- Entorno de desarrollo integrado) – para el desarrollo de programas.
6 Sistemas embebidos: Ejemplos
Ingeniería del Software Ingeniería del Software (SE): la aplicación de un enfoque disciplinado cuantificable sistemático, con el diseño, desarrollo, operación y mantenimiento de software, y el estudio de estos enfoques; Es decir, la aplicación de la ingeniería del software. El plazo es de 45 años: conferencias de la OTAN Garmisch, Alemania, 7-11 octubre, 1968 Roma, Italia, 27-31 octubre, 1969 La realidad está finalmente empezando a llegar La informática como base científica ¿Otras bases científicas? Muchos aspectos se han hecho sistemáticos: Métodos / metodologías / técnicas Lenguajes Herramientas Procesos – Instrumentos 7
¿Por qué estas dificultades? SE es una marca única de la ingeniería El Software es maleable La construcción del Software es humano-intensivo El Software es intangible Problemas del Software son complejos sin precedentes El Software depende directamente del hardware. Está en la parte superior del Sistema de ingeniería “cadena alimentaria” Las soluciones del software requieren rigor inusual El software tiene carácter operativo discontinuo
8
Ingeniería del software ? Programación del Software Programación del Software Desarrollador individual Aplicaciones de “juguete” Esperanza de vida corta Pocos actores o actores individuales Arquitecto = Desarrollador = Gerente = Tester = Cliente = Usuario Uno de un Sistema tipo Construido desde cero Mantenimiento mínimo 9
Ingeniería del software ? Programación del Software Ingeniería del software Equipos de desarrolladores con multiples funciones. Sistemas complejos Vida útil indefinida Numerosos grupos interesados Arquitecto ? Desarrollador ? Gerente ? Tester ? Cliente ? Usuario Las familias del sistema Reutilizar para amortizar costes Mantenimiento representa más del 60% de los costos generales de desarrollo 10
Ingeniería del software ? Programación del Software Ingeniería de sistemas Campo interdisciplinario de la ingeniería que se centra en cómo los proyectos complejos de ingeniería deben ser diseñados y gestionados; Se ocupa de todos los aspectos del desarrollo del Sistema informático; Identifica las funciones de hardware, software, personas, bases de datos y otros elementos del Sistema que participan en ese Sistema que se va a desarrollar. Ingeniería del software Es una parte de la ingeniería de sistemas a nivel de usuario Decir los aspectos prácticos del desarrollo y distribución de software útil. 11
Aspectos de gestión económica y de SE La produccion de software = mantenimiento + desarrollo (evolución) Costes de mantenimiento > 60% de todos los costs de desarrollo 20% correctivo 30% adaptativo 50% perfectivo Desarrollo más rápido no siempre es preferible Mayores costos por adelantado pueden sufragar los costos aguas abajo. Software mal diseñado / implementado es un factor de coste crítico. 12
Componentes típicos de software embebido 13 of 13 Casi idéntico a los sistemas generales informáticos Software de aplicación Controlador de dispositivo
Componentes típicos de software embebido (cont.) 14 of 14 Middleware – ¿Qué es? Middleware es un software que ha sido extraído de la capa de aplicación por una variedad de razones. Una de las razones es que ya puede ser incluido como parte del paquete del Sistema operativo fuera de la plataforma OS. Otras razones para eliminarlo de la capa de aplicación son: permitir la reutilización en otras aplicaciones, para reducir costes o el tiempo de desarrollo mediante la compra off-the-shelf a través de un proveedor de terceros, o para simplificar el código de la aplicación. En los términos más generales, el software middleware es el software del Sistema que no es el núcleo OS del Sistema operativo, controladores de dispositivos, o software de aplicación. A continuación se muestra el middleware en el Modelo de Sistemas Embebidos (ver más en http://www.eetimes.com/document.asp?doc_id=1276764
(Gp:) Bus de datos (Gp:) Memoria De datos (Gp:) Memoriade programa (Gp:) interrupciones (Gp:) Digital o/p (Gp:) Analog o/p (Gp:) Digital i/p (Gp:) Analog i/p (Gp:) ENTRADAS (Gp:) SALIDAS (Gp:) Links A otros sistemas (Gp:) Interfaz de Usuario (Gp:) Bus de direcciones (Gp:) CPU (Gp:) AnalógicoFront End (Gp:) Digitali/p Ports (Gp:) Módulos Interfaz Usuario (Gp:) Digitalo/p Puertos (Gp:) D/A, Aislamiento (Gp:) Comms: ASC, SSC,USB, IIC, IrDA, etc. (Gp:) Soporte: Temporizador de guarda
15 of 15
Desarrollo del ciclo de vida de software. Modelo Cascada Requisitos Diseño Implementación Integración Validación Despliegue 16
Página siguiente |