ところが、先に提案されているAV/Cコマンドでは、基本的にバスライン上のセンターコントローラの制御で、これらの入力機器や出力機器の選択処理が行われるため、センターコントローラの負担が大きいと共に、センターコントローラからの指示がない状態で、バスライン上の任意の機器で独自に入力機器や出力機器を選択する処理は行えない問題があった。
本発明の目的は、IEEE1394方式などのバスで接続された機器の間で、オートプレイなどの連携動作が効率良く行えるようにすることにある。
本発明は、所定のネットワークに接続された機器間で制御を行う機器制御方法において、上記ネットワークに接続された第1の機器での入力選択状況を、上記ネットワークに接続された第2の機器に開示し、 上記第2の機器で上記第1の機器の入力信号源を特定できるようにしたものである。
このようにしたことによって、ネットワークで接続された複数台の機器の間で、一方の機器での入力信号源の特定が、他の機器で簡単に出来るようになる。
また本発明は、上記第2の機器が上記第1の機器の出力を入力したいとき、上記開示されるデータで上記第2の機器が特定した入力信号源からの信号を、上記第2の機器が入力するようにしたものである。
このようにしたことによって、第1の機器で扱うデータと同じデータが他の機器でも得られるようになる。
また本発明は、所定のネットワークに接続された機器間で制御を行う機器制御方法において、第1の機器から出力されるデータを第2の機器で入力できる状況のとき、そのデータの上記第1の機器からの出力経路の変更に関するデータを上記ネットワークで上記第2の機器に伝送するようにしたものである。
このようにしたことによって、ネットワークを介した伝送時の出力経路の変更に対処できるようになる。
また本発明は、上記出力経路として、上記ネットワーク以外の出力経路を含むようにしたものである。
このようにしたことによって、ネットワーク以外の出力経路への変更や、ネットワーク以外の出力経過からの変更にも対処できるようになる。
また本発明は、上記出力経路の変更に関するデータとして、少なくとも上記第2の機器でその変更した経路への入力切換えを指示する要求と、第2の上記第2の機器で経路の変更だけを判断させて入力切換えを指示しない要求の2種類を用意したものである。
このようにしたことによって、出力経路の変更に伴って入力切換えを指示する場合と、入力切換えを指示しない場合とのいずれにも対処できるようになる。
また本発明は、所定のネットワークに接続された機器間で制御を行う機器制御方法において、第1の機器からの要求で、第2の機器から上記第1の機器へのデータ伝送の指示を行い、そのデータ伝送の指示を受信した第2の機器から、上記第1の機器に対して設定される出力部に関するデータを上記第1の機器に対して伝送するようにしたものである。
このようにしたことによって、ネットワークで接続された他の機器に対してデータ送出を指示でき、その指示によって、そのデータ送出が指示された機器での出力状態を、指示した側の機器で判断でき、ネットワークに送出されるデータを指示した側の機器で確実に受信できるようになる。
また本発明は、所定のネットワークに接続された機器間で制御を行う機器制御方法において、第1の機器から第2の機器にデータ受信の指示を行い、 その指示に基づいて上記第2の機器が入力に関する設定を決定し、その設定データを上記第1の機器に対して伝送するようにしたものである。
このようにしたことによって、ネットワークで接続された他の機器に対してデータ受信を指示でき、その指示によって、そのデータ受信が指示された機器での入力状態を、指示した側の機器で判断でき、ネットワークに送出させるデータを相手の機器で確実に受信させることができるようになる。
また本発明は、所定のネットワークを介して接続された他の機器とデータ伝送が可能な伝送装置において、上記ネットワークで接続された他の機器での入力選択に関する設定を行う所定のフォーマットのコマンドを生成させるコマンド生成部と、 上記コマンド生成部で生成されたコマンドを上記ネットワークに送出する送出部とを備えたものである。
このようにしたことによって、ネットワークで接続された他の機器での入力選択に関する設定をリモート制御できるようになる。
また本発明は、上記コマンド生成部で生成される入力選択に関する設定を指示するコマンドは、上記他の機器で入力選択が実行される前に予め上記送出部から送出するようにしたものである。
このようにしたことによって、他の機器の制御が良好に行えるようになる。
また本発明は、所定のネットワークを介して接続された他の機器とデータ伝送が可能な伝送装置において、上記ネットワークで接続された他の機器に対して入力選択状況を開示する所定のフォーマットのコマンドを生成させるコマンド生成部と、 上記コマンド生成部で生成されたコマンドを上記ネットワークに送出する送出部とを備えたものである。
このようにしたことによって、この伝送装置での入力選択状況をネットワークで接続された他の機器に開示させて、ネットワーク内での伝送状態を他の機器が判断できるようになる。
また本発明は、所定のネットワークを介して接続された他の機器とデータ伝送が可能な伝送装置において、上記ネットワークで伝送されたデータを入力する入力部と、 上記入力部が入力したデータから、上記ネットワークで接続された他の機器での入力選択状況に関するコマンドを判断して記憶するデータ処理部とを備えたものである。
このようにしたことによって、ネットワークで接続された他の機器での入力選択状況を判断して記憶し、その判断した機器の制御が良好に行えるようになる。
また本発明は、所定のネットワークを介して接続された他の機器とデータ伝送が可能な伝送装置において、 上記ネットワークで接続された他の機器に対して出力経路の変更を指示する所定のフォーマットのコマンドを生成させるコマンド生成部と、 上記コマンド生成部で生成されたコマンドを上記ネットワークに送出する送出部とを備えたものである。
このようにしたことによって、ネットワークで接続された他の機器に対して、ネットワーク上での出力経路の変更を指示することが可能になり、伝送経路の変更に容易に対処できるようになる。
また本発明は、上記コマンド生成部で生成されるコマンドで示される出力経路には、上記バスライン以外の出力経路を含むようにしたものである。
このようにしたことによって、ネットワーク以外の出力経路への変更や、ネットワーク以外の出力経過からの変更にも対処できるようになる。
また本発明は、上記コマンド生成部で生成される出力経路の変更に関するコマンドには、その変更した経路への入力切換えを指示するコマンドと、経路の変更だけを判断させて入力切換えを指示しないコマンドとを用意したものである。
このようにしたことによって、出力経路の変更に伴って入力切換えを指示する場合と、入力切換えを指示しない場合とのいずれにも対処できるようになる。
また本発明は、所定のネットワークを介して接続された他の機器とデータ伝送が可能な伝送装置において、上記ネットワークで伝送されたデータを入力する入力部と、 上記入力部が入力したデータから、上記ネットワークで接続された他の機器での出力経路状況に関するコマンドを判断して記憶するデータ処理部とを備えたものである。
このようにしたことによって、ネットワークで接続された他の機器でのデータの出力経路を判断して記憶できるようになる。
また本発明は、 上記データ処理部で判断されるコマンドで示される出力経路には、上記ネットワーク以外の出力経路を含むようにしたものである。
このようにしたことによって、ネットワーク以外の出力経路を使用している場合にも判断できるようになる。
また本発明は、 上記データ処理部が上記コマンドを判断したとき、そのコマンドにより、変更された出力経路からのデータの入力に切換える処理と、変更された出力経路の判断だけを行う処理とが選択的に実行されるようにしたものである。
このようにしたことによって、出力経路の変更に伴って入力切換えを指示する場合と、入力切換えを指示しない場合とのいずれにも対処できるようになる。
また本発明は、所定のネットワークを介して接続された他の機器とデータ伝送が可能な伝送装置において、 上記ネットワークで伝送されたデータを入力し、データを上記ネットワークに送出する入出力部と、 上記入出力部が入力したデータから、上記ネットワークで接続された他の機器へのデータ送出を指示するコマンドを判断したとき、そのデータ送出を行う上記入出力部の設定状況に関するコマンドを生成させるデータ処理部とを備えたものである。
このようにしたことによって、他の機器からの指示によるデータ送出時に、相手の機器に対して入出力部の設定状況を告知できるようになり、ネットワークを介して良好にデータ伝送ができるようになる。
また本発明は、所定のネットワークを介して接続された他の機器とデータ伝送が可能な伝送装置において、上記ネットワークで伝送されたデータを入力し、データを上記バスラインに送出する入出力部と、 上記ネットワークで接続された他の機器に対してデータ送出を指示するコマンドを生成させて上記入出力部から送出させ、その送出されるコマンドに基づいて上記他の機器から伝送された出力の設定状況に関するデータを判断して記憶するデータ処理部とを備えたものである。
このようにしたことによって、他の機器に対してデータ送出を指示するとき、その相手の機器から伝送されるデータにより、データ出力の設定状況を判断できるようになり、指示した機器から伝送されるデータを良好に受信できるようになる。
また本発明は、所定のネットワークを介して接続された他の機器とデータ伝送が可能な伝送装置において、上記ネットワークで伝送されたデータを入力し、データを上記ネットワークに送出する入出力部と、 上記入出力部が入力したデータから、上記ネットワークで接続された他の機器からのデータ受信を指示するコマンドを判断したとき、そのデータ受信を行う上記入出力部の設定状況に関するコマンドを生成させるデータ処理部とを備えたものである。
このようにしたことによって、他の機器からの指示でデータ受信を行うとき、そのときの入出力部の設定状況を相手の機器に知らせることができ、ネットワークで接続された他の機器との間で良好にデータ伝送ができるようになる。
また本発明は、所定のネットワークを介して接続された他の機器とデータ伝送が可能な伝送装置において、 上記ネットワークで伝送されたデータを入力し、データを上記ネットワークに送出する入出力部と、 上記ネットワークで接続された他の機器に対してデータ受信を指示するコマンドを生成させて上記入出力部から送出させ、その送出させたコマンドに基づいて上記他の機器から伝送された入力の設定状況に関するデータを判断して記憶するデータ処理部とを備えたものである。
このようにしたことによって、他の機器に対してデータ受信を指示したとき、相手の機器での入力の設定状況を判断できるようになり、相手の機器に対して良好にデータを伝送できるようになる。
また本発明は、所定のネットワークに接続された機器間で制御を行うためのプログラムが保持された媒体において、上記プログラムとして、上記ネットワークに接続された第1の機器での入力選択状況を、上記ネットワークに接続された第2の機器に開示して、上記第2の機器で上記第1の機器の入力信号源を特定できるステップを備えたものである。
このようにしたことによって、このプログラムが実装された機器で、ネットワーク上の他の機器での入力信号源の特定が簡単に出来るようになる。
また本発明は、上記ステップの処理で開示されるデータで上記第2の機器が特定した入力信号源からの信号を、上記第2の機器が入力するステップを更に備えたものである。
このようにしたことによって、このプログラムが実装された機器で、他の機器が扱うデータと同じデータが得られるようになる。
また本発明は、所定のネットワークに接続された機器間で制御を行うためのプログラムが保持された媒体において、上記プログラムとして、第1の機器からの出力されるデータを第2の機器で入力できる状況のとき、そのデータの上記第1の機器からの出力経路の変更に関するデータを上記ネットワークで上記第2の機器に伝送させるステップを備えたものである。
このようにしたことによって、このプログラムが実装された機器で、ネットワークを介した伝送時の出力経路の変更に対処できるようになる。
また本発明は、上記ステップで変更させる出力経路として、ネットワーク以外の出力経路を含むようにしたものである。
このようにしたことによって、このプログラムが実装された機器で、バスライン以外の出力経路への変更や、ネットワーク以外の出力経過からの変更にも対処できるようになる。
また本発明は、上記ステップでの出力経路の変更に関する処理として、少なくとも上記第2の機器でその変更した経路への入力切換えを指示する要求と、第2の上記第2の機器で経路の変更だけを判断させて入力切換えを指示しない要求の2種類を用意したものである。
このようにしたことによって、このプログラムが実装された機器では、出力経路の変更に伴って入力切換えを指示する場合と、入力切換えを指示しない場合とのいずれにも対処できるようになる。
また本発明は、所定のネットワークに接続された機器間で制御を行うためのプログラムが保持された媒体において、 上記プログラムとして、第1の機器からの要求で、第2の機器から上記第1の機器へのデータ伝送の指示を行うステップと、 上記ステップによりデータ伝送の指示を受信した第2の機器から、上記第1の機器に対して設定される出力部に関するデータを上記第1の機器に対して伝送させるステップとを備えたものである。
このようにしたことによって、このプログラムが実装された機器では、ネットワークで接続された他の機器に対してデータ送出を指示でき、その指示によって、そのデータ送出が指示された機器での出力状態を、指示した側の機器で判断でき、ネットワークに送出されるデータを指示した側の機器で確実に受信できるようになる。
また本発明は、所定のネットワークに接続された機器間で制御を行うためのプログラムが保持された媒体において、 上記プログラムとして、第1の機器から第2の機器にデータ受信の指示を行うステップと、 上記ステップによる指示に基づいて上記第2の機器が入力に関する設定を決定し、その設定データを上記第1の機器に対して伝送させるステップとを備えたものである。
このようにしたことによって、このプログラムが実装された機器では、ネットワークで接続された他の機器に対してデータ受信を指示でき、その指示によって、そのデータ受信が指示された機器での入力状態を判断でき、ネットワークに送出させるデータを相手の機器で確実に受信させることができるようになる。
発明を実施するための最良の形態 以下、本発明の第1の実施の形態を、図1〜図27を参照して説明する。
まず、本発明を適用したネットワークシステムの構成例について、図1を参照して説明する。このネットワークシステムは、デジタル通信制御バスであるIEEE1394方式のシリアルデータバスライン(以下単にバスと称する)を介して、複数台の機器が接続してある。図1では、5台のAV機器10,20,30,40,50をバス1で接続した例を示してある。バス1に接続される機器としては、ここではそれぞれがIEEE1394方式のバスを接続するための端子を備えた機器としてあり、第1,第2の受像機10,20と、第1,第2,第3のビデオ機器30,40,50とを接続する。
第1,第2の受像機10,20は、それぞれモニタサブユニット11,21を備えて、外部から入力した映像データを映像表示手段に受像させるものである。第1の受像機10の場合には、チューナサブユニット12を備えて、そのチューナサブユニット12で受信して得た映像データの受像処理も行えるようにしてある。
第1,第2,第3のビデオ機器30,40,50については、例えばビデオテープなどの記録媒体を使用して、入力した映像データなどを記録すると共に、その媒体に記録された映像データなどを再生して、出力できる機器としてある。
なお、ここではバス1に接続されている各機器10〜50は、ユニットと呼ばれており、ユニット間においては、AV/C Command Transaction SetのAV/C Digital Interface Command Set General Specification(以下AV/Cと称する)で規定されているコマンドを用いて、各ユニットに記憶されている情報を相互に読み書きして、制御することが可能である。また、ユニットが有するそれぞれの機能はサブユニットと呼ばれている。そして、各機器(ユニット)内のサブユニットとバス1との通信は、各機器が備えるプラグ13,22,32,42,52を介して行われる。この場合、各プラグは仮想的に複数の出力部(仮想出力プラグ)や入力部(仮想入力プラグ)が構成されて、複数の機器と同時期に通信ができるように構成されている。
バス1に接続された各ユニットはノード(node)とも呼ばれ、ノードIDが設定してあり、そのノードIDによりバス上へのデータの発信元及び受信先が特定される。このノードIDは、バス1への新たな機器の接続があった場合や、或いは接続されていた機器が外されたことを検出したとき、バスリセットがかかって、再度ノードIDを設定し直す処理が行われる。従って、バスリセットが発生したときには、各機器のノードIDが変化する場合がある。
なお、本例の第1のビデオ機器30はアナログ出力部33を備え、第1の受像機10はアナログ入力部14を備え、このアナログ出力部33とアナログ入力部14とが、アナログ信号伝送ライン2で接続してあり、第1のビデオ機器30で記録媒体から再生した信号がアナログの映像信号である場合には、このアナログ信号伝送ライン2を介して第1の受像機10に伝送するようにしてある。バス1を介して伝送される映像データなどのデータについては、全てデジタルデータである。この場合、第1のビデオ機器30が扱う記録媒体では、1つの記録媒体上にデジタルデータの記録とアナログデータの記録とが混在しているときがあり、例えば1つの記録媒体の再生途中で、デジタルデータの再生からアナログ信号の再生に切換わる場合も存在する。
ここで、受像機及びビデオ機器の構成例について説明する。図2は、第1の受像機10の構成例を示すブロック図である。図示しないアンテナが接続されたチューナ101で、所定のチャンネルを受信して得たデジタル放送データを、受信回路部102に供給し、デコードする。デコードされた放送データを、多重分離部103に供給して、映像データと音声データに分離する。分離された映像データを映像生成部104に供給し、受像用の処理を行い、その処理された信号によりCRT駆動回路部105で陰極線管(CRT)106を駆動し、映像を表示させる。また、多重分離部103で分離された音声データを、音声信号再生部107に供給して、アナログ変換,増幅などの音声処理を行い、処理された音声信号をスピーカ108に供給して出力させる。
また、受像機10は、IEEE1394方式のバスに接続するためのインターフェース部109を備えて、IEEE1394方式のバス側からこのインターフェース部109に得られる映像データや音声データを、多重分離部103に供給して、CRT106での映像の表示及びスピーカ108からの音声の出力ができるようにしてある。また、チューナ101が受信して得た映像データや音声データを、多重分離部103からインターフェース部109に供給して、IEEE1394方式のバス側に送出できるようにしてある。また、外部からアナログ映像信号やアナログ音声信号を受信回路部102に入力させることもできる構成としてある。
受像機10での表示処理及びインターフェース部109を介した伝送処理については、中央制御ユニット(CPU)110の制御により実行される。CPU110には、制御に必要なプログラムなどが記憶されたROMであるメモリ111及びワークRAMであるメモリ112が接続してある。また、操作パネル114からの操作情報及び赤外線受光部115が受光したリモートコントロール装置からの制御情報が、CPU110に供給されて、その操作情報や制御情報に対応した動作制御を行うようにしてある。さらに、IEEE1394方式のバスを介してインターフェース部109が後述するAV/Cコマンドによりコマンドやレスポンスなどの制御データを受信した際には、そのデータはCPU110に供給して、CPU110が対応した動作制御を行えるようにしてある。インターフェース部109からのコマンドやレスポンスの送信についても、CPU110の制御で行われる。その制御に必要なデータについては、接続されたメモリ112などに記憶される。
図3は、デジタルビデオカセットレコーダ(DVCR)として構成された第1のビデオ機器30の構成例を示すブロック図である。
記録系の構成としては、ビデオ機器30に内蔵されたチューナ301で所定のチャンネルを受信して得たデジタル放送データを、MPEG(Moving Picture Expers Group)エンコーダ302に供給し、記録に適した方式、例えばMPEG2方式の映像データ及び音声データとする。受信した放送データがMPEG2方式の場合には、エンコーダ302での処理は行わない。
MPEGエンコーダ302でエンコードされたデータは、記録再生部303に供給して、記録用の処理を行い、処理された記録データを回転ヘッドドラム304内の記録ヘッドに供給して、テープカセット305内の磁気テープに記録させる。
外部から入力したアナログの映像信号及び音声信号については、アナログ/デジタル変換器306でデジタルデータに変換した後、MPEGエンコーダ302で例えばMPEG2方式の映像データ及び音声データとし、記録再生部303に供給して、記録用の処理を行い、処理された記録データを回転ヘッドドラム304内の記録ヘッドに供給して、テープカセット305内の磁気テープに記録させる。
再生系の構成としては、テープカセット305内の磁気テープを回転ヘッドドラム304で再生して得た信号を、記録再生部303で再生処理して映像データ及び音声データを得る。この映像データ及び音声データは、MPEGデコーダ307に供給して、例えばMPEG2方式からのデコードを行う。デコードされたデータは、デジタル/アナログ変換器308に供給して、アナログの映像信号及び音声信号とし、外部に出力させる。
また、ビデオ機器30は、IEEE1394方式のバスに接続するためのインターフェース部309を備えて、IEEE1394方式のバス側からこのインターフェース部309に得られる映像データや音声データを、記録再生部303に供給して、テープカセット305内の磁気テープに記録させることができるようにしてある。また、テープカセット305内の磁気テープから再生した映像データや音声データを、記録再生部303からインターフェース部309に供給して、IEEE1394方式のバス側に送出できるようにしてある。
このインターフェース部309を介した伝送時には、このビデオ機器30で媒体(磁気テープ)に記録する方式(例えば上述したMPEG2方式)と、IEEE1394方式のバス上で伝送されるデータの方式とが異なるとき、ビデオ機器30内の回路で方式変換を行うようにしても良い。
ビデオ機器30での記録処理や再生処理、及びインターフェース部309を介した伝送処理については、中央制御ユニット(CPU)310の制御により実行される。CPU310には、ワークRAMであるメモリ311が接続してある。また、操作パネル312からの操作情報及び赤外線受光部313が受光したリモートコントロール装置からの制御情報が、CPU310に供給されて、その操作情報や制御情報に対応した動作制御を行うようにしてある。さらに、IEEE1394方式のバスを介してインターフェース部309が後述するAV/Cコマンドによるコマンドやレスポンスなどの制御データを受信した際には、そのデータはCPU310に供給して、CPU310が対応した動作制御を行えるようにしてある。インターフェース部309からのコマンドやレスポンスの送信についても、CPU310の制御で行われる。その制御に必要なデータについては、接続されたメモリ311などに記憶される。
なお、第2の受像機20、第2,第3のビデオ機器40,50の構成についてはここでは説明しないが、図2,図3に示した受像機10,ビデオ機器30と基本的な構成は同じである。
次に、各機器10〜50を接続したIEEE1394方式のバス1でのデータ伝送状態について説明する。
図4は、IEEE1394で接続された機器のデータ伝送のサイクル構造を示す図である。IEEE1394では、データは、パケットに分割され、125μSの長さのサイクルを基準として時分割にて伝送される。このサイクルは、サイクルマスタ機能を有するノード(バスに接続ささたいずれかの機器)から供給されるサイクルスタート信号によって作り出される。アイソクロナスパケットは、全てのサイクルの先頭から伝送に必要な帯域(時間単位であるが帯域と呼ばれる)を確保する。このため、アイソクロナス伝送では、データの一定時間内の伝送が保証される。ただし、受信側からの確認(アクノリッジメント)は行われず、伝送エラーが発生した場合は、保護する仕組みが無く、データは失われる。各サイクルのアイソクロナス伝送に使用されていない時間に、アービトレーションの結果、バスを確保したノードが、アシンクロナスパケットを送出するアシンクロナス伝送では、アクノリッジ、およびリトライを用いることにより、確実な伝送は保証されるが、伝送のタイミングは一定とはならない。
図4に示した1通信サイクル中の各アイソクロナスパケット(Isoパケット)には、それぞれ個別のチャンネル番号0,1,2‥‥63を付与して、複数のIso伝送データを区別できるようにしてある。これがアイソクロナス用チャンネルであり、ここでは64チャンネル用意されていて、チャンネル番号63の63chはブロードキャスト用チャンネルであり、どの機器でも受信ができるチャンネルであり、その他のチャンネルはコネクションを設立させた上で特定の機器間で伝送されるチャンネルである。なお、ブロードキャスト用チャンネルとして63ch以外のチャンネルを使用しても良い。
Isoパケットの通信が終了した後、次のサイクルスタートパケットまでの期間が、アシンクロナスパケット(Asyncパケット)の伝送に使用される。従って、Asyncパケットが伝送できる期間は、そのときのIsoパケットの伝送チャンネル数により変化する。また、Isoパケットは、1通信サイクル毎に予約した帯域(チャンネル数)が確保される伝送方式であるが、受信側からの確認は行わない。Asyncパケットで伝送する場合には、受信側からアクノリッジメント(Ack)のデータを返送させて、伝送状態を確認しながら確実に伝送させる。
所定のノードがアイソクロナス伝送を行う為には、そのノードがアイソクロナス機能に対応していなければならない。また、アイソクロナス機能に対応したノードの少なくとも1つは、サイクルマスタ機能を有していなければならない。更に、IEEE1394シリアスバスに接続されたノードの中の少なくとも1つは、アイソクロナスリソースマネージャの機能を有していなければならない。
また、IEEE1394方式のバス1で接続して構成されるネットワークシステムでは、各機器に個別に付与されたノードユニークIDの他に、ノードIDを持つようにしてある。このノードIDは、バス1への機器の新規の接続又はバス1からの機器の取り外し等があって、バスリセットがあった際に、ネットワーク上に設けられたコントローラの制御で各機器から収集するようにしてある。
IEEE1394は、ISO/IEC13213で規定された64ビットのアドレス空間を有するCSR(Control&Status Register)アーキテクチャに準拠している。図5は、CSRアーキテクチャのアドレス空間の構造を説明する図である。上位16ビットは、各IEEE1394上のノードを示すノードIDであり、残りの48ビットが各ノードに与えられたアドレス空間の指定に使われる。この上位16ビットは更にバスIDの10ビットと物理ID(狭義のノードID)の6ビットに分かれる。全てのビットが1となる値は、特別な目的で使用されるため、1023個のバスと63個のノードを指定することができる。ノードIDは、バスリセットがあった際に、付与し直される。バスリセットは、バス1に接続される機器の構成が変化した場合に発生する。例えば、バス1に接続されたいずれか1台の機器が外されたり、また新規にバス1に機器が接続されことを認識したとき、バスリセットが実行される。
下位48ビットにて規定されるアドレス空間のうちの上位20ビットで規定される空間は、2048バイトのCSR特有のレジスタやIEEE1394特有のレジスタ等に使用される初期化レジスタスペース(Initial Register Space)、プライベートスペース(Private Space)、および初期化メモリスペース(Initial Memory Space)などに分割され、下位28ビットで規定される空間は、その上位20ビットで規定される空間が、初期化レジスタスペースである場合、コンフィギレーションROM(Configuration read only memory)、ノード特有の用途に使用される初期化ユニットスペース(Initial Unit Space)、プラグコントロールレジスタ(Plug Control Register(PCRs))などとして用いられる。
図6は、主要なCSRのオフセットアドレス、名前、および働きを説明する図である。図6のオフセットとは、初期化レジスタスペースが始まるFFFFF0000000h(最後にhのついた数字は16進表示であることを表す)番地よりのオフセットアドレスを示している。オフセット220hを有するバンドワイズアベイラブルレジスタ(Bandwidth Available Register)は、帯域割当て用のレジスタであり、アイソクロナス通信に割り当て可能な帯域を示しており、アイソクロナスリソースマネージャとして動作しているノードの値だけが有効とされる。すなわち、図5のCSRは、各ノードが有しているが、バンドワイズアベイラブルレジスタについては、アイソクロナスリソースマネージャのものだけが有効とされる。換言すれば、バンドワイズアベイラブルレジスタは、実質的に、アイソクロナスリソースマネージャだけが有する。バンドワイズアベイラブルレジスタには、アイソクロナス通信に帯域を割り当てていない場合に最大値が保存され、帯域を割り当てる毎にその値が減少していく。
オフセット224h乃至228hのチャンネルアベイラブルレジスタ(Channels Available Register)は、チャンネル割当て用のレジスタであり、その各ビットが0乃至63番のチャンネル番号のそれぞれに対応し、ビットが0である場合には、そのチャンネルが既に割り当てられていることを示している。アイソクロナスリソースマネージャとして動作しているノードのチャンネルアベイラブルレジスタのみが有効である。
図5に戻り、初期化レジスタスペース内のアドレス200h乃至400hに、ジェネラルROM(read only memory)フォーマットに基づいたコンフィギレーションROMが配置される。コンフィギレーションROMには、バスインフォブロック、ルートディレクトリ、およびユニットディレクトリが配置される。
インターフェースを介して、機器の入出力を制御する為、ノードは、図5のイニシャルユニットスペース内のアドレス900h乃至9FFhに、IEC1883に規定されるPCR(Plug Control Register)を有する。これは、論理的にアナログインターフェースに類似した信号経路を形成するために、プラグという概念を実体化したものである。図7は、PCRの構成を説明する図である。PCRは、出力プラグを表すoPCR(output Plug Control Register)、入力プラグを表すiPCR(input Plug Control Register)を有する。また、PCRは、各機器固有の出力プラグまたは入力プラグの情報を示すレジスタoMPR(output Master Plug Register)とiMPR(input Master Plug Register)を有する。各機器は、oMPRおよびiMPRをそれぞれ複数持つことはないが、個々のプラグに対応した。PCRおよびiPCRを、機器の能力によって複数持つことが可能である。図7に示されるPCRは、それぞれ31個のoPCRおよびiPCRを有する。アイソクロナスデータの流れは、これらのプラグに対応するレジスタを操作することによって制御される。
図8は、バスインフォブロック、ルートディレクトリ、及びユニットディレクトリの詳細を示す図である。バスインフォブロック内のカンパニーIDには、機器の製造者を示すID番号が格納される。チップIDには、その機器固有の、他の機器と重複のない世界で唯一のIDが記憶される。このカンパニーIDとチップIDを使用して、各機器に固有の識別番号であるノードユニークIDが生成される。また、IEC1833の規格により、IEC1833を満たした機器のユニットディレクトリのユニットスペックIDの、ファーストオクテットには00hが、セカンドオクテットにはA0hが、サードオクテットには2Dhが、それぞれ書き込まれる。更に、ユニットスイッチバージョン(Unit sw version)のファーストオクテットには01hが、サードオクテットのLSB(Least Significant Bit)には、1が書き込まれる。
図9は、oMPR,oPCR,iMPR、およびiPCRの構成を示す図である。図9AはoMPRの構成を、図9BはoPCRの構成を、図9CはiMPRの構成を、図9DはiPCRの構成を、それぞれ示す。oMPRおよびiMPRのMSB側の2ビットのデータレートの能力(data rate capability)には、その機器が送信または受信可能なアイソクロナスデータの最大伝送速度を示すコードが格納される。oMPRの同報チャンネルベース(broadcast channel base)は、ブロードキャスト出力(同報出力)に使用されるチャンネルの番号を規定する。
oMPRのLSB側の5ビットの出力プラグ数(number of output plugs)には、その機器が有する出力プラグ数、すなわちoPCRの数を示す値が格納される。iMPRのLSB側の5ビットの入力プラグ数(number of input plugs)には、その機器が有する入力プラグ数、すなわちiPCRの数を示す値が格納される。主拡張フィールド及び補助拡張フィールドは、将来の拡張の為に定義された領域である。
oPCRおよびiPCRのMSBのオンライン(on−line)は、プラグの使用状態を示す。即ち、その値が1であればそのプラグがオンラインであり、0であればオフラインであることを示す。oPCRおよびiPCRの同報コネクションカウンタ(broadcast connection counter)の値は、同報コネクションの有り(1)または無し(0)を表す。oPCRおよびiPCRの6ビット幅を有するポイントトウポイントコネクションカウンタ(point−to−point connection counter)が有する値は、そのプラグが有するポイントトウポイントコネクション(point−to−point connection)の数を表す。ポイントトウポイントコネクションは、特定の1つのノードと他の特定のノード間だけで伝送を行うためのコネクションである。
oPCRおよびiPCRの6ビット幅を有するチャンネル数(channel number)が有する値は、そのプラグが接続されるアイソクロナスチャンネルの番号を示す。oPCRの2ビット幅を有するデータレート(data rate)の値は、そのプラグから出力されるアイソクロナスデータのパケットの現実の伝送速度を示す。oPCRの4ビット幅を有するオーバーヘッドID(overhead ID)に格納されるコードは、アイソクロナス通信のオーバーのバンド幅を示す。oPCRの10ビット幅を有するペイロード(payload)の値は、そのプラグが取り扱うことができるアイソクロナスパケットに含まれるデータの最大値を表す。
図10はプラグ、プラグコントロールレジスタ、およびアイソクロナスチャンネルの関係を表す図である。ここではIEEE1394方式のバスに接続された機器を、AVデバイス(AV−device)901〜903として示してある。AVデバイス903のoMPRにより伝送速度とoPCRの数が規定されたoPCR〔0〕〜oPCR〔2〕のうち、oPCR〔1〕によりチャンネルが指定されたアイソクロナスデータは、IEEE1394シリアスバスのチャンネル#1に送出される。AVデバイス901のiMPRにより伝送速度とiPCRの数が規定されたiPCR〔0〕とiPCR〔1〕のうち、入力チャンネル#1が伝送速度とiPCR〔0〕により、AVデバイス901は、IEEE1394シリアスバスのチャンネル#1に送出されたアイソクロナスデータを読み込む。同様に、AVデバイス902は、oPCR〔0〕で指定されたチャンネル#2に、アイソクロナスデータを送出し、AVデバイス901は、iPRC〔1〕にて指定されたチャンネル#2からそのアイソクロナスデータを読み込む。
このようにして、IEEE1394シリアスバスによって接続されている機器間でデータ伝送が行われるが、本例のシステムでは、このIEEE1394シリアスバスを介して接続された機器のコントロールのためのコマンドとして規定されたAV/Cコマンドセットを利用して、各機器のコントロールや状態の判断などが行えるようにしてある。次に、このAV/Cコマンドセットについて説明する。
まず、本例のシステムで使用されるAV/Cコマンドセットにおけるサブユニット アイデンティファイヤ ディスクリプタ(Subunit Identifier Descriptor)のデータ構造について、図11〜図14を参照しながら説明する。図11は、サブユニットアイデンティファイヤディスクリプタのデータ構造を示している。図11に示すように、サブユニットアイデンティファイヤディスクリプタの階層構造のリストにより形成されている。リストとは、例えば、チューナであれば、受信できるチャンネル、ディスクであれば、そこに記録されている曲などを表す。階層構造の最上位層のリストはルートリストと呼ばれており、例えば、リスト0がその下位のリストに対するルートとなる。他のリストも同様にルートリストとなる。ルートリストはオブジェクトの数だけ存在する。ここで、オブジェクトとは、例えば、バスに接続されたAV機器がチューナである場合、デジタル放送における各チャンネル等のことである。また、1つの階層の全てのリストは、共通の情報を共有している。
図12は、ジェネラル サブユニット ディスクリプタ(The General Subunit Identifier Descriptor)のフォーマットを示している。サブユニット ディスクリプタには、機能に関しての属性情報が内容として記述されている。ディスクリプタ長(descriptor length)フィールドは、そのフィールド自身の値は含まれていない。ジェネレーションID(generation ID)は、AV/Cコマンドセットのバージョンを示しており、その値は例えば“00h”(hは16進を表す)となっている。ここで、“00h”は、例えば図13に示すように、データ構造とコマンドがAV/C ジェネラル規格(General Specification)のバージョン3.0であることを意味している。また、図13に示すように、“00h”を除いた全ての値は、将来の仕様のために予約確保されている。
リストIDサイズ(size of list ID)は、リストIDのバイト数を示している。オブジェクトIDサイズ(size of object ID)は、オブジェクトIDのバイト数を示している。オブジェクトポジションサイズ(size of object position)は、制御の際、参照する場合に用いられるリスト中の位置(バイト数)を示している。ルートオブジェクトリスト数(number of root object list)は、ルートオブジェクトリストの数を示している。ルートオブジェクトリストID(root object list id)は、それぞれ独立した階層の最上位のルートオブジェクトリストを識別するためのIDを示している。
サブユニットに属するデータ長(subunit dependent length)は、後続のサブユニットに属するデータフィールド(subunit dependent information)フィールドのバイト数を示している。サブユニットに属するデータフィールドは、機能に固有の情報を示すフィールドである。製造メーカ特有のデータ長(manufacturer dependent length)は、後続の製造メーカ特有のデータ(manu facturer dependent information)フィールドのバイト数を示している。製造メーカ特有のデータは、ベンダー(製造メーカ)の仕様情報を示すフィールドである。尚、ディスクリプタの中に製造メーカ特有のデータがない場合は、このフィールドは存在しない。
図14は、図12で示したリストIDの割り当て範囲を示している。図14に示すように、“0000h乃至0FFFh”および“4000h乃至FFFFh”は、将来の仕様のための割り当て範囲として予約確保されている。“1000h乃至3FFFh”および“10000h乃至リストIDの最大値”は、機能タイプの従属情報を識別するために用意されている。
次に、本例のシステムで使用されるAV/Cコマンドセットについて、図15〜図20を参照しながら説明する。図15は、AV/Cコマンドセットのスタックモデルを示している。図15に示すように、物理レイヤ911、リンクレイヤ912、トランザクションレイヤ913、およびシリアスバスマネジメント914は、IEEE1394に準拠している。FCP(Function Control Protocol)915は、IEC61883に準拠している。AV/Cコマンドセット916は、1394TAスペックに準拠している。
図16は、図15のFCP85のコマンドとレスポンスを説明するための図である。FCPはIEEE1394方式のバス上の機器(ノード)の制御を行うためのプロトコルである。図16に示すように、制御する側がコントローラで、制御される側がターゲットである。FCPのコマンドの送信またはレスポンスは、IEEE1394のアシンクロナス通信のライトトランザクションを用いて、ノード間で行われる。データを受け取ったターゲットは、受信確認のために、アクノリッジをコントローラに返す。
図17は、図16で示したFCPのコマンドとレスポンスの関係をさらに詳しく説明するための図である。IEEE1394バスを介してノードAとノードBが接続されている。ノードAがコントローラで、ノードBがターゲットである。ノードA、ノードBともに、コマンドレジスタおよびレスポンスレジスタがそれぞれ、512バイトずつ準備されている。図17に示すように、コントローラがターゲットのコマンドレジスタ923にコマンドメッセージを書き込むことにより命令を伝える。また逆に、ターゲットがコントローラのレスポンスレジスタ922にレスポンスメッセージを書き込むことにより応答を伝えている。以上2つのメッセージに対して、制御情報のやり取りを行う。FCPで送られるコマンドセットの種類は、後述する図18のデータフィールド中のCTSに記される。
図18は、AV/Cコマンドのアシンクロナス転送モードで伝送されるパケットのデータ構造を示している。AV/Cコマンドセットは、AV機器を制御するためのコマンドセットで、CTS(コマンドセットのID)=“0000”である。AV/Cコマンドフレームおよびレスポンスフレームが、上記FCPを用いてノード間でやり取りされる。バスおよびAV機器に負担をかけないために、コマンドに対するレスポンスは、100ms以内に行うことになっている。図18に示すように、アシンクロナスパケットのデータは、水平方向32ビット(=1 quadlet)で構成されている。図中上段はパケットのヘッダ部分を示しており、図中下段はデータブロックを示している。ディスティネーション(destination ID)は、宛先を示している。
CTSはコマンドセットのIDを示しており、AV/CコマンドセットではCTS=“0000”である。Cタイプ/レスポンス(ctype/response)のフィールドは、パケットがコマンドの場合はコマンドの機能分類を示し、パケットがレスポンスの場合はコマンドの処理結果を示す。コマンドは大きく分けて、(1)機能を外部から制御するコマンド(CONTROL)、(2)外部から状態を問い合わせるコマンド(STATUS)、(3)制御コマンドのサポートの有無を外部から問い合わせるコマンド(GENERAL INQUIRY(opcodeのサポートの有無)およびSPECIFIC INQUIRY(opcodeおよびoperandsのサポートの有無))、(4)状態の変化を外部に知らせるよう要求するコマンド(NOTIFY)の4種類が定義されている。
レスポンスはコマンドの種類に応じて返される。コントロール(CONTROL)コマンドに対するレスポンスには、「実装されていない」(NOT IMPLEMENTED)、「受け入れる」(ACCEPTED)、「拒絶](REJECTED)、および「暫定」(INTERIM)がある。ステータス(STATUS)コマンドに対するレスポンスには、「実装されていない」(NOT IMPLEMENTED)、「拒絶」(REJECTED)、「移行中」(IN TRANSITION)、および「安定」(STABLE)がある。コマンドのサポートの有無を外部から問い合わせるコマンド(GENERAL INQUIRYおよびSPECIFIC INQUIRY)に対するレスポンスには、「実装されている」(IMPLEMENTED)、および「実装されていない」(NOT IMPLEMENTED)がある。状態の変化を外部に知らせるよう要求するコマンド(NOTIFY)に対するレスポンスには、「実装されていない」(NOT IMPLEMENTED)、「拒絶」(REJECTED)、「暫定」(INTERIM)および「変化した」(CHANGED)がある。
サブユニットタイプ(subunit type)は、機器内の機能を特定するために設けられており、例えば、テープレコーダ/プレーヤ(tape reccorder/player),チューナ(tuner)等が割り当てられる。このサブユニットタイプには、機器に対応した機能の他に、他の機器に情報を公開するために使用されるサブユニットであるBBS(ブリテンボードサブユニット)についても割り当てがある。同じ種類のサブユニットが複数存在する場合の判別を行うために、判別番号としてサブユニットID(subunit id)でアドレッシングを行う。オペレーションのコードであるオペコード(opcode)はコマンドを表しており、オペランド(operand)はコマンドのパラメータを表している。必要に応じて付加されるフィールド(dditional operands)も用意されている。オペランドの後には、0データなどが必要に応じて付加される。データCRC(Cyclic Reduncy Check)はデータ伝送時のエラーチェックに使われる。
図19は、AV/Cコマンドの具体例を示している。図19の左側は、コマンドタイプ/レスポンスの具体例を示している。図中上段がコマンドを表しており、図中下段がレスポンスを表している。“0000”にはコントロール(CONTROL)、“0001”にはステータス(STATUS)、“0010”にはスペシフィックインクワイリ(SPECIFIC INQUIRY)、“0011”にはノティファイ(NOTIFY)、“0100”にはジェネラルインクワイリ(GENERAL INQUIRY)が割り当てられている。“0101乃至0111”は将来の仕様のために予約確保されている。また、“1000”には実装なし(NOT INPLEMENTED)、“1001”には受け入れ(ACCEPTED)、“1010”には拒絶(REJECTED)、“1011”には移行中(IN TRANSITION)、“1100”には実装あり(IMPLEMENTED/STABLE)、“1101”には状態変化(CHNGED)、“1111”には暫定応答(INTERIM)が割り当てられている。“1110”は将来の仕様のために予約確保されている。
図19の中央は、サブユニットタイプの具体例を示している。“00000”にはビデオモニタ、“00011”にはディスクレコーダ/プレーヤ、“00100”にはテープレコーダ/プレーヤ、“00101”にはチューナ、“00111”にはビデオカメラ、“01010”にはBBS(Bulletin Board Subunit)と称される掲示板として使用されるサブユニット、“11100”には製造メーカ特有のサブユニットタイプ(Vender unique)、“11110”には特定のサブユニットタイプが割り当てられている。尚、“11111”にはユニットが割り当てられているが、これは機器そのものに送られる場合に用いられ、例えば電源のオンオフなどが挙げられる。
図19の右側は、オペコード(オペレーションコード:opcode)の具体例を示している。各サブユニットタイプ毎にオペコードのテーブルが存在し、ここでは、サブユニットタイプがテープレコーダ/プレーヤの場合のオペコードを示している。また、オペコード毎にオペランドが定義されている。ここでは、“00h”には製造メーカ特有の値(Vender dependent)、“50h”にはサーチモード、“51h”にはタイムコード、“52h”にはATN、“60h”にはオープンメモリ、“61h”にはメモリ読出し、“62h”にはメモリ書込み、“Clh”にはロード、“C2h”には録音、“C3h”には再生、“C4h”には巻き戻しが割り当てられている。
図20は、AV/Cコマンドとレスポンスの具体例を示している。例えば、ターゲット(コンスーマ)としての再生機器に再生指示を行う場合、コントローラは、図20Aのようなコマンドをターゲットに送る。このコマンドは、AV/Cコマンドセットを使用しているため、CTS=“0000”となっている。ctype(コマンドタイプ)には、機器を外部から制御するコマンド(CONTROL)を用いるため、cタイプ=“0000”となっている(図19参照)。サブユニットタイプはテープレコーダ/プレーヤであることより、サブユニットタイプ=“00100”となっている(図19参照)。idはID0の場合を示しており、id=000となっている。オペコードは再生を意味する“C3h”となっている(図19参照)。オペランドは順方向(FORWARD)を意味する“75h”となっている。そして、再生されると、ターゲットは図20Bのようなレスポンスをコントローラに返す。ここでは、「受け入れ」(accepted)がレスポンスに入るため、レスポンス=“1001”となっている(図19参照)。レスポンスを除いて、他は図20Aと同じであるので説明は省略する。
次に、本例の構成にて実行される処理を、図21以降を参照して説明する。まず、図1に示した第1のビデオ機器30からバス1に出力されるビデオデータを、第1の受像機10で入力させて受像させる場合の処理例を説明する。この場合、信号源である第1のビデオ機器30側では、プリセットエントリと称される番号を入力側の機器毎に設定して、そのプリセットエントリの番号を使用して管理ができるようにしてある。
図21は、このプリセットエントリを第1の受像機10から第1のビデオ機器30に問い合わせる場合の例を示した図である。まず第1の受像機10は、第1のビデオ機器30に対して、AV/Cのコマンドの形式のアウトプットプリセットコントロールコマンドを送り(ステップS11)、そのコマンドに対する第1のビデオ機器30からのレスポンス(ステップS12)で、プリセットエントリの番号のデータを得る。第1のビデオ機器30内の制御部では、このプリセットエントリの番号を管理することで、この第1のビデオ機器30から出力されるデータを入力している機器からの指令に基づいた処理が実行できるようにしてある。
第1のビデオ機器30で設定されるプリセットエントリの番号については、このビデオ機器30から出力されるように設定(プリセット)された機器毎に設定される番号であり、1台の機器30からのデータを同時に入力できる機器の最大の台数がプリセットエントリの番号の最大値である。即ち、例えば第1のビデオ機器30として映像データのプリセットエントリが3個設定できる。例えば図22に示すように、プリセットエントリの番号1,2,3の3つのプリセットエントリの番号を設定して、それぞれのプリセットエントリの番号毎に、出力側の機器のノードIDを記憶するようにしてある。ここでは、プリセットエントリ番号1として第1の受像機10のノードIDを記憶させてあり、プリセットエントリ番号2として第2の受像機20のノードIDを記憶させた例としてある。
図23は、アウトプットプリセットコントロールコマンドの構成(図23の左側)と、そのコマンドに対するレスポンスの構成(図23の右側)を示す図である。なお、レスポンスで〔<<<〕と示す部分は、コマンドに配置されたデータがそのまま返送される部分を示す(以下に説明する他の図の場合も同様)。
まず、アウトプットプリセットコントロールコマンドについて説明すると、〔オペコード〕の8ビットのデータで該当するコマンドであることを示す〔アウトプットプリセット〕のコントロールコマンドの値を送り、以下〔オペランド(0)〕の8ビットの区間にプリセットエントリの番号のデータを配置し、〔オペランド(1)〕の8ビット区間の先頭の1ビットに〔0〕を配置し、残りの区間に、7ビットで表現される16進数での最大値である〔0x7F〕の値を配置する。なお、0xが付与されたデータ値は、16進数値(即ち1つの桁が0,1,2‥‥9,A,B‥‥E,Fの16値で示される値)であることを示し、末尾にhを付与して示す16進数値と同じである。
〔オペランド(1)〕及び〔オペランド(2)〕には、ディスティネーション機器(入力側となる機器)のノードIDであるディスティネーションIDを配置する。〔オペランド(3)〕及び〔オペランド(4)〕には、ディスティネーション機器(入力側となる機器)のサブユニットに関するデータと、ディスティネーション機器のサブユニットプラグに関するデータを、シグナルディスティネーションのデータとして配置する。
そして、このコマンドに対するレスポンスでは、〔オペランド(0)〕以外の区間は、コマンドと同じデータが返送され、〔オペランド(0)〕の区間には、該当するディスティネーション機器に対してプリセットされるプリセットエントリの番号のデータが配置される。
なお、このコマンドが伝送されたときには、図22に示すプリセットエントリ番号とノードIDの対応だけでなく、コマンドで示される他のデータについてもソース機器内の制御部が記憶しておき、このソース機器からのデータを受信しているディスティネーション機器での入力プラグなどの設定状態を記憶しておく。そして、ソース機器では、そのプリセットされたプリセットエントリ番号などを指示した上で各種コントロールコマンドを送信することで、ディスティネーション機器からソース機器に対して各種動作の直接的な指示が可能になる。
また、第1の受像機10(ソース機器)から第1のビデオ機器30(ディスティネーション機器)に対して、何台プリセットできるのか問い合わせる場合には、アウトプットプリセットステータスコマンドを送る。図24は、このアウトプットプットプリセットステータスコマンドの構成(図24の左側)と、そのコマンドに対するレスポンスの構成(図24の右側)を示したものである。以下、その構成を説明すると、コマンドとしては、〔オペコード〕のデータで該当するコマンドであることを示す〔アウトプットプリセット〕のステータスコマンドの値を送り、〔オペランド(0)〕の値としては、プリセットエントリーの番号のデータを配置する。〔オベランド(1)〕〜〔オペランド(4)〕としては、それぞれ16進数での最大値である〔0xFF〕の値として、問い合わせたいフィールドであることを示すようにする。
このコマンドに対するディスティネーション機器からのレスポンスとしては、〔オペランド(1)〕及び〔オペランド(2)〕の区間に、ディスティネーション機器のノードIDを配置し、〔オペランド(3)〕及び〔オペランド(4)〕の区間に、ディスティネーション機器のサブユニットに関するデータと、ディスティネーション機器のサブユニットプラグに関するデータを、シグナルディスティネーションのデータとして配置する。その他の区間は、コマンドのデータがそのまま返送される。
なお、このアウトプットプリセットステータスコマンドでは、コマンドのプリセットエントリのデータである〔オペランド(0)〕の区間に、最大値などの所定の値のデータが配置されたときには、レスポンスの該当する区間で、設定できるプリセットエントリ番号の最大値のデータを送り、何台接続できるか示すようにしてある。
また、このようにプリセットされたデータをソース機器が判断した上で、入力を切り換える必要があると判断したとき、ソース機器からのコマンドの伝送で、ディスティネーション機器での入力選択などの制御も行えるようにしてある。図25は、この場合のインプットセレクトコントロールコマンドの構成(図25の左側)と、そのレスポンス(図25の右側)の構成を示した図である。
まずインプットセレクトコントロールコマンドについて説明すると、〔オペコード〕のデータで該当するコマンドであることを示す〔インプットセレクト〕のコントロールコマンドの値を送り、〔オペランド(0)〕にサブファンクションのデータを配置する。このサブファンクションのデータは、そのときに伝送されるコマンドによる入力変更指示が、その入力への変更を直ちに実行させる指示である場合と、その入力への変更があったことをディスティネーション機器に伝えて、ディスティネーション機器では入力変更をしないで待機する指示である場合との、少なくとも2つの状態が存在する。
〔オペランド(1)〕の区間は、前半の4ビット区間が未定義とされ、後半の4ビット区間に、16進数での最大値である〔0xF〕を配置する。〔オペランド(2)〕及び〔オペランド(3)〕には、出力側のノードIDのデータを配置する。〔オペランド(4)〕には、ユニットの出力プラグに関するデータを配置し、〔オペランド(5)〕には入力プラグに関するデータを配置する。〔オペランド(6)〕及び〔オペランド(7)〕には、ディスティネーション機器のサブユニットに関するデータと、ディスティネーション機器のサブユニットプラグに関するデータを、シグナルディスティネーションのデータとして配置する。〔オペランド(8)〕の区間は未定義とされる。なお、〔オペランド(5)〕に対して最大値〔0xFF〕がセットされた場合、ターゲット(即ち受信側の機器)がインプットプラグ番号を決めて、その決められたインプットプラグ番号をレスポンスで返送される。
このコマンドに対するレスポンスでは、〔オペランド(1)〕以外の区間は、コマンドと同じデータが返送され、〔オペランド(1)〕の区間の後半の4ビットには、ディスティネーション機器の状態に関するデータであるリザルトステータス(result status)が配置される。例えば、ディスティネーション機器を第1のビデオ機器30としたとき、その第1のビデオ機器30で映像データなどの録画動作中であるとき、そのことを示すデータが配置される。
また、例えばディスティネーション機器側での入力選択の設定状態を問い合わせるインプットセレクトステータスコマンドについても用意してある。図26は、インプットセレクトステータスコマンドの構成(図26の左側)と、そのレスポンス(図26の右側)の構成を示した図である。
まず、インプットセレクトステータスコマンドについて説明すると、〔オペコード〕のデータで該当するコマンドであることを示す〔インプットセレクト〕のステータスコマンドの値を送り、〔オペランド(0)〕〜〔オペランド(4)〕と〔オペランド(6)〕には、問い合わせたいフィールドであることを示す最大値〔0xFF〕を配置し、〔オペランド(7)〕には、固定値〔0xFE〕を配置する。〔オペランド(8)〕は未定義である。
このレスポンスとしては、〔オペランド(1)〕の区間の前半の4ビットにその機器の入力状態を示すステータスのデータを配置し、後半の4ビットに固定値〔0xF〕を配置する。ステータスのデータでは、有効データを入力中か否か示される。〔オペランド(2)〕及び〔オベランド(3)〕の区間には、出力側のノードIDのデータを配置する。〔オペランド(4)〕の区間には、ユニットの出力プラグに関するデータを配置する。〔オペランド(6)〕及び〔オペランド(7)〕には、ソース機器のサブユニットに関するデータと、ソース機器のサブユニットプラグに関するデータを、ジグナルディスティネーションのデータとして配置する。このようなステータスコマンドとそのレスポンスを使用することで、入力状態をソース機器から問い合わせることもできる。
ここで、インプットセレクトコントロールコマンドに用意されたサブファンクションの使用例を、図27を参照して説明する。ここでは、第1の受像機10で第1のビデオ機器30から出力される映像データの入力と、第2のビデオ機器40から出力される映像データの入力とが選択的に実行されるものとしてある。即ち、あるタイミングで、第1のビデオ機器30で記録媒体の再生操作が行われて、第1の受像機10では、その再生データがバス1を介して供給される入力プラグが選択されて、再生映像データのモニタが開始されたとする(ステップS21)。その後、第1のビデオ機器30での再生が継続した状態で、第2のビデオ機器40でも記録媒体の再生操作が行われて、第1の受像機10では、その再生データが供給される入力プラグを選択するように切換わって、第2のビデオ機器40からの映像データのモニタに切換わったとする(ステップS22)。
この状態で、第1のビデオ機器30で再生している媒体に記録された映像データが、デジタル映像データからアナログ映像信号に切換わったとする。このとき、第1のビデオ機器30がアナログ映像信号をデジタル映像データに変換する機能が存在しないとき、第1のビデオ機器30から第1の受像機10に対して、入力プラグをアナログ入力部14に切り換える指示が必要になる。この指示がリモートインプットセレクトコントロールコマンドとして、第1のビデオ機器30から第1の受像機10に対して伝送される(ステップS23)。
ここで、このコマンドでは、リクエストレベルとして、該当する切換えに切換えさせずに待機させるレベルとしておく。このようにすることで、ステップS23のコマンドが伝送された段階では、第1の受像機10で入力が切換わることがなく、第2のビデオ機器40からの映像のモニタを邪魔することがない。そして、その後の何らかの操作で、第1の受像機10で第1のビデオ機器30に入力を切り換えた段階で、ステップS23のコマンドにより第1のビデオ機器30からの入力が変更されたデータに基づいて、バス1を経由した入力プラグの代わりにアナログ入力部14が選択されて、第1のビデオ機器30からの映像信号のモニタが正しく実行できるようになる。アナログ入力からデジタル入力に切り換わった場合にも、同様に処理できる。また、バス1を経由した経路の中で変更がある場合に適用できる。
次に、本発明の第2の実施の形態を、図28〜図34を参照して説明する。この例でも、デジタル通信制御バスであるIEEE1394方式のシリアルデータバスライン(以下単にバスと称する)を介して、複数台の機器が接続してある。図28では、3台のAV機器60,70,80をバス1で接続した例を示してある。バス1に接続される機器としては、ここではそれぞれがIEEE1394方式のバスを接続するための端子を備えた機器としてあり、第1,第2のディスク機器60,70と、アンプ装置80とを接続する。
第1,第2のディスク機器60,70は、それぞれディスク再生サブユニット61とディスク記録サブユニット71を備えて、オーディオデータなどが記録されたディスクからのそのデータの再生と、入力したオーディオデータなどのディスクへの記録が行えるようにしてある。アンプ装置80は、アンプサブユニット81を備えて、入力したオーディオデータの増幅などの処理を行った後、スピーカ(図示せず)に供給して出力させるものである。
各機器60,70,80は、IEEE1394方式のバス1と接続するためのプラグ62,72,82を備える。ここでは、各機器60,70,80の詳細な構成については省略するが、第1の実施の形態で図2,図3を参照して説明した機器10,30の場合と同様に、IEEE1394方式のバス1と通信を行うためのインターフェース部と、そのインターフェース部を制御するCPUと制御プログラムなどを記憶するメモリなどを備えて、バス1を介した通信制御処理が実現されるものである。各機器60,70,80が備えるプラグ62,72,82についても、バス1に接続された複数の機器と通信を行うための複数の仮想入力プラグ及び複数の仮想出力プラグで構成される。IEEE1394方式のバス1で通信が行われるフレーム周期や、そのバス1での伝送に適用したAV/Cコマンドの伝送処理についても、第1の実施の形態で説明した処理と同様である。
そして、ソース機器とディスティネーション機器との間のコントロールは、上述した第1の実施の形態で説明した各種コマンドの伝送で行われるが、本例の場合には、さらにシグナルソースステータスコマンドを用意して、ソース機器からの出力ができないときに、他のソース機器を指定できるようにしてある。
図29は、このシグナルソースステータスコマンドの構成(図29の左側)と、そのレスポンスの構成(図29の右側)とを示す図である。そのコマンドの構成を説明すると、〔オペコード〕のデータで該当するコマンドであることを示す〔シグナルソース〕のステータスコマンドの値を送り、〔オペランド(0)〕〜〔オペランド(2)〕には、問い合わせるフィールドであることを示す一定値〔0xFE〕を配置する。そして、〔オペランド(3)〕及び〔オペランド(4)〕には、シグナルディスティネーションのデータを配置する。このシグナルディスティネーションのデータでは、ユニットのアウトプットプラグ又はサブユニットのディスティネーションプラグが示される。
このレスポンスとしては、〔オペランド(0)〕の先頭の3ビットを使用して、機器の状態(ステータス)に関するデータを配置する。このステータスの1つとして、ここではバーチャルアウトプット(virtual output)を用意する。〔オペランド(0)〕の次の1ビットを使用して、機器でのデータの変換の有無〔conv〕に関するデータを配置し、残りの4ビットを使用して、シグナルステータスのデータを配置する。〔オペランド(1)〕及び〔オペランド(2)〕には、ソース機器のサブユニットに関するデータと、サブユニットのソースプラグに関するデータを配置する。
なお、シグナルソースステータスコマンドに対するレスポンスの〔オペランド(0)〕で、バーチャルアウトプットが示される場合には、〔オペランド(1)〕及び〔オペランド(2)〕が図30に示す構成となる。即ち、〔オペランド(1)〕の先頭の2ビットを使用して、固定値〔0x3〕を配置し、残りの6ビットを使用して、バーチャルアウトプットとして使用されているアイソクロナスチャンネルのデータが配置される。〔オペランド(2)〕には、そのアイソクロナスチャンネルのデータをソース機器で入力しているインプットプラグIDのデータが配置される。
このシグナルソースのステータスコマンドの使用例の1つを、図31及び図32を参照して説明する。まず図31のフローチャートに基づいて説明すると、例えば第1のディスク機器60で再生したオーディオデータを、バス1を介して第2のディスク機器70に伝送して、第2のディスク機器70でディスクに記録させるダビング動作が開始されたとする(ステップST11)。このダビングの開始後に、アンプ装置80から第2のディスク機器70に対して、この第2のディスク機器70から出力されるオーディオデータの入力の要求があったとする(ステップST12)。この要求を、例えばシグナルソースのコマンドで行う。
この要求があったとき、このコマンドに対するレスポンスで、バーチャルアウトプットを指示し、〔オペランド(1)〕及び〔オペランド(2)〕を使用して、ソース機器が入力しているアイソクロナスチャンネルと、ソース機器の入力プラグ番号が示される(ステップST13)。ここでは、第2のディスク機器70が第1のディスク機器60からのオーディオデータの記録を行っているので、第1のディスク機器60からデータが出力されるアイソクロナスチャンネルを指定する。
このレスポンスで指定されたアイソクロナスチャンネルがブロードキャストチャンネル(同報通信用チャンネル)である場合、バス1に接続されたどの機器でも入力が可能であるので、アンプ装置80は、このブロードキャストチャンネルの受信を行い、第1のディスク機器60からの出力をアンプ装置80が受信する(ステップST14)。このような第2のディスク機器70からの出力を受信したい場合に、この機器の出力の代わりに、この機器70が入力しているデータ(ここでは第1のディスク機器60)を受信することを、ここではバーチャルアウトプットと称してある。
このフローチャートに示す処理を、時系列的に示すと図32に示す状態になる。即ち、ステップS31で第1のディスク機器60から第2のディスク機器70へのダビングが開始された後に、アンプ装置80から第2のディスク機器70に、出力要求を行うシグナルソースのステータスコマンドが伝送されたとする(ステップS32)。このときのレスポンスでは、バーチャルアウトプットが指示され、そのときのチャンネルとしてブロードキャストチャンネルが指定される(ステップS33)。
このブロードキャストチャンネルが指定されると、アンプ装置80は、指示されたブロードキャストチャンネルを受信する処理を行い、第1のディスク機器60から出力されるオーディオデータ(このオーディオデータは第2のディスク機器70で記録中のオーディオデータと同じデータ)を、アンプ装置80で受信して、アンプ装置80で出力処理させる(ステップS34)。
次に、レスポンスで指定されたアイソクロナスチャンネルがブロードキャストチャンネルでない場合の処理を、図33及び図34を参照して説明する。
まず図33のフローチャートに基づいて説明すると、例えば第1のディスク機器60で再生したオーディオデータを、バス1を介して第2のディスク機器70に伝送して、第2のディスク機器70でディスクに記録させるダビング動作が開始されたとする(ステップST21)。このダビングの開始後に、アンプ装置80から第2のディスク機器70に対して、この第2のディスク機器70から出力されるオーディオデータの入力の要求があったとする(ステップST22)。この要求を、例えばシグナルソースのコマンドで行う。このときのレスポンスでは、入力チャンネルと仮想入力プラグ番号とが伝送される(ステップST23)。このレスポンスで示されるチャンネル番号として、ブロードキャストチャンネル以外のチャンネル番号が指定されたとする。
このブロードキャストチャンネル以外のチャンネル番号が指定されると、アンプ装置80は、インプットセレクトステータスコマンドを使用して、仮想入力プラグ番号に入力しているデータの出力側の機器を問い合わせ、そのレスポンスで出力側の機器(ここでは第1のディスク機器60)を判断する(ステップST24)。
そして、判断した出力側の機器(第1のディスク機器60)の仮想出力プラグとアンプ装置80との仮想入力プラグの間で、特定のアイソクロナスチャンネルを使用して伝送路を設定させるポイントトウポイントコネクションを確立させて、第1のディスク機器60の出力をアンプ装置80で受信させる(ステップST25)。
このフローチャートに示す処理を、時系列的に示すと図34に示す状態になる。即ち、ステップS41で第1のディスク機器60から第2のディスク機器70へのダビングが開始された後に、アンプ装置80から第2のディスク機器70に、出力要求を行うシグナルソースのステータスコマンドが伝送されたとする(ステップS42)。このときのレスポンスでは、バーチャルアウトプットが指示される(ステップS43)。ここでは、このレスポンスで指示されたアイソクロナスチャンネルが、ブロードキャスト用のチャンネル以外であるので、インプットセレクトステータスコマンドを使用して、仮想入力プラグ番号に入力しているデータの出力側の機器を問い合わせ(ステップS44)、そのレスポンスで出力側の機器(ここでは第1のディスク機器60)を判断する(ステップS45)。
ここまでの処理が完了すると、アンプ装置80は、第1のディスク機器60に対してポイントトウポイントでコネクションを確立させる処理を行い、コネクションが確立したとき、第1のディスク機器60から出力されるオーディオデータのアンプ装置80での入力を開始させる(ステップS46)。
このように処理されることで、データ出力が指示された機器から、そのデータを出力させることが出来ない場合(或いはその機器から出力させることが適当でない場合)に、代わりにデータを出力させることができる機器が存在するとき、その機器からの伝送を実行させることができ、良好にデータ伝送の処理が実行される。この場合、図31,図32に示したようなブロードキャストチャンネルを使用した場合と、図33,図34に示したようなブロードキャストチャンネルを使用しない場合のいずれであっても対処できる。
なお上述した各実施の形態では、IEEE1394方式のバスで構成されるネットワーク内で、AV/Cコマンドの形式でデータ伝送を行う場合の例としたが、その他の構成のネットワークやフォーマットで処理する場合にも適用できるものである。この場合、バスラインとしては有線で接続されたラインの他に、無線伝送で同様のデータ伝送が行われるバスラインを形成させたネットワークにも適用可能である。
また、上述した各実施の形態では、ネットワークに接続される通信装置内に、上述した処理が行われる手段が予め実装されているものとして説明したが、例えば上述した各処理を実行するプログラムを、何らかの媒体に保持させて、その媒体から得られるプログラムデータを通信を行う機器内のメモリなどに記憶させることで、該当する処理が行われる通信装置が得られるようにしても良い。この場合のプログラムデータを保持する媒体としては、磁気テープ,光ディスクなどの記憶媒体の他に、インターネット用のサーバなどの媒体を使用しても良い。