(57)【要約】  ホストコントローラを用いてセンサタイミング補正メッセージを送信するための方法および装置が開示される。方法および装置は、インターフェースを介してホストコントローラに結合されるセンサに送信される同期メッセージを決定し、このメッセージは、ホストコントローラおよびセンサのタイミングを同期するための同期期間の開始を示す。加えて、同期期間の開始と同期メッセージの実際の送信時間との間の時間遅延を示す遅延時間メッセージが決定される。同期メッセージは、遅延時間メッセージとともに情報メッセージにおいてセンサに送信され、情報メッセージは遅延時間を考慮することによってセンサタイマのタイミングをセンサが補正することを可能にするように構成される。
2018534688.tif 000002
【特許請求の範囲】
【請求項１】
ホストコントローラを用いて実施されるセンサタイミング補正メッセージを送信するための方法であって、
同期メッセージを決定するステップであって、前記同期メッセージが、センサに送信され、前記ホストコントローラおよび前記センサのタイミングを同期するための同期期間の開始を示すように構成される、ステップと、
前記同期期間の前記開始と前記同期メッセージの実際の送信時間との間の時間遅延を示すように構成される遅延時間メッセージを決定するステップと、
前記遅延時間メッセージとともに前記同期メッセージを情報メッセージにおいて前記センサに送信するステップであって、前記情報メッセージがセンサタイマのタイミングを前記センサが補正することを可能にするように構成される、ステップとを備える、方法。
【請求項２】
前記情報メッセージが、前記同期メッセージの前記タイミングおよび前記センサにおいてタイミングを補正するための前記遅延時間メッセージに基づいて前記センサが次の同期期間位相時間期間の予想される開始を決定することを可能にするように構成される、請求項1に記載の方法。
【請求項３】
分解能比コマンドを前記センサに通信するステップをさらに備え、前記分解能比コマンドが、前記遅延時間メッセージのための分解能ステップ時間を計算するのに使用可能な前記同期期間の除算係数を含む、請求項1に記載の方法。
【請求項４】
前記分解能ステップ時間および最大遅延時間に対する分解能ステップの所定の数に基づいて、前記遅延時間メッセージのための最大遅延時間をセンサにおいて計算するステップをさらに備える、請求項3に記載の方法。
【請求項５】
前記分解能比コマンドが、前記分解能ステップを決定するために2の逆べき乗として適用される複数の整数値を通信する2ビットメッセージとして構成される、請求項3に記載の方法。
【請求項６】
前記同期期間が、時間位相期間(T_Ph)にわたって発生するサンプリングイベントの所定の数に関して表現可能な前記時間位相期間を備える、請求項1に記載の方法。
【請求項７】
前記インターフェースが、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの1つまたは複数を備える、請求項6に記載の方法。
【請求項８】
ホストコントローラの最大可能ジッタ、およびデータが少なくとも1つのセンサにおいて利用可能になるセンサタイミングの範囲を決定するステップと、
センサタイミングの前記範囲における最速のセンサタイミングが次のポーリングサイクルにおける前記センサデータの変化を示す前に前記少なくとも1つのセンサからデータを読み取るための時間枠を割り振ることを確実にするために、前記決定された最大可能ジッタおよびセンサタイミングの前記範囲に基づいて前記情報メッセージを送信するために必要な時間を設定するステップとをさらに備える、請求項1に記載の方法。
【請求項９】
前記少なくとも1つのセンサからデータを読み取るための前記決定された最大の時間枠と、センサタイミングの前記範囲の中の前記最速のセンサタイミングとのうちの少なくとも1つに基づいて、前記同期期間の中のポーリングサイクルの数を決定して設定するステップをさらに備える、請求項7に記載の方法。
【請求項１０】
ホストコントローラデバイスであって、
少なくとも1つのトランスポート媒体を介して少なくとも1つのセンサデバイスに通信可能に結合されるトランスポート媒体インターフェースと、
前記トランスポート媒体インターフェースに通信可能に結合される少なくとも1つの処理回路とを備え、前記少なくとも1つの処理回路が、
同期メッセージを決定することであって、前記同期メッセージが、センサに送信され、前記ホストコントローラおよび前記センサのタイミングを同期するための同期期間の開始を示すように構成される、決定することと、
前記同期期間の前記開始と前記同期メッセージの実際の送信時間との間の時間遅延を示すように構成される遅延時間メッセージを決定することと、
前記遅延時間メッセージとともに前記同期メッセージを情報メッセージにおいて前記センサに送信することであって、前記情報メッセージがセンサタイマのタイミングを前記センサが補正することを可能にするように構成される、送信することと
を行うように構成される、ホストコントローラデバイス。
【請求項１１】
前記情報メッセージが、前記同期メッセージの前記タイミングおよび前記センサにおいてタイミングを補正するための前記遅延時間メッセージに基づいて前記センサが次の同期期間位相時間期間の予想される開始を決定することを可能にするように構成される、請求項10に記載のホストコントローラデバイス。
【請求項１２】
前記少なくとも1つの処理回路がさらに、
分解能比コマンドを前記センサに通信するように構成され、前記分解能比コマンドが、前記遅延時間メッセージのための分解能ステップ時間を計算するのに使用可能な前記同期期間の除算係数を含む、請求項10に記載のホストコントローラデバイス。
【請求項１３】
前記分解能比コマンドが、前記分解能ステップを決定するために2の逆べき乗として適用される複数の整数値を通信する2ビットメッセージとして構成される、請求項12に記載のホストコントローラデバイス。
【請求項１４】
前記トランスポート媒体が、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの1つまたは複数を備える、請求項10に記載のホストコントローラ。
【請求項１５】
前記少なくとも1つの処理回路がさらに、
ホストコントローラの最大可能ジッタ、およびデータが少なくとも1つのセンサにおいて利用可能になるセンサタイミングの範囲を決定し、
センサタイミングの前記範囲における最速のセンサタイミングが次のポーリングサイクルにおける前記センサデータの変化を示す前に前記少なくとも1つのセンサからデータを読み取るための時間枠を割り振ることを確実にするために、前記決定された最大可能ジッタおよびセンサタイミングの前記範囲に基づいて前記情報メッセージを送信するために必要な時間を設定するように構成される、請求項10に記載のホストコントローラデバイス。
【請求項１６】
1つまたは複数の命令を有するプロセッサ可読記憶媒体であって、前記1つまたは複数の命令が、少なくとも1つの処理回路によって実行されると、前記少なくとも1つの処理回路に、
同期メッセージを決定することであって、前記同期メッセージが、トランスポート媒体上でホストコントローラからセンサに送信され、前記ホストコントローラおよび前記センサのタイミングを同期するための同期期間の開始を示すように構成される、決定することと、
前記同期期間の前記開始と前記同期メッセージの実際の送信時間との間の時間遅延を示すように構成される遅延時間メッセージを決定することと、
前記遅延時間メッセージとともに前記同期メッセージを情報メッセージにおいて前記センサへ送信することであって、前記情報メッセージがセンサタイマのタイミングを前記センサが補正することを可能にするように構成される、送信することとを行わせる、プロセッサ可読記憶媒体。
【請求項１７】
前記情報メッセージが、前記同期メッセージの前記タイミングおよび前記センサにおいてタイミングを補正するための前記遅延時間メッセージに基づいて前記センサが次の同期期間位相時間期間の予想される開始を決定することを可能にするように構成される、請求項16に記載のプロセッサ可読記憶媒体。
【請求項１８】
前記1つまたは複数の命令がさらに、前記少なくとも1つの処理回路に、
分解能比コマンドを前記センサへ通信させ、前記分解能比コマンドが、前記遅延時間メッセージのための分解能ステップ時間を計算するのに使用可能な前記同期期間の除算係数を含む、請求項16に記載のプロセッサ可読記憶媒体。
【請求項１９】
前記トランスポート媒体が、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの1つまたは複数を備える、請求項16に記載のプロセッサ可読記憶媒体。
【請求項２０】
前記1つまたは複数の命令がさらに、前記少なくとも1つの処理回路に、
ホストコントローラの最大可能ジッタ、およびデータが少なくとも1つのセンサにおいて利用可能になるセンサタイミングの範囲を決定させ、
センサタイミングの前記範囲における最速のセンサタイミングが次のポーリングサイクルにおける前記センサデータの変化を示す前に前記少なくとも1つのセンサからデータを読み取るための時間枠を割り振ることを確実にするために、前記決定された最大可能ジッタおよびセンサタイミングの前記範囲に基づいて前記情報メッセージを送信するために必要な時間を設定させる、請求項16に記載のプロセッサ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2015年10月23日に米国特許商標庁に出願された「CORRECTION OF SYNC TICK IN A SYSTEM SYNCHRONIZING CONTROLLER AND SENSORS」という表題の仮出願第62/245,914号、2015年10月23日に米国特許商標庁に出願された「ACHIEVING ACCEPTABLE CONTROL FOR THE RANGE OF SENSOR CLOCK TIMING IN A SYSTEM SYNCHRONIZING CONTROLLER AND SENSORS」という表題の仮出願第62/245,917号、2015年10月23日に米国特許商標庁に出願された「REDUCTION OF TIME STAMP OVERHEAD IN A SYSTEM SYNCHRONIZING CONTROLLER AND SENSORS」という表題の仮出願第62/245,922号、2015年10月23日に米国特許商標庁に出願された「TIMESTAMP FOR ASYNCHRONOUS EVENT」という表題の仮出願第62/245,924号、2016年8月30日に米国特許商標庁に出願された「SYSTEM AND METHODS OF REDUCING ENERGY CONSUMPTION BY SYNCHRONIZING SENSORS」という表題の非仮出願第15/251,757号、および2016年10月20日に米国特許商標庁に出願された「APPARATUS AND METHODS FOR SYNCHRONIZING A CONTROLLER AND SENSORS」という表題の非仮出願第15/299,382号の優先権および利益を主張し、これらの内容全体が参照により本明細書に組み込まれる。
【０００２】
本明細書において開示される主題は、電子デバイスに関し、より詳細には、コントローラおよびセンサを同期するための方法、装置、およびシステムに関する。
【背景技術】
【０００３】
現在のモバイルデバイスは、多数のセンサを含んでいる。通常、データ処理ユニット、コントローラ、ホストデバイス、またはマスタデバイス(以後、単にコントローラまたはホストコントローラと呼ばれる)は、センサまたはスレーブユニット(以後「センサ」と呼ばれる)によって収集されるデータを受信し処理するために設けられる。電力を節約するために、センサからコントローラに転送されているデータがないとき、コントローラは定期的にスリープ状態にされる。
【０００４】
センサからコントローラにデータを転送する2つの方法が一般に利用される。非同期法として知られている第1の方法では、転送が可能なデータを有するセンサが、コントローラを起動する信号(たとえば、いくつかの既知のシステムでは専用のData Ready Interrupt(DRI)ピンを通じたDRI信号)を出すことによってコントローラに通知し、次いでコントローラの準備ができているときにセンサがデータを転送する。同期法として知られている第2の方法では、コントローラは、所定の時間間隔でスリープ状態から自発的に起動し、センサにポーリングし、センサに存在するあらゆるデータをセンサから受信する。2つ以上のセンサからのデータ転送が単一のポーリングおよび転送セッションに集約され得るので、同期法は複数のセンサを備えるデバイスにおいてよりエネルギー効率が高い。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
定期的にサンプリングされたデータを複数のセンサまたは他のデバイスが提供するシステムでは、基本的に同期した時間にデータを収集するようにセンサに命令することが可能であること、および、コントローラが同じアウェイク時間枠またはシステムアウェイク期間内にいくつかのセンサからデータを読み取ることが、さらに有利である。理想的には、センサが最新の結果のみを送達すると仮定すると、センサのサンプリング周波数と一致する周波数でセンサをポーリングすれば、センサによって収集されたすべてのデータを得るのに十分である。しかしながら、コントローラおよびセンサは普通はタイミング信号を共有せず、したがってタイミング信号のずれが生じることがあるので、センサがセンサのサンプリング周波数でポーリングされるときであっても、一部のセンサデータサンプルは失われることがあり、一部のセンサデータサンプルは2回読み取られることがある。その現象は、一部のセンサのクロックまたはタイマの精度が悪い(たとえば、ある温度範囲にわたり、かつデバイスごとに、±15%の偏差)という事実によって、悪化する。
【課題を解決するための手段】
【０００６】
ある態様によれば、ホストコントローラを用いて実施されるセンサタイミング補正メッセージを送信するための方法が開示される。方法は、同期メッセージを送信するステップを含み、同期メッセージは、センサに送信され、ホストコントローラおよびセンサのタイミングを同期するための同期期間の開始を示すように構成される。遅延時間メッセージも決定され、ここで遅延時間メッセージは、同期期間の開始と同期メッセージの実際の送信時間との間の時間遅延を示すように構成される。方法はさらに、遅延時間メッセージとともに同期メッセージを情報メッセージにおいてセンサに送信するステップを含み、情報メッセージはセンサタイマのタイミングをセンサが補正することを可能にするように構成される。
【０００７】
別の態様では、少なくとも1つのトランスポート媒体を介して少なくとも1つのセンサデバイスに通信可能に結合されるトランスポート媒体インターフェースを有する、ホストコントローラデバイスが開示される。ホストコントローラはさらに、トランスポート媒体インターフェースに通信可能に結合され同期メッセージを決定するように構成される少なくとも1つの処理回路を含み、同期メッセージは、センサに送信され、ホストコントローラおよびセンサのタイミングを同期するための同期期間の開始を示すように構成される。少なくとも1つの処理回路はさらに、同期期間の開始と同期メッセージの実際の送信時間との間の時間遅延を示すように構成される遅延時間メッセージを決定し、同期メッセージを遅延時間メッセージとともに情報メッセージにおいてセンサに送信するように構成され、情報メッセージは、センサタイマのタイミングをセンサが補正することを可能にするように構成される。
【０００８】
またさらなる態様によれば、プロセッサ可読記憶媒体が開示され、ここでこの媒体は、少なくとも1つの処理回路によって実行されると、少なくとも1つの処理回路に同期メッセージを決定させる1つまたは複数の命令を有し、同期メッセージは、トランスポート媒体上でホストコントローラからセンサに送信され、ホストコントローラおよびセンサのタイミングを同期するための同期期間の開始を示すように構成される。命令はさらに、少なくとも1つの処理回路に、同期期間の開始と同期メッセージの実際の送信時間との間の時間遅延を示すように構成される遅延時間メッセージを決定させ、同期メッセージを遅延時間メッセージとともに情報メッセージにおいてセンサへ送信させ、情報メッセージは、センサタイマのタイミングをセンサが補正することを可能にするように構成される。
【図面の簡単な説明】
【０００９】
【図１】ここで開示される方法および装置が実装され得る例示的なモバイルデバイスを示すブロック図である。
【図２】ここで開示される方法および装置が実装され得る例示的なハードウェア環境を示すブロック図である。
【図３】ホストコントローラおよびセンサタイマを同期するための例示的な方法を示すフローチャートである。
【図４】インターフェース上の活動の例示的なシステムタイミング図である。
【図５】インターフェース上の同期手順の例を示すタイムライン図である。
【図６】ジッタおよび同期メッセージのタイミングを考慮することによってポーリングのタイミングを設定することを示すタイムライン図である。
【図７】センサタイミング補正メッセージを送信するための例示的な方法のフローチャートである。
【図８】図6に示されるような読取り時間枠を決定するための例示的な方法800を示すフローチャートである。
【図９】本開示による例示的なホストコントローラまたはマスタデバイスを示す図である。
【図１０】本開示による例示的なスレーブデバイスまたはセンサデバイスを示す図である。
【図１１】ホストコントローラのためのハードウェア実装形態の簡略化された例を示す図である。
【発明を実施するための形態】
【００１０】
開示される方法および装置の態様は、以下の説明および特定の実施形態を対象とする関連する図面において開示される。本開示の範囲から逸脱することなく、代替の実施形態が考案され得る。加えて、本開示の関連する詳細を不明瞭にしないように、よく知られている要素は詳細に説明されないことがあり、または省略されることがある。
【００１１】
「例示的」という単語は、本明細書では、「例、事例、または例示として機能すること」を意味するために使用される。「例示的」として本明細書において説明されるいかなる実施形態も、他の実施形態よりも好ましい、または有利であると必ずしも解釈されるべきでない。同様に、「実施形態」という用語は、すべての実施形態が、論じられる特徴、利点、または動作モードを含むことを要求するものではない。
【００１２】
本明細書において使用される用語は、特定の実施形態を説明するためのものにすぎず、本発明の実施形態を限定することを意図しない。本明細書において使用される場合、単数形「a」、「an」、および「the」は、文脈が別段明確に示さない限り、複数形も含むことを意図する。さらに、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、本明細書において使用されるとき、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことが理解されよう。
【００１３】
さらに、多くの実施形態が、たとえば、コンピューティングデバイス(たとえば、サーバまたはデバイス)の要素によって実行されるべき動作シーケンスに関して説明される。本明細書において説明される様々な動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行され得ることが認識されるだろう。さらに、本明細書において説明されるこれらの動作シーケンスは、実行時に、関連するプロセッサに本明細書において説明される機能を実行させる対応するコンピュータ命令のセットを記憶した、任意の形のコンピュータ可読記憶媒体内で完全に具現化されるものと見なされ得る。したがって、本発明の種々の態様はいくつかの異なる形において具現化されてもよく、そのすべてが、特許請求される主題の範囲内に入ると考えられる。さらに、本明細書において説明される実施形態ごとに、対応する形の任意のそのような実施形態が、本明細書において、たとえば、説明された動作を実行する「ように構成された論理」として説明されることがある。
【００１４】
図1は、本開示の実施形態が実施され得る例示的なモバイルデバイスを示すブロック図である。システムは、1つまたは複数のプロセッサ101と、メモリ105と、I/Oコントローラ125と、ネットワークインターフェース110とを含み得るデバイス(たとえば、デバイス100)であり得る。デバイス100はまた、プロセッサ101にさらに結合された1つまたは複数のバスまたは信号線に結合されたいくつかのデバイスセンサを含み得る。デバイス100はまた、ディスプレイ120、ユーザインターフェース(たとえば、キーボード、タッチスクリーン、または類似のデバイス)、電源デバイス121(たとえば、バッテリー)、および電子デバイスと一般に関連付けられる他の構成要素を含み得ることを諒解されたい。いくつかの実施形態では、デバイス100は、モバイルデバイスまたは非モバイルデバイスであり得る。本明細書において、「プロセッサ」および「データ処理ユニット」は互換的に用いられる。
【００１５】
デバイス(たとえば、デバイス100)は、周辺光センサ(ALS)135、加速度計140、ジャイロスコープ145、磁力計150、温度センサ151、気圧センサ155、赤色-緑色-青色(RGB)カラーセンサ152、紫外線(UV)センサ153、UV-Aセンサ、UV-Bセンサ、コンパス、近接センサ167、近距離通信(NFC)169、および/または全地球測位センサ(GPS)160などのセンサを含み得る。いくつかの実施形態では、複数のカメラがデバイスに組み込まれ、またはデバイスにアクセス可能である。たとえば、モバイルデバイスは、少なくとも前面および背面取付カメラを有することがある。いくつかの実施形態では、他のセンサも複数の設置またはバージョンを有することがある。
【００１６】
プロセッサ101による実行のための命令を記憶するために、メモリ105がプロセッサ101に結合され得る。いくつかの実施形態では、メモリ105は非一時的である。メモリ105はまた、以下で説明される実施形態を実装するための1つまたは複数のモデルまたはモジュールを記憶することができる。メモリ105は、一体型センサまたは外部センサからのデータを記憶することもできる。
【００１７】
また、ネットワークインターフェース110は、ワイヤレスリンクを介してデータストリームをワイヤレスネットワークに送信し、ワイヤレスネットワークから受信するために、複数のワイヤレスサブシステム115(たとえば、Bluetooth(登録商標)166、WiFi111、セルラ161、または他のネットワーク)に結合されることがあり、またはネットワーク(たとえば、インターネット、イーサーネット、または他の有線もしくはワイヤレスシステム)への直接接続するための有線インターフェースであることがある。モバイルデバイスは、1つまたは複数のアンテナ(図示されず)に接続される1つまたは複数のローカルエリアネットワークトランシーバも含み得る。ローカルエリアネットワークトランシーバは、ワイヤレスAPと通信し、および/またはワイヤレスAPへの/からの信号を検出し、および/またはネットワーク内の他のワイヤレスデバイスと直接通信するのに適したデバイス、ハードウェア、および/またはソフトウェアを備える。一態様では、ローカルエリアネットワークトランシーバは、1つまたは複数のワイヤレスアクセスポイントと通信するのに適した、WiFi(802.11x)通信システムを備え得る。
【００１８】
また、デバイス100は、1つまたは複数のアンテナに接続され得る1つまたは複数のワイドエリアネットワークトランシーバも含み得る。ワイドエリアネットワークトランシーバは、ネットワーク内の他のワイヤレスデバイスと通信し、かつ/またはネットワーク内の他のワイヤレスデバイスへの/からの信号を検出するのに適した、デバイス、ハードウェア、および/またはソフトウェアを備える。一態様では、ワイドエリアネットワークトランシーバは、ワイヤレス基地局のCDMAネットワークと通信するのに適したCDMA通信システムを備えることがあるが、他の態様では、ワイヤレス通信システムは、たとえば、TDMA、LTE、LTE Advanced、WCDMA(登録商標)、UMTS、4G、5G、またはGSM(登録商標)などの、別のタイプのセルラ電話ネットワークまたはフェムトセルを備えることがある。加えて、たとえば、WiMax(802.16)、Ultra Wide Band、ZigBee、ワイヤレスUSBなどの任意の他のタイプのワイヤレスネットワーキング技術が使用されてもよい。
【００１９】
加えて、デバイス100は、モバイルデバイス、ワイヤレスデバイス、携帯電話、携帯情報端末、モバイルコンピュータ、ウェアラブルデバイス(たとえば、ヘッドマウントディスプレイ、仮想現実グラスなど)、ロボットナビゲーションシステム、タブレット、パーソナルコンピュータ、ラップトップコンピュータ、または処理能力および/もしくは通信能力を有する任意のタイプのデバイスであり得る。本明細書では、モバイルデバイスは、1つまたは複数のワイヤレス通信デバイスまたはネットワークから送信されたワイヤレス信号を取得し、それらのデバイスまたはネットワークにワイヤレス信号を送信するように構成可能である、任意の持運び可能な、または移動可能なデバイスまたは機械であり得る。したがって、例として、限定はされないが、デバイス100は、無線デバイス、携帯電話デバイス、コンピューティングデバイス、パーソナル通信システムデバイス、または他の同様の移動可能なワイヤレス通信対応デバイス、電化製品、または機械を含み得る。上記の任意の動作可能な組合せも、「モバイルデバイス」と見なされる。
【００２０】
さらに、モバイルデバイス100は、RF信号(たとえば、2.4GHz、3.6GHz、および4.9/5.0GHz帯域)ならびにRF信号の変調および情報パケットの交換のための標準化されたプロトコル(たとえば、IEEE802.11x)を使用して、複数のワイヤレスアクセスポイント(AP)、NodeB、eNodeB、基地局などとワイヤレスに通信し得る。
【００２１】
本明細書において後述される例は、メモリ105または他の要素に記憶された命令などの命令を、デバイス100のプロセッサ101、および/またはデバイス100の他の回路によって実行することを通じて、実装され得ることを諒解されたい。具体的には、限定はされないがプロセッサ101を含むデバイス100の回路は、本発明の実施形態による方法またはプロセスを実行するために、プログラム、ルーチン、または命令の実行の制御の下で動作することができる。たとえば、そのようなプログラムは、(たとえば、メモリ105および/または他の場所に記憶された)ファームウェアまたはソフトウェアにおいて実装されることがあり、プロセッサ101などのプロセッサ、および/またはデバイスの他の回路によって実装されることがある。さらに、プロセッサ、マイクロプロセッサ、回路、コントローラなどの用語が、論理、コマンド、命令、ソフトウェア、ファームウェア、機能などを実行することが可能な任意のタイプの論理または回路を指し得ることを諒解されたい。
【００２２】
さらに、本明細書において説明される機能、エンジン、もしくはモジュールの一部またはすべてが、デバイス自体によって実行され得ること、および/あるいは、本明細書において説明される機能、エンジン、またはモジュールの一部もしくはすべてが、I/Oコントローラ125またはネットワークインターフェース110を通じて(ワイヤレスまたは有線で)デバイスに接続される別のシステムによって実行され得ることを諒解されたい。したがって、機能のうちの一部および/またはすべてが、別のシステムによって実行されることがあり、結果または中間の計算が、デバイス100に転送されることがある。いくつかの実施形態では、そのような他のデバイスは、リアルタイムまたはほぼリアルタイムで情報を処理するように構成されたサーバを含み得る。いくつかの実施形態では、他のデバイスは、たとえばデバイスの知られている構成に基づいて結果を事前に決定するように構成される。さらに、図1に示される要素のうちの1つまたは複数は、デバイス100から省略され得る。たとえば、センサ130〜165のうちの1つまたは複数が、いくつかの実施形態において省略され得る。
【００２３】
図2は、本開示の態様が実践され得る例示的なハードウェア環境200を示すブロック図である。ホストコントローラ205(またはマスタ)が、機能の中でもとりわけ、センサ210(またはホストもしくはマスタにサンプリングされたデータを提供する任意の他のデバイス)から転送されたデータサンプルを受信し処理するために提供され得る。ある例では、ホストコントローラ205は、デバイス100のプロセッサ101によって、またはその中に実装され得るが、そのようには限定されず、プロセッサ101とは別個に実装され得る。センサ210は、上で説明されたものなどの任意のタイプのセンサ、またはサンプリングされたデータを収集し送信する任意のデバイスであり得る。ここで開示される実施形態は、センサの数によって限定されず、より多くのセンサ(図示せず)が存在し得る。いくつかの実施形態では、ホストコントローラ205は、クロック207からクロック信号またはタイマ信号を与えられ得る。他の実施形態では、コントローラ205に内部クロック生成器が埋め込まれ得る。センサ210は内部タイマ生成器215を含み、内部タイマ生成器215はセンサ210によるサンプルの収集および送信のタイミングを決めるためのタイマ信号を生成する。データ接続、バス、またはインターフェース217は、プロセッサ101をセンサ210につなぎ、とりわけ、ホストコントローラ205とセンサ210との間でのデータの転送のタイミングを決めることを可能にする。図2に示される例では、データ接続は、シリアルデータ(SDA)線220およびシリアルクロック(SCL)線230を含むインターICバス(I2Cバス)またはI3Cバスであり得る。SDA線220およびSCL線230はいずれも、プルアップ抵抗器(図示せず)でプルアップされ得る。I2CバスまたはI3Cバスの動作は当該技術分野においてよく知られており、簡潔にするために本明細書では詳述されない。
【００２４】
データ接続はまた、universal asynchronous receiver/transmitter(UART)接続、Serial Peripheral Interface(SPI)バス、System Management Bus(SMBus)、Serial Low-power Inter-chip Media Bus(SLIMbus(商標))、SoundWireバス、ワイヤレスインターフェースであり得る。いくつかの実施形態では、センサ210は、Data Ready Interrupt(DRI)ピンを有することがあり、これは、DRI線240を介してコントローラ205に接続され得る。2つ以上のセンサが存在する実施形態では、プロセッサ101に接続される前に、複数のセンサからのDRI線が多重化され得る。いくつかの他の実施形態では、DRIピンに加えて、またはその代わりに、センサ210は専用のクロック補正ピンを有することがあり、これは、クロック補正線250を介してプロセッサ101に接続され得る。
【００２５】
コンピューティングデバイス100は、センサタイマ215を含むか、またはそれに結合されるセンサ210と、クロックもしくはタイマ207を含むか、またはそれに結合されるホストコントローラ205とを備えて、センサタイマ215の1回目の補正を行い、センサ210からデータを転送し、センサタイマ215の2回目の補正を行うことができ、センサタイマ215の2回の補正の間の時間間隔は、センサタイマ215が、その時間間隔にわたってホストコントローラタイマ207と十分に揃うように選択され得る。
【００２６】
センサ210からホストコントローラ205にデータを転送する2つの方法が一般に利用される。非同期法としても知られている第1の方法では、転送が可能なデータを有するセンサ210が、専用のData Ready Interrupt(DRI)ピンを通じてDRI信号を発行することによって、ホストコントローラ205に通知することができ、DRI信号は、スリープ状態からプロセッサを起動し、プロセッサのデータ転送の準備ができているときにデータを転送する。同期法としても知られている第2の方法では、ホストコントローラ205は、所定の時間間隔においてスリープ状態から自発的に起動することができ、センサ210にポーリングしてデータを受信することができる。2つ以上のセンサからのデータ転送が単一のポーリングおよび転送セッションに集約され得るので、同期法は複数のセンサを備えるデバイスにおいてよりエネルギー効率が高い。
【００２７】
理想的には、センサが最新の結果のみを送達すると仮定すると、センサのサンプリング周波数と一致する周波数でセンサをポーリングすれば、センサによって収集されたすべてのデータサンプルを得るのに十分である。しかしながら、ホストコントローラ205およびセンサ210は普通はクロック信号またはタイミング信号を共有せず、それぞれのタイマのタイミングのずれが生じることがあるので、センサ210がそのサンプリング周波数においてポーリングされるときであっても、一部のセンサデータサンプルは失われることがあり、一部のセンサデータサンプルは2回読み取られることがある。その現象は、一部のセンサのタイマの精度が非常に悪いことがある(すなわち、ある温度範囲にわたり、かつデバイスごとに、±15%の偏差)という事実によって、悪化することがある。
【００２８】
図3を参照すると、センサタイミングを同期するための例示的な方法300を示すフローチャートが示される。動作310において、センサタイマの1回目の補正が行われ得る。センサタイマを補正することは、サンプリングイベントがそれに基づく内部センサタイマがホストコントローラクロックまたはタイマ207によって使用されるクロック信号と十分に揃うように、その内部センサタイマにタイマ補正係数を適用することを備え得る。センサの指定されたサンプリング周波数と一致する周波数でセンサをポーリングすることで、データサンプルが失われることなく、そしてデータサンプルが2回読み取られることなく、すべてのセンサデータサンプルを受信するようになることが、十分に長い期間にわたって保証され得るときに、内部センサタイマ215は、ポーリングイベントがそれに基づくプロセッサクロックと十分に揃っている。2つのタイマ信号が完全に揃うとき、それらの実際の周波数間の比は、指定された周波数間の比に等しいことに留意されたい。動作320において、ホストコントローラ205によってセンサ210がポーリングされることがあり、センサデータサンプルがセンサ210からホストコントローラ205に転送されることがある。動作320は、複数のポーリングおよび複数のデータサンプル転送からなり得る。動作330において、動作310において1回目の補正が行われたのと同じように、センサクロックの2回目の補正が行われ得る。センサタイマ215の2回の補正の間の時間間隔は、タイマ信号がその間隔にわたって上で定義されたように十分に揃ったままとなるように選択され得るが、それにもかかわらず、タイマ信号の誤差はその間隔にわたって累積される。選択された間隔が短すぎる場合、必要以上に頻繁にセンサタイマ215を補正することにエネルギーが浪費されることがある。一方、選択された間隔が長すぎる場合、タイマ信号が揃わなくなることがあり、上で説明されたデータサンプル損失または反復が生じることがある。
【００２９】
2回のセンサタイマ補正の間の時間間隔は、位相時間または時間位相間隔(T_Ph)と呼ばれ得る。具体的には、時間位相間隔(T_Ph)は、内部タイマおよびサンプリングイベントのシーケンスの開始を調整するためのスレーブまたはセンサ210により使用される事前に確立された時間長を示す、ホストまたはマスタコントローラ205によって提供される時間の期間であり得る。「T」は「時間」または「期間」を表し、「Ph」は「位相」を表し、サンプリングイベントのシーケンスが同じ時間期間内に発生し、同じ瞬間に開始するという事実を指すものである。ある特定の態様では、T_Phは、T_Ph期間にわたるサンプリングイベントのシーケンスの中のサンプルまたはサンプリングイベントの所定の数に関して定義され、または表現可能であり得る。たとえば、T_Phは、各T_Ph期間の中で発生する20回のサンプリングイベントに関して定義され得る。
【００３０】
動作310〜330を繰返し実行することによって、内部センサタイマ215は、ホストコントローラクロックに十分に揃った状態に保たれ得る。いくつかの実施形態では、T_Phは、存在するセンサのサンプリング周期の公倍数であり得る。たとえば、それぞれ200Hz、100Hzおよび10Hzのサンプリング周波数(5ms、10msおよび100msのサンプリング周期に対応する)を有する3つのセンサが存在する実施形態では、T_Phとして100msが選択され得る。存在する複数のセンサのサンプリング周期の公倍数であるT_Phを使用して実質的に同時に複数のセンサを同期することで、センサクロックが互いに揃い、したがって、プロセッサが同期法を用いて最も少ない起動時間枠ですべてのサンプルを取得できるようになることを諒解されたい。上述の例において、200Hz、100Hzおよび10Hzのサンプリング周波数を有する3つのセンサのセンサクロックが互いに揃っていない場合、プロセッサは、プロセッサが各起動時間枠において単一のセンサから単一のサンプルを受信する(200Hzセンサの場合毎秒200回、100Hzセンサの場合毎秒100回、そして10Hzセンサの場合毎秒10回)最悪のシナリオでは、すべてのサンプルを取得するために、全体で毎秒310回起動しなければならないことがある。一方、3つのセンサのセンサタイマが上で説明されたように揃う場合、プロセッサは、すべてのサンプルを取得するのに毎秒200回しか起動する必要がなく、200Hzのセンサはプロセッサが起動するたびにポーリングされ、100Hzのセンサはプロセッサが2回起動するごとにポーリングされ、10Hzのセンサはプロセッサが20回起動するごとにポーリングされる。必要とされる起動時間枠の数を減らすことは、電力を節約し、電池寿命を長くするので望ましい。いくつかの実施形態では、T_Phは約1秒であり得る。また、T_Phは、センサ210によってクロック関連のフィードバック情報が与えられる実施形態では、ランタイムに調整され得る。
【００３１】
センサタイマ215を補正するためのいくつかの非限定的な方法が考えられてきた。いくつかの実施形態では、センサ210は、プロセッサクロックまたはタイマに関する情報を受信し、タイマまたはクロック補正係数を導出し、タイマ補正係数を適用することができる。いくつかの実施形態では、センサ210は、その内部タイマまたはクロックに関する情報をホストコントローラ205に送り、ホストコントローラ205において導出されたタイマ補正係数を受信し、タイマ補正係数を適用することができる。
【００３２】
ホストコントローラ205とセンサ210との間でタイマ関連情報が交換される実施形態では、クロックまたはタイマ関連情報を交換するためのいくつかの非限定的な方法が考えられてきた。いくつかの実施形態では、クロックまたはタイマ情報はDRI線240を使用して転送され得る。いくつかの実施形態では、クロックまたはタイマ情報は、専用クロックまたはタイマ補正線250を使用して転送され得る。さらに他のいくつかの実施形態では、クロックまたはタイマ情報は、上で説明されたI2CバスまたはI3Cバスなどの、プロセッサ101とセンサ210との間の通常のデータ接続を使用して転送され得る。
【００３３】
実施形態の第1のグループでは、センサ210がプロセッサタイマまたはクロック207に関する情報を受信し、タイマ補正係数を導出し、センサタイマ215が補正されているときにタイマ補正係数を適用することができる。
【００３４】
一実施形態では、センサタイマ215が補正されているとき、ホストコントローラ205は、所定の数のパルスからなるパルスのバーストをセンサ210に送信することができる。パルスのバーストは、ホストコントローラタイマから導出されることがあり、その周波数は、ホストコントローラタイマの周波数に依存することがある。必要とされるバーストは、相対的に短い期間だけ継続する。ここで、センサ210は、バーストの予想周波数を演繹的に設定することができる。センサ210がバーストを受信すると、センサは受信されたバーストの周波数と予想周波数とを比較し、それに応じてタイマ補正係数を導出し、タイマ補正係数を適用して内部センサタイマ215を補正することができる。
【００３５】
別の実施形態では、センサタイマ215が補正されているとき、ホストコントローラ205は、2つのパルスをセンサ210に送信することができ、パルスはプロセッサタイマによって測定されるような所定の時間間隔だけ離隔される。その時間間隔は、センサタイマ215を補正するためのタイマ補正係数を導出するためにそれが信頼性をもって使用され得るように選ばれる。この時間間隔は、周波数時間間隔(T_Fq)と呼ばれることがある。いくつかの実施形態では、T_Fqは数ミリ秒の範囲にあり得る。いくつかの実施形態では、T_Fqは、存在する最も短いセンササンプリング周期と一致するように選ばれる。いくつかの他の実施形態では、T_Fqは、T_Phと同じ長さになるように選ばれ得る。たとえば、T_Fqは1秒であり得る。ここで、センサ210は、所定のT_Fqを用いて演繹的に構成され得る。センサ210が2つのパルスを受信すると、センサは、センサタイマによって測定されるような、受信された2つのパルスによって挟まれる時間間隔の時間長を、同じくセンサタイマによって測定されるような所定のT_Fqと比較し、それに応じてタイマ補正係数を導出し、タイマ補正係数を適用して内部センサタイマを補正することができる。
【００３６】
さらに別の実施形態では、センサタイマが補正されているとき、タイマ補正メッセージの送信の間に生成された2つの識別可能な明確なエッジが、プロセッサタイマによって測定されるような所定のT_Fqだけ離隔されるように、ホストコントローラ205が、ホストコントローラ205とセンサ210との間のデータ接続を通じてセンサ210にタイマ補正メッセージを送信することができる。上で説明されたように、ホストコントローラ205とセンサ210との間のデータ接続は、I2CバスまたはI3Cバスであり得る。これは、UARTバス接続、SPIバス、または、コントローラとセンサとの間でデータを転送するのに適した任意の他のタイプの接続であってもよい。所定のT_Fqは上に説明されたものと同じであり得る。ここで、センサ210は、所定のT_Fqを用いて演繹的に構成され得る。センサ210が2つのタイマ補正メッセージを受信すると、センサ210は、センサタイマ215によって測定されるような、タイマ補正メッセージとともに含まれる2つの識別可能な重大なエッジよって挟まれる時間間隔の時間長を、同じくセンサタイマによって測定されるような所定のT_Fqと比較し、それに応じてタイマ補正係数を導出し、タイマ補正係数を適用して内部センサタイマを補正することができる。
【００３７】
たとえば、ホストコントローラ205とセンサ210との間のデータ接続がI2CバスまたはI3Cバスである実施形態では、2つのクロック補正メッセージが送信され得る。これらの2つのタイマ補正メッセージは、それぞれMS1およびMS2と呼ばれ得る。T_Fqは、MS1のための開始条件におけるSDA線220上の立ち下がりエッジと、MS2のための開始条件におけるSDA線220上の立ち下がりエッジとによって挟まれることがあり、または代替的には、MS1のための停止条件におけるSDA線220上の立ち上がりエッジと、MS2のための開始条件におけるSDA線220上の立ち下がりエッジとによって挟まれることがある。T_FqがT_Phと同じ長さになるように選ばれる実施形態では、1つのタイマ補正メッセージ、たとえば、MS1しか必要とされないことがあり、たとえば、各T_Phの開始時に、プロセッサ101によってMS1メッセージが送信されることがある。したがって、T_Phに等しい時間期間T_Fqが、たとえば、一実施形態では、2つの連続するMS1メッセージのための開始条件におけるSDA線220上の立ち下がりエッジによって挟まれることがある。当然、本発明は本明細書において提供される例によって限定されない。その上、センサタイマ215を補正する目的でI2CバスまたはI3Cバスを使用することによって、補足的な誤り訂正手順、故障検出、およびアボートコマンドなども可能になる。たとえば、センサ210が、タイムスタンプ、または時間偏移情報を含むメッセージを送信することができ、ホストコントローラ205が、それに応じて後続のデータのストリームを補正することができる。この手順を利用することによって、T_Phの精度要件が緩和され得る。タイマ補正目的のためにI2CバスまたはI3Cバスの双方向通信能力を利用する他の方法も考えられてきた。
【００３８】
実施形態の第2のグループでは、センサ210がその内部タイマに関する情報をホストコントローラ205に送信し、ホストコントローラ205において導出されたタイマ補正係数を受信し、センサタイマ215が補正されているときにタイマ補正係数を適用することができる。
【００３９】
一実施形態では、センサタイマ215が補正されているとき、センサ210は、センサタイマによって測定されるような所定のT_Fqまたは出力データレート(ODR)期間だけ離隔された2つのパルスをホストコントローラ205に送信することができる。所定のT_Fqは上で説明されたものと同じであり得る。ここで、ホストコントローラ205は、所定のT_Fqを用いて演繹的に構成され得る。ホストコントローラ205が2つのパルスを受信すると、ホストコントローラ205は、プロセッサタイマによって測定されるような、受信された2つのパルスによって挟まれる時間間隔の時間長を、同じくプロセッサタイマによって測定されるような所定のT_Fqと比較し、それに応じてタイマ補正係数を導出し、I2CバスまたはI3Cバスなどの、ホストコントローラ205とセンサ210との間のインターフェース217を介して、タイマ補正係数をセンサ210に送信することができる。次いで、センサ210は、タイマ補正係数を受信し、タイマ補正係数を適用することができる。
【００４０】
実施形態の第3のグループでは、タイマ補正係数は使用されない。これらの実施形態では、プロセッサタイマ、またはプロセッサタイマから導出された信号がセンサ210に与えられることがあり、センサ210は、サンプリングイベントを、プロセッサタイマ、またはプロセッサタイマから導出された信号に直接基づいたものにすることがある。プロセッサタイマ、またはプロセッサタイマから導出された信号は、専用線、DRI線240を使用して送信されることがあり、またはプロセッサ101とセンサ210との間のデータ接続上で転送されるメッセージ内で送信されることがある。
【００４１】
一実施形態では、ホストコントローラ205は、プロセッサタイマに基づいてサンプリングタイマ信号を生成し、サンプリングタイマをセンサ210に送信することができる。サンプリングタイマの周波数は、センサ210のサンプリング周波数と同じであり得る。センサ210は、その内部センサタイマを無視し、ホストコントローラ205によって送信されたサンプリングタイマ信号の中のパルスに遭遇したときにのみサンプルを収集するように構成される。
【００４２】
複数のセンサが存在する一実施形態では、プロセッサ101により生成されるサンプリングタイマ信号の周波数は、存在するセンサのサンプリング周波数の公倍数となるように選択され得る。たとえば、それぞれ200Hz、100Hz、および10Hzのサンプリング周波数を有する3つのセンサが存在する実施形態では、プロセッサ101は、プロセッサタイマに基づいて200Hzの周波数を有するサンプリングタイマ信号を生成し、サンプリングタイマ信号を3つのセンサすべてに送信することができる。次いで、200Hzのサンプリング周波数を有するセンサは、サンプリングタイマ信号の中で遭遇するパルスごとにサンプルを収集するように構成されることがあり、100Hzのサンプリング周波数を有するセンサは、サンプリングタイマ信号の中で遭遇する2個のパルスごとにサンプルを収集するように構成されることがあり、10Hzのサンプリング周波数を有するセンサは、サンプリングタイマ信号の中で遭遇する20個のパルスごとにサンプルを収集するように構成されることがある。
【００４３】
サンプリングタイマはホストコントローラタイマに基づくので、センサ210のサンプリングイベントおよびホストコントローラ205のポーリングイベントは常に揃い得ることを諒解されたい。いくつかの実施形態において、サンプリングタイマ信号は、同時にポーリング信号としての役割も果たし得ることも諒解されたい。別の実施形態では、プロセッサタイマは、センサ210に直接与えられることがあり、センサ210は、サンプリングイベントを、その内部センサタイマの代わりに、プロセッサタイマに基づいたものにすることがある。
【００４４】
本明細書において説明されるセンサタイマを同期するための例示的な方法を利用することによって、コントローラは、センサのためのタイマ補正を調整し、ある周波数においてセンサをポーリングする際に必要以上に多くのエネルギーを浪費することなく、エネルギー効率の良い同期モードにおいて、複数のセンサからすべてのセンサデータサンプルを一括で受信することができる。
【００４５】
プロセッサからセンサへの1つまたは複数のメッセージを備えるタイマ補正メッセージの単一のセットを送信することによってセンサを再同期する周波数を決定するための方法が企図された。センサを再同期する周波数はT_Phの逆数であることを諒解されたい。
【００４６】
本開示のさらなる態様によれば、時間制御された同期イベントのための特定のハードウェアイベント(または別の例ではハードウェアおよびソフトウェア)を利用する方法および装置が開示される。特定のハードウェアイベントは、使用されるトランスポートシステムまたはインターフェースに依存することがあり、たとえば、イベントは、I2C、I3C、SPIなどの異なるバスインターフェースの間で、ならびに、コントローラ/マスタデバイスとセンサ/スレーブデバイスの間の複数のワイヤレスインターフェースの間で異なる。それにもかかわらず、イベントはコマンドおよびデータの特定のセットを用いて特定され得る。一例では、そのようなコマンドは、たとえば、それ以外は普通のデータ交換(たとえば、センサからのデータの読取り)に使用されるのと同じI2CまたはI3Cトランザクション内で送信されるので、必要とされるエネルギーは無視できる。具体的には、時間同期イベントは、T_Phの間隔でホストコントローラによって送信され得る。ある態様では、時間同期イベントは、トランスポートシステムまたはインターフェース上で生じることが知られているハードウェア(HW)イベントの中から選ばれ得る。I2CまたはI3Cなどのバスに関するある特定の態様では、時間同期イベントとして使用され得るインターフェース上で発生することが知られているいくつかの開始(START)条件があるが、HWイベントはそのようには限定されない。ある態様では、トランスポートシステムまたはインターフェースとは無関係に、HWイベントは、ホストコントローラとセンサの両方に演繹的に知られている相互に特定可能なメッセージからなり得る。したがって、センサ(およびホストコントローラ)は、相互に特定可能なHWイベントがトランスポートシステムまたはインターフェース上で発生するときに、T_Ph間隔の開始を特定し得る。
【００４７】
上で論じられたように、いくつかのシステムでは、異なるセンサまたは他のデバイスが異なる時間にデータをサンプリングする。これは、共通のサンプリング周波数を設定するときでも起きることがあり、それは、異なるセンサデバイスの中のタイマまたは発振器は通常、最終的に離散しないほど正確ではないからである。いくつかのシステム(たとえば、MIPI I3C(商標)仕様に従ったI2CバスまたはI3Cバスシステム)において提案される同期時間制御機構またはHWイベントは、コントローラが同期ティック(ST:SYNC Tick)と呼ばれる同期パルスまたはメッセージを形成するための方法を提供する。この方法では、センサタイマまたは発振器にばらつきがあっても、サンプリングは時間的に非常に接近して実行され、センサタイマまたは発振器によるサンプリング機構の準備および活性化を可能にする。さらに、HWは、ホストコントローラ/マスタおよびセンサ/スレーブによって相互に取り決められ、スレーブ/センサの時間基準(すなわち、その内部タイマ/カウンタ)に対してスレーブ/センサによってタイムスタンプされるべきイベントである。他の例では、HWイベントは線上での通信の始点であることがあり、この始点は、I2C、I3C、またはシステム管理バス(SMBus)に対しては、例として、センサ/スレーブによって記録/タイムスタンプされるべき瞬間となる送信の始点の1つとして選ばれ得る。他のインターフェースでは、HWイベントは何らかの他の機構であり得る。SPIにおけるある例として、HWイベントは、CS線が送信のためにLOWになることであり得る。別の例として、HWイベントのタイミングに関して非常に高速なインターフェースを仮定すると、この瞬間はSPIの場合のようにSTメッセージ自体であることすらもあり、この場合には、メッセージは1マイクロ秒しかかからないので、1秒の長さのT_Phを同期するのに十分である。
【００４８】
別の態様では、STは一般に、インターフェース上に存在する多数の類似するHWイベントのいずれが、T_Phの正しい始点のさらなる計算に使用されるべきものであるかを検証し、実際に特定するように構成される、メッセージであることに留意されたい。HWイベントは、任意の数の既知のイベントであり得る。HWイベントの例として、ST自体が、SPIトランスポートにおける取り決められたイベントを構成することがあり、ここでSTメッセージは全体で1マイクロ秒の時間しかかからず、これは同期イベントに対しては十分に短い。HWイベントの他の例は、トランスポート媒体上でのパルスのエッジであり得る。一部のHWイベントは、パルスの定義されたセットの最後のエッジであることなどの、補足的な特性を有し得る。ワイヤレスシステムでは、ワイヤレスインターフェース上での通信の開始は、HWイベントの構成要素であり得る。ワイヤレスインターフェースの別の例では、HWイベントは、様々な既知のワイヤレスプロトコルに特有の、特別なまたは専用の通信もしくは通信チャネルの使用を通じて通信され得る。加えて、DTもメッセージである。これらの3つの要素、すなわち、HWイベント、メッセージを特定するST、およびメッセージを検証し補正するDTにより、ここで開示される同期手順が達成され得る。メッセージ(たとえば、HWイベント、ST、およびDT)はT_Phの正しい始点から何らかの時間後に送信され得るので、方法はシステム全体のすべての不確実性を包含する。本開示では、HWイベントと、HWイベントを特定するSTメッセージの組合せは、集合的に「同期メッセージ」と呼ばれ得ることに留意されたい。態様では、HWイベントはSTメッセージへと組み込まれることがあり、ここでSTメッセージの最初のエッジまたは時間がHWイベントを構成する。
【００４９】
図4は、インターフェース上での活動の例示的なシステムタイミング図400を示し、ここでこの図は、システムにおける同期されていないまたはランダムなサンプリングタイミングから、T_Ph時間期間にわたるサンプリングのための同期されたタイミング状態への遷移を示す。インターフェースは特定のトランスポートシステムに限定されず、他の例では有線のバスまたはワイヤレスインターフェースを含み得ることに留意されたい。図4の例では3つのセンサが仮定されているが、これは例にすぎず、システムにおいてより少数または多数のセンサが可能であり、本明細書において開示される概念は1つまたは複数のセンサに当てはまることを当業者は諒解するであろう。図4の上の3つのタイムライン402、404、406は、I2Cインターフェース、I3Cインターフェース、SPIインターフェースなどのインターフェース上で可視の活動を示し、インターフェース上でデータサンプルを提供する様々なセンサまたは他のデバイスへホストコントローラにより送信されるコマンドと、様々なセンサまたは他のデバイスからのデータサンプルとを含む。タイムライン402、404、および406はまた、非同期状態402から同期状態406への時間または状態の変化を示す。下の3つのタイムライン408、410、および412は、個々のセンサ(またはデータを提供する他のデバイス)の内部でのデータ可用性を示す。タイムライン402、404、406の場合のように、タイムライン408、410、および412はまた、非同期状態408から同期状態412への時間または状態の変化を示す。タイムライン402のタイムラインは同期プロセスが成し遂げられる前の時間に対応し、タイムライン406は同期プロセスが成し遂げられた後の時間に対応することに留意されたい。
【００５０】
タイムライン402において見られるように、インターフェースによって接続される異なるセンサからのセンサデータ(すなわち、第1のセンサのためのデータ414、第2のセンサのためのデータ416、および第3のセンサのためのデータ418)は、データがインターフェース上で様々な、かつ表面上ランダムな時間に送信されるので同期されておらず、センサはそれぞれの固有のODRおよび関連しないタイマで動作する。この非同期状態のいくつかの態様では、ホストコントローラは、各センサのDRIイベントのために起動し、これは大量のシステムエネルギーを浪費する。同様に、タイムライン408は、様々なセンサにおけるセンサデータ414、416、418の非同期状態を示す。
【００５１】
タイムライン404は、ホストコントローラが時間同期イベントとして情報信号またはメッセージ420を送信し得ることを示し、情報信号またはメッセージは、インターフェースと結合された様々なセンサへ各T_Ph期間の最初に送信される。ある態様によれば、情報メッセージ420の各々は、以下でより詳細に論じられる、同期エッジ、同期パルス、または同期メッセージ(すなわち、同期ティックまたは「ST」メッセージ)、ならびに遅延時間(DT)メッセージなどの、HWイベントからなり得る。本開示では、本明細書において使用される「情報メッセージ」という用語は、組み合わされたST+DTメッセージを含意し、「情報メッセージ」420がST+DTメッセージとして本明細書において言及され得ることも理解されたい。メッセージ420のSTエッジまたはメッセージは、図4ではDT情報からの情報メッセージ420と別個のものとして示されていないが、メッセージ420の最初にあり、DTメッセージとは別個であることがあり、または代替的に、情報メッセージ420の立ち上がりエッジがSTメッセージングを提供し、残りがDT情報からなるように構成されることがある。情報メッセージ420は、タイミングを補正するために、すなわち、ホストコントローラとの同期の目的でタイマを補正するために、センサによって使用可能である。
【００５２】
理想的には、複数の情報メッセージ420の間の時間期間は、時間位相期間T_Phであるべきである。しかしながら、前に言及されたハードウェアおよびソフトウェアのオーバーヘッドにより、新しいT_Ph期間の予想される開始と情報メッセージ420の送信との間には遅延があることがあり、これは本明細書では、図4の参照番号422において示される遅延時間または「DT」と名付けられる。T_Ph期間(およびSTエッジまたはメッセージの発行)の予測不可能で可変の始点に起因し得る潜在的な不正確さを補償するために、DT期間はホストコントローラによって測定されることがあり、この測定された時間期間は情報メッセージ420のDT部分としてホストコントローラによって通信される。さらに、ある態様では、情報メッセージ420のDT部分は、情報メッセージ420のSTエッジまたはメッセージ部分の送信の後で送信される。I3Cインターフェースの例によれば、情報メッセージ420は帯域内で送信され得るので、2つの線(たとえば、SDAおよびSCL)だけを必要とする。さらに、DTメッセージまたはコマンドは、完全に同期したタイミングに対してトランスポートシステムまたは媒体(たとえば、I2CまたはI3Cバス)上で開始条件が相対的に遅延した時間単位の数を提供するように構成され得る。DTメッセージは1データバイトを使用することがあり、ここでこのデータバイトの最上位ビット(MSB)は時間遅延カウンタのオーバーフローが発生したかどうかを示すフラグである。たとえば、値1b'0はオーバーフローを示さない。データバイトの下位7ビットは、有効なタイマ値を格納するように構成され得る。MSBにおける値1b'1は、オーバーフローが発生したことと、データバイトの下位7ビットが有効な値を格納していないことと、センサまたはスレーブが現在の同期手順を中断すべきであることとを示す。
【００５３】
一例では、DTがホストコントローラの内部クロックまたはタイマを参照してホストコントローラによって測定されることにここで留意されたい。一例では、ホストコントローラは、所定の時間(たとえば、「ウォーターマーク」)、またはT_Phを開始するのに完璧な時間(「開始T_Ph時間」と名付けられる)に対応する動作中のタイマ上の同時発生時間を利用し得る。ホストコントローラは次いで、STメッセージをセンサまたはスレーブデバイスに送信するためのインターフェースコントローラ(たとえば、後で論じられる図9に示されるトランスポート媒体インターフェース回路910)にコマンドを送信し得る。このインターフェースコントローラは次いで、送信をスケジューリングし、最終的にインターフェースが利用可能であるときに送信を開始する。インターフェースコントローラは、ホストコントローラの時間基準に対して送信が開始したときの実際の時間(「実際のT_Ph時間」と名付けられる)を記録する(たとえば、このタイミングは、ウォーターマークもしくは同時発生時間、またはそのタイマの派生物を決定するためにホストコントローラが使用したのと同じ動作中のタイマに基づいて決定され得る)。ともかく、これらの2つの時間情報(すなわち、「開始T_Ph時間」および「実際のT_Ph時間」)は関連しており、同じ時間基準、すなわちホストコントローラの時間基準に基づいている。ホストコントローラは次いで、「開始T_Ph時間」と「実際のT_Ph時間」との差を計算し、次いで、スレーブ/センサと以前に取り決められたような時間単位でその差を表し、DTメッセージをフォーマットし、それを同じインターフェースにわたってスレーブ/センサに送信する。したがって、スレーブ/センサは、リアルタイムのHWイベントを受信する時間(すなわち、「実際のT_Ph時間」)から通信されるDTを差し引くことができるので、スレーブ/センサの時間基準(すなわち、センサのタイマ/カウンタ)に対して、T_Phが実際に開始されるべきであった開始T_Ph時間を得ることができる。さらに、遅延時間期間を示す情報は、遅延期間が時間位相期間T_Phの約1/nの長さであることを示すことがあり、ここでnは2のべき乗(たとえば、1、2、4、8、...)である。同期メッセージのタイミングおよび遅延時間期間を示す情報に基づいて、センサ/スレーブは、新しいT_Ph期間の予想される開始を決定することができる。
【００５４】
遅延時間情報を含む情報メッセージ420のタイミングに基づいて、この情報を受信するセンサは、たとえば情報メッセージ420の処理が発生したことを示す、タイムライン410の中のパルスまたはタイムスタンプ424によって示される、次のまたは新しいT_Ph期間の予想される開始を決定し得る。次のT_Ph期間の決定された始点を用いて、センサは次いで、タイムライン412において見られるように、T_Ph期間内の特定の所定の反復において、またはシステム起動間隔においてデータを送信し得る。センサのタイマが同期されるとき、センサデータは、タイムライン412において見られるように、同期されたセンサの各々の各タイムスタンプまたはサンプル周波数で送信され得る。したがって、センサデータは同期され(全般に図4の426を参照されたい)、このデータは、インターフェース上で同期され(例として、タイムライン406の428を参照されたい)、センサのポーリングが成し遂げられるのと同じシステム起動間隔内でデータセットが読み取られるのでホストコントローラによってより効率的に読み取られることが可能である。ある態様によれば、システム起動間隔は調整可能であることにさらに留意されたい。
【００５５】
図4は、センサのサンプリング期間の周波数および位相の調整を、同期されたシステムが提供することを示す。ホストコントローラまたはマスタは、T_Phの反復期間を用いて同期情報(すなわち、情報メッセージ420または同期イベント)を送信する。前に論じられたように、時間位相期間T_Phは、1秒などの比較的長い時間間隔であることがあり、ホストコントローラに結合されるセンサのサンプリング期間の最小公倍数によって割り切れる。しかしながら、現実には、最小公倍数が有用な値となるように、異なるスレーブ/センサとそれらの異なるODRとの間に適切な対応付けを行うことは常に可能とは限らない。そのような場合、同期プロセスは、ODRの一部を調整し、または最悪の場合には、より多数の、しかしより小さいグループの中のセンサを同期し得る。
【００５６】
図4の同期されたタイムラインの例では、ホストコントローラが位相および周波数情報(T_Ph)を送信した後で、センサが、タイムライン412に示されるように、相互に同期される瞬間に自身のデータを準備ができた状態にすることにさらに留意されたい。これは、ホストコントローラの起動期間の数を減らし、所望のセンサデータを読み取るのに必要な費やされるエネルギーを最小にする。
【００５７】
ホストコントローラ(たとえば、205)は、I2CまたはI3Cインターフェースなどのインターフェース217を通じて様々なコマンドおよび対応するデータを送信するように構成され得ることにも留意されたい。ある特定の態様では、ホストコントローラは、センサの動作出力データレートを設定または確立する特定のセンサまたはデバイスに、出力データレート(ODR)コマンドおよびデータを送信する。ODR値は、所与の時間の期間においてセンサにより取られるサンプルの数を示し、インターフェースを通じてデータをサンプリングし送信する各々の特定のセンサまたはデバイスに固有でもある。加えて、ホストコントローラはまた、時間位相期間T_Phを通信するコマンドおよびデータを発行する。ある態様では、T_Phは、選ばれたODRのサンプリング期間の数で表され得る。ホストコントローラにより発行され得る別のコマンドおよびデータは、遅延時間(DT)の分解能の比を表す分解能比(RR:resolution ratio)である。後でより詳細に論じられるように、RRは、T_Ph時間を、2の選択されたべき乗で割った数として表され得る。
【００５８】
前に言及されたように、STおよびDTは多くの異なるタイプのインターフェースにわたって送信されることがあり、本明細書において開示される方法はいずれの1つのタイプのインターフェースにも限定されない。さらなる態様では、方法は、いくつかのセンサがホストコントローラの内部時間基準に対して同期され得る、いくつかのまたは複数のインターフェースならびに複数のインターフェースプロトコル上で使用され得る。これは、HWイベント(すなわち、ST、および/またはSTとDTを一緒に、もしくは対にした)が、遅延時間の測定および送信により、T_Phの正しい始点に関して厳密なまたは正確なタイミングで送信される必要がないので可能になる。
【００５９】
上で論じられたように、T_Ph間隔の始点は、センサの大半がデータを同時に収集する時間に相当することがあり、いくつかのセンサのサンプリングの瞬間はあるT_Ph期間の間に少なくとも一度同時に発生するはずである。これらの同時に発生するサンプリングの瞬間は、すべてのセンサからのデータ転送が、たとえばタイムライン412においても見られるように同じトランザクションの間に発生することを可能にし、サンプリングの瞬間は、図4の垂直方向の破線(たとえば、図4の線430)に見られる。また、ある態様では、T_Ph値は一般に、センサのタイマがT_Phの時間長に関して0.1%の精度に保たれるように選ばれ、この時間長は一般に約1秒である。
【００６０】
図5は、I2CまたはI3Cバスなどのインターフェース上での同期手順の例を示すタイムライン図500を示す。具体的には、図5は、コントローラ(たとえば、ホストコントローラ205)とセンサ(たとえば、210)との間のインターフェースを通じた通信のタイムラインを示し、センサにおいて、センサのタイミングは、複数のセンサを協調させる際の効率性をもたらすように、かつセンサ読取りがデータを重複させないことまたは所望のデータを逃さないことを保証するように、調整される。センサタイミングの調整の一部として、図5の例は、ホストコントローラへのセンサタイマの同期のための遅延時間DTメッセージの前にある、またはそれと対になるSTメッセージを含む、情報メッセージ(たとえば、メッセージ420)を利用する。
【００６１】
タイムライン502は、インターフェース上のセンサ(たとえば、210)から発する通信のホストコントローラ(たとえば、205)による読取りイベントを示す。タイムライン502は、I2CまたはI3Cの場合、開始(504)イベントと、次いで、センサからのデータおよび制御情報506とを含む通信を示す。情報の第1の部分505は、同期ティック(ST)および遅延時間(DT)を含むことがあり、通信情報の残りは、ポーリングされたデータおよび制御情報を交換する典型的な通信を含む。ある態様によれば、STがI2CまたはI3C通信の一部である場合、センサは、STがいつ発生するかを内部的に記録し、STが同期パルスまたはイベントとして使用されることを示すコマンドがSTの後に続く場合、その情報を使用する。別の態様では、同期イベントは、コントローラとセンサとの間の相互に特定可能なハードウェアイベントであり、これは演繹的に決定され得る。ある態様では、ハードウェアイベントは、SDA線の立ち下がりエッジにより定義される開始条件などのI2CまたはI3Cインターフェースに知られている様々な開始条件のうちの1つであり得るが、イベントは当然そのようには限定されない。T_Ph期間内の後続の通信506は、ポーリングまたは他のコマンド/メッセージを含み得る。
【００６２】
具体的には、ポーリングメッセージを含むメッセージ506は、センサがその中でセンササンプルデータをホストコントローラに送信し得る、センサからの応答を引き出す。センサはまた、それら固有のそれぞれのセンサタイマに基づいて、送信時間を示すタイムスタンプを送信し得る。タイムスタンプは、たとえば、センササンプルデータを伴うI2CまたはI3Cバス応答メッセージの一部、I2CまたはI3Cより高速なプロトコル(たとえば、SPI)が使用される場合またはプロセッサとセンサとの間の別個の接続の上にある場合の専用のメッセージのような、任意の適切な形式であることがある。
【００６３】
次のタイムライン508は、センサタイムスタンプ510がセンサ自体で記録されるタイミングを示し、これは時間的には開始メッセージング504に相当する。タイムライン508におけるこれらのタイムスタンプ510は、同期されていない動作を表す。ある態様では、センサは最終的に、任意の対応するセンサデータとともに、これらのタイムスタンプをホストコントローラに送信し得る。これらのタイムスタンプ510は、別個の線上のI2CまたはI3C通信の一部(すなわち、SDA線およびSCL線上の)、またはさらには、通信システムが一例としてSPIなどのI2Cより高速なものである場合には完全なメッセージなどの、多くの形態で構成され得る。
【００６４】
タイムライン512は、ホストコントローラおよびセンサを同期するために使用される、STおよびDTメッセージ514(たとえば、前に論じられたような情報メッセージ420)を示す。STメッセージは、タイミング補正のためにセンサによって使用可能な時間遅延を与える、DTメッセージにより検証される。ホストコントローラにおいて生じる遅延の補正は、STパルス間の時間に基づいてセンサ内で決定されるセンサクロックレートの補正とは異なることにここで留意されたい。別の態様では、メッセージ514におけるSTメッセージおよびDTメッセージは、各メッセージのためのバイト定義(Defining Byte)フィールドに異なる値を設定することによって、互いに区別され得ることに留意されたい。
【００６５】
上で説明されたように、ホストコントローラは、遅延時間(DT)520を決定または測定することができ、これは、同期しているT_Phの始点におけるタイムスタンプパルス518においてタイムライン516上で示されるような、T_Ph期間(シーケンス期間)の予想される始点からの時間である。T_Ph期間の間の追加のセンサタイムスタンプ522は、ホストコントローラと同期される。DTメッセージによって通信される時間補正は、T_Phの始点とSTメッセージがインターフェース上で送出されるときとの間の時間を考慮する。前に説明されたように、この遅延は、ホストコントローラにハードウェアおよびソフトウェアのオーバーヘッドがあるので生じ得る。ハードウェアのオーバーヘッドは通常、ホストコントローラのデジタル論理のレイテンシから前もって知られている。一方、ソフトウェアオーバーヘッドのレイテンシは、より不安定であることがあり、オペレーティングシステムまたは制御ソフトウェアにおける優先権の競合から生じることがある。たとえば、ソフトウェアは、STが送信されようとされている時間の間、優先権の割込みを扱っていることがある。これは、STの送信を遅らせる可能性がある。さらに、これらの遅延は、サイクルごとに変化し得る。したがって、測定されたDT520をSTとともに送信することは、T_Ph期間の開始およびSTの送信の遅延にセンサが適応するための能力を与える。したがって、DTメッセージは実質的に、各STタイムスタンプを認定する。他の態様によれば、STメッセージは好ましくは開始条件(およびダイレクトメッセージ(Direct Message)に対してはスレーブアドレス)の後に可能な限り直ちに送信され、DTメッセージが送受信される十分な時間を提供することに留意されたい。加えて、DTメッセージは、後でより詳細に論じられるように、次の最短のポーリング時間枠の前に到達すべきである。またさらなる態様によれば、DTメッセージは、開始条件と要求されるT_Phの始点との間の時間遅延、またはそうでなければ、現在の同期時間枠の中断順序を格納することがある。
【００６６】
動作において、各センサは、HWイベントが検出される瞬間に内部タイマの値を記録するように構成され得る。ある例では、開始条件のSDAの立ち下がりエッジは、I2CまたはI3Cバスを使用する例では、インターフェース上で検出されることになるHWイベントであり得る。そのような場合、最後の開始の記録は、レジスタまたは値を記憶するための同様のデバイスに記憶され得る。センサが、スレーブアドレスまたはブロードキャストコマンドのいずれかと、STメッセージとを認識するとき、各センサまたはスレーブデバイスは次いで、新しいT_Ph期間の開始時間の基準として、記憶されている開始時間を使用するように構成される。次いで、情報メッセージ(たとえば、420または514)の一部である、後続のDTメッセージを認識すると、各センサまたはスレーブデバイスは、その内部タイマに関して、T_Ph開始時間およびT_Ph時間長(必要であれば)を補正することができ、または、現在の同期手順を中断して、内部タイマの動作パラメータを維持する。T_Ph間隔が満了すると(たとえば、一例では約1.0秒後)、ホストコントローラまたはマスタは、次いで上で説明された方式で次のSTメッセージを、その後にDTメッセージを送信することによって、同期イベントを反復する。
【００６７】
図5の同期されたタイミングを実施するためのシステムの構成またはセットアップの間、様々なコマンドが、たとえば特にI2CおよびI3Cシステムにおいて、マスタまたはホストコントローラ(たとえば、205)によってセンサ(たとえば、センサ/スレーブ210)に発行され得るが、それらの機能はI2CおよびI3Cシステムに必ずしも限定されない。上で論じられたように、ホストコントローラは、各センサのために出力データレート(ODR)コマンドを発行する。ある態様では、ODRコマンドは動作中のODRをセンサに通信し得る。別の態様では、ODRコマンドコードは、センサ固有のデータの別のバイトを伴う単一のバイト(0xXX)であり得る。
【００６８】
構成の間の別のパラメータは、T_Ph時間期間の時間長を設定するためのコマンドであり(すなわち、同期イベント反復期間または同期期間)、これはTPHコマンドとも呼ばれ得る。このコマンドは、T_Phの反復レートを設定する。ある態様では、STメッセージは、バイト定義フィールド内にこのTPHコマンドコードを含み、それに続いて、特定の時間の設定または値に関する固有のデータバイトを含み得る。
【００６９】
構成の間に使用され得るさらに別のコマンドは、各センサまたはすべてのセンサに固有であり得る時間単位(TU)コマンドである。このコマンドは、センサまたはスレーブデバイスに転送される時間単位の値を設定する。ある態様では、STメッセージは、バイト定義フィールド内にこのTPHコマンドコードを含み、それに続いて、特定の時間の設定または値に関する固有のデータバイトを含み得る。
【００７０】
加えて、システムの構成の間の別のコマンドは、ホストコントローラによってセンサに送信される分解能比(RR)コマンドである。分解能比コマンドは、DTコマンドのためのT_Ph時間の分解能ステップを計算するために適用される除算係数を提供する。遅延時間を送信するためにT_Phの相対的な除算を使用することで、ホストコントローラとセンサのいずれかが互いの実際のタイマまたはクロックの値を知る必要がなくなる。
【００７１】
T_Phの分解能ステップの計算は、対応するT_Ph時間期間をRRと乗算することで決定される。上で説明されたように、RRは、T_Ph時間を2の選択された逆べき乗で割った数として表される。ある例として、RR値は2-xとして表されることがあり、ここでxは11から14までの整数値であり得る(したがって、RR値は2-11から2-14にわたる)。RRコマンドまたはメッセージの構造に関して、どのT_Phの除算係数が、2の逆べき乗である整数値11から値14までの時間分解能ステップを計算するために使用されるかをセンサに示すために、RRメッセージの中の2つの最下位ビット(LSB)が使用され得る(たとえば、2'b00⇔2^(-11)、2'b01⇔2^(-12)、2'b10⇔2^(-13)、2'b11⇔2^(-14))。したがって、T_Ph期間が1秒(すなわち、1000ms)と仮定され、RR値が2-11に設定される場合、たとえば、分解能ステップ時間は1000ms×2-11すなわち488μsである。除算係数は2の整数乗として表されるので、乗算演算は、除数値の正の整数の指数部と同じ数だけ、位置を単に右シフトすることであることに留意されたい。ある態様では、DTメッセージは、遅延ステップを通信するために7ビットが使用され得るように、かつ最上位ビット(MSB)が中断を示すように、1バイトを用いて構成され得る(しかし、メッセージは1バイトのデータには必ずしも限定されない)。したがって、絶対的な最大遅延時間は、127個の分解能ステップに相当する時間期間である。T_Ph期間の除算係数として決定される分解能ステップ時間、およびST+DTメッセージが送信されるべき最大遅延時間(DT)に対する分解能ステップの所定の数に基づいて、最大遅延時間が計算され得る。たとえば、分解能ステップ時間が上の例からの488μsである場合、最大のDT補正範囲は488μs×127すなわち62.01msである。以下のTable 1(表1)は、11から14までの異なるT_Ph期間およびRR値のもとでの、最大のST+DT遅延時間(またはDT補正範囲)の様々な数の例を示す。
【００７２】
【表１】
2018534688.tif 000003
【００７３】
特定のシステムでは、ST+DTメッセージを送信することができない場合、またはシステムがエラー状態にある場合であっても、センサがデータを利用可能にすることが不可欠であることに留意されたい。それは、センサデータが、ホストコントローラの直接の制御下にない他のデバイスまたはプロセスのために必要であり得るからである。この方法は、STおよびDTが一緒に対になり、センサデバイスによってそのように認識されることを実現するので、STコマンドをDT補正範囲内で与えることができない場合、STコマンドははるかに後に提供されなければならない。そのような場合、STメッセージは、同期中断順序についてDTの前に来なければならない。その後に、対になったDTによって検証された、正しいSTが続く。
【００７４】
RRは、ホストコントローラ/マスタおよびセンサ/スレーブのタイマが基礎とする任意の実時間単位に適した、遅延時間を表すコンパクトな方法を提供することにここで留意されたい。T_Ph全体の数を2のべき乗で割ることでDTを指定することによって、結果の分解能が暗黙的に設定される。DTを表すためにRRを使用することの効率性とは対照的に、T_Phが200msである場合にDTをミリ秒で表すこと、または1秒以上のT_Phに対してDTをマイクロ秒で表すことは非常に有用または効率的ではない。
【００７５】
本明細書において開示される同期の動作に影響を及ぼす他の要因には、SD+DTメッセージの開始イベントが、最も遅いあり得るセンサまたはスレーブを掴むために、同期されたタイマの予想されるドリフトの少なくとも後でバスに到達しなければならないという、考慮すべき事項がある。さらに、ハードウェア、ファームウェア、およびソフトウェアの遅れによるホストコントローラの不確実性により、ST+DTメッセージの開始イベントのためのSDAの立ち下がりエッジがさらに遅れて来る可能性があり、この不確実性は本明細書では「ジッタ」と名付けられる。しかしながら、ST+DTメッセージの開始イベント条件は、正しいデータを読み取るのに受け入れ可能なタイミングよりも遅れて来てはならず、すなわち、新しいデータがセンサにおける出力レジスタまたはFIFOバッファを満たし始める前に読取りが行われる必要がある。したがって、同期されたタイマのドリフトおよびホストコントローラのジッタが考慮され軽減されることを確実にするための、方法および装置も企図される。
【００７６】
ある態様では、「ジッタ」という用語は、ホストコントローラが理想的なまたは予想される時間においてSTメッセージを発行することの統計的な不確実性の合計を含意し得る(たとえば、不確実性が±1msである場合、すべてのあり得るばらつきをカバーするには、間隔全体に対して全体の不確実性は1ms+1ms=2msである)。加えて、センサ上のタイマのタイミングには範囲があり、これは、量子化誤差を含むジッタによるものであり得る。このタイミングの範囲は、ホストコントローラのタイマにおいて測定されるT_Ph期間の百分率として表され得る。システム全体の所与のジッタに対して、最大のT_Phが決定され得る。
【００７７】
図6は、ジッタおよび同期メッセージのタイミングを考慮することによってポーリングのタイミングを設定することを示すタイムライン図600を示す。具体的には、図6は、センサの同期およびポーリングに対するジッタの影響と、システムの中のセンサからのデータの適切なポーリングおよび読取りを確実にするための最大読取り時間枠の決定とを示す。第1のタイムライン602は、出力データレート(ODR)期間またはポーリング期間603の初めにおける、3つのあり得るT_Ph期間のマーク604、606、608を示す。マーク604は理想的なタイミング点を表し、一方でマーク606および608は速い方の限界と遅い方の限界をそれぞれ表す(たとえば、単なる一例として、マーク606におけるT_Ph期間の-0.1%およびマーク608におけるT_Ph期間の+0.1%)。理想的なマーク、速いマーク、および遅いマークは、これらのタイミングがどこで発生するかを視覚化するものとして、単なる例示を目的に示されていることに留意されたい。次の3つのタイムライン610、612、および614は、センサ上での理想的な、速い、および遅いタイマまたはクロックを表し、ここで、理想的な場合からの速い場合または遅い場合の偏差は、センサに対する許容可能性の範囲を表す。センサタイムスタンプの時間の量は、時間的に離れており(すなわち、速いタイムスタンプ618、理想的なタイムスタンプ616、および遅いタイムスタンプ620)、センサのタイマまたはクロックの生成によって決定される。このタイミングは、温度、電源電圧、およびセンサの動作の他の要素の影響を受け得る。
【００７８】
タイムライン622は、理想的な、速い、または遅いセンサタイミングという様々な状況を考慮することによって、ホストコントローラがセンサにポーリングし得る時間を示す。パルス624によって示されるようなポーリングを開始するための最小の遅延は、時点626において見られるように、遅いセンサタイミングのタイムスタンプ620のすぐ後の時間に発生するパルスタイミング624により示されるように、さらに遅いセンサタイミングがデータサンプリングを完了したことを確実にするのに十分遅くなければならない。しかしながら、このタイミングは、ホストコントローラがその時間丁度にポーリングすることを保証できる場合にのみ、可能である。しかしながら、前に言及されたように、ホストコントローラ自体に、ハードウェア、ファームウェア、およびソフトウェアの遅延が原因で、ポーリングを実際にいつ成し遂げることが可能かについてのばらつきがある。このばらつきがホストジッタ最大628として示されており、ここでこの最大のジッタは、最長のあり得る遅延時間を表し、その遅延時間の終わりが、ST+DTパルスに対する最大遅延タイミング630として示されている。ホストジッタ最大(628)時間期間は、演繹的に知られていることがあり、またはホストコントローラにより実行される測定もしくは計算に基づくことがある。
【００７９】
ホストジッタ最大(628)時間が経過した後で、ホストコントローラは、ST+DT情報メッセージ630を送信するために必要な付随する時間期間を用いて、SD+DT情報メッセージ630を送信することによって再同期を実行する。次のセンサ出力データ期間上でセンサデータの適切なサンプルを捉えるために、ホストコントローラは、最速のセンサが更新する前にセンサにポーリングしなければならず(時点632のすぐ前にデータの準備ができていることを示す速いセンサタイムスタンプ618を参照されたい)、速いセンサが自身のデータを準備ができた状態にするまでのセンサ読取り時間枠の最大の時間(すなわち、最大読取り時間枠636)としてマーク634において示されている。最大読取り時間枠の時間は、時間枠が存在することを確実にするために非負である必要がある。最大読取り時間枠のタイミングが、所与のホストジッタ最大628および速いセンサタイムと遅いセンサタイムへの所与の要件のもとで非負の値となることを保証するために、SD+DT情報メッセージ630を送信するレートは、最大読取り時間枠が非負となるのに十分低く設定される。したがって、最大読取り時間枠636の決定は、ST+DT情報メッセージ630をアクティブに設定または調整することを含む。さらに、図6の方法は、同期期間(すなわち、T_Ph)の間にセンサデータがサンプリングされ得るODR期間(たとえば、期間603)の数の決定の計算を可能にすることが諒解されるだろう。たとえば、最速のあり得るセンササンプリングのタイミングが次のODR(すなわち、タイムスタンプ618およびタイミングマーク632)において読み取られるべきデータを変更する前にセンサデータのサンプリングを可能にする、ODR期間の数が決定され得る。同期期間(T_Ph)(または、最初の同期の後に発生する場合には再同期)の間のODR期間の数(またはポーリングのタイミングまたはポーリングサイクルの数)のこの決定からが、ホストコントローラによって設定または決定され得る。
【００８０】
図6に表されるような最速のセンサタイミングから最遅のセンサタイミングまでの範囲(すなわち、606から608)は必ずしも特定の数のセンサを表さず、むしろ、特定のセンサのタイミングのあり得るばらつきのあり得る範囲を示しており(または代替的に、これは集合的にいくつかのセンサのあり得るタイマのばらつきの範囲であり得る)、物理システムの中のセンサの数は1つまたは複数であることがあり、ここでその範囲がその1つまたは複数のセンサの最速および最遅のあり得るタイミングを包含することにさらに留意されたい。
【００８１】
別の態様によれば、ホストコントローラは、データがホストコントローラに対して利用可能になる瞬間を示す、送信されたタイムスタンプ(たとえば、616、618、620、または図6により示されない他の時間)から、センサタイマの漸次的なドリフトを監視し得る。この監視から、最小および/または最大の遅延時間の決定(すなわち、最遅のセンサタイミングと最速のセンサタイミングとの間のばらつきの範囲)が動的に調整され得る。
【００８２】
図7は、センサタイミング補正メッセージを送信するための例示的な方法700のフローチャートを示す。方法700は、例として、ホストコントローラ205またはプロセッサ101などの、マスタまたはホストコントローラを用いて実施され得る。ブロック702において示されるように、方法700は、同期メッセージ(たとえば、STメッセージ)を決定するステップを含み、同期メッセージは、センサ(たとえば、センサ210)に送信され、ホストコントローラおよびセンサのタイミングを同期するための同期期間(たとえば、T_Ph期間)の開始を示すように構成される。ブロック704において、方法はさらに、同期期間の開始と同期メッセージの実際の送信時間との間の時間遅延を示すように構成される、遅延時間メッセージ(すなわち、DT)を決定するステップを含む。ブロック704のプロセスは、同期期間の開始から同期メッセージの実際の送信までの時間をホストコントローラが測定することによって成し遂げられ得ることに留意されたい。
【００８３】
方法700はさらに、ブロック706において示されるように、遅延時間メッセージとともに、またはそれと対にして、同期メッセージを情報メッセージにおいてセンサに送信するステップを含み、情報メッセージはセンサタイマのタイミングをセンサが補正することを可能にするように構成される。ある態様では、DTメッセージは遅延時間をセンサに伝え、このことが、この遅延を考慮してセンサが内部タイマ(たとえば、タイマ215)を補正することを可能にするので、ホストコントローラとの同期が正確に維持される。
【００８４】
前に示されたように、同期信号またはメッセージ(たとえば、HWイベントおよび同期ティック(ST))は、新しい同期期間または時間位相期間(たとえば、T_Ph)の開始を示すために使用され、コマンドおよびデータを伴う開始条件として構成されることがあり、または単に、I2CもしくはI3Cバスメッセージの開始条件の立ち上がりエッジもしくは立ち下がりエッジであることがある。別の例では、この信号はSPIバス上のメッセージであり得る。加えて、1つまたは複数のポーリングメッセージまたはコマンド(たとえば、505または506)が、図5の例に見られるように、特定の同期期間(T_Ph)の間にST+DTを含む情報メッセージの後でセンサに送信され得る。加えて、これらのポーリングメッセージは、ホストコントローラによっても設定され得る、特定のレートまたはサイクル(ODR)で送信され得る。
【００８５】
図8は、図6に示されるような読取り時間枠を決定するための例示的な方法800を示すフローチャートを示す。方法800は、図7に関連して説明される方法とともに、またはそれと並列に実施され得ることにまず留意されたい。図8に見られるように、ブロック802において、ホストコントローラの最大可能ジッタ、およびデータが少なくとも1つのセンサにおいて利用可能になるセンサタイミングの範囲についての決定が行われる。ある態様では、図6に見られるように、ブロック802のプロセスは、ホストコントローラ(たとえば、プロセッサ101またはホストコントローラ205)によって決定されることがあり、ホストジッタ最大628と、最早のタイムスタンプ618および最遅のタイムスタンプ620からのタイミングの範囲との決定であり得る。
【００８６】
方法800はまた、センサタイミングの範囲における最速のセンサタイミングが次のポーリングサイクル(すなわち、次のODRサイクル)におけるセンサデータの変化を示す前に少なくとも1つのセンサからデータを読み取るための時間枠(すなわち、「読取り時間枠」)を割り振ることを確実にするために、決定された最大可能ジッタおよびセンサタイミングの範囲に基づいて情報メッセージ(すなわち、ST+DTメッセージ)を送信するために必要な時間を設定するステップを含む、ブロック804のプロセスを含む。ブロック804のプロセスはまた、ホストコントローラ205またはプロセッサ101などの、ホストコントローラによって実施され得る。さらに、ブロック804のプロセスは、次のODR期間における次の最早または最速のあり得るセンサデータの前の現在のODR期間またはポーリングサイクルの間にセンサからデータを読み取ることを確実にするための、図6に示される最大読取り時間枠636の決定および割振りを含む(たとえば、図6の634を参照されたい)。さらなる態様では、方法800は、決定された最大読取り時間枠と、センサタイミングの範囲の中の最速のセンサタイミングとのうちの少なくとも1つに基づいて、同期期間の中のポーリングサイクル(すなわち、ODRサイクル)の数を決定し設定するステップを含み得る。
【００８７】
図9は、少なくともスレーブデバイスもしくはセンサデバイスと通信可能に結合されるバスインターフェースまたは回路上で、信号、コマンド、およびデータを送信して受信するための、送信機/受信機回路906と結合される処理または論理回路904を含み得る、例示的なホストコントローラまたはマスタデバイス902を示す。送信機/受信機回路906は、バスインターフェースを介してホストコントローラ902に結合されるスレーブまたはセンサデバイスの同期においてタイミングを決定するために少なくとも使用される、タイマ回路またはクロック908を含み得る。示されていないが、ホストコントローラ902は、例として、処理回路904のためのクロッキングなどの、内部クロッキングのための他のクロッキングまたはタイミングデバイスを利用し得る。さらに、送信機/受信機回路906はまた、例としてI2CバスもしくはI3Cバスまたはワイヤレスインターフェースでさえあり得る物理インターフェースと送信機/受信機回路をインターフェースするように構成される、トランスポート媒体インターフェース回路910を含む。さらに、トランスポート媒体は、バスの例ではSDA線およびSCL線などの少なくとも2つの線を利用し得るが、図2のインターフェース217に関して前に論じられたような線をさらに含み得る。
【００８８】
ホストコントローラ902はまた、少なくとも処理回路904と結合されるメモリまたは記憶媒体912を含み、図3〜図8に関連して開示されたものなどの本明細書において開示される様々な方法を、回路904に実施させるための、もしくはそのような方法を実施するように送信機/受信機回路906へ指示させるための、コードまたは命令を含み得る。別の態様では、ホストコントローラ902は、図3〜図8に開示されるようなセンサタイマの補正を成し遂げる機能の一部またはすべてを実行する、専用の同期回路または論理914を含み得る。
【００８９】
図10は、少なくともホストコントローラもしくはマスタデバイスと、しかしバス上の他のデバイスとも通信可能に結合されるバスインターフェースまたは回路上で、信号およびデータを送信して受信するための、送信機/受信機回路1006と結合される処理または論理回路1004を含み得る、例示的なセンサまたはスレーブデバイス1002を示す。送信機/受信機回路1006は、バスインターフェースを介してホストコントローラ(たとえば、コントローラ902)の方向にあるスレーブまたはセンサデバイス1002の同期においてタイミングを決定するために少なくとも使用される、タイマ回路またはクロック1008を含み得る。示されていないが、センサ1002は、例として、処理回路1004のためのクロッキングなどの、センサの内部クロッキングのための他のクロッキングまたはタイミングデバイスを利用し得る。さらに、送信機/受信機回路1006はまた、単に少数の例として、I2CバスもしくはI3Cバスまたはワイヤレスインターフェースであり得る物理インターフェースと送信機/受信機回路をインターフェースするように構成される、トランスポート媒体インターフェース回路1010を含む。さらに、トランスポート媒体インターフェース回路910は、バスの例におけるSDA線およびSCL線などの少なくとも2つの線を利用し得るが、図2のインターフェース217に関して前に論じられたような線をさらに含み得る。
【００９０】
センサ1002はまた、少なくとも処理回路1004と結合されるメモリまたは記憶媒体1012を含み、図3〜図8に関連して開示されたものなどの本明細書において開示される様々な方法、具体的には、たとえば、タイマ回路1008の補正のためのST+DTメッセージ、ならびに最大のDTタイミングを計算するためのRRコマンドを適用することを、回路1004に実施させるための、もしくはそのような方法を実施するように送信機/受信機回路1006へ指示させるための、コードまたは命令を含み得る。別の態様では、センサ1002は、図3〜図8に開示されるようなセンサタイマの補正を成し遂げる機能の一部またはすべてを実行する、専用の同期回路または論理1014を含み得る。
【００９１】
前に説明された本発明の態様は、前に説明されたように、コンピューティングデバイス100のプロセッサ101、ホストコントローラ205、センサ210、ホストコントローラまたはマスタ902、およびスレーブまたはセンサデバイス1002による命令(たとえば、アプリケーション)の実行とともに実装され得ることを諒解されたい。具体的には、限定はされないがプロセッサを含むデバイスの回路は、本発明の実施形態による方法またはプロセス(たとえば、図3〜図8により示されるプロセス)を実行するために、アプリケーション、プログラム、ルーチンの制御下、または命令の実行下で動作し得る。たとえば、そのようなプログラムは、(たとえば、メモリおよび/または他の場所に記憶された)ファームウェアまたはソフトウェアにおいて実装されてもよく、プロセッサ、および/またはデバイスの他の回路によって実装されてもよい。さらに、プロセッサ、マイクロプロセッサ、回路、コントローラなどの用語が、論理、コマンド、命令、ソフトウェア、ファームウェア、機能などを実行することができる任意のタイプの論理または回路を指すことを諒解されたい。
【００９２】
図11は、処理回路1102を利用するホストコントローラ1100のためのハードウェア実装形態の簡略化された例を示す図である。ホストコントローラ1100によって実行される動作の例は、図3、図7および図8のフローチャートならびに図4〜図6のタイムラインに関して上で説明された動作を含む。処理回路1102は、通常、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、シーケンサ、およびステートマシンのうちの1つまたは複数を含み得るプロセッサ1104を有する。処理回路1102は、全般にバス1106により表されるバスアーキテクチャを用いて実装され得る。バス1106は、処理回路1102の具体的な適用例および全体的な設計制約に応じて、任意の数の相互接続バスまたはブリッジを含み得る。バス1106は、プロセッサ1104によって表される1つまたは複数のプロセッサおよび/もしくはハードウェアモジュールと、様々なトランスポートプロトコルもしくはワイヤレスインターフェース(任意選択のアンテナ1112により示される)およびコンピュータ可読記憶媒体1114に従って動作可能な様々なコネクタもしくはワイヤ1110を通じた通信をサポートするように構成されるインターフェースモジュールまたは回路1108とを含む、様々な回路を通信可能に結合する。バス1106はまた、タイミングソース、周辺装置、電圧調整器、および電力管理回路などの、様々な他の回路をつなぐことがあるが、これらの回路は当技術分野においてよく知られており、本明細書では詳しく説明されない。インターフェース1110は、1つまたは複数のトランスポートフォーマットに従って動作可能な1つまたは複数のインターフェースであってよく、ならびに1つまたは複数のスレーブ/センサデバイスまたは他のホストコントローラに通信可能に結合されてもよいことに留意されたい。
【００９３】
プロセッサ1104は、コンピュータ可読記憶媒1114上に記憶されたソフトウェア/命令の実行を含む一般的な処理を担う。ソフトウェア/命令は、プロセッサ1104によって実行されると、任意の特定の装置について前に説明された様々な機能を処理回路1102に実行させる。コンピュータまたはプロセッサ可読記憶媒体1114はまた、コネクタもしくはワイヤ1110またはアンテナ1112を通じて送信されたシンボルから復号されるデータを含む、ソフトウェアを実行するときにプロセッサ1104によって操作されるデータを記憶するためにも使用され得る。処理回路1102はさらに、コンピュータ可読記憶媒体1114に存在する/記憶された、プロセッサ1104の中で動作するソフトウェアモジュール、プロセッサ1104に結合された1つまたは複数のハードウェアモジュール、またはそれらのいくつかの組合せであり得る、モジュール/回路1108の少なくとも1つを含む。モジュール/回路1108は、マイクロコントローラ命令、ステートマシン構成パラメータ、またはそれらの何らかの組合せを含み得る。
【００９４】
一構成では、プロセッサ可読媒体1114は、センサに送信され、ホストコントローラおよびセンサのタイミングを同期するための同期期間の開始を示すように構成される、同期メッセージを決定するための命令を含む。これらの命令は、たとえば、図7のブロック702に示されるプロセスを含む様々な機能をプロセッサ1104に実行させるように構成される。プロセッサ可読媒体1114はまた、同期期間の開始と同期メッセージの実際の送信時間との間の時間遅延を示すように構成される遅延時間メッセージを決定するための命令を含む。これらの命令は、たとえば、図7のブロック704に示されるプロセスを含む様々な機能をプロセッサ1104に実行させるように構成される。加えて、プロセッサ可読媒体1114はまた、遅延時間メッセージとともに同期メッセージを情報メッセージにおいてセンサに送信するための命令を含み、情報メッセージはセンサタイマのタイミングをセンサが補正することを可能にするように構成される。これらの命令は、たとえば、図7のブロック706に示されるプロセスを含む様々な機能をプロセッサ1104に実行させるように構成される。さらに注目に値することに、プロセッサ可読媒体1114は、プロセッサ1104に、図8のブロック802および804の機能ならびに図6のタイムラインを実行させる命令(図示されず)を含み得る。
【００９５】
本明細書において説明される方法は、ワイヤレスワイドエリアネットワーク(WWAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイヤレスパーソナルエリアネットワーク(WPAN)などの様々なワイヤレス通信ネットワークとともに実施され得る。「ネットワーク」および「システム」という用語は、しばしば互換的に使用される。WWANは、符号分割多元接続(CDMA)ネットワーク、時分割多元接続(TDMA)ネットワーク、周波数分割多元接続(FDMA)ネットワーク、直交周波数分割多元接続(OFDMA)ネットワーク、シングルキャリア周波数分割多元接続(SC-FDMA)ネットワークなどであり得る。CDMAネットワークは、cdma2000、Wideband-CDMA(W-CDMA)などの1つまたは複数の無線アクセス技術(RAT)を実装し得る。cdma2000は、IS-95、IS-2000、およびIS-856規格を含む。TDMAネットワークは、Global System for Mobile Communications(GSM(登録商標))、Digital Advanced Mobile Phone System(D-AMPS)、または他の何らかのRATを実装し得る。GSM(登録商標)およびW-CDMAは、「第3世代パートナーシッププロジェクト」(3GPP)という名称のコンソーシアムの文書に記載されている。cdma2000は、「第3世代パートナーシッププロジェクト2」(3GPP2)という名称のコンソーシアムからの文書に記載されている。3GPPおよび3GPP2の文書は、公に入手可能である。WLANは、IEEE802.11xネットワークであってもよく、WPANは、Bluetooth(登録商標)ネットワーク、IEEE802.15x、または何らかの他のタイプのネットワークであってもよい。本技法はまた、WWAN、WLAN、および/またはWPANの任意の組合せとともに実装され得る。
【００９６】
本明細書において提示される例示的な方法、装置、または製造品は、全体的に、または部分的に、モバイル通信デバイスにおいて、またはモバイル通信デバイスとともに使用するために実装され得る。本明細書で使用される場合、「モバイルデバイス」、「モバイル通信デバイス」、「ハンドヘルドデバイス」、「タブレット」など、またはそのような用語の複数形は、互換的に使用されることがあり、1つまたは複数の通信プロトコルに従って適切な通信ネットワークを介して情報のワイヤレス送信または受信を通じて通信することができ、時間の経過とともに場所または位置が変化することがある、任意の種類の専用のコンピューティングプラットフォームまたはデバイスを指すことがある。例示として、専用のモバイル通信デバイスは、たとえば、携帯電話、衛星電話、スマートフォン、ヒートマップまたは無線マップ生成ツールまたはデバイス、被観測信号パラメータ生成ツールまたはデバイス、携帯情報端末(PDA)、ラップトップコンピュータ、パーソナルエンターテインメントシステム、電子ブックリーダ、タブレットパーソナルコンピュータ(PC)、パーソナルオーディオまたはビデオデバイス、パーソナルナビゲーションユニットなどを含み得る。しかしながら、これらは本明細書において説明される1つまたは複数のプロセスまたは動作を容易にするか、またはサポートするために利用され得る、モバイルデバイスに関する説明のための例にすぎないことを諒解されたい。
【００９７】
本明細書において説明される方法は、具体的な適用例に応じて様々な方法で、かつ様々な構成で実施され得る。たとえば、そのような方法は、ソフトウェアとともに、ハードウェア、ファームウェア、および/またはこれらの組合せで実施され得る。たとえば、ハードウェア実装形態では、処理ユニットは、1つもしくは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書において説明される機能を実行するように設計された他のデバイスユニット、および/またはそれらの組合せの中で実装され得る。
【００９８】
本明細書において説明されるメモリまたは記憶媒体は、1次、2次、および/または3次記憶媒体を備え得る。一次記憶媒体は、たとえばランダムアクセスメモリおよび/または読取り専用メモリなどのメモリを含み得る。二次記憶媒体は、磁気またはソリッドステートハードドライブなどの大容量記憶装置を含み得る。三次記憶媒体は、磁気または光ディスク、磁気テープ、ソリッドステート記憶デバイスなどのリムーバブル記憶媒体を含み得る。いくつかの実装形態では、記憶媒体またはその一部は、プロセッサのようなコンピューティングプラットフォームの他の構成要素を動作可能に受け入れ、または場合によってはそれに結合するように構成可能であり得る。
【００９９】
少なくともいくつかの実装形態では、本明細書において説明される記憶媒体の1つまたは複数の部分は、記憶媒体の特定の状態によって表現されるデータおよび/または情報を表す信号を記憶し得る。たとえば、データおよび/または情報を表す電子信号は、記憶媒体(たとえばメモリ)の一部分に、バイナリ情報(たとえば、1および0)としてデータおよび/または情報を表すように記憶媒体のそのような部分の状態に影響を与えることによって、またはそのような状態を変更することによって「記憶され」得る。したがって、特定の実装形態では、データおよび/または情報を表す信号を記憶するために記憶媒体の一部分の状態をそのように変更することは、記憶媒体を異なる状態または物に変換することに相当する。
【０１００】
上述の詳細な説明において、多くの具体的な詳細が、特許請求される主題の完全な理解をもたらすために説明されてきた。しかし、特許請求される主題は、これらの具体的な詳細なしに実践され得ることは、当業者には理解されよう。他の例では、当業者であれば既知である方法および装置は、特許請求される主題を不明瞭にしないために、詳細には説明されていない。
【０１０１】
上述の詳細な説明のいくつかの部分は、特定の装置または専用のコンピューティングデバイスもしくはプラットフォームのメモリ内に記憶される、バイナリのデジタル電子信号上の、動作のアルゴリズムまたは記号による表現の形で提示されてきた。この特定の明細書の文脈において、「特定の装置」などの用語は、プログラムされると、プログラムソフトウェアからの命令に従って特定の機能を実行する汎用コンピュータを含む。アルゴリズム記述または記号表現は、当業者が作業内容を他の当業者に伝えるために、信号処理または関連技術において当業者によって使用される技法の例である。アルゴリズムは、ここでは、また一般に、所望の結果につながる首尾一貫した動作シーケンスまたは同様の信号処理であると見なされる。この文脈では、演算または処理は物理量の物理的操作を伴う。通常、必須ではないが、そのような量は、情報を表す電子信号として、記憶され、転送され、組み合わされ、比較され、または別の方法で操作されることが可能な、電気信号または磁気信号の形態をとり得る。場合によっては、主に一般に使用されるという理由から、そのような信号を、ビット、データ、値、要素、記号、文字、語、数字、番号、情報などとして言及することが便利であることがわかっている。しかしながら、これらの用語または同様の用語のすべてが、適切な物理量と関連付けられるべきであり、便宜的な呼び方にすぎないことは理解されたい。
【０１０２】
別段に明記されていない限り、以下の論述から明らかなように、本明細書全体にわたって、「処理する」、「算出する」、「計算する」、「特定する」、「決定する」、「確立する」、「取得する」などの用語を利用する論述は、専用コンピュータまたは類似の専用電子コンピューティングデバイスなどの、特定の装置の動作またはプロセスを指すことを諒解されたい。したがって、本明細書の文脈では、専用コンピュータまたは同様の専用電子コンピューティングデバイスは、専用コンピュータまたは同様の専用電子コンピューティングデバイスのメモリ、レジスタ、または他の情報記憶デバイス、送信デバイス、またはディスプレイデバイス内の、電子的または磁気的な物理量として一般に表される信号を操作または変換することが可能である。この特定の特許出願の文脈において、「特定の装置」という用語は、プログラムされると、プログラムソフトウェアからの命令に従って特定の機能を実行する汎用コンピュータを含み得る。
【０１０３】
本明細書の全体で、「一例」、「例」、「いくつかの例」または「例示的な実装形態」への言及は、特徴および/もしくは例に関して説明される特定の特徴、構造物または特性が、特許請求する主題の少なくとも1つの特徴および/または例に含まれ得ることを意味する。したがって、本明細書全体の様々な場所における「一例では」、「例」、「いくつかの例では」、もしくは「いくつかの実装形態では」という語句または他の同様の語句の出現は、同じ特徴、例および/または限定にすべて言及しているとは限らない。さらに、特定の特徴、構造または特性は、1つまたは複数の例および/または特徴において組み合わされ得る。
【０１０４】
現在例示的な特徴と考えられることが示され説明されたが、特許請求される主題から逸脱することなく、様々な他の修正が行われ、均等物が代用され得ることが、当業者には理解されよう。さらに、本明細書において説明された主要な概念から逸脱することなく、特定の状況を特許請求される主題の教示に適応させるために、多くの修正が行われ得る。したがって、特許請求される主題は、開示される特定の例に限定されず、そのような特許請求される主題は添付の特許請求の範囲内にあるすべての態様およびその均等物も含み得ることが意図されている。
【０１０５】
開示される処理におけるステップの特定の順序または階層は、例示的な手法の一例にすぎないことを理解されたい。設計上の選好に基づいて、プロセスにおけるステップの特定の順序または階層は、本開示の範囲内にとどまりながら再構成され得ることを理解されたい。添付の方法クレームは、様々なステップの要素を例示的な順序で提示したものであり、提示された特定の順序または階層に限定されるものではない。
【０１０６】
情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得ることを当業者は理解されよう。たとえば、上の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップが、電圧、電流、電磁波、磁場もしくは磁気粒子、光場もしくは光粒子、またはそれらの任意の組合せによって表され得る。
【０１０７】
さらに、本明細書において開示された実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解するであろう。ハードウェアとソフトウェアとのこの互換性を明瞭に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上では全般にその機能に関して説明された。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、具体的な適用例および全体的なシステムに課された設計制約に依存する。当業者は、具体的な適用例ごとに様々な方法で説明された機能を実装することができるが、そのような実装の決定は本発明の範囲から逸脱するものと解釈されるべきではない。
【０１０８】
本明細書において開示された実施形態に関連して説明された様々な例示的な論理ブロック、モジュールおよび回路は、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別のゲートもしくはトランジスタ論理、個別のハードウェア構成要素、または本明細書において説明される機能を実行するように設計されたそれらの任意の組合せを用いて、実装または実行され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ(たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成)として実装され得る。
【０１０９】
本明細書において開示される実施形態に関して説明された方法またはアルゴリズムのステップは、ハードウェアにおいて直接具現化されてもよく、プロセッサによって実行されるソフトウェアモジュールにおいて具現化されてもよく、またはこれら2つの組合せにおいて具現化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形式の記憶媒体の中に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、また記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体であり得る。プロセッサおよび記憶媒体は、ASICの中に存在し得る。ASICは、ユーザ端末の中に存在し得る。代替として、プロセッサおよび記憶媒体は、個別の構成要素としてユーザ端末の中に存在し得る。
【０１１０】
開示された実施形態についての先の説明は、当業者が本発明を作成または使用することを可能にするように提供される。これらの実施形態に対する様々な変更形態が、当業者には容易に明らかとなり、本明細書において規定される一般原理は、本発明の趣旨または範囲から逸脱することなく他の実施形態に適用され得る。したがって、本発明は、本明細書に示される実施形態に限定されるものではなく、本明細書において開示される原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【０１１１】
100  デバイス
101  プロセッサまたはコントローラ
105  メモリ
110  ネットワークインターフェース
111  WiFi
115  ワイヤレスサブシステム
120  ディスプレイ
121  電源
125  I/Oコントローラ
135  周辺光センサ
140  加速度計
145  ジャイロスコープ
150  磁力計
151  温度センサ
152  赤色-緑色-青色カラーセンサ
153  紫外線センサ
155  気圧センサ
160  GPS
161  セルラ
165  マイクロフォン
167  近接センサ
169  NFC
170  カメラ
171  高粒度位置データ収集
200  ハードウェア環境
205  ホストコントローラ
207  クロック
210  センサ
215  タイマ
217  インターフェース
220  SDA線
230  SCL線
240  DRI線
250  クロック補正線
300  方法
422  遅延時間(DT)
424  パルス
428  同期データ
500  タイムライン図
502  タイムライン
504  開始
505  情報の第1の部分
506  メッセージ
508  次のタイムライン
510  タイムスタンプ
512  タイムライン
514  STおよびDTメッセージ
516  タイムライン
518  タイムスタンプパルス
520  遅延時間(DT)
522  センサタイムスタンプ
600  タイムライン図
602  第1のタイムライン
604  T_Ph期間のマーク
606  T_Ph期間のマーク
608  T_Ph期間のマーク
610  タイムライン
612  タイムライン
614  タイムライン
616  理想的なタイムスタンプ
618  早いタイムスタンプ
620  遅いタイムスタンプ
622  タイムライン
624  パルスタイミング
626  時点
628  ホストジッタ最大
630  ST+DT情報メッセージ
632  時点
634  マーク
636  最大読取り時間枠
700  方法
800  方法
902  ホストコントローラまたはマスタデバイス
904  処理/論理回路
906  送信機および受信機回路
908  クロック
910  トランスポート媒体インターフェース回路
912  メモリ
914  同期回路
1002  センサまたはスレーブデバイス
1004  処理/論理回路
1006  送信機および受信機回路
1008  クロック、タイマ回路
1010  トランスポート媒体インターフェース回路
1012  メモリ
1014  論理
1100  ホストコントローラ
1102  処理回路
1104  プロセッサ
1106  バス
1108  インターフェースモジュール/回路
1110  コネクタまたはワイヤ
1112  アンテナ
1114  プロセッサ可読記憶媒体
【図１】
2018534688.tif 000004
【図２】
2018534688.tif 000005
【図３】
2018534688.tif 000006
【図４】
2018534688.tif 000007
【図５】
2018534688.tif 000008
【図６】
2018534688.tif 000009
【図７】
2018534688.tif 000010
【図８】
2018534688.tif 000011
【図９】
2018534688.tif 000012
【図１０】
2018534688.tif 000013
【図１１】
2018534688.tif 000014
【手続補正書】
【提出日】平成30年4月24日(2018.4.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホストコントローラを用いて実施されるセンサタイミング補正メッセージを送信するための方法であって、
同期メッセージを決定するステップであって、前記同期メッセージが、センサに送信され、前記ホストコントローラおよび前記センサのタイミングを同期するための同期期間の開始を示すように構成される、ステップと、
前記同期期間の前記開始と前記同期メッセージの実際の送信時間との間の時間遅延を示すように構成される遅延時間メッセージを決定するステップと、
前記遅延時間メッセージとともに前記同期メッセージを情報メッセージにおいて前記センサに送信するステップであって、前記情報メッセージがセンサタイマのタイミングを前記センサが補正することを可能にするように構成される、ステップと、
分解能比コマンドを前記センサに通信するステップであって、前記分解能比コマンドが、前記遅延時間メッセージのための分解能ステップ時間を計算するための前記同期期間の除算係数を含み、前記分解能ステップ時間が前記同期期間の長さと前記除算係数を乗算することによって計算される、ステップとを備える、方法。
【請求項２】
前記情報メッセージが、前記同期メッセージの前記タイミングおよび前記センサにおいてタイミングを補正するための前記遅延時間メッセージに基づいて前記センサが次の同期期間位相時間期間の予想される開始を決定することを可能にするように構成される、請求項1に記載の方法。
【請求項３】
前記分解能ステップ時間および最大遅延時間に対する分解能ステップの所定の数に基づいて、前記遅延時間メッセージのための最大遅延時間をセンサにおいて計算するステップをさらに備える、請求項1に記載の方法。
【請求項４】
前記分解能比コマンドが、前記分解能ステップを決定するために2の逆べき乗として適用される複数の整数値を通信する2ビットメッセージとして構成される、請求項1に記載の方法。
【請求項５】
前記同期期間が、時間位相期間(T_Ph)にわたって発生するサンプリングイベントの所定の数に関して表現可能な前記時間位相期間を備える、請求項1に記載の方法。
【請求項６】
前記インターフェースが、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの1つまたは複数を備える、請求項5に記載の方法。
【請求項７】
ホストコントローラの最大可能ジッタ、およびデータが少なくとも1つのセンサにおいて利用可能になるセンサタイミングの範囲を決定するステップと、
センサタイミングの前記範囲における最速のセンサタイミングが次のポーリングサイクルにおける前記センサデータの変化を示す前に前記少なくとも1つのセンサからデータを読み取るための時間枠を割り振ることを確実にするために、前記決定された最大可能ジッタおよびセンサタイミングの前記範囲に基づいて前記情報メッセージを送信するために必要な時間を設定するステップとをさらに備える、請求項1に記載の方法。
【請求項８】
前記少なくとも1つのセンサからデータを読み取るための前記決定された最大の時間枠と、センサタイミングの前記範囲の中の前記最速のセンサタイミングとのうちの少なくとも1つに基づいて、前記同期期間の中のポーリングサイクルの数を決定して設定するステップをさらに備える、請求項6に記載の方法。
【請求項９】
ホストコントローラデバイスであって、
少なくとも1つのトランスポート媒体を介して少なくとも1つのセンサデバイスに通信可能に結合されるトランスポート媒体インターフェースと、
前記トランスポート媒体インターフェースに通信可能に結合される少なくとも1つの処理回路とを備え、前記少なくとも1つの処理回路が、
同期メッセージを決定することであって、前記同期メッセージが、センサに送信され、前記ホストコントローラおよび前記センサのタイミングを同期するための同期期間の開始を示すように構成される、決定することと、
前記同期期間の前記開始と前記同期メッセージの実際の送信時間との間の時間遅延を示すように構成される遅延時間メッセージを決定することと、
前記遅延時間メッセージとともに前記同期メッセージを情報メッセージにおいて前記センサに送信することであって、前記情報メッセージがセンサタイマのタイミングを前記センサが補正することを可能にするように構成される、送信することと、
分解能比コマンドを前記センサに通信することであって、前記分解能比コマンドが、前記遅延時間メッセージのための分解能ステップ時間を計算するための前記同期期間の除算係数を含み、前記分解能ステップ時間が前記同期期間の長さと前記除算係数を乗算することによって計算される、通信することと
を行うように構成される、ホストコントローラデバイス。
【請求項１０】
前記情報メッセージが、前記同期メッセージの前記タイミングおよび前記センサにおいてタイミングを補正するための前記遅延時間メッセージに基づいて前記センサが次の同期期間位相時間期間の予想される開始を決定することを可能にするように構成される、請求項9に記載のホストコントローラデバイス。
【請求項１１】
前記分解能比コマンドが、前記分解能ステップを決定するために2の逆べき乗として適用される複数の整数値を通信する2ビットメッセージとして構成される、請求項9に記載のホストコントローラデバイス。
【請求項１２】
前記トランスポート媒体が、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの1つまたは複数を備える、請求項9に記載のホストコントローラ。
【請求項１３】
前記少なくとも1つの処理回路がさらに、
ホストコントローラの最大可能ジッタ、およびデータが少なくとも1つのセンサにおいて利用可能になるセンサタイミングの範囲を決定し、
センサタイミングの前記範囲における最速のセンサタイミングが次のポーリングサイクルにおける前記センサデータの変化を示す前に前記少なくとも1つのセンサからデータを読み取るための時間枠を割り振ることを確実にするために、前記決定された最大可能ジッタおよびセンサタイミングの前記範囲に基づいて前記情報メッセージを送信するために必要な時間を設定するように構成される、請求項9に記載のホストコントローラデバイス。
【請求項１４】
1つまたは複数の命令を有するプロセッサ可読記憶媒体であって、前記1つまたは複数の命令が、少なくとも1つの処理回路によって実行されると、前記少なくとも1つの処理回路に、
同期メッセージを決定することであって、前記同期メッセージが、トランスポート媒体上でホストコントローラからセンサに送信され、前記ホストコントローラおよび前記センサのタイミングを同期するための同期期間の開始を示すように構成される、決定することと、
前記同期期間の前記開始と前記同期メッセージの実際の送信時間との間の時間遅延を示すように構成される遅延時間メッセージを決定することと、
前記遅延時間メッセージとともに前記同期メッセージを情報メッセージにおいて前記センサへ送信することであって、前記情報メッセージがセンサタイマのタイミングを前記センサが補正することを可能にするように構成される、送信することと、
分解能比コマンドを前記センサへ通信することであって、前記分解能比コマンドが、前記遅延時間メッセージのための分解能ステップ時間を計算するための前記同期期間の除算係数を含み、前記分解能ステップ時間が前記同期期間の長さと前記除算係数を乗算することによって計算される、通信することとを行わせる、プロセッサ可読記憶媒体。
【請求項１５】
前記情報メッセージが、前記同期メッセージの前記タイミングおよび前記センサにおいてタイミングを補正するための前記遅延時間メッセージに基づいて前記センサが次の同期期間位相時間期間の予想される開始を決定することを可能にするように構成される、請求項14に記載のプロセッサ可読記憶媒体。
【請求項１６】
前記トランスポート媒体が、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの1つまたは複数を備える、請求項14に記載のプロセッサ可読記憶媒体。
【請求項１７】
前記1つまたは複数の命令がさらに、前記少なくとも1つの処理回路に、
ホストコントローラの最大可能ジッタ、およびデータが少なくとも1つのセンサにおいて利用可能になるセンサタイミングの範囲を決定させ、
センサタイミングの前記範囲における最速のセンサタイミングが次のポーリングサイクルにおける前記センサデータの変化を示す前に前記少なくとも1つのセンサからデータを読み取るための時間枠を割り振ることを確実にするために、前記決定された最大可能ジッタおよびセンサタイミングの前記範囲に基づいて前記情報メッセージを送信するために必要な時間を設定させる、請求項14に記載のプロセッサ可読記憶媒体。
【国際調査報告】
2018534688.tif 000015
2018534688.tif 000016
2018534688.tif 000017