Trimble Palisade Receiver


Synopsis

Address: 127.127.29.u
Reference ID: GPS
Driver ID: PALISADE
Serial Port: /dev/palisadeu
Serial I/O: 9600 baud, 8-bits, 1-stop, odd parity

Description

The refclock_palisade driver interfaces NTP with Trimble Navigation's Palisade Smart Antenna GPS receiver. The driver reports its ID as "PALISADE'' to indicate the Trimble Palisade GPS as precision time source.

This documentation describes version V1.30 (May 5, 1998) of the source.

Compatibility

The driver has been tested on the following platforms:
Platform Operating System
i386 (PC) Linux Linux 2.x, Windows NT
SUN SunOS 4.x, Solaris
Hewlett-Packard HPUX 9.07, 10.20
Latest versions of refclock_palisade.c and operating system compatibility information for  are available from http://www.trimble.com.

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.

Specification

The following information should answer most questions regarding driver installation, deployment and debugging.

Receiver

The Palisade GPS receiver is an 8-channel smart antenna based on SierraTM GPS technology. It is designed for static timing applications, and will function in extreme RF jamming environments, such as cellular transmitter sites.

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.

Installation

The Palisade receiver is delivered in a smart antenna form factor, housing the GPS receiver, antenna and interface in a single unit, and is designed for rooftop deployment.
A location with unobstructed view of the horizon is recommended. Palisade is designed to be securely mounted atop standard 3/4 inch threaded pipe.

The 12 conductor power and I/O cable must be routed from the rooftop site to the NTP server.

Connection

The Palisade is equipped with dual (A & B) RS-422 serial interfaces and a differential TTL PPS output. Port B is utilized by the NTP driver. A RS-232 / RS-422 signal converter is supplied with the Palisade to power I/O cable lengths up to the 400 feet.

The following connectivity must be provided by serial cables or adapters:
 
Description DB-9 DB-25
Transmit Data 
2
3
 Receive Data 
3
2
Request to Send
7
4
Signal Ground
5
7

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.

O/S Serial Port Configuration

The driver attempts to open the device "/dev/palisadeu", where u is the NTP refclock unit number as defined by the LSB of the refclock address.  Valid refclock unit numbers are 0 - 3.

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/palisade0
If 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:

Initialization

No initialization of the Palisade is required for normal precision timing, and no initialization of the receiver is performed by the driver.

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.

Time Transfer and Polling

Time transfer to the NTP host is performed via the Palisade's comprehensive time packet output on the auxiliary port (B). This packet is output once per second, and whenever an event timestamp is requested.

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.

Data Format

The Palisade communicates using TSIP on Port A. Please refer to the Smart Antenna Developer's Guide, Trimble Part Number 25334-10 for more information.

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
 

Configuration

A typical ntp.conf configuration file for this driver and a Palisade with event polling:
#------------------------------------------------------------------------------
# The Primary reference
server 127.127.29.0 # Trimble Palisade GPS (Stratum 1).

# 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
#------------------------------------------------------------------------------

Logging

Syslog entries generated by the palisade reference clock will be of the form:
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

Debugging

The following procedure is recommended for installing and testing a Palisade NTP driver:
  1. Place the Palisade GPS receiver outdoors; with clear view of the sky.
  2. Verify functionality of the receiver and I/O interface, by observing automatic packet traffic on port A. Use TSIPCHAT or another TSIP decoder for decoding packet data. In a bind, a terminal program may be used to verify incoming binary data without decoding.
  3. Allow the receiver to acquire satellites. The Palisade will not respond to event polls or output synchronous packets, when not tracking  satellites. NTP will report no-reply events if timestamps are not received. Excessive NO-REPLY events indicate reception or cabling problems. In debug mode, the driver will report the id of up to 8 satellites in view.
  4. Connect Palisade port B to the NTP host.
  5. Configure NTP and the serial I/O port on the host system.
  6. Initially use fudge flag2 in ntp.conf, to disable event polling (see configuration).
  7. Run NTP in debug mode (-d), observe Palisade_receive events.
  8. Time stamp packets are only output while the receiver is tracking satellites.
  9. Remove fudge flag2 and restart in debug mode to observe event polling receive events.

#DEFINEs

The following constants are defined and used by the driver. These defines may be modified to improve performance or adapt to new operating systems.
 
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)
 

Fudge Factors

time1 time
Specifies the time offset calibration factor, in seconds and fraction, with default 0.0.
The driver attempts to determine the code path delay incurred when triggering event capture. When event capture is not being used, time1 should be set to approximately 10 milliseconds to offset serial line and operating system delays incurred in capturing time stamps from the synchronous packets.
 
time2 time
Not currently used by this driver.
 
stratum number
Specifies the driver stratum, in decimal from 0 to 15, with default 0.
It is suggested that the clock be fudged to stratum 1 so this it is used a backup time source rather than a primary when more accurate sources are available.
 
refid string
Specifies the driver reference identifier, GPS.
 
flag1 0 | 1
Not currently used by this driver.
 
flag2 0 | 1
If set to 1, the driver does not use hardware event polling, but instead listens for synchronous packets that are output at the start of each second by the Palisade receiver. If the ioctl() call responsible for triggering the event capture fails, the driver falls back to
this mode automatically.
 
flag3 0 | 1
Not currently used by this driver.
 
flag4 0 | 1
Not currently used by this driver.

Additional Information

Reference Clock Drivers
Trimble Navigation Ltd.
Palisade GPS

Sven-Thorsten Dietrich

(last update May 6, 1998)