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 ID | GN | شناسه منظومه (GP=GPS, GL=GLONASS, GA=Galileo, GB=BeiDou, GN=ترکیبی) |
| Message ID | GGA | نوع پیام — مشخصکننده محتوا |
| فیلدها | 120000.00,3541.3456,N,... | دادهها جدا شده با کاما — ترتیب ثابت |
| * | * | جداکننده چکسام |
| Checksum | 4F | XOR تمام کاراکترها بین $ و * — دو رقم هگزادسیمال |
| 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| فیلد | مثال | توضیح |
|---|---|---|
| 1 | 120000.00 | زمان UTC (12:00:00.00) |
| 2,3 | 3541.3456,N | عرض جغرافیایی (DDMM.MMMM) + جهت |
| 4,5 | 05123.3400,E | طول جغرافیایی (DDDMM.MMMM) + جهت |
| 6 | 4 | کیفیت Fix: 0=بدون، 1=GPS، 2=DGPS، 4=RTK Fixed، 5=RTK Float |
| 7 | 18 | تعداد ماهوارههای استفادهشده |
| 8 | 0.7 | HDOP (کاهش دقت افقی) |
| 9,10 | 1200.50,M | ارتفاع از سطح متوسط دریا (متر) |
| 11,12 | 25.30,M | ارتفاع ژئوئید از بیضوی (متر) |
| 13 | 1.0 | عمر تصحیحات DGPS (ثانیه) |
| 14 | 0001 | شناسه ایستگاه مرجع 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 Quality | DOP |
|---|---|---|---|---|---|---|
| GGA | ✓ | ✓ | ✗ | ✗ | ✓ | HDOP |
| RMC | ✓ | ✗ | ✓ | ✓ | حالت | ✗ |
| GSA | ✗ | ✗ | ✗ | ✗ | نوع Fix | P/H/V |
| GSV | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| VTG | ✗ | ✗ | ✓ | ✗ | حالت | ✗ |
۴Talker ID و منظومهها
دو حرف ابتدای پیام (Talker ID) مشخص میکند داده از کدام منظومه است:
| Talker ID | منظومه | مثال |
|---|---|---|
| GP | GPS (آمریکا) | $GPGGA,... |
| GL | GLONASS (روسیه) | $GLGGA,... |
| GA | Galileo (اروپا) | $GAGGA,... |
| GB | BeiDou (چین) | $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 Maps | GGA + GSA | ۱ Hz |
| Machine Control | GGA + VTG | ۵-۲۰ Hz |
| عیبیابی / مانیتورینگ | GGA + GSA + GSV | ۱ Hz |
نکات عملی
مختصات NMEA فرمت DDMM.MMMM هستند نه DD.DDDDDD — قبل از استفاده حتماً تبدیل کنید. ابزار تبدیل فرمت ما را امتحان کنید.
اگر نرمافزار مقصد فقط $GPGGA قبول میکند و گیرنده $GNGGA ارسال میکند، Talker ID را در تنظیمات گیرنده به GP تغییر دهید.
Baud Rate (سرعت سریال) باید در گیرنده و نرمافزار مقصد یکسان باشد — رایجترین: 9600، 38400 یا 115200.
فقط پیامهایی را فعال کنید که واقعاً نیاز دارید — پیامهای اضافی (مخصوصاً GSV) حجم زیادی داده تولید میکنند و ممکن است باعث تأخیر شوند.
فیلد Quality در GGA را بررسی کنید: 4=RTK Fixed (دقیق)، 5=RTK Float (کمدقت)، 1=GPS Only (متری). فقط با Quality=4 کار دقیق انجام دهید.
برای اتصال بلوتوث، مطمئن شوید پورت NMEA خروجی و پورت بلوتوث در گیرنده یکی باشند — یا بهدرستی هدایت (Route) شده باشند.
نرخ خروجی NMEA باید با نیاز نرمافزار مقصد هماهنگ باشد — نرخ بالا (10Hz+) نیاز به Baud Rate بالاتر دارد.
Checksum را جدی بگیرید — اگر نرمافزار مقصد خطای checksum گزارش میدهد، کابل یا اتصال بلوتوث مشکل دارد.
مطالب مرتبط
آیا این مطلب برای شما مفید بود؟