나노초 단위로 시간을 설정하는 방법은 무엇입니까?

나노초 단위로 시간을 설정하는 방법은 무엇입니까?

GPS 모듈이 연결된 Raspberry Pi가 있습니다. 모든 GPS 위성에는 매우 정확한 원자 시계가 탑재되어 있으므로 Pi의 시계를 위성의 시계와 동기화하고 싶습니다. 저는 다음을 통해 위성에서 날짜와 시간을 가져오고 Pi에 시간을 설정하는 방법을 알고 있습니다.

sudo date -s "MAR 14 2016 14:53:09"

그러나 이것은 초까지만 정확합니다. 최소한 밀리초를 얻고 싶지만 나노초를 선호합니다.

date +%s%N반환된 시간이 나노초 단위라는 것을 알고 있습니다 .

나노초 단위로 시간을 설정하는 방법은 무엇입니까?

답변1

데이터가 USB/RS232 인터페이스를 통해 PC에 도달하면 해상도와 정확도가 더 이상 좋지 않습니다. 결국 전용 장비가 없다면 NTP를 사용하는 것이 더 좋습니다.

따라서GPS 동기화 튜토리얼

시중에는 저렴한 GPS 수신기가 많이 나와 있습니다. 대부분 RS232 또는 USB 연결을 사용하여 연결된 컴퓨터로 정보를 보냅니다. 수신기 자체 내부의 시계는 몇 나노초의 정확도로 작동하지만 데이터를 컴퓨터로 전송하는 데 지연이 발생하므로 로컬 컴퓨터의 시계를 이 신호에 몇 밀리초보다 정확하게 동기화하는 것은 사실상 불가능합니다. 이 정확도는 인터넷에서 무료로 사용할 수 있는 NTP 시간 서버에 연결하여 얻을 수도 있습니다. 컴퓨터와 특별히 빠르고 정확한 동기화 방법을 갖춘 GPS 장치만 시간 동기화 장치로 사용할 수 있습니다. 가장 비싸고 정확한 방법은 컴퓨터의 로컬 PCI 또는 PCIex 슬롯에 맞는 GPS 수신기를 사용하는 것입니다. 하지만 이 카드는 매우 비싸고 널리 사용되지 않습니다. 또 다른 해결책은 느리고 부정확한 RS232 또는 USB 인터페이스를 사용하여 시간 동기화를 위한 일반 데이터와 펄스를 보내는 것입니다.

@dfc가 올바르게 지적했듯이 PPS가 있는 RS232가 작업을 수행합니다. 단, 기기가 이를 지원해야 합니다.

대부분의 펄스 가능 GPS 장치에서는 새로운 초부터 시작하여 매초마다 펄스가 전송됩니다. 이것이 바로 이러한 GPS 장치를 PPS(초당 펄스 수)가 포함된 GPS라고 부르는 이유입니다.

불행하게도 추가 PPS 출력을 갖춘 GPS 수신기는 많지 않습니다. 저는 카자흐스탄 여행을 위해 Garmin GPS 수신기를 사용하고 있었기 때문에 먼저 이 제조업체에서 어떤 장비를 사용할 수 있는지 확인했습니다. 현재 컴퓨터에서 직접 사용할 수 있는 Garmin GPS 수신기는 Garmin GPS 16x LVS와 Garmin GPS 18x LVC 두 가지가 있습니다. 둘 다 컴퓨터에서 직접 가져올 수 있는 +5V 공급 전압으로 작동하고 RS232 인터페이스를 통해 NMEA 프로토콜을 통해 일반 데이터를 전송하며 둘 다 PPS 출력을 갖습니다.

관련 정보