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 |