(57)【要約】【課題】センサノードにおいて電池の消耗を抑制しながらも予め定めた文字コードの中で任意の文字を表示可能な端末装置を提供する。【解決手段】無線通信回路及び表示装置を制御する制御装置を備えて、基地局から受信したメッセージを予め設定した文字コードに基づいて表示装置に文字を表示する無線端末装置における文字データ表示方法であって、受信したメッセージから文字コードを取得し（Ｐ８１１）、取得した文字コードに対応する文字フォントデータを、予め設定した使用頻度の高い文字種の文字フォントデータのみを予め格納した文字フォントデータ格納部から検索し（Ｐ８１３）、この検索の結果、文字フォントデータ格納部に該当する文字フォントデータがない場合には、基地局に対して文字フォントデータを要求し（Ｐ８２１）、前記基地局から当該文字フォントデータをダウンロードし（Ｐ８２３）、検索またはダウンロードにより取得した文字フォントデータを描画データに変換して表示装置に出力する。【選択図】図７
2007025120.tif 000002
【特許請求の範囲】
【請求項１】
前記基地局との間で送受信を行う無線通信回路と、
前記無線通信回路が受信したメッセージを予め設定した文字コードに基づいて表示する表示装置と、
前記無線通信回路と表示装置を制御する制御装置と、
前記制御装置と無線通信回路及び表示装置に電力を供給する電池と、
を備えた無線端末装置であって、
前記制御装置は、
前記文字コードに対応する文字フォントデータを格納する文字フォントデータ格納部と、
前記受信したメッセージから文字コードを取得し、取得した文字コードに対応する文字フォントデータを前記文字フォントデータ格納部から検索するフォントデータ検索部と、
前記検索の結果、文字フォントデータ格納部に該当する文字フォントデータがない場合には、前記基地局に文字フォントデータを要求し、基地局から当該文字フォントデータをダウンロードするフォントデータ取得部と、
前記検索またはダウンロードにより取得した文字フォントデータを描画データに変換して前記表示装置に出力する表示パターン転送部と、
を備え、
前記文字フォントデータ格納部は、
前記文字コードのうち予め設定した使用頻度の高い文字種の文字フォントデータを予め格納したことを特徴とする無線端末装置。
【請求項２】
前記文字フォントデータ格納部は、
予め設定したハッシュテーブルの要素数に対応して複数の区分けした区画を有し、
前記フォントデータ検索部は、
前記取得した文字コードからハッシュ値を求め、当該ハッシュ値に対応する区画を前記ハッシュテーブルから取得し、当該区画内で文字コードに対応する文字フォントデータを検索することを特徴とする請求項１に記載の無線端末装置。
【請求項３】
前記文字フォントデータ格納部は、
前記予め設定した使用頻度の高い文字種の文字フォントデータのみを保持するＲＯＭ領域と、
前記ダウンロードした文字フォントデータを格納する書き換え可能なＲＡＭ領域と、
を有することを特徴とする請求項２に記載の無線端末装置。
【請求項４】
前記文字フォントデータ格納部は、
前記各区画毎に、前記ＲＯＭ領域の終端と、前記ＲＡＭ領域の先頭を対応付けるポインタを備えたことを特徴とする請求項３に記載の無線端末装置。
【請求項５】
前記ＲＡＭ領域の各区画の書き込み開始位置にＮＵＬＬを設定し、
前記フォントデータ取得部は、
前記取得した文字フォントデータの文字コードから、前記ハッシュ値を求め、当該ハッシュ値に対応する区画のＲＡＭ領域の前記ＮＵＬＬの位置に、前記取得した文字フォントデータを格納することを特徴とする請求項４に記載の無線端末装置。
【請求項６】
前記制御装置は、記憶内容を保持するＲＯＭと記憶内容を変更可能なＲＡＭを含んだワンチップ型のマイクロコンピュータで構成され、
前記予め設定した使用頻度の高い文字種の文字フォントデータのみを保持するＲＯＭ領域を前記ＲＯＭに設定し、前記ダウンロードした文字フォントデータを格納するＲＡＭ領域を前記ＲＡＭに設定したことを特徴とする請求項３に記載の無線端末装置。
【請求項７】
前記フォントデータ検索部は、
前記ＲＯＭ領域を検索した後に、該当する文字フォントデータがない場合には前記ＲＡＭ領域を検索することを特徴とする請求項３に記載の無線端末装置。
【請求項８】
前記制御装置は、予め設定した周期で起動状態と休止状態とを切り替え、
前記起動状態のときに当該制御装置に接続されたセンサから情報を測定し、前記基地局にセンサの情報を送信することを特徴とする請求項１に記載の無線端末装置。
【請求項９】
前記制御装置は、
前記起動状態のときに前記無線通信回路及び表示装置へ電力を供給可能とする一方、休止状態のときには前記無線通信回路及び表示装置への電力供給を停止することを特徴とする請求項８に記載の無線端末装置。
【請求項１０】
無線通信回路及び表示装置を制御する制御装置を備えて、基地局から受信したメッセージを予め設定した文字コードに基づいて前記表示装置に文字を表示する無線端末装置における文字データ表示方法であって、
前記受信したメッセージから文字コードを取得するステップと、
前記取得した文字コードに対応する文字フォントデータを、前記制御装置に設けられて予め設定した使用頻度の高い文字種の文字フォントデータのみを予め格納した文字フォントデータ格納部から検索するステップと、
前記検索の結果、文字フォントデータ格納部に該当する文字フォントデータがない場合には、前記基地局に対して文字フォントデータを要求し、前記基地局から当該文字フォントデータをダウンロードするステップと、
前記検索またはダウンロードにより取得した文字フォントデータを描画データに変換して前記表示装置に出力するステップと、
を含むことを特徴とする文字データ表示方法。
【請求項１１】
前記制御装置の初期化時に、予め設定した要素数に基づいて前記文字フォントデータ格納部を複数の区画に区分けするハッシュテーブルを設定するステップをさらに有し、
前記文字フォントデータ格納部から検索するステップは、
前記メッセージから取得した文字コードと前記要素数に基づいてハッシュ値を求めるステップと、
当該ハッシュ値に対応する前記区画を前記ハッシュテーブルから取得するステップと、
当該区画内で前記文字コードに対応する文字フォントデータを検索するステップと、
を含むことを特徴とする請求項１０に記載の文字データ表示方法。
【請求項１２】
前記文字フォントデータ格納部は、
前記予め設定した使用頻度の高い文字種の文字フォントデータのみを保持するＲＯＭ領域と、前記ダウンロードした文字フォントデータを格納する書き換え可能なＲＡＭ領域と、を有し、
前記制御装置の初期化時にハッシュテーブルを設定するステップは、
前記予め設定したハッシュテーブルの要素数に対応した複数の区画を、前記ＲＯＭ領域とＲＡＭ領域にそれぞれ設定し、
前記文字フォントデータ格納部から検索するステップは、
前記ＲＯＭ領域を検索した後に、該当する文字フォントデータがない場合には前記ＲＡＭ領域を検索することを特徴とする請求項１１に記載の文字データ表示方法。
【請求項１３】
前記文字フォントデータ格納部は、
前記各区画毎に、前記ＲＯＭ領域の終端と、前記ＲＡＭ領域の先頭を対応付けるポインタを備え、
前記文字フォントデータ格納部から検索するステップは、
前記ハッシュテーブルから取得した区画内で検索対象がＲＯＭ領域の終端に達すると、前記ポインタが指し示す前記ＲＡＭ領域の同一区画内を検索することを特徴とする請求項１２に記載の文字データ表示方法。
【請求項１４】
前記制御装置の初期化時にハッシュテーブルを設定するステップは、
前記ＲＡＭ領域の各区画の書き込み開始位置にＮＵＬＬを設定するステップを含み、
前記基地局から文字フォントデータをダウンロードするステップは、
前記基地局から取得した文字フォントデータの文字コードから前記ハッシュ値を求め、当該ハッシュ値に対応する区画に対応するＲＡＭ領域のＮＵＬＬの位置に、前記取得した文字コード及び文字フォントデータを格納することを特徴とする請求項１３に記載の文字データ表示方法。
【請求項１５】
前記制御装置は、記憶内容を保持するＲＯＭと記憶内容を変更可能なＲＡＭを含んだワンチップ型のマイクロコンピュータで構成され、
前記制御装置の初期化時にハッシュテーブルを設定するステップは、
前記予め設定した使用頻度の高い文字種の文字フォントデータのみを保持するＲＯＭ領域を前記ＲＯＭに設定し、前記ダウンロードした文字フォントデータを格納するＲＡＭ領域を前記ＲＡＭに設定し、前記各区画のＲＯＭ領域の先頭アドレスを前記ハッシュテーブルに設定し、前記各区画のＲＡＭ領域の先頭アドレスにＮＵＬＬを設定することを特徴とする請求項１２に記載の文字データ表示方法。
【請求項１６】
前記制御装置を予め設定した周期で起動状態と休止状態とに切り替えるステップと、
前記起動状態のときに当該制御装置に接続されたセンサから情報を測定するステップと、
前記基地局に測定したセンサの情報を送信するステップと、
をさらに含むことを設定することを特徴とする請求項１０に記載の文字データ表示方法。
【請求項１７】
前記起動状態と休止状態とに切り替えるステップは、
前記起動状態のときに前記無線通信回路及び表示装置へ電力を供給可能とする一方、休止状態のときには前記無線通信回路及び表示装置への電力供給を停止することを特徴とする請求項１６に記載の文字データ表示方法。
【請求項１８】
無線通信回路及び表示装置を制御するマイクロコンピュータを含んだ制御装置を備えて、基地局から受信したメッセージを予め設定した文字コードに基づいて前記表示装置に文字を表示する処理を前記マイクロコンピュータに実行させるプログラムであって、
前記受信したメッセージから文字コードを取得する手順と、
前記取得した文字コードに対応する文字フォントデータを、前記制御装置に設けられて予め設定した使用頻度の高い文字種の文字フォントデータのみを予め格納した文字フォントデータ格納部から検索する手順と、
前記検索の結果、文字フォントデータ格納部に該当する文字フォントデータがない場合には、前記基地局に対して文字フォントデータを要求し、前記基地局から当該文字フォントデータをダウンロードする手順と、
前記検索またはダウンロードにより取得した文字フォントデータを描画データに変換して前記表示装置に出力する手順と、
を前記マイクロコンピュータに実行させることを特徴とするプログラム。
【請求項１９】
前記制御装置の初期化時に、予め設定した要素数に基づいて前記文字フォントデータ格納部を複数の区画に区分けするハッシュテーブルを設定する手順をさらに有し、
前記文字フォントデータ格納部から検索する手順は、
前記メッセージから取得した文字コードと前記要素数に基づいてハッシュ値を求める手順と、
当該ハッシュ値に対応する前記区画を前記ハッシュテーブルから取得する手順と、
当該区画内で前記文字コードに対応する文字フォントデータを検索する手順と、
を含むことを特徴とする請求項１８に記載のプログラム。
【請求項２０】
前記文字フォントデータ格納部は、
前記予め設定した使用頻度の高い文字種の文字フォントデータのみを保持するＲＯＭ領域と、前記ダウンロードした文字フォントデータを格納する書き換え可能なＲＡＭ領域と、を有し、
前記制御装置の初期化時にハッシュテーブルを設定する手順は、
前記予め設定したハッシュテーブルの要素数に対応した複数の区画を、前記ＲＯＭ領域とＲＡＭ領域にそれぞれ設定し、
前記文字フォントデータ格納部から検索する手順は、
前記ＲＯＭ領域を検索した後に、該当する文字フォントデータがない場合には前記ＲＡＭ領域を検索することを特徴とする請求項１９に記載のプログラム。
【請求項２１】
前記文字フォントデータ格納部は、
前記各区画毎に、前記ＲＯＭ領域の終端と、前記ＲＡＭ領域の先頭を対応付けるポインタを備え、
前記文字フォントデータ格納部から検索する手順は、
前記ハッシュテーブルから取得した区画内で検索対象がＲＯＭ領域の終端に達すると、前記ポインタが指し示す前記ＲＡＭ領域の同一区画内を検索することを特徴とする請求項２０に記載のプログラム。
【請求項２２】
前記制御装置の初期化時にハッシュテーブルを設定する手順は、
前記ＲＡＭ領域の各区画の書き込み開始位置にＮＵＬＬを設定する手順を含み、
前記基地局から文字フォントデータをダウンロードする手順は、
前記基地局から取得した文字フォントデータの文字コードから前記ハッシュ値を求め、当該ハッシュ値に対応する区画に対応するＲＡＭ領域のＮＵＬＬの位置に、前記取得した文字コード及び文字フォントデータを格納することを特徴とする請求項２１に記載のプログラム。
【請求項２３】
前記制御装置は、記憶内容を保持するＲＯＭと記憶内容を変更可能なＲＡＭを含んだワンチップ型のマイクロコンピュータで構成され、
前記制御装置の初期化時にハッシュテーブルを設定する手順は、
前記予め設定した使用頻度の高い文字種の文字フォントデータのみを保持するＲＯＭ領域を前記ＲＯＭに設定し、前記ダウンロードした文字フォントデータを格納するＲＡＭ領域を前記ＲＡＭに設定し、前記各区画のＲＯＭ領域の先頭アドレスを前記ハッシュテーブルに設定し、前記各区画のＲＡＭ領域の先頭アドレスにＮＵＬＬを設定することを特徴とする請求項２０に記載のプログラム。
【請求項２４】
前記制御装置を予め設定した周期で起動状態と休止状態とに切り替える手順と、
前記起動状態のときに当該制御装置に接続されたセンサから情報を測定する手順と、
前記基地局に測定したセンサの情報を送信する手順と、
をさらに含むことを設定することを特徴とする請求項１８に記載のプログラム。
【請求項２５】
前記起動状態と休止状態とに切り替える手順は、
前記起動状態のときに前記無線通信回路及び表示装置へ電力を供給可能とする一方、休止状態のときには前記無線通信回路及び表示装置への電力供給を停止することを特徴とする請求項２４に記載のプログラム。
【請求項２６】
無線端末装置との間で送受信を行う無線通信インタフェースと、
計算機との間で送受信を行うネットワークインタフェースと、
前記計算機から無線端末装置へのメッセージを転送する制御部と、
を備えた基地局であって、
前記制御部は、
前記計算機から受信した無線端末装置宛のメッセージを格納するメッセージ格納部と、
前記メッセージに含まれる予め設定した文字コードと文字コードに対応する文字フォントデータを格納するフォントデータ格納部と、
前記無線端末装置がメッセージを要求したときに前記メッセージ格納部から検索したメッセージを前記無線通信インタフェースを介して送信するメッセージ転送部と、
前記無線端末装置から要求のあった文字コードのみについて、前記フォントデータ格納部から該当する文字フォントデータを検索して前記無線通信インタフェースから送信する文字フォントデータ提供部と、
を備えたことを特徴とする基地局。
【請求項２７】
計算機から受信した無線端末装置宛のメッセージを中継する基地局が、文字フォントデータを無線端末装置に提供する方法であって、
前記計算機から無線端末装置宛のメッセージを受信するステップと、
前記無線端末装置からメッセージの要求があるまで前記メッセージを保持するステップと、
前記無線端末装置からメッセージの要求があったときに前記メッセージを送信するステップと、
前記無線端末装置から文字フォントデータの送信要求があったときに、予め設定した文字コードと文字コードに対応する文字フォントデータから該当する文字フォントデータのみを無線端末装置へ送信するステップと、
を含むことを特徴とする文字フォントデータの提供方法。
【請求項２８】
計算機から受信した無線端末装置宛のメッセージを中継する基地局を制御する計算機に、文字フォントデータを無線端末装置に提供する処理を実行させるプログラムであって、
前記計算機から無線端末装置宛のメッセージを受信する手順と、
前記無線端末装置からメッセージの要求があるまで前記メッセージを保持する手順と、
前記無線端末装置からメッセージの要求があったときに前記メッセージを送信する手順と、
前記無線端末装置から文字フォントデータの送信要求があったときに、予め設定した文字コードと文字コードに対応する文字フォントデータから該当する文字フォントデータのみを無線端末装置へ送信する手順と、
を計算機に実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示機能付の小型のセンサネット端末において、無線経由での指令により任意の文字等を表示させる制御方式および文字フォントデータ格納方式に関する。また、このような無線センサネット端末を、小型軽量、低コストかつ、低消費電力で実現する方式に関する。
【背景技術】
【０００２】
近年、センサに無線通信機能を有する小型の電子回路を付加して、現実世界の様々な情報をリアルタイムに情報処理装置に取り込むネットワークシステム（以下、センサネットという）が検討されている。センサネットには幅広い応用が考えられており、例えば、無線回路、プロセッサ、センサ、電池、液晶などの表示装置を集積した小型電子回路により小型の無線センサネット端末を構成し、脈拍等の生体情報を常時モニタし、モニタ結果は無線通信により診断装置等に送信され、モニタ結果に基づいて健康状態を判定するといったような医療応用も考えられている（例えば、特許文献１）。
【０００３】
また、センサネットを広く実用化するためには、無線通信機能、センサ、および、電池等の電源を搭載する電子回路（以下、センサノードという）を、長時間に渡ってメンテナンスフリー、かつセンサデータを送信し続けられるものとし、かつ外形も小型化することが重要になる。このため、超小型でどこにでも設置できるセンサノードの開発が進められている。
【０００４】
また、携帯電話やＰＤＡなどの携帯端末においては、任意の文字を表示しながらＲＯＭの容量を低減するため、通常の文字フォントデータの全てをＲＯＭに格納し、機種依存文字などの外字については必要に応じてサーバからダウンロードするものが知られている（例えば、特許文献２）。
【特許文献１】特開２０００−０４１９５２号
【特許文献２】特開２００５−１５７８９１号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、人体などに装着する上記無線センサネット端末では、上記携帯電話やＰＤＡなどと異なり、常時多数の文字を表示する必要はない。しかし、上記のように測定した生体情報に基づく健康状態や、装用者の応答要求に基づく回答を無線センサネット端末に送信し、表示装置に表示する際には通常の文字フォントが必要になる。
【０００６】
ここで、無線センサネット端末では、小型軽量化を図りながら、バッテリの交換または充電周期をできるだけ長くして、極めて長期間の稼動を実現する必要があり、ワンチップマイクロコンピュータに搭載したＲＯＭやＲＡＭ以外に文字フォントデータを格納する領域を確保することができない、という問題がある。
【０００７】
例えば、無線センサネット端末において、ワンチップマイクロコンピュータの他に通常使用する漢字（例えば、ＪＩＳ第１水準、第２水準）などを全て格納したＲＯＭを付加した場合、実装面積が拡大して装置の小型化／軽量化が難しくなるのに加え、表示の際には外付けのＲＯＭをアクセスするための電力が増大することになり、電池の寿命を大幅に損なうことになる。
【０００８】
そこで本発明は、上記問題点に鑑みてなされたもので、電池の消耗の抑制と装置の小型軽量化を確保しながらも予め定めた文字コードの中で任意の文字を表示可能な端末装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、無線通信回路及び表示装置を制御する制御装置を備えて、基地局から受信したメッセージを予め設定した文字コードに基づいて前記表示装置に文字を表示する無線端末装置における文字データ表示方法であって、前記受信したメッセージから文字コードを取得し、前記取得した文字コードに対応する文字フォントデータを、前記制御装置に設けられて予め設定した使用頻度の高い文字種の文字フォントデータのみを予め格納した文字フォントデータ格納部から検索し、前記検索の結果、文字フォントデータ格納部に該当する文字フォントデータがない場合には、前記基地局に対して文字フォントデータを要求し、前記基地局から当該文字フォントデータをダウンロードし、前記検索またはダウンロードにより取得した文字フォントデータを描画データに変換して前記表示装置に出力する。
【００１０】
また、前記制御装置の初期化時に、予め設定した要素数に基づいて前記文字フォントデータ格納部を複数の区画に区分けするハッシュテーブルを設定し、前記文字フォントデータ格納部から検索する際に、前記メッセージから取得した文字コードと前記要素数に基づいてハッシュ値を求め、当該ハッシュ値に対応する前記区画を前記ハッシュテーブルから取得し、当該区画内で前記文字コードに対応する文字フォントデータを検索する。
【００１１】
また、前記文字フォントデータ格納部は、前記予め設定した使用頻度の高い文字種の文字フォントデータのみを保持するＲＯＭ領域と、前記ダウンロードした文字フォントデータを格納する書き換え可能なＲＡＭ領域とを有し、前記制御装置の初期化時にハッシュテーブルを設定し、前記予め設定したハッシュテーブルの要素数に対応した複数の区画を、前記ＲＯＭ領域とＲＡＭ領域にそれぞれ設定し、記文字フォントデータ格納部から検索するステップは、前記ＲＯＭ領域を検索した後に、該当する文字フォントデータがない場合には前記ＲＡＭ領域を検索する。
【発明の効果】
【００１２】
したがって、本発明は、予め設定した文字コードによりメッセージの伝達を行う際に、無線端末装置側には、予め設定した使用頻度の高い文字種の文字フォントデータのみを予め格納しておき、メッセージに含まれる文字コードのうち文字フォントデータがないものについてのみ基地局からダウンロードして表示装置に表示するようにしたので、毎回文字フォントデータをダウンロードする場合に比して基地局との通信時間を大幅に短縮し、無線端末装置の表示処理の高速化と消費電力の低減を図りながら、必要な文字を必ず表示することができる。また、無線端末装置に必要なメモリの容量を低減し、小型軽量化と製造コストの削減を推進できる。
【００１３】
文字フォントデータ格納部をハッシュ値に応じた区画に区分けしておくことで、文字コードの検索に要する処理時間を大幅に低減でき、制御装置の処理時間を低減することで消費電力の低減と処理の高速化を図ることができる。
【００１４】
また、基地局からダウンロードした文字フォントデータをＲＡＭ領域に格納して再利用可能とすることで、ダウンロードの機会を低減し、通信時間の短縮により無線端末装置の低消費電力化を推進できる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１６】
図１は、本発明を適用するセンサネットワーク（以下、センサネットという）の概要を示すブロック図である。センサネットは無線センサネット端末として腕輪型（または腕時計型）のセンサノード（端末装置）ＳＮ１で主にユーザ（装着者）の脈拍や温度を測定し、ユーザの健康管理やメッセージの伝達を行う。
【００１７】
＜センサネットワークの概要＞
図１において、ＳＮ１〜ＳＮ３は複数のユーザに装着された腕輪型のセンサノードである。これら腕輪型センサノードＳＮ１〜ＳＮ３は、無線ＷＬ１〜ＷＬ３により、基地局システムＢＳ１０と無線通信を行う。各センサノードＳＮ１〜３は、所定の時間間隔でセンシングした温度や脈拍等のデータを基地局システムＢＳ１０に送信する。基地局システムＢＳ１０は、各センサノードＳＮ１〜３と通信を行う際に、各センサノードＳＮ１〜３宛のメッセージがあれば所定の文字コード（例えば、シフトＪＩＳなど）によりメッセージを送信する。また、後述するように、基地局システムＢＳ１０は、各センサノードＳＮ１〜３からの要求に応じて必要な文字フォントを送信する。
【００１８】
基地局システムＢＳ１０は、広域ネットワーク網ＷＡＮ１０を介して、遠隔地にあるサーバシステムＳＶ２００やユーザ表示システムＵＣ３００に接続される。そして、基地局システムＢＳ１０は、各センサノードＳＮ１〜３が検出したセンシングデータをサーバシステムＳＶ２００やユーザ表示システムＵＣ３００に転送したり、サーバシステムＳＶ２００やユーザ表示システムＵＣ３００からのメッセージをセンサノードＳＮ１〜３へ転送する。なお、広域ネットワーク網ＷＡＮ１０は、インターネット等で構成されても良く、あるいはＬＡＮとＷＡＮを組み合わせたものでも良い。
【００１９】
また、広域ネットワーク網ＷＡＮ１０には、他の基地局システムＢＳ２０、３０も接続されており、各基地局システムＢＳ２０、３０の配下のセンサノードとサーバシステムＳＶ２００間でセンシングデータの送受信や、メッセージの送受信が行われる。
【００２０】
また、センサノードＳＮ１〜３には、緊急時等で応答を要求するスイッチＳＷ１を備えており、ユーザがスイッチＳＷ１を操作すると基地局システムＢＳ１０、広域ネットワーク網ＷＡＮ１０を介してユーザ表示システムＵＣ３００に応答要求があったことを通知する。ユーザ表示システムＵＣ３００は、センサネットの管理者などが操作するもので、上記センサノードＳＮ１〜３からの応答要求に対するメッセージを作成し、応答を要求したセンサノードＳＮ１〜３にメッセージを送信する。
【００２１】
サーバシステムＳＶ２００は、主に各センサノードＳＮ１〜３がセンシングしたデータを収集して格納し、また、サーバシステムＳＶ２００では。必要に応じてこれらデータの解析を行い、ユーザの健康状態について判定を行うことができる。
【００２２】
次に、センサネットを構成するセンサノードＳＮ１、基地局システムＢＳ１０、サーバシステムＳＶ２００、ユーザ表示システムＵＣ３００の構成について以下に説明する。
【００２３】
＜センサノードの構成＞
まず、図１に従って、腕輪型のセンサノードＳＮ１の構成の概略を説明する。腕輪型のセンサノードＳＮ１は、ワンチップ型のマイクロコンピュータ半導体集積回路チップ（ＣＰＵ１、以下、マイコンチップと略す）と、所定のクロック信号を発生する水晶振動子（Ｘ１、Ｘ２）と、基地局システムＢＳ１０と通信を行う無線通信インタフェース（ＲＦ１）と、液晶などの表示部を備えて文字などの情報を表示する表示装置（ＬＭｏｎ１）と、ユーザがユーザ表示システムＵＣ３００などに応答を要求するためのユーザインタフェーススイッチ（ＳＷ１）と、所定の周期（例えば、５分）毎に基地局システムＢＳ１０と通信するためのリアルタイムクロック回路（ＲＴＣ１）と、脈拍や体温などを測定するためのセンサ（Ｓｅｎ１、Ｓｅｎ２、Ｓｅｎ３）と、発光により注意を促すためのＬＥＤ表示器（ＬＳＣ）、音により注意を促すためのブザー（Ｂｕｚ１）、電力を供給する電池（ＢＡＴ１）、各種信号線を備えた拡張コネクタ（ＣＮ１）と、無線通信を行うアンテナ（ＡＮＴ１）から構成される。
【００２４】
マイコンチップＣＰＵ１には、書き換え可能なランダムアクセスメモリ（ＲＡＭ）や、腕輪型のセンサノードＳＮ１の制御プログラムを搭載する不揮発メモリ（ＲＯＭ）の他に、シリアル通信にて外部とデータのやり取りを実行可能なシリアルインタフェース回路（ＳＩＯ）、外部からの信号によりプログラムの割り込み実行を実現する外部割り込み回路（ＩＲＱ）、搭載プログラムで制御可能なプログラマブル入出力回路（ＰＩＯ）、アナログ信号をマイコンチップ内部で演算処理可能なデジタル信号に変換可能なアナログ−デジタル変換回路（ＡＤＣ）、および、マイコンチップＣＰＵ１の動作に必要なクロック信号を生成するクロック発生回路（ＯＳＣ）等がワンチップに集積されている。なお、図示はしないがマイコンチップＣＰＵ１には演算処理部が設けられ、この演算処理部に各種レジスタやフラグが含まれる。
【００２５】
これらの回路ブロックは、内部バスにより相互に結合され、データのやり取りや、制御が相互に可能となっている。本マイコンチップは、水晶振動子Ｘ２で生成されるクロック信号により動作する（セラミック振動子も使用可能である）。なお、無線通信インタフェースＲＦ１をマイコンチップＣＰＵ１にワンチップに集積したタイプのものも使用可能である。
【００２６】
マイコンチップＣＰＵ１内蔵のランダムアクセスメモリＲＡＭには、後述するように、本発明に特有な文字表示方式および文字フォント格納方式を実現するために、本発明に特有なデータファイルである内蔵文字フォントハッシュテーブル（ＦＨＡＳＨ１、以下、ハッシュテーブルと略す）、基地局システムＢＳ１０から受信した文字フォントを格納するダウンロード文字フォントデータファイル（ＦＮＴＤＬ１、以下、ダウンロード文字フォントと略す）、および、基地局システムＢＳ１０に要求する文字フォントを格納するダウンロードリクエスト文字フォントデータファイル（ＦＬＩＳＴ１、以下、リクエストファイルと略す）等の領域がそれぞれ設定される。
【００２７】
さらに、不揮発メモリＲＯＭには、同様に、予め設定した文字フォントを格納する基本文字フォントデータファイル（ＦＮＴＯＲＧ１、以下、基本文字フォントと略す）、および、ＲＡＭに格納されたハッシュテーブルＦＨＡＳＨ１にアクセスするためのデータを格納した、ハッシュキーファイル（ＨＡＫＥＹ１）等が格納される。
【００２８】
これら本発明に特有なデータファイルに関しては、後ほど詳しく説明する。ＲＡＭには、上記の他に、基地局システムＢＳ１０から無線通信で送られてくる表示メッセージ文字列データファイル（ＭＳＧ１）、表示装置ＬＭｏｎ１で使用する形式（例えばビットマップ・フォーマット）に文字フォントを展開した文字フォント展開データファイル（ＤＤＡＴ１）、マイコンチップＣＰＵ１の演算処理部の起動間隔等のパラメータを格納した動作パラメータファイル（ＰＡＲＡ１）、センサＳｅｎ１〜３からのデータを格納したセンシングデータファイル（ＳＤＡＴ１）が格納される。また、ＲＯＭには、マイコンチップＣＰＵ１の制御プログラムコード（ＰＲＯＧ１）が格納される。
【００２９】
マイコンチップＣＰＵ１は、上記ＲＡＭ、ＲＯＭ、ＳＩＯ等の内蔵回路に接続された、マイコンチップシリアルバス信号線（ＳＢ）、マイコンチップ外部割り込み信号線（ＩＮＴ）、マイコンチップデジタル信号線（ＤＰ）、マイコンチップアナログ信号線（ＡＰ）を、ＲＯＭに格納されたマイコンチップ搭載プログラム（ＰＲＯＧ１）により適宜制御する事により、周辺デバイス（ＲＦ１、ＬＭｏｎ１、ＳＷ１、ＲＴＣ１、Ｓｅｎ１、Ｓｅｎ２、Ｓｅｎ３、Ｂｕｚ１、ＬＳＣ１）を制御して、センシングや無線通信を実現する。
【００３０】
例えば、シリアルバス信号線ＳＢを制御して、無線通信インタフェースＲＦ１との信号データのやり取りを実現する。また、後述するようにリアルタイムクロック回路ＲＴＣ１等とのデータのやり取りも実現される。さらに、アナログ信号線ＡＰを制御して、アナログ−デジタル変換回路ＡＤＣにより、アナログタイプのセンサのデータを読み込む。さらに、プログラマブル入出力回路ＰＩＯ経由で、デジタル信号線ＤＰを制御して、腕輪型センサノードＳＮ１の回路の各ブロックを所望の動作モードに設定して、必要な動作および機能を実現する。
【００３１】
腕輪型センサノードＳＮ１では、電池の消耗を抑える目的で間欠動作という方式により低消費電力化を実現する。間欠動作は、ある一定間隔で回路を起動して、センシングや無線通信等の必要な動作を実行し、動作終了後に即座に回路を待機状態に移行させる事により、消費電力を抑える手法である。
【００３２】
例えば、腕輪型センサノードＳＮ１では、典型的には５分〜１時間程度の時間間隔でセンシングを実行すれば十分である。一方、センシングに必要な時間は、例えば比較的長い時間のかかる脈拍センシングにおいても高々数秒である。このため、残りの大半の時間、無線インタフェースＲＦ１やセンサＳｅｎ１〜３への電源供給を遮断する事により、電池の消耗を極力減らす事が可能となる。
【００３３】
上記間欠動作の実現には、タイミング信号、すなわち、マイコンチップＣＰＵ１の演算処理部を起動するための基準時間信号が不可欠である。腕輪型センサノードＳＮ１では、リアルタイムクロック回路ＲＴＣ１により間欠動作のための基準タイミング信号を生成する。具体的には、リアルタイムクロック回路ＲＴＣ１により一定時間周期の信号を作成して、マイコンチップ外部割込み信号線ＩＮＴ経由でマイコンチップに定期的に割り込みをかける。これにより、マイコンチップＣＰＵ１内のレジスタおよびＲＡＭの内容を保持したまま、クロックＸ２を停止させる、いわゆるソフトウェアスタンバイ動作モードにてマイコンチップＣＰＵ１を完全待機状態に移行させる事が可能となる。以上の制御により、例えば、待機時の消費電流を１μＡ以下に抑える事が可能となる。一方、基地局システムＢＳ１０からの起動時間間隔等のパラメータ変更要求に応じるためには、基準時間信号の時間周期を変更できるようにする必要がある。この目的で、センサノードＳＮ１では、リアルタイムクロック回路ＲＴＣ１をシリアルバス信号線ＳＢに接続して、ＲＴＣ１の周期信号の時間間隔を変更可能な構成としている。
【００３４】
次に、無線通信インタフェースＲＦ１は、マイコンチップＣＰＵ１からシリアルバス信号線ＳＢ経由で送られて来るセンサデータを所定の方式で無線信号に変換して、基地局システムＢＳ１０に無線にて送信するとともに、上記基地局システムＢＳ１０からの無線信号を受信する。基地局システムＢＳ１０からは、典型的には、無線通信に使用する無線周波数チャネルや伝送レート等の動作パラメータや、表示装置ＬＭｏｎ１に表示させたい文字メッセージ等が送られてくる。さらに、本発明に特有なものとして、表示に必要な文字フォントも基地局システムＢＳ１０から無線信号にて送られてくる。
【００３５】
マイコンチップＣＰＵ１は、これらの信号の内容を解析して必要な処理を実行する。例えば、動作パラメータの場合には、次回からのセンシングや無線通信時の設定に反映させる。また、表示メッセージの場合には、後述する本発明に特有な文字表示方式にて表示装置ＬＭｏｎ１に文字メッセージを表示させる。その他に、腕輪型のセンサノードＳＮ１では、後述するユーザインタフェーススイッチＳＷ１を使用する事により、ユーザＵＳ１の体調が急におかしくなった場合等には、無線通信にて緊急コールを基地局システムＢＳ１０やユーザ表示システムＵＣ３００に発報する事も可能である。
【００３６】
無線通信インタフェースＲＦ１は、典型的には、
（１）無線信号を生成するための発振回路、
（２）マイコンチップからのデジタル信号を無線信号に変換する変復調回路、
（３）高周波増幅器等がワンチップに集積された無線通信半導体集積回路（以下、ＲＦチップと略す）
が集積されたものが使用可能である。これらの詳細に関しては説明しないが、一般的なものが使用可能である。マイコンチップＣＰＵ１と同様に動作にはクロックが必要であり、水晶振動子Ｘ１にて生成されるクロック信号によって動作する。さらに、本無線通信インタフェースＲＦ１では、間欠動作の待機時の消費電流を抑える目的で、マイコンチップＣＰＵ１からの制御信号により水晶振動子Ｘ１を停止させて、ＲＦチップ全体を待機状態に移行させる。
【００３７】
この場合、ＲＦチップの消費電流を、典型的には１μＡ以下にまで削減可能である。さらに、必要に応じてＲＦチップの電源供給を遮断する事により、待機時の消費電流の更なる削減が可能である。なお、図１では省略してあるが、実際には、アンテナＡＮＴ１とのインピーダンス整合等の目的で、インダクタ／コンデンサ等の受動部品で構成されたマッチング回路等も実装される。
【００３８】
次に、表示装置ＬＭｏｎ１は、シリアル信号線ＳＢ経由でマイコンチップにより制御され、基地局システムＢＳ１０やユーザ表示システムＵＣ３００からのリクエストに従って、グラフィックスや文字を表示する。後述する本発明に特有な文字列表示方式および文字フォントデータ格納方式を使用する事により、任意の文字メッセージを表示可能である。
【００３９】
図２は、表示装置ＬＭｏｎ１の構成例を示す。表示装置ＬＭｏｎ１は、モノクロタイプの液晶表示部ＬＣＤと、ＬＣＤを制御するＬＣＤコントローラ（ＬＣＤＣ）から構成される。ＬＣＤコントローラＬＣＤＣは、シリアルバス信号線ＳＢ経由にて、マイコンチップＣＰＵ１によって制御される。マイコンチップＣＰＵ１からの表示リクエストに従って、ＬＣＤの表示制御信号線（ＲＷ１およびＣＬ１）の“０／１”レベルを制御する事により、ＬＣＤを構成する各々のドット（図中Ｐ００〜Ｐｊ０）の「白黒」を制御可能である。
【００４０】
これらのドットから構成される領域（例えば、１６×１６ドットの領域）をひとまとまりの表示領域（図中文字表示領域：ＧＡ１０〜ＧＡ２３）として制御する事により、表示する文字を制御可能であり、腕輪型センサノードＳＮ１を装着するユーザＵＳ１へ伝えたい文字メッセージの表示が可能である。
【００４１】
なお、文字を表示させるには予め設定した文字コードの文字フォントが必要である。本センサネットでは、予め設定した文字コード（例えば、シフトＪＩＳなど）でメッセージの伝達を行うものとする。また、表示メッセージを通常の日常生活の範囲内で違和感のないようにするためには、漢字フォントも必要である。一般に漢字フォントを利用するには、ＪＩＳ第１水準で１０２０文字、ＪＩＳ第２水準で３８９６文字が規定されているので、マイコンチップＣＰＵ１のＲＯＭに収容できないため漢字フォント専用のＲＯＭチップが必要である。しかし、腕輪型センサノードＳＮ１では、コストやサイズの制約からそのようなＲＯＭチップは搭載できない。この問題を解決するのが、後述する本発明に特有な文字表示方式および文字フォント格納方式である。
【００４２】
なお、本表示装置ＬＭｏｎ１は、小型の電池ＢＡＴ１で長時間動作可能とするために、低消費電流のものが好ましい。このため、低消費電力で表示可能なモノクロタイプのＬＣＤの表示装置が好適である。また、視認性その他の観点からあまり細かいドットは不適切である。さらに、腕輪型センサノードＳＮ１ではサイズの制約が厳しいため、典型的には全表示領域が３２×６４ドット（＝４文字×２行）程度の表示ドットのものが好適である。さらに、間欠動作による低消費電力化を実現するためには、ユーザが未使用の場合（例えば、就寝時など）には、待機状態に移行可能なタイプのものが好適である。現状のテクノロジであればスタンバイ時の消費電流が１μＡ以下のタイプのものが入手可能であり、特に本発明に特有なＬＣＤは不要で、一般的なＬＣＤが使用可能である。
【００４３】
次に、ユーザインタフェーススイッチＳＷ１は、図３で示すように表示装置ＬＭｏｎ１の下方に設けた緊急コールスイッチ（ＥＳＷ１）と、測定開始スイッチ（ＧＳＷ１）から構成される。これらのスイッチからの信号は、図１において、マイコンチップＣＰＵ１の外部割り込み信号線ＩＮＴに接続され、これらのスイッチを押す事により、マイコンチップＣＰＵ１に対して割り込み要求を発生させる事が可能である。後述するように、本発明に特有な緊急コールルーチンと組み合わせて使用する事により、緊急コールのレスポンス性能、すなわち、応答時間を劣化させる事なく、消費電力をほぼ待機状態と同等のレベルにまで抑える事が可能である。
【００４４】
図３は、腕輪型センサノードＳＮ１をユーザＵＳ１の手首（ＷＲＩＳＴ１）に装着した正面図である。この図に示すように、紙面上で表示装置ＬＭｏｎ１の下に、本ユーザインタフェーススイッチＳＷ１（ＥＳＷ１、ＧＳＷ１）を配置するのが、操作性や視認性の観点から好適である。
【００４５】
次に、センサノードＳＮ１のセンサＳｅｎ１〜３は、典型的には、腕輪型センサノードＳＮ１を装着したユーザＵＳ１の体温（皮膚温度）を取得するための温度センサ（Ｓｅｎ１）や、ユーザＵＳ１が動いているか、あるいは、安静状態にあるかといった活動状況を取得するための加速度センサ（Ｓｅｎ２）や、ユーザＵＳ１の健康状態を取得するための脈拍センサ（Ｓｅｎ３）等から構成される。アナログ信号線ＡＰ経由で、マイコンチップＣＰＵ１内蔵のアナログ−デジタル変換回路ＡＤＣを使用して、これらのセンサＳｅｎ１〜３が出力するアナログ信号をマイコンチップＣＰＵ１に読み取る。なお、間欠動作のためには、これらのセンサも未使用時には電源を遮断する必要がある。この目的で、腕輪型センサノードでは、プログラマブル入出力回路ＰＩＯにより、これらのセンサの電源遮断を制御可能な構成としている。すなわち、温度センサのように消費電流が小さく（〜５μＡ）で、マイコンチップＣＰＵ１のプログラマブル入出力回路ＰＩＯから直接電源を供給できるタイプのセンサの場合には、マイコンチップＣＰＵ１のＰＩＯにて電源オン／オフを直接コントロールする。一方、脈拍センサのように、消費電流が数ｍＡ以上のオーダーでマイコンチップＣＰＵ１のプログラマブル入出力回路ＰＩＯから直接電源供給が困難な場合には、ＰＩＯから外付けの電源遮断スイッチを制御する事により、これらのセンサの電源遮断を実現する。なお、この電源遮断スイッチとしては、ＰｃｈパワーＭＯＳＦＥＴで構成したものが好適である。本発明に特有なものではないので、ここでは詳細は説明しない。
【００４６】
また、脈拍センサＳｅｎ３としては、発光素子としての赤外線発光ダイオードと受光素子としてのフォトトランジスタ、および、フォトトランジスタからの信号を所定のレベルにまで増幅する増幅回路から構成される。なお、受光素子としては、フォトトランジスタ以外にもフォトダイオードも使用可能である。
【００４７】
次に、拡張コネクタＣＮ１は、マイコンチップＣＰＵ１のシリアルバス信号線ＳＢ、外部割り込み信号線ＩＮＴ、デジタル信号線ＤＰ、アナログ信号線ＡＰ、および、本図面には明示してないが、電源線（ＶＤＤ）、グランド線（ＧＮＤ）から構成される。この拡張コネクタに適切なインタフェースを持ったセンサを接続する事により、様々なセンサを接続可能である。例えば、湿度センサ等を接続可能である。この他に、必要に応じて、本拡張コネクタにマイコンチップＣＰＵ１のリセット信号線や、マイコンチップＣＰＵ１のＲＯＭのプログラム書き換え信号線を追加する事も可能である。例えば、リセット信号線を拡張コネクタに追加する事により、外部からのマイコンチップＣＰＵ１のリセットが実現可能となる。あるいは、プログラムが暴走した場合等に強制的にリセットする事が可能となる。同様に、マイコンチップＣＰＵ１のプログラム書き換え信号線を拡張コネクタに追加して、適切なインタフェースを有するボードおよびプログラム開発ツールと組み合わせる事により、搭載プログラムの実機環境でのデバッグや書き換え環境が実現可能である。
【００４８】
上記の他、ＬＥＤ表示装置ＬＳＣ１は、マイコンチップＣＰＵ１のデジタル信号線ＤＰによって制御され、マイコンチップＣＰＵ１のＲＯＭ搭載プログラムにより、点灯／非点灯が制御可能である。さらに、ブザーＢｕｚ１もマイコンチップＣＰＵ１のデジタル信号線ＤＰによって制御され、ブザーＢｕｚ１のオン／オフをマイコンチップＣＰＵ１のＲＯＭ搭載プログラムにより制御可能である。表示装置ＬＭｏｎ１によるメッセージ表示と組み合わせる（例えば、文字メッセージが表示されている場合にはブザーを鳴らす、あるいは、ＬＥＤをフラッシュさせる等）事により、ユーザインタフェースの視認性／利便性を向上させる事が可能となる。
【００４９】
＜基地局システムの構成＞
次に、基地局システムＢＳ１０の構成について、図１を参照しながら説明する。基地局システムＢＳ１０は、センサノードＳＮ１と通信を行うアンテナ（ＡＮＴ１０）及び無線通信インタフェース（ＲＦ１０）と、演算処理を行うプロセッサ（ＣＰＵ１０）と、広域ネットワーク網ＷＡＮ１０と通信するネットワークインタフェース（ＮＩ１０）と、メインメモリ（ＭＥＭ１０）と、ストレージ装置などで構成される二次記憶装置（ＳＴＲ１０）から構成される。
【００５０】
基地局システムＢＳ１０は、無線インタフェースＲＦ１０を介してセンサノードと無線通信するとともに、ネットワークインタフェースＮＩ１０経由で、遠隔地にあるサーバシステムＳＶ２００、および、ユーザ表示システムＵＣ３００とも通信可能である。具体的には、無線（ＷＬ１〜３０）にてセンサノードＳＮ１〜３０から送信されるセンシングデータを適宜バッファリングし、適切なタイミングで広域ネットワーク網ＷＡＮ１０経由して、サーバシステムＳＶ２００およびユーザ表示システムＵＣ３００にセンシングデータを送信する。また、ユーザ表示システムＵＣ３００から、ユーザＵＳ１に伝えたい文字メッセージが送られてきた場合には、バッファリングして適切なタイミングにて、センサノードＳＮ１に無線にて送信する。後述する本発明に特有な基地局プログラムにより、センサノードＳＮ１に無線で文字フォントをダウンロードさせる事により、センサノードＳＮ１に任意の文字メッセージを表示可能である。また、二次記憶装置ＳＴＲ１０としては、典型的には、ハードディスク等が使用可能である。コンパクトフラッシュ（登録商標、以下同じ）等の固体ディスクも使用可能である。さらに、メインメモリとしては、通常のＤＲＡＭ等が使用可能である。
【００５１】
なお、後述するように本発明に特有な文字表示方式および文字フォントデータ格納方式を実現するために、メインメモリＭＥＭ１０上に、腕輪型センサノードＳＮ１から送られてきた不足文字フォントのリストである、ダウンロードリクエスト文字フォントデータファイル（ＦＬＩＳＴ１０）が格納される。この他に、２次記憶装置ＳＴＲ１０上には、腕輪型センサノードＳＮ１がダウンロードする文字フォントデータを切り出す元となるデータファイルとして、文字フォントデータ（ＦＮＴ）を格納する。
【００５２】
上記の他、メインメモリＭＥＭ１０には、腕輪型センサノードＳＮ１から無線にて送られてきたセンシングデータをバッファリングするためのセンサデータバッファファイル（ＳＤＴ）、および、上位のユーザ表示システムＵＣ３００やサーバシステムＳＶ２００から送られて来たユーザＵＳ１に通知したい文字メッセージその他をバッファリングするためのメッセージデータバッファファイル（ＭＳＧＴ）が格納される。また、二次記憶装置ＳＴＲ１０には、基地局システムＢＳ１０の制御プログラムを搭載した制御プログラムコード（ＰＲＯＧ１０）が格納される。
【００５３】
＜サーバシステムの構成＞
次に、サーバシステムＳＶ２００は、演算処理を行うプロセッサ（ＣＰＵ２００）、広域ネットワーク網ＷＡＮ１０と通信を行うネットワークインタフェース（ＮＩ２００）、実行するプログラム等を格納するメインメモリ（ＭＥＭ２００）、ストレージ装置などで構成されてセンシングデータなどを格納する二次記憶装置（ＳＴＲ２００）から構成される。二次記憶装置ＳＴＲ２００上には、データベース（ＤＢ２００）が構築されており、基地局システムＢＳ１０経由して送られてくるセンサデータ（ＳＤＡＴ）を格納可能である。
【００５４】
＜ユーザ表示システムの構成＞
次に、ユーザ表示システムＵＣ３００は、演算処理を行うプロセッサ（ＣＰＵ３００）と、広域ネットワーク網ＷＡＮ１０と通信を行うネットワークインタフェース（ＮＩ３００）と、実行するプログラム等を格納するメインメモリ（ＭＥＭ３００）と、ストレージ装置などで構成されてデータなどを格納する二次記憶装置（ＳＴＲ３００）と、管理者やオペレータに情報を表示する表示装置（ＤＩＳＰ３００）と、入力を受け付けるユーザインタフェース装置（ＵＩ３００）から構成される。ユーザインタフェース装置ＵＩ３００は、典型的には、キーボード／マウス等から構成される。また、表示装置ＤＩＳＰ３００はＣＲＴや液晶モニタ等で構成される。これらの装置を利用して、腕輪型センサノードＳＮ１を装着したユーザＵＳ１の活動状況や脈拍等の健康状態が表示されるとともに、ユーザの健康状態／活動状態のチェックが可能である。例えば、ユーザＵＳ１に何らかの異常が生じた場合には、ネットワークインタフェースＮＩ３００経由で、センサノード装着ユーザＵＳ１に適切な文字メッセージ（例えば、「○○さん、大丈夫ですか？」等）が送信可能である。なお、ユーザ表示システムＵＣ３００、サーバシステムＳＶ２００、基地局システムＢＳ１０は、広域ネットワーク網ＷＡＮ１０に接続される限りにおいては、必ずしも、地理的に近接している必要はない。つまり、遠隔地でもユーザＵＳ１の活動状況や健康状態の表示／チェックが可能である。
【００５５】
以上が本発明による健康管理センサ・ネットワーク・システム（センサネット）のハードウェア構成の概要である。
【００５６】
＜センサノードのソフトウェアの詳細＞
以下、腕輪型センサノードＳＮ１の搭載プログラムの詳細を説明して、本発明に特有な文字表示方式および文字フォントデータ格納方式について説明する。
【００５７】
上述したように、腕輪型センサノードＳＮ１では、コスト／物理サイズ／消費電力の制約から、漢字フォントを内蔵した専用の漢字ＲＯＭチップを搭載する事は不可能である。このため、文字フォントを搭載する領域としては、マイコンチップＣＰＵ１にオンチップで内蔵されるＲＯＭおよびＲＡＭを使用する必要がある。
【００５８】
一方、日常生活で使用される漢字の文字数は５０００文字（ＪＩＳ第１水準：１０２０文字、第２水準：３８９６文字）程度必要である。つまり、１文字を１６×１６ドットのドットパターンとしてこれらの文字データのフォントデータを格納するためには、以下の容量のＲＯＭが必要である。
５０００文字×１ビット×１６×１６ドット  ＝  １２８００００ビット  ＝  １６０ＫＢ
これに対して、現状の半導体テクノロジでは、マイコンチップＣＰＵ１にオンチップで内蔵可能なＲＯＭのサイズは、高々１２８ＫＢ程度である。
【００５９】
さらに、腕輪型センサノードＳＮ１では、製造コストが重要視されるため、使用可能なマイコンチップＣＰＵ１は、内蔵ＲＯＭが３２ＫＢ程度の低コストタイプのものである。この傾向は、多少半導体テクノロジが進んだとしてもこのままであると考えられる。さらに、実際には、ＲＯＭにはこの他にもプログラムコード等を格納する必要があるため、内蔵文字フォントとして使用可能な領域はせいぜい１６ＫＢ程度（＝５００文字相当）である。さらに、漢字以外にも、アルファベット（＝１００文字程度、大小文字）や、ひらがな／カタカナ（＝あわせて９６文字）を内蔵させる必要がある。このため、マイコンチップＣＰＵ１のオンチップのＲＯＭの基本文字フォントＦＮＴＯＲＧ１に格納可能な漢字の文字数としては、結局のところ、２５０文字程度となってしまう。
【００６０】
一方、腕輪型センサノードＳＮ１では、文字メッセージは、例えば、脈拍数などに異常があった場合や、あるいは、緊急コールボタンスイッチＥＳＷ１が押された場合等に、「○○さん、大丈夫ですか？（※注○○はユーザＵＳ１の名前である）」と呼びかける場合に使用される。一般に、氏名や名前に使用される文字は多種多様である。上記の２５０文字にすべてのユーザの氏名を網羅した文字フォントデータを入れ込む事は現実的には不可能である。
【００６１】
この問題を解決するためには、単純には、センサノード搭載のマイコンチップＣＰＵ１内のＲＯＭに内蔵させられない文字フォントデータを必要な場合に基地局システムからダウンロードすれば良い。しかし、何らかの方法で、文字表示メッセージを送る先のセンサノードがどのような文字フォントを内蔵していて、どのような文字フォントを内蔵していないかを判別する必要がある。例えば、単純には、
（１）  基地局システムで、自局の配下にあるセンサノードがどのような文字フォントを内蔵しているかどうかのテーブルを全てのセンサノードについて保持する。
（２）  文字表示メッセージが送られてきたら、（１）のテーブルと対比させて、メッセージ文字列に含まれる文字コードがセンサノードに搭載されているかどうかをチェックする。
（３）  （送り先のセンサノードに）搭載されない文字フォントデータを文字表示メッセージと一緒に送信する。
という方式も可能である。しかし、このような方式では、まず、基地局システムＢＳ１０にてセンサノード毎にそれぞれ内蔵している文字フォントを管理する必要がある。一方、腕輪型センサノードＳＮ１は、ユーザＵＳ１が例えば家庭内を移動している場合にも装着して、脈拍その他の情報をセンシングする必要がある。一般に部屋仕切りにあるコンクリート壁は電波を透過させない、もしくは、透過できたとしても電波強度は減衰してしまう。このため、通常の家庭内でも、複数の基地局システムＢＳ１０が必要になる場合がありうる。
【００６２】
このような使用環境下では、上記のように単純に基地局にセンサノードの内蔵している文字フォントを管理させる方式だと問題がある。すなわち、ユーザが移動して、複数の基地局システムＢＳ間をまたがった場合には、それぞれの基地局システムＢＳ間で該当するセンサノードが内蔵している文字フォントに関する情報をやり取りしなければならない。
【００６３】
これに対して、毎回毎回必ず、センサノードＳＮ１に内蔵している基本文字フォント以外のフォントを文字メッセージと一緒にしてセンサノードにダウンロードさせる、という方式も考えられる。しかし、このような方式では、毎回、フォントデータを無線にて送る必要があるので、無線空間の使用効率が低下してしまうという問題があり、無線通信時間が増大するため電池ＢＡＴ１の電力消費も増大するという極めて大きな問題が生じることになる。さらに、腕輪型センサノードＳＮ１の一般的な使用環境下では、最もダウンロードする必要がある文字は、ユーザの人名に使用されている文字である。言い換えると、通常の使用環境下では、ユーザが決まってしまえば、ダウンロードする文字は典型的には固定される。すなわち、一度ダウンロードした文字フォントを適切な方式により保持できる仕組みさえあれば、上記のように毎回ダウンロードする必要はない。
【００６４】
以上の問題を解決するものが、本発明に特有な文字表示方式および文字フォントデータ格納方式である。本発明は、
（１）センサノード側でどの文字フォントデータを搭載しているかしていないかを高速に判断する
（２）搭載していない文字フォントデータのみを基地局システムからダウンロードする
（３）ダウンロードした文字フォントはＲＡＭに残り領域が存在する限り保持される
という点に特徴がある。特に、上述したような基地局システムＢＳ間で複雑なフォントデータの管理が不要であり、しかも、ユーザの氏名の文字フォント等、頻繁に使用される文字フォントに関しては、毎回毎回ダウンロードする必要がない。この結果、無線空間の使用効率をフォントのダウンロードにて低下させる心配のない、優れた方式である。
【００６５】
以下、図４に従って、本発明に特有な方式に関して説明する。なお、以下の図において、実線で描かれた矢印は処理の流れを表し、破線で描かれた矢印はデータの流れを表現するものとする。
【００６６】
腕輪型センサノードＳＮ１のプログラムＰＲＯＧ１においては、電源投入（Ｐ１）後、まず、ノード初期化ルーチン（Ｐ１００）を実行する。図５に、ノード初期化ルーチンの一例を示す。
【００６７】
図５では、まず、ハードウェアの初期化サブルーチン（Ｐ１１０）を実行する。ハードウェアの初期化サブルーチンでは、マイコンチップＣＰＵ１を初期化するとともにＲＡＭ上に格納された本発明に特有な各種データファイル（ＦＨＡＳＨ１、ＦＮＴＤＬ１、ＦＬＳＩＴ１、ＤＤＡＴ１、ＳＤＡＴ１、ＰＡＲＡ１等）を初期化する（Ｐ１１１）。データファイルの初期化にあたっては、あらかじめ不揮発メモリＲＯＭに格納された、動作のパラメータのデフォルト値を読み出してＲＡＭ上に確保された動作パラメータファイルＰＡＲＡ１に内容をコピーする。この動作パラメータファイルＰＡＲＡ１には、典型的には、間欠動作の基準時間信号や、無線通信で使用するチャネル、脈拍センサＳｅｎ３の動作パラメータ等が格納される。また、後述するようにＲＡＭ上でダウンロード文字フォントＦＮＴＤＬ１の領域も確保して、ＮＵＬＬポインタ（ポインタの値がＮＵＬＬ）にて初期化する。なお、ポインタとはあるデータが確保されたメモリ領域の先頭アドレスの事であり、本実施例では、文字フォントデータが搭載されたメモリ領域の先頭アドレスを指し示す。また、ＮＵＬＬは、ポインタに何もデータ（アドレス）が入っていない状態を示す。
【００６８】
次に、センサＳｅｎ１〜３への電源供給が確実にオフになるように、マイコンチップＣＰＵ１のデジタル信号線経由で各センサＳｅｎ１〜３を非活性化状態に設定する（Ｐ１１２）。さらに、表示装置ＬＭｏｎ１もシリアルバス信号線ＳＢ経由で待機状態に設定する（Ｐ１１３）。同様に、シリアルバス信号線ＳＢ経由でリアルタイムクロック回路ＲＴＣ１にアクセスして、ＲＴＣ１を初期化する（Ｐ１１４）。なお、リアルタイムクロック回路ＲＴＣ１の初期化では、Ｐ１１１で作成された動作パラメータファイルＰＡＲＡ１の内容を読み出して（ＰＲ１）、その情報を元に待機状態から動作状態に移行する時間間隔を生成するための基準時間間隔を設定する。
【００６９】
次に、ハッシュテーブルＦＨＡＳＨ１作成サブルーチン（Ｐ１２０）を実行する。本サブルーチンでは、本発明に特有な文字表示方式および文字フォント格納方式を構成する主要なデータファイルである文字フォントハッシュテーブルＦＨＡＳＨ１をＲＡＭ上に作成する。本ＦＨＡＳＨ１テーブルの作成手順の説明に先立ち、まず、これらのデータファイルの構成に関して説明する。
【００７０】
図６に、文字フォントハッシュテーブルＦＨＡＳＨ１テーブルの構成、および、ＲＡＭに格納されたダウンロード文字フォントＦＮＴＤＬ１、および、ＲＯＭに格納された基本文字フォントＦＮＴＯＲＧ１の構成を示す。なお、基本文字フォントＦＮＴＯＲＧ１はプログラムＰＲＯＧ１のコンパイル／ＲＯＭへの書き込み時、あるいは、別途、マイコンチップＣＰＵ１の内蔵ＲＯＭへの書き込みツールにて、図６に示すデータ構造にて既に書き込まれているものとする。
【００７１】
そして、基本文字フォントＦＮＴＯＲＧ１に格納する文字フォントデータとしては、上述のように、アルファベットや数字、記号（＝１００文字程度、大小文字）や、ひらがな／カタカナ（＝合計９６文字）等、頻繁に使用される必要最低限の文字種を１６ドット×１６ドットのビットマップ形式で格納しておく。すなわち、基本文字フォントＦＮＴＯＲＧ１は、センサネットで使用する文字コードのうち、予め設定した使用頻度の高い少数の文字種の文字フォントデータを格納する。この例では、アルファベットやかな等で１９６文字程度になり、基本文字フォントＦＮＴＯＲＧ１のファイルが６Ｋバイト程度の容量となって、上述のように３２ＫバイトのＲＯＭを内蔵するワンチップ型のマイコンチップＣＰＵ１において、プログラムＰＲＯＧ１等を格納するのに十分な容量を確保することができる。
【００７２】
なお、マイコンチップＣＰＵ１の内蔵ＲＯＭへの書き込み方法に関しては、本発明に特有なものではないため、ここでは詳細は説明しない。
【００７３】
図６に示すように、腕輪型センサノードＳＮ１では、内蔵される文字フォントは、必ず、ハッシュ値と呼ばれる、その文字の文字コードとＲＯＭ上に格納されたハッシュキーファイルＨＡＫＥＹ１に格納された要素数Ｎから一意に決まる値によって、有限の要素数を持つ文字フォントハッシュテーブルＦＨＡＳＨ１の何れかの領域に分類される。つまり、本発明に特有な文字表示方式および文字フォント格納方式では、表示したい文字コードに対応する文字フォントを読み出す、あるいは、そもそもその文字フォントを搭載しているかをチェックする場合にも、必ず、この文字フォントハッシュテーブルＦＨＡＳＨ１テーブルを経由してアクセスするという特徴がある。
【００７４】
ここで、文字コードとは、ある文字を表示させたい場合に、その文字を含む共通の文字表（例えば、シフトＪＩＳ等）におけるインデックス値である。通常は、文字コードをテーブルアクセス時のインデックスとして文字表を引いて、所望の文字フォントデータを得る。このテーブル内での文字の位置の持ち方によって、複数のコード体系、例えば、「シフトＪＩＳコード」や、「ＪＩＳコード」、あるいは、「ＥＵＣコード」等が存在する。なお、本発明では、以下の説明において特に明示する場合を除いては、「シフトＪＩＳコード」（以下、シフトＪＩＳと略す）を用いるものとする。シフトＪＩＳは、パソコン等の内部で文字を取り扱う際に最もよく使用されているコード体系である。なお、本発明は何ら文字コード表に影響されるものではない。シフトＪＩＳ以外のその他の文字コード体系が使用されている場合にも適用可能である。
【００７５】
文字データの文字コードのハッシュ値による分類には様々な方式が可能である。例えば、文字コードを文字フォントハッシュテーブルＦＨＡＳＨ１の要素数（Ｎ）で割った余りの値で分類する方式が可能である。このようなハッシュ演算方式により、必ず、すべての文字を文字フォントハッシュテーブルＦＨＡＳＨ１（以下、ＦＨＡＳＨ１テーブルとする）のどこかの要素にマッピングする事が可能となる。  一例をあげると、例えば、要素数Ｎ＝１６（１０進）とした場合に、文字列「日立」の「日」はシフトＪＩＳでの文字コードが０ｘ９３ＦＡ（１６進）であるので、
「日」のＦＨＡＳＨ１テーブルのインデックス＃  ＝  ０ｘ９３ＦＡ（１６進）  を  １６（１０進）で割った余り  ＝  １０（１０進）
となり、ＦＨＡＳＨ１テーブルの１０番目の領域（＃＝１０）にマッピングされる。同様に、「立」はシフトＪＩＳでの文字コードが０ｘ９７Ａ７であるので、
「立」のＦＨＡＳＨ１テーブルのインデックス  ＝  ０ｘ９７Ａ７  を  １６  で割った余り  ＝  ７
となり、ＦＨＡＳＨ１テーブルの７番目の領域（＃＝７）にマッピングされる。
【００７６】
そして、ＲＯＭ上の基本文字フォントＦＮＴＯＲＧ１と、ＲＡＭ上のダウンロード文字フォントＦＮＴＤＬ１は、ＦＨＡＳＨ１テーブルのインデックス＃の数に対応した複数の区画に区分けされ、各区画は領域ＲＯＭ０〜Ｎ−１と領域ＲＡＭ０〜Ｎ−１が設定されている。目的とするフォントを検索する際には、ハッシュ値（余り）に対応するインデックス＃のＲＯＭ領域とＲＡＭ領域のみを検索すればよいことになる。
【００７７】
以上のようにハッシュ値にて分類した文字データを、ＦＨＡＳＨ１テーブルでは、求めたハッシュ値に属する文字コードに対応する文字フォントデータの実体を格納したメモリ領域（＝ＲＡＭまたはＲＯＭ上の領域ＲＯＭ０〜Ｎ−１、ＲＡＭ０〜Ｎ−１）へのポインタＦＮＴ＿ＰＲ（＝格納領域の最初のメモリアドレス）と、そのハッシュ値に属するダウンロード文字の数を保持するダウンロード文字数（Ｓｉｚｅ）という形式にて保持する（図６のＦＨＡＳＨ１参照）。
【００７８】
このうち、フォント領域ポインタＦＮＴ＿ＰＲの指し示すメモリ領域には、
（１）文字フォントデータの文字コード（ＣＯＤＥ）
（２）文字フォントデータの実体、つまり、表示装置ＬＭｏｎ１で該当する文字を表示させる場合の各々のドットパターン（ＦＤＡＴ）
（３）次の文字フォントデータが格納されているメモリ領域へのポインタ（ＮＸＴ）
を格納する。
【００７９】
そして、文字フォントデータを格納するメモリ領域は、ハッシュ値の要素数Ｎに対応した領域（区画）に区分けされており、ＦＨＡＳＨ１テーブルのインデックス＃に対応したＮ個のＲＯＭ領域（ＲＯＭ０〜ＲＯＭＮ−１）と、Ｎ個のＲＡＭ領域（ＲＡＭ０〜Ｎ−１）に区分けされる。Ｎ個に区分けされたＲＯＭ領域とＲＡＭ領域は、図６のようにポインタＮＸＴにより接続され、例えば、ＲＯＭの領域ＲＡＭ０とＲＡＭの領域ＲＡＭ０は、ポインタＮＸＴ０ｋにより接続されて、仮想的に連続した領域として扱うことができる。
【００８０】
このようなデータ構造を採用する事により、いわゆるネスト構造により、ダウンロードされる等で格納すべき文字が増えた場合にも柔軟に対応可能な構成としている。つまり頻繁に利用される文字フォントデータをＲＯＭ領域に固定しておき、必要に応じてダウンロードした文字フォントデータをポインタＮＸＴが指し示すＲＡＭ領域に格納することで、ＲＡＭの容量が許す範囲で、各領域ＲＡＭ０〜Ｎ−１に任意の数の文字フォントデータを記憶することができるのである。なお、本データ構造の終端では、ＮＸＴポインタをいわゆるＮＵＬＬポインタとする事により、該当するハッシュ値に対応する文字データとしては、これ以上の文字データが存在しない事を表現可能である（例えば、図６のＲＡＭ２領域のアドレスＮＸＴ２ｍ＋１から始まるデータ領域のＮＸＴポインタを参照の事）。
【００８１】
すなわち、ダウンロード文字フォントＦＮＴＤＬ１には、ハッシュ値の要素数Ｎに対応した区画毎に書き込み可能な位置（アドレス）にＮＵＬＬポインタが設定され、各区画のＮＵＬＬポインタは書き込み開始位置を示す。また、センサノードＳＮ１の初期化終了の時点では、まだ、文字フォントデータのダウンロードを実施していないので、図６のＲＡＭ上のダウンロード文字フォントＦＮＴＤＬ１の領域ＲＡＭ０〜Ｎ−１には、各区画（領域ＲＡＭ０〜Ｎ−１）の先頭アドレスに全てＮＵＬＬポインタが設定される。
【００８２】
また、ダウンロードされた文字フォントデータを格納する際には、当該文字フォントデータを格納した後に、文字フォントデータＦＤＡＴの後に続くポインタＮＸＴにＮＵＬＬを設定し、終端であることを設定する。つまり、ダウンロードされた新たな文字フォントデータは、各区画の終端に順次追加されることになる。
【００８３】
そして、直前にダウンロード文字フォントＦＮＴＤＬ１に格納された文字フォントデータＦＤＡＴのポインタＮＸＴには、新たに格納した文字コードのアドレスを設定する。例えば、図６において、インデックス＃＝３の区画であるダウンロード文字フォントＦＮＴＤＬ１の領域ＲＡＭ３で、文字コードＣＯＤＥ３２とＣＯＤＥ３３の文字を格納した場合、まず、最初に文字コードＣＯＤＥ３２の文字フォントデータＦＤＡＴ３２を書き込む際には、図６の領域ＲＡＭ１のようにＮＵＬＬポインタの位置に書き込む。そして、文字フォントデータＦＤＡＴ３２の終端のポインタＮＸＴをＮＵＬＬにセットする。次に、文字コードＣＯＤＥ３３の文字フォントデータＦＤＡＴ３３を書き込む際には、ＮＵＬＬポインタの次のアドレスを格納位置として、文字コードＣＯＤＥ３３、文字フォントデータＦＤＡＴ３３を書き込み、同様に終端のポインタＮＸＴをＮＵＬＬポインタとする。
【００８４】
本発明に特有な文字フォントデータ方式では、ＲＯＭおよびＲＡＭの両方を特に区別する事なく扱う事が可能な点に特徴がある。例えば、図６の例では、ハッシュ値「０」に属する領域ＲＯＭ０には、すべてＲＯＭ上に存在する基本文字フォントＦＮＴＯＲＧ１のＲＯＭ０で表現される領域に格納された、文字コード「ＣＯＤＥ００」、文字コード「ＣＯＤＥ０１」、文字コード「ＣＯＤＥ０２」．．．、文字コード「ＣＯＤＥ０ｎ」から構成される文字データが格納される。なお、この図で文字コードＣＯＤＥと表記してあるのは、実際には、シフトＪＩＳコードの０ｘ９３ＦＡ（文字「日」に対応）や、０ｘ９７Ａ７（文字「立」に対応）等に対応する。また、文字フォントデータＦＤＡＴには、既に説明したように、文字「日」あるいは、文字「立」を、図２に示す表示装置ＬＭｏｎ１にて表示する場合の、構成ドットＰ００〜Ｐｊｊの「白黒」の表示パターン、すなわち、「白」を“０”として、「黒」を”１“とした場合のドットパターンが格納されている。
【００８５】
そして、領域ＲＯＭ０の終端となるＣＯＤＥ０ｎのデータのポインタＮＸＴ０ｋには、ハッシュ値「０」に対応するＲＡＭ上の領域ＲＡＭ０の先頭アドレスが格納される。図６の領域ＲＡＭ０では、まだ、ダウンロードされた文字フォントデータがないためアドレスＮＸＴ０ｋにはＮＵＬＬが設定されて、ハッシュ値「０」に対応する文字フォントデータの終端であることを示している。
【００８６】
ハッシュ値「１」に対応するＲＯＭの領域ＲＯＭ１、ＲＡＭの領域ＲＡＭ１も上記ＲＯＭ０，ＲＡＭ０と同様であり、ＲＯＭの領域で終わることなく必ずＲＡＭの領域にＮＵＬＬポインタを設定することで、ハッシュ値毎のＲＡＭ領域にダウンロードされた文字フォントデータを格納することができる。
【００８７】
ハッシュ値「２」に属する領域には、ＲＯＭ上の基本文字フォントＦＮＴＯＲＧ１のＲＯＭ２で表現される領域に格納された文字コード「ＣＯＤＥ２０」、文字コード「ＣＯＤＥ２１」、文字コード「ＣＯＤＥ２２」．．．、文字コード「ＣＯＤＥ２ｍ」と対応する文字フォントデータから構成される文字データの他に、ＲＡＭ上のＲＡＭ２で表現される領域に格納されたダウンロード文字フォントである文字コード「ＣＯＤＥ２ｍ＋１」、文字コード「ＣＯＤＥ２ｍ＋１」と対応する文字フォントパターンが格納される。そして、文字コード「ＣＯＤＥ２ｍ＋１」のポインタにはＮＵＬＬポインタが設定されて、ハッシュ値「２」に対応する文字フォントデータの終端であることを示している。
【００８８】
この図６に示すように、本発明の文字フォント格納方式に特有の方式として、保持される文字フォントデータは、必ず、ＲＡＭ領域で終端（次の文字データの記憶領域を指すＮＸＴポインタがＮＵＬＬ）する必要がある。本方式では、ＲＯＭ上に確保された基本文字フォントＦＮＴＯＲＧ１に格納されない文字フォントデータは、ＲＡＭ領域に確保されたダウンロード文字フォントＦＮＴＤＬ１にダウンロードされて保持される。
【００８９】
このため、ダウンロードされた文字フォントをＦＨＡＳＨ１テーブルでＲＯＭ上とＲＡＭ上で統一的に扱うためには、該当するハッシュ値に対応する領域にこれらの新しいダウンロードフォント領域を登録していく必要がある。一方、文字データを登録する際には、ＮＸＴポインタでその領域を指し示す必要がある。つまり、これまでＮＵＬＬであったＮＸＴポインタを、新しくダウンロードされた文字フォントデータが登録された領域へのポインタに書き換える必要がある。このため、文字フォント領域の終端は必ずＲＡＭ上に置く必要がある。
【００９０】
本データ構造に従って、例えば、与えられた文字コードに対応する文字フォントを搭載しているかどうかをチェックする場合には、以下のような手順となる。
（１）  ハッシュキーファイルＨＡＫＥＹ１から要素数Ｎ（例えば、１６）を参照して、チェックしたい文字データの文字コードに対応するハッシュ値を計算
（２） 求めたハッシュ値からチェックしたい文字フォントデータが格納されている領域の先頭ポインタを取得
（３）  上記のポインタが指し示すメモリ領域から文字コードを取り出して、与えられた文字コードに該当するかをチェック。該当しなければ、ＮＸＴポインタを読み出して、再度（３）を実行。
（４）  （３）の結果、ＮＸＴポインタがＮＵＬＬポインタだったら、与えられた文字コードに該当する文字データは搭載していないと判断
つまり、特にＲＯＭ上の基本文字フォントＦＮＴＯＲＧ１か、あるいは、ＲＡＭ上のダウンロード文字フォントＦＮＴＤＬ１かの違いを全く意識せずに、文字データに対する処理が実行可能である。この結果、プログラム構造が簡略化され、テストや品質保証が行いやすくなるというメリットがある。
【００９１】
以上のような本発明に特有な形式にて文字フォントを管理する理由は以下である。まず第１に、既に説明したように本方式では、ＲＯＭ／ＲＡＭの違いを意識せずに文字フォントデータを扱える点に特徴がある。これにより、センサノードＳＮ１のプログラムが簡素化でき、保守性が良くなる。その結果、バグの少ない簡単明快なプログラム構造が実現される。
【００９２】
第２の理由は、ハッシュテーブル（ＦＨＡＳＨ１テーブル）により検索の高速化が可能となり、その結果、センサノード側で与えられた文字コードの文字フォントを搭載しているかどうかをチェックして、搭載していない文字フォントのみを基地局システムＢＳ１０からダウンロードする、という本発明に特有な文字表示方式が実用時間内で実現可能となるからである。
【００９３】
以下、ハッシュ方式による高速化の効果を説明する。上記ハッシュ方式では、検索対象を絞り込む、具体的には、検索対象の文字コードをハッシュ値で分類されたサブグループに絞り込めるので、検索回数を減らす事が可能となり、その結果、検索時間が短縮される。例えば、本実施形態の場合、平均検索回数は、
平均検索回数  ＝  内蔵する文字フォントデータの総数／Ｎ／２  ※Ｎはハッシュテーブルの要素数
に短縮される。このため、該当する文字コードに対応するフォントデータを持つかどうかの検索にかかる時間を、例えば、Ｎ＝１６の場合には２桁以上短縮する事が可能となる。これにより、最小限のメモリリソースにて、実用的な時間内で与えられた文字コードに対応する文字フォントを持っているかをセンサノード側で検索する事が可能となる。その結果、以下に述べるように、基地局システムＢＳ１０にて、それぞれのセンサノードがどのような文字フォントを持っているかを管理する必要がなくなる。つまり、本発明に特有な文字表示方式、すなわち、
（１）文字コードをセンサノードに送信して、
（２）センサノード側で該当する文字フォントを搭載しているかをチェックして、
（３）搭載していない文字フォントのみを基地局システムからリクエストしてダウンロードして来る、
という方式が実用的な時間内にて実行可能となる。つまり、特に基地局システムＢＳ１０にて配下のセンサノードＳＮ１〜３が内蔵するフォントを管理する必要なくなるため、複数の基地局システム間を問題なく移動可能なセンサネット・システムが実現可能となる。      
【００９４】
さらに、毎回毎回、文字フォントデータをダウンロードする必要がなくなるため、無線空間の使用効率が低下したり、電池ＢＡＴ１の電力消費が増大するという問題も発生しない。
【００９５】
以上、本発明に特有な文字フォントデータの格納方式の構成とその特徴に関して説明した。次に、図５に示したＰ１２０のＦＨＡＳＨ１テーブルの作成ルーチンに関して説明する。本ハッシュテーブルＦＨＡＳＨ１作成サブルーチンでは、基本文字フォントＦＮＴＯＲＧ１を読み込んでから、以上のデータ構造を持ったＦＨＡＳＨ１テーブルを作成する。以下、図５に従って、手順を説明する。
【００９６】
まず、基本文字フォントＦＮＴＯＲＧ１を読み込み、ＲＯＭ領域にプログラムコンパイル時、あるいは、書き込み時に登録してある、文字フォントデータの先頭のメモリ番地（ポインタ）を読み込む（Ｐ１２１）。次に、そのメモリ番地から登録済みの文字コードを読み込む（Ｐ１２２）。次に、読み込んだ文字コードに、ハッシュキーファイルＨＡＫＥＹ１に記載されているハッシュ値の計算方式（要素数Ｎ及び除算など）を適用して、その文字コードに対応するハッシュ値を取得する（Ｐ１２３）。最後に、Ｐ１２１で読み込んだポインタを、ＦＨＡＳＨ１テーブルの該当するハッシュ値のフィールド（ポインタＦＮＴ＿ＰＲ）に登録する（Ｐ１２４）。なお、ＦＨＡＳＨ１テーブルのＳｉｚｅフィールドに関しては、０にクリアする（※Ｓｉｚｅはそのハッシュ値の要素に登録されているＲＡＭ上のダウンロード文字フォントの数である）。また、基本文字フォントＦＮＴＯＲＧ１の終端の文字フォントデータのポインタＮＸＴが指し示すＲＡＭ上のダウンロード文字フォントＦＮＴＤＬ１のアドレスに「ＮＵＬＬ」を設定しておく。以上の処理を、全てのＲＯＭ領域（ＲＯＭ０〜Ｎ、図６）について繰り返して実行し、ＦＨＡＳＨ１テーブルを完成させる。
【００９７】
すなわち、図６において、ＲＯＭに格納されたハッシュキーファイルＨＡＫＥＹ１から読み込んだ要素数Ｎにより、ＦＨＡＳＨ１テーブルの文字フォントデータ格納領域であるＲＯＭ上の基本文字フォントＦＮＴＯＲＧ１とＲＡＭ上のダウンロード文字フォントＦＮＴＤＬ１を区分けするインデックス＃（区画数）が決まり、各インデックス＃（０〜Ｎ−１）毎にＳｉｚｅとポインタＦＮＴ＿ＰＲのフィールドを設定する。
【００９８】
そして、ＲＯＭ領域の基本文字フォントＦＮＴＯＲＧ１の先頭から読み込みを行って、文字コードからハッシュ値を求めることで、その文字コード及び文字フォントデータがどの区画（インデックス＃）に属するかが決定される。そして、各区画の終端の文字フォントデータのポインタＮＸＴは、ＲＡＭ上のダウンロード文字フォントＦＮＴＤＬ１の当該区画の先頭アドレスを指し示すので、このアドレスにＮＵＬＬを設定して初期化しておく。また、最初に読み込んだ文字コードのアドレスを当該区画の先頭アドレスとしてハッシュテーブルＦＨＡＳＨ１のポインタＦＮＴ＿ＰＲに設定する。なお、上記初期化の時点では、ＲＡＭ上のダウンロード文字フォントＦＮＴＤＬ１には、まだ文字フォントデータが書き込まれていないので、Ｓｉｚｅは全て０とする。上記の処理により、各区画毎のハッシュテーブルＦＨＡＳＨ１が生成される。
【００９９】
上記の処理の他、ＲＯＭ上の基本文字フォントＦＮＴＯＲＧ１の内容は固定されており、また、ハッシュキーファイルＨＡＫＥＹ１もＲＯＭ上に固定されているので、要素数Ｎと各区画の先頭アドレスも既知であるから、ポインタＦＮＴ＿ＰＲには既知のアドレスである基本文字フォントＦＮＴＯＲＧ１のＡＤＤ０〜ＡＤＤＮ−１の値を、プログラムにより設定するようにしてもよい。
【０１００】
次に、図５に示す基地局サーチサブルーチン（Ｐ１３０）を実行する。本サブルーチンにおいては、まず、ＲＦチップ（ＲＦ１）のクロックを立ち上げて（必要ならば電源も立ち上げる）、ＲＦチップＲＦ１を起動する（Ｐ１３１）。次に、ＲＦチップＲＦ１を送信状態に設定して、基地局システムＢＳ１０に対して、基地局サーチビーコン信号を送信し、自らが電源投入され通信可能状態になった旨を通知する（Ｐ１３２）。
【０１０１】
次にＲＦチップＲＦ１を受信状態に切り替えて、サーチビーコン信号に対する基地局システムＢＳ１０からの応答を待つ。基地局システムＢＳ１０からの応答信号を正常に受信した場合には、使用した無線チャネル等の情報を、動作パラメータファイルＰＡＲＡ１に格納する（ＰＷ１）。
【０１０２】
以下の無線通信においては、この動作パラメータファイルＰＡＲＡ１の設定パラメータを使用する。なお、基地局システムＢＳ１０からの応答が受信されない場合には、使用する無線チャネルを変更して、再度サブルーチンＰ１３２より実行する。最後に、ＲＦチップＲＦ１のクロックを停止して（必要に応じて電源もオフ）にして（Ｐ１３５）、次のルーチンである図４の動作モード決定ルーチンに移動する。
【０１０３】
上記図５のノード初期化ルーチンＰ１００が終了したら、次に、図４の動作モード決定ルーチン（Ｐ２００）を実行する。本動作モード決定ルーチンからは、データ検知ルーチン（Ｐ３００）、データ送受信ルーチン（Ｐ４００）、待機移行ルーチン（Ｐ５１０）の複数のルーチンが実行可能である（図４）。
【０１０４】
本ルーチンでは、スケジューラにより、これらの３つのルーチンを適宜起動可能である。典型的には、データ検知ルーチンＰ３００→データ送受信ルーチンＰ４００→待機移行ルーチンＰ５１０の順で各ルーチン起動する事により、間欠動作を実現する。本発明に特有な文字表示方式は、データ送受信ルーチンＰ４００から起動される。なお、起動順序その他に関しては、動作パラメータファイルＰＡＲＡ１により変更可能である。本実施形態では、本発明に特有な部分に絞って説明するため、以降の実施形態ではこの起動順序にて説明するが、特にこの起動順序以外の場合にも本発明は適用可能である。
【０１０５】
まず、データ検知ルーチンＰ３００では、腕輪型センサノードＳＮ１に搭載するセンサ（Ｓｅｎ１〜３）を所定の手続きに従って起動して、温度／加速度／脈拍等をセンシングするルーチンである。個別のセンシング方法に関しては、特に本発明に特有なものではないので、ここでは、詳細な説明は省略する。本ルーチンでは、まず、センシングに必要なマイコンチップＣＰＵ１内蔵のＡＤ変換回路ＡＤＣを起動し、次に、センサ電源を起動する。ＡＤ変換回路ＡＤＣやセンサ電源を起動するのは、既に説明したように、間欠動作のために、これらの周辺回路は、通常は電源オフ状態に設定しているからである。
【０１０６】
ＡＤ変換回路ＡＤＣおよびセンサ電源を起動したら、センサＳｅｎ１〜３の出力が安定化するまで待ち、その後、ＡＤ変換回路ＡＤＣにセンサからのデータを取り込む。さらに、必要に応じてＡＤ変換回路ＡＤＣから得られたデータに関して必要な信号処理を行い、結果をセンサデータファイルＳＤＡＴ１に書き出す。例えば、光学方式の脈拍センサＳｅｎ３では、得られたＡＤ変換後のデータから光量のピークとピークの間の時間差を算出して、その時間差情報から１分間の脈拍数を算出する。
【０１０７】
センシングが終了したら、ＡＤ変換回路ＡＤＣの電源およびセンサ電源をオフにして、動作モード決定ルーチンＰ２００に処理を戻す。
【０１０８】
以上の手順にてデータ検知ルーチンＰ３００が終了したら、次にデータ送受信ルーチン（Ｐ４００）を起動する。本ルーチンでは、データ検知ルーチンにて取得されたセンサデータを基地局システムＢＳ１０に送信するとともに、基地局システムＢＳ１０からのリクエストに応じて、本発明に特有な文字表示方式および文字フォントデータ格納方式を使用した、メッセージ表示ルーチン（Ｐ８００）を実行する。以下、図４に従って、本ルーチンに関して説明する。
【０１０９】
本ルーチンでは、まず、センサデータ送受信サブルーチン（Ｐ４２０）にて、センサデータファイルＳＤＡＴ１の内容を読み出して基地局システムＢＳ１０に無線送信する。まず、センサデータＳＤＡＴ１を読み出し、無線通信用の所定のデータフォーマットに加工する（Ｐ４２１）。典型的には、エラー訂正コードなどをセンサデータに付加する。無線通信用のデータフォーマットに加工した後に、ＲＦチップＲＦ１を送信状態に設定して、先程のデータを無線送信する（Ｐ４２２）。無線送信終了後、ＲＦチップＲＦ１を受信状態に設定し、基地局システムＢＳ１０からＡＣＫ信号が送信されてくるのを待ち受ける（Ｐ４２３）。ＡＣＫ信号は、無線通信にてポピュラーな信号であり、無線送信したデータが問題なく目的の相手先に届いているかを確認する目的で使用される信号である。
【０１１０】
一定時間待ってもＡＣＫ信号が基地局システムＢＳ１０から送信されてこない場合には、例えば、再度送信する事によって、確実に基地局システムＢＳ１０にセンサデータＳＤＡＴ１を届ける事が可能となる。
【０１１１】
次に、コマンド取得サブルーチン（Ｐ４３０）を実行する。コマンド取得サブルーチンＰ４３０では、腕輪型センサノードＳＮ１の動作パラメータの設定変更や、文字メッセージ表示リクエスト等の基地局システムＢＳ１０からノード側への動作リクエストを取得するためのサブルーチンである。
【０１１２】
本サブルーチンでは、まず、ＲＦチップＲＦ１を送信状態に切り替えて、基地局システムＢＳ１０に対して、自分宛に送信したいコマンドがないかどうかを問いかける信号を送信する（Ｐ４３１）。問いかけ信号を送信した後に、直ちにＲＦチップＲＦ１を受信状態に切り替えて、ＡＣＫ信号の受信待ちを行う（Ｐ４３２）。基地局システムＢＳ１０では、問いかけに対して、発送したいコマンド（＝動作パラメータの変更や表示したいメッセージ）があるかどうかをチェックして、上記ＡＣＫ信号に発送したいコマンドがあるかどうかに関してのフラグを入れ込んで、センサノードＳＮ１にＡＣＫ信号を返答する。センサノード側では、ＡＣＫ信号を解析して、基地局システムからのコマンドが存在しない場合には、Ｐ４４０に処理を移して、ＲＦチップＲＦ１のクロックを停止して、電源を落とし、動作モード決定ルーチンＰ２００に移行する。
【０１１３】
一方、コマンドが存在する場合には、ＲＦチップＲＦ１を引き続き受信状態で待機させ、コマンドが基地局システムＢＳ１０から送信されてくるのを待ち受ける（Ｐ４３３）。コマンドを受信したら、直ちに、ＲＦチップＲＦ１を送信状態に変更する。基地局システムＢＳ１０に対して、正常にコマンドが受信できた旨のＡＣＫ信号を送信して（Ｐ４３４）、その後、Ｐ４４０に処理を移行して本サブルーチンから抜ける。なお、上記Ｐ４３３にて表示メッセージリクエストを受信した場合には、表示したいメッセージの文字列を表示メッセージ文字列データファイル（ＭＳＧ１）に書き出す（ＤＷ２）。
【０１１４】
上記コマンド取得ルーチンＰ４３０の目的は以下である。すなわち、腕輪型センサノードＳＮ１では、消費電力を削減するため、ＲＦチップＲＦ１は必要な場合のみ、つまり、センシングしたセンサデータを基地局システムＢＳ１０に送信する場合しか起動しない（間欠動作）。一方、基地局システムＢＳ１０からは、例えば、センサの動作パラメータを変更したり、表示装置ＬＭｏｎ１のメッセージを変更したり、腕輪型センサノードＳＮ１に対してリクエストを伝えたい場合が存在する。これらのリクエストは、通常、腕輪型センサノードＳＮ１の起動間隔とは非同期に、ユーザ表示システムＵＣ３００等から基地局システムＢＳ１０に伝えられる。例えば、ユーザ表示システムＵＣ３００で監視員がチェックした結果、腕輪型センサノードＳＮ１を装着しているユーザＵＳ１の体調異常を検知して、腕輪型センサノードＳＮ１の装着ユーザに問いかけメッセージを伝える、というのが典型的に想定されるパターンである。この場合には、必ずしも、ユーザ表示システムＵＣ３００からリクエストが発信された時点でセンサノード側が起動して、しかも受信状態で待機している事が保証されている訳ではない。一方、センサノード側を間欠動作させずに、ずっと受信状態に待機させておけば、ユーザ表示システムＵＣ３００からの文字表示リクエストは必ずセンサノード側まで確実に伝わる事が保証される。しかし、既に説明したように、このような方式では、電池ＢＡＴ１が即座に消耗してしまい、使いものにならない。この問題を解決するため、本方式では、まず、基地局システムＢＳ１０にてユーザ表示システムＵＣ３００その他からのセンサノードＳＮ１への表示メッセージ等のリクエストをバッファリングする。該当するセンサノードＳＮ１がセンサデータを送信した場合に、必ず、自分宛にダウンロードしたいデータがあるかどうかを問い合わせて、必要なリクエストを必ず受信させる。本方式により、センサノードＳＮ１の低消費電力とユーザ表示システムＵＣ３００他からのリクエストへの対応の両方が実現される。
【０１１５】
以上のデータ送受信ルーチンＰ４００終了後に、基地局システムＢＳ１０からのコマンドが存在する場合には、コマンド解析ルーチン（Ｐ４５０）を実行する。本ルーチンでは、基地局システムＢＳ１０から送られてきた信号を解析して（Ｐ４５１）、まず、動作パラメータ変更リクエストか、あるいは、表示装置ＬＭｏｎ１への表示メッセージリクエスト等のコマンドかの判定を行う。
【０１１６】
動作パラメータ変更リクエストの場合には、パラメータ設定サブルーチン（Ｐ４５２）により、動作パラメータファイルＰＡＲＡ１を更新し、次回からの、センシングや無線通信の設定に反映させる。一方、表示メッセージリクエスト等のコマンドの場合には、コマンド実行サブルーチン（Ｐ７００）にて、必要な処理を実行する。本サブルーチンにて必要な処理を実行後、動作モード決定ルーチンＰ２００を実行する。
【０１１７】
以下、コマンド実行サブルーチンＰ７００について図７を参照しながら説明する。本サブルーチン内では、以下に説明するように、本発明に特有な文字表示方式である、メッセージ表示サブルーチン（Ｐ８００）が実行される。メッセージ表示サブルーチンＰ８００の実行に先立ち、まず、リクエストコマンドの中身を解析して、実行すべきコマンドが何であるのか、例えば、文字メッセージを表示するリクエストか、あるいは、ブザーＢｕｚ１を鳴らすリクエストかの判定を行う（Ｐ７１０）。
【０１１８】
ブザーＢｕｚ１のリクエストである場合には、Ｐ７２０にてブザーを鳴らした後に、動作決定モードルーチンＰ２００に移行する。文字メッセージを表示する場合には、本発明に特有な文字表示方式を使用したメッセージ表示サブルーチンＰ８００を起動する。以下、本サブルーチンの詳細について説明する。
【０１１９】
本サブルーチンＰ８００では、まず、文字フォント検索／読み出しサブルーチン（Ｐ８１０）にて、表示メッセージ文字列データファイルＭＳＧ１に与えられた文字メッセージに含まれる文字に関して、その文字に対応する文字フォントデータをセンサノードＳＮ１のＲＯＭまたはＲＡＭに搭載しているかどうかをチェックする。同時に、搭載している文字の文字フォントデータに関しては、表示装置ＬＭｏｎ１に展開して渡す必要があるため、本サブルーチンにて、その文字フォントデータも読み出して用意する。以下、具体的な処理の流れに関して説明する。
【０１２０】
まず、表示メッセージ文字列データファイルＭＳＧ１から、表示メッセージを構成する文字列を読み出し、その文字列を構成する文字の文字コードを取得する（Ｐ８１１）。次に、既に説明した手順にて、その文字コードと、ハッシュキーファイルＨＡＫＥＹ１に記載されている計算方式（要素数Ｎなど）から、その文字コードに対応するハッシュ値を算出する（Ｐ８１２）。次に、算出したハッシュ値をインデックスとして、本発明に特有なデータ格納方式である、ＦＨＡＳＨ１テーブルをアクセスして、その文字コードが分類され格納されているメモリ領域ＲＯＭ０〜Ｎ−１、ＲＡＭ０〜Ｎ−１の先頭ポインタＦＮＴ＿ＰＲ（アドレス）を取得する（Ｐ８１４）。後は、既に説明した手順に従って、メモリ領域ＲＯＭ０〜Ｎ−１、ＲＡＭ０〜Ｎ−１に格納されている文字コードと与えられた文字コードを比較する（Ｐ８１５、図６参照）。文字コードが一致したら、文字フォントデータ領域からフォントデータＦＤＡＴを読み出す。
【０１２１】
一方、文字コードが一致しないまま、ＮＸＴポインタがＮＵＬＬとなったら、その文字は搭載していないと判断して、リクエストファイルＦＬＩＳＴ１にその文字コードを書き出す（ＤＷ１０）。以上の処理を、表示メッセージ文字列データファイルＭＳＧ１に含まれるすべての文字に対して実行し、ダウンロードが必要な文字コードをリクエストファイルＦＬＩＳＴ１ファイルにすべて書き出す。
【０１２２】
最後に、搭載している文字に関してのみ、文字フォントデータＦＤＡＴを、表示装置ＬＭｏｎ１に渡す表示データファイルである、文字フォント展開データファイル（ＤＤＡＴ１）に書き出す（ＤＷ１）。以上の手順にて、搭載していない文字コードの特定作業が終了する。
【０１２３】
以下、フォントダウンロードサブルーチン（Ｐ８２０）にて、搭載していない文字フォントについてのみ、基地局システムＢＳ１０に文字フォントデータのダウンロードをリクエストする。以下、処理の流れを説明する。
【０１２４】
本サブルーチンでは、まず、ダウンロードが必要な文字コードをリクエストファイルＦＬＩＳＴ１ファイルから読み出して、基地局システムＢＳ１０に無線送信する（Ｐ８２１）。なお、本Ｐ８２１のルーチンでは、既に説明したＰ４２１サブルーチンと同様に、エラー訂正コードやヘッダ等を添付した上で無線送信する。次に受信待機状態に移行して、基地局システムＢＳ１０から正しくリクエストを受信したというＡＣＫ信号が送信されてくるのを待ち受ける（Ｐ８２２）。
【０１２５】
一定時間待ってもＡＣＫ信号が受信されない場合には、何らかのトラブルにて、基地局システムＢＳ１０まで文字フォントダウンロードリクエストがうまく届かなかったと判断して、再度、文字フォントダウンロードリクエストを送信する。次にＡＣＫ信号が問題なく受信されたら、受信状態を維持したまま、文字フォントデータが送信されてくるのを待機する（Ｐ８２３）。
【０１２６】
文字フォントデータが受信されたら、ダウンロードフォント登録サブルーチン（Ｐ８４０）を起動して、受信した文字フォントデータを、既に説明した、図６に示す本発明に特有なダウンロード文字フォントＦＮＴＤＬ１に登録する。本ダウンロードフォント登録サブルーチンの詳細に関しては、後ほど説明する。以上のようにして、ダウンロードフォントが登録されたら、問題なく登録された旨を基地局システムＢＳ１０に伝えるために、基地局システムＢＳ１０に対してＡＣＫ信号を送信する（Ｐ８２４）。ダウンロードすべき文字フォントが複数あって、１回の無線通信ではダウンロードできない場合には、上記手順を必要回数繰り返して、必要な文字フォントデータをすべてダウンロードする。最後に、ダウンロード文字フォントＦＮＴＤＬ１に登録した文字フォントデータを読み出し、文字フォント展開データファイルＤＤＡＴ１に書き出して、ＬＭｏｎ１データ表示サブルーチン（Ｐ８３０）を起動する。以下、ＬＭｏｎ１データ表示ルーチンの説明に先立ち、ダウンロードフォント登録サブルーチンＰ８４０に関して説明する。
【０１２７】
ダウンロードフォント登録サブルーチンＰ８４０は、基地局システムＢＳ１０からダウンロードされた文字フォントを、以降の文字表示でも活用可能とするため、図６に示した本発明に特有なダウンロード文字フォントＦＮＴＤＬ１（ＲＡＭ０〜Ｎ−１）に格納するためのルーチンである。本ルーチンを実行する事により、今回の表示メッセージに限らずに、該当する文字に関しては、以降の文字表示メッセージリクエストでも、無線ダウンロードをする必要なく表示可能となる。つまり、無線区間の使用効率を悪化させなくする事が可能となる。
【０１２８】
以下、本サブルーチンの詳細を説明する。本サブルーチンでは、まず、ＲＡＭ上に確保されたダウンロード文字フォントＦＮＴＤＬ１の使用サイズを計算して、ＲＡＭに空があるかどうかをチェックする（Ｐ８４１）。チェックの結果、ＲＡＭの全領域を使い切っている、あるいは、ほとんど残りがない場合には、ＦＮＴＤＬ１領域開放ルーチン（Ｐ８４６）にて、必要なサイズのＲＡＭ領域を解放する。このＰ８４６では、単純には、ＲＡＭ領域の先頭あるいは末端から解放して行く。この他にも、例えば、文字フォントデータ毎に参照数のフィールドを追加して、参照数の一番少ないものから消して行く、という方式も可能である。なお、どのようなポリシーあるいはアルゴリズムにて領域を解放するかに関しては様々なものが知られており、また、特に本発明に特有な方式しか使用できないという制限もないので、ここでは詳細は説明しない。
【０１２９】
なお、ＲＡＭの使用領域の計算にあたっては、既に図６にて説明した、ＦＨＡＳＨ１テーブルのＳｉｚｅフィールドを参照する、つまり、ダウンロードした文字フォントデータの容量（文字数Ｓｉｚｅに１文字当たりのビットマップの容量を乗じた値）を足し合わせる事により高速に使用済みのＲＡＭ領域のサイズ計算が可能となる。なお、ＲＡＭサイズがあまり潤沢でなく、少しでも使用ＲＡＭ領域を節約したい場合には、Ｓｉｚｅフィールドを設置せずに、ＲＡＭ０〜Ｎ−１の領域のサイズを足し合わせて行く事により、使用領域のＲＡＭサイズを算出する事も可能である。
【０１３０】
以上の手順にて、ＲＡＭ領域を確保したら、次に、登録するダウンロード文字フォントデータの文字コードを読み出し（Ｐ８４２）、既に説明した方式にてハッシュ値を計算し（Ｐ８４３）、その結果から、ＲＡＭ上のどの領域に登録すべきかを検索して、さらに、必要に応じて文字フォントデータの実体を格納する領域を新規に確保して（Ｐ８４４）、ＲＡＭ上の領域に登録する（Ｐ８４５）。なお、登録にあたっては、もっとも単純には、一番末端、すなわち、図６にてＮＸＴポインタがＮＵＬＬ終端されている後ろにつなげればよい（正確には、ＮＵＬＬポインタを登録したい文字フォントデータ領域へのポインタに書き換える）。しかし、必ずしも、末端につないでいく必要はない。以上の処理を、ダウンロードした文字すべてに繰り返して、本サブルーチンを終了する。
【０１３１】
以下、ＬＭｏｎ１データ表示ルーチンについて説明する。ＬＭｏｎ１データ表示ルーチン（Ｐ８３０）にて、表示装置ＬＭｏｎ１を待機状態からアクティブ状態に活性化（Ｐ８３１）させた後に、文字フォント展開データファイルＤＤＡＴ１の内容を読み込んで表示装置ＬＭｏｎ１に転送して（Ｐ８３２）、ユーザ表示システムＵＣ３００他からのメッセージを表示する。メッセージ表示後は、例えば、ユーザＵＳ１の反応を待って処理を変更する（Ｐ８３３）。例えば、ユーザインタフェーススイッチＳＷ１が押されるかどうかを待って、特定のスイッチが押されたら、表示装置ＬＭｏｎ１を非活性化して（Ｐ８３４）、動作モード決定サブルーチンＰ２００に移行する。なお、本サブルーチンでは、処理の流れを説明のために簡略化したが、ユーザからの応答を待つ以外にも様々な処理が可能である。特に本発明の文字表示方式および文字データファイル格納方式に特有な処理ではないので、ここでは、詳細な説明は省略する。
【０１３２】
以上が、腕輪型センサノードＳＮ１で実行される処理の詳細と、本発明に特有な文字表示方式および文字フォントデータ格納方式である。
【０１３３】
以下、本発明に特有な文字表示方式Ｐ８００を起動するもう一つのルーチンである、緊急発呼ルーチン（Ｐ６００）に関して説明する。緊急発報ルーチンは、腕輪型センサノードＳＮ１を装着したユーザＵＳ１が体調が悪くなった場合等に緊急呼び出しを実行するためのルーチンである。既に説明したようにユーザと文字メッセージのやり取りが必要となる。
【０１３４】
以下、図８に従って、処理の流れを説明する。本緊急発報ルーチンでは、まず、誤動作防止サブルーチン（Ｐ６１０）を実行する。誤動作防止サブルーチンでは、緊急コールスイッチＥＳＷ１の誤押しによる誤発呼を防止するためのルーチンである。具体的には、緊急コールスイッチＥＳＷ１のイベントを検知したら、一定時間待機して、典型的には、数秒後にもう一度ＥＳＷ１の状態を読み出しに行く。ＥＳＷ１が押され続けていない場合には、「スイッチの誤押し」と判断して、再度待機状態へともどる。ＥＳＷ１が依然として押され続けていたら正式に緊急発呼と認定して、次の緊急データ送信サブルーチン（Ｐ６２０）を実行する。
【０１３５】
本緊急データ送信サブルーチンでは、まず、ＲＦチップＲＦ１を起動する（Ｐ６２１）。次に、基地局システムＢＳ１０に向けて送信する緊急データを作成する（Ｐ６２２）。次に、ＲＦチップＲＦ１を送信状態に設定して、緊急データを送信（Ｐ６２３）する。さらに、ＲＦチップＲＦ１を受信状態に設定して、緊急コールが確実に基地局システムＢＳ１０に届いたかどうかをチェックするために基地局からのＡＣＫ信号を待ち受ける。一定時間経過してもＡＣＫ信号が受信されない場合には再度緊急データ送信を実行する。このようにして、緊急コールが確実に基地局システムＢＳ１０に伝達されるようにする。なお、図８に示すように、必要に応じて、Ｐ６２５〜Ｐ６２７ルーチンを経由して、既に説明した本発明に特有な文字表示方式を実装したメッセージ表示ルーチンＰ８００を起動して、基地局システムＢＳ１０からのメッセージ、例えば、「○○さん、大丈夫ですか？」等のメッセージを表示装置ＬＭｏｎ１に表示させる事も可能である。
【０１３６】
図９には、本実施形態で説明した健康管理センサ・ネットワーク・システムにて、基地局システムＢＳ１０にて取得されるセンサノードＳＮ１〜３のセンサデータ（ＳＤＴ）の一例を示す。
【０１３７】
基地局システムＢＳ１０が取得したセンサデータは、センサノードＳＮ１〜３に予め割り当てたセンサノードＩＤ毎に、各センサノード内のセンサＩＤ（温度、加速度、脈拍の識別子）、測定値、時刻などの順に格納される。
【０１３８】
また、図１０〜図１２に基地局システムＢＳ１０の制御プログラムのフローチャートを示す。これらの図に示すように、基地局システムＢＳ１０においても、本発明に特有な文字表示方式を実現するために、特有な処理が実行される。以下、基地局システムＢＳ１０の処理の流れについて説明する。
【０１３９】
まず、図１０において、基地局システムＢＳ１０では、内蔵タイマ等で複数のサブルーチンを時分割にて切り替えるタスク切り替えルーチン（Ｐ９００）が実行される。基地局システムＢＳ１０は、センサノードと違って、通常のサーバやパソコンと同様にオペレーティング・システム、いわゆるＯＳによりプロセッサ資源の管理がなされている。本タスク切り替えルーチンは、実際にはＯＳが提供する機能の１つである。つまり、特に気にせずに複数のルーチンが並行して動作するようなプログラムが実行可能である。実際には、ＯＳ内蔵の機能のタスク切り替え機能により、これらのサブルーチンが時分割にて並行して動作する（図１０のＰ９００）。なお、本実施形態では、このタスク切り替えルーチンも、説明の簡単化のためユーザプログラムとして動作するものとする。また、本ルーチンでは、予め決まったルールに従って、複数のルーチンを順次切り替えていく。具体的には、無線インタフェースサブルーチン（Ｐ９３０）、上位データ受信サブルーチン（Ｐ９２０）、上位データ送信サブルーチン（Ｐ９１０）が起動される。なお、これらのサブルーチンの起動順序や切り替えのタイミング／方式に関しては様々なものが知られているが、本発明に特有なものではないので、ここでは説明の簡単化のために、無線インタフェースサブルーチンＰ９３０→上位データ受信サブルーチンＰ９２０→上位データ送信サブルーチンＰ９１０の順番で切り替わっていくものとする。
【０１４０】
以下、無線インタフェースサブルーチンＰ９３０について説明する。本サブルーチンでは、センサノードＳＮ１〜３と無線通信でデータをやり取りするとともに、本発明に特有な文字表示方式を実現するために、特有の処理を実行する。まず、無線インタフェースＲＦ１０を受信状態に設定してセンサノードからの無線信号が送信されてくるか待機する（Ｐ９３１）。次に無線信号をキャッチしたら、データ受信を行い、さらに、データの内容を解析する（Ｐ９３２）。通常のセンサデータの場合には、受信したセンサデータを、センサデータバッファファイル（ＳＤＴ）に書き出す。一方、文字フォントデータのダウンロード要求の場合には、ダウンロードリクエストされている文字データの文字コードを、基地局システムＢＳ１０でのダウンロードリクエスト文字フォントデータファイルであるＦＬＩＳＴ１０に書き出し、フォントダウンロードサブルーチン（Ｐ９４０）を起動する。さらに、メッセージやコマンドリクエストの場合には、メッセージ送信サブルーチン（Ｐ９５０）を起動する。以下、これらのサブルーチンについて説明する。
【０１４１】
フォントダウンロードサブルーチンＰ９４０では、まず、上記ダウンロードリクエスト文字フォントデータファイルＦＬＩＳＴ１０ファイルを読み込んで、センサノード側でダウンロードが必要な文字コードを取得する（Ｐ９４１）。次に、２次記憶装置ＳＴＲ１０上に格納された文字フォントデータファイル（ＦＮＴ）を読み込んで、Ｐ９４１ルーチンにて読み出した文字コードに対応する文字フォントデータを取得する（Ｐ９４２）。
【０１４２】
ここで、基地局システムＢＳ１０の文字フォントデータファイルＦＮＴには、センサネット上のメッセージの伝達に使用する文字フォントデータのフルセットを保持する。例えば、本実施形態のように文字コードとしてシフトＪＩＳを使用する場合、第１水準、第２水準などである。なお、同一のセンサネット内では、各基地局システムＢＳ１０、２０、３０が同一の文字フォントデータを文字フォントデータファイルＦＮＴに保持するものとする。
【０１４３】
以上の処理を必要な文字コードに対して繰り返して、センサノードＳＮ１〜３にダウンロードさせる文字フォントデータを作成する。次に、ダウンロードさせる文字フォントデータをセンサノードに向けて送信する（Ｐ９４３）。次に無線インタフェースＲＦ１０を受信状態に切り替えて、センサノードＳＮ１からのＡＣＫ信号が問題なく受信できたら、処理を終了する（Ｐ９４４）。うまくフォントデータが届かなかった等の理由で、ＡＣＫ信号が規定時間内に受信されない場合には、再度、文字フォントデータを送信する。これにより、確実にセンサノード側にフォントをダウンロードさせる事が実現される。
【０１４４】
次にメッセージ送信サブルーチンＰ９５０では、まず、メッセージデータバッファファイル（ＭＳＧＴ）をチェックして、現在通信しているセンサノード向けの表示メッセージリクエストが存在するかチェックする（Ｐ９５１）。チェックの結果、センサノード向けの表示メッセージリクエストが何も存在しない場合には、単純にＡＣＫ信号をセンサノードに送信して、処理を終了する。一方、表示メッセージリクエストが存在する場合には、ＡＣＫ信号にセンサノード側に送り付けたいデータがある旨のフラグ信号をセットして、ＡＣＫ信号を送信する（Ｐ９５２）。
【０１４５】
次に表示メッセージリクエストをセンサノード宛に送信する（Ｐ９５３）。次に無線通信インタフェースＲＦ１０を受信状態に切り替えて、センサノード側からＡＣＫ信号が送信されてくるのを待機する。フォントダウンロードサブルーチンＰ９４０と同様に、うまく表示メッセージリクエストが届かなかった等の理由で、ＡＣＫ信号が規定時間内に受信されない場合には、再度、文字表示メッセージリクエストを送信する。これにより、確実にセンサノード側に表示メッセージリクエストを送り届ける事が実現される。
【０１４６】
次に、図１１に従って、上位データ受信サブルーチンＰ９１０を説明する。本サブルーチンは、例えば、図１に示すユーザ表示システムＵＣ３００や、サーバシステムＳＶ２００等から、ネットワークインタフェースＮＩ１０および広域ネットワーク網ＷＡＮ１０経由で、センサノードＳＮ１〜３の間欠動作間隔とは非同期にて送信されてくる、表示メッセージリクエストをメッセージデータバッファファイルＭＳＧＴに格納するルーチンである。この機能を達成するために、まず、ネットワークインタフェースＮＩ１０からのデータ信号を受信待機する（Ｐ９１１）。受信データが存在する場合には、次に、データの内容を解析し（Ｐ９１２）、表示メッセージリクエストを、メッセージデータバッファファイルＭＳＧＴに書き出す（Ｐ９１３）。最後にデータ受信を正常に完了した旨を、ネットワークインタフェースＮＩ１０および広域ネットワーク網ＷＡＮ１０経由で、メッセージリクエストの送り先のユーザ表示システムＵＣ３００、あるいは、サーバシステムＳＶ２００に送信する。必要に応じて再送処理を入れる事により、通信の信頼性を向上させる事も可能である。
【０１４７】
最後に、図１２に従って、上位データ送信サブルーチンＰ９２０を説明する。本サブルーチンは、センサノード側から間欠動作にて、ある一定間隔にて送信されてきたセンサデータを、図１に示すユーザ表示システムＵＣ３００や、サーバシステムＳＶ２００に、ネットワークインタフェースＮＩ１０および広域ネットワーク網ＷＡＮ１０経由で送り届けるサブルーチンである。この機能を達成するために、本サブルーチンでは、まず、既に説明したセンサデータバッファファイルＳＤＴを読み出して、新規センサデータがバッファされていないかチェックする（Ｐ９２１）。新規センサデータがバッファされている場合には、センサデータを読み出して（Ｐ９２２）、ネットワークインタフェースＮＩ１０経由で、センサデータを、例えば、ユーザ表示システムＵＣ３００宛に送信する（Ｐ９２３）。なお、必要に応じて再送処理を入れる事により通信の信頼性が確保可能である。
【０１４８】
以上のように、本発明によれば、予め設定した文字コードによりメッセージの伝達を行うセンサネットにおいて、ＲＯＭとＲＡＭを含んだワンチップ型のマイコンチップＣＰＵ１に、頻繁に使用される文字のうち必要最低限の文字のフォントデータのみをＲＯＭに格納しておき、センサノードＳＮ１の表示装置ＬＭｏｎ１で表示する文字フォントデータがＲＯＭにない場合には、通常の文字コードであっても基本文字フォントＦＮＴＯＲＧ１に存在しない文字フォントデータについては、センサノードＳＮ１が基地局システムＢＳ１０に必要とする文字フォントデータを要求し、ダウンロードしてＲＡＭに格納して表示を行うようにしたので、センサノードＳＮ１のマイコンチップＣＰＵ１のＲＯＭに格納する文字数を大幅に削減しながら、受信したメッセージ中の文字を必ず表示することができ、外付けのＲＯＭ等を不要にしてセンサノードＳＮ１の製造コスト削減および小型軽量化／低消費電力化を推進できるのである。
【０１４９】
そして、マイコンチップＣＰＵ１の文字フォントデータを格納するメモリ領域（フォントデータ格納領域）は、ＲＯＭ領域に設けた基本文字フォントＦＮＴＯＲＧ１と、ＲＡＭ領域に設けたダウンロード文字フォントＦＮＴＤＬ１をハッシュ値の要素数Ｎで区分けし、区分けしたＮ個のＲＯＭ領域とＲＡＭ領域をポインタＮＸＴで連結することにより、２つの領域ＲＯＭ０〜Ｎ−１と、領域ＲＡＭ０〜Ｎ−１は仮想的に連続した領域としてアクセスすることができる。
【０１５０】
これにより、使用する文字フォントデータの有無を、ハッシュ値に応じた１／Ｎのフォントデータ格納領域についてアクセスすればよいので、マイコンチップＣＰＵ１の検索時間（演算時間）を短縮することで処理の高速化と、消費電力の低減を図ることができるのである。そして、ダウンロードされた文字フォントデータをＲＡＭ上の領域ＲＡＭ０〜Ｎ−１に格納して次回以降の表示に再利用可能としたので、毎回文字フォントデータをダウンロードする場合に比して基地局システムＢＳ１０との通信時間を大幅に短縮して、センサノードＳＮ１の表示処理の高速化と消費電力の低減を図ることができる。
【０１５１】
また、基地局システムＢＳ１０からのダウンロードは、センサノードＳＮ１が持っていない文字フォントデータのみについて行えばよいので、通信時間を短縮して、処理の高速化と消費電力の低減を図ることができる。
【０１５２】
そして、基地局システムＢＳ１０の文字フォントデータファイルＦＮＴにセンサネットで使用する文字フォントデータのフルセットを保持し、各センサノードＳＮ１〜３が必要とする文字のみをリクエストすることで、基地局システムＢＳ１０の処理を簡素にすることができる。これにより、多数のセンサノードＳＮ１〜３やユーザシステムＵＣ３００、サーバシステムＳＶ２００と通信を行う基地局システムＢＳ１０は、センサノードＳＮ１〜３の文字フォントデータについて管理する必要がないので、多数のセンサノードＳＮ１〜３が複数の基地局システム間を移動するようなセンサネットに適用することができる。      
【０１５３】
また、センサノードＳＮ１〜３とのダウンロードに要する時間も、不足した文字フォントデータのみであるため、短時間で通信が済み、基地局システムＢＳ１０の処理負荷を低減でき、応答速度の高速化を推進できる。
【０１５４】
また、各センサノードＳＮ１〜３が保持する文字フォントデータデータは、基本文字フォントＦＮＴＯＲＧ１に加えて表示する文字フォントデータであり、各センサノードＳＮ１〜３が文字コードのフルセットを保持する従来の手法に比して、センサネット全体では文字フォントデータを格納するためのメモリ容量を大幅に低減できる。このため、膨大な数のセンサノードＳＮ１を有するセンサネットでは、文字フォントデータを格納するためのメモリ容量を縮小して、センサノードＳＮ１〜３の製造コストを低減できるのである。
【０１５５】
さらに、各センサノードＳＮ１〜３が間欠動作を行って、基地局システムＢＳ１０へセンサデータを送信した後に、該当するセンサノード宛のメッセージがあり、かつ、メッセージに含まれる文字フォントデータがセンサノードＳＮ１にないときに文字フォントデータのダウンロードを行うようにしたので、間欠動作によるセンサノードＳＮ１の消費電力の低減を維持することができる。
【０１５６】
また、文字フォントデータＦＤＡＴとしてビットマップ形式を採用したため、処理能力の低いマイコンチップＣＰＵ１を採用した場合でも、表示装置ＬＭｏｎ１に送る文字の描画データを容易に展開でき、マイコンチップＣＰＵ１の処理の高速化を図ることができる。なお、文字フォントデータとしてベクトル形式を採用することも可能ではあるが、描画データの生成にＣＰＵパワーを必要とし、表示のために電力消費が増大する傾向にある。このため、ダウンロードした文字フォントデータに複雑な処理を加えることなく描画データを生成可能なデータ形式とするのが望ましい。
【０１５７】
なお、基本文字フォントＦＮＴＯＲＧ１に格納する文字フォントデータに予め格納する文字種は、ＲＯＭの容量の内、領域ＲＡＭ０〜Ｎ−１に割り当て可能な容量から格納する文字数を決定し、この文字数内でＲＯＭに格納すべき基本的な文字種を決定して良い。
【産業上の利用可能性】
【０１５８】
以上のように、本発明では、メッセージの表示に際して文字フォントデータの検索を高速かつ低負荷で行い、必要最低限の文字フォントデータを基地局システムからダウンロードするので、電池によって長期間稼動する必要のある表示装置を備えたセンサノード及び、このセンサノードを備えたセンサネットに適用することができる。
【図面の簡単な説明】
【０１５９】
【図１】本発明を適用する健康管理センサ・ネットワーク・システムの腕輪型センサノード、基地局システム、サーバシステム及びユーザ表示システムの構成を示すブロック図。
【図２】本発明の腕輪型センサノードの表示装置の構成を示すブロック図。
【図３】本発明の腕輪型センサノードを腕に装着した状態を示す正面図。
【図４】本発明の腕輪型センサノードで実行される制御プログラムの一例を示すフローチャート。
【図５】図４のＰ１００で行われる初期化処理の一例を示すフローチャート。
【図６】本発明の腕輪型センサノードの文字フォントデータを格納するＲＯＭ領域とＲＡＭ領域のブロック図。
【図７】図４のＰ７００で行われるコマンド実行処理の一例を示すフローチャート。
【図８】図４のＰ６００で行われる緊急発報処理の一例を示すフローチャート。
【図９】本発明の基地局システムにて取得されるセンサノードのセンサデータの一例を示す説明図。
【図１０】本発明の基地局システムで行われる処理の一例を示すフローチャート。
【図１１】図９のＰ９１０で行われる上位データ送信処理の一例を示すフローチャート。
【図１２】図９のＰ９２０で行われる上位データ受信処理の一例を示すフローチャート。
【符号の説明】
【０１６０】
ＳＮ１〜３  腕輪型センサノード
ＣＰＵ１  マイコンチップ
ＲＦ１、ＲＦ１０無線通信インタフェース
ＲＡＭ  ＣＰＵ１内蔵ランダムアクセスメモリ
ＲＯＭ  ＣＰＵ１内蔵不揮発メモリ
ＦＨＡＳＨ１  内蔵文字フォントハッシュテーブル
ＦＮＴＯＲＧ１  基本文字フォントデータファイル
ＦＮＴＤＬ１  ダウンロード文字フォントデータファイル
ＨＡＫＥＹ１  ハッシュキーファイル
ＰＡＲＡ１  動作パラメータファイル
ＭＳＧ１  表示メッセージ文字列データファイル
ＦＬＩＳＴ１  ダウンロードリクエスト文字フォントデータファイル
ＤＤＡＴ１  文字フォント展開データファイル
ＳＤＡＴ１  センシングデータファイル
ＬＭｏｎ１  表示装置
ＥＳＷ１  緊急スイッチ
ＧＳＷ１  測定スイッチ
ＢＡＴ１  電池
ＢＳ１０、ＢＳ２０、ＢＳ３０  基地局システム
ＳＶ２００  サーバシステム
ＵＣ３００  ユーザ表示システム
【図１】
2007025120.tif 000003
【図２】
2007025120.tif 000004
【図３】
2007025120.tif 000005
【図４】
2007025120.tif 000006
【図５】
2007025120.tif 000007
【図６】
2007025120.tif 000008
【図７】
2007025120.tif 000009
【図８】
2007025120.tif 000010
【図９】
2007025120.tif 000011
【図１０】
2007025120.tif 000012
【図１１】
2007025120.tif 000013
【図１２】
2007025120.tif 000014