(57)【要約】【課題】  従来のデータ読み取り装置では、ＩＣタグの数や用途に応じてタイムスロット数を適切に設定しなければ、複数ＩＣタグのＩＤの読み取りに時間がかかるという課題があった。本発明は、ＩＣタグの数や用途に応じてタイムスロット数の設定方法を変更して適切に設定することにより、複数ＩＣタグのＩＤを高速に読み取ることを目的とする。【解決手段】  タイムスロット数の初期値を設定する複数の初期タイムスロット数設定手段と、使用環境と用途に応じて初期タイムスロット数設定手段を選択する初期タイムスロット数選択手段と、次タイムスロット数を設定する複数の次タイムスロット数設定手段と、データの送受信状況に応じて次タイムスロット数設定手段を選択する次タイムスロット数選択手段と、データの送受信状況と、初期タイムスロット数設定手段と、次タイムスロット数設定手段とによって、データの送受信を制御する制御部とを備える。【選択図】        図１
2008065443.tif 000002
【特許請求の範囲】
【請求項１】
データを送受信するための時間間隔であるタイムスロットの数を設定して、前記データが格納されたＩＣタグとの間で、前記データの送受信を行なうデータ読み取り装置であって、
複数の前記タイムスロットが初期の送受信期間内で重複する衝突を抑制するための初期タイムスロット数設定基準に基づいて、前記タイムスロット数の初期値を設定する一つ乃至複数の初期タイムスロット数設定手段と、
前記初期タイムスロット数設定手段の中から、前記データ読み取り装置の使用環境と用途に応じて前記初期タイムスロット数設定手段を選択する初期タイムスロット数選択手段と、
初期の送受信期間以降の次通信時に設定されるタイムスロット数を次タイムスロット数とし、前記データの送受信状況に応じて前記衝突を抑制するための次タイムスロット数設定基準に基づいて、次タイムスロット数を設定する一つ乃至複数の次タイムスロット数設定手段と、
前記次タイムスロット数設定手段の中から、前記データの送受信状況に応じて前記次タイムスロット数設定手段を選択する次タイムスロット数選択手段と、
前記ＩＣタグとの間で前記データの送受信を行ない、前記データの送受信状況を出力する送受信部と、
前記送受信部により出力された前記データの送受信状況と、前記初期タイムスロット数選択手段によって選択された前記初期タイムスロット数設定手段と、前記次タイムスロット数選択手段によって選択された前記次タイムスロット数設定手段とによって、前記送受信部の前記データの送受信を制御する制御部と、
を備えたことを特徴とするデータ読み取り装置。
【請求項２】
前記初期タイムスロット数設定手段は、過去の前記ＩＣタグとの間の送受信履歴を記録して統計処理する統計処理部を備え、前記初期タイムスロット数設定基準に基づいて、前記統計処理部が処理する値を初期値として設定することを特徴とする請求項１に記載のデータ読み取り装置。
【請求項３】
前記初期タイムスロット数設定手段は、前記初期タイムスロット数設定基準に基づいて、前記データ読み取り装置の使用環境と用途を分類した識別コードにより初期値を設定することを特徴とする請求項１に記載のデータ読み取り装置。
【請求項４】
前記初期タイムスロット数設定手段は、送受信対象となる前記ＩＣタグの枚数を設定するタグ枚数設定手段と、前記タグ枚数設定手段により設定されたタグ設定枚数によりタイムスロット数を設定するタグ・タイムスロット変換テーブルとを備え、前記初期タイムスロット数設定基準に基づいて、前記タグ・タイムスロット変換テーブルを利用して初期値を設定することを特徴とする請求項１に記載のデータ読み取り装置。
【請求項５】
前記次タイムスロット数設定手段は、送受信できた前記ＩＣタグの枚数を記録する記録手段と、前記タグ枚数設定手段で設定された前記タグ設定枚数と前記記録手段に記録されている送受信済みＩＣタグの枚数との差分により、前記タイムスロット数を設定する前記タグ・タイムスロット変換テーブルとを備え、前記次タイムスロット数設定基準に基づいて、前記タグ・タイムスロット変換テーブルを利用して前記次タイムスロット数を設定することを特徴とする請求項４に記載のデータ読み取り装置。
【請求項６】
前記次タイムスロット数設定手段は、前記次タイムスロット数設定基準に基づいて、現在設定されている前記タイムスロット数を前記次タイムスロット数として設定することを特徴とする請求項１に記載のデータ読み取り装置。
【請求項７】
前記次タイムスロット数設定手段は、前記次タイムスロット数設定基準に基づいて、それぞれの前記タイムスロットの中で、複数の前記ＩＣタグからの応答が衝突していることを検出し、前記次タイムスロット数を増加させることを特徴とする請求項１に記載のデータ読み取り装置。
【請求項８】
前記次タイムスロット数設定手段は、前記次タイムスロット数設定基準に基づいて、それぞれの前記タイムスロットの中で、複数の前記ＩＣタグからの応答が衝突していることを検出し、現在設定されている前記タイムスロット数によって前記次タイムスロット数を設定することを特徴とする請求項１に記載のデータ読み取り装置。
【請求項９】
前記次タイムスロット数設定手段は、前記次タイムスロット数設定基準に基づいて、それぞれの前記タイムスロットの中で、複数の前記ＩＣタグからの応答が衝突している第一の情報と、一つの前記ＩＣタグから応答している第二の情報と、どの前記ＩＣタグからも応答がない第三の情報とのいずれかを検出し、全ての前記タイムスロット数に対する前記三つの情報の比率を算出し、少なくとも一つの比率を使用して前記次タイムスロット数を設定することを特徴とする請求項１に記載のデータ読み取り装置。
【請求項１０】
前記次タイムスロット数設定手段は、前記次タイムスロット数設定基準に基づいて、前記三つの情報の比率を算出し、少なくとも一つの比率と、現在のタイムスロット数とを使用して前記次タイムスロット数を設定することを特徴とする請求項９に記載のデータ読み取り装置。
【請求項１１】
前記制御部は、全ての前記タイムスロットの中で複数の前記ＩＣタグからの応答が衝突していない場合でも、少なくとも一回は前記ＩＣタグに対する応答を要求することを特徴とする請求項１から請求項１０までのいずれかに記載のデータ読み取り装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物品の個別管理や人物の入退場管理などにおいて、ＩＣタグとの無線通信による非接触の自動認識（ＲＦＩＤ：Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を用いたデータ読み取り装置に関する。
【背景技術】
【０００２】
従来から、物品の個別管理や人物の入退場管理に、非接触のデータ通信による自動認識（ＲＦＩＤ）が行なわれている。この技術では、まず、識別対象物（物品や人物）に固有ＩＤを書き込んだＩＣタグを貼付しておき、ゲートやドアわきに設置されたデータ読み取り装置が、電波を使ってＩＣタグに電力を供給すると共に、ＩＣタグに書き込まれた固有ＩＤの読み出しのコマンドを送信する。
次に、ＩＣタグの方では、データ読み取り装置からの電波により電力が供給されて、ＩＣタグに内蔵されたシリコンチップが駆動される。また、ＩＣタグは、データ読み取り装置からのコマンドに応じて、固有ＩＤなどのＩＣタグに記憶されている情報を、データ読み取り装置から発射されている無変調の電波に対する反射の有り／無しによって応答を返す。
最後に、データ読み取り装置は、ＩＣタグからの応答である反射波の有無を識別し、固有ＩＤなどのＩＣタグに記憶されている情報を読み出す。
【０００３】
このようなＩＣタグのデータ読み取り装置に関する従来技術では、１台のデータ読み取り装置が複数のＩＣタグと通信する方式として、データを送るための時間間隔であるタイムスロットの数をデータ読み取り装置が指定し、ＩＣタグは内蔵している乱数発生器により、どのタイムスロットで応答するかを決めるタイムスロット方式が、特許文献１において開示されている。
【０００４】
【特許文献１】特開２００４−１９９４５０
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１で開示されている従来のタイムスロット方式では、ＩＣタグの数に対してタイムスロット数が少ない場合には、同一のタイムスロットで複数のＩＣタグが同時に応答してしまうため、データ読み取り装置は個々のＩＣタグを識別できず、再度、タイムスロット数を指定してＩＣタグの識別を行なう必要がある。逆に、ＩＣタグの数に対してタイムスロット数が多い場合には、ＩＣタグから応答がない無駄なタイムスロットが多く発生する。
また、ＩＣタグの用途に関しては、高速に移動する少数のＩＣタグを読み取る場合と、低速に移動する多数のＩＣタグを読み取る場合では、同じタイムスロット数設定方法では、うまくＩＣタグを読み取れない場合があった。
このようにＩＣタグの数や用途に対して、タイムスロット数を適切に設定しなければ、データ読み取り装置が複数ＩＣタグの固有ＩＤなどの情報を読み取るには、時間がかかりすぎるという問題があった。
【０００６】
本発明は、このような従来の問題点に着目してなされたものであって、用途によって、アプリケーションやデータ読み取り装置に設けられたスイッチなどを使用して、タイムスロット数の設定方法を変更でき、タイムスロット数を適切に設定することにより、複数ＩＣタグの情報を高速に読み取ることができるデータ読み取り装置を提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明に係るデータ読み取り装置は、データを送受信するための時間間隔であるタイムスロットの数を設定して、前記データが格納されたＩＣタグとの間で、前記データの送受信を行なうデータ読み取り装置であって、複数の前記タイムスロットが初期の送受信期間内で重複する衝突を抑制するための初期タイムスロット数設定基準に基づいて、前記タイムスロット数の初期値を設定する一つ乃至複数の初期タイムスロット数設定手段と、前記初期タイムスロット数設定手段の中から、前記データ読み取り装置の使用環境と用途に応じて前記初期タイムスロット数設定手段を選択する初期タイムスロット数選択手段と、初期の送受信期間以降の次通信時に設定されるタイムスロット数を次タイムスロット数とし、前記データの送受信状況に応じて前記衝突を抑制するための次タイムスロット数設定基準に基づいて、次タイムスロット数を設定する一つ乃至複数の次タイムスロット数設定手段と、前記次タイムスロット数設定手段の中から、前記データの送受信状況に応じて前記次タイムスロット数設定手段を選択する次タイムスロット数選択手段と、前記ＩＣタグとの間で前記データの送受信を行ない、前記データの送受信状況を出力する送受信部と、前記送受信部により出力された前記データの送受信状況と、前記初期タイムスロット数選択手段によって選択された前記初期タイムスロット数設定手段と、前記次タイムスロット数選択手段によって選択された前記次タイムスロット数設定手段とによって、前記送受信部の前記データの送受信を制御する制御部とを備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数のＩＣタグからの応答が衝突するタイムスロット、ならびにＩＣタグから応答がないタイムスロットを極力少なくし、タイムスロット数を適切に設定することで、複数ＩＣタグの情報を高速に読み取ることができるようになる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、本発明の実施の形態１におけるデータ読み取り装置の構成図である。
図１において、データ読み取り装置１は、１つ乃至複数の初期タイムスロット数設定手段１０ａ〜１０ｎで構成される初期タイムスロット数設定手段１０と、初期値タイムスロット数設定手段１０を選択する初期タイムスロット数選択手段１１と、１つ乃至複数の次通信時のタイムスロット数を設定する次タイムスロット数設定手段１２ａ〜１２ｎで構成される次タイムスロット数設定手段１２と、次タイムスロット数設定手段を選択する次タイムスロット数選択手段１３と、ＩＣタグとの間でデータ通信を行なう送受信部１４と、初期タイムスロット数選択手段１１によって選択された初期タイムスロット数設定手段（１０ａ〜１０ｎのいずれか）と次タイムスロット数選択手段１３によって選択された次タイムスロット数設定手段（１２ａ〜１２ｎのいずれか）によって送受信部１４の制御を行なう制御部１５とを有しており、ＩＣタグと通信するための送受信アンテナ２に接続されている。
【００１０】
以下、本発明の実施の形態１における処理動作の流れを、図２から図５までを適宜参照しながら詳細に説明する。
図２は、データ読み取り装置での概略処理のフローチャートである。
図３は、読み取るＩＣタグ枚数を設定した場合の、データ読み取り装置のＩＣタグ読み取り処理のフローチャートである。
図４は、ＩＣタグ読み取り処理における、データ読み取り装置と複数のＩＣタグとの間の動作を表わすタイミングチャートの一例の図である。
図５は、タグ・タイムスロット変換テーブルの一例の図である。
【００１１】
まず、図２のステップＳ２０において、データ読み取り装置１は、ＩＣタグとの通信を始める前に、初期タイムスロット数選択手段１１を用いて、初期タイムスロット数設定手段（１０ａ〜１０ｎ）のいずれを選択するかの処理を行なう。なお、データ読み取り装置に実装されている初期タイムスロット数設定手段が単一である場合には、ステップＳ２０をスキップしてもかまわない。
【００１２】
次に、ステップＳ２１において、次タイムスロット数選択手段１３を用いて、次タイムスロット数設定手段（１２ａ〜１２ｎ）のいずれを選択するかの処理を行なう。なお、データ読み取り装置に実装されている次タイムスロット数設定手段が単一である場合には、ステップＳ２１をスキップしてもかまわない。
【００１３】
次に、ステップＳ２２において、上記で選択された初期タイムスロット数設定手段（１０ａ〜１０ｎ）と次タイムスロット数設定手段（１２ａ〜１２ｎ）とを用いて、ＩＣタグとのデータの送受信処理であるＩＣタグ読み取り処理を行なう。ＩＣタグ読み取り処理は、制御部１５により処理の制御が行なわれ、ＩＣタグからの受信結果に応じて、制御部１５は送受信部１４のデータの送受信を制御する。このＩＣタグ読み取り処理の詳細については後述する。
【００１４】
最後に、ステップＳ２３において、ＩＣタグ読み取り処理が完了した場合に、次のＩＣタグ読み取り要求が発生していれば（ステップＳ２３のＹｅｓ）、再度、ＩＣタグ読み取り処理（ステップＳ２２）を行なう。次のＩＣタグ読み取り要求が発生していなければ（ステップＳ２３のＮｏ）、処理を終了する。
【００１５】
以下では、図３、図４、図５を基に、図２のステップＳ２２であるＩＣタグ読み取り処理の詳細を説明する。
初めに、図３のステップＳ１００において、ＩＣタグ設定枚数読み出しを行なう。図４のタイミングチャートの例では、読み出したＩＣタグ設定枚数が３に設定されており、ＩＣタグ１からＩＣタグ３までが処理の対象となる。
【００１６】
次に、ステップＳ１０１において、読み出したＩＣタグ設定枚数で、タグ・タイムスロット変換テーブルを参照し、さらに、ステップＳ１０２において、初期タイムスロット数を決定する。例えば、図５に示したタグ・タイムスロット変換テーブルの例に従うと、ＩＣタグ枚数３に対しては、対応するタイムスロット数４が初期タイムスロット数となる。
【００１７】
次に、ステップＳ１０３において、読み取るべきＩＣタグの選別を行なうために、条件を指定して、選択コマンドの送信を行なう。これは、図４のデータ読み取り装置のコマンドである、選択コマンド３００の送信に相当する。この結果、図４の例では、４枚あるＩＣタグ（ＩＣタグ１〜ＩＣタグ４）のうち、ＩＣタグ１〜ＩＣタグ３が選択され、これらの3枚のＩＣタグは選択状態に遷移する。ＩＣタグ４は選択されていないため、選択状態に遷移せず、以降の通信には参加しない。あわせて、データ読み取り装置１は、ＩＣタグ読み出し枚数を記録する変数をクリアする。
【００１８】
次に、ステップＳ１０４において、ＩＣタグにタイムスロット数を通知するために、質問コマンドの送信を行なう。これは、図４のデータ読み取り装置のコマンドである質問コマンド３１０に相当する。この質問コマンドには、タグ・タイムスロット変換テーブルの参照結果として、初期タイムスロット数に４を指定している。あわせて、データ読み取り装置１は、タイムスロットを遷移させるコマンドの送信回数を記録する変数と、衝突検出フラグを記録する変数をクリアする。
【００１９】
ＩＣタグ側では、上記の質問コマンド３１０を受信すると、どのタイムスロットで応答すべきかを決めるため、ＩＣタグ内部に有する乱数発生器を用いて指定されたタイムスロット数の範囲内で乱数を生成する。図４の例では、ＩＣタグ１とＩＣタグ２は乱数１を生成し、ＩＣタグ３は乱数２を生成している。これより、ＩＣタグ１とＩＣタグ２はタイムスロット１で応答し、ＩＣタグ３はタイムスロット２で応答することを決定する。なお、ＩＣタグが生成した乱数が０の場合、ＩＣタグは質問コマンドに対して応答するものとする。例えば、図４の場合、乱数０を生成したＩＣタグは、タイムスロット０で質問コマンド３１０に応答する。
【００２０】
次に、ステップＳ１０５において、質問コマンド３１０に対するＩＣタグからの応答を受信する。例えば、図４の１回目の質問期間におけるタイムスロット０では、ＩＣタグからの応答がないため、質問コマンド３１０に対する応答がないと判断する。これより、ステップＳ１０５の応答なしの分岐に進む。
【００２１】
次に、ステップＳ１１０において、タイムスロットを次に進めるために、タイムスロットを遷移させるタイムスロット遷移コマンドの送信回数と、質問コマンド３１０で指定したタイムスロット数との比較を行なう。図４の例では、タイムスロット０において、質問コマンド３１０で指定したタイムスロット数４に対して、タイムスロット遷移コマンドの送信回数が０である。このため、ステップＳ１１０のＹｅｓの分岐へ進む。
【００２２】
次に、ステップＳ１１１において、タイムスロット遷移コマンドの送信を行なう。これは、図４の遷移コマンド３１１の送信に相当する。
【００２３】
次に、ステップＳ１０５において、ＩＣタグからの応答を受信する。図４の例では、ＩＣタグ１とＩＣタグ２の両方が応答（３１２と３１３）しているため、データ読み取り装置１は、２つの応答を区別できず、衝突ありと判断する。これより、ステップＳ１０５の衝突ありの分岐へ進む。
【００２４】
次に、ステップＳ１０９において、データ読み取り装置１は、衝突を検出すると、衝突検出フラグをオンにセットし、ステップＳ１１０へ進む。
【００２５】
次に、ステップＳ１１０において、タイムスロットを次に進めるために、タイムスロット遷移コマンドの送信回数と、質問コマンド３１０で指定したタイムスロット数との比較を行なう。図４の例では、タイムスロット１までの期間で、質問コマンド３１０で指定したタイムスロット数４に対して、タイムスロット遷移コマンドの送信回数が１である。このため、ステップＳ１１０のＹｅｓの分岐へ進む。
【００２６】
次に、ステップＳ１１１において、タイムスロット遷移コマンドの送信を行なう。これは、図４の遷移コマンド３１４の送信に相当する。
【００２７】
次に、ステップＳ１０５において、ＩＣタグからの応答を受信する。図４の例では、ＩＣタグ３のみが応答（３１５）しているため、ステップＳ１０５の衝突なしの分岐へ進む。
【００２８】
次に、ステップＳ１０６において、ＩＣタグ３の受信データの処理を行なった後、ステップＳ１０７に進み、ＩＣタグ３が以降の質問コマンドや遷移コマンドに応答しないようにするために、ＩＣタグ操作コマンドの送信を行なう。これは、図４の操作コマンド３１６に相当し、ＩＣタグ３が操作コマンド３１６に対応した応答３１７を行なった後、自らの選択状態を解除し、以降の質問コマンドや遷移コマンドに応答しないようにする。
【００２９】
次に、ステップＳ１０８において、データ読み取り装置１は、ＩＣタグ３を識別したことで、ＩＣタグ読み出し枚数を記録する変数を１つインクリメントする。
【００３０】
次に、ステップＳ１１０において、タイムスロットを次に進めるために、タイムスロット遷移コマンドの送信回数と、質問コマンド３１０で指定したタイムスロット数との比較を行なう。図４の例では、タイムスロット２までの期間で、質問コマンド３１０で指定したタイムスロット数４に対して、タイムスロット遷移コマンドの送信回数が２である。このため、ステップＳ１１０のＹｅｓの分岐へ進む。
【００３１】
次に、ステップＳ１１１において、タイムスロット遷移コマンドの送信を行なう。これは、図４の遷移コマンド３１８に相当する。
【００３２】
次に、ステップＳ１０５において、ＩＣタグからの応答を受信する。図４の例では、ＩＣタグからの応答がないため、遷移コマンド３１８に対する応答がないと判断して、ステップＳ１０５の応答なしの分岐へ進む。
【００３３】
次に、ステップＳ１１０において、タイムスロットを次に進めるために、タイムスロット遷移コマンドの送信回数と、質問コマンド３１０で指定したタイムスロット数との比較を行なう。図４の例では、タイムスロット３までの期間で、質問コマンド３１０で指定したタイムスロット数４に対して、タイムスロット遷移コマンドの送信回数が３である。このため、ステップＳ１１０のＹｅｓの分岐へ進む。
【００３４】
次に、ステップＳ１１１において、タイムスロット遷移コマンドの送信を行なう。これは、図４の遷移コマンド３１９に相当する。
【００３５】
次に、ステップＳ１０５において、ＩＣタグからの応答を受信する。図４の例では、ＩＣタグからの応答がないため、遷移コマンド３１９に対する応答がないと判断して、ステップＳ１０５の応答なしの分岐へ進む。
【００３６】
次に、ステップＳ１１０において、タイムスロットを次に進めるために、タイムスロット遷移コマンドの送信回数と、質問コマンド３１０で指定したタイムスロット数との比較を行なう。図４の例では、タイムスロット４までの期間で、質問コマンド３１０で指定したタイムスロット数４に対して、タイムスロット遷移コマンドの送信回数が４である。このため、データ読み取り装置１は、タイムスロットの遷移が完了したと判断して、ステップＳ１１０のＮｏの分岐へ進む。
【００３７】
次に、ステップＳ１１２において、データ読み取り装置１は、衝突検出フラグがオンとなっているか否かを参照する。図４の例では、遷移コマンド３１１に対して２つのＩＣタグが応答（３１２、３１３）したため、衝突検出フラグがオンとなっている。このため、ステップＳ１１２のＹｅｓの分岐へ進む。
【００３８】
次に、ステップＳ１１３において、残りのＩＣタグ読み出し枚数の計算を行なう。図４の例では、ＩＣタグ設定枚数３に対して、ＩＣタグ読み出し枚数１のため、残りのＩＣタグ読み出し枚数は２となる。
【００３９】
次に、ステップＳ１１４において、データ読み取り装置１は、残りのＩＣタグ読み出し枚数２でタグ・タイムスロット変換テーブルを参照し、さらに、ステップＳ１１５において、次タイムスロット数を決定する。例えば、図５に示したタグ・タイムスロット変換テーブルの例に従うと、ＩＣタグ枚数２に対しては、対応するタイムスロット数４が次タイムスロット数となる。
【００４０】
次に、ステップＳ１０４において、ＩＣタグにタイムスロット数を通知するために、質問コマンドの送信を行なう。これは、図４のデータ読み取り装置のコマンドである質問コマンド３２０に相当する。この質問コマンドには、タグ・タイムスロット変換テーブルの参照結果として、次タイムスロット数に４を指定している。あわせて、データ読み取り装置１は、タイムスロット遷移コマンドの送信回数を記録する変数と、衝突検出フラグを記録する変数をクリアする。
【００４１】
ＩＣタグ側では、上記の質問コマンド３２０を受信すると、どのタイムスロットで応答すべきかを決めるため、ＩＣタグ内部に有する乱数発生器を用いて、指定されたタイムスロット数の範囲内で乱数を生成する。図４の例では、ＩＣタグ１は乱数２を生成し、ＩＣタグ２は乱数３を生成している。これより、ＩＣタグ１はタイムスロット２で応答し、ＩＣタグ２はタイムスロット３で応答することを決定する。
【００４２】
次に、ステップＳ１０５において、質問コマンド３２０に対するＩＣタグからの応答を受信する。例えば、図４の２回目の質問期間におけるタイムスロット０では、ＩＣタグからの応答がないため、質問コマンド３２０に対する応答がないと判断する。これより、ステップＳ１０５の応答なしの分岐に進む。
【００４３】
次に、ステップＳ１１０において、タイムスロットを次に進めるために、タイムスロット遷移コマンドの送信回数と、質問コマンド３２０で指定したタイムスロット数との比較を行なう。図４の例では、タイムスロット０において、質問コマンド３２０で指定したタイムスロット数４に対して、タイムスロット遷移コマンドの送信回数が０である。このため、ステップＳ１１０のＹｅｓの分岐へ進む。
【００４４】
次に、ステップＳ１１１において、タイムスロット遷移コマンドの送信を行なう。これは、図４の遷移コマンド３２１の送信に相当する。
【００４５】
次に、ステップＳ１０５において、ＩＣタグからの応答を受信する。図４の例では、ＩＣタグからの応答がないため、遷移コマンド３２１に対する応答がないと判断して、ステップＳ１０５の応答なしの分岐へ進む。
【００４６】
次に、ステップＳ１１０において、タイムスロットを次に進めるために、タイムスロット遷移コマンドの送信回数と、質問コマンド３２０で指定したタイムスロット数との比較を行なう。図４の例では、タイムスロット１までの期間で、質問コマンド３２０で指定したタイムスロット数４に対して、タイムスロット遷移コマンドの送信回数が１である。このため、ステップＳ１１０のＹｅｓの分岐へ進む。
【００４７】
次に、ステップＳ１１１において、タイムスロット遷移コマンドの送信を行なう。これは、図４の遷移コマンド３２２の送信に相当する。
【００４８】
次に、ステップＳ１０５において、ＩＣタグからの応答を受信する。図４の例では、ＩＣタグ１のみが応答（３２３）しているため、ステップＳ１０５の衝突なしの分岐へ進む。
【００４９】
次に、ステップＳ１０６において、ＩＣタグ１の受信データの処理を行なった後、ステップＳ１０７に進み、ＩＣタグ１が以降の質問コマンドや遷移コマンドに応答しないようにするために、ＩＣタグ操作コマンドの送信を行なう。これは、図４の操作コマンド３２４に相当し、ＩＣタグ１が操作コマンド３２４に対応した応答３２５を行なった後、自らの選択状態を解除し、以降の質問コマンドや遷移コマンドに応答しないようにする。
【００５０】
次に、ステップＳ１０８において、データ読み取り装置１は、ＩＣタグ１を識別したことで、ＩＣタグ読み出し枚数を記録する変数を１つインクリメントする。
【００５１】
次に、ステップＳ１１０において、タイムスロットを次に進めるために、タイムスロット遷移コマンドの送信回数と、質問コマンド３２０で指定したタイムスロット数との比較を行なう。図４の例では、タイムスロット２までの期間で、質問コマンド３２０で指定したタイムスロット数４に対して、タイムスロット遷移コマンドの送信回数が２である。このため、ステップＳ１１０のＹｅｓの分岐へ進む。
【００５２】
次に、ステップＳ１１１において、タイムスロット遷移コマンドの送信を行なう。これは、図４の遷移コマンド３２６の送信に相当する。
【００５３】
次に、ステップＳ１０５において、ＩＣタグからの応答を受信する。図４の例では、ＩＣタグ２のみが応答（３２７）しているため、ステップＳ１０５の衝突なしの分岐へ進む。
【００５４】
次に、ステップＳ１０６において、ＩＣタグ２の受信データの処理を行なった後、ステップＳ１０７に進み、ＩＣタグ２が以降の質問コマンドや遷移コマンドに応答しないようにするために、ＩＣタグ操作コマンドの送信を行なう。これは、図４の操作コマンド３２８に相当し、ＩＣタグ２が操作コマンド３２８に対応した応答３２９を行なった後、自らの選択状態を解除し、以降の質問コマンドや遷移コマンドに応答しないようにする。
【００５５】
次に、ステップＳ１０８において、データ読み取り装置１は、ＩＣタグ２を識別したことで、ＩＣタグ読み出し枚数を記録する変数を１つインクリメントする。
【００５６】
次に、ステップＳ１１０において、タイムスロットを次に進めるために、タイムスロット遷移コマンドの送信回数と、質問コマンド３２０で指定したタイムスロット数との比較を行なう。図４の例では、タイムスロット３までの期間で、質問コマンド３２０で指定したタイムスロット数４に対して、タイムスロット遷移コマンドの送信回数が３である。このため、ステップＳ１１０のＹｅｓの分岐へ進む。
【００５７】
次に、ステップＳ１１１において、タイムスロット遷移コマンドの送信を行なう。これは、図４の遷移コマンド３３０の送信に相当する。
【００５８】
次に、ステップＳ１０５において、ＩＣタグからの応答を受信する。図４の例では、ＩＣタグからの応答がないため、遷移コマンド３３０に対する応答がないと判断して、ステップＳ１０５の応答なしの分岐へ進む。
【００５９】
次に、ステップＳ１１０において、タイムスロットを次に進めるために、タイムスロット遷移コマンドの送信回数と、質問コマンド３２０で指定したタイムスロット数との比較を行なう。図４の例では、タイムスロット４までの期間で、質問コマンド３２０で指定したタイムスロット数４に対して、タイムスロット遷移コマンドの送信回数が４である。このため、データ読み取り装置１は、タイムスロットの遷移が完了したと判断して、ステップＳ１１０のＮｏの分岐へ進む。
【００６０】
次に、ステップＳ１１２において、データ読み取り装置１は、衝突検出フラグがオンとなっているか否かを参照する。図４の例では、衝突検出フラグがクリアになっているため、これ以上ＩＣタグがないと判断し、ＩＣタグの読み出し処理を終了する。
【００６１】
以上のように、複数のＩＣタグからの応答が衝突するタイムスロットならびにＩＣタグから応答がないタイムスロットを極力少なくし、タイムスロット数を適切に設定することで、高速に複数ＩＣタグの情報を読み取ることできる。
【００６２】
なお、図示していないが、電波の状況などによりＩＣタグが応答できなかったことを想定して、複数のＩＣタグからの応答の衝突が検出されていない場合、再度、質問コマンドからの処理シーケンスを繰り返すことで、電波の状況で応答できなかったＩＣタグの識別を行ない、ＩＣタグの読み取り精度を向上させるようにすることができる。
【００６３】
また、設定されたＩＣタグ設定枚数が、常にＩＣタグ読み出し枚数と一致しなければならない用途においては、ＩＣタグ読み出し枚数が、設定されたＩＣタグ設定枚数に達するまで、質問コマンドからの処理シーケンスを繰り返すようにすることができる
【００６４】
さらに、タグ・タイムスロット変換テーブルを用いる代わりに、ＩＣタグ枚数をパラメータとして、所定の計算式により、タイムスロット数を算出するようにしてもかまわない。
【００６５】
実施の形態２．
次に、ＩＣタグからの応答状況に応じて次タイムスロット数を決定し、タイムスロット数を用途によって適切に設定することで、複数ＩＣタグの情報を高速に読み取ることができるようにした実施の形態２を示す。
【００６６】
実施の形態２の構成図は、実施の形態１の構成図である図１と同様であるため、ここでは構成の説明を省略する。
【００６７】
次に、本発明の実施の形態２における処理動作の流れを説明する。全体の概略動作は、図２に示した、データ読み取り装置での概略処理のフローチャートと同様であるため、説明を省略する。以下では、この図２のステップＳ２２におけるＩＣタグ読み取り処理について、図６と図７を適宜参照しながら詳細に説明する。
【００６８】
図６は、ＩＣタグからの応答状況により次タイムスロット数を決定する場合のデータ読み取り装置のＩＣタグ読み取り処理のフローチャートである。
図７は、現タイムスロット数と、ＩＣタグからの応答状況パターン（応答なし、衝突あり、衝突なし）毎の比率とに応じて、次タイムスロット数を決定するために用いられるテーブルの例である。
【００６９】
まず、ステップＳ２００において、ＩＣタグ読み取り処理の最初に初期タイムタイムスロット数選択手段１１によって選択された初期タイムスロット数設定手段（１０ａ〜１０ｎのいずれか）に従い、初期タイムスロット数を決定する。
【００７０】
次に、ステップＳ２０１において、データ読み取り装置１は、読み取るべきＩＣタグの選別を行なうために、条件を指定して、選択コマンドの送信を行なう。
【００７１】
次に、ステップＳ２０２において、ＩＣタグにタイムスロット数を通知するために、質問コマンドの送信を行なう。あわせて、データ読み取り装置１は、タイムスロット遷移コマンドの送信回数を記録する変数と、ＩＣタグからの応答状況パターン（応答なし、衝突あり、衝突なし）の回数を記録する変数をクリアする。
【００７２】
ＩＣタグ側では、上記の質問コマンドを受信すると、どのタイムスロットで応答すべきかを決めるため、ＩＣタグ内部に有する乱数発生器を用いて指定されたタイムスロット数の範囲内で乱数を生成する。
【００７３】
次に、ステップＳ２０３において、質問コマンドに対するＩＣタグからの応答を受信する。データ読み取り装置１は、受信結果に応じて、ＩＣタグからの応答がないか（ステップＳ２０３の応答なしの分岐）、複数のＩＣタグからの応答があるか（ステップＳ２０３の衝突ありの分岐）、単一のＩＣタグからの応答があるか（ステップＳ２０３の衝突なしの分岐）を判断する。
【００７４】
上記の受信結果に対する判断を行なった結果、応答なしと判断した場合には、ステップＳ２０７において、応答なし回数を記録する変数をインクリメントする。
衝突ありと判断した場合には、ステップＳ２０８において、衝突あり回数を記録する変数をインクリメントする。
衝突なしと判断した場合には、ステップＳ２０４において、ＩＣタグの受信データの処理を行なった後、ステップＳ２０５に進み、ＩＣタグが以降の質問コマンドや遷移コマンドに応答しないようにするために、ＩＣタグ操作コマンドの送信を行なう。これにより、ＩＣタグは、操作コマンドに対応した応答を行なった後、自らの選択状態を解除し、以降の質問コマンドや遷移コマンドに応答しないようにする。
【００７５】
次に、ステップＳ２０６において、データ読み取り装置１は、ＩＣタグを識別したことで、衝突なし回数を記録する変数を１つインクリメントする。
【００７６】
次に、ステップＳ２０９において、タイムスロットを次に進めるために、タイムスロット遷移コマンドの送信回数と、質問コマンドで指定したタイムスロット数との比較を行なう。
【００７７】
質問コマンドで指定したタイムスロット数に対して、タイムスロット遷移コマンドの送信回数が小さい場合は、ステップＳ２０９のＹｅｓの分岐へ進み、ステップＳ２１０において、タイムスロット遷移コマンドの送信を行なう。
【００７８】
次に、ステップＳ２０３において、タイムスロット遷移コマンドに対するＩＣタグからの応答を受信する。データ読み取り装置１は、受信結果に応じて、ＩＣタグからの応答がないか（ステップＳ２０３の応答なしの場合）、複数のＩＣタグからの応答があるか（ステップＳ２０３の衝突ありの場合）、単一のＩＣタグからの応答があるか（ステップＳ２０３の衝突なしの場合）を判断する。
【００７９】
上記の受信結果に対する判断を行なった結果、応答なしと判断した場合には、ステップＳ２０７において、応答なし回数を記録する変数を１つインクリメントする。
衝突ありと判断した場合には、ステップＳ２０８において、衝突あり回数を記録する変数を１つインクリメントする。
衝突なしと判断した場合には、ステップＳ２０４において、ＩＣタグの受信データの処理を行なった後、ステップＳ２０５に進み、ＩＣタグが以降の質問コマンドや遷移コマンドに応答しないようにするために、ＩＣタグ操作コマンドの送信を行なう。これにより、ＩＣタグは、操作コマンドに対応した応答を行なった後、自らの選択状態を解除し、以降の質問コマンドや遷移コマンドに応答しないようにする。
【００８０】
次に、ステップＳ２０６において、データ読み取り装置１は、ＩＣタグを識別したことで、衝突なし回数を記録する変数を１つインクリメントする。
【００８１】
このようにして、ステップＳ２０９において、質問コマンドで指定したタイムスロット数に対して、タイムスロット遷移コマンドの送信回数が一致するまで、上記の処理を繰り返す。
【００８２】
質問コマンドで指定したタイムスロット数に対して、タイムスロットを遷移させるコマンドの送信回数が一致した場合は、ステップＳ２１１において、衝突あり回数が０かどうかの判断を行なう。衝突あり回数が０の場合、ステップＳ２１１のＮｏの分岐へ進み、ＩＣタグ読み取り処理を終了する。
【００８３】
ステップＳ２１１において、衝突あり回数が０でない場合、データ読み取り装置１は、識別できていないＩＣタグが存在すると判断して、質問コマンド送信からの処理を繰り返すために、ステップＳ２１１のＹｅｓの分岐へ進む。
【００８４】
次に、ステップＳ２１２において、現タイムスロット数とＩＣタグからの応答状況パターン毎の比率とに応じた次タイムスロット数を決定するテーブルを参照して、ステップＳ２１３において、次タイムスロット数を決定する。
【００８５】
次に、ステップＳ２０２において、ＩＣタグにタイムスロット数を通知するために、質問コマンドの送信を行なう。あわせて、データ読み取り装置１は、タイムスロット遷移コマンドの送信回数を記録する変数と、ＩＣタグからの応答状況パターン（応答なし、衝突あり、衝突なし）の回数を記録する変数をクリアする。
【００８６】
以降、ステップＳ２１１において、衝突あり回数が０となり、Ｎｏの分岐へ進むまで、上記の処理の繰り返しを行なう。
【００８７】
以上のように、現タイムスロット数とＩＣタグからの応答状況パターン毎の比率とに応じて、次タイムスロット数を決定するテーブルを準備し、用途によってタイムスロット数を適切に設定することで、複数ＩＣタグの情報を高速に読み取ることできるようになる。
【図面の簡単な説明】
【００８８】
【図１】実施の形態１における、データ読み取り装置の構成図である。
【図２】実施の形態１における、データ読み取り装置での概略処理のフローチャートである。
【図３】実施の形態１における、データ読み取り装置のＩＣタグ読み取り処理のフローチャートである。
【図４】実施の形態１における、データ読み取り装置と複数のＩＣタグとの間の動作を表わすタイミングチャートの一例の図である。
【図５】実施の形態１における、タグ・タイムスロット変換テーブルの一例の図である。
【図６】実施の形態２における、ＩＣタグからの応答状況により次タイムスロット数を決定する場合のデータ読み取り装置のＩＣタグ読み取り処理のフローチャートである。
【図７】実施の形態２における、現タイムスロット数と、ＩＣタグからの応答状況パターン（応答なし、衝突あり、衝突なし）毎の比率とに応じて、次タイムスロット数を決定するために用いられるテーブルの例である。
【符号の説明】
【００８９】
１  データ読み取り装置、２  送受信アンテナ、１０  初期タイムスロット数設定手段、１１  初期タイムスロット数選択手段、１２  次タイムスロット数設定手段、１３  次タイムスロット数選択手段、１４  送受信部、１５  制御部。
【図１】
2008065443.tif 000003
【図２】
2008065443.tif 000004
【図３】
2008065443.tif 000005
【図４】
2008065443.tif 000006
【図５】
2008065443.tif 000007
【図６】
2008065443.tif 000008
【図７】
2008065443.tif 000009