(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0019】
以下、本技術を実施するための形態(以下、実施の形態と称する)について説明する。説明は以下の順序により行う。
1.第1の実施の形態(ユーザが歩行中のときに詳細解析を行う例)
2.第2の実施の形態(センサが動きを検知してユーザが歩行中のときに詳細解析を行う例)
3.第3の実施の形態(メモリを詳細解析モジュールに設けてユーザが歩行中のときに詳細解析を行う例)
4.変形例
【0020】
<1.第1の実施の形態>
[電子装置の構成例]
図1は、第1の実施の形態における電子装置100の一構成例を示すブロック図である。この電子装置100は、加速度センサ131、ジャイロセンサ132および気圧センサ133などの複数のセンサと制御回路105とを備える。スマートフォンやスマートウォッチなどのモバイル機器が電子装置100として想定される。
【0021】
制御回路105は、電子装置100全体を制御するものである。この制御回路105は、センサデータ取得部200、電源制御部110、および、データ処理部120を備える。また、データ処理部120は、モジュール管理部121、簡易解析モジュール122および詳細解析モジュール123を備える。制御回路105は、例えば、多くの周辺機器を制御するアプリケーションプロセッサに組み込まれる。
【0022】
センサデータ取得部200は、加速度センサ131などの各種センサからのデータをセンサデータとして取得するものである。このセンサデータ取得部200は、センサデータをFIFO(First In, First Out)方式で時系列順に保持し、そのセンサデータに基づいて電子装置100の動きの有無を検知する。例えば、センサデータ取得部200は、加速度を示すセンサデータの値と所定の閾値とを比較し、その比較結果に基づいて電子装置100に動きがあったことを検知する。そして、センサデータ取得部200は、動きがあった場合にトリガ信号TRIGを生成して電源制御部110に供給する。また、センサデータ取得部200は、保持したセンサデータをFIFOデータとしてデータ処理部120に供給する。
【0023】
電源制御部110は、センサデータ取得部200およびデータ処理部120のそれぞれに供給する電源を制御するものである。この電源制御部110は、電子装置100の外部からの電源VDDに基づいてセンサデータ取得部200に電源VDD1を投入し、データ処理部120に電源VDD2を投入する。また、電源供給の遮断を要求する電源断要求をデータ処理部120から受け取ると、データ処理部120への電源VDD2を遮断する。
【0024】
ここで、データ処理部120への電源VDD2が遮断され、センサデータ取得部200および電源制御部110のみに電源が投入されている状態を以下、「スリープモード」と称する。また、センサデータ取得部200、電源制御部110およびデータ処理部120の全てに電源が投入されている状態を以下、「通常モード」と称する。
【0025】
また、データ処理部120の電源遮断(すなわち、スリープモードへの移行)後にセンサデータ取得部200からトリガ信号TRIGを受け取ると、電源管理部112は、データ処理部120に電源VDD2を再投入する。
【0026】
なお、電源制御部110は、電子装置100の外部からの電源で無く、電子装置100の内部に設けられたバッテリからの電源を用いて、センサデータ取得部200およびデータ処理部120に電源を供給してもよい。
【0027】
モジュール管理部121は、簡易解析モジュール122および詳細解析モジュール123を管理するものである。このモジュール管理部121は、センサデータ取得部200を制御するためのレジスタ設定値をユーザの操作やアプリケーションに従って設定し、センサデータ取得部200に供給する。
【0028】
また、モジュール管理部121は、通常モードにおいてスリープモードへ移行させるか否かを判断する。例えば、スリープモードへの移行がユーザやアプリケーションにより指示された場合や、一定時間に亘ってユーザの操作が行われない場合、あるいは、詳細解析モジュール123における処理が終了した場合に、電子装置100はスリープモードに移行する。
【0029】
スリープモードに移行する際にモジュール管理部121は、イネーブル信号ENm1により簡易解析モジュール122を停止させ、イネーブル信号ENm2により詳細解析モジュール123を停止させる。これらのイネーブル信号は、簡易解析モジュール122または詳細解析モジュール123を動作させるか否かを制御する信号である。そして、モジュール管理部121は、それらのモジュールの停止後に電源断要求を電源制御部110に供給する。
【0030】
また、スリープモードから復帰させるために電源VDD2が供給されると、モジュール管理部121は、まずイネーブル信号ENm1により簡易解析モジュール122を起動させる。
【0031】
簡易解析モジュール122は、電源VDD2を用いて、電子装置100から得られたセンサデータを解析する処理を簡易解析処理として実行するものである。例えば、加速度を示すFIFOデータの履歴に基づいて、歩行しているか否かが判断される。簡易解析モジュール122は、解析結果をモジュール管理部121に供給する。なお、簡易解析モジュール122は、特許請求の範囲に記載の簡易解析部の一例である。
【0032】
そして、モジュール管理部121は、ユーザが歩行していることを示す解析結果を受け取ると、イネーブル信号ENm2により詳細解析モジュール123を起動させる。一方、ユーザが歩行していないことを示す解析結果を受け取ると、モジュール管理部121は、簡易解析モジュール122を停止し、電源断要求を電源制御部110に供給する。
【0033】
詳細解析モジュール123は、電源VDD2を用いてセンサデータを解析し、簡易解析処理と異なる処理を詳細解析処理として実行するものである。この詳細解析処理の単位時間当たりの処理量は、簡易解析処理よりも多いものとする。詳細解析処理として、例えば、歩数を計数する処理や、ユーザの歩行ルートを生成する処理が行われる。この詳細解析モジュール123は、解析結果をモジュール管理部121に供給する。なお、詳細解析モジュール123は、特許請求の範囲に記載の詳細解析部の一例である。
【0034】
加速度センサ131は、電子装置100の加速度を測定して測定値を示すセンサデータを制御回路105に出力するものである。ジャイロセンサ132は、電子装置100の角速度や角加速度を測定して測定値を示すセンサデータを制御回路105に出力するものである。気圧センサ133は、気圧を測定して測定値を示すセンサデータを制御回路105に出力するものである。なお、加速度センサ131、ジャイロセンサ132および気圧センサ133は、特許請求の範囲に記載のセンサの一例である。
【0035】
なお、電子装置100は、加速度センサ131、ジャイロセンサ132および気圧センサ133を設ける構成としているが、これらの全てを設ける必要はなく、例えば、ジャイロセンサ132や気圧センサ133を設けない構成であってもよい。また、加速度センサ131、ジャイロセンサ132および気圧センサ133以外のセンサ、例えば、GPS(Global Positioning System)センサをさらに設けてもよい。
【0036】
[電源制御部の構成例]
図2は、第1の実施の形態における電源制御部110の一構成例を示すブロック図である。この電源制御部110は、リアルタイムクロック111および電源管理部112を備える。
【0037】
リアルタイムクロック111は、現在時刻を計時するものである。このリアルタイムクロック111は、例えば、バッテリおよび計時回路を備え、電源管理部112の電源が切られていても、バッテリの電源を用いて計時を継続する。このリアルタイムクロック111は、例えば、32.768キロヘルツ(kHz)のクロック信号に同期して計数値を計数し、その計数値を現在時刻RTC_CNTとしてセンサデータ取得部200に供給する。。なお、時刻の分解能は、32.768キロヘルツ(kHz)に限定されない。また、リアルタイムクロック111を電源制御部110に設けているが、この構成に限定されず、例えば、センサデータ取得部200にリアルタイムクロック111を設けてもよい。
【0038】
電源管理部112は、電子装置100全体の電源を管理するものである。この電源管理部112は、電子装置100外部からの電源VDDに基づいてセンサデータ取得部200に電源VDD1を投入し、データ処理部120に電源VDD2を投入する。また、データ処理部120から電源断要求を受け取ると、データ処理部120への電源VDD2を遮断する。そして、データ処理部120の電源遮断後にセンサデータ取得部200からトリガ信号TRIGを受け取ると、電源管理部112は、データ処理部120に電源VDD2を再投入する。
【0039】
[センサデータ取得部の構成例]
図3は、第1の実施の形態におけるセンサデータ取得部200の一構成例を示すブロック図である。このセンサデータ取得部200は、シーケンス起動要求部210、センサデータ読出しシーケンス実行部220およびセンサデータ読出し部230を備える。また、センサデータ取得部200は、FIFO書込み制御部240、FIFOメモリ250および演算処理部300を備える。
【0040】
シーケンス起動要求部210は、レジスタ設定値に基づいて、センサデータ読出しシーケンス実行部220に対してセンサデータを読み出すシーケンスの開始を要求するものである。ここで、シーケンスは、一定時間に亘ってセンサデータを読み出す一連の処理をトランザクションとして、一定数のトランザクションの実行手順をセンサごとに示すものである。このシーケンスを実行する際に必要な設定のそれぞれは、データ処理部120により行われる。例えば、トランザクションを実行する間隔、サンプリングレート、トランザクションを実行する時間帯、センサデータのデータサイズなどがセンサごとにレジスタ設定値に設定される。
【0041】
また、レジスタ設定値には、シーケンスの開始時刻が設定されており、シーケンス起動要求部210は、現在時刻RTC_CNTが、その開始時刻になるとシーケンスの開始を要求する。
【0042】
センサデータ読出しシーケンス実行部220は、シーケンスの開始が要求されると、そのシーケンスを実行するものである。このセンサデータ読出しシーケンス実行部220は、センサ(加速度センサ131など)に対応するサンプリング周期が経過するたびに、センサデータの出力を指示するリクエストを発行して、そのセンサに供給する。
【0043】
センサデータ読出し部230は、センサデータを読み出すものである。このセンサデータ読出し部230は、リクエストに応じて出力されたセンサデータを、センサごとに取得する。例えば、加速度センサ131からセンサデータDin1が取得され、ジャイロセンサ132および気圧センサ133からセンサデータDin2およびDin3が取得される。センサデータ読出し部230は、それらのセンサデータをFIFO書込み制御部240に供給する。
【0044】
これらのセンサデータやリクエストは、例えば、SPI(Serial Peripheral Interface)やI2C(Inter Integrated Circuit)のインターフェースを介して送受信される。なお、センサとの間のインターフェースは、これらに限定されない。例えば、Bluetooth(登録商標)やWifi(登録商標)を用いてもよい。
【0045】
FIFO書込み制御部240は、FIFOメモリ250にFIFOデータを書き込むものである。このFIFO書込み制御部240は、センサデータDin1等を取得するたびに、そのときの現在時刻RTC_CNTを参照し、タイムスタンプを生成する。また、FIFO書込み制御部240は、必要に応じてセンサデータのフォーマットを変換し、演算処理部300に供給する。フォーマット変換においてFIFO書込み制御部240は、例えば、センサデータをバイト単位で分割し、分割したデータの順序を変更する。あるいは、FIFO書込み制御部240は、センサデータに対してビットシフトを行う。
【0046】
そして、FIFO書込み制御部240は、演算処理部300により処理されたセンサデータDout1等を受け取り、その処理後のセンサデータと、タイムスタンプとを含むFIFOデータをセンサごとに生成する。FIFO書込み制御部240は、生成したFIFOデータをFIFOメモリ250に書き込む。
【0047】
ここで、センサデータがGPSの位置情報および受信時刻を含む場合には、その受信時刻と別途に生成されたタイムスタンプ(RTC_CNT)とセンサデータとが対応付けて記録される。これにより、GPSセンサのセンサデータと、それ以外の加速度センサ131のセンサデータとを同期させて処理することができる。例えば、GPSデータの受信感度がある時刻で一定値より低くなった際にデータ処理部120は、その時刻のGPSデータと、その時刻からの加速度センサ131のセンサデータとから、現在位置を取得することができる。
【0048】
また、複数のセンサからのセンサデータをセンサデータ取得部200が収集し、データ処理部120が処理することは、センサフュージョンと呼ばれる。このセンサフュージョンにおいては、それぞれのセンサから得られた異なるセンサデータを同一時間軸上で処理する必要があるため、それぞれのセンサデータの取得時刻を正確に記録することが精度の向上に必要不可欠である。このためには、異なるセンサ間で、同一の計時モジュール(リアルタイムクロック111など)により生成された時刻(RTC_CNT)を参照して、それぞれのセンサデータについてタイムスタンプを生成する必要がある。
【0049】
FIFOメモリ250は、FIFOデータをFIFO方式で保持するものである。FIFOメモリ250のインターフェースには、FIFO書込み制御部240などがFIFOメモリ250にアクセスする際にのみ、電源が供給され、アクセスしない間は電源が供給されない。これにより、FIFOデータを保持しつつ、消費電力を低減することができる。なお、FIFOメモリ250は、特許請求の範囲に記載の保持部の一例である。
【0050】
演算処理部300は、センサデータに対して、所定の演算を行うものである。演算処理部300は、例えば、センサデータを間引く処理や、正規化処理などを必要に応じて実行し、処理後のセンサデータをFIFO書込み制御部240に供給する。また、演算処理部300は、センサデータに基づいて電子装置100の動きの有無を検出し、検出結果を示すトリガ信号TRIGを生成する。例えば、電子装置100に動きがあった場合にトリガ信号TRIGに一定のパルス期間に亘ってハイレベルが設定され、動きが無い場合にローレベルが設定される。演算処理部300は、トリガ信号TRIGを電源制御部110に供給する。
【0051】
なお、FIFO書込み制御部240は、トリガ信号TRIGの有無に関わらず、FIFOデータをFIFOメモリ250に書き込んでいるが、この構成に限定されない。例えば、FIFO書込み制御部240は、トリガ信号TRIGが出力されたときに一定時間に亘ってFIFOデータの書込みを行ってもよい。このように、トリガ信号TRIGが出力されない間はFIFO書込み制御部240がFIFOデータを書き込まないことにより、消費電力をさらに低減することができる。
【0052】
また、FIFO書込み制御部240は、トリガ信号TRIGの出力以外の条件により、FIFOメモリ250への書込みを行ってもよい。FIFO書込み制御部240は、例えば、加速度センサ131の測定値が閾値を超えた際に、そのときから一定時間に亘ってジャイロセンサ132のセンサデータを書き込んでもよい。
【0053】
また、FIFO書込み制御部240は、リアルタイムクロック111からの現在時刻RTC_CNTをタイムスタンプとして用いているが、この構成に限定されない。例えば、FIFO書込み制御部240は、電子装置100の外部の再生機器などにより生成された映像信号内の同期信号(垂直同期信号や水平同期信号)を取得し、その同期信号に同期して時刻を計時してタイムスタンプを生成してもよい。これにより、映像信号を処理するアプリケーションがセンサデータを容易に処理することができるようになり、そのようなアプリケーションとセンサデータとの親和性を高めることができる。
【0054】
[FIFOメモリの構成例]
図4は、FIFOメモリ250の一構成例を示す図である。このFIFOメモリ250は、データ領域251および252などの複数のデータ領域を備える。それぞれのデータ領域251には、互いに異なるセンサが対応付けられ、対応するセンサのFIFOデータが保持される。データ領域251には、それぞれに1つのFIFOデータが保持される複数のエントリが設けられる。データ領域251以外のデータ領域についても同様に複数のエントリが設けられる。FIFOデータのそれぞれは、センサデータおよびタイムスタンプを含む。
【0055】
FIFO書込み制御部240およびデータ処理部120は、データ領域ごとに、ライトポインタおよびリードポインタを保持する。ライトポインタは、FIFOデータを追加するエントリの位置を示し、リードポインタは、FIFOデータを取り出すエントリの位置を示す。
【0056】
FIFO書込み制御部240は、データ領域(251等)にFIFOデータを書き込む際に、そのデータ領域内のFIFOデータの個数がエントリの総数に達している(言い換えれば、バッファフル)か否かを判断する。バッファフルであれば、FIFO書込み制御部240は、取得したFIFOデータを書き込まずに破棄する。一方、バッファフルで無ければ、FIFO書込み制御部240は、そのデータ領域に対応するライトポインタを参照し、そのライトポインタの示すエントリにFIFOデータを書き込む。そして、FIFO書込み制御部240は、対応するライトポインタを更新(例えば、インクリメント)する。
【0057】
なお、FIFO書込み制御部240は、バッファフルの場合にFIFOデータを書き込まずに破棄しているが、破棄せずにFIFOデータを書き込んでもよい。この場合には、FIFO書込み制御部240は、ライトポインタの示すエントリにFIFOデータを書き込んだ後、ライトポインタおよびリードポインタの両方を更新する。また、データを破棄するか否かを、レジスタ設定値により設定する構成としてもよい。
【0058】
一方、データ処理部120は、データ領域(251等)からFIFOデータを取り出す際に、そのデータ領域に対応するリードポインタを参照し、そのリードポインタの示すエントリからFIFOデータを読み出す。そして、データ処理部120は、対応するリードポインタを更新(例えば、インクリメント)する。
【0059】
[演算処理部の構成例]
図5は、第1の実施の形態における演算処理部300の一構成例を示すブロック図である。この演算処理部300は、制御レジスタ310と、所定数の前処理部320と、複数の間引き部330と、関数実行部400とを備える。
【0060】
制御レジスタ310には、データ処理部120によりレジスタ設定値が書き込まれる。
【0061】
前処理部320は、センサごとに設けられる。例えば、センサが10個であれば、10個の前処理部320が設けられる。また、間引き部330は、センサデータの間引きを行う対象のセンサごとに設けられる。例えば、10個のセンサのうち2個のセンサのセンサデータを間引き、残りの8個は間引きを行わない場合、2個の間引き部330が設けられる。
【0062】
前処理部320は、対応するセンサのセンサデータに対して、オフセットの加算や、増幅などの処理を前処理として行うものである。間引き対象のセンサに対応する前処理部320は、処理後のセンサデータを間引き部330に供給する。一方、間引き対象でないセンサに対応する前処理部320は、処理後のセンサデータを関数実行部400に供給する。
【0063】
例えば、前処理部#1乃至#10が前処理部320として設けられる。前処理部#1および#2は、処理後のデータを前処理後データPre1および2として、対応する間引き部330に供給する。前処理部#3乃至#10は、処理後のデータを前処理後データPre3乃至10として、関数実行部400に供給する。
【0064】
間引き部330は、対応するセンサのセンサデータに対して、必要に応じて間引きを行うものである。例えば、m
1(m
1は整数)個のデータのうちm
2(m
2はm
1より小さい整数)個を破棄する処理が間引き処理として行われる。間引き部330は、間引き後のセンサデータを関数実行部400に供給する。
【0065】
関数実行部400は、間引き後のセンサデータ、または、間引きされていないセンサデータのうち所定数(例えば、3つ)のデータに対して処理の関数演算を実行するものである。この関数実行部400は、演算後のセンサデータをFIFO書込み制御部240に供給する。また、関数実行部400は、センサデータに基づいてトリガ信号TRIGを生成し、電源制御部110に供給する。
【0066】
なお、間引き部330を2つ設けているが、間引きを行うセンサの個数に応じて、2つ以外の個数の間引き部330を設けてもよい。
【0067】
[前処理部の構成例]
図6は、第1の実施の形態における前処理部320の一構成例を示すブロック図である。この前処理部320は、符号付き二進数変換部321、加算器322、乗算器323および丸め・クリップ処理部324を備える。
【0068】
符号付き二進数変換部321は、イネーブル信号に従ってセンサデータのフォーマットを符号付き二進数に変換して加算器322に供給するものである。このイネーブル信号は、符号付き二進数への変換を行うか否かを示すものであり、制御レジスタ310に設定されている。
【0069】
加算器322は、符号付き二進数変換部321からのデータに、所定のオフセットを加算して乗算器323に供給するものである。このオフセットの値は、制御レジスタ310に設定されている。
【0070】
乗算器323は、加算器322からのデータに所定のゲインを乗算して丸め・クリップ処理部324に供給するものである。このゲインの値は、制御レジスタ310に設定されている。
【0071】
丸め・クリップ処理部324は、乗算器323からのデータに対して丸め演算とクリップ処理とを行い、処理後のデータを前処理後データPre1として出力するものである。ここで、クリップ処理は、データの値を所定の範囲内に制限する処理である。例えば、丸め・クリップ処理部324は、クリップ処理において、データの値が所定の上限値を超えるか否かを判断し、超える場合には、その上限値を出力し、超えない場合には、そのまま出力する。
【0072】
[間引き部の構成例]
図7は、第1の実施の形態における間引き部330の一構成例を示すブロック図である。この間引き部330は、共通処理部340と、3つのデシメータ350と、ダイナミックレンジ調整部331、332、333および334とを備える。
【0073】
共通処理部340は、デシメータ350のそれぞれでの間引き前に必要な所定の処理を前処理後データPre1に対して行い、処理後のデータを全てのデシメータ350に供給するものである。
【0074】
デシメータ350は、所定の間引き率で前処理後データPre1を間引く処理を行うものである。3つのデシメータ350のそれぞれには、互いに異なる間引き率が設定される。ここで、間引き率は、一定数のセンサデータにおける、破棄する(間引く)データの個数の比率を示す。例えば、2
N(Nは整数)個のデータのいずれか1つを破棄する場合の間引き率は、1/2
Nにより表される。デシメータ350として、デシメータ#1、デシメータ#2およびデシメータ#3が設けられ、デシメータ#1は、間引き後のデータをダイナミックレンジ調整部332に供給する。デシメータ#2および#3は、間引き後のデータをダイナミックレンジ調整部333および334に供給する。
【0075】
ダイナミックレンジ調整部331は、前処理後データPre1のダイナミックレンジを調整して関数実行部400に供給するものである。また、ダイナミックレンジ調整部332は、デシメータ#1からのデータのダイナミックレンジを調整し、間引きデータDecim1−1として関数実行部400に供給するものである。ダイナミックレンジ調整部333および334は、デシメータ#2および#3からのデータのダイナミックレンジを調整し、間引きデータDecim1−2およびDecim1−3として関数実行部400に供給するものである。これらのダイナミックレンジの調整量は、制御レジスタ310に設定される。
【0076】
なお、間引き部330にデシメータ350を3つ設けているが、3つ以外の個数のデシメータ350を設けてもよい。
【0077】
[共通処理部の構成例]
図8は、第1の実施の形態における共通処理部340の一構成例を示すブロック図である。この共通処理部340は、加算器341および344と、ラップアラウンド処理部342および345と、レジスタ343および346とを備える。
【0078】
加算器341は、前処理後データPre1とレジスタ343からのデータとを加算してラップアラウンド処理部342に供給するものである。
【0079】
ラップアラウンド処理部342は、加算器341の加算結果が最大値を超えてオーバーフローした際に、最小値に戻す処理をラップアラウンド処理として行うものである。このラップアラウンド処理部342は、処理後のデータをレジスタ343に保持させる。
【0080】
レジスタ343は、ラップアラウンド処理部342からのデータを所定のクロック信号CLKに同期して保持し、加算器341および344に出力するものである。
【0081】
加算器344は、レジスタ343からのデータとレジスタ346からのデータとを加算してラップアラウンド処理部345に供給するものである。
【0082】
ラップアラウンド処理部345は、加算器344の加算結果に対してラップアラウンド処理を行うものである。このラップアラウンド処理部345は、処理後のデータをレジスタ346に保持させる。
【0083】
レジスタ343は、ラップアラウンド処理部345からのデータを所定のクロック信号CLKに同期して保持し、処理データCom1としてデシメータ350に供給するものである。
【0084】
[デシメータの構成例]
図9は、第1の実施の形態におけるデシメータ350の一構成例を示すブロック図である。このデシメータ350は、開閉器351および361と、レジスタ352、353および356と、加算器354および357と、ラップアラウンド処理部355および358とを備える。また、デシメータ350は、左ビットシフト処理部359、飽和丸め演算部360、セレクタ362および入出力制御部363を備える。
【0085】
開閉器351は、入出力制御部363の制御に従って経路を開閉するものである。この開閉器351の一端は共通処理部340に接続され、他端は、レジスタ352および加算器354に接続される。
【0086】
レジスタ352および353は、開閉器351からの処理データCom1を一定時間遅延させて加算器354に出力するものである。
【0087】
加算器354は、レジスタ353からのデータと開閉器351からの処理データCom1とを加算してラップアラウンド処理部355に供給するものである。
【0088】
ラップアラウンド処理部355は、加算器354の加算結果に対してラップアラウンド処理を行ってレジスタ356および加算器357に供給するものである。
【0089】
レジスタ356は、ラップアラウンド処理部355からのデータを遅延させて加算器357に出力するものである。
【0090】
上述のレジスタ352、353および356は、レジスタクリア指示に従って初期化される。
【0091】
加算器357は、ラップアラウンド処理部355からのデータとレジスタ356からのデータとを加算してラップアラウンド処理部358に供給するものである。
【0092】
ラップアラウンド処理部358は、加算器357の加算結果に対してラップアラウンド処理を行って左ビットシフト処理部359に供給するものである。
【0093】
左ビットシフト処理部359は、ラップアラウンド処理後のデータに対し、一定のシフト量で左ビットシフトを行うものである。左ビットシフト処理部359は、シフト後のデータを飽和丸め演算部360に供給する。
【0094】
飽和丸め演算部360は、シフト後のデータに対し、オーバーフロー時に飽和する丸め演算を行うものである。飽和丸め演算部360は、演算後のデータを開閉器361に供給する。
【0095】
開閉器361は、入出力制御部363の制御に従って経路を開閉するものである。この開閉器361の一端は飽和丸め演算部360に接続され、他端はセレクタ362に接続される。
【0096】
セレクタ362は、前処理後データPre1と、開閉器361からのデータとのいずれかを選択信号に従って選択し、ダイナミックレンジ調整部332に供給するものである。
【0097】
入出力制御部363は、間引き率に基づいて開閉器351および361を制御するものである。例えば、間引き率が1/2である場合には、入出力制御部363は、サンプリング周期が経過するたびに、開閉器351および361の両方を開状態および閉状態の一方から他方に切り替える。また、間引き率が、1/4である場合に入出力制御部363は、4周期のうち3周期に亘って開閉器351および361の両方を閉状態にし、残り1周期に亘って開状態にする。
【0098】
間引き率、レジスタクリア指示、および、選択信号のそれぞれは、制御レジスタ310に設定される。
【0099】
[関数実行部の構成例]
図10は、第1の実施の形態における関数実行部400の一構成例を示すブロック図である。この関数実行部400は、関数割当部411と、複数の関数実行回路420と、OR(論理和)ゲート412とを備える。例えば、関数実行回路#1乃至#3が関数実行回路420として設けられる。なお、関数実行回路420の個数は、3つに限定されず、3つ以外の個数であってもよい。
【0100】
関数割当部411は、間引き部330および前処理部320のそれぞれからのデータに対し、関数実行回路420を割り当てるものである。例えば、間引き部#1および#2が前処理後データと3つの間引きデータとを出力し、前処理部#3乃至#10のそれぞれが前処理後データを1つ出力する場合を想定する。この場合には、10個の前処理後データと6個の間引きデータとが関数割当部411に入力され、関数割当部411は、これらのうち3つまでに関数実行回路#1および#3を割り当てることができる。1つのデータには、関数実行回路が1つのみ割り当てられる。関数割当部411は、関数実行回路#1および#3に、割り当てたデータを入力データFin1乃至Fin3として供給する。なお、関数実行回路#1乃至#3を、どのデータに割り当てるかを示す割当パターンは、制御レジスタ310に設定される。
【0101】
関数実行回路420は、関数割当部411からの入力データに対して、所定の関数演算を実行するものである。関数実行回路#1乃至#3は、演算後のデータをセンサデータDout1乃至3としてFIFO書込み制御部240に供給する。また、関数実行回路#1乃至#3は、入力データに基づいて電子装置100の動きの有無を検出し、検出結果を示すトリガ信号Trig1乃至3を生成する。
【0102】
ORゲート412は、トリガ信号Trig1乃至Trig3の論理和をトリガ信号TRIGとして電源制御部110に出力するものである。
【0103】
なお、関数実行回路420が1つしか設けられない場合には、ORゲート412は不要である。
【0104】
[関数実行回路の構成例]
図11は、第1の実施の形態における関数実行回路420の一構成例を示すブロック図である。この関数実行回路420は、IIRフィルタ430および421と、正規化部460と、閾値判定部490と、切替分配部422とを備える。
【0105】
切替分配部422は、関数割当部411、IIRフィルタ430、IIRフィルタ421および正規化部460からのデータのいずれかを2つに分配し、また、それらの出力先を切り替えるものである。この切替分配部422は、入力端子Tin1乃至Tin4と、出力端子Tout1乃至Tout5を備える。入力端子Tin1には、入力データFin1が入力され、入力端子Tin2にはIIRフィルタ430からのデータが入力される。また、入力端子Tin3には、IIRフィルタ421からのデータが入力され、入力端子Tin4には正規化部460からのデータが入力される。
【0106】
また、出力端子Tout1から出力されたデータはIIRフィルタ430に入力され、出力端子Tout2から出力されたデータはIIRフィルタ421に入力される。出力端子Tout3から出力されたデータは正規化部460に入力され、出力端子Tout4から出力されたデータは閾値判定部490に入力される。出力端子Tout5からのデータは、センサデータDout1としてFIFO書込み制御部240に入力される。
【0107】
これらの入力端子Tin1乃至Tin4のうち1つを、例えば、2つの出力端子に接続することができる。また、残りの3つの入力端子を、例えば、互いに異なる出力端子と1対1で接続することができる。切替分配部422は、例えば、マルチプレクサやデマルチプレクサなどにより実現することができる。切替分配部422が端子を接続するパターンは、トポロジパターンとして制御レジスタ310に設定される。このトポロジパターンは、例えば、4ビットのデータにより設定される。なお、切替分配部422は、特許請求の範囲に記載の接続制御部の一例である。
【0108】
IIRフィルタ430は、出力端子Tout2からのデータに対し、所定のフィルタ処理を行って入力端子Tin2に出力するものである。例えば、一定の周波数未満の低周波数帯域の信号を通過させる処理や、一定の周波数以上の高周波数帯域の信号を通過させる処理などが行われる。
【0109】
IIRフィルタ421は、出力端子Tout3からのデータに対し、所定のフィルタ処理を行って入力端子Tin3に出力するものである。なお、IIRフィルタ430および421は、特許請求の範囲に記載のフィルタ部の一例である。
【0110】
正規化部460は、出力端子Tout4からのデータに対し、所定の正規化処理を行って入力端子Tin4に出力するものである。
【0111】
閾値判定部490は、出力端子Tout4からのデータと、所定の閾値とに基づいてトリガ信号Trig1を生成してORゲート412に出力するものである。
【0112】
なお、関数実行回路420は、IIRフィルタ430および421によるフィルタ処理、正規化部460による正規化処理を行っているが、さらに別の処理を行ってもよい。例えば、関数実行回路420は、ディープラーニング処理の一部を担うための線形乗算や加算演算をさらに行ってもよい。
【0113】
[IIRフィルタの構成例]
図12は、第1の実施の形態におけるIIRフィルタ430の一構成例を示すブロック図である。このIIRフィルタ430は、ビットシフト処理部431と、加算器432、437、439および444と、クリップ処理部433と、複数の遅延部438と、乗算器435、441、442、447および448とを備える。また、IIRフィルタ430は、丸め処理部436、440、443、446および449と、丸め・クリップ処理部450と、セレクタ451および452とを備える。
【0114】
ビットシフト処理部431は、切替分配部422からのデータに対し、ビットシフト処理を行って加算器432に供給するものである。ビットシフトにおけるシフト量S0は、制御レジスタ310に設定される。このシフト量S0は、符号付きの整数であり、S0の符号はシフト方向を示す。
【0115】
加算器432は、加算器439の加算結果とビットシフト処理部431からのデータとを加算してクリップ処理部433に供給するものである。
【0116】
クリップ処理部433は、加算器432の加算結果に対してクリップ処理を行い、遅延部438のそれぞれと、乗算器435とに出力するものである。
【0117】
遅延部438は、イネーブル信号に従って、クリップ処理部433からのデータを遅延させてセレクタ451に供給するものである。遅延部438として、遅延部#1および#2などが設けられ、遅延部#1にイネーブル信号ENf1が入力され、遅延部#2にイネーブル信号ENf2が入力される。遅延部438を有効にする際には、例えば、イネーブル信号にハイレベルが設定され、無効にする際にローレベルが設定される。
【0118】
乗算器435は、クリップ処理部433からのデータに、所定の係数C0を乗算して丸め処理部436に供給するものである。
【0119】
丸め処理部436は、乗算器435の乗算結果に対して丸め演算を行って加算器437に供給するものである。
【0120】
加算器437は、丸め処理部436からのデータと加算器444の加算結果とを加算して丸め・クリップ処理部450に供給するものである。
【0121】
セレクタ451は、複数の遅延部438のそれぞれからのデータのいずれかを選択信号SELfに従って選択し、乗算器441および442と複数の遅延部445とに供給するものである。
【0122】
乗算器441は、セレクタ451からのデータに、所定の係数C1を乗算して丸め処理部440に供給するものである。
【0123】
丸め処理部440は、乗算器441の乗算結果に対して丸め演算を行って加算器439に供給するものである。
【0124】
加算器439は、丸め処理部440および446のそれぞれからのデータを加算して加算器432に供給するものである。
【0125】
乗算器442は、セレクタ451からのデータに、所定の係数C2を乗算して丸め処理部443に供給するものである。
【0126】
丸め処理部443は、乗算器442の乗算結果に対して丸め演算を行って加算器444に供給するものである。
【0127】
加算器444は、丸め処理部443および449のそれぞれからのデータを加算して加算器437に供給するものである。
【0128】
遅延部445は、イネーブル信号に従って、クリップ処理部433からのデータを遅延させてセレクタ452に供給するものである。
【0129】
セレクタ452は、複数の遅延部445のそれぞれからのデータのいずれかを選択信号SELfに従って選択し、乗算器447および448に供給するものである。
【0130】
乗算器447は、セレクタ452からのデータに、所定の係数C3を乗算して丸め処理部446に供給するものである。
【0131】
丸め処理部446は、乗算器447の乗算結果に対して丸め演算を行って加算器439に供給するものである。
【0132】
乗算器448は、セレクタ452からのデータに、所定の係数C4を乗算して丸め処理部449に供給するものである。
【0133】
丸め処理部449は、乗算器448の乗算結果に対して丸め演算を行って加算器444に供給するものである。
【0134】
丸め・クリップ処理部450は、加算器437の加算結果に対して丸め演算およびクリップ処理を行って、切替分配部422に出力するものである。
【0135】
上述のシフト量S0、クリップ処理における制限範囲S1、係数C0乃至C4、イネーブル信号、および、選択信号SELfは、制御レジスタ310に設定される。
【0136】
係数C0乃至C4を適宜設定することにより、IIRフィルタ430は、ローパスフィルタやハイパスフィルタとして機能する。また、遅延部438のそれぞれは、処理対象のセンサデータをサンプリングするタイミングに同期してデータを保持する。複数の遅延部438のそれぞれは、これらの遅延部は、イネーブル信号により互いに異なるタイミングでデータを保持することができるため、サンプリングレートの異なる複数のセンサデータを1つのIIRフィルタ430で処理することができる。
【0137】
[正規化部の構成例]
図13は、第1の実施の形態における正規化部460の一構成例を示すブロック図である。この正規化部460は、絶対値演算部461、462および463と、最大値選択部464および466と、最小値選択部465および467と、乗算器468、469、470、471および472と、セレクタ473、474および483とを備える。また、正規化部460は、加算器475および482と、ビットフォーマット変換部476、479、480および481と、丸め・クリップ処理部477および478とを備える。
【0138】
ここで、正規化部460に入力されるセンサデータNinは、X軸測定値NinX、Y軸測定値NinYおよびZ軸測定値NinZのうち少なくとも1つを含む。X軸測定値NinXは、互いに垂直なX軸、Y軸およびZ軸のうちX軸における測定値である。Y軸測定値NinYおよびNinZは、Y軸およびZ軸における測定値である。なお、センサの種類により、センサデータが含む測定値の種類や個数は異なる。例えば、加速度センサ131のセンサデータは、X軸、Y軸およびZ軸における加速度の測定値を含み、気圧センサ133のセンサデータは、気圧の測定値1つのみを含む。
【0139】
絶対値演算部461は、X軸測定値NinXの絶対値を演算するものである。この絶対値演算部461は、演算した値を、最大値選択部464および466と最小値選択部465および467とビットフォーマット変換部479とに出力する。
【0140】
絶対値演算部462は、Y軸測定値NinYの絶対値を演算するものである。この絶対値演算部462は、演算した値を、最大値選択部464および最小値選択部465に出力する。
【0141】
絶対値演算部463は、Z軸測定値NinZの絶対値を演算するものである。この絶対値演算部463は、演算した値を、最大値選択部466および最小値選択部467に出力する。
【0142】
最大値選択部464は、絶対値演算部461および462のそれぞれで演算された絶対値のうち最大値を選択して乗算器468および470に供給するものである。
【0143】
最小値選択部465は、絶対値演算部461および462のそれぞれで演算された絶対値のうち最大値を選択して乗算器469および471に供給するものである。
【0144】
乗算器468は、最大値選択部464からの最大値に、所定の係数N0を乗算してセレクタ473に供給するものである。乗算器469は、最小値選択部465からの最小値に、所定の係数N1を乗算してセレクタ474に供給するものである。乗算器470は、最大値選択部464からの最大値に、所定の係数N2を乗算してセレクタ473に供給するものである。乗算器471は、最小値選択部465からの最小値に、所定の係数N3を乗算してセレクタ474に供給するものである。
【0145】
セレクタ473は、選択信号SELn1に従って、乗算器468および470のそれぞれの乗算結果のいずれかを選択し、丸め・クリップ処理部477に供給するものである。セレクタ474は、選択信号SELn1に従って、乗算器469および471のそれぞれの乗算結果のいずれかを選択し、丸め・クリップ処理部478に供給するものである。
【0146】
丸め・クリップ処理部477は、セレクタ473からのデータに対し、丸め処理およびクリップ処理を行って加算器482に供給するものである。丸め・クリップ処理部478は、セレクタ474からのデータに対し、丸め処理およびクリップ処理を行って加算器482に供給するものである。
【0147】
加算器482は、丸め・クリップ処理部477および478のそれぞれからのデータを加算してビットフォーマット変換部480、最大値選択部466および最小値選択部467に供給するものである。
【0148】
最大値選択部466は、絶対値演算部463で演算された絶対値にN4を付加したデータと、加算器482の加算結果とのうち、最大値を選択し、加算器475に出力するものである。
【0149】
最小値選択部467は、絶対値演算部463で演算された絶対値にN4を付加したデータと、加算器482の加算結果とのうち、最小値を選択し、乗算器472に出力するものである。
【0150】
乗算器472は、最小値選択部467からの最小値に、所定の係数N5を乗算してビットフォーマット変換部476に供給するものである。
【0151】
ビットフォーマット変換部476は、乗算器472からのデータのフォーマットを変換して加算器475に供給するものである。
【0152】
加算器475は、最大値選択部466からの最大値に、ビットフォーマット変換部476からのデータを加算してビットフォーマット変換部481に供給するものである。
【0153】
ビットフォーマット変換部479は、絶対値演算部461からのデータのフォーマットを変換してセレクタ483に供給するものである。ビットフォーマット変換部480は、加算器482からのデータのフォーマットを変換してセレクタ483に供給するものである。ビットフォーマット変換部481は、加算器475からのデータのフォーマットを変換してセレクタ483に供給するものである。
【0154】
セレクタ483は、選択信号SELn2に従って、ビットフォーマット変換部479、480および481のいずれかを選択し、切替分配部422に出力するものである。センサデータがX軸測定値NinXのみを含む場合にはビットフォーマット変換部479からのデータが選択される。また、センサデータがX軸測定値NinXおよびY軸測定値NinYのみを含む場合にはビットフォーマット変換部480からのデータが選択される。センサデータがX軸測定値NinX、Y軸測定値NinYおよびZ軸測定値NinZの全てを含む場合にはビットフォーマット変換部481からのデータが選択される。
【0155】
上述の係数N0乃至N5と、選択信号SELn1およびSELn2とのそれぞれは、制御レジスタ310に設定される。また、上述の構成により、センサデータは、X軸、Y軸およびZ軸のそれぞれの測定値の二乗和の平方根に正規化される。言い換えれば、X軸、Y軸およびZ軸の測定値により表されるベクトルがスカラーに変換される。
【0156】
図14は、第1の実施の形態における閾値判定部490の一構成例を示すブロック図である。この閾値判定部490は、上限値比較部491、上限側カウンタ493、上限側カウンタ値比較部495、下限値比較部492、下限側カウンタ494、下限側カウンタ値比較部496、ORゲート497および遅延部498を備える。
【0157】
上限値比較部491は、センサデータの値と所定の上限値とを比較するものである。この上限値比較部491は、比較結果を上限側カウンタ493に出力する。例えば、センサデータが上限値を超えた場合にはハイレベルの比較結果が出力され、上限値以下である場合にはローレベルの比較結果が出力される。
【0158】
上限側カウンタ493は、上限値を超えるセンサデータが連続して取得された回数を計数するものである。この上限側カウンタ493は、ハイレベルの比較結果が入力されるたびにカウンタ値UCNTを計数し、ローレベルの比較結果が入力されるとカウンタ値UCNTを初期値にする。上限側カウンタ493は、カウンタ値UCNTを上限側カウンタ値比較部495に供給する。
【0159】
上限側カウンタ値比較部495は、カウンタ値UCNTと所定の設定回数とを比較するものである。この上限側カウンタ値比較部495は、比較結果をORゲート497に供給する。例えば、カウンタ値UCNTが設定回数を超えた場合にハイレベルの比較結果が出力され、カウンタ値UCNTが設定回数以下の場合にローレベルの比較結果が出力される。
【0160】
下限値比較部492は、センサデータの値と所定の下限値とを比較するものである。この下限値比較部492は、比較結果を下限側カウンタ494に出力する。例えば、センサデータが下限値を下回った場合にはハイレベルの比較結果が出力され、下限値以上である場合にはローレベルの比較結果が出力される。
【0161】
下限側カウンタ494は、下限値より低い値のセンサデータが連続して取得された回数を計数するものである。この下限側カウンタ494は、ハイレベルの比較結果が入力されるたびにカウンタ値LCNTを計数し、ローレベルの比較結果が入力されるとカウンタ値LCNTを初期値にする。下限側カウンタ494は、カウンタ値LCNTを下限側カウンタ値比較部496に供給する。
【0162】
下限側カウンタ値比較部496は、カウンタ値LCNTと所定の設定回数とを比較するものである。上限側カウンタ値比較部495および下限側カウンタ値比較部496のそれぞれが比較する設定回数は、同じ値であってもよいし、異なる値であってもよい。下限側カウンタ値比較部496は、比較結果をORゲート497に供給する。例えば、カウンタ値LCNTが設定回数を超えた場合にハイレベルの比較結果が出力され、カウンタ値LCNTが設定回数以下の場合にローレベルの比較結果が出力される。
【0163】
ORゲート497は、上限側カウンタ値比較部495および下限側カウンタ値比較部496のそれぞれの比較結果の論理和の信号を遅延部498に出力するものである。
【0164】
遅延部498は、ORゲート497からの出力信号を遅延時間T
delayに亘って遅延させて、トリガ信号Trig1としてORゲート412に出力するものである。
【0165】
上述の構成により、下限値から上限値までの一定の範囲外の値のセンサデータが連続して設定回数に亘って取得されると、遅延時間T
delayの経過後にトリガ信号Trig1が生成される。
【0166】
なお、閾値判定部490は、下限値および上限値の両方とセンサデータを比較しているが、いずれか一方とのみ比較してもよい。
【0167】
図15は、第1の実施の形態における加速度、カウント値およびトリガ信号の変動の一例を示すグラフである。同図におけるaは、ユーザが歩行した際に加速度センサ131により測定された加速度の変動の一例を示す。また、同図におけるaの縦軸は加速度を示し、横軸は時間を示す。同図におけるaに例示するように、ユーザが歩行した際には、加速度が大きくなったり、小さくなったりする。
【0168】
図15におけるbは、カウンタ値UCNTの変動の一例を示すグラフである。また、同図におけるbの縦軸はカウンタ値UCNTを示し、横軸は時間を示す。タイミングT2からT5までの間において、上限値を超える加速度が測定されると、その期間において、カウンタ値UCNTがカウントアップされる。また、タイミングT10からT12までの間においても、上限値を超える加速度が測定されたため、同様にカウンタ値UCNTがカウントアップされる。
【0169】
図15におけるcは、カウンタ値LCNTの変動の一例を示すグラフである。また、同図におけるcの縦軸はカウンタ値LCNTを示し、横軸は時間を示す。タイミングT0からT1までの間において、下限値より小さい加速度が測定されると、その期間において、カウンタ値LCNTがカウントアップされる。また、タイミングT6からT9までの間においても、下限値未満の加速度が測定されたため、同様にカウンタ値LCNTがカウントアップされる。
【0170】
図15におけるdは、トリガ信号TRIGの変動の一例を示すグラフである。タイミングT3において、カウント値UCNTが設定回数を超えると、そのタイミングT3から遅延時間T
delayが経過したタイミングT4において、トリガ信号TRIGが生成される。また、タイミングT7において、カウント値LCNTが設定回数を超えると、そのタイミングT7から遅延時間T
delayが経過したタイミングT8において、トリガ信号TRIGが生成される。
【0171】
仮にセンサデータが一定の範囲外の値になったか否かを閾値判定部490が検出する構成とすると、その範囲の境界値前後でセンサデータが変動した際に、トリガ信号TRIGがオンオフを繰り返すこととなり、無駄に電力が消費されるおそれがある。しかし、閾値判定部490は、一定の範囲外の値のセンサデータが連続して設定回数に亘って取得されたか否かを判断するため、そのような無駄な動作を抑制することができる。
【0172】
また、閾値判定部490は、遅延時間が経過したときにトリガ信号TRIGを生成するため、FIFO書込み制御部240は、その遅延時間内に測定されたデータをFIFOメモリ250に保持させることができる。ここで、FIFOメモリ250の容量は、遅延時間より長い期間に亘って測定されたFIFOデータを保持することができる程度の容量であることが望ましい。これにより、FIFOメモリ250は、カウンタ値UCNTやLCNTが設定回数を超えたタイミングの前後のFIFOデータを保持することができる。
【0173】
なお、閾値判定部490は、センサデータの値と閾値との比較結果からトリガ信号TRIGを生成しているが、この構成に限定されない。例えば、閾値判定部490は、FIFOメモリ250に書き込まれたセンサデータの個数が閾値を超えた場合にトリガ信号TRIGを生成してもよい。
【0174】
図16は、第1の実施の形態におけるトポロジパターンb0001の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout1に接続され、入力端子Tin2は出力端子Tout2に接続される。また、入力端子Tin3は出力端子Tout3およびTout5に接続され、入力端子Tin4は出力端子Tout4に接続される。
【0175】
図16におけるbは、トポロジパターンb0001が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、IIRフィルタ430、IIRフィルタ421および正規化部460を順に通過したデータが閾値判定部490に入力される。また、IIRフィルタ430およびIIRフィルタ421を通過したデータがセンサデータDout1として出力される。
【0176】
図17は、第1の実施の形態におけるトポロジパターンb0010の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout1およびTout3に接続され、入力端子Tin2は出力端子Tout2に接続される。また、入力端子Tin3は出力端子Tout5に接続され、入力端子Tin4は出力端子Tout4に接続される。
【0177】
図17におけるbは、トポロジパターンb0010が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、正規化部460のみを通過したデータが閾値判定部490に入力される。また、IIRフィルタ430およびIIRフィルタ421を通過したデータがセンサデータDout1として出力される。
【0178】
図18は、第1の実施の形態におけるトポロジパターンb0100の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout1およびTout5に接続され、入力端子Tin2は出力端子Tout2に接続される。また、入力端子Tin3は出力端子Tout3に接続され、入力端子Tin4は出力端子Tout4に接続される。
【0179】
図18におけるbは、トポロジパターンb0100が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、IIRフィルタ430、IIRフィルタ421および正規化部460を順に通過したデータが閾値判定部490に入力される。また、関数割当部411からのデータがそのまま、センサデータDout1として出力される。
【0180】
図19は、第1の実施の形態におけるトポロジパターンb1000の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout3およびTout5に接続され、入力端子Tin2は出力端子Tout2に接続される。また、入力端子Tin3は出力端子Tout4に接続され、入力端子Tin4は出力端子Tout1に接続される。
【0181】
図19におけるbは、トポロジパターンb1000が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、正規化部460、IIRフィルタ430およびIIRフィルタ421を順に通過したデータが閾値判定部490に入力される。また、関数割当部411からのデータがそのまま、センサデータDout1として出力される。
【0182】
図20は、第1の実施の形態におけるトポロジパターンb0011の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout1に接続され、入力端子Tin2は出力端子Tout2およびTout3に接続される。また、入力端子Tin3は出力端子Tout5に接続され、入力端子Tin4は出力端子Tout4に接続される。
【0183】
図20におけるbは、トポロジパターンb0011が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、IIRフィルタ430および正規化部460を順に通過したデータが閾値判定部490に入力される。また、IIRフィルタ430およびIIRフィルタ421を通過したデータがセンサデータDout1として出力される。
【0184】
図21は、第1の実施の形態におけるトポロジパターンb0110の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout1およびTout2に接続され、入力端子Tin2は出力端子Tout3に接続される。また、入力端子Tin3は出力端子Tout5に接続され、入力端子Tin4は出力端子Tout4に接続される。
【0185】
図21におけるbは、トポロジパターンb0110が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、IIRフィルタ430および正規化部460を順に通過したデータが閾値判定部490に入力される。また、IIRフィルタ421のみを通過したデータがセンサデータDout1として出力される。
【0186】
図22は、第1の実施の形態におけるトポロジパターンb1100の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout1およびTout5に接続され、入力端子Tin2は出力端子Tout3に接続される。また、入力端子Tin3は出力端子Tout4に接続され、入力端子Tin4は出力端子Tout2に接続される。
【0187】
図22におけるbは、トポロジパターンb1100が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、IIRフィルタ430、正規化部460およびIIRフィルタ421を順に通過したデータが閾値判定部490に入力される。また、関数割当部411からのデータがそのまま、センサデータDout1として出力される。
【0188】
図23は、第1の実施の形態におけるトポロジパターンb1001の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout1に接続され、入力端子Tin2は出力端子Tout3およびTout5に接続される。また、入力端子Tin3は出力端子Tout4に接続され、入力端子Tin4は出力端子Tout2に接続される。
【0189】
図23におけるbは、トポロジパターンb1001が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、IIRフィルタ430、正規化部460およびIIRフィルタ421を順に通過したデータが閾値判定部490に入力される。また、IIRフィルタ430のみを通過したデータがセンサデータDout1として出力される。
【0190】
図24は、第1の実施の形態におけるトポロジパターンb0101の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout1に接続され、入力端子Tin2は出力端子Tout2およびTout5に接続される。また、入力端子Tin3は出力端子Tout3に接続され、入力端子Tin4は出力端子Tout4に接続される。
【0191】
図24におけるbは、トポロジパターンb0101が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、IIRフィルタ430、IIRフィルタ421および正規化部460を順に通過したデータが閾値判定部490に入力される。また、IIRフィルタ430のみを通過したデータがセンサデータDout1として出力される。
【0192】
図25は、第1の実施の形態におけるトポロジパターンb1010の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout1およびTout3に接続され、入力端子Tin2は出力端子Tout5に接続される。また、入力端子Tin3は出力端子Tout4に接続され、入力端子Tin4は出力端子Tout2に接続される。
【0193】
図25におけるbは、トポロジパターンb1010が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、正規化部460およびIIRフィルタ421を順に通過したデータが閾値判定部490に入力される。また、IIRフィルタ430のみを通過したデータがセンサデータDout1として出力される。
【0194】
図26は、第1の実施の形態におけるトポロジパターンb1101の設定例を示す図である。同図におけるaは、このトポロジパターンの切替分配部422の設定例を示す。入力端子Tin1は出力端子Tout3およびTout5に接続され、入力端子Tin2は出力端子に接続されない。また、入力端子Tin3は出力端子に接続されず、入力端子Tin4は出力端子Tout4に接続される。
【0195】
図26におけるbは、トポロジパターンb1101が設定された際の関数実行回路420内の各部の接続関係の一例を示す。このトポロジパターンでは、正規化部460のみを通過したデータが閾値判定部490に入力される。また、関数割当部411からのデータがそのまま、センサデータDout1として出力される。
【0196】
上述の
図16乃至
図26に例示したように、関数実行回路420は、IIRフィルタ430、IIRフィルタ421、正規化部460および閾値判定部490のそれぞれのトポロジをレジスタ設定値に基づいて様々な形状に変更することができる。これにより、回路の設計変更を行わなくてもレジスタ設定値を変更するだけで、センサデータに対して行う信号処理の内容を変更することができる。したがって、制御回路105の汎用性を向上させることができる。
【0197】
図27は、第1の実施の形態におけるデータパスの一例を示す図である。同図に例示するように、加速度センサ131のセンサデータは、センサデータ読出し部230により読み出され、前処理部#1、間引き部#1および関数実行部400を順に通過してFIFOメモリ250に書き込まれる。ジャイロセンサ132についても同様である。
【0198】
一方、気圧センサ133のセンサデータは、センサデータ読出し部230により読み出されると、前処理部#3および関数実行部400を順に通過してFIFOメモリ250に書き込まれる。FIFOメモリ250に書き込まれたデータのそれぞれは、データ処理部120により読み出されて処理される。このように、間引き部330を通るデータパスと、通らないデータパスとが設けられる。
【0199】
[電子装置の動作例]
図28は、第1の実施の形態における電子装置100の動作の一例を示すフローチャートである。この動作は、例えば、電子装置100において所定のアプリケーションが実行されたときに開始する。
【0200】
データ処理部120は、センサデータ取得部200における各種の設定をレジスタ設定値により行う(ステップS901)。例えば、サンプリング周期、サンプリングの開始時刻、データフォーマット変換の内容、トリガ信号TRIGを発生する条件(上限値、下限値および設定回数など)、関数実行部400の演算内容(係数やゲインなど)の設定が行われる。
【0201】
データ処理部120は、電源断要求を出力し、電源制御部110は、データ処理部120への電源供給を停止する(ステップS902)。そして、センサデータ取得部200は、レジスタ設定値に基づいてセンサデータの取得を行う(ステップS903)。
【0202】
電源制御部110は、トリガ信号TRIGがハイレベルである(すなわち電子装置100に動きがあった)か否かを判断する(ステップS904)。トリガ信号TRIGがローレベルである(動きが無い)場合に(ステップS904:No)、電子装置100は、ステップS903以降を繰り返す。
【0203】
一方、トリガ信号TRIGがハイレベルである場合に(ステップS904:Yes)、電源制御部110は、データ処理部120に電源を投入する(ステップS905)。そして、データ処理部120は、FIFOメモリ250からFIFOデータを読み出し、歩行動作の有無などの簡易解析を行う(ステップS906)。
【0204】
データ処理部120は、歩行動作の有無などに基づいて、さらに詳細な解析が必要か否かを判断する(ステップS907)。詳細解析が必要である場合に(ステップS907:Yes)、データ処理部120は、詳細解析モジュール123を起動して、歩行ルートの取得などの詳細解析を行う(ステップS908)。データ処理部120は、解析が終了したか否かを判断する(ステップS909)。
【0205】
解析が終了していない場合に(ステップS909:No)、データ処理部120は、ステップS908を繰り返す。一方、解析が終了した場合(ステップS909:Yes)または、詳細解析が必要でない場合に(ステップS907:No)、データ処理部120は、ステップS902を繰り返す。
【0206】
図29は、第1の実施の形態における動き検知前の制御回路105の状態の一例を示す図である。制御回路105において点線で囲まれた個所は、電源が投入されている領域を示し、実線で囲まれた個所は電源が投入されていない領域を示す。
【0207】
レジスタ設定値の設定完了後に、データ処理部120が電源断を要求すると、電源制御部110は、データ処理部120への電源供給を停止する。この結果、制御回路105では、電源制御部110およびセンサデータ取得部200などの必要最小限の領域のみに電源が供給される。
【0208】
図30は、第1の実施の形態における動き検知後の簡易解析時の制御回路105の状態の一例を示す図である。センサデータ取得部200は、取得したセンサデータに基づいて、電子装置100の動きの有無を判断し、動きがあるとトリガ信号TRIGを生成する。このトリガ信号TRIGに応じて電源制御部110は、データ処理部120に電源VDD2を投入する。そして、データ処理部120は、簡易解析モジュール122を起動して簡易解析を行う。このとき、詳細解析モジュール123は省電力の観点から、停止したままである。なお、動きの無い場合にデータ処理部120は、電源断供給を電源制御部110に供給し、データ処理部120への電源供給が遮断される。
【0209】
図31は、第1の実施の形態における詳細解析時の制御回路105の状態の一例を示す図である。簡易解析モジュール122によりユーザが歩行中であると判断されると、データ処理部120は、詳細解析モジュール123をさらに起動し、詳細解析を行う。なお、モジュール管理部121は、詳細解析モジュール123の動作中に簡易解析モジュール122も動作させているが、詳細解析モジュール123の動作中に簡易解析モジュール122を停止させる構成であってもよい。
【0210】
図29乃至
図31に例示したように、電子装置100は、加速度センサ131等からのデータ収集を行うのに必要最小限の機能ブロック(電源制御部110およびセンサデータ取得部200)を残して、それ以外の回路への電源供給を停止する。回路自体が停止中であっても、その回路に電源が供給されていると、リーク電流が流れて電力が無駄に消費されるおそれがあるが、電子装置100では電源供給そのものを停止しているため、リーク電流を最小限に抑制することができる。例えば、電源制御部110およびセンサデータ取得部200のみを動作させる
図30の状態では、消費電力を100マイクロワット(μW)以下にすることができる。
【0211】
また、データ処理部120より低い周波数の独立の動作クロックによりセンサデータ取得部200を動作させることにより、データ処理部120およびセンサデータ取得部200の動作クロックが同一の場合よりも消費電力を低減することができる。例えば、センサデータ取得部200の動作クロックを低下させることにより、
図30の状態の消費電力を1マイクロワット(μW)以下にすることができる。
【0212】
このように、本技術の第1の実施の形態によれば、電子装置に動きがあるとユーザが歩行しているか否かを判断する簡易解析を行い、歩行している場合に詳細解析を行うため、動きがあるが歩行していない場合に簡易解析のみを行うことができる。これにより、動きがあった際に、歩行中であるか否かに関わらず詳細解析を行う構成と比較して、電子装置100の消費電力を低減することができる。
【0213】
<2.第2の実施の形態>
上述の第1の実施の形態では、測定のみを行うセンサ(加速度センサ131など)を設けていたが、測定に加えて、測定値が閾値を超えているか否かの判定を行うセンサを設けることもできる。このように、測定に加えて閾値判定などの高度な処理を行うセンサは、スマートセンサとも呼ばれる。この第2の実施の形態における電子装置100は、スマートセンサを設けた点において第1の実施の形態と異なる。
【0214】
図32は、第2の実施の形態における電子装置100の一構成例を示すブロック図である。この第2の実施の形態の電子装置100は、加速度センサ131の代わりに加速度センサ134を備える点において第1の実施の形態と異なる。
【0215】
加速度センサ134は、加速度の測定と、その測定値が閾値を超えているか否かの判定とを行うものである。閾値判定における閾値は、センサデータ取得部200などにより予め設定される。加速度センサ134は、リクエストに応じてセンサデータ取得部200にセンサデータを出力する。また、加速度センサ134は、加速度の測定値が閾値を超えたか否かを判定して、その判定結果を示すトリガ信号Trigsをセンサデータ取得部200に供給する。
【0216】
また、第2の実施の形態のデータ処理部120は、加速度センサ134からの割込み(トリガ信号Trigs)の発生後にトランザクションを実行するように設定することができる。この場合にセンサデータ取得部200は、トリガ信号Trigsが出力されると、一定回数のトランザクションを実行する。
【0217】
図33は、第2の実施の形態における関数実行部400の一構成例を示すブロック図である。この第2の実施の形態の関数実行部400は、ORゲート412の代わりにORゲート413を備える点において第1の実施の形態と異なる。
【0218】
ORゲート413は、加速度センサ134からのトリガ信号Trigsと、関数実行回路420からのトリガ信号Trig1乃至3との論理和をトリガ信号TRIGとして生成するものである。
【0219】
このように、本技術の第2の実施の形態によれば、電源制御部110は、加速度センサ134からのトリガ信号に応じてデータ処理部120に電源を投入するため、センサデータ取得部200が、加速度センサ134のデータを閾値と比較する必要がなくなる。これにより、センサデータ取得部200の処理量を削減することができる。
【0220】
<3.第3の実施の形態>
上述の第1の実施の形態では、FIFOメモリ250をセンサデータ取得部200内に設けていたが、FIFOメモリ250の規模が大きくなるほど、FIFOメモリ250の消費電力が大きくなってしまう。この第3の実施の形態の電子装置100は、FIFOメモリ250の消費電力を低減した点において第1の実施の形態と異なる。
【0221】
図34は、第3の実施の形態におけるセンサデータ取得部200の一構成例を示すブロック図である。この第3の実施の形態のセンサデータ取得部200の構成は、FIFOメモリ250を備えない点以外は、第1の実施の形態と同様である。
【0222】
図35は、第3の実施の形態におけるデータ処理部120の一構成例を示すブロック図である。この第3の実施の形態のデータ処理部120は、FIFOメモリ250をさらに備える点において第1の実施の形態と異なる。
【0223】
前述したようにデータ処理部120には、電子装置100の動きが検出されない限り、動作を開始しない。一方、センサデータ取得部200は、電子装置100に電源が投入されている間は、常時動作する。このため、FIFOメモリ250を、センサデータ取得部200内でなく、データ処理部120内に配置することにより、FIFOメモリ250の消費電力を低減することができる。
【0224】
このように本技術の第3の実施の形態によれば、電子装置100の動きがあったときに電源が投入されるデータ処理部120内にFIFOメモリ250を配置したため、動きが無いときにはFIFOメモリ250への電力供給を遮断することができる。これにより、電子装置100の消費電力をさらに低減することができる。
【0225】
[変形例]
上述の第1の実施の形態では、電子装置100に加速度センサ131などを設けていたが、脈波センサを設けることができる。この変形例の電子装置100は、脈波センサをさらに設けた点において第1の実施の形態と異なる。
【0226】
図36は、変形例における電子装置100の一構成例を示すブロック図である。この変形例の電子装置100は、脈波センサ140を備える点において第1の実施の形態と異なる。脈波センサ140は、血管の容量の変動(脈波)を測定するものである。
【0227】
図37は、変形例における脈波センサ140の一構成例を示すブロック図である。この脈波センサ140は、発光制御部141、発光ダイオード142、アナログデジタル変換器143および光検出器144を備える。
【0228】
発光制御部141は、センサデータ取得部200の制御に従って、発光ダイオード142を発行させるものである。発光ダイオード142は、発光制御部141の制御に従って所定波長(赤色や緑色)の光を発光するものである。
【0229】
光検出器144は、血管で反射された光を検出して、アナログのセンサ信号を生成するものである。アナログデジタル変換器143は、センサデータ取得部200により設定されたサンプリングレートで、光検出器144からのアナログ信号をデジタルのセンサデータに変換するものである。
【0230】
センサデータ取得部200は、発光ダイオード142を間欠的に発光させ、その発光強度や発光タイミングと、アナログデジタル変換器143のサンプリングレートとを制御する。その際に、センサデータ取得部200は、発光ダイオード142の発光タイミングと、アナログデジタル変換器143のサンプリングのタイミングとを同期させる。例えば、発光ダイオード142の発光周期と、サンプリング周期との比率が整数比に設定される。このように発光ダイオード142を間欠的に発光させることにより、常に発光ダイオード142を発光させる構成と比較して、脈波センサ140の消費電力を低減することができる。
【0231】
このように、本技術の変形例によれば、センサデータ取得部200は、発光ダイオード142を間欠的に発光させるため、常に発光ダイオード142を発光させる構成と比較して脈波センサ140の消費電力を低減することができる。
【0232】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【0233】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、CD(Compact Disc)、MD(MiniDisc)、DVD(Digital Versatile Disc)、メモリカード、ブルーレイディスク(Blu-ray(登録商標)Disc)等を用いることができる。
【0234】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【0235】
なお、本技術は以下のような構成もとることができる。
(1)電子装置の動きの有無を検知する検知部と、
前記電子装置に動きがあった場合には電力の供給を開始する電源制御部と、
前記電子装置から得られたデータを解析する処理を前記電力を消費して簡易解析処理として実行する簡易解析部と、
前記簡易解析処理の解析結果に基づいて前記簡易解析処理と異なる処理を詳細解析処理として前記電力を消費して実行する詳細解析部と
を具備する電子装置。
(2)前記簡易解析部は、前記簡易解析処理において前記データを解析して前記電子装置のユーザが歩行しているか否かを判定し、
前記詳細解析部は、前記ユーザが歩行していると判定された場合には前記詳細解析処理を実行する
請求項1記載の電子装置。
(3)前記検知部は、
前記データを生成するセンサと、
前記データを取得して前記データに基づいて前記電子装置の動きの有無を検知するセンサデータ取得部と
を備える前記(1)記載の電子装置。
(4)前記センサデータ取得部は、所定数の前記データを取得するたびに所定の間引き率に応じた個数の前記データを破棄する間引き処理と破棄しなかった前記データに基づいて前記電子装置の動きの有無を検知する検知処理とを実行する
前記(3)記載の電子装置。
(5)前記センサデータ取得部は、
前記センサから前記データを読み出すセンサデータ読出し部と、
前記データに対して所定のフィルタ処理を行うフィルタ部と、
前記データに対して所定の正規化処理を行う正規化部と、
前記データと所定の閾値とを比較して前記電子装置の動きの有無を判定する閾値判定部と、
前記センサデータ読出し部と前記フィルタ部と前記正規化部と前記閾値判定部とのそれぞれの間の接続関係を制御する接続制御部と
を備える前記(3)または(4)に記載の電子装置。
(6)前記センサは、
発光ダイオードと、
光の有無を検出してアナログの検出信号を生成する光検出器と、
前記検出信号を前記データに変換するアナログデジタル変換器と
を備え、
前記センサデータ取得部は、前記発光ダイオードの発光タイミングと前記アナログデジタル変換器が前記検出信号を変換するタイミングとを同期させる
前記項(3)から(5)のいずれかに記載の電子装置。
(7)前記センサデータ取得部は、一定数の前記データを当該データが取得された順に保持する保持部を備え、
前記簡易解析部は、前記保持部から前記データを当該データが取得された順に読み出して前記簡易解析処理を実行する
前記(3)から(6)のいずれかに記載の電子装置。
(8)前記保持部は、前記データが取得された時刻と前記データとを対応付けて保持する
前記(7)記載の電子装置。
(9)前記電力を使用して一定数の前記データを当該データが取得された順に保持する保持部をさらに具備し、
前記簡易解析部は、前記保持部から前記データを当該データが取得された順に読み出して前記簡易解析処理を実行する
前記(1)から(8)のいずれかに記載の電子装置。
(10)前記検知部は、
前記データを生成して前記データに基づいて前記電子装置の動きの有無を検知するセンサと、
前記データを取得するデータ取得部と
を備える前記(1)記載の電子装置。
(11) 電子装置に動きがあった場合には電力の供給を開始する電源制御部と、
前記電子装置から得られたデータを解析する処理を前記電力を消費して簡易解析処理として実行する簡易解析部と、
前記簡易解析処理の解析結果に基づいて前記簡易解析処理と異なる処理を詳細解析処理として前記電力を消費して実行する詳細解析部と
を具備する制御回路。
(12)電子装置の動きの有無を検知する検知手順と、
前記電子装置に動きがあった場合には電力の供給を開始する電源制御手順と、
前記電子装置から得られたデータを解析する処理を前記電力を消費して簡易解析処理として実行する簡易解析手順と、
前記簡易解析処理の解析結果に基づいて前記簡易解析処理と異なる処理を詳細解析処理として前記電力を消費して実行する詳細解析手順と
を具備する電子装置の制御方法。