(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-15
(45)【発行日】2023-12-25
(54)【発明の名称】通信装置、ケーブル装置及びディスプレイ装置
(51)【国際特許分類】
H04N 21/436 20110101AFI20231218BHJP
G06F 13/38 20060101ALI20231218BHJP
【FI】
H04N21/436
G06F13/38 350
(21)【出願番号】P 2020120391
(22)【出願日】2020-07-14
【審査請求日】2022-09-09
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】100091487
【氏名又は名称】中村 行孝
(74)【代理人】
【識別番号】100105153
【氏名又は名称】朝倉 悟
(74)【代理人】
【識別番号】100107582
【氏名又は名称】関根 毅
(74)【代理人】
【識別番号】100118876
【氏名又は名称】鈴木 順生
(72)【発明者】
【氏名】友田 一郎
【審査官】醍醐 一貴
(56)【参考文献】
【文献】国際公開第2019/021901(WO,A1)
【文献】特開2019-046066(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00-21/858
G06F 13/38-13/42
(57)【特許請求の範囲】
【請求項1】
マスタ装置と共通に接続された第1信号線から電圧を検出する電圧検出部と、
前記マスタ装置と共通に接続された第2信号線から読み出しコマンドを検出した場合に、前記電圧の値に応じた時間長の第1信号を、前記マスタ装置と共通に接続された第3信号線に出力し、
前記第1信号の出力が終了した後、前記第3信号線上で前記マスタ装置と異なる他の通信装置からの第1信号が検出されない場合に、前記第2信号線に前記読み出しコマンドに応じた情報を含む第2信号を出力するコントローラ、
を備えた通信装置。
【請求項2】
第1アドレスを保持する保持部を備え、
前記コントローラは、
前記読み出しコマンドが前記第1アドレスを含む場合に、前記第3信号線に前記第1信号を出力し、
前記第3信号線上で前記他の通信装置からの前記第1信号が検出された場合に、前記保持部に保持されている前記第1アドレスを第2アドレスに変更し、
前記第2信号線から第2読み出しコマンドを検出し、
前記第2読み出しコマンドが前記第2アドレスを含む場合に、前記第1信号を前記第3信号線に出力し、
前記第1信号の出力が終了した後、前記第3信号線上で前記他の通信装置からの第1信号が検出されない場合に、前記第2信号線に前記第2信号を出力する
請求項1に記載の通信装置。
【請求項3】
前記第1信号線は電源線であり、
前記第2信号線は
データ信号線であり
前記第3信号線は
クロック信号線である
請求項1又は2に記載の通信装置。
【請求項4】
前記第2信号線は
データ信号線であり
前記第3信号線は
クロック信号線であり、
前記第1信号線は前記データ信号線及び前記クロック信号線のうちの1つである
請求項1又は2に記載の通信装置。
【請求項5】
前記電圧の値が大きいほど前記第1信号の時間長は大きい
請求項1~4のいずれか一項に記載の通信装置。
【請求項6】
前記電圧の値が大きいほど前記第1信号の時間長は小さい
請求項1~4のいずれか一項に記載の通信装置。
【請求項7】
前記第2信号線及び前記第3信号線は、I2Cバスであり、
前記第1信号は、I2Cバス仕様に定められたクロックストレッチ信号である
請求項1~6のいずれか一項に記載の通信装置。
【請求項8】
前記I2Cバスは、VESA標準規格の1つであるDDC(Display Data Channel)として用いられ、
前記通信装置及び前記他の通信装置は、前記マスタ装置及びディスプレイ装置間を接続するケーブル装置であり、
前記通信装置及び前記他の通信装置は直列に接続されている
請求項7に記載の通信装置。
【請求項9】
前記通信装置は、ケーブル装置であり、
前記読み出しコマンドに応じた前記情報は、ケーブル情報を含む
請求項1~8のいずれか一項に記載の通信装置。
【請求項10】
前記通信装置は、ディスプレイ装置であり、
前記読み出しコマンドに応じた前記情報は、ディスプレイ情報を含む
請求項1~7のいずれか一項に記載の通信装置。
【請求項11】
複数のスレーブ装置と共通に接続された信号線に、読み出し用のアドレスである第1アドレスを含む第1読み出しコマンドを出力し、
前記第1アドレスを有する前記スレーブ装置のうちの1つから前記第1読み出しコマンドに応じた情報を含む応答信号を、前記信号線を介して受信し、
前記応答信号を受信した場合に、前記読み出し用のアドレスを、前記複数のスレーブ装置のうち前記応答信号を送信しなかったスレーブ装置が前記スレーブ装置のアドレスである前記第1アドレスを変更する方式と同じ方式で第2アドレスに変更し、
前記第2アドレスを含む第2読み出しコマンドを前記信号線に出力するコントローラ
を備えた通信装置。
【請求項12】
前記コントローラは、前記複数のスレーブ装置のいずれからも応答信号が受信されなくなるまで、前記読み出し用のアドレスの変更と、変更後のアドレスを含む読み出しコマンドの出力とを繰り返し行う
請求項11に記載の通信装置。
【請求項13】
複数のスレーブ装置と共通に接続された電源線に電源電圧を供給する電源を備え、
前記コントローラは、前記第1アドレスを有する前記スレーブ装置のうち前記電源線から検出される電圧が最も大きい又は小さいスレーブ装置から前記応答信号を受信する
請求項11又は12に記載の通信装置。
【請求項14】
ホスト装置と共通に接続された電源線から電圧を検出する電圧検出部と、
前記ホスト装置と共通に接続されたデータ信号線から読み出しコマンドを検出した場合に、前記電圧の値に応じた時間長の第1信号を前記ホスト装置と共通に接続されたクロック信号線に出力し、
前記第1信号の出力が終了した後、前記クロック信号線上で前記ホスト装置と異なる他のスレーブ装置からの第1信号が検出されない場合に、前記データ信号線にケーブル情報を含む第2信号を出力するコントローラと、
を備えたケーブル装置。
【請求項15】
ホスト装置と共通に接続された電源線から電圧を検出する電圧検出部と、
前記ホスト装置と共通に接続されたデータ信号線から読み出しコマンドを検出した場合に、前記電圧の値に応じた時間長の第1信号を前記ホスト装置と共通に接続されたクロック信号線に出力し、
前記第1信号の出力が終了した後、前記クロック信号線上で前記ホスト装置と異なる他のスレーブ装置からの第1信号が検出されない場合に、前記データ信号線にディスプレイ情報を含む第2信号を出力するコントローラと、
を備えたディスプレイ装置。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、通信装置、ケーブル装置及びディスプレイ装置に関する。
【背景技術】
【0002】
HDMI(High Definition Media Interface)などによる有線のデータ伝送において、昨今、ケーブルに接続された送信機または受信機に、ケーブル情報を取得させる機能を持たせることが行われるようになってきた。これは一般に以下のように実現されている。ケーブル内部に不揮発性メモリと通信用マイコンを持たせてケーブル装置とし、不揮発性メモリにケーブルがどのような機能・性能を持つかのケーブル情報を不揮発性メモリに記憶しておく。ケーブル装置が送信機あるいは受信機に接続したときに、送信機あるいは受信機がケーブル装置のマイコンからケーブル情報を読み込む。この動作は一般に、送信機あるいは受信機からデータ読み出しコマンドを発行し、このコマンドを受信したケーブル装置のマイコンが不揮発性メモリに記憶されたケーブル情報を読み出して応答することで実現される。送信機あるいは受信機は、ケーブル情報に基づいて、通信速度及び電力供給などの機能を選択して、ケーブルを介した通信を行う。
【0003】
しかしながら、2本以上のケーブル装置が直列に接続されている場合、読み出しコマンドに対して、複数のケーブル装置のマイコンが同時に応答信号を送信し、応答信号が衝突する場合がある。例えば、読み出しコマンドで指定したアドレスが、両ケーブルのマイコンで同じであった場合に、この問題が生じ得る。この場合、送信機あるいは受信機は、ケーブル情報を正しく取得できなくなる。
【0004】
またデータ読み出しコマンドはケーブル装置のマイコンのみならず、送信機あるいは受信機でも受信される。このためデータ読み出しコマンドで指定したアドレスが、ケーブル装置のマイコンと、受信機あるいは送信機とで同じであった場合、両方から同時に応答信号が送信される。この場合、応答信号が衝突し、送信機あるいは受信機は、ケーブル情報を正しく取得できなくなる。
【先行技術文献】
【特許文献】
【0005】
【文献】2016-119563号公報
【文献】2019-46066号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本実施形態は、直列に接続された複数の通信装置に記憶された情報を正しく伝送することを可能にする通信装置、ケーブル装置及びディスプレイ装置を提供する。
【課題を解決するための手段】
【0007】
本実施形態の通信装置は、マスタ装置と共通に接続された第1信号線から電圧を検出する電圧検出部と、前記マスタ装置と共通に接続された第2信号線から読み出しコマンドを検出した場合に、前記電圧の値に応じた時間長の第1信号を前記マスタ装置と共通に接続された第3信号線に出力し、前記第1信号の出力が終了した後、前記第3信号線から前記マスタ装置と異なる他の通信装置からの第1信号が検出されない場合に、前記第2信号線に前記読み出しコマンドに応じた情報を含む第2信号を出力するコントローラと、を備える。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る通信システムの全体構成のブロック図。
【
図2】
図1の通信システムにおけるスレーブ装置の動作の一例のフローチャート。
【
図3】
図1の通信システムにおけるマスタ装置であるホスト装置の動作の一例のフローチャート。
【
図4】本実施形態に係る通信システムの動作シーケンスの例を示す図。
【
図7】本実施形態に係る通信システムの動作シーケンスの他の例を示す図。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら、本発明の実施形態について説明する。
図1は、本実施形態に係る通信システムの全体構成のブロック図である。
図1の通信システムは、2つのケーブル装置10及びケーブル装置20と、ホスト装置30と、ディスプレイ装置40とを備える。ホスト装置30はマスタ装置であり、ケーブル装置10、ケーブル装置20、ディスプレイ装置40はスレーブ装置である。ケーブル装置は2台存在するが、ケーブル装置の台数は1でも、3以上でもよい。ケーブル装置10及びケーブル装置20は、直列に接続されており、ホスト装置30は、直列に接続されたケーブル装置10及びケーブル装置20を介して、ディスプレイ装置40と接続されている。
【0010】
本実施形態では、ホスト装置30、ケーブル装置10、ケーブル装置20、ディスプレイ装置40は、VESA Display Data Channel(DDC)に従って通信を行う。DDCは、HDMI又はDisplayPortなどのインターフェイス規格においてデバイス情報をやり取りするために用いられる通信方式である。
【0011】
DDC仕様では通信路としてI2C(Inter-Integrated Circuit)バス仕様に則った方式を利用するものとされている。I2Cバスは、クロック用の信号線であるSCL信号線と、データ用の信号線であるSDA信号線とを含む。I2Cバスではマスタ/スレーブ型のプロトコルに基づいた動作が行われ、DDC仕様ではホスト装置30はマスタ装置、ディスプレイ装置40およびケーブル装置10、20がスレーブ装置として動作する。SCL信号線は、各スレーブ装置がマスタ装置と共通に接続される第2信号線(又は第1信号線)の一例に相当する。SDA信号線は、各スレーブ装置がマスタ装置と共通に接続される第3信号線(又は第1信号線)の一例に相当する。
【0012】
ホスト装置30、ケーブル装置10、ケーブル装置20及びディスプレイ装置40は、SCL信号線、SDA信号線および電源線に共通に接続されている。電源線は、ホスト装置30から直流電力をケーブル装置10、ケーブル装置20、ディスプレイ装置40に供給するための信号線である。電源線は、各スレーブ装置(10、20、40)がマスタ装置と共通に接続された第1信号線の一例である。
【0013】
ケーブル装置10はホスト装置30と接続する接続インターフェイス(コネクタ)、及びケーブル装置20と接続する接続インターフェイスを備えている。またケーブル装置20は、ケーブル装置10と接続する接続インターフェイス、及びディスプレイ装置40と接続する接続インターフェイスを備えている。本実施形態では、ホスト装置30は、2つのケーブル装置を介して、ディスプレイ装置40と接続されているが、1つのケーブル装置のみを介してディスプレイ装置40と接続されてもよい。
【0014】
[ホスト装置30]
図1において、ホスト装置30は、ケーブル装置10及びケーブル装置20を介して、ディスプレイ装置40に映像データ、音声データ又はこれらの両方のデータを提供するソース機器である。ホスト装置30は、マスタコントローラ31と、電源32と、記憶部33とを備えている。マスタコントローラ31は、I2Cバスのマスタとしてのプロトコルを実行するマイコンである。
【0015】
電源32は、電源線に電力(電圧・電流)を供給する。電源線に供給される電力は、ケーブル装置10、ケーブル装置20及びディスプレイ装置40の動作電力として用いられる。なお、電源線についてDDC仕様には定められていない。HDMIにおいては、電源線の電圧は、例えば5[V]であることが定められており、本実施形態においても電源線の電圧として5[V]を用いることができる。但し、本実施形態は電源線の電圧値には依存しないので、他の電圧でもよい。
【0016】
記憶部33は、情報又はデータを記憶する。記憶部33は一例としてRAM等の揮発性メモリ、ハードディスク又はSSD(Solid State Drive)などの記憶媒体を含む。記憶部33はマスタコントローラ31によって情報又はデータを読み書き可能である。
【0017】
マスタコントローラ31は、読み出し用のアドレスの初期値(第1アドレス)を設定し、設定したアドレスを宛先アドレスとして含む読み出しコマンドを、I2Cバスプロトコルに従って、SDA信号線を介して出力する。I2Cバスプロトコルに従ったデータ通信では、マスタコントローラ31はSCL信号線にクロックを出力する。クロックの立ち上がり又は立ち下がりのタイミングに同期させて、マスタコントローラ31又はスレーブコントローラ11、21、41がSDA信号線に“1”又は“0”を表す信号(ハイレベル信号又はローレベル信号)を出力する。
【0018】
マスタコントローラ31は、I2Cバスプロトコルに従って、読み出しコマンドに応じた情報を含む応答信号を受信する。読み出しコマンドに応じた情報は、応答信号を送信した装置がケーブル装置10又はケーブル装置20のときはケーブル情報、ディスプレイ装置40のときはディスプレイ情報である。
【0019】
マスタコントローラ31は、読み出しコマンドに対して、複数のスレーブ装置(10、20、40)のうちのうちの1つから応答信号を受信する。マスタコントローラ31は、一例として読み出しコマンドで指定したアドレスを有するスレーブ装置のうち電源線から検出される電圧が最も大きい(又は最も小さい)スレーブ装置から応答信号を受信する。マスタコントローラ31は、応答信号に含まれる情報を、応答信号の送出元のスレーブ装置のアドレスと対応づけて記憶部33に格納してもよい。マスタコントローラ31は、応答信号した場合に、読み出し用のアドレスを予め決められた方式で変更する(例えば1インクリメントする)。変更の方式は、複数のスレーブ装置のうち応答信号を送信しなかったスレーブ装置が当該スレーブ装置のアドレスを変更する方式と同じである。マスタコントローラ31は、変更後のアドレスを宛先アドレスとして含む読み出しコマンドを、I2Cバスプロトコルに従って、SDA信号線を介して出力する。マスタコントローラ31は、複数のスレーブ装置のいずれからも応答信号が受信されなくなるまで、読み出し用のアドレスの変更と、変更後のアドレスを宛先アドレスとして含む読み出しコマンドの出力とを繰り返し行う。
【0020】
[ケーブル装置10]
ケーブル装置10は、ケーブル本体(図示せず)と、ケーブル本体内に格納された、スレーブコントローラ11、電圧検出部12及び記憶部13を備えている。記憶部13は、RAM(Random Access Memory)14及びROM(Read On Memory)15を備えている。ケーブル装置10は、電源線から供給される電力に基づき、スレーブコントローラ11、電圧検出部12、RAM14及びROM15を駆動する。スレーブコントローラ11、電圧検出部12、RAM14及びROM15は電源線に接続されている。またスレーブコントローラ11は、SCL信号線及びSDA信号線に接続されている。
【0021】
スレーブコントローラ11は、I2Cバスのスレーブのプロトコルを実行するマイコンであり、ケーブル装置10全体を制御する。
【0022】
電圧検出部12は、電源線の電圧を検出し、検出した電圧の値をスレーブコントローラ11に提供する。電圧検出部12は、アナログ回路、デジタル回路又はこれらの組み合わせにより構成される。
【0023】
ROM14には、ケーブル装置10のケーブル情報が記憶されている。ケーブル情報は、ケーブル装置10がサポートしている機能及び性能に関する情報を含む。後述するように、ホスト装置30は、I2Cバスを介して、ケーブル装置10のケーブル情報を読み込む。ホスト装置30は、ケーブル情報に基づきケーブル装置10がサポートしている範囲内で、ケーブル装置10を用いた通信を行う。
【0024】
ケーブル情報は、一例として通信速度の最大値、又は最大値に応じたカテゴリを示す値を含む。最大値の例として、4.9Gbps、18Gbps又は48Gbpsなどがある。また、ケーブル情報の他の例として、イーサネットを伝送する機能をサポートするか否かのビットがある。また、HDMI Ethernet channel(HDMIケーブルを用いてEthernetを伝送する機能)又はAudio return channel(AVアンプ等にサラウンドサウンド等を伝送する機能)の機能をサポートするか否かを示すビットがある。また、ホスト装置からオプションとして電源線をパワーアップするための電力の供給をケーブル装置が受ける必要があるか否かを示すビットがある。その他、ケーブル装置のメーカーを表すID番号、ケーブル装置の製品名等の情報がある。
【0025】
RAM15は、I2Cバスにおけるケーブル装置10のアドレスを記憶している。RAM15はアドレスを保持する保持部である。アドレスは複数のビットにより表される値である。アドレスはスレーブコントローラ11によって書き換え可能である。RAM15は揮発性メモリでも、不揮発性メモリでもよい。
【0026】
スレーブコントローラ11は、SDA信号線上でホスト装置30からの読み出しコマンド(第1読み出しコマンド又は第2読み出しコマンド)を検出した場合に、読み出しコマンドの宛先アドレスがRAM15に記憶されているアドレスと一致するかを判断する。一致する場合に、電圧検出部12で検出される電圧の値に応じた時間長(バックオフ時間)のクロックストレッチ信号を生成し、生成したクロックストレッチ信号をSCL信号線に出力する。クロックストレッチ信号は、SCL信号線をローレベルに維持する信号である。クロックストレッチ信号は、電圧検出部12で検出された電圧の値に応じた時間長の第1信号に相当する。
【0027】
バックオフ時間は、一例として、検出される電圧の値が大きいほど、長い値を有する。例えば、電圧値をX、バックオフ時間をYとすると、バックオフ時間Yは、電圧値Xの単調増加関数によって表すことができる。単調増加関数によってバックオフ時間を算出する式の一例を、以下の式(1)に示す。
Y[ms]=X[V]*10[ms/V] (1)
【0028】
バックオフ時間は、検出される電圧の値が大きいほど、短い値を有してもよい。この場合、バックオフ時間は、一例として、電圧値の単調減少関数によって表すことができる。
【0029】
スレーブコントローラ11は、クロックストレッチ信号の出力が終了した後、SCL信号線上で他のスレーブ装置(ケーブル装置20、ディスプレイ装置40)からのクロックストレッチ信号(第1信号)が検出されるかを判断する。検出されない場合に、ROM14に記憶されているケーブル情報を読み出す。スレーブコントローラ11は、読み出しコマンドに応じた情報としてケーブル情報を含む応答信号(第2信号)を、I2Cバスプロトコルに従って、SDA信号線を介して、ホスト装置30に送信する。
【0030】
スレーブコントローラ11は、他のスレーブ装置からのクロックストレッチ信号が検出された場合に、RAM15に記憶されているアドレスを更新する。RAM15に初期のアドレスとして第1アドレスが格納されていた場合、第1アドレスを第2アドレスに変更する。アドレスを変更する方式は、他のスレーブ装置(ケーブル装置20、ディスプレイ装置40)と同じであり、またホスト装置30が読み出しコマンドで指定するアドレスを変更する方式とも同じである。アドレスの変更後、ホスト装置30から読み出しコマンドが受信されるごとに、上記と同様の処理を繰り返し行う。
【0031】
[ケーブル装置20]
ケーブル装置20は、スレーブコントローラ21、電圧検出部22、記憶部23を備えている。記憶部23は、RAM24及びROM25を備えている。ケーブル装置20は、電源線から供給される電力に基づき、スレーブコントローラ21、電圧検出部22、RAM24及びROM25を駆動する。スレーブコントローラ21、電圧検出部22、RAM24及びROM25は電源線に接続されている。またスレーブコントローラ21は、SCL信号線及びSDA信号線に接続されている。
【0032】
スレーブコントローラ21は、I2Cバスのスレーブのプロトコルを実行するマイコンであり、ケーブル装置20全体を制御する。
【0033】
電圧検出部22は、電源線の電圧を検出し、検出した電圧の値をスレーブコントローラ21に提供する。電圧検出部22は、アナログ回路、デジタル回路又はこれらの組み合わせにより構成される。
【0034】
ROM24には、ケーブル装置20のケーブル情報が記憶されている。ケーブル情報は、ケーブル装置20がサポートしている機能及び性能に関する情報を含む。後述するように、ホスト装置30は、I2Cバスを介して、ケーブル装置20のケーブル情報を読み込む。ホスト装置30は、ケーブル情報に基づきケーブル装置20がサポートしている範囲内で、ケーブル装置20を用いた通信を行う。
【0035】
RAM25は、I2Cバスにおけるケーブル装置20のアドレスを記憶している。RAM25はアドレスを保持する保持部である。アドレスは複数のビットにより表される値である。アドレスは、スレーブコントローラ21によって書き換え可能である。RAM25は、不揮発性メモリでも、揮発性メモリでもよい。
【0036】
スレーブコントローラ21は、SDA信号線上でホスト装置30からの読み出しコマンド(第1読み出しコマンド又は第2読み出しコマンド)を検出した場合に、読み出しコマンドの宛先アドレスがRAM25に記憶されているアドレスと一致するかを判断する。一致する場合に、電圧検出部22で検出される電圧の値に応じた時間長(バックオフ時間)のクロックストレッチ信号を生成し、生成したクロックストレッチ信号をSCL信号線に出力する。クロックストレッチ信号は、電圧検出部22で検出された電圧の値に応じた時間長の第1信号に相当する。バックオフ時間の算出の詳細は前述した内容と同様である。
【0037】
スレーブコントローラ21は、クロックストレッチ信号の出力が終了した後、SCL信号線上で他のスレーブ装置(ケーブル装置10、ディスプレイ装置40)からのクロックストレッチ信号(第1信号)が検出されるかを判断する。検出されない場合に、ROM24に記憶されているケーブル情報を読み出す。スレーブコントローラ21は、読み出しコマンドに応じた情報としてケーブル情報を含む応答信号(第2信号)を、I2Cバスプロトコルに従って、SDA信号線を介して、ホスト装置30に送信する。
【0038】
スレーブコントローラ21は、他のスレーブ装置からのクロックストレッチ信号が検出された場合に、RAM25に記憶されているアドレスを更新する。RAM25に初期のアドレスとして第1アドレスが格納されていた場合、第1アドレスを第2アドレスに変更する。アドレスを変更する方式は、他のスレーブ装置(ケーブル装置10、ディスプレイ装置40)と同じであり、またホスト装置30が読み出しコマンドで指定するアドレスを変更する方式とも同じである。アドレスの変更後、ホスト装置30から読み出しコマンドが受信されるごとに、上記と同様の処理を繰り返し行う。
【0039】
[ディスプレイ装置40]
ディスプレイ装置40は、ホスト装置30からケーブル装置10及びケーブル装置20を介して受信した映像データを画面に表示するシンク機器である。ディスプレイ装置40がホスト装置30から音声データを受信し、音声データを再生する機能を備えていてもよい。ディスプレイ装置40は映像又は音声等のデータを出力する出力装置の一例である。
【0040】
ディスプレイ装置40は、スレーブコントローラ41、電圧検出部42、記憶部43を備えている。記憶部43は、RAM44及びROM45を備えている。ディスプレイ装置40は、電源線から供給される電力に基づき、スレーブコントローラ41、電圧検出部42、RAM44及びROM45を駆動する。スレーブコントローラ41、電圧検出部42、RAM44及びROM45は電源線に接続されている。またスレーブコントローラ41は、SCL信号線及びSDA信号線に接続されている。
【0041】
スレーブコントローラ41は、I2Cバスのスレーブのプロトコルを実行するマイコンであり、ディスプレイ装置40全体を制御する。
【0042】
電圧検出部42は、電源線の電圧を検出し、検出した電圧の値をスレーブコントローラ41に提供する。電圧検出部42は、アナログ回路、デジタル回路又はこれらの組み合わせにより構成される。
【0043】
ROM44には、ディスプレイ装置40のディスプレイ情報が記憶されている。ディスプレイ情報は、ディスプレイ装置40がサポートしている機能及び性能に関する情報を含む。後述するように、ホスト装置30は、I2Cバスを介してディスプレイ情報を読み込む。ホスト装置30は、ディスプレイ情報に基づくディスプレイ装置40がサポートしている範囲内で、ディスプレイ装置40と通信を行う。ディスプレイ情報は、一例として推奨解像度、リフレッシュレート、アスペクト比、メーカー、型番、シリアル番号などを含む。
【0044】
RAM45は、I2Cバスにおけるディスプレイ装置40のアドレスを記憶している。RAM45はアドレスを保持する保持部である。アドレスは複数のビットにより表される値である。アドレスはスレーブコントローラ41によって書き換え可能である。RAM45は不揮発性メモリでも、揮発性メモリでもよい。
【0045】
スレーブコントローラ41は、SDA信号線上でホスト装置30からの読み出しコマンド(第1読み出しコマンド又は第2読み出しコマンド)を検出した場合に、読み出しコマンドの宛先アドレスがRAM45に記憶されているアドレスと一致するかを判断する。一致する場合に、電圧検出部42で検出される電圧の値に応じた時間長(バックオフ時間)のクロックストレッチ信号を生成し、生成したクロックストレッチ信号をSCL信号線に出力する。クロックストレッチ信号は、電圧検出部42で検出された電圧の値に応じた時間長の第1信号に相当する。バックオフ時間の算出の詳細は前述した内容と同様である。
【0046】
スレーブコントローラ41は、クロックストレッチ信号の出力が終了した後、SCL信号線上で他のスレーブ装置(ケーブル装置10、20)からのクロックストレッチ信号(第1信号)が検出されるかを判断する。検出されない場合に、ROM44に記憶されているディスプレイ情報を読み出す。スレーブコントローラ41は、読み出しコマンドに応じた情報としてディスプレイ情報を含む応答信号(第2信号)を、I2Cバスプロトコルに従って、SDA信号線を介して、ホスト装置30に送信する。
【0047】
スレーブコントローラ41は、他のスレーブ装置からのクロックストレッチ信号が検出された場合に、RAM45に記憶されているアドレスを更新する。RAM45に初期のアドレスとして第1アドレスが格納されていた場合、第1アドレスを第2アドレスに変更する。アドレスを変更する方式は、他のスレーブ装置(ケーブル装置10、20)と同じであり、またホスト装置30が読み出しコマンドで指定するアドレスを変更する方式とも同じである。アドレスの変更後、ホスト装置30から読み出しコマンドが受信されるごとに、上記と同様の処理を繰り返し行う。
【0048】
図2は、
図1の通信システムにおけるスレーブ装置(ケーブル装置10、ケーブル装置20、ディスプレイ装置40)の動作の一例のフローチャートである。
【0049】
図2のステップS11において、ケーブル装置10、ケーブル装置20及びディスプレイ装置40は、自装置のアドレスの初期値として0xA0をRAMに格納する(S11)。例えば、各々のスレーブコントローラが動作開始時にRAMに0xA0を格納するようプログラムされていてもよい。あるいは、ホスト装置30が各スレーブコントローラにブロードキャストでRAMに0xA0を格納することを指示するコマンドを出力してもよい。各装置10、20、40のRAMには同じアドレス(0xA0)が格納される。
【0050】
ホスト装置30から、I2Cバスプロトコルに従って、宛先アドレス0xA0の読み出しコマンドがSDA信号線を介して送出される。各装置10、20、40のスレーブコントローラは、I2Cバスプロトコルに従って、ホスト装置30からの読み出しコマンドを受信する(S12)。
【0051】
各装置10、20、40のスレーブコントローラは、読み出しコマンドで指定されたアドレスが、RAMに格納されている自装置のアドレスと一致するかを判断する(S13)。自装置のアドレスと一致しないと判断した場合、ステップS12に戻る。自装置のアドレスと一致していると判断した場合、電圧検出のステップS14に進む。本例では、各装置10、20、40のスレーブコントローラのいずれも、読み出しコマンドで指定されたアドレスが自装置で記憶しているアドレスと一致すると判断し、電圧検出のステップS14に進む。
【0052】
ステップS14において、各装置10、20、40のスレーブコントローラは、電圧検出部を用いて、電源線の電圧を取得する。電源線には伝送損失があるため、電源から遠くなるにつれ、検出される電圧は小さくなる。本例では、ケーブル装置10で検出される電圧が最も大きく、ディスプレイ装置40で検出される電圧が最も小さい。例えばケーブル装置10において検出された電圧が4.9[V]、ケーブル装置20において検出された電圧が4.8[V]、ディスプレイ装置40で検出された電圧が4.7[V]である。
【0053】
各装置10、20、40のスレーブコントローラは、取得した電圧の値に基づいて、SCL信号線に出力するクロックストレッチ信号の長さであるバックオフ時間を算出する(S15)。
【0054】
上述の式(1)を用いてバックオフ時間を算出する場合、例えば、ケーブル装置10においては49[ms]、ケーブル装置20においては48[ms]、ディスプレイ装置40においては47[ms]がバックオフ時間として算出される。
【0055】
各装置10、20、40のスレーブコントローラは、算出したバックオフ時間の時間長のクロックストレッチ信号を、SCL信号線に出力する(S16)。クロックストレッチ信号は、SCL信号線をローレベルに維持する信号である。クロックストレッチ信号を出力することをクロックストレッチと呼ぶ。クロックストレッチ信号が出力されると、マスタ装置であるホスト装置30はSCL信号線にクロックを出力できなくなり、クロックストレッチの解除を待機する。
【0056】
各装置10、20、40のスレーブコントローラは、クロックストレッチ信号を出力し終わった後、SCL信号線に他の装置のスレーブコントローラからのクロックストレッチ信号が検出されるかを判断する(S17)。各装置10、20、40のスレーブコントローラは、他の装置のスレーブコントローラからのクロックストレッチ信号が検出されない場合は、自装置がホスト装置30からの読み出しコマンドに応答する権利を有すると判断する。
【0057】
各装置10、20、40のクロックストレッチ信号は異なるバックオフ時間を有するため、最も長い時間長のクロックストレッチ信号を出力した装置は、自装置からのクロックストレッチ信号を出力し終わった後、他の装置からのクロックストレッチ信号を検出しない。残りの2つの装置は、自装置からのクロックストレッチ信号を出力し終わった後、他の装置からのクロックストレッチ信号を検出する。
【0058】
上述の例では、ケーブル装置10のクロックストレッチ信号が最も長いため、ケーブル装置10のスレーブコントローラは、自装置からのクロックストレッチ信号を出力し終わった後、他の装置からのクロックストレッチ信号をSCL信号線上で検出しない(S17のNO)。ケーブル装置20及びディスプレイ装置40は、自装置からのクロックストレッチ信号を出力し終わった後、他の装置からのクロックストレッチ信号をSCL信号線上で検出する(S17のYES)。
【0059】
他の装置からのクロックストレッチ信号が検出されないと判断した装置(ここではケーブル装置10)は、I2Cバスプロトコルに従って、ホスト装置30からの読み出しコマンドに対する応答信号を送信する(S18)。応答信号は、装置のROMに格納されているデータ(ここではケーブル装置10のROMに格納されているケーブル情報)を含む。これにより、ホスト装置30のマスタコントローラ31では、ケーブル装置10のケーブル情報が取得される。
【0060】
一方、クロックストレッチ信号を出力し終わった後に他の装置からのクロックストレッチ信号を検出した装置(ここではケーブル装置20、ディスプレイ装置40)は、応答信号を送信せず、自装置のRAMに格納されているアドレスを変更する(S19)。一例として、RAMに現在格納されているアドレスに所定値を加算することがある。ここでは、例えばRAMに格納されているアドレスに1を加算する。この結果、装置20、40のアドレスはいずれも、0xA0から0xA1に更新される。すなわち、装置20のRAMには0xA1が格納され、装置40のRAMにも0xA1が格納される。
【0061】
次に、2ラウンド目として、ホスト装置30のマスタコントローラ31から、宛先アドレス0xA1の読み出しコマンドが、I2Cバスプロトコルに従って、SDA信号線を介して送信される。読み出しコマンドは、I2Cバスプロトコルに従って、ケーブル装置10,20及びディスプレイ装置40で受信される(S12)。
【0062】
ケーブル装置10のスレーブコントローラは、読み出しコマンドの宛先アドレス0xA1は、自装置のRAMに記憶されているアドレス(0xA0)と一致しないと判断し(S13)、ステップS12に戻る。
【0063】
一方、ケーブル装置20及びディスプレイ装置40は、読み出しコマンドの宛先アドレス0xA1は、自装置のRAMに記憶されているアドレス(0xA1)と一致すると判断する(S13)。よって、電源線の電圧の検出(S14)、バックオフ時間の算出(S15)、及び算出したバックオフ時間の長さを有するクロックストレッチ信号の出力(S16)を行う。そして、ケーブル装置20及びディスプレイ装置40は、自装置がクロックストレッチ信号を出し終わった後、I2Cバス上に他のクロックストレッチ信号が検出されるかを判断する(S17)。
【0064】
ここでは、ケーブル装置20のクロックストレッチ信号がディスプレイ装置40のクロックストレッチ信号より長いため、ケーブル装置20は、自装置がクロックストレッチ信号を出し終わった後、I2Cバス上に他のクロックストレッチ信号を検出しない(S17のNO)。よって、ケーブル装置20のスレーブコントローラは応答信号を送信する権利を有すると判断し、I2Cバスプロトコルに従って、自装置のROMに格納されているケーブル情報を含む応答信号をホスト装置30に送信する(S18)。これにより、ホスト装置30のマスタコントローラ31では、ケーブル装置20のケーブル情報が取得される。
【0065】
一方、ディスプレイ装置40は、自装置がクロックストレッチを出し終わった後、I2Cバス上にケーブル装置20が出力するクロックストレッチを検出する(S17のYES)。このため、ディスプレイ装置40は、応答信号を送信せず、自装置のRAMに格納されているアドレスを1インクリメントして、0xA2に変更する(S19)。
【0066】
この時点で、ケーブル装置10のRAMには自装置のアドレスとして0xA0が記憶されており、ケーブル装置20のRAMには自装置のアドレスとして0xA1が記憶されている。また、ディスプレイ装置40のRAMには自装置のアドレスとして0xA2が記憶されている。
【0067】
この後、3ラウンド目として、ホスト装置30のマスタコントローラ31から、宛先アドレス0xA2の読み出しコマンドが、I2Cバスプロトコルに従って、SDA信号線を介して送信される。読み出しコマンドは、I2Cバスプロトコルに従って、ケーブル装置10,20及びディスプレイ装置40で受信される(S12)。
【0068】
ケーブル装置10、20のスレーブコントローラは、読み出しコマンドの宛先アドレス0xA2は、自装置のRAMに記憶されているアドレス(0xA0又は0xA1)と一致しないと判断し(S13)、ステップS12に戻る。
【0069】
一方、ディスプレイ装置40は、読み出しコマンドの宛先アドレス0xA2は、自装置のRAMに記憶されているアドレス(0xA2)と一致すると判断する(S13)。よって、電源線の電圧の検出(S14)、バックオフ時間の算出(S15)、及び算出したバックオフ時間の長さを有するクロックストレッチ信号の出力(S16)を行う。そして、ディスプレイ装置40は、自装置がクロックストレッチ信号を出し終わった後、I2Cバス上に他のクロックストレッチ信号が検出されるかを判断する(S17)。
【0070】
ここでは、ディスプレイ装置40以外にクロックストレッチ信号を出力する装置は存在せず、ディスプレイ装置40は、自装置がクロックストレッチ信号を出し終わった後、I2Cバス上に他のクロックストレッチ信号を検出しない(S17のNO)。よって、ディスプレイ装置40のスレーブコントローラは応答信号を送信する権利を有すると判断し、I2Cバスプロトコルに従って、自装置のROMに格納されているディスプレイ情報を含む応答信号をホスト装置30に送信する(S18)。これにより、ホスト装置30のマスタコントローラ31では、ディスプレイ装置40のディスプレイ情報が取得される。
【0071】
最終的な結果として、ホスト装置30のマスタコントローラ31では、ケーブル装置10のケーブル情報、ケーブル装置20のケーブル情報、ディスプレイ装置のディスプレイ情報が取得される。すなわち、各スレーブ装置からの応答信号が衝突することなく、ホスト装置30のマスタコントローラ31は、各スレーブから各々の情報を正しく取得できる。
【0072】
図3は、
図1の通信システムにおけるマスタ装置であるホスト装置30の動作の一例のフローチャートである。ホスト装置30のマスタコントローラ31は、読み出し用のアドレスの初期値を設定する(S31)。ここではアドレスの初期値として0xA0を設定する。マスタコントローラ31は、I2Cバスプロトコルに従って、宛先アドレスとして当該初期値を指定した読み出しコマンドを、SDA信号線を介して送信する(S32)。マスタコントローラ31は、I2Cバスに接続されているいずれかのスレーブ装置(ケーブル装置10、ケーブル装置20又はディスプレイ装置40)からの応答信号を待機する(S33)。マスタコントローラ31は一定時間以上経過しても、応答信号を受信しない場合は(S34のNO)を、処理を終了する。
【0073】
マスタコントローラ31は、応答信号を受信した場合は(S34)は、応答信号に含まれる情報(ケーブル情報又はディスプレイ情報等)を、取得元のスレーブ装置のアドレス(初期値のアドレスである0xA0)に対応付けて記憶部33に格納する。マスタコントローラ31は、読み出しに用いるスレーブ装置のアドレスを変更する(S35)。アドレスの変更方法は、I2Cバスに接続されている各スレーブ装置と共通に認識されている限り、任意でよい。一例として、ステップS32で読み出しに用いたアドレスに所定値を加算することがある。ここでは、例えば当該アドレスに1を加算する。この結果、読み出しに用いるアドレスは、0xA0から0xA1に更新される。ステップS32に戻り、更新後のアドレスを宛先アドレスとして指定した読み出しコマンドを、I2Cバスプロトコルに従って、SDA信号線を介して送信する。以降、ステップS34でいずれのスレーブ装置からの応答信号を受信しないと判定されるまで、同様の処理を繰り返す。
【0074】
図4は、ホスト装置30、ケーブル装置10、ケーブル装置20及びディスプレイ装置40の動作シーケンスの例を示す。
図5は
図4に続く動作シーケンスの例を示す図である。
図6は
図5に続く動作シーケンスの例を示す図である。
図4~
図6の動作シーケンスは、
図2及び
図3のフローチャートを用いて説明した具体例に対応している。
【0075】
図4において、ケーブル装置10、ケーブル装置20、ディスプレイ装置40の各RAMには、自装置のアドレスの初期値として、0xA0が格納されている。ホスト装置30がアドレスとして0xA0を指定した読み出しコマンドを送信し、ケーブル装置10、ケーブル装置20、ディスプレイ装置40が読み出しコマンドを受信する。
【0076】
各装置10、20、40は、読み出しコマンドのアドレスが自装置のアドレスに一致していると判断する。各装置10、20、40は、電源線から電圧を検出し、検出した電圧値に基づきバックオフ時間を算出する。ここでは電圧値が大きいほど、バックオフ時間の長さを大きくする。
【0077】
各装置10、20、40は、算出したバックオフ時間を有するクロックストレッチ信号をSCL信号線に出力する。本例では、ケーブル装置10は49[ms]のバックオフ時間のクロックストレッチ信号を出力し、ケーブル装置20は48[ms]のバックオフ時間のクロックストレッチ信号を出力し、ディスプレイ装置40は47[ms]のバックオフ時間のクロックストレッチ信号を出力する。各装置10、20、40からクロックストレッチ信号が出力されるタイミングは同じ又はほぼ同じである。
【0078】
ディスプレイ装置40は自装置がクロックストレッチ信号の出力が終了し終わった後に、SCL信号線上でケーブル装置10又はケーブル装置20のクロックストレッチ信号が検出される。このためディスプレイ装置40は読み出しコマンドに応答する権利がないと判断し、応答信号を送信しない。ディスプレイ装置40は自装置のRAMに格納されているアドレスを1インクリメントする。この結果、アドレスは、0xA1に更新される。
【0079】
ケーブル装置20は自装置がクロックストレッチ信号の出力が終了し終わった後に、SCL信号線上でケーブル装置10のクロックストレッチ信号が検出される。このためケーブル装置20は読み出しコマンドに応答する権利がないと判断し、応答信号を送信しない。ケーブル装置20は自装置のRAMに格納されているアドレスを1インクリメントする。この結果、アドレスは、0xA1に更新される。
【0080】
ケーブル装置10は、自装置がクロックストレッチ信号の出力が終了し終わった後に、SCL信号線上で他の装置からクロックストレッチ信号が検出されないため、読み出しコマンドに応答する権利があると判断する。ケーブル装置10は、自装置のROMに格納されているケーブル情報を読み出し、ケーブル情報を含む応答信号を、I2Cバスプロトコルに従って、送信する。なお、ケーブル装置10は、自装置のRAMに格納されているアドレスを更新する必要はない。
【0081】
図5において、ホスト装置30は読み出しに用いるアドレスを1インクリメントして0xA1とし、宛先アドレスとして0xA1を指定した読み出しコマンドを送信する。ケーブル装置10、ケーブル装置20、ディスプレイ装置40が読み出しコマンドを受信する。
【0082】
ケーブル装置10は読み出しコマンドのアドレスが自装置のアドレスに一致していないと判断し、何も行わない。各装置20、40は、読み出しコマンドのアドレスが自装置のアドレスに一致していると判断する。各装置20、40は、電源線から電圧を検出し、検出した電圧値に基づきバックオフ時間を算出する。ここでは電圧値が大きいほど、バックオフ時間の長さを大きくする。なお、電圧値の検出を省略し、最初に読み出しコマンドを受信したときに検出した電圧値を再利用してもよい。あるいは、バックオフ時間の算出を省略し、最初に算出したバックオフ時間の値を再利用してもよい。
【0083】
各装置20、40は、算出したバックオフ時間を有するクロックストレッチ信号をSCL信号線に出力する。ケーブル装置20は48[ms]のバックオフ時間のクロックストレッチ信号を出力し、ディスプレイ装置40は47[ms]のバックオフ時間のクロックストレッチ信号を出力する。各装置20、40からクロックストレッチ信号が出力されるタイミングは同じ又はほぼ同じである。
【0084】
ディスプレイ装置40は自装置がクロックストレッチ信号の出力が終了し終わった後に、SCL信号線上でケーブル装置20のクロックストレッチ信号が検出される。このためディスプレイ装置40は読み出しコマンドに応答する権利がないと判断し、応答信号を送信しない。ディスプレイ装置40は自装置のRAMに格納されているアドレスを1インクリメントする。この結果、アドレスは、0xA2に更新される。
【0085】
ケーブル装置20は、自装置がクロックストレッチ信号の出力が終了し終わった後に、SCL信号線上で他の装置からクロックストレッチ信号が検出されないため、読み出しコマンドに応答する権利があると判断する。ケーブル装置20は、自装置のROMに格納されているケーブル情報を読み出し、ケーブル情報を含む応答信号を、I2Cバスプロトコルに従って、ホスト装置30に送信する。なお、ケーブル装置20は、自装置のRAMに格納されているアドレスを更新する必要はない。
【0086】
図6において、ホスト装置30は読み出しに用いるアドレスを1インクリメントして0xA2とし、宛先アドレスとして0xA2を指定した読み出しコマンドを送信する。ケーブル装置10、ケーブル装置20、ディスプレイ装置40が読み出しコマンドを受信する。
【0087】
ケーブル装置10、20は読み出しコマンドのアドレスが自装置のアドレスに一致していないと判断し、何も行わない。ディスプレイ装置40は、読み出しコマンドのアドレスが自装置のアドレスに一致していると判断する。ディスプレイ装置40は、電源線から電圧を検出し、検出した電圧値に基づきバックオフ時間を算出する。なお、電圧値の検出を省略し、最初又は2回目に読み出しコマンドを受信したときに検出した電圧値を再利用してもよい。バックオフ時間の算出を省略し、最初又は2回目に算出したバックオフ時間の値を再利用してもよい。
【0088】
ディスプレイ装置40は、算出したバックオフ時間を有するクロックストレッチ信号をSCL信号線に出力する。ディスプレイ装置40は47[ms]のバックオフ時間のクロックストレッチ信号を出力する。
【0089】
ディスプレイ装置40は、自装置がクロックストレッチ信号の出力が終了し終わった後に、SCL信号線上で他の装置からクロックストレッチ信号が検出されないため、読み出しコマンドに応答する権利があると判断する。ディスプレイ装置40は、自装置のROMに格納されているディスプレイ情報を読み出し、ディスプレイ情報を含む応答信号を、I2Cバスプロトコルに従って、ホスト装置30に送信する。
【0090】
以上の動作シーケンスにより、ホスト装置30は、ケーブル装置10のケーブル情報、ケーブル装置20のケーブル情報、ディスプレイ装置40のディスプレイ情報を取得する。
【0091】
以上の動作シーケンスによれば、各スレーブ装置からの応答信号が衝突することないため、ホスト装置30は、各スレーブ装置からの応答信号を正しく受信することができる。
【0092】
図4~
図6の具体例では電圧検出部で検出した電圧値が大きいほどクロックストレッチ信号のバックオフ時間を長くしたが、電圧検出部で検出した電圧値が大きいほどクロックストレッチ信号のバックオフ時間を短くしてもよい。この場合の動作シーケンス例を
図7、
図8及び
図9に示す。
【0093】
この場合、バックオフ時間を算出する式として、単調減少関数を用いることができる。単調減少関数によってバックオフ時間を算出する式の一例を、以下の式(2)に示す。
Y[ms]=1/X[V]*200[ms/V] (2)
【0094】
各装置10、20、40で検出された電圧が4.9[V]、4.8[V]、4.7[V]であるとする。式(2)を用いてバックオフ時間を算出する場合、算出されるバックオフ時間は、ケーブル装置10においては40[ms]、ケーブル装置20においては41[ms]、ディスプレイ装置40においては42 [ms]となる(式(2)で計算される値の端数は切り捨て)。
【0095】
この結果、
図7に示すように、ディスプレイ装置40が最も長いクロックストレッチ信号を出力し、ケーブル装置10が最も短いクロックストレッチ信号を出力する。このためディスプレイ装置40が最初に応答信号を送信する。次に、
図8に示すように、ケーブル装置20が応答信号を送信し、最後に、
図9に示すように、ケーブル装置10が応答信号を送信する。
【0096】
(変形例)
本実施形態では各装置10、20、40の電圧検出部は電源線の電圧を検出したが、SCL信号線またはSDA信号線の電圧を取得してもよい。例えば、SCL信号線又はSDA信号線は2値の電圧(ハイレベル信号、ローレベル信号)を有するため、例えば読み出しコマンドの受信時に、ハイレベル信号の電圧をSCL信号線又はSDA信号線から検出してもよい。そして、検出した電圧の値に基づき各装置10、20、40でバックオフ時間を算出してもよい。
【0097】
なお、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素を適宜組み合わせることによって種々の発明を形成できる。また例えば、各実施形態に示される全構成要素からいくつかの構成要素を削除した構成も考えられる。さらに、異なる実施形態に記載した構成要素を適宜組み合わせてもよい。
【符号の説明】
【0098】
10 ケーブル装置(スレーブ装置)
11 スレーブコントローラ
12 電圧検出部
13 記憶部
20 ケーブル装置(スレーブ装置)
21 スレーブコントローラ
22 電圧検出部
23 記憶部
30 ホスト装置(マスタ装置)
31 マスタコントローラ
32 電源
33 記憶部
40 ディスプレイ装置(スレーブ装置)
41 スレーブコントローラ
42 電圧検出部
43 記憶部