JPH10177461A - 印字制御システム及びスキャナ制御システム - Google Patents

印字制御システム及びスキャナ制御システム

Info

Publication number
JPH10177461A
JPH10177461A JP9223597A JP22359797A JPH10177461A JP H10177461 A JPH10177461 A JP H10177461A JP 9223597 A JP9223597 A JP 9223597A JP 22359797 A JP22359797 A JP 22359797A JP H10177461 A JPH10177461 A JP H10177461A
Authority
JP
Japan
Prior art keywords
control
command
printer
data
print
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.)
Granted
Application number
JP9223597A
Other languages
English (en)
Other versions
JP3957825B2 (ja
JPH10177461A5 (ja
Inventor
Koji Fukunaga
耕司 福長
Kiyoshi Katano
清 片野
Makoto Kobayashi
真琴 小林
Jiro Tateyama
二郎 立山
Atsushi Nakamura
敦 中村
Hisatsugu Naito
久嗣 内藤
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP22359797A priority Critical patent/JP3957825B2/ja
Priority to US08/951,108 priority patent/US6559962B1/en
Publication of JPH10177461A publication Critical patent/JPH10177461A/ja
Publication of JPH10177461A5 publication Critical patent/JPH10177461A5/ja
Application granted granted Critical
Publication of JP3957825B2 publication Critical patent/JP3957825B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/028Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers by thermal printers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1803Receiving particular commands
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/181Receiving print data characterized by its formatting, e.g. particular page description languages
    • G06K15/1814Receiving print data characterized by its formatting, e.g. particular page description languages including print-ready data, i.e. data already matched to the printing process

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Facsimiles In General (AREA)

Abstract

(57)【要約】 【課題】 従来、プリンタに内蔵していたイメージデー
タ処理をホストコンピュータで行ない、コストダウンさ
れたプリンタ装置とホストでのプリンタ制御方式とを提
供する。 【解決手段】 プリンタ部には、ホストからの制御コマ
ンドを保持する保持手段、制御コマンドを実行する実行
手段とを有し、ホスト部にはプリンタコマンドを解析す
る解析手段、プリンタコマンドから制御コマンドを作成
する制御コマンド作成手段、制御コマンドをプリンタ部
へ送信する送信手段とを有し、ホストアプリケーション
の印刷指示に従って、プリンタコマンドを制御するコマ
ンドに変換し、プリンタ部へ送信することにより、プリ
ンタを制御する印字制御システム。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、パーソナルコンピ
ュータとプリンタとが接続され、ホストがプリンタを制
御して印字を行うような印字制御システムに関するもの
である。
【0002】
【従来の技術】従来、ホスト(パーソナルコンピュー
タ)とプリンタとはインターフェース(セントロニクス
など)を介して接続され、ホストから送られる印字デー
タ、印字指示をプリンタが順次処理することにより印字
を行っていた。印字データ、印字指示はプリンタ固有の
コントロールコードで、プリンタドライバーによって作
成され、プリンタへと送られる。
【0003】プリンタではホストから送られてくるコン
トロールコードを解析し印字データであれば印字データ
を印字できる分だけ蓄える。印字データのコントロール
コードはラスタ形式をしているものがあり、蓄えられた
印字データに対してイメージ加工処理や変換処理を行い
プリンタに搭載する印字ヘッドで印字可能な形式にイメ
ージデータを再構成し、印字ヘッドにイメージデータを
送ることで印字を行っていた。コントロールコードでは
給・排紙、フィードなどの各種コントロールコードに対
する処理を行っていた。マイクロソフト社のウィンドウ
ズシステムでの印字手順については図31で説明する。
【0004】また、ホスト(パーソナルコンピュータ)
とスキャナとはインターフェース(SCSIなど)を介
して接続され、ホストから送られるスキャンコントロー
ルコードをスキャナが順次処理し、スキャンしたイメー
ジデータをホストへ送信することによりスキャンを行っ
ていた。スキャンコントロールコードはスキャナ固有の
コントロールコードで、スキャナアプリケーションによ
って作成され、スキャナへと送られる。スキャナではホ
ストから送られてくるコントロールコードを解析しスキ
ャン動作とイメージデータの送信とを行っている。スキ
ャンコントロールコードでは給・排紙、フィードなどの
各種コントロールコードに対する処理を行っていた。
【0005】
【発明が解決しようとする課題】しかしながら、従来例
ではホストはアプリケーションからの印字指示により印
刷イメージを作り、印刷イメージからプリンタへと送る
印字データと印字指示のコントロールコードを作成して
いた。また、ホストとプリンタとが完全に独立している
ため、プリンタは印字のためにコントロールコードの解
析処理、イメージの展開処理、イメージの加工処理など
を行うために中央処理装置CPU、処理手順を保持する
ROM、データを蓄えるRAMなどの多くの資源を有し
ていた。また、プリンタに対してホストの性能は飛躍的
に向上しており、従来プリンタで行っていた処理をホス
トで処理する方が有利な状況も起こってきた。
【0006】そこで、本発明の目的は、従来プリンタで
処理していた処理をプリンタよりも高性能なホストで行
うことにより、従来プリンタが内蔵していた資源を簡素
化しコストを低く押さえたプリンタ装置とホストでの印
字制御システムを提供することにある。
【0007】また、従来例ではホストはスキャンのコン
トロールコードを作成し送信しているだけであった。ま
た、ホストとスキャナとが完全に独立しているため、ス
キャナはスキャンのためにコントロールコードの解析処
理、スキャン動作制御、イメージデータの加工処理など
を行うために中央処理装置CPU、処理手順を保持する
ROM、データを蓄えるRAMなどの多くの資源を有し
ていた。また、スキャナに対してホストの性能は飛躍的
に向上しており、従来スキャナで行っていた処理をホス
トで処理する方が有利な状況も起こってきた。
【0008】そこで、本発明の目的は従来スキャナで処
理していた処理をスキャナよりも高性能なホストで行う
ことにより、従来スキャナが内蔵していた資源を簡素化
しコストを低く押さえたスキャナ装置とホストでのスキ
ャナ制御システムを提供することにある。
【0009】また、上述したホストベースプリントシス
テムにおいては、ホストでのプリンタの制御を実現する
ためにマイクロソフト社のウィンドウズ、ウィンドウズ
プリンティングシステムやプリンタドライバーに変更を
加える必要があった。
【0010】そこで、本発明の目的は従来プリンタで処
理していた処理をプリンタよりも高性能なホストで行う
ことにより、従来プリンタが内蔵していた資源を簡素化
しコストを低く押さえたプリンタ装置とホストでのプリ
ンタ制御に関する方法を提供することにある。また、従
来からのプリンタドライバーからのコントロールコード
を入力として利用するため、ウィンドウズ、ウィンドウ
ズプリンディングシステムやプリンタドライバに変更を
加える必要がない印字制御システムを提供することにあ
る。
【0011】また、従来例のようなシステムでは、ホス
トはアプリケーションからの印刷指示により印刷イメー
ジを作り、印刷イメージからプリンタへ送る印字データ
と印字コマンドのコントロールコードを作成する必要が
あった。
【0012】また、プリンタでは印字のためにコマンド
の解析処理、イメージの展開処理、イメージの加工処理
などを行うために中央処理装置CPU、処理手順を保持
するROM、データを蓄えるRAMなどの多くの資源を
有していた。
【0013】また、プリンタに対してホストの性能は飛
躍的に向上しており、従来プリンタで行っていた処理を
ホストで処理する方が有利な状況も起こってきた。
【0014】そこで、本発明の目的は従来プリンタで処
理していた処理をプリンタよりも高性能なホストで行う
ことにより、従来プリンタが内蔵していた資源を簡素化
しコストを低く押さえたプリンタとホストでの、プリン
タ制御(時間管理)システムを提供することにある。
【0015】
【課題を解決するための手段】上記目的を達成するため
に本発明の印字制御システムは、プリンタをホストから
制御する印字制御システムであって、ホスト部にはプリ
ンタドライバーから送られるコントロールコードを解析
するコントロールコード解析手段と、前記コントロール
コードから制御I/Oコマンドを作成する制御I/Oコ
マンド作成手段と、制御I/Oコマンドをプリンタへ送
信する制御I/Oコマンド送信手段と前記制御I/Oコ
マンド送信手段によりプリンタへ送られた制御I/Oコ
マンドの実行を指示する制御I/Oコマンド実行指示手
段とを有し、前記制御I/Oコマンド作成手段で作成さ
れた制御I/Oコマンドと制御I/Oコマンド実行指示
手段を用いてプリンタに印字を実行させることを特徴と
する。
【0016】また、本発明のスキャナ制御システムは、
スキャナをホストから制御するスキャナ制御システムで
あって、ホスト部にはスキャナアプリケーションから送
られるコントロールコードを解析するコントロールコー
ド解析手段と、前記コントロールコードから制御I/O
コマンドを作成する制御I/Oコマンド作成手段と制御
I/Oコマンドをスキャナへ送信する制御I/Oコマン
ド送信手段と前記制御I/Oコマンド送信手段によりス
キャナへ送られた制御I/Oコマンドの実行を指示する
制御I/Oコマンド実行指示手段とを有し、前記制御I
/Oコマンド作成手段で作成された制御I/Oコマンド
と制御I/Oコマンド実行指示手段を用いてスキャナに
スキャンを実行させることを特徴とする。
【0017】また、本発明の印字制御システムは、プリ
ンタをホストから制御する印字制御システムであって、
コントロールコードを解析するコントロールコード解析
手段と、前記コントロールコードから制御I/Oコマン
ドを作成する制御I/Oコマンド作成手段と、前記制御
I/Oコマンド作成手段により作成された制御I/Oコ
マンドをプリンタへ送信する制御I/Oコマンド送信手
段と前記制御I/Oコマンド送信手段によりプリンタへ
送られた制御I/Oコマンドの実行を指示する制御I/
Oコマンド実行指示手段とプリンタドライバーから送ら
れるコントロールコードを前記コントロールコード解析
手段に転送するコントロールコード転送手段とを有する
ことを特徴とする。
【0018】また、本発明の印字制御システムは、プリ
ンタをホストから制御する印字制御システムであって、
プリンタを制御する印字制御部にはホストとの間でコマ
ンドやデータのやり取りを行うインターフェース手段
と、前記インターフェース手段によりホストから送られ
る制御I/Oコマンドを保持する制御I/Oコマンド保
持手段と、前記制御I/Oコマンド保持手段に保持され
た制御I/Oコマンドを読み出す制御I/Oコマンド制
御手段と、読み出された制御I/Oコマンドによりプリ
ンタを制御する制御I/Oコマンド実行手段とを有し、
ホストで作成した制御I/Oコマンドを用いて印字制御
部がプリンタの制御を行うことを特徴とする。
【0019】また、本発明の印字制御システムは、プリ
ンタをホストから制御する印字制御システムのプリンタ
を制御する印字制御部には、ホストとの間でコマンドや
データのやり取りを行うインターフェース手段と、前記
インターフェース手段によりホストから送られる制御I
/Oコマンドを保持する制御I/Oコマンド保持手段
と、前記制御I/Oコマンド保持手段に保持された制御
I/Oコマンドを読み出す制御I/Oコマンド制御手段
と、読み出されたI/O制御I/Oコマンドによりプリ
ンタを制御する制御I/Oコマンド実行手段を有し、ホ
ストで作成した制御I/Oコマンドを用いて印字制御部
がプリンタの制御を行うことを特徴とする印字制御シス
テムシステムにおいて、前記コマンド制御手段より送ら
れてくる制御I/Oコマンドの構成を、制御I/Oコマ
ンド実行手段におけるレジスタアドレスと当レジスタへ
の格納データの形式にすることを特徴とする。
【0020】
【発明の実施の形態】
(実施の形態1)図1は本発明の実施の形態であるホス
ト部とプリンタ部が一体となった携帯型パーソナルコン
ピュータ(以下パソコンと略す)を示す斜視図である。
【0021】パソコン1は、装置本体101、キーボー
ド102、表示部103、及びプリンタユニット2の各
部によって構成されている。
【0022】上カバー104は、装置本体101に対し
て、その後縁の両端に設けられたヒンジ104aを介し
て回動可能に取りつけられている。
【0023】これにより本装置の使用時には、上カバー
104は、その回動によって表示部103が見やすくな
る位置まで開けられ、また不使用時には閉じられていて
カバーとして機能することができる。
【0024】また、デバイスの一例として表示部103
の表示素子としては、表示部を薄く構成できることから
液晶表示素子(LCD)を用いている。
【0025】プリンタユニット2は、操作者が開閉可能
な開口部を持ち、記録ヘッドの交換が可能なようになっ
ている。
【0026】記録紙は図示されていないが、キーボード
102の下部に設けられた給紙口101aから挿入さ
れ、装置本体101内を貫通する搬送路内を搬送されて
装置後方の排紙口から排出される。
【0027】キーボード102は、装置本体101の両
側に設けられたヒンジ102aを介して回動可能に取り
つけられている。
【0028】キーボード102の下部に記録紙の搬送路
が設けられているため、記録紙をセットした状態でもキ
ーボード102や表示部103の操作が可能である。
【0029】図2はパソコンの内部構成を示す概略ブロ
ック図であり、本発明の実施の形態でのホストコンピュ
ータ部(以下ホスト部と略す)はPC/AT互換機と同
等のシステムで構成されている。
【0030】まず、ホスト部で主制御をつかさどってい
るのが中央処理装置(CPU)であり、その基本的な制
御を指示するのがBIOS−ROMである。
【0031】数値演算プロセッサ(FPU)はCPU−
busに接続され、浮動小数点演算や対数計算などの演
算命令を拡張するもので有る。
【0032】フロッピーディスクドライブ(FDD)や
ハードディスクドライブ(HDD)からフロッピーディ
スクコントローラ(FDC)やハードディスクコントロ
ーラ(HDC)を経由してアプリケーションプログラム
やデータファイルを読み出し、システムメモリ(SYS
TEM RAM)を利用してアプリケーションプログラ
ムの実行を行なう。
【0033】この時の画面の表示は、ビデオコントロー
ラ(VGA)と表示メモリ(VRAM)により液晶表示
器(LCD)にキャラクタやグラフィック等の表示を行
ない、キーボード(KB)からのキー入力は、キーボー
ドコントローラ(KBC)を経由して取り込まれる。
【0034】リアルタイムクロック(RTC)は、現在
時刻を示すタイマである。
【0035】DMAコントローラ(DMAC)は、メモ
リ−メモリ間、メモリ−I/O間において、CPUの介
在なしでデータ転送を行なう。
【0036】割り込みコントローラ(IRQC)は、各
I/Oからの割り込みを受け付け、優先順位に従って処
理を行なう。
【0037】システムタイマ(TIMER)は、数チャ
ンネルのフリーランニングタイマを持ち、種々の時間管
理を行なう。
【0038】その他に外部コネクタにつながるポートブ
ロックとして、RS−232C仕様のシリアルポート
(SIO)、セントロニクス仕様のパラレルポート(P
IO)、ISA仕様の拡張ポート(EIO)があり、そ
れぞれSI/Fコネクタ、PI/Fコネクタ、EI/F
コネクタにつながる。
【0039】またユーザに対して動作状況を伝えるLE
D出力ポートや、操作スイッチ入力ポートがつながる、
PANELもある。
【0040】本発明の実施の形態におけるプリンタ部
は、ホスト部に対してISA−busで直接つながれた
形態になっていて、ISA−busのI/Oレジスタを
介してデータのやり取りを行うことができる。
【0041】図3に本発明の実施の形態におけるホスト
部RAMのメモリマップの配置を示す。
【0042】RAMは標準領域として00000H〜B
FFFFHの640KBと、拡張領域として10000
0H〜FDFFFFHの15MBがあり、RAMはこれ
らの領域に配置されるようにメモリマッピングされる。
【0043】RAMの標準領域の先頭部分00000H
〜003FFHには、割り込み用のベクタを保存する領
域が有り、この中に割り込みに対する各処理のエントリ
ーアドレスが保存される。
【0044】ビデオRAM領域、及びビデオBIOS領
域は、ビデオコントローラの内部に配置され、ビデオB
IOS領域にはビデオ制御のためのプログラムが保存さ
れ、ビデオRAM領域にはビデオ表示データが保存され
る。
【0045】拡張ボードROM領域はC8000H〜D
FFFFHまでの領域に配置され、拡張ポートに繋がる
デバイスにより使用される。
【0046】システムBIOS領域はF0000H〜F
FFFFHに配置され、各種I/Oの処理を行うBIO
Sプログラムを保持している。
【0047】図4に本発明の実施の形態におけるホスト
部のI/Oアドレスマップを示す。
【0048】ここで示したI/Oアドレスは、ハードウ
エアで設定されている各デバイスのI/Oアドレスのレ
ジスタを介して、データのやり取り(READ・WRI
TE)をホストと各デバイスの間で行うものであるが、
特にプリンタ部に関連する部分について説明する。
【0049】パラレルポート1〜3(PIO/IO)は
ホスト部からPI/Fに繋がった外部デバイスに対して
汎用のパラレルデータを送出するためのレジスタであ
る。
【0050】図20に従来のプリンタ制御部のシステム
構成を示す。
【0051】I/Fコントローラは、ホストのパラレル
ポートに対してケーブルを介して繋がり、ホストから送
出される印字動作を行うためのコントロールコードを受
け取るブロックである。
【0052】P−CPUは、プリンタ制御部の中で主制
御を司るCPUであり、I/Fコントローラからのコン
トロールコードの取り込み処理と、プリンタの印字動作
を行うための処理を、時間配分しながら制御を行う。
【0053】P−ROMは、P−CPUの動作プログラ
ムの格納されたROMである。
【0054】P−PAMは、P−CPUが動作プログラ
ムの実行に際してワークメモリとして使ったり、I/F
コントローラから送られてきたコントロールコードを一
時保管する受信メモリとして使ったり、コントロールコ
ードを実際の記録ヘッドに転送するデータの形態に変換
したイメージデータを一時保管する印字メモリとして使
ったりするRAMである。
【0055】プリンタI/0コントローラは、プリンタ
ユニットを動作させるための制御ブロックで、P−CP
UがPRT−busに対してプリンタI/Oコントロー
ラに割り当てられた任意アドレスのレジスタに対するア
クセス処理を行うことにより、プリンタユニットのキャ
リアモータやフィードモータの相切り替えや、印字ヘッ
ドに対するイメージデータの転送などを行うブロックで
ある。
【0056】すなわち、従来のプリンタ制御部による印
字処理は、ホストから送られてくる印刷のためのコント
ロールコードをP−CPUが遂次解釈しながら、キャリ
アを水平方向に走査して印字ヘッドに対してイメージデ
ータを転送し印字を行っていた。
【0057】また、従来のプリンタ制御部による画像読
み取り処理は、プリンタユニットのキャリア上に印字ヘ
ッドの代わりに画像読み取り用のスキャナヘッドが載っ
た状態で、ホストからのスキャン実行を指示するコント
ロールコードを受けると、キャリアを走査しながらスキ
ャナヘッドで画像データを読み取り、パラレルインター
フェイスのニブルモード等を利用してホストに画像デー
タを遂次転送していた。
【0058】本発明の実施の形態で用いているプリンタ
制御部は、汎用のパラレルポートを用いずにプリンタ制
御部の専用ポート(PRT/IO)を用いて印字動作を
行うシステムとなっている。
【0059】PRT/IOのアドレス設定等を行うのが
100H〜107Hのセットアップレジスタ(SET/
IO)でPRT/IOを構成するスーパーバイザコマン
ドレジスタ(SVA/IO・SVD/IO)と制御I/
Oコマンドレジスタ(BAT/IO)のベースアドレス
とポートイネーブルの設定を行うものである。
【0060】図5はセットアップレジスタ(SET/I
O)の構成を示す図である。
【0061】0102番地のセットアップレジスタ2
は、PRT/IOのイネーブルビットがビット0に設け
られ、イネーブルビットが“1”の時にのみホスト部か
らプリンタポートへのアクセスを可能としている。
【0062】0103〜0104番地のセットアップレ
ジスタ3・4は、PRT・IOのベースアドレスを設定
するレジスタで、設定されたアドレスから連続した8バ
イトをホスト部とプリンタ部の間のデータのやり取りを
ポートに設定するレジスタである。
【0063】ベースアドレスは0000H〜03F8H
までの範囲内において、8バイト単位で任意に設定する
ことができる。
【0064】図6はプリンタ部ポート(PRT・IO)
の構成を示す図である。
【0065】プリンタ部ポートの構成は、セットアップ
レジスタ(SET/IO)で設定されたベースアドレス
から連続した8バイトのうち、最初の1バイト目がスー
パーバイザコマンド・アドレスレジスタ(SVA/I
O)、2バイト目がスーパーバイザコマンド・データレ
ジスタ(SVD/IO)でこれらは8ビットアクセスで
あり、3〜4バイト目が制御I/Oコマンド・データレ
ジスタ(BAT/IO)でこれは16ビットアクセス専
用のレジスタとなる。
【0066】スーパーバイザコマンドはホストからプリ
ンタ制御部のPRT−busに対して直後アクセスを行
うことができるレジスタであり、直接制御I/Oコマン
ドとも呼ぶ。
【0067】SVA/IOはPRT−busへのアクセ
スアドレスを設定するレジスタで、PA〔7:0〕の8
ビットを任意に設定するスーパーバイザコマンド・アド
レスレジスタである。
【0068】SVD/IOはPRT−busへのデータ
入出力を行うレジスタで、PD〔7:0〕の8ビットを
使って操作するスーパーバイザコマンド・データレジス
タである。
【0069】BAT/IOはMEM−busへのデータ
入出力を行うレジスタで、MD〔15:0〕の16ビッ
トでアクセスする制御I/Oコマンド・データレジスタ
である。
【0070】図7は本発明の実施の形態におけるプリン
タ制御部の内部構成を示すブロック図である。
【0071】プリンタ部の主要ロジックは、ホスト部の
ISA−busからステートマシンコントローラ(ST
ATE MACHINE CONTROLLER)を経
由して、プリンタバス(PRT−bus)に繋がるプリ
ンタI/Oコントローラ(PRINTER I/O C
ONTROLLER)と、メモリバス(MEM−bu
s)に繋がるプリンタメモリ(PRINTER MEM
ORY)によって構成されている。
【0072】プリンタユニットに繋がるプリンタI/O
コントローラの入力側には、プリンタユニットからのセ
ンサ情報を読み取ったプリンタステータス信号(Pri
nter Status)がとりこまれ、その情報をも
とに出力側のモータコントロール信号(Motor C
ont.)やヘッドコントロール信号(Head Co
nt.)によってプリンタユニット(PRINTER
UNIT)のモータやインクヘットを駆動し印字動作を
行う。
【0073】またプリンタユニットのキャリアにスキャ
ナヘッドの載ったシステムの場合は、スキャナヘッドで
読み出した画像データをプリンタI/Oコントローラを
経由してプリンタメモリに書き込むことでスキャン動作
を行う。
【0074】ここで、図20に示した従来のプリンタ制
御部と構成を対比させてみると、本発明の実施の形態で
はプリンタ側にCPUとROMが存在しない点が大きな
特徴であるといえる。
【0075】図8はステートマシンコントローラの内部
構成を示すブロック図である。
【0076】ステートマシンコントローラはホスト部の
ISA−busを経由してプリンタユニットの動作をつ
かさどるための制御ブロックであり、セットアップレジ
スタで設定したプリンタ部ポートの各々のレジスタによ
ってアクセスを行うことができる。
【0077】スーパーバイザコマンドレジスタは、ホス
ト部からプリンタI/OコントローラへのI/Oアクセ
スをPRT−busを介して行ったり、制御I/Oコマ
ンドの起動・停止コマンドの発行を行うためのレジスタ
で、スーパーバイザコマンド・アドレスレジスタ(SV
A/IO)で設定したPRT−busのアドレス(P
A)に対してスーパーバイザコマンド・データレジスタ
(SVD/IO)を使ってデータ(PD)の読み書きを
行うことを行う。
【0078】制御I/Oコマンド・データレジスタ(B
AT/IO)は、ホスト部からプリンタ部メモリをME
M−busを介して直接アクセスするための機能であ
り、「アドレス+データ」のセットでデータ書き込み動
作を行うとメモリアドレスカウンタのライトアドレスに
対応したプリンタ部メモリのアドレス(MA)に2バイ
トのデータ(MD)が書き込まれ、書き込まれた後には
ライトアドレスが毎回+2インクリメントされる。
【0079】制御I/Oコマンド・データレジスタを使
ったデータの読み出し動作も同様で、リードアドレスに
対応したプリンタ部メモリのデータが2バイト読み出さ
れ、読み出し動作後には毎回リードアドレスが+2イン
クリメントされる。
【0080】制御I/Oコマンド・データレジスタによ
ってメモリに書き込まれたデータは制御I/Oコマンド
を実行するために使われるデータであり、スーパーバイ
ザコマンドレジスタによる制御I/Oコマンドの起動コ
マンドとしてBP−startに“1”を書き込む事に
より、プリンタ部メモリから制御I/Oアドレスカウン
タのリードアドレスで示されたデータを2バイトずつ読
み出し、読み出したデータの下位バイトがアドレス・上
位バイトがデータを表しているので、PRT−busに
読み出したアドレスとデータを出力してプリンタI/O
コントローラのレジスタへのデータライトアクセス動作
を行うことで制御I/Oコマンドの実行を行う。
【0081】この制御I/Oコマンドの実行により読み
出されたリードアドレスは+2ずつ毎回インクリメント
され、制御I/Oコマンドの停止コマンド(Bp−en
d)が発行されてBP−startが“0”になるま
で、制御I/Oコマンド実行動作が繰り返される。
【0082】リフレッシュコントロールは、D−RAM
のリフレッシュ動作をつかさどる制御ブロックで、8m
sの間に512回のリフレッシュアクセスを行うように
なっていて、その時のアドレスを毎回インクリメントさ
せるのがリフレッシュアドレスカウンタである。
【0083】メモリアドレスコントロールは、プリンタ
部メモリに対して各アクセス要求に優先順位をつけて処
理を行うブロックで、制御I/Oコマンドの実行が第一
優先・リフレッシュが第二優先・ホスト部からのメモリ
アクセスが第三優先となっている。
【0084】これは制御I/Oコマンドの実行時間が変
動するのを防ぐための優先順序となっている。
【0085】図9は、プリンタ部でスーパーバイザコマ
ンドや制御I/Oコマンドを実行する際に必要となるス
テートマシンコントローラ内のレジスタのアドレスマッ
プである。
【0086】これら00番地から1F番地までのレジス
タにおいて、制御I/Oコマンドの実行に必要となるス
ーパーバイザコマンドでのみで使用するレジスタとして
00〜0F番地・18〜1A番地と、制御I/Oコマン
ド上でのみ使用するレジスタの10〜15番地・1C〜
1E番地がある。
【0087】また20番地以降についてはプリンタI/
Oコントローラに対してスーパーバイザコマンドや制御
I/Oコマンドによるアクセスを行うレジスタであるが
詳しくは後述する。
【0088】00番地から1F番地までの各レジスタの
機能について個々に説明すると、00番地は制御I/O
コマンドの実行開始を指示する制御I/Oコマンドコン
トロールレジスタ(BP−start)であり、スーパ
ーバイザコマンドのライトアクセスにより実行される。
【0089】このレジスタは、制御I/Oコマンドが実
行中は常に“1”になっているので、“0”であるかど
うかをスーパーバイザコマンドにより読み出して確認す
ることで、ホスト側で制御I/Oコマンドの実行が完了
したことを検出するのに使うことも可能である。
【0090】01番地はシステム内のレジスタを全てリ
セットするリセットトリガ(CRES)であり、スーパ
ーバイザコマンドのライトアクセスにより実行される。
【0091】08〜0A番地はホストからプリンタメモ
リの読み出しアドレス(MRA)を設定するレジスタで
あり、スーパーバイザコマンドにより設定を行いホスト
からのメモリデータの読み出しにより+2インクリメイ
ントされる。
【0092】0C〜0E番地はホストからのプリンタメ
モリへの書き込みアドレス(MWA)を設定するレジス
タであり、スーパーバイザコマンドにより設定を行いホ
ストからのメモリデータの書き込みにより+2インクリ
メントされる。
【0093】10番地は制御I/Oコマンドの実行停止
を指示するコマンドエンドトリガ(BP−end)であ
り、制御I/Oコマンドにより実行される。
【0094】12番地は制御I/Oコマンドによりレジ
スタデータをメモリに書き込む動作を行うためのレジス
タライトトリガ(REGWR)であり、制御I/Oコマ
ンドにより実行される。
【0095】13番地は制御I/Oコマンドによりレジ
スタデータをメモリに書き込む際のレジスタアドレス
(RWA)を設定するレジスタであり、制御I/Oコマ
ンドにより実行される。
【0096】14番地はウエイト処理を行うタイマレジ
スタの下位バイト(WAITL)を設定するレジスタで
あり、制御I/Oコマンドの実行において0.5μs単
位でウエイトを挿入する際に使用するレジスタで、0.
5μs(01H)から127.5μs(FFH)まで設
定することができる。
【0097】15番地はウエイト処理を行うタイマレジ
スタの上位バイト(WAITH)を設定するレジスタで
あり、制御I/Oコマンドの実行において128μs単
位でウエイトを挿入する際に使用するレジスタで、12
8μs(01H)から32640μs(FFH)まで設
定することができる。
【0098】18〜1A番地は制御I/Oコマンドのプ
リンタメモリからの実行読み出しアドレス(BRA)を
設定するレジスタであり、制御I/Oコマンドの実行開
始アドレスをスーパーバイザコマンドで設定した後に、
制御I/Oコマンドの実行に伴ってメモリデータの読み
出しごとに+2インクリメントされる。
【0099】1C−1E番地はレジスタデータのプリン
タメモリへの書き込みアドレス(BWA)を設定するレ
ジスタであり、13番地のレジスタライトトリガによる
レジスタデータのメモリへの書き込み動作によって+2
インクリメントされる。
【0100】図10は制御I/Oコマンドの動作を示す
タイミングチャートである。
【0101】制御I/Oコマンドの実行サイクルはプロ
グラムカウンタの基本クロック(CLKPRG)に同期
していて決められた時間間隔で実行されるが、本発明の
実施の形態では500ns単位でひとつの制御I/Oコ
マンドが実行される様になっている。
【0102】始めに一連の制御I/Oコマンドがプリン
タメモリに書き込まれた状態において、起動コマンドと
してスーパーバイザコマンドでBP−startに
“1”が書き込まれるとCLKPRGが動作を開始す
る。
【0103】1クロック目(BRA:#00)は、ME
M−busから読み出した制御I/Oコマンドのアドレ
スが通常のプリンタI/Oコントローラへアクセス(2
0番地以降)の場合で、読み出したアドレスに対してデ
ータをPRT−busに書き込む処理を行い、CLKP
RGの立ち下がりに同期して制御I/Oコマンドのリー
ドアドレスカウンタ(BRA)が+2インクリメントさ
れる。
【0104】2クロック目(BRA:#02)は、ME
M−busから読み出した制御I/Oコマンドのアドレ
スとデータがPRT−busへのアクションではなくメ
モリ書き込み処理を行うレジスタライトコマンド(12
番地)であった場合で、制御I/Oコマンドアドレスカ
ウンタのレジスタライトアドレスに対応したメモリアド
レス(MRA)に所望のレジスタのデータを書き込み、
その後CLKPRGの立ち下がりに同期して制御I/O
コマンドのリードアドレスカウンタ(BRA)が+2イ
ンクリメントされる。
【0105】3クロック目(BRA:#04)は、ME
M−busから読み出した制御I/Oコマンドがコマン
ドエンドトリガ(BP〜end:10番地)であった場
合で、PRT〜busの10番地に書き込む処理でBP
−endが発行されたことをステータスコントローラが
検知し、次のCLKPRGの立ち下がりのタイミングで
BP−startを“0”にセットしてCLKPRGク
ロックを停止させ、制御I/Oコマンドのリードアドレ
スカウンタを+2インクリメントして制御I/Oコマン
ドの動作実行を完了する。
【0106】図21は、制御I/Oコマンドの中のウエ
イトコマンドの動作を示すタイミングチャートである。
【0107】1クロック目(BRA:#00)は、ME
M−busから読み出した制御I/Oコマンドがウエイ
トコマンドである14番地に01Hを書き込むコマンド
であった場合で、PRT−busの14番地に01Hが
書き込まれたところで、CLKPRGの1クロック分の
ウエイトがかかり、その後500ns経過後にCLKP
RGの立ち下がりに同期して制御I/Oコマンドのリー
ドアドレスカウンタ(BRA)が+2インクリメントさ
れる。
【0108】ウエイト後の2クロック目(BRA:#0
2)は、MEM−busから読み出した制御I/Oコマ
ンドがコマンドエンドトリガ(BP−end:10番
地)であった場合で、PRT−busの10番地にデー
タを書き込む処理でBP−endが発行されたことをス
テータスコントローラが検知し、次のCLKPRGの立
ち下がりのタイミングでBP−startを“0”にセ
ットしてCLKPRGクロックを停止させ、制御I/O
コマンドのリードアドレスカウンタを+2インクリメン
トして制御I/Oコマンドの動作実行を完了する。
【0109】(プリンタユニットの構成)図11にプリ
ンタユニットの外形図、図12に本プリンタのアクチュ
エータと、そのドライバ回路の構成を示す。
【0110】図11中1はプリンタユニット本体を表
す。本プリンタユニットのキャリッジ2には脱着可能な
印字記録ヘッドユニット3と、印字記録ヘッドユニット
3と同形状の画像取り込み用スキャナヘッドユニット4
が装着可能になっている。印字記録ヘッドユニットは吐
出口128ドットのモノクロ印字ヘッドユニットと、吐
出口136ドットのカラー印字ヘッドユニットの2種類
が装着可能である。
【0111】図12で示すように本プリンタは大別して
記録ヘッド121とその駆動系122、キャリッジ12
3とその駆動系124、紙送り機構125とその駆動系
126、各種センサー127により構成される。さらに
これら駆動系を制御し、プリンタ動作を司るプリンタI
OコントローラIC128が設けられている。さらに電
源回路129、ユーサーにステータスを知らしめるLE
D129、ユーザーによる制御が可能であるスイッチ1
210が設けられている。
【0112】図13に記録ヘッドおよびヘッドドライバ
回路の構成を示す。なお本実施例では印字ヘッドユニッ
トとしてカラー印字ヘッドユニットの説明を行うが、モ
ノクロ印字ヘッドユニットの動作原理も基本的には同様
である。
【0113】ここで本例では吐出ユイニットは136個
の吐出口を有するものとし、#1〜#136は吐出ユニ
ットに設けられた吐出口の位置に対応した番号を示すも
のとする。
【0114】R1〜R136はそれぞれ#1〜#136
の吐出口に対応して設けられた吐出エネルギー発生素子
としての発熱抵抗体である。発熱抵抗体R1〜R136
は16個を1単位としたブロックに分割され、プリンタ
IOコントローラICから出力される4ビットのイネー
ブル信号EENB、BENB1〜3(以下ブロックイネ
ーブル信号)をデコードすることにより生成される各ブ
ロックのコモンイネーブル信号により、通電経路のオン
・オフが制御される。
【0115】また、各発熱抵抗体にはプリンタIOコン
トローラICから本記録ヘッドに信号線HDATAを介
し、転送クロックHCLKに同期してシリアル転送さ
れ、シリアル・パラレル変換後ヘッド内のデータラッチ
にて所定のタイミングでラッチされる吐出データに応じ
て、データに対応した位置の抵抗体の通電経路をオン・
オフ制御するセグメントイネーブル信号が接続されてい
る。発熱抵抗体はブロックイネーブル信号とセグメント
イネーブル信号の両方がイネーブル状態になっている場
合に通電経路がオン、すなわち発熱状態となる。
【0116】最後に、選択された抵抗体を発熱するパル
スをタイミング制御するための制御信号HENB(ヒー
トイネーブル)が各発熱抵抗体に接続されている。これ
によって定められたヒートパルスに従って発熱抵抗体R
1〜R136の通電、発熱が行われる。
【0117】図14は上記構成によるヘッド駆動のタイ
ミングチャートを示す。ヘッド走査方向上のある位置に
おいてブロックイネーブル信号の入力に応じてコモンイ
ネーブル信号が順次オンされる。そのオンにより一つの
ブロックが選択されて通電状態になるので選択されたブ
ロック内において転送された画像データに応じてセグメ
ント信号をそれぞれイネーブル・ディスエーブル状態に
することにより選択された発熱抵抗体がヒートイネーブ
ル信号で与えられたパルスタイミングで通電され、発熱
に応じてインクが吐出されドット記録が行われる。
【0118】図15はヘッドを搭載するキャリッジの走
査動作を行うキャリッジモーター並びにモータードライ
バの構成図である。また図16はその駆動タイミングを
示す。
【0119】本例においてはキャリッジモータとしてコ
イルφ1〜φ4を有するステッピングモータを用い、駆
動信号CMa、CMa_、CMb、CMb_と電流制御
信号PWMA、PWMBを備えたモータードライバによ
り駆動している。また、紙送り機能を構成するラインフ
ィードモータについても同様な構成で駆動信号LFa、
LFa_LFb、LFb_により駆動される。
【0120】本例ではセンサー機能として、キャリッジ
が走査範囲左端の所定場所に位置したことを検出するホ
ームポジションセンサ、記録対象物である紙を検出する
ペーパーセンサが設けられており、これらセンサ情報に
基づいたプリンタ制御が行われる。またシステムの温度
情報、モーターの駆動電圧が後述するA/D変換機能を
介し、検出可能となっている。
【0121】本プリンタにはユーザーによって操作可能
であるプリントストップ・再スタートスイッチと一回の
押下により定められたライン数の紙送りを実行するライ
ンフィードスイッチが設けられている。
【0122】本プリンタの電源部は、プリンタの各アク
チュエータへの電源供給を行う。プリンタIOコントロ
ーラICの制御により、モーター駆動用電源のほかに、
ヘッド駆動用のロジック電源とインク吐出用発熱抵抗体
の駆動電圧(以下ヘッドドライブ電源)のオン・オフ制
御を行う。
【0123】(プリンタIOコントローラICの構成)
プリンタIOコントローラICのブロック図を図17に
示す。本ICは与えられた制御制御I/Oコマンドに基
づいたプリンタ制御を行う。本コントローラICは図中
に示す様に、モーター制御ブロック171、記録ヘッド
制御ブロック172、データ転送ブロック173、セン
サステータスブロック174、パワー・IOポートブロ
ック175と、制御I/Oコマンド実行タイミング制御
回路176により構成される。また本ICはステートマ
シンコントローラと、プリンタバスと称するアドレスバ
スPA{7:0}・データバスPD{7:0}とタイミ
ング制御信号で接続されている。各制御ブロックは各々
後述する機能を持っており、基本的には制御I/Oコマ
ンド格納用入力レジスタ群と制御回路により構成され
る。図18に本コントローラICのレジスタマップを示
す。以下の説明では各レジスタ名は表中の該当するアド
レスを使って説明する。
【0124】(制御I/Oコマンド実行タイミング制御
回路)プリンタIOコントローラICに接続されるプリ
ンタバスPA{7:0}、PD{7:0}は制御I/O
コマンド実行タイミング回路に接続される。プリンタバ
スは本回路を経由して各制御ブロックのレジスタ群にレ
ジスタアドレスバスIPA{7:0}、レジスタデータ
バスIPD{7:0}として接続される。
【0125】本回路はステートマシンコントロールIC
でレジスタアドレスとレジスタデータに分割された制御
I/Oコマンドがプリンタバスを介して送られてくる
際、本回路内でレジスタアドレス、データを保持し、プ
リンタコントロール部内のアドレスで指定されたレジス
タに格納するタイミング、すなわち制御I/Oコマンド
実行開始タイミングを一定にすることにより連続した制
御I/Oコマンド処理の中で各制御I/Oコマンドの読
み出しから実行までの制御I/Oコマンド実行時間を統
一する機能を制御する回路である。具体的には、プリン
タバスのデータは保持手段として設けられた制御I/O
コマンドラッチによりラッチされ、コマンド実行基準ク
ロックCKPRGの立ち上がりエッジに同期したタイミ
ングで該当レジスタにデータが格納される。このタイミ
ングでレジスタアドレスバス、レジスタデータバスにラ
ッチしたデータを、書き込み用制御信号〜IWRには書
き込み信号を出力する。本回路の構成図を図22に、タ
イミング図を図19に表す。図中PA、PDバスを介し
てレジスタ67、31にデータが異なるタイミングで書
き込まれているが、該当レジスタに書き込まれるタイミ
ング信号〜IWRは常にCKPRGに同期したタイミン
グで出力される。
【0126】(キャリッジモータ(CM)・ラインフィ
ードモータ(LF)モータ制御ブロック)CM,LFで
あるコイルφ1〜φ4を有するステッピングモータをモ
ータドライバを介して4相2砺磁駆動するための駆動相
信号各々4本と電流制御を行うためのPWM出力信号各
々2本を制御するブロックである。相シフト出力パター
ンをレジスタ66、76でセットした後、レジスタ6
7、77にアクセスすることによるシフトトリガによっ
て相信号の出力制御をおこなう。また、レジスタ64、
65、74、75にPWMの設定値を格納し、レジスタ
67、77にアクセスすることによるシフトトリガよっ
て設定値に基づくPWM出力を行う。
【0127】(記録ヘッド制御(ヒート・スキャン)ブ
ロック)本プリンタにプリントヘッド、またはスキャナ
ヘッドが装着されている場合、その記録ヘッドの吐出制
御を行うブロックである。
【0128】レジスタ34〜38はヒートモード設定用
レジスタであり、ヘッドのリセット、プリント・スキャ
ンの動作切り替えなどの制御、ヒート動作を行う際の各
種オプションを設定するレジスタである。またレジスタ
3A〜3Fはスキャンモード設定用レジスタであり、ス
キャン動作を行う際のオプション、スキャンヘッドへの
制御I/Oコマンド送出の制御を設定するレジスタであ
る。
【0129】レジスタ40〜4Bはヒートイネーブル信
号の出力であるヒートパルスのパルスタイミングを設定
するレジスタ群である。スキャン動作時のタイミング設
定には上記パルスタイミング設定用レジスタの一部を兼
用する。
【0130】レジスタ31へのデータ01H書き込みに
よるヒート・スキャントリガ制御I/Oコマンドが認識
されると、記録ヘッドの1カラム分の吐出制御が開始さ
れる。上記レジスタの設定値に基づいたヒート・スキャ
ン制御が行われる。
【0131】(データ転送ブロック)本ブロックは記録
ヘッド制御時に所定データをパラレル・シリアル変換
し、コントローラからヘッドに向けて吐出データとして
シリアル転送クロックに同期して送出する機能を持つ。
8ビットレジスタ32に吐出データが1バイト格納され
ると、転送動作が行われる。
【0132】また、レジスタ34の設定により、スキャ
ナ制御モードが指定されている場合には、スキャナユニ
ットから転送クロックとともにシリアル送出されてくる
スキャン画像データをシリアル・パラレル変換の後、1
6ビットデータとしてレジスタ3A、3Bに格納する。
【0133】(センサステータス ブロック)プリンタ
ドライブ回路に設けられているセンサのレベルをレジス
タ情報として読みだし可能とするブロックである。この
情報はレジスタ24に格納される。また、センサの内ア
ナログ出力入力のものでA/D入力に接続されている信
号はレジスタ27のA/D変換トリガビットをアクセス
することにより、本ブロックでA/D変換され、デジタ
ルデータとしてレジスタ2Cに格納される。これらセン
サー情報をフィードバックすることにより、プリンタの
状況に応じた制御が可能となる。
【0134】(パワー・IOポートブロック)プリンタ
駆動用の電源を制御するブロックである。具体的にはモ
ーター駆動用電源のほかに、ヘッド駆動用のロジック電
源とインク吐出用発熱抵抗体の駆動電圧(以下ヘッドド
ライブ電源)の制御をレジスタ26の設定により行う。
また、プリンタスタート・ストップ用、ラインフィード
用スイッチ、ステータス表示用LEDなどの入出力ポー
トの制御もレジスタ20、21、28、29を使用して
行われる。
【0135】図23〜図29で、プリンタ駆動のための
制御I/Oコマンド構成について説明する。
【0136】この実施例では、キャリッジモーター、ラ
インフィードモーターともバイポーラ型ステッピングモ
ーターで、かつ駆動制御方式は、定電流チョッパー方式
のPWM変調によるマイクロステップ駆動である(一相
あたり6分割して駆動)。
【0137】キャリッジ初期化動作時のキャリッジモー
ターの回転数は、ステッピングモーターの自起動領域
(300p.p.s)であるので、等速駆動をさせる。
【0138】また、印字動作とキャリッジ復帰動作時の
おのおののモーター回転数(766p.p.s)は、ス
テッピングモーターの自起動領域より高速であるので、
印字(キャリッジ復帰)速度にするため、相切り替え時
間を漸次小さくしていき(加速)、等速区間は、加速の
最後の相切り替え時間で駆動し、また、停止するまで相
切り替え時間を漸次大きくしていく(減速)必要がある
ので、大きく分けて、加速動作部分と等速動作部分、減
速動作部分の3つの部分から構成される。
【0139】図23に実際のプリンタとしてのキャリッ
ジ初期化動作(ホームポジション検出動作)のフローチ
ャートを示す。本発明の実施の形態のようなシステムで
は、従来のプリンタのようにキャリッジモーターなどの
アクチュエーターを動作させながらそれにつれて変化す
るセンサーの状態を監視し、状態変化によって、動作中
のアクチュエーターに対する制御I/Oコマンドを変更
することができないため、次のような構成をとる。すな
わち、図のS1でスーパーバイザーコマンドを用いてH
Pセンサーの状態を読み込む。S2で読み込んだ値から
HPセンサーの状態を判断し、ONであれば、前回の初
期化が正常に完了(初期化済み位置)しているとして、
S3に進み、キャリッジを方向にセンサー情報を毎パル
スごとにバッファーにダンプしながら右方向に(キャリ
ッジ初期化済み位置から印字方向へ向いて)120パル
ス移動させる。S4で再びスーパーバイザーコマンドを
用いてキャリッジ停止後のHPセンサーの状態を読み込
む。S5で、S4で読み込んだ値からHPセンサーの状
態を判断し、OFFであれば、S6に進んで毎パルスご
とにバッファーにダンプしたセンサー情報からHPセン
サーがONからOFFへ切り替わった位置を判断し、切
り替わったと判断した位置からON方向に54パルスの
地点を初期化済み位置として、S7で左方向(印字位置
からキャリッジ初期化済み位置へ向いて)に移動して初
期化終了とする。S5でS4で読み込んだ値からHPセ
ンサーの状態を判断し、ONであれば、前回の初期化が
正常に完了しておらず、初期化済み位置より左側にいた
可能性があるので、S8に進んで、キャリッジをさらに
右方向へ120パルス(センサー情報を毎パルスごとに
バッファーにダンプしながら)移動させる。S9で再び
スーパーバイザーコマンドを用いてキャリッジ停止後の
HPセンサーの状態を読み込む。S10でS9で読み込
んだ値からHPセンサーの状態を判断し、OFFであれ
ば、S6、S7と進んで前述のように初期化終了とす
る。まだONであれば、センサーが壊れているか、キャ
リッジが物理的に動作していない可能性が高いので、S
11に進んでエラーとする。
【0140】S2でHPセンサーの状態がOFFの場
合、前回の初期化が正常に完了していないで、印字位置
近傍にいるとして、S12に進み、キャリッジをセンサ
ー情報を毎パルスごとにバッファーにダンプしながら左
方向(印字位置からキャリッジ初期化済み位置へ向い
て)10パルス移動させる。S13で、スーパーバイザ
ーコマンドを用いてキャリッジ停止後のHPセンサーの
状態を読み込む。S14でS13で読み込んだ値からH
Pセンサーの状態を判断し、OFFであれば、S15に
進んで毎パルスごとにバッファーにダンプしたセンサー
情報からHPセンサーがOFFからONへ切り替わった
位置を判断し、そこからON方向にパルスの地点を初期
化済み位置として、S18で初期化位置(HPセンサー
がOFFからONへ切り替わった位置からON方向に5
4パルスの地点)になるように、足らない分を左方向へ
移動する。
【0141】S14でHPセンサーの状態を判断し、O
Nであれば、S17に進んで何回目の左スキャンかチェ
ックし、48回以下なら再びS12に戻って、前述の動
作を繰り返す。S17で回数が48回を越えていたら、
このプリンタの場合、右側壁から左側壁まで480パル
ス分の長さなので、センサーが壊れているか、キャリッ
ジが物理的に動作していない可能性があるので、S18
に進んでエラーとする。
【0142】図24は、前述の初期化動作中で、実際に
キャリッジを動作させる際の、キャリッジモーター駆動
制御I/Oコマンド群の一例を示す。制御I/Oコマン
ドは、初期設定の行から始まり、左から右に、また上か
ら下の行へと進む(6B01,6101,6901,6
401,6528,1200,1508,1455,6
406…)。
【0143】各制御I/Oコマンドは、アドレス・デー
タの構成になっており、2バイトをひとかたまりとして
扱い、16進数で表記する(例えば、制御I/Oコマンド
6B01は、アドレス6Bhにデータ01hの書き込
み)。
【0144】キャリッジ初期化(ホームポジション検出
動作)時の動作速度(相切り替え時間)を300p.
p.s.とすると、1相あたりの切り替え時間は3.3
333msec=3333usec、1/6相あたりの
切り替え時間では555usecになる。本実施例での
ウエイトタイマー制御I/Oコマンドの基本単位が、
0.5usと64usとすると、64usec×8+
0.5=512.5、0.5usec×85+0.5=
43usec、512.5+43usec=555.5
usecよって、ウエイト制御I/Oコマンドは、各々
WAITH(64usec単位)=1508H、WAI
TL(0.5usec単位)=1455Hとなる。
【0145】実際は、ウエイト制御I/Oコマンドの他
の各々の制御I/Oコマンドを処理するのにそれぞれ約
0.5usecの時間が必要になるため、正しく時間管
理するためには、ウエイトタイマー制御I/Oコマンド
間の他の制御I/Oコマンド数の分も計算にいれてウエ
イトタイマー制御I/Oコマンドの値を設定する必要が
ある。
【0146】ここでの説明では、便宜上ウエイトタイマ
ー制御I/Oコマンド自身の処理時間以外は考慮にいれ
ていない。実際には、制御I/Oコマンド群を発行する
時にその分も考慮して再計算する。
【0147】等速部分は、基本的には2行目〜13行目
までを必要パルス数分だけ繰り返すことにより実現され
る。2行目〜13行目までを一周期にしているのは、P
WM変調によるマイクロステップ駆動の電流変化テーブ
ルの周期がモーターの相2パルス分で一周期になるから
である。
【0148】制御I/Oコマンド個々の内容について説
明すると、一行目の初期設定は、動作前のキャリッジモ
ーターの回転方向の設定「ここでは右方向キャリッジ移
動の例として01(左方向なら00)」(6B01)、
バッファへダンプする中身「センサーポート(24H)
の内容」を指示するレジスタライトアドレスの設定制御
I/Oコマンド(1324)、キャリッジモーターPW
M電流ON制御I/Oコマンド(6101)である。
【0149】二行目は、最初の相シフト(スタート相の
次の相励磁)制御I/Oコマンド(6901)、キャリ
ッジモーターPWM電流(A相)書き込み制御I/Oコ
マンド(6401)、キャリッジモーターPWM電流
(B相)書き込み制御I/Oコマンド(6528)、セ
ンサー情報ダンプのためのレジスタライトトリガー制御
I/Oコマンド(1200)、動作速度300p.p.
s.(1/6相あたりの切り替え時間555usec)
を実現するためのウエイトタイマー制御I/Oコマンド
H(64usec単位)(1508)、およびウエイト
タイマー制御I/OコマンドL(0.5usec単位)
(1455)、である。
【0150】三行目はスタート相から1/6相分だけ進
んだ位置でのキャリッジモーターPWM電流(A相)書
き込み制御I/Oコマンド(6406)、キャリッジモ
ーターPWM電流(B相)書き込み制御I/Oコマンド
(6526)、センサー情報ダンプのためのレジスタラ
イトトリガー制御I/Oコマンド(1200)、動作速
度300p.p.s.(1/6相あたりの切り替え時間
555usec)を実現するためのウエイトタイマー制
御I/OコマンドH(64usec単位)(150
8)、およびウエイトタイマー制御I/OコマンドL
(0.5usec単位)(1455)、である。
【0151】同様に、四行目はスタート相から2/6相
分進んだ位置、五行目はスタート相から3/6相分進ん
だ位置、六行目はスタート相から4/6相分進んだ位
置、七行目はスタート相から5/6相分進んだ位置、の
制御I/Oコマンドである。
【0152】基本的に三行目から七行目は、処理の内容
は一緒で、キャリッジモーターPWM電流のA相/B相
に書き込む電流値だけが、マイクロステップ実現のため
に、正弦関数的に変化している。実際には電流の流れ
は、A相/B相とも方向性があるが、ここではその電流
量の絶対値だけ書き込み、方向については、ドライバ側
で変化させるので負の値はとらない。八行目はスタート
相から6/6相分進んだ位置すなわちスタート相の次の
相なので、再び相シフト(スタート相の次の次の相励
磁)(6901)、キャリッジモーターPWM電流(A
相)書き込み(6401)、キャリッジモーターPWM
電流(B相)書き込み(6528)、センサー情報ダン
プのためのレジスタライトトリガー(1200)、動作
速度300p.p.s.(1/6相あたりの切り替え時
間555usec)を実現するためのウエイトタイマー
制御I/OコマンドH(64usec単位)(150
8)、およびウエイトタイマー制御I/OコマンドL
(0.5usec単位)(1455)、である。
【0153】図25〜図29は、実際に片方向印字動作
(キャリッジ復帰動作)、紙送り(ラインフィード)動
作とを遂次行う際の、制御I/Oコマンド群の一例を示
す。
【0154】図25〜27は、片方向印字動作(キャリ
ッジ復帰動作)時の制御I/Oコマンド群を表す。印字
動作時のキャリッジモーター回転数は、813p.p.
sであり、通常のステッピングモーターの自起動領域よ
り高速であるので、加減速動作が必要となり、大きく分
けて、加速動作と等速動作部分(印字動作を含む)、減
速動作部分の3つの部分から構成される。
【0155】図25は、片方向印字動作(キャリッジ復
帰動作)時の加速部分である。制御I/Oコマンドは、
初期設定の行から始まり、左から右に、また上から下の
行へと進む(6B01,6101,6401,652
8,6528,159C,1400,6901…)。
【0156】一行目の初期設定は、動作前のキャリッジ
モーターの回転方向の設定「ここでは右方向キャリッジ
移動(および印字)の例として01(左方向なら0
0)」(6B01)、キャリッジモーターPWM電流O
N制御I/Oコマンド(6101)である。
【0157】二行目はスタート相の励磁のためのキャリ
ッジモーターPWM電流(A相)書き込み制御I/Oコ
マンド(6401)、キャリッジモーターPWM電流
(B相)書き込み制御I/Oコマンド(6528)、ス
タート相の励磁(保持)時間設定のためのウェイトタイ
マー制御I/OコマンドH(64usec単位)(15
9C)、およびウエイトタイマー制御I/OコマンドL
(0.5usec単位)(1400)、である。
【0158】三行目は、最初の相シフト(スタート相の
次の相励磁)制御I/Oコマンド(6901)、キャリ
ッジモーターPWM電流(A相)書き込み制御I/Oコ
マンド(6401)、キャリッジモーターPWM電流
(B相)書き込み制御I/Oコマンド(6528)、加
速動作を実現するためのウエイトタイマー制御I/Oコ
マンドH(64usec単位)(1519)、およびウ
ェイトタイマー制御I/OコマンドL(0.5usec
単位)(14D3)、である。
【0159】四行目はスタート相から1/6相分だけ進
んだ位置でのキャリッジモーターPWM電流(A相)書
き込み制御I/Oコマンド(6406)、キャリッジモ
ーターPWM電流(B相)書き込み制御I/Oコマンド
(6526)、加速動作を実現するためのウェイトタイ
マー制御I/OコマンドH(64usec単位)(15
18)、およびウェイトタイマー制御I/OコマンドL
(0.5usec単位)(14B3)、である。
【0160】同様に、五行目はスタート相から2/6相
分進んだ位置、六行目はスタート相から3/6相分進ん
だ位置、七行目はスタート相から4/6相分進んだ位
置、八行目はスタート相から5/6相分進んだ位置、の
制御I/Oコマンドである。基本的に四行目から八行目
は、処理の内容は一緒で、キャリッジモーターPWM電
流のA相/B相に書き込む電流値が、マイクロステップ
実現のために、正弦関数的に変化し、また、ウェイトタ
イマー制御I/Oコマンドの設定値が、加速動作実現の
ために少しずつ小さくなっている。
【0161】通常の加速動作では、相切り替えのタイミ
ングで徐々に時間間隔をせばめていくのであるが、本実
施例の場合、マイクロステップ制御を行っているため、
同じ相内でも、徐々に時間を変化させていく必要がある
(加速1−1〜加速1−6の間でも変化させている)。
【0162】また、実際には電流の流れは、A相/B相
とも方向性があるが、ここではその電流量の絶対値だけ
書き込み、方向については、モータードライバー側で変
化させるので負の値はとらない。
【0163】九行目はスタート相から6/6相分進んだ
位置すなわちスタート相の次の相なので、再び相シフト
(スタート相の次の次の相励磁)(6901)、キャリ
ッジモーターPWM電流(A相)書き込み(642
8)、キャリッジモーターPWM電流の(B相)書き込
み(6501)、加速動作を実現するためのウェイトタ
イマー制御I/OコマンドH(64usec単位)(1
50F)、およびウェイトタイマー制御I/Oコマンド
L(0.5usec単位)(14ED)、である。
【0164】以下、同様に加速動作を本実施例では22
ステップ分繰り返す。加速が終了すると、次は等速部分
である。
【0165】図26は、片方向印字動作時の等速部分で
ある。
【0166】一行目は、最初の相シフト(等速動作スタ
ート相の次の相励磁)制御I/Oコマンド(690
1)、キャリッジモーターPWM電流(A相)書き込み
制御I/Oコマンド(6401)、キャリッジモーター
PWM電流(B相)書き込み制御I/Oコマンド(65
28)、等速度813p.p.s(1/6相あたりの切
り替え時間205usec)を実現するためのウェイト
タイマー制御I/OコマンドH(64usec単位)
(1508)、およびウェイトタイマー制御I/Oコマ
ンドL(0.5usec単位)(1433)、である。
【0167】二行目は等速動作スタート相から1/6相
分だけ進んだ位置でのキャリッジモーターPWM電流
(A相)書き込み制御I/Oコマンド(6406)、キ
ャリッジモーターPWM電流(B相)書き込み制御I/
Oコマンド(6526)、等速度813p.p.s(1
/6相あたりの切り替え時間205usec)を実現す
るためのウェイトタイマー制御I/OコマンドH(64
usec単位)を実現するためのウェイトタイマー制御
I/OコマンドH(64usec単位)(1508)、
およびウェイトタイマー制御I/OコマンドL(0.5
usec単位)(1433)、である。
【0168】同様に、三行目はスタート相から2/6相
分進んだ位置、四行目はスタート相から3/6相分進ん
だ位置、五行目はスタート相から4/6相分進んだ位
置、六行目はスタート相から5/6相分進んだ位置、の
制御I/Oコマンドである。
【0169】基本的に二行目から六行目は、処理の内容
は一緒で、キャリッジモーターPWM電流のA相/B相
に書き込む電流値だけが、マイクロステップ実現のため
に、正弦関数的に変化している。実際には相を流れる電
流は、A相/B相とも方向性があるが、ここではその電
流量の絶対値だけ書き込み、方向については、ドライバ
ー側で変化させるので負の値はとらない。
【0170】七行目はスタート相から6/6相分進んだ
位置、すなわち等速動作スタート相の次の相の位置にい
るので、再び相シフト制御I/Oコマンド(等速動作ス
タート相の次の次の相励磁)(6901)、キャリッジ
モーターPWM電流の(A相)書き込み制御I/Oコマ
ンド(6428)、キャリッジモーターPWM電流の
(B相)書き込み制御I/Oコマンド(6501)、等
速動作速度813p.p.s.(1/6相あたりの切り
替え時間205usec)を実現するためのウェイトタ
イマー制御I/OコマンドH(64usec単位)(1
508)、およびウェイトタイマー制御I/Oコマンド
L(0.5usec単位)(1433)、である。
【0171】等速部分は、基本的には1行目〜12行目
までを必要パルス分だけ繰り返すことにより実現され
る。1行目〜12行目までを一周期にしているのは、P
WM変調によるマイクロステップ駆動の電流変化テーブ
ルの周期がモーターの相2パルス分で一周期になるから
である。
【0172】本発明の実施の形態では、キャリッジモー
ター1パルス(1相分)で、1/60インチキャリッジ
が移動する。1相をマイクロステップ制御するために6
分割しているので、1マイクロステップあたり1/60
インチ÷6=1/360インチの移動に相当する。
【0173】印字解像度が360d.p.i相当の記録
ヘッドでは、各マイクロステップごとに、1カラムの印
字に相当するので、実際に360d.p.i相当の印字
を行う場合には、図26の各行(マイクロステップ)中
に1カラム分の印字データ転送制御I/Oコマンドとヒ
ートスキャントリガー制御I/Oコマンド等がさらに付
加されるが、これについては後述する。
【0174】等速(印字動作)が終了すると、次は減速
部分である。
【0175】図27は、片方向印字動作時の減速部分で
ある。制御I/Oコマンドは、第一行から始まり、左か
ら右に、また上から下の行へと進む(6901,640
1,6528,1503,1433,6406…)。
【0176】一行目は、最初の相シフト(減速スタート
相の次の相励磁)制御I/Oコマンド(6901)、キ
ャリッジモーターPWM電流(A相)書き込み制御I/
Oコマンド(6401)、キャリッジモーターPWM電
流(B相)書き込み制御I/Oコマンド(6528)、
減速動作を実現するためのウェイトタイマー制御I/O
コマンドH(64usec単位)(1503)、および
ウェイトタイマー制御I/OコマンドL(0.5use
c単位)(1433)、である。
【0177】二行目はスタート相から1/6相分だけ進
んだ位置でのキャリッジモーターPWM電流(A相)書
き込み制御I/Oコマンド(6406)、キャリッジモ
ーターPWM電流(B相)書き込み制御I/Oコマンド
(6526)、減速動作を実現するためのウェイトタイ
マー制御I/OコマンドH(64usec単位)(15
03)、およびウェイトタイマー制御I/OコマンドL
(0.5usec単位)(1433)、である。
【0178】同様に、三行目はスタート相から2/6相
分進んだ位置、四行目はスタート相から3/6相分進ん
だ位置、五行目はスタート相から4/6相分進んだ位
置、六行目はスタート相から5/6相分進んだ位置、の
制御I/Oコマンドである。基本的に二行目から六行目
は、処理の内容は一緒で、キャリッジモーターPWM電
流のA相/B相に書き込む電流値が、マイクロステップ
実現のために、正弦関数的に変化し、また、ウェイトタ
イマー制御I/Oコマンドの設定はが減速動作実現のた
めに少しずつ大きくなるが、減速1〜3パルスあたりで
はまだそれほど変化していない。
【0179】通常の減速動作では、相切り替えのタイミ
ングで徐々に時間間隔広げていくのであるが、本発明の
実施の形態の場合、マイクロステップ制御を行っている
め、同じ相内でも、徐々に時間を変化させていく必要が
ある(例えば、減速3−1〜減速3−6の間でも変化さ
せている)。
【0180】また、実際には電流の流れは、A相/B相
とも方向性があるが、ここではその電流量の絶対値だけ
書き込み、方向については、モータードライバー側で変
化させるので負の値はとらない。
【0181】七行目は減速スタート相から6/6相分進
んだ位置、すなわち減速スタート相の次の相なので、再
び相シフト(減速スタート相の次の次の相励磁)(69
01)、キャリッジモーターPWM電流(A相)書き込
み(6428)、キャリッジモーターPWM電流(B
相)書き込み(6501)、加速動作を実現するための
ウェイトタイマー制御I/OコマンドH(64usec
単位)(1503)、およびウェイトタイマー制御I/
OコマンドL(0.5usec単位)(1433)、で
ある。
【0182】以下、同様に減速動作を本実施例では22
ステップ分繰り返す。減速が終了すると、減速最後の相
(停止相)を励磁し、しかるのちに、最後の行で、電流
を切る。
【0183】キャリッジ復帰動作は、基本的には、前述
の加速、等速、減速という制御I/Oコマンドと同じで
あるが、加速の初期設定で、回転方向が異なるのと、
(6B01−>6b00)、等速部分に印字データ、ヒ
ートトリガーとかの制御I/Oコマンドが付加されない
という違いがある。
【0184】図28〜29は、紙送り動作(ここでは2
4パルスの送り)の加速、減速の制御I/Oコマンド群
を表す。24パルス送り時のラインフィードモーター回
転数の最高速度は、801p.p.sであり、通常のス
テッピングモーターの自起動領域より高速であるので、
加減速動作が必要となる。
【0185】本発明の実施の形態では紙送りモーターの
加速減速に各々20パルス必要であるが、ここでは24
パルスの紙送りなので、加速減速とも各々のテーブルか
ら12パルスずつを用い、等速部分は存在しない。よっ
て、加速動作と、減速動作の2つの部分から構成され
る。
【0186】図28は、24パルス紙送り動作時の加速
部分である。制御I/Oコマンドは、初期設定の行から
始まり、左から右に、また上から下の行へと進む(7B
01,7101,7401,7528,159C,14
00,7901…)。
【0187】一行目の初期設定は、動作前の紙送りモー
ターの回転方向の設定「ここでは正方向の紙送りの例と
して01(逆方向なら00)」(7B01)、紙送りモ
ーターPWM電流ON制御I/Oコマンド(7101)
である。
【0188】二行目はスタート相の励磁のための紙送り
モーターPWM電流(A相)書き込み制御I/Oコマン
ド(7401)、紙送りモーターPWM電流(B相)書
き込み制御I/Oコマンド(7528)、スタート相の
励磁(保持)時間設定のためのウェイトタイマー制御I
/OコマンドH(64usec単位)(159C)、お
よびウェイトタイマー制御I/OコマンドL(0.5u
sec単位)(1400)、である。
【0189】三行目は、最初の相シフト(スタート相の
次の相励磁)制御I/Oコマンド(7901)、紙送り
モーターPWM電流(A相)書き込み制御I/Oコマン
ド(7401)、紙送りモーターPWM電流(B相)書
き込み制御I/Oコマンド(7528)、加速動作を実
現するためのウエイトタイマー制御I/OコマンドH
(64usec単位)(1505)、およびウェイトタ
イマー制御I/OコマンドL(0.5usec単位)
(1424)、である。
【0190】四行目はスタート相から1/6相分だけ進
んだ位置での紙送りモーターPWM電流(A相)書き込
み制御I/Oコマンド(7406)、紙送りモーターP
WM電流(B相)書き込み制御I/Oコマンド(752
6)、加速動作を実現するためのウェイトタイマー制御
I/OコマンドH(64usec単位)(1505)、
およびウェイトタイマー制御I/OコマンドL(0.5
usec単位)(141C)、である。
【0191】同様に、五行目はスタート相から2/6相
分進んだ位置、六行目はスタート相から3/6相分進ん
だ位置、七行目はスタート相から4/6相分進んだ位
置、八行目はスタート相から5/6相分進んだ位置、の
制御コマンドである。基本的に四行目から八行目は、処
理の内容は一緒で紙送りモーターPWM電流のA相/B
相に書き込む電流値が、マイクロステップ実現のため
に、正弦関数的に変化し、また、ウェイトタイマー制御
I/Oコマンドの設定値が、加速動作実現のために少し
ずつ小さくなっている。
【0192】通常の加速動作では、相切り替えのタイミ
ングで徐々に時間間隔をせばめていくのであるが、本発
明の実施の形態の場合、マイクロステップ制御を行って
いるため、同じ相内でも、徐々に時間を変化させていく
必要がある(加速1−1〜加速1−6の間でも変化させ
ている)。
【0193】また、実際には電流の流れは、A相/B相
とも方向性があるが、ここではその電流量の絶対値だけ
書き込み、方向については、モータードライバー側で変
化させるので負の値はとらない。
【0194】九行目はスタート相から6/6相分進んだ
位置すなわちスタート相の次の相なので、再び相シフト
(スタート相の次の次の相励磁)(7901)、紙送り
モーターPWM電流(A相)書き込み(7428)、紙
送りモーターPWM電流(B相)書き込み(750
1)、加速動作を実現するためのウェイトタイマー制御
I/OコマンドH(64usec単位)(150F)、
およびウェイトタイマー制御I/OコマンドL(0.5
usec単位)(14ED)、である。
【0195】以下、同様に加速動作を本発明の実施の形
態では12ステップ分繰り返す。加速が終了すると、次
は減速部分である。
【0196】図29は、24パルス紙送り動作時の減速
部分である。制御I/Oコマンドは、第一行から始ま
り、左から右に、または上から下へと進む(7901,
7401,7528,1503,1420,7406
…)。
【0197】一行目は、最初の相シフト(減速スタート
相の次の相励磁)制御I/Oコマンド(7901)、紙
送りモーターPWM電流(A相)書き込み制御I/Oコ
マンド(7401)、紙送りモーターPWM電流(B
相)書き込み制御I/Oコマンド(7528)、減速動
作を実現するためのウェイトタイマー制御I/Oコマン
ドH(64usec単位)(1503)、およびウェイ
トタイマー制御I/OコマンドL(0.5usec単
位)(1420)、である。
【0198】二行目は減速スタート相から1/6相分だ
け進んだ位置での紙送りモーターPWM電流(A相)書
き込み制御I/Oコマンド(7406)、紙送りモータ
ーPWM電流(B相)書き込み制御I/Oコマンド(7
526)、減速動作を実現するためのウェイトタイマー
制御I/OコマンドH(64usec単位)(150
3)、およびウェイトタイマー制御I/OコマンドL
(0.5usec単位)(1424)、である。
【0199】同様に、三行目はスタート相から2/6相
分進んだ位置、四行目はスタート相から3/6相分進ん
だ位置、五行目はスタート相から4/6相分進んだ位
置、六行目はスタート相から5/6相分進んだ位置、の
制御I/Oコマンドである。基本的に二行目から六行目
は、処理の内容は一緒で紙送りモーターPWM電流のA
相/B相に書き込む電流値が、マイクロステップ実現の
ために、正弦関数的に変化し、また、ウェイトタイマー
制御I/Oコマンドの設定値が減速動作実現のために少
しずつ大きくなっている。
【0200】通常の減速動作では、相切り替えのタイミ
ングで徐々に時間間隔を広げていくのであるが、本実施
例の場合、マイクロステップ制御を行っているため、同
じ相内でも、徐々に時間を変化させていく必要がある
(例えば、減速3−1〜加速3−6の間でも変化させて
いる)。
【0201】また、実際には電流の流れは、A相/B相
とも方向性があるが、ここではその電流量の絶対値だけ
書き込み、方向については、モータードライバー側で変
化させるので負の値はとらない。
【0202】七行目は減速スタート相から6/6相分進
んだ位置、すなわち減速スタート相の次の相なので、再
び相シフト(減速スタート相の次の次の相励磁)(79
01)、紙送りモーターPWM電流(A相)書き込み
(7428)、紙送りモーターPWM電流(B相)書き
込み(7501)、加速動作を実現するためのウェイト
タイマー制御I/OコマンドH(64usec単位)
(1503)、およびウェイトタイマー制御I/Oコマ
ンドL(0.5usec単位)(1434)、である。
【0203】以下、同様に加速動作を本実施例では12
ステップ分繰り返す。減速が終了すると、減速最後の相
(停止相)を励磁し、しかるのちに、最後の行の停止処
理で、電流を切る。
【0204】図30はメディアの構成を示した図で、メ
ディアにはフロッピーディスク、CR−ROM、MOな
どがある。メディアの構成で(1)Installer
は(2)から(7)のソフトをホストシステムにインス
トールするためのソフトウエア、(2)RTOS Ru
ntime LibraryはホストシステムでRTO
S環境を提供するためのソフトウエア、(3)Lang
uage Monitorはホストのスプーリングサブ
システムに追加されW−RTOS HostAppli
cationとデ−タのやり取りを行うソフトウエア、
(4)W−RTOS Host Applicatio
nはLanguage Monitorから印字コマン
ドを受け取り、RTOS Taskへ渡す役割と、RT
OSTaskをコントロールする役割を行うソフトウエ
ア、(5)RTOS TaskはW−RTOS Hos
t Applicationから渡される印字、スキャ
ンコマンドなどに従って印字やスキャンを行うソフトウ
エアで、コントロールコード解析Task、印字処理T
ask、スキャン処理Task、ヘッド交換処理Tas
k、給・排紙処理Task、タイマー管理Task、回
復系処理Task、ヘッド温調処理Task、エラー処
理Task、電源管理Taskからなる。(6)VCO
MM Port DriverはVCOMMからの印字
コマンドをRTOS Driverに引き渡す処理を行
うソフトウエア、(7)RTOSDriverはVCO
MM Port Driverからの印字コマンドをR
TOS Taskへ引き渡すことを行うソフトウエア、
(8)Utilityはプリンタの環境設定やヘッド交
換などを行うユーティリティーソフトウエアである。以
上のソフトウエアが(1)のInstallerにより
システムに設定され実行可能となる。
【0205】図31は、ウィンドウズ95環境下におけ
る、ウィンドウズ・アプリケーションからLPTポート
につながるプリンタへ出力する場合の、ソフトウェア処
理手順を示す。図40において、4001は印刷機能を
有するウィンドウズアプリケーション、4002はプリ
ンティング・サブシステム、4003はスプーリング・
サブシステム、4004はVCOMM、4005はポー
ト・ドライバ、4006はLPTポートであり、400
1〜4005の動作はすべて、ウィンドウズ・システム
の指令を受ける。
【0206】印刷機能をもつ一般的なウィンドウズ・ア
プリケーション4001から出力されたデータは、プリ
ンティング・サブシステム4002に送られ、ウィンド
ウズ・オペレーティング・システムにおけるグラフィッ
クデバイスのハードウェアに対するインターフェースで
いるGDIと連動してプリンタドライバが出力し、印刷
用データ(コントロールコード)に変換される。さらに
スプーリング・サブシステム4003に送られ、スプー
ラープロセスが印刷用データ(コントロールコード)を
スプールファイルに蓄え、VCOMM4004に対して
書き出す。VCOMM4004はLPTポート・ドライ
バ4005を通じて、物理的なLPTポート4006に
印刷用データ(コントロールコード)を書き出す。
【0207】本発明では、Windows95環境下で
動くリアルタイムOSを使用する。RTOSは、CPU
動作モードのリング0でリアルタイム環境を作り、そこ
で複数のシグナル・プロセッシング・タスクを実行する
ことが出来る。RTOSタスクとリング3で実行される
ウィンドウズアプリケーションとは、ウィンドウ・メッ
セージを用いて非同期に通信する手段がある。RTOS
タスクと通信するWindowsアプリケーションを、
W−RTOSホストアプリケーションと呼ぶ。また、R
TOSタスク間も、非同期に通信する手段を有する。
【0208】図39は、従来例のウィンドウズ95環境
下における、RTOSタスクとウィンドウズ・アプリケ
ーションの通信、またRTOSタスク間の通信を示す。
図39において、4901はW−RTOSホスト・アプ
リケーション、4902はW−RTOSホスト・アプリ
ケーションと通信を行うRTOSタスク、4903はR
TOSタスク間の通信を行うRTOSタスクである。
【0209】RTOSタスク4902は、データの要
求、データ処理の終了等をウィンドウズ・メッセージの
形でW−RTOSホスト・アプリケーション4901に
通信する。W−RTOSホスト・アプリケーション49
01は、RTOSタスク4901の処理開始を通信し、
メッセージに応じてデータの送信を行う。
【0210】図32は、本発明における印刷処理の流れ
を示す、ソフトウエア・ブロック図である。図41に示
されるように、この印刷システムは、ウィンドウズ・ア
プリケーション4101、プリンティング・サブシステ
ム4102、スプーリング・サブシステム4103、L
anguage Monitor4104、セマフォA
4105、セマフォB4106、共有メモリ4107、
W−RTOSホスト・アプリケーション4108、RT
OSタスク4109、プリンタ・ポート4110により
構成される。
【0211】ウィンドウズ95・オペレーティング・シ
ステムの場合、スプーリング・サブシステムは複数のコ
ンポーネントにより構成され、それらのうち、VCOM
Mと通信しPort Driverにデータを書き出す
コンポーネントとして、Port Monitor、L
anguage Monitorがある。本発明におい
ては、印刷用データ(コントロールコード)をスプーリ
ング・サブシステムからフックするために、独自のLa
nguage Monitor4104を作成し、スプ
ーリング・サブシステム4103に追加する。
【0212】Language Monitor410
4はいくつかの関数をエクスポートするが、双方向のプ
リンタを考慮しない場合、印刷用データ(コントロール
コード)を処理するとき、ウィンドウズ95・システム
は、StartDocPort→WritePort
(複数回)→EndDocPortの様にLangua
ge Monitorの関数を呼び出す。
【0213】図31で示したのと同様に、印刷機能をも
つ一般的なウィンドウズ・アプリケーション4101か
ら出力されたデータは、プリンティング・サブシステム
4102で処理され、スプーリング・サブシステム41
03に送られる。スプーリング・サブシステム4103
を構成するコンポーネントの一つで、今回新たに追加し
たLanguage Monitor4104において
印刷用データ(コントロールコード)を処理する際、ま
ず図33の動作が行われる。StartDocPort
0命令がコールされ、図33のステップ4201、42
02においてセマフォA4105とセマフォB4106
が作成される。次にステップ4203において共有メモ
リ4107がアロケートされる。さらにステップ420
4において、Language Monitor410
4の子プロセスとして、WinSPOXホスト・アプリ
ケーション4108が生成される。最後にステップ42
05においてPort MonitorのStartD
ocPort0命令をコールする。
【0214】図33のステップ4204で子プロセスと
して生成されたW−RTOSホスト・アプリケーション
4108は、図36に示す動作を行う。すなわち、ステ
ップ4501においてRTOSタスク4109を起動
し、ステップ4502において、W−RTOSホスト・
アプリケーション4108とRTOSタスク4109と
の通信を初期化し、ステップ4503、4504におい
てセマフォA4105、セマフォB4106をオープン
し、ステップ4505においてセマフォA4105を待
つ。
【0215】一方、図33の動作を行った後、Lang
uage Monitor4104においては、図34
の動作が行われる。Write Port0命令がコー
ルされ、図34のステップ4301において共有メモリ
4107がマッピングされ、ステップ4302において
印刷用データ(コントロールコード)が共有メモリ41
07に対して書き出される。そしてステップ4303に
おいてセマフォA4105を解放し、ステップ4304
でセマフォBを待つ。
【0216】他方、図36の動作を行った後、W−RT
OSホスト・アプリケーション4108は、図37の動
作を行う。すなわち、ステップ4601において共有メ
モリ4107をオープンし、ステップ4602において
共有メモリ4107をW−RTOSホスト・アプリケー
ション4108のプロセス空間にマッピングし、ステッ
プ4603において、この時点で図34のステップ43
02で既に共有メモリ4107に対して書き出されてい
る印刷用データ(コントロールコード)を読み出し、ス
テップ4604においてRTOSタスク4109に対し
てこの印刷用データ(コントロールコード)を書き出
す。さらにステップ4605においてセマフォB410
6を解放し、ステップ4606においてセマフォA41
05を待つ。RTOSタスク4109において、書き出
された印刷用データ(コントロールコード)は、プリン
タヘッドイメージに変換され、プリンタ・ポート411
0に書き出される。
【0217】ウィンドウズ95・システムは、スプール
されたデータがなくなるまで図34の動作を繰り返す。
これにより、図34、図37の動作が繰り返されて、一
連の印字処理が行われる。
【0218】スプールされたデータがなくなると、ウィ
ンドウズ95・システムは図35の動作を行う。End
DocPort0命令がコールされ、図35のステップ
4401、4402においてセマフォA、Bが破棄さ
れ、ステップ4403において共有メモリが破棄され
る。最後にステップ4404においてPortMoni
torのEndDocPort0命令をコールする。
【0219】図38は、本発明におけるスキャナ処理の
流れを示すソフトウエアブロック図である。
【0220】図38に示されるように、このスキャナ・
システムは、ウィンドウズ・スキャナアプリケーション
4701、スキャナドライバ4702、セマフォC47
03、セマフォD4704、共有メモリ4705、W−
RTOSホスト・アプリケーション4706、RTOS
タスク4707、スキャナ・ポート4708により構成
される。
【0221】発明の実施の形態1の図40で示したのと
同様に、スキャナ機能をもつ一般的なウィンドウズ・ア
プリケーション4701がスキャン開始指令を出すと、
スキャナ・ドライバ4702がセマフォC4703とセ
マフォD4704を作成し、共有メモリ4705をアロ
ケートする。そして、スキャナ・ドライバ4702の子
プロセスとして、W−RTOSホスト・アプリケーショ
ン4706を生成する。その後、スキャン開始コントロ
ールコードが、RTOSタスク4707、スキャナ・ポ
ート4708を通じてスキャナ装置に出される。
【0222】スキャナ装置から、スキャナ・ポート47
08を経由したスキャン・データは、RTOSタスク4
707においてバッファリングされ、W−RTOSホス
ト・アプリケーション4706に送られる。
【0223】W−RTOSホスト・アプリケーション4
706は、共有メモリ4705を介し、セマフォC47
03、セマフォD4704を用いて同期を取り、スキャ
ナ・ドライバ4702からウィンドウズ・スキャナ・ア
プリケーションにスキャン・データを送る。
【0224】図40はタスクの構成を示す図で、タスク
を管理するTask Controlと実行されるTa
skから構成される。Task Controlはタス
クの実行、実行順序を管理するTask Dispat
acher60−01と時間管理を行うTimer60
−02からなる。Task Controlはリアルタ
イムOS RTOSのシステムの一部で、Taskの管
理を行う。Taskはメインの実行を行う親タスクと親
タスクから生成される子タスクから構成される。親タス
クは3つのフェーズを持ち、タスクの初期化を行うCr
eate Phase60−03、タスクの本体となる
Execute Phase60−04、タスクの終了
処理を行うDelete Phase60−05からな
り、Create,Execute,Deleteの順
で実行される。子タスクは親タスクから実行時に生成さ
れTask1−Taskn60−06までのn個のタス
クを生成することができる。親タスクのExecute
Phaseと子タスク1−nはそれぞれ個別にタスク
の順位を表すプライオリティを持つ。これらのタスク
は、図32の4109で示される。Task Disp
atcherは各タスクのプライオリティに従ってタス
クの遷移状態が変わったときにタスク実行の切り換えを
行う。Timerは一定の時間間隔で実行されるタスク
のために、一定時間ごとに特定のタスクに実行の切り替
えを行う。タスクは他のタスクとの間で同期をとるため
にセマフォを持ち、セマフォの管理もTask Dis
patcherで行われる。セマフォはタスクで生成さ
れたセマフォに設定される値によりタスクの実行の中断
再開を管理することができる。セマフォの値が変更され
るのを待つことをセマフォ待ち、セマフォに値を設定す
ることをセマフォ送信と呼ぶ。
【0225】図41はタスクの遷移関係を示した図で、
まずタスクは矢印createで生成されReady状
態となる。Ready状態となったタスクはTask
Dispatcherにより管理されキューに登録され
る、キューはタスクがReady状態にされた順でプラ
イオリティごとに登録し、登録されたタスクの内で最も
プライオリティの高いタスクでキューの先頭にあるタス
クがRunning状態となる。図中の矢印Runとな
る。矢印changeはRunning状態のタスクを
他のタスクに切り換えるためにReady状態に切り換
える。Running状態のタスクがセマフォ待ちを行
い、中断状態になるのが矢印waitでWait状態と
なる。矢印readyはWait状態でセマフォ送信を
受けるか、中断が終了することでWait状態からRe
ady状態となりタスクのキューの最後に登録される。
Running状態のタスクが終了するのが矢印exi
tでTerminate状態となる。Ready,Wa
it状態からタスクを終了するのが矢印deleteで
Terminate状態となる。矢印change,e
xit,wait,delete,readyの各状態
遷移が起きた場合にTask Dispatcherに
より次のタスクがReady状態からRunning状
態とされ次のタスクが実行される。Timerで実行に
移されるタスクも同じ遷移を行いRunning状態と
される。ただし、Timerの場合には設定された一定
時間でタスクの遷移が行われるが、通常のタスクでは矢
印change,exit,wait,delete,
readyの各状態遷移が起きた場合にのみタスクの遷
移が実行される。以上のタスクの管理によりタスクの実
行、切り換えと、時間によるタスクの実行が行える。
【0226】図42は、本発明の実施の形態で実行され
るタスクを表した図である。図40のTask−Tas
knに当たる。コントロールコード従って各タスクに遷
移を変更するコントロールコード解析Task62−0
1、コントロールコード解析Taskにより実行され印
字を行う印字処理Task52−02、スキャナでスキ
ャンを行うスキャン処理Task62−03、印字ヘッ
ド、スキャンヘッドの交換を行うヘッド交換処理Tas
k62−04、給紙・排紙を行う給、排紙処理Task
62−05がある。また、Timerにより一定時間ご
とに呼び出され各タスクに遷移を変更するタイマー管理
Task62−06、タイマー管理Taskにより実行
される印字ヘッドのメンテナンス処理を行う回復系処理
Task62−07、印字・スキャンヘッドの温度管理
を行うヘッド温度処理Task62−08、様々なエラ
ーを処理するエラー処理Task62−09、電源の状
態を管理する電源処理Task62−10がある。コン
トロールコード解析Task、印字処理Task、スキ
ャン処理Task、ヘッド交換処理Task、給、排紙
処理Taskは同じプライオリティを持つ。タイマー管
理Task、回復系処理Task、ヘッド温調処理Ta
sk、エラー処理Task、電源管理Taskは同じプ
ライオリティを持ち、コントロールコード解析Tas
k、印字処理Task、スキャン処理Task、ヘッド
交換処理Task、給、排紙処理Taskより高いプラ
イオリティを持つ。各タスクの詳細については後述のフ
ローチャートに従って説明する。
【0227】従来のプリンタ装置ではプリンタ装置内の
中央演算装置CPUでこれらとほぼ同等のタスクが実行
され、印字が行われていた。本発明では、これらのタス
クはホストコンピュータ内の中央演算装置CPUで実行
される。
【0228】図43はコントロールコードの基本形式を
示しており、ESCはコントロールコードの識別子(1
Bh)でコントロールコードの開始を表す。コントロー
ルコードには、EPSON、ESCP、HP、PCL、
Canon color native comman
dなどがあり、印字、スキャンを行うための制御指示を
行う。次にcommandでコントロールコードの種類
を表す。commandの内容は図44に示す。len
gthは以降に続くデータのサイズを表し、バイト単位
の数値となる。length=0は以降に続くデータの
ないことをを表す。dataはイメージデ−タ、モー
ド、フィード量などの指定を行うデータとなる。コント
ロールコードはアプリケーションから印字・スキャンを
行うための各タスクに送られてくる。実施例1でコント
ロールコードは、図32のウィンドウ・アプリケーショ
ン4101、プリンティング・サブシステム4102、
スプーリング・サブシステム4103、Languag
e Moniter4104、共有メモリ4107、W
−RTOSホスト・アプリケーション4108を経て各
タスクに渡される。実施例2でコントロールコードは、
図78のウィンドウ・アプリケーション90−01、プ
リンティング・サブシステム90−02、スプーリング
・サブシステム90−03、VCOMM90−08、V
COMM Port Driver90−09、RTO
S Driver90−10を経て各タスクに渡され
る。
【0229】図44に本発明の実施の形態の具体的なコ
ントロールを示す。(1)ESCP0は印字処理Tas
kへの切り換えを行うコントロールコード。(2)ES
CS0はスキャン処理Taskへの切り換えを行うコン
トロールコード。(3)ESC E0は印字・スキャン
Taskの終了コントロールコード。(4)ESC H
1modeはヘッド交換指示コントロールコード。m
ode=0でヘッド交換開始、mode=1でヘッド交
換終了。(5)ESC I0は給紙指示コントロールコ
ード。(6)ESC 00は排紙コントロールコード。
(7)ESC icolor length data
は印字イメージコントロールコードでcolorは色の
指定を表し、K=ブラック、C=シアン、M=マゼン
タ、Y=イエローを指示し以降のデータの色がcolo
rで決まる。lengthがデータのサイズを表す。d
ataがイメージのデータで、1バイトは8ビット、1
ビットが1ドットを表す。このコントロールコードはラ
スタイメージのコントロールコードでラスタ単位で各色
のラスタデータを指定する。(8)ESCs0はラスタ
スキップコントロールコードで1ラスタ分ラスタ位置を
下へ更新する。(9)ESCf2feedはフィードを
指定するコントロールコードで、feedにフィード量
を指定する。
【0230】図45に1ラスタ分のイメージデータとラ
スタスキップコントロールコードを連続して送る場合の
例を示している。4色分のラスタデータのイメージコン
トロールコードとラスタスキップコントロールコードで
1ラスタ分のイメージが出来る。この順でイメージデー
タを1ページ分繰り返し送ることにより1ページのカラ
ー印字を行う。
【0231】図46は、印字ヘッド図11の2のノズル
部分の概略構成を示した図である。符号(A)はカラー
インクジェットヘッド、(B)はモノクロインクジェッ
トヘッドを示している。カラーヘッド(A)は、三色の
カラーヘッド部分とブラックヘッドの部分からなり、上
からイエロー(Y)、マゼンタ(M)、シアン(C)、
ブラック(Bk)の順で並び、三色は24ドット、ブラ
ックは64ドットから成り、それぞれの色の間は色の干
渉を防ぐために8ドットづつの間隔が取られている。イ
ンクジェットのヘッドでは1ドットごとに一本のノズル
が配置されており、この場合では1ドットは1/360
DPI(ドット/インチ)の分解能を持つ。カラーデー
タの印字は四色のインクジェットヘッドからそれぞれの
色のインクを噴出して行い、それぞれのインクの色の重
なりによりインクジェットヘッドにない色の印字も可能
となる。ブラックインクジェットのヘッド部分はモノク
ロの印字に使われる。モノクロインクジェットヘッド
(B)はモノクロ専用印字のインクジェットヘッドでブ
ラックインクジェットヘッドだけで構成される。モノク
ロインクジェットヘッドは128ドットで構成され、一
度の印字で128ドットの全てのインクジェットヘッド
を使うことが出来る。
【0232】図47〜53は図45で示したイメージコ
ントロールコードのイメージデータを蓄え加工するため
のバッファを示した図である。図47から図51までの
バッファは横方向5760ドット分のドット幅を持ち、
本実施例では横方向の分解能が720DPI(ドット/
インチ)であり、横方向は5760/720で8インチ
の幅が印字領域となる。図52は8インチ+αの幅を持
つ。図47から図49までのバッファはイメージをラス
タイメージとして保持する。図50から図52はラスタ
イメージデータを縦横変換したカラムイメージとして保
持する。YMCKは各色に対応し、ラスタ数はバッファ
の保持できるラスタ数を表す。ドット数は縦横変換後の
縦ドット数を表し、たとえば24ドットは3バイトとな
る。図53にラスタとカラムのデータの配置を示す。ラ
スタでは1バイト(8ドット)単位のデータが横方向に
1>2>3>4>…>nの順でバッファに保持され、カ
ラムでは1バイト(8ドット)単位のデータが縦方向に
1>2>3>4>…>nの順でバッファに保持される。
これは縦24ドットの場合である。
【0233】図47はラスタイメージデータを8ラスタ
単位で蓄えるためのバッファ。図48は図47で蓄えら
れたラスタイメージデータを2回分蓄えるバッファで、
後で説明するイメージデータを加工するために使用され
16ラスタ分の大きさを持つ。図47で蓄えられたデー
タが8ラスタ分一杯になると、図48のバッファへ送ら
れる。図48のバッファにまだデータがセットされてい
ない場合図47のバッファは図48のバッファの前半8
ラスタに送られ、すでに図48の前半8ラスタにデータ
がセットされていれば図48のバッファの後半8ラスタ
にセットされる。図49は図48に蓄えられた加工され
たデータを印字に従って保持するバッファである。印字
ヘッドは図46の(A)に示したように一番下にブラッ
ク、シアン、マゼンタ、イエローの順で配置されている
ため、上に配置される色ほど後から印字されるためデー
タを多く蓄える必要がありK<C<M<Yの順でバッフ
ァのラスタ数も多くなる。印字方法については後述す
る。図48のバッファから図49のバッファへは図48
のバッファの前半8ラスタが送られ、図48のバッファ
は後半8ラスタが前半に移動される。これは、図48の
バッファで行われる加工処理が16ラスタ単位で行われ
るためで、加工の終了した図48の前半8ラスタが図4
9へ送られる。図50は図49で蓄えられたラスタデー
タを印字ヘッドに合わせた形で縦横変換したカラムデー
タを蓄えるバッファである。図50の形式のデータを図
46の(A)で示した印字ヘッドに送ることで印字が出
来る。図49のバッファから図50のバッファへは図4
9のKバッファに24ラスタ蓄わえられた時点で行われ
る。図51は図50で作り出された印字ヘッドに対応し
たデータに印字パスの処理を行うためのバッファであ
る。印字パスとは複数回印字イメージを重ねて印字する
(ファイン印字)、印字データを間引いて印字する(ド
ラフト印字)などを行うことで、本発明の実施の形態で
は重ね合わせ、間引きを行わない(ハイクオリティ印
字)を印字方法としているので図50のバッファと図5
1は同じデータとなる。図52は図51で印字パス処理
を実施されたデータに対して印字補正処理を行うバッフ
ァである。印字バッファの処理補正は印字ヘッド特有の
補正を行う処理で、本発明の実施の形態では印字ヘッド
は図46で示したように縦一列で一直線に構成されてい
るが、印字ヘッドが斜めに配置されているようなヘッド
ではヘッドの斜行に合わせて印字データをずらす(分散
斜め打ち処理)処理、また印字ヘッドが複数列で構成さ
れている場合に各々ヘッドにデータを対応させる処理な
どがある。図52はこれら処理を行ったデータを蓄える
ために図51のバッファに処理用の領域を+αしてい
る。図52でできあがったデータが印字ヘッドに送られ
印字が行われる。
【0234】図54はハイクオリティ印字の場合の印字
パスを示した図で、(1)から(15)までの印字パス
と示している。(2)から(15)までのパスは図を見
やすくするために右にずらして図示しているが、実際の
印字では(1)と同じ横位置に印字される。(1)から
(15)は印字ヘッドに対応している。印字パス(1)
ではブラックインクジェットヘッドの下から24ドット
で1、2、3のブラックデータを印字している。1、
2、3…の数字で表されているのは8ドット単位(1バ
イト)である。ブラックヘッドの残り40ドット(常に
イメージデータなし)と他の三色ではイメージデータな
し(ヌルデータ)、結果としてバンドb1にブラック
(1)、(2)、(3)のみ印字される。このブラック
データは図56のKバッファの(1)、(2)、(3)
当たり、他三色はC、M、Yバッファの(−)、
(−)、(−)に当たる。図56のカッコ内の数字は実
際に設定されているデータを意味し、−はイメージデー
タがヌルデータであることを示している。次に24ドッ
トのフィードを行い、印字パス(2)で図56のKバッ
ファの(4)、(5)、(6)のデータを印字する。バ
ンドb2のブラックが印字される。同様に繰り返して印
字パス(4)でシアンのインクジェットヘッド位置がバ
ンドb1に到達し、(A)、(B)、(C)のブラック
データと(1)、(2)、(3)のシアンデータを印字
する。図56のCバッファのA,B,Cにセットされて
いるイメージデータ(1)、(2)、(3)を印字す
る。印字パス(5)でマゼンタのインクジェットエッド
位置がバンドb1の2/3に到達し、(D)、(E)、
(F)のブラックデータと(4)、(5)、(6)のシ
アンデータと(−)、(1)、(2)のマゼンタデータ
を印字する。図56のCバッファのD、E、Fにセット
されているイメージデータ(4)、(5)、(6)とM
バッファのD、E、Fにセットされているイメージデー
タ(−)、(1)、(2)を印字する。印字パス(6)
でイエローのインクジェットヘッド位置がバンドb1の
1/3に到達し、(10)、(11)、(12)のブラ
ックデータと(7)、(8)、(9)のシアンデータと
(3)、(4)、(5)のマゼンタデータと(−)、
(−)、(1)のイエローデータを印字する。図56の
Cバッファの10、11、12にセットされているイメ
ージデータ(7)、(8)、(9)とMバッファの1
0、11、12にセットされているイメージデータ
(3)、(4)、(5)とYバッファの10、11、1
2にセットされているイメージデータ(−)、(−)、
(1)を印字する。印字パス(7)で(13)、(1
4)、(15)のブラックデータと(A)、(B)、
(C)のシアンデータと(6)、(7)、(8)のマゼ
ンタデータと(2)、(3)、(4)のイエローデータ
を印字する。図56のCバッファの13、14、15に
セットされているイメージデータ(A)、(B)、
(C)とMバッファの13、14、15にセットされて
いるイメージデータ(6)、(7)、(8)とYバッフ
ァの13、14、15にセットされているイメージデー
タ(2)、(3)、(4)を印字する。印字バンドに印
字ヘッドが到達するまではヌルデータが印字され、結果
として印字が行われないことになる。
【0235】図54の印字パス(7)が終了してバンド
b1は、4色ともに印字されたことになる。バンドb1
とバンドb2の1/3は、カラー印字が完全に終了した
ことになる。同様に印字パスとフィードを繰り返すこと
により、印字パス(14)まで終了するとバンドb8ま
での印字が完成する。
【0236】図55は図49にイメージデータがセット
された状態を示した図である。図中KSPはKデータセ
ットポインタの開始位置を示し、CSPはCデータセッ
トポインタの開始位置を示し、MSPはMデータセット
ポインタの開始位置を示し、YSPはYデータセットポ
インタの開始位置を示す。KSPはKバッファの先頭を
示し、CSP,MSP,YSPは各バッファの最終から
24ラスタの前の位置を示している。イメージデータの
セットはこれら4つのポインタの示す先に行われる。8
ラスタ単位で1から順にセットされバッファの最終まで
セットされると各データセットポインタはバッファの先
頭に戻され、バッファが繰り返し利用される。C、M、
Yの各バッファではバッファ先頭からCSP、MSP,
YSPの初期位置まではヌルデータがあらかじめセット
されている。図48にセットされたイメージデータは8
ラスタ単位で取り出され、図55のバッファにセットさ
れる。
【0237】図56は図55にセットされたイメージデ
ータを取り出して図50のバッファにセットするために
図49のバッファからデータを取り出す順序を示した図
で、図中KGPはKデータゲットポインタの開始位置を
示し、CGPはCデータゲットポインタの開始位置を示
し、MGPはMデータゲットポインタの開始位置を示
し、YGPはYデータゲットポインタの開始位置を示
す。イメージデータの取り出しは各ポインタの指し示す
先から行われる。KバッファからはKGP、Cバッファ
からはCGP、MバッファからはMGP、Yバッファか
らはYGPのそれぞれ指し示す先からデータが取り出さ
れ、図54の印字パス(1)では図56の1、2、3が
それぞれ取り出される。バッファの設定内容は図55で
示されており、C、M、Yの各色では1、2、3のイメ
ージデータにヌルデータがセットされており、イメージ
データの取り出しではこのヌルデータが取り出される。
(−)はヌルデータを表している。Cバッファでは1−
9、Mバッファでは1−D、Yバッファでは1−11ま
でがヌルデータとなる。
【0238】図57はポインタとカウンタを示した図
で、KSP71−01はKデータバッファにイメージデ
ータをセットする位置を示すポインタで、CSP71−
02はCデータバッファにイメージデータをセットする
位置を示すポインタで、MSP71−03はMデータバ
ッファにイメージデータをセットする位置を示すポイン
タで、YSP71−04はYデータバッファにイメージ
データをセットする位置を示すポインタ。KGP71−
05はKデータバッファからイメージデータを取り出す
位置を示すポインタで、CGP71−06はCデータバ
ッファからイメージデータを取り出す位置を示すポイン
タで、MGP71−07はMデータバッファからイメー
ジデータを取り出す位置を示すポインタで、YGP71
−08はYデータバッファからイメージデータを取り出
す位置を示すポインタ。RCNT71−09はKSPが
示す位置にイメージデータがセットされるごとにカウン
トアップされ、イメージデータが取り出されることでク
リアされる。取り出しに必要なイメージデータがセット
されたかどうかを判定するために使用される。これらの
領域は図2のRAM52に配置される。
【0239】以下、フローチャートに従って本実施例の
システム動作を詳細に説明する。なお、以下に述べるフ
ローチャートに示す手順は、ホストコンピュータの中央
演算装置CPUにおいて実行される。
【0240】図58は図42に示したコントロールコー
ド解析Task62−01を詳細に説明するフローチャ
ートで、まずステップS201でコントロールコード取
得を行う。コントロールコード取得は発明の実施の形態
1では図32の4108のW−RTOSホスト・アプリ
ケーションからコントロールコードを受け取る。また発
明の実施の形態2では図78の90−09のVCOMM
Port Driverから90−10のRTOS
Driverを経てコントロールコードを受け取る。
【0241】コントロールコードを受け取るとステップ
S202へ進み、印字コントロールコードかどうかのチ
ェックを行う。印字コントロールコードは図44の
(1)で示したコントロールコードでステップS202
はこのコントロールコードとの比較を行う。ステップS
202で印字コントロールコードであればステップS2
03へ進み、印字Taskへセマフォを送信する。次に
ステップS210へ進みタスクの終了待ちとなる。各タ
スクは自分の処理が終了するとき終了のセマフォを送信
する。ステップS210で待ち状態となっているコント
ロールコード解析タスクはステップS201へ進む。ス
テップS202で印字コントロールコードでない場合ス
テップS204へ進み、スキャンコントロールコードか
どうかのチェックを行う。スキャンコントロールコード
は図44の(2)で示したコントロールコードでステッ
プS204はこのコントロールコードとの比較を行う。
ステップS204でスキャンコントロールコードであれ
ばステップS205へ進み、スキャンTaskへセマフ
ォを送信する。次にステップS210へ進みタスクの終
了待ちとなる。ステップS204でスキャンコントロー
ルコードでない場合ステップS206へ進み、ヘッド交
換コントロールコードかどうかのチェックを行う。ヘッ
ド交換コントロールコードは図44の(4)で示したコ
ントロールコードでステップS206はこのコントロー
ルコードとの比較を行う。ステップS206でヘッド交
換コントロールコードであればステップS207へ進
み、ヘッド交換Taskへセマフォ送信する。次にステ
ップS210へ進みタスクの終了待ちとなる。ステップ
S206でヘッド交換コントロールコードでない場合ス
テップS208へ進み、給・排紙コントロールコードか
どうかのチェックを行う。給・排紙コントロールコード
は図44の(5)、(6)で示したコントロールコード
でステップS208はこのコントロールコードとの比較
を行う。ステップS208で給・排紙コントロールコー
ドであればステップS209へ進み、給・排紙Task
ヘセマフォを送信する。次にステップS210へ進みタ
スクの終了待ちとなる。給・排紙コントロールコードで
ない場合ステップS201へ進みコントロールコード取
得となる。以上の処理によりコントロールコードを取得
しコントロールコードの内容に対応したタスクへセマフ
ォを送信し各タスクの終了セマフォ待ちとなりコントロ
ールコード解析TaskがRunning状態からWa
it状態となる。Task Dispatcherによ
りコントロールコード解析Taskがセマフォを送信し
たタスクがRunning状態となる。
【0242】図59は図42に示した印字処理Task
62−02を詳細に説明するフローチャートで、まずス
テップS221で初期化を行う。初期化では図47〜図
53で示したバッファの確保、初期化、図57で示した
ポインタの初期設定、キャリッジ初期化動作(図23で
説明)を行う。次にステップS222へ進み、印字のセ
マフォ待ちとなる。印字処理Taskは印字に対するセ
マフォが送信されるまでステップS222で待ち状態と
なる。印字セマフォは図58で説明したコントロールコ
ード解析TaskのステップS202で印字コントロー
ルコードを解釈し、ステップS203で送信される。そ
れまで印字処理TaskはステップS222で待ち状態
となる。これは図41で説明したWait状態からRe
ady状態を経てRunning状態にタスクの状態が
変化したことを表している。印字セマフォが送信される
とステップS223へ進み印字コントロールコードの取
得となる。印字コントロールコード受け取ると印字コン
トロールコードを解析するためにステップS224へ進
みイメージコントロールコードかどうかのチェックを行
う。イメージコントロールコード図44の(7)であれ
ばステップS225へ進みイメージ展開処理を実行す
る。イメージ展開処理は送られてきたイメージデータを
バッファに展開し、データが整ったところでプリンタ部
へ送る処理を行う。イメージ展開処理は図60で詳細に
説明する。ステップS225で1ラスタ分のイメージデ
ータが処理されると、ステップS223へ戻り次のコン
トロールコード取得となる。ステップS224でイメー
ジコントロールコードでなければステップS226へ進
み、フィードコントロールコードかどうかのチェックを
行う。フィードコントロールコード図44の(9)であ
ればステップS227へ進み、フィード処理を行う。フ
ィード処理はフィードモーターを回して紙をフィードす
る処理を行う。フィード処理は図63で詳細に説明す
る。フィード処理が行われて紙のフィードが実行される
と、ステップS223へ戻り次のコントロールコード取
得となる。ステップS226でフィードコントロールコ
ードでなければステップS228へ進み、給・排紙コン
トロールコードかどうかのチェックを行う。給・排紙コ
ントロールコード図44の(5)、(6)であればステ
ップS229へ進み、給・排紙処理を行う。給・排紙処
理は新しい紙の給紙、あるいは紙の排紙を行う処理で、
給・排処理は図64で詳細に説明する。給・排紙処理が
行われて紙の給紙、排紙が実行されると、ステップS2
23へ戻り次のコントロールコード取得となる。ステッ
プS228で給・排紙コントロールコードでなければス
テップS230へ進み、終了コントロールコードかどう
かのチェックを行う。終了コントロールコード図44の
(3)でなければ、ステップS223へ戻り次のコント
ロールコード取得となる。ステップS230で終了コン
トロールコード図44の(3)であればステップS23
1へ進み、印字処理の終了を通知する終了セマフォを送
信し印字処理Taskは終了となる。この終了により図
41のRunning状態にあった印字タスクがWai
t状態に変化することを意味している。これら一連の処
理によりイメージデータが展開され印字が行われる。
【0243】図60は図59のステップS225を詳細
に説明するフローチャートで、ステップS241でコン
トロールコードの所得を行う。イメージ展開処理はコン
トロールコード図44の(7)あるいは(8)の場合に
呼び出される。次にステップS242へ進み、取得した
コントロールコードがイメージコントロールコード図4
4(7)どうかをチェックする。イメージコントロール
コードであればステップS243へ進み、ラスタデータ
のセットを行う。ラスタイメージデータは図44の
(7)に示したように4つの色に区別され、それぞれの
色に対応したバッファにセットされる。セットされるバ
ッファは図47のバッファでそれぞれ4色Y、M、C、
Kのバッファを8ラスタ分ずつ持っている。8ラスタ中
の図57に示したラスタカウントRCNTに設定されて
いる値のラスターにイメージデータがセットされる。イ
メージデータのセットが終わると戻りとなる。ステップ
S242でイメージコントロールコードでなければステ
ップS244へ進みラスタスキップコントロールコード
かどうかのチェックを行う。ラスタスキップコントロー
ルコードは図44の(8)で示され、このコントロール
コードによりラスタ位置を1ラスタ分先へ進める。ラス
タスキップコントロールコードでなければ戻りとなる。
ラスタスキップコントロールコードであれば、ステップ
S245へ進みデータの切り出しを行うかどうかのチェ
ックを行う。データの切り出しを行うがどうかのチェッ
クは図49のバッファにKデータが24ラスタ分新たに
セットされたかどうかで行われ、データがセットされた
場合イメージの切り出し可能となる。これは図55のK
データセットポインタKSPがデータのセットにより図
55では1、2、3あるいは4、5、6のように8ラス
タデータが3個分Kのバッファにセットされたかどうか
でチェックされる。ステップS245でデータ切り出し
可能でなければ、ステップS246へ進みラスタカウン
トRCNTが8ラスタかどうかをチェックする。8ラス
タになっていなければステップS247へ進みラスタカ
ウントRCNTを1カウントアップし戻りとなる。ステ
ップS246で8ラスタとなればステップS248へ進
み8ラスタ分のバッファ図47から図48へデータの転
送を行う。図48のバッファは16ラスタ分の大きさを
持ち、図47のバッファ2つ分の大きさとなる。はじめ
図47のバッファのデータは図48のバッファの前半の
8ラスタにセットされる。次のデータのセットの際には
16ラスタの後半にセットされる。次にステップS24
9へ進み図48のバッファの後半にデータが転送された
かどうかをチェックする。後半への転送が行われていな
ければステップS252へ進みラスタカウントRCNT
をクリアして戻りとなる。ステップS249で後半への
データ転送が行われていれば、ステップS250へ進み
イメージ加工の処理を行う。イメージ加工の処理は、図
48のバッファにセットされた16ラスタのデータの前
半8ラスタに対して行われ、各4色の色データの配置に
よりイメージデータの変換を行う処理を示している。こ
れら処理はたとえば境界検知処理と呼ばれ隣接する黒デ
ータをシアン、マゼンタ、イエローデータに置き換える
事によりイメージデータの濃度を下げインクのべたつき
を防ぐ処理である。これらの処理を送られてきた元デー
タに対して行いデータの加工を行った後のデータを以降
の処理に用いる。次にステップS251へ進みステップ
S250で作り出されたデータをイメージ展開用のバッ
ファ図49へ転送する。データの転送は図48のバッフ
ァの前半8ラスタが図49のバッファに送られる。バッ
ファにセットされる位置は図55のKデータセットポイ
ンタKSP、CデータセットポインタCSP、Mデータ
セットポインタMSP、YデータセットポンタYSPの
それぞれの色に対応した位置で行われ、図55の一つの
番号分のラスタデータが図48の前半から図49のバッ
ファへ転送される。転送後の図48のバッファは後半の
8ラスタデータが前半に転送される。以降図48のバッ
ファには後半のデータが図47のバッファからセットさ
れる。次にステップS252へ進みラスタカウントRC
NTをクリアして戻りとなる。ステップS245でデー
タ切り出し可能であればステップS253へ進みイメー
ジの切り出し処理を実行する。イメージの切り出し処理
はステップS251でセットされたイメージデータを印
字ヘッドに必要とされる分だけ図49のバッファから取
り出してくる処理で、それは図56に示したKデータゲ
ットポインタKGP、CデータゲットポインタCGP、
MデータゲットポインタMGP、Yデータゲットポイン
タYGPから8ラスタ単位で番号付けされた3個分(2
4ラスタ)を取り出すことで行われる。取り出されたデ
ータはラスタデータであり印字ヘッドにセットするデー
タはカラムデータとなる。このためラスタデータをカラ
ムデータに変換するための縦横変換が行われる。縦横変
換されたデータは図50のバッファにセットされる。黒
データは印字ヘッド分の64ドットが確保されているが
切り出されたデータ24ドットは64ドットの下から2
4ドットにセットされる。黒データの残り40ドットは
クリアされデータはセットされない。次にステップS2
54へ進み印字パスの処理を行う。印字パスの処理は図
50にステップS253で切り出されたデータに対して
行われ、処理されたデータが図51のバッファにセット
される。印字パスの処理は、一つの印字バンドを複数回
に分けて印字することにより高精細な印字を行うファイ
ン印字、印字データを間引いて濃度を下げるドラフト印
字などがあり、これらの処理は印字データに加工を行う
ことで実現される。ファイン印字であればあらかじめ決
めたファインマスクパターンと元のイメージデータとで
AND処理を行うことで加工され、ドラフト処理であれ
ば一定のパターンとで間引きを行う。次にステップS2
55へ進み印字補正処理を行う。印字補正処理はステッ
プS254で印字パス処理が行われた図51のバッファ
に対して行われ、図52のバッファに補正処理が実行さ
れたデータがセットされる。印字補正処理には、印字ヘ
ッドが斜めに配置された印字ヘッドを用いる場合、印字
ヘッドが複数列に配置されているなどの印字ヘッドに特
有の特性を補正する処理がある。本実施例ではヘッドが
斜めに配置されている場合で、図51にセットされたデ
ータを印字ヘッドの斜行した分だけ印字データを逆方向
に斜行することを行う。これは印字データをその分だけ
シフトすることで行いシフトしたデータを図52にセッ
トする。次にステップS256へ進み印字制御I/Oコ
ントロールコード作成処理を実行する。印字制御I/O
コントロールコード作成処理はステップS255で完成
した印字イメージの印字ヘッドに対応したデータに印字
制御I/Oコマンドを付加することで行う。一連の印字
は印字データを印字し24ドット分のフィードを行い印
字ヘッドを元の印字位置へ戻す処理で構成される。詳細
は図61のフローチャートで説明する。次にステップS
257へ進み制御I/Oコマンド転送処理を実行する。
制御I/Oコマンド転送処理はステップS256で完成
したイメージデータと印字の制御I/Oコマンドを送信
する。詳細は図62のフローチャートで説明する。次に
戻りとなる。
【0244】図61は図60のステップS256を詳細
に説明するフローチャートで、印字制御I/Oコマンド
作成処理を示している。印字制御I/Oコマンド作成処
理は印字のためのキャリッジモーターCMを制御して印
字イメージデータを印字し、ラインフィードモーターを
制御してラインフィードを行い、キャリッジモーターC
Mを印字前の位置に戻す処理を行う。
【0245】まず、ステップS261でキャリッジモー
ターCMの加速制御I/Oコマンドの作成を行う。CM
加速制御I/Oコマンドは図27で示した制御I/Oコ
マンドで、これら制御I/Oコマンドを使用する。印字
のためのキャリッジモーターCMの制御はキャリッジモ
ーターCMを加速し、次に等速として等速時に印字デー
タを印字ヘッドから吐出し、イメージデータを印字後減
速する。次にステップS262でキャリッジモーターC
Mの等速制御I/Oコマンドと図60ステップS255
で作成されたイメージデータに合わせてキャリッジモー
ターCMの等速制御と印字ヘッドの吐出制御の制御I/
Oコマンドを作成する。CM等速制御I/Oコマンドは
図26で示した制御I/Oコマンドで、これら制御I/
Oコマンドを使用しイメージデーターにヒートデータレ
ジスタ制御I/Oコマンド32xx(図18)xxはイ
メージデータを付加し、ヒート・スキャン駆動トリガ
(図18)3001を付加することで印字イメージを含
んだCM等速制御I/Oコマンドを作成する。次にステ
ップS263でキャリッジモーターCMの減速制御I/
Oコマンドを作成する。CM減速制御I/Oコマンドは
図29で示した制御I/Oコマンドで、これら制御I/
Oコマンドを使用する。ステップS261〜S263で
キャリッジモーターCMの印字制御I/Oコマンドが作
成される。
【0246】次にステップS264でラインフィードモ
ーターLFの加速制御I/Oコマンドを作成する。LF
加速制御I/Oコマンドは図28で示した制御I/Oコ
マンドで、これら制御I/Oコマンドを使用する。次に
ステップS265でラインフィードモーターLFの等速
制御I/Oコマンドを作成する。ただし、24ドットの
フィードを行う場合には、等速制御I/Oコマンドはな
い。次にステップS266でラインフィードモーターL
Fの減速制御I/Oコマンドを作成する。LF減速制御
I/Oコマンドは図31で示した制御I/Oコマンド
で、これらコマンドを使用する。ステップS264〜S
266でラインフィードモーターLFで24ドットのフ
ィードを行う分のフィード制御I/Oコマンドが作成さ
れる。
【0247】次にステップS267でキャリッジモータ
ーCMの加速制御I/Oコマンドを作成する。CM加速
制御I/Oコマンドは図25で示した制御I/Oコマン
ドで、これら制御I/Oコマンドを使用する。次にステ
ップS268でキャリッジモーターCMの等速制御I/
Oコマンドを作成する。CM等速制御I/Oコマンドは
図26で示した制御I/Oコマンドで、これら制御I/
Oコマンドを使用する。次にステップS269でキャリ
ッジモーターCMの減速制御I/Oコマンドを作成す
る。CM減速制御I/Oコマンドは図27で示した制御
I/Oコマンドで、これら制御I/Oコマンドを使用す
る。ステップS267〜S269でキャリッジモーター
CMの戻り制御I/Oコマンドが作成される。戻り制御
I/Oコマンドでは印字制御とは逆方向にキャリッジモ
ーターCMを動かすためステップS267にはキャリッ
ジモーターCMの方向を逆転する制御I/Oコマンドを
含む。以上の処理により印字してラインフィードを行い
キャリッジモーターCMを元の位置に戻す制御I/Oコ
マンドが作成される。
【0248】図62は図60のステップS257を詳細
に説明するフローチャートで、制御I/Oコマンド送信
処理を示している。制御I/Oコマンドの送信処理は図
60ステップS256で作成された印字制御I/Oコマ
ンドをプリンタ部へ送信するための処理である。まず、
ステップS271でプリンタ部が制御I/Oコマンド受
信可能であるかをチェックする。受信可能であるかどう
かのチェックは図10のBPSTARTの値をチェック
することで行う。BPSTARTの値が0であれば受信
可能となる。受信可能でなければステップS271を繰
り返す。ステップS271で制御I/Oコマンド受信可
能であれば、ステップS272へ進み、プリンタ部と接
続するポートのアドレス制御I/Oコマンドを書き込
む。制御I/Oコマンド書き込みのポートは図6の
(c)で示されこのポートアドレスにデータを書き込む
ことで行える。データ書き込み後の図7PRINTER
MEMORYの詳細を図72〜図74に示す。図72
でPRINTER MEMORYには印字制御(1−
1)−(1−3)とラインフィード制御(2−1)−
(2−2)と戻り制御(3−1)−(3−3)の制御I
/Oコマンドがセットされている。(1−1)は図61
ステップS261で作成されるCM加速制御I/Oコマ
ンドで、その内容は図25に示される。(1−2)は図
61ステップS262で作成される制御I/Oコマンド
でCM等速と印字イメージを付加したもので図73で詳
細に説明する。(1−3)は図61ステップS263で
作成されるCM減速制御I/Oコマンドで、その内容は
図27に示される。(2−1)は図61ステップS26
4で作成されるLF加速制御I/Oコマンドで、その内
容は図28に示される。(2−2)は図61ステップS
266で作成されるLF減速制御I/Oコマンドで、そ
の内容は図29に示される。(3−1)は図61ステッ
プS267で作成されるCM加速制御I/Oコマンド
で、その内容は図25に示される。(3−2)は図61
ステップS268で作成されるCM等速制御I/Oコマ
ンドで、その内容は図26に示される。(3−3)は図
61ステップS269で作成されるCM減速制御I/O
コマンドで、その内容は図27に示される。(4)は終
了制御I/Oコマンドがセットされる。終了制御I/O
コマンドは1000で図10のBPENDで制御I/O
コマンドの実行はBPENDで終了する。図73は図7
2の(1−2)の内容を示した図で、図26の等速制御
にイメージのデータを付加して印字を実行するように構
成される。第1カラムから第nカラムまでの制御を示し
ており、図中6901から6528は図25と同じで3
200+dataの部分がイメージデータを吐出するた
めにヒートレジスタにデータを送る制御I/Oコマンド
となる。制御I/Oコマンド3200は図18のアドレ
ス32HDRでヒートデータレジスタである。ヒートデ
ータレジスタは印字のためのヒータレジスタで印字ヘッ
ドに対応する。その詳細は図13で説明されている。d
ata(1−1)からdata(1−17)は印字ヘッ
ド1列分のデータでデータの構成は図74に示す。32
00+dataのつぎの1406はデータを送る時間間
隔を指定する制御I/Oコマンドで2マイクロセコンド
の時間をとる。3200+data(1−17)の後に
1500,14E3で1カラムごとの時間設定を行う。
ここまでの時間でインクを吐出する時間をキャリッジの
移動時間に合わせる。3101は図18のアドレス31
HDRUNでセットしたイメージデータの吐出を指定す
る。これで1カラム分の印字制御が構成され、同時にn
カラムまで繰り返すことでnカラム分の印字が出来る。
図74は印字データの印字位置を表した図で1からnカ
ラムの印字となる。これは図60のステップS255ま
でで作成された印字イメージとなる。制御I/Oコマン
ド書き込み後ステップS273へ進み制御I/Oコマン
ドの実行を指定する。制御I/Oコマンド実行は制御I
/Oコマンド制御ポート図6(a)で示されこのポート
に実行を指示して書き込むことにより行える。これは図
10のBPSTARTに1をライトする事で行う。制御
I/Oコマンドの実行は図9のタイミングチャートで説
明した手順に従って行われる。以上の処理により制御I
/Oコマンドのプリンタ部への送信と制御I/Oコマン
ドの実行が行える。
【0249】図63は図59のステップS227を詳細
に説明するフローチャートで、フィード処理を示してい
る。フィード処理はフィードコントロールコード図44
(9)で示されるコントロールコードに対する処理でま
ずステップS281でラインフィードモーターLFの加
速制御I/Oコマンドを作成する。次にステップS28
2でラインフィードモーターLFの等速制御I/Oコマ
ンドを作成する。等速制御I/Oコマンドは図44
(9)で示されたコントロールコードのfeedに設定
されている値分の等速が継続するように作成される。次
にステップS283ラインフィードモーターLFの減速
制御I/Oコマンドを作成する。次に、ステップS28
4でプリンタ部が制御I/Oコマンド受信可能であるか
をチェックする。受信可能でなければステップS284
を繰り返す。ステップS284で制御I/Oコマンド受
信可能であれば、ステップS285へ進み、プリンタ部
と接続するポートのアドレスに制御I/Oコマンドを書
き込む。これは図62のステップS272と同様にな
る。次にステップS286で制御I/Oコマンド実行を
行う。これは図62のステップS273と同様になる。
以上の処理によりフィードコントロールコードに対する
処理が行われフィードが実行される。
【0250】図64は図59のステップS229を詳細
に説明するフローチャートで、給・排紙処理を示してい
る。まずステップS291で給紙コントロールコードあ
るいは排紙コントロールコードに対する制御I/Oコマ
ンドを作成する。次に、ステップS292でプリンタ部
が制御I/Oコマンド受信可能であるかをチェックす
る。受信可能でなければステップS292を繰り返す。
ステップS292で制御I/Oコマンド受信可能であれ
ば、ステップS293へ進み、プリンタ部と接続するポ
ートのアドレスに制御I/Oコマンドを書き込む。これ
は図62のステップS272と同様になる。次にステッ
プS294で制御I/Oコマンド実行を行う。これは図
62のステップS273と同様になる。以上の処理によ
り給紙・排紙に対する処理が行われる。
【0251】以上、図59から図64で印字処理につい
て説明した。
【0252】図65は図42に示したスキャン処理Ta
sk62−03を詳細に説明するフローチャートで、ま
ず、ステップS301で初期化を行う。初期化ではバッ
ファの確保、初期化などを行う。次にステップS302
へ進み、スキャンのセマフォ待ちとなる。スキャン処理
Taskはスキャンに対するセマフォが送信されるまで
ステップS302で待ち状態となる。スキャンセマフォ
は図58で説明したコントロールコード解析Taskの
ステップS204でスキャンコントロールコードを解釈
し、ステップS205で送信される。それまでスキャン
処理TaskはステップS302で待ち状態となる。こ
れは図41で説明したWait状態からReady状態
を経てRunning状態にタスクの状態が変化したこ
とを表している。印字セマフォが送信されるとステップ
S303へ進みスキャンコントロールコードの取得とな
る。スキャンコントロールコード受けるとスキャンコン
トロールコードを解析するためにステップS304へ進
みスキャンコントロールコードかどうかのチェックを行
う。スキャンコントロールコードは図44(10)で示
されこのコントロールコードであればステップS305
へ進む。ステップS305ではスキャンの処理が行われ
スキャンしたイメージデータをスキャンアプリケーショ
ンに戻すことができる。詳細は図66のフローチャート
で説明する。ステップS306からステップS311ま
では図59の印字処理TaskのステップS226から
ステップS231と同様で説明は省略する。
【0253】図66は図65のステップS305を詳細
に説明するフローチャートでまずステップS321でス
キャン制御I/Oコマンドの作成を行う。スキャン制御
I/Oコマンドはスキャン動作を行うために制御I/O
コマンドでキャリッジモーターCMを加速し、等速とし
た後スキャナーヘッドからスキャンデータを読み出して
保存するための制御I/Oコマンドをセットし、減速制
御I/Oコマンドをセットする。次にスキャンヘッド分
のフィードを行い、キャリッジを戻す処理をセットす
る。次に、ステップS322でプリンタ部が制御I/O
コマンド受信可能であるかをチェックする。受信可能で
なければステップS322を繰り返す。ステップS32
2で制御I/Oコマンド受信可能であれば、ステップS
323へ進み、プリンタ部と接続するポートのアドレス
に制御I/Oコマンドを書き込む。これは図62のステ
ップS272と同様になる。
【0254】データ書き込み後の図7PRINTER
MEMORYの詳細を図75〜図77に示す。図75で
PRINTER MEMORYにはスキャン制御(1−
1)−(1−3)とラインフィード制御(2−1)−
(2−3)と戻り制御(3−1)−(3−3)の制御I
/Oコマンドがセットされている。(1−1)は図61
ステップS261で作成されるCM加速制御I/Oコマ
ンドと同じで、その内容は図25に示される。(1−
2)はスキャン制御I/OコマンドでCM等速とイメー
ジデータ取得制御I/Oコマンドを付加したもので図7
6で詳細を説明する。(1−3)は図61ステップS2
63で作成されるCM減速制御I/Oコマンドと同じ
で、その内容は図27に示される。(2−1)は図61
ステップS264で作成されるLF加速制御I/Oコマ
ンドと同じで、その内容は図28に示される。(2−
2)は図63ステップS282で作成されるLF等速制
御I/Oコマンドと同じで、その内容は図28に示され
る。(2−3)は図61ステップS266で作成される
LF減速制御I/Oコマンドと同じで、その内容は図2
9に示される。(3−1)は図61ステップS267で
作成されるCM加速制御I/Oコマンドと同じで、その
内容は図25に示される。(3−2)は図61ステップ
S268で作成されるCM等速制御I/Oコマンドと同
じで、その内容は図26に示される。(3−3)は図6
1ステップS269で作成されるCM減速制御I/Oコ
マンドと同じで、その内容は図27に示される。(4)
は終了制御I/Oコマンドがセットされる。終了制御I
/Oコマンドは1000で図10のBPENDで制御I
/Oコマンドの実行はBPENDで終了する。(5)は
スキャンイメージデータ保存エリアでスキャンしたイメ
ージデータを1ライン分スキャンが終了するまで保存す
る領域である。図76は図75の(1−2)の内容を示
した図で、図26の等速制御にイメージデータ取得制御
I/Oコマンドを付加してスキャンを実行するように構
成される。第1カラムから第2カラムまでの制御を示し
ており以降同様にnカラムまで繰り返す。図中6901
から6528は図25と同じで、3101から始まって
1500,1404,133A,1200,133B,
1200までが1カラムのスキャンを指示し、スキャン
ヘッドの2バイト分のデータを取り出してスキャンイメ
ージデータ保存エリアに保存する制御I/Oコマンドと
なる。3101は図18のアドレス31HDRUNでイ
メージデータの取り込みタイミングを指定する。133
A,1200,133B,1200はスキャンしたイメ
ージデータをイメージデータが格納されているレジスタ
3A,3B(図18)から図75(5)のスキャンイメ
ージデータ保存エリアに保存する。
【0255】スキャンされたイメージデータの構成は図
77に示す。1カラムのスキャン動作、16バイトイメ
ージデータ保存後の1502,14CFで1カラムごと
の時間設定を行う。ここまでのトータル時間でスキャン
する時間をキャリッジの移動時間に合わせる。これで1
カラム分のスキャン制御が構成され、同様にnカラムま
で繰り返すことでnカラム分のスキャンが出来る。
(3)はスキャンデータの構成を表した図で横方向に1
からnカラムで縦1から16バイトの構成で128ドッ
トとなる。
【0256】次にステップS324で制御I/Oコマン
ド実行を行う。これは図62のステップS273と同様
になる。次にステップS325でプリンタ部へ送った制
御I/Oコマンドが実行されてスキャンが終了したかど
うかのチェックを行う。終了していなければステップS
325へ戻る。ステップS325でスキャンが終了する
と、ステップS326へ進み、スキャンしたイメージデ
ータをスキャンアプリケーションへ送信する。スキャン
したイメージデータはプリンタ部に保存されステップS
326でプリンタ部から読み出される。イメージデータ
の読み出しは図6(c)のポートで行う。図38にスキ
ャン動作を行うタスクとWindowsスキャナ・アプ
リケーションの構成を示す。
【0257】図65、図66のスキャン処理よりプリン
タ部でスキャンされたイメージデータをスキャンアプリ
ケーションへ送り出すことができる。
【0258】図67は図42に示したタイマー管理Ta
sk62−06を詳細に示したフローチャートでタイマ
ー管理Taskは図40のTask Controlの
Timerにより一定の時間ごとに呼び出される。ステ
ップS331で経過時間の算出を行う。タイマー管理T
askは一定時間で呼び出されるため呼び出される回数
から経過時間を算出することが出来る。次にステップS
332へ進み回復系処理時間かどうかをチェックする。
ステップS331で算出された時間を基に一定の時間ご
とに回復系の処理を実行するためにチェックが行われ
る。ステップS332で回復系の処理時間であれば、ス
テップS333へ進み回復系処理Taskへセマフォを
送信する。次にステップS340へ進み終了セマフォ待
ちとなる。ステップS332で回復系処理時間でなけれ
ばステップS334へ進み、印字ヘッド温調処理時間か
どうかをチェックする。ステップS334で印字ヘッド
温調処理時間であれば、ステップS335へ進み印字ヘ
ッド温調処理Taskへセマフォを送信する。次にステ
ップS340へ進み終了セマフォ待ちとなる。ステップ
S334で印字ヘッド温調処理時間でなければステップ
S336へ進み、エラーをチェックする。ステップS3
36でエラーがあれば、ステップS337へ進みエラー
処理Taskへセマフォを送信する。次にステップS3
40へ進み終了セマフォ待ちとなる。ステップS336
でエラーでなければステップS338へ進み、電源管理
変更をチェックする。ステップS338で電源管理変更
があれば、ステップS339へ進み電源管理Taskへ
セマフォを送信する。次にステップS340へ進み終了
セマフォ待ちとなる。次にステップS341へ進み、タ
イマー管理Taskの終了セマフォを送信する。
【0259】図68は図42の回復系処理Task62
−07の詳細を示したフローチャートで、ステップS3
51で初期化を行う。次にステップS352で回復系処
理Taskへのセマフォ待ちとなる。図67のステップ
S333で回復系処理Taskへのセマフォが送信され
るとステップS353へ進み回復系処理へと進む。ステ
ップS353でキャッピング時間であるかどうかをチェ
ックする。キャッピング時間であるかどうかのチェック
は最後に印字した時間からの経過時間で行われ、キャッ
ピング時間であればステップS354へ進み、キャッピ
ング処理を実行する。キャッピングは印字ヘッドが印字
されずに放置され、インクが乾くことを防止するために
キャッピング位置にキャリッジを移動して密閉すること
でインクの乾燥を防ぐ処理である。印字が連続して行わ
れる場合には、毎回キャッピングすると印字時間が延び
るため、最後に印字を行った時点から一定の時間印字が
行われなかった場合にキャッピングする。次にステップ
S361へ進み、終了セマフォを送信する。ステップS
353でキャッピング時間でなければ、ステップS35
5へ進みワイピング時間かどうかのチェックを行う。ワ
イピング時間かどうかのチェックは前回のワイピング時
間からの経過時間で行われ、ワイピング時間であればス
テップS356へ進みワイピング処理実行する。ワイピ
ングは印字ヘッドに付着した余分なインクを拭き取る処
理である。ワイピング処理は一定の印字時間ごとに行わ
れ、キャリッジをワイピング位置へ移動し、ワイピイン
グブレードで余分なインクをふき取り、余分なインクに
よる混色等を防ぐ。次にステップS361へ進み、終了
セマフォを送信する。ステップS355でワイピング時
間でなければ、ステップS357へ進み予備吐時間かど
うかのチェックを行う。予備吐時間かどうかのチェック
は前回の予備吐時間からの経過時間で行われ、予備吐時
間であればステップS358へ進み予備吐処理実行す
る。予備吐は印字ヘッドが目詰まりする事を防止する処
理である。予備吐処理は一定の印字時間ごとに行われ予
備吐位置へキャリッジを移動し一定量のインクを吐出し
て、インクがヘッドで目詰まりすることを防ぐ。次にス
テップS361へ進み、終了セマフォを送信する。ステ
ップS357で予備吐時間でなければ、ステップS35
9へ進みクリーニング時間かどうかのチェックを行う。
クリーニング時間かどうかのチェックは前回のクリーニ
ング時間からの経過時間と印字起動の一回目などで行わ
れ、クリーニング時間であればステップS360へ進み
クリーニング処理実行する。クリーニングは印字ヘッド
が目詰まりする事を防止する予備吐処理と印字ヘッドに
付着した余分なインクを拭き取るワイピング処理を合わ
せて行う処理である。クリーニング処理は予備吐処理と
ワイプ処理を行うことでヘッドのクリーニングが行え、
ヘッドを最適な状態に保つ。次にステップS361へ進
み、終了セマフォを送信する。
【0260】図69は図42のヘッド温調処理Task
62−08の詳細を示したフローチャートで、ステップ
S371で初期化を行う。次にステップS372でヘッ
ド温調処理Taskへのセマフォ待ちとなる。図67の
ステップS335でヘッド温調処理Taskへのセマフ
ォが送信されるとステップS373へ進み各ヘッド温調
処理へと進む。ステップS373で装着されているヘッ
ドが印字ヘッドであるかスキャナヘッドであるかどうか
をチェックする。ステップS373でスキャナであれ
ば、ステップS374へ進みスキャナヘッドの温調処理
を実行する。スキャナヘッドの温調処理はスキャナヘッ
ドに搭載されている光源がいつも一定の光量以上で点灯
できるようにスキャンヘッドの光源を前もって必要時間
分点灯する処理である。次にステップS376へ進み、
終了セマフォを送信する。ステップS373でスキャナ
ヘッドでない場合、ステップS375へ進み、印字ヘッ
ド温調処理を行う。印字ヘッド温調処理は印字ヘッドが
一定の状態でインクを吐出出来るように印字ヘッドのヒ
ータを前もって暖めたり、印字が連続すると印字ヘッド
の温度が上昇し、ヘッドの温度変化に対応した印字ヘッ
ドの温度調整を行う。次にステップS376へ進み、終
了セマフォを送信する。
【0261】図70は図42のエラー処理Task62
−09の詳細を示したフローチャートで、ステップS3
81で初期化を行う。次にステップS382でエラー処
理Taskへのセマフォ待ちとなる。図67のステップ
S337でエラー処理Taskへのセマフォが送信され
るとステップS383へ進みエラー処理へと進む。ステ
ップS383でエラーがあるかどうかをチェックする。
ステップS383でエラーであれば、ステップS384
へ進みエラー処理を実行する。エラー処理は各種プリン
タのエラーを行う処理で、エラーにはモーター、ヘッ
ド、紙関係などがあり、それらエラーに対する処理を行
う。次にステップS385へ進み、終了セマフォを送信
する。
【0262】図71は図42の電源管理Task62−
10の詳細を示したフローチャートで、ステップS14
01で初期化を行う。次にステップS392で電源管理
Taskへのセマフォ待ちとなる。図67のステップS
339で電源管理Taskへのセマフォが送信されると
ステップS393へ進み電源管理処理へと進む。ステッ
プS393で電源変動があるかどうかをチェックする。
ステップS393で電源変動であれば、ステップS39
4へ進み電源管理処理を実行する。電源管理処理はプリ
ンタの電源に関する処理で、電圧の低下など、それら電
源変動に対する処理を行う。次にステップS395へ進
み、終了セマフォを送信する。
【0263】以上、図67から図71でタイマー管理T
askについて説明したが、一定の時間ごとにタイマー
管理Taskが起動され、タイマー管理Taskにより
時間の経過に従って行う処理が実行される。
【0264】(実施の形態2)図78は本発明の実施の
形態の処理を示すブロック図である。
【0265】図中90−01はウィンドウズ・アプリケ
ーションであり、90−02はウィンドウズ・オペレー
ティング・システムにおけるプリンティングサブシステ
ムであり、90−03はウィンドウズ・オペレーティン
グ・システムにおけるスプーリングサブシステムであ
り、通常のウィンドウズのプリントシーケンスに従い、
印刷用データ(コントロールコード)を生成しスプール
ファイルに蓄える。
【0266】90−05はW−RTOSホスト・アプリ
ケーションである。W−RTOSホスト・アプリケーシ
ョン90−05は、RTOSと通信する機能を有する。
通常のウィンドウズ・アプリケーションである。
【0267】90−06はRTOSタスクであり、90
−07はDCPE Portである。RTOSタスク9
0−06は、W−RTOSホスト・アプリケーション9
0−05により起動され、発明の実施の形態1RTOS
タスクと同様に印刷用データ(コントロールコード)を
プリンタヘッドイメージ・プリンタ制御I/Oコマンド
に変換し、DCPE Port90−07に書き出す。
【0268】90−08はウィンドウズ・オペレーティ
ング・システムにおけるVCOMMであり、90−09
はウィンドウズ・オペレーティング・システムにおける
VCOMMポートドライバである。VCOMM90−0
8は通常のウィンドウズのプリントシーケンスに従い、
スプーリングサブシステム90−03より印刷用データ
(コントロールコード)を受け取り、VCOMMポート
ドライバ90−09にこれを引き渡す。
【0269】90−10はRTOSドライバであり、R
TOSの提供するストリーム入出力(SIO)を介して
RTOSタスク90−06に印刷用データ(コントロー
ルコード)を引き渡す。RTOSタスク及びRTOSド
ライバはウィンドウズ環境下で動作するリアルタイムオ
ペレーティングシステムRTOSの下で動作しており、
CPU動作モードRing0で動作している。
【0270】VCOMM及びVCOMMポートドライバ
はともにウィンドウズ・オペレーティング・システムに
おけるVxDであり、CPU動作モードRing0で動
作し、構造体DDBによりシステムに認識される。構造
体DDBには、デバイス名、サービス・エントリーポイ
ントなどが含まれる。VCOMMポートドライバは、V
COMMに対してポートドライバファンクションと呼ば
れる関数群を提供し、これらは概ねVCOMMのサービ
スに対応している。スプーリングサブシステムはウィン
ドウズ・システムAPIを介してVCOMMのサービス
を呼び出し、VCOMMはサービスに対応するポートド
ライバファンクションを呼び出して印刷用データ(コン
トロールコード)を出力する。印刷用データ(コントロ
ールコード)の出力に関係する主なポートドライバファ
ンクションは、Port Open(ポートのオープ
ン)、Port Close(ポートのクローズ)、P
ort Setup(送受信キューのセットアップ)、
Port Write(出力キューへの書込み)、Po
rt Get Queue Status(キューの状
態の引出し)、などである。通常のウィンドウズのプリ
ントシーケンスにおいては、VCOMMポートドライバ
は、印刷用データ(コントロールコード)をプリンタが
接続された物理ポートに書き出す。本発明の実施の形態
においては、VCOMMポートドライバ90−09は、
印刷用データ(コントロールコード)をRTOSドライ
バ90−10に引き渡す。
【0271】図79はRTOSのストリーム入出力の働
きを示すブロック図で、本発明の実施の形態で用いるス
トリーム入力について説明する。図中91−01はRT
OSタスク、91−02はSIO、91−03はRTO
Sドライバ、91−04は空バッファ、91−05は入
力データが格納されたバッファである。RTOSタスク
91−01はSIO91−02の入力ファンクションS
IO_get()を呼び出し、空バッファをSIO91
−02に渡す。SIO91−02は渡された空バッファ
を空バッファキューに入れてRTOSドライバ91−0
3の入力ファンクションDxx_input()を呼び
出す。RTOSドライバ91−03は空バッファキュー
から空バッファを取り出し、このバッファに入力データ
を格納する。バッファが入力データで満たされるとバッ
ファを入力データバッファキューに入れる。SIO91
−02はDxx_input()から戻るとSIO_g
et()を終了し入力データバッファキューから入力デ
ータが格納されたバッファをRTOSタスク91−01
に返す。以下、フローチャートを用いてRTOSドライ
バ91−03の処理を説明する。
【0272】図80は、Dxx_input()のフロ
ーチャートである。ステップS400で入力ジョブを開
始する。入力ジョブは非同期に起動され処理をするの
で、RTOSドライバ91−03は同期のためのセマフ
ォを持つ。ステップS401でこのセマフォがポストさ
れるのを待つ。ポストされると処理を終え戻る。
【0273】図81は、入力ジョブのフローチャートで
ある。ステップS410でデバイスから入力しバッファ
にデータを格納する。本発明の実施の形態においては前
述の通りVCOMMポートドライバ90−09からデー
タを受け取ることになる。ステップS411でバッファ
がフルになったかどうかを判定し、フルでなければ処理
を終える。バッファがフルになると、ステップS412
でバッファを入力データバッファキューに入れて、ステ
ップS413でセマフォをポストする。
【0274】以下、VCOMMポートドライバ90−0
9からRTOSドライバ90−10へのデータの引き渡
しについて説明する。
【0275】RTOSドライバ90−10はRTOSの
提供するファンクションIA_addDDB()によ
り、自身の持つ構造体DDBをウィンドウズ・オペレー
ティングシステムのVxD層のDDBチェーンに加える
ことによりエントリーポイントをエクスポートする。V
COMMポートドライバ90−09はウィンドウズの提
供するサービスgetDDB()により、RTOSドラ
イバ90−10のDDBを検索し、エントリーポイント
を取得する。VCOMMポートドライバ90−09は、
前述したポートドライバファンクションPort Wr
ite(出力キューへの書込み)が呼び出されると前記
エントリーポイントによりRTOSドライバ90−10
を呼び出してVCOMMから渡された印刷用データ(コ
ントロールコード)をRTOSドライバ90−10に引
き渡す。RTOSドライバ90−10はこれを入力デー
タとして、前記入力ジョブを行う。
【0276】(実施の形態3)図82は本発明の実施の
形態の処理を示すブロック図である。
【0277】図中94−01はウィンドウズ・アプリケ
ーションであり、94−02はウィンドウズ・オペレー
ティング・システムにおけるプリンティングサブシステ
ム・スプーリングサブシステムであり、94−03はウ
ィンドウズ・オペレーティング・システムにおけるプリ
ンタドライバであり、94−04はデータ変換タスクで
あり、94−05はウィンドウズ・オペレーティング・
システムにおけるVCOMMであり、94−06はウィ
ンドウズ・オペレーティング・システムにおけるVCO
MMポートドライバであり、94−07はDCPE P
ortである。本発明の実施の形態においても通常のウ
ィンドウズのプリントシーケンスに従い、印刷用データ
(コントロールコード)を生成しスプールファイルに蓄
える。ただし、プリンタドライバ94−03は発明の実
施の形態1RTOSタスクと同様に処理するデータ変換
タスク94−04と通信してこれを印刷用データ(コン
トロールコード)をプリンタヘッドイメージ・プリンタ
制御I/Oコマンドに変換し、これをVCOMM、VC
OMMポートドライバを介して、DCPE Portに
出力する。
【0278】(実施の形態4)第1の発明の実施の形態
では、ホスト部とプリンタ部の間のインターフェイスを
ISAバスを介して接続した構成についての説明をした
が、インターフェイスの構造についてはこれに限定され
るものではなく、第3の形態としてISAバスの代わり
に汎用の高速インターフェイスとしてIEEE1394
を用いた実施の形態について説明する。
【0279】まず初めにIEEE1394の技術の概要
についての説明を行うと、家庭用デジタルVTRやDV
Dの登場も伴って、ビデオデータやオーディオデータな
どのリアルタイムでかつ高情報量のデータ転送のサポー
トが必要になっている。こういったビデオデータやオー
ディオデータをリアルタイムで転送し、パソコン(P
C)に取り込んだり、またはその他のデジタル機器に転
送を行うには、必要な転送機能を備えた高速データ転送
可能なインタフェースが必要になってくるものであり、
そういった観点から開発されたインタフェースがIEE
E1394−1995(以下1394シリアルバス)で
ある。
【0280】図83に1394シリアルバスを用いて構
成されるネットワーク・システムの例を示す。このシス
テムは機器A,B,C,D,E,F,G,Hを備えてお
り、A−B間、A−C間、B−D間、D−E間、C−F
間、C−G間、及びC−H間をそれぞれ1394シリア
ルバスのツイスト・ペア・ケーブルで接続されている。
この機器A〜Hは例としてPC、デジタルVTR、DV
D、デジタルカメラ、ハードディスク、モニタ等であ
る。各機器間の接続方式は、ディジーチェーン方式とノ
ード分岐方式とを混在可能としたものであり、自由度の
高い接続が可能である。
【0281】また、各機器は各自固有のIDを有し、そ
れぞれが認識し合うことによって1394シリアルバス
で接続された範囲において、1つのネットワークを構成
している。各デジタル機器間をそれぞれ1本の1394
シリアルバスケーブルで順次接続するだけで、それぞれ
の機器が中継の役割を行い、全体として1つのネットワ
ークを構成するものである。また、1394シリアルバ
スの特徴でもある、Plug&Play機能でケーブル
を機器に接続した時点で自動で機器の認識や接続状況な
どを認識する機能を有している。
【0282】また、図83に示したようなシステムにお
いて、ネットワークからある機器が削除されたり、また
は新たに追加されたときなど、自動的にバスリセットを
行い、それまでのネットワーク構成をリセットしてか
ら、新たなネットワークの再構築を行う。この機能によ
って、その時々のネットワークの構成を常時設定、認識
することができる。
【0283】またデータ転送速度は、100/200/
400Mbpsと備えており、上位の転送速度を持つ機
器が下位の転送速度をサポートし、互換をとるようにな
っている。
【0284】データ転送モードとしては、コントロール
信号などの非同期データ(Asynchronousデ
ータ:以下Asyncデータ)を転送するAsynch
ronous転送モード、リアルタイムなビデオデータ
やオーディオデータ等の同期データ(Isochron
ousデータ:以下Isoデータ)を転送するIsoc
hronous転送モードがある。このAsyncデー
タとIsoデータは各サイクル(通常1サイクル125
μS)の中において、サイクル開始を示すサイクル・ス
タート・パケット(CSP)の転送に続き、Isoデー
タの転送を優先しつつサイクル内で混在して転送され
る。
【0285】次に、図84に1394シリアルバスの構
成要素を示す。1394シリアルバスは全体としてレイ
ヤ(階層)構造で構成されている。図3に示したよう
に、最もハード的なのが1394シリアルバスのケーブ
ルであり、そのケーブルのコネクタが接続されるコネク
タポートがあり、その上にハードウェアとしてフィジカ
ル・レイヤとリンク・レイヤがある。
【0286】ハードウェア部はインターフェイスチップ
の部分であり、そのうちフィジカル・レイヤは符号化や
コネクタ関連の制御等を行い、リンク・レイヤはパケッ
ト転送やサイクルタイムの制御等を行う。
【0287】ファームウェア部のトランザクション・レ
イヤは、転送(トランザクション)すべきデータの管理
を行い、ReadやWriteといった命令を出す。マ
ネージメント・レイヤは、接続されている各機器の接続
状況やIDの管理を行い、ネットワークの構成を管理す
る部分である。このハードウェアとファームウェアまで
が実質上の1394シリアルバスの構成である。
【0288】またソフトウェア部のアプリケーション・
レイヤは使うソフトによって異なり、インタフェース上
にどのようにデータをのせるか規定する部分であり、A
Vプロトコルなどのプロトコルによって規定されてい
る。以上が1394シリアルバスの構成である。
【0289】次に、図85に1394シリアルバスにお
けるアドレス空間の図を示す。
【0290】1394シリアルバスに接続された各機器
(ノード)には必ず各ノード固有の、64ビットアドレ
スを持たせておく。そしてこのアドレスをROMに格納
しておくことで、自分や相手のノードアドレスを常時認
識では相手を指定した通信も行える。1394シリアル
バスのアドレッシングは、IEEE1212規格に準じ
た方式であり、アドレス設定は、最初の10bitがバ
スの番号の指定用に、次の6bitがノードID番号の
指定用に使われる。それぞれの機器内で使用できる48
ビットのアドレスについても20ビットと28ビットに
分けられ、256Mバイト単位の構造を持って利用され
る。
【0291】最初の20ビットの0〜0xFFFFDの
部分はメモリ空間と呼ばれる。0xFFFFEの部分は
プライベート空間と呼ばれ、機器内で自由に利用できる
アドレスである。0xFFFFFの部分はレジスタ空間
と呼ばれ、バスに接続された機器間で共通な情報が置か
れ、各機器間のコミュニケーションに使われる。レジス
タ空間の最初の512バイトには、CSRアーキテクチ
ャのコアになるレジスタ(CSRコア)がある。次の5
12バイトにはシリアルバスのレジスタがある。その次
の1024バイトにはConfiguration R
OMが置かれる。残りはユニット空間で機器固有のレジ
スタがある。以上が1394シリアルバスの技術の概要
である。
【0292】図86は本発明の第3の実施の形態とし
て、ホスト部とプリンタ部のインターフェイスを139
4シリアルバスを使って接続したシステムのブロック図
である。ホスト部とプリンタ部の主要構成については、
図2の概略ブロック図と同等であるので詳しい説明は省
略するが、相違点としてはホスト部とプリンタ部の各々
に1394IFブロックが付加されていて、この139
4IFを介した1394シリアルバスケーブルによって
お互いのデータのやり取りが行われる。1394IF
は、1394シリアルバスで転送されるシリアルデータ
を各機器の内部バスと接続するために、シリアル−パラ
レル変換やデータパケットの構成等を行うブロックであ
る。
【0293】すなわち本発明の実施の形態におけるプリ
ンタ部は、ホスト部に対して1394シリアルバスでつ
ながれた形態になっていて、1394シリアルバス上の
レジスタ空間を介してホスト部とのデータのやり取りを
行うことができる。
【0294】図87は本発明の実施の形態におけるプリ
ンタ部の内部構成を示すブロック図である。主要ロジッ
クについては図7のブロックと同等であるが、ステート
マシンコントローラにつながっていたISA−busの
部分が、1394IFからのIF−busに変わってい
る点が特徴である。1394シリアルバスから送られて
きたデータは、1394IFによってプリンタ部に対し
てレジスタアクセスを行うようIF−busが出力さ
れ、ホスト部からはあたかもホスト部のCPU21がプ
リンタ部にIOアクセスを行っているような環境を提供
することができる。
【0295】図88はステートマシンコントローラの内
部構成を示すブロック図である。
【0296】ステートマシンコントローラは1394I
FからのIF−busを経由してホスト部とのデータの
やり取りを行い、プリンタユニットの制御を行うブロッ
クである。
【0297】基本的な動作については図8のブロック図
と同等であるのが、相違点となるのはISA−busに
よってCPU21が直接アクセスしていたI/Oレジス
タが、1394シリアルバスを介して間接的にアクセス
が行われるようになった点である。
【0298】ここで基本動作を説明すると、スーパーバ
イザコマンドレジスタはホスト部からプリンタI/Oコ
ントローラへのI/OアクセスをPRT−busを介し
て行ったり、制御I/Oコマンドの起動・停止コマンド
の発行を行うためのレジスタで、スーパーバイザコマン
ド・アドレスレジスタ(SVA/IO)で設定したPR
T−busのアドレス(PA)に対してスーパーバイザ
コマンド・データレジスタ(SVD/IO)を使ってデ
ータ(PD)の読み書きを行うことを行う。
【0299】制御I/Oコマンド・データレジスタ(B
AT/IO)は、ホスト部からプリンタ部メモリをME
M−busを介して直接アクセスするための機能であ
り、「アドレス+データ」のセットでデータ書き込み動
作を行うとメモリアドレスカウンタのライトアドレスに
対応したプリンタ部メモリのアドレス(MA)に2バイ
トのデータ(MD)が書き込まれ、書き込まれた後には
ライトアドレスが毎回+2インクリメントされる。
【0300】制御I/Oコマンド・データレジスタを使
ったデータの読み出し動作も同様で、リードアドレスに
対応したプリンタ部メモリのデータが2バイト読み出さ
れ、読み出し動作後には毎回リードアドレスが+2イン
クリメントされる。
【0301】制御I/Oコマンド・データレジスタによ
ってメモリに書き込まれたデータは制御I/Oコマンド
を実行するために使われるデータであり、スーパーバイ
ザコマンドレジスタによる制御I/Oコマンドの起動コ
マンドとしてBP−startに“1”を書き込む事に
より、プリンタ部メモリから制御I/Oアドレスカウン
タのリードアドレスで示されたデータを2バイトづつ読
み出し、読み出したデータの下位バイトがアドレス・上
位バイトがデータを表しているので、PRT−busに
読み出したアドレスとデータを出力してプリンタI/O
コントローラのレジスタへのデータライトアクセス動作
を行うことで制御I/Oコマンドの実行を行う。
【0302】この制御I/Oコマンドの実行により読み
出されたリードアドレスは+2づつ毎回インクリメント
され、制御I/Oコマンドの停止コマンド(BP−en
d)が発行されてBP−startが“0”になるま
で、制御I/Oコマンド実行動作が繰り返される。
【0303】リフレッシュコントロールは、D−RAM
のリフレッシュ動作をつかさどる制御ブロックで、8m
sの間に512回のリフレッシュアクセスを行うように
なっていて、その時のアドレスを毎回インクリメントさ
せるのがリフレッシュアドレスカウンタである。
【0304】メモリアドレスコントロールは、プリンタ
部メモリに対して各アクセス要求に優先順位をつけて処
理を行うブロックで、制御I/Oコマンドの実行が第一
優先・リフレッシュが第二優先・ホスト部からのメモリ
アクセスが第三優先となっている。これは制御I/Oコ
マンドの実行時間が変動するのを防ぐための優先順序と
なっている。以上がステートマシンコントローラの動作
説明である。
【0305】この様にホスト部とプリンタ部の接続の形
態は一つのものに限定されることはなく汎用のインター
フェイスに置きかえることが可能であるので、その際の
制御方法については常に共通の環境を用いることがで
き、更にシステムのハードウエアの構成は状況に合わせ
て最適なものを使うことが出来るという点が大きな特徴
である。
【0306】
【発明の効果】ホストベースプリンティングシステムの
簡素化されコストダウンされたプリンタ装置を提供する
ことが出来る。
【0307】ホストベースプリンティングシステムのホ
ストでのプリンタ制御方式を提供することが出来る。
【0308】ホストベーススキャンニングシステムの簡
素化されコストダウンされたスキャナ装置を提供するこ
とが出来る。
【0309】ホストベーススキャンニングシステムのホ
ストでのスキャナ制御方式を提供することが出来る。
【0310】既存のプリンティングシステム、プリンタ
ドライバに変更を加えないホストベースプリンティング
システムを提供することが出来る。
【図面の簡単な説明】
【図1】本発明を実施したパソコンを示す斜視図であ
る。
【図2】パソコンの概略ブロック図である。
【図3】ホスト部のメモリアドレスマップである。
【図4】ホスト部のI/Oアドレスマップである。
【図5】SET/IOレジスタの構成図である。
【図6】PRT/IOレジスタの構成図である。
【図7】プリンタ制御部のブロック図である。
【図8】ステートマシンコントローラのブロック図であ
る。
【図9】ステートマシンコントローラ内のレジスタマッ
プである。
【図10】制御I/Oコマンド実行時のタイミング図で
ある。
【図11】プリンタユニットを表してる図である。
【図12】プリンタ制御装置のブロック図である。
【図13】カラー印字用記録ヘッドの内部構成図であ
る。
【図14】記録ヘッド制御用タイミング図である。
【図15】キャリッジモーター制御回路を表す図であ
る。
【図16】キャリッジモーター制御用タイミング図であ
る。
【図17】プリンタIOコントローラICのブロック図
である。
【図18】プリンタIOコントローラICのレジスタマ
ップである。
【図19】プリンタIOコントローラICの制御I/O
コマンド実行タイミング制御回路のタイミング図であ
る。
【図20】従来例のプリンタ制御部のブロック図であ
る。
【図21】ウエイトコマンド実行時のタイミング図であ
る。
【図22】プリンタIOコントローラICの制御I/O
コマンド実行タイミング制御回路の構成図である。
【図23】プリンタ初期化フローチャートを表す図であ
る。
【図24】キャリッジ初期化動作時の自起動領域等速動
作制御I/Oコマンド群を表す図である。
【図25】片方向印字動作時(加速部分)の制御I/O
コマンド群を表す図である。
【図26】片方向印字動作時(等速部分)の制御I/O
コマンド群を表す図である。
【図27】片方向印字動作時(減速部分)の制御I/O
コマンド群を表す図である。
【図28】紙送り動作時(加速部分)の制御I/Oコマ
ンド群を表す図である。
【図29】紙送り動作時(減速部分)の制御I/Oコマ
ンド群を表す図である。
【図30】メディアの構成を示した図である。
【図31】従来例のウィンドウズ・アプリケーションか
らプリンタへ出力する場合の、ソフトウェア処理手順を
示す図である。
【図32】印刷処理のブロック図である。
【図33】Language Monitor のSt
art Doc Port()のフローチャートであ
る。
【図34】Language Monitor のWr
ite Port()のフローチャートである。
【図35】Language Monitor のEn
d Doc Port()のフローチャートである。
【図36】W−RTOSホスト・アプリケーション中
の、初期化関数のフローチャートである。
【図37】W−RTOSホスト・アプリケーション中
の、非同期通信関数のフローチャートである。
【図38】スキャナ処理の流れを示すソフトウェアブロ
ック図である。
【図39】従来例のRTOSタスクとウィンドウズ・ア
プリケーションの通信、またRTOSタスク間の通信を
示す図である。
【図40】タスク制御を示した図である。
【図41】タスク遷移状態を示した図である。
【図42】タスクの構成を示した図である。
【図43】コントロールコードの基本構成を示した図で
ある。
【図44】コントロールコード一覧を示した図である。
【図45】イメージコントロールコードの順序を示した
図である。
【図46】印字ヘッドのドット構成を示した図である。
【図47】バッファ構成を示した図である。
【図48】バッファの構成を示した図である。
【図49】バッファの構成を示した図である。
【図50】バッファの構成を示した図である。
【図51】バッファの構成を示した図である。
【図52】バッファの構成を示した図である。
【図53】バッファの構成を示した図である。
【図54】印字順序を示した図である。
【図55】バッファへのイメージデータをセットする順
序を示した図である。
【図56】バッファからのイメージデータをゲットする
順序を示した図である。
【図57】ポインタ、カウンタを示した図である。
【図58】コントロールコード解析Taskを示したフ
ローチャートである。
【図59】印字処理を示したフローチャートである。
【図60】イメージ展開処理を示したフローチャートで
ある。
【図61】印字制御I/Oコマンド作成処理を示したフ
ローチャートである。
【図62】制御I/Oコマンド転送処理を示したフロー
チャートである。
【図63】フィード処理を示したフローチャートであ
る。
【図64】給・排紙処理を示したフローチャートであ
る。
【図65】スキャン処理Taskを示したフローチャー
トである。
【図66】スキャン処理を示したフローチャートであ
る。
【図67】タイマー管理Taskを示したフローチャー
トである。
【図68】回復系処理Taskを示したフローチャート
である。
【図69】ヘッド温調処理Taskを示したフローチャ
ートである。
【図70】エラー処理Taskを示したフローチャート
である。
【図71】電源管理Taskを示したフローチャートで
ある。
【図72】印字の制御I/Oコマンドを受信したバッフ
ァの内容を示した図である。
【図73】印字制御I/Oコマンドを受信したバッファ
の内容を示した図である。
【図74】印字制御I/Oコマンドを受信したバッファ
の内容を示した図である。
【図75】スキャンの制御I/Oコマンドを受信したバ
ッファの内容を示した図である。
【図76】スキャン制御のI/Oコマンドを受信したバ
ッファの内容を示した図である。
【図77】スキャン制御のI/Oコマンドを受信したバ
ッファの内容を示した図である。
【図78】発明の実施の形態2の処理を示すブロック図
である。
【図79】RTOSストリーム入出力のブロック図であ
る。
【図80】RTOSドライバ91−03の入力ファンク
ションのフローチャートである。
【図81】RTOSドライバ91−03の入力ジョブの
フローチャートである。
【図82】発明の実施の形態3の処理を示すブロック図
である。
【図83】IEEE1394シリアルバスを用いて構成
されるネットワークシステムを示す図である。
【図84】IEEE1394シリアルバスの構成要素を
示す図である。
【図85】IEEE1394シリアルバスにおけるアド
レス空間を示す図である。
【図86】IEEE1394シリアルバスを用いたシス
テムのブロック図である。
【図87】プリンタ部の内部構成を示すブロック図であ
る。
【図88】ステートマシンコントローラの内部構成を示
すブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 立山 二郎 東京都大田区下丸子3丁目30番2号キヤノ ン株式会社内 (72)発明者 中村 敦 東京都大田区下丸子3丁目30番2号キヤノ ン株式会社内 (72)発明者 内藤 久嗣 東京都大田区下丸子3丁目30番2号キヤノ ン株式会社内

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 プリンタをホストから制御する印字制御
    システムであって、ホスト部にはプリンタドライバーか
    ら送られるコントロールコードを解析するコントロール
    コード解析手段と、前記コントロールコードから制御I
    /Oコマンドを作成する制御I/Oコマンド作成手段
    と、制御I/Oコマンドをプリンタへ送信する制御I/
    Oコマンド送信手段と前記制御I/Oコマンド送信手段
    によりプリンタへ送られた制御I/Oコマンドの実行を
    指示する制御I/Oコマンド実行指示手段とを有し、 前記制御I/Oコマンド作成手段で作成された制御I/
    Oコマンドと制御I/Oコマンド実行指示手段を用いて
    プリンタに印字を実行させることを特徴とする印字制御
    システム。
  2. 【請求項2】 プリンタを制御する印字制御部には、ホ
    ストとの間でコマンドやデータのやり取りを行うインタ
    ーフェース手段と、前記インターフェース手段によりホ
    ストから送られる制御I/Oコマンドを保持する制御I
    /Oコマンド保持手段と、前記制御I/Oコマンド保持
    手段に保持された制御I/Oコマンドを読み出す制御I
    /Oコマンド制御手段と、読み出された制御I/Oコマ
    ンドによりプリンタを制御する制御I/Oコマンド実行
    手段とを有し、 ホストで作成した制御I/Oコマンドを用いて印字制御
    部がプリンタの制御を行うことを特徴とする請求項1記
    載の印字制御システム。
  3. 【請求項3】 ホスト部はリアルタイムOS環境である
    ことを特徴とする請求項1記載の印字制御システム。
  4. 【請求項4】 前記制御I/Oコマンド作成手段は、ラ
    スターデータをカラムデータに変換する手段を含むこと
    を特徴とする請求項1記載の印字制御システム。
  5. 【請求項5】 スキャナをホストから制御するスキャナ
    制御システムであって、 ホスト部にはスキャナアプリケーションから送られるコ
    ントロールコードを解析するコントロールコード解析手
    段と、前記コントロールコードから制御I/Oコマンド
    を作成する制御I/Oコマンド作成手段と制御I/Oコ
    マンドをスキャナへ送信する制御I/Oコマンド送信手
    段と前記制御I/Oコマンド送信手段によりスキャナへ
    送られた制御I/Oコマンドの実行を指示する制御I/
    Oコマンド実行指示手段とを有し、 前記制御I/Oコマンド作成手段で作成された制御I/
    Oコマンドと制御I/Oコマンド実行指示手段を用いて
    スキャナにスキャンを実行させることを特徴とするスキ
    ャン制御システム。
  6. 【請求項6】 スキャナを制御するスキャナ制御部に
    は、ホストとの間でコマンドやデータのやり取りを行う
    インターフェース手段と、前記インターフェース手段に
    よりホストから送られる制御I/Oコマンドを保持する
    制御I/Oコマンド保持手段と、前記制御I/Oコマン
    ド保持手段に保持された制御I/Oコマンドを読み出す
    制御I/Oコマンド制御手段と、読み出された制御I/
    Oコマンドによりスキャナを制御する制御I/Oコマン
    ド実行手段とを有し、 ホストで作成した制御I/Oコマンドを用いてスキャン
    制御部がスキャナの制御を行うことを特徴とする請求項
    5記載のスキャナ制御システム。
  7. 【請求項7】 プリンタをホストから制御する印字制御
    システムであって、 コントロールコードを解析するコントロールコード解析
    手段と、前記コントロールコードから制御I/Oコマン
    ドを作成する制御I/Oコマンド作成手段と、前記制御
    I/Oコマンド作成手段により作成された制御I/Oコ
    マンドをプリンタへ送信する制御I/Oコマンド送信手
    段と前記制御I/Oコマンド送信手段によりプリンタへ
    送られた制御I/Oコマンドの実行を指示する制御I/
    Oコマンド実行指示手段とプリンタドライバーから送ら
    れるコントロールコードを前記コントロールコード解析
    手段に転送するコントロールコード転送手段とを有する
    ことを特徴とする印字制御システム。
  8. 【請求項8】 前記コントロールコード転送手段をスプ
    ーリングシステムのLanguage Monitor
    内に設けたことを特徴とする請求項7記載の印字制御シ
    ステム。
  9. 【請求項9】 前記コントロールコード転送手段をVC
    OMM PortDriverに設けたことを特徴とす
    る請求項7記載の印字制御システム。
  10. 【請求項10】 プリンタをホストから制御する印字制
    御システムであって、 プリンタを制御する印字制御部には、ホストとの間でコ
    マンドやデータのやり取りを行うインターフェース手段
    と、前記インターフェース手段によりホストから送られ
    る制御I/Oコマンドを保持する制御I/Oコマンド保
    持手段と、前記制御I/Oコマンド保持手段に保持され
    た制御I/Oコマンドを読み出す制御I/Oコマンド制
    御手段と、読み出された制御I/Oコマンドによりプリ
    ンタを制御する制御I/Oコマンド実行手段とを有し、 ホストで作成した制御I/Oコマンドを用いて印字制御
    部がプリンタの制御を行うことを特徴とする印字制御シ
    ステム。
  11. 【請求項11】 ホスト部はリアルタイムOS環境であ
    ることを特徴とする請求項10記載の印字制御システ
    ム。
  12. 【請求項12】 上記制御I/Oコマンド制御手段にお
    いては、前記制御I/Oコマンド保持手段に保持された
    制御I/Oコマンドを一定の時間間隔ごとに読み出して
    任意のレジスタに対しての書き込み動作を行い、上記コ
    マンドの実行手段においては、任意のレジスタへの書き
    込み動作により制御I/Oコマンドの実行を行うことを
    特徴とする請求項10記載の印字制御システム。
  13. 【請求項13】 上記制御I/Oコマンド制御手段にお
    いて、制御I/Oコマンド保持手段からの制御I/Oコ
    マンド読み出しの時間の間隔と、コマンド実行手段への
    レジスタ書き込みの時間の間隔を調整するために、制御
    I/Oコマンドの中にコマンド実行手段へ発行しない時
    間待ちコマンドを設けたことを特徴とする請求項10記
    載の印字制御システム。
  14. 【請求項14】 上記制御I/Oコマンド制御手段にお
    いて、コマンド実行手段と任意アドレスのレジスタデー
    タを制御I/Oコマンド保持手段に書き込む手段と、制
    御I/Oコマンド保持手段に書き込まれたレジスタデー
    タをインターフェース手段を介してホストで読み取る手
    段を有し、ホストで作成した制御I/Oコマンドを用い
    てプリンタの状態情報データあるいはスキャンデータを
    制御I/Oコマンド保持手段に取り込み、ホストで制御
    I/Oコマンド保持手段のデータを読み取ることを特徴
    とする請求項10記載の印字制御システム。
  15. 【請求項15】 リアルタイムOS環境でプリンタをホ
    ストから制御する印字制御システムであって、プリンタ
    を制御する印字制御部には、ホストとの間で直接制御I
    /Oコマンドのやり取りを行うインターフェース手段
    と、前記インターフェース手段によりホストからの直接
    制御I/Oコマンドに対して任意のアドレスのレジスタ
    に対してリード・ライトアクセスをするコマンド制御手
    段と、任意のレジスタのリード・ライトアクセスにより
    プリンタを制御するコマンド実行手段を有し、ホストが
    直接制御I/Oコマンドを用いてプリンタの制御をリア
    ルタイムで行うことを特徴とする印字制御システム。
  16. 【請求項16】 プリンタをホストから制御する印字制
    御システムのプリンタを制御する印字制御部には、ホス
    トとの間でコマンドやデータのやり取りを行うインター
    フェース手段と、前記インターフェース手段によりホス
    トから送られる制御I/Oコマンドを保持する制御I/
    Oコマンド保持手段と、前記制御I/Oコマンド保持手
    段に保持された制御I/Oコマンドを読み出す制御I/
    Oコマンド制御手段と、読み出されたI/O制御I/O
    コマンドによりプリンタを制御する制御I/Oコマンド
    実行手段を有し、 ホストで作成した制御I/Oコマンドを用いて印字制御
    部がプリンタの制御を行うことを特徴とする印字制御シ
    ステムシステムにおいて、 前記コマンド制御手段より送られてくる制御I/Oコマ
    ンドの構成を、制御I/Oコマンド実行手段におけるレ
    ジスタアドレスと当レジスタへの格納データの形式にす
    ることを特徴とする印字制御システム。
  17. 【請求項17】 前記制御I/Oコマンド制御手段より
    送られてくる制御I/Oコマンドの実行開始時間を定め
    られた一定時間間隔となるように制御する手段を制御I
    /Oコマンド実行手段に具備することを特徴とする請求
    項16記載の印字制御システム。
  18. 【請求項18】 前記制御I/Oコマンド制御手段より
    送られてくる制御I/Oコマンドの実行開始時間を定め
    られた一定時間間隔に制御する手段として、制御I/O
    コマンド制御手段から制御I/Oコマンド実行手段の任
    意のレジスタへの書き込み時に出力されるレジスタアド
    レス、書き込みデータを一時的に保持するラッチ手段を
    設け、制御I/Oコマンド実行開始時間に同期して前記
    保持ラッチ手段から該当レジスタへの書き込みを行うこ
    とを特徴とした請求項16記載の印字制御システム。
  19. 【請求項19】 前記プリンタはインクジェットプリン
    タであることを特徴とする請求項18記載の印字制御シ
    ステム。
  20. 【請求項20】 前記制御I/Oコマンドは、CM加速
    制御I/Oコマンド、CM等速I/Oコマンド、印字イ
    メージデータ制御コマンド、CM減速制御I/Oコマン
    ド、LF加速制御I/Oコマンド、LF減速制御I/O
    コマンド、及び終了I/Oコマンドを含むことを特徴と
    する請求項18記載の印字制御システム。
JP22359797A 1996-10-15 1997-08-20 印字制御システム及びスキャナ制御システム Expired - Fee Related JP3957825B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP22359797A JP3957825B2 (ja) 1996-10-15 1997-08-20 印字制御システム及びスキャナ制御システム
US08/951,108 US6559962B1 (en) 1996-10-15 1997-10-15 Printer control system and method using a control I/O command from a host computer, and scanner control system and method of using a control I/O command from a host computer

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-272310 1996-10-15
JP27231096 1996-10-15
JP22359797A JP3957825B2 (ja) 1996-10-15 1997-08-20 印字制御システム及びスキャナ制御システム

Publications (3)

Publication Number Publication Date
JPH10177461A true JPH10177461A (ja) 1998-06-30
JPH10177461A5 JPH10177461A5 (ja) 2005-06-02
JP3957825B2 JP3957825B2 (ja) 2007-08-15

Family

ID=26525579

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22359797A Expired - Fee Related JP3957825B2 (ja) 1996-10-15 1997-08-20 印字制御システム及びスキャナ制御システム

Country Status (2)

Country Link
US (1) US6559962B1 (ja)
JP (1) JP3957825B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009225369A (ja) * 2008-03-18 2009-10-01 Ricoh Co Ltd 画像形成装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0859327B1 (en) * 1997-02-14 2009-07-15 Canon Kabushiki Kaisha Data transmission apparatus, system and method, and image processing apparatus
TW384611B (en) * 1997-02-14 2000-03-11 Canon Kk Data communication apparatus and method
EP0859326A3 (en) * 1997-02-14 1999-05-12 Canon Kabushiki Kaisha Data transmission apparatus, system and method, and image processing apparatus
AUPP702498A0 (en) * 1998-11-09 1998-12-03 Silverbrook Research Pty Ltd Image creation method and apparatus (ART77)
US6825951B1 (en) * 2000-04-05 2004-11-30 Hewlett-Packard Development Company, L.P. Inkjet printing and method
US7428188B2 (en) * 2004-09-15 2008-09-23 Eastman Kodak Company Method for generating a cue delay circuit
US6912179B1 (en) * 2004-09-15 2005-06-28 Eastman Kodak Company Cue delay circuit
JP2016136364A (ja) 2015-01-23 2016-07-28 キヤノン株式会社 通信装置及びその制御方法、プログラム
JP2017134702A (ja) 2016-01-29 2017-08-03 キヤノン株式会社 サーバシステム、サーバシステムの制御方法、およびプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3753246A (en) * 1971-08-27 1973-08-14 Allen Bradley Co Printer adapted for operation with a programmable controller
US4452136A (en) * 1979-10-19 1984-06-05 International Business Machines Corporation Printer subsystem with dual cooperating microprocessors
JPS61204732A (ja) * 1985-03-07 1986-09-10 Ricoh Co Ltd ホスト内蔵型プリンタ制御装置
DE3526369A1 (de) * 1985-07-24 1987-02-05 Mannesmann Ag Digitaler mikroprozessor fuer das darstellen von schraegschrift (kursivschrift), insbesondere in datenstationen und auf matrixdruckern
US4972341A (en) * 1987-05-21 1990-11-20 Sony Corporation Graphic printer
US4837635A (en) * 1988-01-22 1989-06-06 Hewlett-Packard Company A scanning system in which a portion of a preview scan image of a picture displaced on a screen is selected and a corresponding portion of the picture is scanned in a final scan
US5845144A (en) * 1991-12-25 1998-12-01 Canon Kabushiki Kaisha Information processing apparatus with internal printer
US5477238A (en) * 1992-02-13 1995-12-19 Aharanson; Ophira R. Method of and station for integrated typed data and optically scanned data capture for computer interfacing and the like
JPH05303553A (ja) * 1992-04-23 1993-11-16 Ricoh Co Ltd 複合機コントローラ
US5752075A (en) * 1993-02-10 1998-05-12 Elonex Plc, Ltd. Integrated computer Scanner printer in a single system enclosure sharing control circuitry and light source wherein a single CPU performing all of the control tasks
US5566278A (en) * 1993-08-24 1996-10-15 Taligent, Inc. Object oriented printing system
US5619622A (en) * 1994-12-16 1997-04-08 Xerox Corporation Raster output interface for a printbar
US5699494A (en) * 1995-02-24 1997-12-16 Lexmark International, Inc. Remote replication of printer operator panel
US5790279A (en) * 1995-09-13 1998-08-04 Sakellaropoulos; Spiro Combined scanner, printer and facsimile apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009225369A (ja) * 2008-03-18 2009-10-01 Ricoh Co Ltd 画像形成装置

Also Published As

Publication number Publication date
JP3957825B2 (ja) 2007-08-15
US6559962B1 (en) 2003-05-06

Similar Documents

Publication Publication Date Title
EP0802503B1 (en) Printer with buffer memory
JP3957825B2 (ja) 印字制御システム及びスキャナ制御システム
EP1026579B1 (en) Network-connectable printer, controller therefor, and method for controlling this controller
JP3847970B2 (ja) 印刷データ処理装置、印刷データ処理方法及び記録媒体
JPH06110626A (ja) 印刷装置及び前記印刷装置を用いた印刷システム
JP3275992B2 (ja) カラープリンタ及びカラープリントシステム
JP3602723B2 (ja) ネットワークシステム
JPH10295096A (ja) モータ制御装置、記録装置、情報処理システム、ならびに情報処理方法
JP3562181B2 (ja) プリンタのメモリ管理方法及びメモリ管理装置
JPH09290520A (ja) シリアル式印字装置
JP2003076649A (ja) データ処理装置および印刷制御装置およびインタフェース選択方法および記憶媒体およびプログラム
JP3195097B2 (ja) 出力制御方法および装置
JPH09218843A (ja) 出力制御装置及び出力制御方法及びコンピュータで呼び出し可能な工程を含んだ記憶媒体
JPH0820936B2 (ja) 印刷制御装置
JP2004013286A (ja) 印刷制御方法および印刷制御装置並びにそれを備えた印刷システム
JPH11188953A (ja) 画像プリントシステム及び画像プリント方法
JP2002273950A (ja) インクジェット印刷装置の制御方法
JPH06106793A (ja) 印刷装置
JP2007188308A (ja) 印刷システム及び、記憶媒体
JP2000289295A (ja) プリンタ装置
JP2003167710A (ja) 記録装置および記録システム
JPH09179813A (ja) Dma転送装置
JP2002273953A (ja) 画像記録装置、画像記録システム、及び画像記録方法
JPH0764735A (ja) 印刷装置
JPH08272559A (ja) 情報処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040819

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070112

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: 20070508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070509

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: 20100518

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees