diff options
Diffstat (limited to 'contrib/ntp/html/driver6.htm')
-rw-r--r-- | contrib/ntp/html/driver6.htm | 271 |
1 files changed, 0 insertions, 271 deletions
diff --git a/contrib/ntp/html/driver6.htm b/contrib/ntp/html/driver6.htm deleted file mode 100644 index 501f697..0000000 --- a/contrib/ntp/html/driver6.htm +++ /dev/null @@ -1,271 +0,0 @@ -<!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> - -<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.</p> - -<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 frequency error is greater than ±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>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>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> - -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.</p> - -<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:</p> - -<pre> - Element CF Function - ------------------------------------- - 55 6 time sync status - 60-63 10-13 BCD year units - 65-68 15-18 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 <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: - -<p><tt>00 1 98 23 19:26:52 721 143 0.694 47 20 0.083 66.5 -3094572411.00027</tt></p> - -<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±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> - -<h4>Fudge Factors</h4> - -<dl> -<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>time2 <i>time</i></tt></dt> - -<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> - -<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> - -<h4>Additional Information</h4> - -<a href="refclock.htm">Reference Clock Drivers</a> <br> -<a href="audio.htm">Reference Clock Audio Drivers</a> - -<hr> -<a href="index.htm"><img align="left" src="pic/home.gif" alt= -"gif"></a> - -<address><a href="mailto:mills@udel.edu">David L. Mills -<mills@udel.edu></a></address> -</body> -</html> - |