your gps sends the data in NMEA format and you have to receive the data using serial communication...
the first valid data from gps is a "$" symbol, so data followed by $ is a valid data...
check this
NMEA 0183 and GPS: Decoding the NMEA 0183 standard in your GPS Software Project
Data isn't fixed length just comma delimited.
There is a checksum built by XORing all character ASCII values between the $ and the * (non inclusive) which is displayed as a 2 digit upper case hexadecimal value at the end of the string.
Each string is interpreted in a different way, for example the $GPGSV line which shows satellite information is actually a multi line report. eg
$GPGSV,4,1,13,02,38,228,24,04,18,193,22,07,63,088, 32,08,53,174,27*75
$GPGSV,4,2,13,10,50,298,24,13,35,071,34,15,00,261, 00,16,05,018,26*77
$GPGSV,4,3,13,23,04,077,31,24,19,320,23,25,47,060, 35,29,05,313,21*7D
$GPGSV,4,4,13,40,31,179,00*42
Where the first parameter is the number of lines in the report, the second parameter the number of the line out of the total, the third gives the number of satellite PRNs in the report and then each PRN is packed as 4 bytes as follows.
0 = PRN Number
1 = Elevation
2 = Azimuth
3 = Signal to Noise Ratio (higher is better)
Whilst a line like $GPGSA which shows the satellites that form a fix can have blank values i.e.
$GPGSA,A,3,02,,07,08,,13,,,23,,25,,3.2,2.7,1.7*39
The first parameter A means Automatic selection (A for Auto or M for Manual), 3 = 3d fix (1 = no fix, 2 = 2d fix, 3 = 3d fix), the last three floating point values are PDOP, VDOP and HDOP and anything in between signifies the PRN number of the satellites providing the fix (up to 12).
Some manufacturers pack all the satellites at the beginning of the string, some leave blanks as Garmin do.
NMEA data