This documentation describes version V1.30 (May 5, 1998) of the source.
Platform | Operating System |
i386 (PC) Linux | Linux 2.x, Windows NT |
SUN | SunOS 4.x, Solaris |
Hewlett-Packard | HPUX 9.07, 10.20 |
Please note that Windows NT deviates from Unix systems in the implementation of the select() system call. This shortcoming required extensive workaround. Reference clock support for Windows NT is currently not available with the NTP distribution from the University of Delaware.
Driver code for the Palisade receiver is being maintained by:
Sven Dietrich
Trimble Navigation Ltd.
645 North Mary Ave.
Sunnyvale, CA 94088-3642
Please send bug reports, comments and suggestions to the above addresses.
Palisade generates a PPS synchronized to UTC within +/- 100 ns. This level of precision is achieved using an over-determined time solution, a 40 ns pulse steering resolution and a T-RAIM (Time-Receiver Autonomous Integrity Monitor) algorithm.
During initialization the Palisade reports GPS time, which differs from UTC by an integer number of seconds corresponding to the number of leap seconds since 1980, the beginning of the GPS epoch.
The current GPS / UTC time offset was 12 seconds (as of May 1998). After the GPS / UTC offset has been obtained from GPS satellite data, the receiver will report UTC time. Typically, UTC time will be available a few minutes after cold-start power-up. The NTP driver will discard time stamps received from the Palisade GPS until they contain valid UTC offset information.
The 12 conductor power and I/O cable must be routed from the rooftop site to the NTP server.
The following connectivity must be provided by serial cables or adapters:
Description | DB-9 | DB-25 |
Transmit Data |
|
|
Receive Data |
|
|
Request to Send |
|
|
Signal Ground |
|
|
The Palisade's primary port, Port A, provides a TSIP (Trimble Standard Interface Protocol), control and command interface for diagnostics, configuration, and monitoring. Port A and the PPS output are not currently used by the Palisade NTP refclock driver.
The device name is defined as a constant in the code, and the user is expected to provide a symbolic link from /dev/palisadeu to an available serial port device. This is typically performed by a command such as:
ln -s /dev/ttyS0 /dev/palisade0If symbolic links are not supported, the DEVICE constant can be changed before recompiling; see the DEFINEs section below.
Windows NT does not support symbolic links to device files. COMx: is used by the driver, derived from the refclock unit number, where unit 0 corresponds to COM1: and unit 3 corresponds to COM4:
During initialization, the driver calls the polling function several times in order to obtain an estimate of the code delay associated with execution of the poll sequence. The driver attempts to compensate for code execution delays on the host processor.
The driver requests an event time stamp at the end of each polling interval (32 s default), by pulsing the RTS (request to send) line on the serial port. The Palisade receiver responds with a time stamped event packet.
Time stamps are reported by the Palisade with respect to UTC time. The NTP host will handle daylight savings transitions.
Port B outputs the synchronous time packet, which is formatted as follows:
Byte | Item | Type | Meaning |
0 | Sub-Packet ID | BYTE | Subcode 0x0B |
1 - 2 | Event Count | INTEGER | External event count recorded (0 = PPS) |
3 - 10 | UTC / GPS TOW | DOUBLE | UTC / GPS time of week (seconds) |
11 | Date | BYTE | Day of Month |
12 | Month | BYTE | Month of Event |
13 - 14 | Year | INT | Year of event |
15 | Receiver Mode | BYTE | Receiver operating dimensions:
0: Horizontal (2D) 1: Full Position (3D) 2: Single Satellite (0D) 3: Automatic (2D / 3D) 4: DGPS reference 5: Clock hold (2D) 6: Over determined Clock |
15 - 17 | UTC Offset | INTEGER | UTC Offset value (seconds) |
18 - 25 | Oscillator Bias | DOUBLE | Oscillator BIAS (meters) |
26 - 33 | Oscillator Drift Rate | DOUBLE | Oscillator Drift (meters / second) |
34 - 37 | Oscillator Bias Uncertainty | SINGLE | Oscillator bias uncertainty (meters) |
38 - 41 | Oscillator Drift
Uncertainty |
SINGLE | Oscillator bias rate uncertainty
(meters / second) |
42 - 49 | Latitude | DOUBLE | Latitude in radians |
50 - 57 | Longitude | DOUBLE | Longitude in radians |
58 - 65 | Altitude | DOUBLE | Altitude above mean sea level, in meters |
66 - 73 | Satellite ID | BYTE | SV Id No. of tracked satellites |
# Fudge stratum and other features as required.
fudge 127.127.29.0 stratum 1
peer terrapin.csc.ncsu.edu # another very good, friendly clock
# Drift file for expedient re-synchronization after downtime or
reboot.
driftfile /etc/ntp.drift
#------------------------------------------------------------------------------
A typical ntp.conf configuration file for this driver and a Palisade without event polling:
#------------------------------------------------------------------------------
# The Primary reference
server 127.127.29.0 # Trimble Palisade GPS (Stratum 1).
# Fudge stratum and other features as required
# Set serial port transmission + acknowledgment delay to a good
average
# and set flag2 to indicate not using event polling.
fudge 127.127.29.0 stratum 1
fudge 127.127.29.0 time1 0.020
fudge 127.127.29.0 flag2 1
# Drift file for expedient re-synchronization after downtime or
reboot.
driftfile /etc/ntp.drift
#------------------------------------------------------------------------------
Nov 14 16:16:21 terrapin ntpd[1127]: Palisade #0: fd: 8 dev: /dev/palisade0 Nov 14 16:16:21 terrapin ntpd[1127]: Palisade #0: code delay: 19 us 10 polls
Label | Definition | Default Value |
DEVICE | The serial port device to be used by the driver. | /dev/palisadeu |
PRECISION | Estimate of the accuracy of timestamps when using event poll. | 10 microseconds |
POLL_AVG | Number of polls to execute when estimating processor code delay. | 10 polls |
CURRENT_UTC | Valid GPS - UTC offset | 12 |
SPEED232 | Host RS-232 baud rate | B9600 |
TRMB_MINPOLL | Minimum polling interval | 5 (32 seconds) |
TRMB_MAXPOLL | Maximum interval between polls | 7 (128 seconds) |