特開2018-206267(P2018-206267A)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニーセミコンダクタソリューションズ株式会社の特許一覧
特開2018-206267通信装置、通信方法、プログラム、および、通信システム
<>
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000003
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000004
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000005
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000006
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000007
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000008
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000009
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000010
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000011
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000012
  • 特開2018206267-通信装置、通信方法、プログラム、および、通信システム 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2018-206267(P2018-206267A)
(43)【公開日】2018年12月27日
(54)【発明の名称】通信装置、通信方法、プログラム、および、通信システム
(51)【国際特許分類】
   G06F 13/14 20060101AFI20181130BHJP
   G06F 13/38 20060101ALI20181130BHJP
   H04L 12/40 20060101ALI20181130BHJP
【FI】
   G06F13/14 330E
   G06F13/38 330A
   G06F13/14 320A
   H04L12/40 A
【審査請求】未請求
【請求項の数】13
【出願形態】OL
【全頁数】28
(21)【出願番号】特願2017-113851(P2017-113851)
(22)【出願日】2017年6月8日
(71)【出願人】
【識別番号】316005926
【氏名又は名称】ソニーセミコンダクタソリューションズ株式会社
【住所又は居所】神奈川県厚木市旭町四丁目14番1号
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【識別番号】100082131
【弁理士】
【氏名又は名称】稲本 義雄
(72)【発明者】
【氏名】越坂 直弘
【住所又は居所】神奈川県厚木市岡田四丁目16番1号 ソニーLSIデザイン株式会社内
(72)【発明者】
【氏名】高橋 宏雄
【住所又は居所】神奈川県厚木市旭町四丁目14番1号 ソニーセミコンダクタソリューションズ株式会社内
【テーマコード(参考)】
5B077
5K032
【Fターム(参考)】
5B077BA09
5K032AA01
5K032CC10
5K032DA02
5K032DA13
5K032EC03
(57)【要約】
【課題】より確実に効率良く通信を行う。
【解決手段】マスタが、セカンダリマスタによる要求に応じて通信の主導権を譲渡する際に、その要求をしてきたセカンダリマスタがグループ管理能力を有するか否かを判定する。そして、グループ管理能力を有さないと判定された場合、バスに接続されている全ての通信装置に対してグループアドレスのリセットを指示し、グループ管理能力を有すると判定された場合、グループアドレスを設定した状態のまま、通信の主導権を譲渡する。本技術は、例えば、バスIFに適用できる。
【選択図】図4
【特許請求の範囲】
【請求項1】
バスを介した通信の主導権を有する通信装置であって、
前記通信装置による制御に従って通信を行う他の通信装置と通信が行われ、
前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、
前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記通信装置が、
前記他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定する処理、
および、前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示する処理
を行う処理実行部と
を備える通信装置。
【請求項2】
前記処理実行部は、通信の主導権を要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有さないと判定した場合、前記バスに接続されている全ての通信装置に対して前記グループアドレスのリセットを指示する処理を行う
請求項1に記載の通信装置。
【請求項3】
前記処理実行部は、前記グループ管理能力を有すると判定された場合、前記グループアドレスを設定した状態のまま、通信の主導権を譲渡する
請求項1に記載の通信装置。
【請求項4】
前記処理実行部は、前記グループアドレスのリセットを行った後、通信の主導権の譲渡を要求してきた前記特定の他の通信装置以外に、前記グループ管理能力を有している前記特定の他の通信装置がある場合、前記グループ管理能力を有している前記特定の他の通信装置との間で、全ての前記通信装置のグループアドレスに関する情報を共有する処理を行う
請求項1に記載の通信装置。
【請求項5】
通信の主導権を得た前記特定の他の通信装置は、前記通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する
請求項1に記載の通信装置。
【請求項6】
バスを介した通信の主導権を有する通信装置の通信方法であって、
前記通信装置による制御に従って通信を行う他の通信装置と通信が行われ、
前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、
前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記他の通信装置との間における信号の送受信を制御し、
前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定し、
前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示する
ステップを含む通信方法。
【請求項7】
バスを介した通信の主導権を有する通信装置が内蔵するコンピュータに実行させるプログラムにおいて、
前記通信装置による制御に従って通信を行う他の通信装置と通信が行われ、
前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、
前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記他の通信装置との間における信号の送受信を制御し、
前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定し、
前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示する
ステップを含む処理を実行させるプログラム。
【請求項8】
バスを介した通信の主導権を有する通信装置と、前記通信装置による制御に従って通信を行う他の通信装置とにより通信が行われる通信システムにおいて、
前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、
前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記通信装置が、
前記他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定する処理、
および、前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示する処理
を行う処理実行部と
を備える通信システム。
【請求項9】
バスを介した通信の主導権を有する特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置であって、
前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記通信装置が、
前記特定の他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記特定の他の通信装置に対して通信の主導権を要求する処理、
および、通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する処理
を行う処理実行部と
を備える通信装置。
【請求項10】
前記処理実行部は、前記グループ管理能力を有している前記他の通信装置との間で、全ての前記通信装置のグループアドレスに関する情報を共有する処理を行う
請求項9に記載の通信装置。
【請求項11】
バスを介した通信の主導権を有する特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置の通信方法であって、
前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記特定の他の通信装置との間における信号の送受信を制御し、
前記特定の他の通信装置に対して通信の主導権を要求し、
通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する
ステップを含む通信方法。
【請求項12】
バスを介した通信の主導権を有する特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置が内蔵するコンピュータに実行させるプログラムにおいて、
前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記特定の他の通信装置との間における信号の送受信を制御し、
前記特定の他の通信装置に対して通信の主導権を要求し、
通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する
ステップを含む処理を実行させるプログラム。
【請求項13】
バスを介した通信の主導権を有する特定の他の通信装置と、前記通信装置による制御に従って通信を行う他の通信装置と、前記特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置とにより通信が行われる通信システムにおいて、
前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記通信装置が、
前記特定の他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記特定の他の通信装置に対して通信の主導権を要求する処理、
および、通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する処理
を行う処理実行部と
を備える通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置、通信方法、プログラム、および、通信システムに関し、特に、より確実に効率良く通信を行うことができるようにした通信装置、通信方法、プログラム、および、通信システムに関する。
【背景技術】
【0002】
従来、各種のデバイスにおけるレジスタを制御するためのバスIF(Interface)としてCCI(Camera Control Interface)が広く使用されており、CCIでは、物理層にI2C(Inter-Integrated Circuit)規格が採用されている。また、近年、I2Cの高速化を実現することが求められており、次世代の規格としてI3C(Improved Inter Integrated Circuit)の規定が策定され、その改定が進められている。
【0003】
例えば、I2CおよびI3Cは、バスIFを介した通信の主導権を有するマスタによる制御に従って、バスIFに接続されているスレーブと通信を行うことができるように構成される。さらに、I3Cでは、I2Cのデバイスと通信を行うことができるように互換性を維持する機能や、バスIFに途中からスレーブが参加することを可能とするホットジョインと称される機能、複数のマスタどうしでマスタ権限を譲渡する機能などが提供される。
【0004】
また、特許文献1には、I3Cにおいて、通信のスタートやストップなどの誤検出に伴って通信不能となることを回避するようにエラー検出方法を定義することで、より確実に通信を行うことが可能な通信装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2017/061330号
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、現行のI3Cの規格では、バスIFに接続された全てのデバイスを相手先として通信を行うこと、および、バスIFに接続された任意の1つのデバイスを相手先として通信を行うことが規定されている。
【0007】
そのため、例えば、バスIFに接続された任意の複数台のデバイスに同一の内容の書き込みを行いたい場合、マスタは、それらのデバイスに対して個々に書き込み転送を繰り返して行わなければならなかった。従って、より効率良く通信を行うことができるようにするために、任意の複数台のデバイスを相手先として通信を行う手法を確立することが考えられる。そして、そのような手法で通信を行うのに伴って発生することが懸念される通信エラーを回避し、確実に通信が行われるようにすることが必要となる。
【0008】
本開示は、このような状況に鑑みてなされたものであり、より確実に効率良く通信を行うことができるようにするものである。
【課題を解決するための手段】
【0009】
本開示の第1の側面の通信装置は、バスを介した通信の主導権を有する通信装置であって、前記通信装置による制御に従って通信を行う他の通信装置と通信が行われ、前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、前記通信装置が、前記他の通信装置との間における信号の送受信を制御する送受信制御部と、前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定する処理、および、前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示する処理を行う処理実行部とを備える。
【0010】
本開示の第1の側面の通信方法またはプログラムは、バスを介した通信の主導権を有する通信装置の通信方法、または、バスを介した通信の主導権を有する通信装置が内蔵するコンピュータに実行させるプログラムにおいて、前記通信装置による制御に従って通信を行う他の通信装置と通信が行われ、前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、前記他の通信装置との間における信号の送受信を制御し、前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定し、前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示するステップを含む。
【0011】
本開示の第1の側面の通信システムは、バスを介した通信の主導権を有する通信装置と、前記通信装置による制御に従って通信を行う他の通信装置とにより通信が行われる通信システムにおいて、前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、前記通信装置が、前記他の通信装置との間における信号の送受信を制御する送受信制御部と、前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定する処理、および、前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示する処理を行う処理実行部とを備える。
【0012】
本開示の第1の側面においては、通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信が制御され、特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた特定の他の通信装置がグループ管理能力を有するか否かが判定され、グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する他の通信装置に対してグループアドレスのリセットが指示される。
【0013】
本開示の第2の側面の通信装置は、バスを介した通信の主導権を有する特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置であって、前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、前記通信装置が、前記特定の他の通信装置との間における信号の送受信を制御する送受信制御部と、前記特定の他の通信装置に対して通信の主導権を要求する処理、および、通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する処理を行う処理実行部とを備える。
【0014】
本開示の第2の側面の通信方法またはプログラムは、バスを介した通信の主導権を有する特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置の通信方法、または、その通信装置が内蔵するコンピュータに実行させるプログラムであって、前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、前記特定の他の通信装置との間における信号の送受信を制御し、前記特定の他の通信装置に対して通信の主導権を要求し、通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得するステップを含む。
【0015】
本開示の第2の側面の通信システムは、バスを介した通信の主導権を有する特定の他の通信装置と、前記通信装置による制御に従って通信を行う他の通信装置と、前記特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置とにより通信が行われる通信システムにおいて、前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、前記通信装置が、前記特定の他の通信装置との間における信号の送受信を制御する送受信制御部と、前記特定の他の通信装置に対して通信の主導権を要求する処理、および、通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する処理を行う処理実行部とを備える。
【0016】
本開示の第2の側面においては、特定の他の通信装置との間における信号の送受信が制御され、特定の他の通信装置に対して通信の主導権が要求され、通信の主導権を得て、特定の他の通信装置としての振る舞いを開始する際に、バスに参加している他の通信装置のグループアドレスに関連するグループ関連能力情報に不足がある場合、不足しているグループ関連能力情報が取得される。
【発明の効果】
【0017】
本開示の第1および第2側面によれば、より確実に効率良く通信を行うことができる。
【0018】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【0019】
図1】本技術を適用したバスIFの一実施の形態の構成例を示すブロック図である。
図2】マスタおよびスレーブの構成例を示すブロック図である。
図3】デバイス情報が登録されたテーブルの一例を示す図である。
図4】マスタシップリクエスト受け付け時の処理を説明するフローチャートである。
図5】マスタシップリクエスト発行時の処理を説明するフローチャートである。
図6】RSTGRPAコマンドの第1のフォーマット例を示す図である。
図7】RSTGRPAコマンドの第2のフォーマット例を示す図である。
図8】書き込み転送における通信フォーマットの一例を示す図である。
図9】書き込み転送および読み出し転送における通信フォーマットの一例を示す図である。
図10】書き込み転送および読み出し転送における通信フォーマットの一例を示す図である。
図11】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【0020】
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0021】
<バスIFの構成例>
図1は、本技術を適用したバスIFの一実施の形態の構成例を示すブロック図である。
【0022】
図1に示されているバスIF11は、3台のマスタ12−1乃至12−3および6台のスレーブ13−1乃至13−6が、シリアルデータSDAを伝送するデータ信号線14と、シリアルクロックSCLを伝送するクロック信号線15とを介して接続されて構成される。
【0023】
マスタ12−1および12−2、並びに、スレーブ13−1乃至13−4は、新たに提案されるバージョンのI3Cの規格(I3C_v1.1)に準拠している。また、マスタ12−3およびスレーブ13−5は、現行のバージョンのI3Cの規格(I3C_v1.0)に準拠しており、スレーブ13−6は、I2Cの規格に準拠している。このように、バスIF11は、I3C_v1.1に準拠しているデバイス、I3C_v1.0に準拠しているデバイス、およびI2Cの規格に準拠しているデバイスが混在しても運用可能に構成される。
【0024】
また、I3Cでは、稼働している状態のバスIF11に途中から参加することを可能とする機能であるホットジョインが規定されている。図1において破線で示されているスレーブ13−4は、例えば、パワーオフとされてバスIF11に参加していない状態を表している。そして、スレーブ13−4は、パワーオンとなった後にホットジョインリクエストを送信して、バスIF11に参加することができる。
【0025】
マスタ12−1乃至12−3は、バスIF11を介した通信を主導的に制御する機能を備えており、スレーブ13−1乃至13−6は、マスタ12−1乃至12−3のうちの主導権を有する1台の制御に従って、バスIF11を介した通信を行うことができる。なお、以下適宜、マスタ12−1乃至12−3それぞれを区別する必要がない場合、単に、マスタ12と称し、スレーブ13−1乃至13−6それぞれを区別する必要がない場合、単に、スレーブ13と称する。
【0026】
また、マスタ12−1乃至12−3のうち、バスIF11における通信の主導権(以下、マスタ権限と称する)を有する1台のマスタ12をカレントマスタ12Cと称し、その他のマスタ12をセカンダリマスタ12Sと称する。例えば、マスタ権限を有していないセカンダリマスタ12Sは、カレントマスタ12Cの制御に従ってバスIF11を介した通信を行うことができ、カレントマスタ12Cからマスタ権限が譲渡されると、カレントマスタ12Cとして機能する。このように、マスタ12は、通信の主導権を有している状態でカレントマスタ12Cとして機能し、通信の主導権を有していない状態のセカンダリマスタ12Sはスレーブ13と同様に扱われる。従って、本実施の形態では、カレントマスタ12Cの制御に従って通信を行うセカンダリマスタ12Sも、スレーブ13に含まれるものとして説明する。
【0027】
ここで、以下適宜、I3C_v1.1に準拠しているスレーブ13−1乃至13−4、および、I3C_v1.0に準拠しているスレーブ13−5のことを、I3Cスレーブ13とも称する。さらに、I3C_v1.1およびI3C_v1.0いずれかに準拠しているデバイス(即ち、マスタ12およびI3Cスレーブ13)を、I3Cデバイスとも称する。
【0028】
ところで、I3C_v1.1では、カレントマスタ12Cが、任意の複数台のI3Cスレーブ13を相手先として、それらのI3Cスレーブ13に対して一斉に書き込み転送を行うことを可能とするグループアドレスを設定して運用することが検討されている。
【0029】
即ち、後述する図6乃至8に示すようなフォーマットのSETGRPAコマンドを定義することで、同一のグループに属する複数台のI3Cスレーブ13に対して、同一のグループアドレスが設定される。例えば、個々のグループごとにダイナミックアドレスを設定することで、そのダイナミックアドレスをグループアドレスとして使用することができる。なお、1台のI3Cスレーブ13が複数のグループに属することもでき、1台のI3Cスレーブ13に対して、少なくとも1つ以上のグループアドレスを割り当てることが可能とされる。
【0030】
例えば、カレントマスタ12Cは、SETGRPAコマンドを使用して、それぞれのグループに対してグループアドレスを設定する。そして、カレントマスタ12Cは、I3Cで規定される各種の書き込み転送(Direct Write CCC/Private Write/HDR Write)を行う際に、書き込み転送のコマンドのスレーブアドレスフィールドに、グループアドレスを指定する。これにより、カレントマスタ12Cは、1回の書き込み転送で、そのグループに属する複数台のI3Cスレーブ13に対して、一斉にデータを書き込むことができる。
【0031】
一方、I3Cスレーブ13は、バスIF11に参加している全てのI3Cスレーブ13を指定するアドレス7'h7E、自身のダイナミックアドレス、または自身が属するグループアドレスに対する通信を受信して、その通信の内容に従った処理を行う。
【0032】
なお、カレントマスタ12Cが、グループアドレスによる指定を行って複数台のI3Cスレーブ13に対して読み出しコマンドを送信した場合、それらの複数台のI3Cスレーブ13から転送される読み出しデータがコンフリクトすることが想定される。そのため、I3Cで規定される各種の読み出し転送(Direct Read CCC/Private Read/HDR Read)を行う際に、読み出し転送のコマンドのスレーブアドレスフィールドに、グループアドレスを指定することは禁止する運用が想定される。なお、後述の図15および図16に示すように、複数台のI3Cスレーブ13ごとに読み出しデータを出力するタイミングを制御する場合、読み出しデータのコンフリクトを回避することができる。この場合、各種の読み出し転送を行う際に、グループアドレスを指定することを禁止せずに運用することができる。さらに、グループアドレスを指定した読み出し転送をイネーブルとするために、レジスタなどを備えるようにしてもよい。
【0033】
ところで、図1に示すバスIF11は、グループアドレスに関する機能が規定されるI3C_v1.1に準拠しているマスタ12−1および12−2並びにI3Cスレーブ13−1乃至13−4と、グループアドレスに関する機能が規定されていないI3C_v1.0に準拠しているマスタ12−3およびI3Cスレーブ13−5と、I2Cの規格に準拠しているI2Cスレーブ13−6とが混在した構成となっている。
【0034】
このように構成されるバスIF11では、マスタ12−1および12−2が、グループアドレスの割り当てを行うためには、バスIF11に参加している全てのマスタ12およびスレーブ13のうち、グループアドレスに対応しているI3Cデバイスを認識することができるようにI3C_v1.1を規定する必要がある。
【0035】
また、バスIF11に参加している複数のマスタ12がグループアドレスに対応している場合、それらのマスタ12どうしで、他のマスタ12が割り当てたグループアドレスを認識することができるようにI3C_v1.1を規定する必要がある。即ち、あるマスタ12が、他のマスタ12が割り当てたグループアドレスを認識することができない場合、既に使用済みのアドレス値をグループアドレスに使用してしまって、通信エラーが発生することが懸念される。また、あるマスタ12が設定したグループアドレスを、他のマスタ12が書き換えてしまうことにより、グループアドレス情報が破壊されてしまって、通信エラーが発生することが懸念される。
【0036】
そこで、I3C_v1.1に準拠しているマスタ12−1および12−2は、グループアドレスを運用するにあたり、グループアドレスへの対応状況を認識して、グループアドレスを使用することにより発生することが懸念される通信エラーを回避することができるように構成される。これにより、バスIF11では、通信エラーを回避して確実に、グループアドレスを利用して効率良く通信を行うことができる。
【0037】
<マスタおよびスレーブの構成例>
図2は、マスタ12およびスレーブ13の構成例を示すブロック図である。
【0038】
図2に示す構成では、マスタ12は、マスタデバイス21の物理層として組み込まれ、マスタデバイス21は、マスタ12に対して上位となる上位層22(例えば、CCIレイヤ)を備える。同様に、スレーブ13は、スレーブデバイス31の物理層として組み込まれ、スレーブデバイス31は、スレーブ13に対して上位となる上位層32(例えば、CCIレイヤ)を備える。
【0039】
図2に示すように、マスタ12は、送受信制御部41、データ受信部42、データ送信部43、マスタシップリクエスト制御部44、コマンド解釈部45、情報保持部46、コマンド送信部47、およびテーブル保持部48を備えて構成される。なお、これらの各部、または、その一部は、例えば、半導体集積回路や、プログラマブルな半導体集積回路、ソフトウエアなどによって実現するようにしてもよい。
【0040】
送受信制御部41は、バスIF11に接続されている他のデバイスとの間における信号の送受信を制御する。例えば、送受信制御部41は、クロック信号線15を駆動してシリアルクロックSCLを送信し、シリアルクロックSCLのタイミングに合わせてデータ信号線14を駆動することでシリアルデータSDAの他のデバイスへの送信を制御する。また、送受信制御部41は、シリアルクロックSCLのタイミングに合わせて、他のデバイスがデータ信号線14を駆動して送信してくるシリアルデータSDAの受信を制御する。
【0041】
データ受信部42は、送受信制御部41による制御に従って、他のデバイスから送信されてくるデータを受信し、上位層22に供給する。
【0042】
データ送信部43は、上位層22から供給されるデータを、送受信制御部41による制御に従って、他のデバイスに送信する。
【0043】
マスタシップリクエスト制御部44は、上位層22からの要求に従って、マスタ12がセカンダリマスタ12Sであるときに、カレントマスタ12Cに対してマスタ権限の譲渡を要求するマスタシップリクエストの送信に関する制御を行う。
【0044】
コマンド解釈部45は、送受信制御部41による制御に従って受信したコマンドに対する解釈を行って、情報保持部46に保持されている各種の情報を参照し、そのコマンドに応じた処理を実行する。
【0045】
情報保持部46は、コマンド解釈部45がコマンドに応じた処理を行うのに必要な各種の情報を保持することができる。例えば、情報保持部46には、グループに関連する能力であって、マスタ12自身が有する能力を示す情報であるグループ関連能力情報が保持される。例えば、マスタ12自身がグループアドレスを割り当てる能力(以下、グループ管理能力とも称する)を有する場合、情報保持部46には、グループ管理能力を有することを示すグループ関連能力情報が保持される。
【0046】
コマンド送信部47は、上位層22からの要求に従って、送受信制御部41による制御により、バスIF11を介してコマンドを送信する。また、コマンド送信部47は、例えば、マスタ12から送信されたコマンドに応じて、バスIF11に参加しているデバイスから送信されてくるグループ関連能力情報を、テーブル保持部48に供給する。
【0047】
テーブル保持部48は、バスIF11に参加している全てのデバイスに対応付けて、それぞれのデバイスに関するデバイス情報が登録されたデバイス情報テーブル(後述する図3参照)を保持する。例えば、デバイス情報テーブルには、デバイスを識別するデバイスID(Identification)に対応付けて、グループ関連能力情報やグループアドレスなどを含むデバイス情報が登録される。そして、テーブル保持部48は、コマンド送信部47から供給される各デバイスのグループ関連能力情報を、デバイス情報テーブルに保持するとともに上位層22にも通知する。
【0048】
スレーブ13は、送受信制御部51、データ受信部52、データ送信部53、ホットジョインリクエスト制御部54、ダイナミックアドレス保持部55、グループアドレス保持部56、コマンド解釈部57、および情報保持部58を備えて構成される。なお、これらの各部、または、その一部は、例えば、半導体集積回路や、プログラマブルな半導体集積回路、ソフトウエアなどによって実現するようにしてもよい。
【0049】
送受信制御部51は、バスIF11に接続されている他のデバイスとの間における信号の送受信を制御する。例えば、送受信制御部51は、シリアルクロックSCLのタイミングに合わせて、他のデバイスがデータ信号線14を駆動して送信してくるシリアルデータSDAの受信を制御する。また、送受信制御部51は、シリアルクロックSCLのタイミングに合わせてデータ信号線14を駆動することでシリアルデータSDAの他のデバイスへの送信を制御する。
【0050】
データ受信部52は、送受信制御部41による制御に従って、他のデバイスから送信されてくるデータを受信し、上位層32に供給する。
【0051】
データ送信部53は、上位層32から供給されるデータを、送受信制御部41による制御に従って、他のデバイスに送信する。
【0052】
ホットジョインリクエスト制御部54は、例えば、バスIF11に参加していない状態のスレーブ13が、稼働している状態のバスIF11に参加することを要求するホットジョインリクエストの送信に関する制御を行う。
【0053】
ダイナミックアドレス保持部55は、スレーブ13に割り当てられたダイナミックアドレスを保持することができ、コマンド解釈部57による指示に従って、適宜、ダイナミックアドレスを保持する。
【0054】
グループアドレス保持部56は、スレーブ13に割り当てられたグループアドレスを保持することができ、コマンド解釈部57による指示に従って、適宜、グループアドレスを保持する。
【0055】
コマンド解釈部57は、送受信制御部51による制御に従って受信したコマンドに対する解釈を行って、情報保持部58に保持されている各種の情報を参照し、そのコマンドに応じた処理を実行する。
【0056】
情報保持部58は、コマンド解釈部57がコマンドに応じた処理を行うのに必要な各種の情報を保持することができる。例えば、情報保持部58には、グループに関連する能力であって、スレーブ13自身が有する能力を示す情報であるグループ関連能力情報が保持される。例えば、スレーブ13自身がグループアドレスを割り当てられる能力(以下、グループ所属能力とも称する)を有する場合、情報保持部58には、グループ所属能力を有することを示すグループ関連能力情報が保持される。
【0057】
ここで、図3を参照して、テーブル保持部48に保持されるデバイス情報テーブルについて説明する。図3Aには、I3C_v1.1に準拠しているマスタ12−1および12−2のテーブル保持部48に保持されるデバイス情報テーブルの一例が示されており、図3Bには、I3C_v1.0に準拠しているマスタ12−3のテーブル保持部48に保持されるデバイス情報テーブルの一例が示されている。
【0058】
図3Aに示すように、I3C_v1.1のデバイス情報テーブルには、バスIF11に参加している全てのデバイスを識別するデバイスID(図3の例では、デバイスID:A〜H)が登録される。そして、それぞれのデバイスIDに対応付けて、機能情報、スタティックアドレス(SA)、ダイナミックアドレス(DA)、グループ情報有効情報、グループ管理能力情報、グループ所属能力情報、およびグループアドレス(GRPA)が、デバイス情報として登録される。また、このデバイス情報テーブルには、カレントマスタ12Cとなっているマスタ12のデバイスID(図3の例では、デバイスID:A)が登録される。
【0059】
機能情報には、バスIF11に参加しているデバイスが備える機能を示すデバイス情報が登録され、例えば、I3Cメインマスタ、I3Cセカンダリマスタ、I3Cスレーブ、およびI2Cスレーブの何れかを示すデバイス情報が登録される。
【0060】
スタティックアドレスには、デバイスが持つスタティックアドレスを示すアドレス値(SA値)がデバイス情報として登録される他、スタティックアドレスを持たないデバイスに対しては、その旨を示すデバイス情報(無)が登録される。
【0061】
ダイナミックアドレスには、デバイスに割り当てられたダイナミックアドレスを示すアドレス値(DA値)がデバイス情報として登録される他、ダイナミックアドレスを持つことができないデバイス(I2Cデバイス)に対しては、その旨を示すデバイス情報(無)が登録される。また、ダイナミックアドレスには、ダイナミックアドレスを持つことができるが、ダイナミックアドレスが未だ割り当てられていない場合には、その旨を示すデバイス情報(未)が登録される。
【0062】
グループ情報有効情報には、グループ管理能力情報、グループ所属能力情報、およびグループアドレスに登録されているデバイス情報が有効であることを示すデバイス情報(有)、または、それらのデバイス情報が未だ取得されていないことを示すデバイス情報(無)が登録される。
【0063】
グループ管理能力情報には、デバイスがグループアドレスを割り当てる能力を有することを示すデバイス情報(有)、または、デバイスがグループアドレスを割り当てる能力を有さないことを示すデバイス情報(無)が登録される。また、グループ管理能力情報が取得されていないデバイスについては、グループ管理能力情報は空欄のままとなる。
【0064】
グループ所属能力情報には、デバイスがグループアドレスを割り当てられる能力を有することを示すデバイス情報(有)、または、デバイスがグループアドレスを割り当てられる能力を有さないことを示すデバイス情報(無)が登録される。また、グループ所属能力情報が取得されていないデバイスについては、グループ所属能力情報は空欄のままとなる。
【0065】
グループアドレスには、デバイスが所属するグループに割り当てられたグループアドレスを示すアドレス値(GRPA値)がデバイス情報として登録される。また、グループアドレスを割り当てられる応力を有さないデバイス(I2Cデバイスや、グループ所属能力情報を有さないI3Cデバイスなど)に対しては、その旨を示すデバイス情報(無)が登録される。さらに、グループアドレスには、グループアドレスを割り当てられる応力を有するが、グループアドレスが未だ割り当てられていない場合には、その旨を示すデバイス情報(未)が登録される。また、グループアドレスが取得されていないデバイスについては、グループアドレスは空欄のままとなる。
【0066】
また、図3Bに示すように、I3C_v1.0のデバイス情報テーブルには、I3C_v1.1のデバイス情報テーブルに登録されるデバイス情報のうち、それぞれのデバイスIDに対応付けて、機能情報、スタティックアドレス(SA)、およびダイナミックアドレス(DA)が、デバイス情報として登録される。即ち、I3C_v1.0では、グループアドレスについては定義されていないため、グループ情報有効情報、グループ管理能力情報、グループ所属能力情報、およびグループアドレスは、デバイス情報テーブルに登録されない。
【0067】
このように、テーブル保持部48には、スタティックアドレス、ダイナミックアドレス、またはグループアドレスの割り当て状況などが登録されたデバイス情報テーブルが保持される。
【0068】
<マスタシップリクエスト受け付け時の処理>
図4に示すフローチャートを参照して、カレントマスタ12Cが、マスタシップリクエスト受け付け時に行う処理について説明する。
【0069】
例えば、カレントマスタ12Cが、セカンダリマスタ12Sが送信したマスタシップリクエストを受信すると処理が開始される。ステップS11において、カレントマスタ12Cは、マスタシップリクエストに対して、不許可、要求停止、または許可のいずれの応答を行うかを判定する。
【0070】
例えば、カレントマスタ12Cは、マスタシップリクエストを受け付けられない状態であるとき、ステップS11において、マスタシップリクエストに対して不許可の応答を行うと判定し、処理はステップS12に進む。ステップS12において、カレントマスタ12Cは、NACK応答を送信し、処理は終了される。
【0071】
また、カレントマスタ12Cは、マスタシップリクエストを受け付けられない状態であり、その要求を停止させるとき、ステップS11において、マスタシップリクエストに対して要求停止の応答を行うと判定し、処理はステップS13に進む。そして、カレントマスタ12Cは、ステップS13においてNACK応答を送信し、ステップS14において、マスタシップリクエストの発行を禁止するディセーブルコマンドを送信し、処理は終了される。
【0072】
一方、カレントマスタ12Cは、マスタシップリクエストを受け付けられる状態であるとき、ステップS11において、マスタシップリクエストに対して許可の応答を行うと判定し、処理はステップS15に進んで、ACK応答を送信する。
【0073】
ステップS16において、カレントマスタ12Cは、テーブル保持部48に保持されているデバイス情報テーブルを参照して、マスタシップリクエストを送信してきたセカンダリマスタ12S(次のマスタ)は、グループアドレスを割り当てる能力を有するか否かを判定する。例えば、マスタシップリクエストは、その要求を発行したセカンダリマスタ12Sのダイナミックアドレスで送信され、カレントマスタ12Cのデバイス情報テーブルには、ダイナミックアドレスのアドレス値およびグループ管理能力情報が登録されている。従って、カレントマスタ12Cは、マスタシップリクエストを送信してきたセカンダリマスタ12Sがグループアドレスを割り当てる能力を有するか否かを判定することができる。
【0074】
ステップS16において、カレントマスタ12Cが、マスタシップリクエストを送信してきたセカンダリマスタ12Sは、グループアドレスを割り当てる能力を有さないと判定した場合、処理はステップS17に進む。なお、カレントマスタ12Cおよびセカンダリマスタ12Sがグループ管理能力を有することが必須であると規定される場合、ステップS16の処理は省略してもよく、ステップS16をスキップして処理はステップS17へ進む。
【0075】
ステップS17において、カレントマスタ12Cは、バスIF11に参加している全てのI3Cスレーブ13に対して、グループアドレスのリセットを指示するRSTGRPA(後述の図6および図7参照)を送信する。これにより、グループアドレスが登録されているI3Cスレーブ13のグループアドレス保持部56に保持されているグループアドレスがリセットされる。また、このとき、カレントマスタ12Cは、自身のテーブル保持部48に保持されているデバイス情報テーブルに登録されているグループアドレスもリセットする。
【0076】
ステップS18において、カレントマスタ12Cは、テーブル保持部48に保持されているデバイス情報テーブルを参照して、カレントマスタ12C以外に、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sがあるか否かを判定する。
【0077】
ステップS18において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sがあると判定した場合、処理はステップS19に進む。なお、カレントマスタ12Cおよびセカンダリマスタ12Sがグループ管理能力を有することが必須であると規定される場合、ステップS18の処理は省略してもよく、ステップS18をスキップして処理はステップS19へ進む。
【0078】
ステップS19において、カレントマスタ12Cは、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sに対して、グループアドレスに関する情報の共有を指示するDEFGRPSコマンドを送信する。これにより、カレントマスタ12Cは、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sとの間で、バスIF11に参加している全てのデバイスについてのグループアドレスに関する情報を共有する。即ち、カレントマスタ12Cは、ステップS17でグループアドレスをリセットしており、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sのテーブル保持部48に保持されているデバイス情報テーブルのグループアドレスがリセットされる。
【0079】
一方、ステップS16において、カレントマスタ12Cが、マスタシップリクエストを送信してきたセカンダリマスタ12Sは、グループアドレスを割り当てる能力を有すると判定した場合、処理はステップS20に進む。また、ステップS18において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sがないと判定した場合、および、ステップS19の処理後、処理はステップS20に進む。
【0080】
ステップS20において、カレントマスタ12Cは、マスタシップリクエストを送信してきたセカンダリマスタ12Sに対して、マスタ権限を譲渡する準備が整ったことを通知するGETACCMSTコマンドを送信し、ストップコンディション(P)を発行する。
【0081】
ステップS21において、カレントマスタ12Cは、データ信号線14およびクロック信号線15に対してハイインピーダンス状態(Hi-Z)にして、バスIF11に対するドライブを停止した後、処理は終了される。その後、カレントマスタ12Cは、セカンダリマスタ12Sとして振る舞うことになる。
【0082】
以上のように、カレントマスタ12Cは、例えば、バスIF11に、I3C_v1.1に準拠しているデバイスと、I3C_v1.0に準拠しているデバイスとが混在しても、グループアドレスを適切に、即ち、デバイス情報テーブルのグループ関連能力情報に矛盾が発生しないようにグループアドレスをリセットして、運用することができる。このとき、カレントマスタ12Cは、バスIF11に参加している全てのI3Cデバイスに対して、グループアドレスのリセットを指示することができる。または、カレントマスタ12Cは、デバイス情報テーブルのグループ関連能力情報に矛盾が発生しないのであれば、グループごとに、例えば、少なくとも1つのグループに属するI3Cスレーブ13に対してグループアドレスのリセットを指示してもよい。
【0083】
<マスタシップリクエスト発行時の処理>
図5に示すフローチャートを参照して、セカンダリマスタ12Sが、マスタシップリクエスト発行時に行う処理について説明する。
【0084】
ステップS31において、セカンダリマスタ12Sは、バスIF11が使用可能な(Bus Available)状態になるのを待機して、バスIF11が使用可能な状態になったのを確認すると、処理はステップS32に進む。
【0085】
ステップS32において、セカンダリマスタ12Sは、カレントマスタ12Cに対してマスタ権限を要求するマスタシップリクエストを送信する。
【0086】
ステップS33において、セカンダリマスタ12Sは、ステップS32で送信したマスタシップリクエストに対して許可されたか否かを判定し、許可されたと判定されるまで、ステップS31およびS32の処理を繰り返して行う。例えば、セカンダリマスタ12Sは、マスタシップリクエストが他の処理との調停(arbitration)に勝って、カレントマスタ12CからACK応答が送信されてくると、マスタシップリクエストに対して許可されたと判定することができる。
【0087】
そして、ステップS33において、セカンダリマスタ12Sが、ステップS32で送信したマスタシップリクエストに対して許可されたと判定した場合、処理はステップS34に進む。
【0088】
ステップS34において、セカンダリマスタ12Sは、カレントマスタ12Cにおいてマスタ権限を譲渡する準備が整って、ストップコンディションが発行されるのを待機する。そして、図4のステップS20でカレントマスタ12Cが、GETACCMSTコマンドを送信し、ストップコンディション(P)を発行すると、セカンダリマスタ12Sはマスタ権を得て、処理はステップS35に進む。
【0089】
ステップS35において、マスタ権限を得たセカンダリマスタ12Sは、バスIF11に対する駆動を開始する。
【0090】
ステップS36において、マスタ権限を得たセカンダリマスタ12Sは、自身がグループアドレスを割り当てる能力を有するか否かを判定し、グループアドレスを割り当てる能力を有さないと判定された場合、処理は終了される。
【0091】
一方、ステップS36において、マスタ権限を得たセカンダリマスタ12Sが、自身がグループアドレスを割り当てる能力を有すると判定した場合、処理はステップS37に進む。なお、カレントマスタ12Cおよびセカンダリマスタ12Sがグループ管理能力を有することが必須であると規定される場合、ステップS36の処理は省略してもよく、ステップS36をスキップして処理はステップS37へ進む。
【0092】
ステップS37において、マスタ権限を得たセカンダリマスタ12Sは、グループ関連能力情報をまだ取得していないデバイスがあるか否かを判定する。例えば、マスタ権限を得たセカンダリマスタ12Sは、自身のテーブル保持部48に保持されるデバイス情報テーブルに、グループ関連能力情報が不足しているデバイスがある場合、グループ関連能力情報をまだ取得していないデバイスがあると判定することができる。
【0093】
ステップS37において、マスタ権限を得たセカンダリマスタ12Sが、グループ関連能力情報をまだ取得していないデバイスがないと判定した場合、処理は終了される。即ち、この場合、マスタ権限を得たセカンダリマスタ12Sのテーブル保持部48に保持されるデバイス情報テーブルには、全てのデバイスのグループ関連能力情報が登録されている。
【0094】
一方、ステップS37において、マスタ権限を得たセカンダリマスタ12Sが、グループ関連能力情報をまだ取得していないデバイスがあると判定した場合、処理はステップS38に進む。即ち、この場合、マスタ権限を得たセカンダリマスタ12Sのテーブル保持部48に保持されるデバイス情報テーブルでは、グループ関連能力情報に不足が生じている。例えば、セカンダリマスタ12Sにマスタ権限を譲渡したカレントマスタ12Cが、グループアドレスを割り当てる能力を有さない場合、グループ関連能力情報に不足が生じることがある。
【0095】
ステップS38において、マスタ権限を得たセカンダリマスタ12Sは、グループ関連能力情報をまだ取得していないデバイスに対して、グループ関連能力情報の送信の要求を指示するGETGRPCAPコマンドを送信する。これに応じて、マスタ権限を得たセカンダリマスタ12Sが、GETGRPCAPコマンドを送信したデバイスから送信されてくるグループ関連能力情報を取得すると、処理はステップS39に進む。
【0096】
ステップS39において、マスタ権限を得たセカンダリマスタ12Sは、ステップS38で取得したグループ関連能力情報を、図2の上位層22に通知する。これにより、上位層22は、各I3Cデバイスのグループアドレスへの対応を把握することができ、例えば、どのI3Cスレーブ13にグループアドレスを割り当てるかを判断することができる。
【0097】
ステップS40において、マスタ権限を得たセカンダリマスタ12Sは、I3Cスレーブ13にグループアドレスの割り当てを行うか否かを判定する。例えば、マスタ権限を得たセカンダリマスタ12Sは、グループ関連能力情報に基づいて判断を行った上位層22から、グループアドレスの割り当てが指示されると、その指示に従ってI3Cスレーブ13にグループアドレスを割り当てると判定することができる。
【0098】
ステップS40において、マスタ権限を得たセカンダリマスタ12Sが、グループアドレスの割り当てを行うと判定した場合、処理はステップS41に進む。ステップS41において、マスタ権限を得たセカンダリマスタ12Sは、グループアドレスの割り当てを指示するSETGRPAコマンドを送信し、上位層22からの指示に従ったI3Cスレーブ13に対してグループアドレスを割り当てる。
【0099】
一方、ステップS40において、マスタ権限を得たセカンダリマスタ12Sが、グループアドレスの割り当てを行わないと判定した場合、または、ステップS41の処理後、処理はステップS42に進む。
【0100】
ステップS42において、マスタ権限を得たセカンダリマスタ12Sは、テーブル保持部48に保持されているデバイス情報テーブルを参照して、マスタ権限を得たセカンダリマスタ12S以外に、グループアドレスを割り当てる能力を有する他のセカンダリマスタ12Sがあるか否かを判定する。
【0101】
ステップS42において、マスタ権限を得たセカンダリマスタ12Sが、グループアドレスを割り当てる能力を有する他のセカンダリマスタ12Sがあると判定した場合、処理はステップS43に進む。なお、カレントマスタ12Cおよびセカンダリマスタ12Sがグループ管理能力を有することが必須であると規定される場合、ステップS42の処理は省略してもよく、ステップS42をスキップして処理はステップS43へ進む。
【0102】
ステップS43において、マスタ権限を得たセカンダリマスタ12Sは、グループアドレスを割り当てる能力を有する他のセカンダリマスタ12Sに対して、グループアドレスに関する情報の共有を指示するDEFGRPSコマンドを送信する。これにより、マスタ権限を得たセカンダリマスタ12Sは、グループアドレスを割り当てる能力を有する他のセカンダリマスタ12Sとの間で、バスIF11に参加している全てのデバイスについてのグループアドレスに関する情報を共有する。例えば、マスタ権限を得たセカンダリマスタ12Sは、バスIF11に参加している個々のデバイスについて、グループ管理能力情報およびグループ所属能力情報を共有する。さらに、マスタ権限を得たセカンダリマスタ12Sは、ステップS41でI3Cスレーブ13にグループアドレスを割り当てた場合には、グループアドレスを共有する。
【0103】
ステップS42で、マスタ権限を得たセカンダリマスタ12Sが、グループアドレスを割り当てる能力を有する他のセカンダリマスタ12Sがないと判定した場合、または、ステップS43の処理後、処理は終了される。その後、マスタ権限を得たセカンダリマスタ12Sは、カレントマスタ12Cとして振る舞い、ダイナミックアドレスおよびグループアドレスを使用した通信を行うことができる。
【0104】
マスタ権限を得たセカンダリマスタ12Sは、例えば、バスIF11に、I3C_v1.1に準拠しているデバイスと、I3C_v1.0に準拠しているデバイスとが混在しても、グループアドレスを適切に、即ち、デバイス情報テーブルのグループ関連能力情報に不足が発生しないように取得して、運用することができる。
【0105】
<RSTGRPAコマンドのフォーマット例>
図6には、図4のステップS17で送信されるRSTGRPAコマンドの第1のフォーマット例が示されている。
【0106】
RSTGRPAコマンド(Broadcast)は、バスIF11に参加している全てのI3Cデバイスに対して、グループアドレスのリセットを指示する。
【0107】
図6に示す例では、まず、カレントマスタ12Cは、スタートコンディション(S)を発行し、バスIF11に参加している全てのデバイスを指定するアドレス7'h7Eを送信するのに続いて、グループアドレスのリセットを指示するコモンコマンドコード(Broadcast RSTGRPA CCC)を送信する。
【0108】
そして、RSTGRPAコマンドを受信したグループ所属能力を有するデバイスは、グループアドレスが割り当てられていない場合には何もせず、グループアドレスが割り当てられている場合には自身のグループアドレスをリセットする。
【0109】
一方、グループ所属能力を有さないデバイスは、RSTGRPAコマンドを受信しても無視しなければならない。例えば、I3C_v1.0の規格では、サポートしないダイレクトコモンコマンドコード(Broadcast CCC)を受信したデバイスは、無視することが規定されている。そして、RSTGRPAコマンドは、I3C_v1.0の規格では規定されていないため、I3C_v1.0に準拠するデバイスは、RSTGRPAコマンドに対しては、必ず、無視することになる。
【0110】
また、グループアドレスを割り当てる能力を有しているマスタ12は、図6に示すようなRSTGRPAコマンドを必ず送信することができるようにI3C_v1.1で規定する必要がある。一方、グループアドレスを割り当てる能力を有していないマスタ12は、図6に示すようなRSTGRPAコマンドを送信してはならないとI3C_v1.1で規定する必要がある。
【0111】
図7には、RSTGRPAコマンドの第2のフォーマット例が示されている。
【0112】
図7に示すRSTGRPAコマンド(Broadcast)は、1台のI3Cスレーブ13に対して、少なくとも1つ以上のグループアドレスを割り当てられている場合に、それらのグループアドレスをリセットする際に用いられる。
【0113】
そして、RSTGRPAコマンドを受信したグループ所属能力を有するデバイスは、1つ以上のグループアドレスが割り当てられている場合、自身のグループアドレスを全てリセットする。
【0114】
以上のようなフォーマットのRSTGRPAコマンドを用いて、カレントマスタ12Cは、バスIF11に参加している全てのI3Cデバイスに対して、一旦割り当てたグループアドレスをリセットすることができる。
【0115】
<グループアドレスを利用した通信フォーマット>
図8乃至図10を参照して、グループアドレスを利用した通信において用いられる通信フォーマットについて説明する。
【0116】
図8には、書き込み転送(I3C Directed CCC Write)における通信フォーマットの一例が示されている。
【0117】
図8に示すように、任意の複数台のI3Cスレーブ13を相手先としてカレントマスタ12Cから送信されるグループアドレス(I3C Group Address)に対し、I3Cスレーブ13からACKが返信され、その後、そのグループを対象として書き込むデータ(Optional Write Data)が送信される。そして、必要なデータ量だけ、そのグループアドレスを相手先としたデータの送信が行われる。
【0118】
なお、同一のグループに所属する複数台のI3Cスレーブ13のうち、多数のI3Cスレーブ13がACKを返信し、一部のI3Cスレーブ13がNACKを送信した場合、カレントマスタ12CがNACKを認識することができないことも想定されるが、その後の通信処理におけるエラー検出で対応することにより、正常な通信を行うことが可能である。
【0119】
図9には、書き込み転送(I3C Private Write)および読み出し転送(I3C Private Read)における通信フォーマットの一例が示されている。
【0120】
図9に示す4つの通信フォーマットのうちの、上側の2つが書き込み転送における通信フォーマットを表しており、下側の2つが書き込み転送における通信フォーマットを表している。
【0121】
書き込み転送では、任意の複数台のI3Cスレーブ13を相手先としてカレントマスタ12Cから送信されるグループアドレス(I3C Group Address)に対し、I3Cスレーブ13からACKが返信され、その後、そのグループを対象として書き込むN個のデータ(Write Data-1〜Write Data-N)が送信される。
【0122】
読み出し転送では、同一のグループに所属する複数台のI3Cスレーブ13について、順次、それぞれのI3Cスレーブ13からN個のデータ(Read Data-1〜Read Data-N)が読み出される。即ち、複数台のI3Cスレーブ13から読み出されたデータがコンフリクトを発生しないように、それぞれのI3Cスレーブ13からデータを読み出すタイミングが異なるものとなるように制御する必要がある。
【0123】
図10には、書き込み転送(I3C Private Write)および読み出し転送(I3C Private Read)における通信フォーマットの一例が示されている。
【0124】
図9に示した通信フォーマットと同様に、書き込み転送では、グループを対象として書き込むN個のデータが送信され、読み出し転送では、同一のグループのI3Cスレーブ13ごとに順次、N個のデータが読み出される。
【0125】
例えば、スタートコンディション(Sのみ、Srは含まず)の後のグループアドレス(I3C Group Address)は、カレントマスタ12C側からオープンドレイン出力によって400kHz程度でデータ転送が行われる。このとき、最初の1バイトのみオープンドレイン出力とし、それ以降のビット(6bit+R/W)は、プッシュプル出力によって12.5MHzでデータ転送されるようにしてもよい。
【0126】
<コンピュータの構成例>
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。また、プログラムは、単一のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
【0127】
また、上述した一連の処理(通信方法)は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラムが記録されたプログラム記録媒体からインストールされる。
【0128】
図11は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例(マスタ12が行う処理を実行する処理実行部の一例)を示すブロック図である。
【0129】
コンピュータにおいて、CPU(Central Processing Unit)101,ROM(Read Only Memory)102,RAM(Random Access Memory)103、およびEEPROM(Electronically Erasable and Programmable Read Only Memory)104は、バス105により相互に接続されている。バス105には、さらに、入出力インタフェース106が接続されており、入出力インタフェース106が外部(例えば、図1のデータ信号線14およびクロック信号線15)に接続される。
【0130】
以上のように構成されるコンピュータでは、CPU101が、例えば、ROM102およびEEPROM104に記憶されているプログラムを、バス105を介してRAM103にロードして実行することにより、上述した一連の処理が行われる。また、コンピュータ(CPU101)が実行するプログラムは、ROM102に予め書き込んでおく他、入出力インタフェース105を介して外部からEEPROM104にインストールしたり、更新したりすることができる。
【0131】
<構成の組み合わせ例>
なお、本技術は以下のような構成も取ることができる。
(1)
バスを介した通信の主導権を有する通信装置であって、
前記通信装置による制御に従って通信を行う他の通信装置と通信が行われ、
前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、
前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記通信装置が、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定する処理、
および、前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示する処理
を行う処理実行部と
を備える通信装置。
(2)
前記処理実行部は、通信の主導権を要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有さないと判定した場合、前記バスに接続されている全ての通信装置に対して前記グループアドレスのリセットを指示する処理を行う
上記(1)に記載の通信装置。
(3)
前記処理実行部は、前記グループ管理能力を有すると判定された場合、前記グループアドレスを設定した状態のまま、通信の主導権を譲渡する
上記(1)または(2)に記載の通信装置。
(4)
前記処理実行部は、前記グループアドレスのリセットを行った後、通信の主導権の譲渡を要求してきた前記特定の他の通信装置以外に、前記グループ管理能力を有している前記特定の他の通信装置がある場合、前記グループ管理能力を有している前記特定の他の通信装置との間で、全ての前記通信装置のグループアドレスに関する情報を共有する処理を行う
上記(1)から(3)までのいずれかに記載の通信装置。
(5)
通信の主導権を得た前記特定の他の通信装置は、前記通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する
上記(1)から(4)までのいずれかに記載の通信装置
(6)
バスを介した通信の主導権を有する通信装置の通信方法であって、
前記通信装置による制御に従って通信を行う他の通信装置と通信が行われ、
前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、
前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、
前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定し、
前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示する
ステップを含む通信方法。
(7)
バスを介した通信の主導権を有する通信装置が内蔵するコンピュータに実行させるプログラムにおいて、
前記通信装置による制御に従って通信を行う他の通信装置と通信が行われ、
前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、
前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、
前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定し、
前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示する
ステップを含む処理を実行させるプログラム。
(8)
バスを介した通信の主導権を有する通信装置と、前記通信装置による制御に従って通信を行う他の通信装置とにより通信が行われる通信システムにおいて、
前記通信装置から通信の主導権が譲渡されると前記通信装置として機能することが可能で、通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置は、通信の主導権を有していない状態で前記他の通信装置として扱われ、
前記通信装置は、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記通信装置が、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記特定の他の通信装置による要求に応じて通信の主導権を譲渡する際に、その要求をしてきた前記特定の他の通信装置が前記グループ管理能力を有するか否かを判定する処理、
および、前記グループ管理能力を有さないと判定された場合、少なくとも1つのグループに属する前記他の通信装置に対して前記グループアドレスのリセットを指示する処理
を行う処理実行部と
を備える通信システム。
(9)
バスを介した通信の主導権を有する特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置であって、
前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記通信装置が、
前記特定の他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記特定の他の通信装置に対して通信の主導権を要求する処理、
および、通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する処理
を行う処理実行部と
を備える通信装置。
(10)
前記処理実行部は、前記グループ管理能力を有している前記他の通信装置との間で、全ての前記通信装置のグループアドレスに関する情報を共有する処理を行う
上記(9)に記載の通信装置。
(11)
バスを介した通信の主導権を有する特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置の通信方法であって、
前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記特定の他の通信装置との間における信号の送受信を制御し、
前記特定の他の通信装置に対して通信の主導権を要求し、
通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する
ステップを含む通信方法。
(12)
バスを介した通信の主導権を有する特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置が内蔵するコンピュータに実行させるプログラムにおいて、
前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記特定の他の通信装置との間における信号の送受信を制御し、
前記特定の他の通信装置に対して通信の主導権を要求し、
通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する
ステップを含む処理を実行させるプログラム。
(13)
バスを介した通信の主導権を有する特定の他の通信装置と、前記通信装置による制御に従って通信を行う他の通信装置と、前記特定の他の通信装置から通信の主導権が譲渡されると前記特定の他の通信装置として機能することが可能で、通信の主導権を有していないときには前記特定の他の通信装置による制御に従って通信を行う通信装置とにより通信が行われる通信システムにおいて、
前記通信装置は、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先として書き込み転送を行うためのグループアドレスを管理して通信を行うことができるグループ管理能力を有しており、
前記通信装置が、
前記特定の他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記特定の他の通信装置に対して通信の主導権を要求する処理、
および、通信の主導権を得て、前記特定の他の通信装置としての振る舞いを開始する際に、前記バスに参加している前記他の通信装置の前記グループアドレスに関連するグループ関連能力情報に不足がある場合、不足している前記グループ関連能力情報を取得する処理
を行う処理実行部と
を備える通信システム。
【0132】
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【符号の説明】
【0133】
11 バスIF, 12−1乃至12−3 マスタ, 13−1乃至13−6 スレーブ, 14 データ信号線, 15 クロック信号線, 21 マスタデバイス, 22 上位層, 31 スレーブデバイス, 32 上位層, 41 送受信制御部, 42 データ受信部, 43 データ送信部, 44 マスタシップリクエスト制御部, 45 コマンド解釈部, 46 情報保持部, 47 コマンド送信部, 48 テーブル保持部, 51 送受信制御部, 52 データ受信部, 53 データ送信部, 54 ホットジョインリクエスト制御部, 55 ダイナミックアドレス保持部, 56 グループアドレス保持部, 57 コマンド解釈部, 58 情報保持部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11