Este artículo dará un primer vistazo a los sistemas integrados en tiempo real, incluidas las clasificaciones, las restricciones y los patrones de diseño.
Una de las áreas de ingeniería eléctrica e informática más emocionantes, pero desafiantes, es el diseño de sistemas integrados. Si no está seguro de qué es el diseño del sistema integrado, consulte los enlaces anteriores antes de continuar con este artículo. Parte de lo que hace que el diseño del sistema integrado sea tan desafiante son las numerosas limitaciones de diseño que requiere cualquier sistema integrado. Estos pueden incluir el consumo de energía, la memoria limitada, la disponibilidad de E / S, la temperatura, las restricciones espaciales y, por supuesto, el costo general. Para algunos sistemas integrados, una limitación particularmente importante es el tiempo.
Cuando un sistema tiene que responder a un evento o solicitud dentro de un tiempo estrictamente definido, lo llamamos un sistema en tiempo real. Este tiempo definido se conoce como una fecha límite. Estos sistemas deben ser predecibles y, por lo tanto, son deterministas por definición.
Si un sistema de tiempo real está integrado, lo llamamos un sistema integrado de tiempo real. Usamos estos dos términos indistintamente en este artículo. Los ejemplos de sistemas integrados en tiempo real son aplicaciones "de misión crítica" como controles de aviones, sistemas de frenos antibloqueo, marcapasos y controladores lógicos programables.
Un sistema en tiempo real se puede clasificar en función de la aceptabilidad de perder sus restricciones de tiempo. Si omitir una restricción de tiempo es absolutamente inaceptable, por ejemplo, si esto podría resultar en una pérdida de vidas humanas, llamamos a esto un difícil Sistema en tiempo real. El marcapasos mencionado anteriormente es un ejemplo de esto.
Si faltar una restricción de tiempo es aceptable pero indeseable lo llamamos un suave Sistema en tiempo real. Los sistemas de correo electrónico, los enrutadores inalámbricos y su caja de cable tienen restricciones en tiempo real que están diseñados para cumplir. Aun así, las consecuencias de no cumplir esos plazos suelen ser pequeñas o insignificantes, por ejemplo, puede que te moleste porque tu programa de televisión favorito tiene que amortiguarse por un segundo. Cuando un sistema de tiempo real suave pierde un plazo para una operación dada, la operación no pierde inmediatamente todo su valor. En su lugar, el valor disminuye con el tiempo, es decir, disminuye hacia cero a medida que el tiempo avanza más allá de la fecha límite (vea la Figura 1, a la izquierda).
Existen muchos sistemas en un espectro de difícil a suave, donde no es inaceptable perder una fecha límite, pero al hacerlo, la operación que se está realizando pierde inmediatamente todo su valor. Los sistemas que se encuentran dentro de este espectro a menudo se denominan firma Sistemas en tiempo real (ver Figura 1, centro).
En un sistema de tiempo real difícil, una fecha límite perdida crea no solo una pérdida completa de valor sino también un valor negativo, es decir, daño (vea la Figura 1, derecha).
Cada sistema en tiempo real tiene un conjunto de restricciones de tiempo que ha sido diseñado para cumplir. Si un sistema no tiene restricciones de tiempo, no es en tiempo real. Estas restricciones de tiempo se pueden dividir en dos categorías: respuesta a eventos y programación de tareas.
Un evento es un estímulo al que el sistema debe responder. Estos pueden iniciarse tanto en el hardware como en el software, e indican que algo ocurrió y debe tratarse. Un evento puede parecer más familiar cuando se presenta en forma de una interrupción interna o externa. Por ejemplo, cuando se presiona un botón, el sistema puede detectar esto y realizar las operaciones necesarias. Los eventos pueden generarse en cualquier momento en que el sistema detecte un cambio. El tiempo entre el momento en que un sistema detecta un evento y el momento en que responde a ese evento se llama latencia. La latencia se define como el tiempo de respuesta menos el tiempo de detección.
L = Tr - Tre
Una tarea es un conjunto de instrucciones que debe ejecutar el procesador del sistema. Algunos diseñadores de sistemas en tiempo real preferirán programar tareas, especialmente si se ejecutarán periódicamente. Muchos sistemas integrados necesitan detectar repetidamente una cantidad de entradas y luego modificar salidas en base a esta nueva información. Este tipo de sistemas se prestan al uso de tareas. Estas tareas normalmente se programan y ejecutan utilizando una construcción de software llamada programador. El tiempo entre cuando se supone que una tarea programada debe ejecutarse y cuando realmente se ejecuta se denomina fluctuación de fase. La fluctuación de fase se define como el tiempo real menos el tiempo deseado.
J = Tuna - Tre
Independientemente de si un sistema en tiempo real utiliza la respuesta a eventos, la programación de tareas o ambos, el objetivo final es tener la menor latencia y fluctuación de fase posibles, al tiempo que se define un límite superior (el peor de los casos) que se considera aceptable.
¿Cómo se hace para diseñar un sistema integrado en tiempo real? A medida que los requisitos del sistema crecen y las restricciones de tiempo se vuelven más estrictas, se hace cada vez más difícil administrar todas las necesidades de un sistema integrado al tiempo que se cumplen los plazos. A continuación se presentan algunos principios bien establecidos utilizados en toda la industria.
La programación de round-robin es uno de los algoritmos de programación más conocidos y ampliamente utilizados para administrar las restricciones de un sistema en tiempo real. Funciona tal como lo sugiere su nombre: le da a cada componente del sistema un turno para usar los recursos compartidos y completar la tarea deseada. La Figura 2, a continuación, muestra una CPU que le da a cada tarea 500 ms de tiempo de procesamiento antes de pasar a la siguiente tarea. Las tareas pueden o no completarse dentro de los 500 ms, y con frecuencia retomarán donde las dejaron cuando llegue su turno.
Otra construcción útil en sistemas en tiempo real es la cola. Una cola puede considerarse como una línea de producción donde los artículos entran y esperan para ser procesados. Cuando está listo, el sistema elimina el siguiente elemento de la cola y lo maneja. De esta manera, una nueva tarea que debe realizarse se puede colocar en la cola y esperará mientras el sistema se encarga de las tareas anteriores. Eventualmente, se trata la nueva tarea, incluso a medida que más tareas vienen detrás de ella. La Figura 3 muestra una cola de primero en entrar, primero en salir (FIFO), donde la Tarea C permanece en la cola hasta que tanto la Tarea A como la Tarea B se hayan procesado.
Hay un punto en el diseño e implementación de un sistema en tiempo real cuando la sobrecarga de administrar las restricciones de tiempo es tan grande que ya no es posible usar un patrón o principio de diseño único. Es en este punto que un sistema operativo en tiempo real se convierte en la solución más adecuada. Un sistema operativo en tiempo real, o RTOS (pronunciado R-sorteo), utiliza los patrones de diseño de programación y puesta en cola, pero agrega una funcionalidad adicional que incluye prioridad de tareas, manejo de interrupciones, comunicaciones entre tareas, sistemas de archivos, multihilo y Más. Todo esto resulta en el método más efectivo para cumplir y exceder los objetivos de tiempo limitado.
Los sistemas operativos populares en tiempo real incluyen VxWorks, QNX, eCos, MbedOS y FreeRTOS. Los dos primeros de la lista anterior son propietarios, pero los otros tres se pueden utilizar de forma gratuita. MbedOS trabaja con la plataforma Mbed de Arm, y FreeRTOS se ha trasladado a muchos microcontroladores diferentes. Podemos explorar la puesta en marcha de uno de estos en un artículo futuro.
En este artículo, tomamos una visión de alto nivel de los sistemas integrados en tiempo real, con un enfoque en cómo se clasifican y definen estos tipos de sistemas. Clasificamos un sistema en tiempo real según qué tan aceptable es que el sistema no cumpla con una fecha límite, y cuáles son las consecuencias de no cumplirlas. También discutimos las restricciones de tiempo y tres métodos comunes de organización e implementación de un sistema en tiempo real.
Al ser una introducción, este artículo se centró más en una comprensión conceptual y menos en el conocimiento práctico. Aun así, con la comprensión de estos conceptos, un microcontrolador y un RTOS, podría habilitar su próximo diseño para resolver problemas que anteriormente estaban fuera de alcance.
ga('create', 'UA-1454132-1', 'auto'); ga('require', 'GTM-MMWSMVL'); ga('require', 'displayfeatures'); ga('set',{'dimension1':'embedded,embedded-software,computers-peripherals,embedded,industrial'}); ga('set',{'contentGroup1':'embedded,embedded-software,computers-peripherals,embedded,industrial'}); ga('send', 'pageview');
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1808435332737507'); // Insert your pixel ID here. fbq('track', 'PageView'); fbq('track', 'ViewContent', { content_ids: ['embedded','embedded-software','computers-peripherals','embedded','industrial'], content_type: 'category'});
_linkedin_data_partner_id = "353081"; (function(){var s = document.getElementsByTagName("script")[0]; var b = document.createElement("script"); b.type = "text/javascript";b.async = true; b.src = "https://snap.licdn.com/li.lms-analytics/insight.min.js"; s.parentNode.insertBefore(b, s);})(); } if(jstz.determine().name().indexOf("Europe") === -1) { showSocialCode(); // NOT EU } else { showSocialCode(); window.addEventListener("load", function () { window.cookieconsent.initialise({ "palette": { "popup": { "background": "#252e39" }, "button": { "background": "#14a7d0" } }, "type": "opt-out", "content": { "message": "This website uses tracking cookies to ensure you get the best experience on our website.", "href": "https://www.allaboutcircuits.com/privacy-policy/", "dismiss": "OK, GOT IT" }, onInitialise: function (status) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },
onStatusChange: function (status, chosenBefore) { var type = this.options.type; var didConsent = this.hasConsented(); if (type == 'opt-out' && didConsent) { console.log("eu"); //showSocialCode(); } },
onRevokeChoice: function () { var type = this.options.type; if (type == 'opt-out') { console.log("eu"); //showSocialCode(); } },
}) }); }
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…