以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
1.システム構成例
図1は、本実施形態の生体情報測定装置100(パフォーマンスモニタリング装置)の構成例である。生体情報測定装置100は、第1のプロセッサー110と、第2のプロセッサー120と、生体センサー131と、体動センサー132と、環境センサー133と、表示部140(ディスプレイ)と、通信部150(通信インターフェース、アンテナ)と、外部発振器160(TCXO)と、を含む。ただし、生体情報測定装置100、及び生体情報測定装置100の各部は、図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
第1のプロセッサー110は、図1に示したように、第1〜第4のインターフェース1111〜1114と、処理部112(プロセッサー)と、記憶部113(メモリー)と、不揮発性メモリー114と、クロック供給部(クロック供給回路、クロック信号選択回路)115と、クロック周波数制御部1155(クロック周波数制御回路、制御信号生成回路)と、内部発振器116と、を含む。また記憶部113は、RAM(Random Access Memory)1131と、ROM(Read Only Memory)1132を含む。
第1のインターフェース1111は、生体センサー131からの生体信号を取得する。第2のインターフェース1112は、衛星信号を取得する。第3のインターフェース1113は、体動センサー132からの体動信号を取得する。第4のインターフェース1114は、環境センサー133からの環境信号を取得する。
第1のインターフェース1111、第3のインターフェース1113、及び第4のインターフェース1114は、生体情報測定装置100で処理対象とする種々のセンサーとのインターフェースであり、例えばI2CやSPI(Serial Peripheral Interface)等のシリアルインターフェース(シリアルバス)により実現できる。ただし、各インターフェースは、I2CやSPIと異なる種々のインターフェースを適用することが可能である。
また、第1のインターフェース1111、第3のインターフェース1113、及び第4のインターフェース1114は、それぞれ異なる構成として設けられるのではなく、共通化することも可能である。例えば、複数の通信チャンネルを有するI2Cを設けておき、各通信チャンネルが第1のインターフェース1111、第3のインターフェース1113、及び第4のインターフェース1114のいずれとしても動作可能な構成としてもよい。
衛星信号とは、測位衛星からの信号、即ちGNSS(Global Navigation Satellite System)信号であってもよい。この場合、第2のインターフェース1112は、GNSS用のアンテナや、当該アンテナが受信した信号を処理する回路の一部(狭義にはRF回路)、及び衛星信号を基板内で通信するためのインターフェースを含む。なお、GNSSとは、GPS(Global Positioning System)であってもよいし、Galileoであってもよいし、GLONASS(Global Navigation Satellite System)であってもよいし、他のシステムであってもよい。また、これらを発展させたシステムあるいは支援するシステム、たとえば準天頂衛星などであってもよい。
処理部112は、第1のインターフェース1111及び第2のインターフェース1112に接続され、生体信号及び衛星信号に基づく処理を行う。処理部112は、第1のプロセッサー110のコアであり、例えばCPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)等により実現できる。処理部112は、ASIC(application specific integrated circuit)によるハードウェア回路を含んでもよい。また処理部112は、アナログ信号を処理するアンプ回路やフィルター回路等を含んでもよい。
記憶部113は、処理部112等のワーク領域となるもので、その機能はRAM等のメモリーやHDD(Hard Disk Drive)などにより実現できる。図1に示したように、記憶部113は、RAM1131とROM1132を含んでもよい。また記憶部113(RAM1131)は、生体センサー131等のセンサーからのセンサー信号や、当該センサー信号に対して処理部112により何らかの処理が行われた結果として取得される情報を記憶してもよい。
不揮発性メモリー114は、複数の動作プログラムを記憶するメモリーであり、EEPROM(Electrically Erasable Programmable Read-Only Memory)やフラッシュメモリーといった半導体メモリー、或いはHDDなどにより実現できる。以下では、不揮発性メモリー114がフラッシュメモリーである例について説明する。
クロック供給部115は、複数のクロック信号が入力され、複数のクロック信号のうちの選択されたクロック信号を供給する。具体的には、クロック供給部115は、第1のプロセッサー110の外部に設けられる外部発振器160及び第1のプロセッサー110の内部に設けられる内部発振器116の少なくとも一方に基づくクロック信号を、第1のプロセッサー110の各部に対して供給する。
ここでの外部発振器160は、例えばRF回路におけるGNSS信号の処理(周波数変換)に用いられる発振器であってもよく、具体的には精度の高いTCXO(temperature compensated crystal oscillator)が用いられる。また内部発振器116は、例えばリングオシレーターである。ただし、外部発振器160、内部発振器116として、他の形式の発振器(発振回路)を用いることは妨げられない。
クロック周波数制御部1155は、生体信号、衛星信号、及び環境信号の少なくとも1つに基づいて、処理部112に供給するクロック信号のクロック周波数を変化させる制御を行う。クロック周波数制御部1155は、狭義には内部発振器116の発振周波数を変更する制御を行う。
また生体情報測定装置100(第1のプロセッサー110)は、不図示のベースバンド回路を含んでもよい。ベースバンド回路は、第2のインターフェース1112で取得した衛星信号に対する処理を行う回路である。ベースバンド回路は、例えば衛星信号に対して、フィルター処理、クロック変換処理、ドップラー除去処理等を行い、処理結果を記憶部113に書き込む。ベースバンド回路は、ハードウェアにより実現されることが想定されるが、ソフトウェアにより実現されることも妨げられない。また、GNSSの方式によっては、ベースバンド回路を省略することも妨げられない。
第2のプロセッサー120は、第1のプロセッサー110と電気的に接続され、第1のプロセッサー110によるセンサー信号(生体信号、体動信号、環境信号)の処理結果を取得する。第2のプロセッサー120は、CPUやDSP、ASIC等の種々のプロセッサーにより実現できる。
なお、第1のプロセッサー110と第2のプロセッサー120との間には、不図示のインターフェースが設けられてもよい。当該インターフェースは、I2CやSPI、UART(Universal Asynchronous Receiver Transmitter)等により実現できる。
第2のプロセッサー120は、生体情報測定装置100の表示部140及び通信部150の少なくとも一方を制御する。表示部140は、各種の表示画面を表示するためのものであり、例えば液晶ディスプレイや有機ELディスプレイなどにより実現できる。通信部150は、ネットワークを介して、生体情報測定装置100とは異なる外部機器との通信を行う。ここでのネットワークはWAN(Wide Area Network)やLAN(Local Area Network)、Bluetooth(登録商標)、NFC(Near field radio communication)などにより実現でき、有線・無線を問わない。
生体センサー131は、脈センサー、動脈血酸素飽和度センサー、温度(体温)センサー等により実現できる。体動センサー132は、加速度センサー、ジャイロセンサー、気圧センサー、地磁気センサー等により実現できる。環境センサー133は、温度(環境温)センサー、照度センサー、湿度センサー、紫外線センサー等により実現できる。
生体センサー131、体動センサー132及び環境センサー133は、上記のセンサーのいずれか1つであってもよいし、複数の組み合わせであってもよい。また、生体情報測定装置100では、体動センサー132や環境センサー133を省略してもよい。
本実施形態の手法では、センサー群(生体センサー131、体動センサー132、環境センサー133)からの情報の取得、処理を第1のプロセッサー110で行うことができ、第2のプロセッサー120(ホストCPU)を経由する必要がない。そのため、GNSS回路ブロックや第1のプロセッサー110の各部の制御を、第1のプロセッサー110内部で完結させる(ホストCPUの制御を必須としない)ことが可能になる。
また、第2のプロセッサー120から見れば、センサー群との間に第1のプロセッサー110を設けることで、所望の情報を適切な形式で取得できる。例えば第2のプロセッサー120は、加速度、角速度、位置(緯度経度)、標高、気圧等の物理量のうち、所望の情報を所望のデータ形式で取得できる。また第2のプロセッサー120は、単純な物理量だけでなく、当該物理量に基づき演算された情報を取得してもよい。例えば、ユーザーがどのような行動(運動)を行っているかの行動判定結果を表す情報を取得したり、ランニングにおけるピッチ、ストライド、滞空時間等の情報を取得してもよい。また、生体情報についても、生体センサー131の生データ(例えば脈波波形情報)だけでなく、当該生データから求められる情報(脈拍数や脈拍間隔、自律神経情報)等の取得が可能である。
図2は、本実施形態に係る第1のプロセッサー110のパッケージPKGの構成例である。図2に示したように、処理部112と、第1のインターフェース1111と、第2のインターフェース1112は、ワンチップの半導体チップSCに形成される。さらに第1のプロセッサー110が不揮発性メモリー114を含む場合、当該不揮発性メモリー114は、半導体チップSCにスタック(配置)されている。この場合、不揮発性メモリー114は、半導体チップSCに積層して設けられ、ワイヤーボンディングにより電気的に接続される。ここでの積層とは、パッケージPKGの厚み方向(図2の上下方向)に重なる位置に配置されることを表す。そして、半導体チップSCと不揮発性メモリー114(及びワイヤー、パッド領域)を樹脂等により封止することで、パッケージPKGが形成される。また、本実施形態では不揮発性メモリー114が必須ではなく、ワンチップの半導体チップSCにより第1のプロセッサー110が実現されてもよい。
このようにすれば、第1のプロセッサー110の少なくとも処理部112と第1のインターフェース1111と第2のインターフェース1112をワンチップにより形成することが可能になる。ただし望ましくは、第1のプロセッサー110のうちの不揮発性メモリー114を除く構成の全てが、ワンチップの半導体チップSCに形成される。さらに、第1のプロセッサー110に不揮発性メモリー114が含まれる場合には、当該不揮発性メモリー114を含んだ第1のプロセッサー110を、ワンパッケージ(パッケージPKG)で構成することが可能になる。生体情報測定装置100は、図2のパッケージと、メイン基板に設けられる第2のプロセッサー120(ホストCPU)と、センサー基板に設けられる生体センサー131等を電気的に接続することで構成される。ただし、同一基板上に第2のプロセッサー120と生体センサー131を設ける等、生体情報測定装置100の具体的な構成については種々の変形実施が可能である。
そのため、第1のプロセッサー110の各部の動作クロックの切り替えや、記憶部113(メモリー)の細かい電源制御が可能であり、安価且つ低消費電力なシステム構築が可能になる。また、上述したように第1のプロセッサー110は処理部112(サブCPU)を有するため、センサー信号に対する処理や、各部の制御において、生体情報測定装置100の第2のプロセッサー120(処理部、ホストCPU)の制御が必須とならない。
また本実施形態では、処理部112で衛星信号を処理することで、ユーザーの位置情報等を取得することが可能である。ただし、後述する時計表示モードのように、位置情報自体が不要であったり、低頻度で位置情報を取得すれば充分なケースも考えられる。その点、本実施形態の第1のプロセッサー110では、GNSS回路ブロック(第2のインターフェース1112、ベースバンド回路)の電源制御(オン/オフ制御)も可能になるため、さらなる消費電力の低減等も可能になる。
図3及び図4は、生体センサー131と第1のプロセッサー110との接続例を説明する図である。図3及び図4では、生体センサー131として、光電式の脈センサーを用いる例を説明する。
光電式の脈センサーは、発光部1311(例えばLED、light emitting diode)と受光部1312(例えばPD、Photodiode)を含む。発光部1311は、血液(狭義には血液に含まれるヘモグロビン)により吸収されやすい波長帯域の光を照射する。血流量が多くヘモグロビンの量も多ければ光の吸収量が大きく反射光の強度が小さくなる。逆に、血流量が少なくヘモグロビンの量も少なければ光の吸収量が小さく反射光の強度が大きくなる。この場合、受光部1312からの信号の変動(AC成分)が、血流量の変動を表すことになるため、脈センサーの受光部1312の出力信号は、脈に相関を有する信号となる。即ち、第1のプロセッサー110では、脈センサーからの信号に基づいて、脈拍数、脈拍間隔、或いはそれらの変動等の脈波情報を求めることが可能になる。
ただし、受光部1312の出力はアナログ信号(狭義にはアナログ電圧)であるため、処理部112(特にデジタル処理を行うCPU等)との間には、信号調整及びA/D変換を行うAFE(Analog Front End)が必要となる。本実施形態の第1のプロセッサー110は、AFEを含んでもよいし、外部のAFEを利用してもよい。
図3は、第1のプロセッサー110がAFE117を含む場合の、脈センサーと第1のプロセッサー110の接続例である。上述したように、脈センサーは発光部1311及び受光部1312を含む。受光部1312からの信号はAFE117を介して、処理部112に出力される。この場合、第1のインターフェース1111は、AFE117として実現されてもよい。AFE117は、増幅回路1171と、フィルター回路1172と、A/D変換回路1173とを含む。
なお、第1のプロセッサー110は、アナログスイッチ118を含んでもよい。アナログスイッチ118は、A/D変換回路1173でのサンプルホールド回路を構成するためのものである。ただし、A/D変換回路1173がサンプルホールド回路を含む場合もあり、その場合には第1のプロセッサー110のアナログスイッチ118は省略可能である。
また、脈センサーの発光部1311は、供給される電流値に応じた強度の光を照射する素子である。そのため、発光部1311の発光タイミングや発光強度を制御するため、第1のプロセッサー110は脈センサーの発光部1311に対してアナログ信号を出力するとよい。具体的には、第1のプロセッサー110はD/A変換回路119を含み、D/A変換回路119は、処理部112により設定されるデジタルデータをD/A変換し、アナログ信号を発光部1311に出力する。
図4は、第1のプロセッサー110が外部のAFE180を利用する場合の、脈センサーと第1のプロセッサー110の接続例である。AFE180は、フィルター回路182と、A/D変換回路183を含む。発光部1311からの信号は、AFE180に入力され、A/D変換回路183からのデジタルデータが、第1のインターフェース1111を介して、処理部112に入力される。この場合の第1のインターフェース1111は、I2CやSPI等のシリアルインターフェース等により実現できる。
なお図3、図4に示したように、AFEの有無によらず、第1のプロセッサー110はアナログスイッチ118、D/A変換回路119を含んでもよい。アナログスイッチ118やD/A変換回路119は比較的大きいため、第1のプロセッサー110(半導体チップSC)に取り込むことによって、生体情報測定装置100のサイズや部品点数の削減が可能になる。
なお、ここでは脈センサーと第1のプロセッサー110との接続例を示したが、センサー群に含まれる他のセンサーについても種々の形式による接続が可能である。
また本実施形態の手法は、上記の生体情報測定装置100を含むウェアラブル機器200に適用できる。ウェアラブル機器200は、ユーザーに装着され使用されるため、体動情報や生体情報の検出が容易である。つまり、ウェアラブル機器200には生体センサー131や体動センサー132を設けることが多く、センサー情報の処理の重要性が大きい。また、機器装着によるユーザー負担を軽減するため、ウェアラブル機器200は小型軽量であることが望ましい。そのため、バッテリー容量が小さいことが多く、消費電力の低減も重要となる。その点、本実施形態の生体情報測定装置100は、センサー情報の処理を低消費電力により実現できるため、ウェアラブル機器200との親和性が非常に高いと言える。
図5は、ウェアラブル機器200の外観図の例である。図5に示したように、ウェアラブル機器200は、ケース部30と、ケース部30をユーザーの身体(狭義には手首)に固定するためのバンド部10を含み、バンド部10には嵌合穴12と尾錠14が設けられる。尾錠14は、尾錠枠15及び係止部(突起棒)16から構成される。
図5は、嵌合穴12と係止部16を用いてバンド部10が固定された状態であるウェアラブル機器200を、バンド部10側の方向(ケース部30の面のうち装着状態において被検体側となる面側)から見た斜視図である。図5のウェアラブル機器200では、バンド部10に複数の嵌合穴12が設けられ、尾錠14の係止部16を、複数の嵌合穴12のいずれかに挿入することでユーザーへの装着が行われる。複数の嵌合穴12は、図5に示すようにバンド部10の長手方向に沿って設けられる。
ウェアラブル機器200のケース部30には、センサー部40が設けられる。センサー部40は、生体センサー131であり、体動センサー132や環境センサー133を含んでもよい。図5では、生体センサー131(特に光電式の脈センサー)を想定し、ケース部30のうち、ウェアラブル機器200の装着時に被検体側となる面にセンサー部40が設けられる例を示した。ただし、センサーが設けられる位置は図5には限定されない。例えば体動センサー132は、ケース部30の内部(特に、ケース部30に含まれるセンサー基板上)に設けられてもよい。
図6は、ユーザーが装着した状態でのウェアラブル機器200を、表示部50(図1の表示部140に対応)の設けられる側から見た図である。図6からわかるように、本実施形態に係るウェアラブル機器200は通常の腕時計の文字盤に相当する位置、あるいは数字やアイコンを視認可能な位置に表示部50を有する。ウェアラブル機器200の装着状態では、ケース部30のうちの図5に示した側の面が被検体に密着するとともに、表示部50は、ユーザーによる視認が容易な位置となる。
なお、図5、図6ではウェアラブル機器200のケース部30を基準として座標系を設定し、表示部50の表示面に交差する方向であって、表示部50の表示面側を表面とした場合の裏面から表面へと向かう方向をZ軸正方向としている。あるいは、センサー部40(狭義には図5に示した脈センサー)から表示部50に向かう方向、あるいは表示部50の表示面の法線方向においてケース部30から離れる方向をZ軸正方向と定義してもよい。ウェアラブル機器200が被検体に装着された状態では、上記Z軸正方向とは、被検体からケース部30へと向かう方向に相当する。また、Z軸に直交する2軸をXY軸とし、特にケース部30に対してバンド部10が取り付けられる方向をY軸に設定している。
また、図5、図6ではウェアラブル機器200として、バンド部10によりユーザーの腕(手首)に保持される機器の例を説明した。ただしウェアラブル機器200の形状や装着箇所はこれに限定されない。例えばウェアラブル機器200は、バンド部10により、足首等、ユーザーの他の部位に装着される機器であってもよいし、HMD(Head Mounted Display)等であってもよい。
2.動作モードと動作プログラム
本実施形態の生体情報測定装置100(第1のプロセッサー110)は、複数の動作モードを有し、当該複数の動作モードのいずれかで動作可能である。複数の動作モードは、時計表示モード、活動量計モード、ワークアウトモードのうちの少なくとも2つを含んでもよい。
ワークアウトモードとは、ユーザーがワークアウトを行っている場合に対応する動作モードである。ワークアウトとは、体を動かしたり、鍛えることを表し、例えばスポーツ等の運動を行うことに対応する。ワークアウトモードでは、ユーザーは激しく体を動かすし、それにより脈拍数等の生体活動の状態も大きく変化する。またワークアウトモードでは、ランニングにおいてピッチやストライドを演算するように、単純な体動の強度だけでなく、体動の方向や周波数といった詳細な情報を求めることも重要となる。
そのため、ワークアウトモードでは、第1のプロセッサー110は、以下の(1)〜(3)の少なくとも1つを行うとよい。なお、以下の「相対的に」とは、他の動作モードと比較した場合のことを表す。
(1)各センサーからのセンサー信号に基づく演算頻度を相対的に高くする
(2)用いるセンサーの種類を相対的に多くする
(3)センサー信号に基づく演算を相対的に負荷(精度)の高いものにする
図7は、動作モードと、各動作モードに対応する第1のプロセッサー110の処理内容の例を示す図である。より具体的には、図7は、第1のプロセッサー110の処理部112が、動作モードに対応する動作プログラム(アプリケーション)に従って動作した場合の処理内容を示す。
例えばワークアウトモードでは、第1のプロセッサー110は、脈センサーからのセンサー信号に基づく脈拍数の演算処理を1秒に1回実行する。図7の例では、このレートは時計表示モードに比べて高く、上記(1)が実現される。このようにすれば、生体活動の変化を詳細に分析することが可能になる。
また、ワークアウトモードでの第1のプロセッサー110は、GNSS、脈センサー、加速度センサー、ジャイロセンサー、気圧センサー、地磁気センサーからの全てのセンサー信号を処理対象とする。図7の例では、活動量計モード等の他のモードに比べて、処理対象のセンサー種類が多く、上記(2)が実現される。このようにすれば、多様なセンシング結果を処理対象に含めることが可能になる。
また、ワークアウトモードでは、第1のプロセッサー110は詳細な運動状態判定を行う。例えばGNSSや加速度センサー、ジャイロセンサーからのセンサー信号に基づく処理として、ピッチやストライド等を求める処理を行う。具体的には、GNSSからの情報や加速度センサー、ジャイロセンサーを用いた慣性航法により、ユーザーの位置情報を求める。さらに第1のプロセッサー110は、加速度センサーの加速度情報から垂直成分を抽出する処理や、垂直成分のピーク間隔や周波数から歩数を求める処理を行う。また第1のプロセッサー110は、距離(位置の変位)、歩数、時間等からピッチやストライドを求める処理を行う。図7の例では、演算処理の内容が活動量計モード等に比べて多く、上記(3)が実現される。このようにすれば、運動の有無や強度の大小だけでなく、より細かい運動状態の分析が可能になる。
なお、ワークアウトモードでの第1のプロセッサー110が、生体信号を対象として、相対的に負荷(精度)の高い処理を行ってもよいことは言うまでもない。例えば、脈拍数だけでなく、その変動を求めることで、自律神経状態を推定したり、不整脈リスクを推定するといった処理を追加することが可能である。
また、ワークアウトモードがさらに複数のモードに分割されることも妨げられない。例えば、ワークアウトの中で相対的に負荷の小さいワークアウトに対応する通常ワークアウトモードと、相対的に負荷の大きいワークアウトに対応する高負荷ワークアウトモードを設けてもよい。
通常ワークアウトモードとは、例えばウォーキング等の運動に対応し、高負荷ワークアウトモードとは例えば短距離のダッシュを含むインターバールトレーニングや、ウェイトトレーニング等に対応する。この場合、第1のプロセッサー110は、高負荷ワークアウトモードでは、通常ワークアウトモードに比べて、演算頻度、センサー種類、演算負荷(精度)の少なくとも1つを高く(多く)設定するとよい。
活動量計モードとは、ユーザーの活動の指標値(活動量)を測定するモードである。ここでの活動は、上記ワークアウトとは異なり、家事や仕事、学業等の日常生活を行うなかでの活動を表す。日常生活では、体動がワークアウトほど大きくなく、生体活動の状態も急激には変化しないことが想定される。そのため、活動量としては、例えば1日での歩数の合計値等が表示できればよく、ピッチやストライドの変化といった詳細な情報は必要性が低い。また、位置情報の精度も、ワークアウトモードに比べれば必要とならない。
よって活動量計モードでの第1のプロセッサー110は、図7に示すように、GNSSを処理対象から除外する。また活動量計モードでは、加速度センサー以外の体動センサー(ジャイロセンサー、気圧センサー、地磁気センサー等)も、処理対象から除外する。さらに第1のプロセッサー110は、慣性航法の演算や、ピッチやストライドの演算を省略する。例えば活動量計モードの第1のプロセッサー110は、加速度値の大きさを運動強度を表す情報として求めたり、歩数のみの演算を行う。
また図7では、活動量計モードの第1のプロセッサー110が、脈拍数の演算をワークアウトモードと同様の頻度(例えば1秒に1回)で行う例を示したが、演算レートを下げたり、求める生体情報の種類に差を設けることも妨げられない。
また、活動量計モードとは別に睡眠モードを設けてもよい。睡眠モードとは、ユーザーが睡眠状態であると判定された場合に対応する動作モードである。睡眠状態では、家事等の日常生活を行う状態に比べてさらに体動が小さく、詳細な運動状態を判定する必要性も低い。そのため、睡眠モードでは、例えば脈拍数の演算を1分に1回(或いは5分に1回、10分に1回)といった低い頻度に抑える。加速度センサーからの加速度信号についても同様に演算レートを下げてもよいし、加速度信号自体を処理対象から除外してもよい。
時計表示モードとは、時刻表示を行うモードであり、ユーザーの生体情報や体動情報の測定を最小限に抑えるモードである。そのため、時計表示モードでの第1のプロセッサー110は、計時部から時刻情報を取得し、当該時刻情報を出力する処理を行う。ここでの計時部は、例えば生体情報測定装置100に設けられるリアルタイムクロック(RTC)であり、第1のプロセッサー110の内部、外部は問わない。
以上のように動作モードを設けることで、ユーザーの活動状態に応じた適切なセンサー情報の処理が可能になる。例えば、ワークアウトモードではユーザーの詳細な情報を検出可能であるし、活動量計モードや時計表示モードでは情報の取捨選択を行うことで処理負荷、消費電力を低減することが可能である。
そして、以上の動作モードの切り替えは、生体信号に基づいて行われてもよい。具体的には、処理部112は、生体信号に基づいて、動作モードを切り替える処理を行う。或いは、動作モードの切り替えに体動情報を用いてもよい。処理部112は、生体信号及び体動信号の少なくとも一方に基づいて、動作モードを切り替える処理を行う。
このようにすれば、センサーにより検出されるユーザーの生体活動の状態、体動の状態に応じた動作モード切り替えが可能になるため、生体情報測定装置100は、ユーザーの状態に合わせた処理を行うことが可能になる。
例えば、生体情報を用いる場合、脈拍数の大きさに応じて動作モードを切り替えてもよい。一般的に、脈拍数はワークアウト状態では日常活動を行う状態に比べて大きくなる。また、時計表示モードの使用形態は種々考えられるが、例えばユーザーの活動が充分抑制されている状態(安静時等)に時計表示モードとすることが考えられる。
よって所与の閾値Th1、Th2(>Th1)を設定した場合に、処理部112は、脈拍数の値HRがHR<Th1であれば安静状態と判定し、動作モードを時計表示モードに設定する。同様に処理部112は、Th1≦HR<Th2であれば日常生活状態と判定し、動作モードを活動量計モードに設定する。処理部112は、Th2≦HRであればワークアウト状態と判定し、動作モードをワークアウトモードに設定する。
また、体動情報を用いる場合も同様であり、体動の大きさ(運動強度)は、安静状態<日常活動状態<ワークアウト状態となることが想定される。よって処理部112は、運動強度の大きさと所与の閾値との比較により、複数の動作モードのいずれを実行するかを決定すればよい。
また処理部112は、生体情報と体動情報を組み合わせて、複数の動作モードのいずれを実行するかを決定してもよい。さらにいえば、上記のような単純な閾値との比較ではなく、生体情報や体動情報の特徴量と、所与の基準特徴量とのマッチング処理等を実行してもよい。その他、ユーザーの状態判定(行動判定)は種々の手法が知られており、本実施形態ではそれらの手法を広く適用可能である。
なお、第1のプロセッサー110(処理部112)は、時計表示モードにおいても、動作モードの選択に用いる情報は取得できなくてはならない。例えば、上記のように動作モードの選択に脈拍数を用いるのであれば、第1のプロセッサー110は、時計表示モードであっても脈拍数の演算処理を行う必要がある。図7の例では、時計表示モードの第1のプロセッサー110は、1分に1回といった低い頻度で、脈拍数の演算を行う。
3.ソフトウェア構成例
上述した複数の動作モードは、それぞれ対応する動作プログラム(アプリケーション)により実現される。具体的には、第1のプロセッサー110の処理部112が、動作プログラムに従って動作することで、当該動作プログラムに対応する動作モードの処理が実行される。この際、本実施形態の第1のプロセッサー110は、不揮発性メモリー114を含まず、複数の動作プログラムがROM1132に記憶されてもよい。この場合、動作プログラムの追加、変更が困難であるため、予め必要と想定される動作プログラムを作り込む必要がある。
不揮発性メモリー114を有さない第1のプロセッサー110は、例えば図2のうちの半導体チップSCのようにワンチップで構成できるため、安価且つ小型での実現が可能である。ただし、生体情報測定装置100として、使用するセンサーや実行する処理(動作モード)が異なる複数の機器を用意する場合、各機器に応じた第1のプロセッサー110を用いる必要がある。
或いは、第1のプロセッサー110は、複数の動作モードの各動作モードに対応した複数の動作プログラムを記憶する不揮発性メモリー114を含んでもよい。不揮発性メモリー114には複数の動作プログラムが保持されており、追加、変更も可能であるため、どのような情報をどのような形式で出力するかを柔軟に設定可能である。即ち、生体情報測定装置100を構成する際に、センサー群の構成や、第2のプロセッサー120(ホストCPU)が第1のプロセッサー110から取得する情報の種類、形式を柔軟に設定することが可能となる。言い換えれば、不揮発性メモリー114を含む第1のプロセッサー110を用いることで、多様な生体情報測定装置100を容易に実現することができ、且つ当該生体情報測定装置100のコストや消費電力の抑止、部品点数の削減等も可能になる。
以下、図1のハードウェア構成を前提として、生体情報測定装置100(第1のプロセッサー110)のソフトウェアレベルでの構成例を説明する。以下、第1の実施形態、第2の実施形態及び変形例について説明する。
3.1 第1の実施形態
上述したように、ハードウェアとしては、生体情報測定装置100等に設けられるセンサー群(生体センサー131、体動センサー132等)と、第1のプロセッサー110の記憶部113(RAM1131、ROM1132)、不揮発性メモリー114、処理部112が設けられる。
図8は、第1の実施形態のソフトウェア構成例である。不揮発性メモリー114には、OS(Operating System)を含むソフトウェアSWと、SW上で動作可能なサブモジュールSM1〜SMkが記憶される。ここでkは2以上の整数である。RAM1131には、ソフトウェアSWと、SM1〜SMkのうちの選択されたサブモジュールがロードされる。
ここでサブモジュールSM1〜SMkは、センサー信号に基づく処理を行うモジュールを含む。例えば、脈センサーからの情報を取得し脈拍数を演算するモジュールや、加速度センサーからの情報を取得しユーザーの行動情報を演算するモジュールが考えられる。なお、行動情報の演算モジュールが、歩数演算モジュール、ピッチ演算モジュール、ストライド演算モジュール等に分割されることは妨げられない。また、サブモジュールSM1〜SMkの一部に、センサー情報を処理対象としない汎用処理を行うモジュールが含まれることは妨げられない。
本実施形態の複数の動作プログラムの各動作プログラムは、サブモジュールSM1〜SMkの1又は複数の組み合わせにより実現される。例えば生体情報測定装置100(第1のプロセッサー110)が第1の動作モードで動作する際には、RAM1131には、第1の動作モードに対応する第1の動作プログラムがロードされ、処理部112は第1の動作プログラムに従うことで、第1の動作モードでの動作を行う。より具体的には、RAM1131には、サブモジュールSM1〜SMkのうち、第1の動作モードにおいて実行対象となる処理に対応した1又は複数のサブモジュールがロードされることになる。
他の動作プログラムについても同様に、対応するサブモジュールを不揮発性メモリー114からRAM1131にロードし、ロードされたサブモジュールを利用して、処理部112が動作する。
サブモジュールの切り替えは、処理内容が増える(減る)ごとにRAM1131にロードするサブモジュールを追加(削除)する制御、或いはロード済みのサブモジュールを他のサブモジュールに置き換える制御により実現できる。
動作モードの変更、即ち動作プログラムの切り替えは、不揮発性メモリー114に記憶され、RAM1131にロードされて実行されるソフトウェアSW(OS)により行われる。具体的には、処理部112がSWに従って動作することで、動作プログラムを切り替える処理を行う。
上述したように、生体信号及び体動信号の少なくとも一方に基づいて、RAM1131にロードされる動作プログラムが切り替わってもよい。例えば、動作プログラム(サブモジュール)により生体信号に基づく情報が取得(演算)され、SWは取得された情報を定期的にチェックする。そして、当該情報が所与の切り替え条件を満たしたと判定した場合に、SWはRAM1131にロードする動作プログラム(サブモジュール)を切り替える処理を行う。具体的な動作の流れについては、図11〜図13のフローチャートを用いて後述する。
また、以上では複数の動作プログラムは不揮発性メモリー114に記憶されるものとしたが、ROM1132に所与の動作プログラムSW0が記憶されてもよい。ROM1132に記憶される動作プログラムがいずれの動作モードに対応するかは任意である。例えばワークアウトモードに対応する動作プログラムを上述したように不揮発性メモリー114に記憶し、活動量計モードや時計表示モードに対応する動作プログラムをSW0としてROM1132に記憶してもよい。或いは、生体情報測定装置100の起動時に実行される起動モードに対応する動作プログラム(ブートローダー)を、ROM1132に記憶してもよい。ROM1132に記憶される動作プログラムは、1つに限定されず、複数の動作モードに対応する複数の動作プログラムが記憶されてもよい。
そして、動作モード(動作プログラム)を切り替えるソフトウェアSWは、不揮発性メモリー114からRAM1131にロードされる動作プログラムと、ROM1132に記憶される動作プログラムSW0のいずれかを選択する。即ち、処理部112は、ROM1132に記憶された動作プログラムと、RAM1131にロードされた動作プログラムのいずれかにより動作する。
このようにすれば、不揮発性メモリー114に記憶される複数の動作プログラムに加え、ROM1132に記憶される動作プログラムも選択対象とすることができる。例えば、汎用性が高い動作モードや、拡張の必要性が低い動作モードについては、あらかじめROM1132に作り込んでおいて実行することが可能になる。拡張の必要性が低い動作モードとは、例えば時計表示モードのように、生体情報測定装置100を利用するユーザーによる書き換えが想定されない動作モードを表す。
3.2 第2の実施形態
図9は、第2の実施形態のソフトウェア構成例である。不揮発性メモリー114には、ファームウェアFW1〜FWmと、動作プログラムSW1〜SWnが記憶される。ROM1132には、アプリチェンジャーと、コモンライブラリーが記憶される。RAM1131には、複数の動作プログラムのうち、選択された動作プログラムSWi(iは1以上n以下の整数)がロードされる。処理部112は、RAM1131にロードされた動作プログラムSWiに従い動作する。
ファームウェアFW1〜FWmは、第1〜第4のインターフェース1111〜1114を介してGNSS、センサー群から送信されてくるセンサー信号を取得するとともに、より上位のソフトウェアで利用可能なデータ形式で出力する。ファームウェアFW1〜FWmは、具体的には各センサーに対応して設けられる。図9の例であれば、ファームウェアFW1はGNSSに対応するファームウェアであり、GNSS信号(アンテナが受信し、RF回路、ベースバンド回路による変換処理を介して出力される信号)を取得、出力する。同様に、ファームウェアFW2〜FW6は、それぞれ脈センサーからの脈信号、加速度センサーからの加速度信号、ジャイロセンサーからの角速度信号、気圧センサーからの気圧信号、地磁気センサーからの地磁気信号を取得、出力する。この場合、上記mは、取得対象のセンサー信号の種類数に対応する大きさの整数であり、図9ではm=6の例を示している。
ファームウェアFW1〜FWmは、例えばセンサーの出力レートに応じた頻度でセンサー信号を取得し、当該センサー信号を取得時刻情報と対応付けて記憶(出力)する処理を行う。ここでの取得時刻情報は、UTC(Coordinated Universal Time)やJST(Japan Standard Time)等の絶対時刻であってもよいし、タイムスタンプ等の情報であってもよい。またファームウェアFW1〜FWmがデータ変換等の処理を行うことは妨げられない。
動作プログラムSW1〜SWnは、ファームウェアFW1〜FWmにより取得されたセンサー信号に基づき動作する(処理部112を動作させる)ためのソフトウェアである。上記nは、動作モードの数に対応する大きさの整数である。動作モードの例、及び各動作モードでの処理の例については上述したため、詳細な説明は省略する。例えばSW1はワークアウトモードに対応する動作プログラムであり、SW2は活動量計モードに対応する動作プログラムであり、SW3は時計表示モードに対応する動作プログラムである。
第2の実施形態では、動作モードの変更、即ち動作プログラムの切り替えは、ROM1132に記憶されるアプリチェンジャーにより行われる。具体的には、処理部112がアプリチェンジャーに従って動作することで、動作プログラムを切り替える処理を行う。即ち、動作プログラムの切り替えは、第1の実施形態のようにRAM領域のソフトウェアにより実行されてもよいし、第2の実施形態のようにROM領域のソフトウェアにより実行されてもよい。
なお、図7からもわかるように、複数の動作プログラムにおいて共通に実行される処理が存在する。図7の例であれば、脈センサーからの情報(FW2の出力)に基づく脈拍数の演算は、ワークアウトモード、活動量計モード、時計表示モードのいずれでも行われる。或いは、加速度センサーからの情報(FW3の出力)に基づく歩数の演算は、ワークアウトモードと活動量計モードで共通に実行される。
このように、汎用性の高い処理、重要度の高い処理は,ライブラリー(ソフトウェアライブラリー)として管理してもよい。図9の例では、ROM1132には、コモンライブラリーが記憶される。コモンライブラリーは、上述したような汎用性、重要度の高い処理を複数の動作プログラムにおいて共有するためのライブラリーである。コモンライブラリーは、例えばAPI(Application Programming Interface)であってもよい。コモンライブラリー(API)は、複数の動作プログラム(SW1〜SWn)のいずれにおいても利用する(コールする)ことが可能である。
また、図9ではファームウェア(FW1〜FWm)と動作プログラム(SW1〜SWn)の2層の階層構造を用いる例を示したが、これには限定されない。例えば、ファームウェアと動作プログラムの中間層となるソフトウェアを用いてもよい。当該ソフトウェアでは、例えば複数のセンサーからの情報を統合して行う処理であって、汎用性の高い処理が実行される。このようにすれば、汎用性が高い処理を当該中間層のソフトウェアに委ねることができるため、動作プログラムの実装を容易にすることが可能になる。また、階層構造は2層や3層に限定されず、4層以上に拡張することも可能である。
3.3 変形例
本実施形態のソフトウェア構成は種々の変形実施が可能である。例えば、第1の実施形態と第2の実施形態を組み合わせてもよい。具体的には、第1の実施形態のROM1132に、第2の実施形態で説明したコモンライブラリーを記憶してもよい。その他、一方の実施形態の構成を他方の実施形態に組み込む変形実施が可能である。
また本実施形態の手法は、処理部(プロセッサー)と、生体センサー131からの生体信号を取得するインターフェースと、複数の動作モードに対応する複数の動作プログラムを記憶する不揮発性メモリー(Flash)と、記憶部(RAM,Random Access Memory)と、を含むセンサー情報処理装置に適用できる。ここで、動作プログラムは、センサー群からのセンサー情報に基づいて動作するプログラムであり、複数の動作プログラムの中から選択された動作プログラムが記憶部にロードされる。そして、処理部は、記憶部にロードされた動作プログラムにより動作する。
ここでの処理部は、図1の処理部112に対応する。インターフェースは、第1のインターフェース1111に対応する。不揮発性メモリーは、図1の不揮発性メモリー114に対応する。記憶部は、RAM1131に対応する。ただし、センサー情報処理装置は、体動センサー132や環境センサー133等、生体センサー131以外のセンサーからのセンサー信号(センサー情報)を取得してもよい。その場合、上記インターフェースは、第1のインターフェース1111、第3のインターフェース1113、第4のインターフェース1114の少なくとも1つに対応する。
即ち、ここでのセンサー情報処理装置とは、不揮発性メモリー114を含み、当該不揮発性メモリー114に記憶される複数の動作プログラムを切り替えて実行可能な形態の第1のプロセッサー110に対応する。
本実施形態の手法では、インターフェースを介して生体センサーからのセンサー情報(生体信号)を取得するとともに、処理部は不揮発性メモリーから記憶部にロードした動作プログラムよって動作することで、センサー情報に基づく処理を実行する。そのため、本実施形態に係るセンサー情報処理装置では、センサー情報の取得及び適切な処理を行うことが可能になる。また、不揮発性メモリーに記憶する動作プログラムは、追加や変更が可能であるため、新たなセンサーを処理対象に追加したり、センサー情報に対して異なる処理を行うことも容易である。言い換えれば、本実施形態の手法では拡張性の高いセンサー情報処理装置(及びセンサー情報処理装置を含む電子機器)を実現することが可能である。
4.動作プログラムに応じた回路制御
生体情報測定装置100(第1のプロセッサー110)では、動作プログラム(動作モード)に応じて、ハードウェア的な制御を切り替えてもよい。以下、クロック信号、電源、通信についてそれぞれ説明する。
4.1 クロック信号
図1に示したように、本実施形態の生体情報測定装置100(第1のプロセッサー110)は、複数のクロック信号が入力され、複数のクロック信号のうちの選択されたクロック信号を供給するクロック供給部115を含む。
図10はクロック供給部115の構成例である。本実施形態のクロック信号は、外部発振器160からの信号と、内部発振器116からの信号を含む。具体的には、図10に示したように、クロック供給部115には、外部発振器160(TCXO)に基づく第1のクロック信号及び第2のクロック信号と、内部発振器116(リングオシレーター)に基づく第3のクロック信号が入力される。
ここで第1のクロック信号は、外部発振器160からのクロック信号であり、第2のクロックは、外部発振器160からの信号を逓倍した信号である。即ち、クロック信号は、外部発振器160からの信号を逓倍した信号を含んでもよい。GNSSを用いる場合、アンテナからは1575.42MHz等の非常に高い周波数の信号が入力される。そのため、生体情報測定装置100では、当該信号と外部発振器160(TCXO)を用いることで、外部発振器160からの信号に比べて周波数の高い第2のクロック信号を生成することが可能である。
第3のクロック信号は、内部発振器116からのクロック信号であり、例えば第1のクロック信号と同程度の周波数の信号である。
クロック供給部115は、セレクターSE1〜SE5を含む。セレクターSE1には、第1のクロック信号と第3のクロック信号が入力される。セレクターSE2には、第1のクロック信号と第3のクロック信号が入力される。セレクターSE3には、第1〜第3のクロック信号が入力される。セレクターSE4には、セレクターSE1の出力信号と、セレクターSE2の出力信号が入力される。セレクターSE5には、セレクターSE1の出力信号と、セレクターSE3の出力信号が入力される。
本実施形態の生体情報測定装置100(第1のプロセッサー110)には、複数のクロックドメインが設定されてもよい。セレクターSE4の出力であるクロック信号は、第1のクロックドメインに対して供給される。セレクターSE5の出力であるクロック信号は、第2のクロックドメインに対して供給される。ここでの第1のクロックドメインは、例えばGNSSに対応する回路ブロック(ベースバンド回路)である。また、第2のクロックドメインは、第1のクロックドメインに比べて周波数の高いクロックでの動作が可能なドメインであり、例えば処理部112等が含まれる。
本実施形態のクロック供給部115は、起動時に供給するクロック信号の選択、及び起動後の動作時に供給するクロック信号の選択を行ってもよい。ここでの起動時とは、第1のプロセッサー110(或いは生体情報測定装置100全体)が停止状態、休止状態、スタンバイ状態から、通常動作状態へ移行する期間を表す。また動作時とは、起動が終了し、通常動作状態へ移行した後の機関を表す。
図10の例であれば、セレクターSE1が起動時に供給するクロック信号を選択する。また、セレクターSE2が第1のクロックドメインに対して、起動後の動作時に供給するクロック信号を選択する。また、セレクターSE3が第2のクロックドメインに対して、起動後の動作時に供給するクロック信号を選択する。
そして、セレクターSE4は、起動時にはセレクターSE1の出力信号を選択し、起動後の動作時にはセレクターSE2の出力信号を選択する。セレクターSE5は、起動時にはセレクターSE1の出力信号を選択し、起動後の動作時にはセレクターSE3の出力信号を選択する。このようにすれば、起動時と動作時とで、それぞれクロック信号の選択を行うことが可能になる。さらにいえば、当該クロック信号の選択を、複数のクロックドメインの各クロックドメインに対して実行することも可能になる。
起動時には、センサー信号(生体信号)の取得等も行われていないと考えられるため、例えば外部からのクロック選択信号等に基づいて、セレクターSE1でのクロック信号の選択を行えばよい。
また、クロック供給部115は、生体信号に基づいて、供給するクロック信号を選択してもよい。このようにすれば、状況に応じた適切なクロック信号の供給が可能になる。
例えば、生体信号に基づいてユーザーがワークアウト状態であると判定された場合、ソフトウェア的には上述したように、動作プログラムSW1がロードされ実行される。SW1での処理では、GNSSを含め各種センサーの情報が必要であるため、外部発振器160、及び第1、第2のクロック信号を生成する回路も動作していると考えられる。よってこの場合には、クロック供給部115は、第3のクロック信号ではなく、第1のクロック又は第2のクロック信号を選択、供給すればよい。また、上述した高負荷ワークアウトモードのように、特に高速でのデータ処理が必要となる場合には、第1のクロック信号ではなく、周波数の高い第2のクロック信号を選択、供給するとよい。
一方、活動量計モードや時計表示モードでは、GNSSが不要であり、後述するようにGNSS系の回路が動作していない可能性もある。その場合、第1,第2のクロック信号が入力されないため、クロック供給部115は、第3のクロック信号を選択、供給するとよい。
また、以上ではクロック供給部115から第1〜第3のクロック信号のいずれかが供給される例を示したが、他のクロック信号が供給されてもよい。例えば、GNSSで用いるクロック信号は、方式によって異なる(例えばGPSとGLONASSで異なる)ことが知られている。よって、クロック供給部115は、第1のクロックドメインに対して、第1のクロック信号とは異なる周波数のクロック信号を供給してもよい。
また、クロック供給部115にはTCXOとは異なる外部発振器からのクロック信号や、リアルタイムクロックをクロック源とするクロック信号が入力されてもよく、クロック供給部115は、それらのクロック信号を供給してもよい。
また、生体情報測定装置100の各部は、クロック供給部115から供給されるクロック信号をそのまま用いてもよいが、これには限定されず、当該クロック信号を分周して用いてもよい。例えば、上述した時計表示モードでは、低速で処理を行っても充分であるため、第3のクロック信号を1/2,1/4等に分周したクロック信号により、処理部112や記憶部113等が動作してもよい。この場合、処理部112等は、低速(分周したクロック信号)、通常(第1又は第3のクロック信号)、高速(第2のクロック信号)といった多段階での動作が可能となる。
4.2 電源供給
また、生体情報測定装置100(第1のプロセッサー110)は、動作モード(動作プログラム)に応じて、各部に対する電源供給を制御してもよい。例えば、動作プログラムには、各部に対する電源制御を行う処理が定義されており、処理部112が当該動作プログラムに従って動作することで、制御信号の出力等を行う。このようにすれば、実行対象の動作モードにおいて不要なハードウェアの動作を停止できるため、消費電力を低減できる。なお、以下では電源のオンオフについて説明するが、間欠動作を行う(動作頻度を下げる)等の変形実施も可能である。
まず第1のプロセッサー110(処理部112)は、記憶部113の電源制御を行ってもよい。ここでの記憶部113は、狭義にはRAM1131であり、RAM1131は、複数の記憶領域を有し、選択された動作モードに応じて、複数の記憶領域のうち、電源が供給される記憶領域が切り替わる。
例えば記憶部113は、それぞれ256kbの容量である記憶領域をp個(pは2以上の整数)有しており、処理部112は、そのうちのq個(qは1以上p以下の整数)の記憶領域に電源を供給する制御を行う。qの値、及びp個の記憶領域のうちのいずれのq個を選択するかの組み合わせについては、例えば各動作プログラムにおいて規定される。
このようにすれば、動作モードに応じて使用できる記憶部113の容量(上記例ではq×256kb)を変更できる。そのため、過剰なメモリーを動作させることで消費電力が増大してしまうことや、記憶領域が不足してしまうことを抑止し、状況に合わせたメモリー動作が可能になる。なお、具体的な記憶領域の構成については種々の変形実施が可能であり、各記憶領域の容量は256kbに限定されないし、記憶領域毎に容量が異なってもよい。
一般的に、動作プログラムで実行する処理が複雑化するほど、当該動作プログラムのロードに必要な領域、及び作業領域は増加する傾向にある。よって電源が供給される記憶領域の数は、時計表示モードで小さく、ワークアウトモードで大きくなると考えられる。例えば、qの値は、時計表示モード≦活動量計モード≦ワークアウトモードとする。
また図8を用いて上述したように、RAM1131にロードされる動作プログラム(サブモジュール)と、ROM1132に記憶される動作プログラムSW0のいずれかが選択され、選択された動作プログラムにより処理部112が動作する場合がある。この場合、選択されなかった側の記憶領域の電源をオフにしてもよい。具体的には、RAM1131にロードされる動作プログラム(サブモジュール)が実行される場合には、SW0に対応するROM領域の電源をオフにする。SW0が実行される場合には、RAM1131のうち、動作プログラムのロードされる領域の電源をオフにする。これらの制御は、上記第1の実施形態であればソフトウェアSW(具体的にはSWを実行する処理部112)により行われればよい。
また、図7に示したように、動作モードによってはGNSSの動作が不要な場合がある。その場合、第1のプロセッサー110のうちのGNSSに関する回路の動作を停止する。具体的には、少なくともベースバンド回路に対する電源供給を停止する。また、RF回路への電源供給を停止してもよい。また、第1のプロセッサー110の外部部品である外部発振器160に対して、動作を停止する制御信号を送信してもよい。
図7の例であれば、時計表示モード及び活動量計モードでは、GNSSの動作が不要である。よって、これらの動作モードに対応する動作プログラム(SW2、SW3)に従って動作することで、処理部112はGNSSの回路への電源供給を停止する制御を行う。一方、ワークアウトモードではGNSSの動作が必要となるため、動作プログラムSW1に従って動作することで、処理部112はGNSSの回路への電源供給を実行する制御を行う。
4.3 通信チャンネル
図7に示したように、動作モードに応じて処理対象となるセンサー信号が異なる。そのため、動作モードによってはそもそもセンサー信号を取得する必要のないセンサーが存在する可能性もある。
よって生体情報測定装置100(処理部112)は、センサー群との通信チャンネルのオンオフを制御してもよい。ここでの通信チャンネルとは、第1のインターフェース1111、第3のインターフェース1113及び第4のインターフェース1114に対応し、チャンネル数とは、上記インターフェースを用いて通信可能なセンサー数を表す。
例えば、上記インターフェースの最大チャンネル数がrである場合において、処理部112は、そのうちのsチャンネル(sは1以上r以下の整数)を有効にし、残りを無効にする制御を行う。例えば、上記インターフェースが6(r=6)チャンネルである場合に、有効チャンネルを3チャンネルと6チャンネル(s=3又はs=6)とで切り替えてもよい。
図7の例であれば、活動量計モードでは、第1のプロセッサー110は、脈センサー及び加速度センサーとの通信を行えればよい。つまり通信チャンネルは2チャンネル有れば足りるため、これらの動作モードに対応する動作プログラム(SW2、SW3)に従って動作することで、処理部112は有効な通信チャンネルを3チャンネルとする。
一方、ワークアウトモードでは、脈センサーと加速度センサーに加えて、気圧センサーや地磁気センサー、ジャイロセンサーからの情報も取得する必要があり、3チャンネルでは不足する。よってワークアウトモードに対応する動作プログラムSW1に従って動作することで、処理部112は有効な通信チャンネルを6チャンネルに設定する制御を行う。
このようにすれば、必要なセンサー信号の数に応じて通信チャンネルの制御を切り替えることができ、通信による消費電力を低減すること等が可能になる。
なお、以上では通信チャンネル数を2段階で切り替える例を示したが、3段階以上の段階で切り替えてもよいことはいうまでもない。
4.4 クロック信号制御の変形例
図10では、クロック供給部115が、第1〜第3のクロック信号のうちのいずれかのクロック信号を、生体情報測定装置100の各部(狭義には処理部112)に供給する例を示した。内部発振器116に基づく第3のクロック信号の周波数は、例えば所与の固定値(26MHz等)である。
しかし本実施形態で想定するウェアラブル機器等の小型軽量の機器では、低消費電力化が重要であり、例えばμアンペアオーダーでの低消費電力化が求められる。そのため、第1のプロセッサー110は、図1に示したように、生体信号、衛星信号、及び環境センサー133からの環境信号の少なくとも1つに基づいて、処理部112に供給するクロック信号のクロック周波数を変化させるクロック周波数制御部1155を含む。クロック信号の周波数を生体信号等に応じて柔軟に変更することで、さらなる低消費電力化が可能になる。
具体的には、クロック周波数制御部1155は、内部発振器116の発振周波数を制御することで、クロック周波数を変化させる。このようにすれば、内部発振器116に対する制御により、クロック信号の周波数を柔軟に変化させることが可能になる。以下、内部発振器116(リングオシレーター)の具体例、周波数を変化させる制御の例、及び周波数変化に伴うノイズの発生(グリッジの発生)を抑制する手法について説明する。
4.4.1 内部発振器の構成例
図15は、内部発振器116(リングオシレーター)の構成例である。内部発振器116は、遅延素子D1〜D6と、スイッチ素子S2〜S5と、切り替えタイミング制御部1161とを含む。遅延素子D1の出力端は、遅延素子D2の入力端に接続される。D2〜D6についても同様に、前段の遅延素子の出力端が次段の遅延素子の入力端に接続される。スイッチ素子S2〜S5は、それぞれ遅延素子D2〜D5の出力端と、遅延素子D1の入力端の間に設けられる。
切り替えタイミング制御部1161は、クロック周波数制御部1155からの制御信号を受信し、当該制御信号に基づいて、内部発振器116の発振周波数を制御する。具体的には、切り替えタイミング制御部1161は、スイッチ素子S2〜S5のオンオフを制御する。なお、切り替えタイミング制御部1161は、ノイズ(グリッジ)の発生を抑止するために、周波数の切り替えタイミング(スイッチ素子の切替タイミング)を調整する処理を行ってもよい。ノイズ抑制の詳細については後述する。
スイッチ素子S2がオン、S3〜S5がオフの場合、遅延素子D2の出力端が、遅延素子D1の入力端に接続され、D1及びD2がリング状に連結されることで、リングオシレーターが構成される。例えば、D1はNAND回路であり、D2は偶数個(狭義には2個)のNOT回路(インバーター)であり、遅延素子D1には、不図示のイネーブル信号が入力される。D1及びD2による信号の遅延時間をτ2とした場合、内部発振器116から出力されるクロック信号の周期は2×τ2となり、発振周波数f2は、f2=1/(2×τ2)となる。
スイッチ素子S3がオン、S2、S4及びS5がオフの場合、遅延素子D3の出力端が、遅延素子D1の入力端に接続され、D1〜D3がリング状に連結されることで、リングオシレーターが構成される。D1〜D3による信号の遅延時間をτ3とした場合、クロック信号の周波数f3は、f3=1/(2×τ3)となる。τ3>τ2であるため、f2>f3となる。
同様に、スイッチ素子S4のみをオンにした場合、スイッチ素子S5のみをオンにした場合にも、遅延時間が変化するため、クロック信号の周波数を変更できる。つまり、スイッチ素子S2〜S5のオンオフを制御することで(遅延素子の段数を変更することで)、内部発振器116の発振周波数を変化させることが可能である。なお、ここでは遅延素子として、NAND回路やNOT回路を用いる例を示したが、作動増幅器等の他の素子を遅延素子として用いてもよい。
また、内部発振器116の構成自体も図15に限定されない。図16は、内部発振器116の他の構成例である。図16の内部発振器116は、遅延素子D10〜D19と、スイッチ素子S11〜S16と、切り替えタイミング制御部1161と、分周回路1162と、を含む。例えば、D10はNAND回路であり、D11〜D19は偶数個のNOT回路である。
図16の例では、少なくともD10、及びD17〜D19の4つの遅延素子がリング状に連結されることでリングオシレーターが構成される。スイッチ素子S11は、一端が遅延素子D11の出力端、又は入力端に接続される。スイッチ素子S11の一端が遅延素子D11の出力端に接続された場合、遅延素子D11がリングを形成する素子となるため、信号の遅延時間がD11の遅延時間分だけ増大する。一方、スイッチ素子S11の一端が遅延素子D11の入力端に接続された場合、遅延素子D11がリングを形成しないため、D11の遅延時間は発振周波数に影響を与えない。スイッチ素子S12〜S16についても同様であり、それぞれ遅延素子D12〜D16がリングを形成するか否かを制御するスイッチとして機能する。
図16の構成を用いた場合も、切り替えタイミング制御部1161によるスイッチ素子S11〜S16の制御により、遅延時間の変更、即ち内部発振器116の発振周波数を変化させる制御が可能になる。図16では、遅延素子D17の出力信号、及び分周回路1162の出力信号をクロック信号として出力する例を示しているが、分周回路1162は省略可能である。或いは、図15に分周回路を追加する変形実施も可能である。
なお、図15及び図16では、遅延素子の段数を変更することで発振周波数を変化させる手法を説明したが、内部発振器116は、電圧を制御することで発振周波数を変化させる構成であってもよい。
4.4.2 周波数の変更制御
クロック周波数制御部1155は、生体信号等を用いることで、状況に応じた周波数の制御を行う。具体的には、動作モードに応じてクロック信号の周波数を変化させる。
例えばクロック周波数制御部1155は、時計表示モードでは、周波数を最低値(例えば1MHz程度)に落とす。図7に示したように、時計表示モードでは生体信号の取得、演算は低頻度(低精度)でよく、クロック周波数が低くても問題が生じにくい。
例えば処理部112は、ユーザーが就寝状態(睡眠状態)にあると判定された場合に時計表示モードに移行し、クロック周波数制御部1155は、動作モードの移行をトリガーとして、内部発振器116の発振周波数を低く変更する制御を行う。就寝状態の判定は、生体情報が所定閾値以下であるか否かを判定すればよい。また、時計表示モードへの移行前は、加速度信号やGNSSの信号が取得可能である場合もあるため、処理部112は、体動信号や衛星信号、或いはその他の環境信号を用いて、就寝状態を判定してもよい。例えば処理部112は、体動の大きさが所定値以下であり、且つ衛星信号に基づいてユーザーが室内にいると判定された場合に、就寝状態と判定する。
またクロック周波数制御部1155は、活動量計モードでは、周波数を中間的な値(例えば10MHz程度)に設定する。例えば処理部112は、ユーザーが起床しているが、ワークアウトのような激しい活動を行っていないと判定された場合に、活動量計モードに移行する。クロック周波数制御部1155は、動作モードの移行をトリガーとして、内部発振器116の発振周波数を変更する制御を行う。
例えば処理部112は、時計表示モードにおいて、生体情報(脈拍数)の値が所定閾値を超えた場合に、活動量計モードに移行する。或いは、時計表示モードにおいて間欠的に(例えば1分に1回等)体動情報を取得し、活動量計モードへの移行判定に体動情報を併用してもよい。体動情報に基づいて、ユーザーが移動や停止を繰り返している状態と判定された場合に、処理部112は活動量計モードへの移行処理を行う。
またクロック周波数制御部1155は、ワークアウトモードでは、周波数を相対的に高い周波数に設定する。例えば通常ワークアウトモードでの周波数が16MHzであり、高負荷ワークアウトモードでの周波数が26MHzである。
通常、ワークアウトモードでは、GNSSがオンであり、外部発振器160からのクロック信号(第1のクロック信号又は第2のクロック信号)を取得可能であることが想定される。しかし、ジムでの運動等、室内でワークアウトが行われる場合、衛星信号を受信できない状態が継続される。ウェアラブル機器の低消費電力化を考慮すれば、所定回数(所定時間)の衛星信号の受信失敗をトリガーとして、衛星信号の受信を停止する制御、即ち、外部発振器160を停止する制御が行われる場合もある。例えば、処理部112は、外部発振器160の動作(及び衛星信号の受信)を停止したり、間欠的に(1分に1回、或いは10分に1回等)に実行する処理を行う。この場合、ワークアウトモードであっても、第1のプロセッサー110の各部に対して、内部発振器116に基づくクロック信号が供給される。つまり、ワークアウトモードにおいても、内部発振器116の発振周波数を変更する制御は必要となる場合があり、クロック周波数制御部1155により内部発振器116の発振周波数を制御することで、ワークアウトに適した周波数の高いクロック信号を供給することが可能になる。
また、屋外でのワークアウトで内部発振器116に基づくクロック信号を用いることも妨げられない。例えば、衛星信号に基づく測位の実行頻度が低くてもよい場合には、上述した例と同様に、外部発振器160の起動を間欠的に実行し、処理部112等へ内部発振器116に基づくクロック信号を供給する。この場合にも、クロック周波数制御部1155による内部発振器116の発振周波数の制御が重要となる。
また以上の手法を、上述したセンサー情報処理装置に適用する場合、センサー情報処理装置の処理部(処理部112)は、記憶部(例えばRAM1131)にロードされた動作プログラムに応じて、処理部に供給されるクロック信号のクロック周波数を変化させる処理を行う。
図9の例であれば、処理部112はアプリチェンジャーに従って動作することで、不揮発性メモリー(不揮発性メモリー114)から動作モードに対応した動作プログラムSWiをロードする。例えば、動作プログラムと、当該動作プログラムにおける内部発振器(内部発振器116)の発振周波数との対応付けが、アプリチェンジャー内で規定されている。処理部112がアプリチェンジャーに従って動作することで、ロード対象となる動作プログラムSWiに対応する周波数のクロック信号が供給されるように、内部発振器116の制御処理が実行される。具体的には、処理部112は、クロック周波数制御部1155に対して、発振周波数の変更を指示する処理を行う。
以上のように、内部発振器116の発振周波数は、動作モード(動作プログラム)に応じて変更される。ただし、1つの動作モードの中で、内部発振器116の発振周波数が変更されてもよい。
例えば、所与の動作モードで動作している状態において、クロック周波数制御部1155は、CPU(処理部112)に対する割り込みの有無に応じて周波数を変更する。脈拍数を求める処理は、例えば、周波数変換(FFT:fast Fourier transform)を行って脈周波数を求める処理により実現される。FFTでは、所定時間(例えば4秒や16秒)分の脈波信号を蓄積し、蓄積されたデータを対象として処理が行われる。この例では、信号の蓄積期間では処理負荷が相対的に低く、FFTの演算が実際に行われる演算期間では処理負荷が相対的に大きい。よって例えば、FFTを実行できるだけのデータが記憶部113に蓄積された場合に、ハードウェア割り込みが発生するように設定しておく。この場合、クロック周波数制御部1155は、割り込み発生時に周波数を高く変化させ(例えば10MHz)、FFTの演算期間終了後に周波数を低く変化させる(例えば1MHz)。より具体的には、動作プログラムは割り込みを受付可能に設定されており、割り込みが発生した場合に、当該割り込みに応じた処理として、内部発振器116の発振周波数を変更する処理を行う。このようにすれば、1つの動作モードの中でも、処理負荷に応じた発振周波数の制御が可能になり、さらなる低消費電力化が可能になる。なお、ここでの動作モードは例えば活動量計モードであるが、他の動作モード内で内部発振器116の発振周波数を変更することも可能である。
4.4.3 ノイズ発生の抑制
以上のように、クロック信号の周波数(内部発振器116の発振周波数)を変化させることで、状況に応じた柔軟な制御が可能になり、低消費電力化を実現できる。ただし、周波数を変更可能な回路では、周波数を切り替えるタイミングによっては、出力にグリッジノイズが発生することが広く知られている。クロック信号にグリッジが発生すると、当該クロック信号により動作する回路が誤作動を起こすおそれがある。
図17は、周波数の切り替え制御によりグリッジが発生することを説明する波形図である。図17のA1は周波数を制御する制御信号であり、図17の例では立ち上がり、及び立ち下がりが周波数の切り替えタイミングに対応する。制御信号は、上述したクロック周波数制御部1155から内部発振器116に対して出力される信号である。図17のA2は、制御信号をそのまま制御に用いた場合(例えば制御信号を直接スイッチ素子を切り替えるタップに供給した場合)のクロック信号を表す。図17のA31〜A33に示すように、周波数変更時の内部発振器116の状態によっては、グリッジ(極端に幅の狭いパルス)が発生する場合がある。
グリッジの発生を抑制するためには、例えば第1のプロセッサー110の各部を、以下の手順で動作させることが考えられる。まず、処理部112は、外部発振器160が起動しているか否かを判定し、外部発振器160が停止している場合には、外部発振器160を起動する。次に、クロック供給部115は、外部発振器160に基づくクロック信号(第1のクロック信号又は第2のクロック信号)を選択し、選択したクロック信号を第1のプロセッサー110の各部に供給する。その後、クロック周波数制御部1155が、内部発振器116の発振周波数を変化させる制御を実行する。内部発振器116の発振周波数が安定したら、クロック供給部115は、内部発振器116に基づくクロック信号(第3のクロック信号)を選択し、第1のプロセッサー110の各部に供給する。なお、内部発振器116の発振周波数を変更する際に、一旦、内部発振器116の動作を停止する制御が行われてもよい。以上の手順に従えば、グリッジを含むクロック信号が供給されることがないため、処理部112等の誤作動を抑制できる。
ただし、以上の例では、一時的に外部発振器160を動作させる必要がある。そのため、消費電力が増えてしまう。また、第1のプロセッサー110の各部に供給するクロック信号の変更制御や、各発振器のオンオフ制御等が必要になるため、制御が複雑化してしまう。
この点を考慮して、内部発振器116は、図15や図16に示したように、クロック周波数を変化させる際に、クロック信号のグリッジ発生を抑制するための切り替えタイミング制御を行う切り替えタイミング制御部(切り替えタイミング制御回路、論理回路)1161を含む。
クロック周波数制御部1155からの制御信号は、内部発振器116の状態を考慮していない。そのため、制御信号をそのまま周波数切り替え用のタップ(遅延回路の段数を切り替えるタップであり、例えばスイッチ素子のオンオフを切り替えるタップ)に接続した場合、切り替えタイミングによっては図17の例のようにグリッジが発生するおそれがある。その点、切り替えタイミング制御部1161により切り替えタイミングを適切に制御すれば、グリッジの発生を抑制できる。
グリッジが発生するか否かが内部発振器116の状態に依存することを考慮すれば、切り替えタイミング制御部1161には、制御信号だけでなく、内部発振器116の状態を表す状態判別用信号が入力される。状態判別用信号とは、内部発振器116(リングオシレーター)を構成するいずれかの遅延素子の出力信号であり、図15に示したように、内部発振器116の出力であるクロック信号(例えばD6の出力信号)である。ただし、状態判別用信号は、内部発振器116の他のノードの信号(例えばD1〜D5の出力信号)であってもよい。このようにすれば、内部発振器116の状態を考慮した上で、切り替えタイミングを決定できるため、グリッジの発生を抑制可能である。
図18は、本実施形態における周波数の切り替えタイミング制御を説明する波形図である。図18のB1はクロック周波数制御部1155からの制御信号を表し、B2が切り替えタイミング制御部1161が出力する信号(以下、内部制御信号と表記する)を表し、B3が内部制御信号により制御されるクロック信号を表す。
図18のB1に示すように、クロック周波数制御部1155から切り替え指示が行われるタイミング(制御信号の立ち上がり、立ち下がり)は内部発振器116の状態を考慮しておらず、場合によってはグリッジを発生させる。その点、切り替えタイミング制御部1161が出力する内部制御信号B2は、制御信号B1が変化した(例えばB11〜B13)としても即座に変化せず、グリッジが発生しないタイミング(例えばB21〜B23)まで待ってから変化する。図18のB3の例であれば、周波数切り替え前の信号がローレベル(且つ立ち上がりの直前)であり、且つ、周波数切り替え後の信号が、ローレベル(且つ立ち上がりの直前)となるタイミングを、周波数の切り替えタイミングとしている。
内部発振器116の現在の状態(狭義にはクロック信号の位相等)は、上述した状態判別用信号により判別可能である。また、内部発振器116の回路構成は既知であるため、切り替え前の回路構成、及び切り替え後の回路構成も既知である。そして、切り替え前の回路構成、切り替え後の回路構成、及び現在の内部発振器116の状態を組み合わせることで、周波数切り替え後の内部発振器116の状態(狭義には切り替え後のクロック信号)を予想することが可能である。切り替えタイミング制御部1161は、周波数切り替え前後のクロック信号の状態を考慮して、グリッジの発生しない適切な切り替えタイミングを決定する。
なお、切り替えタイミング制御部1161は、周波数切り替え後のクロック信号、及びグリッジの発生有無をその都度推定してもよいが、これには限定されない。例えば、切り替え前の周波数と、切り替え後の周波数が決まれば、グリッジが発生しないタイミングはあらかじめ演算可能である。具体的には、切り替えタイミング制御部1161では、周波数切り替え前のクロック信号の位相がこの位相範囲内であれば、周波数を切り替えてもグリッジが発生しない、といった位相範囲をあらかじめ推定しておくことが可能である。よって例えば、記憶部113は切り替え前後の周波数と、適切な切り替えタイミングとを対応付けるテーブルを保持しておき、切り替えタイミング制御部1161は当該テーブルを参照することで、適切な切り替えタイミングを決定してもよい。或いは、クロック周波数制御部1155を所与の論理回路により構成してもよい。例えば、状態判別用信号を適切に選択すれば、当該状態判別用信号と制御信号(B1)の論理演算により、内部制御信号B2を生成できる。この場合、切り替えタイミング制御部1161をシンプルな論理回路により実現することが可能である。
なお、切り替えタイミングは、狭義には図18の例に示したように、切り替え前のクロック信号と切り替え後のクロック信号がほぼ同位相(立ち上がりの直前)となるタイミングとするとよい。ただし、このタイミング以外にもグリッジが発生しないタイミングが存在するため、それらのタイミングを切り替えタイミングとすることは妨げられない。
5.処理の流れ
図11は本実施形態の生体情報測定装置100(第1のプロセッサー110)の処理を説明するフローチャートである。より具体的には、ROM1132に記憶されるアプリチェンジャーに基づいて、処理部112で実行される処理について説明する。なお、第1の実施形態として上述したように、図11の処理はRAM領域に記憶されるソフトウェアに基づき実行されてもよい。また、以下では生体信号として脈情報を用いる例について説明するが、これについても上述したとおり、種々の拡張が可能である。
この処理が開始されると、まず処理部112(アプリチェンジャー)は、起動時のハードウェア制御を実行する(ステップS101)。図11の例では、処理部112は、クロック供給部115に対して内部発振器116(リングオシレーター)からの信号である第3のクロック信号の供給を指示する。さらに、脈信号の検出に必要な回路、及び時刻機能をオンにし、GNSSやその他の構成についてはオフにする。
その後、処理部112は、脈信号を検出し動作プログラム(アプリケーション)の切り替え制御を行う。具体的には、ステップS102〜S110の脈情報検出ループを実行すればよい。
脈情報検出ループでは、処理部112は、アプリケーションが停止中であるか否か、即ち実行中の動作プログラムの有無を判定する(ステップS103)。ステップS103でNoの場合、即ちアクティブなアプリケーションがある場合には、アプリケーション終了処理を行う(ステップS104)。なお、アプリケーション終了処理は、アプリケーションを終了するか否かの判定を含み、ステップS104の処理が実行されたとしても、アプリケーションが終了せずに動作を継続する場合がある。
図12は、アプリケーション終了処理を説明するフローチャートである。この処理が開始されると、処理部112(アプリチェンジャー)は、脈情報に変化があるか否か、及び停止命令があるか否かを判定する(ステップS201)。脈情報の変化とは、具体的には動作プログラム(動作モード)を変更する必要がある程度の変化を表し、上述の例であれば閾値を超える脈拍数の変化を表す。また、停止命令とはアプリチェンジャー(より広義には生体情報測定装置100全体)の動作を停止する指示であり、ユーザーによる入力や第2のプロセッサー120(ホストCPU)での判定に基づく情報である。
ステップS201でNo、即ち脈情報に変化がなく、停止命令もない場合は、処理部112は、ステップS202〜S205の処理を省略して、図12の処理を終了する。即ち、この場合には、実行中のアプリケーションの動作が継続される。
一方、ステップS201でYes、即ち脈情報の変化と停止命令の少なくとも一方がある場合には、処理部112は、実行中のアプリケーションを終了する。脈情報に変化がある場合、実行する動作プログラムを切り替える必要がある。よって処理部112は、異なる動作プログラムの起動準備として、現在実行中の動作プログラムを終了する。また、停止命令がある場合には、実行中のアプリケーションを終了した上で、アプリチェンジャーを終了する必要がある。よって処理部112は、動作停止処理の一環として、現在実行中の動作プログラムを終了する。
具体的には、アプリチェンジャーは、別タスクとして動作しているアプリケーションに対して終了を指示し(ステップS202)、当該指示に従ってアプリケーションの動作が終了するまで、ステップS203〜S205のループを継続して待機する。ステップS204でNoと判定された場合、即ちアプリケーションの終了が完了したら、処理部112はループを抜けて図12の処理を終了する。
図11に戻って説明を続ける。ステップS103でYesの場合、又はステップS104の処理後に、処理部112は、停止命令がないか否かの判定を行い(ステップS105)、Noの場合、即ち停止命令がある場合には図11の処理を終了する。ステップS105でYesの場合には、脈情報に変化がないか否かを判定する(ステップS106)。
ステップS106でNoの場合、即ち脈情報に変化がある場合は、アプリケーション起動処理を行う(ステップS107)。
図13は、S107のアプリケーション起動処理を説明するフローチャートである。この処理が開始されると、処理部112(アプリチェンジャー)は、脈情報の判定を行う(ステップS301)。これは脈情報に基づいて、いずれの動作モード(動作プログラム、アプリケーション)を選択するかを判定する処理であり、上記の例であれば、処理部112は脈拍数と閾値の比較処理を行う。
そして処理部112は、選択された動作モードに対応する動作プログラムのプログラム情報をロードする。具体的には、処理部112は、不揮発性メモリー114から各動作プログラムのヘッダ情報を取得する(ステップS302)。
図14は、不揮発性メモリー114の動作プログラム保持フォーマットを説明する図である。不揮発性メモリー114には、ヘッダ情報と動作プログラムの本体が交互に記憶される。動作プログラムとしてSW1〜SW6の6つがある場合、まずSW1のヘッダ情報が記憶され、ヘッダ情報に続く記憶領域にSW1の本体が記憶される。SW1の本体に続く記憶領域には、SW2のヘッダ情報が記憶される。以下同様にSW6までの各ヘッダ情報及び動作プログラム本体が配置される。
ヘッダ情報には、動作プログラム本体のサイズ情報、RAM1131への書き込み先アドレス情報、ジャンプ先アドレス情報が記憶されている。なお、ジャンプ先アドレス情報とは、当該動作プログラムの実行開始位置を示すアドレスである。ヘッダ情報にはサイズ情報が含まれるため、図14の構成を用いることで、各動作プログラムのヘッダ位置が明確となる。例えば、SW1のヘッダ情報を読み込めばSW1本体のサイズがわかるため、SW2のヘッダ情報の記憶領域を知ることが可能である。ただし、図14は動作プログラムを保持するフォーマットの一例であり、他のフォーマットを用いることは妨げられない。
また処理部112は、ヘッダ情報に基づいて、対応する動作プログラム本体を不揮発性メモリー114から読み出す(ステップS302)。
その後、処理部112は、RAM1131にロードした動作プログラムに基づいて、各動作モードでの動作を実行する。例えば時計表示モードであれば、ステップS302で読み出した時計表示モードに対応する動作プログラムをRAM1131にロードし(ステップS303)、上述したように各種回路制御を行う(ステップS304)。時計表示モードであれば、時刻情報及び最低限の脈情報が取得できればよいため、クロック信号を分周する制御を実行する。回路制御が終了したら、ヘッダ情報のうちのジャンプ先アドレス情報に基づいて、所定アドレスから動作プログラムを実行することで、時計表示アプリケーションの動作を開始する(ステップS305)。アプリケーションの開始後は、当該アプリケーションをアプリチェンジャーとは異なるタスクとして動作させる(ステップS315)。
他の動作モードについても同様であり、処理部112は、動作プログラムをロードし(ステップS306、S309、S312)、回路制御を行い(ステップS307、S310、S313)、ジャンプ先アドレス情報に基づいて、各アプリケーションの動作を開始する(ステップS308、S311、S314)。なお、図13ではワークアウトモードとして、スポーツモード(通常ワークアウトモード)と、高速スポーツモード(高負荷ワークアウトモード)の2つが設定可能である例を示している。
活動量計モードでは、回路制御として加速度信号を取得するための通信チャンネルをオンにする制御を行う。
スポーツモードでは、回路制御として加速度信号、気圧信号、地磁気信号を取得するための通信チャンネルをオンにする制御を行う。また、GNSSに関連する各部の電源をオンにする制御を行う。
高速スポーツモードでは、回路制御として加速度信号、気圧信号、地磁気信号、ジャイロ信号を取得するための通信チャンネルをオンにする制御を行う。また、GNSSに関連する各部の電源をオンにする。また、クロック信号として相対的に周波数の高い第2のクロック信号を用いる制御を行ってもよい。
また本実施形態では、クロック周波数制御部1155により、動作モードに応じたクロック周波数の制御が行われてもよい。クロック周波数の制御は、例えば各アプリケーションの動作の開始前の回路制御(ステップS304、S307、S310、S313)において実行される。ステップS304では、処理部112は、クロック周波数制御部1155に対して、内部発振器116の発振周波数を相対的に低い周波数に変更する制御を指示する。ステップS307では、処理部112は、クロック周波数制御部1155に対して、内部発振器116の発振周波数を中間的な周波数に変更する制御を指示する。ステップS310、S313では、処理部112は、クロック周波数制御部1155に対して、内部発振器116の発振周波数を相対的に高い周波数に変更する制御を指示する。一例としては、ステップS304で設定される周波数は1MHzであり、ステップS307で設定される周波数は10MHzであり、ステップS310で設定される周波数は16MHzであり、ステップS313で設定される周波数は26MHzである。
また本実施形態では、アプリチェンジャーとは異なるタスクとして、ステップS315で動作を開始したアプリケーションにおいて、クロック周波数制御部1155によるクロック周波数の変更制御が行われてもよい。例えば上述した例のように、S315で実行が開始されたアプリケーション中でハードウェア割り込みを待ち受け、割り込みが検出された場合に、クロック周波数を変更する制御を行う。
図11に戻って説明を続ける。処理部112は、図13のアプリケーション開始処理(ステップS107)の終了後は、休止状態へ移行し、タイマー割り込みを待つ(ステップS108)。そして割り込みが入った場合に休止状態から復帰し(ステップS109)、脈波検出ループを継続する(ステップS110からステップS102に戻る)。また、ステップS106でYesの場合は、アプリケーション起動処理をスキップし、ステップS108へ移行する。
以上、本発明を適用した実施形態およびその変形例について説明したが、本発明は、各実施形態やその変形例そのままに限定されるものではなく、実施段階では、発明の要旨を逸脱しない範囲内で構成要素を変形して具体化することができる。また、上記した各実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明を形成することができる。例えば、各実施形態や変形例に記載した全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態や変形例で説明した構成要素を適宜組み合わせてもよい。また、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能である。