センサーデータを収集するためにPCとRaspberry Pi(すべてLinuxで実行)を使用し、レーザースキャンデータを収集するためにRaspberry Piを使用し、カメラでキャプチャした画像をPCから収集しました。私はしなければならない同期された時間両方のマシンについて。私はそれらの間の時間差が次のより小さいかもしれないことを願っています。1ミリ秒。
ネットワーク機能を使用して直接接続するため、よく知られているNTPサーバーを使用することはできません。 Raspberry PiはPCにpingを送りましたが、pingの時間は次より短かったです。0.6ミリ秒。私は2つのアイデアを思いついた。
- PCを次のように考えてください。NTPRaspberry Piが時間を同期するサーバー。
- 作るソケットこれらの間の接続であるRaspberry Piは、接続が確立されたときにタイムスタンプをPCに送信するため、2つのシステム間の視差がわかります。
どちらが良いアイデアですか?それとももっと良い考えがありますか? 2台のコンピュータ間の実際の時間差を計算する方法は?時間差を1msに制限できますか?
答え1
ソケットのアイデアは、古くて歴史的なアイデアです。RFC 868に文書化された時間プロトコル。このプロトコルに基づいてシステム時間を同期するユーティリティを呼び出します。日付。
NTPは、両方のシステムの時計が時間の経過とともに自然にドリフトする方法を追跡し、それを修正するので、NTPを使用する方が良いでしょう。タイムプロトコルは、NTPなどの複雑な機能を実行するにはリソースが不足している組み込みシステムなど、NTPが実現できない状況(rpiではない)のために予約する必要があります。