Máquinas de estado de poder y explotabilidad inherentes

2

Estoy trabajando para comprender las máquinas de estado de energía con respecto a los dispositivos informáticos móviles. La mayor parte de la información sobre este tema parece derivarse de este artículo . No es particularmente importante para la pregunta, pero pensé que proporcionaría un contexto del origen de mi información.

Aquí está la pregunta: con una máquina de estado de energía, el Ttr (tiempo de transición total) se puede calcular como: Ttr=Ton,off + Toff,on donde Ton, off es el tiempo que toma la transición de encendido a un estado de energía menor.

Para calcular la potencia total consumida durante una transición, la fórmula: Se utiliza Ptr = (Ton,off * Pon,off +Toff,on * Poff,on)/Ttr .

Mi primer poco de confusión tiene que ver con las variables Pon, off, Poff. Supongo que estos son los estados de encendido y apagado en consecuencia, por lo que para run- > idle- > run, los estados de poder serían 400 y 50?

La siguiente parte tiene que ver con la explotabilidad inherente. Dado un período de inactividad, el uso de esta fórmula calculará la energía que ahorrará: Es(T-idle) = (T-idle-Ttr)(Pon-Poff)+Ttr(Pon-Ptr)

Entonces, usando esta fórmula para un tiempo de inactividad de 1000 microsegundos obtuve: Es(1000) = (1000-20)(400-50)+20(400-225) . - El resultado de esto es más de 3.5 millones de mw, lo que obviamente es absurdo. ¿A dónde me voy mal aquí? Es difícil encontrar información sobre este tema fuera del documento al que hice referencia, además de otros sitios, haciendo referencia a ese documento. Gracias!

    
pregunta Solsma Dev

1 respuesta

1

Creo que la OQ del OP se ha respondido en los comentarios.

No puedo agregar comentarios todavía, pero me gustaría agregar algunos detalles sobre las máquinas de estado para cualquiera que se vincule a esto.

Este es el código (pseudo) mínimo para un microcontrolador en ejecución:

[Power on]
1: Initialize(); //Clock and other hardware
2: Goto 4; //void Main()
3: "Crash"/unhandled Exception/activate watchdog timer/undefined
4: NOP; //NoOPeration = do nothing; uploaded user code goes here
5: Goto 4; //User code typically runs in an infinite loop
6: Goto 3; //void Main() does not typically ever return

Mientras se mantenga el bucle infinito, el controlador está ejecutando el código de usuario o "inactivo". El artículo vinculado al OP muestra la burbuja inactiva sub-texted con "esperar la interrupción". En mi experiencia con los microcontroladores, no hay "estado" para inactivo; La inactividad simplemente ocurre cuando no hay nada más que hacer.

El código de usuario puede, en cualquier momento, detectar que no tiene nada que hacer y decirle al procesador que espere las interrupciones y / o que consuma poca energía.

WFI(); //Block execution until an interrupt fires

y / o

LOW_POWER_REGISTER &= 0x01; //Physically power-down peripherals and reduce clock speeds

Si lo desea, el código de usuario puede ingresar en un modo de bajo consumo personalizado o específico y luego, también, WFI (). WFI () tiene una posibilidad muy alta de ahorrar energía ya que suspende el código de usuario, pero también puede invocar una o más funciones de ahorro de energía de hardware integrado.

La interrupción que despierta al controlador será responsable de restaurar cualquier estado de energía que al dejar WFI () no se restaure automáticamente. Normalmente, WFI () se usa para pausar hasta que uno o más pines de entrada cambien. Un "pin" observado puede ser un terminal de soldadura real, o adjuntarse, internamente, a periféricos como un temporizador.

No pude definir "explotabilidad inherente", incluso con la ayuda de Google. El verdadero problema con las transferencias de estado de energía que toman demasiado tiempo es la pérdida de datos. Si los datos recibidos de forma asíncrona es lo que despierta al controlador, una parte del paquete se pierde antes de que el controlador se despierte. El envío de un byte de "activación" de "no hacer nada" desde el host antes de que los datos reales sean ligeros y garantiza que todos los receptores estén activos y listos para recibir.

    
respondido por el Jon

Lea otras preguntas en las etiquetas