(57)【特許請求の範囲】
【請求項１】
夫々が１または複数の種類の制御データに基づいて処理を行なう複数の制御部に対して、夫々に適合した制御データを送信するための制御装置であって、
所定の第１の起動信号を受信する度に起動され、所定の第１の制御部に適合した種類の制御データをメモリから読み出して前記第１の制御部へ転送する第１のＤＭＡ処理部と、
所定の起動信号を受信する度に起動され、前記第１の制御部の動作切替タイミングを指定する前記第１のＤＭＡ処理部用の計時データをメモリから読み出して送信する第１の計時用ＤＭＡ手段と、
前記第１の計時用ＤＭＡ手段により送信された計時データを受信してから当該計時データで指定される時間が経過した時点で前記第１の起動信号を前記第１のＤＭＡ処理部へ出力する第１の計時手段と、
所定の第２の起動信号を受信する度に起動され、所定の第２の制御部に適合した種類の制御データをメモリから読み出して前記第２の制御部へ転送する第２のＤＭＡ処理部と、
前記第２のＤＭＡ処理部用の計時データを受信してから当該計時データで指定される時間が経過した時点で前記第２の起動信号を前記第２のＤＭＡ処理部へ出力する第２の計時手段と、を備え、
前記第１のＤＭＡ処理部は、前記第１の起動信号を受信する度に前記第２のＤＭＡ処理部用の計時データをメモリから読み出して前記第２計時手段へ送信する第２の計時用ＤＭＡ手段を有するＤＭＡ起動手段を備え、
前記第１のＤＭＡ処理部は、そのデータ転送動作が終了すると前記第１の計時用ＤＭＡを起動させることを特徴とする制御装置。
【請求項２】
請求項１記載の制御装置において、
前記第１および第２のＤＭＡ処理部により制御データが読み出される第１および第２の制御データテーブルと、
前記第１および第２の制御データテーブルに制御データを設定する制御データ設定手段とを備えることを特徴とする制御装置。
【請求項３】
請求項１または２記載の制御装置において、
前記第１の計時用ＤＭＡ手段により計時データが読み出される前記メモリとしての第１の計時データテーブルと、
前記第２の計時用ＤＭＡ手段により計時データが読み出される前記メモリとしての第２の計時データテーブルと、
前記第１及び第２の計時データテーブルに計時データを設定する計時データ設定手段とを備えることを特徴とする制御装置。
【請求項４】
請求項１乃至３のうち何れか１項記載の制御装置において、
前記第１のＤＭＡ処理部は、前記第１の制御部に適合した制御データの種類毎に夫々対応して設けられた、対応する種類の制御データをメモリから１つずつ読み出して前記第１の制御部へ転送する１つまたは複数のＤＭＡ手段を備えることを特徴とする制御装置。
【請求項５】
請求項４記載の制御装置において、
前記第２のＤＭＡ処理部は、前記第２の制御部に適合した制御データの種類毎に夫々対応して設けられた、対応する種類の制御データをメモリから１つずつ読み出して前記第２の制御部へ転送する１つまたは複数のＤＭＡ手段を備え、
前記第１のＤＭＡ処理部は、前記第２のＤＭＡ処理部が備えるＤＭＡ手段のうち少なくとも１つのＤＭＡ手段について、そのデータ転送動作を指定するための動作指定データをメモリから読み出して当該ＤＭＡ手段の制御レジスタへ転送するＤＭＡ動作制御用ＤＭＡ手段を備えることを特徴とする制御装置。
【請求項６】
請求項４または５記載の制御装置において、
前記第１のＤＭＡ処理部が備えるＤＭＡ手段は、前記第１の起動信号により何れか１つのＤＭＡ手段が起動され、その後、他のＤＭＡ手段が順次起動されるように構成されていることを特徴とする制御装置。
【請求項７】
請求項６記載の制御装置において、
前記動作指定データは、ＤＭＡ手段のデータ転送元、データ転送先、データ転送回数、または、次に起動させるべきＤＭＡ手段を示すリンク先ＤＭＡの何れかを指定することを特徴とする制御装置。
【請求項８】
請求項７記載の制御装置において、
前記第２のＤＭＡ処理部は、所定の第１のＤＭＡ手段と、該第１のＤＭＡ手段により起動され得る複数の第２のＤＭＡ手段とを含み、
前記第１のＤＭＡ処理部が備える前記ＤＭＡ動作制御用ＤＭＡ手段は、前記第１のＤＭＡ手段の制御レジスタに、前記複数の第２のＤＭＡ手段のうちの何れか１つをリンク先ＤＭＡとして指定するデータを転送することを特徴とする制御装置。
【請求項９】
請求項１から８のいずれかに記載の制御装置において、
前記第１の制御部はプリンタのキャリッジを駆動するステップモータの制御部であり、前記第２の制御部は前記キャリッジに設けられた印刷ヘッドの制御部であり、
前記第１の計時用ＤＭＡ手段が前記第１の計時手段へ転送する計時データは、前記ステップモータの位相切替タイミングを指定するためのタイミングデータであり、
前記第１のＤＭＡ処理部が前記第１の制御部へ転送する制御データは、前記位相切替タイミング毎に前記ステップモータに印加すべき電圧の位相パターンを指定するための位相パターンデータ、および、前記位相切替タイミング毎に前記ステップモータに供給すべき電流値を指定するための電流値データを含み、
前記第２のＤＭＡ処理部が前記第２の制御部へ転送する制御データは、前記位相切替タイミング毎に前記印刷ヘッドが印刷すべき印刷データを含むことを特徴とする制御装置。
【請求項１０】
請求項９記載の制御装置において、
前記プリンタはインクジェット式プリンタであり、
前記印刷データは、前記印刷ヘッドが印刷すべき各画素について、前記印刷ヘッドによるインクの吐出期間を分割した複数の区間の夫々におけるインク吐出の有無を指定するデータであり、
前記第２のＤＭＡ処理部は、
所定の起動信号を受信する度に起動され、前記印刷データをメモリから読み出して前記第２の制御部へ転送するＤＭＡ手段と、
前記複数の区間の夫々に対応したタイミングで当該ＤＭＡ手段に前記起動信号を送信する起動手段とを含むことを特徴とする制御装置。
【請求項１１】
請求項５記載の制御装置において、
前記第１の制御部はインクジェット式プリンタのキャリッジを駆動するステップモータの制御部であり、当該インクジェット式プリンタは、前記キャリッジの移動位置に応じた所定のタイミングでインクの有無に応じた変化を示すインク検出信号を出力するインク情報出力手段を備え、
前記第２の制御部は、前記インク検出信号から得られたインク検出データに基づいて所定の処理を行なう処理部であり、
前記計時データは、前記ステップモータの位相切替タイミングを指定するためのタイミングデータであり、
前記第１のＤＭＡ処理部が前記第１の制御部へ転送する制御データは、前記位相切替タイミング毎に前記ステップモータに印加すべき電圧の位相パターンを指定するための位相パターンデータ、および、前記位相切替タイミング毎に前記ステップモータに供給すべき電流値を指定するための電流値データを含み、
前記第２のＤＭＡ処理部は、前記インク検出信号から得られたインク検出データをメモリから読み出して前記第２の制御部に転送するインクデータ転送用ＤＭＡ手段を備え、
前記第１のＤＭＡ処理部が備える前記ＤＭＡ動作制御用ＤＭＡ手段は、０または所定の正値の何れかの値をとる転送回数データをメモリから読み出し、データ転送回数を指定する動作指定データとして前記インクデータ転送用ＤＭＡ手段の制御レジスタに転送することを特徴とする制御装置。
【請求項１２】
請求項８記載の制御装置において、
前記第１の制御部は、プリンタが受信したデータが格納される受信バッファを含み、前記第２の制御部は、前記受信データがその種類毎に分類されて格納される複数の種類別バッファを含み、
前記第２のＤＭＡ処理部が備える前記複数の第２のＤＭＡ手段は、前記受信バッファに格納された受信データの種類に対応して設けられており、前記受信バッファに格納された受信データをその種類に該当する前記種類別データバッファへ転送し、
前記第１のＤＭＡ処理部は、
前記受信データの種類を示すデータが与えられた場合にその種類に対応する前記第２のＤＭＡ手段を示すＤＭＡ識別データをメモリへ出力するテーブル手段と、
前記プリンタが受信したデータをメモリから読み出して前記受信バッファへ転送する受信データ転送ＤＭＡ手段と、
前記受信バッファからデータの種類を示すデータを読み出して、前記テーブル手段へ転送するＤＭＡ手段と、
前記テーブル手段が出力したＤＭＡ識別データをメモリから読み出し、リンク先ＤＭＡを指定する動作指定データとして前記第１のＤＭＡ手段の制御レジスタに転送するＤＭＡ手段とを含むことを特徴とする制御装置。
【請求項１３】
夫々が１または複数の種類の制御データに基づいて制御処理を行なう複数の制御部に対して、夫々に適合した制御データを送信する制御方法であって、
所定の第１の起動信号が発せられる度に、所定の第１の制御部に適合した種類の制御データをメモリから読み出して前記第１の制御部へ転送する第１のＤＭＡ転送ステップと、
所定の起動信号が発せられる度に、前記第１の制御部の動作切替タイミングを指定する前記第１のＤＭＡ転送ステップ用の計時データをメモリから読み出して送信する第１の計時用データ送信ステップと、
前記第１の計時用データ送信ステップで送信された前記第１のＤＭＡ処理部用の計時データを受信してから当該計時データで指定される時間が経過した時点で前記第１の起動信号を発する第１の計時ステップと、
所定の第２の起動信号が発せられる毎に、所定の第２の制御部に適合した種類の制御データをメモリから読み出して前記第２の制御部へ転送する第２のＤＭＡ転送ステップと、
前記第２のＤＭＡ転送ステップ用の計時データを受信してから当該計時データで指定される時間が経過した時点で前記第２の起動信号を発する第２の計時ステップと、を備え、
さらに、前記第１のＤＭＡ転送ステップのデータ転送動作が終了すると前記所定の起動信号を発して第１の計時用データ送信ステップを開始させるステップを備え、
前記第１のＤＭＡ転送ステップは、前記第１の起動信号が発せられる度に前記第２のＤＭＡ転送ステップ用の計時データをメモリから読み出して送信するＤＭＡ起動ステップを含むことを特徴とする制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ダイレクトメモリアクセスを用いた制御装置および制御方法に関する。
【０００２】
【従来の技術】
近年の電子機器における駆動機構は極めて高速かつ正確な動作が要求されるが、そのような要求を満足し得る制御手法として、ダイレクトメモリアクセス（ＤＭＡ）を用いた制御が知られている。このＤＭＡは、専用のハードウェア回路によって、中央処理装置（ＣＰＵ）を介在させずに、メモリに記憶されたデータを駆動機構の制御回路へ出力するものである。かかる手法によれば、ＣＰＵに負荷をかけることなく駆動機構を制御できるので、駆動機構の高速な動作にも対応することが可能となる。
【０００３】
例えば、特開２００１−３２７１９１号公報には、ＤＭＡをプリンタ等の駆動機構の制御に適用した制御装置が開示されている。この制御装置では、予め、制御の切替タイミングを指定するためのタイミングデータを記憶したタイミングデータテーブルと、各切替タイミング毎に使用すべき制御データを記憶した制御データテーブルを用意しておく。そして、ＣＰＵによる駆動開始要求後は、第１のＤＭＡ手段がタイミングデータテーブルに記憶されたタイミングデータをタイマーへ転送し、タイマーがタイムアップする度に、第２のＤＭＡ手段へ起動信号が送信される。第２のＤＭＡ手段は、起動信号を受信する度に、制御データテーブルに記憶された制御データを順次駆動機構の制御部に供給する。かかる構成によれば、駆動開始要求後は、ＣＰＵに負荷をかけることなく、予め用意したタイミングデータおよび制御データに従って駆動機構を制御することができる。
【０００４】
また、第２のＤＭＡ手段は、複数種類の制御データの夫々に対応した複数のＤＭＡ手段を備えており、最初のＤＭＡ手段が起動されることにより第１の制御データのＤＭＡ転送が完了すると、次のＤＭＡ手段が起動されて第２の制御データのＤＭＡ転送が行なわれるという手順が繰り返される。このようにして、複数種類の制御データに基づく駆動装置の制御をＤＭＡにより行なうことができる。すなわち、上記公報に開示された制御装置では、複数のＤＭＡ手段を連鎖的に起動させる構成をとることにより、ＣＰＵに負荷をかけることなく複数の種類の制御データを用いた駆動機構の制御を可能としているのである。
【０００５】
【発明が解決しようとする課題】
上述のように、上記従来の制御装置においては、第２のＤＭＡ手段に起動信号が送信されると、この第２のＤＭＡ手段が備える複数のＤＭＡ手段が順次自動的に起動される。したがって、これら複数のＤＭＡ手段の起動タイミングを独立に設定することができないために、例えば、複数の制御対象に異なるタイミングで制御データを供給するといった複雑な制御を行なうことは困難である。
本発明は上記の点に鑑みてなされたものであり、ダイレクトメモリアクセスを用いて、より複雑な制御を行なうことが可能な制御装置および制御方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記の目的を達成するため、本発明は、夫々が１または複数の種類の制御データに基づいて処理を行なう複数の制御部に対して、夫々に適合した制御データを送信するための制御装置であって、
所定の第１の起動信号を受信する度に起動され、所定の第１の制御部に適合した種類の制御データをメモリから読み出して前記第１の制御部へ転送する第１のＤＭＡ処理部と、
所定の第２の起動信号を受信する度に起動され、所定の第２の制御部に適合した種類の制御データをメモリから読み出して前記第２の制御部へ転送する第２のＤＭＡ処理部とを備え、
前記第１のＤＭＡ処理部は、前記第２の起動信号を前記第２のＤＭＡ処理部へ送信するための処理を行なうＤＭＡ起動手段を備えることを特徴とする。
【０００７】
本発明によれば、第１の制御部へ制御データを転送する第１のＤＭＡ処理部から、第２の制御部へ制御データを転送する第２のＤＭＡ処理部を起動できる。したがって、第１および第２の制御部に対して、互いに同期を取りながらも、独立に制御データを転送することができる。
【０００８】
この場合、本発明の制御装置は、前記第１および第２のＤＭＡ処理部により制御データが読み出される第１および第２の制御データテーブルと、
前記第１および第２の制御データテーブルに制御データを設定する制御データ設定手段とを備えることとしてもよい。このようにすれば、第１および第２の制御データテーブルに予め設定した制御データを夫々第１および第２の処理部へ転送することができる。すなわち、予め設定した制御データに従って、第１および第２の制御部を動作させることができる。
【０００９】
また、本発明の制御装置は、計時データを受信してから当該計時データで指定される時間が経過した時点で所定のタイムアップ信号を出力する第１の計時手段と、所定の起動信号を受信する度に起動され、前記第１の制御部の動作切替タイミングを指定する計時データをメモリから読み出して前記第１の計時手段へ送信する第１の計時用ＤＭＡ手段とを備え、
前記第１の計時手段が出力する前記タイムアップ信号が、前記第１の起動信号として前記第１のＤＭＡ処理部へ送信され、前記第１のＤＭＡ処理部は、そのデータ転送動作が終了すると前記第１の計時用ＤＭＡを起動させることとしてもよい。
【００１０】
このようにすれば、第１の計時用ＤＭＡ手段に起動信号が送信された後、計時データで指定される時間が経過すると、第１のＤＭＡ処理部に第１の起動信号が送信されることで、第１のＤＭＡ処理部が起動され制御データの転送動作が行なわれる。そして、このデータ転送動作が終了されると、再び、第１の計時用ＤＭＡ手段が起動され、次の計時データで指定された時間が経過すると、第１のＤＭＡ処理部が起動される。このようにして、計時データにより第のＤＭＡ処理部の起動タイミング、すなわち、第１の制御部へ制御データの転送タイミングを指定することができる。
【００１１】
この場合、前記第１の計時用ＤＭＡ手段により計時データが読み出される計時データテーブルと、該計時データテーブルに計時データを設定する計時データ設定手段とを備えることとしてもよい。このようにすれば、計時データテーブルに予め設定した計時データに基づいて、第１の処理部への制御データの転送タイミングを指定することができる。
【００１２】
また、本発明の制御装置は、計時データを受信してから当該計時データで指定される時間が経過した時点で所定のタイムアップ信号を出力する第２の計時手段を備え、前記ＤＭＡ起動手段は、前記第１の起動信号を受信する度に計時データをメモリから読み出して前記第２計時手段へ送信する第２の計時用ＤＭＡ手段とを備え、前記第２の計時手段が出力する前記タイムアップ信号が、前記第２の起動信号として前記第２のＤＭＡ処理部へ送信されることとしてもよい。このようにすれば、第２の計時用ＤＭＡ手段が転送する計時データに基づいて、第２のＤＭＡ処理部の起動タイミングを設定できる。
【００１３】
また、前記第１のＤＭＡ処理部は、前記第１の制御部に適合した制御データの種類毎に夫々対応して設けられた、対応する種類の制御データをメモリから１つずつ読み出して前記第１の制御部へ転送する１つまたは複数のＤＭＡ手段を備えることとしてもよい。このようにすれば、第１の制御部に対応した制御データが複数種類ある場合に、各種類のデータを１つずつ第１の制御部に転送することができる。
【００１４】
この場合前記第２のＤＭＡ処理部は、前記第２の制御部に適合した制御データの種類毎に夫々対応して設けられた、対応する種類の制御データをメモリから１つずつ読み出して前記第２の制御部へ転送する１つまたは複数のＤＭＡ手段を備え、前記第１のＤＭＡ処理部は、前記第２のＤＭＡ処理部が備えるＤＭＡ手段のうち少なくとも１つのＤＭＡ手段について、そのデータ転送動作を指定するための動作指定データをメモリから読み出して当該ＤＭＡ手段の制御レジスタへ転送するＤＭＡ動作制御用ＤＭＡ手段を備えることとしてもよい。このようにすれば、第２の制御部に対応した制御データが複数種類ある場合に、各種類のデータを１つずつ第１の制御部に転送することができる。そして、第１のＤＭＡ処理部のＤＭＡ動作制御用ＤＭＡ手段により、第２のＤＭＡ処理部の少なくとも１つのＤＭＡ手段のデータ転送動作を指定できる。すなわち、第１のＤＭＡ処理部側から第２のＤＭＡ処理部の動作を変更することが可能となる。
【００１５】
また、前記第１のＤＭＡ処理部が備えるＤＭＡ手段は、前記第１の起動信号により何れか１つのＤＭＡ手段が起動され、その後、他のＤＭＡ手段が順次起動されるように構成されていることとしてもよい。
【００１６】
また、前記動作指定データは、ＤＭＡ手段のデータ転送元、データ転送先、データ転送回数、または、次に起動させるべきＤＭＡ手段を示すリンク先ＤＭＡの何れかを指定することとしてもよい。
【００１７】
また、前記第２のＤＭＡ処理部は、所定の第１のＤＭＡ手段と、該第１のＤＭＡ手段により起動され得る複数の第２のＤＭＡ手段とを含み、
前記第１のＤＭＡ処理部が備える前記ＤＭＡ動作制御用ＤＭＡ手段は、前記第１のＤＭＡ手段の制御レジスタに、前記複数の第２のＤＭＡ手段のうちの何れか１つをリンク先ＤＭＡとして指定するデータを転送することとしてもよい。このようにすれば、第１のＤＭＡ処理部側から、第２のＤＭＡ処理部で起動されるＤＭＡ手段を指定することができる。
【００１８】
また、本発明の制御装置において、前記第１の制御部はプリンタのキャリッジを駆動するステップモータの制御部であり、前記第２の制御部は前記キャリッジに設けられた印刷ヘッドの制御部であり、
前記第１の計時用ＤＭＡ手段が前記第１の計時手段へ転送する計時データは、前記ステップモータの位相切替タイミングを指定するためのタイミングデータであり、
前記第１のＤＭＡ処理部が前記第１の制御部へ転送する制御データは、前記位相切替タイミング毎に前記ステップモータに印加すべき電圧の位相パターンを指定するための位相パターンデータ、および、前記位相切替タイミング毎に前記ステップモータに供給すべき電流値を指定するための電流値データを含み、
前記第２のＤＭＡ処理部が前記第２の制御部へ転送する制御データは、前記位相切替タイミング毎に前記印刷ヘッドが印刷すべき印刷データを含むこととしてもよい。このようにすれば、プリンタのキャリッジを駆動制御しながら、それに同期して印刷ヘッドを制御することができる。
【００１９】
この場合、前記プリンタはインクジェット式プリンタであり、前記印刷データは、前記印刷ヘッドが印刷すべき各画素について、前記印刷ヘッドによるインクの吐出期間を分割した複数の区間の夫々におけるインク吐出の有無を指定するデータであり、
前記第２のＤＭＡ処理部は、所定の起動信号を受信する度に起動され、前記印刷データをメモリから読み出して前記第２の制御部へ転送するＤＭＡ手段と、前記複数の区間の夫々に対応したタイミングで当該ＤＭＡ手段に前記起動信号を送信する起動手段とを含むこととしてもよい。
【００２０】
このようにすれば、プリンタキャリッジの駆動制御と同期しながら、インク吐出時間に基づく画素濃度の制御を行なうことができる。
【００２１】
また、本発明の制御装置において、前記第１の制御部はインクジェット式プリンタのキャリッジを駆動するステップモータの制御部であり、当該インクジェット式プリンタは、前記キャリッジの移動位置に応じた所定のタイミングでインクの有無に応じた変化を示すインク検出信号を出力するインク情報出力手段を備え、
前記第２の制御部は、前記インク検出信号から得られたインク検出データに基づいて所定の処理を行なう処理部であり、
前記計時データは、前記ステップモータの位相切替タイミングを指定するためのタイミングデータであり、
前記第１のＤＭＡ処理部が前記第１の制御部へ転送する制御データは、前記位相切替タイミング毎に前記ステップモータに印加すべき電圧の位相パターンを指定するための位相パターンデータ、および、前記位相切替タイミング毎に前記ステップモータに供給すべき電流値を指定するための電流値データを含み、
前記第２のＤＭＡ処理部は、前記インク検出信号から得られたインク検出データをメモリから読み出して前記第２の制御部に転送するインクデータ転送用ＤＭＡ手段を備え、
前記第１のＤＭＡ処理部が備える前記ＤＭＡ動作制御用ＤＭＡ手段は、０または所定の正値の何れかの値をとる転送回数データをメモリから読み出し、データ転送回数を指定する動作指定データとして前記インクデータ転送用ＤＭＡ手段の制御レジスタに転送することとしてもよい。
【００２２】
このようにすれば、第１のＤＭＡ処理部から、第２のＤＭＡ処理部のインクデータ転送用ＤＭＡ手段のデータ転送回数を０または正値に設定できるので、インク情報検出信号から得られるインク検出データのうち、インク有無の判別に必要な期間のデータのみをインクデータ転送用ＤＭＡ手段により第２の制御部へ転送することができる。
【００２３】
また、本発明の制御装置において、前記第１の制御部は、プリンタが受信したデータが格納される受信バッファを含み、前記第２の制御部は、前記受信データがその種類毎に分類されて格納される複数の種類別バッファを含み、
前記第２のＤＭＡ処理部が備える前記複数の第２のＤＭＡ手段は、前記受信バッファに格納された受信データの種類に対応して設けられており、前記受信バッファに格納された受信データをその種類に該当する前記種類別データバッファへ転送し、
前記第１のＤＭＡ処理部は、
前記受信データの種類を示すデータが与えられた場合にその種類に対応する前記第２のＤＭＡ手段を示すＤＭＡ識別データをメモリへ出力するテーブル手段と、
前記プリンタが受信したデータをメモリから読み出して前記受信バッファへ転送する受信データ転送ＤＭＡ手段と、
前記受信バッファからデータの種類を示すデータを読み出して、前記テーブル手段へ転送するＤＭＡ手段と、
前記テーブル手段が出力したＤＭＡ識別データをメモリから読み出し、リンク先ＤＭＡを指定する動作指定データとして前記第１のＤＭＡ手段の制御レジスタに転送するＤＭＡ手段とを含むこととしてもよい。
【００２４】
このようにすれば、受信バッファに格納された受信データの種類に応じて、その種類に対応した第２のＤＭＡ手段が起動される。そして、各第２のＤＭＡ手段は対応する種類の受信データを対応する種類別バッファに格納する。したがって、受信データをその種類に対応した種類別バッファに転送することができる。
【００２５】
【発明の実施の形態】
図１は、本発明が適用可能な制御装置１０の概略構成を示すブロック図である。同図に示すように、制御装置１０は、ＣＰＵ１２を備えている。ＣＰＵ１２は、メモリ１４に記憶されたプログラムに従って、各種の演算処理・制御処理を行なう。また、ＤＭＡ部１６は、ＣＰＵ１２を介在させることなく、各種入出力装置とメモリ１４との間のデータのＤＭＡ転送を実行する。図１では、入出力装置として、タイマー部１８および制御部２０を示している。
【００２６】
メモリ１４からデータの読み出しアドレスおよび読み出したデータの転送先アドレスは、アドレスバス２２により指定され、読み出されたデータはデータバス２４により転送される。メモリ１４からタイマー部１８にタイミングデータが転送されると、タイマー部１８は時間の計測を開始し、受信したタイミングデータに応じた時間が経過した時点でタイムアップ信号をＤＭＡ１６に出力する。これにより、ＤＭＡ１６は、メモリ１４から制御部２０へ所定の制御データを転送する。
【００２７】
以下、本発明の実施例について説明する。なお、以下の各実施例においては、同様の機能を有する構成部分には同一の符号を付して、その説明を適宜省略又は簡略化する。
【００２８】
（第１実施例）
図２は、本発明の第１実施例の構成を処理の流れと共に示す機能ブロック図である。なお、図２およびこれと同様の機能ブロック図を表す以下の各図において、ＤＭＡ起動動作を太線矢印で、データ転送の流れを細線矢印で示している。
【００２９】
図２に示すように、本実施例において、制御部２０は第１制御部３４と第２制御部３６とにより構成されている。第１制御部３４および第２制御部３６は、夫々、第１駆動部３０および第２駆動部３２を制御する。なお、第１駆動部３０は、例えば、プリンタのキャリッジを駆動する駆動機構であり、第２駆動部３２はプリンタの印刷ヘッドであるが、これには限定されない。
【００３０】
タイマー部１８は、第１制御部３４に対応した第１タイマー部３８と、第２制御部３６に対応した第２タイマー部４０とにより構成されている。第１タイマー部３８および第２タイマー部４０は、夫々、所定のレジスタを備えており、これらのレジスタにタイミングデータが書き込まれると、そのタイミングデータで指定された時間が経過して時点で、タイムアップ信号を出力する。
【００３１】
また、本実施例において、第１タイミングテーブル４２、第２タイミングテーブル４４、第１制御データテーブル４６、および第２制御データテーブル４８が設けられている。第１タイミングテーブル４２および第２タイミングテーブル４４には、夫々、第１制御部３４および第２制御部３６の動作の切替タイミングを制御するためのタイミングデータ（より具体的には、切替タイミング間の時間間隔を表すデータ）が記憶されている。また、第１制御データテーブル４６はｎ個のテーブル４６−１〜４６−ｎを備えており、これらのテーブル４６−１〜４６−ｎには、各切替タイミングでの第１制御部３４の動作を制御するためのｎ種類の制御データが種類毎に記憶されている。同様に、第２制御データテーブル４８は、ｍ個のテーブル４８−１〜４８−ｍを備えており、これらのテーブル４８−１〜４８−ｍには、各切替タイミングでの第２制御部３６の動作を制御するためのｍ種類の制御データが種類毎に記憶されている。上記したテーブル４２，４４，４６−１〜４６−ｎ，４８−１〜４８−ｎは夫々メモリ１４内に割り当てられた所定のアドレス空間に設けられており、それらのデータ内容は、制御開始前にＣＰＵ１２により設定されている。
【００３２】
また、本実施例の制御装置は、第１タイマー制御手段５０、第１ＤＭＡ処理部５４、および、第２ＤＭＡ処理部５６を備えている。第１ＤＭＡ処理部５４は分岐制御手段５２と、第１制御部３４のｎ種類の制御データに対応したｎ個のＤＭＡ手段５４−１〜５４−ｎを備えている。また、第２ＤＭＡ処理部５６は、第２制御部３６のｍ種類の制御データに対応したｍ個のＤＭＡ手段５６−１〜５６−ｍを備えている。これら第１タイマー制御手段５０、分岐制御手段５２、ＤＭＡ手段５４−１〜５４−ｎ、およびＤＭＡ手段５６−１〜５６−ｍは、図１に示すＤＭＡ部１６を構成しており、夫々が独立したＤＭＡとして機能する。
【００３３】
図３は、ＤＭＡの構成および基本的な動作を示す図である。同図に示すように、各ＤＭＡには、転送元レジスタＲ１、転送先レジスタＲ２、転送回数レジスタＲ３、転送方法レジスタＲ４、および、リンク先レジスタＲ５が設けられている。転送元レジスタＲ１および転送先レジスタＲ２は、夫々、ＤＭＡの転送元アドレスおよび転送先アドレスを指定するためのレジスタである。また、転送回数レジスタＲ３は１回の起動でのデータ転送回数（すなわち転送データ数）を指定するためのレジスタである。転送方法レジスタＲ４は、データ転送を１バイトずつ行なうかブロック単位でまとめて行なうか等の転送方法を指定するためのレジスタである。また、リンク先レジスタＲ５は、ＤＭＡ転送処理が完了した際に次に起動すべきＤＭＡを指定するためのレジスタである。すなわち、ＤＭＡが起動されると、転送元レジスタＲ１で指定された転送元アドレスから転送先レジスタＲ５で指定された転送先アドレスへ、転送回数レジスタＲ３で指定されたバイト数のデータが、転送方法レジスタＲ４で指定された方法で転送される。そして、データ転送が完了すると、リンク先レジスタＲ５で指定されたＤＭＡ（以下、リンク先ＤＭＡという）が起動される。
【００３４】
なお、ＤＭＡによってデータ転送が行なわれると、転送元レジスタＲ１および転送先レジスタＲ５に設定されたアドレスは夫々次のメモリアドレスを指すように自動的にインクリメントされる。また、ＤＭＡが備えるレジスタＲ１〜Ｒ５、および、上記したタイマー部３８，４０が備えるレジスタは、何れもメモリ１４上の所定のアドレスに設けられており、各レジスタへのデータ書込みは、該当するメモリアドレスへのデータ転送により行なうことができる。
【００３５】
次に、図２を参照して、本実施例における動作を説明する。先ず、ＣＰＵ１２から第１タイマー制御手段５０に駆動開始信号が送信される（Ｓ１０）と、第１タイマー制御手段５０は、第１タイミングデータテーブル４２から第１番目のタイミングデータを読み出し（Ｓ１２）、第１タイマー部３８のレジスタに転送する（Ｓ１４）。第１タイマー部３８は、そのレジスタにタイミングデータが転送されてから、タイミングデータで指定された時間が経過した時点で、タイムアップ信号を第１ＤＭＡ処理部５４の分岐制御手段５２へ送信する（Ｓ１６）。
【００３６】
分岐制御手段５２は、タイムアップ信号に応じて起動され、第２タイミングテーブル４４からタイミングデータを読み出して（Ｓ１８）、第２タイマー部４０のレジスタへ転送し（Ｓ２０）、このデータ転送が完了すると、リンク先ＤＭＡであるＤＭＡ手段５４−１を起動する（Ｓ２２）。第２タイマー部４０は、そのレジスタにタイミングデータが転送されてからタイミングデータで指定された時間が経過した時点で、タイムアップ信号を第２ＤＭＡ処理部５６のＤＭＡ手段５６−１へ出力する（Ｓ２４）。これにより、ＤＭＡ手段５６−１が起動される。
【００３７】
このようにして、ＣＰＵ１２からの駆動開始信号に応じて、第１ＤＭＡ処理部５４のＤＭＡ手段５４−１が起動され、この起動時点からタイミングデータで指定された時間が経過すると、第２ＤＭＡ処理部５６のＤＭＡ手段５６−１が起動される。そして、以後、第１ＤＭＡ処理部５４および第２ＤＭＡ処理部５６の夫々において、各ＤＭＡ手段５４−１〜５４−ｎおよび５６−１〜５６−ｎによるＤＭＡ転送動作が行なわれる。
【００３８】
すなわち、第１ＤＭＡ処理部５４においては、分岐制御手段５２により起動されたＤＭＡ手段５４−１は、第１制御データテーブル４６のテーブル４６−１の第１番目の制御データを読み出して（Ｓ２６）、第１制御部３４へ転送する（Ｓ２８）。このデータ転送が完了すると、ＤＭＡ手段５４−１のリンク先ＤＭＡであるＤＭＡ手段５４−２が起動され、テーブル４６−２の第１番目の制御データを第１制御部３４へ転送する。以後、同様にして、各ＤＭＡ手段５４−ｉ（ｉ≦ｎ）が順次テーブル４６−ｉの第１番目の制御データを読み出し（Ｓ３０）第１制御部３４へ転送する（Ｓ３２）ことで、ｎ種類の制御データが第１制御部３４へ転送される。
【００３９】
また、第２ＤＭＡ処理部５６においても、第２タイマー部４０で起動されたＤＭＡ手段５６−１が、第２制御データテーブル４８のテーブル４８−１から第１番目のデータが読み出して（Ｓ３４）、第２制御部３６へ転送する（Ｓ３６）。このデータ転送が完了すると、ＤＭＡ手段５６−１のリンク先ＤＭＡであるＤＭＡ手段５６−２が起動され、テーブル４８−２の第１番目の制御データを読み出して第２制御部３６へ転送する。同様にして、ＤＭＡ手段５４−ｉ（ｉ≦ｍ）が順次起動され、テーブル４８−ｉの第１番目の制御データを読み出して（Ｓ３８）第２制御部３６へ転送する（Ｓ４０）。
【００４０】
第１ＤＭＡ処理部５４では、ＤＭＡ手段５４−ｎのリンク先ＤＭＡとして第１タイマー制御手段５０が設定されており、ＤＭＡ手段５４−ｎによるデータ転送が完了すると、第１タイマー制御手段５０が再び起動される（Ｓ４２）。したがって、第１タイマー制御手段５０によって第１タイミングテーブル４２から読み出されたタイミングデータが第１タイマー部３８に転送されることで、上記と同様の処理Ｓ１２〜Ｓ４０が繰り返される。その際、各ＤＭＡの転送元レジスタのアドレスはインクリメントされているので、各テーブルに記憶された各種類の制御データが順番に読み出されて転送されることになる。そして、第１タイマー制御手段５０により第１タイミングテーブル４２から次に読み出されるべきタイミングデータが無くなると、以後、第１タイマー制御手段５０は動作を休止し、これにより、一連のデータ転送動作は終了する。
【００４１】
以上のようにして、第１タイミングデータテーブル４２に記憶されたタイミングデータで指定される切替タイミングで、第１ＤＭＡ処理部５４により、第１制御データテーブル４６のテーブル４６−１〜４６−ｎに記憶されたｎ種類の制御データが種類毎に１つずつ第１制御部３４に転送され、第１制御部３４はこれらの制御データに従って第１駆動部３０を制御する。また、第１ＤＭＡ処理部５４によるデータ転送のタイミングに対して、第２タイミングテーブル４４に記憶されたタイミングデータで指定される時間だけ遅れたタイミングで、第２ＤＭＡ処理部５６により第２制御データテーブル４８−１〜４８−ｍに記憶されたｍ種類の制御データが種類毎に１つずつ第２制御部３６に転送され、第２制御部３６はこれらの制御データに従って第２駆動部３２を制御する。
【００４２】
したがって、本実施例によれば、予めＣＰＵ１２が第１制御部３４および第２制御部３６により実現すべき制御動作に応じたタイミングデータおよび制御データを各テーブルに設定しておくことで、互いに同期を取りながらも独立に処理を行なうべき第１駆動部３０および第２駆動部３２の動作を、ＣＰＵ１２に負荷を掛けることなく、かつ、正確に制御することが可能となる。
【００４３】
なお、上記実施例では、第１ＤＭＡ処理部５４が備える分岐制御手段５２によってもう一つの第２ＤＭＡ処理部５６を起動することで、２つの制御部３４，３６に制御データをＤＭＡ転送するものとした。しかしながら、本発明はこれに限らず、利用可能なＤＭＡの数の範囲内で、例えば、第２ＤＭＡ処理部５６にも分岐制御手段５２と同様のＤＭＡ手段を設け、このＤＭＡ手段により更に別のＤＭＡ処理部を起動することにより、３つ以上の制御部に対して制御データを転送するようにすることも可能である。
【００４４】
また、上記の構成では、第１ＤＭＡ処理部５４の最後のＤＭＡ手段５４−ｎのリンク先ＤＭＡとして第１タイマー制御手段５０を設定し、ＤＭＡ手段５４−ｎによるデータ転送が完了した時点で、第１タイマー制御手段５０を起点とする次のＤＭＡ処理サイクルを開始させるものとした。しかしながら、本発明は、これに限らず、例えば、第１タイマー制御手段５０を第２ＤＭＡ処理部５６の最後のＤＭＡ手段５６−ｍのリンク先ＤＭＡとして設定することで、第１ＤＭＡ処理部５４の処理サイクルの開始タイミングを第２ＤＭＡ処理部５６によるデータ転送の終了タイミングを基準として設定することもできる。
【００４５】
（第２実施例）
次に、本発明の第２実施例について説明する。図４は本実施例の構成を処理の流れと共に示す機能ブロック図である。本実施例は、本発明をプリンタ制御に適用したものであり、プリンタのキャリッジを駆動するステップモータ１００の制御を行うモータ制御部１０２が上記第１実施例における第１制御部３４に対応し、印刷ヘッド１０４を制御する印刷ヘッド制御部１０６が上記第１実施例における第２制御部３６に対応している。また、本実施形態では、第１制御データテーブル４６は、位相パターンテーブル１０８および相電流値テーブル１１０により構成されており、また、第２制御データテーブル４８は印刷データテーブル１１２により構成されている。さらに、第１ＤＭＡ処理部５４は、ＤＭＡ手段として、位相パターン制御手段１１６および相電流制御手段１１８を備えており、また、第２ＤＭＡ処理部５６は、ＤＭＡ手段として、印刷制御手段１２０および第２タイマー制御手段１２２を備えている。
【００４６】
位相パターン制御手段１１６は、位相パターンテーブル１０８に記憶された位相パターンデータをモータ制御部１０２へ転送し、また、相電流制御手段１１８は、相電流値テーブル１１０に記憶された相電流データをモータ制御部１０２へ転送する。一方、印刷制御手段１２０は印刷データテーブル１１２に記憶された印刷データを印刷ヘッド制御部１０６へ転送する。なお、後述するように、１画素分の印刷データは、所定数に分割された各インク吐出区間でのインク吐出の有無を示すデータとして印刷ヘッド制御部１０６へ転送されるが、第２タイマー制御手段１２２および第２タイマー部１２４によって、吐出タイミングテーブル１２６に記憶された吐出タイミングデータに基づいて印刷制御手段１２０が起動されることにより、各インク吐出区間に同期して印刷データの転送が行なわれる。
【００４７】
一般に、ステップモータを駆動するには、モータに印加する電圧の位相パターンを順次切り替える必要がある。そこで、本実施例では、ステップモータ１００の位相の切替タイミングを示す切替タイミングデータを第１タイミングテーブル４２に設定し、各切替タイミングでステップモータ１００へ印加すべき電圧の位相パターンを表す位相パターンデータを位相パターンテーブル１０８に設定する。また、ステップモータ１００を駆動する場合、その駆動制御パターンに応じてモータへ供給する相電流を変化させる必要があるが、各切替タイミングでの相電流を示す相電流データを相電流値テーブル１１０に設定する。
【００４８】
図５は、ステップモータ１００の駆動制御パターンの典型例を示すものであり、同図（ａ）はステップモータ１００の速度パターンを、また、同図（ｂ）はステップモータ１００へ供給する電流パターンを示す。同図（ａ）に示すような台形波状の速度パターンで駆動する場合、同図（ｂ）に示すように、加速領域Ｉでは、大きな相電流を供給して加速させ、定速領域IIでは摩擦を相殺して一定速度を維持できる程度の比較的小さな相電流を供給し、減速領域IIIでは、制動力を生じさせるための大きな相電流を供給して減速させる。ＣＰＵ１２は、このようにステップモータ１００の駆動制御パターンに応じて定まる相電流パターンに従って、各切替タイミングでの相電流データを相電流値テーブル１１０に設定する。なお、ステップモータ１００の停止後の領域IVにも一定の電流を供給し続けているのは、ステップ１００の全相に微電流を流してモータ１００の残留振動を速やかに減衰させるためである。このような通電をラッシュ通電という。したがって、ステップモータ１００が停止位置に到達後、最後の制御データとしてラッシュ通電の位相パターン（全相）およびラッシュ通電の電流値を設定し、また、最後の切替タイミングデータとしてラッシュ通電時間を設定する。
【００４９】
本実施例においても、上記第１実施例と同様に、第１タイミングデータテーブル４２に記憶された切替タイミングデータに応じたタイミングで、第１制御部５４が起動され、位相パターンテーブル１０８および相電流値テーブル１１０に記憶された制御データが夫々１つずつ順番にモータ制御部１０２に供給される。したがって、各テーブルに記憶されたデータに基づき、図５（ａ）に例示するような駆動パターンに従ってステップモータ１００の制御が行なわれる。
【００５０】
ところで、本実施例において、ステップモータ１００の位相切替は、印刷ヘッド１０４で１画素を印刷する毎に行なう。そして、図６に示すように、各画素の印刷について、印刷ヘッド１０４によるインク吐出期間を例えば６つの区間Ｔ１〜Ｔ６に分割し、印刷制御手段１２０は、区間Ｔ１〜Ｔ６の夫々におけるインクの吐出の有無を示す印刷データを各区間Ｔ１〜Ｔ６のタイミングで印刷ヘッド制御部１０６へ転送することにより各画素の濃度を制御する。すなわち、印刷データテーブル１１２には、印刷データとして、印刷ヘッドが各画素の印刷にあたってインクの吐出を行なうべき各区間Ｔ１〜Ｔ６毎にインク吐出の有無を指定するデータが記憶されており、各区間Ｔ１〜Ｔ６に対応したタイミングでこの印刷データが転送される。なお、インクの吐出は、定速時だけではなく、加減速時にも行なうようにしてもよい。なお、インク吐出期間の分割数は６つに限らず、任意の分割数を用いることができる。
【００５１】
上記のように、ステップモータ１００の位相の切替は、１画素毎に行なわれるから、各画素についての区間Ｔ１〜Ｔ６での印刷データの転送は、ステップモータ１００の位相切替タイミングに同期して行なう必要がある。本実施例では、位相切替タイミングにて分岐制御手段５２が第２タイマー部４０を始動させ、第２タイマー部４０のタイムアップ時に印刷制御手段１２０を起動する。この印刷制御手段１２０によるデータ転送後、第２タイマー制御手段１２２が起動され、吐出タイミングテーブル１２６に記憶された吐出タイミングデータ（すなわち、区間Ｔ１〜Ｔ６の時間長を表すデータ）がタイマー１２４に転送される。そして、タイマー１２４のタイムアップ時に再び印刷制御手段１２０が起動される。これにより、印刷制御手段１２０は、位相切替タイミングに同期しながら、各画素についての印刷データを区間Ｔ１〜Ｔ６毎に印刷ヘッド制御部１０６へ転送する。
【００５２】
以下、図４を参照して、本実施例における動作を説明する。先ず、ＣＰＵ１２から第１タイマー制御手段５０に印刷開始信号が送信されると（Ｓ５０）、第１タイマー制御手段５０は、第１タイミングデータテーブル４２から第１番目のタイミングデータを読み出し（Ｓ５２）、第１タイマー部３８に転送する（Ｓ５４）。第１タイマー部３８は、タイミングデータが転送されてから、そのタイミングデータで指定された時間が経過した時点で、タイムアップ信号を分岐制御手段５２へ送信する（Ｓ５６）。
【００５３】
分岐制御手段５２は、タイムアップ信号に応じて起動され、第２タイミングテーブル４４からタイミングデータを読み出して（Ｓ５８）第２タイマー部４０へ転送する（Ｓ６０）と共に、このデータ転送が完了すると、リンク先ＤＭＡである位相パターン制御手段１１６を起動する（Ｓ６２）。第２タイマー部４０は、タイミングデータが転送されてから、そのタイミングデータで指定された時間が経過した時点で、タイムアップ信号を印刷制御手段１２０へ出力し（Ｓ６４）、これにより、印刷制御手段１２０が起動される。
【００５４】
分岐制御手段５２により起動された位相パターン制御手段１１６は、位相パターンテーブル１０８の第１番目の位相パターンデータを読み出してモータ制御部１０２へ転送する（Ｓ６６，Ｓ６８）。このデータ転送が完了すると、位相パターン制御手段１１６は、リンク先ＤＭＡである相電流制御手段１１８を起動する（Ｓ７０）。起動された相電流制御手段１１８は、相電流値テーブル１１０の第１番目の相電流データをモータ制御部１０２へ転送する（Ｓ７２，Ｓ７４）。
【００５５】
こうして位相パターンデータおよび相電流データがモータ制御部１０２へ転送されると、モータ制御部１０２は、次のＤＭＡ転送サイクルで制御データが転送されてくるまで、転送されたこれらのデータに従ってステップモータ１００の制御を行なう。
【００５６】
また、第２タイマー部４０により起動された印刷制御手段１２０は、印刷データテーブル１１２の第１番目の印刷データを印刷ヘッド制御部１０６へ転送する（Ｓ７６，Ｓ７８）。このデータ転送が完了すると、リンク先ＤＭＡである第２タイマー制御手段１２２が起動され（Ｓ８０）、吐出タイミングテーブル１２４からタイマー部１２６へ吐出タイミングデータが転送される（Ｓ８２，Ｓ８４）。そして、第３タイマー部１２６がタイムアップすると、印刷制御手段１２０へタイムアップ信号が出力される（Ｓ８６）。これにより、印刷制御手段１２０が再び起動され、印刷データテーブル１１２の次の印刷データが印刷ヘッド制御部１０６へ転送される。このような印刷制御手段１２０による印刷データの転送が６回行なわれると、１画素分の印刷データの転送が完了する。こうして、各画素について、印刷データで指定された区間でインクが吐出され、それに応じた濃度での印刷が行なわれる。
【００５７】
以上説明したように、本実施例では、第１タイミングデータテーブル４２に記憶されたタイミングデータで指定される位相切り替えタイミングで、位相パターンデータおよび相電流データがモータ制御部１０２に転送され、また、各位相切替タイミングに同期して印刷制御手段１２０が区間Ｔ１〜Ｔ６毎に印刷データを印刷ヘッド制御部へ転送することで、各画素について指定された濃度での印刷が行なわれる。したがって、本実施例によれば、ＣＰＵ１２が、ステップモータ１００の駆動制御パターンに応じたタイミングデータ、位相パターンデータおよび相電流データをテーブル４２，１０８，１１０に設定しておくと共に、各画素の印刷データ（画素濃度に応じた各区間Ｔ１〜Ｔ６でのインク吐出の有無を表すデータ）を印刷データテーブル１１２に予め設定したうえで、第１タイマー制御手段５０に印刷開始信号を送信すると、その後はＣＰＵ１２が介在することなく印刷動作が実現される。すなわち、本実施例によれば、ステップモータ１００の駆動制御および印刷ヘッドの印刷制御という、互いに同期を取りながら独立に行なうべき２つの処理を、ＣＰＵ１２に負荷をかけることなく、かつ、正確に行なうことができる。
【００５８】
なお、上記第２実施例において、第２タイミングデータテーブル４４に記憶されたタイミングデータは、位相切替タイミングが到来してから印刷制御手段１２０が起動されるまでの時間遅れを指定することになる。したがって、例えば、キャリッジの駆動方向によって印刷位置がずれる場合に、その印刷位置の調整（いわゆるＬＲずれ調整）を、上記タイミングデータの値によって行なうことができる。
【００５９】
また、上記第２実施例では、プリンタが単一の印刷ヘッドを有する単色プリンタであるものとして説明したが、本発明は複数の印刷ヘッドを有するカラープリンタの場合にも適用可能である。すなわち、上記第１実施例に関して述べたように、ＤＭＡによって制御データを転送する制御部の個数は３つ以上に増やすことが可能であるから、各印刷ヘッドの制御部に対応して第２ＤＭＡ処理部５６と同様のＤＭＡ処理部を設けることで、印刷ヘッド毎の制御を行なうことができるのである。
【００６０】
（第３実施例）
次に、本発明の第３実施例について説明する。本実施例の構成は、上記第１実施例の構成（図２）において、第１ＤＭＡ処理部５４により、第２ＤＭＡ処理部５６を構成するＤＭＡ手段の動作（すなわちＤＭＡの制御レジスタの内容）を制御実行中に動的に変更できるようにしたものである。
【００６１】
図７は、本実施例の構成を処理の流れと共に示す機能ブロック図である。同図に示すように、本実施例では、第１ＤＭＡ処理部５４はＤＭＡ手段として転送回数制御手段２００を備え、これに対応して、第１制御データテーブル４６は、転送回数データテーブル２０２を備えている。転送回数データテーブル２０２には、第２ＤＭＡ処理部５６のＤＭＡ手段５６−１のデータ転送回数を指定するための転送回数データが記憶されており、転送回数制御手段２００が起動されると、転送回数レジスタテーブル２０２からＤＭＡ手段５６−１の転送回数レジスタＲ３へ転送回数データが転送される。したがって、第２ＤＭＡ処理部５６において第１ＤＭＡ手段５６−１が起動されると、上記のように転送回数テーブル２０２から転送回数レジスタＲ３へ転送された転送回数データに応じたバイト数のデータ転送が実行される。
【００６２】
このように、本実施例では、第１ＤＭＡ処理部５４から第２ＤＭＡ処理部５６のＤＭＡ手段が転送するデータ数を変更できる。このため、例えば、本実施例がプリンタ制御に適用された場合に、第１ＤＭＡ処理部５４がホストコンピュータからの受信データを受信バッファに格納する処理を行い、第２ＤＭＡ処理部５６がデータ受信のタイミングで所定数のパルスを出力ポートへ出力する処理を行なう場合に、第１ＤＭＡ処理部５４のデータ受信量に応じて第２ＤＭＡ処理部５６による出力パルス数を変更させたり、あるいは、パルス出力を出力を禁止するというように、第２ＤＭＡ処理部５６の処理内容を第１ＤＭＡ処理部５４側から動的に変更することが可能となる。
【００６３】
なお、上記第３実施例では、第２ＤＭＡ処理部５６の１つのＤＭＡ手段５６−１のＤＭＡ動作を変更するものとしたが、転送回数制御手段２００を複数設けて、第２ＤＭＡ処理部５６の複数のＤＭＡ手段のＤＭＡ動作を変更するようにしてもよい。また、ＤＭＡ動作の変更対象は、転送回数に限らず、転送元アドレス、転送先アドレス、転送方法、リンク先ＤＭＡについても、対応する制御レジスタにデータを書き込むことでその内容を変更することができる。例えば、ＤＭＡ手段５６−１については転送回数を変更し、ＤＭＡ手段５６−２については転送元アドレスを変更するといったことも可能である。
【００６４】
また、上記第３実施例では、第１ＤＭＡ処理部５４側から第２ＤＭＡ処理部５６のＤＭＡ転送処理の内容を変更するものとしたが、第２ＤＭＡ処理部５６側から第１ＤＭＡ処理部５４のＤＭＡ転送処理の内容を変更することもできるし、また、第２ＤＭＡ処理部５６が更に他のＤＭＡ処理部を起動させる構成として、第２ＤＭＡ処理部５６から当該他のＤＭＡ制御部のＤＭＡ転送処理の内容を変更することもできる。
【００６５】
（第４実施例）
次に、本発明の第４の実施例について説明する。図８は、本実施例の構成を処理の流れと共に示す機能ブロック図である。本実施例は、本発明をインクジェット式プリンタ制御に適用したものであり、第１ＤＭＡ処理部５４は上記第２実施例（図４）と同様にキャリッジを駆動するためのステップモータ１００の制御を行なう。一方、第２ＤＭＡ処理部５６は、インク検出センサ３００によるインク検出データをメモリにＤＭＡ転送するインクデータ転送手段３０２を備える。インク検出センサ３００は、プリンタへのインクタンクの装着の有無およびインクタンク内のインクの有無を検出するものであり、その出力信号はＡＤ変換器３０３によってＡＤ変換され、インク検出データとして検出データレジスタ３０４に格納される。第２ＤＭＡ処理部５６のインクデータ転送手段３０２は、レジスタ３０４に格納されたインク検出データをインク検出データバッファ３０６へ転送する。エラー処理制御部３０８は、インク検出データバッファ３０６に転送され格納されたインク検出データに基づいて、インクタンクの未装着またはインクタンクのインク切れを検知して、所定のエラー処理を実行する。
【００６６】
図９は、本実施例において制御されるインクジェット式プリンタの概略構成を表す平面図であり、インク検出センサ３００の配置を示している。同図において、プリンタのキャリッジ３１０はガイド軸３１４によってガイドされており、ステップモータ１００によりガイド軸３１４に沿って図中左右に駆動される。そして、キャリッジ３１０に設けられた印刷ヘッド３１２は、用紙搬送部３１６で搬送される記録用紙に印刷を行なう。
【００６７】
プリンタにはインクタンク３１８および３２０が着脱可能に設けられている。インクタンク３１８は、カラーインクを貯溜したカラーインクカートリッジであり、また、インクタンク３２０は、黒インクを貯溜した黒インクカートリッジである。インクタンク３１８，３２０が装着されると、不図示のインクチューブを介して、カラーおよび黒の夫々のインクが印刷ヘッド３１２へ供給される。
【００６８】
インクタンク３１８のキャリッジ移動空間３２２側の面には、２個の検出プリズム３２４，３２６がキャリッジ３１０の移動方向に離間して設けられている。同様に、インクタンク３２０のキャリッジ移動空間３２２側の面には２個の検出プリズム３２８，３３０がキャリッジ３１０の移動方向に離間して設けられている。一方、上記したインク検出センサ３００は、キャリッジ３１０のインクタンク３１８，３２０側の面に取り付けられており、キャリッジ３１０が図中左右に駆動された場合に、検出プリズム３２４，３２６，３２８，３３０の正面をこの順にまたはこれとは逆順に通過するようになっている。インク検出センサ３００は発光部と受光部とを備えており、各検出プリズム３２４〜３３０からの反射光の有無に基づいて、インクタンク３１８，３２０内のインクの有無やインクタンク装着の有無等を検出する。
【００６９】
上記検出プリズム３２４〜３３０のうち、検出プリズム３２４，３２８は、インクタンク３１８，３２０内のインクの有無を検出するためのものである。これらの検出プリズム３２４，３２８は、インクタンク３１８，３２０に貯溜されたインクの量が所定量以上の場合にはインク内に浸かってインク検出センサ３００からの入射光を反射せず、インクの量が所定量を下回るとインクから露出して入射光を反射するように構成されている。したがって、インク検出センサ３００は、検出プリズム３２４，３２８からの反射光が受光されたかどうかに基づいて、インクタンク３１８，３２０内のインクの有無を検出できるのである。
【００７０】
一方、検出プリズム３２６，３３０は、インクタンク３１８，３２０内のインク量にかかわらずインクから露出するように配置されており、常にインク検出センサ３００からの入射光を反射する。したがって、インク検出センサ３００は、検出プリズム３２６，３３０からの反射光が受光されたかどうかに基づいて、インクタンク３１８，３２０の装着の有無を検出することができる。
【００７１】
図１０は、インク検出センサ３００の出力電圧信号の一例を、キャリッジ３１０と検出プリズム３２４〜３３０との位置関係と共に示す。なお、同図では、インク検出センサ３００の受光部が光を検出した場合に出力電圧が低下するものとしている。インクタンク３１８，３２０が共に装着され、かつ、何れのインクタンクにもインクが有る場合には、同図に実線で示すように、検出プリズム３２４，３２８に対応する信号は検出されず、検出プリズム３２６，３３０に対応する信号Ａ，Ｂが出力される。一方、インクタンク３１８，３２０のインクが無くなると、同図に破線で示すように、検出プリズム３２４，３２８に対応する信号Ｃ，Ｄが出力されるようになる。
【００７２】
図１０の信号波形からわかるように、検出プリズム３２４〜３３０に対応した信号が出力されるのは、全期間のうち極く一部の区間である。このため、インク検出データバッファ３０６のメモリ容量を抑えるべく、検出プリズム３２４〜３３０に対応した信号が出力される前後の区間（図１０に示す区間Ｉ〜IV）の信号のみをインク検出データとしてインク検出データバッファ３０６へ格納することが望ましい。一方、このような区間Ｉ〜IVはキャリッジ３１０の移動位置に対応して定まるものであるから、区間Ｉ〜IVの信号のみを採取するには、キャリッジ３１０の移動位置に基づいて、インク検出データバッファ３０６へのデータ転送を行なうタイミングを定めることが必要である。
【００７３】
そこで、本実施例では、図８に示す如く、上記第３実施例の場合と同様にして、キャリッジ３１０を駆動するステップモータ１００を制御する第１ＤＭＡ処理部５４に転送回数制御手段２００を設け、この転送制御手段２００により転送回数データテーブル２０２からインクデータ転送手段３０２の転送回数レジスタＲ３へのデータ転送を行なうことで、インクデータ転送手段３０２によるインク検出データの転送動作を制御する。
【００７４】
図１１は、本実施例における転送回数データテーブル２０２のデータの内容を、キャリッジ３００の位置およびステップモータ１００の位相切替タイミングと対応させて示す。同図に示すように、転送回数テーブル２０２には、ステップモータ１００の各位相切替タイミングに対応して、インク検出データの転送の要否（１：転送要、０：転送不要）を示す転送制御データが格納されており、上記した区間Ｉ〜IVに対応する範囲の値が「１」となっている。
【００７５】
上記第２実施例と同様に、第１ＤＭＡ処理部５４は位相切替タイミング毎に起動される。したがって、転送回数テーブル２０２に記憶された転送制御データも位相切替タイミング毎にインクデータ転送手段３０２の転送回数レジスタＲ３へ転送されることになる。そして、転送回数レジスタＲ３へ転送された転送制御データの値が「１」の場合は、データ転送回数も「１」となり、インクデータ転送手段３０２はレジスタ３０４に格納された１バイト分のインク検出データをインク検出データデータバッファ３０６へ転送する。一方、転送回数レジスタＲ３へ転送された転送制御データの値が「０」の場合は、データ転送回数が「０」となり、インクデータ転送手段３０２によるデータ転送は行なわれない。なお、ここでは１つのセンサ出力データが１バイトで表されるものとしたが、例えば、２バイトで表されるのであれば、転送要の場合の値を「２」とすればよい。
【００７６】
このように、本実施例では、第１ＤＭＡ処理部５４が制御するキャリッジ３１０の位置に応じて、第２ＤＭＡ処理部５６のインクデータ転送手段３０２のデータ転送バイト数（より具体的にはデータ転送実行の有無）を制御することで、必要な区間Ｉ〜IVのセンサ出力データのみをインク検出データバッファ３０６へ転送することが可能となっている。したがって、本実施例によれば、インク検出データバッファ３０６のメモリ容量を大幅に低減できると共に、エラー処理制御部３０８はインク検出データに基づくインク切れ等の判別処理を効率的に行なえるようになる。
【００７７】
（第５実施例）
次に、本発明の第５実施例について説明する。図１２は、本実施例の構成を処理の流れと共に示す機能ブロック図である。本実施例では、第１ＤＭＡ処理部５４はプリンタがホストコンピュータから受信したデータを、第１制御部４１８が備える受信バッファ４２０に格納する。また、第２ＤＭＡ処理部５６は、受信バッファに格納された受信データの中の制御コマンドおよび印刷データを夫々第２制御部４２２が備えるコマンドバッファ４２４およびイメージバッファ４２６に、夫々格納する。第１制御部４１８は、受信バッファ４２０に格納された受信データに基づいて所定の制御処理を行い、第２制御部４２２は、コマンドバッファ４２４およびイメージバッファ４２６に夫々格納されたデータに基づいて所定の制御処理を行なう。
【００７８】
図１３は、本実施例においてホストコンピュータからプリンタへ送信されるデータ列の一例を示す。同図に示すデータ列において、例えば、値「００」は、その直後の１バイトが制御コマンドであることを表し、値「０１」は、その直後のバイトが印刷データであることを表している。したがって、図１３に示す例では、値「００」に続くｘ１，ｘ２，ｘ３等が制御コマンドと解釈され、値「０１」に続くｄ１，ｄ２等が印刷データと解釈される。本実施例では、受信データの値「００」に続く制御コマンドをコマンドバッファ４２４に転送し、また、値「０１」に続く印刷データをイメージバッファ４２６に転送する。
【００７９】
このような動作を実現するため、第１ＤＭＡ処理部５４は、ＤＭＡ手段として、受信データ転送手段４００、テーブル転送手段４０２、および、リンク先転送手段４０４を備えている。また、第２ＤＭＡ処理部５６は、ＤＭＡ手段として切替制御手段４０６、コマンド転送手段４０８、および、データ転送手段４１０を備えており、切替制御手段４０６のリンク先ＤＭＡとしてコマンド転送手段４０８またはデータ転送手段４１０の何れか一方が設定されるようになっている。なお、プリンタがホストコンピュータから受信したデータは受信レジスタ４１２に格納されるものとする。
【００８０】
第１ＤＭＡ処理部５４の受信データ転送手段４００は、分岐制御手段５２によって起動されると、受信レジスタ４１２に格納された受信データを受信バッファ４２０へ転送する。また、テーブル転送手段４０２は、受信バッファ４２０に格納された受信データをテーブルメモリ４１６へ転送する。テーブルメモリ４１６は、転送されてきたデータに対応した値を出力するものであり、図１４に示すように、制御コマンドを示す値「００」が転送されてきた場合は、第２ＤＭＡ処理部５６のコマンド転送手段４０８のＤＭＡチャンネル番号ＣＨ＿Ａを、また、データを示す値「０１」が転送されてきた場合は、第２ＤＭＡ処理部５６のデータ転送手段４１０のＤＭＡチャンネル番号ＣＨ＿Ｂを、所定の出力レジスタ４１６ａへ出力する。そして、リンク先転送手段４０４は、出力レジスタ４１６ａに出力されたデータを、第２ＤＭＡ処理部５６の切替制御手段４０６のリンク先レジスタＲ５へ転送する。したがって、第２ＤＭＡ処理部５６において切替制御手段４０６のリンク先は、受信データの値「００」または「０１」に応じてコマンド転送手段４０８またはデータ転送手段４１０の何れかに設定されることになる。
【００８１】
コマンド転送手段４０８は受信バッファ４２０のデータをコマンドバッファ４２４へ転送し、また、データ転送手段４１０は受信バッファ４２０のデータをイメージテーブル４２０へ転送する。したがって、コマンドバッファ４２４には、受信データのうち制御コマンドのみが、また、イメージテーブル４２０には受信データのうち印刷データのみが格納されることとなる。
【００８２】
なお、上記のように本実施例では受信バッファ４２０からのデータ転送を、テーブル転送手段４０２、コマンド転送手段４０８、およびデータ転送手段４１０が行なうこととなるが、何れかの転送手段により受信バッファ４２０から１バイトのデータ転送が行なわれると、これら３つの転送手段の転送元アドレスがインクリメントされるようになっている。このため、テーブル転送手段４０２が受信バッファからデータの種類を示す「００」または「０１」のデータを転送すると、コマンド転送手段４０８またはデータ転送手段４１０は、「００」または「０１」に続く制御コマンドまたは印刷データを転送し、その次に、テーブル転送手段４０２は再び「００」または「０１」のデータを転送する。このように、テーブル転送手段４０２は必ずデータ種類を示す「００」または「０１」を受信バッファ４２０からテーブルメモリ４１６へ転送することになるので、「００」または「０１」以外のデータがテーブルメモリ４１６へ転送されることはない。
【００８３】
次に、本実施例における受信バッファ４２０からコマンドバッファ４２４またはイメージバッファ４２６へのデータ転送処理の内容を、図１３に例示するデータ列がバッファ４１４に格納されている場合について具体的に説明する。なお、テーブル転送手段４０２の転送元アドレスが受信バッファ４２０の先頭アドレスに設定されている。
【００８４】
先ず、テーブル転送手段４０２は受信データの先頭データ「００」をテーブルメモリ４１６へ転送する。これに応じて、テーブルメモリ４１６は「００」に対応する値ＣＨ＿Ａを出力レジスタ４１６ａに出力する。次に、リンク先転送手段４０４が出力レジスタ４１６ａに出力された値ＣＨ＿Ａを第２ＤＭＡ処理部５６の切替制御手段４０６のリンク先レジスタＲ５へ転送する。これにより、切替制御手段４０６のリンク先ＤＭＡはコマンド転送手段４０８となる。すなわち、切替制御手段４０６の次にコマンド転送手段４０８が起動されることにより、２番目の受信データ（制御コマンド）ｘ１がコマンドバッファ４２４へ転送される。以下、同様に、受信データの第３番目、第５番目のデータ「００」に対応して、第４番目および第６番目のデータＸ２，Ｘ３がコマンドバッファ４２４へ転送される。また、第７番目，第９番目のデータ「０１」については、メモリテーブル４１６から値ＣＨ＿Ｂが出力されて、切替制御手段４０６のリンク先レジスタＲ５へ転送されることで、データ転送手段４１０が起動される。したがって、第８番目、第１０番目のデータ（印刷データ）ｄ１、ｄ２はデータ転送手段４１０によりイメージバッファ４２６へ転送される。
【００８５】
このように、本実施例では、第１ＤＭＡ処理部５４が受信したデータが制御コマンドか印刷データかに応じて、第２ＤＭＡ処理部５６によるデータ転送先をコマンドバッファ４２４またはイメージバッファ４２６の何れかに切り替えることができる。
【００８６】
なお、上記の説明では、受信データが制御コマンドおよび印刷データの２種類であるものとして説明したが、受信データの種類が３種類以上ある場合にも、第２ＤＭＡ処理部５６に各種類に対応したＤＭＡ手段を設け、データの種類に応じて切替制御手段のリンク先ＤＭＡを設定することで、データの種類毎のバッファにデータを転送することができる。
【００８７】
【発明の効果】
以上説明したように、本発明によれば、第１の制御部へ制御データを転送する第１のＤＭＡ処理部から、第２の制御部へ制御データを転送する第２のＤＭＡ処理部を起動できるので、第１および第２の制御部に対して、互いに同期を取りながらも、独立に制御データを転送することができる。したがって、本発明によれば、ダイレクトメモリアクセスを用いて、より複雑な制御を行なうことが可能となる。
【図面の簡単な説明】
【図１】本発明が適用可能な制御装置の概略構成を示すブロック図である。
【図２】本発明の第１実施例の構成を処理の流れと共に示す機能ブロック図である。
【図３】ＤＭＡの構成および基本的な動作を示す図である。
【図４】本発明の第２実施例の構成を処理の流れと共に示す機能ブロック図である。
【図５】ステップモータの駆動制御パターンの典型例を示す図であり、（ａ）はステップモータの速度パターンを、（ｂ）はステップモータへ供給する電流パターンを示す。
【図６】各画素を印刷する際のインク吐出区間を示す図である。
【図７】本発明の第３実施例の構成を処理の流れと共に示す機能ブロック図である。
【図８】本発明の第４実施例の構成を処理の流れと共に示す機能ブロック図である。
【図９】本実施例において制御されるインクジェット式プリンタの概略構成を表す平面図であり、インク検出センサの配置を示す。
【図１０】インク検出センサの出力電圧信号の一例を、キャリッジと検出プリズムとの位置関係と共に示す図である。
【図１１】本実施例における転送回数データテーブルのデータの内容を、キャリッジの位置およびステップモータの位相切替タイミングに対応させて示す図である。
【図１２】本発明の第５実施例の構成を処理の流れと共に示す機能ブロック図である。
【図１３】本実施例においてホストコンピュータからプリンタへ送信されるデータ列の一例を示す図である。
【図１４】本実施例におけるテーブルメモリの構成および動作を説明するための図である。
【符号の説明】
１０  制御装置
１２  ＣＰＵ
１４  メモリ
１６  ＤＭＡ処理部
１８  タイマー部
２０  制御部
３４  第１制御部
３６  第２制御部
３８  第１タイマー部
４０  第２タイマー部
４２  第１タイミングテーブル
４４  第２タイミングテーブル
４６  第１制御データテーブル
４８  第２制御データテーブル
５０  第１タイマー制御手段
５２  分岐制御手段
５４  第１ＤＭＡ処理部
５４−１〜５４−ｎ  ＤＭＡ手段
５６  第２ＤＭＡ処理部
５６−１〜５６−ｍ  ＤＭＡ手段
１００  ステップモータ
１０２  モータ駆動制御部
１０４  印刷ヘッド
１０６  印刷ヘッド制御部
１１６  位相パターン制御手段
１１８  相電流制御手段
１２０  印刷制御手段
１２２  第２タイマー制御手段
１２４  第３タイマー部
２００  転送回数制御手段
３００  インク検出センサ
３０２  インクデータ転送手段
３０６  インク検出データバッファ
３０８  エラー処理制御部
３１０  キャリッジ
３１２  印刷ヘッド
４００  受信データ転送手段
４０２  テーブル転送手段
４０４  リンク先転送手段
４０６  切替制御手段
４０８  コマンド転送手段
４１０  データ転送手段
４１８  第１制御部
４２０  受信バッファ
４２２  第２制御部
４２４  コマンドバッファ
４２６  イメージバッファ
【図１】
0004144240.tif 000002
【図２】
0004144240.tif 000003
【図３】
0004144240.tif 000004
【図４】
0004144240.tif 000005
【図５】
0004144240.tif 000006
【図６】
0004144240.tif 000007
【図７】
0004144240.tif 000008
【図８】
0004144240.tif 000009
【図９】
0004144240.tif 000010
【図１０】
0004144240.tif 000011
【図１１】
0004144240.tif 000012
【図１２】
0004144240.tif 000013
【図１３】
0004144240.tif 000014
【図１４】
0004144240.tif 000015