JP4867020B2 - Method and program for controlling peripheral devices - Google Patents

Method and program for controlling peripheral devices Download PDF

Info

Publication number
JP4867020B2
JP4867020B2 JP2001197596A JP2001197596A JP4867020B2 JP 4867020 B2 JP4867020 B2 JP 4867020B2 JP 2001197596 A JP2001197596 A JP 2001197596A JP 2001197596 A JP2001197596 A JP 2001197596A JP 4867020 B2 JP4867020 B2 JP 4867020B2
Authority
JP
Japan
Prior art keywords
data
drive
actuator
peripheral device
pulse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001197596A
Other languages
Japanese (ja)
Other versions
JP2003018888A (en
Inventor
正俊 横田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Naltec Inc
Original Assignee
Naltec Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Naltec Inc filed Critical Naltec Inc
Priority to JP2001197596A priority Critical patent/JP4867020B2/en
Publication of JP2003018888A publication Critical patent/JP2003018888A/en
Application granted granted Critical
Publication of JP4867020B2 publication Critical patent/JP4867020B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ホストに接続されて使用される周辺機器を制御する技術に関するものである。
【0002】
【従来の技術】
ホストに接続されて使用されるプリンタやスキャナなどの周辺機器においては、駆動パルスにより稼動するパルスモータなどの各種のアクチュエータと、駆動パルスを生成する駆動回路とが搭載されている。プリンタでは、印刷時にホストから伝送されたコマンドを解釈し、その結果に基づいて駆動回路により駆動パルスを生成するようになっている。
【0003】
【発明が解決しようとする課題】
ホストコンピュータにおいてデータ処理を行うために、データを入力したり、データ処理されたデータを出力したりするために、様々な周辺機器がホストコンピュータと接続され、ホストコンピュータの制御の下で動作する。周辺機器、特に、メカニカルな動きを伴う周辺機器は、そのメカニカルな動きを実現するアクチュエータを備えており、そのアクチュエータを駆動するためにパルス信号を生成している。たとえば、データを印刷用紙に出力するプリンタは、紙送りのためのパルスモータ(ステッピングモータ)、印刷ヘッドを走査方向に動かすパルスモータなどのアクチュエータを備えており、さらに、インクジェットタイプであればノズルからインク滴を吐出するためのサーマルタイプあるいはピエゾタイプのアクチュエータを備えている。
【0004】
このため、ホストコンピュータにインストールされたドライバプログラムから送信されるコマンドを周辺機器のコントロールボードに搭載されたCPUで解釈し、そのコマンドに指示された動作を実現するためのパルス信号を生成し、それによって各アクチュエータの駆動回路を制御してアクチュエータを駆動するための駆動パルスを生成している。
【0005】
プリンタから出力される画像が、マルチカラー化し、また、高解像度化するにつれて、さらに高速に、そして高精度でモータやインクジェット用のアクチュエータを動作させることが要求されている。また、1ページの印刷を高速で行うために印刷が不要なところへは印刷ヘッドを動かさないなどの複雑な制御が要求されるようになっており、アクチュエータを制御するコマンドも複雑になっている。さらに、単票用紙と連続用紙を同時に処理したり、チェックの読取機能なども備えたPOSプリンタや、プリンタとスキャナの機能を備えたスキャナプリンタなどのように、多用途で複雑な動作を行う周辺機器においては、アクチュエータも多く、制御はさらに複雑になる。また、ホストコンピュータであるパーソナルコンピュータの機能は日々向上しており、ホストコンピュータ上で稼動するアプリケーションプログラムは高機能化しており、周辺機器の仕様に対する要求も高くなりつつある。したがって、周辺機器の能力や機能を向上する必要があり、処理能力の高いCPUを搭載することが要求されている。
【0006】
しかしながら、周辺機器用の高性能なプロセッサを開発することは開発期間とコストが要求されることであり、さらに、そのプロセッサに適したファームウェアを開発するには時間とコストがかかる。また、パーソナルコンピュータのような汎用的な機器と比較すると、周辺機器は印刷などの所定の目的に特化した装置であり、販売台数もそれほど多くなく、また、その装置に適した制御システムを開発する必要性があるという条件もある。
【0007】
したがって、要求された仕様に適した周辺機器を短期間で開発しようとすると、膨大な労力と費用が必要となり、周辺機器の製造コストは非常に高いものになってしまう。このため、周辺機器の機能の進歩あるいは開発速度が、アプリケーションプログラムの開発速度に追いつかず、また、高機能な周辺機器が販売されたとしても、ユーザが簡単に買い替えるということも難しい。したがって、パーソナルコンピュータなどで稼動するアプリケーションの機能が、パーソナルコンピュータをホストマシンとして接続された周辺機器に制限される事態が発生する可能性がある。
【0008】
そこで、本発明においては、ホストコンピュータやアプリケーションプログラムの進歩に追従し、機能の向上を安価に実現することができる周辺機器およびその制御方法を提供することを目的としている。また、アプリケーションプログラムから要求される様々な仕様にフレキシブルに対応することができる周辺機器およびその制御方法を提供することを目的としている。
【0009】
【課題を解決するための手段】
本発明の一態様は、駆動パルスにより稼動するアクチュエータを有する周辺機器をホストコンピュータ側から制御するプログラムである。周辺機器は複数のアクチュエータを有し、複数のアクチュエータの各々のアクチュエータは固有のアドレスを備えている。さらに、当該プログラムは、駆動パルスに対応する駆動データを生成する処理と、駆動データを周辺機器宛てに発信する処理とを実行する命令を有する。生成する処理は、各々のアクチュエータに対する駆動データを生成することと、駆動データと共に各々のアクチュエータで各々のアクチュエータの駆動データを実行するタイミングを示すタイミングデータを生成することとを含み、駆動データは駆動パルスと1対1に対応し、タイミングデータに基づき即座に駆動パルスに変換されるビットデータを含む。また、発信する処理は、駆動データとタイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、各々のアクチュエータのアドレス宛てに発信することを含む。本発明の他の態様の1つは、周辺機器に搭載されたアクチュエータを駆動する駆動パルスに対応する駆動データを生成する手段と、駆動データを前記周辺機器宛てに発信する手段とを有する情報処理端末である。生成する手段は、各々のアクチュエータに対する駆動データと、駆動データと共に各々のアクチュエータで各々のアクチュエータの駆動データを実行するタイミングを示すタイミングデータとを生成し、駆動データは駆動パルスと1対1に対応し、タイミングデータに基づき即座に駆動パルスに変換されるビットデータを含む。また、発信する手段は、駆動データとタイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、各々のアクチュエータのアドレス宛てに発信することを含む。本発明のさらに異なる態様の1つは、周辺機器に搭載されたアクチュエータを駆動する駆動パルスに対応する駆動データを生成するステップと、その駆動データを周辺機器宛に発信するステップとを有する周辺機器を制御する方法である。生成するステップは、各々のアクチュエータに対する駆動データを生成することと、駆動データと共に各々のアクチュエータで各々のアクチュエータの駆動データを実行するタイミングを示すタイミングデータを生成することとを含み、駆動データは駆動パルスと1対1に対応し、タイミングデータに基づき即座に駆動パルスに変換されるビットデータを含み、発信するステップは、駆動データとタイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、各々のアクチュエータのアドレス宛てに発信することを含む。
【0010】
本発明のプログラムにより生成される駆動データは、駆動パルスと1対1に対応するビットデータである。そして、本発明の周辺機器を制御する方法では、駆動パルスを発生させるところまでの処理を全てホスト側で行い、周辺機器はホスト側から供給される駆動パルスあるいはそれと対応した駆動データにより駆動される。したがって、周辺機器に対しては、コマンドなどの周辺機器側での解釈が必要なデータではなく、実質的には、そのままアクチュエータに供給可能なデータが供給される。このため、周辺機器の側では、アクチュエータの駆動回路により駆動データを駆動パルスに変換してアクチュエータに供給するだけで、それらのアクチュエータを、ホスト側で稼動するアプリケーションプログラムからの指示に従って動かすことができる。
【0011】
したがって、本発明のプログラム、または周辺機器を制御する方法を採用することにより、周辺機器の側では、コマンドを解釈するためのCPUやファームウェアは不要となり、極めて簡単な構成で、どのような動きであってもホスト側の指示にしたがってアクチュエータを制御できる。すなわち、アクチュエータに複雑な動作をさせるために高速で処理能力の高いCPUを採用し、コマンドの数を増やしたり、その体系を拡張する代わりに、アクチュエータの駆動パルスに対応する駆動データを受信することにより、ホスト側とのインターフェイスを単純にすると共に、コマンド体系や周辺機器に搭載されるCPUなどのプロセッサに周辺機器の機能が限定されるのを防止している。したがって、本発明の周辺機器を制御する方法により、周辺機器のアクチュエータが動作あるいは追従可能な範囲内であれば、いかなる動きもホスト側からの指示により実現することができる。このため、周辺機器のハードウェアや制御システムを変えなくても、ホスト側から供給される駆動データに、アプリケーションプログラムの仕様が反映されていれば、アプリケーションプログラムが意図するように周辺機器を制御することができる。
【0012】
さらに、本発明のプログラム、または周辺機器を制御する方法においては、従来、周辺機器の制御用のCPUあるいはASICなどが行っていたコマンドを解釈して、各アクチュエータ毎のパルス信号を生成する処理を、ホストとなるパーソナルコンピュータなどの情報処理端末で実行する。したがって、周辺機器の制御用のCPUあるいはASICなどのプロセッサが行っていた処理を、パーソナルコンピュータのCPUにより実行することができる。パーソナルコンピュータに採用されるCPUは、近年、その性能が飛躍的に増大しており、数100MHzあるいはそれ以上の処理速度を備えている。そして、さらにその性能は向上しつつある。このため、本発明のプログラム、または周辺機器であれば、周辺機器のアクチュエータを制御するためにコマンドを解釈する処理を、性能が飛躍的に進歩しているホスト側のCPUの能力を用いて行うことが可能となる。したがって、複雑で、高速な処理を周辺機器で実行するために、周辺機器用の高価なプロセッサやファームウェアを開発する必要がなくなる。このため、アプリケーションプログラムの仕様を満たす性能の周辺機器を、ハードウェアは変えずに、必要であればホスト側で動作するプログラムを変更することにより短期間に低コストで実現することができる。
【0013】
また、コマンドを周辺機器に送信する代わりに、アクチュエータを実質的に直に駆動することができる駆動データを送信することにより、ホストと周辺機器との通信量は増大する可能性がある。しかしながら、USBあるいはIEEE1394などの大量のデータを高速で伝送できる低コストなデバイスが普及しており、アクチュエータの動作速度に対して駆動データの伝送速度が大幅に下回ることはなく、駆動データを伝送することにより周辺機器の処理速度が低下することはほとんどない。逆に、周辺機器側でコマンドを解釈する必要がないので、その処理時間を短縮することにより、処理速度を向上できる。
【0014】
さらに、ホスト側にインストールされるドライバソフトウェアから周辺機器に制御データを送るために所定のフォーマットにしたがったコマンド体系が開発されてきたが、本発明のプログラム、または周辺装置を制御する方法であれば、コマンドに変換する必要がなく、アプリケーションからの指示を最終的には駆動パルスのデータ形式で出力させれば良い。したがって、アプリケーションからの指示をコマンドに変換し、コマンドを駆動信号に変換するといった2重の手間を省略することも可能となり、ホスト側での処理も含めていっそう高速処理が可能な周辺機器を提供できる。
【0015】
用紙に印刷する手段を有する印刷装置などの周辺機器の多くは、印刷する手段のパルスモータ、用紙にドットを形成する手段などの複数のアクチュエータを備えている。このような周辺機器に対しても、各々のアクチュエータ宛てに駆動データを発信することにより、ホスト側の情報処理端末から各アクチュエータを個別に制御することが可能であり、複数のアクチュエータを協調して動作させることができる。
【0016】
これら複数のアクチュエータと情報処理端末とを接続する伝送経路、たとえば、USBなどの伝送速度がアクチュエータを協調して制御するタイミングに対しネックとなる場合であっても、さらに、各々のアクチュエータで駆動データを実行するタイミングを示すタイミングデータを駆動データと組み合わせて発信することで、伝送経路の速度に左右されずに、複数のアクチュエータを同期させて高速で動かすことができる。
【0017】
【発明の実施の形態】
以下に図面を参照して本発明をさらに詳しく説明する。図1に本発明の周辺機器を制御する方法を実現するためのシステムの一例を示してある。本例のシステム1は、画像データや文章データを処理するアプリケーション11がインストールされている情報処理端末としてのパーソナルコンピュータ(以下では、ホスト、ホストコンピュータ)2と、このホスト2の周辺機器として動作し、印刷用紙4に画像や文章などを印刷するプリンタ3とを有している。ホスト2とプリンタ3は、USBケーブル、SCSIケーブル、IEEE1394ケーブルなどの適当なインターフェイス13および21を備えており、これらのインターフェイス13および21の規格にマッチしたケーブル5により接続されている。
【0018】
そして、ホスト2からプリンタ3へは、送信先のアドレスを含むヘッダー情報Hと、プリンタ3のアクチュエータであるモータやヘッドを動かすデータADと、そのデータADが利用されるタイミングを示すデータTDを含むデータパケット59が送信される。
【0019】
本例のプリンタ3は、印刷用紙4にインク滴を吐出してドットを形成するインクジェットプリンタであり、アクチュエータとして、インク滴を吐出する複数のノズル29を備えた印刷ヘッド22と、この印刷ヘッド22をシャフト27に沿って紙幅方向(走査方向)に往復動するためのパルスモータ23と、走査方向と垂直な紙送り方向に印刷用紙4をフィードするためにローラ28を駆動するパルスモータ24を有している。さらに、プリンタ3は、パルスモータ23および24を稼動する駆動パルスP1〜P4を出力する駆動回路25および26を有している。本例では、パルスモータ23および24として、4極のステッピングモータが採用されている。
【0020】
各駆動回路25および26には異なるアドレスが付されており、本例においては、駆動回路25にはアドレス「Acr」が付され、駆動回路26にはアドレス「Apf」が付されているものとする。そして、インターフェイス21で受信したデータを送信先のアドレスで振り分ける中継部32を備えており、ホスト2からアドレスを付して送信されたデータがプリンタ3の内部で駆動回路25と駆動回路26に分配される。
【0021】
本例のプリンタ3は、さらに、印刷ヘッド22のノズル29からインク滴を吐出する制御を行うインク吐出用の回路31も備えており、この回路31にも異なるアドレス「Actl」が付されている。
【0022】
図2に各駆動回路25および26の概略構成を示してある。各駆動回路25および26は、同一の構成であり、ホスト2からの各々の駆動回路25および26のアドレス宛てに送られたアクチュエータを駆動するデータADを4ビット単位で保持するレジスタ25aおよび26aと、レジスタ25aおよび26aの4ビットのデータを4つの駆動パルスP1〜P4に変換してパルスモータ23および24に供給する機能を備えたモータドライバ25bおよび26bを備えている。したがって、駆動回路25および26では、レジスタ25aおよび26aにセットされた4ビットのデータADに対応し、パルスモータ23および24の極数に対応した駆動パルスP1〜P4が出力される。すなわち、本例のアクチュエータを駆動するためのデータADに含まれる各々のビットデータ55は、駆動パルスに1対1に対応している。これにより、モータドライバ25bおよび26bから各々のパルスモータ23および24に駆動パルスP1〜P4が出力される。たとえば、駆動回路25のレジスタ25aに「0010」というシリアルデータADがホスト2から送られてくると、レジスタ25aでは、「0010」がパラレル変換されてセットされ、低レベルの駆動パルスP1、低レベルの駆動パルスP2、高レベルの駆動パルスP3および低レベルの駆動パルスP4がモータドライバ25bからモータ23に出力される。
【0023】
したがって、図3(a)および(b)に示したように、ホスト2からアクチュエータを駆動するデータAD1〜AD6が順番に送られると、それぞれのデータAD1〜AD6に対応して時刻t1に駆動パルスP1が高レベル、時刻t2に駆動パルスP2が高レベル、時刻t3に駆動パルスP3が高レベル、時刻t4に駆動パルスP4、時刻t5に駆動パルスP1が高レベル、時刻t6に駆動パルスP2が高レベルとなる。このため、これらの駆動パルスP1〜P4が供給されたモータ23は1相励磁のモードで回転する。その結果、所望のタイミングで所望の量だけヘッドや印刷用紙を送り、その位置でヘッドからインク滴を出力すると、希望通りの画像を出力できる。
【0024】
このようなデータADをプリンタ3に送信することになるホスト2は、図1に示すように、オペレーティングシステム(OS)12と、画像データ14や文章データを処理するアプリケーション11と、このアプリケーション11から指定された画像や文字などを印刷するプリンタドライバ35を有している。プリンタドライバ35は、各パルスモータ23および24の駆動パルスP1〜P4に対応するビットデータ(駆動データ)55を含むデータADと駆動パルスP1〜P4を出力するタイミングを示すデータ(タイミングデータ)TDを生成し、また、印刷ヘッド22で印刷するビットマップに対応したヘッド出力データφ1を生成する。これらのプリンタドライバ35により生成されたデータは、OS12により管理されるインターフェイス13からプリンタ3の各々のアクチュエータ、すなわち、パルスモータ23、パルスモータ24および印刷ヘッド22のアドレスを付して出力される。本例では、それらのアドレスとして、駆動回路25、駆動回路26およびインク吐出用の回路31のアドレスが付される。
【0025】
本例のプリンタドライバ35は、アプリケーション11で出力するように指示された画像などをプリンタ3で印刷するために、その画像データをヘッド出力データφ1とコマンドに変換する機能36と、このヘッド出力データφ1およびコマンドのうち、プリンタ3のパルスモータ23および24を稼動するコマンドを駆動パルスP1〜P4に対応したビットデータ55として生成する生成機能37と、駆動データ55やヘッド出力データφ1をレジスタ25aおよび26aや回路31のアドレスを付加すると共に、インターフェイス13に送って発信可能とする機能38を備えている。
【0026】
本例の生成機能37は、変換する機能36から入力されたデータから、駆動データ55に変換すべきパルスモータ23とパルスモータ24に関連するデータを生成するコマンドを抽出する機能41と、そのコマンドをデコード(解釈)してパルスモータ23の駆動パルスP1〜P4に1対1に対応した駆動データ(ビットデータ)55を生成する第1の機能42と、パルスモータ24の駆動パルスP1〜P4に1対1に対応したビットデータ55を生成する第2の機能43を備えている。したがって、これら第1および第2の機能42および43により、従来、プリンタ側で駆動パルスを生成していたモータ制御回路と同等の機能がソフトウェアによって実現されていることになる。
【0027】
本例の生成機能37は、さらに、プリンタ3における駆動回路25および26がビットデータ55にしたがった駆動パルスP1〜P4をモータドライバ25bおよび26bからモータ23および24に出力するタイミングを示すタイミングデータTDを生成するタイミング解析機能44を備えている。この機能44で生成されたタイミングデータTDにより駆動回路25と駆動回路26を独立に制御することができる。
【0028】
ホスト2からプリンタ3にアクチュエータを駆動するデータADを送って制御する場合、プリンタ3からデータADを実行した情報をホスト2、すなわち、プリンタドライバ35が受信して、次のデータADを送ってモータ23、モータ24およびヘッド22を適切なタイミングで制御することが可能である。しかしながら、ホスト2がプリンタ3からその情報を受信する速度がアクチュエータが動作する速度に対してクリティカルパスとなると、プリンタ3の処理速度が低下する要因となる。これに対し、タイミングデータTDを付加してデータADを送ることにより、駆動回路25、駆動回路26および印刷ヘッド22ではそれぞれのデータADのタイミングデータTDにしたがって第1のデータADの処理を行うことが可能となる。したがって、駆動回路25、駆動回路26および印刷ヘッド22をタイミングデータTDにしたがって単独で動作させるだけで、タイミングデータTDに基づいて相互に協調した制御を行うことができる。そして、プリンタドライバ35と交信する必要がないので、ホスト2とプリンタ3との交信速度によりプリンタ3の処理速度が低下することもない。
【0029】
図4にプリンタドライバ35により行われる処理をフローチャートで示してある。まず、ステップ61において、アプリケーション11から指示された画像や文字を印刷するため、変換する機能36で変換および出力されたデータがパルスモータ23および24を制御するコマンドであれば、ステップ62で第1の機能42および第2の機能43により解釈されて駆動パルスP1〜P4に相当するデータが生成される。生成された駆動パルスPに相当するデータは、ステップ63でビットデータの状態で駆動データ55として出力される。この駆動データ55を生成するのに前後して、ステップ64でタイミングデータTDが生成される。ステップ65において、このタイミングデータTDと1群のビットデータ55からなるデータADとが組み合わされ、さらに、駆動されるアクチュエータ、すなわち、モータ23および24を駆動する回路25および26のアドレスと共にインターフェイス13からプリンタ3に出力される。一方、印刷ヘッド22からインク滴を吐出させるためのヘッド出力データφ1もアドレスが付されたデータとして出力される。
【0030】
プリンタドライバ35によってホスト2で実行される処理は、上記の各ステップを実行する命令を有するプログラムとして提供することができる。このプログラムはホスト2となるコンピュータで読み取り可能なCD−ROMなどの記録媒体に記録して提供したり、インターネットなどのコンピュータネットワークを介して配信することが可能である。そして、ホスト2にインストールすることにより上記の従来のプリンタ側の機能をホスト2に実現することができる。
【0031】
ホスト2から発信されたビットデータ55からなるデータADを含むデータパケット59は、プリンタ3で取得されると、ヘッダーHのアドレスにしたがって駆動回路25または26に分配される。
【0032】
このように、本例のホスト2とプリンタ3とからなるシステム1では、パルスモータ23および24の駆動パルスP1〜P4に対応するビットデータ55を生成してプリンタ3に発信している。すなわち、従来、プリンタで行われていた、コマンドを解釈してパルスモータ23および24の駆動パルスP1〜P4を生成する処理をホスト2で駆動するプリンタドライバ35で行っている。このため、プリンタ3の側でアクチュエータ、本例では、パルスモータ23および24のコマンドを解釈する必要がなく、実質的に、ホスト2から送信されたビットデータ55からなるデータADをパルスモータ23および24に供給することによりそれらのパルスモータ23および24を動かすことができる。このため、プリンタ3においては、ホスト2からのコマンドを解釈して各々のパルスモータの駆動パルスP1〜P4を生成するハードウェアやファームウェアは不要となり、非常にシンプルな構成になる。
【0033】
また、ホスト2のプリンタドライバ35により、各パルスモータ23および24をステップ、あるいはクロック単位で、そして、駆動パルスP1〜P4に対応した極めて普遍的なデータで各パルスモータ23および24を制御できる。したがって、各パルスモータ23および24で複雑な動きを実現するためにプリンタ側で処理能力の高いCPUを採用したり、プリンタドライバから供給されるコマンドの数を増やしたり、コマンド体系を拡張することなく、ホスト2からパルスモータ23および24を高速にクロック単位で、そしてフレキシブルに制御することができる。このことは、さらに、プリンタ3の機能がそのコントロールボードに搭載されているコマンド体系やCPUなどのプロセッサの能力に限定されずに、各パルスモータ23および24が動作可能なことを意味する。すなわち、ホスト側で動作するソフトウェアにより、どのようにでも制御することが可能であり、適当なドライバソフトウェアを開発するだけで、プリンタそのものを変更せずにアプリケーションの仕様を満足するような処理をプリンタで行うことができる。
【0034】
さらに、そのようなプリンタを制御する処理のほぼ全てが、性能の向上が著しいホスト側のCPUの能力を用いて行うことができる。したがって、高価なプロセッサやファームウェアを開発しなくても、ホスト側の能力の向上に伴いプリンタの処理能力を向上できるというメリットもある。したがって、ホストやアプリケーションの進歩に追従して、プリンタの機能の向上を図ることが可能であり、プリンタを買い替えたりする必要性も減る。
【0035】
また、プリンタ側で解釈する処理が必要となるコマンドの代わりに、各パルスモータ23および24を直に駆動できる駆動パルスP1〜P4に対応したビットデータ55をプリンタ3に送信することにより、プリンタ側で駆動パルスを生成するためにコマンドを解釈する処理を行わなくても良くなる。したがって、その処理にかかる時間をなくすことができ、プリンタの処理速度を高めることができる。一方、コマンドの代わりにビットデータ55を送ることにより、ホスト2とプリンタ3との通信量が増大する可能性があるが、USBあるいはIEEE1394などの大量のデータを高速で伝送できる低コストで汎用的なインターフェイスデバイスが普及しており、それを有効に利用することにより伝送速度の確保も容易である。また、ビットデータ55の伝送速度がアクチュエータ同士を協調して制御するためにネックとなるのであれば、上記のように、データADにタイミングデータTDを組み合わせてプリンタ3に発信することも可能であり、伝送速度の低いシステムに対しても本発明は十分に有効である。
【0036】
なお、上記のプリンタドライバ35では、アプリケーションの画像や文章のデータを一旦印刷ヘッド22で出力するデータとコマンドに変換するようにして従来のプリンタドライバ35の資源を利用できるようにしている。これに対し、コマンドを経ずに画像や文字のデータを解釈して直に駆動パルスに相当するデータ、あるいは、駆動データであるビットデータを出力することも可能であり、このようにすると、コマンドに変換し、コマンドを駆動パルスに変換するといった処理を省くことができるので、ホスト側での処理を含めていっそう印刷出力する処理を高速にできるプリンタを提供できる。
【0037】
また、パルスモータ23および24の駆動パルスに対応した駆動データを生成する例を説明したが、ノズルからインク滴を吐出するためのアクチュエータに供給される駆動パルスに対応した駆動データもプリンタドライバ35で生成してプリンタに送信することも可能であり、プリンタとしてはCPUなどのプロセッサや駆動パルスを生成するファームウェアが不要な極限までシンプルに纏められたプリンタを実現できる。
【0038】
さらに、上記では、パルスモータ(ステッピングモータ)を備えたプリンタを例に本発明を説明したが、パルスモータに限らず駆動パルスにより稼動するアクチュエータを備えた周辺機器に対して本発明を適用できる。また、駆動パルスに1対1に対応したビットデータを出力する代わりに、駆動パルスの高低のレベルを変えるタイミングで駆動データを出力したり、駆動データを圧縮して送ることも可能であるが、上記の例のように、駆動パルスと1対1に対応したビットデータを送信することにより最も簡易な構成で、ホスト側から周辺機器をフレキシブルに動かすことができるシステムを提供できる。
【0039】
このような本発明は、プリンタに限らず、スキャナやCD−ROMやDVDのドライブ装置などの駆動パルスによって駆動するアクチュエータを備えた周辺機器に適用することが可能である。
【0040】
【発明の効果】
以上に説明したように、本発明においては、ホストコンピュータ側で周辺機器のアクチュエータの駆動パルスに対応した駆動データを生成して周辺機器宛てに発信できるようにしている。したがって、周辺機器側でコマンドを解釈して駆動パルスを生成するハードウェアやファームウェアは不要であり、周辺機器をさらに簡単な構成にでき、それと共にホスト側から周辺機器を自由に制御することができる。そして、本発明では、ホストコンピュータの進歩に追従し、機能の向上を図ることができる周辺機器を提供できる。
【図面の簡単な説明】
【図1】本発明に係るプリンタおよびホストの概略構成を示す図である。
【図2】本例のプリンタにおける各パルスモータの駆動回路の概略構成を示す図である。
【図3】本例のプリンタにおける駆動回路から出力される駆動パルスと、本例のホストからプリンタに送られる駆動データとの関係を説明するための図である。
【図4】本例のホストで稼動するプリンタドライバにおける概略の処理を示すフローチャートである。
【符号の説明】
1 システム
2 ホスト(情報処理端末)
3 プリンタ
23、24 パルスモータ
25、26 駆動回路
25a、26a レジスタ
25b、26b モータドライバ
35 プリンタドライバ
37 生成機能
42 第1の機能
43 第2の機能
44 タイミング解析機能
55 ビットデータ(駆動データ)
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for controlling peripheral devices used by being connected to a host.
[0002]
[Prior art]
2. Description of the Related Art Peripheral devices such as printers and scanners that are used by being connected to a host are equipped with various actuators such as a pulse motor that operates by drive pulses and a drive circuit that generates drive pulses. The printer interprets a command transmitted from the host at the time of printing, and generates a driving pulse by a driving circuit based on the result.
[0003]
[Problems to be solved by the invention]
In order to perform data processing in the host computer, various peripheral devices are connected to the host computer and operate under the control of the host computer in order to input data or output data processed data. Peripheral devices, particularly peripheral devices with mechanical movement, include an actuator that realizes the mechanical movement, and generate a pulse signal to drive the actuator. For example, a printer that outputs data to printing paper includes actuators such as a pulse motor (stepping motor) for feeding paper and a pulse motor that moves the print head in the scanning direction. A thermal type or piezo type actuator for ejecting ink droplets is provided.
[0004]
For this reason, the command transmitted from the driver program installed in the host computer is interpreted by the CPU mounted on the control board of the peripheral device, and the pulse signal for realizing the operation instructed by the command is generated. By controlling the drive circuit of each actuator, a drive pulse for driving the actuator is generated.
[0005]
As an image output from a printer becomes multi-colored and has a higher resolution, it is required to operate a motor and an actuator for inkjet with higher speed and higher accuracy. In addition, in order to print one page at a high speed, complicated control such as not moving the print head is required where printing is unnecessary, and commands for controlling the actuator are also complicated. . In addition, peripherals that perform versatile and complex operations, such as POS printers that process single-cut sheets and continuous sheets at the same time, and also have a check reading function, and scanner printers that have printer and scanner functions. In equipment, there are many actuators, and the control becomes more complicated. In addition, the functions of a personal computer, which is a host computer, are improving day by day, application programs that run on the host computer have become highly functional, and demands for specifications of peripheral devices are increasing. Therefore, it is necessary to improve the capability and function of the peripheral device, and it is required to mount a CPU with high processing capability.
[0006]
However, developing a high-performance processor for a peripheral device requires development time and cost, and further, it takes time and cost to develop firmware suitable for the processor. Compared with general-purpose devices such as personal computers, peripheral devices are specialized devices for printing and other specific purposes, and the number of units sold is not so large, and a control system suitable for these devices has been developed. There is also a condition that there is a need to do.
[0007]
Therefore, if a peripheral device suitable for the required specifications is to be developed in a short period of time, enormous labor and cost are required, and the manufacturing cost of the peripheral device becomes very high. For this reason, the progress or development speed of the function of the peripheral device cannot catch up with the development speed of the application program, and even if a high-performance peripheral device is sold, it is difficult for the user to easily replace it. Therefore, there is a possibility that the function of an application running on a personal computer or the like is limited to peripheral devices connected with the personal computer as a host machine.
[0008]
Therefore, an object of the present invention is to provide a peripheral device and a control method therefor that can follow the progress of a host computer or an application program and can improve the function at low cost. Another object of the present invention is to provide a peripheral device that can flexibly cope with various specifications required by an application program and a control method therefor.
[0009]
[Means for Solving the Problems]
  One embodiment of the present invention is a program for controlling a peripheral device having an actuator operated by a drive pulse from the host computer side. The peripheral device has a plurality of actuators, and each actuator of the plurality of actuators has a unique address. Further, the program has a command for executing a process of generating drive data corresponding to the drive pulse and a process of transmitting the drive data to the peripheral device. The process of generating includes generating drive data for each actuator and generating timing data indicating timing for executing the drive data of each actuator in each actuator together with the drive data. It includes bit data that corresponds one-to-one with the pulse and is immediately converted into a drive pulse based on the timing data. The process of transmitting includes transmitting the combination of the drive data and the timing data to the address of each actuator without waiting for the information on which the previous process has been executed. Another aspect of the present invention is an information processing method including means for generating drive data corresponding to a drive pulse for driving an actuator mounted on a peripheral device, and means for transmitting the drive data to the peripheral device. It is a terminal. The generating means generates drive data for each actuator and timing data indicating the timing for executing the drive data of each actuator by each actuator together with the drive data, and the drive data corresponds to the drive pulse on a one-to-one basis. And bit data that is immediately converted into drive pulses based on the timing data. The means for transmitting includes transmitting the combination of the drive data and the timing data to the address of each actuator without waiting for the information on which the previous processing has been executed. According to another aspect of the present invention, there is provided a peripheral device including a step of generating drive data corresponding to a drive pulse for driving an actuator mounted on the peripheral device, and a step of transmitting the drive data to the peripheral device. It is a method to control. The step of generating includes generating drive data for each actuator, and generating timing data indicating timing for executing the drive data of each actuator in each actuator together with the drive data, wherein the drive data is drive The step of transmitting and including bit data that corresponds to the pulse in a one-to-one manner and is immediately converted into a drive pulse based on the timing data includes a combination of the drive data and the timing data, and information on the previous processing performed. This includes sending to the address of each actuator without waiting.
[0010]
  Drive data generated by the program of the present inventionIsIt is bit data corresponding to the drive pulse on a one-to-one basis. In the method for controlling a peripheral device according to the present invention, all processing up to generation of a drive pulse is performed on the host side, and the peripheral device is driven by a drive pulse supplied from the host side or drive data corresponding thereto. . Therefore, data that can be supplied to the actuator as it is is supplied to the peripheral device, not data that requires interpretation on the peripheral device side such as a command. For this reason, on the side of the peripheral device, it is possible to move these actuators according to instructions from an application program running on the host side simply by converting drive data into drive pulses by the actuator drive circuit and supplying them to the actuators. .
[0011]
Therefore, by adopting the program of the present invention or the method for controlling peripheral devices, the peripheral device does not require a CPU or firmware for interpreting commands, and it can operate in any manner with a very simple configuration. Even if it exists, the actuator can be controlled in accordance with instructions from the host. In other words, a high-speed and high-performance CPU is used to make the actuator perform complex operations, and instead of increasing the number of commands or expanding the system, it receives drive data corresponding to the actuator drive pulse. Thus, the interface with the host side is simplified, and functions of the peripheral device are prevented from being limited to a command system and a processor such as a CPU mounted on the peripheral device. Therefore, according to the method for controlling a peripheral device of the present invention, any movement within the range in which the actuator of the peripheral device can be operated or followed can be realized by an instruction from the host side. For this reason, even if the hardware and control system of the peripheral device are not changed, if the specification of the application program is reflected in the drive data supplied from the host side, the peripheral device is controlled as intended by the application program. be able to.
[0012]
Further, in the program of the present invention or the method for controlling a peripheral device, processing for generating a pulse signal for each actuator by interpreting a command conventionally performed by a CPU or ASIC for controlling the peripheral device is performed. And executed by an information processing terminal such as a personal computer as a host. Therefore, the processing performed by the CPU for controlling peripheral devices or the processor such as ASIC can be executed by the CPU of the personal computer. In recent years, CPUs employed in personal computers have dramatically increased in performance and have a processing speed of several hundred MHz or higher. And the performance is improving further. For this reason, in the case of the program of the present invention or a peripheral device, processing for interpreting the command to control the actuator of the peripheral device is performed using the capability of the CPU on the host side whose performance has been dramatically improved. It becomes possible. Therefore, it is not necessary to develop an expensive processor or firmware for the peripheral device in order to execute complicated and high-speed processing by the peripheral device. For this reason, a peripheral device having a performance that satisfies the specifications of the application program can be realized in a short time and at a low cost by changing the program operating on the host side if necessary without changing the hardware.
[0013]
In addition, instead of transmitting a command to the peripheral device, the amount of communication between the host and the peripheral device may increase by transmitting drive data that can drive the actuator substantially directly. However, low-cost devices that can transmit a large amount of data such as USB or IEEE 1394 at high speed are widespread, and the drive data transmission speed is not significantly lower than the operation speed of the actuator, and the drive data is transmitted. As a result, the processing speed of the peripheral device is hardly reduced. Conversely, since it is not necessary to interpret the command on the peripheral device side, the processing speed can be improved by reducing the processing time.
[0014]
In addition, a command system according to a predetermined format has been developed for sending control data from the driver software installed on the host side to the peripheral device. However, if the program of the present invention or the method for controlling the peripheral device is used, There is no need to convert it into a command, and an instruction from the application may be finally output in the data format of the drive pulse. Therefore, it is possible to eliminate the double effort of converting the command from the application into a command and converting the command into a drive signal, and provide peripheral devices that can perform high-speed processing including processing on the host side. it can.
[0015]
Many peripheral devices such as a printing apparatus having a unit for printing on a sheet include a plurality of actuators such as a pulse motor for a unit for printing and a unit for forming dots on the sheet. Even for such peripheral devices, it is possible to control each actuator individually from the information processing terminal on the host side by transmitting drive data to each actuator. It can be operated.
[0016]
  A transmission path connecting these multiple actuators to an information processing terminal, for example, when the transmission speed of USB or the like becomes a bottleneck with respect to the timing when the actuators are controlled cooperativelyEvenIn addition, by transmitting timing data indicating the timing for executing the drive data in each actuator in combination with the drive data, it is possible to move a plurality of actuators at high speed without depending on the speed of the transmission path. it can.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be described in more detail with reference to the drawings. FIG. 1 shows an example of a system for realizing a method for controlling peripheral devices according to the present invention. The system 1 of this example operates as a personal computer (hereinafter referred to as a host or host computer) 2 as an information processing terminal in which an application 11 for processing image data and text data is installed, and peripheral devices of the host 2. And a printer 3 that prints images and texts on the printing paper 4. The host 2 and the printer 3 include appropriate interfaces 13 and 21 such as a USB cable, a SCSI cable, and an IEEE 1394 cable, and are connected by a cable 5 that matches the standards of these interfaces 13 and 21.
[0018]
The host 2 to the printer 3 includes header information H including a transmission destination address, data AD for moving a motor and a head that are actuators of the printer 3, and data TD indicating timing at which the data AD is used. A data packet 59 is transmitted.
[0019]
The printer 3 of this example is an ink jet printer that forms dots by ejecting ink droplets onto the printing paper 4. The print head 22 includes a plurality of nozzles 29 that eject ink droplets as an actuator, and the print head 22. Has a pulse motor 23 that reciprocates along the shaft 27 in the paper width direction (scanning direction), and a pulse motor 24 that drives the roller 28 to feed the printing paper 4 in the paper feed direction perpendicular to the scanning direction. is doing. Furthermore, the printer 3 has drive circuits 25 and 26 that output drive pulses P1 to P4 for operating the pulse motors 23 and 24. In this example, 4-pole stepping motors are employed as the pulse motors 23 and 24.
[0020]
The drive circuits 25 and 26 are assigned different addresses. In this example, the drive circuit 25 is assigned an address “Acr”, and the drive circuit 26 is assigned an address “Apf”. To do. The relay unit 32 distributes the data received by the interface 21 by the address of the transmission destination, and the data transmitted with the address from the host 2 is distributed to the drive circuit 25 and the drive circuit 26 inside the printer 3. Is done.
[0021]
The printer 3 of this example further includes an ink ejection circuit 31 that performs control to eject ink droplets from the nozzles 29 of the print head 22, and this circuit 31 is also assigned a different address “Actl”. .
[0022]
FIG. 2 shows a schematic configuration of each drive circuit 25 and 26. Each of the drive circuits 25 and 26 has the same configuration, and registers 25a and 26a for holding data AD for driving the actuator sent from the host 2 to the addresses of the drive circuits 25 and 26 in units of 4 bits. Motor drivers 25b and 26b having a function of converting the 4-bit data in the registers 25a and 26a into four drive pulses P1 to P4 and supplying them to the pulse motors 23 and 24 are provided. Therefore, the drive circuits 25 and 26 output drive pulses P1 to P4 corresponding to the number of poles of the pulse motors 23 and 24 corresponding to the 4-bit data AD set in the registers 25a and 26a. That is, each bit data 55 included in the data AD for driving the actuator of this example corresponds to the drive pulse on a one-to-one basis. As a result, drive pulses P1 to P4 are output from the motor drivers 25b and 26b to the pulse motors 23 and 24, respectively. For example, when serial data AD “0010” is sent from the host 2 to the register 25a of the drive circuit 25, “0010” is parallel-converted and set in the register 25a, the low level drive pulse P1, the low level Drive pulse P2, high-level drive pulse P3, and low-level drive pulse P4 are output from the motor driver 25b to the motor 23.
[0023]
Therefore, as shown in FIGS. 3A and 3B, when the data AD1 to AD6 for driving the actuator are sequentially sent from the host 2, the drive pulse is generated at time t1 corresponding to each data AD1 to AD6. P1 is high level, drive pulse P2 is high level at time t2, drive pulse P3 is high level at time t3, drive pulse P4 is high at time t4, drive pulse P1 is high level at time t5, and drive pulse P2 is high at time t6 Become a level. For this reason, the motor 23 supplied with these drive pulses P1 to P4 rotates in the one-phase excitation mode. As a result, a desired image can be output by feeding a head or printing paper by a desired amount at a desired timing and outputting ink droplets from the head at that position.
[0024]
As shown in FIG. 1, the host 2 that transmits such data AD to the printer 3 includes an operating system (OS) 12, an application 11 that processes image data 14 and text data, and the application 11. It has a printer driver 35 that prints designated images and characters. The printer driver 35 receives data AD including bit data (drive data) 55 corresponding to the drive pulses P1 to P4 of the pulse motors 23 and 24 and data (timing data) TD indicating the timing of outputting the drive pulses P1 to P4. Further, the head output data φ1 corresponding to the bitmap to be generated and printed by the print head 22 is generated. The data generated by the printer driver 35 is output from the interface 13 managed by the OS 12 with the addresses of the actuators of the printer 3, that is, the pulse motor 23, the pulse motor 24, and the print head 22. In this example, the addresses of the drive circuit 25, the drive circuit 26, and the ink discharge circuit 31 are given as those addresses.
[0025]
The printer driver 35 of this example has a function 36 for converting the image data into head output data φ1 and a command to print an image instructed to be output by the application 11 with the printer 3, and the head output data. Of the φ1 and the command, a generation function 37 that generates a command for operating the pulse motors 23 and 24 of the printer 3 as bit data 55 corresponding to the drive pulses P1 to P4, and the drive data 55 and the head output data φ1 are registered in the register 25a and 26a and the address of the circuit 31 are added, and a function 38 is provided that enables transmission to the interface 13 for transmission.
[0026]
The generation function 37 of the present example includes a function 41 for extracting a command for generating data related to the pulse motor 23 and the pulse motor 24 to be converted into the drive data 55 from the data input from the conversion function 36, and the command Is decoded (interpreted) to generate drive data (bit data) 55 corresponding to the drive pulses P1 to P4 of the pulse motor 23 on a one-to-one basis, and to the drive pulses P1 to P4 of the pulse motor 24 A second function 43 for generating bit data 55 corresponding to one-to-one is provided. Therefore, with these first and second functions 42 and 43, functions equivalent to those of a motor control circuit that conventionally generates drive pulses on the printer side are realized by software.
[0027]
The generation function 37 of this example further includes timing data TD indicating the timing at which the driving circuits 25 and 26 in the printer 3 output the driving pulses P1 to P4 according to the bit data 55 from the motor drivers 25b and 26b to the motors 23 and 24. Is provided with a timing analysis function 44. The drive circuit 25 and the drive circuit 26 can be controlled independently by the timing data TD generated by the function 44.
[0028]
When control is performed by sending data AD for driving the actuator from the host 2 to the printer 3, the host 2, that is, the printer driver 35 receives information on execution of the data AD from the printer 3, and sends the next data AD to send the motor. 23, the motor 24 and the head 22 can be controlled at appropriate timing. However, if the speed at which the host 2 receives the information from the printer 3 becomes a critical path with respect to the speed at which the actuator operates, the processing speed of the printer 3 decreases. On the other hand, by sending the data AD with the timing data TD added, the drive circuit 25, the drive circuit 26 and the print head 22 perform the processing of the first data AD according to the timing data TD of the respective data AD. Is possible. Therefore, it is possible to perform coordinated control based on the timing data TD only by operating the driving circuit 25, the driving circuit 26, and the print head 22 independently according to the timing data TD. Since there is no need to communicate with the printer driver 35, the processing speed of the printer 3 does not decrease due to the communication speed between the host 2 and the printer 3.
[0029]
FIG. 4 is a flowchart showing processing performed by the printer driver 35. First, in step 61, if the data converted and output by the converting function 36 is a command for controlling the pulse motors 23 and 24 in order to print an image or character instructed by the application 11, the first in step 62. The data 42 corresponding to the drive pulses P1 to P4 is generated by the second function 43 and the second function 43. Data corresponding to the generated drive pulse P is output as drive data 55 in the state of bit data in step 63. Before and after the drive data 55 is generated, timing data TD is generated at step 64. In step 65, the timing data TD and the data AD made up of a group of bit data 55 are combined, and from the interface 13 together with the addresses of the actuators to be driven, that is, the circuits 25 and 26 for driving the motors 23 and 24. It is output to the printer 3. On the other hand, head output data φ1 for ejecting ink droplets from the print head 22 is also output as addressed data.
[0030]
The processing executed on the host 2 by the printer driver 35 can be provided as a program having instructions for executing the above steps. This program can be provided by being recorded on a recording medium such as a CD-ROM that can be read by a computer serving as the host 2, or distributed via a computer network such as the Internet. Then, by installing in the host 2, the above-described conventional printer-side functions can be realized in the host 2.
[0031]
When the data packet 59 including the data AD composed of the bit data 55 transmitted from the host 2 is acquired by the printer 3, it is distributed to the drive circuit 25 or 26 according to the address of the header H.
[0032]
As described above, in the system 1 including the host 2 and the printer 3 in this example, the bit data 55 corresponding to the drive pulses P 1 to P 4 of the pulse motors 23 and 24 is generated and transmitted to the printer 3. That is, the process of interpreting commands and generating the drive pulses P1 to P4 of the pulse motors 23 and 24 conventionally performed by the printer is performed by the printer driver 35 driven by the host 2. For this reason, it is not necessary to interpret the commands of the actuator, in this example, the pulse motors 23 and 24 on the printer 3 side, and the data AD consisting of the bit data 55 transmitted from the host 2 is substantially converted to the pulse motor 23 and These pulse motors 23 and 24 can be moved by supplying them to 24. Therefore, the printer 3 does not require hardware or firmware that interprets commands from the host 2 and generates the drive pulses P1 to P4 of the respective pulse motors, and has a very simple configuration.
[0033]
Also, the pulse driver 23 and 24 can be controlled by the printer driver 35 of the host 2 in steps or clock units, and with extremely universal data corresponding to the drive pulses P1 to P4. Therefore, without realizing a complicated movement in each of the pulse motors 23 and 24, a CPU having a high processing capability on the printer side is not used, the number of commands supplied from the printer driver is not increased, and the command system is not expanded. The pulse motors 23 and 24 can be controlled from the host 2 at high speed in a clock unit and flexibly. This further means that the functions of the printer 3 are not limited to the command system mounted on the control board and the capability of a processor such as a CPU, and the pulse motors 23 and 24 can operate. In other words, it can be controlled in any way by software that runs on the host side, and simply by developing appropriate driver software, processing that satisfies the application specifications without changing the printer itself. Can be done.
[0034]
Furthermore, almost all of the processing for controlling such a printer can be performed using the host CPU's ability to significantly improve performance. Therefore, there is a merit that the processing capability of the printer can be improved as the host-side capability is improved without developing an expensive processor or firmware. Therefore, it is possible to improve the functions of the printer following the progress of the host and application, and the need to replace the printer is reduced.
[0035]
In addition, by transmitting bit data 55 corresponding to drive pulses P1 to P4 that can directly drive the pulse motors 23 and 24 to the printer 3 instead of a command that requires processing to be interpreted on the printer side, the printer side Thus, it is not necessary to perform processing for interpreting the command in order to generate the drive pulse. Therefore, the time required for the processing can be eliminated, and the processing speed of the printer can be increased. On the other hand, sending bit data 55 instead of a command may increase the amount of communication between the host 2 and the printer 3, but it is a low-cost and general-purpose device that can transmit a large amount of data such as USB or IEEE 1394 at high speed. Interface devices are widespread, and it is easy to secure the transmission speed by using them effectively. If the transmission speed of the bit data 55 becomes a bottleneck for controlling the actuators in a coordinated manner, it is possible to send the data AD to the printer 3 in combination with the timing data TD as described above. The present invention is sufficiently effective even for a system having a low transmission rate.
[0036]
The printer driver 35 can use resources of the conventional printer driver 35 by converting application image and text data into data and commands that are output once by the print head 22. On the other hand, it is also possible to output the data corresponding to the drive pulse or the bit data as the drive data by interpreting the image and character data without passing through the command. Therefore, it is possible to omit the process of converting the command into a drive pulse, and therefore, it is possible to provide a printer capable of performing a high-speed print output process including the process on the host side.
[0037]
In addition, although the example in which the drive data corresponding to the drive pulses of the pulse motors 23 and 24 is generated has been described, the drive data corresponding to the drive pulse supplied to the actuator for ejecting ink droplets from the nozzles is also generated by the printer driver 35. The printer can be generated and transmitted to the printer, and as the printer, a printer that is simply combined to the limit that does not require a processor such as a CPU or firmware that generates drive pulses can be realized.
[0038]
Furthermore, in the above description, the present invention has been described by taking a printer including a pulse motor (stepping motor) as an example. However, the present invention is not limited to a pulse motor but can be applied to peripheral devices including an actuator that operates by a driving pulse. Also, instead of outputting the bit data corresponding to the drive pulse on a one-to-one basis, it is possible to output the drive data at the timing of changing the level of the drive pulse, or to send the drive data after being compressed, As in the above example, it is possible to provide a system in which peripheral devices can be flexibly moved from the host side with the simplest configuration by transmitting drive data and bit data corresponding to one-to-one.
[0039]
The present invention as described above can be applied not only to a printer but also to a peripheral device including an actuator that is driven by a driving pulse such as a scanner, a CD-ROM, or a DVD drive device.
[0040]
【The invention's effect】
As described above, in the present invention, drive data corresponding to the drive pulse of the actuator of the peripheral device is generated on the host computer side and can be transmitted to the peripheral device. This eliminates the need for hardware or firmware that interprets commands on the peripheral device side and generates drive pulses, allows the peripheral device to have a simpler configuration, and allows the host device to freely control the peripheral device. . In the present invention, it is possible to provide a peripheral device capable of following the progress of the host computer and improving the function.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a schematic configuration of a printer and a host according to the present invention.
FIG. 2 is a diagram showing a schematic configuration of a drive circuit of each pulse motor in the printer of this example.
FIG. 3 is a diagram for explaining a relationship between a drive pulse output from a drive circuit in the printer of this example and drive data sent from the host of this example to the printer.
FIG. 4 is a flowchart showing a schematic process in a printer driver operating on the host of this example.
[Explanation of symbols]
1 system
2 Host (information processing terminal)
3 Printer
23, 24 Pulse motor
25, 26 Drive circuit
25a, 26a registers
25b, 26b Motor driver
35 Printer Driver
37 Generation function
42 First function
43 Second function
44 Timing analysis function
55-bit data (drive data)

Claims (5)

駆動パルスにより稼動するアクチュエータを有する周辺機器をホストコンピュータ側から制御するプログラムであって、
前記周辺機器は複数の前記アクチュエータを有し、前記複数のアクチュエータの各々のアクチュエータは固有のアドレスを備えており、
当該プログラムは、
前記駆動パルスに対応する駆動データを生成する処理と、
前記駆動データを前記周辺機器宛てに発信する処理とを実行する命令を有し、
前記生成する処理は、前記各々のアクチュエータに対する前記駆動データを生成することと、
前記駆動データと共に前記各々のアクチュエータで前記各々のアクチュエータの前記駆動データを実行するタイミングを示すタイミングデータを生成することとを含み、前記駆動データは前記駆動パルスと1対1に対応し、前記タイミングデータに基づき即座に前記駆動パルスに変換されるビットデータを含み、
前記発信する処理は、前記駆動データと前記タイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、前記各々のアクチュエータのアドレス宛てに発信することを含む、プログラム。
A program for controlling a peripheral device having an actuator operated by a drive pulse from the host computer side,
The peripheral device has a plurality of the actuators, and each actuator of the plurality of actuators has a unique address,
The program is
Processing for generating drive data corresponding to the drive pulse;
Have a command for executing a process of transmitting the driving data to the peripheral device addressed,
The generating process generates the drive data for each of the actuators;
Generating timing data indicating a timing for executing the driving data of each actuator by each of the actuators together with the driving data, the driving data corresponding to the driving pulse on a one-to-one basis, Bit data that is immediately converted to the drive pulse based on the data,
The transmitting process includes transmitting a combination of the drive data and the timing data to the address of each actuator without waiting for information on which the previous process has been executed .
請求項1において、前記各々のアクチュエータはパルスモータまたは用紙にドットを形成する手段であるプログラム。2. The program according to claim 1, wherein each of the actuators is a pulse motor or means for forming dots on a sheet. 請求項1または2において、前記周辺機器は用紙に印刷する手段を有し、前記各々のアクチュエータは、前記印刷する手段のパルスモータまたは用紙にドットを形成する手段であるプログラム。 3. The program according to claim 1, wherein the peripheral device has means for printing on paper, and each of the actuators is a pulse motor of the means for printing or means for forming dots on the paper. 周辺機器に搭載されたアクチュエータを駆動する駆動パルスに対応する駆動データを生成する手段と、
前記駆動データを前記周辺機器宛てに発信する手段とを有する情報処理端末であって、
前記周辺機器は複数の前記アクチュエータを有し、前記複数のアクチュエータの各々のアクチュエータは固有のアドレスを備えており、
前記生成する手段は、前記各々のアクチュエータに対する前記駆動データと、前記駆動データと共に前記各々のアクチュエータで前記各々のアクチュエータの前記駆動データを実行するタイミングを示すタイミングデータとを生成し、前記駆動データは前記駆動パルスと1対1に対応し、前記タイミングデータに基づき即座に前記駆動パルスに変換されるビットデータを含み、
前記発信する手段は、前記駆動データと前記タイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、前記各々のアクチュエータのアドレス宛てに発信することを含む、情報処理端末。
Means for generating drive data corresponding to a drive pulse for driving an actuator mounted on a peripheral device;
An information processing terminal having means for transmitting the drive data to the peripheral device ,
The peripheral device has a plurality of the actuators, and each actuator of the plurality of actuators has a unique address,
The generating means generates the drive data for each actuator, and timing data indicating timing for executing the drive data of each actuator by each actuator together with the drive data. Bit data corresponding to the drive pulse on a one-to-one basis and immediately converted into the drive pulse based on the timing data;
The information transmitting terminal includes transmitting the combination of the drive data and the timing data to the address of each actuator without waiting for the information on which the previous process has been executed .
周辺機器に搭載されたアクチュエータを駆動する駆動パルスに対応する駆動データを生成するステップと、
その駆動データを前記周辺機器宛に発信するステップとを有する周辺機器を制御する方法であって、
前記周辺機器は複数の前記アクチュエータを有し、前記複数のアクチュエータの各々は固有のアドレスを備えており、
前記生成するステップは、前記各々のアクチュエータに対する前記駆動データを生成することと、
前記駆動データと共に前記各々のアクチュエータで前記各々のアクチュエータの前記駆動データを実行するタイミングを示すタイミングデータを生成することとを含み、前記駆動データは前記駆動パルスと1対1に対応し、前記タイミングデータに基づき即座に前記駆動パルスに変換されるビットデータを含み、
前記発信するステップは、前記駆動データと前記タイミングデータとの組み合わせを、前の処理が実行された情報を待たずに、前記各々のアクチュエータのアドレス宛てに発信することを含む、方法。
Generating drive data corresponding to a drive pulse for driving an actuator mounted on a peripheral device;
Transmitting the drive data to the peripheral device, and controlling the peripheral device ,
The peripheral device has a plurality of the actuators, and each of the plurality of actuators has a unique address;
The generating step includes generating the drive data for each of the actuators;
Generating timing data indicating a timing for executing the driving data of each actuator by each of the actuators together with the driving data, the driving data corresponding to the driving pulse on a one-to-one basis, Bit data that is immediately converted to the drive pulse based on the data,
The transmitting step includes transmitting the combination of the drive data and the timing data to the address of each actuator without waiting for information on which a previous process has been executed .
JP2001197596A 2001-06-29 2001-06-29 Method and program for controlling peripheral devices Expired - Fee Related JP4867020B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001197596A JP4867020B2 (en) 2001-06-29 2001-06-29 Method and program for controlling peripheral devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001197596A JP4867020B2 (en) 2001-06-29 2001-06-29 Method and program for controlling peripheral devices

Publications (2)

Publication Number Publication Date
JP2003018888A JP2003018888A (en) 2003-01-17
JP4867020B2 true JP4867020B2 (en) 2012-02-01

Family

ID=19035168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001197596A Expired - Fee Related JP4867020B2 (en) 2001-06-29 2001-06-29 Method and program for controlling peripheral devices

Country Status (1)

Country Link
JP (1) JP4867020B2 (en)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55142000A (en) * 1979-04-24 1980-11-06 Toshiba Corp Pulse motor driving circuit
JPS6087699A (en) * 1983-10-19 1985-05-17 Tokyo Electric Co Ltd Drive controller of stepping motor
JP2621633B2 (en) * 1990-10-17 1997-06-18 日本電気株式会社 Stepping motor control circuit
JPH10127097A (en) * 1996-10-22 1998-05-15 Canon Inc Drive control device and method, image forming device, and storage medium for recording program for motor drive control
JP3658635B2 (en) * 1997-04-07 2005-06-08 カシオ電子工業株式会社 Rotation control device
JPH10295096A (en) * 1997-04-16 1998-11-04 Canon Inc Motor controller, recording device, information processing system, and information processing method
JP2000207228A (en) * 1999-01-18 2000-07-28 Star Micronics Co Ltd Motor controller
JP2000316295A (en) * 1999-04-27 2000-11-14 Canon Inc Serial communication system and image forming device

Also Published As

Publication number Publication date
JP2003018888A (en) 2003-01-17

Similar Documents

Publication Publication Date Title
JP2859499B2 (en) Printing system and item setting method in the system
EP0902357B1 (en) Output method and apparatus
JP2000001015A (en) Image formation apparatus, image formation system, information process apparatus, and their control method
JP4867020B2 (en) Method and program for controlling peripheral devices
JP2007133491A (en) Printing apparatus and method for controlling same
US7359077B2 (en) Printing apparatus, control method therefor, and program
JP3015133B2 (en) Print control apparatus and method
JPH07101109A (en) Printer and controller method therefor
JP3861940B2 (en) Serial printer and printing control method
JPH09290520A (en) Serial printer
JP3110879B2 (en) Printing method and apparatus
JP2003076649A (en) Data processor, print control device, interface selecting method, storage medium, and program
JP2834631B2 (en) Print control apparatus and method
JP2001195206A (en) Printing system and host computer and printer and printing method
JPH09188040A (en) Output device
JPH09188041A (en) Output device
JP2000148424A (en) Network print system, and printer and client device used in same system
JPH09295432A (en) Printer and print controlling method
JP2005190378A (en) Printer
JPH09314928A (en) Printer, printing system and its control method
JP2000235469A (en) Network printer, network, and printing processing method
JP2019022071A (en) Image processing system, image processing method and image processing device, and image forming system
JPH064241A (en) Method and device for printing
JPH0620014A (en) Image forming device and data transfer method to and from the same
JP2000289295A (en) Printer apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101207

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110930

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111024

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141125

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees