(57)【特許請求の範囲】
【請求項１】
印刷媒体に対してドットを形成する複数のノズル及び前記ノズルによるドットの形成又は非形成を決定する印字データを記憶するレジスタを有するプリントヘッド部と、当該プリントヘッド部と第１の伝送経路部を介して接続されたヘッド駆動部とを有するプリントヘッドと、
前記印字データを生成し、前記印字データを前記レジスタへ送信する制御部と、
前記プリントヘッドと前記制御部とを接続する第２の伝送経路部と、
前記制御部から送信され、前記第１の伝送経路部及び前記第２の伝送経路部を介して前記レジスタに記憶された印字データについて、当該印字データよりもデータ容量の小さい第一の誤り検出データを生成する、前記プリントヘッドに設けられた第一の誤り検出データ生成部と、
前記制御部から前記第１の伝送経路部及び前記第２の伝送経路部を介さずに出力された印字データについて、当該印字データよりもデータ容量の小さい第二の誤り検出データを生成する、前記制御部に設けられた第二の誤り検出データ生成部と、
前記第２の伝送経路部を介して前記プリントヘッドから入力された前記第一の誤り検出データと前記第二の誤り検出データとを比較する、前記制御部に設けられた比較部と、を備え、
前記比較部の比較結果に基づいて、前記レジスタに記憶された印字データの誤り検出を行うことを特徴とするプリンタ。
【請求項２】
印刷媒体に対してドットを形成する複数のノズルを有するとともに、前記ノズルによるドットの形成又は非形成を決定する印字データが入力されるプリントヘッドと、
前記印字データを生成し、前記印字データを前記プリントヘッドへ送信する制御部と、
前記プリントヘッドと前記制御部とを接続する伝送経路部と、
前記制御部から前記伝送経路部を介して前記プリントヘッドに送信された印字データについて、当該印字データよりもデータ容量の小さい第一の誤り検出データを生成する、前記プリントヘッドに設けられた第一の誤り検出データ生成部と、
前記制御部から前記伝送経路部を介さずに出力された印字データについて、当該印字データよりもデータ容量の小さい第二の誤り検出データを生成する、前記制御部に設けられた第二の誤り検出データ生成部と、
前記伝送経路部を介して前記プリントヘッドから入力された前記第一の誤り検出データと前記第二の誤り検出データとを比較する、前記制御部に設けられた比較部と、を備え、
前記比較部の比較結果に基づいて、前記伝送経路部を介して前記プリントヘッドに送信された印字データの誤り検出を行うことを特徴とするプリンタ。
【請求項３】
前記第一の誤り検出データ生成部により生成される第一の誤り検出データは、前記レジスタに記憶された印字データについて、当該印字データに含まれるドットの形成又は非形成のいずれか一方を示すデータの数をカウントすることで生成されるものであり、前記第二の誤り検出データ生成部により生成される第二の誤り検出データは、前記第１の伝送経路部及び前記第２の伝送経路部を介さずに出力された印字データについて、当該印字データに含まれるドットの形成又は非形成のいずれか一方をカウントすることで生成されるものであることを特徴とする請求項１に記載のプリンタ。
【請求項４】
前記第一の誤り検出データ生成部により生成される第一の誤り検出データは、前記レジスタに記憶された印字データについて、当該印字データに基づいて生成される第一のＣＲＣデータであり、前記第二の誤り検出データ生成部により生成される第二の誤り検出データは、前記第１の伝送経路部及び前記第２の伝送経路部を介さずに出力された印字データについて、当該印字データに基づいて生成される第二のＣＲＣデータであることを特徴とする請求項１に記載のプリンタ。
【請求項５】
前記第一の誤り検出データ生成部により生成される第一の誤り検出データは、前記制御部から前記伝送経路部を介して前記プリントヘッドに送信された印字データについて、当該印字データに含まれるドットの形成又は非形成のいずれか一方を示すデータの数をカウントすることで生成されるものであり、前記第二の誤り検出データ生成部により生成される第二の誤り検出データは、前記伝送経路部を介さずに出力された印字データについて、当該印字データに含まれるドットの形成又は非形成のいずれか一方をカウントすることで生成されるものであることを特徴とする請求項２に記載のプリンタ。
【請求項６】
前記第一の誤り検出データ生成部により生成される第一の誤り検出データは、前記制御部から前記伝送経路部を介して前記プリントヘッドに送信された印字データについて、当該印字データに基づいて生成される第一のＣＲＣデータであり、前記第二の誤り検出データ生成部により生成される第二の誤り検出データは、前記伝送経路部を介さずに出力された印字データについて、当該印字データに基づいて生成される第二のＣＲＣデータであることを特徴とする請求項２に記載のプリンタ。
【請求項７】
前記プリントヘッドは、一の前記ノズルに対して複数のレジスタを備えることを特徴とする請求項１、３又は４に記載のプリンタ。
【請求項８】
前記第二の誤り検出データ生成部によって生成された誤り検出データについて、前記複数のノズルによるドットの形成又は非形成を決定する少なくとも２回分の印字データに対応する数の誤り検出データを記憶するバッファメモリを備え、
前記比較部は、前記バッファメモリに記憶された最も古い誤り検出データと、前記第一の誤りデータ生成部によって生成された誤り検出データとを比較することを特徴とする請求項１から７のいずれか一項に記載のプリンタ。
【請求項９】
前記比較部による比較結果が不一致の場合、印字データ不良が生じたことの通知又は前記ドットの形成停止の少なくともいずれか一方を行うことを特徴とする請求項１から８のいずれか一項に記載のプリンタ。
【請求項１０】
前記比較部での比較結果で不一致の回数を計数する計数部をさらに備え、
前記計数部により計数された不一致の比較結果の回数に基づいて、印字データ不良が生じたことの通知又は前記ドットの形成停止の少なくともいずれか一方を行うことを特徴とする請求項１から８のいずれか一項に記載のプリンタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンタに関する。
【背景技術】
【０００２】
紙等の印刷媒体に対して画像を形成するプリンタには様々な方式のものがあるが、その一方式として、印刷媒体に対して近接するよう設けられたプリントヘッドを有するものがある。
【０００３】
図９に、従来のプリンタ１００の一構成例を示す。
プリンタ１００は、プリントヘッド１３０、メカニカルコントローラ１８０及び制御部１１０を有する。
プリントヘッド１３０は、印刷媒体に対してインク等の顔料を吐出するヘッド部１５０を有する。プリンタ１００による印刷が行われる場合、ヘッド部１５０から吐出された顔料の重なりにより印刷媒体上に画像が形成される。
メカニカルコントローラ１８０は、プリントヘッド１３０の位置を印刷媒体に対して移動させるヘッドモータ（図示略）の動作及び紙送りを行う紙送り部（図示略）の動作を制御する。
制御部１１０は、印刷媒体に対して形成する画像の元データとなる画像データに基づいて、プリントヘッド１３０からの顔料吐出制御のためのデータを生成してプリントヘッド１３０へ送信する。また、制御部１１０は、プリントヘッド１３０及びメカニカルコントローラ１８０の動作を制御する。
【０００４】
プリントヘッド１３０、メカニカルコントローラ１８０及び制御部１１０は、ケーブルにより互いに接続される。また、制御部１１０は、インターフェースを介してコンピュータ（ＰＣ）１０２等の外部機器に接続され、外部機器から画像データを受信することができる。
【０００５】
ところで、データ伝送においては何らかの理由によりエラーを生じることがある。ここで言うエラーとは、データの一部又は全文の破損や意図しないデータ内容の変化等を指す。例えば、制御部１１０とプリントヘッド１３０とを接続するケーブルを介して送信されるデータの場合、プリントヘッド１３０の駆動により駆動部から発生するノイズや、プリントヘッド１３０及びその周辺に設けられた各構成から発生するノイズ等がエラーの原因となる。他のデータ伝送経路においても、伝送経路及びその周辺に存在するノイズ要因等により、エラーが生じうる。
【０００６】
このため、伝送系路上で生じたエラーを検出し、エラーを生じた場合には訂正（データの再送）を行う伝送の仕組みを有する規格（インターフェース）がある。このようなエラー検出・訂正を可能とする規格としては、例えばＵＳＢ（Universal Serial Bus）やＲＳ−２３２、ＳＣＳＩ（Small Computer System Interface）等がある。図９に示すコンピュータ（ＰＣ）と制御部との接続においては、このようなエラーの検出及び訂正を可能とする規格を用いることでエラーによるデータの破損を抑止することができる。
【０００７】
しかしながら、エラーの検出及び訂正を可能とする規格をプリンタ内部のデータ伝送経路、例えば図９に示す制御部１１０とプリントヘッド１３０との間等に用いることは難しい。
プリントヘッドと記録媒体との相対移動に伴い、一定間隔でインクがプリントヘッドから吐出されるには、吐出データは常にある一定のタイミングでプリントヘッドに送信されなければならない。エラーの検出及び訂正を行うためには、送信データの中にエラーが存在しているか否かを検出するための照合に用いるデータを本来の画像データの他に埋め込む必要があり、かつ照合データに不具合が存在した場合、再送要求や誤り処理のための不測の時間が生ずることにより、予めその時間分を想定してこれに匹敵するデータの蓄積を行うバッファメモリを受信側に持たなければならない。さらにバッファメモリの管理には高速なＣＰＵが必要となり、またエラーの検出及び訂正を実行するためのプログラム処理も複雑となる。ヘッドの駆動部に搭載される基板は、ヘッドと共に移動するため小型、軽量が要求されるのみならず、実際には制御部１１０からプリントヘッド１３０へ伝送されるデータは非常に高速であり、また同期制御を必要とするため、上記のようなデータ伝送遅延を許容することは極めて困難である。
【０００８】
このため、従来の制御部１１０とプリントヘッド１３０との間のデータ伝送においてはエラーの検出及び訂正はなされておらず、エラーを生じた場合には画像にドット欠け等のノイズを生じることがあった。そこで、エラーを検出するために、画像の出力結果に対して光学的な走査を行って含まれるノイズを検出する構成を有するプリンタがある（例えば特許文献１〜３）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００３−１６５２０４号公報
【特許文献２】特開２００６−１９９０４８号公報
【特許文献３】特開平１０−１４７０１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１〜３のような、画像の出力結果に含まれるノイズを検出する方法では、あくまで光学的な走査により検出可能なエラーを検出するのみであり、データ伝送のエラーそのものを検出するものではなかった。このため、制御部１１０とプリントヘッド１３０との間のデータ伝送におけるエラーの検出精度が不十分であった。加えて、光学的な走査を行うための構成をプリントヘッド１３０に別途設ける必要があり、プリントヘッド１３０の大型化及び高コスト化をもたらすという問題点があった。
【００１１】
本発明の課題は、簡易な構成により、プリンタ内部のデータ伝送経路における高精度なエラー検出を行うことである。
【課題を解決するための手段】
【００１２】
請求項１に記載の発明によるプリンタは、印刷媒体に対してドットを形成する複数のノズル及び前記ノズルによるドットの形成又は非形成を決定する印字データを記憶するレジスタを有するプリントヘッド部と、当該プリントヘッド部と第１の伝送経路部を介して接続されたヘッド駆動部とを有するプリントヘッドと、前記印字データを生成し、前記印字データを前記レジスタへ送信する制御部と、前記プリントヘッドと前記制御部とを接続する第２の伝送経路部と、前記制御部から送信され、前記第１の伝送経路部及び前記第２の伝送経路部を介して前記レジスタに記憶された印字データについて、当該印字データよりもデータ容量の小さい第一の誤り検出データを生成する、前記プリントヘッドに設けられた第一の誤り検出データ生成部と、前記制御部から前記第１の伝送経路部及び前記第２の伝送経路部を介さずに出力された印字データについて、当該印字データよりもデータ容量の小さい第二の誤り検出データを生成する、前記制御部に設けられた第二の誤り検出データ生成部と、前記第２の伝送経路部を介して前記プリントヘッドから入力された前記第一の誤り検出データと前記第二の誤り検出データとを比較する、前記制御部に設けられた比較部と、を備え、前記比較部の比較結果に基づいて、前記レジスタに記憶された印字データの誤り検出を行うことを特徴とする。
【００１５】
請求項２に記載の発明によるプリンタは、印刷媒体に対してドットを形成する複数のノズルを有するとともに、前記ノズルによるドットの形成又は非形成を決定する印字データが入力されるプリントヘッドと、前記印字データを生成し、前記印字データを前記プリントヘッドへ送信する制御部と、前記プリントヘッドと前記制御部とを接続する伝送経路部と、前記制御部から前記伝送経路部を介して前記プリントヘッドに送信された印字データについて、当該印字データよりもデータ容量の小さい第一の誤り検出データを生成する、前記プリントヘッドに設けられた第一の誤り検出データ生成部と、前記制御部から前記伝送経路部を介さずに出力された印字データについて、当該印字データよりもデータ容量の小さい第二の誤り検出データを生成する、前記制御部に設けられた第二の誤り検出データ生成部と、前記伝送経路部を介して前記プリントヘッドから入力された前記第一の誤り検出データと前記第二の誤り検出データとを比較する、前記制御部に設けられた比較部と、を備え、前記比較部の比較結果に基づいて、前記伝送経路部を介して前記プリントヘッドに送信された印字データの誤り検出を行うことを特徴とする。 
【００１６】
請求項３に記載の発明は、請求項１に記載のプリンタであって、前記第一の誤り検出データ生成部により生成される第一の誤り検出データは、前記レジスタに記憶された印字データについて、当該印字データに含まれるドットの形成又は非形成のいずれか一方を示すデータの数をカウントすることで生成されるものであり、前記第二の誤り検出データ生成部により生成される第二の誤り検出データは、前記第１の伝送経路部及び前記第２の伝送経路部を介さずに出力された印字データについて、当該印字データに含まれるドットの形成又は非形成のいずれか一方をカウントすることで生成されるものであることを特徴とする。
請求項４に記載の発明は、請求項１に記載のプリンタであって、前記第一の誤り検出データ生成部により生成される第一の誤り検出データは、前記レジスタに記憶された印字データについて、当該印字データに基づいて生成される第一のＣＲＣデータであり、前記第二の誤り検出データ生成部により生成される第二の誤り検出データは、前記第１の伝送経路部及び前記第２の伝送経路部を介さずに出力された印字データについて、当該印字データに基づいて生成される第二のＣＲＣデータであることを特徴とする。
【００１７】
請求項５に記載の発明は、請求項２に記載のプリンタであって、前記第一の誤り検出データ生成部により生成される第一の誤り検出データは、前記制御部から前記伝送経路部を介して前記プリントヘッドに送信された印字データについて、当該印字データに含まれるドットの形成又は非形成のいずれか一方を示すデータの数をカウントすることで生成されるものであり、前記第二の誤り検出データ生成部により生成される第二の誤り検出データは、前記伝送経路部を介さずに出力された印字データについて、当該印字データに含まれるドットの形成又は非形成のいずれか一方をカウントすることで生成されるものであることを特徴とする。
請求項６に記載の発明は、請求項２に記載のプリンタであって、前記第一の誤り検出データ生成部により生成される第一の誤り検出データは、前記制御部から前記伝送経路部を介して前記プリントヘッドに送信された印字データについて、当該印字データに基づいて生成される第一のＣＲＣデータであり、前記第二の誤り検出データ生成部により生成される第二の誤り検出データは、前記伝送経路部を介さずに出力された印字データについて、当該印字データに基づいて生成される第二のＣＲＣデータであることを特徴とする。
【００１８】
請求項７に記載の発明は、請求項１、３又は４に記載のプリンタであって、前記プリントヘッドは、一の前記ノズルに対して複数のレジスタを備えることを特徴とする。 
【００２０】
請求項８に記載の発明は、請求項１から７のいずれか一項に記載のプリンタであって、前記第二の誤り検出データ生成部によって生成された誤り検出データについて、前記複数のノズルによるドットの形成又は非形成を決定する少なくとも２回分の印字データに対応する数の誤り検出データを記憶するバッファメモリを備え、前記比較部は、前記バッファメモリに記憶された最も古い誤り検出データと、前記第一の誤りデータ生成部によって生成された誤り検出データとを比較することを特徴とする。 
【００２２】
請求項９に記載の発明は、請求項１から８のいずれか一項に記載のプリンタであって、前記比較部による比較結果が不一致の場合、印字データ不良が生じたことの通知又は前記ドットの形成停止の少なくともいずれか一方を行うことを特徴とする。 
【００２３】
請求項１０に記載の発明は、請求項１から８のいずれか一項に記載のプリンタであって、前記比較部での比較結果で不一致の回数を計数する計数部をさらに備え、前記計数部により計数された不一致の比較結果の回数に基づいて、印字データ不良が生じたことの通知又は前記ドットの形成停止の少なくともいずれか一方を行うことを特徴とする。 
【発明の効果】
【００２４】
本発明によれば、簡易な構成により、制御部とプリントヘッドとの間のデータ伝送における高精度なエラー検出を行うことができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の第一実施形態であるプリンタの主要構成を示す構成図である。
【図２】プリンタの斜視図である。
【図３】プリンタの各部の接続及びデータの流れを示すブロック図である。
【図４】同一時間軸上で各部に記憶、保持される印字データ又は誤り検出データの世代を示す説明図である。
【図５】第二実施形態によるヘッド部内の各構成の接続及びデータの流れを示すブロック図である。
【図６】第三実施形態によるプリンタの各部の接続及びデータの流れを示すブロック図である。
【図７】第四実施形態によるプリンタの各部の接続及びデータの流れを示すブロック図である。
【図８】ソフトウェア処理による誤り検出データの生成及び比較の流れを示すフローチャートである。
【図９】従来のプリンタの一構成例を示す構成図である。
【発明を実施するための形態】
【００２６】
以下、図を参照して本発明の実施の形態の例を詳細に説明する。
【００２７】
（第一実施形態）
図１に、本発明の第一実施形態であるプリンタ１の主要構成を示す。
図２に、プリンタ１の斜視図を示す。
プリンタ１は、制御部１０、プリントヘッド３０、メカニカルコントローラ８０及び表示部９０を備える。
【００２８】
制御部１０は、コンピュータ（ＰＣ）２から画像データを受信し、画像データに基づいて紙等の印刷媒体に対して画像を形成するためのプリンタ１の各部の動作制御を行う。
コンピュータ２と制御部１０との間は、ケーブル３によって接続される。ケーブル３は、コンピュータ２及び制御部１０にそれぞれ設けられたインターフェース同士を接続し、コンピュータ２とプリンタ１との間のデータ送受信を可能とする。コンピュータ２及び制御部１０にそれぞれ設けられたインターフェースは、データの送受信を可能とするインターフェースであれば何でもよいが、例えばＵＳＢやＲＳ−２３２Ｃ、ＳＣＳＩ、ＩＥＥＥ１３９４その他のインターフェースが挙げられる。また、コンピュータ２と制御部１０との間の接続は、有線／無線を問わず、コンピュータ２と制御部１０との間をネットワーク回線によって接続してもよい。
【００２９】
プリントヘッド３０は、図２に示すガイドレール２０上を移動することで印刷媒体に対して位置変更を行い、印刷媒体に対してドットを形成する。印刷媒体上に形成される画像は、ドットの重ね合わせにより形成される。
【００３０】
図３に、プリンタ１の各部の接続及びデータの流れを示す。
プリントヘッド３０は、ヘッド駆動部４０及びヘッド部５０を備える。ヘッド駆動部４０は、制御部１０とヘッド部５０との間に介在し、制御部１０とヘッド部５０との間におけるデータ送受信の橋渡しを行う。ヘッド部５０は、印刷媒体に対してドットを形成する複数のノズル５１及びノズル５１によるドットの形成／非形成を決定する印字データを記憶するレジスタ（図３に示すシフトレジスタ７１及びヘッドレジスタ７２）を有する。図３のシフトレジスタ７１及びヘッドレジスタ７２のように、レジスタは、一のノズル５１に対して複数設けられる。
【００３１】
制御部１０とヘッド駆動部４０との間は、ケーブル６１を介して接続される。ヘッド駆動部４０とヘッド部５０との間は、ケーブル６２を介して接続される。ケーブル６１、６２は、可撓性を有するケーブルであり、例えばフレキシブルプリント基板（ＦＰＣ）等が挙げられる。
【００３２】
メカニカルコントローラ８０は、制御部１０からの命令に基づいてガイドレール２０上におけるプリントヘッド３０の移動や印刷媒体の送り動作（紙送り）等の機械的動作を制御する。
表示部９０は、制御部１０からの命令に基づいて各種の表示を行う。
制御部１０とメカニカルコントローラ８０及び制御部１０と表示部９０は、それぞれケーブルを介して接続される。第一実施形態において制御部１０とメカニカルコントローラ８０とを接続するケーブル及び制御部１０と表示部９０とを接続するケーブルは、フレキシブルプリント基板（ＦＰＣ）であるが、リード線や基板上に形成された配線等、他の形態によって接続してもよい。
【００３３】
次に、制御部１０及びプリントヘッド３０の詳細構成ならびに制御部１０とプリントヘッド３０との間のデータ伝送について説明する。
制御部１０は、コントローラ１１、メモリバッファ１２、印字データ記憶部１３、誤り検出データ生成部１４、誤り検出データ記憶部１５、誤り検出データ記憶部１６及びコンパレータ１７を有する。
プリントヘッド３０のヘッド部５０は、ノズル５１、シフトレジスタ７１及びヘッドレジスタ７２を有する。ヘッド駆動部４０は、誤り検出データ生成部４１を有する。
【００３４】
コントローラ１１は、印字データ、シフトクロック（Sclk）及びラッチ信号（Latch）
等の各種データの生成及び送信を行う。また、コントローラ１１は、プリントヘッド３０、メカニカルコントローラ８０及び表示部９０等のプリンタ１の各部の動作制御を行う。
また、コントローラ１１は、コンパレータ１７からの入力（Res）に基づいてケーブル６１を介して送信された印字データの誤り検出を行う。印字データの誤り検出の詳細は後述する。
【００３５】
メモリバッファ１２は、コンピュータ２から送信された画像データを記憶する。コントローラ１１は、メモリバッファ１２に記憶された画像データに基づいて印字データを生成する。
【００３６】
印字データ記憶部１３は、印字データを記憶する。印字データは、図３に示すFire(n+2)、Fire(n+3)…Fire(n+m)のように、m-1回分が記憶される。m-1には任意の数値を設定することができるが、プリントヘッド３０による印字が滞らないための印字データのストックを十分に用意することができる数値が好ましい。
【００３７】
印字データは、図３のFire (n+2)に例示するように、No.1、No.2、No.3…No.Nのデータを有する。ここで、Nはプリントヘッド３０のヘッド部５０が有するノズル５１の数に対応する。No.1、No.2、No.3…No.Nのデータは、Ｎ個のノズル５１それぞれによるドットの形成／非形成を示すフラグであり、第一実施形態では１／０の２値によって形成／非形成を区別される。つまり、第一実施形態の印字データは、Ｎ個のノズル５１に対して各ノズル５１によるドットの形成／非形成を示すシリアルデータである。図３では、例示としてFire (n+2)についてシリアルデータの構成を示しているが、図３においてその詳細を図示しない他の印字データについても同様である。
【００３８】
誤り検出データ生成部１４は、印字データ記憶部１３に記憶された印字データに基づいて誤り検出データを生成する。図３に示すように、誤り検出データ生成部１４に入力される印字データは、印字データ記憶部１３からケーブル６１を介さず出力される。
【００３９】
第一実施形態の誤り検出データ生成部１４は、印字データに含まれるNo.1、No.2、No.3…No.Nのデータのうち、ドットの形成を示すデータ（数値の１）の数をカウントし、その合計値を誤り検出データとして出力する。
【００４０】
誤り検出データ記憶部１５は、誤り検出データ生成部１４によって生成された誤り検出データを記憶する。図３に示すように、第一実施形態の誤り検出データ記憶部１５は、３回分の印字データに対応する誤り検出データがFIFO(First in, First out)方式で記憶される。
誤り検出データ記憶部１６は、誤り検出データ生成部４１から送信された誤り検出データを記憶する。
コンパレータ１７は、誤り検出データ記憶部１５に記憶された誤り検出データと誤り検出データ記憶部１６に記憶された誤り検出データとを比較し、比較結果をコントローラ１１へ入力する。
【００４１】
図３に示すメモリバッファ１２、印字データ記憶部１３、誤り検出データ記憶部１５及び誤り検出データ記憶部１６については、それぞれ個別の記憶装置を用いてもよいし、一の記憶装置内でそれぞれの用途の記憶領域を割り当てるようにしてもよい。
【００４２】
ノズル５１は、印刷媒体に対してドットを形成する。ノズル５１は、ヘッド部５０にＮ個設けられ、各ノズル５１によるドットの形成／非形成が個別に制御される。各ノズル５１によるドットの形成／非形成は、前述のように印字データによる。第一実施形態のノズル５１によるドットの形成は、インクジェット方式により顔料を印刷媒体へ吐出するものであるが、感熱紙に熱を加えることでドットを形成するものでもよいし、その他の方法によりドットを形成するものでもよい。図３に示す各ノズル５１からの吐出／非吐出は一例である。
【００４３】
シフトレジスタ７１は、ケーブル６１、ヘッド駆動部４０及びケーブル６２を介して印字データ記憶部１３から送信された印字データを受信して記憶する。図３に示すようにシフトレジスタ７１は、Ｎ個のノズル５１に対応するNo.1、No.2、No.3…No.Nのデータを記憶する記憶領域を有するシフトレジスタである。シフトレジスタ７１に入力される印字データは、Ｎ番目のノズル５１に対応するNo.Nのデータを先頭に入力され、１番目のノズル５１に対応するNo.1のデータを入力されるまで、順次その記憶内容をシフトレジスタ７１の入力側（Head-Data-In側）から出力側（Serial-Data-Out側）へシフトさせる。印字データのNo.NのデータからNo.1のデータに渡るシフトレジスタ７１のデータのシフトは、コントローラ１１によって生成されるシフトクロック（Sclk）に対応して行われる。
【００４４】
ヘッドレジスタ７２は、シフトレジスタ７１とノズル５１との間に介在するよう設けられたレジスタであり、Ｎ個分のノズル５１に対応するNo.1、No.2、No.3…No.Nのデータを記憶する記憶領域を有する。ヘッドレジスタ７２には、シフトレジスタ７１に記憶されたNo.1、No.2、No.3…No.Nのデータがコピーされる。各ノズル５１によるドットの形成／非形成は、ヘッドレジスタ７２にコピーされたNo.1、No.2、No.3…No.Nのデータに応じて制御される。
【００４５】
シフトレジスタ７１からヘッドレジスタ７２へのデータのコピータイミングは、ラッチ信号（Latch）をトリガーとする。
印字データは、シフトクロック（Sclk）に応じてNo.N〜No.1のデータを順次シフトレジスタ７１へ入力される。１回分の印字データ、即ちNo.1、No.2、No.3…No.Nのデータが全てシフトレジスタ７１に記憶されると、ラッチ信号（Latch）がヘッド部５０へ入力され、シフトレジスタ７１からヘッドレジスタ７２へNo.1、No.2、No.3…No.Nのデータがコピーされると共に、シフトレジスタ７１から誤り検出データ生成部４１へ１回分の印字データが入力される（Serial-Data-Out）。
なお、図３では、ヘッドレジスタ７２に印字データ（Fire(n)）がある場合の各部におけるデータの世代を例示している。
【００４６】
誤り検出データ生成部４１は、シフトレジスタ７１から入力された印字データに基づいて誤り検出データを生成する。図３に示すように、誤り検出データ生成部４１に入力される印字データは、シフトレジスタ７１へ入力された印字データ（Head-Data-in）、即ち、ケーブル６１及びケーブル６２を介して送信された印字データである。
誤り検出データ生成部４１は、誤り検出データ生成部１４と同様の処理により誤り検出データを生成する。
【００４７】
第一実施形態の誤り検出データ生成部１４、４１は、印字データに含まれるドットの形成を示すデータ（数値の１）の数をカウントするカウンタであるが、印字データに含まれるドットの非形成を示すデータ（数値の０）の数をカウントしてもよいし、他の方法により誤り検出データを生成してもよい。例えば印字データに基づいてＣＲＣを生成する方法等が挙げられる。カウンタによる計数値や印字データに基づくＣＲＣデータ等の誤り検出データは、元となる印字データよりもデータ容量が小さい。
【００４８】
複数のノズル５１によるドット形成を高速に行うため、ケーブル６１、６２を介した接続は、エラー訂正のための再送の仕組みを有しない規格、例えば独自規格等による。このため、印字データ等、ケーブル６１、６２を介した伝送経路上ではエラーを生ずることがある。ケーブル６１、６２はその長さに比例してプリンタ１内の各部、例えばプリントヘッド３０を移動させるモータ等からノイズを受けやすくなる。ケーブル６１、６２を介して送信される印字データ等のデータは、このようなノイズ等によりデータの破損等のエラーを生じることがある。特に、プリントヘッド３０は、ガイドレール２０上を移動することから、プリンタ１にはプリントヘッド３０の可動範囲に対して十分な長さのケーブル６１を設ける必要がある。ケーブルの長さが長くなると、ノイズを受ける可能性が高まるため、プリンタの規模が大きくなるほどケーブル６１等の伝送経路上におけるエラーを生じやすい。
そこで、第一実施形態のプリンタ１は、シフトレジスタ７１に記憶された印字データとコントローラ１１からケーブル６１、６２を介さず出力された印字データとに基づいてシフトレジスタ７１に記憶された印字データの誤り検出を行う。
【００４９】
図４に、同一時間軸上で各部に記憶、保持される印字データ又は誤り検出データの世代を示す。
ラッチ信号（Latch）は、各部間のデータ伝送を同期させる信号として機能する。ラッチ信号（Latch）が出力されるたび、各部に記憶、保持される印字データ又は誤り検出データの世代が移り変わる。
【００５０】
以下、ひとつの世代の印字データ（Fire(n-1)）に基づくデータについて説明する。
まず、メモリバッファ１２に記憶された画像データに基づいて、印字データ記憶部１３に印字データ（Fire(n-1)）が記憶される。その後、ラッチ信号（Latch）が出力されると、そのタイミングで印字データ記憶部１３に記憶された印字データ（Fire(n-1)）がシフトレジスタ７１へ送信され（Head-Data-In）、シフトレジスタ７１に記憶されると同時に、印字データ記憶部１３に記憶された印字データ（Fire(n-1)）が誤り検出データ生成部１４へ入力される。
【００５１】
印字データ（Fire(n-1)）がシフトレジスタ７１に記憶された状態でラッチ信号（Latch）が出力されると、そのタイミングでシフトレジスタ７１からヘッドレジスタ７２へ印字データ（Fire(n-1)）がコピーされると同時に、シフトレジスタ７１に記憶された印字データ（Fire(n-1)）が誤り検出データ生成部４１へ出力される（Serial-Data-Out）。このとき、同時に、誤り検出データ生成部１４によって誤り検出データ（SER(n-1)）が生成されて出力され、誤り検出データ記憶部１５に記憶される（図４の送信側誤り検出データ１）。この時点では、誤り検出データ記憶部１５に記憶される３回分の誤り検出データの中で、誤り検出データ（SER(n-1)）は最も新しい誤り検出データである。図４に示す送信側誤り検出データ１〜３は、送信側誤り検出データ１が最も新しく、送信側誤り検出データ３が最も古い。
【００５２】
シフトレジスタ７１に記憶された印字データ（Fire(n-1)）が誤り検出データ生成部４１へ出力された後、ラッチ信号（Latch）が出力されると、誤り検出データ生成部４１によって誤り検出データ（RER(n-1)）が生成される。このとき、同時に、誤り検出データ生成部１４では次の印字データに基づく誤り検出データ（SER(n)）が生成されて出力され、誤り検出データ記憶部１５に記憶される。同時に、ラッチ信号（Latch）に基づいて、誤り検出データ記憶部１５に記憶された誤り検出データ（SER(n-1)）の世代が一つ古い側へシフトする（図４の送信側誤り検出データ２）。
【００５３】
誤り検出データ生成部４１によって誤り検出データ（RER(n-1)）が生成された後、ラッチ信号（Latch）が出力されると、誤り検出データ生成部４１によって生成された誤り検出データ（RER(n-1)）が誤り検出データ記憶部１６へ入力され、誤り検出データ記憶部１６によって記憶される（図４の受信側誤り検出データ）。このとき、同時に、誤り検出データ生成部１４ではさらに次の印字データに基づく誤り検出データ（SER(n+1)）が生成されて出力され、誤り検出データ記憶部１５に記憶される。この時点で、誤り検出データ記憶部１５に記憶される３回分の誤り検出データの中で、誤り検出データ（SER(n-1)）は最も古い誤り検出データとなる（図４の送信側誤り検出データ３）。
【００５４】
誤り検出データ記憶部１６に誤り検出データ（RER(n-1)）が記憶された後、ラッチ信号（Latch）が出力されると、コンパレータ１７に対して誤り検出データ記憶部１５に記憶された最も古い誤り検出データ（SER(n-1)）及び誤り検出データ記憶部１６に記憶された誤り検出データ（RER(n-1)）が入力され、誤り検出データ（SER(n-1)）と誤り検出データ（RER(n-1)）が比較される。このとき、誤り検出データ（SER(n-1)）及び誤り検出データ（RER(n-1)）は、同世代の印字データ（Fire(n-1)）に基づく誤り検出データである。コンパレータ１７は、誤り検出データ（SER(n-1)）と誤り検出データ（RER(n-1)）を比較し、比較結果を出力する（Res(n-1)）。
【００５５】
コンパレータ１７は比較結果をコントローラ１１へ入力する（Res）。コントローラ１１は、コンパレータ１７から入力された比較結果が、誤り検出データ（SER(n-1)）と誤り検出データ（RER(n-1)）が一致することを示す内容である場合、ケーブル６１、６２を介して送信されてシフトレジスタ７１に記憶された印字データにエラーが生じなかったものと判別する。一方、コンパレータ１７から入力された比較結果が、誤り検出データ（SER(n-1)）と誤り検出データ（RER(n-1)）が不一致であることを示す内容である場合、コントローラ１１は、ケーブル６１、６２を介して送信されてシフトレジスタ７１に記憶された印字データにエラーが生じたものと判別する。
【００５６】
誤り検出データ（SER(n-1)）と誤り検出データ（RER(n-1)）が不一致であることを示す内容である場合、即ちケーブル６１、６２を介して送信されてシフトレジスタ７１に記憶された印字データにエラーが生じたものと判別した場合、コントローラ１１は、エラー処理を行う。
エラー処理とは、例えば、印字データ不良が生じたことを通知する画面を表示部９０に表示させる処理や、ラッチ信号の出力停止によってノズル５１からのドット形成を停止させる処理等である。コントローラ１１は、印字データ不良が生じたことを通知する画面を表示部９０に表示させる処理又はラッチ信号の出力停止によってノズル５１からのドット形成を停止させる処理の少なくともいずれか一方を行う。
【００５７】
コントローラ１１は、コンパレータ１７から入力される比較結果のうち、誤り検出データ（SER(n-1)）と誤り検出データ（RER(n-1)）が不一致であることを示す入力の回数を計数（カウント）し、カウントされた不一致の回数に基づいてエラー処理を行うようにしてもよい。例えば、不一致の回数が所定の回数以上となった場合に、コントローラ１１はエラー処理をする、等のパターンが挙げられる。
【００５８】
第一実施形態によれば、シフトレジスタ７１に記憶された印字データとコントローラ１１からケーブル６１、６２を介さず出力された印字データとに基づいてシフトレジスタ７１に記憶された印字データの誤り検出を行うので、プリンタ内部のデータ伝送経路における高精度なエラー検出を行うことができる。
【００５９】
さらに、誤り検出のために、シフトレジスタ７１に記憶された印字データに基づいて誤り検出データを生成する誤り検出データ生成部４１と、ケーブル６１、６２を介さず出力された印字データに基づいて誤り検出データを生成する誤り検出データ生成部１４と、生成する誤り検出データ生成部４１によって生成された誤り検出データと誤り検出データ生成部１４とを比較するコンパレータ１７と、を用い、誤り検出データの生成はカウンタ等の簡易な構成によることができるので、簡易な構成により、プリンタ内部のデータ伝送経路における高精度なエラー検出を行うことができる。
【００６０】
さらに、一のノズル５１に対して複数のレジスタ（例えばシフトレジスタ７１及びヘッドレジスタ７２等）を備え、誤り検出データ生成部４１は、コントローラ１１からケーブル６１、６２を介して印字データを送信されたシフトレジスタ７１より出力された印字データから誤り検出データを生成する。これによって、複数のノズル５１によるドット形成／非形成の制御をラッチ信号（Latch）に基づいて同期させることができることに加え、ラッチ信号（Latch）に基づいて複数のノズル５１を制御する１回分の印字データ全部に対する誤り検出データ（RER(n)）の生成を確実に行うことができる。
【００６１】
さらに、誤り検出データは印字データよりもデータ容量が小さいので、印字データを送信するための伝送経路に比して誤り検出データを送信するための伝送経路を簡略化、例えばケーブルの配線数を少なくしたりすることができる。これによって、誤り検出データを送信するための伝送経路を低コストで設けることができることに加えて、誤り検出データの伝送経路にノイズが加わる可能性を低減することができ、より高精度な誤り検出データによるエラー検出を行うことができる。
【００６２】
さらに、誤り検出データ記憶部１５は、誤り検出データ生成部１４によって生成された、少なくとも２回分以上（第一実施形態では３回分）の印字データに対応する誤り検出データを記憶する。これによって、ケーブル６１、６２を介してプリントヘッド３０側へ送信された印字データに基づいて誤り検出データが生成されて制御部１０の誤り検出データ記憶部１６へ記憶されるまでの処理待ち時間に対応した誤り検出データの比較ルーチンを回路構成により実現することができる。
【００６３】
さらに、コントローラ１１は、コンパレータ１７による比較結果が不一致の場合、エラー処理を行う。これによって、ケーブル６１、６２を介して送信された印字データにエラーを生じた場合に、エラーを生じたことをユーザに知らせることが可能となる他、エラーを生じた印字データによるドット形成を含む画像形成が継続して行われることを防止することが可能となる。
【００６４】
さらに、コントローラ１１が、コンパレータ１７から入力される比較結果のうち、誤り検出データ（SER(n-1)）と誤り検出データ（RER(n-1)）が不一致であることを示す入力の回数を計数（カウント）し、カウントされた不一致の回数に基づいてエラー処理を行うようにすることで、エラーの頻度に応じたエラー処理の有無を柔軟に設定することができる。例えば、所定の回数未満のエラーであって、画像の形成に大きな支障を生じないような場合に、敢えてエラー処理を行わないことにより円滑な画像の形成を進める等の対応を行うことが可能となる。
【００６５】
（第二実施形態）
次に、本発明の第二実施形態について、図５を用いて説明する。第一実施形態と同様の構成については、同じ符号を付して説明を省略する。
図５に、第二実施形態によるヘッド部内の各構成の接続及びデータの流れを示す。
第二実施形態の誤り検出データ生成部４１Ｂは、コントローラ１１からシフトレジスタ７１への伝送経路上で分岐した配線から印字データ（Head-Data-In）を入力され、その印字データに基づいて誤り検出データを生成する。第二実施形態の誤り検出データ生成部４１Ｂは、印字データの入力経路を除き、第一実施形態の誤り検出データ生成部４１と同様である。
【００６６】
図５に示す例では、誤り検出データ生成部４１Ｂに対して分岐する入力の配線はヘッド駆動部４０の配線上に設けられているが、ケーブル６１又はケーブル６２から分岐させてもよい。
【００６７】
また、第二実施形態では、コントローラ１１からシフトレジスタ７１へデータを伝送する伝送経路を介して送信された印字データに基づく誤り検出データの生成において、第一実施形態に比して、シフトレジスタ７１に記憶された印字データをラッチ信号（Latch）に基づいて出力する処理を省略している。このため、図示しないが、第二実施形態では、コントローラ１１からシフトレジスタ７１へデータを伝送する伝送経路を介さず出力された印字データに基づく誤り検出データを記憶する誤り検出データ記憶部１５に記憶される誤り検出データの数を第一実施形態に比して１回分減らし、２回分とすることでラッチ信号（Latch）に基づく同期制御に対応する。
【００６８】
第二実施形態によれば、第一実施形態と同様の効果に加えて、第一実施形態に比してラッチ信号（Latch）１回分だけ早く、コントローラ１１からシフトレジスタ７１へデータを伝送する伝送経路を介して送信された印字データのエラーを検出することができるので、エラーを生じた印字データに基づく画像の形成に対するエラー処理をより迅速に行うことができる。加えて、第一実施形態に比して誤り検出データ記憶部１５に記憶させる誤り検出データの数を減らすことができるので、より簡易で低コストな構成により、高精度な誤り検出データによるエラー検出を行うことができる。
【００６９】
（第三実施形態）
次に、本発明の第三実施携帯について、図６を用いて説明する。第一、第二の実施形態と同様の構成については、同じ符号を付して説明を省略する。
図６に、第三実施形態によるプリンタの各部の接続及びデータの流れを示す。
第三実施形態のプリンタは、誤り検出データ生成部１４、４１を有しない。第三の実施形態においてシフトレジスタ７１に記憶された印字データは、直接コンパレータ１７Ｃへ入力される。
【００７０】
印字データ記憶部１３から、コントローラ１１からシフトレジスタ７１へデータを送信する伝送経路を介さずに出力された印字データは、図６に示すように、印字データバッファ１５Ｃに記憶される。印字データバッファ１５Ｃは、少なくとも１回分の印字データを記憶する。
【００７１】
コンパレータ１７Ｃは、印字データバッファ１５Ｃに記憶された印字データと、シフトレジスタ７１から入力された印字データとを比較し、その一致／不一致を示す比較結果をコントローラ１１へ入力する。コントローラ１１は、コンパレータ１７Ｃから入力された比較結果が不一致を示す場合にエラーを生じたものと判別する。
【００７２】
コントローラ１１は、データに不一致を生じた場合、表示部９０に不一致を生じたヘッド番号と共に結果を表示する。同一ヘッドからの不一致が多い場合は、その量に応じて段階的に表示内容を変更し、最終的にはメカニカルコントローラ８０に対し、吐出駆動を停止する等の処置を行う。
【００７３】
第三実施形態によれば、第一実施形態と同様の効果に加えて、誤り検出データ生成部を設けずにエラーの検出を行うことができるので、より簡易で低コストな構成により、高精度な誤り検出データによるエラー検出を行うことができる。
【００７４】
（第四実施形態）
次に、本発明の第四実施形態について、図７を用いて説明する。第一〜第三実施形態と同様の構成については同じ符号を付して説明を省略する。
図７に、第四実施形態によるプリンタの各部の接続及びデータの流れを示す。
図７のNo.1ヘッド、No.2ヘッド…No.qヘッドのように、第四実施形態のプリンタは、複数のヘッド部５０を有し、ヘッド駆動部４０の誤り検出データ生成部４１Ｄは、各ヘッド部５０から出力された複数の印字データに基づく誤り検出データを生成する。
【００７５】
図７のNo1.印字データ、No.2印字データ…No.q印字データのようにに、制御部１０のメモリバッファ１２Ｄは、複数のヘッド部５０のそれぞれに入力する全ヘッド分の印字データを個別に記憶する。コントローラ１１は、制御部１０から各ヘッド部５０へデータを送信する伝送経路を介し、各ヘッド部５０に対応した印字データをラッチ信号（Latch）に基づいて同一タイミングで送信する。
そして、制御部１０の誤り検出データ生成部１４Ｄは、メモリバッファ１２Ｄから、制御部１０から各ヘッド部５０へデータを送信する伝送経路を介さずに出力された各ヘッド部５０に対応した複数の印字データに基づく誤り検出データを生成する。
【００７６】
誤り検出データ記憶部１５Ｄは、誤り検出データ生成部１４Ｄによって生成された誤り検出データ（SER）と、誤り検出データ生成部４１Ｄによって生成された誤り検出データ（RER）とを個別に記憶する。コンパレータ１７Ｄは、誤り検出データ記憶部１５Ｄに記憶された生成された誤り検出データ（SER）と誤り検出データ（RER）とを比較し、その一致／不一致を示す比較結果をコントローラ１１へ入力する。コントローラ１１は、コンパレータ１７Ｄから入力された比較結果が不一致である場合に、エラーを生じたものと判定する。
【００７７】
誤り検出データ生成部１４Ｄ、４１Ｄによる誤り検出データの生成は、各ヘッド部５０に対応する印字データに対して個別に生成された誤り検出データに基づく誤り検出データを生成するようにしてもよいし、各ヘッド部５０に対応する印字データに基づいて生成された一の統合データに対して誤り検出データを生成するようにしてもよい。
【００７８】
第四実施形態によれば、第一実施形態と同様の効果に加えて、複数のヘッド部５０に対して送信された印字データのエラー検出を一括して行うことができるので、各ヘッド部５０に対して個別に誤り検出データ生成部、比較部（コンパレータ１７等）及び誤り検出データ記憶部等を設ける必要がなく、より簡易で低コストな構成により、高精度な誤り検出データによるエラー検出を行うことができる。
【００７９】
なお、本発明の実施の形態は、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００８０】
例えば、実施形態に例示するプリンタ１は、印刷媒体に対してプリントヘッド３０を移動させるシリアルプリンタであるが、プリントヘッドを移動させないラインプリンタ等に本発明を適用してもよい。
【００８１】
また、前述の各実施形態の特徴を組み合わせてもよい。例えば、複数のヘッド部を有するプリンタの場合に、誤り検出データを生成するための印字データの入力元（Serial-Data-In）をシフトレジスタとしてもよいし、制御部からプリントヘッドへデータを送信する伝送経路上で分岐させた配線としてもよい。また、誤り検出データを生成せずに印字データ同士を比較する場合に、制御部からプリントヘッドへデータを送信する伝送経路上で分岐させた配線から比較部へ入力させた印字データと、制御部からプリントヘッドへデータを送信する伝送経路を介さず出力された印字データとを比較するようにしてもよい。
【００８２】
また、前述の各実施形態では、ハードウェアにより誤り検出データの生成、比較等を行っているが、誤り検出データの生成及び比較をソフトウェア処理によって行ってもよい。この場合、プリンタはＣＰＵ、ＲＡＭ、ＲＯＭ等を有するコンピュータを有し、ＣＰＵがＲＯＭ等から処理内容に対応するソフトウェアを読み出して処理することにより誤り検出データの生成、比較等を行う。
【００８３】
図８に、ソフトウェア処理による誤り検出データの生成及び比較の流れをフローチャートで示す。
ＣＰＵは、制御部からプリントヘッドへデータを送信する送信経路を介さず出力された印字データに基づいて誤り検出データ（SER）を生成する（ステップＳ１）。また、ＣＰＵは、制御部からプリントヘッドへデータを送信する送信経路を介して送信された印字データに基づいて誤り検出データ（RER）を生成する（ステップＳ２）。そして、ＣＰＵは、ステップＳ１で生成された誤り検出データ（SER）とステップＳ２で生成された誤り検出データ（RER）とを比較し（ステップＳ３）、比較結果に基づいてエラーの有無を判定し（ステップＳ４）、エラーの有無やエラーの発生回数に応じてエラー処理を行うか否かを決定し、対応する処理を行う。
【００８４】
ソフトウェア処理による誤り検出データの生成、比較によっても、前述の各実施形態と同様の効果を得ることができる。また、ソフトウェア処理によるエラーの検出を行う場合であっても、誤り検出データを生成せずに印字データ同士を比較してもよいし、制御部からプリントヘッドへデータを送信する送信経路を介して送信された印字データの入力元は、シフトレジスタ又は制御部からプリントヘッドへデータを送信する伝送経路上で分岐させた配線のどちらでもよい。
【００８５】
また、前述の各実施形態において、制御部からプリントヘッドへデータを送信する送信経路を介して送信された印字データに基づいた誤り検出データを生成する誤り検出データ生成部は、ヘッド駆動部に設けられているが、制御部に設けてもよい。このように、本発明の特徴を逸脱しない範囲で、各構成の配置その他の要素を適宜変更することができる。
【符号の説明】
【００８６】
１０   制御部
１１   コントローラ
１２   メモリバッファ
１３   印字データ記憶部
１４   誤り検出データ生成部
１５、１６    誤り検出データ記憶部
１７   コンパレータ
３０   プリントヘッド
４０   ヘッド駆動部
４１   誤り検出データ生成部
５０   ヘッド部
５１   ノズル
６１   ケーブル
６２   ケーブル
７１   シフトレジスタ
７２   ヘッドレジスタ
８０   メカニカルコントローラ
９０   表示部
【図１】
0005445035.tif 000002
【図２】
0005445035.tif 000003
【図３】
0005445035.tif 000004
【図４】
0005445035.tif 000005
【図５】
0005445035.tif 000006
【図６】
0005445035.tif 000007
【図７】
0005445035.tif 000008
【図８】
0005445035.tif 000009
【図９】
0005445035.tif 000010