summaryrefslogtreecommitdiffstats
path: root/contrib/ntp/html/driver6.htm
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ntp/html/driver6.htm')
-rw-r--r--contrib/ntp/html/driver6.htm431
1 files changed, 210 insertions, 221 deletions
diff --git a/contrib/ntp/html/driver6.htm b/contrib/ntp/html/driver6.htm
index a728a54..9fac978 100644
--- a/contrib/ntp/html/driver6.htm
+++ b/contrib/ntp/html/driver6.htm
@@ -1,253 +1,242 @@
-<HTML>
-<HEAD>
- <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
- <META NAME="GENERATOR" CONTENT="Mozilla/4.01 [en] (Win95; I) [Netscape]">
- <TITLE>IRIG Audio Decoder II for Sun SPARCstation
-</TITLE>
-</HEAD>
-<BODY>
-
-<H3>
-IRIG Audio Decoder</H3>
-
-<HR>
-<H4>
-Synopsis</H4>
+<html><head><title>
+IRIG Audio Decoder
+</title></head><body><h3>
+IRIG Audio Decoder
+</h3><hr>
+
+<H4>Synopsis</H4>
+
Address: 127.127.6.<I>u</I>
<BR>Reference ID: <TT>IRIG</TT>
<BR>Driver ID: <TT>IRIG_AUDIO</TT>
<BR>Audio Device: <TT>/dev/audio</TT> and <TT>/dev/audioctl</TT>
<P>Note: This driver supersedes an older one of the same name, address
-and ID which required replacing the original kernel audio driver with another
-which works only on older Sun SPARCstation systems. The new driver described
-here uses the stock kernel audio driver and works in SunOS 4.1.3 and Solaris
-2.6 versions and probably all versions in between. The new driver requires
-no modification of the operating system. While it is generic and likely
-portable to other systems, it is somewhat slower than the original, since
-the extensive signal conditioning, filtering and decoding is done in user
-space, not kernel space.
-<H4>
-Description</H4>
-This driver supports the Inter-Range Instrumentation Group (IRIG) standard
-time distribution signal using the audio codec native to the Sun SPARCstation.
-This signal is generated by several radio clocks, including those made
-by Arbiter, Austron, Bancomm, Odetics, Spectracom and TrueTime, among others,
-although it is often an add-on option. The signal is connected via an optional
-attenuator box and cable to either the microphone or line-in ports on a
-Sun SPARCstation <TT>/dev/audio</TT> audio codec device. The driver receives,
-demodulates and decodes the IRIG-B and IRIG-E signal formats using internal
-filters designed to reduce the effects of noise and interfering signals.
-
-<P>The IRIG signal format uses an amplitude-modulated carrier with pulse-width
-modulated data bits. For IRIG-B, the carrier frequency is 1000 Hz and bit
-rate 100 b/s; for IRIG-E, the carrier frequenchy is 100 Hz and bit rate
-10 b/s. While IRIG-B provides the best accuracy, generally within a few
-tens of microseconds relative to IRIG time, it can also generate a significant
-load on the processor with older workstations. Generally, the accuracy
-with IRIG-E is about ten times worse than IRIG-B, but the processor load
-is ten times less.
+and ID which required replacing the original kernel audio driver with
+another which works only on older Sun SPARCstation systems. The new
+driver described here uses the stock kernel audio driver and works in
+SunOS 4.1.3 and Solaris 2.6 versions and probably all versions in
+between. The new driver requires no modification of the operating
+system. While it is generic and likely portable to other systems, it is
+somewhat slower than the original, since the extensive signal
+conditioning, filtering and decoding is done in user space, not kernel
+space.
+
+<H4>Description</H4>
+
+This driver supports the Inter-Range Instrumentation Group (IRIG)
+standard time distribution signal using the audio codec native to some
+workstations. This signal is generated by several radio clocks,
+including those made by Arbiter, Austron, Bancomm, Odetics, Spectracom
+and TrueTime, among others, although it is often an add-on option. The
+signal is connected via an optional attenuator box and cable to either
+the microphone or line-in port. The driver receives, demodulates and
+decodes the IRIG-B and IRIG-E signal formats using internal filters
+designed to reduce the effects of noise and interference.
+
+<p>This driver incorporates several features in common with other audio
+drivers such as described in the <a href=driver7.htm>Radio CHU Audio
+Demodulator/Decoder</a> and the <a href=driver36.htm>Radio WWV/H Audio
+Demodulator/Decoder</a> pages. They include automatic gain control
+(AGC), selectable audio codec port and signal monitoring capabilities.
+For a discussion of these common features, as well as a guide to hookup,
+debugging and monitoring, see the <a href=audio.htm>Reference Clock
+Audio Drivers</a> page.
+
+<P>The IRIG signal format uses an amplitude-modulated carrier with
+pulse-width modulated data bits. For IRIG-B, the carrier frequency is
+1000 Hz and bit rate 100 b/s; for IRIG-E, the carrier frequenchy is 100
+Hz and bit rate 10 b/s. While IRIG-B provides the best accuracy,
+generally within a few tens of microseconds relative to IRIG time, it
+can also generate a significant load on the processor with older
+workstations. Generally, the accuracy with IRIG-E is about ten times
+worse than IRIG-B, but the processor load is ten times less.
<P>The program processes 8000-Hz mu-law companded samples using separate
signal filters for IRIG-B and IRIG-E, a comb filter, envelope detector
-and automatic threshold corrector. Cycle crossings relative to the corrected
-slice level determine the width of each pulse and its value - zero, one
-or position identifier. The data encode 20 BCD digits which determine the
-second, minute, hour and day of the year and sometimes the year and synchronization
-condition. The comb filter exponentially averages the corresponding samples
-of successive baud intervals in order to reliably identify the reference
-carrier cycle. A type-II phase-lock loop (PLL) performs additional integration
-and interpolation to accurately determine the zero crossing of that cycle,
-which determines the reference timestamp. A pulse-width discriminator demodulates
-the data pulses, which are then encoded as the BCD digits of the timecode.
+and automatic threshold corrector. Cycle crossings relative to the
+corrected slice level determine the width of each pulse and its value -
+zero, one or position identifier. The data encode 20 BCD digits which
+determine the second, minute, hour and day of the year and sometimes the
+year and synchronization condition. The comb filter exponentially
+averages the corresponding samples of successive baud intervals in order
+to reliably identify the reference carrier cycle. A type-II phase-lock
+loop (PLL) performs additional integration and interpolation to
+accurately determine the zero crossing of that cycle, which determines
+the reference timestamp. A pulse-width discriminator demodulates the
+data pulses, which are then encoded as the BCD digits of the timecode.
The timecode and reference timestamp are updated once each second with
-IRIG-B (ten seconds with IRIG-E) and local clock offset samples saved for
-later processing. At poll intervals of 64 s, the saved samples are processed
-by a trimmed-mean filter and used to update the system clock.
+IRIG-B (ten seconds with IRIG-E) and local clock offset samples saved
+for later processing. At poll intervals of 64 s, the saved samples are
+processed by a trimmed-mean filter and used to update the system clock.
<P>Infinite impulse response (IIR) filters are used with both IRIG-B and
-IRIG-E formats. An 800-Hz highpass filter is used for IRIG-B and a 130-Hz
-lowpass filter for IRIG-E. These are intended for use with noisy signals,
-such as might be received over a telephone line or radio circuit, or when
-interfering signals may be present in the audio passband. The driver determines
-which IRIG format is in use by sampling the amplitude of each filter output
-and selecting the one with maximum signal. An automatic gain control feature
-provides protection against overdriven or underdriven input signal amplitudes.
-It is designed to maintain adequate demodulator signal amplitude while
-avoiding occasional noise spikes. In order to assure reliable capture,
-the decompanded input signal amplitude must be greater than 100 units and
-the codec sample frequency error less than 250 PPM (.025 percent).
-
-<P>The program performs a number of error checks to protect against overdriven
-or underdriven input signal levels, incorrect signal format or improper
-hardware configuration. Specifically, if any of the following errors occur
-for a timecode, the data are rejected. Secifically, if any of the following
-errors occur for a time measurement, the data are rejected.
+IRIG-E formats. An 800-Hz highpass filter is used for IRIG-B and a
+130-Hz lowpass filter for IRIG-E. These are intended for use with noisy
+signals, such as might be received over a telephone line or radio
+circuit, or when interfering signals may be present in the audio
+passband. The driver determines which IRIG format is in use by sampling
+the amplitude of each filter output and selecting the one with maximum
+signal. An automatic gain control feature provides protection against
+overdriven or underdriven input signal amplitudes. It is designed to
+maintain adequate demodulator signal amplitude while avoiding occasional
+noise spikes. In order to assure reliable capture, the decompanded input
+signal amplitude must be greater than 100 units and the codec sample
+frequency error less than 250 PPM (.025 percent).
+
+<P>The program performs a number of error checks to protect against
+overdriven or underdriven input signal levels, incorrect signal format
+or improper hardware configuration. Specifically, if any of the
+following errors occur for a timecode, the data are rejected.
+Secifically, if any of the following errors occur for a time
+measurement, the data are rejected.
+
<OL>
-<LI>
-The peak carrier amplitude is less than 100 units. This usually means dead
-IRIG signal source, broken cable or wrong input port.</LI>
-
-<BR>&nbsp;
-<LI>
-The frequency error is greater than +-250 PPM (.025 percent). This usually
-means broken codec hardware or wrong codec configuration.</LI>
-
-<BR>&nbsp;
-<LI>
-The modulation index is less than 0.5. This usually means overdriven IRIG
-signal or wrong IRIG format.</LI>
-
-<BR>&nbsp;
-<LI>
-A frame synchronization error has occured. This usually means wrong IRIG
-signal format or the IRIG signal source has lost synchronization (signature
-control).</LI>
-
-<BR>&nbsp;
-<LI>
-A data decoding error has occured. This usually means wrong IRIG signal
-format.</LI>
-
-<BR>&nbsp;
-<LI>
-The current second of the day is not exactly one greater than the previous
-one. This usually means a very noisy IRIG signal or insufficient CPU resources.</LI>
-
-<BR>&nbsp;
-<LI>
-An audio codec error (overrun) occured. This usually means insufficient
-CPU resources, as sometimes happens with Sun SPARC IPCs when doing something
-useful.</LI>
-</OL>
-Note that additional checks are done elsewhere in the reference clock interface
-routines.
-
-<P>Unlike other drivers, which can have multiple instantiations, this one
-supports only one. It does not seem likely that more than one audio codec
-would be useful in a single machine. More than one would probably chew
-up too much CPU time anyway.
-<H4>
-IRIG-B Timecode Format</H4>
-The 100 elements of the IRIG timecode are numbered from 0 through 99. Position
-identifiers occur at elements 0, 9, 19 and every ten thereafter to 99.
-The control function (CF) elements begin at element 50 (CF 1) and extend
-to element 78 (CF 27). The straight-binary-seconds (SBS) field, which encodes
-the seconds of the UTC day, begins at element 80 (CF 28) and extends to
-element 97 (CF 44). The encoding of elements 50 (CF 1) through 78 (CF 27)
-is device dependent. This driver presently decodes the CF elements, but
-does nothing with them.
-
-<P>Where feasible, the IRIG signal source should be operated with signature
-control so that, if the signal is lost or mutilated, the source produces
-an unmodulated signal, rather than possibly random digits. The driver will
-automatically reject the data and declare itself unsynchronized in this
-case. Some devices, in particular Spectracom radio/satellite clocks, provide
-additional year and status indication in the format:
-<PRE>&nbsp;&nbsp;&nbsp;&nbsp; Element&nbsp;&nbsp; CF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Function
-&nbsp;&nbsp;&nbsp;&nbsp; -------------------------------------
-&nbsp;&nbsp;&nbsp;&nbsp; 55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; time sync status
-&nbsp;&nbsp;&nbsp;&nbsp; 60-63&nbsp;&nbsp;&nbsp;&nbsp; 10-13&nbsp;&nbsp;&nbsp;&nbsp; BCD year units
-&nbsp;&nbsp;&nbsp;&nbsp; 65-68&nbsp;&nbsp;&nbsp;&nbsp; 15-18&nbsp;&nbsp;&nbsp;&nbsp; BCD year tens</PRE>
-Other devices set these elements to zero.
-<H4>
-Performance</H4>
-The mu-law companded data format allows considerable latitude in signal
-levels; however, an automatic gain control (AGC) function is implemented
-to further compensate for varying input signal levels and to avoid signal
-distortion. For proper operation, the IRIG signal source should be configured
-for analog signal levels, NOT digital TTL levels.
-
-<P>The accuracy of the system clock synchronized to the IRIG-B source with
-this driver and the <TT>ntpd</TT> daemon is 10-20 microseconds with a Sun
-UltraSPARC II and maybe twice that with a Sun SPARC IPC. The processor
-resources consumed by the daemon can be significant, ranging from about
-1.2 percent on the faster UltraSPARC II to 38 percent on the slower SPARC
-IPC. However, the overall timing accuracy is limited by the resolution
-and stability of the CPU clock oscillator and the interval between clock
-corrections, which is 64 s with this driver. This performance, while probably
-the best that can be achieved by the daemon itself, can be improved with
-assist from the PPS discipline as described elsewhere in the documentation.
-<H4>
-Monitor Data</H4>
-The timecode format used for debugging and data recording includes data
-helpful in diagnosing problems with the IRIG signal and codec connections.
-With debugging enabled (-d -d -d on the ntpd command line), the driver
-produces one line for each timecode in the following format:
-<PRE>00 1 98 23 19:26:52 721 143 0.694 47 20 0.083 66.5 3094572411.00027</PRE>
-The first field containes the error flags in hex, where the hex bits are
-interpreted as below. This is followed by the IRIG status indicator, year
-of century, day of year and time of day. The status indicator and year
-are not produced by some IRIG devices. Following these fields are the signal
-amplitude (0-8100), codec gain (0-255), field phase (0-79), time constant
-(2-20), modulation index (0-1), carrier phase error (0+-0.5) and carrier
-frequency error (PPM). The last field is the on-time timestamp in NTP format.
-The fraction part is a good indicator of how well the driver is doing.
-With an UltrSPARC 30, this is normally within a few tens of microseconds
-relative to the IRIG-B signal and within a few hundred microseconds with
-IRIG-E.
-<H4>
-Fudge Factors</H4>
-<DL>
-<DT>
-<TT>time1 <I>time</I></TT></DT>
+<LI>The peak carrier amplitude is less than 100 units. This usually
+means dead IRIG signal source, broken cable or wrong input port.</LI>
+
+<LI>The frequency error is greater than &plusmn;250 PPM (.025 percent).
+This usually means broken codec hardware or wrong codec
+configuration.</LI>
+
+<LI>The modulation index is less than 0.5. This usually means overdriven
+IRIG signal or wrong IRIG format.</LI>
-<DD>
-Specifies the time offset calibration factor, in seconds and fraction,
-with default 0.0.</DD>
+<LI>A frame synchronization error has occured. This usually means wrong
+IRIG signal format or the IRIG signal source has lost synchronization
+(signature control).</LI>
-<DT>
-<TT>time2 <I>time</I></TT></DT>
+<LI>A data decoding error has occured. This usually means wrong IRIG
+signal format.</LI>
-<DD>
-Not used by this driver.</DD>
+<LI>The current second of the day is not exactly one greater than the
+previous one. This usually means a very noisy IRIG signal or
+insufficient CPU resources.</LI>
-<DT>
-<TT>stratum <I>number</I></TT></DT>
+<LI>An audio codec error (overrun) occured. This usually means
+insufficient CPU resources, as sometimes happens with Sun SPARC IPCs
+when doing something useful.</LI>
-<DD>
-Specifies the driver stratum, in decimal from 0 to 15, with default 0.</DD>
+</OL>
-<DT>
-<TT>refid <I>string</I></TT></DT>
+Note that additional checks are done elsewhere in the reference clock
+interface routines.
+
+<P>Unlike other drivers, which can have multiple instantiations, this
+one supports only one. It does not seem likely that more than one audio
+codec would be useful in a single machine. More than one would probably
+chew up too much CPU time anyway.
+
+<H4>IRIG-B Timecode Format</H4>
+The 100 elements of the IRIG timecode are numbered from 0 through 99.
+Position identifiers occur at elements 0, 9, 19 and every ten thereafter
+to 99. The control function (CF) elements begin at element 50 (CF 1) and
+extend to element 78 (CF 27). The straight-binary-seconds (SBS) field,
+which encodes the seconds of the UTC day, begins at element 80 (CF 28)
+and extends to element 97 (CF 44). The encoding of elements 50 (CF 1)
+through 78 (CF 27) is device dependent. This driver presently decodes
+the CF elements, but does nothing with them.
+
+<P>Where feasible, the IRIG signal source should be operated with
+signature control so that, if the signal is lost or mutilated, the
+source produces an unmodulated signal, rather than possibly random
+digits. The driver will automatically reject the data and declare itself
+unsynchronized in this case. Some devices, in particular Spectracom
+radio/satellite clocks, provide additional year and status indication in
+the format:
+
+<PRE> Element CF Function
+ -------------------------------------
+ 55 6 time sync status
+ 60-63 10-13 BCD year units
+ 65-68 15-18 BCD year tens
+</PRE>
-<DD>
-Specifies the driver reference identifier, an ASCII string from one to
-four characters, with default <TT>IRIG</TT>.</DD>
+Other devices set these elements to zero.
-<DT>
-<TT>flag1 0 | 1</TT></DT>
+<H4>Performance</H4>
-<DD>
-Not used by this driver.</DD>
+The mu-law companded data format allows considerable latitude in signal
+levels; however, an automatic gain control (AGC) function is implemented
+to further compensate for varying input signal levels and to avoid
+signal distortion. For proper operation, the IRIG signal source should
+be configured for analog signal levels, NOT digital TTL levels.
+
+<P>The accuracy of the system clock synchronized to the IRIG-B source
+with this driver and the <TT>ntpd</TT> daemon is 10-20 <font
+face=symbol>m</font>s with a Sun UltraSPARC II and maybe twice that with
+a Sun SPARC IPC. The processor resources consumed by the daemon can be
+significant, ranging from about 1.2 percent on the faster UltraSPARC II
+to 38 percent on the slower SPARC IPC. However, the overall timing
+accuracy is limited by the resolution and stability of the CPU clock
+oscillator and the interval between clock corrections, which is 64 s
+with this driver. This performance, while probably the best that can be
+achieved by the daemon itself, can be improved with assist from the PPS
+discipline as described elsewhere in the documentation.
+
+<H4>Monitor Data</H4>
-<DT>
-<TT>flag2 0 | 1</TT></DT>
+The timecode format used for debugging and data recording includes data
+helpful in diagnosing problems with the IRIG signal and codec
+connections. With debugging enabled (-d on the ntpd command line), the
+driver produces one line for each timecode in the following format:
+
+<p><tt>00 1 98 23 19:26:52 721 143 0.694 47 20 0.083 66.5
+3094572411.00027</tt>
+
+<p>The first field containes the error flags in hex, where the hex bits
+are interpreted as below. This is followed by the IRIG status indicator,
+year of century, day of year and time of day. The status indicator and
+year are not produced by some IRIG devices. Following these fields are
+the signal amplitude (0-8100), codec gain (0-255), field phase (0-79),
+time constant (2-20), modulation index (0-1), carrier phase error
+(0&plusmn;0.5) and carrier frequency error (PPM). The last field is the
+on-time timestamp in NTP format. The fraction part is a good indicator
+of how well the driver is doing. With an UltrSPARC 30, this is normally
+within a few tens of microseconds relative to the IRIG-B signal and
+within a few hundred microseconds with IRIG-E.
+
+<H4>Fudge Factors</H4>
-<DD>
-Specifies the microphone port if set to zero or the line-in port if set
-to one. It does not seem useful to specify the compact disc player port.</DD>
+<DL>
-<DT>
-<TT>flag3 0 | 1</TT></DT>
+<DT><TT>time1 <I>time</I></TT></DT>
+<DD>Specifies the time offset calibration factor, in seconds and
+fraction, with default 0.0.</DD>
-<DD>
-Enables audio monitoring of the input signal. For this purpose, the speaker
-volume must be set before the driver is started.</DD>
+<DT><TT>time2 <I>time</I></TT></DT>
+<DD>Not used by this driver.</DD>
-<DT>
-<TT>flag4 0 | 1</TT></DT>
+<DT><TT>stratum <I>number</I></TT></DT>
+<DD>Specifies the driver stratum, in decimal from 0 to 15, with default
+0.</DD>
-<DD>
-Enable verbose <TT>clockstats</TT> recording if set.</DD>
+<DT><TT>refid <I>string</I></TT></DT>
+<DD>Specifies the driver reference identifier, an ASCII string from one
+to four characters, with default <TT>IRIG</TT>.</DD>
+
+<DT><TT>flag1 0 | 1</TT></DT>
+<DD>Not used by this driver.</DD>
+
+<DT><TT>flag2 0 | 1</TT></DT>
+<DD>Specifies the microphone port if set to zero or the line-in port if
+set to one. It does not seem useful to specify the compact disc player
+port.</DD>
+
+<DT><TT>flag3 0 | 1</TT></DT>
+<DD>Enables audio monitoring of the input signal. For this purpose, the
+speaker volume must be set before the driver is started.</DD>
+
+<DT><TT>flag4 0 | 1</TT></DT>
+<DD>Enable verbose <TT>clockstats</TT> recording if set.</DD>
</DL>
-Additional Information
-<P><A HREF="refclock.htm">Reference Clock Drivers</A>&nbsp;
-<HR>
-<ADDRESS>
-David L. Mills (mills@udel.edu)</ADDRESS>
+<H4>Additional Information</H4>
+
+<A HREF="refclock.htm">Reference Clock Drivers</A>
+<br><A HREF="audio.htm">Reference Clock Audio Drivers</A>
-</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 &lt;mills@udel.edu&gt;</a>
+</address></a></body></html>
OpenPOWER on IntegriCloud