以下、本発明の一実施の形態を図面を参照しつつ説明する。
図1は、本実施形態の無線タグ通信システムを倉庫に適用した場合の一例を表す平面図である。この例では、倉庫300内での監視対象として、予めその倉庫300内の所定の物品棚301に配置された多数の管理対象の物品302が設定されおり、各管理対象物品302には個々の物品に対応した無線タグTが添付(あるいは同梱等でもよい)されている。
そして、リーダ(質問器)1により、上記無線タグTを探索し読み取ることで、その無線タグTに対応する管理対象物品についての倉庫300内における存在状況を検出する。この例においてリーダ1が行う探索処理は、無線タグTが倉庫300内に存在する数、およびそれぞれの識別情報(以下、タグIDという)を含む無線タグ情報を検出するようになっている。また、倉庫300内には、コードレス電話303やPC(パーソナルコンピュータ)等を接続する無線LAN装置304などの無線通信機器が設置されている。
ここで、各無線タグTとリーダ1との間の無線通信については、一般に所定の周波数帯域中における複数の周波数チャンネルの搬送波を利用して無線通信を行うようになっており、これにより以下の3つの利点が得られる。
まず、各無線タグTとリーダ1との間の無線通信では、相互の最短距離で直接波Wdを送受する他に、壁際や障害物の近傍に位置する無線タグTの場合はリーダ1との間で反射波Wrも同時に送受することになるが、このような複数の経路で電波を送受するマルチパスの影響により直接波Wdと反射波Wrが相互に電波強度を減衰してしまう(通信経路の差によりそれぞれ逆の位相で送受される)場合がある。図2はこのようなマルチパスの影響を表す図であり、この例では、破線で示すような無線タグ回路素子Toのタグアンテナ特性(通信に使用可能な周波数帯域fa〜fi)において、コードレス電話303の通信周波帯がfhであり、また無線LAN装置304の通信周波帯がfc〜feであるため、それらの影響によって図示のように周波数fc,fe,ff,fg,fiにおける無線タグ回路素子Toの電波強度が小さくなっている。
これに対し、搬送波の周波数を変えて(すなわち各無線タグTのそれぞれの配置に対応する複数の周波数チャンネルを用いて)無線通信を行うことで、このようなマルチパスの影響を解消又は低減することができる。
次に、各無線タグTのアンテナの周波数特性に個体別のばらつきがある場合に対し、各アンテナの周波数特性に最も適する周波数チャンネル(つまり共振周波数)を用いることで確実な無線通信を行うことができ、これは特にリーダ1との通信距離が長い無線タグTに対して有効である。
そして、上記のように他の無線通信機器など、無線タグ回路素子Toの応答信号とは異なる電波源からの妨害波が出力されている場合に、その妨害波の周波数近傍を除いた周波数チャンネルで無線通信を行うことで混信・妨害を避けることができる。
以上の利点から、リーダ1は各無線タグTが個別に対応する周波数チャンネル(以下、ホップ周波数という)を切り替えて無線通信を行う(以下、周波数ホッピング通信という)ようになっている(周波数ホッピング通信については後に詳述する)。なお、所定の周期で切り替えられる(ホッピングされる)各ホップ周波数としては、例えば上記所定の周波数帯域中に均等に分布する周波数に設定することができる。
図3は、本実施形態の無線タグ通信システム100の概略を表すシステム構成図である。
図3において、この無線タグ通信システム100は、上述したように管理対象となる物品に添付させる無線タグTと、これら無線タグTとのホッピング無線によりそれぞれのタグIDを含む無線タグ情報の検出を行うリーダ1とから構成されている。
無線タグTは、タグ側アンテナ151とIC回路部150とを備える無線タグ回路素子Toを有しており、この無線タグ回路素子Toを特に図示しない基材などに設けた構成のものである(無線タグ回路素子Toについては後に詳述する)。
リーダ1は、本体制御部2と、リーダアンテナ3とを有している。本体制御部2は、CPU4と、ハードディスク装置やフラッシュメモリなどの不揮発記憶装置からなり各ホップ周波数に対応するスロット数指定値(識別スロット数Mを決定する値)などの相関情報を格納するホップテーブル(詳しくは後述する)等の各種情報を記憶する不揮発記憶装置5と、例えばRAMやROM等からなるメモリ6と、操作者からの指示や情報が入力される操作部7と、各種情報やメッセージを表示する表示部8と、リーダアンテナ3を介し無線タグTとのホッピング通信の制御を行うRF通信制御部9とを備えている。
なお、不揮発記憶装置5は、リーダ1内に固定的に設けることに限らず、リーダ1に対して着脱可能に設けたものや、または何らかの通信回線を介してリーダ1と情報を送受可能に接続した外部のデータベースを利用してもよい。
図4は、上記リーダ1におけるCPU4、不揮発記憶装置5、RF通信制御部9、及びリーダアンテナ3の詳細構成を表す機能ブロック図である。この図4において、リーダ1のRF通信制御部9は、上記リーダアンテナ3を介し上記無線タグ回路素子ToのIC回路部150の情報(タグIDを含む無線タグ情報)へアクセスするものであり、またリーダ1のCPU4は不揮発記憶装置5に格納されているホップテーブルを参照してホップ周波数を切り替えつつ無線タグ回路素子ToのIC回路部150へアクセスするための応答要求コマンド(詳しくは後述する)を生成するとともに無線タグ回路素子ToのIC回路部150から読み出された信号を処理して情報を読み出すものである。
RF通信制御部9は、リーダアンテナ3を介し無線タグ回路素子Toに対して信号を送信する送信部212と、リーダアンテナ3により受信された無線タグ回路素子Toからの応答波を入力する受信部213と、送受分離器214とから構成される。
送信部212は、無線タグ回路素子ToのIC回路部150の無線タグ情報にアクセスする(この例では読み取り及び書き込み)ための搬送波を発生させる水晶振動子215A、CPU4の制御により所定の周波数の信号を発生させるPLL(Phase Locked Loop)215B、及びVCO(Voltage Controlled Oscillator)215Cと、上記CPU4から供給される信号に基づいて上記発生させられた搬送波を変調(この例ではCPU4からの「TX_ASK」信号に基づく振幅変調)する送信乗算回路216(指令生成手段;但し「TX_ASK信号」の場合は増幅率可変アンプ等を用いてもよい)と、その送信乗算回路216により変調された変調波を増幅(この例ではCPU4からの「TX_PWR」信号によって増幅率を決定される増幅)する可変送信アンプ217とを備えている。そして、上記発生される搬送波は、例えばUHF帯、マイクロ波帯、あるいは短波帯などの周波数帯を用いており、CPU4はそのいずれかの周波数帯でその中の複数のホップ周波数(周波数チャンネル)を所定の周期で切り替えて搬送波を生成させるようPLL215Bを制御する。上記送信アンプ217の出力は、送受分離器214を介しリーダアンテナ3に伝達されて無線タグ回路素子ToのIC回路部150に供給される。なお、無線タグ情報は上記のように変調した信号に限られず、単なる搬送波のみの場合もある。
受信部213は、リーダアンテナ3で受信された無線タグ回路素子Toからの応答波と上記発生させられた搬送波とを乗算して復調する受信第1乗算回路218と、その受信第1乗算回路218の出力から必要な帯域の信号のみを取り出すための第1バンドパスフィルタ219と、この第1バンドパスフィルタ219の出力を増幅する受信第1アンプ221と、この受信第1アンプ221の出力をさらに増幅してデジタル信号に変換する第1リミッタ220と、上記リーダアンテナ3で受信された無線タグ回路素子Toからの応答波と上記発生された後に移相器227により位相を90°遅らせた搬送波とを乗算する受信第2乗算回路222と、その受信第2乗算回路222の出力から必要な帯域の信号のみを取り出すための第2バンドパスフィルタ223と、この第2バンドパスフィルタ223の出力を増幅する受信第2アンプ225と、この受信第2アンプ225の出力をさらに増幅してデジタル信号に変換する第2リミッタ224とを備えている。そして、上記第1リミッタ220から出力される信号「RXS−I」及び第2リミッタ224から出力される信号「RXS−Q」は、上記CPU4に入力されて処理される。
また、受信第1アンプ221及び受信第2アンプ225の出力は、強度検出手段としてのRSSI(Received Signal Strength Indicator)回路226にも入力され、それらの信号の強度を示す信号「RSSI」がCPU4に入力されるようになっている。このようにして、リーダ1では、I−Q直交復調によって無線タグ回路素子Toからの応答波の復調が行われる。
そして、上記リーダ1はこの例では倉庫300内の空間全体をその通信範囲に納め、その通信範囲内に存在する複数の無線タグTの無線タグ回路素子Toに対してそれぞれのタグIDを応答信号として発信させるよう要求する応答要求コマンド(探索指令)を送信する。
この応答要求コマンドは、各ホップ周波数において応答すると予想される無線タグ回路素子Toの数が不確定な条件下において探索を行うための探索指令である。この応答要求コマンドには、例えばこの例で0から15までのいずれかの値で指定するスロット数指定値Qが含まれており、RF通信制御部9からリーダアンテナ3を介し応答要求コマンドが送信されると各無線タグ回路素子Toは0から2Q−1(=2のQ乗−1)までのスロットカウント値Sを乱数により生成保持する。
またCPU4及びRF通信制御部9がリーダアンテナ3を介して該コマンドを送信後、所定の識別スロットで無線タグ回路素子Toからの応答を待ち受ける。無線タグ回路素子Toでスロットカウント値Sとして値0を生成したものはこのスロットで応答する。
その後、さらにCPU4及びRF通信制御部9はスロットカウント減算コマンドを送信し、直後に設けられた所定の識別スロット時間枠で無線タグ回路素子Toの応答を待つのである。スロットカウント減算コマンドを受信した各無線タグ回路素子Toは自身のスロットカウント値Sを減算し保持し、該スロットカウント値Sが値0になった時点の識別スロットでタグIDを含む応答信号あるいはID送信の許可を得るための例えば16ビットの擬似乱数を用いた応答信号を送信するのである。そしてこのスロットカウント減算コマンドの送信と識別スロットでの受信を2Q−1回繰り返す。
このように各無線タグ回路素子Toが異なる識別スロットで応答信号を返信することで、リーダアンテナ3を介し、RF通信制御部9及びCPU4は混信を受けることなく一つ一つの無線タグ回路素子ToのタグIDを明確に受信し取り込むことができる(詳細は後述する)。
また、上記リーダ1は、この例では、情報検出処理(後述の図12参照)を行う際に、応答信号が得られた無線タグ回路素子Toに対してその後しばらくの間無線通信動作を停止させる(=休眠状態とさせる)休眠化信号(「Sleep」信号)も送信することが可能である。この「Sleep」信号は、リーダ1が通信範囲内に存在する多数個の無線タグTからそれぞれのタグIDを読み取る際に、一回の読み取り動作(所定のホップ周波数において応答要求コマンドを一回送信して行う読み取り動作)で対応する無線タグTの応答信号を全て受信できない場合でも、すでに応答信号を受信できた無線タグTに対してのみ「Sleep」信号を送信して停止させることで、それ以降に繰り返し同じ条件の読み取り動作を行ったときにはまだ正常に読み取れていない無線タグ回路素子Toに対してだけ読み取り動作を行うことができる。RF通信制御部9からリーダアンテナ3を介し応答要求コマンドが送信されると、各無線タグ回路素子Toは所定の条件(所定時間の経過、又は「Sleep解除」信号の受信)が満たされるまで無線通信動作の停止状態を維持する。
なお、応答した無線タグ回路素子Toが自ら所定の応答済みフラグを例えばAからBに反転させ、質問器から応答済みフラグがAのタグのみ指定して応答要求コマンドを送信する場合は応答済みフラグがBの無線タグ回路素子Toは応答できず実質的に休眠状態となるので、このようなフラグ指定も休眠化信号の一種である。
図5は、上記無線タグTに備えられた無線タグ回路素子Toの機能的構成の一例を表すブロック図である。この図5において、無線タグ回路素子Toは、上記リーダ1側の上記リーダアンテナ3と短波帯(例えば13.56MHz)、UHF帯、マイクロ波帯等の高周波を用いて非接触で信号の送受信を行うタグ側アンテナ151と、このタグ側アンテナ151に接続された上記IC回路部150とを有している。
IC回路部150は、タグ側アンテナ151により受信された搬送波を整流する整流部152と、この整流部152により整流された搬送波のエネルギを蓄積し駆動電源とするための電源部153と、上記タグ側アンテナ151により受信された搬送波からクロック信号を抽出して制御部157に供給するクロック抽出部154と、無線タグTのタグIDなどの所定の情報信号を記憶し得る情報記憶部として機能するメモリ部155と、上記タグ側アンテナ151に接続されて信号の変調及び復調を行う変復調部156と、上記リーダ1からの上記応答要求コマンドの受信時に当該無線タグ回路素子Toが応答信号(リプライ信号)をどの識別スロットに出力するかを決定するための乱数を発生させる乱数発生器158(詳細は後述)と、上記整流部152、クロック抽出部154、変復調部156、及び乱数発生器158等を介して上記無線タグ回路素子Toの作動を制御するための制御部157と、スロットカウンタ159とを備えている。
変復調部156は、タグ側アンテナ151により受信された上記リーダ1のリーダアンテナ3からの通信信号の復調を行うと共に、上記制御部157からの返信信号に基づき、アンテナ151が受信した搬送波を変調し、アンテナ151より反射波として再送信する。
乱数発生器158は、上記リーダ1からの上記応答要求コマンドに指定されているスロット数指定値Qに対し、0から2Q−1までの乱数を発生させる。制御部157はこれをスロットカウンタ159に保存する。スロットカウント減算コマンドを受信する度にこのスロットカウンタ159のカウント値を1つ減算し、カウント値が0になった場合に応答を行う。
この制御部157は、リーダ1と通信を行うことにより上記メモリ部155に上記所定の情報を記憶する制御や、上記タグ側アンテナ151により受信された質問波(応答要求コマンド)を上記変復調部156において上記メモリ部155に記憶された情報信号に基づいて変調したうえで応答波(応答信号)とし、これを上記乱数発生器158により発生させた乱数に対応する識別スロットで上記タグ側アンテナ151から応答波を反射返信する制御等の基本的な制御を実行する。また、上記「Sleep」信号を受信した際には無線通信動作を停止させるよう制御する。
クロック抽出部154は受信した信号からクロック成分を抽出して制御部157にクロックを抽出するものであり、受信した信号のクロック成分の速度に対応したクロックを制御部157に供給する。
なお、メモリ部155には少なくとも、各無線タグ回路素子Toを個体別に識別するためのタグIDが予め記憶されており、制御部157は自己のタグIDを含めた応答信号を発信するようになっている。
ここで、本実施形態の無線タグ通信システム100のリーダ1の最も大きな特徴は、識別スロットにおける衝突数の検出結果に基づいて当該ホップ周波数における妨害波の有無を判定することにある。以下、その詳細を順次説明する。
まず、リーダ1の不揮発記憶装置5に格納保持される上記ホップテーブルについて説明する。図6は、本実施形態におけるホップ周波数とスロット数指定値初期値及び各種変数との対応を管理するホップテーブルの一例を概念的に表す図である。
図6において、このホップテーブルは、例えば、ある特定の一つの通信対象区域(この例では倉庫300内の空間)にのみ対応するものであり、図6に示すようにこの例では1から9までの連続した9つの参照番号N(図中では上方から下方に向けて昇順で並べて示している)と、その参照番号Nに応じたホップ周波数f(N)と、そのホップ周波数f(N)毎にそれぞれ応答信号が受信できると想定される受信対象想定個数に対して適切な識別スロット数Mに対応したスロット数指定値Qの初期値Qini(N)と、後述する衝突検出処理や読取確認処理で実際に用いるスロット数指定値変数Q(N)と、後述する衝突検出処理で検出された応答信号の衝突数C(N)と、その前回に行った衝突検出処理で検出された前回衝突数P(N)と、スロット数指定値変数Q(N)の設定が完了したかを確認するための設定完了確認フラグK(N)とが、予めそれぞれ対応付けられた相関情報として形成されている。
このとき、カッコ内の「(N)」の表記は、参照番号Nを引数としてそれに対応するスロット数指定値変数を表す記述であり、例えば参照番号N=1の場合に対応するスロット数指定値変数Q(N)はQ(1)を意味する。また、ホップテーブル中の上記各種項目のうち、参照番号N、ホップ周波数f(N)、及びスロット数指定値初期値Qini(N)は、上記不揮発記憶装置5に予め所定の適切な数値が入力格納されているものであるが、他のパラメータのスロット数指定値変数Q(N)、衝突数C(N)、前回衝突数P(N)、及び設定完了確認フラグK(N)はリーダ1が行う探索処理(後述の図7〜図12参照)で内容が書き換えられる変数として扱われるパラメータであり、不揮発記憶装置5においては初期値又は不定値が格納される。
ホップ周波数f(N)は、前述したように所定の周波数帯中に設定された複数(この例では9つであるが他の個数でもよい)の周波数であり、それら周波数どうしの高低関係は参照番号Nの順に関係なくランダムに設定されている。
スロット数指定値Qの初期値Qini(N)は、実際の探索対象想定個数に適切な識別スロット数Mあるいはそれより少なめに設定された識別スロット数Mに対応して設定される。この指定値初期値Qini(N)は、監視対象となるリーダ1の通信対象区域ごとに最初の探索処理を行う前に予めホップ周波数f(N)毎に入力設定されるものである。
図7は、リーダ1のCPU4によって実行される制御手順を表すフローチャートである。
図7において、この例では、電源の投入後(又は例えば操作部7において無線タグTの探索を開始させる操作が行われると)、このフローが開始される。
まず、ステップS5において、参照変数Nvの値を1に、全ての前回衝突数(図中ではP(1〜9)と表記)の値を0に、全ての設定完了確認フラグ(図中ではK(1〜9)と表記)の値を0に、各スロット数指定値変数Q(N)の値をそれぞれ対応するスロット数指定値初期値Qini(N)に代入(図中ではQ(1〜9)=Qini(1〜9)と表記)するよう初期化する。なお、参照変数Nvはメモリ6などに書き換え可能に記憶される変数であり、各パラメータでそれぞれ参照番号Nに対応するものを特定するための引数として用いるものである。
次にステップS10へ移り、設定完了確認フラグK(Nv)が1であるか否か、すなわち参照変数Nvに対応する(ホップ周波数f(Nv)に対応する)スロット数指定値変数Q(Nv)の設定が完了しているか否かを判定する。設定完了確認フラグK(Nv)が1となっている場合、判定が満たされ、ステップS55へ移る。一方、設定完了確認フラグK(Nv)が初期値の0のままである場合、判定が満たされず、すなわちまだ参照変数Nvに対応するスロット数指定値変数Q(Nv)の設定が適切に完了していないものとみなされてステップS13へ移る。
ステップS13では、スロット数指定値変数Q(Nv)が(後述のように)最小値である0となっているかどうかを判定する。スロット数指定値変数Q(Nv)=0であった場合は判定が満たされ、ステップS55に移る。Q(Nv)が0でなければ(1以上であれば)、ステップS13の判定が満たされず、ステップS15に移る。
ステップS15では、上記ホップテーブルから参照変数Nvに対応するホップ周波数f(Nv)を取得し、それに基づく制御信号を送信部212のPLL215(図4参照)に出力してホップ周波数f(Nv)の搬送波をRF通信制御部9に発生させる。
次にステップS200へ移り、衝突検出処理を行う。この衝突検出処理は、上記ステップS15で設定したホップ周波数f(Nv)の周波数チャンネルにおいて、その時点でのスロット数指定値変数Q(Nv)をスロット数指定値として含んだ応答要求コマンドを送信した場合に、各無線タグTから受信する応答信号が衝突した(または判別不可能となった)識別スロットの個数を衝突数C(Nv)として検出する(後述の図12参照)。
次にステップS20へ移り、上記ステップS200の衝突検出処理で検出した衝突数C(Nv)(後述する図12のステップS225参照)が、その時点のスロット数指定値変数Q(Nv)で決定される識別スロット数Mの半分(2Q(Nv)−1)より多いか否か、すなわち上記ステップS200の衝突検出処理において応答信号の衝突頻度が過剰であるか否かを判定する。衝突数C(Nv)が2Q(Nv)−1より大きい場合、判定が満たされ、すなわち何らかの原因によりホップ周波数f(Nv)における衝突頻度が過剰となっていることからスロット数指定値変数Q(Nv)を修正する必要があるとみなされて次のステップS25へ移る。なお、上記の2Q(Nv)−1は、スロット数指定値変数Q(Nv)の増加修正の必要性を判定するためのしきい値(この例では識別スロット数Mの半分という割合)の一例であり、他の値や割合を適宜用いることも可能である。
ステップS25では、前回衝突数P(Nv)の値が0であるか否か、すなわちそれまでにスロット数指定値変数Q(Nv)の修正がまだ一度も行われていない(今回が1回目以降である)か否かを判定する。前回衝突数P(Nv)が0である場合、判定が満たされ、すなわち通常にスロット数指定値変数Q(Nv)を増加修正すべきであるとみなしてステップS30へ移る。
ステップS30では、スロット数指定値変数Q(Nv)の値を1増加し、すなわち上記ステップS200の衝突検出処理における識別スロット数M(=2Q(Nv)−1)を2倍に増加するよう修正変更する。そして、次のステップS35で今回上記ステップS200の衝突検出処理で検出した衝突数C(Nv)を前回衝突数P(Nv)に代入し、ステップS55へ移る。
一方、上記ステップS25の判定において、前回衝突数P(Nv)の値が0以外であって今回のスロット数指定値変数Q(Nv)の修正が2回目以降である場合、判定が満たされず、ステップS40へ移る。
ステップS40では、前回衝突数(第1検出結果)P(Nv)と今回検出された衝突数(第2検出結果)C(Nv)との差Dを算出する。次にステップS45へ移り、上記ステップS40で算出した差Dが所定値A(特に具体的に示さないが、操作者の適宜に設定すれば足りる)より大きいか否か、すなわち前回の修正でスロット数指定値変数Q(Nv)の値を1増加して識別スロット数Mを2倍に増加した結果、所定値Aより大きい減少数(つまり差D)で応答信号の衝突数が減少したか否かを判定する。差Dが所定値Aより大きい場合、判定が満たされ、すなわち前回のスロット数指定値変数Q(Nv)の修正によって応答信号の衝突数が大幅に減少して改善されているため、さらに同じ通常の修正を繰り返すことで応答信号の衝突数を識別スロット数Mの半分以下に抑えることが見込めるとみなしてステップS30の通常修正手順へ移る。
一方、差Dが所定値A以下である場合、判定が満たされず、ステップS50へ移り妨害波対策のスロット数指定値変数Q(Nv)の設定を行う。これは、前回の修正でスロット数指定値変数Q(Nv)の値を1増加し識別スロット数Mを初期の2倍に増加してもなお衝突頻度がほとんど減少せず過剰状態のままであることが認められることから、この場合、本実施形態では衝突頻度が過剰となっている原因が当該ホップ周波数f(Nv)において他の無線通信機器(コードレス電話303や無線LAN装置304など;図1参照)から妨害波が出力されていることによるものとみなしている。そのため、これ以上スロット数指定値変数Q(Nv)を通常に増加修正することは無意味であるとしてステップS50へ移り、妨害波対策のためのスロット数指定値数変数Q(Nv)の修正変更を行う。
ステップS50では、スロット数指定値変数Q(Nv)の値を最小値である0に設定し、すなわち識別スロット数Mを最小に設定する。これにより通常の多くの識別スロット数Mで後述するステップS300の情報検出処理(後述の図11、図13参照)を無駄に長く行うことを回避する。そして、この次にステップS70へ移る。
ステップS55では、参照変数Nvの値が最大値の9であるか否かを判定する。参照変数Nvの値が9でない場合、判定は満たされず、次のステップS60で参照変数Nvの値を1増加してからステップS10へ戻って同様の手順を繰り返す。一方、参照変数Nvの値が9である場合、判定は満たされ、ステップS65で参照変数Nvの値を1にリセットしてからステップS10へ戻って同様の手順を繰り返す。このようにして参照変数Nvの値を1から9まで昇順増加を繰り返しつつ、ステップS10からステップS65までの手順をループする。
なお、上記ステップS10の判定において、設定完了確認フラグK(Nv)が1となっている場合、判定が満たされ、すなわち参照変数Nvに対応するスロット数指定値変数Q(Nv)の設定がすでに適切に完了しているものとみなしてステップS55へ移る。
また一方、上記ステップS20の判定において、衝突数C(Nv)が2Q(Nv)−1以下である場合、判定が満たされず、すなわち当該ホップ周波数f(Nv)において受信する応答信号の数に対し対応するスロット数指定値変数Q(Nv)(識別スロット数M)がすでに適切な値に設定されているとみなされてステップS70へ移る。
ステップS70では、当該ホップ周波数f(Nv)に対応する設定完了確認フラグK(Nv)の値を1とし、上記ステップS10の判定においてスロット数指定値変数Q(Nv)の設定がすでに適切に完了しているよう判定させてステップS10からステップS55へ直接移行するようにする。
そして次に移るステップS75において、全てのホップ周波数f(1〜9)にそれぞれ対応する設定完了確認フラグK(1〜9)の値がいずれも1であるか否かを判定する。設定完了確認フラグK(1〜9)のうちいずれか一つの値でも初期値の0となっている(1になっていない)場合、判定が満たされず、すなわちまだ適切に設定が完了していないスロット数指定値変数Q(Nv)が残っているものとみなされて、ステップS55へ移り、ステップS10からステップS65の手順のループに戻る。一方、全ての設定完了確認フラグK(1〜9)の値が1となっている場合、判定が満たされ、すなわち全てのスロット数指定値変数Q(Nv)が適切に設定されたとみなされて、次のステップS100の読み取り確認処理(後述の図11参照)によりリーダ1の通信範囲内に存在する全ての無線タグTのタグIDを全てのホップ周波数f(N)で読み取り、このフローを終了する。
なお、上記フローによる探索処理の手順では、ステップS100の読み取り確認処理を行う前に、ステップS5からステップS75までの手順によるスロット数指定値変数Q(N)の設定が行われたが、リーダ1の通信範囲内における無線タグTの個数やそれらの配置、無線通信機器の設置状況などの通信条件にあまり変化がないことがわかっている場合、それ以前の探索処理で設定されたスロット数指定値変数Q(N)をそのまま利用してすぐに読み取り確認処理だけを行えるようにしてもよい。また、衝突検出処理において、衝突が検知されなかった場合、そのまま読取処理も行っても良い。これにより、読取確認処理まで待つ必要がなく衝突が生じなかった無線タグをより早く読取ることができる。
なお、上記図7において、ステップS50でスロット数指定値変数Q(Nv)が最小値である0とされてステップS13において判定が満たされた場合はステップS55に移るようにしたが、これに限られない。すなわち、図6に対応する図8に示すように、ホップ周波数としてf(1)〜f(9)のみならず予備のホップ周波数f(10)〜f(18)を予め設け、ステップS50でQ(Nv)=0と最小値化された場合であっても、上記予備のホップ周波数を用いて衝突回避を試行するようにしてもよい。図9はこの場合のリーダ1のCPU4によって実行される制御手順を表すフローチャートであり、上記図7に対応する図である。
図9に示すように、ステップS13での判定が満たされた場合、新たに設けたステップS11に移って参照変数Nvを9増加させた後、ステップS12でNvが18以下であるかどうかを判定する。Nv≦18であれば判定が満たされて(図8のテーブルに示すホップ周波数f(10)〜f(18)のいずれかに対応する値を用いて試行することとなり)、上記ステップS15に戻って同様の手順を繰り返す。Nvが18を超えていればステップS12の判定が満たされず、ステップS14に移り、(既に参照変数Nvが増加されて10〜18になっていたとみなされて)参照変数Nvの値から18を減じ、上記ステップS15へ移行して同様の手順を繰り返す。
図10は、上記図7のフローにおけるステップS5からステップS75の手順によりスロット数指定値変数Q(N)の設定を完了した際のホップテーブルの一例を概念的に表す図である。なお、この図10においては、図示の煩雑を避けるために、衝突数C(N)、前回衝突数P(N)、及び設定完了確認フラグK(N)の図示を省略している。
図10のホップテーブルにおいて、参照番号N=1〜2、4〜9に対応する各スロット数指定値変数Q(N)の値は、対応する各スロット数指定値初期値Qini(N)と同じ値か又はそれ以上に増加修正されており、これらはそれぞれ対応するホップ周波数f(N)において妨害波が出力されていないものとみなされて通常に設定されている。
これに対して、参照番号N=3に対応するホップ周波数f(3)で妨害波が出力されていると判定された場合には、図示するように対応する各スロット数指定値初期値Qini(3)が5であってもスロット数指定値変数Q(3)は最小値である1に設定される。これは、特に図示していないが、対応する前回衝突数P(3)と衝突数C(3)との差Dが所定値A以下であったための設定であり、これによりホップ周波数f(3)での通信が実質的に禁止されることになる。
図11は、上記図7中のステップS100において実行される読み取り確認処理の詳細手順を表すフローチャートである。
この図11において、まずステップS105において、参照変数Nvの値を1に、応答タグ変数RXの値を0に初期化する。
次にステップS110へ移り、図7中のステップS15と同様の制御によりホップ周波数f(Nv)の搬送波をRF通信制御部9に発生させる。
そして次のステップS300へ移り、情報検出処理を行う。この情報検出処理は、上記ステップS110で設定したホップ周波数f(Nv)の周波数チャンネルにおいて、それに対応してすでに設定されているスロット数指定値変数Q(Nv)をスロット数指定値として含んだ応答要求コマンドを送信し、全ての識別スロットにおいて各無線タグTから応答信号を受信し、それらからタグIDを検出する。また、応答信号を受信できた無線タグTに対しては前述した「Sleep」信号を送信して休眠状態にさせる(後述の図13参照)。
次にステップS115へ移り、上記ステップS300の情報検出処理において一つでも応答信号が受信されたか否か、すなわちまだ休眠状態となっておらずに当該ホップ周波数f(Nv)で応答信号を発信可能な無線タグTが存在するか否かを判定する。一つでも応答信号が受信された場合、すなわち応答タグが存在していた場合、判定が満たされ、ステップS120で応答タグ変数RXの値を1増加してステップS125へ移る。一方、全く応答信号が受信されなかった場合、すなわち応答タグが存在していなかった場合、判定が満たされず、そのままステップS125へ移る。
ステップS125では、参照変数Nvの値が最大値の9であるか否かを判定する。参照変数Nvの値が9でない場合、判定は満たされず、次のステップS130で参照変数Nvの値を1増加してからステップS110へ戻って同様の手順を繰り返す。一方、参照変数Nvの値が9である場合、判定は満たされ、すなわち全てのホップ周波数f(1〜9)を一巡してそれぞれステップS300の情報検出処理を行ったとみなされて、ステップS135へ移る。
ステップS135では、応答タグ変数RXの値が0であるか否か、すなわち全てのホップ周波数f(N)を一巡した際に全く応答信号が受信されなかったか否かを判定する。応答タグ変数RXの値が0ではなく1以上である場合、判定が満たされず、すなわちリーダ1の通信範囲内にまだ休眠状態となっておらず応答信号を発信可能な無線タグTが存在している可能性があるとみなしてステップS105に戻り、このフローを最初から繰り返す。なおこのフローを繰り返す際には、それまでに応答信号を受信した無線タグTは全てそのまま上記「Sleep」信号により休眠化された状態を維持するため、このフローを繰り返すたびに応答信号を発信する無線タグT(タグIDをまだ読み取ってない無線タグT)が確実に減少する。
そして、最後には全てのホップ周波数f(N)で全ての無線タグTのタグIDが読み取られ、応答タグ変数RXの値が0となった状態でステップS135における判定が満たされ、ステップS140へ移る。なお、特に図示していないが、ステップS135からステップS105へ戻ってフローを繰り返す際に、応答タグの数が減少したことを想定して各スロット数指定値変数Q(N)を減少させてから再び情報検出処理を行うようにしてもよく、この場合より短時間で効率的に情報検出処理を行うことができる。
ステップS140では、表示部8に制御信号を出力し、無線タグTの探索処理が完了したことを報知するよう表示してこのフローを終了する。
以上のフローによれば、リーダ1の通信範囲内に存在する全ての無線タグTのタグIDを全てのホップ周波数f(1〜9)でもれなく読み取ることができ、またこの読み取り処理を図7の手順により適切に設定されたスロット数指定値変数Q(Nv)を用いて効率的に行うことができる。
図12は、上記図7中のステップS200において実行される衝突検出処理の詳細手順を表すフローチャートである。なお、このフロー中において用いられる参照変数Nvの値は、図7中でこの処理を行う際における参照変数Nvの値をそのまま用いるものとする。
この図12において、まずステップS205において、衝突数C(Nv)の値を0に初期化する。
次にステップS210へ移り、RF通信制御部9の送信部212の送信乗算回路216に制御信号を出力して、上記図7中のフロー中で設定されたスロット数指定値変数Q(Nv)を含み、ホップ周波数f(Nv)でホッピング通信可能な各無線タグ回路素子Toに対しそれぞれのタグIDを含む無線タグ情報を応答信号として送信するよう命令する応答要求コマンドを生成し(=IC回路部の無線タグ情報を不確定な条件下で探索しつつ取得するための探索指令を生成する指令生成手段に相当)、生成された応答要求コマンド信号をリーダアンテナ3を介し無線タグ回路素子Toへ送信する。
次にステップS215へ移り、RF通信制御部9の受信部213で無線タグ回路素子Toからの応答信号を1スロット分の時間(所定の識別スロットの時間枠)だけ受信して取り込む。スロットカウントSが値0になった無線タグ回路素子Toがなく、応答信号が受信されない場合でも1スロット分の時間は受信状態を維持する。これらステップS210とステップS215の手順で、識別スロット1つ分の送受信制御が行われることになる。
次にステップS220へ移り、上記ステップS215の時間枠で応答信号の衝突(又は妨害波の受信)があったか否かを判定する。何らかの信号を受信していながらそれが正常な応答信号として判別できない場合、つまり解読不能な信号を受信している場合や誤り検出において誤りが検出された場合、判定は満たされ、すなわち今回の識別スロットにおいて複数の応答信号の衝突(又は妨害波の受信)があったとみなされて次のステップS225へ移り、衝突数C(Nv)の値を1増加してステップS230へ移る。一方、何も信号を受信していないかもしくは応答信号が正常に受信できた場合、判定は満たされず、すなわち今回の識別スロットにおいては正常な受信状態にあって衝突(又は妨害波)が確認されていないとみなされ、そのままステップS230へ移る。
次のステップS230では、通信の最初に上記ステップS210で応答要求コマンドで通知したスロット数指定値変数Q(Nv)に対応した回数(2のQ(Nv)乗−1回)の識別スロットの受信を行ったか否か、すなわち全ての識別スロットに対して受信制御を行ったか否かを判定する。まだ全ての識別スロットに対して受信制御を行っていない場合、判定が満たされず、すなわちまだ受信制御を行っていない識別スロットが残っているとみなされてステップS235に移る。一方、全ての識別スロットに対して受信制御を行った場合、判定が満たされこのフローを終了する。
ステップS235では、RF通信制御部9の送信部212の送信乗算回路216に制御信号を出力して、スロットカウント減算コマンドをリーダアンテナ3を介し無線タグ回路素子Toへ送信する。このスロットカウント減算コマンドは、各無線タグ回路素子Toが応答信号を送信する識別スロットのタイミングを計るためのスロットカウント値S(後述の図14参照)の値を1だけ減算させるよう指令するコマンドである。ステップS235が完了したら、ステップS215に戻り、同様の識別スロット1つ分の受信制御を繰り返す。
以上のフローにより、図7中のステップS15で設定されたホップ周波数f(Nv)において応答信号が衝突した(又は妨害波を受信した)識別スロットの回数を衝突数C(Nv)の値として得ることができる。
図13は、上記図11中のステップS300において実行される情報検出処理の詳細手順を表すフローチャートである。なお、このフロー中において用いられる参照変数Nvの値は、図11中でこの処理を行う際における参照変数Nvの値をそのまま用いるものとする。
この図13において、まずステップS305において、上記図12中のステップS210と同様の制御により生成された応答要求コマンド信号をリーダアンテナ3を介し無線タグ回路素子Toへ送信する。なおこの際に用いるホップ周波数f(Nv)及びスロット数指定値変数Q(Nv)は、図11中で設定されているものを用いる。
次にステップS310へ移り、上記図12中のステップS215と同様の制御により無線タグ回路素子Toからの応答信号を1スロット分の時間だけ受信して取り込む。なお、この際に正常な応答信号が受信できた場合には、それに含まれるタグIDを抽出してメモリ6又は不揮発記憶装置5に記憶させておく。またこのようにタグIDが検出できた場合には、表示部8へ検出結果として表示させてもよい。
次にステップS315へ移り、RF通信制御部9の送信部212の送信乗算回路216に制御信号を出力して、上記ステップS310で検出されたタグIDの無線タグ回路素子Toに対して休眠化させる「Sleep」信号を生成し、リーダアンテナ3を介して上記検出されたタグIDの無線タグ回路素子Toへ送信する。
次のステップS230では、上記図12中のステップS230と同様に全ての識別スロットに対して受信制御を行ったか否かを判定する。まだ全ての識別スロットに対して受信制御を行っていない場合、判定が満たされず、すなわちまだ受信制御を行っていない識別スロットが残っているとみなされてステップS325に移る。一方、全ての識別スロットに対して受信制御を行った場合、判定が満たされこのフローを終了する。
ステップS325では、上記図12中のステップS235と同様の制御により、スロットカウント減算コマンドをリーダアンテナ3を介し無線タグ回路素子Toへ送信する。ステップS325が完了したら、ステップS215に戻り、同様の識別スロット1つ分の受信制御を繰り返す。
以上のフローにより、図11中のステップS110で設定されたホップ周波数f(Nv)において無線タグ回路素子Toからの応答信号を受信し、そこからタグIDを検出するとともに、そのタグIDを検出できた無線タグ回路素子Toに対してのみ休眠状態にすることができる。なお、応答信号の衝突により検出できなかった分の無線タグ回路素子Toに対しては、その回の情報検出処理ではそのまま放置し、次回の情報検出処理で正常に応答信号を受信し休眠化させるようにする。
図14は、図5に示した無線タグ回路素子Toが備える制御部157によって実行される制御手順を表すフローチャートである。この図14において、無線タグ回路素子Toが初期化コマンド(詳細な説明を省略する)を受信してその初期信号により無線電力が与えられるとともに制御部157が初期化されると無線タグ回路素子Toが起動し、このフローが開始される。
まず、ステップS405で無線タグ回路素子Toが起動した直後にタグ側アンテナ151で受信したリーダ1のリーダアンテナ3からの指令信号の命令内容を解釈するよう受信制御し、この受信した指令信号の内容が応答要求コマンドであるか否かを判定する。応答要求コマンドを受信している場合、判定が満たされ、ステップS410へ移る。このとき、応答要求コマンドに含まれるスロット数指定値変数Q(Nv)をメモリ部155に記憶させる。
ステップS410では、上記ステップS205でメモリ部155に記憶されたスロット数指定値Qに基づいて0から2Q−1までの乱数を乱数発生器158により発生させ、その値をスロットカウント値とする。このカウント値は0から識別スロット数Mまで間の値となり、当該無線タグTが応答信号を送信する識別スロットが決定される。
次にステップS415へ移り、スロットカウント値が0であるか否かを判定する。スロットカウント値が0でない場合、判定が満たされず、すなわちまだ応答信号を送信すべき識別スロットに達していないとみなされて次のステップS420へ移る。
ステップS420では、図13のフローのステップS325におけるスロットカウント減算コマンドをタグ側アンテナ151を介し受信したか否かを判定し、受信するまでその時点の識別スロットの間受信制御を繰り返す。スロットカウント減算コマンドを受信した場合、判定が満たされて、次のステップS425へ移り、スロットカウント値を1減算してステップS415へ戻り同様の手順を繰り返す。
また一方、上記ステップS415の判定においてカウント値が0となっている場合、判定が満たされ、すなわち当該無線タグ回路素子Toが応答信号を送信すべき識別スロットに達したとみなされて次のステップS430へ移り、メモリ部155に記憶されていた当該無線タグ回路素子ToのタグIDを含む応答信号を変復調部156で生成させ所定のタイミングでタグ側アンテナ151を介し返信してこのフローを終了する。なお、タグIDが長い場合、識別スロットにおいて衝突が生じないか判定するため、例えば、予め発生させ記憶しておいた16ビットの擬似乱数を応答信号として送り、それが正常にリーダ1に受信された後リーダ1から発せられるタグID送信コマンドを受信した後、タグIDを送信するようにしてもよい。
また一方、上記ステップS405の判定において、受信した指令信号が応答要求コマンドでない場合、判定が満たされず、ステップS435へ移って同じ指令信号の内容が「Sleep」信号であるか否かを判定する。受信した指令信号が「Sleep」信号である場合、判定が満たされ、ステップS440で適宜の手法で無線タグ回路素子To全体(又は自ら)を休眠状態、すなわちウェーク信号など特定のコマンド以外は受付けない状態とし、ウェーク信号の受信等の所定の条件が満たされた際に休眠状態を解除してこのフローを終了する。一方、受信した指令信号が「Sleep」信号でもない場合、判定が満たされず、すなわち関係のない信号を受信したものとみなしてフローを終了する。
図15は、上記図13の情報検出処理の制御手順を行うリーダ1と、上記図14の制御手順を行うL個の無線タグ回路素子To(全てホップ周波数f(Nv)でホッピング通信可能なもの)との間で送受される信号のタイムチャートの一例を表す図である。この図15において、図中左側から右側に向かって時系列変化するものとし、リーダ1が応答要求コマンド又はカウント減算コマンドを送信してから無線タグ回路素子Toの応答信号を受信する時間枠が1組になって各識別スロットが形成されている。なお、この図中においては「Sleep」信号の送信は省略している。
まず最初に、この例では、リーダ1から応答要求コマンドが送信された直後に乱数によってカウント値が初めから0に生成された無線タグ回路素子To1が識別スロット1で応答信号を送信する。そしてリーダ1がその応答信号を受信した後に、カウント減算コマンドを送信することで別の各無線タグ回路素子Toがそれを受信してそれぞれのカウント値を1減算する。その時点でカウント値が0となった無線タグ回路素子Toがあれば次の識別スロット2で応答信号を送信する。図示の例のようにスロットカウント値が0になった無線タグ回路素子Toが無い場合は当該識別スロットでの返信はない。タグラベル作成装置1が識別スロット終了後に、またスロットカウント減算コマンドを送信して識別スロット2が終了する。
以上のような手順を繰り返すことにより、L個全ての無線タグ回路素子Toの応答信号をM個の識別スロットで受信することができる。ここで、リーダ1側で用意する識別スロットの数Mが通信対象の無線タグ回路素子Toの個数Nより大きく設定されていれば、各無線タグ回路素子Toのカウント値が乱数により発生されているために、それぞれの無線タグ回路素子Toが応答信号を送信する識別スロットがM個分の識別スロットに渡って均等かつ一意的に分布することが期待できる。このようにしてN個全ての無線タグ回路素子Toの応答信号を一つ一つ衝突・混信させることなく(衝突・混信が生じた場合でも情報検出処理をやり直す;図11参照)明確に受信することができる。
また、リーダ1側で用意する識別スロットの数Mが、ホップ周波数f(Nv)で通信対象となる無線タグ回路素子Toの個数Lに対して必要以上に大きくせず適度な値に設定すれば、探索処理全体の時間を短くすることができ、効率のよい通信を行うことができる。
以上において、水晶振動子215A、PLL215B、及びVCO215Cが、搬送波を発生させる搬送波発生手段を構成する。
また、RF通信制御部9の送信部212とリーダアンテナ3が、送信乗算回路216で生成した応答要求コマンドを無線タグ回路素子Toに送信可能な送信手段を構成し、RF通信制御部9の受信部213とリーダアンテナ3が、送信乗算回路216で生成されて送信された応答要求コマンドに応じて複数の無線タグ回路素子Toから送信された応答信号を、複数の識別スロットに区分して受信可能な受信手段を構成する。
また、図7のフローにおけるステップS200の手順が、RF通信制御部9とリーダアンテナ3による受信の際、識別スロットにおける応答信号の衝突を検出する衝突検出手段として機能する。
また、図7のフローにおけるステップS40及びステップS45の手順が、ステップS200の手順の検出結果に基づき、妨害波の有無を判定する妨害波判定手段として機能する。
また、図7のフローにおけるステップS30及びステップS50の手順が、識別スロット数Mを増減させるスロット増減手段として機能する。
また、図7のフローにおけるステップS40の手順が、識別スロット数Mが修正前の値(第1の値)に設定されたときの第1検出結果としての前回衝突数P(Nv)と、ステップS30の手順により識別スロット数Mが修正前の値より大きな値(第2の値)に修正設定されたときの第2検出結果としての衝突数C(Nv)との差を算出する演算手段として機能する。
また、図7のフローにおけるステップS50の手順が、ステップS40及びステップS45の手順で妨害波が存在すると判定した場合、水晶振動子215A、PLL215B、及びVCO215Cによる、妨害波が存在したホップ周波数f(Nv)の使用を禁止する禁止制御手段として機能する。なお、前述の休眠化処理機能は必ずしも設けなくても良い。例えばスロットでの応答の際に各無線タグ回路素子がユニークハンドル(乱数)を返す場合(例えばC1G2規格等)には、質問器側がハンドルで特定される各タグに必要な処理コマンドを送信して処理をするからである。すなわち、ハンドルで特定された無線タグ回路素子ToはID送信後、応答済みフラグを例えばAからBに反転させる。質問器から応答済みフラグがAのタグのみ指定して応答要求コマンドを送信するので、応答済みフラグがBの無線タグ回路素子Toは応答できず実質的に休眠状態となる。
以上のように構成した本実施形態においては、複数の応答信号が衝突する識別スロットがどれだけあるかが図7のフローにおけるステップS200の手順により検出され、そしてこの衝突のあった識別スロット数の検出結果に基づき、ステップS40およびステップS45の手順で妨害波の有無が判定される。これにより、妨害波を確実に検出することができる。これにより、ステップS50で識別スロット数Mを減少して妨害波環境下で無駄に応答信号の取得を図る時間の浪費を回避することができ、通信効率の低下を防止することができる。
また、この実施形態では特に、識別スロットが1つの値に設定されたときの衝突数の検出結果と、これとは異なる他の値に識別スロットが設定されたときの衝突数の検出結果とに応じて、妨害波の有無を判定する。詳細には、例えば、妨害波ではなく応答信号の数に対し単に識別スロット数Mが不足している場合には、図7のフローにおけるステップS30の手順で設定する識別スロット数が応答信号の数に見合った数になれば、衝突数は減少するはずである。これに対して、図7のフローにおけるステップS40において、識別スロットの数が修正前の値に設定されたときの前回衝突数P(Nv)と、この修正前の識別スロット数より大きな識別スロット数に設定されたときの衝突数C(Nv)との差Dを算出し、この差Dが所定値A以下であった場合、すなわちステップS30の手順で識別スロットを修正前の値から修正後の値に増大させても、衝突の減少値(差D)があまり減少しない場合には、妨害波である確率が高い。このような手法とすることで、さらに確実に妨害波を検出することができる。もちろん、差ではなく識別スロットの数が修正前の値に設定されたときの前回衝突数P(Nv)と、この修正前の識別スロット数より大きな識別スロット数に設定されたときの衝突数C(Nv)との比を用いても同様である。比が1からあまり増大しない場合すなわち、1よりやや大きい所定の値以下の場合は、妨害波である確率が高い。
また、この実施形態では特に、図7のフローにおけるステップS40及びステップS45の手順で妨害波が存在すると判定した場合、ステップS50で識別スロット数を減少させる。これにより、妨害波環境下で無駄に応答信号を取得しようとする時間の浪費を回避することができる。またこの例ではステップS50でスロット数指定値変数Q(Nv)を最小値の0に設定することで、この妨害波の存在する当該ホップ周波数f(Nv)を実質的に使用しないようすることができ、これによっても通信効率の低下を防止することができる。
なお、特に図示しないが、上記図11のフローにおいて、ステップS110の手順の直前でスロット数指定値変数Q(Nv)が0であるか否か、すなわち対応するホップ周波数f(Nv)において妨害波が存在しているか否かを判定し、スロット数指定値変数Q(Nv)が0以外である場合にステップS110へ移り、一方スロット数指定値変数Q(Nv)が1である場合、すなわち妨害波が存在するとみなされている場合にステップS110からステップS120の手順を経ることなくステップS125へ移るようにしてもよい。なお、ステップS130の次にはこの判定手順に戻る。
この場合、当該判定手順が、上記図7のフローにおけるステップS40及びステップS45の手順で妨害波が存在すると判定した場合、搬送波のホップ周波数f(N)を変更する周波数制御手段として機能する。
これにより、妨害波が存在した場合には、その搬送波のホップ周波数f(N)を当該ホップ周波数f(N)以外のものに変更できるため、通信効率の低下を確実に防止することができる。
なお、以上で用いた「Sleep」信号等は、EPC globalが策定した仕様に準拠しているものとしてもよい。EPC globalは、流通コードの国際機関である国際EAN協会と、米国の流通コード機関であるUniformed Code Council(UCC)が共同で設立した非営利法人である。なお、他の規格に準拠した信号でも、同様の機能を果たすものであればよい。
また、以上既に述べた以外にも、上記実施形態やその改良した構成による手法を適宜組み合わせて利用しても良い。
その他、一々例示はしないが、本発明は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。