(57)【要約】ノイズの多い環境においてシリアルデータストリームを評価および復号するためにパターンマッチング方法を利用するよりロバストな汎用非同期送受信機（ＵＡＲＴ）プロトコルが提供される。ＵＡＲＴプロトコルはさらに、シリアルデータストリーム内のドリフトを低減および／または除去するように、このデータストリーム内のデータビットの予期されるエッジを調整することを可能にし得る。【選択図】  図１
2021535669.tif 000002
【特許請求の範囲】
【請求項１】
方法であって
複数のデータビットを有するシリアルデータストリームのスタートビットを検出することと、
前記複数のデータビット中のデータビットの２ビットペアを第１のコンパレータと比較することと、
前記複数のデータビット中のデータビットの前記２ビットペアと前記第１のコンパレータとの間の第１の一致レベルを決定することと、
前記複数のデータビット中のデータビットの前記２ビットペアを第２のコンパレータと比較することと、
前記複数のデータビット中のデータビットの前記２ビットペアと前記第２のコンパレータとの間の第２の一致レベルを決定することと、
前記第１の一致レベルを前記第２の一致レベルと比較することと、
前記第１の一致値および前記第２の一致値のうちの大きい方に対応する前記複数のデータビット中のデータビットの前記２ビットペアの各データビットにバイナリ値を割り当てることと
を備える方法。
【請求項２】
前記複数のデータビット中のデータビットのすべての２ビットペアを前記第１のコンパレータと比較することと、
前記複数のデータビット中のデータビットのすべての２ビットペアと前記第１のコンパレータとの間の第１の一致レベルを決定することと、
前記複数のデータビット中のデータビットのすべての２ビットペアを前記第２のコンパレータと比較することと、
前記複数のデータビット中のデータビットのすべての２ビットペアと前記第２のコンパレータとの間の第２の一致レベルを決定することと、
前記第１の一致レベルを前記第２の一致レベルと比較することと、
前記第１の一致値および前記第２の一致値のうちの大きい方に対応する前記複数のデータビット中のデータビットのすべての２ビットペアの各データビットにバイナリ値を割り当てることと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記シリアルデータストリームの定義された終端においてストップビットを検出することと、
前記ストップビットを検出したことに応答して、前記２ビットペアの前記比較と、前記２ビットペアへのバイナリ値の割当てとを停止することと
をさらに備える、請求項２に記載の方法。
【請求項４】
前記第１のコンパレータは、２ビットバイナリパターン「０１」であり、ここで、０は、前記２ビットペアの第１のビットを表し、１は、前記２ビットペアの第２のビットを表す、請求項２に記載の方法。
【請求項５】
前記第２のコンパレータは、２ビットバイナリパターン「１１」であり、ここで、最初の１は、前記２ビットペアの前記第１のビットを表し、次の１は、前記２ビットペアの前記第２のビットを表す、請求項４に記載の方法。
【請求項６】
前記第１の一致レベルは、前記２ビットペアと前記第１のコンパレータとの間の一致率を表し、前記第２の一致レベルは、前記２ビットペアと前記第２のコンパレータとの間の一致率を表す、請求項５に記載の方法。
【請求項７】
前記第１の一致値および前記第２の一致値のうちの大きい方が一致値しきい値を満たすかまたは超える場合にのみ、前記第１の一致値および前記第２の一致値のうちの大きい方に対応する前記複数のデータビットの前記２ビットペアの各データビットにバイナリ値を割り当てること
をさらに備える、請求項６に記載の方法。
【請求項８】
前記一致値しきい値は、設定可能である、請求項７に記載の方法。
【請求項９】
前記２ビットペア中の各データビットのエッジを検出することと、
前記２ビットペア中の各データビットの前記検出されたエッジのロケーションを前記２ビットペア中の各データビットの予期されるエッジと比較することと、
前記検出されたエッジの前記ロケーションが前記予期されるエッジとアラインするかどうかを決定することと
をさらに備える、請求項８に記載の方法。
【請求項１０】
データビットの前記検出されたエッジがデータビットの前記予期されるエッジよりも遅い場合には、前記予期されるエッジを１クロック前方に、データビットの前記検出されたエッジがデータビットの前記予期されるエッジよりも早い場合には、１クロック後方に調整すること
をさらに備える、請求項９に記載の方法。
【請求項１１】
システムであって、
論理関数を実行する能力があるプロセッサと、
符号化された命令を有する少なくとも１つの非一時的なコンピュータ読取可能な記憶媒体と
を備え、前記命令は、前記プロセッサによって実行されると、シリアルデータストリームを復号するための動作を実施し、前記命令は、
複数のデータビットを有するシリアルデータストリーム内のスタートビットを検出することと、
前記複数のデータビット中のデータビットの２ビットペアを第１のコンパレータと比較することと、
前記複数のデータビット中のデータビットの前記２ビットペアと前記第１のコンパレータとの間の第１の一致レベルを決定することと、
前記複数のデータビット中のデータビットの前記２ビットペアを第２のコンパレータと比較することと、
前記複数のデータビット中のデータビットの前記２ビットペアと前記第２のコンパレータとの間の第２の一致レベルを決定することと、
前記第１の一致レベルを前記第２の一致レベルと比較することと、
前記第１の一致値および前記第２の一致値のうちの大きい方に対応する前記複数のデータビット中のデータビットの前記２ビットペアの各データビットにバイナリ値を割り当てることと
を含む、システム。
【請求項１２】
前記プロセッサは、少なくとも１つのプログラマブルハードウェア記述言語（ＨＤＬ）符号化論理ブロックをさらに備えるフィールドプログラマブルゲートアレイであり、前記少なくとも１つのプログラマブルＨＤＬ符号化論理ブロックは、前記シリアルデータストリームを復号するための前記動作を実施するための前記命令で符号化される、
請求項１１に記載のシステム。
【請求項１３】
前記プロセッサは、少なくとも１つのプログラマブルハードウェア記述言語（ＨＤＬ）符号化論理ブロックをさらに備える特定用途向け集積回路であり、前記少なくとも１つのプログラマブルＨＤＬ符号化論理ブロックは、前記シリアルデータストリームを復号するための前記動作を実施するための前記命令で符号化される、
請求項１１に記載のシステム。
【請求項１４】
前記第１のコンパレータは、２ビットバイナリパターン「０１」であり、ここで、０は、前記２ビットペアの第１のビットを表し、１は、前記２ビットペアの第２のビットを表す、請求項１１に記載のシステム。
【請求項１５】
前記第２のコンパレータは、２ビットバイナリパターン「１１」であり、ここで、最初の１は、前記２ビットペアの前記第１のビットを表し、次の１は、前記２ビットペアの前記第２のビットを表す、請求項１４に記載のシステム。
【請求項１６】
前記第１の一致レベルは、前記検出された２ビットペアと前記第１のコンパレータとの間の一致率を表し、前記第２の一致レベルは、前記検出された２ビットペアと前記第２のコンパレータとの間の一致率を表す、請求項１５に記載のシステム。
【請求項１７】
前記命令は、
前記第１の一致値および前記第２の一致値のうちの大きい方が一致値しきい値を満たすかまたは超える場合にのみ、前記第１の一致値および前記第２の一致値のうちの大きい方に対応する前記複数のデータビットの各２ビットペアの各データビットにバイナリ値を割り当てること
をさらに含む、請求項１６に記載のシステム。
【請求項１８】
前記一致値しきい値は、設定可能である、請求項１７に記載のシステム。
【請求項１９】
前記命令は、
データビットの前記２ビットペア中の各データビットのエッジを検出することと、
データビットの前記２ビットペア中の各データビットの前記検出されたエッジのロケーションを各データビットの予期されるエッジと比較することと、
前記検出されたエッジの前記ロケーションが前記予期されるエッジとアラインするかどうかを決定することと、
データビットの前記検出されたエッジがデータビットの前記予期されるエッジよりも遅い場合には、前記予期されるエッジを１クロック前方に、データビットの前記検出されたエッジがデータビットの前記予期されるエッジよりも早い場合には、１クロック後方に調整することと
をさらに含む、請求項１２に記載のシステム。
【請求項２０】
前記命令は、
前記シリアルデータストリーム内のストップビットを検出することと、
前記ストップビットの前記検出に応答して、前記２ビットペアの前記比較と、前記２ビットペアへのバイナリ値の割当てとを停止することと
をさらに含む、請求項１９に記載のシステム。
【発明の詳細な説明】
【政府の利害関係の表明】
【０００１】
[0001]本発明は、政府の支援を受けて、米国空軍から授与された契約番号ＦＡ８６３４−１７−Ｃ−２６５０／１３２９０８９に基づいて行われたものである。政府は、本発明について一定の権利を有する。
【技術分野】
【０００２】
[0002]本開示は、シリアルデータ通信プロトコルに関する。より詳細には、一例で、本開示は、汎用非同期送受信機シリアル通信プロトコルに関する。具体的には、別の例では、本開示は、ノイズの多い環境においてデータストリームをより確実に検出するためにパターンマッチングプロセスを利用する汎用非同期送受信機シリアル通信プロトコルに関する。
【背景技術】
【０００３】
[0003]シリアル通信は、特に電気通信および／またはデータ伝送に関係するとき、２つの場所の間で一度に１ビットずつデータを送ることを伴う。典型的には、シリアル通信は、ネットワークを介してデータを送受信するため２つの主要な規格、すなわち同期シリアル通信プロトコルおよび非同期シリアル通信プロトコルのうちの一方を利用する。
【０００４】
[0004]同期シリアル通信は、データ自体の中に必要なストップビットがない状態で、一貫したレートでデータの連続したストリームを送ることを伴う。典型的には、同期プロトコルは、データとともに送信されるデータソースに存在するクロックを有する。距離が離れていると、送信データおよびクロックは離れるようにドリフトし、データにエラーを引き起こす可能性がある。双方向通信とともにこれらのプロトコルを利用すると、データおよびクロックはさらに同期しなくなる可能性がある。したがって、データタイミングは、このドリフトを考慮しなければならず、これは、システムがタイミング要件を満たそうとするため、読出し時間を大幅に減速させる可能性がある。
【０００５】
[0005]一般に汎用非同期送受信機またはＵＡＲＴプロトコルと呼ばれる非同期シリアル通信プロトコルは、スタートビットおよびストップビットとして知られており、それぞれデータが入ってくることまたは終了することを送受信機に示す開始信号および停止信号が含まれたデータストリームを利用する。スタートビットおよびストップビットの使用により、システムは、データ伝送間のタイミングをリセットすることができる。典型的なＵＡＲＴプロトコルは、スタートビットを検出することができ、そのスタートビットの立ち上がりエッジに基づいてサンプル点を設定するためにスタートビットを使用する。検出されると、サンプルタイミングが設定される傾向があり、第１のサンプル点は、ビット時間の半分のオフセットに設定され、後続のサンプル点は、その後１ビット時間の間隔で設定される。理論的には、これは、各サンプル時間をビットウィンドウの予測された中間に置き、ＵＡＲＴは、その特定のサンプル点においてシリアルデータが「論理ハイ」（すなわち、バイナリ「１」）を含むか「論理ロー」（すなわち、バイナリ「０」）を含むか決定する。したがって、現在のＵＡＲＴプロトコルは、データストリームの長さが増加するにつれて連続して増加することができるオーバーサンプリング乗数に帰着し得るオーバーサンプリングを必要とし、その結果、ドリフトが発生する。このドリフトは、サンプルタイミングを狂わせる可能性があり、最終的には、特により長いシリアルストリームにおいて、受信されているデータにエラーを引き起こす可能性がある。発生するエラーが多すぎると、データストリーム全体は信頼性がなくなる可能性がある。
【０００６】
[0006]追加的に、現在のＵＡＲＴプロトコルが行うように、スタートビットの立ち上がりエッジに基づいて設定されたサンプリング点を使用することは、ノイズの影響を受けやすい。具体的には、ノイズグリッチが、誤りスタートビットを与える場合、サンプル点はミスアライン（misalign）されている可能性があり、入ってくるデータストリーム全体が使用不能となり、かつ、信頼性がなくなる。同様に、ノイズグリッチがたまたまサンプリング点と一致した場合、データ値が誤用され得、結果としてデータにエラーを引き起こす可能性があり、この場合も同様に、エラーが多すぎると、データストリーム全体は信頼性がなくなる可能性がある。
【発明の概要】
【０００７】
[0007]本開示は、シリアルデータストリーム内の２ビットの各セットを比較するためにパターンマッチングプロセスを利用するよりロバストで信頼性のあるＵＡＲＴプロトコルを提供することによって、これらの問題および他の問題に対処し、よって、ノイズグリッチによって生じたデータエラーを低減および／または除去する。
【０００８】
[0008]一態様では、本開示は、複数のデータビットを有するシリアルデータストリームのスタートビットを検出することと、複数のデータビット中のデータビットの２ビットペアを第１のコンパレータと比較することと、複数のデータビット中のデータビットの２ビットペアと第１のコンパレータとの間の第１の一致レベルを決定することと、複数のデータビット中のデータビットの２ビットペアを第２のコンパレータと比較することと、複数のデータビット中のデータビットの２ビットペアと第２のコンパレータとの間の第２の一致レベルを決定することと、第１の一致レベルを第２の一致レベルと比較することと、第１の一致値および第２の一致値のうちの大きい方に対応する複数のデータビット中のデータビットの２ビットペアの各データビットにバイナリ値を割り当てることとを備える方法を提供し得る。この例示的な実施形態または別の例示的な実施形態は、複数のデータビット中のデータビットのすべての２ビットペアを第１のコンパレータと比較することと、複数のデータビット中のデータビットのすべての２ビットペアと第１のコンパレータとの間の第１の一致レベルを決定することと、複数のデータビット中のデータビットのすべての２ビットペアを第２のコンパレータと比較することと、複数のデータビット中のデータビットのすべての２ビットペアと第２のコンパレータとの間の第２の一致レベルを決定することと、データビットのすべての２ビットペアについて第１の一致レベルを第２の一致レベルと比較することと、第１の一致値および第２の一致値のうちの大きい方に対応する複数のデータビット中のデータビットのすべての２ビットペアの各データビットにバイナリ値を割り当てることとをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、シリアルデータストリーム内のストップビットを検出することと、ストップビットを検出したことに応答して、２ビットペアの比較と、２ビットペアへのバイナリ値の割当てとを停止することとをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、第１のコンパレータが２ビットバイナリパターン「０１」であり、ここで、０が２ビットペアの第１のビットを表し、１が２ビットペアの第２のビットを表すことをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、第２のコンパレータが２ビットバイナリパターン「１１」であり、ここで、最初の１が２ビットペアの第１のビットを表し、次の１が２ビットペアの第２のビットを表すことをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、第１の一致レベルが２ビットペアと第１のコンパレータとの間の一致率を表し、第２の一致レベルが２ビットペアと第２のコンパレータとの間の一致率を表すことをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、第１の一致値および第２の一致値のうちの大きい方が一致値しきい値を満たすかまたは超える場合にのみ、第１の一致値および第２の一致値のうちの大きい方に対応する複数のデータビットの２ビットペアの各データビットにバイナリ値を割り当てることをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、一致値しきい値が設定可能であることをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、２ビットペア中の各データビットのエッジを検出することと、２ビットペア中の各データビットの検出されたエッジのロケーションを２ビットペア中の各データビットの予期されるエッジと比較することと、検出されたエッジのロケーションが予期されるエッジとアラインするかどうかを決定することとをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、データビットの検出されたエッジがデータビットの予期されるエッジよりも遅い場合には、予期されるエッジを１クロック前方に、データビットの検出されたエッジがデータビットの予期されるエッジよりも早い場合には、１クロック後方に調整することをさらに提供し得る。
【０００９】
[0009]別の態様では、本開示は、論理関数を実行する能力があるプロセッサと、符号化された命令を有する少なくとも１つの非一時的なコンピュータ読取可能な記憶媒体とを備えるシステムを提供し得、この命令は、プロセッサによって実行されると、シリアルデータストリームを復号するための動作を実施し、命令は、複数のデータビットを有するシリアルデータストリーム内のスタートビットを検出することと、複数のデータビット中のデータビットの２ビットペアを第１のコンパレータと比較することと、複数のデータビット中のデータビットの２ビットペアと第１のコンパレータとの間の第１の一致レベルを決定することと、複数のデータビット中のデータビットの２ビットペアを第２のコンパレータと比較することと、複数のデータビット中のデータビットの２ビットペアと第２のコンパレータとの間の第２の一致レベルを決定することと、第１の一致レベルを第２の一致レベルと比較することと、第１の一致値および第２の一致値のうちの大きい方に対応する複数のデータビット中のデータビットの２ビットペアの各データビットにバイナリ値を割り当てることとを含む。この例示的な実施形態または別の例示的な実施形態は、プロセッサが、少なくとも１つのプログラマブルＨＤＬ符号化論理ブロックをさらに備えるフィールドプログラマブルゲートアレイであり、少なくとも１つのプログラマブルＨＤＬ符号化論理ブロックが、シリアルデータストリームを復号するための動作を実施するための命令で符号化されることをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、プロセッサが、少なくとも１つのプログラマブルＨＤＬ符号化論理ブロックをさらに備える特定用途向け集積回路であり、少なくとも１つのプログラマブルＨＤＬ符号化論理ブロックが、シリアルデータストリームを復号するための動作を実施するための命令で符号化されることをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、第１のコンパレータが２ビットバイナリパターン「０１」であり、ここで、０が２ビットペアの第１のビットを表し、１が２ビットペアの第２のビットを表すことをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、第２のコンパレータが２ビットバイナリパターン「１１」であり、ここで、最初の１が２ビットペアの第１のビットを表し、次の１が２ビットペアの第２のビットを表すことをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、第１の一致レベルが、検出された２ビットペアと第１のコンパレータとの間の一致率を表し、第２の一致レベルが、検出された２ビットペアと第２のコンパレータとの間の一致率を表すことをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、命令が、第１の一致値および第２の一致値のうちの大きい方が一致値しきい値を満たすかまたは超える場合にのみ、第１の一致値および第２の一致値のうちの大きい方に対応する複数のデータビットの各２ビットペアの各データビットにバイナリ値を割り当てることをさらに含むことをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、一致値しきい値が設定可能であることをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、命令が、データビットの２ビットペア中の各データビットのエッジを検出することと、データビットの２ビットペア中の各データビットの検出されたエッジのロケーションを各データビットの予期されるエッジと比較することと、検出されたエッジのロケーションが予期されるエッジとアラインするかどうかを決定することと、データビットの検出されたエッジがデータビットの予期されるエッジよりも遅い場合には、予期されるエッジを１クロック前方に、データビットの検出されたエッジがデータビットの予期されるエッジよりも早い場合には、１クロック後方に調整することとをさらに含むことをさらに提供し得る。この例示的な実施形態または別の例示的な実施形態は、命令が、シリアルデータストリーム内のストップビットを検出することと、ストップビットの検出に応答して、２ビットペアの比較と、２ビットペアへのバイナリ値の割当てとを停止することとをさらに含むことをさらに提供し得る。
【００１０】
[0010]本開示の例示的な実施形態は、以下の説明に記載され、図面に示され、特に、添付の特許請求の範囲において明確に指摘および記載される。
【図面の簡単な説明】
【００１１】
【図１】[0011]図１は、本プロトコルを利用し得る代表的な通信バスの概略図である。
【図２】[0012]図２は、本開示の論理ブロックのセットの論理ブロック図である。
【図３】[0013]図３は、双方向構成における本開示のデータストリーム図である。
【図４】[0014]図４は、本開示のシリアルデータストリームの２ビットペアの拡大図である。
【図５】[0015]図５は、従来のプロトコルと本開示のプロトコルとの代表的な比較である。
【発明を実施するための形態】
【００１２】
[0016]同様の番号は、図面全体を通して同様の部分を指す。
【００１３】
[0017]図１を参照すると、汎用通信バス（ＲＦＢ）インターフェースが示されており、全体的に１０で示されている。ＲＦＢインターフェース１０は、一般にマスタ１２として知られており、本明細書でマスタ１２と呼ばれる一次ロジック１２と、一般にスレーブ１４として知られており、本明細書でスレーブ１４と呼ばれる１つまたは複数の二次ロジック１４と、単方向制御バス（ＲＦＣＢ）１６と、双方向データバス（ＲＦＤＢ）１８とを含むことができる。
【００１４】
[0018]一態様によれば、ＲＦＢインターフェース１０は、マスタ１２が１つまたは複数のスレーブ１４に書き込むことおよび／または１つまたは複数のスレーブ１４から読み出すことができる標準的なＲＦＢインターフェースであり得る。別の態様によれば、ＲＦＢインターフェース１０は、１つより多くのマスタ１２を含むことができ、ここで、第１のマスタ１２は、ＲＦＣＢ１６に関連する第１のスレーブ１４を制御し、第２のマスタ１２は、ＲＦＤＢ１８に関連する第２のスレーブ１４を制御する。
【００１５】
[0019]ＲＦＣＢ１６は、マスタ１２から１つまたは複数のスレーブ１４に制御情報を書き込むように動作可能な単方向インターフェースであり得、ＲＦＤＢ１８は、マスタ１２と１つまたは複数のスレーブ１４との間で読み出すおよび書き込むために使用される双方向インターフェースであり得る。一態様によれば、ＲＦＣＢ１６インターフェースおよびＲＦＤＢ１８インターフェースは、本明細書でさらに説明するように、同じ通信プロトコルを使用し得る。
【００１６】
[0020]図２を参照すると、代表的な論理ブロック２０の図が示されており、ＲＦＢインターフェース１０の実装で使用されるファームウェアブロックを表し得る。論理ブロック２０は、ＲＦＣＢスレーブ２６およびＲＦＤＢスレーブ２８にそれぞれ対応するＲＦＣＢマスタ２２およびＲＦＤＢマスタ２４を含み得る。
【００１７】
[0021]ＲＦＣＢマスタ２２およびＲＦＣＢスレーブ２６は、ＲＦＣＢマスタがＲＦＣＢスレーブに書き込み得る単方向インターフェースを有することができ、ＲＦＤＢマスタ２４およびＲＦＤＢスレーブ２８は、ＲＦＤＢマスタ２４がＲＦＤＢスレーブ２８への書込みとＲＦＤＢスレーブ２８からの読出しの両方を行うことができるように双方向であることができる。
【００１８】
[0022]一態様によれば、論理ブロック２０は、以下で説明するように、シリアルデータストリームを復号するための動作を実施するようにプロセッサまたは処理ユニットに命令するように動作可能な１つまたは複数のプログラマブルハードウェア記述言語（ＨＤＬ）符号化ロジックまたは論理コントローラを有するフィールドプログラマブルゲートアレイ（ＦＰＧＡ）であり得る。１つの非限定的な例によれば、ＦＰＧＡは、読出し専用メモリ（ＲＯＭ）のようなメモリ上に存在し、特定の命令を実行する埋込みファームウェアを含み得る。
【００１９】
[0023]別の態様によれば、論理ブロック２０は、より大きいＵＡＲＴモジュールに取り付けられるかまたはそれと通信するマイクロチップまたはマイクロプロセッサであるかまたはそれを含むことができる。別の態様によれば、論理ブロック２０は、ＵＡＲＴモジュールであり得、それに共通する他の構成要素および接続を含み得る。論理ブロック２０が、本明細書の範囲から逸脱することなく、所望の実装形態にしたがって修正されるかまたはより大きなシステムに統合され得ることは理解されるであろう。
【００２０】
[0024]別の態様によれば、論理ブロック２０は、以下で説明するように、シリアルデータストリームを復号するための動作を実装するようにプロセッサまたは処理ユニットに命令するように動作可能な１つまたは複数のＨＤＬ符号化ロジックまたは論理コントローラを有する特定用途向け集積回路（ＡＳＩＣ）の一部を形成し得るか、それであり得るか、またはそれをさらに含み得る。
【００２１】
[0025]別の態様によれば、論理ブロック２０は、２つ以上のブロックまたはチップに分離され、回路基板またはＵＡＲＴモジュールに統合され得る。この態様によれば、ＲＦＤＢマスタ２４およびＲＦＤＢスレーブ２８は、ＲＦＣＢマスタ２２およびＲＦＣＢスレーブ２６とは別個であるが、それらと通信状態にある。
【００２２】
[0026]論理ブロック２０は、論理ブロック２０から離れたロケーションからデータを送受信するように動作可能なトランシーバ２９をさらに含み得る。一態様によれば、トランシーバ２９は、図２に示すように、ＲＦＤＢマスタ２４および／またはＲＦＤＢスレーブ２８に統合され得る。
【００２３】
[0027]図１および図２を参照すると、本開示の汎用非同期送受信機（ＵＡＲＴ）プロトコル（概して参照番号３０として図に示される）の１つの利点は、既存のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）インターフェースに実装可能であることである。したがって、本明細書に示されるＲＦＢインターフェース１０および論理ブロック２０が、当業者によって選択される特定の実装パラメータに対して適合または修正され得ることが理解されるであろう。標準的なＦＰＧＡまたは既知のＵＡＲＴインターフェースが、ＵＡＲＴプロトコル３０とともに使用するために適合され得ることがさらに理解されるであろう。
【００２４】
[0028]図３を参照すると、本ＵＡＲＴプロトコル３０は、論理ブロック２０に送られる、ブロック２０から送られる、または論理ブロック２０におよび論理ブロック２０との間で送られるデータを表す１つまたは複数のデータストリーム３２を利用し得る。このデータストリーム３２は、オーディオデータ、通信データなどを含むがこれらに限定されない任意のデータ伝送を表し得るシリアルストリーム（すなわち、直列チェーン状に並んだビット）であり得る。一態様によれば、データストリーム３２は、一連の２進数として符号化され得、データストリーム３２内の各データビット３４は、単一の２進数、すなわち「０」または「１」を表す。
【００２５】
[0029]したがって、図３に示すように、代表的なデータストリーム３２は、複数のデータビット３４を有し得、スタートビット３６と、１つまたは複数の読取りビット３８と、１つまたは複数の書込みビット４０と、１つまたは複数の中間ビット４２と、１つまたは複数のアドレスビット４４と、１つまたは複数の汎用データビット４６と、１つまたは複数のパリティビット４８とを含み得る。図３にさらに示されるように、ライン（例えば、ラインＡ、Ｂ、またはＣ）がデータストリーム３２の送信にも受信にも使用されていないとき、ラインはアイドル状態に入ることができ、これは５０で示される。ターンアラウンド５２は、以下で説明するように、両方向でのデータの送信を可能にするために、双方向ライン（例えば、ラインＡおよびＢ）に発生し得る。
【００２６】
[0030]一実施形態によれば、ＵＡＲＴプロトコル３０により、ＭＩＤ４２、アドレス４４、汎用データビット４６、パリティビット４８、およびターンアラウンド５２は、パラメータ化されて、ＵＡＲＴプロトコル３０内で設定可能となり得る。一態様によれば、デフォルト幅が設定され得、ここで、ＭＩＤビット４２の幅は５に等しく、アドレスビット４４の幅は２６に等しく、汎用データビット４６の幅は１６に等しく、パリティビット４８の幅は７に等しい。当業者は、これらのパラメータまたはＵＡＲＴプロトコル３０内の他のパラメータのための所望の実装にしたがって同様のデフォルト値を確立および／または選択することができる。一態様によれば、ターンアラウンド５２のウィンドウおよび転送分離長もまた、ＵＡＲＴプロトコル３０内で設定可能であり得る。
【００２７】
[0031]図３に示されるように、データのストリームがシステムを通して送信されているとき、データストリーム３２は、物理ケーブルが使用中であることを示すために実線で示される。点線は、ラインが一方向通信に使用されており、ターンアラウンド５２によりデータ伝送方向の変更を可能になるまで第２の通信が保留中または待機中（holding）である状態を表す。したがって、図３に示すように、一番上のライン「Ａ」は、ＲＦＤＢマスタ２４によるＲＦＤＢスレーブ２８への書込みなど、第１の方向に送信されているデータストリームを表し、ライン「Ｂ」は、同じケーブルを使用した双方向データ伝送を表し、ここにおいて、上部は、第１の方向に送られているデータを示し、下部は、第２の方向に送られているデータを示す。第１のターンアラウンド５２（図３では５２ａとして示される）は、ライン「Ｂ」が第２のデータ伝送に変わることができるデータ伝送の中断を表し、第２のターンアラウンド５２（５２ｂとして示される）は、方向が元の状態に戻ることができるポイントを示すことができる。したがって、ライン「Ｂ」は、ＲＦＤＢマスタ２４によるＲＦＤＢスレーブ２８からの読取りのような双方向パターンでのデータ伝送に利用されている単一のラインを示す。この態様によれば、ライン「Ａ」および「Ｂ」は、単一のケーブルまたは接続を利用する。ライン「Ｃ」は、ＲＦＣＢマスタ２２によるＲＦＣＢスレーブ２６への書込みのような、単方向データ伝送だけに使用されるケーブルを例示する。
【００２８】
[0032]ＵＡＲＴプロトコル３０は、双方向通信にケーブル線を利用する半二重システムにおいて設計される。半二重システム内で同時双方向通信を利用することは、システムの過熱および物理的劣化を引き起こし得ることが知られている。したがって、ＵＡＲＴプロトコル３０が、標準的な非同期シリアルプロトコルと同様に、両方向に同時にデータを送ることを回避するためにターンアラウンド５２を使用し得ることは理解されるであろう。
【００２９】
[0033]このように本ＵＡＲＴプロトコルの実装形態を説明してきたが、ここからはその動作および利点について説明する。
【００３０】
[0034]データストリーム３２のようなシリアルデータストリームは、一般に、各ビットが単一の２進数、具体的には０または１を表す一連のビットを伴う。古典的なまたは従来のＵＡＲＴでは、受信機は、入ってくるシリアルベータストリームの出現に関して、データケーブルまたはデータ接続を監視している。典型的には、これらの受信機は、連続する０の文字列を監視する低電力モード、または連続する１の文字列を監視する高電力モードのいずれかで動作する。両方のモードおよび連続する数字の関連する文字列は、典型的には、送信されているデータがないことを表す。
【００３１】
[0035]本明細書でさらに使用されるように、明確にするために、ＵＡＲＴプロトコル３０は、データが送られていないアイドル５０の期間の間に低電力モードで動作することができる。したがって、本明細書でさらに説明される例および構成は、低電力のアイドル５０状態を仮定するが、当業者であれば、ＵＡＲＴプロトコル３０を高電力のアイドル５０状態での使用に容易に適合させることができることは理解されるであろう。
【００３２】
[0036]したがって、図４を参照すると、データストリーム３２がトランシーバ２９のような受信機に送られるとき、受信機は、データストリームのスタートビット３６を検出するであろう。典型的には、スタートビット３６は、連続した０から１へのライン状態の変化を表す「立ち上がりエッジ」５４として知られているものによって検出される。ビットペア（以下でさらに説明される）として見ると、立ち上がりエッジ５４の２進数値は「０１」であり、第１の桁は第１のビット（すなわち、アイドル状態の最後のビット）を表し、第２の桁はスタートビット３６を表す。
【００３３】
[0037]従来のＵＡＲＴでは、スタートビット３６が検出されるとすぐに、データストリーム３２送信の持続時間の間に一連のサンプル点が設定される。これらのサンプル点は、従来のＵＡＲＴプロトコルの一部として予め定義されたビット幅パラメータにしたがって設定される。例えば、８に設定されたデータビット３４の幅を有するシリアルデータストリーム３２は、スタートビット３６から始まり、合計で８つのクロックに延びるその幅に基づいたサンプリング点を有するであろう。このビット幅は一般に１ビット時間と見なされる。
【００３４】
[0038]従来のシステムでは、第１のサンプリング点は、立ち上がりエッジ５４から１ビット時間の半分後にあるであろう。したがって、第１のサンプリング点は、スタートビット３６の立ち上がりエッジ５４から４クロック後にあり、後続の各サンプリング点は、そこからフルビット時間（８つのクロック）だけオフセットされるであろう。理論的には、これは、各データビット３４のサンプリング点をデータビット３４の中間内に置く。
【００３５】
[0039]次いで、従来のシステムは、個々のデータビット３４が０であるか１であるかを決定するために、これらの事前設定されたサンプル点の各々においてシリアルデータストリーム３２をサンプリングする。次に、サンプリングは、データストリーム３２が停止するまで、１サンプルあたり１ビット時間の間隔で続けられ、次に、ラインはアイドル５０状態に戻る。
【００３６】
[0040]シリアルデータストリーム３２のビット時間が予想ビット時間パラメータに正確に一致し、システム内にノイズが存在しないシステムとして定義される完全なシステムでは、従来のプロトコルは、データストリーム３２を確実に検出および受信し、その中に符号化された適切なバイナリシーケンスを正確に決定することができるはずである。
【００３７】
[0041]しかしながら、実際には、従来のプロトコルを使用してデータストリーム３２をサンプリングすることは、実際にデータにエラーを引き起こし得る。これは、システム内のノイズは、データストリーム３２の実際のビット時間とデータストリーム３２の予想ビット時間との間の不一致またはばらつき（variation）と相まって、ミスアライメント（misalignment）を引き起こし得、結果としてシステム内にドリフトが発生するため、長いデータストリーム３２において特に問題である。
【００３８】
[0042]従来のプロトコルでは、エラーの一般的な原因には、誤りスタートビット３６をもたらすノイズグリッチ、ドリフト、および予想ビット幅と実際のビット幅との間のミスアライメントが含まれる。ノイズグリッチが誤りスタートビット３６をもたらしても、依然として従来のプロトコルはサンプリング点を設定し、シリアルデータストリームとアラインしない可能性が高いこれらの不適切に設定されたサンプル点に基づいてバイナリシーケンスを決定しようとする。誤りサンプル点によるものであろうと、ドリフトによるものであろうと、予想ビット幅と実際のビット幅との差に基づいたミスアライメントによるものであろうと、データストリームがミスアラインされている場合、データストリーム３２全体は、受信および復号されるときに使用不能および／または読取り不能であり得る。
【００３９】
[0043]サンプリング点がノイズグリッチとアラインし、その結果、サンプル点が示すシリアルデータストリーム中の１または０が、実際にビットが符号化するものとは反対となるとき、データストリーム３２中であろうと伝送回線中であろうと、伝送中のノイズは、エラーをさらに引き起こし得る。これもデータを使用不能にする可能性がある。
【００４０】
[0044]したがって、ＵＡＲＴプロトコル３０は、エラーを低減し、プロトコル３０の信頼性を高めるように各データビット３４のバイナリ値を決定するために、従来のサンプリング方法の代わりにパターンマッチング方法を利用し得る。具体的には、シリアルデータストリーム３２が一連の０または１を符号化することを認識した上で、ＵＡＲＴプロトコル３０は、データストリーム３２の全長にわたるデータビット３４のすべての２ビットペア５６を既知の２ビットペア５６パターンと比較して、各データビット３４について最も可能性の高い値を決定することによって、データストリーム３２を評価することができる。
【００４１】
[0045]各ビットが最大で２つの値、すなわち０または１を有し得るため、各２ビットペア５６は、次の４つのパターンのうちの１つに必ず分類される：第１のビットが０であり、第２のビットが１である「０１」パターン、すなわち立ち上がりエッジ５４パターン；第１のビットが１であり、第２のビットが０である「１０」パターン、別名立ち下がりエッジパターンとして知られている；両方のビットが１である「１１」パターン、別名連続１（constant 1）として知られている；または両方のビットが０を表す「００」パターン、別名連続０（constant 0）パターンとして知られる。
【００４２】
[0046]各２ビットペア５６について４つの可能な一致すべてを導出するために２つの比較だけが行われる必要があることは認識されるであろう。具体的には、各ビットに２つの可能なデータ値だけを有するということから、各々が２つのパターンを含む２つのパターングループが生成される。第１のパターングループは立ち上がりエッジおよび立ち下がりエッジを含み、第２のパターングループは連続０および連続１を含み得る。したがって、比較を行う必要があるのは、本明細書ではコンパレータとも呼ばれる各グループの一方のパターンだけに対してであり、これは、各グループ内のもう一方のパターンがこの比較パターンの逆と認識されるためである。例えば、立ち上がりエッジ５４パターン「０１」が第１のグループから第１のコンパレータとして選択された場合、データストリーム３２中の立ち下がりエッジパターン「１０」は比較の逆となるであろう。したがって、立ち上がりエッジ５４に対する１００％一致は、立ち下がりエッジに対する０％一致を表すことになり、逆もまた同様である。同様に、もう一方のビットパターングループの場合、連続１のコンパレータに対する１００％一致は、連続０に対する０％一致を表すことになり、逆もまた同様である。したがって、シリアルデータ中の各ビットペアを導出するために行う必要のある比較は、各パターングループからの１つのコンパレータに対してだけである。
【００４３】
[0047]引き続き図４を参照すると、ＵＡＲＴプロトコル３０は、このパターンマッチング方法を利用して、以下の方法にしたがって動作することができる。最初に、トランシーバ２９は、データストリーム３２の開始を表すスタートビット３６の立ち上がりエッジ５４を検出することができる。スタートビット３６が検出されると、ＵＡＲＴプロトコル３０は、データストリーム３２を検出し、その同じデータストリーム３２を復号することに専念する。データストリーム３２の復号することは、データビット３４の各々をそれらの２進数に変換するプロセスである。
【００４４】
[0048]従来のプロトコルとは異なり、スタートビット３６の検出は、サンプリング点のすべてを事前設定または事前決定するわけではない。代わりに、パターンマッチングウィンドウ５８として知られるものにおいてパターン比較を連続して行って、データストリーム３２中のデータビット３４が測定され得る。
【００４５】
[0049]図４に見られるように、パターンマッチングウィンドウ５８は、各２ビットペア５６についての考慮から最初のクロック６０および最後のクロック６０を除去する。これは、各データビット３４に対して常に１クロック不確定性（one clock uncertainty）が存在することがシリアルデータストリーム３２に固有であるためである。１ビットあたり８つのサンプルを利用することにより、各２ビットペア５６を表す１４個のクロック６０のパターンマッチングウィンドウ５８が得られる。図４に示すように、白抜き矢印はパターンマッチングウィンドウ５８外のクロック６０を表し、実線矢印はパターンマッチングウィンドウ５８内のクロック６０を表す。
【００４６】
[0050]従来のプロトコルと同様に、予想ビット時間は、次のデータビット３４を予測するために使用され得るが、ＵＡＲＴプロトコル３０は、従来のプロトコルとは異なり、各２ビットペア５６を２つのコンパレータパターンと連続して比較するために、パターンマッチングウィンドウ５８を２つのクロック６０だけシフトすることができる。各２ビットペア５６がトランシーバ２９によって受信されると、ＵＡＲＴプロトコル３０は、各ペア５６を連続してサンプリングすることができ、特定のバイナリ結果を示すサンプルの数を予想サンプルの数と比較し、それを事前設定されたしきい値と比較することによって、各ビットの一致率を算出することができる。１つの非限定的な例によれば、１４個のサンプルのパターンマッチングウィンドウ５８を使用すると、完全な一致とは、第１のビット３４の最初の７つのサンプルが同じ２進数を示し、次の７つのサンプルが同じ２進数を示すことであり得る。例えば、第１ビット３４が０であることを最初の７つのサンプルが示し、第２ビット３４が１であることを次の７つのサンプルが示す場合、これは立ち上がりエッジ５４パターン「０１」に対する完全な一致を表す。反対が真であった場合、すなわち、最初の７つが１を示し、次の７つが０を示した場合、これは立ち上がりエッジに対する０％一致レベルとなり得るが、逆の立ち下がりエッジパターン「１０」に対する完全な一致となり得る。
【００４７】
[0051]この例によれば、最初の７つのサンプルが０を示し、次の７つが１を示す場合、それは、連続コンパレータ、例えば連続０または連続１に対する５０％一致レベルにすぎないであろう。したがって、立ち上がりエッジ５４パターンに対する１００％一致レベルは、連続パターンに対する５０％一致レベルよりも可能性が高いため、立ち上がりエッジ５４パターンは、正しい可能性が最も高いものとして選択される。
【００４８】
[0052]スタートビット３６の検出は、設定可能な一致しきい値と組み合わせて（coupled with）、コンパレータ一致方法を利用して立ち上がりエッジ５４パターンを一致させることによって達成され得る。一態様によれば、一致しきい値は７５％一致であり得るが、設定可能性により、所望の実装形態にしたがって、スタートビット３６に他のしきい値を使用することができる。
【００４９】
[0053]一態様によれば、一致しきい値を満たすかまたは超えるスタートビット３６一致だけが、スタートビット３６が検出されたことを示し得る。
【００５０】
[0054]一実施形態によれば、データストリーム３２内の後続のデータビット３４を定量化するために、別個の一致しきい値が使用され得る。別の実施形態によれば、後続のデータビット３４は、「最も可能性の高い」一致にしたがって識別され得、このデータビットには、コンパレータと２ビットペア５６との間の最も高い一致率に基づいてバイナリ値が割り当てられる。
【００５１】
[0055]パターンマッチングウィンドウ５８は、次の２ビットペア５６にシフトされ得、同様の比較が行われ得る。一態様によれば、次の２ビットペア５６は、前のペア５６の第２のデータビット３４を含み得るため、前の結果のチェックを提供し、パターンマッチング方法の精度をさらに高める。例えば、この態様によれば、最初の２ビットペアはビットｂ１−ｂ２であり得、次のペア５６はｂ２−ｂ３であり得、次はｂ３−ｂ４であり得、以下同様である。
【００５２】
[0056]別の態様によれば、次の２ビットペア５６は、評価されていない次のシーケンシャルな２ビットペア５６を含み得る。例えば、この態様によれば、最初の２ビットペア５６はビットｂ１−ｂ２であり得、後続の２ビットペア５６はビットｂ３−ｂ４であり得、以下同様である。
【００５３】
[0057]ＵＡＲＴプロトコル３０の精度および信頼性を高めることに加えて、データストリーム３２の各２ビットペア５６を評価するためのパターンマッチングウィンドウの使用は、エッジ６２が予期されるエッジ位置にアラインするかどうかを決定するために、ストリーム３２中の各データビット３４の予期されるエッジの比較を可能にする。エッジ６２が適切にアラインされている場合、ＵＡＲＴプロトコル３０は、次の２ビットペア５６を評価し続けることができる。エッジ６２が予期されるエッジ位置とアラインされていない場合、パターンマッチングウィンドウ５８は、クロック６０を実際のデータストリーム３２とアラインさせるために、ミスアラインされた各ビットエッジ６２において１クロック値だけ前方または後方に調整され得、これによりドリフトを低減または除去する。非限定的な一例として、出現すると予想される１クロック６０前にエッジ６２がデータストリーム３２に出現する場合、次に予期されるエッジが１クロック６０早くなるように、パターンマッチングウィンドウ５８が１クロック６０後方に調整され得る。サンプリング点は設定されてしまうと変更できないため、従来のプロトコルでは、典型的に、そのような調節はできない。
【００５４】
[0058]一実施形態によれば、ランレングス制限（ＲＬＬ）変換は、同じ値を有する連続するビットの数を制限するためにデータストリーム３２に適用され得る。非限定的な一例として、０または１の連続する数を最大３に制限するＲＬＬ変換が適用され得る。ＲＬＬ変換の使用は、最大間隔でデータストリーム３２内の検出可能なエッジ６２を保証し、したがって、前方または後方へのパターンマッチングウィンドウ５８の調整をさらに容易にして、クロック６０をデータストリーム３２と再度アラインさせる。ＲＬＬ変換とパターンマッチングウィンドウ５８を前方または後方に調整する能力との組合せは、データストリーム３２とクロック６０との間の同期を失うリスクを冒さずに、シリアルデータストリーム３２が無制限の長さを有することをさらに可能にし得る、よりロバストなタイミングシステムをもたらすことができる。
【００５５】
[0059]各２ビットペア５６が評価されて、２進数が割り当てられ、データストリーム３２が送信されなくなると、プロセスは完了し、ラインはアイドル５０状態に戻り、次のデータストリーム３２の受信を待つことができる。
【００５６】
[0060]一実施形態によれば、ＵＡＲＴプロトコル３０は、各データビット３４が、１クロック６０あたり２回、具体的にはサンプルレートを２倍にし得る各エッジ６２上でサンプリングされるダブルデータレート（ＤＤＲ）サンプリング方法を利用し得る。次に、これにより、ＵＡＲＴプロトコル３０を、クロック速度が制限された古いシステムでの動作に適合させることができる。一態様によれば、ＵＡＲＴプロトコル３０は、４００ＭＨｚクロックで実装され得る。別の態様によれば、ＤＤＲを利用するＵＡＲＴプロトコル３０は、２００ＭＨｚクロックで実装され得る。
【００５７】
[0061]別の実施形態によれば、ＵＡＲＴプロトコル３０はさらに、データストリーム３２伝送の寿命にわたって一致レベルの蓄積を可能にし得る。この態様によれば、検出されたデータストリーム３２の信頼性性能指数（reliability figure of merit）を作り出すために、すべての２ビットペア５６の一致レベルが累積および記憶され得る。非限定的な例として、すべての２ビットペア５６についてのしきい値一致レベルを上回る一致率が記憶され得、すべての一致レベルの和をビット３４の総数で割ることによって総合的な平均一致レベルが算出され得る。この平均一致レベルは、信頼性性能指数として使用され得、信頼度で、すなわち「このデータストリーム３２はＮ％の信頼度で検出されたものである」で表され得、ここでＮは、平均一致レベルに等しい。
【００５８】
[0062]図５を参照すると、ＵＡＲＴプロトコル３０と比較された従来のプロトコルの例示が示されており、一番上のラインはシリアルデータストリーム３２を表し、ここで、下位レベルがビット値０を示し、上位レベルがビット値１を示し、垂直線が０から１へのデータストリーム３２の変化（立ち上がりエッジ５４）またはその逆（立ち下がりエッジ６４）を表す。データストリーム３２は、左から右に示されている。
【００５９】
[0063]データストリーム３２の下にある各矢印が単一のクロック６０を表し、「Ｖ」とマークされた矢印がスタートビット３６の立ち上がりエッジ５４を表す。図５は、ビット幅が８であると仮定しており、したがって、各データビット３４は、スタートビット３６から開始して８つのクロック６０の幅である（最終ビット３４の一部は省略されているが、８番目のクロック６０まで延びていると仮定される）。立ち上がりエッジ５４の左側の連続した０は、アイドル５０状態のラインを表す。
【００６０】
[0064]従来のプロトコルは、最初にクロックＶでスタートビット３６を検出し、次いで、８という予想ビット幅に基づいてサンプリング点を設定していた。これらの後続のサンプリング点の各々は、それぞれＷ、Ｘ、Ｙ、およびＺとマークされている。立ち上がりエッジ５４の後の第１のサンプリング点Ｗは、サンプリング点Ｖからビット幅の半分、すなわち４つのクロック６０後に設定され、点Ｘ、Ｙ、およびＺはそれぞれ、各々の前のサンプリング点から１ビット幅だけ離れている。
【００６１】
[0065]次いで、従来のプロトコルは、各サンプリング点においてデータストリームをサンプリングまたは検査して、それに関連するビットがバイナリ０を符号化するかバイナリ１を符号化するかを決定していた。従来のプロトコルは、サンプリング点Ｗにおいて値１を、点Ｘにおいて値０を、点Ｚにおいて値１を正しく割り当てていた。しかしながら、従来のプロトコルは、サンプリング点Ｙにおいて、そのビット３４と整列した８つのクロック６０のうちの７つが値０を示すという事実にもかかわらず、値１を割り当てていた。従来のプロトコルは、ノイズグリッチがサンプリング点Ｙとアラインして、誤った読取り値を与えるという事実により、値１を割り当てる。したがって、示される４ビットデータストリームには、バイナリシーケンス「１０１１」が割り当てられていた。
【００６２】
[0066]これをＵＡＲＴプロトコル３０と対比させたものが、一連のクロックの下の水平線によって示されている。各ラインは、１４個のクロック６０を含む（前述したように、各ビット３４から１クロック不確定性を省略する）、２ビットの幅に延びるパターンマッチングウィンドウ５８を表す。６６で示されるラインの上側セットは、第１のコンパレータ値と一致するパターンを表し、ラインの下側セット６８は、第２のコンパレータと一致するパターンを表す。図５で使用されるように、第１のコンパレータは、立ち上がりエッジ５４パターン「０１」であり、第２のコンパレータは、連続１パターン「１１」である。さらに、図５で使用されるように、使用されている最小一致しきい値は７５％である。
【００６３】
[0067]データストリーム３２がＵＡＲＴプロトコル３０によって評価されるとき、パターンマッチングウィンドウ５８は、すべてのクロックにおいて２つのサンプルを与えるＤＤＲサンプリングに起因して２つのクロック６０ごとに（every two clocks 60）サンプリングすることができ、検出されたパターンをコンパレータと比較し、各ウィンドウに値を割り当てることができる。図５で使用されるように、パターンマッチングウィンドウ５８の上側セット６６内の正の数は、立ち上がりエッジ５４パターン「０１」に対する一致を表し、上側セット６６内の負の数は、逆一致（すなわち、立ち下がりエッジ６４パターン「１０」に対する一致）を表す。同様に、下側セット６８における正の数は、連続１パターンに対する一致を表し、負の数は、逆の連続０パターンに対する一致を表す。
【００６４】
[0068]パターンマッチングウィンドウ５８内の実線は、これらのパターンマッチングウィンドウ５８がデータストリーム３２内のビット３４の予期されるエッジ６２とアラインされるため、対象のパターンマッチングウィンドウ５８を表す。二点鎖線は、ビット３４の予期されるエッジ６２の左または右のサンプルを表す。ラインの区別とその関連性については後述する。
【００６５】
[0069]次に、スタートビット３６の立ち上がりエッジ５４とアラインされている、対象の第１のパターンマッチングウィンドウ５８から開始して、そこでは、立ち上がりエッジ５４パターンに対する（＋１４）一致として値が示されている。これは、立ち上がりエッジ５４のスタートビット３６の直前のサンプルが値０を有し、立ち上がりエッジ５４のスタートビット３６に続くサンプルが値１を有すること、したがって立ち上がりエッジ５４パターン「０１」に対する１００％一致を提供することを示している。ＤＤＲサンプリングにより、サンプルは、立ち上がりエッジ５４の左右にある３つのクロックおよび立ち上がりエッジ５４自体とアラインされているクロック６０の各々について１クロックあたり２つのサンプルを表しており、合計で７つのクロックでそれぞれ２回サンプリングされるため、合計で１４個のサンプルとなる。データストリーム３２はこの瞬間まで存在しなかったので、第２のコンパレータとの比較はまだ行われておらず、したがって、この時点では、スタートビット３６に関連する立ち上がりエッジ５４パターンだけが対象である。したがって、パターンマッチング方法は、アイドル５０状態に値０を、スタートビット３６に値１を正しく割り当てるであろう。
【００６６】
[0070]スタートビット３６が検出されるので、ＵＡＲＴプロトコル３０は、設定可能であるが既知の数のデータビット３４の後にデータストリーム３２が停止するまでパターンマッチング方法を継続する。一態様によれば、データストリーム３２は、データストリーム３２が完了したことを示すストップビットを含み得る。そのようなストップビットが存在する場合、ＵＡＲＴプロトコル３０は、ストップビットが検出されるまで、本明細書のパターンマッチング方法を使用してデータストリーム３０を評価し続ける。検出されると、ＵＡＲＴプロトコル３０は停止し、ラインはアイドル５０状態に戻るであろう。
【００６７】
[0071]したがって、スタートビット３６が検出されると、図５は、スタートビット３６の予期されるエッジとアラインされた対象の次のパターンマッチングウィンドウ５８が、上側セット６６において一致値（−１４）を有することを示し、これは、立ち上がりエッジ５４パターンに対する０％一致ではあるが、逆の立ち下がりエッジ６４パターン「１０」に対する１００％一致を示す。下側セット６８における第２のコンパレータとの対応する比較では、ゼロの結果を示しており、これは、いずれかの連続パターン、すなわち「００」または「１１」、に対する５０％一致を示す。このパターンマッチングウィンドウ５８は、スタートビット３６である、２ビットペア５６の第１のビット３４が値１を有し、第２のビットが値０を有することを定める。これをデータストリーム３２のラインの描写と比較すると、スタートビット３６が値１を有し、次のビット３４が値０を有していることから、これが正しいことが分かる。
【００６８】
[0072]対象の第３のパターンマッチングウィンドウ５８では、上側セット６６において（＋２）値が与えられ、第１のコンパレータに対する１４％一致を示し、下側セット６８において対応する（−１２）値が与えられ、第２のコンパレータの逆に対する８５％一致を示す。第２のコンパレータに対する８５％一致が第１のコンパレータに対する１４％一致を超えると、２ビットペア５６に値「００」が割り当てられる。（＋２）および（−１２）は、１４個のサンプルのうちの２つがコンパレータパターンに一致しないことを示し、これはノイズグリッチによるものであるが、一致率は２ビットペア５６が「００」である可能性が最も高いことを示しているため、ノイズグリッチは適切に無視され、値が割り当てられる。
【００６９】
[0073]対象の最終パターンマッチングウィンドウ５８では、立ち上がりエッジ５４パターン「０１」に対しては（＋１０）一致が、連続１パターンに対しては（−４）一致が与えられ、「０１」である可能性を最も高くする。この場合もまた、ノイズグリッチが考慮されるが、より可能性の高い結果によって無視され、これもまた、データストリーム３２ラインを見たときに目で見て確認することができる（pass the eye-test）。
【００７０】
[0074]次に、ＵＡＲＴプロトコル３０は、図５のデータストリーム３２の４ビット３４に、実際のデータストリーム３２により厳密に一致するバイナリシーケンス「１００１」を割り当てるため、第３のビットにおいてノイズグリッチによって引き起こされるエラーを除去する。
【００７１】
[0075]さらに、図５の例に示すように、対象のパターンマッチングウィンドウ５８の各々は、極大値、すなわち最も高い一致値が、対象のウィンドウ５８内に入るように、データビット３４の実際のエッジとアラインする。より高い一致値が、対象のパターンマッチングウィンドウ５８の左または右のパターンマッチングウィンドウ５８に現れた場合、それは、実際のエッジ６２がその特定のデータビット３４の予期されるエッジとアラインしていないことを示し、したがって、予期されるエッジは、早い（極大値が対象のパターンマッチングウィンドウ５８の後に来る）かまたは遅い（極大値が対象のパターンマッチングウィンドウ５８の前に来る）かのいずれかである。ＵＡＲＴプロトコル３０は、対象のパターンマッチングウィンドウ５８が、このミスアライメントを考慮するために１クロック前方または後方にシフトすることを可能にする。より長いデータストリーム３２では、予期されるエッジが実際のエッジ６２とアラインしない度に、パターンマッチングウィンドウ５８が調整され得るため、ドリフトが大幅に低減され、および／または完全に除去される。従来のプロトコルでは、そのようなエッジアライメント調整が可能ではなく、時間の経過とともに、特により長いデータストリーム３２において、ドリフトが問題となり得る。
【００７２】
[0076]図５の簡略化された例では、シーケンスが「１００１」であるべきときにシーケンス「１０１１」をもたらす単一のノイズグリッチは、パリティビット４８によっておよび／またはハミングによって訂正可能である可能性が高く、これは、他の選択肢が１つ、すなわち１の代わりに０、しかないため、誤って報告された一桁の数字を変更することができるためである。より長いデータストリーム３２では、正しくない値に対して考えられる選択肢が１つしかないので、単一のエラーも同様に訂正可能である。２つのエラーが存在する場合、データストリームは、訂正不可能であると識別される。第３のエラーが現れた場合、データストリームは、訂正不可能となり、信頼性もない。したがって、３つのエラーだけでデータストリームが使えなくなってしまうため、エラーの低減および／または除去は重要である。
【００７３】
[0077]本明細書では８倍オーバーサンプルを使用して説明および例示されているが、プロトコル３０が、所望の適用例にしたがって任意のサンプリングレートおよび／またはビットレートを使用する実装形態に適している可能性があることは理解されるであろう。一態様によれば、オーバーサンプリングレートは、１０倍、１２倍、１６倍、または当業者によって選択される任意の他のオーバーサンプリングレートであり得る。別の態様によれば、オーバーサンプリングレートは、プロトコル３０内で設定可能であり得る。
【００７４】
[0078]様々な発明概念は、１つまたは複数の方法として具現化され得、その例が提供されている。方法の一部として実行される動作は、任意の適切な方法で順序付けられ得る。したがって、実例となる実施形態では連続的な動作として示されているが、いくつかの動作を同時に実行することを含み得る、例示されたものとは異なる順序で動作が実行される実施形態が構築され得る。
【００７５】
[0079]本明細書では様々な発明の実施形態を説明および例示してきたが、当業者であれば、機能を実行するため、ならびに／あるいは、本明細書で説明した結果および／または利点のうちの１つまたは複数を得るための様々な他の手段および／または構造を容易に想定し、そのような変形および／または修正の各々は、本明細書で説明した発明の実施形態の範囲内にあると見なされる。より一般的には、当業者は、本明細書で説明したすべてのパラメータ、寸法、材料、および構成が例示的であることを意味すること、ならびに実際のパラメータ、寸法、材料、および／または構成が、本発明の教示が使用される１つまたは複数の特定の用途に依存することを容易に認識するであろう。当業者は、本明細書で説明した特定の本発明の実施形態に対する多くの同等物を認識することとなるか、または日常的な実験だけを使用してそれを確認することができる。したがって、前述の実施形態は、例としてのみ提示されること、ならびに、添付の特許請求の範囲およびその同等物の範囲内で、本発明の実施形態が、具体的に説明および請求されるものとは別様に実施され得ることを理解されるべきである。本開示の発明の実施形態は、本明細書で説明した個々の特徴、システム、物品、材料、キット、および／または方法を対象とする。加えて、２つ以上のそのような特徴、システム、物品、材料、キット、および／または方法の任意の組合せは、そのような特徴、システム、物品、材料、キット、および／または方法が相互に矛盾しない場合、本開示の発明範囲内に含まれる。
【００７６】
[0080]上述の実施形態は、多数の方法のいずれかで実装され得る。例えば、本明細書に開示される技術の実施形態は、ハードウェア、ソフトウェア、またはそれらの組合せを使用して実装され得る。ソフトウェアで実装されるとき、ソフトウェアコードまたは命令は、単一のコンピュータ内に提供されるか、複数のコンピュータ間で分散されるかにかかわらず、任意の適切なプロセッサまたはプロセッサの集合上で実行され得る。さらに、命令またはソフトウェアコードは、少なくとも１つの非一時的なコンピュータ読取可能な記憶媒体に記憶され得る。
【００７７】
[0081]また、プロセッサを介してソフトウェアコードまたは命令を実行するために利用されるコンピュータまたはスマートフォンは、１つまたは複数の入力および出力デバイスを有し得る。これらのデバイスは、とりわけ、ユーザインターフェースを提示するために使用され得る。ユーザインターフェースを提供するために使用され得る出力デバイスの例には、出力の視覚的提示のためのプリンタまたはディスプレイスクリーンと、出力の可聴的提示のためのスピーカまたは他のサウンド発生デバイスとが含まれる。ユーザインターフェースに使用され得る入力デバイスの例には、キーボードと、マウスのようなポインティングデバイスと、タッチパッドと、デジタイジングタブレットとが含まれる。別の例として、コンピュータは、音声認識を通じてまたは他の可聴形式で入力情報を受け取ることができる。
【００７８】
[0082]そのようなコンピュータまたはスマートフォンは、企業ネットワークのようなローカルエリアネットワークまたはワイドエリアネットワーク、およびインテリジェントネットワーク（ＩＮ）またはインターネットを含む、任意の適切な形態の１つまたは複数のネットワークによって相互接続され得る。そのようなネットワークは、任意の適切な技術に基づき得、任意の適切なプロトコルにしたがって動作し得、ワイヤレスネットワーク、ワイヤードネットワーク、または光ファイバネットワークを含み得る。
【００７９】
[0083]本明細書で概説した様々な方法またはプロセスは、様々なオペレーティングシステムまたはプラットフォームのうちのいずれか１つを用いる１つまたは複数のプロセッサ上で実行可能なソフトウェア／命令としてコーディングされ得る。追加的に、そのようなソフトウェアは、いくつかの適切なプログラミング言語のうちの任意のものおよび／またはプログラミングツールもしくはスクリプティングツールを使用して書かれ得、フレームワークまたは仮想マシン上で実行される実行可能機械言語コードまたは中間コードとしてコンパイルされ得る。
【００８０】
[0084]この点に関して、様々な発明概念は、１つまたは複数のコンピュータまたは他のプロセッサ上で実行されたときに、上述した本開示の様々な実施形態を実装する方法を実行する１つまたは複数のプログラムで符号化された１つのコンピュータ読取可能な記憶媒体（または複数のコンピュータ読取可能な記憶媒体）（例えば、コンピュータメモリ、１つまたは複数のフロッピー（登録商標）ディスク、コンパクトディスク、光ディスク、磁気テープ、フラッシュメモリ、ＵＳＢフラッシュドライブ、ＳＤカード、フィールドプログラマブルゲートアレイもしくは他の半導体デバイス内の回路構成、または他の非一時的な媒体もしくは有形のコンピュータ記憶媒体）として具現化され得る。１つまたは複数のコンピュータ読取可能な媒体は移送可能であり得、それによって、それに記憶された１つまたは複数のプログラムを、上述した本開示の様々な態様を実装するために１つまたは複数の異なるコンピュータまたは他のプロセッサにロードすることができる。
【００８１】
[0085]「プログラム」または「ソフトウェア」または「命令」という用語は、本明細書では、上述した実施形態の様々な態様を実装するためにコンピュータまたは他のプロセッサをプログラムするのに用いられ得る任意のタイプのコンピュータコードまたはコンピュータ実行可能命令のセットを指すために一般的な意味で使用される。追加的に、一態様にしたがって、実行されたときに本開示の方法を実行する１つまたは複数のコンピュータプログラムは、単一のコンピュータまたはプロセッサ上に存在する必要はなく、本開示の様々な態様を実装するためにいくつかの異なるコンピュータまたはプロセッサ間にモジュール方式で分散され得ることは認識されるべきである。
【００８２】
[0086]コンピュータ実行可能命令は、１つまたは複数のコンピュータまたは他のデバイスによって実行されるプログラムモジュールのような多くの形態であり得る。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。典型的には、プログラムモジュールの機能性は、様々な実施形態において所望されるように組み合わされるかまたは分散され得る。
【００８３】
[0087]また、データ構造は、任意の適切な形態でコンピュータ読取可能な媒体に記憶され得る。説明を簡単にするために、データ構造は、データ構造内のロケーションを通して、関係しているフィールドを有するように示され得る。そのような関係は、同様に、フィールド間の関係を伝達するコンピュータ読取可能な媒体内のロケーションをフィールドのためのストレージに割り当てることによって達成され得る。しかしながら、ポインタ、タグ、またはデータ要素間の関係を確立する他の機構を使用することを含む、任意の適切な機構を使用して、データ構造のフィールド内の情報間の関係を確立することができる。
【００８４】
[0088]本明細書で定義され使用されるすべての定義は、辞書の定義、参照により組み込まれる文書における定義、および／または定義された用語の通常の意味に勝る（control over）と理解されるべきである。
【００８５】
[0089]本明細書で使用される場合、「ロジック」は、機能（複数を含む）もしくはアクション（複数を含む）を実行するため、ならびに／または、別のロジック、方法、および／またはシステムからの機能もしくはアクションを引き起こすための、ハードウェア、ファームウェア、ソフトウェア、および／または各々の組合せを含むがそれらに限定されるわけではない。例えば、所望の用途または必要性に基づいて、ロジックは、ソフトウェア制御マイクロプロセッサ、プロセッサ（例えば、マイクロプロセッサ）のようなディスクリートロジック、特定用途向け集積回路（ＡＳＩＣ）、プログラムされた論理デバイス、命令を含むメモリデバイス、メモリを有する電気デバイスなどを含み得る。ロジックは、１つまたは複数のゲート、ゲートの組合せ、または他の回路構成要素を含み得る。ロジックはまた、ソフトウェアとして完全に具現化され得る。複数のロジックが説明される場合、複数のロジックを１つの物理的ロジックに組み込むことが可能であり得る。同様に、単一のロジックが説明される場合、その単一のロジックを複数の物理的ロジック間で分散させることが可能であり得る。
【００８６】
[0090]さらに、本システムの様々な方法を達成するために本明細書で提示されるロジック（複数を含む）は、以前のアナログバージョンを有していない可能性がある既存のコンピュータ中心またはインターネット中心の技術の改善に向けられ得る。ロジック（複数を含む）は、本明細書で識別したいくつかの問題に対処し解決する構造に直接関係する特定の機能性を提供し得る。ロジック（複数を含む）はまた、方法およびシステムの特定の論理構造および調和した機能性として例示的な発明概念を提供することによって、これらの問題を解決するために有意により多くの利点を提供し得る。さらに、ロジック（複数を含む）は、既存の技術的プロセスを改良する特定のコンピュータ実装ルールを提供し得る。本明細書で提供されるロジック（複数を含む）は、単にデータを収集し、情報を分析し、結果を表示することを超えて拡張される。さらに、本開示の一部または全部は、本明細書に記載されるような機器または構成要素の特定の配列から導出される基礎にある均等化（equation）に依拠し得る。したがって、構成要素の特定の配列に関係している本開示の部分は、抽象的な概念を対象にしない。さらに、本開示および添付の特許請求の範囲は、当業界ですでに知られている、十分に理解された日常の活動および従来の活動の実行以上のものを伴う教示を提示する。自然現象のいくつかの態様を組み込み得る本開示の方法またはプロセスのいくつかでは、プロセスまたは方法ステップは、新しく有用な追加の特徴である。
【００８７】
[0091]本明細書および特許請求の範囲において使用される場合、不定冠詞「ａ」および「ａｎ」は、そうでないことが明確に示されない限り、「少なくとも１つ」を意味すると理解されるべきである。本明細書および特許請求の範囲において使用される場合、「および／または」という表現は（もしあれば）、そのように結合された要素の「一方または両方」、すなわち、ある場合には接続的に存在し、他の場合には離接的に存在する要素を意味すると理解されるべきである。「および／または」で列挙された複数の要素は、同じように、すなわち、そのように結合された要素のうちの「１つまたは複数」と解釈されるべきである。「および／または」という節によって具体的に識別された要素以外の他の要素は、それらが具体的に識別されたそれらの要素に関係しているか関係していないかにかかわらず、任意選択で存在し得る。したがって、非限定的な例として、「Ａおよび／またはＢ」への言及は、「備える（comprising）」のようなオープンエンド言語と併せて使用される場合、ある実施形態では、Ａのみ（任意選択でＢ以外の要素を含む）を指し、別の実施形態では、Ｂのみ（任意選択でＡ以外の要素を含む）を指し、さらに別の実施形態では、ＡおよびＢの両方（任意選択で他の要素を含む）を指すことなどができる。本明細書および特許請求の範囲において使用される場合、「または／もしくは（or）」は、上で定義されるような「および／または」と同じ意味を有すると理解されるべきである。例えば、リスト内の項目を分離するとき、「または」または「および／または」は、包括的である、すなわち、いくつかの要素のまたは要素のリストのうちの少なくとも１つを含むが、１つよりも多くも含み、任意選択で追加の列挙されていない項目も含むと解釈されるものとする。これとは反対に、「〜のうちの１つだけ（only one of）」もしくは「〜のうちの正確に１つ（exactly one of）」、または特許請求の範囲で使用される場合の「〜からなる（consisting of,）」のような明確に示される用語だけが、いくつかの要素または要素のリストのうちの正確に１つの要素の包含を指すであろう。一般に、本明細書で使用される場合、「または」という用語は、「いずれか（either）」、「〜のうちの１つ（one of）」、「〜のうちの１つのみ（only one of）」、または「〜のうちの正確に１つ（exactly one of）」のような排他性の用語が先行する場合、排他的選択肢（すなわち、「一方または他方であるが、両方ではない」）を示すものとしてのみ解釈されるものとする。「基本的に〜からなる（consisting essentially of）」は、特許請求の範囲において使用される場合、特許法の分野において使用されるその通常の意味を有するものとする。
【００８８】
[0092]本明細書および特許請求の範囲において使用される場合、１つまたは複数の要素のリストに関連した「少なくとも１つ」という表現は、要素のリスト中の要素のうちの任意の１つまたは複数から選択される少なくとも１つの要素を意味するが、要素のリスト内に具体的に列挙されたありとあらゆる要素のうちの少なくとも１つを必ずしも含むものではなく、要素のリスト中の要素の任意の組合せを除外しないことを理解されるべきである。この定義はまた、「少なくとも１つ」という表現が指す要素のリスト内で具体的に識別された要素以外の要素が、具体的に識別されたそれらの要素に関係しているか関係していないかにかかわらず、任意選択で存在し得ることを可能にする。したがって、非限定的な例として、「ＡおよびＢのうちの少なくとも１つ」（または同等に、「ＡまたはＢのうちの少なくとも１つ」、または同等に、「Ａおよび／またはＢのうちの少なくとも１つ」）は、ある実施形態では、任意選択で１つより多くを含む少なくとも１つのＡを含み、Ｂが存在しない（および任意選択でＢ以外の要素を含む）ことを指すことができ、別の実施形態では、任意選択で１つより多くを含む少なくとも１つのＢを含み、Ａが存在しない（および任意選択でＡ以外の要素を含む）ことを指すことができ、さらに別の実施形態では、任意選択で１つより多くを含む少なくとも１つのＡと、任意選択で１つより多くを含む少なくとも１つのＢと（および任意選択で他の要素を含む）を含むこと、などを指すことができる。
【００８９】
[0093]特許請求の範囲において、ならびに上記の明細書において、「備える（comprising）」、「含む（including）」、「搬送する（carrying）」、「有する（having）」、「含む（containing）」、「伴う（involving）」、「保持する（holding）」、「〜から構成される（composed of）」などのすべての移行句は、オープンエンドである、すなわち、含むが限定されないことを意味すると理解されるべきである。「〜からなる」および「基本的に〜からなる」という移行句だけが、米国特許庁の米国特許審査便覧に記載されているように、それぞれクローズドまたはセミクローズド移行句であるものとする。
【００９０】
[0094]ある実施形態は、本開示の実装形態または例である。本明細書において「ある実施形態」、「一実施形態」、「いくつかの実施形態」、「１つの特定の実施形態」、「例示的な実施形態」、または「他の実施形態」などへの言及は、これらの実施形態に関連して説明される特定の特徴、構造、または特性が、本発明の少なくともいくつかの実施形態に含まれるが、必ずしもすべての実施形態に含まれる必要はないことを意味する。「ある実施形態」、「一実施形態」、「いくつかの実施形態」、「１つの特定の実施形態」、「例示的な実施形態」、または「他の実施形態」などの様々な外観は、必ずしもすべてが同じ実施形態を指すとは限らない。
【００９１】
[0095]本明細書が、構成要素、特徴、構造、または特性が「含まれ得る（may be included）」、「含まれてもよい（might be included）」、または「含まれる可能性がある（could be included）」と記載されている場合、その特定の構成要素、特徴、構造、または特性は含まれる必要はない。本明細書または特許請求の範囲が「ａ」または「ａｎ」要素に言及する場合、それは、その要素が１つだけしか存在しないことを意味しない。本明細書または特許請求の範囲が「追加の」要素に言及する場合、それは、追加の要素が１つよりも多く存在することを排除しない。
【００９２】
[0096]追加的に、本開示を実行する方法は、本明細書で説明したものとは異なる順序で行われ得る。したがって、方法の順序は、別途明記されていない限り、制限として読まれるべきではない。方法のステップのうちのいくつかを異なる順序で実行しても同様の結果を得ることができることは認識可能である。
【００９３】
[0097]前述の説明では、簡潔さ、明瞭さ、および理解のために特定の用語が使用されてきた。このような用語は、説明の目的で使用され、広義に解釈されることが意図されるため、不必要な制限が、先行技術の要件を超えてそこから暗示されるべきではない。
【００９４】
[0098]さらに、本開示の様々な実施形態の説明および例示は例であり、本開示は、示されたまたは説明された正確な詳細に限定されない。
【図１】
2021535669.tif 000003
【図２】
2021535669.tif 000004
【図３】
2021535669.tif 000005
【図４】
2021535669.tif 000006
【図５】
2021535669.tif 000007
【国際調査報告】
2021535669.tif 000008