| Literature DB >> 22163678 |
Woojin Lee1, Juil Kim, JangMook Kang.
Abstract
In sensor networks, nodes must often operate in a demanding environment facing restrictions such as restricted computing resources, unreliable wireless communication and power shortages. Such factors make the development of ubiquitous sensor network (USN) applications challenging. To help developers construct a large amount of node software for sensor network applications easily and rapidly, this paper proposes an approach to the automated construction of node software for USN applications using attributes. In the proposed technique, application construction proceeds by first developing a model for the sensor network and then designing node software by setting the values of the predefined attributes. After that, the sensor network model and the design of node software are verified. The final source codes of the node software are automatically generated from the sensor network model. We illustrate the efficiency of the proposed technique by using a gas/light monitoring application through a case study of a Gas and Light Monitoring System based on the Nano-Qplus operating system. We evaluate the technique using a quantitative metric-the memory size of execution code for node software. Using the proposed approach, developers are able to easily construct sensor network applications and rapidly generate a large number of node softwares at a time in a ubiquitous sensor network environment.Entities:
Keywords: attributes; automated construction; model-based development; node software; ubiquitous sensor network application
Mesh:
Year: 2010 PMID: 22163678 PMCID: PMC3231214 DOI: 10.3390/s100908663
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1.USN application development framework.
Figure 2.Construction process of USN application.
The notation for the sensor network model.
| Node | Class | |
| Node Type | <<type name>> | Stereotype which represents the type of a class. <<SENSOR>>, <<ROUTER>>, <<SINK>>, <<ACTUATOR>>, <<SENSOR_ROUTER>>, <<ROUTER_SINK>>, <<ACTUATOR_ROUTER>>, |
| Association | Association between classes |
Figure 3.Attributes values setting for sink0.
Figure 4.The algorithm for generating node software.
Figure 5.Structure of the G&LM System.
The list of attribues for the design of node software based on Nano-Qplus.
| Development Attributes | nodeType | Choose one type among Sensor, Router, Sink and Actuator. |
| applicationAuthorName | Write information about application author. | |
| nodeID | Write identification number of node. | |
| adjacentActuatorNodeID | Write identification number of adjacent actuator node. | |
| PAN_Cordinator_Node_Enable | Decide whether the node is PAN coordinator. | |
| NON_BEACON_Enable | Decide whether the node uses BEACON. | |
| defaultMACAddr | Write MAC address. | |
| Default_Extended_MAC_Addr_Used | Decide whether the node uses extended MAC address. | |
| defaultExtendedMACAddr | Write extended MAC address if the node uses extended MAC address. | |
| associationPermitStartNodeID | Write identification number of the first node which is permitted to associate. | |
| associationPermitEndNodeID | Write identification number of the last node which is permitted to associate. | |
| nextHopRoutingFirstNodeID | Write identification of the next node in routing path. | |
| nextHopRoutingSecondNodeID | Write identification of the next alternative node in routing path. | |
| rfChannel | Write RF channel. If nodeType is Router or Sink, rfChannel should be set. | |
| scanChannel | Write scan channel. If nodeType is Sensor or Actuator, scan Channel should be set. | |
| Scheduler | Choose one among none, FIFO and PreemptionRR. | |
| Function Attributes | Zigbee RF | Choose one among Simple, IEEE802.15.4MAC and StarMesh. |
| EEPROM_Enable | Enable EEPROM module. | |
| Flash_Memory_Enable | Enable Flash Memory module. | |
| Timer_Enable | Enable timer module. | |
| UART | Choose one among none, printf_module, scanf_module and printf&scanf. | |
| LED_Enable | Enable LED module. | |
| RSSI_Enable | Enable RSSI module. | |
| Sensor_Battery_Enable | Enable Battery sensor module. | |
| Sensor_Temperature_Enable | Enable Temperature sensor module. | |
| Sensor_Light_Enable | Enable Light sensor module. | |
| Sensor_Gas_Enable | Enable Gas sensor module. | |
| Sensor_Point_infra_red_Enable | Enable Point_infra_red sensor module. | |
| Sensor_Humidity_Enable | Enable Humidity sensor module. | |
| Sensor_Ultra_sonic_Enable | Enable Ultra_sonic sensor module. | |
| Utility_Functions_Enable | Enable utility functions. | |
| Kernel_Debug_Functions_Enable | Enable kernel debug functions. | |
| System_Log_Functions_Enable | Enable system log functions. | |
The list of module code provided by Nano-Qplus corresponding to attributes.
| Timer_Enable | timer.h, timer.c |
| ADC_Enable | adc.h, adc.c |
| UART | printf.h, printf.c, scanf.h, scanf.c |
| EEPROM_Enable | eeprom.h, eeprom.c |
| LED_Enable | led.h, led.c |
| Scheduler | fifo.h, fifo.c, preemption-rr.h, preemption-rr.c |
| Zigbee_RF | rf.h, rf.c, net.h, mac.c, routing-star-mesh.c |
| Flash_Memory_Enable | flashmem.h, flashmem.c |
| Sensor_Battery_Enable | adc_bat.h, adc_bat.c |
| Sensor_Temperature_Enable | adc_temp.h, adc_temp.c |
| Sensor_Light_Enable | adc_light.h, adc_light.c |
| Sensor_Gas_Enable | adc_gas.h, adc_gas.c |
| Sensor_Point_infra_red_Enable | adc_ir.h, adc_ir.c |
| Sensor_Humidity_Enable | adc_humidity.h, adc_humidity.c |
| Sensor_Ultra_sonic_Enable | adc_ultrasonic.h, adc_ultrasonic.c |
| Utility_Functions_Enable | utils.h, utils.c |
| System_Log_Functions_Enable | log.h, log.c |
Code templates for node software based on Nano-Qplus.
| Module Code Template | Module code templates for attributes without option | #include “.h file name of a module” | |
| Module code templates for attributes with option | #include “.h file name of a module” | ||
| Execution Code Templates | Codes included according to selection of the type of RF module | SimpleZigbee | mlme_start_request(MY_MAC_ADDRESS, rf_recv_data); |
| MAC Zigbee | mlme_ll_link_start(NULL, rf_recv_data); | ||
| StarMesh | |||
| Codes included according to selection of the type of scheduler | FIFO | (*start)((void *)0); | |
| PreemptionRR | uint8_t int_handle; | ||
Table on determination of reliance between templates according to the role of node.
| SENSOR | start → net_schedule→sense→ send |
| ROUTER | start → net_schedule →receive→ send |
| ACTUATOR | start → net_schedule →receive→ actuate |
| SINK | start → net_schedule →receive→compute→ send |
Figure 6.G&LM System modeling using the development tool.
Figure 7.The result of commonality verification.
Figure 8.The result of association verification.
Figure 9.The result of node verification for sink0.
Figure 10.Generated source code for sink0.
The memory size of execution code.
| Sensor | 102Kbytes | 100Kbytes |
| Router | 100Kbytes | 99Kbytes |
| Sink | 103Kbytes | 101Kbytes |
| Actuator | 101Kbytes | 100Kbytes |
Comparison of the techniques for USN application development.
| Programming level | Network-level | Network-level | Network-level | Node-level | Network-level | Node-level | Network-level |
| Design method | AVS | WP | WP | WP | WP | DM | WP |
| Model verification | Support | Not Support | Not Support | Not Support | Not Support | Not Support | Not Support |
| Model validation | Support | Uncertain | Uncertain | Support | Uncertain | Support | Support |
| Code generation method | Auto | Auto | Auto | Auto | Auto | Auto | Auto |
| No. of node software generated from model | multiple | multiple | multiple | multiple | multiple | single | multiple |
| Convenience of design | H | M | M | M | M | MH | M |
| Accuracy of application | MH | M | M | M | M | M | M |
WP: write program using high-level language or script; DM: detailed model design; AVS: attribute value setting; Auto: automatically; M: medium; MH: medium-high; H: high.