Implementation of a Softwaredefined GPS Receiver Anthony J

  • Slides: 45
Download presentation
Implementation of a Software-defined GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Wednesday,

Implementation of a Software-defined GPS Receiver Anthony J. Corbin Dr. In Soo Ahn Wednesday, November 25, 2020

Overview o o o Rationale System Description Software Architecture n Coarse Acquisition n Fine

Overview o o o Rationale System Description Software Architecture n Coarse Acquisition n Fine Acquisition n Tracking n Positioning Progress/Results Conclusion/Achievements

Rationale o Reduce Cost n o Eliminates ASICs or other custom ICs More Upgradeable

Rationale o Reduce Cost n o Eliminates ASICs or other custom ICs More Upgradeable n n GPS Block III Galileo

Cost o o Cost is driving the mass-adoption of GPS devices Currently, a GPS

Cost o o Cost is driving the mass-adoption of GPS devices Currently, a GPS chipset in volume costs around $5 8 The software GPS chipset, which is currently being produced in low volume, costs around $4 2 In high-volume, the cost of a software GPS chipset would likely become negligible

Upgradeable o o China and the European Union are developing their own systems 7

Upgradeable o o China and the European Union are developing their own systems 7 Russia already has its own system, but is working on making it more compatible with other systems 6 The U. S. is beginning work on Block III GPS satellites For a software-defined receiver, a simple software patch would be, in many cases, sufficient to use these systems

Equipment List

Equipment List

High-Level Block Diagram

High-Level Block Diagram

USB GPS Dongle o o USB 2. 0 Interface Simple software interface

USB GPS Dongle o o USB 2. 0 Interface Simple software interface

Subsystem Requirements

Subsystem Requirements

Position Error o o Estimated position is based on the sampling rate being 4

Position Error o o Estimated position is based on the sampling rate being 4 times the chipping rate. ¼ of the distance represented by a chip is therefore the approximate error.

Time to First Fix o o A position fix requires that the ephemeris data

Time to First Fix o o A position fix requires that the ephemeris data is completely received. This requires a complete frame of data, which takes 30 s to transmit. However, it is unlikely that the receiver shall begin collecting data at the beginning of a subframe indicating that an extra subframe lasting 6 s must be received. If the ephemeris data has already been received, the fix time is minimal. [1]

Functional Software Diagram

Functional Software Diagram

Satellite Object

Satellite Object

Software Architecture

Software Architecture

Coarse/Acquisition Code Generation o o A generated C/A code sample is shown to the

Coarse/Acquisition Code Generation o o A generated C/A code sample is shown to the right. The signal generated is based on the pseudorandom sequence generation shown on the next slide.

C/A Code Generation [1]

C/A Code Generation [1]

Coarse Acquisition o o Coarse acquisition searches around the intermediate frequency in the range

Coarse Acquisition o o Coarse acquisition searches around the intermediate frequency in the range +/- 10 KHz with a step of 500 Hz Frequency Domain Correlation

Frequency Domain Correlation o o o The correlation value must be checked at every

Frequency Domain Correlation o o o The correlation value must be checked at every code alignment. To perform this quickly, the operation is performed in the frequency domain. As shown in the right, cross-correlation is equivalent to the product of X*(w) and Y(w) in the frequency domain.

C/A Code Characteristics o o o Repeats every 1023 chips Cross-correlation between two satellites’

C/A Code Characteristics o o o Repeats every 1023 chips Cross-correlation between two satellites’ C/A codes is minimal Correlation value is only large when the code is perfectly aligned with itself.

Cross-Correlation o o The first 3 D graph shows the crosscorrelation between C/A codes

Cross-Correlation o o The first 3 D graph shows the crosscorrelation between C/A codes for different satellites for the perfectly aligned case, while the second shows a misaligned case. The crest in the first graph shows correlation values for the same satellite in the perfectly aligned case.

Correlation Result o o The graph to the right shows the results of a

Correlation Result o o The graph to the right shows the results of a correlation between sample data and a known C/A code The large peak indicates the proper code alignment

Coarse Acquisition – Satellite Search

Coarse Acquisition – Satellite Search

Coarse Acquisition – IF Search

Coarse Acquisition – IF Search

Fine Acquisition o Uses the frequency estimate from Coarse Acquisition to obtain a more

Fine Acquisition o Uses the frequency estimate from Coarse Acquisition to obtain a more accurate estimate

Tracking o o o Tracking occurs in the time domain A Delay-Locked Loop tracks

Tracking o o o Tracking occurs in the time domain A Delay-Locked Loop tracks the Code Frequency A Phase-Locked Loop tracks the Carrier Frequency

Delay-Locked Loop [1] o o o The DLL tracks the Code Frequency by generating

Delay-Locked Loop [1] o o o The DLL tracks the Code Frequency by generating two extra C/A code sequences The extra sequences are shifted slightly early and slightly late with respect to the prompt sequence The differences in the correlation values, as shown below, indicates the direction in which the prompt sequence must be shifted

C/A Code Tracking o o The graphs to the right show the code error

C/A Code Tracking o o The graphs to the right show the code error output from the delay-locked loop. The loop parameters have been refined through testing to allow for fast convergence.

Carrier Tracking o o o A carrier error signal is shown on the right.

Carrier Tracking o o o A carrier error signal is shown on the right. In this example, the frequency of the carrier appears to be drifting further below the intermediate frequency. This is due to the Doppler Effect.

Navigation Data o o The figures to the right show resolved 50 Hz navigation

Navigation Data o o The figures to the right show resolved 50 Hz navigation data after coarse acquisition, fine acquisition, tracking, and post-processing has occurred. The top graph shows 32 s of data, while the bottom graph shows 3 s.

Position Calculation

Position Calculation

Progress o MATLAB GPS software [1] has been ported to C++ n This includes:

Progress o MATLAB GPS software [1] has been ported to C++ n This includes: o o o Coordinate conversion Tracking loop Acquisition algorithms DSP design approach was abandoned due to technical issues at a very early stage of the project. C++ code can accurately find a position from stored sample data. Developed code has been restructured to run in parallel.

Position Results 51. 81 m

Position Results 51. 81 m

Position Results 104. 4 m

Position Results 104. 4 m

Position Results

Position Results

Speed o o Currently the C++ code requires under a minute (per satellite) to

Speed o o Currently the C++ code requires under a minute (per satellite) to read a full 36 s of satellite data. Compare this with the Matlab code which takes 6 minutes per satellite.

Intel Threading Building Blocks o o o Intel’s TBB is a library for creating

Intel Threading Building Blocks o o o Intel’s TBB is a library for creating threaded programs Platform independent Relatively easy to use

Changes to Project Objectives o o o Finding the satellite positions requires an accurate

Changes to Project Objectives o o o Finding the satellite positions requires an accurate time…requiring collection of at least subframes 1 -3 of the ephemeris data The equation below shows the number of multiplications per second required to track one satellite. This does not include C/A code generation, carrier demodulation, or the overhead involved with sampling. The DSP considered is clocked at 225 MHz which is simply not fast enough.

Scheduling o o Telemetry and Handover words contain a Time-of. Week value that can

Scheduling o o Telemetry and Handover words contain a Time-of. Week value that can be used to update the position of the satellites The TLM/HOW words are sent at the beginning of each subframe which occurs every 6 seconds

Scheduling o o Scheduling allows a minimal set of data to be used for

Scheduling o o Scheduling allows a minimal set of data to be used for position computation Orbital data is typically valid for several hours

Conclusions o o Results show that implementation is practical on modern PCs However, application

Conclusions o o Results show that implementation is practical on modern PCs However, application in low cost embedded systems is several years out

Achievements o o o Successful determination of position Real-time satellite availability determination Working C++

Achievements o o o Successful determination of position Real-time satellite availability determination Working C++ based receiver code n n o o o Stored data Received data using USB sampler Wrapped the driver code for the USB device in C++ Multi-threaded object-oriented design Google Earth C++ class wrapper

Recommendations for Future Work o o Continue enhancing code for further improvements. Research neural

Recommendations for Future Work o o Continue enhancing code for further improvements. Research neural network approaches.

References o o o o [1] Kai Borre, Dennis M. Akos, Nicolaj Bertelsen, Peter

References o o o o [1] Kai Borre, Dennis M. Akos, Nicolaj Bertelsen, Peter Rinder, and Soren Holdt Jensent, Software-Defined GPS and Galileo Receiver : A Single-Frequency Approach. Birkhauser: Boston, 2007, pp. 29, 83, 105. [2] Si. Ge, SE 4110 L-EK 1 Evaluation Board User Guide. [3] Si. Ge, SE 4110 L Datasheet. [4] U. S. Do. D, Navstar GPS Space Segment/Navigation User Interfaces. IS-GPS-200 Rev. D. [5] U. S. Do. D, World Geodetic System 1984 : Its Definition and Relationships with Local Geodetic Systems [6] Wikipedia, GLONASS. <http: //en. wikipedia. org/wiki/GLONASS> [7] Wikipedia, GALILEO. <http: //en. wikipedia. org/wiki/Galileo_gps> [8] EDACafe. com. Atmel Introduces $5 GPS Baseband IC With 3 Meter Accuracy. <http: //www 10. edacafe. com/nbc/articles/view_article. php? articlei d=177910&page_no=2>

Real-time Functionality

Real-time Functionality

Updated Schedule

Updated Schedule