In this paper, we propose a new clock synchronization approach
named ROCS that exploits the Radio Data System (RDS) of FMradios.
We first design a new hardware FM receiver that can extract
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 through a
metropolitan area of over 40 km2, which shows that RDS clock is
highly stable and hence is a viable means to calibrating the clocks
of large-scale city-wide sensor networks. To reduce the high power
consumption of FM receiver, ROCS intelligently predicts the time
error due to drift, and adaptively calibrates the native clock via the
RDS clock. We implement ROCS in TinyOS on our hardware platform
conduct extensive experiments using a 12-node testbed and
our driving measurement traces. Although the number of nodes involved
is small, both spatial and temporal scales of our study 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 offsets
between nodes 2.8 km apart. Our results show that ROCS achieves
accurate and precise clock synchronization with low power consumption.
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 oscillator. It
has been shown that the synchronization precision can be significantly
improved by using faster crystal oscillators [19]. In the future,
we will integrate ROCS with a 5MHz crystal oscillator which
has been adopted in several WSN platform like Mica2 [6]).
While ROCS is only designed for clock synchronization, some
applications require nodes tomaintain a wall clock time. A straightforward
solution is to use existing message passing protocols like
TPSN [8] or FTSP [14] to periodically disseminate a wall clock
time across the network. Each node calculates the skew between
its logic clock and the wall clock and can use it to estimate the
wall clock time in the future. In order to achieve high accuracy,
the wall clock time needs to be disseminated frequently to the network
incurring significant overhead. When ROCS is employed, it
is not necessary to calculate the skew between the logic clock and
the wall clock for each node because all nodes in the network have
already synchronized their logic times according to the global reference
RDS clock. As a result, we can continuously estimate the
skew at only one node (e.g., the sink) which serves as a time converter
for other nodes. Such an approach thus significantly reduces
the overhead of maintaining a wall clock time in the network