(57)【要約】【課題】ＲＦＩＤタグに対するデータのリードおよび／またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減する。【解決手段】ホストコンピュータ１００が、リード指示やライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ２００に対して送信し、リーダライタ２００が、タグ探索指示をホストコンピュータ１００から受信した場合に、ＲＦＩＤタグ３００を一意に識別するタグＩＤの送信を要求するタグ探索コマンドを送信し、送信したタグ探索コマンドに対する応答としてＲＦＩＤタグ３００から送信されたタグＩＤを受信した場合に、当該タグＩＤにより識別されるＲＦＩＤタグ３００に対して、タグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信する。【選択図】        図１
2008146184.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置からの指示に応じて、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行うリーダライタ装置であって、
ＲＦＩＤタグに対するデータのリード指示および／またはライト指示を含んだタグ探索指示を前記ホスト装置から受信するタグ探索指示受信手段と、
前記タグ探索指示受信手段によりタグ探索指示が受信された場合に、ＲＦＩＤタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手段と、
前記タグ識別情報要求手段により送信された送信要求に対する応答としてＲＦＩＤタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるＲＦＩＤタグに対して、前記リード指示および／または前記ライト指示に基づいて、データのリード要求および／またはライト要求を送信するデータ処理要求手段と、
を備えたことを特徴とするリーダライタ装置。
【請求項２】
前記タグ探索指示には、リードおよび／またはライトを行うデータのリードサイズおよび／またはライトサイズが含まれており、
前記データ処理要求手段は、前記タグ探索指示に含まれたリードサイズおよび／またはライトサイズが前記リード要求および／または前記ライト要求により要求可能なデータの上限サイズを超えていた場合には、当該上限サイズ以下となるサイズを、リード要求および／ライト要求により要求するデータのサイズとして設定し、設定したサイズごとに分割された複数のデータのリード要求および／またはライト要求を送信することを特徴とする請求項１に記載のリーダライタ装置。
【請求項３】
前記タグ探索指示には、リードおよび／またはライトを行うデータのリード先および／またはライト先となるＲＦＩＤタグの記憶領域を示す複数のアドレス情報が含まれており、
前記データ処理要求手段は、前記タグ探索指示に含まれたアドレス情報ごとに前記リード要求および／またはライト要求を送信することを特徴とする請求項１または２に記載のリーダライタ装置。
【請求項４】
ホスト装置からの指示に応じて、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行うリーダライタ装置を制御するリーダライタ制御プログラムであって、
ＲＦＩＤタグに対するデータのリード指示および／またはライト指示を含んだタグ探索指示を前記ホスト装置から受信するタグ探索指示受信手順と、
前記タグ探索指示受信手順によりタグ探索指示が受信された場合に、ＲＦＩＤタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手順と、
前記タグ識別情報要求手順により送信された送信要求に対する応答としてＲＦＩＤタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるＲＦＩＤタグに対して、前記リード指示および／または前記ライト指示に基づいて、データのリード要求および／またはライト要求を送信するデータ処理要求手順と、
をコンピュータに実行させることを特徴とするリーダライタ制御プログラム。
【請求項５】
所定のデータを記憶するＲＦＩＤタグに対してデータのリードおよび／またはライトを行うリーダライタ装置と、ＲＦＩＤタグに対するデータのリード指示および／またはライト指示をリーダライタ装置に対して行うホスト装置とから構成されるデータアクセスシステムであって、
前記ホスト装置は、
前記リード指示および／またはライト指示を含んだタグ探索指示を生成するタグ探索指示生成手段と、
前記タグ探索指示生成手段により生成されたタグ探索指示を前記リーダライタ装置に対して送信するタグ探索指示送信手段を備え、
前記リーダライタ装置は、
前記タグ探索指示を前記ホスト装置から受信するタグ探索指示受信手段と、
前記タグ探索指示受信手段によりタグ探索指示が受信された場合に、ＲＦＩＤタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手段と、
前記タグ識別情報要求手段により送信された送信要求に対する応答としてＲＦＩＤタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるＲＦＩＤタグに対して、前記リード指示および／または前記ライト指示に基づいて、データのリード要求および／またはライト要求を送信するデータ処理要求手段と、
を備えたことを特徴とするデータアクセスシステム。
【請求項６】
ホスト装置からの指示に応じて、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行うリーダライタ装置を制御するデータアクセス制御方法であって、
前記ホスト装置が、前記リード指示および／またはライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示を前記リーダライタ装置に対して送信するタグ探索指示送信工程と、
前記リーダライタ装置が、前記タグ探索指示を前記ホスト装置から受信した場合に、ＲＦＩＤタグを一意に識別するタグ識別情報の送信要求を送信し、送信した送信要求に対する応答としてＲＦＩＤタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるＲＦＩＤタグに対して、前記リード指示および／またはライト指示に基づいて、データのリード要求および／またはライト要求を送信するデータ処理要求工程と、
を含んだことを特徴とするデータアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ホスト装置からの指示に応じて、ＲＦＩＤ（Radio Frequency Identification）タグに対するデータのリードおよび／またはライトを行うリーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法に関し、特に、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減することができるリーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法に関するものである。
【背景技術】
【０００２】
近年、ＲＦＩＤタグは、その実用化が進み、物流分野における商品管理や各種サービス分野における個人認証など、さまざまな用途で利用されている。ＲＦＩＤタグは、種々のデータを記憶することが可能であり、タグごとに割り振られたタグＩＤによってユニークに識別される。かかるＲＦＩＤタグは、ＲＦタグ、ＩＣ（Integrated Circuit）タグ、無線タグなどと呼ばれることもある。
【０００３】
ＲＦＩＤタグに対するデータのリードおよびライトは、専用のリーダライタを用いて行われる。このリーダライタは、ＲＦＩＤタグとの間で電波通信を行うことによって、ＲＦＩＤタグに記憶されたデータのリードや、ＲＦＩＤタグへのデータのライトを行う装置である。リーダライタとＲＦＩＤタグとの間で行われる電波通信に関する通信仕様は、ＩＳＯ（International Organization for Standardization：国際標準化機構）／ＩＥＣ（International Electrotechnical Commission：国際電気標準会議）において標準化が行われている（例えば、非特許文献１および２を参照）。
【０００４】
ここで、ＲＦＩＤタグに対するデータのアクセス制御方法について簡単に説明する。図２８は、従来のデータアクセス制御方法を説明するための説明図である。
【０００５】
同図は、リーダライタ２０を制御するホストコンピュータ１０と、リーダライタ２０と、ＲＦＩＤタグ３０とから構成される一般的なＲＦＩＤシステムを示している。このＲＦＩＤシステムにおいて、ホストコンピュータ１０とリーダライタ２０とは、ネットワーク４０を介して互いに通信を行い、リーダライタ２０とＲＦＩＤタグ３０とは、それぞれが有するアンテナ２１および３１から電波を送受信することによって互いに通信を行う。なお、ここでは１台のＲＦＩＤタグ３０のみを示しているが、このＲＦＩＤシステムは、複数のＲＦＩＤタグ３０から構成される。
【０００６】
まず、ＲＦＩＤタグに対するデータのリードおよびライトに先立ち、ホストコンピュータ１０が、ＲＦＩＤタグの検出を指示するタグ探索指示をリーダライタ２０に対して送信する（同図に示す（１））。タグ探索指示を受信したリーダライタ２０は、アンテナ２１の交信範囲内に存在するＲＦＩＤタグ３０に向けて、タグＩＤの送信を要求するタグ探索コマンドを送信する（同図に示す（２））。このタグ探索コマンドを受信したＲＦＩＤタグ３０は、その応答として、自身のタグＩＤをリーダライタ２０に対して送信する（同図に示す（３））。
【０００７】
リーダライタ２０は、アンテナ２１の交信範囲内に存在する全てのＲＦＩＤタグ３０からタグＩＤを受信すると、受信したタグＩＤを全てまとめて、ホストコンピュータ１０に送信する（同図に示す（４））。そして、ホストコンピュータ１０は、リーダライタ２０から探索結果を受信すると、探索結果に含まれているタグＩＤに基づいて、ＲＦＩＤタグごとにリード指示やライト指示を送信する（同図に示す（５）および（６））。
【０００８】
リーダライタ２０は、リード指示を受信した場合には、当該リード指示で指定されたＲＦＩＤタグ３０に対して、データの読み出しを要求するリードコマンドを送信し（同図に示す（７））、ライト指示を受信した場合には、当該ライト指示で指定されたＲＦＩＤタグ３０に対して、データの書き込みを要求するライトコマンドを送信する（同図に示す（８））。
【０００９】
リードコマンドを受信したＲＦＩＤタグ３０は、受信したリードコマンドに基づいて、自身に備えられた記憶装置（メモリなど）からデータを読み出し、読み出したデータ（リードデータ）をリーダライタ２０に対して送信する（同図に示す（９））。また、ライトコマンドを受信したＲＦＩＤタグ３０は、受信したライトコマンドに基づいて、自身に備えられた記憶装置にデータを書き込み、書き込みが正常に行えたか否かを示すライト結果をリーダライタ２０に対して送信する（同図に示す（１０））。
【００１０】
そして、リーダライタ２０は、リードデータを受信した場合には、当該リードデータをホストコンピュータ１０に対して送信し（同図に示す（１１））、ライト結果を受信した場合には、当該ライト結果をホストコンピュータ１０に対して送信する（同図に示す（１２））。
【００１１】
このように、従来のデータアクセス制御方法では、まず、リーダライタの交信範囲内に存在する全てのＲＦＩＤタグ３０を検出した後に、検出したＲＦＩＤタグに対して、１つずつホストコンピュータからリード指示やライト指示を行うことによって、ＲＦＩＤタグに対するデータのリードやライトが行われる。
【００１２】
【非特許文献１】ＩＳＯ／ＩＥＣ  １８０００−６：２００４（Ｅ）（タイプＡおよびＢ）
【非特許文献２】ＩＳＯ／ＩＥＣ＿ＣＤ  １８０００−６Ｃ（タイプＣ）
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、リーダライタの交信範囲内に存在する全てのＲＦＩＤタグに対して一斉にデータのリードまたはライトを行う場合には、ＲＦＩＤタグそれぞれに対して１つずつリード指示やライト指示を行っていたのでは、非常に効率が悪い。
【００１４】
しかも、この場合、リード指示やライト指示にともなって、ホストコンピュータとリーダライタとの間で多数のデータのやり取りが発生することになり、その結果、ホストコンピュータとリーダライタとの間で行われる通信におけるオーバーヘッドが増大するという問題がある。この問題は、ＲＦＩＤシステムが多数のＲＦＩＤタグから構成されていた場合、特に顕著になる。
【００１５】
そのため、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行う際に、いかにして、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減するかが、極めて重要な課題となっている。
【００１６】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減することができるリーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
上述した課題を解決し、目的を達成するため、本発明は、ホスト装置からの指示に応じて、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行うリーダライタ装置であって、ＲＦＩＤタグに対するデータのリード指示および／またはライト指示を含んだタグ探索指示を前記ホスト装置から受信するタグ探索指示受信手段と、前記タグ探索指示受信手段によりタグ探索指示が受信された場合に、ＲＦＩＤタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手段と、前記タグ識別情報要求手段により送信された送信要求に対する応答としてＲＦＩＤタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるＲＦＩＤタグに対して、前記リード指示および／または前記ライト指示に基づいて、データのリード要求および／またはライト要求を送信するデータ処理要求手段と、を備えたことを特徴とする。
【００１８】
また、本発明は、上記の発明において、前記タグ探索指示には、リードおよび／またはライトを行うデータのリードサイズおよび／またはライトサイズが含まれており、前記データ処理要求手段は、前記タグ探索指示に含まれたリードサイズおよび／またはライトサイズが前記リード要求および／または前記ライト要求により要求可能なデータの上限サイズを超えていた場合には、当該上限サイズ以下となるサイズを、リード要求および／ライト要求により要求するデータのサイズとして設定し、設定したサイズごとに分割された複数のデータのリード要求および／またはライト要求を送信することを特徴とする。
【００１９】
また、本発明は、上記の発明において、前記タグ探索指示には、リードおよび／またはライトを行うデータのリード先および／またはライト先となるＲＦＩＤタグの記憶領域を示す複数のアドレス情報が含まれており、前記データ処理要求手段は、前記タグ探索指示に含まれたアドレス情報ごとに前記リード要求および／またはライト要求を送信することを特徴とする。
【００２０】
また、本発明は、ホスト装置からの指示に応じて、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行うリーダライタ装置を制御するリーダライタ制御プログラムであって、ＲＦＩＤタグに対するデータのリード指示および／またはライト指示を含んだタグ探索指示を前記ホスト装置から受信するタグ探索指示受信手順と、前記タグ探索指示受信手順によりタグ探索指示が受信された場合に、ＲＦＩＤタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手順と、前記タグ識別情報要求手順により送信された送信要求に対する応答としてＲＦＩＤタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるＲＦＩＤタグに対して、前記リード指示および／または前記ライト指示に基づいて、データのリード要求および／またはライト要求を送信するデータ処理要求手順と、をコンピュータに実行させることを特徴とする。
【００２１】
また、本発明は、上記の発明において、所定のデータを記憶するＲＦＩＤタグに対してデータのリードおよび／またはライトを行うリーダライタ装置と、ＲＦＩＤタグに対するデータのリード指示および／またはライト指示をリーダライタ装置に対して行うホスト装置とから構成されるデータアクセス制御システムであって、前記ホスト装置は、前記リード指示および／またはライト指示を含んだタグ探索指示を生成するタグ探索指示生成手段と、前記タグ探索指示生成手段により生成されたタグ探索指示を前記リーダライタ装置に対して送信するタグ探索指示送信手段を備え、前記リーダライタ装置は、前記タグ探索指示を前記ホスト装置から受信するタグ探索指示受信手段と、前記タグ探索指示受信手段によりタグ探索指示が受信された場合に、ＲＦＩＤタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手段と、前記タグ識別情報要求手段により送信された送信要求に対する応答としてＲＦＩＤタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるＲＦＩＤタグに対して、前記リード指示および／または前記ライト指示に基づいて、データのリード要求および／またはライト要求を送信するデータ処理要求手段と、を備えたことを特徴とする。
【００２２】
また、本発明は、上記の発明において、ホスト装置からの指示に応じて、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行うリーダライタ装置を制御するデータアクセス制御方法であって、前記ホスト装置が、前記リード指示および／またはライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示を前記リーダライタ装置に対して送信するタグ探索指示送信工程と、前記リーダライタ装置が、前記タグ探索指示を前記ホスト装置から受信した場合に、ＲＦＩＤタグを一意に識別するタグ識別情報の送信要求を送信し、送信した送信要求に対する応答としてＲＦＩＤタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるＲＦＩＤタグに対して、前記リード指示および／またはライト指示に基づいて、データのリード要求および／またはライト要求を送信するデータ処理要求工程と、を含んだことを特徴とする。
【発明の効果】
【００２３】
本発明によれば、ホスト装置が、リード指示および／またはライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ装置に対して送信し、リーダライタ装置が、タグ探索指示をホスト装置から受信した場合に、ＲＦＩＤタグを一意に識別するタグ識別情報の送信要求を送信し、送信した送信要求に対する応答としてＲＦＩＤタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるＲＦＩＤタグに対して、タグ探索指示に含まれていたリード指示および／またはライト指示に基づいて、データのリード要求および／またはライト要求を送信する。これにより、従来、ホスト装置によってＲＦＩＤタグそれぞれに対して１つずつ行われていたリード指示やライト指示を、１回のタグ探索指示と同時にまとめて行うことが可能になり、ホスト装置とリーダライタ装置との間でやり取りされるデータの量を削減することができるとともに、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減することができるという効果を奏する。
【００２４】
また、本発明によれば、ホスト装置により送信されるタグ探索指示には、リードおよび／またはライトを行うデータのリードサイズおよび／またはライトサイズが含まれており、リーダライタ装置は、タグ探索指示に含まれたリードサイズおよび／またはライトサイズが、リード要求および／またはライト要求により要求可能なデータの上限サイズを超えていた場合には、当該上限サイズ以下となるサイズを、リード要求および／またはライト要求により要求するデータのサイズとして設定し、設定したサイズごとに分割された複数のデータのリード要求および／またはライト要求を送信する。これにより、リードやライトを行うデータがリード要求やライト要求により要求可能なデータの上限サイズを超えていた場合でも、リード指示および／またはライト指示をまとめて行うことが可能になり、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドをさらに低減することができるという効果を奏する。
【００２５】
また、本発明によれば、ホスト装置により送信されるタグ探索指示には、リードおよび／またはライトを行うデータのリード先および／またはライト先となるＲＦＩＤタグの記憶領域を示す複数のアドレス情報が含まれており、リーダライタ装置は、タグ探索指示に含まれたアドレス情報ごとにリード要求および／またはライト要求を送信する。これにより、ＲＦＩＤタグの不連続な記憶領域に格納された複数のデータをそれぞれリードする場合や、ＲＦＩＤタグの不連続な記憶領域に複数のデータをそれぞれライトする場合でも、リード指示および／またはライト指示をまとめて行うことが可能になり、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドをさらに低減することができるという効果を奏する。
【発明を実施するための最良の形態】
【００２６】
以下に添付図面を参照して、この発明に係るリーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法の好適な実施例を詳細に説明する。なお、以下に示す実施例では、ホストコンピュータと、リーダライタと、ＲＦＩＤタグとから構成される一般的なＲＦＩＤシステムに本発明を適用した場合について説明する。
【００２７】
また、以下では実施例の具体性のため、リーダライタとＲＦＩＤタグ間の無線コマンドとしてＩＳＯ／ＩＥＣ  １８０００−６タイプＢのコマンドを用いた場合について説明するが、本発明はこれに限定されるものではない。
【実施例１】
【００２８】
まず、本実施例１に係るＲＦＩＤシステムにおけるＲＦＩＤタグに対するデータのアクセス方法の概念について説明する。図１は、本実施例１に係るデータアクセス制御方法の概念を説明するための説明図である。
【００２９】
同図は、リーダライタ２００を制御するホストコンピュータ１００と、リーダライタ２００と、ＲＦＩＤタグ３００とから構成される一般的なＲＦＩＤシステムを示している。このＲＦＩＤシステムにおいて、ホストコンピュータ１００とリーダライタ２００とは、ネットワーク４００を介して互いに通信を行い、リーダライタ２００とＲＦＩＤタグ３００とは、それぞれが有するアンテナ２１０および３１０から電波を送受信することによって互いに通信を行う。なお、ここでは１台のＲＦＩＤタグ３００のみを示しているが、このＲＦＩＤシステムは、複数のＲＦＩＤタグ３００から構成されていてもよい。また、リーダライタ２００およびアンテナ２１０についても、同様に複数で構成されていてもよい。
【００３０】
このような構成のもと、本実施例１に係るデータアクセス方法では、従来、ホストコンピュータ１００によってＲＦＩＤタグ３００それぞれに対して１つずつ行われていたリード指示やライト指示を、１回のタグ探索指示と同時にまとめて行うことを特徴としている。
【００３１】
具体的には、同図に示すように、まず、ホストコンピュータ１００が、リード指示やライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ２００に対して送信する（同図に示す（１））。ここで送信されるタグ探索指示には、リードやライトを行うデータのリード先やライト先となるＲＦＩＤタグ３００の記憶領域を示すアドレスや、リードやライトを行うデータのサイズなどが、リード指示またはライト指示として含まれている。
【００３２】
タグ探索指示を受信したリーダライタ２００は、アンテナ２１０の交信範囲内に存在するＲＦＩＤタグ３００に向けて、タグＩＤの送信を要求するタグ探索コマンドを送信する（同図に示す（２））。このタグ探索コマンドを受信したＲＦＩＤタグ３００は、その探索コマンドに対する応答として、自身のタグＩＤをリーダライタ２００に対して送信する（同図に示す（３））。
【００３３】
そして、リーダライタ２００は、ＲＦＩＤタグ３００から送信されたタグＩＤを受信した場合には、当該タグＩＤにより識別されるＲＦＩＤタグ３００に対して、ホストコンピュータ１００から送信されたタグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信する（同図に示す（４）および（５））。
【００３４】
リードコマンドを受信したＲＦＩＤタグ３００は、受信したリードコマンドに基づいて、自身に備えられた記憶装置（メモリなど）からデータを読み出し、読み出したデータ（リードデータ）をリーダライタ２００に対して送信する（同図に示す（６））。また、ライトコマンドを受信したＲＦＩＤタグ３００は、受信したライトコマンドに基づいて、自身に備えられた記憶装置にデータを書き込み、書き込みが正常に行えたか否かを示すライト結果をリーダライタ２００に対して送信する（同図に示す（７））。
【００３５】
そして、リーダライタ２００は、アンテナ２１０の交信範囲内に存在する全てのＲＦＩＤタグ３００からデータ処理結果（リードデータおよびライト結果）を受信すると、受信したデータ処理結果とタグＩＤとを全てまとめて、ホストコンピュータ１００に送信する（同図に示す（８））。
【００３６】
このように、本実施例１に係るデータアクセス制御方法では、ホストコンピュータ１００が、リード指示やライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ２００に対して送信し、リーダライタ２００が、タグ探索指示をホストコンピュータ１００から受信した場合に、ＲＦＩＤタグ３００を一意に識別するタグＩＤの送信を要求するタグ探索コマンドを送信し、送信したタグ探索コマンドに対する応答としてＲＦＩＤタグ３００から送信されたタグＩＤを受信した場合に、当該タグＩＤにより識別されるＲＦＩＤタグ３００に対して、タグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信するようにしている。
【００３７】
これにより、従来、ホストコンピュータ１００によってＲＦＩＤタグ３００それぞれに対して１つずつ行われていたリード指示やライト指示を、１回のタグ探索指示と同時にまとめて行うことが可能になり、ホストコンピュータ１００とリーダライタ２００との間でやり取りされるデータの量を削減することができるとともに、ＲＦＩＤタグ３００に対するデータのリードやライトを行う際に生じる、ホストコンピュータ１００とリーダライタ２００との間の通信におけるオーバーヘッドを低減することができる。
【００３８】
次に、本実施例１に係るＲＦＩＤシステムの構成について説明する。図２は、本実施例１に係るＲＦＩＤシステムの構成を示す機能ブロック図である。同図は、図１で示したＲＦＩＤシステムの構成を示している。同図に示すように、このＲＦＩＤシステムは、ホストコンピュータ１００と、リーダライタ２００と、ＲＦＩＤタグ３００とから構成される。
【００３９】
そして、ホストコンピュータ１００とリーダライタ２００とは、ネットワーク４００を介して互いに通信を行い、リーダライタ２００とＲＦＩＤタグ３００とは、それぞれが有するアンテナ２１０および３１０から電波を送受信することによって互いに通信を行う。なお、ここでは、図１と同様に１台のリーダライタ２００、１台のアンテナ２１０および１台のＲＦＩＤタグ３００のみを示しているが、このＲＦＩＤシステムは、複数のリーダライタ２００、複数のアンテナ２１０および複数のＲＦＩＤタグ３００から構成されていてもよい。以下、各装置の構成について説明する。
【００４０】
最初に、ホストコンピュータ１００の構成について説明する。ホストコンピュータ１００は、ＮＷ（Network）インタフェース部１１０と、記憶部１２０と、制御部１３０とを有する。
【００４１】
ＮＷインタフェース部１１０は、ネットワーク４００を介してリーダライタ２００との間でやり取りされるデータの送受信を制御する処理部である。例えば、ＮＷインタフェース部１１０は、タグ探索指示をリーダライタ２００に対して送信し、タグ探索指示に対する応答として送信されるリードデータやライト結果などのデータ処理結果をリーダライタ２００から受信する。
【００４２】
記憶部１２０は、各種のデータやプログラムを記憶する不揮発性のメモリであり、特に本発明に関連するものとしては、ＲＦＩＤタグ３００に対するデータのリードおよびライトを行う際に用いられるリード領域情報やライト領域情報を記憶する。
【００４３】
ここで、リード領域情報とは、リードを行うデータのリード先となるＲＦＩＤタグ３００の記憶領域を示すアドレスや、リードを行うデータのサイズなどを含んだ情報（以下、それぞれ、「リードアドレス」、「リードサイズ」と呼ぶ）であり、ライト領域情報とは、ライトを行うデータのライト先となるＲＦＩＤタグ３００の記憶領域を示すアドレスや、ライトを行うデータのサイズや、ライトを行うデータなどを含んだ情報（以下、それぞれ、「ライトアドレス」、「ライトサイズ」、「ライトデータ」と呼ぶ）である。
【００４４】
制御部１３０は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などの制御プログラム、各種の処理手順を規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に関連するものとしては、機能概念的に、コマンド生成部１３１と、アプリケーション部１３２とを備える。
【００４５】
コマンド生成部１３１は、リーダライタ２００に対して送信する各種の制御コマンドを生成する処理部であり、特に本発明に関連するものとしては、リード指示やライト指示を含んだタグ探索指示を生成する。
【００４６】
具体的には、コマンド生成部１３１は、アプリケーション部１３２からの依頼に応じて、記憶部１２０からリード領域情報およびライト領域情報を取得し、取得したリード領域情報およびライト領域情報を用いて、タグ探索指示を生成する。なお、ここでは、リード領域情報およびライト領域情報を記憶部１２０に記憶させておくこととしたが、これらリード領域情報およびライト領域情報は、リーダライタ２００に対してタグ探索コマンドを送信するタイミングで、利用者に入力させるようにしてもよい。
【００４７】
ここで、図３および４を用いて、コマンド生成部１３１により生成されるタグ探索指示について説明する。図３は、本実施例１に係るリード指示を含んだタグ探索指示の一例を示す図である。同図に示すように、このタグ探索指示には、リード指示を含んだタグ探索指示であることを示す制御コマンド５１（Ｉｎｖｅｎｔｏｒｙ＿ｒ）と、所定のパラメータ５２と、リード指示情報５３とが含まれている。
【００４８】
このうち、所定のパラメータ５２は、誤り検出符号（ＣＲＣ）など、通信を行ううえで必要となる所定の制御情報を含んだパラメータである。また、リード指示情報５３は、ＲＦＩＤタグ３００が記憶領域からデータをリードする際に必要となる情報であり、リード対象のデータのリードサイズと、リード先となるＲＦＩＤタグ３００の記憶領域を示すリードアドレスとを含んでいる。
【００４９】
一方、図４は、本実施例１に係るライト指示を含んだタグ探索指示の一例を示す図である。同図に示すように、このタグ探索指示には、ライト指示を含んだタグ探索指示であることを示す制御コマンド６１（Ｉｎｖｅｎｔｏｒｙ＿ｗ）と、所定のパラメータ６２と、ライト指示情報６３とが含まれている。
【００５０】
このうち、所定のパラメータ６２は、図３に示した所定のパラメータ５２と同様のパラメータである。また、ライト指示情報６３は、ＲＦＩＤタグ３００が記憶領域にデータをライトする際に必要となる情報であり、ライト対象のデータのライトサイズと、当該データのライト先となるＲＦＩＤタグ３００の記憶領域を示すライトアドレスと、ライト対象のライトデータとを含んでいる。
【００５１】
図２に戻って、アプリケーション部１３２は、各種の業務処理を実行するとともに、コマンド生成部１３１により生成されたタグ探索指示をリーダライタ２００に対して送信する処理部である。
【００５２】
具体的には、アプリケーション部１３２は、各種の業務処理を実行するとともに、業務処理の実行中に発生する所定のタイミングで、コマンド生成部１３１にタグ探索コマンドの生成を依頼する。
【００５３】
ここでいう所定のタイミングは、業務処理の種類に応じて決められるものであり、例えば、スーパーマーケットなどにおいて、レジ付近の所定の位置をカートが通過した際に、そのカートに入れられている商品に貼付されたＲＦＩＤタグから商品の価格に関する情報を読み出すことによって料金精算を行うような料金精算システムでは、所定の位置に設置された位置センサーなどによってカートが検出されたタイミングが、所定のタイミングとなる。
【００５４】
または、倉庫の中などにおいて、利用者からの指示により、周辺に設置されている物品に貼付されたＲＦＩＤタグに対して、物品に関する情報の読み出しまたは書き込みを行うような物品管理システムでは、利用者から指示されたタイミングが、所定のタイミングとなる。
【００５５】
アプリケーション部１３２は、コマンド生成部１３１によって探索コマンドが生成されると、生成された探索コマンドを、ＮＷインタフェース部１１０を介してリーダライタ２００に対して送信する。
【００５６】
そして、アプリケーション部１３２は、送信した探索コマンドに対する応答として、リードデータやライト結果などのデータ処理結果がリーダライタ２００から送信されると、送信されたデータ処理結果を、ＮＷインタフェース部１１０を介して取得し、取得したデータ処理結果を用いて各種の業務処理を実行する。
【００５７】
続いて、リーダライタ２００の構成について説明する。リーダライタ２００は、アンテナ２１０と、電波インタフェース部２２０と、ＮＷインタフェース部２３０と、記憶部２４０と、制御部２５０とを有する。
【００５８】
電波インタフェース部２２０は、アンテナ２１０を介して電波を送受信することにより、ＲＦＩＤタグ３００との間で電波通信を行う処理部である。例えば、電波インタフェース部２２０は、電波によって、リードコマンドやライトコマンドをＲＦＩＤタグ３００に対して送信し、リードコマンドやライトコマンドに対する応答として送信されるリードデータやライト結果などのデータ処理結果をＲＦＩＤタグ３００から受信する。
【００５９】
ＮＷインタフェース部２３０は、ネットワーク４００を介してホストコンピュータ１００との間でやり取りされるデータの送受信を制御する処理部である。例えば、ＮＷインタフェース部２３０は、タグ探索指示をホストコンピュータ１００から受信し、タグ探索指示に対する応答となるリードデータやライト結果などのデータ処理結果をホストコンピュータ１００に対して送信する。
【００６０】
記憶部２４０は、各種のデータやプログラムを記憶する記憶部不揮発性のメモリであり、特に本発明に関連するものとしては、ＲＦＩＤタグ３００から受信したタグＩＤや、データ処理結果（リードデータおよびライト結果）などを記憶する。
【００６１】
制御部２５０は、リーダライタ２００の全体制御を行う制御プログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に関連するものとしては、機能概念的に、タグ探索処理部２５１と、リード／ライト処理部２５２とを備える。
【００６２】
タグ探索処理部２５１は、ホストコンピュータ１００からタグ探索指示を受信した場合に、ＲＦＩＤタグ３００に対してタグ探索コマンドを送信する処理部である。ここで、タグ探索コマンドとは、ＲＦＩＤタグ３００に対してタグＩＤの送信を要求するためのコマンドである。
【００６３】
具体的には、タグ探索処理部２５１は、ＮＷインタフェース部２３０を介して、リード指示またはライト指示を含んだ探索指示をホストコンピュータ１００から受信すると、タグ探索コマンドを生成し、生成したタグ探索コマンドを、電波インタフェース部２２０を介して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する。
【００６４】
また、タグ探索処理部２５１は、電波インタフェース部２２０を介して、タグ探索コマンドに対するＲＦＩＤタグ３００からの応答を受信すると、受信した応答が１つのＲＦＩＤタグ３００からの応答（以下、「１タグ応答」と呼ぶ）でなかった場合には、タグ応答が衝突していると判断し、ＦＡＩＬコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する。
【００６５】
一方、タグ探索処理部２５１は、受信した応答が１タグ応答であった場合には、タグ探索指示のリード指示情報５３（リードアドレスおよびリードサイズを含む）を内部メモリの所定の箇所に定義された読み出し領域に保存し、また、ライト指示情報６３（ライトアドレス、ライトサイズ、ライトデータを含む）を内部メモリの所定の箇所に定義された書き込み領域に保存する。
【００６６】
その後、タグ探索処理部２５１は、リード／ライト処理部２５２に対して、１タグ応答で応答を受信したＲＦＩＤタグ３００に対するリードコマンドまたはライトコマンドの送信を指示する。ここで、リードコマンドとは、ＲＦＩＤタグ３００に対してデータの読み出しを要求するためのコマンドであり、ライトコマンドとは、ＲＦＩＤタグ３００に対してデータの書き込みを要求するためのコマンドである。
【００６７】
一方、タグ探索処理部２５１は、所定の時間が経過しても、電波インタフェース部２２０を介して、タグ探索コマンドに対するＲＦＩＤタグ３００からの応答を受信しなかった場合には、無応答であると判断する。
【００６８】
その場合、タグ探索処理部２５１は、リーダライタ２００からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したＮ回目の無応答であるか否かを確認する。そして、連続したＮ回目の無応答でなかった場合には、タグ探索処理部２５１は、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する。
【００６９】
一方、連続したＮ回目の無応答であった場合には、タグ探索処理部２５１は、交信範囲内に存在する全てのＲＦＩＤタグ３００から応答が行われたと判断し、ＩＮＩＴＩＡＬＩＺＥコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信するとともに、記憶部２４０に記憶されているタグＩＤと、リードデータまたはライト結果とを、ホストコンピュータ１００に対して送信する。
【００７０】
ここで、タグ探索処理部２５１は、ホストコンピュータに対して送信する情報として、例えば、データのリードやライトが正常に行えたか否かを示す情報をタグＩＤごとに追加してもよい。また、後述するように、分割してリードおよびライトが行われた場合には、分割した全てのデータのリードまたはライトが成功した場合のみ、リードデータやライト結果を送信するようにしてもよいし、分割されたリードデータのうちリードが成功したものや、ライトが成功したデータのライト結果のみを送信するようにしてもよい。
【００７１】
リード／ライト処理部２５２は、タグ探索処理部２５１により送信されたタグ探索コマンドに対して応答されるタグＩＤを受信した場合に、当該タグＩＤによって識別されるＲＦＩＤタグに対して、ホストコンピュータ１００から送信されたタグ探索指示コマンドに含まれていたリード指示やライト指示に基づいて、リードコマンドやライトコマンドを送信する処理部である。
【００７２】
以下、リード／ライト処理部２５２の動作について具体的に説明する。ここでは、まず、リードコマンドの送信に関する動作を先に説明し、その後、ライトコマンドの送信に関する動作を説明する。また、ここでは、リードコマンドおよびライトコマンドによって要求可能なデータの上限サイズが、それぞれ、８バイトおよび４バイトである場合について説明する。
【００７３】
最初に、リードコマンドの送信に関する動作について説明する。リード／ライト処理部２５２は、リードコマンドの送信を指示されると、読み出し領域に保存されているリードサイズを確認し、８バイトより大きかった場合には、当該リードサイズをリードコマンドに設定する。
【００７４】
そして、リード／ライト処理部２５２は、読み出し領域に保存されているリードアドレスを８バイトぶんだけ後方にシフトし、また、同じく読み出し領域に保存されているリードサイズから８バイトを減算する。ここで、リードアドレスをずらすことによって、次に送信されるリードコマンドには、まだリードコマンドが送信されていない９バイト目以降のデータのアドレスが設定されることになる。
【００７５】
さらに、リード／ライト処理部２５２は、リードコマンドに設定しきれなかったリードデータの一部が残っていることを示すために、領域分割フラグをＯＮにし、また、リードコマンドのリトライ送信を制御するための失敗回数にゼロを設定する。
【００７６】
一方、リード／ライト処理部２５２は、読み出し領域に保存されたリードサイズが８バイト以下であった場合には、読み出し領域に保存されたリードアドレスをリードコマンドに設定し、また、リードデータの全部をリードコマンドに設定したことを示すために、領域分割フラグをＯＦＦにし、また、失敗回数にゼロを設定する。
【００７７】
ここで、図５を用いて、リード／ライト処理部２５２により生成されるリードコマンドについて説明する。図５は、本実施例１に係るリードコマンドの一例を示す図である。同図に示すように、リードコマンドには、このコマンドがリードコマンドであることを示すアクセスコマンド７１（ＤＡＴＡ＿ＲＥＡＤ）と、タグＩＤ７２と、リードアドレス７３とが含まれる。
【００７８】
このようにして、リードコマンドにリードアドレスを設定した後に、リード／ライト処理部２５２は、１タグ応答で応答されたタグＩＤを指定して、リードコマンドを送信する。これにより、当該タグＩＤによって識別されるＲＦＩＤタグ３０において、リードコマンドに設定されたリードアドレスを先頭アドレスとする８バイトのデータがリードされる。
【００７９】
そして、リード／ライト処理部２５２は、リードコマンドに対する応答としてＲＦＩＤタグ３００から送信されたリードデータを受信した場合には、応答されたリードデータとタグＩＤとを対応付けて記憶部２４０に記憶し、その後、領域分割フラグがＯＮであるか否かを確認する。
【００８０】
ここで、領域分割フラグがＯＮでなかった場合や、領域分割フラグがＯＮであっても、読み出し領域に保存されているリードサイズがゼロであった場合には、リード／ライト処理部２５２は、ホストコンピュータ１００から送信されたリード指示の対象となるリードデータが全てリードされたと判断し、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する。
【００８１】
一方、領域分割フラグがＯＮであり、かつ、読み出し領域に保存されているリードサイズがゼロでなかった場合には、リード／ライト処理部２５２は、ホストコンピュータ１００から送信されたリード指示の対象となるリードデータがまだ全てリードされていないと判断し、続きのデータをリードするため、読み出し領域に保存されている情報をリードコマンドに設定し、再度、１タグ応答で応答されたタグＩＤを指定して、当該リードコマンドを送信する。
【００８２】
また、リード／ライト処理部２５２は、リードコマンドに対する応答として、所定の時間を経過しても、ＲＦＩＤタグ３００からリードデータを受信できなかった場合には、失敗回数に１を加算する。そして、失敗回数がＭ回（例えば、２回など）未満であった場合には、リード／ライト処理部２５２は、リードコマンドのリトライ送信を行い、一方、失敗回数がＭ回以上であった場合には、ＳＵＣＣＥＳＳコマンドを生成し、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する。
【００８３】
続いて、ライトコマンドの送信に関する動作について説明する。リード／ライト処理部２５２は、ライトコマンドの送信を指示されると、応答されたタグＩＤ、所定のリードアドレスおよび所定のリードサイズを設定したリードコマンド（ＤＡＴＡ＿ＲＥＡＤコマンド）を送信する。これにより、当該タグＩＤによって識別されるＲＦＩＤタグ３００は、「ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態」となる（このＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態の意味については、後に説明する）。
【００８４】
なお、ここでは、ＲＦＩＤタグ３００へのデータのライトに先立って、ＲＦＩＤタグ３００に対してリードコマンド（ＤＡＴＡ＿ＲＥＡＤコマンド）を送信する場合について説明するが、電波通信の仕様上、このような手順が不要である場合には、リードコマンドの送信を省略してもよい。
【００８５】
その後、リード／ライト処理部２５２は、ＤＡＴＡ＿ＲＥＡＤコマンドに対する応答として送信されたリードデータをＲＦＩＤタグ３００から受信すると、書き込み領域に保存されているライトサイズを確認し、４バイトより大きかった場合には、当該ライトアドレスと、同じく書き込み領域に保存されているライトデータの先頭４バイトとを、それぞれライトコマンドに設定する。加えて、リード／ライト処理部２５２は、ライトコマンドに設定しきれなかった５バイト目以降の残りのデータを、内部メモリの所定の領域に定義された残データ領域に保存する。
【００８６】
そして、リード／ライト処理部２５２は、書き込み領域に保存されているライトアドレスを４バイトぶんだけ後方にシフトし、また、同じく書き込み領域に保存されているライトサイズから４バイトを減算する。ここで、ライトアドレスをずらすことによって、次に送信されるライトコマンドには、まだライトコマンドが送信されていない５バイト目以降のデータのアドレスが設定されることになる。
【００８７】
さらに、リード／ライト処理部２５２は、ライトコマンドに設定しきれなかったライトデータの一部が残っていることを示すために、領域分割フラグをＯＮにし、また、ライトコマンドのリトライ送信を制御するための失敗回数にゼロを設定する。
【００８８】
一方、リード／ライト処理部２５２は、書き込み領域に保存されているライトサイズが４バイト以下であった場合には、当該ライトアドレス、および、書き込み領域に保存されているライトデータを、それぞれライトコマンドに設定し、また、ライトデータの全部をライトコマンドに設定したことを示すために、領域分割フラグをＯＦＦにし、また、失敗回数にゼロを設定する。
【００８９】
ここで、図６を用いて、リード／ライト処理部２５２により生成されるライトコマンドについて説明する。図６は、本実施例１に係るライトコマンドの一例を示す図である。同図に示すように、ライトコマンドには、このコマンドがライトコマンドであることを示すアクセスコマンド８１（ＷＲＩＴＥ４ＢＹＴＥ）と、タグＩＤ８２と、ライトアドレス８３と、ライトデータ８４とが含まれる。
【００９０】
このようにして、ライトコマンドにライトアドレスおよびライトデータを設定した後に、リード／ライト処理部２５２は、１タグ応答で応答されたタグＩＤを指定して、ライトコマンドを送信する。これにより、当該タグＩＤによって識別されるＲＦＩＤタグ３００において、ライトコマンドに設定されたライトアドレスを先頭アドレスとする４バイトのデータがライトされる。
【００９１】
そして、リード／ライト処理部２５２は、ライトコマンドに対する応答としてＲＦＩＤタグ３００から送信されたライト結果を受信すると、応答されたライト結果とタグＩＤとを対応付けて記憶部２４０に記憶し、その後、領域分割フラグがＯＮであるか否かを確認する。
【００９２】
ここで、領域分割フラグがＯＮでなかった場合や、領域分割フラグがＯＮであっても、読み出し領域に保存されているライトサイズがゼロであった場合には、リード／ライト処理部２５２は、ホストコンピュータ１００から送信されたライト指示の対象となるライトデータが全てライトされたと判断し、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する。
【００９３】
また、ライトコマンドに対する応答として、データ書き込みの成功を保証しないライト結果を送信したＲＦＩＤタグ３００に対しては、再度データ読み込みを行って、データ書き込みの成功を確認した後に、ＳＵＣＣＥＳＳコマンドを送信するようにしてもよい。
【００９４】
一方、領域分割フラグがＯＮであり、かつ、読み出し領域に保存されているライトサイズがゼロでなかった場合には、リード／ライト処理部２５２は、ホストコンピュータ１００から送信されたライト指示の対象となるライトデータがまだ全てライトされていないと判断し、続きのデータをライトするため、残データ領域に保存された残りのデータを書き込み領域のライトデータに設定した後に、書き込み領域の情報をライトコマンドに設定し、再度、１タグ応答で応答されたタグＩＤを指定して、当該ライトコマンドを送信する。
【００９５】
また、リード／ライト処理部２５２は、ライトコマンドに対する応答として、所定の時間を経過しても、ＲＦＩＤタグ３００からライト結果を受信できなかった場合には、失敗回数に１を加算する。そして、失敗回数がＭ回（例えば、２回など）未満であった場合には、リード／ライト処理部２５２は、ライトコマンドのリトライ送信を行い、一方、失敗回数がＭ回以上であった場合には、ＳＵＣＣＥＳＳコマンドを生成し、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する。
【００９６】
続いて、ＲＦＩＤタグ３００の構成について説明する。ＲＦＩＤタグ３００は、アンテナ３１０と、電波インタフェース部３２０と、整流部３３０と、記憶部３４０と、制御部３５０とを有する。
【００９７】
電波インタフェース部３２０は、アンテナ３１０を介して電波を送受信することにより、リーダライタ２００との間で電波通信を行う処理部である。例えば、電波インタフェース部３２０は、電波によって、リードコマンドやライトコマンドをリーダライタ２００から受信し、リードコマンドやライトコマンドに対する応答となるリードデータやライト結果などのデータ処理結果をリーダライタ２００に対して送信する。
【００９８】
整流部３３０は、リーダライタ２００から受信した電波を整流することによって電力を生成し、生成した電波を記憶部３４０および制御部３５０に供給する処理部である。
【００９９】
記憶部３４０は、各種のデータなどを記憶する不揮発性のメモリであり、特に本発明に関連するものとしては、タグＩＤや、ホストコンピュータ１００によって実行される業務処理に関する各種のデータなどを記憶する。
【０１００】
制御部３５０は、ＲＦＩＤタグ３００の全体制御を行う処理部であり、特に本発明に関連するものとしては、機能概念的に、応答制御部３５１と、データ処理部３５２とを備える。
【０１０１】
応答制御部３５１は、リーダライタ２００から送信される各種コマンドに基づいて、タグＩＤの送信や、記憶部３４０に対するデータのリードやライトを制御する処理部である。
【０１０２】
具体的には、応答制御部３５１は、電波インタフェース部３２０を介して、リーダライタ２００から送信されたタグ探索コマンドを受信すると、衝突回避処理を行い、その結果に応じて、リーダライタ２００に対してタグＩＤを送信する。ここでいう衝突回避処理とは、複数のＲＦＩＤタグ３００から同時にタグＩＤが応答されることによって、リーダライタが通信不能になるのを防ぐための処理であり、アンチコリジョン処理とも呼ばれる。かかる衝突回避処理としては、これまでにもさまざまな技術が提案されており、いずれの技術を用いるかは、ここでは特定しない。
【０１０３】
例えば、タグ探索コマンドを受信したタイミングで乱数を発生させ、得られた乱数が所定の数値条件を満たしているか否かによって、リーダライタに対する応答を行うか否かを決定する方法などが用いられる。
【０１０４】
そして、応答制御部３５１は、電波インタフェース部３２０を介して、リーダライタ２００から送信されたコマンドを受信すると、受信したコマンドの種類を確認する。ここで、受信したコマンドがリードコマンド（ＤＡＴＡ＿ＲＥＡＤコマンド）であった場合には、ＲＦＩＤタグ３００は「ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態」となる。
【０１０５】
この「ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態」とは、ＲＦＩＤタグ３００において、データ送受信が可能になった状態であり、この状態になった場合、応答制御部３５１は、リーダライタ２００から送信されるタグ探索コマンドに対して、タグＩＤを応答しない。
【０１０６】
そして、この場合、応答制御部３５１は、データ処理部３５２を制御して、当該リードコマンドに含まれているリードアドレスに基づいて記憶部３４０からデータを読み出し、読み出したデータを、電波インタフェース部３２０を介して、リーダライタ２００に対して送信する。
【０１０７】
また、応答制御部３５１は、受信したコマンドがＳＵＣＣＥＳＳコマンドであった場合には、再度タグＩＤを送信し、また、ＦＡＩＬコマンドであった場合には、再度衝突回避処理を行い、ＩＮＩＴＩＡＬＩＺＥコマンドであった場合には、ＲＦＩＤタグ３００の各種設定を初期状態にリセットし、次の探索コマンドが受信されるのを待つ。
【０１０８】
そして、応答制御部３５１は、電波インタフェース部３２０を介して、リーダライタ２００から送信されたコマンドをさらに受信すると、受信したコマンドの種類を確認し、リードコマンドであった場合には、当該リードコマンドに含まれているリードアドレスに基づいて記憶部３４０からデータを読み出し、読み出したデータを、電波インタフェース部３２０を介して、リーダライタ２００に対して送信する。
【０１０９】
また、応答制御部３５１は、受信されたコマンドがライトコマンドであった場合には、当該ライトコマンドに含まれているライトアドレスおよびライトデータに基づいて、記憶部３４０にデータを書き込み、リーダライタ２００に対してライト結果を送信する。
【０１１０】
また、応答制御部３５１は、受信されたコマンドがＳＵＣＣＥＳＳコマンドであった場合には、次のコマンドが受信されるのを待ち、ＩＮＩＴＩＡＬＩＺＥコマンドであった場合には、ＲＦＩＤタグ３００の各種設定を初期状態にリセットし、次の探索コマンドが受信されるのを待つ。
【０１１１】
データ処理部３５２は、応答制御部３５１からの指示に基づいて、記憶部３４０に対するデータの読み出しや、書き込みを行う処理部である。データ処理部３５２は、データの読み出しを行った場合には、読み出したデータをリードデータとして応答制御部３５１に応答し、データの書き込みを行った場合には、書き込みが正しく行えたか否かを示す情報を、ライト結果として応答制御部３５１に応答する。
【０１１２】
次に、図７〜１２を用いて、本実施例１に係るホストコンピュータ１００、リーダライタ２００およびＲＦＩＤタグ３００の処理手順について説明する。なお、リーダライタ２００の処理手順については、ＲＦＩＤタグ３００からデータをリードする際に行われるデータリード処理と、ＲＦＩＤタグ３００にデータをライトする際に行われるデータライト処理とをそれぞれ説明する。また、以下では、これまでに説明したリードコマンドを「ＤＡＴＡ＿ＲＥＡＤコマンド」と呼び、ライトコマンドを「ＷＲＩＴＥ４ＢＹＴＥコマンド」と呼ぶ。ただし、本発明においてデータの読み書きに使われるコマンドは、これらのコマンドに限定されるものではない。
【０１１３】
最初に、本実施例１に係るホストコンピュータ１００の処理手順について説明する。図７は、本実施例１に係るホストコンピュータ１００の処理手順を示すフローチャートである。同図に示すように、ホストコンピュータ１００は、アプリケーション部１３２が、業務処理の実行中に発生する所定のタイミングを検出すると（ステップＳ１０１，Ｙｅｓ）、コマンド生成部１３１に対してタグ探索指示の生成を依頼する。
【０１１４】
アプリケーション部１３２からの依頼に応じて、コマンド生成部１３１は、記憶部１２０に記憶されたリード領域情報およびライト領域情報を取得し（ステップＳ１０２）、取得したリード領域情報、ライト領域情報に基づいて、タグ探索指示を生成する（ステップＳ１０３）。そして、コマンド生成部１３１によってタグ探索指示が生成されると、アプリケーション部１３２は、生成されたタグ探索指示をリーダライタ２００に送信する（ステップＳ１０４）。
【０１１５】
その後、ＮＷインタフェース部１１０が、タグ探索指示に対する応答としてタグＩＤやリードデータ、ライト結果などのデータ処理結果をリーダライタ２００から受信すると（ステップＳ１０５，Ｙｅｓ）、アプリケーション部１３２が、これらデータ処理結果を用いて各種の業務処理を実行する（ステップＳ１０６）。
【０１１６】
続いて、本実施例１に係るリーダライタ２００によるデータリード処理の処理手順について説明する。図８および９は、本実施例１に係るリーダライタ２００によるデータリード処理の処理手順を示すフローチャート（１）および（２）である。これらの図に示すように、リーダライタ２００は、リード指示を含んだタグ探索指示をホストコンピュータ１００から受信すると（ステップＳ２０１，Ｙｅｓ）、タグ探索処理部２５１が、タグ探索コマンドを生成し（ステップＳ２０２）、生成したタグ探索コマンドを、電波インタフェース部２２０を介して、アンテナ２１０の交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する（ステップＳ２０３）。
【０１１７】
そして、電波インタフェース部２２０を介して、タグ探索コマンドに対するＲＦＩＤタグ３００からの応答を受信すると（ステップＳ２０４，Ｙｅｓ）、タグ探索処理部２５１は、受信した応答が１タグ応答でなかった場合には（ステップＳ２０５，Ｎｏ）、タグ応答が衝突していると判断し、ＦＡＩＬコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信した後に（ステップＳ２０６）、ステップＳ２０４に戻って、以降の処理を継続する。
【０１１８】
一方、受信した応答が１タグ応答であった場合には（ステップＳ２０５，Ｙｅｓ）、タグ探索処理部２５１は、タグ探索指示のリード指示情報５３（リードアドレスおよびリードサイズを含む）を内部メモリの所定の箇所に定義された読み出し領域に保存し（ステップＳ２０７）、その後に、リード／ライト処理部２５２に対してリードコマンドの送信を指示する。
【０１１９】
リードコマンドの送信を指示されたリード／ライト処理部２５２は、読み出し領域に保存されているリードサイズを確認し、８バイトより大きかった場合には（ステップＳ２０８，Ｙｅｓ）、読み出し領域に保存されたリードアドレスをＤＡＴＡ＿ＲＥＡＤコマンドに設定する（ステップＳ２０９）。
【０１２０】
このＤＡＴＡ＿ＲＥＡＤコマンドによって、ここで設定されたリードアドレスを先頭アドレスとする８バイトのデータがＲＦＩＤタグ３００からリードされる。そこで、リード／ライト処理部２５２は、読み出し領域に保存されているリードアドレスを８バイトだけシフトし（ステップＳ２１０）、また、読み出し領域に保存されているリードサイズから８バイトを減算する（ステップＳ２１１）。
【０１２１】
さらに、リード／ライト処理部２５２は、ＤＡＴＡ＿ＲＥＡＤコマンドに設定しきれなかったリードデータの一部が残っていることを示すために、領域分割フラグをＯＮにした後に（ステップＳ２１２）、ＤＡＴＡ＿ＲＥＡＤコマンドのリトライ送信を制御するための失敗回数にゼロを設定する（ステップＳ２１３）。
【０１２２】
一方、リード／ライト処理部２５２は、読み出し領域に保存されたリードサイズが８バイト以下であった場合には（ステップＳ２０８，Ｎｏ）、読み出し領域に保存されたリードアドレスをＤＡＴＡ＿ＲＥＡＤコマンドに設定し（ステップＳ２１４）、また、リードデータの全部をＤＡＴＡ＿ＲＥＡＤコマンドに設定したことを示すために、領域分割フラグをＯＦＦにした後に（ステップＳ２１５）、失敗回数にゼロを設定する（ステップＳ２１３）。
【０１２３】
このようにして、ＤＡＴＡ＿ＲＥＡＤコマンドにリードアドレスを設定した後に、リード／ライト処理部２５２は、１タグ応答で応答されたタグＩＤを指定して、ＤＡＴＡ＿ＲＥＡＤコマンドを送信する（ステップＳ２１６）。
【０１２４】
そして、リード／ライト処理部２５２は、ＤＡＴＡ＿ＲＥＡＤコマンドに対する応答としてＲＦＩＤタグ３００から送信されたリードデータを受信すると（ステップＳ２１７，Ｙｅｓ）、応答されたリードデータとタグＩＤとを対応付けて記憶部２４０に記憶し、その後、領域分割フラグがＯＮであるか否かを確認する。
【０１２５】
ここで、領域分割フラグがＯＮでなかった場合（ステップＳ２１８，Ｎｏ）や、領域分割フラグがＯＮであっても（ステップＳ２１８，Ｙｅｓ）、読み出し領域に保存されているリードサイズがゼロであった場合には（ステップＳ２１９，Ｙｅｓ）、リード／ライト処理部２５２は、ホストコンピュータ１００から送信されたリード指示の対象となるリードデータが全てリードされたと判断し、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する（ステップＳ２２０）。
【０１２６】
一方、領域分割フラグがＯＮであり（ステップＳ２１８，Ｙｅｓ）、かつ、読み出し領域に保存されているリードサイズがゼロでなかった場合には（ステップＳ２１９，Ｎｏ）、リード／ライト処理部２５２は、ホストコンピュータ１００から送信されたリード指示の対象となるリードデータがまだ全てリードされていないと判断し、ステップＳ２０８に戻って、以降の処理を継続する。
【０１２７】
また、リード／ライト処理部２５２は、ＤＡＴＡ＿ＲＥＡＤコマンドに対する応答として、所定の時間を経過しても、ＲＦＩＤタグ３００からリードデータを受信できなかった場合には（ステップＳ２１７，Ｎｏ）、失敗回数に１を加算する（ステップＳ２２１）。
【０１２８】
ここで、失敗回数がＭ回（例えば、２回など）未満であった場合には（ステップＳ２２２，Ｙｅｓ）、リード／ライト処理部２５２は、ステップＳ２１６に戻って、ＤＡＴＡ＿ＲＥＡＤコマンドのリトライ送信を行い、一方、失敗回数がＭ回以上であった場合には（ステップＳ２２２，Ｎｏ）、ＳＵＣＣＥＳＳコマンドを生成し、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する（ステップＳ２２０）。
【０１２９】
また、ステップＳ２０４において、所定の時間が経過しても、タグ探索コマンドに対するＲＦＩＤタグ３００からの応答を電波インタフェース部２２０が受信しなかった場合には（ステップＳ２０４，Ｎｏ）、リード／ライト処理部２５２は、無応答であると判断する。
【０１３０】
また、タグ探索処理部２５１は、リーダライタ２００からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したＮ回目の無応答でなかった場合には（ステップＳ２２３，Ｎｏ）、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信した後に（ステップＳ２２４）、ステップＳ２０４に戻って、以降の処理を継続する。
【０１３１】
一方、連続したＮ回目の無応答であった場合には（ステップＳ２２３，Ｙｅｓ）、タグ探索処理部２５１は、交信範囲内に存在する全てのＲＦＩＤタグ３００から応答が行われたと判断し、ＩＮＩＴＩＡＬＩＺＥコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信するとともに（ステップＳ２２５）、記憶部２４０に記憶されているタグＩＤおよびリードデータを、検出したタグＩＤおよび読み出したデータとして、ホストコンピュータ１００に対して送信し（ステップＳ２２６）、処理を終了する。
【０１３２】
続いて、本実施例１に係るリーダライタ２００によるデータライト処理の処理手順について説明する。図１０および１１は、本実施例１に係るリーダライタ２００によるデータライト処理の処理手順を示すフローチャート（１）および（２）である。これらの図に示すように、リーダライタ２００は、ライト指示を含んだ探索指示をホストコンピュータ１００から受信すると（ステップＳ３０１，Ｙｅｓ）、タグ探索コマンドを生成し（ステップＳ３０２）、生成したタグ探索コマンドを、アンテナ２１０の交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する（ステップＳ３０３）。
【０１３３】
そして、タグ探索コマンドに対するＲＦＩＤタグ３００からの応答を電波インタフェース部２２０が受信すると（ステップＳ３０４，Ｙｅｓ）、リード／ライト処理部２５２が、応答が１タグ応答でなかった場合には（ステップＳ３０５，Ｎｏ）、タグ応答が衝突していると判断し、ＦＡＩＬコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信した後に（ステップＳ３０６）、ステップＳ３０４に戻って、以降の処理を継続する。
【０１３４】
一方、受信した応答が１タグ応答であった場合には（ステップＳ３０５，Ｙｅｓ）、タグ探索処理部２５１は、タグ探索指示のライト指示情報６３（ライトアドレス、ライトサイズおよびライトデータを含む）を内部メモリの所定の箇所に定義された書き込み領域に保存し（ステップＳ３０７）、その後に、リード／ライト処理部２５２に対してライトコマンドの送信を指示する。
【０１３５】
ライトコマンドの送信を指示されたリード／ライト処理部２５２は、応答されたタグＩＤ、所定のリードアドレスおよび所定のリードサイズを設定したＤＡＴＡ＿ＲＥＡＤコマンドを送信する（ステップＳ３０８）。これにより、当該タグＩＤによって識別されるＲＦＩＤタグが、「ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態」になる。
【０１３６】
その後、リード／ライト処理部２５２は、ＤＡＴＡ＿ＲＥＡＤコマンドに対して応答されたリードデータをＲＦＩＤタグ３００から受信すると（ステップＳ３０９，Ｙｅｓ）、書き込み領域に保存されているライトサイズを確認し、４バイトより大きかった場合には（ステップＳ３１０，Ｙｅｓ）、書き込み領域に保存されたライトアドレスと、ライトデータの先頭４バイトとを、それぞれＷＲＩＴＥ４ＢＹＴＥコマンドに設定し（ステップＳ３１１およびＳ３１２）、ライトデータの５バイト目以降の残りのデータを、内部メモリの所定の箇所に定義された残データ領域に保存する（ステップＳ３１３）。
【０１３７】
そして、リード／ライト処理部２５２は、書き込み領域に保存されているライトアドレスを４バイトだけシフトし（ステップＳ３１４）、また、書き込み領域に保存されているライトサイズから４バイトを減算する（ステップＳ３１５）。
【０１３８】
さらに、リード／ライト処理部２５２は、ＷＲＩＴＥ４ＢＹＴＥコマンドに設定しきれなかったライトデータの一部が残っていることを示すために、領域分割フラグをＯＮにした後に（ステップＳ３１６）、ＷＲＩＴＥ４ＢＹＴＥコマンドのリトライ送信を制御するための失敗回数にゼロを設定する（ステップＳ３１７）。
【０１３９】
一方、リード／ライト処理部２５２は、書き込み領域に保存されたライトサイズが４バイト以下であった場合には（ステップＳ３１０，Ｎｏ）、書き込み領域に保存されたライトアドレスと、ライトデータとを、それぞれＷＲＩＴＥ４ＢＹＴＥコマンドに設定し（ステップＳ３１８およびＳ３１９）、さらに、ライトデータの全部をＷＲＩＴＥ４ＢＹＴＥコマンドに設定したことを示すために、領域分割フラグをＯＦＦにした後に（ステップＳ３２０）、失敗回数にゼロを設定する（ステップＳ３１７）。
【０１４０】
このようにして、ＷＲＩＴＥ４ＢＹＴＥコマンドにライトアドレスを設定した後に、リード／ライト処理部２５２は、１タグ応答で応答されたタグＩＤを指定して、ＷＲＩＴＥ４ＢＹＴＥコマンドを送信する（ステップＳ３２１）。
【０１４１】
そして、リード／ライト処理部２５２は、ＷＲＩＴＥ４ＢＹＴＥコマンドに対する応答としてＲＦＩＤタグ３００から送信されたライト結果を受信すると（ステップＳ３２２，Ｙｅｓ）、応答されたライト結果とタグＩＤとを対応付けて記憶部２４０に記憶し、その後、領域分割フラグがＯＮであるか否かを確認する。
【０１４２】
ここで、領域分割フラグがＯＮでなかった場合（ステップＳ３２３，Ｎｏ）や、領域分割フラグがＯＮであっても（ステップＳ３２３，Ｙｅｓ）、書き込み領域に保存されているライトサイズがゼロであった場合には（ステップＳ３２４，Ｙｅｓ）、リード／ライト処理部２５２は、ホストコンピュータ１００から送信されたライト指示の対象となるライトデータが全てライトされたと判断し、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する（ステップＳ３２５）。
【０１４３】
一方、領域分割フラグがＯＮであり（ステップＳ３２３，Ｙｅｓ）、かつ、書き込み領域に保存されているライトサイズがゼロでなかった場合には（ステップＳ３２４，Ｎｏ）、リード／ライト処理部２５２は、ホストコンピュータ１００から送信されたライト指示の対象となるライトデータがまだ全てライトされていないと判断し、残データ領域に保存されたデータを書き込み領域に設定し（ステップＳ３２６）、ステップＳ３１０に戻って、以降の処理を継続する。
【０１４４】
また、リード／ライト処理部２５２は、ＷＲＩＴＥ４ＢＹＴＥコマンドに対する応答として、所定の時間を経過しても、ＲＦＩＤタグ３００からライト結果を受信できなかった場合には（ステップＳ３２２，Ｎｏ）、失敗回数に１を加算する（ステップＳ３２７）。
【０１４５】
ここで、失敗回数がＭ回（例えば、２回など）未満であった場合には（ステップＳ３２８，Ｙｅｓ）、リード／ライト処理部２５２は、ステップＳ３２１に戻って、ＷＲＩＴＥ４ＢＹＴＥコマンドのリトライ送信を行い、一方、失敗回数がＭ回以上であった場合には（ステップＳ３２８，Ｎｏ）、ＳＵＣＣＥＳＳコマンドを生成し、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信する（ステップＳ３２５）。
【０１４６】
また、ステップＳ３０４において、所定の時間が経過しても、タグ探索コマンドに対するＲＦＩＤタグ３００からの応答を電波インタフェース部２２０が受信しなかった場合には（ステップＳ３０４，Ｎｏ）、リード／ライト処理部２５２は、無応答であると判断する。
【０１４７】
また、タグ探索処理部２５１は、リーダライタ２００からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したＮ回目の無応答でなかった場合には（ステップＳ３２９，Ｎｏ）、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信した後に（ステップＳ３３０）、ステップＳ３０４に戻って、以降の処理を継続する。
【０１４８】
一方、連続したＮ回目の無応答であった場合には（ステップＳ３２９，Ｙｅｓ）、タグ探索処理部２５１は、交信範囲内に存在する全てのＲＦＩＤタグ３００から応答が行われたと判断し、ＩＮＩＴＩＡＬＩＺＥコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ３００に向けて送信するとともに（ステップＳ３３１）、記憶部２４０に記憶されているタグＩＤおよびライト結果を、検出したタグＩＤおよび書き込み結果として、ホストコンピュータ１００に対して送信し（ステップＳ３３２）、処理を終了する。
【０１４９】
続いて、本実施例１に係るＲＦＩＤタグ３００の処理手順について説明する。図１２は、本実施例１に係るＲＦＩＤタグ３００の処理手順を示すフローチャートである。同図に示すように、ＲＦＩＤタグ３００は、アンテナ３１０がリーダライタ２００から送信された電波を受信すると、整流部３３０が、電波を整流して電力を生成し、制御部３５０および記憶部３４０に供給する。これにより、ＲＦＩＤタグ３００は「ＲＥＡＤＹ状態」となる（ステップＳ４０１）。
【０１５０】
そして、応答制御部３５１が、電波インタフェース部３２０を介して、リーダライタ２００から送信された探索コマンドを受信すると（ステップＳ４０２，Ｙｅｓ）、ＲＦＩＤタグ３００は「ＩＤ状態」となる（ステップＳ４０３）。その後、応答制御部３５１は、衝突回避処理を行い（ステップＳ４０４）、その結果に応じて、リーダライタ２００に対してタグＩＤを送信する（ステップＳ４０５）。
【０１５１】
そして、電波インタフェース部３２０を介して、リーダライタ２００から送信されたコマンドを受信すると（ステップＳ４０６，Ｙｅｓ）、応答制御部３５１が、受信したコマンドの種類を確認する。
【０１５２】
ここで、受信したコマンドがＤＡＴＡ＿ＲＥＡＤコマンドであった場合には、ＲＦＩＤタグ３００は「ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態」となり（ステップＳ４０７）、応答制御部３５１によって制御されたデータ処理部３５２が、当該ＤＡＴＡ＿ＲＥＡＤコマンドに含まれているリードアドレスに基づいて記憶部３４０からデータを読み出し（ステップＳ４０８）、読み出したデータを、電波インタフェース部３２０を介して、リーダライタ２００に対して送信する（ステップＳ４０９）。
【０１５３】
また、応答制御部３５１は、受信したコマンドがＳＵＣＣＥＳＳコマンドであった場合には（ステップＳ４１１）、ステップＳ４０６に戻って、再度タグＩＤを送信したうえで以降の処理を継続し、ＦＡＩＬコマンドであった場合には（ステップＳ４１２）、ステップＳ４０５に戻って、再度衝突回避処理を行ったうえで以降の処理を継続し、ＩＮＩＴＩＡＬＩＺＥコマンドであった場合には（ステップＳ４１３）、ステップＳ４０１に戻って、ＲＦＩＤタグ３００の各種設定を初期状態にリセットし、次の探索コマンドが送信されるのを待つ。
【０１５４】
そして、電波インタフェース部３２０を介して、リーダライタ２００から送信されたコマンドをさらに受信すると（ステップＳ４１３，Ｙｅｓ）、応答制御部３５１が、受信したコマンドの種類を確認し、ＤＡＴＡ＿ＲＥＡＤコマンドであった場合には、当該ＤＡＴＡ＿ＲＥＡＤコマンドに含まれているリードアドレスに基づいて、記憶部３４０の指定されたアドレスからデータを読み出し（ステップＳ４１４）、読み出したデータを、電波インタフェース部３２０を介して、リーダライタ２００に対して送信する（ステップＳ４１５）。
【０１５５】
また、応答制御部３５１は、受信したコマンドがＷＲＩＴＥ４ＢＹＴＥコマンドであった場合には、当該ＷＲＩＴＥ４ＢＹＴＥコマンドに含まれているライトアドレスおよびライトデータに基づいて、記憶部３４０の指定されたアドレスにデータを書き込み（ステップＳ４１６）、リーダライタ２００に対してライト結果を送信する（ステップＳ４１７）。
【０１５６】
また、応答制御部３５１は、受信されたコマンドがＳＵＣＣＥＳＳコマンドであった場合には（ステップＳ４１８）、ステップＳ４１３に戻って、次のコマンドが受信されるのを待ち、ＩＮＩＴＩＡＬＩＺＥコマンドであった場合には（ステップＳ４１９）、ステップＳ４０１に戻って、ＲＦＩＤタグ３００の各種設定を初期状態にリセットし、次の探索コマンドが送信されるのを待つ。
【０１５７】
上述してきたように、本実施例１では、ホストコンピュータ１００において、コマンド生成部１３１が、リード指示やライト指示を含めたタグ探索指示を生成し、アプリケーション部１３２が、生成されたタグ探索指示をリーダライタ２００に対して送信し、リーダライタ２００において、タグ探索処理部２５１が、タグ探索指示をホストコンピュータ１００から受信した場合に、ＲＦＩＤタグ３００を一意に識別するタグＩＤの送信を要求するタグ探索コマンドを送信し、リード／ライト処理部２５２が、タグ探索コマンドに対する応答としてＲＦＩＤタグ３００から送信されたタグＩＤを受信した場合に、当該タグＩＤにより識別されるＲＦＩＤタグ３００に対して、タグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信する。
【０１５８】
これにより、従来、ホストコンピュータ１００によってＲＦＩＤタグ３００それぞれに対して１つずつ行われていたリード指示やライト指示を、１回のタグ探索指示と同時にまとめて行うことが可能になり、ホストコンピュータ１００とリーダライタ２００との間でやり取りされるデータの量を削減することができるとともに、ＲＦＩＤタグ３００に対するデータのリードやライトを行う際に生じる、ホストコンピュータ１００とリーダライタ２００との間の通信におけるオーバーヘッドを低減することができる。
【０１５９】
また、本実施例１では、ホストコンピュータ１００により送信されるタグ探索指示には、リードやライトを行うデータのリードサイズ、ライトサイズが含まれており、リーダライタ２００において、リード／ライト処理部２５２が、タグ探索指示に含まれたリードサイズやライトサイズが、リードコマンドやライトコマンドにより要求可能なデータの上限サイズを超えていた場合には、当該上限サイズ以下となるサイズを、リードコマンドやライトコマンドにより要求するデータのサイズとして設定し、設定したサイズごとに分割された複数のデータのリードコマンドやライトコマンドを送信する。
【０１６０】
これにより、リードやライトを行うデータがリードコマンドやライトコマンドにより要求可能なデータの上限サイズを超えていた場合でも、リード指示および／またはライト指示をまとめて行うことが可能になり、ＲＦＩＤタグ３００に対するデータのリードやライトを行う際に生じる、ホストコンピュータ１００とリーダライタ２００との間の通信におけるオーバーヘッドをさらに低減することができる。
【実施例２】
【０１６１】
ところで、実施例１では、ＲＦＩＤタグ３００が、ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態となった場合に、リーダライタ２００から送信されるタグ探索コマンドに対して、タグＩＤを応答しないように制御される場合について説明した。この制御は、例えば、ＲＦＩＤタグ３００が、タグ探索コマンドに対して正常にタグＩＤを応答したことを示すフラグを一時メモリ（揮発性のメモリ）に記憶することによって行われる。
【０１６２】
この場合、ＲＦＩＤタグは、ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態となったタイミングで当該フラグを一時メモリに記憶し、タグ探索コマンドを受信した際に一時メモリにフラグが記憶されているか否かを確認し、記憶されていた場合にはタグＩＤを応答しないようにする。
【０１６３】
しかしながら、例えば、ＲＦＩＤタグ３００がバッテリを備えないパッシブ型のＲＦＩＤタグであった場合には、一時メモリに記憶したフラグがクリアされてしまう場合がある。パッシブ型のＲＦＩＤタグは、リーダライタから送信される電波を電力供給源とするため、リーダライタのアンテナの交信範囲内から外れた場合や、交信範囲内であっても電波状況が悪い環境で使用された場合に電力供給が絶たれることがあり、メモリに記憶された情報を維持することができないからである。
【０１６４】
そのため、パッシブ型のＲＦＩＤタグを用いる場合には、ＲＦＩＤタグに一般的に備えられている不揮発性のメモリに、タグ探索コマンドに対してタグＩＤ応答するか否かを判定するための情報（以下、「応答制御情報」と呼ぶ）を明示的に記憶する場合もある。
【０１６５】
そこで、以下では、ＲＦＩＤタグにおいて応答制御情報が用いられた場合を、実施例２として説明する。なお、ここでは説明の便宜上、実施例１で参照した図に示した機能部と同様の役割を果たすものについては、同一符号を付すこととする。
【０１６６】
まず、本実施例２に係るＲＦＩＤシステムにおけるＲＦＩＤタグに対するデータのアクセス方法の概念について説明する。図１３は、本実施例２に係るデータアクセス制御方法の概念を説明するための説明図である。
【０１６７】
同図は、リーダライタ６００を制御するホストコンピュータ５００と、リーダライタ６００と、ＲＦＩＤタグ７００とから構成される一般的なＲＦＩＤシステムを示している。このＲＦＩＤシステムにおいて、ホストコンピュータ５００とリーダライタ６００とは、ネットワーク４００を介して互いに通信を行い、リーダライタ６００とＲＦＩＤタグ７００とは、それぞれが有するアンテナ２１０および３１０から電波を送受信することによって互いに通信を行う。なお、ここでは１台のＲＦＩＤタグ７００のみを示しているが、このＲＦＩＤシステムは、複数のＲＦＩＤタグ７００から構成されていてもよい。また、リーダライタ６００およびアンテナ２１０についても、同様に複数で構成されていてもよい。
【０１６８】
このような構成のもと、本実施例２に係るデータアクセス方法では、従来、ホストコンピュータ５００によってＲＦＩＤタグ７００それぞれに対して１つずつ行われていたリード指示やライト指示を、１回のタグ探索指示と同時にまとめて行うことを特徴としている。
【０１６９】
具体的には、同図に示すように、まず、ホストコンピュータ５００が、リード指示やライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ６００に対して送信する（同図に示す（１））。ここで送信されるタグ探索指示には、リードやライトを行うデータのリード先やライト先となるＲＦＩＤタグ７００の記憶領域を示すアドレスや、リードやライトを行うデータのサイズなどが、リード指示またはライト指示として含まれている。また、このタグ探索指示には、タグ探索指示を送信するたびにユニークに生成される応答制御情報も含まれている。
【０１７０】
タグ探索指示を受信したリーダライタ６００は、アンテナ２１０の交信範囲内に存在するＲＦＩＤタグ７００に向けて、タグＩＤの送信を要求するタグ探索コマンドを送信する（同図に示す（２））。このタグ探索コマンドには、ホストコンピュータ５００から送信された応答制御情報が含まれている。
【０１７１】
このタグ探索コマンドを受信したＲＦＩＤタグ７００は、当該タグ探索コマンドに含まれている応答制御情報を不揮発性メモリに記憶するとともに、この応答制御情報と、前回送信されたタグ探索コマンドに含まれていた応答制御情報とを比較し、それぞれが異なっていた場合に、受信した探索コマンドに対する応答として、自身のタグＩＤをリーダライタ６００に対して送信する（同図に示す（３））。
【０１７２】
そして、リーダライタ６００は、ＲＦＩＤタグ７００から送信されたタグＩＤを受信した場合には、当該タグＩＤにより識別されるＲＦＩＤタグ７００に対して、ホストコンピュータ５００から送信されたタグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信する（同図に示す（４）および（５））。
【０１７３】
リードコマンドを受信したＲＦＩＤタグ７００は、受信したリードコマンドに基づいて、自身に備えられた記憶装置（メモリなど）からデータを読み出し、読み出したデータ（リードデータ）をリーダライタ６００に対して送信する（同図に示す（６））。また、ライトコマンドを受信したＲＦＩＤタグ７００は、受信したライトコマンドに基づいて、自身に備えられた記憶装置にデータを書き込み、書き込みが正常に行えたか否かを示すライト結果をリーダライタ６００に対して送信する（同図に示す（７））。
【０１７４】
そして、リーダライタ６００は、アンテナ２１０の交信範囲内に存在する全てのＲＦＩＤタグ７００からデータ処理結果（リードデータおよびライト結果）を受信すると、受信したデータ処理結果とタグＩＤとを全てまとめて、ホストコンピュータ５００に送信する（同図に示す（８））。
【０１７５】
このように、本実施例２に係るデータアクセス制御方法では、ホストコンピュータ５００が、リード指示やライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ６００に対して送信し、リーダライタ６００が、タグ探索指示をホストコンピュータ５００から受信した場合に、ＲＦＩＤタグ７００を一意に識別するタグＩＤの送信を要求するタグ探索コマンドを送信し、送信したタグ探索コマンドに対する応答としてＲＦＩＤタグ７００から送信されたタグＩＤを受信した場合に、当該タグＩＤにより識別されるＲＦＩＤタグ７００に対して、タグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信するようにしている。
【０１７６】
これにより、従来、ホストコンピュータ５００によってＲＦＩＤタグ７００それぞれに対して１つずつ行われていたリード指示やライト指示を、１回のタグ探索指示と同時にまとめて行うことが可能になり、ホストコンピュータ５００とリーダライタ６００との間でやり取りされるデータの量を削減することができるとともに、ＲＦＩＤタグ７００に対するデータのリードやライトを行う際に生じる、ホストコンピュータ５００とリーダライタ６００との間の通信におけるオーバーヘッドを低減することができる。
【０１７７】
また、本実施例２では、ＲＦＩＤタグ７００が、タグ探索コマンドごとにユニークとなる応答制御情報を不揮発性メモリに記憶し、タグ探索コマンドを受信した場合には、受信したタグ探索コマンドに含まれている応答制御情報と、記憶している応答制御情報とを比較し、異なっている場合に、タグＩＤを送信するので、同じタグ探索コマンドに対して、何度もタグＩＤを送信してしまうのを防ぐことができる。
【０１７８】
次に、本実施例２に係るＲＦＩＤシステムの構成について説明する。図１４は、本実施例２に係るＲＦＩＤシステムの構成を示す機能ブロック図である。同図は、図１３で示したＲＦＩＤシステムの構成を示しており、同図に示すように、このＲＦＩＤシステムは、ホストコンピュータ５００と、リーダライタ６００と、ＲＦＩＤタグ７００とから構成される。
【０１７９】
そして、ホストコンピュータ５００とリーダライタ６００とは、ネットワーク４００を介して互いに通信を行い、リーダライタ６００とＲＦＩＤタグ７００とは、それぞれが有するアンテナ２１０および３１０から電波を送受信することによって互いに通信を行う。なお、ここでは、図１３と同様に１台のリーダライタ６００、１台のアンテナ２１０および１台のＲＦＩＤタグ７００のみを示しているが、このＲＦＩＤシステムは、複数のリーダライタ６００、複数のアンテナ２１０および複数のＲＦＩＤタグ７００から構成されていてもよい。以下、各装置の構成について説明する。
【０１８０】
最初に、ホストコンピュータ５００の構成について説明する。ホストコンピュータ５００は、ＮＷ（Network）インタフェース部１１０と、記憶部１２０と、制御部１３０とを有する。
【０１８１】
ＮＷインタフェース部１１０は、ネットワーク４００を介してリーダライタ６００との間でやり取りされるデータの送受信を制御する処理部である。例えば、ＮＷインタフェース部１１０は、タグ探索指示をリーダライタ６００に対して送信し、タグ探索指示に対する応答として送信されるリードデータやライト結果などのデータ処理結果をリーダライタ６００から受信する。
【０１８２】
記憶部１２０は、各種のデータやプログラムを記憶する不揮発性のメモリであり、特に本発明に関連するものとしては、ＲＦＩＤタグ７００に対するデータのリードおよびライトを行う際に用いられるリード領域情報やライト領域情報を記憶する。
【０１８３】
ここで、リード領域情報とは、リードを行うデータのリード先となるＲＦＩＤタグ７００の記憶領域を示すアドレスや、リードを行うデータのサイズなどを含んだ情報（以下、それぞれ、「リードアドレス」、「リードサイズ」と呼ぶ）であり、ライト領域情報とは、ライトを行うデータのライト先となるＲＦＩＤタグ７００の記憶領域を示すアドレスや、ライトを行うデータのサイズや、ライトを行うデータなどを含んだ情報（以下、それぞれ、「ライトアドレス」、「ライトサイズ」、「ライトデータ」と呼ぶ）である。
【０１８４】
制御部１３０は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）などの制御プログラム、各種の処理手順を規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に関連するものとしては、機能概念的に、コマンド生成部５３１と、アプリケーション部１３２とを備える。
【０１８５】
コマンド生成部５３１は、リーダライタ６００に対して送信する各種の制御コマンドを生成する処理部であり、特に本発明に関連するものとしては、リード指示やライト指示を含んだタグ探索指示を生成する。
【０１８６】
具体的には、コマンド生成部５３１は、アプリケーション部１３２からの依頼に応じて、まず、記憶部１２０からリード領域情報およびライト領域情報を取得する。なお、ここでは、リード領域情報およびライト領域情報を記憶部１２０に記憶させておくこととしたが、これらリード領域情報およびライト領域情報は、リーダライタ６００に対してタグ探索コマンドを送信するタイミングで、利用者に入力させるようにしてもよい。
【０１８７】
リード領域情報およびライト領域情報を取得した後に、コマンド生成部５３１は、応答制御情報を生成する。ここでいう応答制御情報とは、タグ探索指示をユニークに識別する識別情報であり、例えばタイムスタンプのように、タグ探索指示を生成するたびにユニークに決められる情報である。そして、コマンド生成部５３１は、上記で説明したリード領域情報、ライト領域情報および応答制御情報を用いて、タグ探索指示を生成する。
【０１８８】
ここで、図１５および１６を用いて、コマンド生成部５３１により生成されるタグ探索指示について説明する。図１５は、本実施例２に係るリード指示を含んだタグ探索指示の一例を示す図である。同図に示すように、このタグ探索指示には、リード指示を含んだタグ探索指示であることを示す制御コマンド５４（Ｉｎｖｅｎｔｏｒｙ＿ｒ）と、所定のパラメータ５５と、応答制御情報５６と、リード指示情報５７とが含まれている。
【０１８９】
このうち、所定のパラメータ５５は、誤り検出符号（ＣＲＣ）など、通信を行ううえで必要となる所定の制御情報を含んだパラメータである。また、リード指示情報５７は、ＲＦＩＤタグ７００が記憶領域からデータをリードする際に必要となる情報であり、リード対象のデータのリードサイズと、リード先となるＲＦＩＤタグ７００の記憶領域を示すリードアドレスとを含んでいる。
【０１９０】
一方、図１６は、本実施例２に係るライト指示を含んだタグ探索指示の一例を示す図である。同図に示すように、このタグ探索指示には、ライト指示を含んだタグ探索指示であることを示す制御コマンド６４（Ｉｎｖｅｎｔｏｒｙ＿ｗ）と、所定のパラメータ６５と、応答制御情報６６と、ライト指示情報６７とが含まれている。
【０１９１】
このうち、所定のパラメータ６５は、図１５に示した所定のパラメータ５５と同様のパラメータである。また、ライト指示情報６７は、ＲＦＩＤタグ７００が記憶領域にデータをライトする際に必要となる情報であり、ライト対象のデータのライトサイズと、当該データのライト先となるＲＦＩＤタグ７００の記憶領域を示すライトアドレスと、ライト対象のライトデータとを含んでいる。
【０１９２】
図１４に戻って、アプリケーション部１３２は、各種の業務処理を実行するとともに、コマンド生成部５３１により生成されたタグ探索指示をリーダライタ６００に対して送信する処理部である。
【０１９３】
具体的には、アプリケーション部１３２は、各種の業務処理を実行するとともに、業務処理の実行中に発生する所定のタイミングで、コマンド生成部５３１にタグ探索コマンドの生成を依頼する。
【０１９４】
ここでいう所定のタイミングは、業務処理の種類に応じて決められるものであり、例えば、スーパーマーケットなどにおいて、レジ付近の所定の位置をカートが通過した際に、そのカートに入れられている商品に貼付されたＲＦＩＤタグから商品の価格に関する情報を読み出すことによって料金精算を行うような料金精算システムでは、所定の位置に設置された位置センサーなどによってカートが検出されたタイミングが、所定のタイミングとなる。
【０１９５】
または、倉庫の中などにおいて、利用者からの指示により、周辺に設置されている物品に貼付されたＲＦＩＤタグに対して、物品に関する情報の読み出しまたは書き込みを行うような物品管理システムでは、利用者から指示されたタイミングが、所定のタイミングとなる。
【０１９６】
アプリケーション部１３２は、コマンド生成部５３１によって探索コマンドが生成されると、生成された探索コマンドを、ＮＷインタフェース部１１０を介してリーダライタ６００に対して送信する。
【０１９７】
そして、アプリケーション部１３２は、送信した探索コマンドに対する応答として、リードデータやライト結果などのデータ処理結果がリーダライタ６００から送信されると、送信されたデータ処理結果を、ＮＷインタフェース部１１０を介して取得し、取得したデータ処理結果を用いて各種の業務処理を実行する。
【０１９８】
続いて、リーダライタ６００の構成について説明する。リーダライタ６００は、アンテナ２１０と、電波インタフェース部２２０と、ＮＷインタフェース部２３０と、記憶部２４０と、制御部２５０とを有する。
【０１９９】
電波インタフェース部２２０は、アンテナ２１０を介して電波を送受信することにより、ＲＦＩＤタグ７００との間で電波通信を行う処理部である。例えば、電波インタフェース部２２０は、電波によって、リードコマンドやライトコマンドをＲＦＩＤタグ７００に対して送信し、リードコマンドやライトコマンドに対する応答として送信されるリードデータやライト結果などのデータ処理結果をＲＦＩＤタグ７００から受信する。
【０２００】
ＮＷインタフェース部２３０は、ネットワーク４００を介してホストコンピュータ５００との間でやり取りされるデータの送受信を制御する処理部である。例えば、ＮＷインタフェース部２３０は、タグ探索指示をホストコンピュータ５００から受信し、タグ探索指示に対する応答となるリードデータやライト結果などのデータ処理結果をホストコンピュータ５００に対して送信する。
【０２０１】
記憶部２４０は、各種のデータやプログラムを記憶する記憶部不揮発性のメモリであり、特に本発明に関連するものとしては、ＲＦＩＤタグ７００から受信したタグＩＤや、データ処理結果（リードデータおよびライト結果）などを記憶する。
【０２０２】
制御部２５０は、リーダライタ６００の全体制御を行う制御プログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に関連するものとしては、機能概念的に、タグ探索処理部２５１と、リード／ライト処理部６５２とを備える。
【０２０３】
タグ探索処理部２５１は、ホストコンピュータ５００からタグ探索指示を受信した場合に、ＲＦＩＤタグ７００に対してタグ探索コマンドを送信する処理部である。ここで、タグ探索コマンドとは、ＲＦＩＤタグ７００に対してタグＩＤの送信を要求するためのコマンドである。
【０２０４】
具体的には、タグ探索処理部２５１は、ＮＷインタフェース部２３０を介して、リード指示またはライト指示を含んだ探索指示をホストコンピュータ５００から受信すると、タグ探索コマンドを生成し、生成したタグ探索コマンドを、電波インタフェース部２２０を介して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する。
【０２０５】
また、タグ探索処理部２５１は、電波インタフェース部２２０を介して、タグ探索コマンドに対するＲＦＩＤタグ７００からの応答を受信すると、受信した応答が１つのＲＦＩＤタグ７００からの応答（以下、「１タグ応答」と呼ぶ）でなかった場合には、タグ応答が衝突していると判断し、ＦＡＩＬコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する。
【０２０６】
一方、タグ探索処理部２５１は、受信した応答が１タグ応答であった場合には、タグ探索指示のリード指示情報５７（リードアドレスおよびリードサイズを含む）を内部メモリの所定の箇所に定義された読み出し領域に保存し、また、ライト指示情報６７（ライトアドレス、ライトサイズ、ライトデータを含む）を内部メモリの所定の箇所に定義された書き込み領域に保存する。
【０２０７】
その後、タグ探索処理部２５１は、リード／ライト処理部６５２に対して、１タグ応答で応答を受信したＲＦＩＤタグ７００に対するリードコマンドまたはライトコマンドの送信を指示する。ここで、リードコマンドとは、ＲＦＩＤタグ７００に対してデータの読み出しを要求するためのコマンドであり、ライトコマンドとは、ＲＦＩＤタグ７００に対してデータの書き込みを要求するためのコマンドである。
【０２０８】
一方、タグ探索処理部２５１は、所定の時間が経過しても、電波インタフェース部２２０を介して、タグ探索コマンドに対するＲＦＩＤタグ７００からの応答を受信しなかった場合には、無応答であると判断する。
【０２０９】
その場合、タグ探索処理部２５１は、リーダライタ６００からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したＮ回目の無応答であるか否かを確認する。そして、連続したＮ回目の無応答でなかった場合には、タグ探索処理部２５１は、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する。
【０２１０】
一方、連続したＮ回目の無応答であった場合には、タグ探索処理部２５１は、交信範囲内に存在する全てのＲＦＩＤタグ７００から応答が行われたと判断し、ＩＮＩＴＩＡＬＩＺＥコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信するとともに、記憶部２４０に記憶されているタグＩＤと、リードデータまたはライト結果とを、ホストコンピュータ５００に対して送信する。
【０２１１】
ここで、タグ探索処理部２５１は、ホストコンピュータに対して送信する情報として、例えば、データのリードやライトが正常に行えたか否かを示す情報をタグＩＤごとに追加してもよい。また、後述するように、分割してリードおよびライトが行われた場合には、分割した全てのデータのリードまたはライトが成功した場合のみ、リードデータやライト結果を送信するようにしてもよいし、分割されたリードデータのうちリードが成功したものや、ライトが成功したデータのライト結果のみを送信するようにしてもよい。
【０２１２】
リード／ライト処理部６５２は、タグ探索処理部２５１により送信されたタグ探索コマンドに対して応答されるタグＩＤを受信した場合に、当該タグＩＤによって識別されるＲＦＩＤタグに対して、ホストコンピュータ５００から送信されたタグ探索指示コマンドに含まれていたリード指示やライト指示に基づいて、リードコマンドやライトコマンドを送信する処理部である。
【０２１３】
以下、リード／ライト処理部６５２の動作について具体的に説明する。ここでは、まず、リードコマンドの送信に関する動作を先に説明し、その後、ライトコマンドの送信に関する動作を説明する。また、ここでは、リードコマンドおよびライトコマンドによって要求可能なデータの上限サイズが、それぞれ、８バイトおよび４バイトである場合について説明する。
【０２１４】
最初に、リードコマンドの送信に関する動作について説明する。リード／ライト処理部６５２は、リードコマンドの送信を指示されると、読み出し領域に保存されているリードサイズを確認し、８バイトより大きかった場合には、当該リードサイズをリードコマンドに設定する。
【０２１５】
そして、リード／ライト処理部６５２は、読み出し領域に保存されているリードアドレスを８バイトぶんだけ後方にシフトし、また、同じく読み出し領域に保存されているリードサイズから８バイトを減算する。ここで、リードアドレスをずらすことによって、次に送信されるリードコマンドには、まだリードコマンドが送信されていない９バイト目以降のデータのアドレスが設定されることになる。
【０２１６】
さらに、リード／ライト処理部６５２は、リードコマンドに設定しきれなかったリードデータの一部が残っていることを示すために、領域分割フラグをＯＮにし、また、リードコマンドのリトライ送信を制御するための失敗回数にゼロを設定する。
【０２１７】
一方、リード／ライト処理部６５２は、読み出し領域に保存されたリードサイズが８バイト以下であった場合には、読み出し領域に保存されたリードアドレスをリードコマンドに設定し、また、リードデータの全部をリードコマンドに設定したことを示すために、領域分割フラグをＯＦＦにし、また、失敗回数にゼロを設定する。
【０２１８】
ここで、図１７を用いて、リード／ライト処理部６５２により生成されるリードコマンドについて説明する。図１７は、本実施例２に係るリードコマンドの一例を示す図である。同図に示すように、リードコマンドには、このコマンドがリードコマンドであることを示すアクセスコマンド７４（ＤＡＴＡ＿ＲＥＡＤ）と、タグＩＤ７５と、リードアドレス７６とが含まれる。
【０２１９】
このようにして、リードコマンドにリードアドレスを設定した後に、リード／ライト処理部６５２は、１タグ応答で応答されたタグＩＤを指定して、リードコマンドを送信する。これにより、当該タグＩＤによって識別されるＲＦＩＤタグ３０において、リードコマンドに設定されたリードアドレスを先頭アドレスとする８バイトのデータがリードされる。
【０２２０】
そして、リード／ライト処理部６５２は、リードコマンドに対する応答としてＲＦＩＤタグ７００から送信されたリードデータを受信した場合には、当該リードデータを送信したＲＦＩＤタグ７００に対して、ホストコンピュータ５００から送信されたタグ探索指示に含まれていた応答制御情報の書き込み命令を送信する。ここで送信される応答制御情報は、ＲＦＩＤタグ７００において、タグ探索コマンドに対する応答を行うか否かの判定に用いられる。
【０２２１】
そして、リード／ライト処理部６５２は、応答されたリードデータとタグＩＤとを対応付けて記憶部２４０に記憶し、その後、領域分割フラグがＯＮであるか否かを確認する。
【０２２２】
ここで、領域分割フラグがＯＮでなかった場合や、領域分割フラグがＯＮであっても、読み出し領域に保存されているリードサイズがゼロであった場合には、リード／ライト処理部６５２は、ホストコンピュータ５００から送信されたリード指示の対象となるリードデータが全てリードされたと判断し、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する。
【０２２３】
一方、領域分割フラグがＯＮであり、かつ、読み出し領域に保存されているリードサイズがゼロでなかった場合には、リード／ライト処理部６５２は、ホストコンピュータ５００から送信されたリード指示の対象となるリードデータがまだ全てリードされていないと判断し、続きのデータをリードするため、読み出し領域に保存されている情報をリードコマンドに設定し、再度、１タグ応答で応答されたタグＩＤを指定して、当該リードコマンドを送信する。
【０２２４】
また、リード／ライト処理部６５２は、リードコマンドに対する応答として、所定の時間を経過しても、ＲＦＩＤタグ７００からリードデータを受信できなかった場合には、失敗回数に１を加算する。そして、失敗回数がＭ回（例えば、２回など）未満であった場合には、リード／ライト処理部６５２は、リードコマンドのリトライ送信を行い、一方、失敗回数がＭ回以上であった場合には、ＳＵＣＣＥＳＳコマンドを生成し、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する。
【０２２５】
続いて、ライトコマンドの送信に関する動作について説明する。リード／ライト処理部６５２は、ライトコマンドの送信を指示されると、応答されたタグＩＤ、所定のリードアドレスおよび所定のリードサイズを設定したリードコマンド（ＤＡＴＡ＿ＲＥＡＤコマンド）を送信する。これにより、当該タグＩＤによって識別されるＲＦＩＤタグ７００は、「ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態」になる。
【０２２６】
なお、ここでは、ＲＦＩＤタグ７００へのデータのライトに先立って、ＲＦＩＤタグ７００に対してリードコマンド（ＤＡＴＡ＿ＲＥＡＤコマンド）を送信する場合について説明するが、電波通信の仕様上、このような手順が不要である場合には、リードコマンドの送信を省略してもよい。
【０２２７】
その後、リード／ライト処理部６５２は、ＤＡＴＡ＿ＲＥＡＤコマンドに対する応答として送信されたリードデータをＲＦＩＤタグ７００から受信すると、当該リードデータを送信したＲＦＩＤタグ７００に対して、応答制御情報の書き込み命令を送信する。
【０２２８】
また、リード／ライト処理部６５２は、書き込み領域に保存されているライトサイズを確認し、４バイトより大きかった場合には、当該ライトアドレスと、同じく書き込み領域に保存されているライトデータの先頭４バイトとを、それぞれライトコマンドに設定する。加えて、リード／ライト処理部６５２は、ライトコマンドに設定しきれなかった５バイト目以降の残りのデータを、内部メモリの所定の領域に定義された残データ領域に保存する。
【０２２９】
そして、リード／ライト処理部６５２は、書き込み領域に保存されているライトアドレスを４バイトぶんだけ後方にシフトし、また、同じく書き込み領域に保存されているライトサイズから４バイトを減算する。ここで、ライトアドレスをずらすことによって、次に送信されるライトコマンドには、まだライトコマンドが送信されていない５バイト目以降のデータのアドレスが設定されることになる。
【０２３０】
さらに、リード／ライト処理部６５２は、ライトコマンドに設定しきれなかったライトデータの一部が残っていることを示すために、領域分割フラグをＯＮにし、また、ライトコマンドのリトライ送信を制御するための失敗回数にゼロを設定する。
【０２３１】
一方、リード／ライト処理部６５２は、書き込み領域に保存されているライトサイズが４バイト以下であった場合には、当該ライトアドレス、および、書き込み領域に保存されているライトデータを、それぞれライトコマンドに設定し、また、ライトデータの全部をライトコマンドに設定したことを示すために、領域分割フラグをＯＦＦにし、また、失敗回数にゼロを設定する。
【０２３２】
ここで、図１８を用いて、リード／ライト処理部６５２により生成されるライトコマンドについて説明する。図１８は、本実施例２に係るライトコマンドの一例を示す図である。同図に示すように、ライトコマンドには、このコマンドがライトコマンドであることを示すアクセスコマンド８５（ＷＲＩＴＥ４ＢＹＴＥ）と、タグＩＤ８６と、ライトアドレス８７と、ライトデータ８８とが含まれる。
【０２３３】
このようにして、ライトコマンドにライトアドレスおよびライトデータを設定した後に、リード／ライト処理部６５２は、１タグ応答で応答されたタグＩＤを指定して、ライトコマンドを送信する。これにより、当該タグＩＤによって識別されるＲＦＩＤタグ７００において、ライトコマンドに設定されたライトアドレスを先頭アドレスとする４バイトのデータがライトされる。
【０２３４】
そして、リード／ライト処理部６５２は、ライトコマンドに対する応答としてＲＦＩＤタグ７００から送信されたライト結果を受信すると、応答されたライト結果とタグＩＤとを対応付けて記憶部２４０に記憶し、その後、領域分割フラグがＯＮであるか否かを確認する。
【０２３５】
ここで、領域分割フラグがＯＮでなかった場合や、領域分割フラグがＯＮであっても、読み出し領域に保存されているライトサイズがゼロであった場合には、リード／ライト処理部６５２は、ホストコンピュータ５００から送信されたライト指示の対象となるライトデータが全てライトされたと判断し、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する。
【０２３６】
また、ライトコマンドに対する応答として、データ書き込みの成功を保証しないライト結果を送信したＲＦＩＤタグ７００に対しては、再度データ読み込みを行って、データ書き込みの成功を確認した後に、ＳＵＣＣＥＳＳコマンドを送信するようにしてもよい。
【０２３７】
一方、領域分割フラグがＯＮであり、かつ、読み出し領域に保存されているライトサイズがゼロでなかった場合には、リード／ライト処理部６５２は、ホストコンピュータ５００から送信されたライト指示の対象となるライトデータがまだ全てライトされていないと判断し、続きのデータをライトするため、残データ領域に保存された残りのデータを書き込み領域のライトデータに設定した後に、書き込み領域の情報をライトコマンドに設定し、再度、１タグ応答で応答されたタグＩＤを指定して、当該ライトコマンドを送信する。
【０２３８】
また、リード／ライト処理部６５２は、ライトコマンドに対する応答として、所定の時間を経過しても、ＲＦＩＤタグ７００からライト結果を受信できなかった場合には、失敗回数に１を加算する。そして、失敗回数がＭ回（例えば、２回など）未満であった場合には、リード／ライト処理部６５２は、ライトコマンドのリトライ送信を行い、一方、失敗回数がＭ回以上であった場合には、ＳＵＣＣＥＳＳコマンドを生成し、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する。
【０２３９】
続いて、ＲＦＩＤタグ７００の構成について説明する。ＲＦＩＤタグ７００は、アンテナ３１０と、電波インタフェース部３２０と、整流部３３０と、記憶部７４０と、制御部３５０とを有する。
【０２４０】
電波インタフェース部３２０は、アンテナ３１０を介して電波を送受信することにより、リーダライタ６００との間で電波通信を行う処理部である。例えば、電波インタフェース部３２０は、電波によって、リードコマンドやライトコマンドをリーダライタ６００から受信し、リードコマンドやライトコマンドに対する応答となるリードデータやライト結果などのデータ処理結果をリーダライタ６００に対して送信する。
【０２４１】
整流部３３０は、リーダライタ６００から受信した電波を整流することによって電力を生成し、生成した電波を記憶部７４０および制御部３５０に供給する処理部である。
【０２４２】
記憶部７４０は、各種のデータなどを記憶する不揮発性のメモリであり、特に本発明に関連するものとしては、タグＩＤや、ホストコンピュータ５００によって実行される業務処理に関する各種のデータや、リーダライタ６００から送信された応答制御情報などを記憶する。
【０２４３】
制御部３５０は、ＲＦＩＤタグ７００の全体制御を行う処理部であり、特に本発明に関連するものとしては、機能概念的に、応答制御部７５１と、データ処理部３５２とを備える。
【０２４４】
応答制御部７５１は、リーダライタ６００から送信される各種コマンドに基づいて、タグＩＤの送信や、記憶部７４０に対するデータのリードやライトを制御する処理部である。
【０２４５】
具体的には、応答制御部７５１は、電波インタフェース部３２０を介して、リーダライタ６００から送信されたタグ探索コマンドを受信すると、当該タグ探索コマンドに含まれている応答制御情報と、記憶部７４０に記憶されている応答制御情報とを比較する。そして、応答制御情報が同じであった場合には、応答制御部７５１は、当該探索コマンドに対してはすでに応答済みであると判断し、次の探索コマンドが送信されるのを待つ。
【０２４６】
一方、応答制御情報が異なっていた場合には、応答制御部７５１は、衝突回避処理を行い、その結果に応じて、リーダライタ６００に対してタグＩＤを送信する。ここでいう衝突回避処理とは、複数のＲＦＩＤタグ７００から同時にタグＩＤが応答されることによって、リーダライタが通信不能になるのを防ぐための処理であり、アンチコリジョン処理とも呼ばれる。かかる衝突回避処理としては、これまでにもさまざまな技術が提案されており、いずれの技術を用いるかは、ここでは特定しない。
【０２４７】
例えば、タグ探索コマンドを受信したタイミングで乱数を発生させ、得られた乱数が所定の数値条件を満たしているか否かによって、リーダライタに対する応答を行うか否かを決定する方法などが用いられる。
【０２４８】
そして、応答制御部７５１は、電波インタフェース部３２０を介して、リーダライタ６００から送信されたコマンドを受信すると、受信したコマンドの種類を確認する。ここで、受信したコマンドがリードコマンド（ＤＡＴＡ＿ＲＥＡＤコマンド）であった場合には、ＲＦＩＤタグ７００は「ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態」となる。
【０２４９】
この「ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態」とは、ＲＦＩＤタグ７００において、データ送受信が可能になった状態であり、この状態になった場合、応答制御部７５１は、リーダライタ６００からのタグ探索コマンドに対して、タグＩＤを応答しない。
【０２５０】
そして、この場合、応答制御部７５１は、データ処理部３５２を制御して、当該リードコマンドに含まれているリードアドレスに基づいて記憶部７４０からデータを読み出し、読み出したデータを、電波インタフェース部３２０を介して、リーダライタ６００に対して送信する。
【０２５１】
また、応答制御部７５１は、受信したコマンドがＳＵＣＣＥＳＳコマンドであった場合には、再度タグＩＤを送信し、また、ＦＡＩＬコマンドであった場合には、再度衝突回避処理を行い、ＩＮＩＴＩＡＬＩＺＥコマンドであった場合には、ＲＦＩＤタグ７００の各種設定を初期状態にリセットし、次の探索コマンドが受信されるのを待つ。
【０２５２】
その後、応答制御部７５１は、電波インタフェース部３２０を介して、リーダライタ６００から応答制御情報を受信すると、受信した応答制御情報を記憶部７４０に書き込む。ここで記憶された応答制御情報は、次にタグ探索コマンドが受信された際に、そのタグ探索コマンドに含まれた応答制御情報と比較され、当該タグ探索コマンドに対する応答を行うか否かの判定に用いられる。
【０２５３】
そして、応答制御部７５１は、電波インタフェース部３２０を介して、リーダライタ６００から送信されたコマンドをさらに受信すると、受信したコマンドの種類を確認し、リードコマンドであった場合には、当該リードコマンドに含まれているリードアドレスに基づいて記憶部７４０からデータを読み出し、読み出したデータを、電波インタフェース部３２０を介して、リーダライタ６００に対して送信する。
【０２５４】
また、応答制御部７５１は、受信されたコマンドがライトコマンドであった場合には、当該ライトコマンドに含まれているライトアドレスおよびライトデータに基づいて、記憶部７４０にデータを書き込み、リーダライタ６００に対してライト結果を送信する。
【０２５５】
また、応答制御部７５１は、受信されたコマンドがＳＵＣＣＥＳＳコマンドであった場合には、次のコマンドが受信されるのを待ち、ＩＮＩＴＩＡＬＩＺＥコマンドであった場合には、ＲＦＩＤタグ７００の各種設定を初期状態にリセットし、次の探索コマンドが受信されるのを待つ。
【０２５６】
データ処理部３５２は、応答制御部７５１からの指示に基づいて、記憶部７４０に対するデータの読み出しや、書き込みを行う処理部である。データ処理部３５２は、データの読み出しを行った場合には、読み出したデータをリードデータとして応答制御部７５１に応答し、データの書き込みを行った場合には、書き込みが正しく行えたか否かを示す情報を、ライト結果として応答制御部７５１に応答する。
【０２５７】
次に、図１９〜２４を用いて、本実施例２に係るホストコンピュータ５００、リーダライタ６００およびＲＦＩＤタグ７００の処理手順について説明する。なお、リーダライタ６００の処理手順については、ＲＦＩＤタグ７００からデータをリードする際に行われるデータリード処理と、ＲＦＩＤタグ７００にデータをライトする際に行われるデータライト処理とをそれぞれ説明する。また、以下では、これまでに説明したリードコマンドを「ＤＡＴＡ＿ＲＥＡＤコマンド」と呼び、ライトコマンドを「ＷＲＩＴＥ４ＢＹＴＥコマンド」と呼ぶ。ただし、本発明においてデータの読み書きに使われるコマンドは、これらのコマンドに限定されるものではない。
【０２５８】
最初に、本実施例２に係るホストコンピュータ５００の処理手順について説明する。図１９は、本実施例２に係るホストコンピュータ５００の処理手順を示すフローチャートである。同図に示すように、ホストコンピュータ５００は、アプリケーション部１３２が、業務処理の実行中に発生する所定のタイミングを検出すると（ステップＳ５０１，Ｙｅｓ）、コマンド生成部５３１に対してタグ探索指示の生成を依頼する。
【０２５９】
アプリケーション部１３２からの依頼に応じて、コマンド生成部５３１は、記憶部１２０に記憶されたリード領域情報およびライト領域情報を取得し（ステップＳ５０２）、また、応答制御情報を生成する（ステップＳ５０３）。
【０２６０】
そして、コマンド生成部５３１は、記憶部１２０から取得したリード領域情報、ライト領域情報および応答制御情報に基づいて、タグ探索指示を生成する（ステップＳ５０４）。コマンド生成部５３１によってタグ探索指示が生成されると、アプリケーション部１３２は、生成されたタグ探索指示をリーダライタ６００に送信する（ステップＳ５０５）。
【０２６１】
その後、ＮＷインタフェース部１１０が、タグ探索指示に対する応答としてタグＩＤやリードデータ、ライト結果などのデータ処理結果をリーダライタ６００から受信すると（ステップＳ５０６，Ｙｅｓ）、アプリケーション部１３２が、これらデータ処理結果を用いて各種の業務処理を実行する（ステップＳ５０７）。
【０２６２】
続いて、本実施例２に係るリーダライタ６００によるデータリード処理の処理手順について説明する。図２０および２１は、本実施例２に係るリーダライタ６００によるデータリード処理の処理手順を示すフローチャート（１）および（２）である。これらの図に示すように、リーダライタ６００は、リード指示を含んだタグ探索指示をホストコンピュータ５００から受信すると（ステップＳ６０１，Ｙｅｓ）、タグ探索処理部２５１が、タグ探索コマンドを生成し（ステップＳ６０２）、生成したタグ探索コマンドを、電波インタフェース部２２０を介して、アンテナ２１０の交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する（ステップＳ６０３）。
【０２６３】
そして、電波インタフェース部２２０を介して、タグ探索コマンドに対するＲＦＩＤタグ７００からの応答を受信すると（ステップＳ６０４，Ｙｅｓ）、タグ探索処理部２５１は、受信した応答が１タグ応答でなかった場合には（ステップＳ６０５，Ｎｏ）、タグ応答が衝突していると判断し、ＦＡＩＬコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信した後に（ステップＳ６０６）、ステップＳ６０４に戻って、以降の処理を継続する。
【０２６４】
一方、受信した応答が１タグ応答であった場合には（ステップＳ６０５，Ｙｅｓ）、タグ探索処理部２５１は、タグ探索指示のリード指示情報５７（リードアドレスおよびリードサイズを含む）を内部メモリの所定の箇所に定義された読み出し領域に保存し（ステップＳ６０７）、その後に、リード／ライト処理部６５２に対してリードコマンドの送信を指示する。
【０２６５】
リードコマンドの送信を指示されたリード／ライト処理部６５２は、読み出し領域に保存されているリードサイズが８バイトより大きかった場合には（ステップＳ６０８，Ｙｅｓ）、読み出し領域に保存されたリードアドレスをＤＡＴＡ＿ＲＥＡＤコマンドに設定する（ステップＳ６０９）。
【０２６６】
このＤＡＴＡ＿ＲＥＡＤコマンドによって、ここで設定されたリードアドレスを先頭アドレスとする８バイトのデータがＲＦＩＤタグ７００からリードされる。そこで、リード／ライト処理部６５２は、読み出し領域に保存されているリードアドレスを８バイトだけシフトし（ステップＳ６１０）、また、読み出し領域に保存されているリードサイズから８バイトを減算する（ステップＳ６１１）。
【０２６７】
さらに、リード／ライト処理部６５２は、ＤＡＴＡ＿ＲＥＡＤコマンドに設定しきれなかったリードデータの一部が残っていることを示すために、領域分割フラグをＯＮにした後に（ステップＳ６１２）、ＤＡＴＡ＿ＲＥＡＤコマンドのリトライ送信を制御するための失敗回数にゼロを設定する（ステップＳ６１３）。
【０２６８】
一方、リード／ライト処理部６５２は、読み出し領域に保存されたリードサイズが８バイト以下であった場合には（ステップＳ６０８，Ｎｏ）、読み出し領域に保存されたリードアドレスをＤＡＴＡ＿ＲＥＡＤコマンドに設定し（ステップＳ６１４）、また、リードデータの全部をＤＡＴＡ＿ＲＥＡＤコマンドに設定したことを示すために、領域分割フラグをＯＦＦにした後に（ステップＳ６１５）、失敗回数にゼロを設定する（ステップＳ６１３）。
【０２６９】
このようにして、ＤＡＴＡ＿ＲＥＡＤコマンドにリードアドレスを設定した後に、リード／ライト処理部６５２は、１タグ応答で応答されたタグＩＤを指定して、ＤＡＴＡ＿ＲＥＡＤコマンドを送信する（ステップＳ６１６）。
【０２７０】
そして、リード／ライト処理部６５２は、ＤＡＴＡ＿ＲＥＡＤコマンドに対する応答としてＲＦＩＤタグ７００から送信されたリードデータを受信すると（ステップＳ６１７，Ｙｅｓ）、当該リードデータを送信したＲＦＩＤタグ７００に対して、応答制御情報の書き込み命令を送信する（ステップＳ６１８）。
【０２７１】
そして、リード／ライト処理部６５２は、応答されたリードデータとタグＩＤとを対応付けて記憶部２４０に記憶し、その後、領域分割フラグがＯＮであるか否かを確認する。
【０２７２】
ここで、領域分割フラグがＯＮでなかった場合（ステップＳ６１９，Ｎｏ）や、領域分割フラグがＯＮであっても（ステップＳ６１９，Ｙｅｓ）、読み出し領域に保存されているリードサイズがゼロであった場合には（ステップＳ６２０，Ｙｅｓ）、リード／ライト処理部６５２は、ホストコンピュータ５００から送信されたリード指示の対象となるリードデータが全てリードされたと判断し、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する（ステップＳ６２１）。
【０２７３】
一方、領域分割フラグがＯＮであり（ステップＳ６１９，Ｙｅｓ）、かつ、読み出し領域に保存されているリードサイズがゼロでなかった場合には（ステップＳ６２０，Ｎｏ）、リード／ライト処理部６５２は、ホストコンピュータ５００から送信されたリード指示の対象となるリードデータがまだ全てリードされていないと判断し、ステップＳ６０８に戻って、以降の処理を継続する。
【０２７４】
また、リード／ライト処理部６５２は、ＤＡＴＡ＿ＲＥＡＤコマンドに対する応答として、所定の時間を経過しても、ＲＦＩＤタグ７００からリードデータを受信できなかった場合には（ステップＳ６１７，Ｎｏ）、失敗回数に１を加算する（ステップＳ６２２）。
【０２７５】
ここで、失敗回数がＭ回（例えば、２回など）未満であった場合には（ステップＳ６２３，Ｙｅｓ）、リード／ライト処理部６５２は、ステップＳ６１６に戻って、ＤＡＴＡ＿ＲＥＡＤコマンドのリトライ送信を行い、一方、失敗回数がＭ回以上であった場合には（ステップＳ６２３，Ｎｏ）、ＳＵＣＣＥＳＳコマンドを生成し、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する（ステップＳ６２１）。
【０２７６】
また、ステップＳ６０４において、所定の時間が経過しても、タグ探索コマンドに対するＲＦＩＤタグ７００からの応答を電波インタフェース部２２０が受信しなかった場合には（ステップＳ６０４，Ｎｏ）、リード／ライト処理部６５２は、無応答であると判断する。
【０２７７】
また、タグ探索処理部２５１は、リーダライタ６００からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したＮ回目の無応答でなかった場合には（ステップＳ６２４，Ｎｏ）、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信した後に（ステップＳ６２５）、ステップＳ６０４に戻って、以降の処理を継続する。
【０２７８】
一方、連続したＮ回目の無応答であった場合には（ステップＳ６２４，Ｙｅｓ）、タグ探索処理部２５１は、交信範囲内に存在する全てのＲＦＩＤタグ７００から応答が行われたと判断し、ＩＮＩＴＩＡＬＩＺＥコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信するとともに（ステップＳ６２６）、記憶部２４０に記憶されているタグＩＤおよびリードデータを、検出したタグＩＤおよび読み出したデータとして、ホストコンピュータ５００に対して送信し（ステップＳ６２７）、処理を終了する。
【０２７９】
続いて、本実施例２に係るリーダライタ６００によるデータライト処理の処理手順について説明する。図２２および２３は、本実施例２に係るリーダライタ６００によるデータライト処理の処理手順を示すフローチャート（１）および（２）である。これらの図に示すように、リーダライタ６００は、ライト指示を含んだ探索指示をホストコンピュータ５００から受信すると（ステップＳ７０１，Ｙｅｓ）、タグ探索コマンドを生成し（ステップＳ７０２）、生成したタグ探索コマンドを、アンテナ２１０の交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する（ステップＳ７０３）。
【０２８０】
そして、タグ探索コマンドに対するＲＦＩＤタグ７００からの応答を電波インタフェース部２２０が受信すると（ステップＳ７０４，Ｙｅｓ）、リード／ライト処理部６５２が、応答が１タグ応答でなかった場合には（ステップＳ７０５，Ｎｏ）、タグ応答が衝突していると判断し、ＦＡＩＬコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信した後に（ステップＳ７０６）、ステップＳ７０４に戻って、以降の処理を継続する。
【０２８１】
一方、受信した応答が１タグ応答であった場合には（ステップＳ７０５，Ｙｅｓ）、タグ探索処理部２５１は、タグ探索指示のライト指示情報６７（ライトアドレス、ライトサイズおよびライトデータを含む）を内部メモリの所定の箇所に定義された書き込み領域に保存し（ステップＳ７０７）、その後に、リード／ライト処理部６５２に対してライトコマンドの送信を指示する。
【０２８２】
ライトコマンドの送信を指示されたリード／ライト処理部６５２は、応答されたタグＩＤ、所定のリードアドレスおよび所定のリードサイズを設定したＤＡＴＡ＿ＲＥＡＤコマンドを送信する（ステップＳ７０８）。これにより、当該タグＩＤによって識別されるＲＦＩＤタグが、「ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態」になる。
【０２８３】
その後、リード／ライト処理部６５２は、ＤＡＴＡ＿ＲＥＡＤコマンドに対して応答されたリードデータをＲＦＩＤタグ７００から受信すると（ステップＳ７０９，Ｙｅｓ）、同じタグＩＤを指定して、応答制御情報の書き込み命令を送信する（ステップＳ７１０）。これにより、このタグＩＤで識別されるＲＦＩＤタグ７００は、タグ探索コマンドに対して応答済みであると認識される。
【０２８４】
そして、リード／ライト処理部６５２は、書き込み領域に保存されているライトサイズが４バイトより大きかった場合には（ステップＳ７１１，Ｙｅｓ）、リード／ライト処理部６５２は、書き込み領域に保存されたライトアドレスと、ライトデータの先頭４バイトとを、それぞれＷＲＩＴＥ４ＢＹＴＥコマンドに設定し（ステップＳ７１２およびＳ７１３）、ライトデータの５バイト目以降の残りのデータを、内部メモリの所定の箇所に定義された残データ領域に保存する（ステップＳ７１４）。
【０２８５】
そして、リード／ライト処理部６５２は、書き込み領域に保存されているライトアドレスを４バイトだけシフトし（ステップＳ７１５）、また、書き込み領域に保存されているライトサイズから４バイトを減算する（ステップＳ７１６）。
【０２８６】
さらに、リード／ライト処理部６５２は、ＷＲＩＴＥ４ＢＹＴＥコマンドに設定しきれなかったライトデータの一部が残っていることを示すために、領域分割フラグをＯＮにした後に（ステップＳ７１７）、ＷＲＩＴＥ４ＢＹＴＥコマンドのリトライ送信を制御するための失敗回数にゼロを設定する（ステップＳ７１８）。
【０２８７】
一方、リード／ライト処理部６５２は、書き込み領域に保存されたライトサイズが４バイト以下であった場合には（ステップＳ７１１，Ｎｏ）、書き込み領域に保存されたライトアドレスと、ライトデータとを、それぞれＷＲＩＴＥ４ＢＹＴＥコマンドに設定し（ステップＳ７１９およびＳ７２０）、さらに、ライトデータの全部をＷＲＩＴＥ４ＢＹＴＥコマンドに設定したことを示すために、領域分割フラグをＯＦＦにした後に（ステップＳ７２１）、失敗回数にゼロを設定する（ステップＳ７１８）。
【０２８８】
このようにして、ＷＲＩＴＥ４ＢＹＴＥコマンドにライトアドレスを設定した後に、リード／ライト処理部６５２は、１タグ応答で応答されたタグＩＤを指定して、ＷＲＩＴＥ４ＢＹＴＥコマンドを送信する（ステップＳ７２２）。
【０２８９】
そして、リード／ライト処理部６５２は、ＷＲＩＴＥ４ＢＹＴＥコマンドに対する応答としてＲＦＩＤタグ７００から送信されたライト結果を受信すると（ステップＳ７２３，Ｙｅｓ）、応答されたライト結果とタグＩＤとを対応付けて記憶部２４０に記憶し、その後、領域分割フラグがＯＮであるか否かを確認する。
【０２９０】
ここで、領域分割フラグがＯＮでなかった場合（ステップＳ７２４，Ｎｏ）や、領域分割フラグがＯＮであっても（ステップＳ７２４，Ｙｅｓ）、書き込み領域に保存されているライトサイズがゼロであった場合には（ステップＳ７２５，Ｙｅｓ）、リード／ライト処理部６５２は、ホストコンピュータ５００から送信されたライト指示の対象となるライトデータが全てライトされたと判断し、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する（ステップＳ７２６）。
【０２９１】
一方、領域分割フラグがＯＮであり（ステップＳ７２４，Ｙｅｓ）、かつ、書き込み領域に保存されているライトサイズがゼロでなかった場合には（ステップＳ７２５，Ｎｏ）、リード／ライト処理部６５２は、ホストコンピュータ５００から送信されたライト指示の対象となるライトデータがまだ全てライトされていないと判断し、残データ領域に保存されたデータを書き込み領域に設定し（ステップＳ７２７）、ステップＳ７１１に戻って、以降の処理を継続する。
【０２９２】
また、リード／ライト処理部６５２は、ＷＲＩＴＥ４ＢＹＴＥコマンドに対する応答として、所定の時間を経過しても、ＲＦＩＤタグ７００からライト結果を受信できなかった場合には（ステップＳ７２３，Ｎｏ）、失敗回数に１を加算する（ステップＳ７２８）。
【０２９３】
ここで、失敗回数がＭ回（例えば、２回など）未満であった場合には（ステップＳ７２９，Ｙｅｓ）、リード／ライト処理部６５２は、ステップＳ７２２に戻って、ＷＲＩＴＥ４ＢＹＴＥコマンドのリトライ送信を行い、一方、失敗回数がＭ回以上であった場合には（ステップＳ７２９，Ｎｏ）、ＳＵＣＣＥＳＳコマンドを生成し、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信する（ステップＳ７２６）。
【０２９４】
また、ステップＳ７０４において、所定の時間が経過しても、タグ探索コマンドに対するＲＦＩＤタグ７００からの応答を電波インタフェース部２２０が受信しなかった場合には（ステップＳ７０４，Ｎｏ）、リード／ライト処理部６５２は、無応答であると判断する。
【０２９５】
また、タグ探索処理部２５１は、リーダライタ６００からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したＮ回目の無応答でなかった場合には（ステップＳ７３０，Ｎｏ）、ＳＵＣＣＥＳＳコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信した後に（ステップＳ７３１）、ステップＳ７０４に戻って、以降の処理を継続する。
【０２９６】
一方、連続したＮ回目の無応答であった場合には（ステップＳ７３０，Ｙｅｓ）、タグ探索処理部２５１は、交信範囲内に存在する全てのＲＦＩＤタグ７００から応答が行われたと判断し、ＩＮＩＴＩＡＬＩＺＥコマンドを生成して、交信範囲内に存在するＲＦＩＤタグ７００に向けて送信するとともに（ステップＳ７３２）、記憶部２４０に記憶されているタグＩＤおよびライト結果を、検出したタグＩＤおよび書き込み結果として、ホストコンピュータ５００に対して送信し（ステップＳ７３３）、処理を終了する。
【０２９７】
続いて、本実施例２に係るＲＦＩＤタグ７００の処理手順について説明する。図２４は、本実施例２に係るＲＦＩＤタグ７００の処理手順を示すフローチャートである。同図に示すように、ＲＦＩＤタグ７００は、アンテナ３１０がリーダライタ６００から送信された電波を受信すると、整流部３３０が、電波を整流して電力を生成し、制御部３５０および記憶部７４０に供給する。これにより、ＲＦＩＤタグ７００は「ＲＥＡＤＹ状態」となる（ステップＳ８０１）。
【０２９８】
そして、応答制御部７５１が、電波インタフェース部３２０を介して、リーダライタ６００から送信された探索コマンドを受信すると（ステップＳ８０２，Ｙｅｓ）、探索コマンドに含まれている応答制御情報と、記憶部７４０に記憶されている応答制御情報とを比較し、同じであった場合には（ステップＳ８０３，Ｙｅｓ）、当該探索コマンドに対してはすでに応答済みであると判断し、以降の処理を行わず、ステップＳ８０２に戻って、次に送信される探索コマンドを待つ。
【０２９９】
一方、応答制御情報が異なっていた場合には（ステップＳ８０３，Ｎｏ）、ＲＦＩＤタグ７００は「ＩＤ状態」となり（ステップＳ８０４）、応答制御部７５１が、衝突回避処理を行い（ステップＳ８０５）、その結果に応じて、リーダライタ６００に対してタグＩＤを送信する（ステップＳ８０６）。
【０３００】
そして、電波インタフェース部３２０を介して、リーダライタ６００から送信されたコマンドを受信すると（ステップＳ８０７，Ｙｅｓ）、応答制御部７５１が、受信したコマンドの種類を確認する。
【０３０１】
ここで、受信したコマンドがＤＡＴＡ＿ＲＥＡＤコマンドであった場合には、ＲＦＩＤタグ７００は「ＤＡＴＡ＿ＥＸＣＨＡＮＧＥ状態」となり（ステップＳ８０８）、応答制御部７５１によって制御されたデータ処理部３５２が、当該ＤＡＴＡ＿ＲＥＡＤコマンドに含まれているリードアドレスに基づいて記憶部７４０からデータを読み出し（ステップＳ８０９）、読み出したデータを、電波インタフェース部３２０を介して、リーダライタ６００に対して送信する（ステップＳ８１０）。
【０３０２】
また、応答制御部７５１は、受信したコマンドがＳＵＣＣＥＳＳコマンドであった場合には（ステップＳ８１１）、ステップＳ８０６に戻って、再度タグＩＤを送信したうえで以降の処理を継続し、ＦＡＩＬコマンドであった場合には（ステップＳ８１２）、ステップＳ８０５に戻って、再度衝突回避処理を行ったうえで以降の処理を継続し、ＩＮＩＴＩＡＬＩＺＥコマンドであった場合には（ステップＳ８１３）、ステップＳ８０１に戻って、ＲＦＩＤタグ７００の各種設定を初期状態にリセットし、次の探索コマンドが送信されるのを待つ。
【０３０３】
その後、電波インタフェース部３２０を介して、リーダライタ６００から送信された応答制御情報を受信すると（ステップＳ８１４，Ｙｅｓ）、応答制御部７５１が、応答制御情報を記憶部７４０に書き込む（ステップＳ８１５）。
【０３０４】
そして、電波インタフェース部３２０を介して、リーダライタ６００から送信されたコマンドをさらに受信すると（ステップＳ８１６，Ｙｅｓ）、応答制御部７５１が、受信したコマンドの種類を確認し、ＤＡＴＡ＿ＲＥＡＤコマンドであった場合には、当該ＤＡＴＡ＿ＲＥＡＤコマンドに含まれているリードアドレスに基づいて、記憶部７４０の指定されたアドレスからデータを読み出し（ステップＳ８１７）、読み出したデータを、電波インタフェース部３２０を介して、リーダライタ６００に対して送信する（ステップＳ８１８）。
【０３０５】
また、応答制御部７５１は、受信したコマンドがＷＲＩＴＥ４ＢＹＴＥコマンドであった場合には、当該ＷＲＩＴＥ４ＢＹＴＥコマンドに含まれているライトアドレスおよびライトデータに基づいて、記憶部７４０の指定されたアドレスにデータを書き込み（ステップＳ８１９）、リーダライタ６００に対してライト結果を送信する（ステップＳ８２０）。
【０３０６】
また、応答制御部７５１は、受信されたコマンドがＳＵＣＣＥＳＳコマンドであった場合には（ステップＳ８２１）、ステップＳ８１６に戻って、次のコマンドが受信されるのを待ち、ＩＮＩＴＩＡＬＩＺＥコマンドであった場合には（ステップＳ８２２）、ステップＳ８０１に戻って、ＲＦＩＤタグ７００の各種設定を初期状態にリセットし、次の探索コマンドが送信されるのを待つ。
【０３０７】
上述してきたように、本実施例２では、ホストコンピュータ５００において、コマンド生成部５３１が、リード指示やライト指示を含めたタグ探索指示を生成し、アプリケーション部１３２が、生成されたタグ探索指示をリーダライタ６００に対して送信し、リーダライタ６００において、タグ探索処理部２５１が、タグ探索指示をホストコンピュータ５００から受信した場合に、ＲＦＩＤタグ７００を一意に識別するタグＩＤの送信を要求するタグ探索コマンドを送信し、リード／ライト処理部６５２が、タグ探索コマンドに対する応答としてＲＦＩＤタグ７００から送信されたタグＩＤを受信した場合に、当該タグＩＤにより識別されるＲＦＩＤタグ７００に対して、タグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信する。
【０３０８】
これにより、従来、ホストコンピュータ５００によってＲＦＩＤタグ７００それぞれに対して１つずつ行われていたリード指示やライト指示を、１回のタグ探索指示と同時にまとめて行うことが可能になり、ホストコンピュータ５００とリーダライタ６００との間でやり取りされるデータの量を削減することができるとともに、ＲＦＩＤタグ７００に対するデータのリードやライトを行う際に生じる、ホストコンピュータ５００とリーダライタ６００との間の通信におけるオーバーヘッドを低減することができる。
【０３０９】
また、本実施例２では、ホストコンピュータ５００により送信されるタグ探索指示には、リードやライトを行うデータのリードサイズ、ライトサイズが含まれており、リーダライタ６００において、リード／ライト処理部６５２が、タグ探索指示に含まれたリードサイズやライトサイズが、リードコマンドやライトコマンドにより要求可能なデータの上限サイズを超えていた場合には、当該上限サイズ以下となるサイズを、リードコマンドやライトコマンドにより要求するデータのサイズとして設定し、設定したサイズごとに分割された複数のデータのリードコマンドやライトコマンドを送信する。
【０３１０】
これにより、リードやライトを行うデータがリードコマンドやライトコマンドにより要求可能なデータの上限サイズを超えていた場合でも、リード指示および／またはライト指示をまとめて行うことが可能になり、ＲＦＩＤタグ７００に対するデータのリードやライトを行う際に生じる、ホストコンピュータ５００とリーダライタ６００との間の通信におけるオーバーヘッドをさらに低減することができる。
【実施例３】
【０３１１】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてもよいものである。そこで、以下では実施例３として、本発明に含まれる他の実施例を説明する。
【０３１２】
例えば、上記実施例では、図４、５、１５および１６に示したように、リード指示を含んだタグ探索指示と、ライト指示を含んだタグ探索指示とをそれぞれ用いる場合について説明したが、１つのタグ探索指示に含めるようにしてもよい。図２５は、リード指示およびライト指示を含んだタグ探索指示の一例を示す図である。なお、以下では、実施例２において、リード指示およびライト指示を１つのタグ探索指示に含めた場合について説明する。
【０３１３】
例えば、ホストコンピュータ５００のコマンド生成部５３１が、同図に示すように、リード指示およびライト指示を含んだタグ探索指示であることを示す制御コマンド９１（Ｉｎｖｅｎｔｏｒｙ＿ｒｗ）と、所定のパラメータ９２と、応答制御情報９３と、リード指示情報９４と、ライト指示情報９５とを含んだタグ探索指示を生成する。そして、これを受信したリーダライタ６００のタグ探索処理部２５１が、リード指示情報９４とライト指示情報９５とを、それぞれ、読み出し領域と書き込み領域とに保存した後に、リード／ライト処理部６５２に対して、リードコマンドおよびライトコマンドの送信を指示する。
【０３１４】
これにより、ＲＦＩＤタグ７００に対して、データのリードおよびライトを同時に行う場合でも、リード指示およびライト指示をまとめて行うことが可能になり、ＲＦＩＤタグ７００に対するデータのリードやライトを行う際に生じる、ホストコンピュータ５００とリーダライタ６００との間の通信におけるオーバーヘッドをさらに低減することができる。
【０３１５】
また、例えば、１つの探索指示情報に、複数のリード指示やライト指示を含めるようにしてもよい。図２６は、リード指示またはライト指示を複数含んだタグ探索指示の一例を示す図である。同図に示すように、このタグ探索指示には、リード指示またはライト指示を複数含んだタグ探索指示であることを示す制御コマンドＡ１（Ｉｎｖｅｎｔｏｒｙ＿ｒｗｎ）と、所定のパラメータＡ２と、応答制御情報Ａ３と、領域数Ａ４と、アクセス指示情報Ａ５1〜Ａ５nとが含まれている。
【０３１６】
ここで、領域数Ａ４は、アクセス指示情報Ａ５1〜Ａ５nに設定されているリード指示またはライト指示の数である。また、アクセス指示情報Ａ５1〜Ａ５nは、ｎ個のリード指示またはライト指示を設定するための領域であり、それぞれ、読み書きフラグと、アドレスと、サイズと、ライトデータとを含んでいる。読み書きフラグには、アクセス指示情報Ａ５1〜Ａ５nに設定されているアクセス指示がリード指示であるかライト指示であるかを示す２値の値（例えば、「０」と「１」）が設定される。そして、アクセス指示がリード指示である場合には、アドレスには、リードアドレスが設定され、サイズには、リードサイズが設定され、ライトデータには、何も設定されない。一方、アクセス指示がライト指示である場合には、アドレスには、ライトアドレスが設定され、サイズには、ライトサイズが設定され、ライトデータには、ライト対象のデータが設定される。
【０３１７】
例えば、ホストコンピュータ５００のコマンド生成部５３１が、同図に示すような、リード指示またはライト指示を複数含んだタグ探索指示を生成する。そして、これを受信したリーダライタ６００のタグ探索処理部２５１が、領域数Ａ４に設定されている数だけ、アクセス指示情報Ａ５1からＡ５nに向けて順番にアクセス指示を取得する。そして、タグ探索処理部２５１は、取得したアクセス指示ごとに、読み書きフラグに基づいて、当該アクセス指示がリード指示であるか、ライト指示であるかを判別し、判別結果に基づいて、リード指示またはライト指示をそれぞれ読み出し領域または書き込み領域に保存し、その後、リード／ライト処理部６５２に対して、リードコマンドまたはライトコマンドの送信を指示する。
【０３１８】
これにより、ＲＦＩＤタグ７００の不連続な記憶領域に格納された複数のデータをそれぞれリードする場合や、ＲＦＩＤタグ７００の不連続な記憶領域に複数のデータをそれぞれライトする場合でも、リード指示やライト指示をまとめて行うことが可能になり、ＲＦＩＤタグ７００に対するデータのリードやライトを行う際に生じる、ホストコンピュータ５００とリーダライタ６００との間の通信におけるオーバーヘッドをさらに低減することができる。
【０３１９】
また、上記実施例では、リーダライタについて説明したが、リーダライタが有する構成をソフトウェアによって実現することで、同様の機能を有するリーダライタ制御プログラムを得ることができる。そこで、このリーダライタ制御プログラムを実行するコンピュータについて説明する。
【０３２０】
図２７は、リーダライタ制御プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ８００は、ＲＡＭ（Random Access Memory）８１０と、ＣＰＵ（Central Processing Unit）８２０と、ＲＯＭ（Read Only Memory）８３０と、ＮＷインタフェース８４０と、電波インタフェース８５０とを有する。
【０３２１】
ＲＡＭ８１０は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、ＣＰＵ８２０は、ＲＡＭ８１０からプログラムを読み出して実行する中央処理装置であり、ＲＯＭ８３０は、プログラムやデータを格納する不揮発性のメモリである。
【０３２２】
ＮＷインタフェース８４０は、コンピュータ８００をネットワーク経由で他のコンピュータに接続するためのインタフェースであり、電波インタフェース８５０は、アンテナを介して電波通信を行うためのインタフェースである。
【０３２３】
そして、このコンピュータ８００において実行されるリーダライタ制御プログラム８１１は、あらかじめＲＯＭ８３０にインストールされる。あるいは、このリーダライタ制御プログラム８１１は、ＮＷインタフェース８４０を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ８００にインストールされる。
【０３２４】
そして、インストールされたリーダライタ制御プログラム８１１は、ＲＯＭ８３０に記憶され、ＲＡＭ８１０に読み出されてＣＰＵ８２０によってリーダライタ制御プロセス８２１として実行される。
【０３２５】
また、上記実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【０３２６】
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０３２７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０３２８】
さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【産業上の利用可能性】
【０３２９】
以上のように、本発明に係るリーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法は、所定のデータを記憶するＲＦＩＤタグに対してデータのリードおよび／またはライトを行うリーダライタ装置と、ＲＦＩＤタグに対するデータのリード指示および／またはライト指示をリーダライタ装置に対して行うホスト装置とから構成されるデータアクセス制御システムに用いた場合に有用であり、特に、ＲＦＩＤタグに対するデータのリードおよび／またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減することが要求される場合に適している。
【図面の簡単な説明】
【０３３０】
【図１】本実施例１に係るデータアクセス制御方法の概念を説明するための説明図である。
【図２】本実施例１に係るＲＦＩＤシステムの構成を示す機能ブロック図である。
【図３】本実施例１に係るリード指示を含んだタグ探索指示の一例を示す図である。
【図４】本実施例１に係るライト指示を含んだタグ探索指示の一例を示す図である。
【図５】本実施例１に係るリードコマンドの一例を示す図である。
【図６】本実施例１に係るライトコマンドの一例を示す図である。
【図７】本実施例１に係るホストコンピュータの処理手順を示すフローチャートである。
【図８】本実施例１に係るリーダライタによるデータリード処理の処理手順を示すフローチャート（１）である。
【図９】本実施例１に係るリーダライタによるデータリード処理の処理手順を示すフローチャート（２）である。
【図１０】本実施例１に係るリーダライタによるデータライト処理の処理手順を示すフローチャート（１）である。
【図１１】本実施例１に係るリーダライタによるデータライト処理の処理手順を示すフローチャート（２）である。
【図１２】本実施例１に係るＲＦＩＤタグの処理手順を示すフローチャートである。
【図１３】本実施例２に係るデータアクセス制御方法の概念を説明するための説明図である。
【図１４】本実施例２に係るＲＦＩＤシステムの構成を示す機能ブロック図である。
【図１５】本実施例２に係るリード指示を含んだタグ探索指示の一例を示す図である。
【図１６】本実施例２に係るライト指示を含んだタグ探索指示の一例を示す図である。
【図１７】本実施例２に係るリードコマンドの一例を示す図である。
【図１８】本実施例２に係るライトコマンドの一例を示す図である。
【図１９】本実施例２に係るホストコンピュータの処理手順を示すフローチャートである。
【図２０】本実施例２に係るリーダライタによるデータリード処理の処理手順を示すフローチャート（１）である。
【図２１】本実施例２に係るリーダライタによるデータリード処理の処理手順を示すフローチャート（２）である。
【図２２】本実施例２に係るリーダライタによるデータライト処理の処理手順を示すフローチャート（１）である。
【図２３】本実施例２に係るリーダライタによるデータライト処理の処理手順を示すフローチャート（２）である。
【図２４】本実施例２に係るＲＦＩＤタグの処理手順を示すフローチャートである。
【図２５】リード指示およびライト指示を含んだタグ探索指示の一例を示す図である。
【図２６】リード指示またはライト指示を複数含んだタグ探索指示の一例を示す図である。
【図２７】リーダライタ制御プログラムを実行するコンピュータの構成を示す機能ブロック図である。
【図２８】従来のデータアクセス制御方法を説明するための説明図である。
【符号の説明】
【０３３１】
１０，１００，５００    ホストコンピュータ
１１０    ＮＷインタフェース部
１２０    記憶部
１３０    制御部
１３１，５３１    コマンド生成部
１３２    アプリケーション部
２０，２００，６００    リーダライタ
２１，２１０    アンテナ
２２０    電波インタフェース部
２３０    ＮＷインタフェース部
２４０    記憶部
２５０    制御部
２５１    タグ探索処理部
２５２，６５２    リード／ライト処理部
３０，３００，７００    ＲＦＩＤタグ
３１，３１０    アンテナ
３２０    電波インタフェース部
３３０    整流部
３４０，７４０    記憶部
３５０    制御部
３５１，７５１    応答制御部
３５２    データ処理部
４０，４００    ネットワーク
８００    コンピュータ
８１０    ＲＡＭ
８１１    リーダライタ制御プログラム
８２０    ＣＰＵ
８２１    リーダライタ制御プロセス
８３０    ＲＯＭ
８４０    ＮＷインタフェース
８５０    電波インタフェース
５１，５４，６１，６４，９１，Ａ１    制御コマンド
５２，５５，６２，６５，９２，Ａ２    パラメータ
５３，５７，９４    リード指示情報
６３，６７，９５    ライト指示情報
５６，６６，９３，Ａ３    応答制御情報
Ａ４    領域数
Ａ５1〜Ａ５n    アクセス指示情報
７１，７４，８１，８５    アクセスコマンド
７２，７５，８２，８６    タグＩＤ
７３，７６    リードアドレス
８３，８７    ライトアドレス
８４，８８    ライトデータ
【図１】
2008146184.tif 000003
【図２】
2008146184.tif 000004
【図３】
2008146184.tif 000005
【図４】
2008146184.tif 000006
【図５】
2008146184.tif 000007
【図６】
2008146184.tif 000008
【図７】
2008146184.tif 000009
【図８】
2008146184.tif 000010
【図９】
2008146184.tif 000011
【図１０】
2008146184.tif 000012
【図１１】
2008146184.tif 000013
【図１２】
2008146184.tif 000014
【図１３】
2008146184.tif 000015
【図１４】
2008146184.tif 000016
【図１５】
2008146184.tif 000017
【図１６】
2008146184.tif 000018
【図１７】
2008146184.tif 000019
【図１８】
2008146184.tif 000020
【図１９】
2008146184.tif 000021
【図２０】
2008146184.tif 000022
【図２１】
2008146184.tif 000023
【図２２】
2008146184.tif 000024
【図２３】
2008146184.tif 000025
【図２４】
2008146184.tif 000026
【図２５】
2008146184.tif 000027
【図２６】
2008146184.tif 000028
【図２７】
2008146184.tif 000029
【図２８】
2008146184.tif 000030