10-11-2012, 05:46 PM
Using GPS in Embedded Applications
1Using GPS.ppt (Size: 682 KB / Downloads: 108)
GPS SPACE SEGMENT
GPS Constellation
24 satellites (Space Vehicles or SVs)
20,200km altitude (12 hour orbit period)
6 orbital planes (55° inclination)
4 satellites in each plane
GPS Satellite Details
Manufactured by Rockwell International, later by Lockheed M&S
~1900 lbs (in orbit)
2.2m body, 7m with solar panels
7-10 year expected lifetime
THE GPS SIGNAL
C/A code and P(Y) code
All SVs transmit at 1575.42MHz
Each SV modulates using a unique 1023-bit pseudorandom (PRN) code sent at 1.023Mcps (chips per second)
PRN allows spread-spectrum CDMA management of GPS transmit frequency
Receiver’s distance to the SV can be determined by measuring the PRN time skew between the transmitted and received signals
GPS system data (ephemeris, clock, and atmospheric parameters) are transmitted by further modulating the PRN code at 50bps
HOW TO GET A POSITION
Need signal from at least four SVs for 3D position
One SV provides a time reference
Distance to three remaining SVs is determined by observing the GPS signal travel time from SV to the receiver
With three known points, and distances to each, we can determine the GPS receiver’s position (trilateration)
EMBEDDED GPS RECEIVERS
Typical GPS Receivers
Trimble SK8/ACE GPS receiver ($60)
Garmin GPS35 ($160)
DeLorme Earthmate ($85)
Have seen some as cheap as $50
Interface
Single or dual serial port
Protocols: NMEA-0183, TSIP, TAIP, Garmin, Rockwell Binary, others…
Power
Typical requirements: 5V @ 200mA
Where to buy
Electronics outlets (Fry’s, GoodGuys, etc)
Electronic Surplus (Halted, All electronics, etc)
Internet (where else!?!)
NMEA-0183
National Marine Electronics Association 0183 (NMEA-0183)
(Inter)National standard for navigation data exchange among marine electronics (GPS, LORAN, wind/water speed sensors, autopilot, etc)
Adopted by GPS community as defacto standard for simple output-only Position-Velocity-Time reporting
Available on nearly every commercial GPS with a serial port
Uses standard serial port (RS-232C) at 4800,8,N,1 default
Output-only ASCII-only comma-delimited string-based protocol
NMEA strings:
$GPGGA – GPS fix data message (lat, lon, time, #SVs, etc)
$GPGGL – Geographic position (lat, lon, time)
$GPGSA – GPS DOP and active satellites (SVs, P,H,VDOP)
$GPGSV – GPS satellites in view (SV elevation/azimuth, SNR, etc)
$GPVTG – GPS velocity and heading
$GPZDA – Time & Date message
NMEA strings are followed by a precisely defined number of fields which carry the data. Data recovery can be as easy as using sprintf(…).
TRIMBLE TSIP/TAIP
Trimble Standard Interface Protocol (TSIP)
Binary Packet Communications Protocol over RS-232C (9600,8,O,1 default)
Available on nearly all Trimble GPS products
Best for complete embedded control of GPS receiver
Allows reading and control of:
All processed GPS data (position, velocity, time)
All raw GPS data (pseudoranges, carrier phase, PDOP, TDOP, signal quality, SVs used, GPS system messages)
GPS receiver mode & parameters (serial port protocols, DGPS mode, SV selection mode, and more)
GPS hardware control (oscillator offset, mixer/integrator control, test modes, fast-acquisition modes, and more)
Trimble ASCII Interface Protocol (TAIP)
Provides basic subset of TSIP commands in ASCII-only format
Great for low-overhead use of GPS receiver in projects with limited processor speed or RAM
Easy to learn