summaryrefslogtreecommitdiff
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.htm427
1 files changed, 228 insertions, 199 deletions
diff --git a/contrib/ntp/html/driver6.htm b/contrib/ntp/html/driver6.htm
index 9fac9789c7de..501f697818ea 100644
--- a/contrib/ntp/html/driver6.htm
+++ b/contrib/ntp/html/driver6.htm
@@ -1,242 +1,271 @@
-<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>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
+<html>
+<head>
+<meta name="generator" content="HTML Tidy, see www.w3.org">
+<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.</p>
+
+<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.
-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.
-
-<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.
+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>
+
+<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>
+
+<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. 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.</p>
+
+<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>
+
+<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.
+measurement, the data are rejected.</p>
-<OL>
+<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>
-<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 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>
-<LI>The modulation index is less than 0.5. This usually means overdriven
-IRIG signal or wrong IRIG format.</LI>
+<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>
-<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>
+<li>A data decoding error has occured. This usually means wrong
+IRIG signal format.</li>
-<LI>A data decoding error has occured. This usually means wrong IRIG
-signal format.</LI>
+<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>
-<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>
+<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>
-<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>
+Note that additional checks are done elsewhere in the reference
+clock interface routines.
-</OL>
+<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.</p>
-Note that additional checks are done elsewhere in the reference clock
-interface routines.
+<h4>IRIG-B Timecode Format</h4>
-<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.
+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.
-<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
+<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:
+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:</p>
-<PRE> Element CF Function
+<pre>
+ Element CF Function
-------------------------------------
55 6 time sync status
60-63 10-13 BCD year units
65-68 15-18 BCD year tens
-</PRE>
+</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 <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.</p>
+
+<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 on the ntpd command line),
+the driver produces one line for each timecode in the following
+format:
-Other devices set these elements to zero.
+<p><tt>00 1 98 23 19:26:52 721 143 0.694 47 20 0.083 66.5
+3094572411.00027</tt></p>
-<H4>Performance</H4>
+<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.</p>
-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.
+<h4>Fudge Factors</h4>
-<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.
+<dl>
+<dt><tt>time1 <i>time</i></tt></dt>
-<H4>Monitor Data</H4>
+<dd>Specifies the time offset calibration factor, in seconds and
+fraction, with default 0.0.</dd>
-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:
+<dt><tt>time2 <i>time</i></tt></dt>
-<p><tt>00 1 98 23 19:26:52 721 143 0.694 47 20 0.083 66.5
-3094572411.00027</tt>
+<dd>Not used by this driver.</dd>
+
+<dt><tt>stratum <i>number</i></tt></dt>
+
+<dd>Specifies the driver stratum, in decimal from 0 to 15, with
+default 0.</dd>
+
+<dt><tt>refid <i>string</i></tt></dt>
-<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.
+<dd>Specifies the driver reference identifier, an ASCII string from
+one to four characters, with default <tt>IRIG</tt>.</dd>
-<H4>Fudge Factors</H4>
+<dt><tt>flag1 0 | 1</tt></dt>
-<DL>
+<dd>Not used by this driver.</dd>
-<DT><TT>time1 <I>time</I></TT></DT>
-<DD>Specifies the time offset calibration factor, in seconds and
-fraction, with default 0.0.</DD>
+<dt><tt>flag2 0 | 1</tt></dt>
-<DT><TT>time2 <I>time</I></TT></DT>
-<DD>Not used by this driver.</DD>
+<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>stratum <I>number</I></TT></DT>
-<DD>Specifies the driver stratum, in decimal from 0 to 15, with default
-0.</DD>
+<dt><tt>flag3 0 | 1</tt></dt>
-<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>
+<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>flag1 0 | 1</TT></DT>
-<DD>Not used by this driver.</DD>
+<dt><tt>flag4 0 | 1</tt></dt>
-<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>
+<dd>Enable verbose <tt>clockstats</tt> recording if set.</dd>
+</dl>
-<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>
+<h4>Additional Information</h4>
-<DT><TT>flag4 0 | 1</TT></DT>
-<DD>Enable verbose <TT>clockstats</TT> recording if set.</DD>
-</DL>
+<a href="refclock.htm">Reference Clock Drivers</a> <br>
+<a href="audio.htm">Reference Clock Audio Drivers</a>
-<H4>Additional Information</H4>
+<hr>
+<a href="index.htm"><img align="left" src="pic/home.gif" alt=
+"gif"></a>
-<A HREF="refclock.htm">Reference Clock Drivers</A>
-<br><A HREF="audio.htm">Reference Clock Audio Drivers</A>
+<address><a href="mailto:mills@udel.edu">David L. Mills
+&lt;mills@udel.edu&gt;</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 &lt;mills@udel.edu&gt;</a>
-</address></a></body></html>