NMEAGGARMCپروتکل ارتباطیحدود ۱۰ دقیقه مطالعه

NMEA چیست؟راهنمای کامل پیام‌ها، ساختار و کاربردها

زبان مشترک گیرنده GNSS با دنیای بیرون — از هیدروگرافی و GPR تا NTRIP و نرم‌افزارهای GIS

۱NMEA چیست؟

NMEA مخفف National Marine Electronics Association (انجمن ملی الکترونیک دریایی آمریکا) است. استاندارد NMEA-0183 یک پروتکل ارتباطی متنی (ASCII) است که گیرنده‌های GNSS از آن برای ارسال اطلاعات موقعیت، زمان، سرعت و وضعیت ماهواره‌ها به تجهیزات و نرم‌افزارهای خارجی استفاده می‌کنند.

NMEA مثل خروجی متنی گیرنده است. برخلاف RTCM که باینری و برای ارسال تصحیحات بین گیرنده‌هاست، NMEA متنی و قابل خواندن توسط انسان است و برای ارتباط گیرنده با دنیای بیرون طراحی شده.

به زبان ساده:

RTCM = زبان بین گیرنده‌ها (بیس ← رُوِر). NMEA = زبان گیرنده با بقیه دنیا (گیرنده ← نرم‌افزار، اکوساندر، GPR، NTRIP و...). هر نرم‌افزار یا دستگاهی که می‌خواهد موقعیت GNSS بخواند، از NMEA استفاده می‌کند.

NMEA-0183

  • • پروتکل سریال (RS-232 / USB / Bluetooth)
  • • متنی ASCII — قابل خواندن
  • • سرعت: معمولاً 4800 تا 115200 baud
  • • رایج‌ترین نسخه — تقریباً همه‌جا پشتیبانی

NMEA-2000 (جدیدتر)

  • • شبکه CAN bus
  • • باینری — سریع‌تر و قابل‌اعتمادتر
  • • بیشتر در صنعت دریایی
  • • سازگار با 0183 نیست

در این مقاله تمرکز بر NMEA-0183 است — نسخه‌ای که ۹۹٪ کاربران GNSS با آن سر و کار دارند.

۲ساختار پیام NMEA

هر پیام NMEA یک خط متنی ASCII با ساختار ثابت است:

$GNGGA,120000.00,3541.3456,N,05123.3400,E,4,18,0.7,1200.5,M,25.3,M,1.0,0001*4F
جزءمثالتوضیح
$$کاراکتر شروع — همیشه $
Talker IDGNشناسه منظومه (GP=GPS, GL=GLONASS, GA=Galileo, GB=BeiDou, GN=ترکیبی)
Message IDGGAنوع پیام — مشخص‌کننده محتوا
فیلدها120000.00,3541.3456,N,...داده‌ها جدا شده با کاما — ترتیب ثابت
**جداکننده چک‌سام
Checksum4FXOR تمام کاراکترها بین $ و * — دو رقم هگزادسیمال
CR+LF(نامرئی)پایان خط — Carriage Return + Line Feed

نکته مهم — فرمت مختصات: مختصات در NMEA به فرمت DDMM.MMMM (درجه و دقیقه اعشاری) هستند — نه درجه اعشاری (DD.DDDDDD). مثلاً 3541.3456 یعنی ۳۵ درجه و ۴۱.۳۴۵۶ دقیقه = ۳۵.۶۸۹۰۹۳ درجه اعشاری. این یکی از رایج‌ترین اشتباهات کاربران NMEA است.

۳پیام‌های پرکاربرد

GGA — مهم‌ترین پیام

Global Positioning System Fix Data

$GNGGA,120000.00,3541.3456,N,05123.3400,E,4,18,0.7,1200.50,M,25.30,M,1.0,0001*4F
فیلدمثالتوضیح
1120000.00زمان UTC (12:00:00.00)
2,33541.3456,Nعرض جغرافیایی (DDMM.MMMM) + جهت
4,505123.3400,Eطول جغرافیایی (DDDMM.MMMM) + جهت
64کیفیت Fix: 0=بدون، 1=GPS، 2=DGPS، 4=RTK Fixed، 5=RTK Float
718تعداد ماهواره‌های استفاده‌شده
80.7HDOP (کاهش دقت افقی)
9,101200.50,Mارتفاع از سطح متوسط دریا (متر)
11,1225.30,Mارتفاع ژئوئید از بیضوی (متر)
131.0عمر تصحیحات DGPS (ثانیه)
140001شناسه ایستگاه مرجع DGPS

GGA مهم‌ترین پیام NMEA است — حاوی موقعیت، ارتفاع، کیفیت Fix و تعداد ماهواره. برای NTRIP ارسال GGA الزامی است.

RMC — موقعیت + سرعت + تاریخ

Recommended Minimum Specific GNSS Data

$GNRMC,120000.00,A,3541.3456,N,05123.3400,E,0.05,215.3,190326,3.1,E,D*2A

فیلدهای کلیدی:

  • A/V وضعیت: A=فعال (Valid)، V=هشدار (Invalid)
  • 0.05 سرعت (Knots)
  • 215.3 جهت حرکت (درجه از شمال)
  • 190326 تاریخ (DD/MM/YY = 19 مارس 2026)
  • D حالت: N=بدون Fix، A=Autonomous، D=DGPS، R=RTK Fixed، F=Float

RMC = موقعیت + سرعت + تاریخ. بسیاری از نرم‌افزارهای ناوبری فقط RMC نیاز دارند.

GSA — وضعیت ماهواره‌ها و DOP

GNSS DOP and Active Satellites

$GNGSA,A,3,02,06,12,19,25,31,,,,,,,1.2,0.7,1.0,1*3B
  • حالت Fix: 1=بدون، 2=دوبُعدی، 3=سه‌بُعدی
  • شماره ماهواره‌های فعال (PRN)
  • PDOP، HDOP، VDOP
  • شناسه منظومه (آخرین فیلد): 1=GPS, 2=GLONASS, 3=Galileo, 4=BeiDou

GSV — جزئیات هر ماهواره

GNSS Satellites in View

$GPGSV,3,1,12,02,45,300,42,06,67,015,47,12,30,180,38,19,15,045,35,1*6A
  • برای هر ماهواره: PRN، ارتفاع (°)، آزیموت (°)، قدرت سیگنال (SNR/CN0 به dB-Hz)
  • حداکثر ۴ ماهواره در هر پیام — چند پیام GSV برای همه ماهواره‌ها
  • اطلاعات ایده‌آل برای رسم Skyplot و بررسی کیفیت سیگنال

VTG — سرعت و جهت

Course Over Ground and Ground Speed

$GNVTG,215.3,T,218.4,M,0.05,N,0.09,K,D*2F
  • جهت نسبت به شمال حقیقی (T) و مغناطیسی (M)
  • سرعت بر حسب Knots (N) و km/h (K)

GLL — موقعیت ساده

Geographic Position - Latitude/Longitude

$GNGLL,3541.3456,N,05123.3400,E,120000.00,A,D*7B

فقط موقعیت و زمان — ساده‌ترین پیام موقعیتی. کمتر استفاده می‌شود.

پیامموقعیتارتفاعسرعتتاریخFix QualityDOP
GGAHDOP
RMCحالت
GSAنوع FixP/H/V
GSV
VTGحالت

۴Talker ID و منظومه‌ها

دو حرف ابتدای پیام (Talker ID) مشخص می‌کند داده از کدام منظومه است:

Talker IDمنظومهمثال
GPGPS (آمریکا)$GPGGA,...
GLGLONASS (روسیه)$GLGGA,...
GAGalileo (اروپا)$GAGGA,...
GBBeiDou (چین)$GBGGA,...
GNترکیبی (Multi-GNSS)$GNGGA,...

GN رایج‌ترین Talker ID در گیرنده‌های مدرن چندمنظومه است. وقتی گیرنده از GPS + GLONASS + BeiDou + Galileo همزمان استفاده می‌کند، موقعیت ترکیبی را با $GNGGA ارسال می‌کند. برخی نرم‌افزارهای قدیمی فقط $GPGGA می‌شناسند — در این موارد باید Talker ID را در تنظیمات گیرنده تغییر دهید.

۵کاربردهای عملی

NTRIP — ارسال GGA برای تصحیحات

رُوِر باید پیام GGA را به NTRIP Caster ارسال کند تا Caster بداند رُوِر کجاست. بدون GGA، سرویس‌های VRS نمی‌توانند ایستگاه مجازی بسازند. معمولاً هر ۵ تا ۱۰ ثانیه یک GGA ارسال می‌شود.

هیدروگرافی و اکوساندر

اکوساندرها (Echo Sounder) برای ثبت موقعیت هر نقطه عمق‌سنجی، پیام GGA (موقعیت + ارتفاع) و VTG یا RMC (سرعت و جهت) را از گیرنده RTK دریافت می‌کنند. نرم‌افزارهای Hypack، QINSy و EIVA از NMEA استفاده می‌کنند.

رادار نفوذی زمین (GPR)

دستگاه‌های GPR برای ژئورفرنس کردن پروفیل‌های رادار، موقعیت GNSS را از طریق NMEA (معمولاً GGA) دریافت می‌کنند. اتصال معمولاً از طریق سریال RS-232 یا بلوتوث.

بازرسی خطوط لوله گاز و تأسیسات

دستگاه‌های تشخیص نشتی گاز و بازرسی خطوط لوله از NMEA برای ثبت موقعیت هر نقطه بازرسی استفاده می‌کنند. معمولاً GGA + RMC کافی است.

GIS و نرم‌افزارهای میدانی

نرم‌افزارهای GIS مانند ArcGIS Field Maps، QField و SW Maps از NMEA برای دریافت موقعیت از گیرنده خارجی RTK استفاده می‌کنند — معمولاً از طریق بلوتوث.

Machine Control و هدایت ماشین‌آلات

سیستم‌های هدایت تراکتور (کشاورزی دقیق) و ماشین‌آلات راهسازی از NMEA برای دریافت موقعیت RTK استفاده می‌کنند. نرخ خروجی بالا (۵-۲۰ هرتز) اهمیت دارد.

۶تنظیمات و نکات عملی

پیام‌های توصیه‌شده بر اساس کاربرد

کاربردپیام‌های لازمنرخ
NTRIP (ارسال GGA)GGAهر ۵-۱۰ ثانیه
هیدروگرافیGGA + VTG۱-۱۰ Hz
GPR / بازرسی گازGGA + RMC۱ Hz
GIS / Field MapsGGA + GSA۱ Hz
Machine ControlGGA + VTG۵-۲۰ Hz
عیب‌یابی / مانیتورینگGGA + GSA + GSV۱ Hz

نکات عملی

1.

مختصات NMEA فرمت DDMM.MMMM هستند نه DD.DDDDDD — قبل از استفاده حتماً تبدیل کنید. ابزار تبدیل فرمت ما را امتحان کنید.

2.

اگر نرم‌افزار مقصد فقط $GPGGA قبول می‌کند و گیرنده $GNGGA ارسال می‌کند، Talker ID را در تنظیمات گیرنده به GP تغییر دهید.

3.

Baud Rate (سرعت سریال) باید در گیرنده و نرم‌افزار مقصد یکسان باشد — رایج‌ترین: 9600، 38400 یا 115200.

4.

فقط پیام‌هایی را فعال کنید که واقعاً نیاز دارید — پیام‌های اضافی (مخصوصاً GSV) حجم زیادی داده تولید می‌کنند و ممکن است باعث تأخیر شوند.

5.

فیلد Quality در GGA را بررسی کنید: 4=RTK Fixed (دقیق)، 5=RTK Float (کم‌دقت)، 1=GPS Only (متری). فقط با Quality=4 کار دقیق انجام دهید.

6.

برای اتصال بلوتوث، مطمئن شوید پورت NMEA خروجی و پورت بلوتوث در گیرنده یکی باشند — یا به‌درستی هدایت (Route) شده باشند.

7.

نرخ خروجی NMEA باید با نیاز نرم‌افزار مقصد هماهنگ باشد — نرخ بالا (10Hz+) نیاز به Baud Rate بالاتر دارد.

8.

Checksum را جدی بگیرید — اگر نرم‌افزار مقصد خطای checksum گزارش می‌دهد، کابل یا اتصال بلوتوث مشکل دارد.

مطالب مرتبط

آیا این مطلب برای شما مفید بود؟