(57)【特許請求の範囲】
【請求項１】
記憶装置を備える交換部品が装着される画像形成装置であって、
制御プログラムを実行して前記画像形成装置の動作を制御する演算処理ユニットと、
該演算処理ユニットの制御に従って該記憶装置へのデータの読み書きを行う読出書込装置と、
を備え、
前記演算処理ユニットは、前記記憶装置に対してデータの書込を行う場合には、前記読出書込装置が前記記憶装置に対し１回の送信で書き込める書込可能データサイズより大きい、暗号強度の確保のためにあらかじめ定めた暗号化用データサイズの書込対象データに対してデータ検査用の誤り検出符号を付加し、該誤り検出符号が付加された書込対象データを暗号化して暗号化データを生成し、該暗号化データを前記書込可能データサイズごとの書込単位に分割し、書込単位ごとに、当該書込単位に通信誤り検出用の誤り検出符号を付加したものを含んだ書込コマンドを、前記記憶装置に対して送信すべき誤り検出符号付きコマンドとして生成して前記読出書込装置へ送信し、
前記読出書込装置は、前記演算処理ユニットから受信した誤り検出符号付きコマンドに含まれる前記書込単位と前記通信誤り検出用の誤り検出符号とを用いて誤り検出を行い、前記誤り検出で誤りを検出した場合は、前記演算処理ユニットに対して誤りを検出した旨を通知し、該誤り検出で誤りを検出しなかった場合は、前記受信した誤り検出符号付きデータを前記記憶装置へと送信し、
前記演算処理ユニットは、前記読出書込装置から誤りを検出した旨の通知を取得した場合は、所定のリカバリー処理を実行し、
前記演算処理ユニットは、前記記憶装置に対して書き込んだ前記暗号化データを読み出した場合に、読み出した暗号化データを復号し、この復号の結果得られる前記書込対象データと前記データ検査用の誤り検出符号とを用いて誤り検出を行う、
ことを特徴とする画像形成装置。
【請求項２】
前記読出書込装置は、送信した誤り検出符号付きコマンドに対する誤り検出符号付き応答を前記記憶装置から受信した場合、該誤り検出符号付き応答に対して誤り検出を行い、前記誤り検出で誤りを検出した場合は、前記演算処理ユニットに対して誤りを検出した旨を通知し、該誤り検出で誤りを検出しなかった場合は、前記受信した誤り検出符号付き応答を前記演算処理ユニットに提供し、
前記演算処理ユニットは、
前記読出書込装置から前記誤り検出符号付き応答を取得した場合は、該誤り検出符号付き応答に対して誤り検出を行い、該誤り検出で誤りを検出しなかった場合は、該応答を前記誤り検出符号付きコマンドに対する応答として受け入れて制御を続行し、該誤り検出で誤りを検出した場合は、所定のリカバリー処理を実行する、
ことを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記所定のリカバリー処理は、前記誤り検出符号付きコマンドを前記読出書込装置へと再送信する処理であることを特徴とする、請求項１又は２に記載の画像形成装置。
【請求項４】
前記読出書込装置は、前記演算処理ユニットから読出可能な状態レジスタを備え、前記誤り検出により誤りを検出した場合該状態レジスタに誤りを検出した旨の情報を登録することにより前記通知を行い、
前記演算処理ユニットは、前記状態レジスタを監視することで前記通知を取得する、
ことを特徴とする請求項１〜３のいずれか１項に記載の画像形成装置。
【請求項５】
記憶装置を備える交換部品が装着される画像形成装置であって、制御プログラムを実行して前記画像形成装置の動作を制御する演算処理ユニットと、該演算処理ユニットの制御に従って該記憶装置へのデータの読み書きを行う読出書込装置と、を備える画像形成装置の制御方法であって、
（ａ）前記演算処理ユニットが、前記記憶装置に対して送信すべき誤り検出符号付きコマンドを生成して前記読出書込装置へ送信するステップと、であって、前記記憶装置に対してデータの書込を行う場合に、前記読出書込装置が前記記憶装置に対し１回の送信で書き込める書込可能データサイズより大きい、暗号強度の確保のためにあらかじめ定めた暗号化用データサイズの書込対象データに対してデータ検査用の誤り検出符号を付加し、該誤り検出符号が付加された書込対象データを暗号化して暗号化データを生成し、該暗号化データを前記書込可能データサイズごとの書込単位に分割し、書込単位ごとに、当該書込単位に通信誤り検出用の誤り検出符号を付加したものを含んだ書込コマンドを、前記記憶装置に対して送信すべき誤り検出符号付きコマンドとして生成して前記読出書込装置へ送信することを特徴とするステップと、
（ｂ）前記読出書込装置が、前記演算処理ユニットから受信した誤り検出符号付きコマンドに含まれる前記書込単位と前記通信誤り検出用の誤り検出符号とを用いて誤り検出を行うステップと、
（ｃ）ステップ（ｂ）で誤りが検出された場合に、前記読出書込装置が、前記演算処理ユニットに対して誤りを検出した旨を通知するステップと、
（ｄ）ステップ（ｂ）で誤りが検出されなかった場合に、前記読出書込装置が、前記受信した誤り検出符号付きデータを前記記憶装置へと送信するステップと、
（ｅ）前記演算処理ユニットが、前記読出書込装置から誤りを検出した旨の通知を取得した場合、所定のリカバリー処理を実行するステップと、
（ｅ２）前記演算処理ユニットは、前記記憶装置に対して書き込んだ前記暗号化データを読み出した場合に、読み出した暗号化データを復号し、この復号の結果得られる前記書込対象データと前記データ検査用の誤り検出符号とを用いて誤り検出を行うステップと、
を含む方法。
【請求項６】
（ｆ）前記読出書込装置が、送信した誤り検出符号付きコマンドに対する誤り検出符号付き応答を前記記憶装置から受信した場合、該誤り検出符号付き応答に対して誤り検出を行うステップと、
（ｇ）ステップ（ｆ）で誤りが検出された場合に、前記読出書込装置が、前記演算処理ユニットに対して誤りを検出した旨を通知するステップと、
（ｈ）ステップ（ｆ）で誤りが検出されなかった場合に、前記読出書込装置が、前記受信した誤り検出符号付き応答を前記演算処理ユニットに提供するステップと、
（ｉ）前記演算処理ユニットが、前記読出書込装置から前記誤り検出符号付き応答を取得した場合に、該誤り検出符号付き応答に対して誤り検出を行うステップと、
（ｊ）ステップ（ｉ）で誤りが検出されなかった場合に、前記演算処理ユニットが、前記応答を前記誤り検出符号付きコマンドに対する応答として受け入れて制御を続行するステップと、
（ｋ）ステップ（ｉ）で誤りが検出された場合に、前記演算処理ユニットが、所定のリカバリー処理を実行するステップと、
を更に含む請求項５記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置に関し、特に画像形成装置に着脱自在に装着される交換部品の記憶部に対するデータの書き込みおよび読み出しに関する。
【背景技術】
【０００２】
プリンタや複写機、デジタル複合機、ファクシミリなどの画像形成装置には、トナーカートリッジや感光体ドラムカートリッジなどの交換部品が着脱自在に装着されるものがある。また交換部品の使用量（何枚の印刷に使ったかなど）を示すカウント値やユーザ情報などの管理データを記憶する不揮発性記憶媒体をその交換部品に設け、画像形成装置本体からこの不揮発性記憶媒体内の管理データを読み出したり、書き込んだりすることが行われている。
【０００３】
画像形成装置本体の制御回路系と交換部品の不揮発性記憶媒体との通信接続は、従来は有線接続で行われていた。しかし、有線接続では、画像形成装置本体側のコネクタに交換部品側の端子とを確実に接続する必要があり、例えば本体に差し込んでから回すことで本体に固定するようなタイプの交換部品では、そのような確実な接続を実現するため、交換部品の形状等において設計上の制限が厳しかった。
【０００４】
これに対し、無線通信技術の利用が考えられる。例えば、ＲＦＩＤ(Radio Frequency Identification)タグ（非接触ＩＣカードとも呼ばれる）を交換部品に取り付け、これを画像形成装置本体に設けたリーダライタにより読み書きするシステムである。このようなシステムを採用すれば、有線接続の場合よりも設計の自由度が高まる。
【０００５】
このように無線を利用した場合、通信経路上でのノイズ混入により、ＲＦＩＤタグとの間で送受信されるデータに誤りが生じる可能性が高くなる。そこで、対策として誤り検出とそれに基づくリトライ（処理の再実行）などの処理が必要になる。このようなＲＦＩＤシステムにおける送受信データの誤り検出に関しては、ISO 14443やISO 15693に規定されている。
【０００６】
また特許文献１には、リーダライタが返送要求信号Ｒ及び制御用信号Ｃを組み合わせたデータをＲＦＩＤタグに伝送し、このデータをＲＦＩＤタグで復号して返送データとしてリーダライタに返送し、リーダライタがこの返送データを送信した伝送データと比較することで、ＲＦＩＤタグに正しいデータが伝送されたか否かを確認する伝送データ確認システムが開示されている。
【０００７】
また特許文献２には、データの書き込み時には、リーダライタ装置がデータと共に符号誤り訂正用のＥＣＣを付加して送信して非接触ＩＣカードのデータメモリに書き込み、データの読み出し時には、リーダライタ装置はデータメモリに格納されているデータ及びＥＣＣを受信し、回線で生じた符号誤りを訂正する非接触ＩＣカードシステムが開示されている。
【０００８】
【特許文献１】特開平９−６９１４１号公報
【特許文献２】特開平１１−１２０３０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
画像形成装置において、リーダライタは、交換部品のＲＦＩＤタグと通信できる範囲内に設置する必要があるため、必ずしも画像形成装置の動作を制御するＣＰＵ（中央演算処理ユニット）と同一基板内に搭載できるとは限らず、ＣＰＵを搭載した基板から通信線を介して遠方に配置しなければならない場合もある。画像形成装置には、感光体や転写ロールの帯電のための高電圧回路や、露光系や搬送系を駆動するためのモータなどのノイズ源が存在するため、リーダライタ−ＲＦＩＤタグ間のみならず、ＣＰＵ−リーダライタ間の通信経路でもノイズ混入のおそれがある。特にＣＰＵとリーダライタとが離れている場合は、その間でノイズ源の影響を受ける可能性が高い。
【００１０】
ところが、上述のISO 14443やISO 15693、特許文献１、２が注目しているのはリーダライタ−ＲＦＩＤタグ間での誤り検出又は訂正であり、ＣＰＵ−リーダライタ間での通信データ誤りについては考慮が払われていない。
【課題を解決するための手段】
【００１１】
本発明は、記憶装置を備える交換部品が装着される画像形成装置であって、制御プログラムを実行して前記画像形成装置の動作を制御する演算処理ユニットと、該演算処理ユニットの制御に従って該記憶装置へのデータの読み書きを行う読出書込装置と、を備え、前記演算処理ユニットは、前記記憶装置に対してデータの書込を行う場合には、前記読出書込装置が前記記憶装置に対し１回の送信で書き込める書込可能データサイズより大きい、暗号強度の確保のためにあらかじめ定めた暗号化用データサイズの書込対象データに対してデータ検査用の誤り検出符号を付加し、該誤り検出符号が付加された書込対象データを暗号化して暗号化データを生成し、該暗号化データを前記書込可能データサイズごとの書込単位に分割し、書込単位ごとに、当該書込単位に通信誤り検出用の誤り検出符号を付加したものを含んだ書込コマンドを、前記記憶装置に対して送信すべき誤り検出符号付きコマンドとして生成して前記読出書込装置へ送信し、前記読出書込装置は、前記演算処理ユニットから受信した誤り検出符号付きコマンドに含まれる前記書込単位と前記通信誤り検出用の誤り検出符号とを用いて誤り検出を行い、前記誤り検出で誤りを検出した場合は、前記演算処理ユニットに対して誤りを検出した旨を通知し、該誤り検出で誤りを検出しなかった場合は、前記受信した誤り検出符号付きデータを前記記憶装置へと送信し、前記演算処理ユニットは、前記読出書込装置から誤りを検出した旨の通知を取得した場合は、所定のリカバリー処理を実行し、前記演算処理ユニットは、前記記憶装置に対して書き込んだ前記暗号化データを読み出した場合に、読み出した暗号化データを復号し、この復号の結果得られる前記書込対象データと前記データ検査用の誤り検出符号とを用いて誤り検出を行う。
【００１２】
本発明の好適な態様では、前記読出書込装置は、送信した誤り検出符号付きコマンドに対する誤り検出符号付き応答を前記記憶装置から受信した場合、該誤り検出符号付き応答に対して誤り検出を行い、前記誤り検出で誤りを検出した場合は、前記演算処理ユニットに対して誤りを検出した旨を通知し、該誤り検出で誤りを検出しなかった場合は、前記受信した誤り検出符号付き応答を前記演算処理ユニットに提供し、前記演算処理ユニットは、前記読出書込装置から前記誤り検出符号付き応答を取得した場合は、該誤り検出符号付き応答に対して誤り検出を行い、該誤り検出で誤りを検出しなかった場合は、該応答を前記誤り検出符号付きコマンドに対する応答として受け入れて制御を続行し、該誤り検出で誤りを検出した場合は、所定のリカバリー処理を実行する。
【００１３】
前記所定のリカバリー処理は、例えば、前記誤り検出符号付きコマンドを前記読出書込装置へと再送信する処理である。
【００１４】
また、好適な態様では、前記読出書込装置は、前記演算処理ユニットから読出可能な状態レジスタを備え、前記誤り検出により誤りを検出した場合該状態レジスタに誤りを検出した旨の情報を登録することにより前記通知を行い、前記演算処理ユニットは、前記状態レジスタを監視することで前記通知を取得する。
【発明の効果】
【００１５】
本発明によれば、演算処理ユニットが誤り検出符号付きコマンドを発行し、読出書込装置が、このコマンドに対して誤り検出符号による誤り検出を行い、誤りが検出されなければ、その誤り検出符号付きコマンドをそのまま交換部品の記憶装置へと送信する。したがって、読出書込装置と交換部品の記憶装置との間だけでなく、演算処理ユニットと読出書込装置との間でも、通信誤りを検出することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、本発明の好適な実施の形態を説明する。
【００１７】
図１は、本発明が適用される画像形成装置の要部構成を示す機能ブロック図である。ここで画像形成装置は、プリンタ、複写機、ファクシミリ、デジタル複写機など、用紙に対して画像を印刷するための機構を備えた装置である。印刷の方式には、電子写真方式やインクジェット方式などの様々な方式があるが、本発明はそのような方式に依存するものではない。
【００１８】
実施の形態の画像形成装置は、画像形成装置本体１００と交換部品２００を備えている。画像形成装置本体１００は、筐体、ユーザインタフェース用のディスプレイやボタンなど、画像形成装置における実質的に固定的な部分である。交換部品２００は、この画像形成装置本体１００に着脱自在に装着可能であり、消耗した場合に交換されるユニットである。交換部品２００としては、例えばトナーカートリッジ、感光体ドラムカートリッジ、現像ユニット、定着ユニットなどを例示することができる。
【００１９】
交換部品２００には、ＲＦＩＤタグ２１０が取り付けられている。このＲＦＩＤタグ２１０は、当該交換部品２００の消耗量（該部品を何枚の印刷に使ったか、など）や顧客情報などの管理データを記憶するための記憶装置として用いられる。ＲＦＩＤ２１０は、送受信回路２１２，読出書込回路２１４，及びメモリ部２１６を備えている。メモリ部２１６は、データを記憶するための装置であり、不揮発性の記憶媒体を備えている。送受信回路２１２は、画像形成装置本体１００の読出書込装置１２０との間で、ＲＦＩＤの規格に従った無線通信を行うための送受信回路であり、従来のＲＦＩＤタグの送受信回路と同じものでよい。読出書込回路２１４は、メモリ部２１６に対するデータの読み書きを行う回路であり、送受信回路２１２を介して画像形成装置１００側から受け取ったコマンドに従って動作する。
【００２０】
メモリ部２１６は、ＲＯＭ（Read Only Memory）領域とＮＶＲＡＭ（Nonvolatile Random Access Memory）領域とを含んでいる。ＲＯＭ領域は、ユーザによる書き換えが不可能な記憶領域であり、ＲＦＩＤタグ２１０に一意的に割り当てられたシリアルＩＤが焼き付けられている。ＮＶＲＡＭ領域は、書き換えが可能な不揮発性の記憶領域であり、例えばＥＥＰＲＯＭ （Electrically Erasable Programmable Read-Only Memory）などにより構成することができる。このＮＶＲＡＭ領域に上述の管理データが記憶される。本実施の形態では、同じ内容の管理データに対応するデータを、メモリ部２１２のＰ箇所（Ｐは２以上の整数）に書き込むことにより（記憶データ２１８−１，２，・・・，Ｐ）、冗長性を確保し、データの安全性を高めている。
【００２１】
画像形成装置本体１００は、制御基板１１０と読出書込装置１２０を備える。
【００２２】
制御基板１１０上のバス１１９には、ＣＰＵ（中央演算処理ユニット）１１２、ＲＯＭ１１４、ＲＡＭ(Random Access Memory)１１６、ＮＶＭ(Nonvolatile Memory:不揮発性メモリ）１１８が接続されている。ＲＯＭ１１４には、この画像形成装置の全体的な動作制御のための制御プログラムが格納されている。ＣＰＵ１１２は、ＲＡＭ１１６を作業用メモリ領域として利用しながら、その制御プログラムを実行することで、画像形成装置の各部の動作を制御する。この制御プログラムの中には、読出書込装置１２０を介してＲＦＩＤタグ２１０を制御するための処理のプログラムを含まれている。ＮＶＭ１１８は、書換可能な不揮発性メモリであり、画像形成装置の制御や管理のために記憶すべき情報（例えば各種の制御パラメータ設定値や印刷出力枚数カウント値）が書き込まれる。
【００２３】
読出書込装置１２０は、交換部品２００のＲＦＩＤタグ２１０に対して無線通信によるデータの読み書きを行うための装置であり、該交換部品２００の装着場所の近傍に配設される。制御部１２２と送受信回路１２４を有する。送受信回路１２４は、ＲＦＩＤタグ２１０との間での無線通信のために、無線信号の送信及び受信を行う回路である。制御部１２２は、送受信回路１２４を制御してＲＦＩＤタグ２１０との信号の送受信を行わせる回路である。制御部１２２は、ＣＰＵ１１２と通信線で接続されており、この通信線を介してＣＰＵ１１２との間でデータのやりとりを行う。送受信回路１２４としては、従来のリーダライタの送受信回路と同じものを用いることができる。
【００２４】
このような画像形成装置では、従来ならばＣＰＵ１１２が読出書込装置１２０に指示を送ると、読出書込装置１２０がその指示に応じたコマンドを作成し、これに通信誤り検査用のＣＲＣ(Cyclic Redundancy Check)符号を付加してＲＦＩＤタグ２１０に送っていた。これに対し、本実施の形態では、従来読出書込装置１２０が生成していた通信誤り検査用のＣＲＣ符号付きのコマンドをＣＰＵ１１２が生成することとする。すなわち、ＲＦＩＤタグ２１０が読出書込装置１２０から受け取るコマンドデータを、ＣＰＵ１１２が生成するのである。ＲＯＭ１１４等に記憶された制御プログラムには、このようなＣＲＣ符号付きのコマンドデータ生成のためのプログラムが含まれている。そして、読出書込装置１２０は、ＣＰＵ１１２から送られてくるＣＲＣ符号付きコマンドを受け取ると、ＣＰＵ１１２と読出書込装置１２０の間での通信誤りの有無を調べるために、そのコマンドに対してＣＲＣの検査を行う。この検査で誤りが検出されなければ、読出書込装置１２０がそのＣＲＣ符号付きコマンドをそのまま送受信回路１２４によりＲＦＩＤタグ２１０に送信する。
【００２５】
また逆に、読出書込装置１２０は、送信したコマンドに対するＲＦＩＤタグ２１０から応答（この応答にはＣＲＣ符号が付加されている）を受け取ると、その応答に対してＣＲＣの検査を行い、その検査で誤りが検出されなければ、そのＣＲＣ符号付きの応答データをそのままＣＰＵ１１２に渡す。ＣＰＵ１１２は、その応答データのＣＲＣ符号を用いて検査を行い、読出書込装置１２０からＣＰＵ１１２の間での通信誤りの有無を調べる。
【００２６】
このような構成を取ることで、従来からＣＲＣ符号による誤り検出が行われていた読出書込装置１２０とＲＦＩＤタグ２１０の間の経路に加え、ＣＰＵ１１２と読出書込装置１２０の間の経路も誤り検出を行うことができる。しかも、この構成では、読出書込装置１２０からＲＦＩＤタグ２１０に送信されるＣＲＣ符号付きコマンドそのものをＣＰＵ１１２が生成するので、読出書込装置１２０にＣＲＣ符号生成のための回路やプログラムを設ける必要がなくなり、読出書込装置１２０の構成を簡素化できるというメリットもある。
【００２７】
また、本実施の形態では、ＲＦＩＤタグ２１０のメモリ部２１６に書き込むデータに対してＣＲＣ符号を組み込み、暗号化を施す。すなわち、メモリ部２１６には、ＣＲＣ符号付きデータの暗号化結果が記憶される。このＣＲＣ符号は、前述のコマンドや応答に付加されるＣＲＣ符号とは別に付加されるものである。前述のコマンドや応答に付加されるＣＲＣ符号は、通信経路での誤りを検出するためのものであったのに対し、メモリ部２１６に書き込まれるデータ自体に付加されるこのＣＲＣ符号は、メモリ部２１６に書き込まれたデータ自体の破壊や改ざんを検出するためのものである。
【００２８】
以下、本実施の形態についてさらに詳細に説明する。
【００２９】
図２は、読出書込装置１２０の制御部１２２のハードウエア構成の一例を示すブロック図である。図に示すように、制御部１２２は、制御回路１２２２，バッファメモリ１２２４，シリアルレジスタ１２２５，状態レジスタ１２２６，及びＣＲＣ検査回路１２２８を備えている。
【００３０】
バッファメモリ１２２４は、制御基板１１０のＣＰＵ１１２から受信したデータ、及びＲＦＩＤタグ２１０から受信したデータを一時的に保持するための、ＦＩＦＯ（先入れ先出し）方式のメモリである。シリアルレジスタ１２２５は、ＣＰＵ１１２−制御部１２２間のデータ並び順と、制御部１２２−ＲＦＩＤタグ２１０間のデータ並び順との間の切換を行うために設けられた双方向のシリアルレジスタである。ＣＲＣ検査回路１２２８は、ＣＰＵ１１２から受信したコマンド、及びそのコマンドに対してＲＦＩＤタグ２１０から受信した応答に対し、通信誤り有無の検出のためにＣＲＣ符号の検査を行う回路である。ＣＲＣ検査回路１２２８は、シリアルレジスタ１２２５内のデータに基づき、ＣＲＣの誤り検査を実行する。状態レジスタ１２２６は、読出書込装置１２０の状態（ステータス）を示す状態情報が登録されるレジスタである。状態レジスタ１２２６は、制御基板１１０上のＣＰＵ１１２から読みとり可能となっている。状態レジスタ１２２６は、ＣＰＵ１１２に通知すべき各状態項目ごとにあらかじめ割り当てられたビットを有している。例えば、ＣＰＵ１１２から受信したコマンドについてＣＲＣ誤りを検出したか否かを示すビット、ＲＦＩＤタグ２１０から受信した応答についてＣＲＣ誤りを検出したか否かを示すビット、ＲＦＩＤタグ２１０との通信が所定の時間内に完了しなかったこと（タイムアウト）を示すビット、ＣＰＵ１１２から受信したデータがバッファメモリ１２２４からオーバーフローしたことを示すビット、ＲＦＩＤタグ２１０から受信したデータがバッファメモリ１２２４からオーバーフローしたことを示すビット、ビジー状態（ＲＦＩＤタグ２１０と通信中でＣＰＵ１１２のコマンドを受け付けられないなど）であることを示すビット、等である。ＣＰＵ１１２は、例えば定期的に、状態レジスタ１２２６の各ビットの値を読み取ることで、ＣＰＵ１１２と読出書込装置１２０とＲＦＩＤタグ２１０との間での通信の状態を知ることができる。
【００３１】
制御回路１２２２は、制御部１２２全体の動作制御を行う回路である。制御回路１２２２は、ＣＰＵ１１２からコマンドのデータを受け取った場合、そのデータをバッファメモリ１２２４に入れる。そして、そのバッファメモリ１２２４内のデータを送受信回路１２４に渡す際には、バッファメモリ１２２４内のデータをいったんシリアルレジスタ１２２５に入れ、このシリアルレジスタ１２２５から送受信回路１２４へとそのデータをシリアルに供給する。このとき、制御回路１２２２は、シリアルレジスタ１２２５内のデータに対するＣＲＣの検査を、ＣＲＣ検査回路１２２８に実行させ、その結果誤りが検出された場合は、その誤りの情報を状態レジスタ１２２６にセットする。
また、ＲＦＩＤタグ２１０から送信された応答（レスポンス）のデータは、送受信回路１２４で受信され、デジタルデータに変換された上でシリアルレジスタ１２２５に入力される。制御回路１２２２は、そのシリアルレジスタ１２２５内の応答データをバッファメモリ１２２４に格納する。またこのとき制御回路１２２２は、シリアルレジスタ１２２５内のデータに対するＣＲＣ検査をＣＲＣ検査回路１２２８に実行させ、その結果誤りが検出された場合は、その誤りを示す情報を状態レジスタ１２２６に登録する。
また、制御回路１２２２は、ＲＦＩＤタグ２１０との通信がタイムアウトすると、状態レジスタ１２２６におけるタイムアウトビットをセットする。このように制御回路１２２２は、制御部１２２各部の状況に基づき状態レジスタ１２２６へ状態情報を登録する。
【００３２】
以上に説明した制御部１２２は、例えばＡＳＩＣ(Application Specific Integrated Circuit)の形で実現することができる。
【００３３】
次に、この画像形成装置がＲＦＩＤタグ２１０にデータの書込を行う時の処理手順を説明する。
【００３４】
図３は、データ書込時にＣＰＵ１１２が実行する処理の手順を示すフローチャートである。この手順、及び後で説明するＣＰＵ１１２の他の処理の手順は、ＲＯＭ１１４に保持された制御プログラム中に記述されている。また、図４は、ＲＦＩＤタグ２１０へのデータ書込のための書込コマンドデータの生成処理におけるデータの変遷の様子を示した図である。
【００３５】
データ書込処理では、まずＣＰＵ１１２は、ＲＦＩＤタグ２１０へ書き込むべきデータ（書込対象データ３００）を取得する（Ｓ１０）。すなわち、データの書き込みタイミングになると、制御プログラムのメインルーチンから、この図３の処理手順に対応したルーチンが呼び出され、ＲＡＭ１１６又はＮＶＭ１１８上にある書込対象データ３００のアドレスが、このプログラムに渡される。ここで、書込対象データ３００は、所定の予めサイズのデータである。このサイズは、後述する暗号化処理のために定められたサイズであり、適切な暗号強度を実現するために必要なサイズである（周知のように暗号化の単位となるデータサイズが小さいと、暗号強度が低くなる）。メインルーチンは、そのサイズのデータごとに図３の書込処理のルーチンを呼び出す。なお、書き込むべきデータのサイズがその暗号強度から要請される所定サイズより小さい場合は、例えばデータのないビットを所定値（例えば‘０’）で埋めることにより、所定サイズの書込対象データ３００を生成する。次にＣＰＵ１１２は、書込対象データ３００に対するＣＲＣ符号３０５を計算し、これを書込対象データ３００に付加する（Ｓ１２）。計算するＣＲＣ符号３０５は、予め定められたサイズとする。
【００３６】
次にＣＰＵ１１２は、今回のデータを書き込むべきメモリ部２１６内の書込先アドレス（仮にこのアドレスの値をＡとする）を取得する（Ｓ１４）。
【００３７】
本実施の形態では、同じ書込対象データ３００をメモリ部２１６内の異なるＰ箇所（Ｐは２以上の整数）に書き込むこととしている。そして、１つの書込対象データ３００に対するＰ個の書込先アドレスと、それらＰ箇所のアドレスに対する書込の順序についての情報は、ＲＯＭ１１４ないしＮＶＭ１１８に書き込まれている。Ｓ１４では、ＣＰＵ１１２は、ＲＯＭ１１４ないしＮＶＭ１１８から、その順序に従って、当該書込対象データ３００に対応する書込先アドレスを順に１つずつ取り出す。
【００３８】
次にＣＰＵ１１２は、ＣＲＣ符号３０５付きの書込対象データ３００を暗号化して、暗号化データ３１０を生成する（Ｓ１６）。この暗号化の際、１つの好適な例として、本実施の形態では、Ｓ１４で取得した書込先アドレスの値を暗号処理のパラメータとして利用する。利用の仕方としては、例えば暗号処理に用いる暗号鍵をその書込先アドレスに基づき作成するという方法や、暗号処理にブロック暗号方式のアルゴリズムを用いる場合に、暗号処理の初期ベクトルをその書込先アドレスから作成するという方法などがある。このように書込先アドレスを暗号処理のパラメータとして用いることで、同じ書込対象データ３００から生成されるＰ箇所の書込先への暗号化データの値が、それぞれ異なったものとなる。このため、同じ書込対象データをＰ箇所に書き込むにもかかわらず、暗号が見破られにくくなる。また、書込先アドレスのほかに、ＲＦＩＤタグ２１０が記憶する該タグ固有の情報を暗号処理のパラメータとして利用すれば、同じ値の書込対象データ３００をＲＦＩＤタグ２１０に書き込んでも、ＲＦＩＤタグ２１０が異なれば書き込まれたデータの値が異なるので、より暗号強度を高めることができる。なお、ＲＦＩＤタグ２１０が記憶する固有のデータとしては、該タグに一意的に割り当てられたシリアルＩＤや、画像形成装置のベンダ（販売者）を示すベンダコード（ＯＥＭコードとも呼ばれる）などがある。シリアルＩＤはＲＦＩＤタグ２１０のメモリ部２１６のＲＯＭ領域に焼き付けられており、これを改変したり他のＲＦＩＤタグにコピーしたりすることはきわめて困難なので、このシリアルＩＤを暗号処理のパラメータに用いることは、不正防止の面で有効性が高い。シリアルＩＤやベンダＩＤは、交換部品２００が画像形成装置本体１００に装着された際、あるいは交換部品２００が装着された画像形成装置本体１００の電源が投入された際に実行される読出処理により読み出され、ＲＡＭ１１６又はＮＶＭ１１８に記憶されている。
【００３９】
なお、Ｓ１６での暗号化処理には、公開鍵方式と共通鍵方式のどちらのアルゴリズムを利用してもよい。
【００４０】
データの暗号化が終わると、ＣＰＵ１１２は、得られた暗号化データ３１０をＲＦＩＤタグ２１０のアドレスＡに書き込むための処理を実行する（Ｓ１８）。この書込処理は後で詳しく説明する。
【００４１】
アドレスＡへの書込が完了すると、ＣＰＵ１１２は、今書き込んだデータをＲＦＩＤタグ２１０のアドレスＡから読み出す処理（リードバック）を実行する（Ｓ２０）。このリードバックは、ＲＦＩＤタグ２１０に正しいデータが書き込まれたか否かを検査するためのものである。このリードバック処理についても後で詳しく説明する。
【００４２】
アドレスＡに書き込まれたデータがＳ２０で読み出されると、ＣＰＵ１１２は、この読出データをＳ１８で書き込んだ暗号化データ３１０と比較する（Ｓ２２）。
【００４３】
この比較で両者が一致しなければ、書き込まれたデータが正しくなかったことになるので、ＣＰＵ１１２はＳ１８に戻り、同じ暗号化データ３１０を再度同じアドレスＡに書き込む処理を繰り返す。
【００４４】
一方、Ｓ２２の比較で両者が一致すれば、ＲＦＩＤタグ２１０に正しいデータが書き込まれていたことになるので、今回のアドレスＡへの書込処理は成功である。この場合、ＣＰＵ１１２は、書込対象データ３００に対応するＰ箇所の書込先への書込がすべて完了したかどうかを判定し（Ｓ２４）、完了していなければ、Ｓ１４に戻って次の書込先アドレスを取り出し、Ｓ１６〜Ｓ２４までの処理を繰り返す。Ｓ２４の判定で、Ｐ箇所すべてへの書込が完了したと判定された場合は、与えられた書込対象データ３００に対する書込処理全体が完了する。
【００４５】
なお、以上の例では、Ｓ２２では、リードバックしたデータの検査を暗号化データ３１０のレベルで行ったが、このかわりに、リードバックしたデータを復号化し、書込対象データ３００の生データのレベルで正しいデータか否かを判定するようにしてもよい。
【００４６】
次に図５を参照して、指定された１つのアドレスＡへデータを書き込むための処理（図３のＳ１８）の詳細を説明する。図４にも関連の図が示されるので参照されたい。
【００４７】
この処理ではまず、Ｓ１６で生成された暗号化データ３１０から、所定の書込単位のサイズのデータ３１２を取り出す（Ｓ３０）。ＥＥＰＲＯＭへのデータ書込速度は、ＣＰＵ１１２の処理やＲＡＭ１１６の読み書きの速度に比べて著しく遅い等の理由から、ＲＦＩＤタグ２１０に一回の無線送信で書き込むことのできるデータのサイズには限りがある。この１回の無線送信で書き込むデータのサイズが、前述の書込単位である。一方、前述のごとく、暗号強度を確保するためには暗号化データのサイズはあまり小さくできない。このため、本実施の形態では、比較的サイズの大きい暗号化データを生成し、これを複数回の無線送信に分けて書き込むこととしたわけである。ＣＰＵ１１２は、暗号化データ３１０の先頭から順に、書込単位ずつ順に取り出していく。
【００４８】
書込単位のデータ３１２を取得すると、次にＣＰＵ１１２は、この書込単位のデータ３１２を含んだ書込コマンドデータ３２０を生成する（Ｓ３２）。書込コマンドデータ３２０は、「書込コマンド」であることを示すコード３１４と、書込先アドレスＡなどの書込処理のパラメータ３１６の後に、書き込むべき書込単位のデータ３１２を付加し、さらにその後に、コード３１４，パラメータ３１６及びデータ３１２の全体に対するＣＲＣ符号３１８を付加したものである。このコマンドデータは、ISO 14443やISO 15693の規格に規定されたＲＦＩＤタグ２１０へのコマンドの形式に準拠したものである。付加されるＣＲＣ符号３１８は、それら規格においてリーダライタ−ＲＦＩＤタグ間の通信データに付加するものとして定められた通信誤り検出用の所定バイトのサイズ符号である。
【００４９】
このようにして書込コマンドデータ３２０ができると、ＣＰＵ１１２は、それを制御プログラムの送信処理ルーチンへと渡す（Ｓ３４）。この送信処理（Ｓ３４）については、後で図６を参照して詳細に説明する。
【００５０】
送信処理（Ｓ３４）により、Ｓ３０で取り出した書込単位のデータについての書込コマンドの送信が完了すると、次にＣＰＵ１１２は、暗号化データ３１０を全部送信し終わったかどうかを判定し（Ｓ３６）、未送信のデータが残っていれば、Ｓ３０に戻って以上の処理を繰り返す。暗号化データ３１０の全部の送信が完了すると、図５の処理は完了する。
【００５１】
次に図６を参照して、ＣＰＵ１１２によるコマンド送信処理の詳細について説明する。この手順では、ＣＰＵ１１２は、送信すべきコマンドデータを受け取ると（Ｓ４０）、これを読出書込装置１２０の制御部１２２へと送信する（Ｓ４２）。このようにコマンドを送信すると、ＣＰＵ１１２は、定期的に読出書込装置１２０の制御部１２２内の状態レジスタ１２２６を読み取り（Ｓ４４）、通信に誤りが生じていないかどうか判定する（Ｓ４６）。Ｓ４６の判定で、通信に誤りが生じたと判定された場合、ＣＰＵ１１２は、Ｓ４２に戻り、同じコマンドデータを再度読出書込装置１２０へと送信し、以上の処理を繰り返す。なお、通信に誤りが生じたと判定されるのは、例えば、状態レジスタ１２２６において、ＣＰＵからのデータについてのＣＲＣ誤りの有無を示すビットや、ＲＦＩＤタグからのデータについてのＣＲＣ誤り検出の有無を示すビットが、誤りが検出されたことを示す値になっている場合である。
【００５２】
状態レジスタ１２２６のチェックで通信誤りありと判定されなかった場合、さらに読出書込装置１２０がＲＦＩＤタグ２１０から当該コマンドデータに対する応答データを受信したかどうかを判定する（Ｓ４８）。読出書込装置１２０の制御部１２２が、ＲＦＩＤタグ２１０から応答データを正しく受信したときに、その旨を状態レジスタ１２２６に登録するようにしておけば、ＣＰＵ１１２は状態レジスタ１２２６を読み取ることで、応答データの受信が完了したか否かを判断できる。Ｓ４８の判定で、読出書込装置１２０が応答データの受信を完了していない間は、Ｓ４４に戻って定期的な状態レジスタ１２２６のチェックを繰り返す。
【００５３】
ＲＦＩＤタグ２１０からの応答データは、例えば書込コマンドデータ３２０に対するものの場合は、メモリ部２１６への書込が成功したか失敗したかなどを示すデータである。また、メモリ部２１６に記憶されたデータを読み出すための読出コマンドデータに対する応答データには、読み出されたそのデータが含まれることになる。
【００５４】
読出書込装置１２０の応答データの受信完了を検知した場合、ＣＰＵ１１２は、読出書込装置１２０の制御部１２２のバッファメモリ１２２４から、その応答データを取得する（Ｓ５０）。このときＣＰＵ１１２が取得する応答データは、ＲＦＩＤタグ２１０が生成したままの、規格に準拠したＣＲＣ符号を有するデータである。ＣＰＵ１１２は、そのＣＲＣ符号を用いて応答データを検査し（Ｓ５２）、誤りを有無を判定する（Ｓ５４）。そして、Ｓ５４の判定の結果、応答データに誤りがあれば、ＣＰＵ１１２はＳ４２に戻って、同じコマンドデータの再送信を行う。ただし、ここでの誤りは、制御部１２２とＣＰＵ１１２との間の通信経路で誤りが生じたものと判断できる（なぜならタグ２１０からのデータに通信誤りがあればＳ４６の判定で分かっている）ので、Ｓ５４で誤りありと判定された場合、Ｓ４２に戻る代わりに、ＣＰＵ１１２がバッファメモリ１２２４から同じ応答データを再度読み出す処理を行うような変形例も考えられる。もっとも、この変形例を実現するためには、バッファメモリ１２２４は読み出されたデータを削除せずに残せるタイプである必要があり、ＣＰＵ１１２は、応答データの通信誤りがないと判定すると、そのデータをバッファメモリ１２２４からの削除を制御部１２２に指示する必要がある。
【００５５】
Ｓ５４の判定で応答データに誤りがないと判定された場合、ＣＰＵ１１２は、この送信処理ルーチンを呼び出したプログラムに対して、その応答データを渡す（Ｓ５６）。
【００５６】
以上に説明した図６の送信処理によれば、コマンドデータが誤り無くＲＦＩＤタグ２１０まで送信され、それに対するＲＦＩＤタグ２１０の応答データが誤り無くＣＰＵ１１２に到達するまで、コマンドデータの再送信（リトライ）が繰り返される。
【００５７】
次に図７を参照して、ＲＦＩＤタグ２１０のメモリ部２１６の１つのアドレスからデータを読み出すための処理（図３のＳ２０）の詳細を説明する。
【００５８】
この処理では、まずＣＰＵ１１２は、読出コマンドデータを作成する（Ｓ６０）。この読出コマンドデータの本体は、「読出コマンド」であることを示すコードと、読出先のアドレスや読出データのサイズなどのパラメータとから構成される。読出は書込よりも高速処理が可能なので、１回のコマンド送信で読み出せるデータのサイズは、書込時よりも大きい。この本体に対し、ＣＲＣ符号を付加したものが読出コマンドデータとなる。次にＣＰＵ１１２はこの読出コマンドデータを、図６に示した送信処理のルーチンへと渡す（Ｓ６２）。この送信処理により、読出コマンドデータがＲＦＩＤタグ２１０に送信されると、ＲＦＩＤタグ２１０から、そのコマンドで指示されたアドレス及びサイズに合致するデータが読み出され、このデータが応答データに組み込まれて返信されてくる。送信処理ルーチンは、この応答データから、ヘッダやＣＲＣ符号などを取り除いて、メモリ部２１６から読み出されたデータ（すなわち暗号化データ）を取り出し、読出処理のルーチンに渡す（Ｓ６４）。読出処理のルーチンはこのデータを、該読出処理を呼び出したルーチンへと渡す。
【００５９】
リードバック処理（Ｓ２０）の場合は、読み出されたデータは図３の処理ルーチンに返され、Ｓ２２の判定処理に供される。
【００６０】
以上、ＲＦＩＤタグ２１０のメモリ部２１６のＰ箇所に、同一の書込対象データ３００から生成したＰ個の暗号化データを書き込む際の処理を説明した。
【００６１】
次に、ＣＰＵ１１２が１つの管理データをＲＦＩＤタグ２１０から読み出す場合の処理を説明する。前述のように、本実施の形態では同じデータから生成した暗号化データをメモリ部２１６のＰ箇所に記憶しているため、この読出処理でもそれらＰ個のデータを読み出すことになる。この読出処理の流れを、図８を参照して説明する。
【００６２】
この処理を呼び出すプログラムは、読み出すべきデータの識別情報（例えばデータ項目名）を指定する。この指定を受けた、図８の処理ルーチンは、その識別情報に基づき、当該読出対象のデータのＰ個の書込先アドレスとその順序の情報をＲＯＭ１１４ないしＮＶＭ１１８から読み出し、その順序情報に従いそれらＰ箇所のアドレスから順に１つずつ、読出先アドレスとして取り出す（Ｓ７０）。そして、そのアドレスを図７の読出処理ルーチンに与えて読出を実行させる（Ｓ７２）。送信処理ルーチンからこの図８の処理ルーチンへは、読出データとして、メモリ部２１６から読み出された暗号化データ３１０が渡される。この読出処理ルーチンについてはすでに説明済みである。本実施の形態では、この読出処理を、メモリ部２１６のＰ箇所のアドレスのデータがすべて読み出されるまで繰り返す（Ｓ７４）。
【００６３】
Ｐ箇所のデータがすべて読み出せると、ＣＰＵ１１２は、それらＰ個の読出データについて、データ検査用のＣＲＣ符号３０５（図４参照）を用いた誤り検出を実行する（Ｓ７６）。図９に、このＳ７６の処理の詳細な手順を示す。この処理では、Ｐ個の読出データから１つを取り出し（Ｓ９０）、その読出データを復号化する（Ｓ９２）。この復号化では、暗号化のときと同様、メモリ部２１６においてその読出データが格納されていたアドレス（すなわちＳ７０の読出先アドレス）をパラメータとして用いて、暗号化処理に対応した復号化処理を実行する。暗号化の際にシリアルＩＤなどの他の固有データをパラメータも用いている場合は、復号化でもそれらパラメータを用いる。この復号化の結果、図４に示したように、書込対象データ３００とこれに付加されたＣＲＣ符号３０５が得られる。ＣＰＵ１１２は、その復号結果のＣＲＣ符号３０５を用いて誤り検出処理を行う（Ｓ９４）。以上の処理を、Ｐ個の読出データすべてについて繰り返す（Ｓ９６）。
【００６４】
以上のようにしてＰ個の読出データの検査が完了すると（Ｓ７６）、ＣＰＵ１１２は、その検査結果の中に、異常データ、すなわち誤りが検出されたデータがあるかどうかを判定する（Ｓ７８）。Ｐ個の読出データすべてが正常であれば、復号結果からＣＲＣ符号を除いたデータ部分を、この読出処理を呼び出した制御プログラムのメインルーチンに渡して通常処理に戻り、これでこの読出処理を終了する。
【００６５】
Ｓ７８で異常データがあると判定した場合、ＣＰＵ１１２は、その異常データが１つだけであるかどうかを判定する（Ｓ８０）。ここで、異常データがＰ個のうち１つだけと判定された場合、ＣＰＵ１１２は、その異常データを、正常な（すなわち誤りが検出されなかった）（Ｐ−１）個のデータのうちの１つを用いて修復する（Ｓ８２）。修復では、正常なデータにＣＲＣ符号を付加し、その異常データの書込先アドレスをパラメータとして暗号化し、その暗号化データを該書込先アドレスに書き込むための書込コマンドデータを作成して送信する。一方、異常データが２個以上あれば、ＲＦＩＤタグ２１０内のデータの破壊又は改ざん等の致命的なエラーが生じたと判断し、所定の異常処理ルーチンへと移行する。
【００６６】
このように、ここでは、異常データが１つの場合は修復を行い、２個以上の場合は致命的エラーと判断するのは次のような理由からである。
【００６７】
すなわち、本実施の形態では、ＣＰＵ１１２と読出書込装置１２０とＲＦＩＤタグ２１０との間のすべての通信経路で通信誤り検出を行うとともに、ＲＦＩＤタグ２１０に書き込まれたデータをリードバックして正しいものか否かを検査しており、それらにより誤りが検出された場合は、書込のリトライを行っている。したがって、通常の状況ではＲＦＩＤタグ２１０に書き込まれたデータはすべて正しいものと想定できる。ただし、ＲＦＩＤタグ２１０が内蔵しているＥＥＰＲＯＭ等の書換可能な不揮発性記憶媒体は、書き込みに比較的時間がかかるため、書き込み中に読出書込装置１２０−ＲＦＩＤタグ２１０間にキャリア異常等による電力供給遮断が起こり、書き込みが失敗する可能性もある。例えば、書込中に交換部品２００を引き抜いた場合、その時書き込まれていたデータは破損してしまう。しかしこの場合も、破損するのはその時書き込んでいたデータのみである。すなわち、本実施形態では、１つの書込対象データについてＰ箇所に書き込みを行うが、仮に書込中の交換部品２００の引き抜き等によりデータが破損するとしても、それはＰ箇所のうちの１箇所のみであり、残りの（Ｐ−１）箇所は上述した本実施の形態のデータ書込処理により正しいものであると想定できる。そして、書込中の交換部品２００の引き抜き等の操作では、２箇所以上のデータが同時に損傷することはない。このようなことから、本実施の形態では、読出したＰ個のデータのうち、誤りが検出されたものが１つであれば、それは交換部品２００の引き抜きなどの通常の作業でデータ破損してしまった可能性があるので、ＲＦＩＤタグ２１０内のその誤りのあるデータを修復し、その交換部品２００の使用を認める。それに対し、Ｐ個のデータのうち誤りのあるものが２以上あった場合、メモリ部２１６の寿命や機械的外力によるＲＦＩＤタグ２１０の破損などによるデータ破壊、或いは第三者によるデータの改ざんなどがあった可能性があるので、これを致命的エラーとして取り扱うのである。致命的エラー時に実行する異常処理としては、そのエラーのあった交換部品２００が装着されたままでは、当該画像形成装置が印刷動作や、原稿読取などの正常動作が実行できないようにする処理、などがある。
【００６８】
なお、異常データが１つだけであった場合の修復は、残りの（Ｐ−１）個のデータのうち、新しい方のデータを用いて行うことが好適である。すなわち、Ｐ箇所へのデータの書込順序は前述のごとく決まっているので、異常データがそのうちの何番目の箇所であるかが分かれば、それより前の順番のデータの方が後の順番のデータよりも新しいデータであることが分かる。例えば、異常データが２番目の箇所のデータであれば、１番目の箇所への書込が成功した後、２番目の箇所で書込が失敗したままになっており、３番目以降の箇所は、前回書き込まれたデータがそのまま残っていることになる。したがって、異常があった２番目の箇所は、１番目の箇所から読み出したデータを用いて修復すればよい。なお、異常データが１番目又はＰ番目（すなわち最後）の箇所のデータである場合は、残り（Ｐ−１）個のデータは同じ時点でのデータなので、修復にはそれら（Ｐ−１）個のうちのどれを用いてもよい。
【００６９】
図８に示したＲＦＩＤタグ２１０の読出処理は、例えば、画像形成装置に電源を投入した際や、部品交換で新たな交換部品２００が装着された際などに行われるメモリチェック処理の一環で実行される。
【００７０】
以上、ＣＰＵ１１２が実行する処理について説明した。次に、読出書込装置１２０の制御部１２２の動作を、図１０を参照して説明する。
【００７１】
読出書込装置１２０は、ＣＰＵ１１２からコマンドデータの到来を待ち、コマンドデータが到来すると、制御部１２２はそのコマンドデータをバッファメモリ１２２４に入れ、図１０の処理を開始する。この処理では、まずバッファメモリ１２２４内のコマンドデータ（例えば図４の書込コマンドデータ３２０）をシリアルレジスタ１２２５に入れる（Ｓ１００）。すると、そのシリアルレジスタ１２２５内のデータはシリアルに送受信回路１２４に供給され、ＲＦＩＤタグ２１０へと送信される。このときのシリアルレジスタ１２２５内のコマンドデータに対し、ＣＲＣ検査回路１２２８が通信誤り検出用のＣＲＣ符号３１８を用いて誤り検出を行う（Ｓ１０２，Ｓ１０４）。ここで誤りが検出された場合、制御部１２２は、ＣＰＵから受信したコマンドに誤りがあった旨の情報を状態レジスタ１２２６に登録する（Ｓ１１６）。
【００７２】
その後、制御部１２２は、送信したコマンドに対するタグ２１０からの応答を待つ（Ｓ１０６）。制御部１２２が送受信回路１２４を介してタグ２１０からの応答データを受け取った場合、その応答データはいったんシリアルレジスタ１２２５に格納され、そこからバッファメモリ１２２４に格納される。このとき、制御部１２２はそのシリアルレジスタ１２２５内の応答データの誤り検査をＣＲＣ検査回路１２２８に実行させ、その検査結果を受け取る（Ｓ１０８，Ｓ１１０）。この誤り検査では、応答データに含まれる通信誤り検出用のＣＲＣ符号が用いられる。この誤り検出で誤りが検出されなければ、制御部１２２はタグ２１０からの応答データの受信に成功した旨の情報を状態レジスタ１２２６に登録する（Ｓ１１２）。ＣＰＵ１１２はこの状態レジスタ１２２６を監視しているので、制御部１２２が応答データの受信に成功したことを検知すると、バッファメモリ１２２４からその応答データを取得する。一方、誤り検出で誤りが検出された場合は、制御部１２２は、タグ２１０から受信したデータに誤りがあった旨を示す情報を状態レジスタ１２２６に登録する（Ｓ１１４）。すると、その状態レジスタ１２２６を監視しているＣＰＵ１１２は、その情報に基づきコマンド送信のリトライなどの所定のリカバリー処理を実行する。
【００７３】
なお、公知のように、ＲＦＩＤタグ２１０が、読出書込装置１２０から受信したデータに対してＣＲＣ検査を行って誤りを検出した場合、ＲＦＩＤタグ２１０は誤り検出の旨を示す応答データ（これにも通信誤り検出用のＣＲＣ符号が付されている）を作成し、読出書込装置１２０へと返信する。読出書込装置１２０は、その応答データをバッファメモリ１２２４に格納すると共に、その応答データに対する通信誤りの検出を行う。ここで誤りが検出されなかった場合は、応答受信成功を示す情報が状態レジスタ１２２６に登録され、これに応じてＣＰＵ１１２がバッファメモリ１２２４内から応答データ（この時点では通信誤り検出用のＣＲＣ符号は削除されている）を読み出す。これにより、ＣＰＵ１１２は、ＲＦＩＤタグ２１０の受信時点で通信誤りが検出されたことを認識し、リトライ等の必要な処理を実行する。
【００７４】
以上、本発明の好適な実施の形態について説明した。なお、以上ではＣＰＵ１１２及び読出書込装置１２０の処理を詳細に説明したが、ＲＦＩＤタグ２１０の実行する処理は、従来通りでよいので詳しい説明は省略する。
【００７５】
以上では、ＲＦＩＤタグ２１０に対するデータの書込及び読出の場合を主として説明したが、本実施の形態では、ＲＦＩＤタグ２１０に対するその他のコマンドや、そのコマンドに対する応答についても、書込や読出の場合と同様上述の方式で、ＣＰＵ１１２及び読出書込装置１２０及びＲＦＩＤタグ２１０の三者間での通信誤りの検出及びそれに基づくリカバリー処理が行われる。
【００７６】
以上に説明した実施の形態はあくまで例示のためのものに過ぎず、本発明の範囲内で様々な変形が可能である。例えば、以上の例では誤り検出符号としてＣＲＣ符号を用いたが、これ以外の符号を用いてももちろんよい。
【図面の簡単な説明】
【００７７】
【図１】本発明が適用される画像形成装置の要部構成を示す機能ブロック図である。
【図２】読出書込部の制御部のハードウエア構成の一例を示すブロック図である。
【図３】データ書込時にＣＰＵが実行する処理の手順を示すフローチャートである。
【図４】ＲＦＩＤタグへのデータ書込のための書込コマンドデータの生成処理におけるデータの変遷の様子を示した図である。
【図５】ＲＦＩＤタグの１つのメモリアドレスへの書込のためのＣＰＵの処理手順を示すフローチャートである。
【図６】１つのコマンドデータをＲＦＩＤタグへ送信する際のＣＰＵの処理手順を示すフローチャートである。
【図７】ＲＦＩＤタグの１つのメモリアドレスから読出のためのＣＰＵの処理手順を示すフローチャートである。
【図８】データ読出時にＣＰＵが実行する処理の手順を示すフローチャートである。
【図９】読出データのチェックの手順を示すフローチャートである。
【図１０】読出書込装置の制御部の処理手順を示すフローチャートである。
【符号の説明】
【００７８】
１００  画像形成装置本体、１１０  制御基板、１１２  ＣＰＵ、１１４  ＲＯＭ、１１６  ＲＡＭ、１１８  ＮＶＭ（不揮発性メモリ）、１２０  読出書込装置、１２２  制御部、１２４  送受信回路、２００  交換部品、２１０  ＲＦＩＤタグ、２１２  送受信回路、２１４  読出書込回路、２１６  メモリ部。
【図１】
0004622238.tif 000002
【図２】
0004622238.tif 000003
【図３】
0004622238.tif 000004
【図４】
0004622238.tif 000005
【図５】
0004622238.tif 000006
【図６】
0004622238.tif 000007
【図７】
0004622238.tif 000008
【図８】
0004622238.tif 000009
【図９】
0004622238.tif 000010
【図１０】
0004622238.tif 000011