(57)【要約】【課題】  分散型取得システムの１つ以上のスレーブノードのうちのあるスレーブノード及びマスターノード、並びにスレーブノードの通信を同期する方法が提供される。【解決手段】  方法は、パケット間隔についての定義をもたらす構成を取得することを含み、パケット間隔の定義は、マスターノード及び１つ以上のスレーブノードによって伝送された通信パケットがパケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす。方法は更に、バスを介してマスターノードからマスター通信パケットを受信することと、マスターノードから受信されたマスター通信パケットの少なくとも１つの直近のマスター通信パケットの開始時間を判定することと、開始時間に基づいて、同期時間を計算することと、同期時間に基づいて、マスターノードへのスレーブ通信パケットの伝送を開始することと、を含む。【選択図】図１
2020099052.tif 000002
【特許請求の範囲】
【請求項１】
分散型取得システムの複数のスレーブノードのスレーブノードであって、前記スレーブノードは、
制御構成要素とバスとの間でインタフェースする通信インタフェースであって、前記バスは、前記取得システムのマスターノード及び前記複数のノードの他のスレーブノードに結合された通信バスである、前記通信インタフェースと、
制御構成要素であって、
パケット間隔についての定義をもたらす構成を取得することであって、前記パケット間隔の定義は、前記マスターノード及び前記１つ以上のスレーブノードによって伝送された通信パケットが前記パケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす、前記取得すること、
前記バスを介して前記マスターノードからマスター通信パケットを受信すること、
前記マスターノードから受信された前記マスター通信パケットの少なくとも１つの直近のマスター通信パケットの開始時間を判定すること、
前記開始時間に基づいて、同期時間を計算すること、
前記同期時間に基づいて、前記マスターノードへのスレーブ通信パケットの伝送を開始すること、
を行うように構成された、前記制御構成要素と、
を備えた、スレーブノード。
【請求項２】
前記制御構成要素は更に、前記スレーブノードが前記バスの所有権を許可されているかどうかを判定するように構成され、
前記スレーブ通信パケットの伝送は、前記スレーブノードが所有権を許可されるときのみ開始する、
請求項１に記載のスレーブノード。
【請求項３】
前記スレーブノードへの前記所有権の許可は、前記スレーブノードに対して排他的である、請求項２に記載のスレーブノード。
【請求項４】
前記バスの所有権が前記スレーブノードに許可されているかどうかを判定することは、前記所有権の許可と関連付けられた前記バスへのアクセスの制限を判定することを含み、
前記制御構成要素は更に、前記バスの所有権が前記アクセスの制限に起因して許可されないときに前記スレーブ通信パケットの伝送を開始することを控えるように構成される、請求項２に記載のスレーブノード。
【請求項５】
前記アクセスの制限は、前記スレーブノードが前記バスの所有権を許可されている間に前記スレーブノードによって伝送されることが許容されるスレーブ通信パケットの最大数、その後に前記スレーブによる前記バスの所有権の前記許可が満了する時間間隔、または前記バスの所有権が許可された間に前記スレーブによって前記バス上で使用されるように利用可能なパケット間隔の定義の数、を指定する、請求項３に記載のスレーブノード。
【請求項６】
前記パケット間隔の定義は前記マスターノードによって伝送されたマスター通信パケットの連続した伝送開始時間の間の最大予測時間であり、
前記スレーブノードによって伝送された前記スレーブ通信パケットは、前記パケット間隔の定義に基づいて同期される、請求項１に記載のスレーブノード。
【請求項７】
前記パケット間隔の定義は、前記取得された構成の最大パケットペイロードサイズ及び通信ボーレート定義に基づいて、前記マスターノードによって伝送された前記マスター通信パケットまたは前記複数のスレーブノードのいずれかによって伝送された前記スレーブ通信パケットを伝送するための最大予測伝送時間を適応させる、請求項６に記載のスレーブノード。
【請求項８】
前記マスターノードの制御構成要素から受信された前記マスター通信パケットのマスター通信パケットは、前記スレーブノードへの前記バスの所有権に対する許可と実質的に共に受信された確認応答についての要求を含み、
前記同期時間は、前記マスター通信パケットの受信の時間に基づいて更新され、
前記マスターノードに伝送された前記スレーブ通信パケットのスレーブ通信パケットは、前記パケット間隔の定義に更に基づいて、前記確認応答についての要求に応答して開始する、請求項２に記載のスレーブノード。
【請求項９】
前記マスターノードから受信された前記マスター通信パケットの第２のマスター通信パケットは、前記スレーブノードによる前記マスター通信パケットの受信の時間までの前記マスター通信パケットの伝送の開始の間の時間の量、及び／または前記マスターノードによる前記スレーブ通信パケットの受信までの前記スレーブノードによって伝送された前記通信パケットの伝送の開始の間の時間の量に基づいて、前記マスターノードによって測定された伝播遅延を含み、
前記制御構成要素は更に、前記伝播遅延に基づいて、後続のスレーブ通信パケットの伝送を開始するための時間を調節するように構成される、
請求項８に記載のスレーブノード。
【請求項１０】
前記パケット間隔の定義は、前記マスターノードと前記スレーブノードとの間のクロック差に起因したボーレート誤差、前記マスターノードまたは前記スレーブノードによる前記マスターノード及び前記スレーブノードのうちのその他への前記バスの制御の間で遷移するときの処理、並びに文字間タイミングずれの合計、のうちの少なくとも１つによって生じた遅延に基づいている、請求項１に記載のスレーブノード。
【請求項１１】
物理特性を検知し、前記検知に基づいて検知データを出力するように構成された検知素子と、
前記検知データをバッファリングするように構成されたバッファと、を更に含み、
前記マスターノードから受信された前記マスター通信パケットのマスター通信パケットは、検知されたデータについての要求を含み、
前記制御構成要素は更に、前記マスター通信パケットを受信したことに応答して、前記マスターノードに伝送された前記スレーブ通信パケットのうちの１つ以上に、前記バッファによってバッファリングされた検知データを含めるように構成される、
請求項１に記載のスレーブノード。
【請求項１２】
分散型取得システムの１つ以上のスレーブノードのうちのあるスレーブノードとマスターノードとの間の通信を同期する方法であって、
パケット間隔についての定義をもたらす構成を取得することであって、前記パケット間隔の定義は、前記マスターノード及び前記１つ以上のスレーブノードによって伝送された通信パケットが前記パケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす、前記取得することと、
前記バスを介して前記マスターノードからマスター通信パケットを受信することと、
前記マスターノードから受信された前記マスター通信パケットの少なくとも１つの直近のマスター通信パケットの開始時間を判定することと、
前記開始時間に基づいて、同期時間を計算することと、
前記同期時間に基づいて、前記マスターノードへのスレーブ通信パケットの伝送を開始することと、
を備えた、方法。
【請求項１３】
前記スレーブノードが前記バスの所有権を許可されているかどうかを判定することを更に含み、
前記スレーブ通信パケットの伝送は、前記スレーブノードが所有権を許可されるときのみ発生する、
請求項１２に記載の方法。
【請求項１４】
前記スレーブノードへの前記所有権の許可は、前記スレーブノードに対して排他的である、請求項１３に記載の方法。
【請求項１５】
前記バスの所有権が前記スレーブノードに許可されているかどうかを判定することは、前記所有権の許可と関連付けられた前記バスへのアクセスの制限を判定することを含み、
前記制御構成要素は更に、前記バスの所有権が前記アクセスの制限に起因して許可されないときに前記スレーブ通信パケットの伝送を開始することを控えるように構成される、請求項１３に記載の方法。
【請求項１６】
前記マスターノードの制御構成要素から受信された前記マスター通信パケットのマスター通信パケットは、前記スレーブノードへの前記バスの所有権に対する許可と実質的に共に受信された確認応答についての要求を含み、
前記同期時間は、前記マスター通信パケットの受信の時間に基づいて更新され、
前記方法は更に、前記同期時間及び前記パケット間隔の定義に更に基づいて、確認応答についての前記要求に応答して前記スレーブ通信パケットのスレーブ通信パケットを開始することを含む、請求項１２に記載の方法。
【請求項１７】
前記マスターノードから受信された前記マスター通信パケットの第２のマスター通信パケットは、前記スレーブノードによる前記マスター通信パケットの受信の時間までの前記マスター通信パケットの伝送の開始の間の時間の量、及び／または前記マスターノードによる前記スレーブ通信パケットの受信までの前記スレーブノードによって伝送された前記通信パケットの伝送の開始の間の時間の量に基づいて、前記マスターノードによって測定された伝播遅延を含み、
前記方法は更に、前記伝播遅延に基づいて、後続のスレーブ通信パケットの伝送を開始するための時間を調節することを含む、
請求項１２に記載の方法。
【請求項１８】
物理特性を検知することと、
前記検知に基づいて検知データを出力することと、
前記検知データをバッファリングすることと、を更に含み、
前記マスターノードの制御構成要素から受信された前記マスター通信パケットのマスター通信パケットは、検知されたデータについての要求を含み、
前記方法は更に、前記マスター通信パケットを受信したことに応答して、前記マスターノードに伝送された前記スレーブ通信パケットのうちの１つ以上に、前記バッファによってバッファリングされた検知データを含めることを含む、
請求項１２に記載の方法。
【請求項１９】
バスを介してマスターノードと通信する取得システムの複数の分散されたスレーブノードのうちのあるスレーブノードの制御構成要素であって、
パケット間隔についての定義をもたらす構成を取得することであって、前記パケット間隔の定義は、前記マスターノード及び前記１つ以上のスレーブノードによって伝送された通信パケットが前記パケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす、前記取得することと、
前記バスを介して前記マスターノードからマスター通信パケットを受信することと、
前記マスターノードから受信された前記マスター通信パケットの少なくとも１つの直近のマスター通信パケットの開始時間を判定することと、
前記開始時間に基づいて、同期時間を計算することと、
前記同期時間に基づいて、前記マスターノードへのスレーブ通信パケットの伝送を開始することと、
を行うように構成される、制御構成要素。
【請求項２０】
前記マスターノードの制御構成要素から受信された前記マスター通信パケットのマスター通信パケットは、検知されたデータについての要求を含み、
前記制御構成要素は更に、前記マスター通信パケットを受信したことに応答して、前記マスターノードに伝送された前記スレーブ通信パケットのうちの１つ以上に、前記検知ノードによって検知及びバッファリングされた、バッファリングされた検知データを含めるように構成される、請求項１９に記載の制御構成要素。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、非同期通信システムのためのプロトコルに関し、特に、非同期通信システムのための分散型時間同期プロトコルに関する。
【背景技術】
【０００２】
分散型取得システムは、リモートデータ取得及び処理を実行する。取得または処理された情報は、集約、分析、データ記憶、及び／または報告のために１つ以上の通信リンクを介して処理構成要素に転送されることができる。
【０００３】
特定の動作モードについて、データ取得は、分散されたスレーブデバイスのセットの間で高度に相関付けられる必要がある。この必要性を達成するために、マスターにより生成された時間同期パルスが採用されることが多く、それでは、パルス推移が各々のスレーブについての時間基準を知らせる。
【０００４】
同期パルスは、時間同期に専用の独立した物理リンクを介して配信され、コスト及び負荷を追加する。加えて、様々なケーブル長に起因したスレーブデバイスの間での伝播遅延における差異は、タイミング誤差を追加し、システム性能を悪化させることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の方法及びシステムは概して、それらの意図した目的のために満足すると考えられてきたが、非同期通信システムのための改善された分散型時間同期プロトコルについての必要性が本分野でなおも存在する。
【課題を解決するための手段】
【０００６】
以下で説明され、例示される実施形態の目的及び利点が示され、以下の説明から明らかになるであろう。例示される実施形態の追加の利点は、明細書、特許請求の範囲において特に指摘されるデバイス、システム、及び方法によって、また同様に添付図面から実現及び達成される。それらの利点及び他の利点を達成するために、並びに例示される実施形態の目的に従って、１つの態様では、分散型取得システムのスレーブノードが提供される。スレーブノードは、制御構成要素とバスとの間でインタフェースする通信インタフェース、及び制御構成要素を含む。バスは、取得システムにおいて分散されたマスターノードに結合される。制御構成要素は、パケット間隔についての定義をもたらす構成を取得することであって、パケット間隔の定義は、マスターノード及び１つ以上のスレーブノードによって伝送された通信パケットがパケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす、取得することと、バスを介してマスターノードからマスター通信パケットを受信することと、を行うように構成される。制御構成要素は更に、マスターノードから受信されたマスター通信パケットの少なくとも１つの直近のマスター通信パケットの開始時間を判定取得することと、開始時間に基づいて、同期時間を計算することと、同期時間に基づいて、マスターノードへのスレーブ通信パケットの伝送を開始することと、を行うように構成される。
【０００７】
実施形態では、制御構成要素は更に、スレーブノードがバスの所有権を許可されているかどうかを判定するように構成されることができ、スレーブ通信パケットの伝送は、スレーブノードが所有権を許可されるときのみ開始することができる。
【０００８】
実施形態では、スレーブノードへの所有権の許可は、スレーブノードに対して排他的であることができる。
【０００９】
実施形態では、バスの所有権がスレーブノードに許可されているかどうかを判定することは、所有権の許可と関連付けられたバスへのアクセスの制限を判定することを含むことができる。制御構成要素は更に、バスの所有権がアクセスの制限に起因して許可されないときにスレーブ通信パケットの伝送を開始することを控えるように構成されることができる。
【００１０】
実施形態では、アクセスの制限は、スレーブノードがバスの所有権を許可されている間にスレーブノードによって伝送されることが許容されるスレーブ通信パケットの最大数、その後にスレーブによるバスの所有権の許可が満了する時間間隔、またはバスの所有権が許可された間にスレーブによってバス上で使用されるように利用可能なパケット間隔の定義の数、を指定することができる。
【００１１】
実施形態では、パケット間隔の定義は、マスターノードによって伝送されたマスター通信パケットの連続した伝送開始時間の間の最大予測時間であることができ、スレーブノードによって伝送されたスレーブ通信パケットは、パケット間隔の定義に基づいて同期される。
【００１２】
実施形態では、パケット間隔の定義は、取得された構成の最大パケットペイロードサイズ及び通信ボーレート定義に基づいて、マスターノードによって伝送されたマスター通信パケットまたは複数のスレーブノードのいずれかによって伝送されたスレーブ通信パケットを伝送するための最大予測伝送時間を適応させることができる。
【００１３】
実施形態では、マスターノードの制御構成要素から受信されたマスター通信パケットのマスター通信パケットは、スレーブノードへのバスの所有権に対する許可と実質的に共に受信された確認応答についての要求を含むことができる。同期時間は、マスター通信パケットの受信の時間に基づいて更新されることができ、マスターノードに伝送されることができるスレーブ通信パケットのスレーブ通信パケットは、パケット間隔の定義に更に基づいて、確認応答についての要求に応答して開始する。
【００１４】
実施形態では、マスターノードから受信されたマスター通信パケットの第２のマスター通信パケットは、スレーブノードによるマスター通信パケットの受信の時間までのマスター通信パケットの伝送の開始の間の時間の量、及び／またはマスターノードによるスレーブ通信パケットの受信までのスレーブノードによって伝送された通信パケットの伝送の開始の間の時間の量に基づいて、マスターノードによって測定された伝播遅延を含むことができる。制御構成要素は更に、伝播遅延に基づいて、後続のスレーブ通信パケットの伝送を開始するための時間を調節するように構成されることができる。
【００１５】
実施形態では、パケット間隔の定義は、マスターノードとスレーブノードとの間のクロック差に起因したボーレート誤差、マスターノードまたはスレーブノードによるマスターノード及びスレーブノードのうちのその他へのバスの制御の間で遷移するときの処理、並びに文字間タイミングずれの合計、のうちの少なくとも１つによって生じた遅延に基づくことができる。
【００１６】
実施形態では、スレーブノードは更に、物理特性を検知し、検知に基づいて検知データを出力するように構成された検知素子と、検知データをバッファリングするように構成されたバッファと、を含むことができる。マスターノードから受信されたマスター通信パケットのマスター通信パケットは、検知されたデータについての要求を含むことができる。制御構成要素は更に、マスター通信パケットを受信したことに応答して、マスターノードに伝送されたスレーブ通信パケットのうちの１つ以上に、バッファによってバッファリングされた検知データを含めるように構成されることができる。
【００１７】
開示の更なる態様に従って、分散型取得システムのスレーブノードとマスターノードとの間の通信を同期する方法が提供される。方法は、パケット間隔についての定義をもたらす構成を取得することであって、パケット間隔の定義は、マスターノード及び１つ以上のスレーブノードによって伝送された通信パケットがパケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす、取得することと、バスを介してマスターノードからマスター通信パケットを受信することと、を含む。方法は更に、マスターノードから受信されたマスター通信パケットの少なくとも１つの直近のマスター通信パケットの開始時間を判定することと、開始時間に基づいて、同期時間を計算することと、同期時間に基づいて、マスターノードへのスレーブ通信パケットの伝送を開始することと、を含むことができる。
【００１８】
開示の別の態様に従って、分散型取得システムのスレーブノードの制御構成要素が提供される。制御構成要素は、パケット間隔についての定義をもたらす構成を取得するように構成され、パケット間隔の定義は、マスターノード及び１つ以上のスレーブノードによって伝送された通信パケットがパケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす。制御構成要素は更に、バスを介してマスターノードからマスター通信パケットを受信することと、マスターノードから受信されたマスター通信パケットの少なくとも１つの直近のマスター通信パケットの開始時間を判定することと、開始時間に基づいて、同期時間を計算することと、同期時間に基づいて、マスターノードへのスレーブ通信パケットの伝送を開始することと、を行うように構成される。
【００１９】
主題の開示のシステム及び方法のそれらの特徴及び他の特徴は、図面を併用して好ましい実施形態の以下の詳細な説明から当業者にとって容易に明らかになるであろう。
【００２０】
主題の開示が属する当業者が、不必要な実験を実施することなく主題の開示のデバイス及び方法をどのように行い、使用するかを容易に理解するように、それらの好ましい実施形態は、特定の図を参照して本明細書で以下に詳細に説明される。
【図面の簡単な説明】
【００２１】
【図１】開示の実施形態に従った、例示的な分散型データ取得システムの通信トポロジの概略図である。
【図２】開示の実施形態に従った、分散型データ取得システムのノードによって使用される例示的なコンピュータシステムのブロック図である。
【図３Ａ】開示の実施形態に従った、マスターノードによって実行される、分散型データ取得システムにおける１つ以上のスレーブノードと通信する実施例の方法を示すフローチャートである。
【図３Ｂ】開示の実施形態に従った、スレーブノードによって実行される、分散型データ取得システムにおけるマスターノードと通信する実施例の方法を示すフローチャートである。
【図４】開示の実施形態に従った、分散型データ取得システムのスレーブノードによって実行される、実施例の時間同期プロトコル補正ロジックを実装する実施例の方法を示すフローチャートである。
【図５】開示の実施形態に従った、分散型データ取得システムのスレーブノードによって実行される、実施例の時間同期プロトコル機能ロジックを実装する実施例の方法を示すフローチャートである。
【図６】開示の実施形態に従った、分散型データ取得システムのマスターノードによって実行される、実施例の時間同期プロトコル機能ロジックを実装する実施例の方法を示すフローチャートである。
【図７】開示の実施形態に従った、分散型データ取得システムのマスターノードによって実行される、出力生成ロジックを実装する実施例の方法を示すフローチャートである。
【図８】開示の実施形態に従った、分散型データ取得システムのマスターノードによって実行される、バス制御ロジックを実装する実施例の方法を示すフローチャートである。
【図９】開示の実施形態に従った、マスターノードによって実行される、伝播遅延補正ロジックを実装する実施例の方法を例示するフローチャート９００を示す。
【発明を実施するための形態】
【００２２】
通信バス上のバス動作が制御され、そこでは、通信パケットのタイミングは、構成可能なパケット間隔の調波において発生する。パケット間隔は、マスター及びスレーブの両方に既知の構成可能な値である。システムセットアップの一部として、マスターノード及びスレーブノードの不揮発性メモリは、構成可能なパラメータ、最大ペイロードサイズ、ボーレート、及びパケット間隔を含む、通信パラメータデータ項目（ＰＤＩ）により更新される。リセットにおいて、ノードは、通信の振る舞いを制御するためにそれらのパラメータを使用する。パケット間隔は、ＭＯＳＩチャネル及びＭＩＳＯチャネルの動作に適用される。
【００２３】
通信パケット自体の開始は、スレーブノードのセットの間で時間同期を達成するために基準時間として使用されることができる。データ転送は、パケットにセグメント化され、パケットは、タイミングマージンを含む構成可能なパケット間隔内で適合する。最大パケットペイロードサイズ及び通信ボーレートは、いずれかのパケットについての最大予測伝送時間を定義する構成可能なパラメータである。タイミングマージンは、ボーレート差及び文字間ずれ時間などの誤差原因を適応させる。パケット間隔は、同期及び通信の考慮事項の平衡を保つように選択される。スレーブデバイスの間のデータ取得タイミングは、クロッキング差に起因して経時的にドリフトすることができる。パケット間隔は、この誤差を補正するのに十分に頻繁に発生する必要がある。通信プロトコルオーバヘッドは、データ転送時間に影響を与える。パケット間隔は、適切な帯域幅利用を許容する必要がある。
【００２４】
開示の更なる態様に従って、分散型取得システムのマスターノードと１つ以上のスレーブノードとの間の通信を同期する方法が提供される。方法は、通信パケットがパケット間隔のあらゆる調波において発生することができることを保証するように適切なタイミングマージンをもたらす、パケット間隔、最大ペイロードサイズ、及びボーレートを定義することを含む。適正な選択により、それらのパラメータは、通信動作が決定論的であることを保証する。加えて、方法は、パケット間隔に基づいてバス所有権を管理するための構成可能な規定を含む。マスターノードは、全てのスレーブノードが、受信し、条件付きで消費し、パケットの開始に基づいて時間同期を更新するために条件付きで使用する出力パケットを生成する。パケットが有効であり、パケットのソースアドレスが、マスターがパケットを生成したことを示す特定のアドレス基準を通る場合、全てのスレーブノードは、時間同期を更新するためにパケットを使用する。更に、パケット宛先アドレスが、パケットがスレーブノードに対して意図していることを示す特定のアドレス基準を通り、パケットコンテンツがチャネルデータに一致する場合、特定のスレーブノードは、いずれかのパケットペイロードを消費し、いずれかの適切なスレーブ出力パケットをスケジュールする。チャネルデータは、ポート番号、データオフセット、及びトランザクションアイデンティフィケーション（ＩＤ）から構成される。ポート番号は、独立したデータ転送、方向、及び優先度を管理する。データオフセットは、データ順序を管理する。トランザクションＩＤは、特に、複数のデータ転送が保留中であり、または複数のチャネルに関してアクティブであるケースに対し、特定のトランザクションを区別すること、及びデータ整合性を保証することを支援する。チャネルデータを一致させることは、データ転送が所与のデータトランザクションに対して順序付けられることを示す。マスター出力パケットに基づいて、１つのスレーブノード及び１つのみのスレーブノードがバスアクセスを許可される。マスタノードバスの所有権に依存する最大レートにおいて時間同期が更新されるように、スレーブバスアクセスが制限される必要がある。プロトコルは、構成可能な数のパケット間隔の間にバス所有権を移転するために、バス制御パラメータを使用する。スレーブノードは、マスターノードによって指定されたバス制御の数に制限されたパケット間隔の後続のセットの間に次のパケット間隔において開始するデータを出力する。このアプローチにより、時間同期更新及び帯域幅利用は、決定論的方式において管理される。プロトコルは、全ての置換を扱う。データ転送の終了に到達した場合、スレーブノードは、マスターにバス所有権を早期に再度移転する。プロトコルは、マスターノードが通信誤りから回復することを可能にする、データ順序及び整合性チェックについての規定を含む。
【００２５】
開示の別の態様に従って、分散型取得システムのマスターノードの制御構成要素が提供される。制御構成要素は、パケット間隔の現在の調波として定義された、マスターノードの同期時間に対する各々のスレーブノードからの通信パケット入力の開始時間を捕捉するように構成された処理デバイスを含む。時間差に基づいて、マスターノードは、スレーブ特有伝播遅延を判定する。スレーブノードデータ取得タイミングが伝播遅延を適応させるように補正されることができ、いずれかの後のスレーブにおいてマスター通信パケットに反映されることもできるように、マスターノードは、この情報を各々のスレーブノードに提供する。このアプローチにより、分散型取得システムについての時間同期誤差は、無視できるレベルまで減少することができる。
【００２６】
ここで、図面に対しての参照が行われ、図面では、同一の参照符号が主題の開示の同様の構造的特徴または態様を識別する。説明及び例示を目的として、並びに非限定的に、開示の第１の実施形態に従った非同期取得システムの例示的な実施形態のブロック図が図１に示され、参照符号１００によって全体的に指定される。取得システム１００は、バス１０６を介して通信するマスターノード１０２及び１つ以上の分散されたスレーブノード１０４を含む。バス１０６は、半二重マルチドロップ２ワイヤ物理リンクとすることができ、マスターノード１０２は、バス１０６の第１の端及びバス１０６のマルチドロップの第２の端に結合されたスレーブノード１０４に結合する。実施例では、バス１０６は、ノイズ環境において有効な長距離通信をサポートするように信号終端レジスタを有するツイストペアを通じた差分シグナリングを使用したＲＳ−４８５物理レイヤである。三状態ロジックは、マルチドロップ通信をサポートするようにドライバが無効にされることを可能にする。ＲＳ−４８５物理レイヤドライバ及び受信機は、データリンクレイヤについてのタイミング及びフレーミング方式を定義するユニバーサル非同期受信機送信機（ＵＡＲＴ）とインタフェースする。個々のビットを順次出力する並列−直列変換及び入力ビットをバッファリングする直列−並列変換を実行するためにシフトレジスタが使用される。マスターノード１０２は、１つ以上の選択されたスレーブノード１０４と通信することができ、またはスレーブノード１０４の全てにブロードキャストすることができる。
【００２７】
取得システム１００は、リモートデータ取得及び処理を実行することができる。例えば、スレーブノード１０４は、物理特性を検知し、集約、分析、データ記憶、及び／または報告のために、検知されたデータをマスターノード１０２に伝送する取得ノードとすることができる。マスターノード１０２は、全てのバストランザクションを開始する。特定のトランザクションについて、マスターノード１０２は、指定された時間期間の間、バス所有権を選択されたスレーブノード１０４に移転する。
【００２８】
特定の適用について、データ取得は、分散されたスレーブノード１０４のセットの間に高度に相関付けられる必要がある。この必要性を達成するために、特定の取得システムは、スレーブノードについての時間基準として使用されることになる、マスターノードによって生成された同期パルスを使用している。しかしながら、これは、時間同期に対して専用の独立した物理リンクの使用などで不利であり、そのようなデータ取得システムにコスト及び負荷を追加し、データの伝送が、集約されたデータのコヒーレンシに影響を与えることがある伝播遅延の影響を受ける。
【００２９】
取得システム１００では、データ転送及び時間同期の両方を達成するためにバス１０６自体が使用され、データ転送及び時間同期の両方は、各々がプロトコルロジックを採用するマスターノード１０２及びスレーブノード１０４によって達成される。プロトコルロジックは、時間同期のための独立した物理リンクについての必要性を取り除き、コスト及び負荷を削減する。スレーブノード１０４がスレーブデバイス１０４の間で時間同期誤差を減少させるために伝播遅延を相殺することができるように、プロトコルロジックは更に、伝播遅延がマスターノード１０２によって測定され、スレーブノード１０４に通信されることを可能にする。
【００３０】
取得システム１００は、確立された時間同期プロトコル（ＴＳＰ）を使用することができ、ＴＳＰは、通信システムのためのＯｐｅｎ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔｉｏｎ（ＯＳＩ）モデルに基づいた組み合わされたネットワーク及びトランスポートレイヤプロトコルである。ＴＳＰは、信頼できる伝送を達成するために、確認応答及び誤りチェックを使用する。ＴＳＰは更に、データ優先度、データ待ち時間、データ転送効率、及び時間同期の考慮事項の平衡を保つために、セグメント化、多重化、及びバス所有権ロジックを使用する。ＴＳＰでは、データは、各々がペイロード部分を有する一連のデータパケット内でカプセル化される。ＴＳＰは更に、データ転送を管理及び経路指定するためにヘッダー及びフッタを使用する。制御パケットとして既知の特定のパケットは、ペイロード部分を含まない。
【００３１】
ＴＳＰデータ転送は、データ優先度及びデータ方向の考慮事項を適応させるように特定のチャネルにマッピングされる。プロトコルは、高優先度及び低優先度の２つの優先度を定義する。高優先度データ転送は、バス管理ロジックに基づいて、特定の時間に低優先度データ転送に先制する。高優先度転送は、制御及びステータス情報に適している。低優先度転送は、ファイル転送に適している。各々のチャネルは、２つのポート、１つの出力ポート、及び１つの入力ポートから構成され、１つの入力ポートは、パケットペイロードに含まれるセッションデータのフローを示す。方向は、マスタアウトスレーブイン（ＭＯＳＩ）またはマスタインスレーブアウト（ＭＩＳＯ）のいずれかとして指定される。ＭＯＳＩチャネルについて、マスターノード１０２のみがペイロードを含むデータパケットを生成する。逆に、ＭＩＳＯチャネルについて、スレーブノード１０４のみがペイロードを含むデータパケットを生成する。ＭＯＳＩチャネル及びＭＩＳＯチャネルの両方について、ペイロードを含まない制御パケットが生成されてもよい。制御パケットは、セッションデータを転送せず、それらはデータ転送自体を制御する際にデータパケットを捕捉するにすぎない。パケットヘッダは、チャネルを定義するポート番号パラメータを含む。マスターノードは、マスターパケットのセッションデータ伝送をマスターノード１０２からスレーブノード１０４のうちの１つ以上に送信して、データを転送し（書き込みオペレーション）、または出力のためにスレーブデータのバッファリング（読み出しオペレーションの最初の半分）をトリガするために、マスタアウト／スレーブイン（ＭＯＳＩ）チャネルを使用することができる。ＭＯＳＩチャネルを使用して、マスターノード１０２は、データパケットまたは制御パケットを使用して、特定のスレーブノード１０４へのデータ転送のステータスを要求することもできる。これに応答して、特定のスレーブノード１０４は、マスターノード１０２が考えられる通信誤りから回復することを可能にするように、制御パケットを使用してセッションデータ転送の進捗を確認応答する。マスターノードは、制御パケットを使用してバッファリングされたセッションデータを出力すること（読み出しオペレーションの２つ目の半分）をスレーブノードに要求するためにマスタイン／スレーブアウト（ＭＩＳＯ）チャネルを利用することができる。これに応答して、データが利用可能である場合、スレーブノード１０４は、要求されたセッションデータを含むデータパケットを生成する。データが利用可能でない場合、スレーブノード１０４は、この可能性を示す制御パケットを生成する。各々のチャネルは、バス動作を制御するための割り当てられた優先度を有する。マスターノードがバス所有権を特定のスレーブノードに移転した場合、マスターは、スレーブノードがバス所有権をマスターノードに再度移転したかどうかを判定するように、いずれかの入力を評価する。加えて、マスターは、バスの所有権を取り戻すように考えられる通信誤りを扱うために、タイムアウトを使用する。
【００３２】
実施例の適用では、マスターノード１０２は、スレーブノード１０４のネットワークまたはサブネットワークのコントローラーまたはホストである。スレーブノード１０４は、それらが配置されたシステムの物理特性を検知する検知素子を含むことができる。検知に応答して、検知素子は、スレーブノード１０４のバッファにバッファリングされることができる検知されたデータを出力することができる。特定の適用に限定することなく、航空機などの車両のヘルス監視などの適用では、スレーブノード１０４は、急速にそれらの検知素子によって検知されたデータを取得していてもよい。検知されたデータは、検知された状況の地理的位置を特定するようにマスターノード１０４によって分析されることができる。そのような適用では、スレーブノード１０４は、高速な検知されたデータの相関付けを適応させるために分析される必要がある。
【００３３】
図２を参照すると、マスターノード１０２及びスレーブノード１０４の実施例の構成を提供する、実施例のノード２００のブロック図が示される。ノード２００は、適切なシステムの１つの実施例にすぎず、本明細書で説明される開示の実施形態の使用または機能性の範囲についてのいずれの限定も示唆することを意図していない。ノード２００は、ハードウェア、ソフトウェア、及び／またはファームウェアを使用して実装されることができる。それにも関わらず、ノード２００は、開示において示されるように実装され、及び／または機能性を実行する能力を有する。
【００３４】
ノード２００は、汎用コンピューティングデバイスの形式において示される。ノード２００は、処理デバイス２０２、メモリ２０４、外部構成要素２２０と通信することができる入力／出力（Ｉ／Ｏ）インタフェース（Ｉ／Ｆ）２０６、及び任意選択で内部構成要素２０８を含む。
【００３５】
処理デバイス２０２は、例えば、プログラマブル論理デバイス（ＰＬＤ）、マイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、マイクロコントローラ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、または同様の処理能力を有する他の個別もしくは統合された論理回路とすることができる。
【００３６】
処理デバイス２０２及びメモリ２０４は、例えば、ＦＰＧＡ、ＡＳＩＣ、マイクロコントローラ、またはマイクロプロセッサにおいて設けられる構成要素に含まれることができる。メモリ２０４は、例えば、データを一時的または長期間記憶し、処理デバイス２０２によって実行可能なプログラム可能命令を記憶するための揮発性及び不揮発性メモリを含むことができる。
【００３７】
Ｉ／Ｏ  Ｉ／Ｆ２０８は、バス１０６に通信可能に結合することができる。加えて、Ｉ／Ｏ  Ｉ／Ｆ１０８は、例えば、コネクタ、近距離周波数通信、及び有線または無線通信を介して、１つ以上の外部構成要素２２０、外部検知素子、キーボード、ポインティングデバイス、ディスプレイ、別のコンピューティングデバイス、及び／またはインターネットなどのローカルもしくはワイドエリアネットワークに結合するためのインタフェースを含むことができる。例えば、スレーブノード１０４は、Ｉ／Ｏ  Ｉ／Ｆ２０６を介してバス１０６に結合することができ、場合によっては、外部検知素子に結合することができる。マスターノード１０２は、Ｉ／Ｏ  Ｉ／Ｆ２０６を介してバス１０６に結合することができ、場合によっては、スレーブノード１０２から受信されたデータをアップロードするためにリモートデータベースに結合することができる。
【００３８】
スレーブノード１０４に関して、内部構成要素２０８は、例えば、検知素子、アナログ／デジタル（Ａ／Ｄ）変換器、及び／または信号処理（ＳＣ）回路を含むことができる。検知素子は、例えば、温度、振動、速度、加速度、変位、湿度、圧力、または他の特性など、その環境の物理特性を検知することができる。検知素子は、アナログまたはデジタルとすることができ、アナログ／デジタル変換、何らかの信号処理、及び／または何らかの事前処理を実行する能力を有することができる。
【００３９】
取得システム１００のオペレーションを参照して、取得システム１００によって使用されるＴＳＰタイミングは、構成可能なデータ（ペイロードサイズ、ボーレート、及びパケット間隔）によって判定される。ペイロードサイズは、パケット毎に許容されたペイロードの最大数のバイトである。この値は、パケットを伝送する予測時間の境界を定める。ボーレートは、シンボル／秒の単位での通信速度を定義する。ＵＡＲＴに基づく通信について、シンボルは、開始ビット及び停止ビットなどのオーバヘッドビットに沿ったデータビットを含む。最大パケットペイロードサイズ及びボーレートは、いずれかのパケットについての最大予測伝送時間を定義する。
【００４０】
パケット間隔は、マスターノード１０２からスレーブノード１０４への、またはスレーブノード１０４からマスターノード１０２への連続したパケットの間の時間を定義する。通信パケットのタイミングが構成可能なパケット間隔の調波において発生するバス動作が制御される。この方式では、マスターの出力通信パケット自体の開始は、スレーブノードのセットの間で時間同期を達成するための基準時間として使用されることができる。
【００４１】
パケット間隔＝｛（最大ペイロードサイズ＋オーバヘッドバイト）×バイト毎シンボル）｝／ボーレート＋タイミングマージン
データ転送は、タイミングマージンを含む構成可能なパケット間隔内で適合するパケットにセグメント化される。タイミングマージンは、ボーレート差及び文字間ずれ時間などの誤差原因を適応させる。加えて、タイミングマージンは、マスターノードまたはスレーブノードによるマスターノード及びスレーブノードのその他へのバスの制御の間で遷移するときの処理遅延を適応させる。
【００４２】
実施例として、２０バイトのＴＳＰプロトコルオーバヘッドバイト及びバイト毎１０シンボル（１開始ビット、８データビット、１停止ビット）のＵＡＲＴ構成、並びに４０ｕｓのタイミングマージンにより、構成可能なパラメータは、４６０バイトの最大ペイロードサイズ、５Ｍｂａｕｄのボーレート、１ｍｓのパケット間隔として選択されてもよい。
【００４３】
ボーレート誤差は、マスターとスレーブとの間のクロック差に起因することがある。タイミングマージンは、それらのボーレート誤差を適応させる。
【００４４】
ＵＡＲＴ文字間ずれ時間は、１つのパケット内で停止ビットと後続の開始ビットとの間の時間として定義される。それは、著しいタイミング変動の原因となることがある。しかしながら、ファーストインファーストアウト（ＦＩＦＯ）メモリインタフェースなどのハードウェアバッファ機構により、ＵＡＲＴ文字間ずれ時間はゼロであると予測される。プロデューサは、バイトをＵＡＲＴに移転するときのアンダーフローのケースを容易に回避することができ、ＵＡＲＴは、データがバッファリングされる限り連続した出力を生成する。この知識により、パケット間隔が決定論的バス動作を推論し、ＵＡＲＴハードウェアとインタフェースするための決定論的振る舞いを促進するので、パケットは、定期的な決定論的パケット間隔においてマスターノード１０２によって伝送されることができる。しかしながら、マスターノード１０２が、ＵＡＲＴインタフェース（ＦＩＦＯまたはシフトレジスタ）がその出力ポートに新たなパケットを書き込む前に空であることをチェックし、バス１０６上での伝送をトリガすることは良好な慣習である。空でないことをＵＡＲＴインタフェースによって示されるように、パケット間隔が超過した場合、伝送は、次の間隔の始めに送信されるべきである。
【００４５】
マスターノード１０２からスレーブノード１０４のうちの１つへ、またはスレーブノード１０４のうちの１つからマスターノード１０２へのバスの制御の間で遷移するときの遅延は、パケットコンテンツが受信機に対して意図しているかどうかをフィルタ及び検証する時間に原因がある。フィルタすることは、伝送が受信機に対して意図しているかどうかを判定するアドレス指定方式を使用する処理とすることができる。検証することは、受信された伝送のコンテンツを評価し、コンテンツをラッチされたチャネルデータと比較する処理とすることができる。ａ）全てのマスター出力パケットを生成するためのマスターノード１０２によって使用されるタイミングを定義し、ｂ）全てのスレーブ出力パケットを生成するためのスレーブノード１０４によって使用されるタイミングを定義し、ｃ）データ取得のためにスレーブノード１０４を同期し、ｄ）バス１０６の所有権を制御し、及び／またはｅ）スレーブノード１０４により生成された出力に反映されたフィードバックによりデータ取得タイミングを補正するために、マスターノード１０２がスレーブノード１０４についての伝播遅延を判定することを可能にするために、パケット間隔が使用されることができる。
【００４６】
パケットを伝送するためにマスターノード１０２によって使用されるタイミングを定義することに関して、マスターノード１０２は、パケット間隔の調波において開始するようにその出力を制御する。これは、マスターパケットの全ての開始時間がパケット間隔の倍数であることを意味する。
【００４７】
パケットを伝送するためにスレーブノード１０４によって使用されるタイミングを定義することに関して、各々のスレーブノード１０４は、全てのマスターノード１０２のパケットについての開始時間を捕捉し、スレーブ特有の伝播遅延だけオフセットされた捕捉された開始時間に対するパケット間隔の後続の調波と一致するようにその出力スケジュールする。
【００４８】
スレーブデバイスの１０４の間での同期をもたらすことに関して、スレーブノード１０４は、スレーブ特有の伝播遅延だけオフセットされた捕捉された開始時間に対するパケット間隔の後続の調波と一致するようにデータ取得同期イベントをトリガするために、全てのマスターノード１０２のパケットについての捕捉された開始時間を使用する。
【００４９】
スレーブノード１０４の同期は、同期を実行するマスターノード１０２の能力及び個々のスレーブノードの能力に依存した任意選択のプロトコル機能である。プロトコルは、ノードタイプまたは同期能力の混合に基づいて破られない。いくつかのスレーブノード１０４は、それらのデータ取得及び／またはそれらの出力パケットを同期してもよく、他のスレーブノード１０４は、その能力を有さなくてもよい。
【００５０】
時間同期がサポートされるとき、スレーブノード１０４は、計算された同期時間において開始するようにその出力をスケジュールし、計算された同期時間は、ｓｙｎｃ時間とも称される。マスターノード１０２は、スレーブ−マスター伝播遅延、ラウンドトリップ伝播遅延の半分だけオフセットされたそのパケット間隔の調波においてパケットを受信することを開始することを予測する。このタイミングを達成するために、スレーブノード１０４は、受信されたマスター出力パケットの開始の時間を記録し、パケット間隔を加算し、マスター−スレーブ伝播遅延を減算することによって、応答出力パケットを出力するための開始時間を計算する。伝播遅延は、個々のスレーブに対してマスターノード１０２によって測定され、それぞれのスレーブノード１０４に搬送される。パケット間隔は、連続したマスターパケットの開始時間とスレーブパケットの開始時間との間の基本的な時間を定義し、いずれかのマスターパケットがいずれかのスレーブノード１０４によって受信されるときにもたらされる同期により、全てのマスターパケット及び全てのスレーブパケットがパケット間隔の倍数において出力されることを意味する。
【００５１】
時間同期がサポートされないとき、スレーブノード１０４の出力は、最小遅延時間及び最大遅延時間に制限される、パケットの破棄の直後に開始される。スレーブノード１０４による連続したデータ転送のために、スレーブノード１０４の出力は、スレーブノード１０４による第１の出力の開始の後のパケット間隔の倍数であるようにスケジュールされる。実施形態では、パケット間隔は、マスターノード１０２の最終パケット終了時間とスレーブノード１０４の最初のパケット開始時間との間の時間の境界を定める。最大遅延は、（１．ｎ×パケット間隔）であり、それは、ソフトウェアの実装態様に対応し、ｎは、ｎ％のマージンを有するパケット間隔において通信インタフェースをサービスすることを適応させるように選択される。実施形態では、ｎ＝２である。最小遅延は、例えば、１０μｓの遅延の物理構成を条件として、ファームウェアの実装態様に対応する。
【００５２】
バス所有権を制御することに関して、マスターノード１０２は、マスターノード１０２からの要求に応答して、伝送の受信を確認応答し、またはデータを送信するかのいずれかのために、制限された時間期間の間にスレーブノード１０４へのバス所有権の移転を制御するためにパケット間隔を使用することができる。パケットヘッダ内に含まれるパケットバス制御値に反映された、バス所有権のこの制御は、例えば、パケットの単位でスレーブノード１０４がバスを使用することができる持続期間を定義する。スレーブノード１０４の観点から、マスターノード１０２は、バス１０６の制御を定義し、スレーブノード１０４は、マスターノード１０２によって行われることになることをまさに行う。バス１０６の所有権がスレーブノード１０４に移転された後、マスターノード１０２は、最初に行われるかに関わらず、その出力が完了し、またはスレーブノードの制御が満了することをスレーブノード１０４が示した後、バス所有権を再要求する。スレーブノード１０４は、パケットヘッダ内に含まれる同一のパケットバス制御値を使用することによって、バス所有権をマスターノード１０２に再度移転する。スレーブノード１０４からの入力パケットが破棄されるとき、マスターノード１０２は、この値に基づいてバス所有権を更新する。マスターノード１０２がバス所有権を再要求した後、それは、次の利用可能なパケット間隔においてその次の伝送を出力することができる。
【００５３】
スレーブノード１０４について、バス１０６の制御がスレーブ１０４に移転される時間時間の間にスレーブノードの伝送を遅延させる予測された出来事が発生する場合、スレーブノードがマスターノード１０４によってもたらされる制御期間とは独立したその次の伝送を出力するとき、バス所有権は、マスターノード１０４に再度放棄される。マスターノード１０２は、状況または他の通信誤りなどを適応させるようにスレーブノード１０４からの入力を受信するためのタイムアウトを使用することもできる。
【００５４】
バス所有権の移転は、マスターノード１０２からスレーブノード１０４への伝送においてバス制御値を設定することによって実行されることができる。０〜２５５に制限される、８ビットのバス制御値は、スレーブノード１０４が出力を生成することが許容される連続したパケット間隔の数を示す。非ゼロバス制御値を受信すると、スレーブノード１０４は、バス制御値に対応するカウントについての出力パケットを有効にする。スレーブノード１０４がバス１０６を所有している間は時間同期更新が可能でないので、タイミング誤差及び帯域幅利用は、最大許容バス制御値を選択するときに考慮される必要がある。スレーブノード１０４は、８ビットのバス制御値を使用するが、許容値は、０または１である。スレーブノード１０４がバス１０６の所有権を有する場合、スレーブノード１０４は、バス制御値が１であるときにバス所有権をマスターノード１０２に再度移転し、バス制御値が０である場合にバス所有権を保持する。
【００５５】
マスターノード１０２が、例えば、スレーブノード１０４にステータスを要求するか、または取得したデータを要求することなどにより、バス所有権を特定のスレーブノード１０４に転送すると、スレーブノード１０４は、時刻同期がサポートされている場合は次の同期時間に開始するよう、時刻同期がサポートされていない場合はパケット処理の直後に開始するように、その最初の出力をスケジュールする。
【００５６】
伝搬遅延の決定に関して、スレーブノード１０４の出力が時刻基準をキャプチャすること及びパケット間隔に基づいて次の同期時間を予測することによってマスターノード１０２の出力と同期されるとき、マスターノード１０２は、そのスレーブノード１０４への伝搬遅延を測定することができる。そのとき、マスターノード１０２は伝搬遅延をスレーブノード１０４に報告することができる。その上で、スレーブノード１０４は、伝搬遅延を使用してその送信のタイミングを補償することができ、したがって、スレーブノード１０４間の同期またはスレーブノード１０４とマスターノード１０２間の同期を妨げる可能性があるタイミングエラーを低減する。
【００５７】
実施形態では、ペイロード、ボーレート、パケット間隔、及びそれらの許容解像度のそれぞれの最小値及び最大値及び解像度値などの設計考慮事項を満たすために、ＴＳＰタイミングの構成可能データに制約を適用することができる。例えば、パケット間隔の分解能は同期イベントとすることができ、そこで、同期イベントは、例えばトグリングバッファのように、データ取得アクティビティのための設計に固有のタイミングである。ボーレートは、ハードウェアクロックの制限、送受信機の能力、及び信号品位の考慮事項に基づいて、対象範囲のデータレートをカバーできる。最大ペイロード制約は、オーバーヘッド、帯域幅使用率、及びパケットバッファーサイズをバランスさせる、ある程度の柔軟性を提供できる。４バイトの倍数により、巡回冗長検査（ＣＲＣ）の計算を簡素化できる。更に、タイミングの変動を考慮するタイミングマージン制約を提供できる。
【００５８】
マスターノード１０２の動作に関して、マスターノード１０２は、各送信の開始をパケット間隔の倍数だけ間隔を空けてスレーブノード１０４への送信信号を送信する。マスターノード１０２は、バス１０６の所有権を制御し、ステータスまたは指定されたデータに対する要求をスレーブノード１０４に送信していない限り、バス１０６はマスターノード１０２の送信のための使用のみが許容される。マスターノード１０２は、スレーブノード１０４に対し、指定した間隔数につき、バス１０６を制御して要求されたデータとともに応答することを許容し、その後は、マスターノード１０２はバス１０６の制御を再開する。実施形態において、マスターノード１０２は、スレーブノードの応答を待つことができ、指定した間隔数に及ぶ応答を許容する。マスターノード１０２は、通信エラーが発生した場合にバス１０６の制御を再開するためにタイムアウト機能を適用することができる。
【００５９】
同期が適用されると、マスターノード１０２は、確認応答を要求するマスターパケットをスレーブノード１０４に送信し、実質的に同時にスレーブノード１０４にバス１０６の所有権を付与することができる。マスターノード１０２は、スレーブノード１０４がリクエストに応答することを可能とするのに十分なバスの所有権をスレーブノード１０４に付与し、その後バス１０６の所有権を取り戻すことができる。マスターノード１０２は、特定の時間、例えば、ファームウェアまたはハードウェアの実施形態における次のパケット間隔の開始、またはソフトウェアの実施形態における第２のパケット間隔の開始において、スレーブノードからの応答において確認応答を予想することができる。マスターノード１０２は、予想される応答受信時間と実際の応答受信時間との差に基づいて伝搬遅延を判定することができる。マスターノード１０２は、バス１０６を介して、判定された伝搬遅延をスレーブノード１０４に送信することができる。
【００６０】
スレーブノード１０４が、データ取得及び／または送信信号の出力をマスターノード１０２の送信と同期させるように構成される実施形態では、スレーブノード１０４は、送信信号が送信されていない非アクティブ状態から送信信号が送信されているアクティブ状態への遷移についてバス１０６を監視する。マスターノード１０２の動作に関して、マスターノード１０２はバス所有権を制御し、ＭＯＳＩ送信を様々なスレーブノード１０４に出力することができる。最小の同期レートとするために、マスターノード１０２は、出力された送信信号を最大許容遅延内で送信することができる。マスターノード１０２は、更に、データ転送が必要でないときに同期が維持されることを確実とするために、保留中のデータトランザクションがない場合に制御パケットを条件付きで出力することができる。このようにして、全てのマスターパケットが各スレーブノード１０４により使用されて、その同期時間を修正することができる。同期時間の修正は、取得システム１００の装置やケーブリングの修正及び／または環境の変化に基づいて伝搬遅延が変更される場合でも、継続的なプロセスとすることができる。
【００６１】
データ取得の同期及び／または出力パケットの生成に使用する同期時間を判定するためのスレーブノード１０４の動作に関して、マスター出力パケットがバス１０６を介して受信されると、各スレーブノード１０４は入力された送信をデコードのためその受信機（例えば、この例では、ＵＡＲＴ）の入力にルーティングする。更に、入力された送信信号はキャプチャポートにルーティングされ、キャプチャポートは、新しいパケットの開始にタイムスタンプを付けるために信号の遷移を評価する。スレーブノード１０４は、予想される文字間ギャップ時間が０であること及びパケット間最小時間が例えば１０μｓであることを利用して、スレーブノード１０４が非アクティブな入力状態（バス１０６が非アクティブである間）の少なくとも閾値の時間を検出する特定の状態を待つ。その後はアクティブな入力状態に遷移（その間バス１０６はアクティブ状態に遷移）する。ＵＡＲＴは非ゼロ復帰（ＮＲＺ）エンコード方式を使用するように構成されているため、この例では、非アクティブ状態は論理レベル高と定義される。アクティブな遷移は、論理レベル高から論理レベル低への遷移として定義される。
【００６２】
実施形態において、所定の条件の検出は、遷移非アクティブ時間カウンタをゼロに初期化し、入力状態が非アクティブのままである限りカウンタを増分することにより実行される。タイムアウトが発生すると、すなわち非アクティブな入力状態が閾値時間持続する（ここで閾値はタイムアウト値である）と、スレーブノード１０４は入力状態がアクティブ（論理レベル低）に移行するのを待つ。タイムアウトが発生するまで、入力状態がアクティブになると、カウンタはリセットされる。
【００６３】
遷移が検出されると、すなわちパケットがバス１０６から受信されていると、スレーブノード１０４は、パケットの開始に対応し、開始時刻（ｔ＿ｋ）と呼ばれる現在時間をキャプチャする。現在時間は、自走（ｆｒｅｅ−ｒｕｎｎｉｎｇ）タイマーから取得できる。ここでタイマーのカウント値は、例えばスレーブノード１０４のファームウェアによってラッチされる。
【００６４】
パケットのバイトが受信されると、スレーブノード１０４はパケットの有効性を評価して、パケットがマスターノード１０２からの送信であるかどうか（どのスレーブノード１０４に宛てられているかには関係なく）を判定する。パケットが別のスレーブノード１０４からのものである場合、無視することができ、ラッチされた時間は使用されない。パケットがマスターノード１０２からのものである場合、同期時間（ｔ＿ｓ）は式（１）に基づいて修正される。
【００６５】
ｔ＿ｓ＝ｔ＿ｋ＋ｔ＿ｐ−ｔ＿ｐｒｏｐ、            （１）
ここで、（ｔ＿ｐ）は構成可能なパケット間隔であり、（ｔ＿ｐｒｏｐ）はマスターによって提供されるスレーブ固有の伝搬遅延である。スレーブノード１０４は、同期時間を使用して、そのデータ取得及び出力送信のタイミングを制御する。
【００６６】
スレーブノード１０４が、データがスレーブノード１０４に対してプッシュされたマスターノード１０２から出力されたパケットを受信した場合、スレーブノード１０４はパケットをバッファリングする。完全なパケットが受信されると、スレーブノード１０４は、その内容に基づいて、所定の基準に従ってパケットを処理する。パケットが無効であるか、スレーブを対象としていない場合、パケットは同期時間を判定することを除いて無視される。パケットが有効であり、（パケットのヘッダーの宛先アドレスで示されるように）スレーブノード１０４を対象とするものである場合、スレーブノード１０４は、パケットが受信された特定のチャネルのトランザクションデータを初期化し、その後受信したパケットに基づいてデータを維持する。トランザクションデータには、特定のチャネルのポート番号、データオフセット、トランザクションＩＤ、及び送信元／宛先アドレスが含まれる。データが正常である場合、スレーブノード１０４はデータをバッファリングし、データオフセットを更新する。セッション層では、バッファされたデータが評価され、完全である場合は消費される。
【００６７】
マスターノード１０２が、例えば、書き込み動作ステータス要求または読み出し動作プル要求を介してバス所有権をスレーブノード１０に転送するときの動作において、スレーブノード１０４からの次の送信信号出力は、将来の時刻に開始するようにスケジュールされるか、またはパケット処理の直後に開始される。時刻同期がサポートされていない場合、最小遅延時間と最大遅延時間によって制限されるため、スレーブ出力はパケット処理の直後に開始される。連続するスレーブデータ転送は、パケット間隔の倍数においてスケジュールされる。
【００６８】
時刻同期がサポートされている場合、送信出力は、マスターノード１０２がそのパケット間隔の調波においてパケットの受信を開始すると予想される、計算された同期時間に開始するようにスケジュールされる。
【００６９】
リセット時に、自走タイマーが開始され、その「カウント値」が現在時間ｔ＿ｃを表わす。自走タイマーを初期化するリセットは、電源投入時リセット、監視回路やウォッチドッグ回路などからのハードウェアリセット、またはソフトウェアやファームウェアのアクションなどのコントローラーが開始するリセットである。更に、同期時間は、式（２）に基づいて現在時間を使用して更新される。
【００７０】
ｔ＿ｓ＝ｔ＿ｃ＋ｔ＿ｐ−ｔ＿ｐｒｏｐ、            （２）
ここで、ｔ＿ｐはパケット間隔、ｔ＿ｐｒｏｐはマスターノード１０２がスレーブノード１０４に提供する特定の伝搬遅延である。
【００７１】
現在時間が同期時間に達すると、動作モードに応じて取得プロセスが更新される。例えば、バッファリング方式が使用される場合、スレーブノード１０４はそのアクティブバッファをトグルすることができる。該当する各スレーブノード１０４（取得プロセスの実行指示を同報するマルチキャストによってアドレス指定されたスレーブノード１０４）が同期してこのアクションをほぼ同時に実行するシナリオでは、取得されたデータは各バッファの開始時に時刻同期される。適用可能なスレーブノード１０４のバッファのうち、わずかに異なる数の取得サンプルをバッファに含めることができ、これはマスターノード１０２による処理またはデータ集約中に考慮することができる。例えば、データセットを最小データセットの長さに切り詰めることができる。
【００７２】
スレーブノード１０４は、スケジュールされているかどうかに基づいてバッファリングされたデータの出力を条件付きで開始する。チャネルの優先度と、チャネルの以前の出力（ある場合）が予想どおりに完了したかどうかに応じて、連続出力を発生させるようにスケジュールされる場合がある。
【００７３】
ここで図３Ａ〜図９を参照する。図３Ａ〜図９は、様々な例示的実施形態の実施を示すフローチャート及びフロー図である。なお、図３Ａ〜図９に示す動作の順序は、必須ではないので、原則として、様々な動作は、例示された順序から外れて、または並行して実行することができることに留意されたい。また、特定の動作をスキップしたり、異なる動作を追加または置換したり、選択した動作または動作のグループを、本明細書で説明する実施形態に従って別個のアプリケーションで実行したりすることもできる。
【００７４】
図３Ａは、図１に示される取得システム１００のマスターノード１０２などの取得システムのマスターノードによって実行される例示的な方法を示す流れ図３００を示す。入力３０２で、パケット間隔の定義を提供する構成が取得され、パケット間隔の定義は、マスターノード及び１つ以上のスレーブノードにより送信される通信パケットがパケット間隔により定義される調波においてのみ発生することを確実とするのに適切なタイミングマージンを提供するものである。つまり、データ転送は、タイミングマージンを含む構成可能なパケット間隔内に収まるパケットに分割される。動作３０４で、通信パケットの時刻基準は、バスを介して分散型取得システムの全てのスレーブノードに配信され、時刻基準はパケット間隔の定義に基づいている。具体的には、マスターの出力通信パケットの開始自体を、スレーブノードのセット間の時刻同期を達成するための基準時刻として使用できる。この方法は、動作３０６、３０８、及び／または３１０に続くことができる。
【００７５】
動作３０６で、バスを介した通信は、パケット間隔の定義に基づいて１つ以上のスレーブノードと同期される。
【００７６】
動作３０８で、バスの所有権はパケット間隔に基づいて制御される。実施形態では、スレーブノードの１つにバスの制御を提供した後に、タイムアウト機能を使用してバスの制御を取り戻すことができる。事実上、構成可能なパケット間隔の調波で通信パケットのタイミングが発生するバスアクティビティが制御される。
【００７７】
動作３１０で、伝搬遅延が判定され、伝搬遅延は、マスターノードによって送信された通信パケットの送信の開始からスレーブノードの１つによる通信パケットの受信の時間までの時間、及び／または、スレーブノードの１つによって送信された通信パケットの送信の開始からマスターノードによる通信パケットの受信までの時間に関連する。動作３１２で、伝搬遅延がバスを介してスレーブノードに送信される。
【００７８】
実施形態では、動作３０６、３０８、及び／または（３１０及び３１２）のうちの１つ以上を、異なる時間に、異なる順序で、または同時に実行することができる。
【００７９】
実施形態では、バス１０６は双方向通信に使用される。制御コンポーネントは、パケット間隔の定義に基づいてバスの所有権を更に制御する。
【００８０】
実施形態において、１つ以上のスレーブノードは複数のスレーブノードを含み、バスの所有権を制御することは、複数のスレーブノードのうちの単一の選択されたスレーブノードに対してバスへの制限されたアクセスを許可することを含む。
【００８１】
実施形態において、許可された制限されたアクセスは、選択されたスレーブノードがバスへのアクセスを許可されている間における、選択されたスレーブノードによって送信されることを許容された指定数のパケットに対するものである。
【００８２】
実施形態では、バスは双方向通信用に構成され、パケット間隔の定義は、マスターノードによって送信される通信パケットの連続する送信開始時刻間の最大予想時間であり、制御コンポーネントは１つ以上のスレーブノードによって送信される通信パケットがパケット間隔の定義に基づいて同期されることを予想する。
【００８３】
実施形態では、パケット間隔の定義は、取得された構成の最大パケットペイロードサイズ及び通信ボーレートの定義に基づいて、マスターノードまたは１つ以上のスレーブノードによって送信される通信パケットを送信するための最大予想送信時間を考慮したものである。
【００８４】
実施形態では、マスターノードによってスレーブノードのいずれかに送信される時刻参照パケット及び通信パケットの各パケットは、パケット間隔の定義の倍数である開始時刻を有する。
【００８５】
実施形態では、パケット間隔の定義は、マスターノードと少なくとも１つのスレーブノードとの間のクロック差に起因するボーレートエラー、マスターノードまたはスレーブノードによるバスの制御のマスターノード及びスレーブノードの他方への移行時の処理、及びキャラクタ間タイミングギャップの合計、の少なくとも1つによって引き起こされる遅延に基づいている。
【００８６】
図３Ｂは、図１に示す取得システム１００のスレーブノード１０４などの取得システムの複数の分散スレーブノードのスレーブノードによって実行される例示的な方法を示す流れ図３５０を示す。入力３５２で、マスターノード及び１つ以上のスレーブノードによって送信される通信パケットがパケット間隔の定義の調波でのみ発生することを確実とするパケット間隔の定義を提供する構成が取得される。動作３５４で、新しいマスター送信の開始時刻が判定される。
【００８７】
次に、動作３５５において、特定のスレーブノードについてマスターノードによって測定された伝搬遅延がマスター送信に含まれるかどうかの判定が行われる。動作３５５での判定がＹＥＳの場合、つまりマスター送信がマスターノードによって判定されるスレーブノードの特定の伝搬遅延を含む場合、動作３５７でスレーブノードは更新された伝搬遅延をラッチし、その後、方法は動作３５６に続く。動作の判定がＮＯであった場合、つまりマスター送信に伝搬遅延が含まれていなかったことを意味する場合、動作３５６で、スレーブノードはラッチされた伝搬遅延とマスター送信の開始時刻に基づいて同期時間を修正する。マスターノードに送信信号において送信する必要のある特定のメッセージがない場合、スレーブノードが同期時間を修正することにより自身の同期を修正するために使用できる同期メッセージを送信できる。
【００８８】
動作３５８で、取得システムのバスの一時的な所有権がスレーブノードに割り当てられているかどうかの判定が行われる。動作３５８での判定がＹＥＳである場合、つまり、バスの所有権が、例えば、一定の時間またはパケット間隔数の間、スレーブノードに一時的に割り当てられていることを意味する場合、動作３６０で、スレーブによるバスの所有権がまだ有効かどうかの判定が行われる。動作３５８での判定がＮＯである場合、つまりバスの所有権がスレーブノードに割り当てられていないことを意味する場合、方法は動作３５４に続く。
【００８９】
動作３６０での判定がＹＥＳであり、スレーブの所有権がまだ有効であり、失効していないことを意味する場合、動作３６２で、マスターノードが確認応答（ＡＣＫ）を要求したかどうかの判定が行われる。動作３６０での判定がＮＯである場合、すなわちバスのスレーブの所有権がもはや有効ではない、例えば失効していることを意味する場合、方法は動作３５４に続く。動作３６２の判定がＹＥＳであり、確認応答が要求されたことを意味する場合、動作３６８で、スレーブノードは、次の利用可能な同期時間に確認応答を送信し、各同期時間はパケット間隔だけ間隔を空ける。マスターノードは、確認応答の受信時間を使用して、スレーブノードの伝搬遅延を判定できる。次に、方法はオペレーション３５４に続く。
【００９０】
動作３６２での判定がＮＯであり、確認応答が要求されていないことを意味する場合、動作３６４で、取得データがマスターノードによって要求されているかどうかの判定が行われる。動作３６４での判定がＹＥＳであり、取得データが要求されていることを意味する場合、動作３６６で、利用可能な取得データがあるかどうかの判定が行われる。そのような利用可能な取得データはバッファリングされ、前の要求（読み取りトランザクションの前半）に基づいてマスターノードに送信されるのを待つ場合がある。動作３６４での判定がＮＯであり、取得データが要求されていないことを意味する場合、方法は動作３５４に続く。
【００９１】
動作３６６の判定がＹＥＳであり、取得データが利用可能であることを意味する場合、動作３７０で、スレーブノードは、次に利用可能な同期時間に取得データを送信する。次に、方法はオペレーション３５４に続く。動作３６６での判定がＮＯであり、取得データが利用できないことを意味する場合、動作３７２で、スレーブノードは、データが利用できないことを示すために制御パケットを送信する。この入力により、マスターノードは、スレーブノードが要求されたデータをバッファリングするのにより多くの時間が必要であることを認識する。この方法は動作３５４に続く。
【００９２】
図４は、図１に示される取得システム１００のスレーブノード１０４などの取得システムのスレーブノードによって実行されるスレーブノードを同期させるための例示的な方法を示す流れ図４００を示す。動作４０２では、動作４０４からのリセット信号またはアクティブ入力に応答して、非アクティブ時間カウンタが初期化される。動作４０４において、スレーブノード入力状態がアクティブであるか非アクティブであるかが判定される。入力状態がアクティブである場合、制御は動作４０２に戻り、非アクティブ時間カウンタはゼロにリセットされる。入力状態が非アクティブである場合、方法は動作４０６に進む。オペレーション４０６で、非アクティブタイマーが増分される。動作４０８で、非アクティブ時間カウント値が評価されて、それが閾値を超えたかどうかを評価する。閾値を超えると、タイムアウト状態が発生したと判断される。タイムアウト状態が発生していない場合、つまり、非アクティブ時間カウンタが閾値を超えていない場合、制御は動作４０４に戻る。タイムアウト状態が発生した場合、方法はオペレーション４１０に進む。
【００９３】
動作４１０で、スレーブノードの入力状態がアクティブであるか非アクティブであるかが再び判定される。動作４１０は、非アクティブタイマーが増分され続けている間に実行される。入力状態が非アクティブであるという判定である場合、非アクティブ時間カウンタが増分され続ける間、動作４１０が繰り返される。入力状態がアクティブであると判定された場合、方法は動作４１２に進み、現在時間のタイムスタンプが、例えば、自走タイマーからキャプチャされ、ラッチされる。自走タイマーのカウント値は、現在時間ｔ＿ｃを表す。動作４１４において、アクティブな入力状態にある間に受信された着信パケットが有効なマスター出力パケットであるかどうかの判定がなされる。
【００９４】
動作４１４での判定がＮＯ、つまり着信パケットがマスターパケットではないが、したがって別のスレーブノード１０４からのものである場合、非アクティブタイマーをゼロに再初期化するために制御は動作４０２に続く。入力パケットは同期時間（ｔ＿ｓ）を修正するために無視され、ラッチされた時間は使用されない。動作４１４での判定がＹＥＳの場合、つまり着信パケットが有効なマスターパケットであることを意味する場合、動作は動作４１６に続く。動作４１６で、同期時間（ｔ＿ｓ）が上記の式（１）に基づいて修正される。スレーブノードは、補正された同期時間（ｔ＿ｓ）を使用して、データ取得のタイミングを制御し、スレーブノードによる送信信号を出力できる。
【００９５】
図５は、図１に示す取得システム１００のスレーブノード１０４などの取得システムのスレーブノードによって、同期時間（ｔ＿ｓ）を適用してスレーブノードの動作を同期するために実行される例示的な方法を示す流れ図５００を示す。動作５０２で、自走タイマーは、現在時間ｔ＿ｃに初期化される。自走タイマーの値は、時間の経過とともに増分され、更新された現在時間を表す。動作５０４で、式（２）に基づいて、現在時間ｔ＿ｃを使用して同期時間（ｔ＿ｓ）が更新される。
【００９６】
オペレーション５０６で、自走タイマー値（更新された現在時間）が同期時間ｔ＿ｓに到達したかどうかの判定が行われる。判定がＮＯの場合、つまり、自走タイマー値がまだ同期時間ｔ＿ｓに達していないことを意味する場合、経過する時間に基づいて自走タイマーが増分される間、動作５０６が繰り返される。判定がＹＥＳ、つまり自走タイマー値が同期時間ｔ＿ｓに達したことを意味する場合、方法はオペレーション５０８に続く。動作５０８で、センサノードが取得の動作モードにある場合、そのアクティブバッファをトグルすることなどにより取得が更新される。動作５０８は、マスターノードと通信している他のスレーブノードと同期する必要がある。
【００９７】
動作５１０で、出力がスケジュールされているかどうかの判定が行われる。出力は、確認応答を送信したり、取得したデータなどの要求されたデータで応答するなど、スレーブノードがマスターノードによってバスの制御権を与えられたときにスケジュールされる。動作５１０での判定がＮＯの場合、つまり、出力がスレーブノードに対してスケジュールされていないことを意味する場合、方法はｓｙｎｃ＿ｔｉｍｅを更新するためにオペレーション５０４に続く。動作５１０での判定がＹＥＳであり、出力がスレーブノードに対してスケジュールされることを意味する場合、方法は動作５１２に続き、その後、方法は動作５０４に続く。動作５１２で、要求されたデータまたは確認応答を出力するための送信手順が実行される。
【００９８】
図６は、取得システムのスレーブノードとタイミングを同期するための図１に示されるマスターノード１０２などの取得システムのマスターノードの機能のための例示的な方法を示す流れ図６００を示す。動作６０２で、同期時間（ｔ＿ｓ）が初期化され、自走タイマーの値が時間とともに増分され、更新された現在時間を表す。動作６０４で、同期時間（ｔ＿ｓ）が更新され、ｔ＿ｓ＝ｔ＿ｃ＋ｔ＿ｐであり、ｔ＿ｐは構成可能なパケット間隔である。
【００９９】
動作６０６で、自走タイマー値（更新された現在時間）が同期時間ｔ＿ｓに到達したかどうかの判定が行われる。動作６０６での判定がＮＯ、つまり自走タイマー値がまだ同期時間ｔ＿ｓに到達していないことを意味する場合、経過時間に基づいて自走タイマーが増分される間、動作６０６が繰り返される。動作６０６での判定がＹＥＳである場合、つまり、自走タイマー値が同期時間ｔ＿ｓに達したことを意味する場合、方法は動作６０８に続く。
【０１００】
動作６０８で、マスターノードが図１に示されるバス１０６などの取得システムのバスを所有しているかどうかの判定が行われる。動作６０８での判定がＮＯ、つまりマスターノードがバスを所有していないことを意味する場合、方法はｓｙｎｃ＿ｔｉｍｅを更新するために動作６０４に続く。動作６０８での判定がＹＥＳ、つまりマスターがバスを所有していることを意味する場合、方法は動作６１０に続き、その後、方法は動作６０４に続く。動作６１０で、マスターノードは出力を生成する。マスターは、全てのアクティブな高優先度出力を再開することにより、何を出力するかを判定する。さもなければ、マスターノードは保留中の高優先度出力を開始する。さもなければ、マスターノードは全てのアクティブな低優先度出力を再開する。さもなければ、マスターノードは全ての保留中の低優先度出力を開始する。さもなければ、データ取得がアクティブな場合、マスターノードは、ペイロードを含まず、時刻同期の更新のみを提供する同期パケットを出力する。
【０１０１】
図７は、図６の動作６１０内のプロセスを説明するフロー図７００を示す。フロー図は、図１に示される取得システム１００のバス１０６及びマスターノード１０２などの取得システムのマスターノードにより、どの出力パケットを生成するかを選択する例示的な方法、及びバスを制御するための例示的な方法を示す。動作７０２で、マスターノードは、スレーブのいずれかを伴うＭＩＳＯチャネル（読み取りトランザクション）がアクティブであるかどうかを判定する。オペレーション７０２での判定がＭＩＳＯチャネルがアクティブである場合、方法はオペレーション７０４に進み、マスターノードがプル出力制御パケットを生成する。このパケットは、特定のスレーブノードからの読み取りトランザクションデータ転送の開始または再開を要求する。動作７０６で、プル出力に基づいて、マスターノードは、バスの制御をアクティブなＭＩＳＯチャネルに関連付けられたスレーブノードにパケット間隔の最大数の期間転送し、その間、スレーブノードは、マスターノードへデータを転送するための出力を生成することが予想される。
【０１０２】
オペレーション７０２で、ＭＩＳＯチャネルがアクティブではないと判定された場合、オペレーション７０８で、ＭＯＳＩチャネル（書き込みトランザクション）がアクティブであるか保留中であるかが判定される。そうでない場合、図７には示されていないが、同期時間（ｔ＿ｓ）を更新するための制御パケット出力をバスに送信することができる。動作７０８で、ＭＯＳＩチャネルがアクティブまたは保留中であると判定された場合、動作７１０で、マスターノードはデータを１つ以上のスレーブノードにプッシュする。出力パケットは、書き込みトランザクションの開始、再開、及び／またはステータスの要求を行う役割を果たす。動作７１２で、確認応答が予想されるかどうかの判定が行われる。動作７１２での判定がＹＥＳであり、確認応答が予想される場合、方法は動作７０６に続く。動作７０６で、要求状態出力に基づいて、マスターノードは、バスの制御をアクティブなＭＯＳＩチャネルに関連付けられたスレーブノードに１パケット間隔で転送し、その間、スレーブノードはマスターノードからのその受け取った入力の状態を示す出力を生成することが予想される。動作７１２での判定がＮＯであり、確認応答が予想されない場合、方法は動作７１４に続く。動作７１４で、最後のパケットが出力されたかどうかの判定が行われる。動作７１４での判定がＮＯであり、最後のパケットが出力されなかった場合、方法は終了し、その後、方法は動作７０２で次のパケット間隔で再開する。さもなければ、動作７１４でＹＥＳと判定された場合、最後のパケットが出力され、動作７１６で、出力が読み取りトランザクション用であるか書き込みトランザクション用であるかが判定される。動作７１６でＮＯと判定され、出力は読み出し動作ではなく書き込み動作である場合、方法は動作７１８に進み、現在のトランザクションが完了し、その後、方法は終了し、動作７０２で次のパケット間隔において再開する。動作７１６でＹＥＳと判定され、出力が読み出し動作である場合、方法は動作７２０に進み、読み出しトランザクションを実行しているスレーブデバイスのＭＩＳＯチャネルがアクティブ化され、その後、方法は終了し、動作７０２で次のパケット間隔において再開する。事実上、マスターノードはＭＯＳＩチャネルを使用してデータを書き込み、出力をバッファリングするためにスレーブノードをトリガし、出力はその後、関連付けられたＭＩＳＯチャネルを使用してプルされることができる。
【０１０３】
図８は、スレーブノード入力またはタイムアウト条件に基づいてマスターノードによるバスの再取得を提供するマスターノードによって実行される例示的な方法を示す流れ図８００を示す。動作８０２で、スレーブノードがバスの制御を有する間、マスターノードはバスから入力データを取得する。動作８０４で、マスターノードは、所定の基準に基づいて入力を処理する。動作８０６で、スレーブノードがバス所有権をマスターノードに戻す転送をしたかどうかの判定が行われる。スレーブノードは、データ転送の最後のパケットに到達した場合、または許容されたパケットの数に到達した場合、バス制御値１を使用してバス所有権を放棄する。動作８０６での判定がＹＥＳであり、バスが回収される状態である場合、動作８１０でマスターノードはバスを回収し、その後、方法は動作８０２に続く。動作８０６での判定がＮＯであり、スレーブノードはバス所有権を明示的に放棄していない場合、動作８０８で、タイムアウト条件が満たされたかどうかの判定が行われる。事実上、マスターノードは、バスの所有権を自律的に取り戻すのに十分な時間が経過したかどうかを評価する。構成可能なタイムアウトは、最後のマスターノード出力パケットの間に、マスターノードがスレーブノードに許可したパケット間隔の数に対応する時間が超過されるように選択される。動作８０８での判定がＹＥＳであり、タイムアウト条件が満たされた場合、動作８１０でマスターノードはバスを回収し、方法は動作８０２に続く。動作８０８での判定がＮＯであり、タイムアウト条件が満たされていない場合、方法は動作８０２に続く。
【０１０４】
図９は、伝搬遅延補正を判定するためにマスターノードによって実行される例示的な方法を示すフロー図９００を示す。マスターノード１０２によって受信されるスレーブノード１０４からのバス１０６上の送信は、デコードのために、例えばＵＡＲＴの入力にルーティングされ、例えばキャプチャポートでのキャプチャのために更にルーティングされ、受信中の新しいパケットの開始をタイムスタンプするために信号の遷移を評価されることができる。この方法は、マスターノードのファームウェアによって実行できる。例えば、予想される文字間ギャップ時間０と最小パケット間時間１０μｓを利用することにより、マスターファームウェアはバスが非アクティブな状態になり、その後にアクティブな遷移が発生するのを待つことができる。例えば、ＵＡＲＴを使用する実施形態では、非ゼロ復帰（ＮＲＺ）符号化方式が使用され、非アクティブ状態は論理レベル高と定義され、アクティブ遷移は論理レベル高から論理レベル低への遷移として検出することができる。
【０１０５】
動作９０２で非アクティブ時間カウンタが、リセット信号または動作９０４からのアクティブ入力のいずれかに応答して、初期化される。オペレーション９０４では、新しいパケットがキャプチャされたかどうかに基づいて、マスターノード入力状態がアクティブか非アクティブかが判定される。入力状態がアクティブ、つまりパケットがキャプチャされたことを意味する場合、制御は動作９０２に戻り、非アクティブ時間カウンタはゼロにリセットされる。入力状態が非アクティブ、つまりパケットがキャプチャされていないことを意味する場合、方法はオペレーション９０６に進む。動作９０６で、非アクティブタイマーが増分される。動作９０８で、非アクティブ時間カウント値が評価されて、それが閾値を超えたかどうかを判定する。閾値を超えると、タイムアウト状態が発生したと判断される。タイムアウト状態が発生していない場合、つまり非アクティブ時間カウンタが閾値を超えていないことを意味する場合、制御は動作９０４に戻る。タイムアウト状態が発生した場合、方法はオペレーション９１０に続く。
【０１０６】
動作９１０で、スレーブノードの入力状態がアクティブであるか非アクティブであるかが再び判定される。動作９１０は、非アクティブタイマーが増分され続けている間に実行される。入力状態が非アクティブであるという判定である場合、非アクティブ時間カウンタが増分され続ける間、動作９１０が繰り返される。
【０１０７】
入力状態がアクティブであると判定された場合、方法は動作９１２に進み、現在時間のタイムスタンプが、例えば、自走タイマーからキャプチャされラッチされる。自走タイマーのカウント値は、現在時間ｔ＿ｃを表す。動作９１４では、予想されるパケットの有効性を評価することに加えて、マスターノードは、計算式ｔ＿ｅ＝ｔ＿ｋ−ｔ＿ｓ−ｔ＿ｐｒｏｐ（（ｔ＿ｐｒｏｐ）は現在のスレーブ固有の伝搬遅延）を使用して、マスター同期時間（ｔ＿ｅ）に対するタイミングエラー（ｔ＿ｓ）を判定することにより、検出された送信信号を送信した特定のスレーブノードの伝搬遅延を更新する。動作９１８では、場合によってはフィルタリング後に、エラーが有意であるか、例えば所定の閾値を超えるかどうかの判定が行われる。動作９１８で、マスターノードは、特定のスレーブノードへの出力をスケジュールして、スレーブノードの特定の伝搬遅延を更新する。伝搬遅延は、エラーの半分を累積することにより更新され、両方向の遅延に対応する。
【０１０８】
開示されている取得システムの様々な実施形態の潜在的な利点は、プロトコル論理を通信リンクの使用に適用して、マスターノードと分散されたスレーブノード間のデータ転送を考慮し、タイミングエラーを修正し、分散スレーブノードの同期を提供できることである。別個の同期リンクは不要である。
【０１０９】
航空機エンジン関連のアプリケーションの健全性モニタリングの例示的なコンテキストで示され、説明されているが、当業者は、本開示による取得システムが、分散スレーブノードによって取得された高度に相関した感知データを使用する、民間及び軍事アプリケーションを含む、他の全ての適切なアプリケーションで使用できることを容易に理解するであろう。マスターノードとスレーブノード間の通信を再同期するための同期時間の修正は継続的なプロセスになる可能性があるため、取得システムは、取得システムの装置及びケーブルの修正に基づいて伝搬遅延が変更された場合でも、再同期が可能である。したがって、取得システムは、陸、海、宇宙、空中輸送手段などの固定システムまたはモバイルシステムの監視に使用できる。
【０１１０】
本開示の装置及び方法を好ましい実施形態を参照して図示及び説明したが、当業者は、本開示の趣旨及び範囲から逸脱することなく、変更及び／または修正を行うことができることを容易に理解するであろう。
【図１】
2020099052.tif 000003
【図２】
2020099052.tif 000004
【図３Ａ】
2020099052.tif 000005
【図３Ｂ】
2020099052.tif 000006
【図４】
2020099052.tif 000007
【図５】
2020099052.tif 000008
【図６】
2020099052.tif 000009
【図７】
2020099052.tif 000010
【図８】
2020099052.tif 000011
【図９】
2020099052.tif 000012