Intro till GPS med Microcontrollers (3 / 6 steg)
Steg 3: Dechiffrera NMEA protokoll
Hur får vi Data?
De flesta mottagare du stöter på kommer att överföra informella via en enkel seriell anslutning. Ofta är kodad i vanliga ASCII-tecken, men det finns andra kompakta binära format från några moduler för högre datahastigheter. Vi kommer att titta på en vanlig ASCII mata eftersom det är mycket lättare att tolka. De uppgifter vi får från GPS-modulen formateras enligt NMEA 0183 standard.
NMEA-protokollet
National Marine Electronics Association har en standard för många olika fartyg-ombord elektriska enheter. NMEA 0183 standard är användbart för GPS-mottagare att produktionen eftersom det är ett tydligt och relativt långsam (normalt 4800 eller 9600 baud) protokoll som är tilltalande för någon modern mikrokontroller med en UART att hantera. Låt oss titta på ett urval block av fyra sträng produktionen av modulen MTK3339. Jag har fördelade ut strängen ovan för att göra det tydligare att läsa, men den råa strömmen har inga blanksteg efter kommatecken och en enda uppsättning transport tillbaka och radmatning tecken i slutet av varje sträng (strängar börjar med en $-tecknet).
GPGSA
Global positionering aktiva satelliter - strängen berättar antalet satelliter som för närvarande i modulen, typ av fix (2D eller 3D) och precisionen av signalen.
GPRMC
Global positionering rekommenderas minst koordinater - detta är kött av data strängarna, som innehåller tiden för fix, om mottagaren är ok, latitud, longitud, hastighet (i knop), fixa typ.
GPVTG
Global Positioning kurs över marken (spår bra) - Detta innehåller mer data om marken hastighet i knop och kilometer per timme.
GPGGA
Global Positioning System Fix Data - full samordna data som innehåller allt i RMC strängen, förutom extra noggrannhet data samt höjd. Vi ska bryta den här strängen ner mer noggrant på nästa steg.