FPGAs enable 'always-on' applications
Enabling a new class of always-on applications using FPGAs. By Subra Chandramouli, Director, Consumer Segment Marketing, Lattice Semiconductor.
There’s been a pronounced use of sensors in consumer electronic products over recent years, as manufacturers compete with each other to offer exciting functions that make devices more user friendly. In fact, it’s common to find about a dozen sensors in any given smartphone today, and with smartphone shipments growing rapidly, the sensor market is witnessing unprecedented growth. The emergence of the IoT, wearable computing, next-gen mobile health equipment and wireless sensor networks - all made possible in part by the growing use of sensors - will no doubt exponentially increase sensor use even further. By some estimates, the sensors market alone is expected to be a 16bn unit market by 2016 (Source: Yole). The types of applications using sensors are varied and disparate, but the common theme across all markets is the requirement to use sensors in an always-on mode, thus necessitating the use of ultra-low-power components.
High-end smartphones typically include several sensors such as barometers, thermometers, gyroscopes, multiple cameras, touch, accelerometers, magnetometers and GPS, just to name a few. Smartphones of the future will likely have even more sensors with more valued added features, such as the monitoring of human vital signs as one example. With this increasing use of sensors in a single device, high-end smartphones and other products are designed with dedicated hardware to manage sensors, thus creating an independent sensor subsystem. Independent sensors operating in isolation provide interesting data, however in some situations it is the fused data from multiple sensors that make the data useful to create compelling applications. For example, data from a gyroscope, accelerometer & magnetometer are together used to create an inertial navigation system. In addition to managing all sensors, the dedicated sensor manager chips (typically an MCU) also perform sensor related tasks such as fusion. However, MCU-based sensor managers most often consume too much power to be used in an always-on mode, limiting the use of sensors.
Gesture recognition
Although smartphones have incorporated sensors for several generations now, few use these sensors to their full potential because of power consumption. For example, if the accelerometer, magnetometer, barometer and the gyroscope are used in an always-on fashion to augment the GPS sensor one can create a dead reckoning application without manual activation by the user. This would be useful to create an indoor navigation application. While all the components already exist in many smartphones to perform this function, using sensors in an always on mode and computing the data to create an inertial navigation system is extremely power hungry. Such a solution would drain the smartphone battery within hours.
Figure 1 - Using an FPGA for gesture recognition
However, even with the power limitations of today’s smartphones, several always-on features could still be implemented using ultra-low-power FPGAs. Figure 1 illustrates an implementation of an ultra-low-power FPGA used as a companion chip to the host, (application processor or sensor manager MCU) to enable always-on gesture recognition. Independent I2C masters may be used to manage different sensors to ensure the right throughput is achieved from each sensor. The always-on sensor manager may be designed to continuously monitor the accelerometer to detect specific patterns. After a predefined gesture has been detected, the always-on sensor manager can interrupt the host to take action or enable other sensors, for example. This design approach would enable the host to be in standby until a valid gesture has been detected and thereby reduce total system power.
Context-aware
The accelerometer along with an ultra-low-power FPGA may be used to implement a new class of always-on context aware features. Context awareness is a class of applications that sense the mobile device’s environment and adapt to surroundings. For example, if the mobile device can detect that it has been placed on a table, it can then decide to stop polling the GPS sensor and thereby save total system power. While there are many interesting use cases for context aware devices, power consumption has kept this trend at bay. In order to implement power efficient context awareness in a mobile device, it is the context change detection that needs to be performed in an always-on fashion. Once the change is detected it can then be classified into a pre-defined state like in hand, on a table, in a car, and so forth.
Figure 2 - Context awareness using low power FPGA
Figure 2 illustrates the use of the ultra-low power FPGA used in an always-on mode to implement context awareness in a mobile device. Here, the FPGA and the accelerometer is always-on - i.e. in active mode. On the host side, the FPGA is interfaced to either the application processor or the sensor manager MCU chip using a standard SPI bus. The FPGA interfaces to the accelerometer using an I2C bus and constantly reads its output. This data is buffered within the FPGA and passed on to the context change detector. The intelligence required to detect a context change is implemented within the FPGA along with the interrupt logic to wake up the host when a change is detected. The host can then read the buffered accelerometer data to classify the context change into relevant classes such as on table, on hand, etc. Finally, the device context may be passed along to the application layer to create the use case.
Always-on pedometer
Pedometers are very popular among health enthusiasts. Since the smartphone is physically with the user through the entire day, it would be natural to embed a pedometer within a smartphone. Most pedometer applications available on smartphones today drain the battery too quickly to make it useful. The power issue can be overcome by using an ultra-low power FPGA to implement the entire pedometer solution in a single chip.
Figure 3 - Pedometer using low power FPGA
Figure 3 shows how an ultra-low power FPGA can be used to implement a pedometer solution in a single chip. In this illustration, the FPGA and the accelerometer is used in an always-on mode and the entire pedometer logic is implemented within the FPGA. The accelerometer output that is noisy is first filtered and this output is passed along to a step counter block. Embedded RAM within the FPGA maybe used to keep count of the steps. The host can poll the FPGA as required to read the number of steps taken. Parameters such as calorie burned, distance covered, etc. maybe computed at the application level based on the step count information. The advantage of this implementation is that the accelerometer and the FPGA can work independent of the rest of the system to enable a low power pedometer solution.
Ultra-low-power is a fundamental requirement for sensor management across multiple markets. The use of always-on sensors in smartphones is going to create innovative applications and use-cases over the next few years. In other areas, such as the Internet of Things and wireless sensor networks, sensors and actuators are being used extensively to create compelling applications. Lattice’s ultra-low-power FPGAs provide system designers the flexibility to create completely customisable low power sensor management solutions bringing new classes of applications to life.