mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-29 08:52:46 +00:00
658 lines
25 KiB
HTML
658 lines
25 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
|
<html>
|
|
<head>
|
|
<meta name="generator" content="HTML Tidy, see www.w3.org">
|
|
<title>Radio CHU Audio Demodulator/Decoder</title>
|
|
</head>
|
|
<body>
|
|
<h3>Radio CHU Audio Demodulator/Decoder</h3>
|
|
|
|
<hr>
|
|
<h4>Synopsis</h4>
|
|
|
|
Address: 127.127.7.<i>u</i> <br>
|
|
Reference ID: <tt>CHU</tt> <br>
|
|
Driver ID: <tt>CHU</tt> <br>
|
|
Modem Port: <tt>/dev/chu<i>u</i></tt>; 300 baud, 8-bits, no parity
|
|
<br>
|
|
Autotune Port: <tt>/dev/icom</tt>; 1200/9600 baud, 8-bits, no
|
|
parity <br>
|
|
Audio Device: <tt>/dev/chu_audio</tt> and <tt>/dev/audioctl</tt>
|
|
|
|
<h4>Description</h4>
|
|
|
|
<p>This driver synchronizes the computer time using data encoded in
|
|
radio transmissions from Canadian time/frequency station CHU in
|
|
Ottawa, Ontario. It replaces an earlier one, built by Dennis
|
|
Ferguson in 1988, which required a special line discipline to
|
|
preprocessed the signal. The new driver includes more powerful
|
|
algorithms implemented directly in the driver and requires no
|
|
preprocessing.</p>
|
|
|
|
<p>CHU transmissions are made continuously on 3330 kHz, 7335 kHz
|
|
and 14670 kHz in upper sideband, compatible AM mode. An ordinary
|
|
shortwave receiver can be tuned manually to one of these
|
|
frequencies or, in the case of ICOM receivers, the receiver can be
|
|
tuned automatically as propagation conditions change throughout the
|
|
day and night. The performance of this driver when tracking the
|
|
station is ordinarily better than 1 ms in time with frequency drift
|
|
less than 0.5 PPM when not tracking the station.</p>
|
|
|
|
<p>While there are currently no known commercial CHU receivers, a
|
|
simple but effective receiver/demodulator can be constructed from
|
|
an ordinary shortwave receiver and Bell 103 compatible, 300-b/s
|
|
modem or modem chip, as described in the <a href="gadget.htm">
|
|
Gadget Box PPS Level Converter and CHU Modem</a> page. The driver
|
|
can use the modem to receive the radio signal and demodulate the
|
|
data or, if available, the driver can use the audio codec of the
|
|
Sun workstation or another with compatible audio interface. In the
|
|
latter case, the driver implements the modem using DSP routines, so
|
|
the radio can be connected directly to either the microphone on
|
|
line input port.</p>
|
|
|
|
<p>This driver incorporates several features in common with other
|
|
audio drivers such as described in the <a href="driver36.htm">Radio
|
|
WWV/H Audio Demodulator/Decoder</a> and the <a href="driver6.htm">
|
|
IRIG Audio 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>Ordinarily, the driver poll interval is set to 14 (about 4.5 h),
|
|
although this can be changed with configuration commands. As long
|
|
as the clock is set or verified at least once during this interval,
|
|
the NTP algorithms will consider the source reachable and
|
|
selectable to discipline the system clock. However, if this does
|
|
not happen for eight poll intervals, the algorithms will consider
|
|
the source unreachable and some other source will be chosen (if
|
|
available) to discipline the system clock.</p>
|
|
|
|
<p>The decoding algorithms process the data using
|
|
maximum-likelihood techniques which exploit the considerable degree
|
|
of redundancy available in each broadcast message or burst. As
|
|
described below, every character is sent twice and, in the case of
|
|
format A bursts, the burst is sent eight times every minute. In the
|
|
case of format B bursts, which are sent once each minute, the burst
|
|
is considered correct only if every character matches its
|
|
repetition in the burst. In the case of format A messages, a
|
|
majority decoder requires at least six repetitions for each digit
|
|
in the timecode and more than half of the repetitions decode to the
|
|
same digit. Every character in every burst provides an independent
|
|
timestamp upon arrival with a potential total of over 60 timestamps
|
|
for each minute.</p>
|
|
|
|
<p>A timecode in the format described below is assembled when all
|
|
bursts have been received in the minute. The timecode is considered
|
|
valid and the clock set when at least one valid format B burst has
|
|
been decoded and the above requirements are met. The <tt>yyyy</tt>
|
|
year field in the timecode indicates whether a valid format B burst
|
|
has been received. Upon startup, this field is initialized at zero;
|
|
when a valid format B burst is received, it is set to the current
|
|
Gregorian year. The <tt>q</tt> quality character field in the
|
|
timecode indicates whether a valid timecode has been determined. If
|
|
any of the high order three bits of this character are set, the
|
|
timecode is invalid.</p>
|
|
|
|
<p>Once the clock has been set for the first time, it will appear
|
|
reachable and selectable to discipline the system clock, even if
|
|
the broadcast signal is lost. Since the signals are almost always
|
|
available during some period of the day and the NTP clock
|
|
discipline algorithms are designed to work well even in this case,
|
|
it is unlikely that the system clock could drift more than a few
|
|
tens of milliseconds during periods of signal loss. To protect
|
|
against this most unlikely situation, if after four days with no
|
|
signals, the clock is considered unset and resumes the
|
|
synchronization procedure from the beginning.</p>
|
|
|
|
<p>The last three fields in the timecode are useful in assessing
|
|
the quality of the radio channel during the most recent minute
|
|
bursts were received. The <tt>bcnt</tt> field shows the number of
|
|
format A bursts in the range 1-8. The <tt>dist</tt> field shows the
|
|
majority decoder distance, or the minimum number of sample
|
|
repetitions for each digit of the timecode in the range 0-16. The
|
|
<tt>tsmp</tt> field shows the number of timestamps determined in
|
|
the range 0-60. For a valid timecode, <tt>bcnt</tt> must be at
|
|
least 3, <tt>dist</tt> must be greater than <tt>bcnt</tt> and <tt>
|
|
tsmp</tt> must be at least 20.</p>
|
|
|
|
<h4>Program Operation</h4>
|
|
|
|
<p>The program consists of four major parts: the DSP modem, maximum
|
|
likelihood UART, burst assembler and majority decoder. The DSP
|
|
modem demodulates Bell 103 modem answer-frequency signals; that is,
|
|
frequency-shift keyed (FSK) tones of 2225 Hz (mark) and 2025 Hz
|
|
(space). This is done using a 4th-order IIR filter and
|
|
limiter/discriminator with 500-Hz bandpass centered on 2125 Hz and
|
|
followed by a FIR raised-cosine lowpass filter optimized for the
|
|
300-b/s data rate. Alternately, the driver can be compiled to
|
|
delete the modem and input 300 b/s data directly from an external
|
|
modem via a serial port.</p>
|
|
|
|
<p>The maximum likelihood UART is implemented using a set of eight
|
|
11-stage shift registers, one for each of eight phases of the
|
|
300-b/s bit clock. At each phase a new baseband signal value from
|
|
the DSP modem is shifted into the corresponding register and the
|
|
maximum and minimum over all 11 samples computed. This establishes
|
|
a slice level midway between the maximum and minimum over all
|
|
stages. For each stage, a signal level above this level is a mark
|
|
(1) and below is a space (0). A quality metric is calculated for
|
|
each register with respect to the slice level and the a-priori
|
|
signal consisting of a mark bit (previous stop bit), space (start)
|
|
bit, eight arbitrary information bits and the first of the two mark
|
|
(stop) bits.</p>
|
|
|
|
<p>The shift registers are processed in round-robin order as each
|
|
modem value arrives until one of them shows a valid framing pattern
|
|
consisting of a mark bit, space bit, eight arbitrary data bits and
|
|
a mark bit. When found, the data bits from the register with the
|
|
best metric is chosen as the maximum likelihood character and the
|
|
UART begins to process the next character.</p>
|
|
|
|
<p>The burst assembler processes characters either from the maximum
|
|
likelihood UART or directly from the serial port as configured. A
|
|
burst begins when a character is received and is processed after a
|
|
timeout interval when no characters are received. If the interval
|
|
between characters is greater than two characters, but less than
|
|
the timeout interval, the burst is rejected as a runt and a new
|
|
burst begun. As each character is received, a timestamp is captured
|
|
and saved for later processing.</p>
|
|
|
|
<p>A valid burst consists of ten characters in two replicated
|
|
five-character blocks. A format B block contains the year and other
|
|
information in ten hexadecimal digits. A format A block contains
|
|
the timecode in ten decimal digits, the first of which is a framing
|
|
code (6). The burst assembler must deal with cases where the first
|
|
character of a format A burst is lost or is noise. This is done
|
|
using the framing code to correct the phase, either one character
|
|
early or one character late.</p>
|
|
|
|
<p>The burst distance is incremented by one for each bit in the
|
|
first block that matches the corresponding bit in the second block
|
|
and decremented by one otherwise. In a format B burst the second
|
|
block is bit-inverted relative to the first, so a perfect burst of
|
|
five 8-bit characters has distance -40. In a format A block the two
|
|
blocks are identical, so a perfect burst has distance +40. Format B
|
|
bursts must be perfect to be acceptable; however, format A bursts,
|
|
which are further processed by the majority decoder, are acceptable
|
|
if the distance is at least 28.</p>
|
|
|
|
<p>Each minute of transmission includes eight format A bursts
|
|
containing two timecodes for each second from 31 through 39. The
|
|
majority decoder uses a decoding matrix of ten rows, one for each
|
|
digit position in the timecode, and 16 columns, one for each 4-bit
|
|
code combination that might be decoded at that position. In order
|
|
to use the character timestamps, it is necessary to reliably
|
|
determine the second number of each burst. In a valid burst, the
|
|
last digit of the two timecodes in the block must match and the
|
|
value must be in the range 2-9 and greater than in the previous
|
|
burst.</p>
|
|
|
|
<p>As each hex digit of a valid burst is processed, the value at
|
|
the row corresponding to the digit position in the timecode and
|
|
column corresponding to the code found at that position is
|
|
incremented. At the end of each minute of transmission, each row of
|
|
the decoding matrix encodes the number of occurrences of each code
|
|
found at the corresponding position of the timecode. However, the
|
|
first digit (framing code) is always 6, the ninth (second tens) is
|
|
always 3 and the last (second units) changes for each burst, so are
|
|
not used.</p>
|
|
|
|
<p>The maximum over all occurrences at each timecode digit position
|
|
is the distance for that position and the corresponding code is the
|
|
maximum likelihood candidate. If the distance is zero, the decoder
|
|
assumes a miss; if the distance is not more than half the total
|
|
number of occurrences, the decoder assumes a soft error; if two
|
|
different codes with the same distance are found, the decoder
|
|
assumes a hard error. In all these cases the decoder encodes a
|
|
non-decimal character which will later cause a format error when
|
|
the timecode is reformatted. The decoding distance is defined as
|
|
the minimum distance over the first nine digits; the tenth digit
|
|
varies over the seconds and is uncounted.</p>
|
|
|
|
<p>The result of the majority decoder is a nine-digit timecode
|
|
representing the maximum likelihood candidate for the transmitted
|
|
timecode in that minute. Note that the second and fraction within
|
|
the minute are always zero and that the actual reference point to
|
|
calculate timestamp offsets is backdated to the first second of the
|
|
minute. At this point the timecode block is reformatted and the
|
|
year, days, hours and minutes extracted along with other
|
|
information from the format B burst, including DST state, DUT1
|
|
correction and leap warning. The reformatting operation checks the
|
|
timecode for invalid code combinations that might have been left by
|
|
the majority decoder and rejects the entire timecode if found.</p>
|
|
|
|
<p>If the timecode is valid, it is passed to the reference clock
|
|
interface along with the backdated timestamp offsets accumulated
|
|
over the minute. A perfect set of nine bursts could generate as
|
|
many as 90 timestamps, but the maximum the interface can handle is
|
|
60. These are processed by the interface using a median filter and
|
|
trimmed-mean average, so the resulting system clock correction is
|
|
usually much better than would otherwise be the case with radio
|
|
noise, UART jitter and occasional burst errors.</p>
|
|
|
|
<h4>Autotune</h4>
|
|
|
|
<p>The driver includes provisions to automatically tune the radio
|
|
in response to changing radio propagation conditions throughout the
|
|
day and night. The radio interface is compatible with the ICOM CI-V
|
|
standard, which is a bidirectional serial bus operating at TTL
|
|
levels. The bus can be connected to a standard serial port using a
|
|
level converter such as the CT-17. The serial port speed is
|
|
presently compiled in the program, but can be changed in the <tt>
|
|
icom.h</tt> header file.</p>
|
|
|
|
<p>Each ICOM radio is assigned a unique 8-bit ID select code,
|
|
usually expressed in hex format. To activate the CI-V interface,
|
|
the <tt>mode</tt> keyword of the <tt>server</tt> configuration
|
|
command specifies a nonzero select code in decimal format. A table
|
|
of ID select codes for the known ICOM radios is given below. Since
|
|
all ICOM select codes are less than 128, the high order bit of the
|
|
code is used by the driver to specify the baud rate. If this bit is
|
|
not set, the rate is 9600 bps for the newer radios; if set, the
|
|
rate is 1200 bps for the older radios. A missing <tt>mode</tt>
|
|
keyword or a zero argument leaves the interface disabled.</p>
|
|
|
|
<p>If specified, the driver will attempt to open the device <tt>
|
|
/dev/icom</tt> and, if successful will tune the radio to 3.330 MHz.
|
|
If after five minutes at this frequency not more than two format A
|
|
bursts have been received for any minute, the driver will tune to
|
|
7.335 MHz, then to 14.670 MHz, then return to 3.330 MHz and
|
|
continue in this cycle. However, the driver is liberal in what it
|
|
assumes of the configuration. If the <tt>/dev/icom</tt> link is not
|
|
present or the open fails or the CI-V bus or radio is inoperative,
|
|
the driver quietly gives up with no harm done.</p>
|
|
|
|
<h4>Radio Broadcast Format</h4>
|
|
|
|
<p>The CHU time broadcast includes an audio signal compatible with
|
|
the Bell 103 modem standard (mark = 2225 Hz, space = 2025 Hz). It
|
|
consist of nine, ten-character bursts transmitted at 300 b/s and
|
|
beginning each second from second 31 to second 39 of the minute.
|
|
Each character consists of eight data bits plus one start bit and
|
|
two stop bits to encode two hex digits. The burst data consist of
|
|
five characters (ten hex digits) followed by a repeat of these
|
|
characters. In format A, the characters are repeated in the same
|
|
polarity; in format B, the characters are repeated in the opposite
|
|
polarity.</p>
|
|
|
|
<p>Format A bursts are sent at seconds 32 through 39 of the minute
|
|
in hex digits</p>
|
|
|
|
<p><tt>6dddhhmmss6dddhhmmss</tt></p>
|
|
|
|
<p>The first ten digits encode a frame marker (<tt>6</tt>) followed
|
|
by the day (<tt>ddd</tt>), hour (<tt>hh</tt>), minute (<tt>mm</tt>)
|
|
and second (<tt>ss</tt>). Since format A bursts are sent during the
|
|
third decade of seconds the tens digit of <tt>ss</tt> is always 3.
|
|
The driver uses this to determine correct burst synchronization.
|
|
These digits are then repeated with the same polarity.</p>
|
|
|
|
<p>Format B bursts are sent at second 31 of the minute in hex
|
|
digits</p>
|
|
|
|
<p><tt>xdyyyyttaaxdyyyyttaa</tt></p>
|
|
|
|
<p>The first ten digits encode a code (<tt>x</tt> described below)
|
|
followed by the DUT1 (<tt>d</tt> in deciseconds), Gregorian year
|
|
(<tt>yyyy</tt>), difference TAI - UTC (<tt>tt</tt>) and daylight
|
|
time indicator (<tt>aa</tt>) peculiar to Canada. These digits are
|
|
then repeated with inverted polarity.</p>
|
|
|
|
<p>The <tt>x</tt> is coded</p>
|
|
|
|
<dl>
|
|
<dt><tt>1</tt></dt>
|
|
|
|
<dd>Sign of DUT (0 = +)/dd></dd>
|
|
|
|
<dt><tt>2</tt></dt>
|
|
|
|
<dd>Leap second warning. One second will be added.</dd>
|
|
|
|
<dt><tt>4</tt></dt>
|
|
|
|
<dd>Leap second warning. One second will be subtracted. This is not
|
|
likely to happen in our universe.</dd>
|
|
|
|
<dt><tt>8</tt></dt>
|
|
|
|
<dd>Even parity bit for this nibble.</dd>
|
|
</dl>
|
|
|
|
<p>By design, the last stop bit of the last character in the burst
|
|
coincides with 0.5 second. Since characters have 11 bits and are
|
|
transmitted at 300 b/s, the last stop bit of the first character
|
|
coincides with 0.5 - 10 * 11/300 = 0.133 second. Depending on the
|
|
UART, character interrupts can vary somewhere between the beginning
|
|
of bit 9 and end of bit 11. These eccentricities can be corrected
|
|
along with the radio propagation delay using the <tt>fudge
|
|
time1</tt> variable.</p>
|
|
|
|
<h4>Debugging Aids</h4>
|
|
|
|
<p>The most convenient way to track the program status is using the
|
|
<tt>ntpq</tt> program and the <tt>clockvar</tt> command. This
|
|
displays the last determined timecode and related status and error
|
|
counters, even when the program is not discipline the system clock.
|
|
If the debugging trace feature (<tt>-d</tt> on the <tt>ntpd</tt>
|
|
command line)is enabled, the program produces detailed status
|
|
messages as it operates. If the <tt>fudge flag 4</tt> is set, these
|
|
messages are written to the <tt>clockstats</tt> file. All messages
|
|
produced by this driver have the prefix <tt>chu</tt> for convenient
|
|
filtering with the Unix <tt>grep</tt> command.</p>
|
|
|
|
<p>With debugging enabled the driver produces messages in the
|
|
following formats:</p>
|
|
|
|
<p>A format <tt>chuA</tt> message is produced for each format A
|
|
burst received in seconds 32 through 39 of the minute:</p>
|
|
|
|
<p><tt>chuA n b s code</tt></p>
|
|
|
|
<p>where <tt>n</tt> is the number of characters in the burst
|
|
(0-11), <tt>b</tt> the burst distance (0-40), <tt>s</tt> the
|
|
synchronization distance (0-40) and <tt>code</tt> the burst
|
|
characters as received. Note that the hex digits in each character
|
|
are reversed and the last ten digits inverted, so the burst</p>
|
|
|
|
<p><tt>11 40 1091891300ef6e76ecff</tt></p>
|
|
|
|
<p>is interpreted as containing 11 characters with burst distance
|
|
40. The nibble-swapped timecode shows DUT1 +0.1 second, year 1998
|
|
and TAI -UTC 31 seconds.</p>
|
|
|
|
<p>A format <tt>chuB</tt> message is produced for each format B
|
|
burst received in second 31 of the minute:</p>
|
|
|
|
<p><tt>chuB n b f s m code</tt></p>
|
|
|
|
<p>where <tt>n</tt> is the number of characters in the burst
|
|
(0-11), <tt>b</tt> the burst distance (0-40), <tt>f</tt> the field
|
|
alignment (-1, 0, 1), <tt>s</tt>the synchronization distance
|
|
(0-16), <tt>m</tt>the burst number (2-9) and <tt>code</tt> the
|
|
burst characters as received. Note that the hex digits in each
|
|
character are reversed, so the burst</p>
|
|
|
|
<p><tt>10 38 0 16 9 06851292930685129293</tt></p>
|
|
|
|
<p>is interpreted as containing 11 characters with burst distance
|
|
38, field alignment 0, synchronization distance 16 and burst number
|
|
9. The nibble-swapped timecode shows day 58, hour 21, minute 29 and
|
|
second 39.</p>
|
|
|
|
<p>If the CI-V interface for ICOM radios is active, a debug level
|
|
greater than 1 will produce a trace of the CI-V command and
|
|
response messages. Interpretation of these messages requires
|
|
knowledge of the CI-V protocol, which is beyond the scope of this
|
|
document.</p>
|
|
|
|
<h4>Monitor Data</h4>
|
|
|
|
When enabled by the <tt>filegen</tt> facility, every received
|
|
timecode is written to the <tt>clockstats</tt> file in the
|
|
following format:
|
|
|
|
<pre>
|
|
sq yy ddd hh:mm:ss.fff ld dut lset agc rfrq bcnt dist tsmp
|
|
|
|
s sync indicator
|
|
q quality character
|
|
yyyy Gregorian year
|
|
ddd day of year
|
|
hh hour of day
|
|
mm minute of hour
|
|
ss second of minute
|
|
fff millisecond of second
|
|
l leap second warning
|
|
d DST state
|
|
dut DUT sign and magnitude in deciseconds
|
|
lset minutes since last set
|
|
agc audio gain (0-255)
|
|
rfrq radio frequency
|
|
bcnt burst count
|
|
dist decoding distance
|
|
tsmp timestamps captured
|
|
</pre>
|
|
|
|
The fields beginning with <tt>year</tt> and extending through <tt>
|
|
dut</tt> are decoded from the received data and are in fixed-length
|
|
format. The <tt>agc</tt> and <tt>lset</tt> fields, as well as the
|
|
following driver-dependent fields, are in variable-length format.
|
|
|
|
<dl>
|
|
<dt><tt>s</tt></dt>
|
|
|
|
<dd>The sync indicator is initially <tt>?</tt> before the clock is
|
|
set, but turns to space when the clock is correctly set.</dd>
|
|
|
|
<dt><tt>q</tt></dt>
|
|
|
|
<dd>The quality character is a four-bit hexadecimal code showing
|
|
which alarms have been raised during the most recent minute. Each
|
|
bit is associated with a specific alarm condition according to the
|
|
following:
|
|
|
|
<dl>
|
|
<dt><tt>8</tt></dt>
|
|
|
|
<dd>Decoder alarm. A majority of repetitions for at least one digit
|
|
of the timecode fails to agree.</dd>
|
|
|
|
<dt><tt>4</tt></dt>
|
|
|
|
<dd>Timestamp alarm. Fewer than 20 timestamps have been
|
|
determined.</dd>
|
|
|
|
<dt><tt>2</tt></dt>
|
|
|
|
<dd>Format alarm. The majority timecode contains invalid bit
|
|
combinations.</dd>
|
|
|
|
<dt><tt>1</tt></dt>
|
|
|
|
<dd>Frame alarm. A framing or format error occurred on at least one
|
|
burst during the minute.</dd>
|
|
</dl>
|
|
|
|
It is important to note that one or more of the above alarms does
|
|
not necessarily indicate a clock error, but only that the decoder
|
|
has detected a condition that may in future result in an
|
|
error.</dd>
|
|
|
|
<dt><tt>yyyy ddd hh:mm:ss.fff</tt></dt>
|
|
|
|
<dd>The timecode format itself is self explanatory. Note that the
|
|
Gregorian year is decoded directly from the transmitted
|
|
timecode.</dd>
|
|
|
|
<dt><tt>l</tt></dt>
|
|
|
|
<dd>The leap second warning is normally space, but changes to <tt>
|
|
L</tt> if a leap second is to occur at the end of the month of June
|
|
or December.</dd>
|
|
|
|
<dt><tt>d</tt></dt>
|
|
|
|
<dd>The DST code for Canada encodes the state for all
|
|
provinces.</dd>
|
|
|
|
<dt><tt>dut</tt></dt>
|
|
|
|
<dd>The DUT sign and magnitude shows the current UT1 offset
|
|
relative to the displayed UTC time, in deciseconds.</dd>
|
|
|
|
<dt><tt>lset</tt></dt>
|
|
|
|
<dd>Before the clock is set, the interval since last set is the
|
|
number of minutes since the program was started; after the clock is
|
|
set, this is number of minutes since the time was last verified
|
|
relative to the broadcast signal.</dd>
|
|
|
|
<dt><tt>agc</tt></dt>
|
|
|
|
<dd>The audio gain shows the current codec gain setting in the
|
|
range 0 to 255. Ordinarily, the receiver audio gain control or IRIG
|
|
level control should be set for a value midway in this range.</dd>
|
|
|
|
<dt><tt>rfrq</tt></dt>
|
|
|
|
<dd>The current radio frequency, if the CI-V interface is active,
|
|
or 'X' if not.</dd>
|
|
|
|
<dt><tt>bcnt</tt></dt>
|
|
|
|
<dd>The number of format A bursts received during the most recent
|
|
minute bursts were received.</dd>
|
|
|
|
<dt><tt>dist</tt></dt>
|
|
|
|
<dd>The minimum decoding distance determined during the most recent
|
|
minute bursts were received.</dd>
|
|
|
|
<dt><tt>tsmp</tt></dt>
|
|
|
|
<dd>The number of timestamps determined during the most recent
|
|
minute bursts were received.</dd>
|
|
</dl>
|
|
|
|
<h4>Modes</h4>
|
|
|
|
<p>The <tt>mode</tt> keyword of the <tt>server</tt> configuration
|
|
command specifies the ICOM ID select code. A missing or zero
|
|
argument disables the CI-V interface. Following are the ID select
|
|
codes for the known radios.</p>
|
|
|
|
<table cols="6" width="100%">
|
|
<tr>
|
|
<td>Radio</td>
|
|
<td>Hex</td>
|
|
<td>Decimal</td>
|
|
<td>Radio</td>
|
|
<td>Hex</td>
|
|
<td>Decimal</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>IC725</td>
|
|
<td>0x28</td>
|
|
<td>40</td>
|
|
<td>IC781</td>
|
|
<td>0x26</td>
|
|
<td>38</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>IC726</td>
|
|
<td>0x30</td>
|
|
<td>48</td>
|
|
<td>R7000</td>
|
|
<td>0x08</td>
|
|
<td>8</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>IC735</td>
|
|
<td>0x04</td>
|
|
<td>4</td>
|
|
<td>R71</td>
|
|
<td>0x1A</td>
|
|
<td>26</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>IC751</td>
|
|
<td>0x1c</td>
|
|
<td>28</td>
|
|
<td>R7100</td>
|
|
<td>0x34</td>
|
|
<td>52</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>IC761</td>
|
|
<td>0x1e</td>
|
|
<td>30</td>
|
|
<td>R72</td>
|
|
<td>0x32</td>
|
|
<td>50</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>IC765</td>
|
|
<td>0x2c</td>
|
|
<td>44</td>
|
|
<td>R8500</td>
|
|
<td>0x4a</td>
|
|
<td>74</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>IC775</td>
|
|
<td>0x46</td>
|
|
<td>68</td>
|
|
<td>R9000</td>
|
|
<td>0x2a</td>
|
|
<td>42</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<h4>Fudge Factors</h4>
|
|
|
|
<dl>
|
|
<dt><tt>time1 <i>time</i></tt></dt>
|
|
|
|
<dd>Specifies the propagation delay for CHU (45:18N 75:45N), 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>CHU</tt>.</dd>
|
|
|
|
<dt><tt>flag1 0 | 1</tt></dt>
|
|
|
|
<dd>Not used by this driver.</dd>
|
|
|
|
<dt><tt>flag2 0 | 1</tt></dt>
|
|
|
|
<dd>When the audio driver is compiled, this flag selects the audio
|
|
input port, where 0 is the mike port (default) and 1 is the line-in
|
|
port. It does not seem useful to select the compact disc player
|
|
port.</dd>
|
|
|
|
<dt><tt>flag3 0 | 1</tt></dt>
|
|
|
|
<dd>When the audio driver is compiled, this flag 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>
|
|
|