Title: Chapter 3 MobileEmbedded Devices and Tools
1Chapter 3Mobile/Embedded Devices and Tools
- Limitations of Mobile/Embedded Devices
- Principles of Object Identifiers and RFID
- Highlights of J2ME for Mobile Applications
- Sensors and Programming in TinyOS
2- Limitations of Mobile/Embedded Devices
- and
- Design of Pervasive Computing Systems
3Pervasive Devices and Tools
- Pervasive Devices (more than mobile devices)
- User devices (i.e., mobile devices and
electronics) to access to different types of
(real-time) information - Sensor (embedded) devices for capturing real-time
environmental data - New tools and operation environment for pervasive
devices - Integration with other computing systems and
devices - Limitations of the devices gt the current tools
for system development and operation may not be
suitable (requiring a powerful CPU and large
memory) gt reduced versions - To meet the proactive and smart requirements
- I.e., New techniques are needed in job
processing, i.e., pushing model, real-time
scheduling and localized processing - The techniques need to fit into the limitations
imposed by the devices and operating environment
4From Old to New
- How to migrate from Old computing systems to
New (pervasive) computing systems? - Modify the current one OR build a new one
- Devices are easier to have new, BUT, systems
(i.e., network and operating systems) are NOT - OR Both gt until the technologies become mature
- I.e., Using the mobile network as an example to
see the problem - Support data transmission services over the 2G
mobile network. How? - The mobile network is initially designed for
voice communication - WAP and GPRS for data transmission in 2G network
- In addition of 2G, we also have 3G network at the
same time - What will be the future? 4G WiFi??
5Limitations of Mobile/Embedded Devices
- Need to know the limitations of the
mobile/embedded devices in building pervasive
computing systems. Why? - They affect the operations and design of the
systems. How? - Consider two simple applications (1) Queries to
(continuously) monitor the highest temperature of
the class room and (2) a real-time news
reporting system for car drivers - What are the similarity and differences between
the two applications? - (1) is a surveillance application (rule events
-gt action) (2) is a reporting system pushing
news for reading - Updates/news reports are generated continuously
from sensors/agents - Update generation period? Processing cost, memory
cost, energy cost and network transmission cost - (1) Local processing to filter out updates. (2)
unconditional mostly
6How do they affect the operations and design of
the systems?
- Mobile computers are resource poor
- Reduce program size interpret script languages
(mobile Java?) - Specific codes (i.e., machine codes) for specific
hardware - Any data aggregation (from low-level to
higher-level)? - Where to put the database? Front-end or backend.
Any caching/pre-caching? When/what to
pre-caching? Caching unused data wastes resource.
Real-time data will become totally useless if
they are too old. What are real-time data? How
to maintain (refresh) the cached data? Cache size
is usually limited - When to load data (i.e., maps) and programs into
a mobile device for execution? Pre-load or
on-demand? - Adaptation to network and display
- Any trans-coding of the contents before
transmission/displaying them in the client
devices - The front-end may perform some pre-processing,
i.e., input validation, to reduce communication
overheads
7How do they affect the operations and design of
the systems?
- Energy saving, how? What is the biggest factor
affecting the rate of energy consumption? - Transmit/receive, disk spinning, display, CPUs,
connection - Need energy efficient hardware (CPUs and memory)
and system software to manage the resources - Planned disconnection doze mode of operations
- Communication range Vs power consumption
- Where to perform the computation? Distributed Vs.
centralized - Computation and communication load cannot be
distributed equally - Processing at front-end minimize the data
transmission workload - Processing at backend relieves the limitations
of the front-end hardware - Multi-levels in processing gt multi-levels of
divisions - How to divide the tasks into sub-tasks for
execution at the mobile devices and powerful
servers?
8- Pervasive Computing Devices
- Mobile Devices and
- Sensor/Embedded Devices
- Their properties and limitations
9Mobile User Devices
- Mainly for reading and storing information/data
- Various intelligent electronic devices, i.e.,
camera, MP3, games - PDA (Personal Digital Assistant) and smart phones
- Pocket PCs, tablet PCs and notebooks
- How do you feel about the operations/functions of
these devices? Easy of operation, quality of
outputCan be improved - Limitations of mobile user devices
- High variation in processing capability and
interface, i.e., display screen sizes and
resolutions - Hard disk or diskless and limitations in memory
sizes - Wireless/fixed connection to networks, i.e. using
infra red or radio signals (limited bandwidth and
unstable performance) - Why do they have these properties? Development is
step by step and driven by customer marketThe
future will be better??? - Separated and closed systems. Needs to work with
back-end (middleware) servers to provide better
services. But network is
10Sensor and Embedded Devices
- Sensors for capturing/monitoring the status of
environment - I.e., light intensity, pressure, velocity and
position - Note radio receivers and video camera are
sensors??? - What is a sensor? Capturing a physical property
of the environment - Why do we use sensors? Robust can operate in
harsh environment for a long period of time
non-stop, and also, small in size, cheap in
price, large in number - Limitations processing power, energy, memory,
connection, bandwidth (mostly connected by
wireless LAN or ad hoc network) - They may be embedded into other devices and
electronics to make them to be smart, i.e., smart
home and intelligent navigator - Simple and limited interface (control panel)
mainly for displaying texts to show the current
operation status and for command input by users - CPU memory gt programmable and functionalities
can be adjusted and enhanced - Networking capability gt cooperative to provide
smart services - Energy saving operations (doze mode) and event
driven processing
11MOTES (Sensors)
- Two Board Sandwich
- CPU/Radio board
- Sensor Board temperature, light
- Size
- Mote 1?1 inch
- Pocket PC 5.2?3.1 inch
- CPU
- Mote 4 MHz, 8 bit
- Pocket PC 133 MHz, 32 bit
- Memory
- Mote 512 B RAM 8K ROM
- Pocket PC 32 MB RAM 16 MB ROM
- Radio
- 900 Hz, 19.2 kbps
- Bluetooth 433.8 kbps (symmetric)
- Lifetime (Power)
- Mote 3-65 days
- Pocket PC 8 hrs
- Cost
- Mote 100 (expected to drop dramatically in the
future, down to 1) - Pocket PC 400
- http//www.xbow.com/Products/Product_pdf_files/Wir
eless_pdf/MICA.pdf
12Object Identifiers
- A unique identifier to label an attached object
or a category of objects, i.e., HKID, ISBN and
telephone number - Bar code (a series of strips) simple, cheap and
small - Two-dimension bar code
- Data are encoded in both the horizontal and
vertical dimensions - As more data is encoded (i.e., using matrix or
stacked algorithms), the size of data included
can be increased in both the horizontal and
vertical directions - More durable and robust and reliable (comparing
with bar code) - Smart cards
- More expensive and embedded processing units with
memory - I.e., SIM cards for labeling a mobile phone and
electronic ID for security control - Radio frequency identifier (RFID) a unique
identifier using encoded radio signals. A reader
reads radio frequencies generated from a tag to
identify the presence of the object - What is the difference between smart card and
RFID? Octopus is a smart card or an RFID?
13Making Use of Object Identifiers
- Locating and positioning (Context-aware services)
- Tracking the current location of mobile objects
- Providing location-dependent services (different
services are provided for objects at different
locations, i.e., at home, in the office or
school) - Load and resource management (workload depends on
object density), i.e., channels management in
cellular networks - Proactive services (Context-aware and proactive
services) - Tracking the locations as a function of time, we
can summary the movement behavior of the objects - Based on the movement behavior, the system can
make some prediction for proactive services . - Counting
- Inventory control and cashier check-out
- Authentication
- Unique ID for security control and authentication
14RFID Technologies
- Types
- Active and passive RFIDs
- Locator active tags (adding multiple base
stations for positioning) - Battery-assisted passive tags
- Energy source Passion Vs. active RFIDs
- Passive RFID
- It consists an antenna, a semi-conductor chip and
the encapsulation - The antenna captures energy from the tag reader
to transfers the tags ID to the tag reader - Active RFID
- It has a power source and more powerful
- It can operate up to 100m from the tag reader
(range depends on power supply) - It includes a processor and a memory to store
data - The life-span depends on the power supply
- Read-only and read/write tags
15RFID Technologies
- Passive RFID using Near-field
- A tag reader passes a large alternating current
through a coil resulting in an alternating
magnetic field in its locality - A tag that incorporates a small coil in this
field generates an alternating voltage due to
induction - The voltage is rectified and coupled to a
capacitor - A reservoir of charge accumulates to power the
tag chip - The tag sends data (including its pre-assigned
ID) back to the reader using load modulation - Any current drawn from the tag coil will give
rise to its own small magnetic field which will
oppose the readers field - The reader coil detects the change in magnetic
field as a small change in current which is
proportional to the load applied to the tags
coil - The energy for induction decreases as a function
of distance from the reader coil, 1/r3 - The power from the reader has to be strong while
the power from the tag is usually weak. This
limits the scope of detecting the tag (5m)
16RFID Technologies
- Locator active tags
- A special category of active tag (Real Time
Locating System) - For positioning instead of just detecting the
presence of an object - The RTLS tags are provisioned to emit a strong
Beacon signal periodically - The signal is used by the RTLS infrastructure
consisting of locator base stations to locate the
physical location of the tag (similar to
positioning using in GPS), i.e., by
triangulation. How to draw a triangle? - Battery-assisted tags
- A tradeoff between passive and active tags
- Active tags are expensive but passive tags are
too limited - A passive tag with a battery but it is not for
powering the tag for signal transmission - The battery is mainly to support recording input
sent to the tag for processing
17RFID Technologies
- Read only Vs. read/write tags
- Many passive tags are read-only due to the
limited power supply and processing power - The tags unique ID was created and burned into
the tags IC by the manufacturer. It usually
cannot be changed - The primary function of a tag is then to respond
the signals from the reader by generating signals
(load modulation) to represent its unique ID to
the tag reader - Read/write tags
- In addition to the ID, it contains memory (i.e.
128k) for storing other data in processing. Thus,
better processing capability but require higher
power supply for processing - I.e., Tracking the processing history of a tag
and recording the operator ID into the tag
18RFID Processing Models Problems
- When and where to collect the detected RFID?
- Passive tags
- A tag is identified when it comes close (less 1m)
to the reader - The reader collects the tag information (ID) and
sends to the event servers immediately with its
ID as a transaction (a lot of update transactions
to the event server) - Batching the collected data and send transactions
periodically???
Tag reader
updates
Passive tags
Applications
Detection range
19RFID Processing Models Problems
- Active tags
- A tag is identified when it is within the
detection range of the tag reader. The range may
be quite large. How to ensure that it is within
the target region and moving in the right
direction? Using an excitor - An excitor emits highly range-restricted and
severely directional-controlled signal (limiting
the range) - A tag may be identified multiple times. How to
eliminate double reading? Updating the tag to
storage the reading information
Tag reader
Detection range
20RFID Advantages, Limitations Applications
- Advantages
- Small and low cost (more expensive comparing with
bar codes) - Can operate without any direct energy supply
(passive tags) - Fast, easy for identification and reliable in
accuracy - Limitations
- Although cheap but still cannot be totally
ignored gt cannot be used as a disposable
electronic ticket for large population - It is still difficult to determine the exact
location with a high precision gt mainly for
determining the presence of object within an area - Needs to combine with other technologies for
positioning - In general, applications of RFID can be used for
identification, localization and monitoring of
physical objects, i.e., tracking of materials,
i.e., in the airport, inventory control and
library. Any more??? Many
21Comparison of Bar Code RFID
22Applications of RFID in Frankfort Airport
- Mobile applications for asset maintenance, i.e.,
checking of fire shutters - To protect against fire, the airports
air-conditioning and ventilation system has
22,000 fire shutters and numerous fire doors and
smoke detectors. They are required to be examined
at least once a year - Manual paper-based process generation of paper
exam list gt examine the fire shutters by
technicians gt generation of exam report (error
prone, time-consuming, inefficient, heavy
maintenance costs of the reports, i.e., storage
problems, retrieval/access difficulties) - Replacing the paper-based process with mobile and
RFID technologies - All fire shutters are installed with RFID tags
that stored maintenance information and an unique
ID - All technicians carry an RFID tag for
authentication and a tag reader - Using the tag reader, a technician can identify
the tag and the fire shutter for maintenance.
Defect can be registered using comprehensive
damage codes
23- Operating Systems and Tools
- Reduced Versions for
- Transition from OLD to NEW
24Operating and Development Environment for Mobile
User Devices
- PocketPC? Mobile phones? Smart phones? What are
the differences? - General purposes Vs. specific purposes
- Windows Embedded CE (WinCE)
- A specific operating system and development
environment for limited processing power devices,
mostly mobile devices - It has a similar interface as other Microsoft
operating systems but its development is totally
different (not a reduced version) - It is specially designed for limited devices gt
reliable performance??? - Not a real-time operating system (real-time OS
requires predictable performance) - http//www.microsoft.com/windows/embedded/eval/win
ce/default.mspx - Symbian OS a platform for wireless devices
developed by Symbian consortium for 2G, 2.5G and
3G data enabled mobile phones/PDA
(www.symbian.com)
25What is J2ME?
- NEITHER a specific piece of software /
specification - A collection of Java classes, interfaces
dedicated to small, mobile devices
http//java.sun.com/j2me/docs/index.html
26J2ME System Model
- J2ME framework is divided into Configurations and
Profiles
http//java.sun.com/j2me/docs/index.html
27Scope of J2ME
- J2ME defines
- A series of Java virtual machines each for use on
different types of small devices - A group of libraries and APIs that can be run
under each of the virtual machines - Various tools for deployment and device
configuration - Configuration
- Mobile devices have different capabilities
(limitations). J2ME defines configurations for a
horizontal grouping of devices based on
availability of memory and processing power of
the devices - Profiles
- Defines a set of APIs that reside on top of a
configuration that offers the program access to
device-specific capabilities
28Scope of J2ME
http//java.sun.com/j2me/docs/index.html
- MIDP (mobile information device profile) is
designed to be used with the configuration
(CLDC), and provides a set of APIs for use by
limited resources devices, i.e., mobile phones
29J2ME System Model Configurations
- Designed for a specific kind of device based on
memory constraints and processor power (i.e.
defines a minimum Java platform for a family of
devices) - Usually specifies a JVM that can be easily ported
to devices supporting the configuration (called
KVM) - Specifies the characteristics and features of
virtual machine present, minimum Java libraries
that are supported and minimum set of features
for a category of devices - Major Configurations in current specification
include - Connected Device Configuration (CDC)
- Connected, Limited Device Configuration (CLDC)
30Connected Device Configuration (CDC)
- Device requirements A connected device (CD) has
a minimum 512KB of ROM, 256KB of RAM, 32-bit
processors, and some network connection with
limited bandwidth - CDC is designed for "more powerful" wireless
devices like TV set-top boxes, car navigation
systems, and high-end PDAs. - CDC specifies that a full-featured Java Virtual
Machine (JVM) (defined in J2EE) is supported
31Connected, Limited Device Configuration (CLDC)
- Covers mobile devices like mobile phones, PDAs,
pagers, and other "tiny" wireless devices - For smaller devices than CDC, with limited
capacity and network connection (e.g., lt 9.6Kbps
for mobile phones) - For devices with 160KB to 512 KB of memory
available for Java platform - For devices with limited power supply
- Built on "scale-down" version of JVM called KVM
(Sun 'K Virtual Machine, with size in tens of
kilobytes, rather than JVM with tens of megabytes)
32MIDP Requirements
- MIDP (mobile information device profile) is
designed to be used with the configuration
(CLDC), and provides a set of APIs for use by
limited resources devices, i.e., mobile phones - A Mobile Information Device (MID) has the
following characteristics - 128KB of non-volatile memory for MIDP
implementation - 32KB of volatile memory for runtime heap
- 8KB of non-volatile memory for persistent data
- A screen of a least 96 x 54 pixels
- Some capacity for input, either by keypad,
keyboard, or touch screen - Two-way network connection, possible intermittent
- Detail information about MIDP (Mobile Information
Device Profile) can be found in
http//java.sun.com/products/midp/
33MIDlets
- MIDP enables application development with mobile,
wireless-connected devices like cellular phones
and two-way pagers - MIDlets
- Small applications that run under the MIDP are
called MIDlets - A MIDlet is a Java application that uses the MIDP
and the CLDC - In a mobile phone, application management
software (AMS) controls start, stop and execute
MIDlet (controls the entire lifecycle)
34- Sensor and TinyOS for Event Control and
Monitoring - Event Driven and Concurrent Components
- Real-time Applications
35Sensor Nodes and TinyOS Programming
- A sensor node consists of two main components
- Sensing unit Light, sound, velocity,
temperature, etc - Processing unit
- Usually has with limited processing power, energy
supply, communication and memory capability - Operating system (TinyOS) application programs
(i.e., in nesC) - Example sensor nodes Mica Motes developed in UC
Berkeley and manufactured by www.xbow.com - Characteristics and requirements
- Very small in size and cheap, and can be deployed
in large number - Energy saving and can operation for a long period
of time non-stop - Continuous monitoring of the surrounding
environment and generation of sensor data (stream
data) - Automatically form a wireless sensor network
(WSN) with other nodes (communication range from
a few m to km with an antenna). An example of
mobile ad hoc network (MANET) - Robust and reliable (can work in harsh
environment)
36Mote Evaluation
Services
Networking
TinyOS
www.xbow.com
37Mote Applications
- Example application areas
- Object tracking and intrusion detection
- Environment and habitat monitoring, many others
- Basic components
- A number of sensor nodes
- Base stations
- Gateway/Server
- Networks
- Fixed/wireless network connecting the base
stations/servers to the gateway - Wireless sensor network connecting the sensor
nodes to the gateways - http//www.xbow.com/Products/Product_pdf_files/Wir
eless_pdf/MSP410_Datasheet.pdf
38Wired Network
Server
MANET
Base Station
WLAN WWAN
Wireless Sensor Networks
Ad hoc network
Queries
Gateway
Local processing to minimize the responses to
events and transmission workload through the
networks
Results
Applications
39Basic Operations of Mote
- Periodic
- Sleep majority of the time
- Wakeup quickly start processing
- Active minimize work return to sleep
- Triggered Events
- Detection/Notification
- Infrequently occurs
- But must be reported quickly and reliably
- Long Lifetime
- Months to years without changing batteries
- Power management is the key to WSN success
- Sleep isolating and shutting down individual
circuits - Using low power hardware
processing data acquisition communication
active
Power
wakeup
sleep
Time
www.xbow.com
40TinyOS Programming in Mica Motes
- TinyOS is the operating system designed
specifically for sensor devices, i.e., mica motes
- It is a tiny (less than 400bytes), open-source
operating system developed by UC Berkeley - It includes functions for radio messaging,
scheduling, message hopping from mote to mote,
low power (energy saving) mode of operation and
sensor measurements and signal processing - It is NOT a true OS. It builds from a set of
reusable components together with application
into an application-specific executable - http//webs.cs.berkeley.edu/tos/download.html1.1.
0 - Design goals
- Limited resources 1-MIP processor and tens
kilobytes storage - Flexibility for variations in hardware
(different capabilities) - Low power energy saving operations. How? Doze
mode of operations - Efficient modularity minimize the size of
executable codes
41Design goals
- Concurrency-intensive operations
- Multiple, high-rate data flows (radio, sensor,
actuator) - Component-based concurrency models for handling
multiple events - Concurrent events processing, receive input and
communication - Real-time responses
- Real-time query and feedback control of physical
world (monitoring and surveillance purposes) - TinyOS must process bit every 100 µs
- Little memory for buffering data must be
processed on the fly - TinyOS No buffering, missed deadline ? lost data
- But, TinyOS provides NO real-time guarantees
(completion before a deadline). Why? How to
provide real-time responses? Fast Real-time
scheduling
42TinyOS Overview
- A set of reusable system components together with
a scheduler - Application main components
- Compiled into one executable (unused components
are not included, size may be just 1KB) - Event-driven architecture (event-based
concurrency model) - No kernel/user space differentiation
Assembled into a single executable as binary
codes for execution by the hardware
Main (configuration modules)
scheduler
Applications (configuration modules)
download
actuating
sensing
communication
sensor
hardware
43Programming in Mica Mote
- Applications are developed in nesC for TinyOS
- nesC is a C-like procedure language and can
support event-based concurrency models and
component based applications - Why concurrency model? To respond to concurrent
events - Why components? reusable
- Concurrency model tasks and hardware event
handlers - An event-based concurrency model consists of
run-to-completion tasks and interrupt handlers - Task
- Once scheduled, runs to completion
- Hardware event handlers
- Hardware event handlers are executed in response
to a hardware interrupts - Run to completion, may preempt execution of
functions/tasks or other event handlers - Split phase operation a command starts the
operation immediately, and a callback event
indicates when the operation completes
44Hardware interrupt
FIFO scheduling
Tasks Once started cannot be preempted by another
task but can be preempted by interrupts
scheduler
Concurrent events handling
The scheduler uses a non-preemptive, FIFO
scheduling
45Command sense()
AppM (User)
TempM (Provider)
Event senseDone (value)
Split-phase operation
Provider must implement the sense command, which
represents a request to read a sensor User must
implement the senseDone which the provider
signals when the sensor read completes
46Components and Concurrency Model
- A nesC application consists of one or more
components linked to form an executable - A component is an computational entity consisting
of three abstractions commands, events and tasks - A component provides and uses interfaces from
other components - An interface declares a set of functions called
commands implemented by the interface provider
and a set of events implemented by the interface
user - A command is a request to a component to perform
some service, i.e., a sensor reading, while an
event signals the completion of the service,
split phase operation - Commands and event handlers may post a task to be
executed by the scheduler at a later time
47Components and Concurrency Model
- Two types of components modules and
configurations - A module provides application code, implementing
one or more interfaces - Configurations are used to assemble other
components together, connecting interfaces used
by components to interfaces provided by others
(wiring) - Every nesC application is described by a
top-level configuration that wires together the
components inside - All hardware resources are abstracted as
components, i.e., calling getData() command on a
sensor component will cause it to later signal a
dataReady() event when the hardware interrupt
fires
48Life Cycle of a Sensor Program
- Main is a component that is executed first in a
TinyOS application - All the sensor programs need to connect with Main
Program - init() can be called multiple times, but will
never be called after either start() or stop are
called - It is an event driven model. You need to specify
what to do when an event arrives
Main.StdControl.init()
Main.StdControl.start()
Main.StdControl.stop()
49Example Blink
- Blink causes the red LED on the mote to turn on
and off at 1Hz - Blink application is composed of two components
a module, called BlinkM.nc and a configuration
called Blink.nc - Blink.nc configuration Blink implementation
components Main, BlinkM, SingleTimer,
LedsC Main.StdControl -gt BlinkM.StdControl
Main.StdControl -gt SingleTimer.StdControl
BlinkM.Timer -gt SingleTimer.Timer BlinkM.Leds
-gt LedsC
User
Connect the Blink Program to Main program
Provider
50(No Transcript)
51Example Blink
- BlinkM.nc module BlinkM provides
interface StdControl uses interface
Timer interface Leds // Continued
below...
Used by Main
Blink Program uses the component Timer and Leds
52- implementation command result_t
StdControl.init() call Leds.init()
return SUCCESS command result_t
StdControl.start() return call
Timer.start(TIMER_REPEAT, 1000) command
result_t StdControl.stop() return call
Timer.stop() event result_t
Timer.fired() call Leds.redToggle()
return SUCCESS
Executed by Main program, as it is connected with
Main.stdControl.init() Main.stdControl.start() Mai
n.stdControl.stop()
Handle the event Timer.fried() i.e. to blink the
red led
53- StdControl.nc interface StdControl command
result_t init() command result_t start()
command result_t stop() - Timer.nc interface Timer command result_t
start(char type, uint32_t interval) command
result_t stop() event result_t fired()
54The Future of Sensors
- Further smaller in size
- Larger in number
- Cheaper in price
- Fixed and mobile
- Greater in capability
- Better connectivity
- More tools for development and debugging
- Better real-time supports and scheduling
- BUT, energy is still a concern
55References
- RFID
- Tom Polizzi, RFID in the Enterprise, pp. 4-13,
pp.42-55. - Christine Legner and Frederic Thiesse,
RFID-Based Maintenance at Frankfurt Airport,
Pervasive Computing, Jan-Mar 2006, pp. 34-39. - Sensors
- www.xbow.com
- www.tinyos.net
- http//www.tinyos.net/tinyos-1.x/doc/tutorial/less
on1.html - http//www.xbow.com/Products/Product_pdf_files/Wir
eless_pdf/MICA.pdf