diff options
Diffstat (limited to 'contrib/ntp/html/pps.htm')
-rw-r--r-- | contrib/ntp/html/pps.htm | 174 |
1 files changed, 98 insertions, 76 deletions
diff --git a/contrib/ntp/html/pps.htm b/contrib/ntp/html/pps.htm index 97850d7..a20dd4d 100644 --- a/contrib/ntp/html/pps.htm +++ b/contrib/ntp/html/pps.htm @@ -1,84 +1,106 @@ -<html><head><title> -Pulse-per-second (PPS) Signal Interfacing -</title></head><body><h3> -Pulse-per-second (PPS) Signal Interfacing -</h3><hr> +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> +<html> +<head> +<meta name="generator" content="HTML Tidy, see www.w3.org"> +<title>Pulse-per-second (PPS) Signal Interfacing</title> +</head> +<body> +<h3>Pulse-per-second (PPS) Signal Interfacing</h3> -<P>Some radio clocks and related timekeeping gear have a -pulse-per-second (PPS) signal that can be used to discipline the local -clock oscillator to a high degree of precision, typically to the order -less than 20 <font face=Symbol>m</font>s in time and 0.01 PPM in -frequency. The PPS signal can be connected in either of two ways: via -the data leads of a serial port or via the modem control leads. Either -way requires conversion of the PPS signal, usually at TTL levels, to -RS232 levels, which can be done using a circuit such as described in the -<A HREF=gadget.htm>Gadget Box PPS Level Converter and CHU Modem</A> -page. +<img align="left" src="pic/alice32.gif" alt="gif"><a href= +"http://www.eecis.udel.edu/~mills/pictures.htm">from <i>Alice's +Adventures in Wonderland</i>, Lewis Carroll</a> -<P>The data leads interface requires regenerating the PPS pulse and -converting to RS232 signal levels, so that the pulse looks like a -legitimate ASCII character to a serial port. The <TT>tty_clk</TT> line -discipline/streams module inserts a timestamp following this character -in the input data stream. The <A HREF=driver22.htm>PPS Clock -Discipline</A> driver uses this timestamp to determine the time of -arrival of the PPS pulse to within 26 us at 38.4 kbps while eliminating -error due to operating system queues and service times. +<p>Alice is trying to find the PPS signal connector.<br clear= +"left"> +</p> -<P>The modem control leads interface requires converting to RS232 levels -and connecting to the data carrier detect (DCD) lead of a serial port. -The <TT>ppsclock</TT> and <TT>ppsapi</TT> streams modules capture a -timestamp upon transition of the DCD signal. Note that the -<TT>ppsclock</TT> module functionality has been subsumed by the new -<TT>ppsapi</TT> interface specification, which is supported by the NTP -daemon. As the latter is expected to become an IETF cross-platform -standard, it should be used in new configurations. The PPS Clock -Discipline driver reads the latest timestamp with a designated system -call or interface routine to determine the time of arrival of the PPS -pulse to within a few microseconds. Alternatively, if provisions have -been made in the kernel for PPS signals, the signal is captured directly -by the kernel serial driver without using the PPS driver. +<hr> +<p>Some radio clocks and related timekeeping gear have a +pulse-per-second (PPS) signal that can be used to discipline the +local clock oscillator to a high degree of precision, typically to +the order less than 10 <font face="Symbol">m</font>s in time and +0.01 parts-per-million (PPM) in frequency. The PPS signal can be +connected in either of two ways: via the data carrier detector +(DCD) pin of a serial port or via the acknowledge (ACK) pin of a +parallel port, depending on the hardware and operating system. +Connection via a serial port may require signal conversion and +regeneration to RS232 levels, which can be done using a circuit +such as described in the <a href="gadget.htm">Gadget Box PPS Level +Converter and CHU Modem</a> page. Note that NTP no longer supports +connection via the data leads of a serial port.</p> -<P>The <TT>tty_clk</TT> module is included in the NTP software -distribution, while the <A -HREF=http://www.eecis.udel.edu/~mills/ntp/ntp/ppsclock.tar.Z><TT> -ppsclock</TT></A> module can be obtained via the web at that link or by -anonymous FTP from ftp.udel.edu in the <TT>pub/ntp</TT> directory. Both -the <TT>tty_clk</TT> and <TT>ppsclock</TT> modules are described in the -<A HREF=ldisc.htm>Line Disciplines and Streams Drivers</A> page. -Directions for building the modules themselves are in the -<TT>./kernel</TT> directory. Directions on how to configure -<TT>ntpd</TT> to operate with these modules is described in <A -HREF=build.htm>Building and Installing the Distribution </A>page. +<p>Both the serial and parallel port connection require operating +system support, which is available in only a few operating systems, +including Linux, FreeBSD and latest Solaris beginning with 2.7. +Support on an experimental basis is available for several older +systems, including SunOS, Digital Ultrix and HP-UX, and in current +Digital Tru64 (Alpha). The PPS application program interface +defined in RFC-2783 (PPSAPI) is the only interface currently +supported. Older PPS interfaces based on the <tt>ppsclock</tt> and +<tt>tty_clk</tt> streams modules are no longer supported. As the +PPSAPI is expected to become an IETF cross-platform standard, it +should be used by new applications.</p> -<P>The PPS driver is operates in conjunction with another reference -clock driver that produces the PPS pulse, as described in the <A -HREF=prefer.htm>Mitigation Rules and the <TT>prefer</TT> Keyword -</A>page. One of the drivers described in the <A -HREF=refclock.htm>Reference Clock Drivers</A> page furnishes -the coarse timecode used to disambiguate the seconds numbering of the -PPS pulse itself. The NTP daemon mitigates between the radio clock -driver and <TT>PPS</TT> driver as described in that page in order to -provide the most accurate time, while respecting the various types of -equipment failures that could happen. +<p>The PPSAPI inerface requires a <tt> +/usr/include/sys/ppstime.h</tt> header file. This file is included +in Linux and FreeBSD distributions, but not in other distributions +or standard workstation products at this time. Header files for +other systems, including Solaris, can be found in the <tt> +nanokernel.tar.gz</tt> distribution, which can be found via the +Collaboration Resources link at www.ntp.org. The top level +directory contains a number of subdirectories for each +architecture, including Solaris. The <tt>ppstime.h</tt> file for +each architecture can be found in the subdirectory of the same +name.</p> -<P>For the utmost time quality, some Unix system kernels support a PPS -signal directly, as described in the <A HREF=kern.htm>A Kernel Model -for Precision Timekeeping </A>page. Specifically, the ppsclock module -can be used to interface the PPS signal directly to the kernel for use -as discipline sources for both time and frequency. These sources can be -separately enabled and monitored using the <TT>ntp_adjtime()</TT> system -call described in that page and the <TT>/usr/include/sys/timex.h</TT> -header file. The presence of these kernel provisions is automatically -detected and supporting code compiled. +<p>In the preferred mode of operation, PPS signals are processed by +the <a href="driver22.htm">PPS Clock Discipline</a> driver and +other clock drivers which might be involved need not know or care +about them. In some cases where there is no other driver, time +might be obtained from remote NTP servers via the network and local +PPS signals, for instance from a calibrated cesium oscillator, used +to stabilize the frequency and remove network jitter. Note that the +<tt>pps</tt> configuration command has been obsoleted by this +driver.</p> -<P>In some configurations may have multiple radio clocks, each with PPS -outputs, as well as a kernel provisions for the PPS signal. In order to -provide the highest degree of redundancy and survivability, the kernel -PPS discipline, <TT>tty_clk</TT> module, <TT>ppsclock</TT> module and -kernel modifications may all be in use at the same time, each backing up -the other. The sometimes complicated mitigation rules are described in -the Mitigation Rules and the <TT>prefer</TT> Keyword page. +<p>The PPS driver operates in conjunction with a preferred peer, as +described in the <a href="prefer.htm">Mitigation Rules and the <tt> +prefer</tt> Keyword</a> page. One of the drivers described in the +<a href="refclock.htm">Reference Clock Drivers</a> page or another +NTP server furnishes the coarse timing and disambiguates the +seconds numbering of the PPS signal itself. The NTP daemon +mitigates between the clock driver or NTP server and the PPS driver +as described in that page in order to provide the most accurate +time, while respecting the various types of equipment failures that +could happen.</p> + +<p>Some Unix system kernels support a PPS signal directly, as +described in the <a href="kern.htm">A Kernel Model for Precision +Timekeeping</a> page. Specifically, the PPS driver can be used to +direct the PPS signal to the kernel for use as a discipline source +for both time and frequency. The presence of the kernel support is +automatically detected during the NTP build process and supporting +code automatically compiled. Note that the PPS driver does not +normally enable the PPS kernel code, since performance is generally +better without it. However, this code can be enabled by a driver +fudge flag if necessary.</p> + +<p>Some configurations may include multiple radio clocks with +individual PPS outputs. In some PPSAPI designs multiple PPS signals +can be connected to multiple instances of the PPS driver. In such +cases the NTP mitigation and grooming algorithms operate with all +the radio timecodes and PPS signals to develop the highest degree +of redundancy and survivability.</p> + +<hr> +<a href="index.htm"><img align="left" src="pic/home.gif" alt= +"gif"></a><br> +<br> + + +<address><a href="mailto:mills@udel.edu">David L. Mills +<mills@udel.edu></a></address> +</body> +</html> -<hr><a href=index.htm><img align=left src=pic/home.gif></a><address><a -href=mailto:mills@udel.edu> David L. Mills <mills@udel.edu></a> -</address></a></body></html> |