(57)【要約】【課題】ソフトウェアの動作で駆動制御される電動機の制御異常を検出できる電動機の制御異常検出装置を提供する。【解決手段】ＣＰＵ３０はタイマ３３に相切換えトリガパルスを出力させる。モータドライバコントロールモジュール３４はタイマ３３からの相切換えトリガパルス等に基づいてモータドライバ１８を介してステップモータ２９を駆動制御する。監視ユニット３５内のカウンタ４２は、相切換えトリガパルスを計数してステップモータ２９の回転数（回転量）を計数する。一方、ＣＰＵ３０は、目標回転数上限レジスタ４１に目標回転数上限値を設定する。ＣＰＵ３０はステップモータ２９の回転数が目標回転数に達する度にリセット回路４３を介してカウンタ４２をリセットする。ＣＰＵ３０が暴走した場合、カウンタ４２がリセットされなくなって、比較器４４からモータドライバ１８に停止信号が出力される。【選択図】図２
2007215288.tif 000002
【特許請求の範囲】
【請求項１】
移動体の駆動源となる電動機の駆動部に制御パルスを出力することで前記電動機を駆動制御するソフトウェアで動作される制御手段と、
前記制御パルスのパルス数を計数して前記電動機の駆動量に応じたパルス計数値を取得する計数手段と、
前記制御手段から前記電動機の駆動量に相当するパルス数が目標値に達する度に与えられる指示に基づき前記計数手段をリセットするリセット手段と、
前記パルス計数値が前記目標値を過ぎて予め設定された異常の条件を満たす値になると異常の旨を出力する異常検出手段と
を備えたことを特徴とする電動機の制御異常検出装置。
【請求項２】
請求項１に記載の電動機の制御異常検出装置において、
前記目標値は、前記移動体が移動開始位置から停止又は反転する目標位置に達するまでの前記電動機の駆動量に相当するパルス数であることを特徴とする電動機の制御異常検出装置。
【請求項３】
請求項１又は請求項２に記載の電動機の制御異常検出装置において、
前記異常検出手段は、前記異常の条件を満たす値を設定値として設定する設定手段と、前記パルス計数値と前記設定値を入力するとともに前記パルス計数値が前記設定値を超えた状態で異常信号を出力する比較器とを含むことを特徴とする電動機の制御異常検出装置。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載の電動機の制御異常検出装置において、
前記異常検出手段が異常を検出したときに出力する異常信号を基に前記電動機の制御異常状態を解消する復旧処理が行われることを特徴とする電動機の制御異常検出装置。
【請求項５】
請求項４に記載の電動機の制御異常検出装置において、
前記異常検出手段が出力する異常信号を基に前記駆動部による前記電動機の通電が遮断されることを特徴とする電動機の制御異常検出装置。
【請求項６】
請求項４又は請求項５に記載の電動機の制御異常検出装置において、
前記異常検出手段が出力する前記異常信号を基に電子機器のシステムがリセットされることを特徴とする電動機の制御異常検出装置。
【請求項７】
請求項４乃至請求項６のいずれか一項に記載の電動機の制御異常検出装置において、
前記異常検出手段が出力する異常信号を基に電子機器の電源が遮断されることを特徴とする電動機の制御異常検出装置。
【請求項８】
請求項１乃至７のいずれか一項に記載の電動機の制御異常検出装置において、
前記異常検出手段は異常を検出したときに前記制御手段に割込信号を出力することを特徴とする電動機の制御異常検出装置。
【請求項９】
請求項１乃至請求項８のいずれか一項に記載の電動機の制御異常検出装置において、
前記リセット手段は、前記制御手段が予め設定されたアクセスシーケンスに従って該リセット手段に設定値を書き込んだ場合に限り、前記計数手段をリセットすることを特徴とする電動機の制御異常検出装置。
【請求項１０】
電動機が駆動されることにより移動する移動体を備えた電子機器であって、
請求項１乃至請求項９のいずれか一項に記載の制御異常検出装置を備えたことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばプリンタなどの電子機器において、ソフトウェアで動作される制御手段が制御パルスにより駆動制御されるステップモータ等の電動機の制御異常を検出する電動機の制御異常検出装置及び電子機器に関する。
【背景技術】
【０００２】
従来、この種の電子機器の一つであるプリンタにおいては、異常を検出すると電源を遮断する機能が備えられている。例えば特許文献１には、プリンタにおいて、定着ヒータ異常等の重大異常が検出されたときに、電圧供給を遮断する画像形成装置が開示されている。また、この画像形成装置では、プリンタコントローラとエンジンコントローラとの通信異常も監視しており、通信異常が所定時間継続すれば、プリンタコントローラが操作パネルに異常の旨を表示するとともに、エンジンコントローラとその制御対象物に対する電力供給が遮断される構成となっていた。
【０００３】
ところで、シリアルプリンタでは、記録ヘッドを有したキャリッジが、印刷の１走査を終わると反転して次の１走査を開始し、これを繰り返すことで１走査ずつ印刷が進められる。キャリッジを移動させる駆動源として設けられた電動モータ（電動機）は、コンピュータ（ＣＰＵ）がプログラムを実行するファームウェアによって駆動制御される。
【特許文献１】特開２００４−２５２１９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＣＰＵが何らかの原因で暴走して電動モータの制御に異常が発生すると、電動モータが通電されたまま放置される可能性がある。この種の電動モータの制御異常を検出する方法として、例えばウォッチドッグタイマにより一定の時間間隔でＣＰＵの応答を監視し、応答がない場合に電流遮断を行うことも可能ではある。しかし、プリンタに搭載された複数の電動モータを監視する場合は、モータ毎に耐量（異常になってから止めるまでの時間）が異なるため、好ましくない。すなわち、ＣＰＵの応答を監視する間隔時間を最も耐量の短いモータに合わせておき必要があり、耐量の長いモータについては過剰の監視になってしまい許容範囲内であっても異常となるような設定がなされてしまう。
【０００５】
また、エンコーダパルスの異常周期を感知して電動モータの異常を判断する装置では、電動モータの正確な移動量を検知できないため、通常制御する速度プロファイルで動き続ける異常である場合は、その状態を異常であると判断できなかった。また、電動モータがステップモータである場合は、通常、エンコーダがない構成が採用され、エンコーダパルスが得られないことから速度プロファイルと異なる速度となる異常すら感知できないという問題があった。このように、何らかの原因でファームウェアが暴走しても、その制御異常を確実に検出できないという問題があった。
【０００６】
本発明は、上記問題点を解決するためになされたものであって、その目的は、ソフトウェアで動作される制御手段によって駆動制御される電動機の制御異常を検出できる電動機の制御異常検出装置及び電子機器を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、移動体の駆動源となる電動機の駆動部に制御パルスを出力することで前記電動機を駆動制御するソフトウェアで動作される制御手段と、前記制御パルスのパルス数を計数して前記電動機の駆動量に応じたパルス計数値を取得する計数手段と、前記制御手段から前記電動機の駆動量に相当するパルス数が目標値に達する度に与えられる指示に基づき前記計数手段をリセットするリセット手段と、前記パルス計数値が前記目標値を過ぎて予め設定された異常の条件を満たす値になると異常の旨を出力する異常検出手段とを備えたことを要旨とする。なお、移動体は、異なる位置へ移動する移動体に限らず、同じ位置で回転運動する回転体も含む概念である。移動体が回転体である場合、移動量は回転量を指す。
【０００８】
これによれば、ソフトウェアで動作される制御手段が制御パルスを駆動部に出力することで電動機は駆動制御される。計数手段は制御パルスのパルス数を計数し、電動機の駆動量に応じたパルス計数値を取得する。制御手段は電動機の駆動量に相当するパルス数が目標値に達する度にリセット手段に指示を与え、この指示に基づきリセット手段は計数手段をリセットする。一方、異常検出手段はパルス計数値が目標値を過ぎて異常の条件を満たす値になると異常の旨を出力する。すなわち、制御手段が正常動作しているときは、パルス計数値が目標値に達する度に計数手段がリセットされるので異常の条件が満たされることはなく異常は検出されない。一方、制御手段が制御異常状態に陥ってリセット手段に適正な指示を与えられなくなると、計数手段がリセットされなくなってそのパルス計数値が異常の条件を満たす値になって異常が検出される。よって、制御手段がソフトウェアの暴走等に起因して仮に制御異常状態に陥っても、異常検出手段によってその異常を検出できる。このように異常を検出できれば、電動機の制御異常を解消するための適切な処置を行うことができる。
【０００９】
また、本発明の制御異常検出装置では、前記目標値は、前記移動体が移動開始位置から停止又は反転する目標位置に達するまでの前記電動機の駆動量に相当するパルス数であることが好ましい。
【００１０】
これによれば、制御手段は、パルス数が目標値に達して移動体が一回の移動を終える度に、リセット手段に計数手段をリセットさせるための指示を与える。このようにリセット手段に指示を与えるタイミングは、移動体の毎回の移動毎なので、制御手段の制御が多過ぎることなく、しかも移動体がオーバーランするなどの制御異常を毎回監視できる。
【００１１】
また、本発明の制御異常検出装置では、前記異常検出手段は、前記異常の条件を満たす値を設定値として設定する設定手段と、前記パルス計数値と前記設定値を入力するとともに前記パルス計数値が前記設定値を超えた状態で異常信号を出力する比較器を含むことが好ましい。
【００１２】
これによれば、パルス計数値と設定値とが比較器に入力される。制御異常が発生した場合、パルス計数値が設定値を超えることになり、この状態で比較器から異常信号が出力される。よって、コンピュータ（ＣＰＵ）の暴走などソフトウェアの動作異常が発生しても、ハードウェアである比較器により電動機の制御異常を検出できる。
【００１３】
さらに、本発明の制御異常検出装置では、前記異常検出手段が異常を検出したときに出力する信号を基に前記電動機の制御異常状態を解消する復旧処理が行われることが好ましい。
【００１４】
これによれば、制御異常が検出された場合は、異常検出手段から出力される異常信号を基に復旧処理が行われ、電動機の制御異常状態が解消される。よって、電動機が制御異常状態のまま放置されることを回避できる。
【００１５】
また、本発明の制御異常検出装置では、前記異常検出手段が出力する異常信号を基に前記駆動部による前記電動機の通電が遮断されることが好ましい。
これによれば、異常検出手段から出力される異常信号を基に駆動回路による電動機の通電が遮断される。よって、電動機が通電され続けたまま放置されることを回避できる。
【００１６】
また、本発明の制御異常検出装置では、前記異常検出手段が出力する異常信号を基に電子機器のシステムがリセットされることが好ましい。
これによれば、異常検出手段から出力される異常信号を基に、電子機器のシステムがリセットされる。よって、電子機器はリセットされ、リセットによる立ち上げ時にリブートされる。例えば制御異常がリブートにより回復できる程度のソフトウェア上の問題であれば、リブートによって電子機器を復旧させることができる。
【００１７】
また、本発明の制御異常検出装置では、前記異常検出手段が出力する異常信号を基に電子機器の電源が遮断されることが好ましい。
これによれば、異常検出手段から出力される異常信号を基に、電子機器の電源が遮断される。よって、電動機が異常制御状態に陥ったまま放置されることを回避できる。
【００１８】
また、本発明の制御異常検出装置では、前記異常検出手段は異常を検出すると前記制御手段に割込信号を出力することが好ましい。
これによれば、異常検出手段は異常を検出したときに制御手段に割込信号を出力する。よって、電動機の制御異常の原因が、制御手段を動作させているソフトウェアのうち電動機制御に係る部分に限定されている場合には、制御手段は割込信号を受付けて制御異常状態を解消する適切な処理を行うことができる。
【００１９】
また、本発明の制御異常検出装置では、前記リセット手段は、前記制御手段が予め設定されたアクセスシーケンスに従って該リセット手段に設定値を書き込んだ場合に限り、前記計数手段をリセットすることが好ましい。
【００２０】
これによれば、制御手段が予め設定されたアクセスシーケンスに従ってリセット手段に設定値を書き込んだ場合に限り、リセット手段は計数手段をリセットする。コンピュータ（ＣＰＵ）の暴走時には仮にリセット手段に書き込みが行われても、アクセスシーケンスに従った書き込み処理が正しく行われることはまずあり得ず、暴走中に間違って計数値がリセットされてしまい、制御異常が検出できなくなる事態をより確実に回避できる。
【００２１】
本発明は、電動機が駆動されることにより移動する移動体を備えた電子機器であって、上記発明の制御異常検出装置を備えたことを要旨とする。これによれば、電子機器は、上記発明の制御異常検出装置を備えているので、上記発明の制御異常検出装置と同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を具体化した一実施形態を図１〜図６に従って説明する。
図１は、プリンタの電気的構成を示すブロック図である。同図に示すように、電子機器としてのプリンタ１０（インクジェット式プリンタ）は、電源装置として一次電源回路１１及び二次電源回路１２を備える。また、プリンタ１０は、コントローラ１３と、該コントローラ１３に接続されたモータドライバ１４、１５、ヘッドドライバ１６及び表示駆動回路１７と、さらにこれらのドライバ（駆動回路）に駆動制御されるキャリッジモータ２１、紙送りモータ２２、記録ヘッド２３及び操作パネル２４を備えている。操作パネル２４は、表示装置２５と電源スイッチ２６と操作スイッチ２７を有している。表示装置２５は、各種印刷メニューや印刷条件情報（用紙サイズ、印刷モード等）、エラー表示などを表示させるためのものである。電源スイッチ２６はプリンタ１０の電源を投入・遮断させるときに操作されるスイッチである。操作スイッチ２７は、プリンタ１０に対して所定の指令や設定情報等を入力するために操作されるもので、例えば印刷実行スイッチ、メンテナンススイッチ、表示装置２５に表示された各種メニューや設定情報等を選択する選択スイッチ、その選択した内容を決定する決定スイッチなどを含む。
【００２３】
一次電源回路１１は商用交流電源１００Ｖから動力系の電圧４２Ｖを生成し、二次電源回路１２は、一次電源回路１１の出力電圧を降圧させて、電圧５Ｖと電圧３．３Ｖを生成する。動力系の電圧４２Ｖは、モータドライバ１４、モータドライバ１５及びヘッドドライバ１６に供給され、電圧５Ｖは表示駆動回路１７に供給され、さらに電圧３．３Ｖはコントローラ１３に供給される。
【００２４】
コントローラ１３は、モータドライバ１４に制御信号を出力することによりキャリッジモータ２１を駆動制御し、記録ヘッド２３を有するキャリッジ２８を主走査方向（用紙搬送方向と直交する方向）に往復移動させる。また、コントローラ１３は、モータドライバ１５に制御信号を出力することにより紙送りモータ２２を駆動制御し、図示しない給紙装置、紙送り装置、排紙装置の各ローラ等を駆動させて、記録媒体としての記録用紙を副走査方向（用紙搬送方向）に搬送する。さらにコントローラ１３は、ヘッドドライバ１６に制御信号を出力することにより記録ヘッド２３を駆動制御してインクの液滴を用紙に向かって噴射させる。また、コントローラ１３は表示駆動回路１７に表示データを出力することにより表示装置２５に所定の画像等を表示させる。
【００２５】
図２は、キャリッジモータ及び紙送りモータを駆動制御するモータ制御装置の電気的構成を示す。本例のキャリッジモータ２１及び紙送りモータ２２は共にステップモータである。このため、説明の便宜上、図２では、キャリッジモータ２１及び紙送りモータ２２をステップモータ２９と表記し、モータドライバ１４，１５をモータドライバ１８と表記している。但し、移動体に言及する場合は、移動体がキャリッジ２８であるキャリッジモータ２１を例にして説明する。
【００２６】
コントローラ１３は、例えばシステムオンチップ（ＳＯＣ）により１チップで構成され、その内部に、ＣＰＵ３０、ＲＯＭ３１、ＲＡＭ３２、タイマ３３、モータドライバコントロールモジュール３４及び監視ユニット３５（監視回路）を備える。監視ユニット３５は、ステップモータ２９の制御異常を監視する安全回路であり、その内部には、図２に示すように、目標回転数上限レジスタ４１、カウンタ４２、リセット回路４３、比較器４４（コンパレータ）を内蔵している。この監視ユニット３５を備える点が本実施形態の特徴的な構成である。なお、コントローラ１３内には、ＣＰＵ３０とともにプリンタ１０を統括制御する図示しないカスタムＬＳＩとしてのＡＳＩＣ（Application Specific Integrated Circuit）（特定用途向け集積回路）も内蔵されている。もちろん、ＣＰＵ３０をＡＳＩＣに内蔵した構成も採用可能である。また、同図においてＣＰＵ３０、ＲＯＭ３１及びＲＡＭ３２以外の構成部分はステップモータ毎に設けられ、キャリッジモータ２１と紙送りモータ２２は共通のＣＰＵ３０により制御される。
【００２７】
ＣＰＵ３０は、ＲＯＭ３１に記憶されたプログラム（起動プログラム等を含む）及び印刷制御プログラム（ファームウェアプログラム）を実行することによりプリンタ１０を統括制御する。ＲＡＭ３２は、ＣＰＵ３０が各種プログラムを実行して得られた各種データ等が一時記憶される作業メモリとして用いられる。なお、ＲＯＭ３１をＥＥＰＲＯＭ等の不揮発性メモリで構成し、印刷制御プログラムを更新できる構成としてもよい。
【００２８】
タイマ３３は、図示しないクロック回路から所定周波数（例えば４８ＭＨｚ）のクロック信号を入力してそのパルス数を計数するカウンタにより構成され、その計数値（計数時間）がＣＰＵ３０から指示された指示値に達する度に１パルスを出力する。ＣＰＵ３０は指示値としてステップモータ２９の相切換え周期に相当する値をタイマ３３に設定する。よって、タイマ３３は、相切換え周期をパルス周期とする相切換えトリガパルスをモータドライバコントロールモジュール３４に出力する。つまり、ＣＰＵ３０は、タイマ３３へ書き込む指示値を調整してモータドライバコントロールモジュール３４に出力する相切換えトリガパルスの周波数を制御することで、ステップモータ２９を速度制御（停止制御含む）している。
【００２９】
また、ＣＰＵ３０は、カウンタ４５を内蔵している。カウンタ４５はタイマ３３からＣＰＵ３０に入力される相切換えトリガパルスのパルス数を計数する。カウンタ４５は、ハードウェアで構成されるカウンタ回路としているが、ソフトウェアのカウンタ機能により構成することもできる。ＣＰＵ３０は、例えば図示しないホスト装置（パーソナルコンピュータ）から受信した印刷データのコマンドを解析して、これから移動を開始するキャリッジ２８の移動量に対応するステップモータ２９の回転数（駆動量）を取得する。この回転数はパルス数換算値で得られ、キャリッジ２８を一走査させる際のステップモータ２９の目標回転数（目標値）となる。この目標回転数は、キャリッジ２８の毎回の走査において記録ヘッド２３がインクを吐出する必要がある印刷範囲（印刷エリア）から決まり、基本的に毎回の走査開始前までに求められる。カウンタ４５はキャリッジ２８が次の走査を開始するために、前回の停止位置（反転位置）から始動するタイミングでＣＰＵ３０によりリセットされる。
【００３０】
また、カウンタ４５にはＣＰＵ３０により目標回転数（目標値）がセットされ、カウンタ４５は自身の計数値が目標回転数に達すると、その旨をＣＰＵ３０に通知する。ＣＰＵ３０はカウンタ４５から通知を受けると、制御データに含まれる回転方向に関するデータ値をそれまでの回転方向を反転させる逆方向の値に変更する。この制御によりキャリッジ２８は停止位置で停止した後、反転して次の走査を開始することになる。なお、制御データには電流値の値も含まれる。
【００３１】
ＲＯＭ３１には、ステップモータ２９の速度プロファイルが設定されたモータ制御テーブルが格納されており、ＣＰＵ３０はこのモータ制御テーブルを参照してタイマ３３へ書き込む指示値を取得する。モータ制御テーブルは、ステップモータ２９の回転開始位置（回転開始回転角）からのパルス数換算値で示された回転数（回転量）と、相切換えトリガパルスの周期との関係を示すデータテーブルである。キャリッジ２８は一方向の移動過程において、停止位置から加速終了位置に至る間で速度零から目標速度まで加速する加速過程と、目標速度に維持される定速過程と、減速開始位置から停止位置（反転位置）に至る間で目標速度から停止するまで減速する減速過程とが設定されている。モータ制御テーブルには、例えば加速過程においてステップモータ２９の回転開始位置からその回転数（回転量）が増えるに連れて指示値である周期が段階的に短くなるように設定され、定速過程では周期が目標速度に応じた一定値に維持され、減速過程においては回転数（回転量）が増えるに連れて周期が段階的に長くなるように設定されている。
【００３２】
モータドライバコントロールモジュール３４は、ＣＰＵ３０とモータドライバ１８との間に介在し、ＣＰＵ３０から送られてくる制御データとタイマ３３からの相切換えトリガパルスとに基づき制御信号を生成してモータドライバ１８に出力する。制御信号は、ステップモータ２９の励磁相を切り換える相切換え制御をするための信号であり、モータドライバ１８は制御信号に基づき相切換えトリガパルスと同周波数で相切換え可能な駆動パルスを出力することでステップモータ２９を駆動制御する。モータドライバ１８には一次電源回路１１からの動力系電源電圧４２Ｖが印加されており、内蔵するスイッチング回路（図示せず）が制御信号に基づき切り換えられることにより、ステップモータ２９の励磁相の相切換えが可能な駆動パルスを出力する。なお、ステップモータ２９の回転数（回転量）はパルス数に比例するので、カウンタ４２の計数値はステップモータ２９の駆動開始回転角からの回転数（回転量）に一致する。
【００３３】
次に監視ユニット３５の構成を詳細に説明する。
目標回転数上限レジスタ４１は、ＣＰＵ３０が目標回転数上限値を設定するレジスタである。ここで、目標回転数上限値とは、キャリッジ２８の移動開始位置から停止位置までの移動量のパルス数換算値に相当する目標回転数に対し所定値を加えた値である。さらにはＣＰＵ３０が正常に動作してキャリッジ２８が正常に制御されている限り、キャリッジ２８が移動することがあり得ない値である。カウンタ４２の計数値が目標回転数上限値を超えてもリセットされないときは印刷制御プログラム（ファームウェア）を実行するＣＰＵ３０に何らかの制御異常が発生したと判断できる。キャリッジ２８はカウンタ４２の計数値が目標回転数に達したら停止又は反転されるので、その計数値が目標回転数を超えることは正常時には原則ありえないが、ばらつきを考慮した所定値を目標回転数に加えることで目標回転数上限値としている。
【００３４】
カウンタ４２は、タイマ３３から出力された相切換えトリガパルスを入力し、相切換えトリガパルスのパルス数を計数する。カウンタ４２はその計数値が比較器４４に出力されるとともに、リセット回路４３からのリセット信号によりリセットされる。
【００３５】
ＣＰＵ３０は内部のカウンタ４５の計数値がステップモータ２９を反転又は停止させる値、すなわち目標回転数に達する度にリセット回路４３に対してカウンタ４２をリセットさせるためのリセット処理を行う。リセット回路４３は、ＣＰＵ３０によるリセット処理がなされると、カウンタ４２に対してリセット信号を出力する。このため、カウンタ４２は、リセット回路４３からのリセット信号により、ステップモータ２９が停止・反転される度にリセットされる。
【００３６】
リセット回路４３は、内部に複数（例えば３つ）のレジスタＲ１，Ｒ２，Ｒ３と、この３つのレジスタＲ１〜Ｒ３の各出力が入力される論理回路４６とを備えている。各レジスタＲ１，Ｒ２，Ｒ３は書き込まれるべき設定値が予め個別に決められている。論理回路４６は、３つのレジスタＲ１〜Ｒ３に対して予め決められたアクセスシーケンス（アクセス手順）に従って所定の書き込み順序で正しく設定値を書き込むアクセス処理がＣＰＵ３０により行われたときに限り、リセット信号を出力する回路構成となっている。リセット回路４３は、ＣＰＵ３０によりアクセスシーケンスに従い正しくリセット処理が行われると、カウンタ４５にリセット信号を出力するとともに、リセット信号出力後には各レジスタＲ１〜Ｒ３がリセットされるように構成されている。
【００３７】
比較器４４は、カウンタ４２の計数値と目標回転数上限レジスタ４１の設定値である目標回転数上限値とを比較し、カウンタ４２の計数値すなわち回転数が目標回転数上限値以下であるときにＨレベル信号を出力し、計数値が目標回転数上限を超えるとＬレベル信号（停止信号）を出力する。従って、カウンタ４２がリセットされずその計数値が目標回転数上限値を超えると、比較器４４はモータドライバ１８に対して停止信号（Ｌレベル信号）を出力する。また、比較器４４は、停止信号を出力するときには、ＣＰＵ３０に対して割込信号を出力するように構成されている。
【００３８】
よって、ＣＰＵ３０が実行中のファームウェアの異常などが原因で、カウンタ４２の計数値が目標回転数上限値を超えると、比較器４４の出力がＨレベルからＬレベル（停止信号）となって、モータドライバ１８からステップモータ２９への駆動パルス出力が強制的に遮断される。また、ＣＰＵ３０は、比較器４４から割込信号を入力すると、ファームウェアのうちモータ制御系以外の部分が正常であれば、モータ制御系に異常が発生したと認知する。ファームウェアプログラムの中には、印刷制御プログラムの他に、図３にフローチャートで示す異常監視ルーチンのプログラムが含まれている。ＣＰＵ３０はこの異常監視ルーチンのプログラムを実行することにより、ＣＰＵ３０の制御異常の監視ができる状態に監視ユニット３５を起動させている。
【００３９】
また、図４は、図３で示された異常監視ルーチン中の機能非活性化処理（ステップＳ５０）で行われるアクセスシーケンスの処理内容を示すフローチャートである。本実施形態のアクセスシーケンスを説明すると次のようになる。３つのレジスタＲ１〜Ｒ３にはそれぞれアドレス（番地）が指定されている。図４に示すように、ＣＰＵ３０は一番小さい番地のレジスタＲ１に第１設定値を書き込み、次に一番大きい番地のレジスタＲ３に第２設定値を書き込み、２番目に大きい番地のレジスタＲ２に第３設定値を書き込むアクセス順序に設定されている。
【００４０】
また、図５は、リセット回路における論理内容から決まる状態遷移図を示す。図４に示すアクセスシーケンスによるリセット処理が正しく行われたときに限り、リセット回路４３（つまり論理回路４６）がリセット信号を出力する論理回路構成となっている。すなわち、初期状態にて３つのレジスタＲ１〜Ｒ３のうち一番小さい番地のレジスタＲ１に第１設定値が書き込まれると図５における状態「１」に遷移する。次に状態「１」にて一番大きい番地のレジスタＲ３に第２設定値が書き込まれると図５における状態「２」に遷移する。さらに２番目に大きい番地のレジスタＲ２に第３設定値が書き込まれた状態（図５における状態「３」）になると、リセット信号を出力するように構成されている。なお、状態「１」及び状態「２」は所定時間が経過してもその状態にあるときに不正アクセスとしてリセットされ、所定時間内に３つの設定値を正しく書き込めば状態「３」に進むことができる。また、図５では、設定値が正規の順番通りに書き込まれる場合を示しており、他の順番で設定値が書き込まれる場合の状態遷移については省略されているが、設定値の書込み順序が正しくない場合は不正アクセスとされ、回路は初期状態へと戻る。
【００４１】
なお、ステップモータ２９が紙送りモータ２２の場合、目標回転数は紙送り量のパルス数換算値となり、目標回転数上限値は紙送り量のパルス数換算値に所定値を加えた値となる。また、紙送りローラ（回転体）が移動体に相当する。
【００４２】
以下、この異常監視ルーチンについて図３に従って説明する。
まずステップＳ１０では、モータ駆動要求があるか否かを判断する。モータ駆動要求があればステップＳ２０に進み、モータ駆動要求がなければ待機する。待機中は例えばモータ制御以外の他の制御プログラムを実行する。このモータ駆動要求はキャリッジ２８の一走査毎に例えば図示しないＡＳＩＣからＣＰＵ３０に出力される。
【００４３】
ステップＳ２０では、目標回転数上限レジスタ４１の設定およびカウンタ４２の有効設定を行う。ここでは、ＣＰＵ３０がキャリッジ２８の今回の走査を行うに当たり、キャリッジ２８の移動開始位置から停止位置までの移動量に相当するステップモータ２９の目標回転数を求める。そして、この目標回転数に所定回転数を加えることで目標回転数上限値を算出する。ＣＰＵ３０は算出した目標回転数上限値を目標回転数上限レジスタ４１に設定するとともに、ステップモータ２９の回転数（回転量）が計数されるように、カウンタ４２を計数が可能な有効状態に設定する。カウンタ４２の有効設定はリセット回路４３を介して行われ、この有効設定によりカウンタ４２はその計数値が出力初期値「０」となりパルス入力があれば計数できる状態となる。
【００４４】
ステップＳ３０では、モータ駆動制御を行う。すなわち、ＣＰＵ３０は、ＲＯＭ３１から読み出したモータ制御テーブルを参照して、カウンタ４５の計数値である現在の回転数に応じた周期を引き当ててその周期を指示値としてタイマ３３に設定し、タイマ３３から出力される相切換えトリガパルスの周期を制御する。さらに、ＣＰＵ３０はステップモータ２９の回転方向を指示するデータ値を含む制御データをモータドライバコントロールモジュール３４に出力する。こうしてステップモータ２９は予め設定された速度プロファイルに従って駆動制御される。
【００４５】
ステップＳ４０では、目標回転数に到達したか否かを判断する。カウンタ４５の計数値が目標回転数に到達した場合はステップＳ５０に進み、目標回転数に到達していない場合はステップＳ３０に戻る。こうしてＣＰＵ３０はカウンタ４５の計数値が目標回転数（停止又は反転位置相当のパルス数）に到達するまで、モータ制御テーブルを参照しつつモータ駆動制御を行う。そして、キャリッジ２８が停止又は反転位置で停止して計数値（回転数）が目標回転数に到達するとステップＳ５０へ進む。なお、ＣＰＵ３０は印刷データのコマンドを解析してキャリッジ２８の一走査毎の移動量に対応するステップモータ２９の回転数（回転量）を目標回転数として取得し、ＲＡＭ３２の所定記憶領域に記憶している。
【００４６】
ステップＳ５０では、機能非活性化処理を行う。つまり、監視ユニット３５の機能を非活性化（リセット）させて停止信号を出力させないリセット処理を行う。本実施形態では、リセット処理として、リセット回路４３に対してアクセスシーケンス処理を実行する。すなわち、ＣＰＵ３０は、リセット回路４３内の複数のレジスタＲ１〜Ｒ３に個別の設定値を所定の順序で書き込むアクセスシーケンス（図４参照）を実行する。リセット回路４３は、ＣＰＵ３０によりレジスタＲ１〜Ｒ３に書き込まれる設定値及び書き込み順序が正しい場合に限り、カウンタ４２にリセット信号を出力する（図５参照）。この結果、ＣＰＵ３０によりファームウェアが正常動作しているときは、図４に示すアクセスシーケンスが適正に行われるので、各レジスタＲ１〜Ｒ３に適正な設定値が適正な順序で書き込まれる。この結果、リセット回路４３は図５の状態遷移図で示された論理回路４６の論理に従ってリセット信号を出力する。こうしてカウンタ４２はリセットされる。
【００４７】
一方、ＣＰＵ３０が暴走してファームウェアが正常動作できなくなった場合は、リセット処理が行われなくなるので、リセット回路４３からリセット信号が出力されなくなる。この結果、カウンタ４２のパルス計数値が目標回転数上限レジスタ４１の目標回転数上限値を超えることになるので、比較器４４から停止信号が出力され、ステップモータ２９の駆動が停止される。
【００４８】
例えば、リセット回路が、ＣＰＵ３０からリセット信号を入力するだけでリセット信号を出力する構成であった場合は、ＣＰＵ３０が暴走時にリセット信号を偶然出力した場合、カウンタ４２がリセットされてしまいその制御異常を検出できなくなる。しかし、本実施形態では、ＣＰＵ３０がアクセスシーケンスを実行して複数のレジスタＲ１〜Ｒ３への書き込み順序及び書き込まれる設定値がすべて正しい場合に始めてリセット信号が出力される構成なので、ＣＰＵ３０の暴走中にアクセスシーケンスどおりに各レジスタＲ１〜Ｒ３に適正な設定値が適正な順序で書き込まれることはまずあり得ない。よって、ＣＰＵ３０の暴走時にカウンタ４２がリセットされてしまう事態を回避できる。
【００４９】
図６は監視ユニットの各部から出力される信号等のタイミングチャートを示す。同図（ａ）は正常終了の場合、同図（ｂ）は異常状態に陥った場合を示す。同図において、上から順に、目標回転数上限レジスタ４１、カウンタ４２、相切換えトリガ、比較器４４、割込信号、リセット回路４３の各出力をそれぞれ示す。
【００５０】
図６（ａ）に示すように、まず、キャリッジ２８の走査開始前に、カウンタ４２が計数を行える有効状態にする有効設定がリセット回路４３を介して行われ、リセット回路４３から有効設定のパルス出力があるとカウンタ４２の計数値が出力初期値「０」となる。その後、ＣＰＵ３０が事前に求めた今回の目標回転数「ｍ」に所定値を加えた目標回転数上限値「ｎ」が目標回転数上限レジスタ４１にセットされる。ここまでがモータ制御開始前の初期処理となる。
【００５１】
そして、モータ制御が開始されると、ＣＰＵ３０がタイマ３３に指示値として周期を設定することで、タイマ３３からその設定された周期で相切換えトリガパルスが出力される。相切換えトリガパルスのパルス数はカウンタ４２により計数される。また、相切換えトリガパルスのパルス数はＣＰＵ３０内のカウンタ４５においても計数される。こうしてモータ制御が開始されるとキャリッジ２８は所定の速度プロファイルに沿って速度制御され、停止位置に到達すると停止する。タイマ３３から出力される相切換えトリガパルスは、ステップモータ２９が加速する過程ではそのパルス周期が段階的に短くなるように出力され、ステップモータ２９が減速する過程ではパルス周期が段階的に長くなるように出力される。
【００５２】
ＣＰＵ３０はカウンタ４５の計数値が予め設定された目標回転数「ｍ」に達すると、リセット回路４３に対してリセット処理を行う。すなわち、ＣＰＵ３０は、アクセスシーケンスに従ってリセット回路４３内の各レジスタＲ１〜Ｒ３に設定値を書き込むリセット処理を行う。ＣＰＵ３０が正常に動作していれば、アクセスシーケンスは適正に行われるので、リセット回路４３からリセット信号（カウンタリセットパルス）が出力される。その結果、カウンタ４２はその計数値が「ｍ」に達したときにリセットされる。カウンタ４２が目標回転数上限値「ｎ」より小さな値「ｍ」でリセットされることにより、比較器４４から停止信号は出力されない。こうしてカウンタリセット後、キャリッジ２８の次の走査においては、カウンタ４２は相切換えトリガパルスのパルス数を「０」から計数する。
【００５３】
次に、図６（ｂ）に示すように、ＣＰＵ３０が制御異常状態に陥った場合は、ＣＰＵ３０によるリセット処理が正しく行えなくなる。よって、ＣＰＵ３０内のカウンタ４５の計数値が目標回転数「ｍ」に達しても、リセット回路４３からリセット信号（カウンタリセットパルス）が出力されず、カウンタ４２はリセットされない。また、仮にＣＰＵ３０の暴走が原因でリセット回路４３内のレジスタＲ１〜Ｒ３に値を書き込む異常が発生しても、リセット回路４３の複数のレジスタＲ１〜Ｒ３の全てに適正な設定値が書き込まれる確率は極めて低い。このため、ＣＰＵ３０がレジスタＲ１〜Ｒ３に値を書き込む異常状態に陥った場合も、リセット信号（カウンタリセットパルス）が出力されることはまずあり得ない。
【００５４】
この結果、カウンタ４２の計数値は目標回転数「ｍ」に達してもリセットされず相切換えトリガパルスのパルス数の計数を継続する。そして、カウンタ４２の計数値が「ｎ」に達することになる。このとき、比較器４４において、カウンタ４２から入力する計数値（回転数）が、目標回転数上限レジスタ４１から入力する目標回転数上限値「ｎ」を超えることになって、比較器４４からはモータドライバ１８に対して停止信号が出力される。こうして、ＣＰＵ３０が異常状態に陥った場合は、モータドライバ１８からステップモータ２９に対する駆動パルスの出力（電力供給）が停止される。この結果、ステップモータ２９の駆動が停止する。
【００５５】
また、パルス計数値が目標回転数上限値（設定値）を超えたこのとき、比較器４４からＣＰＵ３０に割込信号が出力される。ＣＰＵ３０の暴走がソフトウェアのうちモータ制御に係る部分に限定される場合は、ＣＰＵ３０はモータ制御以外の他の処理は正常に行えるため、割込信号を入力すると制御異常状態を解消するための適切な処理を行う。
【００５６】
本実施形態では、ＣＰＵ３０は割込信号を入力すると、制御異常状態を解消する処理として、(1)警告メッセージを表示する、(2)システム電源を遮断する、(3)システムにリセット信号を出力する、のうちいずれか一つを実施する。
【００５７】
上記(1)の場合、ＣＰＵ３０は比較器４４から割込信号を入力すると、ＲＯＭ３１から表示データを読み出して表示駆動回路１７を介して表示装置２５の画面に警告メッセージを表示させる。ユーザは警告メッセージからプリンタ１０が異常発生のために停止状態にあることを知ることができる。ユーザは異常を知ることができるので、電源スイッチ２６を操作してプリンタ１０の電源を遮断させるなど適切な処置を行うことができる。例えば電源を入れ直してリブートされればプリンタ１０が正常復帰することを期待できる。
【００５８】
また、上記(2)の場合、ＣＰＵ３０は比較器４４から割込信号を入力すると、一次電源回路１１及び二次電源回路１２に遮断信号を出力してプリンタ１０の電源を遮断する。この場合、ソフトウェアのうちモータ制御に係る部分以外にも制御異常が発生していた場合、ステップモータ２９だけでなく他の制御異常も停止させることができる。
【００５９】
さらに、上記(3)の場合、ＣＰＵ３０は比較器４４から割込信号を入力すると、プリンタ１０のシステムにリセット信号を出力する。この結果、システムはリセットされ、プリンタ１０は立ち上がるときにリブートされるので、プリンタが復旧することが期待できる。
【００６０】
以上、詳述したように本実施形態によれば、以下の効果を奏する。
（１）ステップモータ２９を停止又は反転させる度にカウンタ４２をリセットするとともに、カウンタ４２のパルス計数値が目標回転数上限値を超えると比較器４４から停止信号が出力される構成とした。よって、ＣＰＵ３０が暴走してモータ制御不能状態に陥った場合、カウンタ４２がリセットされなくなってハーウェアからなる比較器４４から停止信号が出力されるので、ステップモータ２９の駆動を停止できる。このようにソフトウェア動作の異常をハードウェア回路で検出する構成なので、ソフトウェア動作による制御異常をほぼ確実に検出できる。また、エンコーダを備えないステップモータ２９においても制御異常を確実に検出できる。
【００６１】
（２）比較器４４から割込信号がＣＰＵ３０に出力される構成であるため、制御異常がソフトウェアのうちモータ制御に係る局所的な部分に限られるものであれば、ＣＰＵ３０は割込信号に基づき制御異常状態を解消する適切な処理を行うことができる。よって、ステップモータ２９の駆動停止に加え、その他の適切な処置を行うことができる。
【００６２】
（３）ＣＰＵ３０が割込信号に基づき行う処理として、例えばプリンタ１０の一次及び二次電源回路１１，１２を遮断する構成とした場合、モータドライバ１８への電力供給を遮断できる。
【００６３】
（４）また、ＣＰＵ３０が割込信号に基づき行う処理として、ＣＰＵ３０が表示装置２５に警告メッセージを表示する構成を採用した場合、ユーザに異常が発生した旨を報知できる。よって、ユーザは電源スイッチ２６を操作してプリンタ１０の電源を遮断させるなどの適切な処置をすることができる。
【００６４】
（５）さらに、ＣＰＵ３０が割込信号に基づき行う処理として、ＣＰＵ３０がプリンタ１０のシステムにリセット信号を発行する構成を採用した場合は、プリンタ１０がリセットされてリブートされる。このため、プリンタ１０を正常に動作する状態で立ち上がることを期待できる。この場合、プリンタ１０が立ち上げ直された旨を表示して、ユーザに異常が発生した旨を知らせてもよい。
【００６５】
（６）アクセスシーケンスを採用したので、ＣＰＵ３０の暴走時には確実にステップモータ２９を駆動停止できる。すなわち、ＣＰＵ３０の暴走発生時にカウンタ４２が偶然リセットされてしまいステップモータ２９が停止されなくなる事態を回避できる。
【００６６】
尚、発明の実施の形態は、上記実施形態に限定されるものではなく、以下のように変更してもよい。
（変形例１）上記実施形態では、比較器４４から出力される異常信号をモータドライバ１８に出力してステップモータ２９を停止させたが、比較器４４から出力される異常信号を基に実施させる処理は適宜設定できる。例えば一次及び二次電源回路１１，１２を遮断できるハードウェアからなる遮断回路に、比較器４４からの遮断信号を出力してプリンタ１０の電源を遮断する構成を採用できる。また、ステップモータ２９を停止させる停止信号（異常信号）の出力先をモータドライバ１８に替え、他の回路としてもよい。例えばモータドライバコントロールモジュール３４に停止信号を出力する構成を採用できる。
【００６７】
（変形例２）前記実施形態では、アクセスシーケンスとして、３つのレジスタＲ１〜Ｒ３にそれぞれ対応する設定値を予め決められた順序で書き込む方法を採用したが、ＣＰＵ３０がリセット回路４３に対して行うリセット処理はアクセスシーケンスによる方法に限定されず、他の方法も適宜採用できる。例えば１つのレジスタに設定値を書き込むだけの方法を採用できる。また、リセット回路のリセット信号出力条件（論理回路構成）についても、アクセス順序は関係なく複数の設定値が正しく書き込まれた場合に常にリセット信号を出力する回路構成を採用できる。
【００６８】
（変形例３）前記実施形態では、ステップモータ２９が反転する度にカウンタ４２をリセットしたが、ステップモータ２９の反転時以外の駆動途中においてカウンタ４２をリセットする構成も採用できる。例えばキャリッジ２８の一走査の経路上に複数点の目標位置を設定し、各目標位置に対応する電動機の各々の目標駆動位置に達する度にカウンタ４２をリセットさせる。この場合、各目標駆動位置よりも少し進行方向先方位置までの電動機の駆動量に相当するパルス数を目標回転数上限値（設定値）として設定する。目標位置が等間隔に設定されていれば目標回転数上限値の書き替えは不要であるが、次の目標駆動位置までの駆動量が前回の駆動量と異なる場合は、その都度、異常計数値を書き替える。このように、停止又は反転する度にカウンタ４２をリセットするのではなく、駆動途中に設定した目標位置に達する度にカウンタ４２をリセットする構成であっても、ＣＰＵ３０の暴走によるモータ制御異常を検出できる。
【００６９】
（変形例４）前記実施形態では、キャリッジの走査ごとの目標回転数に所定値を加えた値を目標回転数上限値としたが、キャリッジをその移動経路終端位置に減速せず突入することを防止できるその終端位置より所定距離手前の位置までの移動量のパルス数換算値に相当する回転数を目標回転数上限値に設定することもできる。この場合、キャリッジがその移動経路終端位置に減速せず突入することを防止できる。また、キャリッジが走査経路上を移動できる最大移動量（例えばホームポジションからその反対側端部までの移動量）のパルス数換算値を目標回転数上限値（設定値）として設定することもできる。この場合は、目標回転数上限値は固定値となる。このため、目標回転数上限値はプリンタの起動時に一回設定されるだけなので、毎回の走査の度に目標回転数上限値の設定が行われる構成とした場合に起こりうる、ＣＰＵの暴走のために目標回転数上限値の設定が不能になる事態を回避できる。もちろん、目標回転数上限値が固定値の場合は、レジスタに替え、常に固定値が信号値として出力される回路としてもよい。
【００７０】
（変形例５）前記実施形態では、警告メッセージを表示させたが、他の報知手段を採用できる。例えば音声通知部、ブザー、サイレン等の音報知部によって、音声や音により警告を発する構成でもよい。また、ＬＥＤ等の点灯表示部により異常の旨を点灯により警告することもできる。
【００７１】
（変形例６）前記実施形態では、電動機を回転型のモータとしたが、パルス制御により駆動されるリニアパルスモータであっても構わない。また、リニアアクチュエータの一部を構成する回転型の電動機であってもよい。要するにパルス制御される電動機であれば足りる。もちろん、エンコーダもモータの位置精度を高めることなどを目的として必要に応じて備えてもよい。
【００７２】
（変形例７）前記実施形態では、電子機器を液体噴射装置としてのインクジェット式のプリンタ１０に具体化したが、この限りではなく、インク以外の他の液体（機能材料の粒子が分散されている液状体を含む）を噴射する液体噴射装置に具体化することもできる。例えば、液晶ディスプレイ、ＥＬ（エレクトロルミネッセンス）ディスプレイ及び面発光ディスプレイの製造などに用いられる電極材や色材などの材料を分散または溶解のかたちで含む液状体を噴射する液体噴射装置、バイオチップ製造に用いられる生体有機物を噴射する液体噴射装置、精密ピペットとして用いられ試料となる液体を噴射する液体噴射装置であってもよい。そして、これらのうちいずれか一種の液体噴射装置に、本発明を適用してもよい。さらに、液体噴射装置に限らず、複合機、スキャナー、プロジェクタ、デジタルカメラなど、広く他の電子機器に本発明を適用することができる。例えばプロジェクタやデジタルカメラにおいて、ズーム用のモータを動作させるＣＰＵ３０の動作異常（暴走等）を検出してモータを停止させる構成も採用できる。すなわち、予めモータを駆動させる目標回転数が既知である場合に、計数された回転数が回転数上限値（設定値）を超えた場合に停止信号が出力される構成とする。この場合、ズームのために焦点距離を変化させるべく移動するズーム機構を構成するズーム用可動体が移動体に相当する。また、移動体の移動経路は、直線状に限らず回転又は自転による移動でもよい。
【００７３】
上記実施形態及び各変形例から把握できる技術的思想を以下に記載する。
（１）請求項９に記載の電動機の制御異常検出装置において、前記リセット手段は、複数の設定値をそれぞれ書込み可能な複数の格納部と、前記複数の格納部にそれぞれ適正な設定値が適正な順序で書き込まれた場合にリセット信号を出力する論理回路とを備えることを特徴とする。この構成によれば、複数の格納部のそれぞれに適正な設定値が適正な順序で書き込まれた場合に限り論理回路はリセット信号を出力するので、制御手段が異常動作しているときは計数手段はまずリセットされることがない。
【図面の簡単な説明】
【００７４】
【図１】一実施形態におけるプリンタの電気的構成を示すブロック図。
【図２】モータ制御装置の電気的構成を示すブロック図。
【図３】異常監視処理のフローチャート。
【図４】機能非活性化処理におけるアクセスシーケンスを示すフローチャート。
【図５】リセット回路における状態遷移図。
【図６】（ａ）はモータ制御正常時、（ｂ）はモータ制御異常時における信号出力を示すそれぞれタイミングチャート。
【符号の説明】
【００７５】
１０…電子機器としてのプリンタ、１３…コントローラ、１４…駆動部を構成するモータドライバ、１５…駆動部を構成するモータドライバ、１６…ヘッドドライバ、１７…表示駆動回路、２１…電動機（駆動源）としてのキャリッジモータ、２２…電動機（駆動源）としての紙送りモータ、２３…記録ヘッド、２４…操作パネル、２５…表示装置、２８…移動体としてのキャリッジ、２９…電動機（駆動源）としてのステップモータ、３０…制御手段としてのＣＰＵ、３１…ＲＯＭ、３２…ＲＡＭ、３３…制御手段を構成するタイマ、３４…駆動部を構成するモータドライバコントロールモジュール、３５…監視ユニット、４１…設定手段としての目標回転数上限レジスタ、４２…計数手段としてのカウンタ、４３…リセット手段としてのリセット回路、４４…異常検出手段としての比較器、４５…ＣＰＵ内のカウンタ、４６…論理回路、Ｒ１〜Ｒ３…レジスタ。
【図１】
2007215288.tif 000003
【図２】
2007215288.tif 000004
【図３】
2007215288.tif 000005
【図４】
2007215288.tif 000006
【図５】
2007215288.tif 000007
【図６】
2007215288.tif 000008