| Literature DB >> 26393604 |
Marlon Navia1, Jose C Campelo2, Alberto Bonastre3, Rafael Ors4, Juan V Capella2, Juan J Serrano5.
Abstract
Several systems have been proposed to monitor wireless sensor networks (WSN). These systems may be active (causing a high degree of intrusion) or passive (low observability inside the nodes). This paper presents the implementation of an active hybrid (hardware and software) monitor with low intrusion. It is based on the addition to the sensor node of a monitor node (hardware part) which, through a standard interface, is able to receive the monitoring information sent by a piece of software executed in the sensor node. The intrusion on time, code, and energy caused in the sensor nodes by the monitor is evaluated as a function of data size and the interface used. Then different interfaces, commonly available in sensor nodes, are evaluated: serial transmission (USART), serial peripheral interface (SPI), and parallel. The proposed hybrid monitor provides highly detailed information, barely disturbed by the measurement tool (interference), about the behavior of the WSN that may be used to evaluate many properties such as performance, dependability, security, etc. Monitor nodes are self-powered and may be removed after the monitoring campaign to be reused in other campaigns and/or WSNs. No other hardware-independent monitoring platforms with such low interference have been found in the literature.Entities:
Keywords: hybrid monitor; intrusion; monitoring; wireless sensor networks
Year: 2015 PMID: 26393604 PMCID: PMC4610572 DOI: 10.3390/s150923927
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Architecture of the proposed hybrid monitor.
Figure 2Implementation of the proposed hybrid monitor.
Figure 3Hybrid monitor operation outline.
Figure 4Flowchart of hybrid monitor operation.
Example of 4-bit event codes.
| Code | Meaning |
|---|---|
| #define Log_Reset 0x00 | //Node Reset/Initialization |
| #define Log_Sense0 0x01 | //Read sensor 0 (first/unique) |
| #define Log_Sense1 0x02 | //Read sensor 1 (second, if it exists) |
| #define Log_Sense2 0x03 | //Read sensor 2 (third, if it exists) |
| #define Log_Wakeup 0x04 | //Wake up from sleep/stop |
| #define Log_RxData 0x05 | //Node receives data |
| #define Log_TxData 0x06 | //Node sends data |
| #define Log_RxACK 0x07 | //Node receives ACK |
| #define Log_RRoute 0x08 | //Node reroutes data (if applicable) |
| #define Log_Sleep 0x09 | //Node goes to sleep mode |
| #define Log_Stop 0x0A | //Node goes to stop mode |
| #define Log_LowBat 0x0B | //Low battery indication |
| #define Log_SinkRx 0x0C | //Sink receives data |
| #define Log_SinkTx 0x0D | //Sink sends data |
| #define Log_SinkEr 0x0E | //Error in sink |
| #define Log_Error 0x0F | //Error in node |
Figure 5Monitor node connected to sensor node.
Sample of software trap program code for parallel interface.
| int main (void){ // application code |
| … |
| TempValue = LM75_ReadTemp(0x94); |
| TempCels = TempValue >> 4; |
| temper = TempCels * 0.0625; |
| |
| SendValue(temper); |
| … |
| } // end application code |
| void WriteLog (uint8_t cod, uint8_t val){ |
| uint16_t buff = cod | (val<<8); //Prepare buffer = code + value |
| GPIO_Write(GPIOB, buff); // put buffer through parallel port |
| GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_SET); // Write pulse (up) |
| GPIO_WriteBit(GPIOA, GPIO_Pin_0, Bit_RESET); // Write pulse (down) |
| } |
Figure 6Information recovered from the SD card attached to the monitor node.
Time intrusion in sensor node for each log event (ms).
| Data Size | Parallel (16 Bits) | SPI 18 mbps | SPI 4.5 mbps | SPI 2.25 mbps | USART 115.2 kbps |
|---|---|---|---|---|---|
| 16 bits | 3.80 | 3.10 | 3.10 | 3.20 | 6.20 |
| 32 bits | 7.30 | 6.10 | 6.20 | 6.20 | 13.60 |
| 64 bits | 16.50 | 13.00 | 13.10 | 13.10 | 28.80 |
| 128 bits | 31.90 | 28.10 | 28.10 | 28.20 | 60.60 |
Figure 7Time outline for event log generation.
Processing time in monitor node for each event log (ms).
| Data Size | Parallel (16 Bits) | SPI 18 mbps | SPI 4.5 mbps | SPI 2.25 mbps | USART 115.2 kbps |
|---|---|---|---|---|---|
| 16 bits | 17.80 | 17.40 | 17.40 | 17.40 | 88.40 |
| 32 bits | 22.90 | 23.40 | 25.40 | 27.80 | 262.00 |
| 64 bits | 32.90 | 34.40 | 40.10 | 48.20 | 612.00 |
| 128 bits | 52.80 | 56.20 | 69.80 | 88.00 | 1300.00 |
Intrusion on code: Initialization and one event log (bytes).
| Interface | 16 Bits | 32 Bits | 64 Bits | 128 Bits |
|---|---|---|---|---|
| Parallel | 228 | 252 | 268 | 276 |
| SPI | 428 | 452 | 468 | 476 |
| USART | 292 | 316 | 332 | 340 |
Current increment due to monitoring operation by interface.
| Interface | Measured Current (mA) | Increase on Non-Monitored Operation |
|---|---|---|
| Parallel | 22.74 | 0.92% |
| SPI | 23.08 | 2.38% |
| USART | 22.86 | 1.44% |
Energy Intrusion (%) per event.
| Data Size | Parallel (16 Bits) | SPI 18 mbps | SPI 4.5 mbps | SPI 2.25 mbps | USART 115.2 kbps |
|---|---|---|---|---|---|
| 16 bits | 1.00% | 2.50% | 2.50% | 2.50% | 1.57% |
| 32 bits | 1.06% | 2.55% | 2.55% | 2.55% | 1.70% |
| 64 bits | 1.22% | 2.67% | 2.67% | 2.67% | 1.97% |
| 128 bits | 1.49% | 2.94% | 2.94% | 2.94% | 2.52% |
Preference index of each sensor-monitor interface.
| Parallel (16 Bits) | SPI 18 mbps | SPI 4.5 mbps | SPI 2.25 mbps | USART 115.2 kbps | |
|---|---|---|---|---|---|
| Time Intrusion | 4 | 1 | 2 | 3 | 5 |
| Code Intrusion | 1 | 3 | 4 | 5 | 2 |
| Energy Intrusion | 1 | 3 | 4 | 5 | 2 |
Figure 8Percentages of time intrusion (128 bits/4 event logs).