(57)【要約】【課題】アンチコリジョン処理によりＲＦＩＤタグの読み取りを行う際に、ＲＦＩＤリーダライタがループに嵌まることを未然に防ぐこと。【解決手段】乱数を用いて複数のＲＦＩＤタグ４００を互いに識別するアンチコリジョン処理によりＲＦＩＤタグ４００の読み取りを行うＲＦＩＤリーダライタ３８であって、ＲＦＩＤタグ４００の読み取りの際にＲＦＩＤタグ４００へ特定の制御コマンドとしてＱｕｅｒｙＡｄｊｕｓｔコマンドを送信するコマンド送受信部２０１と、コマンド送受信部２０１により送信されたＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数を計数する送信回数計数部２０２と、送信回数計数部２０２により計数されたＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数に応じて、ＲＦＩＤタグ４００の読み取りを終了する読取終了部２０３と、を備える。【選択図】図４
2020021117.tif 000002
【特許請求の範囲】
【請求項１】
乱数を用いて複数のＲＦＩＤタグを互いに識別するアンチコリジョン処理によりＲＦＩＤタグの読み取りを行うＲＦＩＤリーダライタであって、
前記ＲＦＩＤタグの読み取りの際に前記ＲＦＩＤタグへ前記ＲＦＩＤタグの制御コマンドを送信するコマンド送受信部と、
前記コマンド送受信部により送信された前記制御コマンドのうち、特定の制御コマンドの送信回数を計数する送信回数計数部と、
前記送信回数計数部により計数された前記特定の制御コマンドの送信回数に応じて、前記ＲＦＩＤタグの読み取りを終了する読取終了部と、
を備えることを特徴とするＲＦＩＤリーダライタ。
【請求項２】
前記読取終了部により前記ＲＦＩＤタグの読み取りを終了する場合には、上位装置に前記ＲＦＩＤタグの読み取りを終了することを通知する終了通知部
をさらに備えることを特徴とする請求項1に記載のＲＦＩＤリーダライタ。
【請求項３】
前記コマンド送受信部は、前記特定の制御コマンドとして前記ＲＦＩＤタグにＱｕｅｒｙＡｄｊｕｓｔコマンドまたはＱｕｅｒｙＲｅｐコマンドを送信し、
前記送信回数計数部は、前記コマンド送受信部により送信された前記ＱｕｅｒｙＡｄｊｕｓｔコマンドまたはＱｕｅｒｙＲｅｐコマンドの送信回数を計数し、
前記読取終了部は、前記送信回数計数部により計数された前記ＱｕｅｒｙＡｄｊｕｓｔコマンドまたはＱｕｅｒｙＲｅｐコマンドの送信回数に応じて前記ＲＦＩＤタグの読み取りを終了する
ことを特徴とする請求項１または２に記載のＲＦＩＤリーダライタ。
【請求項４】
前記コマンド送受信部は、前記ＲＦＩＤタグからＥＰＣを正常に受信できなかった場合には、前記特定の制御コマンドとして前記ＲＦＩＤタグにＮＡＫコマンドを送信し、
前記送信回数計数部は、前記コマンド送受信部により送信された前記ＮＡＫコマンドの送信回数を計数し、
前記読取終了部は、前記送信回数計数部により計数された前記ＮＡＫコマンドの送信回数に応じて前記ＲＦＩＤタグの読み取りを終了する
ことを特徴とする請求項１または２に記載のＲＦＩＤリーダライタ。
【請求項５】
前記コマンド送受信部は、
前記特定の制御コマンドとして前記ＲＦＩＤタグにＱｕｅｒｙＡｄｊｕｓｔコマンドまたはＱｕｅｒｙＲｅｐコマンドを送信し、
前記ＲＦＩＤタグからＥＰＣを正常に受信できなかった場合には、前記制御コマンドとして前記ＲＦＩＤタグにＮＡＫコマンドを送信し、
前記送信回数計数部は、前記コマンド送受信部により送信された前記ＱｕｅｒｙＡｄｊｕｓｔコマンドまたはＱｕｅｒｙＲｅｐコマンドおよびＮＡＫコマンドの送信回数をそれぞれ計数し、
前記読取終了部は、前記送信回数計数部によりそれぞれ計数された前記ＱｕｅｒｙＡｄｊｕｓｔコマンドまたはＱｕｅｒｙＲｅｐコマンドの送信回数が所定の第１の規定回数以上または前記送信回数計数部により計数された前記ＮＡＫコマンドの送信回数が所定の第２の規定回数以上である場合には、前記ＲＦＩＤタグの読み取りを終了する
ことを特徴とする請求項１または２に記載のＲＦＩＤリーダライタ。
【請求項６】
乱数を用いて複数のＲＦＩＤタグを互いに識別するアンチコリジョン処理によりＲＦＩＤタグの読み取りを行うＲＦＩＤリーダライタの読取制御方法であって、
前記ＲＦＩＤリーダライタが、
前記ＲＦＩＤタグの読み取りの際に前記ＲＦＩＤタグへ特定の制御コマンドを送信し、
前記送信された前記特定の制御コマンドの送信回数を計数し、
前記計数された前記特定の制御コマンドの送信回数に応じて、前記ＲＦＩＤタグの読み取りを終了する
ことを特徴とするＲＦＩＤリーダライタの読取制御方法。
【請求項７】
乱数を用いて複数のＲＦＩＤタグを互いに識別するアンチコリジョン処理によりＲＦＩＤタグの読み取りを行うＲＦＩＤリーダライタに実行させるための読取方法制御プログラムであって、
コンピュータに、
前記ＲＦＩＤタグの読み取りの際に前記ＲＦＩＤタグへ特定の制御コマンドを送信する処理、
前記送信された前記特定の制御コマンドの送信回数を計数する処理、
前記計数された前記特定の制御コマンドの送信回数に応じて、前記ＲＦＩＤタグの読み取りを終了する処理、
を実行させることを特徴とするＲＦＩＤリーダライタの読取方法制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＲＦＩＤリーダライタ、読取制御方法および読取方法制御プログラムに関する。
【背景技術】
【０００２】
近年、スーパーマーケット、コンビニエンスストア等の小売店では、ＲＦＩＤ（radio frequency identifier）リーダライタを備えたＰＯＳ（Point Of Sale）端末が普及し始めている。このようなＰＯＳ端末は、商品に付されたＲＦＩＤタグに含まれるＥＰＣ（Electric Product Code）を一括で読み取り商品の登録を行う。
【０００３】
ＰＯＳ端末において、ＲＦＩＤタグとの交信制御にアンチコリジョン方式を用いることで複数のＲＦＩＤタグからデータを一括読取可能な制御装置の技術の一例が開示されている（例えば、特許文献1参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−７２６８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、アンチコリジョン処理においては、ＲＦＩＤリーダライタは、ＲＦＩＤタグの読み取りの際にＲＦＩＤタグへＲＦＩＤタグの制御コマンドを送信するが、ノイズが多く通信環境が悪い場合には、ＲＦＩＤリーダライタは、ＲＦＩＤタグへ送信した制御コマンドに対する応答を正常に受信できない場合がある。この場合、ＲＦＩＤリーダライタは、制御コマンドを再度送信する処理と、ＲＦＩＤタグからの制御コマンドに対する応答処理とが繰り返し実行される。その結果、ＲＦＩＤリーダライタは制御コマンド送信と、制御コマンドに対する応答処理のループに嵌まりＲＦＩＤタグの読み取りが終了しなくなる場合がある。このような場合には、ＲＦＩＤリーダライタのオペレータは電源を落としたり、強制終了したりする必要があり、リスタートするのに時間がかかり不便を生じていた。
【０００６】
本発明は、上記課題に鑑み、アンチコリジョン処理によりＲＦＩＤタグの読み取りを行う際に、ＲＦＩＤリーダライタがループに嵌まることを未然に防ぐことを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、乱数を用いて複数のＲＦＩＤタグを互いに識別するアンチコリジョン処理によりＲＦＩＤタグの読み取りを行うＲＦＩＤリーダライタであって、前記ＲＦＩＤタグの読み取りの際に前記ＲＦＩＤタグへ前記ＲＦＩＤタグの制御コマンドを送信するコマンド送受信部と、前記コマンド送受信部により送信された前記制御コマンドのうち、特定の制御コマンドの送信回数を計数する送信回数計数部と、前記送信回数計数部により計数された前記特定の制御コマンドの送信回数に応じて、前記ＲＦＩＤタグの読み取りを終了する読取終了部と、を備えることを特徴とする。
【０００８】
また、本発明の一態様によれば、乱数を用いて複数のＲＦＩＤタグを互いに識別するアンチコリジョン処理によりＲＦＩＤタグの読み取りを行うＲＦＩＤリーダライタの読取制御方法であって、前記ＲＦＩＤリーダライタが、前記ＲＦＩＤタグの読み取りの際に前記ＲＦＩＤタグへ特定の制御コマンドを送信し、前記送信された前記特定の制御コマンドの送信回数を計数し、前記計数された前記特定の制御コマンドの送信回数に応じて、前記ＲＦＩＤタグの読み取りを終了することを特徴とする。
【０００９】
また、本発明の一態様によれば、乱数を用いて複数のＲＦＩＤタグを互いに識別するアンチコリジョン処理によりＲＦＩＤタグの読み取りを行うＲＦＩＤリーダライタに実行させるための読取方法制御プログラムであって、コンピュータに、前記ＲＦＩＤタグの読み取りの際に前記ＲＦＩＤタグへ特定の制御コマンドを送信する処理、前記送信された前記特定の制御コマンドの送信回数を計数する処理、前記計数された前記特定の制御コマンドの送信回数に応じて、前記ＲＦＩＤタグの読み取りを終了する処理、を実行させることを特徴とする。
【発明の効果】
【００１０】
本発明の一態様によれば、アンチコリジョン処理によりＲＦＩＤタグの読み取りを行う際に、ＲＦＩＤリーダライタがループに嵌まることを未然に防ぐことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態に係るＲＦＩＤリーダライタ３８を有するＰＯＳ端末１０のハードウェア構成の一例を示す図である。
【図２】ＲＦＩＤタグ４００に書き込まれたＥＰＣの一例を示す図である。
【図３】本発明の実施形態のＲＦＩＤリーダライタのハードウェア構成の一例を示す図である。
【図４】第１の実施形態に係るＲＦＩＤリーダライタ３８の機能構成の一例を示す図である。
【図５】第１の実施形態に係るＲＦＩＤリーダライタ３８が実行するアンチコリジョン処理の概要を示す図である。
【図６】第１の実施形態に係るＲＦＩＤリーダライタ３８が正常にＥＰＣを受信できない場合のアンチコリジョン処理の概要を示す図である。
【図７】第１の実施形態に係るＲＦＩＤリーダライタを有するＰＯＳ端末が実行する商品読取処理のフローチャートである。
【図８】第１の実施形態に係るＲＦＩＤリーダライタ３８が実行するアンチコリジョン処理の動作の一例を示すフローチャートである。
【図９】第２の実施形態に係るＲＦＩＤリーダライタ３８が実行するアンチコリジョン処理の動作の一例を示すフローチャートである。
【図１０】第３の実施形態に係るＲＦＩＤリーダライタ３８が実行するアンチコリジョン処理の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
＜第１の実施形態＞
以下に本発明の第１の実施形態について図面を参照しながら詳細に説明する。図１は、本発明の第１の実施形態に係るＲＦＩＤリーダライタ３８を有するＰＯＳ端末１０のハードウェア構成の一例を示す図である。
【００１３】
ＰＯＳ端末１０は、制御ユニット３１、自動釣銭機３２、自動釣札機３３、キャッシュドロア３４、キーボード３５、タッチパネル３７、ディスプレイ３６、ＲＦＩＤリーダライタ３８、可搬型記録媒体３９を有する。
【００１４】
制御ユニット３１は、ＰＯＳ端末１０を統括的に制御するコンピュータである。自動釣銭機３２は、顧客から受け取った硬貨の入金と、釣銭の出金とを行う。自動釣札機３３は、顧客から受け取った紙幣の入金と、釣札の出金とを行う。キャッシュドロア３４は、硬貨および紙幣を収納する収納庫である。
【００１５】
キーボード３５は、ディスプレイ３６に表示されたＧＵＩを操作するための入力装置である。ディスプレイ３６は、取引作業を行うための所定のＧＵＩ（Graphical User Interface）を表示する。ディスプレイ３６は、例えば、液晶ディスプレイである。ディスプレイ３６は、タッチパネル３７の下層に位置している。ディスプレイ３６の表示する画像は、タッチパネル３７を透過して、オペレータから視認可能である。オペレータは、ディスプレイ３６によって表示された画像を見ながら、タッチパネル３７に対するタッチ操作を行うことができる。商品コードの入力結果は、ディスプレイ３６に表示されて、オペレータが商品コードの入力結果を確認することができる。
【００１６】
ＲＦＩＤリーダライタ３８は、商品に付されたＲＦＩＤタグ４００から無線通信によってＲＦＩＤタグ４００内のバーコード（商品アイテムコード）を含む情報を読み取る装置である。ＲＦＩＤリーダライタ３８は、ＲＦＩＤタグ４００に情報を記録可能なＲＦＩＤリーダライタ装置であってもよい。ＲＦＩＤタグ４００はＲＦＩＤタグ情報を記憶するＩＣタグであり、ＥＰＣ（Electronic Product Code）が記憶されている。ＥＰＣには、バーコードデータが含まれる。ＲＦＩＤタグ情報はＲＦＩＤタグ４００に記録された情報である。ＲＦＩＤリーダライタ３８は据え置きタイプであってもよいし、ハンディタイプであってもよい。ＲＦＩＤリーダライタ３８は、読み取ったバーコード（商品アイテムコード）を上位装置であるＰＯＳ端末１０の制御ユニット３１へ通知する。
【００１７】
ＰＯＳ端末１０では、制御ユニット３１に各種入出力装置が接続される。制御ユニット３１は、ＰＯＳ制御部５１、記憶部５２、グラフィック処理装置５３、入出力インタフェース５４、通信インタフェース５５を有する。
【００１８】
ＰＯＳ制御部５１は、ＰＯＳ端末１０全体を統括的に制御するもので、プログラムを読込んで制御処理を実行するＣＰＵ（Central  Processing  Unit）（不図示）を有する。ＰＯＳ制御部５１には、バス５６を介して記憶部５２、グラフィック処理装置５３、入出力インタフェース５４、通信インタフェース５５が接続されている。
【００１９】
記憶部５２は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、ＨＤＤ（Hard  Disk  Drive）などを有する。記憶部５２は、ＰＯＳ制御部５１が実行するプログラム、表示画面データ、その他各種データを記憶する。また、記憶部５２は、ＰＯＳ制御部５１がプログラムを実行する際の作業領域を提供する。
【００２０】
グラフィック処理装置５３には、ディスプレイ３６が接続されている。グラフィック処理装置５３はＰＯＳ制御部５１からの命令に応じて、画像をディスプレイ３６の画面に表示させる。
【００２１】
入出力インタフェース５４には、自動釣銭機３２、自動釣札機３３、キャッシュドロア３４、キーボード３５、タッチパネル３７、ＲＦＩＤリーダライタ３８、可搬型記録媒体３９が接続されている。また、入出力インタフェース５４は、可搬型記録媒体３９への情報の書込み、並びに、可搬型記録媒体３９からの情報の読出しが可能な可搬型記録媒体インタフェース（不図示）と接続可能になっている。入出力インタフェース５４は、自動釣銭機３２、自動釣札機３３、キャッシュドロア３４、キーボード３５、タッチパネル３７、ＲＦＩＤリーダライタ３８、可搬型記録媒体３９からそれぞれ送られてくる信号をバス５６を介してＰＯＳ制御部５１に送信する。
【００２２】
通信インタフェース５５は、例えば、有線または無線ＬＡＮ（Local Area Network）により外部サーバ３００と接続されている。通信インタフェース５５は、商品マスタ等が格納された外部サーバ３００との間でデータの送受信を行う。
【００２３】
ＲＦＩＤタグ４００に書き込まれたＥＰＣの一例を図２に示す。ＥＰＣは、ＲＦＩＤタグ４００に書き込まれた情報であり、図２に示すＥＰＣは９６ビットの場合のものである。ＥＰＣには、ヘッダ、フィルタ、パーティション、ＧＳ１事業者コード、商品アイテムコード、シリアル番号の情報が含まれる。
【００２４】
また、図示しないが、ＲＦＩＤタグ４００は、ＰＯＳ端末１０のＲＦＩＤリーダライタ３８との無線通信で使用される４つの機能の異なるセッション（番号Ｓ０，Ｓ１，Ｓ２，Ｓ３）を備え、各セッションには、それぞれ１つの独立したインベントリ済フラグを有している。各インベントリ済フラグは公知の技術を採用することができるため詳細な説明については省略するが、１回のインベントリラウンドと呼ばれるコマンドシーケンスのやりとりでは、４つのセッションのうち１つのみが機能する。インベントリ済フラグは、ＡおよびＢの２つの値をとることができ、Ａの値は、ＲＦＩＤリーダライタ３８によるＱｕｅｒｙコマンド（タグ探索信号）に応答していない未検出の状態を表し、Ｂの値は、Ｑｕｅｒｙコマンド（タグ探索信号）に応答して反応したときの検出済の状態を表している。なお、第１の実施形態においては、Ａの値は、ＲＦＩＤリーダライタ３８によるＱｕｅｒｙコマンド（タグ探索信号）に応答していない未検出の状態を表し、Ｂの値は、Ｑｕｅｒｙコマンド（タグ探索信号）に応答して反応したときの検出済の状態を表しているがこの限りではなく、その逆の状態を表したものであってもよい。
【００２５】
次に、本発明の実施形態のＲＦＩＤリーダライタ３８のハードウェア構成の一例について図３を参照して説明する。ＲＦＩＤリーダライタ３８は、ＲＦＩＤリーダライタ制御部１０１、記憶部１０２、通信インタフェース１０３を有する。ＲＦＩＤリーダライタ３８は図３に記載の構成以外の回路構成を備えていてもよい。
【００２６】
ＲＦＩＤリーダライタ制御部１０１は、ＲＦＩＤリーダライタ３８全体を統括的に制御するもので、プログラムを読込んで制御処理を実行するＣＰＵ（不図示）を有する。
【００２７】
ＲＦＩＤリーダライタ制御部１０１には、バス１０４を介して記憶部１０２と、通信インタフェース１０３が接続されている。記憶部１０２は、ＲＡＭ、ＲＯＭ、ＨＤＤなどを有する。記憶部１０２は、ＲＦＩＤリーダライタ制御部１０１が実行するプログラム、その他各種データを記憶する。また、記憶部１０２は、ＲＦＩＤリーダライタ制御部１０１がプログラムを実行する際の作業領域を提供する。通信インタフェース１０３は、アンテナを通じてＲＦＩＤタグ４００とデータやコマンドの送受信を行うものである。
【００２８】
次に、第１の実施形態に係るＲＦＩＤリーダライタ３８の機能構成の一例について図４を参照して説明する。ＲＦＩＤリーダライタ３８のＲＦＩＤリーダライタ制御部１０１は、コマンド送受信部２０１、送信回数計数部２０２、読取終了部２０３、終了通知部２０４を有する。ＲＦＩＤリーダライタ制御部１０１は、図４に示していない機能構成を備えていてもよい。
【００２９】
コマンド送受信部２０１は、アンチコリジョン処理の実施に伴って発生するＲＦＩＤタグ４００の読み取りの際にＲＦＩＤタグ４００へＲＦＩＤタグ４００の制御コマンドを送信する。具体的には、コマンド送受信部２０１は、ＲＦＩＤタグ４００にＱｕｅｒｙコマンドを送信後、特定の制御コマンドとしてＱｕｅｒｙＡｄｊｕｓｔコマンドを繰り返し送信する。
【００３０】
Ｑｕｅｒｙコマンドは、後述のアンチコリジョン処理の開始時にＲＦＩＤリーダライタ３８がＲＦＩＤタグ４００へ送信するタグ探索信号である。ＱｕｅｒｙＡｄｊｕｓｔコマンドは、ＲＦＩＤリーダライタ３８との間ですでに通信を終えたＲＦＩＤタグ４００以外のＲＦＩＤタグ４００へのＱｕｅｒｙコマンドとして送信される信号である。
【００３１】
送信回数計数部２０２は、コマンド送受信部２０１により送信された制御コマンドのうち、特定の制御コマンドの送信回数を計数する。具体的には、送信回数計数部２０２は、コマンド送受信部２０１により送信されたＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数を計数する。
【００３２】
読取終了部２０３は、送信回数計数部２０２により計数された特定の制御コマンドの送信回数に応じて、ＲＦＩＤタグ４００の読み取りを終了する。具体的には、読取終了部は、送信回数計数部２０２により計数されたＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数に応じてＲＦＩＤタグ４００の読み取りを終了する。
【００３３】
終了通知部２０４は、読取終了部２０３によりＲＦＩＤタグ４００の読み取りを終了する場合には、上位装置であるＰＯＳ端末１０にＲＦＩＤタグ４００の読み取りを終了することを通知する。
【００３４】
次に、第１の実施形態に係るＲＦＩＤリーダライタ３８が実行するアンチコリジョン処理の概要について図５を参照して説明する。
【００３５】
ＰＯＳ端末１０から商品読取開始の指示を受けると、ＲＦＩＤリーダライタ３８は、ＲＦＩＤタグ４００に対し読み取り対象のタグＩＤを識別するＳｅｌｅｃｔコマンドを送信する（ステップＳ１１）。また、ＲＦＩＤリーダライタ３８は、ＲＦＩＤタグ４００を探索するためのＱｕｅｒｙコマンド（タグ探索信号）を送信する（ステップＳ１２）。
【００３６】
ＲＦＩＤリーダライタ３８からＱｕｅｒｙコマンドを受信したＲＦＩＤタグ４００は、ＲＮ１６をＲＦＩＤリーダライタ３８に送信する（ステップＳ１３）。このＲＮ１６は、ＲＦＩＤタグ４００がＲＦＩＤリーダライタ３８との間で通信を行う際にＲＦＩＤタグ４００自身を識別するのに使用する１６ビットの乱数である。
【００３７】
ＲＦＩＤリーダライタ３８は、ＲＦＩＤタグ４００からＲＮ１６を受信すると、応答としてそのＲＮ１６を含むＡＣＫをＲＦＩＤタグ４００へ送信する（ステップＳ１４）。ＲＦＩＤタグ４００は、ＲＦＩＤリーダライタ３８からＡＣＫを受信すると、ＰＣ（Protocol Control）、ＥＰＣ、ＣＲＣ１６（エラー検出信号：Cyclic Redundancy Check 16）をＲＦＩＤリーダライタ３８へ送信する（ステップＳ１５）。ＣＲＣ１６は、データ伝送の誤りを検出するために付加する符号である。
【００３８】
そして、ＲＦＩＤリーダライタ３８は、ステップＳ１４でＡＣＫを送信してから所定時間内にＥＰＣを受信できた場合には、受信したＥＰＣの応答信号として、ＱｕｅｒｙＡｄｊｕｓｔコマンドをＲＦＩＤタグ４００へ送信し（ステップＳ１６）、ＲＮ１６を送信したＲＦＩＤタグ４００以外のＲＦＩＤタグ４００との間で再び通信を開始し、反応するＲＦＩＤタグ４００がなくなるまでステップＳ１３〜Ｓ１６の処理を繰り返し実行する。
【００３９】
この場合、ステップＳ１５においてＥＰＣを送信し再びＱｕｅｒｙＡｄｊｕｓｔコマンドを受信したＲＦＩＤタグ４００は、インベントリ済フラグを「検出済」に設定しているので、その後ＲＦＩＤリーダライタ３８からＱｕｅｒｙＡｄｊｕｓｔコマンドを繰り返し送信されても、反応することはない。検出済のＲＦＩＤタグ４００が反応しなくなることにより、ＲＦＩＤリーダライタ３８は、検出済のＲＦＩＤタグの二度読みが防止されることになり、ＲＦＩＤタグ４００の読み取りを簡素化することができる。この結果、ＰＯＳ端末１０における商品の登録を効率よく高速に行うことができるようになる。
【００４０】
通常は、このようにして、ＲＦＩＤリーダライタ３８とＲＦＩＤタグ４００との間で通信が行われるが、ノイズが多く、通信環境が悪い場合には、図６に示すように、正常にＲＦＩＤタグからＥＰＣを受信できない場合がある。図６は、第１の実施形態に係るＲＦＩＤリーダライタ３８が正常にＥＰＣを受信できない場合のアンチコリジョン処理の概要を示す図である。図６のステップＳ２１〜ステップＳ２４の処理については、図５のステップＳ１１〜ステップＳ１４の処理と同様であるため説明を省略する。
【００４１】
ステップＳ２４においてＡＣＫを送信してから所定時間待機しても、正常にＲＦＩＤタグ４００からＥＰＣを受信できない場合（ステップＳ２５）には、ＲＦＩＤリーダライタ３８は、図５のステップＳ１６で送信するＱｕｅｒｙＡｄｊｕｓｔコマンドに代えて、ＮＡＫコマンドをＲＦＩＤタグ４００へ送信する（ステップＳ２６）。ＮＡＫコマンドは、ＥＰＣを正常に受信できないためＲＦＩＤリーダライタ３８とＲＦＩＤタグ４００との間でアンチコリジョン処理を継続して維持することをＲＦＩＤタグ４００に指示するコマンドである。
【００４２】
ＮＡＫコマンドの送信後、ＲＦＩＤリーダライタ３８は、ＱｕｅｒｙＡｄｊｕｓｔコマンドを送信する（ステップＳ２７）。ＲＦＩＤリーダライタ３８からＱｕｅｒｙＡｄｊｕｓｔコマンドを受信したＲＦＩＤタグ４００は、再びＲＮ１６をＲＦＩＤリーダライタ３８に送信する（ステップＳ２８）。ＲＦＩＤリーダライタ３８は、ＲＦＩＤタグ４００からＲＮ１６を受信すると、その応答としてのＡＣＫをＲＦＩＤタグ４００へ送信する（ステップＳ２９）。ＲＦＩＤリーダライタ３８からＡＣＫを受信すると、ＲＦＩＤタグ４００は、再度、ＰＣ、ＥＰＣ、ＣＲＣ１６をＲＦＩＤリーダライタ３８へ送信する（ステップＳ３０）。
【００４３】
そして、ＲＦＩＤリーダライタ３８は、ステップＳ２９でＡＣＫを送信してから所定時間内に正常にＥＰＣを受信できた場合には、受信したＥＰＣの応答信号として、ＱｕｅｒｙＡｄｊｕｓｔコマンドをＲＦＩＤタグ４００へ送信し（ステップＳ３１）、ステップＳ２８においてＲＮ１６を送信したＲＦＩＤタグ４００以外のＲＦＩＤタグ４００との間で再び通信を開始し、反応するＲＦＩＤタグ４００がなくなるまでステップＳ２８〜Ｓ３１の処理を繰り返し実行する。
【００４４】
次に、第１の実施形態に係るＲＦＩＤリーダライタ３８を有するＰＯＳ端末１０が実行する商品読取処理の動作の一例について図７を参照して説明する。図７は、第１の実施形態に係るＲＦＩＤリーダライタ３８を有するＰＯＳ端末１０が実行する商品読取処理のフローチャートである。
【００４５】
はじめに、ＰＯＳ制御部５１は、ＲＦＩＤタグ４００を付した商品をＲＦＩＤリーダライタ３８上にセットするメッセージをディスプレイ３６に表示する（ステップＳ１０１）。
【００４６】
ＰＯＳ制御部５１は、ＰＯＳ端末１０のオペレータのキーボード３５の操作を通じて商品読取開始ボタンが押下されたか否かを判定する（ステップＳ１０２）。商品読取開始ボタンが押下されていない場合（ステップＳ１０２のＮＯ）には、商品読取開始ボタンが押下されるまで処理は待機状態となる。
【００４７】
商品読取開始ボタンが押下された場合（ステップＳ１０２のＹＥＳ）には、ＲＦＩＤリーダライタ制御部１０１は、後述のアンチコリジョン処理を行う（ステップＳ１０３）。ＰＯＳ制御部５１は、アンチコリジョン処理において強制終了の通知があったか否かを判定する（ステップＳ１０４）。強制終了の通知があった場合（ステップＳ１０４のＹＥＳ）には、ＰＯＳ制御部５１は、商品の配置変更を促すメッセージをディスプレイ３６に表示する（ステップＳ１０５）。強制終了の通知があった場合には、ＲＦＩＤタグ４００がＲＦＩＤリーダライタ３８から離れた位置に置かれたりしていて、ＲＦＩＤタグ４００の読み取りがうまくできない場合があるので、その対処方法をメッセージとして表示する。そして、処理はステップＳ１０２に戻り、全ての商品のＲＦＩＤタグ４００の読み取りが終わるまで、ステップＳ１０２〜ステップＳ１０５の処理が繰り返し実行される。強制終了の通知がなかった場合（ステップＳ１０４のＮＯ）には、ＰＯＳ制御部５１は、会計処理を行い（ステップＳ１０６）、商品読取処理を終了する。
【００４８】
次に、第１の実施形態に係るＲＦＩＤリーダライタ３８が実行するアンチコリジョン処理の動作の一例について、図８のフローチャートを参照して説明する。
【００４９】
はじめに、ＲＦＩＤリーダライタ制御部１０１は、初期値としてＱ＝４、Ｃ＝０．３、ＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数（以下、「ＱＡ回数」とも呼ぶ）＝０にセットする（ステップＳ２０１）。Ｑは、ＲＦＩＤタグ４００が発生する乱数の範囲を指定するパラメータである。ＥＰＣの仕様により、乱数の範囲は、０〜２Ｑ−１で表される。したがって、例えばＱ＝４にセットした場合、ＲＦＩＤタグ４００が発生する乱数の範囲は、０〜２Ｑ−１＝０〜２４−１＝０〜１５となる。ＲＦＩＤタグ４００は、Ｑｕｅｒｙコマンド、ＱｕｅｒｙＡｄｊｕｓｔコマンドを受信するとＱにより指定された範囲で乱数を発生し、乱数が０となったＲＦＩＤタグはＲＮ１６を送信する。Ｃは、Ｑを増減するための定数である。上述の実施形態においては、Ｃは、０．３にセットされているがこれに限られず、標準的に０．１＜Ｃ＜〜０．５の範囲でセットされる。
【００５０】
コマンド送受信部２０１は、アンチコリジョン処理で使用したいセッション（番号Ｓ０，Ｓ１，Ｓ２，Ｓ３）のうち１つを選択し、インベントリ済フラグにＡを設定してＳｅｌｅｃｔコマンド（ステップＳ２０２）をＲＦＩＤタグ４００へ送信する。また、コマンド送受信部２０１は、ステップ２０１でセットしたＱの値と、ステップＳ２０２で選択したセッションを指定してＱｕｅｒｙコマンドをＲＦＩＤタグ４００へ送信する（ステップＳ２０３）。
【００５１】
コマンド送受信部２０１は、Ｑｕｅｒｙコマンドに対しＲＦＩＤタグ４００から送信されたＲＮ１６を正常に受信したか否かを判定する（ステップＳ２０４）。ＲＮ１６を正常に受信した場合（ステップＳ２０４のＹＥＳ）には、コマンド送受信部２０１は、ＡＣＫコマンドをＲＦＩＤタグ４００へ送信する（ステップＳ２０５）。
【００５２】
コマンド送受信部２０１は、ステップＳ２０５でＡＣＫコマンドを送信してから所定の時間内にＲＦＩＤタグ４００から送信されたＰＣ、ＥＰＣ、ＣＲＣ１６を正常に受信したか否かを判定する（ステップＳ２０６）。ステップＳ２０５でＡＣＫコマンドを送信してから所定の時間内にＲＦＩＤタグ４００から送信されたＰＣ、ＥＰＣ、ＣＲＣ１６を正常に受信した場合（ステップＳ２０６のＹＥＳ）には、ＲＦＩＤリーダライタ制御部１０１はＥＰＣを上位装置であるＰＯＳ端末１０に通知し、処理はステップＳ２０８に進む。
【００５３】
ステップＳ２０５でＡＣＫコマンドを送信してから所定の時間内にＲＦＩＤタグ４００から送信されたＰＣ、ＥＰＣ、ＣＲＣ１６を正常に受信できない場合（ステップＳ２０６のＮＯ）には、コマンド送受信部２０１は、ＮＡＫコマンドをＲＦＩＤタグ４００に対し送信する（ステップＳ２０７）。
【００５４】
ＮＡＫコマンドの送信後、コマンド送受信部２０１は、ＱｕｅｒｙＡｄｊｕｓｔコマンドを送信する（ステップＳ２０８）。なお、ＱｕｅｒｙＡｄｊｕｓｔコマンドを受信したＲＦＩＤタグ４００は、再び乱数を発生し乱数が０となったＲＦＩＤタグ４００はＲＮ１６を送信する。送信回数計数部２０２は、ステップＳ２０８で送信したＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数であるＱＡ回数を１加算する（ステップＳ２０９）。
【００５５】
送信回数計数部２０２は、ステップＳ２０９においてＱＡ回数に１加算した結果、ＱＡ回数が第１の規定回数以上となったか否かを判定する（ステップＳ２１０）。ＱＡ回数が第１の規定回数以上となっていない場合（ステップＳ２１０のＮＯ）には、ステップＳ２０４の処理に戻り、ＱＡ回数が第１の規定回数以上となるまで、ステップＳ２０４〜ステップＳ２１０の処理が繰り返し実行される。第１の規定回数は、読取対象のＲＦＩＤタグ４００の総数に対して、余裕のある回数が設定される。ＱＡ回数が第１の規定回数以上となった場合（ステップＳ２１０のＹＥＳ）には、上位装置であるＰＯＳ端末１０に強制終了を通知する（ステップＳ２１１）。この処理が終了すると、アンチコリジョン処理は終了となる。
【００５６】
以上のように、アンチコリジョン処理においてノイズが多くて通信環境が悪い場合には、ＲＮ１６を正常に受信することができても、ＲＦＩＤタグ４００からのＥＰＣの応答を正常に受信できない場合がある。この場合、ＱｕｅｒｙＡｄｊｕｓｔコマンド送信処理と、ＲＦＩＤタグ４００からのＲＮ１６の応答処理とが実行されるステップＳ２０４〜Ｓ２０８の処理が繰り返し実行され、ループに嵌まりアンチコリジョン処理が終了しなくなってしまうおそれがある。これに対し、第１の実施形態では、ステップＳ２０９〜Ｓ２１１の処理を行うことにより、ＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数であるＱＡ回数が第１の規定回数以上となった場合には、上位装置であるＰＯＳ端末１０に強制終了の通知が行われるとともに、アンチコリジョン処理が終了する。これにより、アンチコリジョン処理がループに嵌まることを未然に防ぐとともに、ＲＦＩＤリーダライタ３８に強制終了が行われたことを通知することで、ＰＯＳ端末１０のオペレータに強制終了が行われたことを報知することができる。
【００５７】
また、ＲＮ１６を正常に受信できない場合（ステップＳ２０４のＮＯ）には、コマンド送受信部２０１は、ステップＳ２０３でＱｕｅｒｙコマンドまたはステップＳ２０８でＱｕｅｒｙＡｄｊｕｓｔコマンドを送信してから所定の時間内にＲＦＩＤタグ４００からＱｕｅｒｙコマンドまたはＱｕｅｒｙＡｄｊｕｓｔコマンドに対する何らかの応答があったか否かを判定する（ステップＳ２１２）。何らかの応答とは、例えば、ＲＦＩＤタグ４００からＲＮ１６の応答が複数あったため、ＲＮ１６の信号同士がぶつかり合い正常に受信できない場合やノイズを受信した等である。
【００５８】
ステップＳ２０３でＱｕｅｒｙコマンドまたはステップＳ２０８でＱｕｅｒｙＡｄｊｕｓｔコマンドを送信してから所定の時間内にＲＦＩＤタグ４００からＱｕｅｒｙコマンドまたはＱｕｅｒｙＡｄｊｕｓｔコマンドに対する何らかの応答があった場合（ステップＳ２１２のＹＥＳ）には、ＲＦＩＤリーダライタ制御部１０１は、ＱにＣの値を加算する（ステップＳ２１３）。ＲＦＩＤリーダライタ制御部１０１は、ＱにＣの値を加算した結果Ｑが１５より大きくなったか否か判定する（ステップＳ２１４）。なお、小数点以下のＱの値は省略する。ＱにＣの値を加算した結果Ｑが１５より大きくなった場合（ステップＳ２１４のＹＥＳ）には、ＲＦＩＤリーダライタ制御部１０１は、Ｑの最大値である１５をセットし（ステップＳ２１５）、ステップＳ２０８の処理に進む。
【００５９】
ＱにＣの値を加算した結果Ｑが１５以下の場合（ステップＳ２１４のＮＯ）には、ＲＦＩＤリーダライタ制御部１０１は、ステップＳ２１５の処理を省略し、ステップＳ２０８の処理に進む。ステップＳ２１３においてＱにＣを加算した場合、コマンド送受信部２０１は、Ｑの整数部が繰り上がったときはＱ＋１の指示を、Ｑの整数部が変化なしのときはＱ変化なしの指示を含むＱｕｅｒｙＡｄｊｕｓｔコマンドを送信する（ステップＳ２０８）。なお、ＱｕｅｒｙＡｄｊｕｓｔコマンドを受信したＲＦＩＤタグ４００は、再び乱数を発生して乱数が０となったＲＦＩＤタグ４００はＲＮ１６を送信する。例えばＲＦＩＤタグ４００は、Ｑ＋１の指示を含むＱｕｅｒｙＡｄｊｕｓｔコマンドを受信した結果Ｑ＝４がＱ＝５になった場合、ＲＦＩＤタグ４００が発生する乱数の範囲は、０〜２Ｑ−１＝０〜２５−１＝０〜３１となる。
【００６０】
以上のように、アンチコリジョン処理においてＲＦＩＤタグ４００の総数と比較して、乱数の範囲が小さいと、乱数が０となったＲＦＩＤタグ４００が複数発生し、ＲＮ１６の信号同士がぶつかり合うおそれがある。この場合、ＲＦＩＤリーダライタ３８は、ＲＦＩＤタグ４００からのＲＮ１６を正常に受信できないためノイズとしてしか受信できない場合がある。これに対し、第１の実施形態では、ステップＳ２１３の処理が行われることにより、Ｃを加算することで、乱数の範囲を大きくしてＲＦＩＤタグ４００からのＲＮ１６の応答を減少させることができる。その結果、ＲＮ１６の信号同士がぶつかり合い、ＲＮ１６を正常に受信できなくなることを防ぐことができる。
【００６１】
また、ステップＳ２０３でＱｕｅｒｙコマンドまたはステップＳ２０８でＱｕｅｒｙＡｄｊｕｓｔコマンドを送信してから所定の時間内にＲＦＩＤタグ４００からＱｕｅｒｙコマンドまたはＱｕｅｒｙＡｄｊｕｓｔコマンドに対する何らかの応答がなかった場合（ステップＳ２１２のＮＯ）には、ＲＦＩＤリーダライタ制御部１０１は、Ｑは０であるか否かを判定する（ステップＳ２１６）。Ｑは０でない場合（ステップＳ２１６のＮＯ）には、ＲＦＩＤリーダライタ制御部１０１は、ＱからＣの値を減算する（ステップＳ２１７）。ＱからＣの値を減算した結果Ｑが０より小さくなったか否か判定する（ステップＳ２１８）。
【００６２】
ＱからＣの値を減算した結果Ｑが０より小さくなった場合（ステップＳ２１８のＹＥＳ）にはＲＦＩＤリーダライタ制御部１０１は、Ｑに０をセットし（ステップＳ２１９）、ステップＳ２０８の処理に進む。ステップＳ２１７においてＱからＣの値を減算した結果、Ｑが０以上である場合（ステップＳ２１８のＮＯ）には、ＲＦＩＤリーダライタ制御部１０１は、ステップＳ２１９の処理を省略し、ステップＳ２０８の処理に進む。
【００６３】
ステップＳ２１７においてＱからＣを減算した場合、コマンド送受信部２０１は、Ｑの整数部が繰り上がったときはＱ−１の指示を、Ｑの整数部が変化なしのときはＱ変化なしの指示を含むＱｕｅｒｙＡｄｊｕｓｔコマンドを送信する（ステップ２０８）。なお、ＱｕｅｒｙＡｄｊｕｓｔコマンドを受信したＲＦＩＤタグ４００は、再び乱数を発生して乱数が０となったＲＦＩＤタグ４００はＲＮ１６を送信する。例えばＲＦＩＤタグ４００は、Ｑ−１の指示を含むＱｕｅｒｙＡｄｊｕｓｔコマンドを受信した結果Ｑ＝４がＱ＝３になった場合、ＲＦＩＤタグ４００が発生する乱数の範囲は、０〜２Ｑ−１＝０〜２３−１＝０〜７となる。
【００６４】
そして、Ｑからの減算を繰り返した結果、Ｑは０となった場合（ステップＳ２１６のＹＥＳ）、好ましくは、Ｑは０となった判定が所定回数連続した場合には、アンチコリジョン処理は終了となる。
【００６５】
以上のように、アンチコリジョン処理においてＲＦＩＤタグ４００の総数と比較して乱数の範囲が大きい場合には、例えば、ＲＦＩＤタグ４００からＲＮ１６の応答がほとんどないため、ＲＮ１６の信号を受信できない場合がある。これに対し、第１の実施形態では、ステップＳ２１７の処理を行うことにより、Ｃを減算することで、乱数の範囲を小さくしてＲＦＩＤタグ４００からのＲＮ１６の応答を増加させることができる。その結果、ＲＮ１６を受信する機会を増加させ、アンチコリジョン処理を迅速に終了することができ、ＲＦＩＤタグ４００の読み取りを早く終わらせることができる。
【００６６】
なお、第１の実施形態においては、ＲＦＩＤリーダライタ３８は、ＰＯＳ端末１０に使用されるものとして説明したがこれに限られるものではない。例えば、ベルトコンベア上を搬送される商品箱に付されたＲＦＩＤタグ４００の読み取りを行うＰＣ（Personal Computer）に使用されてもよい。
【００６７】
また、第１の実施形態においては、コマンド送受信部２０１は、特定の制御コマンドとしてＱｕｅｒｙＡｄｊｕｓｔコマンドを送信しているが、ＱｕｅｒｙＡｄｊｕｓｔコマンドの代わりにＱｕｅｒｙＲｅｐコマンドを送信してもよい。ＱｕｅｒｙＲｅｐコマンドは、発生した乱数の値を「１」減算させ、減算した結果「０」となったＲＦＩＤタグ４００に応答する旨の指示を与えるコマンドである。この場合、コマンド送受信部２０１は、ステップＳ２０８においてＱｕｅｒｙＡｄｊｕｓｔコマンドの代わりにＱｕｅｒｙＲｅｐコマンドを送信する。そして、ステップＳ２０９において、送信回数計数部２０２は、ＱｕｅｒｙＡｄｊｕｓｔコマンドの代わりにＱｕｅｒｙＲｅｐコマンドの送信回数を１加算する。ステップＳ２１０において、送信回数計数部２０２は、ＱｕｅｒｙＲｅｐコマンドの送信回数を１加算した結果、ＱｕｅｒｙＲｅｐコマンドの送信回数が第１の規定回数以上となったか否かを判定する。
【００６８】
ＱｕｅｒｙＲｅｐコマンドの送信回数が第１の規定回数以上となっていない場合（ステップＳ２１０のＮＯ）には、ステップＳ２０４の処理に戻り、ＱｕｅｒｙＲｅｐコマンドの送信回数が第１の規定回数以上となるまで、ステップＳ２０４〜ステップＳ２１０の処理が繰り返し実行される。ＱｕｅｒｙＲｅｐコマンドの送信回数が第１の規定回数以上となった場合（ステップＳ２１０のＹＥＳ）には、上位装置であるＰＯＳ端末１０に強制終了を通知する（ステップＳ２１１）。この処理が終了すると、アンチコリジョン処理は終了となる。
【００６９】
＜第２の実施形態＞
第１の実施形態においては、ＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数であるＱＡ回数が第１の規定回数以上となった場合には、ＲＦＩＤリーダライタ３８は、上位装置であるＰＯＳ端末１０に強制終了の通知を行うとともに、アンチコリジョン処理を終了した。これに対し、第２の実施形態においては、ＮＡＫコマンドの送信回数であるＮＡＫ回数が第２の規定回数以上となった場合には、ＲＦＩＤリーダライタ３８は、上位装置であるＰＯＳ端末１０に強制終了の通知を行うとともに、アンチコリジョン処理を終了する。
【００７０】
第２の実施形態のＲＦＩＤリーダライタ３８は、第１の実施形態のＲＦＩＤリーダライタ３８のハードウェア構成と略同じであるため説明を省略する。また、第２の実施形態のＲＦＩＤリーダライタ３８は、第１の実施形態の機能構成と略同じであるため説明を省略する。但し、第２の実施形態の送信回数計数部２０２は、コマンド送受信部２０１により送信されたＮＡＫコマンドの送信回数を計数する。そして、第２の実施形態の読取終了部２０３は、送信回数計数部２０２により計数されたＮＡＫコマンドの送信回数に応じてＲＦＩＤタグ４００の読み取りを終了する。また、第２の実施形態の終了通知部２０４は、送信回数計数部２０２により計数されたＮＡＫコマンドの送信回数が所定の第２の規定回数以上である場合には、上位装置であるＰＯＳ端末１０にＲＦＩＤタグ４００の読み取りを終了することを通知する。また、第２の実施形態に係るＲＦＩＤリーダライタ３８を有するＰＯＳ端末１０が実行する商品読取処理のフローチャートは、第１の実施形態に係るＲＦＩＤリーダライタ３８を有するＰＯＳ端末１０が実行する商品読取処理のフローチャートと略同様であるため説明を省略する。
【００７１】
以下、第２の実施形態に係るＲＦＩＤリーダライタ３８が実行するアンチコリジョン処理の動作の一例について、図９のフローチャートを参照して説明する。なお、第２の実施形態のステップＳ３０２〜Ｓ３０７、Ｓ３１２〜Ｓ３１９の処理は、第１の実施形態のステップＳ２０２〜Ｓ２０７、Ｓ２１２〜Ｓ２１９の処理と略同様であるため説明を省略する。
【００７２】
はじめに、ＲＦＩＤリーダライタ制御部１０１は、初期値としてＱ＝４、Ｃ＝０．３、ＮＡＫコマンドの送信回数（以下、「ＮＡＫ回数」とも呼ぶ）＝０にセットする（ステップＳ３０１）。
【００７３】
ステップＳ３０８において、送信回数計数部２０２は、ステップＳ３０７で送信したＮＡＫコマンドの送信回数であるＮＡＫ回数を１加算する。送信回数計数部２０２は、ステップＳ３０８においてＮＡＫ回数に１加算した結果、ＮＡＫ回数が第２の規定回数以上となったか否かを判定する（ステップＳ３０９）。ＮＡＫ回数が第２の規定回数以上となっていない場合（ステップＳ３０９のＮＯ）には、コマンド送受信部２０１は、ＱｕｅｒｙＡｄｊｕｓｔコマンドを送信する（ステップＳ３１０）。第２の規定回数は、読取対象のＲＦＩＤタグ４００の総数に対して、余裕のある回数が設定される。ＱｕｅｒｙＡｄｊｕｓｔコマンドの送信後、ステップＳ３０４の処理に戻り、ＮＡＫ回数が第２の規定回数以上となるまで、ステップＳ３０４〜ステップＳ３１０の処理が繰り返し実行される。ＮＡＫ回数が第２の規定回数以上となった場合（ステップＳ３０９のＹＥＳ）には、上位装置であるＰＯＳ端末１０に強制終了を通知する（ステップＳ３１１）。この処理が終了すると、アンチコリジョン処理は終了となる。
【００７４】
以上のように、アンチコリジョン処理においてノイズが多くて通信環境が悪い場合には、ＲＮ１６を正常に受信することができても、ＲＦＩＤタグ４００からのＥＰＣの応答を正常に受信できない場合がある。この場合、ＱｕｅｒｙＡｄｊｕｓｔコマンド送信処理と、ＲＦＩＤタグ４００からのＲＮ１６の応答処理とが実行されるステップＳ３０４〜Ｓ３１０の処理が繰り返し実行され、ループに嵌まりアンチコリジョン処理が終了しなくなってしまうおそれがある。これに対し、第２の実施形態では、ステップＳ３０８〜Ｓ３１１の処理を行うことにより、ＮＡＫコマンドの送信回数であるＮＡＫ回数が第２の規定回数以上となった場合には、上位装置であるＰＯＳ端末１０に強制終了の通知が行われるとともに、アンチコリジョン処理が終了する。これにより、アンチコリジョン処理がループに嵌まることを未然に防ぐとともに、ＲＦＩＤリーダライタ３８に強制終了が行われたことを通知することで、ＰＯＳ端末１０のオペレータに強制終了が行われたことを報知することができる。
【００７５】
＜第３の実施形態＞
第１の実施形態においては、ＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数であるＱＡ回数が第１の規定回数以上となった場合には、ＲＦＩＤリーダライタ３８は、上位装置であるＰＯＳ端末１０に強制終了の通知を行うとともに、アンチコリジョン処理を終了した。これに対し、第３の実施形態においては、ＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数であるＱＡ回数が第１の規定回数以上となるか、ＮＡＫコマンドの送信回数であるＮＡＫ回数が第２の規定回数以上となった場合には、ＲＦＩＤリーダライタ３８は、上位装置であるＰＯＳ端末１０に強制終了の通知を行うとともに、アンチコリジョン処理を終了する。
【００７６】
第３の実施形態のＲＦＩＤリーダライタ３８は、第１の実施形態のＲＦＩＤリーダライタ３８のハードウェア構成と略同じであるため説明を省略する。また、第３の実施形態のＲＦＩＤリーダライタ３８は、第１の実施形態の機能構成と略同じであるため説明を省略する。但し、第３の実施形態の送信回数計数部２０２は、コマンド送受信部２０１により送信されたＱｕｅｒｙＡｄｊｕｓｔコマンドおよびＮＡＫコマンドの送信回数をそれぞれ計数する。そして、第３の実施形態の読取終了部２０３は、送信回数計数部２０２によりそれぞれ計数されたＱｕｅｒｙＡｄｊｕｓｔコマンドまたはＮＡＫコマンドの送信回数に応じてＲＦＩＤタグ４００の読み取りを終了する。また、第３の実施形態の終了通知部２０４は、送信回数計数部２０２によりそれぞれ計数されたＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数が所定の第１の規定回数以上となるか、ＮＡＫコマンドの送信回数が所定の第２の規定回数以上となる場合には、上位装置であるＰＯＳ端末１０にＲＦＩＤタグ４００の読み取りを終了することを通知する。また、第３の実施形態に係るＲＦＩＤリーダライタ３８を有するＰＯＳ端末１０が実行する商品読取処理のフローチャートは、第１の実施形態に係るＲＦＩＤリーダライタ３８を有するＰＯＳ端末１０が実行する商品読取処理のフローチャートと略同様であるため説明を省略する。
【００７７】
以下、第３の実施形態に係るＲＦＩＤリーダライタ３８が実行するアンチコリジョン処理の動作の一例について、図１０のフローチャートを参照して説明する。なお、第３の実施形態のステップＳ４０２〜Ｓ４０７、Ｓ４１４〜Ｓ４２１の処理は、第１の実施形態のステップＳ２０２〜Ｓ２０７、Ｓ２１２〜Ｓ２１９の処理と略同様であるため説明を省略する。
【００７８】
はじめに、ＲＦＩＤリーダライタ制御部１０１は、初期値としてＱ＝４、Ｃ＝０．３、ＱＡ回数＝０、ＮＡＫ回数＝０にセットする（ステップＳ４０１）。
【００７９】
ステップＳ４０８において、送信回数計数部２０２は、ステップＳ４０７で送信したＮＡＫコマンドの送信回数であるＮＡＫ回数を１加算する。送信回数計数部２０２は、ステップＳ４０８においてＮＡＫ回数に１加算した結果、ＮＡＫ回数が第２の規定回数以上となったか否かを判定する（ステップＳ４０９）。
【００８０】
ＮＡＫ回数が第２の規定回数以上となっていない場合（ステップＳ４０９のＮＯ）には、コマンド送受信部２０１は、ＱｕｅｒｙＡｄｊｕｓｔコマンドを送信する（ステップＳ４１０）。ＱｕｅｒｙＡｄｊｕｓｔコマンドの送信後、送信回数計数部２０２は、ステップＳ４１０で送信したＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数であるＱＡ回数を１加算する（ステップＳ４１１）。
【００８１】
送信回数計数部２０２は、ステップＳ４１１においてＱＡ回数に１加算した結果、ＱＡ回数が第１の規定回数以上とならない場合（ステップＳ４１２のＮＯ）には、ステップＳ４０４の処理に戻り、ＱＡ回数が第１の規定回数以上となるか、ＮＡＫ回数が第２の規定回数以上となるまで、ステップＳ４０４〜ステップＳ４１２の処理が繰り返し実行される。第１の規定回数および第２の規定回数は、読取対象のＲＦＩＤタグ４００の総数に対して、余裕のある回数が設定される。
【００８２】
ＮＡＫ回数が第２の規定回数以上（ステップＳ４０９のＹＥＳ）となるか、ＱＡ回数が第１の規定回数以上（ステップＳ４１２のＹＥＳ）となった場合には、上位装置であるＰＯＳ端末１０に強制終了を通知する（ステップＳ４１３）。この処理が終了すると、アンチコリジョン処理は終了となる。
【００８３】
以上のように、アンチコリジョン処理においてノイズが多くて通信環境が悪い場合には、ＲＮ１６を正常に受信することができても、ＲＦＩＤタグ４００からのＥＰＣの応答を正常に受信できない場合がある。この場合、ＱｕｅｒｙＡｄｊｕｓｔコマンド送信処理と、ＲＦＩＤタグ４００からのＲＮ１６の応答処理とが実行されるステップＳ４０４〜Ｓ４１０の処理が繰り返し実行され、ループに嵌まりアンチコリジョン処理が終了しなくなってしまうおそれがある。これに対し、第３の実施形態では、ステップＳ４０８、Ｓ４０９、Ｓ４１１〜Ｓ４１３の処理を行うことにより、ＱｕｅｒｙＡｄｊｕｓｔコマンドの送信回数であるＱＡ回数が第１の規定回数以上となるか、ＮＡＫコマンドの送信回数であるＮＡＫ回数が第２の規定回数以上となった場合には、上位装置であるＰＯＳ端末１０に強制終了の通知が行われるとともに、アンチコリジョン処理が終了する。これにより、アンチコリジョン処理がループに嵌まることを未然に防ぐとともに、ＲＦＩＤリーダライタ３８に強制終了が行われたことを通知することで、ＰＯＳ端末１０のオペレータに強制終了が行われたことを報知することができる。
【００８４】
なお、第３の実施形態においては、コマンド送受信部２０１は、特定の制御コマンドとしてＱｕｅｒｙＡｄｊｕｓｔコマンドを送信しているが、ＱｕｅｒｙＡｄｊｕｓｔコマンドの代わりにＱｕｅｒｙＲｅｐコマンドを送信してもよい。この場合、コマンド送受信部２０１は、ステップＳ４１０においてＱｕｅｒｙＡｄｊｕｓｔコマンドの代わりにＱｕｅｒｙＲｅｐコマンドを送信する。そして、ステップＳ４１１において、送信回数計数部２０２は、ＱｕｅｒｙＡｄｊｕｓｔコマンドの代わりにＱｕｅｒｙＲｅｐコマンドの送信回数を１加算する。ステップＳ４１２において、送信回数計数部２０２は、ＱｕｅｒｙＲｅｐコマンドの送信回数を１加算した結果、ＱｕｅｒｙＲｅｐコマンドの送信回数が第１の規定回数以上となったか否かを判定する。
【００８５】
ＱｕｅｒｙＲｅｐコマンドの送信回数が第１の規定回数以上とならない場合（ステップＳ４１２のＮＯ）には、ステップＳ４０４の処理に戻り、ＱｕｅｒｙＲｅｐコマンドの送信回数が第１の規定回数以上となるか、ＮＡＫ回数が第２の規定回数以上となるまで、ステップＳ４０４〜ステップＳ４１２の処理が繰り返し実行される。ＮＡＫ回数が第２の規定回数以上（ステップＳ４０９のＹＥＳ）となるか、ＱｕｅｒｙＲｅｐコマンドの送信回数が第１の規定回数以上（ステップＳ４１２のＹＥＳ）となった場合には、上位装置であるＰＯＳ端末１０に強制終了を通知する（ステップＳ４１３）。この処理が終了すると、アンチコリジョン処理は終了となる。
【００８６】
なお、本発明は上述した実施形態そのままに限定されるものではなく、実施段階でのその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素を適宜組み合わせても良い。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。このような、発明の趣旨を逸脱しない範囲内において種々の変形や応用が可能であることはもちろんである。
【符号の説明】
【００８７】
１０  ＰＯＳ端末
３１  制御ユニット
３２  自動釣銭機
３３  自動釣札機
３４  キャッシュドロア
３５  キーボード
３６  ディスプレイ
３７  タッチパネル
３８  ＲＦＩＤリーダライタ
３９  可搬型記録媒体
５１  ＰＯＳ制御部
５２  記憶部
５３  グラフィック処理装置
５４  入出力インタフェース
５５  通信インタフェース
５６  バス
１０１  ＲＦＩＤリーダライタ制御部
１０２  記憶部
１０３  通信インタフェース
１０４  バス
２０１  コマンド送受信部
２０２  送信回数計数部
２０３  読取終了部
２０４  終了通知部
３００  外部サーバ
４００  ＲＦＩＤタグ
【図１】
2020021117.tif 000003
【図２】
2020021117.tif 000004
【図３】
2020021117.tif 000005
【図４】
2020021117.tif 000006
【図５】
2020021117.tif 000007
【図６】
2020021117.tif 000008
【図７】
2020021117.tif 000009
【図８】
2020021117.tif 000010
【図９】
2020021117.tif 000011
【図１０】
2020021117.tif 000012