近年、工場での物流管理、小売店での物品管理において、商品の固有情報を書き込んだICを有するタグを貼り付けて、その情報を無線アンテナで読み取り、リアルタイムに商品の管理をするために、商品を自動認識する手段としてRFID(Radio Frequency IDentification)に関する技術が注目されている。
前述のRFID用のICタグ(以下、ICタグという)は、電波により、リーダ・ライタとの間でデータの送受信を行うにあたって、電源電圧を電波により生成するため、電池を搭載しない。このようなICタグは一般に"パッシブ型"と呼ばれ、ICタグ内部の回路において、リーダ・ライタから送信される搬送波の一部を整流し、動作するために必要な電源電圧を生成する。この生成した電源電圧によって、ICタグの半導体装置内部の制御用の論理回路、商品の固有情報等が書き込まれる不揮発性メモリ及びリーダ・ライタとのデータの送受信を行うために必要な通信回路等が動作する。
また、RFIDでは、リーダ・ライタと複数のICタグとの通信を可能にするためにアンチコリジョンと呼ばれる技術が用いられる。RFIDでは、リーダ・ライタから送信された電波に対して、ICタグがリーダ・ライタへ応答することで通信が行われる。このため、リーダ・ライタの通信可能範囲に複数のICタグが存在すると、複数のICタグからリーダ・ライタへ同時に信号が送信される。そうすると、複数のタグの信号が時間的に重なり、リーダ・ライタが正しい信号を受信できなくなってしまう。このような現象を信号の衝突(コリジョン)といい、この衝突を回避し、それぞれのICタグと通信を行う技術がアンチコリジョンである。
ここで、アンチコリジョンの実現方法について説明する。アンチコリジョンでは、ICタグの固有の識別子であるタグIDを複数のICタグから同時に読み出し、信号の衝突が無い状態を探索する。このとき、信号の衝突を検出するため、通信する信号の符号にマンチェスタ符号が用いられる。
図14は、タグIDをマンチェスタ符号により符号化した例である。マンチェスタ符号では、(0)bを(01)bに符号化し、(1)bを(10)bに符号化する。したがって、(11)bに符号化されることがないため、(11)bのデータを受信した場合に衝突を検出することができる。
例えば、タグa,タグb,タグcのタグIDをそれぞれ、(0001)b,(0011)b,(1011)bとする。尚、一般にタグIDは、128ビットであるが、ここでは簡単に説明するため4ビットとしている。これをマンチェスタ符号で符号化すると、タグaのタグID(0001)bは(01010110)b、タグbのタグID(0011)bは(01011010)b、タグcのタグID(1011)bは(10011010)bとなる。
図15は、これらのマンチェスタ符号によって衝突を検出する例である。例えば、タグa,タグb,タグcから同時にタグIDを受信すると、3つの信号が重なるため、図15(a)のように、リーダ・ライタでは(11011110)bを受信することになる。符号化前のビット位置の1ビット目〜4ビット目をデータ1〜データ4とすると、この例では、データ1とデータ3が(11)bであり、衝突していることが判る。
図15(a)の状態からタグcを除いて、タグa,タグbから同時にタグIDを受信すると、2つの信号が重なるため、図15(b)のように、リーダ・ライタでは(01011110)bを受信することになる。この場合には、データ3が(11)bであり、衝突していることが判る。
また、図15(a)の状態からタグaを除いて、タグb,タグcから同時にタグIDを受信すると、2つの信号が重なるため、図15(c)のように、リーダ・ライタでは(11011010)bを受信することになる。この場合には、データ1が(11)bであり、衝突していることが判る。
リーダ・ライタは、衝突を検出した場合、コマンドによって、衝突した部分が(10)bもしくは(01)bのいずれか一方のICタグのみからタグIDを受信する。例えば、リーダ・ライタは、図15(a)の状態になると、データ1が(10)bのタグcの通信を中断させ、タグaとタグbのみからタグIDを受信する。そして、図15(b)の状態になると、データ3が(10)bのタグbの通信を中断させて、タグaのみからタグIDを受信する。その結果、特定のタグaとのみと通信が可能になり、信号の衝突を回避することができる。
図16及び図17は、従来のICタグを用いた通信システムの通信方法を示すシーケンスである。このシーケンスは、リーダ・ライタが通信エリア内に存在するICタグa,b,cと通信を行い、アンチコリジョンによってICタグa,b,cのそれぞれを順に選択し所望のコマンドを実行する例である。尚、各ICタグのタグID及び通信されるマンチェスタ符号は、図14,図15と同様とする。
まず、リーダ・ライタは、通信エリア内に存在するICタグの内部状態をリセットするため、ICタグa,b,cへリセット信号を送信し、ICタグa,b,cがリセットされて通信可能となる(S901)。次いで、リーダ・ライタは、ICタグa,b,cへINITコマンドを送信する(S902)。このINITコマンドは、通信エリア内に存在するICタグを確認するためのコマンドであるとともに、ICタグの通信状態を開始(再開)させるためのコマンドである。次いで、ICタグa,b,cは、INITコマンドの応答をリーダ・ライタへ送信する(S903)。
次いで、リーダ・ライタは、S904〜S911においてICタグaを特定するためのアンチコリジョン処理を行う。すなわち、リーダ・ライタは、ICタグa,b,cへタグIDリードコマンドを送信し(S904)、ICタグa,b,cは、リーダ・ライタへタグIDリードコマンドの応答としてタグIDを送信する(S905)。このとき、リーダ・ライタは、図15(a)に示したような受信データを受信して衝突を検出し、ICタグcへISOLATIONセットコマンドを送信する(S906)。ISOLATIONセット/リセットコマンドは、ICタグの通信状態の中断/再開を切り替えるコマンドである。ISOLATIONセットコマンドを受信したICタグcは、通信を中断する。
そして、リーダ・ライタは、ICタグa,b,cへタグIDリードコマンドを送信し(S907)、通信が中断されていないICタグa,bは、リーダ・ライタへタグIDリードコマンドの応答としてタグIDを送信する(S908)。このとき、リーダ・ライタは、図15(b)に示したような受信データを受信して衝突を検出し、ICタグbへISOLATIONセットコマンドを送信する(S909)。ISOLATIONセットコマンドを受信したICタグbは、通信を中断する。
そしてさらに、リーダ・ライタは、ICタグa,b,cへタグIDリードコマンドを送信し(S910)、通信が中断されていないICタグaは、リーダ・ライタへタグIDリードコマンドの応答としてタグIDを送信する(S911)。このとき、リーダ・ライタは、タグaのタグIDのみを受信するため、衝突が検出されず、アンチコリジョン処理が終了し、タグaとのみ通信が可能となる。
次いで、リーダ・ライタは、ICタグaへリードコマンドもしくはライトコマンドを送信し(S912)、ICタグaは、そのコマンドを実行して、実行結果をコマンド応答として送信する(S913)。
次いで、リーダ・ライタは、次のICタグと通信するため、ICタグa,b,cへINITコマンドを送信する(S914)。そうすると、ICタグb,cの通信が再開し、ICタグa,b,cは、INITコマンドの応答をリーダ・ライタへ送信する(S915)。次いで、リーダ・ライタは、すでにコマンド実行が終了したICタグaの通信を中断するため、ICタグaへISOLATIONセットコマンドを送信する(S916)。
次いで、リーダ・ライタは、S917〜S921においてICタグbを特定するためのアンチコリジョン処理を行う。すなわち、リーダ・ライタは、ICタグa,b,cへタグIDリードコマンドを送信し(S917)、通信が中断されていないICタグb,cは、リーダ・ライタへタグIDリードコマンドの応答としてタグIDを送信する(S918)。このとき、リーダ・ライタは、図15(c)に示したような受信データを受信して衝突を検出し、ICタグcへISOLATIONセットコマンドを送信する(S919)。ISOLATIONセットコマンドを受信したICタグcは、通信を中断する。
そして、リーダ・ライタは、ICタグa,b,cへタグIDリードコマンドを送信し(S920)、通信が中断されていないICタグbは、リーダ・ライタへタグIDリードコマンドの応答としてタグIDを送信する(S921)。このとき、リーダ・ライタは、タグbのタグIDのみを受信するため、衝突が検出されず、アンチコリジョン処理が終了し、タグbとのみ通信が可能となる。
次いで、リーダ・ライタは、ICタグbへリードコマンドもしくはライトコマンドを送信し(S922)、ICタグbは、そのコマンドを実行して、実行結果をコマンド応答として送信する(S923)。
次いで、リーダ・ライタは、次のICタグと通信するため、ICタグa,b,cへINITコマンドを送信する(S924)。そうすると、ICタグa,cの通信が再開し、ICタグa,b,cは、INITコマンドの応答をリーダ・ライタへ送信する(S925)。次いで、リーダ・ライタは、すでにコマンド実行が終了したICタグa,bの通信を中断するため、ICタグa,bへISOLATIONセットコマンドを送信する(S926)。
次いで、リーダ・ライタは、S927〜S928においてICタグcを特定するためのアンチコリジョン処理を行う。すなわち、リーダ・ライタは、ICタグa,b,cへタグIDリードコマンドを送信し(S927)、通信が中断されていないICタグcは、リーダ・ライタへタグIDリードコマンドの応答としてタグIDを送信する(S928)。このとき、リーダ・ライタは、タグcのタグIDのみを受信するため、衝突が検出されず、アンチコリジョン処理が終了し、タグcとのみ通信が可能となる。
次いで、リーダ・ライタは、ICタグcへリードコマンドもしくはライトコマンドを送信し(S929)、ICタグcは、そのコマンドを実行して、実行結果をコマンド応答として送信する(S930)。
このように、ICタグは、リーダ・ライタから受信する各コマンドに従って動作する。そして、パッシブ型のICタグでは、これらのコマンドの実行に必要な電源電圧や動作クロックを、リーダ・ライタから受信する電波によって生成している。
このため、ICタグとリーダ・ライタとの距離が遠い場合は、ICタグで受信する電波が弱くICタグの電源電圧はより低い電圧となり、ICタグとリーダ・ライタとの距離が近い場合は、ICタグで受信する電波が強く、ICタグの電源電圧はより高い電圧となる。
一方、一般的にICタグの半導体装置は、MOSFET(Metal Oxide Semiconductor Field Effect Transistor)で構成されているため、動作可能な電源電圧の範囲内において、電源電圧が高いほど高速に動作することが知られている。
具体的に説明すると、例えば、MOSFETが多段に接続されている場合に、あるMOSFETの出力が変化すると、その出力の変化は後段のMOSFETへと次々に伝播される。この時、MOSFETのゲートやドレインには容量成分が存在するため、前段のMOSFETの出力がロウレベルからハイレベルに変化すると、後段のMOSFETのゲート容量がこの出力の変化により充電されていく。MOSFETは、ドレイン・ソース間の電圧が上がるにしたがってドレイン電流が増加するので、電源電圧が高くなるほど、後段のMOSFETのゲート容量を速く充電できるようになる。このため、電源電圧が高いほど出力の変化を速く後段に伝えることができ、結果として速く動作することができる。また、前段のMOSFETの出力がハイレベルからロウレベルに変化した場合、後段のMOSFETのゲート容量がこの出力の変化により放電されるが、前述と同様の理由で電源電圧が高いほど後段のMOSFETのゲート容量を速く放電できるため、結果として速く動作することができる。すなわち、MOSFETは、電源電圧が高くなると流れる電流が増えるため、後段の持つ容量の充放電が速くなり、結果として出力の変化を速く伝播することができる。
したがって、ICタグとリーダ・ライタ間の距離など環境の変化によって、電源電圧が高くなるため、より高速に動作できるような場合がある。
しかしながら、従来のICタグを用いた通信システムでは、距離が近くタグの電源電圧が十分得られるような場合でも、常に同じ通信速度、動作速度で処理を行っていたため、環境に応じた最適な速度で動作することができなかった。
尚、従来のICカードシステムとして特許文献1が知られている。特許文献1では、ICカードの電力状態を、リーダ・ライタから専用の状態確認コマンドにより確認し、ICカードの電力状態に応じた速度の切り替えを可能にしている。しかし、この方法では、新たに状態確認コマンドを追加する必要があるため、通信シーケンスや処理が複雑になるとともに、通信や処理の効率が悪くなってしまう。
特開2000−20663号公報
発明の実施の形態1.
まず、本発明の実施の形態1にかかるICタグを用いた通信システムについて説明する。本実施形態にかかる通信システムは、ICタグの電源電圧レベルを示す電圧判定フラグをINITコマンドの応答とともに送信し、リーダ・ライタがこの電圧判定フラグに応じて通信速度を切り替えることを特徴としている。
図1を用いて、本実施形態にかかるICタグを用いた通信システムの構成について説明する。この通信システムは、図に示されるように、ICタグ1とリーダ・ライタ2とを備えている。この通信システムでは、ICタグ1とリーダ・ライタ2とが無線により通信を行う。例えば、複数のICタグ1を設けることができ、アンチコリジョン機能によって、1つのリーダ・ライタ2と複数のICタグ1との間で同時に通信可能である。この例では、1つのリーダ・ライタ2とICタグ1a,1b,1cの3つのICタグ1が設けられている。ICタグ1a,1bは、リーダ・ライタ2から近い領域101の内側に配置され、ICタグ1cは、リーダ・ライタ2から遠い領域102の内側に配置されている。
リーダ・ライタ2は、例えば、コンピュータ(不図示)と通信可能に接続されており、このコンピュータの指示に従ってICタグ1へ電波でコマンドを送信することにより、ICタグ1の記憶回路に所定のデータを書き込んだり、書き込まれたデータやタグID等をICタグ1から読み出したりする。
ICタグ1は、リーダ・ライタ2から受信する電波に応じた電源電圧を生成しており、この電源電圧は、ICタグ1とリーダ・ライタ2間の距離に依存している。そして、リーダ・ライタ2は、ICタグ1の電源電圧のレベルに応じて、通信速度を切り替える。領域102は、リーダ・ライタ2とICタグ1との距離が遠く、ICタグ1で受信する電波が弱いため、ICタグ1で生成される電源電圧がより低くなり、ICタグ1が通常の速度で動作可能な領域である。領域101は、リーダ・ライタ2とICタグ1との距離が近く、ICタグ1で受信する電波が強いため、ICタグ1で生成される電源電圧がより高くなり、ICタグ1が高速な速度で動作可能な領域である。
次に図2を用いて、本実施形態にかかるリーダ・ライタ2からICタグ1へ送信される信号について説明する。図2(a)は、リーダ・ライタ2からICタグ1へ送信されるコマンド等のデータを符号化したデータ信号(符号化信号)の例を示している。図2(b)(c)は、図2(a)のデータ信号を変調し電波として送受信される変調信号の例を示している。
図2(a)に示されるように、データ信号は、送受信データを符号化したフレームから構成されている。送受信データの1ビットのデータ(データ「0」もしくは「1」)が、複数パルスを有する1フレーム(パルス列)に符号化される。また、送受信データの1ビットのデータの有無も含めてフレームに符号化されている。図では、1フレームが3パルスのパルス列からなり、例えば、3パルスのうちの1パルスは、パルス列の先頭を示しており、3パルスのうちの2パルスには、データの内容やデータの有無が符号化されている。
このフレームの1パルス目の信号(第1の信号)は、ICタグ1の論理回路が動作するための基準クロックとなる基準信号(フレームパルス)である。フレームの2パルス目の信号(第2の信号)は、このデータ信号が1ビットのデータを有しているかどうか、すなわちデータの有無を示す識別信号である。この第2の信号が「1」(ハイレベル)であれば、データを有するフレームである。第2の信号が「0」(ロウレベル)であれば、基準信号(フレームパルス)のみのデータを有していないフレームである。そして、フレームの3パルス目の信号(第3の信号)は、データの内容を示すデータ識別信号である。第3の信号が「1」(ハイレベル)であれば、そのフレームは「1」(データ1)を意味し、第3の信号が「0」(ロウレベル)であれば、そのフレームは「0」(データ0)を意味する。
例えば、このデータ信号(3パルスのパルス列)を3ビットの「0」と「1」で表すと、データを有していないフレームパルスのみのフレームは「100」、データの「0」を示すフレームは「110」、データの「1」を示すフレームは「111」となる。尚、このフレームと、データの内容やフレームパルスの組み合わせは、これに限らず、その他の組み合わせであってもよい。データの「0」をフレームの「111」、データの「1」をフレームの「110」としてもよいし、さらに、任意のビット長のフレームに割り当ててもよい。
図2(b)(c)に示されるように、データ信号のフレームの「1」(ハイレベル)と「0」(ロウレベル)に基づいて変調されて変調信号が生成され、この変調信号が送受信される。本実施形態では、例えば、ICタグ1の回路構成をより単純にするために、ASK(amplitude shift keying)変調が用いられる。ASK変調とは、送信するデータに基づいて搬送波の振幅を変化させて送信する変調方式である。図の例は、ASK変調100%のOOK(on−off−keying)の例であり、データ信号が「1」のときオフして搬送波の振幅をロウレベルとし、データ信号が「0」のときオンして搬送波の振幅をハイレベルとしている。
ICタグ1で受信する搬送波の振幅のレベルは、リーダ・ライタ2とICタグ1とのの距離に依存し、リーダ・ライタ2から離れるにしたがって、振幅は小さくなる。例えば、リーダ・ライタ2から近い位置のICタグ1a,1bでは、図2(b)のように搬送波の振幅のレベルは大きく、リーダ・ライタ2から遠い位置のICタグ1cでは、図2(c)のように搬送波の振幅のレベルは小さくなる。
ICタグ1では、変調信号から電源電圧を生成する場合、この搬送波を利用している。すなわち、ICタグ1で生成される電源電圧の大きさは、搬送波の振幅の大きさ(強度)に依存している。したがって、図2(b)のように搬送波の振幅が大きいと、単位時間当たりのエネルギー量が大きいため、ICタグ1の電源電圧はより高い電圧となる。図2(c)のように搬送波の振幅が小さいと、単位時間当たりのエネルギー量が小さいため、ICタグ1の電源電圧はより低い電圧となる。
一般に電源電圧がより高いほどICタグはより高速に動作が可能であるため、リーダ・ライタ2との距離が近いほど電源電圧が高くなることにより、高速に動作できるようになる。そこで、本実施形態では、ICタグ1側で生成される電源電圧が高い場合には、ICタグ1が高速に動作するように通信する電波を制御する。例えば、通信するフレームの周期(フレームパルスの周期)を短くして、単位時間当たりに通信するデータ量を多くし、通信速度を高速にしている。
尚、フレームの周期を短くした場合、変調信号において単位時間当たりにパルスが占める割合(搬送波が送信されない割合)が高くなると、単位時間当たりの平均的な振幅(エネルギー)が小さくなることから、ICタグで生成される電源電圧も小さくなる。したがって、高速な通信速度とは、通信データ量を多くしても、ICタグで動作可能な電圧が生成できるような範囲の速度であることが好ましい。また、通信速度を高速にした場合に、単位時間当たりの平均的な振幅の変動を抑止するために、パルス幅を短くしてもよいし、データ信号の「0」に対応する搬送波の振幅を大きく(ASK変調の変調度を小さく)してもよい。
次に、図3のブロック図を用いて、本実施形態にかかるリーダ・ライタの構成について説明する。このリーダ・ライタ2は、図に示されるように、アンテナ21、受信回路22、送信回路23、クロック生成回路24及び制御回路25を備えている。
アンテナ21は、ICタグ1と電波を送受信するアンテナであり、ICタグ1と送受信する電波の周波数等に応じた特性を有している。
送信回路23は、送信部として、制御回路25によって生成されるデータ信号を変調し、図2(b)に示すような変調信号に変換する。この変調信号は、電波としてアンテナ21を介しICタグ1へ送信される。送信回路23で行われる変調方式は、例えば、上記のようなASK変調であるが、ICタグ1で復調可能なその他の方式でもよい。
受信回路22は、アンテナ21によって受信された電波の搬送波、副搬送波より、リーダ・ライタ2から送信されてくる信号を復調する。この復調された信号は、制御回路25へ出力される。受信回路22で行われる復調方式は、ICタグ1の変調方式に合わせた方式であり、例えば、ASK変調やPSK(phase shift keying)変調である。
クロック生成回路24は、ICタグ1へ電波によってフレームパルスを送信するためのクロック信号(基準信号)を生成する基準信号生成部である。クロック生成回路24は、例えば、発振器であり、これにより所定の周期のクロック信号を生成する。このクロック信号は、制御回路25へ出力される。クロック信号は、ICタグ1の基準クロックを規定するとともに、リーダ・ライタ2からICタグ1へデータを送信するタイミングや通信速度を規定している。本実施形態では、クロック生成回路24は、制御回路25からのクロック制御信号に応じて、クロック信号の周期やパルス幅を変化させることができる。例えば、水晶発振器のクロックをPLL(Phase Locked Loop)等により逓倍してより高い周波数としたり、水晶発振器のクロックを分周期により分周してより低い周波数のクロックを生成する。
制御回路25は、例えば、クロック生成回路24によって生成されたクロック信号や送信するコマンドの符号化を行ったり、受信回路22によって生成された復調信号の復号化を行う。本実施形態では、ICタグ1から受信したデータに基づいて通信速度を変化させるために、クロック生成回路24へクロック制御信号を出力し、クロック生成回路24から出力されるクロック信号を制御する。
次に、図4のブロック図を用いて、本実施形態にかかるリーダ・ライタに設けられる制御回路の構成について説明する。この制御回路25は、図3に示したリーダ・ライタ2に設けられた制御回路である。制御回路25は、図に示されるように、送信コマンド取得回路31、データ信号生成回路32、受信データ解析回路33を備えている。
送信コマンド取得回路31は、ICタグ1へ送信するための送信コマンドをコンピュータ等から取得する。この送信コマンドは、例えば、ライトコマンドやリードコマンド等であり、ライトコマンドであれば、ライトデータ等も含まれる。尚、送信コマンドは、リーダ・ライタ2の内部において生成されてもよい。例えば、ICタグ1から所定のデータを受信したときや、ICタグ1へコマンド送信後の所定期間経過後に、送信コマンドを生成してもよい。
データ信号生成回路32は、符号化部として、送信コマンド取得回路31が取得した送信コマンドを符号化し、図2(a)に示すようなデータ信号に変換する。送信コマンドは、「0」と「1」からなる複数ビットのデータであり、このデータを1ビットずつ上述のフレームに変換し、データ信号として送信回路23へ出力する。
本実施形態では、上述のようにクロック信号に基づくフレームパルスとともに送信コマンドをICタグ1へ送信するため、クロック生成回路24によって生成されたクロック信号のタイミングに合わせて符号化が行われる。例えば、クロック信号の1周期で、1ビットのデータに対応するフレーム(データ信号)が生成されるため、クロック信号の周波数が高くなるに従い、データの転送速度も高くなる。
受信データ解析回路33は、受信回路22によって生成された復調信号を復号化し、受信データを生成する。この受信データは、必要に応じてコンピュータ等へ出力される。また、受信データ解析回路33は、受信データのフラグ(後述の電圧判定フラグ)の値やフラグの有無を判定し、判定結果に基づいて、クロック生成回路24へクロック制御信号を出力する。すなわち、受信データ解析回路33は、ICタグで生成された電源電圧に基づいて、通信速度を変更する通信速度変更部である。
次に、図5のブロック図を用いて、本実施形態にかかるICタグの構成について説明する。このICタグ1は、図に示されるように、半導体装置10、アンテナ17を備えており、半導体装置10とアンテナ17とは、アンテナ端子18を介して接続されている。また、半導体装置10は、電源電圧発生回路11、受信回路12、送信回路13、クロック生成回路14、制御回路15、記憶回路16及び電源電圧検出回路19を備えている。制御回路15には、レジスタ151が設けられている。
アンテナ17は、リーダ・ライタ2と電波を送受信するアンテナであり、リーダ・ライタ2が送信する電波の周波数等に応じた特性を有している。電源電圧発生回路11は、アンテナ17によって受信された電波を整流し、電波の振幅に基づいた電源電圧を生成する。この電源電圧は、受信回路12や送信回路13、クロック生成回路14、制御回路15、記憶回路16、電源電圧検出回路19等に供給される。
受信回路12は、アンテナ17によって受信された電波を復調し、復調信号に変換する。この復調信号は、クロック生成回路14や制御回路15へ出力される。
クロック生成回路14は、受信回路12によって生成された復調信号から、一定周期のフレームパルスを抽出し、フレームパルスに基づいたクロック信号を生成する。このクロック信号は、制御回路15等に出力される。制御回路15等は、このクロック信号に基づいて動作する。すなわち、制御回路15等の動作速度は、受信したフレームパルス(クロック信号)の周波数(周期)に応じた速度となる。尚、クロック生成回路14は、復調信号に限らず、アンテナ17によって受信された電波から直接、フレームパルスを検出しクロック信号を生成してもよい。
電源電圧検出回路19は、電源電圧発生回路11で生成された電源電圧とあらかじめ決められた基準電圧との比較を行い、比較結果を制御回路15へ出力する。この比較結果は、ICタグ1の電源電圧の状態を示す電圧判定フラグである。この基準電圧は、半導体装置10の動作可能電圧の範囲内の電圧であって、半導体装置10の制御回路15等がより速く動作できるような電圧である。基準電圧は、ICタグが通常の速度(第1の動作速度)で動作できる電圧と、ICタグが高速(第2の動作速度)で動作できる電圧との閾値電圧である、基準電圧は、半導体装置10が動作できる最低の動作電圧よりも高い電圧であり、例えば、最低動作電圧が0.5Vに対し、基準電圧は1.5V程度である。
電源電圧検出回路19は、電源電圧と基準電圧を比較し、基準電圧よりも大きければ電源電圧発生回路11で生成された電源電圧は高速動作可能な電圧と判断し、電圧判定フラグとして「1」を出力し、基準電圧よりも電源電圧が小さければ生成された電源電圧は高速動作可能ではない電圧と判断し、電圧判定フラグとして「0」を制御回路15へ出力する。例えば、電源電圧検出回路19は、インバータで構成することができ、この場合、インバータの閾値が基準電圧となる。その他、電源電圧検出回路19は、基準電圧を生成しうるようなレギュレータにより構成することもできる。
制御回路15は、受信回路12によって生成された復調信号を復号化してコマンドの抽出や解析を行い、このコマンドに基づいて記憶回路16の書き込みや読み出しを行うコマンド実行部である。例えば、受信したコマンドに応じて、制御回路15は、記憶回路16の書き込み動作や読み出し動作を制御するためにライト制御信号やリード制御信号をオン/オフしたり、記憶回路16のチャージポンプの動作を制御するためにチャージポンプ制御信号をオン/オフしたりする。また、制御回路15は、記憶回路16から読み出したデータ等に基づいたコマンド応答(実行結果)をリーダ・ライタ2へ送信するためのデータ信号を生成する。さらに、本実施形態では、制御回路15は、記憶回路16のデータ等に電源電圧検出回路19の電圧判定フラグを付加してデータ信号を生成する。制御回路15は、このデータ信号を送信回路13へ出力する。
レジスタ151は、一時保持回路の一例であり、例えば、タグIDや電源電圧検出回路19の電圧判定フラグ等のデータを一時的に保持する。記憶回路16からデータを読み出す場合、リード制御信号のオン/オフ等、読み出し制御が必要であるが、レジスタ151からデータを取得する場合は、このような読み出し制御が必要ない。
記憶回路16は、リーダ・ライタ2から受信したデータを記憶するメモリであり、例えば、不揮発性メモリである。記憶回路16は、制御回路15の制御に従って、データを記憶したり、記憶しているデータを出力したりする。例えば、記憶回路16は、タグIDの記憶も可能である。記憶回路16は、不揮発性メモリとして、EEPROM(Electrically Erasable and Programmable ROM)やフラッシュメモリ、FeRAM(Ferroelectric RAM)、MRAM(Magnetic RAM)、OUM(Ovonic Unified Memory)等であってもよい。また、記憶回路16は、チャージポンプ等の昇圧回路を備えており、データの書き込み時に、この昇圧回路によって、電源電圧を書き込みに必要な電圧まで昇圧する。
送信回路13は、制御回路15によって生成されたデータ信号を変調し、変調信号に変換する。データ信号には、上述のように、コマンド応答や電源電圧検出回路19が生成した電圧判定フラグが含まれている。そして、この変調信号は、電波としてアンテナ17を介しリーダ・ライタ2へ送信される。
次に、図6及び図7のシーケンスを用いて、本実施形態にかかる通信方法について説明する。図6及び図7は、リーダ・ライタ2が通信エリア(領域102)内に存在するICタグ1a,1b,1cと通信を行い、アンチコリジョンによってICタグ1a,1b,1cを順に選択し所望のコマンドを実行する例である。尚、各ICタグのタグIDと通信するマンチェスタ符号は、図14,図15と同様とする。例えば、この通信開始前の通信速度は、通常の速度(遅い速度)に設定されているものとする。
まず、リーダ・ライタ2は、通信エリア内のICタグ1a,1b,1cへリセット信号を送信する(S101)。例えば、ICタグ1a,1bが領域101に配置され、ICタグ1cが領域102に配置された後、リーダ・ライタ2のデータ信号生成回路32は、クロック生成回路24のクロック信号に基づき、データを含まないフレームパルスのみフレーム(リセット信号)を生成し、ICタグ1へ送信する。
次いで、ICタグ1a,1b,1cは、リセット信号を受信し、電源電圧を生成する(S102)。すなわち、S101でリーダ・ライタ2から送信された電波は、ICタグ1のアンテナ17によって受信され、受信回路12や電源電圧発生回路11に入力され、電源電圧発生回路11は、受信した電波に応じた電源電圧を生成する。また、このとき電源電圧発生回路11で生成する電源電圧が、半導体装置10の動作電圧以上になると、電源電圧発生回路11から制御回路15等の回路へリセット信号が出力され、内部回路の状態の初期化が行われ、通信可能な状態となる。
次いで、ICタグ1a,1b,1cは、生成した電源電圧と所定の基準電圧とを比較する(S103)。すなわち、ICタグ1の電源電圧検出回路19は、S102で生成された電源電圧を基準電圧と比較する。
次いで、ICタグ1a,1b,1cは、比較した結果に応じて電圧判定フラグをセットする(S104)。例えば、S103で比較した結果、電源電圧が基準電圧よりも大きければ電圧判定フラグを「1」にセットし、電源電圧が基準電圧よりも小さければ電圧判定フラグに「0」をセットする。
次いで、リーダ・ライタ2は、通信エリア内のICタグ1a,1b,1cへINITコマンドを送信する(S105)。INITコマンドは、アンチコリジョン処理の前に送信される初期設定コマンドである。例えば、S101から所定の時間経過後、リーダ・ライタ2のデータ信号生成回路32は、クロック生成回路24のクロック信号に基づいて、INITコマンドを符号化したフレームを生成し、ICタグ1へ送信する。
次いで、ICタグ1a,1b,1cは、リーダ・ライタ2へINITコマンドの応答とともに電圧判定フラグを送信する(S106)。すなわち、S105で送信されたINITコマンドは、ICタグ1の受信回路12で受信され、制御回路15は、INITコマンドを解析して実行する。そして、制御回路15は、S104でセットした電圧判定フラグを取得し、INITコマンドの応答とこの電圧判定フラグを含むデータ信号を生成し、リーダ・ライタ2へ送信する。このとき、コマンドの応答と電圧判定フラグは、マンチェスタ符号により符号化されて送信される。
次いで、リーダ・ライタ2は、受信した電圧判定フラグを判定し(S107)、この判定に応じて、ICタグ1cへISOLATIONセットコマンドを送信し(S108)、通信速度を切り替える(S109)。S107〜S109の処理については、後述する。例えば、リーダ・ライタ2は、異なる電圧判定フラグが混在であると判定した場合、電源電圧が低いICタグ1cへ、ISOLATIONセットコマンドを送信してICタグ1cの通信を中断し、電源電圧が高いICタグ1a,1bと通信するため、通信速度を高速に切り替える。
次いで、リーダ・ライタ2は、S110〜S114においてICタグ1aを特定するためのアンチコリジョン処理を行う。アンチコリジョン処理とは、複数のICタグの中から1つのICタグを特定する処理である。すなわち、リーダ・ライタ2は、ICタグ1a,1b,1cへタグIDリードコマンドを送信し(S110)、通信が中断されていないICタグ1a,1bは、リーダ・ライタ2へタグIDリードコマンドの応答としてタグIDを送信する(S111)。このとき、リーダ・ライタ2は、図15(b)に示したような受信データを受信して衝突を検出し、ICタグ1bへISOLATIONセットコマンドを送信する(S112)。ISOLATIONセットコマンドを受信したICタグ1bは、通信を中断する。
そして、リーダ・ライタ2は、ICタグ1a,1b,1cへタグIDリードコマンドを送信し(S113)、通信が中断されていないICタグ1aは、リーダ・ライタ2へタグIDリードコマンドの応答としてタグIDを送信する(S114)。このとき、リーダ・ライタ2は、タグ1aのタグIDのみを受信するため、衝突が検出されず、アンチコリジョン処理が終了し、タグ1aとのみ通信が可能となる。尚、ICタグが1個の場合には、タグIDの衝突が発生しないため、1回のタグIDリードコマンド及びコマンド応答によりICタグが特定され、アンチコリジョン処理が終了する。
次いで、リーダ・ライタ2は、ICタグ1aへリード/ライトコマンドを送信する(S115)。すなわち、リーダ・ライタ2のデータ信号生成回路32は、クロック生成回路24のクロック信号に基づいて、リードコマンドもしくはライトコマンドを符号化したフレームを生成し、ICタグ1へ送信する。
次いで、ICタグ1aは、そのコマンドを実行して、リーダ・ライタ2へ実行結果をコマンド応答として送信する(S116)。すなわち、S115で送信されたコマンドは、ICタグ1aの受信回路12で受信され、制御回路15は、受信したコマンドを解析して実行する。例えば、リードコマンドの場合、制御回路15は、記憶回路16からデータを読み出し、読み出したデータを含むデータ信号を生成し、リーダ・ライタ2へ送信する。
次いで、リーダ・ライタ2は、次のICタグと通信するため、ICタグ1a,1b,1cへINITコマンドを送信する(S117)。このとき、リーダ・ライタ2は、全てのICタグと通信するため、通信速度を通常の速度に切り替えて、INITコマンドを送信する。そうすると、ICタグ1b,1cの通信が再開し、ICタグ1a,1b,1cは、INITコマンドの応答とともに電圧判定フラグをリーダ・ライタ2へ送信する(S118)。
次いで、リーダ・ライタ2は、すでにコマンド実行が終了したICタグ1aとの通信を中断するため、ICタグ1aへISOLATIONセットコマンドを送信する(S119)。
次いで、リーダ・ライタ2は、S118で受信した電圧判定フラグを判定し(S120)、この判定に応じて、ICタグ1cへISOLATIONセットコマンドを送信し(S121)、通信速度を切り替える(S122)。ここでは、上記S107〜S109と同様にして、通信速度を高速に切り替える。
次いで、リーダ・ライタ2は、S123〜S124においてICタグ1bを特定するためのアンチコリジョン処理を行う。すなわち、リーダ・ライタ2は、ICタグ1a,1b,1cへタグIDリードコマンドを送信し(S123)、通信が中断されていないICタグ1bは、リーダ・ライタ2へタグIDリードコマンドの応答としてタグIDを送信する(S124)。このとき、リーダ・ライタ2は、タグ1bのタグIDのみを受信するため、衝突が検出されず、アンチコリジョン処理が終了し、タグ1bとのみ通信が可能となる。
次いで、リーダ・ライタ2は、ICタグ1bへリードコマンドもしくはライトコマンドを送信し(S125)、ICタグ1bは、そのコマンドを実行して、実行結果をコマンド応答として送信する(S126)。
次いで、リーダ・ライタ2は、次のICタグと通信するため、ICタグ1a,1b,1cへINITコマンドを送信する(S127)。このとき、リーダ・ライタ2は、全てのICタグと通信するため、通信速度を通常の速度に切り替えて、INITコマンドを送信する。そうすると、ICタグ1a,1cの通信が再開し、ICタグ1a,1b,1cは、INITコマンドの応答とともに電圧判定フラグをリーダ・ライタ2へ送信する(S128)。
次いで、リーダ・ライタ2は、すでにコマンド実行が終了したICタグ1a,1bとの通信を中断するため、ICタグ1a,1bへISOLATIONセットコマンドを送信する(S129)。
次いで、リーダ・ライタ2は、S128で受信した電圧判定フラグを判定し(S130)、この判定に応じて、ICタグ1cへISOLATIONセットコマンドを送信し(S131)、通信速度を切り替える(S132)。ここでは、上記S107〜S109と同様にして、通信速度を高速に切り替える。
次いで、リーダ・ライタ2は、S133においてICタグ1cを特定するためのアンチコリジョン処理を行う。すなわち、リーダ・ライタ2は、ICタグ1a,1b,1cへタグIDリードコマンドを送信する(S133)。このとき、全てのICタグの通信が中断されているため、ICタグからリーダ・ライタ2へコマンドの応答が送信されない。
そうすると、リーダ・ライタ2は、所定の期間経過後、ICタグからの応答がないことを検出する(S134)。このとき、リーダ・ライタ2は、応答がないことにより、電源電圧が高いICタグの処理が終了したと判断する。
次いで、リーダ・ライタ2は、電源電圧の低いICタグと通信するため、ICタグ1a,1b,1cへINITコマンドを送信する(S135)。このとき、リーダ・ライタ2は、全てのICタグと通信するため、通信速度を通常の速度に切り替えて、INITコマンドを送信する。そうすると、ICタグ1a,1b,1cの通信が再開し、ICタグ1a,1b,1cは、INITコマンドの応答とともに電圧判定フラグをリーダ・ライタ2へ送信する(S136)。
次いで、リーダ・ライタ2は、すでにコマンド実行が終了したICタグ1a,1bとの通信を中断するため、ICタグ1a,1bへISOLATIONセットコマンドを送信する(S137)。尚、上記のS109やS122では、電圧判定フラグに基づいて通信速度を高速に切り替えたが、ここでは、電源電圧の高いICタグの処理が終了し、残りの電源電圧の低いICタグの処理を行うため、これ以降の全ての処理を通常の通信速度で行う。
次いで、リーダ・ライタ2は、S138〜S139においてICタグ1cを特定するためのアンチコリジョン処理を行う。すなわち、リーダ・ライタ2は、ICタグ1a,1b,1cへタグIDリードコマンドを送信し(S138)、通信が中断されていないICタグ1cは、リーダ・ライタ2へタグIDリードコマンドの応答としてタグIDを送信する(S139)。このとき、リーダ・ライタ2は、タグ1cのタグIDのみを受信するため、衝突が検出されず、アンチコリジョン処理が終了し、タグ1cとのみ通信が可能となる。
次いで、リーダ・ライタ2は、ICタグ1cへリードコマンドもしくはライトコマンドを送信し(S140)、ICタグ1cは、そのコマンドを実行して、実行結果をコマンド応答として送信する(S141)。
次に、図8のフローチャートを用いて、本実施形態にかかる通信速度の切り替え処理について説明する。この処理は、リーダ・ライタ2において、ICタグから電圧判定フラグを受信し、この電圧判定フラグに基づいて通信速度を切り替える処理である。図8は、主に、図6及び図7で示したS107〜S109,S120〜S122,S130〜S132の処理に対応している。
まず、リーダ・ライタ2は、全てのICタグ1からINITコマンドの応答とともに電圧判定フラグを受信する(S201)。すなわち、リーダ・ライタ2は、図6のS106などでICタグから送信されたINITコマンドの応答と電圧判定フラグを受信し、受信データ解析回路33は、INITコマンドの応答と電圧判定フラグを取得する。
この電圧判定フラグは、上記のようにICタグによってマンチェスタ符号で符号化されている。例えば、電源電圧が基準電圧よりも高いことを示す電圧判定フラグ「1」は、「10」に符号化され、電源電圧が基準電圧よりも低いことを示す電圧判定フラグ「0」は、「01」に符号化されている。マンチェスタ符号で符号化することにより、図15のように、「10」と「01」以外の「11」を受信した場合には、「01」と「10」のICタグが混在していることを検出することができる。
次いで、リーダ・ライタ2は、電圧判定フラグが「10」かどうか判定する(S202)。すなわち、受信データ解析回路33は、S201で受信した電圧判定フラグを解析する。例えば、電圧判定フラグが受信データの先頭の2ビットであれば、該当するビット位置のデータを参照し、この電圧判定フラグと「10」とを比較する。
S202において、電圧判定フラグが「10」であると判定された場合、リーダ・ライタ2は、通信速度を高速に設定する(S203)。すなわち、S202で解析した結果、電圧判定フラグが「10」であれば、受信データ解析回路33は、ICタグ1の電源電圧が高速動作可能な電圧であると判断する。この場合、受信データ解析回路33は、クロック生成回路24のクロック周波数を高くして、通信速度を高速に設定する。そして、リーダ・ライタ2は、ICタグと高速な通信速度でアンチコリジョン処理やリード/ライトコマンドの通信を行う。
S202において、電圧判定フラグが「10」ではないと判定された場合、リーダ・ライタ2は、さらに、電圧判定フラグが「01」かどうか判定する(S204)。すなわち、ICタグ1の電源電圧が十分なレベルに達していないかどうか判定する。例えば、受信データ解析回路33は、S202と同様に、解析した電圧判定フラグと「01」とを比較する。
S204において、電圧判定フラグが「01」であると判定された場合、リーダ・ライタ2は、通信速度を通常の速度に設定する(S205)。すなわち、S204で解析した結果、電圧判定フラグが「01」であれば、受信データ解析回路33は、ICタグ1の電源電圧が高速動作可能な電圧ではないと判断する。この場合、通信速度を変えずに、通信開始前と同じ遅い通信速度で通信を継続する。つまり、クロック生成回路24のクロック周波数を変更しない。また、通信速度がすでに高速に設定されている状態のときに、電圧判定フラグが「01」であれば、受信データ解析回路33は、クロック生成回路24のクロック周波数を低くして、通信速度を低速(通常の速度)に設定してもよい。そして、リーダ・ライタ2は、ICタグと通常の通信速度でアンチコリジョン処理やリード/ライトコマンドの通信を行う。
S204において、電圧判定フラグが「01」ではないと判定された場合、リーダ・ライタ2は、電源電圧フラグ混在時の処理を行う(S206〜S209)。すなわち、S202の結果、電圧判定フラグが「10」ではなく、かつ、S204で解析した結果、電圧判定フラグが「01」ではない場合、受信データ解析回路33は、高速動作可能なICタグと高速動作不可能なICタグとが混在していると判断する。
電源電圧フラグが混在している場合、全てのICタグと通常の速度で通信を行ってもよいが、効率よく通信を行うため、電源電圧フラグ「10」の全てのICタグ、もしくは、電源電圧フラグ「01」の全てのICタグをまとめて処理することが好ましい。ここでは、電源電圧フラグ「10」のICタグ、すなわち、高速通信が可能なICタグから処理を行い、その後、電源電圧フラグ「01」のICタグ、すなわち、通常速度の通信が可能なICタグの処理を行う。電源電圧フラグ「10」のICタグの処理を先に行うことにより、高速通信が可能なICタグの処理をより早く実行することができる。
まず、リーダ・ライタ2は、電圧判定フラグが「10」のICタグとのみ通信するため、電圧判定フラグが「01」のICタグへISOLATIONセットコマンドを送信する(S206)。次いで、リーダ・ライタ2は、S203と同様に通信速度を高速に設定する(S207)。そして、リーダ・ライタ2は、ICタグと高速な通信速度でアンチコリジョン処理やリード/ライトコマンドの通信を行う。
その後、リーダ・ライタ2は、電圧判定フラグが「10」のICタグの処理が終了したかどうか判定する(S208)。例えば、図7のS134のように、アンチコリジョンのタグIDリードコマンドに対し、所定の期間経過しても応答がない場合に、電圧判定フラグ「10」のICタグの処理が終了したことを検出する。電圧判定フラグ「10」のICタグの処理が終了したと判定された場合、S205と同様に通信速度を通常の速度に設定する(S209)。そして、リーダ・ライタ2は、ICタグと通常の通信速度でアンチコリジョン処理やリード/ライトコマンドの通信を行う。
尚、ここでは、INITコマンドの応答とともに、電圧判定フラグを受信し、通信速度の切り替えを行っているが、INITコマンドの応答には電圧判定フラグをつけずに、タグIDリードコマンドの応答とともに電圧判定フラグを受信してもよい。例えば、S201において、アンチコリジョンの最初のタグIDリードコマンド時に電圧判定フラグを受信し、S202以降の処理を行って通信速度を切り替えることにより、次のタグIDリードコマンド以降の処理を高速に行うことができる。また、アンチコリジョンにおける全てのタグIDリードコマンドの応答とともに電圧判定フラグを受信してもよい。この場合、アンチコリジョン中にICタグの電源電圧が変化しても、適切な速度で通信を行うことができる。
また、INITコマンドの応答による電圧判定フラグに応じて通信速度の切り替えるとともに、さらに、タグIDリードコマンドの応答による電圧判定フラグに応じて通信速度を切り替えてもよい。図7では、S134のようにタグIDリードコマンドの応答が無い場合に、電源電圧の高いICタグの処理の終了を検出しているため、無駄に応答を待つ必要がある。しかし、S131のように電源電圧の低いICタグへISOLATIONセットコマンドを送信せずに、S133においてタグIDリードコマンドを通常の速度で送信し、タグIDリードコマンドの応答に付加された電圧判定フラグを受信することで、無駄に応答を待つことなく、電源電圧の高いICタグの処理が終了していることを検出することができる。例えば、このとき受信した電圧判定フラグが「01」であれば、電源電圧が十分生成できていないICタグのみしか残っていないことがわかるので、それ以降の通信速度を全て通常の速度で行う。
次に、図9を用いて、本実施形態にかかる通信方法で用いられる波形について説明する。図9(a)はリーダ・ライタ2の内部のクロック信号の例を示しており、図9(b)はリーダ・ライタ2からICタグ1へ送信される変調信号の例を示している。
図9では、(t1)〜(t2)をリーダ・ライタ2からICタグ1へコマンドを送信するコマンド送信期間、(t2)〜(t3)をICタグ1においてコマンドが実行されるコマンド実行期間、(t3)〜(t4)をICタグ1からリーダ・ライタ2へコマンド応答が送信されるコマンド応答期間とする。尚、後述するように、コマンド送信期間には、実際にコマンドが送信されている期間に加えて、コマンド解析などICタグが高速に動作可能な期間が含まれている。
ここでは、コマンド送信期間とコマンド応答期間のとき、高速な通信速度で通信を行うが、コマンド実行期間については、実行するコマンドによって、高速に通信する場合と通常の速度で通信する場合とがある。すなわち、リーダ・ライタは、送信するコマンドに応じて、コマンド実行期間の通信速度を高速もしくは通常の速度に切り替える。コマンド実行期間に高速に通信できるコマンドには、例えば、レジスタ151(論理回路)から読み出しを行うタグIDリードコマンドがある。本実施形態では、図6のS102において、ICタグがリセット信号を受信した際に、制御回路15は、記憶回路16からタグIDを読み出し、レジスタ151へ保持しておく。タグIDリードコマンドは、このレジスタ151からタグIDを読み出すためのコマンドである。レジスタ151は論理回路で構成されており、読み出し時に記憶回路16へのアクセスが不要であるため、レジスタ151からタグIDの読み出しを高速に行うことができる。ICタグシステムでは、複数のICタグが存在する場合には、ICタグの認証(識別)が必ず必要であり、その識別作業(アンチコリジョン処理)にも時間がかかる。その識別作業にはタグID(個々のICタグを識別するために付けられたユニークなもの)が用いられ、このタグIDは、前述のように不揮発性メモリ(記憶回路16)に記憶されている。リセット信号時、タグIDをレジスタ151に格納しておくことにより、時間のかかる不揮発性メモリからの読出しではなく、高速動作が可能なレジスタからの読出しとなるため、アンチコリジョン処理を高速にすることができる。
コマンド実行期間に通常速度で通信するコマンドには、例えば、リードコマンドやライトコマンドがある。記憶回路16が、不揮発性メモリの場合、書き込みや読み出しには、電圧を一定に保つレギュレータが使用されており、記憶回路16は、電源電圧の変動によらず常に一定の電圧で動作している。したがって、制御回路15からのアクセスに対しデータを読み出す時間しや書き込む時間は、電源電圧や通信速度によらず一定となるため、通常の速度でコマンドを実行する必要がある。ここでは一例として、リードコマンドを実行する例について説明する。
リーダ・ライタ2のクロック生成回路24は、図9(a)に示すようなクロック信号を生成し出力している。このクロック信号は、通信速度が通常の場合はクロック周期が長く、通信速度が速い場合はクロック周期が短い。例えば、クロック生成回路24は、コマンド送信開始の(t1)に短いクロック周期に切り替え、コマンド送信に必要な所定のクロック数後の(t2)に長いクロック周期に切り替え、さらにコマンド実行に必要な所定のクロック数後の(t3)に短いクロック周期に切り替え、そしてさらにコマンド応答に必要な所定のクロック数後の(t4)に長いクロック周期に切り替える。
図9(b)は、図9(a)のクロック信号に基づいて生成された変調信号の例を示している。データ信号生成回路32は、図9(a)のクロック信号のタイミングに合わせて、フレームパルスを生成するとともに送信コマンドを符号化し、図9(b)に示すようなクロック信号と送信コマンドとに基づいた変調信号をリーダ・ライタ2からICタグ1へ送信する。例えば、図2と同様に、クロック信号がハイレベルのときは、変調信号の振幅はロウレベル、クロック信号がロウレベルのときは、変調信号の振幅はハイレベルの信号となる。図に示されるように、通信速度が遅い場合は、変調信号の振幅がハイレベルの期間が長く、通信速度が速い場合は、変調信号の振幅がハイレベルの期間が短い。この結果、リーダ・ライタからICタグへコマンドが高速に送信され、ICタグからリーダ・ライタへコマンド応答が高速に送信される。
次に、図10のタイミングチャートを用いて、本実施形態にかかるICタグの動作について説明する。図10は、ICタグ1が図9(b)に示した変調信号を電波として受信した場合の信号を示している。図9と同様に、(t1)〜(t2)はリーダ・ライタ2からICタグ1へコマンドが送信されるコマンド送信期間、(t2)〜(t3)はICタグ1においてコマンドが実行されるコマンド実行期間、(t3)〜(t4)はICタグ1からリーダ・ライタ2へコマンド応答を送信するコマンド応答期間である。
ICタグ1は、図9(b)の変調信号を受信すると、電源電圧発生回路11による電源電圧の生成とともに、受信回路12によって、受信した変調信号が図10(a)に示すような復調信号に変換される。
クロック生成回路14は、図10(a)の復調信号に含まれるフレームパルスに基づいて、図10(b)に示すようなクロック信号を生成する。すなわち、通信速度が遅い場合は周期の長いクロック信号が生成され、通信速度が速い場合は周期の短いクロック信号が生成される。
制御回路15は、コマンドを実行等の動作を、フレームパルスに基づいて生成したクロック信号に同期して行う。すなわち、クロック信号の周期が長い場合、制御回路15は、より遅く動作し、クロック信号の周期が短い場合、制御回路15は、より速く動作する。
次に、図10(c)に示すように、コマンド送信期間において、受信回路12がリードコマンドを受信すると、制御回路15は、内部ロジック制御信号をオンし、内部ロジックを動作させる。すなわち、制御回路15は、内部ロジックによってコマンド解析やデータの読み出しに必要な準備動作を行う。このとき、コマンド送信期間の通信速度を高速にすることにより、受信回路12における受信動作や制御回路15における受信から記憶回路16へアクセスするまでの内部ロジックの動作を高速にすることができる。
そして、図10(d)に示すように、コマンド実行期間において、制御回路15は、リード制御信号をオンし、記憶回路16にリード処理を行わせる。例えば、リード制御信号は、記憶回路16からの読み出しを制御する信号の他、リードアドレス信号やリードデータ信号等を含んでいる。このとき、コマンド実行期間の通信速度を通常にすることにより、記憶回路16のリード処理を通常の速度で実行する。
その後、図10(c)に示すように、コマンド応答期間において、制御回路15は、内部ロジック制御信号をオンし、内部ロジックによって、記憶回路16から読み出したデータからデータ信号を生成し、このデータ信号を送信回路13から送信する。このとき、コマンド応答期間の通信速度を高速にすることにより、制御回路15における記憶回路16のリード完了から送信までの内部ロジックの動作や送信回路13における送信動作を高速にすることができる。
また、リーダ・ライタ2は、図8のS202において受信した電圧判定フラグが「10」であり、S203において通信速度を高速にする際、送信するコマンドに基づいてさらに通信速度を切り替える。送信するコマンドがリードコマンドもしくはライトコマンドの場合、リーダ・ライタ2は、コマンド送信期間(t1〜t2)を高速、コマンド実行期間(t2〜t3)を通常速度、コマンド応答期間(t3〜t4)を高速にする。送信するコマンドがレジスタ(論理回路)から読み出しを行うタグIDリードコマンドの場合、リーダ・ライタ2は、コマンド送信期間、コマンド実行期間、コマンド応答期間の全ての期間を高速にする。これにより、ICタグで実行するコマンドに基づいて、ICタグの動作をさらに高速にすることができる。
このように、本実施形態では、ICタグで生成される電源電圧の状態をINITコマンドの応答とともにICタグからリーダ・ライタへ送信することで、新たなコマンドを追加することなく、電源電圧の状態を効率よくリーダ・ライタへ通知することができる。また、電源電圧の状態を判定する基準値を、より高速に動作可能かどうかの閾値とすることで、リーダ・ライタは、ICタグの動作速度を適切な速度に設定することができる。
ICタグの電源電圧が高い場合、リーダ・ライタとICタグの通信速度を速くすることにより、ICタグの動作速度を高速にすることが可能になる。したがって、ICタグの電源電圧に応じて、コマンドの実行時間を短縮することができる。特に、INITコマンドの応答で電源電圧の状態を通知するため、アンチコリジョン以降の処理(アンチコリジョン、リードコマンド、ライトコマンド)を電源電圧に応じて高速に実行することができる。
例えば、複数のICタグと通信する際、全てのICタグの電源電圧が高い場合には、通信速度を高速に切り替えることにより、アンチコリジョン以降の処理を全て高速に実行することができる。また、電源電圧の高いICタグと低いICタグが混在している場合、電源電圧の高いICタグとのみ高速に通信を行い、電源電圧の低いICタグとは通常の速度で通信を行うことにより効率よく通信を行うことができる。特に、電源電圧の高いICタグのみと高速に通信してアンチコリジョンを行うことにより、アンチコリジョン処理を高速に行うことができる。また、電源電圧の高いICタグの処理を行った後に、電源電圧の低いICタグの処理を行うことにより、電源電圧の高いICタグの処理をより短時間で行うことができる。
アンチコリジョン処理では、1つのICタグを特定するまでに、ICタグの個数分だけタグIDの読み出しが行われ、さらに、タグIDが128ビットの場合、衝突が発生しているかどうかリーダ・ライタで最大128回の比較処理が必要となる。つまり、10個のICタグのアンチコリジョンを行う場合、10回のタグID読み出しと、最大で128×(10−1)回の比較が行われるため、ICタグの個数が多いほどアンチコリジョン処理に非常に多くの時間がかかる。したがって、ICタグの数が多いと、リーダ・ライタとICタグ間で行われるコマンド処理のうち、アンチコリジョン処理の占める割合が大きいため、通信速度を切り替えてアンチコリジョンを高速に実行することにより、コマンド処理全体の時間を大幅に短縮することができる。
尚、前述した説明においては、簡単のため、リーダ・ライタとICタグの位置関係は変わらないものとして説明したが、リーダ・ライタや複数のICタグはそれぞれ時刻と共に位置が変化する場合があり、また外部の影響によりリーダ・ライタとICタグの通信環境も変化する場合がある。すなわち、ICタグで生成される電源電圧が変化し、電圧判定フラグが時間と共に変化する。そこで、本実施形態では、1回のアンチコリジョン処理につき最低1度は電圧判定フラグを読み出し、ICタグの電圧生成状況を最新のものへと更新している。
従って、上記特許文献1の従来技術のように、専用の状態確認コマンドによって電圧判定フラグを読み出す場合には、アンチコリジョンの回数分、つまり、ICタグの数が多くなればなるほど、専用の状態確認コマンドの送信が増加するという問題が生じる。しかし、本実施形態を適用すれば、専用の状態確認コマンドの送信は全く不要となるため、非常に多いICタグとの通信(アンチコリジョン処理)であっても、電圧判定フラグを読み出すために通信回数を増加させることはない。
また、上述のように相互の位置関係が変化しうるICタグシステムとは違い、リーダ・ライタ(質問器)とICタグ(応答器)の位置関係が固定であったり、リーダ・ライタとICタグが近距離で通信するため通信環境の変化が生じ難いようなシステムでは、一度電圧判定フラグの情報を取得してしまえば、何度も読み出す必要性がない。このような例として、ICカードシステムがある。ICカードでは電子マネーなど高い機密性が必要な情報が扱われており、リーダ・ライタから離れて複数のICカードと通信すると、機密性を確保するのが困難となる。すなわち、ICカードでは高信頼性が要求されることから、リーダ・ライタ1個に対し、ICカード1枚と通信を行い、またその間の距離は固定であったり、或いは非常に近距離において確実に通信を行う方式であるのが一般的である。従って、ICカードシステムでは、ICカードで生成される電源電圧が変化し難く、専用の状態確認コマンドの送信回数が少なくても問題はないため、専用の状態確認コマンドの送信に起因する通信回数の増加という問題はそもそも考慮する必要性が低い。
この専用の状態確認コマンドの送信に起因する通信回数の増加という問題は、複数のICタグとの通信を行うICタグシステムにおいて、アンチコリジョンの回数分、つまり、ICタグの数が多くなればなるほど、非常に顕著になり、専用の状態確認コマンドの送信を不要とする本実施形態は、非常に効果がある。
発明の実施の形態2.
次に、本発明の実施の形態2にかかるICタグを用いた通信システムについて説明する。本実施形態にかかる通信システムは、アンチコリジョンによりICタグが特定された後、すなわち、リーダ・ライタとICタグが1対1で通信する際に、ICタグの電源電圧レベルを示す電圧判定フラグを各コマンドの応答とともに送信し、リーダ・ライタがこの電圧判定フラグに応じて通信速度を切り替えることを特徴としている。尚、本実施形態にかかる通信システムは、図1と同様の構成であるため説明を省略し、ここでは通信方法について説明する。
図11のシーケンスを用いて、本実施形態にかかる通信方法について説明する。通信開始から終了までの一連のシーケンスは図6及び図7と同様であり、ここでは、リード/ライトコマンドとコマンド応答(S115、S116等)の部分のみ説明する。図11は、リーダ・ライタ2からICタグ1へライトコマンドが送信される例を示している。
まず、リーダ・ライタ2は、ICタグ1へライトアドレスを送信する(S401)。そして、ICタグ1は、S103,S104と同様に、現在の電源電圧と基準電圧を比較し、現在の電圧判定フラグをセットする(S402)。さらに、ICタグ1は、リーダ・ライタ2へライトアドレスの応答とともにS402でセットした電圧判定フラグを送信する(S403)。
次いで、リーダ・ライタ2は、受信した電圧判定フラグに応じて通信速度を切り替える(S404)。すなわち、リーダ・ライタ2は、図8と同様に、受信した電圧判定フラグを解析し、電源電圧が高速動作可能な電圧の場合、通信速度を高速に設定し、電源電圧が高速動作可能な電圧ではない場合、通信速度を通常速度に設定する。
次いで、リーダ・ライタ2は、切り替えた通信速度によりICタグ1へライトデータを送信する(S405)。そして、S402,S403と同様に、ICタグ1は、現在の電圧判定フラグをセットし、リーダ・ライタ2へライトデータの応答とともに電圧判定フラグを送信する(S406,S407)。
次いで、リーダ・ライタ2は、再度、受信した電圧判定フラグに応じて通信速度を切り替え(S404)、切り替えた通信速度によってライトコマンドの送信を行う(S408)。さらに、通信速度の切り替えを行う場合、現在の電圧判定フラグのセットし、ライトコマンドの応答とともに電圧判定フラグを送信する(S409,S410)。
このように、本実施形態では、ICタグの電源電圧の状態を、ICタグからリーダ・ライタへ送信される全てのコマンド応答により通知することで、常に、最新の状態を認識することができ、精度よく通信速度を切り替えることができる。
上記のように、ICカードとリーダ・ライタの位置関係が変化しないICカードシステムと異なり、ICタグシステムでは、ICタグとリーダ・ライタの位置関係が変化しうる。例えば、図12のような、物流管理システムでは、ベルトコンベア102により、ICタグ1が貼り付けられた物品101が、常時、移動している。このような環境では、通信中でも、リーダ・ライタ2とICタグ1の距離が変化し、電源電圧も変化する。本実施の形態のように、コマンドごとに通信速度を切り替えることで、このような環境においても、適切な速度でICタグを動作させることができる。
尚、リーダ・ライタ2で電圧判定フラグの履歴を保持しておき、現在の電圧判定フラグと、以前の時刻の電圧判定フラグに基づいて、電圧が増加傾向なら、速度をより高速にしたり、電圧が減少傾向なら、速度をより低速にしたりしてもよい。
発明の実施の形態3.
次に、本発明の実施の形態3にかかるICタグを用いた通信システムについて説明する。本実施形態にかかる通信システムは、リーダ・ライタで通信速度を切り替える際、さらに電波の強度を切り替えることを特徴としている。尚、本実施形態にかかる通信システムは、図1と同様の構成であるため説明を省略し、ここでは通信方法で用いられる波形について説明する。
図13は、図9と同様の波形であり、図13(a)はリーダ・ライタ2の内部のクロック信号の例を示し、図13(b)と図13(c)はリーダ・ライタ2からICタグ1へ送信される変調信号の例を示している。
図13(b)のように、図13中(t)の時点で通信速度が高速に変更された場合、フレーム周期を短くするとともに、搬送波の振幅を大きくする。例えば、リーダ・ライタ2のデータ信号生成回路32は、図13(a)のクロック信号からフレームパルスに基づいたフレームを生成し、送信回路23で振幅の大きな搬送波によって変調されて、ICタグ1へ送信される。
図13(c)のように、図13中(t)の時点で通信速度が高速に変更され、コマンドが送信される場合も、搬送波の振幅を大きくする。例えば、データ信号生成回路32は、図13(a)のクロック信号のタイミングに合わせて、送信コマンドのデータからフレームを生成し、送信回路23で振幅の大きな搬送波によって変調されて、ICタグ1へ送信される。
このように、本実施形態では、通信速度を切り替える際に、電波の強度(搬送波の振幅)を切り替えることにより、ICタグで生成される電源電圧が不足するような場合でも、十分な電圧を生成し、所望の速度で動作することができる。例えば、ICタグがリーダ・ライタから遠い位置に存在する場合でも、電波の強度を大きくすることにより、高速に動作させることができる。
尚、電波の強度を大きくする場合でも、電波法で認可された上限の範囲内の強度とする必要がある。リーダ・ライタは、通信距離を稼ぐために、電波の出力を電波法の上限に設定して動作しているのが一般的である。しかし、例えば電池で動作するハンディ型のように電池の消耗をなるべく防ぎたいリーダ・ライタである場合、通常は故意に低出力にしておき、本実施形態のように高出力に変更する使い方ができる。
その他の発明の実施の形態.
上述の例では、電源電圧を判定する基準電圧を1つとし、電源電圧に応じて通信速度を2段階に制御したが、これに限らず、より多くの基準電圧で判定し、より多くの通信速度に切り替えてもよい。
上述の例では、内部に電源を有しないパッシブ型のICタグとして説明したが、これに限らず、内部に電源を有するアクティブ型のICタグであってもよい。アクティブ型であれば、内部電源電圧が高い場合、高速に動作させ、内部電源電圧が低い場合、低速に動作させることができる。
このほか、本発明の要旨を逸脱しない範囲で種々の変形、実施が可能である。