WIPIVERSE

NMEA 0183

NMEA 0183은 미국 해양 전자 협회(National Marine Electronics Association, NMEA)가 정의하고 관리하는 해양 전자 장비 간 통신을 위한 전기적 사양 및 데이터 프로토콜 표준이다. 이 표준은 어군 탐지기, 소나, 풍속계, 자이로컴퍼스, 자동 조타 장치, GPS 수신기 등 다양한 해양 계측 장비 간의 데이터 교환을 위해 설계되었다. 이전의 NMEA 0180 및 NMEA 0182 표준을 대체하였으며, 레저용 선박 분야에서는 점차 NMEA 2000 표준으로 대체되고 있으나 상업용 선박에서는 여전히 NMEA 0183이 널리 사용된다.

개요

NMEA 0183의 전기적 표준은 EIA-422(RS-422)를 기반으로 하며, 대부분의 NMEA 0183 출력 하드웨어는 단일 EIA-232(RS-232) 포트도 구동할 수 있다. 표준은 광학적으로 절연된 입력을 요구하며, 출력에 대한 절연 요구사항은 없다.

데이터 전송 프로토콜은 단순한 ASCII 기반 직렬 통신 프로토콜을 사용한다. 하나의 "토커(talker)"가 여러 "리스너(listener)"에게 동시에 데이터를 "문장(sentence)" 단위로 전송하는 단방향(unidirectional) 통신 방식이다. 중간 확장기(expander)를 사용하면 하나의 토커가 거의 무제한의 리스너와 통신할 수 있으며, 멀티플렉서(multiplexer)를 사용하면 여러 센서가 하나의 컴퓨터 포트로 데이터를 전송할 수 있다.

NMEA 0183 표준은 RS-422 전송 방식만을 공식적으로 정의하지만, NMEA 0183 문장을 UDP 데이터그램에 담아 IP 네트워크를 통해 전송하는 방식도 사실상의 표준(de facto standard)으로 널리 사용된다.

NMEA 표준은 NMEA 회원이 아닌 경우 약 2,000달러(2020년 9월 기준) 이상에 판매되는 독점(proprietary) 표준이지만, 상당 부분이 공개 소스로부터 역설계(reverse-engineer)되어 공개적으로 알려져 있다.

통신 설정

일반적인 UART 설정은 다음과 같다:

  • 전송 속도(Baud rate): 4800
  • 데이터 비트: 8
  • 패리티: 없음
  • 정지 비트: 1
  • 핸드셰이크: 없음

AIS(Automatic Identification System) 장치에서는 38,400의 전송 속도를 사용하는 NMEA 0183HS(고속) 변형 표준이 사용된다.

메시지 구조

  • 모든 전송 데이터는 0x20(공백)부터 0x7e(~) 사이의 출력 가능한 ASCII 문자이다.
  • 메시지 최대 길이는 시작 문자($ 또는 !)와 종료 문자(\r )를 포함하여 82자이다.
  • 시작 문자는 $ (일반 필드 구분 메시지) 또는 ! (특수 캡슐화 메시지)이다.
  • 다음 5개 문자는 토커 식별자(2자)와 메시지 유형(3자)을 식별한다.
  • 모든 데이터 필드는 쉼표(,)로 구분된다.
  • 데이터가 없는 경우 해당 필드는 비워둔다.
  • 마지막 데이터 필드 직후의 첫 번째 문자는 체크섬이 제공되는 경우에만 애스터리스크(*)이며, 그 뒤에 2자리 16진수 체크섬이 온다.
  • 체크섬은 $와 * 사이의 모든 문자에 대한 비트별 배타적 논리합(XOR)이다.

GNSS 문장 예시

GNSS 수신기에서 사용되는 주요 NMEA 문장은 다음과 같다:

  • $--GGA: GPS 고정 데이터(시간, 3D 위치, HDOP)
  • $--GLL: 지리적 위치(위도, 경도)
  • $--GSA: GNSS DOP, 활성 위성, 2D/3D 모드
  • $--GSV: 가시 GNSS 위성
  • $--RMC: 권장 최소 GPS 데이터(시간, 2D 위치, 대지 속도 및 방향, 날짜)
  • $--VTG: 대지 방향 및 속도

토커 ID는 위성 시스템에 따라 달라지며, GPS는 GP, GLONASS는 GL, Galileo는 GA, BeiDou는 BD 또는 GB, QZSS는 GQ, NavIC(IRNSS)는 GI이다.

개정 이력

NMEA 0183은 지속적으로 유지보수되어 왔으며, 2023년 12월 기준 최신 버전은 V4.30이다. 주요 버전 이력은 다음과 같다:

  • 1.?? (1983): 최초 발표
  • 2.00 (1992): RS-232에서 RS-422로 전환
  • 3.00 (2000): 주요 개정
  • 4.00 (2008): 주요 개정
  • 4.11 (2018): GPS 외 GNSS 지원
  • 4.30 (2023): GPS, GLONASS, Galileo, BDS, QZSS, NavIC/IRNSS 전반에 걸친 인터페이스 업데이트

소프트웨어 호환성

NMEA 0183은 Google Earth, gpsd, OpenCPN, QGIS, ESRI 등 다양한 내비게이션 및 지도 소프트웨어에서 지원된다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기