1PPSのみを使用し、外部の「時間」入力(GPSなし)なしで隔離されたNTPサーバーを作成します。

1PPSのみを使用し、外部の「時間」入力(GPSなし)なしで隔離されたNTPサーバーを作成します。

私はイーサネットケーブルを介して接続された同じ学生AUVの他のコンピュータに時間を提供する小さなNTPサーバー(Chrony)を持っていると思います。私たちの主な関心事は、車両のさまざまな部分を数日間10ms未満で互いに同期させることです。

一部の電子デバイスは1PPSソースを介して直接同期するため、NTPサーバーと1PPSソースの同期を維持することが非常に重要です。

現実世界と同期される「システム時間」は必須ではありませんが、無料であれば良いようです。

現在私達は:

  • 1PPS周波数ソース
  • 起動時にRTC読み取り機能を備えた組み込みコンピュータ
  • GPS受信機。しかし、理想的には、GPSが水中で正しく動作しないため、この受信機は信頼できません。

現在、1PPS信号とGPSシリアル文字列をUSBシリアルコンバータ(FTDI)に供給しています。次に、Chronyの1PPSとGPS文字列を正しく選択するgpsdがそれを準備します。これは効果があり、1PPSとGPSと約2usの同期を提供しました。

既存の設定にはアプリケーションに制限があります。

  1. gpsdは時間を初期化するために有効なGPS時間文字列が必要ですが、水中ではGPS受信が悪く、水中では受信できないため、常に使用できるわけではありません。

  2. GPSDはまた、1pps割り込みを処理するために連続した有効な文字列を必要とします。バッテリーを節約するために水中でGPS受信機を無効にしたいが、それでも1PPSと同期を維持したい場合は、これは主に問題です。

  3. GPSが失われたり、GPSデバイスがオフになると、システム時間は1PPSソースから外れ始めます。

私は「gpsd」がGPSに大きく依存していることに気づいたので、間違ったツールを使用していました。

質問:

  1. 1PPSをchronyに直接提供できますか?

    1.1 chrony RTC以外の実際のタイムソースを取得せずに、この1PPSとシステム時間を単独で使用できますか?

  2. FTDI USB-Serial Converter RIまたはDCDピンを使用して/ dev / ppsソースを追加する方法の例ですか?たとえば、gpsd は背後で作業を行いますが、使用しません。

ベストアンサー1

私の質問は試行錯誤を通じて部分的に答えられました。

質問1.1PPSをchronyに直接提供できますか?

答え:1Chrony 構成では、PPS を取得するために 2 つの方法を使用します。

  • gpsdが保存する共有メモリ(SHM1)から取得します。
  • /dev/pps デバイスから直接インポートします。

構成行の例:

refclock SHM 1 refid PPS precision 1e-9
refclock PPS /dev/pps1 refid PPS2 precision 1e-9

待ち時間に関連するいくつかの潜在的な落とし穴も以下でカバーされています。よくある質問

質問:1.1RTC以外の実際のタイムソースを取得せずにchronyはこの1PPSとシステム時間を単独で使用できますか?

答え:1.1はい、次の行を追加すると:

local stratum 10

chronyがすべてのソースを失うと、ローカルクロックに戻ります。これは、/ dev / ppsソースのみがあり、GPSデータがない場合は、タイムサーバーがまだ満足するために必要な行であるようです。

質問:2。FTDI USB-Serial Converter RIまたはDCDピンを使用して/ dev / ppsソースを追加する方法の例ですか?たとえば、gpsd は背後で作業を行いますが、使用しません。

部分的な答え(解決方法)2:gpsdはRIまたはDCDからppsを受け取り、タイミングデータをSHM1に伝播します。 gpsdは自動的に仮想/ dev / pps1デバイスを作成し、それをcomポートに接続します。これはgpsdが内部的に使用する1ppsとは異なります!

/dev/pps1 で ppstest を使用すると、DCD への PPS 変換は表示されますが、RI への変換は表示されません。 RIまたはDCDを使用してpps変換を表示するには、comポートでppscheckを使用します。

私たちはgpsdが独自の新しい1PPS検出方式をリリースしていると思いますが、仮想dev / pps1ポートはDCDにハードコードされた古いldattach(ラインルール)を使用しています。この投稿を見た

おすすめ記事