کد منبع پردازش پروتکل Nmea. شرح پروتکل NMEA

من نیاز به آزمایش برنامه ای داشتم که از داده های GNSS روی پروتکل NMEA استفاده می کند. به دلیل این واقعیت بود که من روی پروژه ای برای برنامه ناوبری هواپیما کار می کردم، آزمایش در هوا به طور طبیعی گران است، رانندگی ماشینی با گیرنده GNSS روی زمین چندان راحت نیست، بنابراین می خواستم داده های پروتکل NMEA داشته باشم. از جابه‌جایی تجهیزات ظاهراً در یک پورت موازی مجازی در حالی که پشت میز من نشسته‌ام. در ابتدا به دنبال نرم افزارهای مختلف بودم، فکر کردم چیزی مناسب پیدا کنم، اما بیشتر آنها پولی هستند و کنترل های شبیه سازی داده ها خیلی راحت نیستند، اگرچه تقریباً تمام پارامترهای استاندارد NMEA را شبیه سازی می کنند. اما من به چیزی ساده نیاز داشتم که مختصات، سرعت را تقلید کند، اساساً چیزی بیشتر نیست، و به کنترل‌های نسبتاً راحت و منطقی نیاز داشتم. بنابراین مجبور شدم یک برنامه از این نوع در سی شارپ بنویسم.

Fly_nmea


NMEA ("انجمن ملی الکترونیک دریایی") - نام کامل "NMEA 0183" است - یک پروتکل متنی برای ارتباط بین تجهیزات دریایی (معمولا ناوبری).
داده ها در قالب جملات منتقل می شوند. فرمت پیشنهاد به شرح زیر است:
$AAAAA[,<данные>]* هس ، جایی که:
$ - نماد شروع جمله (کد 24h);
AAAAA - آدرس پنج کاراکتری (نام) پیشنهاد؛
[, <данные>] - لیست فیلدهای داده جدا شده با کاما (کد 2Сh)؛
* - علامت چک جمع (کد 2Ah)؛
hh - چک جمع.

جمله مثال:
GGA - داده های موقعیت مکانی GPS
زمان، مکان و داده های مربوط به مشاهده.
$GPGGA,hhmmss.sss,llll.ll,a,yyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxx*hh

من باید چهار خط را شبیه سازی کنم:

  • GLL - مختصات مکان
  • GSV - ماهواره های قابل مشاهده
  • RMC - حداقل مجموعه داده های توصیه شده برای GPS و GLONASS
  • GSA - ضریب تخریب دقت مورد استفاده برای ماهواره های ناوبری
شبیه سازی به ترتیب زیر سازماندهی می شود:
  • ما مختصات اولیه را در سیستم WGS-84 تنظیم کردیم
  • سپس به یک طرح مسطح می رویم، به عنوان مثال Mercator (برای تبدیل مختصات از یک کتابخانه آماده در C# استفاده کردم)
  • با دانستن مختصات صفحه x، y، h، فیزیک حرکت هواپیما را با استفاده از پارامترهای متغیر از طریق یک رابط گرافیکی، مانند: رول، پیچ، سرعت پیاده‌سازی می‌کنیم.
  • مختصات تخت را به مختصات B، L، H سیستم WGS-84 تبدیل کنید
  • ما بسته ای از پیام های استاندارد NMEA را از چهار خط مورد نیاز تشکیل می دهیم
  • آنها را به پورت موازی مجازی ارسال کنید
Fly_nmea + سنسور اندروید
برای تست راحت‌تر، دریافت داده‌ها را از حسگرهای اندروید (زوایای شیب) نیز تنظیم کردم. اندروید دو خط ارسال می کند مانند:
  • "زاویه:\t236.04152\t-1.0\t-3.0"
  • "Acc:\t-0.46309182\t-0.14982383\t-10.56939"
در برنامه شبیه سازی، آنها را می پذیرم و بر اساس زوایای تمایل، پارامترها را تغییر می دهم:
  • گام صدا
در اپلیکیشن شبیه‌سازی، می‌توانید از کنترل از طریق رابط برنامه به سنسور اندروید سوئیچ کنید.
اتصال Fly_nmea
برای شبیه‌سازی پورت‌های COM، شبیه‌ساز پورت‌های سریال مجازی نیز باید اتصال دو پورت COM مجازی را پیکربندی کنید، برای مثال: COM1<->COM6 و برنامه Fly_nmea داده ها را به COM6 ارسال می کند و برای COM1 برنامه ای با استفاده از پروتکل NMEA آن را دریافت می کند.

نتیجه

در کل زمان بیشتری برای جستجوی چنین نرم افزارهایی صرف کردم و چیزی که کاملاً رضایتم را جلب کند پیدا نکردم، سریع خودم آن را نوشتم. علاوه بر پروژه ای که روی آن کار می کردم، همچنین موفق شدم شبیه ساز را با موفقیت به برنامه هایی که پروتکل NMEA را درک می کنند، مانند 2Gis و SAS planet متصل کنم.



FlyNMEA و سنسور اندروید (پروژه انتقال داده از حسگرها از طریق UDP)

NMEA 0183(از جانب " انجمن ملی الکترونیک دریایی") - استانداردی که یک پروتکل متنی برای ارتباط تجهیزات دریایی (معمولاً ناوبری) (یا تجهیزات مورد استفاده در قطارها) بین خود تعریف می کند. به دلیل گسترش گیرنده های GPS با استفاده از این استاندارد محبوبیت خاصی پیدا کرد.

نمای کلی خطوط در NMEA 0183

  • "$" یا "!" (هگز 24 یا هگز 21)
  • شناسه پیام 5 حرفی. طبق پروتکل NMEA 0183 یک نسخه خاص، دو حرف اول شناسه منبع پیام، سه حرف بعدی شناسه قالب پیام هستند.
  • لیستی از داده ها (حروف، اعداد و نقطه) که با کاما از هم جدا شده اند. اگر داده ای از دست رفته باشد داخلخطوط، کاما همچنان قرار می گیرند (به عنوان مثال، "،"). برخی از زمینه ها در پایانخطوط ممکن است به طور کلی گم شده باشند.
  • سمبل "*".
  • XOR هشت بیتی - مجموع همه کاراکترها (از جمله "" و "^") در خط بین "$" و "*" تبدیل به دو کاراکتر ASCII بزرگ برای نمایش هگزادسیمال بایت (0-9، A -F) .
  • (هگز 0D، هگز 0A).

حداکثر طول پیام به 82 کاراکتر محدود شده است (NMEA 0183 rev 3.0)

این استاندارد بیش از 250 شناسه توالی NMEA را توصیف می کند. این استاندارد نرخ تبادل داده را در 4800 باود تعریف می کند. (برای سرعت های 38400 باود و بالاتر استاندارد توسعه یافته NMEA-0183-HS وجود دارد).

این استاندارد به شما امکان می دهد شناسه های توالی خود را اضافه کنید، که اغلب توسط سازندگان برای انتقال اطلاعات اضافی در مورد عملکرد دستگاه استفاده می شود.

رشته RMC (مثال خاص)

$GPRMC,hhmmss.sss,A,GGMM.MM,P,gggmm.mm,J,v.v, b.b, ddmmyy, x.x, n,m*hh

مقادیر فیلد:

  • "GP" - شناسه منبع؛ در مثال داده شده، این GPS، "GL" - GLONASS، "GA" - Galileo، "GN" - GLONASS+GPS و غیره است.
  • "RMC" - "حداقل جمله C توصیه شده"
  • "hhmmss.sss" - زمان تثبیت مکان مطابق UTC: "hh" - ساعت، "mm" - دقیقه، "ss.sss" - ثانیه. طول ثانیه های کسری متفاوت است. صفرهای ابتدایی حذف نمی شوند.
  • "A" - وضعیت: "A" - داده ها قابل اعتماد هستند، "V" - غیر قابل اعتماد.
  • "GGMM.MM" - عرض جغرافیایی. 2 رقم درجه ("GG")، 2 رقم دقیقه کامل، یک نقطه و یک قسمت کسری از دقیقه با طول متغیر. صفرهای ابتدایی حذف نمی شوند.
  • "P" - "N" برای شمال یا "S" برای عرض جغرافیایی جنوبی.
  • "gggmm.mm" - طول جغرافیایی. 3 رقم درجه ("ggg")، 2 رقم دقیقه کامل، یک نقطه و یک قسمت کسری از دقیقه با طول متغیر. صفرهای ابتدایی حذف نمی شوند.
  • "J" - "E" برای شرق یا "W" برای طول جغرافیایی غربی.
  • "v.v" جزء افقی سرعت نسبت به زمین در گره است. عدد ممیز شناور اجزای صحیح و کسری با طول متغیر.
  • "b.b" - زاویه مسیر (جهت سرعت) بر حسب درجه. عدد ممیز شناور اجزای صحیح و کسری با طول متغیر. مقدار 0 مربوط به حرکت به سمت شمال، 90 به شرق، 180 به جنوب، 270 به غرب است.
  • "ddmmyy" - تاریخ: روز ماه، ماه، 2 رقم آخر سال (صفرهای ابتدایی مورد نیاز است).
  • "x.x" انحراف مغناطیسی بر حسب درجه است (اغلب وجود ندارد) که با استفاده از برخی مدل ها محاسبه می شود. عدد ممیز شناور اجزای صحیح و کسری با طول متغیر.
  • "n" - جهت انحراف مغناطیسی: برای به دست آوردن یک مسیر مغناطیسی، میل مغناطیسی باید "E" باشد - کم شود، "W" - به مسیر واقعی اضافه شود.
  • "m" - نشانگر حالت: "A" - مستقل، "D" - دیفرانسیل، "E" - تقریب، "N" - داده های غیر قابل اعتماد (اغلب وجود ندارد، این فیلد از جمله کاما در نسخه های قدیمی NMEA وجود ندارد).
  • "hh" - چک جمع.
  • - بایت 0x0D است.
  • - بایت 0x0A است.

نمونه های رشته RMC

مثال 1

$GPRMC,125504.049,A,5542.2389,N,03741.6063,E,0.06,25.82,200906,*17

مقادیر فیلد:

  • 12 ساعت 55 دقیقه 4.049 ثانیه UTC
  • "قابل اعتماد
  • عرض جغرافیایی 55 درجه 42.2389 اینچ شمالی
  • طول جغرافیایی 37° 41.6063" شرقی
  • سرعت 0.06 گره

NMEA (انجمن ملی الکترونیک دریایی) 2000 یک استاندارد انتقال داده برای ناوبری، ارتباطات و سایر تجهیزات شبکه اطلاعاتی است.

در بیشتر موارد، NMEA2000 در کاربردهای دریایی استفاده می شود. این پروتکل مبتنی بر پروتکل انتقال داده است می توان(شبکه منطقه کنترل کننده)، عمدتاً در اتوماسیون کشتی استفاده می شود.

انجمن ملی الکترونیک دریایی (NMEA) پروتکل خاصی را برای اطمینان از سازگاری بین محصولات دریایی از تولید کنندگان مختلف ایجاد کرده است.

پروتکل NMEA از زمان آغاز به کار، دستخوش تغییرات متعددی شده است تا فیلدها و پیام‌های جدیدی را شامل شود. نسخه فعلی که اکثر گیرنده ها از آن پشتیبانی می کنند است نسخه 2.3، اگرچه توضیحاتی در مورد جدید قبلا منتشر شده است نسخه 3.0.

پیام های NMEA

NMEA 2000 نه تنها داده های دریافتی، بلکه اندازه گیری ها را نیز توصیف می کند , فشارسنج ها و سایر وسایل ناوبری مورد استفاده در کشتی ها. رابط تبادل داده اکثر گیرنده های GPS قابل حمل مطابق با مشخصات NMEA پیاده سازی شده است. اکثر برنامه های ناوبری که نمایش داده های بلادرنگ را ارائه می دهند، از پروتکل NMEA پشتیبانی کرده و "درک" دارند. این داده ها شامل اندازه گیری های ناوبری کامل گیرنده GPS - موقعیت، سرعت و زمان است.

مشخصات کامل پیام NMEA به صورت عمومی در دسترس نیست و نمی توان آن را به طور رسمی به صورت الکترونیکی دانلود کرد. بخش های جداگانه آن، شرح کلی پروتکل NMEA و محبوب ترین پیام ها را می توان در اینترنت یافت. شما می توانید اسناد NMEA را به طور رسمی در وب سایت //www.nmea.org/ خریداری کنید.

پیام های خروجی NMEA

همه پیام‌های NMEA شامل مجموعه‌ای متوالی از داده‌ها هستند که با کاما از هم جدا شده‌اند. هر پیام فردی مستقل از دیگران است و کاملاً "کامل" است. پیام NMEA شامل:

  • عنوان،
  • مجموعه ای از داده های نشان داده شده توسط کاراکترهای ASCII،
  • فیلد "checksum" برای بررسی صحت اطلاعات ارسالی.

سرفصل

به طور معمول، عنوان شامل پنج کاراکتر است. دو کاراکتر اول نوع پیام را تعیین می کنند و سه کاراکتر باقی مانده نام آن را نشان می دهند. برای مثال، هدر پیام‌ها GPS NMEA با «GP» شروع می‌شود. پیام‌هایی که در مشخصات NMEA توضیح داده نشده‌اند، اما طبق قوانین کلی در گیرنده‌های GPS پیاده‌سازی می‌شوند، با یک پیشوند "P" همراه با سه کاراکتر منحصر به فرد برای هر شرکت قرار می‌گیرند. به عنوان مثال، پیام های NMEA دارای پیشوند "PGRM"، Magellan - "PMGN" هستند.

داده ها

هر پیام NMEA با "$" شروع می شود، با "\n" (فید خط) پایان می یابد و نمی تواند بیش از 80 کاراکتر باشد. همه داده ها در یک خط قرار می گیرند و با کاما از هم جدا می شوند. اطلاعات در قالب متن ASCII ارائه می شود و نیازی به رمزگشایی خاصی ندارد. اگر داده ها با 80 کاراکتر اختصاص داده شده مطابقت نداشته باشند، به چندین پیام "تقسیم" می شوند. این فرمت به شما امکان می دهد دقت و تعداد کاراکترها را در فیلدهای داده جداگانه محدود نکنید. به عنوان مثال، بخش کسری یک مقدار مختصات را می توان با سه یا چهار رقم اعشار نشان داد، اما این به هیچ وجه نباید بر عملکرد نرم افزار که داده های لازم را از پیام با شماره فیلد استخراج می کند، تأثیر بگذارد.

فیلد "Checkssum".

در پایان هر کدام NMEAپیام حاوی یک فیلد «جمع چک» است که با علامت «*» از داده ها جدا شده است. در صورت لزوم، می توان از آن برای تأیید صحت و اعتبار هر پیام دریافتی استفاده کرد.

پیام های دریافتی NMEA

پروتکل NMEA 2000 نه تنها از پیام‌های خروجی، بلکه از پیام‌های دریافتی نیز پشتیبانی می‌کند، که به عنوان مثال، می‌توانید با آن‌ها نقاط بین مسیر را به‌روزرسانی یا اضافه کنید. این پیام ها باید به شدت در قالب NMEA فرمت شوند، در غیر این صورت نادیده گرفته می شوند.

لیست پیام ها

پروتکل NMEA فهرست بزرگی از پیام‌های مختلف را توصیف می‌کند که دوجین آن‌ها به طور فعال در تجهیزات ناوبری استفاده می‌شوند. به دلیل محبوبیت زیاد و ارائه ساده داده ها، پروتکل NMEA نه تنها در تجهیزات دریایی، بلکه در گیرنده های GPS ژئودتیک، خانگی و هوانوردی نیز کاربرد پیدا کرده است.

AAM - رسیدن به Waypoint
ALM - داده های سالنامه
APA - داده های خلبان خودکار "A"
APB - داده های خلبان خودکار "B"
BOD - باربری به مقصد
DTM - داده در حال استفاده
GGA - اطلاعات راه حل ثابت
GLL - داده های طول و عرض جغرافیایی
GSA - اطلاعات عمومی ماهواره ای
GSV - اطلاعات دقیق ماهواره ای
MSK - انتقال کنترل به گیرنده پایه
MSS - وضعیت اصلی گیرنده
RMA - مجموعه داده های Loran توصیه شده
RMB - مجموعه داده های ناوبری GPS توصیه شده
RMC - حداقل مجموعه داده GPS توصیه شده
RTE - اطلاعات مسیر
VTG – بردار حرکت و سرعت
WCV - داده های سرعت نزدیک به ایستگاه بین راه
WPL - داده های نقطه راه
XTC - خطای خارج از مسیر
XTE - خطای خارج از مسیر اندازه گیری شده
ZTG – زمان UTC و زمان باقی مانده تا رسیدن به مقصد
ZDA - تاریخ و زمان

برخی از پیام‌های NMEA ممکن است حاوی همان فیلدهای داده باشند یا کاملاً حاوی داده‌های سایر پیام‌های کوچکتر NMEA باشند.

1. GGA - اطلاعات در مورد یک راه حل ثابت.

محبوب ترین و پرکاربردترین پیام NMEA اطلاعاتی در مورد راه حل ثابت فعلی ارائه می دهد - مختصات افقی، مقدار ارتفاع، تعداد ماهواره های استفاده شده و نوع راه حل.

$GPGGA,123519,4807.038,N,01131,000,E,1.08,0.9,545.4,M,46.9,M,*47جایی که:

GGA – NMEA Header

123519 – ساعت UTC 12:35:19

4807.038، شمال - عرض جغرافیایی، 48 درجه و 7.038 دقیقه عرض شمالی

01131.000، E – طول جغرافیایی، 11 درجه و 31.000 دقیقه طول شرقی

1 – نوع محلول*، محلول StandAlone

08 - تعداد ماهواره های مورد استفاده

0.9 - ضریب هندسی، HDOP

545.4، M – ارتفاع از سطح دریا بر حسب متر

46.9، M - ارتفاع ژئوئید بالای بیضی WGS 84

[فیلد خالی] - زمان سپری شده از آخرین تصحیح DGPS. با فعال شدن حالت DGPS پر می شود

[فیلد خالی] – شماره شناسایی ایستگاه پایه. با فعال شدن حالت DGPS پر می شود.

*انواع راه حل:

2. GSA - اطلاعات کلی در مورد ماهواره ها

این پیام NMEA حاوی لیستی از ماهواره های مورد استفاده در محاسبه موقعیت و مقادیر DOPهای هندسی است که دقت محاسبه موقعیت را تعیین می کند. پارامترهای DOP با آرایش هندسی ماهواره ها در آسمان تعیین می شود. هرچه ماهواره ها در آسمان بهتر "توزیع" شوند، DOP کمتر و دقت موقعیت بهتر است. حداقل مقدار PDOP (= 1) مربوط به وضعیتی است که در آن یک ماهواره مستقیماً بالای کاربر قرار دارد و 3 ماهواره دیگر به طور مساوی در سطح افق در اطراف توزیع شده اند. مقدار PDOP به عنوان جذر مجذور مجذور HDOP و VDOP محاسبه می شود.

$GPGSA,A,3,04,05,09,12,24,2.5,1.3,2.1*39جایی که:

هدر GSA – NMEA

A – نوع انتخاب بین راه حل های دو بعدی و سه بعدی، خودکار (A-auto، M-manual)

3 - نوع راه حل، راه حل 3 بعدی (1 - بدون راه حل، 2 - راه حل 2 بعدی، 3 - راه حل 3D)

04.05… – کدهای PRN مورد استفاده در محاسبه موقعیت های ماهواره ای (12 فیلد)

2.5 - عامل هندسی فضایی، PDOP

1.3 - ضریب هندسی افقی، HDOP

2.1 - ضریب هندسی عمودی، VDOP

3. GSV - اطلاعات دقیق در مورد ماهواره ها

این پیام NMEA حاوی اطلاعات دقیق برای همه ماهواره‌هایی است که توسط ناوبر GPS ردیابی می‌شوند. بر اساس محدودیت 80 کاراکتری، یک پیام NMEA فقط می تواند داده های 4 ماهواره را ارسال کند. بر این اساس، 12 ماهواره به 3 پیام GSV نیاز دارند. فیلد SNR (نسبت سیگنال به نویز) حاوی مقادیر سطوح سیگنال های ناوبری دریافتی از ماهواره ها است. از نظر تئوری، مقدار آن می تواند از 0 تا 99 متغیر باشد و در دسی بل اندازه گیری می شود. در واقع، سطح سیگنال در محدوده 25 ... 35 دسی بل قرار دارد. در اینجا شایان ذکر است که این پارامتر مطلق نیست و برای مقایسه حساسیت گیرنده های مدل ها و سازنده های مختلف مناسب نیست. ناوبرهای GPS می توانند از الگوریتم های مختلفی برای محاسبه سطح سیگنال دریافتی استفاده کنند که منجر به نتایج متفاوت با درجه حساسیت یکسان گیرنده ها می شود. برای هر ماهواره GPS مرئی، مجموعه ای از اطلاعات از جمله قدرت سیگنال، زاویه ارتفاع و آزیموت ماهواره ارسال می شود. تعداد این "مجموعه ها" با تعداد کل ماهواره های قابل مشاهده تعیین می شود که مقدار آنها در یک فیلد جداگانه ارسال می شود.

$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75جایی که:

GSV - هدر NMEA

2 - تعداد پیام های GSV در بسته

1 - شماره پیام در بسته (از 1 تا 3)

08 - تعداد ماهواره های قابل مشاهده

01 – شماره ماهواره

40 - زاویه ارتفاع، بر حسب درجه

083 - آزیموت بر حسب درجه

46 - SNR، سطح سیگنال

این پیام NMEA شامل کل مجموعه داده های به اصطلاح "PVT" است. "PVT" مخفف رایج "موقعیت، سرعت، زمان" است.

$GPRMC,123519,A,4807,038,N,01131,000,E,022.4,084.4,230394,003.1,W*6Aجایی که:

RMC - هدر NMEA 123419 - زمان UTC، 12:34:59

A – وضعیت (A – فعال، V – نادیده گرفتن)

NMEA 0183- پروتکل ارتباط متنی مورد استفاده در ماژول های دریافت GPS. این استاندارد برای ارتباط تجهیزات ناوبری دریایی ایجاد شده است. این پروتکل امکان انتقال دستورات و پیام های متنی را با استفاده از کاراکترهای ASCII فراهم می کند. بنابراین، برای دریافت پیام ها، استفاده از رابط سریال UART کافی است، در حالی که تمام پیام ها را می توان مستقیماً با استفاده از پورت COM به رایانه منتقل کرد، اما نیاز به تبدیل سطوح سیگنال را فراموش نکرد.

ماژول GPS پیام هایی را با فرمت های مختلف ارسال می کند که شامل مجموعه های مختلف داده است: طول و عرض جغرافیایی، سرعت، سمت، زمان، تعداد ماهواره ها و غیره. پیام ها به صورت متوالی ارسال می شوند و به چندین نوع تقسیم می شوند. بیایید نگاهی دقیق تر به ساختار کلی پیام هایی که ماژول GPS تولید می کند بیندازیم.

$ - هر پیام با این نماد شروع می شود

پس از آن یک شناسه از 5 کاراکتر متنی وجود دارد. دو حرف اول نوع سیستم ناوبری را نشان می دهد، به عنوان مثال. "GP" - GPSیا " GL" - گلوناسو غیره. 3 کاراکتر بعدی شناسه قالب پیام هستند که محتوای داده های ارسالی بعدی را به طور کامل تعیین می کند. مثلا "RMC"- این حداقل داده توصیه شده است که حاوی اطلاعاتی در مورد زمان و تاریخ، طول و عرض جغرافیایی، سرعت، مسیر و انحراف مغناطیسی در درجه است (ممکن است وجود نداشته باشد). یا "GSA"، داده های ماهواره ای در اینجا مخابره می شود. ساختار انواع پیام اصلی در زیر مورد بحث قرار خواهد گرفت.

سپس دنبال می شود «,» - یک کاما، که پس از آن بدنه پیام بلافاصله با داده های مختلف دنبال می شود که با همان کاما از یکدیگر جدا می شوند. اگر عدد ارسالی یک عدد صحیح نباشد، جداکننده بین عدد صحیح و کسری یک نقطه است. «.» .

انتهای متن پیام با علامت نشان داده می شود «*» . آنچه در ادامه می‌آید، جمع تمام کاراکترهای موجود بین «$» و «*» است، یعنی کل بدنه پیام، از جمله خود داده‌ها و شناسه‌های ابتدای پیام. جمع کنترلی با XOR کردن تمام کدهای اسکی هگزادسیمال کاراکترهای پیام محاسبه می شود.

و در انتهای هر پیام باید کاراکترهای خط جدید وجود داشته باشد

بیایید به هدف و ساختار انواع پیام های مختلف نگاه کنیم.

R.M.C.- حداقل داده های ناوبری توصیه شده پیام حاوی حداقل مقدار اطلاعات مورد نیاز است. این داده ها شامل طول و عرض جغرافیایی، تاریخ و زمان و سرعت است. برای بسیاری از کارها، به عنوان مثال، در ماژول، به موارد بیشتری نیاز نیست کوکتل L50من انتقال انواع دیگر پیام ها را خاموش کردم، زیرا من مطلقاً به اطلاعاتی در مورد ماهواره ها و سطح سیگنال های آنها نیازی ندارم. و دریافت اطلاعات غیر ضروری مستلزم پیچیده شدن برنامه برای پردازش این داده ها است. ساختار پیام به شرح زیر است:

$GPRMC hhmmss.sss،آ،ddmm.mmmm,N,ddmm. mmmm , E، v.v.ج. ج, ddmmyyyy,x.x,n,متر*هه

این پیام حاوی اطلاعات زیر است:

  • GPRMC– سیستم ماهواره ای GPS، شناسه پیام RMC
  • hhmmss.sss– زمان (زمان گرینویچ)، که در آن hh – ساعت، میلی متر – دقیقه، ss.sss – ثانیه
  • آ- داده ها قابل اعتماد هستند یا V- داده ها غیر قابل اعتماد هستند. سمبل آاین پیام ارائه خواهد شد که دریافت قابل اعتماد سیگنال های ماهواره ای لازم برای محاسبه داده های مکان وجود دارد. سمبل Vزمانی رخ می دهد که گیرنده ماهواره ها را نمی بیند یا زمانی که تعداد ماهواره های یافت شده برای محاسبه مطمئن مختصات کافی نباشد. به عنوان مثال، اگر ماژول GPS را در جایی در یک خانه پانل و دور از پنجره ها روشن کنید، به احتمال زیاد نماد را خواهید دید. Vدر پیام دریافتی
  • ddmm.mmmm- عرض جغرافیایی، درجه و دقیقه
  • نیا اس- شمال یا جنوب نیمکره ای که در آن قرار دارید. اگر در استرالیا هستید نشان داده خواهد شد اس. در یکاترینبورگ، ماژول GPS من می دهد ن.
  • ddmm.mmmm- طول جغرافیایی، درجه و دقیقه
  • Eیا دبلیو- نیمکره غربی یا شرقی
  • v.v- سرعت در گره
  • ج. ج- حرکت بر روی زمین بر حسب درجه. هنگام حرکت به سمت شمال 0 درجه خواهد بود.
  • ddmmyyyy- تاریخ
  • x.x- انحراف مغناطیسی
  • n- جهت انحراف مغناطیسی من نمی توانم در مورد این دو پارامتر آخر چیزی توضیح دهم. به عنوان مثال ماژول من GPS Quectel L50در طول پذیرش در آپارتمان، این داده ها به هیچ وجه روی پنجره نشان داده نشد، به سادگی از آن گذشتند.
  • متر– حالت ناوبری: ن- داده های نادرست، آ- خود مختار، D- دیفرانسیل

در اینجا نمونه ای از پیام RMC آمده است:

$GPRMC,105954.000,A,3150.6731,N,11711.9399,E,0.00,96.10,250313,A*53

  • GMT 10 ساعت 59 دقیقه و 54 ثانیه
  • آ- داده ها قابل اعتماد هستند
  • عرض جغرافیایی 31 درجه و 50.6371 دقیقه
  • ن- شمالی
  • طول جغرافیایی 117 درجه 11.9399 دقیقه
  • E- شرقی
  • سرعت 0.00 گره
  • خوب 96.1 درجه
  • تاریخ 25 مارس 2013
  • اطلاعات در مورد انحراف مغناطیسیهیچ یک
  • حالت - خود مختار
  • جمع بررسی کاراکترهای پیام 0×053

در اینجا باید به یک نکته اشاره کرد. داده های طول و عرض جغرافیایی شامل بخش کسری از دقیقه است که به هیچ وجه با تعداد "ثانیه ها" مطابقت ندارد، زیرا یک کسر اعشاری است. برنامه های GPS که من امتحان کردم مختصات روی نقشه را با دقت نشان می دهند. اما اگر این اعداد را در نوار جستجوی نقشه های گوگل وارد کنید، مکان روی نقشه چندین کیلومتر از مکان واقعی فاصله خواهد داشت. هنگام وارد کردن مختصات به دست آمده در این مورد، باید قسمت کسری عرض و طول جغرافیایی را بر 60 تقسیم کنید تا این اعداد به "ثانیه" تبدیل شوند. وقتی برای اولین بار ماژول Quectel L50 را وصل کردم و مختصات طول و عرض جغرافیایی بدست آمده را در نوار جستجوی نقشه های گوگل وارد کردم، موقعیتی را روی نقشه با خطای قابل توجهی دریافت کردم.

در اینجا چند نوع پیام دیگر مورد استفاده در این پروتکل آورده شده است:

  • VTG- جهت واقعی مسیر و سرعت زمین
  • GGA- آخرین داده های مکان
  • G.S.A.- داده های ماهواره های فعال
  • GSV- داده های ماهواره های قابل مشاهده، موقعیت و تعداد آنها و همچنین قدرت سیگنال
  • GLL- داده های طول و عرض جغرافیایی و زمان
  • ZDA- اطلاعات زمان و تاریخ

من به جزئیات در مورد آنچه که هر پیام شامل یک لینک به یک سند توصیف پروتکل در پایان مقاله داده شده است. یک نوع خاص از ماژول GPS ممکن است تمام داده های فهرست شده را انتقال ندهد. می توانید انتقال انواع مختلف داده ها را غیرفعال یا فعال کنید و همچنین مدت زمان تحویل آنها را تعیین کنید. برای پیکربندی ماژول، دستورات خاصی وجود دارد که با یک شناسه شروع می شود $PSRFxxx، جایی که xxxنوع و قالب دستور را دقیقاً مانند پیام های خروجی مشخص می کند.

مثلا دستور $PSRF100.0.9600.8.1.0*0C پروتکل ارتباطی را تنظیم می کند و پارامترهای پورت سریال را پیکربندی می کند.

  • 100 دلار PSRF –شناسه فرمان بومی پروتکل SIRF
  • 0 – پروتکل باینری SIRF، 1 - پروتکل NMEA
  • 9600 – سرعت بیت/ثانیه
  • 8 بیت داده
  • 1 کمی توقف
  • 0 - بررسی برابری غیرفعال است

تیم $PSRF103.00.00.02.01*26 پارامترهای خروجی را برای انواع مختلف پیام های ماژول پیکربندی می کند:

  • 103 دلار PSRF- شناسه فرمان پروتکل بومی SIRF
  • سپس بعد از نقطه اعشار دو رقم وجود دارد که نوع پیام سفارشی را تعیین می کند: 00 - GGA
    01 - GLL
    02 - GSA
    03 - GSV
    04 - RMC
    05 - VTG
  • دو رقم بعدی ترتیب صدور پیام ها را پیکربندی می کند، به عنوان مثال: 00 - به صورت دوره ای
    01 - در صورت درخواست
  • اعداد زیر دوره پیام را بر حسب ثانیه تنظیم می کنند: 00 = خاموش (پیام ها غیرفعال هستند)
    1-255 - فاصله بین پیام های این نوع در ثانیه
  • سپس انتقال جمع کنترلی در پیام NMEA ارسال شده توسط ماژول فعال/غیرفعال می شود: 00 - انتقال جمع کنترلی غیرفعال است
    01 - چک جمع منتقل می شود
  • پس از کاراکتر "*"، مانند پیام NMEA خروجی، یک جمع کنترل و کاراکترهای تغذیه خط ارسال می شود.

این تمام چیزی است که می خواستم به طور خلاصه در مورد پروتکل NMEA 0183 و دستورات کنترل ماژول در چیپست SIRF توضیح دهم. رمزگشایی دقیق تری از همه این پیام ها و دستورات به عنوان مثال در توضیحات پروتکل ماژول Quectel L50 آورده شده است که از لینک زیر قابل دانلود است.

شرح پروتکل NMEA

پیاده سازی در گیرنده های Garmin و GlobalSat

معرفی

انجمن ملی الکترونیک دریایی (NMEA) پروتکل خاصی را برای حفظ سازگاری بین تجهیزات ناوبری دریایی از تولید کنندگان مختلف ایجاد کرده است. این پروتکل NMEA نه تنها داده‌های دریافت‌شده از گیرنده‌های GPS، بلکه اندازه‌گیری‌های سونارها، رادارها، قطب‌نماهای الکترونیکی، فشارسنج‌ها و سایر دستگاه‌های ناوبری مورد استفاده در کشتی‌های دریایی را توصیف می‌کند. رابط تبادل داده اکثر گیرنده های GPS قابل حمل مطابق با مشخصات NMEA پیاده سازی شده است. اکثر برنامه های ناوبری که نمایش داده های بلادرنگ را ارائه می دهند، از پروتکل NMEA پشتیبانی کرده و "درک" دارند. این داده ها شامل اندازه گیری های ناوبری کامل گیرنده GPS - موقعیت، سرعت و زمان است. همه پیام‌های NMEA شامل مجموعه‌ای متوالی از داده‌ها هستند که با کاما از هم جدا شده‌اند. هر پیام فردی مستقل از دیگران است و کاملاً "کامل" است. یک پیام NMEA شامل یک هدر، مجموعه ای از داده های نشان داده شده توسط کاراکترهای ASCII و یک فیلد جمع کنترلی برای بررسی اعتبار اطلاعات ارسال شده است. هدر پیام های استاندارد NMEA از 5 کاراکتر تشکیل شده است که دو کاراکتر اول نوع پیام را مشخص می کند و سه کاراکتر باقی مانده نام آن را نشان می دهد. به عنوان مثال، همه پیام های GPS NMEA با پیشوند "GP" هستند. پیام‌هایی که در مشخصات NMEA توضیح داده نشده‌اند، اما طبق قوانین کلی در گیرنده‌های GPS پیاده‌سازی می‌شوند، با یک پیشوند "P" همراه با سه کاراکتر منحصر به فرد برای هر شرکت قرار می‌گیرند. برای مثال، پیام‌های NMEA «بومی» گارمین دارای پیشوند «PGRM» هستند، ماژلان – «PMGN» هر پیام NMEA با «$» شروع می‌شود، با «\n» («فید خط») پایان می‌یابد و نمی‌تواند بیشتر از 80 کاراکتر باشد. . تمام داده ها در یک خط قرار می گیرند و با کاما از یکدیگر جدا می شوند. اطلاعات در قالب متن ASCII ارائه می شود و نیازی به رمزگشایی خاصی ندارد. اگر داده ها در 80 کاراکتر تخصیص داده شده قرار نگیرند، به چندین پیام NMEA تقسیم می شوند. این فرمت به شما امکان می دهد دقت و تعداد کاراکترها را در فیلدهای داده جداگانه محدود نکنید. به عنوان مثال، بخش کسری مقدار مختصات را می توان با 3 یا 4 رقم اعشار نشان داد، اما این به هیچ وجه نباید بر عملکرد نرم افزار تأثیر بگذارد، که داده های لازم را از پیام با شماره فیلد انتخاب می کند. در پایان هر پیام NMEA یک فیلد "جمع کنترل" وجود دارد که با یک کاراکتر "*" از داده ها جدا شده است. در صورت لزوم، می توان از آن برای تأیید صحت و اعتبار هر پیام دریافتی استفاده کرد. پروتکل NMEA نه تنها از پیام‌های خروجی، بلکه از پیام‌های دریافتی نیز پشتیبانی می‌کند، به عنوان مثال، می‌توانید با آن‌ها نقاط بین مسیر را به‌روزرسانی یا اضافه کنید. این پیام ها باید مطابق با فرمت NMEA تولید شوند، در غیر این صورت به سادگی توسط گیرنده GPS نادیده گرفته می شوند. شایان ذکر است که همه برنامه های ناوبری و مدل های گیرنده از این حالت پشتیبانی نمی کنند، زیرا از پروتکل های اختصاصی سازندگان - Garmin، Magellan و غیره - برای بارگیری نقاط و مسیرها استفاده می کنند. پروتکل NMEA از زمان آغاز به کار، دستخوش تغییرات متعددی در ارتباط با افزودن فیلدها و پیام‌های جدید شده است. نسخه فعلی که توسط اکثر گیرنده ها پشتیبانی می شود نسخه 2.3 است، اگرچه نسخه جدید 3.0 قبلا منتشر شده است. مشخصات کامل پیام های NMEA به صورت عمومی در دسترس نیست و نمی توان آن را به صورت رسمی به صورت الکترونیکی دانلود کرد. می توانید اسناد NMEA را به صورت رسمی در http://www.nmea.org/ خریداری کنید.

لیست پیام ها

پروتکل NMEA لیست بزرگی از پیام‌های مختلف را توصیف می‌کند که از میان آن‌ها می‌توان دوجین پیام را شناسایی کرد که به طور فعال در تجهیزات ناوبری استفاده می‌شوند. به دلیل محبوبیت زیاد و ارائه ساده داده ها، پروتکل NMEA نه تنها در تجهیزات دریایی، بلکه در گیرنده های GPS ژئودتیک، خانگی و هوانوردی نیز کاربرد پیدا کرده است.

    AAM - رسیدن به ایستگاه بین راه

    ALM - داده های سالنامه

    APA - داده های خلبان خودکار "A"

    APB - داده های خلبان خودکار "B"

    BOD - باربری به مقصد

    DTM - داده در حال استفاده

    GGA - اطلاعات راه حل ثابت

    GLL - داده های طول و عرض جغرافیایی

    GSA - اطلاعات عمومی ماهواره ای

    GSV - اطلاعات دقیق ماهواره ای

    MSK - انتقال کنترل به گیرنده پایه

    MSS - وضعیت اصلی گیرنده

    RTE – اطلاعات مسیر VTG – بردار حرکت و سرعت

    WCV - داده های سرعت در نزدیکی ایستگاه بین راه

    WPL - داده های نقطه راه

    XTC - خطای خارج از مسیر

    XTE - خطای خارج از مسیر اندازه گیری شده

    ZTG – زمان UTC و زمان باقی مانده تا رسیدن به مقصد

    ZDA - تاریخ و زمان.

برخی از پیام‌های NMEA ممکن است حاوی همان فیلدهای داده باشند یا کاملاً حاوی داده‌های سایر پیام‌های کوچکتر NMEA باشند.

GGA - اطلاعاتی در مورد یک راه حل ثابت.

محبوب ترین و پرکاربردترین پیام NMEA اطلاعاتی در مورد راه حل ثابت فعلی ارائه می دهد - مختصات افقی، مقدار ارتفاع، تعداد ماهواره های استفاده شده و نوع راه حل.

$GPGGA,123519,4807.038,N,01131,000,E,1.08,0.9,545.4,M,46.9,M,*47

GGA – NMEA Header

123519 – ساعت UTC 12:35:19

4807.038، شمال - عرض جغرافیایی، 48 درجه و 7.038 دقیقه عرض شمالی

01131.000، E – طول جغرافیایی، 11 درجه و 31.000 دقیقه طول شرقی

1 - نوع محلول، محلول StandAlone

08 - تعداد ماهواره های مورد استفاده

0.9 - ضریب هندسی، HDOP

545.4، M – ارتفاع از سطح دریا بر حسب متر

46.9، M - ارتفاع ژئوئید بالای بیضی WGS 84

[فیلد خالی] - زمان سپری شده از آخرین تصحیح DGPS. با فعال شدن حالت DGPS پر می شود

[فیلد خالی] – شماره شناسایی ایستگاه پایه. با فعال شدن حالت DGPS پر می شود.

GSA - اطلاعات کلی در مورد ماهواره ها.

این پیام NMEA حاوی لیستی از ماهواره های مورد استفاده در محاسبه موقعیت و مقادیر DOPهای هندسی است که دقت محاسبه موقعیت را تعیین می کند. پارامترهای DOP با آرایش هندسی ماهواره ها در آسمان تعیین می شود. هرچه ماهواره ها در آسمان بهتر "توزیع" شوند، DOP کمتر و دقت موقعیت بهتر است. حداقل مقدار PDOP (= 1) مربوط به وضعیتی است که در آن یک ماهواره مستقیماً بالای کاربر قرار دارد و 3 ماهواره دیگر به طور مساوی در سطح افق در اطراف توزیع شده اند. مقدار PDOP به عنوان جذر مجذور مجذور HDOP و VDOP محاسبه می شود.

$GPGSA,A,3,04,05,09,12,24,2.5,1.3,2.1*39

    هدر GSA – NMEA

    A – نوع انتخاب بین راه حل های دو بعدی و سه بعدی، خودکار (A-auto، M-manual)

    3 - نوع راه حل، راه حل 3 بعدی (1 - بدون راه حل، 2 - راه حل 2 بعدی، 3 - راه حل 3D)

    04.05… - کدهای PRN مورد استفاده در محاسبه موقعیت های ماهواره ای (12 فیلد)

    2.5 - عامل هندسی فضایی، PDOP

    1.3 - ضریب هندسی افقی، HDOP

    2.1 - ضریب هندسی عمودی، VDOP

GSV - اطلاعات دقیق در مورد ماهواره ها

این پیام NMEA حاوی اطلاعات دقیق برای همه ماهواره‌هایی است که توسط ناوبر GPS ردیابی می‌شوند. بر اساس محدودیت 80 کاراکتری، یک پیام NMEA فقط می تواند داده های 4 ماهواره را ارسال کند. بر این اساس، 12 ماهواره به 3 پیام GSV نیاز دارند. فیلد SNR (نسبت سیگنال به نویز) حاوی مقادیر سطوح سیگنال های ناوبری دریافتی از ماهواره ها است. از نظر تئوری، مقدار آن می تواند از 0 تا 99 متغیر باشد و در دسی بل اندازه گیری می شود. در واقع، سطح سیگنال در محدوده 25 ... 35 دسی بل قرار دارد. در اینجا شایان ذکر است که این پارامتر مطلق نیست و برای مقایسه حساسیت گیرنده های مدل ها و سازنده های مختلف مناسب نیست. ناوبرهای GPS می توانند از الگوریتم های مختلفی برای محاسبه سطح سیگنال دریافتی استفاده کنند که منجر به نتایج متفاوت با درجه حساسیت یکسان گیرنده ها می شود. برای هر ماهواره GPS مرئی، مجموعه ای از اطلاعات از جمله قدرت سیگنال، زاویه ارتفاع و آزیموت ماهواره ارسال می شود. تعداد این "مجموعه ها" با تعداد کل ماهواره های قابل مشاهده تعیین می شود که مقدار آنها در یک فیلد جداگانه ارسال می شود.

$GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75

    GSV - هدر NMEA

    2 - تعداد پیام های GSV در بسته

    1 - شماره پیام در بسته (از 1 تا 3)

    08 - تعداد ماهواره های قابل مشاهده

    01 – شماره ماهواره

    40 - زاویه ارتفاع، بر حسب درجه

    083 - آزیموت بر حسب درجه

    46 - SNR، سطح سیگنال

این پیام NMEA شامل کل مجموعه داده های به اصطلاح "PVT" است. "PVT" مخفف رایج "موقعیت، سرعت، زمان" است.

$GPRMC,123519,A,4807,038,N,01131,000,E,022.4,084.4,230394,003.1,W*6A

    RMC – هدر NMEA

    123419 – زمان UTC، 12:34:59

    A – وضعیت (A – فعال، V – نادیده گرفتن)

    4807.038، شمال - عرض جغرافیایی، 48 درجه و 07.038 دقیقه عرض شمالی

    01131.000، E – طول جغرافیایی، 11 درجه و 31.000 دقیقه طول شرقی

    022.4 - سرعت، بر حسب گره

    003.1، W - تغییرات مغناطیسی

GLL - داده های طول و عرض جغرافیایی

پیام NMEA با مختصات طول و عرض جغرافیایی و زمانی که این راه حل محاسبه شده است.

$GPGLL,4916.45,N,12311.12,W,225444,A,*31

    GLL – هدر NMEA

    4916.46، شمال - عرض جغرافیایی، 49 درجه و 16.45 دقیقه عرض شمالی

    12311.12، عرض جغرافیایی W، 123 درجه و 11.12 دقیقه طول جغرافیایی غربی

    225444 - زمان ثابت در مقیاس زمانی UTC، 22:54:44

BOD - آزیموت به مقصد

این پیام NMEA نشان دهنده بلبرینگ به مقصد در حالت ناوبری است.

$GPBOD,045.,T,023.,M,DEST,START*01

    سربرگ BOD - NMEA

    045.,T - جهت واقعی به نقطه

    023.,M - جهت مغناطیسی به یک نقطه

    DEST - شماره شناسایی نقطه پایانی

    START - شماره شناسایی نقطه شروع

$GPRMB,A,0.66,L,003,004,4917.24,N,12309.57,W,001.3,052.5,000.5,V*20

    RMB – هدر NMEA

    A – نوع داده، (A – فعال، V – نادیده گرفتن)

    0.66، L - انحراف از مسیر. پارامتر بر حسب مایل دریایی تعریف می شود. (L – چپ، R – راست)

    003 - شماره شناسایی نقطه شروع

    004 - شماره شناسایی نقطه پایانی

    4917.24، N – مقدار عرض جغرافیایی نقطه پایانی، 49 درجه و 17.24 دقیقه عرض شمالی

    12309.57، W - مقدار طول جغرافیایی نقطه پایانی، 123 درجه 09.57 دقیقه طول جغرافیایی غربی

    001.3 - فاصله تا نقطه، در مایل دریایی

    000.5 - سرعت، بر حسب گره

    V - اطلاعات ورود (A - ورود، V - نقطه هنوز نرسیده است)

RTE - اطلاعات مسیر

پیام NMEA RTE لیستی از نقاط بین مسیر فعال را نمایش می دهد. دو نوع پیام RTE وجود دارد. در حالت اول، تمام نقاط مسیر نمایش داده می شود. در مورد دوم، تنها لیستی از نقاط باقیمانده وجود دارد که در حین حرکت در مسیر هنوز باید از آنها بازدید کرد. با توجه به اینکه پروتکل NMEA دارای محدودیتی است که طول پیام نباید از 80 کاراکتر تجاوز کند، یک پیام RTE می تواند از چندین خط تشکیل شده باشد.

$GPRTE,2,1,c,0,W3IWI,DRIVWY,32CEDR,32-29,32BKLD,32-I95,32-US1,BW-32,BW-198*69

    RTE – هدر NMEA

    2 - تعداد کل پیام ها برای نمایش لیست کامل داده ها

    1 - شماره پیام از لیست عمومی

    с – نوع پیام RTE (с – فهرست کامل نقاط مسیر، w – فهرست نقاطی که هنوز بازدید نشده‌اند)

    0 - شناسه مسیر

    W3IWI، DRIVWY، .. - لیست ایستگاه های بین راه

ویژگی های گارمین

گیرنده های گارمین از اکثر پیام های NMEA حاوی اندازه گیری ها، موقعیت ها و زمان GPS - GGA، GLL، GSA، GSV، RMC پشتیبانی می کنند. و همچنین پیام های ناوبری - RMB، BOD

برای نمایش این پیام ها باید رابط کاربری در تنظیمات گیرنده را از “Garmin” به “NMEA” تغییر دهید و احتمالاً سرعت مورد نظر را تنظیم کنید. همان سرعت باید در برنامه ناوبری در تنظیمات پورت سریالی که ناوبر به آن وصل است تنظیم شود.

متأسفانه گیرنده های دارای پورت USB از پروتکل NMEA پشتیبانی نمی کنند و تنظیمات آن را فقط به پروتکل گارمین محدود می کند.

برای نمایش اطلاعات ورودی به پورت سریال کامپیوتر، می توانید از برنامه ترمینال ویندوز یا یکی از برنامه های ناوبری که از این ویژگی پشتیبانی می کند استفاده کنید.

در زیر لیستی از پیام‌های NMEA گیرنده گارمین eMap که در یک دوره وجود دارند، آمده است.

$GPRMC,135412,A,5522.8973,N,03710.1401,E,0.0,0.0,190507,9.3,E,A*1F

$GPRMB,A,,A,A*0B

$GPGGA,135412,5522.8973,N,03710.1401,E,1,04,5.4,205.2,M,15.8,M,*4A

$GPGSA,A,3,08,13,23,25,5.7,5.4,1.0*3C

$GPGSV,3,1,11,02,15,267,00,03,11,085,45,04,05,236,00,08,39,233.00*77

$GPGSV,3,2,11,10,32,308,00,13,63,109,43,16,17,037,00,23,31,111,38*77

$GPGSV، 3،3،11،24،09،343،00،25،66،077،44،27،69،229.00*46

$GPGLL,5522.8973,N,03710.1401,E,135412,A,A*43

$GPBOD,T,M,*47

$PGRME، 19.1، M، 15.2، M، 25.3، M*15

$ PGRMZ, 673, f,3*19

$ PGRMM، WGS 84*06

علاوه بر پیام‌های استاندارد NMEA، گیرنده‌های گارمین مجموعه پیام‌های مخصوص به خود را پیاده‌سازی می‌کنند که هر کدام شامل یک پیشوند "GRM" در هدر، یک شناسه "M" یا "Z" برای شناسایی نوع داده و یک کاراکتر برای نام است.

PGRME - تخمین خطای موقعیت یابی

$PGRME، 15.0، M، 45.0، M، 25.0، M*1C

    15.0، M - ارزیابی خطای موقعیت افقی، بر حسب متر

    45.0، M - برآورد خطای عمودی، بر حسب متر

    25.0، M - خطای موقعیت کروی معادل

PGRMZ - اندازه گیری ارتفاع

$PGRMZ,93,f,3*21

    93، f - مقدار قد، بر حسب پوند

    3 - شرایط اندازه گیری موقعیت (2 - ارتفاع تعریف شده توسط کاربر،

    3 - ارتفاع محاسبه شده توسط GPS)

PGRMM - داده فعلی

$PGRMM،NAD27 کانادا*2F

    NAD27 Canada - نام داده افقی فعلی

ویژگی های سیرف

تراشه‌های GPS شرکت Sirf در تجهیزات ناوبری GPS مختلف، از بردهای معمولی گرفته تا ناوبرهای GPS قابل حمل و ماشین استفاده می‌شوند. اما بر خلاف ناوبرها، آنها فقط از پیام های NMEA مربوط به اندازه گیری GPS، موقعیت و محاسبات زمان پشتیبانی می کنند - GGA، GLL، GSA، GSV، RMC، VTG، ZDA.

"Sirf" همچنین از چندین پیام "ورودی" NMEA در نظر گرفته شده برای پیکربندی و تنظیم پارامترهای مختلف پشتیبانی می کند. علاوه بر این، Sirf پروتکل باینری خود را پیاده سازی می کند که به شما امکان می دهد تنظیمات بیشتری را تغییر دهید. این 5 پیام "ورودی" NMEA، طبق قوانین، با پیشوند $PSFR شروع می شود. همه پیام‌ها حاوی مجموعه‌ای ثابت از داده‌ها هستند و با کاراکتر «\n» (فید خط) پایان می‌یابند.

برای پیکربندی پارامترهای "Sirf" از برنامه ویژه "SirfTech" استفاده می شود. پارامترهای پیام NMEA در یک آیتم منوی جداگانه پیکربندی می شوند.

$GPGGA,100643,000,5522,9036,N,03710.1282,E,1,07,1,6,209.9,M,14.9,M,0000*52

$GPGSA,A,3,31,01,23,20,11,30,14,2.1,1.6,1.4*35

$GPGSV,3,1,12,20,84,187,41,01,49,067,46,23,46,238,45,31,45,073,50*7B

$GPGSV,3,2,12,11,25,194,34,13,16,240,04,15,319,30,17,14,273,21*7A

$GPGSV,3,3,12,30,10,026,33,14,05,063,22,05,04,009,25,25,03,195,*7F

$GPRMC,100643.000,A,5522.9036,N,03710.1282,E,0.16,119.11,200507,*0D

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

$GPGGA,100833,000,5522,9076,N,03710,1270,E,1,07,1,3,222.4,M,14.9,M,0000*53

$GPGLL,5522.9076,N,03710.1270,E,100833,000,A*34

$GPGSA,A,3,31,01,23,20,11,30,17,2.1,1.3,1.6*31

$GPGSV,3,1,12,20,84,180,43,01,49,067,47,23,47,238,45,31,45,072,49*77

$GPGSV، 3،2،12،11،24،193،26،13،16،240،26،04،15،319،24،17،13،273،31*78

$GPGSV,3,3,12,30,10,025,26,14,04,064,22,25,04,195,05,04,008,21*7C

$GPRMC,100833.000,A,5522.9076,N,03710.1270,E,0.18,4.86,200507,*00

$GPVTG، 4.86، T، M، 0.18، N، 0.3، K*60

$GPZDA,100834,000,05/20/2007,*5A

PSFR100، PSFR102 - پیکربندی پورت سریال

پیام NMEA شماره 100 برای تنظیم پورت A، پیام 102 - پورت B استفاده می شود. پیام 100 دارای یک فیلد اضافی است که به شما امکان می دهد رابط را به پروتکل باینری Sirf تغییر دهید.

بر این اساس، در پروتکل باینری دستوری وجود دارد که پورت را به فرمت NMEA برمی‌گرداند. قبل از تغییر به پروتکل باینری، باید بدانید که آیا برنامه ای وجود دارد که به شما امکان می دهد پروتکل NMEA را در آینده بازیابی کنید.

$PSRF100.0.9600.8.1.0*0C

$PSRF102.9600.8.1.0 * 3C

    PSRF100 - هدر NMEA

    0 - پارامتری که نشان می دهد پروتکل در چه حالتی تغییر کرده است (0-Sirf، 1-NMEA)

    9600 – سرعت پورت (4800، 9600، 19200، 38400)

    8 - بیت های داده (7، 8)

    1 - بیت های توقف (0،1)

    0 - جفت شدن (0 - هیچ، 1 - فرد، 2 - زوج)

PSFR101، PSFR104 - مقداردهی اولیه پارامترهای گیرنده

پیام های NMEA با شماره 101 و 104 برای مقداردهی اولیه پارامترهای در نظر گرفته شده برای دریافت GPS در نظر گرفته شده است. تعیین این پارامترها می تواند زمان دستیابی به ماهواره های GPS را افزایش دهد. پیام 101 مختصات فعلی را در قالب XYZ، پیام 104 - در قالب BLH (طول و عرض جغرافیایی) تنظیم می کند.

$PSRF101,-2686700,-4304200,3851624,95000,497260,921,12.3*22

PSRF104.37.3875111.-121.97232.0.95000.237759.922.12.3*3A

    PSRF101 - هدر NMEA

    37.3875111 – عرض جغرافیایی بر حسب درجه

    121.97232 - طول جغرافیایی بر حسب درجه

    0 – ارتفاع بر حسب متر

    95000 – تغییر ساعت

    237759 - زمان GPS، در ثانیه

    922 - شماره هفته GPS

    12 - تعداد کانال

    3 – نوع مقداردهی اولیه داده (1 – شروع گرم، 2 – شروع گرم، 3 – مقداردهی اولیه داده، 4 – شروع سرد با پاکسازی کامل داده ها، 8 – شروع سرد با بازگرداندن تنظیمات کارخانه)

PSFR103 - پیکربندی تولید پیام NMEA

این پیام NMEA به شما امکان می دهد دوره تولید هر پیام NMEA "خروجی" را تنظیم یا پرس و جو کنید.

$PSRF103.05.00.01.01*20

    PSRF103 - هدر NMEA

    05 - عنوان پیام

    01 - دوره، در ثانیه (0-255)

    01 - وجود چک‌سوم (0 - بله، 1 - خیر)

نتایج آزمایش

گیرنده Garmin eMap تحت شرایط دید عادی ماهواره ای مجموعه پیام های NMEA زیر را تولید می کند:

$GPRMC,104644,A,5522.8965,N,03710.1389,E,0.0,0.0,200507,9.3,E,A*16

$GPRMB,A,,A,A*0B

$GPGGA,104644,5522.8965,N,03710.1389,E,1.07,1.2,186.6,M,15.8,M,*44

$GPGSA,A,3,01,04,13,16,20,23,31,2.1,1.2,1.7*35

$GPGSV,3,1,10,01,34,070,48,04,28,311,40,11,10,190,00,13,32,249,41*7E

$GPGSV، 3،2،10،16،11،111،40،20،68،142،50،23،64،247،49،25،21،196.00*70

$GPGSV,3,3,10,30,05,012,00,31,36,055,52*7D

$GPGLL,5522.8965,N,03710.1389,E,104644,A,A*40

$GPBOD,T,M,*47

$PGRME، 6.0، M، 7.7، M، 9.8، M*29

$PGRMZ,612,f,3*1E

$PGRMM، WGS 84*06

$GPRTE,1,1,c,*37

از تجزیه و تحلیل پیام ها مشخص است که گیرنده در حال حاضر 10 ماهواره (GSV) را ردیابی می کند که از این تعداد 7 (GGA) در محاسبه موقعیت استفاده می شود. خطای موقعیت افقی برابر با 6 متر (RME) و نشانگر نوع راه حل 1 (GGA) است.

اگر شرایطی را ایجاد کنید که تحت آن سیگنال GPS دریافت نشود، پیام های GGA حاوی فیلدهای "خالی" هستند و نشانگر نوع تصمیم مقدار 0 (GGA) را می گیرد.

$GPGGA، 0.00، M، M، * 66

$GPGSA،A،1،،*1E

در حالت "عادی"، پیام های RMB و BOD حاوی فیلدهای خالی هستند. هنگامی که ایستگاه راه به عنوان مقصد نهایی انتخاب شد، این فیلدها با داده ها پر شدند. همانطور که از تجزیه و تحلیل پیام آمده است، فاصله تا نقطه 1620 مایل، آزیموت حرکت 6.3 درجه (BOD) است. در همان زمان، آزیموت پیام های BOD و RMB 0.1 درجه متفاوت است.

$GPRMB,A,0.00,R,Road,5524,501,N,03710,445,E,1,620,6,4,V,A*59

$GPBOD,6.3,T,357.0M,جاده,*74

هنگامی که مسیر Home برای پیمایش انتخاب شد، لیست پیام RTE لیستی از تمام نقاط بین مسیر را نمایش می دهد. و در پیام RMB - شماره شناسایی نقاط شروع و پایانی (بعدی) مسیر.

$GPRTE,1,1,c,HOME,SLOBODA,IERUSALIM,INSTITUT*01

$GPRMB,A,9.99,R,SLOBOD,IERUSAL,5555.237,N,03649.976,E,34.346,340.6,V,A*1F

نتیجه

در بیشتر موارد، کاربر نیازی ندارد و علاقه ای به دانستن اینکه چه داده هایی و در چه زمینه هایی در حال انتقال است، ندارد. اکثر برنامه های ناوبری داده های پیام NMEA را "تجزیه" می کنند و آنها را به شکل کاربر پسند - نمودارها، نمودارها، جداول و غیره ارائه می کنند.

پیام‌های NMEA برای کاربرانی که می‌خواهند در مورد داده‌های GPS تحقیق کنند، تخمین‌های اندازه‌گیری‌های به‌دست‌آمده را محاسبه کنند، یا رفتار گیرنده‌های ناوبری را تحت شرایط مختلف تجزیه و تحلیل کنند، از اهمیت ویژه‌ای برخوردار است. تعدادی برنامه وجود دارد که می توان از آنها برای حل این مشکلات استفاده کرد.

با این حال، فرمت NMEA برای تجزیه و تحلیل عمیق داده های GPS در نظر گرفته نشده است، زیرا شامل اندازه گیری های به اصطلاح "خام" - شبه محدوده، فاز، داپلر نیست. هر سازنده تجهیزات ناوبری پروتکل "باز" ​​یا "بسته" خود را دارد که این اطلاعات را نمایش می دهد

NMEA یک قالب ساده و قابل درک است که نه تنها امکان تبادل داده بین گیرنده های GPS و برنامه های ناوبری را فراهم می کند، بلکه به کاربران ایده هایی از اصول عملکرد تجهیزات ناوبری ماهواره ای می دهد.

توجه!

مقاله ای از وب سایت " پورتال GPS"



 

شاید خواندن آن مفید باشد: