Principio e implementación del sistema en tiempo real de bajo consumo de energía, solución muy práctica

Haga clic en "Uncle Wheat" arriba y seleccione "Cuenta pública superior/estrella"

Productos secos de bienestar, entregados lo antes posible.

prefacio

En la actualidad, cada vez más productos integrados se utilizan RTOScomo y, al mismo tiempo, los requisitos de bajo consumo de energía en el desarrollo son cada vez más altos. Este artículo discutirá cómo lidiar con el bajo consumo de energía de los microcontroladores en RTOS.característico .

El mecanismo de programación de tareas preventivas basado en la rotación de intervalos de tiempo se usa RTOSgeneralmente de diseño de bajo consumo son las siguientes:

  • Cuando la Idletarea se esté ejecutando, ingrese al modo de bajo consumo;

  • Despertar por interrupción o evento externo en condiciones apropiadas MCU.

Sin embargo, se puede ver en el segundo punto que cada vez que el temporizador del OSsistema genera una interrupción, también se MCUdespertará del modo de bajo consumo, y la entrada frecuente al modo de bajo consumo/despertar del modo de bajo consumo hará que MCUimposible Entrar en un sueño profundo tampoco es razonable para los diseños de bajo consumo.

FreeRTOSSe proporciona un patrón de diseño de bajo consumo - , que Tickless Idle Modele permite permanecer en el modo de bajo consumo durante MCUperíodos de tiempo más prolongados.

Principio e implementación del modo inactivo sin garrapatas

Análisis de escenario

d5d469da10aa476faea27bf4d6f2a86f.png


La figura anterior es un diagrama esquemático de la programación de tareas, el eje horizontal es el eje de tiempo, T1, T2, T3, T4es RTOSel punto de referencia de intervalo de tiempo de , y hay cuatro tareas TaskA, TaskB, TaskC, TaskD:

  • Task A, una tarea periódica

  • Task B, tareas periódicas

  • Task C, tareas emergentes

  • Task D, una tarea periódica

En la figura se puede ver que habrá cuatro períodos de inactividad entre la programación de las cuatro tareas ( RTOSla Idletarea se programará para ejecutarse en este momento, y el objetivo del diseño del software debe ser hacer que MCUla Idletarea se ejecute en un tiempo bajo ). -modo de potencia tanto como sea posible).

1.Idle1

IdleDurante la ejecución de la tarea, se generará un tic del reloj del sistema y se activará en este momento MCU. Después de la activación MCU, ingresará nuevamente al modo de bajo consumo. Esta activación no tiene sentido. Se espera MCUque se Idle1mantenga en modo de bajo consumo durante , por lo tanto, ajuste la interrupción del temporizador del sistema de manera adecuada para que T1la interrupción del reloj del sistema no se active cuando y el punto de activación de la interrupción se establezca Task Bcuando llegue.

2. Inactivo2

Task CDespertar antes de que llegue el tic del sistema MCU(evento externo), puedeMCU estar en modo de bajo consumo todo el tiempo;Idle2

3.Inactivo3

Lo mismo que la Idle2situación , pero el Idle3tiempo es muy corto, si este tiempo es muy corto, entonces ingresar al modo de bajo consumo no tiene mucho sentido, por lo que el software debe agregar una estrategia al ingresar al modo de bajo consumo;

4. Inactivo4

Misma Idle1situación que .

Principio de diseño de software de Tickless Idle Mode

Tickless Idle ModeLa idea de diseño es ponerlo en un modo de bajo consumo cuando esté MCUinactivo . Del escenario anterior, se puede ver que los problemas que deben resolverse en el diseño de software son:

  • Ingrese razonablemente al modo de bajo consumo (evite el cambio innecesario MCUfrecuente entre el modo de bajo consumo y el modo operativo); RTOSel reloj del sistema se origina en un temporizador periódico en el hardware ( Cortex-Mutilizado principalmente por los núcleos de la serie SysTick) y RTOSla programación de tareas El temporizador puede esperar el tiempo de activación de la siguiente tarea periódica (o tarea del temporizador). Como se mencionó anteriormente, ajustar el tiempo de activación de la interrupción del temporizador del reloj del sistema puede evitar RTOSingresar interrupciones de tiempo innecesarias y, por lo tanto, permanecer bajo durante más tiempo. En el modo de energía, el reloj RTOS ya no es periódico pero dinámico (las interrupciones ya no se generarán en la referencia de reloj original, es decir Tickless).

  • Compensa el reloj del sistema de alguna manera cuando MCUse despierta. MCUPuede despertarse por dos situaciones, una interrupción del reloj del sistema ajustada dinámicamente o un evento externo repentino, en cualquier caso, puede calcularse mediante algún tipo de temporizador que se ejecuta MCUen modo de bajo consumo. MCUdespierta -

  • En la implementación de software, los problemas deben manejarse de acuerdo con escenarios de aplicación específicos y características de MCUbajo consumo de energía. En particular, MCUlas características de bajo consumo de energía de MCUlos periféricos (principalmente temporizadores) que se pueden usar en diferentes modos de bajo consumo de energía son diferentes, y RTOSel reloj del sistema se puede ajustar adecuadamente.

Implementación del modo inactivo sin cosquillas

Tomando la STM32F407serie como ejemplo , lo primero que hay mododemodoMCUque tener claro es MCUel .F407SleepStopStandbyRTOSSRAMRTOSSleep

0ae9fe7504d6182eb9af7f449b0279e0.png


1. Habilitar

#define configUSE_TICKLESS_IDLE    1

2. Tarea inactiva (llamada automáticamente cuando RTOS está inactivo)

3. Procesamiento en modo de bajo consumo (escriba el código de acuerdo con el modo de bajo consumo de la MCU, el código es un poco largo...)

Al final

STM32Hay diferentes series en la familia, especialmente la serie L diseñada para aplicaciones de bajo consumo, para las cuales las funciones de RTOSbajo consumo se pueden implementar de más formas (por ejemplo, cuando el núcleo deja de funcionar en un modo determinado, puede utilizar un temporizador externo RTCo Systickcomo un temporizador del sistema).

Transferido de la cuenta pública: aprender incrustados juntos

Declaración de derechos de autor: este artículo proviene de Internet y los derechos de autor pertenecen al autor original. Problemas de derechos de autor, póngase en contacto para eliminar.

-- El fin --

Recomendado en el pasado

¿Cómo se comunican las microcomputadoras de un solo chip de diferentes niveles?

Resumen de empresas en varios segmentos de la industria nacional de semiconductores

¿Cómo volver loco a un jefe de proyecto? Recuerda estos 10

Autoactualización del firmware de MCU, un método fiable y práctico

¿Cómo convertirse en un maestro? El camino avanzado del desarrollo embebido...

¿Cómo diseñar una solución confiable para la comunicación en serie de alta carga de una microcomputadora de un solo chip?

Haz clic en la tarjeta de arriba para seguirme

e846cbc9f736c94b47c7f0a694558d12.png

Todo lo que pediste se ve bien , lo tomo en serio ya que me gusta

Supongo que te gusta

Origin blog.csdn.net/u010632165/article/details/124014257
Recomendado
Clasificación