JP4665705B2 - ネットワークプリンタにおけるデータ通信用クレジットの取得 - Google Patents

ネットワークプリンタにおけるデータ通信用クレジットの取得 Download PDF

Info

Publication number
JP4665705B2
JP4665705B2 JP2005302899A JP2005302899A JP4665705B2 JP 4665705 B2 JP4665705 B2 JP 4665705B2 JP 2005302899 A JP2005302899 A JP 2005302899A JP 2005302899 A JP2005302899 A JP 2005302899A JP 4665705 B2 JP4665705 B2 JP 4665705B2
Authority
JP
Japan
Prior art keywords
credit
network
printer
request
module
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
JP2005302899A
Other languages
English (en)
Other versions
JP2007114847A (ja
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005302899A priority Critical patent/JP4665705B2/ja
Publication of JP2007114847A publication Critical patent/JP2007114847A/ja
Application granted granted Critical
Publication of JP4665705B2 publication Critical patent/JP4665705B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、ネットワークプリンタにおけるデータ通信用クレジットの取得に関するものである。
従来より、画像を印刷するプリンタシステムが用いられている。プリンタシステムの中には、ネットワークを介して印刷要求を受信するものがある(ネットワークプリンタとも呼ばれる)。ネットワークプリンタの中には、印刷を実行する印刷装置(以下「プリンタユニット」とも呼ぶ)と、ネットワークから受信した印刷要求(印刷データ)に応じて、印刷に利用される制御データを印刷装置に送信するネットワーク装置(以下「ネットワークユニット」とも呼ぶ)と、を有するものがある。ここで、ネットワーク装置と印刷装置との間のデータ通信に、パケット通信が利用される場合がある。パケット通信としては、例えば、クレジットに基づくパケット通信が知られている(例えば、特許文献1参照)。
特開2000−236351号公報
ところで、ネットワーク装置は、印刷装置に制御データを送信するために、印刷装置からクレジットを取得する。ここで、クレジット取得の方式としては、種々の方式を採用可能である。例えば、印刷装置にクレジット要求を送信することによってクレジットを取得する方式を採用可能である。また、クレジット要求を送信せずに、印刷装置によって自発的に提供されたクレジットを取得する方式を採用可能である。ここで、印刷装置が動作可能な方式として、印刷装置毎に適した方式が採用される場合が多い。ところが、このような種々の印刷装置をネットワークプリンタとして利用するためには、その印刷装置に適合したネットワーク装置を準備しなくてはならず、その設計・製作に多大な手間を要するという問題があった。
本発明は、上記の課題を解決するためになされたものであり、ネットワーク装置と印刷装置とを有するネットワークプリンタにおける、利用可能な印刷装置の構成の自由度を高めることのできる技術を提供することを目的とする。
上述の課題の少なくとも一部を解決するため、本発明の第1の態様は、印刷を実行する印刷装置に、ネットワーク上のクライアントからの印刷要求に応じて、印刷に利用される制御データを送信するネットワーク装置であって、パケットを用いた通信プロトコルに従って前記制御データを送信する第1プロトコル処理部を有し、前記印刷装置は、前記通信プロトコルに従って前記制御データを受信する第2プロトコル処理部を有し、前記第1プロトコル処理部は、データ転送用のクレジットの取得モードとして、(i)クレジット要求を前記第2プロトコル処理部に送信することによってクレジットを取得する要求モードと、(ii)クレジット要求の有無に拘わらずに前記第2プロトコル処理部によって自発的に前記第1プロトコル処理部に提供されたクレジットを取得する提供モードと、を有し、前記第1プロトコル処理部は、前記第2プロトコル処理部に、前記提供モードで動作可能か否かを問い合わせるとともに、前記提供モードで動作可能な場合には、前記提供モードによるクレジット取得を選択して実行し、前記提供モードで動作できない場合には、前記要求モードによるクレジット取得を選択して実行する、ネットワーク装置を提供する。
このネットワーク装置によれば、第1プロトコル処理部は、印刷装置の第2プロトコル処理部に提供モードで動作可能か否かを問い合わせるとともに、提供モードで動作可能な場合には、提供モードによるクレジット取得を選択して実行し、提供モードで動作できない場合には、要求モードによるクレジット取得を選択して実行するので、ネットワークプリンタにおける利用可能な印刷装置の構成の自由度を高めることができる。
上記ネットワーク装置において、前記ネットワーク装置と前記印刷装置との間はUSBで接続され、前記ネットワーク装置がUSBホストとして機能し、前記印刷装置はUSBデバイスとして機能し、前記通信プロトコルは、下位層のプロトコルとしてUSBプロトコルを利用することとしてもよい。
この構成によれば、一般的なパーソナルコンピュータにUSBを用いて接続されるプリンタを、印刷装置として利用することができる。
また、第2の態様は、ネットワーク上のクライアントからの印刷要求に応じて印刷を実行するネットワークプリンタであって、上記第1の態様のネットワーク装置と、前記印刷装置と、を備える、ネットワークプリンタを提供する。
なお、本発明は、種々の形態で実現することが可能であり、例えば、ネットワークプリンタ用のネットワーク装置、ネットワーク装置と印刷装置とを有するネットワークプリンタ、それらの装置の制御方法及び制御装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
次に、この発明の実施の形態を実施例に基づいて以下の順序で説明する。
A.実施例:
B.変形例:
A.実施例:
図1は、本発明の実施例を適用するネットワークシステムの構成を示す概略図である。このネットワークシステム10は、パーソナルコンピュータ100とネットワークプリンタ200とがLANを介して相互に接続された構成を有している。LANは、IEEE802.3のような有線ネットワークでも、IEEE802.11b/g/aなどの無線ネットワークでもよい。
パーソナルコンピュータ100は、プリンタドライバ100Dを用いて印刷画像の元となる元画像データを生成する。そして、パーソナルコンピュータ100は、元画像データを含む印刷要求を、LANを介してネットワークプリンタ200に送信して、ネットワークプリンタ200に印刷を実行させる。本実施例では、パーソナルコンピュータ100は、LPR(Line PRinter daemon protocol)を利用して、印刷要求をネットワークプリンタ200に送信する。ただし、印刷要求の形式としては、LPRを利用する形式に限らず、他の任意の形式を採用可能である。
また、元画像データの形式としては任意の形式を採用可能である。例えば、PDL(Page Description Language:ページ記述言語)で記述されたPDLデータを採用してもよい。また、JPEGデータやTIFFデータといった画像データを採用してもよい。また、XHTML(eXtensible HyperText Markup Language)で記述されたXHTMLデータを採用してもよい。
ネットワークプリンタ200は、ネットワークユニット300と、プリンタユニット400と、を有している。ネットワークユニット300は、LAN上の他の装置とプリンタユニット400との間で交換されるデータ(例えば、元画像データ)を仲介する。プリンタユニット400は、受信した元画像データに従って印刷を実行する。ネットワークユニット300とプリンタユニット400との間は、USB(Universal Serial Bus)で接続されている。但し、両者の間をUSB以外の他の物理的インタフェースで接続することも可能である。
ネットワークユニット300は、中央制御部(CPU)310と、RAM320と、ROM330と、ネットワーク制御部340と、USBホスト制御部350とを有している。図1の例では、ネットワーク制御部340は、コネクタ342を介して有線ネットワークに接続される。USBホスト制御部350は、ルートハブ352を有しており、ルートハブ352にはUSBコネクタ354が設けられている。USBコネクタ354は、USBケーブルを介してプリンタユニット400のUSBコネクタ462に接続されている。
プリンタユニット400は、中央制御部(CPU)410と、RAM420と、ROM430と、印刷エンジン440と、USBデバイス制御部460と、を有している。印刷エンジン440は、与えられた印刷データに応じて印刷を実行する印刷機構である。本実施例では、中央制御部410が、プリンタドライバ100Dによって生成された元画像データを解析し、色変換やハーフトーン処理を実行して印刷データを作成し、この印刷データを印刷エンジン440に供給する。但し、中央制御部410の代わりに印刷エンジン440が色変換やハーフトーン処理の機能を有するように構成することも可能である。
図2は、ROM330、430を中心としたネットワークプリンタ200の構成を示すブロック図である。図2では、各構成要素が、データ通信の階層と同じ順番に並んで配置されている。ネットワークユニット300のROM330には、LANからの印刷要求に応じてプリンタユニット400に印刷を実行させるプリントサーバモジュール334が格納されている。このプリントサーバモジュール334は、LANを介して受信した印刷要求に含まれる元画像データを、プリンタユニット400に転送する。
プリントサーバモジュール334の下位には、ネットワークアーキテクチャの下位層と、USBアーキテクチャの下位層とが存在する。ネットワークアーキテクチャの下位層としては、ネットワークモジュール332が設けられている。ネットワークモジュール332の下位には、ネットワーク制御部340が設けられている。ネットワークモジュール332は、比較的上位のプロトコル(例えば、TCP(Transmission Control Protocol)やIP(Internet Protocol))を解釈することによって、LANを介したデータ通信を行う。ネットワーク制御部340は、比較的下位のプロトコル(例えば、Ethernet(登録商標))を解釈することによって、LANを介したデータ通信を行う。
一方、プリントサーバモジュール334のUSBアーキテクチャの下位層としては、D4プロトコル処理モジュール336が設けられている。このD4プロトコル処理モジュール336の下位には、USB制御モジュール338が設けられている。このUSB制御モジュール338の下位には、USBホスト制御部350が設けられている。
D4プロトコル処理モジュール336は、いわゆる「D4プロトコル」に従ってデータ転送を行う。D4プロトコルとは、IEEE P1284.4で規定された通信プロトコルである。このD4プロトコルでは、データの転送は、パケットを用いるとともに論理的なチャンネルを介して行われる。以下、IEEE P1284.4で規定されたパケットのことを「D4パケット」とも呼ぶ。
USB制御モジュール338は、比較的上位のUSBプロトコル(例えば、データ転送用のパイプ(Bulk OUT pipe)を用いた通信プロトコル)を解釈することによって、データ転送を行う。また、このUSB制御モジュール338は、USBシステムソフトウェアと、USBプリンタクラスのクライアントソフトウェアと、のそれぞれの機能を有している。
一方、USBホスト制御部350は、比較的下位のUSBプロトコル(例えば、電気信号のプロトコル)を解釈することによって、データ転送を行う。このUSBホスト制御部350は、USBホストコントローラ(ホスト側バスインターフェース)として機能する。
一方、プリンタユニット400のROM430には、印刷要求(元画像データ)に応じて印刷エンジン440に印刷データを供給するプリンタ機能モジュール434が格納されている。このプリンタ機能モジュール434の下位には、USBアーキテクチャの下位層が存在する。USBアーキテクチャの下位層としては、D4プロトコル処理モジュール436が設けられている。このD4プロトコル処理モジュール436の下位には、USB制御モジュール438が設けられている。このUSB制御モジュール438の下位には、USBデバイス制御部460が設けられている。
D4プロトコル処理モジュール436は、D4プロトコル処理モジュール336と同様に、D4プロトコルに従ってデータ転送を行う。
USB制御モジュール438は、USB制御モジュール338と同様に、比較的上位のUSBプロトコルに従ってデータ転送を行う。また、このUSB制御モジュール438は、USBプリンタクラスのUSB論理デバイスと、USBプリンタクラスのUSBファンクションと、のそれぞれの機能を有している。
USBデバイス制御部460は、USBホスト制御部350と同様に、比較的下位のUSBプロトコルを解釈することによって、データ転送を行う。このUSBデバイス制御部460は、USBバスインターフェースとして機能する。
なお、プリントサーバモジュール334がプリンタ機能モジュール434に元画像データを送信する際には、D4プロトコル処理モジュール336とD4プロトコル処理モジュール436とが、D4プロトコルに従ってデータ転送を行う。その下位層では、USB制御モジュール338とUSB制御モジュール438とが、USBプロトコルに従ってデータ転送を行う。その下位層では、USBホスト制御部350とUSBデバイス制御部460とが、USBプロトコルに従ってデータ転送を行う。
図2には、D4プロトコルの論理チャンネルdchが示されている。元画像データの転送は、この論理チャンネルdchを介して行われる。なお、論理チャンネルとしては、元画像データ用の論理チャンネルdchに限らず、任意の複数の論理チャンネルが設けられ得る。例えば、印刷エンジン440のステータス情報を送受信するためのチャンネルを設けることができる。このようなステータス情報は、SNMP等のプロトコルにより、ネットワークユニット300からネットワーク上の他の装置(例えば、パーソナルコンピュータ100)に対して提供され得る。
なお、論理チャンネルの識別情報は、D4パケットのヘッダに登録される(図示省略)。すなわち、D4プロトコル処理モジュール336、436は、D4パケットを送信する時には、そのD4パケットの論理チャンネルの識別情報をヘッダに登録する。また、D4プロトコル処理モジュール336、436は、D4パケットを受信する時には、受信したD4パケットのヘッダを参照することによって、そのD4パケットの論理チャンネルを特定する。
図3は、論理チャンネルdchにおけるクレジットの取得方式の一例の概要を示すシーケンス図である。D4プロトコルでは、転送データを含むD4パケット(以下「データパケット」とも呼ぶ)の転送制御にクレジットが利用される。クレジットを利用したデータ転送では、最初に、データの受信側(receiver)が、データの送信側(sender)に、受信可能なデータパケット数(「クレジット数」とも呼ばれる)を提供する。送信側は、提供されたクレジット数を限度として、データパケットを受信側に送信することができる。提供されたクレジット数は、パケット送信によって消費される。なお、このシーケンス図では、下位層(USB)での通信の図示が省略されている。
図3は、要求方式に従ったデータ転送の一例を示すシーケンス図である。このシーケンス図では、ネットワークユニット300がプリンタユニット400にデータ(例えば、元画像データ)を送信することと仮定している。最初のステップS300では、ネットワークユニット300が、外部から印刷要求を受信する。ネットワークユニット300のD4プロトコル処理モジュール336(以下「ネットD4モジュール336」とも呼ぶ)は、この印刷要求に応じて、元画像データの送信前に、プリンタユニット400にクレジット要求(Credit Request)を送信する(ステップS310)。プリンタユニット400のD4プロトコル処理モジュール436(以下「プリンタD4モジュール436」とも呼ぶ)は、このクレジット要求に応じて、クレジット要求応答(Credit Request Reply)をネットワークユニット300に返信する(ステップS320)。プリンタD4モジュール436は、この応答でクレジット数を指定する。このクレジット数は、プリンタユニット400の動作状況(例えば、データ受信用バッファメモリの空き容量)に応じて設定される。図3の例では、ステップS320の応答では、クレジット数が「ゼロ」に設定されている。以後、ネットD4モジュール336は、1以上のクレジット数を指定した応答を受信するまで、クレジット要求の送信を繰り返す。そして、ネットD4モジュール336は、1以上のクレジット数を指定した応答に応じて、データパケットをプリンタユニット400に送信する。ここで送信されるデータパケット数は、指定されたクレジット数に制限される。図3の例では、ステップS330のクレジット要求に対する応答で、クレジット数が1に設定されている(S340)。そこで、ネットD4モジュール336は、次のステップS350で、1つのデータパケットを送信する。以後、ネットD4モジュール336は、元画像データの転送が完了するまで、クレジット要求とデータ送信とを繰り返す。なお、一度に提供されるクレジット数は2以上であってもよい。
このように、データ送信側が、クレジット要求をデータ受信側に送信することによって、クレジットを取得する方式を「要求方式」と呼ぶ。この「要求方式」では、データ受信側は、クレジット要求に応じてクレジットを提供するが、自発的なクレジットの提供を行わない。
図4は、提供方式に従ったデータ転送の一例を示すシーケンス図である。図3に示すシーケンス図との差異は、プリンタD4モジュール436が、クレジット要求の有無に拘わらずに、自発的にクレジットを提供する点である。
最初のステップS400Aでは、ネットワークユニット300が、外部から印刷要求を受信する。ただし、提供方式では、ネットD4モジュール336は、自発的なクレジット要求を行わずに、クレジットが提供されるまで待機する。図4の例では、次のステップS410で、プリンタD4モジュール436が、自発的にクレジットを提供する。ここで、プリンタD4モジュール436は、1以上のクレジット数を指定する。図4の例では、ステップS410のクレジット提供で、クレジット数が「1」に設定されている。なお、クレジット提供の契機としては、任意のものを採用可能である。例えば、プリンタユニット400のデータ受信用バッファメモリの空き容量が十分に大きくなったことを契機として用いることができる。このような、データ受信用バッファメモリとしては、任意のメモリを利用可能であり、例えば、RAM420(図1)の一部の領域を用いることができる。
ネットD4モジュール336は、クレジット提供に応じて、クレジット提供を受信したことを示すクレジット提供応答を返信する(ステップS420)。そして、ネットD4モジュール336は、クレジット提供に応じて、データパケットをプリンタユニット400に送信する(ステップS430)。ここで送信されるデータパケット数は、指定されたクレジット数に制限される。以後、ネットD4モジュール336は、元画像データの転送が完了するまで、クレジットが提供されるまでの待機と、クレジット提供に応じたデータ送信と、を繰り返す。
このように、データ送信側からのクレジット要求の有無に拘わらずに、データ受信側によって自発的に提供されたクレジットを取得する方式を「提供方式」と呼ぶ。この「提供方式」では、データ送信側は、自発的なクレジット要求を行わない。
図5は、提供方式に従ったデータ転送の別の例を示すシーケンス図である。図4に示す例との差異は、ネットワークユニット300が印刷要求を受信するタイミング(S400B)が、クレジット提供(S410)の後である点だけである。この場合には、ネットワークユニット300は、印刷要求を受信した時点には、既にクレジットの提供を受けているので、待ち時間無しで、データパケットを送信することができる(S430)。提供済みのクレジットが不足している場合には、ネットワークユニット300は、再びクレジットが提供されることを待ち、クレジット提供に応じてデータパケットを送信する(ステップS440、S450、S460)。以後、ネットワークユニット300は、元画像データの転送が完了するまで、クレジットが提供されるまでの待機と、クレジット提供に応じたデータ送信と、を繰り返す。
以上のように、要求方式(図3)では、送信側(ネットD4モジュール336)は、データを送信しようとする時に、送信前にクレジットを要求する。受信側(プリンタD4モジュール436)は、クレジット要求に応じてクレジットを提供する。このように、要求方式では、簡単な方法でクレジットが取得されるので、送信側と受信側との構成を簡素化することができる。ただし、受信側がクレジットを提供できない状態で送信側がデータを送信しようとする場合には、送信側は、クレジットが提供されるまで、クレジット要求を繰り返し送信する。
一方、提供方式(図4、図5)では、受信側は、クレジット要求の有無に拘わらずに自発的にクレジットを提供する。一方、送信側は、自発的なクレジット要求を送信しない。その結果、受信側がクレジットを提供できない状態で送信側がデータを送信しようとする場合であっても、クレジット要求が繰り返し送信されることが防止される。また、受信側は、クレジットの提供が可能な場合には、送信側がデータ送信の要求(例えば、印刷要求)を受ける前に、予めクレジットを提供することができる。その結果、クレジットの提供が通信負荷の低い状態で行われ得る。このように、提供方式は、要求方式と比べて、通信負荷を抑制できる点で好ましい。
ところで、図1の例では、ネットワークユニット300とプリンタユニット400との接続にUSBが用いられている。この理由は、一般的なパーソナルコンピュータにUSBを用いて接続されるプリンタを、プリンタユニット400として利用するためである。このように、接続インターフェースとして、パーソナルコンピュータとの接続インターフェースと同じもの(この例ではUSB)を用いれば、パーソナルコンピュータ用のプリンタを、容易に、プリンタユニット400として用いることができる。この際、パーソナルコンピュータ用プリンタのUSBよりも上位の層の構成(例えば、図2のプリンタD4モジュール436とプリンタ機能モジュール434とに相当する部分の構成)をそのまま利用できるように、ネットワークユニット300を構成することが好ましい。
なお、パーソナルコンピュータとプリンタとの間の通信では、しばしば「要求方式」が採用される。この理由は以下の通りである。USBプロトコルでは、データ転送のスケジュールは、USBホストによって管理される。USBデバイスがUSBホストにデータを送信する場合も、USBデバイスは、自発的にデータをUSBホストに送信することができない。この代わりに、USBデバイスは、USBホストからのいわゆる「INトークン」を受信して初めてデータをUSBホストに送信することができる。USBホストによる「INトークン」の発行頻度は、通常は、USBデバイスの要求に応じて設定される。
ここで、パーソナルコンピュータとプリンタとの間の通信に提供方式(図4、図5)を適用すると仮定する。USBデバイス(プリンタ)による自発的なクレジット提供を実現するためには、USBホスト(パーソナルコンピュータ)は、頻繁に「INトークン」をUSBデバイスに送信する。すなわち、パーソナルコンピュータは、プリンタを利用していない状態であっても、プリンタに「INトークン」を送信し続けることになる。ここで、パーソナルコンピュータが、プリンタの利用とは異なる他の処理(例えば、アプリケーションの実行)を実行している場合には、利用していないプリンタのための「INトークン」送信の負荷によって、他の処理の効率が低下する可能性がある。
一方、図3に示す要求方式のように、USBホスト側のネットD4モジュール336が自発的にクレジット要求を行う場合には、USBホストは必要に応じていわゆる「OUTトークン」をUSBデバイスに送信すればよい。ここで、パーソナルコンピュータとプリンタとの間の通信に提供方式を適用すると仮定する。すると、パーソナルコンピュータは、プリンタを利用していない状態においては、プリンタに「INトークン」と「OUTトークン」とを送信する必要がない。従って、利用していないプリンタに起因して、他の処理の効率が低下することを抑制できる。
以上のように、プリンタを利用していない場合のパーソナルコンピュータの負荷が大きくなることを抑制するために、パーソナルコンピュータとプリンタとの間の通信では、しばしば「要求方式」が採用される。
ところで、「INトークン」用のUSBプロトコルパケットのデータ量は、「クレジット要求」等の上位層データ用のUSBプロトコルパケットのデータ量と比べて、小さい。従って、「INトークン」が繰り返し送受信される「提供方式」の通信負荷は、「クレジット要求」が繰り返し送受信される「要求方式」の通信負荷と比べて小さい。一方、ネットワークプリンタ200のネットワークユニット300に関しては、プリンタの利用とは異なる他の処理の効率低下が問題となる場合が少ない。従って、ネットワークユニット300とプリンタユニット400との通信では、「提供方式」が採用されることが好ましい。
なお、ネットワークユニット300に接続されるプリンタユニット400の中には、パーソナルコンピュータ用プリンタのように「提供方式」には対応せずに「要求方式」に対応しているものと、「提供方式」に対応しているものとが、あり得る。そこで、本実施例では、ネットD4モジュール336は、接続されているネットワークユニット300に合わせて、「提供方式」と「要求方式」とのいずれかを選択する。
図6は、クレジット取得方式の選択処理の手順を示すフローチャートである。最初のステップS600では、ネットD4モジュール336(図2)は、プリンタD4モジュール436に、「提供方式」で動作可能か否かを問い合わせる。「提供方式」での動作が可能である場合には、ネットD4モジュール336は、ステップS610に移行して、「提供方式」によるクレジット取得を選択して実行する。「提供方式」での動作ができない場合には、ネットD4モジュール336は、ステップS620に移行して、「要求方式」によるクレジット取得を選択して実行する。
図7は、「提供方式」に対応していないプリンタユニット400を用いる場合のデータ転送の一例を示すシーケンス図である。この場合には、ネットD4モジュール336は、「要求方式」によるクレジット取得を選択して実行する。なお、図7のシーケンス図には、図3のシーケンス図と比べて、ネットD4モジュール336とプリンタD4モジュール436との間でやりとりされるデータ(コマンド)がより詳細に示されている。
なお、D4プロトコルでは、元画像データのような転送データに限らず、コマンドと、その応答も、D4パケットを用いて送受信される。ただし、このようなコマンドパケットと応答パケットとは、データ転送用の論理チャンネルdchとは異なる所定の論理チャンネル(図示せず)を用いて転送される。
最初のステップS200では、ネットD4モジュール336は、オープンチャンネル(Open Channel)コマンドを、プリンタD4モジュール436に送信する。このコマンドは、論理チャンネルdch(図2)をオープンするために送信される。このようなオープンチャンネルコマンドは、任意のタイミングで発行され得る。例えば、ネットワークプリンタ200の起動時に発行されることとしてもよい。また、印刷要求に応じて発行されることとしてもよい。以下、印刷要求に応じて図7の処理が実行されると仮定して説明を行う。
オープンチャンネルコマンドは、以下の2つのパラメータを含んでいる。
(1)要求クレジット数(Credit Requested。以下「C.R.」とも呼ぶ)
(2)最大保持クレジット数(Maximum Outstanding Credit。以下「M.O.C.」とも呼ぶ)
「C.R.」は、送信側によって新規に要求されるクレジット数に設定される。クレジットが要求されない場合には「0x0000」に設定される。ここで、プレフィックス「0x」は16進数を意味している(後述する他のパラメータについても同じ)。「M.O.C.」は、送信側が保持を要求するクレジット数に設定される。クレジットが要求されない場合には「0x0000」に設定される。ステップS200のコマンドでは、両方のパラメータが「0x0000」に設定されている。このようなパラメータ設定は、クレジットを要求しないことを意味している。このようなオープンチャンネルコマンドが発行された場合には、データ受信側は、データ送信側から要求があるまでクレジットを提供しない。なお、このようなパラメータ設定が受信側に受け入れられた論理チャンネルdchの状態は「クレジット無しモード(No Credit Mode)」とも呼ばれる。
次のステップS210では、プリンタD4モジュール436が、オープンチャンネル応答(Open Channel Reply)を、ネットD4モジュール336に返信する。この応答は、オープンチャンネルコマンドの結果と、提供されたクレジット数と、を含んでいる。図7のステップS210では、結果は成功(OK)であり、クレジット数は「0」である。
次のステップS220では、ネットD4モジュール336は、クレジット要求(Credit Request)コマンドを、プリンタD4モジュール436に送信する。このコマンドも、オープンチャンネルコマンドと同様に、「C.R.」と「M.O.C.」とを含んでいる。ステップS220のクレジット要求では、両方のパラメータが最大値(0xFFFF)に設定されている。このようなパラメータ設定は、できるだけ早く、できるだけ多くのクレジットを提供し続けることをデータ受信側に要求することを意味している。本実施例では、このようなパラメータ設定は、「提供方式」に従った動作の要求を意味している。なお、このようなパラメータ設定が受信側に受け入れられた論理チャンネルdchの状態は「無制限クレジットモード(Unlimited Credit Mode)」とも呼ばれる。
次のステップS230では、プリンタD4モジュール436が、クレジット要求応答(Credit Request Reply)を、ネットD4モジュール336に返信する。この応答は、クレジットリクエストの結果を含んでいる。図7の例では、プリンタD4モジュール436は「提供方式」に対応していないので、結果は失敗(NG)に設定されている。このように、プリンタD4モジュール436は、「提供方式」に対応していない場合には、対応していないことを示す応答を、ネットD4モジュール336に返信する。
ネットD4モジュール336は、プリンタD4モジュール436から「提供方式」に従ったクレジット提供に対応していないことを示す応答を受信したら、「要求方式」に従って動作する。
次のステップS240では、ネットD4モジュール336は、「要求方式」に従ったクレジット要求コマンドを、プリンタD4モジュール436に送信する。このステップS240でのクレジット要求では、「C.R.」が「0x0000」よりも大きく、最大値(0xFFFF)未満の値に設定されている。「M.O.C.」は最大値(0xFFFF)に設定されている。このようなパラメータ設定は、「C.R.」で指定された数のクレジットをデータ受信側に要求することを意味している。本実施例では、このようなパラメータ設定は、「要求方式」に従ったクレジット要求を意味している。なお、このようなパラメータ設定が受信側に受け入れられた論理チャンネルdchの状態は「制限クレジットモード(Limited Credit Mode)」とも呼ばれる。
次のステップS250では、プリンタD4モジュール436が、クレジット要求応答を、ネットD4モジュール336に返信する。この応答は、クレジットリクエストの結果と、提供されたクレジット数と、を含んでいる。図7の例では、プリンタD4モジュール436は「要求方式」に対応しているので、結果が成功(OK)に設定されている。ただし、この段階では「クレジット」は「0」に設定されている。
以後、ネットD4モジュール336は、1以上のクレジット提供があるまで、ステップS240と同様のクレジット要求コマンドを繰り返し送信する。そして、ネットD4モジュール336は、1以上のクレジット提供に応じて、データパケットをプリンタD4モジュール436に送信する。図7の例では、ステップS260のクレジット要求に対する応答で、1つのクレジットが提供されている(S270)。そこで、ネットD4モジュール336は、次のステップS280で、1つのデータパケットを送信する。以後、ネットD4モジュール336は、データの転送が完了するまで、クレジット要求とデータ送信とを繰り返す。
以上のように、ネットD4モジュール336は、プリンタD4モジュール436に「提供方式」に対応しているか否かを問い合わせるとともに(図7:S220)、「提供方式」に従ったクレジット提供に対応していないことを示す応答を受信したら、「要求方式」に従って動作する。
図8は、データ転送の別の例を示すシーケンス図である。図7のシーケンス図との差違は、このシーケンス図が、プリンタユニット400が「提供方式」に対応している場合を示している点である。この場合には、ネットD4モジュール336は、「提供方式」によるクレジット取得を選択して実行する。なお、図8のシーケンス図には、図4と図5とのシーケンス図と比べて、ネットD4モジュール336とプリンタD4モジュール436との間でやりとりされるデータ(コマンド)がより詳細に示されている。
最初のステップS100、S110、S120は、図7のステップS200、S210、S220と、それぞれ同じである。
次のステップS130では、プリンタD4モジュール436が、クレジット要求応答を、ネットD4モジュール336に返信する。図8の例では、プリンタD4モジュール436は「提供方式」に対応しているので、結果は成功(OK)に設定されている。このように、プリンタD4モジュール436は、「提供方式」に対応している場合には、対応していることを示す応答を、ネットD4モジュール336に返信する。
ネットD4モジュール336は、プリンタD4モジュール436から「提供方式」に従ったクレジット提供に対応していることを示す応答を受信したら、「提供方式」に従って動作する。具体的には、ネットD4モジュール336は、クレジット要求を送信せずに、プリンタD4モジュール436からの自発的なクレジット提供を待つ。そして、ネットD4モジュール336は、クレジット提供に応じてデータパケットを送信する。
図8の例では、次のステップS140で、プリンタD4モジュール436がクレジットコマンドを送信している。このコマンドは、データ送信側にクレジットを提供するためのコマンドである。このクレジットコマンドは、提供されるクレジット数を含んでいる。ステップS140のクレジットコマンドでは、クレジットが「1」に設定されている。このクレジットコマンドを受信したネットD4モジュール336は、クレジットコマンドを受け入れたことを示すクレジット応答(Credit Reply)をプリンタD4モジュール436に送信し(ステップS150)、次のステップS160で、1つのデータパケットを送信する。以後、ネットD4モジュール336は、データの転送が完了するまで、クレジットの提供までの待機と、クレジット提供に応じたデータ送信とを繰り返す。
このように、ネットD4モジュール336は、プリンタD4モジュール436に「提供方式」に対応しているか否かを問い合わせるとともに(図8:S120)、「提供方式」に従ったクレジット提供に対応していることを示す応答を受信したら、「提供方式」に従って動作する。
以上のように、本実施例では、ネットD4モジュール336は、プリンタD4モジュール436に、「提供方式」での動作が可能であるか否かを問い合わせるとともに、「提供方式」で動作可能である場合には、「提供方式」によるクレジット取得を選択して実行し、「提供方式」で動作できない場合には、「要求方式」によるクレジット取得を選択して実行する。従って、ネットワークユニット300は、「提供方式」に対応したプリンタユニットと、「提供方式」には対応せずに「要求方式」に対応したプリンタユニットとの、それぞれに対して適切なクレジット取得方式で動作することができる。その結果、利用可能なプリンタユニットの構成の自由度を高めることが可能となる。
また、本実施例では、ネットワークユニット300とプリンタユニット400との間がUSBで接続されている。このように、接続インターフェースとして、パーソナルコンピュータとプリンタとの間の接続インターフェースとしてしばしば利用されるUSBを採用すれば、パーソナルコンピュータ用のプリンタを容易にプリンタユニット400として利用することが可能となる。また、特にこの場合には、プリンタの中には「提供方式」に対応せずに「要求方式」に対応しているものが多い。ただし、ネットワークユニット300はプリンタユニットに合わせて「提供方式」と「要求方式」との一方を選択可能であるので、このようなプリンタを容易にプリンタユニット400として利用できる。
B.変形例:
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
変形例1:
上記各実施例において、プリンタユニット400(プリンタD4モジュール436)による「提供方式」での動作が可能であるか否かの問い合わせ方法としては、クレジットリクエストコマンド(図7:S220、図8:S120)を用いる方法に限らず、任意の方法を採用可能である。例えば、オープンチャンネルコマンド(図7:S200、図8:S100)を用いて問い合わせる方法を採用してもよい。この場合には、ネットD4モジュール336は、オープンチャンネルコマンドにおいて、「C.R.」と「M.O.C.」との両方のパラメータを最大値(0xFFFF)に設定すればよい。
同様に、このような問い合わせに対する応答方法としては、クレジットリクエスト応答(図7:S230、図8:S130)を用いる方法に限らず、任意の方法を採用可能である。例えば、上述のようなオープンチャンネルコマンドを用いた問い合わせに対しては、オープンチャンネル応答(図7:S210、図8:S110)を用いて応答する方法を採用可能である。この場合には、プリンタD4モジュール436は、「提供方式」に対応している場合には、結果が成功(OK)であるオープンチャンネル応答を返信すればよく、また、「提供方式」に対応していない場合には、結果が失敗(NG)であるオープンチャンネル応答を返信すればよい。
変形例2:
上記各実施例において、プリンタユニット400が「提供方式」に対応しているか否かに関する問い合わせのタイミングとしては、データ転送前の任意のタイミングを採用可能である。例えば、ネットD4モジュール336が、ネットワークプリンタ200の起動後に、印刷要求の有無に拘わらずに問い合わせることとしてもよい。また、ネットD4モジュール336は、一度問い合わせをした後は、再度の問い合わせをせずに、問い合わせの応答に応じて選択されたクレジット取得方式を継続して利用することが好ましい。ここで、ネットワークユニット300に不揮発性メモリ(図示せず)を設け、ネットD4モジュール336が、不揮発性メモリに選択結果を格納してもよい。こうすれば、ネットD4モジュール336は、ネットワークプリンタ200が再起動された場合にも、問い合わせをせずに、不揮発性メモリに格納された適切なクレジット取得方式で動作することができる。
また、上記各実施例において、ネットワークプリンタ200のユーザが、プリンタユニット400を他のプリンタユニットに交換できる構成を採用してもよい。このような構成としては、例えば、図1のUSBコネクタ462が着脱可能である構成を採用可能である。ここで、ネットD4モジュール336は、ネットワークユニット300にプリンタユニット400が接続される毎に、問い合わせを行うことが好ましい。こうすれば、ネットD4モジュール336は、プリンタユニット400が他の種類のプリンタユニットに交換された場合でも、適切なクレジット取得方式で動作することができる。
変形例3:
上記各実施例において、ネットワークプリンタ200によって受信される印刷要求の形式としては、LPRを利用する形式に限らず、任意の形式を採用可能である。例えば、ネットワークプリンタ200をUPnP(Universal Plug and Play。UPnPは、UPnP Implementers Corporationの商標)対応のネットワーク装置として構成することも可能である。このような構成としては、例えば、以下の構成を採用可能である。ネットワークユニット300は、LAN上の他の装置(例えば、パーソナルコンピュータ100)からUPnPのプロトコルに従った印刷用のメッセージを受信する。さらに、ネットワークユニット300は、このメッセージをプリンタユニット400に転送する。プリンタユニット400は、受信したメッセージに従って印刷を実行する。ここで、ネットD4モジュール336とプリンタD4モジュール436とは、印刷用のメッセージを送受信する。
変形例4:
上記各実施例において、ネットD4モジュール336とプリンタD4モジュール436との間でクレジットに従って送受信されるデータとしては、元画像データや印刷用のメッセージに限らず、プリンタユニット400による印刷の制御に利用される任意の制御データを採用可能である。
変形例5:
上記各実施例では、D4プロトコルが利用されているが、D4プロトコルに限らず、クレジットに従ってデータパケットの転送が行われる任意の通信プロトコルに、本発明を適用することができる。
変形例6:
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。例えば、図2のUSB制御モジュール338の機能を、論理回路を有するハードウェア回路によって実現することとしてもよい。
なお、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア(コンピュータプログラム)は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやCD−ROMのような携帯型の記録媒体に限らず、各種のRAMやROM等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
本発明の実施例を適用するネットワークシステムの構成を示す概略図である。 ROM330430を中心としたネットワークプリンタ200の構成を示すブロック図である。 論理チャンネルdchにおけるクレジットの取得方式の一例の概要を示すシーケンス図である。 提供方式に従ったデータ転送の一例を示すシーケンス図である。 提供方式に従ったデータ転送の別の例を示すシーケンス図である。 クレジット取得方式の選択処理の手順を示すフローチャートである。 「提供方式」に対応していないプリンタユニット400を用いる場合のデータ転送の一例を示すシーケンス図である。 データ転送の別の例を示すシーケンス図である。
符号の説明
10…ネットワークシステム
100…パーソナルコンピュータ
100D…プリンタドライバ
200…ネットワークプリンタ
300…ネットワークユニット
320…RAM
330…ROM
332…ネットワークモジュール
334…プリントサーバモジュール
336…D4プロトコル処理モジュール(ネットD4モジュール)
338…USB制御モジュール
340…ネットワーク制御部
342…コネクタ
350…USBホスト制御部
352…ルートハブ
354…USBコネクタ
400…プリンタユニット
410…中央制御部
420…RAM
430…ROM
434…プリンタ機能モジュール
436…D4プロトコル処理モジュール(プリンタD4モジュール)
438…USB制御モジュール
440…印刷エンジン
460…USBデバイス制御部
462…USBコネクタ

Claims (4)

  1. 印刷を実行する印刷装置に、ネットワーク上のクライアントからの印刷要求に応じて、印刷に利用される制御データを送信するネットワーク装置であって、
    パケットを用いた通信プロトコルに従って前記制御データを送信する第1プロトコル処理部を有し、
    前記印刷装置は、前記通信プロトコルに従って前記制御データを受信する第2プロトコル処理部を有し、
    前記第1プロトコル処理部は、データ転送用のクレジットの取得モードとして、
    (i)クレジット要求を前記第2プロトコル処理部に送信することによってクレジットを取得する要求モードと、
    (ii)クレジット要求の有無に拘わらずに前記第2プロトコル処理部によって自発的に前記第1プロトコル処理部に提供されたクレジットを取得する提供モードと、を有し、
    前記第1プロトコル処理部は、前記第2プロトコル処理部に、前記提供モードで動作可能か否かを問い合わせるとともに、
    前記提供モードで動作可能な場合には、前記提供モードによるクレジット取得を選択して実行し、
    前記提供モードで動作できない場合には、前記要求モードによるクレジット取得を選択して実行する、
    ネットワーク装置。
  2. 請求項1に記載のネットワーク装置であって、
    前記ネットワーク装置と前記印刷装置との間はUSBで接続され、
    前記ネットワーク装置がUSBホストとして機能し、
    前記印刷装置はUSBデバイスとして機能し、
    前記通信プロトコルは、下位層のプロトコルとしてUSBプロトコルを利用する、
    ネットワーク装置。
  3. ネットワーク上のクライアントからの印刷要求に応じて印刷を実行するネットワークプリンタであって、
    請求項1または請求項2に記載のネットワーク装置と、前記印刷装置と、を備える、ネットワークプリンタ。
  4. 印刷を実行する印刷装置と、ネットワーク上のクライアントからの印刷要求に応じて印刷に利用される制御データを前記印刷装置に送信するネットワーク装置と、を備えるネットワークプリンタの制御方法であって、
    (A)前記ネットワーク装置が、前記印刷装置からデータ転送用のクレジットを取得する処理を実行する工程を備え、
    前記クレジットの取得処理は、
    (i)前記ネットワーク装置が、クレジット要求を前記印刷装置に送信することによってクレジットを取得する要求モードと、
    (ii)前記ネットワーク装置が、クレジット要求の有無に拘わらずに前記印刷装置によって自発的に前記ネットワーク装置に提供されたクレジットを取得する提供モードと、を有し、
    前記工程(A)は、
    (A1)前記ネットワーク装置が、前記印刷装置に、前記提供モードで動作可能か否かを問い合わせる工程と、
    (A2)前記提供モードで動作可能な場合には、前記ネットワーク装置が、前記提供モードによるクレジット取得を選択して実行し、
    前記提供モードで動作できない場合には、前記ネットワーク装置が、前記要求モードによるクレジット取得を選択して実行する工程と、を含む、
    制御方法。
JP2005302899A 2005-10-18 2005-10-18 ネットワークプリンタにおけるデータ通信用クレジットの取得 Expired - Fee Related JP4665705B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005302899A JP4665705B2 (ja) 2005-10-18 2005-10-18 ネットワークプリンタにおけるデータ通信用クレジットの取得

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005302899A JP4665705B2 (ja) 2005-10-18 2005-10-18 ネットワークプリンタにおけるデータ通信用クレジットの取得

Publications (2)

Publication Number Publication Date
JP2007114847A JP2007114847A (ja) 2007-05-10
JP4665705B2 true JP4665705B2 (ja) 2011-04-06

Family

ID=38096988

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005302899A Expired - Fee Related JP4665705B2 (ja) 2005-10-18 2005-10-18 ネットワークプリンタにおけるデータ通信用クレジットの取得

Country Status (1)

Country Link
JP (1) JP4665705B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031640A (ja) * 1996-07-16 1998-02-03 Nec Corp 画像転送装置
JPH11252119A (ja) * 1998-02-26 1999-09-17 Brother Ind Ltd ネットワークアダプタ及びこれを備えた端末システム
JP2004192238A (ja) * 2002-12-10 2004-07-08 Canon Inc 印刷システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031640A (ja) * 1996-07-16 1998-02-03 Nec Corp 画像転送装置
JPH11252119A (ja) * 1998-02-26 1999-09-17 Brother Ind Ltd ネットワークアダプタ及びこれを備えた端末システム
JP2004192238A (ja) * 2002-12-10 2004-07-08 Canon Inc 印刷システム

Also Published As

Publication number Publication date
JP2007114847A (ja) 2007-05-10

Similar Documents

Publication Publication Date Title
JP4508114B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
US8006287B2 (en) Network apparatus and control method therefor
US10802779B2 (en) Print processing system and method having print server converts document data into print data and to store the print data into plural storage servers for printing at image processing apparatus
JP5178230B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2005198298A (ja) ネットワーク画像形成装置の制御システムおよびそのデータ受信制御方法
JP2007164485A (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
JP5899713B2 (ja) 印刷装置、印刷方法
US20040227972A1 (en) Printing apparatus and canceling method
JP4665705B2 (ja) ネットワークプリンタにおけるデータ通信用クレジットの取得
JP2007156691A (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
JP2009015716A (ja) 複数ipアドレスによる画像形成装置
US8270017B2 (en) Network card device for determining permissibility for processing data from a data source and method of controlling the same
JP4765496B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク装置及びその制御方法
JP3800219B2 (ja) ネットワークシステム、プリンタ及び情報記憶媒体
JP5899712B2 (ja) 印刷装置、印刷方法
JP4139541B2 (ja) プリンタおよびプリンタジョブデータの転送方法
JP4640147B2 (ja) ネットワーク型プラグアンドプレイに対応したネットワーク中継制御
JP2016045697A (ja) 印刷制御装置、印刷システム、印刷制御装置の制御方法、及びプログラム
JP2004118868A (ja) 情報処理装置並びに情報記憶媒体および情報処理方法
JP4307358B2 (ja) プロトコル変換装置、該装置の制御方法及び制御プログラム
JP2008085778A (ja) 情報通信システムおよび受信装置および送信装置および受信制御プログラムおよび送信制御プログラム
JP2007172196A (ja) ネットワーク装置におけるデータの管理
JP4243831B2 (ja) プリンタおよびプリンタジョブデータの転送方法
JP2007072793A (ja) ネットワーク型プラグアンドプレイに対応したネットワーク装置の制御
JP2006209534A (ja) 印刷制御装置及び印刷システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100330

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

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

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

Free format text: PAYMENT UNTIL: 20140121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees