gPTP で定義されている 5 つのメッセージのうち、Sync と Follow_UP は定期的に送信されるメッセージ群で、主に時計の偏差を測定するために使用されます。
レーザー レーダーと GPS の時刻同期には、PPS GPRMC、PTP、gPTP
GNSS という 3 つの主要なスキームがあります。出力 2 1 つは周期 1s、パルス幅 5ms ~ 100ms の同期パルス信号 PPS で、もう 1 つは標準シリアル ポートを介して出力される GPRMC 標準時刻同期メッセージです。
同期パルスの立ち上がり瞬間は、GPRMC メッセージの送信と同じ瞬間であり、誤差は ns レベルであり、誤差は無視できます。 GPRMC は、UTC 時間 (秒単位の精度)、経度、緯度の測位データを含む標準形式のメッセージです。
PPS の 2 番目のパルスは物理レベルの出力であり、PPS 信号の受信と処理にかかる時間は ns レベルであり、無視できます。ただし、GPRMC データは通常、ボー レート 9600 のシリアル ポートを介して送信されます。送信、受信、および処理時間 tx はミリ秒レベルであり、これが時刻同期の鍵となります。
以下は、時刻同期に PPS GPRMC を使用する原理です。
(1) デバイスは PPS 秒パルス信号を受信後、水晶発振器をクロック源とした内部システム時間のミリ秒以下をクリアし、そこからミリ秒時間の計算を開始します。
(2) GPRMC データを受信したら、メッセージ内の時、分、秒、年、月、日の UTC 時間を抽出します。
(3) 2 番目のパルスを受信してから、GPRMC で UTC 時刻を解析するまでの時間 tx を 2 番目の UTC 時刻に加算し、システム時刻に同期する ここまでで時刻同期が完了しました。次の 1 秒間も同じプロセスを繰り返し、1 秒ごとに 1 回正確に調整します。
賢い人は、LIDAR の時刻を同期する必要があることに突然気づいたかもしれません。2 本のワイヤを作成し、これら 2 つの物理インターフェイスに接続するだけです。この方法は可能であり、多くのメーカーで使用されているソリューションでもあります。ただし、PPS GPRMCには以下のような問題点があります。
(1) PPS は低電力パルス レベルの信号で、駆動電流は最小 0.5mA、最大 20mA で、複数の同期ノード (LIDAR および時間同期が必要なその他のノード) を備えています。十数個だと非常に難しいでしょう。
(2) PPS はシールドされていない単線パルス信号であり、車内では十数本の PPS 線が行き来するため、車内の過酷な電磁環境からの干渉の影響を非常に受けやすくなります。干渉パルスか同期パルスかを識別します。
(3) GPRMC は RS232 シリアル ポートを介して同期メッセージを送信します RS232 は 1 対 1 の全二重通信形式であり、マスター/スレーブ形式で 1 対数のデータ送信も実現できます。しかし、10人以上の場合、それは本当にまれであり、それが実現可能かどうかは実験によってのみ検証できます。しかし、少なくともワイヤーハーネスエンジニアは同意するつもりはありませんでした。
(4) クロックソースが失われると、時刻同期を必要とするすべての機器が突然バックボーンを失い、各ジュニアは自立し、時間内に立ち上がって責任を負うセカンドリーダーは存在しません全体的な状況について。これは、非常に高い機能安全要件が求められる自動運転システムにとってはまったく受け入れられません。
したがって、単純な PPS と GPRMC に基づいて自動運転システム全体の時刻同期を実現することは理論的には可能ですが、現実的ではありません。
ネットワークベースの高精度時刻同期プロトコル PTP (Precision Time Protocol、1588 V2) は、サブマイクロ秒の同期精度を実現できます。バックボーン ネットワークがイーサネットであるグローバル アーキテクチャでは、各ドメイン コントローラーのハードウェア PHY チップのサポートのみが必要で、すべてが準備されています。
PTP は、ハードウェアのタイムスタンプを使用するマスター/スレーブの時刻同期システムであるため、ソフトウェアの処理時間を大幅に短縮できます。同時に、PTP は L2 層 (MAC 層) と L4 層 (UDP 層) で実行でき、L2 層ネットワークで実行される場合、パケット解析は 4 層の UDP プロトコルを経由せずに MAC 層で直接実行されます。これにより、プロトコル スタックの常駐時間が大幅に短縮され、時刻同期の精度がさらに向上し、自動運転システムにとって非常に有利になります。
グローバル アーキテクチャにおけるアーキテクチャ ソリューションは次のとおりです。
デバイスで PTP プロトコルを実行しているネットワーク ポートは PTP ポートと呼ばれ、PTP マスター ポートは時刻の発行に使用され、PTP スレーブ ポートは時刻の受信に使用されます。境界クロック ノード (BC、Boundary Clock)、通常クロック ノード (OC、Ordinary Clock)、透過クロック ノード (TC、Transparent Clock) の 3 種類のクロック ノードが同時に定義されます。
(1) 境界クロック ノードには複数の PTP ポートがあり、そのうちの 1 つは上流デバイスの時刻を同期するために使用され、残りのポートは下流デバイスに時刻を送信するために使用されます。境界時計ノードの上流時刻同期装置がGNSS受信機である場合、このときの境界時計ノードがマスタークロックノード(最適クロック)となる。
(2) 通常のクロック ノードには PTP ポートが 1 つだけあり、上流のクロック ノードの時刻を同期するために使用されます。
(3) トランスペアレント クロックは、その名前が示すように、複数の PTP ポートを持ち、時刻を受信し、転送します。プロトコル分析は実行せず、内部での時刻同期には参加しません。 PTP は、マスター デバイスとスレーブ デバイスの間で同期メッセージを交換し、メッセージ送信時間を記録して、ネットワーク伝送遅延とマスター デバイスとスレーブ デバイス間のクロック偏差を計算します。
PTP では、Sync、Follow_Up、Delay_Req、および Delay_Resp という 4 つの同期メッセージが定義されています。正確な同期プロセスは次のとおりです。
(1) PTP マスター ポートがスレーブ ポートに Sync メッセージを送信し、Sync 送信時刻 t1 が同期して記録されます。ポートから Sync メッセージを受信した後、受信時刻 t2 が記録されます。
(2) 次に、マスター ポートは t1 時間を Follow_Up メッセージに入れてスレーブ ポートに送信します。このメッセージを受信した後、スレーブ ポートは t1 を解析して最初の式を取得します: t1 ネットワーク遅延クロック偏差 = t2。
(3) スレーブポートはマスターポートに Delay_Req メッセージを送信し、同時に Delay_Req 送信時の時刻 t3 を記録します。メイン ポートはメッセージを受信した後、メッセージを受信した時刻 t4 を記録します。
(4) 次に、マスター ポートは t4 時間を Delay_Resp メッセージに入れてスレーブ ポートに送信します。このメッセージを受信した後、スレーブ ポートは t4 を解析して最初の式を取得します: t3 ネットワーク遅延-クロック偏差=t4。 2 つの未知数と 2 つの方程式系は、中学校の数学の知識を適用して解くことができます。ネットワーク遅延 = [(t2-t1) (t4-t1)]/2、クロック偏差 = [(t2-t1)-(t4-t3) )]/2。
gPTP (generalized Precision Time Protocol) は、PTP (IEEE 1588v2) プロトコルに基づく一連の最適化であり、μs レベルを達成できる、よりターゲットを絞った時刻同期メカニズムを形成しました。同期精度。
gPTP は、時間認識エンド ステーションと時間認識ブリッジという 2 つのデバイス タイプを定義します。各デバイスにはローカル クロックがあり、水晶発振器の発振周期で測定され、デバイス内部のハードウェア カウンタが発振周期をカウントします。時刻同期メッセージの発行に使用されるデバイスのネットワーク ポートはマスター ポートと呼ばれ、時刻同期メッセージの受信に使用されるポートはスレーブ ポートと呼ばれます。
(1) 時間認識エンド ステーション。マスター クロックまたはスレーブ クロックとして使用できます。
(2) 時間認識ブリッジは、スイッチと同様に、マスター クロックまたはブリッジ デバイスとして使用できます。 gPTP メッセージを受信した後、ブリッジ デバイスはメッセージを送信する前にメッセージを処理します。ブリッジ デバイス内でメッセージが消費する時間を滞留時間と呼びます。 gPTP では、ブリッジ デバイスが滞留時間を測定する機能を備えている必要があります。
次の図は、クロック ソース、1 つのマスター クロック、2 つのブリッジ デバイス、および 4 つのスレーブ クロックを含む単純な gPTP システムを示しています。マスター クロックはシステム内のタイム ベースであり、通常は高精度のローカル クロックを備えており、高精度の準クロック ソースによってタイミングを調整する必要があります。マスター クロックは、システム内で動的に割り当てることも、事前割り当てすることもできます (車載固定トポロジ アプリケーション シナリオでは、事前割り当ての原理がよく使用されます)。
gPTP で指定されているマスター クロックの動的割り当てメカニズムは、BMCA (ベスト マスター クロック アルゴリズム、ベスト マスター クロック選択アルゴリズム) です。システムの電源がオンになってウェイクアップした後、システム内のすべてのデバイスは、それぞれのデバイスのクロック情報を含むメッセージを送信することにより、マスター クロックの選択に参加できます。参加する各機器は、自身の時計情報と他の機器の時計情報を比較し、有利か否かを判断し、有利でない場合は、総合力最強の武道家が誕生するまで選挙から撤退する。
gPTP では、イベント タイプのメッセージ (Sync、Play_Req、および Play_Resp を含む) と一般タイプのメッセージ (Follow_UP および Play_Resp_Follow_UP を含む) の 2 種類のメッセージが定義されています。 gPTP では、デバイスが 7 層ネットワーク モデルの 2 番目のデータ リンク層の MAC (メディア アクセス コントロール) サブレイヤで動作することが定義されています。
デバイスの MAC 層がイベント タイプのメッセージを受信または送信すると、ハードウェア カウンタのサンプリングがトリガされ、クロック発振周期カウント値が取得されます。クロック発振周波数と基準時刻との組み合わせにより、タイムスタンプが取得されます。現時点では入手可能です。一般タイプのメッセージは、情報を伝達するためにのみ使用され、内部ハードウェア カウンタのサンプリング動作をトリガーしません。
gPTPで定義されている5つのメッセージのうち、Sync、Follow_UPは定期的に送信され、主にクロック偏差の測定に使用されるメッセージ群です。同期はメイン ポートによって送信され、メッセージがメイン ポートの MAC 層を離れると、メイン ポートがトリガーされて、この時点のタイムスタンプ t1 を記録します。ポートMAC層からSyncメッセージを受信後、その時のタイムスタンプt2を記録する。続いて、マスターポートは、t1値をFollow_UPメッセージに付加してスレーブポートに送信する。
ネットワーク伝送遅延や無視できる遅延がない場合、スレーブ ポートはローカル クロック値をクロック オフセット (t1-t2 の値) に追加します。 ) 時刻同期を完了します。つまり、その背後にはそれ以上の考えはありません。しかし、μsレベルの時刻同期精度を持つgPTPでは、当然のことながら伝送遅延が無視できません。
gPTPは、P2P(Peer to Peer)方式を使用して伝送遅延を測定します。 P2P方式では、隣接する機器間の伝送遅延を計測し、機器間でのメッセージの送信ができないため、gPTPネットワーク内のすべての機器がgPTP機能をサポートしている必要があります。同時に、送信遅延測定専用に一連の独立したメッセージが定義されます。これらのメッセージは、定期的に送信される Pdelay_Req、Pdelay_Resp、および Pdelay_Resp_Follow_UP です。
スレーブ ポートは最初に、送信遅延測定の開始をマークする Pdelay_Req メッセージを送信します。メッセージがスレーブ ポートの MAC 層を離れると、スレーブ ポートがトリガーされます。この時点のタイムスタンプ t3 を記録します。 Pdelay_Req メッセージを受信した後、マスター ポートの MAC 層は、この時点のタイムスタンプ t4 を記録し、その後、マスター ポートは、Play_Resp メッセージを通じて値 t4 をスレーブ ポートに送信します。マスター ポートの MAC 層、マスター ポートがトリガーします。ポートはこの時点のタイムスタンプ t5 を記録し、ポート MAC 層から Pdelay_Resp メッセージを受信した後、この時点のタイムスタンプ t6 を記録します。続いて、同じルーチンで、マスター ポートは、Pdelay_Resp_Follow_Up メッセージを通じて値 t5 をスレーブ ポートに送信します。以上で伝送遅延測定処理が終了する。パスの伝送遅延が対称であると仮定すると、隣接するデバイス間の伝送遅延は次の式に従って計算できます。
上記の伝送遅延測定は、スレーブポートとマスターポートのクロック発振周波数が一致していることを前提としています。ここで、マスターポートクロックとスレーブポートクロックの発振周波数が一致していない場合にどのような超常現象が起こるかを考えてみましょう。スレーブポートのクロック発振周波数を25MHzとすると、クロックの1発振周期は40nsとなります。マスターポートのクロック発振周波数は100MHz、1クロックのクロック発振周期は10nsです。
送信遅延測定プロセス中に、t6 と t3 でスレーブ ポートによって記録された発振周期の差が 200 発振周期であると仮定します。マスター ポートのクロック周波数はスレーブ ポートのクロック周波数の 4 倍であるため、スレーブ ポートは t5 と t4 の間に約 800 個の発振周期の差を受け取ります。スレーブポートのクロック発振周期40nsに基づいて計算すると、伝送遅延は-24μs([200x40-800x40]/2)となります。送信に遅延がないだけでなく、事前にわかっているため、ポートからは疑う余地がありません。
マスター ポートとスレーブ ポートのクロック発振周波数の固有の不一致に加え、温度や経年変化などの要因によっても水晶発振器の周波数が不安定になる可能性があります。周波数同期の問題を解決するために、gPTP は周波数同期を使用してスレーブ ポートのクロック発振周波数をマスター ポートに同期させます。
周波数同期多重化は、遅延測定プロセスの Pdelay_Resp メッセージと Pdelay_Resp_Follow_UP メッセージを送信します。 2 組の応答を使用すると、最終的に t5、t6、t9、t10 の値が得られ、マスター/スレーブ ポートの周波数比は次の式から求めることができます。
マスター/スレーブ ポートの周波数が同期している場合、周波数比は 1 に等しくなります。 1 より大きい場合はメイン ポートの実行が高速であることを意味し、1 未満の場合はメイン ポートの実行が遅いことを意味します。スレーブ ポートは、周波数比の値に従ってタイム ベースを調整し、正しいタイムスタンプを取得します。
以上が自動運転車のライダーはどのようにして GPS 時刻と同期できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。