(57)【要約】【課題】コマンド処理により記憶容量が変化した場合に記憶容量の変化を外部に出力することができる電子装置を提供すること。【解決手段】実施形態の電子装置は、記憶部、通信部及び処理部を含む。記憶部は、データを記憶する。通信部は、データの書き込みを命じるコマンドを受信し前記コマンドの処理結果を送信する。処理部は、前記コマンドに基づく処理を実行し前記処理結果を生成する。そして、前記通信部は、前記記憶部の書き込み領域にデータの書き込みのための最小容量以上を残した状態において、前記コマンドの処理による前記書き込み領域の空き記憶容量又は使用済み記憶容量の変化に応じた情報を含む前記処理結果を送信する。【選択図】図１０
2018097732.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶部と、
データの書き込みを命じるコマンドを受信し前記コマンドの処理結果を送信する通信部と、
前記コマンドに基づく処理を実行し前記処理結果を生成する処理部と、を具備し、
前記通信部は、前記記憶部の書き込み領域にデータの書き込みのための最小容量以上を残した状態において、前記コマンドに基づく処理による前記書き込み領域の空き記憶容量又は使用済み記憶容量の変化に応じた情報を含む前記処理結果を送信する電子装置。
【請求項２】
前記処理部は、前記空き記憶容量又は前記使用済み記憶容量が容量条件を満たすか否か判定し、
前記処理結果は、判定結果に応じた情報を含む請求項１の電子装置。
【請求項３】
前記処理結果は、前記空き記憶容量又は前記使用済み記憶容量が容量条件を満たすことを示す情報を含む請求項２の電子装置。
【請求項４】
前記処理結果は、前記空き記憶容量又は前記使用済み記憶容量を示す情報を含む請求項１又は２の電子装置。
【請求項５】
前記記憶部は、前記容量条件を記憶する請求項２又は３の電子装置。
【請求項６】
前記コマンドは、前記容量条件を含む請求項２又は３の電子装置。
【請求項７】
前記記憶部は、前記コマンドの前記容量条件を記憶する請求項６の電子装置。
【請求項８】
コマンド選択条件に基づき、データの書き込みを命じる第１のコマンド、又はデータの書き込みを命じるコマンドであってデータの書き込みによる空き記憶容量又は使用済み記憶容量の変化に応じた情報を要求する第２のコマンドを選択する処理部と、
前記第１のコマンドを送信し、前記第１のコマンドに基づく処理結果を含む第１の処理結果を受信し、又は前記第２のコマンドを送信し、前記第２のコマンドに基づく処理結果であって前記要求に対応する情報を含む第２の処理結果を受信する通信部と、
を具備する通信装置。
【請求項９】
前記第２のコマンドは、前記空き記憶容量又は前記使用済み記憶容量に関する容量条件を含む請求項８の通信装置。
【請求項１０】
電子装置にコマンドを送信し前記電子装置から前記コマンドに基づく処理結果を受信する通信装置が備えるコンピュータを、
コマンド選択条件に基づき、データの書き込みを命じる第１のコマンド、又はデータの書き込みを命じるコマンドであってデータの書き込みによる空き記憶容量又は使用済み記憶容量の変化に応じた情報を要求する第２のコマンドを選択する手段と、
前記第１のコマンドを送信し、前記第１のコマンドに基づく処理結果を含む第１の処理結果を受信し、又は前記第２のコマンドを送信し、前記第２のコマンドに基づく処理結果であって前記要求に対応する情報を含む第２の処理結果を受信する手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、電子装置、通信装置及びプログラムに関する。
【背景技術】
【０００２】
ＩＣ（integrated circuit）チップを備える、ＩＣカードなどの電子装置には、リーダーライターなどを備える通信装置からコマンドを受信した場合、受信したコマンドに応じた処理を実行するものがある。コマンドの種類によっては、コマンドの処理を実行したことにより、当該電子装置は、自身が備える記憶領域にデータを記憶する。ここで、データを記憶することによって当該記憶領域に空き領域が無くなった場合、当該電子装置は、空き領域が無くなったことを示す処理結果を前記通信装置に送信する。例えば、処理結果は、JICSAP(Japan Ic Card System Application Council) V1.0仕様で、ステータスワード（ＳＷ（status word））＝“６３８１ｈ”である。なお、末尾のｈは、この明細書中において、ｈの直前の数値が１６進数であることを示す。ここでは「６３８１」が１６進数であることを示す。しかしながら、当該処理結果が送信された後にも、当該電子装置が備える記憶領域にデータを記憶させる予定がある場合などにおいては、さらなるデータを記憶させることができないため不都合が生じる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２１６０６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、空き領域が無くなるより前に空き領域が少なくなったことをＩＣカードの所有者などに知らせることを検討している。そのために、コマンド処理により記憶容量が変化した場合、この変化の情報を外部出力する技術が望まれている。
本発明の実施形態が解決しようとする課題は、コマンド処理により記憶容量が変化した場合に記憶容量の変化を外部に出力することができる電子装置を提供することである。また、本発明の実施形態が解決しようとする課題は、上記外部出力に貢献できる通信装置及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の電子装置は、記憶部、通信部及び処理部を含む。記憶部は、データを記憶する。通信部は、データの書き込みを命じるコマンドを受信し前記コマンドの処理結果を送信する。処理部は、前記コマンドに基づく処理を実行し前記処理結果を生成する。そして、前記通信部は、前記記憶部の書き込み領域にデータの書き込みのための最小容量以上を残した状態において、前記コマンドの処理による前記書き込み領域の空き記憶容量又は使用済み記憶容量の変化に応じた情報を含む前記処理結果を送信する。
【図面の簡単な説明】
【０００６】
【図１】第１実施形態〜第４実施形態に係るＩＣカードシステム及び当該ＩＣカードシステムに含まれる通信装置の要部回路構成を示すブロック図。
【図２】第１実施形態〜第４実施形態に係るＩＣカードの要部回路構成を示すブロック図。
【図３】図１中のＣＰＵによる第１実施形態〜第３実施形態に係る制御処理のフローチャート。
【図４】図１中のＣＰＵによる第１実施形態、第２実施形態及び第４実施形態に係る制御処理のフローチャート。
【図５】図２中のＣＰＵによる第１実施形態〜第３実施形態に係る制御処理のフローチャート。
【図６】図２中のＣＰＵによる第１実施形態、第２実施形態及び第４実施形態に係る制御処理のフローチャート。
【図７】コマンドのフォーマットを説明する図。
【図８】コマンドの各パラメーターを説明する図。
【図９】レスポンスのフォーマットを説明する図。
【図１０】レコードの使用状況及び対応するステータスワードを説明するための図。
【図１１】図１中のＣＰＵによる第４実施形態に係る制御処理のフローチャート。
【図１２】図２中のＣＰＵによる第４実施形態に係る制御処理のフローチャート。
【発明を実施するための形態】
【０００７】
以下、いくつかの実施形態に係るＩＣカードシステムについて図面を用いて説明する。
〔第１実施形態〕
図１は、第１実施形態に係るＩＣカードシステム１及びＩＣカードシステム１に含まれる通信装置の要部回路構成を示すブロック図である。ＩＣカードシステム１は、通信装置１０及びＩＣカード２０を含む。
【０００８】
通信装置１０は、ＩＣカード２０にコマンドを送信し、ＩＣカード２０から送信されたレスポンスを受信する機能を有する。通信装置１０は、ＣＰＵ（central processing unit）１１、ＲＯＭ（read-only memory）１２、ＲＡＭ（random-access memory）１３、不揮発性メモリ１４、リーダーライター１５、ディスプレイ１６、操作部１７及び通信インターフェース１８を含む。
【０００９】
ＣＰＵ１１は、通信装置１０の動作に必要な処理及び制御を行うコンピューターの中枢部分に相当する。ＣＰＵ１１は、ＲＯＭ１２又は不揮発性メモリ１４に記憶されたオペレーティングシステム及びアプリケーションソフトウェアなどのプログラムに基づいて、通信装置１０の各種の機能を実現するべく各部を制御する。
【００１０】
ＲＯＭ１２は、上記コンピューターの主記憶部分に相当する読み出し専用の不揮発性メモリである。ＲＯＭ１２は、オペレーティングシステム又はアプリケーションソフトウェアなどのプログラムを記憶する。また、ＲＯＭ１２は、ＣＰＵ１１が各種の処理を行う上で使用するデータなどを記憶する。
【００１１】
ＲＡＭ１３は、上記コンピューターの主記憶部分に相当する揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアとして利用される。
【００１２】
不揮発性メモリ１４は、上記コンピューターの補助記憶部分に相当する読み書き可能な記憶媒体である。ＲＡＭ１３は、例えばＥＥＰＲＯＭ（electric erasable programmable read-only memory）、ＨＤＤ（hard disk drive）又はＳＳＤ（solid state drive）などである。不揮発性メモリ１４は、オペレーティングシステム又はアプリケーションソフトウェアなどのプログラムを記憶する場合がある。また、不揮発性メモリ１４は、ＣＰＵ１１が各種の処理を行う上で使用するデータ又はＣＰＵ１１での処理によって生成されたデータなどを保存する。なお、通信装置１０は、不揮発性メモリ１４に代えて、あるいは不揮発性メモリ１４に加えて、メモリカードなどの記憶媒体を挿入可能なカードスロットなどのインターフェースを備えてもよい。当該メモリカードは、上記コンピューターの補助記憶部分に相当する。
【００１３】
ＲＯＭ１２又は不揮発性メモリ１４に記憶されるプログラムは、後述する制御処理に関して記述した制御プログラムを含む。一例として、通信装置１０は、制御プログラムがＲＯＭ１２又は不揮発性メモリ１４に記憶された状態で利用者などへと譲渡される。しかしながら、通信装置１０は、後述する制御処理に関して記述した制御プログラムがＲＯＭ１２又は不揮発性メモリ１４に記憶されない状態で利用者などへ譲渡されても良い。また、通信装置１０は、別の制御プログラムがＲＯＭ１２又は不揮発性メモリ１４に記憶された状態で利用者などへ譲渡されても良い。そして、後述する制御処理に関して記述した制御プログラムが別途に利用者などへと譲渡され、利用者又はサービスマンなどによる操作の下に不揮発性メモリ１４へと書き込まれても良い。このときの制御プログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリなどのようなリムーバブルな記録媒体に記録して、あるいはネットワークを介したダウンロードにより実現できる。
【００１４】
リーダーライター１５は、磁気カード（磁気ストライプカード）、接触型ＩＣカード又は非接触型ＩＣカードなどと通信を行う。また、リーダーライター１５は、電子機器（例えば携帯電話、スマートフォン、タブレットＰＣ（personal computer）等）に搭載された非接触型ＩＣチップと通信を行う。リーダーライター１５は、上記通信を用いてＩＣカード２０にコマンドを送信する。また、リーダーライター１５は、上記通信を用いてＩＣカード２０から送信されたレスポンスを受信する。
【００１５】
ディスプレイ１６は、通信装置１０の操作者などに各種情報を通知するための画面を表示する。ディスプレイ１６は、例えば、液晶ディスプレイ又は有機ＥＬ（electro-luminescence）ディスプレイなどである。
【００１６】
操作部１７は、通信装置１０の操作者による操作を受け付ける。操作部１７は、例えば、キーボード、キーパッド、タッチパッド又はマウスなどである。また、操作部１７としては、ディスプレイ１６の表示パネルに重ねて配置されたタッチパッドを用いることもできる。すなわち、タッチパネルが備える表示パネルをディスプレイ１６として、タッチパネルが備えるタッチパッドを操作部１７として用いることができる。
【００１７】
通信インターフェース１８は、他の機器と通信するためのインターフェースである。通信インターフェース１８は、例えば、図示しないネットワークに接続可能に構成される。通信インターフェース１８は、ネットワークを介して図示しない他の機器と通信する。
【００１８】
図２は、ＩＣカード２０の要部回路構成を示すブロック図である。ＩＣカード２０は、磁気カード、接触型ＩＣカード又は非接触型ＩＣカードなどである。ＩＣカード２０は、例えば、カード状などの本体２１と、本体２１に内蔵されたＩＣモジュール２２とを備える。ＩＣモジュール２２は、ＩＣチップ２３と、ＩＣチップ２３に接続された図示しない通信用の回路とを備える。通信用の回路は、例えば、アンテナ又は接触端子（コンタクトパターン）として構成される。通信用の回路は、通信装置１０のリーダーライター１５と電気的又は磁気的に接続される。ＩＣカード２０は、電子装置の一例である。
【００１９】
ＩＣチップ２３は、ＣＰＵ（central processing unit）２３１、ＲＯＭ（read-only memory）２３２、ＲＡＭ（random-access memory）２３３、不揮発性メモリ２３４、通信部２３５及び電源部２３６を含む。ＩＣチップ２３は、電子装置の一例である。
【００２０】
ＣＰＵ２３１は、ＩＣカード２０の動作に必要な処理及び制御を行うコンピューターの中枢部分に相当する。ＣＰＵ２３１は、ＲＯＭ２３２又は不揮発性メモリ２３４に記憶されたオペレーティングシステム又はアプリケーションソフトウェアなどのプログラムに基づいて、ＩＣカード２０の各種の機能を実現するべく各部を制御する。
【００２１】
ＲＯＭ２３２は、上記コンピューターの主記憶部分に相当する読み出し専用の不揮発性メモリである。ＲＯＭ２３２は、オペレーティングシステム又はアプリケーションソフトウェアなどのプログラムを記憶する。また、ＲＯＭ２３２は、ＣＰＵ２３１が各種の処理を行う上で使用するデータなどを記憶する。さらに、ＲＯＭ２３２は、閾値Ｔを記憶する。あるいは、不揮発性メモリ２３４が閾値Ｔを記憶しても良い。なお、閾値Ｔは、ＩＣカード２０の設計者などによって予め定められる値である。すなわち、閾値Ｔは、容量条件の一例である。
【００２２】
ＲＡＭ２３３は、上記コンピューターの主記憶部分に相当する揮発性のメモリである。ＲＡＭ２３３は、ＣＰＵ２３１が各種の処理を行う上で一時的に使用するデータを記憶しておく、いわゆるワークエリアとして利用される。
【００２３】
不揮発性メモリ２３４は、上記コンピューターの補助記憶部分に相当する。不揮発性メモリ２３４は、例えば半導体メモリなどにより構成される。不揮発性メモリ２３４は、オペレーティングシステム又はアプリケーションソフトウェアなどのプログラムを記憶する場合がある。また、不揮発性メモリ２３４は、ＣＰＵ２３１が各種の処理を行う上で使用するデータ又はＣＰＵ２３１での処理によって生成されたデータなどを保存する。不揮発性メモリ２３４は、データを記憶する記憶部（書き込み領域）の一例である。
不揮発性メモリ２３４は、データを記憶する領域であるレコードを複数持つ。それぞれのレコードは、例えば１００バイトなどの固定の長さを持つレコード形式のＥＦ（elementary file）である。また、例えば、当該複数のレコードの構成は、順編成構造であるが、その他の構造であってもよい。順編成構造では、先頭のレコードから順にデータが書き込まれる。そして、最後尾のレコードにデータが書き込まれた後は、それ以上にデータを追記書き込みすることはできなくなる。なお、データが書き込まれるより前の状態のレコードを空きレコード、データが書き込まれたより後の状態のレコードを使用済みレコードと称するものとする。複数のレコードは、データを記憶する記憶部（書き込み領域）の一例である。なお、１つのレコードは、データの書き込みのための最小容量である。
【００２４】
ＲＯＭ２３２又は不揮発性メモリ２３４に記憶されるプログラムは、後述する制御処理に関して記述した制御プログラムを含む。一例として、ＩＣカード２０は、制御プログラムがＲＯＭ２３２又は不揮発性メモリ２３４に記憶された状態で利用者などへと譲渡される。しかしながら、ＩＣカード２０は、後述する制御処理に関して記述した制御プログラムがＲＯＭ２３２又は不揮発性メモリ２３４に記憶されない状態で利用者などへ譲渡されても良い。また、ＩＣカード２０は、別の制御プログラムがＲＯＭ２３２又は不揮発性メモリ２３４に記憶された状態で利用者などへ譲渡されても良い。そして、後述する制御処理に関して記述した制御プログラムが別途に利用者などへと譲渡され、利用者又はサービスマンなどによる操作の下に不揮発性メモリ２３４へと書き込まれても良い。このときの制御プログラムの譲渡は、例えば、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリなどのようなリムーバブルな記録媒体に記録して、あるいはネットワークを介したダウンロードにより実現できる。
【００２５】
通信部２３５は、通信装置１０と通信する為の回路である。通信部２３５は、前記の通信用の回路を介して接触通信又は非接触通信により通信装置１０とデータの送受信を行う。例えば、通信部２３５は、通信装置１０から送信された信号に対して信号処理を施すことにより、通信装置１０が送信したコマンドなどのデータを取得する。通信部２３５は、取得したデータをＣＰＵ２３１に渡す。また、通信部２３５は、ＣＰＵ２３１から渡されたレスポンスなどのデータに基づいて信号を生成し、生成した信号を通信装置１０に送信する。
【００２６】
電源部２３６は、ＩＣカード２０の各部に電力を供給する。電源部２３６は、上記の通信用の回路を介して通信装置１０から供給される電力を各部の定格電圧に変換して各部に供給する。なお、電源部２３６は、バッテリーを備え、バッテリーの電力を各部に供給する構成であっても良い。
【００２７】
以下、第１実施形態に係るＩＣカードシステムの動作を図３〜図９に基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
図３及び図４は、通信装置１０のＣＰＵ１１による制御処理のフローチャートである。ＣＰＵ１１は、ＲＯＭ１２又は不揮発性メモリ１４に記憶された制御プログラムに基づいてこの制御処理を実行する。
図５及び図６は、ＩＣカード２０のＣＰＵ２３１による制御処理のフローチャートである。ＣＰＵ２３１は、ＲＯＭ２３２又は不揮発性メモリ２３４に記憶された制御プログラムに基づいてこの制御処理を実行する。
【００２８】
図３のステップＳ１において通信装置１０のＣＰＵ１１は、ＩＣカード２０に対して送信するコマンドを決定するためのコマンドを設定する。一例として、通信装置１０は、通信装置１０の操作者による操作に基づいて、コマンドを設定する。あるいは、通信装置１０は、コマンドの設定についての内容が記憶されたデータをＲＯＭ１２又は不揮発性メモリ１４などから読み出すことによって当該設定を行う。当該読み出されるデータは、通信装置１０の操作者又は管理者などによって予め定められる。あるいは、当該読み出されるデータは、通信装置１０の設計者などによってデフォルトの内容が定められていても良い。そして、当該読み出されるデータは、通信装置１０の操作者又は管理者などによって当該読み出されるデータが定められていない場合、当該デフォルトの内容が用いられる。設定されたコマンドには、ＩＣカード２０に対して送信するコマンドの種類及び当該コマンドに含めるパラメーターなどが含まれる。
【００２９】
通信装置１０からＩＣカード２０に対してコマンドを送信させるために、ＩＣカード２０の所有者などは、ＩＣカード２０が非接触ＩＣカードである場合を例にすると、通信装置１０にＩＣカード２０を近付ける。あるいは、通信装置１０の操作者は、ＩＣカード２０の所有者などからＩＣカード２０を受け取って、通信装置１０にＩＣカード２０を近付ける。
ステップＳ２においてＣＰＵ１１は、ＩＣカード２０が近接するのを待ち受けている。ＣＰＵ１１は、ＩＣカード２０が近接したならば、ステップＳ２においてＹｅｓと判定してステップＳ３へと進む。
【００３０】
ステップＳ３においてＣＰＵ１１は、リーダーライター１５を介してＩＣカード２０に電力を供給することによって、ＩＣカード２０を活性化する活性化処理を行う。活性化処理については、周知の処理を適用することができるので、詳細な説明は省略する。活性化処理により、ＩＣカード２０は、コマンド処理を実行可能な状態になる。このとき、ＩＣカード２０のＣＰＵ２３１は、図５に示す制御処理を開始する。
【００３１】
ステップＳ４においてＣＰＵ１１は、ＩＣカード２０に送信するコマンドの種類が、「APPEND RECORD」であるか否かを確認する。なお、当該コマンドの種類は、ステップＳ１において設定されたコマンドによって示される。「APPEND RECORD」コマンドは、ＩＣカード２０にデータの追記書き込みを行わせるためのコマンドである。ＣＰＵ１１は、ＩＣカード２０に送信するコマンドの種類が「APPEND RECORD」以外である場合には、ステップＳ４においてＮｏと判定して、当該コマンドの種類に応じたその他の処理を行う。そして、ＣＰＵ１１は、ＩＣカード２０に送信するコマンドの種類が「APPEND RECORD」である場合には、ステップＳ４においてＹｅｓと判定してステップＳ５へと進む。
【００３２】
図３のステップＳ５においてＣＰＵ１１は、図４に示すコマンド生成処理を行う。なお、ＣＰＵ１１は、図４に示すコマンド生成処理を開始するとき、変数ｐを、例えばＲＡＭ１３などに割り当てる。あるいは、ＣＰＵ１１は、変数ｐをレジスタなどに割り当てても良い。
図４のステップＳ１１においてＣＰＵ１１は、閾値の指定を行うか否かを確認する。ＣＰＵ１１は、閾値の指定を行うか否かを、ステップＳ１において設定されたコマンドの内容を参照することで確認する。ＣＰＵ１１は、閾値の指定を行うならば、ステップＳ１１においてＹｅｓと判定してステップＳ１２へと進む。
【００３３】
ステップＳ１２においてＣＰＵ１１は、変数ｐの値を、ステップＳ１において設定されたコマンドの内容に基づいてＸＸｈにする。変数ｐの値が００ｈを除くＸＸｈであるとき、変数ｐは、設定される閾値を示す。なお、Ｘは、本明細書中において任意の数字を示す。
一方、ＣＰＵ１１は、閾値の指定を行わないならば、ステップＳ１１においてＮｏと判定してステップＳ１３へと進む。
ステップＳ１３においてＣＰＵ１１は、変数ｐの値を００ｈにする。変数ｐの値が００ｈであるとき、変数ｐは、閾値の指定を行わないことを示す。
ＣＰＵ１１は、ステップＳ１３の処理の後、コマンド生成処理を終了する。
【００３４】
ステップＳ１４においてＣＰＵ１１は、ステップＳ１において設定されたコマンドの内容及び変数ｐの値に基づいて「APPEND RECORD」コマンドを生成する。
ステップＳ１４で生成される「APPEND RECORD」コマンドは、一例として、図７に示すようなフォーマットである。図７は、コマンドのフォーマットを説明するための図である。「APPEND RECORD」コマンドは、「ＣＬＡ（class byte）」、「ＩＮＳ（instruction byte）」、「Ｐ１（parameter byte 1）」、「Ｐ２（parameter byte 2」）、「Ｌｃ（length field for coding the number Nc）フィールド」及び「データフィールド」を含む。「ＣＬＡ」、「ＩＮＳ」、「Ｐ１」及び「Ｐ２」はそれぞれ１バイトの長さを持つ。また、「Ｌｃフィールド」は、１バイト又は３バイトの長さを持つ。なお、「Ｌｃフィールド」は、長さＮｃを示す。そして、「データフィールド」は、可変長であり、Ｎｃバイトの長さを持つ。「データフィールド」は、「ＴＡＧ」、「Ｌｅｎｇｔｈ」及び「Ｖａｌｕｅ」を含む。「ＴＡＧ」は、１バイトの長さを持つ。そして、「ＴＡＧ」は、タグ番号を示す。「Ｌｅｎｇｔｈ」は、１バイト又は３バイトの長さを持つ。そして、「Ｌｅｎｇｔｈ」は、長さＮを示す。「Ｖａｌｕｅ」は、Ｎバイトの長さを持つ。そして、「Ｖａｌｕｅ」は、ＩＣカード２０に記憶させたいデータを含む。
ＣＰＵ１１は、「ＣＬＡ」の値を００ｈ、「ＩＮＳ」の値をＥ２ｈ、「Ｐ１」の値を変数ｐの値、「Ｐ２」の値をＸＸｈとして「APPEND RECORD」コマンドを生成する。ここで、「ＣＬＡ」は、コマンドのクラスを示す。「ＩＮＳ」は、コマンドの種類を示す。「ＩＮＳ」の値がＥ２ｈであることは、コマンドの種類が「APPEND RECORD」であることを示す。図８は、「Ｐ１」、「Ｐ２」、「Ｌｃフィールド」及び「データフィールド」の各パラメーターを説明するための図である。「Ｐ１」の値は、閾値の指定を行わない場合には００ｈ固定である。あるいは、「Ｐ１」は、閾値の指定を行う場合には当該閾値を示す。このため、ＣＰＵ１１は、「Ｐ１」の値を変数ｐの値とする。「Ｐ２」は、参照用制御子である。「Ｐ２」は、ビットｂ８〜ビットｂ１からなる。すなわち、「Ｐ２」は、８ビット（１バイト）である。ビットｂ３〜ビットｂ１の値が全て０である場合、且つビットｂ８〜ビットｂ４の値が全て０である場合、「Ｐ２」は、カレントＥＦを指定することを示す。そして、ビットｂ３〜ビットｂ１の値が全て０である場合、且つビットｂ８〜ビットｂ４の値が任意の値（ただし、ビットｂ８〜ビットｂ４の値の全てが０である場合及びビットｂ８〜ビットｂ４の値の全てが１である場合を除く。）である場合、「Ｐ２」は、「Ｐ２」のビットｂ８〜ビットｂ４で示される短縮ＥＦ識別子を用いることを示す。また、ビットｂ８〜ビットｂ１の値の組み合わせが前述した値以外である「Ｐ２」は、ＲＦＵ（reserved for future use）である。「Ｐ１」及び「Ｐ２」を連結した「Ｐ１―Ｐ２」は、パラメーターバイトを構成する。「Ｌｃフィールド」は、追記用レコードの長さを示す。そして、「データフィールド」は、追記用レコードである。
ＣＰＵ１１は、ステップＳ１４の処理の後、コマンド生成処理を終了する。ＣＰＵ１１は、コマンド生成処理を終了したことに応じて図３のステップＳ５の処理を終了する。
【００３５】
ステップＳ６においてＣＰＵ１１は、ステップＳ５の処理で生成した「APPEND RECORD」コマンドをＩＣカード２０に送信するようにリーダーライター１５に対して指示する。この指示を受けてリーダーライター１５は、当該「APPEND RECORD」コマンドをＩＣカード２０に送信する。送信された当該「APPEND RECORD」コマンドは、ＩＣカード２０の通信部２３５によって受信される。
【００３６】
一方、図５のステップＳ２１においてＩＣカード２０のＣＰＵ２３１は、通信部２３５によってコマンドが受信されるのを待ち受けている。ＣＰＵ２３１は、コマンドが受信されたならば、ステップＳ２１においてＹｅｓと判定してステップＳ２２へと進む。
【００３７】
ステップＳ２２においてＣＰＵ２３１は、ステップＳ２１において受信を確認したコマンドの種類が「APPEND RECORD」であるか否かを確認する。すなわち、ＣＰＵ２３１は、当該コマンドに含まれる「ＩＮＳ」の値が、「APPEND RECORD」を示すＥ２ｈであるか否かを確認する。ＣＰＵ２３１は、ステップＳ２１において受信を確認したコマンドの種類が「APPEND RECORD」でないならば、ステップＳ２２においてＮｏと判定して、当該コマンドに応じた処理を行う。
【００３８】
一方、ＣＰＵ２３１は、ステップＳ２１において受信を確認したコマンドの種類が「APPEND RECORD」であるならば、ステップＳ２２においてＹｅｓと判定してステップＳ２３へと進む。
ステップＳ２３においてＣＰＵ２３１は、ステップＳ２１において受信を確認したコマンドに含まれる「Ｐ１―Ｐ２」が正当であるか否かを確認する。「Ｐ１―Ｐ２」が正当であるか否かを確認する方法については、周知の方法を用いることができるので、詳細な説明は省略する。ＣＰＵ２３１は、「Ｐ１―Ｐ２」が正当でないならば、ステップＳ２３においてＮｏと判定してステップＳ２４へと進む。
【００３９】
ステップＳ２４においてＣＰＵ２３１は、「Ｐ１―Ｐ２」が誤っていることを示すステータスワードを含むレスポンスを生成する。そして、ＣＰＵ２３１は、生成した当該レスポンスを通信装置１０に送信するように通信部２３５に対して指示する。この指示を受けて通信部２３５は、当該レスポンスを通信装置１０に送信する。送信された当該レスポンスは、通信装置１０のリーダーライター１５によって受信される。当該レスポンスは、エラーがあったことを通信装置１０に対して通知する。
なお、「APPEND RECORD」コマンドに対するレスポンスは、一例として、図９に示すようなフォーマットである。図９は、レスポンスのフォーマットを説明するための図である。レスポンスは、「ＳＷ１（status byte 1）」及び「ＳＷ２（status byte 2）」を含む。「ＳＷ１」及び「ＳＷ２」は、それぞれ１バイトの長さを持つ。そして、「ＳＷ１」と「ＳＷ２」とを連結した「ＳＷ１―ＳＷ２」は、ステータスワードを示す。なお、本実施形態では、SWとして6200〜62FF等を使用するケースについて説明するが、これはあくまでも一例であり、その他の値を使用するようにしてもよい。
【００４０】
一方、ＣＰＵ２３１は、「Ｐ１―Ｐ２」が正当であるならば、ステップＳ２３においてＹｅｓと判定してステップＳ２５へと進む。
ステップＳ２５においてＣＰＵ２３１は、ＥＦが存在するか否かを確認する。ＣＰＵ２３１は、ＥＦが存在しないならば、ステップＳ２５においてＮｏと判定してステップＳ２６へと進む。
【００４１】
ステップＳ２６においてＣＰＵ２３１は、ＥＦが存在しないことを示すステータスワードを含むレスポンスを生成する。このステータスワードは、エラーを示す。そして、ＣＰＵ２３１は、生成した当該レスポンスを通信装置１０に送信するように通信部２３５に対して指示する。この指示を受けて通信部２３５は、当該レスポンスを通信装置１０に送信する。送信された当該レスポンスは、通信装置１０のリーダーライター１５によって受信される。当該レスポンスは、エラーがあったことを通信装置１０に対して通知する。
【００４２】
一方、ＣＰＵ２３１は、ＥＦが存在するならば、ステップＳ２５においてＹｅｓと判定してステップＳ２７へと進む。
ステップＳ２７においてＣＰＵ２３１は、ステップＳ２１において受信を確認したコマンドの「データフィールド」に含まれるデータを書き込むために必要な空きレコードがあるか否かを確認する。ＣＰＵ２３１は、データを書き込むために必要な空きレコードが無いならば、ステップＳ２７においてＮｏと判定してステップＳ２８へと進む。
【００４３】
ステップＳ２８においてＣＰＵ２３１は、データを書き込むために必要な空きレコードが無いことを示すステータスワードを含むレスポンスを生成する。そして、ＣＰＵ２３１は、生成した当該レスポンスを通信装置１０に送信するように通信部２３５に対して指示する。この指示を受けて通信部２３５は、当該レスポンスを通信装置１０に送信する。送信された当該レスポンスは、通信装置１０のリーダーライター１５によって受信される。当該レスポンスは、エラーがあったことを通信装置１０に対して通知する。
【００４４】
一方、ＣＰＵ２３１は、空きレコードがあるならば、ステップＳ２７においてＹｅｓと判定してステップＳ２９へと進む。
ステップＳ２９においてＣＰＵ２３１は、ステップＳ２１において受信を確認したコマンドの「データフィールド」に含まれるデータを空きレコードに書き込む。
【００４５】
ステップＳ３０においてＣＰＵ２３１は、データの書き込みが正常に行われたか否かを確認する。ＣＰＵ２３１は、データの書き込みが正常に行われていないならば、ステップＳ３０においてＮｏと判定してステップＳ３１へと進む。
【００４６】
ステップＳ３１においてＣＰＵ２３１は、データの書き込みが正常に行われなかったことを示すステータスワードを含むレスポンスを生成する。そして、ＣＰＵ２３１は、生成した当該レスポンスを通信装置１０に送信するように通信部２３５に対して指示する。この指示を受けて通信部２３５は、当該レスポンスを通信装置１０に送信する。送信された当該レスポンスは、通信装置１０のリーダーライター１５によって受信される。当該レスポンスは、エラーがあったことを通信装置１０に対して通知する。
【００４７】
一方、ＣＰＵ２３１は、データの書き込みが正常に行われたならば、ステップＳ３０においてＹｅｓと判定してステップＳ３２へと進む。
ステップＳ３２においてＣＰＵ２３１は、図６に示す容量処理を行う。容量処理において、ＣＰＵ２３１は、コマンドの処理による不揮発性メモリ２３４の書き込み領域の空き記憶容量の変化に応じた情報（ステータスワード）を含む処理結果（レスポンス）を生成する。なお、後述するが、容量処理において、ＣＰＵ２３１は、コマンドの処理による不揮発性メモリ２３４の書き込み領域の使用済み記憶容量の変化に応じた情報（ステータスワード）を含む処理結果（レスポンス）を生成するようにしてもよい。そして、通信部２３５は、処理結果を送信する。
なお、ＣＰＵ２３１は、図６に示す容量処理を開始するとき、変数ｔを、例えばＲＡＭ２３３などに割り当てる。あるいは、ＣＰＵ１１は、変数ｔをレジスタなどに割り当てても良い。
【００４８】
図６のステップＳ４１においてＣＰＵ２３１は、空きレコードがあるか否かを確認する。ＣＰＵ２３１は、空きレコードがないならば、ステップＳ４１においてＮｏと判定してステップＳ４２へと進む。
【００４９】
ステップＳ４２においてＣＰＵ２３１は、空きレコードが無いことを示すステータスワード（例えば“６３８１ｈ”）を含むレスポンスを生成する。そして、ＣＰＵ２３１は、生成した当該レスポンスを通信装置１０に送信するように通信部２３５に対して指示する。この指示を受けて通信部２３５は、当該レスポンスを通信装置１０に送信する。送信された当該レスポンスは、通信装置１０のリーダーライター１５によって受信される。
ＣＰＵ２３１は、ステップＳ４２の処理の後、容量処理を終了する。
【００５０】
一方、ＣＰＵ２３１は、空きレコードがあるならば、ステップＳ４１においてＹｓｅと判定してステップＳ４３へと進む。言い換えれば、ＣＰＵ２３１は、データの書き込みのための最小容量以上を残した状態でステップＳ４３へと進む。
ステップＳ４３においてＣＰＵ２３１は、閾値の指定があるか否かを確認する。ここで、ＣＰＵ２３１は、図５のステップＳ２１において受信を確認したコマンドに含まれる「Ｐ１」の値が００ｈである場合に閾値の指定がないと判定する。そして、ＣＰＵ２３１は、当該「Ｐ１」の値が００ｈ以外である場合に閾値の指定があると判定する。ＣＰＵ２３１は、閾値の指定があるならば、ステップＳ４３においてＹｅｓと判定してステップＳ４４へと進む。
ステップＳ４４においてＣＰＵ２３１は、変数ｔに「Ｐ１」の値を代入する。
【００５１】
一方、ＣＰＵ２３１は、閾値の指定が無いならば、ステップＳ４３においてＮｏと判定してステップＳ４５へと進む。
ステップＳ４５においてＣＰＵ２３１は、変数ｔに、ＲＯＭ２３２又は不揮発性メモリ２３４に記憶された閾値Ｔを代入する。以上の処理により、変数ｔの値は、閾値の指定がある場合には、「Ｐ１」の値となり、閾値の指定が無い場合には予め定められた閾値Ｔとなる。
【００５２】
ステップＳ４６においてＣＰＵ２３１は、空きレコードの数が変数ｔの値以下であるか否かを確認する。つまり、ＣＰＵ２３１は、容量条件を満たすか否か判定する。ＣＰＵ２３１は、空きレコードの数が変数ｔの値以下でないならば、ステップＳ４６においてＮｏと判定してステップＳ４７へと進む。
【００５３】
ステップＳ４７においてＣＰＵ２３１は、書き込みが正常に終了したことを示すステータスワード（例えば“９０００ｈ”）を含むレスポンスを生成する。そして、ＣＰＵ２３１は、生成した当該レスポンスを通信装置１０に送信するように通信部２３５に対して指示する。この指示を受けて通信部２３５は、当該レスポンスを通信装置１０に送信する。送信された当該レスポンスは、通信装置１０のリーダーライター１５によって受信される。
ＣＰＵ２３１は、ステップＳ４７の処理の後、容量処理を終了する。
【００５４】
一方、ＣＰＵ２３１は、空きレコードの数が変数ｔの値以下であるならば、ステップＳ４６においてＹｅｓと判定してステップＳ４８へと進む。
ステップＳ４８においてＣＰＵ２３１は、書き込みは正常に終了したが空きレコードの数が閾値以下になったことを示すステータスワードを含むレスポンスを生成する。当該ステータスワードは、例えば“６２００ｈ”である。あるいは、当該ステータスワードは、“６２ＸＸｈ”である。ここで、ＸＸｈは、変数ｔの値である。以下、“６２００ｈ”〜“６２ＦＦｈ”のステータスワードを容量ステータスワードと称する場合がある。容量ステータスワードは、空きレコードの数の変化に応じた情報である。上記レスポンスを生成した後、ＣＰＵ２３１は、生成した当該レスポンスを通信装置１０に送信するように通信部２３５に対して指示する。この指示を受けて通信部２３５は、当該レスポンスを通信装置１０に送信する。送信された当該レスポンスは、通信装置１０のリーダーライター１５によって受信される。
ＣＰＵ２３１は、ステップＳ４８の処理の後、容量処理を終了する。ＣＰＵ２３１は、容量処理を終了したことに応じて図５のステップＳ３２の処理を終了する。そして、ＣＰＵ２３１は、ステップＳ２１へと戻る。
以上より、図５及び図６の処理を行うことで、ＣＰＵ２３１は、コマンドに基づく処理を実行し処理結果を生成する処理部として機能する。
【００５５】
一方、図３のステップＳ７において通信装置１０のＣＰＵ１１は、リーダーライター１５によってレスポンスが受信されるのを待ち受けている。ＣＰＵ１１は、レスポンスが受信されたならば、ステップＳ７においてＹｅｓと判定してステップＳ８へと進む。
【００５６】
ステップＳ８においてＣＰＵ１１は、ステップＳ７において受信を確認したレスポンスがエラーを通知するものであるか否かを確認する。ＣＰＵ１１は、ステップＳ７において受信を確認したレスポンスがエラーを通知するものであるならば、ステップＳ８においてＹｅｓと判定して当該エラーの内容に応じた他の処理を行う。
【００５７】
ＣＰＵ１１は、ステップＳ７において受信を確認したレスポンスがエラーを通知するものでないならば、ステップＳ８においてＮｏと判定してステップＳ９へと進む。
ステップＳ９においてＣＰＵ１１は、ステップＳ７において受信を確認したレスポンスが、容量ステータスワードを含むか否かを確認する。ＣＰＵ１１は、ステップＳ７において受信を確認したレスポンスが容量ステータスワードを含まないならば、ステップＳ９においてＮｏと判定してステップＳ１へと戻る。そして、ＣＰＵ１１は、ステップＳ７において受信を確認したレスポンスが容量ステータスワードを含むならば、ステップＳ９においてＹｅｓと判定してステップＳ１０へと進む。
【００５８】
ステップＳ１０においてＣＰＵ１１は、ＩＣカード２０が有する空きレコードの数が閾値以下であることを報知するための処理を行う。例えば、ＣＰＵ１１は、空きレコードの数が閾値以下であることを示す画面に対応した画像を生成する。そして、ＣＰＵ１１は、生成したこの画像を表示するようにディスプレイ１６に対して指示する。この指示を受けてディスプレイ１６は、当該画面を表示する。また例えば、ＣＰＵ１１は、空きレコードの数が閾値以下であることを示す音声を発するように図示しないスピーカーに対して指示する。この指示を受けて当該スピーカーは当該音声を発する。あるいは、ＣＰＵ１１は、空きレコードの数が閾値以下であることを示す情報を図示しない他の機器に送信する。
ＣＰＵ１１はステップＳ１０の処理の後、ステップＳ１へと戻る。
【００５９】
第１実施形態のＩＣカードシステム１によれば、ＩＣカード２０は、通信装置１０からのコマンドを受けてレコードにデータの書き込みを行う。そして、ＩＣカード２０は、データの書き込み後の空きレコードの数が閾値以下であるならば、空きレコードの数が閾値以下であることを示すステータスワードを含むレスポンスを通信装置１０に送信する。以上より、通信装置１０は、当該レスポンスを受信することで、ＩＣカード２０が有する空きレコードの数が閾値になったことを検知することができる。また、ステータスワードが“６２ＸＸｈ”である場合には、通信装置１０は、当該閾値も検知することができる。そして、当該検知したことが通信装置１０によって報知されることで、通信装置１０の操作者及びＩＣカード２０の所有者などは、当該ＩＣカード２０が有する空きレコードの数が閾値以下になったことを知ることができる。また、ステータスワードが“６２ＸＸｈ”である場合には、通信装置１０の操作者及びＩＣカード２０の所有者などは、当該閾値も知ることができる。
【００６０】
ＩＣカード２０の所有者などが、当該ＩＣカード２０が有する空きレコード数が閾値以下となったことを知ることができれば、ＩＣカードを追加発行する若しくはＩＣカードを再発行する又は更新するなどのための手続を行うことなどができる。これにより、ＩＣカードにデータを書き込む予定があるにもかかわらず空きレコードが無いといったことが起こることを防ぐことができる。例えば、ＩＣチップ２３を搭載した旅券（ｅパスポート）において、当該ＩＣチップ２３に出入国についてのデータを記憶させる場合、空きレコードの数が閾値以下となっていることを出国まで、特に前回の帰国時に旅券の所有者が知ることができる。そして、当該所有者は、旅券の記憶領域を確保するために、出国までに旅券の更新などの申請手続きなどをすることができる。これにより、出国から帰国までの間に旅券の空きレコードが無くなることを防ぐことができる。
【００６１】
〔第２実施形態〕
第２実施形態に係るＩＣカードシステム１の構成は、第１実施形態に係るＩＣカードシステム１と同様であるので説明を省略する。
【００６２】
第２実施形態では、通信装置１０のＲＯＭ１２又は不揮発性メモリ１４は、第１実施形態と同様に図３及び図４に示す制御処理に関して記述した制御プログラムを記憶する。そして、第３実施形態では、ＩＣカード２０のＲＯＭ２３２又は不揮発性メモリ２３４は、第１実施形態と同様に図５及び図６に示す制御処理に関して記述した制御プログラムを記憶する。
以下、第２実施形態に係るＩＣカードシステムの動作を図３〜図６に基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
【００６３】
ＩＣカード２０のＣＰＵ２３１は、第２実施形態では、図６のステップＳ４１及びステップＳ４２の処理を省略してもよい。すなわち、ＣＰＵ２３１は、容量処理をステップＳ４３から開始するようにしてもよい。
そして、ＣＰＵ２３１は、第２実施形態では、ステップＳ４８において、レスポンスを、書き込みは正常に終了したこと及び書き込み後の空きレコードの数を示すステータスワードを含むように生成する。当該ステータスワードは、例えば、“６２ＸＸｈ”である。ここで、ＸＸｈは、空きレコードの数である。例えば、空きレコードの数が４７個であれば、当該ステータスワードは“６２２Ｆｈ”である。
【００６４】
通信装置１０のＣＰＵ１１は、図３のステップＳ１０において、ＩＣカード２０が有する空きレコードの数が閾値以下であること及び当該空きレコードの数を報知するための処理を行う。言い換えれば、通信装置１０のＣＰＵ１１は、ＩＣカード２０が有する空きレコードの数が閾値以下となった場合に、コマンドの処理に応じて次第に減少する当該空きレコードの数を報知するための処理を行う。
【００６５】
第２実施形態のＩＣカードシステム１によれば、ＩＣカード２０は、空きレコードの数が閾値以下となった場合に、空きレコードの数を示すステータスワードを含むレスポンスを通信装置１０に送信する。したがって、通信装置１０は、当該レスポンスを受信することで、ＩＣカード２０が有する空きレコードの数が閾値以下になったこと及び当該空きレコードの数を検知することができる。そして、当該検知したことが通信装置１０によって報知されることで、通信装置１０の操作者及びＩＣカード２０の所有者などは、当該ＩＣカード２０が有する空きレコードの数が閾値以下になったこと及び当該空きレコードの数を知ることができる。
【００６６】
〔第３実施形態〕
第３実施形態に係るＩＣカードシステム１の構成は、第１実施形態及び第２実施形態に係るＩＣカードシステム１と同様であるので説明を省略する。
【００６７】
第３実施形態では、通信装置１０のＲＯＭ１２又は不揮発性メモリ１４は、図３に示す制御処理に関して記述した制御プログラムを記憶する。そして、第３実施形態では、ＩＣカード２０のＲＯＭ２３２又は不揮発性メモリ２３４は、図５に示す制御処理に関して記述した制御プログラムを記憶する。
以下、第３実施形態に係るＩＣカードシステムの動作を図３〜図９に基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
【００６８】
第３実施形態では、通信装置１０のＣＰＵ１１は、図３のステップＳ５のコマンド生成処理を、図４に示すコマンド生成処理に代えて以下のように行う。すなわち、図３のステップＳ５においてＣＰＵ１１は、第１実施形態における図４のステップＳ１４と同様にして「APPEND RECORD」コマンドを生成する。ただし、第３実施形態では、ＣＰＵ１１は、変数ｐを用いず「Ｐ１」の値を常に００ｈとして「APPEND RECORD」コマンドを生成する。
【００６９】
そして、第３実施形態では、ＩＣカード２０のＣＰＵ２３１は、図５のステップＳ３２の容量処理を、図６に示す容量処理に代えて以下のように行う。すなわち、図５のステップＳ３２においてＣＰＵ１１は、第２実施形態における図６のステップＳ４８と同様にしてレスポンスを生成する。
【００７０】
なお、第３実施形態では、ＣＰＵ１１は、ステップＳ９においてＹｅｓと判定する。したがって、ＣＰＵ１１は、ステップＳ９の処理を行わずにステップＳ１０へと進んでも良い。
【００７１】
第３実施形態のＩＣカードシステム１によれば、ＩＣカード２０は、空きレコードの数に拘わらず、空きレコードの数を示すステータスワードを含むレスポンスを通信装置１０に送信する。したがって、通信装置１０は、当該レスポンスを受信することで、ＩＣカード２０が有する空きレコードの数を、空きレコードの数に拘わらずに検知することができる。そして、当該検知したことが通信装置１０によって報知されることで、通信装置１０の操作者及びＩＣカード２０の所有者などは、当該ＩＣカード２０が有する空きレコードの数を知ることができる。空きレコードの数を知ったＩＣカード２０の所有者などは、空きレコードの数に応じて前述したような手続などを行うことができる。
【００７２】
第１実施形態〜第３実施形態のステップＳ３２において送信されるレスポンスに含まれるステータスワード（ＳＷ）について図１０にまとめる。図１０は、レコードの使用状況及び対応するステータスワードを説明するための図である。なお、ここでは、レコードの数は#1〜#254の２５４個、閾値は３０ｈ（１０進数で４８）であるものとする。
データは、#1のレコードから順に書き込まれる。#1のレコードにデータが書き込まれた場合、第１実施形態及び第２実施形態のＳＷは、正常終了を示す“９０００ｈ”である。そして、第３実施形態のＳＷは、書き込みは正常に終了したこと及び書き込み後の空きレコードの数が２５３個であることを示す“６２ＦＤｈ”である。#2〜#205についても#1の場合と同様である。
#206のレコードにデータが書き込まれた場合、第１実施形態のＳＷは、書き込みは正常に終了したが空きレコードの数が閾値以下になったことを示す“６２００ｈ”、又は書き込みは正常に終了したが空きレコードの数が閾値３０ｈ以下になったことを示す“６２３０ｈ”である。そして、第２実施形態のＳＷは、書き込みは正常に終了したが空きレコードの数が閾値以下になり、書き込み後の空きレコードの数が４８個であることを示す“６２３０ｈ”である。そして、第３実施形態のＳＷは、書き込みは正常に終了したこと及び書き込み後の空きレコードの数が４８個であることを示す“６２ＦＤｈ”である。#207〜#253についても#206の場合と同様である。
#254のレコードにデータが書き込まれた場合、第１実施形態のＳＷは、書き込みは正常に終了したが空きレコードが無くなったことを示す“６３８１ｈ”である。そして、ステップＳ４２を省略した場合の第２実施形態及び第３実施形態のＳＷは、書き込み後の空きレコードの数が０であることを示す“６２００ｈ”である。なお、ステップＳ４２を省略しなかった場合の第２実施形態のＳＷは、書き込みは正常に終了したが空きレコードが無くなったことを示す“６３８１ｈ”である。
【００７３】
〔第４実施形態〕
第４実施形態に係るＩＣカードシステム１の構成は、第１実施形態〜第３実施形態に係るＩＣカードシステム１と同様であるので説明を省略する。
【００７４】
第４実施形態では、通信装置１０のＲＯＭ１２又は不揮発性メモリ１４は、フラグＦを記憶する。フラグＦの値は、一例として「Ｔｒｕｅ」及び「Ｆａｌｓｅ」のうちのいずれかの値である。フラグＦの値がＦａｌｓｅである場合、「APPEND RECORD」コマンドとして第１のコマンドを送信する設定であることを示し、フラグＦの値がＴｒｕｅである場合、「APPEND RECORD」コマンドとして第２のコマンドを送信する設定であることを示すものとする。第１のコマンド及び第２のコマンドについては後述する。フラグＦの値は、通信装置１０の操作者又は管理者などによって予め定められる。あるいは、通信装置１０の設計者などによってデフォルトの値が定められていても良い。そして、フラグＦの値は、通信装置１０の操作者又は管理者などによってフラグＦの値が定められていない場合、当該デフォルトの値が用いられる。フラグＦは、コマンド選択条件を示す。
第４実施形態では、通信装置１０のＲＯＭ１２又は不揮発性メモリ１４は、図４及び図１１に示す制御処理に関して記述した制御プログラムを記憶する。そして、第４実施形態では、ＩＣカード２０のＲＯＭ２３２又は不揮発性メモリ２３４は、図６及び図１２に示す制御処理に関して記述した制御プログラムを記憶する。
図１１は、通信装置１０のＣＰＵ１１による制御処理のフローチャートである。ＣＰＵ１１は、ＲＯＭ１２又は不揮発性メモリ１４に記憶された制御プログラムに基づいてこの制御処理を実行する。なお、図３と同様の処理については、図３と同一の符号を付している。
図１２は、ＩＣカード２０のＣＰＵ２３１による制御処理のフローチャートである。ＣＰＵ２３１は、ＲＯＭ２３２又は不揮発性メモリ２３４に記憶された制御プログラムに基づいてこの制御処理を実行する。なお、図５と同様の処理については、図５と同一の符号を付している。
【００７５】
以下、第４実施形態に係るＩＣカードシステムの動作を図４、図６〜図９、図１１及び図１２に基づいて説明する。なお、以下の動作説明における処理の内容は一例であって、同様な結果を得ることが可能な様々な処理を適宜に利用できる。
【００７６】
第４実施形態では、ＣＰＵ１１は、図１１のステップＳ４の処理の後、ステップＳ５１へとすすむ。ステップＳ５１では、ＣＰＵ１１は、コマンド選択条件に基づき、第１のコマンド、又は第２のコマンドを選択する。
ステップＳ５１においてＣＰＵ１１は、第２のコマンドを送信するか否かを決定するために、ＲＯＭ１２又は不揮発性メモリ１４を参照して、フラグＦの値がＦａｌｓｅであるか否かを確認する。ＣＰＵ１１は、フラグＦの値がＦａｌｓｅであるならば、ステップＳ５１においてＹｅｓと判定してステップＳ５２へと進む。
【００７７】
ステップＳ５２においてＣＰＵ１１は、第２のコマンドを生成する処理を行う。第２のコマンドの生成は、第１実施形態〜第３実施形態のうちのいずれかにおける図３のステップＳ５と同様にして行う。ただし、第４実施形態では、後述する第１のコマンドとの区別が可能なように第２のコマンドを生成する。例えば、ＣＰＵ１１は、第１のコマンドと第２のコマンドとでパラメーターを異なるものとすることで区別可能とする。
【００７８】
一方、ＣＰＵ１１は、フラグＦの値がＴｒｕｅであるならば、ステップＳ５１においてＮｏと判定してステップＳ５３へと進む。
ステップＳ５３においてＣＰＵ１１は、第１のコマンドを生成する。第１のコマンドは、第２のコマンドと区別可能な「APPEND RECORD」コマンドである。
ＣＰＵ１１は、ステップＳ５２又はステップＳ５３の処理の後、ステップＳ６へと進む
。
なお、第４実施形態では、ＣＰＵ１１は、Ｓ６において送信させるコマンドは、ステップＳ５２又はステップＳ５３において生成された第１のコマンド又は第２のコマンドである。
【００７９】
第４実施形態では、ＩＣカード２０のＣＰＵ２３１は、図１２のステップＳ２０でＹｅｓと判定した後、ステップＳ６１へと進む。
ステップＳ６１においてＣＰＵ２３１は、ステップＳ１１において受信を確認したコマンドが第２のコマンドであるか否かを確認する。ＣＰＵ２３１は、ステップＳ１１において受信を確認したコマンドが第２のコマンドであるならば、ステップＳ６１においてＹｅｓと判定してステップＳ２２へと進む。ステップＳ２２において通信装置に送信されるレスポンスは、第２のコマンドに基づく処理結果であってデータの書き込みによる空き記憶容量又は使用済み記憶容量の変化に応じた情報を含む第２の処理結果の一例である。
【００８０】
一方、ＣＰＵ２３１は、ステップＳ１１において受信を確認したコマンドが第１のコマンドであるならば、ステップＳ６１においてＮｏと判定してステップＳ６２へと進む。
ステップＳ６２においてＣＰＵ２３１は、書き込みが正常終了したことを示すステータスワード（例えば“９０００ｈ”）を含むレスポンスを生成する。そして、ＣＰＵ２３１は、生成した当該レスポンスを通信装置１０に送信するように通信部２３５に対して指示する。この指示を受けて通信部２３５は、当該レスポンスを通信装置１０に送信する。送信された当該レスポンスは、通信装置１０のリーダーライター１５によって受信される。当該レスポンスは、第１のコマンドに基づく処理結果を含む第１の処理結果の一例である。
以上より、図１１に示す制御処理を行うことで、ＣＰＵ１１は、リーダーライター１５と協働して、通信部として機能する。
【００８１】
第４実施形態のＩＣカードシステムによれば、通信装置が送信したコマンドが第１のコマンドである場合には、当該第１のコマンドを受信したＩＣカード２０は、空きレコードの数に拘わらず、容量ステータスワードを含まないレスポンスを通信装置１０に送信する。つまり、通信装置１０は、空きレコードの数に関する情報が不要である場合などにおいては、第１のコマンドをＩＣカード２０に送信すればよい。そして、例えば、ＩＣチップ２３を搭載した旅券において、通信装置１０は、出国時には当該旅券に第１のコマンドを送信し、帰国時には当該旅券に第２のコマンドを送信する。このようにすることで、出国時には、当該旅券から空きレコードに関する情報が送信されない。ここで、旅券の更新手続などは通常帰国後に行われるので、出国時には空きレコード数に関する情報を旅券の所有者などに報知する必要がなく、帰国時に報知すれば十分である。したがって、前述のようにすることで、通信装置１０は、不要な報知を行わないことができる。
【００８２】
第１実施形態〜第４実施形態は以下のような変形も可能である。
【００８３】
第１実施形態〜第４実施形態では、コマンドの種類がAPPEND RECORDの場合について述べた。しかしながら、空きレコードの数が変化するその他のコマンドにおいても上記と同様にして実施することができる。なお、コマンドの種類は、既存のものでなくても良い。
【００８４】
第１実施形態、第２実施形態及び第４実施形態において、通信装置１０が送信するコマンドの「Ｐ１」の値が００ｈでない場合、ＩＣカード２０のＣＰＵ２３１は、閾値Ｔを「Ｐ１」の値に変更しても良い。この場合、変更後の閾値Ｔは不揮発性メモリ２３４に記憶される。
通信装置１０は、レコードにデータを書き込まずに閾値Ｔを任意の値に変更させるためのコマンドをＩＣカード２０に送信しても良い。当該コマンドは、当該任意の値を含む。ＩＣカード２０のＣＰＵ２３１は、当該コマンドを受信した場合、閾値Ｔを当該任意の値に変更する。変更後の閾値Ｔは不揮発性メモリ２３４に記憶される。
以上のようにすることで、通信装置１０は、ＩＣカード２０の発行後であっても閾値Ｔを簡単に変更することができる。
【００８５】
ＩＣカード２０が送信するレスポンスは、「ＳＷ１」及び「ＳＷ２」以外に「データフィールド」を含んでいてもよい。そして、当該「データフィールド」は、当該ＩＣカード２０の空きレコードの数を含んでいても良い。ここで、当該「データフィールド」は可変長であるので、ＦＦｈを越える数値を持つことができる。このため、当該「データフィールド」に空きレコードの数を含めることで、空きレコードの数が２５５を超える場合にも、空きレコードの数を通信装置１０に通知することができる。以上のようにするために、一例として、ＩＣカード２０は、まず、「データフィールド」を含むレスポンスを送信したい旨を示すレスポンスを通信装置１０に送信する。それに対して、通信装置１０は、「データフィールド」を含むレスポンスを送信するように求めるコマンドをＩＣカード２０に返す。そして、ＩＣカード２０は、上記のような空きレコードの数を含む「データフィールド」を含むレスポンスを通信装置１０に送信する。
【００８６】
第１実施形態又は第２実施形態において通信装置１０は、ステップＳ１１〜ステップＳ１３の処理を行わずに、常に「Ｐ１」の値を００ｈとして「APPEND RECORD」コマンドを生成する態様であっても良い。このような態様の場合、既存の通信装置１０をそのまま用いることができる。
【００８７】
第４実施形態において、ＩＣカードシステム１は、Ｐ１の値が００ｈである場合のコマンドを第１のコマンド、Ｐ１の値が００ｈを除くＸＸｈである場合のコマンドを第２のコマンドとして扱っても良い。
【００８８】
第４実施形態において、通信装置１０は、ステップＳ５１の処理を行わずに常に第２のコマンドを生成しても良い。その代わりに、通信装置１０のＣＰＵ１１は、ステップＳ９の処理の後、フラグＦの値がＴｒｕｅであるか否かを確認する。ＣＰＵ１１は、フラグＦの値がＴｒｕｅであるならばステップＳ１０へと進む。そして、ＣＰＵ１１は、フラグＦの値がＦａｌｓｅであるならばステップＳ１へと戻る。このようにすることでも、通信装置１０は、不要な報知を行わないことができる。
【００８９】
ＩＣカードシステム１は、空きレコードの数が閾値以下であることに代えて使用済みレコードの数が閾値以上であることを用いても良い。すなわち、ＩＣカード２０のＣＰＵ２３１は、図６のステップＳ４６において、使用済みレコードの数が変数ｔの値以上であるか否かを確認する。そして、第２実施形態及び第３実施形態では、ＣＰＵ２３１は、ステップＳ４８において、ステータスワード“６２ＸＸｈ”のＸＸｈを使用済みレコードの数とする。
閾値は、レコード数に代えてバイト数などの残りデータ容量を示すものであっても良い。このとき、ＩＣカード２０は、レコード数に代えて残りデータ容量をレスポンスによって通信装置１０に通知する。レコード数に代えてバイト数などの残りデータ容量を用いることで、レコードが固定長の場合と可変長の場合とのどちらにも適用可能である。
【００９０】
第１実施形態〜第４実施形態では、通信装置１０は、コマンドの種類及び当該コマンドに含めるパラメーターなどをステップＳ１において設定されたコマンドの内容に基づいて決定した。しかしながら、通信装置１０は、ステップＳ２又はステップＳ３よりも後に、操作者による操作に基づいてコマンドの種類及び当該コマンドに含めるパラメーターなどを決定しても良い。
【００９１】
ＩＣカードに代えて、非接触型ＩＣチップを搭載した電子機器であっても良い。この場合、当該電子機器は、電子装置の一例である。
【００９２】
上記の実施形態とは異なる規格を用いて上記の実施形態と同様の実施形態を実現しても良い。
【００９３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９４】
１…ＩＣカードシステム、１０…通信装置、１１，２３１…ＣＰＵ、１２，２３２…ＲＯＭ、１３，２３３…ＲＡＭ、１４，２３４…不揮発性メモリ、１５…リーダーライター、１６…ディスプレイ、１７…操作部、１８…通信インターフェース、２０…ＩＣカード、２３５…通信部、２３６…電源部
【図１】
2018097732.tif 000003
【図２】
2018097732.tif 000004
【図３】
2018097732.tif 000005
【図４】
2018097732.tif 000006
【図５】
2018097732.tif 000007
【図６】
2018097732.tif 000008
【図７】
2018097732.tif 000009
【図８】
2018097732.tif 000010
【図９】
2018097732.tif 000011
【図１０】
2018097732.tif 000012
【図１１】
2018097732.tif 000013
【図１２】
2018097732.tif 000014