JP2003037596A - 通信装置及び通信方法 - Google Patents

通信装置及び通信方法

Info

Publication number
JP2003037596A
JP2003037596A JP2001224935A JP2001224935A JP2003037596A JP 2003037596 A JP2003037596 A JP 2003037596A JP 2001224935 A JP2001224935 A JP 2001224935A JP 2001224935 A JP2001224935 A JP 2001224935A JP 2003037596 A JP2003037596 A JP 2003037596A
Authority
JP
Japan
Prior art keywords
communication
transfer
bus
external device
communication device
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
JP2001224935A
Other languages
English (en)
Inventor
Takuya Tsujimoto
卓哉 辻本
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 JP2001224935A priority Critical patent/JP2003037596A/ja
Publication of JP2003037596A publication Critical patent/JP2003037596A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】 バス上に流すパケットのデータペイロードサ
イズを、適切なサイズに設定することの可能な通信装置
及び通信方法を提供すること。 【解決手段】 アイソクロナス転送と、アシンクロナス
転送でデータの送受信を行うことが可能なIEEE13
94デバイス(101)であって、通信インタフェース
を介して接続された外部装置とデータの送受信を行うI
EEE1394インタフェース制御部(103)と、ア
シンクロナス転送でデータの送受信を行う場合に、通信
先の外部装置の応答性を判断するデータペイロードサイ
ズ設定処理部(108)を有し、データペイロードサイ
ズ設定処理部は前記通信先の外部装置の応答性に応じ
て、アシンクロナス転送における送受信の際のデータペ
イロードサイズを変更することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、シリアルバスイン
タフェースを有する通信装置及び通信方法に関し、特に
IEEE1394の規格に準拠したインタフェースを持
つ通信装置および通信方法のうち、パケットのデータペ
イロードサイズの設定に関するものである。
【0002】
【従来の技術】近年、シリアルバスインタフェースは、
信号線が少ないこと、ケーブルが細いこと、コネクタが
小さいこと、IDやターミネータ等の設定が不要なこ
と、活線挿抜が可能なこと、等時性のあるデータ転送
(アイソクロナス転送)が可能なことなどの優れた特徴
をもつことから脚光を浴びてきている。
【0003】特にIEEE1394で規定されるシリア
ルバスインタフェースは、動画像等の大容量データの高
速伝送が可能であること、バスアーキテクチャによって
メモリアクセスが可能であること、ホットプラグインや
プラグアンドプレイが可能であること、およびピア・ツ
ー・ピア接続が可能であることなどの特徴を持つため、
パーソナルコンピュータのみならず家庭内のAV機器
(ディジタルビデオカメラ等)やそれ以外の機器への適
用が盛んに進められている。また、更なる高速化や長距
離化に対応した新たな規格(例えば、P1394.b)
の策定も現在精力的に進められている。
【0004】IEEE1394では周期的に連続した時
間帯の中で、ある一定の帯域を保証し、エラー発生の際
にも再送手続きを行わないデータ転送モードであるアイ
ソクロナス転送と、帯域は保証しないがエラーが発生し
た場合には再送手続きにより確実なデータの転送を保証
する転送モードであるアシンクロナス転送という2種類
の転送モードを備えている。ディジタルビデオカメラな
どに見られる大容量かつリアルタイム性が求められる動
画像データの転送にはアイソクロナス転送が、ストレー
ジデバイスやプリンタやスキャナなどデータ落ちが許さ
れないデバイスへの転送にはアシンクロナス転送が主に
使用される。転送モードの優先順位としてはアイソクロ
ナス転送の方が高いため、アシンクロナス転送はアイソ
クロナス転送で使わない余った帯域を使用することにな
る。またアシンクロナス転送では受信側ノードがパケッ
トを受信できない状態(ビジー状態)のとき、パケット
の再送を可能とするリトライプロトコルを備えている。
【0005】
【発明が解決しようとする課題】しかしながら上述した
従来の技術においては、IEEE1394規格のバスに
多数のデバイスが接続され、各々がデータ転送を行う
と、トラフィックが増えることにより意図した転送レー
トを維持することが難しくなる。特に、HDDやMO等
大容量のストレージデバイスへの頻繁な読み書きや、プ
リンタやスキャナとのデータ転送では比較的大きなデー
タのやりとりをすることになる。また、バス上にCCD
カメラやDVC等の機器が接続されているとアイソクロ
ナス転送に使用される帯域が確保されるため、1サイク
ルあたりのアシンクロナス転送用の帯域が制限される。
そのため、より一層所望する時間内に大容量データの転
送を終えることは困難になる。例えば1サイクル内に2
048bytesのデータペイロードを持つアシンクロ
ナス転送が1回しか行えないように制限されてしまえば
(逆にIEEE1394の規格では、最低でも上述のデ
ータペイロードサイズを持つアシンクロナス転送が行え
るだけの帯域を保証している)、その同じ帯域を複数の
デバイスで交互に使用することになる。仮にアシンクロ
ナス転送によって大容量のデータを送信したいデバイス
がバスに4台に接続されていれば、4サイクルに一度し
か送信の機会が巡ってこないことになるし、レスポンス
パケットを送信する帯域も考えれば更に回ってくるサイ
クルは長くなる。
【0006】更には、リクエストパケットを受信する側
のノードでのデータ処理単位、処理能力、システムの構
成によっては、受信可能な(もしくはリードトランザク
ションの場合は送信可能な)最大のデータペイロードサ
イズによるデータ転送を行うと送信側ノードが送るタイ
ミングではパケットを受け取れない状況、つまり受信側
ノードがビジー状態になることもある。その場合には頻
繁なリトライが発生し、転送効率が上がらなくなる。
【0007】本発明は上記問題点に鑑みて為されたもの
であり、バス上に流すパケットのデータペイロードサイ
ズを、適切なサイズに設定することの可能な通信装置及
び通信方法を提供することを目的とする。
【0008】
【課題を解決するための手段】上記目的を達成するため
に、本発明の通信装置は、アイソクロナス転送と、アシ
ンクロナス転送でデータの送受信を行うことが可能であ
って、通信インタフェースを介して接続された外部装置
とデータの送受信を行う通信手段と、アシンクロナス転
送でデータの送受信を行う場合に、通信先の外部装置の
応答性を判断する判断手段と、前記判断手段による判断
に応じて、アシンクロナス転送における送受信の際のデ
ータペイロードサイズを変更可能な変更手段とを有す
る。
【0009】また、本発明の通信方法は、アイソクロナ
ス転送と、アシンクロナス転送でデータの送受信を行う
ことが可能であって、通信インタフェースを介して接続
された外部装置とデータの送受信を行う通信手段におけ
る通信方法であって、アシンクロナス転送でデータの送
受信を行う場合に、通信先の外部装置の応答性を判断す
る判断工程と、前記判断工程による判断に応じて、アシ
ンクロナス転送における送受信の際のデータペイロード
サイズを変更可能な変更工程とを有する。
【0010】上記構成によれば、バス上に流すパケット
のデータペイロードサイズを、通信を行う相手デバイス
に最適なデータペイロードサイズに設定することができ
る。これにより、大容量データ転送時の転送時間を短縮
することができ、送信回数やリトライ回数が低減される
ため、バスを有効活用することが可能となり、システム
全体のパフォーマンスを向上させることが可能となる。
【0011】また、本発明の好適な一様態によれば、前
記通信装置は、前記通信インタフェースを介して前記通
信装置が接続されたバス上における、アシンクロナス転
送で用いる転送用帯域に関する情報を取得する取得手段
と、前記取得手段により取得した転送用帯域に関する情
報に基づいて、前記データペイロードサイズを設定する
設定手段とを更に有し、前記取得手段及び前記設定手段
による動作は、前記判断手段及び変更手段による動作に
先だって行われる。
【0012】また、前記通信方法は、前記通信インタフ
ェースを介して前記通信装置が接続されたバス上におけ
る、アシンクロナス転送で使用可能な転送用帯域に関す
る情報を取得する取得工程と、前記取得工程において取
得した転送用帯域に関する情報に基づいて、前記データ
ペイロードサイズを設定する設定工程とを更に有し、前
記取得工程及び前記設定工程は、前記判断工程及び変更
工程に先だって行われる。
【0013】本発明の好適な一様態によれば、前記取得
手段及び前記取得工程では、前記バスに接続された各外
部装置が持つコンフィギュレーションROM及びコント
ロールアンドステータスレジスタを読み出すことによっ
て、前記転送用帯域に関する情報を取得する。
【0014】また、本発明の好適な一様態によれば、前
記転送用帯域に関する情報は、アイソクロナス転送を行
う外部装置数及び当該外部装置が取得したアイソクロナ
ス転送用の帯域幅及びチャンネル数を含む。
【0015】更に、前記転送用帯域に関する情報は、前
記バスに接続された外部装置数を含む。
【0016】また、本発明の好適な一様態によれば、前
記取得手段及び前記取得工程では、前記バスのリセット
後に前記バスに接続された各外部装置から送信されるセ
ルフIDパケットを取得することにより前記転送用帯域
に関する情報を取得する。
【0017】また、本発明の好適な一様態によれば、前
記設定手段及び前記設定工程では、前記転送用帯域に関
する情報が所定条件を満たしている場合に、転送可能な
最大データペイロードサイズに設定する。
【0018】好ましくは、前記所定条件は、アシンクロ
ナス転送用に残された帯域が所定帯域よりも大きい場合
である。
【0019】更に好ましくは、前記所定条件は、前記通
信装置以外に、アシンクロナス転送を行う前記バスに接
続された外部装置数が所定数よりも少ない場合である。
【0020】また、本発明の好適な一様態によれば、前
記判断手段及び前記判断工程では、前記通信装置が行う
トランザクションを完結するのに要する最低限の時間
と、前記通信先の外部装置が応答に要する時間とを比較
する。
【0021】なお、本発明の好適な一様態によれば、前
記通信先の外部装置が応答に要する時間は、前記通信装
置が前記通信先の外部装置にリクエストパケットを送信
してからレスポンスパケットを受信するまでにかかる時
間である。
【0022】また、本発明の好適な一様態によれば、前
記通信装置は前記通信先の外部装置が応答に要する時間
計測を行うタイマを更に有し、前記通信方法は、前記通
信先の外部装置が応答に要する時間計測を行う計時工程
を更に有する。
【0023】また、本発明の好適な一様態によれば、前
記変更手段及び前記変更工程では、前記通信先の外部装
置の応答性が低い場合に、データペイロードサイズ値を
小さくする。
【0024】好ましくは、前記通信手段は、IEEE1
394規格に準拠している。
【0025】
【発明の実施の形態】以下、添付図面を参照して本発明
の好適な実施の形態を詳細に説明する。
【0026】図1は、本実施の形態におけるシステムの
概要を示すブロック図である。
【0027】101は、IEEE1394インタフェー
スに対応するリクエストパケットを送信する側のノード
であるIEEE1394デバイスである。ここでは仮に
プリンタ機能を持ったデバイスを想定する。図1に示さ
れるように、以下に説明される103から108の各I
EEE1394レイヤ、タイマ109、プリンタ機能1
10および不図示のCPU、受信バッファなどによって
構成される。
【0028】102は、IEEE1394インタフェー
スのバスである。このバス上に存在するノードはケーブ
ルによって接続される。ケーブル内には2組のツイスト
ペアケーブル(一方がA、他方がBと称される信号線)
と1組みの電源ペアケーブルのあわせて6本のケーブル
がクロスしている。また電源ラインの無い4本のケーブ
ルで構成されているものも存在する。
【0029】103は、PHYレイヤもしくはフィジカ
ルレイヤ(物理層)と呼ばれるIEEE1394インタ
フェース上の信号を直接ドライブする機能を実現するL
SIと、LINKレイヤ(リンク層)の機能を実現する
LSIによって構成されるIEEE1394インタフェ
ース制御部である。リクエストパケットの送信やリクエ
ストパケットを受信する側のノードから送られてくるプ
リントデータを含むレスポンスパケットの受信処理やバ
スの構成などを行う。
【0030】104は、トランザクションレイヤと呼ば
れるIEEE1394インタフェースに対して実際のオ
ペレーションを管理・実行するドライバであり、一部リ
ンクレイヤの機能も含む。このレイヤで、IEEE13
94インタフェース上で行われるアシンクロナス転送の
リード/ライト/ロックの各トランザクションを管理・
制御する。受信側ノードがビジーの場合の再送(リトラ
イ)要求もこのレイヤで管理する。また後述するリクエ
ストパケットの送信からレスポンスパケット受信迄の時
間を計測するためのタイマ109の起動、停止の操作も
行う。
【0031】105は、シリアルバスマネージメント
(SBM)を行うレイヤで、IEEE1394インタフ
ェースの管理用ドライバによって構成されるノードコン
トローラである。機能としてはCSR(コントロールア
ンドステータスレジスタ)およびコンフィグレーション
ROMの実装および他ノード情報の管理を行う。特に、
アイソクロナス転送を行うノードの有無の確認、および
存在する場合は確保されているアイソクロナス転送用の
帯域幅やチャネル数をバス上のアイソクロナス・リソー
ス・マネージャノードのレジスタから取得する動作を行
う。また、セルフIDパケットの受信に伴う他ノード情
報の管理も取り扱う。SBMは、ノードコントローラ1
05以外の機能としてアイソクロナスリソースマネージ
ャおよびバスマネージャの機能を持つことが可能である
が、オプションであるためIEEE1394デバイス1
01ではその機能は有さなくてもよい。
【0032】コンフィグレーションROMは、ISO/
IEC13213で定義されているノードの持つ各種情
報を格納したもので、ミニマルフォーマット(Minimal F
ormat)とゼネラルフォーマット(General Format)の2つ
の種類のフォーマットが存在する。ミニマルフォーマッ
トはメーカーを識別するnode_vendor_id情報のみを持
つ。ゼネラルフォーマットはそれ以外にBus_info_Block
とRoot_Directoryと呼ばれる追加情報を持つ。IEEE
1394デバイス101はゼネラルフォーマットを持
つ。
【0033】106は、IEEE1394のアプリケー
ションレイヤである。以下に説明するプリンタ機能を実
現するためのアプリケーション107および本実施の形
態の特徴となるデータペイロードサイズ値を設定するデ
ータペイロードサイズ設定処理部108(後述)によっ
て構成される。
【0034】107は、IEEE1394インタフェー
スを利用した各種デバイスの機能、例えばプリンタやス
キャナやディジタルビデオカメラ等の機能を実現するソ
フトウェアと、トランザクションレイヤおよびノードコ
ントローラとのインタフェースを備えたアプリケーショ
ンソフトウェアである。本実施の形態ではプリンタデバ
イスを想定しているため、プリントデータのコマンド解
析や画像処理(補正処理や圧縮されたデータの解凍処
理)、プリンタの記録部の制御も行う。また、SBP−
2やDDPなどIEEE1394に適した上位プロトコ
ルの機能も有する。SBP−2プロトコルによるプリン
トデータ転送ではプリンタ側が主導となり、リードリク
エストパケットを送信する。本実施の形態では受信側ノ
ードとしてPCを想定し、プリンタデバイスのリクエス
トに対してプリントデータをデータペイロードとするレ
スポンスパケットを送信することになる。
【0035】108は、リクエストパケット送信時のデ
ータペイロードサイズを各種情報から判断して設定する
データペイロードサイズ設定処理部である。データペイ
ロードサイズ設定処理部108は、以下の機能を有す
る。すなわち、
【0036】1.ノードコントローラ105から、バス
を構成するノード数やアイソクロナス転送用に確保され
た帯域幅やチャネル数などの情報を取得する。
【0037】2.リクエストパケットの送信からレスポ
ンスパケットの受信までにかかる時間の測定を行うよう
にIEEE1394ドライバ104に指示を与え、得ら
れた時間を把握する。また、リクエストパケット送信の
際に受信側ノードのビジー状態によって行われるリトラ
イの発生頻度についても把握する。
【0038】3.リクエストパケットを送信してからレ
スポンスパケットを受信するまでにかかる時間として許
容できる値を基準値として持つ。また、上記1および2
で得られた情報と、この基準値とから最適なデータペイ
ロードサイズを求め、設定する。なお、判断や設定の方
法については図3及び図4に示すフローチャートを用い
て後述する。
【0039】109は、IEEE1394ドライバ10
4によって管理されるタイマである。リクエストパケッ
ト送信の際に起動され、対応するレスポンスパケット受
信時に停止することでその間の時間を測定する。本実施
の形態では時間測定用に専用のハードウェアタイマを想
定するが、IEEE1394I/F制御部103のリン
クレイヤで備えるスプリットタイマ(スプリットトラン
ザクションのタイムアウトを検知するためのタイマ)
や、不図示のCPUが備えるタイマを使用することでも
実現可能である。
【0040】110は、アプリケーション107のソフ
トウェアもしくは不図示のハードウェアによって制御さ
れるプリンタの機能である。受信したプリントデータの
印字を行う。またプリンタ側のステータスをアプリケー
ション107に返す機能も有する。
【0041】次にデータペイロードサイズの設定処理の
概略について説明する。
【0042】まず、バスへの新規デバイスの接続や取り
外し、および電源投入によって生じるバスリセット時
に、バスを構成するノードの情報を取得する。具体的に
はノードコントローラ105で各ノードのセルフIDパ
ケットを格納することでノード数を把握し、更に、アイ
ソクロナス転送を行うノードが存在する場合にはアイソ
クロナス転送用に確保された帯域幅とチャネル数の確認
動作を行う。取得された情報はデータペイロードサイズ
設定処理部108で使用する。
【0043】その後、プリントデータ等の大容量データ
の受信を行う際に、上記バスリセット時に把握した情報
をもとにして、データ転送時のペイロードサイズの初期
値を設定する。
【0044】データ転送を開始後、リクエストパケット
の送信からレスポンスパケットの受信までの時間を1ト
ランザクションごとに確認し、許容できる時間内でトラ
ンザクションが完結しない場合や、頻繁なリトライが発
生した場合はデータペイロードサイズの値を初期に設定
した値よりも小さく設定し直す。
【0045】なお、本実施の形態では、リクエストパケ
ット送信側ノード(IEEE1394デバイス101)
をプリンタデバイスとしているが、プリンタへライトト
ランザクションでデータを送信するホストとなるPCや
ディジタルスチルカメラ、およびスキャナデバイス等を
想定してもよい。
【0046】図2は、本実施の形態におけるバスリセッ
ト時に行われる情報取得処理のフローチャートである。
通常IEEE1394では、バスリセット時にバスに接
続された各デバイスの情報を取得するためのリードトラ
ンザクションを複数回行うため、それに合わせて必要な
情報を取得する。
【0047】ステップS201では、セルフIDパケッ
ト数のカウントを行う。バスリセット時には、バスに接
続されるすべてのデバイスからセルフIDパケットがブ
ロードキャストで送信される。本実施の形態のIEEE
1394デバイス101ではこれらのセルフIDパケッ
トの受信、格納を行い、バス上にいくつのIEEE13
94デバイスが接続されているかを把握する。また、セ
ルフIDパケット内のCビット(CONTENDER bit)がセ
ットされているノードを把握する。これはアイソクロナ
ス・リソース・マネージャとなったノードを把握するた
めで、Cビットがセットされているノードのうち、ID
がもっとも大きいものがアイソクロナス・リソース・マ
ネージャ対応ノードとなる。
【0048】ステップS202では、バスに接続されて
いる各デバイスのコンフィグレーションROMの情報を
取得するためのリードトランザクションを発行する。具
体的には、コンフィグレーションROM内のBus_Info_B
lock内のiscビットを確認することでアイソクロナス
転送を行えるデバイスであるかどうかを判断する。ま
た、Node_Unique_IDリーフ内の情報を取得することで、
デバイスの種類やその機能を把握する。
【0049】ステップS203では、ステップS202
で取得したコンフィグレーションROM情報を確認し、
その中でアイソクロナス転送をサポートしているノード
があるかどうかを判断する。情報取得の結果ノードが存
在する場合はステップS204へ、存在しない場合は処
理を終了する。
【0050】ステップS204では、アイソクロナス転
送をサポートしているノードが、アイソクロナス転送用
の帯域を確保しているかどうかを確認するため、アイソ
クロナス・リソース・マネージャが実装するBANDWIDHT_
AVAILABLEレジスタの値をリードもしくはロックトラン
ザクションによって確認する。また併せてCHANNELS_AVA
ILABLEレジスタの値も確認し、帯域幅とチャネル数を把
握する。この操作はアシンクロナス転送用に残されてい
る帯域を確認するために行う。IEEE1394のプロ
トコルでは、1サイクル(125μsec)内で最大の
データペイロードサイズ分のアシンクロナス転送が行え
る帯域を一つは保証しているが、それ以外にアイソクロ
ナス転送で使用される帯域の残りがどれくらいであるか
を確認することで、1サイクル内に転送可能なパケット
の数やサイズを把握することができる。
【0051】取得した情報はまとめてデータペイロード
サイズ設定処理部108に伝えられ、その後のデータ転
送時のパケットサイズの初期値を決定する際に用いられ
る。
【0052】図3は、本実施の形態におけるデータペイ
ロードサイズ設定処理のフローチャートである。
【0053】ステップS301では、大容量データの転
送を行うにあたって、転送時のペイロードサイズの初期
値を設定する。初期値の設定方法については図4のフロ
ーチャートを用いて後で詳細に説明する。
【0054】ステップS302では、タイマ109をI
EEE1394ドライバ104が起動する。本実施の形
態ではリクエストパケットの送信直前にタイマ109を
起動するが、リクエストパケット送信直後に起動しても
よい。
【0055】ステップS303では、リクエストパケッ
トを送信する。ステップS302で説明したようにタイ
マ起動との順番を逆にしてもよい。本実施の形態ではS
BP−2プロトコルによる受信側ノードとしてPCを想
定したパケット転送のため、リードのトランザクション
となる。期待するレスポンスパケットのデータペイロー
ド部にプリントデータが含まれる。
【0056】ステップS304では、送信したリクエス
トパケットに対するレスポンスパケットを受信したかど
うかを判断する。実際には分割トランザクションのた
め、レスポンスパケットの受信前にペンディングのAC
Kを受け取っているが、ペンディングを受けたときの処
理については割愛する。対応するレスポンスパケットを
受信した場合はステップS305へ、レスポンスパケッ
トを受信できない場合(例えばACK_busyを受けたり、ス
プリットタイムアウトが発生した場合)はステップS3
10へ進む。
【0057】ステップS305では、レスポンスパケッ
トの受信を受けてステップS302で起動していたタイ
マ109を停止する。タイマ109としてリンクのLS
Iに内蔵されるスプリットタイムアウト監視用タイマを
使用する場合は、レスポンスパケットの受信と同時にタ
イマ109の停止が自動で行われるものも存在する。
【0058】ステップS306では、停止したタイマ1
09のカウント値を把握する。起動から停止までの時間
を測定するためであるが、停止時に自動的にカウント値
がリセットされてしまうタイマ109を使用する場合は
ファームウェアによってタイマ109を停止して値を確
認する。
【0059】ステップS307では、ステップS306
で取得したタイマ値がリクエストパケットを送信してか
らレスポンスを受信するまでの時間として許容される基
準値を上回るかどうかを判断する。タイマ値が基準値を
越える場合はステップS308へ、そうでない場合はス
テップS309へ進む。
【0060】ステップS308では、予想される時間よ
りレスポンスパケット受信に時間がかかっていることを
受けて、リクエストパケット送信の際のデータペイロー
ドサイズの値を変更する。具体的には、現在設定されて
いる値よりも小さな値を設定する。
【0061】なお、許容される基準値よりもレスポンス
パケットの受信までにかかる時間を示す値の方が大きい
ということから、次の二つのことが想定できる。一つは
アシンクロナス転送用の帯域が狭いために、受信側ノー
ドでレスポンスパケットを送信する準備ができているに
も関わらずバス権を確保できないため時間がかかってし
まっている可能性、もう一つはバス権は確保しているに
も関わらず受信側ノードの処理が遅いため時間がかかっ
てしまっているという可能性である。何れの場合にして
も、データペイロードサイズを小さくすることで問題を
解決することが可能となる。
【0062】ステップS309では、続けてさらに送信
すべきリクエストパケットが存在するかどうかを判断す
る。リクエストパケットがまだ存在する場合にはステッ
プS302へ戻り処理を繰り返す。既にデータ転送を終
了してリクエストするべきパケットが存在しない場合は
処理を終了する。
【0063】ステップS310では、受信側ノードがビ
ジー状態にあるかどうかを判断する。ビジーの場合はス
テップS312へ、そうでない場合、例えばエラーの発
生やスプリットタイムアウト等が発生している場合はス
テップS311へ進む。
【0064】ステップS311では、データエラー、ス
プリットタイムアウトおよびリトライオーバー等により
トランザクションが完結しなかった場合、アプリケーシ
ョンレイヤレベルでもう一度トランザクションを発行す
る。アプリケーションレベルのリトライ回数に関しては
特にプロトコル上規定はないが有限の回数とする。フロ
ーチャートには示していないが、規定回数を超えてもト
ランザクションが完結しなかった場合はエラーとして処
理を中断する。
【0065】ステップS312では、受信側ノードがビ
ジーであることを受けて、再度リクエストパケットを送
信するリトライ処理を行う。
【0066】ステップS313では、リトライパケット
を送信した回数をカウントする。
【0067】ステップS314では、ステップS313
でカウントした値がある任意の値Nを越えたかどうか判
断する。任意の値Nはリトライ回数の頻度を示す指標と
なる値として予め適宜設定される。
【0068】ステップS315では、度重なるリトライ
の発生を受けてリクエストパケット送信の際のデータペ
イロードサイズの値を変更する。具体的には現在設定さ
れている値よりも小さな値を設定する。
【0069】度重なるリトライの発生は、受信側ノード
の処理能力を超えるペイロードサイズでデータを要求し
ていることにある。その場合、データペイロードサイズ
を小さくすることで問題を解決することが可能となる。
【0070】ステップS316では、送信したリトライ
パケットに対するレスポンスパケットを受信したかどう
かを判断する。実際には分割トランザクションのため、
レスポンスパケットの受信前にペンディングのACKを
受け取っているが、その処理については割愛する。対応
するレスポンスパケットを受信した場合はステップS3
09へ、レスポンスパケットを受信できない場合(例え
ばACK_busyを受けたスプリットタイムアウトが発生した
場合)はステップS317へ進む。
【0071】ステップS317では、度重なるリトライ
処理によってリトライの回数が規定回数を超えリトライ
オーバーが発生したかどうかを判断する。リトライオー
バーが発生した場合はステップS311へ進み、そのト
ランザクション処理を終了し、アプリケーションレベル
のリトライ処理を行う。リトライ回数が規定回数以内の
場合はステップS312へ戻り、再度リトライパケット
の送信を行う。
【0072】図4は、図3のステップS301で行われ
る、本実施の形態におけるデータペイロードサイズ初期
設定処理のフローチャートである。図2で説明したバス
リセット時に取得した情報をもとに大容量のデータ転送
を行う際のデータペイロードサイズの初期値を設定す
る。
【0073】ステップS401では、アイソクロナス転
送用に確保された帯域幅を確認する。この情報は既にス
テップS204で得られているため、内容の確認を行
う。
【0074】ステップS402では、アシンクロナス転
送を行うノード用に残された帯域が、ある任意の値より
小さいかどうかを判断する。ここでは仮に、元々アシン
クロナス用に確保された帯域以外に、最大ペイロードサ
イズによるアシンクロナス転送をもう一回行えるだけの
帯域を示す値である1229よりも小さいかどうかで判
断を行うが、比較の際に用いる値は任意である。残りの
帯域が任意の値(ここでは1229)より少ない場合は
ステップS403へ、そうでない場合はステップS40
5へ進む。
【0075】ステップS403では、バスに接続された
ノードの総数から、大容量データの転送を意図している
IEEE1394デバイス101(送信側ノード)とそ
の受信側ノードおよびアイソクロナス転送を行っている
ノード数を引いた値が任意の値より大きいかどうかを判
断する。ここでは仮に比較する値を2としたが、ステッ
プS402で判断した残された帯域との兼ね合いで値は
変わる。ここでは、例えばバス102に接続されたノー
ド総数が5で、アイソクロナス転送を行うノードが1つ
存在した場合、IEEE1394デバイス101と受信
側ノードを併せた3ノードを引くと値は2となる。この
ようにして求められた値が2より多い場合はステップS
404へ、そうでない場合はステップS405へ進む。
【0076】ステップS404では、ステップS402
でアシンクロナス転送用の十分な帯域がないと判断さ
れ、かつIEEE1394デバイス101と受信側ノー
ド以外に大容量のデータ転送をアシンクロナス転送を用
いて行う可能性が高いノードが存在する場合に、IEE
E1394デバイス101の受信および送信可能な最大
のデータペイロードサイズよりも小さな値をIEEE1
394デバイス101とのデータ転送を行う際のペイロ
ードサイズとして設定し、初期値設定処理を終了する。
例えば、最大ペイロードサイズが2048bytesの場合
は転送時のペイロードサイズとして1024bytesを設
定する。
【0077】ステップS405では、ステップS402
でアシンクロナス転送用の十分な帯域があると判断され
た場合や、ステップS404でアイソクロナス転送に多
くの帯域を確保されてもアシンクロナス転送による大容
量データ転送を行うデバイスが少なく転送の際バスの確
保に不自由しないと判断された場合に、受信側ノードの
受信および送信可能な最大のデータペイロードサイズを
受信側ノードとのデータ転送を行う際のペイロードサイ
ズとして設定し、初期値設定処理を終了する。
【0078】本実施の形態では、機能を実現する手段と
してバスに接続されたノードの情報と受信側ノードのレ
スポンスを考慮したが、受信側ノードのレスポンス対応
を考慮するだけでも、ノードの情報に基づく初期値の設
定を行う場合の効果にはかなわないが、同様の効果を実
現することができる。
【0079】以上説明してきたように本発明の構成によ
れば、大容量データ転送時に転送時間の短縮を実現する
ことが可能となる。また、送信回数の増加やリトライ回
数の低減などによるバスの有効利用でシステム全体のパ
フォーマンスを向上させることができる。
【0080】
【他の実施形態】本発明の目的は、前述した実施形態の
機能を実現するソフトウェアのプログラムコードを記録
した記憶媒体(または記録媒体)を、システムあるいは
装置に供給し、そのシステムあるいは装置のコンピュー
タ(またはCPUやMPU)が記憶媒体に格納されたプ
ログラムコードを読み出し実行することによっても、達
成されることは言うまでもない。この場合、記憶媒体か
ら読み出されたプログラムコード自体が前述した実施形
態の機能を実現することになり、そのプログラムコード
を記憶した記憶媒体は本発明を構成することになる。ま
た、コンピュータが読み出したプログラムコードを実行
することにより、前述した実施形態の機能が実現される
だけでなく、そのプログラムコードの指示に基づき、コ
ンピュータ上で稼働しているオペレーティングシステム
(OS)などが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0081】さらに、記憶媒体から読み出されたプログ
ラムコードが、コンピュータに挿入された機能拡張カー
ドやコンピュータに接続された機能拡張ユニットに備わ
るメモリに書込まれた後、そのプログラムコードの指示
に基づき、その機能拡張カードや機能拡張ユニットに備
わるCPUなどが実際の処理の一部または全部を行い、
その処理によって前述した実施形態の機能が実現される
場合も含まれることは言うまでもない。
【0082】本発明を上記記憶媒体に適用する場合、そ
の記憶媒体には、先に説明した図2乃至図4に示すフロ
ーチャートに対応するプログラムコードが格納されるこ
とになる。
【0083】
【発明の効果】以上説明したように本発明によれば、バ
ス上に流すパケットのデータペイロードサイズを、適切
なデータペイロードサイズに設定することができる。こ
れにより、大容量データ転送時の転送時間を短縮するこ
とができ、送信回数やリトライ回数が低減されるため、
バスを有効活用することが可能となり、システム全体の
パフォーマンスを向上させることが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるシステム構成の概
要を示すブロック図である。
【図2】本発明の実施の形態におけるバスリセット時に
行われる情報取得処理のフローチャートである。
【図3】本発明の実施の形態におけるデータペイロード
サイズ設定処理のフローチャートである。
【図4】本発明の実施の形態におけるデータペイロード
サイズ初期設定処理のフローチャートである。
【符号の説明】
101 IEEE1394デバイス(リクエストパケッ
ト送信側ノード) 102 IEEE1394バス 103 IEEE1394I/F制御部 104 IEEE1394ドライバ 105 ノードコントローラ 106 アプリケーションレイヤ 107 アプリケーション 108 データペイロードサイズ設定処理部 109 タイマ 110 プリンタ機能

Claims (31)

    【特許請求の範囲】
  1. 【請求項1】 アイソクロナス転送と、アシンクロナス
    転送でデータの送受信を行うことが可能な通信装置であ
    って、 通信インタフェースを介して接続された外部装置とデー
    タの送受信を行う通信手段と、 アシンクロナス転送でデータの送受信を行う場合に、通
    信先の外部装置の応答性を判断する判断手段と、 前記判断手段による判断に応じて、アシンクロナス転送
    における送受信の際のデータペイロードサイズを変更可
    能な変更手段とを有することを特徴とする通信装置。
  2. 【請求項2】 前記通信インタフェースを介して前記通
    信装置が接続されたバス上における、アシンクロナス転
    送で用いる転送用帯域に関する情報を取得する取得手段
    と、 前記取得手段により取得した転送用帯域に関する情報に
    基づいて、前記データペイロードサイズを設定する設定
    手段とを更に有し、 前記取得手段及び前記設定手段による動作は、前記判断
    手段及び変更手段による動作に先だって行われることを
    特徴とする請求項1に記載の通信装置。
  3. 【請求項3】 前記取得手段は、前記バスに接続された
    各外部装置が持つコンフィギュレーションROM及びコ
    ントロールアンドステータスレジスタを読み出すことに
    よって、前記転送用帯域に関する情報を取得することを
    特徴とする請求項2に記載の通信装置。
  4. 【請求項4】 前記転送用帯域に関する情報は、アイソ
    クロナス転送を行う外部装置数及び当該外部装置が取得
    したアイソクロナス転送用の帯域幅及びチャンネル数を
    含むことを特徴とすることを特徴とする請求項3に記載
    の通信装置。
  5. 【請求項5】 前記転送用帯域に関する情報は、前記バ
    スに接続された外部装置数を含むことを特徴とする請求
    項3又は4に記載の通信装置。
  6. 【請求項6】 前記取得手段は、前記バスのリセット後
    に前記バスに接続された各外部装置から送信されるセル
    フIDパケットを取得することにより前記転送用帯域に
    関する情報を取得することを特徴とする請求項2乃至5
    のいずれかに記載の通信装置。
  7. 【請求項7】 前記設定手段は、前記転送用帯域に関す
    る情報が所定条件を満たしている場合に、転送可能な最
    大データペイロードサイズに設定することを特徴とする
    請求項2乃至6のいずれかに記載の通信装置。
  8. 【請求項8】 前記所定条件は、アシンクロナス転送用
    に残された帯域が所定帯域よりも大きい場合であること
    を特徴とする請求項7に記載の通信装置。
  9. 【請求項9】 前記所定条件は、前記通信装置以外に、
    アシンクロナス転送を行う前記バスに接続された外部装
    置数が所定数よりも少ない場合であることを特徴とする
    請求項7又は8に記載の通信装置。
  10. 【請求項10】 前記判断手段は、前記通信装置が行う
    トランザクションを完結するのに要する最低限の時間
    と、前記通信先の外部装置が応答に要する時間とを比較
    することを特徴とする請求項1乃至9のいずれかに記載
    の通信装置。
  11. 【請求項11】 前記通信先の外部装置が応答に要する
    時間は、前記通信装置が前記通信先の外部装置にリクエ
    ストパケットを送信してからレスポンスパケットを受信
    するまでにかかる時間であることを特徴とする請求項1
    0に記載の通信装置。
  12. 【請求項12】 前記通信先の外部装置が応答に要する
    時間計測を行うタイマを更に有することを特徴とする請
    求項10及び11に記載の通信装置。
  13. 【請求項13】 前記変更手段は、前記通信先の外部装
    置の応答性が低い場合に、データペイロードサイズ値を
    小さくすることを特徴とする請求項1乃至12のいずれ
    かに記載の通信装置。
  14. 【請求項14】 前記通信手段は、IEEE1394規
    格に準拠していることを特徴とする請求項1乃至13の
    いずれかに記載の通信装置。
  15. 【請求項15】 アイソクロナス転送と、アシンクロナ
    ス転送でデータの送受信を行うことが可能であって、通
    信インタフェースを介して接続された外部装置とデータ
    の送受信を行う通信手段を有する通信装置における通信
    方法であって、 アシンクロナス転送でデータの送受信を行う場合に、通
    信先の外部装置の応答性を判断する判断工程と、 前記判断工程による判断に応じて、アシンクロナス転送
    における送受信の際のデータペイロードサイズを変更可
    能な変更工程とを有することを特徴とする通信方法。
  16. 【請求項16】 前記通信インタフェースを介して前記
    通信装置が接続されたバス上における、アシンクロナス
    転送で使用可能な転送用帯域に関する情報を取得する取
    得工程と、 前記取得工程において取得した転送用帯域に関する情報
    に基づいて、前記データペイロードサイズを設定する設
    定工程とを更に有し、 前記取得工程及び前記設定工程は、前記判断工程及び変
    更工程に先だって行われることを特徴とする請求項15
    に記載の通信方法。
  17. 【請求項17】 前記取得工程では、前記バスに接続さ
    れた各外部装置が持つコンフィギュレーションROM及
    びコントロールアンドステータスレジスタを読み出すこ
    とによって、前記転送用帯域に関する情報を取得するこ
    とを特徴とする請求項16に記載の通信方法。
  18. 【請求項18】 前記転送用帯域に関する情報は、アイ
    ソクロナス転送を行う外部装置数及び当該外部装置が取
    得したアイソクロナス転送用の帯域幅及びチャンネル数
    を含むことを特徴とすることを特徴とする請求項17に
    記載の通信方法。
  19. 【請求項19】 前記転送用帯域に関する情報は、前記
    バスに接続された外部装置数を含むことを特徴とする請
    求項17又は18に記載の通信方法。
  20. 【請求項20】 前記取得工程では、前記バスのリセッ
    ト後に前記バスに接続された各外部装置から送信される
    セルフIMパケットを取得することにより前記転送用帯
    域に関する情報を取得することを特徴とする請求項16
    乃至19のいずれかに記載の通信方法。
  21. 【請求項21】 前記設定工程では、前記転送用帯域に
    関する情報が所定条件を満たしている場合に、転送可能
    な最大データペイロードサイズに設定することを特徴と
    する請求項16乃至20のいずれかに記載の通信方法。
  22. 【請求項22】 前記所定条件は、アシンクロナス転送
    用に残された帯域が所定帯域よりも大きい場合であるこ
    とを特徴とする請求項21に記載の通信方法。
  23. 【請求項23】 前記所定条件は、前記通信装置以外
    に、アシンクロナス転送を行う前記バスに接続された外
    部装置数が所定数よりも少ない場合であることを特徴と
    する請求項21又は22に記載の通信方法。
  24. 【請求項24】 前記判断工程では、前記通信装置が行
    うトランザクションを完結するのに要する最低限の時間
    と、前記通信先の外部装置が応答に要する時間とを比較
    することを特徴とする請求項15乃至23のいずれかに
    記載の通信方法。
  25. 【請求項25】 前記通信先の外部装置が応答に要する
    時間は、前記通信装置が前記通信先の外部装置にリクエ
    ストパケットを送信してからレスポンスパケットを受信
    するまでにかかる時間であることを特徴とする請求項2
    4に記載の通信方法。
  26. 【請求項26】 前記通信先の外部装置が応答に要する
    時間計測を行う計時工程を更に有することを特徴とする
    請求項24及び25に記載の通信方法。
  27. 【請求項27】 前記通信先の外部装置の応答性が低い
    場合に、前記変更工程では、データペイロードサイズ値
    を小さくすることを特徴とする請求項15乃至26のい
    ずれかに記載の通信方法。
  28. 【請求項28】 前記通信手段は、IEEE1394規
    格に準拠していることを特徴とする請求項15乃至27
    のいずれかに記載の通信方法。
  29. 【請求項29】 情報処理装置が実行可能なプログラム
    であって、前記プログラムを実行した情報処理装置を、
    請求項1乃至14のいずれかに記載の通信装置として機
    能させることを特徴とするプログラム。
  30. 【請求項30】 請求項15乃至28のいずれかに記載
    の通信方法を実現するためのプログラムコードを有する
    情報処理装置が実行可能なプログラム。
  31. 【請求項31】 請求項29又は30に記載のプログラ
    ムを記憶した記憶媒体。
JP2001224935A 2001-07-25 2001-07-25 通信装置及び通信方法 Withdrawn JP2003037596A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001224935A JP2003037596A (ja) 2001-07-25 2001-07-25 通信装置及び通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001224935A JP2003037596A (ja) 2001-07-25 2001-07-25 通信装置及び通信方法

Publications (1)

Publication Number Publication Date
JP2003037596A true JP2003037596A (ja) 2003-02-07

Family

ID=19058016

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001224935A Withdrawn JP2003037596A (ja) 2001-07-25 2001-07-25 通信装置及び通信方法

Country Status (1)

Country Link
JP (1) JP2003037596A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011028445A (ja) * 2009-07-23 2011-02-10 Fujitsu Ltd 送受信制御装置、電子機器、データ送信方法及び制御プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011028445A (ja) * 2009-07-23 2011-02-10 Fujitsu Ltd 送受信制御装置、電子機器、データ送信方法及び制御プログラム

Similar Documents

Publication Publication Date Title
EP0938218B1 (en) Data communication system, method of communicating data and data communication apparatus
US6397277B1 (en) Method and apparatus for transmitting data over data bus at maximum speed
US7590133B2 (en) Data communication system, data communication method, and data communication apparatus
US6717694B1 (en) Data transmission apparatus, system and method, and recording medium
JP3927647B2 (ja) 情報処理装置、情報処理方法及び情報処理システム
JP3293779B2 (ja) 信号処理装置およびその制御方法
JP2007088775A (ja) 無線通信システム、無線通信装置及び方法
JP2003174486A (ja) 情報通信装置、情報通信方法および情報通信処理プログラム
US20040057448A1 (en) Information processing system, information processing apparatus, and information processing method
JP3400772B2 (ja) パケット送受信処理装置
US6963938B2 (en) Information processing apparatus and method therefor
JP3630971B2 (ja) データ通信方法、装置、システム、及び記憶媒体
US6445718B1 (en) Serial interface circuit
KR100311707B1 (ko) 데이타 통신 시스템, 데이타 통신 방법, 데이타 통신 장치 및 디지탈 인터페이스
JPH10341247A (ja) データ送信装置、データ受信装置、データ伝送システム及びデータ伝送方法
US6693905B1 (en) Data exchange unit
US20010028656A1 (en) Information signal processing apparatus and method
JP2003037596A (ja) 通信装置及び通信方法
JP4428750B2 (ja) データ通信システム
JP2001333136A (ja) 通信装置、データ通信システム、通信制御方法、記憶媒体
KR100491675B1 (ko) 데이터 전송방법, 데이터 전송시스템, 데이터전송제어장치 및 프로그램 기록매체
JP4026979B2 (ja) データ通信システム
JP2000224195A (ja) データ伝送装置
JP3943722B2 (ja) データ転送装置、データ転送システムおよびその方法、画像処理装置、並びに、記録媒体
JP4582180B2 (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: 20081007