(57)【特許請求の範囲】
【請求項１】
バスで接続された複数の電子機器間で通信を行うシステムに用いる電子機器であって、
当該電子機器で入力中又は出力中のオブジェクトに関するデータのリストを階層構造で記憶する第１の手段と、
バッファを具備し、前記バスを介して他の電子機器との間でデータの送受信を行う第２の手段と、
前記第２の手段により受信したコマンドを処理し、前記第１、第２の手段の制御を行う第３の手段とを備え、
前記第３の手段は、前記他の電子機器から前記入力中又は出力中のオブジェクトに関するデータを問い合わせる第１のコマンドを受信した際に、該オブジェクトに関するデータのデータ量が前記バッファのサイズ以内であれば、前記第１のコマンドに対するレスポンスとして該オブジェクトに関するデータを返信し、該オブジェクトに関するデータのデータ量が前記バッファのサイズを越える場合には、前記バッファのサイズ以内のデータを前記第１のコマンドに対するレスポンスとして不完全であることを示す情報を付加して返信し、その後、前記他の電子機器から前記第１の手段に記憶されているデータをアドレスとデータ長を指定して読み出しを行う第２のコマンドを受信した際に、前記第１の手段から読み出したデータを前記第２のコマンドに対するレスポンスとして返信することを特徴とする電子機器。
【請求項２】
前記第１の手段は、前記オブジェクトを該電子機器の入出力のプラグ単位で記憶する請求項１に記載の電子機器。
【請求項３】
バスに接続された電子機器で入力中又は出力中のオブジェクトを前記バスに接続された他の電子機器へ伝送する方法であって、
前記他の電子機器から前記入力中又は出力中のオブジェクトに関するデータを問い合わせる第１のコマンドを受信した際に、該オブジェクトに関するデータのデータ量が前記バッファのサイズ以内であれば、前記第１のコマンドに対するレスポンスとして該オブジェクトに関するデータを返信し、該オブジェクトに関するデータのデータ量が前記バッファのサイズを越える場合には、前記バッファのサイズ以内のデータを前記第１のコマンドに対するレスポンスとして不完全であることを示す情報を付加して返信するステップと、
前記他の電子機器から前記第１の手段に記憶されているデータをアドレスとデータ長を指定して読み出しを行う第２のコマンドを受信した際に、前記第１の手段から読み出したデータを前記第２のコマンドに対するレスポンスとして返信するステップと
を備えることを特徴とする電子機器の伝送方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばＩＥＥＥ１３９４シリアルバス（以下１３９４シリアルバスという）に接続して使用する電子機器に関し、詳細にはアシンクロナスパケットを用いて多量のデータを伝送する技術に関する。
【０００２】
【従来の技術】
パーソナルコンピュータ、デジタルビデオカセットレコーダ（以下ＤＶＣＲという）、デジタルテレビジョン受信機等の電子機器（以下機器という）を１３９４シリアルバスで接続し、これらの機器間でデジタルビデオ信号、デジタルオーディオ信号、及び制御信号のパケットを送受信する通信システムが考えられている。
【０００３】
図１４にこのような通信システムの一例を示す。この通信システムは、機器としてモニター１１と、ＤＶＣＲ１２と、チューナー１３を備えている。そして、モニター１１とＤＶＣＲ１２の間、及びモニター１１とチューナー１３の間は、１３９４シリアルバスのケーブル１４，１５で接続されている。
【０００４】
このような通信システムでは、機器の間でデジタルビデオ信号やデジタルオーディオ信号等のリアルタイムデータを定期的に伝送するアイソクロナス（以下Ｉｓｏという）通信と、機器の動作制御コマンドや機器間の接続制御コマンド等を必要に応じて不定期に伝送するアシンクロナス（以下Ａｓｙｎｃという）通信を行うことができる。例えば、チューナー１３で選局したデジタルビデオ信号及びデジタルオーディオ信号をモニター１１で映像及び音声として再生したり、ＤＶＣＲ１２で記録することができる。また、チューナー１３の選局制御コマンドやＤＶＣＲ１２の動作モード設定コマンド等をモニター１１から１３９４シリアルバスのケーブル１４，１５を介して伝送することができる。
【０００５】
【発明が解決しようとする課題】
図１４に示したような通信システムにおいて、ＡＶ（オーディオ・ビジュアル）機器の制御に使用するコマンドとしてＡＶ／Ｃ（オーディオ・ビジュアル／コントロール）コマンドセットがある。ＡＶ／Ｃコマンドセットにおいては、状態の問い合わせのために用いられるステータスコマンドが定義されている。そして、このステータスコマンドに対するレスポンスとして、指定されたものの状態の情報をオペランドとして添付して返答することが定められている。
【０００６】
この状態の情報の量が非常に多い場合がある。例えば、テレビ放送は図１５に示されているように、ネットワーク層、マルチプレックス層、サービス層、及びコンポーネント層からなる階層構造を持っている。このため、デジタル放送チューナーが現在選局しているサービス（放送チャンネル）を問い合わせるステータスコマンドについては、１つのサービスに関する状態の情報だけで３０バイト以上になる。デジタル放送では複数のサービスを１つのストリームに載せることが可能なので、その場合、問い合わせに対するレスポンスは複数サービス分必要となり、数百バイトに及ぶこともありうる。
【０００７】
これに対して、１３９４シリアルバスにおけるＦＣＰ（ファンクション・コントロール・プロトコル）のコマンドレジスタ（バッファ）とレスポンスレジスタ（バッファ）のサイズは最大５１２バイトに決められているため、それ以上のサイズのコマンドパケット及びレスポンスパケットの送受信はできない。また、実際の機器では５１２バイトのバッファを備えているという保証はない（現在は数十〜百数十バイト）。バッファサイズに限りがある場合には、問い合わせた状態の情報を受け取ることができない。
【０００８】
本発明はこのような問題点に鑑みてなされたものであって、送信バッファのサイズに限りがある機器からでも、そのバッファのサイズを越える大量のデータを取り出すことができるようにした機器及びその情報伝送方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、バスで接続された複数の電子機器間で通信を行うシステムに用いる電子機器であって、当該電子機器で入力中又は出力中のオブジェクトに関するデータのリストを階層構造で記憶する第１の手段と、バッファを具備し、前記バスを介して他の電子機器との間でデータの送受信を行う第２の手段と、前記第２の手段により受信したコマンドを処理し、前記第１、第２の手段の制御を行う第３の手段とを備え、前記第３の手段は、前記他の電子機器から前記入力中又は出力中のオブジェクトに関するデータを問い合わせる第１のコマンドを受信した際に、該オブジェクトに関するデータのデータ量が前記バッファのサイズ以内であれば、前記第１のコマンドに対するレスポンスとして該オブジェクトに関するデータを返信し、該オブジェクトに関するデータのデータ量が前記バッファのサイズを越える場合には、前記バッファのサイズ以内のデータを前記第１のコマンドに対するレスポンスとして不完全であることを示す情報を付加して返信し、その後、前記他の電子機器から前記第１の手段に記憶されているデータをアドレスとデータ長を指定して読み出しを行う第２のコマンドを受信した際に、前記第１の手段から読み出したデータを前記第２のコマンドに対するレスポンスとして返信することを特徴とする。
【００１０】
また、本発明は、バスに接続された電子機器で入力中又は出力中のオブジェクトを前記バスに接続された他の電子機器へ伝送する方法であって、前記他の電子機器から前記入力中又は出力中のオブジェクトに関するデータを問い合わせる第１のコマンドを受信した際に、該オブジェクトに関するデータのデータ量が前記バッファのサイズ以内であれば、前記第１のコマンドに対するレスポンスとして該オブジェクトに関するデータを返信し、該オブジェクトに関するデータのデータ量が前記バッファのサイズを越える場合には、前記バッファのサイズ以内のデータを前記第１のコマンドに対するレスポンスとして不完全であることを示す情報を付加して返信するステップと、前記他の電子機器から前記第１の手段に記憶されているデータをアドレスとデータ長を指定して読み出しを行う第２のコマンドを受信した際に、前記第１の手段から読み出したデータを前記第２のコマンドに対するレスポンスとして返信するステップとを備えることを特徴とする。
【００１１】
本発明は、第３の手段が、他の電子機器から入力中又は出力中のオブジェクトに関するデータを問い合わせる第１のコマンドを受信した際に、該オブジェクトに関するデータのデータ量がバッファのサイズを越える場合には、バッファのサイズ以内のデータを第１のコマンドに対するレスポンスとして不完全であることを示す情報を付加して返信する。そして、その後、他の電子機器から第１の手段に記憶されているデータをアドレスとデータ長を指定して読み出しを行う第２のコマンドを受信した際に、第１の手段から読み出したデータを第２のコマンドに対するレスポンスとして返信する。
【００１２】
【発明の実施の形態】
以下本発明の実施の形態について図面を参照しながら詳細に説明する。
【００１３】
図１は本発明を適用したＤＶＣＲの要部構成を示すブロック図である。このＤＶＣＲは、チューナーサブユニット１と、コントローラ５と、メモリ６と、１３９４Ａｓｙｎｃブロック７とを備えている。
【００１４】
チューナーサブユニット１にはアナログ放送チューナー２とデジタル放送チューナー３が設けられており、それぞれアンテナ（ＡＮＴ）１、アンテナ（ＡＮＴ）２で受信したテレビ放送信号が入力される。アナログ放送チューナー２で選局されたチャンネルの信号は、サブユニット出力プラグＰ１から記録部（ＤＶＣＲサブユニット）に出力される。デジタル放送チューナー３で選択されたトランスポンダのストリームはデマルチプレクサ４に入力される。デマルチプレクサ４は１つ以上のサービスを選択し、サブユニット出力プラグＰ０から記録部及び１３９４Ｉｓｏブロックに出力する。また、ストリーム中のサービス情報を分離してコントローラ５に送る。なお、サブユニット出力プラグＰ０及びＰ１は論理的なプラグである。
【００１５】
コントローラ５はこのＤＶＣＲ全体の制御等を行う。また、デマルチプレクサ４から受け取ったサービス情報をもとにオブジェクト・リストを作成し、メモリ６に書き込む。さらに、１３９４Ａｓｙｎｃブロック７及び１３９４シリアルバス８を介して他の機器との間でコマンド／レスポンスの送受信を行う。また、サブユニット出力プラグＰ０及びＰ１から現在出力中の信号に関する情報をメモリ６に書き込む。
【００１６】
メモリ６には、図２に示すようにディスクリプターと呼ばれるエリアが設定されており、そこに前述したオブジェクト・リストと現在出力中の信号に関する情報が書き込まる。図３にオブジェクト・リストの例を示す。このオブジェクト・リストは図１４に示したマルチプレックス層、サービス層、及びコンポーネント層に関して作成されている。また、図４（１）はチューナーサブユニットの各プラグ（プラグリスト）と各プラグから現在出力中のオブジェクトを並べたリスト（プラグ・チューナー・オブジェクト・リスト）の構成を示し、図４（２）はその具体例を示す。図４（２）に示すように、オブジェクト・エントリーの記述方法としては、詳細なスペックを記述するディ−テールド（ｄｅｔａｉｌｅｄ）型と他のリストを参照するレファレンス（ｒｅｆｅｒｅｎｃｅ）型がある。
【００１７】
１３９４Ａｓｙｎｃブロック７はコントローラ５が作成したコマンドやレスポンスをＡｓｙｎｃパケット化して１３９４シリアルバス８に送出する。また、１３９４シリアルバス８から受信したＡｓｙｎｃパケットを分解してパケット中のコマンドやレスポンスをコントローラ５に送る。この時、コマンド及びレスポンスはバッファメモリ９（送信バッファと受信バッファが設けられている）に一時的に記憶される。
【００１８】
次に図１に示したチューナーサブユニット１が選択しているオブジェクトを調べる手順について説明する。まず、この手順に使用するコマンド及びレスポンスの構造を説明する。
【００１９】
チューナーサブユニットコマンドのダイレクト・セレクト・オブジェクト（ＤＩＲＥＣＴ  ＳＥＬＥＣＴ  ＯＢＪＥＣＴ）コマンドは、放送されているものの中から１つ以上のサービス又は多重化（ｍｕｌｔｉｐｕｌｅｘｅｄ）ストリーム又はコンポーネントを選択し、指定したサブユニットプラグに出力させるコマンドである。コントロールコマンドはこの選択の指示に用いられ、ステータスコマンドは何が選択されているかの問い合わせに用いられる。
【００２０】
コントロールコマンドは図５のように構成されている。ここで、ソースプラグ（ｓｏｕｒｃｅ＿ｐｌｕｇ）はチューナーサブユニットの出力プラグ、サブファンクション（ｓｕｂｆｕｎｃｔｉｏｎ）はｒｅｍｏｖｅ，ａｐｐｅｎｄ，ｒｅｐｌａｃｅ等で指定したプラグに対して指定したオブジェクトを「取り除く」、「追加出力する」、「今まで出力していたものを全て取り除いて指定したオブジェクトに置き換える」等の操作を指定するものである。
【００２１】
ｔｕｎｅｒ＿ｏｂｊｅｃｔ＿ｓｅｌｅｃｔｉｏｎ＿ｓｐｅｃｉｆｉｃａｔｉｏｎは選択（ｓｅｌｅｃｔｉｏｎ）に必要なパラメータであり、１０〜５０バイトの情報量が予想される。コマンドの送信側の機器が複数のオブジェクトを指定しようとした場合、１３９４Ａｓｙｎｃブロック内のバッファメモリのサイズが充分でなくても、ｓｕｂｆｕｎｃｔｉｏｎ：ａｐｐｅｎｄを用いて複数回に分けて選択を行うことが可能である。
【００２２】
ダイレクト・セレクト・オブジェクト・ステータスコマンドは、指定したプラグに現在何が出力されているかを問い合わせるためのコマンドである。図６はこのコマンドを示し、図７はそのレスポンスを示す。
【００２３】
次に、図８のフローチャートを参照しながら、図１のチューナーサブユニット１で選択されているオブジェクトを調べる手順について説明する。
【００２４】
まず、ステップＳ１で、ダイレクト・セレクト・オブジェクト・ステータスコマンドを送信する。すなわち、図１の１３９４シリアルバス８に接続されている他の機器（例えばモニター装置）は、図６に示したような構成のコマンドをＡｓｙｎｃパケットに載せ、１３９４Ａｓｙｎｃブロックを経て１３９４シリアルバス８へ送出する。このパケットは図１に示した１３９４Ａｓｙｎｃブロック７に入力され、一旦バッファメモリ９に蓄積された後、コントローラ５により読み出される。
【００２５】
コントローラ５はこのコマンドを解析し、指定されたプラグ（ここではサブユニットプラグＰ０とする）に現在出力されている信号を調べる。すなわち、メモリ６のディスクリプターから現在出力中の信号に関する情報を調べる。この情報は図４に例示したように、プラグ単位でオブジェクトのエントリー数が記述されているので、コントローラ５はプラグＰ０に関する情報を読み出すことにより、図７に示したような構成のレスポンスを作成し、返答することができる。
【００２６】
ただし、このレスポンスの内容は、１３９４Ａｓｙｎｃブロック７内のバッファメモリ９のサイズとレスポンス中のｔｕｎｅｒ＿ｏｂｊｅｃｔ＿ｓｅｌｅｃｔｉｏｎ＿ｓｐｅｃｉｆｉｃａｔｉｏｎの全長との大小関係により異なる。例えば、１つのｔｕｎｅｒ＿ｏｂｊｅｃｔ＿ｓｅｌｅｃｔｉｏｎ＿ｓｐｅｃｉｆｉｃａｔｉｏｎのサイズが３０バイトで、４つのオブジェクトがプラグＰ０に出力されていたとすると、全部で１２０バイトになる。
【００２７】
この場合に、バッファメモリ９における送信バッファのサイズが十分であれば、コントローラは図９に示すようなレスポンスを返答する。この場合のオペランド［１］はステーブルである。そして、この図のオペランド［３］〜［ｘ］で４つのｓｅｌｅｃｔｉｏｎ＿ｓｐｅｃｉｆｉｃａｔｉｏｎ［０］〜［３］の情報を返答する。各ｓｅｌｅｃｔｉｏｎ＿ｓｐｅｃｉｆｉｃａｔｉｏｎの情報の内容例を図１０に示す。
【００２８】
一方、バッファメモリ９における送信バッファのサイズが例えば１００バイトしかない場合には、４つのオブジェクトの情報を返答することができないので、コントローラは図１１に示すようなレスポンスを返答する。この場合のオペランド［１］は不完全（ｉｎｃｏｍｐｌｅｔｅ）である。そして、オペランド［２］のｎｕｍｂｅｒ＿ｏｆ＿ｏｂｊｅｃｔ＿ｓｅｌｅｃｔｉｏｎ＿ｓｐｅｃｉｆｉｃａｔｉｏｎの値は、実際にプラグＰ０から出力中のオブジェクトの数（＝４）ではなく、返答できる数（＝３）である。そして、オペランド［３］で３つのｓｅｌｅｃｔｉｏｎ＿ｓｐｅｃｉｆｉｃａｔｉｏｎ［０］〜［２］の情報を返答する。
【００２９】
このレスポンスを載せたＡｓｙｎｃパケットは１３９４シリアルバス８を通って、コマンドの送信側の機器で受信される（ステップＳ２）。このレスポンスは送信側の機器内の１３９４Ａｓｙｎｃブロックを通ってコントローラに送られる。コントローラはレスポンスのステータスフィールドを参照する（ステップＳ３）。
【００３０】
そして、ステータスフィールドがステーブルであれば、図９を参照しながら説明したように、レスポンスには全てのオブジェクトの情報が含まれているので、処理を終了する。
【００３１】
これに対して、ステータスフィールドが不完全の場合には、図１１を参照しながら説明したように、返答できる分の情報のみがレスポンスに入っているので、メモリ６内のディスクリプターに書かれている、現在出力中の信号に関する情報を読み出す。なお、以下の説明ではコマンドの送信側の機器と受信側の機器（図１のＤＶＣＲ）との間のパケットの流れに関する説明は省略する。
【００３２】
まず、コマンドの送信側の機器は、ディスクリプターのプラグリストを読み出すためのコマンドを送信する（ステップＳ４）。このコマンドを受信した機器のコントローラ５はメモリ６内のディスクリプターから、図４に示したようなプラグリストを読み出し、これをレスポンスとして返答する。コマンドの送信側の機器は、受信したレスポンス中のプラグリストからプラグ０のｌｉｓｔ＿ｉｄ＝ｘｘを調べる（ステップＳ５）。ここではｘｘ＝０１０１であったものとする。
【００３３】
次にコマンドの送信側の機器は、ｌｉｓｔ＿ｉｄ＝ｘｘ（ここでは０１０１）のプラグリストにおけるオブジェクトのエントリー数を調べるためのコマンドを送信し、そのレスポンスを見てオブジェクトのエントリー数ｎを調べる（ステップＳ６）。ここではｎ＝４であったものとする。
【００３４】
次にステップＳ７でｋ＝０に初期設定した後、ディスクリプターのｌｉｓｔ＿ｉｄ＝ｘｘのプラグにおけるｋ番目のエントリーのオブジェクトを読み出すためのコマンドを送信し、そのレスポンスを見てｋ番目のエントリーのオブジェクトに関する情報を収集する。そして、この処理をｎ個のエントリーに対して実行したら、処理を終了する（ステップＳ８〜Ｓ１０）。
【００３５】
ここで、ステップＳ９で使用するコマンドとレスポンスについて説明する。
【００３６】
図１２はディスクリプターのｌｉｓｔ＿ｉｄ＝ｘｘのプラグにおけるｋ番目のエントリーのオブジェクトを読み出すためのコマンド（ＲＥＡＤ  ＤＥＳＣＲＩＰＴＯＲ，ｌｉｓｔ＿ｉｄ＝ｘｘ，ｅｎｔｒｙ＝ｋ）の構成例である。ここで、オペランド［５］のデータ長（ｄａｔａ＿ｌｅｎｇｔｈ）＝０は、コマンドの送信側がエントリー番号ｋのオブジェクトを全て読み出したいことを意味する。
【００３７】
図１３はこのコマンドに対するレスポンスの構成例である。ここで、オペランド［５］のデータ長＝ｙｙはこのレスポンスで伝送するデータの長さである。また、オペランド［８］のエントリー長（ｅｎｔｒｙ＿ｌｅｎｇｔｈ）は、エントリー番号ｋのオブジェクトの長さである。図１の１３９４Ａｓｙｎｃブロック７内のバッファメモリ９における送信バッファのサイズが１００バイトであり、エントリー長が３０バイトであれば、１つのエントリーの情報を１つのレスポンスで伝送できるので、図１３のｙｙ＝３０、ｚｚ＝３０となり、オペランド［６］〜［７］で指定されるオフセットアドレス００００から３０バイトを読み出して伝送する。もし、バッファメモリ９における送信バッファのサイズが３０バイトより小さい場合、例えば１０バイトの場合には、ｙｙ＝１０、ｚｚ＝３０とし、オフセットアドレスを１０バイトずつ移動させながら３回に分けて伝送する。
【００３８】
このように、ディスクリプターの読み出しコマンド（ＲＥＡＤ  ＤＥＳＣＲＩＰＴＯＲ）コマンドは、コマンドを受け取った機器が指定されただけの返答ができない場合には、その機器が扱える最大バイト数分の情報を返答すればよい。また、コマンドの送信側は読み出したいアドレス及びデータ長を自由に指定できるので、大量のデータを読み出す場合でも複数回に分けて読み出すことが可能である。
【００３９】
【発明の効果】
以上詳細に説明したように、本発明によれば、送信バッファのサイズに限りがある機器からでも、そのバッファサイズを越える大量のデータを取り出すことができる。
【図面の簡単な説明】
【図１】本発明を適用したＤＶＣＲの要部構成を示すブロック図である。
【図２】図１のメモリの内部構成を示す図である。
【図３】ディスクリプターに記憶されているオブジェクト・リストの例を示す図である。
【図４】ディスクリプターに記憶されている現在出力中の信号に関する情報の例を示す図である。
【図５】チューナーサブユニットに対するダイレクト・セレクト・オブジェクト・コントロールコマンドの構成を示す図である。
【図６】ダイレクト・セレクト・オブジェクト・ステータスコマンドの構成を示す図である。
【図７】ダイレクト・セレクト・オブジェクト・ステータスコマンドのレスポンスの構成を示す図である。
【図８】図１のチューナーサブユニットで選択されているオブジェクトを調べる手順を示すフローチャートである。
【図９】バッファの容量が十分ある場合のダイレクト・セレクト・オブジェクト・ステータスコマンドのレスポンスの構成例を示す図である。
【図１０】ｓｅｌｅｃｔｉｏｎ＿ｓｐｅｃｉｆｉｃａｔｉｏｎの情報の内容の例を示す図である。
【図１１】バッファの容量が十分でない場合のダイレクト・セレクト・オブジェクト・ステータスコマンドのレスポンスの構成例を示す図である。
【図１２】ディスクリプター読み出しコマンドの構成例を示す図である。
【図１３】ディスクリプター読み出しコマンドのレスポンスの構成例を示す図である。
【図１４】１３９４シリアルバスを用いた通信システムの構成を示す図である。
【図１５】テレビ放送の階層構造を示す図である。
【符号の説明】
１…チューナーサブユニット、５…コントローラ、６…メモリ、７…１３９４Ａｓｙｎｃブロック、８…１３９４シリアルバス、９…バッファ、Ｐ０，Ｐ１…サブユニットプラグ。
【図１】
0003658919.tif 000002
【図２】
0003658919.tif 000003
【図３】
0003658919.tif 000004
【図４】
0003658919.tif 000005
【図５】
0003658919.tif 000006
【図６】
0003658919.tif 000007
【図７】
0003658919.tif 000008
【図８】
0003658919.tif 000009
【図９】
0003658919.tif 000010
【図１０】
0003658919.tif 000011
【図１１】
0003658919.tif 000012
【図１２】
0003658919.tif 000013
【図１３】
0003658919.tif 000014
【図１４】
0003658919.tif 000015
【図１５】
0003658919.tif 000016