以下、本発明に係る実施例1を図面を参照しながら説明する。ただし、以下の実施例はあくまでも一例であって、本発明は以下の実施例に限定されるものではない。
[実施例1]
図1は、本発明の実施例1に係るHDMIに準拠した通信システムの一例を示す図である。また、図1は、本発明の実施例1に係る通信システムに含まれる電子機器100及び外部装置200の構成の一例を示すブロック図である。
実施例1に係る通信システムは、図1に示すように、電子機器100、外部装置200及び接続ケーブル300を有し、電子機器100と外部装置200とは、接続ケーブル300を介して接続されている。
実施例1において、電子機器100、外部装置200及び接続ケーブル300は、HDMI規格に準拠するものとする。電子機器は、HDMI規格によって規定されているリピータ(repeater)装置(中継機器)の機能を持つものである。電子機器100は、シンク装置の機能を実現するように動作することも、ソース装置の機能を実現するように動作することもできる。なお、実施例1におけるHDMI規格は、Version 1.3aに限るものではなく、Version 1.4a以降でもよい、Version1.3a以前の規格であってもよい。また、実施例1における電子機器100、外部装置200及び接続ケーブル300は、HDMI規格に互換性を持つ規格に準拠するものであってもよいものとする。
また、実施例1において、電子機器100及び外部装置200は、HDMI規格が規定しているCEC(Consumer Electronics Control)規格に準拠するものとする。電子機器100と外部装置200との間で双方向に送信されるコマンドは、CEC規格に準拠する。以下、CEC規格に準拠したコマンドを「CECコマンド」と呼ぶ。
以下、接続ケーブル300を「HDMIケーブル300」と呼ぶ。
<HDMIケーブル300>
次に、図1を参照して、HDMIケーブル300を説明する。
HDMIケーブル300は、+5Vライン301、HPD(Hot Plug Detect)ライン302、DDC(Display Data Channel)ライン303を有する。HDMIケーブル300はさらに、TMDS(Transition Minimized Differential Singnaling)ライン304及びCECライン305を有する。
+5Vライン301は、電子機器100と外部装置200との間で+5Vを一方向に伝送するための電源ラインである。外部装置200がソース装置である場合は、外部装置200から電子機器100に+5Vライン301を介して、+5Vが一方向に供給される。また、外部装置200がシンク装置である場合は、電子機器100から外部装置200に+5Vライン301を介して、+5Vが一方向に供給される。
HPDライン302は、電子機器100と外部装置200との間でHレベル(高電圧レベル)またはLレベル(低電圧レベル)のHPD信号を一方向に伝送するための伝送ラインである。外部装置200がソース装置である場合は、電子機器100から外部装置200にHPDライン302を介して、HPD信号が一方向に供給される。また、外部装置200がシンク装置である場合は、外部装置200から電子機器100にHPDライン302を介して、HPD信号が一方向に供給される。
DDCライン303は、電子機器100と外部装置200との間でシンク装置のデバイス情報を一方向に伝送するための伝送ラインである。
DDCライン303は、外部装置200がソース装置である場合は、電子機器100から外部装置200にDDCライン303を介して、電子機器100のデバイス情報が一方向に供給される。また、外部装置200がシンク装置である場合は、外部装置200から電子機器100にDDCライン303を介して、外部装置200のデバイス情報が一方向に供給される。
電子機器100のデバイス情報とは、電子機器100のEDID(Extended display identification data)またはE−EDID(Enhanced EDID)である。電子機器100のEDID及びE−EDIDはいずれも、電子機器100のデバイス情報である。電子機器100のEDID及びE−EDIDはいずれも、電子機器100の識別情報、電子機器100の画像表示能力、物理アドレス(Physical Address)等を含む。例えば、電子機器100のEDID及びE−EDIDには、電子機器100がサポートしている解像度、走査周波数、アスペクト比、色空間などに関する情報が含まれている。E−EDIDは、EDIDを拡張したものであり、EDIDよりも多くの能力情報を含む。例えば、電子機器100のE−EDIDには、電子機器100がサポートしている映像データ及び音声データのフォーマットなどに関する情報が含まれている。以下、EDID及びE−EDIDをいずれも「EDID」と呼ぶ。
電子機器100は、外部装置200にEDIDを送信することにより、電子機器100の画像表示能力、音声処理能力、画像表示能力に適した映像フォーマット及び音声処理能力に適した音声フォーマットなどを外部装置200に知らせることができる。
なお、外部装置200のデバイス情報も、電子機器100のデバイス情報と同様に、外部装置200のEDIDまたはE−EDIDである。外部装置200のEDID及びE−EDIDはいずれも、外部装置200の識別情報、外部装置200の画像表示能力、物理アドレス、外部装置200がサポートしている解像度、走査周波数、アスペクト比、色空間などに関する情報等を含む。
外部装置200のEDIDを受信した電子機器100は、外部装置200のEDIDを解析することにより、外部装置200の画像表示能力、音声処理能力などを自動的に知ることができる。さらに、電子機器100は、外部装置200の画像表示能力及び音声処理能力に適した映像フォーマット及び音声フォーマットを自動的に知ることができる。電子機器100の設定を外部装置200に適した設定にすることにより、電子機器100は、電子機器100から外部装置200に送信される映像データ及び音声データを外部装置200の能力に適した映像データ及び音声データにすることができる。
TMDSライン304は、電子機器100と外部装置200との間で映像データ、音声データ及び補助データを一方向に伝送するための伝送ラインである。TMDSライン304は、TMDSチャンネル0、TMDSチャンネル1、TMDSチャンネル2及びTMDSクロックチャンネルを含む。
外部装置200がソース装置である場合は、外部装置200から電子機器100にTMDSライン304を介して、映像データ、音声データ及び補助データが一方向に供給される。また、外部装置200がシンク装置である場合は、電子機器100から外部装置200にTMDSライン304を介して、映像データ、音声データ及び補助データが一方向に供給される。
CECライン305は、電子機器100と外部装置200との間で様々なCECコマンドを双方向に伝送するための伝送ラインである。電子機器100は、CECライン305を介して、外部装置200を制御するためのCECコマンドを外部装置200に送信することができる。外部装置200は、CECライン305を介して、電子機器100を制御するためのCECコマンドを電子機器100に送信することができる。
実施例1において、電子機器100の一例として「Avアンプ」(以下電子機器100を「アンプ100」と呼ぶ。)を用いて、説明を行う。
なお、電子機器100は、外部装置200に応じて接続ケーブル300を介して映像データ、音声データ及び補助データを送信したり、接続ケーブル300を介して映像データ、音声データ及び補助データを受信する電子機器であればよい。また、実施例1において、外部装置200は、HDMI規格に対応した装置であれば、テレビ、プロジェクタやパーソナルコンピュータ等のシンク装置であってもよく、ビデオカメラ、デジタルスチルカメラ、レコーダ等のソース装置であってもよい。また、外部装置200は、Avアンプのようなリピータ装置であってもよいものとする。
<アンプ100>
次に、図1を参照して、アンプ100の構成の一例を説明する
アンプ100は、図1に示すように、CPU(Central Processing Unit)101、メモリ102、通信部103、電源供給部104、記録部105、表示部106、操作部107及びスピーカ部108を有する。
CPU101は、メモリ102に格納されているコンピュータプログラムに従って、アンプ100全体の動作を制御する。また、CPU101は、外部装置200に送信するためのCEC規格に準拠したコマンドを生成する。
メモリ102は、CPU101のワークエリアとして機能する。メモリ102には、アンプ100のEDID、アンプ100に関する情報、CPU101による解析の結果等も格納される。なお、CPU101のワークエリアは、メモリ102に限られるものではなく、ハードディスク装置等の外部記録装置等であってもよい。また、メモリ102には、アンプ100に割り当てられる論理アドレス及び物理アドレスも格納される。
また、メモリ102には、図2に示すようなデータテーブルが格納されている。図2のデータテーブルは、HDMI規格で規定されている論理アドレス(ロジカルアドレス)と、HDMI規格で規定されている装置の種別(デバイスタイプ)と、HDMIシステムにおけるカテゴリとの対応を示すテーブルである。HDMIシステムにおけるカテゴリとは、シンク装置、ソース装置及びリピータ装置のいずれか一つであるかを示す分類である。
例えば、CPU101は、論理アドレス「1」に対応する装置の種別を「TV」であると判定し、論理アドレス「1」に対応するカテゴリが「シンク装置」であると判定する。論理アドレスとは、HDMIシステム内に存在する装置の種別(デバイスタイプ)を識別するための情報である。また、論理アドレスは、複数のHDMI対応の装置に対して重複して割り当てられないものである。なお、図2に示すように論理アドレスごとに異なる種別の装置が存在する。
通信部103は、HDMIケーブル300を接続するための入出力兼用端子(入出力兼用コネクタ)103a、通信ブロック103bを有する。通信ブロック103bは入出力兼用端子103aに対してアンプ100に設けられている。
通信部103は、入出力兼用端子103aを介してHDMIケーブル300と接続される。
アンプ100は、入出力兼用端子103a、通信ブロック103b及びHDMIケーブル300を介して接続されている外部装置200がソース装置である場合、映像データや音声データをHDMIケーブル300を介して外部装置200に送信しないようにする。この場合、アンプ100は、映像データや音声データを外部装置200から入出力兼用端子103a、通信ブロック103b及びHDMIケーブル300を介して受信するようにする。
アンプ100は、入出力兼用端子103a、通信ブロック103b及びHDMIケーブル300を介して接続されている外部装置200がシンク装置である場合、映像データや音声データをHDMIケーブル300を介して外部装置200から受信しないようにする。この場合、アンプ100は、映像データや音声データを外部装置200に入出力兼用端子103a、通信ブロック103b及びHDMIケーブル300を介して送信するように動作する。
通信ブロック103bは、+5V電圧検出部103cと電源出力部103d、電源入力部103e及び電源切換部103fを有する。さらに、通信ブロック103bは、HPD信号検出部103gとHPD信号出力部103h、HPD信号入力部103i、HPD切換部103jを有する。さらに、通信ブロック103bは、TMDSクロック電圧検出部103lとデータ送信部103m、データ受信部103n、データ切換部103oを有する。さらに、通信ブロック103bは、デバイス情報取得部103k及びコマンド送受信部103pを有する。
通信ブロック103bは、「送信モード」(第1のモード)と「受信モード」(第2のモード)の2つのモードを有する。「送信モード」は、映像データや音声データをHDMIケーブル300を介して外部装置200に送信するためのモードであり、「受信モード」は、映像データや音声データをHDMIケーブル300を介して外部装置200から受信するモードである。アンプ100は、通信ブロック103bを送信モード及び受信モードのいずれか一つに設定するための設定モードを有する。なお、アンプ100が設定モードである場合、CPU101は、通信ブロック103bを送信モードか、受信モードかのいずれかに設定するまで、外部装置200にHDMIケーブル300を介して映像データ及び音声データの送信も受信も行わないように通信ブロック103bを制御する。
通信ブロック103bが送信モードである場合、アンプ100は、映像データや音声データをHDMIケーブル300を介して外部装置200に送信するための処理を行う状態となる。通信ブロック103bが受信モードである場合、アンプ100は、映像データや音声データをHDMIケーブル300を介して外部装置200から受信するための処理を行う状態となる。
+5V電圧検出部103c(第1の判定手段)は、+5Vライン301を介して供給される電圧を監視する。+5Vライン301を介して供給される+5V電圧が所定の電圧(第1の電圧)以上である場合、+5V電圧検出部103cは、Hレベルの+5V電圧信号をCPU101に通知する。+5Vライン301を介して供給される+5V電圧が所定の電圧より小さい場合はLレベルの+5V電圧信号をCPU101に通知する。
電源出力部103dは、通信ブロック103bが送信モードである場合に、電源切換部103f及び+5Vライン301を介して外部装置200に+5V電圧を供給する。
電源入力部103eは、通信ブロック103bが受信モードである場合に、電源切換部103f及び+5Vライン301を介して外部装置200から供給された+5V電圧を受信する。
電源切換部103fは、通信ブロック103bが送信モードである場合に、電源入力部103eと+5Vライン301とを接続することなく、電源出力部103dと+5Vライン301とを接続する。電源切換部103fは、通信ブロック103bが受信モードである場合に、電源出力部103dと+5Vライン301とを接続することなく、電源入力部103eと+5Vライン301とを接続する。また、電源切換部103fは、電源出力部103d及び電源入力部103eと+5Vライン301との接続を切断することもできる。
なお、電源切換部103fは、電源出力部103dと+5Vライン301とを接続する場合、電源入力部103eと+5Vライン301とを接続しないようにする。また、電源切換部103fは、電源入力部103eと+5Vライン301とを接続する場合、電源出力部103dと+5Vライン301とを接続しないようにする。
HPD信号検出部103gは、HPDライン302の電圧を監視し、HPDライン302の電圧が所定の電圧以上である場合、HレベルのHPD信号をCPU101に通知する。また、HPD信号検出部103gは、HPDライン302の電圧が所定の電圧より低い場合、LレベルのHPD信号をCPU101に通知する。
HPD信号出力部103hは、通信ブロック103bが受信モードである場合に、HPD切換部103j及びHPDライン302を介して外部装置200にHレベルのHPD信号または、LレベルのHPD信号を送信する。
HPD信号入力部103iは、通信ブロック103bが送信モードである場合に、HPD切換部103j及びHPDライン302を介して外部装置200からHレベルのHPD信号または、LレベルのHPD信号を受信する。
HPD切換部103jは、通信ブロック103bが送信モードである場合に、HPD信号出力部103hとHPDライン302とを接続することなく、HPD信号入力部103iとHPDライン302とを接続する。HPD切換部103jは、通信ブロック103bが受信モードである場合に、HPD信号入力部103iとHPDライン302とを接続することなく、HPD信号出力部103hとHPDライン302とを接続する。また、HPD切換部103jは、HPD信号出力部103h及びHPD信号入力部103iとHPDライン302との接続を切断することもできる。
なお、HPD切換部103jは、HPD信号入力部103iとHPDライン302とを接続する場合、HPD信号出力部103hとHPDライン302とを接続しないようにする。また、HPD切換部103jは、HPD信号出力部103hとHPDライン302とを接続する場合、HPD信号入力部103iとHPDライン302とを接続しないようにする。
デバイス情報取得部103kは、通信ブロック103bが送信モードである場合、DDCライン303を介して外部装置200に外部装置200のEDIDを要求し、外部装置200からDDCライン303を介して外部装置200のEDIDを受信する。また、デバイス情報取得部103kは、通信ブロック103bが受信モードである場合、DDCライン303を介して外部装置200からアンプ100のEDIDの要求を受けたとき、DDCライン303を介して外部装置200にアンプ100のEDIDを送信する。
TMDSクロック電圧検出部103l(第2の判定手段)は、TMDSライン304に含まれるTMDSクロックラインを介して供給される電圧(第2の電圧)を監視する。TMDSクロックラインを介して供給されるTMDSクロック電圧が所定の電圧以上である場合はHレベルのTMDSクロック電圧信号をCPU101に通知する。TMDSクロックラインを介して供給されるTMDSクロック電圧が所定の電圧より小さい場合はLレベルのTMDSクロック電圧信号をCPU101に通知する。
データ送信部103mは、通信ブロック103bが送信モードである場合に、データ切換部103o及びTMDSライン304を介して外部装置200に映像データ、音声データ及び補助データを送信する。
データ受信部103nは、通信ブロック103bが受信モードである場合に、データ切換部103o及びTMDSライン304を介して、外部装置200から送信された映像データ、音声データ及び補助データを受信する。
データ切換部103oは、通信ブロック103bが送信モードである場合に、データ受信部103nとTMDSライン304とを接続することなく、データ送信部103mとTMDSライン304とを接続する。データ切換部103oは、通信ブロック103bが受信モードである場合に、データ送信部103mとTMDSライン304とを接続することなく、データ受信部103nとTMDSライン304とを接続する。また、データ切換部103oは、データ送信部103m及びデータ受信部103nとTMDSライン304との接続を切断することもできる。
なお、データ切換部103oは、データ送信部103mとTMDSライン304とを接続する場合、データ受信部103nとTMDSライン304とを接続しないようにする。また、データ切換部103oは、データ受信部103nとTMDSライン304とを接続する場合、データ送信部103mとTMDSライン304とを接続しないようにする。
コマンド送受信部103pは、CPU101において生成された外部装置200を制御するためのCECコマンドをCECライン305を介して外部装置200に送信する。また、コマンド送受信部103pは、CECライン305を介して外部装置200から受信したCECコマンドをCPU101に供給する。外部装置200から受信したCECコマンドは、コマンド送受信部103pからCPU101に供給され、CPU101は、外部装置200から受信したCECコマンドに応じてアンプ100を制御することができる。
また、アンプ100が外部装置200にCECコマンドを送信した場合に、外部装置200がアンプ100からのCECコマンドを受信できたとき、外部装置200はCECコマンドに対する応答信号をアンプ100に送信する。そのため、コマンド送受信部103pは、CECコマンドに対する応答信号を外部装置200から受信することができる。CECコマンドに対する応答信号には、肯定の応答を示す肯定信号と否定の応答を示す否定信号とがある。
電源供給部104は、不図示のAC電源、または不図示のバッテリーからアンプ100の各部に必要な電源を供給する。なお、通信ブロック103bが送信モードである場合に、電源供給部104は、+5V電圧を電源出力部103dに供給し、電源出力部103dは供給された+5V電圧を電源切換部103f及び+5Vライン301を介して外部装置200に供給する。なお、通信ブロック103bが受信モードである場合に、電源供給部104は、+5V電力を電源出力部103dに供給しない。
記録部105は、データ受信部103nにおいて受信された映像データ及び音声データを記録媒体105aに記録することができる。また、記録部105は、ユーザによって選択された映像データ及び音声データを記録媒体105aから再生することができる。
通信ブロック103bが送信モードである場合、記録部105が記録媒体105aから再生した映像データ及び音声データは、記録部105からデータ送信部103mに供給され、データ送信部103mは、TMDSライン304を介して外部装置200に送信する。なお、通信ブロック103bが受信モードである場合に、記録部105が記録媒体105aから再生した映像データ及び音声データは、記録部105からデータ送信部103mに供給されない。また、通信ブロック103bが受信モードである場合に、データ受信部103nによって外部装置200から受信された映像データ及び音声データは記録媒体105aまたは、メモリ102に記録される。
記録媒体105aは、映像データ及び音声データを格納する。また、記録媒体105aは、メモリカード、ハードディスク装置などの記録媒体である。記録媒体105aは、アンプ100に内蔵された記録媒体であっても、アンプ100から取り外し可能な外部の記録媒体であってもよい。
表示部106は、液晶ディスプレイなどの表示器により構成される。表示部106には、アンプ100の状態を示す情報やスピーカ部108の状態を示す情報等が表示される。
操作部107は、アンプ100を操作するためのユーザインターフェースを提供する。操作部107は、アンプ100を操作するための電源ボタン及びモード切換ボタン等を有し、各ボタンはスイッチ、タッチパネル等により構成される。CPU101は、操作部107を介して入力されたユーザの指示に従ってアンプ100を制御する。
スピーカ部108は、記録媒体105aから再生された音声データを出力することができる。また、スピーカ部108は、データ受信部103nにおいて受信された音声データを出力することができる。
なお、アンプ100は、スピーカ部108を有していなくても良いものとする。この場合、例えば、アンプ100は、外部のスピーカと接続された場合、データ受信部103nにおいて受信された音声データを出力するように外部のスピーカを制御するものとする。また、この場合、アンプ100は、メモリ102に記録されている音声データを出力するように外部のスピーカを制御するものとする。
次に、図3を参照して、実施例1に係るアンプ100で行われる設定処理について説明する。
図3は、実施例1に係るアンプ100によって、行われる設定処理の一例を説明するためのフローチャートである。
なお、設定処理は、アンプ100の電源がオンになっている場合において、アンプ100の動作モードが設定モードであるときに実行される。実施例1では、CPU101が、メモリ102に格納されているコンピュータプログラムに従って設定処理を制御する場合を説明する。なお、アンプ100の動作モードは、電源がオンにされた際や、HDMIケーブル300を介して外部装置200と物理的に接続されたことが検出された状態で、アンプ100が外部装置200とCECコマンドを用いた通信を開始する際に、設定モードになる。
S201において、CPU101は、論理アドレス「5」(Audio System)を宛先として含む<Polling Message>をCECライン305を介して外部装置200に送信するようにコマンド送受信部103pを制御する。<Polling Message>とは、CECコマンドの一つであって、HDMIシステム内に、宛先の論理アドレスを既に持っている装置が存在するか否かを確認するためのコマンドである。コマンド送受信部103pが外部装置200に論理アドレス「5」を含む<Polling Message>を送信した場合、本フローチャートはS201からS202に進む。なお、以下、論理アドレス「5」を宛先として含む<Polling Message>を「第1のコマンド」と呼ぶ。
アンプ100から論理アドレス「5」を含む<Polling Message>を外部装置200が受信した場合、外部装置200は<Polling Message>に含まれる論理アドレス「5」を既に持っているか否かを判定する。この場合、外部装置200が既に論理アドレス「5」を持っているとき、外部装置200は論理アドレス「5」を既に持っていることをアンプ100に知らせるためにアンプ100に肯定信号を送信する。この場合、外部装置200が論理アドレス「5」を持っていないとき、外部装置200は論理アドレス「5」を持っていないことを知らせるためにアンプ100に否定信号を送信する。
第1のコマンドは、外部装置200が論理アドレス「5」を持つ装置であるか否か、つまり、外部装置200が「リピータ装置」であるか否かを確認するためのCECコマンドである。
S202において、CPU101は、S201でコマンド送受信部103pが送信した第1のコマンドに対して外部装置200から肯定信号をコマンド送受信部103pが受信したか否かを判定する。
CPU101は、コマンド送受信部103pが外部装置200から肯定信号を受信したと判定した場合(S202でYES)、メモリ102内に記録されている図2のデータテーブルを用いて、外部装置200の種別を判定する。この場合(S202でYES)、CPU101は、外部装置200が論理アドレス「5」に対応する「Audio System」であると判定する。この場合、CPU101は、外部装置200のカテゴリは、「リピータ装置」であると判定する。この場合(S202でYES)、本フローチャートはS202からS203に進む。CPU101は、コマンド送受信部103pが外部装置200から否定信号を受信したと判定した場合(S202でNO)、外部装置200の種別は、論理アドレス「5」に対応する「Audio System」でないと判定する。この場合、CPU101は、外部装置200のカテゴリは、「リピータ装置」でないと判定する。この場合(S202でNO)、本フローチャートはS202からS210に進む。なお、コマンド送受信部103pが外部装置200から肯定信号を受信しなかったとCPU101が判定したとき、CPU101は、コマンド送受信部103pが外部装置200から否定信号を受信したと判定した場合(S202でNO)と同様の処理を行う。この場合も、本フローチャートはS202からS210に進む。
S202において、外部装置200が「リピータ装置」であると判定された場合、CPU101は、通信ブロック103bのモードを選択するために、外部装置200の動作状態がソース装置として動作するか、シンク装置として動作するかを判定する必要がある。S202において、CPU101によって外部装置200が「リピータ装置」であると判定された場合において、外部装置200がソース装置として動作するのか、シンク装置として動作するのかを判定する処理について以下説明を行う。
CPU101は、+5V電圧検出部103cから通知される+5V電圧信号及びTMDSクロック電圧検出部103lから通知されるTMDSクロック電圧信号に応じて外部装置200がソース装置として動作するのか、シンク装置として動作するのかを判定する。
S203において、CPU101は、+5V電圧検出部103cからHレベルの+5V電圧信号が通知されたか否かを判定する。CPU101は、+5V電圧検出部103cからHレベルの+5V電圧信号が通知された場合(S203でYES)、本フローチャートはS203からS204に進む。この場合(S203でYES)、CPU101は、+5Vライン301を介して供給される+5V電圧がH(High)レベルであると判定する。CPU101は、+5V電圧検出部103cからLレベルの+5V電圧信号が通知された場合(S203でNO)、本フローチャートはS203からS207に進む。この場合(S203でNO)、CPU101は、+5Vライン301を介して供給される+5V電圧がL(Low)レベルであると判定する。
S204において、CPU101は、TMDSクロック電圧検出部103lからHレベルのTMDSクロック電圧信号を通知されたか否かを判定する。CPU101は、TMDSクロック電圧検出部103lからHレベルのTMDSクロック電圧信号が通知された場合(S204でYES)、本フローチャートはS204からS206に進む。この場合(S204でYES)、CPU101は、HPDライン302を介して供給されるTMDSクロック電圧がH(High)レベルであると判定する。
S204でYESの場合、CPU101は、+5V電圧検出部103cからHレベルの+5V電圧信号が通知され、かつ、TMDSクロック電圧検出部103lからHレベルのTMDSクロック電圧信号が通知されたと判定する。
CPU101は、TMDSクロック電圧検出部103lからLレベルのTMDSクロック電圧信号が通知された場合(S204でNO)、本フローチャートはS204からS205に進む。この場合(S204でNO)、CPU101は、HPDライン302を介して供給されるTMDSクロック電圧がL(Low)レベルであると判定する。S204でNOの場合、CPU101は、+5V電圧検出部103cからHレベルの+5V電圧信号が通知され、かつ、TMDSクロック電圧検出部103lからLレベルのTMDSクロック電圧信号が通知されたと判定する。この場合、CPU101は、外部装置200がソース装置として動作すると判定する。
S205において、CPU101は、通信ブロック103bを受信モードに設定する。この場合、CPU101は、通信ブロック103bを受信モードに選択することを示す通知を電源切換部103f、HPD切換部103j、データ切換部103oに出力する。この通知を受けた電源切換部103fは、電源出力部103dと+5Vライン301とが電気的に接続しないように制御するとともに、電源入力部103eと+5Vライン301とが電気的に接続するように制御する。この通知を受けたHPD切換部103jは、HPD信号出力部103hとHPDライン302とが電気的に接続するように制御するとともに、HPD信号入力部103iとHPDライン302とが電気的に接続しないように制御する。この通知を受けたデータ切換部103oは、データ送信部103mとTMDSライン304とが電気的に接続しないように制御するとともに、データ受信部103nとTMDSライン304とが電気的に接続するように制御する。CPU101が、通信ブロック103bを受信モードに選択することを示す通知を電源切換部103f、HPD切換部103j、データ切換部103oに出力した場合、本フローチャートは終了する。
S206において、CPU101は、アンプ100と外部装置200とが異常接続を行っていると判定する。異常接続とは、外部装置200にエラーが発生している状態である場合や、アンプ100と外部装置200との通信にエラーが発生している場合に想定される状況である。この場合、CPU101は、アンプ100と外部装置200とが異常接続を行っていることを示す通知を電源切換部103f、HPD切換部103j、データ切換部103oに出力する。この通知を受けた電源切換部103fは、電源出力部103dと+5Vライン301とが電気的に接続しないように制御するとともに、電源入力部103eと+5Vライン301とが電気的に接続しないように制御する。この通知を受けたHPD切換部103jは、HPD信号出力部103hとHPDライン302とが電気的に接続しないように制御するとともに、HPD信号入力部103iとHPDライン302とが電気的に接続しないように制御する。この通知を受けたデータ切換部103oは、データ送信部103mとTMDSライン304とが電気的に接続しないように制御するとともに、データ受信部103nとTMDSライン304とが電気的に接続しないように制御する。CPU101が、アンプ100と外部装置200とが異常接続を行っていることを示す通知を電源切換部103f、HPD切換部103j、データ切換部103oに出力した場合、本フローチャートは終了する。
S207において、CPU101は、S204と同様にTMDSクロック電圧検出部103lからHレベルのTMDSクロック電圧信号を通知されたか否かを判定する。CPU101は、TMDSクロック電圧検出部103lからHレベルのTMDSクロック電圧信号が通知された場合(S207でYES)、本フローチャートはS207からS208に進む。S207でYESの場合、CPU101は、+5V電圧検出部103cからLレベルの+5V電圧信号が通知され、かつ、TMDSクロック電圧検出部103lからHレベルのTMDSクロック電圧信号が通知されたと判定する。この場合、CPU101は、外部装置200がシンク装置として動作すると判定する。
CPU101は、TMDSクロック電圧検出部103lからLレベルのTMDSクロック電圧信号が通知された場合(S207でNO)、本フローチャートはS207からS209に進む。S207でNOの場合、CPU101は、+5V電圧検出部103cからLレベルの+5V電圧信号が通知され、かつ、TMDSクロック電圧検出部103lからLレベルのTMDSクロック電圧信号が通知されたと判定する。
S208において、CPU101は通信ブロック103bを送信モードに設定する。この場合、CPU101は、通信ブロック103bを送信モードに選択することを示す通知を電源切換部103f、HPD切換部103j、データ切換部103oに出力する。この通知を受けた電源切換部103fは、電源出力部103dと+5Vライン301とが電気的に接続するように制御するとともに、電源入力部103eと+5Vライン301とが電気的に接続しないように制御する。この通知を受けたHPD切換部103jは、HPD信号出力部103hとHPDライン302とが電気的に接続しないように制御するとともに、HPD信号入力部103iとHPDライン302とが電気的に接続するように制御する。この通知を受けたデータ切換部103oは、データ送信部103mとTMDSライン304とが電気的に接続するように制御するとともに、データ受信部103nとTMDSライン304とが電気的に接続しないように制御する。CPU101が、通信ブロック103bを送信モードに選択することを示す通知を電源切換部103f、HPD切換部103j、データ切換部103oに出力した場合、本フローチャートは終了する。
S209で、CPU101は、アンプ100と外部装置200とが非接続であると判定する。非接続とは、外部装置200の電源がオフである場合や、アンプ100と外部装置200との通信にエラーが発生している場合や、アンプ100と外部装置200とにHDMIケーブル300が接続されていない場合に想定される状況である。アンプ100と外部装置200とが非接続であると判定された場合、CPU101は、外部装置200がソース装置として動作するのか、シンク装置として動作するのかを判定することができない。この場合、CPU101は、アンプ100と外部装置200とが非接続であることを示す通知を電源切換部103f、HPD切換部103j、データ切換部103oに出力する。この通知を受けた電源切換部103fは、電源出力部103dと+5Vライン301とが電気的に接続しないように制御するとともに、電源入力部103eと+5Vライン301とが電気的に接続しないように制御する。この通知を受けたHPD切換部103jは、HPD信号出力部103hとHPDライン302とが電気的に接続しないように制御するとともに、HPD信号入力部103iとHPDライン302とが電気的に接続しないように制御する。この通知を受けたデータ切換部103oは、データ送信部103mとTMDSライン304とが電気的に接続しないように制御するとともに、データ受信部103nとTMDSライン304とが電気的に接続しないように制御する。CPU101が、アンプ100と外部装置200とが非接続であることを示す通知を電源切換部103f、HPD切換部103j、データ切換部103oに出力した場合、CPU101は、所定の時間が経過するまで待機する。所定の時間が経過した場合、本フローチャートはS209からS201に戻る。なお、S209において、CPU101が所定の時間が経過するまで待機するのは、所定の時間が経過するまでの間、外部装置200の電源がオンになり、アンプ100と外部装置200とにHDMIケーブル300が接続される可能性があるためである。なお、CPU101は、所定の時間が経過するまでの間、外部装置200の電源をオンにするためのCECコマンドを生成し、これを外部装置200に送信するようにコマンド送受信部103pを制御してもいい。また、CPU101は、所定の時間が経過するまでの間、外部装置200にエラーをリセットさせるためのCECコマンドを生成し、これを外部装置200に送信するようにコマンド送受信部103pを制御してもいい。
なお、S203からS209までの処理は、CPU101によって外部装置200が「リピータ装置」であると判定された場合(S202でYES)、外部装置200がソース装置として動作するのか、シンク装置として動作するのかを判定するための処理である。
S210において、CPU101は、論理アドレス「0」(TV)を宛先として含む<Polling Message>をCECライン305を介して外部装置200に送信するようにコマンド送受信部103pを制御する。コマンド送受信部103pが外部装置200に論理アドレス「0」を含む<Polling Message>を送信した場合、本フローチャートはS210からS211に進む。なお、以下論理アドレス「0」を宛先として含む<Polling Message>を「第2のコマンド」と呼ぶ。
アンプ100から論理アドレス「0」を含む<Polling Message>を外部装置200が受信した場合、外部装置200は<Polling Message>に含まれる論理アドレス「0」を持っているか否かを判定する。外部装置200が既に<Polling Message>に含まれる論理アドレス「0」を持っている場合、外部装置200はアンプ100に肯定信号を送信する。外部装置200が<Polling Message>に含まれる論理アドレス「0」を持っていない場合、外部装置200はアンプ100に否定信号を送信する。
第2のコマンドは、外部装置200が論理アドレス「0」を持っているか否かを確認するためのコマンドである。
S211において、CPU101は、S210でコマンド送受信部103pが送信した第2のコマンドに対して外部装置200から肯定信号をコマンド送受信部103pが受信したか否かを判定する。
CPU101は、コマンド送受信部103pが外部装置200から肯定信号を受信したと判定した場合(S211でYES)、メモリ102内に記録されている図2のデータテーブルを用いて、外部装置200の種別を判定する。この場合(S211でYES)、CPU101は、外部装置200が論理アドレス「0」に対応する「TV」機能を持つ「シンク装置」であると判定する。この場合(S211でYES)、本フローチャートはS211からS212に進む。CPU101は、コマンド送受信部103pが外部装置200から否定信号を受信したと判定した場合(S211でNO)、外部装置200が論理アドレス「0」に対応する「TV」機能を持つ「シンク装置」ではないと判定する。この場合(S211でNO)、本フローチャートはS211からS213に進む。なお、所定の時間が経過した場合でも、コマンド送受信部103pが外部装置200から肯定信号を受信しなかったと判定したとき、コマンド送受信部103pが外部装置200から否定信号を受信したと判定した場合(S211でNO)と同様の処理を行う。この場合も、本フローチャートはS211からS213に進む。
S212において、CPU101はS208と同様に通信ブロック103bを送信モードに設定する。この場合、CPU101は、通信ブロック103bを送信モードに選択することを示す通知を電源切換部103f、HPD切換部103j、データ切換部103oに出力する。通信ブロック103bが送信モードに設定された場合、本フローチャートは終了する。
S213において、CPU101は、論理アドレス「1」−「4」、「6」−「11」のいずれか一つを宛先として含む<Polling Message>をCECライン305を介して外部装置200に送信するようにコマンド送受信部103pを制御する。論理アドレス「1」、「2」、「9」は(Recording Device)に対応する論理アドレスであり、論理アドレス「4」、「8」、「11」は(Playback Device)に対応する論理アドレスである。論理アドレス「3」、「6」、「7」、「10」は、(tuner)に対応する論理アドレスである。CPU101は、論理アドレス「1」−「4」、「6」−「11」のいずれか一つを宛先として含む<Polling Message>を番号の小さい論理アドレスを含む<Polling Message>から順次外部装置200に送信する。
コマンド送受信部103pが外部装置200に、論理アドレス「1」−「4」、「6」−「11」のいずれか一つを含む<Polling Message>を送信した場合、本フローチャートはS213からS214に進む。なお、以下論理アドレス「1」−「4」、「6」−「11」のいずれか一つを宛先として含む<Polling Message>を「第3のコマンド」と呼ぶ。
アンプ100から第3のコマンドを外部装置200が受信した場合、外部装置200は、第3のコマンドに含まれる論理アドレス「1」−「4」、「6」−「11」のいずれか一つを持っているか否かを判定する。外部装置200が既に第3のコマンドに含まれる論理アドレス「1」−「4」、「6」−「11」のいずれか一つを持っている場合、外部装置200はアンプ100に肯定信号を送信する。外部装置200が第3のコマンドに含まれる論理アドレス「1」−「4」、「6」−「11」のいずれか一つを持っていない場合、外部装置200はアンプ100に否定信号を送信する。
第3のコマンドは、外部装置200が論理アドレス「1」−「4」、「6」−「11」のいずれか一つを持っているか否かを確認するためのコマンドである。
S214において、CPU101は、S213でコマンド送受信部103pが送信した第3のコマンドに対して外部装置から肯定信号をコマンド送受信部103pが受信したか否かを判定する。
CPU101は、コマンド送受信部103pが外部装置200から肯定信号を受信したと判定した場合(S214でYES)、メモリ102内に記録されている図2のデータテーブルを用いて、外部装置200の種別を判定する。この場合(S214でYES)、CPU101は、外部装置200が論理アドレス「1」−「4」、「6」−「11」のいずれか一つに対応する「ソース装置」であると判定する。この場合(S214でYES)、本フローチャートはS214からS215に進む。CPU101は、コマンド送受信部103pが外部装置200から否定信号を受信したと判定した場合(S214でNO)、外部装置200が論理アドレス「1」−「4」、「6」−「11」のいずれか一つに対応する「ソース装置」ではないと判定する。この場合(S214でNO)、本フローチャートはS214からS216に進む。なお、所定の時間が経過した場合でも、コマンド送受信部103pが外部装置200から肯定信号を受信しなかったとき、コマンド送受信部103pが外部装置200から否定信号を受信したと判定した場合(S214でNO)と同様の処理を行う。この場合も、本フローチャートはS214からS216に進む。
S215において、CPU101はS205と同様に通信ブロック103bを受信モードに設定する。通信ブロック103bが受信モードに設定された場合、本フローチャートは終了する。
S216において、CPU101は、論理アドレス「1」−「4」、「6」−「11」のいずれか一つを含む<Polling Message>が全てコマンド送受信部103pによって、外部装置200に送信されたか否かを判定する。
CPU101によって、論理アドレス「1」−「4」、「6」−「11」のいずれか一つを含む<Polling Message>が論理アドレス「1」−「4」、「6」−「11」の全てにコマンド送受信部103pによって外部装置200に送信されたと判定された場合(S216でYES)、本フローチャートは、S216からS203に戻る。S216でYESの場合、CPU101は、外部装置200がCECプロトコルに非対応である、または、外部装置200が論理アドレス「12」、「13」、「14」及び「15」のいずれか一つの論理アドレスを持っていると判定する。この場合(S216でYES)、CPU101は、外部装置200がリピータ装置である場合(S201でYES)と同様に、S203からS209までの処理を行う。この場合、CPU101は、S203からS209までの処理により、CECコマンドを用いることなく、外部装置200がソース装置として動作するのか、シンク装置として動作するのかを判定する。
なお、外部装置200がCECプロトコルに非対応である場合、外部装置200は、論理アドレス「1」−「15」のいずれも取得することができない。
CPU101によって、論理アドレス「1」−「4」、「6」−「11」のいずれか一つを含む<Polling Message>が論理アドレス「1」−「4」、「6」−「11」の全てにコマンド送受信部103pによって、外部装置に送信されていないと判定された場合(S216でNO)、本フローチャートは、S216からS213に戻る。S216でNOの場合、CPU101は、再びS213の処理を行う。このことによって、CPU101は、論理アドレス「1」−「4」、「6」−「11」のいずれか一つを含む<Polling Message>が論理アドレス「1」−「4」、「6」−「11」の全てにコマンド送受信部103pによって、外部装置200に送信されるように制御する。CPU101は、再びS213の処理を行う場合、論理アドレス「1」−「4」、「6」−「11」の中から宛先として選択していない論理アドレスを含む<Polling Message>を外部装置200に送信するようにコマンド送受信部103pを制御する。論理アドレス「1」−「4」、「6」−「11」の中から宛先として選択していない論理アドレスが複数ある場合、CPU101は、宛先として選択していない論理アドレスの中から論理アドレスの番号の小さいものを宛先として選択する。
このように、実施例1に係る電子機器100において、論理アドレスを含む<Polling Message>を用いることによって、外部装置200がどのような装置であるかを判定するようにした。これにより、電子機器100は、外部装置200からの論理アドレスを含む<Polling Message>に対する応答によって、外部装置200の製品カテゴリを判定することができる。このため、電子機器100は、外部装置200の製品カテゴリや動作状態に応じて、電子機器100が映像データや音声データを外部装置200に送信するように状態になるか、映像データや音声データを外部装置200から受信する状態になるかを選択できる。
また、電子機器100は、外部装置200がリピータ装置である場合、CECコマンド以外の手段により、外部装置200の動作状態を判定するようにした。
これにより、電子機器100は、論理アドレスを含む<Polling Message>、+5V電圧及びTMDSクロック電圧を用いて外部装置200がどのような動作を行うかを判定することができる。このため、電子機器100は、外部装置200の動作状態に応じて、電子機器100が映像データや音声データを外部装置200に送信するように状態になるか、映像データや音声データを外部装置200から受信する状態になるかを選択できる。
また、電子機器100は、外部装置200がCECプロトコルに対応していない場合、CECコマンド以外の手段により、外部装置200の動作状態を判定するようにした。
これにより、電子機器100は、+5V電圧及びTMDSクロック電圧を用いて外部装置200がどのような動作を行うかを判定することができる。このため、電子機器100は、外部装置200の動作状態に応じて、電子機器100が映像データや音声データを外部装置200に送信するように状態になるか、映像データや音声データを外部装置200から受信する状態になるかを選択できる。
実施例1において、外部装置200は、アンプ100から第1のコマンドを受信した場合、外部装置200は第1のコマンドに含まれる論理アドレス「5」を既に持っているか否かを判定すると説明した。これに対して、「外部装置200は、アンプ100から第1のコマンドを受信した場合、外部装置200は第1のコマンドに含まれる論理アドレス「5」が割り当てられているか否かを判定する」と言い換えてもよいものとする。そのため、外部装置200が第2のコマンドを受信した場合も外部装置200が第3のコマンドを受信した場合も同様に言い換えてもよいものとする。
(他の実施例)
本発明に係る電子機器100は、実施例1で説明した電子機器100に限定されるものではない。例えば、本発明に係る電子機器100は、複数の装置から構成されるシステムにより実現することも可能である。
また、実施例1で説明した様々な処理及び機能は、コンピュータプログラムにより実現することも可能である。この場合、本発明に係るコンピュータプログラムは、コンピュータ(CPU等を含む)で実行可能であり、実施例1で説明した様々な機能を実現することになる。
本発明に係るコンピュータプログラムは、コンピュータ上で稼動しているOS(Operating System)などを利用して、実施例1で説明した様々な処理及び機能を実現してもよいことは言うまでもない。
本発明に係るコンピュータプログラムは、コンピュータ読取可能な記録媒体から読み出され、コンピュータで実行されることになる。コンピュータ読取可能な記録媒体には、ハードディスク装置、光ディスク、CD−ROM、CD−R、メモリカード、ROM等を用いることができる。また、本発明に係るコンピュータプログラムは、通信インターフェースを介して外部装置からコンピュータに提供され、当該コンピュータで実行されるようにしてもよい。