What is GPS
The Global Positioning System (GPS) is a worldwide radio-navigation system formed from a constellation of 24 satellites and their ground stations.
GPS uses these "man-made stars" as reference points to calculate positions accurate to a matter of meters. In fact, with advanced forms of GPS you can make measurements to better than a centimeter!
In a sense it's like giving every square meter on the planet a unique address.
GPS receivers have been miniaturized to just a few integrated circuits and so are becoming very economical. And that makes the technology accessible to virtually everyone.
These days GPS is finding its way into cars, boats, planes, construction equipment, movie making gear, farm machinery, even laptop computers.
Soon GPS will become almost as basic as the telephone. Indeed, at Trimble, we think it just may become a universal utility.
(from the GPS Tutorial)
(Another helpful overview Global Positioning System Overview)
PMB 2520 Hammerhead
The PMB 2520 Hammerhead is a IC sulution for GPS that producted by the Infineon Technologies. It allows the usage of assistance data by surpporting A-GPS standards.
(all infomations are getting from the datasheet of PMB 2520) short datasheet
Modules of the Hammerhead
The Hammerhead consists of the following modules:
- RF front-end with on-chip, high gain and low noise, LNA, I/Q mixers, on-chip polyphase complex IF filter, digitally controlled AGC, and 3-bits ADC for the I and Q paths.
- Sigma-Delta RF PLL with on-chip PCO and on-chip loop filter.
- Embedded PLL and NCO for baseband clock generation.
- Multiple channels digital mixers and parallel correlator engines to enable real time correlation of the PRN code for up to 14 satellites.
- Post processor including peak detection logic
- SRAM for storing correlation results
The Hammerhead integrates 3 serial interfaces:
The UART in the Hammerhead is a full-duplex UART interface. It is fixed in 8N1(8 data bits, no parity, 1 stop bit) mode. On the GTA01, the host processor connect with the Hammerhead through the UART.
Host software Architecture
The Hammerhead driver software is delivered as a plugin for gpsd. It provides both high level positioning information in a number of formats, and an interface to feed in the AGPS data.
The gpsd libraries provide the following infomation to the high level software:
- Position data
- Library status
- Time-out and Packet Available
The high level software sends the following messages to the plugin:
- Assistance data
- Positioning Commands
- Configuration Commands
Gpsd communicates with the system at the following part:
- Communications Drivers
- System Timer
- NV storage
- Log buffer
GPS on GTA01
At the GTA01, the host processor is a SC2410..
Hammerhead on the GTA01
On the GTA01, the Hammerhead are configured that connected with the host processor through the UART. The UART of data output/input is connected to the UART 1 of the SC2410. The UART of the hardware flow control is connected to the UART 2 of the SC2410.
Q & A
Q: Can gpsd support Differential GPS.
- While the neo does not have any means of receiving DGPS signals directly, it can of course download them from the internet (bluetooth, gprs), either from a server, or peer-peer from stationary (charging?) neos that have GPS signal and cheap internet connections.
- This can generate positions accurate to well under a metre, compared to (probably) 2-3m without.
- The gpsd plugin is the place that these corrections would need to be done, as they need to be performed on a per-satellite basis, before generating the position.
- This is separate from AGPS - AGPS gives information on current satellite position. DGPS is a local minute by minute 'ionospheric weather' for your region.
Q: Can someone upload somewhere an strace of the interaction between gpsd, and the hammerhead chip?
- Ideally this would be requesting a GPS position every second, starting from 'cold', with no AGPS data, for at least half an hour, in an area where the reciever can see the sky.
- To aid in reverse engineering efforts.
Q: Can I get NMEA data from the GPS?
A: Not directly. However, the gpsd program 'gpspipe', with the -r switch will output NMEA data with the current position information. The right way to do it is to use libgpsd in your program if possible.