(57)【特許請求の範囲】
【請求項１】
駆動パルスにより稼動するアクチュエータを有する周辺機器をホストコンピュータ側から制御するプログラムであって、
前記周辺機器は複数の前記アクチュエータを有し、前記複数のアクチュエータの各々のアクチュエータは固有のアドレスを備えており、
当該プログラムは、
前記駆動パルスに対応する駆動データを生成する処理と、
前記駆動データを前記周辺機器宛てに発信する処理とを実行する命令を有し、
前記生成する処理は、前記各々のアクチュエータに対する前記駆動データを生成することと、
前記駆動データと共に前記各々のアクチュエータで前記各々のアクチュエータの前記駆動データを実行するタイミングを示すタイミングデータを生成することとを含み、前記駆動データは前記駆動パルスと１対１に対応し、前記タイミングデータに基づき即座に前記駆動パルスに変換されるビットデータを含み、
前記発信する処理は、前記駆動データと前記タイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、前記各々のアクチュエータのアドレス宛てに発信することを含む、プログラム。
【請求項２】
請求項１において、前記各々のアクチュエータはパルスモータまたは用紙にドットを形成する手段であるプログラム。
【請求項３】
請求項１または２において、前記周辺機器は用紙に印刷する手段を有し、前記各々のアクチュエータは、前記印刷する手段のパルスモータまたは用紙にドットを形成する手段であるプログラム。
【請求項４】
周辺機器に搭載されたアクチュエータを駆動する駆動パルスに対応する駆動データを生成する手段と、
前記駆動データを前記周辺機器宛てに発信する手段とを有する情報処理端末であって、
前記周辺機器は複数の前記アクチュエータを有し、前記複数のアクチュエータの各々のアクチュエータは固有のアドレスを備えており、
前記生成する手段は、前記各々のアクチュエータに対する前記駆動データと、前記駆動データと共に前記各々のアクチュエータで前記各々のアクチュエータの前記駆動データを実行するタイミングを示すタイミングデータとを生成し、前記駆動データは前記駆動パルスと１対１に対応し、前記タイミングデータに基づき即座に前記駆動パルスに変換されるビットデータを含み、
前記発信する手段は、前記駆動データと前記タイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、前記各々のアクチュエータのアドレス宛てに発信することを含む、情報処理端末。
【請求項５】
周辺機器に搭載されたアクチュエータを駆動する駆動パルスに対応する駆動データを生成するステップと、
その駆動データを前記周辺機器宛に発信するステップとを有する周辺機器を制御する方法であって、
前記周辺機器は複数の前記アクチュエータを有し、前記複数のアクチュエータの各々は固有のアドレスを備えており、
前記生成するステップは、前記各々のアクチュエータに対する前記駆動データを生成することと、
前記駆動データと共に前記各々のアクチュエータで前記各々のアクチュエータの前記駆動データを実行するタイミングを示すタイミングデータを生成することとを含み、前記駆動データは前記駆動パルスと１対１に対応し、前記タイミングデータに基づき即座に前記駆動パルスに変換されるビットデータを含み、
前記発信するステップは、前記駆動データと前記タイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、前記各々のアクチュエータのアドレス宛てに発信することを含む、方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストに接続されて使用される周辺機器を制御する技術に関するものである。
【０００２】
【従来の技術】
ホストに接続されて使用されるプリンタやスキャナなどの周辺機器においては、駆動パルスにより稼動するパルスモータなどの各種のアクチュエータと、駆動パルスを生成する駆動回路とが搭載されている。プリンタでは、印刷時にホストから伝送されたコマンドを解釈し、その結果に基づいて駆動回路により駆動パルスを生成するようになっている。
【０００３】
【発明が解決しようとする課題】
ホストコンピュータにおいてデータ処理を行うために、データを入力したり、データ処理されたデータを出力したりするために、様々な周辺機器がホストコンピュータと接続され、ホストコンピュータの制御の下で動作する。周辺機器、特に、メカニカルな動きを伴う周辺機器は、そのメカニカルな動きを実現するアクチュエータを備えており、そのアクチュエータを駆動するためにパルス信号を生成している。たとえば、データを印刷用紙に出力するプリンタは、紙送りのためのパルスモータ（ステッピングモータ）、印刷ヘッドを走査方向に動かすパルスモータなどのアクチュエータを備えており、さらに、インクジェットタイプであればノズルからインク滴を吐出するためのサーマルタイプあるいはピエゾタイプのアクチュエータを備えている。
【０００４】
このため、ホストコンピュータにインストールされたドライバプログラムから送信されるコマンドを周辺機器のコントロールボードに搭載されたＣＰＵで解釈し、そのコマンドに指示された動作を実現するためのパルス信号を生成し、それによって各アクチュエータの駆動回路を制御してアクチュエータを駆動するための駆動パルスを生成している。
【０００５】
プリンタから出力される画像が、マルチカラー化し、また、高解像度化するにつれて、さらに高速に、そして高精度でモータやインクジェット用のアクチュエータを動作させることが要求されている。また、１ページの印刷を高速で行うために印刷が不要なところへは印刷ヘッドを動かさないなどの複雑な制御が要求されるようになっており、アクチュエータを制御するコマンドも複雑になっている。さらに、単票用紙と連続用紙を同時に処理したり、チェックの読取機能なども備えたＰＯＳプリンタや、プリンタとスキャナの機能を備えたスキャナプリンタなどのように、多用途で複雑な動作を行う周辺機器においては、アクチュエータも多く、制御はさらに複雑になる。また、ホストコンピュータであるパーソナルコンピュータの機能は日々向上しており、ホストコンピュータ上で稼動するアプリケーションプログラムは高機能化しており、周辺機器の仕様に対する要求も高くなりつつある。したがって、周辺機器の能力や機能を向上する必要があり、処理能力の高いＣＰＵを搭載することが要求されている。
【０００６】
しかしながら、周辺機器用の高性能なプロセッサを開発することは開発期間とコストが要求されることであり、さらに、そのプロセッサに適したファームウェアを開発するには時間とコストがかかる。また、パーソナルコンピュータのような汎用的な機器と比較すると、周辺機器は印刷などの所定の目的に特化した装置であり、販売台数もそれほど多くなく、また、その装置に適した制御システムを開発する必要性があるという条件もある。
【０００７】
したがって、要求された仕様に適した周辺機器を短期間で開発しようとすると、膨大な労力と費用が必要となり、周辺機器の製造コストは非常に高いものになってしまう。このため、周辺機器の機能の進歩あるいは開発速度が、アプリケーションプログラムの開発速度に追いつかず、また、高機能な周辺機器が販売されたとしても、ユーザが簡単に買い替えるということも難しい。したがって、パーソナルコンピュータなどで稼動するアプリケーションの機能が、パーソナルコンピュータをホストマシンとして接続された周辺機器に制限される事態が発生する可能性がある。
【０００８】
そこで、本発明においては、ホストコンピュータやアプリケーションプログラムの進歩に追従し、機能の向上を安価に実現することができる周辺機器およびその制御方法を提供することを目的としている。また、アプリケーションプログラムから要求される様々な仕様にフレキシブルに対応することができる周辺機器およびその制御方法を提供することを目的としている。
【０００９】
【課題を解決するための手段】
本発明の一態様は、駆動パルスにより稼動するアクチュエータを有する周辺機器をホストコンピュータ側から制御するプログラムである。周辺機器は複数のアクチュエータを有し、複数のアクチュエータの各々のアクチュエータは固有のアドレスを備えている。さらに、当該プログラムは、駆動パルスに対応する駆動データを生成する処理と、駆動データを周辺機器宛てに発信する処理とを実行する命令を有する。生成する処理は、各々のアクチュエータに対する駆動データを生成することと、駆動データと共に各々のアクチュエータで各々のアクチュエータの駆動データを実行するタイミングを示すタイミングデータを生成することとを含み、駆動データは駆動パルスと１対１に対応し、タイミングデータに基づき即座に駆動パルスに変換されるビットデータを含む。また、発信する処理は、駆動データとタイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、各々のアクチュエータのアドレス宛てに発信することを含む。本発明の他の態様の１つは、周辺機器に搭載されたアクチュエータを駆動する駆動パルスに対応する駆動データを生成する手段と、駆動データを前記周辺機器宛てに発信する手段とを有する情報処理端末である。生成する手段は、各々のアクチュエータに対する駆動データと、駆動データと共に各々のアクチュエータで各々のアクチュエータの駆動データを実行するタイミングを示すタイミングデータとを生成し、駆動データは駆動パルスと１対１に対応し、タイミングデータに基づき即座に駆動パルスに変換されるビットデータを含む。また、発信する手段は、駆動データとタイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、各々のアクチュエータのアドレス宛てに発信することを含む。本発明のさらに異なる態様の１つは、周辺機器に搭載されたアクチュエータを駆動する駆動パルスに対応する駆動データを生成するステップと、その駆動データを周辺機器宛に発信するステップとを有する周辺機器を制御する方法である。生成するステップは、各々のアクチュエータに対する駆動データを生成することと、駆動データと共に各々のアクチュエータで各々のアクチュエータの駆動データを実行するタイミングを示すタイミングデータを生成することとを含み、駆動データは駆動パルスと１対１に対応し、タイミングデータに基づき即座に駆動パルスに変換されるビットデータを含み、発信するステップは、駆動データとタイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、各々のアクチュエータのアドレス宛てに発信することを含む。
【００１０】
本発明のプログラムにより生成される駆動データは、駆動パルスと１対１に対応するビットデータである。そして、本発明の周辺機器を制御する方法では、駆動パルスを発生させるところまでの処理を全てホスト側で行い、周辺機器はホスト側から供給される駆動パルスあるいはそれと対応した駆動データにより駆動される。したがって、周辺機器に対しては、コマンドなどの周辺機器側での解釈が必要なデータではなく、実質的には、そのままアクチュエータに供給可能なデータが供給される。このため、周辺機器の側では、アクチュエータの駆動回路により駆動データを駆動パルスに変換してアクチュエータに供給するだけで、それらのアクチュエータを、ホスト側で稼動するアプリケーションプログラムからの指示に従って動かすことができる。
【００１１】
したがって、本発明のプログラム、または周辺機器を制御する方法を採用することにより、周辺機器の側では、コマンドを解釈するためのＣＰＵやファームウェアは不要となり、極めて簡単な構成で、どのような動きであってもホスト側の指示にしたがってアクチュエータを制御できる。すなわち、アクチュエータに複雑な動作をさせるために高速で処理能力の高いＣＰＵを採用し、コマンドの数を増やしたり、その体系を拡張する代わりに、アクチュエータの駆動パルスに対応する駆動データを受信することにより、ホスト側とのインターフェイスを単純にすると共に、コマンド体系や周辺機器に搭載されるＣＰＵなどのプロセッサに周辺機器の機能が限定されるのを防止している。したがって、本発明の周辺機器を制御する方法により、周辺機器のアクチュエータが動作あるいは追従可能な範囲内であれば、いかなる動きもホスト側からの指示により実現することができる。このため、周辺機器のハードウェアや制御システムを変えなくても、ホスト側から供給される駆動データに、アプリケーションプログラムの仕様が反映されていれば、アプリケーションプログラムが意図するように周辺機器を制御することができる。
【００１２】
さらに、本発明のプログラム、または周辺機器を制御する方法においては、従来、周辺機器の制御用のＣＰＵあるいはＡＳＩＣなどが行っていたコマンドを解釈して、各アクチュエータ毎のパルス信号を生成する処理を、ホストとなるパーソナルコンピュータなどの情報処理端末で実行する。したがって、周辺機器の制御用のＣＰＵあるいはＡＳＩＣなどのプロセッサが行っていた処理を、パーソナルコンピュータのＣＰＵにより実行することができる。パーソナルコンピュータに採用されるＣＰＵは、近年、その性能が飛躍的に増大しており、数１００ＭＨｚあるいはそれ以上の処理速度を備えている。そして、さらにその性能は向上しつつある。このため、本発明のプログラム、または周辺機器であれば、周辺機器のアクチュエータを制御するためにコマンドを解釈する処理を、性能が飛躍的に進歩しているホスト側のＣＰＵの能力を用いて行うことが可能となる。したがって、複雑で、高速な処理を周辺機器で実行するために、周辺機器用の高価なプロセッサやファームウェアを開発する必要がなくなる。このため、アプリケーションプログラムの仕様を満たす性能の周辺機器を、ハードウェアは変えずに、必要であればホスト側で動作するプログラムを変更することにより短期間に低コストで実現することができる。
【００１３】
また、コマンドを周辺機器に送信する代わりに、アクチュエータを実質的に直に駆動することができる駆動データを送信することにより、ホストと周辺機器との通信量は増大する可能性がある。しかしながら、ＵＳＢあるいはＩＥＥＥ１３９４などの大量のデータを高速で伝送できる低コストなデバイスが普及しており、アクチュエータの動作速度に対して駆動データの伝送速度が大幅に下回ることはなく、駆動データを伝送することにより周辺機器の処理速度が低下することはほとんどない。逆に、周辺機器側でコマンドを解釈する必要がないので、その処理時間を短縮することにより、処理速度を向上できる。
【００１４】
さらに、ホスト側にインストールされるドライバソフトウェアから周辺機器に制御データを送るために所定のフォーマットにしたがったコマンド体系が開発されてきたが、本発明のプログラム、または周辺装置を制御する方法であれば、コマンドに変換する必要がなく、アプリケーションからの指示を最終的には駆動パルスのデータ形式で出力させれば良い。したがって、アプリケーションからの指示をコマンドに変換し、コマンドを駆動信号に変換するといった２重の手間を省略することも可能となり、ホスト側での処理も含めていっそう高速処理が可能な周辺機器を提供できる。
【００１５】
用紙に印刷する手段を有する印刷装置などの周辺機器の多くは、印刷する手段のパルスモータ、用紙にドットを形成する手段などの複数のアクチュエータを備えている。このような周辺機器に対しても、各々のアクチュエータ宛てに駆動データを発信することにより、ホスト側の情報処理端末から各アクチュエータを個別に制御することが可能であり、複数のアクチュエータを協調して動作させることができる。
【００１６】
これら複数のアクチュエータと情報処理端末とを接続する伝送経路、たとえば、ＵＳＢなどの伝送速度がアクチュエータを協調して制御するタイミングに対しネックとなる場合であっても、さらに、各々のアクチュエータで駆動データを実行するタイミングを示すタイミングデータを駆動データと組み合わせて発信することで、伝送経路の速度に左右されずに、複数のアクチュエータを同期させて高速で動かすことができる。
【００１７】
【発明の実施の形態】
以下に図面を参照して本発明をさらに詳しく説明する。図１に本発明の周辺機器を制御する方法を実現するためのシステムの一例を示してある。本例のシステム１は、画像データや文章データを処理するアプリケーション１１がインストールされている情報処理端末としてのパーソナルコンピュータ（以下では、ホスト、ホストコンピュータ）２と、このホスト２の周辺機器として動作し、印刷用紙４に画像や文章などを印刷するプリンタ３とを有している。ホスト２とプリンタ３は、ＵＳＢケーブル、ＳＣＳＩケーブル、ＩＥＥＥ１３９４ケーブルなどの適当なインターフェイス１３および２１を備えており、これらのインターフェイス１３および２１の規格にマッチしたケーブル５により接続されている。
【００１８】
そして、ホスト２からプリンタ３へは、送信先のアドレスを含むヘッダー情報Ｈと、プリンタ３のアクチュエータであるモータやヘッドを動かすデータＡＤと、そのデータＡＤが利用されるタイミングを示すデータＴＤを含むデータパケット５９が送信される。
【００１９】
本例のプリンタ３は、印刷用紙４にインク滴を吐出してドットを形成するインクジェットプリンタであり、アクチュエータとして、インク滴を吐出する複数のノズル２９を備えた印刷ヘッド２２と、この印刷ヘッド２２をシャフト２７に沿って紙幅方向（走査方向）に往復動するためのパルスモータ２３と、走査方向と垂直な紙送り方向に印刷用紙４をフィードするためにローラ２８を駆動するパルスモータ２４を有している。さらに、プリンタ３は、パルスモータ２３および２４を稼動する駆動パルスＰ１〜Ｐ４を出力する駆動回路２５および２６を有している。本例では、パルスモータ２３および２４として、４極のステッピングモータが採用されている。
【００２０】
各駆動回路２５および２６には異なるアドレスが付されており、本例においては、駆動回路２５にはアドレス「Ａｃｒ」が付され、駆動回路２６にはアドレス「Ａｐｆ」が付されているものとする。そして、インターフェイス２１で受信したデータを送信先のアドレスで振り分ける中継部３２を備えており、ホスト２からアドレスを付して送信されたデータがプリンタ３の内部で駆動回路２５と駆動回路２６に分配される。
【００２１】
本例のプリンタ３は、さらに、印刷ヘッド２２のノズル２９からインク滴を吐出する制御を行うインク吐出用の回路３１も備えており、この回路３１にも異なるアドレス「Ａｃｔｌ」が付されている。
【００２２】
図２に各駆動回路２５および２６の概略構成を示してある。各駆動回路２５および２６は、同一の構成であり、ホスト２からの各々の駆動回路２５および２６のアドレス宛てに送られたアクチュエータを駆動するデータＡＤを４ビット単位で保持するレジスタ２５ａおよび２６ａと、レジスタ２５ａおよび２６ａの４ビットのデータを４つの駆動パルスＰ１〜Ｐ４に変換してパルスモータ２３および２４に供給する機能を備えたモータドライバ２５ｂおよび２６ｂを備えている。したがって、駆動回路２５および２６では、レジスタ２５ａおよび２６ａにセットされた４ビットのデータＡＤに対応し、パルスモータ２３および２４の極数に対応した駆動パルスＰ１〜Ｐ４が出力される。すなわち、本例のアクチュエータを駆動するためのデータＡＤに含まれる各々のビットデータ５５は、駆動パルスに１対１に対応している。これにより、モータドライバ２５ｂおよび２６ｂから各々のパルスモータ２３および２４に駆動パルスＰ１〜Ｐ４が出力される。たとえば、駆動回路２５のレジスタ２５ａに「００１０」というシリアルデータＡＤがホスト２から送られてくると、レジスタ２５ａでは、「００１０」がパラレル変換されてセットされ、低レベルの駆動パルスＰ１、低レベルの駆動パルスＰ２、高レベルの駆動パルスＰ３および低レベルの駆動パルスＰ４がモータドライバ２５ｂからモータ２３に出力される。
【００２３】
したがって、図３（ａ）および（ｂ）に示したように、ホスト２からアクチュエータを駆動するデータＡＤ１〜ＡＤ６が順番に送られると、それぞれのデータＡＤ１〜ＡＤ６に対応して時刻ｔ１に駆動パルスＰ１が高レベル、時刻ｔ２に駆動パルスＰ２が高レベル、時刻ｔ３に駆動パルスＰ３が高レベル、時刻ｔ４に駆動パルスＰ４、時刻ｔ５に駆動パルスＰ１が高レベル、時刻ｔ６に駆動パルスＰ２が高レベルとなる。このため、これらの駆動パルスＰ１〜Ｐ４が供給されたモータ２３は１相励磁のモードで回転する。その結果、所望のタイミングで所望の量だけヘッドや印刷用紙を送り、その位置でヘッドからインク滴を出力すると、希望通りの画像を出力できる。
【００２４】
このようなデータＡＤをプリンタ３に送信することになるホスト２は、図１に示すように、オペレーティングシステム（ＯＳ）１２と、画像データ１４や文章データを処理するアプリケーション１１と、このアプリケーション１１から指定された画像や文字などを印刷するプリンタドライバ３５を有している。プリンタドライバ３５は、各パルスモータ２３および２４の駆動パルスＰ１〜Ｐ４に対応するビットデータ（駆動データ）５５を含むデータＡＤと駆動パルスＰ１〜Ｐ４を出力するタイミングを示すデータ（タイミングデータ）ＴＤを生成し、また、印刷ヘッド２２で印刷するビットマップに対応したヘッド出力データφ１を生成する。これらのプリンタドライバ３５により生成されたデータは、ＯＳ１２により管理されるインターフェイス１３からプリンタ３の各々のアクチュエータ、すなわち、パルスモータ２３、パルスモータ２４および印刷ヘッド２２のアドレスを付して出力される。本例では、それらのアドレスとして、駆動回路２５、駆動回路２６およびインク吐出用の回路３１のアドレスが付される。
【００２５】
本例のプリンタドライバ３５は、アプリケーション１１で出力するように指示された画像などをプリンタ３で印刷するために、その画像データをヘッド出力データφ１とコマンドに変換する機能３６と、このヘッド出力データφ１およびコマンドのうち、プリンタ３のパルスモータ２３および２４を稼動するコマンドを駆動パルスＰ１〜Ｐ４に対応したビットデータ５５として生成する生成機能３７と、駆動データ５５やヘッド出力データφ１をレジスタ２５ａおよび２６ａや回路３１のアドレスを付加すると共に、インターフェイス１３に送って発信可能とする機能３８を備えている。
【００２６】
本例の生成機能３７は、変換する機能３６から入力されたデータから、駆動データ５５に変換すべきパルスモータ２３とパルスモータ２４に関連するデータを生成するコマンドを抽出する機能４１と、そのコマンドをデコード（解釈）してパルスモータ２３の駆動パルスＰ１〜Ｐ４に１対１に対応した駆動データ（ビットデータ）５５を生成する第１の機能４２と、パルスモータ２４の駆動パルスＰ１〜Ｐ４に１対１に対応したビットデータ５５を生成する第２の機能４３を備えている。したがって、これら第１および第２の機能４２および４３により、従来、プリンタ側で駆動パルスを生成していたモータ制御回路と同等の機能がソフトウェアによって実現されていることになる。
【００２７】
本例の生成機能３７は、さらに、プリンタ３における駆動回路２５および２６がビットデータ５５にしたがった駆動パルスＰ１〜Ｐ４をモータドライバ２５ｂおよび２６ｂからモータ２３および２４に出力するタイミングを示すタイミングデータＴＤを生成するタイミング解析機能４４を備えている。この機能４４で生成されたタイミングデータＴＤにより駆動回路２５と駆動回路２６を独立に制御することができる。
【００２８】
ホスト２からプリンタ３にアクチュエータを駆動するデータＡＤを送って制御する場合、プリンタ３からデータＡＤを実行した情報をホスト２、すなわち、プリンタドライバ３５が受信して、次のデータＡＤを送ってモータ２３、モータ２４およびヘッド２２を適切なタイミングで制御することが可能である。しかしながら、ホスト２がプリンタ３からその情報を受信する速度がアクチュエータが動作する速度に対してクリティカルパスとなると、プリンタ３の処理速度が低下する要因となる。これに対し、タイミングデータＴＤを付加してデータＡＤを送ることにより、駆動回路２５、駆動回路２６および印刷ヘッド２２ではそれぞれのデータＡＤのタイミングデータＴＤにしたがって第１のデータＡＤの処理を行うことが可能となる。したがって、駆動回路２５、駆動回路２６および印刷ヘッド２２をタイミングデータＴＤにしたがって単独で動作させるだけで、タイミングデータＴＤに基づいて相互に協調した制御を行うことができる。そして、プリンタドライバ３５と交信する必要がないので、ホスト２とプリンタ３との交信速度によりプリンタ３の処理速度が低下することもない。
【００２９】
図４にプリンタドライバ３５により行われる処理をフローチャートで示してある。まず、ステップ６１において、アプリケーション１１から指示された画像や文字を印刷するため、変換する機能３６で変換および出力されたデータがパルスモータ２３および２４を制御するコマンドであれば、ステップ６２で第１の機能４２および第２の機能４３により解釈されて駆動パルスＰ１〜Ｐ４に相当するデータが生成される。生成された駆動パルスＰに相当するデータは、ステップ６３でビットデータの状態で駆動データ５５として出力される。この駆動データ５５を生成するのに前後して、ステップ６４でタイミングデータＴＤが生成される。ステップ６５において、このタイミングデータＴＤと１群のビットデータ５５からなるデータＡＤとが組み合わされ、さらに、駆動されるアクチュエータ、すなわち、モータ２３および２４を駆動する回路２５および２６のアドレスと共にインターフェイス１３からプリンタ３に出力される。一方、印刷ヘッド２２からインク滴を吐出させるためのヘッド出力データφ１もアドレスが付されたデータとして出力される。
【００３０】
プリンタドライバ３５によってホスト２で実行される処理は、上記の各ステップを実行する命令を有するプログラムとして提供することができる。このプログラムはホスト２となるコンピュータで読み取り可能なＣＤ−ＲＯＭなどの記録媒体に記録して提供したり、インターネットなどのコンピュータネットワークを介して配信することが可能である。そして、ホスト２にインストールすることにより上記の従来のプリンタ側の機能をホスト２に実現することができる。
【００３１】
ホスト２から発信されたビットデータ５５からなるデータＡＤを含むデータパケット５９は、プリンタ３で取得されると、ヘッダーＨのアドレスにしたがって駆動回路２５または２６に分配される。
【００３２】
このように、本例のホスト２とプリンタ３とからなるシステム１では、パルスモータ２３および２４の駆動パルスＰ１〜Ｐ４に対応するビットデータ５５を生成してプリンタ３に発信している。すなわち、従来、プリンタで行われていた、コマンドを解釈してパルスモータ２３および２４の駆動パルスＰ１〜Ｐ４を生成する処理をホスト２で駆動するプリンタドライバ３５で行っている。このため、プリンタ３の側でアクチュエータ、本例では、パルスモータ２３および２４のコマンドを解釈する必要がなく、実質的に、ホスト２から送信されたビットデータ５５からなるデータＡＤをパルスモータ２３および２４に供給することによりそれらのパルスモータ２３および２４を動かすことができる。このため、プリンタ３においては、ホスト２からのコマンドを解釈して各々のパルスモータの駆動パルスＰ１〜Ｐ４を生成するハードウェアやファームウェアは不要となり、非常にシンプルな構成になる。
【００３３】
また、ホスト２のプリンタドライバ３５により、各パルスモータ２３および２４をステップ、あるいはクロック単位で、そして、駆動パルスＰ１〜Ｐ４に対応した極めて普遍的なデータで各パルスモータ２３および２４を制御できる。したがって、各パルスモータ２３および２４で複雑な動きを実現するためにプリンタ側で処理能力の高いＣＰＵを採用したり、プリンタドライバから供給されるコマンドの数を増やしたり、コマンド体系を拡張することなく、ホスト２からパルスモータ２３および２４を高速にクロック単位で、そしてフレキシブルに制御することができる。このことは、さらに、プリンタ３の機能がそのコントロールボードに搭載されているコマンド体系やＣＰＵなどのプロセッサの能力に限定されずに、各パルスモータ２３および２４が動作可能なことを意味する。すなわち、ホスト側で動作するソフトウェアにより、どのようにでも制御することが可能であり、適当なドライバソフトウェアを開発するだけで、プリンタそのものを変更せずにアプリケーションの仕様を満足するような処理をプリンタで行うことができる。
【００３４】
さらに、そのようなプリンタを制御する処理のほぼ全てが、性能の向上が著しいホスト側のＣＰＵの能力を用いて行うことができる。したがって、高価なプロセッサやファームウェアを開発しなくても、ホスト側の能力の向上に伴いプリンタの処理能力を向上できるというメリットもある。したがって、ホストやアプリケーションの進歩に追従して、プリンタの機能の向上を図ることが可能であり、プリンタを買い替えたりする必要性も減る。
【００３５】
また、プリンタ側で解釈する処理が必要となるコマンドの代わりに、各パルスモータ２３および２４を直に駆動できる駆動パルスＰ１〜Ｐ４に対応したビットデータ５５をプリンタ３に送信することにより、プリンタ側で駆動パルスを生成するためにコマンドを解釈する処理を行わなくても良くなる。したがって、その処理にかかる時間をなくすことができ、プリンタの処理速度を高めることができる。一方、コマンドの代わりにビットデータ５５を送ることにより、ホスト２とプリンタ３との通信量が増大する可能性があるが、ＵＳＢあるいはＩＥＥＥ１３９４などの大量のデータを高速で伝送できる低コストで汎用的なインターフェイスデバイスが普及しており、それを有効に利用することにより伝送速度の確保も容易である。また、ビットデータ５５の伝送速度がアクチュエータ同士を協調して制御するためにネックとなるのであれば、上記のように、データＡＤにタイミングデータＴＤを組み合わせてプリンタ３に発信することも可能であり、伝送速度の低いシステムに対しても本発明は十分に有効である。
【００３６】
なお、上記のプリンタドライバ３５では、アプリケーションの画像や文章のデータを一旦印刷ヘッド２２で出力するデータとコマンドに変換するようにして従来のプリンタドライバ３５の資源を利用できるようにしている。これに対し、コマンドを経ずに画像や文字のデータを解釈して直に駆動パルスに相当するデータ、あるいは、駆動データであるビットデータを出力することも可能であり、このようにすると、コマンドに変換し、コマンドを駆動パルスに変換するといった処理を省くことができるので、ホスト側での処理を含めていっそう印刷出力する処理を高速にできるプリンタを提供できる。
【００３７】
また、パルスモータ２３および２４の駆動パルスに対応した駆動データを生成する例を説明したが、ノズルからインク滴を吐出するためのアクチュエータに供給される駆動パルスに対応した駆動データもプリンタドライバ３５で生成してプリンタに送信することも可能であり、プリンタとしてはＣＰＵなどのプロセッサや駆動パルスを生成するファームウェアが不要な極限までシンプルに纏められたプリンタを実現できる。
【００３８】
さらに、上記では、パルスモータ（ステッピングモータ）を備えたプリンタを例に本発明を説明したが、パルスモータに限らず駆動パルスにより稼動するアクチュエータを備えた周辺機器に対して本発明を適用できる。また、駆動パルスに１対１に対応したビットデータを出力する代わりに、駆動パルスの高低のレベルを変えるタイミングで駆動データを出力したり、駆動データを圧縮して送ることも可能であるが、上記の例のように、駆動パルスと１対１に対応したビットデータを送信することにより最も簡易な構成で、ホスト側から周辺機器をフレキシブルに動かすことができるシステムを提供できる。
【００３９】
このような本発明は、プリンタに限らず、スキャナやＣＤ−ＲＯＭやＤＶＤのドライブ装置などの駆動パルスによって駆動するアクチュエータを備えた周辺機器に適用することが可能である。
【００４０】
【発明の効果】
以上に説明したように、本発明においては、ホストコンピュータ側で周辺機器のアクチュエータの駆動パルスに対応した駆動データを生成して周辺機器宛てに発信できるようにしている。したがって、周辺機器側でコマンドを解釈して駆動パルスを生成するハードウェアやファームウェアは不要であり、周辺機器をさらに簡単な構成にでき、それと共にホスト側から周辺機器を自由に制御することができる。そして、本発明では、ホストコンピュータの進歩に追従し、機能の向上を図ることができる周辺機器を提供できる。
【図面の簡単な説明】
【図１】本発明に係るプリンタおよびホストの概略構成を示す図である。
【図２】本例のプリンタにおける各パルスモータの駆動回路の概略構成を示す図である。
【図３】本例のプリンタにおける駆動回路から出力される駆動パルスと、本例のホストからプリンタに送られる駆動データとの関係を説明するための図である。
【図４】本例のホストで稼動するプリンタドライバにおける概略の処理を示すフローチャートである。
【符号の説明】
１    システム
２    ホスト（情報処理端末）
３    プリンタ
２３、２４  パルスモータ
２５、２６  駆動回路
２５ａ、２６ａ  レジスタ
２５ｂ、２６ｂ  モータドライバ
３５  プリンタドライバ
３７  生成機能
４２  第１の機能
４３  第２の機能
４４  タイミング解析機能
５５  ビットデータ（駆動データ）
【図１】
0004867020.tif 000002
【図２】
0004867020.tif 000003
【図３】
0004867020.tif 000004
【図４】
0004867020.tif 000005