(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-28
(45)【発行日】2023-12-06
(54)【発明の名称】電子情報記憶媒体、ICカード、生体情報取得方法、及びプログラム
(51)【国際特許分類】
G06V 40/13 20220101AFI20231129BHJP
【FI】
G06V40/13
(21)【出願番号】P 2019164708
(22)【出願日】2019-09-10
【審査請求日】2022-07-26
(73)【特許権者】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】110000958
【氏名又は名称】弁理士法人インテクト国際特許事務所
(74)【代理人】
【識別番号】100120189
【氏名又は名称】奥 和幸
(72)【発明者】
【氏名】上村 義永
【審査官】高野 美帆子
(56)【参考文献】
【文献】特表2018-537792(JP,A)
【文献】特開2006-259968(JP,A)
【文献】特開平07-334322(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 40/00
(57)【特許請求の範囲】
【請求項1】
ユーザ認証に用いられる生体情報をユーザの身体から取得する生体情報取得センサと、前記生体情報取得センサ及び外部装置と通信可能なコントローラとを備える電子情報記憶媒体であって、
前記コントローラは、
前記外部装置からのコマンドの受信を検知する検知手段と、
前記検知手段によりコマンドの受信が検知された場合に、当該コマンドを取得してコマンド処理を実行し、当該コマンドに対するレスポンスを前記外部装置へ送信する処理手段と、
前記処理手段により前記レスポンスが送信された後、次のコマンドの受信待機中に前記生体情報取得センサからの割り込みが発生した場合に、当該生体情報取得センサから前記生体情報を取得する取得処理を開始し、当該取得処理中に前記検知手段により次のコマンドの受信が検知された場合に、当該取得処理を終了する取得手段と、
を備え、
前記処理手段は、前記取得処理が終了した後、前記次のコマンドを取得してコマンド処理を実行し、当該次のコマンドに対するレスポンスを前記外部装置へ送信することを特徴とする電子情報記憶媒体。
【請求項2】
前記取得手段は、前記取得処理において、前記生体情報の全データサイズより小さいサイズのデータ毎に前記生体情報取得センサから取得し、
当該取得処理中に前記次のコマンドの受信が検知されたか否かを判定することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項3】
前記取得手段は、前記取得処理において、前記生体情報の全データサイズより小さい所定サイズの単位データが取得される毎に前記生体情報を格納するメモリのアドレスを更新することを特徴とする請求項1または2に記載の電子情報記憶媒体。
【請求項4】
前記処理手段は、前記検知手段により認証コマンドの受信が検知された場合に、当該認証コマンドを取得して当該認証コマンドに含まれる生体情報と前記取得手段により取得された生体情報とを用いて前記ユーザ認証に係るコマンド処理を実行することを特徴とする請求項1乃至3の何れか一項に記載の電子情報記憶媒体。
【請求項5】
前記取得手段は、前記検知手段により認証コマンドの受信が検知されたときに前記生体情報に不足がある場合、不足分のデータを前記生体情報取得センサから取得し、前記処理手段は、前記不足分のデータの取得が完了した後に、前記認証コマンドに含まれる生体情報と前記取得手段により取得された当該不足分のデータを含む生体情報を用いて前記ユーザ認証に係るコマンド処理を実行することを特徴とする請求項4に記載の電子情報記憶媒体。
【請求項6】
前記生体情報取得センサは、前記ユーザの指から指紋情報を取得する指紋センサであることを特徴とする請求項1乃至5の何れか一項に記載の電子情報記憶媒体。
【請求項7】
ユーザ認証に用いられる生体情報をユーザの身体から取得する生体情報取得センサと、
前記生体情報取得センサ及び外部装置と通信可能なコントローラとを備えるICカードであって、
前記コントローラは、
前記外部装置からのコマンドの受信を検知する検知手段と、
前記検知手段によりコマンドの受信が検知された場合に、当該コマンドを取得してコマンド処理を実行し、当該コマンドに対するレスポンスを前記外部装置へ送信する処理手段と、
前記処理手段により前記レスポンスが送信された後、次のコマンドの受信待機中に前記生体情報取得センサからの割り込みが発生した場合に、当該生体情報取得センサから前記生体情報を取得する取得処理を開始し、当該取得処理中に前記検知手段により次のコマンドの受信が検知された場合に、当該取得処理を終了する取得手段と、
を備え、
前記処理手段は、前記取得処理が終了した後、前記次のコマンドを取得してコマンド処理を実行し、当該次のコマンドに対するレスポンスを前記外部装置へ送信することを特徴とするICカード。
【請求項8】
ユーザ認証に用いられる生体情報をユーザの身体から取得する生体情報取得センサと、
前記生体情報取得センサ及び外部装置と通信可能なコントローラとを備える電子情報記憶媒体における前記コントローラにより実行される生体情報取得方法であって、
前記外部装置からのコマンドの受信を検知するステップと、
前記コマンドの受信が検知された場合に、当該コマンドを取得してコマンド処理を実行し、当該コマンドに対するレスポンスを前記外部装置へ送信するステップと、
前記レスポンスが送信された後、次のコマンドの受信待機中に前記生体情報取得センサからの割り込みが発生した場合に、当該生体情報取得センサから前記生体情報を取得する取得処理を開始し、当該取得処理中に次のコマンドの受信が検知された場合に、当該取得処理を終了するステップと、
前記取得処理が終了した後、前記次のコマンドを取得してコマンド処理を実行し、当該次のコマンドに対するレスポンスを前記外部装置へ送信するステップと、
を含むことを特徴とする生体情報取得方法。
【請求項9】
ユーザ認証に用いられる生体情報をユーザの身体から取得する生体情報取得センサと、
前記生体情報取得センサ及び外部装置と通信可能なコントローラとを備える電子情報記憶媒体における前記コントローラに、
前記外部装置からのコマンドの受信を検知するステップと、
前記コマンドの受信が検知された場合に、当該コマンドを取得してコマンド処理を実行し、当該コマンドに対するレスポンスを前記外部装置へ送信するステップと、
前記レスポンスが送信された後、次のコマンドの受信待機中に前記生体情報取得センサからの割り込みが発生した場合に、当該生体情報取得センサから前記生体情報を取得する取得処理を開始し、当該取得処理中に次のコマンドの受信が検知された場合に、当該取得処理を終了するステップと、
前記取得処理が終了した後、前記次のコマンドを取得してコマンド処理を実行し、当該次のコマンドに対するレスポンスを前記外部装置へ送信するステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
人の生体情報を取得可能なICカード等の技術分野に関する。
【背景技術】
【0002】
従来、例えば特許文献1に開示されるように、指紋認証エンジンと無線通信モジュールとを備えるOTPデバイス(例えば、PICC(Proximity Integrated Circuit Card))が知られている。このようなOTPデバイスは、給電中のRFIDリーダからコマンドを受信し、RFIDリーダがコマンドに対する応答を待つ間に、実質的に連続している無線周波数励起場を受信し、指紋処理プロセスを行うように構成されている。ここで、指紋処理プロセスにおいては、指紋認証エンジンが備える指紋センサに提示される指の指紋を、メモリに保存された参照指紋データと比較し、OTPデバイスのベアラを認証するように構成されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、例えばRFIDリーダがコマンドに対する応答を待つ間に指紋認証が行われるケースでは、指紋情報のような大量のデータを取得する場合、例えばRFIDリーダ側のユーザからは指紋認証を実施するコマンド処理が遅いように見えてしまい効率的ではなく、仕様で提示されるパフォーマンス要求を満たせない可能性がある。
【0005】
そこで、本発明は、このような点に鑑みてなされたものであり、指紋情報等の生体情報をより効率良く取得することが可能な電子情報記憶媒体、ICカード、生体情報取得方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、ユーザ認証に用いられる生体情報をユーザの身体から取得する生体情報取得センサと、前記生体情報取得センサ及び外部装置と通信可能なコントローラとを備える電子情報記憶媒体であって、前記コントローラは、前記外部装置からのコマンドの受信を検知する検知手段と、前記検知手段によりコマンドの受信が検知された場合に、当該コマンドを取得してコマンド処理を実行し、当該コマンドに対するレスポンスを前記外部装置へ送信する処理手段と、前記処理手段により前記レスポンスが送信された後、次のコマンドの受信待機中に前記生体情報取得センサからの割り込みが発生した場合に、当該生体情報取得センサから前記生体情報を取得する取得処理を開始し、当該取得処理中に前記検知手段により次のコマンドの受信が検知された場合に、当該取得処理を終了する取得手段と、を備え、前記処理手段は、前記取得処理が終了した後、前記次のコマンドを取得してコマンド処理を実行し、当該次のコマンドに対するレスポンスを前記外部装置へ送信することを特徴とする。
【0007】
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記取得手段は、前記取得処理において、前記生体情報の全データサイズより小さいサイズのデータ毎に前記生体情報取得センサから取得し、当該取得処理中に前記次のコマンドの受信が検知されたか否かを判定することを特徴とする。
【0008】
請求項3に記載の発明は、請求項1または2に記載の電子情報記憶媒体において、前記取得手段は、前記取得処理において、前記生体情報の全データサイズより小さい所定サイズの単位データが取得される毎に前記生体情報を格納するメモリのアドレスを更新することを特徴とする。
【0009】
請求項4に記載の発明は、請求項1乃至3の何れか一項に記載の電子情報記憶媒体において、前記処理手段は、前記検知手段により認証コマンドの受信が検知された場合に、当該認証コマンドを取得して当該認証コマンドに含まれる生体情報と前記取得手段により取得された生体情報とを用いて前記ユーザ認証に係るコマンド処理を実行することを特徴とする。
【0010】
請求項5に記載の発明は、請求項4に記載の電子情報記憶媒体において、前記取得手段は、前記検知手段により認証コマンドの受信が検知されたときに前記生体情報に不足がある場合、不足分のデータを前記生体情報取得センサから取得し、前記処理手段は、前記不足分のデータの取得が完了した後に、前記認証コマンドに含まれる生体情報と前記取得手段により取得された当該不足分のデータを含む生体情報を用いて前記ユーザ認証に係るコマンド処理を実行することを特徴とする。
【0011】
請求項6に記載の発明は、請求項1乃至5の何れか一項に記載の電子情報記憶媒体において、前記生体情報取得センサは、前記ユーザの指から指紋情報を取得する指紋センサであることを特徴とする。
【0012】
請求項7に記載の発明は、ユーザ認証に用いられる生体情報をユーザの身体から取得する生体情報取得センサと、前記生体情報取得センサ及び外部装置と通信可能なコントローラとを備えるICカードであって、前記コントローラは、前記外部装置からのコマンドの受信を検知する検知手段と、前記検知手段によりコマンドの受信が検知された場合に、当該コマンドを取得してコマンド処理を実行し、当該コマンドに対するレスポンスを前記外部装置へ送信する処理手段と、前記処理手段により前記レスポンスが送信された後、次のコマンドの受信待機中に前記生体情報取得センサからの割り込みが発生した場合に、当該生体情報取得センサから前記生体情報を取得する取得処理を開始し、当該取得処理中に前記検知手段により次のコマンドの受信が検知された場合に、当該取得処理を終了する取得手段と、を備え、前記処理手段は、前記取得処理が終了した後、前記次のコマンドを取得してコマンド処理を実行し、当該次のコマンドに対するレスポンスを前記外部装置へ送信することを特徴とする。
【0013】
請求項8に記載の発明は、ユーザ認証に用いられる生体負荷情報をユーザの身体から取得する生体情報取得センサと、前記生体情報取得センサ及び外部装置と通信可能なコントローラとを備える電子情報記憶媒体における前記コントローラにより実行される生体情報取得方法であって、前記外部装置からのコマンドの受信を検知するステップと、前記コマンドの受信が検知された場合に、当該コマンドを取得してコマンド処理を実行し、当該コマンドに対するレスポンスを前記外部装置へ送信するステップと、前記レスポンスが送信された後、次のコマンドの受信待機中に前記生体情報取得センサからの割り込みが発生した場合に、当該生体情報取得センサから前記生体情報を取得する取得処理を開始し、当該取得処理中に次のコマンドの受信が検知された場合に、当該取得処理を終了するステップと、前記取得処理が終了した後、前記次のコマンドを取得してコマンド処理を実行し、当該次のコマンドに対するレスポンスを前記外部装置へ送信するステップと、を含むことを特徴とする。
【0014】
請求項9に記載の発明は、ユーザ認証に用いられる生体情報をユーザの身体から取得する生体情報取得センサと、前記生体情報取得センサ及び外部装置と通信可能なコントローラとを備える電子情報記憶媒体における前記コントローラに、前記外部装置からのコマンドの受信を検知するステップと、前記コマンドの受信が検知された場合に、当該コマンドを取得してコマンド処理を実行し、当該コマンドに対するレスポンスを前記外部装置へ送信するステップと、前記レスポンスが送信された後、次のコマンドの受信待機中に前記生体情報取得センサからの割り込みが発生した場合に、当該生体情報取得センサから前記生体情報を取得する取得処理を開始し、当該取得処理中に次のコマンドの受信が検知された場合に、当該取得処理を終了するステップと、前記取得処理が終了した後、前記次のコマンドを取得してコマンド処理を実行し、当該次のコマンドに対するレスポンスを前記外部装置へ送信するステップと、を実行させることを特徴とする。
【発明の効果】
【0015】
本発明によれば、指紋情報等の生体情報をより効率良く取得することができる。
【図面の簡単な説明】
【0016】
【
図1】ICカード1の概要構成の一例を示す図である。
【
図2】ICカード1のデバイス配置イメージの一例を示す図である。
【
図3】メインコントローラ12のハードウェア構成例を示す図である。
【
図4】指紋情報の取得が次のコマンドの受信待機中に行われる例を示す図である。
【
図5】メインコントローラ12が起動した後の処理例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、指紋認証機能付きICカード(以下、「ICカード1」という)に対して本発明を適用した場合の実施の形態である。
【0018】
[1.ICカード1の構成及び機能]
先ず、
図1及び
図2等を参照して、本実施形態に係るICカード1の構成及び機能について説明する。
図1は、ICカード1の概要構成の一例を示す図であり、
図2は、ICカード1のデバイス配置イメージの一例を示す図である。
図1に示すように、ICカード1は、指紋センサ11、メインコントローラ12、7816端子部13、及びアンテナ14を備える。
【0019】
指紋センサ11は、生体情報取得センサの一例であり、ICカード1を使用するユーザの指の腹から指紋情報(生体情報の一例)を取得する。例えば、指紋センサ11は、数万個の電極、及びユーザの指の腹が接触する接触面等を有し、この接触面にユーザの指の腹が接触することで、上記電極にはユーザの指の腹における凹凸(つまり、指紋を構成する凹凸)による当該接触面までの近さに応じた量の電荷がたまる。指紋センサ11は、それぞれの電極にたまった電荷の量を検出して数値(つまり、電荷の量に応じた数値)に変換することで指紋情報を取得して内部メモリに蓄積する。なお、指紋センサ11は、上記以外の方法で指紋情報を取得してもよい。
【0020】
メインコントローラ12は、本発明におけるコントローラの一例であり、複数のチップ(接触通信用IC、非接触通信用IC、及びこれらを制御するコントローラ)を搭載しパッケージングされてもよいし、1つのICチップで構成されてもよい。7816端子部12は、ISO/IEC7816で定義されるC1~C8の8個の端子を有する。メインコントローラ11は、7816端子部13のC1端子(電源端子)電圧、またはアンテナ14による誘導電圧により起動する。そして、メインコントローラ12は、指紋センサ11及びR/W(リーダライタ)2(外部装置の一例)と通信可能になっている。なお、メインコントローラ12は、接触通信の場合、7816端子部13のC7端子(I/O端子)を介してコマンド送受信を行い、非接触通信の場合、アンテナ14を介して搬送波の変調及び副搬送波の負荷変調によりコマンド送受信を行う。
図1の例では、1つのR/W2を示しているが、接触通信用のR/Wと、非接触通信用のR/Wとが別々に設けられてもよい。
【0021】
指紋センサ11とメインコントローラ12との間の通信は、例えば、SPI(Serial Peripheral Interface)を介して行われる。このとき、メインコントローラ12はマスタ(マスタデバイス)として、指紋センサ11はスレーブ(スレーブデバイス)としてマスタスレーブ方式で通信が行われる。なお、SPIでは、複数のスレーブデバイスを持つことが可能であるが、本実施形態では、1対1の通信を例にとるものとする。マスタ及びスレーブには、それぞれ、送受信されるデータを蓄積するためのシフトレジスタ、及び4つの信号線等を備える。4つの信号線とは、SCLK(Serial Clock)、MOSI(Master-Out Slave-In)、MISO(Master-In Slave-Out)、及びSLS(SLave Select)である。
【0022】
メインコントローラ12のクロック生成器により生成されたクロック信号(同期信号)は、SCLKを介してメインコントローラ12から指紋センサ11へ送信される。メインコントローラ12のシフトレジスタにセットされたデータ(例えば、指紋情報の取得命令)が、上記クロック信号に従って1ビットずつシフトされながらMOSIを介してメインコントローラ12から指紋センサ11へ送信され、且つ、当該データの送信中、MISOを介して指紋センサ11からメインコントローラ12へダミーデータ(例えば、F(h)が連続するデータ)が送信される。
【0023】
一方、指紋センサ11のシフトレジスタにセットされたデータ(例えば、内部メモリに蓄積された指紋情報に係るデータ)が、上記クロック信号に従って1ビットずつシフトされながらMISOを介して指紋センサ11からメインコントローラ12へ送信され、且つ、当該データの送信中、MOSIを介してメインコントローラ12から指紋センサ11へダミーデータが送信される。なお、指紋センサ11とメインコントローラ12との間の通信は、I2C(Inter-Integrated Circuit)を介して行われてもよい。
【0024】
図3は、メインコントローラ12のハードウェア構成例を示す図である。
図3に示すように、メインコントローラ12は、CPU(Central Processing Unit)121、RAM(Random Access Memory)122、ROM(Read Only Memory)123、NVM(Nonvolatile Memory)124、及びIF部125~127等を備えて構成される。CPU121は、ROM123またはNVM124に記憶された各種プログラム(本発明のプログラムを含む)を実行することで、本発明における検知手段、処理手段、及び取得手段として機能する。RAM122、またはNVM124は、指紋センサ11から取得された指紋情報を格納するメモリとして使用される。NVM124には、例えばフラッシュメモリが適用される。なお、NVM124は、「Electrically Erasable Programmable Read-Only Memory」であってもよい。また、NVM124に記憶される各種プログラム及びデータの一部は、ROM123に記憶されてもよい。IF部125は、指紋センサ11との間のインターフェースであり、例えばSPIが適用される。IF部126は、7816端子部13との間のインターフェースである。IF部127は、アンテナ14との間のインターフェースである。
【0025】
本実施形態では、メインコントローラ12が指紋情報の取得をコマンド送受信の合間に行うようになっており、さらに、R/W2からのコマンド受信割込みと、指紋センサ11からのセンサ割り込みとの2つの割り込みとを許容し、なおかつ、2つの割り込みの割り込み優先度を「コマンド受信割り込み > センサ割り込み」とすることで、センサ割り込み処理中のコマンド受信割り込みという二重割り込みを許容する。これにより、指紋情報を取得する取得処理(以下、「指紋情報の取得処理」という)中にR/W2から送信されるコマンドのキャラクタの欠落(つまり、取り逃し)を防ぐことができる。
【0026】
より具体的には、メインコントローラ12は、R/W2からのコマンドの受信(7816端子部13またはアンテナ14を介して受信)を検知した場合に、当該コマンドを取得してコマンド処理(つまり、受信されたコマンドに応じた処理)を実行し、当該コマンドに対するレスポンスを7816端子部13またはアンテナ14を介してR/W2へ送信する。
【0027】
ここで、コマンドは、例えばISO7816で定義されるコマンドAPDU(Application Protocol Data Unit)により構成される。コマンドAPDUは、少なくとも、CLA、INS、P1及びP2から構成される。CLAはコマンドクラス(命令クラス)を示し、INSはコマンドコード(命令コード)を示す。例えばINSによりコマンドの種別が特定される。また、P1及びP2はコマンドパラメータ(命令パラメータ)を示す。コマンドの種別としては、選択コマンド(SELECT FILE)、読出コマンド(READ RECORD)、書込コマンド(WRITE RECORD)、更新コマンド(UPDATE RECORD)、認証コマンド(VERIFY)等が挙げられる。
【0028】
なお、コマンドAPDUは、CLA、INS、P1及びP2に加えて、Le、Lc及びDataの少なくとも何れか1つを含んで構成される場合もある。Leは、レスポンスの最大長(最大サイズ)の指定を示し、LcはDataの長さを示し、このDataは、ICカード1で用いられるデータを示す。例えば、認証コマンドに含まれるDataは、指紋情報である。認証コマンドに含まれる指紋情報は、指紋センサ11により取得される指紋情報との一致検証に用いられる。
【0029】
一方、レスポンスは、例えばISO7816で定義されるレスポンスAPDUにより構成される。レスポンスAPDUは、例えば、SW1及びSW2から構成される。ここで、SW1及びSW2は、ステータスワードであり、例えば、コマンドAPDUに応じた処理の結果を示す。或いは、レスポンスAPDUは、例えば、Data、SW1及びSW2から構成される。このDataは、例えば処理結果としてのデータを示す。
【0030】
メインコントローラ12は、上記受信されたコマンドに対するレスポンスが送信された後、次のコマンドの受信待機中にセンサ割り込みが発生した場合に、指紋センサ11からの指紋情報の取得処理を開始し、当該取得処理中に次のコマンドの受信を検知した場合(つまり、コマンド受信割り込みが発生した場合)に、当該取得処理を終了し、その後、当該次のコマンドを取得してコマンド処理を実行し、当該次のコマンドに対するレスポンスをR/W2へ送信する。
【0031】
図4は、指紋情報の取得が次のコマンドの受信待機中に行われる例を示す図である。
図4の例では、選択コマンド1に対するレスポンスが送信された後のコマンド受信待機中と、選択コマンド2に対するレスポンスが送信された後のコマンド受信待機中と、読出コマンドに対するレスポンスが送信された後のコマンド受信待機中と、書込コマンドに対するレスポンスが送信された後のコマンド受信待機中と、更新コマンドに対するレスポンスが送信された後のコマンド受信待機中との5回に分けて、指紋情報が単位データXずつ取得されるようになっている。なお、実際には、これより多くのコマンド-レスポンスのやり取りが行われることもある。
【0032】
ここで、単位データXは、指紋情報の全データサイズYより小さい所定サイズのデータである(
図4の例では、Y=5×Xとなる)。なお、上記取得処理では、指紋情報に係る単位データXが取得される毎に指紋情報を格納するメモリのアドレス(以下、「指紋情報格納アドレス」という)が更新されるとよい。
【0033】
そして、メインコントローラ12は、認証コマンドの受信を検知した場合に、当該認証コマンドを取得して当該認証コマンドに含まれる指紋情報と、指紋センサ11から取得された指紋情報とを用いてユーザ認証に係るコマンド処理(つまり、両指紋情報が一致するか否かを判定する処理)を実行し、当該認証結果を示すレスポンスをR/W2へ送信する。かかるユーザ認証において両指紋情報が一致すれば、認証結果は認証OKとなり、両指紋情報が一致しなければ、認証結果は認証NGとなる。
【0034】
なお、認証コマンドの受信が検知されたときに指紋情報に不足がある(つまり、全データサイズY分の指紋情報が取得されていない)場合が想定される。このような場合、メインコントローラ12は、不足分のデータを指紋センサ11から取得し、当該不足分のデータの取得が完了した後に、上記認証コマンドに含まれる指紋情報と、指紋センサ11から取得された当該不足分のデータを含む指紋情報(つまり、当該不足分のデータが補完された指紋情報)とを用いてユーザ認証に係るコマンド処理を実行するとよい。
【0035】
[2.メインコントローラ12の動作]
次に、
図5を参照して、メインコントローラ12の動作について説明する。
図5は、メインコントローラ12が起動した後の処理例を示すフローチャートである。
図5に示す処理は、接触通信の場合、7816端子部13のC2端子(リセット端子)を介してリセット信号が受信されることにより開始される。一方、非接触通信の場合、アンテナ14を介してリクエストコマンドが受信されることにより開始される。
【0036】
図5に示す処理が開始されると、メインコントローラ12は、初期応答をR/W2へ送信する(ステップS1)。非接触通信の場合、このとき、アンチコリジョン処理も行われる。次いで、メインコントローラ12は、メモリの指紋情報格納アドレスを初期化する(ステップS2)。
【0037】
次いで、メインコントローラ12は、指紋情報の取得サイズ長(Xバイト)を設定する(ステップS3)。ここで、取得サイズ長は、単位データXのサイズに相当する。次いで、メインコントローラ12は、コマンドの受信を検知したか否かを判定する(ステップS4)。メインコントローラ12は、コマンドの受信を検知したと判定した場合(ステップS4:YES)、ステップS5へ進む。
【0038】
ステップS5では、メインコントローラ12は、受信されたコマンドを取得する。次いで、メインコントローラ12は、ステップS5で取得された(取り込まれた)コマンドに応じたコマンド処理を実行する(ステップS6)。次いで、メインコントローラ12は、当該コマンド処理の結果を示すレスポンスをR/W2へ送信する(ステップS7)。こうして、次のコマンドの受信待機中となる。
【0039】
次いで、メインコントローラ12は、割り込み優先度を「コマンド受信割り込み > センサ割り込み」に設定する(ステップS8)。次いで、メインコントローラ12は、割り込み有効にする(ステップS9)。
【0040】
次いで、メインコントローラ12は、センサ割り込みが発生したか否かを判定する(ステップS10)。メインコントローラ12は、センサ割り込みが発生したと判定した場合(ステップS10:YES)、ステップS11へ進む。一方、メインコントローラ12は、センサ割り込みが発生していないと判定した場合(ステップS10:NO)、ステップS19へ進む。
【0041】
ステップS11では、メインコントローラ12は、指紋情報の取得処理を開始し、当該取得処理の開始を示す取得開始情報を指紋センサ11へ送信する。これにより、指紋情報の取得処理の開始が指紋センサ11に通知される。
【0042】
次いで、メインコントローラ12は、コマンドの受信を検知したか否かを判定する(ステップS12)。メインコントローラ12は、コマンドの受信を検知していないと判定した場合(ステップS12:NO)、ステップS13へ進む。一方、メインコントローラ12は、コマンドの受信を検知したと判定した場合(ステップS12:YES)、ステップS20へ進む。
【0043】
ステップS13では、メインコントローラ12は、指紋情報の取得命令を指紋センサ11へ送信することで当該指紋情報を指紋センサ11から取得し、ステップS14へ進む。ここで取得されたデータは、メモリの指紋情報格納アドレス(例えば、1000番地)に蓄積される。このとき取得されたデータのサイズは、例えば、上記取得サイズ長(X)よりも小さいサイズである。
【0044】
ステップS14では、メインコントローラ12は、コマンドの受信を検知したか否かを判定する。メインコントローラ12は、コマンドの受信を検知していないと判定した場合(ステップS14:NO)、ステップS15へ進む。一方、メインコントローラ12は、コマンドの受信を検知したと判定した場合(ステップS14:YES)、ステップS20へ進む。
【0045】
ステップS15では、メインコントローラ12は、肯定応答(Ack)を指紋センサ11へ送信し、ステップS16へ進む。
【0046】
ステップS16では、メインコントローラ12は、コマンドの受信を検知したか否かを判定する。メインコントローラ12は、コマンドの受信を検知していないと判定した場合(ステップS16:NO)、ステップS17へ進む。一方、メインコントローラ12は、コマンドの受信を検知したと判定した場合(ステップS16:YES)、ステップS20へ進む。
【0047】
ステップS17では、メインコントローラ12は、ステップS3で設定された取得サイズ長の単位データXを取得したか否かを判定する。メインコントローラ12は、取得サイズ長の単位データXを取得していないと判定した場合(ステップS17:NO)、ステップS13に戻る。一方、メインコントローラ12は、取得サイズ長(Xバイト)の単位データXを取得したと判定した場合(ステップS17:YES)、ステップS18へ進む。このように、指紋情報の取得処理では、当該指紋情報の全データサイズより小さいサイズのデータ毎に指紋センサ11から取得され、当該データの取得間において次のコマンドの受信が検知されたか否かが判定されることになる。
【0048】
すなわち、指紋情報のうち単位データXがメモリの指紋情報格納アドレスに蓄積されるまでステップS13~ステップS17のループ処理が行われる。このループ処理中に、コマンドの受信が検知された場合(つまり、コマンド受信割り込みが発生した場合)、単位データX未満の蓄積データは破棄されることになる。したがって、単位データXのデータサイズはできるだけ小さい方が効率的である。ただし、単位データXのデータサイズが小さいほど、メインコントローラ12と指紋センサ11との間のデータ送受信の回数が増し処理時間が増加するので、両者の兼ね合いからより効率良く蓄積されるように単位データXのデータサイズが決定されることが望ましい。
【0049】
ステップS18では、メインコントローラ12は、メモリの指紋情報格納アドレスを更新し、ステップS19へ進む。例えば、当該指紋情報格納アドレスがXバイトずらされる(例えば、1000番地から10xx番地にシフトされる)。ただし、指紋情報の全データサイズYが取得されている場合は、指紋情報格納アドレスを更新しない。これは、指紋情報格納アドレスが更新され続けられてしまうことで、指紋情報を格納するバッファがオーバーフローしてしまうことを避けるためである。
【0050】
ステップS19では、メインコントローラ12は、コマンドの受信を検知したか否かを判定する。メインコントローラ12は、コマンドの受信を検知していないと判定した場合(ステップS19:NO)、ステップS10に戻り、センサ割り込みの発生が継続中であればステップS11に移行する(或いは、ステップS11をスキップしてステップS12に移行してもよい)。一方、メインコントローラ12は、コマンドの受信を検知したと判定した場合(ステップS19:YES)、ステップS20へ進む。
【0051】
ステップS20では、メインコントローラ12は、指紋情報の取得処理を終了し、当該取得処理の終了を示す取得開始情報を指紋センサ11へ送信する。これにより、指紋情報の取得処理の終了が指紋センサ11に通知される。次いで、メインコントローラ12は、割り込み無効にし(ステップS21)、ステップS5に戻る。割り込み無効(無効設定)によって指紋センサ11からのセンサ割り込み発生が無視される。
【0052】
以上説明したように、上記実施形態によれば、メインコントローラ12は、R/W2からのコマンドの受信を検知した場合に、当該コマンドを取得してコマンド処理を実行し、当該コマンドに対するレスポンスをR/W2へ送信する。そして、メインコントローラ12は、次のコマンドの受信待機中にセンサ割り込みが発生した場合に、指紋センサ11からの指紋情報の取得処理を開始し、当該取得処理中に次のコマンドの受信を検知した場合に、当該取得処理を終了して当該次のコマンドに応じたコマンド処理を実行し、そのレスポンスをR/W2へ送信するように構成したので、R/W2側での待ち時間(つまり、ユーザ認証に係るコマンド処理の待ち時間)が低減することができ、コマンド受信と指紋情報取得とが衝突することを回避してコマンド送信キャラクタの取り逃し(データの欠落)を防ぎつつ、指紋センサ11から指紋情報をより効率良く取得することができる。
【0053】
なお、上記実施形態においては、ユーザ認証に用いられる生体情報として指紋情報を例にとって説明したが、ユーザの掌における紋(掌紋)、またはユーザの掌または指における血管(静脈)パターンを生体情報として取得するように構成してもよく、かかる場合にも本発明を適用することができる。
【符号の説明】
【0054】
1 ICカード
11 指紋センサ
12 メインコントローラ
13 7816端子部
14 アンテナ
121 CPU
122 RAM
123 ROM
124 NVM
125~127 IF部