JP2008146184A - リーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法 - Google Patents

リーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法 Download PDF

Info

Publication number
JP2008146184A
JP2008146184A JP2006329958A JP2006329958A JP2008146184A JP 2008146184 A JP2008146184 A JP 2008146184A JP 2006329958 A JP2006329958 A JP 2006329958A JP 2006329958 A JP2006329958 A JP 2006329958A JP 2008146184 A JP2008146184 A JP 2008146184A
Authority
JP
Japan
Prior art keywords
read
tag
write
data
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006329958A
Other languages
English (en)
Inventor
Hiroyasu Sugano
博靖 菅野
Masahiro Matsuda
正宏 松田
Yoshiaki Tanaka
良紀 田中
Toru Maniwa
透 馬庭
Terunao Ninomiya
照尚 二宮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006329958A priority Critical patent/JP2008146184A/ja
Priority to EP07121916A priority patent/EP1930839A3/en
Priority to US11/947,243 priority patent/US20080136599A1/en
Priority to KR1020070126251A priority patent/KR20080052474A/ko
Priority to CN2007101970772A priority patent/CN101197001B/zh
Publication of JP2008146184A publication Critical patent/JP2008146184A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/0008General problems related to the reading of electronic memory record carriers, independent of its reading method, e.g. power transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns

Abstract

【課題】RFIDタグに対するデータのリードおよび/またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減する。
【解決手段】ホストコンピュータ100が、リード指示やライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ200に対して送信し、リーダライタ200が、タグ探索指示をホストコンピュータ100から受信した場合に、RFIDタグ300を一意に識別するタグIDの送信を要求するタグ探索コマンドを送信し、送信したタグ探索コマンドに対する応答としてRFIDタグ300から送信されたタグIDを受信した場合に、当該タグIDにより識別されるRFIDタグ300に対して、タグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信する。
【選択図】 図1

Description

この発明は、ホスト装置からの指示に応じて、RFID(Radio Frequency Identification)タグに対するデータのリードおよび/またはライトを行うリーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法に関し、特に、RFIDタグに対するデータのリードおよび/またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減することができるリーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法に関するものである。
近年、RFIDタグは、その実用化が進み、物流分野における商品管理や各種サービス分野における個人認証など、さまざまな用途で利用されている。RFIDタグは、種々のデータを記憶することが可能であり、タグごとに割り振られたタグIDによってユニークに識別される。かかるRFIDタグは、RFタグ、IC(Integrated Circuit)タグ、無線タグなどと呼ばれることもある。
RFIDタグに対するデータのリードおよびライトは、専用のリーダライタを用いて行われる。このリーダライタは、RFIDタグとの間で電波通信を行うことによって、RFIDタグに記憶されたデータのリードや、RFIDタグへのデータのライトを行う装置である。リーダライタとRFIDタグとの間で行われる電波通信に関する通信仕様は、ISO(International Organization for Standardization:国際標準化機構)/IEC(International Electrotechnical Commission:国際電気標準会議)において標準化が行われている(例えば、非特許文献1および2を参照)。
ここで、RFIDタグに対するデータのアクセス制御方法について簡単に説明する。図28は、従来のデータアクセス制御方法を説明するための説明図である。
同図は、リーダライタ20を制御するホストコンピュータ10と、リーダライタ20と、RFIDタグ30とから構成される一般的なRFIDシステムを示している。このRFIDシステムにおいて、ホストコンピュータ10とリーダライタ20とは、ネットワーク40を介して互いに通信を行い、リーダライタ20とRFIDタグ30とは、それぞれが有するアンテナ21および31から電波を送受信することによって互いに通信を行う。なお、ここでは1台のRFIDタグ30のみを示しているが、このRFIDシステムは、複数のRFIDタグ30から構成される。
まず、RFIDタグに対するデータのリードおよびライトに先立ち、ホストコンピュータ10が、RFIDタグの検出を指示するタグ探索指示をリーダライタ20に対して送信する(同図に示す(1))。タグ探索指示を受信したリーダライタ20は、アンテナ21の交信範囲内に存在するRFIDタグ30に向けて、タグIDの送信を要求するタグ探索コマンドを送信する(同図に示す(2))。このタグ探索コマンドを受信したRFIDタグ30は、その応答として、自身のタグIDをリーダライタ20に対して送信する(同図に示す(3))。
リーダライタ20は、アンテナ21の交信範囲内に存在する全てのRFIDタグ30からタグIDを受信すると、受信したタグIDを全てまとめて、ホストコンピュータ10に送信する(同図に示す(4))。そして、ホストコンピュータ10は、リーダライタ20から探索結果を受信すると、探索結果に含まれているタグIDに基づいて、RFIDタグごとにリード指示やライト指示を送信する(同図に示す(5)および(6))。
リーダライタ20は、リード指示を受信した場合には、当該リード指示で指定されたRFIDタグ30に対して、データの読み出しを要求するリードコマンドを送信し(同図に示す(7))、ライト指示を受信した場合には、当該ライト指示で指定されたRFIDタグ30に対して、データの書き込みを要求するライトコマンドを送信する(同図に示す(8))。
リードコマンドを受信したRFIDタグ30は、受信したリードコマンドに基づいて、自身に備えられた記憶装置(メモリなど)からデータを読み出し、読み出したデータ(リードデータ)をリーダライタ20に対して送信する(同図に示す(9))。また、ライトコマンドを受信したRFIDタグ30は、受信したライトコマンドに基づいて、自身に備えられた記憶装置にデータを書き込み、書き込みが正常に行えたか否かを示すライト結果をリーダライタ20に対して送信する(同図に示す(10))。
そして、リーダライタ20は、リードデータを受信した場合には、当該リードデータをホストコンピュータ10に対して送信し(同図に示す(11))、ライト結果を受信した場合には、当該ライト結果をホストコンピュータ10に対して送信する(同図に示す(12))。
このように、従来のデータアクセス制御方法では、まず、リーダライタの交信範囲内に存在する全てのRFIDタグ30を検出した後に、検出したRFIDタグに対して、1つずつホストコンピュータからリード指示やライト指示を行うことによって、RFIDタグに対するデータのリードやライトが行われる。
ISO/IEC 18000−6:2004(E)(タイプAおよびB) ISO/IEC_CD 18000−6C(タイプC)
しかしながら、リーダライタの交信範囲内に存在する全てのRFIDタグに対して一斉にデータのリードまたはライトを行う場合には、RFIDタグそれぞれに対して1つずつリード指示やライト指示を行っていたのでは、非常に効率が悪い。
しかも、この場合、リード指示やライト指示にともなって、ホストコンピュータとリーダライタとの間で多数のデータのやり取りが発生することになり、その結果、ホストコンピュータとリーダライタとの間で行われる通信におけるオーバーヘッドが増大するという問題がある。この問題は、RFIDシステムが多数のRFIDタグから構成されていた場合、特に顕著になる。
そのため、RFIDタグに対するデータのリードおよび/またはライトを行う際に、いかにして、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減するかが、極めて重要な課題となっている。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、RFIDタグに対するデータのリードおよび/またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減することができるリーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、ホスト装置からの指示に応じて、RFIDタグに対するデータのリードおよび/またはライトを行うリーダライタ装置であって、RFIDタグに対するデータのリード指示および/またはライト指示を含んだタグ探索指示を前記ホスト装置から受信するタグ探索指示受信手段と、前記タグ探索指示受信手段によりタグ探索指示が受信された場合に、RFIDタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手段と、前記タグ識別情報要求手段により送信された送信要求に対する応答としてRFIDタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるRFIDタグに対して、前記リード指示および/または前記ライト指示に基づいて、データのリード要求および/またはライト要求を送信するデータ処理要求手段と、を備えたことを特徴とする。
また、本発明は、上記の発明において、前記タグ探索指示には、リードおよび/またはライトを行うデータのリードサイズおよび/またはライトサイズが含まれており、前記データ処理要求手段は、前記タグ探索指示に含まれたリードサイズおよび/またはライトサイズが前記リード要求および/または前記ライト要求により要求可能なデータの上限サイズを超えていた場合には、当該上限サイズ以下となるサイズを、リード要求および/ライト要求により要求するデータのサイズとして設定し、設定したサイズごとに分割された複数のデータのリード要求および/またはライト要求を送信することを特徴とする。
また、本発明は、上記の発明において、前記タグ探索指示には、リードおよび/またはライトを行うデータのリード先および/またはライト先となるRFIDタグの記憶領域を示す複数のアドレス情報が含まれており、前記データ処理要求手段は、前記タグ探索指示に含まれたアドレス情報ごとに前記リード要求および/またはライト要求を送信することを特徴とする。
また、本発明は、ホスト装置からの指示に応じて、RFIDタグに対するデータのリードおよび/またはライトを行うリーダライタ装置を制御するリーダライタ制御プログラムであって、RFIDタグに対するデータのリード指示および/またはライト指示を含んだタグ探索指示を前記ホスト装置から受信するタグ探索指示受信手順と、前記タグ探索指示受信手順によりタグ探索指示が受信された場合に、RFIDタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手順と、前記タグ識別情報要求手順により送信された送信要求に対する応答としてRFIDタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるRFIDタグに対して、前記リード指示および/または前記ライト指示に基づいて、データのリード要求および/またはライト要求を送信するデータ処理要求手順と、をコンピュータに実行させることを特徴とする。
また、本発明は、上記の発明において、所定のデータを記憶するRFIDタグに対してデータのリードおよび/またはライトを行うリーダライタ装置と、RFIDタグに対するデータのリード指示および/またはライト指示をリーダライタ装置に対して行うホスト装置とから構成されるデータアクセス制御システムであって、前記ホスト装置は、前記リード指示および/またはライト指示を含んだタグ探索指示を生成するタグ探索指示生成手段と、前記タグ探索指示生成手段により生成されたタグ探索指示を前記リーダライタ装置に対して送信するタグ探索指示送信手段を備え、前記リーダライタ装置は、前記タグ探索指示を前記ホスト装置から受信するタグ探索指示受信手段と、前記タグ探索指示受信手段によりタグ探索指示が受信された場合に、RFIDタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手段と、前記タグ識別情報要求手段により送信された送信要求に対する応答としてRFIDタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるRFIDタグに対して、前記リード指示および/または前記ライト指示に基づいて、データのリード要求および/またはライト要求を送信するデータ処理要求手段と、を備えたことを特徴とする。
また、本発明は、上記の発明において、ホスト装置からの指示に応じて、RFIDタグに対するデータのリードおよび/またはライトを行うリーダライタ装置を制御するデータアクセス制御方法であって、前記ホスト装置が、前記リード指示および/またはライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示を前記リーダライタ装置に対して送信するタグ探索指示送信工程と、前記リーダライタ装置が、前記タグ探索指示を前記ホスト装置から受信した場合に、RFIDタグを一意に識別するタグ識別情報の送信要求を送信し、送信した送信要求に対する応答としてRFIDタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるRFIDタグに対して、前記リード指示および/またはライト指示に基づいて、データのリード要求および/またはライト要求を送信するデータ処理要求工程と、を含んだことを特徴とする。
本発明によれば、ホスト装置が、リード指示および/またはライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ装置に対して送信し、リーダライタ装置が、タグ探索指示をホスト装置から受信した場合に、RFIDタグを一意に識別するタグ識別情報の送信要求を送信し、送信した送信要求に対する応答としてRFIDタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるRFIDタグに対して、タグ探索指示に含まれていたリード指示および/またはライト指示に基づいて、データのリード要求および/またはライト要求を送信する。これにより、従来、ホスト装置によってRFIDタグそれぞれに対して1つずつ行われていたリード指示やライト指示を、1回のタグ探索指示と同時にまとめて行うことが可能になり、ホスト装置とリーダライタ装置との間でやり取りされるデータの量を削減することができるとともに、RFIDタグに対するデータのリードおよび/またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減することができるという効果を奏する。
また、本発明によれば、ホスト装置により送信されるタグ探索指示には、リードおよび/またはライトを行うデータのリードサイズおよび/またはライトサイズが含まれており、リーダライタ装置は、タグ探索指示に含まれたリードサイズおよび/またはライトサイズが、リード要求および/またはライト要求により要求可能なデータの上限サイズを超えていた場合には、当該上限サイズ以下となるサイズを、リード要求および/またはライト要求により要求するデータのサイズとして設定し、設定したサイズごとに分割された複数のデータのリード要求および/またはライト要求を送信する。これにより、リードやライトを行うデータがリード要求やライト要求により要求可能なデータの上限サイズを超えていた場合でも、リード指示および/またはライト指示をまとめて行うことが可能になり、RFIDタグに対するデータのリードおよび/またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドをさらに低減することができるという効果を奏する。
また、本発明によれば、ホスト装置により送信されるタグ探索指示には、リードおよび/またはライトを行うデータのリード先および/またはライト先となるRFIDタグの記憶領域を示す複数のアドレス情報が含まれており、リーダライタ装置は、タグ探索指示に含まれたアドレス情報ごとにリード要求および/またはライト要求を送信する。これにより、RFIDタグの不連続な記憶領域に格納された複数のデータをそれぞれリードする場合や、RFIDタグの不連続な記憶領域に複数のデータをそれぞれライトする場合でも、リード指示および/またはライト指示をまとめて行うことが可能になり、RFIDタグに対するデータのリードおよび/またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドをさらに低減することができるという効果を奏する。
以下に添付図面を参照して、この発明に係るリーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法の好適な実施例を詳細に説明する。なお、以下に示す実施例では、ホストコンピュータと、リーダライタと、RFIDタグとから構成される一般的なRFIDシステムに本発明を適用した場合について説明する。
また、以下では実施例の具体性のため、リーダライタとRFIDタグ間の無線コマンドとしてISO/IEC 18000−6タイプBのコマンドを用いた場合について説明するが、本発明はこれに限定されるものではない。
まず、本実施例1に係るRFIDシステムにおけるRFIDタグに対するデータのアクセス方法の概念について説明する。図1は、本実施例1に係るデータアクセス制御方法の概念を説明するための説明図である。
同図は、リーダライタ200を制御するホストコンピュータ100と、リーダライタ200と、RFIDタグ300とから構成される一般的なRFIDシステムを示している。このRFIDシステムにおいて、ホストコンピュータ100とリーダライタ200とは、ネットワーク400を介して互いに通信を行い、リーダライタ200とRFIDタグ300とは、それぞれが有するアンテナ210および310から電波を送受信することによって互いに通信を行う。なお、ここでは1台のRFIDタグ300のみを示しているが、このRFIDシステムは、複数のRFIDタグ300から構成されていてもよい。また、リーダライタ200およびアンテナ210についても、同様に複数で構成されていてもよい。
このような構成のもと、本実施例1に係るデータアクセス方法では、従来、ホストコンピュータ100によってRFIDタグ300それぞれに対して1つずつ行われていたリード指示やライト指示を、1回のタグ探索指示と同時にまとめて行うことを特徴としている。
具体的には、同図に示すように、まず、ホストコンピュータ100が、リード指示やライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ200に対して送信する(同図に示す(1))。ここで送信されるタグ探索指示には、リードやライトを行うデータのリード先やライト先となるRFIDタグ300の記憶領域を示すアドレスや、リードやライトを行うデータのサイズなどが、リード指示またはライト指示として含まれている。
タグ探索指示を受信したリーダライタ200は、アンテナ210の交信範囲内に存在するRFIDタグ300に向けて、タグIDの送信を要求するタグ探索コマンドを送信する(同図に示す(2))。このタグ探索コマンドを受信したRFIDタグ300は、その探索コマンドに対する応答として、自身のタグIDをリーダライタ200に対して送信する(同図に示す(3))。
そして、リーダライタ200は、RFIDタグ300から送信されたタグIDを受信した場合には、当該タグIDにより識別されるRFIDタグ300に対して、ホストコンピュータ100から送信されたタグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信する(同図に示す(4)および(5))。
リードコマンドを受信したRFIDタグ300は、受信したリードコマンドに基づいて、自身に備えられた記憶装置(メモリなど)からデータを読み出し、読み出したデータ(リードデータ)をリーダライタ200に対して送信する(同図に示す(6))。また、ライトコマンドを受信したRFIDタグ300は、受信したライトコマンドに基づいて、自身に備えられた記憶装置にデータを書き込み、書き込みが正常に行えたか否かを示すライト結果をリーダライタ200に対して送信する(同図に示す(7))。
そして、リーダライタ200は、アンテナ210の交信範囲内に存在する全てのRFIDタグ300からデータ処理結果(リードデータおよびライト結果)を受信すると、受信したデータ処理結果とタグIDとを全てまとめて、ホストコンピュータ100に送信する(同図に示す(8))。
このように、本実施例1に係るデータアクセス制御方法では、ホストコンピュータ100が、リード指示やライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ200に対して送信し、リーダライタ200が、タグ探索指示をホストコンピュータ100から受信した場合に、RFIDタグ300を一意に識別するタグIDの送信を要求するタグ探索コマンドを送信し、送信したタグ探索コマンドに対する応答としてRFIDタグ300から送信されたタグIDを受信した場合に、当該タグIDにより識別されるRFIDタグ300に対して、タグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信するようにしている。
これにより、従来、ホストコンピュータ100によってRFIDタグ300それぞれに対して1つずつ行われていたリード指示やライト指示を、1回のタグ探索指示と同時にまとめて行うことが可能になり、ホストコンピュータ100とリーダライタ200との間でやり取りされるデータの量を削減することができるとともに、RFIDタグ300に対するデータのリードやライトを行う際に生じる、ホストコンピュータ100とリーダライタ200との間の通信におけるオーバーヘッドを低減することができる。
次に、本実施例1に係るRFIDシステムの構成について説明する。図2は、本実施例1に係るRFIDシステムの構成を示す機能ブロック図である。同図は、図1で示したRFIDシステムの構成を示している。同図に示すように、このRFIDシステムは、ホストコンピュータ100と、リーダライタ200と、RFIDタグ300とから構成される。
そして、ホストコンピュータ100とリーダライタ200とは、ネットワーク400を介して互いに通信を行い、リーダライタ200とRFIDタグ300とは、それぞれが有するアンテナ210および310から電波を送受信することによって互いに通信を行う。なお、ここでは、図1と同様に1台のリーダライタ200、1台のアンテナ210および1台のRFIDタグ300のみを示しているが、このRFIDシステムは、複数のリーダライタ200、複数のアンテナ210および複数のRFIDタグ300から構成されていてもよい。以下、各装置の構成について説明する。
最初に、ホストコンピュータ100の構成について説明する。ホストコンピュータ100は、NW(Network)インタフェース部110と、記憶部120と、制御部130とを有する。
NWインタフェース部110は、ネットワーク400を介してリーダライタ200との間でやり取りされるデータの送受信を制御する処理部である。例えば、NWインタフェース部110は、タグ探索指示をリーダライタ200に対して送信し、タグ探索指示に対する応答として送信されるリードデータやライト結果などのデータ処理結果をリーダライタ200から受信する。
記憶部120は、各種のデータやプログラムを記憶する不揮発性のメモリであり、特に本発明に関連するものとしては、RFIDタグ300に対するデータのリードおよびライトを行う際に用いられるリード領域情報やライト領域情報を記憶する。
ここで、リード領域情報とは、リードを行うデータのリード先となるRFIDタグ300の記憶領域を示すアドレスや、リードを行うデータのサイズなどを含んだ情報(以下、それぞれ、「リードアドレス」、「リードサイズ」と呼ぶ)であり、ライト領域情報とは、ライトを行うデータのライト先となるRFIDタグ300の記憶領域を示すアドレスや、ライトを行うデータのサイズや、ライトを行うデータなどを含んだ情報(以下、それぞれ、「ライトアドレス」、「ライトサイズ」、「ライトデータ」と呼ぶ)である。
制御部130は、OS(Operating System)などの制御プログラム、各種の処理手順を規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に関連するものとしては、機能概念的に、コマンド生成部131と、アプリケーション部132とを備える。
コマンド生成部131は、リーダライタ200に対して送信する各種の制御コマンドを生成する処理部であり、特に本発明に関連するものとしては、リード指示やライト指示を含んだタグ探索指示を生成する。
具体的には、コマンド生成部131は、アプリケーション部132からの依頼に応じて、記憶部120からリード領域情報およびライト領域情報を取得し、取得したリード領域情報およびライト領域情報を用いて、タグ探索指示を生成する。なお、ここでは、リード領域情報およびライト領域情報を記憶部120に記憶させておくこととしたが、これらリード領域情報およびライト領域情報は、リーダライタ200に対してタグ探索コマンドを送信するタイミングで、利用者に入力させるようにしてもよい。
ここで、図3および4を用いて、コマンド生成部131により生成されるタグ探索指示について説明する。図3は、本実施例1に係るリード指示を含んだタグ探索指示の一例を示す図である。同図に示すように、このタグ探索指示には、リード指示を含んだタグ探索指示であることを示す制御コマンド51(Inventory_r)と、所定のパラメータ52と、リード指示情報53とが含まれている。
このうち、所定のパラメータ52は、誤り検出符号(CRC)など、通信を行ううえで必要となる所定の制御情報を含んだパラメータである。また、リード指示情報53は、RFIDタグ300が記憶領域からデータをリードする際に必要となる情報であり、リード対象のデータのリードサイズと、リード先となるRFIDタグ300の記憶領域を示すリードアドレスとを含んでいる。
一方、図4は、本実施例1に係るライト指示を含んだタグ探索指示の一例を示す図である。同図に示すように、このタグ探索指示には、ライト指示を含んだタグ探索指示であることを示す制御コマンド61(Inventory_w)と、所定のパラメータ62と、ライト指示情報63とが含まれている。
このうち、所定のパラメータ62は、図3に示した所定のパラメータ52と同様のパラメータである。また、ライト指示情報63は、RFIDタグ300が記憶領域にデータをライトする際に必要となる情報であり、ライト対象のデータのライトサイズと、当該データのライト先となるRFIDタグ300の記憶領域を示すライトアドレスと、ライト対象のライトデータとを含んでいる。
図2に戻って、アプリケーション部132は、各種の業務処理を実行するとともに、コマンド生成部131により生成されたタグ探索指示をリーダライタ200に対して送信する処理部である。
具体的には、アプリケーション部132は、各種の業務処理を実行するとともに、業務処理の実行中に発生する所定のタイミングで、コマンド生成部131にタグ探索コマンドの生成を依頼する。
ここでいう所定のタイミングは、業務処理の種類に応じて決められるものであり、例えば、スーパーマーケットなどにおいて、レジ付近の所定の位置をカートが通過した際に、そのカートに入れられている商品に貼付されたRFIDタグから商品の価格に関する情報を読み出すことによって料金精算を行うような料金精算システムでは、所定の位置に設置された位置センサーなどによってカートが検出されたタイミングが、所定のタイミングとなる。
または、倉庫の中などにおいて、利用者からの指示により、周辺に設置されている物品に貼付されたRFIDタグに対して、物品に関する情報の読み出しまたは書き込みを行うような物品管理システムでは、利用者から指示されたタイミングが、所定のタイミングとなる。
アプリケーション部132は、コマンド生成部131によって探索コマンドが生成されると、生成された探索コマンドを、NWインタフェース部110を介してリーダライタ200に対して送信する。
そして、アプリケーション部132は、送信した探索コマンドに対する応答として、リードデータやライト結果などのデータ処理結果がリーダライタ200から送信されると、送信されたデータ処理結果を、NWインタフェース部110を介して取得し、取得したデータ処理結果を用いて各種の業務処理を実行する。
続いて、リーダライタ200の構成について説明する。リーダライタ200は、アンテナ210と、電波インタフェース部220と、NWインタフェース部230と、記憶部240と、制御部250とを有する。
電波インタフェース部220は、アンテナ210を介して電波を送受信することにより、RFIDタグ300との間で電波通信を行う処理部である。例えば、電波インタフェース部220は、電波によって、リードコマンドやライトコマンドをRFIDタグ300に対して送信し、リードコマンドやライトコマンドに対する応答として送信されるリードデータやライト結果などのデータ処理結果をRFIDタグ300から受信する。
NWインタフェース部230は、ネットワーク400を介してホストコンピュータ100との間でやり取りされるデータの送受信を制御する処理部である。例えば、NWインタフェース部230は、タグ探索指示をホストコンピュータ100から受信し、タグ探索指示に対する応答となるリードデータやライト結果などのデータ処理結果をホストコンピュータ100に対して送信する。
記憶部240は、各種のデータやプログラムを記憶する記憶部不揮発性のメモリであり、特に本発明に関連するものとしては、RFIDタグ300から受信したタグIDや、データ処理結果(リードデータおよびライト結果)などを記憶する。
制御部250は、リーダライタ200の全体制御を行う制御プログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に関連するものとしては、機能概念的に、タグ探索処理部251と、リード/ライト処理部252とを備える。
タグ探索処理部251は、ホストコンピュータ100からタグ探索指示を受信した場合に、RFIDタグ300に対してタグ探索コマンドを送信する処理部である。ここで、タグ探索コマンドとは、RFIDタグ300に対してタグIDの送信を要求するためのコマンドである。
具体的には、タグ探索処理部251は、NWインタフェース部230を介して、リード指示またはライト指示を含んだ探索指示をホストコンピュータ100から受信すると、タグ探索コマンドを生成し、生成したタグ探索コマンドを、電波インタフェース部220を介して、交信範囲内に存在するRFIDタグ300に向けて送信する。
また、タグ探索処理部251は、電波インタフェース部220を介して、タグ探索コマンドに対するRFIDタグ300からの応答を受信すると、受信した応答が1つのRFIDタグ300からの応答(以下、「1タグ応答」と呼ぶ)でなかった場合には、タグ応答が衝突していると判断し、FAILコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信する。
一方、タグ探索処理部251は、受信した応答が1タグ応答であった場合には、タグ探索指示のリード指示情報53(リードアドレスおよびリードサイズを含む)を内部メモリの所定の箇所に定義された読み出し領域に保存し、また、ライト指示情報63(ライトアドレス、ライトサイズ、ライトデータを含む)を内部メモリの所定の箇所に定義された書き込み領域に保存する。
その後、タグ探索処理部251は、リード/ライト処理部252に対して、1タグ応答で応答を受信したRFIDタグ300に対するリードコマンドまたはライトコマンドの送信を指示する。ここで、リードコマンドとは、RFIDタグ300に対してデータの読み出しを要求するためのコマンドであり、ライトコマンドとは、RFIDタグ300に対してデータの書き込みを要求するためのコマンドである。
一方、タグ探索処理部251は、所定の時間が経過しても、電波インタフェース部220を介して、タグ探索コマンドに対するRFIDタグ300からの応答を受信しなかった場合には、無応答であると判断する。
その場合、タグ探索処理部251は、リーダライタ200からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したN回目の無応答であるか否かを確認する。そして、連続したN回目の無応答でなかった場合には、タグ探索処理部251は、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信する。
一方、連続したN回目の無応答であった場合には、タグ探索処理部251は、交信範囲内に存在する全てのRFIDタグ300から応答が行われたと判断し、INITIALIZEコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信するとともに、記憶部240に記憶されているタグIDと、リードデータまたはライト結果とを、ホストコンピュータ100に対して送信する。
ここで、タグ探索処理部251は、ホストコンピュータに対して送信する情報として、例えば、データのリードやライトが正常に行えたか否かを示す情報をタグIDごとに追加してもよい。また、後述するように、分割してリードおよびライトが行われた場合には、分割した全てのデータのリードまたはライトが成功した場合のみ、リードデータやライト結果を送信するようにしてもよいし、分割されたリードデータのうちリードが成功したものや、ライトが成功したデータのライト結果のみを送信するようにしてもよい。
リード/ライト処理部252は、タグ探索処理部251により送信されたタグ探索コマンドに対して応答されるタグIDを受信した場合に、当該タグIDによって識別されるRFIDタグに対して、ホストコンピュータ100から送信されたタグ探索指示コマンドに含まれていたリード指示やライト指示に基づいて、リードコマンドやライトコマンドを送信する処理部である。
以下、リード/ライト処理部252の動作について具体的に説明する。ここでは、まず、リードコマンドの送信に関する動作を先に説明し、その後、ライトコマンドの送信に関する動作を説明する。また、ここでは、リードコマンドおよびライトコマンドによって要求可能なデータの上限サイズが、それぞれ、8バイトおよび4バイトである場合について説明する。
最初に、リードコマンドの送信に関する動作について説明する。リード/ライト処理部252は、リードコマンドの送信を指示されると、読み出し領域に保存されているリードサイズを確認し、8バイトより大きかった場合には、当該リードサイズをリードコマンドに設定する。
そして、リード/ライト処理部252は、読み出し領域に保存されているリードアドレスを8バイトぶんだけ後方にシフトし、また、同じく読み出し領域に保存されているリードサイズから8バイトを減算する。ここで、リードアドレスをずらすことによって、次に送信されるリードコマンドには、まだリードコマンドが送信されていない9バイト目以降のデータのアドレスが設定されることになる。
さらに、リード/ライト処理部252は、リードコマンドに設定しきれなかったリードデータの一部が残っていることを示すために、領域分割フラグをONにし、また、リードコマンドのリトライ送信を制御するための失敗回数にゼロを設定する。
一方、リード/ライト処理部252は、読み出し領域に保存されたリードサイズが8バイト以下であった場合には、読み出し領域に保存されたリードアドレスをリードコマンドに設定し、また、リードデータの全部をリードコマンドに設定したことを示すために、領域分割フラグをOFFにし、また、失敗回数にゼロを設定する。
ここで、図5を用いて、リード/ライト処理部252により生成されるリードコマンドについて説明する。図5は、本実施例1に係るリードコマンドの一例を示す図である。同図に示すように、リードコマンドには、このコマンドがリードコマンドであることを示すアクセスコマンド71(DATA_READ)と、タグID72と、リードアドレス73とが含まれる。
このようにして、リードコマンドにリードアドレスを設定した後に、リード/ライト処理部252は、1タグ応答で応答されたタグIDを指定して、リードコマンドを送信する。これにより、当該タグIDによって識別されるRFIDタグ30において、リードコマンドに設定されたリードアドレスを先頭アドレスとする8バイトのデータがリードされる。
そして、リード/ライト処理部252は、リードコマンドに対する応答としてRFIDタグ300から送信されたリードデータを受信した場合には、応答されたリードデータとタグIDとを対応付けて記憶部240に記憶し、その後、領域分割フラグがONであるか否かを確認する。
ここで、領域分割フラグがONでなかった場合や、領域分割フラグがONであっても、読み出し領域に保存されているリードサイズがゼロであった場合には、リード/ライト処理部252は、ホストコンピュータ100から送信されたリード指示の対象となるリードデータが全てリードされたと判断し、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信する。
一方、領域分割フラグがONであり、かつ、読み出し領域に保存されているリードサイズがゼロでなかった場合には、リード/ライト処理部252は、ホストコンピュータ100から送信されたリード指示の対象となるリードデータがまだ全てリードされていないと判断し、続きのデータをリードするため、読み出し領域に保存されている情報をリードコマンドに設定し、再度、1タグ応答で応答されたタグIDを指定して、当該リードコマンドを送信する。
また、リード/ライト処理部252は、リードコマンドに対する応答として、所定の時間を経過しても、RFIDタグ300からリードデータを受信できなかった場合には、失敗回数に1を加算する。そして、失敗回数がM回(例えば、2回など)未満であった場合には、リード/ライト処理部252は、リードコマンドのリトライ送信を行い、一方、失敗回数がM回以上であった場合には、SUCCESSコマンドを生成し、交信範囲内に存在するRFIDタグ300に向けて送信する。
続いて、ライトコマンドの送信に関する動作について説明する。リード/ライト処理部252は、ライトコマンドの送信を指示されると、応答されたタグID、所定のリードアドレスおよび所定のリードサイズを設定したリードコマンド(DATA_READコマンド)を送信する。これにより、当該タグIDによって識別されるRFIDタグ300は、「DATA_EXCHANGE状態」となる(このDATA_EXCHANGE状態の意味については、後に説明する)。
なお、ここでは、RFIDタグ300へのデータのライトに先立って、RFIDタグ300に対してリードコマンド(DATA_READコマンド)を送信する場合について説明するが、電波通信の仕様上、このような手順が不要である場合には、リードコマンドの送信を省略してもよい。
その後、リード/ライト処理部252は、DATA_READコマンドに対する応答として送信されたリードデータをRFIDタグ300から受信すると、書き込み領域に保存されているライトサイズを確認し、4バイトより大きかった場合には、当該ライトアドレスと、同じく書き込み領域に保存されているライトデータの先頭4バイトとを、それぞれライトコマンドに設定する。加えて、リード/ライト処理部252は、ライトコマンドに設定しきれなかった5バイト目以降の残りのデータを、内部メモリの所定の領域に定義された残データ領域に保存する。
そして、リード/ライト処理部252は、書き込み領域に保存されているライトアドレスを4バイトぶんだけ後方にシフトし、また、同じく書き込み領域に保存されているライトサイズから4バイトを減算する。ここで、ライトアドレスをずらすことによって、次に送信されるライトコマンドには、まだライトコマンドが送信されていない5バイト目以降のデータのアドレスが設定されることになる。
さらに、リード/ライト処理部252は、ライトコマンドに設定しきれなかったライトデータの一部が残っていることを示すために、領域分割フラグをONにし、また、ライトコマンドのリトライ送信を制御するための失敗回数にゼロを設定する。
一方、リード/ライト処理部252は、書き込み領域に保存されているライトサイズが4バイト以下であった場合には、当該ライトアドレス、および、書き込み領域に保存されているライトデータを、それぞれライトコマンドに設定し、また、ライトデータの全部をライトコマンドに設定したことを示すために、領域分割フラグをOFFにし、また、失敗回数にゼロを設定する。
ここで、図6を用いて、リード/ライト処理部252により生成されるライトコマンドについて説明する。図6は、本実施例1に係るライトコマンドの一例を示す図である。同図に示すように、ライトコマンドには、このコマンドがライトコマンドであることを示すアクセスコマンド81(WRITE4BYTE)と、タグID82と、ライトアドレス83と、ライトデータ84とが含まれる。
このようにして、ライトコマンドにライトアドレスおよびライトデータを設定した後に、リード/ライト処理部252は、1タグ応答で応答されたタグIDを指定して、ライトコマンドを送信する。これにより、当該タグIDによって識別されるRFIDタグ300において、ライトコマンドに設定されたライトアドレスを先頭アドレスとする4バイトのデータがライトされる。
そして、リード/ライト処理部252は、ライトコマンドに対する応答としてRFIDタグ300から送信されたライト結果を受信すると、応答されたライト結果とタグIDとを対応付けて記憶部240に記憶し、その後、領域分割フラグがONであるか否かを確認する。
ここで、領域分割フラグがONでなかった場合や、領域分割フラグがONであっても、読み出し領域に保存されているライトサイズがゼロであった場合には、リード/ライト処理部252は、ホストコンピュータ100から送信されたライト指示の対象となるライトデータが全てライトされたと判断し、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信する。
また、ライトコマンドに対する応答として、データ書き込みの成功を保証しないライト結果を送信したRFIDタグ300に対しては、再度データ読み込みを行って、データ書き込みの成功を確認した後に、SUCCESSコマンドを送信するようにしてもよい。
一方、領域分割フラグがONであり、かつ、読み出し領域に保存されているライトサイズがゼロでなかった場合には、リード/ライト処理部252は、ホストコンピュータ100から送信されたライト指示の対象となるライトデータがまだ全てライトされていないと判断し、続きのデータをライトするため、残データ領域に保存された残りのデータを書き込み領域のライトデータに設定した後に、書き込み領域の情報をライトコマンドに設定し、再度、1タグ応答で応答されたタグIDを指定して、当該ライトコマンドを送信する。
また、リード/ライト処理部252は、ライトコマンドに対する応答として、所定の時間を経過しても、RFIDタグ300からライト結果を受信できなかった場合には、失敗回数に1を加算する。そして、失敗回数がM回(例えば、2回など)未満であった場合には、リード/ライト処理部252は、ライトコマンドのリトライ送信を行い、一方、失敗回数がM回以上であった場合には、SUCCESSコマンドを生成し、交信範囲内に存在するRFIDタグ300に向けて送信する。
続いて、RFIDタグ300の構成について説明する。RFIDタグ300は、アンテナ310と、電波インタフェース部320と、整流部330と、記憶部340と、制御部350とを有する。
電波インタフェース部320は、アンテナ310を介して電波を送受信することにより、リーダライタ200との間で電波通信を行う処理部である。例えば、電波インタフェース部320は、電波によって、リードコマンドやライトコマンドをリーダライタ200から受信し、リードコマンドやライトコマンドに対する応答となるリードデータやライト結果などのデータ処理結果をリーダライタ200に対して送信する。
整流部330は、リーダライタ200から受信した電波を整流することによって電力を生成し、生成した電波を記憶部340および制御部350に供給する処理部である。
記憶部340は、各種のデータなどを記憶する不揮発性のメモリであり、特に本発明に関連するものとしては、タグIDや、ホストコンピュータ100によって実行される業務処理に関する各種のデータなどを記憶する。
制御部350は、RFIDタグ300の全体制御を行う処理部であり、特に本発明に関連するものとしては、機能概念的に、応答制御部351と、データ処理部352とを備える。
応答制御部351は、リーダライタ200から送信される各種コマンドに基づいて、タグIDの送信や、記憶部340に対するデータのリードやライトを制御する処理部である。
具体的には、応答制御部351は、電波インタフェース部320を介して、リーダライタ200から送信されたタグ探索コマンドを受信すると、衝突回避処理を行い、その結果に応じて、リーダライタ200に対してタグIDを送信する。ここでいう衝突回避処理とは、複数のRFIDタグ300から同時にタグIDが応答されることによって、リーダライタが通信不能になるのを防ぐための処理であり、アンチコリジョン処理とも呼ばれる。かかる衝突回避処理としては、これまでにもさまざまな技術が提案されており、いずれの技術を用いるかは、ここでは特定しない。
例えば、タグ探索コマンドを受信したタイミングで乱数を発生させ、得られた乱数が所定の数値条件を満たしているか否かによって、リーダライタに対する応答を行うか否かを決定する方法などが用いられる。
そして、応答制御部351は、電波インタフェース部320を介して、リーダライタ200から送信されたコマンドを受信すると、受信したコマンドの種類を確認する。ここで、受信したコマンドがリードコマンド(DATA_READコマンド)であった場合には、RFIDタグ300は「DATA_EXCHANGE状態」となる。
この「DATA_EXCHANGE状態」とは、RFIDタグ300において、データ送受信が可能になった状態であり、この状態になった場合、応答制御部351は、リーダライタ200から送信されるタグ探索コマンドに対して、タグIDを応答しない。
そして、この場合、応答制御部351は、データ処理部352を制御して、当該リードコマンドに含まれているリードアドレスに基づいて記憶部340からデータを読み出し、読み出したデータを、電波インタフェース部320を介して、リーダライタ200に対して送信する。
また、応答制御部351は、受信したコマンドがSUCCESSコマンドであった場合には、再度タグIDを送信し、また、FAILコマンドであった場合には、再度衝突回避処理を行い、INITIALIZEコマンドであった場合には、RFIDタグ300の各種設定を初期状態にリセットし、次の探索コマンドが受信されるのを待つ。
そして、応答制御部351は、電波インタフェース部320を介して、リーダライタ200から送信されたコマンドをさらに受信すると、受信したコマンドの種類を確認し、リードコマンドであった場合には、当該リードコマンドに含まれているリードアドレスに基づいて記憶部340からデータを読み出し、読み出したデータを、電波インタフェース部320を介して、リーダライタ200に対して送信する。
また、応答制御部351は、受信されたコマンドがライトコマンドであった場合には、当該ライトコマンドに含まれているライトアドレスおよびライトデータに基づいて、記憶部340にデータを書き込み、リーダライタ200に対してライト結果を送信する。
また、応答制御部351は、受信されたコマンドがSUCCESSコマンドであった場合には、次のコマンドが受信されるのを待ち、INITIALIZEコマンドであった場合には、RFIDタグ300の各種設定を初期状態にリセットし、次の探索コマンドが受信されるのを待つ。
データ処理部352は、応答制御部351からの指示に基づいて、記憶部340に対するデータの読み出しや、書き込みを行う処理部である。データ処理部352は、データの読み出しを行った場合には、読み出したデータをリードデータとして応答制御部351に応答し、データの書き込みを行った場合には、書き込みが正しく行えたか否かを示す情報を、ライト結果として応答制御部351に応答する。
次に、図7〜12を用いて、本実施例1に係るホストコンピュータ100、リーダライタ200およびRFIDタグ300の処理手順について説明する。なお、リーダライタ200の処理手順については、RFIDタグ300からデータをリードする際に行われるデータリード処理と、RFIDタグ300にデータをライトする際に行われるデータライト処理とをそれぞれ説明する。また、以下では、これまでに説明したリードコマンドを「DATA_READコマンド」と呼び、ライトコマンドを「WRITE4BYTEコマンド」と呼ぶ。ただし、本発明においてデータの読み書きに使われるコマンドは、これらのコマンドに限定されるものではない。
最初に、本実施例1に係るホストコンピュータ100の処理手順について説明する。図7は、本実施例1に係るホストコンピュータ100の処理手順を示すフローチャートである。同図に示すように、ホストコンピュータ100は、アプリケーション部132が、業務処理の実行中に発生する所定のタイミングを検出すると(ステップS101,Yes)、コマンド生成部131に対してタグ探索指示の生成を依頼する。
アプリケーション部132からの依頼に応じて、コマンド生成部131は、記憶部120に記憶されたリード領域情報およびライト領域情報を取得し(ステップS102)、取得したリード領域情報、ライト領域情報に基づいて、タグ探索指示を生成する(ステップS103)。そして、コマンド生成部131によってタグ探索指示が生成されると、アプリケーション部132は、生成されたタグ探索指示をリーダライタ200に送信する(ステップS104)。
その後、NWインタフェース部110が、タグ探索指示に対する応答としてタグIDやリードデータ、ライト結果などのデータ処理結果をリーダライタ200から受信すると(ステップS105,Yes)、アプリケーション部132が、これらデータ処理結果を用いて各種の業務処理を実行する(ステップS106)。
続いて、本実施例1に係るリーダライタ200によるデータリード処理の処理手順について説明する。図8および9は、本実施例1に係るリーダライタ200によるデータリード処理の処理手順を示すフローチャート(1)および(2)である。これらの図に示すように、リーダライタ200は、リード指示を含んだタグ探索指示をホストコンピュータ100から受信すると(ステップS201,Yes)、タグ探索処理部251が、タグ探索コマンドを生成し(ステップS202)、生成したタグ探索コマンドを、電波インタフェース部220を介して、アンテナ210の交信範囲内に存在するRFIDタグ300に向けて送信する(ステップS203)。
そして、電波インタフェース部220を介して、タグ探索コマンドに対するRFIDタグ300からの応答を受信すると(ステップS204,Yes)、タグ探索処理部251は、受信した応答が1タグ応答でなかった場合には(ステップS205,No)、タグ応答が衝突していると判断し、FAILコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信した後に(ステップS206)、ステップS204に戻って、以降の処理を継続する。
一方、受信した応答が1タグ応答であった場合には(ステップS205,Yes)、タグ探索処理部251は、タグ探索指示のリード指示情報53(リードアドレスおよびリードサイズを含む)を内部メモリの所定の箇所に定義された読み出し領域に保存し(ステップS207)、その後に、リード/ライト処理部252に対してリードコマンドの送信を指示する。
リードコマンドの送信を指示されたリード/ライト処理部252は、読み出し領域に保存されているリードサイズを確認し、8バイトより大きかった場合には(ステップS208,Yes)、読み出し領域に保存されたリードアドレスをDATA_READコマンドに設定する(ステップS209)。
このDATA_READコマンドによって、ここで設定されたリードアドレスを先頭アドレスとする8バイトのデータがRFIDタグ300からリードされる。そこで、リード/ライト処理部252は、読み出し領域に保存されているリードアドレスを8バイトだけシフトし(ステップS210)、また、読み出し領域に保存されているリードサイズから8バイトを減算する(ステップS211)。
さらに、リード/ライト処理部252は、DATA_READコマンドに設定しきれなかったリードデータの一部が残っていることを示すために、領域分割フラグをONにした後に(ステップS212)、DATA_READコマンドのリトライ送信を制御するための失敗回数にゼロを設定する(ステップS213)。
一方、リード/ライト処理部252は、読み出し領域に保存されたリードサイズが8バイト以下であった場合には(ステップS208,No)、読み出し領域に保存されたリードアドレスをDATA_READコマンドに設定し(ステップS214)、また、リードデータの全部をDATA_READコマンドに設定したことを示すために、領域分割フラグをOFFにした後に(ステップS215)、失敗回数にゼロを設定する(ステップS213)。
このようにして、DATA_READコマンドにリードアドレスを設定した後に、リード/ライト処理部252は、1タグ応答で応答されたタグIDを指定して、DATA_READコマンドを送信する(ステップS216)。
そして、リード/ライト処理部252は、DATA_READコマンドに対する応答としてRFIDタグ300から送信されたリードデータを受信すると(ステップS217,Yes)、応答されたリードデータとタグIDとを対応付けて記憶部240に記憶し、その後、領域分割フラグがONであるか否かを確認する。
ここで、領域分割フラグがONでなかった場合(ステップS218,No)や、領域分割フラグがONであっても(ステップS218,Yes)、読み出し領域に保存されているリードサイズがゼロであった場合には(ステップS219,Yes)、リード/ライト処理部252は、ホストコンピュータ100から送信されたリード指示の対象となるリードデータが全てリードされたと判断し、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信する(ステップS220)。
一方、領域分割フラグがONであり(ステップS218,Yes)、かつ、読み出し領域に保存されているリードサイズがゼロでなかった場合には(ステップS219,No)、リード/ライト処理部252は、ホストコンピュータ100から送信されたリード指示の対象となるリードデータがまだ全てリードされていないと判断し、ステップS208に戻って、以降の処理を継続する。
また、リード/ライト処理部252は、DATA_READコマンドに対する応答として、所定の時間を経過しても、RFIDタグ300からリードデータを受信できなかった場合には(ステップS217,No)、失敗回数に1を加算する(ステップS221)。
ここで、失敗回数がM回(例えば、2回など)未満であった場合には(ステップS222,Yes)、リード/ライト処理部252は、ステップS216に戻って、DATA_READコマンドのリトライ送信を行い、一方、失敗回数がM回以上であった場合には(ステップS222,No)、SUCCESSコマンドを生成し、交信範囲内に存在するRFIDタグ300に向けて送信する(ステップS220)。
また、ステップS204において、所定の時間が経過しても、タグ探索コマンドに対するRFIDタグ300からの応答を電波インタフェース部220が受信しなかった場合には(ステップS204,No)、リード/ライト処理部252は、無応答であると判断する。
また、タグ探索処理部251は、リーダライタ200からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したN回目の無応答でなかった場合には(ステップS223,No)、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信した後に(ステップS224)、ステップS204に戻って、以降の処理を継続する。
一方、連続したN回目の無応答であった場合には(ステップS223,Yes)、タグ探索処理部251は、交信範囲内に存在する全てのRFIDタグ300から応答が行われたと判断し、INITIALIZEコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信するとともに(ステップS225)、記憶部240に記憶されているタグIDおよびリードデータを、検出したタグIDおよび読み出したデータとして、ホストコンピュータ100に対して送信し(ステップS226)、処理を終了する。
続いて、本実施例1に係るリーダライタ200によるデータライト処理の処理手順について説明する。図10および11は、本実施例1に係るリーダライタ200によるデータライト処理の処理手順を示すフローチャート(1)および(2)である。これらの図に示すように、リーダライタ200は、ライト指示を含んだ探索指示をホストコンピュータ100から受信すると(ステップS301,Yes)、タグ探索コマンドを生成し(ステップS302)、生成したタグ探索コマンドを、アンテナ210の交信範囲内に存在するRFIDタグ300に向けて送信する(ステップS303)。
そして、タグ探索コマンドに対するRFIDタグ300からの応答を電波インタフェース部220が受信すると(ステップS304,Yes)、リード/ライト処理部252が、応答が1タグ応答でなかった場合には(ステップS305,No)、タグ応答が衝突していると判断し、FAILコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信した後に(ステップS306)、ステップS304に戻って、以降の処理を継続する。
一方、受信した応答が1タグ応答であった場合には(ステップS305,Yes)、タグ探索処理部251は、タグ探索指示のライト指示情報63(ライトアドレス、ライトサイズおよびライトデータを含む)を内部メモリの所定の箇所に定義された書き込み領域に保存し(ステップS307)、その後に、リード/ライト処理部252に対してライトコマンドの送信を指示する。
ライトコマンドの送信を指示されたリード/ライト処理部252は、応答されたタグID、所定のリードアドレスおよび所定のリードサイズを設定したDATA_READコマンドを送信する(ステップS308)。これにより、当該タグIDによって識別されるRFIDタグが、「DATA_EXCHANGE状態」になる。
その後、リード/ライト処理部252は、DATA_READコマンドに対して応答されたリードデータをRFIDタグ300から受信すると(ステップS309,Yes)、書き込み領域に保存されているライトサイズを確認し、4バイトより大きかった場合には(ステップS310,Yes)、書き込み領域に保存されたライトアドレスと、ライトデータの先頭4バイトとを、それぞれWRITE4BYTEコマンドに設定し(ステップS311およびS312)、ライトデータの5バイト目以降の残りのデータを、内部メモリの所定の箇所に定義された残データ領域に保存する(ステップS313)。
そして、リード/ライト処理部252は、書き込み領域に保存されているライトアドレスを4バイトだけシフトし(ステップS314)、また、書き込み領域に保存されているライトサイズから4バイトを減算する(ステップS315)。
さらに、リード/ライト処理部252は、WRITE4BYTEコマンドに設定しきれなかったライトデータの一部が残っていることを示すために、領域分割フラグをONにした後に(ステップS316)、WRITE4BYTEコマンドのリトライ送信を制御するための失敗回数にゼロを設定する(ステップS317)。
一方、リード/ライト処理部252は、書き込み領域に保存されたライトサイズが4バイト以下であった場合には(ステップS310,No)、書き込み領域に保存されたライトアドレスと、ライトデータとを、それぞれWRITE4BYTEコマンドに設定し(ステップS318およびS319)、さらに、ライトデータの全部をWRITE4BYTEコマンドに設定したことを示すために、領域分割フラグをOFFにした後に(ステップS320)、失敗回数にゼロを設定する(ステップS317)。
このようにして、WRITE4BYTEコマンドにライトアドレスを設定した後に、リード/ライト処理部252は、1タグ応答で応答されたタグIDを指定して、WRITE4BYTEコマンドを送信する(ステップS321)。
そして、リード/ライト処理部252は、WRITE4BYTEコマンドに対する応答としてRFIDタグ300から送信されたライト結果を受信すると(ステップS322,Yes)、応答されたライト結果とタグIDとを対応付けて記憶部240に記憶し、その後、領域分割フラグがONであるか否かを確認する。
ここで、領域分割フラグがONでなかった場合(ステップS323,No)や、領域分割フラグがONであっても(ステップS323,Yes)、書き込み領域に保存されているライトサイズがゼロであった場合には(ステップS324,Yes)、リード/ライト処理部252は、ホストコンピュータ100から送信されたライト指示の対象となるライトデータが全てライトされたと判断し、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信する(ステップS325)。
一方、領域分割フラグがONであり(ステップS323,Yes)、かつ、書き込み領域に保存されているライトサイズがゼロでなかった場合には(ステップS324,No)、リード/ライト処理部252は、ホストコンピュータ100から送信されたライト指示の対象となるライトデータがまだ全てライトされていないと判断し、残データ領域に保存されたデータを書き込み領域に設定し(ステップS326)、ステップS310に戻って、以降の処理を継続する。
また、リード/ライト処理部252は、WRITE4BYTEコマンドに対する応答として、所定の時間を経過しても、RFIDタグ300からライト結果を受信できなかった場合には(ステップS322,No)、失敗回数に1を加算する(ステップS327)。
ここで、失敗回数がM回(例えば、2回など)未満であった場合には(ステップS328,Yes)、リード/ライト処理部252は、ステップS321に戻って、WRITE4BYTEコマンドのリトライ送信を行い、一方、失敗回数がM回以上であった場合には(ステップS328,No)、SUCCESSコマンドを生成し、交信範囲内に存在するRFIDタグ300に向けて送信する(ステップS325)。
また、ステップS304において、所定の時間が経過しても、タグ探索コマンドに対するRFIDタグ300からの応答を電波インタフェース部220が受信しなかった場合には(ステップS304,No)、リード/ライト処理部252は、無応答であると判断する。
また、タグ探索処理部251は、リーダライタ200からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したN回目の無応答でなかった場合には(ステップS329,No)、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信した後に(ステップS330)、ステップS304に戻って、以降の処理を継続する。
一方、連続したN回目の無応答であった場合には(ステップS329,Yes)、タグ探索処理部251は、交信範囲内に存在する全てのRFIDタグ300から応答が行われたと判断し、INITIALIZEコマンドを生成して、交信範囲内に存在するRFIDタグ300に向けて送信するとともに(ステップS331)、記憶部240に記憶されているタグIDおよびライト結果を、検出したタグIDおよび書き込み結果として、ホストコンピュータ100に対して送信し(ステップS332)、処理を終了する。
続いて、本実施例1に係るRFIDタグ300の処理手順について説明する。図12は、本実施例1に係るRFIDタグ300の処理手順を示すフローチャートである。同図に示すように、RFIDタグ300は、アンテナ310がリーダライタ200から送信された電波を受信すると、整流部330が、電波を整流して電力を生成し、制御部350および記憶部340に供給する。これにより、RFIDタグ300は「READY状態」となる(ステップS401)。
そして、応答制御部351が、電波インタフェース部320を介して、リーダライタ200から送信された探索コマンドを受信すると(ステップS402,Yes)、RFIDタグ300は「ID状態」となる(ステップS403)。その後、応答制御部351は、衝突回避処理を行い(ステップS404)、その結果に応じて、リーダライタ200に対してタグIDを送信する(ステップS405)。
そして、電波インタフェース部320を介して、リーダライタ200から送信されたコマンドを受信すると(ステップS406,Yes)、応答制御部351が、受信したコマンドの種類を確認する。
ここで、受信したコマンドがDATA_READコマンドであった場合には、RFIDタグ300は「DATA_EXCHANGE状態」となり(ステップS407)、応答制御部351によって制御されたデータ処理部352が、当該DATA_READコマンドに含まれているリードアドレスに基づいて記憶部340からデータを読み出し(ステップS408)、読み出したデータを、電波インタフェース部320を介して、リーダライタ200に対して送信する(ステップS409)。
また、応答制御部351は、受信したコマンドがSUCCESSコマンドであった場合には(ステップS411)、ステップS406に戻って、再度タグIDを送信したうえで以降の処理を継続し、FAILコマンドであった場合には(ステップS412)、ステップS405に戻って、再度衝突回避処理を行ったうえで以降の処理を継続し、INITIALIZEコマンドであった場合には(ステップS413)、ステップS401に戻って、RFIDタグ300の各種設定を初期状態にリセットし、次の探索コマンドが送信されるのを待つ。
そして、電波インタフェース部320を介して、リーダライタ200から送信されたコマンドをさらに受信すると(ステップS413,Yes)、応答制御部351が、受信したコマンドの種類を確認し、DATA_READコマンドであった場合には、当該DATA_READコマンドに含まれているリードアドレスに基づいて、記憶部340の指定されたアドレスからデータを読み出し(ステップS414)、読み出したデータを、電波インタフェース部320を介して、リーダライタ200に対して送信する(ステップS415)。
また、応答制御部351は、受信したコマンドがWRITE4BYTEコマンドであった場合には、当該WRITE4BYTEコマンドに含まれているライトアドレスおよびライトデータに基づいて、記憶部340の指定されたアドレスにデータを書き込み(ステップS416)、リーダライタ200に対してライト結果を送信する(ステップS417)。
また、応答制御部351は、受信されたコマンドがSUCCESSコマンドであった場合には(ステップS418)、ステップS413に戻って、次のコマンドが受信されるのを待ち、INITIALIZEコマンドであった場合には(ステップS419)、ステップS401に戻って、RFIDタグ300の各種設定を初期状態にリセットし、次の探索コマンドが送信されるのを待つ。
上述してきたように、本実施例1では、ホストコンピュータ100において、コマンド生成部131が、リード指示やライト指示を含めたタグ探索指示を生成し、アプリケーション部132が、生成されたタグ探索指示をリーダライタ200に対して送信し、リーダライタ200において、タグ探索処理部251が、タグ探索指示をホストコンピュータ100から受信した場合に、RFIDタグ300を一意に識別するタグIDの送信を要求するタグ探索コマンドを送信し、リード/ライト処理部252が、タグ探索コマンドに対する応答としてRFIDタグ300から送信されたタグIDを受信した場合に、当該タグIDにより識別されるRFIDタグ300に対して、タグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信する。
これにより、従来、ホストコンピュータ100によってRFIDタグ300それぞれに対して1つずつ行われていたリード指示やライト指示を、1回のタグ探索指示と同時にまとめて行うことが可能になり、ホストコンピュータ100とリーダライタ200との間でやり取りされるデータの量を削減することができるとともに、RFIDタグ300に対するデータのリードやライトを行う際に生じる、ホストコンピュータ100とリーダライタ200との間の通信におけるオーバーヘッドを低減することができる。
また、本実施例1では、ホストコンピュータ100により送信されるタグ探索指示には、リードやライトを行うデータのリードサイズ、ライトサイズが含まれており、リーダライタ200において、リード/ライト処理部252が、タグ探索指示に含まれたリードサイズやライトサイズが、リードコマンドやライトコマンドにより要求可能なデータの上限サイズを超えていた場合には、当該上限サイズ以下となるサイズを、リードコマンドやライトコマンドにより要求するデータのサイズとして設定し、設定したサイズごとに分割された複数のデータのリードコマンドやライトコマンドを送信する。
これにより、リードやライトを行うデータがリードコマンドやライトコマンドにより要求可能なデータの上限サイズを超えていた場合でも、リード指示および/またはライト指示をまとめて行うことが可能になり、RFIDタグ300に対するデータのリードやライトを行う際に生じる、ホストコンピュータ100とリーダライタ200との間の通信におけるオーバーヘッドをさらに低減することができる。
ところで、実施例1では、RFIDタグ300が、DATA_EXCHANGE状態となった場合に、リーダライタ200から送信されるタグ探索コマンドに対して、タグIDを応答しないように制御される場合について説明した。この制御は、例えば、RFIDタグ300が、タグ探索コマンドに対して正常にタグIDを応答したことを示すフラグを一時メモリ(揮発性のメモリ)に記憶することによって行われる。
この場合、RFIDタグは、DATA_EXCHANGE状態となったタイミングで当該フラグを一時メモリに記憶し、タグ探索コマンドを受信した際に一時メモリにフラグが記憶されているか否かを確認し、記憶されていた場合にはタグIDを応答しないようにする。
しかしながら、例えば、RFIDタグ300がバッテリを備えないパッシブ型のRFIDタグであった場合には、一時メモリに記憶したフラグがクリアされてしまう場合がある。パッシブ型のRFIDタグは、リーダライタから送信される電波を電力供給源とするため、リーダライタのアンテナの交信範囲内から外れた場合や、交信範囲内であっても電波状況が悪い環境で使用された場合に電力供給が絶たれることがあり、メモリに記憶された情報を維持することができないからである。
そのため、パッシブ型のRFIDタグを用いる場合には、RFIDタグに一般的に備えられている不揮発性のメモリに、タグ探索コマンドに対してタグID応答するか否かを判定するための情報(以下、「応答制御情報」と呼ぶ)を明示的に記憶する場合もある。
そこで、以下では、RFIDタグにおいて応答制御情報が用いられた場合を、実施例2として説明する。なお、ここでは説明の便宜上、実施例1で参照した図に示した機能部と同様の役割を果たすものについては、同一符号を付すこととする。
まず、本実施例2に係るRFIDシステムにおけるRFIDタグに対するデータのアクセス方法の概念について説明する。図13は、本実施例2に係るデータアクセス制御方法の概念を説明するための説明図である。
同図は、リーダライタ600を制御するホストコンピュータ500と、リーダライタ600と、RFIDタグ700とから構成される一般的なRFIDシステムを示している。このRFIDシステムにおいて、ホストコンピュータ500とリーダライタ600とは、ネットワーク400を介して互いに通信を行い、リーダライタ600とRFIDタグ700とは、それぞれが有するアンテナ210および310から電波を送受信することによって互いに通信を行う。なお、ここでは1台のRFIDタグ700のみを示しているが、このRFIDシステムは、複数のRFIDタグ700から構成されていてもよい。また、リーダライタ600およびアンテナ210についても、同様に複数で構成されていてもよい。
このような構成のもと、本実施例2に係るデータアクセス方法では、従来、ホストコンピュータ500によってRFIDタグ700それぞれに対して1つずつ行われていたリード指示やライト指示を、1回のタグ探索指示と同時にまとめて行うことを特徴としている。
具体的には、同図に示すように、まず、ホストコンピュータ500が、リード指示やライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ600に対して送信する(同図に示す(1))。ここで送信されるタグ探索指示には、リードやライトを行うデータのリード先やライト先となるRFIDタグ700の記憶領域を示すアドレスや、リードやライトを行うデータのサイズなどが、リード指示またはライト指示として含まれている。また、このタグ探索指示には、タグ探索指示を送信するたびにユニークに生成される応答制御情報も含まれている。
タグ探索指示を受信したリーダライタ600は、アンテナ210の交信範囲内に存在するRFIDタグ700に向けて、タグIDの送信を要求するタグ探索コマンドを送信する(同図に示す(2))。このタグ探索コマンドには、ホストコンピュータ500から送信された応答制御情報が含まれている。
このタグ探索コマンドを受信したRFIDタグ700は、当該タグ探索コマンドに含まれている応答制御情報を不揮発性メモリに記憶するとともに、この応答制御情報と、前回送信されたタグ探索コマンドに含まれていた応答制御情報とを比較し、それぞれが異なっていた場合に、受信した探索コマンドに対する応答として、自身のタグIDをリーダライタ600に対して送信する(同図に示す(3))。
そして、リーダライタ600は、RFIDタグ700から送信されたタグIDを受信した場合には、当該タグIDにより識別されるRFIDタグ700に対して、ホストコンピュータ500から送信されたタグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信する(同図に示す(4)および(5))。
リードコマンドを受信したRFIDタグ700は、受信したリードコマンドに基づいて、自身に備えられた記憶装置(メモリなど)からデータを読み出し、読み出したデータ(リードデータ)をリーダライタ600に対して送信する(同図に示す(6))。また、ライトコマンドを受信したRFIDタグ700は、受信したライトコマンドに基づいて、自身に備えられた記憶装置にデータを書き込み、書き込みが正常に行えたか否かを示すライト結果をリーダライタ600に対して送信する(同図に示す(7))。
そして、リーダライタ600は、アンテナ210の交信範囲内に存在する全てのRFIDタグ700からデータ処理結果(リードデータおよびライト結果)を受信すると、受信したデータ処理結果とタグIDとを全てまとめて、ホストコンピュータ500に送信する(同図に示す(8))。
このように、本実施例2に係るデータアクセス制御方法では、ホストコンピュータ500が、リード指示やライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示をリーダライタ600に対して送信し、リーダライタ600が、タグ探索指示をホストコンピュータ500から受信した場合に、RFIDタグ700を一意に識別するタグIDの送信を要求するタグ探索コマンドを送信し、送信したタグ探索コマンドに対する応答としてRFIDタグ700から送信されたタグIDを受信した場合に、当該タグIDにより識別されるRFIDタグ700に対して、タグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信するようにしている。
これにより、従来、ホストコンピュータ500によってRFIDタグ700それぞれに対して1つずつ行われていたリード指示やライト指示を、1回のタグ探索指示と同時にまとめて行うことが可能になり、ホストコンピュータ500とリーダライタ600との間でやり取りされるデータの量を削減することができるとともに、RFIDタグ700に対するデータのリードやライトを行う際に生じる、ホストコンピュータ500とリーダライタ600との間の通信におけるオーバーヘッドを低減することができる。
また、本実施例2では、RFIDタグ700が、タグ探索コマンドごとにユニークとなる応答制御情報を不揮発性メモリに記憶し、タグ探索コマンドを受信した場合には、受信したタグ探索コマンドに含まれている応答制御情報と、記憶している応答制御情報とを比較し、異なっている場合に、タグIDを送信するので、同じタグ探索コマンドに対して、何度もタグIDを送信してしまうのを防ぐことができる。
次に、本実施例2に係るRFIDシステムの構成について説明する。図14は、本実施例2に係るRFIDシステムの構成を示す機能ブロック図である。同図は、図13で示したRFIDシステムの構成を示しており、同図に示すように、このRFIDシステムは、ホストコンピュータ500と、リーダライタ600と、RFIDタグ700とから構成される。
そして、ホストコンピュータ500とリーダライタ600とは、ネットワーク400を介して互いに通信を行い、リーダライタ600とRFIDタグ700とは、それぞれが有するアンテナ210および310から電波を送受信することによって互いに通信を行う。なお、ここでは、図13と同様に1台のリーダライタ600、1台のアンテナ210および1台のRFIDタグ700のみを示しているが、このRFIDシステムは、複数のリーダライタ600、複数のアンテナ210および複数のRFIDタグ700から構成されていてもよい。以下、各装置の構成について説明する。
最初に、ホストコンピュータ500の構成について説明する。ホストコンピュータ500は、NW(Network)インタフェース部110と、記憶部120と、制御部130とを有する。
NWインタフェース部110は、ネットワーク400を介してリーダライタ600との間でやり取りされるデータの送受信を制御する処理部である。例えば、NWインタフェース部110は、タグ探索指示をリーダライタ600に対して送信し、タグ探索指示に対する応答として送信されるリードデータやライト結果などのデータ処理結果をリーダライタ600から受信する。
記憶部120は、各種のデータやプログラムを記憶する不揮発性のメモリであり、特に本発明に関連するものとしては、RFIDタグ700に対するデータのリードおよびライトを行う際に用いられるリード領域情報やライト領域情報を記憶する。
ここで、リード領域情報とは、リードを行うデータのリード先となるRFIDタグ700の記憶領域を示すアドレスや、リードを行うデータのサイズなどを含んだ情報(以下、それぞれ、「リードアドレス」、「リードサイズ」と呼ぶ)であり、ライト領域情報とは、ライトを行うデータのライト先となるRFIDタグ700の記憶領域を示すアドレスや、ライトを行うデータのサイズや、ライトを行うデータなどを含んだ情報(以下、それぞれ、「ライトアドレス」、「ライトサイズ」、「ライトデータ」と呼ぶ)である。
制御部130は、OS(Operating System)などの制御プログラム、各種の処理手順を規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に関連するものとしては、機能概念的に、コマンド生成部531と、アプリケーション部132とを備える。
コマンド生成部531は、リーダライタ600に対して送信する各種の制御コマンドを生成する処理部であり、特に本発明に関連するものとしては、リード指示やライト指示を含んだタグ探索指示を生成する。
具体的には、コマンド生成部531は、アプリケーション部132からの依頼に応じて、まず、記憶部120からリード領域情報およびライト領域情報を取得する。なお、ここでは、リード領域情報およびライト領域情報を記憶部120に記憶させておくこととしたが、これらリード領域情報およびライト領域情報は、リーダライタ600に対してタグ探索コマンドを送信するタイミングで、利用者に入力させるようにしてもよい。
リード領域情報およびライト領域情報を取得した後に、コマンド生成部531は、応答制御情報を生成する。ここでいう応答制御情報とは、タグ探索指示をユニークに識別する識別情報であり、例えばタイムスタンプのように、タグ探索指示を生成するたびにユニークに決められる情報である。そして、コマンド生成部531は、上記で説明したリード領域情報、ライト領域情報および応答制御情報を用いて、タグ探索指示を生成する。
ここで、図15および16を用いて、コマンド生成部531により生成されるタグ探索指示について説明する。図15は、本実施例2に係るリード指示を含んだタグ探索指示の一例を示す図である。同図に示すように、このタグ探索指示には、リード指示を含んだタグ探索指示であることを示す制御コマンド54(Inventory_r)と、所定のパラメータ55と、応答制御情報56と、リード指示情報57とが含まれている。
このうち、所定のパラメータ55は、誤り検出符号(CRC)など、通信を行ううえで必要となる所定の制御情報を含んだパラメータである。また、リード指示情報57は、RFIDタグ700が記憶領域からデータをリードする際に必要となる情報であり、リード対象のデータのリードサイズと、リード先となるRFIDタグ700の記憶領域を示すリードアドレスとを含んでいる。
一方、図16は、本実施例2に係るライト指示を含んだタグ探索指示の一例を示す図である。同図に示すように、このタグ探索指示には、ライト指示を含んだタグ探索指示であることを示す制御コマンド64(Inventory_w)と、所定のパラメータ65と、応答制御情報66と、ライト指示情報67とが含まれている。
このうち、所定のパラメータ65は、図15に示した所定のパラメータ55と同様のパラメータである。また、ライト指示情報67は、RFIDタグ700が記憶領域にデータをライトする際に必要となる情報であり、ライト対象のデータのライトサイズと、当該データのライト先となるRFIDタグ700の記憶領域を示すライトアドレスと、ライト対象のライトデータとを含んでいる。
図14に戻って、アプリケーション部132は、各種の業務処理を実行するとともに、コマンド生成部531により生成されたタグ探索指示をリーダライタ600に対して送信する処理部である。
具体的には、アプリケーション部132は、各種の業務処理を実行するとともに、業務処理の実行中に発生する所定のタイミングで、コマンド生成部531にタグ探索コマンドの生成を依頼する。
ここでいう所定のタイミングは、業務処理の種類に応じて決められるものであり、例えば、スーパーマーケットなどにおいて、レジ付近の所定の位置をカートが通過した際に、そのカートに入れられている商品に貼付されたRFIDタグから商品の価格に関する情報を読み出すことによって料金精算を行うような料金精算システムでは、所定の位置に設置された位置センサーなどによってカートが検出されたタイミングが、所定のタイミングとなる。
または、倉庫の中などにおいて、利用者からの指示により、周辺に設置されている物品に貼付されたRFIDタグに対して、物品に関する情報の読み出しまたは書き込みを行うような物品管理システムでは、利用者から指示されたタイミングが、所定のタイミングとなる。
アプリケーション部132は、コマンド生成部531によって探索コマンドが生成されると、生成された探索コマンドを、NWインタフェース部110を介してリーダライタ600に対して送信する。
そして、アプリケーション部132は、送信した探索コマンドに対する応答として、リードデータやライト結果などのデータ処理結果がリーダライタ600から送信されると、送信されたデータ処理結果を、NWインタフェース部110を介して取得し、取得したデータ処理結果を用いて各種の業務処理を実行する。
続いて、リーダライタ600の構成について説明する。リーダライタ600は、アンテナ210と、電波インタフェース部220と、NWインタフェース部230と、記憶部240と、制御部250とを有する。
電波インタフェース部220は、アンテナ210を介して電波を送受信することにより、RFIDタグ700との間で電波通信を行う処理部である。例えば、電波インタフェース部220は、電波によって、リードコマンドやライトコマンドをRFIDタグ700に対して送信し、リードコマンドやライトコマンドに対する応答として送信されるリードデータやライト結果などのデータ処理結果をRFIDタグ700から受信する。
NWインタフェース部230は、ネットワーク400を介してホストコンピュータ500との間でやり取りされるデータの送受信を制御する処理部である。例えば、NWインタフェース部230は、タグ探索指示をホストコンピュータ500から受信し、タグ探索指示に対する応答となるリードデータやライト結果などのデータ処理結果をホストコンピュータ500に対して送信する。
記憶部240は、各種のデータやプログラムを記憶する記憶部不揮発性のメモリであり、特に本発明に関連するものとしては、RFIDタグ700から受信したタグIDや、データ処理結果(リードデータおよびライト結果)などを記憶する。
制御部250は、リーダライタ600の全体制御を行う制御プログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する処理部であり、特に本発明に関連するものとしては、機能概念的に、タグ探索処理部251と、リード/ライト処理部652とを備える。
タグ探索処理部251は、ホストコンピュータ500からタグ探索指示を受信した場合に、RFIDタグ700に対してタグ探索コマンドを送信する処理部である。ここで、タグ探索コマンドとは、RFIDタグ700に対してタグIDの送信を要求するためのコマンドである。
具体的には、タグ探索処理部251は、NWインタフェース部230を介して、リード指示またはライト指示を含んだ探索指示をホストコンピュータ500から受信すると、タグ探索コマンドを生成し、生成したタグ探索コマンドを、電波インタフェース部220を介して、交信範囲内に存在するRFIDタグ700に向けて送信する。
また、タグ探索処理部251は、電波インタフェース部220を介して、タグ探索コマンドに対するRFIDタグ700からの応答を受信すると、受信した応答が1つのRFIDタグ700からの応答(以下、「1タグ応答」と呼ぶ)でなかった場合には、タグ応答が衝突していると判断し、FAILコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信する。
一方、タグ探索処理部251は、受信した応答が1タグ応答であった場合には、タグ探索指示のリード指示情報57(リードアドレスおよびリードサイズを含む)を内部メモリの所定の箇所に定義された読み出し領域に保存し、また、ライト指示情報67(ライトアドレス、ライトサイズ、ライトデータを含む)を内部メモリの所定の箇所に定義された書き込み領域に保存する。
その後、タグ探索処理部251は、リード/ライト処理部652に対して、1タグ応答で応答を受信したRFIDタグ700に対するリードコマンドまたはライトコマンドの送信を指示する。ここで、リードコマンドとは、RFIDタグ700に対してデータの読み出しを要求するためのコマンドであり、ライトコマンドとは、RFIDタグ700に対してデータの書き込みを要求するためのコマンドである。
一方、タグ探索処理部251は、所定の時間が経過しても、電波インタフェース部220を介して、タグ探索コマンドに対するRFIDタグ700からの応答を受信しなかった場合には、無応答であると判断する。
その場合、タグ探索処理部251は、リーダライタ600からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したN回目の無応答であるか否かを確認する。そして、連続したN回目の無応答でなかった場合には、タグ探索処理部251は、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信する。
一方、連続したN回目の無応答であった場合には、タグ探索処理部251は、交信範囲内に存在する全てのRFIDタグ700から応答が行われたと判断し、INITIALIZEコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信するとともに、記憶部240に記憶されているタグIDと、リードデータまたはライト結果とを、ホストコンピュータ500に対して送信する。
ここで、タグ探索処理部251は、ホストコンピュータに対して送信する情報として、例えば、データのリードやライトが正常に行えたか否かを示す情報をタグIDごとに追加してもよい。また、後述するように、分割してリードおよびライトが行われた場合には、分割した全てのデータのリードまたはライトが成功した場合のみ、リードデータやライト結果を送信するようにしてもよいし、分割されたリードデータのうちリードが成功したものや、ライトが成功したデータのライト結果のみを送信するようにしてもよい。
リード/ライト処理部652は、タグ探索処理部251により送信されたタグ探索コマンドに対して応答されるタグIDを受信した場合に、当該タグIDによって識別されるRFIDタグに対して、ホストコンピュータ500から送信されたタグ探索指示コマンドに含まれていたリード指示やライト指示に基づいて、リードコマンドやライトコマンドを送信する処理部である。
以下、リード/ライト処理部652の動作について具体的に説明する。ここでは、まず、リードコマンドの送信に関する動作を先に説明し、その後、ライトコマンドの送信に関する動作を説明する。また、ここでは、リードコマンドおよびライトコマンドによって要求可能なデータの上限サイズが、それぞれ、8バイトおよび4バイトである場合について説明する。
最初に、リードコマンドの送信に関する動作について説明する。リード/ライト処理部652は、リードコマンドの送信を指示されると、読み出し領域に保存されているリードサイズを確認し、8バイトより大きかった場合には、当該リードサイズをリードコマンドに設定する。
そして、リード/ライト処理部652は、読み出し領域に保存されているリードアドレスを8バイトぶんだけ後方にシフトし、また、同じく読み出し領域に保存されているリードサイズから8バイトを減算する。ここで、リードアドレスをずらすことによって、次に送信されるリードコマンドには、まだリードコマンドが送信されていない9バイト目以降のデータのアドレスが設定されることになる。
さらに、リード/ライト処理部652は、リードコマンドに設定しきれなかったリードデータの一部が残っていることを示すために、領域分割フラグをONにし、また、リードコマンドのリトライ送信を制御するための失敗回数にゼロを設定する。
一方、リード/ライト処理部652は、読み出し領域に保存されたリードサイズが8バイト以下であった場合には、読み出し領域に保存されたリードアドレスをリードコマンドに設定し、また、リードデータの全部をリードコマンドに設定したことを示すために、領域分割フラグをOFFにし、また、失敗回数にゼロを設定する。
ここで、図17を用いて、リード/ライト処理部652により生成されるリードコマンドについて説明する。図17は、本実施例2に係るリードコマンドの一例を示す図である。同図に示すように、リードコマンドには、このコマンドがリードコマンドであることを示すアクセスコマンド74(DATA_READ)と、タグID75と、リードアドレス76とが含まれる。
このようにして、リードコマンドにリードアドレスを設定した後に、リード/ライト処理部652は、1タグ応答で応答されたタグIDを指定して、リードコマンドを送信する。これにより、当該タグIDによって識別されるRFIDタグ30において、リードコマンドに設定されたリードアドレスを先頭アドレスとする8バイトのデータがリードされる。
そして、リード/ライト処理部652は、リードコマンドに対する応答としてRFIDタグ700から送信されたリードデータを受信した場合には、当該リードデータを送信したRFIDタグ700に対して、ホストコンピュータ500から送信されたタグ探索指示に含まれていた応答制御情報の書き込み命令を送信する。ここで送信される応答制御情報は、RFIDタグ700において、タグ探索コマンドに対する応答を行うか否かの判定に用いられる。
そして、リード/ライト処理部652は、応答されたリードデータとタグIDとを対応付けて記憶部240に記憶し、その後、領域分割フラグがONであるか否かを確認する。
ここで、領域分割フラグがONでなかった場合や、領域分割フラグがONであっても、読み出し領域に保存されているリードサイズがゼロであった場合には、リード/ライト処理部652は、ホストコンピュータ500から送信されたリード指示の対象となるリードデータが全てリードされたと判断し、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信する。
一方、領域分割フラグがONであり、かつ、読み出し領域に保存されているリードサイズがゼロでなかった場合には、リード/ライト処理部652は、ホストコンピュータ500から送信されたリード指示の対象となるリードデータがまだ全てリードされていないと判断し、続きのデータをリードするため、読み出し領域に保存されている情報をリードコマンドに設定し、再度、1タグ応答で応答されたタグIDを指定して、当該リードコマンドを送信する。
また、リード/ライト処理部652は、リードコマンドに対する応答として、所定の時間を経過しても、RFIDタグ700からリードデータを受信できなかった場合には、失敗回数に1を加算する。そして、失敗回数がM回(例えば、2回など)未満であった場合には、リード/ライト処理部652は、リードコマンドのリトライ送信を行い、一方、失敗回数がM回以上であった場合には、SUCCESSコマンドを生成し、交信範囲内に存在するRFIDタグ700に向けて送信する。
続いて、ライトコマンドの送信に関する動作について説明する。リード/ライト処理部652は、ライトコマンドの送信を指示されると、応答されたタグID、所定のリードアドレスおよび所定のリードサイズを設定したリードコマンド(DATA_READコマンド)を送信する。これにより、当該タグIDによって識別されるRFIDタグ700は、「DATA_EXCHANGE状態」になる。
なお、ここでは、RFIDタグ700へのデータのライトに先立って、RFIDタグ700に対してリードコマンド(DATA_READコマンド)を送信する場合について説明するが、電波通信の仕様上、このような手順が不要である場合には、リードコマンドの送信を省略してもよい。
その後、リード/ライト処理部652は、DATA_READコマンドに対する応答として送信されたリードデータをRFIDタグ700から受信すると、当該リードデータを送信したRFIDタグ700に対して、応答制御情報の書き込み命令を送信する。
また、リード/ライト処理部652は、書き込み領域に保存されているライトサイズを確認し、4バイトより大きかった場合には、当該ライトアドレスと、同じく書き込み領域に保存されているライトデータの先頭4バイトとを、それぞれライトコマンドに設定する。加えて、リード/ライト処理部652は、ライトコマンドに設定しきれなかった5バイト目以降の残りのデータを、内部メモリの所定の領域に定義された残データ領域に保存する。
そして、リード/ライト処理部652は、書き込み領域に保存されているライトアドレスを4バイトぶんだけ後方にシフトし、また、同じく書き込み領域に保存されているライトサイズから4バイトを減算する。ここで、ライトアドレスをずらすことによって、次に送信されるライトコマンドには、まだライトコマンドが送信されていない5バイト目以降のデータのアドレスが設定されることになる。
さらに、リード/ライト処理部652は、ライトコマンドに設定しきれなかったライトデータの一部が残っていることを示すために、領域分割フラグをONにし、また、ライトコマンドのリトライ送信を制御するための失敗回数にゼロを設定する。
一方、リード/ライト処理部652は、書き込み領域に保存されているライトサイズが4バイト以下であった場合には、当該ライトアドレス、および、書き込み領域に保存されているライトデータを、それぞれライトコマンドに設定し、また、ライトデータの全部をライトコマンドに設定したことを示すために、領域分割フラグをOFFにし、また、失敗回数にゼロを設定する。
ここで、図18を用いて、リード/ライト処理部652により生成されるライトコマンドについて説明する。図18は、本実施例2に係るライトコマンドの一例を示す図である。同図に示すように、ライトコマンドには、このコマンドがライトコマンドであることを示すアクセスコマンド85(WRITE4BYTE)と、タグID86と、ライトアドレス87と、ライトデータ88とが含まれる。
このようにして、ライトコマンドにライトアドレスおよびライトデータを設定した後に、リード/ライト処理部652は、1タグ応答で応答されたタグIDを指定して、ライトコマンドを送信する。これにより、当該タグIDによって識別されるRFIDタグ700において、ライトコマンドに設定されたライトアドレスを先頭アドレスとする4バイトのデータがライトされる。
そして、リード/ライト処理部652は、ライトコマンドに対する応答としてRFIDタグ700から送信されたライト結果を受信すると、応答されたライト結果とタグIDとを対応付けて記憶部240に記憶し、その後、領域分割フラグがONであるか否かを確認する。
ここで、領域分割フラグがONでなかった場合や、領域分割フラグがONであっても、読み出し領域に保存されているライトサイズがゼロであった場合には、リード/ライト処理部652は、ホストコンピュータ500から送信されたライト指示の対象となるライトデータが全てライトされたと判断し、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信する。
また、ライトコマンドに対する応答として、データ書き込みの成功を保証しないライト結果を送信したRFIDタグ700に対しては、再度データ読み込みを行って、データ書き込みの成功を確認した後に、SUCCESSコマンドを送信するようにしてもよい。
一方、領域分割フラグがONであり、かつ、読み出し領域に保存されているライトサイズがゼロでなかった場合には、リード/ライト処理部652は、ホストコンピュータ500から送信されたライト指示の対象となるライトデータがまだ全てライトされていないと判断し、続きのデータをライトするため、残データ領域に保存された残りのデータを書き込み領域のライトデータに設定した後に、書き込み領域の情報をライトコマンドに設定し、再度、1タグ応答で応答されたタグIDを指定して、当該ライトコマンドを送信する。
また、リード/ライト処理部652は、ライトコマンドに対する応答として、所定の時間を経過しても、RFIDタグ700からライト結果を受信できなかった場合には、失敗回数に1を加算する。そして、失敗回数がM回(例えば、2回など)未満であった場合には、リード/ライト処理部652は、ライトコマンドのリトライ送信を行い、一方、失敗回数がM回以上であった場合には、SUCCESSコマンドを生成し、交信範囲内に存在するRFIDタグ700に向けて送信する。
続いて、RFIDタグ700の構成について説明する。RFIDタグ700は、アンテナ310と、電波インタフェース部320と、整流部330と、記憶部740と、制御部350とを有する。
電波インタフェース部320は、アンテナ310を介して電波を送受信することにより、リーダライタ600との間で電波通信を行う処理部である。例えば、電波インタフェース部320は、電波によって、リードコマンドやライトコマンドをリーダライタ600から受信し、リードコマンドやライトコマンドに対する応答となるリードデータやライト結果などのデータ処理結果をリーダライタ600に対して送信する。
整流部330は、リーダライタ600から受信した電波を整流することによって電力を生成し、生成した電波を記憶部740および制御部350に供給する処理部である。
記憶部740は、各種のデータなどを記憶する不揮発性のメモリであり、特に本発明に関連するものとしては、タグIDや、ホストコンピュータ500によって実行される業務処理に関する各種のデータや、リーダライタ600から送信された応答制御情報などを記憶する。
制御部350は、RFIDタグ700の全体制御を行う処理部であり、特に本発明に関連するものとしては、機能概念的に、応答制御部751と、データ処理部352とを備える。
応答制御部751は、リーダライタ600から送信される各種コマンドに基づいて、タグIDの送信や、記憶部740に対するデータのリードやライトを制御する処理部である。
具体的には、応答制御部751は、電波インタフェース部320を介して、リーダライタ600から送信されたタグ探索コマンドを受信すると、当該タグ探索コマンドに含まれている応答制御情報と、記憶部740に記憶されている応答制御情報とを比較する。そして、応答制御情報が同じであった場合には、応答制御部751は、当該探索コマンドに対してはすでに応答済みであると判断し、次の探索コマンドが送信されるのを待つ。
一方、応答制御情報が異なっていた場合には、応答制御部751は、衝突回避処理を行い、その結果に応じて、リーダライタ600に対してタグIDを送信する。ここでいう衝突回避処理とは、複数のRFIDタグ700から同時にタグIDが応答されることによって、リーダライタが通信不能になるのを防ぐための処理であり、アンチコリジョン処理とも呼ばれる。かかる衝突回避処理としては、これまでにもさまざまな技術が提案されており、いずれの技術を用いるかは、ここでは特定しない。
例えば、タグ探索コマンドを受信したタイミングで乱数を発生させ、得られた乱数が所定の数値条件を満たしているか否かによって、リーダライタに対する応答を行うか否かを決定する方法などが用いられる。
そして、応答制御部751は、電波インタフェース部320を介して、リーダライタ600から送信されたコマンドを受信すると、受信したコマンドの種類を確認する。ここで、受信したコマンドがリードコマンド(DATA_READコマンド)であった場合には、RFIDタグ700は「DATA_EXCHANGE状態」となる。
この「DATA_EXCHANGE状態」とは、RFIDタグ700において、データ送受信が可能になった状態であり、この状態になった場合、応答制御部751は、リーダライタ600からのタグ探索コマンドに対して、タグIDを応答しない。
そして、この場合、応答制御部751は、データ処理部352を制御して、当該リードコマンドに含まれているリードアドレスに基づいて記憶部740からデータを読み出し、読み出したデータを、電波インタフェース部320を介して、リーダライタ600に対して送信する。
また、応答制御部751は、受信したコマンドがSUCCESSコマンドであった場合には、再度タグIDを送信し、また、FAILコマンドであった場合には、再度衝突回避処理を行い、INITIALIZEコマンドであった場合には、RFIDタグ700の各種設定を初期状態にリセットし、次の探索コマンドが受信されるのを待つ。
その後、応答制御部751は、電波インタフェース部320を介して、リーダライタ600から応答制御情報を受信すると、受信した応答制御情報を記憶部740に書き込む。ここで記憶された応答制御情報は、次にタグ探索コマンドが受信された際に、そのタグ探索コマンドに含まれた応答制御情報と比較され、当該タグ探索コマンドに対する応答を行うか否かの判定に用いられる。
そして、応答制御部751は、電波インタフェース部320を介して、リーダライタ600から送信されたコマンドをさらに受信すると、受信したコマンドの種類を確認し、リードコマンドであった場合には、当該リードコマンドに含まれているリードアドレスに基づいて記憶部740からデータを読み出し、読み出したデータを、電波インタフェース部320を介して、リーダライタ600に対して送信する。
また、応答制御部751は、受信されたコマンドがライトコマンドであった場合には、当該ライトコマンドに含まれているライトアドレスおよびライトデータに基づいて、記憶部740にデータを書き込み、リーダライタ600に対してライト結果を送信する。
また、応答制御部751は、受信されたコマンドがSUCCESSコマンドであった場合には、次のコマンドが受信されるのを待ち、INITIALIZEコマンドであった場合には、RFIDタグ700の各種設定を初期状態にリセットし、次の探索コマンドが受信されるのを待つ。
データ処理部352は、応答制御部751からの指示に基づいて、記憶部740に対するデータの読み出しや、書き込みを行う処理部である。データ処理部352は、データの読み出しを行った場合には、読み出したデータをリードデータとして応答制御部751に応答し、データの書き込みを行った場合には、書き込みが正しく行えたか否かを示す情報を、ライト結果として応答制御部751に応答する。
次に、図19〜24を用いて、本実施例2に係るホストコンピュータ500、リーダライタ600およびRFIDタグ700の処理手順について説明する。なお、リーダライタ600の処理手順については、RFIDタグ700からデータをリードする際に行われるデータリード処理と、RFIDタグ700にデータをライトする際に行われるデータライト処理とをそれぞれ説明する。また、以下では、これまでに説明したリードコマンドを「DATA_READコマンド」と呼び、ライトコマンドを「WRITE4BYTEコマンド」と呼ぶ。ただし、本発明においてデータの読み書きに使われるコマンドは、これらのコマンドに限定されるものではない。
最初に、本実施例2に係るホストコンピュータ500の処理手順について説明する。図19は、本実施例2に係るホストコンピュータ500の処理手順を示すフローチャートである。同図に示すように、ホストコンピュータ500は、アプリケーション部132が、業務処理の実行中に発生する所定のタイミングを検出すると(ステップS501,Yes)、コマンド生成部531に対してタグ探索指示の生成を依頼する。
アプリケーション部132からの依頼に応じて、コマンド生成部531は、記憶部120に記憶されたリード領域情報およびライト領域情報を取得し(ステップS502)、また、応答制御情報を生成する(ステップS503)。
そして、コマンド生成部531は、記憶部120から取得したリード領域情報、ライト領域情報および応答制御情報に基づいて、タグ探索指示を生成する(ステップS504)。コマンド生成部531によってタグ探索指示が生成されると、アプリケーション部132は、生成されたタグ探索指示をリーダライタ600に送信する(ステップS505)。
その後、NWインタフェース部110が、タグ探索指示に対する応答としてタグIDやリードデータ、ライト結果などのデータ処理結果をリーダライタ600から受信すると(ステップS506,Yes)、アプリケーション部132が、これらデータ処理結果を用いて各種の業務処理を実行する(ステップS507)。
続いて、本実施例2に係るリーダライタ600によるデータリード処理の処理手順について説明する。図20および21は、本実施例2に係るリーダライタ600によるデータリード処理の処理手順を示すフローチャート(1)および(2)である。これらの図に示すように、リーダライタ600は、リード指示を含んだタグ探索指示をホストコンピュータ500から受信すると(ステップS601,Yes)、タグ探索処理部251が、タグ探索コマンドを生成し(ステップS602)、生成したタグ探索コマンドを、電波インタフェース部220を介して、アンテナ210の交信範囲内に存在するRFIDタグ700に向けて送信する(ステップS603)。
そして、電波インタフェース部220を介して、タグ探索コマンドに対するRFIDタグ700からの応答を受信すると(ステップS604,Yes)、タグ探索処理部251は、受信した応答が1タグ応答でなかった場合には(ステップS605,No)、タグ応答が衝突していると判断し、FAILコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信した後に(ステップS606)、ステップS604に戻って、以降の処理を継続する。
一方、受信した応答が1タグ応答であった場合には(ステップS605,Yes)、タグ探索処理部251は、タグ探索指示のリード指示情報57(リードアドレスおよびリードサイズを含む)を内部メモリの所定の箇所に定義された読み出し領域に保存し(ステップS607)、その後に、リード/ライト処理部652に対してリードコマンドの送信を指示する。
リードコマンドの送信を指示されたリード/ライト処理部652は、読み出し領域に保存されているリードサイズが8バイトより大きかった場合には(ステップS608,Yes)、読み出し領域に保存されたリードアドレスをDATA_READコマンドに設定する(ステップS609)。
このDATA_READコマンドによって、ここで設定されたリードアドレスを先頭アドレスとする8バイトのデータがRFIDタグ700からリードされる。そこで、リード/ライト処理部652は、読み出し領域に保存されているリードアドレスを8バイトだけシフトし(ステップS610)、また、読み出し領域に保存されているリードサイズから8バイトを減算する(ステップS611)。
さらに、リード/ライト処理部652は、DATA_READコマンドに設定しきれなかったリードデータの一部が残っていることを示すために、領域分割フラグをONにした後に(ステップS612)、DATA_READコマンドのリトライ送信を制御するための失敗回数にゼロを設定する(ステップS613)。
一方、リード/ライト処理部652は、読み出し領域に保存されたリードサイズが8バイト以下であった場合には(ステップS608,No)、読み出し領域に保存されたリードアドレスをDATA_READコマンドに設定し(ステップS614)、また、リードデータの全部をDATA_READコマンドに設定したことを示すために、領域分割フラグをOFFにした後に(ステップS615)、失敗回数にゼロを設定する(ステップS613)。
このようにして、DATA_READコマンドにリードアドレスを設定した後に、リード/ライト処理部652は、1タグ応答で応答されたタグIDを指定して、DATA_READコマンドを送信する(ステップS616)。
そして、リード/ライト処理部652は、DATA_READコマンドに対する応答としてRFIDタグ700から送信されたリードデータを受信すると(ステップS617,Yes)、当該リードデータを送信したRFIDタグ700に対して、応答制御情報の書き込み命令を送信する(ステップS618)。
そして、リード/ライト処理部652は、応答されたリードデータとタグIDとを対応付けて記憶部240に記憶し、その後、領域分割フラグがONであるか否かを確認する。
ここで、領域分割フラグがONでなかった場合(ステップS619,No)や、領域分割フラグがONであっても(ステップS619,Yes)、読み出し領域に保存されているリードサイズがゼロであった場合には(ステップS620,Yes)、リード/ライト処理部652は、ホストコンピュータ500から送信されたリード指示の対象となるリードデータが全てリードされたと判断し、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信する(ステップS621)。
一方、領域分割フラグがONであり(ステップS619,Yes)、かつ、読み出し領域に保存されているリードサイズがゼロでなかった場合には(ステップS620,No)、リード/ライト処理部652は、ホストコンピュータ500から送信されたリード指示の対象となるリードデータがまだ全てリードされていないと判断し、ステップS608に戻って、以降の処理を継続する。
また、リード/ライト処理部652は、DATA_READコマンドに対する応答として、所定の時間を経過しても、RFIDタグ700からリードデータを受信できなかった場合には(ステップS617,No)、失敗回数に1を加算する(ステップS622)。
ここで、失敗回数がM回(例えば、2回など)未満であった場合には(ステップS623,Yes)、リード/ライト処理部652は、ステップS616に戻って、DATA_READコマンドのリトライ送信を行い、一方、失敗回数がM回以上であった場合には(ステップS623,No)、SUCCESSコマンドを生成し、交信範囲内に存在するRFIDタグ700に向けて送信する(ステップS621)。
また、ステップS604において、所定の時間が経過しても、タグ探索コマンドに対するRFIDタグ700からの応答を電波インタフェース部220が受信しなかった場合には(ステップS604,No)、リード/ライト処理部652は、無応答であると判断する。
また、タグ探索処理部251は、リーダライタ600からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したN回目の無応答でなかった場合には(ステップS624,No)、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信した後に(ステップS625)、ステップS604に戻って、以降の処理を継続する。
一方、連続したN回目の無応答であった場合には(ステップS624,Yes)、タグ探索処理部251は、交信範囲内に存在する全てのRFIDタグ700から応答が行われたと判断し、INITIALIZEコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信するとともに(ステップS626)、記憶部240に記憶されているタグIDおよびリードデータを、検出したタグIDおよび読み出したデータとして、ホストコンピュータ500に対して送信し(ステップS627)、処理を終了する。
続いて、本実施例2に係るリーダライタ600によるデータライト処理の処理手順について説明する。図22および23は、本実施例2に係るリーダライタ600によるデータライト処理の処理手順を示すフローチャート(1)および(2)である。これらの図に示すように、リーダライタ600は、ライト指示を含んだ探索指示をホストコンピュータ500から受信すると(ステップS701,Yes)、タグ探索コマンドを生成し(ステップS702)、生成したタグ探索コマンドを、アンテナ210の交信範囲内に存在するRFIDタグ700に向けて送信する(ステップS703)。
そして、タグ探索コマンドに対するRFIDタグ700からの応答を電波インタフェース部220が受信すると(ステップS704,Yes)、リード/ライト処理部652が、応答が1タグ応答でなかった場合には(ステップS705,No)、タグ応答が衝突していると判断し、FAILコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信した後に(ステップS706)、ステップS704に戻って、以降の処理を継続する。
一方、受信した応答が1タグ応答であった場合には(ステップS705,Yes)、タグ探索処理部251は、タグ探索指示のライト指示情報67(ライトアドレス、ライトサイズおよびライトデータを含む)を内部メモリの所定の箇所に定義された書き込み領域に保存し(ステップS707)、その後に、リード/ライト処理部652に対してライトコマンドの送信を指示する。
ライトコマンドの送信を指示されたリード/ライト処理部652は、応答されたタグID、所定のリードアドレスおよび所定のリードサイズを設定したDATA_READコマンドを送信する(ステップS708)。これにより、当該タグIDによって識別されるRFIDタグが、「DATA_EXCHANGE状態」になる。
その後、リード/ライト処理部652は、DATA_READコマンドに対して応答されたリードデータをRFIDタグ700から受信すると(ステップS709,Yes)、同じタグIDを指定して、応答制御情報の書き込み命令を送信する(ステップS710)。これにより、このタグIDで識別されるRFIDタグ700は、タグ探索コマンドに対して応答済みであると認識される。
そして、リード/ライト処理部652は、書き込み領域に保存されているライトサイズが4バイトより大きかった場合には(ステップS711,Yes)、リード/ライト処理部652は、書き込み領域に保存されたライトアドレスと、ライトデータの先頭4バイトとを、それぞれWRITE4BYTEコマンドに設定し(ステップS712およびS713)、ライトデータの5バイト目以降の残りのデータを、内部メモリの所定の箇所に定義された残データ領域に保存する(ステップS714)。
そして、リード/ライト処理部652は、書き込み領域に保存されているライトアドレスを4バイトだけシフトし(ステップS715)、また、書き込み領域に保存されているライトサイズから4バイトを減算する(ステップS716)。
さらに、リード/ライト処理部652は、WRITE4BYTEコマンドに設定しきれなかったライトデータの一部が残っていることを示すために、領域分割フラグをONにした後に(ステップS717)、WRITE4BYTEコマンドのリトライ送信を制御するための失敗回数にゼロを設定する(ステップS718)。
一方、リード/ライト処理部652は、書き込み領域に保存されたライトサイズが4バイト以下であった場合には(ステップS711,No)、書き込み領域に保存されたライトアドレスと、ライトデータとを、それぞれWRITE4BYTEコマンドに設定し(ステップS719およびS720)、さらに、ライトデータの全部をWRITE4BYTEコマンドに設定したことを示すために、領域分割フラグをOFFにした後に(ステップS721)、失敗回数にゼロを設定する(ステップS718)。
このようにして、WRITE4BYTEコマンドにライトアドレスを設定した後に、リード/ライト処理部652は、1タグ応答で応答されたタグIDを指定して、WRITE4BYTEコマンドを送信する(ステップS722)。
そして、リード/ライト処理部652は、WRITE4BYTEコマンドに対する応答としてRFIDタグ700から送信されたライト結果を受信すると(ステップS723,Yes)、応答されたライト結果とタグIDとを対応付けて記憶部240に記憶し、その後、領域分割フラグがONであるか否かを確認する。
ここで、領域分割フラグがONでなかった場合(ステップS724,No)や、領域分割フラグがONであっても(ステップS724,Yes)、書き込み領域に保存されているライトサイズがゼロであった場合には(ステップS725,Yes)、リード/ライト処理部652は、ホストコンピュータ500から送信されたライト指示の対象となるライトデータが全てライトされたと判断し、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信する(ステップS726)。
一方、領域分割フラグがONであり(ステップS724,Yes)、かつ、書き込み領域に保存されているライトサイズがゼロでなかった場合には(ステップS725,No)、リード/ライト処理部652は、ホストコンピュータ500から送信されたライト指示の対象となるライトデータがまだ全てライトされていないと判断し、残データ領域に保存されたデータを書き込み領域に設定し(ステップS727)、ステップS711に戻って、以降の処理を継続する。
また、リード/ライト処理部652は、WRITE4BYTEコマンドに対する応答として、所定の時間を経過しても、RFIDタグ700からライト結果を受信できなかった場合には(ステップS723,No)、失敗回数に1を加算する(ステップS728)。
ここで、失敗回数がM回(例えば、2回など)未満であった場合には(ステップS729,Yes)、リード/ライト処理部652は、ステップS722に戻って、WRITE4BYTEコマンドのリトライ送信を行い、一方、失敗回数がM回以上であった場合には(ステップS729,No)、SUCCESSコマンドを生成し、交信範囲内に存在するRFIDタグ700に向けて送信する(ステップS726)。
また、ステップS704において、所定の時間が経過しても、タグ探索コマンドに対するRFIDタグ700からの応答を電波インタフェース部220が受信しなかった場合には(ステップS704,No)、リード/ライト処理部652は、無応答であると判断する。
また、タグ探索処理部251は、リーダライタ600からタグ探索コマンドが繰り返し送信されるなかで、今回の無応答が、連続したN回目の無応答でなかった場合には(ステップS730,No)、SUCCESSコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信した後に(ステップS731)、ステップS704に戻って、以降の処理を継続する。
一方、連続したN回目の無応答であった場合には(ステップS730,Yes)、タグ探索処理部251は、交信範囲内に存在する全てのRFIDタグ700から応答が行われたと判断し、INITIALIZEコマンドを生成して、交信範囲内に存在するRFIDタグ700に向けて送信するとともに(ステップS732)、記憶部240に記憶されているタグIDおよびライト結果を、検出したタグIDおよび書き込み結果として、ホストコンピュータ500に対して送信し(ステップS733)、処理を終了する。
続いて、本実施例2に係るRFIDタグ700の処理手順について説明する。図24は、本実施例2に係るRFIDタグ700の処理手順を示すフローチャートである。同図に示すように、RFIDタグ700は、アンテナ310がリーダライタ600から送信された電波を受信すると、整流部330が、電波を整流して電力を生成し、制御部350および記憶部740に供給する。これにより、RFIDタグ700は「READY状態」となる(ステップS801)。
そして、応答制御部751が、電波インタフェース部320を介して、リーダライタ600から送信された探索コマンドを受信すると(ステップS802,Yes)、探索コマンドに含まれている応答制御情報と、記憶部740に記憶されている応答制御情報とを比較し、同じであった場合には(ステップS803,Yes)、当該探索コマンドに対してはすでに応答済みであると判断し、以降の処理を行わず、ステップS802に戻って、次に送信される探索コマンドを待つ。
一方、応答制御情報が異なっていた場合には(ステップS803,No)、RFIDタグ700は「ID状態」となり(ステップS804)、応答制御部751が、衝突回避処理を行い(ステップS805)、その結果に応じて、リーダライタ600に対してタグIDを送信する(ステップS806)。
そして、電波インタフェース部320を介して、リーダライタ600から送信されたコマンドを受信すると(ステップS807,Yes)、応答制御部751が、受信したコマンドの種類を確認する。
ここで、受信したコマンドがDATA_READコマンドであった場合には、RFIDタグ700は「DATA_EXCHANGE状態」となり(ステップS808)、応答制御部751によって制御されたデータ処理部352が、当該DATA_READコマンドに含まれているリードアドレスに基づいて記憶部740からデータを読み出し(ステップS809)、読み出したデータを、電波インタフェース部320を介して、リーダライタ600に対して送信する(ステップS810)。
また、応答制御部751は、受信したコマンドがSUCCESSコマンドであった場合には(ステップS811)、ステップS806に戻って、再度タグIDを送信したうえで以降の処理を継続し、FAILコマンドであった場合には(ステップS812)、ステップS805に戻って、再度衝突回避処理を行ったうえで以降の処理を継続し、INITIALIZEコマンドであった場合には(ステップS813)、ステップS801に戻って、RFIDタグ700の各種設定を初期状態にリセットし、次の探索コマンドが送信されるのを待つ。
その後、電波インタフェース部320を介して、リーダライタ600から送信された応答制御情報を受信すると(ステップS814,Yes)、応答制御部751が、応答制御情報を記憶部740に書き込む(ステップS815)。
そして、電波インタフェース部320を介して、リーダライタ600から送信されたコマンドをさらに受信すると(ステップS816,Yes)、応答制御部751が、受信したコマンドの種類を確認し、DATA_READコマンドであった場合には、当該DATA_READコマンドに含まれているリードアドレスに基づいて、記憶部740の指定されたアドレスからデータを読み出し(ステップS817)、読み出したデータを、電波インタフェース部320を介して、リーダライタ600に対して送信する(ステップS818)。
また、応答制御部751は、受信したコマンドがWRITE4BYTEコマンドであった場合には、当該WRITE4BYTEコマンドに含まれているライトアドレスおよびライトデータに基づいて、記憶部740の指定されたアドレスにデータを書き込み(ステップS819)、リーダライタ600に対してライト結果を送信する(ステップS820)。
また、応答制御部751は、受信されたコマンドがSUCCESSコマンドであった場合には(ステップS821)、ステップS816に戻って、次のコマンドが受信されるのを待ち、INITIALIZEコマンドであった場合には(ステップS822)、ステップS801に戻って、RFIDタグ700の各種設定を初期状態にリセットし、次の探索コマンドが送信されるのを待つ。
上述してきたように、本実施例2では、ホストコンピュータ500において、コマンド生成部531が、リード指示やライト指示を含めたタグ探索指示を生成し、アプリケーション部132が、生成されたタグ探索指示をリーダライタ600に対して送信し、リーダライタ600において、タグ探索処理部251が、タグ探索指示をホストコンピュータ500から受信した場合に、RFIDタグ700を一意に識別するタグIDの送信を要求するタグ探索コマンドを送信し、リード/ライト処理部652が、タグ探索コマンドに対する応答としてRFIDタグ700から送信されたタグIDを受信した場合に、当該タグIDにより識別されるRFIDタグ700に対して、タグ探索指示に含まれていたリード指示やライト指示に基づいて、データのリードコマンドやライトコマンドを送信する。
これにより、従来、ホストコンピュータ500によってRFIDタグ700それぞれに対して1つずつ行われていたリード指示やライト指示を、1回のタグ探索指示と同時にまとめて行うことが可能になり、ホストコンピュータ500とリーダライタ600との間でやり取りされるデータの量を削減することができるとともに、RFIDタグ700に対するデータのリードやライトを行う際に生じる、ホストコンピュータ500とリーダライタ600との間の通信におけるオーバーヘッドを低減することができる。
また、本実施例2では、ホストコンピュータ500により送信されるタグ探索指示には、リードやライトを行うデータのリードサイズ、ライトサイズが含まれており、リーダライタ600において、リード/ライト処理部652が、タグ探索指示に含まれたリードサイズやライトサイズが、リードコマンドやライトコマンドにより要求可能なデータの上限サイズを超えていた場合には、当該上限サイズ以下となるサイズを、リードコマンドやライトコマンドにより要求するデータのサイズとして設定し、設定したサイズごとに分割された複数のデータのリードコマンドやライトコマンドを送信する。
これにより、リードやライトを行うデータがリードコマンドやライトコマンドにより要求可能なデータの上限サイズを超えていた場合でも、リード指示および/またはライト指示をまとめて行うことが可能になり、RFIDタグ700に対するデータのリードやライトを行う際に生じる、ホストコンピュータ500とリーダライタ600との間の通信におけるオーバーヘッドをさらに低減することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてもよいものである。そこで、以下では実施例3として、本発明に含まれる他の実施例を説明する。
例えば、上記実施例では、図4、5、15および16に示したように、リード指示を含んだタグ探索指示と、ライト指示を含んだタグ探索指示とをそれぞれ用いる場合について説明したが、1つのタグ探索指示に含めるようにしてもよい。図25は、リード指示およびライト指示を含んだタグ探索指示の一例を示す図である。なお、以下では、実施例2において、リード指示およびライト指示を1つのタグ探索指示に含めた場合について説明する。
例えば、ホストコンピュータ500のコマンド生成部531が、同図に示すように、リード指示およびライト指示を含んだタグ探索指示であることを示す制御コマンド91(Inventory_rw)と、所定のパラメータ92と、応答制御情報93と、リード指示情報94と、ライト指示情報95とを含んだタグ探索指示を生成する。そして、これを受信したリーダライタ600のタグ探索処理部251が、リード指示情報94とライト指示情報95とを、それぞれ、読み出し領域と書き込み領域とに保存した後に、リード/ライト処理部652に対して、リードコマンドおよびライトコマンドの送信を指示する。
これにより、RFIDタグ700に対して、データのリードおよびライトを同時に行う場合でも、リード指示およびライト指示をまとめて行うことが可能になり、RFIDタグ700に対するデータのリードやライトを行う際に生じる、ホストコンピュータ500とリーダライタ600との間の通信におけるオーバーヘッドをさらに低減することができる。
また、例えば、1つの探索指示情報に、複数のリード指示やライト指示を含めるようにしてもよい。図26は、リード指示またはライト指示を複数含んだタグ探索指示の一例を示す図である。同図に示すように、このタグ探索指示には、リード指示またはライト指示を複数含んだタグ探索指示であることを示す制御コマンドA1(Inventory_rwn)と、所定のパラメータA2と、応答制御情報A3と、領域数A4と、アクセス指示情報A51〜A5nとが含まれている。
ここで、領域数A4は、アクセス指示情報A51〜A5nに設定されているリード指示またはライト指示の数である。また、アクセス指示情報A51〜A5nは、n個のリード指示またはライト指示を設定するための領域であり、それぞれ、読み書きフラグと、アドレスと、サイズと、ライトデータとを含んでいる。読み書きフラグには、アクセス指示情報A51〜A5nに設定されているアクセス指示がリード指示であるかライト指示であるかを示す2値の値(例えば、「0」と「1」)が設定される。そして、アクセス指示がリード指示である場合には、アドレスには、リードアドレスが設定され、サイズには、リードサイズが設定され、ライトデータには、何も設定されない。一方、アクセス指示がライト指示である場合には、アドレスには、ライトアドレスが設定され、サイズには、ライトサイズが設定され、ライトデータには、ライト対象のデータが設定される。
例えば、ホストコンピュータ500のコマンド生成部531が、同図に示すような、リード指示またはライト指示を複数含んだタグ探索指示を生成する。そして、これを受信したリーダライタ600のタグ探索処理部251が、領域数A4に設定されている数だけ、アクセス指示情報A51からA5nに向けて順番にアクセス指示を取得する。そして、タグ探索処理部251は、取得したアクセス指示ごとに、読み書きフラグに基づいて、当該アクセス指示がリード指示であるか、ライト指示であるかを判別し、判別結果に基づいて、リード指示またはライト指示をそれぞれ読み出し領域または書き込み領域に保存し、その後、リード/ライト処理部652に対して、リードコマンドまたはライトコマンドの送信を指示する。
これにより、RFIDタグ700の不連続な記憶領域に格納された複数のデータをそれぞれリードする場合や、RFIDタグ700の不連続な記憶領域に複数のデータをそれぞれライトする場合でも、リード指示やライト指示をまとめて行うことが可能になり、RFIDタグ700に対するデータのリードやライトを行う際に生じる、ホストコンピュータ500とリーダライタ600との間の通信におけるオーバーヘッドをさらに低減することができる。
また、上記実施例では、リーダライタについて説明したが、リーダライタが有する構成をソフトウェアによって実現することで、同様の機能を有するリーダライタ制御プログラムを得ることができる。そこで、このリーダライタ制御プログラムを実行するコンピュータについて説明する。
図27は、リーダライタ制御プログラムを実行するコンピュータの構成を示す機能ブロック図である。同図に示すように、このコンピュータ800は、RAM(Random Access Memory)810と、CPU(Central Processing Unit)820と、ROM(Read Only Memory)830と、NWインタフェース840と、電波インタフェース850とを有する。
RAM810は、プログラムやプログラムの実行途中結果などを記憶するメモリであり、CPU820は、RAM810からプログラムを読み出して実行する中央処理装置であり、ROM830は、プログラムやデータを格納する不揮発性のメモリである。
NWインタフェース840は、コンピュータ800をネットワーク経由で他のコンピュータに接続するためのインタフェースであり、電波インタフェース850は、アンテナを介して電波通信を行うためのインタフェースである。
そして、このコンピュータ800において実行されるリーダライタ制御プログラム811は、あらかじめROM830にインストールされる。あるいは、このリーダライタ制御プログラム811は、NWインタフェース840を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ800にインストールされる。
そして、インストールされたリーダライタ制御プログラム811は、ROM830に記憶され、RAM810に読み出されてCPU820によってリーダライタ制御プロセス821として実行される。
また、上記実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
以上のように、本発明に係るリーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法は、所定のデータを記憶するRFIDタグに対してデータのリードおよび/またはライトを行うリーダライタ装置と、RFIDタグに対するデータのリード指示および/またはライト指示をリーダライタ装置に対して行うホスト装置とから構成されるデータアクセス制御システムに用いた場合に有用であり、特に、RFIDタグに対するデータのリードおよび/またはライトを行う際に生じる、ホスト装置とリーダライタ装置との間の通信におけるオーバーヘッドを低減することが要求される場合に適している。
本実施例1に係るデータアクセス制御方法の概念を説明するための説明図である。 本実施例1に係るRFIDシステムの構成を示す機能ブロック図である。 本実施例1に係るリード指示を含んだタグ探索指示の一例を示す図である。 本実施例1に係るライト指示を含んだタグ探索指示の一例を示す図である。 本実施例1に係るリードコマンドの一例を示す図である。 本実施例1に係るライトコマンドの一例を示す図である。 本実施例1に係るホストコンピュータの処理手順を示すフローチャートである。 本実施例1に係るリーダライタによるデータリード処理の処理手順を示すフローチャート(1)である。 本実施例1に係るリーダライタによるデータリード処理の処理手順を示すフローチャート(2)である。 本実施例1に係るリーダライタによるデータライト処理の処理手順を示すフローチャート(1)である。 本実施例1に係るリーダライタによるデータライト処理の処理手順を示すフローチャート(2)である。 本実施例1に係るRFIDタグの処理手順を示すフローチャートである。 本実施例2に係るデータアクセス制御方法の概念を説明するための説明図である。 本実施例2に係るRFIDシステムの構成を示す機能ブロック図である。 本実施例2に係るリード指示を含んだタグ探索指示の一例を示す図である。 本実施例2に係るライト指示を含んだタグ探索指示の一例を示す図である。 本実施例2に係るリードコマンドの一例を示す図である。 本実施例2に係るライトコマンドの一例を示す図である。 本実施例2に係るホストコンピュータの処理手順を示すフローチャートである。 本実施例2に係るリーダライタによるデータリード処理の処理手順を示すフローチャート(1)である。 本実施例2に係るリーダライタによるデータリード処理の処理手順を示すフローチャート(2)である。 本実施例2に係るリーダライタによるデータライト処理の処理手順を示すフローチャート(1)である。 本実施例2に係るリーダライタによるデータライト処理の処理手順を示すフローチャート(2)である。 本実施例2に係るRFIDタグの処理手順を示すフローチャートである。 リード指示およびライト指示を含んだタグ探索指示の一例を示す図である。 リード指示またはライト指示を複数含んだタグ探索指示の一例を示す図である。 リーダライタ制御プログラムを実行するコンピュータの構成を示す機能ブロック図である。 従来のデータアクセス制御方法を説明するための説明図である。
符号の説明
10,100,500 ホストコンピュータ
110 NWインタフェース部
120 記憶部
130 制御部
131,531 コマンド生成部
132 アプリケーション部
20,200,600 リーダライタ
21,210 アンテナ
220 電波インタフェース部
230 NWインタフェース部
240 記憶部
250 制御部
251 タグ探索処理部
252,652 リード/ライト処理部
30,300,700 RFIDタグ
31,310 アンテナ
320 電波インタフェース部
330 整流部
340,740 記憶部
350 制御部
351,751 応答制御部
352 データ処理部
40,400 ネットワーク
800 コンピュータ
810 RAM
811 リーダライタ制御プログラム
820 CPU
821 リーダライタ制御プロセス
830 ROM
840 NWインタフェース
850 電波インタフェース
51,54,61,64,91,A1 制御コマンド
52,55,62,65,92,A2 パラメータ
53,57,94 リード指示情報
63,67,95 ライト指示情報
56,66,93,A3 応答制御情報
A4 領域数
A51〜A5n アクセス指示情報
71,74,81,85 アクセスコマンド
72,75,82,86 タグID
73,76 リードアドレス
83,87 ライトアドレス
84,88 ライトデータ

Claims (6)

  1. ホスト装置からの指示に応じて、RFIDタグに対するデータのリードおよび/またはライトを行うリーダライタ装置であって、
    RFIDタグに対するデータのリード指示および/またはライト指示を含んだタグ探索指示を前記ホスト装置から受信するタグ探索指示受信手段と、
    前記タグ探索指示受信手段によりタグ探索指示が受信された場合に、RFIDタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手段と、
    前記タグ識別情報要求手段により送信された送信要求に対する応答としてRFIDタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるRFIDタグに対して、前記リード指示および/または前記ライト指示に基づいて、データのリード要求および/またはライト要求を送信するデータ処理要求手段と、
    を備えたことを特徴とするリーダライタ装置。
  2. 前記タグ探索指示には、リードおよび/またはライトを行うデータのリードサイズおよび/またはライトサイズが含まれており、
    前記データ処理要求手段は、前記タグ探索指示に含まれたリードサイズおよび/またはライトサイズが前記リード要求および/または前記ライト要求により要求可能なデータの上限サイズを超えていた場合には、当該上限サイズ以下となるサイズを、リード要求および/ライト要求により要求するデータのサイズとして設定し、設定したサイズごとに分割された複数のデータのリード要求および/またはライト要求を送信することを特徴とする請求項1に記載のリーダライタ装置。
  3. 前記タグ探索指示には、リードおよび/またはライトを行うデータのリード先および/またはライト先となるRFIDタグの記憶領域を示す複数のアドレス情報が含まれており、
    前記データ処理要求手段は、前記タグ探索指示に含まれたアドレス情報ごとに前記リード要求および/またはライト要求を送信することを特徴とする請求項1または2に記載のリーダライタ装置。
  4. ホスト装置からの指示に応じて、RFIDタグに対するデータのリードおよび/またはライトを行うリーダライタ装置を制御するリーダライタ制御プログラムであって、
    RFIDタグに対するデータのリード指示および/またはライト指示を含んだタグ探索指示を前記ホスト装置から受信するタグ探索指示受信手順と、
    前記タグ探索指示受信手順によりタグ探索指示が受信された場合に、RFIDタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手順と、
    前記タグ識別情報要求手順により送信された送信要求に対する応答としてRFIDタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるRFIDタグに対して、前記リード指示および/または前記ライト指示に基づいて、データのリード要求および/またはライト要求を送信するデータ処理要求手順と、
    をコンピュータに実行させることを特徴とするリーダライタ制御プログラム。
  5. 所定のデータを記憶するRFIDタグに対してデータのリードおよび/またはライトを行うリーダライタ装置と、RFIDタグに対するデータのリード指示および/またはライト指示をリーダライタ装置に対して行うホスト装置とから構成されるデータアクセスシステムであって、
    前記ホスト装置は、
    前記リード指示および/またはライト指示を含んだタグ探索指示を生成するタグ探索指示生成手段と、
    前記タグ探索指示生成手段により生成されたタグ探索指示を前記リーダライタ装置に対して送信するタグ探索指示送信手段を備え、
    前記リーダライタ装置は、
    前記タグ探索指示を前記ホスト装置から受信するタグ探索指示受信手段と、
    前記タグ探索指示受信手段によりタグ探索指示が受信された場合に、RFIDタグを一意に識別するタグ識別情報の送信要求を送信するタグ識別情報要求手段と、
    前記タグ識別情報要求手段により送信された送信要求に対する応答としてRFIDタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるRFIDタグに対して、前記リード指示および/または前記ライト指示に基づいて、データのリード要求および/またはライト要求を送信するデータ処理要求手段と、
    を備えたことを特徴とするデータアクセスシステム。
  6. ホスト装置からの指示に応じて、RFIDタグに対するデータのリードおよび/またはライトを行うリーダライタ装置を制御するデータアクセス制御方法であって、
    前記ホスト装置が、前記リード指示および/またはライト指示を含めたタグ探索指示を生成し、生成したタグ探索指示を前記リーダライタ装置に対して送信するタグ探索指示送信工程と、
    前記リーダライタ装置が、前記タグ探索指示を前記ホスト装置から受信した場合に、RFIDタグを一意に識別するタグ識別情報の送信要求を送信し、送信した送信要求に対する応答としてRFIDタグから送信されたタグ識別情報を受信した場合に、当該タグ識別情報により識別されるRFIDタグに対して、前記リード指示および/またはライト指示に基づいて、データのリード要求および/またはライト要求を送信するデータ処理要求工程と、
    を含んだことを特徴とするデータアクセス制御方法。
JP2006329958A 2006-12-06 2006-12-06 リーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法 Pending JP2008146184A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006329958A JP2008146184A (ja) 2006-12-06 2006-12-06 リーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法
EP07121916A EP1930839A3 (en) 2006-12-06 2007-11-29 Reader/writer apparatus, data access system, data access control method, and computer product
US11/947,243 US20080136599A1 (en) 2006-12-06 2007-11-29 Reader/writer apparatus, data access system, data access control method, and computer product
KR1020070126251A KR20080052474A (ko) 2006-12-06 2007-12-06 리더 라이터 장치, 데이터 액세스 시스템, 데이터 액세스제어 방법 및 컴퓨터 판독가능한 기록매체
CN2007101970772A CN101197001B (zh) 2006-12-06 2007-12-06 读/写器装置、数据访问系统、以及数据访问控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006329958A JP2008146184A (ja) 2006-12-06 2006-12-06 リーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法

Publications (1)

Publication Number Publication Date
JP2008146184A true JP2008146184A (ja) 2008-06-26

Family

ID=39233077

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006329958A Pending JP2008146184A (ja) 2006-12-06 2006-12-06 リーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法

Country Status (5)

Country Link
US (1) US20080136599A1 (ja)
EP (1) EP1930839A3 (ja)
JP (1) JP2008146184A (ja)
KR (1) KR20080052474A (ja)
CN (1) CN101197001B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009123144A (ja) * 2007-11-19 2009-06-04 Nidec Sankyo Corp Icカードリーダライタ
JP2010186390A (ja) * 2009-02-13 2010-08-26 Denso Wave Inc 無線タグリーダライタ
JP2010238080A (ja) * 2009-03-31 2010-10-21 Toshiba Corp 媒体処理装置、媒体処理方法、及び非接触通信媒体

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8249953B2 (en) * 2004-05-13 2012-08-21 Cisco Technology, Inc. Methods and apparatus for determining the status of a device
US7422152B2 (en) 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
US8113418B2 (en) * 2004-05-13 2012-02-14 Cisco Technology, Inc. Virtual readers for scalable RFID infrastructures
US8604910B2 (en) * 2004-07-13 2013-12-10 Cisco Technology, Inc. Using syslog and SNMP for scalable monitoring of networked devices
US7953826B2 (en) * 2005-07-14 2011-05-31 Cisco Technology, Inc. Provisioning and redundancy for RFID middleware servers
US7345585B2 (en) * 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
JP2008186499A (ja) * 2007-01-29 2008-08-14 Sony Corp ドライブ装置、記録メディアの取り扱い可能性報知方法、記録メディアの取り扱い動作制御方法および記録メディア
KR100961254B1 (ko) * 2008-02-26 2010-06-03 부산대학교 산학협력단 전자태그 통합처리 시스템 및 방법
WO2010018486A1 (en) * 2008-08-11 2010-02-18 Nxp B.V. Programmable device and programming method
SI23115A (sl) * 2009-07-06 2011-01-31 Vinko Kunc Postopek za komuniciranje aktivne pametne RFID nalepke z uporabniškim izpraševalnikom in s profesionalnim izpraševalnikom
US8342415B2 (en) * 2010-03-17 2013-01-01 Inside Secure Method of conducting a transaction using an NFC device
KR101554687B1 (ko) * 2010-08-27 2015-09-21 고려대학교 산학협력단 수동 통신 시스템에서의 데이터 전송 방법
CN103810513A (zh) * 2014-02-13 2014-05-21 颜力 一种用户rfid标签的数据操作方法及设备
US9477917B1 (en) * 2014-05-14 2016-10-25 Sprint Communications Company L.P. System and method of context specific identity in a radio frequency identity (RFID) chip
US10073994B2 (en) * 2014-10-13 2018-09-11 Avery Dennison Retail Information Services, Llc Successive memory writes in an RFID interrogator
US20160117530A1 (en) * 2014-10-28 2016-04-28 Avery Dennison Retail Branding and Information Solutions Methods for scanning and encoding a plurality of rfid tagged items
KR102356256B1 (ko) * 2015-03-27 2022-01-27 한국전자통신연구원 태그 데이터 쓰기 확인을 위한 알에프아이디 리더, 알에프아이디 태그 및 그 방법
CN110969036B (zh) * 2019-11-25 2021-04-30 独角兽网络科技(苏州)有限公司 一种rfid标签数据输出的方法、装置、设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03276383A (ja) * 1990-03-26 1991-12-06 Toppan Printing Co Ltd Icカードの通信システム
JPH07282210A (ja) * 1994-04-08 1995-10-27 Mitsubishi Electric Corp 非接触icカードインタフェース装置及びそれを用いた通信システム
JP2003178281A (ja) * 2001-12-11 2003-06-27 Matsushita Electric Ind Co Ltd Icカード及びその情報処理方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5850187A (en) * 1996-03-27 1998-12-15 Amtech Corporation Integrated electronic tag reader and wireless communication link
US5936527A (en) * 1998-02-10 1999-08-10 E-Tag Systems, Inc. Method and apparatus for locating and tracking documents and other objects
US7253717B2 (en) * 2000-11-29 2007-08-07 Mobile Technics Llc Method and system for communicating with and tracking RFID transponders
DE60218121T2 (de) * 2001-12-11 2007-05-31 Matsushita Electric Industrial Co. Limited, Kadoma IC-Karte und Datenverarbeitungsverfahren dafür
US7290287B2 (en) * 2003-11-20 2007-10-30 International Business Machines Corporation Security screening of electronic devices by device identifier
US7692532B2 (en) * 2004-07-30 2010-04-06 Reva Systems Corporation Interference monitoring in an RFID system
JP4257277B2 (ja) * 2004-08-25 2009-04-22 株式会社東芝 無線タグ装置、タグ識別装置および無線通信システム
US7769963B1 (en) * 2005-02-09 2010-08-03 Tc License Ltd. RF tag system with single step read and write commands
JP4887760B2 (ja) * 2005-11-30 2012-02-29 富士通株式会社 タグアクセス制御システム、タグアクセス制御方法およびタグアクセス制御プログラム
JP5071016B2 (ja) * 2006-10-23 2012-11-14 富士通株式会社 Rfidタグの応答制御方法、rfidシステム、rfidタグ、応答制御情報生成プログラム及び応答制御プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03276383A (ja) * 1990-03-26 1991-12-06 Toppan Printing Co Ltd Icカードの通信システム
JPH07282210A (ja) * 1994-04-08 1995-10-27 Mitsubishi Electric Corp 非接触icカードインタフェース装置及びそれを用いた通信システム
JP2003178281A (ja) * 2001-12-11 2003-06-27 Matsushita Electric Ind Co Ltd Icカード及びその情報処理方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009123144A (ja) * 2007-11-19 2009-06-04 Nidec Sankyo Corp Icカードリーダライタ
JP2010186390A (ja) * 2009-02-13 2010-08-26 Denso Wave Inc 無線タグリーダライタ
JP2010238080A (ja) * 2009-03-31 2010-10-21 Toshiba Corp 媒体処理装置、媒体処理方法、及び非接触通信媒体

Also Published As

Publication number Publication date
EP1930839A3 (en) 2009-12-16
CN101197001B (zh) 2010-06-16
CN101197001A (zh) 2008-06-11
KR20080052474A (ko) 2008-06-11
US20080136599A1 (en) 2008-06-12
EP1930839A2 (en) 2008-06-11

Similar Documents

Publication Publication Date Title
JP2008146184A (ja) リーダライタ装置、リーダライタ制御プログラム、データアクセスシステムおよびデータアクセス制御方法
CN101174308B (zh) 用于控制rfid标签的响应的方法、rfid系统及rfid读取控制装置
JP4483271B2 (ja) 無線通信装置,無線通信装置の応答データ処理方法
JP5027398B2 (ja) Icタグ識別方法
EP2782045B1 (en) RFID system, communication device and communication program
JP2006067160A (ja) 無線タグシステム、無線タグアクセス制御装置、無線タグアクセス制御方法、無線タグアクセス制御プログラム、及び無線タグ
JP4090808B2 (ja) 近接トランザクションを制御する方法およびシステム
EP2674898B1 (en) Improved serialization of RFID tags
JP5343646B2 (ja) 読取装置、コンピュータプログラム及び読取システム
CN103973340A (zh) 近场通信方法和近场通信设备
JP2011257807A (ja) Rfid機器およびその制御プログラム
JP4512110B2 (ja) Rfid装置、rfid装置用プログラム、rfid制御方法、及びrfidシステム
KR100876424B1 (ko) 무선 주파수 식별을 이용한 선체 블록 관리 시스템
JP2006338120A (ja) 非接触型リーダライタシステム
US20180357598A1 (en) Systems, Devices, and Methods for Monitoring Packages with Affixed Sensors
JP2023171419A (ja) チェックアウトシステム、可搬型pos端末、周辺機器の提示方法及び制御プログラム
JP4426820B2 (ja) 非接触icカード
JP2009200858A (ja) 無線通信装置及び無線通信方法及びプログラム
US20100156601A1 (en) LLRP-Based Flexible Reader System And Method
EP2747301B1 (en) Communication program, information processing apparatus, communication system, and communication method
JP6314459B2 (ja) 情報記録装置および記録情報管理方法
JP2009064150A (ja) 無線タグリーダライタ装置、無線タグ脱落検知方法及び無線タグ
CN103684547A (zh) 在终端中使用近场通信提供数据发送/接收的方法和设备
WO2023062785A1 (ja) リーダ管理装置、リーダ管理方法、及びプログラム
US11347950B2 (en) Event notification based on editing a transponder identifier

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111129

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120127

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120313