(57)【要約】【課題】より確実に効率良く通信を行う。【解決手段】通信の主導権を有する通信装置であるマスタと、マスタによる制御に従って通信を行う通信装置であるスレーブとにより通信が行われる。そして、マスタが、バスに参加している複数台のスレーブのうちの、任意のスレーブに対し、任意の複数台のスレーブを１つのグループとして、そのグループを相手先とするグループアドレスを割り当て、グループアドレスが割り当てられたスレーブのうち、少なくとも１台以上のスレーブがバスから退出したことが確認されたとき、残りのスレーブに割り当てられているグループアドレスをリセットする。本技術は、例えば、バスＩＦに適用できる。【選択図】図６
2018206268.tif 000002
【特許請求の範囲】
【請求項１】
バスを介した通信の主導権を有する通信装置であって、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、
および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理
を行う処理実行部と
を備える通信装置。
【請求項２】
前記処理実行部は、
前記バスが稼働している状態で、前記他の通信装置が途中から参加することを要求するホットジョインリクエストを許可した後、その他の通信装置が前記グループに所属して通信を行うことができるグループ所属能力を有するかを認識する処理、
および、前記グループ所属能力を有すると認識された前記他の通信装置に対して前記グループアドレスを割り当てる処理を行う
請求項１に記載の通信装置。
【請求項３】
前記通信装置から前記通信の主導権が譲渡されると前記通信装置として機能することが可能で、前記通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置が前記バスに参加することができ、
前記処理実行部は、前記特定の他の通信装置との間で、前記他の通信装置の情報を共有する処理を行う
請求項２に記載の通信装置。
【請求項４】
前記処理実行部は、前記他の通信装置に対して前記グループアドレスを割り当てたのに伴って、前記特定の他の通信装置との間で、前記他の通信装置の前記グループ所属能力および前記グループアドレスを共有する
請求項３に記載の通信装置。
【請求項５】
前記処理実行部は、前記他の通信装置が前記バスから退出したことが確認されたのに伴って、前記特定の他の通信装置との間で、前記他の通信装置の前記グループ所属能力および前記グループアドレスのリセットを共有する
請求項３に記載の通信装置。
【請求項６】
前記処理実行部は、前記他の通信装置の前記バスから退出したことが確認されたのに伴って、前記グループアドレスをリセットするのに替えて、前記グループアドレスの再設定を行う
請求項１に記載の通信装置。
【請求項７】
前記処理実行部は、前記他の通信装置の前記バスからの退出に伴って、前記グループアドレスをリセットするのに替えて、退出した前記他の通信装置に割り当てられた前記グループアドレスを除外した上で、残りの前記他の通信装置に割り当てられている前記グループアドレスの使用を継続する
請求項１に記載の通信装置。
【請求項８】
バスを介した通信の主導権を有する通信装置の通信方法であって、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当て、
前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする
ステップを含む通信方法。
【請求項９】
バスを介した通信の主導権を有する通信装置が内蔵するコンピュータに実行させるプログラムにおいて、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当て、
前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする
ステップを含む処理を実行させるプログラム。
【請求項１０】
バスを介した通信の主導権を有する通信装置と、前記通信装置による制御に従って通信を行う他の通信装置とにより通信が行われる通信システムにおいて、
前記通信装置が、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、
および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理
を行う処理実行部と
を備える通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信装置、通信方法、プログラム、および、通信システムに関し、特に、より確実に効率良く通信を行うことができるようにした通信装置、通信方法、プログラム、および、通信システムに関する。
【背景技術】
【０００２】
従来、各種のデバイスにおけるレジスタを制御するためのバスＩＦ（Interface）としてCCI（Camera Control Interface）が広く使用されており、CCIでは、物理層にI2C（Inter-Integrated Circuit）規格が採用されている。また、近年、I2Cの高速化を実現することが求められており、次世代の規格としてI3C（Improved Inter Integrated Circuit）の規定が策定され、その改定が進められている。
【０００３】
例えば、I2CおよびI3Cは、バスＩＦを介した通信の主導権を有するマスタによる制御に従って、バスＩＦに接続されているスレーブと通信を行うことができるように構成される。さらに、I3Cでは、I2Cのデバイスと通信を行うことができるように互換性を維持する機能や、バスＩＦに途中からスレーブが参加することを可能とするホットジョインと称される機能、複数のマスタどうしでマスタ権限を譲渡する機能などが提供される。
【０００４】
また、特許文献１には、I3Cにおいて、通信のスタートやストップなどの誤検出に伴って通信不能となることを回避するようにエラー検出方法を定義することで、より確実に通信を行うことが可能な通信装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１７／０６１３３０号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、現行のI3Cの規格では、バスＩＦに接続された全てのデバイスを相手先として通信を行うこと、および、バスＩＦに接続された任意の１つのデバイスを相手先として通信を行うことが規定されている。
【０００７】
そのため、例えば、バスＩＦに接続された任意の複数台のデバイスに同一の内容の書き込みを行いたい場合、マスタは、それらのデバイスに対して個々に書き込み転送を繰り返して行わなければならなかった。従って、より効率良く通信を行うことができるようにするために、任意の複数台のデバイスを相手先として通信を行う手法を確立することが考えられる。そして、そのような手法で通信を行うのに伴って発生することが懸念される通信エラーを回避し、確実に通信が行われるようにすることが必要となる。
【０００８】
本開示は、このような状況に鑑みてなされたものであり、より確実に効率良く通信を行うことができるようにするものである。
【課題を解決するための手段】
【０００９】
本開示の一側面の通信装置は、バスを介した通信の主導権を有する通信装置であって、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理を行う処理実行部とを備える。
【００１０】
本開示の一側面の通信方法またはプログラムは、バスを介した通信の主導権を有する通信装置の通信方法、または、バスを介した通信の主導権を有する通信装置が内蔵するコンピュータに実行させるプログラムにおいて、前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当て、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットするステップを含む。
【００１１】
本開示の一側面の通信システムは、バスを介した通信の主導権を有する通信装置と、前記通信装置による制御に従って通信を行う他の通信装置とにより通信が行われる通信システムにおいて、前記通信装置が、前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理を行う処理実行部とを備える。
【００１２】
本開示の一側面においては、通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信が制御され、バスに参加している複数台の他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスが割り当てられ、グループアドレスが割り当てられた他の通信装置のうち、少なくとも１台以上の他の通信装置がバスから退出したことが確認されたとき、残りの他の通信装置に割り当てられているグループアドレスがリセットされる。
【発明の効果】
【００１３】
本開示の一側面によれば、より確実に効率良く通信を行うことができる。
【００１４】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１５】
【図１】本技術を適用したバスＩＦの一実施の形態の構成例を示すブロック図である。
【図２】マスタおよびスレーブの構成例を示すブロック図である。
【図３】デバイス情報が登録されたテーブルの一例を示す図である。
【図４】ホットジョインリクエスト受け付け時に行う処理を説明するフローチャートである。
【図５】ホットジョインリクエスト受け付け時に行う処理の変形例を説明するフローチャートである。
【図６】I3Cデバイスの退出時の処理を説明するフローチャートである。
【図７】RSTGRPAコマンドの第１のフォーマット例を示す図である。
【図８】RSTGRPAコマンドの第２のフォーマット例を示す図である。
【図９】書き込み転送における通信フォーマットの一例を示す図である。
【図１０】書き込み転送および読み出し転送における通信フォーマットの一例を示す図である。
【図１１】書き込み転送および読み出し転送における通信フォーマットの一例を示す図である。
【図１２】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１６】
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００１７】
＜バスＩＦの構成例＞
図１は、本技術を適用したバスＩＦの一実施の形態の構成例を示すブロック図である。
【００１８】
図１に示されているバスＩＦ１１は、３台のマスタ１２−１乃至１２−３および６台のスレーブ１３−１乃至１３−６が、シリアルデータSDAを伝送するデータ信号線１４と、シリアルクロックSCLを伝送するクロック信号線１５とを介して接続されて構成される。
【００１９】
マスタ１２−１および１２−２、並びに、スレーブ１３−１乃至１３−４は、新たに提案されるバージョンのI3Cの規格（I3C_v1.1）に準拠している。また、マスタ１２−３およびスレーブ１３−５は、現行のバージョンのI3Cの規格（I3C_v1.0）に準拠しており、スレーブ１３−６は、I2Cの規格に準拠している。このように、バスＩＦ１１は、I3C_v1.1に準拠しているデバイス、I3C_v1.0に準拠しているデバイス、およびI2Cの規格に準拠しているデバイスが混在しても運用可能に構成される。
【００２０】
また、I3Cでは、稼働している状態のバスＩＦ１１に途中から参加することを可能とする機能であるホットジョインが規定されている。図１において破線で示されているスレーブ１３−４は、例えば、パワーオフとされてバスＩＦ１１に参加していない状態を表している。そして、スレーブ１３−４は、パワーオンとなった後にホットジョインリクエストを送信して、バスＩＦ１１に参加することができる。
【００２１】
マスタ１２−１乃至１２−３は、バスＩＦ１１を介した通信を主導的に制御する機能を備えており、スレーブ１３−１乃至１３−６は、マスタ１２−１乃至１２−３のうちの主導権を有する１台の制御に従って、バスＩＦ１１を介した通信を行うことができる。なお、以下適宜、マスタ１２−１乃至１２−３それぞれを区別する必要がない場合、単に、マスタ１２と称し、スレーブ１３−１乃至１３−６それぞれを区別する必要がない場合、単に、スレーブ１３と称する。
【００２２】
また、マスタ１２−１乃至１２−３のうち、バスＩＦ１１における通信の主導権（以下、マスタ権限と称する）を有する１台のマスタ１２をカレントマスタ１２Ｃと称し、その他のマスタ１２をセカンダリマスタ１２Ｓと称する。例えば、マスタ権限を有していないセカンダリマスタ１２Ｓは、カレントマスタ１２Ｃの制御に従ってバスＩＦ１１を介した通信を行うことができ、カレントマスタ１２Ｃからマスタ権限が譲渡されると、カレントマスタ１２Ｃとして機能する。このように、マスタ１２は、通信の主導権を有している状態でカレントマスタ１２Ｃとして機能し、通信の主導権を有していない状態のセカンダリマスタ１２Ｓはスレーブ１３と同様に扱われる。従って、本実施の形態では、カレントマスタ１２Ｃの制御に従って通信を行うセカンダリマスタ１２Ｓも、スレーブ１３に含まれるものとして説明する。
【００２３】
ここで、以下適宜、I3C_v1.1に準拠しているスレーブ１３−１乃至１３−４、および、I3C_v1.0に準拠しているスレーブ１３−５のことを、I3Cスレーブ１３とも称する。さらに、I3C_v1.1およびI3C_v1.0いずれかに準拠しているデバイス（即ち、マスタ１２およびI3Cスレーブ１３）を、I3Cデバイスとも称する。
【００２４】
ところで、I3C_v1.1では、カレントマスタ１２Ｃが、任意の複数台のI3Cスレーブ１３を相手先として、それらのI3Cスレーブ１３に対して一斉に書き込み転送を行うことを可能とするグループアドレスを設定して運用することが検討されている。
【００２５】
SETGRPAコマンドを定義することで、同一のグループに属する複数台のI3Cスレーブ１３に対して、同一のグループアドレスが設定される。例えば、個々のグループごとにダイナミックアドレスを設定することで、そのダイナミックアドレスをグループアドレスとして使用することができる。なお、１台のI3Cスレーブ１３が複数のグループに属することもでき、１台のI3Cスレーブ１３に対して、少なくとも１つ以上のグループアドレスを割り当てることが可能とされる。
【００２６】
例えば、カレントマスタ１２Ｃは、SETGRPAコマンドを使用して、それぞれのグループに対してグループアドレスを設定する。そして、カレントマスタ１２Ｃは、I3Cで規定される各種の書き込み転送（Direct Write CCC／Private Write／HDR Write）を行う際に、書き込み転送のコマンドのスレーブアドレスフィールドに、グループアドレスを指定する。これにより、カレントマスタ１２Ｃは、１回の書き込み転送で、そのグループに属する複数台のI3Cスレーブ１３に対して、一斉にデータを書き込むことができる。
【００２７】
一方、I3Cスレーブ１３は、バスＩＦ１１に参加している全てのI3Cスレーブ１３を指定するアドレス7'h7E、自身のダイナミックアドレス、または自身が属するグループアドレスに対する通信を受信して、その通信の内容に従った処理を行う。
【００２８】
なお、カレントマスタ１２Ｃが、グループアドレスによる指定を行って複数台のI3Cスレーブ１３に対して読み出しコマンドを送信した場合、それらの複数台のI3Cスレーブ１３から転送される読み出しデータがコンフリクトすることが想定される。そのため、I3Cで規定される各種の読み出し転送（Direct Read CCC／Private Read／HDR Read）を行う際に、読み出し転送のコマンドのスレーブアドレスフィールドに、グループアドレスを指定することを禁止する運用が想定される。なお、後述の図９および図１１に示すように、複数台のI3Cスレーブ１３ごとに読み出しデータを出力するタイミングを制御する場合、読み出しデータのコンフリクトを回避することができる。この場合、各種の読み出し転送を行う際に、グループアドレスを指定することを禁止せずに運用することができる。さらに、グループアドレスを指定した読み出し転送をイネーブルとするために、レジスタなどを備えるようにしてもよい。
【００２９】
ところで、図１に示すバスＩＦ１１は、グループアドレスに関する機能が規定されるI3C_v1.1に準拠しているマスタ１２−１および１２−２並びにI3Cスレーブ１３−１乃至１３−４と、グループアドレスに関する機能が規定されていないI3C_v1.0に準拠しているマスタ１２−３およびI3Cスレーブ１３−５と、I2Cの規格に準拠しているI2Cスレーブ１３−６とが混在した構成となっている。
【００３０】
このように構成されるバスＩＦ１１では、マスタ１２−１および１２−２が、グループアドレスの割り当てを行うためには、バスＩＦ１１に参加している全てのマスタ１２およびスレーブ１３のうち、グループアドレスに対応しているI3Cデバイスを認識することができるようにI3C_v1.1を規定する必要がある。
【００３１】
また、バスＩＦ１１に参加している複数のマスタ１２がグループアドレスに対応している場合、それらのマスタ１２どうしで、他のマスタ１２が割り当てたグループアドレスを認識することができるようにI3C_v1.1を規定する必要がある。即ち、あるマスタ１２が、他のマスタ１２が割り当てたグループアドレスを認識することができない場合、既に使用済みのアドレス値をグループアドレスに使用してしまって、通信エラーが発生することが懸念される。また、あるマスタ１２が設定したグループアドレスを、他のマスタ１２が書き換えてしまうことにより、グループアドレス情報が破壊されてしまって、通信エラーが発生することが懸念される。
【００３２】
そこで、I3C_v1.1に準拠しているマスタ１２−１および１２−２は、グループアドレスを運用するにあたり、グループアドレスへの対応状況を認識して、グループアドレスを使用することにより発生することが懸念される通信エラーを回避することができるように構成される。これにより、バスＩＦ１１では、通信エラーを回避して確実に、グループアドレスを利用して効率良く通信を行うことができる。
【００３３】
＜マスタおよびスレーブの構成例＞
図２は、マスタ１２およびスレーブ１３の構成例を示すブロック図である。
【００３４】
図２に示す構成では、マスタ１２は、マスタデバイス２１の物理層として組み込まれ、マスタデバイス２１は、マスタ１２に対して上位となる上位層２２（例えば、CCIレイヤ）を備える。同様に、スレーブ１３は、スレーブデバイス３１の物理層として組み込まれ、スレーブデバイス３１は、スレーブ１３に対して上位となる上位層３２（例えば、CCIレイヤ）を備える。
【００３５】
図２に示すように、マスタ１２は、送受信制御部４１、データ受信部４２、データ送信部４３、マスタシップリクエスト制御部４４、コマンド解釈部４５、情報保持部４６、コマンド送信部４７、およびテーブル保持部４８を備えて構成される。なお、これらの各部、または、その一部は、例えば、半導体集積回路や、プログラマブルな半導体集積回路、ソフトウエアなどによって実現するようにしてもよい。
【００３６】
送受信制御部４１は、バスＩＦ１１に接続されている他のデバイスとの間における信号の送受信を制御する。例えば、送受信制御部４１は、クロック信号線１５を駆動してシリアルクロックSCLを送信し、シリアルクロックSCLのタイミングに合わせてデータ信号線１４を駆動することでシリアルデータSDAの他のデバイスへの送信を制御する。また、送受信制御部４１は、シリアルクロックSCLのタイミングに合わせて、他のデバイスがデータ信号線１４を駆動して送信してくるシリアルデータSDAの受信を制御する。
【００３７】
データ受信部４２は、送受信制御部４１による制御に従って、他のデバイスから送信されてくるデータを受信し、上位層２２に供給する。
【００３８】
データ送信部４３は、上位層２２から供給されるデータを、送受信制御部４１による制御に従って、他のデバイスに送信する。
【００３９】
マスタシップリクエスト制御部４４は、上位層２２からの要求に従って、マスタ１２がセカンダリマスタ１２Ｓであるときに、カレントマスタ１２Ｃに対してマスタ権限の譲渡を要求するマスタシップリクエストの送信に関する制御を行う。
【００４０】
コマンド解釈部４５は、送受信制御部４１による制御に従って受信したコマンドに対する解釈を行って、情報保持部４６に保持されている各種の情報を参照し、そのコマンドに応じた処理を実行する。
【００４１】
情報保持部４６は、コマンド解釈部４５がコマンドに応じた処理を行うのに必要な各種の情報を保持することができる。例えば、情報保持部４６には、グループに関連する能力であって、マスタ１２自身が有する能力を示す情報であるグループ関連能力情報が保持される。例えば、マスタ１２自身がグループアドレスを割り当てる能力（以下、グループ管理能力とも称する）を有する場合、情報保持部４６には、グループ管理能力を有することを示すグループ関連能力情報が保持される。
【００４２】
コマンド送信部４７は、上位層２２からの要求に従って、送受信制御部４１による制御により、バスＩＦ１１を介してコマンドを送信する。また、コマンド送信部４７は、例えば、マスタ１２から送信されたコマンドに応じて、バスＩＦ１１に参加しているデバイスから送信されてくるグループ関連能力情報を、テーブル保持部４８に供給する。
【００４３】
テーブル保持部４８は、バスＩＦ１１に参加している全てのデバイスに対応付けて、それぞれのデバイスに関するデバイス情報が登録されたデバイス情報テーブル（後述する図３参照）を保持する。例えば、デバイス情報テーブルには、デバイスを識別するデバイスＩＤ（Identification）に対応付けて、グループ関連能力情報やグループアドレスなどを含むデバイス情報が登録される。そして、テーブル保持部４８は、コマンド送信部４７から供給される各デバイスのグループ関連能力情報を、デバイス情報テーブルに保持するとともに上位層２２にも通知する。
【００４４】
スレーブ１３は、送受信制御部５１、データ受信部５２、データ送信部５３、ホットジョインリクエスト制御部５４、ダイナミックアドレス保持部５５、グループアドレス保持部５６、コマンド解釈部５７、および情報保持部５８を備えて構成される。なお、これらの各部、または、その一部は、例えば、半導体集積回路や、プログラマブルな半導体集積回路、ソフトウエアなどによって実現するようにしてもよい。
【００４５】
送受信制御部５１は、バスＩＦ１１に接続されている他のデバイスとの間における信号の送受信を制御する。例えば、送受信制御部５１は、シリアルクロックSCLのタイミングに合わせて、他のデバイスがデータ信号線１４を駆動して送信してくるシリアルデータSDAの受信を制御する。また、送受信制御部５１は、シリアルクロックSCLのタイミングに合わせてデータ信号線１４を駆動することでシリアルデータSDAの他のデバイスへの送信を制御する。
【００４６】
データ受信部５２は、送受信制御部４１による制御に従って、他のデバイスから送信されてくるデータを受信し、上位層３２に供給する。
【００４７】
データ送信部５３は、上位層３２から供給されるデータを、送受信制御部４１による制御に従って、他のデバイスに送信する。
【００４８】
ホットジョインリクエスト制御部５４は、例えば、バスＩＦ１１に参加していない状態のスレーブ１３が、稼働している状態のバスＩＦ１１に参加することを要求するホットジョインリクエストの送信に関する制御を行う。
【００４９】
ダイナミックアドレス保持部５５は、スレーブ１３に割り当てられたダイナミックアドレスを保持することができ、コマンド解釈部５７による指示に従って、適宜、ダイナミックアドレスを保持する。
【００５０】
グループアドレス保持部５６は、スレーブ１３に割り当てられたグループアドレスを保持することができ、コマンド解釈部５７による指示に従って、適宜、グループアドレスを保持する。
【００５１】
コマンド解釈部５７は、送受信制御部５１による制御に従って受信したコマンドに対する解釈を行って、情報保持部５８に保持されている各種の情報を参照し、そのコマンドに応じた処理を実行する。
【００５２】
情報保持部５８は、コマンド解釈部５７がコマンドに応じた処理を行うのに必要な各種の情報を保持することができる。例えば、情報保持部５８には、グループに関連する能力であって、スレーブ１３自身が有する能力を示す情報であるグループ関連能力情報が保持される。例えば、スレーブ１３自身がグループアドレスを割り当てられる能力（以下、グループ所属能力とも称する）を有する場合、情報保持部５８には、グループ所属能力を有することを示すグループ関連能力情報が保持される。
【００５３】
ここで、図３を参照して、テーブル保持部４８に保持されるデバイス情報テーブルについて説明する。図３Ａには、I3C_v1.1に準拠しているマスタ１２−１および１２−２のテーブル保持部４８に保持されるデバイス情報テーブルの一例が示されており、図３Ｂには、I3C_v1.0に準拠しているマスタ１２−３のテーブル保持部４８に保持されるデバイス情報テーブルの一例が示されている。
【００５４】
図３Ａに示すように、I3C_v1.1のデバイス情報テーブルには、バスＩＦ１１に参加している全てのデバイスを識別するデバイスＩＤ（図３の例では、デバイスＩＤ：Ａ〜Ｈ）が登録される。そして、それぞれのデバイスＩＤに対応付けて、機能情報、スタティックアドレス（SA）、ダイナミックアドレス（DA）、グループ情報有効情報、グループ管理能力情報、グループ所属能力情報、およびグループアドレス（GRPA）が、デバイス情報として登録される。また、このデバイス情報テーブルには、カレントマスタ１２Ｃとなっているマスタ１２のデバイスＩＤ（図３の例では、デバイスＩＤ：Ａ）が登録される。
【００５５】
機能情報には、バスＩＦ１１に参加しているデバイスが備える機能を示すデバイス情報が登録され、例えば、I3Cメインマスタ、I3Cセカンダリマスタ、I3Cスレーブ、およびI2Cスレーブの何れかを示すデバイス情報が登録される。
【００５６】
スタティックアドレスには、デバイスが持つスタティックアドレスを示すアドレス値（SA値）がデバイス情報として登録される他、スタティックアドレスを持たないデバイスに対しては、その旨を示すデバイス情報（無）が登録される。
【００５７】
ダイナミックアドレスには、デバイスに割り当てられたダイナミックアドレスを示すアドレス値（DA値）がデバイス情報として登録される他、ダイナミックアドレスを持つことができないデバイス（I2Cデバイス）に対しては、その旨を示すデバイス情報（無）が登録される。また、ダイナミックアドレスには、ダイナミックアドレスを持つことができるが、ダイナミックアドレスが未だ割り当てられていない場合には、その旨を示すデバイス情報（未）が登録される。
【００５８】
グループ情報有効情報には、グループ管理能力情報、グループ所属能力情報、およびグループアドレスに登録されているデバイス情報が有効であることを示すデバイス情報（有）、または、それらのデバイス情報が未だ取得されていないことを示すデバイス情報（無）が登録される。
【００５９】
グループ管理能力情報には、デバイスがグループアドレスを割り当てる能力を有することを示すデバイス情報（有）、または、デバイスがグループアドレスを割り当てる能力を有さないことを示すデバイス情報（無）が登録される。また、グループ管理能力情報が取得されていないデバイスについては、グループ管理能力情報は空欄のままとなる。
【００６０】
グループ所属能力情報には、デバイスがグループアドレスを割り当てられる能力を有することを示すデバイス情報（有）、または、デバイスがグループアドレスを割り当てられる能力を有さないことを示すデバイス情報（無）が登録される。また、グループ所属能力情報が取得されていないデバイスについては、グループ所属能力情報は空欄のままとなる。
【００６１】
グループアドレスには、デバイスが所属するグループに割り当てられたグループアドレスを示すアドレス値（GRPA値）がデバイス情報として登録される。また、グループアドレスを割り当てられる応力を有さないデバイス（I2Cデバイスや、グループ所属能力情報を有さないI3Cデバイスなど）に対しては、その旨を示すデバイス情報（無）が登録される。さらに、グループアドレスには、グループアドレスを割り当てられる応力を有するが、グループアドレスが未だ割り当てられていない場合には、その旨を示すデバイス情報（未）が登録される。また、グループアドレスが取得されていないデバイスについては、グループアドレスは空欄のままとなる。
【００６２】
また、図３Ｂに示すように、I3C_v1.0のデバイス情報テーブルには、I3C_v1.1のデバイス情報テーブルに登録されるデバイス情報のうち、それぞれのデバイスＩＤに対応付けて、機能情報、スタティックアドレス（SA）、およびダイナミックアドレス（DA）が、デバイス情報として登録される。即ち、I3C_v1.0では、グループアドレスについては定義されていないため、グループ情報有効情報、グループ管理能力情報、グループ所属能力情報、およびグループアドレスは、デバイス情報テーブルに登録されない。
【００６３】
このように、テーブル保持部４８には、スタティックアドレス、ダイナミックアドレス、またはグループアドレスの割り当て状況などが登録されたデバイス情報テーブルが保持される。
【００６４】
＜ホットジョインリクエスト受け付け時の処理＞
図４に示すフローチャートを参照して、カレントマスタ１２Ｃが、ホットジョインリクエスト受け付け時に行う処理について説明する。
【００６５】
例えば、カレントマスタ１２Ｃが、ホットジョインを行ったI3Cデバイスから送信されてくるホットジョインリクエストを受信すると処理が開始される。そして、ステップＳ１１において、カレントマスタ１２Ｃは、ホットジョインリクエストに対して、不許可、要求停止、または許可のいずれの応答を行うかを判定する。
【００６６】
例えば、カレントマスタ１２Ｃは、ホットジョインリクエストを受け付けられない状態であるとき、ステップＳ１１において、ホットジョインリクエストに対して不許可の応答を行うと判定し、処理はステップＳ１２に進む。ステップＳ１２において、カレントマスタ１２Ｃは、NACK応答を送信し、処理は終了される。
【００６７】
また、カレントマスタ１２Ｃは、ホットジョインリクエストを受け付けられない状態であり、その要求を停止させるとき、ステップＳ１１において、ホットジョインリクエストに対して要求停止の応答を行うと判定し、処理はステップＳ１３に進む。そして、カレントマスタ１２Ｃは、ステップＳ１３においてNACK応答を送信し、ステップＳ１４において、ホットジョインリクエストの発行を禁止するディセーブルコマンドを送信し、処理は終了される。
【００６８】
一方、カレントマスタ１２Ｃは、ホットジョインリクエストを受け付けられる状態であるとき、ステップＳ１１において、ホットジョインリクエストに対して許可の応答を行うと判定し、処理はステップＳ１５に進む。
【００６９】
ステップＳ１５において、カレントマスタ１２Ｃは、ACK応答を送信した後、ステップＳ１６において、I3Cデバイスに対してダイナミックアドレスの割り当てを指示するENTDAAコマンドシーケンスを実行する。これに応じて、ホットジョインリクエストを要求してきたI3Cデバイスに対してダイナミックアドレスが割り当てられると、処理はステップＳ１７に進む。
【００７０】
ステップＳ１７において、カレントマスタ１２Ｃは、バスＩＦ１１に参加している全てのセカンダリマスタ１２Ｓに対して、デバイス情報の共有を指示するDEFSLVSコマンドを送信する。これにより、カレントマスタ１２Ｃは、ホットジョインリクエストを要求してきたI3Cデバイスのデバイス情報をセカンダリマスタ１２Ｓと共有する。なお、この時点ではグループアドレスに関する処理は行われていないため、ステップＳ１７で共有されるデバイス情報には、上述の図３に示したテーブルに登録されているデバイス情報のうちの、デバイスＩＤ、機能情報、スタティックアドレス、および、ダイナミックアドレスが含まれる。なお、DEFSLVSコマンドを拡張して、この段階で、I3Cデバイスのデバイス情報としてグループアドレスに関する情報（即ち、図３のグループ管理能力情報、グループ所属能力情報、およびグループアドレス）を取得可能としてもよい。
【００７１】
ステップＳ１８において、カレントマスタ１２Ｃは、情報保持部４６が保持しているグループ関連能力情報を参照し、自身がグループアドレスを割り当てる能力を有するか否かを判定する。
【００７２】
ステップＳ１８において、カレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有さないと判定した場合、処理は終了される。例えば、カレントマスタ１２Ｃが、I3C_v1.0に準拠しているマスタ１２−３である場合、グループアドレスを割り当てる能力を有さない。また、I3C_v1.1においてグループアドレスを割り当てる能力がオプションと規定されていて、カレントマスタ１２Ｃとなっているマスタ１２−１または１２−２に、その能力が設定されていない場合、グループアドレスを割り当てる能力を有さないと判定される。
【００７３】
一方、ステップＳ１８において、カレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有すると判定した場合、処理はステップＳ１９に進む。なお、カレントマスタ１２Ｃおよびセカンダリマスタ１２Ｓがグループ管理能力を有することが必須であると規定される場合、ステップＳ１８の処理は省略してもよく、ステップＳ１８をスキップして処理はステップＳ１９へ進む。
【００７４】
ステップＳ１９において、カレントマスタ１２Ｃは、ホットジョインリクエストを要求してきたI3Cデバイスに対して、グループ関連能力情報の送信の要求を指示するGETGRPCAPコマンドを送信する。これに応じて、カレントマスタ１２Ｃが、I3Cデバイスから送信されてくるグループ関連能力情報を取得すると、処理はステップＳ２０に進む。即ち、ホットジョインリクエストを要求してきたI3Cデバイスのグループ関連能力情報を取得することで、そのI3Cデバイスがグループ所属能力を有するか否かを認識することができる。
【００７５】
ステップＳ２０において、カレントマスタ１２Ｃは、ステップＳ１９で取得したグループ関連能力情報を、図２の上位層２２に通知する。これにより、上位層２２は、そのI3Cデバイスのグループアドレスへの対応を把握することができ、そのI3Cデバイスにグループアドレスを割り当てるかを判断することができる。
【００７６】
ステップＳ２１において、カレントマスタ１２Ｃは、I3Cデバイスにグループアドレスの割り当てを行うか否かを判定する。例えば、カレントマスタ１２Ｃは、グループ関連能力情報に基づいて判断を行った上位層２２から、グループアドレスの割り当てが指示されると、その指示に従ってI3Cデバイスにグループアドレスを割り当てると判定することができる。
【００７７】
ステップＳ２１において、カレントマスタ１２Ｃが、グループアドレスの割り当てを行うと判定した場合、処理はステップＳ２２に進む。ステップＳ２２において、カレントマスタ１２Ｃは、グループアドレスの割り当てを指示するSETGRPAコマンドを送信し、上位層２２からの指示に従ったI3Cデバイスに対してグループアドレスを割り当てる。即ち、ホットジョインリクエストを要求してきたI3Cデバイスがグループ所属能力を有すると認識された場合、そのI3Cデバイスに対してグループアドレスを割り当てることができる。
【００７８】
一方、ステップＳ２１において、カレントマスタ１２Ｃが、グループアドレスの割り当てを行わないと判定した場合、または、ステップＳ２２の処理後、処理はステップＳ２３に進む。
【００７９】
ステップＳ２３において、カレントマスタ１２Ｃは、テーブル保持部４８に保持されているデバイス情報テーブルを参照して、カレントマスタ１２Ｃ以外に、グループアドレスを割り当てる能力を有するセカンダリマスタ１２Ｓがあるか否かを判定する。
【００８０】
ステップＳ２３において、カレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有するセカンダリマスタ１２Ｓがあると判定した場合、処理はステップＳ２４に進む。なお、カレントマスタ１２Ｃおよびセカンダリマスタ１２Ｓがグループ管理能力を有することが必須であると規定される場合、ステップＳ２３の処理は省略してもよく、ステップＳ２３をスキップして処理はステップＳ２４へ進む。
【００８１】
ステップＳ２４において、カレントマスタ１２Ｃは、グループアドレスを割り当てる能力を有するセカンダリマスタ１２Ｓに対して、グループアドレスに関する情報の共有を指示するDEFGRPSコマンドを送信する。これにより、カレントマスタ１２Ｃは、グループアドレスを割り当てる能力を有するセカンダリマスタ１２Ｓとの間で、ホットジョインリクエストを要求してきたI3Cデバイスについてのグループアドレスに関する情報を共有する。例えば、カレントマスタ１２Ｃは、バスＩＦ１１に参加している個々のデバイスについて、グループ管理能力情報およびグループ所属能力情報を共有する。さらに、カレントマスタ１２Ｃは、ステップＳ２２でI3Cスレーブ１３にグループアドレスを割り当てた場合には、グループアドレスを共有する。
【００８２】
ステップＳ２３でカレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有するセカンダリマスタ１２Ｓがないと判定した場合、または、ステップＳ２４の処理後、処理は終了される。
【００８３】
以上のように、カレントマスタ１２Ｃは、ホットジョインリクエストを要求してきたI3Cデバイスのグループ関連能力情報を取得することにより、そのI3Cデバイスがグループ所属能力を有するかを認識することができる。これにより、カレントマスタ１２Ｃは、グループ所属能力を有するI3Cデバイスに対して、確実にグループアドレスを割り当てることができる。さらに、カレントマスタ１２Ｃは、グループ管理能力を有するセカンダリマスタ１２Ｓとの間で、ホットジョインリクエストを要求してきたI3Cデバイスのグループアドレスに関する情報を共有することができる。
【００８４】
このように、I3Cデバイスがホットジョインリクエストを要求してきたときに、グループアドレスに関する情報が共有されることにより、バスＩＦ１１では、全てのマスタ１２が、そのI3Cデバイスのグループアドレスを認識することができる。これにより、例えば、他のマスタ１２により既に使用済みのアドレス値を、新たにグループアドレスとして使用することによって通信エラーが発生するような事態を回避することができる。また、グループアドレスに関する情報が共有されることにより、バスＩＦ１１では、例えば、他のマスタ１２が設定したグループアドレスを、書き換えてしまうことによって通信エラーが発生するような事態を回避することができる。従って、バスＩＦ１１では、通信エラーが発生することがなく、より確実に、グループアドレスを使用して効率良く通信を行うことができる。
【００８５】
なお、カレントマスタ１２Ｃが、ホットジョインリクエスト受け付け時に行う処理は、図４を参照して説明したような手順に限定されることなく、その他の手順を採用してもよい。
【００８６】
例えば、カレントマスタ１２Ｃは、図５に示すような手順で、ホットジョインリクエスト受け付け時に、ダイナミックアドレスおよびグループアドレスを割り当ててもよい。
【００８７】
即ち、図５に示すフローチャートでは、ステップＳ３１乃至Ｓ３６において、図４のステップＳ１１乃至ステップＳ１６と同様の処理が行われる。そして、ステップＳ３７において、カレントマスタ１２Ｃは、情報保持部４６が保持しているグループ関連能力情報を参照し、自身がグループアドレスを割り当てる能力を有するか否かを判定する。
【００８８】
ステップＳ３７において、カレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有すると判定した場合、ステップＳ３８乃至Ｓ４１において、図４のステップＳ１９乃至Ｓ２１と同様の処理が行われた後、処理はステップＳ４２に進む。また、ステップＳ３７において、カレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有さないと判定した場合、処理はステップＳ４２に進む。なお、カレントマスタ１２Ｃおよびセカンダリマスタ１２Ｓがグループ管理能力を有することが必須であると規定される場合、ステップＳ３７の処理は省略してもよく、ステップＳ３７をスキップして処理はステップＳ３８へ進む。
【００８９】
ステップＳ４２において、カレントマスタ１２Ｃは、バスＩＦ１１に参加している全てのセカンダリマスタ１２Ｓに対して、デバイス情報の共有を指示するDEFSLVSコマンドを送信する。これにより、カレントマスタ１２Ｃは、ホットジョインリクエストを要求してきたI3Cデバイスに関するデバイス情報をセカンダリマスタ１２Ｓと共有する。ステップＳ４２で共有されるデバイス情報には、上述の図３に示したテーブルに登録されているデバイス情報のうちの、デバイスＩＤ、機能情報、スタティックアドレス、およびダイナミックアドレスが含まれる。
【００９０】
その後、ステップＳ４３において、カレントマスタ１２Ｃは、情報保持部４６が保持しているグループ関連能力情報を参照し、自身がグループアドレスを割り当てる能力を有するか否かを判定する。なお、カレントマスタ１２Ｃおよびセカンダリマスタ１２Ｓがグループ管理能力を有することが必須であると規定される場合、ステップＳ４３およびＳ４４の処理は省略してもよく、ステップＳ４３およびＳ４４をスキップして処理はステップＳ４５へ進む。
【００９１】
ステップＳ４３において、カレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有さないと判定した場合、処理は終了される。一方、ステップＳ４３において、カレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有すると判定した場合、ステップＳ４４およびＳ４５において、図４のステップＳ２３および２４と同様の処理が行われ、その後、処理は終了される。
【００９２】
以上のような手順で、バスＩＦ１１では、グループアドレスを共有してもよい。
【００９３】
＜I3Cデバイスの退出時の処理＞
例えば、カレントマスタ１２Ｃが、I3Cデバイスの退出を確認すると処理が開始され、ステップＳ５１において、カレントマスタ１２Ｃは、情報保持部４６が保持しているグループ関連能力情報を参照し、自身がグループアドレスを割り当てる能力を有するか否かを判定する。
【００９４】
ステップＳ５１において、カレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有すると判定した場合、処理はステップＳ５２に進む。なお、カレントマスタ１２Ｃおよびセカンダリマスタ１２Ｓがグループ管理能力を有することが必須であると規定される場合、ステップＳ５１の処理は省略してもよく、ステップＳ５２から処理が開始される。
【００９５】
ステップＳ５２において、カレントマスタ１２Ｃは、退出を確認したI3Cデバイスのグループ関連能力情報（グループ情報有効情報、グループ管理能力情報、グループ所属能力情報、およびグループアドレス）を、図３のデバイス情報テーブルから削除する。
【００９６】
ステップＳ５３において、カレントマスタ１２Ｃは、ステップＳ５２で削除したグループ関連能力情報を、図２の上位層２２に通知する。これにより、上位層２２は、そのグループ関連能力情報の削除に対応して、全体として、グループアドレスの変更を行うか否かを判断することができる。
【００９７】
ステップＳ５４において、カレントマスタ１２Ｃは、バスＩＦ１１に残っているI3Cデバイスに対してグループアドレスの変更を行うか否かを判定する。例えば、カレントマスタ１２Ｃは、グループ関連能力情報の削除に応じて判断を行った上位層２２から、グループアドレスの変更が指示されると、その指示に従ってI3Cデバイスに対するグループアドレスの変更を行うと判定することができる。
【００９８】
ステップＳ５４において、カレントマスタ１２Ｃが、バスＩＦ１１に残っているI3Cデバイスに対してグループアドレスの変更を行うと判定した場合、処理はステップＳ５５に進む。ステップＳ５５において、カレントマスタ１２Ｃは、SETGRPAコマンドを使用してグループアドレスを割り当てるか、図７または図８を参照して後述するRSTGRPAコマンドを使用してグループアドレスをリセットする。即ち、バスＩＦ１１に残っているI3Cデバイスに割り当てられているグループアドレスが再設定またはリセットされる。
【００９９】
一方、ステップＳ５４において、カレントマスタ１２Ｃが、グループアドレスの変更を行わないと判定した場合、または、ステップＳ５５の処理後、処理はステップＳ５６に進む。
【０１００】
ステップＳ５６において、カレントマスタ１２Ｃは、テーブル保持部４８に保持されているデバイス情報テーブルを参照して、カレントマスタ１２Ｃ以外に、グループアドレスを割り当てる能力を有するセカンダリマスタ１２Ｓがあるか否かを判定する。
【０１０１】
ステップＳ５６において、カレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有するセカンダリマスタ１２Ｓがあると判定した場合、処理はステップＳ５７に進む。なお、カレントマスタ１２Ｃおよびセカンダリマスタ１２Ｓがグループ管理能力を有することが必須であると規定される場合、ステップＳ５６の処理は省略してもよく、ステップＳ５６をスキップして処理はステップＳ５７へ進む。
【０１０２】
ステップＳ５７において、カレントマスタ１２Ｃは、グループアドレスを割り当てる能力を有するセカンダリマスタ１２Ｓに対して、グループアドレスに関する情報の共有を指示するDEFGRPSコマンドを送信する。これにより、カレントマスタ１２Ｃは、グループアドレスを割り当てる能力を有するセカンダリマスタ１２Ｓとの間で、ステップＳ５５で割り当てまたはリセットを行ったグループアドレスに関する情報を共有する。
【０１０３】
ステップＳ５６でカレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有するセカンダリマスタ１２Ｓがないと判定した場合、または、ステップＳ５７の処理後、処理はステップＳ５８に進む。また、ステップＳ５１でカレントマスタ１２Ｃが、グループアドレスを割り当てる能力を有さないと判定した場合も、処理はステップＳ５８に進む。
【０１０４】
ステップＳ５８において、カレントマスタ１２Ｃは、退出を確認したI3Cデバイスのアドレス情報（スタティックアドレスおよびダイナミックアドレス）を、図３のデバイス情報テーブルから削除する。なお、カレントマスタ１２Ｃは、退出を確認したI3Cデバイスのアドレス情報を削除せずに、そのアドレス情報を無効化してもよい。
【０１０５】
ステップＳ５９において、カレントマスタ１２Ｃは、バスＩＦ１１に参加している全てのセカンダリマスタ１２Ｓに対して、デバイス情報の共有を指示するDEFSLVSコマンドを送信する。これにより、更新したデバイス情報をセカンダリマスタ１２Ｓとの間で共有し、その後、処理は終了される。
【０１０６】
以上のような手順で、バスＩＦ１１では、I3Cデバイスの退出が確認されると、グループアドレスのリセットを行うことができる。
【０１０７】
なお、カレントマスタ１２Ｃは、I3Cデバイスの退出が確認されたのに伴って、グループアドレスをリセットするのに替えて、例えば、グループアドレスの再設定を行ってもよい。これにより、再設定されたグループアドレスを使用してグループを相手先とした通信を行うことができる。
【０１０８】
または、カレントマスタ１２Ｃは、I3Cデバイスの退出が確認されたのに伴って、グループアドレスをリセットするのに替えて、例えば、退出したI3Cデバイスに割り当てられたグループアドレスを除外した上で、残りのI3Cデバイスに割り当てられているグループアドレスの使用を継続するようにしてもよい。即ち、この場合、I3Cデバイスの退出に影響を受けないグループアドレスを使用して、そのままグループを相手先とした通信を行うことができる。
【０１０９】
＜RSTGRPAコマンドのフォーマット例＞
図７には、図６のステップＳ５５で送信されるRSTGRPAコマンドの第１のフォーマット例が示されている。
【０１１０】
RSTGRPAコマンド（Direct Write CCC）は、ダイナミックアドレスで指定した１つのI3Cデバイス、または、グループアドレスで指定したグループに所属する複数のI3Cデバイスに対して、グループアドレスのリセットを指示する。
【０１１１】
図７に示す例では、まず、カレントマスタ１２Ｃは、スタートコンディション（Ｓ）を発行し、バスＩＦ１１に参加している全てのデバイスを指定するアドレス7'h7Eを送信するのに続いて、グループアドレスのリセットを指示するコモンコマンドコード（Direct RSTGRPA CCC）を送信する。そして、カレントマスタ１２Ｃは、リスタート（Ｓｒ）に続いてスレーブアドレス（Slave Address）を送信すると、そのスレーブアドレスのI3Cスレーブ１３は、グループアドレスをリセットする。このとき、スレーブアドレスには、ダイナミックアドレスまたはグループアドレスを指定することができる。
【０１１２】
そして、RSTGRPAコマンドを受信したグループ所属能力を有するデバイスは、グループアドレスが割り当てられていない場合にはACK応答するが何もせず、グループアドレスが割り当てられている場合にはACK応答をして自身のグループアドレスをリセットする。
【０１１３】
一方、グループ所属能力を有さないデバイスは、RSTGRPAコマンドを受信しても無視してもよいし、ACK応答だけ行って以降は何もしなくてもよい。例えば、I3C_v1.0の規格では、サポートしないダイレクトコモンコマンドコード（Direct CCC）を受信したデバイスは、NACK応答することが規定されている。そして、RSTGRPAコマンドは、I3C_v1.0の規格では規定されていないため、I3C_v1.0に準拠するデバイスは、RSTGRPAコマンドに対しては、必ず、NACK応答することになる。
【０１１４】
また、グループアドレスを割り当てる能力を有しているマスタ１２は、例えば、図７に示すようなRSTGRPAコマンドなどの方法で、設定したグループアドレスを再設定あるいはクリアする仕組みが必要となる。一方、グループアドレスを割り当てる能力を有していないマスタ１２は、図７に示すようなRSTGRPAコマンドを送信することは任意となる。
【０１１５】
図８には、RSTGRPAコマンドの第２のフォーマット例が示されている。
【０１１６】
図８に示すRSTGRPAコマンドは、１台のI3Cスレーブ１３に対して、少なくとも１つ以上のグループアドレスを割り当てられている場合に、それらのグループアドレスをリセットする際に用いられる。この場合、スレーブアドレスには、ダイナミックアドレスにみを指定することができる。
【０１１７】
そして、RSTGRPAコマンドを受信したグループ所属能力を有するデバイスは、１つ以上のグループアドレスが割り当てられている場合、自身のグループアドレスを全てリセットする。
【０１１８】
なお、複数のグループアドレスを個別に削除したい場合には、SETGRPAコマンドを使用して情報を上書きすることができる。
【０１１９】
以上のようなフォーマットのRSTGRPAコマンドを用いて、カレントマスタ１２Ｃは、バスＩＦ１１に参加しているI3Cデバイスに対して、一旦割り当てたグループアドレスをリセットすることができる。
【０１２０】
＜グループアドレスを利用した通信フォーマット＞
図９乃至図１１を参照して、グループアドレスを利用した通信において用いられる通信フォーマットについて説明する。
【０１２１】
図９には、書き込み転送（I3C Directed CCC Write）における通信フォーマットの一例が示されている。
【０１２２】
図９に示すように、任意の複数台のI3Cスレーブ１３を相手先としてカレントマスタ１２Ｃから送信されるグループアドレス（I3C Group Address）に対し、I3Cスレーブ１３からACKが返信され、その後、そのグループを対象として書き込むデータ（Optional Write Data）が送信される。そして、必要なデータ量だけ、そのグループアドレスを相手先としたデータの送信が行われる。
【０１２３】
なお、同一のグループに所属する複数台のI3Cスレーブ１３のうち、多数のI3Cスレーブ１３がACKを返信し、一部のI3Cスレーブ１３がNACKを送信した場合、カレントマスタ１２ＣがNACKを認識することができないことも想定されるが、その後の通信処理におけるエラー検出で対応することにより、正常な通信を行うことが可能である。
【０１２４】
図１０には、書き込み転送（I3C Private Write）および読み出し転送（I3C Private Read）における通信フォーマットの一例が示されている。
【０１２５】
図１０に示す４つの通信フォーマットのうちの、上側の２つが書き込み転送における通信フォーマットを表しており、下側の２つが書き込み転送における通信フォーマットを表している。
【０１２６】
書き込み転送では、任意の複数台のI3Cスレーブ１３を相手先としてカレントマスタ１２Ｃから送信されるグループアドレス（I3C Group Address）に対し、I3Cスレーブ１３からACKが返信され、その後、そのグループを対象として書き込むＮ個のデータ（Write Data-1〜Write Data-N）が送信される。
【０１２７】
読み出し転送では、同一のグループに所属する複数台のI3Cスレーブ１３について、順次、それぞれのI3Cスレーブ１３からＮ個のデータ（Read Data-1〜Read Data-N）が読み出される。即ち、複数台のI3Cスレーブ１３から読み出されたデータがコンフリクトを発生しないように、それぞれのI3Cスレーブ１３からデータを読み出すタイミングが異なるものとなるように制御する必要がある。
【０１２８】
図１１には、書き込み転送（I3C Private Write）および読み出し転送（I3C Private Read）における通信フォーマットの一例が示されている。
【０１２９】
図１０に示した通信フォーマットと同様に、書き込み転送では、グループを対象として書き込むＮ個のデータが送信され、読み出し転送では、同一のグループのI3Cスレーブ１３ごとに順次、Ｎ個のデータが読み出される。
【０１３０】
例えば、スタートコンディション（Ｓのみ、Ｓｒは含まず）の後のグループアドレス（I3C Group Address）は、カレントマスタ１２Ｃ側からオープンドレイン出力によって400kHz程度でデータ転送が行われる。このとき、最初の１バイトのみオープンドレイン出力とし、それ以降のビット（6bit+R/W）は、プッシュプル出力によって12.5MHzでデータ転送されるようにしてもよい。
【０１３１】
＜コンピュータの構成例＞
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。また、プログラムは、単一のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
【０１３２】
また、上述した一連の処理（通信方法）は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラムが記録されたプログラム記録媒体からインストールされる。
【０１３３】
図１２は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例（マスタ１２が行う処理を実行する処理実行部の一例）を示すブロック図である。
【０１３４】
コンピュータにおいて、CPU（Central Processing Unit）１０１，ROM（Read Only Memory）１０２，RAM（Random Access Memory）１０３、およびEEPROM（Electronically Erasable and Programmable Read Only Memory）１０４は、バス１０５により相互に接続されている。バス１０５には、さらに、入出力インタフェース１０６が接続されており、入出力インタフェース１０６が外部（例えば、図１のデータ信号線１４およびクロック信号線１５）に接続される。
【０１３５】
以上のように構成されるコンピュータでは、CPU１０１が、例えば、ROM１０２およびEEPROM１０４に記憶されているプログラムを、バス１０５を介してRAM１０３にロードして実行することにより、上述した一連の処理が行われる。また、コンピュータ（CPU１０１）が実行するプログラムは、ROM１０２に予め書き込んでおく他、入出力インタフェース１０５を介して外部からEEPROM１０４にインストールしたり、更新したりすることができる。
【０１３６】
＜構成の組み合わせ例＞
なお、本技術は以下のような構成も取ることができる。
（１）
バスを介した通信の主導権を有する通信装置であって、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、
および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理
を行う処理実行部と
を備える通信装置。
（２）
前記処理実行部は、
前記バスが稼働している状態で、前記他の通信装置が途中から参加することを要求するホットジョインリクエストを許可した後、その他の通信装置が前記グループに所属して通信を行うことができるグループ所属能力を有するかを認識する処理、
および、前記グループ所属能力を有すると認識された前記他の通信装置に対して前記グループアドレスを割り当てる処理を行う
上記（１）に記載の通信装置。
（３）
前記通信装置から前記通信の主導権が譲渡されると前記通信装置として機能することが可能で、前記通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置が前記バスに参加することができ、
前記処理実行部は、前記特定の他の通信装置との間で、前記他の通信装置の情報を共有する処理を行う
上記（２）に記載の通信装置。
（４）
前記処理実行部は、前記他の通信装置に対して前記グループアドレスを割り当てたのに伴って、前記特定の他の通信装置との間で、前記他の通信装置の前記グループ所属能力および前記グループアドレスを共有する
上記（３）に記載の通信装置。
（５）
前記処理実行部は、前記他の通信装置が前記バスから退出したことが確認されたのに伴って、前記特定の他の通信装置との間で、前記他の通信装置の前記グループ所属能力および前記グループアドレスのリセットを共有する
上記（３）に記載の通信装置。
（６）
前記処理実行部は、前記他の通信装置の前記バスから退出したことが確認されたのに伴って、前記グループアドレスをリセットするのに替えて、前記グループアドレスの再設定を行う
上記（１）から（５）までのいずれかに記載の通信装置。
（７）
前記処理実行部は、前記他の通信装置の前記バスからの退出に伴って、前記グループアドレスをリセットするのに替えて、退出した前記他の通信装置に割り当てられた前記グループアドレスを除外した上で、残りの前記他の通信装置に割り当てられている前記グループアドレスの使用を継続する
上記（１）から（６）までのいずれかに記載の通信装置。
（８）
バスを介した通信の主導権を有する通信装置の通信方法であって、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当て、
前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする
ステップを含む通信方法。
（９）
バスを介した通信の主導権を有する通信装置が内蔵するコンピュータに実行させるプログラムにおいて、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当て、
前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする
ステップを含む処理を実行させるプログラム。
（１０）
バスを介した通信の主導権を有する通信装置と、前記通信装置による制御に従って通信を行う他の通信装置とにより通信が行われる通信システムにおいて、
前記通信装置が、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を１つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、
および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも１台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理
を行う処理実行部と
を備える通信システム。
【０１３７】
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【符号の説明】
【０１３８】
１１  バスＩＦ，  １２−１乃至１２−３  マスタ，  １３−１乃至１３−６  スレーブ，  １４  データ信号線，  １５  クロック信号線，  ２１  マスタデバイス，  ２２  上位層，  ３１  スレーブデバイス，  ３２  上位層，  ４１  送受信制御部，  ４２  データ受信部，  ４３  データ送信部，  ４４  マスタシップリクエスト制御部，  ４５  コマンド解釈部，  ４６  情報保持部，  ４７  コマンド送信部，  ４８  テーブル保持部，  ５１  送受信制御部，  ５２  データ受信部，  ５３  データ送信部，  ５４  ホットジョインリクエスト制御部，  ５５  ダイナミックアドレス保持部，  ５６  グループアドレス保持部，  ５７  コマンド解釈部，  ５８  情報保持部
【図１】
2018206268.tif 000003
【図２】
2018206268.tif 000004
【図３】
2018206268.tif 000005
【図４】
2018206268.tif 000006
【図５】
2018206268.tif 000007
【図６】
2018206268.tif 000008
【図７】
2018206268.tif 000009
【図８】
2018206268.tif 000010
【図９】
2018206268.tif 000011
【図１０】
2018206268.tif 000012
【図１１】
2018206268.tif 000013
【図１２】
2018206268.tif 000014