GPS에 대한 질문입니다.

hanseok의 이미지

첫번째?
GPS가 USB로 연결하게 되어 있습니다.

Linux에서 이것을 인식하게 할려면 모듈(디바이스 드라이버) 이런것이 있어야 할텐데, 전혀 모르는 장치라 어떤식으로 해야할지 난감합니다.

윈도우즈에서는 USB로 연결해도 인식할때(app) Com3, Com4 이렇게 접근이 가능하게 되어있습니다.

두번재?
GPS가 수신하는 데이터의 형태가 어떤것인지...궁금합니다.
4800bps 인것으로 봐서 많은 데이터는 아닌듯한데요?
위성에서 보내주는 시간 데이터와
위치 데이터 이정도를 수신할듯한데
어떤곳에 가면 데이터에대한 정보를 얻을수 있는지..

------------------------------------------------------
제가 할려는 것은 리눅스에서
GPS로 부터 시간을 받아 모든 시스템의 시간을 동기화 시키는 것을 할려고 합니다. (분산처리관련)

garuna의 이미지

시스템의 시간동기화에 관한 문제라면 꼭 GPS 를 이용할 필요가 없다고 생각합니다.

타임서버로부터 시간을 받아서 동기화하는게 어떨까요?

kookooo의 이미지

hanseok wrote:
------------------------------------------------------
제가 할려는 것은 리눅스에서
GPS로 부터 시간을 받아 모든 시스템의 시간을 동기화 시키는 것을 할려고 합니다. (분산처리관련)

시간의 동기화라면...

rdate -s 를 이용하시거나 clockspeed 를 이용하시는 것도

저는 clockspeed 를 사용하고 있습니다.

http://people.kldp.org/~eunjea/clockspeed.php

hanseok의 이미지

garuna wrote:
시스템의 시간동기화에 관한 문제라면 꼭 GPS 를 이용할 필요가 없다고 생각합니다.

타임서버로부터 시간을 받아서 동기화하는게 어떨까요?

여러 가지 방법을 생각하고 있습니다.
그중 현재 해볼려는 것이 GPS를 통한 방법입니다.

네트웍을 통한 분산처리에서
네트웍 지연등으로 시간의 오차가 생길수 있다고 생각했기 때문입니다.

물론 GPS도.. 오차가 있겠지요..

장비로 GPS가 8개인가 존재하기에 그것을 이용해서
서버들간의 시간을 맞추어 볼려고 합니다.

그런데 GPS및 디바이스에 대한 지식이 없어서 고민중입니다.
윈도우즈 라면 comport를 통해서 들어오는 데이터에대해서 처리해주면 될듯한데
(윈도우즈가 usb와 com 포트를 바인딩(?) 해주는 드라이버가 존재하고 설치완료)
리눅스에서는 usb의 정보를 어떤식으로 가져와야 할지~~

NMEA프로토콜은 .. 찾아보니.. 어렵지 않을것 같다는 생각이 드는데
리눅스의 장치를 comport로 인식하게.. 하는것을.. 모르겠습니다.

잠이 들어야지만 꿈을 꿀수 있는것인가?
우리는 항상 꿈을 쫓아 가며 살아가는 사람들..

kookooo의 이미지

hanseok wrote:
네트웍을 통한 분산처리에서
네트웍 지연등으로 시간의 오차가 생길수 있다고 생각했기 때문입니다.

글쎄요 두번째 이야기한 clockspeed 를 검토해 보시는게 좋을거 같군요..
쉽게 갈수 있는건 쉽게 가는게 좋을거 같습니다.
clockspeed 의 경우 RTC 의 부정확함을 보정합니다...

정확한 시간으로 유지하기
RTC 자체의 부정확함 때문에 한번 시간을 정확히 맞추었다 하더라고 얼마간의 시간이 지나면 다시 오차가 생기기 시작하게 된다. 이것을 막기 위해 clockspeed를 다음과 같은 방법으로 실행해준다.

로컬 네트워크의 시간 동기화
이제 우리는 위의 과정으로 시간이 정확히 맞추어진 시스템을 기준으로 로컬 네트워크상의 다른 컴퓨터들의 시간을 동기화 할수 있다. 이때 기준이 되는 서버에서는 TAICLOCK 프로토콜을 제공하는 taiclockd 데몬을 실행주켜 주고, 다른 컴퓨터들은 taiclock 클라이언트를 사용하여 시간을 동기화 시킨다.

What is it?
clockspeed uses a hardware tick counter to compensate for a persistently fast or slow system clock. Given a few time measurements from a reliable source, it computes and then eliminates the clock skew.
sntpclock checks another system's NTP clock, and prints the results in a format suitable for input to clockspeed. sntpclock is the simplest available NTP/SNTP client.

taiclock and taiclockd form an even simpler alternative to SNTP. They are suitable for precise time synchronization over a local area network, without the hassles and potential security problems of an NTP server.

This version of clockspeed can use the Pentium RDTSC tick counter or the Solaris gethrtime() nanosecond counter.

hskim76의 이미지

질문1.
가지고 계신 GPS장비가 USB to Serial Device를 사용하나 보네요.

커널 컴파일 옵션에서 USB support에 가시면, USB Serial Convert support항목이 있고, 그 아래에 꽤 많은 USB to Serial Device 모듈들이 있습니다. 그중에서 한번 찾아보세요. 애플리케이션을 작성하실때는 /dev/ttyUSB?를 여시면 됩니다. 사용법은 /dev/ttyS?들과 똑같습니다.

질문2. 헤헤..몰라요...

그리고... 원하는 바를 이루시려면 NTP 쪽을 보시는게 더 좋을듯 싶네요.
network time delay도 고려해서 꽤 정확하게 시간을 sync시켜 준답니다. 실제로 NTP를 사용해서 분산처리환경에서 clock를 sync하는 경우도 있다고 알고 있습니다. 근데 윗글에도 나오지만 NTP는 potential security problems이 있다고 하더군요.

pynoos의 이미지

GPS로 Timeserver를 하려는 것이...

http://www.ntp-servers.com/nts5000.pdf

이런것 말씀하시는거죠?

hanseok의 이미지

hskim76 wrote:
질문1.
가지고 계신 GPS장비가 USB to Serial Device를 사용하나 보네요.

커널 컴파일 옵션에서 USB support에 가시면, USB Serial Convert support항목이 있고, 그 아래에 꽤 많은 USB to Serial Device 모듈들이 있습니다. 그중에서 한번 찾아보세요. 애플리케이션을 작성하실때는 /dev/ttyUSB?를 여시면 됩니다. 사용법은 /dev/ttyS?들과 똑같습니다.

제가 궁금했던 부분입니다. 알려주셔서 감사드립니다.

또하나는.?

분산처리에서 이야기하는 문제가 되겠지만.
간단히 로컬에서 시간을 해결한다면.. rdate -s 서버 이것을 주기적으로 실행해서. 로컬 시스템의 시간을 맞추어 주면 문제가 안되겠죠.. (로컬일 경우)

우리나라 곳곳에서 네트웍을 통해 중앙에 있는 서버에 접속해서 무엇을 한다고 생각할때. .. 서버는 서울..
1)제주도
2)부산
3)서울

거리로 네트웍 시간이 걸린다고 한다면...
도착시간으로 작업을 처리한다면..
1) 12:02 2) 12:01 3) 12:00 이 동일하게 서버에 도착한 명령이라.
이것을 처리하기 위해서 작업을 할것입니다. (서버에 도착한 순으로 처리할경우)
=-=-= 문제가 있죠.. =-=-=-=

그럼 패킷을 보낼때. 자신의 시간을 넣어서 보낸다면..
하나의 시스템의 시간이 잘못되어 있는 경우... ^^; 당연히 문제가 또 발생하겠죠..
이러한 문제점을.. ~~ 조금이나마 보안해 보잔느 생각에서..
패킷을 많이 보낼때는 다른 방법을 사용해야겠지만.
가끔 보낸다면.. GPS로 부터 시간을 받아서 그 시간을 가지고 .. 패킷을 만들어 서버에 보내는 것입니다.
서버는.. 패킷의 시간을 보고 작업하는 것이구요?
----------------------------------------------------------------------------
대강 이야기 한것이라 문제점이 있죠.. 많이 ...
일단 .. GPS을 통해서~ 시간을 받고 명령이나 서비스를 요청시 시간을 포함한 패킷을 보내어서 처리하도록 할려고 합니다.

일단은 GPS란 장비가 존재 하기 때문에 생각해 본것입니다.
GPS의 문제점이 위성으로 부터 수신하기 위해.. 하늘이 보여야 하네요>>
서버가 하늘 보이는 곳에 있기는 힘들지만.~~
일단의 테스트는 .. ~~^^ 노트북 들고.. 하늘 보이는 곳에 앉아서.
광합성(일광욕: 가을 하늘 보며)하며.. 잘 놀수 있어서 좋습니다.
노트북 밧데리.. 가능할 때 까지~~

------------------- 관심 가져주신분 감사드립니다. -------------------------
조금더 .. GPS 및 분산처리, 분산 OS, 분산(?? ) 이런것에 대한 지식이나.
정보를 답글로 남겨주시면 저에게 많은 도움이 될듯합니다.

잠이 들어야지만 꿈을 꿀수 있는것인가?
우리는 항상 꿈을 쫓아 가며 살아가는 사람들..

kookooo의 이미지

hanseok wrote:
분산처리에서 이야기하는 문제가 되겠지만.
간단히 로컬에서 시간을 해결한다면.. rdate -s 서버 이것을 주기적으로 실행해서. 로컬 시스템의 시간을 맞추어 주면 문제가 안되겠죠.. (로컬일 경우)

쩝 -_-;;; 보시는 김에 clockspeed 나 clock 쪽도 다시 한번 검토해 보시죠.. -_-;;;;;; 몇줄 안됩니다..

antibug의 이미지

대부분 NMEA 포맷으로 전달됩니다. 인터넷 검색하시면 어렵지않게
포맷 찾을 수 있으실겁니다. 통신 속도는 4800정도가 디폴트 속도구요,
100kbps급까지는 대부분 지원할껍니다. 속도 바꾸려면 당연히 해당
커맨드 날려줘야되구요.

데이터가 시리얼로 드나들기때문에 엄청난 정밀도는 유지하기 힘들것
같습니다. GPS를 시계 용도로 많이들 사용하시는데, 흠... 무선으로
그럭저럭 정밀한 시간을 유지할 수 있다는 정도라고 보면 될것 같습니다.
주변에서 사용하는걸 보면 그냥 '초'단위의 정밀도로 만족하는 정도로
보입니다.

몇몇 제품들은 텍스트로 전송하는 NMEA 포맷대신 바이너리 포맷을 사용
하기도 하구요, (물론 이런 제품들도 호환성을 위해 디폴트로는 텍스트
NMEA를 사용합니다.) 돈을 좀 들이면 GPS 엔진안에 직접 소프트웨어를
올리는 것도 가능합니다. 제가 본 GPS 엔진은 ARM7 코어를 사용해서
3-40%의 CPU자원을 사용한다고 하더군요. GPS 제작사에 SDK 신청하면
(몇만불하는것 같은데...) GPS 소프트웨어가 바이너리(object파일로 오더군요)
로 전달되구요, (코어쪽만 바이너리로 오고 인터페이스나 그런것은 소스도
같이 오는것 같습니다.) 거기에 원하는 프로그램 올리면 되는 구조였습니다.
비선점형 OS(라고 부르기엔 매우 미안한...)가 올라가 있는걸로 기억됩니다.
( 2년전 얘기라서... -.-;; )

네트워크가 되면 네트워크로 시간을 맞추는게 단가에 도움이 되지 않을까
생각해봅니다. 뭐, 눈에 보이는게 있어야 단가도 올라가는 한국상황에서는
굳이 필요없더라도 폼나는 GPS 붙이는게 가격 상승에 도움이 될지도
모르겠지만요. ^^;

도움이 되셨을라나... -.-;;

--------------------------------------
재미없는 일은 하지 말자는 인간 쓰레기.
-.-;

daybreak의 이미지

GPS 를 이용한 시간 맞추기는 아니지만 참고가 될 것 같아서 적습니다.

저는 NTP(정확히는 SNTP 일듯 싶습니다)를 이용해서 제가 관리하는 컴퓨터의 시간을 맞춥니다.

http://time.ewha.net/

이곳에서 관련 정보를 찾으실 수 있고요.

ntpdate 라는 패키지를 설치하시면 주기적으로 ntp server 와 시간이 sync 됩니다.

이게 얼마나 reliable 한지는 솔직히 잘 모릅니다.

ntp 클라이언트 기능은 windows xp에서도 기본으로 "인터넷 시간 동기화" 라는 이름으로 들어있더군요.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.