(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0017】
以下、本発明の実施形態を図面に関連付けて説明する。
以下の実施形態においては、電子機器装置としてカードリーダライタを例に説明する。ただし、本発明はカードリーダライタに限らず、電子機器装置としてのカードスキャナ、カードプリンタ等にも適用可能である。
【0018】
図1は、本発明の実施形態に係る情報処理システムの概要を示すブロック図である。
図2は、本実施形態に係る上位装置の構成例を概念的に示す図である。
図3は、本実施形態に係る電子機器装置としてのカードリーダライタの信号処理系の基本的な構成例を示す図である。
【0019】
情報処理システム10は、情報処理装置としての上位装置(ホスト装置)20、電子機器装置としてのカードリーダまたはカードリーダライタ30、および情報カード(以下、単にカードという)40を含んで構成されている。
本実施形態においては、電子機器装置として、カード40のリードライト(再生、記録)機能を有するカードリーダライタ30を例に説明する。
本情報処理システム10の概要を説明した後、各部の具体的な構成および機能について説明する。
【0020】
[本情報処理システム10の概要]
金融機関などで使用され、キャッシュレスや個人認証などを実現するカードとして、たとえばプラスチック基板にストライプ状に磁気データが記録された磁気カード、プラスチック基板内部に集積回路チップ(ICチップ)が埋め込まれ、表面にIC端子が配置されたICカード(接触式ICカード)や内部にアンテナコイルが配置されたICカード(非接触式ICカード)がある。
そして、このカード(磁気カードまたはICカード)40に対する情報の再生または記録は、電子機器装置としてのカードリーダライタ30によって行われる。
【0021】
基本的に、カードリーダライタ30は、上位装置20からのコマンド(たとえばコマンドAPDU:Application Protocol Data Unit)を受信し、カード40との通信プロトコルに沿った形式(たとえばコマンドTPDU:Transmission Protocol Data Unit)に変換する。
そして、カードリーダライタ30は、電圧や通信速度等も変換した後に、そのコマンドをカード40へ送信する。また、カードリーダライタ30は、カード40からの応答を受信した後、逆変換(レスポンスTPDUからレスポンスAPDUへ)を行って、その応答を上位装置20へ送信する。
【0022】
上位装置20とカードリーダライタ30との間の通常の通信は、RS232CやUSB(Universal Serial Bus)などの専用線(有線の通信線)を用いた通信システムが適用され、本実施形態ではUSB通信システムが適用されている。
したがって、上位装置20とカードリーダライタ30とは、通常の通信経路としてUSBケーブル50により接続されている。
カードリーダライタ30とカード40との間の通信は、TTLレベル、USB、および非接触通信等が一般的である。
また、一般に、カードリーダライタ30は、APDUのデータ内容を解釈することなく、単にTPDUに変換する処理を行う。
【0023】
このようなカードリーダライタ30等の電子機器装置と通信を行うATM等の上位装置20には、電子機器装置であるカードリーダライタとの通信を制御するために、オブジェクト指向環境で動作する通信制御用クラスライブラリ(ソフトウェアシステム)が適用される場合がある。
なお、対象となるクラスライブラリは、ターゲットとなるカードリーダライタとの通信規約をカプセル化し、カードリーダライタを機能させるためのコマンド送信、レスポンス受信を行うためのインタフェースの提供を主な目的とする。
【0024】
ところで、手動式、電動式を問わず原価低減が求められるカードリーダやカードリーダライタにおいては、メモリ、演算能力、通信機能といったリソースが制限された情報処理部としてのCPUが採用されることが多い。
上記カードリーダライタが市場展開された後に動作設定や機能変更を行う場合、カードリーダライタ本体に内蔵したメカニカルな機能接続スイッチを変更したり、専用の設定変更用の機能を接続等する必要が生じる。
これは、メーカもしくはエンドユーザのサポート要員が操作することを意味するので、エンドユーザ自身が動的に容易に変更することが困難である。
【0025】
そこで、本実施形態に係る電子機器装置としてのカードリーダライタ30を含む情報処理システム10は以下のような特徴的な構成を有する。
【0026】
本実施形態に係るカードリーダライタ30は、たとえばHIDキーボードインタフェース(I/F)を有しており、メモリに国語(言語)に応じて対応したプログラムが記載されていない場合には、その言語に対応したプログラムに全面的に書き換え、機能変更を行う必要がある。
また、カードリーダライタ30が上位装置20に送信するデータに任意の開始、終了、区切り信号を付加したり、エラー通知の有効無効を選択する等、カードリーダライタ30の動作に関する設定を行うが、場合によっては、この設定情報を変更する必要がある。
本実施形態のカードリーダライタ30においては、このような設定情報の変更および機能の変更の必要がある場合に対応して、主通信システムのUSB通信システムではなく、別の無線通信システムにより変更すべき情報を受信して変更可能なように構成されている。
【0027】
本実施形態において適用される無線通信システムは、一例として、通信規格であるIEEE802.11シリーズ(IEEE802.11a/IEEE802.11b)を利用した無線LAN機器間の相互接続に伴う無線通信を行う。
そして、本実施形態において適用される無線通信システムは、Wi‐Fi(登録商標、ワイファイ,Wireless Fidelity)Allianceによって無線LAN機器間の相互接続性を認証された無線通信システムとする。
これにより、異なるメーカ間のみならず、同一メーカであってもラインナップの異なる製品間であっても相互接続が保証されることなり、汎用性が高く、また、ノイズの影響を受けにくく、設定情報および機能の変更を、レイアウトを意識することなく容易に実現することが可能となっている。
【0028】
本実施形態においては、この無線通信システムを用いて書き換える設定情報および機能の変更に関する情報は、以下のように構成をもって管理され、必要に応じて無線通信により書き換えが行われる。
【0029】
1)設定情報の変更
カードリーダライタ30が送信するデータに任意の開始、終了、区切り符号を付加したり、エラー通知の有効無効を選択する等、主にカードリーダの動作に関する設定を行う。
これは上位装置(ホスト装置)20側で、設定・機能変更ソフトウェアを使用することにより、現在の設定値の確認、変更する設定値を容易に確認可能に構成される。
具体的には、本体機能で使用するコマンドとは別のコマンドを使ってカードリーダライタ30上に実装した不揮発性メモリ上に設定情報を格納するように構成される。
【0030】
2)機能の変更
たとえばHIDキーボードI/Fを持つカードリーダの場合、エンドユーザが使用する国によって言語を切り替える必要がある。
実現方法としては、対応する言語用のソフトウェアを全てカードリーダライタ30に内蔵し、カードリーダライタ30上のメカニカルスイッチにより切り替えたり、上記設定情報の変更で切り替える方法もあるが、十分なリソースが必要になるので現実的ではない。
そこで、本実施形態においては、各国語用のソフトウェアを設定ツールに内蔵し(具体的にはダイナミックライブラリ化して一元管理)、エンドユーザの選択によりその都度カードリーダライタ30のソフトウェアを書き換える方法が採用される。
各国語用のソフトウェアを人が選択する方法では、ヒューマンエラーにより目的のソフトウェアが選択されないことがあるが、本実施形態では、一元されたライブラリから対象ソフトウェアを一意に識別し更新するのでミスすることが防止される。
【0031】
すなわち、本実施形態においては、設定・機能変更ソフトウェアにより、現状の設定・機能確認および設定・機能変更が誰にでも容易に実行できる。よって、思い込みや操作ミスによるヒューマンエラーを低減可能である。
また、機能変更時に手動で目的の機能を実現するカードリーダライタ用ソフトウェアを更新する必要がないので、確実に目的の機能を実現できる。また、選択可能な機能(ソフトウェア)をひとまとめにしているので、故意や過失による取り違いが発生しにくい。
【0032】
図2および
図3の例では、上位装置20が、通常通信に関する本体機能とは別に、設定、機能変更プログラムを有し、設定、機能変更のために専用ホスト装置としての機能を併せ持ち、カードリーダライタ30の無線通信部と相互接続に伴う無線通信を行うことが可能なホスト側無線通信部を有している。
【0033】
次に、上記構成を有する情報処理システム10の上位装置(ホスト装置)20、並びにカードリーダライタ(電子機器装置)30の具体的な構成および機能について説明する。
【0034】
[上位装置(ホスト装置)20の具体的な構成および機能]
本実施形態に係る上位装置(ホスト装置)20の具体的な構成および機能について説明する。
上位装置20は、上述したように、基本的に、カードリーダライタ30との間で、主通信システムのUSB通信システムを通して通信制御を行い、コマンドの送信に対応したレスポンス(応答)を受信する等の各種情報の授受を行って、カードリーダライタ30からの情報を取得する。
また、ここでの例では、上位装置20は、カードリーダライタ30の機器側無線通信部と相互接続して無線通信を行うホスト側無線通信部を有している。
そして、上位装置20は、カードリーダライタ30において設定情報の変更および機能の変更の必要がある場合に対応して、主通信システムのUSB通信システムではなく、このホスト側無線通信部を介してダウンロードさせて変更可能なように構成されている。
【0035】
図2は、本実施形態に係る上位装置の構成例を概念的に示している。
図2の上位装置20は、基本的に、処理装置であるCPU21、ROM22、RAM23、ストレージユニット24、バージョン(リビジョン)等の情報が表示される表示装置25、およびキーボード261やマウス262を含む操作部26を有している。
さらに、上位装置20は、主通信システムとしてのホスト側USB通信部27、ホスト側無線通信部28、および設定・機能変更ソフトウェア格納部(設定・機能変更情報格納部)29を有する。
ホスト側USB通信部27は、USBケーブル50を介してカードリーダライタ30のホスト側処理系のUSB通信部と接続されている。
【0036】
なお、本例では、CPU21やホスト側無線通信部28、設定・機能変更ソフトウェア格納部29等により構成される専用ホスト装置が上位装置20に組む込まれた構成が採用されている。
後述するように、この専用ホスト装置は、上位装置20と別個に設けることも可能である。
【0037】
本例においては、図中のストレージユニット24内に保存されたオペレーティングシステム(OS)、ミドルウェアMW、アプリケーション等のプログラムがソフトウェアシステムの一部をなし、実行時にいわゆるコンピュータ(電子計算機)のソフトウェアとしてRAM23上に展開される。
【0038】
このような構成を有する上位装置20においては、次の特徴をもって構成されている。
上記したように、状況に応じた処理を実行するアプリケーションプログラムおよびカードリーダライタ30との通信制御用の複数のミドルウェアを含むソフトウェアシステムを有している。
上位装置20においては、この通信制御用の複数のミドルウェアをまとめてクラスライブラリとして形成される。
【0039】
なお、クラスライブラリとは、ある特定の機能をもったプログラムを、オブジェクト指向言語を用いて一つの「クラス」として部品化し、関連する複数のクラスを一つのファイルにまとめたものをいう。
共通する属性やメソッドをまとめたものをクラスと呼ぶ。通常、そこにオブジェクト(群)は含まれない。
オブジェクトは、クラスに具体的なデータを持たせたものである。
こうした「クラス」はプログラムの部品として利用できるため、よく使われる汎用的なものをクラスライブラリに集めておくことで、プログラミングの労力を軽減することができる。
また、クラスライブラリでは、ファイル入出力、数学演算、ネットワークなど様々な機能を提供するライブラリを用意することが可能である。
【0040】
上述したように、上位装置20において、CPU21が全体の制御を行う。
上位装置20は、カードリーダライタ30との通常の通信を行う場合に、CPU21の制御の下、ホスト側USB通信部27を通して、USBケーブル50により接続されたカードリーダライタ30のホスト側処理系のUSB通信部との間でUSB通信を行う。
【0041】
USB通信システムは、ホストである上位装置20とデバイスであるカードリーダライタ30間をシリアル通信で接続するものであって、たとえばプラグアンドプレイ機能(自動接続認識機能)、ホットプラグ機能(電源を入れたままでの抜き差しを可能にする機能)およびホストからデバイスへの電源供給機能など、ユーザの利便性を高める様々な機能を有している。
一般的に、USB通信で用いるUSBケーブル50は、5Vの電源ライン(V−BUSライン)、GND(グランド)ライン、およびデータ転送用のD+及びD−の信号ラインから構成される合計4本の配線を有している。
そして、カードリーダライタ30等のデバイス側では、V−BUSラインを通じて送信されるV−BUS信号の常時監視を行っている。つまり、このV−BUS信号の遷移状態を常時監視することで、USB通信の異常検出を行うこともできるようになっている。たとえば、V−BUSラインの上位装置が故意にダウンさせることのないシステムにおいては、USB通信中に何らかの理由でUSBケーブルが外れた場合には、V−BUS信号がオンからオフへと遷移し、その結果、デバイスはUSB通信の物理的な接続が破断したと認識し、USB通信の異常が検出されることもできる。
【0042】
また、上述したように、本実施形態に係るカードリーダライタ30は、たとえばHIDキーボードインタフェース(I/F)を有しており、メモリに国語(言語)に応じて対応したプログラムが記載されていない場合には、その言語に対応したプログラムに全面的に書き換え、機能変更(仕様変更)を行う必要がある。
また、カードリーダライタ30が上位装置20に送信するデータに任意の開始、終了、区切り信号を付加したり、エラー通知の有効無効を選択する等、カードリーダライタ30の動作に関する設定を行うが、場合によっては、この設定情報を変更する必要がある。
【0043】
図2の上位装置20は、このような場合に対応可能なように、カードリーダライタ30において、上記した設定情報の変更および機能の変更の必要がある場合に対応して、主通信システムのUSB通信システムではなく、全く別系統の無線通信システムにより変更すべき情報を送信して変更可能なように構成されている。
すなわち、
図2の上位装置20は、たとえば不揮発性メモリ等の設定・機能変更ソフトウェア格納部29に、種々の仕様に対応する各国語のソフトウェア等を設定ツールとして内蔵している。
上位装置20は、CPU21の制御の下、ユーザによる操作部26の操作(選択)により、設定・機能変更ソフトウェア格納部29から必要な情報を読み出し、ホスト側無線通信部28を通して、書き換えすべき設定情報やソフトウェアを無線規格に準じた形式でカードリーダライタ30側に無線で送信する。
【0044】
また、上位装置20は、この無線通信系を介してカードリーダライタ30の動作を監視することも可能に構成されている。
これに付随して、上位装置20は、カードリーダライタ30側で蓄積されたログ(ロギング)情報を受信して、RAMや別途設けた不揮発性メモリ等に保存して、保守用データとしてユーザに提供できるように構成されている。このようなログ情報等は表示装置25やプリンタ等に出力され、解析等される。
【0045】
以上、上位装置20の構成および機能について具体的に説明した。
次に、カードリーダライタ30の構成および機能について説明する。
【0046】
[カードリーダライタ30の構成および機能]
カードリーダライタ30は、上位装置20との通信およびカード40との通信機能を有する。カードリーダライタ30は、上位装置20とのメイン(通常)の通信はUSB通信規格に準拠して行う。
また、カードリーダライタ30は、設定情報や言語に対応したプログラムに全面的に書き換え、機能変更を行う必要がある場合に、その情報を無線で受信して処理を行う機能や、カードリーダライタ30のログ情報を取得して、たとえば上位装置20に無線で送信する機能を有する。
【0047】
前述したように、
図3は、本実施形態に係る電子機器装置としてのカードリーダライタの信号処理系の構成例を示している。
また、
図4は、本実施形態に係るカードリーダライタのメイン側処理系とサブ側処理系においてCPU、リセット回路、電源回路を含む構成例を示す図である。
図3および
図4において、上位装置の構成は要部のみ示されている。
【0048】
カードリーダライタ30は、
図3および
図4に示すように、メイン側処理系310およびサブ側処理系320を含んで構成されている。
メイン側処理系310が、基本的に、上位装置20との通信およびカード40との通信機能を有する。
サブ側処理系320が、基本的に、設定情報や言語に対応したプログラムに全面的に書き換え、機能変更を行う必要がある場合に、その情報を無線で受信して処理を行う機能や、カードリーダライタ30のログ情報を取得して、たとえば上位装置20に無線で送信する機能を有する。
【0049】
[メイン側処理系310の構成]
カードリーダライタ30のメイン側処理系310は、
図3に示すように、カードリーダライタ30全体を統合的に制御する第1の情報処理手段としてのメインCPU311、カードリーダライタ30の動作プログラムや初期値、パラメータなどを格納する格納手段としてのROM312、およびメインCPU311のワーキングエリアとして機能するRAM313を有している。
メイン側処理系310は、上位装置20とUSB通信を行うI/F(インタフェース)である第1の通信手段としてのUSB通信部314、およびカードI/F315を有している。
さらに、メイン側処理系310は、
図4に示すように、リセット回路316および電源回路317を含んで構成されている。
【0050】
カードリーダライタ30は、メイン側処理系310において、USB通信部314さらにはUSBケーブル50を介して上位装置20と接続され、カードI/F315を介してカード40と(有線または無線で)通信可能に構成されている。
カードリーダライタ30は、上位装置20との間の通信規約に沿った情報列のコマンドに基づき動作し、カード40との間の通信規約に沿った情報列の送受信を行う機能を有する。
【0051】
USB通信部314は、上位装置20からカードリーダライタ30へ送られた信号をTTLレベルの信号に変換し、それをメインCPU311に転送する機能を有する。
また、メインCPU311からの信号を逆変換して、上位装置20に転送する。
本実施形態において、上位装置20とカードリーダライタ30の間の通常の通信としては、上述したように、USB通信システムが採用されている。
【0052】
CPU311は、上位装置20との間の通信規約(本例ではUSB)に沿った情報列(たとえばコマンドAPDU)内のコマンドに基づいて動作する。
そして、メインCPU311は、そのコマンドAPDUを、カード40との間の通信規約に沿った情報列に変換し、これをカード40に送信する。
すなわち、メインCPU311は、上位装置20からのコマンド(APDU)を、カード40との通信プロトコルに沿った形式(コマンドTPDU)に変換する。
変換されたコマンドTPDUは、カードI/F315を通じてカード40に送信される。
【0053】
一方で、カード40からのレスポンス受信時には、メインCPU311はレスポンスTPDUをレスポンスAPDUに変換する。変換されたレスポンスAPDUは、USB通信部314を通じて上位装置20に転送される。
【0054】
カードI/F315は、コマンドTPDUを、カード40に応じた電圧や通信速度に変換し、カード40に送信する。
また、カードI/F315は、カード40から受信した信号をTTLレベルの信号に変換し、それをメインCPU311に伝える機能を有する。
【0055】
ROM312は、プログラム等の不揮発性データを保存し、その容量はなるべく小さく低コスト化を図れるように制限されている。
ROM312は、各種プログラムや設定情報を格納するが、少なくとも、カードリーダライタ30が上述したHIDキーボードI/Fを有している場合に、国語(言語)に応じて対応したプログラムが記載されていない場合には、その言語に対応したプログラムに全面的に書き換え、機能変更を行う必要がある。
また、カードリーダライタ30が上位装置20に送信するデータに任意の開始、終了、区切り信号を付加したり、エラー通知の有効無効を選択する等、カードリーダライタ30の動作に関する設定を行うが、場合によっては、この設定情報を変更する必要がある。
したがって、本実施形態のROM312は、少なくとも上記言語に対応したプログラムおよび設定情報について、書き換え可能に構成されている。
この書き換え処理については、サブ側処理系320のサブCPU321の制御の下で行われる。
【0056】
これに対して、RAM313は、メインCPU311のワーキングエリアとして機能し、一時的にデータを保存する。
【0057】
[サブ側処理系320の構成]
カードリーダライタ30のサブ側処理系320は、
図3に示すように、カードリーダライタ30のプログラムや設定情報の変更(書き換え)やログ情報の収集等のサブ処理を制御する第2の情報処理手段としてのサブCPU321、サブCPU321の動作プログラムなどを格納するROM322、およびサブCPU321のワーキングエリアとして機能するRAM323を有している。
サブ側処理系320は、第2の通信手段としての無線通信部324を有している。
さらに、サブ側処理系320は、
図4に示すように、リセット回路325および電源回路326を含んで構成されている。
【0058】
カードリーダライタ30は、サブ側処理系320において、無線通信部324を介して上位装置20と相互に接続される。
【0059】
無線通信部324は、上位装置20とWi‐Fi(登録商標)Allianceによって無線LAN機器間の相互接続性を認証された無線通信システムを用いて無線通信を行う機能を有する。
これにより、異なるメーカ間のみならず、同一メーカであってもラインナップの異なる製品間であっても相互接続が保証されることなり、汎用性が高く、また、ノイズの影響を受けにくく、設定情報および機能の変更を、ケーブルをさらに配線する必要がなく、レイアウトを意識することなく容易に実現することが可能となっている。
【0060】
ROM322は、プログラム等の不揮発性データを保存し、その容量はなるべく小さく低コスト化を図れるように制限されている。
【0061】
これに対して、RAM323は、サブCPU321のワーキングエリアとして機能し、一時的にデータを保存する。
【0062】
サブCPU321は、無線通信部324を通して接続が確認された上位装置20からソフトウェアや設定情報の変更(書き換え)コマンドを受けると、メインCPU311に対して信号S321により動作停止指令を発行する。
そして、サブCPU321は、無線通信部324で受信された書き換えるべき、ソフトウェア情報、あるいは設定情報により、メイン側処理系310のROM312の書き換えが許可されている領域のソフトウェアあるいは設定情報を、書き換える(変更する)。
サブCPU321は、この書き換えが正常に終了したことを確認した後、リセット信号S321Rをリセット回路316に発行してメインCPU311をリセットさせ、その後、新たに書き換えられたソフトウェア(プログラム)や設定情報を用いた処理が行えるように制御する機能を有する。
あるいは、サブCPU321は、この書き換えが正常に終了したことを確認した後、電源オン(ON)/オフ(OFF)信号S321PWを電源回路317に発行してメインCPU311を電源オン/オフさせ、その後、新たに書き換えられたソフトウェア(プログラム)や設定情報を用いた処理が行えるように制御する機能を有する。
【0063】
また、サブCPU321は、メイン側処理系310の監視機能やログ情報を収集する機能を有する。
サブCPU321は、収集したログ情報は、RAM323に、あるいは別途設けられるメモリ327に一時的に保持しておき、無線通信部324を介して上位(ホスト)側からログ情報の送信要求を受けると、無線通信部324を通して上位装置20に送信する。
【0064】
上述したように、メインCPU311は、カードリーダライタ30の動作の制御機能を総合的に司る第1の情報処理手段としての中核をなし、リセット回路316からのリセット信号RSTMに基づいて電子機器装置であるカードリーダライタ30のリセット命令を実行する。
また、メインCPU311は、電源回路317からの電源オン(ON)/オフ(OFF)信号PWOFMに基づいてカードリーダライタ30の電源のON/OFF命令を実行する。
さらに、メインCPU311は、サブ側処理系320のリセット回路325にリセット信号RSTSを送信したり、電源回路326に電源ON/OFF信号PWOFSを送信したりする。
なお、本実施形態では、メインCPU311は、サブCPU321に対してブートモード設定の信号を送信してブートモード設定命令を実行することができるようになっている。
【0065】
リセット回路316は、サブCPU321からのリセット信号S321Rを受信して、メインCPU311を含むカードリーダライタ30全体にハードリセットをかけ、メインCPU311を初期化する。
電源回路317は、サブCPU321からの電源ON/OFF信号S321PWに基づいてメインCPU311を含むカードリーダライタ30全体に電源のON/OFFをかける。
【0066】
そして、サブCPU321は、カードリーダライタ30の設定情報や機能変更情報の書き換え、動作状態の監視機能を司る第2の情報処理手段としての中核をなし、リセット回路325からのリセット信号RSTSに基づいてリセット回路316にリセット信号を送信したり、電源回路326からの電源ON/OFF信号PWOFSに基づいて電源回路317に電源ON/OFF信号を送信したりする機能を有する。
なお、本実施形態では、サブCPU321は、メインCPU311に対してブートモード設定の信号を送信し、ブートモード設定により電子機器装置30のソフトウェアを書き換えることができるようになっている。
【0067】
上記構成によれば、メインCPU311はカードリーダライタ30本来の機能(主機能)を発揮するために設けられ、サブCPU321はカードリーダライタ30のソフトウェアや設定情報の変更や、ログ情報の収集、あるいは動作状態を監視する制御機能を発揮するために設けられている。
サブCPU321による制御状況に応じて、メインCPU311を含むリセット回路316や電源回路317による総合的なカードリーダライタ30の動作の制御をすることができる。なお、動作状態とは、カードリーダライタ30が期待した機能を実現可能な状態をいう。
【0068】
なお、本実施形態によれば、カードリーダライタ30において、メインCPU311およびサブCPU321はそれぞれブートモード設定の機能を有している。
このため、サブCPU321がメインCPU311に対してブートモード設定の信号BSTSを送信することによって、メインCPU311をブートモードに遷移させてソフトウェアの更新(アップデート)をすることができる。
また、メインCPU311がサブCPU321に対してブートモード設定の信号BSTMを送信することによって、サブCPU321をブートモードに遷移させてソフトウェアの更新(アップデート)をすることができる。
これにより、メインCPU311とサブCPU321とによる相乗効果により、ソフトウェアの保守性を向上させることができる。また、更新の際には、更新用のソフトウェアをフラッシュメモリ等の記憶部に常駐させることなく、メインCPU311やサブCPU321をブートモードに制御可能にしたことから、更新用ソフトウェア自身を更新することが可能となり、ソフトウェアの部分的更新ではなく全体的更新をすることができ、ソフトウェアの保守性をより向上させることができる。
【0069】
[ソフトウェアあるいは設定情報の変更時の動作例]
次に、上記構成によるソフトウェアあるいは設定情報の変更時の動作を、
図5に関連付けて説明する。
図5は、本実施形態に係る情報処理システムにおけるソフトウェアあるいは設定情報の変更時の動作説明するためのフローチャートである。
以下では、一例としてHIDキーボードI/Fを持つカードリーダ30を導入する場合に、その導入国に対応する国語(言語)用ソフトウェアに書き換える(変更する)場合を例に説明する。
【0070】
たとえば、新たに設置するカードリーダライタ30が、たとえばHIDキーボードI/Fを持つカードリーダライタの場合、エンドユーザが使用する国によって言語を切り替える必要がある。
本実施形態においては、上記例では上位装置20に各国語用のソフトウェアを設定ツールに内蔵し(具体的にはダイナミックリンクライブラリ化して一元管理)、エンドユーザの選択によりその都度カードリーダライタ30のソフトウェアを書き換える方法が採用される。
すなわち、
図2の上位装置20は、たとえば不揮発性メモリ等の設定・機能変更ソフトウェア格納部29に、各国語のソフトウェア等を設定ツールとして内蔵している。
【0071】
上位装置20では、CPU21の制御の下、エンドユーザによる操作部26の操作(選択)によりカードリーダライタ30のソフトウェアを書き換える指示が出される(ステップST1)。
これにより、上位装置20は、ホスト側無線通信部28を通して所定の無線通信規格に準じてカードリーダライタ30の無線通信部324との間で相互接続処理が行われる(ステップST2)。
相互接続が正常に行われていることを確認すると(ステップST3)、上位装置20においては、ソフトウェアの書き換えコマンドが発行され(ステップST4)、設定・機能変更ソフトウェア格納部29から必要な情報が読み出され(ステップST5)、ホスト側無線通信部28を通して、書き換えすべき設定情報やソフトウェアが無線規格に準じた形式でカードリーダライタ30側に無線で送信される(ステップST6)。
【0072】
カードリーダライタ30において、サブCPU321側で無線通信部324を通して接続が確認された上位装置20からソフトウェア(や設定情報)の書き換えコマンドが受信される(ステップST7)。
これに伴い、サブCPU321からメインCPU311に対して信号S321により動作停止指令を発行され(ステップST8)、メインCPU311が停止状態(無動作状態)で、サブCPU321の制御の下、無線通信部324で受信された書き換えるべき、ソフトウェア情報(あるいは設定情報)により、メイン側処理系310のROM312の書き換えが許可されている領域のソフトウェアあるいは設定情報が、書き換えられる(ステップST9)。
サブCPU321では、この書き換えが正常に終了したことを確認された後(ステップST10)、リセット信号S321Rがリセット回路316に発行されメインCPU311がリセットさせる(ステップST11)。
その後、メインCPU311により、新たに書き換えられたソフトウェア(プログラム)や設定情報を用いた通常処理が行われる(ステップST12)。
【0073】
あるいは、サブCPU321においては、この書き換えが正常に終了したことを確認した後、電源オン(ON)/オフ(OFF)信号S321PWが電源回路317に発行されて、メインCPU311を電源オン/オフさせ、その後、新たに書き換えられたソフトウェア(プログラム)や設定情報を用いた通常処理が行えるように制御される。
【0074】
[ログ情報収集]
次に、カードリーダライタ30のログ情報の収集処理について説明する。
図6は、本実施形態に係るカードリーダライタ30のログ情報の収集処理について説明するための図である。
【0075】
カードリーダライタ30が動作中のログ情報がサブ側処理系320のサブCPU321の制御の下、収集され、収集したログ情報は、RAM323に、あるいは別途設けられるメモリ327に保持される(ステップST21)。
【0076】
ここで、上位装置20では、CPU21の制御の下、保守員等のエンドユーザによる操作部26の操作(選択)によりカードリーダライタ30のログ情報取得が指示される(ステップST22)。
これにより、上位装置20は、ホスト側無線通信部28を通して所定の無線通信規格に準じてカードリーダライタ30の無線通信部324との間で相互接続処理が行われる(ステップST23)。
相互接続が正常に行われていることを確認すると(ステップST24)、上位装置20においては、ログ情報の送信要求が発行され(ステップST25)、ホスト側無線通信部28を通して、送信要求が無線規格に準じた形式でカードリーダライタ30側に無線で送信される(ステップST26)。
【0077】
カードリーダライタ30において、サブCPU321側で無線通信部324を通して接続が確認された上位装置20からのログ情報送信要求が受信される(ステップST27)。
サブCPU321において、無線通信部324を介して上位(ホスト)側からログ情報の送信要求を受けると、RAM323あるいはメモリ327から蓄積したログ情報が読み出され(ステップST28)、無線通信部324を通して上位装置20に送信される(ステップST29)。
上位装置20では、無線通信部28を通して接続が確認されたカードリーダライタ30からのログ情報送が受信される(ステップST30)。
これに伴い、上位装置20では、カードリーダライタ30側で蓄積されたログ情報が、RAMや別途設けた不揮発性メモリ等に、保守用データとしてユーザに提供できるように保存される。
このようなログ情報等は表示装置25やプリンタ等に出力され、解析等される(ステップST31)。
【0078】
[メインCPU311による制御機能]
次に、カードリーダライタ30のメインCPU311による制御機能について説明する。
図7、本実施形態に係るカードリーダライタのメインCPUによる制御機能を説明するためのフローチャートである。
【0079】
USBケーブル50で接続された上位装置20とカードリーダライタ30とにおいて、カードリーダライタ30に電源が投入されると、メインCPU311において、エニュメレーション、つまり、USB規格に定めたカードリーダライタ30が上位装置20に接続された際の起動処理を実行してその処理が完了したかどうかが判断される(ステップST41)。
より具体的には、このエニュメレーションは、たとえば、上位装置20とカードリーダライタ30とがUSBケーブル50で接続されると、上位装置20は、カードリーダライタ30を識別する固有番号を付与され、この固有番号に基づき、上位装置20とカードリーダライタ30との間で通信等が行われる。
なお、エニュメレーションとは、USB規格で定義された通信確立手順のことであり、
上位装置(ホスト)がバスに接続されているデバイスを識別し、アドレスを指定し、収集したディスクリプタ情報を固定のものにすることをいう。
USBデバイスは、ディスクリプタを使って、その属性を報告する。
【0080】
エニュメレーション処理が完了後、カードリーダライタ30のメインCPU311の初期化が行われる。
ここで、初期化とは、カードリーダライタ30が使用可能な状態となるように準備を行うための動作をいい、この初期化動作は、カードリーダライタ30の電源投入時、始業開始前あるいは所定のエラー処理後等に行われる。
たとえば、カードリーダライタ30内のROM/RAMチェック、ポート設定、変数設定等のソフトウェア処理のことをいう。
初期化を行った後に、初期化完了信号がセットされて(ステップST42)、CPUの出力ポートがON(High)にされる。
【0081】
エニュメレーションと初期化が完了すると、メインCPU311において上位装置20からの指令に従ってカードリーダライタ30の主機能の処理を実行される(ステップST43)。
主機能の処理とは、たとえば、本実施形態にように電子機器装置としてカードリーダ(ライタ)を採用する場合には、カードの読み取り機能、取り込み機能等、カードのリードおよびライトに付随するすべての機能を発揮する。
【0082】
メインCPU311では、サブCPU321からの生存確認信号がセットされたか否かを判断し(ステップST44)、生存確認信号がセットされたと判定すれば生存確認信号がクリアされる一方(ステップST45)、生存確認信号がセットされていないと判定すれば処理をステップST43の処理に戻して、カードリーダライタ30の主機能の処理が実行される。
たとえば、サブCPU321がメインCPU311に対して生存確認信号を送信し、メインCPU311は生存確認信号がセットされた状態となり、この生存確認信号がセット(送信)された時点から所定の異常判断時間が経過するまでに、メインCPU311から生存確認信号に対する所定の応答信号を受信すれば、サブCPU321は、セットされた状態がクリアされた状態となり、サブCPU321はメインCPU311の動作が正常であると判断する。
もし、異常判断時間内に応答信号を受信できなければ、サブCPU321はメインCPU311に暴走や故障などの異常が発生したと判断する。
【0083】
[サブCPU321による監視機能]
次に、サブCPU321により監視機能について説明する。
図8は、本実施形態に係るカードリーダライタのサブCPUによる動作監視機能を説明するためのフローチャートである。
【0084】
USBケーブル50で接続された上位装置20とカードリーダライタ30とにおいて、サブCPU321においては、上述のエニュメレーションを実行してその処理が完了したかどうかが判断される(ステップST51)。次いで、サブCPU321の初期化を行った後に、初期化完了信号がセットされる(ステップST52)。
【0085】
エニュメレーションと初期化が完了すると、サブCPU321ではカードリーダライタ30の電源がON状態になっているか否かが判断され(ステップST53)、電源がON状態になっていないと判定すると、ON状態になるまでステップST53の処理が繰り返される。
ステップST53において、カードリーダライタ30の電源がON状態になっていると判定すると、初期化監視タイマーがたとえば5秒間にセットされる(ステップST54)。
【0086】
サブCPU321による初期化監視タイマーのセットが完了すると、メインCPU311の初期化が完了したか否かが判断される(ステップST55)。
初期化が完了したと判定すると、ステップST59に処理を進める一方、初期化が完了していないと判定すると、初期化監視タイマーがタイムアップしたか否かがサブCPU321において判定される(ステップST56)。
なお、ステップST55においてサブCPU321では初期化が完了したと判定すると、メインCPU311にその旨が通知され、メインCPU311では初期化完了信号がセットされることになる(
図7のステップST42)。
【0087】
ステップST56において、初期化監視タイマーがタイムアップしていない、すなわち、上記例示した5秒間を経過していないと判定すると、処理がステップST55に戻され、メインCPU32の初期化が完了したか否かが判断される。
一方、ステップST56において、初期化監視タイマーがタイムアップした、すなわち、上記例示した5秒間を経過したと判定すると、後述するリセット処理(ステップST57)や電源ON/OFF処理(ステップST58)が実行される。
【0088】
ステップST59においては、サブCPU321により生存確認タイマーがたとえば1秒間にセットされる。
次いで、サブCPU321によりメインCPU311に対して生存確認信号がセットされる(ステップST60)。メインCPU311に生存確認信号がセットされたか否かは、
図7のステップST44にて判断される。
【0089】
次いで、サブCPU321においては、生存確認信号がクリアされたか否かが判断される(ステップST61)。
これは、
図7のステップST45において、メインCPU311は生存確認信号をクリアすると、サブCPU321は生存確認信号がクリアされたと判定し、処理をステップST59に戻す。
【0090】
一方、ステップST61において、生存確認信号がクリアされていないと判定されると、生存確認タイマーがタイムアップしたか否かをサブCPU321にて判定される(ステップST62)。
ステップST56にて生存確認タイマーがタイムアップしていない、すなわち、上記例示した1秒間を経過していないと判定すると、処理がステップST61に戻され、メインCPU311にて生存確認信号がクリアされたか否かが判断される。
一方、ステップST62にて生存確認タイマーがタイムアップした、すなわち、上記例示した1秒間を経過したと判定されると、リセット処理(ステップST63)や電源ON/OFF処理(ステップST64)が実行される。
【0091】
このように、動作監視機能を有するサブCPU321は、メインCPU311の初期化が完了したか否かを監視して初期化が正常に完了していない場合や、メインCPU311の生存確認を監視して生存確認ができない場合には、メインCPU311のリセット処理や電源ON/OFF処理を実行することができる。
したがって、電子機器装置であるカードリーダライタ30の通信不具合や機能不具合が発生しても、上位装置20の再起動若しくはシャットダウンといった上位装置20による復旧を試みることなく、カードリーダライタ30自体で自己復旧を図ることができることから、電子機器装置を安定して動作させることができる
【0092】
以上説明したように、本実施形態によれば、以下の効果を得ることができる。
本実施形態においては、各国語用のソフトウェアを上位側の設定ツールに内蔵し(具体的にはダイナミックライブラリ化して一元管理)、エンドユーザの選択によりその都度カードリーダライタ30のソフトウェアを書き換える方法が採用される。
したがって、各国語用のソフトウェアを人が選択する方法では、ヒューマンエラーにより目的のソフトウェアが選択されないことがあるが、本実施形態では、一元されたライブラリから対象ソフトウェアを一意に識別し更新するのでミスすることが防止される。
【0093】
すなわち、本実施形態においては、設定・機能変更ソフトウェアにより、現状の設定・機能確認および設定・機能変更が誰にでも容易に実行できる。よって、思い込みや操作ミスによるヒューマンエラーを低減可能である。
また、機能変更時に手動で目的の機能を実現するカードリーダライタ用ソフトウェアを更新する必要がないので、確実に目的の機能を実現できる。また、選択可能な機能(ソフトウェア)をひとまとめにしているので、故意や過失による取り違いが発生しにくい。
【0094】
また、電子機器装置としてのカードリーダライタ30の無線通信部324は、上位装置20のホスト側無線通信部28とWi‐Fi(登録商標)Allianceによって無線LAN機器間の相互接続性を認証された無線通信システムを用いて無線通信を行う機能を有する。
これにより、異なるメーカ間のみならず、同一メーカであってもラインナップの異なる製品間であっても相互接続が保証されることなり、汎用性が高く、また、ノイズの影響を受けにくく、設定情報および機能の変更を、ケーブルをさらに配線する必要がなく、レイアウトを意識することなく容易に実現することが可能となっている。
【0095】
また、メインCPU311に対するサブCPU321からの電源ON/OFF処理によって、カードリーダライタ30自体が電源のON/OFF処理を実行することができるので、カードリーダライタ30の通信不具合や機能不具合が発生しても、上位装置20の再起動若しくはシャットダウンといった上位装置20による復旧を試みることなく、カードリーダライタ30自体で自己復旧を図ることができる。
このため、電子機器装置としてのカードリーダライタを安定して動作させることができる。また、メインCPU311に対するサブCPU321からの電源ON/OFF処理によっても自己復旧できない場合は、上位装置20にカードリーダライタ30の異常を通知して、カードリーダライタ30の電源をOFF状態にすることにより、上位装置20の再起動若しくはシャットダウン等による上位装置による復旧を試みることができる。
すなわち、上位装置20がカードリーダライタ30の状態を監視するのみならず、カードリーダライタ30が上位装置20の状態を監視することによって監視状態の相互補完を実現しており、上位装置20はカードリーダライタ30の異常を検出すると再起動させることができ、カードリーダライタ30は上位装置20の異常を検出すると無線により上位装置20に通知することができる。
【0096】
[他の実施形態]
図9は、本発明に係る情報処理システムの他の実施形態を説明するための図である。
【0097】
上述した実施形態においては、上位装置(ホスト)20とカードリーダライタ30を1対1に接続して構成したが、
図9に示すように、設定・機能変更のソフトウェアはカードリーダライタ30が接続された上位装置20とは別個に専用ホスト装置60として設けることも可能である。
上位装置20−1〜20−3とカードリーダライタ30−1〜30−3のセットを複数台管理するようなシステム構成の場合、専用ホスト装置60を個別で設けて、設定・機能変更機能を管理することにより、設定・機能変更機能を別個にさせて全体管理させた方が効率的である。
【0098】
この場合、設定、機能変更情報は各上位装置20−1〜20−3に転送し、各上位装置20−1〜20−3から対応するカードリーダライタ30−1〜30−3に無線で送信するように、あるいは、専用ホスト装置60から変更を要するカードリーダライタ30に対して無線で直接送信するように構成することも可能である。
【0099】
図10は、本発明に係る情報処理システムのさらに他の実施形態を説明するための図である。
また、上述した実施形態では上位装置20と電子機器装置であるカードリーダライタ30を1対1で接続しているが、
図10に示すように、上位装置20と複数のカードリーダライタ(電子機器装置)30−1〜30−nというように1対多数の場合でもよく、USB接続に限らずにイーサーネット接続であってもよい。
この場合、上位装置20Bから変更を要するカードリーダライタ30に対して無線で変更すべき情報を直接送信するように構成することが可能である。
【0100】
図9や
図10の構成を採用することにより、上記した実施形態の効果に加えて、書き換えやレイアウト等の自由度が上がるという利点がある。
【0101】
なお、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、CPU等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー(登録商標)ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。