JP2024054943A - 通信装置およびその制御方法 - Google Patents

通信装置およびその制御方法 Download PDF

Info

Publication number
JP2024054943A
JP2024054943A JP2022161424A JP2022161424A JP2024054943A JP 2024054943 A JP2024054943 A JP 2024054943A JP 2022161424 A JP2022161424 A JP 2022161424A JP 2022161424 A JP2022161424 A JP 2022161424A JP 2024054943 A JP2024054943 A JP 2024054943A
Authority
JP
Japan
Prior art keywords
packet
communication device
synchronization
unit
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2022161424A
Other languages
English (en)
Inventor
仁 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2022161424A priority Critical patent/JP2024054943A/ja
Publication of JP2024054943A publication Critical patent/JP2024054943A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

【課題】同期精度の低下を抑制することができる通信装置を提供すること。【解決手段】他の通信装置と時刻同期する通信装置であって、前記時刻同期のための通信プロトコル処理を実行する処理手段と、同期パケットを格納する格納手段と、前記同期パケットが前記格納手段に滞留する時間を予測する予測手段と、前記同期パケットを、前記処理手段を介さずに前記他の通信装置に送信する状態にある場合、前記予測手段が予測した時間に基づいて、前記同期パケットの所定箇所を書き換える書き換え手段と、を有する。【選択図】図7

Description

本発明は、通信装置およびその制御方法に関する。
昨今、複数のカメラを異なる位置に設置して多視点で同期撮影し、当該撮影により得られた複数視点画像を用いて仮想視点コンテンツを生成する技術が注目されている。仮想視点コンテンツを用いることにより、例えばサッカーやバスケットボールのハイライトシーンを様々な角度から視聴することができるため、通常の画像と比較してユーザに高臨場感を与えることができる。
多視点同期撮影を実現するためのネットワークを構成する複数の端末装置(通信装置)の接続方法として、各端末装置を直列に接続するデイジーチェーンと呼ばれる接続方法がある。
特開2017-103588号公報
特許文献1に開示されるような、複数の端末装置を直列に接続するデイジーチェーン接続されたネットワークにおいて、1つの端末装置に障害が発生した場合、当該端末装置の処理(CPUによるプロトコル処理を含む)をバイパスすることが考えられる。例えば、障害が発生している端末装置と隣の端末装置の伝送路を直結することにより、障害が発生している端末装置における処理をバイパスすることができる。
通信パケットが同期パケットの場合、PTP(Precision Time Protocol)のTC(Transpearent Clock)処理でコレクションフィールドに、同期パケットの内部処理時間や滞留時間を加算する。当該加算により、同期パケットの処理遅延や滞留遅延が発生しても、同期精度の低下を防ぐことができる。しかし、特許文献1の技術では、通信パケットのプロトコル処理を実施するCPUをバイパスするため、処理時間や滞留時間をコレクションフィールドに加算できず、同期精度が低下する。
上記した課題を解決するために、本発明は同期精度の低下を抑制することができる通信装置を提供することを目的とする。
本発明の1つの態様による通信装置は、他の通信装置と時刻同期する通信装置であって、前記時刻同期のための通信プロトコル処理を実行する処理手段と、同期パケットを格納する格納手段と、前記同期パケットが前記格納手段に滞留する時間を予測する予測手段と、前記同期パケットを、前記処理手段を介さずに前記他の通信装置に送信する状態にある場合、前記予測手段が予測した時間に基づいて、前記同期パケットの所定箇所を書き換える書き換え手段と、を有する。
本発明によれば、同期精度の低下を抑制することができる。
本発明の実施形態における同期撮影システムを示す図。 実施形態におけるカメラアダプタのブロック図。 PTP時刻同期シーケンス図。 PTP TC処理シーケンス図。 実施形態における通常状態時のフローチャート図。 実施形態におけるバイパス状態時の全体フローチャート図。 実施形態におけるバイパス状態時の詳細フローチャート図。 実施形態における第1バッファ部の滞留時間予測方法を説明する図。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
本発明を適用できるシステムとして競技場(スタジアム)やコンサートホールに設置されて仮想視点画像を生成できる同期撮影システムについて図1を用いて説明する。
図1の同期撮影システム100は、タイムサーバ101、ハブ102、制御端末103、画像コンピューティングサーバ104、ユーザ端末105、センサシステム110a~110zで構成される。本実施形態では、26セットのセンサシステム110a~110zが同期撮影システム100に含まれている。センサシステム110a~110zは、カメラ111a~111zと、カメラアダプタ112a~112zとを有する。ユーザ端末105は表示部を有する。カメラ111a~111zとカメラアダプタ112a~112zは、画像伝送用ケーブル202a~202zで接続されている。
ハブ102とセンサシステム110a~110zは、デイジーチェーンのアクティブ回線106a~106zおよびバックアップ回線107a~107zで接続されている。ハブ102は、制御端末103に通信路151で接続され、タイムサーバ101に通信路152で接続され、画像コンピューティングサーバ104に通信路153で接続されている。画像コンピューティングサーバ104はユーザ端末105に通信路154で接続されている。なお、以下の説明において、アクティブ回線106a~106z、バックアップ回線107a~107z、通信路151~154は、ネットワークと称される場合がある。
本実施形態において、特別な説明がない場合は、センサシステム110a~110zは区別せずセンサシステム110と記載する。各センサシステム110内の装置(カメラ、カメラアダプタ、画像伝送用ケーブル)についても同様に、特別な説明がない場合は区別せずに記載する。なお、センサシステム110の台数(セット数)を26としているが、台数は26に限定されない。また、複数のセンサシステム110は同一の構成でなくてもよく、例えばそれぞれが異なる機種の装置で構成されていてもよい。本実施形態では、特に断りがない限り、画像という文言が、動画と静止画の概念を含むものとして説明する。すなわち、本実施形態の同期撮影システム100は、静止画および動画の何れについても適用可能である。センサシステム110a~110zを接続するアクティブ回線106a~106zおよびバックアップ回線107a~107zも同様に区別しない。特別な説明がない場合は、アクティブ回線106a~106zはアクティブ回線106と記載し、バックアップ回線107a~107zはバックアップ回線107と記載する。
タイムサーバ101は、時刻情報を配信する機能を有しており、GNSS108に同期した時刻情報をセンサシステム110に配信する。なお、タイムサーバ101が持つローカル時刻をマスタ時刻として、センサシステム110に配信してもよい。GNSSはGlobal Navigation Satellite System(全球測位衛星システム)の略である。
ハブ102には、タイムサーバ101が配信する時刻情報を持ったPTP(Precision Time Protocol)パケットや、センサシステム110が画像コンピューティングサーバ104に送信する画像データが送信されてくる。ハブ102は、PTPパケットや画像データを各宛先に振り分ける。
制御端末103は、同期撮影システム100を構成するそれぞれのブロックに対してネットワークを通じて動作状態の管理およびパラメータ設定制御などを行う。ここでネットワークはEthernet(登録商標)であるIEEE標準準拠のGbE(ギガビットイーサーネット)や10GbEでもよいし、インターコネクトInfiniband、産業用イーサーネットなどを組み合わせて構成されてもよい。また、これらに限定されず、ほかの種別の通信網であってもよい。
センサシステム110はカメラ111とカメラアダプタ112で構成される。なお、センサシステム110の構成は、これに限定されない。例えば、センサシステム110は、マイクといった音声デバイス、HDD(Hard Disk Drive)、SSD(Solid State Drive)といったストレージ装置、カメラの向きを制御する雲台等を含んでもよい。また、センサシステム110は1台のカメラアダプタと、複数のカメラで構成されてもよいし、1台のカメラと複数のカメラアダプタで構成されてもよい。
複数のセンサシステム110同士はデイジーチェーン接続されている。デイジーチェーンは、ネットワーク構築に必要な配線量を最小化して、効率的にデータ転送を行うことが可能である。この接続形態により、撮像画像の4Kや8Kなどへの高解像度化および高フレームレート化に伴う画像データの大容量化において、接続ケーブル数の削減や配線作業の省電力化ができる。なお、センサシステム110同士の接続形態として、各センサシステム110がハブ102に接続されて、ハブ102を経由してセンサシステム110間のデータ送受信を行うスター型のネットワーク構成としてもよい。
また、図1では、センサシステム110の全てがデイジーチェーン接続されている構成を示したが、本実施形態はこれに限定されない。例えば、複数のセンサシステム110をいくつかのグループに分割して、分割したグループ単位でセンサシステム110間をデイジーチェーン接続してもよい。このような構成は、スタジアムにおいて特に有効である。例えば、スタジアムが複数階(複数フロア)で構成され、フロア毎に所定数のセンサシステム110を配備する場合が考えられる。この場合に、フロア毎、あるいはスタジアムの半周毎に画像コンピューティングサーバ104への入力を行うことができる。そして、全センサシステム110を1つのデイジーチェーンで接続する配線が困難な場所でも設置の簡便化およびシステムの柔軟化を図ることができる。
カメラ111a~111zは、被写体を複数の方向から撮影する。なお、複数のカメラ111a~111zは同一のものとして説明するが、性能や機種が異なっていてもよい。
カメラアダプタ112a~112zは、カメラ111a~111zと接続し、カメラ111a~111zの制御、撮影画像取得、同期信号提供および時刻設定などを実施する。
カメラアダプタ112は、カメラ111が撮影した画像(撮影データ)に対して画像処理を施す。具体的には、撮影データから前景画像と背景画像を分離して出力することで、複数の視点から撮影された前景画像と背景画像に基づいて仮想視点画像が生成される。なお、撮影画像から分離した前景画像を出力して、背景画像は出力しないカメラアダプタ112が存在してもよい。
カメラアダプタ112は、画像処理された画像データをデイジーチェーンで接続されたハブ102を介して、画像コンピューティングサーバ104へ送信する。
カメラアダプタ112は、PTPスレーブとして動作して、GM(Grand Master)装置であるタイムサーバ101と同期する。また、カメラアダプタ112は、PTPマスタとして動作して、他のセンサシステム110とも同期するBC(Boundary Clock)装置として動作する。
なお、カメラアダプタ112は、GM装置(タイムサーバ101)からのPTPパケットに対して時刻補正を行い他のセンサシステム110に転送するTC(Transparent Clock)装置として動作してもよい。
また、カメラアダプタ112は、GM装置(タイムサーバ101)からのPTPパケットや、別のセンサシステム110から転送されたPTPパケットを用いて時刻同期のみを行うOC(Ordinary Clock)装置として動作してもよい。
また、カメラアダプタ112は、GM装置からのPTPパケットや、別のセンサシステム110から転送されたPTPパケットを用いて時刻同期を行い、かつPTPパケットに対して時刻補正を行ってもよい。そして時刻補正したPTPパケットを他のセンサシステム110に転送するTC+OC装置として動作をしてもよい。
そして、カメラアダプタ112は、同期した時刻やリファレンス信号を利用し、撮影タイミング(制御クロック)をカメラ111に提供する。
画像コンピューティングサーバ104は、センサシステム110から取得したデータの処理を行う。まず、画像コンピューティングサーバ104は、センサシステム110から取得した撮影データ(画像データ)を再構成してデータ形式を変換し、その後、カメラの識別子、データ種別、フレーム番号に応じて画像データを記憶する。そして、画像コンピューティングサーバ104は、制御端末103から視点の指定を受け付け、受け付けた視点に基づいて記憶された情報から対応する撮像データを読み出し、レンダリング処理を行って仮想視点画像を生成する。なお、画像コンピューティングサーバ104の機能の少なくとも一部を、制御端末103、センサシステム110、ユーザ端末105が有していてもよい。
ユーザ端末105は、画像コンピューティングサーバ104からレンダリング処理された画像を受信する。ユーザ端末105を操作するユーザは、指定に応じた視点の画像を、ユーザ端末105の表示部で閲覧することが出来る。すなわち、画像コンピューティングサーバ104は、複数のセンサシステム110により撮影された撮影画像(複数視点画像)と視点情報とに基づく仮想視点コンテンツを生成する。なお、本実施形態において仮想視点コンテンツは画像コンピューティングサーバ104により生成されるとしたが、これに限定されない。すなわち、仮想視点コンテンツは制御端末103やユーザ端末105により生成されてもよい。
次にカメラアダプタ112のネットワーク通信制御部分の構成について、図2を用いて説明する。ここでは、アクティブ回線106について説明するがバックアップ回線107についても同様の構成を適用できる。本実施形態では、カメラアダプタ112はデイジーチェーン接続されてパケットを送受信することができるので、通信装置と称することができる。
カメラアダプタ112は、主な機能ブロックとして、第1PHY部203、第2PHY部204、システム制御部205を有する。カメラ111とカメラアダプタ112は画像伝送用ケーブル202で接続されている。
第1PHY部203、第2PHY部204は、LAN(Local Area Network)に代表される第1伝送路(ネットワーク)200(106)、第2伝送路201(106)とのインターフェースである。第1PHY部203と第2PHY部204は、通信におけるPHY層(物理層)の通信制御を担っている。第1伝送路200(106)が第1PHY部203に接続され、第2伝送路201(106)が第2PHY部204に接続されている。
なお、第1PHY部203が第1伝送路200における通信を制御し、第2PHY部204が第2伝送路201における通信を制御するとしたが、本実施形態はこの構成に限定されない。例えば1つのPHYモジュールがバックアップ回線107を含む伝送路全ての通信を一括で制御してもよい。あるいは2つのPHYモジュールの内の1つがアクティブ回線106を制御し、もう一のPHYモジュールがバックアップ回線107を制御してもよい。第1PHY部203と第2PHY部204はシステム制御部205に含まれる構成であってもよい。
システム制御部205は、第1I/F部210、第2I/F部211、バイパス制御部212、第1MAC部213、第2MAC部214、第1バッファ部215、第2バッファ部216、滞留時間予測部217、パケット判別部218を有する。また、システム制御部205は、ヘッダ書き換え部219、システムバス220、映像パケット処理部221、通信プロトコル処理部222、状態制御部223を有する。バイパス制御部212は、スイッチ212a、212bを有する。I/FはInterfaceの略である。
映像パケット処理部221、通信プロトコル処理部222、状態制御部223、バイパス制御部212と、アクティブ回線106の伝送経路とは、システムバス220を介して相互に接続している。伝送経路上の通信情報のスヌープ/書き換えを実行するために、滞留時間予測部217、パケット判別部218、ヘッダ書き換え部219が設けられている。システム制御部205はFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)により構成される。
映像パケット処理部221は、カメラ111で撮影された画像のデータ(画像データ)を、画像伝送用ケーブル202を介してカメラ111から受信して、画像データのパケタイズ(パケット化)を行う。映像パケット処理部221は、画像パケット(映像パケット)を、第1伝送路200を通じて画像コンピューティングサーバ104に送信する。映像パケット処理部221はHDD(Hard Disk Drive)、SSD(Solid State Drive)といったストレージを備え、パケット送信と並行して、受信した画像データをストレージに記憶することもできる。
通信プロトコル処理部222は、OSI(Open System Interconnection)参照モデルで定義されるアプリケーション層でアプリケーションソフトウエアを実行し、パケットの送受信処理やPTP同期処理を行う。通信プロトコル処理部222は、カメラアダプタ112全体の制御も実行する。通信プロトコル処理部222は、滞留時間予測に必要な各種情報(PTP同期設定、伝送路における固定遅延補正のためのオフセット値、通信パケットの伝送クロックなど)を、あらかじめバイパス制御部212のレジスタなどにセットしておく。
状態制御部223は、センサシステム110の状態に応じて、バイパス制御部212の通信経路を個別に切り替えるための制御信号を出力する。具体的には、状態制御部223はセンサシステム110が故障状態やスリープ状態などセンサシステム110を制御できないもしくは制御しない状態に陥った場合に、制御信号を出力し、この制御信号により、バイパス制御部212のスイッチ212a、212bが切り替わる。状態制御部223は、センサシステム110が故障状態・スリープ状態から復帰したときにも、同様に制御信号を出力し、当該制御信号により、バイパス制御部212のスイッチ212a、212bを切り替える。
アクティブ回線106の伝送経路は、第1I/F部210、第2I/F部211、バイパス制御部212、第1MAC部213、第2MAC部214、第1バッファ部215および第2バッファ部216を有する。さらに、アクティブ回線106の伝送経路は、滞留時間予測部217、パケット判別部218およびヘッダ書き換え部219を有する。
第1I/F部210は第1PHY部203に接続され、第1PHY部203とのデータ送受信を行う。第2I/F部211は第2PHY部204に接続され、第2PHY部204とのデータ送受信を行う。第1I/F部210、第2I/F部211はシリアルトランシーバであり、PMA(Physical Medium Attachment)、PCS(Phisical Coding Sublayer)で構成される。
バイパス制御部212は、カメラアダプタ112のアクティブ回線106における通信経路を制御する。バイパス制御部212は、通信プロトコル処理部222あるいは映像パケット処理部221に対してデータを転送する第1経路212cを持つ。また、バイパス制御部212は、通信プロトコル処理部222や映像パケット処理部221による処理を実施しない第2経路212dを持つ。本実施形態では、第1経路212cを使用している場合を通常モードと称し、第2経路212dを使用している場合をバイパスモードと称する。バイパス制御部212は、状態制御部223が出力する制御信号を受信することで、スイッチ212aと212bを作動させて第1経路212cと第2経路212dの切り替えを制御する。図2は第2経路212dが使用されている状態を示している。
バイパス制御部212は、第1経路212cを使用する通常モードもしくは第2経路212dを使用するバイパスモードのどちらで通信しているかを滞留時間予測部217に通知する。バイパス制御部212は、通信における各種情報(PTP同期設定、伝送路における遅延時間補正のためのオフセット値、通信パケットの伝送クロックなど)を滞留時間予測部217に通知する。
第1MAC部213は、第1I/F部210と接続される場合、第1伝送路200に対するOSI参照モデルのデータリンク層に対応する処理を実行するように構成される。
第2MAC部214は、第2I/F部211と接続される場合、第2伝送路201に対するOSI参照モデルのデータリンク層に対応する処理を実行するように構成される。
本実施形態では第1MAC部213、第2MAC部214は各伝送路200、201における通信を制御しているが、本実施形態はこの構成に限定されない。例えば1つのMACモジュールがバックアップ回線107を含む全ての伝送路における通信を制御する構成であってもよい。もしくは、2つのMACモジュールの内の1つがアクティブ回線106の通信を制御し、もう1つがバックアップ回線107の通信を制御する構成であってもよい。
本実施形態では、第1I/F部210、第2I/F部211は各伝送路200、201におけるデータの送受信を行っているが、本実施形態はこの構成に限定されない。例えば1つのI/Fモジュールがバックアップ回線107を含む全ての伝送路におけるデータを送受信する構成であってもよい。もしくは、2つのI/Fモジュールの内の1つがアクティブ回線106のデータを送受信し、もう1つがバックアップ回線107のデータを送受信する構成であってもよい。
第1バッファ部215、第2バッファ部216は、伝送経路の通信パケットをバッファリングする(同期パケットを格納する)。第1バッファ部215、第2バッファ部216は、FIFO(First Input First Output)で構成され、通信パケットを全てFIFOに入力した後に、FIFOから出力するStore&Forward方式で動作する。第1バッファ部215、第2バッファ部216は、それぞれが使用しているFIFO段数を滞留時間予測部217にリアルタイムで通知する。第1バッファ部215、第2バッファ部216は、同期パケットを格納するので格納部と称してもよい。
滞留時間予測部217は、バイパス制御部212から通常モードもしくはバイパスモードのどちらで動作しているか(現在の動作モード)を示す通知(信号)を受信して、バイパスモード時のみ滞留時間を予測する。滞留時間予測部217は、PTP同期設定の1Stepあるいは2Stepのどちらで動作しているかを示す通知(信号)を受信する。そして、滞留時間予測部217は、特定の同期パケットが第1バッファ部215、第2バッファ部216で滞留する時間を予測して、ヘッダ書き換え部219に対して予測した滞留時間を通知する。また、滞留時間予測部217は、特定の同期パケットのコレクションフィールド値も滞留時間と併せて通知する。なお、本実施形態では、バイパス制御部212から動作モード(通常モード/バイパスモード)と同期設定(1Step/2Step)を受信しているが、本実施形態はこれに限定されない。滞留時間予測部217をシステムバス220と相互接続して、通信プロトコル処理部222からPTP同期設定・伝送クロックを受信し、状態制御部223から動作モードを受信してもよい。
スイッチ212a、212bの作動により、同期パケットの送受信中に通常モードからバイパスモードに切り替わった場合、滞留時間予測部217は送受信中の同期パケットを予測の対象外として、次に送受信される同期パケットを予測の対象とする。
パケット判別部218は、滞留時間を予測する特定の同期パケットを判別する。具体的には、パケット判別部218は、PTP同期パケットのSyncメッセージ、Follow_Upメッセージ、Delay_Respメッセージを判別する。パケット判別部218は、EthernetフレームのMACヘッダに含まれるEtherType、同期パケットのPTPヘッダに含まれるmessageType、またはEtherTypeとmessageTypeの両方に基づいて上記判別を行う。
ヘッダ書き換え部219は、滞留時間予測部217から滞留時間予測結果と同期パケットのコレクションフィールド値を受信する。ヘッダ書き換え部219は、パケット判別部218の判別(判定)結果を用いて、ヘッダ書き換え部219に入力された通信パケットがヘッダ書き換え対象であるパケットかどうか判定する。当該判定の結果に基づいて、ヘッダ書き換え部219は、ヘッダ書き換え対象のコレクションフィールド値(所定箇所)を滞留時間予測部217より受信した滞留時間予測結果で書き換えて、第2MAC部214に送出する。コレクションフィールドとは、PTP同期パケットがタイムサーバ101とセンサシステム110の間の中継処理に要した時間を記録しておく領域のことである。コレクションフィールドはPTP同期パケットのヘッダ領域に含まれており、コレクションフィールドを考慮してPTP同期処理を実施することで、中継処理での遅延変動を補正してより高精度な時刻同期が可能となる。
次にGMC(Grand Master Clock)とPTPスレーブ装置の間の一般的なPTP時刻同期処理のシーケンスについて図3を用いて説明する。本明細書では、GMCマスタ装置はタイムサーバ101であり、PTPスレーブ装置はセンサシステム110として説明する。
S301において、タイムサーバ101は、センサシステム110に対して同期パケットSyncを一定間隔で送信する。センサシステム110は同期パケットSyncを受信すると、当該受信を示す受信タイムスタンプ情報t2を保持する。
S302において、タイムサーバ101は、同期パケットSyncを送信したことを示す送信タイムスタンプ情報t1を同期パケットFollow_Upに載せて、センサシステム110に送信する。センサシステム110は、同期パケットFollow_Upを受信することで送信タイムスタンプ情報t1を保持する。本実施形態では同期パケットSyncの送信タイムスタンプ情報t1を同期パケットFollow_Upに載せて送信する2Stepと呼ばれる方法について説明する。同期パケットSyncの送信タイムスタンプ情報t1を同期パケットFollow_Upに載せず、同期パケットSync自身に載せて送信する1Stepと呼ばれる方法もある。本実施形態は1Step、2Stepのどちらでも適用可能である。
S303において、センサシステム110は、タイムサーバ101に同期パケットDelay_Reqを送信する。この時、センサシステム110は同期パケットDelay_Reqの送信タイムスタンプ情報t3を保持する。タイムサーバ101は同期パケットDelay_Reqを受信すると、当該受信を示す受信タイムスタンプ情報t4を保持する。
S304において、タイムサーバ101は、センサシステム110に同期パケットDelay_Respを送信する。この時、タイムサーバ101は、同期パケットDelay_Reqの受信タイムスタンプ情報t4を同期パケットDelay_Respに載せてセンサシステム110に送信する。センサシステム110は、同期パケットDelay_Respを受信することで、タイムサーバ101が同期パケットDelay_Reqを受信した受信タイムスタンプ情報t4を保持する。
センサシステム110は、S301~S304の同期パケットのやりとりから平均伝送遅延時間を算出して、センサシステム110内の時刻を補正する。
平均伝送遅延時間は以下の式で算出する。
{(t2-t1)+(t4-t3)}/2 = 平均伝送遅延時間
次にマスタースレーブ間の一般的なTC(Transpearent Clock)処理シーケンスについて図4を用いて説明する。ここでは、GMCマスタ装置であるタイムサーバ101とPTPスレーブ装置であるセンサシステム110bの間にあるセンサシステム110aのTC処理に着目する。
S401では同期パケットSyncがタイムサーバ101からセンサシステム110aに送信される。より詳しくは、S401において、タイムサーバ101は、センサシステム110b宛の同期パケットSyncをセンサシステム110aに一定間隔で送信する。センサシステム110aは同期パケットSyncを受信した時刻を受信時刻情報t1’として保持する。
S402では同期パケットSyncがセンサシステム110aからセンサシステム110bに送信される。より詳しくは、S402において、センサシステム110aは、S401で受信した同期パケットSyncをセンサシステム110bに送信する。センサシステム110aは、同期パケットSyncを送信した時刻を送信時刻情報t2’として保持する。センサシステム110bはSyncを受信することで受信タイムスタンプ情報t2を保持する。
S403では同期パケットFollow_Upがタイムサーバ101からセンサシステム110aに送信される。より詳しくは、S403において、タイムサーバ101は、同期パケットSyncを送信した時の送信タイムスタンプ情報t1をセンサシステム110b宛の同期パケットFollow_Upに載せて、センサシステム110aに送信する。センサシステム110aは同期パケットFollow_Upを受信する。
S404では同期パケットFollow_Upがセンサシステム110aからセンサシステム110bへ送信される。より詳しくは、S404において、センサシステム110aは、S401とS402で保持した同期パケットSyncの受信時刻情報t1’と送信時刻情報t2’から、同期パケットFollow_Upのコレクションフィールド値に(t2’-t1’)値を加算する。そして、センサシステム110aは同期パケットFollow_Upをセンサシステム110bに送信する。センサシステム110bは、Follow_Upを受信することで、送信タイムスタンプ情報t1とタイムサーバ101からセンサシステム110b方向の中継処理時間(t2’-t1’)とを保持する。
S401~S404はPTP時刻同期の2Stepにおける処理シーケンスである。なお、1Step処理では同期パケットFollow_Upを使用しないため、センサシステム110aにおける中継処理時間(t2’-t1’)は同期パケットSyncに載せてセンサシステム110bに送信される。
S405では同期パケットDelay_Reqがセンサシステム110bからセンサシステム110aに送信される。より詳しくは、S405において、センサシステム110bは、タイムサーバ101宛に同期パケットDelay_Reqをセンサシステム110aに送信して、送信タイムスタンプ情報t3を保持する。センサシステム110aは、同期パケットDelay_Reqを受信した時刻を受信時刻情報t3’として保持する。
S406では同期パケットDelay_Reqがセンサシステム110aからタイムサーバ101へ送信される。より詳しくは、S406において、センサシステム110aは、S405で受信した同期パケットDelay_Reqをタイムサーバ101に送信する。センサシステム110aは、同期パケットDelay_Reqを送信した時刻を送信時刻情報t4’として保持する。タイムサーバ101は同期パケットDelay_Reqを受信することで受信タイムスタンプ情報t4を保持する。
S407では同期パケットDelay_Respがタイムサーバ101からセンサシステム110aに送信される。より詳しくは、S407において、タイムサーバ101は、センサシステム110b宛にS406で保持した受信タイムスタンプ情報t4を同期パケットDelay_Respに載せてセンサシステム110aに送信する。センサシステム110aは同期パケットDelay_Respを受信する。
S408では同期パケットDelay_Respがセンサシステム110aからセンサシステム110bへ送信される。より詳しくは、S408において、センサシステム110aは、S405とS406で保持したDelay_Reqの受信時刻情報t3’と送信時刻情報t4’から、同期パケットDelay_Respのコレクションフィールド値に(t4’-t3’)値を加算する。そして、センサシステム110aは同期パケットDelay_Respをセンサシステム110bに送信する。センサシステム110bは、同期パケットDelay_Respを受信することで、受信タイムスタンプ情報t4とセンサシステム110bからタイムサーバ101方向の中継処理時間(t4’-t3’)とを保持する。
センサシステム110bは、S401~S408の同期パケットのやり取りから中継処理時間を考慮して平均伝送遅延時間を算出する。そして、センサシステム110bは、センサシステム110b内の時刻を補正する。平均伝送遅延時間は、以下の式で算出する。
{(t2-t1)+(t4-t3)-(t2’-t1’)-(t4’-t3’)}/2 = 平均伝送遅延時間
次に本実施形態における通常状態時のPTP同期におけるTC(Transpearent Clock)処理のフローチャートについて、図5を用いて説明する。ここで通常状態とはバイパス制御部212が通常モードであり、第1経路212cを使用して通信する状態である。
S501は、このフローチャートのスタートを示している。センサシステム110が起動した後、本フローチャートがスタートする。
S502において、通信プロトコル処理部222は、PTP同期処理を1Stepもしくは2Stepのどちらで処理するかを判定(決定)する。1Stepで処理する場合はS503、S506へ移行する。2Stepで処理する場合はS510、S514へ移行する。
S503において、通信プロトコル処理部222は、自分宛ではない同期パケットSyncを受信したかどうかを判定する。自分宛ではない同期パケットSyncを受信した場合はS504へ移行する。そうでない場合はS503を繰り返す。
S504において、通信プロトコル処理部222は、自分宛ではない同期パケットSyncを受信した受信時刻t1’と宛先に対して同期パケットを送信した時刻(送信時刻)t2’を保持する。受信時刻t1’と送信時刻t2’を保持することで、S505へ移行する。
S505において、通信プロトコル処理部222は、S504で保持した時刻t1’、t2’から計算した中継処理時間(t2’-t1’)を、S503で受信した同期パケットSyncのコレクションフィールドに加算する。そして通信プロトコル処理部222は、宛先に同期パケットSyncを送信する。同期パケットSyncの送信が完了することでS518へ移行する。
S506において、通信プロトコル処理部222は、自分宛ではない同期パケットDelay_Reqを受信したかどうかを判定する。自分宛ではない同期パケットDelay_Reqを受信した場合はS507へ移行する。そうでなければS506を繰り返す。
S507においては、通信プロトコル処理部222は、自分宛ではない同期パケットDelay_Reqを受信した受信時刻t3’と宛先に対して同期パケットを送信した時刻(送信時刻)t4’を保持する。時刻t3’、t4’を保持することで、S508へ移行する。
S508において、通信プロトコル処理部222は、S506で受信した同期パケットDelay_Reqに対応した同期パケットDelay_Respを受信したかどうかを判定する。同期パケットDelay_Reqに対応した同期パケットDelay_Respを受信した場合はS509へ移行する。そうでなければS508を繰り返す。
S509において、通信プロトコル処理部222は、S507で保持した時刻t3’、t4’から計算した中継処理時間(t4’-t3’)を、同期パケットDelay_Reqに対応した同期パケットDelay_Respのコレクションフィールドに加算する。そして、通信プロトコル処理部222は、宛先に対して同期パケットDelay_Respを送信する。同期パケットDelay_Respの送信が完了することでS518へ移行する。
S510において、通信プロトコル処理部222は、自分宛ではない同期パケットSyncを受信したかどうかを判定する。自分宛ではない同期パケットSyncを受信した場合はS511へ移行する。そうでない場合はS510を繰り返す。
S511において、通信プロトコル処理部222は、自分宛ではない同期パケットSyncを受信した受信時刻t1’と宛先に対して同期パケットを送信した時刻t2’を保持する。時刻t1’、t2’を保持することで、S512へ移行する。
S512において、通信プロトコル処理部222は、S510で受信した同期パケットSyncに対応した同期パケットFollow_Upを受信したかどうかを判定する。同期パケットSyncに対応した同期パケットFollow_Upを受信した場合はS513へ移行する。そうでなければS512を繰り返す。
S513において、通信プロトコル処理部222は、S511で保持した時刻t1’、t2’から計算した中継処理時間(t2’-t1’)を、同期パケットSyncに対応した同期パケットFollow_Upのコレクションフィールドに加算する。そして、通信プロトコル処理部222は、宛先に対して同期パケットFollow_Upを送信する。同期パケットFollow_Upの送信が完了することでS518へ移行する。
S514~S517の一連の処理フローは、S506~S509の一連の処理フローと同一である。
S518において、S502、S503~S509、S510~S517の一連の処理フローを継続するかどうかを判定する。外部機器との通信状態を終了させる要因が発生した場合はS519へ移行し、そうでなければS502へ移行する。
S519は、図5の処理フローチャートの終了を示している。センサシステム110が外部機器と通信状態にないことを示している。
通信プロトコル処理部222はセンサシステム110の入出力の時刻を取得してPTP TC処理を実行している。センサシステム110の入出力の時刻は、具体的には、第1PHY部203、第2PHY部204で入出力時刻を取得して通信プロトコル処理部222に提供することにより行われる。なお、第1MAC部213、第2MAC部214で入出力時刻を取得して通信プロトコル処理部222に提供してもよい。
そして、通信プロトコル処理部222はセンサシステム110内における通信パケットの滞留時間について考慮し(滞留時間に基づいて)、平均伝送遅延時間を算出し、センサシステム110内の時刻を補正している。
次に本実施形態におけるバイパス状態の処理のフローチャートについて、図6を用いて説明する。ここでバイパス状態とはバイパス制御部212がバイパスモードであり、第2経路212dを使用して通信する状態である。
センサシステム110がバイパス状態で動作する場合、バイパス制御部212より上位層に位置する通信プロトコル処理部222はPTP同期におけるTC処理を実施できない。そのため、滞留時間予測部217、パケット判別部218、ヘッダ書き換え部219で第1バッファ部215、第2バッファ部216における同期パケットの滞留時間を予測する。そして、特定の同期パケットのコレクションフィールド(所定箇所)に予測滞留時間を加算する。
S601は、このフローチャートのスタートを示している。センサシステム110が起動した後、本フローチャートがスタートする。
S602において、バイパス制御部212がバイパスモードで動作しているかを判定する。具体的には、状態制御部223が故障状態やスリープ状態によりセンサシステム110を制御できない、あるいは制御しないと判断することで、バイパス制御部212は動作モードを通常モードからバイパスモードに切り替える。そしてセンサシステム110が故障状態やスリープ状態から復帰し、制御可能だと状態制御部223が判断することで、バイパス制御部212は動作モードをバイパスモードから通常モードに切り替える。そして、バイパス制御部212が動作モードを滞留時間予測部217に通知する。
バイパス制御部212がバイパスモードであり第2経路212dを用いて通信している場合は、S603へ移行する。バイパス制御部212が通常モードであり第1経路212cを用いて通信している場合は、S602を繰り返す。
S603において、PTP同期設定が1Stepであるという通知(1Stepであることを示す信号)を滞留時間予測部217が受信したか否かを判定する。滞留時間予測部217の処理方法は、PTP同期設定が1Stepであるか2Stepであるかにより異なる。1Stepの場合は滞留時間予測の対象パケットがSync、Delay_Respとなる。2Stepの場合は滞留時間予測の対象パケットがFollow_Up、Delay_Respとなる。
PTP同期設定が1Stepである場合は、S604へ移行する。PTP同期設定が2Stepである場合は、S605へ移行する。
S604において、滞留時間予測部217、パケット判別部218、ヘッダ書き換え部219を用いたPTP同期設定が1Stepにおける滞留時間予測処理を実行する。S604の詳細については、図7を用いて後述する。S604の滞留時間予測処理を完了することで、S606へ移行する。
S605において、滞留時間予測部217、パケット判別部218、ヘッダ書き換え部219を用いたPTP同期設定が2Stepにおける滞留時間予測処理を実行する。S605の詳細についても図7を用いて後述する。S605の滞留時間予測処理を完了することで、S606へ移行する。
S606において、S602~S605の一連の処理フローを継続するかどうかを判定する。外部機器との通信状態を終了させる要因が発生した場合はS607へ移行して、そうでなければS602へ移行する。
S607において、S602~S606の一連の処理フローチャートが終了する。センサシステム110が外部機器と通信状態にないことを示している。
次に、S604の処理とS605の処理の詳細について、図7を用いて説明する。S604とS605の相違点は、処理対象の通信パケットが異なることである。PTP同期設定が1Stepの場合(S604)、処理対象の通信パケットはSyncとDelay_Respである。PTP同期設定が2Stepの場合(S605)、処理対象の通信パケットはFollow_UpとDelay_Respである。S604における通信パケットの処理方法とS605における通信パケットの処理方法は同一である。
S700において、このフローチャートがスタートする。S700はS603に相当する。
S701において、パケット判別部218は、受信パケットがPTP同期パケットであるか否かを判定する。具体的には、まず、パケット判別部218が滞留時間予測部217を経由して、第1MAC部213と第1バッファ部215の間のバスをスヌープすることで、受信パケットのEtherTypeやmessageTypeを読み取る。EtherTypeからPTP同期パケットであること、messageTypeからSync、Follow_Up、Delay_Req、Delay_Respのいずれかであることを判別できる。バスはAMBA(登録商標)AXI-Streamプロトコルに準拠しており、バスを通るデータ信号はTDATAで、制御信号はTVALID,TREADY,TLASTである。TVALIDは有効なTDATAを出力していることを示し、TREADYはTDATAの入力を待っている状態を示し、TLASTはTDATA出力の最後であることを示している。本実施形態ではこれら信号を用いて滞留時間を予測する。
PTP同期設定が1Stepの場合、S701では受信パケットがSyncもしくはDelay_Respであるか判定する。判定結果がYesであれば、S702へ移行する。判定結果がNoであれば、S701を繰り返す。
PTP同期設定が2Stepの場合、S701では受信パケットがFollow_UpもしくはDelay_Respであるかを判定する。判定結果がYesであれば、S702へ移行する。判定結果がNoであれば、S701を繰り返す。
S702において、滞留時間予測部217は、S701で受信したPTP同期パケットのコレクションフィールドの値を保持する。具体的には、S701においてパケット判別部218がPTP同期パケットを判別する際に、併せてコレクションフィールド値も読み取る。パケット判別部218は、読み取ったコレクションフィールド値を滞留時間予測部217に通知(送信)して、滞留時間予測部217がコレクションフィールド値を保持する。滞留時間予測部217がコレクションフィールド値を保持することで、S703へ移行する。
S703において、滞留時間予測部217は、S701において判別したPTP同期パケットが第1バッファ部215で滞留する時間を予測する。
滞留時間予測部217は、TVALID-TREADYハンドシェイクが成立、かつTLASTがアサートされたタイミングで、第1バッファ部215が使用しているデータ量を読み取る。そして、滞留時間予測部217はバイパス制御部212からセンサシステム110内の伝送クロックを把握(取得)する。滞留時間予測部217は、第1バッファ部215が使用しているデータ量と、センサシステム110内の伝送クロックとに基づいて、滞留時間を予測する。PTPヘッダのコレクションフィールドに格納されるデータは、データ幅が32bitであり、単位がnano secondsであるため、滞留時間予測部217は予測した予測時間も同様のフォーマット(データ幅、単位)で保持する。なお、滞留時間予測の詳細については図8を用いて後述する。
滞留時間予測部217が滞留時間を予測して、予測結果とコレクションフィールド値を対応付けて保持することでS704へ移行する。
S704において、滞留時間予測部217はS701~S703の一連の処理フロー(滞留時間予測処理)を継続するかどうかを判定する。具体的には、バイパス制御部212の動作モードがバイパスモードから通常モードに切り替わった場合、滞留時間予測部217は滞留時間予測処理を停止する。
滞留時間予測部217が滞留時間予測処理を停止した場合はS716へ移行し、そうでなければS701へ移行する。
S705において、パケット判別部218は、送信パケットがPTP同期パケットであるか否かを判定する。具体的には、パケット判別部218が滞留時間予測部217を経由して、バイパス制御部212と第2バッファ部216の間のバスをスヌープすることで、送信パケットのEtherTypeやmessageTypeを読み取る。EtherTypeからPTP同期パケットであること、messageTypeからSync、Follow_Up、Delay_Req、Delay_Respのいずれかであることを判別できる。ここでバスについてはS701で説明した通りである。つまり、受信側のバスと送信側のバスは、AMBA AXI-Streamプロトコルに準拠している。そして、PTP同期設定が1Stepの場合は送信パケットがSyncもしくはDelay_Respであることを判定し、2Stepの場合はFollow_UpもしくはDelay_Respであることを判定することも受信処理(S701)と同様である。
PTP同期設定が1Stepの場合、送信パケットがSyncもしくはDelay_Respであれば、S706へ移行して、そうでなければS705を繰り返す。PTP同期設定が2Stepの場合、送信パケットがFollow_UpもしくはDelay_Respであれば、S706へ移行して、そうでなければS705を繰り返す。
S706において、滞留時間予測部217は、S705で送信するPTP同期パケットのコレクションフィールドの値を保持する。具体的には、S705においてパケット判別部218がPTP同期パケットを判別する際に、併せてコレクションフィールド値も読み取る。そしてパケット判別部218が読み取ったコレクションフィールド値を滞留時間予測部217に通知して、滞留時間予測部217がコレクションフィールド値を保持する。滞留時間予測部217がコレクションフィールド値を保持することで、S707へ移行する。
S707において、滞留時間予測部217は、S702で保持した受信パケットのコレクションフィールド値と、S706で保持した送信パケットのコレクションフィールド値とを比較して、比較した値同士が一致するかどうかを判定する。第1バッファ部215によって出力された通信パケットはバイパス制御部212を経由して第2バッファ216に入力される。バイパス制御部212は通信パケットの転送を実施しており、通信パケットの書き換え処理を実施しないため、コレクションフィールド値の比較で同一パケットかどうかを判断できる。
受信パケットのコレクションフィールド値と送信パケットのコレクションフィールドの値が一致した場合はS708へ移行し、そうでなければS705へ移行する。
S708において、滞留時間予測部217は、S705で判別したPTP同期パケットが第2バッファ部216で滞留する時間を予測する。滞留時間の予測方法はS703の予測方法と同一である。滞留時間予測部217が滞留時間を予測して、予測結果とコレクションフィールド値を対応付けて保持したならば、S709へ移行する。
S709において、滞留時間予測部217は、S705~S708の一連の処理フロー(滞留時間予測処理)を継続するかどうかを判定する。具体的には、バイパス制御部212の動作モードがバイパスモードから通常モードに切り替わった場合、滞留時間予測部217は滞留時間予測処理を停止する。滞留時間予測部217が滞留時間予測処理を停止した場合はS716へ移行し、そうでなければS705へ移行する。
S710において、滞留時間予測部217は、受信パケットの滞留時間予測値と、送信パケットの滞留時間予測値と、それぞれに対応するコレクションフィールド値とを保持しているかどうかを判定する。滞留時間予測部217が受信パケットの滞留時間予測値と、送信パケットの滞留時間予測値と、それぞれに対応するコレクションフィールド値を保持している場合は、S711へ移行し、そうでなければS710を繰り返す。
S711において、滞留時間予測部217が保持している3つの値(コレクションフィールド値、受信パケットの滞留時間予測値、送信パケットの滞留時間予測値)を加算する。S711を実行する理由は、タイムサーバ101からセンサシステム110の間でPTP TC処理を実施した場合、すでにコレクションフィールドに値が格納されている可能性があるからである。例えば、タイムサーバ101からセンサシステム110cの間でPTP同期が行われた場合、センサシステム110aと110bでPTP TC処理が行われる。そしてセンサシステム110a、110bにおける中継処理時間がセンサシステム110c宛PTPパケットのコレクションフィールド値に加算される。そのため、S711でコレクションフィールド値に、第1のバッファ部215における滞留時間予測値と第2バッファ部216における滞留時間予測値を加算している。滞留時間予測部217が3つの値の加算を完了することで、S712へ移行する。
S712において、滞留時間予測値217は、S711で加算した結果に対して、バイパス制御部212より受信したオフセット値を加算する。オフセット値とは伝送経路上で発生する固定遅延のことである。具体的には、第1PHY部203、第1I/F部210、第1MAC部213、第1バッファ部215、バイパス制御部212、第2バッファ部216、ヘッダ書き換え部219、第2MAC部214、第2I/F部211、第2PHY部204で発生する固定遅延である。これらで発生する固定遅延を考慮するため、バイパス制御部212が通常モードで動作しているときに、バイパス制御部212にオフセット値をあらかじめ通知しておく。そして、滞留時間予測部217はバイパス制御部212よりオフセット値を受信する。なお、バイパス制御部212経由で滞留時間予測部217にオフセット値を通知するとしたが、滞留時間予測部217をシステムバス220に接続して、通信プロトコル処理部222がオフセット値を滞留時間予測部217に通知してもよい。
バイパス制御部212がバイパスモードで動作しているときにリアルタイムでオフセット値を変更する場合は、例えば、制御端末103が、新しいオフセット値を含む特殊パケットを生成して、センサシステム110で特殊パケットを受信する。そして、センサシステム110は、当該新しいオフセット値で現在のオフセット値を置換する。あるいは、パケット判別部218が受信したパケットを特殊パケットと判別して、特殊パケットに含まれる新しいオフセット値を読み取り、当該新しいオフセット値を使用してもよい。
滞留時間予測部217がS711の加算結果にオフセット値を加算して、ヘッダ書き換え部219に対してコレクションフィールド値とともに通知することで、S713へ移行する。
S713において、ヘッダ書き換え部219は、パケット判別部218から入力された通信パケットのコレクションフィールド値と、滞留時間予測部217から受信したコレクションフィールド値とを比較して、一致するかどうかを判定する。ヘッダ書き換え部219は、パケット判別部218を用いて入力される通信パケットが同期パケットであることを判別して、パケット判別部218からコレクションフィールド値を受信する。そして、ヘッダ書き換え部219は、滞留時間予測部217から受信したコレクションフィールド値とパケット判別部218から受信したコレクションフィールド値を比較する。本実施形態では、パケット判別部218を用いてヘッダ書き換え部219に入力される通信パケットの判別を行い、コレクションフィールド値の読み取りを行っているが、ヘッダ書き換え部219がこれら機能を有してもよい。
ヘッダ書き換え部219が、入力された通信パケットのコレクションフィールド値と滞留時間予測部217から受信したコレクションフィールド値とを比較して一致した場合は、S714へ移行する。そうでなければS713を繰り返す。
S714において、ヘッダ書き換え部219は、入力された同期パケットのコレクションフィールド値をS712の加算結果で書き換える。ヘッダ書き換え部219がコレクションフィールド値の書き換えに要した処理時間は、S712のオフセット値加算によって補正される。あるいはヘッダ書き換え部219自らが書き換え処理に要した時間を計算して、S712の加算結果に加算してもよい。
ヘッダ書き換え部219がコレクションフィールド値を書き換えることで、S715へ移行する。
S715において、滞留時間予測部217は、S710~S714の一連の処理フロー(滞留時間予測処理)を継続するかどうかを判定する。具体的には、バイパス制御部212の動作モードがバイパスモードから通常モードに切り替わった場合、滞留時間予測部217は滞留時間予測処理を停止する。
滞留時間予測部217が滞留時間予測処理を停止した場合はS716へ移行し、そうでなければS710へ移行する。
S716において、S701~S715の処理が終了する。S716はS606に相当する。S716は、バイパス制御部212の動作モードが通常モードであり、滞留時間予測部217、パケット判別部218、ヘッダ書き換え部219が機能していないことを示している。
このように、本実施形態によれば、バイパスモードのとき、カメラアダプタ112内部の第1バッファ215および第2バッファ216における滞留時間を予測して、予測した滞留時間をPTPパケットのコレクションフィールドに加算している。当該加算により、バイパスモードのときでも、通常モードのときと同様に遅延時間を考慮した同期処理を行うことができるので、通信ネットワーク全体における同期精度の低下を抑制することができる。
次に本実施形態における第1バッファ部215および第2バッファ部216の滞留時間予測について図8を用いて説明する。本実施形態では第1バッファ部215と第2バッファ部216は同様の方法で滞留時間を予測するので、第1バッファ部215で説明する。
第1バッファ部215はFIFO(First Input First Output)で構成され、入力されるデータ幅800とFIFO段数801によって入力可能なデータ量が決定する。
第1バッファ部215へのデータ入力802と、第1バッファ部215からのデータ出力803は、通信パケットが伝送される伝送クロックの1サイクル毎に実施される。データ入力802、データ出力803はAXI-Streamプロトコルに従い、TVALID-TREADYハンドシェイクが成立することで、1サイクル毎にデータ幅800で入力、出力される。
データ幅800は伝送クロックの1サイクルで入力されるデータ量である。例えば、データ幅800は32bit、64bit、128bitなどである。なお、データ幅800はこれらに限定されない。
FIFO段数801はデータ幅800で格納できる段数である。例えば、FIFO段数801は512段、1024段、2048段などである。なお、FIFO段数801は、これらに限定されない。
例えば、データ幅800が32bitであり、FIFO段数801が1024段である場合、第1バッファ部215には32bit×1024段=32768bit(4096byte)のデータを入力可能である。
第1バッファ部215が使用しているデータ量804は、滞留時間予測部217にリアルタイムで出力される。第1バッファ部215が使用しているデータ量とは、第1バッファ部215に入力されて内部に格納されているFIFO段数を示す。例えば、第1バッファ部215が空の状態で3サイクル分のデータ(data_1、data_2、data_3)が入力された場合、第1バッファ部215には3段分のデータが格納されており、この数値(段数)を滞留時間予測部217に出力する。滞留時間予測部217は、第1バッファ部215が使用しているデータ量804を読み取り、滞留時間予測に利用する。なお、第1バッファ部215が使用しているデータ量804の読み取り方法(取得方法)はこれに限定されない。例えば、滞留時間予測部217が第1バッファ部215へデータ入力802を行った回数と、第1バッファ部215からデータ出力803を行った回数との差を算出することにより、データ量804を取得してもよい。
ここで第1バッファ部215内部にデータ格納されているFIFO段数を128段とし、通信パケットが伝送される伝送クロックを100MHzとして、滞留時間の予測方法を説明する。
伝送クロック100MHzは1サイクルで10nsec(nano seconds)の時間を要する。そして128段(FIFO段数)に格納されたデータが第1バッファ部(FIFO)215から全て出力されるのに要する時間は最低でも10nsec×128段=1280nsecであると予測できる。
その他の実施形態
本発明は例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)などとしての実施形態をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インターフェース機器、Webアプリケーションなど)から構成されるシステムに適用されてもよいし、また、1つの機器からなる装置に適用されてもよい。
また本発明は、上述した実施形態の1以上の機能を実現するプログラム(コンピュータプログラム)を、ネットワークまたは記録媒体(記憶媒体)を介して、システムまたは装置に供給することによっても実現可能である。そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出して実行する。この場合、記録媒体から読み出されたプログラム(プログラムコード)自体が実施形態の機能を実現することになる。また、当該プログラムを記録した記録媒体は本発明を構成することができる。
また、コンピュータが読み出したプログラムを実行することにより、実施形態の機能が実現されるだけでなく、プログラムの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって上記した実施形態の機能が実現されてもよい。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されてもよい。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムが格納されることになる。
本実施形態の開示は、以下の構成、システム、方法およびプログラムを含む。
構成1
他の通信装置と時刻同期する通信装置であって、
前記時刻同期のための通信プロトコル処理を実行する処理手段と、
同期パケットを格納する格納手段と、
前記同期パケットが前記格納手段に滞留する時間を予測する予測手段と、
前記同期パケットを、前記処理手段を介さずに前記他の通信装置に送信する状態にある場合、前記予測手段が予測した時間に基づいて、前記同期パケットの所定箇所を書き換える書き換え手段と、
を有することを特徴とする通信装置。
構成2
前記同期パケットを、前記処理手段を介して前記他の通信装置に送信する状態にある場合、前記処理手段は、前記同期パケットが前記格納手段に滞留する時間を算出し、前記算出した時間に基づいて、前記同期パケットの所定箇所を書き換えることを特徴とする構成1に記載の通信装置。
構成3
前記予測手段が予測した時間を補正する値が入力された場合、前記予測手段は前記値を用いて前記予測した時間を補正することを特徴とする構成1または2に記載の通信装置。
構成4
前記通信装置は、前記同期パケットの伝送路を切り替えるスイッチ手段をさらに有し、
前記スイッチ手段は、前記同期パケットを、前記処理手段を介さずに前記他の通信装置に送信するか、前記処理手段を介して前記他の通信装置に送信するかを切り替えることができ、
前記同期パケットの送受信中に前記スイッチ手段が前記切り替えを実行した場合、前記予測手段は送受信中の同期パケットを前記予測の対象外として、次に送受信される同期パケットを前記予測の対象とすることを特徴とする構成1~3のいずれかに記載の通信装置。
構成5
前記格納手段は、受信する同期パケットを格納する第1のバッファ手段と、送信する同期パケットを格納する第2のバッファ手段と、を含むことを特徴とする構成1~5のいずれかに記載の通信装置。
構成6
前記予測手段は、前記同期パケットの伝送クロックと、前記第1のバッファ手段に入力されたデータ量と、前記第2のバッファ手段に入力されたデータ量とに基づいて、前記第1のバッファ手段に滞留する時間と、前記第2のバッファ手段に滞留する時間とを予測することを特徴とする構成5に記載の通信装置。
構成7
前記書き換え手段により書き換えられる前記所定箇所は、前記同期パケットのヘッダ領域であることを特徴とする構成1~6のいずれかに記載の通信装置。
構成8
前記同期パケットはPTP(Precision Time Protocol)パケットであることを特徴とする構成1~7のいずれかに記載の通信装置。
構成9
前記PTPパケットは、Syncメッセージ、Follow_UpメッセージまたはDelay_Respメッセージであることを判別することを特徴とする構成8に記載の通信装置。
構成10
前記予測手段は、前記PTPパケットのヘッダ領域に含まれるコレクションフィールドの値を保持して、前記PTPパケットの滞留時間を予測した後、当該滞留時間を前記コレクションフィールドの値に加算することを特徴とする構成8または9に記載の通信装置。
方法1
他の通信装置と時刻同期するための通信プロトコル処理を実行する処理部と、同期パケットを格納する格納部と、を有する通信装置を制御する制御方法であって、
前記同期パケットが前記格納部に滞留する時間を予測するステップと、
前記同期パケットを、前記処理部を介さずに前記他の通信装置に送信する状態にある場合、前記予測するステップで予測した時間に基づいて、前記同期パケットの所定箇所を書き換えるステップと、
を有することを特徴とする制御方法。
プログラム1
コンピュータを、構成1~10のいずれかに記載の通信装置の各手段として動作させるためのプログラム。
100 同期撮影システム、101 タイムサーバ、110 センサシステム、112 カメラアダプタ、217 滞留時間予測部、219 ヘッダ書き換え部、212 バイパス制御部、218 パケット判別部、222 通信プロトコル処理部、223 状態制御部

Claims (12)

  1. 他の通信装置と時刻同期する通信装置であって、
    前記時刻同期のための通信プロトコル処理を実行する処理手段と、
    同期パケットを格納する格納手段と、
    前記同期パケットが前記格納手段に滞留する時間を予測する予測手段と、
    前記同期パケットを、前記処理手段を介さずに前記他の通信装置に送信する状態にある場合、前記予測手段が予測した時間に基づいて、前記同期パケットの所定箇所を書き換える書き換え手段と、
    を有することを特徴とする通信装置。
  2. 前記同期パケットを、前記処理手段を介して前記他の通信装置に送信する状態にある場合、前記処理手段は、前記同期パケットが前記格納手段に滞留する時間を算出し、前記算出した時間に基づいて、前記同期パケットの所定箇所を書き換えることを特徴とする請求項1に記載の通信装置。
  3. 前記予測手段が予測した時間を補正する値が入力された場合、前記予測手段は前記値を用いて前記予測した時間を補正することを特徴とする請求項1に記載の通信装置。
  4. 前記通信装置は、前記同期パケットの伝送路を切り替えるスイッチ手段をさらに有し、
    前記スイッチ手段は、前記同期パケットを、前記処理手段を介さずに前記他の通信装置に送信するか、前記処理手段を介して前記他の通信装置に送信するかを切り替えることができ、
    前記同期パケットの送受信中に前記スイッチ手段が前記切り替えを実行した場合、前記予測手段は送受信中の同期パケットを前記予測の対象外として、次に送受信される同期パケットを前記予測の対象とすることを特徴とする請求項1~3のいずれか1項に記載の通信装置。
  5. 前記格納手段は、受信する同期パケットを格納する第1のバッファ手段と、送信する同期パケットを格納する第2のバッファ手段と、を含むことを特徴とする請求項1~3のいずれか1項に記載の通信装置。
  6. 前記予測手段は、前記同期パケットの伝送クロックと、前記第1のバッファ手段に入力されたデータ量と、前記第2のバッファ手段に入力されたデータ量とに基づいて、前記第1のバッファ手段に滞留する時間と、前記第2のバッファ手段に滞留する時間とを予測することを特徴とする請求項5に記載の通信装置。
  7. 前記書き換え手段により書き換えられる前記所定箇所は、前記同期パケットのヘッダ領域であることを特徴とする請求項1~3のいずれか1項に記載の通信装置。
  8. 前記同期パケットはPTP(Precision Time Protocol)パケットであることを特徴とする請求項1~3のいずれか1項に記載の通信装置。
  9. 前記PTPパケットは、Syncメッセージ、Follow_UpメッセージまたはDelay_Respメッセージであることを判別することを特徴とする請求項8に記載の通信装置。
  10. 前記予測手段は、前記PTPパケットのヘッダ領域に含まれるコレクションフィールドの値を保持して、前記PTPパケットの滞留時間を予測した後、当該滞留時間を前記コレクションフィールドの値に加算することを特徴とする請求項8に記載の通信装置。
  11. 他の通信装置と時刻同期するための通信プロトコル処理を実行する処理部と、同期パケットを格納する格納部と、を有する通信装置を制御する制御方法であって、
    前記同期パケットが前記格納部に滞留する時間を予測するステップと、
    前記同期パケットを、前記処理部を介さずに前記他の通信装置に送信する状態にある場合、前記予測するステップで予測した時間に基づいて、前記同期パケットの所定箇所を書き換えるステップと、
    を有することを特徴とする制御方法。
  12. コンピュータを、請求項1~3のいずれか1項に記載の通信装置の各手段として動作させるためのプログラム。
JP2022161424A 2022-10-06 2022-10-06 通信装置およびその制御方法 Pending JP2024054943A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022161424A JP2024054943A (ja) 2022-10-06 2022-10-06 通信装置およびその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022161424A JP2024054943A (ja) 2022-10-06 2022-10-06 通信装置およびその制御方法

Publications (1)

Publication Number Publication Date
JP2024054943A true JP2024054943A (ja) 2024-04-18

Family

ID=90716477

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022161424A Pending JP2024054943A (ja) 2022-10-06 2022-10-06 通信装置およびその制御方法

Country Status (1)

Country Link
JP (1) JP2024054943A (ja)

Similar Documents

Publication Publication Date Title
EP3016306B1 (en) Method and apparatus for providing in-vehicle network time synchronization using redundant grandmaster
US11356388B2 (en) Real-time multi-protocol heterogeneous packet-based transport
JP5867765B2 (ja) マルチプロトコルのi/o相互接続の時間同期化
JP4355370B2 (ja) ネットワークノード同期方法
EP2798506B1 (en) Multi-protocol i/o interconnect time synchronization
US10069889B2 (en) Network camera and network image surveillance system
JPH0373636A (ja) データ同期伝送方式
WO2020136487A2 (en) A tsn enabled controller
JP2002164915A (ja) 複数の通信を同期させるシステム及び方法
JP2024054943A (ja) 通信装置およびその制御方法
US11956344B2 (en) Communication apparatus, method for controlling communication apparatus, and storage medium
JP6805938B2 (ja) 仮想lanの時刻同期方法
US20220085904A1 (en) Systems and methods for nodes communicating using a time-synchronized transport layer
JP2021093695A (ja) 同期制御装置、同期制御装置の制御方法、およびプログラム
JP2024090303A (ja) 通信制御装置、通信装置、通信システム、通信方法およびプログラム
JP2021090127A (ja) 制御装置、制御方法、及び、プログラム
JP2023166799A (ja) 通信装置、通信方法およびプログラム
US20230155949A1 (en) Communication apparatus, control method for communication apparatus, and storage medium
JP7467130B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20230032204A1 (en) Communication apparatus, communication method, and storage medium
JP2024033864A (ja) 同期制御装置、同期撮影装置、同期制御方法およびプログラム
JP2022169044A (ja) 通信装置及びその制御方法
JP2019140643A (ja) 伝送装置
JP2022028499A (ja) 通信装置、通信方法及びプログラム
US20240107094A1 (en) Communication apparatus, control method, and storage medium

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20240614