4 research outputs found

    Lightweight Event-driven Real-time Operating System for Resource Constrained Connectivity

    Get PDF
    Wirepas Connectivity (WPC) is a complex protocol stack for large scale mesh-based Internet of Things (IoT) networks. The communication units in a WPC network are called nodes and these are designed to be cheap, resource constrained and battery operated. In contrast, each node requires several levels of parallel and real-time processing, which is best provided by a Real-Time Operating System (RTOS). The resource constraint aspect places requirements for the RTOS design. The RTOS kernel should take less than 10 kB of program memory and under 1 kB of data memory. It must be energy efficient for battery operation and for this reason its scheduling must be tickless (as opposed to time-sharing). Furthermore, the WPC protocol stack requires deterministic real-time timings with microsecond accuracy from the RTOS. This thesis studies the feasibility of related RTOSs Contiki, TinyOS, ĀµC/OS and FreeRTOS for WPC use. The study shows that none of the related RTOSs are feasible without major modification. Contiki and TinyOS would complicate software development. ĀµC/OS is commercially licensed and would increase per node cost. FreeRTOS lacks sufficient real-time operation for WPC. Furthermore, these RTOSs are designed to be general purpose and thus they are wasteful with precious memory and energy resources. To better deal with these challenges, a more specific approach is required. As a solution, this thesis presents a completely new RTOS called WPC-OS, designed specifically for WPC. The RTOS design targets to timing determinism and energy efficiency in all its functions. The WPC-OS scheduler provides a novel and lightweight timetabled scheduling approach, which uses task durations to determine the next task. Event-driven operation is provided on top of this to achieve reactiveness to concurrent events. For evaluation and measuring WPC-OS design efficiency, it was implemented on an nRF52832 platform. The measurement results show that the WPC-OS kernel achieved a small memory footprint. With the typical WPC node configuration, it uses only 5 kB of program memory and 350 B of data memory. It can handle the WPC timing requirements with its real-time event service, which guarantees 1 us timing accuracy. It provides lightweight multitasking capability for applications, while being energy efficient. WPC-OS solves all design requirements WPC imposes on RTOS design, and is suitable for mass production. As future work, coroutine and hybrid scheduling options for WPC-OS should be investigated

    Abstracting Application Development for Resource Constrained Wireless Sensor Networks

    Get PDF
    Ubiquitous computing is a concept whereby computing is distributed across smart objects surrounding users, creating ambient intelligence. Ubiquitous applications use technologies such as the Internet, sensors, actuators, embedded computers, wireless communication, and new user interfaces. The Internet-of-Things (IoT) is one of the key concepts in the realization of ubiquitous computing, whereby smart objects communicate with each other and the Internet. Further, Wireless Sensor Networks (WSNs) are a sub-group of IoT technologies that consist of geographically distributed devices or nodes, capable of sensing and actuating the environment.WSNs typically contain tens to thousands of nodes that organize and operate autonomously to perform application-dependent sensing and sensor data processing tasks. The projected applications require nodes to be small in physical size and low-cost, and have a long lifetime with limited energy resources, while performing complex computing and communications tasks. As a result, WSNs are complex distributed systems that are constrained by communications, computing and energy resources. WSN functionality is dynamic according to the environment and application requirements. Dynamic multitasking, task distribution, task injection, and software updates are required in ļ¬eld experiments for possibly thousands of nodes functioning in harsh environments.The development of WSN application software requires the abstraction of computing, communication, data access, and heterogeneous sensor data sources to reduce the complexities. Abstractions enable the faster development of new applications with a better reuse of existing software, as applications are composed of high-level tasks that use the services provided by the devices to execute the application logic.The main research question of this thesis is: What abstractions are needed for application development for resource constrained WSNs? This thesis models WSN abstractions with three levels that build on top of each other: 1) node abstraction, 2) network abstraction, and 3) infrastructure abstraction. The node abstraction hides the details in the use of the sensing, communication, and processing hardware. The network abstraction speciļ¬es methods of discovering and accessing services, and distributing processing in the network. The infrastructure abstraction uniļ¬es different sensing technologies and infrastructure computing platforms.As a contribution, this thesis presents the abstraction model with a review of each abstraction level. Several designs for each of the levels are tested and veriļ¬ed with proofs of concept and analyses of ļ¬eld experiments. The resulting designs consist of an operating system kernel, a software update method, a data uniļ¬cation interface, and all abstraction levels combining abstraction called an embedded cloud.The presented operating system kernel has a scalable overhead and provides a programming approach similar to a desktop computer operating system with threads and processes. An over-the-air update method combines low overhead and robust software updating with application task dissemination. The data uniļ¬cation interface homogenizes the access to the data of heterogeneous sensor networks. A uniļ¬cation model is used for various use cases by mapping everything as measurements. The embedded cloud allows resource constrained WSNs to share services and data, and expand resources with other technologies. The embedded cloud allows the distributed processing of applications according to the available services. The applications are implemented as processes using a hardware independent description language that can be executed on resource constrained WSNs. The lessons of practical ļ¬eld experimenting are analyzed to study the importance of the abstractions. Software complexities encountered in the ļ¬eld experiments highlight the need for suitable abstractions.The results of this thesis are tested using proof of concept implementations on real WSN hardware which is constrained by computing power in the order of a few MIPS, memory sizes of a few kilobytes, and small sized batteries. The results will remain usable in the future, as the vast amount, tight integration, and low-cost of future IoT devices require the combination of complex computation with resource constrained platforms

    Abstracting Application Development for Resource Constrained Wireless Sensor Networks

    Get PDF
    Ubiquitous computing is a concept whereby computing is distributed across smart objects surrounding users, creating ambient intelligence. Ubiquitous applications use technologies such as the Internet, sensors, actuators, embedded computers, wireless communication, and new user interfaces. The Internet-of-Things (IoT) is one of the key concepts in the realization of ubiquitous computing, whereby smart objects communicate with each other and the Internet. Further, Wireless Sensor Networks (WSNs) are a sub-group of IoT technologies that consist of geographically distributed devices or nodes, capable of sensing and actuating the environment.WSNs typically contain tens to thousands of nodes that organize and operate autonomously to perform application-dependent sensing and sensor data processing tasks. The projected applications require nodes to be small in physical size and low-cost, and have a long lifetime with limited energy resources, while performing complex computing and communications tasks. As a result, WSNs are complex distributed systems that are constrained by communications, computing and energy resources. WSN functionality is dynamic according to the environment and application requirements. Dynamic multitasking, task distribution, task injection, and software updates are required in ļ¬eld experiments for possibly thousands of nodes functioning in harsh environments.The development of WSN application software requires the abstraction of computing, communication, data access, and heterogeneous sensor data sources to reduce the complexities. Abstractions enable the faster development of new applications with a better reuse of existing software, as applications are composed of high-level tasks that use the services provided by the devices to execute the application logic.The main research question of this thesis is: What abstractions are needed for application development for resource constrained WSNs? This thesis models WSN abstractions with three levels that build on top of each other: 1) node abstraction, 2) network abstraction, and 3) infrastructure abstraction. The node abstraction hides the details in the use of the sensing, communication, and processing hardware. The network abstraction speciļ¬es methods of discovering and accessing services, and distributing processing in the network. The infrastructure abstraction uniļ¬es different sensing technologies and infrastructure computing platforms.As a contribution, this thesis presents the abstraction model with a review of each abstraction level. Several designs for each of the levels are tested and veriļ¬ed with proofs of concept and analyses of ļ¬eld experiments. The resulting designs consist of an operating system kernel, a software update method, a data uniļ¬cation interface, and all abstraction levels combining abstraction called an embedded cloud.The presented operating system kernel has a scalable overhead and provides a programming approach similar to a desktop computer operating system with threads and processes. An over-the-air update method combines low overhead and robust software updating with application task dissemination. The data uniļ¬cation interface homogenizes the access to the data of heterogeneous sensor networks. A uniļ¬cation model is used for various use cases by mapping everything as measurements. The embedded cloud allows resource constrained WSNs to share services and data, and expand resources with other technologies. The embedded cloud allows the distributed processing of applications according to the available services. The applications are implemented as processes using a hardware independent description language that can be executed on resource constrained WSNs. The lessons of practical ļ¬eld experimenting are analyzed to study the importance of the abstractions. Software complexities encountered in the ļ¬eld experiments highlight the need for suitable abstractions.The results of this thesis are tested using proof of concept implementations on real WSN hardware which is constrained by computing power in the order of a few MIPS, memory sizes of a few kilobytes, and small sized batteries. The results will remain usable in the future, as the vast amount, tight integration, and low-cost of future IoT devices require the combination of complex computation with resource constrained platforms

    Configurable Hybridkernel for Embedded Real-Time Systems

    No full text
    corecore