(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-22
(45)【発行日】2024-08-30
(54)【発明の名称】スレーブノード、スレーブノードとマスターノードとの間の通信を同期する方法、およびスレーブノードの制御構成要素
(51)【国際特許分類】
H04L 12/28 20060101AFI20240823BHJP
【FI】
H04L12/28 203
(21)【出願番号】P 2019228579
(22)【出願日】2019-12-18
【審査請求日】2022-06-22
(32)【優先日】2018-12-18
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】516344443
【氏名又は名称】シモンズ・プレシジョン・プロダクツ・インコーポレイテッド
(74)【代理人】
【識別番号】100086232
【氏名又は名称】小林 博通
(74)【代理人】
【識別番号】100092613
【氏名又は名称】富岡 潔
(72)【発明者】
【氏名】オーエン ダニエル エヴァンス
【審査官】羽岡 さやか
(56)【参考文献】
【文献】特開2005-159754(JP,A)
【文献】特開2003-134134(JP,A)
【文献】特開2000-183923(JP,A)
【文献】特開平11-168466(JP,A)
【文献】特開昭63-215237(JP,A)
【文献】特開2004-128581(JP,A)
【文献】特開平07-212376(JP,A)
【文献】特開2005-033444(JP,A)
【文献】特開2018-166273(JP,A)
【文献】国際公開第2016/147405(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/28-12/46
(57)【特許請求の範囲】
【請求項1】
分散型取得システムの複数のスレーブノードのスレーブノードであって、前記スレーブノードは、
制御構成要素とバスとの間でインタフェースする通信インタフェースであって、前記バスは、前記取得システムのマスターノード及び前記複数のスレーブノードの他のスレーブノードに結合された通信バスである、前記通信インタフェースと、
制御構成要素であって、
パケット間隔についての定義をもたらす構成を取得することであって、前記パケット間隔の定義は、前記マスターノードによって伝送された通信パケット及び前記1つ以上のスレーブノードによって伝送された通信パケットが前記パケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす、前記取得すること、
前記バスを介して前記マスターノードからマスター通信パケットを受信すること、
前記マスターノードから受信された前記マスター通信パケットの少なくとも1つの直近のマスター通信パケットの開始時間を判定すること、
前記開始時間に基づいて、同期時間を計算すること、
前記同期時間に基づいて、前記マスターノードへのスレーブ通信パケットの伝送を開始すること、
を行うように構成された、前記制御構成要素と、
を備え
、
前記制御構成要素は更に、前記スレーブノードが前記バスの所有権を許可されているかどうかを判定するように構成され、
前記スレーブ通信パケットの伝送は、前記スレーブノードが所有権を許可されるときのみ開始し、
前記マスターノードの制御構成要素から受信された前記マスター通信パケットのマスター通信パケットは、前記スレーブノードへの前記バスの所有権に対する許可と実質的に共に受信された確認応答についての要求を含み、
前記同期時間は、前記マスター通信パケットの受信の時間に基づいて更新され、
前記マスターノードに伝送された前記スレーブ通信パケットのスレーブ通信パケットは、前記パケット間隔の定義に更に基づいて、前記確認応答についての要求に応答して開始する、スレーブノード。
【請求項2】
前記スレーブノードへの前記所有権の許可は、前記スレーブノードに対して排他的である、請求項
1に記載のスレーブノード。
【請求項3】
前記バスの所有権が前記スレーブノードに許可されているかどうかを判定することは、前記所有権の許可と関連付けられた前記バスへのアクセスの制限を判定することを含み、
前記制御構成要素は更に、前記バスの所有権が前記アクセスの制限に起因して許可されないときに前記スレーブ通信パケットの伝送を開始することを控えるように構成される、請求項
1に記載のスレーブノード。
【請求項4】
前記アクセスの制限は、前記スレーブノードが前記バスの所有権を許可されている間に前記スレーブノードによって伝送されることが許容されるスレーブ通信パケットの最大数、その後に前記スレーブノードによる前記バスの所有権の前記許可が満了する時間間隔、または前記バスの所有権が許可された間に前記スレーブノードによって前記バス上で使用されるように利用可能なパケット間隔の定義の数、を指定する、請求項
3に記載のスレーブノード。
【請求項5】
前記パケット間隔の定義は前記マスターノードによって伝送されたマスター通信パケットの連続した伝送開始時間の間の最大予測時間であり、
前記スレーブノードによって伝送された前記スレーブ通信パケットは、前記パケット間隔の定義に基づいて同期される、請求項1に記載のスレーブノード。
【請求項6】
前記パケット間隔の定義は、前記取得された構成の最大パケットペイロードサイズ及び通信ボーレート定義に基づいて、前記マスターノードによって伝送された前記マスター通信パケットまたは前記複数のスレーブノードのいずれかによって伝送された前記スレーブ通信パケットを伝送するための最大予測伝送時間を適応させる、請求項
5に記載のスレーブノード。
【請求項7】
前記マスターノードから受信された前記マスター通信パケットの第2のマスター通信パケットは、前記第2のマスター通信パケットの伝送の開始から前記スレーブノードによる前記第2のマスター通信パケットの受信までの時間の量、及び/または、前記スレーブノードによる前記スレーブ通信パケットの伝送の開始から前記マスターノードによる前記スレーブ通信パケットの受信までの時間の量に基づいて、前記マスターノードによって測定された伝播遅延を含み、
前記制御構成要素は更に、前記伝播遅延に基づいて、後続のスレーブ通信パケットの伝送を開始するための時間を調節するように構成される、
請求項
1に記載のスレーブノード。
【請求項8】
前記パケット間隔の定義は、前記マスターノードと前記スレーブノードとの間のクロック差に起因したボーレート誤差、前記マスターノードまたは前記スレーブノードによる前記マスターノード及び前記スレーブノードのうちのその他への前記バスの制御の間で遷移するときの処理、並びに文字間タイミングずれの合計、のうちの少なくとも1つによって生じた遅延に基づいている、請求項1に記載のスレーブノード。
【請求項9】
物理特性を検知し、前記検知に基づいて検知データを出力するように構成された検知素子と、
前記検知データをバッファリングするように構成されたバッファと、を更に含み、
前記マスターノードから受信された前記マスター通信パケットのマスター通信パケットは、検知されたデータについての要求を含み、
前記制御構成要素は更に、前記マスター通信パケットを受信したことに応答して、前記マスターノードに伝送された前記スレーブ通信パケットのうちの1つ以上に、前記バッファによってバッファリングされた検知データを含めるように構成される、
請求項1に記載のスレーブノード。
【請求項10】
分散型取得システムの1つ以上のスレーブノードのうちのあるスレーブノードとマスターノードとの間の通信を同期する方法であって、
パケット間隔についての定義をもたらす構成を取得することであって、前記パケット間隔の定義は、前記マスターノードによって伝送された通信パケット及び前記1つ以上のスレーブノードによって伝送された通信パケットが前記パケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす、前記取得することと、
バスを介して前記マスターノードからマスター通信パケットを受信することと、
前記マスターノードから受信された前記マスター通信パケットの少なくとも1つの直近のマスター通信パケットの開始時間を判定することと、
前記開始時間に基づいて、同期時間を計算することと、
前記同期時間に基づいて、前記マスターノードへのスレーブ通信パケットの伝送を開始することと、
を備え
、
前記スレーブノードが前記バスの所有権を許可されているかどうかを判定することを更に含み、
前記スレーブ通信パケットの伝送は、前記スレーブノードが所有権を許可されるときのみ発生し、
前記マスターノードの制御構成要素から受信された前記マスター通信パケットのマスター通信パケットは、前記スレーブノードへの前記バスの所有権に対する許可と実質的に共に受信された確認応答についての要求を含み、
前記同期時間は、前記マスター通信パケットの受信の時間に基づいて更新され、
前記方法は更に、前記同期時間及び前記パケット間隔の定義に更に基づいて、確認応答についての前記要求に応答して前記スレーブ通信パケットのスレーブ通信パケットを開始することを含む、方法。
【請求項11】
前記スレーブノードへの前記所有権の許可は、前記スレーブノードに対して排他的である、請求項
10に記載の方法。
【請求項12】
前記バスの所有権が前記スレーブノードに許可されているかどうかを判定することは、前記所有権の許可と関連付けられた前記バスへのアクセスの制限を判定することを含み、
前記スレーブノードの制御構成要素は更に、前記バスの所有権が前記アクセスの制限に起因して許可されないときに前記スレーブ通信パケットの伝送を開始することを控えるように構成される、請求項
10に記載の方法。
【請求項13】
前記マスターノードから受信された前記マスター通信パケットの第2のマスター通信パケットは、前記第2のマスター通信パケットの伝送の開始から前記スレーブノードによる前記第2のマスター通信パケットの受信までの時間の量、及び/または、前記スレーブノードによる前記スレーブ通信パケットの伝送の開始から前記マスターノードによる前記スレーブ通信パケットの受信までの時間の量に基づいて、前記マスターノードによって測定された伝播遅延を含み、
前記方法は更に、前記伝播遅延に基づいて、後続のスレーブ通信パケットの伝送を開始するための時間を調節することを含む、
請求項
10に記載の方法。
【請求項14】
物理特性を検知することと、
前記検知に基づいて検知データを出力することと、
前記検知データをバッファによりバッファリングすることと、を更に含み、
前記マスターノードの制御構成要素から受信された前記マスター通信パケットのマスター通信パケットは、検知されたデータについての要求を含み、
前記方法は更に、前記マスター通信パケットを受信したことに応答して、前記マスターノードに伝送された前記スレーブ通信パケットのうちの1つ以上に、前記バッファによってバッファリングされた検知データを含めることを含む、
請求項
10に記載の方法。
【請求項15】
バスを介してマスターノードと通信する取得システムの複数の分散されたスレーブノードのうちのあるスレーブノードの制御構成要素であって、
パケット間隔についての定義をもたらす構成を取得することであって、前記パケット間隔の定義は、前記マスターノードによって伝送された通信パケット及び前記1つ以上のスレーブノードによって伝送された通信パケットが前記パケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす、前記取得することと、
前記バスを介して前記マスターノードからマスター通信パケットを受信することと、
前記マスターノードから受信された前記マスター通信パケットの少なくとも1つの直近のマスター通信パケットの開始時間を判定することと、
前記開始時間に基づいて、同期時間を計算することと、
前記同期時間に基づいて、前記マスターノードへのスレーブ通信パケットの伝送を開始することと、
を行うように構成され
、
前記制御構成要素は更に、前記スレーブノードが前記バスの所有権を許可されているかどうかを判定するように構成され、
前記スレーブ通信パケットの伝送は、前記スレーブノードが所有権を許可されるときのみ開始し、
前記マスター通信パケットは、前記スレーブノードへの前記バスの所有権に対する許可と実質的に共に受信された確認応答についての要求を含み、
前記同期時間は、前記マスター通信パケットの受信の時間に基づいて更新され、
前記伝送される前記スレーブ通信パケットのスレーブ通信パケットは、前記パケット間隔の定義に更に基づいて、前記確認応答についての要求に応答して前記マスターノードに伝送される、制御構成要素。
【請求項16】
前記マスターノードの制御構成要素から受信された前記マスター通信パケットのマスター通信パケットは、検知されたデータについての要求を含み、
前記制御構成要素は更に、前記マスター通信パケットを受信したことに応答して、前記マスターノードに伝送された前記スレーブ通信パケットのうちの1つ以上に、前記スレーブノードによって検知及びバッファリングされた、バッファリングされた検知データを含めるように構成される、請求項
15に記載の制御構成要素。
【請求項17】
前記パケット間隔は、前記物理特性を検知して前記検知データを取得する際に、前記スレーブノードを同期させるように使用される、請求項
9に記載のスレーブノード。
【請求項18】
前記パケット間隔についての定義をもたらす構成を取得することは、システムセットアップ時に実行される、請求項1に記載のスレーブノード。
【請求項19】
前記マスターノードはまた、システムセットアップ時に、前記パケット間隔についての定義をもたらす構成を取得する、請求項1に記載のスレーブノード。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、非同期通信システムのためのプロトコルに関し、特に、非同期通信システムのための分散型時間同期プロトコルに関する。
【背景技術】
【0002】
分散型取得システムは、リモートデータ取得及び処理を実行する。取得または処理された情報は、集約、分析、データ記憶、及び/または報告のために1つ以上の通信リンクを介して処理構成要素に転送されることができる。
【0003】
特定の動作モードについて、データ取得は、分散されたスレーブデバイスのセットの間で高度に相関付けられる必要がある。この必要性を達成するために、マスターにより生成された時間同期パルスが採用されることが多く、それでは、パルス推移が各々のスレーブについての時間基準を知らせる。
【0004】
同期パルスは、時間同期に専用の独立した物理リンクを介して配信され、コスト及び負荷を追加する。加えて、様々なケーブル長に起因したスレーブデバイスの間での伝播遅延における差異は、タイミング誤差を追加し、システム性能を悪化させることがある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の方法及びシステムは概して、それらの意図した目的のために満足すると考えられてきたが、非同期通信システムのための改善された分散型時間同期プロトコルについての必要性が本分野でなおも存在する。
【課題を解決するための手段】
【0006】
以下で説明され、例示される実施形態の目的及び利点が示され、以下の説明から明らかになるであろう。例示される実施形態の追加の利点は、明細書、特許請求の範囲において特に指摘されるデバイス、システム、及び方法によって、また同様に添付図面から実現及び達成される。それらの利点及び他の利点を達成するために、並びに例示される実施形態の目的に従って、1つの態様では、分散型取得システムのスレーブノードが提供される。スレーブノードは、制御構成要素とバスとの間でインタフェースする通信インタフェース、及び制御構成要素を含む。バスは、取得システムにおいて分散されたマスターノードに結合される。制御構成要素は、パケット間隔についての定義をもたらす構成を取得することであって、パケット間隔の定義は、マスターノード及び1つ以上のスレーブノードによって伝送された通信パケットがパケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす、取得することと、バスを介してマスターノードからマスター通信パケットを受信することと、を行うように構成される。制御構成要素は更に、マスターノードから受信されたマスター通信パケットの少なくとも1つの直近のマスター通信パケットの開始時間を判定取得することと、開始時間に基づいて、同期時間を計算することと、同期時間に基づいて、マスターノードへのスレーブ通信パケットの伝送を開始することと、を行うように構成される。
【0007】
実施形態では、制御構成要素は更に、スレーブノードがバスの所有権を許可されているかどうかを判定するように構成されることができ、スレーブ通信パケットの伝送は、スレーブノードが所有権を許可されるときのみ開始することができる。
【0008】
実施形態では、スレーブノードへの所有権の許可は、スレーブノードに対して排他的であることができる。
【0009】
実施形態では、バスの所有権がスレーブノードに許可されているかどうかを判定することは、所有権の許可と関連付けられたバスへのアクセスの制限を判定することを含むことができる。制御構成要素は更に、バスの所有権がアクセスの制限に起因して許可されないときにスレーブ通信パケットの伝送を開始することを控えるように構成されることができる。
【0010】
実施形態では、アクセスの制限は、スレーブノードがバスの所有権を許可されている間にスレーブノードによって伝送されることが許容されるスレーブ通信パケットの最大数、その後にスレーブによるバスの所有権の許可が満了する時間間隔、またはバスの所有権が許可された間にスレーブによってバス上で使用されるように利用可能なパケット間隔の定義の数、を指定することができる。
【0011】
実施形態では、パケット間隔の定義は、マスターノードによって伝送されたマスター通信パケットの連続した伝送開始時間の間の最大予測時間であることができ、スレーブノードによって伝送されたスレーブ通信パケットは、パケット間隔の定義に基づいて同期される。
【0012】
実施形態では、パケット間隔の定義は、取得された構成の最大パケットペイロードサイズ及び通信ボーレート定義に基づいて、マスターノードによって伝送されたマスター通信パケットまたは複数のスレーブノードのいずれかによって伝送されたスレーブ通信パケットを伝送するための最大予測伝送時間を適応させることができる。
【0013】
実施形態では、マスターノードの制御構成要素から受信されたマスター通信パケットのマスター通信パケットは、スレーブノードへのバスの所有権に対する許可と実質的に共に受信された確認応答についての要求を含むことができる。同期時間は、マスター通信パケットの受信の時間に基づいて更新されることができ、マスターノードに伝送されることができるスレーブ通信パケットのスレーブ通信パケットは、パケット間隔の定義に更に基づいて、確認応答についての要求に応答して開始する。
【0014】
実施形態では、マスターノードから受信されたマスター通信パケットの第2のマスター通信パケットは、スレーブノードによるマスター通信パケットの受信の時間までのマスター通信パケットの伝送の開始の間の時間の量、及び/またはマスターノードによるスレーブ通信パケットの受信までのスレーブノードによって伝送された通信パケットの伝送の開始の間の時間の量に基づいて、マスターノードによって測定された伝播遅延を含むことができる。制御構成要素は更に、伝播遅延に基づいて、後続のスレーブ通信パケットの伝送を開始するための時間を調節するように構成されることができる。
【0015】
実施形態では、パケット間隔の定義は、マスターノードとスレーブノードとの間のクロック差に起因したボーレート誤差、マスターノードまたはスレーブノードによるマスターノード及びスレーブノードのうちのその他へのバスの制御の間で遷移するときの処理、並びに文字間タイミングずれの合計、のうちの少なくとも1つによって生じた遅延に基づくことができる。
【0016】
実施形態では、スレーブノードは更に、物理特性を検知し、検知に基づいて検知データを出力するように構成された検知素子と、検知データをバッファリングするように構成されたバッファと、を含むことができる。マスターノードから受信されたマスター通信パケットのマスター通信パケットは、検知されたデータについての要求を含むことができる。制御構成要素は更に、マスター通信パケットを受信したことに応答して、マスターノードに伝送されたスレーブ通信パケットのうちの1つ以上に、バッファによってバッファリングされた検知データを含めるように構成されることができる。
【0017】
開示の更なる態様に従って、分散型取得システムのスレーブノードとマスターノードとの間の通信を同期する方法が提供される。方法は、パケット間隔についての定義をもたらす構成を取得することであって、パケット間隔の定義は、マスターノード及び1つ以上のスレーブノードによって伝送された通信パケットがパケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす、取得することと、バスを介してマスターノードからマスター通信パケットを受信することと、を含む。方法は更に、マスターノードから受信されたマスター通信パケットの少なくとも1つの直近のマスター通信パケットの開始時間を判定することと、開始時間に基づいて、同期時間を計算することと、同期時間に基づいて、マスターノードへのスレーブ通信パケットの伝送を開始することと、を含むことができる。
【0018】
開示の別の態様に従って、分散型取得システムのスレーブノードの制御構成要素が提供される。制御構成要素は、パケット間隔についての定義をもたらす構成を取得するように構成され、パケット間隔の定義は、マスターノード及び1つ以上のスレーブノードによって伝送された通信パケットがパケット間隔の定義の調波においてのみ発生することを保証するように、適切なタイミングマージンをもたらす。制御構成要素は更に、バスを介してマスターノードからマスター通信パケットを受信することと、マスターノードから受信されたマスター通信パケットの少なくとも1つの直近のマスター通信パケットの開始時間を判定することと、開始時間に基づいて、同期時間を計算することと、同期時間に基づいて、マスターノードへのスレーブ通信パケットの伝送を開始することと、を行うように構成される。
【0019】
主題の開示のシステム及び方法のそれらの特徴及び他の特徴は、図面を併用して好ましい実施形態の以下の詳細な説明から当業者にとって容易に明らかになるであろう。
【0020】
主題の開示が属する当業者が、不必要な実験を実施することなく主題の開示のデバイス及び方法をどのように行い、使用するかを容易に理解するように、それらの好ましい実施形態は、特定の図を参照して本明細書で以下に詳細に説明される。
【図面の簡単な説明】
【0021】
【
図1】開示の実施形態に従った、例示的な分散型データ取得システムの通信トポロジの概略図である。
【
図2】開示の実施形態に従った、分散型データ取得システムのノードによって使用される例示的なコンピュータシステムのブロック図である。
【
図3A】開示の実施形態に従った、マスターノードによって実行される、分散型データ取得システムにおける1つ以上のスレーブノードと通信する実施例の方法を示すフローチャートである。
【
図3B】開示の実施形態に従った、スレーブノードによって実行される、分散型データ取得システムにおけるマスターノードと通信する実施例の方法を示すフローチャートである。
【
図4】開示の実施形態に従った、分散型データ取得システムのスレーブノードによって実行される、実施例の時間同期プロトコル補正ロジックを実装する実施例の方法を示すフローチャートである。
【
図5】開示の実施形態に従った、分散型データ取得システムのスレーブノードによって実行される、実施例の時間同期プロトコル機能ロジックを実装する実施例の方法を示すフローチャートである。
【
図6】開示の実施形態に従った、分散型データ取得システムのマスターノードによって実行される、実施例の時間同期プロトコル機能ロジックを実装する実施例の方法を示すフローチャートである。
【
図7】開示の実施形態に従った、分散型データ取得システムのマスターノードによって実行される、出力生成ロジックを実装する実施例の方法を示すフローチャートである。
【
図8】開示の実施形態に従った、分散型データ取得システムのマスターノードによって実行される、バス制御ロジックを実装する実施例の方法を示すフローチャートである。
【
図9】開示の実施形態に従った、マスターノードによって実行される、伝播遅延補正ロジックを実装する実施例の方法を例示するフローチャート900を示す。
【発明を実施するための形態】
【0022】
通信バス上のバス動作が制御され、そこでは、通信パケットのタイミングは、構成可能なパケット間隔の調波において発生する。パケット間隔は、マスター及びスレーブの両方に既知の構成可能な値である。システムセットアップの一部として、マスターノード及びスレーブノードの不揮発性メモリは、構成可能なパラメータ、最大ペイロードサイズ、ボーレート、及びパケット間隔を含む、通信パラメータデータ項目(PDI)により更新される。リセットにおいて、ノードは、通信の振る舞いを制御するためにそれらのパラメータを使用する。パケット間隔は、MOSIチャネル及びMISOチャネルの動作に適用される。
【0023】
通信パケット自体の開始は、スレーブノードのセットの間で時間同期を達成するために基準時間として使用されることができる。データ転送は、パケットにセグメント化され、パケットは、タイミングマージンを含む構成可能なパケット間隔内で適合する。最大パケットペイロードサイズ及び通信ボーレートは、いずれかのパケットについての最大予測伝送時間を定義する構成可能なパラメータである。タイミングマージンは、ボーレート差及び文字間ずれ時間などの誤差原因を適応させる。パケット間隔は、同期及び通信の考慮事項の平衡を保つように選択される。スレーブデバイスの間のデータ取得タイミングは、クロッキング差に起因して経時的にドリフトすることができる。パケット間隔は、この誤差を補正するのに十分に頻繁に発生する必要がある。通信プロトコルオーバヘッドは、データ転送時間に影響を与える。パケット間隔は、適切な帯域幅利用を許容する必要がある。
【0024】
開示の更なる態様に従って、分散型取得システムのマスターノードと1つ以上のスレーブノードとの間の通信を同期する方法が提供される。方法は、通信パケットがパケット間隔のあらゆる調波において発生することができることを保証するように適切なタイミングマージンをもたらす、パケット間隔、最大ペイロードサイズ、及びボーレートを定義することを含む。適正な選択により、それらのパラメータは、通信動作が決定論的であることを保証する。加えて、方法は、パケット間隔に基づいてバス所有権を管理するための構成可能な規定を含む。マスターノードは、全てのスレーブノードが、受信し、条件付きで消費し、パケットの開始に基づいて時間同期を更新するために条件付きで使用する出力パケットを生成する。パケットが有効であり、パケットのソースアドレスが、マスターがパケットを生成したことを示す特定のアドレス基準を通る場合、全てのスレーブノードは、時間同期を更新するためにパケットを使用する。更に、パケット宛先アドレスが、パケットがスレーブノードに対して意図していることを示す特定のアドレス基準を通り、パケットコンテンツがチャネルデータに一致する場合、特定のスレーブノードは、いずれかのパケットペイロードを消費し、いずれかの適切なスレーブ出力パケットをスケジュールする。チャネルデータは、ポート番号、データオフセット、及びトランザクションアイデンティフィケーション(ID)から構成される。ポート番号は、独立したデータ転送、方向、及び優先度を管理する。データオフセットは、データ順序を管理する。トランザクションIDは、特に、複数のデータ転送が保留中であり、または複数のチャネルに関してアクティブであるケースに対し、特定のトランザクションを区別すること、及びデータ整合性を保証することを支援する。チャネルデータを一致させることは、データ転送が所与のデータトランザクションに対して順序付けられることを示す。マスター出力パケットに基づいて、1つのスレーブノード及び1つのみのスレーブノードがバスアクセスを許可される。マスタノードバスの所有権に依存する最大レートにおいて時間同期が更新されるように、スレーブバスアクセスが制限される必要がある。プロトコルは、構成可能な数のパケット間隔の間にバス所有権を移転するために、バス制御パラメータを使用する。スレーブノードは、マスターノードによって指定されたバス制御の数に制限されたパケット間隔の後続のセットの間に次のパケット間隔において開始するデータを出力する。このアプローチにより、時間同期更新及び帯域幅利用は、決定論的方式において管理される。プロトコルは、全ての置換を扱う。データ転送の終了に到達した場合、スレーブノードは、マスターにバス所有権を早期に再度移転する。プロトコルは、マスターノードが通信誤りから回復することを可能にする、データ順序及び整合性チェックについての規定を含む。
【0025】
開示の別の態様に従って、分散型取得システムのマスターノードの制御構成要素が提供される。制御構成要素は、パケット間隔の現在の調波として定義された、マスターノードの同期時間に対する各々のスレーブノードからの通信パケット入力の開始時間を捕捉するように構成された処理デバイスを含む。時間差に基づいて、マスターノードは、スレーブ特有伝播遅延を判定する。スレーブノードデータ取得タイミングが伝播遅延を適応させるように補正されることができ、いずれかの後のスレーブにおいてマスター通信パケットに反映されることもできるように、マスターノードは、この情報を各々のスレーブノードに提供する。このアプローチにより、分散型取得システムについての時間同期誤差は、無視できるレベルまで減少することができる。
【0026】
ここで、図面に対しての参照が行われ、図面では、同一の参照符号が主題の開示の同様の構造的特徴または態様を識別する。説明及び例示を目的として、並びに非限定的に、開示の第1の実施形態に従った非同期取得システムの例示的な実施形態のブロック図が
図1に示され、参照符号100によって全体的に指定される。取得システム100は、バス106を介して通信するマスターノード102及び1つ以上の分散されたスレーブノード104を含む。バス106は、半二重マルチドロップ2ワイヤ物理リンクとすることができ、マスターノード102は、バス106の第1の端及びバス106のマルチドロップの第2の端に結合されたスレーブノード104に結合する。実施例では、バス106は、ノイズ環境において有効な長距離通信をサポートするように信号終端レジスタを有するツイストペアを通じた差分シグナリングを使用したRS-485物理レイヤである。三状態ロジックは、マルチドロップ通信をサポートするようにドライバが無効にされることを可能にする。RS-485物理レイヤドライバ及び受信機は、データリンクレイヤについてのタイミング及びフレーミング方式を定義するユニバーサル非同期受信機送信機(UART)とインタフェースする。個々のビットを順次出力する並列-直列変換及び入力ビットをバッファリングする直列-並列変換を実行するためにシフトレジスタが使用される。マスターノード102は、1つ以上の選択されたスレーブノード104と通信することができ、またはスレーブノード104の全てにブロードキャストすることができる。
【0027】
取得システム100は、リモートデータ取得及び処理を実行することができる。例えば、スレーブノード104は、物理特性を検知し、集約、分析、データ記憶、及び/または報告のために、検知されたデータをマスターノード102に伝送する取得ノードとすることができる。マスターノード102は、全てのバストランザクションを開始する。特定のトランザクションについて、マスターノード102は、指定された時間期間の間、バス所有権を選択されたスレーブノード104に移転する。
【0028】
特定の適用について、データ取得は、分散されたスレーブノード104のセットの間に高度に相関付けられる必要がある。この必要性を達成するために、特定の取得システムは、スレーブノードについての時間基準として使用されることになる、マスターノードによって生成された同期パルスを使用している。しかしながら、これは、時間同期に対して専用の独立した物理リンクの使用などで不利であり、そのようなデータ取得システムにコスト及び負荷を追加し、データの伝送が、集約されたデータのコヒーレンシに影響を与えることがある伝播遅延の影響を受ける。
【0029】
取得システム100では、データ転送及び時間同期の両方を達成するためにバス106自体が使用され、データ転送及び時間同期の両方は、各々がプロトコルロジックを採用するマスターノード102及びスレーブノード104によって達成される。プロトコルロジックは、時間同期のための独立した物理リンクについての必要性を取り除き、コスト及び負荷を削減する。スレーブノード104がスレーブデバイス104の間で時間同期誤差を減少させるために伝播遅延を相殺することができるように、プロトコルロジックは更に、伝播遅延がマスターノード102によって測定され、スレーブノード104に通信されることを可能にする。
【0030】
取得システム100は、確立された時間同期プロトコル(TSP)を使用することができ、TSPは、通信システムのためのOpen Systems Interconnection(OSI)モデルに基づいた組み合わされたネットワーク及びトランスポートレイヤプロトコルである。TSPは、信頼できる伝送を達成するために、確認応答及び誤りチェックを使用する。TSPは更に、データ優先度、データ待ち時間、データ転送効率、及び時間同期の考慮事項の平衡を保つために、セグメント化、多重化、及びバス所有権ロジックを使用する。TSPでは、データは、各々がペイロード部分を有する一連のデータパケット内でカプセル化される。TSPは更に、データ転送を管理及び経路指定するためにヘッダー及びフッタを使用する。制御パケットとして既知の特定のパケットは、ペイロード部分を含まない。
【0031】
TSPデータ転送は、データ優先度及びデータ方向の考慮事項を適応させるように特定のチャネルにマッピングされる。プロトコルは、高優先度及び低優先度の2つの優先度を定義する。高優先度データ転送は、バス管理ロジックに基づいて、特定の時間に低優先度データ転送に先制する。高優先度転送は、制御及びステータス情報に適している。低優先度転送は、ファイル転送に適している。各々のチャネルは、2つのポート、1つの出力ポート、及び1つの入力ポートから構成され、1つの入力ポートは、パケットペイロードに含まれるセッションデータのフローを示す。方向は、マスタアウトスレーブイン(MOSI)またはマスタインスレーブアウト(MISO)のいずれかとして指定される。MOSIチャネルについて、マスターノード102のみがペイロードを含むデータパケットを生成する。逆に、MISOチャネルについて、スレーブノード104のみがペイロードを含むデータパケットを生成する。MOSIチャネル及びMISOチャネルの両方について、ペイロードを含まない制御パケットが生成されてもよい。制御パケットは、セッションデータを転送せず、それらはデータ転送自体を制御する際にデータパケットを捕捉するにすぎない。パケットヘッダは、チャネルを定義するポート番号パラメータを含む。マスターノードは、マスターパケットのセッションデータ伝送をマスターノード102からスレーブノード104のうちの1つ以上に送信して、データを転送し(書き込みオペレーション)、または出力のためにスレーブデータのバッファリング(読み出しオペレーションの最初の半分)をトリガするために、マスタアウト/スレーブイン(MOSI)チャネルを使用することができる。MOSIチャネルを使用して、マスターノード102は、データパケットまたは制御パケットを使用して、特定のスレーブノード104へのデータ転送のステータスを要求することもできる。これに応答して、特定のスレーブノード104は、マスターノード102が考えられる通信誤りから回復することを可能にするように、制御パケットを使用してセッションデータ転送の進捗を確認応答する。マスターノードは、制御パケットを使用してバッファリングされたセッションデータを出力すること(読み出しオペレーションの2つ目の半分)をスレーブノードに要求するためにマスタイン/スレーブアウト(MISO)チャネルを利用することができる。これに応答して、データが利用可能である場合、スレーブノード104は、要求されたセッションデータを含むデータパケットを生成する。データが利用可能でない場合、スレーブノード104は、この可能性を示す制御パケットを生成する。各々のチャネルは、バス動作を制御するための割り当てられた優先度を有する。マスターノードがバス所有権を特定のスレーブノードに移転した場合、マスターは、スレーブノードがバス所有権をマスターノードに再度移転したかどうかを判定するように、いずれかの入力を評価する。加えて、マスターは、バスの所有権を取り戻すように考えられる通信誤りを扱うために、タイムアウトを使用する。
【0032】
実施例の適用では、マスターノード102は、スレーブノード104のネットワークまたはサブネットワークのコントローラーまたはホストである。スレーブノード104は、それらが配置されたシステムの物理特性を検知する検知素子を含むことができる。検知に応答して、検知素子は、スレーブノード104のバッファにバッファリングされることができる検知されたデータを出力することができる。特定の適用に限定することなく、航空機などの車両のヘルス監視などの適用では、スレーブノード104は、急速にそれらの検知素子によって検知されたデータを取得していてもよい。検知されたデータは、検知された状況の地理的位置を特定するようにマスターノード104によって分析されることができる。そのような適用では、スレーブノード104は、高速な検知されたデータの相関付けを適応させるために分析される必要がある。
【0033】
図2を参照すると、マスターノード102及びスレーブノード104の実施例の構成を提供する、実施例のノード200のブロック図が示される。ノード200は、適切なシステムの1つの実施例にすぎず、本明細書で説明される開示の実施形態の使用または機能性の範囲についてのいずれの限定も示唆することを意図していない。ノード200は、ハードウェア、ソフトウェア、及び/またはファームウェアを使用して実装されることができる。それにも関わらず、ノード200は、開示において示されるように実装され、及び/または機能性を実行する能力を有する。
【0034】
ノード200は、汎用コンピューティングデバイスの形式において示される。ノード200は、処理デバイス202、メモリ204、外部構成要素220と通信することができる入力/出力(I/O)インタフェース(I/F)206、及び任意選択で内部構成要素208を含む。
【0035】
処理デバイス202は、例えば、プログラマブル論理デバイス(PLD)、マイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または同様の処理能力を有する他の個別もしくは統合された論理回路とすることができる。
【0036】
処理デバイス202及びメモリ204は、例えば、FPGA、ASIC、マイクロコントローラ、またはマイクロプロセッサにおいて設けられる構成要素に含まれることができる。メモリ204は、例えば、データを一時的または長期間記憶し、処理デバイス202によって実行可能なプログラム可能命令を記憶するための揮発性及び不揮発性メモリを含むことができる。
【0037】
I/O I/F208は、バス106に通信可能に結合することができる。加えて、I/O I/F108は、例えば、コネクタ、近距離周波数通信、及び有線または無線通信を介して、1つ以上の外部構成要素220、外部検知素子、キーボード、ポインティングデバイス、ディスプレイ、別のコンピューティングデバイス、及び/またはインターネットなどのローカルもしくはワイドエリアネットワークに結合するためのインタフェースを含むことができる。例えば、スレーブノード104は、I/O I/F206を介してバス106に結合することができ、場合によっては、外部検知素子に結合することができる。マスターノード102は、I/O I/F206を介してバス106に結合することができ、場合によっては、スレーブノード102から受信されたデータをアップロードするためにリモートデータベースに結合することができる。
【0038】
スレーブノード104に関して、内部構成要素208は、例えば、検知素子、アナログ/デジタル(A/D)変換器、及び/または信号処理(SC)回路を含むことができる。検知素子は、例えば、温度、振動、速度、加速度、変位、湿度、圧力、または他の特性など、その環境の物理特性を検知することができる。検知素子は、アナログまたはデジタルとすることができ、アナログ/デジタル変換、何らかの信号処理、及び/または何らかの事前処理を実行する能力を有することができる。
【0039】
取得システム100のオペレーションを参照して、取得システム100によって使用されるTSPタイミングは、構成可能なデータ(ペイロードサイズ、ボーレート、及びパケット間隔)によって判定される。ペイロードサイズは、パケット毎に許容されたペイロードの最大数のバイトである。この値は、パケットを伝送する予測時間の境界を定める。ボーレートは、シンボル/秒の単位での通信速度を定義する。UARTに基づく通信について、シンボルは、開始ビット及び停止ビットなどのオーバヘッドビットに沿ったデータビットを含む。最大パケットペイロードサイズ及びボーレートは、いずれかのパケットについての最大予測伝送時間を定義する。
【0040】
パケット間隔は、マスターノード102からスレーブノード104への、またはスレーブノード104からマスターノード102への連続したパケットの間の時間を定義する。通信パケットのタイミングが構成可能なパケット間隔の調波において発生するバス動作が制御される。この方式では、マスターの出力通信パケット自体の開始は、スレーブノードのセットの間で時間同期を達成するための基準時間として使用されることができる。
【0041】
パケット間隔={(最大ペイロードサイズ+オーバヘッドバイト)×バイト毎シンボル)}/ボーレート+タイミングマージン
データ転送は、タイミングマージンを含む構成可能なパケット間隔内で適合するパケットにセグメント化される。タイミングマージンは、ボーレート差及び文字間ずれ時間などの誤差原因を適応させる。加えて、タイミングマージンは、マスターノードまたはスレーブノードによるマスターノード及びスレーブノードのその他へのバスの制御の間で遷移するときの処理遅延を適応させる。
【0042】
実施例として、20バイトのTSPプロトコルオーバヘッドバイト及びバイト毎10シンボル(1開始ビット、8データビット、1停止ビット)のUART構成、並びに40usのタイミングマージンにより、構成可能なパラメータは、460バイトの最大ペイロードサイズ、5Mbaudのボーレート、1msのパケット間隔として選択されてもよい。
【0043】
ボーレート誤差は、マスターとスレーブとの間のクロック差に起因することがある。タイミングマージンは、それらのボーレート誤差を適応させる。
【0044】
UART文字間ずれ時間は、1つのパケット内で停止ビットと後続の開始ビットとの間の時間として定義される。それは、著しいタイミング変動の原因となることがある。しかしながら、ファーストインファーストアウト(FIFO)メモリインタフェースなどのハードウェアバッファ機構により、UART文字間ずれ時間はゼロであると予測される。プロデューサは、バイトをUARTに移転するときのアンダーフローのケースを容易に回避することができ、UARTは、データがバッファリングされる限り連続した出力を生成する。この知識により、パケット間隔が決定論的バス動作を推論し、UARTハードウェアとインタフェースするための決定論的振る舞いを促進するので、パケットは、定期的な決定論的パケット間隔においてマスターノード102によって伝送されることができる。しかしながら、マスターノード102が、UARTインタフェース(FIFOまたはシフトレジスタ)がその出力ポートに新たなパケットを書き込む前に空であることをチェックし、バス106上での伝送をトリガすることは良好な慣習である。空でないことをUARTインタフェースによって示されるように、パケット間隔が超過した場合、伝送は、次の間隔の始めに送信されるべきである。
【0045】
マスターノード102からスレーブノード104のうちの1つへ、またはスレーブノード104のうちの1つからマスターノード102へのバスの制御の間で遷移するときの遅延は、パケットコンテンツが受信機に対して意図しているかどうかをフィルタ及び検証する時間に原因がある。フィルタすることは、伝送が受信機に対して意図しているかどうかを判定するアドレス指定方式を使用する処理とすることができる。検証することは、受信された伝送のコンテンツを評価し、コンテンツをラッチされたチャネルデータと比較する処理とすることができる。a)全てのマスター出力パケットを生成するためのマスターノード102によって使用されるタイミングを定義し、b)全てのスレーブ出力パケットを生成するためのスレーブノード104によって使用されるタイミングを定義し、c)データ取得のためにスレーブノード104を同期し、d)バス106の所有権を制御し、及び/またはe)スレーブノード104により生成された出力に反映されたフィードバックによりデータ取得タイミングを補正するために、マスターノード102がスレーブノード104についての伝播遅延を判定することを可能にするために、パケット間隔が使用されることができる。
【0046】
パケットを伝送するためにマスターノード102によって使用されるタイミングを定義することに関して、マスターノード102は、パケット間隔の調波において開始するようにその出力を制御する。これは、マスターパケットの全ての開始時間がパケット間隔の倍数であることを意味する。
【0047】
パケットを伝送するためにスレーブノード104によって使用されるタイミングを定義することに関して、各々のスレーブノード104は、全てのマスターノード102のパケットについての開始時間を捕捉し、スレーブ特有の伝播遅延だけオフセットされた捕捉された開始時間に対するパケット間隔の後続の調波と一致するようにその出力スケジュールする。
【0048】
スレーブデバイスの104の間での同期をもたらすことに関して、スレーブノード104は、スレーブ特有の伝播遅延だけオフセットされた捕捉された開始時間に対するパケット間隔の後続の調波と一致するようにデータ取得同期イベントをトリガするために、全てのマスターノード102のパケットについての捕捉された開始時間を使用する。
【0049】
スレーブノード104の同期は、同期を実行するマスターノード102の能力及び個々のスレーブノードの能力に依存した任意選択のプロトコル機能である。プロトコルは、ノードタイプまたは同期能力の混合に基づいて破られない。いくつかのスレーブノード104は、それらのデータ取得及び/またはそれらの出力パケットを同期してもよく、他のスレーブノード104は、その能力を有さなくてもよい。
【0050】
時間同期がサポートされるとき、スレーブノード104は、計算された同期時間において開始するようにその出力をスケジュールし、計算された同期時間は、sync時間とも称される。マスターノード102は、スレーブ-マスター伝播遅延、ラウンドトリップ伝播遅延の半分だけオフセットされたそのパケット間隔の調波においてパケットを受信することを開始することを予測する。このタイミングを達成するために、スレーブノード104は、受信されたマスター出力パケットの開始の時間を記録し、パケット間隔を加算し、マスター-スレーブ伝播遅延を減算することによって、応答出力パケットを出力するための開始時間を計算する。伝播遅延は、個々のスレーブに対してマスターノード102によって測定され、それぞれのスレーブノード104に搬送される。パケット間隔は、連続したマスターパケットの開始時間とスレーブパケットの開始時間との間の基本的な時間を定義し、いずれかのマスターパケットがいずれかのスレーブノード104によって受信されるときにもたらされる同期により、全てのマスターパケット及び全てのスレーブパケットがパケット間隔の倍数において出力されることを意味する。
【0051】
時間同期がサポートされないとき、スレーブノード104の出力は、最小遅延時間及び最大遅延時間に制限される、パケットの破棄の直後に開始される。スレーブノード104による連続したデータ転送のために、スレーブノード104の出力は、スレーブノード104による第1の出力の開始の後のパケット間隔の倍数であるようにスケジュールされる。実施形態では、パケット間隔は、マスターノード102の最終パケット終了時間とスレーブノード104の最初のパケット開始時間との間の時間の境界を定める。最大遅延は、(1.n×パケット間隔)であり、それは、ソフトウェアの実装態様に対応し、nは、n%のマージンを有するパケット間隔において通信インタフェースをサービスすることを適応させるように選択される。実施形態では、n=2である。最小遅延は、例えば、10μsの遅延の物理構成を条件として、ファームウェアの実装態様に対応する。
【0052】
バス所有権を制御することに関して、マスターノード102は、マスターノード102からの要求に応答して、伝送の受信を確認応答し、またはデータを送信するかのいずれかのために、制限された時間期間の間にスレーブノード104へのバス所有権の移転を制御するためにパケット間隔を使用することができる。パケットヘッダ内に含まれるパケットバス制御値に反映された、バス所有権のこの制御は、例えば、パケットの単位でスレーブノード104がバスを使用することができる持続期間を定義する。スレーブノード104の観点から、マスターノード102は、バス106の制御を定義し、スレーブノード104は、マスターノード102によって行われることになることをまさに行う。バス106の所有権がスレーブノード104に移転された後、マスターノード102は、最初に行われるかに関わらず、その出力が完了し、またはスレーブノードの制御が満了することをスレーブノード104が示した後、バス所有権を再要求する。スレーブノード104は、パケットヘッダ内に含まれる同一のパケットバス制御値を使用することによって、バス所有権をマスターノード102に再度移転する。スレーブノード104からの入力パケットが破棄されるとき、マスターノード102は、この値に基づいてバス所有権を更新する。マスターノード102がバス所有権を再要求した後、それは、次の利用可能なパケット間隔においてその次の伝送を出力することができる。
【0053】
スレーブノード104について、バス106の制御がスレーブ104に移転される時間時間の間にスレーブノードの伝送を遅延させる予測された出来事が発生する場合、スレーブノードがマスターノード104によってもたらされる制御期間とは独立したその次の伝送を出力するとき、バス所有権は、マスターノード104に再度放棄される。マスターノード102は、状況または他の通信誤りなどを適応させるようにスレーブノード104からの入力を受信するためのタイムアウトを使用することもできる。
【0054】
バス所有権の移転は、マスターノード102からスレーブノード104への伝送においてバス制御値を設定することによって実行されることができる。0~255に制限される、8ビットのバス制御値は、スレーブノード104が出力を生成することが許容される連続したパケット間隔の数を示す。非ゼロバス制御値を受信すると、スレーブノード104は、バス制御値に対応するカウントについての出力パケットを有効にする。スレーブノード104がバス106を所有している間は時間同期更新が可能でないので、タイミング誤差及び帯域幅利用は、最大許容バス制御値を選択するときに考慮される必要がある。スレーブノード104は、8ビットのバス制御値を使用するが、許容値は、0または1である。スレーブノード104がバス106の所有権を有する場合、スレーブノード104は、バス制御値が1であるときにバス所有権をマスターノード102に再度移転し、バス制御値が0である場合にバス所有権を保持する。
【0055】
マスターノード102が、例えば、スレーブノード104にステータスを要求するか、または取得したデータを要求することなどにより、バス所有権を特定のスレーブノード104に転送すると、スレーブノード104は、時刻同期がサポートされている場合は次の同期時間に開始するよう、時刻同期がサポートされていない場合はパケット処理の直後に開始するように、その最初の出力をスケジュールする。
【0056】
伝搬遅延の決定に関して、スレーブノード104の出力が時刻基準をキャプチャすること及びパケット間隔に基づいて次の同期時間を予測することによってマスターノード102の出力と同期されるとき、マスターノード102は、そのスレーブノード104への伝搬遅延を測定することができる。そのとき、マスターノード102は伝搬遅延をスレーブノード104に報告することができる。その上で、スレーブノード104は、伝搬遅延を使用してその送信のタイミングを補償することができ、したがって、スレーブノード104間の同期またはスレーブノード104とマスターノード102間の同期を妨げる可能性があるタイミングエラーを低減する。
【0057】
実施形態では、ペイロード、ボーレート、パケット間隔、及びそれらの許容解像度のそれぞれの最小値及び最大値及び解像度値などの設計考慮事項を満たすために、TSPタイミングの構成可能データに制約を適用することができる。例えば、パケット間隔の分解能は同期イベントとすることができ、そこで、同期イベントは、例えばトグリングバッファのように、データ取得アクティビティのための設計に固有のタイミングである。ボーレートは、ハードウェアクロックの制限、送受信機の能力、及び信号品位の考慮事項に基づいて、対象範囲のデータレートをカバーできる。最大ペイロード制約は、オーバーヘッド、帯域幅使用率、及びパケットバッファーサイズをバランスさせる、ある程度の柔軟性を提供できる。4バイトの倍数により、巡回冗長検査(CRC)の計算を簡素化できる。更に、タイミングの変動を考慮するタイミングマージン制約を提供できる。
【0058】
マスターノード102の動作に関して、マスターノード102は、各送信の開始をパケット間隔の倍数だけ間隔を空けてスレーブノード104への送信信号を送信する。マスターノード102は、バス106の所有権を制御し、ステータスまたは指定されたデータに対する要求をスレーブノード104に送信していない限り、バス106はマスターノード102の送信のための使用のみが許容される。マスターノード102は、スレーブノード104に対し、指定した間隔数につき、バス106を制御して要求されたデータとともに応答することを許容し、その後は、マスターノード102はバス106の制御を再開する。実施形態において、マスターノード102は、スレーブノードの応答を待つことができ、指定した間隔数に及ぶ応答を許容する。マスターノード102は、通信エラーが発生した場合にバス106の制御を再開するためにタイムアウト機能を適用することができる。
【0059】
同期が適用されると、マスターノード102は、確認応答を要求するマスターパケットをスレーブノード104に送信し、実質的に同時にスレーブノード104にバス106の所有権を付与することができる。マスターノード102は、スレーブノード104がリクエストに応答することを可能とするのに十分なバスの所有権をスレーブノード104に付与し、その後バス106の所有権を取り戻すことができる。マスターノード102は、特定の時間、例えば、ファームウェアまたはハードウェアの実施形態における次のパケット間隔の開始、またはソフトウェアの実施形態における第2のパケット間隔の開始において、スレーブノードからの応答において確認応答を予想することができる。マスターノード102は、予想される応答受信時間と実際の応答受信時間との差に基づいて伝搬遅延を判定することができる。マスターノード102は、バス106を介して、判定された伝搬遅延をスレーブノード104に送信することができる。
【0060】
スレーブノード104が、データ取得及び/または送信信号の出力をマスターノード102の送信と同期させるように構成される実施形態では、スレーブノード104は、送信信号が送信されていない非アクティブ状態から送信信号が送信されているアクティブ状態への遷移についてバス106を監視する。マスターノード102の動作に関して、マスターノード102はバス所有権を制御し、MOSI送信を様々なスレーブノード104に出力することができる。最小の同期レートとするために、マスターノード102は、出力された送信信号を最大許容遅延内で送信することができる。マスターノード102は、更に、データ転送が必要でないときに同期が維持されることを確実とするために、保留中のデータトランザクションがない場合に制御パケットを条件付きで出力することができる。このようにして、全てのマスターパケットが各スレーブノード104により使用されて、その同期時間を修正することができる。同期時間の修正は、取得システム100の装置やケーブリングの修正及び/または環境の変化に基づいて伝搬遅延が変更される場合でも、継続的なプロセスとすることができる。
【0061】
データ取得の同期及び/または出力パケットの生成に使用する同期時間を判定するためのスレーブノード104の動作に関して、マスター出力パケットがバス106を介して受信されると、各スレーブノード104は入力された送信をデコードのためその受信機(例えば、この例では、UART)の入力にルーティングする。更に、入力された送信信号はキャプチャポートにルーティングされ、キャプチャポートは、新しいパケットの開始にタイムスタンプを付けるために信号の遷移を評価する。スレーブノード104は、予想される文字間ギャップ時間が0であること及びパケット間最小時間が例えば10μsであることを利用して、スレーブノード104が非アクティブな入力状態(バス106が非アクティブである間)の少なくとも閾値の時間を検出する特定の状態を待つ。その後はアクティブな入力状態に遷移(その間バス106はアクティブ状態に遷移)する。UARTは非ゼロ復帰(NRZ)エンコード方式を使用するように構成されているため、この例では、非アクティブ状態は論理レベル高と定義される。アクティブな遷移は、論理レベル高から論理レベル低への遷移として定義される。
【0062】
実施形態において、所定の条件の検出は、遷移非アクティブ時間カウンタをゼロに初期化し、入力状態が非アクティブのままである限りカウンタを増分することにより実行される。タイムアウトが発生すると、すなわち非アクティブな入力状態が閾値時間持続する(ここで閾値はタイムアウト値である)と、スレーブノード104は入力状態がアクティブ(論理レベル低)に移行するのを待つ。タイムアウトが発生するまで、入力状態がアクティブになると、カウンタはリセットされる。
【0063】
遷移が検出されると、すなわちパケットがバス106から受信されていると、スレーブノード104は、パケットの開始に対応し、開始時刻(t_k)と呼ばれる現在時間をキャプチャする。現在時間は、自走(free-running)タイマーから取得できる。ここでタイマーのカウント値は、例えばスレーブノード104のファームウェアによってラッチされる。
【0064】
パケットのバイトが受信されると、スレーブノード104はパケットの有効性を評価して、パケットがマスターノード102からの送信であるかどうか(どのスレーブノード104に宛てられているかには関係なく)を判定する。パケットが別のスレーブノード104からのものである場合、無視することができ、ラッチされた時間は使用されない。パケットがマスターノード102からのものである場合、同期時間(t_s)は式(1)に基づいて修正される。
【0065】
t_s=t_k+t_p-t_prop、 (1)
ここで、(t_p)は構成可能なパケット間隔であり、(t_prop)はマスターによって提供されるスレーブ固有の伝搬遅延である。スレーブノード104は、同期時間を使用して、そのデータ取得及び出力送信のタイミングを制御する。
【0066】
スレーブノード104が、データがスレーブノード104に対してプッシュされたマスターノード102から出力されたパケットを受信した場合、スレーブノード104はパケットをバッファリングする。完全なパケットが受信されると、スレーブノード104は、その内容に基づいて、所定の基準に従ってパケットを処理する。パケットが無効であるか、スレーブを対象としていない場合、パケットは同期時間を判定することを除いて無視される。パケットが有効であり、(パケットのヘッダーの宛先アドレスで示されるように)スレーブノード104を対象とするものである場合、スレーブノード104は、パケットが受信された特定のチャネルのトランザクションデータを初期化し、その後受信したパケットに基づいてデータを維持する。トランザクションデータには、特定のチャネルのポート番号、データオフセット、トランザクションID、及び送信元/宛先アドレスが含まれる。データが正常である場合、スレーブノード104はデータをバッファリングし、データオフセットを更新する。セッション層では、バッファされたデータが評価され、完全である場合は消費される。
【0067】
マスターノード102が、例えば、書き込み動作ステータス要求または読み出し動作プル要求を介してバス所有権をスレーブノード10に転送するときの動作において、スレーブノード104からの次の送信信号出力は、将来の時刻に開始するようにスケジュールされるか、またはパケット処理の直後に開始される。時刻同期がサポートされていない場合、最小遅延時間と最大遅延時間によって制限されるため、スレーブ出力はパケット処理の直後に開始される。連続するスレーブデータ転送は、パケット間隔の倍数においてスケジュールされる。
【0068】
時刻同期がサポートされている場合、送信出力は、マスターノード102がそのパケット間隔の調波においてパケットの受信を開始すると予想される、計算された同期時間に開始するようにスケジュールされる。
【0069】
リセット時に、自走タイマーが開始され、その「カウント値」が現在時間t_cを表わす。自走タイマーを初期化するリセットは、電源投入時リセット、監視回路やウォッチドッグ回路などからのハードウェアリセット、またはソフトウェアやファームウェアのアクションなどのコントローラーが開始するリセットである。更に、同期時間は、式(2)に基づいて現在時間を使用して更新される。
【0070】
t_s=t_c+t_p-t_prop、 (2)
ここで、t_pはパケット間隔、t_propはマスターノード102がスレーブノード104に提供する特定の伝搬遅延である。
【0071】
現在時間が同期時間に達すると、動作モードに応じて取得プロセスが更新される。例えば、バッファリング方式が使用される場合、スレーブノード104はそのアクティブバッファをトグルすることができる。該当する各スレーブノード104(取得プロセスの実行指示を同報するマルチキャストによってアドレス指定されたスレーブノード104)が同期してこのアクションをほぼ同時に実行するシナリオでは、取得されたデータは各バッファの開始時に時刻同期される。適用可能なスレーブノード104のバッファのうち、わずかに異なる数の取得サンプルをバッファに含めることができ、これはマスターノード102による処理またはデータ集約中に考慮することができる。例えば、データセットを最小データセットの長さに切り詰めることができる。
【0072】
スレーブノード104は、スケジュールされているかどうかに基づいてバッファリングされたデータの出力を条件付きで開始する。チャネルの優先度と、チャネルの以前の出力(ある場合)が予想どおりに完了したかどうかに応じて、連続出力を発生させるようにスケジュールされる場合がある。
【0073】
ここで
図3A~
図9を参照する。
図3A~
図9は、様々な例示的実施形態の実施を示すフローチャート及びフロー図である。なお、
図3A~
図9に示す動作の順序は、必須ではないので、原則として、様々な動作は、例示された順序から外れて、または並行して実行することができることに留意されたい。また、特定の動作をスキップしたり、異なる動作を追加または置換したり、選択した動作または動作のグループを、本明細書で説明する実施形態に従って別個のアプリケーションで実行したりすることもできる。
【0074】
図3Aは、
図1に示される取得システム100のマスターノード102などの取得システムのマスターノードによって実行される例示的な方法を示す流れ
図300を示す。入力302で、パケット間隔の定義を提供する構成が取得され、パケット間隔の定義は、マスターノード及び1つ以上のスレーブノードにより送信される通信パケットがパケット間隔により定義される調波においてのみ発生することを確実とするのに適切なタイミングマージンを提供するものである。つまり、データ転送は、タイミングマージンを含む構成可能なパケット間隔内に収まるパケットに分割される。動作304で、通信パケットの時刻基準は、バスを介して分散型取得システムの全てのスレーブノードに配信され、時刻基準はパケット間隔の定義に基づいている。具体的には、マスターの出力通信パケットの開始自体を、スレーブノードのセット間の時刻同期を達成するための基準時刻として使用できる。この方法は、動作306、308、及び/または310に続くことができる。
【0075】
動作306で、バスを介した通信は、パケット間隔の定義に基づいて1つ以上のスレーブノードと同期される。
【0076】
動作308で、バスの所有権はパケット間隔に基づいて制御される。実施形態では、スレーブノードの1つにバスの制御を提供した後に、タイムアウト機能を使用してバスの制御を取り戻すことができる。事実上、構成可能なパケット間隔の調波で通信パケットのタイミングが発生するバスアクティビティが制御される。
【0077】
動作310で、伝搬遅延が判定され、伝搬遅延は、マスターノードによって送信された通信パケットの送信の開始からスレーブノードの1つによる通信パケットの受信の時間までの時間、及び/または、スレーブノードの1つによって送信された通信パケットの送信の開始からマスターノードによる通信パケットの受信までの時間に関連する。動作312で、伝搬遅延がバスを介してスレーブノードに送信される。
【0078】
実施形態では、動作306、308、及び/または(310及び312)のうちの1つ以上を、異なる時間に、異なる順序で、または同時に実行することができる。
【0079】
実施形態では、バス106は双方向通信に使用される。制御コンポーネントは、パケット間隔の定義に基づいてバスの所有権を更に制御する。
【0080】
実施形態において、1つ以上のスレーブノードは複数のスレーブノードを含み、バスの所有権を制御することは、複数のスレーブノードのうちの単一の選択されたスレーブノードに対してバスへの制限されたアクセスを許可することを含む。
【0081】
実施形態において、許可された制限されたアクセスは、選択されたスレーブノードがバスへのアクセスを許可されている間における、選択されたスレーブノードによって送信されることを許容された指定数のパケットに対するものである。
【0082】
実施形態では、バスは双方向通信用に構成され、パケット間隔の定義は、マスターノードによって送信される通信パケットの連続する送信開始時刻間の最大予想時間であり、制御コンポーネントは1つ以上のスレーブノードによって送信される通信パケットがパケット間隔の定義に基づいて同期されることを予想する。
【0083】
実施形態では、パケット間隔の定義は、取得された構成の最大パケットペイロードサイズ及び通信ボーレートの定義に基づいて、マスターノードまたは1つ以上のスレーブノードによって送信される通信パケットを送信するための最大予想送信時間を考慮したものである。
【0084】
実施形態では、マスターノードによってスレーブノードのいずれかに送信される時刻参照パケット及び通信パケットの各パケットは、パケット間隔の定義の倍数である開始時刻を有する。
【0085】
実施形態では、パケット間隔の定義は、マスターノードと少なくとも1つのスレーブノードとの間のクロック差に起因するボーレートエラー、マスターノードまたはスレーブノードによるバスの制御のマスターノード及びスレーブノードの他方への移行時の処理、及びキャラクタ間タイミングギャップの合計、の少なくとも1つによって引き起こされる遅延に基づいている。
【0086】
図3Bは、
図1に示す取得システム100のスレーブノード104などの取得システムの複数の分散スレーブノードのスレーブノードによって実行される例示的な方法を示す流れ
図350を示す。入力352で、マスターノード及び1つ以上のスレーブノードによって送信される通信パケットがパケット間隔の定義の調波でのみ発生することを確実とするパケット間隔の定義を提供する構成が取得される。動作354で、新しいマスター送信の開始時刻が判定される。
【0087】
次に、動作355において、特定のスレーブノードについてマスターノードによって測定された伝搬遅延がマスター送信に含まれるかどうかの判定が行われる。動作355での判定がYESの場合、つまりマスター送信がマスターノードによって判定されるスレーブノードの特定の伝搬遅延を含む場合、動作357でスレーブノードは更新された伝搬遅延をラッチし、その後、方法は動作356に続く。動作の判定がNOであった場合、つまりマスター送信に伝搬遅延が含まれていなかったことを意味する場合、動作356で、スレーブノードはラッチされた伝搬遅延とマスター送信の開始時刻に基づいて同期時間を修正する。マスターノードに送信信号において送信する必要のある特定のメッセージがない場合、スレーブノードが同期時間を修正することにより自身の同期を修正するために使用できる同期メッセージを送信できる。
【0088】
動作358で、取得システムのバスの一時的な所有権がスレーブノードに割り当てられているかどうかの判定が行われる。動作358での判定がYESである場合、つまり、バスの所有権が、例えば、一定の時間またはパケット間隔数の間、スレーブノードに一時的に割り当てられていることを意味する場合、動作360で、スレーブによるバスの所有権がまだ有効かどうかの判定が行われる。動作358での判定がNOである場合、つまりバスの所有権がスレーブノードに割り当てられていないことを意味する場合、方法は動作354に続く。
【0089】
動作360での判定がYESであり、スレーブの所有権がまだ有効であり、失効していないことを意味する場合、動作362で、マスターノードが確認応答(ACK)を要求したかどうかの判定が行われる。動作360での判定がNOである場合、すなわちバスのスレーブの所有権がもはや有効ではない、例えば失効していることを意味する場合、方法は動作354に続く。動作362の判定がYESであり、確認応答が要求されたことを意味する場合、動作368で、スレーブノードは、次の利用可能な同期時間に確認応答を送信し、各同期時間はパケット間隔だけ間隔を空ける。マスターノードは、確認応答の受信時間を使用して、スレーブノードの伝搬遅延を判定できる。次に、方法はオペレーション354に続く。
【0090】
動作362での判定がNOであり、確認応答が要求されていないことを意味する場合、動作364で、取得データがマスターノードによって要求されているかどうかの判定が行われる。動作364での判定がYESであり、取得データが要求されていることを意味する場合、動作366で、利用可能な取得データがあるかどうかの判定が行われる。そのような利用可能な取得データはバッファリングされ、前の要求(読み取りトランザクションの前半)に基づいてマスターノードに送信されるのを待つ場合がある。動作364での判定がNOであり、取得データが要求されていないことを意味する場合、方法は動作354に続く。
【0091】
動作366の判定がYESであり、取得データが利用可能であることを意味する場合、動作370で、スレーブノードは、次に利用可能な同期時間に取得データを送信する。次に、方法はオペレーション354に続く。動作366での判定がNOであり、取得データが利用できないことを意味する場合、動作372で、スレーブノードは、データが利用できないことを示すために制御パケットを送信する。この入力により、マスターノードは、スレーブノードが要求されたデータをバッファリングするのにより多くの時間が必要であることを認識する。この方法は動作354に続く。
【0092】
図4は、
図1に示される取得システム100のスレーブノード104などの取得システムのスレーブノードによって実行されるスレーブノードを同期させるための例示的な方法を示す流れ
図400を示す。動作402では、動作404からのリセット信号またはアクティブ入力に応答して、非アクティブ時間カウンタが初期化される。動作404において、スレーブノード入力状態がアクティブであるか非アクティブであるかが判定される。入力状態がアクティブである場合、制御は動作402に戻り、非アクティブ時間カウンタはゼロにリセットされる。入力状態が非アクティブである場合、方法は動作406に進む。オペレーション406で、非アクティブタイマーが増分される。動作408で、非アクティブ時間カウント値が評価されて、それが閾値を超えたかどうかを評価する。閾値を超えると、タイムアウト状態が発生したと判断される。タイムアウト状態が発生していない場合、つまり、非アクティブ時間カウンタが閾値を超えていない場合、制御は動作404に戻る。タイムアウト状態が発生した場合、方法はオペレーション410に進む。
【0093】
動作410で、スレーブノードの入力状態がアクティブであるか非アクティブであるかが再び判定される。動作410は、非アクティブタイマーが増分され続けている間に実行される。入力状態が非アクティブであるという判定である場合、非アクティブ時間カウンタが増分され続ける間、動作410が繰り返される。入力状態がアクティブであると判定された場合、方法は動作412に進み、現在時間のタイムスタンプが、例えば、自走タイマーからキャプチャされ、ラッチされる。自走タイマーのカウント値は、現在時間t_cを表す。動作414において、アクティブな入力状態にある間に受信された着信パケットが有効なマスター出力パケットであるかどうかの判定がなされる。
【0094】
動作414での判定がNO、つまり着信パケットがマスターパケットではないが、したがって別のスレーブノード104からのものである場合、非アクティブタイマーをゼロに再初期化するために制御は動作402に続く。入力パケットは同期時間(t_s)を修正するために無視され、ラッチされた時間は使用されない。動作414での判定がYESの場合、つまり着信パケットが有効なマスターパケットであることを意味する場合、動作は動作416に続く。動作416で、同期時間(t_s)が上記の式(1)に基づいて修正される。スレーブノードは、補正された同期時間(t_s)を使用して、データ取得のタイミングを制御し、スレーブノードによる送信信号を出力できる。
【0095】
図5は、
図1に示す取得システム100のスレーブノード104などの取得システムのスレーブノードによって、同期時間(t_s)を適用してスレーブノードの動作を同期するために実行される例示的な方法を示す流れ
図500を示す。動作502で、自走タイマーは、現在時間t_cに初期化される。自走タイマーの値は、時間の経過とともに増分され、更新された現在時間を表す。動作504で、式(2)に基づいて、現在時間t_cを使用して同期時間(t_s)が更新される。
【0096】
オペレーション506で、自走タイマー値(更新された現在時間)が同期時間t_sに到達したかどうかの判定が行われる。判定がNOの場合、つまり、自走タイマー値がまだ同期時間t_sに達していないことを意味する場合、経過する時間に基づいて自走タイマーが増分される間、動作506が繰り返される。判定がYES、つまり自走タイマー値が同期時間t_sに達したことを意味する場合、方法はオペレーション508に続く。動作508で、センサノードが取得の動作モードにある場合、そのアクティブバッファをトグルすることなどにより取得が更新される。動作508は、マスターノードと通信している他のスレーブノードと同期する必要がある。
【0097】
動作510で、出力がスケジュールされているかどうかの判定が行われる。出力は、確認応答を送信したり、取得したデータなどの要求されたデータで応答するなど、スレーブノードがマスターノードによってバスの制御権を与えられたときにスケジュールされる。動作510での判定がNOの場合、つまり、出力がスレーブノードに対してスケジュールされていないことを意味する場合、方法はsync_timeを更新するためにオペレーション504に続く。動作510での判定がYESであり、出力がスレーブノードに対してスケジュールされることを意味する場合、方法は動作512に続き、その後、方法は動作504に続く。動作512で、要求されたデータまたは確認応答を出力するための送信手順が実行される。
【0098】
図6は、取得システムのスレーブノードとタイミングを同期するための
図1に示されるマスターノード102などの取得システムのマスターノードの機能のための例示的な方法を示す流れ
図600を示す。動作602で、同期時間(t_s)が初期化され、自走タイマーの値が時間とともに増分され、更新された現在時間を表す。動作604で、同期時間(t_s)が更新され、t_s=t_c+t_pであり、t_pは構成可能なパケット間隔である。
【0099】
動作606で、自走タイマー値(更新された現在時間)が同期時間t_sに到達したかどうかの判定が行われる。動作606での判定がNO、つまり自走タイマー値がまだ同期時間t_sに到達していないことを意味する場合、経過時間に基づいて自走タイマーが増分される間、動作606が繰り返される。動作606での判定がYESである場合、つまり、自走タイマー値が同期時間t_sに達したことを意味する場合、方法は動作608に続く。
【0100】
動作608で、マスターノードが
図1に示されるバス106などの取得システムのバスを所有しているかどうかの判定が行われる。動作608での判定がNO、つまりマスターノードがバスを所有していないことを意味する場合、方法はsync_timeを更新するために動作604に続く。動作608での判定がYES、つまりマスターがバスを所有していることを意味する場合、方法は動作610に続き、その後、方法は動作604に続く。動作610で、マスターノードは出力を生成する。マスターは、全てのアクティブな高優先度出力を再開することにより、何を出力するかを判定する。さもなければ、マスターノードは保留中の高優先度出力を開始する。さもなければ、マスターノードは全てのアクティブな低優先度出力を再開する。さもなければ、マスターノードは全ての保留中の低優先度出力を開始する。さもなければ、データ取得がアクティブな場合、マスターノードは、ペイロードを含まず、時刻同期の更新のみを提供する同期パケットを出力する。
【0101】
図7は、
図6の動作610内のプロセスを説明するフロー
図700を示す。フロー図は、
図1に示される取得システム100のバス106及びマスターノード102などの取得システムのマスターノードにより、どの出力パケットを生成するかを選択する例示的な方法、及びバスを制御するための例示的な方法を示す。動作702で、マスターノードは、スレーブのいずれかを伴うMISOチャネル(読み取りトランザクション)がアクティブであるかどうかを判定する。オペレーション702での判定がMISOチャネルがアクティブである場合、方法はオペレーション704に進み、マスターノードがプル出力制御パケットを生成する。このパケットは、特定のスレーブノードからの読み取りトランザクションデータ転送の開始または再開を要求する。動作706で、プル出力に基づいて、マスターノードは、バスの制御をアクティブなMISOチャネルに関連付けられたスレーブノードにパケット間隔の最大数の期間転送し、その間、スレーブノードは、マスターノードへデータを転送するための出力を生成することが予想される。
【0102】
オペレーション702で、MISOチャネルがアクティブではないと判定された場合、オペレーション708で、MOSIチャネル(書き込みトランザクション)がアクティブであるか保留中であるかが判定される。そうでない場合、
図7には示されていないが、同期時間(t_s)を更新するための制御パケット出力をバスに送信することができる。動作708で、MOSIチャネルがアクティブまたは保留中であると判定された場合、動作710で、マスターノードはデータを1つ以上のスレーブノードにプッシュする。出力パケットは、書き込みトランザクションの開始、再開、及び/またはステータスの要求を行う役割を果たす。動作712で、確認応答が予想されるかどうかの判定が行われる。動作712での判定がYESであり、確認応答が予想される場合、方法は動作706に続く。動作706で、要求状態出力に基づいて、マスターノードは、バスの制御をアクティブなMOSIチャネルに関連付けられたスレーブノードに1パケット間隔で転送し、その間、スレーブノードはマスターノードからのその受け取った入力の状態を示す出力を生成することが予想される。動作712での判定がNOであり、確認応答が予想されない場合、方法は動作714に続く。動作714で、最後のパケットが出力されたかどうかの判定が行われる。動作714での判定がNOであり、最後のパケットが出力されなかった場合、方法は終了し、その後、方法は動作702で次のパケット間隔で再開する。さもなければ、動作714でYESと判定された場合、最後のパケットが出力され、動作716で、出力が読み取りトランザクション用であるか書き込みトランザクション用であるかが判定される。動作716でNOと判定され、出力は読み出し動作ではなく書き込み動作である場合、方法は動作718に進み、現在のトランザクションが完了し、その後、方法は終了し、動作702で次のパケット間隔において再開する。動作716でYESと判定され、出力が読み出し動作である場合、方法は動作720に進み、読み出しトランザクションを実行しているスレーブデバイスのMISOチャネルがアクティブ化され、その後、方法は終了し、動作702で次のパケット間隔において再開する。事実上、マスターノードはMOSIチャネルを使用してデータを書き込み、出力をバッファリングするためにスレーブノードをトリガし、出力はその後、関連付けられたMISOチャネルを使用してプルされることができる。
【0103】
図8は、スレーブノード入力またはタイムアウト条件に基づいてマスターノードによるバスの再取得を提供するマスターノードによって実行される例示的な方法を示す流れ
図800を示す。動作802で、スレーブノードがバスの制御を有する間、マスターノードはバスから入力データを取得する。動作804で、マスターノードは、所定の基準に基づいて入力を処理する。動作806で、スレーブノードがバス所有権をマスターノードに戻す転送をしたかどうかの判定が行われる。スレーブノードは、データ転送の最後のパケットに到達した場合、または許容されたパケットの数に到達した場合、バス制御値1を使用してバス所有権を放棄する。動作806での判定がYESであり、バスが回収される状態である場合、動作810でマスターノードはバスを回収し、その後、方法は動作802に続く。動作806での判定がNOであり、スレーブノードはバス所有権を明示的に放棄していない場合、動作808で、タイムアウト条件が満たされたかどうかの判定が行われる。事実上、マスターノードは、バスの所有権を自律的に取り戻すのに十分な時間が経過したかどうかを評価する。構成可能なタイムアウトは、最後のマスターノード出力パケットの間に、マスターノードがスレーブノードに許可したパケット間隔の数に対応する時間が超過されるように選択される。動作808での判定がYESであり、タイムアウト条件が満たされた場合、動作810でマスターノードはバスを回収し、方法は動作802に続く。動作808での判定がNOであり、タイムアウト条件が満たされていない場合、方法は動作802に続く。
【0104】
図9は、伝搬遅延補正を判定するためにマスターノードによって実行される例示的な方法を示すフロー
図900を示す。マスターノード102によって受信されるスレーブノード104からのバス106上の送信は、デコードのために、例えばUARTの入力にルーティングされ、例えばキャプチャポートでのキャプチャのために更にルーティングされ、受信中の新しいパケットの開始をタイムスタンプするために信号の遷移を評価されることができる。この方法は、マスターノードのファームウェアによって実行できる。例えば、予想される文字間ギャップ時間0と最小パケット間時間10μsを利用することにより、マスターファームウェアはバスが非アクティブな状態になり、その後にアクティブな遷移が発生するのを待つことができる。例えば、UARTを使用する実施形態では、非ゼロ復帰(NRZ)符号化方式が使用され、非アクティブ状態は論理レベル高と定義され、アクティブ遷移は論理レベル高から論理レベル低への遷移として検出することができる。
【0105】
動作902で非アクティブ時間カウンタが、リセット信号または動作904からのアクティブ入力のいずれかに応答して、初期化される。オペレーション904では、新しいパケットがキャプチャされたかどうかに基づいて、マスターノード入力状態がアクティブか非アクティブかが判定される。入力状態がアクティブ、つまりパケットがキャプチャされたことを意味する場合、制御は動作902に戻り、非アクティブ時間カウンタはゼロにリセットされる。入力状態が非アクティブ、つまりパケットがキャプチャされていないことを意味する場合、方法はオペレーション906に進む。動作906で、非アクティブタイマーが増分される。動作908で、非アクティブ時間カウント値が評価されて、それが閾値を超えたかどうかを判定する。閾値を超えると、タイムアウト状態が発生したと判断される。タイムアウト状態が発生していない場合、つまり非アクティブ時間カウンタが閾値を超えていないことを意味する場合、制御は動作904に戻る。タイムアウト状態が発生した場合、方法はオペレーション910に続く。
【0106】
動作910で、スレーブノードの入力状態がアクティブであるか非アクティブであるかが再び判定される。動作910は、非アクティブタイマーが増分され続けている間に実行される。入力状態が非アクティブであるという判定である場合、非アクティブ時間カウンタが増分され続ける間、動作910が繰り返される。
【0107】
入力状態がアクティブであると判定された場合、方法は動作912に進み、現在時間のタイムスタンプが、例えば、自走タイマーからキャプチャされラッチされる。自走タイマーのカウント値は、現在時間t_cを表す。動作914では、予想されるパケットの有効性を評価することに加えて、マスターノードは、計算式t_e=t_k-t_s-t_prop((t_prop)は現在のスレーブ固有の伝搬遅延)を使用して、マスター同期時間(t_e)に対するタイミングエラー(t_s)を判定することにより、検出された送信信号を送信した特定のスレーブノードの伝搬遅延を更新する。動作918では、場合によってはフィルタリング後に、エラーが有意であるか、例えば所定の閾値を超えるかどうかの判定が行われる。動作918で、マスターノードは、特定のスレーブノードへの出力をスケジュールして、スレーブノードの特定の伝搬遅延を更新する。伝搬遅延は、エラーの半分を累積することにより更新され、両方向の遅延に対応する。
【0108】
開示されている取得システムの様々な実施形態の潜在的な利点は、プロトコル論理を通信リンクの使用に適用して、マスターノードと分散されたスレーブノード間のデータ転送を考慮し、タイミングエラーを修正し、分散スレーブノードの同期を提供できることである。別個の同期リンクは不要である。
【0109】
航空機エンジン関連のアプリケーションの健全性モニタリングの例示的なコンテキストで示され、説明されているが、当業者は、本開示による取得システムが、分散スレーブノードによって取得された高度に相関した感知データを使用する、民間及び軍事アプリケーションを含む、他の全ての適切なアプリケーションで使用できることを容易に理解するであろう。マスターノードとスレーブノード間の通信を再同期するための同期時間の修正は継続的なプロセスになる可能性があるため、取得システムは、取得システムの装置及びケーブルの修正に基づいて伝搬遅延が変更された場合でも、再同期が可能である。したがって、取得システムは、陸、海、宇宙、空中輸送手段などの固定システムまたはモバイルシステムの監視に使用できる。
【0110】
本開示の装置及び方法を好ましい実施形態を参照して図示及び説明したが、当業者は、本開示の趣旨及び範囲から逸脱することなく、変更及び/または修正を行うことができることを容易に理解するであろう。