One of the challenges with sensors is that, at their most fundamental level, all they do is provide some value reflecting whatever it is they’re sensing. If you want to know that value, you have to go get the value. “You” typically being the main processor in the system.
That’s easy enough if it’s something you occasionally do under the direction of a program, but if you want the sensor to alert you when something happens, then you have to poll constantly so that you know when something changed. That can steal a lot of cycles from the processor, and can be a particular issue for smartphones that have lots of sensors.
I had a discussion about this with Bosch Sensortec’s Leopold Beer at the recent MEMS Executive Congress. He said that with their IMUs, polling still dominates, but that they’ve got a state machine in there that can be programmed to fire an interrupt; their interface supports both polling and interrupts.
For example, the unit has an auto-sleep mode, and can be programmed to wake itself up. You can program in thresholds and timing. You can have it fire an interrupt when changing between portrait and landscape modes; the angles and hysteresis levels are programmable. This relieves the application processor of some of the more mundane polling duties.
For more complex tasks like counting the number of steps you take when running, much more processing is required, so for those tasks the processor still has to go poll the sensor and do the data munging itself.
One solution is to have a separate sensor microcontroller that can manage multiple sensors to offload some of the application processor duties in a programmable way.
A dedicated microcontroller on the same die as the sensor might make sense for so-called “sensor fusion” applications – where the “sensed” state isn’t just the result of a single sensor or even sensor type, but the accumulation of data from numerous sensors synthesized into a single combined more “intelligent” state. It’s certainly possible from a technology standpoint; the only question is whether the cost is justified.
Something to watch for as sensors continue to populate the world…