1
Intel Labs
Always-on Considerationsfor Mobile Computing
DAC’10 Workshop
Mobile & Cloud Computing
14th June 2010
Roy Want
2
Intel Labs
Overview
• Motivation for Mobile Sensing & Cloud Services
• Requirements for Sensing• Always-on behavior• Power Considerations• Proposed Architectural Solution• Conclusion
SensingWhere I am,
and
What am I doing?
3
Intel Labs
iPhone Sensors:Accelerometer, GPS, Compass, Gyro, Light, Touch Screen
iPod made sensing mainstream for mobiles
4
Intel Labs
Many Projects are exploring the use of Sensors: Common Sense (Intel) & Sensor Planet (Nokia)
5
Intel Labs
Cloud Services & Context
Twitter LooptFacebook
6
Intel Labs
Augmented Reality Services
1. Vendor list applicationaugmented using “MonicleMode”
2. GPS finds location
3. Compass tells the devicethe direction viewed
4. Augmented reality based apppresents composite image
7
Intel Labs
Local Clouds: Context-Aware Discovery
Lime Sharing its display
with Plum &Orange
red
Red Shares itsAccelerometerSensor with
Orange
Computers
Resourcethat canBe shared
Interface Shows Spatial Arrangement
JOIN-THE-DOTS TO SHARE
Shows Direction & Movement of Devices
8
Intel Labs
Local Clouds: Multi-display Composition (a)
Ultrasonic Ranging: Ping Listen-RX (Direction, Range)Accuracy = better than 1cm over 1m
9
Intel Labs
Desktop grows across 4-displays – Shown at CES 2009
Local Clouds: Multi-display Composition (b)
10
Intel Labs
Requirements for Mobile Sensing • A single serialized connection• Rationalized sensing interface (uniform syntax)• Self describing sensor interface (catalog of sensors)• Accurate time-stamped sample data• One-shot “get” sensor reading or continuous “streaming”• Power-aware operation• Extensible multi-sensor support
– Independent periods per sensor
• Multi-application support– Independent streams per sensor (supports multitasking)
• Buffering (N-samples burst transfer)• Threshold set-points (e.g. events only above/below threshold)• Conditionals (e.g. trigger one sensor reading based on another) • Operators on streams (e.g. low-pass filter)• Error reporting (e.g. cannot meet QOS requested)
11
Intel Labs
Low-power operation
TIMER
(S-Time)
QueueHead
Sensor: ACC
Period: w
S-time: a
SID: 1
Sensor: Gyro
Period: x
S-time: b
SID: 2
Sensor: ACC
Period: y
S-time: c
SID: 3
On interrupt: Remove head item; Sample & TX value: AddQueue; New S-Time=NextSensor(S-time);
Sleep (wake on int)
Sensor: light
Period: z
S-time: d
SID: 4
AddQueue S-Time= RealTime + (SID) Period t; Insert in Order List
DelQueue
Ordered List Based on Sample Time (S-Time)
Remove SID from List
SLEEP
12
Intel Labs
Sensor Hub Co-Processor Model
Provides Sensing (and hence context) Co-processing Capability
Sensor Actuator API
(SAAPI)
HOST Computer
Sensor/Actuatorco-processor
Interface
13
Intel Labs
Sensor-Bus Architecture
Co-Processor
ACC TEMP GYRO GPS
Sensor/ActAPI
COMMUNICATION BUS (e.g. COM, DBus)
APPLICATION #1 APPLICATION #2 APPLICATION #N
Host Processor Serial
Sensor-Hub
MAGBAR
Time Stamp Filter/DSPBurst Mode Threshold
I2C, SPI, UART
ERR Report
Stream/Poll Power
14
Intel Labs
Sensor Hub or ContextCardCC3.0 Feature Specification
Processor & SupportOn-board processing
– low-power ATMEL microprocessor[~ ARC capabilities]
– JTAG programming pads– Silicon ID– 3-color LED– Switches 1) Reset 2) State
Interfaces & Radios– USB2.0 interface– Near Field Communication (NFC)
interface
Sensors– 3-axis Accelerometer x2– 3-axis Compass/2D Magnetometer– 3-axis Gyroscope– Barometer– Thermal sensor– 12-input touch panel interface– Wii IR detector– IrDa interface x 4 (each face)*– Ultrasonic Transceiver x 4*
Actuators– Vibration
compatible with Immersion
* For Relative Ranging/Location Determination
15
Intel Labs15
Context Card 3.0: Schematic Block Diagram
CompassHMC6352
NFC(PN531)
RGBLED
RESETSW
STATESW
JTAGPADS
USB2.0
SLAVE( UX50)
MicrocontrollerUSB
Serial
NFCCoil
8-ElementTouch Sensor
2D Gyros
IR Transceiver x 4
MatchingCircuit
Multiplexer.
802.15.4 Radio
Serial
I2C
SPI
3-AXIS Accel.(x2)
UltrasonicTX/RX x3SRAM
Uart1
UART2
UART3
GPIO
SPI0(0)
I2C BUSSPI1(0)
ADC
SPI1(1)
BarometerSMD500
Expansion Con21P & Con31P
ThermalSensor
SPI1(2)PWM
LightSensor
Actuator & Vibrator
ADCSensor Bus
Silicon-IDDS2411
TOHOST
WiiSensor
iPhone Interface
16
Intel Labs
A Prototype Mobile Sensor-Hub CC3.0
3.5” 4.5”
17
Intel Labs
Power Measurement for each sensor
ADC
Multiplexer
VCC
Sensor
Reference load
1
N
10R – 0.1R – 0.01R
20 milli-ohm
VCC
out
I2C to Processor
I2C to Processor
18
Intel Labs
Using CC with a PC via Hypertern
<device name>“id” = < number >“op” = < “get” | “set” | “stream” >“val” = < “on” | “off”>“samples” = number “period” = < mS >“power” = < “on” | “off”>“threshold” = <“ <hi>:<low>” >“mode” = < “delta” | “abs” | “up” | “down” >
e.g. acc id=1 op=stream val=on samples=10 period=1000
USBConsoleHyperterm
19
Intel Labs
Rationalized Sensor-Hub API
EVT:098789 acc val=120:50:-10 p=22 s=1
CMD: acc op=stream val=on period=500 power=on threshold=100:100 cid=102
REP: acc op=stream val=on cid=102
Command String
NOTE: Period in mS, Power in mW
Reply String
Event String
EXAMPLE: ACCELEROMETER API
Text-based, key/value pairs
20
Intel Labs
Context Card Serial Command Examples• COMMAND: led id=2 op=set val=on
RESULTS: RES:systime led id=2 op=set val=on (setting green led on)
• COMMAND: act id=1 op=getRESULTS: RES:systime act id=1 op=get val=off (getting value of actuator)
• COMMAND: therm id=1 op=get val=on samples=1RESULTS: RES:systime therm id=1 op=get samples=1 val=28.00(getting temperature = 28 C)
• COMMAND: acc id=1 op=get val=on samples=1RESULTS: RES:systime acc id=1 op=get samples=1 val=9:-3:131(getting accelerometer reading for X, Y, Z)
21
Intel Labs
Sensor HubControl Panel
Python implementation for Windows & Linux
22
Intel Labs
Future mobile architectures will benefit from:
• A coprocessor based sensor-hub subsystem
• Always-on operation
• Industry has an opportunity to create a standard sensor-hub reference design that can be reused across many mobile platforms
Cloud services will be enriched by, and benefit from, ubiquitous mobile sensing
Conclusion & take-away messages
23
Intel Labs
Thank you!
Q & A
24
Intel Labs