miércoles, 2 de abril de 2014

Por qué usar RTOS en Micros? RTuinOS vs Arduino.

Arduino ( www.arduino.cc ) es una plataforma que integra hardware y software abierto con controladores para diversos fines, en donde el principal objetivo es disminuir el tiempo de diseño y proyectos, así como cuenta con un grupo desarrollador en donde actualiza casi bimensualmente los drives y ejemplos.  

Arduino es un concepto de diseño que viene junto con un sencillo IDE para ser usado en el desarrollo integral de proyecto empleando Micros, que contiene una cantidad de herramientas completas para escribir código fuente tanto en amsembler y C. 



Con el IDE de desarrollo puedes navegar a través de muestras de ejemplo y bibliotecas, para compilar y enlazar el software
y subirlo al bloque memoria y flashear (cargarla en el micro). 

El proyecto RTuinOS (pagina oficial RTuinOS) añade al proyecto Arduino un nuevo paradigma en la programación de un sistema operativo en tiempo real(claro con su limitaciones sobre todo en Timers).

Los Sistemas operativos en tiempo real, o RTOS, simplifican y le da robustez a las aplicaciones de programación de bucle extendidos o programacion procedimental, ya que existe un control de entradas y salidas en donde se establecen en consecuencia todos "procesos" en fracciones de tiempo exacto (es allí donde nace la necesidad de quitar un timer del micro). Por ejemplo, el controlador de temperatura para un instalación de calefacción se podría diseñar de esta manera:


Sensores de temperatura, que informan de las temperaturas ambientales que son evaluadas en un proceso de control y el proceso del quemador y tal vez algunas válvulas que controlan para producir la temperatura objetivo deseada. Dichos procesos corren de manera "Pseudo Paralela".



Además , el uso de un sistema en tiempo real el programa podría casualmente actualizar periódicamente un proceso llamado pantalla que espera un aviso o mensaje de otro proceso para dar información. Es allí la necesidad de diferenciar la Programación regular, se evalua el proceso el tiempo que dure y hasta que no termine no pasa al otro proceso en un esquema de bucles, mediante esta programación el micro no optimiza los delays de proceso por lo que el micro se queda haciendo tiempo sin uso importante; las librerías de Arduino son procedimientos que debn finalizar para dar paso a otros. Mientras que el uso de Sistemas operativos en tiempo real se caracterizar por el uso profesional de micro controladores en tiempos y procedimientos con su optimización tácita.


RTuinOS, es un pequeño sistema en tiempo real de funcionamiento ( RTOS ) para la plataforma Arduino, es fácil de usar y se ajusta bien a las librerías y código del Arduino, evidentemente se añade el concepto de hilos o "procesos" de ejecución pseudo paraleloa la aplicación. Pensar en OS sobre Arduino es pensar en procesos corriendo a la vez en donde cada proceso se comunican entre sí para llegar a un fin.


El esquema tradicional Arduino tiene dos puntos de entrada; la configuración de la función, que es el lugar para poner el código de inicialización necesario para ejecutar elbosquejo y la función de bucle, que se llama periódicamente; empleando el esquema de PLC equipo. La frecuencia de losbucle no es determinista, pero depende del tiempo de ejecución del código dentro del bucle (problema del esquema Arduino).



Usando RTuinOS, las dos funciones mencionadas continúan existiendo y continuan teniendo el mismo significado. Sin embargo, como parte de la inicialización de código en
configuración se puede definir una serie de tareas que tienen propiedades individuales (tiempo de cronogramas por procedimiento), la propiedad más relevante de una tarea es una función de código C, que se convierte en el
llamada a la función de la tarea. Una vez que entra en el bucle tradicional Arduino, todo estas funciones de trabajo se ejecutan en paralelo entre sí y la ejecución repetida de bucle de la función. Decimos, que un bucle se convierte en la tarea ociosa de el RTOS, de hecho un delay es una tarea ociosa tambien para el micro y el lo optimiza.


Una característica de RTuinOS es que el comportamiento de una tarea no es totalmente predeterminada en tiempo de compilación. RTuinOS apoya a regular y controla por tiempo la tareas, así como el cronograma de tareas. Las tareas pueden ser preventivas ocomportarse cooperativamente. La programación de tareas se puede hacer usando intervalos de tiempo y un patrón de round robin. Por otra parte, muchos de estos modos se pueden mezclar para lograr aun mas mejoras en el sistema a ser escalable. Una tarea esno por sí regular, su código implementar decide lo que pasa y esto puede decidirse en el contexto o situación dependiente. Esta flexibilidad es alcanzada por la idea básica de que tiene un planificador controlador de eventos, donde los casos de uso típico en RTOS son apoyados por proporcionar eventos de acuerdo a su uso. En muchas implementaciones de RTOS la característica, básica de una tarea está determinada por el tiempo de compilación, en RTuinOS esto se hace en parte con el tiempo de compilación y en parte con el tiempo de ejecución.RTuinOS se ofrece como un solo archivo de código fuente que se compila junto con su otro código, que ahora se convierte en una aplicación RTuinOS. En el caso más sencillo, solo basta con definir cualquier tarea, su aplicación
se parecen mucho a un esquema tradicional : se implementa la configuración y su función de bucle, el primero se llevará a cabo una vez al principio y al este último en varias ocasiones. RTuinOS por sí sola no puede ser compilado, es necesario que haya una aplicación. RTuinOS está organizado como un paquete que combina el archivo de origen RTuinOS con algunas aplicaciones de ejemplo que son los casos de prueba al mismo tiempo.El código fuente de cada aplicación de la muestra se mantiene en una carpeta separada, llamado tc <nn>. Cualquiera de ellos puede ser seleccionado para la compilación. Puede añadir más carpetas, manteniendo el código fuente de sus aplicaciones RTuinOS.

No hay comentarios:

Publicar un comentario