다들 아시다시피 GPS 위성이 보내오는 전파를 이용 GPS 단말기는 현재 단말기의 경도와 위도 그리고 고도와 함께 정확한 현재 시각을 표시합니다. 4가지 데이타중 네비게이션에는 경도와 위도 그리고 고도가 중요하게 쓰이지만 나머지 정보인 아주 정밀한 시각을 제공하는 GPS 표준시각을 이용 컴퓨터 시각을 조절하는 법을 소개합니다.
이번 소개에는 아주 정밀한 타임서버 전용 GPS 단말기가 아닌 가민의 eTrex Legend 를 사용했습니다. eTrex Legend 와 같은 일반적인 네비게이션용 GPS 단말기를 이용해 컴퓨터 시각을 GPS 위성 시각에 동기시킬 경우 약 300 ms 정도의 오차가 발생합니다. 이는 대단히 큰 오차로 단지 호기심과 실험정신이 발동해 해본 것입니다. 정확한 컴퓨터 시각동기를 원하시면 GPS 를 이용하지 않고 인터넷에 많이 있는 공개 타임서버에 컴퓨터 시각을 연동시키는게 더욱 정확하며 편리합니다. 인터넷 타임서버를 이용할 경우 1 ms ~ 30 ms 이내의 정확도로 컴퓨터 시각을 타임서버와 동기시킬 수 있습니다. 표준 시각과 마이크로 세컨드 단위의 아주 정밀한 컴퓨터 시각 동기를 요구할 경우 타임서버 전용 GPS 수신기를 사용해야 합니다. 컴퓨터 시각을 타임서버에 동기시키는 방법은 http://time.ewha.net 에 자세한 설명이 있습니다.
필요한 것들:
1) GPS 단말기와 단말기와 컴퓨터를 연결할 시리얼 케이블; 재방사 안테나가 없어 GPS 단말기를 창문 밖에 놔둬야 하기 때문에 5 m짜리 9핀 연장 시리얼 케이블을 4,000원에 샀습니다.
2) GPS 신호를 컴퓨터 시각과 동기시키는 프로그램
3) 윈도우 2000/XP 운영체제; 아래 설명은 윈도우 XP 를 기준으로 합니다. 윈도우 9x 계열도 가능합니다. 9x 계열인 경우 9x 용 Tardis 2000 을 설치하면 됩니다.
시작하기 전 알아두어야 할 사항:
GPS 단말기는 현재 위치와 시간 정보를 외부로 보내고 받을 때 NMEA(National Marine Electronics Association) 0183 프로토콜을 사용하며 NMEA 프로토콜중 단말기마다 특징적으로 사용하는 구문(Sentence)이 있습니다. 이 구문은 NMEA 에서 정한 것도 있고 각 GPS 제조사에서 자기들만이 만든 고유한 구문도 있습니다. 이 구문은 현재 위치와 시간등을 포함하는 아스키 코드로 되어 있는데, GPS 단말기를 이용 컴퓨터 시각을 동기시킬 경우 가장 좋은 구문은 $GPZDA 로 UTC 와 local date/time data 를 포함하고 있는 구문입니다.
$GPZDA 구문의 예를 보면 $GPZDA,024611.08,25,03,2002,00,00*6A 과 같습니다. 024611.08 은 현재 UTC(GMT) 시각으로 오전 2시 46분 11.08초이고 08,25,03 는 현재 날짜로 2003년 8월 25일을 말합니다. 그러나 대부분의 단말기는 $GPZDA 를 제공하지 않습니다. 차선책으로 타임서버에서 사용할 수 있는 구문은 $GPRMC 로 $GPRMC 구문은 $GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191194,020.3,E*68 와 같이 되어 있습니다. $GPZDA 와는 다르게 현재 위치 데이타가 포함됩니다.
자신의 GPS 메뉴얼을 확인해 $GPZDA 나 $GPRMC 구문을 출력하는지 확인합니다. 아울러 GPS 설정에서 NMEA IN/NMEA OUT 로 BAUD RATE 는 4800 으로 설정합니다.
프로그램 설치:
1) GPS 신호와 윈도우 2000/XP 계열 컴퓨터 시각을 동기시키는 Time Synchronizing Program 으로 Tardis 2000 NT v1.5 를 사용합니다. Tardis 2000 NT v1.5 는 타디스 홈페이지(http://www.kaska.demon.co.uk/) 나 http://time.ewha.net/download/tardis2000ntman.zip 에서 다운로드 합니다.
2) Tardis 2000 NT v.1.5 를 설치합니다. 설치 방법은 http://time.ewha.net/tardis2000nt.shtml 를 참조합니다.
Tardis 2000 NT 를 설치하고 제어판에 가면 Tardis2000 아이콘이 생깁니다. 아이콘을 더블 클릭하면 첫번째 화면이 나옵니다. 여기서 Clear All 을 눌러 기존의 타임서버들을 삭제합니다.

3) Add 버튼을 눌러 아래 그림과 같이 자신의 GPS 단말기 정보를 입력합니다.

Protocol 은 NMEA GPS device connected to serial port 를 선택하고 Address 에는 자신의 GPS 단말기가 연결되어 있는 COM 포트 번호를 입력합니다. Name 에는 자신이 원하는 내용을 입력합니다.
4) GPS 설정창에 Speed 를 4800 으로 합니다.

5) 설정을 끝낸 모습

6) Main 탭에서 Stop 버튼을 누르면 생기는 Start 버튼을 누르던지, 조금 기다리다가 시간이 지나 Information 탭을 누르면 아래와 같은 그림이 나오며 GPS 신호를 이용 컴퓨터 시각이 자동 조절됨을 알 수 있습니다.

리눅스에서 표준시각 동기에 사용하는 NTP (Network Time Protocol)를 이용 GPS 시각과 동기된 모습은 아래와 같습니다.
[root@gps root]# ntpq -p
remote refid st t when poll reach delay offset jitter
=======================================================================
*GPS_NMEA(0) .GPS. 0 l 5 16 377 0.000 -6.186 19.121
+ntp.hiroshima-u .GPS. 1 u 41 64 377 69.291 -7.075 15.524
-rustime01.rus.u .DCFp. 1 u 6 64 377 312.858 7.848 6.942
+time.nist.gov .ACTS. 1 u 53 64 377 158.981 -7.949 16.879
-otc1.psu.edu .WWV. 1 u 15 64 377 249.646 -22.410 10.338
eTrex Legend 를 리눅스에서 사용해도 케이블의 길이와 GPS 단말기의 응답시간등으로 약 300 ms 의 오차가 발생합니다. 리눅스인 경우 일정한 오차가 반복될 경우 이를 보정할 수 있는 기능이 있습니다. Intel 440 BX 보드 / 팬티엄 II 350 MHz / 256 MB SDRAM / 히타치 6.4 GB 하드 디스크에 RedHat Linux 9 Schrike (2.4.20-31.9) 설치하고 NTP v4.1.2 를 설치했을 때 대한민국 표준시각 대비 약 305 ms 늦으므로 305 ms 에 대한 보정값을 입력한 ntp.conf 파일 내용은 아래와 같습니다.
[root@gps etc]# cat ntp.conf server 127.127.20.0 minpoll 4 maxpoll 6 # Garmin GPS eTrex Legend server ntp.hiroshima-u.ac.jp # GPS server ntp1.fau.de # DCFp server time.nist.gov # ACTS server otc1.psu.edu # WWV fudge 127.127.20.0 time1 0.305 driftfile /etc/ntp/drift
$GPRMC 구문 예
가민 eTrex Legend 가 출력하고 있는 NMEA 프로토콜중 $GPRMC 구문은 아래와 같습니다.
$GPRMC,163610,A,3722.6926,N,12707.6021,E,0.0,0.0,180205,7.6,W,A*0C
위의 구문에서 163610 은 현재 시간으로 16시 36분 10초를 말하며 시간대는 UTC(GMT) 를 말합니다. 또한 180205 는 2005년 2월 18일을 뜻합니다. 그외 현재 위치 좌표(WGS-84)가 보입니다. 본의 아니게 글쓰고 있는 지점의 좌표가 $GPRMC 구문에 나와있네요...
설정 끝낸 후 http://time.ewha.net/clock_test/ 에 접속하고 국번없이 전화 116을 걸어 현재 대한민국 표준시와 컴퓨터 시계(가운데 디지털 클럭이 아닌 동그란 아날로그 클럭)가 맞는지 확인해 보세요. 아주 약간 느림을 알 수 있습니다. 또 다른 방법으로는 http://www.gpsclock.com/check.html 에 접속해 자신의 컴퓨터 ip address 를 입력하면 정확도가 나옵니다. 윈도우 XP 서비스 팩 2 설치한 사람은 윈도우 방화벽에서 NTP 가 사용하는 UDP 포트 123 번을 열어야 측정이 가능합니다.
GPS 단말기가 가지고 있는 또다른 재미난 기능을 소개해봤습니다.
댓글
댓글 리스트-
작성자남정권 작성시간 05.02.19 [활용팁]란의 글번호 217번 하단 부분에 설명해 두었는데 단점은 Garmin 휴대용 GPS만 가능하기 때문에 300ms 이하의 정확한 동기는 불가능하겠네요! 좋은 정보 감사합니다.
-
작성자asklee59 작성자 본인 여부 작성자 작성시간 05.02.19 현재 공개 stratum 2 타임서버로 ntp.ewha.net 과 ticktock.ewha.net 두개의 타임서버를 운영중입니다. ticktock.ewha.net 은 네트워크 문제로 잠시 쉬고 있지만 두대 모두 충분한 정확도로 유지되고 있습니다. GPS200 이란 GPS 단말기를 구입해 stratum 1 서버를 구축하고 싶은데, 단말기 가격이 US$380.00 이라 고민중...
-
작성자asklee59 작성자 본인 여부 작성자 작성시간 05.02.19 이곳 다음 서버도 서버 시간이 틀리네요. 약 1분 가량 늦습니다. 타임서버 전용 GPS 단말기를 이용 타임서버 구축하면 다시 이곳에 글 남기겠습니다
-
작성자雲水衲子 작성시간 05.02.22 아마 time.nuri.net도 공개 운영 될겁니다.
-
작성자asklee59 작성자 본인 여부 작성자 작성시간 05.02.23 stratum 2 서버인 time.nuri.net 은 현재 ntp1.epidc.co.kr 로 변경되었습니다. 그외 국내 공개 stratum 2 타임서버로는 ntp.ewha.net 과 ticktock.ewha.net 그리고 ntp2.epidc.co.kr 과 time.bora.net 이 있습니다. 국내 공개 stratum 1 서버로는 한국표준과학연구원의 time.kriss.re.kr 이 있습니다.