Protocol Design and Implementation For Wireless Sensor Network
Protocol Design and Implementation For Wireless Sensor Network
k
= 1ckp(1p)
k1
represents the probability
to have again k packets to transmit in the next CSMA-slot.
Once a transmission succeeds, the cluster has K 1 packets to forward.
Hence, the probability of successful transmission in the following CSMA-slot
is P
k1
= c(k 1)p(1 p)
(k2)
. This allows representing the cluster behavior
as a Discrete Time Markov Chain (DTMC), where the state is the number
of nodes that still need to forward a packet (Fig. 3.3). The state 0 is the
steady state solution of the chain.
According to the CSMA fashion, a lower bound for the packet loss prob-
ability can be found considering that all nodes are able to sense ongoing
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 27
Figure 3.3: Markov Chain
transmissions avoiding to access and to collide. With this hypothesis the
probability of successful transmission can be associated to the probability to
have at least one node attempting to transmit the packet. Hence,
P
k
= c[1 (1 p)
k
] (3.3)
Depending on the implementation of the CSMA and network parameters
(e.g. network size), the real performance lays between these two bounds.
Possible failures in the sensing procedure can happen when two sens-
ing procedures are simultaneous or a node start a transmission between the
posting and the execution of a sending task of another node. To take into
account possible collisions between packets we can consider the latter derived
expression, introducing a factor , that represents the probability of a wrong
sensing when two nodes are involved.
P
k
= c[1 (1 p)
k
](1 )
[p(k1)]
(3.4)
Considering a transmitting node, p(k 1) indicates the expected number
of additional accesses to the channel in the same CSMA-slot.
Introducing a CSMA/CA mechanism, the parameter is much closer to
1 and the approximation with the lower bound is satisfactory.
3.4.1 Absorption Time
In this section we determine the expected time (in number of steps) to reach
the absorbing state starting from a given state between 1 and k. This is
equivalent to determining the average number of CSMA-slots required for
forwarding a number of packets between 1 and k.
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 28
Since expectation is a linear operator and considering that the chain can
advance only one step at a time, the expected time to absorption starting
from a state k is equivalent to the sum of the expected time to transition
from state k to state (k 1) plus the expected time to transition from state
(k 1) to (k 2) and so on until state 0 is reached. The distribution of the
required steps in the transition from the state j to the state j 1 is geometric
of parameter (1 P
j
). Consequently, the expected time to transition from
state j to state (j 1) is bounded by:
(j) =
1
P
j
=
1
cjp(1 p)
j1
(3.5)
The expected number of steps to reach the absorption starting from state k
is:
k
=
k
j=1
(j) =
k
j=1
1
cjp(1 p)
j1
(3.6)
Using Equation 3.4 for P
j
, the expected absorption time is:
k
=
k
j=1
1
c[1 (1 p)
j
](1 )
[p(j1)]
(3.7)
3.4.2 Access Probability
The access probability p is a critical parameter for the protocol performance.
Recalling the Equation 3.6, it can be easily found that, for each transition
from state j to (j 1), the access probability that minimizes the transition
time is
p
j
=
1
j
(3.8)
With this choice, the expected number of transmission attempts for each slot
is exactly one. It maximizes channel utilization keeping a low probability of
collision. A negative aspect is that the channel access probability depends
on the entire networks behavior. It is not easy to implement this choice in
a distributed fashion because nodes may not be aware of the fact that other
nodes completed a successful transmission. Moreover there is no way to tell it
to them without incurring into major overhead costs. A strategy is that each
node automatically updates its access probability evaluating the expected
time to complete a transition in the chain, but it is heavy to compute. A
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 29
simpler and useful choice is to x a constant value that remains the same
during the whole TDMA-slot duration for each node.
It is possible to show that nding a closed form expression for p that
minimizes
k
in Equation 3.6 is a non-trivial problem [4].
In paper [2], Bonivento et al. propose a suboptimal choice, xing the access
probability
p =
1
k
(3.9)
for the whole duration of the slot, which is not optimal for the expected
forwarding time, but it ensures that at the beginning of the TDMA-slot
the expected number of transmission attempts for each CSMA-slot is one.
Initially the channel is high utilized, while as the time advances, it will be
less and less utilized.
The expressions of the absorption time become:
k
=
k
c
k
j=1
1
j
_
1
1
k
_
j1
(3.10)
and
k
=
k
j=1
1
c
_
1
_
1
1
k
_
j
_
(1 )
[
(j1)
k
]
(3.11)
A closed form solution for
k
is not easy to calculate, but some useful
upper and lower bounds are proved in reference [2]. In particular an upper
bound for both of the expressions is:
k
k ln(k) (3.12)
where is a constant.
Fig.3.4 reports a comparison between the expected absorption time against
the number of packets k obtained from Equation 3.6 and the upper bound
in Equation 3.12. Even if the upper bound is much higher than the real
expected time, it will be useful in Section 3.4.4 to establish relations with
other protocol parameters.
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 30
0 2 4 6 8 10 12 14 16 18 20
0
20
40
60
80
100
120
140
160
180
Number of forwarding packets (k)
N
u
m
b
e
r
o
f
C
S
M
A
-
s
l
o
t
s
p
e
r
T
D
M
A
-
s
l
o
t
Expected Forwarding Time for Fixed Access Probability
Upper Bound
Exact Values
Figure 3.4: Expected forwarding time in number of CSMA-slot for p = 1/k
3.4.3 Scheduling Policy
The scheduling policy must consider the dierent trac intensity in the net-
work; in general it is opportune to evacuate the clusters close to the Controller
rst, to minimize the storage requirement in the network.
The organization of the TDMA-cycle has to refer to the same considera-
tion. For instance, clusters closer to the Controller experience more trac
intensity and so more than one transmitting TDMA-slot can be assigned
to them. Assuming the same average trac for every cluster and referring
again to the scenario in Fig. 3.1, a good scheduling policy would be to assign
one transmitting TDMA-slot per TDMA-cycle to cluster 1, two transmitting
TDMA-slots to cluster 2 and three transmitting TDMA-slots to cluster 4; in
the same way in the other path one and two TDMA-slots allocated respec-
tively for cluster 3 and 5.
The number of TDMA-slots in a TDMA-cycle is 9. A suitable scheduling
table for such a policy is presented in Fig. 3.5.
In the general case, assuming P paths in the network and calling B
i
the
number of cluster in the i
th
path, the number of TDMA-slots in a TDMA-
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 31
Figure 3.5: Example of Scheduling Table
cycle is:
T
f
=
1
2
P
i=1
B
i
(B
i
+ 1) (3.13)
3.4.4 Sustainable Trac
Because of the interleaved schedule, each cluster evacuates all the locally
generated packets before receiving packets to forward.
It is necessary to ensure that the expected time for the evacuation of all the
packets in a cluster is less then or equal to the duration of a TDMA-slot. If it
does not happen, packets can not be disposed with catastrophic consequences
on performance [4].
Consider:
S: duration of a TDMA-slot,
: duration of a TDMA-cycle,
: packet generation rate for each cluster
the number of generated packet during a TDMA-slot is:
k = (3.14)
Using the upper bound of the evacuation time presented in Equation 3.12,
the condition on the sustainable trac can be expressed as:
S ln() (3.15)
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 32
Recalling = ST
f
Equation 3.15 can be simplied in:
S S
max,s
=
exp(T
f
)
1
T
f
(3.16)
Hence, the TDMA-slot duration S is upper bounded, depending on the topol-
ogy (through T
f
) and the packet generation rate .
Rewriting Equation 3.15, we can nd an expression in terms of maximum
sustainable trac
max
for the network, once xed the topology and the
TDMA-slot duration:
max
ln(
max
ST
f
) =
1
T
f
(3.17)
3.5 Energy Consumption
The total energy consumed by the network over a period of time is the
combination of ve components:
energy spent for sensing the channel
energy spent during the transmission stage
energy spent to listen during the listening TDMA-slots
energy spent during the receptions stage
energy spent for the collision avoidance procedure if it is supported
For a simplied analysis, the energy consumption for receiving can be con-
sidered together with the consumption for listening, while the contributes
for sensing the channel and avoiding collision together with the energy for
transmission.
Listening Cost E
ls
Given a listening time t, the energy consumption is the sum of two costs:
a xed wake up cost R,
the listening cost W.
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 33
Therefore, the listening cost is:
E
ls
(t) = R +Wt (3.18)
Now it is important to determine the number of wake-ups and the duration
of the listening time during a TDMA-cycle.
Considering the reference topology, the number of wake-ups is 4. In fact,
nodes in cluster 1 and 3 never wake up for listening, nodes in cluster 2 and
5 wake up once and nodes in cluster 4 wake up twice.
Referring to a general topology with N nodes per cluster and assuming that
all nodes wake up in their listening slot, the total number of wake-ups N
wu
during a TDMA-cycle is:
N
wu
=
N
2
P
i=1
B
i
(B
i
1) (3.19)
Once awake, a node can keep on listening for at most the entire TDMA-
slot duration S.
The total listening cost in a time T can be expressed by:
E
ls
=
T
N
wu
N [R +WS] (3.20)
Transmitting Cost E
tx
The energy consumption for transmissions has two components:
packet transmission cost E
pkt
,
acknowledgement transmission cost E
ack
.
The global contribute depends on the average number of attempted trans-
missions during a TDMA-cycle.
For a transition from a state j to the state j 1 the number of attempted
transmissions N(j) is the average number of nodes attempting to transmit
in a CSMA-slot multiplied by the average number of slots required for the
transition.
N(j) = pj
1
cpj(1 p)
(j1)
(3.21)
During a TDMA-cycle the average number of attempted packet transmissions
is:
N
pkt
= T
f
k
j=1
1
c(1 p)
(j1)
(3.22)
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 34
Since p = 1/k, Equation 3.22 can be simplied as:
N
pkt
= T
f
k 1
c
_
_
1
1
k
_
k
1
_
(3.23)
For high values of k,
_
1
1
k
_
k
1 (e 1)
(k 1) k
the expected number of attempted transmission is a linear function of the
number of packets to transmit. Considering the relation k = :
N
pkt
T
f
c
(e 1) = T
f
A (3.24)
The constant A =
(e1)
c
denote the average number of attempted transmis-
sions for a single packet in a TDMA-slot.
The number of acknowledgement transmissions is linked to the number
of transmitted packets by:
N
ack
= T
f
(3.25)
Consequently, the transmitting cost in a time T is:
E
tx
=
T
[N
pkt
E
pkt
+N
ack
E
ack
] = T T
f
[AE
pkt
+E
ack
] (3.26)
Including a CA mechanism, the expression is slightly dierent. The actual
number of attempted transmissions is reduced and it can be approximated
by the number of successful transmissions:
N
tx,ca
T
f
(3.27)
The cost for collision avoidance is:
E
ca
= N
ca
(R +Wt) (3.28)
N
ca
and t are the number and the duration of clear channel assessments.
Considering a simplied model, the number of channel assessments is:
N
ca
= A
ca
(3.29)
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 35
Total Energy Cost
The total consumption in a time T with access probability p = 1/k can
be expressed by:
E
tot
=
T
[N
pkt
E
pkt
+N
ack
E
ack
+N
wu
N(R +WS)] =
= T [AE
pkt
+T
f
E
ack
] +
T
T
f
N
wu
_
R
S
+W
_
(3.30)
and with CSMA/CA:
E
tot,ca
=
T
[N
pkt
E
pkt
+N
ack
E
ack
+N
ca
N(R +Wt) +N
wu
N(R +WS)] =
= T[AE
pkt
+T
f
E
ack
+A
ca
(R +Wt)] +
T
T
f
N
wu
_
R
S
+W
_
(3.31)
where E
pkt
, E
ack
, R and W are parameters that characterize the phys-
ical layer, is given by the application, T
f
and N depend on the network
topology, so, the only protocol parameter in Equation 3.30 and 3.31 is S.
Moreover, E
tot
(S) is a monotonically decreasing function of S. Hence, the
problem of minimization of the energy consumption can be viewed as a prob-
lem of maximization of the TDMA-slot duration.
3.6 Latency Requirement
The clusters that experience the highest delay are the furthest from the
Controller. The aim is to have the delay of packets coming from those clusters
less than or equal to a given D
max
, the requirement set by the application.
In this model we consider a time-driven data reporting method (see Sec-
tion 2.4). A packet is generated only when a node wakes up in its transmitting
TDMA-slot.
The idea of a uniform distribution of the generating packet rate inside a
TDMA-cycle does not t with the assumed scheduling policy (Section 3.4.3).
In fact, in prexed slots a node is in sleeping state and the sensing function-
ality is assumed to be turned o. The application requirement in terms of
packet generating rate is kept constant not in a single TDMA-cycle but in a
longer term temporal average.
Considering a packet generated from cluster 1, with the discussed scheduling
policy the worst case of delay is when it is generated at the beginning of the
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 36
transmitting TDMA-slot and cluster 4 forwards it to the Controller at the
end of its own transmitting TDMA-slot, that is 3S.
Generalizing to the case of P path with B
i
clusters per path and dening
B = max
1..P
B
i
(3.32)
the worst case delay is:
D = BS (3.33)
Consequently, the requirement on the TDMA-slot duration S is:
S S
max,d
=
D
max
B
(3.34)
If during a TDMA-slot not all the packets are forwarded, latency over the
deadline is observed. It can be useful to model this phenomenon of outage
referring to the Discrete Time Markov Chain (DTMC) presented in Section
3.4.
Using the Central Limit Theorem, the distribution of the time to forward
packets is a normal variable whose mean and variance is given by the
sum of the expected times and variances to advance a step in the chain.
Let
ev
be the time to evacuate packets and m
ev
and var
ev
its mean and
variance. Consequently,
ev
can be modelled as
ev
N(m
ev
,
2
ev
). In case
there is no carrier sense and collision avoidance:
m
ev
=
j=1
1
cpj(1 p)
j1
(3.35)
2
ev
=
j=1
cpj(1 p)
j1
[1 cpj(1 p)
j1
]
2
(3.36)
while in the general case:
m
ev
=
j=1
1
c[1 (1 p)
j
](1 )
[p(j1)]
(3.37)
2
ev
=
j=1
c[1 (1 p)
j
](1 )
[p(j1)]
[1 c[1 (1 p)
j
](1 )
[p(j1)]
]
2
(3.38)
Consequently, the probability of outage in a given TDMA-slot can be
approximated by:
P
r
[
ev
S]
1
2
erfc
_
S m
ev
_
2
ev
_
(3.39)
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 37
where erfc() is the complementary error function dened as:
erfc(x) =
2
_
x
e
t
2
dt (3.40)
3.7 Error Rate Requirement
In the following a method to establish the constraint PRR PRR
min
is
discussed.
3.7.1 Problem Formulation
The reference model is the same Discrete Time Markov Chain (DTMC) pre-
sented in Section 3.4, where the state is the number of packets that still need
to be forwarded.
We recall the parameters:
S: TDMA-slot duration (in number of CSMA-slots)
k: number of packets to send in the cluster
P
n
: probability of transition from the state n to the state n 1
P
n
denotes the probability of successful transmission when there are n packets
to transmit.
We dene P(n, S, k) the probability to be in the state n after a number S
of steps in the DTMC. In other words, P(n, S, k) represents the probability
of losing n of k packets. If there are still n packets left after S CSMA-slots,
this packets are discarded.
Consequently, the PRR can be written as:
PRR =
k
n=0
P(n, S, k)w(n) (3.41)
where
w(n) =
k n
k
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 38
3.7.2 P(n,S,k) Evaluation
It is hard to evaluate easily P(n, S, k) for a TDMA/CSMA with ACK and
retransmission.
We can consider a specic example to understand a general law. Let k
be 3 and S equal to 4, we can try to determinate P(1, 4, 3). The associated
Markov Chain is in Figure 3.6.
Figure 3.6: Markov Chain for n = 1, S = 4, k = 3
P(1, 4, 3) is given by the sum of the probabilities of all the possible paths
that start from the state 3 and end in 1, in exactly 4 steps. So:
P(1, 4, 3) = P
2
P
3
[P
1
P
1
+P
2
P
2
+P
3
P
3
+P
1
P
2
+P
1
P
3
+P
2
P
3
] (3.42)
The product P
2
P
3
is present in all the paths, while, inside the brackets, there
are all the combinations with repetition of the elements P
1
, P
2
, P
3
, taken 2
at a time.
It is possible to generalize this approach, dening a set
V (n) = {P
n
, P
n+1
, ..., P
k
} (3.43)
and a matrix that contains all the N
c
combinations with repetition of the
elements in V (n), taken in groups of n +S k.
A(n) = [a
h,j
]
Sk+n
Nc
(3.44)
In the previous example,
V (1) = {P
1
, P
2
, P
3
} (3.45)
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 39
A(1) =
_
_
P
1
P
1
P
2
P
2
P
3
P
3
P
1
P
2
P
1
P
3
P
2
P
3
_
_
The general expression for P(n, S, k) is given by:
P(n, S, k) =
k
m=n+1
P
m
_
_
Nc
j=1
(Sk)+n
h=i
a
h,j
_
_
(3.46)
3.7.3 Packet Reception Rate
Implementing Equations 3.41 and 3.7.3 in Matlab, it is possible to evalu-
ate the PRR of SERAN protocol, and to obtain bounds for the protocol
parameters.
We implement the simplied model for P
n
, using the expression:
P
n
= cnp(1 p)
n1
(3.47)
As already said this gives us a worst case scenario for the CSMA, but the
analysis holds for the other models as well.
The Fig. 3.7 represents the PRR as function of S, varying the number of
packets k.
In Fig. 3.8, the relation between the number of packets K and the value
of S that gives a xed PRR is presented. For instance, it shows that 3 packets
require a TDMA-slot of about 12 CSMA-slots, to guarantee PRR = 95%,
10 slots for PRR = 90% and 8 slots for PRR = 85%.
The computation for the Equation with high values of k is heavy and long.
Hence, the Fig. 3.7 and 3.8 can not be easily drawn for k > 10. On the other
side, the relation between S and k for xed PRR is almost linear and the
behavior for k > 10 can be estimated.
An upper bound for the PRR can be determined in a CSMA scenario
with perfect collision avoidance, where:
P
k
= c[1 (1 p)
k
] (3.48)
In Fig. 3.9, a comparison between upper and lower bound is shown for k = 3.
These results will be validated in Section 5.2.
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 40
0 5 10 15 20 25 30 35 40
0.4
0.5
0.6
0.7
0.8
0.9
1
(S-K)
P
R
R
K=2
K=3
K=4
K=5
K=6
Figure 3.7: PRR vs.(S k), for dierent values of k
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7
5
10
15
20
25
30
35
K
S
PRR=95%
PRR=90%
PRR=85%
Figure 3.8: S vs.k, for xed values of PRR
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 41
2 4 6 8 10 12 14 16 18
0.5
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.9
0.95
1
S-K
P
R
R
PRR vs (S-K) for K=3
Upper Bound
Lower Bound
Figure 3.9: PRR vs.(S k), for k = 3 - upper and lower bounds
3.8 Optimization Problem
Once established mathematical relations in terms of energy cost function,
latency and error rate requirements, it is possible to dene the choice of the
parameters that optimize the performance of SERAN. We recall the reference
problem:
minimize E
tot
subject to PRR PRR
min
D D
max
(3.49)
In Appendix A, we report the complete list of parameters in the proto-
col. Here, we recall the parameters that are directly inuenced by MAC &
Routing layers of SERAN:
access probability p,
TDMA-slot duration S.
The optimization algorithm works in two phases: an o-line and an on-
line optimization.
CHAPTER 3. MODEL AND OPTIMIZATION PROBLEM 42
O-line optimization
According to the analysis in Section 3.4.2, an appropriate choice of the access
probability is:
p =
1
k
(3.50)
where k is the average number of packets that a cluster sends in a TDMA-
slot. Recalling k = , and = ST
f
, we have:
p =
1
S T
f
(3.51)
The only variable is S.
From Section 3.5, it is known that the energy cost is a monotonically
decreasing function of S. Without considering any application constraint,
S can be increased until it reaches the maximum sustainable trac S
max,s
derived in Section 3.4.4.
As shown in Section 3.6, the maximum delay requirement D
max
provides
an upper bound for S, given by: S
max,d
=
Dmax
B
Hence, we will x:
S = min{S
max,s
, S
max,d
} (3.52)
This choice has to be compared with the error rate requirement, consid-
ering the analysis in Section 3.7. If the value of S is in compliance with the
constraints, it is xed as initial TDMA-slot duration.
On-line optimization
The network starts operating with the selected optimal parameters. Real-
time, the Controller determines the actual values of packet delay and error
rate and modies the value of S, to enhance the performance. There are
various possible situations:
1. The measured delay can be lower than the worst-case scenario used for
the initial optimization. In this case, if the error rate constraint allows
it, the protocol is entitled to increase the TDMA-slot duration.
2. The delay is on the boundary, but PRR can be higher than the min-
imum threshold. However, S can be slightly increased and the gen-
erated lost packets rate due to the overtaken delay constraint, can be
supported by the network.
Chapter 4
Protocol Implementation
In this chapter, we introduce the hardware and software technologies used to
implement the WSN test-bed environment. We report some implementation
tricks and procedure to guarantee the correct behavior of SERAN protocol
and also diculties and drawbacks. Eventually, we describe a specic model
to evaluate the network lifetime for the presented platform.
4.1 Hardware Technologies
A sensor network is an embedded system, or rather a digital system com-
mitted to specic duties. Each node consists of a sensor board and a
programming board [8]. The sensor board could be dierentiated by the
specic kind of sensor: light, temperature, humidity, but also distance track-
ing or GPS receiver. The programming board supplies wireless communica-
tion capabilities between nodes or wired between a node and a base station
(PC). The benchmark is the IEEE 802.15.4 radio standard, with low data
rate (around 250 kbps). A node is equipped with a microcontroller (8-16 bit)
and low storage memories.
4.1.1 Tmote Sky platform
Tmote Sky is a node platform for low power and high data-rate sensor net-
work applications designed with the dual goal of fault tolerance and devel-
opment ease [29]. Designed at the University of California, Berkeley, it is
the successor of the popular TelosA and TelosB research platforms. The
Tmote Sky platform oers vertical integration between the hardware and
43
CHAPTER 4. PROTOCOL IMPLEMENTATION 44
the TinyOS operating system. The Tmote Sky module has integrated sen-
sors, radio, antenna, microcontroller and programming capabilities. The low
power operation of the module is due to the low power TI MSP430 micro-
controller. This 16-bit RISC processor features low active and sleep current
consumption. In order to minimize power consumption, the processor in
sleep mode during majority of the time, wakes up as fast as possible to pro-
cess, then returns to sleep mode again. Tmote Sky provides an easy-to-use
USB protocol from FTDI to communicate with the host computer for pro-
gramming, debugging and data collection. It features the Chipcon CC2420
radio for reliable wireless communications [32], which is high congurable for
many applications with the default radio setting providing IEEE 802.15.4
[22] compliance. The radio provides fast data rate and robust signal. It
is controlled by the microcontroller through the SPI port and can be shut
o for low power duty cycled operation. Tmote Skys internal antenna is
an Inverted-F microstrip design, with a pseudo omnidirectional pattern that
may attain 50 meter range indoors and up to 125 meter range outdoors.
The picture in Fig. 4.1 shows a Tmote Sky platform, compared in size with
a Swedish coin.
Figure 4.1: Tmote Sky platform
CHAPTER 4. PROTOCOL IMPLEMENTATION 45
4.2 Software Technologies
The link between hardware platform and software equipment is stricter than
the other technologies, because of the particular resource constraints (e.g.
low power consumption, reduced memory). It follows the demand of specic
ad hoc software technologies. Hence, operating systems for WSN nodes are
typically less complex than general-purpose operating systems. In general
operating systems in WSNs should fulll these requirements:
Robustness: once deployed, a sensor network must work unattended
for months or years;
Low resource usage: sensor network nodes include very small RAM,
and run o batteries;
Multiple service implementation: applications should be able to
choose between various implementations;
Adaptability to evolutions: mote hardware is in constant evolu-
tion; applications and most system services must be portable across
hardware generations;
Adaptability to application requirements: applications have very
dierent requirements in terms of lifetime, communication, sensing, etc.
On the other side, they do not require interactivity in the same way as
applications for PCs and the operating system does not need to include
support for user interfaces.
4.2.1 TinyOS
TinyOS is an embedded operating system expressly designed for WSNs. The
basic concepts behind TinyOS are:
application compiled and used for programming a single node.
Hurry Up and Sleep Philosophy; so when a node wakes up for an event,
it has to execute the associated action as fast as possible, then go back
to sleep.
CHAPTER 4. PROTOCOL IMPLEMENTATION 46
Because of the extremely limited resources of the hardware platforms, it
is dicult to virtualize system operation to create the kinds of system ab-
stractions that are available in more resource rich systems. The concurrency
model and abstractions provided by operating system therefore signicantly
impact the design and development process.
The TinyOS 2.x family is the latest stable branch of the operating sys-
tem and is used in this section to describe the basic design principles. The
TinyOS development environment directly supports a variety of device pro-
grammers and permits programming each device with a unique address at-
tribute without having to compile the source code each time. The TinyOS
system, libraries and applications are written in nesC, a version of C that
was designed for programming embedded systems.
The characteristics of TinyOS 2.x are listed as [24]:
Resource constrained concurrency
Concurrency is the main important software challenge. The system
manages several components, as sensors, ADCs, radio and ash mem-
ory. Generally, an operation is started on a device, which runs concur-
rently with the main processor until generating a response. Meanwhile,
other devices may also need service, requiring the system to manage
several event streams. A conventional OS uses multiple threads, each
with its own stack. The thread dedicated to a device issues a command
and then sleeps or polls until the operation completes. The OS switches
among threads by saving and restoring their registers, and threads co-
ordinate with others by using shared variables as ags and semaphores.
This is problematic for embedded designs because multiple stacks must
be kept in memory and each thread can potentially interact with any
other whenever it accesses a shared variable. This can lead to dead-
locks, requiring complex schedulers to meet real-time requirements and
deadlines. TinyOS attacks the problem by oering dierent levels of
concurrency, in a structured event-driven execution.
Structured event-driven execution
TinyOS provides a structured event-driven model. A complete system
conguration is formed by wiring together a set of components for
a target platform and application domain. Components are restricted
objects with well-dened interfaces, internal state, and internal con-
currency. Primitive components encapsulate hardware elements (radio,
CHAPTER 4. PROTOCOL IMPLEMENTATION 47
ADC, timer, bus ...). Their interface reects the hardware operations
and interrupts; the state and concurrency is that of the physical de-
vice. Higher-level components encapsulate software functionality, but
with a similar abstraction. They provide commands, signal events,
and have internal handlers, task threads, and state variables. This
approach accommodates hardware evolution, including major changes
in the hardware/software boundary, by component replacements. Its
memory footprint is small, despite supporting extensive concurrency,
requiring only a single stack and a small task queue. However, the
modular construction provides exibility, robustness, and ease of pro-
gramming. A restricted form of thread, called a task, is available within
each component, but interactions across components are through ex-
plicit command/event interfaces. The wiring of components and the
higher priority of asynchronous events over tasks permit the use of
simple schedulers, and in TinyOS 2.0 even the scheduler is replaceable.
Components and bidirectional interfaces
TinyOS supports component composition, system-wide analysis, and
network data types. A component has a set of bidirectional command
and event interfaces implemented either directly or by wiring a collec-
tion of subcomponents. The compiler optimizes the entire hierarchi-
cal graph, validates that it is free of race conditions and deadlocks,
and sizes resources. The TinyOS community has developed plug-ins
for integrated solutions and several visual programming environments
for this component-based programming style. Network data types sim-
plify protocol implementation. While network packets have a particular
specied format, data representation in a computer program depends
on word width and addressing of the host processor, so most protocol
code contains machine-dependent bit-twiddling and run-time parsing.
Because TinyOS uses network types with a completely specied rep-
resentation, the compiler provides ecient access to packet elds on
embedded nodes, as well as Java and XML methods for packet han-
dling on conventional computers and gateways.
Split-phase operations
Split-phase operations are a typical use of bidirectional interfaces. Tiny-
OS has a non-preemptive nature and does not support blocking opera-
CHAPTER 4. PROTOCOL IMPLEMENTATION 48
tions. This means that all long-latency operations have to be realized
in a split-phase fashion, by separating the operation-request and the
signaling of the completion. The client component requests the execu-
tion of an operation using command calls which execute a command
handler in the server component. The server component signals the
completion of the operation by calling an event handler in the client
component. In this way, each component involved in the interaction is
responsible for implementing part of the split-phase operation.
Sensing
TinyOS 2.0 provides sensor drivers, which scale from low-rate, low-
power sampling of environmental factors to high-rate, low-jitter sam-
pling of vibration or acceleration. Drivers handle warm-up, acquisition,
arbitration, and interface specics. Since sensor selection is closely tied
to the application and mechanical design, drivers must be easily con-
gured and tested, rather than dynamically loaded after market.
Communication and networking
Communications and networking have driven the TinyOS design as
available radios and microcontroller interfaces evolved. The commu-
nication subsystem has to meet real-time requirements and respond
to asynchronous events while other devices and processes are serviced.
The TinyOS 2.0 radio component provides a uniform interface to the
full capabilities of the radio chip. The link-level component provides
rich media access control (MAC) capabilities, including channel activ-
ity detection, collision avoidance, data transfer, scheduling, and power
management, allowing networking components to optimize for specic
protocols. The TinyOS community has developed networking layers
targeted at dierent applications with dierent techniques for discov-
ery, routing, power reduction, reliability, and congestion control. These
networking layers provide higher-level communication services to em-
bedded applications with a TinyOS programming interface. The most
widely used services for WSNs are reliable dissemination, aggregate
data collection, and directed routing. To collect and aggregate data
from the WSN, nodes cooperate in building and maintaining one or
more collection trees, rooted at a gateway or data sink. Each node
gathers link-quality statistics and routing cost estimates through all
CHAPTER 4. PROTOCOL IMPLEMENTATION 49
kinds of communication, including routing beacons, packet forwarding,
and passive trac monitoring.
Storage
Nonvolatile storage is used in WSNs for logging, conguration parame-
ters, les, and program images. Several dierent kinds of Flash memory
are used with dierent interfaces and dierent protocols. Lower-layer
TinyOS components provide a block storage abstraction for various
Flash chips and platform congurations, with one or more application-
level data services provided on this substrate.
4.3 Time Synchronization and Network Ini-
tialization
Time synchronization is a critical issue in distributed WSN. The TDMA-
based MAC component of SERAN imposes a strict synchronization between
clusters, while the slotted CSMA component requires robustness against
clock drift between nodes inside a cluster.
4.3.1 Token Passing Procedure
SERAN implements a token passing procedure that:
ensures synchronization between nodes and clusters;
allows initializing and self conguring to the optimal working point;
allows for the addition of new nodes.
A token is a particular message that carries the information on the duration
of a TDMA-slot and a TDMA-cycle, the transmitting and receiving schedule
of a TDMA-cycle, a synchronization message carrying the current execution
state of the TDMA-cycle.
The Controller has all the information to calculate the optimal set of param-
eters, consequently, it is able to generate a token before the network starts
operating. The network initialization algorithm works as follows:
1. When the network starts, all nodes are awake and listening. Nodes
remain in this state and cannot transmit before receiving the token.
CHAPTER 4. PROTOCOL IMPLEMENTATION 50
2. The Controller multi-casts the token to all nodes of one of the connected
clusters. In general this is the rst in the scheduling table. In the
reference example (Fig. 3.1), assume the selected cluster is the cluster
4.
3. Nodes of the selected cluster read the information on scheduling and du-
ration of TDMA-slot and TDMA-cycle. Moreover, each node acquires
the information about the global time and launches periodic timers for
CSMA and TDMA slots. In the meantime, a random back-o timer
starts for each node before sending an acknowledgement.
4. The rst node that expires the back-o time sends the acknowledge-
ment to the Controller and becomes the token forwarder. Then, all
nodes in the cluster go to sleep.
5. At the beginning of the second TDMA-slot the token forwarder wakes
up and immediately multi-casts the token to all nodes in the next clus-
ter (i.e. cluster 2).
6. With the same random acknowledgement-based scheme, a node is elected
token forwarder for nodes in the following cluster (i.e. cluster 1).
7. After the rst branch of the routing tree is explored, the Controller
sends a token to cluster 5, the new branch is explored, and so on.
Information about routing and TDMA-slot duration needs also to be
updated during the network operation. Hence, the Controller periodically
performs a token refreshing procedure. It is a critical phase because the
Controller needs to ensure that all nodes in the network receive the new
token. First, all nodes should be in listening state and, moreover, when the
token is forwarded along the network, the scheduled packet transmission has
to be interrupted, to avoid collisions.
If the frequency of token refreshing is high, the response of the proto-
col to variation in the surrounding conditions is faster and the adaptability
increases. On the other side, the procedure is costly in terms of energy con-
sumption. In our implementation, we do not consider strict requirements
on the protocol adaptability, while the minimum energy consumption is fun-
damental. We think that a suitable choice of the refreshing period is 20
TDMA-cycles.
CHAPTER 4. PROTOCOL IMPLEMENTATION 51
Nodes are informed by the Controller about the refreshing period through
the rst token passing. We can also suppose that the Controller can mod-
ify this value and update it during each token refreshing, according to the
network behavior.
4.4 MAC/Routing Implementation
SERAN MAC and Routing protocols are introduced in Section ??. Here, we
discuss some details referred to the specic implementation in TinyOS 2.x on
Tmote Sky motes. In Fig. 4.2 we present a useful ow diagram, describing
the node activities in transmission and reception.
Carrier Sense Carrier Sense
Broadcasng Broadcasng
the Packet the Packet
Waing for ACK Waing for ACK
Back Back- -o o
Time Time
Is it free? Is it free?
Y N
Is it free? Is it free?
Y N
Listening Listening
Back Back- -o Time o Time
Any Packet Any Packet
Received? Received?
Y N
Has anybody Has anybody
sent ACK? sent ACK?
Y N
Discarding Discarding
Packet Packet
Sending Sending
ACK ACK
Listening Listening
Back Back- -o Time o Time
Any Packet Any Packet
Received? Received?
Y N
Any Packet Any Packet
Received? Received?
Y N
Has anybody Has anybody
sent ACK? sent ACK?
Y N
Has anybody Has anybody
sent ACK? sent ACK?
Y N
Discarding Discarding
Packet Packet
Sending Sending
ACK ACK
Figure 4.2: Flow diagram of SERAN Protocol: transmission side (left) and
receiving side (right)
We adapted the SERAN protocol stack to the CC2420 Radio stack layers
implemented in TinyOS 2.x (TEP 126 of Ref. [30]) and reported in Fig. 4.3:
ActiveMessageP: This is the highest layer in the stack, responsible for
lling in details in the packet header and providing information about
the packet to the application level.
UniqueSend: This layer generates a unique Data Sequence Number
(DSN) byte for the packet header. This byte is incremented once per
CHAPTER 4. PROTOCOL IMPLEMENTATION 52
outgoing packet, starting with a pseudo-randomly generated number.
A receiver can detect duplicate packets by comparing the source and
DSN byte of a received packet with previous packets. DSN is dened
in the 802.15.4 specication [31].
PacketLink: This layer provides automatic retransmission functionality
and is responsible for retrying a packet transmission if no acknowledge-
ment was heard from the receiver.
CC2420AckLplP / CC2420NoAckLplP: These layers provide asynchronous
low power listening implementations. AckLplP implementation sup-
ports acknowledgement gaps during the preamble. The NoAckLplP
implementation does not support it.
UniqueReceive: This layer maintains a history of the source address
and DSN byte of the past few packets it has received, and helps lter
out duplicate received packets.
TinyosNetworkC: This layer allows the TinyOS 2.x radio stack to inter-
operate with other non-TinyOS networks.
CsmaC: This layer is responsible for dening 802.15.4 FCF byte infor-
mation in the outbound packet, providing default back-o times when
the radio detects a channel in use, and dening the power-up/power-
down procedure for the radio.
TransmitP/ReceiveP: These layers are responsible for interacting di-
rectly with the radio through the SPI bus, interrupts, and GPIO lines.
The main part of SERAN code belongs to the Application Layer of the
stack, but some parts are mixed with the other layers. Awake and sleeping
states are governed by the SplitControl interface. It is used for switching
between the on and o power states of the component providing it, with
the functions start() and stop(). The implementation of the SplitControl
interface is dened in the CC2420CsmaP component.
The TDMA and CSMA slotted structure is realized with the instances
of the TinyOS 2.x TimerMilliC component, wired to the interface Timer <
Tmilli > that provides a set of commands to handle periodic events. It
ensures a precision in order of milliseconds.
CHAPTER 4. PROTOCOL IMPLEMENTATION 53
Application Layer
Active Message Layer
Unique Send Layer
Packet Link Layer (optional)
Low Power Listening (opt)
Unique Receive Filtering Layer
CSMA
SPI bus, GPIO, Interrupt, Timer
ReceiveP
6LowPAN Network Layer (opt)
TransmitP
Figure 4.3: Architectural layers of CC2420 Radio stack
Back-o timers at MAC layer are managed by the TinyOS 2.x interface
Alarm < T32khz, uint32
t
>, with a 32 microseconds precision, wiring the
component AlarmMultiplexC.
The random components are achieved by the Random interface, provided
by the RandomC conguration, through the function rand16(), that returns
a 16-bit pseudo-random number. The conguration RandomC maps the
standard number generator to a specic algorithm called multiplicative lin-
ear congruential generator (MLCG) [33]. Once the code is compiled the
sequence of the generated random values is the same for each repetition of
the experiment. To increase the randomness, we combined random numbers
with the current value of one of the running timers, obtained with the func-
tion getNow(). For instance, that procedure is used to generate the channel
access probability p. The interfaces Send and Receive dene commands and
events in transmission and reception of data messages.
CHAPTER 4. PROTOCOL IMPLEMENTATION 54
4.4.1 Acknowledgement Mechanism
The default MAC code of TinyOS 2.x implements two types of acknowledge-
ments:
Hardware ACK, directly implemented in the transceiver.
Software ACK, described by the specic interface PacketAcknowledge-
ments.
Originally, the CC2420 radio stack only used hardware generated auto ac-
knowledgements provided by the CC2420 chip itself. This led to some issues,
such as false acknowledgements where the radio chip would receive a packet
and acknowledge its reception and the microcontroller would never actually
receive the packet. The current CC2420 stack uses software acknowledge-
ments, which have a higher drop percentage. When used with the Send and
Receive interfaces, dropped acknowledgements are more desirable than false
acknowledgements. Received packets are always acknowledged before being
ltered as a duplicate.
The peculiarity of SERAN acknowledgement mechanism is that a node,
during the random back-o time, should listen to possible ACK transmissions
coming from other nodes, before sending its ACK. The implementation of this
mechanism above the standard Software ACK is very tricky. After various
tests, we decided to implement the acknowledgement mechanism using the
conguration of Send interface, the same of the data packet transmissions.
We measured the minimum back-o granularity in the order of
t
= 2
ms. It means that, if a node decides to send the acknowledgement, the
other nodes in the same cluster require at least 2 milliseconds to receive and
elaborate it, before sending their ACK.
CHAPTER 4. PROTOCOL IMPLEMENTATION 55
4.5 Network Lifetime
Network lifetime is the time span from the deployment to the instant when
the network is considered nonfunctional [27]. When a network should be
considered nonfunctional is, however, application-specic. For instance, it
can be the instant when the rst sensor dies, a percentage of sensors die, the
network partitions, or the loss of coverage occurs. In this analysis we refer
to the battery lifetime of the sensor nodes in the various clusters.
To achieve a good estimation of the network lifetime, we should refer
to a model for the instantaneous power consumption of the motes. In this
study the platform is represented by Tmote Sky mote, with CC2420 Chipcon
wireless transceiver.
4.5.1 Characterization of the CC2420 Transceiver
The consumption pattern can be determined considering dierent states of
operation. In particular the CC2420 transceiver supports four states [25]:
Shutdown: the chip is completely deactivated and the clock is switched
o. It reacts only to a particular startup strobe.
Idle: the chip can acquire commands and the clock is turned on.
Transmit: chip, clock and radio are turned on in transmitting mode
Receive: chip, clock and radio are turned on in receiving mode.
The data sheet of CC2420 component species typical, maximum and min-
imum current consumption. The state diagram in Fig. 4.4 reports typical
values of current I and transition times.
The average power consumed is P = V I. Considering a voltage supply
V = 3V
1
, the power consumption for each state is evaluated in Table 4.1.
Interesting parameters are the energy per bit E
= 743.2J, which
corresponds to an average node power consumption of P = 68.8W. Conse-
quently, according to Equation 4.3 the estimated lifetime is:
T =
2
7414P + 0.1
3.2 years (5.1)
For instance, in paper [28], the lifetime of a B-MAC protocol (Section
2.5.3) in indoor monitoring applications is estimated in 1.1 years.
2
The active time is the sum of idle, transmission and reception time. It is related to
the duty cycle
CHAPTER 5. EXPERIMENTAL RESULTS 69
Idle 0,90%
Reception 1,10%
Transmission 98%
Reception
Idle
Shutdown 93,89%
Active Time 6,11%
0,90%
1,10%
43%
Active Time Distribution
0,9%
1,1%
98,0%
Transmission
Reception
Idle
Time Distribution
93,89%
6,11%
Shutdown
Active Time
Figure 5.9: Time distribution
Chapter 6
Conclusions
6.1 Conclusions of the Work
The achieved objectives of this Thesis can be resumed, referring to dierent
levels.
Regarding theoretical aspects, we provided a survey on the applications
and the design of cross-layer protocols on WSNs. We focused the attention
on SERAN, a semi-random protocol for clustered wireless sensor networks,
proposed in its rst formulation in paper [1]. SERAN satises system level
requirements on packet delay and successful transmission probability while
minimizing energy consumption. SERAN is characterized by a mathematical
model that allows for cross-layer optimization without the need for extensive
simulations.
We enhanced the optimization problem, including a mathematical analy-
sis of the PRR. The main advantage is the possibility of an on-line optimiza-
tion, which considers the actual dynamics in the network.
The major part of the work concerned the implementation of SERAN on
Tmote Sky motes, using TinyOS.
The presented experimental results demonstrate the eectiveness of the
implementation. The protocol allows the network to get excellent perfor-
mance for low data rate transmissions, ensuring low average node duty cycle,
which yields a long network lifetime.
70
CHAPTER 6. CONCLUSIONS 71
6.2 Future Developments
An ongoing project is the denition of a GUI interface for SERAN, that allows
showing the behavior of the network with dierent levels of abstraction.
Future work includes performing a set of experiments with a wide experi-
mental evaluation of the SERAN protocol, in several scenarios of trac load,
node clustering, cluster size, channel conditions, and performance require-
ments.
An improvable part of the protocol is the acknowledgement-based con-
tention scheme. We noticed it gives physical limits to the CSMA-slot dura-
tion. Dierent mechanisms, as the use of Beacon messages in paper [6], can
be exploited, comparing SERAN with other solutions of cross-layer protocol.
Also the interaction with the standard IEEE 802.15.4 [31] might be analyzed,
both in the mathematical formulation and in the practical implementation.
Furthermore, aggregation algorithms can be included in the framework
to increase the eective throughput at no power cost, whenever aggregate
information is required.
Appendix A
Protocol Parameters
Topology Parameters
P Number of paths
B
i
Number of clusters in the path i
N Number of nodes per cluster
Channel Parameters
c Channel gain
Application Parameters
Packet generation rate
PRR
min
Minimum Packet Reception Rate
D
max
Maximum end-to-end Delay
MAC/Routing Parameters
p Access probability
S TDMA-slot duration
T
f
Number of TDMA-slots in a TDMA-cycle
CSMA-slot duration
TDMA-cycle duration
k Number of packets to send in the cluster
k
Expected time to evacuate a cluster
72
APPENDIX A. PROTOCOL PARAMETERS 73
Physical Layer Parameters
E
pkt
Energy spent for a single data transmission
E
ack
Energy spent for a single ACK transmission
R Energy spent for a single wake up
W Energy (per unit time) spent during the listening
N
pkt
Average number of data transmissions
N
ack
Average number of ACK transmissions
N
wu
Total number of wake-ups
TinyOS Parameters Value
DATA CHANNEL Data communication channel 15
ACK CHANNEL Acknowledgement channel 14
TOKEN CHANNEL Synchronization channel 15
MESS LENGTH Length of data message 28 bytes
ACK LENGTH Length of ACK 24 bytes
TOKEN LENGTH Length of synchronization message 28 bytes
Appendix B
Packet Structure
SERAN Payload
typedef nx struct DataMsg {
nx uint16 t seqnum; Data Sequence Number
nx uint8 t sourceid; Software ID of the source node
nx uint8 t forwardid; Software ID of the node that forwards the packet
nx uint8 t destgroupid; Software ID of the destination node
nx uint8 t tracrate; Trac rate in pkt/s
nx uint8 t TDMAslotdur; TDMA-slot (in number of CSMA-slots)
nx uint8 t slots; CSMA-slot number
nx uint16 t dutycycle; Evaluated node duty cycle
nx uint16 t delay; Time-stamp for the evaluation of delays
} DataMsg;
typedef nx struct AckMsg {
nx uint16 t seqnum; Data Sequence Number
nx uint8 t sourceid; Software ID of the ACK source node
nx uint8 t forwardid; Software ID of the node that forwarded the data
nx uint8 t destgroupid; Software ID of the data source node
nx uint8 t prr; Evaluated PRR (from the sink node)
nx uint8 t TDMAslotdur; TDMA-slot (in number of CSMA-slots)
nx uint8 t slots; CSMA-slot number
} ACKMsg;
74
APPENDIX B. PACKET STRUCTURE 75
typedef nx struct SyncMsg {
nx uint16 t seqnum; Data Sequence Number
nx uint8 t sourceid; Software ID of the source node
nx uint8 t forwardid; Software ID of the node that forwards the token
nx uint8 t destgroupid; Software ID of the destination node
nx uint8 t tracrate; Trac rate in pkt/s
nx uint8 t TDMAslotdur; TDMA-slot (in number of CSMA-slots)
nx uint8 t slots; free
nx uint16 t dutycycle; free
nx uint16 t delay; Synchronization time
} SyncMsg;
Bibliography
[1] A. Bonivento, C. Fischione, A. Sangiovanni-Vincentelli, F. Graziosi,
F. Santucci: SERAN: A Semi Random Protocol Solution for Clustered
Wireless Sensor Networks, MASS 05, November 2005.
[2] A. Bonivento, C. Fischione, F. Pianegiani, A. Sangiovanni-Vincentelli:
System Level Design for Clustered Wireless Sensor Networks, IEEE
Transactions on Industrial Informatics, Vol. 3, No. 3, August 2007
[3] A. Bonivento, C. Fischione, A. Sangiovanni-Vincentelli: Randomized
Protocol Stack for Ubiquitous Networks in Indoor Environment. Proceed-
ings of Consumer Communication and Network Conference (CCNC),
Las Vegas, January 2006.
[4] A. Bonivento: Platform Based Design for Wireless Sensor Networks.
PhD Thesis, UC Berkeley, 2007.
[5] P.G. Park: Protocol Design of Sensor Networks for Wireless Automa-
tion. MSc Thesis, KTH Stockholm, 2007.
[6] P.G. Park, C. Fischione, A. Bonivento, K.H. Johansson, A. Sangiovanni-
Vincentelli: Breath: a Self-Adapting Protocol for Wireless Sensor Net-
works. Accepted paper at IEEE SECON 2008, San Francisco US, June
2008.
[7] D. Culler, D. Estrin, M. Srivastava: Overview of Sensor Networks, IEEE
Computer Society, August 2004.
[8] L. Pomante: Wireless Sensor Networks, Seminar in Wireless Communi-
cations - University of LAquila, March 2007.
[9] J.N. Al-Karari, A.E. Kamal: Routing Techniques in Wireless Sensor
Networks: A Survey, IEEE Wireless Communications, December 2004.
76
BIBLIOGRAPHY 77
[10] W. Heinzelman et al.: Energy-ecient Communication Protocol for
Wireless Microsensor Networks, Proc. 33rd Hawaii Intl Conf.Sys.Sci.,
January 2000.
[11] nesC: A Programming Language for Deeply Networked Systems, UC
Berkeley WEBS Project, December 2004.
[12] C.Y. Chong: Sensor Networks: Evolution, Opportunities, and Chal-
lenges, Proceedings of IEEE Vol 91, No 8, August 2003.
[13] I.F. Akyildiz , W. Su , Y. Sankarasubramaniam , E. Cayirci: Wire-
less sensor networks: a survey, Computer Networks: The International
Journal of Computer and Telecommunications Networking, v.38 n.4,
p.393-422, 15 March 2002
[14] A. Sangiovanni-Vincentelli, M. Sgroi, A.Wolisz and J. M. Rabaey: A
service-based universal application interface for ad-hoc wireless sensor
networks, Whitepaper, U.C.Berkeley, 2004.
[15] W. Ye and J. Heidemann: Medium access control in wireless sensor
networks, Norwell, MA, USA: Kluwer Academic Publishers, pp. 73 91,
2004.
[16] R. Rom, M. Sidi: Multiple Access Protocols - Performance and analysis,
Springer-Verlag, New York, 1990.
[17] J. Heidemann W. Ye and D. Estrin: Medium access control with co-
ordinated adaptive sleeping for wireless sensor networks, IEEE/ACM
Transactions on Networking, 12, n. 3 pp. 493-506, 2004.
[18] T.V. Dam and K. Langendoen: An adaptive energy-ecient MAC pro-
tocol for Wireless Sensor Networks, in SenSys 03. New York, NY, USA:
ACM Press, pp. 171180, 2003.
[19] J. Hill, J. Polastre and D. Culler: Versatile low power media access for
wireless sensor networks, Proceedings of SenSys 2003.
[20] I. Rhee, A. Warrier, M. Aia and J. Min: ZMAC: a Hybrid MAC for
Wireless Sensor Networks, New York, NY, USA: ACM Press, 2005, pp.
90 101.
BIBLIOGRAPHY 78
[21] IEEE 802.11 Wireless LAN media access control (MAC) and physical
layer (PHY) specications. 1999
[22] T. Melodia, M.C. Vuran, and D. Pompili: The State of the Art in Cross-
Layer Design for Wireless Sensor Networks, Broadband and Wireless
Networking Laboratory, School of Electrical & Computer Engineering,
Georgia Institute of Technology, Atlanta, GA.
[23] X. Liu, A. GoldSmith:Wireless Network Design for Distributed Control,
IEEE Conference on Decision and Control, Atlantis, December 2004.
[24] D. Gay, P. Levis, and D. Culler: Software design patterns for tinyos,
in Proc LCTES 05, vol. 31, no. 15. New York, NY, USA: ACM Press,
2005, pp. 4049.
[25] B. Bougard, F. Catthoor, D.C. Daly, A. Chandrakasan,W. Dehaene:
Energy Eciency of the IEEE 802.15.4 Standard in Dense Wireless
Microsensor Networks:Modeling and Improvement Perspectives, IMEC,
Leuven, Belgium, March 2005.
[26] El-Hoiydi: A.Spatial TDMA and CSMA with preamble sampling for low
power ad hoc wireless sensor networks, Proceedings, International Sym-
posium on Computers and Communications, ISCC, 2002.
[27] El-Hoiydi: On the Lifetime of Wireless Sensor Networks, IEEE Com-
munications Letters, Vol. 9, No. 11, November 2005.
[28] B. Lazzerini, F. Marcelloni, M. Vecchio, S. Croce, E. Monaldi: A Fuzzy
Approach to Data Aggregation to Reduce Power Consumption in Wire-
less Sensor Networks, Annual meeting of the North American Fuzzy
Information Processing Society, 2006. NAFIPS 2006.
Web References
[29] Tmote Sky Data Sheet, Moteiv, San Francisco, CA, 2006.
http://www.sentilla.com/pdf/eol/tmote-sky-datasheet.pdf
[30] The TinyOS community forum.
http://www.tinyos.net
[31] IEEE 802.15.4 Specication.
http://standards.ieee.org/getieee802/802.15.html
BIBLIOGRAPHY 79
[32] CC2420 Data Sheet, Chipcon, Oslo, Norway, 2005.
http://www.chipcon.com/les/CC2420-Data-Sheet-1-3.pdf
[33] P. Levis: TinyOS Programming.
http://csl.stanford.edu/ pal/pubs/tinyos-programming.pdf