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 RTOS
como 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 RTOS
generalmente de diseño de bajo consumo son las siguientes:
Cuando la
Idle
tarea 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 OS
sistema genera una interrupción, también se MCU
despertará del modo de bajo consumo, y la entrada frecuente al modo de bajo consumo/despertar del modo de bajo consumo hará que MCU
imposible Entrar en un sueño profundo tampoco es razonable para los diseños de bajo consumo.
FreeRTOS
Se proporciona un patrón de diseño de bajo consumo - , que Tickless Idle Mode
le permite permanecer en el modo de bajo consumo durante MCU
períodos de tiempo más prolongados.
Principio e implementación del modo inactivo sin garrapatas
Análisis de escenario
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
, T4
es RTOS
el punto de referencia de intervalo de tiempo de , y hay cuatro tareas TaskA
, TaskB
, TaskC
, TaskD
:
Task A
, una tarea periódicaTask B
, tareas periódicasTask C
, tareas emergentesTask 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 ( RTOS
la Idle
tarea se programará para ejecutarse en este momento, y el objetivo del diseño del software debe ser hacer que MCU
la Idle
tarea se ejecute en un tiempo bajo ). -modo de potencia tanto como sea posible).
1.Idle1
Idle
Durante 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 MCU
que se Idle1
mantenga en modo de bajo consumo durante , por lo tanto, ajuste la interrupción del temporizador del sistema de manera adecuada para que T1
la interrupción del reloj del sistema no se active cuando y el punto de activación de la interrupción se establezca Task B
cuando llegue.
2. Inactivo2
Task C
Despertar 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 Idle2
situación , pero el Idle3
tiempo 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 Idle1
situación que .
Principio de diseño de software de Tickless Idle Mode
Tickless Idle Mode
La idea de diseño es ponerlo en un modo de bajo consumo cuando esté MCU
inactivo . 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
MCU
frecuente entre el modo de bajo consumo y el modo operativo);RTOS
el reloj del sistema se origina en un temporizador periódico en el hardware (Cortex-M
utilizado principalmente por los núcleos de la serieSysTick
) yRTOS
la 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 evitarRTOS
ingresar 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 decirTickless
).Compensa el reloj del sistema de alguna manera cuando
MCU
se despierta.MCU
Puede 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 ejecutaMCU
en modo de bajo consumo.MCU
despierta -En la implementación de software, los problemas deben manejarse de acuerdo con escenarios de aplicación específicos y características de
MCU
bajo consumo de energía. En particular,MCU
las características de bajo consumo de energía deMCU
los periféricos (principalmente temporizadores) que se pueden usar en diferentes modos de bajo consumo de energía son diferentes, yRTOS
el reloj del sistema se puede ajustar adecuadamente.
Implementación del modo inactivo sin cosquillas
Tomando la STM32F407
serie como ejemplo , lo primero que hay mododemodoMCU
que tener claro es MCU
el .F407
Sleep
Stop
Standby
RTOS
SRAM
RTOS
Sleep
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
STM32
Hay diferentes series en la familia, especialmente la serie L diseñada para aplicaciones de bajo consumo, para las cuales las funciones de RTOS
bajo 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 RTC
o Systick
como 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...
Haz clic en la tarjeta de arriba para seguirme
Todo lo que pediste se ve bien , lo tomo en serio ya que me gusta