본문 바로가기

카테고리 없음

GPS(nmea)

gps 를 사용함에 있어서 nmea 규격을 사용하는 경우가 많다.

nmea = The National Marine Electronics Association 으로 gps 에서 표준 프로토콜이다.

 

 

프로토콜은 gpgga, gpgsv, gprmc, gpgsa 로 구성 되어 있다.

ex)

gps 의 예시는 아래와 같다.

 

gpgga = Global Positioning System Fix Data

시간, 위도, 경도, 고도 등을 알 수 있다.

 

ex)

$GPGGA,114455.532,3735.0079,N,12701.6446,E,1,03,7.9,48.8,M,19.6,M,0.0,0000*48

- 114455.532는 시간으로서 Zulu time (그리니치 표준시) 기준으로 11시 44분 55.532초를 뜻한다.

- 3735.0079는 위도로서 37도 35.0079분을 뜻한다. 도(degree) 단위로 환산시, 35.0079/60 = 0.5 대략 37.5도가 된다.

- 뒤의 N은 북위를 뜻한다. 적도 남쪽에 있다면 S가 된다.

-12701.6446은 경도로서 127도 1.6446분을 뜻한다. 도(degree) 단위로 환산시, 1.6446/60 = 0.027 대략 127.0도가 된다.

- 뒤의 E는 동경을 뜻한다. W가 되면 서경이 된다.

- '48.8M'는 해수면 기준 고도이다.

- '19.6M'는 WGS-84에서 정해놓은 타원체로서 모델링한 지구와 구체로서 모델링된 지구의 고도차이를 뜻한다.

 

gpgsv = GPS Satellites in View

gps 가 수신 할 수 있는 모든 위성의 정보이다.

 

ex)


$GPGSV,3,1,10,03,86,244,00,19,51,218,38,16,51,057,00,07,40,048,00*77
$GPGSV,3,2,10,13,34,279,00,23,33,236,00,15,29,076,40,25,25,143,38*71
$GPGSV,3,3,10,21,18,051,,27,12,315,*77

 

- '3'은 앞으로 나올 GPGSV가 총 몇 개의 Sentence일지 알려준다. 여기에서는 총 3개의 Sentence이다.

'1'은 GPGSV Sentence중 몇 번째의 Sentence인지 알려준다. 여기에서는 1번째 Sentence이다.

'10'은 현재 수신할 수 있는 모든 위성의 개수를 나타낸다.

- 03,86,244,00  에서 보면 03번 위성, 현제 자신의 위치 86도 244도의 Azimuth 신호 잡음비 = 0 이라는 뜻이다.

-  한 위성당 4개의 신호가 들어온다

 

gprmc = Recommended Minimum data

추천되는 최소한의 데이터 이다.

ex)

$GPRMC,114455.532,A,3735.0079,N,12701.6446,E,0.000000,121.61,110706,,*0A

 

- 114455.532는 시간으로서 Zulu time (그리니치 표준시) 기준으로 11시 44분 55.532초를 뜻한다.

- A는 GPS 신호의 신뢰성을 뜻한다. (A = 신뢰할 수 있음, V = 신뢰할 수 없음)

- 3735.0079는 위도로서 37도 35.0079분을 뜻한다. 도(degree) 단위로 환산시, 35.0079/60 = 0.5 대략 37.5도가 된다.

- 뒤의 N은 북위를 뜻한다. 적도 남쪽에 있다면 S가 된다.

- 12701.6446은 경도로서 127도 1.6446분을 뜻한다. 도(degree) 단위로 환산시, 1.6446/60 = 0.027 대략 127.0도가 된다.

- 뒤의 E는 동경을 뜻한다. W가 되면 서경이 된다.

- '0.000000'은 Speed over ground로서 knots 단위의 속도계이다.

- '121.61'은 Track Angle in degree true로서, 진행 방향을 정북을 0도부터 359도 까지 표현한 것이다. 121.61은 대략 동남쪽이다.

- '110706'은 Date를 뜻한다. 여기에서는 11th, July, 2006이며 2006년 7월 11일이다.

 

gpgsa = GNSS DOP and Active Satellite

데이터를 제공하는 위성을 나열 (12개까지)

ex)

$--GSA,a,x,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,x.x,x.x,x.x*hh<CR><LF>

- $--GSA : 문장 ID

- a : 모드1 - A = 2D/3D 자동변환 ,M =수동 전환

- x : 모드2 - 2 = 2D , 3=3D

- xx :사용된 위성번호 1~12개