Firmware: Desarrollo de electrónica a nivel Industrial

Page 1

Desarrollo de Firmware para productos Electrรณnicos a nivel Industrial Abril 21 de 2020


Que es firmware?


Características del firmware ●

Acceso directo a recursos de hardware (Dependencia de la máquina)

Instrucciones o lenguajes de bajo nivel (Assembler/C, C++, etc)

Enfoque en tareas específicas


Aplicaciones electrónicas ● Sistemas biomédicos ● Seguridad electrónica ● Instrumentación industrial ● Electrónica de consumo ● Sistemas de control


Antecedentes en Colombia


Problemas de oferta académica

Mutex Apuntadores a funciones Operaciones atómicas

Colas

Estructuras y uniones

Planificación cooperativa Semáforos

Planificación preferente

Apuntadores a objetos


Problemas de capacitaciรณn especializada


Costos de licencias

https://store5.esellerate.net/store/checkout/CustomLayout.aspx?s=STR171702125&pc=&page=OnePageCatalog.htm

https://www.cnx-software.com/2012/03/30/express-logic-releases-threadx-lite-rtos-for-arm-cortex-m/


Realidad Colombiana


Realidad Colombiana ARDUINO

Thread X


Realidad China


Conceptos fundamentales de diseĂąo de firmware industrial


Operaciones atรณmicas


Operaciones atรณmicas


Operaciones atรณmicas

Variables compartidas = volatile

Variable local = copia de seguridad

Lectura/escritura atรณmica

Uso de la variable local


Operaciones atรณmicas: Caso de fallo


Concurrencia

● Tareas “al mismo tiempo” ● Procesador muy “ocioso” ● Librerías “fáciles” = procesador aburrido


Tareas

â—? Tareas = bucles infinitos â—? Planificador = reparte el procesador

Imagen tomada de http://www.dietergalea.com/parallelism-concurrency/


Concurrencia

Imagen tomada de http://www.dietergalea.com/parallelism-concurrency/


Overheading


Tiempo real

● Un proceso que se ejecuta a muy alta

velocidad ● Los resultados se ven al mismo tiempo que el

proceso se ejecuta ● Un proceso con sistema de tiempo basado

en RTC (Real Time Clock) Imagen tomada de http://www.dietergalea.com/parallelism-concurrency/


TĂŠcnicas de planificaciĂłn en sistemas embebidos


Planificaciรณn cooperativa


Planificación cooperativa ● Las tareas ceden voluntariamente el uso del

procesador ● Espacio de memoria compartido entre tareas ● Requiere menos recursos (CPU & memoria) ● No se garantiza el cumplimiento estricto de tiempos

● Overhead mínimo (despreciable)


Planificaciรณn preemptive


Planificación preemptive ● Las tareas ceden el procesador y también son

interrumpidas ● Espacio de memoria propio para cada tarea ● Requiere muchos recursos (CPU & memoria) ● Permite el cumplimiento estricto de tiempos (RTOS)

● Overhead Alto


Cual tipo de planificación debo usar? ❑

Preemptive: •

Sistemas de misión crítica • Lógica de negocio muy compleja • Alto número de procesos concurrentes ❑

Cooperativa: •

Dispositivos de bajo costo • Procesador con poca RAM / ROM • Tiempos de ejecución no-críticos


Objetos y herramientas bรกsicos en sistemas concurrentes


MUTEX


SEMÁFOROS


COLAS

Productor

Consumidor


Técnicas/Frameworks para desarrollo concurrente ● Máquinas de estado finito ● FreeRTOS

● Protothreads ● Cocoos ● µC/OS-II ● QNX


Ejemplos de sistemas embebidos concurrentes


ALARMA DE VEHÍCULO No tiempo real


Tareas concurrentes de alarmas PUNTILLA CAPOT

SIRENA

SUN ROOF

MOTOR BAUL

MÓDULO VIDRIOS

SENSOR PUERTA

LUCES

FRENO

PULSADOR VALET

IGNICIÓN

MÓDULO BLOQUEO

VIBRO SENSOR


TABLERO MENSAJES VARIABLES (tiempo real)


Tareas concurrentes de tablero


GRACIAS ! fabiorov@gmail.com


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.