Friday, 22 November 2019
  Home arrow Microwave Projects arrow GPS & Glonass RX  
Latest Articles
Main Menu
GMG News
World Microwave News
Job Opportunities
People at the GMG
Microwave Articles
Microwave Projects
Online Software
Discussion Board
Users QSOs
Users Links
Contact us
Login Form

Lost Password?
No account yet? Register
GMG RSS feed
Embed to your site!
GPS & Glonass RX

A homemade receiver for GPS & GLONASS satellites

Matjaz Vidmar, S53MV (ex YU3UMV, YT3MV)

(please wait for the images to load)

1. Introduction to GPS & GLONASS

Radio amateurs have always been interested in space technology, since the latter strongly depends on reliable radio communications. Of course radio amateurs are not only interested in amateur-radio satellites: almost any artificial Earth's satellite represents a challenge, either to receive its weak signal on rather high frequencies or to demodulate, decode and use the data it is transmitting.

Besides amateur-radio satellites, the most interesting satellites for radio amateurs are weather (imaging) satellites: radio amateurs have successfully built weather-satellite image reception equipment for all known weather satellites and all known image transmission standards. Radio-amateurs also pioneered satellite TV reception using small antennas much earlier than this became a mass-produced consumer product.

Although the first navigation satellites were launched more than 30 years ago, satellite navigation and positioning has only become popular in the last few years with the introduction of reliable, accurate and easy-to-use systems like the american Global Positioning System (GPS) and the russian GLObal NAvigation Satellite System (GLONASS). Both are intended to replace a variety of ground-based radio-navigation aids and as a side product, to provide any suitably equipped user with very accurate time (100ns) and very accurate frequency (10^-12).

Although both GPS and GLONASS are primarily intended for military users, there are already more civilian users of these systems. GPS (and soon combined GPS/GLONASS) navigation receivers can be made small, light-weight, easy-to-operate and inexpensive like VHF FM "handy-talkie" transceivers. Since these receivers can measure their tri-dimensional position with an accuracy of around 50m anywhere on the Earth's surface, their user community ranges from pleasure-aircraft pilots to truck drivers and mountain climbers and, why not, radio amateurs!

Besides the challenge to build a satellite receiver radio amateurs can use GPS and GLONASS signals in other ways as well. The most immediate application of a GPS or GLONASS receiver is certainly as a highly accurate frequency source. Accurate timing and synchronization may be required for advanced communication techniques like coherent communications or to seriously investigate the propagation path and the propagation mechanism of radio waves. Finally, positioning and direction-finding may be useful for high-gain microwave antenna pointing.

In this article I am first going to describe the satellites and the radio signals they are broadcasting. Further I am going to describe the principles of operation of a GPS or GLONASS receiver. Finally I am going to describe the practical construction of homemade GPS and GLONASS receivers, together with their operating software. These receivers can be built in two different forms: as stand alone, portable receivers with a small keyboard and a LCD display, or as peripherals with their own plug-in modules for the "DSP computer" described in [1] and [2].

2. GPS & GLONASS system description

2.1. Radio-navigation principles

Radio navigation evolved together with other applications of radio waves. The operation of all radio-navigation systems is based on the assumption that the propagation mechanism of radio waves is well known and that the propagation speed of radio waves is usually very close to the speed of light in free space. Further, systems using radio waves usually have a sufficient range to be practically usable for position, velocity and attitude determination of a remotely-located user. Finally, all of the measurements on radio waves, like direction finding, time-delay measurements, phase measurements or Doppler-shift measurements, can be performed with simple and inexpensive technical means at least on the user side.

Early radio-navigation systems used the directional properties of the receiving antenna, transmitting antenna or both. In these systems the main sources of measurement errors are the inaccuracies of the antenna pattern(s). Since the measured quantity is an angle, the position error grows linearly with increasing the distance between the remote user at an unknown location and the navigation equipment at known location(s). Such systems are therefore severely limited in either the range or the accuracy and are only efficient to bring a user to a single point, like bringing an aircraft to the beginning of a landing runway using the Instrumented Landing System (ILS).

Time or frequency are certainly the physical quantities that can be measured most accurately. If the propagation speed and propagation mode of radio waves are known, one can easily compute the distance from a time-delay measurement. Further, the absolute accuracy of such distance measurements does not depend on the order of magnitude of the distances involved, except for the uncertainties in the propagation speed of the radio waves used. Therefore, all long-distance, precision radio-navigation systems are based on time-delay (or signal phase difference) measurements and/or the time derivatives of these quantities, usually observed as the Doppler frequency shift.

The easiest way to measure the distance to a known site is to install a radio repeater there, transmit a signal, receive the answer from the repeater and measure the round-trip time. Although such radio-navigation systems were practically implemented (like DME for civilian aircrafts), they have some limitations due to the fact that the user needs both to transmit and to receive radio signals. Such a system can not accomodate an unlimited number of users since only one user can use the radio repeater at a time and each measurement takes some time. Some military users may also not want to transmit any radio signals to avoid disclosing their position to the enemy while civilian users do not want the requirement of having their navigation equipment licensed.

The transmit requirement for the user can be dropped if the user can achieve and maintain synchronization with the navigation transmitters in a different way. For example, both the user and the navigation transmitters may be equipped with high-accuracy time/frequency sources like atomic clocks. The user then synchronizes his clock at a known location and the same clock is then used at an unknown location for time-delay measurements.

Since atomic clocks are expensive, bulky and power-hungry devices, a more simple alternative is desired for navigation systems serving a large number of passive, receive-only users. Such a system must have a number of synchronized transmitters as shown on Fig.01. Since the user does not know the accurate time, he can not measure the time delays and the distances d1, d2, d3... to the transmitters TX1, TX2, TX3... directly.


The user can only measure the differences in the times-of-arrival of different TX signals. Time differences correspond to distance differences. The set of points corresponding to a given distance difference from two given points is a hyperbola (in two dimensions) or a rotational hyperboloid (in three dimensions). The two transmitters are located in the focal points of the hyperbola (rotational hyperboloid).

For two-dimensional navigation (positioning) signals from at least three synchronized transmitters need to be received. For example, from the measured time difference between TX1 and TX2 the user can plot the hyperbola d1-d2=const.12 on his map. Similarly, from the measured time difference between TX2 and TX3 the user can plot the hyperbola d2-d3=const.23 on his map. The two hyperbolas intersect in a point corresponding to the unknown user location!

For three-dimensional navigation signals from at least four synchronized transmitters need to be received. The three independent time differences generate three different rotational hyperboloids. Rotational hyperboloids are curved surfaces. Two of them intersect in a curved line which in turn intersects with the third hyperboloid in a point corresponding to the unknown three-dimensional user position.

If there are more transmitters available, the user can select the best set of three (four) that provide two hyperbolas (three rotational hyperboloids) intersecting as close as possible under a right angle(s). The remaining transmitters can then be used to check for errors and/or ambiguous solutions, since with curved lines and surfaces there can be more than one intersection point.

Hyperbolic navigation systems were first implemented as ground-based navigation systems operating in the medium and long-wave radio frequency spectrum like LORAN, DECCA or OMEGA. Since the transmitters are located on the Earth's surface, the geometry of the problem does not allow a three-dimensional navigation. These systems only measure the longitude and latitude reliably. To measure the altitude, one of the transmitters should be located above or below the user's receiver or at least out of the user's horizon plane.

Ground-based radio-navigation systems use relatively low frequencies of the radio spectrum to achieve a large radio range and avoid undefined skywave (ionospheric) propagation at the same time. For example, OMEGA uses the frequency range between 10 and 14kHz to achieve world-wide coverage with just 8 (eight) transmitters!

Long-wave radio-navigation systems were designed when digital computers were not readily available yet: two-dimensional navigation with fixed transmitter sites only requires a minimum of computations to be performed by the user. The families of hyperbolas for each transmitter pair can be directly plotted on maps, including corrections for known propagation anomalies.

One of the first applications of artificial satellites was radio navigation. Obviously artificial satellites need radio navigation themselves, to evaluate the performance of the rocket carrier and determine the final satellite's orbit. On the other hand, the space environment is an ideal place for navigation transmitters, since a large radio range can be achieved at VHF and higher frequencies where the propagation of radio waves is predictable and the influence of the always-changing ionosphere is marginal. Finally, the location of navigation transmitters in space can be chosen so that three-dimensional navigation is possible everywhere on the Earth's surface.

Since initially the satellites could only be launched in low-earth orbits, the first navigation satellites were launched in low, 1000km altitude, polar orbits, like the American TRANSIT satellites or the soviet equivalent TSIKADA. Since a satellite in a low-Earth orbit is quickly moving along its orbital track, a single satellite may be used for position determination. While even a simple crystal-controlled user's clock is sufficiently accurate for a few minutes, the satellite significantly changes its position on the sky and this is roughly equivalent to several navigation transmitters at several different sites along the orbital track.

In practice the user simply measures the Doppler shift on the satellite's signal for a certain period of time and computes his unknown position from the result of this measurement and the satellite's orbital data. Although a single satellite is required for position determination, these systems usually have from six (TRANSIT) up to twelve satellites to improve the coverage, since a low-Earth orbit satellite is only visible for a limited amount of time for a user located on the Earth's surface. Since the ionosphere still has some effect on VHF and UHF radio waves, both American and Soviet satellites transmit on two frequencies around 150MHz and around 400MHz. The actual channel frequencies are kept in the precise ratio 3/8 and the transmitters are kept coherent to allow for ionospheric corrections.

The drawbacks of low-Earth orbit navigation satellites are that the user may have to wait for a satellite pass and even then the measurement takes several minutes. Finally, the user velocity, both magnitude and direction, must be known and compensated-for in the position computation. To allow an almost instantaneous position determination more satellites are required. If a user has at least four visible satellites in different parts of the sky, he can compute his three-dimensional position instantaneously, without having to wait for the satellites to move across the sky.

In order to limit the number of satellites required, these have to be launched to higher orbits. Such satellite navigation systems are the American GPS and the soviet GLONASS that should achieve world-wide coverage with 24 satellites each when completed. Both systems should provide at least four visible satellites in any part of the world including in-orbit spares and a suitable distribution of the visible satellites on the sky to allow a three-dimensional navigation.

Finally, one should notice that satellite navigation systems require a large amount of computations to be performed by the user. The satellites continuously change their positions, so no hyperbolas could be plotted on maps. Three-dimensional navigation is even more demanding, so that a digital computer is absolutely necessary. Maybe this explains why satellite positioning only became popular a few years ago: although navigation satellites were available for more than 30 years, inexpensive computers were not!

2.2. Satellite navigation equations

In order to understand satellite navigation systems one should first look in the mathematical background of satellite navigation. To perform any practical computations one should define a coordinate system first. Most satellite navigation systems use a right-hand Cartesian coordinate system like the one shown on Fig.02. The coordinate system is body-fixed to the Earth and is therefore a rotating coordinate system, unlike the inertial coordinate system used for Keplerian orbital elements for most satellites.


Usually, the origin of the coordinate system is the Earth's center of mass. The Z-axis of the coordinate system corresponds to the Earth's rotation axis and the Z-axis is pointing north. The X-axis and Y-axis are in the equatorial plane and the X-axis points in the direction of the Greenwich meridian while the Y-axis is oriented so that a right-hand orthogonal coordinate system is obtained.

However, if the user prefers a more conventional coordinate system, like longitude, latitude and altitude above sea level (altitude above the surface of an ellipsoid), he can always perform the required transformations. These transformations are always performed on the final result, since most of the internal computations of a navigation receiver are most easily performed in a Cartesian coordinate system.

Finally, one should understand that there are several different coordinate systems in use although the basic definition is the same for all of them. Satellite navigation systems improved the absolute positioning accuracy down to the 1m (one meter) level, so the differences between several local geographic coordinate systems have become noticeable. For example, GPS is using the WGS-84 coordinate system while GLONASS is using the SGS-85 coordinate system. The difference between these two systems is around 10m in the east-west direction and around 10m in the up-down direction at the author's location in central Europe.

Using vector notation one can write down the navigation equations in an orderly way. In a three-dimensional Cartesian coordinate system it is easy to understand that a single vector includes three independent quantities.

A time-difference navigation equation only includes the range vectors representing the positions of the transmitters (satellites) and of the receiver (user). Distances between the user and the satellites are computed as magnitudes (absolute values) of range vector differences. On the other side of the equation we find the measured time difference multiplied by the propagation velocity of radio waves (c).

If the user location - user range vector - is unknown, this represents three scalar unknowns that require three independent time-difference (scalar!) equations for the solution. To obtain three independent equations at least four transmitters are required. The solution of these equations is not straightforward since the absolute value of a vector is a non-linear function: it contains squaring and square-root operations. The navigation equations are therefore usually solved in a numerical iterative procedure, although an analytical solution exists [3].

A Doppler-shift-difference navigation equation includes both range vectors and velocity vectors since to compute the Doppler frequency shift one has to obtain the velocity difference first and then compute the projection of the velocity difference vector on the direction of propagation of radio waves. Vector projections are computed using the scalar (dot) product between two vectors. On the other side of the equation we find the measured Doppler-shift difference in relative units, the absolute difference being divided by the nominal carrier frequency (f0). The relative frequency difference is then converted to velocity units by multiplying it by the propagation velocity of radio waves (c).

The Doppler-difference navigation equations include the user position vector and the user velocity vector and these can be both unknown representing up to six scalar unknowns. Since one usually does not have available six independent Doppler-difference equations, these are usually used in the following ways:

(1) If the user position is already available from time-difference equations, the user velocity vector 
can be computed from three independent Doppler-difference equations. (2) If the user velocity 
vector is known or the user velocity is zero (stationary user), then the user position can be 
computed from three independent Doppler-difference equations. (3) Various combinations 
of time-difference and Doppler-difference equations are also possible. 

Besides the visibility problem, the navigation equations put some additional constraints and desirable features for navigation satellite orbits. The final accuracy of the navigation solution, position or velocity, depends on the conditioning of the system of equations. An ill-conditioned system of equations will amplify any measurement errors in the final result. A geometrical equivalent of an ill-conditioned system of equations is when lines or surfaces (rotational hyperboloids) intersect at very low angles.

The accuracy degradation due to poor conditioning of the system of equations is usually called Geometrical Dilution Of Precision (GDOP). Of course the satellite orbits have to be chosen to provide the lowest possible GDOP to the widest user community: since the equations are non-linear, GDOP changes with the user position. The users themselves have to chose the best set of four satellites to get the lowest GDOP, since more satellites may be visible, even at high elevations, but providing a large GDOP.

The most obvious cause of a large GDOP with a system of time-difference equations is when two satellites are close together on the sky. A more general case is when all four satellites are almost in a single plane. For the same reason the geostationary orbit is not very suitable for navigation satellites. The geostationary orbit has yet another disadvantage for navigation satellites: the relative velocity of the satellite is very low for Earth-located users and the Doppler-difference equations themselves (not the system!) are ill-conditioned, since the unknown user position vector is multiplied by very small numbers.

2.3. GPS & GLONASS satellite systems

GPS and GLONASS are the first satellite systems that require the simultaneous operation of a number of satellites. In other satellite systems, including earlier navigation systems, the operation of every single satellite was almost autonomous and any additional satellites only improved the capacity of the system. In GPS or GLONASS the satellites need to be synchronized and can only perform as a constellation of at least four visible satellites for every possible user location without forgetting the GDOP requirement!

Both GPS and GLONASS satellites are launched into similar orbits. A comparison among GPS, GLONASS and more popular satellite orbits like the geostationary orbit or the retrograde sun-synchronous Low-Earth Orbit (LEO) is made on the scale drawing on Fig.03. Both GPS and GLONASS satellites are launched into circular orbits with the inclination ranging between 55 and 65 degrees and the orbital period in the order of 12 hours, which corresponds to an altitude of around 20000km (one and a half Earth diameters).


The GPS system was initially planned to use three different orbital planes with an inclination of 63 degrees and the ascending nodes equally spaced at 120 degrees around the equator. Each orbital plane would accomodate 8 equally spaced satellites with an orbital period of 11 hours and 58 minutes, synchronized with the Earth's rotation rate [4]. During a 10-year test period from 1978 to 1988 only 10 such "Block I" satellites were successfully launched in orbital planes "A" and "C" as shown on Fig.04.


The GPS specification was changed afterwards [5] and the new "Block II" satellites are being launched in 55-degrees inclination orbits in six different orbital planes A, B, C, D E and F, with the ascending nodes equally spaced at 60 degrees around the equator. The new GPS constellation should also include 24 satellites, having four satellites in each orbital plane, including active in-orbit spares. The orbital period of the GPS satellites should be increased to 12 hours to avoid repeat-track orbits and resonances with the Earth's gravity field.

Finally, the new "Block II" satellites also include a nasty feature called "Selective Availability" (SA): the on-board hardware may, on ground command, intentionally degrade the accuracy of the navigation signals for civilian users while military users still have access to the full system accuracy. Beginning in 1988 and up to March 1993, 9 GPS "Block II" and 10 new GPS "Block IIA" satellites have been launched using "Delta" rockets. The SA-mode is currently turned on and degrades the accuracy to between 50 and 100m.

The GLONASS system is planned to use three different orbital planes with an inclination of 64.8 degrees and the ascending nodes equally spaced at 120 degrees around the equator. Each orbital plane would accomodate 8 (or 12) equally spaced satellites with an orbital period of 11 hours, 15 minutes and 44 seconds, so that each satellite repeats its ground track after exactly 17 revolutions or 8 days [6].

Since the beginning of the GLONASS program a large number of satellites have been launched into GLONASS orbital planes 1 and 3, the orbital plane 2 has not been used yet. Some satellites never transmitted any radio signals, since the GLONASS system also includes passive "Etalon" satellites used as optical reflectors for accurate orbit determination. GLONASS satellites are launched three at a time with a single "Proton" rocket. Due to this constraint all three satellites can only be launched in the same orbital plane.

Recently observed GLONASS satellite operation is shown on Fig.05. The observed lifetime of GLONASS satellites seems to be shorter than that of American GPS counterparts. A critical piece of on-board equipment are the atomic clocks required for system synchronization. Although each satellite carries redundant rubidium and cesium clocks, these caused the failure of many GPS and GLONASS satellites. In addition to this, GLONASS satellites have had problems with the on-board computer. Unfortunately, the GPS or GLONASS orbit altitude is actually in the worst ionizing-radiation zone, the same radiation that already destroyed the AMSAT-OSCAR-10 computer memory.


2.4. GPS & GLONASS satellite on-board equipment

Since the two systems are similar, GPS and GLONASS satellites carry almost the same on-board equipment as shown on Fig.06. For the navigation function alone, the satellites could be much simpler, carrying a simple linear transponder like on civilian communications satellites. The required navigation signals could be generated and synchronized by a network of ground stations.


However, both GPS and GLONASS are primarily intended as military systems. Uplinks are undesired since they can be easily jammed and a network of ground stations can be easily destroyed. Therefore, both GPS and GLONASS satellites are designed for completely autonomous operation and generation of the required signals. Synchronization is maintained by on-board atomic clocks that are only periodically updated by the ground stations.

Both GPS and GLONASS satellites carry a cesium atomic clock as their primary time/frequency standard, with the accuracy ranging between 10^-12 and 10^-13. Much smaller and lightweight rubidium atomic clocks are used as a backup in the case the main time/frequency standard fails, although rubidium atomic clocks are an order of magnitude less accurate. Due to the stable space environment these atomic clocks usually perform better than their ground-based counterparts and any long-term drifts or offsets can be easily compensated by uploading the required correction coefficients in the on-board computer.

The output of the atomic time/frequency standard drives a frequency synthesizer so that all the carrier frequencies and modulation rates are derived coherently from the same reference frequency.

The on-board computer generates the so-called navigation data. These include information about the exact location of the satellite, also called precision ephemeris, information about the offset and drift of the on-board atomic clock and information about other satellites in the system, also called almanac. The first two are used directly by the user's computer to assemble the navigation equations. The almanac data can be used to predict visible satellites and avoid attempting to use dead, malfunctioning or inexistent satellites, thus speeding-up the acquisition of four valid satellite signals with a reasonable GDOP.

Besides the transmitters for broadcasting navigation signals, GPS and GLONASS satellites also have telecommand and telemetry radio links. In particular, the telecommand link is used by the command stations to regularly upload fresh navigation data into the on-board computer. Usually this is done once per day, although the on-board computer memory can store enough data for several weeks in advance. In addition to dedicated telemetry links, part of the telemetry data is also inserted in the navigation data stream.

2.5. GPS & GLONASS satellite transmissions

GPS and GLONASS satellites use the microwave L-band to broadcast three separate radio-navigation signals on two separate RF channels usually called L1 (around 1.6GHz) and L2 (around 1.2GHz). These frequencies were chosen as a compromise between the required satellite transmitter power and ionospheric errors. The influence of the ionosphere decreases with the square of the carrier frequency and is very small above 1GHz. However, in a precision navigation system it still induces a position error of about 50m at the L1 frequency during daylight and medium solar activity.

On the other hand, GPS and GLONASS were designed to work with omnidirectional, hemispherical-coverage receiving antennas. The capture area of an antenna with a defined radiation pattern decreases with the square of the operating frequency, so the power of the on-board transmitter has to be increased by the same amount.

Both GPS and GLONASS broadcast two different signals: a Coarse/Acquisition (C/A) signal and Precision (P) signal. The C/A-signal is only transmitted on the higher frequency (L1) while the P-signal is transmitted on two widely-separated RF channels (L1 and L2). Since the frequency dependence of ionospheric errors is known, the absolute error on each carrier frequency can be computed from the measured difference between the two P-transmissions on L1 and L2 carriers.

The L1 C/A- and P-carriers are in quadrature to enable a single power amplifier to be used for both signals, as shown on Fig.06. The L1 and L2 transmitter outputs are combined in a passive network and feed an array of helix antennas. These produce a shaped beam covering the whole visible hemisphere from the GPS/GLONASS orbit with the same signal strength.

All three GPS or GLONASS transmissions are continuous, straightforward BPSK modulated carriers. Pulse modulation is not used. The timing information is transmitted in the modulation: the user's receiver measures the time of arrival of a defined bit pattern, which is a known code. If desired, the modulation code phase can be related to the carrier phase in the receiver to produce even more accurate measurements, since both the carrier frequency and the code rate are derived coherently from the same reference frequency on-board the satellite.

The GPS C/A-code is 1023 bits long and is transmitted at 1.023Mbps. The C/A-code repetition period is therefore 1 ms. The GLONASS C/A-code is 511 bits long and is transmitted at 511kbps, so it has the same repetition period as the GPS C/A-code. The P-code is transmitted at 10 times the speed of the C/A-code: 10.23Mbps for GPS and 5.11Mbps for GLONASS. The transmitter power level for the P-code on L1 is 3dB below the L1 C/A-code and the P-code on L2 is 6dB below the L1 C/A-code. The P-code repetition period is very long, making an autonomous search for synchronization unpractical. All P-code receivers first acquire lock on the C/A-transmission, which also carries information that allows a quick P-code lock.

Both C/A- and P-codes are generated by digital shift-registers with the feedback selected to obtain pseudo-random codes. The navigation data is modulo-2 added to the pseudo-random codes. Since the navigation-data rate is very low, only 50bps, it does not affect significantly the randomness properties of the codes used. The navigation data at 50bps is synchronized to the C/A-code period to resolve the timing ambiguity caused by the relatively short 1 ms C/A-code repetition period.

GPS "Block II" satellites may encrypt the published P-code into the secret Y-code. This process is called "Anti-Spoofing" (AS). Its purpose is to prevent an enemy from jamming the GPS with false GPS-like signals. Details of the GLONASS P-code are not published. In fact, the GLONASS P-code is even not mentioned in [6], although these transmissions can be easily observed on a spectrum analyzer.

The GPS and GLONASS RF channel carrier frequencies are shown on Fig.07. All GPS satellites transmit on the same L1 and L2 carrier frequencies: 1575.42MHz and 1227.6MHz, which are held in the exact ratio 77/60 and are integer multiples of the fundamental GPS clock frequency of 10.23Mhz.


Every GPS satellite transmits its own set of C/A- and P-codes that have good cross-correlation properties with the codes used by other GPS satellites. Since a GPS receiving antenna is omnidirectional and receives many satellites at the same time, the receiver is using Code-Division Multiple Access (CDMA) techniques to separate signals coming from different satellites. GPS satellites are therefore identified by the Pseudo-Random-Noise code number (PRN#).

The GLONASS satellites use 25 different RF channels. Channel 0 is reserved for testing spare satellites while channels 1 to 24 are dedicated to operational GLONASS satellites. All GLONASS satellites transmit the same C/A-code and are usually identified by the CHannel Number (CHN#). The L1 and L2 carrier frequencies are in the exact ratio 9/7 and the channel spacing is 562.5kHz at L1 and 437.5kHz at L2.

Although there exist civilian P-code receivers, the majority of civilian GPS or GLONASS receivers are C/A-only receivers. Since the advantages of using the P-code are limited, especially with SA, AS or both active, only the C/A-code transmission will be discussed in detail here.

2.6. GPS C/A-transmission format

GPS satellites use code-division multiplexing on both C/A- and P-transmissions. Since C/A-codes are relatively short sequences (only 1023 bits), the codes have to be carefully selected for good cross-correlation properties. GPS C/A-codes are Gold codes (named after their inventor Robert Gold) that can be generated as a modulo-2 sum of two maximum-length shift-register sequences.

The GPS C/A-code generator is shown on Fig.08. It includes two 10-bit shift registers G1 and G2, both clocked at 1.023MHz, each with a separate feedback network made of exclusive-or gates. Both feedback networks are selected so that both generated sequences have the maximal length of 1023 bits. Both shift registers are started in the "all-ones" state and since both sequences have the same length, the shift registers maintain the synchronization throughout the operation of the circuit.


Gold codes are obtained by a modulo-2 sum (another exclusive-or operation) of the outputs of the two shift registers G1 and G2. Different codes can be obtained by changing the relative phase of the two shift registers. Instead of resynchronizing the shift registers it is easier to delay the output of one of them (G2). This variable delay is achieved with yet another modulo-2 sum (exclusive-or) of two G2 register taps. Exclusive-or feedback shift-regiter sequences have the property that a modulo-2 addition of a sequence with its delayed replica produces the same sequence, but delayed by a different number of clocks.

Choosing two G2 register taps, 45 different delays can be generated yielding 45 different Gold codes with good auto-correlation and cross-correlation properties. Out of these 45 possible codes, 32 are allocated to GPS satellites as shown on Fig.09. The cross-correlation properties of GPS C/A-codes guarantee a crosstalk smaller than -21.6dB between the desired and undesired satellite signals.


The 50bps navigation data stream is synchronized with the C/A-code generator so that bit transitions coincide with the "all-ones" state of both shift registers G1 and G2. At 50bps one data bit corresponds to 20 C/A-code periods.

The navigation data is formatted into words, subframes and frames. Words are 30 bits long including 24 data bits and 6 parity bits computed over the 24 data bits and the last two bits of the previous word. Parity bits are used to check the received data for errors and to resolve the polarity ambiguity of the BPSK demodulator. 10 words (300 bits) form a subframe which always includes a subframe sync pattern "10001011" and a time code called "Time-Of-Week" (TOW). One subframe is transmitted every 6 seconds.

Five subframes form one frame (1500 bits) that contains all of the information required to use the navigation signals. One frame is transmitted every 30 seconds. The first subframe in the frame contains the on-board clock data: offset, drift etc. The second and third subframes contain the precision ephemeris data in the form of Keplerian elements with several correction coefficients to accurately describe the satellite's orbit. Finally, the fourth and fifth subframes contain almanac data that is not required immediately and are sub-commutated in 25 consecutive frames, so that the whole almanac is transmitted in 12.5 minutes.

The allocation of the single data words is completely described in [5]. Most numerical parameters are 8-, 16-, 24- or 32-bit integers, either unsigned or signed in the two's complement format. Angular values that can range from 0 to 360 degrees are usually expressed in semi-circles to make better use of the available bits.

GPS is also using its own time scale. The units are seconds and weeks. One week has 604800 seconds and the week count is incremented between Saturday and Sunday. GPS time starts on the midnight of January 5/6, 1980. GPS time is a continuous time and therefore it differs by an integer number of leap seconds from UTC. The difference between UTC and GPS time is included in the almanac message.

2.7. GLONASS C/A-transmission format

GLONASS satellites use the more conventional frequency-division multiplexing at least for the C/A-code transmissions. All GLONASS satellites use the same C/A-code, generated by a 9-bit shift register G as shown on Fig.10. The GLONASS C/A-code is a maximum-length sequence and thus has an ideal auto-correlation function.


Frequency-division multiplexing allows a better channel separation than code-division multiplexing. The separation between two adjacent GLONASS channels should be better than -48dB. A large channel separation is useful when the signal from one satellite is much weaker because of reflected waves and/or holes in the receiving antenna radiation pattern. On the other hand, the GLONASS satellites require a wider RF spectrum and a GLONASS C/A-receiver is necessarily more complex than a GPS C/A-receiver.

The GLONASS navigation data stream is synchronized with the C/A-code generator so that level transitions coincide with the "all-ones" state of the shift register. The navigation data stream is formatted into lines of the duration of 2 seconds. Each line contains 85 information bits, transmitted at 50bps for 1.7 seconds and a "time mark" sync pattern "111110001101110101000010010110", which is a pseudo-random sequence of 30 bits transmitted at 100bps for the remaining 0.3 seconds.

The 85 information data bits always start with a leading "0", followed by 76 bits containing navigation information and 8 parity-checking bits, computed according to the (85, 77) Hamming code. After computing the parity bits, all of the 85 bits are differentially encoded to resolve the phase ambiguity in the receiver. Finally, the 85 differentially- -encoded bits are manchester encoded, so that a "10" pattern corresponds to a logical "one" and a "01" pattern corresponds to a logical "zero". The additional transition in the middle of the data bits introduced by the manchester encoding speeds-up the synchronization of the receiver.

15 navigation data lines form one frame of the duration of 30 seconds. The allocation of the single data bits in the frame is completely described in [6]. The first four lines of a frame contain the time code, on-board clock offset and drift and precision ephemeris data of the satellite orbit in the form of a state vector (position vector and velocity vector). To simplify the computations in the user's receiver, the corrections for the Sun- and Moon-gravity forces are also supplied.

The almanac data is transmitted in the remaining 11 lines of the frame. Almanac satellite ephemeris is in the form of Keplerian elements and is transmitted in two consecutive lines in a frame. The whole almanac is transmitted in five consecutive frames also called a superframe of the duration of 2.5 minutes. The various numerical parameters are transmitted as different size, either unsigned or signed integers. Signed integers are transmitted in the form of a sign bit followed by an unsigned integer representing the absolute value of the number (this is different from the two's complement notation!) Angular values are usually expressed in semi-circles.

The GLONASS time is kept synchronized to UTC. GLONASS uses more conventional time units like days, hours, minutes and seconds. The day count begins with a leap year (currently 1992) and counts up to 1461 days before returning back to zero.

3. GPS & GLONASS receiver theory of operation

3.1. GPS/GLONASS receiver operation principles

Since the signals transmitted by GPS and GLONASS satellites are similar, the receiver design for any of these systems follows the same guidelines. The principle block diagram of a GPS or GLONASS receiver is shown on Fig. 11. Only a single channel receiver is shown for simplicity. The problem of simultaneously receiving more than one signal (like the C/A-signal and both P-signals from four or more satellites) will be discussed later.


Since the user's position, velocity and attitude are unknown in a navigation problem, satellite navigation receivers generally use either one or more omnidirectional antennas. All satellite navigation signals are circularly polarized (usually RHCP) to allow the user's receiver to further attenuate any reflected waves, since circularly polarized waves change their sense of polarization on each reflection. Reflected waves are a major nuisance in precision navigation systems: they represent an unpredictable propagation anomaly which is a major source of measurement errors.

The radio signals collected by an omnidirectional receiving antenna are weak. A low-noise amplifier will prevent any further degradation of the signal-to-noise ratio, but it can not reduce the thermal noise collected by the antenna nor unwanted navigation satellite transmissions on the same frequency. GPS and GLONASS satellite signals are wideband, ranging from 1MHz (GLONASS C/A-code) to 20MHz (GPS P-code), and the satellite transmitter power is limited to around 25dBW EIRP (L1 C/A-code for both GPS and GLONASS) or even less than this (P-transmissions), making the signal usually weaker than the thermal noise collected by the antenna.

Although buried in thermal noise and interferences, these signals can still be used, since the given bandwidth and megabits-per-second rates apply to a known code and not to the information bandwidth, which is smaller than 1kHz for both timing and Doppler-shift measurements and the navigation data transmitted at 50bps. In other words, GPS and GLONASS signals are direct-sequence spread-spectrum signals, using Code-Division Multiple Access (CDMA) techniques [7].

A GPS or GLONASS receiver will first downconvert the signals to a suitable IF and amplify them before further processing. At this stage a wide IF filter, corresponding to the complete original signal bandwidth, can be used to improve the dynamic range of the receiver. The downconverter may be made tunable if widely separated channels are to be received, like the GLONASS C/A-transmissions.

The wideband IF signal is then multiplied by (mixed with) a locally-generated satellite signal replica, modulated by the same code. If the locally generated code is synchronized to the satellite transmission, the bandwidth of the desired mixing product will collapse down to almost zero, since two identical 0/180-degrees BPSK modulation processes exactly cancel each other. On the other hand, the bandwidth of all unwanted signals, like noise or interferences, will be further expanded by this operation to a double bandwidth.

Since the bandwidth of the desired signal collapses, this operation is usually called signal spectrum despreading. The desired signal can now be filtered-out with a narrow IF filter having a bandwidth ranging from 100Hz to 10kHz in a GPS or GLONASS receiver. After the narrow IF filter, the signal-to-noise ratio finally achieves usable values and typically reaches 20dB.

The filtered IF signal is then used for several purposes. First, it is used to acquire and maintain synchronization of the locally generated code. Dithering the locally-generated code back and forth by a fraction of the bit period generates an amplitude modulation on the filtered signal. The phase of this modulation contains the information required to keep the synchronization of the local code generator.

The filtered IF signal is also fed to a BPSK demodulator (usually a squaring PLL or a Costas PLL) to extract the 50bps navigation message data. The BPSK demodulator also provides a regenerated carrier that is used for Doppler-shift measurements. On the other hand, the code-timing information is obtained from the local code generator. All three signals, code timing, Doppler shift and 50bps navigation data are fed to the receiver CPU to compute the user position, velocity, accurate time etc...

For Earth-located, slowly-moving users, the Doppler shift on the satellite signals is mainly due to the satellite motion and amounts up to +/- 5kHz on the L1 frequency. In most cases some fine tuning will be required to compensate the Doppler shift in front of the narrow IF filter. Some fine-tuning capability is also required to compensate the local oscillator frequency drift. In GPS and GLONASS receivers all of the required frequencies are obtained from a single TCXO with a stability of a few parts per million. Since one part per million is 1.6kHz at the L1 frequency, the frequency uncertainty of the receiver is comparable in magnitude to the expected Doppler shift.

Like in all spread-spectrum systems, the initial code sync acquisition is a critical operation in a GPS or GLONASS receiver. Most receivers make an exhaustive search for C/A-code synchronization. Testing a possible code phase typically takes around 10 milliseconds each, so an exhaustive search may take more than 10 seconds. This figure needs to be multiplied by the number of frequencies tested, due to an unknown Doppler shift or unpredictable TCXO drift.

A "cold start" of a GPS or GLONASS receiver may therefore take up to one hour, since the receiver does not know which satellite (PRN# or CHN#) to look for nor the Doppler shift nor the code phase. A "warm start" is much faster since the receiver should know the almanac satellite ephemeris, the approximate user location and the approximate time. From this information one can get all visible satellites and compute the corresponding Doppler shifts, so that the code phase and the TCXO drift are the only unknowns left.

The period of the P-code is far too long to make an exhaustive sync search practical. All P-code receivers need to acquire the C/A-code first, decode the navigation data and synchronize their local P-code generator to the C/A-code transmission first. Since the P-code rate is only 10 times the C/A-code rate, there are very few possible P-code phases left to be tested to lock on the P-transmission.

GPS and GLONASS have been designed to supply timing codes, the user position being computed from the measured propagation time differences. Additionally, the user velocity can be computed from the already known position and the measured Doppler-shift differences on the signal carriers. Although the Doppler shift can also be measured on the code rates, this measurement is usually very noisy. On the other hand, no absolute delay difference can be measured on the carrier, since the carrier phase becomes ambiguous after 360 degrees. Finally, relating the carrier phase to the code phase may produce excellent results, but requires an accurate compensation of ionospheric effects, which have opposite signs: the ionosphere delays the modulation and at the same time advances the carrier phase!

Besides the described principle of operation of a GPS or GLONASS receiver, there are some other possibilities. For example, the C/A-code sync could be obtained much faster using an analog (SAW) or digital (FFT) correlator. To evaluate ionospheric errors, codeless reception techniques can be used to receive both P-transmissions on L1 and L2 frequencies without even knowing the codes used.

3.2. Digital Signal Processing (DSP) in GPS/GLONASS receivers

After the principles of operation and the required functions of an electronic circuit are known, one has to decide about the technology to practically implement the circuit. In most cases GPS or GLONASS receivers are mobile units installed on vehicles or even portable handheld units. The receiver weight, size and power consumption are all important. While every GPS or GLONASS receiver must have an antenna, a RF front-end and a digital computer to solve the navigation equations, the IF signal processing may include just a single channel in a simple C/A-only receiver or more than 10 channels in a full-spec L1 & L2 P-code receiver.

When the same circuit function needs to be duplicated several times, like the IF processing channels in a radio-navigation receiver, it is usually convenient to use Digital Signal Processing (DSP) techniques. An important advantage of DSP over analog circuits is that duplicated channels are completely identical and require no tuning or calibration to accurately measure the difference in the time of arrival or Doppler shift of radio-navigation signals. A single DSP circuit can also be easily multiplexed among several signals, since the internal variables of a DSP circuit like a PLL VCO frequency or phase can be stored in a computer memory and recalled and updated when needed again.

The bandwidth of the navigation satellite signals is several MHz and this is a rather large figure for DSP. Implementing the whole IF signal processing of a GPS/GLONASS receiver completely in software (like described in the introduction to DSP techniques in [8]) is difficult although it has been done [9] for the GPS C/A-code using powerful microcomputers. Most GPS/GLONASS receivers use a combination of dedicated DSP hardware and software for IF signal processing. Dedicated DSP hardware is only used where the the bandwidth is large and the functions are relatively simple, like the local satellite signal replica generation and the signal despreading, while all other functions, including all feedback loops, are implemented in software.

When designing a DSP circuit and in particular when designing dedicated DSP hardware it is essential to know, besides the signal bandwidth or sampling frequency, also the resolution or number of bits per sample required to represent the signals involved [10]. A GPS or GLONASS signal is a constant amplitude signal and limiting is therefore not harmful. However, after the wide IF filter in the receiver there is a mix of many satellite signals of different strength and lots of thermal noise as well. If such a mix of signals is limited, the resulting intermodulation distortion degrades the signal-to-noise ratio by around 2dB.

Since navigation satellite signals are pseudo-random sequences, all undesired signals and all intermodulation products only affect the desired signal in the same way as thermal noise. Therefore, in a GPS/GLONASS receiver, very few bits are required to represent the wideband IF signal. Most GPS/GLONASS receivers simply limit the wideband IF signal, thus accepting the 2dB sensitivity degradation and representing each sample with just two quantization levels or one single bit. Increasing the number of bits per sample only increases the DSP hardware complexity while bringing marginal sensitivity improvements, so that no known receiver design uses more than 3 bits per sample (8-level quantization).

On the other hand, an 1-bit/sample DSP GPS/GLONASS receiver may have a really simple IF signal processing as shown on the principle block diagram on Fig. 12. The IF signal is limited, so no AGC is required. Signal sampling and A/D conversion is performed by a single D-flip-flop. Signal despreading or multiplication with the locally generated signal replica is accomplished with an exclusive-or gate. Since the narrow IF can be selected close to zero, the narrow IF bandpass filter may be replaced by a lowpass filter or an integrator. In the case of 1-bit samples, the latter is simply a counter with the clock set to the sample rate and gated by the input signal.


However, after the narrow IF filtering the resulting signal can no longer be represented with a single bit per sample, if the sample rate of the narrowband signal is significantly reduced. In a C/A-code receiver, the integrator is read and then reset each millisecond, to match the period of either GPS or GLONASS C/A-codes, since the auto- and cross-correlation properties of these codes are only maintained over an integer number of code periods. An integration period of 1ms corresponds to a narrow IF bandwidth of +/- 500Hz around the center frequency. The latter is a very good choice for a GPS or GLONASS receiver.

Any further signal processing after the integration can be conveniently performed in software, since an interrupt rate of only 1kHz can be accepted by any microprocessor. The accumulated data in the integrator has a resolution of 12 to 14 bits, so any further software processing can be done without any loss of quantization accuracy nor processing speed of a general-purpose 16-bit microprocessor.

Dedicated hardware is also required for the generation of the local signal replica. Carriers or rates are conveniently generated in Numerically Controlled Oscillators (NCOs). A NCO includes a digital adder and an accumulator. In every clock cycle, a constant representing the desired output frequency or rate is added to the accumulator. If an analog output were desired, the accumulator content could be fed to a ROM containing a sine table and then to a D/A converter, forming a direct digital frequency synthesizer.

In a 1-bit DSP navigation-receiver the sine table and D/A converter are not required. Since the DSP hardware operates with 1-bit data, it is sufficient to take the MSB of the NCO accumulator as the frequency output. Two NCOs are required: on for the carrier frequency and another for the code rate. The code-rate NCO supplies the clock to a code generator like the ones shown on Fig. 8 or 10. The output of the code generator is exclusive-or gated with the output of the carrier NCO to produce a BPSK-modulated satellite signal replica.

Of course both NCOs have to be accurately steered to the required frequency and phase to maintain lock on the incoming signal. The feedback function can be performed by the microprocessor, since the feedback speed is very low: a 100Hz update rate is usually fast enough. Finally, the NCO frequency can be easily steered modifying the addition constant and the NCO phase can be easily steered modifying the accumulator content. In a time-multiplexed IF channel, both can be easily stored by the microprocessor and recalled when the channel hardware is switched back to the same satellite signal.

From the technology point of view, a DSP IF channel can be built on an "Eurocard" size printed circuit board using just bare 74HCxxx logic. A single IF channel may also be programmed in a programmable-logic integrated circuit. Finally, the complete IF signal processing with 6 or 8 independent channels may be integrated in a single custom integrated circuit. Commercial satellite navigation receivers use custom integrated circuits essentially to prevent unauthorized duplication. On the other hand, bare 74HCxxx logic is preferred for an amateur, homemade receiver. Hopefully programmable-logic ICs will some day become standardized and the necessary programming tools cheap enough to allow amateur applications.

3.3. Multi-channel reception of navigation signals

A satellite navigation receiver should be able to receive the signals from four or more satellites at the same time, to be able to measure time and Doppler differences. When the GPS specifications were published back in 1975 [4], the digital computer was the largest and most complex part of a satellite navigation receiver. Both GPS and GLONASS receivers were initially intended to have several analog IF processing channels, one per each signal type per satellite. Since these receivers were intended for military vehicles like fighter aircrafts, tanks or battle ships, the price and complexity of several analog IF processing channels was almost unimportant.

Early civilian GPS receivers also used analog IF processing, although initially limited to the C/A-code and one or two time-multiplexed IF channels. Time-multiplexing is difficult with analog IF channels, since the latter have to reacquire lock each time the satellites are changed. Lock acquisition may take 15 to 20 seconds, so that the measurement loop through four or more satellites takes several minutes. These receivers were only suitable for stationary or slowly-moving users.

The introduction of DSP techniques and inexpensive computers allowed much faster multiplexing. Since the variables of a DSP circuit can be stored and recalled, a DSP IF channel does not need to reacquire lock each time it is switched to another satellite signal. A DSP IF channel is typically switched among satellite signals around a hundred times per second making the whole loop among all required signals a few ten times per second. However, because of the available signal-to-noise ratio, the navigation solution in a C/A-code receiver only needs to be computed about once per second.

All current commercial GPS and GLONASS receivers use DSP IF processing. Small handheld C/A-code receivers have one, two or three time-multiplexed IF channels. Mobile C/A-code receivers have 5, 6 or even 8 independent channels so that no multiplexing is required. Time multiplexing makes the carrier lock and Doppler measurements difficult and unreliable, so it is undesired in mobile receivers.

Unfortunately, multi-channel GLONASS receivers require a wider raw signal IF and a much higher sampling rate due to the wide FDMA channel spacing. On the other hand, GPS receivers require the same raw IF bandwidth regardless of the number of channels thanks to CDMA. The higher sampling rates required for GLONASS are a little unpractical with currently available integrated circuits. Maybe this is another reason why GPS receivers are more popular and GLONASS is almost unknown. Since faster ICs will certainly be available in the future, one can expect that combined GPS/GLONASS receivers will become standard.

In this article I am going to describe a single-channel C/A-only receiver using fast time multiplexing. This receiver can be built in two versions: GPS or GLONASS. Although both versions use the same modules as much as possible, this is not a combined GPS/GLONASS receiver yet. The main limitation of a single IF channel, time-multiplexed receiver is that the maximum number of simultaneously tracked satellites is limited to four or five, so that a combined GPS/GLONASS receiver does not make much sense.

3.4. Practical GPS receiver design

The block diagram of the described GPS receiver is shown on Fig. 13. In the microwave frequency range, at L-band, the antenna needs a direct visibility of the satellites. Therefore it has to be installed outdoor, on the vehicle roof or on top of a portable receiver. Due to its excellent performance, a half-turn quadrifilar helix is used as a circularly polarized, hemispherical-coverage antenna. The LNA is installed directly under the antenna. Using two inexpensive GaAs FETs it achieves 30dB of gain making any following (reasonable) cable loss almost unimportant.


The GPS receiver includes a fixed-tuned downconverter to a suitable IF, an IF amplifier and limiter, a dedicated DSP hardware, a MC68010 based microcomputer with a small keyboard and a LCD display and a single master crystal oscillator for all frequency conversions and sampling rates. The downconversion from the GPS L1 frequency (1575.42MHz) is made in two steps for convenient image filtering. The first wide IF is in the 102MHz range and the second wide IF is in the 10MHz range. The wide IF bandwidth is set to around 2MHz. The actual value of the wide IF bandwidth is not critical, since filtering is only required to prevent spectrum aliasing in the signal sampling circuit.

6139kHz was selected as master crystal oscillator frequency of the described GPS receiver, since the best TCXOs are usually available for the frequency range between 5MHz and 10MHz. The output of the 6139kHz master oscillator is used both as the sampling frequency for the IF A/D conversion and as an input to a chain of multiplier stages to supply all of the frequencies required in the downconverter. Limiting the temperature range from 0 to 30 degrees C, as encountered during normal receiver operation, the TCXO was replaced by a much less expensive conventional crystal oscillator in all of the prototypes built.

Sampling the 10MHz wide-IF signal with 6139kHz produces a third downconversion to a 2303kHz nominal center frequency. The latter is the final carrier frequency that needs to be regenerated in the dedicated DSP hardware. The dedicated DSP hardware is designed as a microprocessor peripheral with read and write registers and is interrupting the MC68010 CPU once every millisecond to match the GPS C/A-code period.

In the portable, stand-alone GPS receiver, the operating software is stored in a compressed form in a 32kbytes EPROM. After power-on reset, the software is decompressed in 128kbytes of battery-backed CMOS RAM, which is also used to store the system almanac and other data to speed-up the acquisition of four valid satellites. For the same reason the CPU also has access to a small battery-backed real-time clock chip.

A small 8-key keyboard is used to select the various menus of the operating software and manually set some receiver parameters if so desired. The portable version of the GPS receiver is using a LCD module with integrated driving electronics and two rows of 40 alphanumeric (ASCII) characters each, to display the receiver status, the almanac data or the results of the navigation computations.

3.5. Practical GLONASS receiver design

The block diagram of the described GLONASS receiver is shown on Fig. 14. The GLONASS receiver uses the same type of antenna and LNA and the same dedicated DSP hardware and microcomputer as its GPS counterpart. The main difference between the two receivers is in the downconverter. The GLONASS receiver includes a tunable downconverter, otherwise the wide FDMA channel spacing would require unpractically high sampling rates in the dedicated DSP hardware.


The downconversion from the GLONASS L1 frequency range (1602 to 1615.5MHz) is made in two steps for convenient image filtering. To reduce group-delay variations, the first conversion is made tunable and the second is fixed. In this case the only contribution to group-delay variations across the GLONASS L1 frequency range are the tuned circuits at 1.6GHz. Group-delay variations introduce errors in the measured time differences, so they immediately affect the accuracy of a navigation receiver. This problem does not exist in a GPS receiver, since all GPS satellites transmit on the same carrier frequency and any signal filtering produces the same group delay on all satellite signals that exactly cancels-out when computing the differences.

Both wide IFs are fixed tuned at 118.7MHz and 10.7MHz respectively. To avoid any group-delay variations in the wide IFs, the frequency synthesizer steps must accurately match the channel spacing so that all signals are converted to the same IF values. Finally, the IF limiter should not introduce a variable delay as the input signal strength is changed when switching among channels. The second wide IF signal at 10.7MHz is sampled with 4500kHz producing a third downconversion to a nominal center frequency of 1687.5kHz.

There are several difficult-to-meet requirements for the frequency synthesizer supplying the signal for the first conversion. This synthesizer has to provide a clean signal in the frequency range from 1483 to 1497MHz in steps of 562.5kHz. Its phase noise should be low enough to allow carrier lock and 50bps navigation data demodulation: its spectral linewidth should be about 10 times narrower than required in a voice SSB receiver. Finally, in a time-multiplexed, single-channel receiver the synthesizer should be able to switch and settle to another frequency in less than 1ms, the GLONASS C/A-code period, to avoid increasing the switching dead time.

The frequency synthesizer is a PLL with a frequency converter in the feedback loop, to decrement the divider modulo, increase the loop gain, speed-up the settling and improve the output phase noise performance. The feedback signal is downconverted to the frequency range 25 to 38MHz, so that a very low programmable loop-divider modulo between 45 and 69 is required. The comparison frequency is set to 562.5kHz. A well-designed PLL will settle in 100 to 200 clock periods of the comparison frequency and the described PLL achieves this performance with a settling time between 200 and 300 microseconds.

The described GLONASS receiver is using a master crystal oscillator at 18.000MHz. This frequency is multiplied by 6 to obtain the 108MHz signal required for the second conversion and by 81 to obtain the 1458MHz signal required for the PLL feedback-loop conversion. The master oscillator frequency is divided by 4 to obtain the 4500kHz sampling frequency and by 32 to obtain the 562.5kHz PLL reference frequency. Like in the GPS receiver, in place of an expensive TCXO conventional crystal oscillators were used in all of the prototypes built, limiting somewhat the operating temperature range.

In the described GLONASS receiver, the microcomputer has one function more. Besides controlling the dedicated DSP hardware, keyboard and LCD display, all identical to the GPS counterparts, the microcomputer has to set the frequency synthesizer when switching among channels. The operating software is very similar to that in the GPS receiver and has the same hardware requirements: 32kbytes of EPROM, 128kbytes of battery-backed CMOS RAM and a battery-backed real-time clock.

3.6. GPS/GLONASS dedicated DSP hardware design

Although the theory of operation of an 1-bit DSP GPS or GLONASS receiver has already been discussed, the practical implementation still offers many different choices and some additional problems to be solved. For example, from the theoretical point-of-view it is unimportant whether the code lock or the carrier lock is achieved first. In practice, the code lock should be achieved first and should be completely independent from the carrier lock, both to speed-up the initial signal acquisition and to avoid loosing lock at short signal dropouts (obstructions, fading) or receiver frequency reference instabilities.

The block diagram of the practically implemented GPS/GLONASS dedicated DSP hardware is shown on Fig. 15. Although the implemented hardware is intended for a single channel, time multiplexed operation, it differs significantly from the theoretical block diagram shown on Fig. 12. The main difference is that there are four signal-despreading mixers (multipliers, ex-or gates) and four integrators (counters) for one single channel.


In practice, two separate signal-despreading mixers are required when downconverting to a narrow IF of almost zero. The mixers are driven with the same satellite signal replica, modulated with the same code, but with the carriers in quadrature. In this way no information is lost after signal despreading, downconversion and integration. The code lock can be made completely independent from the carrier lock, since the narrow IF signal amplitude can be computed out of the I and Q integration sums without knowing the carrier phase. The same I and Q integration sums are used in a different way to achieve carrier lock and extract the 50bps navigation data. Due to the low sample rate (1kHz) the latter are conveniently performed in software.

Although code lock may be maintained by dithering the locally generated signal replica, two separate narrow IFs for an "early" and a "late" local signal replica provide a 3dB improvement in the signal-to-noise ratio on time-delay measurements. The former solution, code dithering, is usually used in receivers with an analog narrow IF, since it is difficult to build two identical circuits in analog technology. The latter solution is used in receivers with a DSP narrow IF, since DSP circuits perform the same numerical operations and are therefore mathematically identical.

To achieve the 3dB signal-to-noise improvement, two separate sets of I and Q signal-processing chains for the "early" and "late" signal replicas need to be used. This brings the total number of signal-despreading mixers and integrators to four. Of course the local signal replica generation includes the generation of four different signals: I-EARLY, Q-EARLY, I-LATE and Q-LATE. All these signals can be obtained from a single carrier and code generator, since they are merely delayed versions of the same signal: either the carrier or the code or both are delayed. In DSP, delays can be easily obtained with shift registers.

On the other hand, the local satellite signal replica generation can be simplified with a look-up table. Since the integration period is 1ms and the input sample rate is 6139kHz (GPS) or 4500kHz (GLONASS), there are only 6139 or 4500 different bits to be stored in the look-up table for each despreading mixer and integrator. The look-up table is written by the microcomputer since it does not need to be updated very frequently.

The carrier frequency only needs to be updated less than once per minute while the carrier phase can be adjusted in software since both I and Q integration sums are available. The code rate does not need to be adjustable if the code phase can be corrected every 10 milliseconds. For the latter reason the code phase is made adjustable in hardware by a variable-delay circuit.

The variable-delay circuit used to adjust the code phase also brings a disadvantage. The carrier frequency can only be adjusted in steps of 1kHz, since the carrier phase should be continuous when the address counter reaches the end of the look-up table and is reset back to the beginning. The carrier frequency error can therefore reach +/- 500Hz and although it is compensated in software, it degrades the sensitivity of the receiver by up to 4dB (at +/- 500Hz error).

There are several ways to avoid this problem, like two separated code and carrier look-up tables or a double-length table with a presettable address counter. However, in practice the simplest circuit was preferred in spite of the 4dB sensitivity penalty. Both GPS and GLONASS receiver prototypes are therefore using the simple look-up table generator described above.

The local signal replica generation also explains the choice of the input sampling rates and wide IF nominal center frequencies. Ideally, to avoid spectrum aliasing the wide IF nominal center frequency should be equal to 1/4 of the sampling rate or any odd multiple of this value: 1536kHz for GPS or 1125kHz for GLONASS.

In practice 6139kHz was selected as the sampling rate for the GPS receiver to avoid interferences with the GPS C/A-code rate (1023kHz), since the described look-up table generator maintains a fixed phase relationship between the code transitions and sampling rate. Considering the various conversion frequencies obtained from the same source, an IF of 2303kHz resulted after signal sampling.

In the GLONASS receiver, any interferences between the sampling rate and code rate are unimportant since all satellites use the same C/A-code. The sampling rate of 4500kHz was chosen for convenience. Considering the operation of the frequency synthesizer, the final wide IF value could be chosen in 562.5kHz steps. The value of 1687.5kHz was selected to avoid some spurious frequencies generated in the synthesizer.

Finally, the described dedicated DSP hardware always requires the support of a microcomputer. The latter should compute and load the look-up tables first. After each interrupt request (every millisecond) the microcomputer reads all four integrated sums. From the I and Q components it computes the early and late magnitudes used to search and maintain code lock. The code phase required to maintain lock is at the same time the result of a time-delay measurement, referenced to the receiver clock. The difference of two such measurements is a parameter of a navigation equation.

On the other hand, the I average and Q average are supplied to a Costas-loop demodulator to recover the carrier and demodulate the 50bps navigation data bits. Then the subframe or line sync is detected to format the data stream and check the parity bits before the navigation data is used in the computations.



4. Homemade receiver modules for GPS & GLONASS

4.1. Quadrifilar backfire helix antenna

Although long-range, precision navigation systems like GPS or GLONASS were designed to be independent as much as possible of the performance of either transmitting or receiving antennas, the antennas used still have some influence on the system performance. The transmitting antennas installed on the spacecrafts have a shaped beam to supply any Earth-located user with the same signal strength and use the on-board transmitter power more efficiently. Maintaining the same signal strength is especially important in CDMA, since the GPS C/A-codes are too short to offer a very good crosstalk performance.

The ideal receiving antenna should have a hemispherical radiation pattern, offering the same signal strength from a satellite at zenith and from another satellite just above horizon. Further, the receiving antenna should match the transmitter polarization (RHCP) in all valid directions. Finally, the receiving antenna should attenuate any signals coming from undesired directions, like signals coming from negative elevations, since these are certainly reflected waves and the latter are a major source of measurement errors due to their unknown propagation path.

Although a turnstile antenna (two crossed dipoles fed in quadrature) with or without a reflector is frequently used for satellite reception, this antenna is not very suitable for satellite navigation for several reasons. The polarization of a turnstile antenna is circular only in the zenith direction and is completely linear in the horizon plane. Therefore, a turnstile antenna offers no discrimination between the desired RHCP direct wave and the unwanted LHCP reflected wave, since circularly polarized waves change their sense of polarization on each reflection. Reflected waves cause severe measurement errors and a relatively slow and deep signal fading, so that the receiver even looses lock on the signal.

A better alternative is a microstrip patch antenna. A single microstrip patch resonator provides a useful radiation pattern with a reasonably circular polarisation over a wide range of elevations. Unfortunately the radiation pattern of a microstrip antenna falls down to zero in the horizon plane. Microstrip antennas are usually used when a simple, low-profile antenna is required, usually to be installed on a vehicle roof. Since low-elevation satellites can not be received, a microstrip antenna usually limits the available GDOP.

The best antenna for satellite navigation and other applications requiring hemispherical coverage seems to be the quadrifilar backfire helix (also called a "volute" antenna). Such an antenna provides a shaped conical beam. The beam shaping and cone aperture can be controlled by adjusting the helix radius, turns pitch distance and number of turns as described in [11]. By the way, the same type of antenna is frequently used on low-Earth orbit satellites, like the NOAA weather satellites.

As the GPS and GLONASS satellites already provide a constant signal strength for Earth-located users regardless of the satellite elevation, no particular beam shaping is required for the receiving antenna. The optimum number of turns of a quadrifilar backfire helix used as a GPS or GLONASS receiving antenna seems to be between 1.5 and 3. Making a quadrifilar backfire helix longer by increasing the number of turns does not have much effect on the gain or the beam-cone aperture, but it improves the beam shaping and further attenuates the undesired lobe in the opposite direction (downwards).

Although the best GPS receivers use such a quadrifilar helix with 1.5 or 2 turns, such an antenna is difficult to manufacture and test. In particular, the four helical wires have to be fed in quadrature and there is very little space on top of such an antenna to install the feeding network. Further, a 2-turn backfire helix is rather large (20cm high) for a portable receiver. If its improved pattern performance is to be fully exploited, the direction of its axis should not deviate too much from vertical and this is not a very practical requirement for a portable receiver.

Most GPS/GLONASS receivers therefore use a simpler antenna, usually a short one-half turn backfire helix like shown on Fig. 16. Making the quadrifilar helix shorter resonance effects can be used to feed the four helical wires with the proper signal phases. In particular, one pair of wires is made shorter to make its impedance capacitive at the operating frequency and the other pair of wires is made longer to make its impedance inductive at the operating frequency.



Quadrifilar helix


To obtain RHCP a conventional end-fire helix has to be wound like a right-hand screw. The backfire helix is just opposite: to obtain RHCP the backfire helix has to be wound as a left-hand screw, besides the proper phasing of the four helical wires, of course! Further, the backfire helix requires no reflector. The four helical wires are fed at one end of the helix and shorted together at the other end of the helix. Since the main (desired) radiation lobe is directed towards the feedpiont and away from the shorted end, such an antenna is called a backfire antenna.

The feedpoint impedance is in the 50ohm range, symmetrical. A good match to 50ohms is usually sacrified for the radiation pattern which is much more important. Usually one of the four helical wires is replaced by a semi-rigid coaxial cable of the same outer diameter to form an "infinite balun". On the other hand, the performance of the antenna is not degraded much if no balun is used like shown on Fig. 16.

In the practical construction of a half-turn quadrifilar helix it is especially important to respect the exact lengths of the helical wires, since the antenna uses resonance effects and is rather narrowband. The dimensions shown on Fig. 16 are for the GPS L1 frequency (1575.42MHz). A GLONASS L1 antenna should be approximately 3% smaller. Finally, an antenna for both GPS and GLONASS L1 channels can be built by designing it for the average of the two frequency bands.

4.2. Low-noise amplifier

In all satellite microwave receivers it is usual to install a low-noise amplifier close to the antenna to avoid any feedline losses and make use of the very low sky noise temperature in the microwave frequency bands. A GPS or GLONASS navigation receiver does not require a particularly low-noise antenna amplifier since the omnidirectional antenna collects lots of ground noise (300K) and the systems themselves were designed with large margins allowing a receiver noise figure of 5dB or even more. Using a better antenna amplifier can only bring marginal improvements.




A two-stage GaAs FET antenna amplifier [12] was initially developed for a GPS receiver. This amplifier is using lumped components (coils) for input, interstage and output matching (see the circuit diagram on Fig. 17) and is constructed in free air to minimize any matching circuit losses (see the layout on Fig. 18). Further, this amplifier circuit design provides stable operation even with highly resonant sources like the described quadrifilar helix antenna and in practice the circuit resulted easily reproducible.




The antenna amplifier is built inside a small metal case with the dimensions of 50mm(length)X20mm(width)X X15mm(height) with BNC connectors for both input and output. Since the supply voltage of +12V is fed through the output connector, care must be exercised not to swap the two connectors in practical use! On the other hand, the suggested preamplifier case is small enough to avoid resonance problems with ordinary GaAs FETs, like the MGF1302. However, if higher gain devices or HEMTS like CFY65 are used in this amplifier design, a small piece of absorber foam is usually required to avoid oscillations at very high frequencies. To avoid any additional losses at 1.5GHz, the absorber should be placed just under the cover and only above the second stage.

The described preamplifier is a wideband device and does not require any particular tuning. The only adjustments necessary are the source resistors of both GaAsFETs to obtain a suitable DC bias for both stages.

The gain of the described antenna amplifier is, depending on the devices used, somewhere between 25dB and 35dB. This is enough to compensate for the losses in up to 10m of RG-214 cable and the much higher noise figure of the downconverter. Since GPS or GLONASS receivers are usually used as portable equipment, the antenna and preamplifier are installed directly on the top of the receiver.

4.3. GPS RF module

The GPS receiver only requires a single-frequency (1575.42MHz) downconverter and its design is relatively straightforward. The GPS downconverter includes two modules: a RF module built in microstrip technology and an IF strip built on a simple, single-sided printed circuit board.

The circuit diagram of the GPS RF module is shown on Fig. 19. The GPS RF module includes three RF amplifier stages and the first downconversion mixer. The amplifier stages are identical and use silicon MRF571 transistors. Much of the gain provided by these transistors is lost in the microstrip filters, since the latter are etched on a lossy but inexpensive glassfiber-epoxy laminate.




The first downconversion to 102MHz is performed by a harmonic mixer using two anti-parallel Schottky diodes HP2900, BA481 or similar. Such a mixer has a higher noise figure than conventional diode mixers, especially when using the suggested low frequency diodes. On the other hand, the required local oscillator signal is at 736MHz, only half of the frequency required for the downconversion (1473MHz).

The RF module circuit includes a network to supply with +12V the GaAs FET preamplifier through the RF cable. On the other hand, the +12V supply voltage for the RF module itself is taken out of the IF converter, after being filtered by a choke and a 100uF capacitor.




The RF module is built in microstrip technology on a double-sided board made of 0.79mm thick glassfiber-epoxy. The upper side is shown on Fig. 20 while the lower side is not etched. The location of the components is shown on Fig. 21. Before installing the components, L3, L5, L7, L9 and L12 should be grounded by soldering small U-shaped pieces of wire at the marked locations.




L1, L4, L6, L8 and L11 are quarter-wavelength chokes. These are made from about 6cm of 0.15mm thick copper enamelled wire, tinned for about 5mm at each end. The remaining wire is wound on a 1mm inner diameter and the finished chokes are small self-supporting coils. On the other hand, L2 is a commercial 100uH "molded" choke.

It is recommended to use thin teflon coax like RG-188 for the internal RF wiring of the GPS receiver. The braid of the cable should be soldered directly to the microstrip groundplane while the central conductor reaches the upper tracks through a hole in the printed-circuit board. To avoid shorts, the copper plating around this hole on the groundplane side should be carefully removed using a much larger (3mm) drill tip.

The GPS RF module needs some adjustments of the striplines and these are best performed after all of the receiver hardware is assembled. L3, L5, L7 and L9 usually need to be trimmed shorter by about 1mm at the open end to achieve the maximum gain at 1575MHz. On the other hand, L10 and L12 may need some small pieces of copper foil (about 7mmx7mm) at different locations along these striplines to achieve the best noise figure from the diodes actually used in the mixer.

4.4. GPS IF converter

The GPS IF strip includes a second downconversion to 10MHz, signal amplification and limiting at 10MHz and the generation of all required local oscillator and clock signals from a single master frequency reference.




The second downconversion to 10MHz and the LO frequency generation is included in the GPS IF converter module shown on Fig. 22 and Fig. 23. The GPS IF converter module includes a 6139kHz crystal oscillator (Fig. 23). This frequency is used both for signal sampling and suitably multiplied for both downconversions. Since the required short term stability is very high, in the 1.E-9 range, to be able to demodulate the 50bps PSK navigation data, the crystal oscillator has its own supply regulator 7805 and is followed by two buffer stages.




The crystal oscillator output frequency is first multiplied by five to obtain 30.7MHz and then by three to obtain the 92MHz required for the second downconversion. Three additional frequency-doubler stages are required to obtain the first downconversion signal at 736MHz from the available 92MHz signal. The design of all multiplier stages is similar and is using two tuned circuits in each stage except for the first stage, where three tuned circuits are necessary due to the higher multiplication factor.

The 102MHz IF signal is first amplified (BFX89) and then filtered (L9 and L10). The second mixer is a simple dual-gate MOSFET mixer (BF981). The selectivity provided by the tuned circuits at 102MHz (L9 and L10) and at 10MHz (L11) is already comparable to the GPS C/A-code signal bandwidth (2MHz). In fact, L11 already requires damping resistors to achieve the required bandwidth.




The GPS IF converter is built on a single-sided board as shown on Fig. 24. The location of the components is shown on Fig. 25. Due to the limited space all of the resistors are installed vertically. The capacitors are conventional ceramic discs (except for 100uF) with a pin spacing of 5mm. Capacitive trimmers are plastic foil types of 7.5mm diameter: green 4-20pF and yellow 2-10pF. There is also a wire jumper marked with "A".




The BFX89 is used as an universal RF transistor in this module and has many possible replacements: BFY90, BFW30 etc. The four leads of the BF981 MOSFET are bent so that the device is inserted in the printed-circuit board with the marking towards the board. The 7805 regulator does not require a heat sink provided that it is a TO-220 version.

The GPS IF converter includes several inductors. Most of them are air-wound, self-supporting coils wound with copper enamelled wire of either 0.5mm or 1mm diameter. The turns of these coils are not spaced and the leads go straight through the printed-circuit board without any additional bending or forming. In these way the coils themselves have about 1/4 of a turn less than specified in the following paragraph.

L1 and L2 have 3 turns each of 1mm wire wound on a 4mm inner diameter. L3 has 5 turns of 0.5mm wire wound on a 3mm inner diameter. L4 and L5 have two turns each of 1mm wire wound on a 3mm inner diameter. L6 has 3 turns of 0.5mm wire wound on 3mm inner diameter. L7 and L8 have one single turn (or "U" loop) of 1mm wire with a 3mm inner diameter. L9 and L10 have 5 turns each of 0.5mm wire on a 4mm inner diameter. Finally, L13 and L14 have 6 turns each of 0.5mm wire wound on a 4mm inner diameter. L13 has an additional coupling loop of one single turn around the main winding.

L11, L15, L16, L17 and L18 are wound on standard cores for IF transformers (Toko or Mitsumi) with the external dimensions of 10mmX10mm. L11 should have about 4.5uH and in practice this means 15 turns of 0.15mm diameter copper enamelled wire on a 10.7MHz IF transformer core set including a fixed central ferrite core, an adjustable ferrite cup, various plastic support parts and a metal shielding can. L15, L16 and L17 should have about 0.4uH and in practice have 6 turns of 0.15mm diameter copper enamelled wire on a 36MHz IF transformer core set including a plastic support with a central adjustable ferrite screw, a plastic cap and a metal shielding can.

The exact value of L18 depends on the crystal used and the frequency required. In all of the prototypes built inexpensive computer crystals designed for 6144kHz were used. These require quite a large inductance to be pulled 5kHz down to about 6139kHz. An inductance around 40uH is required for this shift. The exact value depends much on the crystal used and the parasitic capacitances of the circuit. Since the performance of the GPS receiver depends on the stability of this master crystal oscillator, also L18 needs to be very stable. Therefore a 36MHz IF transformer core set is recommended and the latter requires about 60 turns of 0.08mm diameter copper enamelled wire.

Finally, L12 is a 100uH "molded" choke.

The GPS IF converter has several connections. The two coax cables carrying IF and LO signals to the RF module and the +12V supply wire for the RF module are all soldered directly to the bottom side of the IF converter module. The 10MHz IF output, the 6139kHz clock output and the +12V supply voltage are available on a 7-pin connector obtained from a piece of a good-quality IC socket with round contacts.

The GPS IF module requires several adjustments, but the crystal oscillator should be adjusted first to roughly 6139kHz. Then the multiplier chain should be adjusted. Each multiplier stage should be adjusted to provide the maximum signal at the required frequency to the next stage. The levels of the RF signals can be easily monitored with a DC voltmeter, since they are rectified by the BE junction of the next stage. Without any RF input, the DC voltage is set to about 0.7V across the BE junction. When the multiplier chain is operating correctly, this voltage should decrease down to about zero and may even become negative. If the transistor base goes more negative than -0.5V, RF transistors may be damaged and this should be avoided by decreasing the values of the coupling capacitors.

Of course, the voltmeter required for these adjustments should only be connected through a RF choke to avoid disturbing the RF circuit. A 10kohm resistor may also be used as a RF choke. In this way all of the multiplier stages can be adjusted except the last one to 736MHz, since no BE junction follows this stage. The level of the 736MHz signal is monitored in a different way, by connecting a DC ohmmeter to the IF output of the mixer. The higher the LO signal level, the lower the resistance measured by the ohmmeter.

The signal circuits (L9, L10 and L11) are best adjusted after the receiver is completely assembled, since the following IF amplifier has a S-meter output. A grid-dip meter can be used as a signal source at 102MHz. The trimmers in parallel to L9 and L10 tune almost to their maximum capacity and L10 may sometimes require an additional capacitor in parallel. The final adjustment of the signal circuits is best performed on a real GPS signal obtained from a directional antenna (a 15 turn helix or a small dish) pointed to a GPS satellite.

Finally, the crystal oscillator should be adjusted to the exact frequency required by the software. For the current version V122 the exact frequency is 6139.050kHz, but this may change in the future. The exact frequency is specified in the program listing.

4.5. GLONASS RF module

The GLONASS receiver requires a tunable downconverter across all of the 25 GLONASS channels spacing from 1602MHz to 1615.5MHz, therefore its design is more complicated than the GPS counterpart. The GLONASS downconverter is divided into four modules for shielding purposes and differences in the construction technology: a RF module and a PLL synthesizer converter built in microstrip technology and an IF converter and synthesizer logic built on simple, single-sided printed circuit boards.

The circuit diagram of the GLONASS RF module is shown on Fig. 26. The GLONASS RF module includes two selective RF amplifier stages, the first receiver mixer to the first (fixed) IF of 118.7MHz, and a VCO followed by a buffer stage. The two RF amplifier stages are identical and use MRF571 transistors. Since the GLONASS RF module is built on a lossy, but thicker laminate than GPS, the losses in the RF filters are lower and two amplifier stages provide enough gain.




The VCO includes an amplifier (BFR91) and a highly-selective interdigital filter feedback network. Such a VCO can only cover a very limited frequency range (about 10% around the central frequency), but its phase noise is very low. The VCO is tuned by a BB105 varicap in the central finger of the interdigital feedback network.

The VCO is followed by a buffer stage with another BFR91. A microstrip coupler takes part of the VCO output signal to drive the PLL circuits. The VCO and RF signals are then combined in an interdigital filter network to feed the mixer diode HP2900 or BA481.

The GLONASS RF module circuit includes a network to supply with +12V the GaAs FET preamplifier through the RF cable.




The GLONASS RF module is built in microstrip technology on a double-sided board made of 1.57mm thick glassfiber-epoxy. The upper side is shown on Fig. 27 while the lower side is not etched. The location of the components is shown on Fig. 28. Before installing the components, the resonators of L3, L5, L6 and L7 should be grounded by soldering short pieces of 1mm diameter copper wire at the marked locations. The transistors and diodes are installed in 6mm diameter holes in the printed circuit board.




L1, L4, L8 and L12 are quarter-wavelength chokes. These are made from about 6cm of 0.15mm thick copper enamelled wire, tinned for about 5mm at each end. The remaining wire is wound on a 1mm inner diameter and the finished chokes are small self-supporting coils. On the other hand, L2, L9 and L11 are commercial 120uH "molded" chokes.

RF interconnections inside the GLONASS receiver are made with thin teflon coax like RG-188, installed just like in the GPS receiver front end. On the other hand, GLONASS microstrip modules include feedthrough capacitors to save space on the printed-circuit boards. The feedthrough capacitors are soldered to the microstrip groundplane from the bottom side. Some components, like chokes and resistors in the supply network, are also installed on the bottom side of the microstrip boards.

The GLONASS RF module only needs few adjustments, mainly to the VCO feedback network. To cover the desired frequency range, the central finger usually needs to be trimmed shorter by several mm. The two side fingers may need adjustments if the VCO stops oscillating at band edges. The remaining interdigital filters usually do not need any adjustments to provide the best performance in the desired frequency range. If the VCO is operating correctly, the mixer diode will provide a rectified voltage of about -0.4V across the 150ohm resistor.

4.6. GLONASS IF converter

The GLONASS IF strip includes a second downconversion to 10.7MHz, signal amplification and limiting at 10.7MHz and the generation of the required local oscillator and clock signals from a single master frequency reference.

The second downconversion to 10.7MHz and the LO frequency generation is included in the GLONASS IF converter module shown on Fig. 29. The GLONASS IF converter module includes a 18MHz master crystal oscillator. This frequency is used, divided by four, for signal sampling, divided by 32 as the PLL reference frequency and suitably multiplied for the second signal downconversion and for the PLL downconversion.




The GLONASS IF module only includes the oscillator and some multiplier stages. The dividers are located in the PLL synthesizer logic module and the last frequency multiplier is in the PLL synthesizer converter. Like in the GPS receiver, the required short term stability is very high, in the 1.E-9 range, to be able to demodulate the 50bps PSK navigation data Therefore the crystal oscillator has its own supply regulator 7805 and is followed by two buffer stages just like in the GPS IF converter module.

The crystal oscillator output frequency is first multiplied by three to obtain 54MHz. This signal is then doubled to 108MHz for the second downconversion and multiplied by three to obtain 162MHz to drive the PLL synthesizer converter, using two separate multiplier stages fed by the same 54MHz signal. The 162MHz signal is further amplified in a buffer stage (BFR96) to drive the SRD multiplier in the PLL synthesizer converter.

Since the described GLONASS receiver includes a more complicated RF front-end than GPS, more filtering is required in all multiplier stages to avoid spurious frequencies. Therefore multiplier stages may have three or even more tuned circuits on their outputs.

The 118.7MHz IF signal is filtered (L9, L10 and L11) and amplified (BFX89). The second mixer is a simple dual-gate MOSFET mixer (BF981). The selectivity provided by the tuned circuits at 118.7MHz (L9, L10 and L11) and at 10.7MHz (L12) is already comparable to the GLONASS C/A-code signal bandwidth (1.2MHz). In fact, L12 already requires damping resistors to achieve the required bandwidth.




The GLONASS IF converter is built on a single-sided board as shown on Fig. 30. The location of the components is shown on Fig. 31. Due to the limited space all of the resistors are installed vertically. The capacitors are conventional ceramic discs (except for 100uF) with a pin spacing of 5mm. Capacitive trimmers 4-20pF are a plastic foil type of 7.5mm diameter, marked with a green body. There is also a wire jumper marked with "A".




The BFX89 is used as an universal RF transistor like in the GPS IF converter. Also the BF981 is installed just like in the GPS IF converter module and a TO-220 case 7805 regulator is recommended so that no heat sink is required.

The GLONASS IF converter includes several inductors. Most of them are air-wound, self-supporting coils wound with copper enamelled wire of 0.5mm diameter. The turns of these coils are not spaced and the leads go straight through the printed-circuit board without any additional bending or forming. In these way the coils themselves have about 1/4 of a turn less than specified in the following paragraph.

L5, L6 and L7 have 4 turns each wound on a 3mm inner diameter. L9, L10 and L11 have 4 turns wound on a 4mm inner diameter. L13 and L14 have 5 turns wound on a 4mm inner diameter. L14 has an additional coupling loop of one single turn around the main winding.

L1, L2, L3, L4 and L12 are wound on standard cores for IF transformers (Toko or Mitsumi) with the external dimensions of 10mmX10mm. L12 should have about 4.5uH and in practice this means 15 turns of 0.15mm diameter copper enamelled wire on a 10.7MHz IF transformer core set including a fixed central ferrite core, an adjustable ferrite cup, various plastic support parts and a metal shielding can. L2, L3 and L4 should have about 0.13uH and in practice have 3 turns of 0.3mm diameter copper enamelled wire on a 36MHz IF transformer core set including a plastic support with a central adjustable ferrite screw, a plastic cap and a metal shielding can.

The exact value of L1 depends on the crystal used and the frequency required. In all of the prototypes built inexpensive computer crystals designed for 18000kHz, series resonance, were used. These require a small inductance in series to compensate for the feedback capacitors of the oscillator network. In practice about 2uH were required, corresponding to 16 turns of 0.15mm diameter copper enamelled wire on a 36MHz IF transformer core set.

Finally, L8 is a VK200 "six-hole" ferrite choke and L15 is a 100uH "molded" choke.

The GLONASS IF converter module has several connections. The two cables carrying the 118.7MHz IF from the RF module and the 162MHz LO to the PLL synthesizer converter are all soldered directly to the bottom side of the IF converter module. The 10.7MHz IF output, the 18MHz clock output and the +12V supply voltage are available on a 7-pin connector obtained from a piece of a good-quality IC socket with round contacts.

In the GLONASS IF converter module the multiplier stages should be aligned first, just like in the similar GPS module. However, only the output of the first multiplier stage to 54MHz can be monitored as a dip of the following stage base voltage. The output of the 108MHz multiplier may be observed as a dip in the drain voltage of the BF981 mixer, while the output of the 162MHz multiplier may be measured as the rectified voltage by the SRD multiplier in the PLL synthesizer converter.

The signal circuits (L9, L10, L11 and L12) are best adjusted after the receiver is completely assembled, since the following IF amplifier has a S-meter output. A grid-dip meter can used as a signal source at 118.7MHz. The trimmers in parallel to L9, L10 and L11 tune almost to their maximum capacity. The final adjustment of the signal circuits is best performed on a real GLONASS signal obtained from a directional antenna (a 15 turn helix or a small dish) pointed to a GLONASS satellite.

Finally, the crystal oscillator should be adjusted to the exact frequency required by the software. For the current version V39 the exact frequency is 18000.000kHz, but this may change in the future. The exact frequency is specified in the program listing.

4.7. GLONASS PLL synthesizer converter

A single-channel GLONASS receiver requires a fast-settling frequency synthesizer, since the receiver is continuously switching among different frequency channels. Besides this requirement the synthesizer should have a low phase noise. To limit group-delay variations the synthesizer should supply a variable frequency already to the first downconverter.

All these requirements ask for a PLL synthesizer with a frequency downconverter in the feedback loop, to decrease the divider modulo and increase the loop gain. Therefore, the GLONASS PLL synthesizer includes a VCO in the RF module, a downconverter and conventional PLL synthesizer logic like variable modulo dividers and a frequency/phase comparator.

The circuit diagram of the GLONASS PLL synthesizer converter is shown on Fig. 32. The circuit includes another buffer stage for the VCO signal around 1490MHz, a step-recovery diode (SRD) frequency multiplier by 9, to get 1458MHz from the available 162MHz, a mixer diode and an IF amplifier stage. The VCO buffer stage (BFR90) is required to avoid getting any unwanted spurious signals back in the GLONASS RF module.




The SRD multiplier uses a very inefficient silicon PN-junction diode 1N4148. Other diodes like VHF TV tuner bandswitching diodes (BA182 or BA482) provide an up to 20dB stronger signal at 1458MHz in the same circuit, but a higher signal level is not required here and it is even harmful, since it may get in the RF module and cause unwanted mixing products. In practice it is thus convenient to keep the 1458MHz signal level low and drive the mixer diode into the nonlinear region with the 1490MHz VCO signal.

To avoid any spurious generation all signal levels are kept low. Even the buffered VCO signal amounts to only a few hundred mV on the mixer diode HP2900 (or BA481) while the 1458MHz signal level is much lower. To operate efficiently at low signal levels the mixer diode receives a DC bias current.

The PLL IF signal then needs much amplification to reach the TTL level required by the variable-modulo counter. The first PLL IF amplifier stage (BFR90) is built in the PLL converter module. The following PLL IF amplifier stages are located in the PLL synthesizer logic module for shielding purposes, since harmonics of the PLL IF fall in the first IF (118.7MHz) frequency range of the described GLONASS receiver.




The GLONASS PLL synthesizer converter is built in microstrip technology on a double-sided board made of 1.57mm thick glassfiber-epoxy. The upper side is shown on Fig. 33 while the lower side is not etched. The location of the components is shown on Fig. 34. Before installing the components, the resonators of L1, L3 and L4 should be grounded by soldering short pieces of 1mm diameter copper wire at the marked locations. The transistors and diodes are installed in 6mm diameter holes in the printed circuit board.




L2, L5, L7 and L8 are quarter-wavelength chokes. These are made from about 6cm of 0.15mm thick copper enamelled wire, tinned for about 5mm at each end. The remaining wire is wound on a 1mm inner diameter and the finished chokes are small self-supporting coils. L6 is a self-supporting coil with 3 turns of 0.5mm diameter copper enamelled wire wound on a 3mm inner diameter.

The microstrip filters in the GLONASS PLL synthesizer converter usually do not require any trimming. The 10kohm trimmer for the SRD bias current is usually set to 5kohm. The SRD multiplier will operate correctly if the rectified DC voltage by the 1N4148 diode amounts to about 2V.

4.8. GLONASS PLL synthesizer logic

To convert the frequency range form 1602MHz to 1615.5MHz down to 118.6875MHz, the VCO must operate in the frequency range from 1483.3125MHz to 1496.8125MHz. Subtracting 1458MHz in the PLL synthesizer converter, this frequency range is downconverted to 25.3125MHz to 38.8125MHz. The latter frequency range corresponds to integer multiples ranging between 45 and 69 of the GLONASS channel spacing of 562.5kHz.

The design of the PLL synthesizer logic is therefore straightforward and the corresponding circuit diagram is shown on Fig. 35. The PLL synthesizer logic includes a PLL IF amplifier, a variable modulo divider for the PLL IF, a fixed divider by 32 to obtain the 562.5kHz reference and a frequency/phase comparator.




The PLL IF signal in the range from 25MHz to 39MHz is first amplified to a TTL level in a two stage amplifier. The gain of this amplifier is set higher than required to have a considerable safety margin. The base bias resistor of the second stage may need some trimming although the suggested value of 2.2kohm will usually work.

The programmable modulo counter is built from two synchronous counters: a 74F161 and a 74HC161. A 74Fxxx counter is required in the first stage to operate reliably at the highest frequency, since the PLL IF may be several tens of MHz above 39MHz in the unlocked state!

The counter feedback network includes an inverter and a 74HC157 multiplexer. The modulo of the second counter (74HC161) is programmed directly. The modulo of the first counter (74F161) is set to 10 except during the last state of the second counter, when the 74HC157 switches the 74F161 preset inputs to the 4094 outputs. In this way setting the modulo of the second counter changes the whole divider modulo in steps of 10, while setting the modulo of the first counter during the last cycle only provides the single-count steps.

The 4094 is a 8-bit shift register with output latches. It is used as a serial-to-parallel interface driven by the computer. Of the eight available output lines, four are used to control the modulo of the 74HC161 counter and the other four to control the modulo of the 74F161 during the last cycle of the 74HC161. One should be especially careful when programming the modulo of the divider: the data is inverted and the first divider modulo should never be set too low to allow for the delays in the slower 74HCxxx logic!

The 18MHz master reference frequency is also amplified to TTL level in a single-stage amplifier (2N2369). A 74HC393 counter divides this frequency by four to obtain the 4500kHz sampling frequency and by 32 to obtain the PLL reference frequency. The 4500kHz signal is attenuated with a resistor network to limit spurious radiations. It is then amplified back to TTL level in the dedicated DSP hardware module.

The frequency/phase comparator is a charge-pump circuit including two D-flip-flops (74HC74), a feedback network with a NAND gate and charge-pump switches with Schottky diodes. The backlash problem is solved by making the charge-pump circuit faster than the feedback network. This does not make the phase detector linear yet, but provides a stable locking point for the PLL with no dead zone and produces a very clean synthesizer signal spectrum. An additional NAND gate provides a LOCK signal for test purposes.




The GLONASS PLL synthesizer logic is built on a single-sided printed circuit board as shown on Fig. 36. The location of the components is shown on Fig. 37. There are three wire jumpers on this board and two of them are installed below the 74HC157 multiplexer. A complex single-sided board also places some constraints on the installation of the resistors: those with a 10mm hole spacing are installed horizontally while the others are installed vertically to save space. All of the capacitors are ceramic with a 5mm pin spacing, including the 1uF (multilayer).




L1 is a commercial 100uH "molded" choke. The module has three connectors with 3, 4 and 7 contacts, made from pieces of good-quality IC sockets. The integrated circuits should be soldered directly on the board except for the 4094. It is recommended to install this IC on a socket so that it can be removed from the circuit and replaced by wire jumpers to be able to test the synthesizer without the computer running.

The GLONASS synthesizer logic may require a single adjustment: the bias resistor for the second PLL IF amplifier stage. This may be adjusted if the output DC voltage deviates much from 1.3V (with no input signal) or if the programmable counter does not operate reliably.

4.9. GPS/GLONASS second IF amplifier

Both GPS and GLONASS receivers require a limiting IF amplifier at the final IF frequency around 10MHz. The circuit diagram of this amplifier is shown on Fig. 38. The GPS/GLONASS second IF amplifier includes a first stage with a bipolar transistor BFX89 and a second stage with the integrated circuit CA3089.




The gain of the first stage is limited by the 22ohm resistor in the emitter circuit. The first stage is followed by a tuned circuit (L1) to limit broadband noise and avoid amplifying various spurious signals from the many oscillators inside a GPS or GLONASS receiver. The damping resistor in parallel with L1 sets the bandwidth of this tuned circuit to be comparable to the GPS or GLONASS signal bandwidth.

The second stage uses a popular FM IF strip integrated circuit. The latter provides wideband amplification and limiting, while the discriminator section of this integrated circuit is not used here. The limited IF output is available on pin 8 and the signal level amounts to a few hundred millivolts at 10MHz. This is not enough to drive the following TTL logic directly and the remaining gain is built inside the dedicated DSP hardware module.

The CA3089 integrated circuit includes a S-meter output. The latter is of little use during actual receiver operation, since the satellite signal levels are comparable to noise in the wideband IF. In the case of a GPS receiver, the S-meter output can only show the sum of all of the signals present. On the other hand, the S-meter output is very useful during receiver testing and alignment of the RF, first and second IF tuned circuits.

Both GPS and GLONASS receivers include a S-meter function inside the narrowband IF processing. Since the latter is done in software, the real receiver S-meter as displayed on the LCD is just another software function and is NOT related to the hardware S-meter output of the IF strip.




The GPS/GLONASS second IF amplifier is built on a single-sided printed circuit board as shown on Fig. 39. The location of the components is shown on Fig. 40. Due to the limited space all of the resistors are installed vertically. The capacitors are conventional ceramic discs (except for 22uF) with a pin spacing of 5mm.




L1 is wound on a 10.7MHz IF transformer core set including a fixed central ferrite core, an adjustable ferrite cup, various plastic support parts and a metal shielding can. The primary (resonant) winding of L1 has 10 turns of 0.15mm diameter copper enamelled wire, corresponding to an inductance of about 2uH. The secondary (link) winding has two turns of the same wire. L2 is a 100uH "molded" choke.

The second IF amplifier module has two connectors: a 2-pin connector for the input and a 5-pin connector for the output and supply voltage, obtained from pieces of a good-quality IC socket with round contacts.

The tuned circuit with L1 is best adjusted after the GPS or GLONASS receiver is completely assembled, finding the maximum DC voltage on the "test" S-meter output in the same IF module. The final adjustment of all signal circuits is best performed on a real satellite signal obtained from a directional antenna (a 15 turn helix or a small dish) pointed to an operating navigation satellite. A directional antenna should provide a higher-than-usual signal-to-noise ratio of more than 10dB already in the wideband IF. A high SNR is required to tune the circuits to the signal peak and not to noise or some spurious signals while observing the voltage on the "test" S-meter output.



4. Homemade receiver modules for GPS & GLONASS

4.10. GPS/GLONASS DSP hardware

The theory of operation of the dedicated GPS/GLONASS DSP hardware has already been discussed in 3.6. Therefore the practical implementation will only be described in the following paragraph.

The dedicated GPS/GLONASS DSP hardware is built as a peripheral plug-in module for the DSP computer [1], [2]. The circuit diagram of the GPS/GLONASS DSP hardware is shown on Fig. 41 and Fig. 42. The DSP hardware module includes two amplifiers for the limited IF signal and master clock coming from the analog part of the GPS or GLONASS receiver, a look-up table RAM, four signal-despreading mixers, four correlator counters, all of the timing logic to scan the look-up table and generate interrupts to the CPU and all of the interface circuits necessary for the DSP computer bus.





The input signal amplifiers are built with 74HC04 inverters to amplify the input signals of a few hundred millivolts up to TTL levels. In this way the signal levels in the analog part of the GPS or GLONASS receiver can be kept more than 20dB lower, reducing the shielding requirements. The supply voltage of the 74HC04 is additionally filtered to reject the disturbs usually present on the +5V computer bus power supply. The limited input signal is then sampled by a D-flip-flop (1/2 74HC74). Considering the relationship between the IF and the sampling frequency, the sampling operation also provides a third downconversion.

The look-up tables are stored in a 32kX8 static RAM. The RAM area is divided into 8 separate areas of 4kbytes each, selectable through a microprocessor output port. In this way the look-up table needs not to be rewritten when switching to another satellite. The receiver is usually time-multiplexed among four different satellites and all four different look-up tables are stored in the RAM. When switching to another satellite, the hardware is simply switched to another look-up table and this only requires executing a few instructions instead of rewriting the whole 4kbyte table.

The 4kbytes of each look-up table are written as bytes by the microprocessor. The microprocessor writes all of the bytes to the same location, since the address counter is incremented automatically after each write operation. In read mode the look-up table is scanned by the same hardware counter (74HC4040) clocked at half the sampling frequency (3069.5kHz for GPS or 2250kHz for GLONASS). The byte data is latched (74HC273) and then multiplexed to 4 bits (74HC157) to get all of the four required local signal replicas to be multiplied (EXOR 74HC86) with each input signal sample. Each look-up table may be thus up to 8192 samples long. The unused samples need not be written since they are not used by the hardware.

The dedicated DSP hardware requires six programmable counters: four correlation accumulators, a sampling frequency divider and a variable delay counter, all contained in two uPD71054 (82C54) integrated circuits. Each uPD71054 contains three almost independent 16-bit counters that can be programmed in different ways. For example, the four correlation counters are clocked with the same signal sampling frequency and the signals are fed to the GATE inputs, which are programmed as clock enables.

The signal sampling frequency (6139 or 4500kHz) is divided down to 1kHz to match the C/A-code period (1ms). This signal is also used to request interrupts from the CPU, since the correlation counters need to be read each millisecond. After receiving an interrupt request, the CPU will latch the content of all counters in a single bus operation and then read the latched content of every single counter in separate bus operations. The sampling clock divider is also latched and read and its content is used as an accurate timing reference.

Every interrupt request sets a flip-flop that needs to be reset by the microprocessor after the interrupt has been serviced. Interrupt arm (enable) and reset (disable) is performed through one (Q4) of the eight output-port bits provided by the 74HC259 addressable latch. Of the remaining 7 bits, three (Q1, Q2 and Q3) are used to select one of the eight look-up tables in the RAM and another bit (Q0) is used to select either write or read mode for the look-up table logic. The last three bits (Q5, Q6 and Q7) are used to control the GLONASS PLL modulo or as spares in a GPS receiver.

The bus interface to the DSP computer bus includes a bidirectional data-bus buffer (74HC245) and an address selection logic (two 74HC138s and 74HC10). The bus interface does not request any wait states from the MC68010 CPU. The address decoding for the uPD71054 programmable counters must allow simultaneous write operations to both control registers of both peripherals, to be able to latch the content of all of the counters exactly at the same time. Finally, the RESET signal is fed to the 74HC259 addressable latch essentially to prevent any interrupts or other unintended operations before the whole DSP hardware is correctly initialized.

The bus addresses are assigned as follows:

$E0001   - Disable look-up table write mode 
$E0003   - Enable look-up table write mode  
$E0009   - Look-up table address A2 reset 
$E000B   - Look-up table address A2 set 
$E0041   - Look-up table address A1 reset 
$E0043   - Look-up table address A1 set 
$E0049   - Look-up table address A0 reset 
$E004B   - Look-up table address A0 set  
$E0081   - Reset & disable 1ms interrupt 
$E0083   - Enable 1ms interrupt 
$E0082   - Reset & enable 1ms interrupt, long transfer!  
$E0089   - GLONASS PLL modulo STROBE reset 
$E008B   - GLONASS PLL modulo STROBE set 
$E00C1   - GLONASS PLL modulo DATA reset 
$E00C3   - GLONASS PLL modulo DATA set 
$E00C9   - GLONASS PLL modulo CLOCK reset 
$E00CB   - GLONASS PLL modulo CLOCK set  
$E800B   - Common WRITE to both 71054 command registers  
$E8041   - 71054 #1 CTR0 - data 0,4 accumulator 
$E8043   - 71054 #1 CTR1 - data 1,5 accumulator 
$E8049   - 71054 #1 CTR2 - data 3,7 accumulator 
$E804B   - 71054 #1 command register  
$E8081   - 71054 #2 CTR0 - variable C/A-code delay 
$E8083   - 71054 #2 CTR1 - GPS /6139 or GLONASS /4500 clk 
$E8089   - 71054 #2 CTR2 - data 2,6 accumulator 
$E808B   - 71054 #2 command register  
$F8001   - WRITE byte to look-up table 

However, one should notice that the remaining addresses in the range from $E0000 to $FFFFF are not fully or correctly decoded, although the module will acknowledge the access to the MC68010. Accessing other addresses in this range (either reading from or writing to) will probably cause an erratic operation of the module. The 74HC259 addressable latch is programmed by writing to the specified locations. Since only the address is important and the data is ignored, CLR.B instructions are used to write to single bytes and a CLR.L instruction is used to reset and arm the interrupt flip-flop.





The dedicated DSP hardware module is built on a double-sided printed-circuit board as shown on Fig. 43 and Fig. 44. The location of the components is shown on Fig. 45. The single resistors, diodes and the 100uH choke are installed horizontally. The eight 10kohm resistors are in a single 9-pin SIL package. The capacitors are ceramic except the 10uF "tantalum drop" and all have a pin spacing of 5mm.




The 74HC4040 should NOT be replaced by a standard 4040 device, since the latter is too slow for a correct operation in the described circuit. To allow an eventual troubleshooting it is recommended to install at least the two 71054 counters and the 43256 RAM on good-quality sockets. The speed of the RAM is unimportant, since even the slowest 150ns static RAMs are fast enough for this project.

The dedicated DSP hardware module is inserted in the DSP computer bus with a 64-pole "eurocard a+c" connector. The remaining connectors include a 5-pin socket for the input IF signal and clock, a 4-pin socket for the GLONASS PLL modulo control and a 8-pin socket for the interrupt selection. All of these are made from parts of good-quality IC sockets.

The dedicated DSP hardware module only includes logic circuits that require no alignments.

4.11. GPS/GLONASS portable receiver CPU

The described GPS or GLONASS receiver can be built as an interface for the DSP computer [1] and [2] or as a stand-alone, portable receiver. In the latter case the receiver needs its own microcomputer with a keyboard and a LCD display. After considering several possible alternatives, the simplest solution resulted in using a suitably modified CPU board as described in [1] and [2] as the microcomputer.





The circuit diagram of the modified CPU board is shown on Fig. 46 and Fig. 47. Since a GPS or GLONASS receiver is a portable device, the power consumption is important and 74HCxx logic devices should be used everywhere. This allows to omit three 3.3kohm pull-up resistors. The original DSP computer CPU board requires the following modifications:

(1) The pads below the EPROM socket should be connected so that pin 27 receives the A14 
signal required by the 27C256 EPROM. Originally this pin is connected to +5V, using a 
27128 EPROM. (2) The RAM should be increased from 64kbytes up to 128kbytes. 
This is achieved by piggy-back soldering two additional 43256 RAM chips on top of the existing 
two RAM chips on CPU board. All pins of the additional RAMs are connected in parallel with the 
existing RAM pins except for pin 20 (chip select). The two chip-select pins of the added RAM 
chips are then wired to pin 11 (Q4) of the middle 74HC138 address decoder. (3) A HSCH1001 
Schottky diode should be connected between pin 11 (Q4) of the top 74HC138 address 
decoder and the DTACK signal (pin 12 of the 74HC05), to acknowledge the additional RAM 
chips to the CPU. 

The keyboard connection remains unchanged. The total/partial reset switch has a new function with the GPS or GLONASS software. In the case of a stand-alone, portable receiver, this input should always be left open (+5V)!

The parallel output port (uPD71055 channel B) is now used to command the HD44780 LCD controller. Since there are only 8 output bits available, the HD44780 is driven in the 4-bit mode, write only. The real-time clock chip uPD4990 is required by the GPS or GLONASS software and must remain in place. The INT7 jumper must remain in place for keyboard interrupt requests while the INT1 jumper is no longer needed, although it may remain in place.





The printed circuit board is not modified, as shown on Fig. 48 and Fig. 49. The additions and modifications are well visible on the component location plan on Fig. 50. The connections of the 8-key keyboard and of the LCD controller are also shown on Fig. 50.




It is recommended that the CPU board is tested first, if possible, in a DSP computer and the described modifications are only applied to a 100% tested and working CPU board. In particular, the CPU board should be tested at higher clock frequencies to find any defective components. A 10MHz version of the MC68010 will usually work up to 15MHz clock frequency at room temperature, so a 12MHz clock crystal is a safe choice. The GPS or GLONASS software does not require such a high clock frequency, but the accuracy of some measurements is higher and the updating of the display is faster at higher clock rates.

4.12. 8-key keyboard

A portable GPS/GLONASS receiver requires a small keyboard to issue commands to the computer. Since a full ASCII keyboard is unpractical for a portable piece of equipment, a small 8-key keyboard was developed for portable receivers.




The circuit diagram of the 8-key keyboard is shown on Fig. 51. The 8 keys close towards ground, otherwise the input lines are held high by pull-up resistors. A priority encoder (74HC148) is used to encode the 8 keys into 3 bits. A double monostable (74HC4538) is used to generate the strobe pulse after a key is depressed.




The 8-key keyboard is assembled on a small single-sided printed circuit board shown on Fig. 52. This printed circuit board was designed to fit on the front panel of the receiver and carry eight square (12.7mmX12.7mm) pushbuttons. The location of the components is shown on Fig. 53. Due to the space constraints all of the components should have a low profile and small dimensions. The capacitors have a 2.5mm pin spacing and the resistors are installed horizontally. The eight 10kohm resistor network in a SIL package should be first soldered in place and then bent towards the circuit board. The 6-pin connector is installed on the back - solder side of the board!




The GPS/GLONASS receiver software only accepts ASCII characters from $30 to $37 as commands, corresponding to numerals 0 to 7. These can be generated by a standard ASCII keyboard with a parallel output or by suitably wiring the described 8-key keyboard. In particular, to obtain the codes between $30 and $37, the outputs D0, D1 and D2 should be wired to the corresponding inputs on the CPU board. In addition, D3, D6 and D7 should be connected to ground and D4 and D5 to +5V. All these connections, including the supply rails and the strobe signal, were already shown on Fig. 50.

4.13 LCD display module

The only practical display for a portable GPS/GLONASS receiver is a LCD module with built-in drivers. Such modules are available in many different sizes and shapes and may or may not be equipped with a display controller. LCD modules with a built-in controller are easy to use, since the interfacing to any microprocessor is very simple: it is identical to a parallel I/O port.

Most small dot-matrix alphanumeric LCD modules use the Hitachi HD44780 LCD controller. This integrated circuit has a built-in, extended ASCII character generator, a display area RAM including up to two rows of 40 characters each and all of the timing circuits to drive the LCD. Modules using the HD44780 controller may have a different number of characters per row or rows displayed, the total number of characters is however limited by the internal RAM to 80. Since the HD44780 SMD flat package has only 80 pins, additional LCD driver chips (HD44100) are used in most LCD modules.

A LCD module with two lines of 40 ASCII characters each was selected for the described GPS/GLONASS receiver. Such a LCD module includes the liquid-crystal display itself, one HD44780 LCD controller and four HD44100 LCD drivers. Further, the display module may include some form of illuminating the LCD, either EL foil or LED. The latter is recommended if the GPS/GLONASS receiver is to be used at night as well.

Although such display modules are available from several different manufacturers, they all have the same dimensions of the carrier printed circuit board: 182mm(width)X X33.5mm(height)X13mm(thickness) and the same 14-pin electrical connector. The pin numbers are usually marked on the printed-circuit board and the pin allocations are as follows:

pin  1    Vss    Ground pin  2    Vdd    +5V supply pin  3    Vo     LCD voltage, tap of the contrast 
control pot pin  4    RS     Register Select, 0=instruction, 1=data pin  5    R/W    Read/Write, 0=write, 
1=read pin  6    E      Enable, 0=inactive, 1=active pin  7    DB0    LSB data, 
8-bit bus pin  8    DB1 pin  9    DB2 pin 10    DB3 pin 11    DB4    LSB data, 
4-bit bus pin 12    DB5 pin 13    DB6 pin 14    DB7    MSB data 

EL or LED backlight may have two additional pins on the connector or solder pads on the printed-circuit board.

When LCDs are driven in time multiplex, the adjustment of the voltage applied to the LCD is critical to obtain a good contrast. A contrast control potentiometer is usually provided to adjust the best available contrast for a given viewing angle of the LCD. This potentiometer provides the Vo voltage to the LCD module. Modern LCD modules require operating voltages of less than 5V, so the resistor terminals can be conveniently connected to ground and to +5V while the tap is connected to the Vo input.

Due to the internal circuits of the LCD controller and driver chips, the internal LCD ground is Vdd (+5V). The voltage across the LCD equals the potential difference between Vdd and Vo. The current through the Vo terminal is very small, so a 10kohm potentiometer with a linear taper is sufficient for the LCD contrast control.

If using a LCD module with an EL foil backlight, a suitable power supply needs to be built. The EL foil usually requires a supply voltage of about 110V at about 500Hz. The EL foil behaves electrically as a lossy capacitor. The voltage across its terminals affects the amount of light produced while the frequency affects the colour of the light.




A suitable power supply is shown on Fig. 54 and includes a power oscillator (555), a step-up transformer and a few EMI filtering components. For 500Hz operation a conventional mains transformer with a laminated core can be used, either 220V/9V or 220V/6V, of course with the primary and secondary windings interchanged. A 1.2W or 1.5W transformer is usually the smallest available, although it is still quite large for this application.




The printed-circuit board for the EL foil supply is shown on Fig. 55 and the related location of components on Fig. 56. The power drain of the whole circuit is about 50mA from a 12VDC power supply, when the output is connected to the load. Since the oscillator feedback is taken from the output (pin 3 of the 555), some 555 ICs may not operate in a stable way in this circuit. In the latter case the solution is to increase the oscillator frequency by decreasing the 100nF capacitor.




Of course, a LED backlight is much easier to use and usually only requires a 5VDC supply.

4.14. Power supply & RESET circuit

The described GPS/GLONASS receiver is intended to be operated from a 12V battery, with the negative grounded. This supply voltage is common to all portable and mobile equipment. The analog circuits of the GPS/GLONASS receiver are already designed to operate from a +12V supply rail, since this voltage represents a convenient choice.

Of course, digital circuits require a +5V supply voltage. But besides the +5V supply there are other requirements. A GPS or GLONASS receiver should include a real-time clock that operates even when the receiver is powered down. Similarly, the almanac data including information about the available satellite orbits should be stored in the computer memory when the receiver is powered down. Finally, since the +5V power drain amounts to about one half of the total power drain of a GPS or GLONASS receiver, the +5V supply regulator should also have a good efficiency, especially in a portable receiver.




The requirements for the microcomputer power supply are therefore the same as for the DSP computer published in [1] and [2]. The original DSP computer power supply is however about 10 times too large for this application, so a scaled-down version is shown on Fig. 57. The latter includes a switching regulator from 12V to 5V, a memory (clock) backup battery and a very reliable RESET circuit.




The microcomputer power supply is built on a single-sided printed circuit as shown on Fig. 58. The corresponding location of components is shown on Fig. 59. All of the resistors, diodes and chokes are installed horizontally. All of the capacitors have a 5mm pin spacing. Several mounting holes and related pads are provided for different style NiCd batteries.




The power supply is designed for a 400mA to 500mA load on the +5V output. For this load the BD138 power switch does not require a heatsink yet and easily available "molded" chokes can be used in the switching regulator. In particular, a 100uH choke with the external dimensions of a 1/2W resistor will withstand a current of up to 200mA to 300mA, so two such chokes are used in parallel in the switching regulator.

The total power drain when using the described power supply and including the analog section, amounts to about 4W for a portable GPS receiver and to about 6W for a portable GLONASS receiver, both with the LCD backlight off.

4.15. GPS/GLONASS receiver module location

A GPS or GLONASS receiver includes both low-level RF signal amplification and processing and very noisy digital circuits, so the module location has to be selected carefully and some shielding is required in any case.

In the case of a GPS or GLONASS receiver operating as a peripheral for the DSP computer, the RF part of the receiver should be built in its own enclosure while the dedicated DSP hardware module is plugged in the computer bus. Of course it is assumed that the computer already has its own shielded enclosure.

The GPS-receiver RF part needs no additional internal shields among the three modules: RF, IF converter and IF amplifier. The GLONASS-receiver RF part is more complicated and requires some shielding. In particular, the GLONASS PLL synthesizer logic needs to be well shielded from the remaining modules: RF, IF converter, IF amplifier and PLL converter.

In the case of a stand-alone, portable GPS or GLONASS receiver it is of course desirable to have the complete receiver packaged in one single enclosure. It is suggested that enclosure is made of unpainted aluminum sheet to have a good electrical contact among the various parts. Such a container is made of a rectangular frame and two covers installed with self-locking screws. The frame has an additional internal plate that divides the internal volume in two sections shielded both from the outside and between themselves. One of the sections is used for the noisy digital circuits and the other for the low-level RF stages. "Interference-neutral" modules, like the keyboard or the power supplies may be installed in either section.

The suggested module location for a portable GPS receiver is shown on Fig. 60. The suggested dimensions are 200mm(width)X160mm(depth)X80mm(height). The internal plate is installed at a height of 30mm, so that the digital section gets a volume of 200mmX160mmX50mm (top) and the analog section gets a volume of 200mmX160mmX30mm (bottom). The internal plate is screwed on the frame on all four sides with many screws to ensure a good electrical shielding.







The two modules with 64-pole "eurocard" connectors are installed on a short bus "motherboard" with just two female connectors with the corresponding pins tied together. The bus can be made by cutting a piece of the DSP computer bus board or by simply installing the two connectors on a piece of an universal board with holes in a uniform 0.1" raster.

The connections between the analog and digital parts do not require feedthrough capacitors if they are routed carefully, away from sensitive or very noisy components. Sometimes it results useful to additionally ground the shields of coaxial cables when crossing the internal plate.

The suggested module location for a portable GLONASS receiver is shown on Fig. 61. The suggested dimensions are 240mm(width)X160mm(depth)X80mm(height). The internal plate is installed at a height of 30mm, so that the digital section gets a volume of 240mmX160mmX50mm (top) and the analog section gets a volume of 240mmX160mmX30mm (bottom). Like in the GPS RX the internal plate is screwed on the frame on all four sides. In addition there is a small shield between the RF module and the remaining modules in the analog part. On the other hand, in the GLONASS receiver the computer power supply is installed in the digital section, together with the PLL synthesizer logic.








5. GPS & GLONASS receiver software




5.1. GPS/GLONASS receiver software overview

Satellite navigation is one of the first applications that totally depends on the availability of suitable computers and the corresponding software. Although initially the digital computer was only intended to solve the navigation equations, other tasks were being gradually added to simplify the hardware in front of and behind the computer itself. In the described GPS/GLONASS receiver even most of the signal processing is performed in software, just to keep the analog front-end and dedicated DSP hardware as simple as possible.

The software running in a GPS or GLONASS receiver is therefore very complex and includes a variety of very different functions. For example, digital signal processing requires quick but simple integer arithmetics while solving the navigation equations requires high-accuracy floating-point arithmetics. The latter does not need to be as quick as the former signal processing, but a considerable number of operations still need to be performed in a limited amount of time.

To make a fair comparison one should consider the development time for the hardware and for the software. In the case of the described navigation receiver, the development of the software required between two and three times the amount of time required to develop the hardware!

Unfortunately it is much more difficult to describe down to the smallest detail the software than the hardware. For the hardware one can draw the circuit diagrams and prepare detailed parts lists. On the other hand, detailed descriptions of the software tend to become boring and minor details tend to hide the real problem being solved.

Therefore only the major functions performed by the software will be described in this article. These include signal acquisition and processing, almanac and precision ephemeris data collection, time and frequency measurements, solving the navigation equations and data display in a suitable format for the user. At the end the user interface: display menus and user commands, will be described in detail.

The overall software is written in different languages due to the differing functions to be performed: MC68010 assembly language, DSP computer high-level language and even directly in machine code.

The digital signal processing software is written in the MC68010 assembly language. The corresponding file has the extension .ASM. This file is first compiled into machine code and then into hexadecimal format, so that it can be easily inserted in the DSP computer high-level language.

The orbital mechanics and navigation equation part is written in the DSP computer high-level language. The latter supports a floating-point format with a 32-bit mantissa and a 16-bit exponent. A 32-bit mantissa is generally sufficient considering the accuracy of the data obtained from the GPS or GLONASS satellites. The corresponding file has an extension .SRC and can be compiled into an .EXE file and executed on a DSP computer equipped with the described dedicated DSP hardware board, but with an unmodified CPU board!

In a portable GPS/GLONASS receiver all of the software is stored in a 27C256 EPROM. The latter includes a starting program, the high-level language compiler and a version of the .SRC file with all of the comments and other unnecessary symbols removed. When the portable receiver is turned on, the program will be compiled in the RAM. This operation takes around 10 seconds and is necessary to save EPROM space, since the compiled program in the RAM takes around 100kbytes.

The present discussion applies to the current software versions V122 (GPS) or V39 (GLONASS). When running the software on a DSP computer, the type of display may be selected by the TOTAL/PARTIAL RESET switch while starting the program: switch open (TOTAL RESET) selects the LCD while switch closed (PARTIAL RESET) selects the CRT display. Of course the LCD can only be selected in a stand-alone, portable receiver and the corresponding input on the CPU board MUST BE LEFT OPEN!

5.2. Real-time tasks: signal acquisition & processing

The signal acquisition and processing tasks run under the 1kHz interrupts requested by the dedicated DSP hardware module. The tasks include the multiplexing of the single-channel hardware among four different satellites, the C/A-code synchronization acquisition and tracking, the carrier lock acquisition and tracking, the 50bps navigation-data demodulation, bit synchronization and frame synchronization with parity check and finally the averaging of the measured code phase, code rate and carrier frequency.

After an interrupt request is received from the dedicated DSP hardware, the interrupt-servicing routine will first latch the content of all of the counters in the dedicated hardware. It will then read the latched content and reset and arm the interrupt request flip-flop. The hardware counters are never reset. The actually integrated value is computed from the difference between the actual counter content and the previous sample content. The four differences are further normalized using the result from the reference 1ms divider. Finally, the interrupt-servicing routine also increments a 32-bit millisecond counter, which is later used to relate the measurements to the 50bps navigation data.

The single-channel hardware is multiplexed among all of the satellites received. However, due to the limitations of the hardware, switching to another satellite will corrupt one millisecond of data. Therefore, the basic multiplexing period includes one millisecond to switch the hardware followed by 8 milliseconds to collect the data from a given satellite. After this 9-millisecond period the hardware is switched to another satellite. The multiplexing rate is therefore 111 hops per second.

The multiplexing rate and especially the multiplexing sequence have to be chosen carefully. The navigation data is transmitted at a speed of 50bps, so one bit is 20ms long and lasts exactly 20 interrupt periods. If the navigation data is to be collected from a given satellite, then this satellite should get at least a few 1ms samples of data from each 20ms bit period. Further, the multiplexing period should not be an integer submultiple of the bit period, so that the bit transitions can be detected.

Considering the limitations of the single-channel hardware, the multiplexing sequence can not allow collecting the navigation data from more than two satellites at a time. In practice, since four satellites need to be received for a navigation solution, the navigation data can only be collected from a single satellite at a time using half of the single-channel hardware time. The remaining hardware time is split among the remaining three satellites. The privileged satellite that gets more hardware time of course needs to be periodically exchanged to allow collecting the navigation data from all four satellites.

There is yet another constraint on the multiplexing sequence. If a certain satellite only gets a few sampling periods, then false locks of the carrier recovery loop become very likely. In order to avoid this, the following multiplexing sequence is used in the described GPS/GLONASS receivers (1 = privileged satellite, 2, 3 & 4 = others):

121213141412131314 121213141412131314 ... 

The complete multiplexing sequence therefore repeats after 18 multiplexing periods or 162 milliseconds.

The C/A-code synchronization is always obtained from the signal magnitude obtained from the dedicated hardware. The signal phase information is intentionally not used for this purpose since the carrier phase lock is a much more critical operation. Therefore, for the C/A-code synchronization, the early and late magnitudes are computed from the related I and Q sums for every 1ms accumulation period. These sums are then averaged over the 8 milliseconds containing valid data in a 9-millisecond multiplexing period.

The initial state of the receiver is unlocked and the C/A-code synchronization acquisition has to be obtained first. The hardware variable delay will therefore be scanned through all possible C/A-code phases (1023 for GPS and 511 for GLONASS) by incrementing the variable-delay counter in suitable steps (6 for GPS or 9 for GLONASS). When a signal magnitude above threshold is detected, the software switches to the synchronization maintaining routine. A suitable time constant is built-in to prevent the loss of lock on short signal interruptions. In the synchronization-tracking mode, the software performs as a second-order phase-locked loop, computing the C/A-code phase and rate from the measured early-minus-late difference.

The signal carrier still includes the 50bps 0/180 BPSK navigation data, so a Costas-loop demodulator is required to obtain both the regenerated carrier for doppler measurements and the 50bps navigation data. The Costas-loop demodulator operates on every 1ms signal sample I & Q components computed as an average of the early/late data. The loop feedback is a second-order network computing the carrier phase and frequency.

The carrier-lock operation is not simple. Initially, the whole frequency range from -500Hz to +500Hz is scanned. To prevent false locks, the scanning is stopped only when the residual loop error becomes small enough. Finally, the locking point needs to be checked for the +/-500Hz ambiguity caused by the 1kHz sampling rate. The latter ambiguity is resolved by counting the number of transitions in the demodulated data stream in every 8 milliseconds of valid data in a multiplexing period. Since valid GPS data only has transitions every 20ms (GLONASS every 10ms), there can be at most one transition in 8ms of data. If the frequency is wrong, there are at least 6 transitions and this can be detected easily.

Of course, the phases of both code and carrier PLLs need to be adjusted for the following multiplexing period, accounting for all of the time spent by the hardware processing the signals from other satellites.

In a navigation receiver the code phase and the carrier frequency are the main parameters to be measured and these are supplied by the corresponding phase-locked loops. In addition to this, the code rate is also used by the software to compute a rough approximation for the carrier frequency and eliminate the ambiguity caused by the 1kHz signal sampling rate. Before further processing, the code phase, code rate and carrier frequency are averaged over 16 multiplexing periods corresponding to a time span of 288ms (privileged satellite) or 864ms (other satellites). The averaged measurements are placed in a FIFO memory together with 1ms time tags, to be read by the main program.

The last task performed by the interrupt routine is navigation data processing. The latter includes yet another PLL for bit synchronization. This PLL locks on the transitions in the data stream. The demodulated 1ms samples containing the transitions are rejected while all of the other available samples for a given satellite are accumulated into bits (GPS) or half-bits (the GLONASS manchester phase is not known yet).

The following navigation data processing depends on the data format and this is slightly different between GPS and GLONASS. The GPS data is formatted into 30-bit words containing 24 true data bits and 6 parity-check bits. The word synchronization is obtained by checking the parity bits, including the last two bits of the previous word, for any possible word phase. The BPSK polarity ambiguity is also resolved by the parity bits. The synchronized and checked GPS data words are placed in another FIFO memory together with 1ms time tags, to be read by the main program.

The GLONASS data is formatted into lines with 85 data bits in manchester format and a non-manchester sync pattern, for a total duration corresponding to 100 bits. The sync pattern is not used in the described GLONASS receiver. The synchronization is obtained by checking the 8 parity bits for any possible half-bit phase (200 possible phases), to resolve the manchester phase ambiguity as well. Since the data bits are differentially encoded, there is no polarity ambiguity to be resolved. Like in the GPS receiver, the correctly received data lines are placed in another FIFO memory together with 1ms time tags, to be read by the main program.

5.3. Main program loop tasks

Since most of the functions performed by the main program loop require high-accuracy floating-point arithmetics, the main program is mainly written in the DSP computer high-level language. Of course all of the interfaces to the interrupt routine and to the various peripherals (initialization of the dedicated DSP hardware, LCD drive, real-time clock chip) are at least partially written directly in the MC68010 machine code and are inserted in hexadecimal format in the program source code.

The main program loop executes once for every new set of averaged measured data. The latter is available every 864 milliseconds for the three satellites that get less hardware time. The privileged channel supplies three separate sets of averaged data in the same time period, but the excess data is not used by the main program loop.

The main program loop also updates the LCD or writes a new line on a CRT display. The internal operation of the program is however independent of the selected menu on the display. The menu only affects the keyboard functions and some computations closely related to the format of the displayed data, like coordinate conversions.

The first task of the main program loop is to write the look-up tables in the dedicated DSP hardware memory. This operation is done at receiver power-up, when changing satellites, when adjusting the carrier frequency (in 1kHz steps) or when switching the privileged satellite. The satellites can be selected manually, but usually the software is set to automatically select visible satellites.

When a given satellite is selected, the receiver requires some time to lock on its signal. The software will first look for all possible C/A-code phases. If the lock is not achieved, the main program loop will change the hardware look-up table frequency in 1kHz steps in a given frequency range (20kHz in the GPS receiver or 25kHz in the GLONASS receiver). Of course the look-up table frequencies for all four satellites can also be preset manually.

The look-up tables are rewritten when switching the privileged satellite for several reasons. When all four satellites have been acquired, this happens every minute, synchronized to the major data frames transmitted every 30 seconds from both GPS and GLONASS satellites. Since switching the privileged satellite includes some loss of data, other operations that corrupt the data, like rewriting the look-up tables, may be performed at the same time without any additional losses. The look-up tables are rewritten to correct for large variations of the doppler shift or local reference oscillator drift. Further, the new look-up tables are rewritten with a randomly chosen phase relationship between the carrier phase and code phase, to avoid any possible interferences between the carrier and the code when averaging the measured data over a longer period of time.

The main loop will then process all of the navigation data accumulated in the corresponding FIFO memory. The software looks for the frame sync and formats the data into frames. Additional checks are made before the formatted data is used. Correctly received frames are used to collect the precision ephemeris orbital data for the given satellite, to update the almanac containing less accurate data about the whole satellite navigation system and to set the GPS/GLONASS receiver real-time clock chip.

The next task is to collect the code phase and carrier frequency measurement results from the corresponding FIFO memory. The most recent data is always used together with the previous sample to relate all of the data to a single time point using linear interpolation. This simplifies the following computations, since the positions and velocities of all four satellites need to be calculated for a single point in time.

The measured data and the satellite positions and velocities (computed from the precision ephemeris data) are then assembled into the navigation equations. A set of three time-difference navigation equations is obtained from code-phase differences and another set of three doppler-difference navigation equations is obtained from carrier-frequency differences.

The time-difference navigation equations are solved first, using the Newton's method. The starting point is taken in the Earth's center (x=y=z=0). From this starting point the Newton's method requires between three and four iterations to converge to the final result for a user located on the Earth's surface. The result in Cartesian coordinates x,y,z is then converted to longitude, latitude and height.

The position obtained may now be corrected for the propagation anomalies in the ionosphere and troposphere. The present software does not apply any correction for the ionosphere. The navigation equations are only corrected for the troposphere at the calculated height and the Newton's method is iterated once again to obtain the final result.

Since the position is already available from the time-difference navigation equations, the doppler-difference navigation equations are solved to obtain the velocity of the user. Solving the doppler-difference equations for the velocity does not require a numerical iterative method, since the equations result linear for this unknown. The computed velocity vector is converted into magnitude, azimuth and elevation on the display.

The accuracy of the navigation solution depends on the geometry of the satellites. In place of the GDOP the software only computes the determinant of the linearized system of equations at the calculated position. This determinant is a dimensionless quantity. The higher the determinant, the more accurate the solution. If the determinant is too low, an error condition is signalled. The doppler-difference equations have the same determinant if solved for velocity.

The main program loop also performs data averaging. Both position and velocity are averaged. Only good data with no error signalled is added to the average. The determinant of the system of equations is used as a weight for each new data set added to the average. Of course the averaging buffer may be manually reset if desired.

The display includes several different menus and two of them are devoted to the immediate and averaged data. The position may be displayed in different formats: degrees only, degrees, minutes and seconds or Gauss-Krueger rectangular grid. Other menus are used to show the receiver status and the almanac data.

Finally, the main program loop usually also performs an automatic satellite selection. This function is triggered if an error condition is signalled continuously for a certain period of time (100 main loops). The software then uses the almanac data and the real-time clock to find the visible satellites at the averaged user location. The receiver is then programmed for the four visible satellites with the highest elevations on the sky. Although this procedure does not yield the best GDOP, its operation is foolproof.

5.4. Software menus and commands

Since a portable GPS/GLONASS receiver only has a small keyboard with a few keys and a small alphanumeric display, the various user commands need to be arranged into several different menus. The organization of the commands in the different menus is shown on Fig. 62.





The keyboard has 8 different keys. Four of them (corresponding to ASCII characters "4", "5", "6" and "7") are used to select the four main menus. Depressing these keys only changes the content of the display and the functions of the other keys, but does not affect the internal operation of the GPS/GLONASS receiver. Some of these keys have additional functions if depressed more than once. Depressing key "4" cyclically shows all four virtual receiver channels (satellites) on the display. Depressing key "7" cyclically shows the general receiver status and the almanac data for all currently visible satellites.

The remaining keys (ASCII "0", "1", "2" and "3") are called parameter keys. Depressing these keys affects the internal operation of the GPS/GLONASS receiver as a function of the current menu. The mode of operation of these keys is also dependent on the actual menu. Some functions allow a repeated action of these keys during just one main program loop (864ms), like setting the channel IF. Other functions are intentionally slowed down, like the total reset of the receiver. The latter requires depressing the corresponding key for at least 9 times and just one entry is allowed for each main program loop, to avoid unintentional loss of data.

In order to understand the commands of a GPS/GLONASS receiver it is necessary to understand the internal operation of the latter. A GPS/GLONASS receiver includes a nonvolatile RAM to store the almanac data and a real-time clock that are always powered by a small internal NiCd battery. The nonvolatile RAM is used to store the almanac data and the approximate user position as a result of previous receiver operation. At power-up this data is used together with the real-time clock data to find all visible satellites and speed-up the acquisition of four usable satellite signals.

When a GPS or GLONASS receiver is first powered up, all of the nonvolatile RAM contains random data and a total reset is required. The total reset erases all almanac data and puts the receiver in the manual satellite select mode. All receiver virtual channels are set to a central carrier frequency and GPS PRN#16 or GLONASS CHN#13. The menu "4" is selected to show the virtual channel #1 data.

The initial satellite signal acquisition without any almanac data may take a large amount of time, especially in a single-channel receiver. The receiver does not know which satellite to look for nor its frequency offset caused by the doppler shift and by the unknown frequency drift of the receiver itself. The current software for the described GPS/GLONASS receiver is not able to select different satellites automatically without any almanac data, so this has to be done manually.

After manually selecting the satellite(s), the software is going to try to achieve C/A-code lock. If the latter does not occur on the given IF frequency, the receiver is going to scan the expected IF frequency range in 1kHz steps by writing the corresponding look-up table. Only the privileged satellite IF is scanned in the range from 2310kHz to 2330kHz (GPS) or from 1675kHz to 1700kHz (GLONASS).

While searching for the initial signal acquisition there is a small difference between the GPS and GLONASS receivers. The GPS constellation is now complete and more than four visible satellites can be found at any time, so the GPS receiver is only going to switch the privileged channel after a satellite signal is acquired. On the other hand, the GLONASS constellation is not complete and sometimes there is just one visible satellite, so the GLONASS receiver is going to try a different virtual channel with a different satellite if the current privileged satellite was not acquired.

After a satellite signal has been acquired, the key "4" menu shows the most important receiver parameters:

RX:    virtual channel number 
SV:    GPS satellite PRN code number 
CH#    GLONASS satellite RF channel number 
CF:    look-up table preset central IF frequency (kHz) 
R:     measured IF frequency (kHz, from code rate) 
S:     signal level (S-meter) SVH:   satellite health flag (0=OK) 
URA:   GPS user range accuracy (m) 
ASF:   GPS anti-spoofing flag (0=OFF) 
En:    GLONASS ephemeris upload age (days) 
AOE:   GLONASS ephemeris age (s) 

If the receiver has been turned on for the first time or has not been used for a considerable period of time (more than one week), the best thing to do is to collect the complete almanac data first. To speed-up the almanac data collection it is recommended that the remaining three receiver virtual channels are set to the same satellite and to the same IF frequency as the channel that already acquired a satellite. After all four virtual channels achieved signal lock, the almanac data collection takes 12.5 minutes for GPS or 5 minutes for GLONASS, since the GLONASS receiver does not make use of half of the almanac frames.

The accumulated almanac data can be checked by repeatedly pressing key "7". The almanac data includes the satellite name/number plus the following information:

CH#    GLONASS RF channel number EL:    elevation (degrees) AZ:    azimuth (degrees) 
DF:    doppler frequency shift (Hz, polarity as in the IF) A/E    GPS almanac/precision ephemeris data 
SVH:   satellite almanac health flag (GPS 0=OK, GLONASS 1=OK) 
ASF:   GPS anti-spoofing & configuration flag 
UTC:   UTC date and time 

The elevation, azimuth and doppler shift are computed for the reference user position as obtained from the averaged data. After a total reset this reference position is set in central Europe. Checking the almanac it is possible to find out when the receiver can be switched to automatic satellite selection. In the automatic satellite selection mode, the program selects the four satellites with the highest elevations and sets the corresponding central IF values in the hardware look-up tables. This selection can be done immediately by pressing key "0" in menu "7" or by switching the program to do this automatically after a period of bad data (key "3" in menu "7").

After four satellites have been acquired, the display may be switched to menu "5" or "6", to show respectively the immediate or averaged data. These menus show the following:

DET:    determinant of the system of equations (menu "5" only) 
AVG:    averaging weight (menu "6" only) 
V:      velocity vector magnitude (km/h), azimuth & elevation 
LAT:    latitude (degrees or m, north) 
LON:    longitude (degrees or m, east) 
H:      height above ellipsoid (m) 

At the beginning of all menus (except the almanac) the receiver status error codes appear, as shown on Fig. 63. These codes show the general receiver status, the current privileged virtual channel and the status of the single virtual channels. Most of the codes used are obvious, but three of them require further explanation. In the general receiver status, code "P" means that the computed position deviates too much from the previous main program loop. On the other hand, code "E" is only activated after the averaging weight gets larger than 5 and means that the equations themselves deviate too much from the already computed average position. Finally, code "T" in the virtual channel status appears quite frequently since the current software does not handle the overflow of the C/A-code variable-delay counter correctly.





Finally, the general status menu (key "7") shows some interesting data about the receiver: the satellites currently selected, AUTomatic or MANual satellite selection, the measured nominal IF frequency of the receiver (without the doppler shift), the measured receiver master oscillator frequency and the UTC date and time.

6. Conclusion

The GPS and GLONASS systems are mainly intended for navigation, but there are many other less advertised but not less important nor less interesting applications of these systems. Since these systems are known and the technology to use them is available to anyone, we radio-amateurs should consider our own applications of these systems [13].

Although the navigation itself is not of much interest to radio-amateurs, it would probably make much more sense to transmit GPS or GLONASS coordinates of a contest location rather than the inaccurate EU or WW locator, which is already not accurate enough for serious microwave or laser communications. By the way, GPS and GLONASS use almost the same coordinate system and a long time average shows differences in the order of only 10m between the two systems.

A side product of both GPS and GLONASS is accurate time and frequency broadcast. In order to achieve the specified navigation accuracy, the timing measurements have to be performed to an accuracy of about 10ns. The same requirement applies to the on-board satellite atomic clocks. The final user time transfer accuracy ranges between 30ns and 100ns, depending also on the knowledge of the exact user location. Thus the user should also compute his position even if he only needs accurate time.

Radio-amateurs could use this time transfer capability of both GPS or GLONASS every time when accurate synchronization is required. Coherent communications are just an example, the accuracy of GPS or GLONASS offers more than this: for example, the actual propagation path of the radio signal and the propagation mechanism could be investigated in this way.

The frequency broadcast accuracy of both GPS and GLONASS is in the range of 10^-12, far better than can be achieved with HF or LF standard frequency transmitters. The accuracy of the latter is limited to around 10^-7 by the propagation effects alone, and this is not enough for serious microwave work. GPS and GLONASS are also available globally 24 hours per day and are not limited by the transmitter range, propagation effects or low-frequency electronic pollution.

Finally, GPS and GLONASS represent a step away from being just an operator of black-box amateur-radio equipment. Although there are several ready-made GPS receivers on the market, we will probably have to develop our own receivers for our experiments, both the hardware and the software. Building such a receiver may be an interesting challenge as well. The receiver shown in this article is perhaps just the first step, other related projects or better receivers will hopefully follow soon.


Matjaz Vidmar, S53MV


Since the publication of the series of articles about the GPS/GLONASS receiver in UKW-Berichte/VHF-Communications there have been a few modifications of the hardware and software of these receivers. The original articles describe the operation of the GPS software V122 and GLONASS software V39. The current update describes the new GPS software V125 and GLONASS software V42. The new GPS V125 and GLONASS V42 include the following modifications:

(1) Improved internal operation of the software. 
The new software is able to handle the overflows of the hardware counters correctly thus almost 
eliminating the occurrence of the "T" error. (2) Additions to the command set: (2.1) 
In menu #5, key #0 will shift the privileged RX channel. (2.2) In menu #7, key #0 has 
a new function: in AUT mode it operates as before while in MAN mode this command sets
the carrier frequencies of the currently selected satellites. 
(2.3) In menu #7, key #1 has an additional function: the 
receiver will display the Keplerian elements of the GPS/GLONASS satellites as decoded 
from the almanac data before entering the total RESET sequence. (3) A simple bidirectional 
RS-232 interface is included, requiring only a few additional hardware components to be 
installed in the receiver. (3.1) The RS-232 interface output circuit is shown on Fig.1. 
Because of hardware limitations, the bit rate can only be set to 1000bps. 
The output data format is a serial asynchronous transmission including a start bit, 8 data 
bits, no parity and one stop bit. The output signal level ranges from 0V to +5V only, 
although these levels are usually accepted by most RS-232 receivers. The signal 
polarity is inverted as usual in RS-232: 0V represents a logical "1" while +5V represents 
a logical "0". The data output matches the LCD display content, the display clear command 
being replaced by a CR/LF combination. 


(3.2) The RS-232 interface input circuit is shown on Fig.2. Because of hardware limitations, 
the bit rate can only be set to 100bps or 10 times slower than the output rate. 
The RS-232 input can be used to issue commands identical to those coming from the 8-key keyboard. 
Only ASCII characters "0", "1", "2", "3", "4", "5", "6" and "7" are therefore accepted as valid commands.
All other codes are simply ignored. The data format is 8 bits, no parity, one or more stop bits. 
The signal polarity is inverted as usual in RS-232. 


Since the PC6 input is now used for the RS-232 interface input, it can no longer be used to select the display type, CRT or LCD. The latter selection is thus preset in the software. The new receiver software is supplied in three files. The .SRC file is intended to be compiled and executed on a DSP computer, equipped with a GPS/GLONASS hardware board. The .BIN file is a compressed version of the program to be burned in a 27C256 EPROM for a stand-alone GPS/GLONASS receiver. Finally, the .ASM file is only supplied as an information about the internal operation of the main interrupt routine that includes all of the digital signal processing. GTERM is a 1000bps RX, 100bps TX RS-232 terminal program for the DSP computer.

Software download zip

Full-size drawings zip

* * * * *


< Prev   Next >
Who's Online
Buy microwave components on-line

© 2019 Greek Microwave Group - Official Site

Get The Best Free Joomla Templates at