U.S. patent application number 09/903926 was filed with the patent office on 2001-11-29 for gps receiver with cross-track hold.
Invention is credited to Kohli, Sanjai.
Application Number | 20010047243 09/903926 |
Document ID | / |
Family ID | 46254534 |
Filed Date | 2001-11-29 |
United States Patent
Application |
20010047243 |
Kind Code |
A1 |
Kohli, Sanjai |
November 29, 2001 |
GPS receiver with cross-track hold
Abstract
A terrestrial C/A code GPS receiver system derives along track
position information while tracking as few as two GPS satellites by
use of conventional altitude hold and a cross track hold mode in
which the maximum expected deviation of the vehicle from the
expected track is estimated by, for example, knowledge or
prediction of the width of the roadway or other track. To maintain
accuracy, cross track hold is alternated with clock hold to update
the cross track estimate when changes in vehicle direction are
detected or when a predetermined period has elapsed.
Inventors: |
Kohli, Sanjai; (Manhattan
Beach, CA) |
Correspondence
Address: |
FULWIDER PATTON LEE & UTECHT, LLP
HOWARD HUGHES CENTER
6060 CENTER DRIVE
TENTH FLOOR
LOS ANGELES
CA
90045
US
|
Family ID: |
46254534 |
Appl. No.: |
09/903926 |
Filed: |
July 12, 2001 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
09903926 |
Jul 12, 2001 |
|
|
|
09733734 |
Dec 8, 2000 |
|
|
|
6292749 |
|
|
|
|
09733734 |
Dec 8, 2000 |
|
|
|
09629475 |
Jul 31, 2000 |
|
|
|
6236937 |
|
|
|
|
09629475 |
Jul 31, 2000 |
|
|
|
08900894 |
Jul 25, 1997 |
|
|
|
6125325 |
|
|
|
|
08900894 |
Jul 25, 1997 |
|
|
|
08846067 |
Apr 25, 1997 |
|
|
|
08846067 |
Apr 25, 1997 |
|
|
|
08637457 |
Apr 25, 1996 |
|
|
|
08846067 |
Apr 25, 1997 |
|
|
|
08638021 |
Apr 25, 1996 |
|
|
|
5901171 |
|
|
|
|
08846067 |
Apr 25, 1997 |
|
|
|
08637537 |
Apr 25, 1996 |
|
|
|
6041280 |
|
|
|
|
08846067 |
Apr 25, 1997 |
|
|
|
08638882 |
Apr 25, 1996 |
|
|
|
5897605 |
|
|
|
|
60024260 |
Aug 21, 1996 |
|
|
|
60026304 |
Sep 16, 1996 |
|
|
|
Current U.S.
Class: |
701/469 ;
340/988; 342/357.52; 342/357.74; 375/E1.002; 375/E1.016;
375/E1.032 |
Current CPC
Class: |
G01S 19/29 20130101;
H04B 1/7115 20130101; H04B 2201/70715 20130101; H04B 1/707
20130101; H04B 1/7085 20130101; G01S 19/11 20130101; G01C 21/30
20130101; H04B 7/216 20130101; H04B 1/709 20130101; H04B 2001/70706
20130101; G01S 19/37 20130101; G01S 19/49 20130101; G01S 19/22
20130101; G01C 22/00 20130101; G01S 19/30 20130101; G01S 19/34
20130101; G01C 21/26 20130101; G01S 19/235 20130101; G01S 19/50
20130101; G01S 19/47 20130101 |
Class at
Publication: |
701/213 ;
340/988; 342/357.06 |
International
Class: |
G01C 021/00 |
Claims
What is claimed is:
1. A method of determining position information from GPS satellites
comprising the steps of: selecting a route to be traveled; tracking
one or more GPS satellites with a GPS receiver mounted for motion
along the route; and deriving route specific along track, cross
track, altitude and satellite time information from the one or more
GPS satellites being tracked.
2. The method of claim 1 wherein the route is selected from:
operator input, or a pre-compiled database, or a direction
currently being traveled.
3. The method of claim 1 wherein the step of deriving route
specific information further comprises the step of: estimating the
route specific cross track information.
4. The method of claim 3 wherein the route specific cross track
information is estimated from: a default value related to a
distance representing the expected accuracy of the GPS receiver, or
a value related to the maximum expected distance transverse to a
centerline of the route to be traveled expected to be encountered
during motion along the route.
5. The method of claim 4 wherein the value related to the maximum
expected distance transverse to a centerline of the route to be
traveled expected to be encountered during motion along the route
is estimated from: operator input, or a pre-compiled database
related to the route to be traveled, or a default value related to
an expected width of the route to be traveled.
6. The method of claim 1 wherein the step of deriving route
specific information further comprises the step of: operating in
cross track, altitude and clock hold by estimating the route
specific cross track, altitude and satellite time information.
7. The method of claim 6 wherein the route specific cross track
information is estimated from: a default value related to a
distance representing the expected accuracy of the GPS receiver, or
a value related to the maximum expected distance transverse to a
centerline of the route to be traveled expected to be encountered
during motion along the route.
8. The method of claim 7 wherein the value related to the maximum
expected distance transverse to a centerline of the route to be
traveled expected to be encountered during motion along the route
is estimated from: operator input, or a pre-compiled database
related to the route to be traveled, or a default value related to
an expected width of the route to be traveled.
9. The method of claim 6 wherein the route specific altitude
information is estimated from: a default value related to a
distance representing the expected accuracy of the GPS receiver, or
a pre-compiled database related to the route to be traveled, or a
default value related to an expected maximum altitude above sea
level of the route to be traveled.
10. The method of claim 6 wherein the satellite time information is
estimated from: an internal clock previously synchronized with
satellite time, or a clock error database compiled from
measurements of an internal clock compared with satellite time, or
satellite time determined from a satellite being tracked by the GPS
receiver.
11. The method of claim 6 wherein the step of deriving route
specific along track information further comprises the steps of:
processing signals received from one of the GPS satellites being
tracked whose trajectory is most geometrically suitable for
deriving along track information for the route being traveled.
12. The method of claim 1 wherein the step of deriving route
specific information further comprises the step of: operating in
cross track and altitude hold by estimating the route specific
cross track and altitude information.
13. The method of claim 12 wherein the route specific cross track
information is estimated from: a default value related to a
distance representing the expected accuracy of the GPS receiver, or
a value related to the maximum expected distance transverse to a
centerline of the route to be traveled expected to be encountered
during motion along the route.
14. The method of claim 13 wherein the value related to the maximum
expected distance transverse to a centerline of the route to be
traveled expected to be encountered during motion along the route
is estimated from: operator input, or a pre-compiled database
related to the route to be traveled, or a default value related to
an expected width of the route to be traveled.
15. The method of claim 12 wherein the route specific altitude
information is estimated from: a default value related to a
distance representing the expected accuracy of the GPS receiver, or
a pre-compiled database related to the route to be traveled, or a
default value related to an expected maximum altitude above sea
level of the route to be traveled.
16. The method of claim 12 wherein the step of deriving route
specific along track information further comprises the steps of:
processing signals received from one of the GPS satellites being
tracked whose trajectory is most geometrically suitable for
deriving along track information for the route being traveled.
17. The method of claim 12 wherein the step of operating in cross
track and altitude hold by estimating the route specific cross
track and altitude information further comprises: periodically
switching from cross track to clock hold to derive updated cross
track information from the one or more GPS satellites being
tracked.
18. The method of claim 17 further comprising the steps of:
monitoring motion of the GPS receiver; causing the periodic
switching from cross track to clock hold when the monitoring motion
indicates a change in motion.
19. The method of claim 18 wherein the indicated change in motion
is a change in direction not included within the route.
20. A method of determining position information from GPS
satellites comprising the steps of: tracking at least two GPS
satellites to derive navigation information related to a vehicle in
motion along a track; estimating cross track hold information
related to possible motion of the vehicle transverse to the track;
determining along track position information related to the
position of the vehicle along the track by combining the estimated
cross track and the navigation information.
21. The method of claim 20, further comprising the steps of:
estimating clock hold information related to satellite time
information; and determining updated cross track hold information
by combining the estimated clock hold and the navigation
information.
22. The method of claim 21, further comprising the steps of:
alternating the steps of estimating cross track hold and
determining along track position information with the steps of
estimating clock hold and determining updated cross track hold
information.
23. The method of claim 22, wherein the step of alternating the
steps of estimating cross track hold and clock hold information
further comprises the steps of: estimating cross track hold
information for a first period of time; and then estimating clock
hold information for a second period of time, the second period of
time being a fixed duration of time sufficient to determine the
updated cross track hold information.
24. The method of claim 23, wherein the step of alternating the
steps of estimating cross track hold and clock hold information
further comprises the step of: determining when to initiate the
step of estimating the clock hold information for the second period
of time.
25. The method of claim 24, wherein the step of determining when to
initiate the step of estimating the clock hold information further
comprises: monitoring the duration of the first period of time to
initiate the step of estimating the clock hold information when
necessary to maintain a predetermined level of accuracy of the
cross track information.
26. The method of claim 24, wherein the step of determining when to
initiate the step of estimating the clock hold information further
comprises: monitoring motion of the vehicle to determine changes in
vehicle motion inconsistent with the track to initiate the step of
estimating the clock hold information when necessary to maintain a
predetermined level of accuracy of the cross track information.
27. The method of claim 24, wherein the step of determining when to
initiate the step of estimating the clock hold information further
comprises the steps of: monitoring the duration of the first period
of time to initiate the step of estimating the clock hold
information when necessary to maintain a predetermined level of
accuracy of the cross track information, and monitoring motion of
the vehicle to determine changes in vehicle motion inconsistent
with the track to initiate the step of estimating the clock hold
information when necessary to maintain a predetermined level of
accuracy of the cross track information.
28. A method of determining position information from GPS
satellites comprising the steps of: estimating cross track hold
information related to motion of a vehicle transverse to a track;
tracking two GPS satellites to derive navigation information
therefrom; combining the estimated cross hold and navigation
information to derive along track information related to the
position of the vehicle along the track; selectively estimating
clock hold information related to satellite time; and combining the
estimated clock hold and navigation information to derive updated
cross track hold information.
29. The method of claim 28 wherein the step of selectively
estimating clock hold information further comprises: monitoring
vehicle motion to determine when to estimate clock hold
information.
30. The method of claim 29 wherein the step of monitoring vehicle
motion further comprises the steps of: detecting changes in vehicle
motion indicating changes in vehicle cross track position.
31. The method of claim 28 wherein the step of selectively
estimating clock hold information further comprises: initiating
clock hold operation after a fixed maximum duration of cross track
hold operation.
32. A GPS receiver, comprising: means for tracking two GPS
satellites to derive navigation information therefrom related to
the position of a vehicle; cross track hold means for estimating
the deviation of the position of the receiver from a track along
which the vehicle is predicted to be in motion; and data processing
means for combining the navigation information from the two GPS
satellites being tracked and the cross track deviation estimate to
derive along track navigation information related to the motion of
the vehicle along the track.
33. The GPS receiver of claim 32 further comprising: selectively
operable cross track hold update means, responsive to the means for
tracking two GPS satellites, for estimating satellite related time
information and for causing the data processing means to combine
the navigation information from the two GPS satellites being
tracked and the estimated satellite related time information to
derive updated cross track hold information.
34. The invention of claim 33 further comprising: update timing
means for determining when to operate the cross track hold update
means.
35. The invention of claim 34 wherein the update timing means
further comprises: means for operating the cross track hold update
means in response to changes in vehicle motion indicating deviation
from the track.
36. The invention of claim 34 wherein the update timing means
further comprises: means for periodically operating the cross track
hold update means.
37. The invention of claim 36 wherein the update timing means
further comprises: means for operating the cross track hold update
means when a maximum period from a previous operation of the cross
track hold update means has elapsed.
38. A method for operating a GPS receiver under adverse satellite
signal reception conditions, comprising the steps of: creating and
using a cross track estimate when only two satellites with adequate
geometric coverage are available; and using a fast reacquisition
mode to update an along track estimate during brief periods of
availability of any additional satellite.
39. The method of claim 38, further comprising the step of:
creating the cross track estimate from the then current position as
derived from a map data base.
40. The method of claim 38, further comprising the step of:
creating and using a clock estimate when only one satellite with
adequate geometric coverage is available.
41. The method of claim 40, wherein the step of creating and using
a clock estimate further comprises the step of: creating and using
a clock estimate to occasionally update the cross track estimate
when two satellites are available.
42. The method of claim 41, further comprising the step of:
creating and using a position estimate when no satellites with
adequate geometric coverage are available.
43. The method of claim 42, further comprising the step of:
updating the position estimate by dead reckoning until at least one
satellite with adequate geometric coverage is available.
44. The method of claim 43, further comprising the step of:
utilizing data from the map data base to update the position
estimate as a function of time.
45. The method of claim 44, wherein the step of utilizing data from
the map data base further comprises the step of: calculating
distance traveled in accordance with the straight-line distance
between two points of position.
46. The method of claim 44, wherein the step of utilizing data from
the map data base further comprises the step of: calculating
distance traveled in accordance with the actual distance between
two points of position as indicated by a route being traveled.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. pat. app.
Ser. No. 08/846,067 filed Apr. 25, 1997 which is a
continuation-in-part of U.S. pat. app. Ser. Nos. 08/637,457,
08/638,021, 08/637,537, and 08/638,882, all filed Apr. 25, 1996 and
claims the priority of provisional patents applications Ser. No.
60/024,260 filed Aug. 21, 1996 and Ser. No. 60/026,304 filed Sep.
16, 1996.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] This invention relates in general to spread spectrum
receivers and in particular to GPS navigation systems such as those
used in terrestrial navigation for cars, trucks and other land
vehicles.
[0004] 2. Description of the Prior Art
[0005] Car navigation is conventionally performed using highway and
street maps aided, to some degree, by distance measurements from
external sensors such as odometers. Improvements over the last 10
years in Global Positioning System, or GPS, satellite navigation
receivers has spawned several GPS car navigation systems.
[0006] Conventional GPS car navigation systems use the last known
position of the vehicle, and the destination data, to compute a
route data base, including route and turning data derived from a
pre-existing map data base. GPS receivers are conventionally
operated with a minimum of 3 or 4 satellites distributed across the
visible sky in order to determine, or at least estimate, the four
necessary unknowns including x.sub.user, y.sub.user and z.sub.user
which provide three orthogonal coordinates to locate the user as
well as t.sub.user which provides the required satellite time.
[0007] Techniques such as time or clock hold and altitude hold, in
which the unknown time or altitude is assumed to remain predictable
from a previously determined value, e.g. z.sub.est and/or
t.sub.est, have permitted operation of GPS receivers with less than
4 satellites in view. In particular, terrestrial GPS receivers have
been operated with as few as 2 satellites to provide a 2
dimensional position solution using both clock and altitude
hold.
[0008] Because continuous reception from 4 GPS satellites is often
difficult to maintain in a car navigation environment, and known
clock and altitude hold techniques can only permit operation with
at least 2 satellites, known conventional car navigation systems
have typically augmented the GPS position information with
information from external sensors to provide dead reckoning
information. The dead reckoning information is often provided by an
inertial navigation system such as a gyroscope.
[0009] Augmenting GPS data with inertial navigation data has
permitted the use of GPS car navigation even when less than 4
satellites are visible, such as in tunnels and in urban situations
between tall buildings. However, the resultant increased complexity
and costs for such combined systems have limited their
acceptance.
[0010] Conventional GPS receivers use separate tracking channels
for each satellite being tracked. Each tracking channel may be
configured from separate hardware components, or by time division
multiplexing of the hardware of a single tracking channel, for use
with a plurality of satellites. In each tracking channel, the
received signals are separately Doppler shifted to compensate for
the relative motion of each satellite and then correlated with a
locally generated, satellite specific code.
[0011] What is needed is an improved spread spectrum receiver, such
as one for use with GPS navigation systems, which avoids the
limitations of conventional designs and provides improved results
in a wide range of reception conditions.
SUMMARY OF THE INVENTION
[0012] In one aspect, the present invention provides an improved
terrestrial navigation system using a GPS receiver which can
continue to navigate with continuous GPS data from less than the 3
or 4 GPS satellites commonly required. The GPS data is augmented
with data from another source. The source of the augmentation data
may include data from external sensors, data bases including map
data bases, and/or knowledge of the physical environment within
which the vehicle is to be navigated. The use of such augmentation
data permits GPS satellite navigation solutions for stand-alone GPS
systems as well as for GPS systems integrated with external sensors
and/or map databases with less than 3 or 4 continuously visible GPS
satellites.
[0013] In another aspect, the present invention provides a GPS
receiver in which map data used to determine routing is also used
as a source of data augmentation for a single satellite solution by
providing direction of travel information.
[0014] In still another aspect, the present invention provides a
method of augmenting GPS data using information from the physical
environment. For example, vehicles are usually constrained to
tracks no wider than the width of the roadway--and often to tracks
only half the width of the roadway--and trains are constrained to
the width of their tracks. This cross track constraint data may be
used to provide augmentation data and allow the vehicle to continue
to navigate with only a single satellite in view. The cross track
constraint data permits the computation of along track data useful
for calculating total distance traveled to provide a GPS based
odometer measurement.
[0015] The present invention permits the computation of distance
along track for use as an odometer reading while tracking only one
satellite. Cross track hold provides along-track data directly
which, in the case of a vehicle, directly provides distance
traveled information useful in lieu of a conventional odometer
reading.
[0016] In addition to clock and altitude hold, the present
invention uses a technique which may be called cross-track hold in
which the single satellite in view is used for determining the
progress of a vehicle such as a car along its predicted track, such
as a roadway. The data conventionally required from a second
satellite is orthogonal to the track and therefor represents the
appropriate width of the roadway. This value may be assumed and or
constrained to a sufficiently small value to permit an estimate of
the value, e.g. y.sub.est to provide a mode described herein as
cross-track hold while obtaining useful GPS navigation from a
single satellite in view.
[0017] In other words, in accordance with the present invention,
single satellite navigation may be achieved by using the data from
the single satellite for on-track navigation information while
holding or estimating the time, altitude and/or cross-track
navigation data.
[0018] The required augmentation data may additionally, or
alternatively, be derived from other sources in the physical
environment, such as turns made by the vehicle during on-track
travel. In accordance with another aspect of the present invention,
the vehicle may detect turns made during travel and update the
current position of the vehicle at the turn in accordance with the
timing of the turn. Turn detection may be accomplished by
monitoring changes in the vehicle vector velocity derived from
changes in the GPS derived position information or by monitoring
changes in the compass heading or by any other convenient
means.
[0019] In another aspect, the present invention provides a GPS
system for navigating a vehicle along a track, including means for
tracking at least one GPS satellite to provide on-track information
related to progress of the vehicle along a selected track, means
for providing an estimate of cross track information related to
motion of the vehicle perpendicular to the track, and means for
providing vehicle navigation data, such as vehicle position or
vehicle velocity, from the on-track information and the cross-track
estimate.
[0020] In still another aspect, the present invention provides a
method of deriving position information from a single GPS satellite
by tracking at least one GPS satellite to provide on-track
information related to progress of the vehicle along a selected
track, providing an estimate of cross track information related to
motion of the vehicle perpendicular to the track, and determining
the position of the vehicle from the on-track and the cross-track
estimates.
[0021] In still another aspect, the present invention provides a
method of updating GPS position information for a vehicle
navigating on roadways by deriving an indication that the vehicle
has made a turn at a particular point along a predetermined track,
comparing the turn indication with stored navigation data to select
data related to one or more predicted turns at or near the
particular point, comparing the turn indication with the predicted
turn data to verify that the indicated turn corresponds to the
predicted turn, and updating GPS position information to indicate
that the vehicle was at the predicted turn location at a time
corresponding to the turn indication.
[0022] In still another aspect, the present invention provides a
GPS system for navigating a vehicle, the system including means for
tracking at least one GPS satellite to provide on-track information
related to the direction of travel of the vehicle along a selected
track, and means for deriving vehicle navigation data from changes
in the direction of travel of the vehicle along the selected
track.
[0023] In another aspect, the present invention provides a method
of determining position information from GPS satellites by
selecting a route to be traveled, tracking one or more GPS
satellites with a GPS receiver mounted for motion along the route;
and deriving route specific along track, cross track, altitude and
satellite time information from the one or more GPS satellites
being tracked.
[0024] In yet another aspect, the present invention provides a
method of determining position information from GPS satellites by
tracking at least two GPS satellites to derive navigation
information related to a vehicle in motion along a track,
estimating cross track hold information related to possible motion
of the vehicle transverse to the track, determining along track
position information related to the position of the vehicle along
the track by combining the estimated cross track and the navigation
information.
[0025] In another aspect, the present invention provides a method
of determining position information from GPS satellites by
estimating cross track hold information related to motion of a
vehicle transverse to a track, tracking two GPS satellites to
derive navigation information therefrom, combining the estimated
cross hold and navigation information to derive along track
information related to the position of the vehicle along the track,
selectively estimating clock hold information related to satellite
time, and combining the estimated clock hold and navigation
information to derive updated cross track hold information.
[0026] In a still further aspect, the present invention provides a
GPS receiver including means for tracking two GPS satellites to
derive navigation information therefrom related to the position of
a vehicle, cross track hold means for estimating the deviation of
the position of the receiver from a track along which the vehicle
is predicted to be in motion, and data processing means for
combining the navigation information from the two GPS satellites
being tracked and the cross track deviation estimate to derive
along track navigation information related to the motion of the
vehicle along the track.
[0027] In a still further aspect, the present invention provides a
method for operating a GPS receiver under adverse satellite signal
reception conditions by creating and using a cross track estimate
when only two satellites with adequate geometric coverage are
available and using a fast reacquisition mode to update an along
track estimate during brief periods of availability of any
additional satellite.
BRIEF DESCRIPTION OF THE DRAWINGS
[0028] FIG. 1 is an overview illustration of the operation of a car
navigation system according to the present invention.
[0029] FIG. 2 is a block diagram of the GPS car navigation system
depicted in FIG. 1, used for improved navigation during reduced
satellite visibility.
[0030] FIG. 3 is a schematic representation of a single satellite
channel of a GPS receiver used for fast satellite
reacquisition.
[0031] FIG. 4 is a schematic representation of a portion of the
single satellite channel shown in FIG. 3 in which an additional
plurality of sets of delayed code samples are correlated to provide
a finer gradation of correlation intervals.
[0032] FIG. 5 is a functional block diagram of a preferred
implementation, on an ASIC, of the satellite tracking channels and
associated processing components of the GPS car navigation system
shown in FIG. 1.
[0033] FIG. 6 is a functional block diagram of the Doppler Block of
the GPS car navigation system shown in FIG. 1.
[0034] FIG. 7 is a functional block diagram of the Coder Block of
the GPS car navigation system shown in FIG. 1.
[0035] FIG. 8 is a functional block diagram of the Correlator Block
of the GPS car navigation system shown in FIG. 1.
[0036] FIG. 9 is a function block diagram overview showing the
interconnections between the Doppler, Code, Correlator and other
blocks of the system described in FIG. 5.
[0037] FIG. 10 is a block diagram of the operation of the system,
shown in FIGS. 5 and 9, illustrating the data path of the present
invention.
[0038] FIG. 11 is a series of exploded time segments illustrating
the operation of the data path of the present invention.
[0039] FIG. 12 is a block diagram overview of a GPS receiver system
illustrating a complete receiver system according to the present
invention including a more detailed view of the satellite receiver
section shown in FIG. 2.
[0040] FIG. 13 is a block diagram of an alternate embodiment of the
GPS car navigation system depicted in FIG. 2 used for improved
navigation during reduced satellite visibility.
[0041] FIGS. 14A and 14B are diagrams illustrating cross track
error resulting from the use of a straight line predicted
track.
[0042] FIG. 15 is a flow chart diagram of an energy reducing sleep
mode of operation in accordance with the present invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0043] FIG. 1 is an overview illustration of the operation of a GPS
car navigation system according to the present invention. The GPS
car navigation system, described below in greater detail with
respect to FIG. 2, is mounted in car 10 which is moving along the
center of roadway 12. NAVSTAR satellite 14, in the lower left
quadrant of the figure, is in view of car 10. A simulated GPS
circular overhead display, positioned approximately over
intersection 22 of roadway 12 and roadway 16 indicates that
satellite 14 is between 0.degree. and 45.degree. degrees of
elevation above the horizon as viewed from car 10.
[0044] For the purposes of illustration, satellite 18 is positioned
overhead between the elevation angles of 0.degree. and 45.degree.
degrees.
[0045] However, the line of sight between satellite 18 and car 10
is obscured by buildings 20 so that satellite 18 is not in view of
car 10 at the position along roadway 12 as shown. Similarly, the
line of sight between satellite 19 and car 10 is obscured by
buildings 21. However, as will be discussed below, when car 10
crosses intersection 22, the line of sight between satellite 19 and
car 10, when the car is in position 11 within intersection 22, may
momentarily be clear.
[0046] Turning now to FIG. 2, GPS car navigation system 24 is a
first embodiment of a car navigation system according to the
present invention which may be installed in car 10 of FIG. 1. GPS
car navigation system 24 includes GPS car system module 26 which is
provided with signals received from satellites by GPS antenna 28,
data related to the then current--and expected future--physical
environment of car 10 by for example map data base 30 and data
input from the operator of the car by for example input device 32.
GPS car system module 26 provides output to the operator, for
example, in the form of a GPS map display, via display unit 34,
which may include both visual display as well as a voice interface
announcing information as required to supplement or even partially
replace visually presented data.
[0047] The present invention may be configured for use with only a
GPS receiver, a GPS receiver aided by map data from, for example,
map data base 30, and/or a GPS receiver aided by both a map data
base as well as an external source of information, for example,
from an external sensor. This external source of information may be
used for maintaining position information by dead reckoning during
those times when a sufficient number of satellites are not in view
to provide the desired information.
[0048] In operation, a composite of all signals received from
NAVSTAR satellites is applied by GPS antenna 28 to satellite
receiver section 36 of GPS car system module 26. Signals from
individual NAVSTAR satellites are then tracked in satellite
specific tracking channels such as SatTRAK channels 38, 40, 42 and
44. Although it is quite conventional to track 4 to 12 satellites
and therefore use 1 to 12 satellite tracking channels, only 4 such
channels are shown herein for clarity. The outputs of these
satellite specific tracking channels are processed by SatProcessor
46 to provide Xuser, yuser, Zuser and tuner data via appropriate
logic control to a GPS position processor, such as PosProcessor or
Nav Soln 48 which determines the navigation solution to determine
position data. Position data is then applied by PosProcessor 48 to
an appropriate display for the operator of the car, such as display
unit 34.
[0049] External sensor 49, in FIG. 2, may conveniently provide
sensor data, or local or satellite position information, or
position information which provided local position or satellite
position information directly to PosProcessor 48 for comparison 115
with the position information determined by SatProcessor 46 and/or
Map/Display Processor 50. External sensor 49 may conveniently be
any sensor which provides information useful for updating position
information for dead reckoning including direction, speed, velocity
or acceleration or other data from which dead reckoning data may be
derived. Conventional sensors include inertial navigation systems,
with magnetic or optical gyroscopes, fluxgate compasses, odometer
or wheel sensors or the like. Alternatively, external GPS format
signals, such as those provided by a pseudolite, may be used to
update current satellite or position information.
[0050] At the beginning of a navigated trip, the operator of car 10
would typically provide data concerning the physical environment
surrounding the intended route to GPS car system module 26 by
inserting an appropriate data storage device such as a CD ROM, into
map data base 30, and/or by entering the data via input device 32
which conveniently may be a keypad, keyboard, pointing device,
track ball, touch screen, graphical pad, a voice recognition
interface and/or a combination of such input devices. The operator
of car 10 would also enter the intended destination into GPS car
system module 26 via a data entry device such as a mouse or track
ball interacting with display unit 34 and/or via input device 32.
Map/Display Processor 50 of GPS car system module 26 would then
develop the desired route, typically from the then current location
as a point of origin to the desired destination, in accordance with
the rules of navigation and details of the locale provided by map
data base 30. The appropriate route data is stored in Route Data
Base 52, including the routing in the form of roadways and turns
between roadways. Additional information, such as altitude, width
of the roadways and etc. may also be contained within map data base
30 and/or Route Data Base 52. These data bases may be contained
within GPS car navigation system 24 and/or be made available to GPS
car system module 26 from outside storage media such as diskettes
positioned in appropriate disk drives.
[0051] During navigation, each satellite in view may be tracked in
a satellite tracking channel. If, for example, 4 or more satellites
are in view, each of the satellites in view will be tracked in an
individual channel, such as SatTRAK channels 38, 40, 42 and 44. The
output of the satellite tracking channels is then applied to
SatProcessor 46 which would provide satellite based solutions of
the four unknowns, such as x.sub.user, y.sub.user, z.sub.user and
t.sub.user. The data represented by x.sub.user and y.sub.user are
conventionally used as the two dimensional orthogonal components of
the surface of the earth such as north and east. However, in
accordance with the present invention, x.sub.user and y.sub.user
are preferably used to represent data for a pair of orthogonal
directions specific to the direction of vehicle travel called the
on-track and cross-track directions.
[0052] Conventional bearing, such as north, south, east and west
are relative to the magnetic or true north poles of the earth,
while on-track and cross-track, as used in the present invention,
are bearings made relative to the expected direction of travel of
car 10 at any particular point in the route. For example, while a
90.degree. turn from a heading of due north would change the angle
of the vehicle velocity vector from 0.degree. to 90.degree. if
bearings relative to the Earth's surface such as north and east are
used, the same turn would show no change in the 0.degree. angle of
the vehicle velocity vector before or after the turn as long as car
10 remained on the expected track.
[0053] The data represented by z.sub.user is typically surface
elevation, such as the elevation above sea level, while the data
represented by t.sub.user is the exact time as determined from one
or more of the satellite tracking channels.
[0054] Solutions for all 4 unknowns of position information may be
derived from signals from 4 satellites in view, so that exact
position information within the limit of the accuracy then
available from the GPS satellite constellation in view can
therefore be applied by PosProcessor 48 to Map/Display Processor
50. The position information determined from the satellites is
processed with the physical data from map data base 30, and/or the
desired routing data from Route Data Base 52, to provide
appropriate navigation information to the operator of car 10 via
display unit 34.
[0055] If less than 4 satellites are in view, the t.sub.user
solution applied to PosProcessor 48 may be replaced by test 54
estimated solution derived for example from an internal clock model
54 in position estimate or model 63. Similarly, the z.sub.user
solution may be replaced by z.sub.est 56 solution derived from
elevation estimate 56, also in position model 63, in accordance
with routing data derived from Route Data Base 52 in accordance
with then current GPS position information applied to Map/Display
Processor 50. T.sub.est 54 and z.sub.est 56 are applied to
PosProcessor 48, and used in lieu of t.sub.user and z.sub.user,
when only two satellites are in view. The use of estimated or
modeled solutions for the t and z variables, that is the use of
t.sub.est 54 and z.sub.est 56 are conventionally known as clock
hold and altitude hold, respectively.
[0056] It must be noted that the particular configuration of GPS
car navigation system 24 as described so far is only one of the
many known ways of configuring such systems any of which may be
used without departing from the spirit or scope of the present
invention as defined by the claims.
[0057] In accordance with the present invention, the width of the
roadway, either known or estimated, may be used to provide
y.sub.est 60 for use in lieu of y.sub.user when only one satellite
is visible. y.sub.est 60 may be derived from Route Data Base 52
and/or map data base 30. Since the x and y unknowns are orthogonal,
x.sub.user may be used to describe the on-track information, that
is, the progress of car 10 along its predetermined track while
y.sub.est 60 represents the cross track information, that is, how
far car 10 has strayed from the center of the roadway.
[0058] Referring therefore to FIG. 1, x.sub.user is used to
indicate the progress of car 10 along roadway 12 while y.sub.est 60
is used to represent the width of roadway 12. The actual width of
the roadway may be derived from map data base 30, or assumed
because the actual value of the width of the roadway is relatively
small and often therefore insignificant compared to the distances
to be measured along the navigation route. Since the maximum
allowable cross-track error, i.e. the maximum allowable appropriate
value for y, is constrained by the physical width of the roadway,
y.sub.est 60 is relatively easy to accurately estimate.
[0059] By using y.sub.est 60, z.sub.est 56 and t.sub.est 54, it is
possible to provide useful navigation data for car 10 along a known
roadway using signals from only a single satellite in view. It is
important to note that reasonably accurate prior or initial
position information may be required and that not all visible
NAVSTAR satellites will be suitable for single satellite
navigation, depending upon the position of the satellite with
respect to the path of car 10. The position information determined
during single satellite navigation is along track position
information which may be accumulated and used for determining
accumulated along track distance traveled. This data provides, and
may be used in place of, the distance traveled information
conventionally provided in a vehicle by an odometer.
[0060] Referring now to both FIGS. 1 and 2, turning data may be
used to improve terrestrial GPS navigation by using the detection
of a known turn to update progress along a predetermined route.
When at least 4 satellites are in view, the position of car 10 may
be known to the accuracy of the GPS system. When using clock,
altitude or cross-track hold, or some combination thereof, the
known position of the car is degraded by any inaccuracy of the
estimate or estimates used. For example, during clock hold,
internal clock model 54 drift and inaccuracy of the source of
t.sub.est 54 will degrade the accuracy to which the position is
known as a function of the magnitude of the inaccuracy. Similarly,
any change in altitude from the estimated or fixed altitude, that
is, any inaccuracy of z.sub.est 56, will degrade the accuracy of
the known position. Changes in roadway width and inaccuracies in
the map data with regard to the roadway width, that is, any
inaccuracy in y.sub.est 60, may also degrade the position
information.
[0061] Even with 4 satellites in view, the geometry of the visible
satellites may make it difficult to determine position by
measurement of GPS signals. Further, during terrestrial navigation,
it is not uncommon for satellites to be temporarily obscured from
view during navigation by, for example, being blocked by buildings
and other obstructions.
[0062] It may therefor be desirable to update the accuracy with
which the current position of the vehicle is known with actual
position information whenever possible. The update information will
sometimes be useful when 4 satellites are in view, but will always
be useful as supplemental data when less than 4 satellites are in
view. Update information is extremely useful during single
satellite navigation to avoid the accumulation of errors in
position information.
[0063] In operation, an original position and a destination were
provided to the system which then determined the track to be
followed. The track to be followed, or routing information, may be
provided in the form of a data base of route information such as
Route Data Base 52. In the example used, track 62 follows the
centerline of roadway 12 to intersection 22 and then makes turn 64
to follow the centerline of roadway 16. Track 62, roadways 12 and
16, intersection 22 and turn 64 are provided to Route Data Base 52
during the preparation of the route by Map/Display Processor 50
from the then current position and the destination entered via
input device 32.
[0064] The physical position of car 10 is very accurately known
when car 10 turns at turn 64. This accurate knowledge of the car's
position at a particular time may conveniently be used to update
the GPS navigation information by providing a position reset which
is similar to a known initial position. Update information from
turns will most likely be useful if the angle of turn 64 is
sufficiently large to provide an unambiguous position
determination. It is expected that any turn greater than 45.degree.
may be detected. As the speed of the vehicle increases, smaller
turn angles may also provide useful information. The position
update information is applied to position model 63 to update
internal clock or t.sub.est model 54, elevation or z.sub.est model
56, y.sub.est model 60 as well as x.sub.est 61 which is a model of
the along-track position of the car. These four estimates together
for position model 63, which may be updated by information from map
data base 30, Route Data Base 52, current position processor 70,
PosProcessor 48 and/or external sensor 49, to form the most
accurate available position model 63. Position model 63 may also be
used to provide estimates to the same data sources.
[0065] The actual turning of the car may be detected by a change in
the vehicle velocity vector determined from the GPS data or from
other conventional means such as a magnetic compass or an inertial
navigation sensor. In accordance with the rapid reacquisition
system described below with respect to FIG. 3, GPS data alone may
conveniently detect such turns even when single satellite
navigation is required. The turn as detected by turn detector 66 is
correlated with data from Route Data Base 52 to determine the
actual position of the car to the accuracy of the map data base 30.
The accuracy of the data in map data base 305 may easily and
conveniently be much greater than the accuracy available from the
GPS system especially if single satellite navigation, or any
combination of clock, altitude or cross-track hold, is used.
Therefore the position update may provide a substantial increase in
the accuracy of the then current position determination.
[0066] The benefit of the approach of this embodiment of the
present invention is similar to the identification and use of a
known waypoint during a dead reckoning navigation run. The
cumulative error is reduced substantially at the known waypoint so
that additional, future position determination errors do not carry
the burden of an accumulation of past errors.
[0067] As shown in FIG. 2, Route Data Base 52 provides data related
to track 62, typically from Map Data Base 30, to Map/Display
Processor 50 to display the current GPS position and may also
provide similar information to turn detector 66, turn comparator 68
and/or current position processor 70 in order to update
PosProcessor 48 with a position reset.
[0068] Turn detector 66 may be configured in many different ways
and is used to detect turns actually made by car 10 and select
turns, such as turn 64, from Route Data Base 52 for later
comparison with the detected turn. In accordance with a preferred
embodiment of the present invention, turn detector 66 may operate
on the current GPS position provided by PosProcessor 48 to develop
a vehicle velocity vector position indicating both the direction
and speed of travel. Substantial changes in the direction portion
of the vehicle velocity vector would indicate a change in
direction, such as a turn. Turn detector 66 may therefore detect
turns directly from the GPS information by determining the vehicle
velocity vector and detecting changes in the vehicle velocity
vector which represent a turn.
[0069] Turn detector 66, or another unit if convenient, also
operates on the route information provided by Route Data Base 52 to
determine the expected position of car 10 along track 62 based on
the then current GPS position information. Once the expected
location of car 10 along the route is determined, one or more turns
in the area of the expected position of car 10 can be selected for
comparison with the indications of a physical turn derived from the
GPS data.
[0070] When changes in the actual vehicle velocity vector, as
derived for example from the GPS position data, compare
appropriately with the changes predicted at a particular turn as
derived from Route Data Base 52, the actual position of car 10 at
the time of the turn can be very accurately determined and used to
update the GPS data at the turn. For example, if an actual turn is
detected from a change in the vehicle velocity vector from the GPS
position of car 10 near the time predicted for that turn, the
actual position of car 10 at the time of the turn can be determined
and used to update the then current GPS position for use as a
position reset applied to PosProcessor 48.
[0071] Alternatively, turn detector 66 may use non GPS measurements
for determining the occurrence of an actual turn of car 10, such as
compass headings or inertial navigation determinations derived for
example from external sensor 49, and applied directly to turn
detector 66 or via PosProcessor 48 as shown in FIG. 2.
[0072] Detection of turns from GPS signals may easily be
accomplished as long as 2 satellites are in view and provide
appropriate geometries for determining two dimensional coordinates
of the car's position. During single satellite navigation, as
described above, the use of turn information for updating the last
known position information becomes even more important, but the
location of the single satellite in view, relative to track 62,
becomes of even greater importance so that actual turns may be
accurately detected.
[0073] Turn detection may also be provided by monitoring changes
between acquired and obscured satellites. If, for example, only
satellite 14 was visible to car 10 on roadway 12 before
intersection 22, and upon entering intersection 22, satellite 19
suddenly became visible while satellite 14 was momentarily
obscured, the change over from satellite 14 to satellite 19 could
be used to indicate a turn in accordance with the data from each
satellite. Using a rapid reacquisition scheme, as described herein
below, the actual position at which the change of direction, that
is, the position at which the switch between satellites occurs, can
be sufficiently accurately determined to permit precise position
update information at the turn.
[0074] Similarly, turn comparator 68 may conveniently be
implemented within another component of the system, such as
PosProcessor 48, Map/Display Processor 50 and/or SatProcessor 46,
so that a candidate turn may be selected from the route data for
track 62 for comparison with the detected turn data.
[0075] Referring now to FIG. 3, in another embodiment, the present
invention provides for fast reacquisition of satellite signals,
useful for example when a previously acquired satellite is obscured
and then appears perhaps for only a short time, for example, as a
car travels through an intersection.
[0076] Referring to the line of sight between car 10 and satellite
19 as shown in FIG. 1, it is common in an urban environment for the
buildings along the sides of the street to act as a barrier wall
obscuring the lines of sight to many GPS satellites. However, the
barrier wall formed by buildings 20 and 21 is commonly breached at
intersections such as intersection 22. For example, car 10 while
traversing intersection 22 may reach position 11 in which the
previously obscured line of sight to a satellite, such as satellite
19, is momentarily not obscured because of the break between
buildings 20 and 21 at intersection 22. This momentary visibility
of a previously obscured satellite may occur while car 10 is in the
intersection or at the edges of the intersection.
[0077] The length of the momentary contact with satellite 19 is
relatively short. For example, if intersection 22 is 60 feet wide
and car 10 is traveling at 30 mph, the time taken to cross the
intersection may be as short as 1.3 seconds. Conventional GPS
navigation systems would not reacquire and derive useful data from
satellite 19, even if previously acquired, during this short time
interval.
[0078] In accordance with another embodiment, the present invention
makes maximum use of such reacquisition opportunities by minimizing
the time required for reacquisition, the collection of data and
processing of the collected data for position determination.
Referring now to FIG. 3, a portion of SatTRAK channel 38 is shown
in greater detail as an example of the configuration of each of the
satellite tracking channels. After original acquisition, SatTRAK
channel 38 tracks a single satellite by operating on satellite
signals 72 received by GPS antenna 28. Satellite signals 72 include
the signals from the satellite being tracked by SatTRAK channel 38
and are demodulated and selected by being multiplied, in one of the
correlators 74, by a copy of the 1023 chip pseudorandom, spread
spectrum code applied to satellite signals 72 by the GPS satellite.
Correlators 74 may be configured from exclusive OR NOR gates to
minimize the time required for providing a correlation result.
[0079] During tracking, the copy of the code produced by code
generator 76 and applied to exclusive OR correlators 74 by delay 78
is synchronized with the code in satellite signals 72, as received,
so that the copy of the code correlates with satellite signals 72.
This may be accomplished in several different manners known in the
art, including by shifting the time of generation of the code in
code generator 76 and/or adjusting the amount of delay applied by
an external delay. In any event, the code applied to exclusive OR
correlators 74 when SatTRAK channel 38 is locked to the selected
satellite, is synchronized with the code being received from that
selected satellite. This correlation is commonly called the on-time
or prompt correlation to indicate this synchronization.
[0080] Conventional GPS receivers maintain a lock on a satellite
signal after acquisition by performing additional correlations,
often called early and late correlations or correlations performed
by early and late correlators. These correlations are displaced in
time by a certain delay such as one half the width of a C/A code
chip from the on-time or prompt correlator. That is, if the time of
occurrence of a particular chip in the satellite signals is time
t0, the prompt correlator under ideal conditions would multiply
satellite signals 72 with a replica of the code with the same chip
at time t0. The early correlation would be performed at time t0-1/2
chip and the late correlation would be performed at a time equal to
t0+1/2 chip. Whenever the synchronization between code generator 76
and satellite signals 72 as received begins to drift, the
correlation results begin to change in favor of either the early or
late correlation at the expense of the prompt correlation.
[0081] One conventional approach to maintaining lock on the signals
from a particular satellite is to adjust the timing of code
generator 76 with a feed back loop used to maintain the power in
the correlation products in the early and late correlators to be
equal. In this way, code generator 76 may be continuously
resynchronized with satellite signals 72 so that the accuracy of
the system is within one half chip in either direction (early or
late) of the signals received.
[0082] When satellite signals 72 are temporarily lost, for example,
because the satellite signals are temporarily obscured by buildings
20 and 21 as shown in FIG. 1, various techniques are used to
attempt to synchronize code generator 76 with satellite signals 72
as received so that SatTRAK channel 38 can reacquire the signals
from the desired satellite. As noted above, conventional techniques
include clock and altitude hold and one embodiment of the present
invention provides another technique called cross-track hold.
[0083] However, unless the obscuration of the satellite signals is
very brief, the accuracy of prediction of such techniques is not
enough to maintain synchronization except for a very brief period
of obscuration.
[0084] In accordance with another embodiment of the present
invention, massively parallel correlation is used to create an
expanded capture window of correlation capture around the then
current predicted synchronization time in order to immediately
reacquire a previously acquired, and then obscured, satellite
signal. In particular, the speed of reacquisition is made
sufficiently fast according to the present invention so that useful
GPS position data may be acquired during the time car 10 travels
through intersection 22 even though, for example, the signals from
satellite 19 were obscured by buildings 20 until car 10 was within
intersection 22.
[0085] To this end, an expanded series of correlations are
performed with a series of delays a fixed fraction of a chip width,
such as {fraction (1/2)} chip width, apart extending both early and
late of the predicted prompt correlation. As shown in FIG. 3,
satellite signals 72 are devolved into a fixed number of samples,
by for example analog to digital conversion in A/D Converter 73, to
provide n Signal Samples 75. A similar number of code samples are
provided through k fixed {fraction (1/2)} chip width delays 78 to
provide k-1 sets of n Code Samples 80, progressing from a first set
of n Code Samples 80 with no delay to the k-1st set of n Code
Samples 80 which have been delayed by a total of k delays 78. It is
convenient to use {fraction (1/2)} chip delays for each delay 78,
but other fractions of a chip width may be used.
[0086] The k/2th set of n Code Samples 80, or the set nearest k/2,
may conveniently be delayed the correct amount to perform the
prompt correlation in one of the exclusive OR correlators 74 with n
Signal Samples 75 from A/D Converter 73 during tracking. The
k/2th-1 set of n Code Samples 80 may then be used to perform the
early correlation while the k/2th+1 set of n Code Samples 80 may
then be used to perform the late correlation while tracking. The
additional correlations may also be performed during tracking, but
provide a substantial advantage when used during reacquisition.
[0087] That is, in the present invention, the early, prompt and
late correlations conventionally used in tracking may also be used
during reacquisition mode, aided by a substantial number of
correlations using additional delays. Whether or not the early and
late correlations are used, a convenient number of additional
delays on each side of the prompt delay results from (k-1)=20 so
that nine or ten {fraction (1/2)} chip delays are provided on each
side of the k/2th prompt delay. In this way, correlations are
performed during reacquisition at time delays of 5 chip widths on
either side of the predicted prompt or on-time delay. This
represents an expanded capture window of on the order of
.+-.5.times.300 meters of potential error. That is, if the
predicted synchronization with satellite signals 72 modeled by GPS
car system module 26 drifted by as much as the equivalent of a
.+-.1500 meter position error during signal loss from a particular
satellite resulting from, for example obscuration in an urban
setting, at least one of the plurality of exclusive OR correlators
74 would provide the required prompt correlation to immediately
lock onto satellite signals 72.
[0088] Once the correlations are performed, the correlation results
for each set of n Code Samples 80 are summed in summers 84 to
produce a series of values each separately indicating the
correlation of n Signal Samples 75 with each of the sets of n Code
Samples 80. These correlation results are applied to threshold test
82, the output of which is applied to SatProcessor 46 only when
satellite signals 72 have been successfully received. The output of
threshold test 82 specifies the number of delays which represent
the prompt correlation for the reacquired satellite signal. It is
important to note that in accordance with the present invention,
the satellite tracking and reacquisition modes are not separated
functions but rather interact seamlessly. That is, by providing a
substantially expanded capture window, the correlations used for
tracking are also automatically useful for immediate reacquisition
as long the capture window is sufficiently wide to include any
position error accumulated during signal obscuration or other
loss.
[0089] Because the speed of reacquisition is very important in
order to maximize the opportunity to utilize the brief time during
travel through intersection 22 when satellite 19 may temporarily be
in view, it is advantageous to perform all such correlations in
parallel. Further, it is advantageous to continuously perform all
such correlations in the capture window in order to minimize time
when a satellite signal is not being tracked. In accordance with
the presently preferred embodiment, exclusive OR correlators 74 are
implemented in hardware rather than software to maximize the speed
of correlation and minimize any error accumulation by minimizing
the time for reacquisition.
[0090] In operation, when car 10 follows track 62 along roadway 12,
during at least part of the time buildings 21 obscure the line of
sight between car 10 and satellite 19. If satellite 19 had
previously been acquired by GPS car system module 26, an
approximate time value to synchronize with the satellite signals
will be predicted. This value is maintained as accurately as
possible within GPS car system module 26 while satellite 19 is
obscured. In order to maintain the prediction for the required
delay as accurately as possible, that is, to minimize the position
error accumulated during signal loss, the above described
techniques for maintaining or updating position accuracy by using
cross-track hold, resetting position at a determined turn and/or
the use of external sensors for dead reckoning provide a
substantial benefit for use with the combined, expanded tracking
and reacquisition windows described above.
[0091] Present technology makes it convenient to provide {fraction
(1/2)} chip delays between correlators, but other delay values may
be used. Similarly, it is convenient to expect that the prompt
correlation can be maintained within plus or minus 5 chips of the
timing of the satellite signals. FIG. 3 therefore portrays a series
of 9 or 10 early and 9 or 10 late correlators surrounding prompt
correlator 74 to achieve the .+-.5 chip capture window surrounding
prompt correlator 74 in 20 half chip steps. A different number of
correlators and other delays would also work with the present
invention.
[0092] Use of a plurality of fixed delays of one half chip width
permit the immediate reacquisition of signals from a satellite to
within an accuracy of one half chip width. In accordance with
satellite signals 72 as presently provided by the NAVSTAR
satellites, one half chip width represents about 150 meters of
maximum position error. It is possible to substantially reduce the
maximum position error, and/or the speed of processing the data, by
using fixed delays of a different amount of delay, e.g. fixed
delays of one third, one quarter, one fifth or some other value of
a chip width.
[0093] Conventional approaches for different modes of operation,
switch between wide and narrow delays at acquisition and/or
reacquisition in order to provide a compromise between the width of
the capture window and the number of correlations required for the
desired range. In accordance with the present invention, a new
technique is used which permits the convenient use of fixed, chip
width delays to provide a finer gradation of correlation steps. In
particular, as shown in FIG. 4, two sets of half width delays are
used to provide the equivalent of a set of quarter width delays.
The number of sets of fixed delays and the offset between them may
be selected in accordance with the requirements of the application
being addressed.
[0094] Referring now to FIG. 4, a first plurality of sets of n Code
Samples 80 are derived directly from code generator 76, delayed
from each other by {fraction (1/2)} chip width delays 78 and
correlated with n Signal Samples 75 in exclusive OR (or NOR)
correlators 74 as provided in FIG. 3. For convenience of
explanation and drawing, the outputs from this first set of set of
n Code Samples 80 are shown applied to summers 84 to indicate that
the correlation products produced in exclusive OR correlators 74
from each such set of n Code Samples 80 are applied to threshold
test 82 via summers 84. All such correlation products are applied,
but for clarity only the correlation products having no delay, the
predicted prompt or k/2th delay and the kth delay are depicted. The
correlation products from this first plurality of sets of n Code
Samples 80 are spaced apart by {fraction (1/2)} chip width delay as
noted above.
[0095] In addition, in accordance with the present invention,
additional sets of correlation products at different spacings are
available by use of one or more additional sets of {fraction (1/2)}
chip delays 78 by, for example, tracking the same satellite in two
or more channels offset in time from each other. It is important to
note again that other delays and/or offsets may also conveniently
be used and the delays need not all be the same.
[0096] In particular, a second plurality of sets of n Code Samples
84 are derived from code generator 76 and delayed from each other
by {fraction (1/2)} chip width delays 78. However, the delays in
the second sets of n Code Samples 84 are offset from the delays in
the first sets of n Code Samples 80 by a fixed amount, such as a
{fraction (1/4)} chip width delay, by insertion of {fraction (1/4)}
chip width delay 79 between code generator 76 and the first set of
n code samples in sets of n Code Samples 84. This results in each
of the samples in sets of n Code Samples 84 falling halfway between
two of the sets of n Code Samples 80. As shown in FIG. 4 only k-1
sets of n Code Samples 84 are required with k sets of n Code
Samples 80.
[0097] Each of the sets of n Code Samples 84 are correlated with n
Signal Samples 75 in exclusive OR correlators 74 as provided in
FIG. 3 to produce correlation products which are then summed by
additional summers 84. As noted above, the dashed lines between
each of the sets of code samples and summers 84 are used to
indicate that the correlation product between that set of code
samples and n Signal Samples 75 is applied to a particular one of
summers 84. As can then easily be understood from FIG. 4,
correlation products separated from each other by {fraction (1/4)}
chip width delays, from the 0th delay to kth delay, are produced
using sets of {fraction (1/2)} chip width delays and a single
{fraction (1/4)} chip delay (which may represent the offset delay
between two channels) and after individual summation are applied to
threshold test 82 to determine which delay represents the currently
prompt delay of satellite signals 72 from a satellite being
reacquired by GPS car system module 26.
[0098] The second set of {fraction (1/2)} chip delays may easily be
implemented by having a second channel track the same satellite,
offset, however by {fraction (1/4)} chip width delay 79.
[0099] In this way, the range of delay within which a satellite
signal lock may be acquired, maintained and/or reacquired may be
reduced from .+-.{fraction (1/2)} chip width, to about
.+-.{fraction (1/4)} chip width, which permits faster pull in to
lock, i.e. when the tracking has been optimized and range error
reduced to minimum.
[0100] It is important to note the seamless integration of tracking
and reacquisition provided by the present invention in that the
same correlations are used for tracking and reacquisition and the
related speed of capture and lock and simplicity provided thereby.
The ability to rapidly reacquire within a capture window so that
one of the correlations may immediately be used as a prompt
correlation, speeds up all data acquisitions thereafter. It is also
convenient to utilize a first plurality of sets of n Code Samples
80 for tracking and, when satellite signals 72 are lost, provide
additional accuracy in reacquisition by using a second plurality of
sets of n Code Samples such as sets of n Code Samples 84. In
particular, the same plurality of sets of n Code Samples 84 may be
used for reacquisition of signals 72 for different satellites at
different times in order to reduce the total number of components
and steps required to produce all the necessary correlations and
summations.
[0101] In operation, GPS car system module 26 continuously attempts
to track and reacquire the signals from satellite 19 in SatTRAK
channel 38 while satellite 19 is obscured from view. As car 10
passes through intersection 22, the line of sight to satellite 19
is momentarily not obscured by buildings 21. Whenever any of the
correlations performed in SatTRAK channel 38 indicate that the
satellite signals are being received with sufficient strength so
that the correlation products from some of the correlators are
above threshold, reacquisition is immediately accomplished.
Reacquisition occurs when the correlator output indicating the
largest magnitude is selected as the new prompt correlator.
Conventional techniques for improving the quality of the data are
then employed.
[0102] The data from satellite 19 is used to immediately, after a
settling time for lock, update the GPS data and correct the
currently known position information derived therefrom. Even if
satellite 19 is then again immediately obscured, the update
information derived during travel through the intersection by fast
reacquisition provides a substantial improvement in accuracy of the
GPS determined position. This will permit GPS car system module 26
to continue accurate navigation even through otherwise very
difficult areas, such as city streets.
[0103] Although the use of single satellite navigation data by
cross-track hold and then updating a satellite data by detecting
turns and/or immediately reacquiring satellite signals in
intersections have all been described separately, they are also
very useful in combination. Terrestrial navigation systems, using
GPS receivers in a stand alone mode, aided by map displays and data
bases and/or aided by external sensors such as inertial navigation
systems may benefit from the use of combinations of one or more
such modes. In a preferred embodiment of the present invention, all
three techniques are combined to maximize the ability of the car
navigation system to provide accurate and useful navigation data
while traversing a difficult environment such as city streets.
[0104] Referring now to FIG. 5, a preferred embodiment of the
present invention is described in which major portions of SatTRAK
channels 38, 40, 42 and 44 and SatProcessor 46 of the present
invention are implemented in an Application Specific Integrated
Circuit or ASIC 102. Many of the functions of a conventional
satellite processor may still, however, be performed in software.
The particular implementation depicted provides a 12 channel GPS
acquisition and tracking system with fast reacquisition
capabilities as described above while substantially reducing the
number of gates required on the ASIC to implement this system.
[0105] The signals received by GPS antenna 28 are digitized and
downconverted to form a digital composite of signals received from
all satellites in view to produce sample data 100 which is at a
frequency of 37.33 f.sub.0 where f.sub.0 is the chip rate of the
C/A code applied to each GPS satellite. For convenience, the
frequencies described below will be designated in terms of
multiples of f.sub.0. Each of 12 Space Vehicles (SVs) or satellites
are tracked in ASIC 102 under the control of Central Processing
Unit, or CPU, 101 which provides control signals and data to ASIC
102. In particular, CPU 101 provides data regarding the predicted
Doppler shifts and C/A code applied to each SV to Random Access
Memory, or RAM, R1 103 associated with ASIC 102 which provides the
data to RAM R2 105 at designated times. RAM R2 105 provides data to
and receives data from ASIC 102, permitting CPU 101 data updating
and ASIC 102 processing of old data to operate simultaneously. RAM
R2 105 is used as a buffer by ASIC 102 primarily to store
intermediate values of signals during processing. Other
conventional portions of a microcomputer including a CPU are not
shown but conveniently may include devices operating software
implementing the single satellite, cross-track hold and other
techniques described above as well as other functions of
SatProcessor 46.
[0106] Sample data 100 is applied to C/A code acquisition, tracking
and reacquisition block CACAPT 104 in ASIC 102 where it is split
into in-phase and quadrature-phase, or I and Q, signals at baseband
by I/Q splitter 106. After processing by CACAPT 104, the I,Q
signals are rotated for Doppler shift in 12 channel Doppler Block
108 which separately compensates for the expected Doppler frequency
shifts of each of the 12 SVs which can be tracked.
[0107] The Doppler rotated I,Q signals for each SV are then applied
to Correlator Block 110 where each signal sample, which is from one
of the 12 SVs, is correlated in a multiplexed fashion with 20
delayed versions of the C/A code, produced by 12 channel Coder
Block 112, for that SV. During each segment of time, as described
below with regard to FIG. 11 in greater detail, Correlator Block
110 performs 240 C/A code correlations in accumulator 175 to
enhance the speed of acquisition and reacquisition. The output of
Correlator Block 110 is applied to IQACCUM Block 114, and the
output of IQACCUM Block 114 is applied to IQSQACCUM 116, in
Accumulator Block 115. IQACCUM Block 114 is conveniently configured
from another block of RAM associated with ASIC 102, identified
herein as RAM 3. Similarly, IQSQACCUM 116 is conveniently
configured from another block of RAM associated with ASIC 102,
identified herein as RAM 4.
[0108] Accumulator Block 115 operates in different fashions during
acquisition, tracking and reacquisition modes under the direction
of CPU 101. During acquisition mode, Coder Block 112 is caused to
sequence through as many sets of 240 different codes delays as
necessary to acquire the satellite signals from a particular space
vehicle. That is, as many sets of 240 different delays are
correlated in Correlator Block 110 to provide IQSQACCUM 116 with an
appropriate correlation output whose power indicates that
correlation has been achieved with that satellite. The process is
then repeated for each satellite to be acquired. For convenience,
all delays may be tested.
[0109] During reacquisition, a single set of 20 delays are
correlated in Correlator Block 110 to determine if one such delay
provides a peak value above a predetermined threshold to indicate
that a correlation has been achieved and the satellite thereby
reacquired. The reacquisition mode operates transparently within
the tracking mode in that a set of 20 delays are correlated in
Correlator Block 110. If tracking is maintained, the peak signal
may migrate from a particular delay to the next adjacent delay but
will be maintained within the current set of 20 delays being
correlated. It is convenient to consider the delay producing the
signal with the greatest magnitude as the prompt delay, producing
the prompt correlation product. The signals produced by one more
and one less delay then become the early and late correlation
products which may be processed in a conventional manner to
maintain lock with each satellite.
[0110] If the signal from the satellite is temporarily obscured or
lost for any other reason, the then current set of 20 delays is
correlated and searched for a peak of sufficient magnitude to
indicate reacquisition. The Doppler and code values are
continuously updated based upon the last available position
information including velocity, and the correlations are performed,
until the satellite signal is reacquired or sufficient time has
elapsed so that the satellite signal is considered lost.
[0111] The operation and configuration of ASIC 102 will now be
described in greater detail with regard to the in-phase or I signal
path. The quadrature phase or Q signal path is identical and need
not be separately described.
[0112] Within CACAPT 104, sample data 100 is applied at 37.33
f.sub.0 to I/Q splitter 106 to produce a 2 bit signal at 18.67
f.sub.0 which is further reduced to 2 f.sub.0 by Digital Filter 118
which operates by adding sets of 10, 9 and 9 samples which are
summed, quantized, and then stored serially in 11 sample deep
buffer 120. When 11 sample deep buffer 120 is filled, the data is
transferred in a parallel fashion to an identical buffer, called
parallel block 122, for Doppler rotation. Data is therefore
transferred out of 11 sample deep buffer 120 when 11 samples are
received, that is, at a chip rate of 1/11th of 2 f.sub.0 or
approximately 0.18 f.sub.0. 11 sample deep buffer 120 operates as a
serial to parallel converter while parallel block 122 operates as a
parallel to serial converter. This results in 186 parallel
transfers per msec.
[0113] Data is shifted out of parallel block 122 at 24 f.sub.0 to
12 channel Doppler Block 108 so that the Least Significant Bit or
LSB of the serial converter, parallel block 122, is the output of
CACAPT 104 in the form of CapIOut and CapQOut which are applied as
CACAPT Data output 123 to 12 channel Doppler Block 108. The
increase in chip rate from 2 f.sub.0 to 24 f.sub.0 provides an
operating speed magnification of 12 as will be described below in
greater detail.
[0114] Referring now also to FIGS. 6, 12 channel Doppler Block 108
is now described in greater detail. Doppler Block 108 receives
satellite specific CACAPT Data output 123 including CapIOut and
CapQOut from CACAPT 104 for storage in Doppler Register 124.
satellite or source specific predicted Doppler phase, after
processing by Carrier Numerical Control Oscillator or NCO 125 and
sine/cosine look-up table 134, is also applied to Doppler Register
124 where it is added to CapIOut and CapQOut for the same SV (or
other source) to form dopIOut and dopQOut. Within Doppler Block
108, Carrier_NCO 125 operates at an effective rate of 2 f.sub.0 for
each satellite channel because the data sample rate is 2
f.sub.0.
[0115] For each SV, CPU 101 stores the satellite specific predicted
carrier phase dopPhaseParam, and predicted carrier frequency
dopFreqParam, in RAM R2 105. Sat_Mem 186 then transfers the
dopPhaseParam and dopFreqParam as shown in FIG. 9 to Carrier Phase
Register 126 and Carrier Phase Output Buffer 128, respectively, at
each 1 msec boundary. In the drawings, the number of the first and
last bit of the signal is provided in parenthesis, separated by a
full colon, in accordance with current conventions. Therefore,
dopFreqParam is a 24 bit digital value, the MSB of which is bit
number 23 and the LSB of which is bit number 0. Adder 130 adds
carrier phase to carrier frequency, derived from dopPhaseParam and
dopFreqParam, to produce the current carrier phase value in Carrier
Phase Register 126 shown as Carrier_NCO.
[0116] The four Most Significant Bits or MSBs of Carrier_NCO in
Carrier Phase Register 126 are applied to sine/cosine look-up table
134 which includes 24-bit registers for storing its output. The
output of sine/cosine look-up table 134 is applied to Doppler
Multiplier 132 in Doppler Register 124 for Doppler rotation of
CACAPT Data output 123 (CapIOut and CapQOut) to produce rotated SV
output signals dopIOut and dopQOut. Doppler Register 124 uses
Doppler Multiplier 132, as well as four 4-bit registers, two
adders, another pair of 5-bit registers and a quantizer to form
dopIOut and dopQOut. Referring for a moment to FIG. 11, dopIOut and
dopQOut are applied to parallel converter 166 and rotated SV output
signal 127 is the output of serial to parallel converter 166 which
is applied directly to 11 bit Holding Register 140.
[0117] During each segment of time, the beginning value for the
Doppler phase of each SV is stored in RAM R2 105, retrieved
therefrom by Doppler Block 108 for the rotation of the SV during
that segment. At the end of each segment, the end value of Doppler
phase is stored in RAM R2 105 for use as the beginning value for
the next segment. Under the control of gpsCtl 182, Doppler phase
value dopP_Next in Carrier Phase Output Buffer 128, saved at the
end of each rotation for a particular SV by dopSave, is applied to
Sat_Mem 186 for storage in RAM R2 105 for that SV, to be retrieved
by Doppler Block 108 again during the next Doppler rotation of that
SV in the following segment. The operation of Multiplexer Block 129
may be best understood from the description of the triple
multiplexing of ASIC 102 associated with FIGS. 10 and 11.
[0118] Referring now also to FIGS. 7, 12 channel Coder Block 112
includes Coder_NCO 136 and Code Generator 138. Coder_NCO 136, which
is similar to Carrier_NCO 125 shown in FIG. 6, creates Gen_Enable
whenever Phase Accumulator 148 overflows. Gen_Enable is the MSB of
the output of Phase Accumulator 148 and is applied to Code
Generator 138.
[0119] In particular, under the control of gpsCtl 182, Sat_Mem 186
applies the satellite specific 24 bit code frequency parameter,
coderFreqParam, and the 24 bit satellite specific code phase
parameter, codePhaseParam, at each 1 msec edge to Coder_NCO 136
from RAM R2 105. CoderFreqParam is added to codePhaseParam
effectively at 4 f.sub.0 per channel in Phase Adder 150 even though
codePhaseParam operates at 48 f.sub.0 during tracking and
reacquisition. A pulse can be generated for Gen_Enable between 0 Hz
and 4 f.sub.0 Hz. In order to generate Gen_Enable at 2 f.sub.0, the
value of half the bits (23:0) of Phase Accumulator 148 must be
loaded in as coderFreqParam.
[0120] The LSB of codePhaseParam represents 1/256th of a C/A code
chip. CodePhaseParam initializes the contents of Phase Accumulator
148. Gen_Enable is generated whenever Phase Accumulator 148
overflows. Phase Accumulator 148 is a 25 bit register initialized
by the value of codePhaseParam when corHoldRegLoad 152 from CPU 101
is active at each 1 msec edge when new data is written from CPU
101. The 24 LSBs of 25-bit Phase Accumulator 148 are then added to
coderFreqParam in Phase Adder 150 and returned to Phase Accumulator
148. Phase Buffer Register 154 stores and buffers the contents of
Phase Accumulator 148, to produce CoderPNext which is updated
whenever codCodeSave 158 from gpsCtl 182 is active. CoderPNext is
applied to Sat_Mem 186 for storage in RAM R2 105. The operation of
multiplexer 142 may be best understood from the description below
of the triple multiplexing of ASIC 102 provided with FIGS. 10 and
11.
[0121] Gen_Enable is applied to Code Generator 138 to cause a new
code to be generated. C/A Codes parameters G1 and G2 are parallel
loaded from RAM R2 105 by Sat_Mem 186 as g1ParIn and g2ParIn into
Code Generator 138 to produce g1GenOut and g2GenOut which are
returned to RAM R2 105 by Sat_Mem 186. The bit-0 of both G1 and G2
generators in Code Generator 138 are internally XOR=d and generate
genSerout 160 which is serially applied to 11 bit Code Shift
Register 170 in Correlator Block 110, as shown in FIG. 5. Code
Generator 138 generates the following C/A codes:
G1=1+X3+X10
G2=1+X2+X3+X6+X8+X9+X10.
[0122] The output of Code Shift Register 170 is applied to
correlators 74, 11 bits at a time at 48 f.sub.0 so that at least 20
code delays, separated by one half chip width, are correlated
against each Doppler rotated sample from each SV. The increase in
chip rate from 2 f.sub.0 to 48 f.sub.0 provides a magnification
factor of 24 as will be described below in greater detail.
[0123] Values of G1 and G2 are be stored in RAM R2 105 during each
segment after correlation with the Doppler rotated sample in
correlators 74 for that SV so that they may then be retrieved by
Coder Block 112 during the next time segment for correlation of the
next 11 bit sample from the same SV.
[0124] Referring now also to FIG. 8, Correlator Block 110 is shown
in greater detail. DopIOut and dopQOut in the rotated SV output
from Doppler Block 108 are applied to serial to parallel converter
166 which is then parallel loaded to Holding Register 140.
GenSerOut 160 from Coder Block 112 is applied to Code Shift
Register 170 in Correlator Block 110. These data sets represent the
Doppler shifted data received from the SV, as well as the locally
generated code for that SV, and are applied to Exclusive NOR gate
correlator 74 for correlation under control of gpsCtl 182.
[0125] The output of correlator 74 is applied to Adder 174 and
combined in Bit Combiner 176 to corIOut 178 and coFQOut 180 which
are applied to IQACCUM Block 114 and IQSQACCUM 116 shown in FIG. 5.
Adder 174 and Bit Combiner 176 operate as a partial accumulator as
indicated by accumulator 175 in FIG. 5.
[0126] Referring now also to FIG. 9, on overview of the operation
of ASIC 102 is shown. A dedicated set of on-chip logic controls the
operation of ASIC 102 and is identified herein as gpsCtl 182. In
particular, under the control of gpsCtl 182, sample data 100 from
the GPS satellites is applied to CACAPT 104 where it is separated
and decimated into I and Q data streams to form CACAPT Data output
123. SV data 123 is rotated for the predicted Doppler shift of each
SV to produce rotated SV output signals dopIOut and dopQOut which
are correlated with genSerOut 160 from Coder Block 112 in
correlators 74. CorIOut 178 and corQOut 180 from correlators 74 are
accumulated in IQACCUM Block 114 and IQSQACCUM 116 to produce
output 184 to CPU 101.
[0127] As will be further described below in greater detail, a
portion of memory is used for Sat_Mem 186 which stores and provides
the Doppler shift and code information required during
multiplexing.
[0128] In operation, every millisecond is divided into 186
segments, each of which includes 264 clocks. Within these 264
clocks, 12 channels are processed with each channel taking 22
clocks to compute 22 different correlations or delays. Only 20 of
these 22 correlations are stored and used for subsequent
processing. For each channel, gpsctl 182 controls the loading of
Carrier_NCO 125 in Doppler Block 108 using dopLoad and dopSave.
Similarly, gpsCtl 182 controls the loading of Coder_NCO 136 in
Coder Block 112 via corHoldRegLoad and corCodeSave. The flow of
data through Correlator Block 110 is controlled with
serialShiftClk, and also corHoldRegLoad and codCodeSave. Control
signals are applied to IQACCUM Block 114 and IQSQACCUM 116 for each
channel and include startSegment, startChan, resetAcc, peak, iqsq,
wrchan, ShiftSelIqSq and acq_mode. Within each segment, gpsCtl 182
provides the periodic signals eng_capShiftClk, capLoad, syncpulse,
serialShiftClk to CACAPT 104 to repackage incoming satellite data
samples into groups of 11 half chip samples.
[0129] All accesses initiated by gpsctl 182 are processed by
Sat_Mem 186 to generate read/write control and address signals for
RAM R1 103 and RAM R2 105. GpsCtl 182 controls the flow of data
through all data paths together with Sat_Mem 186 and manages the
access of channel parameters stored in RAM R1 103 and RAM R2 105.
RAM R1 103 is written to by the user to define the channel
parameters that will be loaded to RAM R2 105 at the end of the
corresponding integration or accumulation time. RAM R2 105 is used
by the data path as a scratchpad to store the intermediate values
of the various channel parameters during processing.
[0130] Data read out of RAM R2 105 is sent to the various parameter
registers in Doppler Block 108, Coder Block 112, Correlator Block
110 and gpsctl 182 under the control of Sat_Mem 186. Data from
these blocks and RAM1 190 are multiplexed at the input to the write
port of RAM R2 105. RAM R1 103 is a 16.times.108 asynchronous dual
port ram used for the parameters for all 12 channels while RAM2 192
is another 16.times.108 asynchronous dual port ram used for storing
intermediate values of the satellite parameters during processing,
while switching from one channel to the next.
[0131] Referring now to FIG. 10, the system of the present
invention includes a multiplexed data path in order to reduce the
size and complexity of ASIC 102 on which the majority of the parts
of the system can be provided. Conventional receiver designs have
multiplexed a single set of correlators for use for each of the
separate channels in which an SV is tracked in order to reduce the
number of correlators required. The use of the system of the
present invention reduces the million or more gates that would be
required for a conventional configuration down to a manageable
number, on the order of about less than 100,000.
[0132] In accordance with the present invention, in addition to
multiplexing the satellite channels in a manner in which no data is
lost, the code delay correlations are also multiplexed. That is,
conventional receivers use two or three correlators to provide
early, late and/or prompt correlations for each SV. The present
invention multiplexes a plurality of code delays in order to
provide far more code delay correlations than have been available
in conventional systems without substantially multiplying the
hardware, or chip area on ASIC 102 required by the number of gates
used.
[0133] The multiplexing of code delays permits the wide capture
window described above with regard to FIGS. 3 and 4 that permits
rapid SV reacquisition. In particular, 20 delays such as {fraction
(1/2)} chip delays are provided and constantly monitored for each
SV so that GPS data can be acquired even during brief glimpses of
the SV, for example, when car 10 is in intersection 22 as shown in
FIG. 1. The SV can be reacquired and useful data obtained because
the modeling of the vehicle's position on roadway 12 is
sufficiently accurate to keep the predicted code and Doppler values
for a previous acquired and currently obscured SV within a window
of .+-.10 half chip code delays. In this way, data obtained during
reacquisition can be used directly as GPS data. That is, the
reacquisition mode is transparent to the tracking mode. The GPS
data is acquired whenever available without substantial lost time
for reacquisition.
[0134] Further, the operation of satellite tracking is itself
multiplexed for each set of data for all 12 channels in order to
further substantially reduce the ASIC gate count. That is, only a
small portion of the bits in the C/A code is processed at one time
for all 12 SVs. In order to digitally process the signals received,
the digital representations of these signals must be processed in
registers and buffers capable of storing the digital data. The C/A
code contains 1023 bits in each repetition which lasts 1 msec. If
all 1023 bits were to be processed at once, registers 1023 bits
wide would be required. Such registers would be expensive in cost
and gate count and quite cumbersome. In accordance with the third
level of multiplexing used in the triply multiplexed receiver
configuration of the present invention, a smaller register is
multiplexed to handle different portions of the 1023 bits of the
C/A code. This means the smaller register is used many times during
each 1 msec repetition of the C/A code to process enough smaller
samples of the data received so that within each msec all 1023
bits. can be processed.
[0135] In the preferred embodiment described above particularly in
FIGS. 3 to 9, a configuration using 11 bits registers was used so
that each register is used 186 times per msec to process all 1023
bits of a C/A code repetition. Each {fraction (1/186)}th of a msec
is called a segment. The tracking of each SV is therefore
multiplexed 186 times by processing the 11 bits in each register
during each segment. In addition, in the preferred embodiment, 12
channels are used to track a maximum of 12 SVs. This requires that
each 11 bit segment is multiplexed 12 times during that segment to
apply a Doppler rotation for each SV.
[0136] Further, each channel is further multiplexed by a factor of
22 to provide a substantial plurality of different code delays.
This requires that the Doppler rotated sample for each SV is
correlated 22 times with different C/A Code delays before the
Doppler rotated sample for the next channel is produced. In this
manner, 22 different code phases may be tested for each of 12 SV
during each of 186 segments to provide real time data with only 11
bit wide registers by processing each register 186 times per
msec.
[0137] It is important to note that the processing of the present
invention occurs during a particular segment, i.e. a {fraction
(1/186)}th of a repetition of the C/A code, during the length of
time required for the segment to be collected. In this optimized
manner, no data is lost during tracking or reacquisition or
switching between these states because the data being processed in
any particular segment is at most 11 half chips delays old.
[0138] Referring now to FIGS. 10 and 11, the output of Digital
Filter 118 shown in FIG. 5 is sample data stream 119 at 2 f.sub.0.
The chip rate of the C/A modulation of the signals 100 from the SVs
is at f.sub.0. In order to avoid loss of any data, the SV signals
must be sampled at least at their Nyquist rate, that is, at twice
the chip rate of the modulation of interest which is 2 f.sub.0.
Although sample data stream 119 can be operated at a higher chip
rate than the Nyquist rate, which is twice the chip rate, there is
no advantage in doing so.
[0139] Sample data stream 119 is therefore a series of samples of
the digitized and filtered SV data at twice the chip rate of the
C/A code, that is, each sample in sample data stream 119 has a
width equal to one half of a C/A code chip. The number of bits in
each msec or cycle of code in sample data stream 119 is twice the
number of bits in the modulation, i.e. 2046 bits each representing
one half of a C/A code chip. In accordance with the multiplexing
scheme of the preferred embodiment being disclosed, the data is
processed in 11 bit segments, and sample data stream 119 is
therefore applied serially to 11 bit (10:0) register value buffer
120. The time required to serially store 11 bits out of a total of
2046 bits in the 2 f.sub.0 data stream is 1 (2046.div.11=186) or
{fraction (1/186)}th of a msec.
[0140] During the time the first set of 11 sample bits are being
stored in 11 sample deep buffer 120, no bits are available for
processing. After the first 11 sample bits are serially received
and serially stored, the 11 sample bits are transferred in parallel
to parallel block 122. This parallel operation therefore occurs
every {fraction (1/186)}th of a msec or at a rate of approximately
0.18 f.sub.0. Each {fraction (1/186)}th of a msec is called a time
segment or segment and is the unit of processing for most of the
operations. The 1023 chip C/A code of each of the satellites in the
composite signal received is processed in 11 half chip bits.
Dividing the msec repetition rate of the C/A code into 186 time
segments multiplexes each of the 11 bit registers by a multiplexing
factor of 186.
[0141] CACAPT Data output 123 from parallel block 122 is processed
in Doppler Block 108 at a much faster chip rate, for example at 24
f.sub.0. That is, the 11 bits of sample data in each segment of
time is multiplexed by a factor of 12 to permit 12 different
operations to be performed to that set of 11 bits of data. In
particular, in Doppler Block 108, CapIOut and CapQOut of CACAPT
Data output 123 are multiplied in Doppler Register 124 by twelve
different Doppler shifts so that within each segment twelve
different Doppler rotations are performed.
[0142] Each different Doppler shift represents the predicted
Doppler rotation required for each of the maximum of 12 different
SVs that can be tracked. The increase in processing chip rate from
2 f.sub.0 to 24 f.sub.0 multiplexes the processing for each of 12
channels of data. It is important to note that the multiplexing to
permit one channel to operate as 12 multiplexed or virtual channels
each representing a different SV is applied only after the input
signals are multiplexed, that is, broken into 186 time segments
each including 11 half chip width bits. In this way, the
multiplexing for 12 channels or satellites is easily accomplished
with relatively inexpensive 11 bit registers without loss of time
or data. The selection of the number of sampling to be an integer
division of the number of code bits per period is important to
achieve these goals. Multiplexer Block 129 in Carrier_NCO 125
controls the timing of this multiplexing under the direction of
gpsctl 182.
[0143] The output of Doppler Block 108, signals dopIOut and
dopQOut, are applied to serial to parallel converter 166 within
Correlator Block 110. Each rotated SV output signal 127 represents
the rotated signal from a single SV and 12 such rotated SV output
signals 127 are produced in each segment of time.
[0144] Rotated SV output signal 127 is loaded in parallel fashion
into Holding Register 140 in Correlator Block 110. The input to
Exclusive NOR gate correlator 74 is therefore an 11 bit wide signal
which is retained for {fraction (1/12)}th of a time segment as one
input to Exclusive NOR gate correlator 74.
[0145] Correlator 74 is a series of 11 separate one bit correlators
which all operate in parallel. One input is rotated SV output
signal 127 while the other 11 bit input is provided by 11 one bit
genSerOut 160 output bits from Coder Block 112. During the
{fraction (1/12)} of a time segment provided for operation on the
rotated SV output signal 127 for a particular satellite, the code
for that SV is produced serially by Code Generator 138 and applied
to Code Shift Register 170.
[0146] At the beginning of the correlation for a particular
channel, 11 bits of the code for that SV have been shifted into
Code Shift Register 170 and are available therein for correlation.
Every {fraction (1/22)}nd of a channel (that is, a {fraction
(1/12)} of a segment) each of the 11 bits in Code Shift Register
170 are correlated in one of 11 one bit exclusive Nor gates in
Exclusive NOR gate correlator 74. This produces 11 correlator
output bits, the sum of which indicates the magnitude of the
correlation between the rotated SV output signal 127 and that code
phase. These 11 correlation sums produced in parallel are summed in
parallel and stored in the first of 22 summers related to that SV
in Accumulator Block 115.
[0147] During the next or second {fraction (1/22)}nd of a channel,
Code Generator 138 produces the next bit for the C/A code for that
SV. This next bit is applied serially to Code Shift Register 170.
At this time, 10 bits from the first correlation remain in Code
Shift Register 170 and together with the newest bit form another 11
bit sample of the expected code for that SV, delayed from the
previous 11 bit sample by the time required to generate 1 bit, that
is, one half chip width at the rate code is produced, 48 f.sub.0.
The second sample is therefore a one half chip delayed version of
the code, delayed one half chip width from the previous 11 bit
samples. It is important to note that the two 11 bit code samples
just described differ only in that a new bit was shifted in at one
end of the register to shift out the MSB at the other end of the
register.
[0148] The 11 bit correlation product of the same rotated SV output
signal 127 and the second 11 bit sample of code is then stored in
the second of the 22 summers related to that SV in Accumulator
Block 115. Thereafter, the remaining 20 serial shifts of the
genSerOut 160 from Code Generator 138 are correlated against the
same rotated SV output signal 127 to produce 20 more sums of 11 bit
correlations for storage in Accumulator Block 115 for that SV. The
result is that 22 values are then available within Accumulator
Block 115 for processing, each value is a measure of the
correlation of the signals from one SV with 22 different code
phases or delays, each separated by one half chip width.
[0149] During the next {fraction (1/12)} of a time segment, that
is, during the processing of the second multiplexed channel, the
rotated SV output signal 127 for the next SV, is applied to Holding
Register 140 for correlation with 22 different one half chip delays
of the code generated for that satellite. At the end of a segment,
Accumulator Block 115 includes a matrix of 12 by 20 different sums.
In one implementation of the present invention, it has been found
to be convenient to save only 20 out of the 22 possible code delay
correlation results. The 12 rows of 20 sums represent the measure
of correlation for each of the 12 SVs at 20 code phases or
delays.
[0150] In summary, the data path for the present invention is
triply multiplexed in that
[0151] (a) each msec, which represents 1023 bits of C/A code, is
sliced into 186 to form the 186 segments in a msec of sample so
that only 11 half chip wide sample bits are processed at one
time;
[0152] (b) each segment is then multiplexed by 12 so that each such
11 bit sample is rotated for twelve different sources;
[0153] (c) the rotated 11 bit sample for each source is correlated
against 20 sets of different code delays for that source to
multiplex within each channel by 20; and
[0154] (d) the sum of the correlation products for each delay in
each channel are then summed to produce the accumulated correlation
output.
[0155] Although 22 different delays are available, it is convenient
to use 20 such delays, or code phase theories for testing the
rotated satellite signal. The correlation product having the
greatest magnitude for each channel after accumulation, that is,
the largest of the 20 sums of 11 bits stored in Accumulator Block
115 for each channel may then be detected by its magnitude, for
example by a peak detector, to determine which delay theory is the
most accurate. The peak sum represents the on-time or prompt
correlation for that SV.
[0156] Turning now specifically to FIG. 11, the triple multiplexing
scheme of the present invention may easily be understood by looking
at the slices of time resulting from each of the multiplexing
operations. Within each msec, the C/A code for each particular
satellite has 1023 bits. In order to preserve all necessary
information, the satellite signals are sampled, in a digital
composite of signals from all satellites, at the Nyquist rate at 2
f.sub.0 to produce 2046 half chip wide sample bits.
[0157] Each sequential set of eleven sample bits are processed
together as a segment of time, the length of which is equal to
1/(2046.div.11) of a msec, i.e. one {fraction (1/186)}th of a msec.
After processing of the 186th segment in a msec all necessary data
has been extracted and the 11 bit sample for the next segment is
available. Although the partial sums accumulated over each msec in
Accumulator Block 115 may only be evaluated at the end of a msec,
no data is lost and the results are only 1 segment late. That is,
since it takes 1 segment to fill 11 sample deep buffer 120 and
transfer the 11 bit sample to parallel block 122, the data from the
first 11 bit sample is being processed while the data for the
second 11 bit sample is being collected. Even if the system
operated for a year, the sampled being processed to provide
position information is still only one time segment old.
[0158] The 11 bits of each segment are multiplexed for each SV by
being time division multiplexed during Doppler rotation. That is,
the 11 bit sample of segment 1 is used to provide 12 different
Doppler shifted outputs so that a single 11 bit segment sample is
used 12 times to produce 12 different satellite specific Doppler
rotated versions, assuming all 12 satellites are in view or being
modeled. The operations for one channel then require one twelfth of
a segment. It is critical to note that each segment only produces a
partial result and that the 12 partial results during each segment
must be summed at the end of each msec to provide valid output
data.
[0159] Each of the operations on one particular channel in a
segment are time division multiplexed by a factor of 22 so that 22
different code delays for that partial sum for that satellite can
be tested. The peak sum of these 22 correlations can however be
detected by magnitude immediately if necessary to select the most
likely delay for that channel. In the present embodiment, the
information for that channel is only valid once per msec when
summed or accumulated so that there may not be a substantial
advantage in peak detected with a particular segment. In some GPS
applications and in other spread spectrum applications, such as
wireless communications, it may be desirable if strong signals are
present to accumulate and transfer the sum of the accumulations for
each source from R3 to R4 more often than once per code repetition
rate. The time required to evaluate a particular code phase delay
or theory is only {fraction (1/22)}nd of the time required per
channel per segment or {fraction (1/22)}nd of {fraction (1/12)} of
{fraction (1/186)}th of a msec. This speed of operation is more
easily achieved because the 11 one bit correlations required are
produced in parallel. Similarly, the speed of generation of the
different code delays for a particular SV is more easily
accomplished in accordance with the present invention because each
11 bit code delay sample is automatically produced when each single
new bit, i.e. each new genSerOut 160, is shifted into Code Shift
Register 170.
[0160] The selection of the magnitudes or multiplexing factors used
in each level of multiplexing is not arbitrary. The larger the
number of segments, the smaller the required size or depth of the
registers need for each sample. By using a code repetition
multiplexing factor of 186, that is, by dividing the 2046 bits of a
2 f.sub.0 by 186, only 11 sample bit, need to be evaluated at a
time.
[0161] The number of required channels is bounded pragmatically by
the fact that at least 4 SVs must be in view at the same time to
determine position accurately in three dimensions. Time is the
fourth unknown which must be determined along with each of the
three dimensions although provisions for estimating, modeling
and/or updating the position information as described above so that
position information may be accurately provided even during periods
when less than 4 satellites are concurrently in view.
[0162] The constellation of 24 NAVSTAR satellites in use are
arranged to cover the earth so that a maximum of 12 such satellites
may be in view at any one location at any particular time. The
maximum number of pragmatically useful channels is, for this
reason, no less than about 12 channels. The selected channel
multiplexing factor used in the channel level of multiplexing in
the embodiment shown herein is therefore a factor of 12.
[0163] The number of different code delays is bounded at the low
end by an absolute minimum of 1 so that if the exact delay can
somehow be maintained, the only necessary correlation would be the
on-time or prompt correlation. Conventional GPS receiver systems
use at least 2 or 3 different code delays so that conventional
tracking techniques, for example those which use early, prompt and
late correlations to center the prompt correlation within .+-.1
delay, may be employed.
[0164] In accordance with the present invention, a substantially
greater number of different code delays, or delay theories, are
tested so that fast reacquisition may be accomplished as described
above with regard to FIGS. 3 and 4. Although for the particular
preferred embodiment described herein, it was determined that a
total of 20 different delays, each separated in 5 time by one half
the width of a C/A code chip, i.e. {fraction (1/2)} of {fraction
(1/2046)} of one msec, a code delay multiplexing factor of 22 was
selected because the relationship between each of the 3
multiplexing factors is also important.
[0165] The product of the three multiplexing factors, code
repetition multiplexing factor, channel multiplexing factor and
code delay multiplexing factor should optimally be an even integer
multiple of the number of bits in each repetition of the spread
spectrum modulation. An even integer multiple is required because
samples must be taken at twice the chip rate, i.e. at the Nyquist
rate, in order to avoid data loss from sampling at a slower rate.
Although multiplexing factors can be used successfully even if the
product is not exactly equal to an even integer multiple, data loss
or unnecessary complexity and costs may result.
[0166] In the particular embodiment shown, the spread spectrum code
of interest is the C/A code, each repetition of which includes 1023
bits. In accordance with the triple multiplexing product rule
discussed above, the product of the three multiplexing factors must
equal an even integer multiple of 1023, such as 2046. In the
described embodiment, the code repetition multiplexing factor is
186, the channel multiplexing factor is 12 and the code delay
multiplexing factor is 22. The product of 186 multiplied by 12 and
then by 22 is 49104 which, when divided by 1023, equals 48. 48 is
an even integer and therefore the particular set of multiplexing
factors used in the present invention provides one of several
optimized systems.
[0167] The reason this multiplexing factor product rule works well
in a tri-level multiplexing configuration for C/A code is that
there are three prime factors in 1023. That is, 1023 is the product
of three prime numbers, 31, 11 and 3. Each of the three
multiplexing factors is evenly divisible by one of these prime
numbers. For example, 186 is divisible by 31 six times, 12 is
divisible by 3 four times and 22 is divisible by 11 twice.
[0168] Using each prime factor of the number of bits in the sampled
bit rate in one of the multiplexing factors yields two or more
different families of multiplexing configurations for C/A code
spread spectrum receivers. In the first family, if 11 channels are
desired, then either the code repetition multiplexing factor or the
channel multiplexing factor would have to be divisible by 31.
Although it may be desirable in certain applications to use 31 or
62 different code delays, there is a substantial advantage in
making the code repetition multiplexing factor as large as
possible. This reduces the number of bits required to be saved and
processed in each segment. By selecting the code repetition
multiplexing factor to be a multiple of 31, the number of delays
actually used can be more easily controlled because the code delay
multiplexing factor could be any multiple of 3.
[0169] In the other convenient family, 6, 9, 12, 15 or 18 satellite
channels are desired so that the channel multiplexing factor is an
integral multiple of 3. This permits the code delay multiplexing
factor to be a factor of 11 while the code repetition multiplexing
factor is a factor of 31. The particular embodiment described in
the specification above is in this family.
[0170] Another constraint on the selection of multiplexing factors
is the speed of operation of the lowest level of multiplexing. In
the embodiment disclosed, the third level of multiplexing operates
at 48 f.sub.0. The clock speed of the hardware implementation must
be sufficient to permit operation at this speed. As faster and
faster on chip components are developed, higher clock speeds may be
used to accomplish the highest speed processing and larger
multiples may be used. For example, with components in the high
speed processing sections such as Correlator Block 110 capable of
operation at higher rates at multiples of f.sub.0, such as at 96
f.sub.0, the code repetition multiplexing factor could be doubled
to produce 24 channels with 20 delays or taps or 12 channels with
40 delays or taps or 11 channels with 6 bits and 22 taps.
[0171] The system configuration may also be viewed from the
standpoint of a time or speed magnification. Operation at the third
multiplexing level at 48 f.sub.0 is 24 times faster than the chip
rate of the 2 f.sub.0 sample being processed. This amplification
factor of 24 permits a hardware multiplexing or gate compression
factor of 24. The number of gates on ASIC 102, or other devices for
implementation the present invention, is reduced essentially in
direct proportion to the magnification factor. All other factors
being equal, the surface area of a chip operated at 48 f.sub.0 is
on the order of {fraction (1/24)}th of the surface area that would
be required to operate at 2 f.sub.0 . Similarly, an increase in the
magnification factor to 96 would permit a reduction in the required
chip surface real estate required on the order of almost half.
[0172] The particular embodiment of the multiple level multiplexing
spread spectrum receiver of the present invention which has been
disclosed above is a GPS receiver. The same invention can be used
for other spread spectrum signals such as wireless telephone
signals with due consideration for the selections of multiplexing
factors based on the bit rate of the spread spectrum code used and
the environmental factors applicable to that application. The
environmental factors for the present configuration, such as the
pragmatic constraints on the number of channels and code phases,
have been described above.
[0173] Referring now to FIG. 12, a block diagram overview of a GPS
receiver system 200 including a preferred embodiment of the digital
signal processing chip 102 described above, ASIC GSP1 202, and a
radio frequency chip, GRF1 204, combined with other components to
form a complete receiver system according to the present
invention.
[0174] Associated with ASIC GSP1 202 are SRAM 206, ROM 208 and CPU
101, interconnected by data and address busses 210 and 212 to
provide the functions of RAM R1 103, RAM R2 105 and Sat_Mem 186 and
other required functions described above with regard, for example,
to FIG. 5.
[0175] GRF1 204 is including within RF processing subsystem 214
which received satellite signals from GPS antenna 28 and provides
sample or GPS data 100 to ASIC GSP1 202 which returns an automatic
RF gain control signal, AGC 216, back to GRF1 204. Associated with
GRF1 204 in RF processing subsystem 214 are RF filter 218 which
applies the signals from GPS antenna 28 to low noise amplifier LNA
220 to output of which is applied to GRF1 204. In addition, GRF1
204 uses an outboard filter, IF FILTER 222 as well as crystal 224.
It is important to note that IF FILTER 222 may be a low cost,
external 2-pole LC (inductance-capacitance) type intermediate or IF
filter, rather than a more expensive and complex 5 or 6 pole filter
for the following reasons. GPS receiver system 200 uses a
relatively wide IF band followed by a decimator or digital filter,
Digital Filter 118, as shown for example in CACAPT 104 in FIG.
5.
[0176] In particular, the output of LNA 220 is processed by GRF1
204 using IF FILTER 222 to produce GPS data 100 which is applied to
CACAPT 104 in ASIC GSP1 202. Within ASIC GSP1 202, GPS data 100 is
separated into in phase and quadrature phase I and Q signals in I/Q
splitter 106. The I signals are then applied to Digital Filter 118
and the Q signals are processed in the same manner as shown in FIG.
5 and described above.
[0177] Referring now to FIG. 13, a block diagram of an alternate
embodiment of the GPS car navigation system depicted in FIG. 2 used
for improved navigation during reduced satellite visibility is
shown.
[0178] As noted above, GPS receivers are preferably operated with a
minimum of 3 or 4 satellites distributed across the visible sky in
order to determine, or at least estimate, the four necessary
unknowns typically including x.sub.user, y.sub.user and z.sub.user
which provide three orthogonal coordinates to locate the user as
well as t.sub.user which provides the required satellite time. In
the embodiment shown in FIG. 13, the four unknowns are specified as
a.sub.user, c.sub.user, z.sub.user and t.sub.user. The three
orthogonal user coordinates are a.sub.user, which locates the user
in terms of the distance along the currently identified heading or
track, c.sub.user, which locates the user in terms of the cross
track distance of the user from the currently identified heading or
track, and Z.sub.user which represents the altitude of the user,
conventionally in terms of the vertical distance above or below sea
level.
[0179] As depicted in FIG. 13, GPS car navigation system 400
processes satellite signals in ASIC 102 received in satellite
receiver section 36 from GPS antenna 28 to track all currently
visible satellites in satellite specific tracking channels such as
SatTRAK channels 38, 40, 42 and 44, the outputs of which are
applied to SatProcessor 46. A navigation solution may then be
produced in NavProcessor 402 which creates position model 403 of
the four unknowns, such as internal clock model 54, altitude
estimate 56, c.sub.est 404 and a.sub.est 406. The use of c.sub.est
404 and a.sub.est 406 has been found to be advantageous even when
more than one satellite is in view.
[0180] GPS car system module 26 is also provided with data related
to the then current--and expected future--physical environment of
car 10 from, for example, Route Data Base 52 which includes
information about the routing in the form of roadways and turns
between roadways, as well as actual or estimated roadway width. The
estimated roadway width may simply be a default value representing
a common roadway width such as the width of a two lane city street
or highway if no other information is then available.
[0181] Solutions for all 4 unknowns of position information may be
derived when signals from at least 4 satellites in a proper
configuration to provide adequate geometric coverage are in
view.
[0182] When signals from only 3 visible satellites are available
for suitable processing, the Z.sub.user solution may be replaced by
z.sub.est 56 solution derived from an elevation estimate or default
in what is conventionally called the altitude hold mode of
processing. Changes in elevation occur relatively slowly in
terrestrial navigation so that the degradation of position accuracy
during altitude hold is often acceptable.
[0183] When signals from only 2 suitable satellites are available,
the c.sub.user position information is replaced by c.sub.est which
may be derived from Route Data Base 52 or otherwise estimated in
what has been referred to herein as the cross track hold mode of
processing. The maximum physical cross track distance, that is, the
width of the roadway, is typically smaller than the position
accuracy currently available with the GPS system and therefore any
position information degradation resulting from cross track hold is
usually acceptable as long as the vehicle is progressing along a
known track or direction.
[0184] Referring now to FIG. 14A, if route data from Route Data
Base 52 or another source is being used, predicted track 408 may
represent actual roadway 409, which is shown to extend for example
in a first direction from point 410 to turn 412 after which actual
roadway 409, and therefore predicted track 408, turns about
30.degree. toward the right. A similar situation occurs when an
intentional turn is made, for example, when exiting a highway.
[0185] Referring now to FIG. 14B, if detailed roadway or track data
is not being used, the default estimate for predicted track 408 may
simply be the current heading. That is, as long as the vehicle
including GPS car navigation system 400 is proceeding along actual
roadway 409 from point 410 to turn 412, predicted track 408 follows
actual roadway 409 and no cross track error occurs. After turn 412,
however, if predicted track 408 is merely estimated from the
heading of the vehicle between point 410 and turn 412, predicted
track 408 would continue along the same original direction while
actual roadway 409 turns toward the right.
[0186] In the situation shown in FIG. 14A, cross track hold may
successfully be used, without substantial accuracy degradation,
both before and after turn 412. However, in the situation depicted
in FIG. 14B after turn 412, the actual path of actual roadway 409
is not known and is merely estimated by the previous vehicle
heading so that substantial cross track error may occur. In
particular, the cross track error at turn 412 is zero but increases
to cross track error distance 414 when the vehicle reaches point
416 along actual roadway 409. Thereafter, when GPS car navigation
system 400 reaches point 420 on actual roadway 409, the cross track
error reaches cross track error distance 418.
[0187] One way to effectively continue to use cross track hold in
the situation depicted in FIG. 14B, in which predicted track 408 is
merely estimated from the current heading, is to utilize turn
detector 66 shown in FIG. 2, to detect the occurrence of a turn.
The turn detection indication may be used in conjunction with turn
comparator 68 and Route Data Base 52 to correct or update predicted
track 408 to correspond to the actual path of actual roadway 409 or
merely to require a re-estimation of predicted track 408 by using
the then current heading after the turn. Similarly, a less
desirable but simpler approach is to use timer 422 to cause
predicted track 408 to be periodically re-estimated from the then
current heading.
[0188] A better alternative is shown in FIG. 13 in which steady
state detector 424 may be used as an alternative to, or in addition
to, turn detector 66. Steady state detector 424 may be simply a
type of turn detector, such as a magnetic compass, or a more
sophisticated device such as an inertial navigation system. In any
event, steady state detector 424 serves to indicate that the
vehicle is no longer maintaining steady state conditions, that is,
no longer following a straight line or continuing along a smooth
curve. The output of steady state detector 424 is applied to
NavProcessor 402 to indicate that predicted track 408 is no longer
accurate because the vehicle has changed direction.
[0189] In accordance with a preferred embodiment of the present
invention, upon an indication from steady state detector 424 that a
change from steady state conditions has occurred during cross track
hold, if more than one satellite signal is in view NavProcessor 402
automatically switches from cross track hold to clock hold. In
other words, upon an indication that a cross track error may
exists, the current clock estimate is maintained during a brief
period in which the cross track estimate is updated.
[0190] The length of time during which clock hold may be maintained
without substantial degradation of position accuracy is a function
of the accuracy, or drift, of the real time clock used in GPS car
navigation system 400. This accuracy may be predicted and is
probably good enough to use for periods at least on the order of
about 30 to 60 seconds. A first step in increasing the length of
time during which clock hold may be maintained without unacceptable
position degradation is to maintain a model of the error of the
real time clock.
[0191] Real time clock error model 426 serves to monitor the drift
of real time clock 428 shown in FIG. 12. The clock drift, compared
to the actual time as determined from the satellites, is determined
as a function of time so that further drift may be predicted. Some
of the factors which contribute to this drift are linear and
predictable so that some portions of the clock drift may be
accurately modeled and the clock adjusted to compensate for that
drift. Other factors which contribute to the clock drift are
unpredictable. That is, even after correcting the clock for errors
detectable in comparison to satellite time, the accuracy of real
time clock 428 may only be improved to a certain level. The
inaccuracy of the clock model, resulting from the random and
unpredictable factors, determines the length of time that clock
hold may be used without an unacceptable level of accuracy
degradation.
[0192] Real time clock error model 426 may then be used to set the
length of the period during which clock hold may be used so that
cross track hold can be released and cross track error minimized or
eliminated. In operation, real time clock error model 426 monitors
real time clock 428 to determine the level of unpredictable, that
is uncorrectable, clock drift while SatProcessor 46 corrects real
time clock 428 in response to signals from the GPS satellites.
Thereafter, when there are only two visible satellites, the cross
track hold mode is instituted and steady state detector 424
monitors the progress of the vehicle to determine when a turn or
other even changes is indicated by a change from steady state
conditions.
[0193] Thereafter cross track hold is released and clock hold is
instituted to correct any cross track error. Thereafter, in
accordance with timer 422, clock hold is released and cross track
hold is re-instituted. Cross track hold is then maintained while
only two satellites are visible with usable signals until the next
time that steady state detector 424 indicates the possible
existence of a substantial cross track error. Alternatively, during
long periods of cross track hold, clock hold may be used
periodically in accordance with timer 422 to permit reduction of
any accumulated cross track error. In this manner, the best
possible navigation solution may be obtained from signals from two
satellites by cycling between two hold states such as cross track
and clock hold. The time in each hold state is limited in
accordance with indications or predictions of unacceptable
deviation from the held or modeled value.
[0194] In most typical operating conditions in terrestrial
navigation, the width of the roadway, waterway or airway--and the
likelihood of steady state motion--both contribute to a preference
for cross track hold over clock hold, especially in light of the
drift errors in currently available real time clocks used for GPS
receivers. The periodic cycling between cross track and clock hold
provides the most accurate and dependable navigation solutions for
two visible satellites. If the second satellite also becomes
unavailable so that signals from only a single satellite remain
useful, clock hold may be used in conjunction with cross track hold
for single satellite navigation.
[0195] If the signals from the satellites are further degraded so
that useful signals are not available from any satellites, at a
minimum the local clock in the GPS receiver may be used with the
last available speed information to continuously predict position
based on dead reckoning. The dead reckoning position information
may easily be enhanced by application of route information from a
map or other data base for increased accuracy.
[0196] The term "dead reckoning" is a contraction of the original
expression "deduced reckoning" which was used by sailors to predict
or "deduce" their then current position based their position at
their last known location coupled with estimates, of the distance
traveled based on the average speed and the direction of travel
based on the average speed, since the last known location. In
accordance with the present invention, conventional dead reckoning
techniques are enhanced by several unique GPS aiding techniques as
will be described below, so that position information may be
continuously provided during operation in difficult urban
environments using the best available combination of actual
measurements and estimates.
[0197] Referring now again to FIG. 14A, the vehicle at some
particular time t0 is determined to be at position 456 and
traveling on predicted track 408 at a rate of one mile per minute.
If satellite signals are lost at time t0 until time t1, one minute
later, it is reasonable to predict that the vehicle would travel
another mile during that minute. Because the vehicle was traveling
in a particular direction along predicted track 408 when the
signals were lost, it is also reasonable to assume that the vehicle
has continued to travel in the same direction and, at time t1, is
therefore at position 458 exactly one mile further along predicted
track 408.
[0198] It is not necessary for operation of such predictions that
the track be straight, only that the track or route be known. For
example, predicted track 408 might be predicted to form an "s"
curve between positions 458 and 460 because actual roadway 409
follows such a curve. In the example given immediately above if the
satellite signals remained obscured from point 458 to point 460,
there are several different methods for predicting the position of
the vehicle along predicted track 408 at time t2, another minute
later.
[0199] Assuming the speed hasn't changed since time t0, because no
contrary information is available, position 460 at time t2 may be
predicted to be one mile further along the direction being traveled
at position 458, that is, one mile further along a straight line
from position 456 through position 458. A more accurate position
prediction may also be made by calculating the length of predicted
track 408 after position 458 including the curve so position 460 is
placed a distance along the curved track a mile beyond position
458.
[0200] Referring now again to FIG. 12, power consumption is a
critical issue for many terrestrial spread spectrum receivers,
including GPS receivers, particularly for battery powered
receivers. Many battery powered receivers will be used in
environments in which the battery drain due to the receiver is
nominal, and/or may be conveniently replenished, such as in a
vehicle. Many other battery powered receivers, referred to herein
as hand held units for convenience, must rely solely on their
batteries for power and be re-powered on a regular basis by
recharging the batteries or replacing them. In addition, the nature
of the use of devices of this type makes a reasonably long battery
life important.
[0201] Conventional devices may be powered down, that is turned
off, so that battery drain in minimal. However, the time required
to power up and provide a reasonable navigation solution is often
unsatisfactory. For example, when a conventional receiver is
powered up after just being powered down it may be able to easily
reacquire the satellites it was previously tracking but such
reacquisition takes at least 2 to 3 seconds. This time lag is too
long to permit powering down between position fixed in most
applications. In a vehicle, a user would prefer not to wait several
seconds after requesting a position fix for the receiver to provide
an updated navigation solution.
[0202] Further, if a receiver has been powered down for more than a
few seconds, the accumulated time errors will often result in the
need for a search in order to lock onto the satellite signals
unless a high quality (and therefore expensive) real time clock, or
other source of accurate time information, is provided. A satellite
signal search may take 15 minutes if the receiver has not been
powered up for awhile.
[0203] In accordance with the present invention, however, energy
saving techniques have been employed to permit battery operated,
hand-held or similar receivers to be operated with minimal battery
energy requirements and to provide instantaneous, or at least
perceptibly instantaneous, position fixes and navigation solutions
when the unit is powered up or when a position fix is requested. By
the term instantaneous, or perceptibly instantaneous, what is meant
is a relatively short delay time on the order of one quarter to one
half of a second between the time that the unit is activated and
the time the user receives the position fix so that the user is not
made aware of a response time delay.
[0204] There are two primary battery saving modes of operation, the
push to fix or sleep mode and the reduced power continuous
navigation mode.
[0205] In the push to fix mode, when a navigation solution or
position fix is required, the user pushes a button on the unit and
a position fix is displayed in a sufficiently short time that the
user is not bothered by the time required to reacquire and provide
the navigation solution. The push to fix mode may therefore provide
a perceptually instantaneous navigation solution when the push to
fix control is activated. During the remainder of the time, the
receiver operates in a sleep mode in which minimum power is used.
During the sleep mode, however, the effective clock error has been
modeled so that clock accuracy maintenance is performed
automatically to keep the unpredictable clock error below a
predetermined magnitude so that the receiver may be re-energized to
perform clock maintenance with a minimum of wasted energy.
[0206] In the reduced power continuous operation mode, a
perceptually constantly updated navigation solution is provided.
The majority of the energy using portions of the receiver system
are not powered for a substantial fraction of each second. For
example, as will be described below, the present invention may be
operated in a mode in which the full operation of the receiver is
used for only 200 milliseconds per second, saving about 80% of the
battery energy that would otherwise be used during the remaining
800 milliseconds of each second.
[0207] As shown in FIG. 12, GPS receiver system 200 may be dividing
up into several major subsystems including, for example, RF
processing subsystem 214 including the antenna input and RF signal
preconditioning filtering and pre-amp stages, an IF filter as well
as the crystal oscillator for an accurate clock or counter,
together with a signal processing stage based on ASIC GSP1 202 and
digital section 430 which includes the digital computer facilities
such as SRAM 206, ROM 208 and CPU 101, interconnected by data and
address busses 210 and 212, as well as real time clock 428.
[0208] In accordance with the present invention, RF processing
subsystem 214 and ASIC GSP1 202 are powered down into a so-called
sleep mode for a substantial portion of the time while digital
section 430 remains powered to maintain the operation of real time
clock 428. In many systems, it may be desirable to maintain crystal
224 in a ready to operate condition during the "off" or sleep
state, by for example, keeping it warm in a temperature controlled
environment.
[0209] In the push to fix mode, the duration of the permissible
power down or "off" time during the sleep mode, that is the time
interval between clock accuracy maintenance operations, is
dependent upon the level of unpredictable, or unmodelable, drift of
real time clock 428. In a typical application, the crystal used in
real time clock 428 will be a relatively inexpensive crystal on the
order of the quality of crystals used in a personal computer. Such
crystals may provide a time resolution of 30 micro seconds or
better and be modelable to hold time to within one half millisecond
in perhaps 50 seconds.
[0210] In order to maximize the sleep or "off" time in a
push-to-fix mode of operation, the drift of real time clock 428 is
measured and modeled against a more accurate time base as provided
by crystal 224 in RF processing subsystem 214 and/or from the
signals from the satellites. It may be convenient to model the
clock error of real time clock 428 so that the elapsed time during
which the unpredictable changes in real time clock 428 occur can be
determined. This modeling may be accomplished a priori, by
estimating, or in accordance with a preferred embodiment of the
present invention, be continuously determined during operation so
that the full accuracy of real time clock 428 is used.
[0211] If it is determined that real time clock 428 drifts in a
predictable fashion, real time clock 428 may be updated by digital
section 430 on a regular basis to compensate for the drift. The
period for updating may then be lengthened so that the
unpredictable (and therefore unmodelable) error never exceeds a
predetermined amount, for example, one half millisecond. That is,
if the maximum permissible error is selected to be one half
millisecond, then the determined period for the maximum off time
depends on how long it takes the clock to drift by one half
millisecond in an unpredictable way.
[0212] In the sleep mode, at the end of the off time, CPU 101
causes the power to be reapplied to RF processing subsystem 214 and
to ASIC GSP1 202. RF processing subsystem 214 attempts to continue
tracking and/or reacquire a selected satellite. The selected
satellite may conveniently be the satellite with the strongest, or
otherwise most usable, signal as determined from the previous "on"
time. The "off" time has been selected so that the signals from the
selected satellite are within a known time offset and are therefore
easily reacquired.
[0213] In accordance with a preferred embodiment of the present
invention, approximately 240 correlations may be performed,
accumulated and completed during each millisecond, that is, during
each repetition of the C/A code. These 240 correlations each
represent one half chip of time. If the clock error represents less
than about plus or minus 60 chips, which may be on the order of
plus or minus 10 miles in pseudorange, tracking occurs during the
first millisecond. That is, usable data is immediately collected.
In particular, if the clock error is within plus or minus 120 half
chips, one of the 240 correlations will in fact be the prompt
correlation. At the end of the first millisecond, the data from the
prompt correlation may be used in the usual way to track the
selected satellite and thereby determine the clock error.
Therefore, at the end of the first millisecond of clock maintenance
operation, the clock error may be corrected and the pseudorange to
the "best" or selected satellite redetermined.
[0214] During the next and subsequent 1 ms periods, normal tracking
of all, or at least most, of the other satellites remaining visible
may be resumed because the error in real time clock 428 has been
corrected.
[0215] In this manner, clock maintenance is automatically performed
at least as often as required by the actual drift of the clock so
that the length of operating time required to resume tracking may
be controlled. The duration of the "off" time can be controlled in
general as a function of the quality of real time clock 428. For
any particular level of clock error, the amount of power required
for resumption of tracking may be controlled in part by the number
of correlations used. As more correlations are used, more energy is
consumed, but longer "off" times may be employed.
[0216] In the presently preferred embodiment it has been determined
that a 50 second off time would be appropriate with a convenient
quality level of clock crystal for real time clock 428. The exact
length of off time may be determined by clock error modeling during
action operation of the receiver, as noted above. At the end of the
50 second "off" period, GPS receiver system 200 is powered up and
can immediately resume tracking at least the first satellite during
the first millisecond and all available satellites thereafter. If
GPS receiver system 200 was powered up as a result of the need for
clock accuracy maintenance, no further tracking is required and the
"off" or battery energy save state may be resumed as soon as the
clock error is corrected by tracking the first satellite.
[0217] If satellite tracking of the selected satellite is not
resumed during the first millisecond for clock accuracy
maintenance, the total time required to reacquire the best
satellite will typically be less than 9 milliseconds because all
1023possible delay theories can be tested with about 9 passes of
the 240 delays per pass.
[0218] If, in addition to clock error maintenance, a navigation
solution is required, normal operation of GPS receiver system 200
may be continued for as long as required after a clock maintenance
operation to complete the navigation solution.
[0219] In operation, after normal satellite tracking, push to fix
operation may be instituted and the receiver will enter the sleep
mode for the period determined by the clock error model to permit
the clock to remain accurate to within a fix amount, say half a
millisecond. At the end of the sleep mode period so determined,
clock maintenance occurs in which the receiver wakes up long enough
to correct real time clock 428. Thereafter, the sleep mode is
resumed.
[0220] Upon receipt of a push to fix request for a navigation
solution, a clock maintenance operation is performed to correct
real time clock 428 and then normal tracking is resumed for all
satellites being tracked. The navigation solution may then be
determined in the usual manner and the sleep mode resumed.
[0221] In the reduced energy, continuous operation mode, the sleep
mode is engaged on a periodic basis, such as for 800 milliseconds
in each second. The modeled clock drift is sufficiently small at
the end of the sleep mode so that normal tracking may be
automatically resumed. During the next 200 milliseconds, satellite
tracking is then resumed, clock corrections are made, and the
navigation solution determined.
[0222] During the next succeeding seconds, the 800 millisecond
sleep mode continues to be alternated with a 200 millisecond
tracking mode, thereby substantially reducing the energy
requirements for apparently normal, continuous operations. During
the 800 millisecond sleep period, digital section 430 or at least a
substantial portion thereof remains active. Assuming for
convenience that the energy used by the RF, signal processing and
digital processing subsystems are approximately equal, the energy
savings is therefore on the order of about two thirds of 80% of the
full operation energy budget for an approximate savings of about
half while updating the position fix once per second.
[0223] In many hand held applications, continuous operation may
require a position fix at time intervals of substantially greater
than one second, say for example 5 seconds. The operation of the RF
and signal processing sections for only about 200 ms each 5 seconds
provides a tremendous increase in operating life for any particular
set of batteries.
[0224] Referring now to FIG. 15, these modes of operation may be
combined in low power consumption receiver 432 which operates in an
energy conserving continuous, as well as push to fix, modes.
Operations begin as described above in full time acquisition and
then tracking modes, indicated as step 434. In the preferred
embodiment, push to fix inquiry 436 is made. If push to fix
operation is not required, the receiver is operated in a sleep mode
for a fixed period of time, such as 800 ms, under the direction of
step 438. Thereafter a fixed period of tracking, for example 200
ms, is accomplished under step 440. Operation cycles between steps
438 and 440 until push to fix operation is required.
[0225] When push to fix operation is begun, sleep mode 442 is
entered until inquiry 444 determines that maximum allowable clock
error has occurred. As noted above, the period of time in which
this clock error occurs, or is modeled to occur, depends upon the
maximum allowable error which in turn depends upon the number of
correlations available per unit time as well as the length of time
permitted for resumption, or reacquisition, of tracking. In the
presently preferred embodiment using 240 correlations per
millisecond and requiring clock drift to be limited to plus or
minus one half millisecond, a sleep period of up to 50 seconds may
be allowed.
[0226] When the sleep period based on maximum allowable clock error
is over, the resumption of tracking in step 446 is begun for the
selected satellite using the maximum number of correlators
available. When a lock 448 on the selected satellite's signal has
been achieved, the real time clock and/or the corrected clock model
is updated under step 450. If a fix (inquiry 452) is required,
tracking is then resumed under step 454 for all satellites using
the correlations in a time division multiplexed fashion as
described above. If a fix is not presently required, and inquiry
436 indicates that the push to fix mode is to continue, the
receiver resumes the sleep mode under step 442 until maximum clock
error reoccurs or is predicted to reoccur, for example, at the
expiration of an additional 50 seconds.
[0227] The operation of the present invention under adverse
operating conditions as may often be encountered in an urban
environment may best be understood from the following example.
During conditions of adequate geometric satellite coverage and
reception, a minimum of 4 satellites are continuously tracked and
solutions are provided for the four necessary unknowns, three
orthogonal position parameters and one satellite time parameter.
The position parameters may be specified in terms of X, Y and Z or
A, C and Z or in any other convenient system. Position information
may then be accurately provided, within the then current
constraints of the GPS system, and displayed in any convenient
manner in the vehicle. If a map data base is available and being
used, the position may conveniently be displayed by superposition
on an appropriate map display.
[0228] Upon degradation to 3 satellites in view with adequate
geometric coverage, by obscuration of all but three appropriate
satellites, a conventional altitude hold mode is entered. In this
mode, the altitude or Z unknown is estimated, preferably from the
most recent altitude measurements available which may be updated
and corrected in accordance with data from the map data base. In
accordance with the present invention, fast reacquisition
techniques, as described herein above, are used to update the
altitude estimate as the fourth satellite becomes available during
even brief periods of visibility such as when the vehicle crosses
an intersection or drives by an opening between buildings. This
fast reacquisition mode information is used to update the estimates
being used even if the satellite is then immediately re-obscured,
by the buildings or other obstructions present at the end of the
intersection or opening between buildings. An update of an
estimated position parameter during a temporary reacquisition, such
as when a vehicle crosses an intersection, may be considered to be
a new and unique mode of operation known herein as the "fast reaq
update" mode of operation.
[0229] Upon degradation to 2 satellites in view with adequate
geometric coverage, by obscuration of all but two appropriate
satellites, the cross track hold mode is entered in which the cross
track parameter or unknown is estimated, preferably from the most
recent measurements available from the map data base. Use of along
track, cross track and altitude position unknowns is desirable, but
not essential, when determining position data during cross track
hold operation. Fast reaq update continues to be available during
cross-track hold so that the along track information may be updated
as frequently as possible even if only during travel through an
occaisional intersection. As noted above, in addition to fast reaq
update, a programmed switch to the clock hold mode may be made on a
period basis to maintain the accuracy of the cross track estimate
by periodically updating the cross track parameter.
[0230] The switch to clock hold may also preferably be instituted
in response to an indication from a sensor or other device that the
cross track error may have exceeded a predetermined limit. For
example, a direction sensor may be used to corroborate the
direction information obtained from the map data base so that clock
hold is used temporarily to update the cross track data when the
current heading deviates from the expected heading as derived from
the route data base.
[0231] The use of a map data base is desirable, but not essential,
during cross track hold so that the vehicle position may be
displayed with greater accuracy by modifying the resolved position
information to match the route specified by the map data base.
[0232] Upon loss of signals from all but a single satellite, a
conventional clock hold mode is also entered so that the GPS
receiver is operated with estimates of altitude, cross track and
clock data. Fast reaq update continues to provide updates at least
on clock data to maintain maximum position accuracy. If fast reaq
updates happen to be available more quickly than are required to
maintain the necessary clock accuracy as estimated by the receiver,
at least some of the fast reaq updates may be used to update cross
track hold data. Similarly, fast reaq may also be used to
occasionally update altitude data if desired.
[0233] Upon loss of signals from all satellites, a map data base
aided dead reckoning mode is entered in which the most recent speed
and direction are used to maintain an estimated position which is
then updated whenever fast reaq update information is available. In
addition to obtaining track information, related for example, to
turns in the preprogrammed or otherwise selected route, external
sensors such as compasses may be used to corroborate the map data
and detect and track changes.
[0234] A fast reaq update with adequate geometric coverage would
first be used to update along track data, that is, revert from no
coverage to altitude, cross track and clock hold. Subsequent reaq
updates if received quickly enough to not be needed for a further
clock update may be used for cross track updating or even altitude
estimate updating. Information or estimates not recently updated by
fast reaq updates would rely on dead reckoning as aided by the map
data base.
[0235] In accordance with the preferred embodiment of the present
invention, the switching between various modes of operation from
full coverage through altitude, cross track and clock hold to dead
reckoning, with fast reaq updates for selected estimates made as
available, occurs transparently to the user so that the position
information displayed to the user, by for example a map display,
simply provides the most currently accurate position information
that may be derived from the satellite coverage then available.
[0236] Having now described the invention in accordance with the
requirements of the patent statutes, those skilled in this art will
understand how to make changes and modifications in the present
invention to meet their specific requirements or conditions. Such
changes and modifications may be made without departing from the
scope and spirit of the invention as set forth in the following
claims.
* * * * *