(57)【要約】【課題】容易な方法で、完全なデータ損失を回避すること。【解決手段】交信装置（３）は、データの消去単位である複数のブロックを有する不揮発性メモリ（８２）が搭載されたＲＦタグ（８）と非接触での交信を行う。交信装置（３）は、不揮発性メモリにデータを書込む場合に、書込み範囲が属するブロックのうち、書込み範囲外のデータを含む部分ブロックを特定する特定部（３０３）と、特定された部分ブロック内の元データをバックアップするためのバックアップ処理部（３０４）と、元データを含むバックアップデータを記憶するための記憶部（３６）と、バックアップデータが記憶された場合に、初期化された部分ブロックに、更新データを書込むための書込み処理部（３０５）とを備える。【選択図】図５
2014146160.tif 000002
【特許請求の範囲】
【請求項１】
データの消去単位である複数のブロックを有する不揮発性メモリが搭載されたＲＦタグと非接触での交信を行う交信装置であって、
前記不揮発性メモリにデータを書込む場合に、書込み範囲が属する前記ブロックのうち、前記書込み範囲外のデータを含むブロックを特定する特定手段と、
前記特定手段により特定されたブロック内の元データをバックアップするためのバックアップ処理手段と、
前記元データを含むバックアップデータを記憶するための記憶手段と、
前記バックアップデータが前記記憶手段に記憶された場合に、初期化された前記特定されたブロックに、更新データを書込むための書込み処理手段とを備える、交信装置。
【請求項２】
前記バックアップデータに含まれる前記元データは、前記書込み処理手段によって、初期化前の前記特定されたブロックから読出されたデータである、請求項１に記載の交信装置。
【請求項３】
前記特定されたブロックへの書込みに失敗した場合に、前記記憶手段に記憶された前記バックアップデータを読出して、前記不揮発性メモリの前記特定されたブロックに前記元データを書戻すための書戻し処理手段をさらに備える、請求項１または２に記載の交信装置。
【請求項４】
前記特定されたブロックへの書込みに失敗した場合に、データ損失の可能性があることを示すエラー情報を通知するための通知手段をさらに備え、
前記書戻し処理手段は、ユーザからの書戻し指示に応じて前記特定されたブロックに前記元データを書戻す、請求項３に記載の交信装置。
【請求項５】
電源部をさらに備え、
前記記憶手段は、前記書込み処理手段による書込み処理が行なわれている間、所定の情報をさらに記憶し、
前記通知手段は、さらに、前記電源部の電源投入時に、前記記憶手段に前記所定の情報が記憶されている場合に、前記エラー情報を通知する、請求項４に記載の交信装置。
【請求項６】
前記通知手段は、交信失敗によるデータ損失と電源遮断によるデータ損失とを区別して、前記エラー情報を通知する、請求項５に記載の交信装置。
【請求項７】
前記通知手段は、有線または無線により接続された上位機器に、前記エラー情報を送信する、請求項３〜６のいずれかに記載の交信装置。
【請求項８】
前記ＲＦタグを検出し、検出した前記ＲＦタグの識別情報を取得するための検出手段をさらに備え、
前記バックアップ処理手段は、前記ＲＦタグの前記識別情報と関連付けて前記バックアップデータを格納し、
前記書戻し処理手段は、前記書戻し指示に応じて検出された前記ＲＦタグの前記識別情報と、前記バックアップデータと関連付けられた前記識別情報とが一致していた場合に、前記元データを前記特定されたブロックに書戻す、請求項３〜７のいずれかに記載の交信装置。
【請求項９】
請求項１〜８のいずれかに記載の交信装置と、前記ＲＦタグとを備えた、ＲＦＩＤシステム。
【請求項１０】
データの消去単位である複数のブロックを有する不揮発性メモリが搭載されたＲＦタグと非接触での交信を行う交信装置によって実行される、前記不揮発性メモリへのデータ書込みプログラムであって、
前記不揮発性メモリにデータを書込む場合に、書込み範囲が属する前記ブロックのうち、前記書込み範囲外のデータを含むブロックを特定するステップと、
特定されたブロック内の元データを含むバックアップデータを記憶部に記憶させるステップと、
前記バックアップデータが前記記憶部に記憶された場合に、初期化された前記特定されたブロックに、更新データを書込むステップとを含む、データ書込みプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、交信装置、ＲＦＩＤ（Radio Frequency IDentification）システムおよびデータ書込みプログラムに関し、特に、データの消去単位である複数のブロックを有する不揮発性メモリが搭載されたＲＦＩＤタグ（以下「ＲＦタグ」という）と非接触での交信を行う交信装置、当該交信装置とＲＦタグとを含むＲＦＩＤシステム、および、当該交信装置により実行されるデータ書込みプログラムに関する。
【背景技術】
【０００２】
近年、種々の分野でＲＦタグを用いた情報管理が行なわれている。一般的なＲＦＩＤシステムには、管理対象の物品またはその物品を支持もしくは収容する物体（パレット、コンテナなど）に取付けられたＲＦタグと、ＲＦタグとの交信処理を実行する交信装置であるリーダライタと、リーダライタを制御する上位機器とが含まれる。リーダライタは、上位機器からのコマンドに応じて、ＲＦタグ内の不揮発性メモリからデータの読出しおよび書込みを行い、その処理結果を上位機器に返信する。
【０００３】
ここで、リーダライタは、ＲＦタグと非接触での交信を行うため、データの書換え時に交信が中断する場合がある。特開２００１−２２６５３号公報（特許文献１）では、このような事態に備え、ＲＦタグ側にデータをバックアップする構成が開示されている。
【０００４】
また、データのバックアップに関しては、特許第４３００２５５号公報（特許文献２）には、無線基地局と通信するモジュールを有するＲＦタグが、リーダライタとの交信の中断を自動検知して、無線基地局とバックアップ通信を行うことが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−２２６５３号公報
【特許文献２】特許第４３００２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一般的に、ＲＦタグには、フラッシュメモリなど、ブロック単位でデータが消去される不揮発性メモリが搭載される。したがって、このような不揮発性メモリにデータを書込む場合には、ブロックの一部にのみデータを書込む場合であっても、一旦書込み対象のブロック全体の初期化（データ消去）が行なわれた後に、更新データが書き込まれる。そのため、ＲＦタグへのデータ書込み中に何らかの要因（たとえば、ＲＦタグが動作電力を受給できない領域へ移動してしまう等）で交信が中断してしまった場合、書込み対象のブロックの元データが損失される恐れがある。
【０００７】
上記した従来のバックアップ方法では、ＲＦタグのハード構成やシステムの環境を変更する必要があるため、実現するにはコストがかかる。
【０００８】
本発明は、上記のような課題を解決するためになされたものであって、その目的は、容易な方法で、完全なデータ損失を回避することのできる交信装置、ＲＦＩＤシステムおよびデータ書込みプログラムを提供することである。
【課題を解決するための手段】
【０００９】
この発明のある局面に従う交信装置は、データの消去単位である複数のブロックを有する不揮発性メモリが搭載されたＲＦタグと非接触での交信を行う交信装置であって、不揮発性メモリにデータを書込む場合に、書込み範囲が属するブロックのうち、書込み範囲外のデータを含むブロックを特定する特定手段と、特定手段により特定されたブロック内の元データをバックアップするためのバックアップ処理手段と、元データを含むバックアップデータを記憶するための記憶手段と、バックアップデータが記憶手段に記憶された場合に、初期化された上記特定されたブロックに、更新データを書込むための書込み処理手段とを備える。
【００１０】
好ましくは、バックアップデータに含まれる元データは、書込み処理手段によって、初期化前の特定されたブロックから読出されたデータである。
【００１１】
好ましくは、特定されたブロックへの書込みに失敗した場合に、記憶手段に記憶されたバックアップデータを読出して、不揮発性メモリの特定されたブロックに元データを書戻すための書戻し処理手段をさらに備える。
【００１２】
好ましくは、特定されたブロックへの書込みに失敗した場合に、データ損失の可能性があることを示すエラー情報を通知するための通知手段をさらに備え、書戻し処理手段は、ユーザからの書戻し指示に応じて特定されたブロックに元データを書戻す。
【００１３】
好ましくは、電源部をさらに備え、記憶手段は、書込み処理手段による書込み処理が行なわれている間、所定の情報をさらに記憶し、通知手段は、さらに、電源部の電源投入時に、記憶手段に所定の情報が記憶されている場合に、エラー情報を通知する。
【００１４】
好ましくは、通知手段は、交信失敗によるデータ損失と電源遮断によるデータ損失とを区別して、エラー情報を通知する。
【００１５】
好ましくは、通知手段は、有線または無線により接続された上位機器に、エラー情報を送信する。
【００１６】
好ましくは、ＲＦタグを検出し、検出したＲＦタグの識別情報を取得するための検出手段をさらに備え、バックアップ処理手段は、ＲＦタグの識別情報と関連付けてバックアップデータを格納し、書戻し処理手段は、書戻し指示に応じて検出されたＲＦタグの識別情報と、バックアップデータと関連付けられた識別情報とが一致していた場合に、元データを特定されたブロックに書戻す。
【００１７】
この発明の他の局面に従うＲＦＩＤシステムは、上述のいずれかに記載の交信装置と、ＲＦタグとを備える。
【００１８】
この発明のさらに他の局面に従うデータ書込みプログラムは、データの消去単位である複数のブロックを有する不揮発性メモリが搭載されたＲＦタグと非接触での交信を行う交信装置によって実行される、不揮発性メモリへのデータ書込みプログラムであって、不揮発性メモリにデータを書込む場合に、書込み範囲が属するブロックのうち、書込み範囲外のデータを含むブロックを特定するステップと、特定されたブロック内の元データを含むバックアップデータを記憶部に記憶させるステップと、バックアップデータが記憶部に記憶された場合に、初期化された上記特定されたブロックに、更新データを書込むステップとを含む。
【発明の効果】
【００１９】
本発明によると、容易な方法で、完全なデータ損失を回避することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態に係るＲＦＩＤシステムの概略構成図である。
【図２】本発明の実施の形態に係るリーダライタのハードウェア構成を示すブロック図である。
【図３】本発明の実施の形態に係るＲＦタグのハードウェア構成を示すブロック図である。
【図４】本発明の実施の形態に係る上位機器のハードウェア構成の一例を示すブロック図である。
【図５】本発明の実施の形態に係るＲＦＩＤシステムの機能構成を示す機能ブロック図である。
【図６】本発明の実施の形態に係るＲＦタグに搭載されたフラッシュメモリのブロック構成と書込み範囲との関係を概念的に示す図である。
【図７】本発明の実施の形態におけるリストア情報のデータ構造例を示す図である。
【図８】本発明の実施の形態に係るリーダライタが実行するデータ書込み処理を示すフローチャートである。
【図９】本発明の実施の形態に係る上位機器において実行されるエラー通知処理を示すフローチャートである。
【図１０】本発明の実施の形態に係るリーダライタが実行するリストア処理を示すフローチャートである。
【図１１】本発明の実施の形態の変形例に係るリーダライタが実行するデータ書込み処理を示すフローチャートである。
【図１２】本発明の実施の形態の変形例に係るリーダライタの起動処理を示すフローチャートである。
【発明を実施するための形態】
【００２１】
本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
【００２２】
本実施の形態に係るＲＦＩＤシステムは、たとえば、工場等の生産ラインにおいて、搬送路上を搬送されるワークの情報を管理するために用いられる。
【００２３】
＜構成について＞
（システムの概略構成）
はじめに、本実施の形態に係るＲＦＩＤシステムの概略構成について説明する。
【００２４】
図１は、本発明の実施の形態に係るＲＦＩＤシステムＳＹＳの概略構成図である。図１を参照して、ＲＦＩＤシステムＳＹＳは、上位機器１と、交信装置としてのリーダライタ３と、ＲＦタグ８とを備える。
【００２５】
上位機器１は、ＲＦタグ８に対する情報の読み書きを統括制御する制御装置である。上位機器１は、たとえば、パーソナルコンピュータ、あるいは、ＰＬＣ（Programmable Logic Controller）で実現される。上位機器１は、ハブ２を介して、リーダライタ３と接続され、リーダライタ３との間で通信を行う。ハブ２は、たとえばイーサネット（登録商標）ハブである。リーダライタ３は、上位機器１からのコマンドに従い、ＲＦタグ８との交信、および、ＲＦタグ８に対する情報の読み書きを実行する。なお、本実施の形態では、上位機器１とリーダライタ３とが有線接続されることとしたが、これらは無線接続されてもよい。
【００２６】
ここで、リーダライタ３とＲＦタグ８との交信中に、搬送路上において、パレットやコンテナが回転することによりＲＦタグ８の位置が変更される場合がある。また、交信中におけるワークの搬送スピードが適切でない場合がある。これらのような場合には、ＲＦタグ８にデータを書込んでいる最中に交信が中断されることがある。ＲＦタグ８がたとえばフラッシュメモリを搭載している場合、データを書込む前にブロック単位で元のデータが消去（初期化）される。したがって、消去後に交信が中断されると、元のデータを損失してしまう。ブロック全体のデータを書換える場合には、ユーザは再度新たなデータ（更新データ）を書込めばよいため、元のデータが損失されても支障はない。これに対し、ブロックの一部にのみデータを書込む場合には、当該ブロックにおける元データも必要であるため、元データが損失すると不都合がある。したがって、本実施の形態では、一部へのデータ書込みが行なわれるブロックについてのみ、元データをリーダライタ３にバックアップする。
【００２７】
（各装置のハードウェア構成）
次に、ＲＦＩＤシステムＳＹＳに含まれる各装置のハードウェア構成例について説明する。
【００２８】
図２は、本発明の実施の形態に係るリーダライタ３のハードウェア構成を示すブロック図である。図３は、本発明の実施の形態に係るＲＦタグ８のハードウェア構成を示すブロック図である。
【００２９】
図２を参照して、リーダライタ３は、アンテナコイル７１を含むアンテナ部７０と、制御部３１を具備する交信制御装置３０とにより構成される。ただし、この構成は一例にすぎず、アンテナ部７０と交信制御装置３０とを一体にしてもよい。
【００３０】
交信制御装置３０は、制御部３１のほかに、送信回路３２、受信回路３３、受信レベル検出回路３４、通信Ｉ／Ｆ（インターフェイス）３５、記憶部３６、計時部３７、表示部３８および電源部３９を含む。
【００３１】
制御部３１は、ＣＰＵ（Central Processing Unit）等の演算処理装置により実現される。通信Ｉ／Ｆ３５には、イーサネット（登録商標）ケーブルが接続され、上位機器１との間で情報の送受信を行う。記憶部３６は、各種プログラムやデータを不揮発的に記憶する。記憶部３６は、たとえばフラッシュメモリであってよい。計時部３７は、計時動作を行い、制御部３１に計時データを出力する。表示部３８は、制御部３１からの指示に従い、各種情報を表示する。表示部３８は、ＬＥＤ（Light Emitting Diode）ランプにより構成されてもよい。
【００３２】
送信回路３２は、ドライブ回路４１、変調回路４２、乗算回路４３、増幅回路４５、増幅回路を挟む一対のＺ変換回路４４，４６などにより構成される。受信回路３３は、バンドパスフィルタ（ＢＰＦ）回路５１、検波回路５２、ローパスフィルタ（ＬＰＦ）回路５３、増幅回路５４、コンパレータ５５などにより構成される。受信レベル検出回路３４は、検波回路６１およびＡ／Ｄ（Analog to Digital）変換回路６２により構成される。
【００３３】
なお、交信制御装置３０は、キャリア信号となる高周波パルスを出力する発振回路（図示せず）を含んでいるものとする。
【００３４】
上記構成において、制御部３１は、発振回路（図示せず）からのパルス信号に基づき、搬送波の元となる高周波パルス（以下「キャリア信号」という）を出力する。また、制御部３１は、適宜、所定ビット数のコマンド信号を出力する。キャリア信号は、ドライブ回路４１により搬送波に変換された後に、Ｚ変換回路４４，４６によるインピーダンスの整合処理や増幅回路４５による増幅処理を経て、アンテナコイル７１に供給され、電磁波として送出される。また変調回路４２および乗算回路４３がコマンド信号に基づき搬送波を振幅変調することによって、コマンド信号が搬送波に重畳される。
【００３５】
上記の処理によりアンテナコイル７１から電磁波が送出されると、この電磁波により交信領域内のＲＦタグ８に誘導起電力が生じ、ＲＦタグ８側の制御部８１（図３）が起動する。この状態下でアンテナコイル７１からコマンド信号が送信されると、ＲＦタグ８側の制御部８１は、コマンド信号が表すコマンドを解読して指示された処理を実行した後に、所定の応答データを表す信号（応答信号）を生成し、リーダライタ３に返送する。
【００３６】
受信回路３３では、バンドパスフィルタ回路５１によりノイズを除去した後に、検波回路５２により応答信号を含む搬送波を抽出する。さらに、ローパスフィルタ回路５３により搬送波からタグ８の応答信号を抽出し、これを増幅回路５４で増幅した後に、コンパレータ５５により矩形信号に変換する。制御部３１は、コンパレータ５５から入力された信号を用いてタグ８の応答内容を解読し、この解読データを含む交信結果データを通信Ｉ／Ｆ３５に出力する。
【００３７】
受信レベル検出回路３４の検波回路６１は、コンパレータ５５に入力されるのと同一の応答信号の入力を受け、応答信号の各ピークのレベル変化を表す包絡線信号を生成する。Ａ／Ｄ変換回路６２はこの包絡線信号をディジタル変換する。制御部３１は、この変換により生じたディジタルデータを応答信号の受信レベルとして入力する。
【００３８】
図３を参照して、ＲＦタグ８は、アンテナ部９０と無線通信ＩＣ（無線通信装置）８０とを備える。この種のＲＦタグ８としては、たとえば、パッシブタイプやアクティブタイプのものが使用される。
【００３９】
アンテナ部９０は、リーダライタ３から受信した電波を無線信号に変換して無線通信ＩＣ８０に送信するとともに、無線通信ＩＣ８０からの無線信号を電波に変換してリーダライタ３に送信する。アンテナ部９０には、アンテナコイル（図示せず）が含まれる。
【００４０】
無線通信ＩＣ８０は、リーダライタ３からアンテナ部８０を介して受信した信号に基づいて、リーダライタ３からのデータを記憶したり、記憶されたデータをアンテナ部８０を介してリーダライタ３に送信したりする。この無線通信ＩＣ８０は、図３に示すように、制御部８１、フラッシュメモリ８２、無線処理部８３および電源部８４を含む。
【００４１】
制御部８１は、無線通信ＩＣ８０内における各部の動作を統括的に制御する。制御部８１は、論理演算回路およびレジスタなどを備え、コンピュータとして機能する。フラッシュメモリ８２は、上述のように、消去単位である複数のブロックを有する不揮発性メモリである。フラッシュメモリ８２は、プログラムやデータを記憶する。
【００４２】
無線処理部８３は、外部からアンテナ部９０を介して受信した無線信号を元の形式に変換し、変換したデータを制御部８１に送信するとともに、制御部８１から受信したデータを無線送信に適した形式に変換し、変換した無線信号をアンテナ部９０を介して外部に送信する。無線処理部８３には、たとえば、Ａ／Ｄ（Ａｎａｌｏｇ ｔｏ Ｄｉｇｉｔａｌ）変換回路、Ｄ／Ａ（Ｄｉｇｉｔａｌ ｔｏ Ａｎａｌｏｇ）変換回路、変復調回路、ＲＦ回路などが使用される。
【００４３】
電源部８４は、アンテナ部９０が電波を受信することにより発生する誘起電圧を整流回路にて整流し、電源回路にて所定の電圧に調整した後、無線通信ＩＣ８０の各部に供給する。
【００４４】
制御部８１は、リーダライタ３からアンテナ部９０および無線処理部８３を介して受信したコマンド信号に基づいて、リーダライタ３より受信したデータをフラッシュメモリ８２に記憶したり、フラッシュメモリ８２に記憶されたデータを読出して、無線処理部８３およびアンテナ部９０を介してリーダライタ３に送信したりする。
【００４５】
図４は、本発明の実施の形態に係る上位機器１のハードウェア構成の一例を示すブロック図である。図４には、上位機器１が、汎用のパーソナルコンピュータである場合のハードウェア構成が示されている。
【００４６】
上位機器１は、各種演算処理を行なうためのＣＰＵ１０と、各種データおよびプログラムを格納するＲＯＭ１１と、作業データ等を格納するＲＡＭ１２と、ユーザからの指示を受け付けるための操作部１３と、各種情報を表示するための表示部１４と、各種データおよびプログラムを記録するハードディスク１５と、リーダライタ３と通信を行なうための通信Ｉ／Ｆ１６と、記録媒体１７ａからのデータやプログラムを読出し／書込み可能なドライブ装置１７とを含む。記録媒体１７ａは、たとえば、ＣＤ−ＲＯＭ（Compact Disc-ROM）などの光学媒体や、メモリカードなどであってよい。
【００４７】
（機能構成について）
次に、本実施の形態に係るＲＦＩＤシステムＳＹＳの機能構成について説明する。
【００４８】
図５は、本発明の実施の形態に係るＲＦＩＤシステムＳＹＳの機能構成を示す機能ブロック図である。図５を参照して、リーダライタ３は、その機能として、コマンド受信部３０１と、検出処理部３０２と、特定部３０３と、バックアップ処理部３０４と、書込み処理部３０５と、通知部３０６と、書戻し処理部３０７とを含む。また、ＲＦタグ８は、その機能として、フラッシュメモリ８２に対する、データの読出しおよび書込みを制御する記憶処理部８１０を含む。
【００４９】
リーダライタ３のコマンド受信部３０１は、上位機器１からのコマンドを受信する。本実施の形態では、上位機器１より送信されるコマンドには、書込みコマンド、および、リストアコマンドが含まれる。書込みコマンドには、たとえば、ＲＦタグ８の識別情報（以下「タグＩＤ」という）、および、書込み範囲を示すフラッシュメモリ８２のアドレス情報が含まれる。コマンド受信部３０１は、通信Ｉ／Ｆ３５により実現される。
【００５０】
検出処理部３０２は、コマンド受信部３０１が上記コマンドすなわち、書込みコマンドおよびリストアコマンドを受信した場合に、ＲＦタグ８の検出処理を実行する。また、検出処理部３０２は、検出されたＲＦタグ８のタグＩＤを取得する。タグＩＤは、たとえば、ＲＦタグ８のフラッシュメモリ８２に格納されている。
【００５１】
特定部３０３は、コマンド受信部３０１により書込みコマンドが受信された場合に、書込み範囲が属するブロックのうち、書込み範囲外のデータを含むブロックを特定する。ここで、図６を参照しながら、特定部３０３の処理について具体的に説明する。
【００５２】
図６は、本発明の実施の形態に係るＲＦタグ８に搭載されたフラッシュメモリ８２のブロック構成と書込み範囲との関係を概念的に示す図である。図６を参照して、フラッシュメモリ８２は、たとえば、複数のブロックＢＬ１，ＢＬ２，・・・，ＢＬ６を有している。各ブロックは、複数のバイトで構成されている。たとえば、フラッシュメモリ８２に、データＤ２，Ｄ３，Ｄ４で示される新たなデータ列を書込む場合には、書込み範囲は、図６においてハッチングされた領域に対応する。より具体的には、書込み範囲は、これらのデータ列の開始アドレスと終了アドレスとにより区切られる領域である。新たなデータＤ２は、ブロックＢＬ２の一部の領域に書き込まれ、新たなデータＤ３は、ブロックＢＬ３の全領域に書き込まれ、新たなデータＤ４は、ブロックＢＬ４の一部の領域に書き込まれる。この場合、書込み範囲が属するブロック８２０は、ブロックＢＬ２〜ＢＬ４であるため、特定部３０３は、ブロックＢＬ２〜ＢＬ４のうち、書込み範囲外のデータを含むブロックとして、ブロックＢＬ２およびブロックＢＬ４を特定する。これらのブロックＢＬ２，ＢＬ４は、書込み範囲外のデータが消去されることによるデータ損失の可能性があるブロックである。後述の書込み処理部３０５によるデータ書込みの前に、ブロックＢＬ２における書込み範囲外の元データＤ１、および、ブロックＢＬ４における書込み範囲外の元データＤ５も、一旦消去されるからである。本実施の形態において、ブロックの初期化後に、ブロック単位で書込むデータを「更新データ」という。たとえば、ブロックＢＬ２の場合、元のデータＤ１と新たなデータＤ２とを総称して更新データと呼ぶ。
【００５３】
なお、これらのブロックは、その一部にのみデータが書き込まれるブロックであることから、以下「部分ブロック」という。また、書込み範囲に含まれる他のブロックを「通常ブロック」という。書込み範囲が複数のブロックをまたがる場合は、部分ブロックは、始めおよび終わりのブロックである。書込み範囲が１つのブロックにのみ属する場合には、そのブロックも始めのブロックと定義すると、部分ブロックは、その始めのブロックである。なお、始めおよび終わりのブロックであっても、稀に、ブロック全体にデータが書込まれる場合も考えられるが、始めおよび終わりのブロックを部分ブロックとして特定することで、処理を単純化することができる。ただし、始めおよび終わりのブロックのうち、実際に書込み範囲外のデータを含むブロックのみを抽出する処理を行ってもよい。
【００５４】
再び図５を参照して、バックアップ処理部３０４は、部分ブロック内の元データをバックアップするための処理を行う。バックアップされる元データは、部分ブロックの全データである。なお、書込み範囲内の元データは新たなデータに書換えられるため、書込み範囲外のデータのみバックアップされてもよい。バックアップ処理部３０４は、元データおよび元データのアドレス情報を含むバックアップデータを、記憶部３６のリストア情報３６０として格納する。バックアップデータは、検出処理部３０４で取得されたタグＩＤと関連付けて記憶される。リストア情報３６０は、元データを書戻す際に必要となる情報である。リストア情報３６０のデータ構造例については後述する。
【００５５】
書込み処理部３０５は、コマンド受信部３０１において受信された書込みコマンドに応じて、ＲＦタグ８のフラッシュメモリ８２に新たなデータ（更新データ）を書込む処理を実行する。通常ブロックへの書込みの場合、通常ブロックからデータを読出すことなく、初期化された通常ブロックに新たなデータ（更新データ）を書込む。たとえば図６のブロックＢＬ３にデータを書込む場合、ブロックＢＬ３の全データが新たなデータＤ３に書換えられる。通常ブロックの初期化は、たとえば、書込み処理部３０５から書込みコマンドが送信された場合に、ＲＦタグ８の記憶処理部８１０側において、新たなデータを書込む前に行われる。リーダライタ３からＲＦタグ８に送信される書込みコマンドには、たとえば、フラッシュメモリ８２のアドレス情報と新たなデータＤ３とが含まれる。なお、書込み処理部３０５から、ブロックの初期化指示と更新データの書込み指示とが、別々に行われてもよい。
【００５６】
一方、部分ブロックへのデータ書込みの場合、書込み処理部３０５は、バックアップデータが記憶部３６に記憶された後に、初期化された部分ブロックに更新データを書込む。たとえば図６のブロックＢＬ２にデータを書込む場合、一旦、ブロックＢＬ２の元データ全てを読出す。その後、初期化されたブロックＢＬ２に、読出した全データと新たなデータＤ２とをマージした更新データを書込む。これにより、書込み範囲外の元データＤ１は、再び同じ位置に書戻される。ブロックＢＬ２の元データを読出すためには、書込み処理部３０５が読出しコマンドをＲＦタグ８に送信すればよい。この読出しコマンドには、たとえば、フラッシュメモリ８２のアドレス情報が含まれる。ＲＦタグ８の記憶処理部８１０が、受信した読出しコマンドに基づいて、フラッシュメモリ８２のブロックＢＬ２から全データを読出して返信することで、書込み処理部３０５は、部分ブロックの元データを取得することができる。なお、部分ブロックの初期化も、上記した通常ブロックの場合と同様の手順で行われてよい。
【００５７】
なお、このように、書込み処理部３０５は、一旦、部分ブロックの全データを読出すため、効率化の観点より、バックアップ処理部３０４は、書込み処理部３０５によって読出された部分ブロックのデータをバックアップすることが望ましい。
【００５８】
通知部３０６は、部分ブロックおよび通常ブロックのデータ書換えに失敗した場合に、エラー情報を通知する。特に、部分ブロックのデータ書換えに失敗した場合には、データ損失の可能性があることを示すエラー情報を通知する。本実施の形態では、通知部３０６は、上位機器１に、書込み結果としてエラー情報を通知する。この場合、通知部３０６は、たとえば通信Ｉ／Ｆ３５により実現される。なお、通知部３０６は、ユーザに対しデータ損失が通知できればよいため、自装置の表示部３８により実現されてもよい。たとえば、表示部３８を所定色にて点灯することで、データ損失をユーザに通知してもよい。
【００５９】
書戻し処理部３０７は、部分ブロックへの書込みに失敗した場合に、記憶部３６にリストア情報３６０として記憶されたバックアデータを読出す。そして、データ損失された部分ブロックに元の全データを書戻す。
【００６０】
なお、図５に示したリーダライタ３の機能構成のうち、検出処理部３０２、特定部３０３、バックアップ処理部３０４および書込み処理部３０５の機能は、図２に示した制御部３１がソフトウェアを実行することで実現されてもよいし、これらのうちの少なくとも１つについては、ハードウェアにより実現されてもよい。また、ＲＦタグ８の記憶処理部８１０の機能は、制御部８１により実現されてよい。
【００６１】
（データ構造例について）
図７は、本発明の実施の形態におけるリストア情報３６０のデータ構造例を示す図である。図７を参照して、リストア情報３６０は、複数のリストアデータＲ１，Ｒ２，・・・を含む。各リストアデータは、交信日時、タグＩＤ、アドレス情報、および元データを含む。交信日時は、たとえば、検出処理部３０２によりタグ８が検出された日時であってもよいし、元データが読出された日時であってもよい。タグＩＤは、検出処理部３０２により取得されたタグ８の識別情報である。アドレス情報としては、たとえば開始アドレスおよびバイト数（サイズ）が格納される。元データは、書込み処理部３０５により読出された、部分ブロックの全データである。このように、本実施の形態では、バックアップデータを構成するアドレス情報および元データは、交信日時およびタグＩＤと対応付けられて記憶されている。なお、バックアップデータと、交信日時およびタグＩＤとが関連付けられていれば、これら全てが１つのリストアデータに含まれる構成でなくてもよい。
【００６２】
＜動作について＞
次に、本実施の形態に係るＲＦＩＤシステムＳＹＳの動作について具体的に説明する。
【００６３】
（データ書込み処理）
図８は、本発明の実施の形態に係るリーダライタ３が実行するデータ書込み処理を示すフローチャートである。なお、図８に示す処理手順は、予めプログラムとして記憶部３６に記憶されており、制御部３１が当該プログラムを読出して実行することでデータ書込み処理が実現される。また、データ書込み処理は、上位機器１から上記書込みコマンドがコマンド受信部３０１により受信された場合に開始される。
【００６４】
図８を参照して、はじめに、検出処理部３０２が、ＲＦタグ８の検出処理を実行する（ステップＳ（以下「Ｓ」と略す）２）。ＲＦタグ８が検出されると、ＲＦタグ８のタグＩＤを取得する（Ｓ４）。
【００６５】
特定部３０３は、書込みコマンドに含まれるアドレス情報より、書込み対象のブロックが部分ブロックであるか否かを判断する（Ｓ６）。書込み対象のブロックは、書込み範囲が属する１または複数のブロックのうちの１つである。本実施の形態では、始めのブロックおよび終わりのブロックが部分ブロックと判断される。
【００６６】
書込み対象のブロックが部分ブロックであると判断された場合（Ｓ６にてＹＥＳ）、書込み処理部３０５は、部分ブロックの全データを読出す（Ｓ８）。この処理が終わると、書込み処理部３０５は、読出し完了をバックアップ処理部３０４に通知する。一方、書込み対象のブロックが部分ブロックでないと判断された場合（Ｓ６にてＮＯ）、Ｓ２２に進む。
【００６７】
Ｓ８の処理の後、バックアップ処理部３０４は、読出された部分ブロックの全データをコピーしてバックアップする（Ｓ１０）。つまり、記憶部３６に新たなリストアデータを追加して、リストア情報３６０を更新する。このリストアデータには、図７に示したように、バックアップデータとしてのＳ８で読出された全データ（元データ）およびそのアドレス情報と、Ｓ２においてＲＦタグ８が検出された日時データと、Ｓ４において取得されたタグＩＤとが含まれる。
【００６８】
バックアップ処理が終わると、バックアップ処理部３０４は、バックアップ完了を書込み処理部３０５に通知する。これにより、書込み処理部３０５は、ＲＦタグ８に書込みコマンドを送信することで、部分ブロックのデータを書換える処理を実行する。具体的には、書込み処理部３０５は、Ｓ８で読出した部分ブロックのデータと新たなデータとをマージして、初期化後の部分ブロックに更新データを書込む（Ｓ１２）。ここで、ＲＦタグ８側では、書込みコマンドを受信してはじめてブロックを初期化するため、本実施の形態によれば、部分ブロックの初期化前に必ず部分ブロックの元データをバックアップすることができる。ＲＦタグ８の記憶処理部８１０が、フラッシュメモリ８２の部分ブロックに、受信したデータの書込みが終了すると、書込み成功を示すレスポンス情報をリーダライタ３に返信する。
【００６９】
たとえば所定時間内に書込み成功を示すレスポンス情報が受信されない場合、書込み結果は失敗として（Ｓ１４にて「失敗」）、Ｓ１２の書込み処理をリトライする（Ｓ１６にてＮＯ）。所定時間内に書込み成功を示すレスポンス情報が受信された場合には（Ｓ１４にて「成功」）、Ｓ３０に進む。書込み成功の場合、Ｓ１０のバックアップ処理にて生成されたリストアデータをリストア情報３６０から削除することが望ましい（Ｓ１５）。
【００７０】
リトライ回数がオーバーした場合（Ｓ１６にてＹＥＳ）、通知部３０６は、データ損失を上位機器１に通知する（Ｓ１８）。具体的には、交信エラーにより書込みが失敗したこと、および、データ損失の可能性があることを示すエラー情報を、書込み結果として上位機器１に返信する。ここでのエラー情報には、Ｓ１０のバックアップ処理により生成されたリストアデータを含めてもよい。エラー情報を受信した上位機器１の動作については、エラー通知処理として後述する。
【００７１】
Ｓ２２では、書込み処理部３０５が、たとえば公知の手法により通常ブロックに新たなデータを書込む。この場合も、たとえば所定時間内に書込み成功を示すレスポンス情報がＲＦタグ８より受信されない場合、書込み結果は失敗として（Ｓ２４にて「失敗」）、Ｓ２２の書込み処理をリトライする（Ｓ２６にてＮＯ）。所定時間内に書込み成功を示すレスポンス情報が受信された場合には（Ｓ２４にて「成功」）、Ｓ３０に進む。
【００７２】
リトライ回数がオーバーした場合（Ｓ２６にてＹＥＳ）、通知部３０６は、交信エラーによる書込み失敗を上位機器１に通知する（Ｓ２８）。具体的には、書込み結果として、交信エラーにより書込みが失敗したことを示すエラー情報を上位機器１に返信する。
【００７３】
Ｓ３０において、制御部３１は、書込みが終了したか否かを判断する。つまり、書込み範囲が属する全てのブロックへの書込み処理が終了したか否かを判断する。書込みが終了していない場合（Ｓ３０にてＮＯ）、Ｓ６に戻り、上述の処理を繰返す。書込みが終了した場合（Ｓ３０にてＹＥＳ）、書込み成功を示す書込み結果を上位機器１に返信し、一連のデータ書込み処理を終了する。
【００７４】
（エラー通知処理）
図９は、本発明の実施の形態に係る上位機器１において実行されるエラー通知処理を示すフローチャートである。なお、図９に示す処理手順は、予めプログラムとしてたとえばハードディスク１５に記憶されており、ＣＰＵ１０が当該プログラムを読出して実行することでデータ通知処理が実現される。また、データ通知処理は、リーダライタ３から、書込み結果としてエラー情報が受信された場合に開始される。
【００７５】
図９を参照して、ＣＰＵ１０は、受信したエラー情報がデータ損失エラーであるか否かを判断する（Ｓ１０２）。受信したエラー情報が単なる交信エラーであれば（Ｓ１０２にてＮＯ）、表示部１４に交信エラーによる書込み失敗を表示する（Ｓ１１０）。
【００７６】
これに対し、受信したエラー情報がデータ損失エラーであれば（Ｓ１０２にてＹＥＳ）、ＣＰＵ１０は、表示部１４に、交信エラーによる書込み失敗と、データ損失の可能性がある旨とを表示する（Ｓ１０４）。エラー情報にリストアデータが含まれる場合には、そのリストアデータに対応して、交信日時、タグＩＤ、アドレス情報および元データが表示されてもよい。または、過去のリストアデータも含めて、図７のような表が表示されてもよい。また、表示部１４に、リストア指示を受付けるためのリストアボタンがさらに表示されてもよい。
【００７７】
操作部１３の操作によってリストア指示が入力されると（Ｓ１０６にてＹＥＳ）、ＣＰＵ１０は、エラー情報を送信してきたリーダライタ３に対し、リストアコマンドを送信する（Ｓ１０８）。本実施の形態では、データ損失の要因が交信エラーによることがユーザに報知されるため、ユーザは、ＲＦタグ８の位置修正を行った上で、リストア指示を行うことができる。したがって、後述のリストア処理において、適切に、消去されたデータを復元することができる。なお、過去のリストア情報も併せて表示される場合には、ユーザは、リストア対象のデータを選択した上でリストア指示を入力するものとする。この場合、リストアコマンドには、対象となるリストアデータ（バックアップデータ）を特定するための情報（たとえば交信日時）が含まれるものとする。
【００７８】
リストアコマンドを受信したリーダライタ３の動作については、リストア処理として以下に説明する。
【００７９】
（リストア処理）
図１０は、本発明の実施の形態に係るリーダライタ３が実行するリストア処理を示すフローチャートである。なお、図１０に示す処理手順は、予めプログラムとして記憶部３６に記憶されており、制御部３１が当該プログラムを読出して実行することでリストア処理が実現される。また、リストア処理は、上位機器１から上記リストアコマンドがコマンド受信部３０１により受信された場合に開始される。
【００８０】
図１０を参照して、はじめに、書戻し処理部３０７が、記憶部３６のリストア情報３６０から、リストアコマンドに対応するリストアデータを読出す（Ｓ２０２）。つまり、リストア対象のＲＦタグ８のタグＩＤ、元データ、および元データのアドレス情報が読出される。なお、リストアコマンドに、リストアデータを特定するための情報が含まれない場合には、リストア情報３６０のうちたとえば最新のリストアデータが読出されてよい。
【００８１】
続いて、検出処理部３０２は、ＲＦタグ８の検出処理を実行する（Ｓ２０４）。ＲＦタグ８が検出されるとそのタグＩＤを取得する（Ｓ２０６）。書戻し処理部３０７は、取得されたタグＩＤと、読出されたタグＩＤとが一致しているか否かを判断する（Ｓ２０８）。一致していれば（Ｓ２０８にてＹＥＳ）、読出されたアドレス情報より特定されるブロックに対し、読出された元データを書戻す（Ｓ２１０）。これにより、書込み範囲外のデータが損失された部分ブロックのデータを完全に復元することができる。データが書戻されると、書戻し済のリストアデータをリストア情報３６０から削除する（Ｓ２１２）。
【００８２】
元データの書戻しが完了すると、通知部３０６は、リストア完了を上位機器１に通知する（Ｓ２１４）。リストア完了通知を受けた上位機器１は、表示部１４にその旨表示するとともに、ハードディスク１５内にもリストア情報が保持されている場合には、リストアが完了したリストアデータを削除することが望ましい。また、リストア完了通知を受けた上位機器１から、再び書込みコマンドをリーダライタ３に送信することで、図８に示したデータ書込み処理を再度実行することができる。その結果、適切に、ＲＦタグ８に更新データ（元データおよび新たなデータ）を書込むことができる。
【００８３】
Ｓ２０８においてタグＩＤが一致しないと判断された場合には（Ｓ２０８にてＮＯ）、通知部３０６は、タグＩＤの不一致を上位機器１に通知する（Ｓ２１６）。
【００８４】
なお、Ｓ２１０における書戻し処理においても、図８に示したデータ書込み処理と同様に、リトライ回数を設け、リトライ回数をオーバーした場合は、リストア失敗を上位機器１に通知してもよい。
【００８５】
上述のように、本実施の形態によれば、部分ブロックの元データをリーダライタ３にバックアップしておくことで、意図しないデータ損失が生じたとしても、ユーザは上位機器１においてリストア指示を入力するだけで、フラッシュメモリ８２に元データを書戻すことができる。したがって、ＲＦタグ８のハード構成やシステムの環境を変更することなく、容易な方法で、完全なデータ損失を回避することができる。
【００８６】
なお、アプリケーション側での他の対処方法として、書込み範囲が属する全てのブロックのデータを事前に読出しておいてバックアップする方法も考えられる。しかしながら、このような方法では、書込み範囲が大きい場合は読出しに手間がかかるため非効率である。これに対し、本実施の形態によれば、部分ブロックのみをバックアップ対象とし、かつ、公知の書込み処理において行われる読出し処理を利用するため、効率的に、損失の可能性があるデータをバックアップすることができる。
【００８７】
＜変形例＞
上記実施の形態では、部分ブロックへのデータ書込み最中に、交信が中断された場合におけるデータ損失に対処するものであったが、本変形例では、リーダライタ３の瞬停が生じた場合におけるデータ損失にも対応できる。瞬停とは、リーダライタ３の動作中に電源が一時遮断されることをいう。
【００８８】
本変形例では、リーダライタ３において、書込み処理部３０５による部分ブロックへの書込み処理が行なわれている間、記憶部３６は所定の情報を保持する。所定の情報とは、部分ブロックへの書込み最中（読出しは終了している）であることを示す情報である。本変形例では、たとえば、記憶部３６上の書込みフラグをＯＮすることで、部分ブロックへの書込み最中であることを不揮発的に記憶する。書込みフラグを用いたデータ書込み処理について、図１１を用いて説明する。
【００８９】
図１１は、本発明の実施の形態の変形例に係るリーダライタ３が実行するデータ書込み処理を示すフローチャートである。図１１において、図８に示した処理と同様の処理については同じステップ番号を付してある。したがって、それらについての説明は繰り返さない。
【００９０】
図１１を参照して、本変形例では、図８に示したＳ１０（バックアップ処理）とＳ１２（書込み処理）との間に、新たなＳ１１が追加されている。Ｓ１１において、制御部３１は、書込みフラグをＯＮにする。なお、本変形例において、データ書込み処理が開始された時点では、書込みフラグはＯＦＦである。
【００９１】
また、図８に示したＳ１５（リストアデータ削除）とＳ３０（書込み終了の判断）との間に、新たなＳ２０が追加されている。Ｓ２０において、制御部３１は、書込みフラグをＯＦＦにする。また、図８のＳ１６（リトライ回数オーバー）とＳ１８（データ損失通知）との間に、新たなＳ１７が追加されている。Ｓ１７においても、制御部３１は、書込みフラグをＯＦＦにする。
【００９２】
このように、本実施の形態では、部分ブロックへのデータ書込み最中（Ｓ１２、Ｓ１４およびＳ１６）にのみ、書込みフラグがＯＮされる。したがって、書込み最中にリーダライタ３の瞬停が生じた場合、記憶部３６の書込みフラグがＯＮのままとされる。
【００９３】
次に、瞬停後に再び電源が投入された場合のリーダライタ３の起動処理について説明する。
【００９４】
図１２は、本発明の実施の形態の変形例に係るリーダライタ３の起動処理を示すフローチャートである。なお、図１２に示す処理もまた、予めプログラムとして記憶部３６に記憶されており、制御部３１が当該プログラムを読出して実行することで起動処理が実現される。
【００９５】
図１２を参照して、はじめに、制御部３１は、記憶部３６の書込みフラグを確認する（Ｓ３０２）。書込みフラグがＯＦＦであった場合（Ｓ３０４にて「ＯＦＦ」）、通常起動処理へ移行する（Ｓ３１０）。これに対し、書込みフラグがＯＮであった場合には（Ｓ３０４にて「ＯＮ」）、データ損失を上位機器１に通知する（Ｓ３０６）。ここでは、システムダウンにより書込みが失敗したこと、および、データ損失の可能性があることを示すエラー情報を、書込み結果として上位機器１に返信する。その後、書込みフラグをＯＦＦし（Ｓ３０８）、通常起動処理へ移行する（Ｓ３１０）。
【００９６】
上位機器１は、Ｓ３０６で通知されたエラー情報を受信した場合、表示部１４には、データ損失の可能性がある旨と、システムダウンによる書込み失敗とを表示する。表示部１４に、過去のリストア情報も表示する場合には、それぞれの元データが、交信エラーにより損失されたデータか、システムダウンにより損失されたデータかを区別して表示することが望ましい。
【００９７】
上記実施の形態およびその変形例において、各フローチャートに示した処理をプログラムとして提供することもできる。このようなプログラムは、ＣＤ−ＲＯＭなどの光学媒体や、メモリカードなどのコンピュータ読取り可能な一時的でない（non-transitory）記録媒体にて記録させて提供することができる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００９８】
リーダライタ３において実行されるプログラム（データ書込みプログラムなど）は、たとえば、上位機器１より通信Ｉ／Ｆ３５を介して送信可能であり、リーダライタ３は、記憶部３６に記憶されていたプログラムを、受信したプログラムに更新することができる。
【００９９】
なお、本発明にかかるプログラムは、コンピュータのオペレーティングシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【０１００】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【０１０１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１０２】
１  上位機器、２  ハブ、３  ＲＦタグ、８  ＲＦタグ、１０  ＣＰＵ、１１  ＲＯＭ、１２  ＲＡＭ、１３  操作部、１４  表示部、１５  ハードディスク、１６，３５  通信Ｉ／Ｆ、１７  ドライブ装置、３０  交信制御装置、３１，８１  制御部、３２  送信回路、３３  受信回路、３４  受信レベル検出回路、３６  記憶部、３７  計時部、３８  表示部、３９  電源部、７０  アンテナ部、７１  アンテナコイル、８０  無線通信ＩＣ、８２  フラッシュメモリ、８３  無線処理部、８４  電源部、９０  アンテナ部、３０１  コマンド受信部、３０２  検出処理部、３０３  特定部、３０４  バックアップ処理部、３０５  書込み処理部、３０６  通知部、３６０  リストア情報、８１０  記憶処理部、ＳＹＳ  ＲＦＩＤシステム。
【図１】
2014146160.tif 000003
【図２】
2014146160.tif 000004
【図３】
2014146160.tif 000005
【図４】
2014146160.tif 000006
【図５】
2014146160.tif 000007
【図６】
2014146160.tif 000008
【図７】
2014146160.tif 000009
【図８】
2014146160.tif 000010
【図９】
2014146160.tif 000011
【図１０】
2014146160.tif 000012
【図１１】
2014146160.tif 000013
【図１２】
2014146160.tif 000014