以下、図面を参照して本発明の実施形態について説明する。なお、以下では、本発明のIC(Integrated Circuit)カードの情報処理方法およびICカードの情報処理プログラムをICカードの動作およびICカードを制御するプログラムとして説明する。
(A)実施の形態の構成の説明
図1は、本発明を適用した実施形態に係るICカードを含むICカードシステムの概略構成を示す図である。図1に示すように、ICカードシステムは、パーソナルコンピュータ10、通信ルータ20、および、ICカード30−1,30−2を主要な構成要素としている。なお、この例では、パーソナルコンピュータおよび通信ルータはそれぞれ1台とされ、また、ICカードは2枚とされているが、これ以外の台数(または枚数)であってよい。
ここで、パーソナルコンピュータ10は、図示せぬCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等を主要な構成要素とし、HDDに格納されているアプリケーションプログラムを実行することにより、ICカード30−1,30−2に表示させる情報を生成するとともに、通信ルータ20を介して生成された情報を送信する。通信ルータ20は、パーソナルコンピュータ10から供給された情報に基づいて、搬送波を所定の変調方式により変調し、変調された搬送波を電波としてICカード30−1,30−2に対して送信する。ICカード30−1,30−2は、通信ルータ20から送信された電波を受信して復調することにより、搬送波に含まれている情報を取得し、取得した情報を後述するEPD(Electrophoretic Display)に表示させる。
図2は、図1に示すICカード30−1の外観構成を示す図である。なお、ICカード30−1とICカード30−2は、同様の構成とされているので、以下では、ICカード30−1を例に挙げて説明を行う。図2に示すように、ICカード30−1は、略長方形の薄型の形状を有する担体50を有しており、ICカード30−1の表面(図2における奥行き方向の手前側の面)には、表示デバイスとしてのEPD31aがはめ込まれており、また、その下側(図2の上下方向の下側)には後述する入力デバイス35を構成する操作ボタン35a〜35cが配置されている。
図3は、ICカード30−1の構成例を示すブロック図である。図3に示すように、ICカード30−1は、EPD31a(請求項中「表示手段」に対応)、SRAM(Static RAM)31b(請求項中「表示手段」に対応)、表示制御回路32、バッテリ33(請求項中「バッテリ」に対応)、電源回路34、入力デバイス35、表示制御MCU(Main Control Unit)36(請求項中「情報処理部」に対応)、不揮発性メモリ37、通信制御MCU38(請求項中「通信処理部」に対応)、RF(Radio Frequency)回路39、および、アンテナ40を主要な構成要素としている。
ここで、EPD31aは、透明な液体の中で浮動する微粒子を電界によって移動させることにより、文字および図形等の表示を行う表示デバイスである。なお、EPD31aに表示された情報は、EPD31aへの電源の供給を絶った後も表示され続ける、不揮発性の表示デバイスである。SRAM31bは、EPD31aに表示する情報を格納するメモリである。より詳細には、EPD31aは、例えば、横および縦がそれぞれ352×450画素から構成されており、SRAM31bは、横および縦がそれぞれ352×450ビットの情報を格納可能な記憶容量を有しており、SRAM31bに格納されている情報の各ビットに応じてEPD31aを構成する画素を黒または白の状態とすることにより、種々の情報を表示することができる。なお、この実施の形態では、SRAM31bは、書き込みのみが可能なライトオンリ(Write Only)のメモリとして構成される。表示制御回路32は、EPD31aに情報を表示する際の制御を行う回路であり、例えば、表示制御MCU36とEPD31aとの間の電圧の変換を行う制御を行う。また、表示制御回路32は、電源回路34から供給された電力をSRAM31bおよびEPD31aに供給する。具体的には、電源回路34から供給された15Vの直流電力をEPD31aに供給するとともに、同じく電源回路34から供給された5Vおよび7Vの直流電力をSRAM31bに供給する。なお、この図において、破線は電源ラインを示している。バッテリ33は、例えば、リチウムイオン電池等によって構成され、電源回路34に直流電力を供給する。電源回路34は、バッテリ33から供給される電源電圧である3Vを、5V、7V、および、15Vに変換し、表示制御回路32を介してSRAM31bおよびEPD31aに供給する。なお、図3では、電源回路34によって生成された電源電力は、表示制御回路32のみに供給されているが、実際にはその他の部分にも供給されている。
図4は、図3に示す電源回路34の構成例を示す図である。この図に示すように、電源回路34は、DC/DCコンバータ34a〜34cによって構成されている。DC/DCコンバータ34aは、バッテリ33から供給された3Vの電圧を15Vに昇圧して出力する。DC/DCコンバータ34bは、バッテリ33から供給された3Vの電圧を7Vに昇圧して出力する。DC/DCコンバータ34cは、バッテリ33から供給された3Vの電圧を5Vに昇圧して出力する。なお、DC/DCコンバータ34a〜34cは、表示制御MCU36からの制御信号に基づいて、個別に動作または非動作状態となる。なお、非動作状態とされた場合には、そのDC/DCコンバータは電力を消費しない状態となる。
入力デバイス35は、操作ボタン35a〜35cと、図示せぬスイッチによって構成され、図2に示す操作ボタン35a〜35cがユーザによって操作された場合には、スイッチがオンまたはオフの状態になり、表示制御MCU36がスイッチの状態に基づいて操作ボタンが操作されたことを検出する。表示制御MCU36は、通信制御MCU38から供給された描画コマンドを不揮発性メモリ37に描画コマンド37aとして格納するとともに、コマンドを解釈し、不揮発性メモリ37に格納されている対応するフォントデータまたはビットマップデータを取得し、内蔵されているVRAM(Video RAM)36b(後述する)をワークエリアとして描画処理を実行し、得られた画像データを表示制御回路32に供給してEPD31aに表示させる処理を実行する。不揮発性メモリ37は、例えば、FeRAM(Ferroelectric RAM)によって構成され、パーソナルコンピュータ10から供給された描画コマンドを格納する。また、不揮発性メモリ37は、表示制御MCU36が使用するフォントデータおよびビットマップデータを格納するとともに、表示制御MCU36が実行するプログラム等を格納する。通信制御MCU38は、RF回路39から供給されるディジタル信号を解釈し、内蔵するメモリ(不図示)を書き換えたり、ディジタル信号から復元されたコマンドを表示制御MCU36に供給したりする。RF回路39は、アンテナ40によって捕捉された電波を復調し、ディジタル信号を生成して、通信制御MCU38に供給する。アンテナ40は、例えば、コイル形状を有しており、通信ルータ20から送信された電波を捕捉し、RF回路39に供給する。
図5は、図3に示す表示制御MCU36の詳細な構成例を示すブロック図である。この図5に示すように、表示制御MCU36は、CPU36a(請求項中「移行手段」、「予想手段」、「保留手段」に対応)、VRAM36b、選択回路36c(請求項中「停止手段」に対応)、CR(Condenser Resister)発振回路36d(請求項中「第2クロック信号発生手段」に対応)、水晶発振回路36e(請求項中「第1クロック信号発生手段」に対応)、および、カウンタ36fを主要な構成要素としている。ここで、CPU36aは、VRAM36bをワークエリアとして、描画コマンドに基づいて描画処理を実行するとともに、選択回路36cを制御してCR発振回路36dまたは水晶発振回路36eのいずれか一方からクロック信号を入力し、入力されたクロック信号に基づいて各種処理を実行する。また、CPU36aは、水晶発振回路36eによって発生されるクロック信号を選択した場合には、CR発振回路36dへの電源の供給を停止する。VRAM36bは、CPU36aのワークエリアとして動作し、描画コマンドに基づく描画処理によって得られたビットマップデータとしての画像データを格納する。さらに、CPU36aは、図4に示すDC/DCコンバータ34a〜34cのそれぞれを制御し、動作または非動作状態とするための制御信号を出力する。選択回路36cは、CPU36aからの選択信号に基づいて、CR発振回路36dまたは水晶発振回路36eのいずれか一方を選択し、CPU36aに供給する。CR発振回路36dは、コンデンサ素子および抵抗素子によって形成される時定数に基づいて発振し、クロック信号(請求項中「第2クロック信号」に対応)を発生する発振回路である。CR発振回路36dが発生するクロック信号の周波数は、例えば、4MHzに設定されている。また、CR発振回路36dは、CPU36aから供給される電源ON/OFF信号によって、電源の供給がオンまたはオフの状態とされる。水晶発振回路36eは、水晶発振子の振動周波数に基づいてクロック信号(請求項中「第1クロック信号」に対応)を生成して出力する。水晶発振回路36eが発生するクロック信号の周波数は、例えば、32kHzに設定されている。カウンタ36fは、水晶発振回路36eから出力されるクロック信号に基づいてカウント動作を行い、カウント動作が終了した場合には、CPU36aに対して割り込み信号を供給する。なお、カウンタ36fは、後述するように第1〜第4のカウンタを有し、それぞれのカウンタが独立してカウント動作および割り込み動作を実行する。なお、通信制御MCU38には、水晶発振回路36eが発生するクロック信号が供給されており、また、水晶発振回路36eは、常に動作状態を保っているので、パーソナルコンピュータ10からの通信が発生した場合には、直ちに対応することができる。
図6は、VRAM36bとSRAM31bとの関係を示す図である。この図6の例では、VRAM36bは、横および縦がそれぞれ352×52ビットの情報を格納可能な容量を有しており、CPU36aは、このVRAM36bをワークエリアとして描画処理を実行し、“0”または“1”から構成される画像データを生成する。SRAM31bは、横および縦がそれぞれ352×450ビットの情報を格納可能な容量を有しており、SRAM31bに格納されている画像データのビット情報に応じて、EPD31aの各画素が白色または黒色のいずれかに表示される。なお、VRAM36bとSRAM31bは、横方向のビット数が352ビットで同じとされている。また、縦方向については、SRAM31bはVRAM36bの8.7倍程度の容量を有している。このため、VRAM36bにおいて生成された画像データ(領域画像データ)が複数回転送されることにより、SRAM31bに格納される1枚分の画像が完成する。そして、画像が完成した場合には、EPD31aに対して書き込み電圧を印加し、SRAM31bに格納されている画像データを表示させる。
図7は、SRAM31bの分割の一例を示している。すなわち、図7の例では、SRAM31bは、フッタおよびヘッダならびにNo.1〜No.8の領域に分割されており、それぞれの領域単位で画像データをVRAM36bからSRAM31bに転送することができる。また、図7の例では、フッタは縦方向の高さ(Height)が8ビットとされ、ヘッダは26ビットとされ、No.1〜No.8の領域はそれぞれ52ビットとして構成されている。No.1〜No.8の領域は、VRAM36bと同一のサイズとされている。なお、図7は一例であって、これ以外のサイズであったり、あるいはこれ以外の個数に分割されていたりしてもよい。
(B)実施の形態の動作の説明
つぎに、図8および図9に示すフローチャートを参照して、図1に示すICカードシステムの動作について説明する。ここで、図8は、ICカード30−1,30−2の動作状態に応じて、CR発振回路36dまたは水晶発振回路36eから出力されるクロック信号を選択する処理である。また、図9は、ICカード30−1,30−2の動作状態に応じて、EPD31aおよびSRAM31bに対する電源の供給をオンまたはオフする処理である。これらの処理は独立して実行される。なお、ICカード30−1,30−2において実行される処理は同様であるので、以下ではICカード30−1を例に挙げて説明する。
まず、図8を参照して、ICカード30−1,30−2の動作状態に応じて、CR発振回路36dまたは水晶発振回路36eから出力されるクロック信号を選択する処理について説明する。なお、この処理について簡単に説明すると、ICカード30−1,30−2は、図5に示すように、高い周波数のクロック信号を生成するCR発振回路36dと、低い周波数のクロック信号を生成する水晶発振回路36eとを有している。また、CPU36aは、通常動作状態および省電力動作状態(HALT状態)の2種類の動作状態のいずれかを選択することができる。ICカード30−1,30−2では、処理すべきイベントが存在しない場合には、バッテリ33の消費を抑えるために、表示制御MCU36が省電力動作状態に移行するとともに、水晶発振回路36eからの低い周波数のクロック信号が選択される。また、CR発振回路36dについては、電源を供給しない状態とする。これにより、バッテリ33の消費を極力抑えることができる。しかしながら、このような省電力動作状態に移行した場合に、通常動作状態に移行するためには、CR発振回路36dに対する電源の供給を開始し、発振が開始されると選択回路36cによってクロック信号を切り換える必要があるため、復帰に時間を要する。このため、待ち時間が生じ、ユーザが不満を感じたり、通信データの一部を失ったりする場合がある。そこで、図8の処理では、無線通信処理の実行が予想される場合には、省電力動作状態に移行する際でも、低い周波数のクロック信号に切り換えずに、高い周波数のクロック信号の供給を継続する。そして、通信処理が必要になった場合または処理すべきイベントが発生した場合には、通常動作状態に移行し、直ちに処理を実行できる。一方、通信処理が発生しない場合には、低い周波数のクロック信号に切り換えることにより、通信処理が発生しないにも拘わらず、消費電力が無駄に増大してしまうことを防止する。
まず、パーソナルコンピュータ10から新たな情報をICカード30−1,30−2に送信する動作について説明する。例えば、ICカード30−1,30−2に対して情報を提供して表示させる場合、パーソナルコンピュータ10において、所定のアプリケーションプログラムを起動し、ICカード30−1,30−2に対して供給しようとする情報を生成する。なお、生成された情報は、ICカード30−1,30−2において実行可能な描画コマンドに変換される。
パーソナルコンピュータ10において生成された、描画コマンドは、パーソナルコンピュータ10の所定のインタフェース(例えば、USB(Universal Serial Bus)またはLAN(Local Area Network))を介して通信ルータ20に供給される。通信ルータ20では、パーソナルコンピュータ10から供給された情報を取得し、対応するディジタルビット列(“0”および“1”の列)に変換し、このディジタルビット列に基づいて搬送波を変調し、図示せぬアンテナから電波として送信する。なお、送信処理を実行する場合には、情報の送信を行うことを示す予備信号(請求項中「通信開始を示す所定の信号」に対応)が通信の冒頭において送信される。
このようにして通信ルータ20から送信された電波は、ICカード30−1によって受信される。より詳細には、通信ルータ20から送信された電波は、ICカード30−1のアンテナ40によって捕捉され、RF回路39に供給される。RF回路39では、アンテナ40によって捕捉された搬送波に含まれているディジタルビット列を抽出する。そして、抽出されたディジタルビット列は、通信制御MCU38を介して表示制御MCU36に供給され、そこで、コマンドの解釈が行われる。いまの例では、受信した情報の冒頭には通信の開始を示す予備信号が含まれているので、表示制御MCU36は、通信が行われることを知ることができる。この後、パーソナルコンピュータ10から情報が送信されるので、ICカード30−1は、送信されてくる情報を受信し、例えば、EPD31aに表示させる。
ところで、このような通信処理が実行されている場合に、ICカード30−1では、図8に示す処理が実行される。すなわち、この処理が開始されると、ステップS10において、表示制御MCU36は、予備信号を受信したか否かを判定し、受信した場合(ステップS10;Yes)には、ステップS11に進み、それ以外の場合(ステップS10;No)にはステップS12に進む。
ステップS11では、表示制御MCU36は、カウンタ36fが有する第1カウンタに対して所定の初期値を設定するとともに、第1カウンタのカウント動作を開始させる。より詳細には、第1カウンタの初期値として、例えば、10秒に対応するカウント値を設定し、カウントダウン動作を実行させる。カウントダウンが終了し、カウント値が“0”になった場合には、カウンタ36fによって割り込みが発生する。なお、第1カウンタは、予備信号を受信してから一定の期間内(例えば、10秒内)は、つぎの通信処理が実行される可能性が高いため、この期間内は低いクロック信号への切り換えを保留するために計時を行う。
ステップS12では、表示制御MCU36は、無線通信が発生したか否かを判定し、無線通信が発生した場合(ステップS12;Yes)にはステップS13に進み、それ以外の場合(ステップS12;No)にはステップS14に進む。ステップS13では、表示制御MCU36は、カウンタ36fが有する第2カウンタに対して所定の初期値を設定するとともに、第2カウンタのカウント動作を開始させる。より詳細には、第2カウンタの初期値として、例えば、10秒に対応するカウント値を設定し、カウントダウン動作を実行させる。カウントダウンが終了し、カウント値が“0”になった場合には、カウンタ36fによって割り込みが発生する。なお、第2カウンタは、通信が終了してから、所定の時間内(例えば、10秒内)はつぎの通信が実行される可能性が高いことから、この期間内は低いクロック信号への切り換えを保留するために計時を行う。
ステップS14では、表示制御MCU36は、処理すべきイベントが存在するか否かを判定し、存在する場合(ステップS14;Yes)にはステップS15に進み、存在しない場合(ステップS14;No)にはステップS16に進む。より詳細には、通信制御MCU38における通信に関するイベントが存在する場合、入力デバイス35からの入力に関するイベントが存在する場合、または、EPD31aに対する表示に関するイベントが存在するには、表示制御MCU36は、ステップS15に進み、それ以外の場合にはステップS16に進む。例えば、予備信号を受信した後に、無線通信が開始された場合には、通信制御MCU38からの割り込みにより、通信に関するイベントが存在すると判定され、ステップS15に進み、通信処理が実行される。なお、通信処理が実行されると、その後、ステップS12においてYesと判定されるので、第2カウンタが再度スタートされる。このため、通信が継続して実行される場合には、第2カウンタが“0”となることはない。
ステップS16では、表示制御MCU36は、第1カウンタまたは第2カウンタのカウント値が非“0”であるか否かを判定する。なお、これらのカウンタが非“0”である場合には、通信処理が再度実行される可能性が高いことを示す。そして、これらのカウンタ値のいずれかが非“0”である場合(ステップS16;Yes)には、通信処理が再度実行される可能性が高いとしてステップS17に進み、それ以外の場合にはステップS19に進む。ステップS17では、CPU36aは、CR発振回路36dの選択状態を維持する。すなわち、CPU36aは、選択回路36cに対して、CR発振回路36dから出力される4MHzのクロック信号を選択させる。これにより、CPU36aには4MHzのクロック信号が継続して供給される。そして、ステップS18において、CPU36aは、第3カウンタをスタートさせる。より詳細には、CPU36aは、カウンタ36fの第3カウンタに対して所定の初期値(例えば、10秒に対応する初期値)を設定するとともに、カウントダウン動作を開始させる。なお、第3カウンタについても、カウント動作終了した場合には、CPU36aに対して割り込みを発生する。
一方、第1カウンタおよび第2カウンタの双方のカウント値が“0”である場合には、ステップS19に進み、水晶発振回路36eを選択する。より詳細には、CPU36aは、選択回路36cによって水晶発振回路36eから出力される32kHzのクロック信号を選択させる。これにより、CPU36aには、32kHzのクロック信号が供給される。なお、水晶発振回路36eは、CR発振回路36dに比べて消費電力が小さいため、常に動作状態とされている。このため、クロック信号の切り換えに際して、水晶発振回路36eを起動する操作は不要である。ステップS20では、CPU36aは、電源ON/OFF信号により、CR発振回路36dに対する電源の供給を停止する。この結果、CR発振回路36dの発振が停止するとともに、CR発振回路36dによる電力消費が抑制される。
ステップS21では、表示制御MCU36は、省電力動作状態としてのHALT状態に移行する。HALT状態では、外部からの割り込み信号は受け付けるが、演算処理部に対しては電源が供給されない状態となる。なお、VRAM36aに対しては電源の供給が継続されるので、VRAM36aに記憶されている情報は保持される。
ステップS22では、表示制御MCU36は、第3カウンタのカウント値が“0”となったか否かを判定し、“0”となった場合(ステップS22;Yes)にはステップS23に進み、それ以外の場合(ステップS22;No)にはステップS25に進む。より詳細には、表示制御MCU36のカウンタ36fは、ステップS18でスタートされた第3カウンタのカウント値が“0”となった場合には割り込みを発生するので、CPU36aは、カウンタ36fからの第3カウンタに関する割り込みが生じた場合にはYesと判定してステップS23に進む。
ステップS23では、表示制御MCU36は、水晶発振回路36eから出力されるクロック信号を選択する。より詳細には、表示制御MCU36のCPU36aは、選択回路36cに対して選択信号を供給し、水晶発振回路36eから出力されるクロック信号を選択させる。この結果、CPU36aには、32kHzのクロック信号が供給される。ステップS24では、表示制御MCU36は、CR発振回路36dを停止させる。より詳細には、CPU36aは、CR発振回路36dに対して電源ON/OFF信号を供給し、CR発振回路36dに対する電源の供給を停止する。これにより、CR発振回路36dからのクロック信号を選択した状態でHALT状態に移行してから一定の時間(例えば、10秒)以上イベントの発生がない場合には、予想が外れたとして、CR発振回路36dによる動作が停止され、水晶発振回路36eによる動作モードに移行する。これにより、消費電力が大きい状態での待機状態を終了させることにより、バッテリ33の浪費を防ぐことができる。
ステップS25では、表示制御MCU36は、処理すべきイベントが発生したか否かを判定し、処理すべきイベントが発生した場合(ステップS25;Yes)にはステップS26に進み、それ以外の場合(ステップS25;No)にはステップS22に戻って同様の処理を繰り返す。より詳細には、例えば、通信制御MCU38における通信に関するイベントが発生した場合、入力デバイス35からの入力に関するイベントが発生した場合、または、EPD31aに対する表示に関するイベントが発生した場合にはステップS26に進む。
ステップS26では、CPU36aは、CR発振回路36dが動作中か否かを判定し、動作中である場合(ステップS26;Yes)には即時に動作が可能であるので、ステップS15に進んで、前述の場合と同様の処理を実行し、それ以外の場合(ステップS26;No)にはステップS27に進む。ステップS27では、CPU36aは、電源ON/OFF信号をCR発振回路36dに供給し、CR発振回路36dを起動する。この結果、CR発振回路36dは、動作を開始し、4MHzのクロック信号を発生する。なお、CR発振回路36dは、水晶発振回路36eに比較して短時間で起動することができる。具体的には、CPU36aの数命令分の時間で起動することができる。ステップS28では、CPU36aは、選択回路36cに選択信号を供給し、CR発振回路36dから出力されるクロック信号を選択させる。この結果、CR発振回路36dから出力される4MHzのクロック信号がCPU36aに供給され、CPU36aは通常動作状態となる。
以上に説明したように、図8に示す処理によれば、イベントが存在しない場合には、HALT状態に移行するとともに、カウント値が非“0”である場合には通信処理が発生する可能性が高いことを示す第1カウンタおよび第2カウンタのカウント値が非“0”である場合にはCR発振回路36dから出力される4MHzのクロック信号を供給するようにした。これにより、通信処理に関するイベントが発生した場合には、直ちに通信処理を実行することができるので、情報の取りこぼしを防止できる。また、通信処理の可能性が低い場合には、水晶発振回路36eから供給される低い周波数のクロック信号を選択するとともに、CR発振回路36dに対する電力の供給を停止するようにしたので、消費電力を抑えることができる。また、4MHzのクロック信号を供給した状態で、HALT状態に移行した場合であって、所定の時間が経過したとき(第3カウンタのカウント値が“0”となったとき)には、水晶発振回路36eから供給される低い周波数のクロック信号を選択するとともに、CR発振回路36dに対する電力の供給を停止するようにしたので、周波数が高いクロック信号による動作状態が不必要に継続され、バッテリ33が消費されることを防止できる。
つぎに、図9に示すフローチャートを参照して、ICカード30−1,30−2の動作状態に応じて、EPD31aおよびSRAM31bに対する電源の供給をオンまたはオフする処理について説明する。なお、図9に示す処理の概要について説明すると、EPD31aに対する描画処理が開始されると、EPD31aおよびSRAM31bに対する電源の供給が開始される。そして、描画が終了すると、追加再描画処理(例えば、表示内容の一部を変更する処理)が必要か否かが判定され、追加再描画処理が必要である場合には、EPD31aおよびSRAM31bに対する電源の供給を継続し、追加描画処理が不要である場合には電源の供給を停止する。また、電源の供給を継続した場合であっても、一定時間以上描画処理が実行されない場合には、電源の供給を停止し、不必要に電源が供給されることにより、バッテリ33が消費されることを防止する。
つぎに、図9に示す処理の詳細について説明する。図9に示すフローチャートの処理が開始されると、ステップS50において、表示制御MCU36は、描画処理を実行するか否かを判定する。より詳細には、表示制御MCU36は、通信制御MCU38から描画コマンドを受け取ったか否かを判定し、描画コマンドを受け取った場合(ステップS50;Yes)にはステップS51に進み、それ以外の場合(ステップS50;No)には同様の処理を繰り返す。受信した描画コマンドは、不揮発性メモリ37に格納される。なお、描画処理を実行する場合としては、通信制御MCU38から描画コマンドを受け取った場合以外にも、例えば、入力デバイス35に対して所定の操作がなされた場合、または、EPD31aに表示されている内容をリフレッシュする場合がある。なお、リフレッシュとは、EPD31aに表示されている情報は、1〜2ヶ月程度が経過すると、コントラストが低下してくるので、同一内容の情報を再度表示させることにより、コントラストの低下を防止することである。
ステップS51では、表示制御MCU36は、電源回路34からSRAM31bに対して電源を供給中であるか否かを判定する。そして、電源が供給されている場合(ステップS51;Yes)にはステップS53に進み、それ以外の場合(ステップS51;No)にはステップS52に進む。より詳細には、SRAM31bを動作させるためには5Vの電源電圧が必要となり、また、SRAM31bに対して情報を書き込む(転送する)ためには7Vの電源電圧が必要となる。このため、ステップS51の処理では、これらの2種類の電圧(5Vおよび7V)が電源回路34に供給されているか否かを判定する。つづくステップS52では、表示制御MCU36は、表示制御回路32に対して制御信号を送り、図4に示すDC/DCコンバータ34bおよびDC/DCコンバータ34cを動作状態にする。これにより、SRAM31bは動作状態となるとともに情報の書き込みが可能となる。
ステップS53では、表示制御MCU36は、受信して不揮発性メモリ37に格納されている描画コマンド37aに基づいて描画処理を実行する。より詳細には、表示制御MCU36のCPU36aは、VRAM36bをワークエリアとし、描画コマンド37aに基づいて描画処理を実行する。例えば、文字の場合には、文字コード(例えば、シフトJISコード)に対応するフォントデータを、不揮発性メモリ37から取得し、VRAM36aに展開する。また、図形の場合には、描画コマンドに基づいて描画処理を実行し、線分、円、楕円、多角形等の図形をVRAM36a上に描画する。その結果、VRAM36aにはビットマップデータとしての画像データが生成される。このようにして生成された画像データは、表示制御回路32を介してSRAM31bに転送される。このとき、SRAM31bはステップS52の処理により、動作状態となっているので画像データがSRAM31bに転送されて格納される。なお、描画処理の際には、図7に示す領域単位で描画処理を実行し、得られた画像データをSRAM31bに順次転送する。例えば、第1回目の描画処理では、No.1の領域が描画されてSRAM31bに転送され、第2回目の描画処理ではNo.2の領域が描画されてSRAM31bに転送され、・・・、といった具合である。このような処理によって、SRAM31bには、EPD31aに表示される1枚分の画像データが格納される。
ステップS54では、表示制御MCU36は、表示処理を実行する。より詳細には、表示制御MCU36は、まず、電源回路34に制御信号を送り、DC/DCコンバータ34aを非動作状態から動作状態にする。これにより、EPD31aに15Vの電圧が供給され、EPD31aは動作状態となる。つづいて、表示制御MCU36は、表示制御回路32に制御信号を供給し、SRAM31bに格納されている画像データをEPD31aに表示させる。この結果、EPD31aには、ステップS53において描画された画像データに対応する情報が表示される。そして、表示処理が完了すると、表示制御MCU36は、電源回路34に制御信号を送り、DC/DCコンバータ34aを非動作状態とする。これにより、DC/DCコンバータ34aは動作を停止するので、EPD31aにおける電力の消費を抑えるとともに、DC/DCコンバータ34aにおける電力の消費を抑えることができる。
ステップS55では、表示制御MCU36は、追加描画処理が必要か否かを判定し、追加描画処理が必要な場合(ステップS55;Yes)にはステップS56に進み、それ以外の場合(ステップS51;No)にはステップS58に進む。具体的には、入力デバイス35が操作された場合、または、通信制御MCU38によって新たな描画コマンドが受信された場合等には、追加描画処理が必要と判断されるので、その場合にはステップS56に進む。追加描画処理が必要と判定された場合にはステップS56に進み、表示制御MCU36は、SRAM31bに対する電源の供給を維持する。すなわち、表示制御MCU36は、DC/DCコンバータ34bおよびDC/DCコンバータ34cの動作状態を維持する。これにより、DC/DCコンバータ34bおよびDC/DCコンバータ34cを動作状態に復帰するとともに、SRAM31bの動作が安定するまでの待ち時間を省略することにより、追加描画処理を直ちに実行することができる。つづくステップS57では、表示制御MCU36は、第4カウンタをスタートさせる。より詳細には、CPU36aは、カウンタ36fの第4カウンタに対して所定の初期値(例えば、10秒に対応する値)を設定するとともに、カウントダウン動作を開始させる。なお、第4カウンタのカウント値が“0”になった場合には、カウンタ36fは割り込みを発生するので、CPU36aはカウントが終了したことを知ることができる。
一方、ステップS55において追加描画処理が必要ないと判定された場合(ステップS55;No)には、ステップS58に進み、SRAM31bへの電源の供給を停止する。より詳細には、表示制御MCU36は、電源回路34に対して制御信号を送り、DC/DCコンバータ34bとDC/DCコンバータ34cを非動作状態とする。これにより、SRAM31bによる電力の消費を抑えることができるとともに、DC/DCコンバータ34b,34cによる電力の消費を抑えることができる。
ステップS59では、表示制御MCU36は、第4カウンタのカウント値が“0”になったか否かを判定し、“0”になった場合(ステップS59;Yes)にはステップS60に進み、それ以外の場合にはステップS61に進む。より詳細には、CPU36aは、カウンタ36fから第4カウンタに関する割り込みが発生した場合には第4カウンタのカウント値が“0”になったと判定し、ステップS60に進む。ステップS60では、追加描画処理が必要と判定したにも拘わらず、一定時間以上描画処理が実行されないことから、バッテリ33の消費を抑えるために、表示制御MCU36は、表示制御回路32を制御して、SRAM31bに対する電源電力の供給を停止する。より詳細には、表示制御MCU36は、電源回路34に対して制御信号を送り、DC/DCコンバータ34bとDC/DCコンバータ34cを非動作状態とする。これにより、SRAM31bによる電力の消費を抑えることができるとともに、DC/DCコンバータ34b,34cによる電力の消費を抑えることができる。
ステップS61では、表示制御MCU36は、追加描画処理を実行するか否かを判定し、描画処理を実行する場合(ステップS61;Yes)にはステップS51に戻って前述の場合と同様の描画処理を実行し、追加描画処理を実行しない場合(ステップS61;No)にはステップS59に戻って前述の場合と同様の処理を実行する。なお、追加描画処理を実行すると判定した場合にはステップS51に戻り、電源供給中でない場合にはSRAM31bへの電源の供給が開始されるとともに、描画処理が実行され、描画処理の結果得られた画像データがSRAM31bに転送された後、EPD31aに表示される。なお、このとき、SRAM31bへの電源(5Vおよび7V)の供給が維持されている場合には、SRAM31bの画像データが保存された状態である。このため、このような状態において再描画を行う場合には、図7に示す対応する領域のみを再描画処理し、得られた画像データのみをSRAM31bに転送し、EPD31aに表示させることができる。このような方法によれば、全ての領域を再描画する場合に比較して、描画処理に要する時間を短縮することができる。また、VRAM36bに格納されている画像データは、表示制御MCU36がHALT状態になった場合であっても電源が供給され続ける。このため、VRAM36bには前回描画された画像データが残っていることから、VRAM36bに格納されている画像データの一部を変更する場合には、当該部分のみを再描画して転送することにより、描画処理に要する時間をさらに短縮することができる。さらにまた、通信制御MCU38から供給された描画コマンドは、不揮発性メモリ37に描画コマンド37aとして格納されている。このため、再描画の際には、当該描画コマンド37aを利用して描画処理を実行するようにすれば、パーソナルコンピュータ10から描画コマンドを再度受信する必要がないので、再描画処理に要する時間を短縮することができる。
図10は、図9の処理において実現される電源の供給状態を示す図である。この図に示すように、EPD31aおよびSRAM31bへの電源の供給状態には3種類の状態が存在する。第1の状態は「完全動作停止」状態であり、EPD31aとSRAM31bの双方に電源が供給されていない状態であり、DC/DCコンバータ34a〜34cが全て非動作状態の場合である。この状態は、図8のステップS58,S60において電源の動作が停止された状態に対応する。第2の状態は「SRAM情報保持」状態であり、SRAM31bだけに電源が供給されている状態であり、DC/DCコンバータ34aが非動作状態で、DC/DCコンバータ34b,34cが動作状態の場合である。この状態は、図8のステップS56において電源供給が維持された状態に対応する。第3の状態は「情報表示」状態であり、EPD31aおよびSRAM31bの双方に電源が供給されている状態であり、DC/DCコンバータ34a〜34cが全て動作状態の場合である。この状態は、図8のステップS54において表示処理を行っている状態に対応している。このように、電源の供給状態を複数有し、これらを適宜選択することにより、電力の消費を抑えつつ、処理を高速に実行することが可能になる。
以上に説明したように、図9に示す処理では、描画処理を実行した後に、追加描画処理が必要である場合にはSRAM31bに対する電源の供給を維持するようにしたので、追加描画処理に要する時間を短縮することができるとともに、例えば、ユーザの操作に応じて追加描画処理を行う場合には、表示の反応速度を向上させることにより、操作性を向上させることができる。また、追加描画処理が必要と判断して電源の供給を維持した場合であっても、一定の時間が経過した場合には、SRAM31bに対する電源の供給を停止するようにしたので、SRAM31bに対する電源の供給が継続されて、バッテリ33が浪費されることを防止できる。
つぎに、図11を参照して、図8および図9の処理が同時に実行された場合におけるICカード30−1,30−2の状態の遷移について説明する。イベント発生検出P1によって、イベントの発生が検出されると、イベントの内容に応じて、EPD描画処理P2またはその他の処理P3が実行される。一方、イベントが存在しない場合には、通信の状態または追加描画の状態に応じて、P4〜P7のいずれかの状態に遷移する。なお、この図において、クロック=Hは、CR発振回路36dからのクロック信号が供給されることを示し、クロック=Lは、水晶発振回路36eからのクロック信号が供給されることを示す。また、EPD電源=ONは、SRAM31bに対して電源が供給されていることを示し、EPD電源=OFFは、SRAM31bに対して電源が供給されていないことを示す。例えば、通信処理が実行されることが予想される場合(第1カウンタまたは第2カウンタのいずれかが非“0”の場合)であって、追加描画処理が必要であるときにはP4に遷移し、クロック=Hとされ、EPD電源=ONの状態とされる。また、通信処理が実行されることが予想される場合であって、追加描画処理が必要でないときにはP5に遷移し、クロック=Hとされ、EPD電源=OFFの状態とされる。また、通信処理が実行されることが予想されない場合(第1カウンタおよび第2カウンタの双方が“0”の場合)であって、追加描画処理が必要あるときにはP6に遷移し、クロック=Lとされ、EPD電源=ONの状態とされる。さらに、通信処理が実行されることが予想されない場合であって、追加描画処理が必要ないときにはP7に遷移し、クロック=Lとされ、EPD電源=OFFの状態とされる。
なお、P4〜P7の状態(HALT状態)において、キー割り込みまたはその他の割り込み処理が発生した場合(P8)には、P1に戻って割り込みに対するイベントが処理される。また、無線通信割り込み処理としてA)予備信号受信、B)描画コマンド受信した場合(P9)には、P1に戻って無線通信割り込みに対するイベントが処理される。さらに、第3カウンタまたは第4カウンタに関する割り込み処理が発生した場合(P10)には、P1に戻った後、状態が遷移する。より詳細には、第3カウンタから割り込みが発生した場合には、クロック=Lの状態に遷移し、第4カウンタから割り込みが発生した場合にはEPD電源=OFFの状態に遷移する。
以上に説明したように、本発明の実施の形態では、通信処理の発生が予想される場合には、CR発振回路36dからのクロック信号を選択した状態で省電力動作状態であるHALT状態に移行するようにしたので、通信処理が発生した場合には直ちに通信処理を開始することができるため、情報の取りこぼしを防止することができる。また、通信処理の発生が予想されない場合には、水晶発振回路36eからのクロック信号を選択するとともに、CR発振回路36dへの電源電力の供給を停止するようにしたので、電力の消費を抑えることができる。また、CR発振回路36dからのクロック信号を選択した状態で、HALT状態に移行した場合であっても、一定の時間が経過した場合には水晶発振回路36eからのクロック信号を選択するとともに、CR発振回路36dへの電源電力の供給を停止するようにしたので、通信処理の発生が予想されると判断したにも拘わらず、通信処理が発生しない場合であっても、不必要に電力が消費されることを防止できる。
また、本発明の実施の形態では、描画処理を実行した後で、追加描画処理の発生が予想される場合にはSRAM31bに対する電源の供給を維持し、予想されない場合には電源の供給を停止するようにした。このため、追加描画処理が発生した場合には追加描画処理を迅速に実行することができるとともに、追加描画処理が発生しない場合には電力の供給を停止して、バッテリ33の消耗を防ぐことができる。また、追加描画処理の発生を予想したにも拘わらず、追加描画処理が一定時間発生しなかった場合には、電源の供給を停止するようにしたので、バッテリ33が不必要に消費されることを防ぐことができる。また、EPD31aとSRAM31aの電源であるDC/DCコンバータ34a〜34bを個別に設けるとともに、これらを個別に制御可能としたので、必要な場合にのみ動作状態とすることにより、EPD31aおよびSRAM31bにおける電力消費を抑えるとともに、DC/DCコンバータ34a〜34c自体による電力消費を抑えることができる。
(C)変形実施の態様
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能であることは勿論である。
たとえば、以上の実施の形態では、不揮発性表示装置としてEPD31aを例に挙げて説明したが、これ以外の表示装置(例えば、液晶ディスプレイ等)を用いてもよい。また、EPD31aの解像度としては、横および縦がそれぞれ352×450画素のモノクロの装置を例に挙げて説明したが、これ以外の画素数であったり、カラーの装置であったりしてもよい。
また、以上の実施の形態では、VRAM36aは、SRAM31bよりも少ない容量を有するようにしたが、これらが同じであったり、VRAM36aの容量が大きかったりしてもよい。
また、以上の実施の形態では、予想する処理の種類としては、通信処理および追加描画処理を例に挙げて説明したが、これ以外の処理を予想の対象としてもよい。例えば、ユーザによる操作ボタン35a〜35cの操作を予想の対象とし、新たな情報(例えば、ユーザに情報の入力または選択を促す情報)をEPD31aに表示した場合には、操作ボタン35a〜35cの操作が予想されるとし、EPD31aおよびSRAM31bに対する電源の供給を維持するとともに、CR発振回路36dの選択を継続するようにすることができる。また、所定の処理を実行した後に、関連する処理が続いて実行されることが予想される場合には、EPD31aおよびSRAM31bに対する電源の供給を維持するとともに、CR発振回路36dの選択を継続するようにすることができる。
また、以上の実施の形態では、DC/DCコンバータ34bおよびDC/DCコンバータ34cは同時に制御するようにしたが、例えば、SRAM31bに格納された情報を保持する場合にはDC/DCコンバータ34cのみを動作状態として5Vのみを供給し、SRAM31bに情報を転送する際にDC/DCコンバータ34bを適宜動作状態とするようにしてもよい。そのような動作によれば、DC/DCコンバータ34bを情報を転送する場合にのみ動作させることにより、消費電力をさらに抑えることができる。
また、以上の実施の形態では、第1〜第4カウンタの初期値としては、全て10秒に対応する値を設定するようにしたが、例えば、これらが異なる値となるようにしてもよい。一例として、無線通信に関する第3のカウンタの値を、追加描画処理に関する第4カウンタの設定値よりも小さくするようにしてもよい。すなわち、追加描画処理の場合には、ユーザの操作を待って実行される場合が多い。一方、無線通信の場合には描画コマンドは連続して送信される場合が多い。このため、不確定な要素が多い追加描画処理に関する第4カウンタの値を大きく設定することで、ユーザの操作性を向上することができる。
また、以上の実施の形態では、第1〜第4カウンタの初期値は固定としたが、ユーザによって設定可能としてもよい。そのような方法によれば、使用状況、使用環境、または、ユーザの嗜好に応じて最適な設定を行うことができる。
また、以上の実施の形態では、第1〜第4カウンタをハードウエアによる構成とし、これらのカウンタのカウント値が“0”になった時点で割り込みを発生するようにしたが、例えば、カウンタ36fによって1秒毎の割り込みを発生し、この1秒毎の割り込みをソフトウエアによってカウントすることで、第1〜第4カウンタをソフトウエア的に構成するようにしてもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ICカードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disk)、DVD−RAM、CD−ROM(Compact Disk ROM)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
10…パーソナルコンピュータ、20…通信ルータ、30−1,30−2…ICカード、31a…EPD(表示手段)、31b…SRAM(表示手段)、33…バッテリ、36…表示制御MCU(情報処理部)、36a…CPU(移行手段、予想手段、保留手段)、36c…選択回路(停止手段)、36d…CR発振回路(第2クロック信号発生手段)、36e…水晶発振回路(第1クロック信号発生手段)、38…通信制御MCU(通信処理部)。