2017-02-17 11 views
1

가능한 한 실시간에 가까운 ODroid에서 시스템 시간을 만들기 위해 ODroid에 실시간 시계를 추가하려고 시도했습니다. RTC의 정확도는 +/- 4ppm입니다.NTP 및 RTC HW 클록 이상한 결과

realtimeclock이 없으면이 결과가 표시됩니다 (60 초마다 NTP 서버와 동기화 됨). 파란색은 비교를 위해 주황색 파이입니다. x 축은 샘플이고 y 축은 NTP 서버가보고 한 오프셋 (ms)입니다.

Time synch without RTC

그래서 내가 뭘하려합니다, (비록 더 많은 샘플하지만, 같은 간격) 같은 일을했지만, 대신 상대 NTP 서버와 동기화, 나는 다음과 같은 한 :

  1. 을 시스템 시간을 hw-clock 시간으로 설정하십시오.
  2. NTP 서버와 동기화하여 시스템 시간을 업데이트하고 서버가 제공 한 오프셋을 기록하십시오.
  3. HW 클럭을 실시간으로 동기화 했으므로 시스템 시간으로 업데이트하십시오.

그런 다음 60 초 동안 기다렸다가 반복합니다. 나는 그것이 완벽 할 것이라고는 기대하지 않았지만, 조금은 충격을 받았다. 내가보고하고 세계에서 무엇

ODroid with RTC

? 지터는 점차 줄어들고 거의 직선을 따르지만 완벽 한 시간 (약 410 분 ...)에 도달하면 지터와 오프셋이 다시 커지게 만듭니다.

누구나 설명 할 수 있습니까, 아니면 내가 뭘 잘못하고 있는지 말해 줄 수 있습니까? 이것은 이상합니다!

답변

-1

그래서 RTC 시간과 NTP 서버 시간의 차이를 플로팅하고 있습니다. NTP 서버는 어디에 있습니까? 두 번째 줄거리에서는 몇 백 밀리 초의 범위에서 작업하고 있습니다. NTP에는 정확도 제한이 있습니다. 위키 피 디아에서 :

https://en.wikipedia.org/wiki/Network_Time_Protocol

NTP는 보통 공공 인터넷을 통해 수십 밀리 내 시간을 관리 할 수 ​​있으며, 이상적인 조건에서 로컬 영역 네트워크에서 1 개 밀리 세컨드 정확도 보다 더 얻을 수 있습니다. 비대칭 경로 및 네트워크 정체로 인해 100ms 이상의 오류가 발생할 수 있습니다.

데이터가 약간 이상하게 보입니다.