# A System-Level Methodology for the Design of Reliable Low-Power Wireless Sensor Networks
## 2 Sensor Node Energy Model
### Analytical Energy Model  
#### 2.3.1 Micro-Controller Unit (MCU)  
An MCU's central processing unit (CPU) core speed and current consumption can be assessed by running a benchmark algorithm. Several benchmarking algorithms have emerged, such as Fibonacci, Dhrystone, and CoreMark (CM) [51]. The latter was developed by the Embedded Microprocessor Benchmark Consortium (EEMBC) in 2009 and then quickly became the de facto standard for CPU core performance ratings. Most MCU manufacturers specify the current consumption of their products when running one or more benchmark algorithms, notably the industry standard CM, which is the benchmark considered in this work. This is important as the designer needs a guideline for estimating a specific application's power consumption, which can vary considerably from one benchmark algorithm to another [36]. Moreover, CM is an open-source portable program allowing designers to extract the current consumption of any MCU on the market when it is not provided by the manufacturer. Its source code is written in C and implements list processing, which manipulates the memory system using pointers to find and sort variables, matrices using common math operations such as the multiply and accumulate instruction, a state machine to evaluate data-dependent branch logic, and a cyclic redundancy check (CRC) to operate XOR gates, shifters, etc. Table 2 shows a comparison of the average current measurements in [52] to the predictions using CM, showing that the estimation of the average current consumption when using CM results in a 4% error margin, which is acceptable. It should be noted that for the Bluetooth low energy (BLE) current, the contribution of some peripherals has been taken into account and subtracted from the actual measured current in order to determine the 2.825 mA number. This is because CM only evaluates the MCU core. Therefore, it is safe to say that the CM benchmark represents a fairly close workload of a SN and is a reliable indicator of the power consumption of different MCUs. The measurement \begin{table}
\begin{tabular}{c c c} \hline \hline
**Parameter** & **Description** & **Purpose** \\ \hline \(V_{WMCU}\) & Operating voltage of the SoC & Power/Energy consumption \\ \(V_{SENS}\) & Operating voltage of the sensor & Power/Energy consumption \\ \(D_{R}\) & Data rate & TX and RX active times \\ \(f_{MCU}\) & MCU operating frequency & Active current/Processing time \\ \(\frac{f_{MCU}}{f_{TTAF}^{\star}}\) & Current consumption in each state & Power/Energy consumption \\ \(\frac{f_{MCU}}{f_{TTAF}^{\star}}\) & Current consumption in each state & Power/Energy consumption \\ \(\frac{f_{MCU}}{f_{PPH}}\) & Peripheral current consumption & Power/Energy consumption \\ \(I\) & Packet length & Transceiver active time \\ \(S_{REF}\) & Reference CoreMark score & Processing time/System latency \\ \(f_{REF}\) & Reference operating frequency & Processing time/System latency \\ \(f_{PROC\_REF}\) & Reference processing time & Processing time/System latency \\ \(S_{MCU}\) & Selected MCU’s CoreMark score & Processing time/System latency \\ \(T_{\text{OES}}\) & Temperature oversampling factor & Current consumption/System latency \\ \(H_{\text{OES}}\) & Humidity oversampling factor & Current consumption/System latency \\ \(P_{\text{OES}}\) & Pressure oversampling factor & Current consumption/System latency \\ \(\frac{\text{ISENSO}}{f_{STATE}}\) & Current consumption in each state & Power/Energy consumption \\ \hline \hline \end{tabular}  
* These parameters are specific to the BME280 sensor used in this work.  
\end{table} 
Table 1: Energy model parameters. setup presented in Figure 2 was used to measure the current consumption of the CC1310 wireless MCU that is depicted in Figure 3. The latter shows the processing period, the transmission of the data packet where the highest amount of current is observed, a standby period, and the reception of an acknowledgement (ACK).