IEEE 1588 is a synchronization protocol implemented over Ethernet networks. It allows for many nodes on a network to synchronize their clocks with a high level of accuracy. The protocol defines a “Best Master Clock” algorithm where each master periodically messages to synchronize the slave nodes’ time with the master’s.
The accuracy of synchronization that can be achieved is dependent on the jitter associated with the clock’s timestamp. When the timestamping is implemented in software, systems can achieve sub-millisecond synchronization. When the timestamping is implemented in hardware, like in NI Industrial Controllers, specifically the IC-317x models, systems can achieve sub-microsecond synchronization.
Figure 1. Comparison of software-timed synchronization vs hardware-timed synchronization using IEEE 1588 PTP.
The IC-317x models of Industrial Controllers, and CompactRIO controllers with synchronization enabled take 1588 synchronization a step further by allowing the onboard user-programmable FPGA’s top-level clock to be synchronized with the network clock (see Figure 3). With this architecture, you can synchronize custom I/O on the FPGA to the master clock. This is useful to synchronize system components that may not have 1588 support such as a PLC or USB3 Vision camera.
Figure 2. The FPGA is synchronized to the 1588 master clock in IC-317x models of Industrial Controllers, and CompactRIO controller with synchronization enabled.
Finally, these models support IEEE 802.1AS and IEEE 1588, therefore it can act as bridge between fully Time Sensitive Networks and more traditional IEEE 1588 networks. This ability to synchronize devices across multiple technologies provides maximum system flexibility.
To learn more about IEEE 1588, see Introduction to Distributed Clock Synchronization and the IEEE 1588 Precision Time Protocol.