powertrace 输出以计时器刻度打印。
-
tx - 无线电处于传输模式的滴答数 (ENERGEST_TYPE_TRANSMIT)
-
rx - 收音机处于接收模式的滴答数 (ENERGEST_TYPE_LISTEN)
-
cpu - CPU 处于活动模式的滴答数 (ENERGEST_TYPE_CPU)
-
cpu_idle - CPU 处于空闲模式的滴答数 (ENERGEST_TYPE_LPM)
tx 和 rx 对的元素是互斥的,cpu 和 idle 也是如此 - 系统永远不能同时处于两种模式。但是,其他组合也是可能的:例如,它可以同时位于cpu 和tx 中。 cpu 和 idle 的总和是系统的总正常运行时间。
计时器一个滴答的持续时间取决于平台,并定义为RTIMER_ARCH_SECOND 常量。每秒 32768 滴答是这个常数的典型值——这就是方程中数字的来源。例如:
ticks_in_tx_mode = energest_type_time(ENERGEST_TYPE_TRANSMIT);
seconds_in_tx_mode = ticks_in_tx_mode / RTIMER_ARCH_SECOND;
要计算平均电流消耗(以 毫安、mA 为单位),请将 tx、rx、@987654342 中的每一个相乘@, cpu_idle 分别在该模式下的电流消耗以 mA 为单位(从节点的数据表中获取值),将它们相加,然后除以 RTIMER_ARCH_SECOND:
current = (tx * current_tx_mode + rx * current_rx_mode + \
cpu * current_cpu + cpu_idle * current_idle) / RTIMER_ARCH_SECOND
要计算 电荷(单位为 毫库仑,mC),请将平均电流消耗乘以测量持续时间(节点的正常运行时间)以秒为单位:
charge = current * (cpu + cpu_idle) / RTIMER_ARCH_SECOND
要计算 功率(单位为 毫瓦,mW),将平均电流消耗乘以系统电压,例如,3如果由一对 AA 电池供电,则为伏特:
power = current * voltage
最后,计算能量消耗(单位为毫焦耳,mJ),将功率乘以持续时间(以秒为单位)或乘以电荷与系统电压:
energy = charge * voltage
上面的第一个公式计算了通信的能量消耗;第二个:用于计算。
这个site 可能有助于分解数字。