(57)【要約】  システムの中のコントローラおよびセンサを同期するための方法および装置が開示される。タイムスタンプが、ホストコントローラと結合されるインターフェース上のインターフェースイベントのホストコントローラにおいて、第1の時間にセンサにより引き起こされるインターフェースイベントの発行を特定するセンサからのメッセージをそのインターフェース上で検出することを通じて提供される。それに応答して、コントローラは、それぞれの第2の時間および第3の時間にインターフェース上で第1のイベントおよび第2のイベントを発行しながら、各発行の後でコントローラにおいてクロックのサイクルを同時にカウントする。コントローラはまた、第1のイベントおよび第2のイベントに対して記録された内部センサクロック時間を表す第1のセンサカウントおよび第2のセンサカウントを受信する。コントローラは次いで、センサからのタイムスタンプを直接必要とすることなく、内部コントローラカウントとセンサカウントの両方に基づいて、第1の時間に対応するインターフェースイベントのタイムスタンプを正確に計算し得る。
2018534686.tif 000002
【特許請求の範囲】
【請求項１】
ホストコントローラと結合されるインターフェース上でのインターフェースイベントのホストコントローラにおけるタイムスタンプを提供するための方法であって、
センサによって引き起こされる前記インターフェースイベントの発行を特定する、前記センサからのメッセージを、前記インターフェース上で検出するステップであって、前記インターフェースイベントが前記センサ上で第1の時間に発生する、ステップと、
前記受信されたメッセージおよびホストコントローラクロックのサイクルの第1のカウントを始動したことに応答して前記第1の時間の後の第2の時間に前記インターフェース上で第1のイベントを発行するステップであって、前記第1のカウントの前記始動が前記第1のイベントを発行することと同時である、ステップと、
前記第2の時間の後の第3の時間に前記インターフェース上で第2のイベントを発行するステップと、
前記センサから第1のセンサクロックカウントおよび第2のセンサクロックカウントを受信するステップであって、前記第1のセンサクロックカウントが前記第1の時間から前記第2の時間までの内部センサクロックのサイクルのカウントであり、前記第2のセンサクロックカウントが前記第2の時間から前記第3の時間までの前記内部センサクロックのサイクルのカウントである、ステップと、
ホストコントローラクロックのサイクルの前記第1のカウント、前記第1のセンサクロックカウント、前記第2のセンサクロックカウント、および前記第2の時間のホストコントローラタイムスタンプに少なくとも一部基づいて、前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを前記ホストコントローラ内で決定するステップとを備える、方法。
【請求項２】
前記ホストコントローラおよび前記センサが、I2C、I3C、SPI、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの1つまたは複数を介して通信可能に結合される、請求項1に記載の方法。
【請求項３】
前記第1のイベントおよび前記第2のイベントの各々が、前記ホストコントローラと前記センサの両方に知られている所定のハードウェアイベントを備える、請求項1に記載の方法。
【請求項４】
前記メッセージが前記センサによって発行される割込み要求を備える、請求項1に記載の方法。
【請求項５】
前記受信された第1のセンサクロックカウントおよび第2のセンサクロックカウントが、共通の係数の値とは無関係に前記第1のセンサクロックカウントと前記第2のセンサクロックカウントの比が一定のままであるように前記共通の係数によって低減される低減されたカウント数の値を備える、請求項1に記載の方法。
【請求項６】
前記共通の係数による前記第1のセンサクロックカウントおよび前記第2のセンサクロックカウントの前記値の前記低減がさらに、
2という係数によって前記第1のセンサクロックカウントの現在のカウントを低減するステップと、
2という係数によって前記第1のセンサクロックカウントをカウントするレートを低減するステップと、
少なくとも2という係数によって前記第2のセンサクロックカウントの現在のカウントを低減するステップと、
少なくとも2という係数によって前記第2のセンサクロックカウントをカウントするレートを低減するステップと、
前記第2のセンサクロックカウントの前記現在のカウントが少なくとも2という係数によって低減されるとき、2という係数によって前記第1のセンサクロックカウントの記憶されているカウントを除算するステップとを備える、請求項5に記載の方法。
【請求項７】
前記第1のインターフェースイベントおよび前記第2のインターフェースイベントが、前記イベントの前記検出を示すメッセージを前記センサが送信した後で発生する、請求項1に記載の方法。
【請求項８】
前記ホストコントローラがさらに、前記ホストコントローラクロックの時間に関して前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを決定するように構成され、前記ホストコントローラが、次の関係に従って前記インターフェースイベントの前記タイムスタンプを決定し、
前記インターフェースイベントのタイムスタンプ=MREF-MC2×SC1/SC2
MC1が前記ホストコントローラクロックのサイクルの前記第1のカウントであり、SC1が前記第1のセンサクロックカウントであり、SC2が前記第2のセンサクロックカウントであり、MREFが前記第2の時間の前記ホストコントローラタイムスタンプである、請求項1に記載の方法。
【請求項９】
少なくとも1つのトランスポート媒体を介して少なくとも1つのセンサに通信可能に結合されるトランスポート媒体インターフェースと、
前記トランスポート媒体インターフェースに通信可能に結合される少なくとも1つの処理回路とを備え、前記少なくとも1つの処理回路が、
前記センサによって引き起こされる前記インターフェースイベントの発行を特定する、前記センサからのメッセージを、前記インターフェース上で検出することであって、前記インターフェースイベントが前記センサ上で第1の時間に発生する、検出することと、
前記受信されたメッセージおよびホストコントローラクロックのサイクルの第1のカウントを始動したことに応答して前記第1の時間の後の第2の時間に前記インターフェース上で第1のイベントを発行することであって、前記第1のカウントの前記始動が前記第1のイベントを発行することと同時である、発行することと、
前記第2の時間の後の第3の時間に前記インターフェース上で第2のイベントを発行することと、
前記センサから第1のセンサクロックカウントおよび第2のセンサクロックカウントを受信することであって、前記第1のセンサクロックカウントが前記第1の時間から前記第2の時間までの内部センサクロックのサイクルのカウントであり、前記第2のセンサクロックカウントが前記第2の時間から前記第3の時間までの前記内部センサクロックのサイクルのカウントである、受信することと、
ホストコントローラクロックのサイクルの前記第1のカウント、前記第1のセンサクロックカウント、前記第2のセンサクロックカウント、および前記第2の時間のホストコントローラタイムスタンプに少なくとも一部基づいて、前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを決定することと
を行うように構成される、ホストコントローラデバイス。
【請求項１０】
前記インターフェースが、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの少なくとも1つまたは複数である、請求項9に記載のホストコントローラデバイス。
【請求項１１】
前記第1のイベントおよび前記第2のイベントの各々が、前記ホストコントローラと前記センサの両方に知られている所定のハードウェアイベントを備える、請求項9に記載のホストコントローラデバイス。
【請求項１２】
前記メッセージが前記センサによって発行される割込み要求を備える、請求項9に記載のホストコントローラデバイス。
【請求項１３】
前記受信された第1のセンサクロックカウントおよび第2のセンサクロックカウントが、共通の係数の値とは無関係に前記第1のセンサクロックカウントと前記第2のセンサクロックカウントの比が一定のままであるように前記共通の係数によって低減される低減されたカウント数の値を備える、請求項9に記載のホストコントローラデバイス。
【請求項１４】
前記共通の係数による前記第1のセンサクロックカウントおよび前記第2のセンサクロックカウントの前記値の前記低減がさらに、
2という係数によって前記第1のセンサクロックカウントの現在のカウントを低減することと、
2という係数によって前記第1のセンサクロックカウントをカウントするレートを低減することと、
少なくとも2という係数によって前記第2のセンサクロックカウントの現在のカウントを低減することと、
少なくとも2という係数によって前記第2のセンサクロックカウントをカウントするレートを低減することと、
前記第2のセンサクロックカウントの前記現在のカウントが少なくとも2という係数によって低減されるとき、2という係数によって前記第1のセンサクロックカウントの記憶されているカウントを除算することとを備える、請求項13に記載のホストコントローラデバイス。
【請求項１５】
前記第1のインターフェースイベントおよび前記第2のインターフェースイベントが、前記イベントの前記検出を示すメッセージを前記センサが送信した後で発生する、請求項9に記載のホストコントローラデバイス。
【請求項１６】
少なくとも1つの処理回路がさらに、前記ホストコントローラクロックの時間に関して前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを決定するように構成され、前記ホストコントローラが、次の関係に従って前記インターフェースイベントの前記タイムスタンプを決定し、
前記インターフェースイベントのタイムスタンプ=MREF-MC2×SC1/SC2
MC1が前記ホストコントローラクロックのサイクルの前記第1のカウントであり、SC1が前記第1のセンサクロックカウントであり、SC2が前記第2のセンサクロックカウントであり、MREFが前記第2の時間の前記ホストコントローラタイムスタンプである、請求項9に記載のホストコントローラデバイス。
【請求項１７】
少なくとも1つの処理回路によって実行されると、前記少なくとも1つの処理回路に、
ホストコントローラおよびセンサを通信可能に結合するインターフェース上で前記センサから前記ホストコントローラにおいてメッセージを受信することであって、前記メッセージが、前記センサによって引き起こされ前記センサ上で第1の時間に発生する前記インターフェースイベントの発行を特定するように構成される、受信することと、
前記受信されたメッセージおよびホストコントローラクロックのサイクルの第1のカウントを始動したことに応答して前記第1の時間の後の第2の時間に前記インターフェース上で第1のイベントを発行することであって、前記第1のカウントの前記始動が前記第1のイベントを発行することと同時である、発行することと、
前記第2の時間の後の第3の時間に前記インターフェース上で第2のイベントを発行することと、
前記センサから第1のセンサクロックカウント(SC1)および第2のセンサクロックカウント(SC2)を受信することであって、前記第1のセンサクロックカウントが前記第1の時間から前記第2の時間までの内部センサクロックのサイクルのカウントであり、前記第2のセンサクロックカウントが前記第2の時間から前記第3の時間までの前記内部センサクロックのサイクルのカウントである、受信することと、
ホストコントローラクロックのサイクルの前記第1のカウント、前記第1のセンサクロックカウント、前記第2のセンサクロックカウント、および前記第2の時間のホストコントローラタイムスタンプ(MREF)に少なくとも一部基づいて、前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを決定することとを行わせる、1つまたは複数の命令を有するプロセッサ可読記憶媒体。
【請求項１８】
前記インターフェースが、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの少なくとも1つまたは複数を備える、請求項17に記載のプロセッサ可読記憶媒体。
【請求項１９】
前記第1のイベントおよび前記第2のイベントの各々が、前記ホストコントローラと前記センサの両方に知られている所定のハードウェアイベントを備える、請求項17に記載のプロセッサ可読記憶媒体。
【請求項２０】
前記メッセージが前記センサによって発行される割込み要求である、請求項17に記載のプロセッサ可読記憶媒体。
【請求項２１】
前記受信された第1のセンサクロックカウントおよび第2のセンサクロックカウントが、共通の係数の値とは無関係に前記第1のセンサクロックカウントと前記第2のセンサクロックカウントの比が一定のままであるように前記共通の係数によって低減される低減されたカウント数の値を備える、請求項17に記載のプロセッサ可読記憶媒体。
【請求項２２】
前記共通の係数による前記第1のセンサクロックカウントおよび前記第2のセンサクロックカウントの前記値の前記低減がさらに、
2という係数によって前記第1のセンサクロックカウントの現在のカウントを低減することと、
2という係数によって前記第1のセンサクロックカウントをカウントするレートを低減することと、
少なくとも2という係数によって前記第2のセンサクロックカウントの現在のカウントを低減することと、
少なくとも2という係数によって前記第2のセンサクロックカウントをカウントするレートを低減することと、
前記第2のセンサクロックカウントの前記現在のカウントが少なくとも2という係数によって低減されるとき、2という係数によって前記第1のセンサクロックカウントの記憶されているカウントを除算することとを備える、請求項21に記載のプロセッサ可読記憶媒体。
【請求項２３】
前記第1のインターフェースイベントおよび前記第2のインターフェースイベントが、前記イベントの前記検出を示すメッセージを前記センサが送信した後で発生する、請求項17に記載のプロセッサ可読記憶媒体。
【請求項２４】
前記1つまたは複数の命令が、前記少なくとも1つの処理回路によって実行されると、前記少なくとも1つの処理回路にさらに、前記ホストコントローラクロックの時間に関して前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを決定させ、前記ホストコントローラが、次の関係に従って前記インターフェースイベントの前記タイムスタンプを決定し、
前記インターフェースイベントのタイムスタンプ=MREF-MC2×SC1/SC2
MC1が前記ホストコントローラクロックのサイクルの前記第1のカウントであり、SC1が前記第1のセンサクロックカウントであり、SC2が前記第2のセンサクロックカウントであり、MREFが前記第2の時間の前記ホストコントローラタイムスタンプである、請求項17に記載のプロセッサ可読記憶媒体。
【請求項２５】
センササンプルデータと関連付けられる測定の時間を提供するための方法であって、
ホストコントローラにおいて現在の時間位相(T_Ph)期間の開始時間を決定するステップと、
前記現在の位相時間期間内のセンササンプルデータ送信のシーケンス内でのセンササンプルデータ送信の時間位置を決定するステップと、
前記現在の位相時間期間の前記開始時間および前記現在の位相時間期間内のセンササンプルデータ送信の前記シーケンス内での前記センササンプルデータ送信の前記時間位置に基づいて、前記センササンプルデータ送信と関連付けられる測定の前記時間を決定するステップを備える、方法。
【請求項２６】
新しい時間位相期間の開始を示す同期信号を少なくとも1つのセンサに送信するステップと、
前記新しい時間位相(T_Ph)期間の予想される始まりと前記同期信号の前記送信との間の遅延時間を決定するステップと、
前記遅延を示す情報を第1のメッセージにおいて前記センサに送信するステップとをさらに備え、
前記センサが、前記同期信号のタイミングおよび前記遅延を示す前記情報に基づいて前記新しい位相時間期間の前記予想される始まりを決定し、前記新しい位相時間期間の前記決定された予想される始まりに基づいて内部タイマを補正する、請求項25に記載の方法。
【請求項２７】
前記遅延時間を示す前記情報が、前記時間位相期間の1/nの時間期間の数として前記遅延時間を示し、nが2の所定の数のべき乗である、請求項26に記載の方法。
【請求項２８】
前記新しい位相時間期間の前記予想される始まりと前記同期信号の前記送信との間の前記遅延時間が、前記ホストコントローラにおけるハードウェアまたはソフトウェアのオーバーヘッドによって引き起こされる、請求項26に記載の方法。
【請求項２９】
センササンプルデータ送信の前記シーケンス内での前記第1のセンササンプルデータ送信と関連付けられる測定の前記時間が、前記現在の時間位相(T_Ph)期間の前記開始時間として決定され、センササンプルデータ送信の前記シーケンス内での他のセンササンプルデータ送信と関連付けられる測定の前記時間が、センササンプルデータ送信の前記シーケンス内での前記センササンプルデータ送信の複数の前記時間位置の間の差と前記シーケンス内での送信の数とに基づいて、線形補間を使用して決定される、請求項25に記載の方法。
【請求項３０】
前記ホストコントローラおよび前記センサが、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの少なくとも1つまたは複数を含むインターフェースを介して通信可能に結合される、請求項25に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、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 TIMESTAMPING IN A SYSTEM SYNCHRONIZING CONTROLLER AND SENSORS」という表題の非仮出願第15/299,408号の優先権および利益を主張し、これらの内容全体が参照により本明細書に組み込まれる。
【０００２】
本明細書において開示される主題は、電子デバイスに関し、より詳細には、コントローラおよびセンサを同期するシステムにおけるタイムスタンピングのための方法、装置、およびシステムに関する。
【背景技術】
【０００３】
現在のモバイルデバイスは、多数のセンサを含んでいる。通常、データ処理ユニット、コントローラ、ホストデバイス、またはマスタデバイス(以後、単にコントローラまたはホストコントローラと呼ばれる)は、センサまたはスレーブユニット(以後「センサ」と呼ばれる)によって収集されるデータを受信し処理するために設けられる。電力を節約するために、センサからコントローラに転送されているデータがないとき、コントローラは定期的にスリープ状態にされる。
【０００４】
センサからコントローラにデータを転送する2つの方法が一般に利用される。非同期法として知られている第1の方法では、転送が可能なデータを有するセンサが、コントローラを起動する信号(たとえば、いくつかの既知のシステムでは専用のData Ready Interrupt(DRI)ピンを通じたDRI信号)を出すことによってコントローラに通知し、次いでコントローラの準備ができているときにセンサがデータを転送する。同期法として知られている第2の方法では、コントローラは、所定の時間間隔でスリープ状態から自発的に起動し、センサにポーリングし、センサに存在するあらゆるデータをセンサから受信する。2つ以上のセンサからのデータ転送が単一のポーリングおよび転送セッションに集約され得るので、同期法は複数のセンサを備えるデバイスにおいてよりエネルギー効率が高い。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
定期的にサンプリングされたデータを複数のセンサまたは他のデバイスが提供するシステムでは、基本的に同期した時間にデータを収集するようにセンサに命令することが可能であること、および、コントローラが同じアウェイク時間枠またはシステムアウェイク期間内にいくつかのセンサからデータを読み取ることが、さらに有利である。理想的には、センサが最新の結果のみを送達すると仮定すると、センサのサンプリング周波数と一致する周波数でセンサをポーリングすれば、センサによって収集されたすべてのデータを得るのに十分である。しかしながら、コントローラおよびセンサは普通はタイミング信号を共有せず、したがってタイミング信号のずれが生じることがあるので、センサがセンサのサンプリング周波数でポーリングされるときであっても、一部のセンサデータサンプルは失われることがあり、一部のセンサデータサンプルは2回読み取られることがある。その現象は、一部のセンサのクロックまたはタイマの精度が悪い(たとえば、ある温度範囲にわたり、かつデバイスごとに、±15%の偏差)という事実によって、悪化する。
【０００６】
加えて、センサが、ランダムにまたは予想されない方式で(すなわち、基本的に「非同期の」方式で)、インターフェースもしくはバス上でデータを提供し得ることが知られている特定のシステムでは、システム全体が、非同期データサンプリングモードで意図的に動作しているか、またはランダムイベントがインターフェースもしくはバス上で発生し得る同期データサンプリングモードで動作しているかのいずれかである。そのような事例では、センサまたはスレーブデバイスがいつランダムにもしくは予想されない方式でデータを提供するかについての正確な発生時刻情報をホストコントローラが取得できることが望ましい。
【課題を解決するための手段】
【０００７】
ある態様によれば、ホストコントローラと結合されるインターフェース上でのインターフェースイベントのホストコントローラにおけるタイムスタンプを提供するための方法が開示される。方法は、センサによって引き起こされるインターフェースイベントの発行を特定する、センサからのメッセージを、インターフェース上で検出するステップを含み、インターフェースイベントはセンサ上で第1の時間に発生する。加えて、方法は、受信されたメッセージおよびホストコントローラクロックのサイクルの第1のカウントの始動に応答して第1の時間の後の第2の時間にインターフェース上で第1のイベントを発行するステップであって、第1のカウントの始動が第1のイベントを発行することと同時である、ステップと、第2の時間の後の第3の時間にインターフェース上で第2のイベントを発行するステップとを含む。方法はまた、センサから第1のセンサクロックカウントおよび第2のセンサクロックカウントを受信するステップを含み、第1のセンサクロックカウントは第1の時間から第2の時間までの内部センサクロックのサイクルのカウントであり、第2のセンサクロックカウントは第2の時間から第3の時間までの内部センサクロックのサイクルのカウントである。ホストコントローラは次いで、ホストコントローラクロックのサイクルの第1のカウント、第1のセンサクロックカウント、第2のセンサクロックカウント、および第2の時間のホストコントローラタイムスタンプに少なくとも一部基づいて、第1の時間に対応するインターフェースイベントのタイムスタンプを決定する。
【０００８】
別の態様によれば、少なくとも1つのトランスポート媒体を介して少なくとも1つのセンサに通信可能に結合されるトランスポート媒体インターフェースと、トランスポート媒体インターフェースに通信可能に結合される少なくとも1つの処理回路とを含む、ホストコントローラデバイスが開示される。少なくとも1つの処理回路は、センサによって引き起こされるインターフェースイベントの発行を特定する、センサからのメッセージを、インターフェース上で検出するように構成され、インターフェースイベントはセンサ上で第1の時間に発生する。プロセッサはさらに、受信されたメッセージおよびホストコントローラクロックのサイクルの第1のカウントの始動に応答して第1の時間の後の第2の時間にインターフェース上で第1のイベントを発行することであって、第1のカウントの始動が第1のイベントを発行することと同時である、発行することと、第2の時間の後の第3の時間にインターフェース上で第2のイベントを発行することとを行うように構成される。さらに、プロセッサは、センサから第1のセンサクロックカウントおよび第2のセンサクロックカウントを受信するように構成され、第1のセンサクロックカウントは第1の時間から第2の時間までの内部センサクロックのサイクルのカウントであり、第2のセンサクロックカウントは第2の時間から第3の時間までの内部センサクロックのサイクルのカウントである。加えて、プロセッサは、ホストコントローラクロックのサイクルの第1のカウント、第1のセンサクロックカウント、第2のセンサクロックカウント、および第2の時間のホストコントローラタイムスタンプに少なくとも一部基づいて、第1の時間に対応するインターフェースイベントのタイムスタンプを決定するように構成される。
【０００９】
さらに別の態様によれば、プロセッサ可読記憶媒体が開示され、この媒体は、少なくとも1つの処理回路によって実行されると、少なくとも1つの処理回路に、ホストコントローラおよびセンサを通信可能に結合するインターフェース上でセンサからホストコントローラにおいてメッセージを受信させる1つまたは複数の命令を有し、このメッセージは、センサによって引き起こされセンサ上で第1の時間に発生するインターフェースイベントの発行を特定するように構成される。さらに、命令は、プロセッサに、受信されたメッセージおよびホストコントローラクロックのサイクルの第1のカウントの始動に応答して第1の時間の後の第2の時間にインターフェース上で第1のイベントを発行することであって、第1のカウントの始動が第1のイベントを発行することと同時である、発行することと、第2の時間の後の第3の時間にインターフェース上で第2のイベントを発行することとを行わせる。命令はまた、少なくとも1つのプロセッサに、センサから第1のセンサクロックカウント(SC1)および第2のセンサクロックカウント(SC2)を受信させるように構成され、第1のセンサクロックカウントは第1の時間から第2の時間までの内部センサクロックのサイクルのカウントであり、第2のセンサクロックカウントは第2の時間から第3の時間までの内部センサクロックのサイクルのカウントである。また、命令は、少なくとも1つのプロセッサに、ホストコントローラクロックのサイクルの第1のカウント、第1のセンサクロックカウント、第2のセンサクロックカウント、および第2の時間のホストコントローラタイムスタンプ(MREF)に少なくとも一部基づいて、第1の時間に対応するインターフェースイベントのタイムスタンプを決定させるように構成される。
【００１０】
さらに別の態様によれば、センササンプルデータと関連付けられる測定の時間を提供するための方法が開示される。方法は、ホストコントローラにおいて現在の時間位相(T_Ph)期間の開始時間を決定するステップを含む。さらに、方法は、現在の位相時間期間内のセンササンプルデータ送信のシーケンス内でのセンササンプルデータ送信の時間位置を決定するステップを含む。またさらに、方法は、現在の位相時間期間の開始時間および現在の位相時間期間内のセンササンプルデータ送信のシーケンス内でのセンササンプルデータ送信の時間位置に基づいて、センササンプルデータ送信と関連付けられる測定の時間を決定するステップを含む。
【図面の簡単な説明】
【００１１】
【図１】ここで開示される方法および装置が実装され得る例示的なモバイルデバイスを示すブロック図である。
【図２】ここで開示される方法および装置が実装され得る例示的なハードウェア環境を示すブロック図である。
【図３】ホストコントローラおよびセンサタイマを同期するための例示的な方法を示すフローチャートである。
【図４】ここで開示される方法に従ったセンサおよびホストコントローラのタイムスタンピングを示すタイムライン図である。
【図５】図4のタイムラインの簡略化されたタイムライン図を示すタイムライン図である。
【図６】センサタイマカウントの動的なスケーリングの例を示すタイムライン図である。
【図７】ある態様による、インターフェースイベントのタイムスタンプを提供する例示的な方法のフローチャートである。
【図８】ある態様による、インターフェースイベントのタイムスタンプを決定する際に使用されるセンサカウントを提供するための例示的な方法を示すフローチャートである。
【図９】インターフェース上でのメッセージの例を経時的に示すタイムラインである。
【図１０】タイムスタンピングのオーバーヘッドを減らすための方法の流れ図である。
【図１１】本開示による例示的なホストコントローラまたはマスタデバイスを示す図である。
【図１２】本開示による例示的なスレーブデバイスまたはセンサデバイスを示す図である。
【図１３】ホストコントローラのためのハードウェア実装形態の簡略化された例を示す図である。
【図１４】ホストコントローラのためのハードウェア実装形態の別の簡略化された例を示す図である。
【発明を実施するための形態】
【００１２】
開示される方法および装置の態様は、以下の説明および特定の実施形態を対象とする関連する図面において開示される。本開示の範囲から逸脱することなく、代替の実施形態が考案され得る。加えて、本開示の関連する詳細を不明瞭にしないように、よく知られている要素は詳細に説明されないことがあり、または省略されることがある。
【００１３】
「例示的」という単語は、本明細書では、「例、事例、または例示として機能すること」を意味するために使用される。「例示的」として本明細書において説明されるいかなる実施形態も、他の実施形態よりも好ましい、または有利であると必ずしも解釈されるべきでない。同様に、「実施形態」という用語は、すべての実施形態が、論じられる特徴、利点、または動作モードを含むことを要求するものではない。
【００１４】
本明細書において使用される用語は、特定の実施形態を説明するためのものにすぎず、本発明の実施形態を限定することを意図しない。本明細書において使用される場合、単数形「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期間の中で発生する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の間隔でホストコントローラによって送信され得る。ある態様では、時間同期イベントは、インターフェース上で生じることが知られているいくつかの開始(START)条件の中から選ばれ得る。
【００４９】
別の態様によれば、センサまたは他のスレーブデバイスが表面上は同期せずに、ランダムに、または予想されない方式でインターフェース上でデータサンプルを提供するシステムにおいて、ホストコントローラが正確な発生時刻情報を取得することを可能にする、方法および装置が開示される。広範囲の用途で、そのような情報についていくつかの程度の精度が要求される。しかしながら、(1)ホストコントローラ側またはセンサ側のいずれかにおける処理の実現可能性に関する不確実性、(2)ホストコントローラとセンサとの間の同期しておらず相関していないクロック、これはホストコントローラおよびセンサのタイマ/カウンタが相関しないことにつながる、(3)ホストコントローラとセンサとの間の大きなクロック周波数の差、および(4)エネルギー効率要件などの、いくつかの理由により、そのようなイベントの正確なタイムスタンピングは困難であり得る。したがって、開示される方法および装置は、非同期インターフェースまたはバスイベントのインスタンスの間にセンサとホストコントローラの両方においてタイムスタンピングを行い、次いで、ホストコントローラがそれに基づいて正確なタイミングを決定できるタイムスタンピング情報を共有し、また一方でこれをより効率的な方式で行う。
【００５０】
図4は、ここで開示される方法に従ったセンサおよびホストコントローラのタイムスタンピングを示す例示的なタイムライン図400を示す。具体的には、図4は、コントローラ自体は自身のクロック信号のサイクル数を測定して決定することが可能であるだけであるにもかかわらず、データサンプリングがセンサにおいて行われる時間をホストコントローラが計算することを可能にするセンサからホストコントローラへのデータ転送の間および後の、ある関連する時間期間の間の処理を示す。この例における仮定は、センサは、センサのタイマまたはカウンタが正確かつ意味のある測定を行うことが可能な時間間隔内で、データを転送することが可能である(すなわち、タイマの駆動クロックは、時間に関して線形にタイマまたはカウンタを実質的にインクリメントするのに十分に安定した周波数を持っている)ということであることに留意されたい。
【００５１】
図4の開示される方法は、センササンプルなどのバス上でのランダムなまたは予想されないイベントが発生した後に、バスまたはインターフェース(たとえば、図2のインターフェース217)上でホストコントローラ(たとえば、図2の205)によって発行されるハードウェアイベントを使用する。バスまたはインターフェース上でのイベントのタイムラインを示す一番上のタイムライン402において見られるように、ランダムなサンプルまたは予想されないサンプルであり得るセンササンプル404は、タイムライン402上で特定の時間に発生する。ある態様では、サンプル404を発行するセンサは次いで、センササンプル404の発行などの特定のイベントが発生するときに、内部センサクロックのカウンタまたはタイマを始動するように構成され得る。したがって、内部センサタイムライン406は、サンプル404を発行するセンサが、センササンプル404がインターフェースまたはバス上で送信される時間にカウンタまたはタイマ(センサカウント1または「SCNT1」と名付けられる)を始動することを示している。一例によれば、カウンタまたはタイマSCNT1(本明細書において論じられることになる他のタイマも)はレジスタを用いて実装されることがあり、本明細書において「タイマレジスタ」と名付けられる。カウントSCNT1の始動はパルス408により示される。この時点で、センサの内部クロックのパルス(410に示される)がセンサにおいてカウントされる。加えて、センサは、センサがセンササンプル404を発行したことを示すために、パルス408によっても示されるように、センササンプル404と同じ時間に割込みまたはメッセージをホストコントローラに発行するように構成される。割込みまたはメッセージは、I2Cインターフェースにおける割込み要求(IRQ)、またはI3Cインターフェースにおける帯域内割込み(IBI)要求であり得る。
【００５２】
ある態様によれば、ホストコントローラは、第1のセンサイベント414および第2のセンサイベント416を、バスまたはインターフェース上で時間的に別々にセンサへ送信するように構成される。これらのイベントは事前に決定されており、または何らかの同様の方法でセンサおよびホストコントローラによって相互に特定可能であり、ハードウェア時間同期イベント(HWSEとしても知られている)とも呼ばれ得る。いくつかの態様によれば、イベント414および416は、I2CまたはI3Cインターフェースの例では、SDA線とSCL線のいずれかの上のすでに定義されているイベントのエッジとなるように構成され得る。たとえば、SCL線の2つの連続するエッジ(立ち上がりまたは立ち下がりのいずれか)が、I2CまたはI3Cトランザクションの定義されるシーケンスの一部としてイベントを構成し得る。別の例では、SCL線上のSCLクロックの2つの選択されるエッジは、1つの特定の例として、肯定応答(ACK)または遷移ビット(T-bit)の後の最初のSCLの立ち上がりエッジなどの、特定可能なハードウェアイベントとして事前に決定され得る。別の例では、インターフェースイベントは、バスまたはインターフェース上で発生するイベントであり得るが、コントローラとセンサの両方によってインターフェースイベント414および416としてさらに独立に特定可能である。イベント414、416の受信に基づいて、センサは、正確な時間基準を決定または計算するためにコントローラが使用するための、関連する時間情報をホストコントローラに転送し得る。
【００５３】
前に示されたように、センササンプル404の時間において、センサはまた、パルス408において示されるような割込み要求(IRQまたはIBI)を発行し得る。割込み要求がホストコントローラにおいて受け入れられる場合、センサは、418において示されるように、第1のイベント414を自身固有のタイマまたはカウンタSC1に対して記録または記憶するように構成される。また同時に、センサは次いで、やはり418において示されるように、内部クロックの第2のカウント(SCNT2)を始動する。加えて、ホストコントローラは、ホストコントローラのタイムライン421上で、420において示されるように、第1のイベント414を再び自身の内部カウンタに対して記録する。具体的には、ホストコントローラは、マスタ参照カウント(「MREF」と名付けられる)を自身固有のクロックに対して記録し、次いで、同時にホストコントローラのクロックパルスまたはサイクル421の第2のカウント(たとえば、MCNT2)も始動する。
【００５４】
第1のイベント414の後の何らかの所定の時間において、ホストコントローラは、タイムライン402において示されるように、第2のハードウェアイベント416を発行する。図4においてやはり見られるように、第1のイベント414は、第1の時間期間422(または時間「t1」)の後で発行されることがあり、第1の時間期間は、ホストコントローラのクロックサイクルの事実上の第1の所定のカウント(第1のマスタカウント1(MC1)とも呼ばれる)とも見なされることがあり、それは、カウントされず、以下でより詳細に説明されるように計算されるからである。またこの時点で、ホストコントローラは、バスまたはインターフェース上で第1のイベント414を開始する。
【００５５】
第1のイベント414が発行されると、センサは、SCNT1のカウントを捕捉し、この第1のセンサカウント(本明細書では「SC1」と名付けられ、インターフェース上でのセンササンプル404の時間と第1のイベント414との間に発生する内部センサクロックのパルスまたはサイクルの数を示す)を記憶またはバッファリングする。第2のイベント416において、センサは、タイムライン406の423において示されるように、自身固有のカウンタに対する第2のカウント(SC2)を捕捉または記録する。加えて、ホストコントローラは、タイムライン414の424において示されるように、自身固有の内部カウンタに対して、第2のハードウェアイベント416の発生時のカウント(MC2)を記録する。
【００５６】
ホストコントローラが、センササンプル404などのインターフェースイベントのためのタイムスタンプを決定または復元できることが望ましい。この方法および装置は、センササンプル404の時間に正確に対応するタイムスタンプを、たとえばセンサから送信されるカウント(たとえば、カウントSC1およびSC2、これは割込み要求という手段を通じてインターフェースまたはバス上で送信され得るので、たとえば、割込み要求のペイロードはカウントSC1およびSC2を含み、第2のハードウェアイベント416の発生後にインターフェース上でセンサによりホストコントローラへ送信される)、ならびに発行される第1のイベント414および第2のイベント416に関するホストコントローラにおけるカウントに基づいて決定する能力を、ホストコントローラに与える。この目的で、ホストコントローラは、マスタタイムスタンプ(MTS)と本明細書において名付けられ、ホストコントローラの内部ブロックの時間単位で表現される、センササンプルに対応するタイムスタンプ(ホストコントローラのタイムライン421上の412に示されている)を決定する。MTSの決定は、センササンプル404の正確なタイミングをホストコントローラに提供し、それはその正確なタイミングがセンサにより内部的に知られていたからである。
【００５７】
図4に示されるタイムライン、メッセージ、およびイベントは、本明細書において開示される方法がいずれの1つのタイプのインターフェースにも限定されないように、多くの異なるタイプのインターフェースにわたって送信されるメッセージを伴う任意の数の様々なインターフェースおよびプロトコルを用いて実装可能であることに留意されたい。さらなる態様では、方法は、いくつかのセンサがホストコントローラの内部時間基準に対して同期され得る、いくつかのまたは複数のインターフェースならびに複数のインターフェースプロトコル上で使用され得る。
【００５８】
カウントSC1、SC2、MC1、およびMC2の各々のタイミングの間の関係をより簡単に視覚化するために、図5は、図4のタイムラインの簡略化されたタイムライン図500を示す。前に説明されたように、ホストコントローラは、自身固有の内部クロック信号のサイクルの数に関して、タイムスタンプ420からタイムスタンプ424までカウントMC2を測定し決定する。両方のセンサの内部クロック信号が第1の時間期間および第2の時間期間の時間長(すなわち、センササンプル404の時間から第1のイベント414の時間(t1としても示されている)までの第1の時間期間422および第1のイベント414の時間から第2のイベント416の時間までの第2の時間期間522)にわたって十分に安定していると仮定すると、第1の時間期間422は事実上のマスタカウントMC1とも見なされ得る。
【００５９】
第2のイベント416の後でカウントSC1、SC2、およびMC2は既知であり、カウントSC2のための第2の時間期間522はMC2のためのカウントと同じであり、カウントSC1のための第1の時間期間422はカウントMC1のための時間期間と同じであるので、ホストコントローラカウントMC1の数の未知の値は、3つの既知のカウントSC1、SC2、およびMC2の比に基づいて決定され得る。すなわち、再び第1の時間期間および第2の時間期間にわたるクロックの安定性を仮定すると、SC1に対するMC1の比はSC2に対するMC2の比に等しく、または比例する。これは、式(1)により次のように表される。
【００６０】
【数１】
2018534686.tif 000003
【００６１】
したがって、MC1を解くと次のように式(2)が得られる。
【００６２】
【数２】
2018534686.tif 000004
【００６３】
式(2)は次いで、第1の時間期間502にわたるホストコントローラの内部クロックサイクルのカウントを与え、これはホストコントローラのクロックサイクルの数に関して表される。したがって、ホストコントローラが第1のイベント414の発行においてマスタ参照タイムスタンプMREF(420参照)を確立するので、MTSタイムスタンプは、決定されたカウントMC1をタイムスタンプMREFから差し引くことで見出され得る。上の式(2)において与えられるように、MC1はMC2、SC1、およびSC2に関して表され得るので、コントローラの時間単位で表されるようなセンサイベント404のMTSタイムスタンプは、式(3)を使用して次のように計算され得る。
【００６４】
【数３】
2018534686.tif 000005
【００６５】
上の式(3)から、ホストコントローラは次いで、ホストコントローラにより決定され割り当てられるセンササンプルイベント404(またはイベントをタイムスタンプして後続の割込み要求を発行するようにセンサが構成される任意の他のイベント)のタイムスタンプと同じであるタイムスタンプMTSを決定することが可能であり、ホストコントローラに正確なタイミングの計算を与える。
【００６６】
さらに注目に値することに、割込み要求(たとえば、IRQまたはIBI)がホストコントローラにより直ちに受け入れられない場合、ハードウェアイベント414および416は、割込みが受け入れられない限り発行しない。それにもかかわらず、センサは、自身固有のカウンタをカウントし続け、割込み要求が受け入れられる次の機会を待機するようにさらに構成され得る。割込み要求が最終的に受け入れられるとき、センサは、上で説明されたようなプロセスに従って進行するように構成され得る。第1の時間期間のカウントが第2の時間期間のカウントよりはるかに大きい可能性がある場合、割込み要求が受け入れられ後続のハードウェアイベント414、416が発行されるのをセンサが待機している間、センサはカウントを続けることに留意されたい。図4および図5は、第1の時間期間422および第2の時間期間522が概ね等しいことを示しているように見えるが、必ずしもそうではなく、上の式(3)はそれぞれの2つの時間期間422および522にわたるカウントの差(または差の程度)とは無関係に正確なタイムスタンプを提供することを、当業者は諒解するであろう。
【００６７】
他の態様によれば、割込み要求の一部として所定のペイロードを含めること以外の、センサからタイムスタンプデータを取り出すための代替的な手段は、センサからデータを取り出すための有向のコマンドまたはメッセージをホストコントローラが発行することを含み得る。そのような場合、センサは、タイムスタンプデータが収集されたことの補足的な確認を発行するように構成されることがあり、ホストコントローラは、その補足的な確認に対して、センサからそのデータを取り出すための有向のコマンドを発行することがある。
【００６８】
さらに注目に値することに、センサからのカウント数が0である場合、ホストコントローラは、タイムスタンプがイベントに割り当てられていないと評価し、一方で、カウント数が0ではない場合、ホストコントローラは、自身固有のタイマカウンタを使用して実際のタイムスタンプ(MTS)を計算することに進むことが諒解されるであろう。加えて、永続的であるかバーストかのいずれかの、任意の適切なクロックが、第1の時間期間422および第2の時間期間522の間に十分安定している限り、センサクロックとして使用され得る。これらの時間期間は一般に短いので、センサクロックは、いくつかの実施形態では、RC発振器またはリング発振器と同じくらい簡素であり得る。加えて、センサおよびホストコントローラのクロック信号の単位時間当たりの示される周波数またはサイクルは例示にすぎず、内部クロックの周波数および互いに対するそれらの相対的な周波数は、図に示されるものに必ずしも限定されないことに留意されたい。
【００６９】
ホストコントローラクロックとセンサクロックは大きく異なる周波数を有することがあり、第1の時間期間422と第2の時間期間522のいずれかの長さは予測不可能であることがあるので、センサタイマカウント値(たとえば、SC1およびSC2)が、大きくなりすぎて、あまりにも多くの送信もしくは記憶の空間を占め、またはタイマレジスタの記憶空間を超えて、これによりデータを失うことがある。これはセンサデバイスにおいては特に問題であり、それは、ホストコントローラなどのプロセッサデバイスのための記憶装置よりも、記憶またはバッファリングのサイズが通常ははるかに小さいからである。したがって、本開示のある態様によれば、センサにおけるカウント値を減らしてSC1およびSC2などのタイマカウント値の記憶条件を改良することが可能であるような、方法および装置が開示される。
【００７０】
当業者により諒解されるように、SC1およびSC2が共通の要因により減少した場合であっても、そのようなスケーリングはSC1/SC2の比が同じままであるのでMTSについての得られるタイムスタンプの計算結果に影響がないことが、式(2)および(3)から明らかである。したがって、本開示の態様によれば、これらのタイマ値により要求される送信または記憶空間のサイズを制限するために、タイマカウント値(たとえば、SC1およびSC2)をスケーリングするための方法および装置が開示される。
【００７１】
図6に戻ると、この図は、第1の時間期間422および第2の時間期間522の間のセンサクロックのカウントの間に、センサタイマカウントSC1およびSC2を動的にスケーリングする例を示す。センサタイマがセンサクロックサイクル(CNT1)をカウントする第1の時間期間422の間、代替的なスケーリングされたタイムライン604においてCNT1閾値602として示されている第1の所定の閾値に現在のカウントが達するときは常に、カウントレートは半分にされ得る(すなわち、2で除算され得る)。図6には示されないが、ある態様では、このスケーリングは第1の時間期間422の間に2回以上発生し得る。諒解されるように、カウントレートを半分にすることは、クロックサイクルの数を2倍にすることを意味し、タイマの1だけのインクリメントをもたらす。したがって、複数の事例におけるスケーリングでは、たとえば、SCNT1の初めにおいて、カウンタまたはタイマは各クロックサイクルに対して1だけインクリメントする。閾値602においてカウントレートを半分にした後で、たとえば、カウンタまたはタイマは2回のクロックサイクルごとに1だけインクリメントする。次に、カウントCNT1が次の閾値を満たす場合(図6の例では第1の時間422に示されていない)、2回目のカウントレートの半減により、4回のクロックサイクルごとに1だけカウンタまたはタイマがインクリメントするようになり、以下同様である。したがって、センサがクロックサイクルをカウントするレートは、たとえば2という係数によって低減されるが、そのような係数には限定されない。それでも、カウントレートの低下は、カウンタの記憶装置またはタイマレジスタが満たされるレートを遅くする。スケーリングタイムライン604は、図4および図5の例の文脈で示されているが、タイムライン406に示される普通の内部センサのカウントに対する代替形態であることに留意されたい。
【００７２】
さらに、カウントCNT1が閾値604に達し、カウントサイクルのレートが半分にされるとき、カウント値CNT1は、より低い値を得るために半分に除算される(または、他の想起される態様では閾値のカウント602の後で再び0から開始するようにリセットされ得る)。この例では、カウント閾値602が2048サイクルである場合、単なる一例として、カウントCNT1は2により除算されることがあり(CNT1/2)、次いでカウントはスケーリングされた半分のレート(すなわち、2で除算されたクロックレート)で1024から継続する。
【００７３】
第1の時間期間422の終了時に、カウント記憶装置またはタイマレジスタの内容がSC1値として記憶され、カウント記憶装置またはタイマレジスタは、時間期間522の間にSCNT2カウントを開始するために0にリセットされ得る。図6に示されるように、カウントレートはリセットされず、むしろ半分のレートで継続する(すなわち、2個のパルスごとにカウントする)が、他の態様では、カウントレートは1つずつカウントするようにリセットされ、値をホストコントローラに通信する前にカウント値SC1およびSC2が比例していることを確実にするためにカウントレートに対して計算が行われる限り(必要であれば)再び動的にスケーリングされ得る。さらに、別の実施形態では、第1の時間期間422および第2の時間期間522の間にCNT1およびCNT2をそれぞれカウントするために、2つの異なるセンサタイマレジスタが使用され得る。
【００７４】
図6の示される例では、第1の時間期間422の終了時にカウントレートはリセットされない。その後、第2の時間期間522の間に、現在のカウントCNT2、カウントレート、および記憶されているSC1値は、現在のカウントが第2の所定の閾値604、または時間期間522にわたってさらに後の閾値(図示されず)に達するときは常に、半分にされ得る。CNT2が半分にされる(CNT2/2)たびに記憶されているSC1値を半分にすることによって、SC1の値が最終的なSC2のカウント値に比例したままになることが確実になる。第2の時間期間522の終了時に、タイマレジスタの内容がSC2値として記憶される。上で説明された方法は、SC1値が第1の閾値を超えないように、かつSC2値が第2の閾値を超えないように共通の係数によってSC値1およびSC2値を低減することに相当し、ここで共通の係数は2のべき乗(2、4、8、16...)であることを当業者は諒解するであろう。SC1値およびSC2値は互いに比例したままとなるように共通の係数によって低減されるので、マスタタイムスタンプMTSの計算には影響しない。
【００７５】
異なる実施形態では、SC1値およびSC2値は異なる送信および記憶空間を占めることがある。たとえば、一実施形態では、SC1値は2バイト(16ビット)に制限されることがあり、SC2値は1バイト(8ビット)に制限されることがある。したがって、SC1値とSC2値との比にさらなる制限があり得る。その結果、実装形態によっては、SC1値のサイズ制限、インターフェースイベント(これは第2の時間期間522に、したがってSC2値に影響する)、および/またはセンサタイマ値をスケーリングするために使用される閾値は、本開示の実施形態が意図されるように機能するように修正される必要があり得る。
【００７６】
図4〜図6に関連して開示される方法を考慮すると、予想されず予測されないイベント(たとえば、センササンプル402)のための正確なMTSタイムスタンプは、センサおよびコントローラが大きく周波数の異なる同期していないクロックを有し得るという事実にもかかわらず、センサおよびホストコントローラの中のクロックおよびタイマとともに、2つのハードウェアインターフェースイベントを使用して、ホストコントローラによって決定され得る。加えて、少なくともセンサデバイスにおいてカウントするクロックを動的にスケーリングすることによって、リソースおよびエネルギーの効率の良い方式でも方法は達成される。
【００７７】
図7は、センサまたはスレーブデバイスによって発行されるイベントのタイムスタンプをコントローラに提供するための例示的な方法700を示すフローチャートを示す。ある態様では、方法700は、一例としてホストコントローラ205などの、ホストコントローラによって実施され得る。ブロック702において、ホストコントローラは、センサによって引き起こされるインターフェースイベントの発行を特定する、センサからのメッセージを、インターフェース上で受信または検出し、インターフェースイベントはセンサ上で第1の時間に発生する。たとえば、メッセージはセンサからの割込み要求(IRQまたはIBI)であり得るが、メッセージはそのようには限定されず、インターフェースイベントはランダムなまたは予想されないセンササンプル404であり得る。加えて、センサ上でのこの第1の時間は、センササンプルがインターフェース上で発行または発生するときのセンサクロックの内部時間である。別の言い方をすると、センサの第1の時間は決定されるべきMTSとも相関しており、ここでMTSはホストコントローラのクロックまたはタイマに関するこの第1の時間の計算されたタイムスタンプである。
【００７８】
ブロック702のプロセスにおいてメッセージがホストコントローラにより受信された後で、ブロック704において示されるように、ホストコントローラは、受信されたメッセージに応答して第1の時間の後の第2の時間にインターフェース上で第1のイベントを発行し、ホストコントローラクロックのサイクルの第1のカウントを始動し、ここで第1のカウントの開始は第1のイベントの発行と同時である。ある例では、ブロック704のプロセスは、タイムスタンプ418(すなわち、第1の時間の後の第2の時間(たとえば、MTSまたはタイムスタンプ408またはセンササンプル404の時間))において第1のイベント414を発行することを含み得る。別の態様では、ブロック704のプロセスにおける第1のカウントの始動は、カウントMC2を導出するためにタイムスタンプ420におけるMCNT2の始動を含み得る。規定の、または所定の時間期間の後で、ホストコントローラは次いで、ブロック706において示されるように、第2の時間(たとえば、タイムスタンプ420)の後にある第3の時間(たとえば、タイムスタンプ424)においてインターフェース上で第2のイベント(たとえば、416)を発行する。
【００７９】
方法700はさらに、センサから第1のセンサクロックカウント(たとえば、SC1)および第2のセンサクロックカウント(たとえば、SC2)を受信するステップを含むブロック708において示されるプロセスを含み、第1のセンサクロックカウントは第1の時間から第2の時間までの内部センサクロックのサイクルのカウントであり、第2のセンサクロックカウントは第2の時間から第3の時間までの内部センサクロックのサイクルのカウントである。
【００８０】
ブロック710において示されるように、方法700はさらに、ホストコントローラクロックのサイクルの第1のカウント(MC1)、第1のセンサクロックカウント(SC1)、第2のセンサクロックカウント(SC2)、および第2の時間のホストコントローラタイムスタンプ(MREF)に少なくとも一部基づいて、第1の時間(すなわち、センサにおけるセンササンプル404の時間)に対応するインターフェースイベントのタイムスタンプ(たとえば、MTS)をホストコントローラ内で決定するステップを含む。上で論じられたように、式(3)の関係は、ホストコントローラのクロックまたはタイマに関する第1のイベントにおける参照タイムスタンプ(MREF)、ならびにセンサからの受信されたカウントSC1およびSC2に基づいて、ホストコントローラのクロックまたはタイマに関するインターフェースイベントのタイムスタンプ(すなわち、MTS)を決定するために利用され得る。別の代替形態では、個々のカウントSC1およびSC2がホストコントローラにより必ずしも受信される必要がないことも企図される。代わりに、センサは、比SC1/SC2を最初に計算することが可能であるように算術処理リソースを保有していると仮定して、その比を送信するように構成され得る。
【００８１】
方法700の他の態様によれば、ホストコントローラおよびセンサは、I2C、I3C、SPI、SMBus、SLIMbus、UART、SoundWireバス、またはワイヤレスインターフェースも介して通信可能に結合される。加えて、前に論じられたように、第1のイベントおよび第2のイベントの各々は、ホストコントローラとセンサの両方に相互に知られている所定のハードウェアイベントを備える。
【００８２】
さらなる態様によれば、図6に関して前に論じられたように、方法700はまた、共通の係数の値とは無関係に第1のセンサクロックカウントと第2のセンサクロックカウントの比が一定のままであるように共通の係数によって低減される低減されたカウント数の値を備える、受信された第1のセンサクロックカウントと第2のセンサクロックカウントとを含み得る。共通の係数による第1および第2のセンサクロックカウントの値の低減はさらに、2という係数によって第1のセンサクロックカウントの現在のカウントを低減すること、2という係数によって第1のセンサクロックカウントをカウントするレートを低減すること、少なくとも2という係数によって第2のセンサクロックカウントの現在のカウントを低減すること、少なくとも2という係数によって第2のセンサクロックカウントをカウントするレートを低減すること、第2のセンサクロックカウントの現在のカウントが少なくとも2という係数によって低減されるときに2という係数によって第1のセンサクロックカウントの記憶されているカウントを除算することを備える。
【００８３】
図8は、ここで開示される方法による、インターフェースイベントのタイムスタンプを決定する際に使用されるセンサカウントを提供するための例示的な方法を示すフローチャートを示す。方法800は、ある態様による、センサまたはスレーブデバイス(たとえば、センサ210)において実施され得る。ブロック802において、センサは、タイムスタンプを必要とするセンサイベント(たとえば、サンプルイベント404)を決定し、センサの内部クロックまたはタイマのクロックサイクルをカウントするのを開始する。タイムスタンプを必要とするイベントをセンサが決定した後で、またはそれに付随して、センサはブロック804において示されるようにメッセージをホストコントローラに送信する。メッセージは、IRQもしくはIBIなどの割込み要求、または、ホストコントローラが自身固有の内部クロックに関してセンサイベントのタイムスタンプを正確に決定する(たとえば、第1および第2のインターフェースイベントを発行する)ためのプロセスを開始するために、イベントをホストコントローラに知らせるように構成される、何らかの他のメッセージもしくは信号であり得る。
【００８４】
メッセージがブロック804のプロセスに従って送信された後で、ブロック806において示されるように、センサは、内部クロックまたはタイマのサイクルをカウントし続け、次いで、センサイベントの時間とホストコントローラによって発行される検出された第1のインターフェースイベントとの間のセンサクロックサイクルの第1のカウントを決定する。ある例によれば、上で論じられたように、この第1のカウントはカウントSC1である。第1のインターフェースイベントの検出の後で、ブロック808において示されるように、センサは、ホストコントローラによって発行される第1のインターフェースイベントの時間と第2のインターフェースイベントの時間との間のセンサクロックサイクルの第2のカウントを決定することを始める。ある例によれば、上で論じられたように、この第2のカウントはカウントSC2である。最後に、ブロック810において、センサは、第1のカウントおよび第2のカウントを示す情報をコントローラに送信する。上で論じられたように、ある態様では、この情報は、カウントSC1およびSC2の値を提供する、センサからホストコントローラへのメッセージングを含み得る。別の代替形態では、カウントSC1とSC2の比を示す値がセンサによってホストコントローラに提供され得ることが企図される。
【００８５】
タイムスタンプのオーバーヘッドを減らすための本開示の別の実施形態によれば、図9は、インターフェース上の例示的なメッセージを経時的に示すタイムライン図900を示す。ホストプロセッサからセンサに送信されるメッセージ902および904は、センサが同期のために使用される内部タイマを修正する際に用い得る同期信号(たとえば、同期ティック(ST)エッジまたはメッセージ)906を各々含む特別なメッセージと隣り合っている。STエッジ/メッセージの間の時間期間は、理想的には時間位相期間T_Phである。しかしながら、ハードウェア、ファームウェア、および/またはソフトウェアのオーバーヘッドが原因で、新しいT_Ph期間の予想される開始とSTエッジ/メッセージの送信との間に遅延(たとえば、遅延時間、または「DT」908)があり得る。予測不可能であり可変の遅延時間期間に起因し得る潜在的な不正確さを補償するために、遅延時間期間が測定されることがあり、それぞれの遅延時間期間を示す情報がSTエッジ/メッセージの送信後に送信されることがある。STエッジ/メッセージのタイミングおよびDTを示す情報に基づいて、センサは、新しいT_Ph期間の予想される開始を決定することができる。特別なメッセージ902および904は、どのセンサがセンササンプルデータをホストコントローラに送信し得るかに応答して、ポーリングメッセージまたは他のメッセージも含み得る。メッセージ902および904は、I2CまたはI3Cバスプロトコルに特に適しているが、等しく機能するメッセージがいくつかの異なるインターフェースの任意の1つを通じて送信され得ることに留意されたい。センサはまた、それら固有のそれぞれのセンサクロックに基づいて、データサンプル測定時間を示すタイムスタンプを送信し得る。タイムスタンプは、センササンプルデータとともにI2CまたはI3Cバス応答メッセージの一部、SPIなどのより高速なプロトコルが使用される場合は専用のメッセージなどの任意の適切な形式であることがあり、またはホストコントローラとセンサとの間の別個の接続の上にあることがある。ポーリングメッセージなどの追加のメッセージ908は、隣り合うSTエッジ/メッセージ906であるメッセージ902の送信と904の送信との間に、ホストコントローラからセンサに送信され得る。ポーリングメッセージに応答して、センサはセンササンプルデータおよび場合によってはタイムスタンプを送信し得る。
【００８６】
遅延時間期間を示すためにホストコントローラにより使用される情報は、遅延期間がT_Ph期間という時間単位の約1/nの期間として表されることを示すことができ、nは2の所定の数のべき乗であることにさらに留意されたい。遅延時間は、T_Phの断片の1/n単位を測定単位として使用して測定および転送され、これは、遅延時間を通信するために送信されることが必要な情報の量の切り捨てを可能にする。したがって、遅延時間は、そのような測定単位の数として表現され得る。同期メッセージのタイミングおよび遅延時間期間を示す情報に基づいて、センサ/スレーブは次いで、新しいT_Ph期間の予想される開始を決定することができる。数値的な例として、T_Phが1秒でありn=211である場合、これは、測定単位が1秒を2の11乗(すなわち、211=2048)で除算したものであることを意味する。時間の測定単位1/nは、この特定の事例では1/2048秒であり、これは488マイクロ秒(μs)に等しい。したがって、実際の遅延時間が4ミリ秒(ms)である場合、たとえば、DTは4ms/488μs≒8として、数8により表され得る。したがって、ホストコントローラからのDTメッセージは、数8をセンサ/スレーブに伝える。そして、センサ/スレーブは、1秒をカウントするために使用する固有のカウンタ/タイマに基づいて、DTを再構築することができる。たとえば、センサ/スレーブが2MHzベースのカウンタを有する場合、1秒に対するサイクルの総カウントは2,000,000である。センサに対しては、1つのDT単位は2,000,000/2048=976カウンタ/タイマサイクルである。次いで、DTメッセージにより伝えられる8個の時間単位は、センサ/スレーブのタイマに対しては、2MHzのセンサベースのクロックの976×8=7808カウンタ/タイマサイクルに換算される。結果として、センサ/スレーブは次いで、たとえばSTにより示されるような同期イベントのためにセンサ/スレーブが記録したタイムスタンプから、7808カウンタ/タイマサイクルを控除し、または差し引く。そして、センサ/スレーブのサイクルの新しい数が、T_Phの正確な時間長であり、新しいT_Ph期間の予想される開始のために使用される。
【００８７】
ある実施形態では、ホストコントローラは、センサがタイムスタンプを送信することなくセンササンプルデータ測定時間を決定し、それにより、コントローラとセンサを同期するシステムにおけるタイムスタンプのオーバーヘッドと、タイムスタンプの送信が原因で消費される追加のエネルギーとを減らすことができる。T_Ph期間内でのセンササンプルデータ904の初回の送信は、センサがSTエッジ/メッセージと遅延時間情報の両方に基づいてセンサのクロックを同期する結果として、遅延時間期間の分だけ対応する測定の時間から遅れる(たとえば、測定はT_Ph期間と完全に揃っているが、実際の送信は遅延時間期間の影響を受けることがある)ので、測定の時間は、現在のT_Ph期間の開始時間、遅延時間期間、および同じT_Ph期間内の送信のシーケンス内での送信の場所に基づいて決定され得る。サンプルデータの測定および送信は等しい時間期間910により示されるように時間的に等しく離隔される(また、これらの期間はタイムライン上のセンサデータ送信時間位置の間の差として考えられ得る)ので、単なる2つの例として、図9に示されるものなどの、同じT_Ph期間内の送信のシーケンス内での送信の場所に基づいてデータ測定時間を決定するために、線形補間が使用され得る。たとえば、各T_Ph期間において3つのデータサンプルを収集し送信するセンサ(T_Ph期間の丁度開始時には送信をカウントするが、次のT_Ph期間の始まりであるT_Ph期間の丁度終了時には送信をカウントしない)では、最初の送信で送信されるサンプルデータの測定の時間はT_Ph期間の開始時間であるが、2回目の送信で送信されるサンプルデータの測定の時間はT_Ph期間の開始時間からT_Ph期間の3分の1後であり、3回目の送信で送信されるサンプルデータの測定の時間はT_Ph期間の開始時間からT_Ph期間の3分の2後である。別の実施形態では、センサデータ送信のタイミングの非線形の関係が知られている場合、非線形補間が使用され得る。
【００８８】
図10を参照すると、センササンプルデータと関連付けられる測定の時間を決定するための例示的な方法1000を示すフローチャートが示されている。ブロック1002において、現在の時間位相(T_Ph)期間の開始時間が、ホストコントローラなどにおいて決定され得る。ブロック1004において、現在の位相時間期間内のセンササンプルデータ送信のシーケンス内でのセンササンプルデータ送信の時間位置(すなわち、センササンプルデータ送信のタイムラインに沿ったセンササンプルデータの相対的な位置を決定すること)が決定され得る。ブロック1006において、現在の位相時間期間の開始時間および現在の位相時間期間内のセンササンプルデータ送信のシーケンス内でのセンササンプルデータ送信の位置に基づいて、センササンプルデータ送信と関連付けられる測定の時間が決定され得る。現在の位相時間期間内での最初のセンササンプルデータ送信と関連付けられる測定の時間は、現在の位相時間期間の開始時間であり得る。さらに、現在の位相時間期間内での他のセンササンプルデータ送信と関連付けられる測定の時間は、現在の位相時間期間内のセンササンプルデータ送信のシーケンス内でのセンササンプルデータ送信の相対的な位置と、シーケンス内での送信の数とに基づいて、線形補間を使用して決定され得る。
【００８９】
図11は、少なくともスレーブデバイスもしくはセンサデバイスと通信可能に結合されるバスインターフェースまたは回路上で、信号、コマンド、およびデータを送信して受信するための、送信機/受信機回路1106と結合される処理または論理回路1104を含み得る、例示的なホストコントローラまたはマスタデバイス1102を示す。送信機/受信機回路1106は、ホストコントローラ1102のための内部タイミングに少なくとも使用される、タイマまたはクロック回路1108を含み得る。タイマまたはクロック回路1108は、送信機/受信機回路1106内に示されているが、この回路または機能は代わりに処理/論理回路1104内で実装され得ることに留意されたい。示されていないが、ホストコントローラ1102はまた、例として、処理回路1104のためのクロッキングなどの、内部クロッキングのための他のクロッキングまたはタイミングデバイスを利用し得る。さらに、送信機/受信機回路1106はまた、例としてI2CバスもしくはI3Cバスまたはワイヤレスインターフェースであり得る物理インターフェースと送信機/受信機回路をインターフェースするように構成される、トランスポート媒体インターフェース回路1110を含む。さらに、トランスポート媒体インターフェースは、SDA線およびSCL線などの少なくとも2つの線を利用し得るが、図2のインターフェース217に関して前に論じられたような線をさらに含み得る。
【００９０】
ホストコントローラ1102はまた、少なくとも処理回路1104と結合されるメモリまたは記憶媒体1112を含み、図3〜図10に関連して開示されたものなどの本明細書において開示される様々な方法を、回路1104に実施させるための、もしくはそのような方法を実施するように送信機/受信機回路1106へ指示させるための、コードまたは命令を含み得る。
【００９１】
別の態様では、ホストコントローラ1102は、図3〜図10に開示されるような方法を成し遂げる機能の一部またはすべてを実行する、レジスタまたは何らかの他のカウンタ1114を含み得る。具体的には、カウンタ1114は、MC2を駆動するためにタイマ/クロック回路1108のサイクル(たとえば、図4に示されるようなクロックサイクル421)をカウントするために使用される。加えて、タイマ/クロック回路1108または時間/クロック回路1108とともに処理/論理回路1104が、前に論じられたMREFタイムスタンプなどのタイムスタンプを決定するために使用され得ることに留意されたい。
【００９２】
図12は、少なくともホストコントローラもしくはマスタデバイスと、しかしバス上の他のデバイスとも通信可能に結合されるバスインターフェースまたは回路上で、信号およびデータを送信して受信するための、送信機/受信機回路1206と結合される処理または論理回路1204を含み得る、例示的なセンサまたはスレーブデバイス1202を示す。送信機/受信機回路1206は、バスを介してホストコントローラ(たとえば、図11のコントローラ1102)とのスレーブもしくはセンサデバイス1202の同期のためのタイミングを決定するために使用されるタイマ回路またはクロック1208を含み得る。加えて、タイマ回路またはクロック1208は、クロックカウントSC1およびSC2を提供することと特に関連して、様々なタイムスタンプを決定しマークするために使用され得る。示されていないが、センサ1202は、例として、処理回路1204のためのクロッキングなどの、センサの内部クロッキングのための他のクロッキングまたはタイミングデバイスを利用し得る。
【００９３】
送信機/受信機回路1206はまた、タイマ/クロック回路1208のサイクルまたはパルス(たとえば、図4に示されるパルス410)をカウントするために使用されるレジスタまたはカウンタ1209を含む。加えて、レジスタまたはカウンタ1209は、図6に関連して上で論じられたように、カウントSC1およびSC2の捕捉を実施するために、またはカウントSC1およびSC2のスケーリングのために、プロセッサ回路1202と通信可能にインターフェースするように構成される。
【００９４】
さらに、送信機/受信機回路1206はまた、ほんの少数の例としてI2CバスもしくはI3Cバスまたはワイヤレスインターフェースであり得る物理トランスポート媒体インターフェースと送信機/受信機回路をインターフェースし、または通信可能に結合するように構成される、トランスポート媒体インターフェース回路1210を含む。さらに、トランスポート媒体インターフェースは、SDA線およびSCL線などの少なくとも2つの線を利用し得るが、図2のインターフェース217に関して前に論じられたような線をさらに含み得る。
【００９５】
センサ1202はまた、少なくとも処理回路1204と結合されるメモリまたは記憶媒体1212を含み、図3〜図10に関連して開示されたものなどの本明細書において開示される様々な方法を、回路1204に実施させるための、もしくはそのような方法を実施するように送信機/受信機回路1206へ指示させるための、コードまたは命令を含み得る。
【００９６】
前に説明された本発明の態様は、前に説明されたように、コンピューティングデバイス100のプロセッサ101、ホストコントローラ205、センサ210、ホストコントローラまたはマスタ1102、およびスレーブまたはセンサデバイス1202による命令(たとえば、アプリケーション)の実行とともに実装され得ることを諒解されたい。具体的には、限定はされないがプロセッサを含むデバイスの回路は、本発明の実施形態による方法またはプロセス(たとえば、図3〜図10により示されるプロセス)を実行するために、アプリケーション、プログラム、ルーチンの制御下、または命令の実行下で動作し得る。たとえば、そのようなプログラムは、(たとえば、メモリおよび/または他の場所に記憶された)ファームウェアまたはソフトウェアにおいて実装されてもよく、プロセッサ、および/またはデバイスの他の回路によって実装されてもよい。さらに、プロセッサ、マイクロプロセッサ、回路、コントローラなどの用語が、論理、コマンド、命令、ソフトウェア、ファームウェア、機能などを実行することができる任意のタイプの論理または回路を指すことを諒解されたい。
【００９７】
図13は、処理回路1302を利用するホストコントローラ1300のためのハードウェア実装形態の簡略化された例を示す図である。ホストコントローラ1300によって実行される動作の例は、図7のフローチャートならびに図4〜図6のタイムラインに関して上で説明された動作を含む。処理回路1302は、通常、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、シーケンサ、およびステートマシンのうちの1つまたは複数を含み得るプロセッサ1304を有する。処理回路1302は、全般にバス1306により表されるバスアーキテクチャを用いて実装され得る。バス1306は、処理回路1302の具体的な適用例および全体的な設計制約に応じて、任意の数の相互接続バスまたはブリッジを含み得る。バス1306は、プロセッサ1304によって表される1つまたは複数のプロセッサおよび/もしくはハードウェアモジュールと、様々なトランスポートプロトコルもしくはワイヤレスインターフェース(任意選択のアンテナ1312により示される)およびコンピュータ可読記憶媒体1314に従って動作可能な様々なコネクタもしくはワイヤ1310を通じた通信をサポートするように構成されるインターフェースモジュールまたは回路1308とを含む、様々な回路を通信可能に結合する。バス1306はまた、タイミングソース、周辺装置、電圧調整器、および電力管理回路などの、様々な他の回路をつなぐことがあるが、これらの回路は当技術分野においてよく知られており、本明細書では詳しく説明されない。インターフェース1310は、1つまたは複数のトランスポートフォーマットに従って動作可能な1つまたは複数のインターフェースであってよく、ならびに1つまたは複数のスレーブ/センサデバイスまたは他のホストコントローラに通信可能に結合されてもよいことに留意されたい。
【００９８】
プロセッサ1304は、コンピュータ可読記憶媒1314上に記憶されたソフトウェア/命令の実行を含む一般的な処理を担う。ソフトウェア/命令は、プロセッサ1304によって実行されると、任意の特定の装置について前に説明された様々な機能を処理回路1302に実行させる。コンピュータまたはプロセッサ可読記憶媒体1314はまた、コネクタもしくはワイヤ1310またはアンテナ1312を通じて送信されたシンボルから復号されるデータを含む、ソフトウェアを実行するときにプロセッサ1304によって操作されるデータを記憶するためにも使用され得る。処理回路1302はさらに、コンピュータ可読記憶媒体1314に存在する/記憶された、プロセッサ1304の中で動作するソフトウェアモジュール、プロセッサ1304に結合された1つまたは複数のハードウェアモジュール、またはそれらのいくつかの組合せであり得る、モジュール/回路1308の少なくとも1つを含む。モジュール/回路1308は、マイクロコントローラ命令、ステートマシン構成パラメータ、またはそれらの何らかの組合せを含み得る。
【００９９】
一構成では、プロセッサ可読媒体1314は、たとえば、図7のブロック702に示されるプロセスを含む様々な機能をプロセッサ1304に実行させるように構成される、インターフェースイベントを検出するための命令を含む。プロセッサ可読媒体1314はまた、たとえば、図7のブロック704および706に示されるプロセスを含む様々な機能をプロセッサ1304に実行させるように構成される、インターフェース上で第1および第2のイベントを使用するための命令を含む。加えて、プロセッサ可読媒体1314はまた、たとえば、図7のブロック708に示されるプロセスを含む様々な機能をプロセッサ1304に実行させるように構成される、少なくとも1つのセンサの第1および第2のクロックカウント(たとえば、SC1、SC2)を受信するための命令を含む。最後に、プロセッサ可読媒体1314はまた、たとえば、図7のブロック710に示されるプロセスを含む様々な機能をプロセッサ1304に実行させるように構成される、インターフェースイベントのタイムスタンプを決定するための命令を含む。
【０１００】
図14は、処理回路1402を利用するホストコントローラ1400のためのハードウェア実装形態の簡略化された例を示す図である。ホストコントローラ1400によって実行される動作の例は、たとえば、図9のタイムラインおよび図10のフローチャートに関して上で説明された動作を含む。処理回路1402は、通常、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ、シーケンサ、およびステートマシンのうちの1つまたは複数を含み得るプロセッサ1404を有する。処理回路1402は、全般にバス1406により表されるバスアーキテクチャを用いて実装され得る。バス1406は、処理回路1402の具体的な適用例および全体的な設計制約に応じて、任意の数の相互接続バスまたはブリッジを含み得る。バス1406は、プロセッサ1404によって表される1つまたは複数のプロセッサおよび/もしくはハードウェアモジュールと、様々なトランスポートプロトコルもしくはワイヤレスインターフェース(任意選択のアンテナ1412により示される)およびコンピュータ可読記憶媒体1414に従って動作可能な様々なコネクタもしくはワイヤ1410を通じた通信をサポートするように構成されるインターフェースモジュールまたは回路1408とを含む、様々な回路を通信可能に結合する。バス1406はまた、タイミングソース、周辺装置、電圧調整器、および電力管理回路などの、様々な他の回路をつなぐことがあるが、これらの回路は当技術分野においてよく知られており、本明細書では詳しく説明されない。インターフェース1410は、1つまたは複数のトランスポートフォーマットに従って動作可能な1つまたは複数のインターフェースであってよく、ならびに1つまたは複数のスレーブ/センサデバイスまたは他のホストコントローラに通信可能に結合されてもよいことに留意されたい。
【０１０１】
プロセッサ1404は、コンピュータ可読記憶媒1414上に記憶されたソフトウェア/命令の実行を含む一般的な処理を担う。ソフトウェア/命令は、プロセッサ1404によって実行されると、任意の特定の装置について前に説明された様々な機能を処理回路1402に実行させる。コンピュータまたはプロセッサ可読記憶媒体1414はまた、コネクタもしくはワイヤ1410またはアンテナ1412を通じて送信されたシンボルから復号されるデータを含む、ソフトウェアを実行するときにプロセッサ1404によって操作されるデータを記憶するためにも使用され得る。処理回路1402はさらに、コンピュータ可読記憶媒体1414に存在する/記憶された、プロセッサ1404の中で動作するソフトウェアモジュール、プロセッサ1404に結合された1つまたは複数のハードウェアモジュール、またはそれらのいくつかの組合せであり得る、モジュール/回路1408の少なくとも1つを含む。モジュール/回路1408は、マイクロコントローラ命令、ステートマシン構成パラメータ、またはそれらの何らかの組合せを含み得る。
【０１０２】
一構成では、プロセッサ可読媒体1414は、たとえば、図10のブロック1002に示されるプロセスを含む様々な機能をプロセッサ1404に実行させるように構成される、T_Ph期間の開始を決定するための命令を含む。プロセッサ可読媒体1414はまた、たとえば、図10のブロック1004に示されるプロセスを含む様々な機能をプロセッサ1404に実行させるように構成される、センササンプルの時間位置を決定するための命令を含む。加えて、プロセッサ可読媒体1414はまた、たとえば、図14のブロック1006に示されるプロセスを含む様々な機能をプロセッサ1404に実行させるように構成される、センササンプルデータの時間測定を決定するための命令を含む。
【０１０３】
加えて、本明細書において開示されるメッセージおよびイベントは、多くの異なるタイプのインターフェースにわたって送信されることがあり、本明細書において開示される方法は、いずれの1つのタイプのインターフェースにも限定されない。さらなる態様では、方法は、いくつかのセンサがホストコントローラの内部時間基準に対して同期され得る、いくつかのまたは複数のインターフェースならびに複数のインターフェースプロトコル上で使用され得る。本明細書において論じられるHWイベントは、任意の数の既知のイベントであり得ることにも留意されたい。HWイベントの例として、同期ティックメッセージ(ST)自体が、SPIトランスポートにおける取り決められたイベントを構成することがあり、ここでSTメッセージは全体で1マイクロ秒しかかからず、これは同期イベントに対しては十分に短い。HWイベントの他の例は、トランスポート媒体上でのパルスのエッジであり得る。一部のHWイベントは、パルスの定義されたセットの最後のエッジであることなどの、補足的な特性を有し得る。ワイヤレスシステムでは、ワイヤレスインターフェース上での通信の開始は、HWイベントの構成要素であり得る。ワイヤレスインターフェースの別の例では、HWイベントは、様々な既知のワイヤレスプロトコルに特有の、特別なまたは専用の通信もしくは通信チャネルの使用を通じて通信され得る。
【０１０４】
本明細書において説明される方法は、ワイヤレスワイドエリアネットワーク(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の任意の組合せとともに実装され得る。本開示の実施形態はI2CおよびI3Cなどのインターフェース/バスに関連して説明され得るが、方法および装置はこれらのインターフェースだけとともに使用されることに限定されず、SPI、SLIMbus、UART、SoundWireなどの他のインターフェースとともに使用され得ることも諒解されたい。
【０１０５】
本明細書において提示される例示的な方法、装置、または製造品は、全体的に、または部分的に、モバイル通信デバイスにおいて、またはモバイル通信デバイスとともに使用するために実装され得る。本明細書で使用される場合、「モバイルデバイス」、「モバイル通信デバイス」、「ハンドヘルドデバイス」、「タブレット」など、またはそのような用語の複数形は、互換的に使用されることがあり、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  方法
400  タイムライン図
402  タイムライン
404  センササンプル
406  内部センサタイムライン
408  パルス
410  クロックパルス/サイクル
414  第1のイベント
416  第2のイベント
421  クロックパルス/サイクル
422  第1の時間期間
522  第2の時間期間
602  CNT1閾値
604  CNT2閾値
604  スケーリングされたタイムライン
700  方法
800  方法
900  タイムライン図
904  メッセージ
906  ST
908  遅延時間(DT)
908  メッセージ
910  時間期間
1000  方法
1102  ホストコントローラまたはマスタデバイス
1104  処理/論理回路
1106  送信機および受信機回路
1108  タイマ/クロック回路
1110  トランスポート媒体インターフェース回路
1112  メモリ
1114  レジスタ/カウンタ
1202  センサまたはスレーブデバイス
1204  処理/論理回路
1206  送信機および受信機回路
1208  タイマ/クロック回路
1209  レジスタ/カウンタ
1210  トランスポート媒体インターフェース回路
1212  メモリ
1300  ホストコントローラ
1302  処理回路
1304  プロセッサ
1306  バス
1308  インターフェースモジュール/回路
1310  コネクタまたはワイヤ
1312  アンテナ
1314  プロセッサ可読記憶媒体
1400  ホストコントローラ
1402  処理回路
1404  プロセッサ
1406  バス
1408  インターフェースモジュール/回路
1410  コネクタまたはワイヤ
1412  アンテナ
1414  プロセッサ可読記憶媒体
【図１】
2018534686.tif 000006
【図２】
2018534686.tif 000007
【図３】
2018534686.tif 000008
【図４】
2018534686.tif 000009
【図５】
2018534686.tif 000010
【図６】
2018534686.tif 000011
【図７】
2018534686.tif 000012
【図８】
2018534686.tif 000013
【図９】
2018534686.tif 000014
【図１０】
2018534686.tif 000015
【図１１】
2018534686.tif 000016
【図１２】
2018534686.tif 000017
【図１３】
2018534686.tif 000018
【図１４】
2018534686.tif 000019
【手続補正書】
【提出日】平成30年4月24日(2018.4.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホストコントローラと結合されるインターフェース上でのインターフェースイベントのホストコントローラにおけるタイムスタンプを提供するための方法であって、
センサによって引き起こされる前記インターフェースイベントの発行を特定する、前記センサからのメッセージを、前記インターフェース上で受信するステップであって、前記インターフェースイベントが前記センサ上で第1の時間に発生する、ステップと、
前記受信されたメッセージおよびホストコントローラクロックのサイクルの第1のカウントを始動したことに応答して前記第1の時間の後の第2の時間に前記インターフェース上で第1のイベントを発行するステップであって、前記第1のカウントの前記始動が前記第1のイベントを発行することと同時である、ステップと、
前記第2の時間の後の第3の時間に前記インターフェース上で第2のイベントを発行し、前記ホストコントローラクロックのサイクルの前記第1のカウントを停止するステップであって、前記第1のカウントの前記停止が前記第2のイベントを発行することと同時である、ステップと、
前記センサから第1のセンサクロックカウントおよび第2のセンサクロックカウントを受信するステップであって、前記第1のセンサクロックカウントが前記第1の時間から前記第2の時間までの内部センサクロックのサイクルのカウントであり、前記第2のセンサクロックカウントが前記第2の時間から前記第3の時間までの前記内部センサクロックのサイクルのカウントである、ステップと、
ホストコントローラクロックのサイクルの前記第1のカウント、前記第1のセンサクロックカウント、前記第2のセンサクロックカウント、および前記第2の時間のホストコントローラタイムスタンプに少なくとも一部基づいて、前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを前記ホストコントローラ内で決定するステップとを備える、方法。
【請求項２】
前記ホストコントローラおよび前記センサが、I2C、I3C、SPI、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの1つまたは複数を介して通信可能に結合される、請求項1に記載の方法。
【請求項３】
前記第1のイベントおよび前記第2のイベントの各々が、前記ホストコントローラと前記センサの両方に知られている所定のハードウェアイベントを備える、請求項1に記載の方法。
【請求項４】
前記メッセージが前記センサによって発行される割込み要求を備える、請求項1に記載の方法。
【請求項５】
前記受信された第1のセンサクロックカウントおよび第2のセンサクロックカウントが、前記第1のセンサクロックカウントと前記第2のセンサクロックカウントの比が一定のままであるように共通の係数によって低減される低減されたカウント数の値を備える、請求項1に記載の方法。
【請求項６】
前記共通の係数による前記第1のセンサクロックカウントおよび前記第2のセンサクロックカウントの前記値の前記低減がさらに、
2という係数によって前記第1のセンサクロックカウントの現在のカウントを低減するステップと、
2という係数によって前記第1のセンサクロックカウントをカウントするレートを低減するステップと、
少なくとも2という係数によって前記第2のセンサクロックカウントの現在のカウントを低減するステップと、
少なくとも2という係数によって前記第2のセンサクロックカウントをカウントするレートを低減するステップと、
前記第2のセンサクロックカウントの前記現在のカウントが少なくとも2という係数によって低減されるとき、2という係数によって前記第1のセンサクロックカウントの記憶されているカウントを除算するステップとを備える、請求項5に記載の方法。
【請求項７】
前記第1のインターフェースイベントおよび前記第2のインターフェースイベントが、前記イベントの前記検出を示すメッセージを前記センサが送信した後で発生する、請求項1に記載の方法。
【請求項８】
前記ホストコントローラがさらに、前記ホストコントローラクロックの時間に関して前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを決定するように構成され、前記ホストコントローラが、次の関係に従って前記インターフェースイベントの前記タイムスタンプを決定し、
前記インターフェースイベントのタイムスタンプ=MREF-MC2×SC1/SC2
MC2が前記ホストコントローラクロックのサイクルの前記第1のカウントであり、SC1が前記第1のセンサクロックカウントであり、SC2が前記第2のセンサクロックカウントであり、MREFが前記第2の時間の前記ホストコントローラタイムスタンプである、請求項1に記載の方法。
【請求項９】
少なくとも1つのトランスポート媒体を介して少なくとも1つのセンサに通信可能に結合されるトランスポート媒体インターフェースと、
前記トランスポート媒体インターフェースに通信可能に結合される少なくとも1つの処理回路とを備え、前記少なくとも1つの処理回路が、
前記センサによって引き起こされる前記インターフェースイベントの発行を特定する、前記センサからのメッセージを、前記インターフェース上で受信することであって、前記インターフェースイベントが前記センサ上で第1の時間に発生する、受信することと、
前記受信されたメッセージおよびホストコントローラクロックのサイクルの第1のカウントを始動したことに応答して前記第1の時間の後の第2の時間に前記インターフェース上で第1のイベントを発行することであって、前記第1のカウントの前記始動が前記第1のイベントを発行することと同時である、発行することと、
前記第2の時間の後の第3の時間に前記インターフェース上で第2のイベントを発行し、前記ホストコントローラクロックのサイクルの前記第1のカウントを停止することであって、前記第1のカウントの前記停止が前記第2のイベントを発行することと同時である、発行し、停止することと、
前記センサから第1のセンサクロックカウントおよび第2のセンサクロックカウントを受信することであって、前記第1のセンサクロックカウントが前記第1の時間から前記第2の時間までの内部センサクロックのサイクルのカウントであり、前記第2のセンサクロックカウントが前記第2の時間から前記第3の時間までの前記内部センサクロックのサイクルのカウントである、受信することと、
ホストコントローラクロックのサイクルの前記第1のカウント、前記第1のセンサクロックカウント、前記第2のセンサクロックカウント、および前記第2の時間のホストコントローラタイムスタンプに少なくとも一部基づいて、前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを決定することと
を行うように構成される、ホストコントローラデバイス。
【請求項１０】
前記インターフェースが、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの少なくとも1つまたは複数である、請求項9に記載のホストコントローラデバイス。
【請求項１１】
前記第1のイベントおよび前記第2のイベントの各々が、前記ホストコントローラと前記センサの両方に知られている所定のハードウェアイベントを備える、請求項9に記載のホストコントローラデバイス。
【請求項１２】
前記メッセージが前記センサによって発行される割込み要求を備える、請求項9に記載のホストコントローラデバイス。
【請求項１３】
前記受信された第1のセンサクロックカウントおよび第2のセンサクロックカウントが、前記第1のセンサクロックカウントと前記第2のセンサクロックカウントの比が一定のままであるように共通の係数によって低減される低減されたカウント数の値を備える、請求項9に記載のホストコントローラデバイス。
【請求項１４】
前記共通の係数による前記第1のセンサクロックカウントおよび前記第2のセンサクロックカウントの前記値の前記低減がさらに、
2という係数によって前記第1のセンサクロックカウントの現在のカウントを低減することと、
2という係数によって前記第1のセンサクロックカウントをカウントするレートを低減することと、
少なくとも2という係数によって前記第2のセンサクロックカウントの現在のカウントを低減することと、
少なくとも2という係数によって前記第2のセンサクロックカウントをカウントするレートを低減することと、
2という係数によって前記第1のセンサクロックカウントの記憶されているカウントを除算することとを備える、請求項13に記載のホストコントローラデバイス。
【請求項１５】
前記第1のインターフェースイベントおよび前記第2のインターフェースイベントが、前記イベントの前記検出を示すメッセージを前記センサが送信した後で発生する、請求項9に記載のホストコントローラデバイス。
【請求項１６】
少なくとも1つの処理回路がさらに、前記ホストコントローラクロックの時間に関して前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを決定するように構成され、前記ホストコントローラが、次の関係に従って前記インターフェースイベントの前記タイムスタンプを決定し、
前記インターフェースイベントのタイムスタンプ=MREF-MC2×SC1/SC2
MC2が前記ホストコントローラクロックのサイクルの前記第1のカウントであり、SC1が前記第1のセンサクロックカウントであり、SC2が前記第2のセンサクロックカウントであり、MREFが前記第2の時間の前記ホストコントローラタイムスタンプである、請求項9に記載のホストコントローラデバイス。
【請求項１７】
少なくとも1つの処理回路によって実行されると、前記少なくとも1つの処理回路に、
ホストコントローラおよびセンサを通信可能に結合するインターフェース上で前記センサから前記ホストコントローラにおいてメッセージを受信することであって、前記メッセージが、前記センサによって引き起こされ前記センサ上で第1の時間に発生する前記インターフェースイベントの発行を特定するように構成される、受信することと、
前記受信されたメッセージおよびホストコントローラクロックのサイクルの第1のカウントを始動したことに応答して前記第1の時間の後の第2の時間に前記インターフェース上で第1のイベントを発行することであって、前記第1のカウントの前記始動が前記第1のイベントを発行することと同時である、発行することと、
前記第2の時間の後の第3の時間に前記インターフェース上で第2のイベントを発行し、前記ホストコントローラクロックのサイクルの前記第1のカウントを停止することであって、前記第1のカウントの前記停止が前記第2のイベントを発行することと同時である、発行し、停止することと、
前記センサから第1のセンサクロックカウント(SC1)および第2のセンサクロックカウント(SC2)を受信することであって、前記第1のセンサクロックカウントが前記第1の時間から前記第2の時間までの内部センサクロックのサイクルのカウントであり、前記第2のセンサクロックカウントが前記第2の時間から前記第3の時間までの前記内部センサクロックのサイクルのカウントである、受信することと、
ホストコントローラクロックのサイクルの前記第1のカウント、前記第1のセンサクロックカウント、前記第2のセンサクロックカウント、および前記第2の時間のホストコントローラタイムスタンプ(MREF)に少なくとも一部基づいて、前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを決定することとを行わせる、1つまたは複数の命令を有するプロセッサ可読記憶媒体。
【請求項１８】
前記インターフェースが、I2Cバス、I3Cバス、SPIバス、SMBus、SLIMbus、UARTバス、SoundWireバス、またはワイヤレスインターフェースのうちの少なくとも1つまたは複数を備える、請求項17に記載のプロセッサ可読記憶媒体。
【請求項１９】
前記第1のイベントおよび前記第2のイベントの各々が、前記ホストコントローラと前記センサの両方に知られている所定のハードウェアイベントを備える、請求項17に記載のプロセッサ可読記憶媒体。
【請求項２０】
前記メッセージが前記センサによって発行される割込み要求である、請求項17に記載のプロセッサ可読記憶媒体。
【請求項２１】
前記受信された第1のセンサクロックカウントおよび第2のセンサクロックカウントが、前記第1のセンサクロックカウントと前記第2のセンサクロックカウントの比が一定のままであるように共通の係数によって低減される低減されたカウント数の値を備える、請求項17に記載のプロセッサ可読記憶媒体。
【請求項２２】
前記共通の係数による前記第1のセンサクロックカウントおよび前記第2のセンサクロックカウントの前記値の前記低減がさらに、
2という係数によって前記第1のセンサクロックカウントの現在のカウントを低減することと、
2という係数によって前記第1のセンサクロックカウントをカウントするレートを低減することと、
少なくとも2という係数によって前記第2のセンサクロックカウントの現在のカウントを低減することと、
少なくとも2という係数によって前記第2のセンサクロックカウントをカウントするレートを低減することと、
2という係数によって前記第1のセンサクロックカウントの記憶されているカウントを除算することとを備える、請求項21に記載のプロセッサ可読記憶媒体。
【請求項２３】
前記第1のインターフェースイベントおよび前記第2のインターフェースイベントが、前記イベントの前記検出を示すメッセージを前記センサが送信した後で発生する、請求項17に記載のプロセッサ可読記憶媒体。
【請求項２４】
前記1つまたは複数の命令が、前記少なくとも1つの処理回路によって実行されると、前記少なくとも1つの処理回路にさらに、前記ホストコントローラクロックの時間に関して前記第1の時間に対応する前記インターフェースイベントの前記タイムスタンプを決定させ、前記ホストコントローラが、次の関係に従って前記インターフェースイベントの前記タイムスタンプを決定し、
前記インターフェースイベントのタイムスタンプ=MREF-MC2×SC1/SC2
MC2が前記ホストコントローラクロックのサイクルの前記第1のカウントであり、SC1が前記第1のセンサクロックカウントであり、SC2が前記第2のセンサクロックカウントであり、MREFが前記第2の時間の前記ホストコントローラタイムスタンプである、請求項17に記載のプロセッサ可読記憶媒体。
【国際調査報告】
2018534686.tif 000020
2018534686.tif 000021
2018534686.tif 000022
2018534686.tif 000023
2018534686.tif 000024