説明

センサノード及びセンサネットワークシステム

【課題】資源の限られたセンサノードに、より多く格納してセンシングデータの欠落を抑制する。
【解決手段】生体情報を測定するセンサ12と、前記センサ12を駆動してデータを取得するCPU28と、CPU28が取得した前記データを送信する無線通信部11と、CPU28と無線通信部11及びセンサ12に電力を供給する電池17と、を備えたセンサノードにおいて、前記データを格納するRAM25と、前記無線通信部11で送信ができないときに、RAM25のデータを圧縮する圧縮部と、前記圧縮されたデータを格納するフラッシュメモリ30とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、小型の無線機能付き生体情報端末などに用いられる、大容量波形データの記憶と、波形データのデータ圧縮技術に関する。
【背景技術】
【0002】
近年、病院や介護施設、家庭における医療及び健康管理等を目的として、生体情報センサ(ECG、脈拍、血圧、加速度)からの情報を、無線通信によって取得する端末が開発されている。
【0003】
例えば、特許文献1には、身体各部に装着したセンサで身体各部位の位置、姿勢の変化を測定し、測定したデータを身体に装着した無線通信装置により送信する行動管理システムが開示されている。
【0004】
また、特許文献2には、身体に装着した医療用無線端末が生理学的センサで生体情報を測定し、測定したデータを無線で送信し、これを受信するゲートウェイ装置がデータを中継し、インターネットを介して診療機関に伝送することにより、患者を監視するシステムが開示されている。
【0005】
さらに、特許文献3には、患者の身体に装着する医療端末機が使用者の健康状態を測定して診医療情報を生成し、これらの生成したデータを無線通信によりサーバなどに送信し、患者の監視を行うシステムが開示されている。また、特許文献3では、無線端末を通信可能範囲外で使用する場合に、センシングデータをパーソナルコンピュータ(PC)と互換性のあるフラッシュメモリに記憶し、PCへ回収している。
【0006】
長時間身体に装着する端末では小型、かつ、低消費電力のものが求められており、間欠的に起動してセンサを動かして結果を無線通信するという間欠動作により、消費電力を低減するセンサノードが知られている(例えば、非特許文献1)。このセンサノードでは、データを複数段にわたって中継することで、低消費電力でありながら広範囲な無線ネットワークを構築する。
【特許文献1】特開2005−352881号公報
【特許文献2】特表2006−520657号公報
【特許文献3】特表2005−514138号公報
【非特許文献1】「無線センサネットワークMOTE−2007」カタログ、クロスボー株式会社、「平成19年5月1日検索」、インターネット<URL:http://www.xbow.jp/mote2dot.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0007】
ところで、センサノードによって人体(あるいは生体)の状態を測定し、健康状態や運動状態をモニタするセンサネットワークシステムを構築する場合、連続的またはほぼ連続的に状態を測定し、測定したデータ(センシングデータ)を送信する必要がある。そして、センサノードの無線通信環境が悪化した場合や、無線通信が制限される環境等で送信が行えない状態では、測定したセンシングデータをセンサノード内に格納しておく必要がある。
【0008】
しかしながら、第1の課題として、上記従来の小型のセンサノードでは、使用可能な電力に限りがあるため、電波環境や使用者の状態により、通信の可否が著しく変化する問題がある。従って、連続したセンシングデータを得るために、モニタや診断用装置等へ確実に送信する技術が必要となる。
【0009】
特に小型のセンサノードにおいては、使用できるアンテナも限られている。小型化に最適なチップアンテナをセンサノードの基板表面に実装する場合を考えると、電波の指向性は強く偏る。このような条件で人が日常的に使用した場合、人の姿勢や周辺環境のため、直線的には無線通信可能な距離であっても無線送信は頻繁に失敗する。また、長時間にわたり無線通信可能範囲から離れることも考えられる。このような環境において、無線で連続的にセンサノードが測定したデータを確実に収集するためには、上記非特許文献1のように無線のデータを中継機により複数段にわたって中継して届けるマルチホップ技術などが有効であるが、中継機の設置などのコストを考慮すると、個人など小規模の応用には、適用が困難である。
【0010】
また、無線の電波出力が許されない環境もある。例えば、空港や飛行機内、病院などでは、一般的に電波を発する機器の使用が制限される。このような場合に、意図的にセンサノードの電源を切ると、同時にこの期間のセンシングデータを収集することができなくなっていた。
【0011】
したがって、無線通信が行えない環境では、センサノードが無線送信できない期間のデータをすべて送信するためには、メモリへ一時的に記憶する機能が必要である。
【0012】
しかしながら、一時的なデータ記憶とはいえ、これを長時間行うためには、センサノードに、大容量でありながら、頻繁な書き換えに適したメモリが不可欠である。そのため、センサノードに搭載するメモリの消費電力が重要である。例えば、フラッシュメモリなどは大容量で安価な不揮発性メモリであるが、センサノードへの応用では、書き換え時の消費電力が大きく、スタンバイ時のリーク電流もマイコンなどのスタンバイ時と比較して大きいため、センサノードの電池寿命を大幅に低下させる要因となる。そのため、消費電力を削減する書き換え、電源遮断方式が必要である。上記特許文献1〜3には、フラッシュメモリなどの不揮発性メモリを採用することが記載されてはいるが、フラッシュメモリの消費電力をどのように削減するか、という思想について示唆はなく、センサノードの電池寿命を低下させることになる。
【0013】
また、センサノードに搭載するフラッシュメモリの寿命も問題である。フラッシュメモリでは、書き換え可能な回数には限度があり、頻繁な書き換えで長期間使用することはできない。また、小型のセンサノードに搭載できるメモリは、大容量とはいえサイズやコストの面で制約がある。そのため、PCで一般的に使用されているフラッシュメモリの搭載はそのままでは困難である。そこで、一時的な記憶であっても、センシングデータの圧縮により効率化することが考えられる。
【0014】
そこで、第2の課題としてはセンサノードのコントローラ(マイコン)の限られた演算処理能力が問題である。センサノードに搭載されるマイコンはPCに搭載されるCPUと比べて処理能力が格段に劣るため、公知の一般的なデータ圧縮方式を適用すると、処理時間が長くなり、消費電力が大幅に増大する。例えば、特許文献2のようにセンサノードにおいて公知の手法によるデータ圧縮が提案されてはいるが、センサノードの電池寿命が大幅に低下するという問題が生じる。また、1回に圧縮するデータ量が100バイト程度の無線パケット単位であるため、PCで扱うデータファイルなどと比べて小さく、適用できる圧縮方式も限られる。そのため、簡単な処理でありながら、高効率な圧縮方式が不可欠である。
【0015】
特に、上記特許文献1及び特許文献3では、センシングデータをそのままフラッシュメモリに格納する構成であるため、無線通信が行えない期間のために大容量のフラッシュメモリが必要となる。このため、上述のようにセンサノードの電池寿命を低下させるのに加え、連続的に測定を行う場合では大量のセンシングデータをフラッシュメモリに書き込むため、書き換え回数が増大してフラッシュメモリの寿命を早めるという問題がある。
【0016】
そこで本発明は、上記問題点に鑑みてなされたもので、無線通信ができない期間のセンシングデータを、資源の限られたセンサノードに、より多く格納してセンシングデータの欠落を抑制することを目的とし、また、センシングデータを格納する不揮発性メモリの消費電力を抑制することを目的とする。さらに、センシングデータを格納する不揮発性メモリの使用期間を延長することを目的とする。
【課題を解決するための手段】
【0017】
本発明は、生体情報を測定するセンサと、前記センサを駆動してデータを取得する制御部と、前記制御部が取得した前記データを送信する無線通信部と、前記制御部と無線通信部及びセンサに電力を供給する電池と、を備えたセンサノードにおいて、
前記データを格納する揮発性記憶部と、前記無線通信部で送信ができないときに、前記揮発性記憶部のデータを圧縮する圧縮部と、前記圧縮されたデータを格納する不揮発性記憶部と、を備える。
【0018】
また、前記制御部は、前記不揮発性記憶部へアクセスする際に、前記不揮発性記憶部へ前記電力の供給を開始し、アクセスが終了した後に前記不揮発性記憶部への電力の供給を遮断するスイッチを備える。
【0019】
さらに、前記圧縮部は、前記データの差分値を演算する差分化部と、前記差分値を予め設定した可変長の符号に変換する符号部を有する。
【0020】
また、前記不揮発性記憶部は、所定の書き込み単位であるページを複数有し、前記制御部は、前記不揮発性記憶部へデータを書き込む際には、前記ページのうち先頭のページから終端のページへ向けて循環して順次ページを切り替える。
【発明の効果】
【0021】
したがって、本発明は、無線送信できなかったデータを圧縮してから不揮発性記憶部へ記憶させることで、長時間のセンシングデータでも欠けることなく確実に収集することが可能となる。
【0022】
また、不揮発性記憶部はアクセスするときにのみ電力を供給するようにしたので、スタンバイ時のリーク電流等を防いで、電池の消耗を抑制することができる。
【0023】
また、データの圧縮は、データの差分値を求め、この差分値を符号化する。生体の活動データである生体情報(例えば、加速度)は急激な時間変化が少ない上、1日のうちで動いていない情報、即ち差分値が0、が多いため、小さい差分値ほど出現頻度が高い。そして、この差分化したデータを符号化することで、より多くのデータをセンサノードに保持することができ、無線通信が行えない状態が続いても、センシングデータの欠損を抑制できる。
【0024】
また、不揮発性記憶部へデータを書き込む際には、先頭のページから終端のページへ向けて循環して順次ページを切り替えることにより、不揮発性記憶部内でのページ毎の書換え頻度を均等にし、特定のページに書き換えが集中するのを防いで、不揮発性記憶部の使用期間を増大することができる。
【発明を実施するための最良の形態】
【0025】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【0026】
図1は、第1の実施形態を示し、本発明を適用する腕時計型(または腕輪型)のセンサノード1を示す正面図で、図2は、図1のA−A矢示断面図である。
【0027】
図1において、センサノード1は、アンテナ13やセンサ、制御装置を格納するケース3と、ケース3を人体の腕に装着するバンドを備える。ケース3には、情報を表示する液晶表示装置(LCD)5と、予めプログラムされた特定の機能を実行するためのボタンスイッチ18、19が配置される。または、LCD5をタッチパネルで構成し、LCD5に表示された項目を選択して実行できる。アンテナ13は、位置を明示するため、図1に記載したが、実際には図2で示すように、ケース3の内部に配置された基板10上に配置される。図2において基板10のアンテナ13が取り付けられた面は、生体表面と反対側であり、LCD5と同じ面である。
【0028】
なお、以下の説明ではセンサノード1に搭載されて、生体情報を測定するセンサとしては、図中X−Y−Zの3軸の加速度をそれぞれ測定する加速度センサを採用した例を示す。
【0029】
図3は、センサノード1の基板10に取り付けられた電子回路のブロック図を示す。図3において、基板10には、後述のゲートウェイ40と通信を行うアンテナ13を備えた無線通信部(RF)11と、生体情報として加速度を測定する加速度センサ12と、加速度センサ12及び無線通信部11を制御するマイクロコンピュータ20と、マイクロコンピュータ20を周期的に起動するためのタイマや時計として機能するリアルタイムクロック(RTC)14と、各部に電力を供給する電池17と、書き換え可能な不揮発性メモリであるフラッシュメモリ30と、文字や波形を表示するLCD5と、加速度センサ12へ供給する電力を制御するスイッチ15と、フラッシュメモリ30へ供給する電力を制御するスイッチ16と、マイクロコンピュータ20に割り込みをかけて特定の処理を実行するボタンスイッチ18、19が配置される。
【0030】
マイクロコンピュータ20は、演算処理を実行するCPU28と、CPU28で実行するプログラムなどを格納する不揮発性メモリのROM24と、データなどを格納する揮発性メモリで構成されたRAM25と、RTC14からの信号(タイマ割り込み)に基づいてCPU28に割り込みをかける割り込み制御部(IRQ)29と、センサ12から出力されたアナログ信号をデジタル信号に変換するA/Dコンバータ23と、無線通信部11やフラッシュメモリ30等との間でシリアル信号にて信号の送受を行うシリアルコミュニケーションインターフェース(SCI)27と、無線通信部11とスイッチ15、16を制御するパラレルインターフェース(PIO)26と、マイクロコンピュータ20内の上記各部へクロックを供給する発振部(OSC)22とを含んで構成される。そして、マイクロコンピュータ20内の上記各部はシステムバス21を介して接続される。
【0031】
ROM24には、センサデータの容量を圧縮する圧縮プログラム61を格納しており、CPU28に読み出して実行する。
【0032】
フラッシュメモリ30は、図9で示すように、不揮発記憶部であるメモリセル32と、メモリセル32に書き込むデータ(または読み出す)を一時的に格納する揮発記憶部であるリードライトバッファ31で構成される。フラッシュメモリ30への電力の供給はスイッチ16により遮断可能である。
【0033】
図4は、本発明の腕輪型センサノード1を使用して、センサネットワークシステムを構築した例を示すシステム構成図である。
【0034】
図4において、基地局または中継装置として機能するゲートウェイ40はアンテナ44、及び無線通信部45を介して複数のセンサノード1と通信を行う。センサノード1は通信の開始時に時刻同期要求を送信する。これは各センサノード1の内部のRTC14の時刻を正しい時刻に設定し、センシングデータにタイムスタンプを付けるためである。センサノード1から時刻同期要求を受信したゲートウェイ40では、この要求が無線通信部45を介してCPU46に送られ、CPU46ではRTC49から正しい時刻情報を取得し、無線通信部45を介してセンサノード1へ送信する。センサノード1ではゲートウェイ40から受信した時刻情報をRTC14に正しい現在時刻として設定する。
【0035】
ゲートウェイ40は、各センサノード1から装着者の動きに応じたセンシングデータを含む無線パケットデータを受信し、CPU46は受信した無線パケットデータのセンシングデータが圧縮されていればROM47から解凍プログラム62を呼び出してセンシングデータを復号し、圧縮されていなければそのままネットワークアクセス部48へ受信した無線パケットデータを送り、ネットワーク41を介してサーバ43へ転送する。
【0036】
サーバ43は受信したセンシングデータまたは無線パケットデータから抽出したセンシングデータを格納し、クライアントが利用する計算機(PC)42からの要求に応じてセンシングデータを提供する。このため、サーバ43は、ゲートウェイ40と通信を行う通信部と、演算処理を行うプロセッサ(CPU)と、プログラムなどを記憶するメモリと、センシングデータを格納するストレージ装置とを備える。
【0037】
また、逆にサーバ43、PC42からセンサノード1へ任意のコマンドを送信し、実行することもできる。例えば、コマンドにより、センサノード1のセンシング周期や無線周波数の変更などが可能である。この場合、ネットワークから、ゲートウェイ40のネットワークアクセス部48を介して無線通信部45にコマンドを送信する。無線通信部45はセンサノードからのデータ送信要求を受信したときに、センサノード1にコマンドを送信する。センサノード1はコマンドの内容を実行する。
【0038】
図5は、図2に示したようにアンテナ13をケース3内に配置し、腕に装着した場合における電波出力の指向性を示す。図5の指向性は、生体表面と垂直の外向き(図中Z軸の上方)に集中しており、生体表面方向(図中Y軸下方)では大幅に減衰する。つまり、人の生活において、体や腕は動作によって頻繁に向きが変わるため、送信先であるゲートウェイ40のある方向に送信した電波が強く出力されるとは限らない。そのため、日常生活でこれを使用すると、送信先で受信する電波強度は小さく、もしくは受信に失敗する可能性が高くなることがわかる。
【0039】
図6は図1に示されるようにセンサノード1を腕に装着し、実際に一般家庭内で使用した場合のパケットエラーレート(無線送信失敗回数/無線送信回数)を示す。ゲートウェイ40は家庭内(広さ約50m2)の中心部に設置され、使用者はゲートウェイ40と同じ階で生活する。この場合、使用者はゲートウェイ40を中心として、直線的には通信可能距離内(50m以内)で生活しているが、パケットエラーは頻繁に発生している。これは図5に示した電波指向性と人の動きが原因であるほかに、無線LANや電子レンジなど同じ周波数を使う無線機器による電波干渉の影響も強いと考えられる。つまり、小型電池のみで、無線の電力も小さいセンサノードを実環境で使用した場合、通信距離に関わらず無線通信が失敗することが頻繁にあることを示している。
【0040】
そこで、本発明ではセンサノード1に頻繁に書き換え可能で大容量な記憶手段としてフラッシュメモリ30を備え、電波状態が悪いときや無線通信部11がOFFのときには無線パケットデータをフラッシュメモリ30へ一時的に記憶し、電波状態が良いときや無線通信部11がONとなったときにはフラッシュメモリ30へ記憶したセンシングデータをまとめて送信するという機能を備える。
【0041】
また、無線機器の使用が制限される場合には、図8に示すように、ボタンスイッチ18、19でセンサノード1を操作し、無線通信部11のみをOFF(またはON)にすることができる。無線通信部11がOFFの間も加速度センサ12によるセンシングは継続されるが、無線パケットデータは送信できないため、内部のメモリ(RAM25またはフラッシュメモリ30)に無線パケットデータを記憶する。この無線通信部11をOFFにすると、LCD5では図8で示すように、無線通信部11がOFFであることを示す表示が行われる。メモリに記憶されたデータは、無線機器の使用制限がなくなり、無線通信部11をONにした後にまとめて送信する。なお、センサノード1は、ボタンスイッチ18、19で所定の操作を行うことにより無線通信部11をONにすることができる。の無線通信部11をONにすると、LCD5では図7で示すように、無線通信部11がOFFであることを示す表示が行われる。
【0042】
図9は、上述したように電波状態が悪いときや、ユーザにより無線通信部11をOFFにした期間は無線パケットデータをフラッシュメモリ30へ一時的に記憶する機能を実現する機能を実現するための、RAM25及びフラッシュメモリ20への無線パケットデータの記憶、及び呼び出し制御を説明するためのブロック図である。
【0043】
センサノード1のマイクロコンピュータ20内のRAM25には、A/Dコンバータ23が出力したセンシングデータを一時的に格納するセンサデータバッファ53と、送信する無線パケットデータや他のデータを格納するRFバッファ52と、フラッシュメモリ30へ書き込むセンシングデータを一時的に格納するパケットバッファ54と、フラッシュメモリ30の読み込み位置を示すリードポインタ50と、フラッシュメモリ30の書き込み位置を示すライトポインタ51が設定される。
【0044】
加速度センサ12で測定されたセンシングデータは、センサデータバッファ53へ一旦格納された後、センシングデータの送信タイミングでCPU28がセンサデータバッファ53から読み出したセンシングデータから所定のフォーマットの無線パケットデータを生成してRFバッファ52へ格納する。そして、無線通信が可能な状態であればCPU28はRFバッファ52から無線パケットデータを読み出して無線通信部11からゲートウェイ40に送信する。
【0045】
一方、無線通信が行えない環境では、CPU28はRFバッファ52から読み出した無線パケットデータのセンシングデータに対して後述する差分化と符号化を施すことで圧縮してからRAM25のパケットバッファ54に蓄積する。例えば、フラッシュメモリ30の最小書き換え単位(以下、ページと呼ぶ)が1キロバイトの場合、フラッシュメモリ30のリードライトバッファ31、RAM25のパケットバッファ54も1キロバイトと同容量か、それ以下とするのが望ましい。同容量の場合、1パケットのサイズが100バイトの無線パケットデータは、パケットバッファ54に10個まで蓄積可能である。また、センシングデータが圧縮されたパケットであればさらにそれ以上の数の無線パケットデータをパケットバッファ54に蓄積可能である。フラッシュメモリ30は書き換え時の消費電力が大きいのに対し、RAM25は書き換えが高速で消費電力は小さいため、無線環境が頻繁に変化したときに無線パケットデータを読み書きするのに適している。
【0046】
次に、パケットバッファ54の空き容量が1パケットサイズ以下に少なくなるか、フラッシュメモリ30に未送信データがあり、パケットバッファ54の未送信データ(無線パケットデータ)が1パケットになった場合、フラッシュメモリ30へのアクセスが必要であるため、CPU28はパラレルインターフェース26を制御し、フラッシュメモリ30の電源を遮断しているスイッチ16を予めオンにする。このフラッシュメモリの起動には、数ms程度の待ち時間が必要である。
【0047】
そして、無線パケットデータの蓄積量がパケットバッファ54の限界に達すると、シリアルコミュニケーションインターフェース27を介してシリアル通信でフラッシュメモリ30のリードライトバッファ31に転送し、メモリセル32のページ34に書き込む。書き込み後は再びCPU28がパラレルインターフェース26を制御してスイッチ16をオフにし、フラッシュメモリのスタンバイ時のリーク電流を遮断する。
【0048】
また、逆にパケットバッファ54からすべての無線パケットデータが送信された場合、CPU28はシリアルコミュニケーションインターフェース27を介して、未送信の無線パケットデータをフラッシュメモリ30のメモリセル32のページ34からリードライトバッファ31に読み出した後、シリアル通信で受信し、パケットバッファ54に書き込む。無線パケットデータの読み出し完了後も再びCPU28がパラレルインターフェース26を制御してスイッチ16をオフにする。すなわち、読み書きを行わない期間はフラッシュメモリ30への電力供給を遮断しておくことにより、電池17の消耗を抑制することができる。
【0049】
このフラッシュメモリ30のページ34のページアドレス33のうち、読み出すアドレスと書き込むアドレスは、それぞれリードポインタ50、ライトポインタ51としてRAM25に記憶することで、フラッシュメモリのページ当りの書換え回数を効率的に削減する。
【0050】
リードポインタ50、ライトポインタ51のそれぞれの初期値はメモリセル32の先頭のアドレスであり、フラッシュメモリ30に未送信の無線パケットデータがない場合はリードポインタ50とライトポインタ51の値は同じである。CPU28はページを書き込む毎にライトポインタ51を1ずつ増やしていき、読み出しはリードポインタ50のアドレスから行う。CPU28は読み出し毎に、リードポインタ50も1ずつ増やしていき、記憶する。この結果、書き換えアドレスはメモリセル32の先頭から順送りに循環していき、メモリセル32内のそれぞれのページを書換える頻度は、ほぼすべて均等になり、一部のページに集中しない。
【0051】
図10、図11は、1キロバイトのデータ書き込み時のフラッシュメモリ30の消費電流の典型的な例を示す。図10は、フラッシュメモリ30の電源遮断を行わない従来例を示し、図11は、フラッシュメモリ30の電源遮断を実行する本発明の例を示す。
【0052】
図10において、フラッシュメモリ30の未使用時に電源遮断をしない場合、スタンバイ時に15μAのリーク電流を消費し続ける。ただし、スタンバイ時であれば、図示のように30msecほどでシリアル通信やデータ書き込みをすぐに実行可能である。
【0053】
一方、フラッシュメモリ30の未使用時に電源遮断をする場合、図11のように電源投入時に起動時間(12msec程度)が必要で、その消費電流のピーク値は80mAで、それ以外で5mA流れる。ピーク値はスタンバイ状態の電流よりも大きいが、時間は12ms程度だけである。これはスタンバイ時の5秒間に当たる消費電流と同程度である。そのため、10パケット分のデータをバッファしてフラッシュメモリ30を読み書きする場合、連続的な読み書きでも起動する間隔は短くても10秒であり、電源遮断をした方が消費電流が少なく、低電力である。
【0054】
図12は図9に示した本発明による書換えアドレスの分散化の効果を示しており、日常生活でセンサノード1を使用した場合における、最も書き換え頻度が高いページの書き換え回数を比較している。本発明では、すべてのページの書換え頻度が特定のページに偏らずほぼ均等になるため、書き換えアドレスを循環させない場合に比べて、書き換え頻度は1/100である。これにより、無線パケットデータ(センシングデータ)を格納する不揮発性メモリとしてのフラッシュメモリ30の使用期間を延長することが可能となる。
【0055】
次に、本発明のセンシングデータの圧縮方法について示す。本発明では、生体情報を測定する人の動きやデータの特徴に着目する。例えば、図13〜図15はセンサノード1を人の腕に身に付けて、人の典型的な行動例(安静時、デスクワーク時、走行時)において測定した3軸(X、Y、Z軸)加速度(±3G)のデータを示す。ただし、A/D変換の分解能は8ビット、サンプリング周波数は20Hzで50秒間のデータ取得例を示す。図13(a)は安静時の3軸加速度を示し、図14(a)はデスクワーク中の3軸加速度を示し、図15(a)は走行中の3軸加速度を示す。
【0056】
図13(b)、図14(b)、図15(b)は図13(a)、図14(a)、図15(a)の実測値を、それぞれ1つ前の値を基準として差分化した値の出現頻度をまとめた結果を示す。図13〜図15の中で、図13に示す安静中は変化がないので、100%に近い割合で差分値=0が多いことがわかる。これが、図14のデスクワーク時や、最も激しい運動例である図15の走行時になると、3軸加速度の値の変化は大きくなり、差分値の頻度は分散化すると考えられる。しかしながら、人の動きでは、このような激しい変化であっても、差分値が小さい値ほど頻度が高く、その値は0から一桁の値にほぼ集中している。また、人の1日の活動を通して考えると、安静時や睡眠時の時間が比較的長いため、1日全体では、差分値の出現頻度が非常に偏った結果がえられる。
【0057】
図13(b)〜図15(b)で示したように差分値の出現頻度が0近傍に偏っていることから、簡単な符号化処理を適用することで、加速度データの容量を高効率で、可逆圧縮してメモリに記憶できる。
【0058】
次に、本発明で適用する符号化方法について示す。
【0059】
本発明の符号化方法では、より小さい数値に、より短い符号長を割り当てる可変長の符号化を適用する。図16は、本発明に適用する可変長符号の符号表を示す。数値(加速度の値)が0に近い値であれば、8ビットの値を半分の4ビットまで圧縮することが可能である。しかしながら、数値が大きくなると、ビット長が増していき、もとのデータ長である8ビットよりも大きくなることもある。また、数値が0で3個以上19個以下の連続である場合、それら0の連続をまとめて8ビットで表す。これは、図13(b)〜図15(b)で示したように、人の活動による加速度の差分値は0が最も高頻度であることを利用し、圧縮効率を上げるためである。0が19個連続している場合は、152ビットを8ビットに圧縮することが可能である。
【0060】
図17にセンシングデータが8ビットの場合の可変長符号の構成を示す。符号は最上位ビット(MSB)からaビットと、区切りビット、正負を示す符号ビット及び最下位ビット(LSB)までのbビットから構成される。可変長符号は、数値が64未満と64以上のときではビット構成が変化する。
【0061】
まず、数値が64未満のときには、aビットは数値を4で割ったときの商の数の0を設定し、そして、余りの値をbビットに設定する。なお、この場合、bビットは4で除したときの余りであるので2ビットとなる。区切りビットは常に1であり、符号ビットは、正であれば0、負であれば1をセットする。例えば、数値=4は4で割った商が0、余りが0であるので、aビット=0でMSBは区切りビットとなり、bビットは00となる。
【0062】
数値が64以上のときには、aビットは16ビットの0を設定し、そして、下位6ビットに数値から64を差し引いた値をbビットとして設定する。区切りビット、符号ビットは上記64未満の場合と同様である。例えば、数値=65は、aビットはMSBから16ビットの0が設定され、下位6ビットは数値65から64を差し引いた値である1をセットする。
【0063】
さらに、図16で示したように、符号=「1100」は「−0」の代わりに、数値=0が4回以上連続する数を示す。このため、aビット=0で、bビットは図16の下部で示すように、6ビットのうちLSB側の4ビットで4以上の0の連続数を示す。すなわち、図16で示すように、「11000000」が数値=0が4回続くことを示し、「11001111」が4+15の19回の0の連続を示す。
【0064】
図18、図19は、CPU28が実行する圧縮プログラム61による数値の符号化の処理を示すフローチャートで、図18が0の連続数を符号化する場合を示し、図19が0以上の数値または0の連続数が4回未満の場合を示す。なお、圧縮プログラム61は、RAM25のRFバッファ52から無線パケットデータ内のセンシングデータを読み出して、センシングデータの値が0で、かつ0の連続数が4回以上の場合には図18の処理を実行し、そうでない場合には図19の処理を実行する。
【0065】
図18は符号化する対象であるセンシングデータの数値が、最初の値から4つ以上連続で0の羅列である場合、これをまとめて符号化する。ステップS100から始まり、ステップS101ではCPU28がセンサデータバッファ53内の0の連続数をカウントし、その数をcとする。
【0066】
ステップS102では、cから4を差し引いた値を図17のbビットの下位4ビットに設定して符号化を完了する。
【0067】
一方、符号化する対象である数値の列が、最初の値から4つ以上連続で0ではない場合、図19の処理で1つの8ビット数を符号化する。
【0068】
ステップS200では、CPU28がセンサデータバッファ53のセンシングデータの値を変数xに代入する。
【0069】
ステップS201で変数xの絶対値が64より小さければステップS202に進み、変数xの値が64以上であればステップS211に進む。ステップS202で変数xの値を4で除した商をaに設定し、ステップS203では、4で除した余り(%4)をbにセットする。
【0070】
ステップS204では、変数x≧0であればステップS205に進み、x≧0でなければステップS206に進む。ステップS205では変数xが正であるので、符号ビット=0とし、商を代入したaの値に応じたaビットを設定し、余りをbビットに設定する。ステップS206では、変数xが負であるので符号ビット=1とし、S205と同様にaビットとbビットを設定して符号化を完了する。
【0071】
変数x≧64となるステップS211では、変数xから64を差し引いた値を図17に示したbビットの下位6ビットに設定する。
【0072】
ステップS212で、x≧0であればステップS213に進み、x≧0でなければステップS214に進む。ステップS213では変数xが正であるので、符号ビット=0とし、aビットを16ビットの0で設定し、S211で設定した6ビットをbビットに設定する。ステップS214は変数xが負であるので符号ビット=1とし、S213と同様にaビットとbビットを設定して符号化を完了する。
【0073】
上記図18、図19の符号化処理は、センサノード1に保持するデータに図17で示した符号表などの情報(辞書)を含める必要がなく、ほとんどがビット演算処理で乗算もないため、軽い演算処理で、センサノード1のマイクロコンピュータ20でも高速に処理することが可能である。
【0074】
図20は、図13〜図15に示した差分化と、図16に示した符号化によって、生体情報から取得したデータを圧縮して、無線パケットデータを作成する過程を示す。生体情報(例えば、脈拍や加速度)はセンサにより数値化され、センサの出力である電圧は時間変化するアナログ値の波形データとなる。
【0075】
センサノード1は、加速度センサ12からのアナログ値(図中波形データ)をマイクロコンピュータ20のA/Dコンバータ23において一定周期(例えば、20Hz)でデジタル値(例えば、8ビット)に変換する。これらのデジタル値は1回の無線送信で送る数(例えば、20個)分をセンサデータバッファ53に格納する。
【0076】
マイクロコンピュータ20は、この20個のデジタル値について差分化処理を施す。差分化処理は、20個のデジタル値(センシングデータ)の先頭のデータX1はそのままの値を用い、以降のデータX2〜X20について直前のデータXn−1の値を基準とする差分値に変換する。
【0077】
これらの差分化された値を図18、図19のフローチャートにて説明したように符号化する。しかしながら、図16のような可変長符号においては、前述したように元のデータよりもサイズが大きくなることが考えられる。圧縮効率の著しい低下を防ぐため、圧縮率が100%を超える場合のみ、非圧縮データをそのまま使用する。
【0078】
後述するように、フラッシュメモリ30への書き込みは、送信できない無線パケットデータが発生する度に行うのではなく、CPU28はパケットバッファ54に格納された無線パケットデータが所定値(例えば、20個)となったときにフラッシュメモリ30への書き込みを実行し、書き込んだ無線パケットデータはパケットバッファ54から消去する。
【0079】
このように、フラッシュメモリ30への書き込みをまとめて行うようにすることで、フラッシュメモリ30をON/OFFする頻度を低減し、また、フラッシュメモリ30へ電力を供給する期間を低減する。これにより、電池17の消耗を抑制することができ、電池の交換や充電のためのセンサノード1のメンテナンス周期を増大することができる。
【0080】
図21は無線規格としてIEEE802.15.4を使用した場合の、無線パケットデータのフォーマット150の例を示す。フォーマット150は、無線規格で規定されたヘッダ151、フッタ159を除く約100バイトのデータ部(ペイロード)にデータを格納する。このデータ部には、データ部のデータ長152(1バイト)、パケット作成時のタイムスタンプ153(4バイト)、データの種類を判別するためのデータID154(1バイト)、その後に圧縮、または非圧縮の加速度センシングデータ155(X軸)、156(Y軸)、157(Y軸)とその他のデータ158を格納する。タイムスタンプ153により、パケットの送信順が変わった場合でも波形データの復元が可能である。データID154により、センシングデータの内容を示す他、センシングデータの圧縮、非圧縮の判別を可能とする。その他のデータ158として、センシングデータのサンプリング周波数、分解能、使用者からの緊急通報などが同一パケットに格納可能である。
【0081】
図22は、図20の実測値である8ビットの値を、実際に図20に示した手順で圧縮した無線パケットデータとした場合の圧縮率を示している。この結果、安静時では最大効率の12.4%で圧縮可能である。また、もっとも激しい運動例である走行時であっても60%で圧縮が可能である。これらを含む1日の典型的な例では33%程度で圧縮可能である。
【0082】
図23は図16に示した符号を復号化するフローチャートを示す。この処理は、ゲートウェイ40の解凍プログラム62をCPU46で実行することにより行われる。
【0083】
ゲートウェイ40では受信したパケットデータからデータID154を読み込んで、センシングデータが圧縮されたものであるときに、CPU46は図23の処理を実行する。
【0084】
ステップS300では、対象とするセンシングデータの値の上位ビット(MSB)から読み進める。読んだビットの値が1であればステップS302に進み、0であればステップS311に進む。ステップS311では変数d(初期値は0)の値に1を加えて、ステップS300に戻る。
【0085】
ステップS302では、変数d<16であればステップS303に進み、d<16でなければステップS341に進む。すなわち変数dの値が図17に示した区切りビットのMSBから位置(ビット数)を示すaビットの値となる。そして、区切りビットの位置が16ビット未満、つまり、図16で示した符号表で数値が64未満であるか否かにより、可変長符号のフォーマットが変化するので、何れのフォーマットであるかを判定する。
【0086】
ステップS303では、ステップS301で1であったビットの次のビットが0であればステップS304に進み、0でなければステップS321に進む。すなわち、区切りビットのLSB側の隣の符号ビットが正負の何れを示すのかを判定する。
【0087】
符号ビット=0の正の場合のステップS304では、次の2ビットを読み、その値を変数eとする。つまり、図17に示したbビットを読み込んで、ステップS306ではaビットを示す変数dに4を乗じ、変数eの値を加えたものを正のセンシングデータとして復号し、処理を終了する。
【0088】
一方、センシングデータの数値が64未満で符号ビット=1の負の場合は、ステップS321で次の2ビット(bビット)を読み、その値を変数eとする。つまり、図17に示したbビットを読み込んでから、ステップS322ではaビットを示す変数dに4を乗じ、変数eの値を加えた値に−1を乗じたものを負のセンシングデータとして復号する。
【0089】
次に、ステップS323では、復号化したセンシングデータの値が0であるか否かを判定する。0でなければステップS331に進み、ステップS323の値をセンシングデータの復号結果として出力し、処理を終了する。
【0090】
ここで、センシングデータが負値の場合、図16で示したように「−0」のときには、0の数が4回以上連続することを示すセンシングデータであるため、ステップS324以降でさらに復号化を行う。
【0091】
ステップS324では、次の4ビットであるbビットのLSB側の4ビットを読み、その値をfとする。S325ではf+4個の0を生成し、複数のセンシングデータ列(f+4個の連続する0(8ビット))を復号結果として出力し、処理を終了する。
【0092】
次に、ステップS302の判定で復号するセンシングデータの値が64以上と判定された場合のS341では、1と判定した区切りビットのLSB側の次のビットである符号ビットが0であるか否かを判定する。符号ビット=0であれば正の値であるのでステップS342ヘ進み、符号ビット=1であれば負の値であるのでステップS351ヘ進む。
【0093】
ステップS342では、符号ビットのLSB側の次の6ビット(bビット)を読み、その値を変数eとする。ステップS343では変数eに64を加えた値を復号化したセンシングデータとして出力し、処理を終了する。
【0094】
負の場合のステップS351では、符号ビットのLSB側の次の6ビット(bビット)を読み、その値を変数eとする。ステップS352では変数eに64を加えた値に−1を乗じた負値を復号化したセンシングデータとして出力し、処理を終了する。
【0095】
以上の処理により、ゲートウェイ40では符号化によって圧縮された無線パケットデータからセンシングデータを復号することができる。
【0096】
なお、上記図23の復号処理は、サーバ43で実行しても良い。この場合、ゲートウェイ40では復号処理を行わず、センサノード1から受信した無線パケットデータをそのままサーバ43へ転送するだけとなる。
【0097】
図24はセンサノード1で行われる処理の一例を示すフローチャートである。この処理はRTC14からの割り込みによりCPU28を起動することで実行される。RTC14が割り込みを発生する周期(サンプリング周期)は、例えば、50msecなどに設定され、センサノード1の起動時にCPU28がRTC14に設定したものである。
【0098】
ステップS600では、サンプリング周期でRTC14から割り込み制御部29に信号を送り、スタンバイ状態のマイクロコンピュータ20を起動する。ステップS601では、スイッチ15をONにして加速度センサ12へ電力の供給を開始してから、A/Dコンバータ23のA/D変換により加速度センサ12からセンシングデータを取り込む。ステップS602では、デジタル値に変換したセンシングデータをセンサデータバッファ53に格納する。ステップS603では、センサデータバッファ53へ格納した各センシングデータの数が20以上であればステップS604に進み、20より少なければステップS607に進む。
【0099】
ステップS604では無線通信部11がONであるかを判定し、無線通信部11がONの場合には、センシングデータ(無線パケットデータ)を無線で送信するため、ステップS605に進む。無線通信部11がOFFの場合には、センシングデータを圧縮し、無線パケットデータとしてRFバッファ52へ記憶するため、ステップS611に進む。
【0100】
ステップS605では無線パケットデータをRFバッファ52に格納し、ステップS606で無線送信を実行する。ステップS607ではステップS606の無線送信が成功したらステップS608に進み、失敗した場合はS611に進む。なお、無線送信に成功した場合にはRFバッファ52の無線パケットデータを消去する。
【0101】
ステップS608ではRAM25のRFバッファ52に記憶した無線パケットデータが無いかを判定し、未送信の無線パケットデータが無ければステップS609に進む。RFバッファ52に未送信の無線パケットデータがあればステップS621に進む。ステップS621ではメモリ(RAM25またはフラッシュメモリ30)に記憶した無線パケットデータを呼び出し、ステップS605に進む。
【0102】
上記ステップS604の判定で無線通信部11がOFFまたはステップS607の判定で送信が失敗したときのステップS611では、RFバッファ52に格納されている無線パケットデータ内のセンシングデータについて図20で示した差分化を実行する。そして、ステップS612では、差分化した無線パケットデータ内のセンシングデータを図16〜図19で示した符号化により圧縮する。ステップS613では符号化した無線パケットデータ(センシングデータ)及びその他の無線パケットデータをパケットバッファ54またはフラッシュメモリ30に記憶する。
【0103】
ステップS609ですべての処理を終了し、マイクロコンピュータ20はスイッチ15をOFFにして加速度センサ12への電力を遮断してからスタンバイモードに移行する。
【0104】
上記処理により、センサノード1は、所定のサンプリング周期になるとRTC14からの割り込みによりマイクロコンピュータ20をスタンバイモードから起動して、加速度センサ12からのセンシングデータの取得と、無線送信を実行し、無線送信が失敗したときまたは無線通信部11がOFFの場合には、無線パケットデータ内のセンシングデータに差分化処理と符号化処理を加えて圧縮し、次回の無線送信を行うためにパケットバッファ54またはフラッシュメモリ30へ格納される。
【0105】
マイクロコンピュータ20は、次回のサンプリング周期まではスタンバイ状態となり、また、加速度センサ12は次回のサンプリング周期まで通電を遮断することで電池17の消耗を抑制することができる。
【0106】
図25は上記ステップS613で行われる無線パケットデータの格納処理の詳細を示すフローチャートである。ステップS400から無線パケットデータのメモリへの書き込みを開始する。ステップS401では、RAM25のパケットバッファ54に書き込みが可能であればステップS402に進み、パケットバッファ54の空き容量が足りなくて書き込みできないのであればステップS411に進む。ステップS402ではパケットバッファ54に無線パケットデータを書き込む。ステップS403では、書き込みを完了して図24の処理へ戻る。
【0107】
一方、ステップS401でパケットバッファ54への書き込みができないと判定されたステップS411では、CPU28がパラレルインターフェース26を制御してスイッチ16をONにしてフラッシュメモリ30を起動する。
【0108】
ステップS412では、パケットバッファ54の内容をシリアルコミュニケーションインターフェース27を介して、フラッシュメモリ30のリードライトバッファ31に転送する。ステップS413では、ライトポインタ51が指し示すメモリセル32のページ34に書き込む。
【0109】
ステップS414では、書き込みが完了すると、CPU28がパラレルインターフェース26を制御してスイッチ16をOFFにしてフラッシュメモリ30へ電力を遮断する。S415ではライトポインタ51の値を1増やす。もし、1増やした後のページアドレス33が存在しなければ、先頭のページアドレス33に戻した値をライトポインタ51に設定する。また、CPU28は書き込みが完了したパケットバッファ54のパケットデータを消去する。そして、ステップS403で、書き込みを完了して図24の処理へ戻る。
【0110】
以上の処理により、無線通信が行えないときには、CPU28がRAM25に設けたパケットバッファ54へ圧縮された無線パケットデータを書き込んでいき、パケットバッファ54が一杯になった時点でフラッシュメモリ30に通電し、パケットバッファ54の内容をまとめてフラッシュメモリ30へ書き込む。そして、書き込みが完了するとフラッシュメモリ30への電力供給を遮断して電池17の消耗を抑制する。
【0111】
また、フラッシュメモリ30への書き込みは、ライトポインタ51により先頭のページから最後のページまで循環して使用することができ、特定のページが頻繁に書き換えられるのを防止して、フラッシュメモリ30の使用期間を長くすることができる。
【0112】
次に、図26は上記図24のステップS621で行われるパケットデータ呼び出し処理の詳細なフローチャートを示す。
【0113】
ステップS500から、無線パケットデータの呼び出しを開始する。ステップS501では、パケットバッファ54から未送信の無線パケットデータを読み出し、RFバッファ52へ転送する。ステップS502では、パケットバッファ54に未送信データが存在すればS503に進み、パケットバッファ54に未送信パケットデータがなければS511に進む。
【0114】
ステップS511では、フラッシュメモリ30に未送信データが存在すればステップS512に進み、存在しなければステップS503に進む。ステップS511のフラッシュメモリ30内の未送信の無線パケットデータの有無の判定は、リードポインタ50の値と、ライトポインタ51の値が一致していれば未送信の無線パケットデータはないと判定する。
【0115】
ステップS512で、CPU28はパラレルインターフェース26を制御してスイッチ16をONにし、フラッシュメモリ30へ電力の供給を開始する。ステップS513ではリードポインタ50が指し示すフラッシュメモリ30のページ34からリードライトバッファ31に読み出し、ステップS514でシリアルコミュニケーションインターフェース27を介してパケットバッファ54にデータを読み出す。
【0116】
ステップS515では、CPU28がパラレルインターフェース26を制御し、スイッチ16をOFFにしてフラッシュメモリ30への電力供給を遮断する。ステップS516ではリードポインタ50の値に1を加える。1を加えた結果、リードポインタ50が指し示すページアドレス33が存在しない場合には、先頭のページアドレス33を設定する。ステップS503でパケット呼び出しを完了する。
【0117】
上記図25の書き込み時と同様に、読み出し期間のみフラッシュメモリ30への電力供給を行うことにより、電池17の消耗を抑制してセンサノード1のメンテナンス周期を増大させることができる。
【0118】
図27は図24に示したステップS606の無線送信の処理の詳細を示すフローチャートである。ステップS701でRFバッファ52のデータ(無線パケットデータ)を無線通信部11から無線送信する。ステップS702では、ゲートウェイ40からステップS701の無線送信に対するACKを受信すればステップS703に進み、ACKを受信しなければステップS711に進む。
【0119】
ステップS703では無線送信結果を成功とし、ステップS711では無線送信結果を失敗とする。次のステップS704で無線送信処理を完了する。
【0120】
以上の処理により、無線通信の成功または失敗を判定する。
【0121】
このように本第1の実施形態によれば、無線通信ができない期間のセンシングデータ(無線パケットデータ)を、差分化と符号化により圧縮してからRAM25のパケットバッファ54またはフラッシュメモリ30へ格納するようにしたので、計算機資源が限られたセンサノード1で大量のセンシングデータを保持することができる。これにより、加速度などの生体情報では比較的短いサンプリング周期で測定することが望まれるが、無線通信が行えない期間では、差分化と符号化によりセンシングデータを圧縮することで、センサノード1の限られた記憶容量でより多くのセンシングデータを保持し、サーバ43に蓄積されるセンシングデータの欠損を抑制することができる。
【0122】
また、センシングデータの圧縮は、パケットバッファ54またはフラッシュメモリ30へ格納するときに行い、測定したセンシングデータをそのまま送信できる場合には圧縮を行わないので、CPU28の演算処理で消費する電力を節減して、電池17の消耗を抑制することができる。
【0123】
さらに、送信できないセンシングデータを格納するフラッシュメモリ30には、読み書きを行うときのみ電力を供給するようにしたので、電池17の消耗を抑制することができる。これにより、センサノード1に搭載する電池17のメンテナンス周期を増大して、使い勝手の良いセンサノード1を提供することができる。
【0124】
また、不揮発性メモリとしてのフラッシュメモリ30への書き込みは、先頭のページから終端のページまでを先頭から順に循環して書き込むようにしたので、特定のページが頻繁に書き換えられるのを防止して、フラッシュメモリ30の使用期間を長くすることができる。
【0125】
また、本発明の符号化では、センシングデータの値が0に近づくほど圧縮率が高くなり、かつ、0が連続する場合には複数のセンシングデータを一つのデータにまとめてさらに圧縮率を高めることができる。これにより、生体の加速度のように一日のセンシングデータに0の出現頻度の高いデータの場合では、全体的なデータ圧縮率を高めて、無線通信が行えない期間のセンシングデータを容量の限られたセンサノード1の記憶装置に保持することが可能となるのである。
【0126】
さらに、センシングデータ(無線パケットデータ)を保持する記憶部として、揮発性記憶部で構成されるRAM25と、書き換え可能な不揮発性記憶部で構成されるフラッシュメモリ30を備え、センシングデータの送信時には、アクセス速度が速く、消費電力の少ないRAM25のRFバッファ52を使用する。そして、無線通信部11が送信ができないときには、センシングデータを圧縮してからRAM25のパケットバッファ54へ格納して、消費電力の大きいフラッシュメモリ30を使用する頻度を抑制する。
【0127】
そして、パケットバッファ54が一杯になったとき(無線パケットデータの数が所定値に達したとき)にフラッシュメモリ30へ複数の無線パケットデータをまとめて書き込むようにしたので、書き換え時の消費電力の大きいフラッシュメモリ30を作動させる期間を可能な限り短縮することができる。これにより、電池17の消耗を極力抑制することが可能となる。
【0128】
また、無線通信部11のみをONまたはOFFにするボタンスイッチ18、19を設けることにより、無線通信が制限される環境でもセンサノード1全体をOFFにすることなく、無線通信部11のみをOFFにしたまま生体情報の測定を継続することが可能となる。
【0129】
<第2実施形態>
図28は第2の実施形態を示し、センサノード1の基板10に取り付けられた電子回路のブロック図を示しており、前記第1実施形態に対して、図中左下に脈波センサ119を加えたものである。前記第1実施形態の加速度センサ12に加えて脈拍の波形を計測する脈波センサ119を付加したもので、その他の構成は前記第1実施形態と同様である。
【0130】
この脈波センサ119は発光素子LD1として赤外線発光ダイオードを用い、受光素子PD1としてフォトトランジスタを採用したものである。なお、受光素子としては、フォトトランジスタ以外にもフォトダイオードも使用可能である。ケース3の裏面には、発光素子LD1と受光素子PD1が露出しており、腕の皮膚と対向可能となっている。
【0131】
この脈波センサ119は、発光素子LD1で発生させた赤外光を皮下の血管に照射し、血流変動による血管からの散乱光の強度変化を受光素子PD1にて検知し、その強度変化の周期から脈拍及び脈波を推定する。
【0132】
脈波センサ119は、加速度センサ6と同様にA/Dコンバータ23に接続されて、アナログ値の出力がデジタル値に変換される。また、脈波センサ119を駆動するための電源は、スイッチ118を介して電池17に接続される。スイッチ118は、第1実施形態のスイッチ15と同様に、パラレルインターフェース26によって制御され、脈波センサ119への電力をON/OFFする。脈波センサ119の制御のタイミングは、前記第1実施形態に示した加速度センサ12と同様であり、測定期間が開始されると電源はONになり、休止期間ではOFFとなる。
【0133】
ここで、脈波センサ119による脈拍の測定は、生体(使用者)が安静にしていることが望ましい。装着者が動いている場合には脈拍の波形は乱れた波形しか取得できず、正常な脈拍は検知できない。これは、脈波センサ119が腕に密着されずに、脈拍周期よりもずっと短い時間間隔で、外乱光にさらされ、その結果、脈拍の波形が乱れるのである。したがって、信頼できる脈波を検知するためには、ユーザが安静状態にある間に、センシングを行なう必要がある。本第2実施形態では、前記第1実施形態と同様のタイミングで、3軸の加速度と脈波を測定し、複数の無線パケットデータをまとめてゲートウェイ40へ送信する。この無線パケットデータを利用する場合には、加速度のセンシングデータが安静と認められる脈波を採用すればよい。
【0134】
図29(a)には脈波センサ119の実測値を示している。これは安静時にセンシングした結果であり、正確な脈波形を得ることができている。これを差分化した値の出現頻度を図29(b)に示している。これは前述の加速度波形(図13〜図15)と同様に、センシングデータの値の出現頻度が偏っていることがわかる。ただし、加速度波形とは異なり、差分値の出現頻度が最も大きい値が0ではない。これは安定時の脈波形の変化率は一定の値に集中するが、常に変化しているため、0にはならないからである。しかしながら、図16に示した符号表の値の割り当てを、脈波の変化率に伴って変えることで、高い圧縮率を得ることが可能である。
【0135】
図30は、前記第1実施形態の図21と同様に生成したRFパケットのフォーマット150を示している。ただし、センサ119から脈波センシングデータを複数(例えば、20個)取得して、圧縮または非圧縮のデータを1551に格納している。
【0136】
第1実施形態とは異なり、無線送信した無線パケットデータのみならず、すべての無線パケットデータを圧縮することで、無線送信するデータ量を削減することもできる。図31はこの場合のセンサノード1の動作フローチャートを示す。
【0137】
ステップS600〜S602では、第1実施形態の図24と同様にセンシングデータをセンサデータバッファ53に格納する。
【0138】
ステップS603では各センシングデータ数≧20となってから、すぐにステップS604でセンサデータを前記第1実施形態と同様に差分化し、ステップS605で差分化したセンシングデータを前記第1実施形態と同様に符号化する。ステップS620では、符号化したセンシングデータを搭載した無線パケットデータをRFバッファ52の空き領域に書き込み可能か判断し、不可能であればステップS605で無線送信し、可能であればステップS604に進む。S604ではRFバッファ52の空き領域に符号化したセンシングデータを含む無線パケットデータを書き込む。
【0139】
以上のように、センサノード1に保持するセンシングデータに加えてセンサノード1から送信する無線パケットデータ内のセンシングデータについても、差分化と符号化による2段階の圧縮を施すことで、無線通信時のデータ量を削減し、通信時間を削減できる。これにより、無線通信部11が消費する電力を低減して電池17の消耗を抑制することが可能となる。
【0140】
なお、上記実施形態では、図18、図19に示すフローチャートにより符号化を行う例を示したが、図16に示したマップを用いて符号化を行っても良い。
【0141】
なお、上記各実施形態では、生体情報として加速度や脈波を測定する場合を示したが、心拍数などを検出するセンサノード1に適用しても良い。
【0142】
<備考>
センサを備えるセンサノードが、センサで測定した生体情報を送信する方法あって、
前記生体情報を測定したセンサからのデータを取得する手順と、
前記データをセンサノードの揮発性記憶部へ格納する手順と、
前記センサノードの無線通信部を介して前記揮発性記憶部のデータを送信する手順と、
前記送信が完了したか否かを判定する手順と、
前記送信が完了しなかったときには、前記揮発性記憶部のデータを圧縮する手順と、
前記センサノードに設けた不揮発性記憶部への電力の供給を開始する手順と、
前記圧縮したデータを前記不揮発性記憶部へ書き込む手順と、
前記不揮発性記憶部への電力の供給を遮断する手順と、
を含むことを特徴とする生体情報の送信方法。
【産業上の利用可能性】
【0143】
以上のように、本発明は、所定のサンプリング周期で情報を測定するセンサノード及びセンサノードを用いたセンサネットワークシステムに適用することができる。
【図面の簡単な説明】
【0144】
【図1】本発明の第1の実施形態を示し、腕輪型のセンサノードの正面図を示す。
【図2】同じく、第1の実施形態を示し、図1のA−A矢示断面図を示す。
【図3】同じく、第1の実施形態を示し、センサノードのブロック図を示す。
【図4】同じく、第1の実施形態を示し、センサネットシステムのブロック図を示す。
【図5】同じく、第1の実施形態を示し、センサノードの電波出力のX−Z軸の指向性を示すグラフである。
【図6】同じく、第1の実施形態を示し、センサノードが送信したときのパケットエラー率を示すグラフである。
【図7】同じく、第1の実施形態を示し、センサノードのLCDの表示の一例を示す正面図で、無線通信部がONの状態を示す。
【図8】同じく、第1の実施形態を示し、センサノードのLCDの表示の一例を示す正面図で、無線通信部がOFFの状態を示す。
【図9】同じく、第1の実施形態を示し、RAM25とフラッシュメモリ30の詳細なブロック図を示す。
【図10】従来例を示し、フラッシュメモリの消費電力と時間の関係を示すグラフで、電源遮断を行わない場合である。
【図11】第1の実施形態を示し、フラッシュメモリの消費電力と時間の関係を示すグラフで、電源遮断を行う場合である。
【図12】同じく、第1の実施形態を示し、フラッシュメモリの最大書き換え数と動作時間の関係を示すグラフである。
【図13】同じく、第1の実施形態を示し、センサノードで安静時の人の動きをセンシングしたときの加速度を示し、(a)は3軸加速度の実測値と時間の関係を示すグラフで、(B)は加速度の差分値と出現頻度の関係を示すグラフである。
【図14】同じく、第1の実施形態を示し、センサノードでデスクワーク時の人の動きをセンシングしたときの加速度を示し、(a)は3軸加速度の実測値と時間の関係を示すグラフで、(B)は加速度の差分値と出現頻度の関係を示すグラフである。
【図15】同じく、第1の実施形態を示し、センサノードで走行時の人の動きをセンシングしたときの加速度を示し、(a)は3軸加速度の実測値と時間の関係を示すグラフで、(B)は加速度の差分値と出現頻度の関係を示すグラフである。
【図16】同じく、第1の実施形態を示し、符号化の際の数値と符号のマップである。
【図17】同じく、第1の実施形態を示し、符号のビット構成を示す説明図である。
【図18】同じく、第1の実施形態を示し、センサノードで行われる符号化処理の一例を示すフローチャートで、0となるセンシングデータの値が4回以上連続する場合を示す。
【図19】同じく、第1の実施形態を示し、センサノードで行われる符号化処理の一例を示すフローチャートで、センシングデータの値が0以外、または0の連続が4回未満の場合を示す。
【図20】同じく、第1の実施形態を示し、センシングデータの差分化処理と符号化処理によるデータ長を示す説明図である。
【図21】同じく、第1の実施形態を示し、センサノードが送信する無線パケットの一例を示すブロック図である。
【図22】同じく、第1の実施形態を示し、差分化と符号化によるセンシングデータの圧縮率の一例を示すマップである。
【図23】同じく、第1の実施形態を示し、圧縮されたセンシングデータの復号処理の一例を示すフローチャートである。
【図24】同じく、第1の実施形態を示し、センサノードで行われるタイマ割り込み処理の一例を示すフローチャートである。
【図25】同じく、第1の実施形態を示し、図24のステップS613で行われる無線パケットデータの格納処理の詳細を示すフローチャートである。
【図26】同じく、第1の実施形態を示し、図24のステップS621で行われるパケットデータ呼び出し処理の詳細なフローチャートを示す。
【図27】同じく、第1の実施形態を示し、図24に示したステップS606の無線送信の処理の詳細を示すフローチャートである。
【図28】第2の実施形態を示し、センサネットシステムのブロック図を示す。
【図29】同じく、第2の実施形態を示し、センサノードで人の脈波をセンシングしたときの脈拍強度を示し、(a)は脈拍強度と時間の関係を示すグラフで、(B)は脈拍強度の差分値と出現頻度の関係を示すグラフである。
【図30】同じく、第2の実施形態を示し、センサノードが送信する無線パケットの一例を示すブロック図。
【図31】同じく、第2の実施形態を示し、センサノードで行われるタイマ割り込み処理の一例を示すフローチャートである。
【符号の説明】
【0145】
1 センサノード
5 LCD
11 無線通信部
12 加速度センサ
13 アンテナ
14 リアルタイムクロック
15、16、18 スイッチ
17 電池
20 マイクロコンピュータ
23 A/Dコンバータ
24 ROM
25 RAM
26 パラレルインターフェース
27 シリアルコミュニケーションインターフェース
28 CPU
29 割り込み制御部
30 フラッシュメモリ
31 リード/ライトバッファ
32 メモリセル
33 ページアドレス
34 ページ
50 リードポインタ
51 ライトポインタ
52 RFバッファ
53 センサデータバッファ
54 パケットバッファ

【特許請求の範囲】
【請求項1】
生体情報を測定するセンサと、
前記センサを駆動してデータを取得する制御部と、
前記制御部が取得した前記データを送信する無線通信部と、
前記制御部と無線通信部及びセンサに電力を供給する電池と、
前記データを格納する揮発性記憶部と、
前記無線通信部で送信ができないときに、前記揮発性記憶部のデータを圧縮する圧縮部と、
前記圧縮されたデータを格納する不揮発性記憶部と
を備えて成ることを特徴とするセンサノード。
【請求項2】
請求項1において、
前記制御部は、前記不揮発性記憶部へアクセスする際に、前記不揮発性記憶部へ前記電力の供給を開始し、アクセスが終了した後に前記不揮発性記憶部への電力の供給を遮断するスイッチを備えていることを特徴とするセンサノード。
【請求項3】
請求項1において、
前記不揮発性記憶部は、所定の書き込み単位であるページを複数有し、
前記制御部は、前記不揮発性記憶部へデータを書き込む際には、前記ページのうち先頭のページから終端のページへ向けて循環して順次ページを切り替える
ことを特徴とするセンサノード。
【請求項4】
請求項1において、
前記圧縮部は、前記データを予め設定した可変長の符号に変換する符号部を有することを特徴とするセンサノード。
【請求項5】
請求項1において、
前記圧縮部は、
前記データの差分値を演算する差分化部と、
前記差分値を予め設定した可変長の符号に変換する符号部と
を有することを特徴とするセンサノード。
【請求項6】
請求項1において、
前記制御部は、前記無線通信部を停止状態または稼働状態に切り替える無線通信停止部を有することを特徴とするセンサノード。
【請求項7】
請求項1において、
前記センサは、前記生体情報として加速度または脈波を測定することを特徴とするセンサノード。
【請求項8】
請求項1において、
前記揮発性記憶部は、前記データを格納するバッファを有し、
前記制御部は、前記取得したデータまたは前記不揮発性記憶部から読み込んだデータを前記バッファに格納し、当該バッファのデータを前記無線通信部へ転送し、データの送信を行う
ことを特徴とするセンサノード。
【請求項9】
生体情報を測定するセンサを備え、当該センサが測定したデータを送信するセンサノードと、
前記データを受信してサーバ計算機へ転送する中継装置と
を備えて成るセンサネットワークシステムであって、
前記センサノードは、
前記センサを駆動してデータを取得する制御部と、
前記制御部が取得した前記データを送信する無線通信部と、
前記制御部と無線通信部及びセンサに電力を供給する電池と、
前記データを格納する揮発性記憶部と、
前記無線通信部で送信ができないときに、前記揮発性記憶部のデータを圧縮する圧縮部と、
前記圧縮されたデータを格納する不揮発性記憶部と
を備え、
前記中継装置は、
前記センサノードと通信を行う無線通信部と、
前記センサノードから受信したデータを復号する復号部と、
前記復号したデータを前記サーバ計算機へ送信するネットワーク通信部と
を備えている
ことを特徴とするセンサネットワークシステム。
【請求項10】
請求項9において、
前記制御部は、前記不揮発性記憶部へアクセスする際に、前記不揮発性記憶部へ前記電力の供給を開始し、アクセスが終了した後に前記不揮発性記憶部への電力の供給を遮断するスイッチを備えていることを特徴とするセンサネットワークシステム。
【請求項11】
請求項9において、
前記不揮発性記憶部は、所定の書き込み単位であるページを複数有し、
前記制御部は、前記不揮発性記憶部へデータを書き込む際には、前記ページのうち先頭のページから終端のページへ向けて循環して順次ページを切り替えることを特徴とするセンサネットワークシステム。
【請求項12】
請求項9において、
前記圧縮部は、前記データを予め設定した可変長の符号に変換する符号部を有することを特徴とするセンサネットワークシステム。
【請求項13】
請求項9において、
前記圧縮部は、
前記データの差分値を演算する差分化部と、
前記差分値を予め設定した可変長の符号に変換する符号部と
を有することを特徴とするセンサネットワークシステム。
【請求項14】
請求項9において、
前記制御部は、前記無線通信部を停止状態または稼働状態に切り替える無線通信停止部を有することを特徴とするセンサネットワークシステム。
【請求項15】
請求項9において、
前記センサは、前記生体情報として加速度または脈波を測定することを特徴とするセンサネットワークシステム。
【請求項16】
請求項9において、
前記揮発性記憶部は、前記データを格納するバッファを有し、
前記制御部は、前記取得したデータまたは前記不揮発性記憶部から読み込んだデータを前記バッファに格納し、当該バッファのデータを前記無線通信部へ転送し、データの送信を行う
ことを特徴とするセンサネットワークシステム。
【請求項17】
生体情報を測定するセンサを備え、当該センサが測定したデータを送信するセンサノードと、
前記データを受信してサーバ計算機へ転送する中継装置と
を備えたセンサネットワークシステムであって、
前記センサノードは、
前記センサを駆動してデータを取得する制御部と、
前記制御部が取得した前記データを送信する無線通信部と、
前記制御部と無線通信部及びセンサに電力を供給する電池と、
前記データを格納する揮発性記憶部と、
前記無線通信部で送信ができないときに、前記揮発性記憶部のデータを圧縮する圧縮部と、
前記圧縮されたデータを格納する不揮発性記憶部と
を備え、
前記中継装置は、
前記センサノードと通信を行う無線通信部と、
前記センサノードから受信したデータを前記サーバ計算機へ送信するネットワーク通信部と
を備え、
前記サーバ計算機は、
前記中継装置と通信を行う通信部と、
前記中継装置から受信したデータを復号する復号部と、
前記復号したデータを格納するデータ格納部と
を備えている
ことを特徴とするセンサネットワークシステム。
【請求項18】
請求項17において、
前記制御部は、前記不揮発性記憶部へアクセスする際に、前記不揮発性記憶部へ前記電力の供給を開始し、アクセスが終了した後に前記不揮発性記憶部への電力の供給を遮断するスイッチを備えていることを特徴とするセンサネットワークシステム。
【請求項19】
請求項17において、
前記不揮発性記憶部は、所定の書き込み単位であるページを複数有し、
前記制御部は、前記不揮発性記憶部へデータを書き込む際には、前記ページのうち先頭のページから終端のページへ向けて循環して順次ページを切り替えることを特徴とするセンサネットワークシステム。
【請求項20】
請求項17において、
前記圧縮部は、前記データを予め設定した可変長の符号に変換する符号部を有することを特徴とするセンサネットワークシステム。
【請求項21】
請求項17において、
前記圧縮部は、
前記データの差分値を演算する差分化部と、
前記差分値を予め設定した可変長の符号に変換する符号部と
を有することを特徴とするセンサネットワークシステム。
【請求項22】
請求項17において、
前記制御部は、前記無線通信部を停止状態または稼働状態に切り替える無線通信停止部を有することを特徴とするセンサネットワークシステム。
【請求項23】
請求項17において、
前記センサは、前記生体情報として加速度または脈波を測定することを特徴とするセンサネットワークシステム。
【請求項24】
請求項17において、
前記揮発性記憶部は、前記データを格納するバッファを有し、
前記制御部は、前記取得したデータまたは前記不揮発性記憶部から読み込んだデータを前記バッファに格納し、当該バッファのデータを前記無線通信部へ転送し、データの送信を行う
ことを特徴とするセンサネットワークシステム。

【図3】
image rotate

【図5】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図31】
image rotate

【図1】
image rotate

【図2】
image rotate

【図4】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図21】
image rotate

【図22】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate


【公開番号】特開2008−310630(P2008−310630A)
【公開日】平成20年12月25日(2008.12.25)
【国際特許分類】
【出願番号】特願2007−158474(P2007−158474)
【出願日】平成19年6月15日(2007.6.15)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】