In this paper, we propose a new clock synchronization approa
ch
named ROCS that exploits the Radio Data System (RDS) of FM ra-
dios. We first design a new hardware FM receiver that can extra
ct
a periodic pulse from FM broadcasts, refereed to as RDS clock
.
We then conduct a large-scale measurement study of RDS clock
in
our lab for a period of six days and on a vehicle driving throug
h a
metropolitan area of over 40
km
2
, which shows that RDS clock is
highly stable and hence is a viable means to calibrating the c
locks
of large-scale city-wide sensor networks. To reduce the hig
h power
consumption of FM receiver, ROCS intelligently predicts th
e time
error due to drift, and adaptively calibrates the native clo
ck via the
RDS clock. We implement ROCS in TinyOS on our hardware plat-
form conduct extensive experiments using a 12-node testbed
and
our driving measurement traces. Although the number of node
s in-
volved is small, both spatial and temporal scales of our stud
y are
significant. The indoor experiments last a period of six days
. We
also evaluate RDS clock in an area of 40 km2, and the clock o
ff
sets
between nodes 2.8 km apart. Our results show that ROCS achiev
es
accurate and precise clock synchronization with low power c
on-
sumption.
The synchronization precision of ROCS is largely limited by
the
granularity of the native clock. Our system implementation
on the
SensHoc platform adopts a 32KHz on-board crystal oscillato
r. It
has been shown that the synchronization precision can be sig
nifi-
cantly improved by using faster crystal oscillators [19]. I
n the fu-
ture, we will integrate ROCS with a 5MHz crystal oscillator w
hich
has been adopted in several WSN platform like Mica2 [6]).
While ROCS is only designed for clock synchronization, some
applications require nodes to maintain a wall clock time. A s
traight-
forward solution is to use existing message passing protoco
ls like
TPSN [8] or FTSP [14] to periodically disseminate a wall cloc
k
time across the network. Each node calculates the skew betwe
en
its logic clock and the wall clock and can use it to estimate th
e
wall clock time in the future. In order to achieve high accura
cy,
the wall clock time needs to be disseminated frequently to th
e net-
work incurring significant overhead. When ROCS is employed,
it
is not necessary to calculate the skew between the logic cloc
k and
the wall clock for each node because all nodes in the network h
ave
already synchronized their logic times according to the glo
bal ref-
erence RDS clock. As a result, we can continuously estimate t
he
skew at only one node (e.g., the sink) which serves as a time co
n-
verter for other nodes. Such an approach thus significantly r
educes
the overhead of maintaining a wall clock time in the network.