วันเสาร์ที่ 26 พฤศจิกายน พ.ศ. 2554

GPS : โปรโตคอล NMEA ของ GPS

ทฤษฏีพื้นฐานและหลักการ  (เป็นข้อมูลบางส่วน จากการทำวิจัยในระดับปริญญาโท)

NMEA ย่อมาจาก Nation Maritime Electronics Association ซึ่งเป็นสมาคมที่มุ่งเน้นศึกษาและพัฒนาอุปกรณ์อิเล็กทรอนิกส์ เพื่อการเชื่อมต่อและทำงานร่วมกันของอุปกรณ์ โดยอุปกรณ์เหล่านี้ เมื่อเชื่อมต่อและทำงานร่วมกันต้องสามารถเข้าใจกันได้ หรือสื่อสารโดยใช้ภาษาเดียวกัน NMEA จึงพัฒนามาตรฐานในการสื่อสารข้อมูลระหว่างอุปกรณ์ดังกล่าว เรียกว่า NMEA Standard ซึ่งระบุข้อมูลการเชื่อมต่อทางไฟฟ้าและรูปแบบของข้อมูล

รูปแบบประโยคของโปรโตคอล NMEA ในเครื่อง GPS

  • NMEA Standard ก็เช่นเดียวกับโปรโตคอลภาษาอื่นๆทีได้มีการพัฒนาเวอร์ชัน โดยเริ่มตั้งแต่ NMEA-0180, NMEA-0182 จนถึง NMEA-0183 โดยที่การใช้งานของ NMEA-0180 และ NMEA-0182 ค่อนข้างมีข้อจำกัดและจะเน้นทางการสื่อสารระหว่าง Loran C กับ Autopilot ดังนั้น ได้มีการพัฒนาให้สามารถใช้งานได้อย่างกว้างขวางขึ้น โดยครอบคลุมอุปกรณ์อิเล็กทรอนิกส์ในการเดินเรือจนกลายมาเป็น NMEA-0183 ใช้อักษร ASCII และการสื่อสารข้อมูลแบบอนุกรมในการส่งข้อมูล จากอุปกรณ์ตัวหนึ่งไปยังอุปกรณ์รับตัวหนึ่งหรือหลายๆตัว
  • มาตรฐาน NMEA-0183 ในมาตรฐานนี้ ตัวอักขระที่ใช้คือ ASCII Text ซึ่งสามารถพิมพ์ได้ (รวมไปถึง Carriage Return and Line Feed) NMEA-0183 นั้นส่งข้อมูลด้วยอัตรา 4800 baud ข้อมูลจะถูกส่งในรูปของประโยค (Sentences)

      โปรโตคอลที่สำคัญของเครื่อง GPS จะอยู่ในชุด NMEA ซึ่งเป็นโปรโตคอลมาตรฐานของ GPS แต่ภายในอาจมีโปรโตคอลอื่นประกอบอีกมากมาย แต่โปรโตคอลที่ใช้งานหลักมีดังนี้

GGA   – รูปแบบที่แสดงว่าข้อมูลของ GPS เพียงพอที่จะแสดงพิกัดได้สามมิติ (3D) ซึ่งดาวเทียมที่รับได้ต้องมากถึง 4 ดวงขึ้นไป ภาษาอังกฤษเรียกว่า Fix data
ตัวอย่าง : $ GPGGA ,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
ความหมาย :
GGA -  Global Positioning System Fix Data
123519 -  ข้อมูล Fix เมื่อเวลา 12:35:19 UTC
4807.038,N -  ค่าพิกัดแล็ตติจูดด้านเหนือเส้นศูนย์สูตร 48 deg 07.038 ? N
01131.000,E -  ค่าพิกัดลองจิจูดด้านตะวันออก 11 deg 31.000 ? E
1  – คุณภาพของข้อมูล Fix :
0 = ช้อมูลไม่ถูกต้อง
1 = GPS fix (SPS)
2 = DGPS fix
3 = PPS fix
4 = Real Time Kinematic
5 = Float RTK
6 = estimated (dead reckoning) (2.3 feature)
7 = Manual input mode
8 = Simulation mode
08 – จำนวนดาวเทียม GPS ที่รับได้
0.9 – ค่าความคลาดเคลื่อนการระบุตำแหน่งแนวราบ
545.4,M – ค่าความสูงเหนือระดับน้ำทะเลปานกลาง
46.9,M  – ความสูงของจีออยด์เหนือทรงรี WGS84
( ช่องว่าง) – เวลาเป็นวินาทีนับจากที่ได้รับค่า fix รูปแบบ DGPS
( ช่องว่าง) – แสดงหมายเลขสถานีของ DGPS
*47 – ค่า checksum นำหน้าด้วย *

GSA   – รูปแบบที่แสดงรายละเอียดของข้อมูล Fix จำนวนดาวเทียมที่ใช้งานได้ รวมถึงค่าความคลาดเคลื่อน DOP (dilution of precision) ซึ่งตัวเลขน้อยๆจะเป็นค่าที่ดีมีความถูกต้องสูง
ตัวอย่าง : $GPGSA,A,3,19,28,14,18,27,22,31,39,,,,,1.7,1.0,1.3*35
ความหมาย :
GSA – Satellite status
A – คือ mode ของสถานะของข้อมูล fix เป็น A – Automatic, M = Manual
3 – คือตัวเลขแสดงสถานการ fix ประกอบไปด้วยค่า:
1 = ข้อมูลไม่ fix
2 = ข้อมูล fix แบบสองมิติ
3 = ข้อมูล fix แบบสามมิติ
19,28,14,18,27,22,31,39  –   คือหมายเลขดาวเทียมที่รับได้ ในที่นี้รับได้ 8 ดวงและ
ตามด้วยเครื่องหมายคอมมาว่างๆอีก 4 ซึ่งเครื่อง GPS จะรับได้สูงสุด 12 ดวง
1.7  – ค่าความคลาดเคลื่อนในการระบุตำแหน่ง PDOP (dilution of precision)
1.0  – ค่าความคลาดเคลื่อนในการระบุตำแหน่งทางราบ (HDOP)
1.3  – ค่าความคลาดเคลื่อนในการระบุตำแหน่งทางดิ่ง (VDOP)
*35  – ค่า checksum นำหน้าด้วย *


GSV   – รูปแบบที่แสดงรายละเอียดของ GPS แต่ละดวงเช่นระดับความสูง (Elevation) อะซิมัทและ SNR (Signal to Noise Ratio) ซึ่ง เทียบได้กับความแรงของสัญญาณ SNR มีค่าตั้งแต่ 0 ถึง 99 ซึ่งค่ามากเป็นค่าที่ดี ในบางขณะเครื่อง GPS อาจจะรับสัญญาณได้เต็มที่ทั้งหมด 12 ดวง การส่งข้อความจะมากไปถ้าต้องแสดงในบรรทัดเดียว สมาคม NMEA จึงออกแบบให้รูปแบบ GSV สามารถแสดงข้อมูลดาวเทียมได้เต็มที่ประโยคหรือบรรทัดละ 4 ดวงเท่านั้น ดังนั้นถ้ารับสัญญาณดาวเทียมได้ทั้ง 12 ดวงจะได้รับประโยคทั้งหมด 3 บรรทัด
ตัวอย่าง $GPGSV,2,1,08,01,40,083,46,02,17,308,41,12,07,344,39,14,22,228,45*75
ความหมาย :
GSV – Satellites in view
2 – จำนวนประโยคข้อความ (ในที่นี้รับดาวเทียมได้ 8 ดวง จึงใช้แค่ 2 บรรทัดเท่านั้น)
1 - ประโยคที่ 1 จากทั้งหมด 2 ประโยค
08 – จำนวนดาวเทียมที่รับสัญญาณได้
01 – หมายเลขดาวเทียม GPS
40 – ระดับความสูง หน่วงเป็นองศา
083 – อะซิมัท (ทิศเหนือ 0 ทิศตะวันออก 90 ทิศใต้ 180 ทิศตะวันตก 270)
46 – SNR – ความแรงของสัญญาณ ค่าสูงเป็นค่าที่ดี
02,17,308,41 – ดาวเทียมหมายเลข 2 พร้อมข้อมูล elevation, azimuth และ SNR
12,07,344,39 – ดาวเทียมหมายเลข 12 พร้อมข้อมูล elevation, azimuth และ SNR
14,22,228,45 – ดาวเทียมหมายเลข 14 พร้อมข้อมูล elevation, azimuth และ SNR
*75 – ค่า checksum นำหน้าด้วย *

RMC   – รูปแบบที่แสดงรายละเอียดของ GPS เรื่องความเร็ว (velocity) ค่าพิกัด เวลา ตลอดจนทิศทาง
ตัวอย่าง : $GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A
ความหมาย :
RMC – Recommended Minimum sentence C
123519 – ข้อมูล fix เมื่อเวลา 12:35:19 UTC
A – สถานะ A= กำลังใช้งาน หรือ V= ยกเว้น
4807.038,N – ค่าแล็ตติจูด 48 องศา 07.038 ?   เหนือ
01131.000,E – ค่าลองจิจูด 11 องศา 31.000 ? ตะวันออก
022.4 – ความเร็วเทียบกับพื้นดิน หน่วยเป็น knot ( ไมล์ทะเลต่อชั่วโมง)
084.4 – มุมของทิศทางเทียบกับเหนือจริง
230394 – วันที่ – 23 มีนาคม 1994
003.1,W – มุมต่างระหว่างเหนือจริงกับเหนือแม่เหล็ก
*6A – ค่า checksum นำหน้าด้วยเครื่องหมาย *

ขอขอบคุณ http://priabroy.wordpress.com/ 
<< กลับสู่หน้าหลัก

1 ความคิดเห็น:

  1. อยากทราบว่ามีมาตราฐานอื่นนอกเหนือจาก NMEA ไหมคะ

    ตอบลบ