(57)【要約】【課題】複数のモータを独立に駆動制御できるモータ制御装置を提供することを目的とする。また、複数のモータを同時に駆動開始及び停止可能なモータ制御装置を提供することを目的とする。【解決手段】複数のモータの駆動を制御するモータ制御装置１００において、複数のモータＭのそれぞれに、各モータＭの駆動を独立に制御するモータ制御ブロック１８を備えている。そして、各モータ制御ブロック１８は、モータを駆動制御するための信号を生成するためのパルスデータ値を格納する記憶手段（テーブルバッファ）２４と、記憶手段２４から順次転送されるパルスデータ値に基づいて、モータを駆動制御するための信号を生成し、モータに出力するパルス生成手段２２と、を備えている。【選択図】図２
2007330000.tif 000002
【特許請求の範囲】
【請求項１】
複数のモータの駆動を制御するモータ制御装置において、
複数のモータのそれぞれに、各モータの駆動を独立に制御するモータ制御ブロックを備え、
各モータ制御ブロックは、
当該モータ制御ブロックに接続されたモータを駆動制御するための信号を生成するためのパルスデータ値を格納する記憶手段と、
前記記憶手段から順次転送されるパルスデータ値に基づいて、モータを駆動制御するための信号を生成し、当該モータ制御ブロックに接続されたモータに出力するパルス生成手段と、
を備えるモータ制御装置。
【請求項２】
前記モータ制御装置は、
複数のモータの駆動開始及び停止を制御するスタート／ストップ手段を、複数のモータ制御ブロックが共有し、前記複数のモータに対して駆動開始及び停止を同時に制御できる、
前記請求項１記載のモータ制御装置。
【請求項３】
前記記憶手段は、
記憶配列の末尾と先頭をつないでデータを環状に記憶管理するリングバッファ構成であり、無限長のパルスデータを設定可能である、
前記請求項１又は２記載のモータ制御装置。
【請求項４】
前記記憶手段は、
二個の記憶配列を備えるダブルバッファ構成であり、一の記憶配列からパルスデータ値の読み出しを行っている間に、他の記憶配列へパルスデータ値の書込みが可能である、
前記請求項１又は２記載のモータ制御装置。
【請求項５】
前記モータ制御装置は、
前記モータ制御装置の動作全体を制御する制御手段と、
を備え、
前記記憶手段は、エンプティニアエンド又はエンド割り込みを出力し、前記記憶手段が空になるタイミングを前記制御手段に通知する機能を備え、
前記制御手段は、
前記記憶手段からエンプティニアエンド又はエンド割り込みを受信すると、前記記憶手段に対して、パルスデータ値の書換えを行う、
前記請求項１乃至４のいずれかに記載のモータ制御装置。
【請求項６】
前記モータ制御装置は、
前記モータ制御装置の動作全体を制御する制御手段と、
を備え、
前記記憶手段は、現在読み出されているアドレスを読み出す機能を備え、
前記制御手段は、
前記記憶手段から受信したアドレスに基づいて、前記記憶手段に対して、出力済みのパルスデータ値の書換えを行う、
前記請求項１乃至５のいずれかに記載のモータ制御装置。
【請求項７】
前記モータはステッピングモータであり、
前記パルスデータ値は、
各モータへ出力する信号の状態を規定する第１データと出力信号のパルス幅を規定する第２データとを備える、
前記請求項１乃至６記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はモータ制御装置、特に複数のモータの駆動制御を行うモータ制御装置に関するものである。
【背景技術】
【０００２】
従来、プリンタなどの用紙搬送等の動力源として、相信号の組み合わせにより制御されるモータ（ステッピングモータ）が用いられている。ステッピングモータの制御は、ＣＰＵのタイマ機能を用いてステッピングモータへのパルス出力タイミングを生成し、タイマ割り込みが発生したときに、ＣＰＵからモータへ信号を出力している。このタイマの設定を、モータのステップ駆動間隔に設定することにより加減速および定速制御を実施している。
【０００３】
しかし、この制御方式は、タイマ割り込み毎にＣＰＵがモータへ信号を出力する必要があるためＣＰＵに負荷がかかり、他の処理に支障がでる。また、タイマ割り込み処理が起動するまでに処理時間がかかるため、正確なステッピングパルス制御ができない。そこで、特許文献１記載の発明では、ＤＭＡコントローラ（Direct Memory Access Controller）の機能を利用して、ＣＰＵを介さずに外部メモリからステッピングパルスデータ値をモータ制御ブロックに直接転送し、所望の動作を得るようにしている。
【特許文献１】特開２００１−２８６１９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１記載のものは、モータに制御信号を出力する度ごとに、モータ制御ブロックに内蔵したＤＭＡコントローラにより外部メモリに格納されたステッピングパルスデータ値をモータ制御ブロックが読み出すが、外部メモリは複数のモータで共通で使用されるため、複数のモータが同時に動作する場合は、調停時間がかかり、その結果、ステッピングパルス信号の出力タイミングが設定値からずれる可能性がある。
【０００５】
また、外部メモリは有限長であるため、モータに対して無限長のステッピングパルスを出力したい場合は、ＤＭＡコントローラのデータ転送が終了した後、すぐに次のデータを外部メモリに設定し、ＤＭＡコントローラの再起動が必要となり、その間モータへ駆動パルス信号出力に遅延が発生する。
【０００６】
本発明は、かかる事情に鑑みてなされたものであり、複数のモータを独立に駆動制御できるモータ制御装置を提供することを目的とする。また、複数のモータを同時に駆動開始及び停止可能なモータ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明によるモータ制御装置は、複数のモータの駆動を制御するモータ制御装置において、複数のモータのそれぞれに、各モータの駆動を独立に制御するモータ制御ブロックを備えている。そして、各モータ制御ブロックは、当該モータ制御ブロックに接続されたモータを駆動制御するための信号を生成するためのパルスデータ値を格納する記憶手段と、記憶手段から順次転送されるパルスデータ値に基づいて、モータを駆動制御するための信号を生成し、当該モータ制御ブロックに接続されたモータに出力するパルス生成手段と、を備えている。かかる発明によれば、モータ制御ブロックにパルスデータ値を格納するバッファを個別に設けることにより、モータと一対一のデータ格納、及び、複数モータの完全な独立駆動が可能となる。
【０００８】
また、モータ制御装置は、複数のモータの駆動開始及び停止を制御するスタート／ストップ手段を、複数のモータ制御ブロックが共有し、複数のモータに対して駆動開始及び停止を同時に制御できることが望ましい。かかる発明によれば、複数のモータに対して、同時に駆動開始及び停止を実現することが可能となる。
【０００９】
好適には、記憶手段は、記憶配列の末尾と先頭をつないでデータを環状に記憶管理するリングバッファ構成、又は、二個の記憶配列を備えるダブルバッファ構成である。リングバッファ構成を採用すると、無限長のパルスデータを設定可能である。また、ダブルバッファ構成を採用すると、一の記憶配列からパルスデータ値の読み出しを行っている間に、他の記憶配列へパルスデータ値の書込みが可能である。
【００１０】
また、好適には、記憶手段はエンプティニアエンド又はエンド割り込みを出力し、記憶手段が空になるタイミングを制御手段に通知する機能を備えている。ここで、制御手段とは、モータ制御装置の動作全体を制御するものであり、記憶手段からエンプティニアエンド又はエンド割り込みを受信すると、記憶手段に対して、パルスデータ値の書換えを行うようになっている。或いは、記憶手段は、現在読み出されているアドレスを読み出す機能を備え、制御手段は、記憶手段から受信したアドレスに基づいて、記憶手段に対して、出力済みのパルスデータ値の書換えを行うようになっている。かかる発明によれば、記憶手段に格納されているパルスデータ値を適切なタイミングで書換えることができる。
【００１１】
さらに、好適には、モータはステッピングモータであり、パルスデータ値は、各モータへ出力する信号の状態を規定する第１データと出力信号のパルス幅を規定する第２データとを備える。
【００１２】
なお、本明細書等において、手段とは、単に物理的手段を意味するものではなく、その手段が有する機能をソフトウェアによって実現する場合も含む。また、１つの手段が有する機能が２つ以上の物理的手段により実現されても、２つ以上の手段の機能が１つの物理的手段により実現されてもよい。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態について図面を参照しつつ詳細に説明する。なお、同一の要素には同一の符号を付し、重複する説明を省略する。
【００１４】
図１及び図２は、本発明によるモータ制御装置１００のシステム構成の一例を示すブロック図である。図１は、モータ制御装置１００の全体構成を示す図である。また、図２はモータ制御装置１００の一部、特にモータ制御ユニット１６の構成を示す図である。
【００１５】
図１に示すとおり、本実施形態におけるモータ制御装置１００は、ＣＰＵ１０と、ＲＯＭ１２と、ＲＡＭ１４と、モータ制御ユニット１６とが、それぞれバス２０に接続され、これらの間で種々のデータを相互に伝達できるようになっている。また、モータ制御ユニット１６は複数のモータ制御ブロック１８を備え、各モータ制御ブロック１８にモータＭが接続されている。
【００１６】
ここで、ＣＰＵ１０は、モータ制御装置１００の動作全体を制御する制御手段であり、ＲＡＭ１４をワークエリアとして、ＲＯＭ１２に格納されたプログラムに従って処理や命令を実行し、モータＭの駆動制御を行う。また、複数のモータＭは、プリンタの紙送り等のための動力源として用いられるステッピングモータであり、各モータＭはそれぞれ各モータ制御ブロック１８により駆動制御される。
【００１７】
また、モータ制御ユニット１６は、モータ制御用に設計された集積回路（ＡＳＩＣ）であり、図２に示すとおり、複数のモータ制御ブロック１８をパラレルに備えている。そして、複数のモータ制御ブロック１８の各々は、モータＭに入力される制御信号を生成するためのパルス生成回路２２と、モータＭを駆動制御するためのステッピングパルス信号を生成するためのパルスデータ値を格納するテーブルバッファ（ＲＡＭ）２４とを備えている。なお、図２では図示を一部省略しているが、各モータ制御ブロック１８は全て、パルス生成回路２２及びテーブルバッファ２４を備えている。このように、一のモータＭに対して、一のテーブルバッファ２４を設けることにより、モータＭとパルスデータ値テーブルを一対一で備え、かつ、複数モータＭの完全な独立駆動を可能としている。
【００１８】
そして、モータ制御ブロック１８では、テーブルバッファ２４に格納されているパルスデータ値がパルス生成回路２２に順次転送され、パルス生成回路２２は、転送されたパルスデータ値に基づいてモータ制御信号を生成し、モータＭに出力する。このように、パルスデータ値がパルス生成回路２２へ、ＣＰＵ１０を介すること無く、また、ＲＯＭ１２やＲＡＭ１４等の外部メモリから毎回読み出されること無く、テーブルバッファ２４からデータ転送がなされる。また、モータＭに信号が出力されると、当該信号がフィードバックされ、パルス生成回路２２に対して次のデータ転送が促される。なお、パルスデータ値は、テーブルバッファ２４の任意のバッファアドレスからデータ転送が開始され、任意のバッファアドレスで終了可能であり、データ転送が終了した後にＣＰＵ１０への割り込みを発生する。
【００１９】
さらに、モータ制御ユニット１６は、パルス生成用の基準クロックを各パルス生成回路２２に送るための基準クロック回路２６と、複数のモータＭに対して駆動開始及び停止、すなわち各パルス生成回路２２の動作の開始及び停止を制御するスタート／ストップ回路２８と、を備えている。基準クロック回路２６とスタート／ストップ回路２８は、複数のモータ制御ブロック１８により共有され、基準クロック回路２６の出力信号とスタート／ストップ回路２８の出力信号は、複数のモータ制御ブロック１８のそれぞれに入力されるようになっている。基準クロック回路２６は、各モータ制御ブロック１８に対して共通の基準クロックを提供する。また、スタート／ストップ回路２８は、ＣＰＵ１０が、駆動を開始又は停止するモータＭをスタート／ストップ回路２８に指定すると、スタート／ストップ回路２８から各モータ制御ブロック１８に、スタート／ストップ信号が送出され、この信号に基づいて、モータ制御ブロック１８が動作を開始又は停止するようになっている。スタート／ストップ回路２８の出力信号は、モータ制御装置１００の備えるモータＭの数に等しいビット長を有し、各ビット毎に一のモータＭ（モータ制御ブロック１８）が割り当てられている。そして、各ビット毎に１又は０を立ててモータ制御ブロック１８に信号を出力することにより、各ビットに対応するモータ制御ブロック１８に対して、同時かつ独立に、動作の開始又は停止を指示できるようになっている。
【００２０】
図３は、各モータ制御ブロック１８が個別に備えるテーブルバッファ２４に記憶されるパルスデータ値の一例を示す図である。図３に示すとおり、テーブルバッファ２４は、１０２４個のバッファからなり、各バッファは１２ビットで構成されている。この１２ビットのうち、上位４ビット（第１データ）はモータＭへの出力信号（モータ制御信号）の状態を指示するためのものであり、各ビットの０／１により、各出力信号状態のＬ（ロー）／Ｈ（ハイ）を規定している。また、下位８ビット（第２データ）はパルス幅を設定するためのものであり、上位４ビットで指定されるモータ制御信号の状態が出力される期間（出力周期）が設定されるようになっている。このように、上位４ビットの出力信号及び下位８ビットのパルス幅設定により、ステッピングモータＭの種々様々な駆動に対応できるようになっている。
【００２１】
図４は、パルス生成回路２２からモータＭへ出力されるモータ制御信号を示す図である。パルス生成回路２２は、スタート／ストップ回路２８からスタート指示を受けると、テーブルバッファ２４に格納されているパルスデータ値を順次読み出して、モータ制御信号を生成し、出力する。図４は、図３に示されるバッファ０からバッファ３までのテーブルデータによって出力されるモータ制御信号を示している。同図において、時間の刻み幅は、基準クロックの刻み幅を表している。図４に示す図では、時刻ｔ０にスタート／ストップ回路２８からスタート指示信号を受信して、モータ制御信号の出力を開始する。まず、スタート指示信号を受信すると、テーブルバッファ２４のバッファＢ０に格納されているパルスデータ値がパルス生成回路２２に転送され、パルス生成回路２２が出力信号Ｓ０をＨ、出力信号Ｓ１，Ｓ２，Ｓ３をＬで１パルス幅（基準クロック１つ分）のパルス信号（モータ制御信号）を生成し、モータＭに出力する。そして、１パルス幅時間経過後（時刻ｔ１）に、次のバッファＢ１からパルス生成回路２２にパルスデータ値が転送され、パルス生成回路２２が出力信号Ｓ０，Ｓ１をＨ、出力信号Ｓ２，Ｓ３をＬで２パルス幅のパルス信号を生成し、モータＭに出力する。その後、２パルス幅時間経過後（時刻ｔ２）に、バッファＢ２からパルス生成回路２２にパルスデータ値が転送され、出力信号Ｓ０，Ｓ１，Ｓ２をＨ、出力信号Ｓ３をＬで３パルス幅のパルス信号を生成、出力する。以降同様の処理を繰り返し、モータ制御ブロック１８は、テーブルバッファ２４に格納されているパルスデータ値を順次パルス生成回路２２に転送して、パルス生成回路２２が転送されたパルスデータ値に基づいてパルス信号を生成し、モータＭに出力する。そして、パルス生成ブロック１８が、スタート／ストップ回路２８からストップ信号を受信するまで、このモータ制御信号の生成・出力処理を繰り返す。
【００２２】
本実施形態において、テーブルバッファ２４は、記憶配列の末尾と先頭をつないでデータを環状に記憶管理するリングバッファ構成を有することが望ましい。リングバッファ構成を採用することにより、無限長のパルスデータを設定できるようになり、モータＭの無限駆動が可能になる。また、バッファサイズを軽減することができ、コスト軽減にもつながる。
【００２３】
また、テーブルバッファ２４は、バッファエンドが近づいていることを示すバッファエンプティニアエンド又はバッファエンドにおいて、割込みをＣＰＵ１０に出力できるようになっている。これにより、バッファが空になるタイミングをＣＰＵ１０に通知できるので、ＣＰＵ１０は、バッファが空になる前に、ＲＯＭ１２又はＲＡＭ１４に記憶されているパルスデータ値を、テーブルバッファ２４に書き込むことが可能となる。書込み（書換え）のタイミングは、ＣＰＵ１０の処理速度やテーブルバッファ２４のサイズ等により決定するとよい。
【００２４】
さらに、テーブルバッファ２４に、現在読み出されている（パルス生成回路２２に転送されている）バッファアドレスを読み出す機能を設けてもよい。これにより、ＣＰＵ１０は、どのパルスデータ値まで出力されているかを確認できるため、パルスデータ値の転送済み箇所に次のデータを設定できるようになる。
【００２５】
また、テーブルバッファ２４をリングバッファ構成とする代わりに、２個の記憶配列を切り替えて使用するダブルバッファ構成としてもよい。ダブルバッファ構成を採用することにより、一方の記憶配列からパルスデータ値を読み出している間に、他方の記憶配列にパルスデータ値を書き込むことができるので、継ぎ目無くモータＭを駆動制御できる。
【００２６】
以上のように構成されるモータ制御装置１００の動作の概要について説明する。
【００２７】
まず、ＣＰＵ１０は、各モータＭの動作パターンに対応するパルスデータ値のテーブルをＲＯＭ１２又はＲＡＭ１４から読み出し、各モータＭに一対一に対応して備えられるテーブルバッファ２４を書き込んでおく。このとき、複数のモータＭをそれぞれ異なる動作パターンで駆動制御する場合には、各テーブルバッファ２４に、それぞれ異なるパルスデータ値のテーブルが書き込まれることになる。そして、ＣＰＵ１０が、駆動を開始するモータＭをスタート／ストップ回路２８に指定すると、スタート／ストップ回路２８から所定のモータ制御ブロック１８にスタート信号が送出され、この信号に基づいて、モータ制御ブロック１８が動作を開始する。
【００２８】
モータ制御ブロック１８が動作を開始すると、テーブルバッファ２４からパルスデータ値が順次パルス生成回路２２に転送され、転送されたパルスデータ値によって示されるパルス信号が生成され、モータＭに出力される。その後、テーブルバッファ２４の書換え時を除いて、ＣＰＵ１０を介することなく、テーブルバッファ２４からパルス生成回路２２へのデータ転送、及びモータ駆動信号の生成・出力処理が繰り返される。なお、テーブルバッファ２４がバッファエンプティニアエンド等を検出すると、ＣＰＵ１０に通知され、テーブルバッファ２４のパルスデータ値のテーブルが書き換えられる。
【００２９】
モータＭの駆動を停止するとき、ＣＰＵ１０は、スタート／ストップ回路２８に所定のモータＭの駆動を停止するよう指示を出す。この指示に基づいて、スタート／ストップ回路２８から所定のモータ制御ブロック１８にストップ信号が送出され、この信号に基づいて、モータ制御ブロック１８が動作を停止する。
【００３０】
以上のとおり、本発明のモータ制御装置は、複数のモータ制御ブロック１８のそれぞれにテーブルバッファ２４を設け、モータＭと一対一のデータ格納及び完全な独立駆動を可能にしている。また、これにより、複数のモータＭに対して、同時に駆動開始及び停止を制御可能である。
【００３１】
なお、本発明は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において他の様々な形で実施することができる。このため、上記実施形態はあらゆる点で単なる例示にすぎず、限定的に解釈されるものではない。
【００３２】
例えば、上述の動作概要は処理内容に矛盾を生じない範囲で任意に順番を変更して又は並列に実行することができる。
【図面の簡単な説明】
【００３３】
【図１】モータ制御装置１００の全体構成を示す図である。
【図２】モータ制御ユニット１６の構成を示す図である。
【図３】テーブルバッファ２４に格納されるパルスデータ値の一例を示す図である。
【図４】パルス生成回路２２から出力されるモータ制御信号を示す図である。
【符号の説明】
【００３４】
１０  ＣＰＵ、１２  ＲＯＭ、１４  ＲＡＭ、１６  モータ制御ユニット、１８  モータ制御ブロック、２０  バス、２２  パルス生成回路（パルス生成手段）、２４  テーブルバッファ（記憶手段）、２６  基準クロック回路、２８  スタート／ストップ回路、１００  モータ制御装置、Ｍ  モータ
【図１】
2007330000.tif 000003
【図２】
2007330000.tif 000004
【図３】
2007330000.tif 000005
【図４】
2007330000.tif 000006