The IEEE 1588-2002 Standard for "A Precision Clock Synchronization Protocol
for Networked Measurement and Control Systems" was sponsored by the Technical
Committee on Sensor Technology TC-9. Also known as the Precision Time Protocol (PTP), it’s designed to synchronize the clocks on nodes across a network
that’s more accurate (sub-microsecond range) than technologies such as
Network Time Protocol (NTP) or the related SNTP (Simple NTP).
Based on multicast support, the standard fits technologies other than Ethernet.
A master node has the primary clock. Slave units have their own clock that’s
synchronized with the master. As such, the synchronization process is a two-step
affair.
The master and slave measure the offset of delay due to communication latencies.
This starts with the master sending synchronization messages at defined intervals.
The default is two seconds. The messages contain the time the message was sent,
based on the master’s clock. The slave adjusts its clock based on this
information and responds so that the master and slave can determine the round-trip
latency. Of course, one assumption is that communication speeds between master
and slave are symmetric. Synchronization is periodically confirmed.
Software implementations can be built around standard Ethernet stacks. This
typically results in a precision of about 100 ms for Fast Ethernet. Hardware
can increase this accuracy even further, often by more than an order of magnitude.
Part of the accuracy problem is jitter due to other traffic. This is where industrial
Ethernet protocols can enhance timing by reducing or eliminating problems caused
by other traffic.
Switches and routers that implement IEEE 1588 can also boost overall system
performance. The clocks in these devices usually are called boundary clocks.
Normally, one port is a slave to another master, and all other ports are masters
to slaves further down the timing hierarchy.
Keep in mind that PTP is strictly synchronization technology. It allows actions
to be performed on different nodes at the same time. But this process must be
initiated well before the action occurs, relatively speaking. This works well
for periodic operations often found in industrial controls versus actions that
must respond quickly based on an event. That’s why other real-time systems
are generally employed in time-critical environments such as brake-by-wire in
an automobile.