JPH10322414A - データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体 - Google Patents

データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体

Info

Publication number
JPH10322414A
JPH10322414A JP9127645A JP12764597A JPH10322414A JP H10322414 A JPH10322414 A JP H10322414A JP 9127645 A JP9127645 A JP 9127645A JP 12764597 A JP12764597 A JP 12764597A JP H10322414 A JPH10322414 A JP H10322414A
Authority
JP
Japan
Prior art keywords
data
transfer
response
data transfer
node
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.)
Withdrawn
Application number
JP9127645A
Other languages
English (en)
Inventor
Koji Fukunaga
耕司 福長
Makoto Kobayashi
真琴 小林
Kiyoshi Katano
清 片野
Naohisa Suzuki
尚久 鈴木
Jiro Tateyama
二郎 立山
Atsushi Nakamura
敦 中村
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 JP9127645A priority Critical patent/JPH10322414A/ja
Priority to DE69836771T priority patent/DE69836771T2/de
Priority to EP98301111A priority patent/EP0859324B1/en
Priority to US09/024,185 priority patent/US6603737B1/en
Publication of JPH10322414A publication Critical patent/JPH10322414A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 画像供給デバイスから出力される画像データ
は、ホストコンピュータにより印刷データに変換されて
プリンタにより印刷されるものであるから、1394シリア
ルバスなどにより画像供給デバイスとプリンタを直結し
たとしても、ホストコンピュータが無ければ印刷を行う
ことができない。 【解決手段】 1394シリアルバスにより画像供給デバイ
ス101とプリンタ102を直結し、画像供給デバイス101か
らプリンタ102へコマンドを送らせ、プリンタ102から画
像供給デバイス101へコマンドに対するレスポンスを返
させ、そのレスポンスに含まれる情報に基づき、画像供
給デバイス101からプリンタ102へ画像データを送らせ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ転送装置、デ
ータ転送システムおよびその方法、画像処理装置、並び
に、記録媒体に関し、例えば、IEEE1394などにより規定
されるシリアルインタフェイスを介して、ディジタルカ
メラなどの画像供給デバイスとプリンタなどの画像処理
デバイスとを直結する場合のデータ転送装置、データ転
送システムおよびその方法、画像処理装置、並びに、記
録媒体に関するものである。
【0002】
【従来の技術】プリンタは、セントロニクスやRS232Cと
言ったパラレルあるいはシリアルインタフェイスを介し
て、ホストデバイスであるパーソナルコンピュータ(PC)
と接続されている。
【0003】また、スキャナ、ディジタルスチルカメ
ラ、ディジタルビデオカメラといった画像供給デバイス
であるディジタル機器もPCに接続されている。各ディジ
タル機器により取込まれた画像データは、一旦PC上のハ
ードディスクなどに取込まれた後、PC上のアプリケーシ
ョンソフトウェアなどにより処理されてプリンタ用の印
刷データに変換され、上記のインタフェイスを経由して
プリンタに送られる。
【0004】上記のようなシステムでは、各ディジタル
機器やプリンタなどを制御するためのドライバソフトウ
ェアがそれぞれ独立にPCに存在し、ディジタル機器から
出力された画像データは、それらドライバソフトウェア
によりPC上で使い易くかつ表示し易い形式のデータとし
て保存される。保存されたデータは、入力機器の画像特
性と出力機器の画像特性とを考慮した画像処理方法によ
り印刷データに変換される。
【0005】今日、IEEE1394により規定されるインタフ
ェイス(以下「1394シリアルバス」と呼ぶ)のような新
しいインタフェイスでは、画像供給デバイスとプリンタ
とを直結することも可能である。1394シリアルバスによ
り画像供給デバイスとプリンタとを直結する場合、FCP
(Function Control Protocol)のオペランドに印刷デー
タを含める方法が考えられる。また、 1394シリアルバ
スでは、データ転送のためのレジスタ領域を設けて、そ
のレジスタ領域にデータを書込むことでデータ転送を行
う方法も考えられる。
【0006】また、1394シリアルバスには、同期転送(i
sochronous)と非同期転送(asynchronous)の二つの転送
モードがあり、同期転送により時間に厳密なデータ、例
えばリアルタイムデータの転送を、非同期転送により簡
易なデータ転送を実現することができる。
【0007】
【発明が解決しようとする課題】しかし、上述した技術
においては、次のような問題点がある。前述したよう
に、画像供給デバイスから出力される画像データは、PC
により印刷データに変換されてプリンタにより印刷され
るものであるから、画像供給デバイスとプリンタを直結
したとしても、PCが無ければ印刷を行うことができな
い。ディジタルビデオカメラから出力される画像データ
を直接印刷するビデオプリンタと呼ばれるプリンタもあ
るが、特定の機種間で接続ができるだけであり、多数の
画像供給デバイスと直結して使える汎用性の高いビデオ
プリンタはない。つまり、1394シリアルバスなどの特徴
であるデバイス間を直結する機能を生かし、画像供給デ
バイスからプリンタへ画像データを直接送って印刷する
ことはできない。
【0008】1394シリアルバスにより画像供給デバイス
とプリンタを直結し、FCPのオペランドに印刷データを
含める前述した方法は、制御コマンドと印刷データとを
分離することができない問題がある上、コマンドに対し
て常にレスポンスが必要なため転送効率が低いという問
題もある。また、前述したデータ転送のためのレジスタ
領域を設ける方法は、そのレジスタ領域にデータを書込
むことが可能であるかどうかを判定するための処理がデ
ータ転送の度に必要になる。従って、この判定処理のオ
ーバヘッドが大きくなり、やはり転送効率が低下すると
いう問題が発生する。
【0009】また、時間に厳密なータ転送を行う同期転
送では、転送エラーが発生した場合、あるデータ単位で
のエラー回復は困難である。
【0010】本発明は、上述した問題を個々にまたはま
とめて解決するためのものであり、1394シリアルバスな
どによりホストデバイスとターゲットデバイスを直結
し、ホストデバイスから直接ターゲットデバイスへ送ら
れる画像データの処理をターゲットデバイスに行わせる
のに適したデータ転送装置、データ転送システムおよび
その方法、画像処理装置、並びに、記録媒体を提供する
ことを目的とする。
【0011】また、制御コマンドとデータの分離が可能
で転送効率のよいデータ転送装置、データ転送システム
およびその方法、画像処理装置、並びに、記録媒体を提
供することを他の目的とする。
【0012】また、同期転送において転送エラーが発生
した場合でもエラーを回復することができるデータ転送
装置、データ転送システムおよびその方法、画像処理装
置、並びに、記録媒体を提供することを目的とする。
【0013】
【課題を解決するための手段】本発明は、前記の目的を
達成する一手段として、以下の構成を備える。
【0014】本発明にかかるデータ転送装置は、シリア
ルバスに接続されるデータ転送装置であって、ターゲッ
トデバイスへコマンドを送るコマンド送信手段と、前記
ターゲットデバイスから返されるレスポンスを受信する
受信手段と、前記レスポンスに基づき転送エラーの発生
がなかったと認識される場合は前記ターゲットデバイス
へデータを同期転送し、前記レスポンスに基づき転送エ
ラーの発生が認識される場合はデータを再送する転送手
段とを有することを特徴とする。
【0015】また、シリアルバスに接続されるデータ転
送装置であって、ホストデバイスから送られてくるコマ
ンドおよびデータを受信する受信手段と、前記ホストデ
バイスへレスポンスを送る送信手段と、データ転送にお
いて転送エラーの発生を検出した場合、前記レスポンス
に転送エラーを示す情報を含める検出手段とを有するこ
とを特徴とする。
【0016】本発明にかかるデータ転送方法は、シリア
ルバスにより直結されるホストデバイスとターゲットデ
バイスとの間で利用されるデータ転送方法であって、前
記ホストデバイスから前記ターゲットデバイスにコマン
ドを送り、前記ターゲットデバイスから前記ホストデバ
イスへレスポンスを返し、前記レスポンスに基づき転送
エラーの発生がなかったと認識される場合は、前記ホス
トデバイスから前記ターゲットデバイスへデータを同期
転送し、前記レスポンスに基づき転送エラーの発生が認
識される場合はデータを再送することを特徴とする。
【0017】本発明にかかるデータ転送システムは、シ
リアルバスを介してデータを転送するデータ転送システ
ムであって、ホストデバイスからターゲットデバイスへ
コマンドを送らせ、前記ターゲットデバイスから前記ホ
ストデバイスへレスポンスを送らせる通信手段と、前記
レスポンスに基づき転送エラーの発生がなかったと認識
される場合は前記ホストデバイスから前記ターゲットデ
バイスへデータを同期転送させ、前記レスポンスに基づ
き転送エラーの発生が認識される場合は前記ホストデバ
イスにデータを再送させる転送手段とを有することを特
徴とする。
【0018】本発明にかかる画像処理装置は、シリアル
バスにより直結されるホストデバイスとターゲットデバ
イスとの間で利用されるデータ転送方法であって、前記
ホストデバイスから前記ターゲットデバイスにコマンド
を送り、前記ターゲットデバイスから前記ホストデバイ
スへレスポンスを返し、前記レスポンスに基づき転送エ
ラーの発生がなかったと認識される場合は、前記ホスト
デバイスから前記ターゲットデバイスへデータを同期転
送し、前記レスポンスに基づき転送エラーの発生が認識
される場合はデータを再送するデータ転送方法により、
前記ターゲットデバイスへ画像データを送信することを
特徴とする。
【0019】また、シリアルバスにより直結されるホス
トデバイスとターゲットデバイスとの間で利用されるデ
ータ転送方法であって、前記ホストデバイスから前記タ
ーゲットデバイスにコマンドを送り、前記ターゲットデ
バイスから前記ホストデバイスへレスポンスを返し、前
記レスポンスに基づき転送エラーの発生がなかったと認
識される場合は、前記ホストデバイスから前記ターゲッ
トデバイスへデータを同期転送し、前記レスポンスに基
づき転送エラーの発生が認識される場合はデータを再送
するデータ転送方法により、前記ホストデバイスから受
信した画像データを処理することを特徴とする。
【0020】
【発明の実施の形態】以下、本発明にかかる一実施形態
のデータ転送方法を図面を参照して詳細に説明する。
【0021】図1は本発明を適用するシステムの一般的
な構成例を示す図で、PC103、プリンタ102およびディジ
タルビデオカメラ(DVC)101を1394シリアルバスを用いて
接続するものである。そこで、予め、1394シリアルバス
の概要を説明をする。
【0022】
【IEEE1394の概要】家庭用ディジタルVTRやディジタル
ビデオディスク(DVD)の登場に伴い、ビデオデータやオ
ーディオデータ(以下、まとめて「AVデータ」と呼ぶ)
など、リアルタイムかつ情報量の多いデータを転送する
必要が生じている。AVデータをリアルタイムに、PCへ転
送したり、その他のディジタル機器に転送するには、高
速のデータ転送能力をもつインタフェイスが必要にな
る。そういった観点から開発されたインタフェイスが13
94シリアルバスである。
【0023】図2に1394シリアルバスを用いて構成され
るネットワークシステムの例を示す。このシステムは機
器AからHを備え、A-B間、A-C間、B-D間、D-E間、C-F
間、C-G間、およびC-H間がそれぞれ1394シリアルバス用
のツイストペアケーブルで接続されている。これらの機
器AからHの例としては、パソコンなどのホストコンピュ
ータ装置、および、コンピュータ周辺機器である。コン
ピュータ周辺機器としては、ディジタルVCR、DVDプレー
ヤ、ディジタルスチルカメラ、ハードディスクや光ディ
スクなどのメディアを用いる記憶装置、CRTやLCDのモニ
タ、チューナ、イメージスキャナ、フィルムスキャナ、
プリンタ、MODEM、ターミナルアダプタ(TA)などコンピ
ュータ周辺機器のすべてが対象になる。なお、プリンタ
の記録方式は、レーザビームやLEDを用いた電子写真方
式、インクジェット方式、インク溶融型や昇華型の熱転
写方式、感熱記録方式など、どんな方式でも構わない。
【0024】各機器間の接続は、ディジーチェーン方式
とノード分岐方式との混在が可能であり、自由度の高い
接続を行うことができる。また、各機器はそれぞれIDを
有し、互いにIDを認識し合うことによって、1394シリア
ルバスで接続された範囲において、一つのネットワーク
を構成している。例えば、各機器間をそれぞれ一本の13
94シリアルバス用ケーブルでディジーチェーン接続する
だけで、それぞれの機器が中継の役割を担うので、全体
として一つのネットワークを構成することができる。
【0025】また、1394シリアルバスはPlug and Play
機能に対応し、1394シリアルバス用ケーブルを機器に接
続するだけで自動的に機器を認識し、接続状況を認識す
る機能を有している。また、図2に示すようなシステム
において、ネットワークからある機器が外されたり、ま
たは新たに加えられたときなど、自動的にバスをリセッ
ト(それまでのネットワークの構成情報をリセット)し
て、新たなネットワークを再構築する。この機能によっ
て、その時々のネットワークの構成を常時設定、認識す
ることができる。
【0026】また、1394シリアルバスのデータ転送速度
は、100/200/400Mbpsが定義されていて、上位の転送速
度をもつ機器が下位の転送速度をサポートすることで、
互換性が保たれている。データ転送モードとしては、コ
ントロール信号などの非同期データを転送する非同期(A
synchronous)転送モード(ATM)と、リアルタイムなAVデ
ータ等の同期データを転送する同期(Isochronous)転送
モードがある。この非同期データと同期データは、各サ
イクル(通常125μs/サイクル)の中で、サイクル開始
を示すサイクルスタートパケット(CSP)の転送に続き、
同期データの転送を優先しつつ、サイクル内で混在して
転送される。
【0027】図3は1394シリアルバスの構成例を示す図
である。1394シリアルバスはレイヤ構造で構成されてい
る。図3に示すように、コネクタポート810には、1394シ
リアルバス用のケーブル813の先端のコネクタが接続さ
れる。コネクタポート810の上位には、ハードウェア部8
00で構成されるフィジカルレイヤ811とリンクレイヤ812
がある。ハードウェア部800はインタフェイス用チップ
で構成され、そのうちフィジカルレイヤ811は符号化や
コネクション関連の制御等を行い、リンクレイヤ812は
パケット転送やサイクルタイムの制御等を行う。
【0028】ファームウェア部801のトランザクション
レイヤ814は、転送(トランザクション)すべきデータ
の管理を行い、Read、Write、Lockの命令を出す。ファ
ームウェア部801のマネージメントレイヤ815は、1394シ
リアルバスに接続されている各機器の接続状況やIDの管
理を行い、ネットワークの構成を管理する。上記のハー
ドウェアとファームウェアまでが、1394シリアルバスの
実質的な構成である。
【0029】また、ソフトウェア部802のアプリケーシ
ョンレイヤ816は、利用されるソフトによって異なり、
インタフェイス上でどのようにしてデータを転送するか
は、プリンタやAV/Cプロトコルなどのプロトコルによっ
て定義される。
【0030】図4は1394シリアルバスにおけるアドレス
空間の一例を示す図である。1394シリアルバスに接続さ
れた各機器(ノード)には必ずノードに固有の64ビット
アドレスをもたせる。そして、このアドレスは機器のメ
モリに格納されていて、自分や相手のノードアドレスを
常時認識することで、通信相手を指定したデータ通信を
行うことができる。
【0031】1394シリアルバスのアドレッシングは、IE
EE1212規格に準じた方式であり、アドレス設定は、最初
の10ビットがバスの番号の指定用に、次の6ビットがノ
ードIDの指定用に使われる。
【0032】それぞれの機器内で使用される48ビットの
アドレスについても、20ビットと28ビットに分けられ、
256Mバイト単位の構造をもって利用される。最初の20ビ
ットのアドレス空間のうち0〜0xFFFFDはメモリ空間、0x
FFFFEはプライベート空間、0xFFFFFはレジスタ空間とそ
れぞれ呼ばれる。プライベート空間は機器内で自由に利
用できるアドレスであり、レジスタ空間にはバスに接続
された機器間で共通な情報が置かれ、各機器間のコミュ
ニケーションに使われる。
【0033】レジスタ空間の、最初の512バイトにはCSR
アーキテクチャのコアになるレジスタ(CSRコア)が、
次の512バイトにはシリアルバスのレジスタが、その次
の1024バイトにはコンフィグレーションROMが、残りは
ユニット空間で機器固有のレジスタが、それぞれ置かれ
る。
【0034】一般的には異種バスシステムの設計の簡略
化のため、ノードは初期ユニット空間の最初の2048バイ
トだけを使うべきであり、この結果としてCSRコア、シ
リアルバスのレジスタ、コンフィグレーションROMおよ
びユニット空間の最初の2048バイトを合わせて4096バイ
トで構成することが望ましい。
【0035】以上が、1394シリアルバスの概要である。
次に、1394シリアルバスの特徴をより詳細に説明する。
【0036】
【1394シリアルバスの詳細】 [1394シリアルバスの電気的仕様]図5は1394シリアル
バス用のケーブルの断面を示す図である。1394シリアル
バス用ケーブルには、二組のツイストペア信号線の他
に、電源ラインが設けられている。これによって、電源
を持たない機器や、故障などにより電圧が低下した機器
にも電力の供給が可能になる。電源線により供給される
直流電力の電圧は8〜40V、電流は最大電流1.5Aに規定さ
れている。なお、DVケーブルと呼ばれる規格では、電源
ラインを省いた四線で構成される。
【0037】[DS-Link方式]図6は1394シリアルバスで
採用されている、データ転送方式のDS-Link(Data/Strob
e Link)方式を説明するための図である。
【0038】DS-Link方式は、高速なシリアルデータ通
信に適し、二組の信号線を必要とする。つまり、二組の
より対線のうち一組でデータ信号を送り、もう一組でス
トローブ信号を送る構成になっている。受信側では、こ
のデータ信号と、ストローブ信号との排他的論理和をと
ることによってクロックを生成することができるという
特徴がある。このため、DS-Link方式を用いると、デー
タ信号中にクロック信号を混入させる必要がないので他
のシリアルデータ転送方式に比べて転送効率が高い、ク
ロック信号を生成できるので位相ロックドループ(PLL)
回路が不要になり、その分コントローラLSIの回路規模
を小さくすることができる。さらに、転送すべきデータ
が無いときにアイドル状態であることを示す情報を送る
必要が無いので、各機器のトランシーバ回路をスリープ
状態にすることができ、消費電力の低減が図れる、など
が挙げられる。
【0039】[バスリセットのシーケンス]1394シリア
ルバスに接続されている各機器(ノード)にはノードID
が与えられ、ネットワークを構成するノードとして認識
される。例えば、ネットワーク機器の接続分離や電源の
オン/オフなどによるノード数の増減、つまりネットワ
ーク構成に変化があり、新たなネットワーク構成を認識
する必要があるとき、その変化を検知した各ノードはバ
ス上にバスリセット信号を送信して、新たなネットワー
ク構成を認識するモードに入る。このネットワーク構成
の変化の検知は、コネクタポート810においてバイアス
電圧の変化を検知することによって行われる。
【0040】あるノードからバスリセット信号が送信さ
れると、各ノードのフィジカルレイヤ811はこのバスリ
セット信号を受けると同時にリンクレイヤ812にバスリ
セットの発生を伝達し、かつ他のノードにバスリセット
信号を伝達する。最終的にすべてのノードがバスリセッ
ト信号を受信した後、バスリセットのシーケンスが起動
される。なお、バスリセットのシーケンスは、ケーブル
が抜き挿しされた場合や、ネットワークの異常等をハー
ドウェアが 検出した場合に起動されるとともに、プロ
トコルによるホスト制御などフィジカルレイヤ811に直
接命令を与えることによっても起動される。また、バス
リセットのシーケンスが起動されると、データ転送は、
一時中断され、バスリセットの間は待たされ、バスリセ
ット終了後、新しいネットワーク構成の基で再開され
る。
【0041】[ノードID決定のシーケンス]バスリセッ
トの後、各ノードは新しいネットワーク構成を構築する
ために、各ノードにIDを与える動作に入る。このとき
の、バスリセットからノードID決定までの一般的なシー
ケンスを図7から図9に示すフローチャートを用いて説明
する。
【0042】図7は、バスリセット信号の発生から、ノ
ードIDが決定し、データ転送が行えるようになるまでの
一連のシーケンス例を示すフローチャートである。各ノ
ードは、ステップS101でバスリセット信号の発生を常時
監視し、バスリセット信号が発生するとステップS102に
移り、ネットワーク構成がリセットされた状態において
新たなネットワーク構成を得るために、互いに直結され
ているノード間で親子関係が宣言される。そしてステッ
プS103の判定により、すべてのノード間で親子関係が決
ったと判定されるまでステップS102が繰り返される。
【0043】親子関係が決定するとステップS104へ進み
ルート(root)ノードが決定され、ステップS105で各ノー
ドにIDを与えるノードIDの設定作業が行われる。ルート
ノードから所定のノード順にノードIDの設定が行われ、
ステップS106の判定により、すべてのノードにIDが与え
られたと判定されるまでステップS105が繰り返される。
【0044】ノードIDの設定が終了すると、新しいネッ
トワーク構成がすべてのノードにおいて認識されたこと
になるのでノード間のデータ転送が行える状態になり、
ステップS107でデータ転送が開始されるとともに、シー
ケンスはステップS101へ戻り、再びバスリセット信号の
発生が監視される。
【0045】図8はバスリセット信号の監視(S101)から
ルートノードの決定(S104)までの詳細例を示すフローチ
ャート、図9はノードID設定(S105,S106)の詳細例を示す
フローチャートである。
【0046】図8において、ステップS201でバスリセッ
ト信号の発生が監視され、バスリセット信号が発生する
と、ネットワーク構成は一旦リセットされる。次に、ス
テップS202で、リセットされたネットワーク構成を再認
識する作業の第一歩として、各機器はフラグFLをリーフ
ノードであることを示すデータでリセットする。そし
て、ステップS203で、各機器はポート数、つまり自分に
接続されている他ノードの数を調べ、ステップS204で、
ステップS203の結果に応じて、これから親子関係の宣言
を始めるために、未定義(親子関係が決定されていな
い)ポートの数を調べる。ここで、未定義ポート数は、
バスリセットの直後はポート数に等しいが、親子関係が
決定されて行くにしたがって、ステップS204で検知され
る未定義ポートの数は減少する。
【0047】バスリセットの直後に親子関係の宣言を行
えるのは実際のリーフノードに限られている。リーフノ
ードであるか否かはステップS203のポート数の確認結果
から知ることができ、つまりポート数が「1」であれば
リーフノードである。リーフノードは、ステップS205
で、接続相手のノードに対して親子関係の宣言「自分は
子、相手は親」を行い動作を終了する。
【0048】一方、ステップS203でポート数が「2以
上」であったノード、つまりブランチノードは、バスリ
セットの直後は「未定義ポート数>1」であるからステッ
プS206へ進み、フラグFLにブランチノードを示すデータ
をセットし、ステップS207で他ノードから親子関係が宣
言されるのを待つ。他ノードから親子関係が宣言され、
それを受けたブランチノードはステップS204に戻り、未
定義ポート数を確認するが、もし未定義ポート数が
「1」になっていれば残るポートに接続された他ノード
に対して、ステップS205で「自分は子、相手は親」の親
子関係を宣言することができる。また、未だ未定義ポー
ト数が「2以上」あるブランチノードは、ステップS207
で再び他ノードから親子関係が宣言されるのを待つこと
になる。
【0049】何れか一つのブランチノード(または例外
的に、子宣言を行えるのにもかかわらず、すばやく動作
しなかったリーフノード)の未定義ポート数が「0」に
なると、ネットワーク全体の親子関係の宣言が終了した
ことになり、未定義ポート数が「0」になった唯一のノ
ード、つまりすべてノードの親に決まったノードは、ス
テップS208でフラグFLにルートノードを示すデータをセ
ットし、ステップS209でルートノードとして認識され
る。
【0050】このようにして、バスリセットから、ネッ
トワーク内のすべてのノード間における親子関係の宣言
までの手順が終了する。
【0051】次に、各ノードにIDを与える手順を説明す
るが、最初にIDの設定を行うことができるのはリーフノ
ードである。そして、リーフ→ブランチ→ルートの順に
若い番号(ノード番号: 0)からIDを設定する。
【0052】図9のステップS301で、フラグFLに設定さ
れたデータを基にノードの種類、つまりリーフ、ブラン
チおよびルートに応じた処理に分岐する。
【0053】まずリーフノードの場合は、ステップS302
でネットワーク内に存在するリーフノードの数(自然
数)を変数Nに設定した後、ステップS303で各リーフノ
ードがルートノードに対して、ノード番号を要求する。
この要求が複数ある場合、ルートノードはステップS304
でアービトレーションを行い、ステップS305である一つ
のノードにノード番号を与え、他のノードにはノード番
号の取得失敗を示す結果を通知する。
【0054】ステップS306の判断により、ノード番号を
取得できなかったリーフノードは、再びステップS303で
ノード番号の要求を繰り返す。一方、ノード番号を取得
できたリーフノードは、ステップS307で、取得したノー
ド番号を含むID情報をブロードキャストすることで全ノ
ードに通知する。ID情報のブロードキャストが終わると
ステップS308で、リーフ数を表す変数Nがデクリメント
される。そして、ステップS309の判定により変数Nが
「0」になるまでステップS303からS308の手順が繰り返
され、すべてのリーフノードのID情報がブロードキャス
トされた後、ステップS310へ進んで、ブランチノードの
ID設定に移る。
【0055】ブランチノードのID設定もリーフノードと
ほぼ同様に行われる。まず、ステップS310でネットワー
ク内に存在するブランチノードの数(自然数)を変数M
に設定した後、ステップS311で各ブランチノードがルー
トノードに対して、ノード番号を要求する。この要求に
対してルートノードは、ステップS312でアービトレーシ
ョンを行い、ステップS313である一つのブランチノード
にリーフノードに続く若い番号を与え、ノード番号を取
得できなかったブランチノードには取得失敗を示す結果
を通知する。
【0056】ステップS314の判定により、ノード番号の
取得に失敗したことを知ったブランチノードは、再びス
テップS311でノード番号の要求を繰り返す。一方、ノー
ド番号を取得できたブランチノードはステップS315で、
取得したノード番号を含むID情報をブロードキャストす
ることで全ノードに通知する。ID情報のブロードキャス
トが終わるとステップS316で、ブランチ数を表す変数M
がデクリメントされる。そして、ステップS317の判定に
より、変数Mが「0」になるまでステップS311からS316の
手順が繰返され、すべてのブランチノードのID情報がブ
ロードキャストされた後、ステップS318へ進んで、ルー
トノードのID設定に移る。
【0057】ここまで終了すると、最終的にIDを取得し
ていないノードはルートノードのみなので、ステップS3
18では、他のノードに与えていない最も若い番号を自分
のノード番号に設定し、ステップS319でルートノードの
ID情報をブロードキャストする。
【0058】以上で、すべてのノードのIDが設定される
までの手順が終了する。次に、図10に示すネットワーク
例を用いてノードID決定のシーケンスの具体的な手順を
説明する。
【0059】図10に示すネットワークは、ルートである
ノードBの下位にはノードAとノードCが直結され、ノー
ドCの下位にはノードDが直結され、ノードDの下位には
ノードEとノードFが直結された階層構造を有する。こ
の、階層構造やルートノード、ノードIDを決定する手順
は以下のようになる。
【0060】バスリセットが発生した後、各ノードの接
続状況を認識するために、各ノードの直結されているポ
ート間において、親子関係の宣言がなされる。ここでい
う親子とは、階層構造の上位が「親」、下位が「子」と
いう意味である。図10では、バスリセットの後、最初に
親子関係を宣言したのはノードAである。前述したよう
に、一つのポートだけが接続されたノード(リーフ)か
ら親子関係の宣言を開始することができる。これは、ポ
ート数が「1」であればネットワークツリーの末端、つ
まりリーフノードであることが認識され、それらリーフ
ノードの中で最も早く動作を行ったノードから親子関係
が決定されて行くことになる。こうして親子関係の宣言
を行ったノードのポートが、互いに接続された二つのノ
ードの「子」と設定され、相手ノードのノードが「親」
と設定される。こうして、ノードA-B間、ノードE-D間、
ノードF-D間で「子-親」の関係が設定される。
【0061】さらに、階層が一つ上がって、複数のポー
トをもつノード、つまりブランチノードのうち他ノード
から親子関係の宣言を受けたノードから順次、上位のノ
ードに対して親子関係を宣言する。図10ではまずノード
D-E間、D-F間の親子関係が決定された後、ノードDがノ
ードCに対して親子関係を宣言し、その結果、ノードD-C
間で「子-親」の関係が設定される。ノードDから親子関
係の宣言を受けたノードCは、もう一つのポートに接続
されているノードBに対して親子関係を宣言し、これに
よってノードC-B間で「子-親」の関係が設定される。
【0062】このようにして、図10に示すような階層構
造が構成され、最終的に接続されているすべてのポート
において親となったノードBが、ルートノードと決定さ
れる。なお、ルートノードは一つのネットワーク構成中
に一つしか存在しない。また、ノードAから親子関係を
宣言されたノードBが、速やかに、他のノードに対して
親子関係を宣言した場合は、例えばノードCなどの他の
ノードがルートノードになる可能性もあり得る。すなわ
ち、親子関係の宣言が伝達されるタイミングによって
は、どのノードもルートノードになる可能性があり、ネ
ットワーク構成が同一であっても、特定のノードがルー
トノードになるとは限らない。
【0063】ルートノードが決定されると、各ノードID
の決定モードに入る。すべてのノードは、決定した自分
のID情報を、他のすべてのノードに通知するプロードキ
ャスト機能をもっている。なお、ID情報は、ノード番
号、接続されている位置の情報、もっているポートの
数、接続のあるポートの数、各ポートの親子関係の情報
などを含むID情報としてブロードキャストされる。
【0064】ノード番号の割当ては、前述したようにリ
ーフノードから開始され、順に、ノード番号=0,1,2,…
が割当てられる。そしてID情報のブロードキャストによ
って、そのノード番号は割当て済みであることが認識さ
れる。
【0065】すべてのリーフノードがノード番号を取得
し終わると、次はブランチノードへ移りリーフノードに
続くノード番号が割当てられる。リーフノードと同様
に、ノード番号が割当てられたブランチノードから順に
ID情報がブロードキャストされ、最後にルートノードが
自己のID情報をブロードキャストする。従って、ルート
ノードは常に最大のノード番号を所有することになる。
【0066】以上のようにして、階層構造全体のID設定
が終わり、ネットワーク構成が構築され、バスの初期化
作業が完了する。
【0067】[ノード管理のための制御情報]ノード管
理を行うためのCSRアーキテクチャの基本的な機能とし
て、図4に示したCSRコアがレジスタ上に存在する。それ
らレジスタの位置と機能を図11に示すが、図中のオフセ
ットは0xFFFFF0000000からの相対位置である。
【0068】CSRアーキテクチャでは、0xFFFFF0000200
からシリアルバスに関するレジスタが配置されている。
それらのレジスタの位置と機能を図12に示す。
【0069】また、0xFFFFF0000800から始まる場所に
は、シリアルバスのノード資源に関する情報が配置され
ている。それらのレジスタの位置と機能を図13に示す。
【0070】CSRアーキテクチャでは、各ノードの機能
を表すためコンフィグレーションROMをもっているが、
このROMには最小形式と一般形式があり、0xFFFFF000040
0から配置される。最小形式では図14に示すようにベン
ダIDを表すだけであり、このベンダIDは24ビットで表さ
れる全世界で固有の値である。
【0071】また、一般形式は図15に示すような形式
で、ノードに関する情報をもっているが、この場合、ベ
ンダIDはルートディレクトリ(root_directory)にもつこ
とができる。また、バス情報ブロック(bus info block)
とルートリーフ(root leaf)にはベンダIDを含む64ビッ
トの全世界で固有な装置番号をもっている。この装置番
号は、バスリセットなどの再構成後に継続してノードを
認識するために使用される。
【0072】[シリアルバス管理]1394シリアルバスの
プロトコルは、図3に示したように、フィジカルレイヤ8
11、リンクレイヤ812およびトランザクションレイヤ814
から構成されている。この中で、バス管理は、CSRアー
キテクチャに基づくノードの制御とバス資源管理のため
の基本的な機能を提供している。
【0073】バス管理を行うノード(以下「バス管理ノ
ード」と呼ぶ)は、同一バス上に唯一存在し、シリアル
バス上の他のノードに管理機能を提供するが、この管理
機能にはサイクルマスタの制御や、性能の最適化、電源
管理、伝送速度管理、構成管理などがある。
【0074】バス管理機能は、バスマネージャ、同期
(アイソクロノス)リソースマネージャおよびノード制
御の三つの機能に大きく別けられる。ノード制御は、CS
Rによってフィジカルレイヤ811、リンクレイヤ812、ト
ランザクションレイヤ814およびアプリケーションにお
けるノード間通信を可能にする管理機能である。同期リ
ソースマネージャは、シリアルバス上で同期型のデータ
転送を行うために必要になる管理機能で、同期データの
転送帯域幅とチャネル番号の割当てを管理するものであ
る。この管理を行うためにバス管理ノードは、バスの初
期化後に、同期リソースマネージャ機能をもつノードの
中から動的に選出される。
【0075】また、バス上にバス管理ノードが存在しな
い構成では、電源管理やサイクルマスタの制御のような
バス管理の一部の機能を同期リソースマネージャ機能を
もつノードが行う。さらにバス管理は、アプリケーショ
ンに対してバス制御のインタフェイスを提供するサービ
スを行う管理機能であり、その制御インタフェイスには
シリアルバス制御要求(SB_CONTROL.request)、シリアル
バスイベント制御確認(SB_CONTROL.confirmation)、シ
リアルバスイベント通知(SB_EVENT.indication)があ
る。
【0076】シリアルバス制御要求は、バスのリセッ
ト、バスの初期化、バスの状態情報などを、アプリケー
ションからバス管理ノードに要求する場合に利用され
る。シリアルバスイベント制御確認は、シリアルバス制
御要求の結果で、バス管理ノードからアプリケーション
に確認通知される。シリアルバスイベント通知は、バス
管理ノードからアプリケーションに対して、非同期に発
生されるイベントを通知するためのものである。
【0077】[データ転送プロトコル]1394シリアルバ
スのデータ転送は、周期的に送信する必要のある同期デ
ータ(同期パケット)と、任意タイミングのデータ送受
信が許容される非同期データ(非同期パケット)とが同
時に存在し、なおかつ、同期データのリアルタイム性を
保証している。データ転送では、転送に先立ってバス使
用権を要求し、バスの使用許可を得るためのバスアービ
トレーションが行われる。
【0078】非同期転送においては、送信ノードIDおよ
び受信ノードIDが転送データと一緒にパケットデータと
して送られる。受信ノードは、自分のノードIDを確認し
てパケットを受取るとアクノリッジ信号を送信ノードに
返すことで、一つのトランザクショが完了する。
【0079】同期転送においては、送信ノードが伝送速
度とともに同期チャネルを要求し、チャネルIDが転送デ
ータと一緒にパケットデータとして送られる。受信ノー
ドは、所望するチャネルIDを確認してデータパケットを
受取る。必要になるチャネル数と伝送速度はアプリケー
ションレイヤ816で決定される。
【0080】これらのデータ転送プロトコルは、フィジ
カルレイヤ811、リンクレイヤ812およびトランザクショ
ンレイヤ814の三つのレイヤによって定義される。フィ
ジカルレイヤ811は、バスとの物理的・電気的インタフ
ェイス、ノード接続の自動認識、ノード間のバス使用権
のバスアービトレーションなどを行う。リンクレイヤ81
2は、アドレッシング、データチェック、パケット送受
信、そして同期転送のためのサイクル制御を行う。トラ
ンザクションレイヤ814は、非同期データに関する処理
を行う。以下、各レイヤにおける処理について説明す
る。
【0081】[フィジカルレイヤ]次に、フィジカルレ
イヤ811におけるバスアービトレーションを説明する。
【0082】1394シリアルバスは、データ転送に先立っ
て、必ず、バス使用権のアービトレーションを行う。13
94シリアルバスに接続された各機器は、ネットワーク上
を転送される信号をそれぞれ中継することによって、ネ
ットワーク内のすべての機器に同信号を伝える論理的な
バス型ネットワークを構成するので、パケットの衝突を
防ぐ意味でバスアービトレーションが必要である。これ
によって、ある時間には、一つのノードだけが転送を行
うことができる。
【0083】図16はバス使用権の要求を説明する図、図
17はバス使用の許可を説明する図である。バスアービト
レーションが始まると、一つもしくは複数のノードが親
ノードに向かって、それぞれバスの使用権を要求する。
図16においては、ノードCとノードFがバス使用権を要求
している。この要求を受けた親ノード(図16ではノード
A)は、さらに親ノードに向かって、バスの使用権を要
求することで、ノードFによるバスの使用権の要求を中
継する。この要求は最終的に、アービトレーションを行
うルートノードに届けられる。
【0084】バスの使用権の要求を受けたルートノード
は、どのノードにバスの使用権を与えるかを決める。こ
のアービトレーション作業はルートノードのみが行える
ものであり、アービトレーションに勝ったノードにはバ
スの使用許可が与えるられる。図17は、ノードCにバス
の使用許可が与えられ、ノードFのバスの使用権の要求
は拒否された状態を示している。
【0085】ルートノードは、バスアービトレーション
に負けたノードに対してはDP(dataprefix)パケットを送
り、そのバスの使用権の要求が拒否されたことを知らせ
る。バスアービトレーションに負けたノードのバスの使
用権の要求は、次回のバスアービトレーションまで待た
されることになる。
【0086】以上のようにして、アービトレーションに
勝ってバス使用の許可を得たノードは、以降、データ転
送を開始することができる。ここで、バスアービトレー
ションの一連の流れを図18に示すフローチャートにより
説明する。
【0087】ノードがデータ転送を開始できるために
は、バスがアイドル状態であることが必要である。先に
開始されたデータ転送が終了し、現在、バスがアイドル
状態にあることを確認するためには、各転送モードで個
別に設定されている所定のアイドル時間ギャップ長(例
えば、サブアクションギャップ)の経過を検出し、所定
のギャップ長が検出された場合、各ノードはバスがアイ
ドル状態になったと判断する。各ノードは、ステップS4
01で、非同期データ、同期データなどそれぞれ転送する
データに応じた所定のギャップ長が検出されたか否かを
判断する。所定のギャップ長が検出されない限り、転送
を開始するために必要なバス使用権を要求することはで
きない。
【0088】各ノードは、ステップS401で所定のギャッ
プ長が検出されると、ステップS402で転送すべきデータ
があるか判断し、ある場合はステップS403でバスの使用
権を要求する信号をルートに対して発信する。このバス
の使用権の要求を表す信号は、図16に示すように、ネッ
トワーク内の各機器に中継されながら、最終的にルート
ノードに届けられる。ステップS402で転送するデータが
ないと判断した場合は、ステップS401に戻る。
【0089】ルートノードは、ステップS404でバスの使
用権を要求する信号を一つ以上受信したら、ステップS4
05で使用権を要求したノードの数を調べる。ステップS4
05の判定により、使用権を要求したノードが一つだった
ら、そのノードに、直後のバス使用許可が与えられるこ
とになる。また、使用権を要求したノードが複数だった
ら、ステップS406で直後のバス使用許可を与えるノード
を一つに絞るアービトレーション作業が行われる。この
アービトレーション作業は、毎回同じノードばかりにバ
スの使用許可を与えるようなことはなく、平等にバスの
使用許可を与えるようになっている(フェア・アービト
レーション)。
【0090】ルートノードの処理は、ステップS407で、
ステップS406のアービトレーションに勝った一つのノー
ドと、敗れたその他のノードとに応じて分岐する。アー
ビトレーションに勝った一つのノード、またはバスの使
用権を要求したノードが一つの場合は、ステップS408で
そのノードに対してバスの使用許可を示す許可号が送ら
れる。この許可信号を受信したノードは、直後に転送す
べきデータ(パケット)の転送を開始する(ステップS41
0)。また、アービトレーションに敗れたノードにはステ
ップS409で、バス使用権の要求が拒否されたことを示す
DP(data prefix)パケットが送られる。DPパケットを受
取ったノードの処理は、再度、バスの使用権を要求する
ためにステップS401まで戻る。ステップS410におけるデ
ータの転送が完了したノードの処理もステップS401へ戻
る。
【0091】[トランザクションレイヤ]トランザクシ
ョンの種類には、リードトランザクション、ライトトラ
ンザクションおよびロックトランザクションの三種類が
ある。
【0092】リードトランザクションでは、イニシエー
タ(要求ノード)がターゲット(レスポンスノード)の
メモリの特定アドレスからデータを読取る。ライトトラ
ンザクションでは、イニシエータがターゲットのメモリ
の特定アドレスにデータを書込む。また、ロックトラン
ザクションでは、イニシエータからターゲットに参照デ
ータと更新データを転送する。その参照データは、ター
ゲットのアドレスのデータと組み合わされて、ターゲッ
トの特定のアドレスを指示する指定アドレスになる。そ
して、この指定アドレスのデータが更新データにより更
新される。
【0093】図19はトランザクションレイヤ814におけ
るCSRアーキテクチャに基づくリード、ライト、ロック
の各コマンドの要求・レスポンスプロトコルを示す図
で、図に示す要求、通知、レスポンスおよび確認は、ト
ランザクションレイヤ814でのサービス単位である。
【0094】トランザクション要求(TR_DATA.request)
はレスポンスノードに対するパケットの転送、トランザ
クション通知(TR_DATA.indication)はレスポンスノード
に要求が届いたことの通知、トランザクションレスポン
ス(TR_DATA.response)はアクノリッジの送信、トランザ
クション確認(TR_DATA.confirmation)はアクノリッジの
受信である。
【0095】[リンクレイヤ]図20はリンクレイヤ812
におけるサービスを示す図で、レスポンスノードに対す
るパケットの転送を要求するリンク要求(LK_DATA.reque
st)、レスポンスノードにパケット受信を通知するリン
ク通知(LK_DATA.indication)、レスポンスノードからの
アクノリッジ送信のリンクレスポンス(LK_DATA.respons
e)、要求ノードのアクノリッジ送信のリンク確認(LK_DA
TA.confirmation)のサービス単位に分けられる。一つの
パケット転送プロセスはサブアクションと呼ばれ、非同
期サブアクションと同期サブアクションの二つの種類が
ある。以下では、各サブアクションの動作について説明
する。
【0096】[非同期サブアクション]非同期サブアク
ションは非同期データ転送である。図21は非同期転送に
おける時間的な遷移を示す図である。図21に示す最初の
サブアクションギャップは、バスのアイドル状態を示す
ものである。このアイドル時間が所定値になった時点
で、データ転送を希望するノードがバス使用権を要求
し、バスアービトレーションが実行される。
【0097】バスアービトレーションによりバスの使用
が許可されると、次に、データがパケット転送され、こ
のデータを受信したノードは、ACKギャップという短い
ギャップの後、受信確認用返送コードACKを返してレス
ポンスするか、レスポンスパケットを返送することでデ
ータ転送が完了する。ACKは4ビットの情報と4ビットの
チェックサムからなり、成功、ビジー状態またはペンデ
ィング状態であることを示す情報を含み、すぐにデータ
送信元のノードに返される。
【0098】図22は非同期転送用パケットのフォーマッ
トを示す図である。パケットには、データ部および誤り
訂正用のデータCRCのほかにヘッダ部があり、そのヘッ
ダ部には目的ノードID、ソースノードID、転送データ長
や各種コードなどが書込まれている。
【0099】また、非同期転送は送信ノードから受信ノ
ードへの一対一の通信である。送信元ノードから送り出
されたパケットは、ネットワーク中の各ノードに行き渡
るが、各ノードは自分宛てのパケット以外は無視するの
で、宛先に指定されたノードだけがそのパケットを受取
ることになる。
【0100】[スプリットトランザクション]トランザ
クションレイヤ814におけるサービスは、図19で示した
トランザクション要求およびトランザクションレスポン
スのセットで行われる。ここで、ターゲット(レスポン
スノード)のリンクレイヤ812およびトランザクション
レイヤ814における処理が充分高速であれば、要求とレ
スポンスをリンクレイヤ812のそれぞれ独立したサブア
クションで処理せず、一つのサブアクションで処理する
ことが可能になる。しかし、ターゲットの処理速度が遅
い場合は、要求とレスポンスを個別のトランザクション
で処理する必要がある。そして、この動作をスプリット
トランザクションと呼ぶ。
【0101】図23はスプリットトランザクションの動作
例を示す図で、イニシエータ(要求ノード)のコントロ
ーラからのライト要求に対して、ターゲットはペンディ
ングを返す。これにより、ターゲットは、コントローラ
のライト要求に対する確認情報を返すことができ、デー
タを処理するための時間を稼ぐことができる。そして、
データ処理に充分な時間が経過した後、ターゲットは、
ライトレスポンスをコントローラに通知してライトトラ
ンザクションを終了させる。なお、このときの要求とレ
スポンスのサブアクションの間には、他のノードによる
リンクレイヤ812の操作が可能である。
【0102】図24はスプリットトランザクションを行う
場合の転送状態の時間的遷移例を示す図で、サブアクシ
ョン1は要求サブアクションを、サブアクション2はレス
ポンスサブアクションをそれぞれ表している。
【0103】サブアクション1で、イニシエータはライ
ト要求を表すデータパケットをターゲットに送り、これ
を受けたターゲットはアクノリッジパケットにより上記
の確認情報を示すペンディングを返すことで要求サブア
クションが終了する。
【0104】そして、サブアクションギャップが挿入さ
れた後、サブアクション2で、ターゲットはデータパケ
ットが無データであるライトレスポンスを送り、これを
受けたイニシエータはアクノリッジパケットでコンプリ
ートレスポンスを返すことでレスポンスサブアクション
が終了する。
【0105】なお、サブアクション1の終了からサブア
クション2の開始に至る時間は、最小はサブアクション
ギャップに相当する時間であり、最大はノードに設定さ
れた最大待ち時間まで伸ばすことが可能である。
【0106】[同期サブアクション]1394シリアルバス
の最大の特徴であるともいえるこの同期転送は、とくに
AVデータなどのリアルタイム転送を必要とするデータの
転送に適している。また、非同期転送が一対一の転送で
あるのに対し、この非同期転送はブロードキャスト機能
によって、一つの送信元ノードから他のすべてのノード
へ一様にデータを転送することができる。
【0107】図25は同期転送における時間的な遷移を示
す図で、同期転送はバス上で一定時間毎に実行され、こ
の時間間隔を同期サイクルと呼ぶ。同期サイクル時間は
125μsである。この同期サイクルの開始を示し、各ノー
ドの動作を同期させる役割を担っているのがサイクルス
タートパケット(CSP)2000である。CSP2000を送信するの
は、サイクルマスタと呼ばれるノードであり、一つ前の
サイクル内の転送が終了し、所定のアイドル期間(サブ
アクションギャップ2001)を経た後、本サイクルの開始
を告げるCSP2000を送信する。つまり、このCSP2000が送
信される時間間隔が125μSになる。
【0108】また、図25にチャネルA、チャネルBおよび
チャネルCと示すように、一つの同期サイクル内におい
て複数種のパケットにチャネルIDをそれぞれ与えること
により、それらのパケットを区別して転送することがで
きる。これにより、複数ノード間で、略同時に、リアル
タイム転送が可能であり、また、受信ノードは所望する
チャネルIDのデータのみを受信すればよい。このチャネ
ルIDは、受信ノードのアドレスなどを表すものではな
く、データに対する論理的な番号に過ぎない。従って、
送信されたあるパケットは、一つの送信元ノードから他
のすべてのノードに行き渡る、つまりブロードキャスト
されることになる。
【0109】同期転送によるパケット送信に先立ち、非
同期転送と同様に、バスアービトレーションが行われ
る。しかし、非同期転送のように一対一の通信ではない
ので、同期転送には受信確認用の返送コードのACKは存
在しない。
【0110】また、図25に示したisoギャップ(同期ギ
ャップ)は、同期転送を行う前にバスがアイドル状態で
あることを確認するために必要なアイドル期間を表して
いる。この所定のアイドル期間を検出したノードは、バ
スがアイドル状態にあると判断し、同期転送を行いたい
場合はバス使用権を要求するのでバスアービトレーショ
ンが行われることになる。
【0111】図26は同期転送用のパケットフォーマット
例を示す図である。各チャネルに分けられた各種のパケ
ットには、それぞれデータ部および誤り訂正用のデータ
CRCのほかにヘッダ部があり、そのヘッダ部には図27に
示すような、転送データ長、チャネル番号、その他各種
コードおよび誤り訂正用のヘッダCRCなどが書込まれて
いる。
【0112】[バス・サイクル]実際に、1394シリアル
バスにおいては、同期転送と非同期転送が混在できる。
図28は同期転送と非同期転送が混在するときの転送状態
の時間的遷移を示す図である。
【0113】ここで、前述したように同期転送は非同期
転送より優先して実行される。その理由は、CSPの後、
非同期転送を起動するために必要なアイドル期間のギャ
ップ(サブアクションギャップ)よりも短いギャップ
(アイソクロナスギャップ)で、同期転送を起動できる
からである。従って、非同期転送より同期転送は優先し
て実行されることになる。
【0114】図28に示す一般的なバスサイクルにおい
て、サイクル#mのスタート時にCSPがサイクルマスタか
ら各ノードに転送される。CSPによって、各ノードの動
作が同期され、所定のアイドル期間(同期ギャップ)を
待ってから同期転送を行おうとするノードはバスアービ
トレーションに参加し、パケット転送に入る。図28では
チャネルe、チャネルsおよびチャネルkが順に同期転送
されている。
【0115】このバスアービトレーションからパケット
転送までの動作を、与えられているチャネル分繰り返し
行った後、サイクル#mにおける同期転送がすべて終了
すると、非同期転送を行うことができるようになる。つ
まり、アイドル時間が、非同期転送が可能なサブアクシ
ョンギャップに達することによって、非同期転送を行い
たいノードはバスアービトレーションに参加する。ただ
し、非同期転送が行えるのは、同期転送の終了から、次
のCSPを転送すべき時間(cycle synch)までの間に、非同
期転送を起動するためのサブアクションギャップが検出
された場合に限られる。
【0116】図28に示すサイクル#mでは、三つのチャ
ネル分の同期転送の後、非同期転送によりACKを含む2パ
ケット(パケット1、パケット2)が転送されている。こ
の非同期パケット2の後、サイクルm+1をスタートすべき
時間(cycle synch)に至るので、サイクル#mにおける転
送はこれで終わる。ただし、非同期または同期転送中に
次のCSPを送信すべき時間(cycle synch)に至ったら、転
送を無理に中断せず、その転送が終了した後にアイドル
期間を経て次の同期サイクルのCSPを送信する。すなわ
ち、一つの同期サイクルが125μs以上続いたときは、そ
の延長分、次の同期サイクルは基準の125μsより短縮さ
れる。このように同期サイクルは125μsを基準に超過、
短縮し得るものである。
【0117】しかし、同期転送はリアルタイム転送を維
持するために、必要であれば毎サイクル実行され、非同
期転送は同期サイクル時間が短縮されたことによって次
以降の同期サイクルに延期されることもある。サイクル
マスタは、こういった遅延情報も管理する。
【0118】[FCP]AV/Cプロトコルでは、1394シリア
ルバス上の装置を制御するために機能制御プロトコルFC
P(Functional Control Protocol)が用意されている。FC
Pの制御コマンドの送信とレスポンスには、IEEE1394で
規定されている非同期パケットが用いられる。FCPにお
いては、制御側のノードをコントローラ、被制御側のノ
ードをターゲットと呼び、コントローラからターゲット
に送られるFCPパケットフレームをAV/Cコマンドフレー
ム、逆にターゲットからコントローラに返されるFCPパ
ケットフレームをAV/Cレスポンスフレームと呼ぶ。
【0119】図29は、ノードAがコントローラ、ノードB
がターゲットの場合を示し、それぞれに用意されている
レジスタアドレスのうち0x0000B00番地からの512バイト
がコマンドレジスタ、0x0000D00番地からの512バイトが
レスポンスレジスタであり、それぞれ非同期転送を用い
たパケットフレームにより、指定されたアドレスのレジ
スタにデータが書込まれる。このときのコントローラに
よるAV/Cコマンドフレームの送信と、ターゲットによる
AV/Cレスポンスフレームのレスポンスの関係は、AV/Cト
ランザクションと呼ばれる。一般的なAV/Cトランザクシ
ョンでは、ターゲットはコマンドフレームを受取ってか
ら100ms以内に、コントローラに対してレスポンスフレ
ームをレスポンスする必要がある。
【0120】図30はFCPパケットフレームを含む非同期
転送のパケットフォーマットを示す図で、図22に示した
非同期データパケットのデータ領域に対して、コマンド
フレームやレスポンスフレームを挿入してAV/Cトランザ
クションが実行される。
【0121】図31はAV/Cコマンドフレームの構造を示す
図、図32はAV/Cレスポンスフレームの構造を示す図で、
FCPパケットフレームとしてはヘッダのctype、respons
e、subunit_type、subunit_IDの後に、FCPのデータ部分
がつながった構造になっている。
【0122】ctypeは、コマンドフレームにおけるコマ
ンドタイプを示し、CONTROL、STATUS、INQUIRY、NOTIFY
の各状態を示している。
【0123】responseは、レスポンスフレームにおける
レスポンスコードを示し、ACCEPTED、REJECTED、IN_TRA
NSITION、IMPLEMENTED、CHANGED、INTERIMなどの各状態
を示している。
【0124】また、subunit_typeはデバイスの分類、su
bunit_IDはインスタンス番号を示している。
【0125】FCPのデータ部分はオペコード+オペランド
の構成になっていて、各種のAV/Cコマンドを使ってター
ゲットの制御を行ったり、AV/Cレスポンスのレスポンス
をすることができる。
【0126】コマンドフレームにおけるオペコード(opc
ode)は、図50に示すcommand列に示されたコマンド群の
一つであり、各コマンドはctypeにセットされるコマン
ドタイプに従った内容で実行される。
【0127】ctypeにより「CONTROL」が指定されたコマ
ンドは、制御コマンドを意味し、ターゲットの機器を制
御したり、オペランド(oprand)以降に設定された内容で
ターゲットを設定する。ctypeにより「STATUS」が指定
されたコマンドは、そのコマンドに対応するステータス
を得るためのものである。ctypeにより「INQUIRY」が指
定されたコマンドは、そのコマンドにより設定可能な内
容を問い合わせるためのものである。ctypeに「NOTIF
Y」が指定されたコマンドは、そのコマンドの確認を行
うためのものである。
【0128】各コマンドは、各コマンドに必要な内容が
オペランドに設定され、コマンドフレームに書込まれ
る。
【0129】レスポンスフレームにおけるオペコードに
は、図50のresponse列に示されるレスポンスコードが設
定される。各レスポンスは、各レスポンスに対応するオ
ペランドを有する。レスポンスのオペランドには、コマ
ンドの実行が正常に終了したか、エラー終了したかを示
す情報がセットされるので、このオペランドに従ってエ
ラー処理を行うことができる。
【0130】
【LOGINプロトコル】
[LOGINプロトコルを用いた通信]図33は、1394シリア
ルバスのインタフェイスをLANでよく用いられるOSIモデ
ルの各層と対比させた図である。OSIモデルの物理層1と
データリンク層2が、1394シリアルバスのインタフェイ
スの下位層4であるフィジカルレイヤ811およびリンクレ
イヤ812に該当する。下位層4の上に存在する1394シリア
ルバスのインタフェイスにおけるトランスポートプロト
コル層5とプレゼンテーション層6は、OSIモデルのネッ
トワーク層、トランスポート層、セッション層およびプ
レゼンテーション層を含む上位層3に該当する。また、L
OGINプロトコル7は、1394シリアルバスのインタフェイ
スの下位層4とトランスポートプロトコル層5との間で動
作するものである。
【0131】図33に示す例1では、プリンタなどの周辺
機器用のシリアルバスプロトコル(SBP-2)8に準拠したデ
バイスにLOGINプロトコル7をもたせることによって、相
手のデバイスに対してSBP-2に準拠したプロトコルを使
ってデータのやり取りを行いたいことを通知させること
ができる。
【0132】また図33に示す例2では、1394シリアルバ
スのインタフェイス上で特化されたデバイスプロトコル
9についても、LOGINプロトコル7をもたせることで、デ
バイスが互いに、互いのプロトコルをサポートしている
かを判別させることができる。
【0133】図34はLOGINプロトコル7の基本動作を示す
図で、プリンタデバイスは、ホストデバイスからの印刷
タスク(print task)10を実行する際に、まず、プリンタ
に用意されているプリンタプロトコルA、BおよびCの
内、どれを選択して印刷データをやり取りするかをLOGI
Nプロトコル7による通信に基づき決定し、その後は、決
定したプリンタプロトコルに従って印刷データのやり取
りを行う。すなわち、幾つかのプリンタプロトコルをサ
ポートしているプリンタデバイスは、ホストデバイスと
接続する際に、まずホストデバイスに用意されているト
ランスポートプロトコル5をLOGINプロトコル7によって
判別し、ホストデバイスのトランスポートプロトコル5
に合ったプリンタプロトコルを選択し、選んだプリンタ
プロトコルに従って印刷データやコマンドのやり取りを
行うことで、印刷タスク10の処理を行う。
【0134】図35は1394シリアルバスにおける接続形態
の一例を示す図で、複数のプリンタプロトコルに対応(m
ulti-protocol support)するプリンタ11に対してLOGIN
プロトコル7を実装したデバイス(PC12、スキャナ13、D
VC14等)が接続された状態を示している。プリンタ11
は、LOGINプロトコル7により判別した、接続を要求する
相手デバイスのトランスポートプロトコル5に応じてプ
リンタプロトコルを切替えることにより、各デバイスか
らの印刷タスクを問題なく処理することが可能となる。
【0135】図36はログイン動作の流れを示す図であ
る。ステップ1において: ホストデバイスは、ターゲッ
トデバイス(この場合マルチプロトコルプリンタ)をロ
ックする。ターゲットデバイスは、ホストデバイスのケ
ーパビリティ(トランスポートプロトコルを含む)を調
べ、かかるケーパビリティは、後述するレジスタ503に
格納される。
【0136】ステップ2において: ステップ1で設定され
たプロトコルによりプリントデータの通信が行われる。
【0137】ステップ3において: ホストデバイスは、
ターゲットデバイスとのコネクションを切断する。
【0138】図37はLOGINプロトコル7のためにターゲッ
トデバイスであるプリンタが備える1394シリアルバスの
CSRを示し、ロックレジスタ(lock)501、プロトコルレジ
スタ(protocol)502、ケーパビリティレジスタ(capabili
ty)503を示している。これらのレジスタは1394シリアル
バスのアドレス空間における初期ユニット空間の定めら
れたアドレスに配置される。つまり、図4を用いて説明
したように、機器に与えられたアドレス幅48bitのう
ち、最初の20ビットにおける0xFFFFFがレジスタ空間と
呼ばれ、その最初の512バイトにCSRアーキテクチャのコ
アになるレジスタ(CSRコア)が配置されている。
【0139】ロックレジスタ501は、リソースのロック
状態を示し、値「0」はログイン可能な状態を表し、
「0」以外はロック状態で既にログインされていること
を表す。ケーパビリティレジスタ503は、そのビット毎
に設定可能なプロトコルを示し、値‘1’のビットに対
応するプロトコルは設定可能であることを表し、‘0’
に対応するプロトコルは設定不可能であることを表す。
プロトコルレジスタ502は、現在設定されているプロト
コルを示し、設定されたプロトコルに対応するケーパビ
リティレジスタ503のビットに相当するビットの値が
‘1’になる。図38はホストデバイスにおけるログイン
処理を示すフローチャートである。
【0140】ログインを開始するためには、まずログイ
ンしようとするターゲットデバイス、例えばプリンタの
ロックレジスタ501、プロトコルレジスタ502およびケー
パビリティレジスタ503のデータをリードトランザクシ
ョンにより確認する。ここで、ケーパビリティレジスタ
503のデータから、ホストデバイスが通信に用いるプロ
トコルをターゲットデバイスがサポートしているかどう
か確認する(ステップS601)。
【0141】もしホストデバイスのプロトコルがターゲ
ットデバイスのサポート外ならば、次のステップS602で
ログインを中止する。また、ロックレジスタ501のデー
タが「0」以外であれば、他のデバイスがログイン中で
あるとみなしログインを中止する。ログインレジスタ50
1のデータが「0」であれば現在ログイン可能とみなす
(ステップS602)。
【0142】ログイン可能の場合、リソースロック処理
に移り、プリンタのロックレジスタ501にロックトラン
ザクションを用いて例えば「1」を書き込みログインを
設定する(ステップS603)。この状態でターゲットデバ
イスはロックされたことになり、他のデバイスからの制
御は不可、またレジスタの変更も不可能となる。
【0143】上記のようにターゲットデバイスのリソー
スがロックされた状態で、次にプロトコルの設定を行
う。ターゲットデバイスである本実施例のプリンタは、
複数のプリンタプロトコルをサポートするため、プリン
トデータを受取る前に、ホストデバイスが使用できるプ
ロトコルを知らねばならない。本実施例においては、ホ
ストデバイスのライトトランザクションにより、プリン
タのプロトコルレジスタ502の相当するビットを設定す
ることで、これから使用するプロトコルをプリンタに通
知する(ステップS604)。
【0144】この時点で、ホストデバイスが通信に用い
るプロトコルがターゲットデバイスに通知され、かつタ
ーゲットデバイスがロック状態なので、現在、ターゲッ
トデバイスにログインしているホストデバイスがデー
タ、この場合はプリントデータの送信を行う(ステップ
S605)。
【0145】データの送信が終了したら、ホストデバイ
スはターゲットデバイスのロックレジスタ501およびプ
ロトコルレジスタ503をクリアすることにより、プリン
タからログアウトする(ステップS606)。
【0146】図39はターゲットデバイスであるプリンタ
のログイン処理を示すフローチャートである。プリンタ
は、通常、ホストデバイスからログインされるのを待つ
状態にある。ホストデバイスからのプリントリクエスト
は、プリンタのロックレジスタ501、プロトコルレジス
タ502およびケーパビリティレジスタ503の読取りにより
開始されるので、前記レジスタは、常に他のデバイスか
ら読み出し可能な状態にしておく必要がある。
【0147】今、プリントアウトを実行しようとするホ
ストデバイスによりプリンタがロックされたとする(ス
テップS701)。プリンタは、次にホストデバイスから使
用プロトコルが通知されるのを待つ(ステップS702)。
プリンタが、ロック状態になってから使用プロトコルの
通知を待つのは、ログインの途中で、他のデバイスから
のリクエストにより、プロトコルレジスタ503を書き換
えられないようにするためである。
【0148】使用プロトコルの通知があったら(ステッ
プS703)、プリンタは、通知された使用プロトコルに自
分のプロトコルをスイッチして(ステップS704、S706お
よびS708)、ホストデバイスのプロトコルに合わせて通
信を行う(ステップS705、S707またはS709)。
【0149】通信が終了したら、プリンタはロックレジ
スタ501およびプロトコルレジスタ503がクリアされたの
を確認し(ステップS710)、ログインを待つ状態(ステ
ップS701)に戻る。
【0150】[LOGINプロトコルをもたないデバイスを
考慮した例]図40はLOGINプロトコル7を実装していない
デバイスを考慮した例を説明する図で、図34に示した第
一例と比較すると、LOGINプロトコル7をもたずプロトコ
ルDをもつデバイスについても対応している点が特徴で
ある。すなわち、LOGINプロトコル7をもつデバイスだけ
でなく、既存のプロトコルD(例えばAV/Cプロトコル)
にのみ対応しているデバイスに対しても例えば印刷動作
を保証するために、プリンタ側にLOGINプロトコル7をも
たないデバイスに対応するプリンタプロトコルを追加し
たものである。
【0151】この動作について説明すると、接続の初め
に行われるプリントリクエストによってホストデバイス
がLOGINプロトコル7に対応していないことをプリンタが
認識した場合、プリンタはプロトコルDを使ってホスト
デバイスとの通信を試み、通信が成立した場合はそのプ
ロトコルDに従って印刷タスク10を実行する。
【0152】図41は、図40に示した構成とOSIモデルの
各層とを対比させた図で、例3は、LOGINプロトコル7が
実装されていない現行のAV/Cプロトコルに準拠したAVデ
バイス15をモデルとしている。例4は、LOGINプロトコル
7が実装されていないスキャナ用の非標準プロトコルが
実装されているスキャナ16をモデルとしている。
【0153】すなわち、LOGINプロトコル7を実装してい
ないプロトコルをもつデバイスについても、そのデバイ
スがもつプロトコルにプリンタが対応することができれ
ば、そのプリンタを利用することができるデバイスの種
類を拡げることができる。
【0154】
【ダイレクトプリントプロトコル】以下では、本発明に
かかるプリンタと画像供給デバイスとの印刷手順を説明
するが、プリンタと画像供給デバイスとを直結し、画像
供給デバイスから供給される画像データに基づく画像形
成をプリンタに行わせるためのプロトコルを「ダイレク
トプリントプロトコル(DPP)」と呼ぶ。
【0155】DPPの基本は、1394シリアルバスの初期ユ
ニット空間(図4のユニット空間で示される)内にコマ
ンド書込みのためのコマンドレジスタ(command)、コマ
ンドに対するレスポンスを書込むためのレスポンスレジ
スタ(response)、転送データを書込むためのデータレジ
スタ(data)、転送データ個別のデータフォーマットに対
応したフォーマット情報を扱うためのフォーマットレジ
スタ(format)から構成される。
【0156】図42はこのレジスタマップを示す図で、コ
マンドレジスタ、レスポンスレジスタは図29を用いて説
明したものと同じである。以降の説明では、画像供給デ
バイスをコントローラ、プリンタをターゲットとし、画
像供給デバイスからプリンタへ画像データを供給して画
像を印刷する例を説明する。
【0157】コマンドレジスタ42-1は、プリンタ側の0x
FFFFF0000B00の固定アドレスに配置され、512バイトの
メモリ空間を有し、画像供給デバイスがプリンタに対す
る各種コマンドを書込むためのものである。勿論、コマ
ンドレジスタが画像供給デバイス側にもある場合、プリ
ンタからコマンドを書込むことも可能になる。コマンド
レジスタ42-1に書込まれるコマンドをコマンドフレーム
という。
【0158】レスポンスレジスタ42-2は、画像供給デバ
イス側の0xFFFFF0000D00の固定アドレスに配置され、51
2バイトのメモリ空間を有し、画像供給デバイスからプ
リンタに対して書込まれた各種コマンドに対するレスポ
ンスが書込まれるためのものである。勿論、レスポンス
レジスタがプリンタ側にもある場合、画像供給デバイス
からレスポンスを書込むことも可能になる。レスポンス
レジスタ42-2に書込まれるレスポンスをレスポンスフレ
ームという。なお、図29においてはアドレスの上位0xFF
FFが省略して記述されている。
【0159】データレジスタ42-3は、FFFFFF0003000hを
デフォルトアドレスとし、BlockAddress, BufferConfig
コマンド(データレジスタのアドレスを定義するコマン
ド)により有効な任意のアドレスに設定される。データ
レジスタ42-3のメモリ空間は、BlockSize, BufferConfi
gコマンド(データレジスタのメモリ空間を定義するコ
マンド)で前もって決められた範囲で設定される。デー
タレジスタ42-3は、画像供給デバイスとプリンタの間で
データの転送を行うためのレジスタで、印刷を行う場合
には画像供給デバイスからプリンタに印刷データが書込
まれる。印刷データは、予め設定された画像フォーマッ
トのデータ形式に従い、データレジスタ42-3に書込まれ
るデータをデータフレームという。
【0160】フォーマットレジスタ42-4は、後述する各
データフォーマットに対応したレジスタ群をまとめたも
ので、各レジスタは各データフォーマットに必要なフォ
ーマット情報を設定するためのレジスタになっている。
つまり、フォーマットレジスタ42-2は、画像供給デバイ
スからプリンタに対してフォーマット情報を書込むため
のレジスタである。フォーマットレジスタ42-2に書込ま
れるフォーマット情報をフォーマットフレームという。
【0161】図43は画像供給デバイスからプリンタへの
フレームの流れを示す図で、コマンドフレーム、レスポ
ンスフレーム、データフレーム、フォーマットフレーム
の流れを表し、画像供給デバイスから出力されたフレー
ムに従いプリンタは印刷を行う。
【0162】画像供給デバイスからプリンタへ送られる
コマンドは、コマンドフレームとしてプリンタのコマン
ドレジスタ43-4へ書込まれる。このコマンドは、図50に
示す印刷を行わせるためのコマンドである。このコマン
ドに対するレスポンスは、プリンタにより画像供給デバ
イスのレスポンスレジスタ43-2に書込まれる。このレス
ポンスは、コマンドを正しく実行されたかどうかを示す
情報およびコマンドに対する戻り値などを含む。画像供
給デバイスからプリンタへ送られるプリントデータは、
データフレームとしてプリンタのデータレジスタ43-6へ
書込まれる。画像供給デバイスからプリンタへ送られる
フォーマット情報は、フォーマットフレームとしてプリ
ンタのフォーマットレジスタ43-7に書込まれる。
【0163】図44はフォーマットレジスタ43-7の構成例
を示す図である。フォーマットレジスタ43-7は、問い合
わせのための読込専用レジスタINQUIRY 44-1と、設定お
よび情報取得のための読込/書込レジスタCONTROL/STATU
S 44-2とに区分される。INQUIRY 44-1およびCONTROL/ST
ATUS 44-2は、同じ構成のレジスタグループから構成さ
れる。つまり、レジスタグループを構成するレジスタ44
-3から44-7と、レジスタ44-9から44-13とである。
【0164】さらに詳しく説明すると、フォーマットレ
ジスタグループは、共通レジスタグループ(print commo
n register group)を構成するレジスタ44-3および44-4
(44-9および44-10)と、プリンタフォーマットレジス
タグループ(print format register group)を構成する
レジスタ44-5から44-7(44-11から44-13)とから構成さ
れる。
【0165】共通レジスタグループは、すべてのデータ
フォーマットに共通なレジスタを集めたレジスタ群であ
り、すべてのプリンタに共通なレジスタGLOBAL 44-3(44
-9)と、個別のプリンタに固有のレジスタLOCAL 44-4(44
-10)とから構成される。
【0166】プリンタフォーマットレジスタグループ
は、各データフォーマットに独自の情報を集めたレジス
タ群であり、レジスタformat[1] 44-5(44-11)からforma
t[n] 44-7(44-13)までのn個のレジスタ群からなる。レ
ジスタformat[1]からformat[n]は、後述するデータフォ
ーマットに対応し、実装するデータフォーマットごとに
一つのプリンタフォーマットレジスタグループが割り当
てられる。
【0167】なお、各フォーマットレジスタのアドレス
は、データフォーマットを設定するコマンドに対するレ
スポンスとして画像供給デバイスに与えられる。
【0168】図45は共通レジスタグループのステータス
レジスタstatus register 44-8の詳細な構成例を示す図
である。ステータスレジスタ44-8はそれぞれ32ビット
の、各ベンダのプリンタに共通なステータスを保持する
共通ステータスレジスタ(common status register)45-1
と、各ベンダにより定義されるステータスを保持するベ
ンダ固有ステータス(vendor specific status registe
r)45-2とから構成される。また、共通ステータスレジス
タ45-1の第31ビットにあるvフラグ(vendor status avai
lable flag)により、ベンダ固有ステータスレジスタ45-
2への拡張が次のように定義される。
【0169】また、共通ステータスレジスタ45-1に保持
される情報は次のようなものがある。 error.warning: エラー、ワーニングなどのステータス paper state: 記録紙に関するステータス print state: 印刷状況に関するステータス
【0170】図46は共通レジスタグループのレジスタGL
OBAL 44-3(44-9)に保持される情報の詳細例を示す図で
ある。レジスタGLOBAL 44-3(44-9)は、DPP(ダイレクト
プリントプロトコル)を搭載するプリンタすべてに共通
な情報を保持する、つまり、プリンタの種別による差異
がない情報を集めたレジスタである。図46はその一例を
示し、記録媒体の種類を示すmedia-type 46-1、記録紙
の大きさを示すpaper-size 46-2、ページのマージン値
を示すpage-margin 46-3、ページの長さを示すpage-len
gth 46-4、ページのオフセットを示すpage-offset 46-
5、プリンタのユニット情報を示すprint-unit 46-6、プ
リンタのカラータイプを示すcolor-type 46-7、データ
のビット順序を示すbit-order 46-8などを含む。
【0171】図47は共通レジスタグループのレジスタLO
CAL 44-4(44-10)に保持される情報の詳細例を示す図で
ある。レジスタLOCAL 44-4(44-10)は、DPPを搭載するプ
リンタの機種それぞれに独自な情報を保持する、つま
り、プリンタの種別により異なる情報を集めたレジスタ
である。図47はその一例を示し、プリンタ独自の記録紙
の種類を示すpaper 47-1、カラーマッチング方法を示す
CMS 47-2、例えばインクジェットプリンタのインクの種
類を示すink 47-3などを含む。
【0172】図48はレジスタformat[1] 44-5に保持され
る情報の一例を示す図で、画像データフォーマットの一
つであるEXIF(Exchangeable Image File Format)に関す
る情報が保持された例である。この場合、入力のX方向
の割合inX-rate 48-1、入力のY方向の割合inY-rate 48-
2、出力のX方向の割合outX-rate 48-3、出力のY方向の
割合outY-rate 48-4を含む。この場合、与えられたEXIF
フォーマットの画像データを各レジスタの内容に合わせ
てXY方向に変倍することにより印刷が可能になる。
【0173】図49はレジスタformat[2] 44-6に保持され
る情報の一例を示す図で、画像データフォーマットの一
つであるRaw RGBフォーマットに関する情報が保持され
た例である。Raw RGBフォーマットは、各ピクセルをR(r
ed), G(green), B(blue)のデータで構成する画像フォー
マットである。この場合、入力のX方向の割合inX-rate
49-1、入力のY方向の割合inY-rate 49-2、出力のX方向
の割合outX-rate 49-3、出力のY方向の割合outY-rate 4
9-4、XYの固定ピクセルサイズ示すXY-size 49-5、ピク
セル当りのビット数を示すbit-pixel 49-6、X方向のピ
クセル数を示すX-size 49-7、Y方向のピクセル数を示す
Y-size 49-8、色プレーン数を示すplane 49-9、X方向の
解像度を示すX-resolution 49-10、Y方向の解像度を示
すY-resolution 49-11、ピクセルの種類を示すpixel-fo
rmat 49-12などを含む。この場合、与えられたRaw RGB
フォーマットの画像データを各レジスタの内容に合わせ
てXY方向の変倍や解像度変換を行い、さらに画像サイズ
に関する情報などに基づいて処理することにより印刷す
ることが可能になる。
【0174】図50はコマンドおよびコマンドに対するレ
スポンスの一覧を示す図である。コマンドは幾つかの種
類に分類される。分類としては、ステータス関係の「ス
テータス」、プリンタ制御のための「コントロール」、
データ転送の設定のための「ブロック/バッファ」、チ
ャネル設定を行う「チャネル」、転送方法に関する「転
送」、フォーマット設定に関する「フォーマット」、ロ
グインに関する「ログイン」およびデータ転送に関する
「データ」などがある。
【0175】さらに詳しく説明すれば、「ステータス」
としてプリンタのステータスを得るためのコマンドGetS
tatusおよびそのレスポンスGetStatusresponse 50-1な
どがある。
【0176】「コントロール」としては、プリンタのリ
セットを行うコマンドPrintResetおよびそのレスポンス
PrintResetResponse 50-2、印刷の開始を指示するPrint
StartおよびそのレスポンスPrintStartResponse 50-3、
印刷の中止を指示するPrintStopおよびそのレスポンスP
rintStopResponse 50-4、記録紙の供給を指示するInser
tPaperおよびそのレスポンスInsertPaperResponse 50-
5、記録紙の排出を指示するEjectPaperおよびそのレス
ポンスEjectPaperResponse 50-6、画像データのコピー
開始を指示するCopyStartおよびそのレスポンスCopySta
rtResponse 50-7、並びに、画像データのコピー終了を
指示するCopyEndおよびそのレスポンスCopyEndResponse
50-8などがある。
【0177】「ブロック/バッファ」としては、ブロッ
クのサイズを指定するBlockSizeおよびそのレスポンスB
lockSizeResponse 50-9、ブロックのアドレスを指定す
るBlockAddressおよびそのレスポンスBlockAddressResp
onse 50-10、空きブロックの数を取得するFreeBlockお
よびそのレスポンスFreeBlockResponse 50-11、ブロッ
クへのデータ書き込みを指示するWriteBlocksおよびそ
のレスポンスWriteBlocksResponse 50-12、バッファの
情報を指定するBufferConfigおよびそのレスポンスBuff
erConfigResponse 50-13、並びに、バッファからのデー
タ取得の開始を指定するSetBufferおよびそのレスポン
スSetBufferResponse 50-14などがある。
【0178】「チャネル」としては、チャネルをオープ
ンするOpenChannelおよびそのレスポンスOpenChannelRe
sponse 50-15、並びに、チャネルをクローズするCloseC
hannelおよびそのレスポンスCloseChannelResponse 50-
16などがある。
【0179】「転送」としてはデータ転送方法を指定す
るTransferMethodおよびそのレスポンスTransferMethod
Response 50-17などがある。
【0180】「フォーマット」としてはフォーマットを
設定するSetFormatおよびそのレスポンスSetFormatResp
onse 50-18などがある。
【0181】「ログイン」としては、ログインを行うLo
ginおよびそのレスポンスLoginResponse 50-19、ログア
ウトを行うLogoutおよびそのレスポンスLogoutResponse
50-20、並びに、リコネクションを行うReconnectおよ
びそのレスポンスReonnectResponse 50-21などがある。
【0182】以上のコマンドはコマンドフレームに書込
まれるものである。
【0183】さらに、「データ」として、データを書込
むためのWriteBlock 50-22、WriteBuffer 50-23、およ
び、データを読込むためのPullBuffer 50-24などかあ
る。これらのコマンドは、データフレームに対して書込
み、読込みを行うものであり、対応するレスポンスはな
い。
【0184】画像供給デバイスは、図31に示したコマン
ドフレームのオペコード(opcode)に、図50に示す各コマ
ンドに対応する値をセットし、プリンタのコマンドレジ
スタ43-4に書込むことにより、プリンタによってそのコ
マンドが実行される。コマンドに対するレスポンスはコ
マンドと等しい値をもつ。プリンタは、図32に示したレ
スポンスフレームのオペコードにレスポンスをセット
し、画像供給デバイスのレスポンスレジスタ43-2に書込
む。このレスポンスにより、画像供給デバイスは各コマ
ンドの実行結果を受取ることができる。
【0185】図51はDPPがサポートする画像データフォ
ーマット例を示す図である。プリンタはこれらのフォー
マットのうち、少なくとも一つのロー(RAW)画像データ
をサポートしなければならない。またオプションとし
て、他の複数のフォーマットをサポートすることができ
る。
【0186】図52はフォーマット設定処理の流れを示す
図である。まず、画像供給デバイスは、ステップS500で
SetFormat(INQUIRY)コマンドをプリンタへ送り、プリン
タはステップS501でSetFormatレスポンスを返す。返さ
れたレスポンスにより、画像供給デバイスはプリンタの
INQUIRYレジスタのアドレスを知る。
【0187】次に、画像供給デバイスは、ステップS502
でSetFormat(CONTROL/STATUS)コマンドをプリンタへ送
り、プリンタはステップS503でSetFormatレスポンスを
返す。返されたレスポンスにより、画像供給デバイスは
プリンタのCONTROL/STATUSレジスタのアドレスを知る。
【0188】画像供給デバイスは、ステップS504-1から
S504-mでプリンタのINQUIRYレジスタを読み、プリンタ
がサポートするフォーマットおよびフォーマットの設定
項目を知る。次に、画像供給デバイスは、ステップS505
-1からS505-nでプリンタのSTATUS/CONTROLレジスタを読
み、フォーマットの設定値を知るとともに、ステップS5
06-1からS506-nでプリンタのSTATUS/CONTROLレジスタに
データを書込み、フォーマットを設定する。
【0189】DPPにおけるデータ転送には以下の二種類
のパケットを用いる。 ・フロー制御のための制御コマンドパケット ・データ送信のためのパケット
【0190】本実施形態では、フロー制御、データ送信
方法の違いにより、以下に五種類のデータ転送方式を列
挙するが、何れの方式においてもフロー制御のための制
御コマンドはFCPに準拠している。 転送方式1: レスポンスモデル(Response Model) 転送方式2: 簡易レスポンスモデル(Simplifed Response
Model) 転送方式3: プッシュラージバッファモデル(PUSH Large
Buffer Model) 転送方式4: プルバッファモデル(PULL Buffer Model) 転送方式5: 同期モデル(Isochronous Model)
【0191】実際の転送においては上記の方式の一つを
選択し設定するが、その手順は図52に示したフォーマッ
ト設定手順と同様である。なお、図53に示すように、コ
マンドにはTransferMethodを、レスポンスにはTransfer
MethodResponseを用いる。
【0192】図53はデータ転送方式の設定手順の一例を
示す図である。画像供給デバイスは、コマンドタイプIN
QUIRYのTrasferMethodコマンドおよびレスポンスによ
り、現在使用可能なプリンタのデータ転送方式を取得し
(S600-1およびS600-2)、コマンドタイプCONTROL/STAT
USのTransferMethodコマンドおよびレスポンスにより、
現在、プリンタに設定されているデータ転送方式を取得
し、設定する(S600-3およびS600-4)。
【0193】ところで、上記の五種類の何れの方式にお
いても、フロー制御のための制御コマンドは、1394シリ
アルバス上の装置を制御するためのプロトコルであるFC
Pに準拠している。FCPの制御コマンドの転送は、送信-
応答とも、常に非同期のライトトランザクションにより
行われる。
【0194】図54は前記転送方式1および転送方式2に必
要なレジスタの1394シリアルバスのアドレス空間におけ
るレジスタマップを示す図である。本実施形態では、制
御する側のノードを画像供給デバイス(FCPではコント
ローラに対応)に、制御される側のノードをプリンタ
(FCPではターゲットに対応)にする。
【0195】画像供給デバイス、プリンタともに、レジ
スタ空間のオフセット0x0B00から512バイトのコマンド
レジスタ(601-1および601-7)、オフセット0x0D00から
512バイトのレスポンスレジスタ(601-2および601-8)
をもつ。これらレジスタはFCPプロトコルおよびAV/Cコ
マンドに準拠している。
【0196】フロー制御は、これらのコマンドレジスタ
(601-1および601-7)およびレスポンスレジスタ(601-
2および601-8)にコマンドフレーム601-4およびレスポ
ンスフレーム601-5を書き込むことにより行われる。ま
た、印刷データの転送については専用のデータフレーム
を定義する。つまり、レジスタ空間のオフセット0x3000
からブロックサイズ分のデータレジスタ(601-3および6
01-9)を設け、データレジスタ(601-3および601-9)に
データフレーム601-6を書き込むことで印刷データの転
送が行われる。なお、ブロックサイズは例えば512バイ
トにする。
【0197】図55はデータパケットフレームの一例を示
す図で、データヘッダ602-1、データペイロード602-2な
どから構成される。
【0198】図56はデータヘッダ602-1の構成例を示す
図で、上位8ビットはブロックカウント領域603-1であ
り、下位8ビットは将来のための予約領域S603-2であ
る。ブロックカウント領域603-1は、ターゲット(プリ
ンタ)により内部的に用いられるもので、一回のブロッ
ク転送により転送されるブロックの数をカウントするカ
ウンタである。なお、ブロックカウント領域603-1は8ビ
ットなので0から255の値を取り得る。
【0199】図57はブロック転送におけるプリンタ内の
データパケットフレーム処理を示す図である。プリンタ
に受信されたデータパケットは、まず、プリンタのデー
タレジスタ604-1に書き込まれる。プリンタはデータパ
ケットと同じサイズのバッファ(604-2から604-5)を有
し、データレジスタ604-1に書き込まれたデータパケッ
トは、順次、これらのバッファ(604-2から604-5)に移
される。なお、これらデータバッファの数は、ブロック
カウント数の最大値に等しい255個あることが望ましい
が、これ以下でもよい。ここで、各バッファはブロック
カウント値に対応し、ブロックカウントが「0」のデー
タパケットはBlock[0]のバッファに、ブロックカウント
が「1」のデータパケットはBlock[1]のバッファに、順
次、格納される。バッファ(604-2から604-5)に格納さ
れたデータパケットは、データヘッダ602-1が取除かれ
た上で、プリンタのメモリ空間604-6に展開される。
【0200】[転送方式1]Response Modelである転送
方式1は、データ送信のためにデータパケットフレーム
を定義し、データレジスタを設け、制御コマンドにより
フロー制御を行いつつ、印刷データをライトトランザク
ションにより転送する方式である。
【0201】図58は転送方式1におけるFreeBlockコマン
ドおよびレスポンスを示す図である。転送方式1におい
ては、データの転送に先立ち、画像供給デバイスが幾つ
のデータパケットを転送するかを示す情報を取得するた
めにFreeBlockコマンドおよびレスポンスが用いられ
る。
【0202】画像供給デバイスはFreeBlockコマンドを
ライトトランザクションで転送し(S605-1)、プリンタ
はそのトランザクションに対する確認を示すACKパケッ
トを返す(S605-2)。プリンタは現在使用可能なFreeBl
ockCountを通知するためにFreeBlockレスポンスを返し
(S605-3)、画像供給デバイスはそのトランザクション
に対する確認を示すACKパケットを返す(S605-4)。
【0203】図59は転送方式1におけるデータ転送フロ
ーの一例を示す図である。画像供給デバイスは、DPPのL
oginコマンドおよびレスポンスによりプリンタにログイ
ンし(S606-1およびS606-2)、前記のフォーマットレジ
スタグループを用いて、データ転送に使用するフォーマ
ットを設定する(S606-3)。その後、OpenChannelコマ
ンドおよびレスポンスにより論理チャネルを開く(S606
-4およびS606-5)。続いてデータ転送が開始されるが、
印刷データは図55に示したデータパケット形式で転送さ
れる。また、パケットの転送は、図57に符号604-2から6
04-5で示したプリンタ側のデータバッファ数に等しい数
のブロック分の転送を一周期として行われる。
【0204】転送方式1における印刷データの転送は次
のように行われる。画像供給デバイスは、FreeBlockコ
マンドおよびレスポンスによりプリンタのFreeBlock数
を得(S606-6およびS606-7)、そのFreeBlock数と同数
のデータパケットを、順次、WriteBlockにより転送する
(S606-8)。なお、WriteBlockは図54に示したデータレ
ジスタ601-3からデータレジスタ601-9に印刷データ用の
パケットを転送するコマンドである。ただし、WriteBlo
ckコマンドにはレスポンスはなく、データレジスタ601-
9にデータパケットを格納したことを確認するためのACK
パケットがプリンタから返される(S606-9)。
【0205】そして、FreeBlock数に等しい数の、Write
Blockコマンドによるパケット転送およびそれに対応す
るACKパケットの返送の繰返しからなるブロック転送
が、画像供給デバイスから一連の印刷データがすべて出
力されるまで繰返され、各ブロック転送の間には、Free
BlockコマンドおよびレスポンスによるプリンタのFreeB
lock数の取得が行われる。
【0206】印刷データの転送が終了すると、画像供給
デバイスは、CloseChannelコマンドおよびレスポンスに
より論理チャネルを閉じ(S606-10およびS606-11)、DP
PのLogoutコマンドおよびレスポンスによりプリンタか
らログアウトする(S606-12およびS606-13)。
【0207】[転送方式2]Simplified Response Model
である転送方式2は、FreeBlock数を獲得する方法以外は
転送方式1と同じ手順でデータ転送を行う。
【0208】図60は転送方式2におけるデータ転送フロ
ーの一例を示す図である。画像供給デバイスは、DPPのL
oginコマンドおよびレスポンスによりプリンタにログイ
ンし(S607-1およびS607-2)、前記のフォーマットレジ
スタグループを用いて、データ転送に使用するフォーマ
ットを設定する(S607-3)。その後、OpenChannelコマ
ンドおよびレスポンスにより論理チャネルを開く(S607
-4およびS607-5)。続いてデータ転送が開始されるが、
印刷データは図55に示したデータパケット形式で転送さ
れる。また、パケットの転送は、図57に符号604-2から6
04-5で示したプリンタ側のデータバッファ数に等しい数
のブロック分の転送を一周期として行われる。
【0209】転送方式2における印刷データの転送は次
のように行われる。画像供給デバイスは、WriteBlocks
コマンドおよびレスポンスによりプリンタのFreeBlock
数を得る(S607-6およびS607-7)。ただし、ステップS6
07-7のレスポンスは、これ以降のFreeBlock数の獲得を
プリンタ側からのレスポンスのみにより行うために、IN
TERIM(暫定)タイプである。画像供給デバイスは、得
られたFreeBlock数と同数のデータパケットを、順次、W
riteBlockにより転送し(S607-8)、プリンタからは前
述したACKパケットが返される(S607-9)。そして、Fre
eBlock数に等しい数の、WriteBlockコマンドによるパケ
ット転送およびそれに対応するACKパケットの返送の繰
返しからなるブロック転送が、画像供給デバイスから一
連の印刷データがすべて出力されるまで繰返される。た
だし、二周目以降のブロック転送におけるFreeBlock数
は、ブロック転送周期の終りごとに、プリンタから送ら
れてくるWriteBlocksレスポンスにより、画像供給デバ
イスに通知される(S607-10)。このWriteBlocksレスポ
ンスは、プリンタのレスポンスのみによるFreeBlock数
の取得を継続するためにCONTINUEタイプである。
【0210】印刷データの転送が終了すると、画像供給
デバイスは、CloseChannelコマンドおよびレスポンスに
より論理チャネルを閉じ(S607-11およびS607-12)、DP
PのLogoutコマンドおよびレスポンスによりプリンタか
らログアウトする(S607-13およびS607-14)。
【0211】[FreeBlock数の取得方法]以下では、転
送方式1と転送方式2の違いであるFreeBlock数の取得方
法について詳細に説明する。
【0212】図61は転送方式1のステップS606-6およびS
606-7におけるFreeBlockコマンドおよびレスポンスを詳
細に示す図で、図59では省略したライトトランザクショ
ンのACKパケットを含めて示したもので、イニシエータ
デバイス(画像供給デバイス)、ターゲットデバイス
(プリンタ)とも、リンクレイヤおよびトランザクショ
ンレイヤの処理速度が比較的低速な場合を示している。
【0213】ライトトランザクションにより、画像供給
デバイスがFreeBlockコマンドをコマンドレジスタに書
き込む際(S608-1)、プリンタのリンクレイヤからは前述
したpendingを示すACKパケットが返る(S608-2)。次に、
画像供給デバイスは、無データのFreeBlockコマンドを
送り(S608-3)、プリンタからcompleteを示すACKパケッ
ト(S608-4)を受取って一つのライトトランザクションが
終了する。
【0214】続いて、プリンタは、FreeBlockレスポン
スを返すが、これもステップS608-1のFreeBlockコマン
ドと同様に、FreeBlock数を含むFreeBlockレスポンスと
してレスポンスレジスタに書き込まれる(S608-5)。画像
供給デバイスのリンク層からは、pendingを示すACKパケ
ットが返され(S608-6)、無データのFreeBlockレスポン
ス(S608-7)が送られ、completeを示すACKパケットを受
取って(S608-8)、一つのライトトランザクションが終了
する。
【0215】一方、転送方式2におけるFreeBlock数の取
得方法は、印刷データのブロック転送サイクルの二周期
目以降では、プリンタからのFreeBlockレスポンスのみ
を用いるので、ステップS608-5からS608-8だけの動作で
FreeBlock数を取得することができる。
【0216】FreeBlock数の取得は、ブロック転送の一
周期ごとに必要である。従って、転送方式1よりも転送
方式2の方がバス上を転送されるパケットの数を減らす
ことができる。
【0217】図62は転送方式1および転送方式2のWriteB
lockを詳細に示す図である。WriteBlockはレスポンスを
必要としないので、WriteBlock(S609-1)、pendingを示
すACKパケット(S609-2)、無データのWriteBlock(S609-
3)およびcompleteを示すACKパケット(S609-4)という手
順になり、コマンドおよびレスポンスを転送する場合に
比べて半分の手順でデータを転送することができ、リン
クレイヤとトランザクションレイヤの処理が比較的低速
の場合でも比較的高速のデータ転送を実行することがで
きる。
【0218】図63は転送方式1および転送方式2のWriteB
lockを詳細に示す図であるが、リンクレイヤとトランザ
クションレイヤの処理が充分高速な場合である。この場
合は、WriteBlock(S610-1)、completeを示すACKパケッ
ト(S610-2)という手順になり、さらに効率的なデータ転
送を実行することができる。
【0219】図64はバスリセットが発生した場合のWrit
eBlockのエラー処理を説明する図で、あるブロック転送
サイクルのn(=0〜255)個目のパケット転送時にバスリセ
ットが発生した場合を示している。ライトトランザクシ
ョンでは、通常のデータパケット転送の失敗はACKパケ
ットにより検知できるが、バスリセット発生時のエラー
は検知できない。そこで本実施形態においては次の手順
でエラー処理を実行する。つまり、FreeBlock数を取得
し(S611-1)、WriteBlockをn回行い(S611-2から〜S611-
6)、ここでバスリセットが発生すると(S611-7)、画像
供給デバイスは、バスリセット発生直前のWriteBlock
[n]をを再度行い(S611-8)、その後は通常の処理を続け
る(S611-9からS611-14)。
【0220】[転送方式3]図65はPUSH Large Buffer M
odelにおける画像供給デバイスおよびプリンタのコマン
ドレジスタ、レスポンスレジスタおよびデータレジスタ
の構成例を示す図である。
【0221】FCPに準拠した画像供給デバイスおよびプ
リンタ間のコマンドおよびレスポンスは、画像供給デバ
イスのコマンドレジスタ65-1からプリンタのコマンドレ
ジスタ65-4にコマンドの要求データとしてのコマンドフ
レーム65-7を書込む動作と、プリンタのレスポンスレジ
スタ65-5から画像供給デバイスのレスポンスレジスタ65
-2にレスポンスデータとしてレスポンスフレーム65-8を
書込む動作により実行される。
【0222】また、データフレーム65-9についてはFCP
とは異なり、ライトトランザクションを用いて画像供給
デバイスのデータレジスタ65-3からプリンタのデータレ
ジスタ65-6へ画像データを書込む一方向動作に、データ
フレーム65-9が使用される。
【0223】図66は画像供給デバイスおよびプリンタ間
におけるPUSHバッファモデルの動作フローの一例を示す
図である。なお、コマンドフレーム、レスポンスフレー
ムにおける、Login、Logout、OpenChannel、CloseChann
el、フォーマット設定についての動作は、前述した転送
方式1と同様であるから詳細な説明は省略する。
【0224】図66において、画像供給デバイスは、Buff
erConfigコマンドのINQUIRYにより、プリンタのバッフ
ァ領域について問い合わせる(S701)。これに対してプリ
ンタは、BufferConfigレスポンスにより、バッファサイ
ズやバッファアドレスを返す(S702)。
【0225】次に、画像供給デバイスは、BufferConfig
コマンドのCONTROLにより、データを書込むプリンタの
バッファサイズおよびバッファアドレスを設定する(S70
3)。これに対してプリンタは、BufferConfigレスポンス
により、設定が完了したことを返す(S704)。
【0226】続いて、画像供給デバイスは、SetBuffer
コマンドのNOTIFYにより、データの転送を開始すること
をプリンタに通知する(S705)。これに対してプリンタ
は、SetBufferレスポンスのINTERIMにより、取り敢えず
データを受信する準備ができたことを返し(S706)、デー
タの転送を開始させる。そして、プリンタは、SetBuffe
rレスポンスのCONTINUEにより、初めに設定されたバッ
ファ領域に対するデータ転送が完了したことを画像供給
デバイスに通知する(S709)。
【0227】ステップS707のWriteBufferは、画像供給
デバイスによるデータフレームの書込み動作を示すもの
で、プリンタに設定したバッファアドレスに対してデー
タを順次書込む動作を行うものである。
【0228】ステップS708のWriteTransactionResponse
は、データフレームを同期転送したときのレスポンスパ
ケットを示す。前述したように、プリンタのデータ取込
み速度が充分に速ければ、一つのライトトランザクショ
ンのアクノリッジを使って処理を完了することができる
が、データの取込みに時間がかかる場合はスプリットト
ランザクションとして独立したレスポンスが発生するこ
とになる。
【0229】ステップS710は複数のデータフレームの転
送処理を示す。つまり、BufferConfigコマンドで設定し
たバッファサイズに対して連続するライトトランザクシ
ョンによりデータを転送する。このように連続したライ
トトランザクションを用いるデータ転送方式を「PUSH型
データ転送方式」あるいは略して「PUSH方式」と呼ぶ。
【0230】図67はデータフレームにおけるデータパケ
ットの構成例を示す図で、プリンタのバッファを直接ア
ドレスしてデータを書込むことができるので、データパ
ケット67-1はヘッダなどを含まない構成にすることがで
きる。
【0231】図68はプリンタのデータレジスタとバッフ
ァの関係例を示す図で、データレジスタ68-1に書込まれ
たデータは、オフセットDestination_Offsetにより決定
されるBufferAddressが指すプリンタのメモリ空間68-2
のアドレスに直接書込まれる。オフセット値は、データ
長Data_Length分ずつインクリメントされるので、連続
したバッファアドレスに対して繰返しデータを書込むこ
とで、バッファサイズBufferSizeで示される領域内にデ
ータが連続して書込むことができる。
【0232】[転送方式4]図69はPULL Buffer Modelに
おける画像供給デバイスおよびプリンタのコマンドレジ
スタ、レスポンスレジスタおよびデータレジスタの構成
例を示す図である。
【0233】FCPに準拠した画像供給デバイスおよびプ
リンタ間のコマンドおよびレスポンスは、画像供給デバ
イスのコマンドレジスタ69-1からプリンタのコマンドレ
ジスタ69-4にコマンドの要求データとしてのコマンドフ
レーム69-7を書込む動作と、プリンタのレスポンスレジ
スタ69-5から画像供給デバイスのレスポンスレジスタ69
-2にレスポンスデータとしてレスポンスフレーム69-8を
書込む動作により実行される。
【0234】また、データフレーム69-9についてはFCP
とは異なり、リードトランザクションを用いて画像供給
デバイスのデータレジスタ69-3からプリンタのデータレ
ジスタ69-6へ画像データを読取る一方向動作に、データ
フレーム69-9が使用される。
【0235】図70は画像供給デバイスおよびプリンタ間
におけるPULLバッファモデルの動作フローの一例を示す
図である。なお、コマンドフレーム、レスポンスフレー
ムにおける、Login、Logout、OpenChannel、CloseChann
el、フォーマット設定についての動作は前述した転送方
式1と同様であり、BufferConfig、SetBufferのコマンド
およびレスポンス(S711からS714)については前述した転
送方式3と同様であるから詳細な説明は省略する。
【0236】図70において、画像供給デバイスは、SetB
ufferコマンドのNOTIFYにより、データの転送を開始で
きることをプリンタに通知する(S715)。これに対してプ
リンタは、SetBufferレスポンスのINTERIMにより、取り
敢えず受信する準備ができたことを返し(S716)、データ
の転送を開始させる。そして、プリンタは、SetBuffer
レスポンスのCONTINUEにより、初めに設定されたバッフ
ァ領域に対するデータ転送が完了したことを画像供給デ
バイスに通知する(S719)。
【0237】プリンタは、PullBufferリクエストによ
り、リードトランザクションを要求する(S717)。これに
対して画像供給デバイスは、PullBufferレスポンスパケ
ットによりデータを転送し(S718)、プリンタに設定され
たバッファアドレスにデータが順次書込まれる。
【0238】ステップS720は複数のデータフレームの転
送処理を示す。つまり、BufferConfigコマンドで設定し
たバッファサイズに対して連続するリードトランザクシ
ョンによりデータを転送する。このように連続したリー
ドトランザクションを用いるデータ転送方式を「PULL型
データ転送方式」あるいは略して「PULL方式」と呼ぶ。
【0239】図71は画像供給デバイスのデータレジスタ
とバッファの関係例を示す図で、データレジスタ71-1に
設定されたオフセットDestination_Offsetにより決定さ
れるBufferAddressが指す画像供給デバイスのメモリ空
間72-2のアドレスのデータをリードトランザクションに
より読出す。オフセット値は、データ長Data_Length分
ずつインクリメントされるので、連続したバッファアド
レスに対して繰返しデータを読出すことで、バッファサ
イズBufferSizeで示される領域からデータを連続して読
出すことができる。
【0240】[転送方式5]Isochronous Modelである転
送方式5は、前述した転送方式1の非同期ライトトランザ
クションを用いた印刷データの転送を、同期ライトトラ
ンザクションを用いた印刷データの転送に置き換えたも
のである。なお、データパケットの構成は、図55および
図56に示した構成と同じである。また、ブロック転送に
おけるプリンタ内のデータパケットフレーム処理は、図
57に示した処理と同じである。
【0241】なお、本転送方式によれば、同期ライトト
ランザクションを用いることにより、時間を定めてデー
タ転送することができる。
【0242】また、ブロック転送することにより、例え
ば一頁分の印刷データをまとめて転送した際にエラーが
発生すると、一頁分の印刷データを再送することになり
時間がかかる。しかし、より細かいブロック単位、例え
ばインクジェットプリンタなどにおける印刷バンド単位
で印刷データを転送すればエラー発生にともなう印刷デ
ータの再送を効率的に行うことができる。
【0243】図72はフロー制御のためのコマンドフレー
ムおよびレスポンスフレームを示す図である。画像供給
デバイスは、非同期ライトトランザクションにより、プ
リンタのコマンドレジスタ75-3にコマンドフレームを書
込む。これに対してプリンタは、非同期ライトトランザ
クションにより、そのコマンドに対するレスポンスフレ
ームを画像供給デバイスのレスポンスレジスタ75-2に書
込む。
【0244】図73は印刷処理のフロー例を示す図であ
る。まず、前述した転送方式1と同様に、画像供給デバ
イスはLoginコマンドをプリンタへ送る(S507)。これに
対してプリンタはLoginレスポンスを返し(S508)、コネ
クションが確立される。
【0245】次に、前述した転送方式1と同様に、画像
供給デバイスは、フォーマット設定を行い(S509)、Open
Channelコマンドをプリンタへ送る(S510)。これに対し
てプリンタは、OpenChannelレスポンスを返し(S511)、
論理チャネルがオープンされる。
【0246】続いて、画像供給デバイスは、FreeBlock
コマンドをプリンタに送る(S512)。これに対してプリン
タは、FreeBlockレスポンスを返す(S513)。このFreeBlo
ckレスポンスにはFreeBlock数とErrorStatusが含まれ
る。FreeBlock数は、プリンタのメモリ空間内にブロッ
ク単位で確保されたブロックバッファの数であり、Erro
rStatusは前回のブロック転送におけるエラー情報を画
像供給デバイスに知らせるためのものである。なお、プ
リンタは、論理チャネルがオープンされた後の最初のFr
eeBlockコマンドに対するErrorStatusには常に正常を返
す。
【0247】続いて、画像供給デバイスは、同期トラン
ザクションにより印刷データをブロック転送する(S51
4)。このとき、画像供給デバイスは、FreeBlock数によ
り示される数分のデータパケットを送出する。
【0248】次に、画像供給デバイスは、FreeBlockコ
マンドをプリンタに送る(S515)。これに対してプリンタ
は、FreeBlockレスポンスを返す(S516)。このレスポン
スのErrorStatusが異常を示す場合、つまり先のブロッ
ク転送でエラーが生じた場合、画像供給デバイスはステ
ップS514で転送したデータを再送する(S517)。この後、
データ転送が正常に終了するまで、ステップS515、S516
およびS517の処理を繰返し実行する。また、ErrorStatu
sが正常を示す場合、画像供給デバイスはFreeBlockレス
ポンスに含まれるFreeBlock数のデータパケットを送出
する(S517)。
【0249】なお、プリンタは、転送されるデータのヘ
ッダ部のブロックカウント(図73)を参照することによ
り、エラーが生じたか否かを認識することができる。ま
た、転送すべきデータのブロック数よりFreeBlock数の
方が大きい場合、画像供給デバイスは、その大きい分に
相当する数のダミーパケットを送出する。
【0250】以降、画像供給デバイスから一連の印刷デ
ータがすべて出力されるまで同期トランザクションによ
るデータの転送が繰返される。
【0251】データの転送が終わると、前述した転送方
式1と同様に、画像供給デバイスは、CloseChannelコマ
ンドおよびレスポンスにより論理チャネルを閉じ(S518
およびS519)、DPPのLogoutコマンドおよびレスポンス
によりプリンタからログアウトする(S520およびS52
1)。
【0252】以上説明したように、本実施形態によれ
ば、1394シリアルバスなどにより画像供給デバイスとプ
リンタを直結し、画像供給デバイスの画像データを直接
プリンタへ送り、その画像データに基づく画像をプリン
タに印刷させることができる。
【0253】また、制御コマンドと印刷データとを分離
することができるので、1394シリアルバスなどにおいて
効率的なデータ転送方式を提供することができる。
【0254】また、1394シリアルバスにおいて転送エラ
ーを回復することが可能なデータ転送方式を提供するこ
とができる。
【0255】また、データ転送用のレジスタ領域に関す
る空きブロック数を通知することにより、そのレジスタ
領域にデータを書込む際の書込みの可否の判定を不要と
し、その判定に要するオーバヘッドを削除したデータ転
送方式を提供することができる。さらに、通知された空
きブロック数分のデータをまとめて送信し受信するの
で、転送効率の良いデータ転送方式を提供することがで
きる。
【0256】また、複数のデータ転送方式の中から転送
先のデバイスに合ったデータ転送方式を選択することが
できるデータ転送方式を提供することができる。
【0257】また、ホストデバイスからターゲットデバ
イスへデータを転送する際に、コマンドとそれに対する
レスポンスのやり取りを、データ転送の開始を指示する
コマンドとそのコマンドに対するレスポンスだけにし
て、つまり、データ転送の開始後はコマンドの送信を行
わないことで、コマンドの送信による転送効率の低下を
回避したデータ転送方式を提供することができる。
【0258】また、ホストデバイスとターゲットデバイ
ス間でデータ転送を行う際に、PUSH方式またはPULL方式
によるデータ転送方式を提供することができる。
【0259】また、ホストデバイスとターゲットデバイ
ス間でデータ転送を行う際に、同期転送と非同期転送を
同じ転送手順で行うことができるデータ転送方式を提供
することができる。
【0260】また、ホストデバイスとターゲットデバイ
ス間でデータ転送を行う際に、同期転送においてあるデ
ータ単位で転送エラーが発生した場合に、そのデータ単
位について再転送を行うことができるデータ転送方式を
提供することができる。
【0261】また、ホストデバイスとターゲットデバイ
ス間でデータ転送を行う際に、バスリセットが発生した
場合でも正しいデータ転送が行うことができるデータ転
送方式を提供することができる。
【0262】さらに、上記のデータ転送方法を利用する
プリンタなどの周辺機器を提供することができる。
【0263】
【変形例】上述した実施形態においては、FCPに基づい
たコマンドおよびコマンドに対するレスポンスを用い、
レスポンスに情報をセットしてホストデバイスに通知す
る方法を用いる例を説明したが、IEEE1394のメモリバス
モデルの特徴である、メモリ上にレジスタをマッピング
する方法も考えられる。
【0264】この場合、メモリの特定のアドレスに割り
当てられたコマンドレジスタにコマンドデータを書き込
むことによりコマンドを実行させる。同様に、メモリの
特定のアドレスに割り当てられたレスポンスレジスタの
データを読むことでレスポンスが示される。
【0265】従って、ターゲットデバイスは、コマンド
レジスタにコマンドが書き込まれたことを認識すると、
そのコマンドを実行し、その後、レスポンスレジスタに
その結果や情報を書き込む。ホストデバイスは、コマン
ドレジスタにコマンドを書き込んだ後、ターゲットデバ
イスのレスポンスレジスタを読むことで、コマンドの実
行結果や情報を得ることができる。
【0266】このように、メモリバスモデルでのレジス
タを用いて本発明を実現することもできる。
【0267】また、上述した実施形態においてはIEEE19
34に規定されるシリアルインタフェイスを用いてネット
ワークを構成する例を説明したが、本発明はこれに限定
されるものではなく、Universal Serial Bus(USB)と呼
ばれるシリアルインタフェイスなど、任意のシリアルイ
ンタフェイスを用いて構成されるネットワークにも適用
することができる。
【0268】
【他の実施形態】なお、本発明は、複数の機器(例えば
ホストコンピュータ,インタフェイス機器,リーダ,プ
リンタなど)から構成されるシステムに適用しても、一
つの機器からなる装置(例えば、複写機,ファクシミリ
装置など)に適用してもよい。
【0269】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPUやM
PU)が記憶媒体に格納されたプログラムコードを読出し
実行することによっても、達成されることは言うまでも
ない。この場合、記憶媒体から読出されたプログラムコ
ード自体が前述した実施形態の機能を実現することにな
り、そのプログラムコードを記憶した記憶媒体は本発明
を構成することになる。プログラムコードを供給するた
めの記憶媒体としては、例えば、フロッピディスク,ハ
ードディスク,光ディスク,光磁気ディスク,CD-ROM,
CD-R,磁気テープ,不揮発性のメモリカード,ROMなど
を用いることができる。
【0270】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレー
ティングシステム)などが実際の処理の一部または全部
を行い、その処理によって前述した実施形態の機能が実
現される場合も含まれることは言うまでもない。
【0271】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張カード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張カードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、その
処理によって前述した実施形態の機能が実現される場合
も含まれることは言うまでもない。
【0272】
【発明の効果】以上説明したように、本発明によれば、
1394シリアルバスなどによりホストデバイスとターゲッ
トデバイスを直結し、ホストデバイスから直接ターゲッ
トデバイスへ送られる画像データの処理をターゲットデ
バイスに行わせるのに適したデータ転送装置、データ転
送システムおよびその方法、画像処理装置、並びに、記
録媒体を提供することができる。
【0273】また、制御コマンドとデータの分離が可能
で転送効率のよいデータ転送装置、データ転送システム
およびその方法、画像処理装置、並びに、記録媒体を提
供することができる。
【0274】また、同期転送において転送エラーが発生
した場合でもエラーを回復するデータ転送装置、データ
転送システムおよびその方法、画像処理装置、並びに、
記録媒体を提供することができる。
【図面の簡単な説明】
【図1】本発明を適用するシステムの一般的な構成例を
示す図、
【図2】1394シリアルバスによるネットワークの構成例
を示す図、
【図3】1394シリアルバスの構成例を示す図、
【図4】1394シリアルバスにおけるアドレス空間の一例
を示す図、
【図5】1394シリアルバス用のケーブルの断面を示す
図、
【図6】1394シリアルバスで採用されている、データ転
送方式のDS-Link方式を説明するための図、
【図7】バスリセット信号の発生から、ノードIDが決定
し、データ転送が行えるようになるまでの一連のシーケ
ンス例を示すフローチャート、
【図8】バスリセット信号の監視からルートノードの決
定までの詳細例を示すフローチャート、
【図9】ノードID設定の詳細例を示すフローチャート、
【図10】1394シリアルバスのネットワーク動作例を示
す図、
【図11】1394シリアルバスのCSRアーキテクチャの機
能を示す図、
【図12】1394シリアルバスに関するレジスタを示す
図、
【図13】1394シリアルバスのノード資源に関するレジ
スタを示す図、
【図14】1394シリアルバスのコンフィギュレーション
ROMの最小形式を示す図、
【図15】1394シリアルバスのコンフィギュレーション
ROMの一般形式を示す図、
【図16】バス使用権の要求を説明する図、
【図17】バス使用の許可を説明する図、
【図18】1394シリアルバスにおけるアービトレーショ
ンの流れを示すフローチャート、
【図19】トランザクションレイヤにおけるCSRアーキ
テクチャに基づくリード、ライト、ロックの各コマンド
の要求・レスポンスプロトコルを示す図、
【図20】リンクレイヤにおけるサービスを示す図、
【図21】非同期転送における時間的な遷移を示す図、
【図22】非同期転送用パケットのフォーマットを示す
図、
【図23】スプリットトランザクションの動作例を示す
図、
【図24】スプリットトランザクションを行う場合の転
送状態の時間的遷移例を示す図、
【図25】同期転送における時間的な遷移を示す図、
【図26】同期転送用のパケットフォーマット例を示す
図、
【図27】1394シリアルバスにおける同期転送のパケッ
トフォーマットのフィールドの詳細を示す図、
【図28】同期転送と非同期転送が混在するときの転送
状態の時間的遷移を示す図、
【図29】1394シリアルバスにおけるAV/Cトランザクシ
ョンの動作を示す図、
【図30】FCPパケットフレームを含む非同期転送のパ
ケットフォーマットを示す図、
【図31】AV/Cコマンドフレームの構造を示す図、
【図32】AV/Cレスポンスフレームの構造を示す図、
【図33】1394シリアルバスのインタフェイスをOSIモ
デルの各層と対比させた図、
【図34】LOGINプロトコルの基本動作を示す図、
【図35】1394シリアルバスにおける接続形態の一例を
示す図、
【図36】ログイン動作の流れを示す図、
【図37】LOGINプロトコルのためにターゲットデバイ
スであるプリンタが備える1394シリアルバスのCSRを示
す図、
【図38】ホストデバイスにおけるログイン処理を示す
フローチャート、
【図39】ターゲットデバイスであるプリンタのログイ
ン処理を示すフローチャート、
【図40】LOGINプロトコルを実装していないデバイス
を考慮した例を説明する図、
【図41】図40に示した構成とOSIモデルの各層とを対
比させた図、
【図42】レジスタマップを示す図、
【図43】画像供給デバイスからプリンタへのフレーム
の流れを示す図、
【図44】フォーマットレジスタの構成例を示す図、
【図45】共通レジスタグループのステータスレジスタ
status registerの詳細な構成例を示す図、
【図46】共通レジスタグループのレジスタGLOBALに保
持される情報の詳細例を示す図、
【図47】共通レジスタグループのレジスタLOCALに保
持される情報の詳細例を示す図、
【図48】レジスタformat[1]に保持される情報の一例
を示す図、
【図49】レジスタformat[2]に保持される情報の一例
を示す図、
【図50】コマンドおよびコマンドに対するレスポンス
の一覧を示す図、
【図51】DPPがサポートする画像データフォーマット
例を示す図、
【図52】フォーマット設定処理の流れを示す図、
【図53】データ転送方式の設定手順の一例を示す図、
【図54】転送方式1および転送方式2に必要なレジスタ
の1394シリアルバスのアドレス空間におけるレジスタマ
ップを示す図、
【図55】データパケットフレームの一例を示す図、
【図56】データヘッダの構成例を示す図、
【図57】ブロック転送におけるプリンタ内のデータパ
ケットフレーム処理を示す図、
【図58】転送方式1におけるFreeBlockコマンドおよび
レスポンスを示す図、
【図59】転送方式1におけるデータ転送フローの一例
を示す図、
【図60】転送方式2におけるデータ転送フローの一例
を示す図、
【図61】転送方式1におけるFreeBlockコマンドおよび
レスポンスを詳細に示す図、
【図62】転送方式1および転送方式2のWriteBlockを詳
細に示す図、
【図63】転送方式1および転送方式2のWriteBlockを詳
細に示す図、
【図64】バスリセットが発生した場合のWriteBlockの
エラー処理を説明する図、
【図65】PUSH Large Buffer Modelにおける画像供給
デバイスおよびプリンタのコマンドレジスタ、レスポン
スレジスタおよびデータレジスタの構成例を示す図、
【図66】画像供給デバイスおよびプリンタ間における
PUSHバッファモデルの動作フローの一例を示す図、
【図67】データフレームにおけるデータパケットの構
成例を示す図、
【図68】プリンタのデータレジスタとバッファの関係
例を示す図、
【図69】PULL Buffer Modelにおける画像供給デバイ
スおよびプリンタのコマンドレジスタ、レスポンスレジ
スタおよびデータレジスタの構成例を示す図、
【図70】画像供給デバイスおよびプリンタ間における
PULLバッファモデルの動作フローの一例を示す図、
【図71】画像供給デバイスのデータレジスタとバッフ
ァの関係例を示す図、
【図72】フロー制御のためのコマンドフレームおよび
レスポンスフレームを示す図、
【図73】印刷処理のフロー例を示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 鈴木 尚久 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 立山 二郎 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内 (72)発明者 中村 敦 東京都大田区下丸子3丁目30番2号 キヤ ノン株式会社内

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 シリアルバスにより直結されるホストデ
    バイスとターゲットデバイスとの間で利用されるデータ
    転送方法であって、 前記ホストデバイスから前記ターゲットデバイスにコマ
    ンドを送り、 前記ターゲットデバイスから前記ホストデバイスへレス
    ポンスを返し、 前記レスポンスに基づき転送エラーの発生がなかったと
    認識される場合は、前記ホストデバイスから前記ターゲ
    ットデバイスへデータを同期転送し、 前記レスポンスに基づき転送エラーの発生が認識される
    場合はデータを再送することを特徴とするデータ転送方
    法。
  2. 【請求項2】 前記データ転送は、データを複数のブロ
    ックに分割して行われることを特徴とする請求項1に記
    載されたデータ転送方法。
  3. 【請求項3】 転送されるデータに含まれるブロックカ
    ウントに基づき前記転送エラーの発生を検出することを
    特徴とする請求項1または請求項2に記載されたデータ転
    送方法。
  4. 【請求項4】 前記データ転送は、前記レスポンスに含
    まれるブロックカウント単位で行われることを特徴とす
    る請求項1または請求項2に記載されたデータ転送方法。
  5. 【請求項5】 転送すべきデータのブロック数が前記ブ
    ロックカウントよりも小さい場合はダミーブロックを転
    送することを特徴とする請求項4に記載されたデータ転
    送方法。
  6. 【請求項6】 前記シリアルバスはIEEE1394規格に適合
    または準拠するバスであることを特徴とする請求項1か
    ら請求項5の何れかに記載されたデータ転送方法。
  7. 【請求項7】 前記シリアルバスはUSB規格に適合また
    は準拠するバスであることを特徴とする請求項1から請
    求項5の何れかに記載されたデータ転送方法。
  8. 【請求項8】 前記ホストデバイスは画像データを出力
    するデバイスであることを特徴とする請求項1から請求
    項7の何れかに記載されたデータ転送方法。
  9. 【請求項9】 前記ターゲットデバイスは、記録媒体上
    に画像データに基づく可視像を形成するデバイスである
    ことを特徴とする請求項1から請求項8の何れかに記載さ
    れたデータ転送方法。
  10. 【請求項10】 請求項1から請求項7の何れかに記載さ
    れたデータ転送方法により、前記ターゲットデバイスへ
    画像データを送信することを特徴とする画像処理装置。
  11. 【請求項11】 請求項1から請求項7の何れかに記載さ
    れたデータ転送方法により、前記ホストデバイスから受
    信した画像データを処理することを特徴とする画像処理
    装置。
  12. 【請求項12】 シリアルバスに接続されるデータ転送
    装置であって、 ターゲットデバイスへコマンドを送るコマンド送信手段
    と、 前記ターゲットデバイスから返されるレスポンスを受信
    する受信手段と、 前記レスポンスに基づき転送エラーの発生がなかったと
    認識される場合は前記ターゲットデバイスへデータを同
    期転送し、前記レスポンスに基づき転送エラーの発生が
    認識される場合はデータを再送する転送手段とを有する
    ことを特徴とするデータ転送装置。
  13. 【請求項13】 前記データ転送は、データを複数のブ
    ロックに分割して行われることを特徴とする請求項12に
    記載されたデータ転送装置。
  14. 【請求項14】 前記ターゲットデバイスは、転送され
    るデータに含まれるブロックカウントに基づき前記転送
    エラーの発生を検出することを特徴とする請求項12また
    は請求項13に記載されたデータ転送装置。
  15. 【請求項15】 前記データ転送は、前記レスポンスに
    含まれるブロックカウント単位で行われることを特徴と
    する請求項12または請求項13に記載されたデータ転送装
    置。
  16. 【請求項16】 前記転送手段は、転送すべきデータの
    ブロック数が前記ブロックカウントよりも小さい場合は
    ダミーブロックを転送することを特徴とする請求項15に
    記載されたデータ転送装置。
  17. 【請求項17】 前記データ転送されるデータは画像デ
    ータであることを特徴とする請求項12から請求項16の何
    れかに記載されたデータ転送装置。
  18. 【請求項18】 シリアルバスに接続されるデータ転送
    装置であって、 ホストデバイスから送られてくるコマンドおよびデータ
    を受信する受信手段と、 前記ホストデバイスへレスポンスを送る送信手段と、 データ転送において転送エラーの発生を検出した場合、
    前記レスポンスに転送エラーを示す情報を含める検出手
    段とを有することを特徴とするデータ転送装置。
  19. 【請求項19】 前記データ転送は、データを複数のブ
    ロックに分割して行われることを特徴とする請求項18に
    記載されたデータ転送装置。
  20. 【請求項20】 前記検出手段は、転送されるデータに
    含まれるブロックカウントに基づき前記転送エラーの発
    生を検出することを特徴とする請求項18または請求項19
    に記載されたデータ転送装置。
  21. 【請求項21】 前記データ転送は、前記レスポンスに
    含まれるブロックカウント単位で行われることを特徴と
    する請求項18または請求項19に記載されたデータ転送装
    置。
  22. 【請求項22】 前記ホストデバイスは、転送すべきデ
    ータのブロック数が前記ブロックカウントよりも小さい
    場合はダミーブロックを転送することを特徴とする請求
    項21に記載されたデータ転送装置。
  23. 【請求項23】 さらに、前記受信手段により受信され
    たデータに基づく可視像を記録媒体上に形成する形成手
    段を有することを特徴とする請求項18から請求項22の何
    れかに記載されたデータ転送装置。
  24. 【請求項24】 シリアルバスを介してデータを転送す
    るデータ転送システムであって、 ホストデバイスからターゲットデバイスへコマンドを送
    らせ、前記ターゲットデバイスから前記ホストデバイス
    へレスポンスを送らせる通信手段と、 前記レスポンスに基づき転送エラーの発生がなかったと
    認識される場合は前記ホストデバイスから前記ターゲッ
    トデバイスへデータを同期転送させ、前記レスポンスに
    基づき転送エラーの発生が認識される場合は前記ホスト
    デバイスにデータを再送させる転送手段とを有すること
    を特徴とするデータ転送システム。
  25. 【請求項25】 前記データ転送は、データを複数のブ
    ロックに分割して行われることを特徴とする請求項24に
    記載されたデータ転送システム。
  26. 【請求項26】 前記ターゲットデバイスは、転送され
    るデータに含まれるブロックカウントに基づき前記転送
    エラーの発生を検出することを特徴とする請求項24また
    は請求項25に記載されたデータ転送システム。
  27. 【請求項27】 前記データ転送は、前記レスポンスに
    含まれるブロックカウント単位で行われることを特徴と
    する請求項24または請求項25に記載されたデータ転送シ
    ステム。
  28. 【請求項28】 前記転送手段は、転送すべきデータの
    ブロック数が前記ブロックカウントよりも小さい場合、
    前記ホストデバイスにダミーブロックを転送させること
    を特徴とする請求項27に記載されたデータ転送システ
    ム。
  29. 【請求項29】 シリアルバスにより直結されるホスト
    デバイスとターゲットデバイスとの間で利用されるデー
    タ転送方法のプログラムコードが格納された記録媒体で
    あって、 ホストデバイスからターゲットデバイスへコマンドを送
    らせ、前記ターゲットデバイスから前記ホストデバイス
    へレスポンスを送らせるための通信ステップのコード
    と、 前記レスポンスに基づき転送エラーの発生がなかったと
    認識される場合は前記ホストデバイスから前記ターゲッ
    トデバイスへデータを同期転送させ、前記レスポンスに
    基づき転送エラーの発生が認識される場合は前記ホスト
    デバイスにデータを再送させるための転送ステップのコ
    ードとを有することを特徴とする記録媒体。
JP9127645A 1997-02-14 1997-05-16 データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体 Withdrawn JPH10322414A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP9127645A JPH10322414A (ja) 1997-05-16 1997-05-16 データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
DE69836771T DE69836771T2 (de) 1997-02-14 1998-02-16 Vorrichtung, System und Verfahren zur Datenübertragung und Vorrichtung zur Bildverarbeitung
EP98301111A EP0859324B1 (en) 1997-02-14 1998-02-16 Data transmission apparatus, system and method, and image processing apparatus
US09/024,185 US6603737B1 (en) 1997-02-14 1998-02-17 Data transmission apparatus, system and method, and image processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9127645A JPH10322414A (ja) 1997-05-16 1997-05-16 データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体

Publications (1)

Publication Number Publication Date
JPH10322414A true JPH10322414A (ja) 1998-12-04

Family

ID=14965223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9127645A Withdrawn JPH10322414A (ja) 1997-02-14 1997-05-16 データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体

Country Status (1)

Country Link
JP (1) JPH10322414A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001184270A (ja) * 1999-11-03 2001-07-06 Hewlett Packard Co <Hp> 誤り訂正アルゴリズムによるユニバーサル・シリアル・バス上の等時性転送方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001184270A (ja) * 1999-11-03 2001-07-06 Hewlett Packard Co <Hp> 誤り訂正アルゴリズムによるユニバーサル・シリアル・バス上の等時性転送方法

Similar Documents

Publication Publication Date Title
EP0859323B1 (en) Data transmission apparatus, system and method, and image processing apparatus
EP0859327B1 (en) Data transmission apparatus, system and method, and image processing apparatus
EP0859324B1 (en) Data transmission apparatus, system and method, and image processing apparatus
EP0859326A2 (en) Data transmission apparatus, system and method, and image processing apparatus
KR100298140B1 (ko) 데이타통신장치및방법
JPH11316657A (ja) データ転送装置及び方法、データ転送システム及び媒体
JP3630971B2 (ja) データ通信方法、装置、システム、及び記憶媒体
JP3566495B2 (ja) データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
JPH1115771A (ja) データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
JP3535694B2 (ja) データ転送装置およびその方法、並びに、画像処理装置
JP3768644B2 (ja) データ転送装置およびその方法
JPH10322373A (ja) データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
JP3517552B2 (ja) データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
JPH10322414A (ja) データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
JPH10322372A (ja) データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
JP4463952B2 (ja) 画像処理システム及びデジタルカメラと印刷装置及びその制御方法と記録媒体
JP3501707B2 (ja) 情報処理装置及び情報処理システム及びそれらの方法
JP3897773B2 (ja) 通信方法及び通信装置
JP3943722B2 (ja) データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
JP3862349B2 (ja) 情報処理システム、画像処理システムおよびそれらの方法、並びに、情報処理装置およびコンピュータ可読メモリ
JP4463953B2 (ja) 画像処理システム及びデジタルカメラとその制御方法
JPH11355587A (ja) 画像処理装置およびその方法
JPH10307691A (ja) データ通信方法と装置及び印刷装置と前記装置を含む印刷システム
JP4058156B2 (ja) データ処理方法、データ処理装置、プリンタ、及び記憶媒体
JPH11282641A (ja) 電子機器とその制御方法及びマルチファンクションシステム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040803