(57)【要約】【課題】リーダを制御して無線通信媒体のデータを読み取っている最中にリーダとの通信が一時的に不能になっても、通信復旧時には通信不能となる直前の状態から読み取り制御を継続できるようにする。【解決手段】リーダ制御装置は、リーダに読取実行用のコマンドを送信してリーダの読取動作を制御している最中に、リーダからの応答が無くなると、リーダに動作確認用のコマンドを送信し、応答の有無を判定する。リーダから応答が無いときは、応答が有るまで動作確認用コマンドの送信を繰り返す。リーダからの応答を確認すると、読取制御を再開させる。【選択図】      図５
2010267205.tif 000002
【特許請求の範囲】
【請求項１】
無線通信を利用して無線通信媒体のデータを非接触で読み取るリーダの制御装置において、
前記リーダを双方向通信自在に接続する通信手段と、
前記通信手段を介して前記リーダに動作確認用のコマンドを送信し、応答の有無を判定する動作確認手段と、
前記リーダで読取った無線通信媒体のデータを一時的に保存するための読取バッファと、
前記動作確認用のコマンドに対して前記リーダから応答が有る状態で、前記無線通信媒体の読取開始コマンドを受付けると、前記読取バッファを初期化した後に前記通信手段を介して前記リーダに読取実行用のコマンドを送信し、応答の有無を判定する読取制御手段と、
前記読取実行用のコマンドに対して前記リーダからの応答として無線通信媒体のデータを取り込むと、このデータを未読データとして前記読取バッファに格納する未読処理手段と、
前記読取実行用のコマンドに対して前記リーダから応答が有る状態で、前記無線通信媒体のデータ要求コマンドを受付けると、前記読取バッファに格納された未読データを既読データとして処理する既読処理手段と、
前記読取実行用のコマンドに対して前記リーダから応答が無くなると、前記通信手段を介して前記リーダに動作確認用のコマンドを送信し、応答の有無を判定する再起動確認手段と、
この再起動確認手段により前記リーダから応答が無いときは応答が有るまで前記動作確認用コマンドの送信を繰り返し、前記リーダからの応答を確認すると前記読取制御手段を再開させる再開処理手段と、
を具備したことを特徴とするリーダ制御装置。
【請求項２】
前記動作確認手段による前記動作確認用コマンドの送信に対して前記リーダから応答が無いとき、制御動作を終了させる終了処理手段、をさらに具備したことを特徴とする請求項１記載のリーダ制御装置。
【請求項３】
前記未読処理手段は、前記読取実行用のコマンドに対して前記リーダからの応答として無線通信媒体のデータを取り込む毎に前記読取バッファを検索し、前記読取バッファに格納されていないデータを未読データとして前記読取バッファに格納することを特徴とする請求項１又は２記載のリーダ制御装置。
【請求項４】
無線通信を利用して無線通信媒体のデータを非接触で読み取るリーダを双方向通信自在に接続する通信手段を備え、この通信手段を介して接続されたリーダを制御するコンピュータを、
前記通信手段を介して前記リーダに動作確認用のコマンドを送信し、応答の有無を判定する動作確認手段、
前記動作確認用のコマンドに対して前記リーダから応答が有る状態で、前記無線通信媒体の読取開始コマンドを受付けると、前記リーダで読取った無線通信媒体のデータを一時的に保存するための読取バッファを初期化した後に前記通信手段を介して前記リーダに読取実行用のコマンドを送信し、応答の有無を判定する読取制御手段、
前記読取実行用のコマンドに対して前記リーダから応答データとして無線通信媒体のデータを取り込むと、このデータを未読データとして前記読取バッファに格納する未読処理手段、
前記読取実行用のコマンドに対して前記リーダから応答が有る状態で、前記無線通信媒体のデータ要求コマンドを受付けると、前記読取バッファに格納された未読データを既読データとして処理する既読処理手段、
前記読取実行用のコマンドに対して前記リーダから応答が無くなると、前記通信手段を介して前記リーダに動作確認用のコマンドを送信し、応答の有無を判定する再起動確認手段、及び、
この再起動確認手段により前記リーダから応答が無いときは、応答が有るまで前記動作確認用コマンドの送信を繰り返し、前記リーダからの応答を確認すると、前記読取制御手段を再開させる再開処理手段、として機能させるためのリーダ制御プログラム。
【請求項５】
前記コンピュータを、
前記動作確認手段による前記動作確認用コマンドの送信に対して前記リーダから応答が無いとき、制御動作を終了させる終了処理手段、としてさらに機能させるための請求項４記載のリーダ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信媒体のデータ読み取り機能を有するリーダまたは無線通信媒体へのデータ書き込み機能を有するリーダ・ライタの制御装置に関する。
【背景技術】
【０００２】
近年、無線タグ、無線ＩＣタグ、ＲＦタグ、ＲＦＩＤタグ等と称される無線通信媒体を管理対象の物品に付し、無線通信を利用して上記無線通信媒体の情報を読み取ったり無線通信媒体に情報を書き込んだりして物品を管理するシステムが開発され、広く普及している。
【０００３】
このようなシステムは、アンテナを介して無線通信媒体と無線通信を行うリーダ・ライタと、このリーダ・ライタを制御するリーダ・ライタ制御装置とを用いる。リーダ・ライタ制御装置は、ホスト装置、コントローラ等とも称され、例えばパーソナルコンピュータによって構成される。
【０００４】
リーダ・ライタは、リーダ・ライタ制御装置と通信ケーブルを介して双方向通信自在に接続される。リーダ・ライタは、リーダ・ライタ制御装置から読み取りコマンド又は書き込みコマンドを受信する毎に、所定周波数の電波をアンテナから放射して、この電波の交信領域内に存在する無線通信媒体と無線通信を行い、情報の読み取りや書き込みを非接触で行う（例えば、特許文献１を参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、従来のリーダ・ライタ制御装置は、リーダ・ライタを制御して無線通信媒体のデータを読み取っている最中に、例えばリーダ・ライタを接続する通信ケーブルが抜けたためにリーダ・ライタとの通信が一時的に不能になると、リーダ・ライタの読み取り制御を終了させていた。このため、通信復旧時にはデータの読み取りが最初からやり直されるため、通信不能となる前に読み取られた無線通信媒体のデータが通信復旧後に再度読み取られて二重に管理されたり、通信不能となる前は読み取られたが通信復旧後は読み取られなかったために管理から漏れたりする不具合があった。
【０００６】
本発明はこのような事情に基づいてなされたもので、その目的とするところは、リーダを制御して無線通信媒体のデータを読み取っている最中にリーダとの通信が一時的に不能になっても、通信復旧時には通信不能となる直前の状態から読み取り制御を継続することができ、二重読み取りや読み取り抜け等の不具合を防止できるリーダ制御装置及びコンピュータを当該リーダ制御装置として機能させるためのリーダ制御プログラムを提供しようとするものである。
【課題を解決するための手段】
【０００７】
本発明のリーダ制御装置は、無線通信を利用して無線通信媒体のデータを非接触で読み取るリーダの制御装置であって、リーダを双方向通信自在に接続する通信手段と、通信手段を介してリーダに動作確認用のコマンドを送信し、応答の有無を判定する動作確認手段と、リーダで読取った無線通信媒体のデータを一時的に保存するための読取バッファと、動作確認用のコマンドに対してリーダから応答が有る状態で、無線通信媒体の読取開始コマンドを受付けると、読取バッファを初期化した後に通信手段を介してリーダに読取実行用のコマンドを送信し、応答の有無を判定する読取制御手段と、読取実行用のコマンドに対してリーダからの応答として無線通信媒体のデータを取り込むと、このデータを未読データとして前記読取バッファに格納する未読処理手段と、読取実行用のコマンドに対してリーダから応答が有る状態で、無線通信媒体のデータ要求コマンドを受付けると、読取バッファに格納された未読データを既読データとして処理する既読処理手段と、読取実行用のコマンドに対してリーダから応答が無くなると、通信手段を介してリーダに動作確認用のコマンドを送信し、応答の有無を判定する再起動確認手段と、この再起動確認手段によりリーダから応答が無いときは、応答が有るまで動作確認用コマンドの送信を繰り返し、リーダからの応答を確認すると、読取制御手段を再開させる再開処理手段とを備えたものである。
【０００８】
本発明のリーダ制御プログラムは、無線通信を利用して無線通信媒体のデータを非接触で読み取るリーダを双方向通信自在に接続する通信手段を備え、この通信手段を介して接続されたリーダを制御するコンピュータを、通信手段を介してリーダに動作確認用のコマンドを送信し、応答の有無を判定する動作確認手段、動作確認用のコマンドに対してリーダから応答が有る状態で、無線通信媒体の読取開始コマンドを受付けると、リーダで読取った無線通信媒体のデータを一時的に保存するための読取バッファを初期化した後に通信手段を介してリーダに読取実行用のコマンドを送信し、応答の有無を判定する読取制御手段、読取実行用のコマンドに対してリーダから応答データとして無線通信媒体のデータを取り込むと、このデータを未読データとして読取バッファに格納する未読処理手段、読取実行用のコマンドに対してリーダから応答が有る状態で、無線通信媒体のデータ要求コマンドを受付けると、読取バッファに格納された未読データを既読データとして処理する既読処理手段、読取実行用のコマンドに対してリーダから応答が無くなると、通信手段を介してリーダに動作確認用のコマンドを送信し、応答の有無を判定する再起動確認手段、及び、この再起動確認手段によりリーダから応答が無いときは、応答が有るまで動作確認用コマンドの送信を繰り返し、リーダからの応答を確認すると、読取制御手段を再開させる再開処理手段、として機能させるためのものである。
【発明の効果】
【０００９】
かかる手段を講じた本発明によれば、リーダを制御して無線通信媒体のデータを読み取っている最中にリーダとの通信が一時的に不能になっても、通信復旧時には通信不能となる直前の状態から読み取り制御を継続することができ、二重読み取りや読み取り抜け等の不具合を防止できる効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】本発明に係る一実施形態のシステム構成図。
【図２】同実施形態において、リーダ・ライタ制御装置のＲＡＭに形成される読取バッファを示す模式図。
【図３】同実施形態におけるリーダ・ライタ制御装置の要部構成を示すブロック図。
【図４】同実施形態において、リーダ・ライタ制御装置のメインプログラム起動時におけるＣＰＵの要部処理手順を示す流れ図。
【図５】同実施形態において、リーダ・ライタ制御装置のリーダ・ライタ用ドライバプログラム起動時におけるＣＰＵの要部処理手順を示す流れ図。
【図６】同実施形態において、リーダ・ライタ制御装置のリーダ・ライタを使用する業務に対応したアプリケーションプログラム起動時におけるＣＰＵの要部処理手順を示す流れ図。
【発明を実施するための形態】
【００１１】
以下、本発明に係る一実施の形態を、図面を用いて説明する。  
なお、この実施形態は、無線通信媒体の一態様であるＲＦＩＤタグのデータを非接触で読み取ったり、ＲＦＩＤタグにデータを非接触で書き込んだりできるリーダ・ライタ２の制御装置３に本発明を適用した場合である。
【００１２】
図１は、本実施形態のシステム構成を示すブロック図である。このシステムは、アンテナ１を備えたリーダ・ライタ２と、このリーダ・ライタ２を制御するリーダ・ライタ制御装置３とからなる。リーダ・ライタ２は、リーダ・ライタ制御装置３に対して、例えばＵＳＢ（Universal Serial Bus）インターフェース仕様の通信ケーブル４により着脱自在に接続される。アンテナ１は、リーダ・ライタ２に外付けされていてもよいし、リーダ・ライタ２に内蔵されていてもよい。また、リーダ・ライタ２は、据置型であってもよいし、ハンディ型であってもよい。
【００１３】
リーダ・ライタ２は、通信ケーブル４を介してリーダ・ライタ制御装置３に接続された状態で、図示しない電源スイッチの投入により駆動電源が供給されると、動作可能となる。そして、物品等に付された図示しないＲＦＩＤタグとの間でアンテナ１を介して電波を送受信することにより、当該ＲＦＩＤタグのメモリに記憶されたデータを非接触で読み取ったり、当該ＲＦＩＤタグのメモリにデータを非接触で書き込んだりする。ＲＦＩＤタグは、無線タグ、無線ＩＣタグ、ＲＦタグ等とも称されて既に実用化されているもので、本実施形態では、自らデータの送信機能を持たないパッシブ型のＲＦＩＤタグを想定する。
【００１４】
図３は、本発明に係るリーダ・ライタ制御装置３の要部構成を示すブロック図である。リーダ・ライタ制御装置３は、制御部本体としてＣＰＵ（Central Processing Unit）１１を搭載している。また、主記憶部としてＲＯＭ（Read Only Memory）１２及びＲＡＭ（Random Access Memory）１３を搭載し、補助記憶部としてＨＤＤ（Hard Disk Drive）装置１４を搭載している。さらに、ＬＡＮ（Local Area Network）等の通信回線を介してサーバや他のコンピュータと通信を行う通信インターフェース１５、キーボード１６を制御して操作キーに対応した信号を取り込むキーボードコントローラ１７、ディスプレイ３８を制御して画像を表示させる表示コントローラ３９、プリンタ、ポインティングデバイス等の外部装置（デバイス）と双方向通信を行う複数の外部装置インターフェース２０，２１を搭載している。そして、外部装置インターフェース２０，２１のいずれか１つに、通信ケーブル４を介して前記リーダ・ライタ２を着脱自在に接続可能となっている（通信手段）。このようなリーダ・ライタ制御装置３は、たとえばパーソナルコンピュータによって構成することができる。
【００１５】
かかる構成のリーダ・ライタ制御装置３は、リーダ・ライタ２を使用する種々の業務、例えばＲＦＩＤタグを付した物品の所在管理業務に関わる情報処理をＣＰＵ１１に実行させるためのアプリケーションプログラム３１と、リーダ・ライタ２を制御するためのドライバプログラム３２とを、ＨＤＤ装置１４に実装している。
【００１６】
また、リーダ・ライタ制御装置３は、リーダ・ライタ２で読取ったＲＦＩＤタグのデータを一時的に保存するための読取バッファ４１としてのメモリ領域を、ＲＡＭ１３に確保している。読取バッファ４１は、図２に示すように、ＲＦＩＤタグのデータに、それぞれ既読フラグｆを付して記憶する。既読フラグｆは、対応するＲＦＩＤタグのデータが未読状態にあるとき“０”にリセットされ、既読状態になると“１”にセットされる。
【００１７】
図４は、リーダ・ライタ制御装置３において、メインプログラムが起動したときのＣＰＵ１１の要部制御手順を示す流れ図である。上記メインプログラムは、ＲＯＭ１２またはＨＤＤ装置１４に実装されており、リーダ・ライタ制御装置３が電源オンにより正常に立ち上がると起動する。そして、このメインプログラムの制御下で、前記アプリケーションプログラム３１及びドライバプログラム３２が起動する。
【００１８】
図５は、リーダ・ライタ制御装置３において、前記アプリケーションプログラム３１が起動したときのＣＰＵ１１の要部処理手順を示す流れ図であり、図６は、前記ドライバプログラム３２が起動したときのＣＰＵ１１の要部処理手順を示す流れ図である。以下、図４乃至図６の各流れ図を用いて、リーダ・ライタ制御装置３が有する技術的手段について説明する。
【００１９】
先ず、メインプログラムが起動すると、ＣＰＵ１１は、ＳＴ１としていずれかの外部装置インターフェース２０，２１にリーダ・ライタ２が接続されているか否かをチェックする。すなわちＣＰＵ１１は、各外部装置インターフェース２０，２１から接続確認用のコマンドを送信する。いずれかの外部装置インターフェース２０，２１にリーダ・ライタ２を含むデバイスが接続されていると、このデバイスは、接続確認用のコマンドを受信したことに応じて正常応答コマンドを返信する。この正常応答コマンドには、当該デバイスの種類を識別可能な情報が含まれる。そこでＣＰＵ１１は、各外部装置インターフェース４０，４１を監視して、正常応答コマンドの受信有無を判別する。所定時間内に正常応答コマンドを受信できないか、受信できたとしてもリーダ・ライタ２の接続を確認できなかった場合には（ＳＴ１のＮＯ）、ＣＰＵ１１は、リーダ・ライタ２の接続を確認できるまで、ＳＴ１のチェック処理を繰り返す。
【００２０】
今、外部装置インターフェース４０にリーダ・ライタ２が接続され、このリーダ・ライタ２の電源スイッチが投入されて動作状態になったとする。この場合、リーダ・ライタ２は、上記接続確認用のコマンドを受信したことに応じて正常応答コマンドを返信する。この正常応答コマンドにより、リーダ・ライタ２の接続を確認できたならば（ＳＴ１のＹＥＳ）、ＣＰＵ１１は、ＳＴ２としてリーダ・ライタ２のドライバプログラム３２をＨＤＤ装置１４からＲＡＭ１３のプログラム領域にロードする。そして、このドライバプログラム３２を起動する。
【００２１】
ドライバプログラム３２が起動すると、このドライバプログラム３２の制御下においてＣＰＵ１１は、ＳＴ１１として外部装置インターフェース４０を介してリーダ・ライタ２に動作確認用のコマンドであるオープンコマンドを送信する。リーダ・ライタ２は、上記オープンコマンドを受信すると、正常応答コマンドを返信する。そこでＣＰＵ１１は、オープンコマンドを送信した後、ＳＴ１２としてリーダ・ライタ２から正常応答コマンドを受信したか否かを判定する。正常応答コマンドを受信した場合には、リーダ・ライタ２は正常に動作している。この場合、ＣＰＵ１１は、ＳＴ１３としてアプリケーションプログラム３１から読取開始の通知を受けたか否かを判定する。読取開始の通知を受けていない場合には（ＳＴ１３のＮＯ）、ＣＰＵ１１は、ＳＴ１１のオープンコマンド送信処理に戻る。ここに、ドライバプログラム３２は、そのＳＴ１１〜ＳＴ１３の処理手順により、ＣＰＵ１１を、通信手段（外部装置インターフェース４０）を介してリーダ・ライタ２に動作確認用のコマンド（オープンコマンド）を周期的に送信し、応答の有無を判定する動作確認手段として機能させる。
【００２２】
この動作確認中において、例えばリーダ・ライタ制御装置３とリーダ・ライタ２とを接続する通信ケーブル４が外れたり、リーダ・ライタ２の電源スイッチが切られると、ＣＰＵ１１は、正常応答コマンドを受信できなくなる。このように、オープンコマンドを送信したが正常応答コマンドを受信できなかった場合（ＳＴ１２のＮＯ）、ＣＰＵ１１は、ＳＴ１４としてメインプログラムにリーダ・ライタの切断を通知する。
【００２３】
メインプログラムの制御下において、ＣＰＵ１１は、リーダ・ライタ２のドライバプログラム３２を起動した後、ＳＴ３としてリーダ・ライタ２を使用する種々の業務のうちいずれか１つの業務の開始が指令されるのを待機している。また、ＳＴ４としてドライバプログラム３２からリーダ・ライタの切断が通知されたか監視している。リーダ・ライタ２を使用する業務の開始が指令される前に（ＳＴ３のＮＯ）、ドライバプログラム３２からリーダ・ライタの切断が通知されると（ＳＴ４のＹＥＳ）、ＣＰＵ１１は、ＳＴ５としてドライバプログラム３２を終了させる。ここに、ドライバプログラム３２は、そのＳＴ１２，ＳＴ１４の処理手順により、動作確認用コマンド（オープンコマンド）の送信に対してリーダ・ライタ２から応答が無いとき、制御動作を終了させる終了処理手段として機能させる。
【００２４】
一方、キーボード１６のキー入力、あるいは通信インターフェース１５を介して接続された他の装置からのコマンド入力等により、リーダ・ライタ２を使用する業務の開始が指令されたならば（ＳＴ３のＹＥＳ）、ＣＰＵ１１は、ＳＴ６として該当するアプリケーションプログラム３１をＨＤＤ装置１４からＲＡＭ１３のプログラム領域にロードする。そして、このアプリケーションプログラム３１を起動する。
【００２５】
アプリケーションプログラム３１が起動すると、このアプリケーションプログラム３１の制御下においてＣＰＵ１１は、ＳＴ３１としてドライバプログラム３２に読取開始のコマンドを通知する。続いて、ＣＰＵ１１は、ＳＴ３２としてドライバプログラム３２にデータ要求のコマンドを定期的に通知する。
【００２６】
アプリケーションプログラム３１からドライバプログラム３２に読取開始のコマンドが通知されると（ＳＴ１３のＹＥＳ）、このドライバプログラム３２の制御下においてＣＰＵ１１は、ＳＴ１５として読取バッファ４１を初期化する。この初期化により、読取バッファ４１に記憶されていたデータはクリアされる。続いて、ＣＰＵ１１は、ＳＴ１６として外部装置インターフェース４０を介してリーダ・ライタ２にデータ読取コマンドを送信する。
【００２７】
データ読取コマンドを受信したリーダ・ライタ２は、アンテナ１から電波を送信し、この電波に応答したＲＦＩＤタグからデータを読取る。リーダ・ライタ２で読取られたＲＤＦＩＤタグのデータは、リーダ・ライタ２からの応答コマンドに含まれて外部装置インターフェース４０に入力される。
【００２８】
そこで、データ読取コマンドを送信したＣＰＵ１１は、ＳＴ１７としてリーダ・ライタ２からの応答コマンドを待機する。そして、応答コマンドを受信したならば（ＳＴ１７のＮＯ）、ＣＰＵ１１は、ＳＴ１８としてその応答コマンドにタグデータが含まれているか否かを判断する。ここに、ドライバプログラム３２は、そのＳＴ１５〜ＳＴ１８の処理手順により、ＣＰＵ１１を、動作確認用のコマンド（オープンコマンド）に対してリーダ・ライタ２から応答が有る状態で、ＲＦＩＤタグの読取開始コマンドを受付けると、読取バッファ４１を初期化した後に通信手段（外部装置インターフェース４０）を介してリーダ・ライタ２に読取実行用のコマンド（読取コマンド）を送信し、応答の有無を判定する読取制御手段として機能させる。
【００２９】
リーダ・ライタ２からの応答コマンドにタグデータが含まれている場合（ＳＴ１８のＹＥＳ）、ＣＰＵ１１は、ＳＴ１９として読取バッファ４１を検索して、当該タグデータと同一のタグデータが既に読取バッファ４１に格納されているか否か、すなわち今回読み取られたタグデータは、未だ読取バッファ４１に格納されていない新規のタグデータであるか否かを判定する。新規のタグデータであった場合（ＳＴ１９のＹＥＳ）、ＣＰＵ１１は、ＳＴ２０としてこの新規のタグデータを読取バッファ４１に格納する。このとき、この新規のタグデータに付加される既読フラグｆを、未読の状態を示す“０”に設定する。
【００３０】
しかる後、ＣＰＵ１１は、ＳＴ２１としてアプリケーションプログラム３１からドライバプログラム３２にデータ要求のコマンドが通知されたか否かを判断する。また、今回読み取られたタグデータが新規のタグデータでなかった場合（ＳＴ１９のＮＯ）、若しくはリーダ・ライタ２からの応答コマンドにタグデータが含まれていなかった場合（ＳＴ１８のＮＯ）も、ＣＰＵ１１は、ＳＴ２１としてアプリケーションプログラム３１からドライバプログラム３２にデータ要求のコマンドが通知されたか否かを判断する。通知されていない場合（ＳＴ２１のＮＯ）、ＣＰＵ１１は、ＳＴ１６の処理に戻り、リーダ・ライタ２にデータ読取コマンドを再度送信して、リーダ・ライタ２からの応答コマンドを待機する。ここに、ドライバプログラム３２は、そのＳＴ１８〜ＳＴ２０の処理手順により、ＣＰＵ１１を、読取実行用のコマンド（読取コマンド）に対するリーダ・ライタ２からの応答としてＲＦＩＤタグのデータを取り込むと、このデータを未読データとして読取バッファ４１に格納する未読処理手段、詳しくは、読取実行用のコマンド（読取コマンド）に対するリーダ・ライタ２からの応答としてＲＦＩＤタグのデータを取り込む毎に読取バッファ４１を検索し、読取バッファ４１に格納されていないデータを未読データとして読取バッファ４１に格納する手段として機能させる。
【００３１】
アプリケーションプログラム３１からドライバプログラム３２にデータ要求のコマンドが通知されると（ＳＴ２１のＹＥＳ）、このドライバプログラム３２の制御下においてＣＰＵ１１は、ＳＴ２２として読取バッファ４１を検索して、未読のタグデータ、すなわち既読フラグｆが“０”に設定されているタグデータが格納されているか否かを判断する。未読のタグデータが格納されている場合（ＳＴ２２のＹＥＳ）、ＣＰＵ１１は、ＳＴ２３として全ての未読タグデータをコマンド要求元のアプリケーションプログラム３１に引き渡す。また、ＳＴ２４として全ての未読タグデータの既読フラグｆを“１”に更新する。しかる後、ＣＰＵ１１は、ＳＴ１６の処理に戻り、リーダ・ライタ２にデータ読取コマンドを再度送信して、リーダ・ライタ２からの応答コマンドを待機する。ここに、ドライバプログラム３２は、そのＳＴ２１〜ＳＴ２４の処理手順により、ＣＰＵ１１を、読取実行用のコマンド（読取コマンド）に対してリーダ・ライタ２から応答が有る状態で、ＲＦＩＤタグのデータ要求コマンドを受付けると、読取バッファ４１に格納された未読データを既読データとして処理する既読処理手段として機能させる。
【００３２】
ドライバプログラム３２からアプリケーションプログラム３１に未読のタグデータが引き渡されると（ＳＴ３３のＹＥＳ）、このアプリケーションプログラム３１の制御下においてＣＰＵ１１は、ＳＴ３４としてそのアプリケーションプログラム３１に従い取得したタグデータを処理する。例えば、このタグデータを記憶したＲＦＩＤタグが付されている物品がアンテナ１の交信領域内に存在しているものとして情報を処理する。
【００３３】
ドライバプログラム３２の制御下において、データ要求のコマンドを受付けたが、読取バッファ４１に未読のタグデータが格納されていない場合（ＳＴ２２のＮＯ）、ＣＰＵ１１は、ＳＴ２５としてタグデータの読み取りが終了したか否かを判定する。例えば、予め設定された複数回数Ｎ（Ｎは２以上の任意の値）連続して未読のタグデータが格納されていない場合、ＣＰＵ１１は、読み取り終了と判定する。読み取り終了でない場合（ＳＴ２５のＮＯ）、ＣＰＵ１１は、ＳＴ１６の処理に戻り、リーダ・ライタ２にデータ読取コマンドを再度送信して、リーダ・ライタ２からの応答コマンドを待機する。
【００３４】
これに対し、読み取り終了の場合（ＳＴ２５のＹＥＳ）、ＣＰＵ１１は、ＳＴ２６としてコマンド要求元のアプリケーションプログラム３１に読取終了を通知する。しかる後、ＣＰＵ１１は、ＳＴ１１の処理に戻り、リーダ・ライタ２にオープンコマンドを送信して、リーダ・ライタ２の動作状態を再び監視する。
【００３５】
ドライバプログラム３２からアプリケーションプログラム３１に読取終了が通知されると（ＳＴ３５のＹＥＳ）、このアプリケーションプログラム３１の制御下においてＣＰＵ１１は、ＳＴ３６としてメインプログラムに業務終了を通知する。
【００３６】
アプリケーションプログラム３１からメインプログラムに業務終了が通知されると（ＳＴ７のＹＥＳ）、このメインプログラムの制御下においてＣＰＵ１１は、ＳＴ８としてこのアプリケーションプログラム３１を終了させる。しかる後、ＣＰＵ１１は、ＳＴ３に戻り、リーダ・ライタ２を使用する次の業務の開始が指令されるのを待機する。この待機期間中にドライバプログラム３２からリーダ・ライタの切断が通知されると（ＳＴ４のＹＥＳ）、ＣＰＵ１１は、ドライバプログラム３２を終了させる（ＳＴ５）。一方、リーダ・ライタ２を使用する業務の開始が指令されたならば（ＳＴ３のＹＥＳ）、ＣＰＵ１１は、該当するアプリケーションプログラム３１を起動する（ＳＴ６）。アプリケーションプログラム３１が起動すると、ドライバプログラム３２に読取開始が通知される（ＳＴ３１）。これにより、ドライバプログラム３２の制御下において、読取バッファ４１が初期化された後、リーダ・ライタ２によってＲＦＩＤタグのデータが読み取られる。
【００３７】
ところで、リーダ・ライタ２によってＲＦＩＤタグのデータが読み取られている最中に（ＳＴ１６〜ＳＴ２１）、誤って通信ケーブル４が抜かれたり、リーダ・ライタ２の電源スイッチが切られたりした場合、ドライバプログラム３２の制御下にあるＣＰＵ１１は、読取コマンドに対してリーダ・ライタ２からの応答コマンドを受信できなくなる。このような場合（ＳＴ１７のＹＥＳ）、ＣＰＵ１１は、ＳＴ２７として外部装置インターフェース４０を介してリーダ・ライタ２に動作確認用のコマンドであるオープンコマンドを再度送信する。このオープンコマンドの送信は、ＳＴ２８としてリーダ・ライタ２から正常応答コマンドが返信されてくるまで繰り返される。通信ケーブル４が再接続され、あるいは電源スイッチが再投入されてリーダ・ライタ２から正常応答コマンドが返信されてくると（ＳＴ２８のＹＥＳ）、ＣＰＵ１１は、ＳＴ１６の処理に戻り、リーダ・ライタ２にデータ読取コマンドを再度送信して、リーダ・ライタ２からの応答コマンドを待機する。ここに、ドライバプログラム３２は、そのＳＴ２７〜ＳＴ２８の処理手順により、ＣＰＵ１１を、読取実行用のコマンド（読取コマンド）に対してリーダ・ライタ２から応答が無くなると、通信手段（外部装置インターフェース４０）を介してリーダ・ライタ２に動作確認用のコマンド（オープンコマンド）を送信し、応答の有無を判定する再起動確認手段、さらには、この再起動確認手段によりリーダ・ライタ２から応答が無いときは応答が有るまで動作確認用コマンド（オープンコマンド）の送信を繰り返し、リーダ・ライタ２からの応答を確認すると、読取制御手段（ＳＴ１５〜ＳＴ１８）を再開させる再開処理手段として機能させる。
【００３８】
このように本実施形態のリーダ・ライタ制御装置３においては、リーダ・ライタ２を使用する種々の業務のうちいずれか１つの業務の開始が指令され、該当するアプリケーションプログラム３１が起動すると、読取バッファ４１を初期化した後、リーダ・ライタ２を動作させてＲＦＩＤタグのデータを読み取らせる。そして、リーダ・ライタ２によって読み取られたＲＦＩＤタグのデータを一旦読取バッファ４１に格納し、その後、アプリケーションプログラム３１からの要求に応じて定期的に該当するアプリケーションプログラム３１に引き渡して処理させる。
【００３９】
ここで、このような読取動作の最中に、リーダ・ライタ２との通信が不能になると、読取バッファ４１のデータは保持される。リーダ・ライタ制御装置３においては、オープンコマンドをリーダ・ライタ２に繰返し送信して、リーダ・ライタ２との通信が復旧するのを待機する。リーダ・ライタ２との通信が復旧したならば、リーダ・ライタ２によって読み取られたＲＦＩＤタグのデータを取り込む。このとき、取り込んだデータが読取バッファ４１に格納されているデータであった場合には、このデータは破棄される。これに対し、読取バッファ４１に未だ格納されていない新規のデータであった場合には、このデータは読取バッファ４１に追加される。また、読取バッファ４１に記憶されているタグデータのうち、アプリケーションプログラム３１によって処理されていない未読データについては、該当するアプリケーションプログラム３１に引き渡されて処理される。
【００４０】
このように本実施の形態のリーダ・ライタ制御装置３によれば、リーダ・ライタ２を制御してＲＦＩＤタグのデータを読み取っている最中にリーダ・ライタ２との通信が一時的に不能になっても、通信復旧時には通信不能となる直前の状態から読み取り制御を継続することができる。したがって、通信が不能になると読み取り制御を最初からやり直していた従来と比較すると、タグデータの二重読み取りや読み取り抜け等の不具合を防止できる効果を奏する。
【００４１】
なお、この発明は前記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。
【００４２】
例えば前記実施形態では、自らデータの送信機能を持たないパッシブ型のＲＦＩＤタグを想定したが、本発明はパッシブ型のＲＦＩＤタグに対するリーダ・ライタの制御装置に限定されるものではなく、自らデータを送信する機能を有するアクティブ型やセミアクティブ型のＲＦＩＤタグに対するリーダ・ライタの制御装置にも適用できるものである。また、データの書込み機能を有さない読取り専用のリーダの制御装置にも適用することができる。
【００４３】
また、前記実施形態では、装置内部に発明を実施する機能を実現させるためのドライバプログラム３２が予め記録されている場合で説明をしたが、これに限らず同様の機能を実現させるためのプログラムをネットワークから装置にダウンロードしても良いし、同様のプログラムを記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、ＣＤ−ＲＯＭ等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のＯＳ（オペレーティング・システム）等と協働してその機能を実現させるものであってもよい。
【００４４】
この他、前記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を組合わせてもよい。
【符号の説明】
【００４５】
１…アンテナ、２…リーダ・ライタ、３…リーダ・ライタ制御装置、４…通信ケーブル、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…ＨＤＤ装置、１５…通信インターフェース、２０，２１…外部装置インターフェース、３１…アプリケーションプログラム、３２…ドライバプログラム、４１…読取バッファ。
【先行技術文献】
【特許文献】
【００４６】
【特許文献１】特開２００７−０６５９９１号公報参照
【図１】
2010267205.tif 000003
【図２】
2010267205.tif 000004
【図３】
2010267205.tif 000005
【図４】
2010267205.tif 000006
【図５】
2010267205.tif 000007
【図６】
2010267205.tif 000008