Date of Original Version
Abstract or Description
Battery-powered applications that are coupled to their physical environment through multiple sensors and actuators may not be using their scarce energy in the most efficient way. Acquiring samples from peripherals for fusion by the application software must be coordinated in order to not spend energy on redundant computations. However, coordination, as any sophisticated peripheral control, is a burden to the application developer that detracts from the development of the core logic. We propose the sample stream abstraction for accessing peripherals from an application that allows peripherals to be managed and coordinated within the operating system transparently to the application.
Several coordination strategies are developed, and the sample-ready synchronization technique is shown to reduce energy and minimize undesirable skew between samples. The feasibility of implementing and using this abstraction as well as its potential for energy savings is evaluated on a custom hardware peripheral emulation testbed and, separately, on a real application that fuses sensor readings from an o- the-shelf accelerometer, gyroscope, compass, and altimeter. Compared to the existing baseline implementation, energy is reduced by 61%, sample skew is negligible, and code is simplified