(57)【要約】【課題】センサの出力レベルが変化する場合や出力レベルに差があるセンサが使用される場合でも、確実にマーク検出を行うことができる印刷装置及び印刷装置のマーク検出方法を提供する。【解決手段】ＭＣＵは、センサの出力レベルが非マーク領域のセンサの出力レベルである白レベルの所定の割合を下回ったときの用紙上の位置をマークの先端として決定し（Ｓ４５）、マーク幅の算出を開始する（Ｓ４５）。ＭＣＵは、センサの出力レベルが白レベルと、現在のセンサの出力レベルが前回のセンサの出力レベルを上回ったときの出力レベルの最小値であるマークレベルの最小値との中間値以上であり且つマーク幅が第１閾値以上第２閾値以下である場合に、その中間値を上回ったときの用紙上の位置をマークの後端として決定する（Ｓ５０、Ｓ５３、Ｓ５４）。【選択図】図８
2015013434.tif 000002
【特許請求の範囲】
【請求項１】
用紙を読み取るセンサと、
前記センサの出力レベルが、前記用紙の非マーク領域を読み取ったセンサの出力レベルである白レベルの所定の割合を下回ったときの用紙上の位置をマークの先端として決定する第１決定手段と、
前記センサの出力レベルが前記白レベルの所定の割合を下回ったときにマーク幅の算出を開始する算出手段と、
前記センサの出力レベルが、前記白レベルと、現在のセンサの出力レベルが前回のセンサの出力レベルを上回ったときの前記出力レベルの最小値であるマークレベルの最小値との中間値以上であり、且つ前記算出手段で算出されたマーク幅が第１閾値以上第２閾値以下である場合に、前記センサの出力レベルが前記中間値を上回ったときの用紙上の位置を前記マークの後端として決定する第２決定手段と、
を備えることを特徴とする印刷装置。
【請求項２】
前記第２決定手段は、前記センサの出力レベルが前記中間値未満であり、且つ前記算出手段で算出されたマーク幅が前記第２閾値以上である場合に、用紙なしであると決定することを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記第２決定手段は、前記センサの出力レベルが前記中間値以上であり、且つ前記算出手段で算出されたマーク幅が前記第１閾値未満である場合に、ノイズを検出したと決定することを特徴とする請求項１又は２に記載の印刷装置。
【請求項４】
前記マークの後端の決定後、マーク頭出し量だけ用紙を搬送する搬送手段と、
記憶手段に予め記憶されたマークの終端位置に対応する基準中間値と、前記センサの出力レベルから求まる中間値との差分を検出し、その差分に応じて前記マーク頭出し量を補正する補正手段と
を備えることを特徴とする請求項１乃至３のいずれか１項に記載の印刷装置。
【請求項５】
前記第２決定手段が用紙なしであると決定した場合、前記印刷装置の状態が変化したかの判定を行う処理において、マークの読み取り状態及び用紙なし状態の判定に使用される閾値は、前記マークの後端が決定された場合の中間値であることを特徴とする請求項２に記載の印刷装置。
【請求項６】
前記印刷装置の状態が変化したかの判定を行う処理において、前記マークの読み取り状態及び用紙なし状態の判定に使用される閾値が存在しない場合には、予め記憶手段に記録されている用紙なしを検出するための閾値を使用することを特徴とする請求項５に記載の印刷装置。
【請求項７】
用紙を読み取るセンサと、
前記センサの出力レベルが、前記用紙の非マーク領域を読み取ったセンサの出力レベルである白レベルの所定の割合を下回ったときの用紙上の位置をマークの先端として決定する第１決定手段と、
前記センサの出力レベルが前記白レベルの所定の割合を下回ったときにマーク幅の算出を開始する算出手段と、
前記第１決定手段が前記マークの先端を決定した後の前記センサの出力レベルが前記所定の割合以上であり、且つ前記算出手段で算出されたマーク幅が第１閾値以上第２閾値以下である場合に、前記センサの出力レベルが前記所定の割合を上回ったときの用紙上の位置を前記マークの後端として決定する第２決定手段と、
を備えることを特徴とする印刷装置。
【請求項８】
前記第２決定手段は、前記センサの出力レベルが前記所定の割合未満であり、且つ前記算出手段で算出されたマーク幅が前記第２閾値以上である場合に、用紙なしであると決定することを特徴とする請求項７に記載の印刷装置。
【請求項９】
前記第２決定手段は、前記センサの出力レベルが前記所定の割合以上であり、且つ前記算出手段で算出されたマーク幅が前記第１閾値未満である場合に、ノイズを検出したと決定することを特徴とする請求項７又は８に記載の印刷装置。
【請求項１０】
センサの出力レベルが用紙の非マーク領域を読み取ったセンサの出力レベルである白レベルの所定の割合を下回ったときの用紙上の位置をマークの先端として決定し、
前記センサの出力レベルが前記白レベルの所定の割合を下回ったときにマーク幅の算出を開始し、
前記センサの出力レベルが、前記白レベルと、現在のセンサの出力レベルが前回のセンサの出力レベルを上回ったときの前記出力レベルの最小値であるマークレベルの最小値との中間値以上であり、且つ前記マーク幅が第１閾値以上第２閾値以下である場合に、前記センサの出力レベルが前記中間値を上回ったときの用紙上の位置を前記マークの後端として決定する、
ことを特徴とする印刷装置のマーク検出方法。
【請求項１１】
センサの出力レベルが、用紙の非マーク領域を読み取ったセンサの出力レベルである白レベルの所定の割合を下回ったときの用紙上の位置をマークの先端として決定し、
前記センサの出力レベルが前記白レベルの所定の割合を下回ったときにマーク幅の算出を開始し、
前記マークの先端が決定された後の前記センサの出力レベルが前記所定の割合以上であり、且つ前記マーク幅が第１閾値以上第２閾値以下である場合に、前記センサの出力レベルが前記所定の割合を上回ったときの用紙上の位置を前記マークの後端として決定する、
ことを特徴とする印刷装置のマーク検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置及び印刷装置のマーク検出方法に関する。
【背景技術】
【０００２】
用紙上のマークを検出し、用紙の位置決めを行うサーマルプリンタが知られている（例えば、特許文献１参照）。このようなサーマルプリンタでは、マーク検出用の閾値が初期設定として不揮発性メモリに登録され、設定された閾値をセンサレベルの出力値と比較することにより、用紙上のマーク検出が実行されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１８２３６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のマーク検出方法では、使用されるフォトセンサによって出力レベルに差があるため、各サーマルプリンタに対し適正な閾値設定が必要であり、初期設定分の工数がかかる。また、閾値を適正な値に設定しても、温度ドリフトによる時間的変化などにより、フォトセンサの出力レベルが変化した場合には、正常にマークの検出ができなくなるおそれがある。
【０００５】
本発明は、上記課題に鑑みなされたものであり、センサの出力レベルが変化する場合や出力レベルに差があるセンサが使用される場合でも、確実にマーク検出を行うことができる印刷装置及び印刷装置のマーク検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本明細書に記載の印刷装置は、用紙を読み取るセンサと、前記センサの出力レベルが、前記用紙の非マーク領域を読み取ったセンサの出力レベルである白レベルの所定の割合を下回ったときの用紙上の位置をマークの先端として決定する第１決定手段と、前記センサの出力レベルが前記白レベルの所定の割合を下回ったときにマーク幅の算出を開始する算出手段と、前記センサの出力レベルが、前記白レベルと、現在のセンサの出力レベルが前回のセンサの出力レベルを上回ったときの前記出力レベルの最小値であるマークレベルの最小値との中間値以上であり、且つ前記算出手段で算出されたマーク幅が第１閾値以上第２閾値以下である場合に、前記センサの出力レベルが前記中間値を上回ったときの用紙上の位置を前記マークの後端として決定する第２決定手段と、を備えることを特徴とする。かかる構成によれば、センサの出力レベルが変化する場合や出力レベルに差があるセンサが使用される場合でも、確実にマーク検出を行うことができる。
【０００７】
好ましくは、前記第２決定手段は、前記センサの出力レベルが前記中間値未満であり、且つ前記算出手段で算出されたマーク幅が前記第２閾値以上である場合に、用紙なしであると決定することを特徴とする。かかる構成によれば、用紙の有無の検出を行うことができる。
【０００８】
好ましくは、前記第２決定手段は、前記センサの出力レベルが前記中間値以上であり、且つ前記算出手段で算出されたマーク幅が前記第１閾値未満である場合に、ノイズを検出したと決定することを特徴とする。かかる構成によれば、ノイズ検出を行うことができる。
【０００９】
好ましくは、印刷装置は、前記マークの後端の決定後、マーク頭出し量だけ用紙を搬送する搬送手段と、記憶手段に予め記憶されたマークの終端位置に対応する基準中間値と、前記センサの出力レベルから求まる中間値との差分を検出し、その差分に応じて前記マーク頭出し量を補正する補正手段とを備えることを特徴とする。かかる構成によれば、マーク検出後の用紙の停止位置が正しい用紙の停止位置からずれることを防止することができる。
【００１０】
好ましくは、前記第２決定手段が用紙なしであると決定した場合、前記印刷装置の状態が変化したかの判定を行う処理において、マークの読み取り状態及び用紙なし状態の判定に使用される閾値は、前記マークの後端が決定された場合の中間値であることを特徴とする。かかる構成によれば、印刷装置の状態が変化したかの判定を行う処理において、用紙なしの誤検出の発生を抑えることができる。
【００１１】
好ましくは、前記印刷装置の状態が変化したかの判定を行う処理において、前記マークの読み取り状態及び用紙なし状態の判定に使用される閾値が存在しない場合には、予め記憶手段に記録されている用紙なしを検出するための閾値を使用することを特徴とする。かかる構成によれば、電源投入直後のように、マークの読み取り状態及び用紙なし状態の判定に使用される閾値が存在しない場合でも、用紙なしの誤検出の発生を抑えることができる。
【００１２】
本明細書に記載の印刷装置は、用紙を読み取るセンサと、前記センサの出力レベルが、前記用紙の非マーク領域を読み取ったセンサの出力レベルである白レベルの所定の割合を下回ったときの用紙上の位置をマークの先端として決定する第１決定手段と、前記センサの出力レベルが前記白レベルの所定の割合を下回ったときにマーク幅の算出を開始する算出手段と、前記第１決定手段が前記マークの先端を決定した後の前記センサの出力レベルが前記所定の割合以上であり、且つ前記算出手段で算出されたマーク幅が第１閾値以上第２閾値以下である場合に、前記センサの出力レベルが前記所定の割合を上回ったときの用紙上の位置を前記マークの後端として決定する第２決定手段と、を備えることを特徴とする。かかる構成によれば、センサの出力レベルが変化する場合や出力レベルに差があるセンサが使用される場合でも、確実にマーク検出を行うことができる。
【００１３】
好ましくは、前記第２決定手段は、前記センサの出力レベルが前記所定の割合未満であり、且つ前記算出手段で算出されたマーク幅が前記第２閾値以上である場合に、用紙なしであると決定することを特徴とする。かかる構成によれば、用紙の有無の検出を行うことができる。
【００１４】
好ましくは、前記第２決定手段は、前記センサの出力レベルが前記所定の割合以上であり、且つ前記算出手段で算出されたマーク幅が前記第１閾値未満である場合に、ノイズを検出したと決定することを特徴とする。かかる構成によれば、ノイズ検出を行うことができる。
【００１５】
本明細書に記載の印刷装置のマーク検出方法は、センサの出力レベルが用紙の非マーク領域を読み取ったセンサの出力レベルである白レベルの所定の割合を下回ったときの用紙上の位置をマークの先端として決定し、前記センサの出力レベルが前記白レベルの所定の割合を下回ったときにマーク幅の算出を開始し、前記センサの出力レベルが、前記白レベルと、現在のセンサの出力レベルが前回のセンサの出力レベルを上回ったときの前記出力レベルの最小値であるマークレベルの最小値との中間値以上であり、且つ前記マーク幅が第１閾値以上第２閾値以下である場合に、前記センサの出力レベルが前記中間値を上回ったときの用紙上の位置を前記マークの後端として決定する、ことを特徴とする。かかる構成によれば、センサの出力レベルが変化する場合や出力レベルに差があるセンサが使用される場合でも、確実にマーク検出を行うことができる。
【００１６】
本明細書に記載の印刷装置のマーク検出方法は、センサの出力レベルが、用紙の非マーク領域を読み取ったセンサの出力レベルである白レベルの所定の割合を下回ったときの用紙上の位置をマークの先端として決定し、前記センサの出力レベルが前記白レベルの所定の割合を下回ったときにマーク幅の算出を開始し、前記マークの先端が決定された後の前記センサの出力レベルが前記所定の割合以上であり、且つ前記マーク幅が第１閾値以上第２閾値以下である場合に、前記センサの出力レベルが前記所定の割合を上回ったときの用紙上の位置を前記マークの後端として決定する、ことを特徴とする。かかる構成によれば、センサの出力レベルが変化する場合や出力レベルに差があるセンサが使用される場合でも、確実にマーク検出を行うことができる。
【発明の効果】
【００１７】
本発明によれば、センサの出力レベルが変化する場合や出力レベルに差があるセンサが使用される場合でも、確実にマーク検出を行うことができる。
【図面の簡単な説明】
【００１８】
【図１】本実施の形態に係る印刷装置と情報処理装置との接続関係を示す図である。
【図２】サーマルプリンタの構成を示すブロック図である。
【図３】ＭＣＵで実行されるメインルーチンの処理の一例を示すフローチャートである。
【図４】図３のプリンタ状態遷移判定処理に関するエラー状態検出用の割り込み処理を示すフローチャートである。
【図５】フォトセンサの出力レベルの一例を示す図である。
【図６】図３のコマンド解析処理を示すフローチャートである。
【図７】図３の印字起動処理を示すフローチャートである。
【図８】図６のマーク検出処理を示すフローチャートである。
【図９】フォトセンサの出力レベルの一例を示す図である。
【図１０】フォトセンサの複数の出力レベルの例を示す図である。
【図１１】マーク検出処理の変形例を示すフローチャートである。
【発明を実施するための形態】
【００１９】
以下、本発明の実施例について図面を参照し説明する。
【実施例１】
【００２０】
図１は、本実施の形態に係る印刷装置と情報処理装置との接続関係を示す図である。本実施の形態に係る印刷装置は、例えば、サーマルプリンタ１である。尚、本実施の形態に係る印刷装置は、用紙（例えば、感熱紙）上のマークを読み取ることによって、用紙の位置決めを行う装置であればよく、サーマルプリンタに限定されるものではない。用紙の位置決めを行うためのマークは用紙の片面に印刷されていてもよいし、両面に印刷されていてもよい。また、本実施の形態において、マークは、所定の間隔（例えば１０ｃｍ）で用紙に印刷されている。マークの幅方向は、用紙の搬送方向と平行である。
【００２１】
情報処理装置は、図１の例ではコンピュータ２であるが、例えば、携帯電話又はタブレット端末などでもよい。コンピュータ２は、サーマルプリンタ１とデータ通信を行う。例えば、コンピュータ２は、サーマルプリンタ１に印字データを送信し、サーマルプリンタ１は印字データを記録用紙に印刷する。
【００２２】
図２は、サーマルプリンタの構成を示すブロック図である。図２に示すように、サーマルプリンタ１は、オペレーションパネル１０、メカユニット２０、制御回路ユニット３０及びバッテリ６０により構成されている。
【００２３】
また、制御回路ユニット３０内には、電源制御回路３３及びＭＣＵ（Micro Control Unit）３６が設けられている。ＭＣＵ３６は、第１決定手段、算出手段、第２決定手段及び補正手段として機能する。電源制御回路３３は、ＭＣＵ３６と接続されており、バッテリ６０から制御回路ユニット３０に供給される電力を制御する。ＭＣＵ３６は、サーマルプリンタの全体の制御を行う。バッテリ６０は、本実施の形態に用いられるサーマルプリンタの電源の供給源である。
【００２４】
オペレーションパネル１０は、電源スイッチ１１、用紙送りスイッチ１２及びＬＥＤ（Light Emitting Diode）１３により構成されている。電源スイッチ１１は、ユーザにより操作されて、電源をオン、オフするための制御信号を制御回路ユニット内の電源制御回路３３に伝え、電源のオン、オフの制御を行う。この電源スイッチ１１としては、押しボタンスイッチ等が用いられる。
【００２５】
用紙送りスイッチ１２は、ユーザによる用紙送り操作のためのスイッチである。用紙送りスイッチ１２はオペレーションパネル制御回路３５を介して用紙送り用のコマンドをＭＣＵ３６に送信する。ＬＥＤ１３は、オペレーションパネル制御回路３５を介してＭＣＵ３６からの指示に応じて発光する。
【００２６】
メカユニット２０は、サーマルヘッド２１、用紙送りモータ２２、ヘッド温度検出サーミスタ２３、カバーオープン検出センサ２４及びフォトセンサ２５により構成されている。
【００２７】
サーマルヘッド２１は、直線的に並んだ発熱抵抗体に選択的に電位を与えて発熱させ、この熱により反応する感熱紙等の用紙に文字やイメージデータを印刷する。搬送手段としての用紙送りモータ２２は、ステッピングモータにより構成されており、用紙を搬送するために使用される。ヘッド温度検出サーミスタ２３は、サーマルヘッド２１の温度を検出する。カバーオープン検出センサ２４はメカユニット２０を覆うカバーの開閉状態を検出する。フォトセンサ２５は、マークや用紙の有無の検出のために使用される光学式読取センサであり、発光素子及び受光素子を有する。発光素子は光を用紙に照射し、受光素子は用紙からの反射光を受信し、反射光をアナログ信号としてＡ／Ｄ変換回路４２に出力する。尚、マークが用紙の両面に印刷されている場合に対処するため、メカユニット２０は複数のフォトセンサ２５を有してもよい。この場合、フォトセンサ２５は用紙のおもて面と裏面にそれぞれ対向するように配置される。
【００２８】
制御回路ユニット３０は、電源制御回路３３及びＭＣＵ３６のほか、サーマルヘッド駆動回路３１、モータ駆動回路３２、センサ検出回路３４、オペレーションパネル制御回路３５、発振器３７、インターフェース（I/F）回路３８、リセット回路３９、ＲＡＭ（Random Access Memory）４０、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）４１及びＡ／Ｄ変換回路４２を備えている。ＲＡＭ４０及びＥＥＰＲＯＭ４１の各々は、第１記憶手段及び第２記憶手段として機能する。
【００２９】
サーマルヘッド駆動回路３１は、ＭＣＵ３６からの指示に応じて、サーマルヘッド２１を駆動する。モータ駆動回路３２は、ＭＣＵ３６からの指示に応じて、用紙送りモータ２２へ駆動電流を供給する。センサ検出回路３４は、カバーオープン検出センサ２４で検出された信号をＭＣＵ３６に出力する。オペレーションパネル制御回路３５は、ＭＣＵ３６からの指示に応じてＬＥＤ１３のオン・オフを制御するとともに、用紙送りスイッチ１２からの制御信号をＭＣＵ３６へ出力する。
【００３０】
発振器３７は、所定周波数のクロック信号をＭＣＵ３６に供給する。インターフェース（I/F）回路３８は、コンピュータ２から印字データやコマンドを受信すると共に、コンピュータ２からのコマンドに対する応答信号をコンピュータ２に返信する。リセット回路３９は、サーマルプリンタ１の電源がオフになると、ＭＣＵ３６にリセット要求信号を出力してサーマルプリンタ１を初期状態にする。
【００３１】
ＲＡＭ４０は、揮発性メモリであり、コンピュータ２から入力された受信データを一時的に記憶したり、処理途中のデータを一時的に記憶する。ＥＥＰＲＯＭ４１は不揮発性メモリであり、ＭＣＵ３６が実行するためのソフトウエア等を内蔵しており、ＭＣＵ３６からの要求に応じて読み出される。Ａ／Ｄ変換回路４２は、フォトセンサ２５からのアナログ信号をデジタル信号に変換し、変換したデジタル信号をＭＣＵ３６に出力する。つまり、ＭＣＵ３６は、Ａ／Ｄ変換回路４２を介してフォトセンサ２５からの出力値（レベル）を受信する。
【００３２】
図３は、ＭＣＵ３６で実行されるメインルーチンの処理の一例を示すフローチャートである。
【００３３】
まず、電源スイッチ１１の操作によりプリンタ電源がオンされると（ステップＳ１）、初期化処理を実行する（ステップＳ２）。初期化処理では、サーマルプリンタ１の動作に必要な各種情報をＭＣＵ３６の内部ＲＡＭに設定する。尚、サーマルプリンタ１の動作に応じて、内部ＲＡＭに設定した各種情報の値は変化する。
【００３４】
次いで、ＭＣＵ３６は、リセット回路３９からリセット要求があるか否かを判断し（ステップＳ３）、リセット要求がある場合には、手順はステップＳ２に戻る。リセット要求がない場合には、ＭＣＵ３６は、プリンタ状態遷移判定処理を実行する（ステップＳ４）。具体的には、ＭＣＵ３６は、サーマルプリンタ１の状態が変化したかの判定を行い、サーマルプリンタ１の状態が変化した場合には、コンピュータ２へサーマルプリンタ１の状態を通知する。
【００３５】
次いで、ＭＣＵ３６は、サーマルプリンタ１がエラー状態であるか否かを判断する（ステップＳ５）。サーマルプリンタ１のエラー状態は、後述するタイマ割込処理ルーチンにおいて検出される。サーマルプリンタ１がエラー状態である場合には（ステップＳ５でＹＥＳ）、手順はステップＳ３に戻る。
【００３６】
サーマルプリンタ１がエラー状態でない場合には（ステップＳ５でＮＯ）、コンピュータ２からの受信データがあれば、ＭＣＵ３６は、この受信データから印刷に関する各コマンドを抽出して実行するためのコマンド解析処理を行う（ステップＳ６）。尚、コンピュータ２からの受信データは、タイマ割込処理によって受信されて、所定の領域に格納されるが、この処理の説明は省略する。
【００３７】
次いで、ＭＣＵ３６は、コンピュータ２からの受信データに印字データが含まれているか否かを判断する（ステップＳ７）。印字データが含まれていない場合には（ステップＳ７でＮＯ）、手順はステップＳ３に戻る。印字データが含まれている場合には（ステップＳ７でＹＥＳ）、ＭＣＵ３６は、印字起動処理を実行し、印字処理を開始する（ステップＳ８）。具体的には、印字データをサーマルヘッド２１に転送し、印字ステップ数を設定し、タイマ割込処理により用紙送りモータ２２のステップ数と同期させて印字を実行する。
【００３８】
図４は、図３のプリンタ状態遷移判定処理に関するエラー状態検出用の割り込み処理を示すフローチャートである。
【００３９】
最初に、この割り込み処理が実行されると、不図示のタスクカウンタが更新される（ステップＳ１１）。このタスクカウンタは、ＭＣＵ３６内に設けられている。
【００４０】
次に、ＭＣＵ３６は、タスクカウンタが電源スイッチ状態検出タスクであるか否かを判別する（ステップＳ１２）。タスクカウンタが電源スイッチ状態検出タスクである場合には（ステップＳ１２でＹＥＳ）、ＭＣＵ３６は電源オフ判定処理を行う（ステップＳ１３）。この処理では、ＭＣＵ３６は電源スイッチ１１が押下されているか否かの判定を行う。そして、電源スイッチ１１が押下されている場合には、ＭＣＵ３６は、サーマルプリンタ１の電源がオフ状態であることをコンピュータ２へ通知する。その後、割り込み処理を終了する。電源スイッチ１１が押下されていない場合には、ＭＣＵ３６は、そのまま割り込み処理を終了する。
【００４１】
次に、タスクカウンタが電源スイッチ状態検出タスクでない場合には（ステップＳ１２でＮＯ）、ＭＣＵ３６は、タスクカウンタがマーク逃げ検出タスクであるか否かを判別する（ステップＳ１４）。マーク逃げとは、フォトセンサ２５の出力レベルが、マークの読み取り状態を示すのか、用紙がない状態を示すのかを判断することである。タスクカウンタがマーク逃げ検出タスクである場合には（ステップＳ１４でＹＥＳ）、ＭＣＵ３６は、マーク逃げ判定処理を行う（ステップＳ１５）。マーク逃げ判定処理は、例えば、用紙が無くなり、用紙を交換した場合のように、サーマルプリンタ１の状態が変化したか否かを判定するために実行される。
【００４２】
図５は、フォトセンサの出力レベルの一例を示す図である。図５の実線は、マークを読み取った場合のフォトセンサ２５の出力レベルを示す。図５の破線は、用紙がない場合のフォトセンサ２５の出力レベルを示す。
【００４３】
フォトセンサ２５が非マーク領域を読み取っている場合、即ち、用紙の白色領域を読み取っている場合、フォトセンサ２５の出力レベルは約１．８Ｖである。この出力レベルを白レベル（ＬＷ）という。そして、マークが読み取られている場合には、用紙の搬送に応じてフォトセンサ２５の出力レベルは徐々に低下する。又、用紙がない場合にも、フォトセンサ２５の出力レベルは低下する。これは、マーク上又は用紙搬送路上では光の反射率が低下するためである。マークが読み取られている場合のフォトセンサ２５の出力レベルの最小値をＬＭとする。
【００４４】
図５に示すように、マークを読み取り中のフォトセンサ２５の出力レベルは低下するが、マーク読み取り後は、フォトセンサ２５の出力レベルは、元の出力レベル（即ち白レベル）に戻る。一方、用紙がない場合には、フォトセンサ２５の出力レベルは、元の出力レベル（即ち白レベル）に戻らない。
【００４５】
このため、マーク逃げ判定処理において、フォトセンサ２５の出力が低下し白レベルに対して所定の割合（例えば８７．５％）以下になった場合には、ＭＣＵ３６は、用紙送りモータ２２で用紙をマークの幅を超える所定量（例えばマークの幅の２倍の長さ）だけ搬送し、フォトセンサ２５の出力レベルを検出する。そして、ＭＣＵ３６は、検出された出力レベルが白レベル（ＬＷ）と最小値（ＬＭ）との中間値（ＬＭＴＨ）を超えるか否かを判別する。検出された出力レベルが中間値（ＬＭＴＨ）を超える場合には、ＭＣＵ３６は、サーマルプリンタ１がマークの読み取り状態であると判断する。一方、検出された出力レベルが中間値（ＬＭＴＨ）を超えない場合には、ＭＣＵ３６は、サーマルプリンタ１が用紙がない状態であると判断する。
【００４６】
尚、上記中間値（ＬＭＴＨ）は、後述するマーク検出処理で算出されるため、電源投入直後のマーク逃げ判定処理では、ＭＣＵ３６は、予めサーマルプリンタ１のＥＥＰＲＯＭ４１に登録されている用紙なし検出閾値を利用する。
【００４７】
サーマルプリンタ１が用紙がない状態である場合は、ＭＣＵ３６は、サーマルプリンタ１が用紙なし状態であることをコンピュータ２へ通知する。その後、割り込み処理を終了する。サーマルプリンタ１がマークの読み取り状態である場合は、ＭＣＵ３６は、そのまま割り込み処理を終了する。
【００４８】
図４に戻り、タスクカウンタがマーク逃げ検出タスクでない場合には（ステップＳ１４でＮＯ）、タスクカウンタに応じたエラーチェックが実行される（ステップＳ１６）。エラーが検出された場合には、ＭＣＵ３６は、サーマルプリンタ１のエラーをコンピュータ２へ通知する。その後、割り込み処理を終了する。
【００４９】
図６は、図３のコマンド解析処理を示すフローチャートである。
【００５０】
ＭＣＵ３６は、コンピュータ２から受信したコマンドデータを解析する（ステップＳ２１）。ＭＣＵ３６は、当該コマンドデータが印字データであるか否かを判別する（ステップＳ２２）。当該コマンドデータが印字データである場合には（ステップＳ２２でＹＥＳ）、ＭＣＵ３６は、コマンドデータをサーマルヘッド２１で利用可能な印字データに変換する印字データ展開処理を実行し（ステップＳ２３）、本処理を終了する。
【００５１】
当該コマンドデータが印字データでない場合には（ステップＳ２２でＮＯ）、ＭＣＵ３６は、当該コマンドデータが状態通知要求であるか否かを判別する（ステップＳ２４）。当該コマンドデータが状態通知要求である場合には（ステップＳ２４でＹＥＳ）、ＭＣＵ３６は、コンピュータ２へサーマルプリンタ１の状態を通知する状態通知処理を実行し（ステップＳ２５）、本処理を終了する。
【００５２】
当該コマンドデータが状態通知要求でない場合には（ステップＳ２４でＮＯ）、ＭＣＵ３６は、当該コマンドデータがマーク検出要求であるか否かを判別する（ステップＳ２６）。当該コマンドデータがマーク検出要求である場合には（ステップＳ２６でＹＥＳ）、ＭＣＵ３６は、後述するマーク検出処理を実行し（ステップＳ２７）、本処理を終了する。当該コマンドデータがマーク検出要求でない場合には（ステップＳ２６でＮＯ）、ＭＣＵ３６は、各コマンド内容に応じたコマンド解析処理を実行し（ステップＳ２８）、本処理を終了する。
【００５３】
図７は、図３の印字起動処理を示すフローチャートである。
【００５４】
印字起動処理が開始されると、ＭＣＵ３６は、ヘッド駆動回路３１にサーマルヘッド２１を駆動させ、モータ駆動回路３２に用紙送りモータ２２を駆動させる（ステップＳ３１）。具体的には、ＭＣＵ３６は、モータステップ数をカウントするカウンタを備え、ステップ毎にモータ駆動用制御信号をモータ駆動回路３２に送信し、モータ駆動回路３２はステップ毎にモータ相を用紙送りモータ２２に出力する。また、ＭＣＵ３６は、同時にヘッド駆動回路３１に印字データを送信し、ヘッド駆動回路３１は印字データに基づいてサーマルヘッド２１を駆動する。ＭＣＵ３６は、設定された用紙送り量の処理が完了するまで、モータステップ数をカウントダウンしながら、ヘッド駆動回路３１及びモータ駆動回路３２への上記処理を継続する。モータステップ数が０になると、本処理は終了する。
【００５５】
図８は、図６のマーク検出処理を示すフローチャートである。図９は、フォトセンサの出力レベルの一例を示す図である。ここでは、マーク幅が５ｍｍの用紙を使用している。なお、図９において「マーク幅」とは、フォトセンサ出力が白レベルに対して８７．５％となった位置から、白レベルと最小値との中央値となった位置までの距離を言う。また、例えば、用紙送りモータ２２の１ステップ当たり用紙が０．１２５ｍｍ搬送され、マーク幅カウンタが１増加する。
【００５６】
まず、ＭＣＵ３６は、Ａ／Ｄ変換回路４２を介してフォトセンサ２５の出力レベルを受信し、この出力レベルを予めＥＥＰＲＯＭ４１に登録されている用紙なし検出閾値と比較し、サーマルプリンタ１に用紙があることを確認する（ステップＳ４１）。
【００５７】
次に、ＭＣＵ３６は、用紙送りモータ２２が停止している状態で、非マーク領域（即ち、用紙の白色領域）のフォトセンサ２５の出力レベル（即ち、白レベル）をＲＡＭ４０又はＥＥＰＲＯＭ４１に記憶する（ステップＳ４２）。ここでは、図９の白レベル（ＬＷ）の値がＲＡＭ４０又はＥＥＰＲＯＭ４１に記憶される。
【００５８】
次いで、ＭＣＵ３６は、モータ駆動回路３２を介して用紙送りモータ２２の駆動を開始すると共にフォトセンサ２５の出力レベルを継続的に受信する（ステップＳ４３）。ＭＣＵ３６は、マーク先端を検出したか否かの判定のために、フォトセンサ２５の出力レベルが白レベルの８７．５％以下となったか否かを判別する（ステップＳ４４）。尚、マークの先端を判定するための出力レベルは、白レベルの８７．５％に限定されない。しかし、マークの先端を判定するための出力レベルをシフト演算で高速に決定したり、ノイズの影響を排除するために、マークの先端を判定するための出力レベルは、白レベルの８７．５％に設定されるのが好ましい。
【００５９】
フォトセンサ２５の出力レベルが白レベルの８７．５％以下でない場合（ステップＳ４４でＮＯ）、手順はステップＳ４３に戻る。一方、フォトセンサ２５の出力レベルが白レベルの８７．５％以下である場合（ステップＳ４４でＹＥＳ）、ＭＣＵ３６は、フォトセンサ２５の出力レベルが白レベルの８７．５％になった用紙上の位置（具体的には、フォトセンサ２５の出力レベルが白レベルの８７．５％になったモータステップ数）をマークの先端と判定し、マーク幅カウンタのカウントを開始し、検出された出力レベルをフォトセンサ２５の出力レベルの最小値としてＲＡＭ４０又はＥＥＰＲＯＭ４１に記憶する（ステップＳ４５）。マーク幅を計測するためのマーク幅カウンタは、ＭＣＵ３６に設けられる。
【００６０】
そして、ＭＣＵ３６は、フォトセンサ２５の現在の出力レベルと前回検出した出力レベルとを比較し、現在の出力レベルが前回の出力レベル以上であるか否かを判別する（ステップＳ４６）。フォトセンサ２５の現在の出力レベルが前回の出力レベル未満である場合（ステップＳ４６でＮＯ）、ＭＣＵ３６は、マーク幅カウンタを１インクリメントし、ＲＡＭ４０又はＥＥＰＲＯＭ４１に記憶された出力レベルの最小値を現在の出力レベルに書き換え（ステップＳ４７）、ステップＳ４６に戻る。ステップＳ４６及びステップＳ４７の処理は、用紙が搬送されながら（即ち、モータステップ数及びマーク幅カウンタが増加しながら）実行される。
【００６１】
一方、フォトセンサ２５の現在の出力レベルが前回の出力レベル以上となった場合（ステップＳ４６でＹＥＳ）、ＭＣＵ３６は、前回の出力レベル以上になった現在の出力レベルをマークレベルの最小値ＬＭとしてＲＡＭ４０又はＥＥＰＲＯＭ４１に記憶し（ステップＳ４８）、マーク幅カウンタを１インクリメントする（ステップＳ４９）。尚、マークレベルの最小値ＬＭを決める方法は、ステップＳ４８の処理に限定されない。例えば、現在の出力レベルが前回の出力レベル以上となった場合、ＭＣＵ３６は、前回の出力レベルをマークレベルの最小値ＬＭと決定してもよい。
【００６２】
ＭＣＵ３６は、現在の出力レベルが、ＲＡＭ４０又はＥＥＰＲＯＭ４１に記憶された白レベルＬＷと最小値ＬＭとの中間値ＬＭＴＨ以上であるか否かを判別する（ステップＳ５０）。中間値ＬＭＴＨは、（ＬＭ＋ＬＷ）／２で表される。また、ＭＣＵ３６は、算出した中間値ＬＭＴＨをＲＡＭ４０又はＥＥＰＲＯＭ４１に記憶する。
【００６３】
現在の出力レベルが中間値ＬＭＴＨ未満である場合（ステップＳ５０でＮＯ）、ＭＣＵ３６は、マーク幅カウンタを参照してマーク幅が８ｍｍを超えているか否かを判別する（ステップＳ５１）。尚、マーク幅は、マーク幅カウンタのカウント値に１カウントあたりの用紙搬送量（例えば０．１２５ｍｍ）を乗算することで求められる。また、８ｍｍの値は、読み取り誤差などを考慮して、５ｍｍのマーク幅に３ｍｍのマージンを加えた値である。
【００６４】
マーク幅が８ｍｍを超えていない場合（ステップＳ５１でＮＯ）、手順はステップＳ４９に戻る。マーク幅が８ｍｍを超えている場合（ステップＳ５１でＮＯ）、ＭＣＵ３６は、現在の状態を用紙なしと判定し、中間値ＬＭＴＨの値をクリアする、即ち、中間値ＬＭＴＨの値を０にする（ステップＳ５２）、本処理を終了する。このように、マーク検出中に用紙なしとなった場合、用紙がない状態におけるフォトセンサ出力レベルが最小値となり、マークを読み取った場合のマークレベルの最小値ＬＭよりも低くなる。これにより、用紙セット後のカバークローズ時に、外乱光によって用紙なしの誤検出が発生する可能性がある。このため、上述したマーク逃げ判定処理において、マークの読み取り状態及び用紙なし状態の判定に使用される中間値ＬＭＴＨとして、前回マークが検出された時の中間値ＬＭＴＨが使用される。つまり、マーク幅が８ｍｍを超えた場合の最小値に基づいて算出できる中間値ＬＭＴＨは使用しない。マークが正常に検出された時の中間値ＬＭＴＨは、ＲＡＭ４０又はＥＥＰＲＯＭ４１に記憶される。尚、ステップＳ５２で、ＭＣＵ３６は、中間値ＬＭＴＨの値をクリアするのは、用紙なしと判定された場合の中間値ＬＭＴＨの値がマーク逃げ判定処理において使用されるのを避けるためである。
【００６５】
現在の出力レベルが中間値ＬＭＴＨ以上であると判定された場合（ステップＳ５０でＹＥＳ）、ＭＣＵ３６はマーク幅カウンタを参照して、マーク幅が２ｍｍ以上８ｍｍ以下であるか否かを判別する（ステップＳ５３）。第１閾値としての２ｍｍ及び第２閾値としての８ｍｍは、マーク幅が適切であるか否かを判断するための下限値及び上限値であり、読み取り誤差などを考慮して、５ｍｍのマーク幅に±３ｍｍのマージンを加えた値である。このマージンは、±３ｍｍに限定されるものではない。
【００６６】
マーク幅が２ｍｍ以上８ｍｍ以下である場合（ステップＳ５３でＹＥＳ）、ＭＣＵ３６は、マークが検出されたものとして、フォトセンサ２５の出力レベルが中間値ＬＭＴＨになった用紙上の位置（具体的には、フォトセンサ２５の出力レベルが中間値ＬＭＴＨになったモータステップ数）をマークの終端と判定する（ステップＳ５４）。ステップＳ４１〜ステップ５４のルートを通る処理により、ＭＣＵ３６は、マークの位置を判定する。この場合、マークの位置は正確に検出されている。その後、ＭＣＵ３６は、次のマークを検出するため、用紙送りモータ２２に所定のマーク頭出し量だけ紙送りさせて（ステップＳ５５）、本処理を終了する。「マーク頭出し量」とは、マーク検出後次のマーク位置まで用紙を搬送する際の搬送量を指す。一方、マーク幅が２ｍｍ未満である場合（ステップＳ５３でＮＯ）、ＭＣＵ３６は、マーク以外のノイズを検出したと判定し、マーク幅カウンタをクリアする（ステップＳ５６）。その後、手順はステップＳ４４に戻る。また、マーク幅が８ｍｍを超える場合、用紙なしと判定し、マーク幅カウンタをクリアする（ステップＳ５６）。
【００６７】
図１０は、フォトセンサの複数の出力レベルの例を示す図である。図１０では、中間値ＬＭＴＨは補正が不要な場合のマークの終端位置に対応する出力レベルであるものとする。
【００６８】
上記マーク検出処理では、ＭＣＵ３６は、出力レベルの最小値を検出した後に判別される、フォトセンサ２５の出力レベルが中間値ＬＭＴＨになった用紙上の位置をマークの終端と判定し、その後、用紙送りモータ２２に所定のマーク頭出し量だけ紙送りさせて、次のマークを検出している。
【００６９】
図１０に示すように、マークを読み取ったときのマークレベルの最小値ＬＭ２が中間値ＬＭＴＨに対応するマークレベルの最小値ＬＭよりも低くなると、中間値ＬＭＴＨ２も中間値ＬＭＴＨより低くなる。この結果、判別されるマークの終端位置が実際のマーク終端位置よりも負方向にずれ、マーク検出後にマーク頭出し量だけ紙送りした際の用紙の停止位置も正しい用紙の停止位置からずれる。
【００７０】
一方、マークを読み取ったときのマークレベルの最小値ＬＭ３が中間値ＬＭＴＨに対応するマークレベルの最小値ＬＭよりも高くなると、中間値ＬＭＴＨ３も中間値ＬＭＴＨより高くなる。この結果、判別されるマークの終端位置が実際のマーク終端位置よりも正方向にずれ、マーク検出後にマーク頭出し量だけ紙送りした際の用紙の停止位置も正しい用紙の停止位置からずれる。
【００７１】
そこで、ＭＣＵ３６は、マークの終端位置に対応する基準値となる中間値ＬＭＴＨを予めＲＡＭ４０又はＥＥＰＲＯＭ４１に記憶し、マーク読み取り時に検出された白レベルと最小値とから求められる中間値ＬＭＴＨ２又は中間値ＬＭＴＨ３と中間値ＬＭＴＨとの差分を検出し、その差分に対応する距離だけマーク頭出し量を補正する。これにより、マーク検出後の用紙の停止位置が正確な用紙の停止位置からずれることを防止する。特に、サーマルプリンタ１の仕様に含まれない反射率を有するマークを使用する場合、フォトセンサ２５の経年変化が生じている場合、又はフォトセンサ２５の出力レベルが著しく変化する場合にこの補正は有効である。
【００７２】
例えば、中間値ＬＭＴＨ２では、マークの終端位置が０．２５ｍｍだけ負方向にずれる場合、ＭＣＵ３６は、マーク頭出し量に０．２５ｍｍを加算した値を新たなマーク頭出し量に設定する。一方、中間値ＬＭＴＨ３では、マークの終端位置が０．２５ｍｍだけ正方向にずれる場合、ＭＣＵ３６は、マーク頭出し量から０．２５ｍｍを減算した値を新たなマーク頭出し量に設定する。
【００７３】
尚、中間値ＬＭＴＨ２又は中間値ＬＭＴＨ３と中間値ＬＭＴＨとの差分に対応する距離は、中間値ＬＭＴＨのマーク幅カウンタの値と中間値ＬＭＴＨ２又は中間値ＬＭＴＨ３のマーク幅カウンタの値との差分に基づいて、例えばこの差分値に１カウントあたりの用紙搬送量を乗算することで求められる。
【００７４】
図１１は、マーク検出処理の変形例を示すフローチャートである。本処理は、マークレベルの最小値を検出しない点で図８のマーク検出処理と異なる。尚、図８のステップと同一のステップは、同一のステップ番号で表し、その説明は省略する。
【００７５】
フォトセンサ２５の出力レベルが白レベルの８７．５％以下である場合（ステップＳ４４でＹＥＳ）、ＭＣＵ３６は、フォトセンサ２５の出力レベルが白レベルの８７．５％になった用紙上の位置（具体的には、フォトセンサ２５の出力レベルが白レベルの８７．５％になったモータステップ数）をマークの先端と判定し、マーク幅カウンタのカウントを開始する（ステップＳ６１）。マーク幅を計測するためのマーク幅カウンタは、ＭＣＵ３６に設けられる。
【００７６】
次に、ＭＣＵ３６は、フォトセンサ２５の出力レベルが白レベルの８７．５％以上となったか否かを判別する（ステップＳ６２）。ステップＳ６２では、出力レベルが白レベルの８７．５％以上となったことを判別することによって、マークの終端を検出している。尚、マークの終端を判定するための出力レベルは、白レベルの８７．５％に限定されない。しかし、マークの終端を判定するための出力レベルをシフト演算で高速に決定したり、ノイズの影響を排除するために、マークの終端を判定するための出力レベルは、白レベルの８７．５％に設定されるのが好ましい。
【００７７】
フォトセンサ２５の出力レベルが白レベルの８７．５％以上となったと判別した場合には（ステップＳ６２でＹＥＳ）、手順はステップＳ５３に進む。一方、フォトセンサ２５の出力レベルが白レベルの８７．５％未満である場合には（ステップＳ６２でＮＯ）、ＭＣＵ３６は、マーク幅カウンタを１インクリメントする（ステップＳ６３）。その後、ＭＣＵ３６は、マーク幅が８ｍｍを超えているか否かを判別する（ステップＳ６４）。マーク幅が８ｍｍを超えていない場合（ステップＳ６４でＮＯ）、手順はステップＳ６２に戻る。マーク幅が８ｍｍを超えている場合（ステップＳ６４でＹＥＳ）、手順はステップＳ５２に進む。
【００７８】
ステップＳ５３の後に実行されるステップＳ５４では、ＭＣＵ３６は、フォトセンサ２５の出力レベルが白レベルの８７．５％を超えた時点の用紙上の位置（具体的には、フォトセンサ２５の出力レベルが白レベルの８７．５％を超えた時点のモータステップ数）をマークの終端と判定する。
【００７９】
本処理は、マーク幅が小さい場合や、マーク濃度が薄く、フォトセンサ２５の出力レベルの変化が小さい場合に、特に有効である。マーク幅が小さい場合や出力レベルの変化が小さい場合に、マークレベルの最小値や中間値を使用すると、マークの終端の算出に誤差が生じやすいからである。
【００８０】
以上説明したように、本実施の形態によれば、ＲＡＭ４０又はＥＥＰＲＯＭ４１が、用紙の非マーク領域を読み取ったフォトセンサ２５の出力レベルを白レベルとして記憶する（ステップＳ４２）。ＭＣＵ３６は、フォトセンサ２５の出力レベルが白レベルの所定の割合（例えば８７．５％）を下回った時点の用紙上の位置をマークの先端として決定し（ステップＳ４５）、フォトセンサ２５の出力レベルが白レベルの所定の割合を下回った時点でマーク幅の算出を開始する（ステップＳ４５）。そして、ＲＡＭ４０又はＥＥＰＲＯＭ４１が、用紙の搬送に伴い、現在のフォトセンサ２５の出力レベルが前回のフォトセンサ２５の出力レベルを上回ったとき、その時点の出力レベルの最小値をマークレベルの最小値として記憶する（ステップＳ４８）。ＭＣＵ３６は、フォトセンサ２５の出力レベルが白レベルとマークレベルの最小値との中間値以上であり、且つマーク幅が第１閾値（例えば２ｍｍ）以上第２閾値（例えば８ｍｍ）以下である場合に、フォトセンサ２５の出力レベルが中間値を上回った時点の用紙上の位置をマークの後端として決定する（ステップＳ５０でＹＥＳ、ステップＳ５３でＹＥＳ、ステップＳ５４）。よって、フォトセンサの出力レベルが変化する場合や出力レベルに差があるフォトセンサが使用される場合でも、確実にマーク検出を行うことができる。
【００８１】
また、本実施の形態によれば、ＲＡＭ４０又はＥＥＰＲＯＭ４１が、用紙の非マーク領域を読み取ったフォトセンサ２５の出力レベルを白レベルとして記憶する（ステップＳ４２）。ＭＣＵ３６は、フォトセンサ２５の出力レベルが白レベルの所定の割合（例えば８７．５％）を下回った時点の用紙上の位置をマークの先端として決定し（ステップＳ６１）、フォトセンサ２５の出力レベルが白レベルの所定の割合を下回った時点でマーク幅の算出を開始する（ステップＳ６１）。さらに、ＭＣＵ３６は、フォトセンサ２５の出力レベルが白レベルに対して所定の割合以上であり、且つマーク幅が第１閾値（例えば２ｍｍ）以上第２閾値（例えば８ｍｍ）以下である場合に、フォトセンサ２５の出力レベルが上記所定の割合で白レベルを上回った時点の用紙上の位置をマークの後端として決定する（ステップＳ６２でＹＥＳ、ステップＳ５３でＹＥＳ、ステップ５４）。よって、フォトセンサの出力レベルが変化する場合や出力レベルに差があるフォトセンサが使用される場合でも、確実にマーク検出を行うことができる。
【００８２】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００８３】
１  サーマルプリンタ
２  コンピュータ
１０  オペレーションパネル
２０  メカユニット
３０  制御回路ユニット
１１  電源スイッチ
１２  用紙送りスイッチ
１３  ＬＥＤ
２１  サーマルヘッド
２２  用紙送りモータ
２５  フォトセンサ
３６  ＭＣＵ
４０  ＲＡＭ
４１  ＥＥＰＲＯＭ
４２  Ａ／Ｄ変換回路
【図１】
2015013434.tif 000003
【図２】
2015013434.tif 000004
【図３】
2015013434.tif 000005
【図４】
2015013434.tif 000006
【図５】
2015013434.tif 000007
【図６】
2015013434.tif 000008
【図７】
2015013434.tif 000009
【図８】
2015013434.tif 000010
【図９】
2015013434.tif 000011
【図１０】
2015013434.tif 000012
【図１１】
2015013434.tif 000013