센서 데이터를 수집하기 위해 PC와 Raspberry Pi(모두 Linux 실행)를 사용했고, 레이저 스캔 데이터를 수집하기 위해 Raspberry Pi를 사용했으며, 카메라에서 캡처한 이미지를 PC에서 수집했습니다. 나는 해야 한다동기화된 시간두 기계 모두에 대해. 나는 그들 사이의 시간 차이가 다음보다 작을 수 있기를 바랍니다.1밀리초.
네트워크 기능을 이용해 직접 연결하기 때문에 잘 알려진 NTP 서버를 사용할 수 없습니다. Raspberry Pi에서 PC에 핑을 보냈는데 핑 시간이 다음보다 짧았습니다.0.6밀리초. 나는 두 가지 아이디어를 생각해 냈습니다.
- PC를 다음과 같이 생각하십시오.NTPRaspberry Pi가 시간을 동기화하는 서버입니다.
- 만들다소켓이들 사이의 연결인 Raspberry Pi는 연결이 설정될 때 타임스탬프를 PC로 전송하므로 두 시스템 간의 시차를 알 수 있습니다.
어느 것이 더 좋은 아이디어인가요? 아니면 더 좋은 생각이 있나요? 두 컴퓨터 간의 실제 시간 차이를 계산하는 방법은 무엇입니까? 시간차를 1ms로 제한할 수 있나요?
답변1
소켓 아이디어는 오래되고 유서 깊은 아이디어입니다.RFC 868에 문서화된 시간 프로토콜. 이 프로토콜을 기반으로 시스템 시간을 동기화하는 유틸리티를 호출합니다.날짜.
NTP는 두 시스템의 시계가 시간이 지남에 따라 자연스럽게 표류하는 방식을 추적하고 이를 수정하므로 NTP를 사용하는 것이 더 좋습니다. 시간 프로토콜은 NTP와 같은 복잡한 기능을 실행하기에는 리소스가 너무 부족한 임베디드 시스템과 같이 NTP가 실현 가능하지 않은 상황(rpi의 경우는 아님)을 위해 예약되어야 합니다.