Vous êtes sur la page 1sur 37

Instituto Tecnolgico de Quertaro

Estilos de Programacin de Microprocesadores

Noviembre 2004

Sistema Electrnico Digital:


RS-485 RS-232 Sensores analog. Referencias Controles Interruptores Teclados Sensores dig. Memoria EEPROM FLASH USB ETHERNET
Comunicaciones

CAN

RF

I2C Controladores 4-20 ma Funciones

Entradas analgicas

Salidas analgicas

Aplicacin
Entradas digitales

Salidas digitales

Perifricos

Reloj de tiempo real

Contadores

Exhibidores LEDs Control ON/OFF Valvulas Motores Temporizadores

Sistemas embebidos
Sistemas computacionales con las siguientes caractersticas : * Funcionamiento independiente. -Tpicamente diseados para desarrollar una funcin predefinida. * Sujeto a restricciones.
- Bajo costo. - Pocos componentes. - Ejecuta funciones lo suficientemente rpido. - Consume poca energa.

* Reactivo y de tiempo real.


- Monitorea contnuamente su ambiente y reacciona a cambios.

* Co-existencia de hardware y software.

Ejemplo: Aplicaciones automotrices

Ejemplo: Sistemas de comunicacin

Ejemplo: Aplicaciones aeroespaciales

Ejemplo: Sistemas de defensa

Tecnologa: Microcontroladores

Tecnologa: Microprocesadores

Tecnologa:

DSPs

Tecnologa:

ASICs

Tecnologa:

FPGAs

Diseo del hardware: SoC


RS-485 RS-232 Sensores Referencias Controles Interruptores Teclados Sensores Memoria EEPROM FLASH USB ETHERNET
Comunicaciones

CAN

RF

I2C Controladores 4-20 ma Funciones

Entradas analgicas

Salidas analgicas

Aplicacin
Entradas digitales

Salidas digitales

Perifricos

Reloj de tiempo real

Contadores

Exhibidores LEDs Control ON/OFF Valvulas Motores Temporizadores

Diseo del software:


* LENGUAJE ENSAMBLADOR.

* LENGUAJE C.
* C + ENSAMBLADOR.

Estilo de Programacin Actual: Sper-lazo General.


Nivel de tarea Background (fondo)

Funcin 1 Funcin 2 Funcin 3 Funcin n-1 Lazo infinito que llama a funciones

Tiempo

Funcin n

Caractersticas del SperLazo General.


* Estilo propio para sistemas pequeos y de muy baja complejidad.
* El tiempo de ejecucin del sper-lazo no es constante (no determinstico).

* Los dispositivos externos (E/S) interactuan con el software solo cuando son verificados (operacin polling).
* Se recomienda que las funciones sean tan independientes como sea posible (aplicaciones diferentes con poca interaccin). * Sistemas muy seguros y robustos.

Estilo de Programacin Actual: Sper-lazo Temporizado.


Nivel de tarea Background (fondo)

ISR
Interrupcin peridica del timer (TICK)

Funcin 1 Funcin 2 Funcin 3 Funcin n-1

Lazo temporizado
Tiempo

Funcin n

Caractersticas del SperLazo Temporizado.


* Inicio de la ejecucin de las funciones activado en forma peridica (TICK). * Periodo de ejecucin de la primera funcin es constante. * Dispositivos externos (E/S) verificados (operacin polling). * Sistemas muy seguros y robustos.

Estilo de Programacin Actual: Sper-lazo Interrupciones.


Nivel de tarea Background (fondo) Nivel de interrupcin Foreground (primer plano)

Funcin 1

Eventos asincronos

ISR
Funcin 2 Funcin 3 ISR Funcin n-1 Operaciones crticas en ISR

Funcin n

Lazo infinito que llama a funciones

Tiempo

Caractersticas del SperLazo con interrupciones.


* Atencin inmediata de dispositivos externos en base a interrupciones.
* Las Rutinas de Servicio a Interrupcin (ISR) tienen una tendencia a tardar mucho tiempo.

* La latencia de las interrupciones es alta.


* Pero... la mayora de aplicaciones de alto volumen basadas en microcontroladores son diseadas como sistemas foreground background (juguetes, electrodomsticos, telfonos, etc.).

Estilo de Programacin Actual: Sper-lazo.Interr. anidadas


Nivel de tarea Background (fondo) Nivel de interrupcin Foreground (primer plano)

Funcin 1 Funcin 2 Funcin 3

ISR
ISR ISR

Funcin n-1

Interrupciones anidadas Tiempo

Funcin n

Caractersticas del SperLazo Interrupciones Anidadas.


Permiten una verdadera prioridad de interrupciones:

El sistema siempre ejecuta la ISR de mas alta prioridad que esta lista (preemptivo). Pero... Es robusto y confiable?

Estilo de Programacin Actual: Sper-lazo. Solo interr.


Nivel de tarea Background (fondo) Nivel de interrupcin Foreground (primer plano)

Funcin Principal
No Procesamiento
(CPU solo en espera de Interrupciones)

ISR 0

ISR 3
ISR n

ISR 1

ISR 2

Tiempo

Caractersticas del SperLazo Solo interrupciones.


El CPU no trabaja todo el tiempo, solo opera cuando necesita atender una ISR Mientras no trabaja, el CPU puede estar en modo de bajo consumo de energa
(aplicaciones basadas en microcontrolador)

Cuidado con el uso de interrupciones!


Riesgo en el paso de datos de interrupciones a funciones : Las interrupciones pueden interferir con el procesamiento de datos de una funcin (task). Solucin: utilizar buffers independientes para interrupcines y funcines. Actualizar el buffer de funciones con una interrupcin peridica.

Pregunta:
Los estilo de programacin anteriores nos permiten desarrollar equipos, sistemas y productos electrnicos de nivel comercial?

Equipos electrnicos comerciales.

Caractersticas de los sistemas comerciales:


* Aplicaciones sofisticadas. * Sistemas robustos y totalmente seguros. * Varias tareas que atender en forma simultnea, unas mas importantes que otras. * Generalmente la precisin del tiempo de ejecucin de las tareas es mas importante que su velocidad de ejecucin: Tiempo de ejecucin de las tareas y servicios determinstico * Uso eficiente de los recursos. * FACILES DE DISEAR Y MODIFICAR.

Clave de los sist. comerciales: utilizan un RTOS (Kernel).

Tarea
Programa simple que piensa que tiene todo el CPU para si mismo. A cada tarea se le asigna una prioridad, tiene su propio conjunto de registros del CPU y su propia rea de stack.

CPU
REGISTROS

TASK
STACK
PRIORIDAD

Sistema Multitareas
UN SOLO CPU ATIENDE VARIAS TAREAS
(prioridad a)

Tarea 1
Stack T1

(prioridad b)

Tarea 2
Stack T2

(prioridad z)

Tarea n
Stack Tn

Registros CPU T1

Registros CPU T2

Registros CPU Tn

CPU

Estados de una tarea

KERNEL
* Software de un sistema multitarea responsable de la administracin y comunicacin entre tareas.
* El servicio fundamental que proporciona el Kernel es la conmutacin de contexto.

NECESIDADES DEL CPU


* Un Kernel utiliza de 2% a 5% del tiempo del CPU. * Se requiere espacio en ROM para el programa del Kernel. * Cada tarea utiliza un stack propio (+RAM).

Como aprender a utilizar un Kernel?


Libros recomendados:
Autor: Jean J. Labrosse (Incluyen CD con Kernel)

www.ucos-ii.com

Conclusiones
* Casi todos los equipos y productos electrnicos actuales son sistemas embebidos. * Estos son sistemas robustos y seguros.

* Deben ser fciles de disear y modificar.


* Su programacin es tradicional o en base aun RTOS (Kernel).

* Pero...DESPUES DE DISEAR UN SISTEMA USANDO UN KERNEL DE TIEMPO REAL, YA NO SE QUERRA REGRESAR A LOS SISTEMAS FOREGROUND/BACKGROUND.

FIN
GRACIAS

Vous aimerez peut-être aussi