(57)【特許請求の範囲】
【請求項１】
サスペンド状態になるように構成された少なくともマイクロコントローラおよびハイパワーアプリケーションプロセッサを含む複数のプロセッサと、
ハードウェアに実装されたアナログフロントエンドとを含み、
前記アナログフロントエンドは、
フォースセンサによって生成されたアナログ信号をデジタル信号に変換し、
前記デジタル信号のサンプルをバッファに格納し、
ベースライン値からの前記デジタル信号の変化率の偏差に基づいて前記デジタル信号をフィルタし、
１つ以上の閾値を通過するフィルタされた前記デジタル信号に対して反応して、前記サスペンド状態から前記マイクロコントローラを起動させて、前記バッファの前記デジタル信号の前記サンプルを解析し、前記デジタル信号がヒューマンジェスチャに対応するか否かを判定し、
前記マイクロコントローラは、前記サスペンド状態から前記ハイパワーアプリケーションプロセッサを起動させてヒューマンジェスチャとして認識された前記デジタル信号に基づいて前記ヒューマンジェスチャを処理するように構成され、
前記フォースセンサは、筐体の両側に設けられ、前記筐体に加えられる力を測定し、前記ヒューマンジェスチャは、前記筐体の両側に力を加える圧迫ジェスチャを含む、システム。
【請求項２】
前記アナログフロントエンドは、自律的に機能するように構成されている、請求項１に記載のシステム。
【請求項３】
前記バッファは、サンプルを約１秒まで格納するように構成されたファーストインファーストアウト（ＦＩＦＯ）バッファを含む、請求項１または請求項２に記載のシステム。
【請求項４】
前記フィルタは、ハイパスフィルタまたはバンドパスフィルタを含む、請求項１から請求項３のいずれか１項に記載のシステム。
【請求項５】
前記マイクロコントローラは、前記ヒューマンジェスチャとして拒否された信号に応答して、前記サスペンド状態に戻るように構成されている、請求項１から請求項４のいずれか１項に記載のシステム。
【請求項６】
前記システムは、それぞれが別のフィルタに関連付けられた複数の集積回路チャネルを含む、請求項１から請求項５のいずれか１項に記載のシステム。
【請求項７】
前記システムは、それぞれが別のフィルタに関連付けられた複数の集積回路チャネルを含み、前記バッファは、前記複数の集積回路チャネルのサブセットの中で共有される、請求項１から請求項６のいずれか１項に記載のシステム。
【請求項８】
前記フォースセンサは、筐体に加えられる力を測定する歪ゲージを含む、請求項１〜請求項７のいずれか１項に記載のシステム。
【請求項９】
前記１つ以上の閾値は、前記ヒューマンジェスチャの異なる種類を識別するために用いられる複数の異なる閾値を含む、請求項１項〜請求項８のいずれか１項に記載のシステム。
【請求項１０】
前記ヒューマンジェスチャの異なる種類は、少なくと１つ以上のスクイズアンドホールドジェスチャ、クイックスクイズアンドリリースジェスチャ、ダブルスクイズアンドリリースジェスチャを含む、請求項９に記載のシステム。
【請求項１１】
モバイルデバイスのための超低電力モードを管理するための方法であって、
前記モバイルデバイスが超低電力モードにあるとき、前記モバイルデバイスの筐体に加えられた力の検出に基づいて入力信号を生成するステップと、
前記入力信号のサンプルをバッファに格納するステップと、
入力信号のベースライン変化率からの偏差に基づいて前記入力信号をフィルタリングするステップと、
１つ以上の閾値を通過する偏差に基づいて割込みをトリガするステップと、
前記割り込みに基づいてマイクロコントローラを低電力アイドル状態から起動させて、前記バッファ内の前記サンプルを分析し、前記入力信号がヒューマンジェスチャに対応するか否かを判定するステップとを含み、
筐体に加えられる力を検出することは、前記筐体の両側に加えられる圧迫力を検出することを含む、方法。
【請求項１２】
前記バッファ内の前記サンプルに基づいて前記入力信号を前記ヒューマンジェスチャとして認識するステップと、
前記ヒューマンジェスチャの認識に基づいてアプリケーションプロセッサを低電力アイドル状態から起動させて、前記ヒューマンジェスチャにマッピングされた動作を実行するように構成されたアプリケーションを実行するステップとをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記バッファ内の前記サンプルに基づいて、前記入力信号を前記ヒューマンジェスチャとして拒否するステップと、
前記マイクロコントローラを前記低電力アイドル状態に戻すステップとをさらに含む、請求項１１または請求項１２に記載の方法。
【請求項１４】
前記入力信号は、１つ以上のフォースセンサによって生成される、請求項１１から請求項１３のいずれか１項に記載の方法。
【請求項１５】
前記入力信号をフィルタリングするステップは、ハイパスフィルタまたはバンドパスフィルタを使用するステップを含む、請求項１１から請求項１４のいずれか１項に記載の方法。
【請求項１６】
割込みをトリガすることは、１つ以上の閾値のうちの少なくとも１つよりも大きい偏差の絶対値に基づいて前記割込みをトリガすることを含む、請求項１１から請求項１５のいずれか１項に記載の方法。
【請求項１７】
コンピューティングデバイスの筐体に加えられる力を検出するように構成された１つ以上のセンサと、
検出された力に基づいて信号を生成するように構成されたコンバータと、
前記信号に対応するサンプルを記憶するように構成されたバッファと、
ベースライン値に対する前記信号の変化率の偏差に基づいて前記信号をフィルタするように構成されたフィルタと、
前記信号の変化率の偏差が閾値よりも大きいかまたは小さいかに基づいて割込みをトリガするように構成されたコンパレータと、
前記割込みに基づいて低電力アイドル状態から起動して前記バッファの前記サンプルを読み出し、前記信号がヒューマンジェスチャに対応するか否かを判定するように構成されたマイクロコントローラとを含み、
前記マイクロコントローラは、ヒューマンジェスチャとして認識された前記信号に対して反応し、ハイパワーアプリケーションプロセッサを低電力アイドル状態から起動させるように構成され、
前記ヒューマンジェスチャは、前記筐体の両側に力を加える圧迫ジェスチャを含む、コンピューティングデバイス。
【請求項１８】
前記フィルタは、１つ以上の前記センサによって生成された信号からドリフトおよびノイズを除去するディファレンシエータを含む、請求項１７に記載のコンピューティングデバイス。
【請求項１９】
前記マイクロコントローラは、前記信号が前記ヒューマンジェスチャでないとの判定に応答して、前記低電力アイドル状態に戻るように構成されている、請求項１７または請求項１８に記載のコンピューティングデバイス。
【請求項２０】
１つ以上の前記センサ、前記コンバータ、および前記フィルタがハードウェアに実装されている、請求項１７から請求項１９のいずれか１項に記載のコンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
背景
コンピューティングデバイス上の多くのセンサは、デバイスを起動させてデバイスにクリティカルイベントをチェックさせることを可能にするために、１つ以上の低電力コア上で動作するプログラムの形態での常時監視を必要とする。これを実行するために、低電力コアは、定期的に起動されて、誤報によるものであることが多いイベントを検出するためにセンサからのデータを読み取る。例えば、いくつかのデバイスは、５０Ｈｚの周期的な速度でサンプルし、低電力コアがデータを読み出すために５０回／秒で起動させる結果となる。このデバイスの監視および起動は、電力を消費し、デバイスの電池寿命を減らす。
【０００２】
加えて、多くのセンサはドリフトする傾向があり、これは、センサ入力および他の構成要素における漸進的でしばしば予測不可能な変化であり、読み取りを元の較正状態からオフセットさせることを引き起こす可能性がある。様々な異なる影響は、ノイズ、温度変動、または経年劣化などのセンサのドリフトを引き起こす可能性がある。その結果、ドリフトは入力を変化させ、クリティカルイベントを検出するために使用される信号閾値を追跡し変更するために、低電力コアの監視を必要とするであろう。
【０００３】
この背景の説明は、開示の文脈を一般的に提示する目的で提供される。本明細書中で特に断らない限り、このセクションに記載されているマテリアルは、本開示または添付の特許請求の範囲に対して、従来技術であると明示的にも暗示的に認められていない。
【発明の概要】
【０００４】
概要
低コストフォースセンシングデバイスのための超低電力モードを提供する技術およびデバイスが説明される。これらの技術は、潜在的な起動イベントのための電力消費を最小化することによって、デバイスの電池寿命を伸ばす。これを行うために、デバイスは、ハードウェアで実装されたアナログフロントエンドにいくつかのワークを任せるが、そのアナログフロントエンドは、センサ信号の基本的なチェックを実行し、信頼度のある閾値レベルで“重要性のある”イベントが発生した場合にのみ、マイクロコントローラ（例えば、低電力コア）を起動させる。次に、マイクロコントローラは、センサデータをより詳細に分析する。もし、マイクロコントローラは、入力信号がヒューマンジェスチャに対応するものであると高い信頼度で判定した場合、マイクロコントローラは、ヒューマンジェスチャを処理するためにアプリケーションプロセッサ（例えば、ハイパワーコア）を起動させる。アプリケーションプロセッサは、追加の基準に基づいて、ジェスチャを処理し、またはスリープモードに戻るであろう。本明細書に説明される技術は、入力信号における信頼度の閾値レベルに基づいて、次のレベルのプロセッシングパワー（より多くの電力を消費するところの）のみを起動させるため、これらの技術は、クリティカルイベントをチェックするためにマイクロコントローラを定期的に起動させる従来の技術を改善する。
【０００５】
態様において、ディファレンシエータ（例えば、ハイパスフィルタ）は、時間領域におけるセンサ信号を評価して信号の変化率の推定値を提供するために使用される。このディファレンシエータは、より多くの分析を行うためにマイクロコントローラを起動させる前にセンサ信号の予備的な評価を提供する自律システム（例えば、アナログフロントエンド）の一部として実装される。信号の変化率が閾値量だけベースライン値から逸脱する場合、マイクロコントローラは、履歴データの２００ミリ秒またはそれ以上のような履歴サンプルのセットを評価するために起動される。もし、ヒューマンジェスチャが認識されない場合、マイクロコントローラはアイドル状態に戻るが、もし、ヒューマンジェスチャが認識された場合、アプリケーションプロセッサは、ヒューマンジェスチャにマッピングされた動作を実行するように構成されたアプリケーションを実行するように起動される。
【０００６】
以下に説明する態様は、複数のプロセッサとアナログフロントエンドとを含むシステムを含む。複数のプロセッサは、サスペンド状態（例えば、スリープ状態）になるように構成された少なくともマイクロコントローラおよびハイパワーアプリケーションプロセッサを含む。アナログフロントエンドは、ハードウェアに実装され、フォースセンサによって生成されたアナログ信号をデジタル信号に変換し、デジタル信号のサンプルをバッファに格納し、ベースライン値からの信号の変化率の偏差に基づいてデジタル信号をフィルタし、１つ以上の閾値を通過するフィルタされたデジタル信号に対して反応して、サスペンド状態からマイクロコントローラを起動させる。マイクロコントローラは、起動し、バッファの前記デジタル信号のサンプルを解析し、デジタル信号がヒューマンジェスチャに対応するか否かを判定する。マイクロコントローラは、サスペンド状態からハイパワーアプリケーションプロセッサを起動させてヒューマンジェスチャとして認識されたデジタル信号に基づいてヒューマンジェスチャを処理するように構成されている。
【０００７】
以下に説明する態様は、モバイルデバイスが低パワーアイドル状態（たとえば、スリープ状態）にあるとき、モバイルデバイスの筐体に加えられた力の検出に基づいて入力信号を生成する方法を含む。その方法は、また、入力信号のサンプルをバッファに格納するステップを含む。その方法は、追加的に、入力信号のベースライン変化率からの偏差に基づいて入力信号をフィルタリングするステップを含む。その方法は、さらに、１つ以上の閾値を通過する偏差に基づいて割込みをトリガするステップを含む。その方法は、さらに、割り込みに基づいてマイクロコントローラを低電力アイドル状態から起動させて、バッファ内のサンプルを分析し、入力信号がヒューマンジェスチャに対応するか否かを判定するステップを含む。
【０００８】
以下に説明する態様は、また、１つ以上のセンサと、コンバータと、バッファと、フィルタと、コンパレータと、マイクロコントローラとを含むコンピューティングデバイスを含む。１つ以上のセンサは、コンピューティングデバイスの筐体に加えられた力を検出するように構成されている。コンバータは、検出された力に基づいて信号を生成するように構成されている。バッファは、信号に対応するサンプルを格納するように構成されている。フィルタは、ベースライン値に対する信号の変化率の偏差に基づいて信号をフィルタするように構成されている。コンパレータは、信号の変化率の偏差が閾値よりも大きいかまたは小さいか、あるいは、特定範囲の外にあるかに基づいて割込みをトリガするように構成されている。マイクロコンピュータは、割込みに基づいて低電力アイドル状態から起動してバッファの前記サンプルを読み出し、信号がヒューマンジェスチャに対応するか否かを判定するように構成されている。また、マイクロコンピュータは、ヒューマンジェスチャとして認識された信号に対して反応し、ハイパワーアプリケーションプロセッサを低電力アイドル状態から起動させるように構成されている。
【０００９】
低コストフォースセンシングデバイスのための超低電力モードを可能にする装置および技術は、以下の図面を参照して説明される。同様の特徴および構成要素を参照するために、図面全体を通して同じ番号が使用される。
【図面の簡単な説明】
【００１０】
【図１】モバイルデバイスが実装され得る例示的な環境を示す。
【図２】図１の要素をより詳細に示す。
【図３】超低電力モードを管理するように構成されたフォースセンシングデバイスのハードウェア構成要素の実装例を示す図である。
【図４】フォースセンシングデバイスの超低電力モードのための方法例を示す図である。
【図５】１つ以上の態様におけるフォースセンシングデバイスにおいて超低電力モードを実施することができる例示的なコンピューティングシステムの様々な構成要素を示す。
【発明を実施するための形態】
【００１１】
詳細な説明
概観
一般的に、低電力モードで動作するコンピュータデバイスは、コンピューティングデバイスを起動させるために使用される異なるセンサを常に監視することによって、絶えず電力を消費する。このデバイスは、実際のイベントを検出するため、常に起動されてセンサからデータを読み出すかもしれない。しかしながら、イベントは、センサにおけるドリフトのような様々な異なる要因による誤報であるかもしれない。ドリフトは、不均一な加熱によるコンポーネント材料の膨張が原因で引き起こされる機械的な問題や、水分、センサと物理的な力が印加された表面との間の緩和等といった、様々な異なる要因によって引き起こされ得る。いくつかのセンサは、大量のドリフトを起こしにくいかもしれないが、そのようなセンサは高価である可能性がある。対照的に、安価なセンサは、一般的にドリフトを引き起こす傾向がある。
【００１２】
これらの欠点に取り組むために、フォースセンシングデバイスの超低電力モードを可能にする低コストの解決策を提供する技術および装置が以下に記述される。これらの技術および装置もまた、ハードウェア構造を実装することによって、デバイスの電池寿命を伸ばすのであり、そのハードウェア構造は、センサデータを自律的に捕捉するとともに、センサデータのさらなる分析を行うべくマイクロコントローラを起動させるに十分に“重要性のある”ことを保証するベースラインからの逸脱を併せて検出する。もし、マイクロコントローラが、センサデータがヒューマンジェスチャに対応すると高い信頼度で判定した場合、アプリケーションプロセッサ（ハイパワーコア）は、ジェスチャに関連付けられた動作を実行するために起動される。しかし、センサデータがヒューマンジェスチャに対応していないと判定された場合、アプリケーションプロセッサは、起動されることなく、低電力モードに留まり、マイクロコントローラは、自身の低電力モードに戻る。このようにして、マイクロコントローラおよびアプリケーションプロセッサは、直流電流（ＤＣ）しきい値をモニタし、かつ、センサのドリフトを考慮し損ねる従来の技術に比べて、より少ない回数だけ起動される。
【００１３】
例えば、人間がスマートフォンを自分のポケットに携帯している場合を考える。スマートフォンにはユーザの衣類との接触を通じて筐体またはケースに外力が与えられるかもしれないし、あるいは、ユーザの身体に対するスマートフォンの近接に基づく温度上昇が発生するかもしれない。ユーザがスマートフォンを握ると、筐体またはケースに力が加わる。しかしながら、これらの状況のいずれも、スマートフォンを起動させるユーザの意図を提示するものではないが、特にドリフトの影響を受けやすい低コストのフォースセンサを使用する場合に、起動イベントをトリガする潜在的な誤検出を提示する。しかしながら、ユーザが反対側でスマートフォンを圧迫すると、ユーザの意図が起動イベントをトリガすることにあるかもしれない。本明細書に記載された技術および装置は、スマートフォンが低電力状態にあるときに、スマートフォンによる誤検出および電力消費を低減する。なぜなら、スマートフォンのプロセッサは、フォースセンサを動作させるため、または潜在的な起動イベントを検証または拒否するために、起動することが要求されないからである。
【００１４】
以下では、最初に動作環境、次に方法を説明し、例示的な電子デバイスおよび例示的な態様の説明で終了する。
【００１５】
例示的な環境
図１は、低コストフォースセンシングデバイスのための超低電力モードを実施することができる例示的な環境１００を示す。例示的な環境１００は、センサ１０４と、アナログフロントエンド１０６と、メモリ１０８と、マイクロコントローラ１１０と、アプリケーションプロセッサ１１２とを有するコンピューティングデバイス１０２を含む。コンピューティングデバイス１０２は、マイクロコントローラ１１０およびアプリケーションプロセッサ１１２が一時停止されるか、または低電力アイドル状態になる超低電力モードで動作するように構成されている。
【００１６】
センサ１０４は、コンピューティングデバイスの筐体１１４に加わる物理的な力を検出するフォースセンサなどの任意の適切なセンサを含むことができる。態様において、センサ１０４は、歪みゲージを含み、その歪みゲージは、コンピューティングデバイス１０２に組み込まれており、コンピューティングデバイス１０２、筐体１１４、または筐体１１４とコンピューティングデバイス１０２の１つ以上の内部コンポーネントとの間の接着剤の歪みを機械的に測定する。複数のセンサ１０４は、コンピューティングデバイス１０２の異なる領域、例えば、両側に適用される力を検出するために、コンピューティングデバイス１０２上に実装され得る。少なくとも１つの実装形態において、各センサ１０４は、異なる集積回路（ＩＣ）チャネルに関連付けることができ、そのため、各センサ１０４から得られるデータは、他のセンサ１０４から得られるデータとは独立して読み出すことができるようになる。しかしながら、一例では、コンピューティングデバイス１０２の両側の２つのセンサ１０４は、コンピューティングデバイス１０２に加えられた圧迫力を測定するために単一のＩＣチャネルに関連付けることができる。したがって、コンピューティングデバイス１０２に加えられる力を測定するために、任意の適切なセンサ１０４が使用され得る。
【００１７】
アナログフロントエンド１０６は、センサ１０４によって取得されたデータがそのデータを分析するためにマイクロコントローラ１１０を起動させることを保証するか否かを自律的に決定することができる。アナログフロントエンド１０６は、センサ１０４から得られたアナログ信号等の信号をデジタル信号に変換する。アナログフロントエンド１０６はまた、ベースライン値に対するデジタル信号の変化率に基づいて、デジタル信号をフィルタし、変化率がある閾値を超える場合には、マイクロコントローラ１１０の起動イベントをトリガする。加えて、アナログフロントエンド１０６は、一旦、起動したマイクロコントローラ１１０が生センサデータに基づいてジェスチャ解析を実行することを可能にするために、生センサデータをバッファのようなメモリ１０８に格納する。
【００１８】
マイクロコントローラ１１０は、アナログフロントエンド１０６に直接取り付けられた低電力コアなどの低電力コンピューティングエンティティを表す。マイクロコントローラ１１０は、ジェスチャモジュール１１６に対して生のセンサデータがヒューマンジェスチャに対応しているかどうかを判定させるために、低電力アイドル状態から起動され得る。一例では、ヒューマンジェスチャは、矢印１２０−１および１２０−２で示すように、コンピューティングデバイス１０２の筐体１１４またはカバーの両側に圧迫力が加えられるスクイズジェスチャ１１８を含む。例示的な圧迫力（例えば、矢印１２０−１、１２０−２）は、コンピューティングデバイスの左側および右側に適用されるように示されているが、いずれの側（例えば、上部、底部、前面、背面、左側、右側）も圧迫力の検出に使用することができる。もし、圧迫力が所定の閾値よりも大きい場合、ヒューマンジェスチャ（例えば、スクイズジェスチャ１１８）が認識され得る。もし、ヒューマンジェスチャが認識された場合、マイクロコントローラ１１０はジェスチャに関連する動作の実行のためにアプリケーションプロセッサ１１２を起動させる。
【００１９】
アプリケーションプロセッサ１１２は、ＡＲＭプロセッサなどのハイパワーコアを代表するものであって、システムサービスおよびユーザアプリケーションコードを実行する能力を有する。電力を節約するために、マイクロプロセッサ１１０がアプリケーションプロセッサ１１２を起動させるまで、アプリケーションプロセッサ１１２は低電力アイドル状態のままである。アプリケーションプロセッサ１１２は、一度起動すると、ジェスチャを処理するためにアプリケーション１２２を実行することができ、たとえば、認識されたジェスチャに関連付けられた動作を実行する。
【００２０】
少なくともセンサ１０４およびアナログフロントエンド１０６は、ハードウェアに実装されて自律的に動作することができ、このことが、マイクロコントローラ１１０およびアプリケーションプロセッサ１１２に対して、より長い期間にわたって低電力アイドル状態に留まることを許容することとなり、その結果、電池寿命がより長くなる。
【００２１】
１つ以上の態様に従って、図１のコンピューティングデバイス１０２の例示的な実装２００をより詳細に示す図２を考える。コンピューティングデバイス１０２は、様々な非限定的な例示的なデバイスで示されている：すなわち、スマートフォン１０２−１、ラップトップ１０２−２、テレビ１０２−３、デスクトップ１０２−４、タブレット１０２−５およびウェアラブルコンピュータ１０２−６である。コンピューティングデバイス１０２は、コンピュータプロセッサ２０２と、コンピュータ可読媒体２０４とを含み、コンピュータ可読媒体２０４は、メモリ媒体２０６、ストレージ媒体２０８、およびジェスチャモジュール１１６を含む。コンピュータ可読媒体２０４上のコンピュータ可読命令として具現化されたアプリケーションおよび／またはオペレーティングシステム（図示せず）は、本明細書で説明される機能のいくつかを提供するために、プロセッサ２０２（例えば、アプリケーションプロセッサ１１２）によって実行され得る。コンピュータ可読媒体２０４はまた、ジェスチャモジュール１１６を含み、ジェスチャモジュール１１６は、スクイズジェスチャ１１８のような、特定の動作にマッピングされた１つ以上のジェスチャとしてユーザ入力を認識することができる。
【００２２】
モバイルコンピューティングデバイス１０２はまた、センサ１０４と、アナログフロントエンド１０６と、Ｉ／Ｏポート２１０と、ネットワークインタフェース２１２とを含む。Ｉ／Ｏポート２１０は、様々なポートを含むことができ、たとえば、限定ではなく例としては、高解像度マルチメディアインターフェイス（HDMI(登録商標)）、デジタルビデオインターフェイス（DVI）、ディスプレイポート、光ファイバまたは光ベースのオーディオポート（アナログ、光、またはデジタルなど）、ユニバーサルシリアルバス（USB）ポート、シリアルアドバンストテクノロジアタッチメント（SATA）ポート、周辺機器相互接続（PCI）エクスプレスベースのポートまたはカードスロット、シリアルポート、パラレルポート、またはその他のレガシーポートである。モバイルコンピューティングデバイス１０２はまた、有線、無線、または光ネットワークを介してデータを通信するためのネットワークインタフェース２１２を含むことができる。限定ではなく例として、ネットワークインタフェース２１２は、ローカルエリアネットワーク（LAN）、無線ローカルエリアネットワーク（WLAN）、パーソナルエリアネットワーク（PAN）、広域ネットワーク（WAN）、イントラネット、インターネット、ピアツーピアネットワーク、ポイントツーポイントネットワーク、メッシュネットワークなどでデータを通信することができる。
【００２３】
図２のコンピューティングデバイスをより詳細に説明したが、この説明は、今から、超低電力モードのために構成されたフォースセンシングデバイスのハードウェア構成要素の実装例３００を示す図３に向けられる。実装形態は、単一の集積回路（ＩＣ）チャネルを表す。しかしながら、それぞれ独立した経路を有する複数のＩＣチャネルが実装されてもよい。いくつかの例では、ＩＣチャネルのサブセットは、単一のパスを共有してもよい。
【００２４】
図３において、センサ１０４は、アナログフロントエンド１０６に送られるアナログ信号を生成する。図１のアナログフロントエンド１０６は、コンバータ３０２、バッファ３０４、フィルタ３０６、オプションの絶対値ブロック３０８、およびコンパレータ３１０を含むものとして示されている。コンバータ３０２は、アナログ−デジタル（AD）コンバータなどの任意の適切なコンバータを含むことができる。コンバータ３０２は、センサ１０４からのアナログ信号をデジタル信号に変換するとともに変換された信号の生サンプルをバッファ３０４に格納することにより、その生サンプル３１２を後続の分析の履歴データとして利用可能にする。加えて、コンバータ３０２は、そのデジタル信号をフィルタ３０６に送信する。
【００２５】
バッファ３０４は、任意の適切なバッファであり得る。電力に関する低コストの実装のためであれば、例示的なバッファ３０４は、ファーストインファーストアウト（FIFO）バッファまたはリングバッファであり得る。バッファは、２５０ミリ秒、５００ミリ秒、７５０ミリ秒、１．０秒などの適切な深度を含めることができる。以下でさらに説明するように、バッファの深さは、ジェスチャ検出に望ましいデジタル信号の生サンプル３１２（たとえば履歴データ）の量に依存する。実装では、バッファはＡＤコンバータサンプルごとに１つのエントリを含み、サンプルを順番に格納する。複数のチャネルが使用される場合、バッファ３０４は、すべてのチャネルまたはチャネルのサブセット間で共有することができる。
【００２６】
フィルタ３０６は、デジタル信号からＤＣ成分を効果的に除去する“ベースライニング”を実行するように構成されている。少なくとも１つの例では、フィルタ３０６は、信号の変化率（例えば、勾配）を決定するためのデジタル信号の一次微分を取ることができる。瞬時微分は、最後の２つのサンプル間の差を使用して取得できる。しかしながら、瞬時微分は変化率の推定値を提供するのみであり、ノイズまたはドリフトに基づいて誤ったアラームをトリガする傾向がある。代わりに、微分は、特定の値を超える微分を可能にするハイパスフィルタを使用して取得され得る。フィルタはどのタイプでもよいが、電力とハードウェアとを最小限に抑えるために選択することができる。フィルタは、固定係数のセットを使用して自律型ハイパスフィルタを形成するシリコンなどのハードウェアに実装される。その結果、フィルタ３０６は低電力で実装され得る。
【００２７】
一例では、フィルタ３０６は、予測可能なカットオフおよび位相遅延を有するハイパスフィルタとすることができる。代わりに、フィルタ３０６は、５Ｈｚから１５Ｈｚの帯域内のような、関心のある帯域のために構成されたバンドパスフィルタであってもよい。
【００２８】
フィルタ３０６は、信号のハイパスリプレゼンテーションを提供するための１つ以上の係数を含む。フィルタ３０６が信号の変化率を決定するため、信号のハイパスリプレゼンテーションは、ベースラインの変化率に関連している。したがって、ノイズが多くてドリフトが多いセンサの場合、信号のノイズおよびドリフトは、フィルタ３０６によって低減または除去される。例えば、もし、センサ１０４が１秒間に１回ドリフトすると、その値はベースラインの変化率となり、より低レートで変化する信号の部分は除去され得る。ベースラインの変化率を超える信号の一部はフィルタを通じて通過し、フィルタされたデータとして渡される。したがって、フィルタ３０６は、ジェスチャ認識のための適切な信頼度を維持しつつ、誤作動を最小限に抑えるように構成されている。例えば、フィルタ３０６は、ドリフトよりも高く設定されるが、認識されるべきヒューマンジェスチャよりも低く設定される。
【００２９】
フィルタ３０６によってベースラインが確立された後、絶対値ブロック３０８は、フィルタデータの負の値を除去するために必要に応じて使用される。これにより、ベースラインから負の値の偏差を見つけるために必要とされる追加のデジタルロジックのコストが節約される。
【００３０】
コンパレータ３１０は、フィルタされたデータを１つ以上のレジスタ（例えば、閾値）と比較して、重要性のある可能性があるイベントを識別する。これらのイベントは、最大値または最小値を超え得るのであり、両者はいずれもヒューマンジェスチャを示すものとであり得る。個別の閾値は、異なるタイプのヒューマンジェスチャ、例えば、スクイズアンドホールドジェスチャ、クイックスクイズアンドリリースジェスチャ、ダブルスクイズアンドリリースジェスチャなどを識別するために使用され得る。少なくとも１つの実装形態では、これらのイベントは、時間長さにおいてゼロに設定したフィルタされたデータに基づいて、“アクティビティ無”を示すことができる。重要なイベントは、温度ドリフトまたは他のセンサ特性によって引き起こされる既知のノイズ周波数を超えるベースラインからの偏差を含むかもしれない。一例では、生のデジタル信号がベースラインからＡＤコンバータによる１０００以上のカウント数だけ逸脱したときに、ジェスチャを開始するかもしれない。そのようなものであるため、コンパレータレジスタは、１０００カウント程度に設定され得る。もし、複数のレジスタが存在し、あるいはセンサ１０４が電子的または機械的に反転されると、システムもまた、負の１０００カウントを聞くことができる。もし、コンパレータが２つのレジスタを有する場合、閾値は｛−１０００、１０００｝に設定され得る。もし、絶対値ブロック３０８が使用される場合、１０００カウントの単一の閾値を使用して、｛−１０００、１０００｝の範囲外の偏差を識別することができる。有限フィルタ周波数のために、この閾値は調整され得る。
【００３１】
信号のベースライン変化率からの偏差が閾値の絶対値を超える場合、マイクロコントローラ１１０を低電力アイドル状態から起動させるため、割り込みがトリガされ得る。マイクロコントローラ１１０は、アナログフロントエンド１０６の管理に責任がある低電力コアを備えている。マイクロコントローラ１１０は、アナログフロントエンド１０６からの割り込みにも応答することができる。一例となる実装形態において、マイクロコントローラ１１０は、低電力動作のために設計されたシステムーオンーチップ（SOC)上のデジタル信号プロセッサ（DSP)であって、マイクロコントローラ１１０に対して、ゼロに近い電力コストでアナログフロントエンド１０６からの稀なイベントを処理することを許容する。マイクロコントローラ１１０は、一旦、起動すると、ジェスチャモジュール１１６を実行して、バッファ３０４内の生のサンプル３１２（例えば、履歴データ）を分析し、サンプル３１２がヒューマンジェスチャに対応するかどうかを判定することができる。履歴データ内の各サンプル３１２は、それが受信されたチャネルを示す情報と、その特定のサンプルが、マイクロコントローラ１１０を起動したコンパレータイベントに関連付けられたかどうかのインジケータとを含む場合がある。
【００３２】
マイクロコントローラ１１０は、この情報を使用して、マイクロコントローラ１１０の起動イベントをトリガした“重要性のある”部分を発見するために履歴データをロールバックすることが可能となる。加えて、スリープ状態とウェイク状態との間のデータストリームにおける連続性が維持され得る。例えば、アナログフロントエンド１０６における検出およびその結果としてのマイクロコントローラ１１０の起動は、サンプルをドロップしないように高速でなくてはならない。あまりに早くサンプルをドロップすることを避けるために、アナログフロントエンド１０６１内のバッファ３０４は、マイクロコントローラ１１０の起動の際の待ち時間に適応するのに十分に大きな深度を有する。いくつかのバッファ深度の例は、４５、６４、または７５のデータ項目を含むが、他のバッファ深度もプロセッサを起動させる際の待ち時間に適用するために考慮される。
【００３３】
もし、ヒューマンジェスチャが認識されない場合、マイクロコントローラ１１０は低電力アイドル状態に戻ることができ、それによりバッテリ電力を保つことができる。しかしながら、もし、ヒューマンジェスチャが認識されると、マイクロコントローラ１１０は、アプリケーションプロセッサ１１２を低電力アイドル状態から起動させる。
【００３４】
アプリケーションプロセッサ１１２は、様々な異なるアプリケーション１２２を実行することができる任意の適切なハイパワーコアであり得る。例えば、アプリケーションプロセッサ１１２は、コンピューティングデバイス１０２のディスプレイデバイスをオンにすることなどによるヒューマンジェスチャを処理するために、アプリケーション１２２を実行することができる。別の例では、アプリケーションプロセッサ１１２は、ヒューマンジェスチャに基づいて、イメージキャプチャアプリケーションのような別のアプリケーションを開始することができる。このように、ユーザのスマートフォンが低電力モードにある場合、ユーザはスマートフォンの両側を握ってスマートフォンを起動させるだけでなく、スマートフォンでカメラアプリケーションを開始して画像のキャプチャの準備をすばやく行うことができる。少なくとも１つの例では、アプリケーションプロセッサ１１２は、マイクロコントローラ１１０からの高信頼度ジェスチャ認識（例えば、完全に認識されたジェスチャ）に応答し、そうでない場合には低電力アイドル状態のままである。
【００３５】
これらの技術を使用して、コンピューティングデバイス１０２は、マイクロコントローラ１１０およびアプリケーションプロセッサ１１２の両方が低電力アイドル状態にある超低電力モードを利用することができる。超低電力モードの間、自律的に機能するアナログフロントエンド１０６は、信号の変化率に基づいてセンサ信号をフィルタし、変化率が既知の雑音周波数を超えるベースライン変化率から逸脱するときにマイクロコントローラ１１０を起動させるように構成されている。次に、マイクロコントローラ１１０は、ジェスチャを認識するためにセンサ信号を解析し、高信頼度ジェスチャ認識に基づいてアプリケーションプロセッサ１１２を起動させる。アプリケーションプロセッサ１１２は、そのとき、ジェスチャを処理することができる。マイクロコントローラ１１０およびハイパワーアプリケーションプロセッサ１１２の両方は、常時、ＤＣ閾値をモニタし、かつ、センサのドリフトを考慮し損ねる従来の技術と比較して、低電力アイドル状態から頻繁に起動することがないため、この超低電力モードは、コンピューティングデバイス１０２の電池寿命を延ばす結果となる。
【００３６】
フォースセンシングデバイスのための超低電力モードの技術および装置を実施することができる環境を一般的に説明したが、この説明は、ここでは、例示的な方法に移る。
例示的な方法
以下の説明は、フォースセンシングデバイスのための超低電力モードの方法を説明する。これらの方法は、図１のコンピューティングデバイス１０２のような前述の例を利用して実施することができる。これらの方法の態様は、１つ以上のエンティティによって実行される動作として図４に示されている。これらの方法の動作が示され、および／または記載されている順序は、限定として解釈されることを意図しておらず、記述された方法動作の任意の数の動作または組み合せは、方法、あるいは代替方法を実施するために任意の順序で組み合わせることができる。
【００３７】
図４は、フォースセンシングデバイスの超低電力モードを管理するための例示的な方法４００を示す。
【００３８】
４０２において、モバイルデバイスが低電力アイドル状態にあるとき、モバイルデバイスの筐体への圧迫によって検出された力に基づいて入力信号が生成される。例えば、フォースセンサ（例えば、図１のセンサ１０４）は、モバイルデバイスの筐体に圧迫力が加わったときにアナログ信号を提供し、コンバータ（例えば、図３のコンバータ３０２）は、アナログ信号をデジタル信号に変換する。
【００３９】
４０４において、入力信号のサンプルがバッファに格納される。例えば、コンバータ３０２は、フィルタされたサンプルをバッファ（例えば、バッファ３０４）に送信する。実装形態において、バッファは、約１．０秒のサンプルを保持するように構成されたＦＩＦＯバッファである。
【００４０】
４０６において、入力信号のベースライン変化率からの偏差に基づいて、入力信号がフィルタされる。たとえば、フィルタ（例えば、図３のフィルタ３０６）は、ベースライン変化率に対する入力信号の変化率を決定するなどによって、時間領域においてフィルタされた入力信号をフィルタする。ベースライン変化率は、センサのドリフトによって引き起こされる変化率に対応し得る。
【００４１】
４０８において、１つ以上の閾値を通過する偏差に基づいて、割込みがトリガされる。１つ以上の閾値は、図３のコンパレータ３１０のようなコンパレータのレジスタに対応し得る。実装形態では、レジスタは、図２のアナログフロントエンド１０６を実装するために使用されるハードウェア材料の係数に基づいて設定することができる。
【００４２】
４１０において、マイクロコントローラは、割込みに基づいて低電力アイドル状態から起動され、バッファ内のサンプルを分析し、入力信号がヒューマンジェスチャに対応するかどうかを決定する。マイクロコントローラ（例えば、図１のマイクロコントローラ１１０）は、バッファに格納された生のサンプルを読み取るために、ジェスチャモジュール（例えば、図１のジェスチャモジュール１１６）を実行することができる。
【００４３】
４１２において、入力信号がヒューマンジェスチャとして認識されるか否かに関して判定される。一例では、ジェスチャモジュール１１６は、筐体に加えられた力の量および加えられた力に関連する時間に基づいて、バッファに格納された生のサンプルがヒューマンジェスチャに対応することを判定する。
【００４４】
４１２において、もし、入力信号がバッファ内のサンプルに基づいてヒューマンジェスチャとして拒否された場合（例えば、ＮＯ）、４１４において、マイクロコントローラは低電力アイドル状態に戻る。例えば、もし、バッファ内のデータがヒューマンジェスチャに一致しないか、あるいはヒューマンジェスチャに対応しない（例えば、力が弱すぎるか、または、短い時間しか力が保たれない、あるいは力が長く保たれ過ぎる）場合、ハイパワーアプリケーションプロセッサを起動させる必要がなく、マイクロコントローラは低電力アイドル状態に復帰することができる。
【００４５】
もし、４１２において、バッファ内のサンプルに基づいて入力信号がヒューマンジェスチャとして認識される場合（例えば、ＹＥＳ）、４１６において、アプリケーションプロセッサは、ヒューマンジェスチャの認識に基づいて低電力アイドル状態から起動し、ヒューマンジェスチャにマッピングされた動作を実行するように構成されたアプリケーションを実行する。一例では、もし、ジェスチャモジュールが高い信頼度で、ジェスチャが実際にヒューマンジェスチャであると判定した場合、割り込みが生成されてハイパワーアプリケーションプロセッサが起動し、アプリケーションプロセッサが、ジェスチャ、たとえば、例えば、ディスプレイデバイスに電源を投入することによるジェスチャおよび／またはアプリケーションを開始することによるジェスチャなど、を処理することが許可される。
【００４６】
これまでは、フォースセンシングデバイスの超低電力モードの管理に関連する方法について説明した。これらの方法の態様は、ハードウェア（たとえば、固定論理回路）、ファームウェア、ソフトウェア、マニュアルプロッセシング、またはそれらの任意の組み合わせにより実施することができる。これらの技術は、図１から図３および図５（コンピューティングシステム５００は以下の図５で説明する）に示される１つ以上のエンティティにおいて実施されてもよく、そのエンティティは、さらに分割または結合などすることができる。したがって、これらの図は、説明された技術を活用できる多くの可能性のあるシステムまたは装置の一部を示している。これらの図のエンティティは一般的に、ソフトウェア、ファームウェア、ハードウェア、デバイス全体またはネットワーク全体、またはそれらの組み合わせを表す。
【００４７】
例示的なコンピューティングシステム
図５は、以前の図１〜図４を参照して説明したように、フォースセンシングデバイスの超低電力モードを可能にするための任意のタイプのクライアント、サーバおよび／またはコンピューティングデバイスとして実装できるコンピューティングシステム５００の例のさまざまなコンポーネントを示す。ある態様において、コンピューティングシステム５００は、有線および／または無線のウェアラブルデバイス、システムーオンーチップ（ＳｏＣ）の１つまたは組み合わせとして、および／または別のデバイスのタイプまたはそれらの一部として、実装され得る。コンピューティングシステム５００も、デバイスを操作するユーザ（例えば、コンピューティングシステムを超低電力モードから起動させることを望む人）および／またはエンティティに関連付けられてもよく、そのようなデバイスが、ソフトウェア、ファームウェア、および／またはデバイスの組み合わせを含むロジカルデバイスを記述するようになる。
【００４８】
コンピューティングシステム５００は、図１〜図３のアナログフロントエンド１０６を含むが、このコンポーネントは、正確に図示されている必要はない。アナログフロントエンド１０６は、マザーボードとの統合を通じてコンピューティングシステム５００と一体化することができ、またはコンピューティングシステム５００のフレーム、シャーシ、または他の構造とは別個であるが、それらに存在するものとすることができる。
【００４９】
コンピューティングシステム５００は、デバイスデータ５０４（例えば、受信データ、受信途中にあるデータ、放送用にスケジュールされたデータ、データのデータパケット等）の有線通信および／または無線通信を可能にする通信デバイス５０２を含む。デバイスデータ５０４または他のデバイスコンテンツは、デバイスの構成設定、デバイスに格納されたメディアコンテンツおよび／またはデバイスのユーザに関連する情報を含むことができる。コンピューティングシステム５００に格納されたメディアコンテンツは、任意のタイプのオーディオ、ビデオおよび／または画像データを含むことができ、アクセスが望まれるリソースまたは情報となり得る。コンピューティングシステム５００は、任意のタイプのデータ、メディアコンテンツおよび／または入力を受信できる１つ以上のデータ入力ポート５０６を含み、たとえば、データ入力ポート５０６には、人間の発声、ユーザが選択可能な入力（明示的または暗黙的）、物理的で選択可能な構造、メッセージ、音楽、テレビメディアコンテンツ、記録されたビデオコンテンツ、および任意のコンテンツおよび／またはデータソースから受信したその他の種類のオーディオ、ビデオ、および／または画像データなどが入力される。
【００５０】
コンピューティングシステム５００はまた、通信インタフェース５０８を含み、通信インタフェース５０８は、シリアルインターフェースおよび／またはパラレルインターフェース、無線インタフェース、任意のタイプのネットワークインタフェース、モデムのいずれか１つまたは複数として、および、近距離無線通信（NFC）ワイヤレスインターフェイスなどのような任意の他のタイプの通信インタフェースとして、実装することができる。通信インタフェース５０８は、コンピューティングシステム５００と、他の電子的なデバイス、コンピューティングデバイス、および通信デバイスがコンピューティングシステム５００とデータを通信する通信ネットワークとの間のコネクションおよび／または通信リンクを提供する。
【００５１】
コンピューティングシステム５００は、１つ以上のプロセッサ５１０（例えば、マイクロコントローラ、アプリケーションプロセッサ、デジタル信号プロセッサ、コントローラなどのいずれか）、またはプロセッサおよびメモリシステム（例えば、ＳｏＣ内に実装されている）を含み、それらは、様々なコンピュータ実行可能命令を処理（例えば、実行）することで、コンピューティングシステム５００の動作を制御するとともに、フォースセンシングデバイスの超低電力モードのためのテクニックを可能にし、またはフォースセンシングデバイスの超低電力モードを実現することができる。代替的にまたは追加的に、コンピューティングシステム５００は、ハードウェア、ファームウェア、または、プロセッシング回路または制御回路に関連して実装される固定論理回路の１つまたは組み合わせを用いて実施することができ、それらは、５１２（処理および制御５１２）において一般的に特定される。
【００５２】
図示されていないが、コンピューティングシステム５００は、デバイス内の様々なコンポーネントを結合するシステムバスまたはデータ転送システムを含むことができる。システムバスは、メモリバスまたはメモリコントローラ、周辺バス、ユニバーサルシリアルバス、および／またはプロセッサ、または、様々なバスアーキテクチャのいずれかを利用するローカルバスのような、異なるバス構造の任意の１つまたは組み合わせを含むことができる。
【００５３】
コンピューティングシステム５００はまた、永続的および／または非一時的なデータストレージ（すなわち、単なる信号伝送とは対照的に）を可能にする１つ以上のメモリデバイス５１４を含み、その例には、ランダムアクセスメモリ（RAM）、不揮発性メモリ（例えば、読み出し専用メモリ（ROM）、フラッシュメモリ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等のうちの１つまたはいずれか複数）、およびディスクストレージデバイスが含まれる。ディスクストレージデバイスは、任意のタイプの磁気または光ストレージデバイスとして実施することができ、例えば、それは、ハードディスクドライブ、記録可能および／または書き換え可能なコンパクトディスク（CD）、あらゆるタイプのデジタル多用途ディスク（DVD）などである。メモリデバイス５１４は、デバイスデータ５０４、他のタイプの情報および／またはデータ、および様々なデバイスアプリケーション５１６（例えば、ソフトウェアアプリケーション）を格納するデータストレージメカニズムを提供する。例えば、オペレーティングシステム５１８は、メモリデバイス５１４内のソフトウェア命令として維持され、プロセッサ５１０によって実行され得る。いくつかの態様において、ジェスチャモジュール１１６は、実行可能な命令またはコードとしてコンピューティングシステム５００のメモリデバイス５１４に実装される。ソフトウェア実装形態として示されているが、ジェスチャモジュール１１６は、制御アプリケーション、ソフトウェアアプリケーション、信号処理および制御モジュール、またはハードウェア、またはコンピューティングシステム５００にインストールされたファームウェアの任意の形式として実装され得る。
【００５４】
コンピューティングシステム５００はまた、オーディオおよび／またはビデオ処理システム５２０を含み、オーディオおよび／またはビデオ処理システム５２０は、オーディオデータを処理し、および／またはオーディオおよびビデオデータをオーディオシステム５２２および／またはディスプレイシステム５２４（例えば、スマートフォンまたはカメラの画面）に渡す。オーディオシステム５２２および／またはディスプレイシステム５２４は、オーディオ、ビデオ、ディスプレイ、および／または画像データを処理、表示、および／または、さもなければ、レンダリングする、任意のデバイスを含むことができる。ディスプレイデータおよびオーディオ信号は、ＲＦ（無線周波数）リンク、Ｓ−ｖｉｄｅｏリンク、ＨＤＭＩ（high-definition multimedia interface）、コンポジットビデオリンク、コンポーネントビデオリンク、ＤＶＩ（digital video interface）、アナログオーディオ接続、またはメディアデータポート５２６のような他の同様の通信リンクを介して、オーディオコンポーネントおよび／またはディスプレイコンポーネントと通信することができる。いくつかの実装形態では、オーディオシステム５２２および／またはディスプレイシステム５２４は、コンピューティングシステム５００に対する外部コンポーネントである。代替的または追加的に、ディスプレイシステム５２４は、統合されたタッチインターフェースの一部のように、コンピューティングシステム５００の統合されたコンポーネントであってもよい。
【００５５】
フォースセンシングデバイスの超低電力モードの態様は、特徴及び／または方法に特有の言語で説明されてきたが、添付の特許請求の範囲の主題は、説明された特定の特徴または方法に必ずしも限定されない。むしろ、特定の特徴および方法は、フォースセンシングデバイスの超低電力モードの実装形態の例示として開示される。
【図１】
0006952130.tif 000002
【図２】
0006952130.tif 000003
【図３】
0006952130.tif 000004
【図４】
0006952130.tif 000005
【図５】
0006952130.tif 000006