JP6976729B2 - 通信装置、通信方法、プログラム、および、通信システム - Google Patents

通信装置、通信方法、プログラム、および、通信システム Download PDF

Info

Publication number
JP6976729B2
JP6976729B2 JP2017113852A JP2017113852A JP6976729B2 JP 6976729 B2 JP6976729 B2 JP 6976729B2 JP 2017113852 A JP2017113852 A JP 2017113852A JP 2017113852 A JP2017113852 A JP 2017113852A JP 6976729 B2 JP6976729 B2 JP 6976729B2
Authority
JP
Japan
Prior art keywords
communication
group
communication device
bus
group address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017113852A
Other languages
English (en)
Other versions
JP2018206268A (ja
Inventor
宏雄 高橋
直弘 越坂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Semiconductor Solutions Corp
Original Assignee
Sony Semiconductor Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Priority to JP2017113852A priority Critical patent/JP6976729B2/ja
Priority to TW107117655A priority patent/TWI755538B/zh
Priority to EP18734645.7A priority patent/EP3635568B1/en
Priority to US16/618,596 priority patent/US11169944B2/en
Priority to PCT/JP2018/021806 priority patent/WO2018225808A1/en
Publication of JP2018206268A publication Critical patent/JP2018206268A/ja
Application granted granted Critical
Publication of JP6976729B2 publication Critical patent/JP6976729B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Description

本開示は、通信装置、通信方法、プログラム、および、通信システムに関し、特に、より確実に効率良く通信を行うことができるようにした通信装置、通信方法、プログラム、および、通信システムに関する。
従来、各種のデバイスにおけるレジスタを制御するためのバスIF(Interface)としてCCI(Camera Control Interface)が広く使用されており、CCIでは、物理層にI2C(Inter-Integrated Circuit)規格が採用されている。また、近年、I2Cの高速化を実現することが求められており、次世代の規格としてI3C(Improved Inter Integrated Circuit)の規定が策定され、その改定が進められている。
例えば、I2CおよびI3Cは、バスIFを介した通信の主導権を有するマスタによる制御に従って、バスIFに接続されているスレーブと通信を行うことができるように構成される。さらに、I3Cでは、I2Cのデバイスと通信を行うことができるように互換性を維持する機能や、バスIFに途中からスレーブが参加することを可能とするホットジョインと称される機能、複数のマスタどうしでマスタ権限を譲渡する機能などが提供される。
また、特許文献1には、I3Cにおいて、通信のスタートやストップなどの誤検出に伴って通信不能となることを回避するようにエラー検出方法を定義することで、より確実に通信を行うことが可能な通信装置が開示されている。
国際公開第2017/061330号
ところで、現行のI3Cの規格では、バスIFに接続された全てのデバイスを相手先として通信を行うこと、および、バスIFに接続された任意の1つのデバイスを相手先として通信を行うことが規定されている。
そのため、例えば、バスIFに接続された任意の複数台のデバイスに同一の内容の書き込みを行いたい場合、マスタは、それらのデバイスに対して個々に書き込み転送を繰り返して行わなければならなかった。従って、より効率良く通信を行うことができるようにするために、任意の複数台のデバイスを相手先として通信を行う手法を確立することが考えられる。そして、そのような手法で通信を行うのに伴って発生することが懸念される通信エラーを回避し、確実に通信が行われるようにすることが必要となる。
本開示は、このような状況に鑑みてなされたものであり、より確実に効率良く通信を行うことができるようにするものである。
本開示の一側面の通信装置は、バスを介した通信の主導権を有する通信装置であって、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理を行う処理実行部とを備える。
本開示の一側面の通信方法またはプログラムは、バスを介した通信の主導権を有する通信装置の通信方法、または、バスを介した通信の主導権を有する通信装置が内蔵するコンピュータに実行させるプログラムにおいて、前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当て、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットするステップを含む。
本開示の一側面の通信システムは、バスを介した通信の主導権を有する通信装置と、前記通信装置による制御に従って通信を行う他の通信装置とにより通信が行われる通信システムにおいて、前記通信装置が、前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理を行う処理実行部とを備える。
本開示の一側面においては、通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信が制御され、バスに参加している複数台の他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスが割り当てられ、グループアドレスが割り当てられた他の通信装置のうち、少なくとも1台以上の他の通信装置がバスから退出したことが確認されたとき、残りの他の通信装置に割り当てられているグループアドレスがリセットされる。
本開示の一側面によれば、より確実に効率良く通信を行うことができる。
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
本技術を適用したバスIFの一実施の形態の構成例を示すブロック図である。 マスタおよびスレーブの構成例を示すブロック図である。 デバイス情報が登録されたテーブルの一例を示す図である。 ホットジョインリクエスト受け付け時に行う処理を説明するフローチャートである。 ホットジョインリクエスト受け付け時に行う処理の変形例を説明するフローチャートである。 I3Cデバイスの退出時の処理を説明するフローチャートである。 RSTGRPAコマンドの第1のフォーマット例を示す図である。 RSTGRPAコマンドの第2のフォーマット例を示す図である。 書き込み転送における通信フォーマットの一例を示す図である。 書き込み転送および読み出し転送における通信フォーマットの一例を示す図である。 書き込み転送および読み出し転送における通信フォーマットの一例を示す図である。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
<バスIFの構成例>
図1は、本技術を適用したバスIFの一実施の形態の構成例を示すブロック図である。
図1に示されているバスIF11は、3台のマスタ12−1乃至12−3および6台のスレーブ13−1乃至13−6が、シリアルデータSDAを伝送するデータ信号線14と、シリアルクロックSCLを伝送するクロック信号線15とを介して接続されて構成される。
マスタ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の規格に準拠しているデバイスが混在しても運用可能に構成される。
また、I3Cでは、稼働している状態のバスIF11に途中から参加することを可能とする機能であるホットジョインが規定されている。図1において破線で示されているスレーブ13−4は、例えば、パワーオフとされてバスIF11に参加していない状態を表している。そして、スレーブ13−4は、パワーオンとなった後にホットジョインリクエストを送信して、バスIF11に参加することができる。
マスタ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と称する。
また、マスタ12−1乃至12−3のうち、バスIF11における通信の主導権(以下、マスタ権限と称する)を有する1台のマスタ12をカレントマスタ12Cと称し、その他のマスタ12をセカンダリマスタ12Sと称する。例えば、マスタ権限を有していないセカンダリマスタ12Sは、カレントマスタ12Cの制御に従ってバスIF11を介した通信を行うことができ、カレントマスタ12Cからマスタ権限が譲渡されると、カレントマスタ12Cとして機能する。このように、マスタ12は、通信の主導権を有している状態でカレントマスタ12Cとして機能し、通信の主導権を有していない状態のセカンダリマスタ12Sはスレーブ13と同様に扱われる。従って、本実施の形態では、カレントマスタ12Cの制御に従って通信を行うセカンダリマスタ12Sも、スレーブ13に含まれるものとして説明する。
ここで、以下適宜、I3C_v1.1に準拠しているスレーブ13−1乃至13−4、および、I3C_v1.0に準拠しているスレーブ13−5のことを、I3Cスレーブ13とも称する。さらに、I3C_v1.1およびI3C_v1.0いずれかに準拠しているデバイス(即ち、マスタ12およびI3Cスレーブ13)を、I3Cデバイスとも称する。
ところで、I3C_v1.1では、カレントマスタ12Cが、任意の複数台のI3Cスレーブ13を相手先として、それらのI3Cスレーブ13に対して一斉に書き込み転送を行うことを可能とするグループアドレスを設定して運用することが検討されている。
SETGRPAコマンドを定義することで、同一のグループに属する複数台のI3Cスレーブ13に対して、同一のグループアドレスが設定される。例えば、個々のグループごとにダイナミックアドレスを設定することで、そのダイナミックアドレスをグループアドレスとして使用することができる。なお、1台のI3Cスレーブ13が複数のグループに属することもでき、1台のI3Cスレーブ13に対して、少なくとも1つ以上のグループアドレスを割り当てることが可能とされる。
例えば、カレントマスタ12Cは、SETGRPAコマンドを使用して、それぞれのグループに対してグループアドレスを設定する。そして、カレントマスタ12Cは、I3Cで規定される各種の書き込み転送(Direct Write CCC/Private Write/HDR Write)を行う際に、書き込み転送のコマンドのスレーブアドレスフィールドに、グループアドレスを指定する。これにより、カレントマスタ12Cは、1回の書き込み転送で、そのグループに属する複数台のI3Cスレーブ13に対して、一斉にデータを書き込むことができる。
一方、I3Cスレーブ13は、バスIF11に参加している全てのI3Cスレーブ13を指定するアドレス7'h7E、自身のダイナミックアドレス、または自身が属するグループアドレスに対する通信を受信して、その通信の内容に従った処理を行う。
なお、カレントマスタ12Cが、グループアドレスによる指定を行って複数台のI3Cスレーブ13に対して読み出しコマンドを送信した場合、それらの複数台のI3Cスレーブ13から転送される読み出しデータがコンフリクトすることが想定される。そのため、I3Cで規定される各種の読み出し転送(Direct Read CCC/Private Read/HDR Read)を行う際に、読み出し転送のコマンドのスレーブアドレスフィールドに、グループアドレスを指定することを禁止する運用が想定される。なお、後述の図9および図11に示すように、複数台のI3Cスレーブ13ごとに読み出しデータを出力するタイミングを制御する場合、読み出しデータのコンフリクトを回避することができる。この場合、各種の読み出し転送を行う際に、グループアドレスを指定することを禁止せずに運用することができる。さらに、グループアドレスを指定した読み出し転送をイネーブルとするために、レジスタなどを備えるようにしてもよい。
ところで、図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とが混在した構成となっている。
このように構成されるバスIF11では、マスタ12−1および12−2が、グループアドレスの割り当てを行うためには、バスIF11に参加している全てのマスタ12およびスレーブ13のうち、グループアドレスに対応しているI3Cデバイスを認識することができるようにI3C_v1.1を規定する必要がある。
また、バスIF11に参加している複数のマスタ12がグループアドレスに対応している場合、それらのマスタ12どうしで、他のマスタ12が割り当てたグループアドレスを認識することができるようにI3C_v1.1を規定する必要がある。即ち、あるマスタ12が、他のマスタ12が割り当てたグループアドレスを認識することができない場合、既に使用済みのアドレス値をグループアドレスに使用してしまって、通信エラーが発生することが懸念される。また、あるマスタ12が設定したグループアドレスを、他のマスタ12が書き換えてしまうことにより、グループアドレス情報が破壊されてしまって、通信エラーが発生することが懸念される。
そこで、I3C_v1.1に準拠しているマスタ12−1および12−2は、グループアドレスを運用するにあたり、グループアドレスへの対応状況を認識して、グループアドレスを使用することにより発生することが懸念される通信エラーを回避することができるように構成される。これにより、バスIF11では、通信エラーを回避して確実に、グループアドレスを利用して効率良く通信を行うことができる。
<マスタおよびスレーブの構成例>
図2は、マスタ12およびスレーブ13の構成例を示すブロック図である。
図2に示す構成では、マスタ12は、マスタデバイス21の物理層として組み込まれ、マスタデバイス21は、マスタ12に対して上位となる上位層22(例えば、CCIレイヤ)を備える。同様に、スレーブ13は、スレーブデバイス31の物理層として組み込まれ、スレーブデバイス31は、スレーブ13に対して上位となる上位層32(例えば、CCIレイヤ)を備える。
図2に示すように、マスタ12は、送受信制御部41、データ受信部42、データ送信部43、マスタシップリクエスト制御部44、コマンド解釈部45、情報保持部46、コマンド送信部47、およびテーブル保持部48を備えて構成される。なお、これらの各部、または、その一部は、例えば、半導体集積回路や、プログラマブルな半導体集積回路、ソフトウエアなどによって実現するようにしてもよい。
送受信制御部41は、バスIF11に接続されている他のデバイスとの間における信号の送受信を制御する。例えば、送受信制御部41は、クロック信号線15を駆動してシリアルクロックSCLを送信し、シリアルクロックSCLのタイミングに合わせてデータ信号線14を駆動することでシリアルデータSDAの他のデバイスへの送信を制御する。また、送受信制御部41は、シリアルクロックSCLのタイミングに合わせて、他のデバイスがデータ信号線14を駆動して送信してくるシリアルデータSDAの受信を制御する。
データ受信部42は、送受信制御部41による制御に従って、他のデバイスから送信されてくるデータを受信し、上位層22に供給する。
データ送信部43は、上位層22から供給されるデータを、送受信制御部41による制御に従って、他のデバイスに送信する。
マスタシップリクエスト制御部44は、上位層22からの要求に従って、マスタ12がセカンダリマスタ12Sであるときに、カレントマスタ12Cに対してマスタ権限の譲渡を要求するマスタシップリクエストの送信に関する制御を行う。
コマンド解釈部45は、送受信制御部41による制御に従って受信したコマンドに対する解釈を行って、情報保持部46に保持されている各種の情報を参照し、そのコマンドに応じた処理を実行する。
情報保持部46は、コマンド解釈部45がコマンドに応じた処理を行うのに必要な各種の情報を保持することができる。例えば、情報保持部46には、グループに関連する能力であって、マスタ12自身が有する能力を示す情報であるグループ関連能力情報が保持される。例えば、マスタ12自身がグループアドレスを割り当てる能力(以下、グループ管理能力とも称する)を有する場合、情報保持部46には、グループ管理能力を有することを示すグループ関連能力情報が保持される。
コマンド送信部47は、上位層22からの要求に従って、送受信制御部41による制御により、バスIF11を介してコマンドを送信する。また、コマンド送信部47は、例えば、マスタ12から送信されたコマンドに応じて、バスIF11に参加しているデバイスから送信されてくるグループ関連能力情報を、テーブル保持部48に供給する。
テーブル保持部48は、バスIF11に参加している全てのデバイスに対応付けて、それぞれのデバイスに関するデバイス情報が登録されたデバイス情報テーブル(後述する図3参照)を保持する。例えば、デバイス情報テーブルには、デバイスを識別するデバイスID(Identification)に対応付けて、グループ関連能力情報やグループアドレスなどを含むデバイス情報が登録される。そして、テーブル保持部48は、コマンド送信部47から供給される各デバイスのグループ関連能力情報を、デバイス情報テーブルに保持するとともに上位層22にも通知する。
スレーブ13は、送受信制御部51、データ受信部52、データ送信部53、ホットジョインリクエスト制御部54、ダイナミックアドレス保持部55、グループアドレス保持部56、コマンド解釈部57、および情報保持部58を備えて構成される。なお、これらの各部、または、その一部は、例えば、半導体集積回路や、プログラマブルな半導体集積回路、ソフトウエアなどによって実現するようにしてもよい。
送受信制御部51は、バスIF11に接続されている他のデバイスとの間における信号の送受信を制御する。例えば、送受信制御部51は、シリアルクロックSCLのタイミングに合わせて、他のデバイスがデータ信号線14を駆動して送信してくるシリアルデータSDAの受信を制御する。また、送受信制御部51は、シリアルクロックSCLのタイミングに合わせてデータ信号線14を駆動することでシリアルデータSDAの他のデバイスへの送信を制御する。
データ受信部52は、送受信制御部41による制御に従って、他のデバイスから送信されてくるデータを受信し、上位層32に供給する。
データ送信部53は、上位層32から供給されるデータを、送受信制御部41による制御に従って、他のデバイスに送信する。
ホットジョインリクエスト制御部54は、例えば、バスIF11に参加していない状態のスレーブ13が、稼働している状態のバスIF11に参加することを要求するホットジョインリクエストの送信に関する制御を行う。
ダイナミックアドレス保持部55は、スレーブ13に割り当てられたダイナミックアドレスを保持することができ、コマンド解釈部57による指示に従って、適宜、ダイナミックアドレスを保持する。
グループアドレス保持部56は、スレーブ13に割り当てられたグループアドレスを保持することができ、コマンド解釈部57による指示に従って、適宜、グループアドレスを保持する。
コマンド解釈部57は、送受信制御部51による制御に従って受信したコマンドに対する解釈を行って、情報保持部58に保持されている各種の情報を参照し、そのコマンドに応じた処理を実行する。
情報保持部58は、コマンド解釈部57がコマンドに応じた処理を行うのに必要な各種の情報を保持することができる。例えば、情報保持部58には、グループに関連する能力であって、スレーブ13自身が有する能力を示す情報であるグループ関連能力情報が保持される。例えば、スレーブ13自身がグループアドレスを割り当てられる能力(以下、グループ所属能力とも称する)を有する場合、情報保持部58には、グループ所属能力を有することを示すグループ関連能力情報が保持される。
ここで、図3を参照して、テーブル保持部48に保持されるデバイス情報テーブルについて説明する。図3Aには、I3C_v1.1に準拠しているマスタ12−1および12−2のテーブル保持部48に保持されるデバイス情報テーブルの一例が示されており、図3Bには、I3C_v1.0に準拠しているマスタ12−3のテーブル保持部48に保持されるデバイス情報テーブルの一例が示されている。
図3Aに示すように、I3C_v1.1のデバイス情報テーブルには、バスIF11に参加している全てのデバイスを識別するデバイスID(図3の例では、デバイスID:A〜H)が登録される。そして、それぞれのデバイスIDに対応付けて、機能情報、スタティックアドレス(SA)、ダイナミックアドレス(DA)、グループ情報有効情報、グループ管理能力情報、グループ所属能力情報、およびグループアドレス(GRPA)が、デバイス情報として登録される。また、このデバイス情報テーブルには、カレントマスタ12Cとなっているマスタ12のデバイスID(図3の例では、デバイスID:A)が登録される。
機能情報には、バスIF11に参加しているデバイスが備える機能を示すデバイス情報が登録され、例えば、I3Cメインマスタ、I3Cセカンダリマスタ、I3Cスレーブ、およびI2Cスレーブの何れかを示すデバイス情報が登録される。
スタティックアドレスには、デバイスが持つスタティックアドレスを示すアドレス値(SA値)がデバイス情報として登録される他、スタティックアドレスを持たないデバイスに対しては、その旨を示すデバイス情報(無)が登録される。
ダイナミックアドレスには、デバイスに割り当てられたダイナミックアドレスを示すアドレス値(DA値)がデバイス情報として登録される他、ダイナミックアドレスを持つことができないデバイス(I2Cデバイス)に対しては、その旨を示すデバイス情報(無)が登録される。また、ダイナミックアドレスには、ダイナミックアドレスを持つことができるが、ダイナミックアドレスが未だ割り当てられていない場合には、その旨を示すデバイス情報(未)が登録される。
グループ情報有効情報には、グループ管理能力情報、グループ所属能力情報、およびグループアドレスに登録されているデバイス情報が有効であることを示すデバイス情報(有)、または、それらのデバイス情報が未だ取得されていないことを示すデバイス情報(無)が登録される。
グループ管理能力情報には、デバイスがグループアドレスを割り当てる能力を有することを示すデバイス情報(有)、または、デバイスがグループアドレスを割り当てる能力を有さないことを示すデバイス情報(無)が登録される。また、グループ管理能力情報が取得されていないデバイスについては、グループ管理能力情報は空欄のままとなる。
グループ所属能力情報には、デバイスがグループアドレスを割り当てられる能力を有することを示すデバイス情報(有)、または、デバイスがグループアドレスを割り当てられる能力を有さないことを示すデバイス情報(無)が登録される。また、グループ所属能力情報が取得されていないデバイスについては、グループ所属能力情報は空欄のままとなる。
グループアドレスには、デバイスが所属するグループに割り当てられたグループアドレスを示すアドレス値(GRPA値)がデバイス情報として登録される。また、グループアドレスを割り当てられる応力を有さないデバイス(I2Cデバイスや、グループ所属能力情報を有さないI3Cデバイスなど)に対しては、その旨を示すデバイス情報(無)が登録される。さらに、グループアドレスには、グループアドレスを割り当てられる応力を有するが、グループアドレスが未だ割り当てられていない場合には、その旨を示すデバイス情報(未)が登録される。また、グループアドレスが取得されていないデバイスについては、グループアドレスは空欄のままとなる。
また、図3Bに示すように、I3C_v1.0のデバイス情報テーブルには、I3C_v1.1のデバイス情報テーブルに登録されるデバイス情報のうち、それぞれのデバイスIDに対応付けて、機能情報、スタティックアドレス(SA)、およびダイナミックアドレス(DA)が、デバイス情報として登録される。即ち、I3C_v1.0では、グループアドレスについては定義されていないため、グループ情報有効情報、グループ管理能力情報、グループ所属能力情報、およびグループアドレスは、デバイス情報テーブルに登録されない。
このように、テーブル保持部48には、スタティックアドレス、ダイナミックアドレス、またはグループアドレスの割り当て状況などが登録されたデバイス情報テーブルが保持される。
<ホットジョインリクエスト受け付け時の処理>
図4に示すフローチャートを参照して、カレントマスタ12Cが、ホットジョインリクエスト受け付け時に行う処理について説明する。
例えば、カレントマスタ12Cが、ホットジョインを行ったI3Cデバイスから送信されてくるホットジョインリクエストを受信すると処理が開始される。そして、ステップS11において、カレントマスタ12Cは、ホットジョインリクエストに対して、不許可、要求停止、または許可のいずれの応答を行うかを判定する。
例えば、カレントマスタ12Cは、ホットジョインリクエストを受け付けられない状態であるとき、ステップS11において、ホットジョインリクエストに対して不許可の応答を行うと判定し、処理はステップS12に進む。ステップS12において、カレントマスタ12Cは、NACK応答を送信し、処理は終了される。
また、カレントマスタ12Cは、ホットジョインリクエストを受け付けられない状態であり、その要求を停止させるとき、ステップS11において、ホットジョインリクエストに対して要求停止の応答を行うと判定し、処理はステップS13に進む。そして、カレントマスタ12Cは、ステップS13においてNACK応答を送信し、ステップS14において、ホットジョインリクエストの発行を禁止するディセーブルコマンドを送信し、処理は終了される。
一方、カレントマスタ12Cは、ホットジョインリクエストを受け付けられる状態であるとき、ステップS11において、ホットジョインリクエストに対して許可の応答を行うと判定し、処理はステップS15に進む。
ステップS15において、カレントマスタ12Cは、ACK応答を送信した後、ステップS16において、I3Cデバイスに対してダイナミックアドレスの割り当てを指示するENTDAAコマンドシーケンスを実行する。これに応じて、ホットジョインリクエストを要求してきたI3Cデバイスに対してダイナミックアドレスが割り当てられると、処理はステップS17に進む。
ステップS17において、カレントマスタ12Cは、バスIF11に参加している全てのセカンダリマスタ12Sに対して、デバイス情報の共有を指示するDEFSLVSコマンドを送信する。これにより、カレントマスタ12Cは、ホットジョインリクエストを要求してきたI3Cデバイスのデバイス情報をセカンダリマスタ12Sと共有する。なお、この時点ではグループアドレスに関する処理は行われていないため、ステップS17で共有されるデバイス情報には、上述の図3に示したテーブルに登録されているデバイス情報のうちの、デバイスID、機能情報、スタティックアドレス、および、ダイナミックアドレスが含まれる。なお、DEFSLVSコマンドを拡張して、この段階で、I3Cデバイスのデバイス情報としてグループアドレスに関する情報(即ち、図3のグループ管理能力情報、グループ所属能力情報、およびグループアドレス)を取得可能としてもよい。
ステップS18において、カレントマスタ12Cは、情報保持部46が保持しているグループ関連能力情報を参照し、自身がグループアドレスを割り当てる能力を有するか否かを判定する。
ステップS18において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有さないと判定した場合、処理は終了される。例えば、カレントマスタ12Cが、I3C_v1.0に準拠しているマスタ12−3である場合、グループアドレスを割り当てる能力を有さない。また、I3C_v1.1においてグループアドレスを割り当てる能力がオプションと規定されていて、カレントマスタ12Cとなっているマスタ12−1または12−2に、その能力が設定されていない場合、グループアドレスを割り当てる能力を有さないと判定される。
一方、ステップS18において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有すると判定した場合、処理はステップS19に進む。なお、カレントマスタ12Cおよびセカンダリマスタ12Sがグループ管理能力を有することが必須であると規定される場合、ステップS18の処理は省略してもよく、ステップS18をスキップして処理はステップS19へ進む。
ステップS19において、カレントマスタ12Cは、ホットジョインリクエストを要求してきたI3Cデバイスに対して、グループ関連能力情報の送信の要求を指示するGETGRPCAPコマンドを送信する。これに応じて、カレントマスタ12Cが、I3Cデバイスから送信されてくるグループ関連能力情報を取得すると、処理はステップS20に進む。即ち、ホットジョインリクエストを要求してきたI3Cデバイスのグループ関連能力情報を取得することで、そのI3Cデバイスがグループ所属能力を有するか否かを認識することができる。
ステップS20において、カレントマスタ12Cは、ステップS19で取得したグループ関連能力情報を、図2の上位層22に通知する。これにより、上位層22は、そのI3Cデバイスのグループアドレスへの対応を把握することができ、そのI3Cデバイスにグループアドレスを割り当てるかを判断することができる。
ステップS21において、カレントマスタ12Cは、I3Cデバイスにグループアドレスの割り当てを行うか否かを判定する。例えば、カレントマスタ12Cは、グループ関連能力情報に基づいて判断を行った上位層22から、グループアドレスの割り当てが指示されると、その指示に従ってI3Cデバイスにグループアドレスを割り当てると判定することができる。
ステップS21において、カレントマスタ12Cが、グループアドレスの割り当てを行うと判定した場合、処理はステップS22に進む。ステップS22において、カレントマスタ12Cは、グループアドレスの割り当てを指示するSETGRPAコマンドを送信し、上位層22からの指示に従ったI3Cデバイスに対してグループアドレスを割り当てる。即ち、ホットジョインリクエストを要求してきたI3Cデバイスがグループ所属能力を有すると認識された場合、そのI3Cデバイスに対してグループアドレスを割り当てることができる。
一方、ステップS21において、カレントマスタ12Cが、グループアドレスの割り当てを行わないと判定した場合、または、ステップS22の処理後、処理はステップS23に進む。
ステップS23において、カレントマスタ12Cは、テーブル保持部48に保持されているデバイス情報テーブルを参照して、カレントマスタ12C以外に、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sがあるか否かを判定する。
ステップS23において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sがあると判定した場合、処理はステップS24に進む。なお、カレントマスタ12Cおよびセカンダリマスタ12Sがグループ管理能力を有することが必須であると規定される場合、ステップS23の処理は省略してもよく、ステップS23をスキップして処理はステップS24へ進む。
ステップS24において、カレントマスタ12Cは、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sに対して、グループアドレスに関する情報の共有を指示するDEFGRPSコマンドを送信する。これにより、カレントマスタ12Cは、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sとの間で、ホットジョインリクエストを要求してきたI3Cデバイスについてのグループアドレスに関する情報を共有する。例えば、カレントマスタ12Cは、バスIF11に参加している個々のデバイスについて、グループ管理能力情報およびグループ所属能力情報を共有する。さらに、カレントマスタ12Cは、ステップS22でI3Cスレーブ13にグループアドレスを割り当てた場合には、グループアドレスを共有する。
ステップS23でカレントマスタ12Cが、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sがないと判定した場合、または、ステップS24の処理後、処理は終了される。
以上のように、カレントマスタ12Cは、ホットジョインリクエストを要求してきたI3Cデバイスのグループ関連能力情報を取得することにより、そのI3Cデバイスがグループ所属能力を有するかを認識することができる。これにより、カレントマスタ12Cは、グループ所属能力を有するI3Cデバイスに対して、確実にグループアドレスを割り当てることができる。さらに、カレントマスタ12Cは、グループ管理能力を有するセカンダリマスタ12Sとの間で、ホットジョインリクエストを要求してきたI3Cデバイスのグループアドレスに関する情報を共有することができる。
このように、I3Cデバイスがホットジョインリクエストを要求してきたときに、グループアドレスに関する情報が共有されることにより、バスIF11では、全てのマスタ12が、そのI3Cデバイスのグループアドレスを認識することができる。これにより、例えば、他のマスタ12により既に使用済みのアドレス値を、新たにグループアドレスとして使用することによって通信エラーが発生するような事態を回避することができる。また、グループアドレスに関する情報が共有されることにより、バスIF11では、例えば、他のマスタ12が設定したグループアドレスを、書き換えてしまうことによって通信エラーが発生するような事態を回避することができる。従って、バスIF11では、通信エラーが発生することがなく、より確実に、グループアドレスを使用して効率良く通信を行うことができる。
なお、カレントマスタ12Cが、ホットジョインリクエスト受け付け時に行う処理は、図4を参照して説明したような手順に限定されることなく、その他の手順を採用してもよい。
例えば、カレントマスタ12Cは、図5に示すような手順で、ホットジョインリクエスト受け付け時に、ダイナミックアドレスおよびグループアドレスを割り当ててもよい。
即ち、図5に示すフローチャートでは、ステップS31乃至S36において、図4のステップS11乃至ステップS16と同様の処理が行われる。そして、ステップS37において、カレントマスタ12Cは、情報保持部46が保持しているグループ関連能力情報を参照し、自身がグループアドレスを割り当てる能力を有するか否かを判定する。
ステップS37において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有すると判定した場合、ステップS38乃至S41において、図4のステップS19乃至S21と同様の処理が行われた後、処理はステップS42に進む。また、ステップS37において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有さないと判定した場合、処理はステップS42に進む。なお、カレントマスタ12Cおよびセカンダリマスタ12Sがグループ管理能力を有することが必須であると規定される場合、ステップS37の処理は省略してもよく、ステップS37をスキップして処理はステップS38へ進む。
ステップS42において、カレントマスタ12Cは、バスIF11に参加している全てのセカンダリマスタ12Sに対して、デバイス情報の共有を指示するDEFSLVSコマンドを送信する。これにより、カレントマスタ12Cは、ホットジョインリクエストを要求してきたI3Cデバイスに関するデバイス情報をセカンダリマスタ12Sと共有する。ステップS42で共有されるデバイス情報には、上述の図3に示したテーブルに登録されているデバイス情報のうちの、デバイスID、機能情報、スタティックアドレス、およびダイナミックアドレスが含まれる。
その後、ステップS43において、カレントマスタ12Cは、情報保持部46が保持しているグループ関連能力情報を参照し、自身がグループアドレスを割り当てる能力を有するか否かを判定する。なお、カレントマスタ12Cおよびセカンダリマスタ12Sがグループ管理能力を有することが必須であると規定される場合、ステップS43およびS44の処理は省略してもよく、ステップS43およびS44をスキップして処理はステップS45へ進む。
ステップS43において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有さないと判定した場合、処理は終了される。一方、ステップS43において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有すると判定した場合、ステップS44およびS45において、図4のステップS23および24と同様の処理が行われ、その後、処理は終了される。
以上のような手順で、バスIF11では、グループアドレスを共有してもよい。
<I3Cデバイスの退出時の処理>
例えば、カレントマスタ12Cが、I3Cデバイスの退出を確認すると処理が開始され、ステップS51において、カレントマスタ12Cは、情報保持部46が保持しているグループ関連能力情報を参照し、自身がグループアドレスを割り当てる能力を有するか否かを判定する。
ステップS51において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有すると判定した場合、処理はステップS52に進む。なお、カレントマスタ12Cおよびセカンダリマスタ12Sがグループ管理能力を有することが必須であると規定される場合、ステップS51の処理は省略してもよく、ステップS52から処理が開始される。
ステップS52において、カレントマスタ12Cは、退出を確認したI3Cデバイスのグループ関連能力情報(グループ情報有効情報、グループ管理能力情報、グループ所属能力情報、およびグループアドレス)を、図3のデバイス情報テーブルから削除する。
ステップS53において、カレントマスタ12Cは、ステップS52で削除したグループ関連能力情報を、図2の上位層22に通知する。これにより、上位層22は、そのグループ関連能力情報の削除に対応して、全体として、グループアドレスの変更を行うか否かを判断することができる。
ステップS54において、カレントマスタ12Cは、バスIF11に残っているI3Cデバイスに対してグループアドレスの変更を行うか否かを判定する。例えば、カレントマスタ12Cは、グループ関連能力情報の削除に応じて判断を行った上位層22から、グループアドレスの変更が指示されると、その指示に従ってI3Cデバイスに対するグループアドレスの変更を行うと判定することができる。
ステップS54において、カレントマスタ12Cが、バスIF11に残っているI3Cデバイスに対してグループアドレスの変更を行うと判定した場合、処理はステップS55に進む。ステップS55において、カレントマスタ12Cは、SETGRPAコマンドを使用してグループアドレスを割り当てるか、図7または図8を参照して後述するRSTGRPAコマンドを使用してグループアドレスをリセットする。即ち、バスIF11に残っているI3Cデバイスに割り当てられているグループアドレスが再設定またはリセットされる。
一方、ステップS54において、カレントマスタ12Cが、グループアドレスの変更を行わないと判定した場合、または、ステップS55の処理後、処理はステップS56に進む。
ステップS56において、カレントマスタ12Cは、テーブル保持部48に保持されているデバイス情報テーブルを参照して、カレントマスタ12C以外に、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sがあるか否かを判定する。
ステップS56において、カレントマスタ12Cが、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sがあると判定した場合、処理はステップS57に進む。なお、カレントマスタ12Cおよびセカンダリマスタ12Sがグループ管理能力を有することが必須であると規定される場合、ステップS56の処理は省略してもよく、ステップS56をスキップして処理はステップS57へ進む。
ステップS57において、カレントマスタ12Cは、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sに対して、グループアドレスに関する情報の共有を指示するDEFGRPSコマンドを送信する。これにより、カレントマスタ12Cは、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sとの間で、ステップS55で割り当てまたはリセットを行ったグループアドレスに関する情報を共有する。
ステップS56でカレントマスタ12Cが、グループアドレスを割り当てる能力を有するセカンダリマスタ12Sがないと判定した場合、または、ステップS57の処理後、処理はステップS58に進む。また、ステップS51でカレントマスタ12Cが、グループアドレスを割り当てる能力を有さないと判定した場合も、処理はステップS58に進む。
ステップS58において、カレントマスタ12Cは、退出を確認したI3Cデバイスのアドレス情報(スタティックアドレスおよびダイナミックアドレス)を、図3のデバイス情報テーブルから削除する。なお、カレントマスタ12Cは、退出を確認したI3Cデバイスのアドレス情報を削除せずに、そのアドレス情報を無効化してもよい。
ステップS59において、カレントマスタ12Cは、バスIF11に参加している全てのセカンダリマスタ12Sに対して、デバイス情報の共有を指示するDEFSLVSコマンドを送信する。これにより、更新したデバイス情報をセカンダリマスタ12Sとの間で共有し、その後、処理は終了される。
以上のような手順で、バスIF11では、I3Cデバイスの退出が確認されると、グループアドレスのリセットを行うことができる。
なお、カレントマスタ12Cは、I3Cデバイスの退出が確認されたのに伴って、グループアドレスをリセットするのに替えて、例えば、グループアドレスの再設定を行ってもよい。これにより、再設定されたグループアドレスを使用してグループを相手先とした通信を行うことができる。
または、カレントマスタ12Cは、I3Cデバイスの退出が確認されたのに伴って、グループアドレスをリセットするのに替えて、例えば、退出したI3Cデバイスに割り当てられたグループアドレスを除外した上で、残りのI3Cデバイスに割り当てられているグループアドレスの使用を継続するようにしてもよい。即ち、この場合、I3Cデバイスの退出に影響を受けないグループアドレスを使用して、そのままグループを相手先とした通信を行うことができる。
<RSTGRPAコマンドのフォーマット例>
図7には、図6のステップS55で送信されるRSTGRPAコマンドの第1のフォーマット例が示されている。
RSTGRPAコマンド(Direct Write CCC)は、ダイナミックアドレスで指定した1つのI3Cデバイス、または、グループアドレスで指定したグループに所属する複数のI3Cデバイスに対して、グループアドレスのリセットを指示する。
図7に示す例では、まず、カレントマスタ12Cは、スタートコンディション(S)を発行し、バスIF11に参加している全てのデバイスを指定するアドレス7'h7Eを送信するのに続いて、グループアドレスのリセットを指示するコモンコマンドコード(Direct RSTGRPA CCC)を送信する。そして、カレントマスタ12Cは、リスタート(Sr)に続いてスレーブアドレス(Slave Address)を送信すると、そのスレーブアドレスのI3Cスレーブ13は、グループアドレスをリセットする。このとき、スレーブアドレスには、ダイナミックアドレスまたはグループアドレスを指定することができる。
そして、RSTGRPAコマンドを受信したグループ所属能力を有するデバイスは、グループアドレスが割り当てられていない場合にはACK応答するが何もせず、グループアドレスが割り当てられている場合にはACK応答をして自身のグループアドレスをリセットする。
一方、グループ所属能力を有さないデバイスは、RSTGRPAコマンドを受信しても無視してもよいし、ACK応答だけ行って以降は何もしなくてもよい。例えば、I3C_v1.0の規格では、サポートしないダイレクトコモンコマンドコード(Direct CCC)を受信したデバイスは、NACK応答することが規定されている。そして、RSTGRPAコマンドは、I3C_v1.0の規格では規定されていないため、I3C_v1.0に準拠するデバイスは、RSTGRPAコマンドに対しては、必ず、NACK応答することになる。
また、グループアドレスを割り当てる能力を有しているマスタ12は、例えば、図7に示すようなRSTGRPAコマンドなどの方法で、設定したグループアドレスを再設定あるいはクリアする仕組みが必要となる。一方、グループアドレスを割り当てる能力を有していないマスタ12は、図7に示すようなRSTGRPAコマンドを送信することは任意となる。
図8には、RSTGRPAコマンドの第2のフォーマット例が示されている。
図8に示すRSTGRPAコマンドは、1台のI3Cスレーブ13に対して、少なくとも1つ以上のグループアドレスを割り当てられている場合に、それらのグループアドレスをリセットする際に用いられる。この場合、スレーブアドレスには、ダイナミックアドレスにみを指定することができる。
そして、RSTGRPAコマンドを受信したグループ所属能力を有するデバイスは、1つ以上のグループアドレスが割り当てられている場合、自身のグループアドレスを全てリセットする。
なお、複数のグループアドレスを個別に削除したい場合には、SETGRPAコマンドを使用して情報を上書きすることができる。
以上のようなフォーマットのRSTGRPAコマンドを用いて、カレントマスタ12Cは、バスIF11に参加しているI3Cデバイスに対して、一旦割り当てたグループアドレスをリセットすることができる。
<グループアドレスを利用した通信フォーマット>
図9乃至図11を参照して、グループアドレスを利用した通信において用いられる通信フォーマットについて説明する。
図9には、書き込み転送(I3C Directed CCC Write)における通信フォーマットの一例が示されている。
図9に示すように、任意の複数台のI3Cスレーブ13を相手先としてカレントマスタ12Cから送信されるグループアドレス(I3C Group Address)に対し、I3Cスレーブ13からACKが返信され、その後、そのグループを対象として書き込むデータ(Optional Write Data)が送信される。そして、必要なデータ量だけ、そのグループアドレスを相手先としたデータの送信が行われる。
なお、同一のグループに所属する複数台のI3Cスレーブ13のうち、多数のI3Cスレーブ13がACKを返信し、一部のI3Cスレーブ13がNACKを送信した場合、カレントマスタ12CがNACKを認識することができないことも想定されるが、その後の通信処理におけるエラー検出で対応することにより、正常な通信を行うことが可能である。
図10には、書き込み転送(I3C Private Write)および読み出し転送(I3C Private Read)における通信フォーマットの一例が示されている。
図10に示す4つの通信フォーマットのうちの、上側の2つが書き込み転送における通信フォーマットを表しており、下側の2つが書き込み転送における通信フォーマットを表している。
書き込み転送では、任意の複数台のI3Cスレーブ13を相手先としてカレントマスタ12Cから送信されるグループアドレス(I3C Group Address)に対し、I3Cスレーブ13からACKが返信され、その後、そのグループを対象として書き込むN個のデータ(Write Data-1〜Write Data-N)が送信される。
読み出し転送では、同一のグループに所属する複数台のI3Cスレーブ13について、順次、それぞれのI3Cスレーブ13からN個のデータ(Read Data-1〜Read Data-N)が読み出される。即ち、複数台のI3Cスレーブ13から読み出されたデータがコンフリクトを発生しないように、それぞれのI3Cスレーブ13からデータを読み出すタイミングが異なるものとなるように制御する必要がある。
図11には、書き込み転送(I3C Private Write)および読み出し転送(I3C Private Read)における通信フォーマットの一例が示されている。
図10に示した通信フォーマットと同様に、書き込み転送では、グループを対象として書き込むN個のデータが送信され、読み出し転送では、同一のグループのI3Cスレーブ13ごとに順次、N個のデータが読み出される。
例えば、スタートコンディション(Sのみ、Srは含まず)の後のグループアドレス(I3C Group Address)は、カレントマスタ12C側からオープンドレイン出力によって400kHz程度でデータ転送が行われる。このとき、最初の1バイトのみオープンドレイン出力とし、それ以降のビット(6bit+R/W)は、プッシュプル出力によって12.5MHzでデータ転送されるようにしてもよい。
<コンピュータの構成例>
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。また、プログラムは、単一のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
また、上述した一連の処理(通信方法)は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラムが記録されたプログラム記録媒体からインストールされる。
図12は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例(マスタ12が行う処理を実行する処理実行部の一例)を示すブロック図である。
コンピュータにおいて、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)に接続される。
以上のように構成されるコンピュータでは、CPU101が、例えば、ROM102およびEEPROM104に記憶されているプログラムを、バス105を介してRAM103にロードして実行することにより、上述した一連の処理が行われる。また、コンピュータ(CPU101)が実行するプログラムは、ROM102に予め書き込んでおく他、入出力インタフェース105を介して外部からEEPROM104にインストールしたり、更新したりすることができる。
<構成の組み合わせ例>
なお、本技術は以下のような構成も取ることができる。
(1)
バスを介した通信の主導権を有する通信装置であって、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、
および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理
を行う処理実行部と
を備える通信装置。
(2)
前記処理実行部は、
前記バスが稼働している状態で、前記他の通信装置が途中から参加することを要求するホットジョインリクエストを許可した後、その他の通信装置が前記グループに所属して通信を行うことができるグループ所属能力を有するかを認識する処理、
および、前記グループ所属能力を有すると認識された前記他の通信装置に対して前記グループアドレスを割り当てる処理を行う
上記(1)に記載の通信装置。
(3)
前記通信装置から前記通信の主導権が譲渡されると前記通信装置として機能することが可能で、前記通信の主導権を有していないときには前記通信装置による制御に従って通信を行う特定の他の通信装置が前記バスに参加することができ、
前記処理実行部は、前記特定の他の通信装置との間で、前記他の通信装置の情報を共有する処理を行う
上記(2)に記載の通信装置。
(4)
前記処理実行部は、前記他の通信装置に対して前記グループアドレスを割り当てたのに伴って、前記特定の他の通信装置との間で、前記他の通信装置の前記グループ所属能力および前記グループアドレスを共有する
上記(3)に記載の通信装置。
(5)
前記処理実行部は、前記他の通信装置が前記バスから退出したことが確認されたのに伴って、前記特定の他の通信装置との間で、前記他の通信装置の前記グループ所属能力および前記グループアドレスのリセットを共有する
上記(3)に記載の通信装置。
(6)
前記処理実行部は、前記他の通信装置の前記バスから退出したことが確認されたのに伴って、前記グループアドレスをリセットするのに替えて、前記グループアドレスの再設定を行う
上記(1)から(5)までのいずれかに記載の通信装置。
(7)
前記処理実行部は、前記他の通信装置の前記バスからの退出に伴って、前記グループアドレスをリセットするのに替えて、退出した前記他の通信装置に割り当てられた前記グループアドレスを除外した上で、残りの前記他の通信装置に割り当てられている前記グループアドレスの使用を継続する
上記(1)から(6)までのいずれかに記載の通信装置。
(8)
バスを介した通信の主導権を有する通信装置の通信方法であって、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当て、
前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする
ステップを含む通信方法。
(9)
バスを介した通信の主導権を有する通信装置が内蔵するコンピュータに実行させるプログラムにおいて、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当て、
前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする
ステップを含む処理を実行させるプログラム。
(10)
バスを介した通信の主導権を有する通信装置と、前記通信装置による制御に従って通信を行う他の通信装置とにより通信が行われる通信システムにおいて、
前記通信装置が、
前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、
前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、
および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理
を行う処理実行部と
を備える通信システム。
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
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 情報保持部

Claims (9)

  1. バスを介した通信の主導権を有する通信装置であって、
    前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、
    前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、
    および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理
    を行う処理実行部と
    を備える通信装置。
  2. 前記処理実行部は、
    前記バスが稼働している状態で、前記他の通信装置が途中から参加することを要求するホットジョインリクエストを許可した後、前記他の通信装置が前記グループに所属して通信を行うことができるグループ所属能力を有するかを認識する処理、
    および、前記グループ所属能力を有すると認識された前記他の通信装置に対して前記グループアドレスを割り当てる処理を行う
    請求項1に記載の通信装置。
  3. 定の他の通信装置が前記バスに参加することができ、
    前記特定の他の通信装置は、前記通信装置から前記通信の主導権が譲渡されると前記通信装置として機能することが可能で、前記通信の主導権を有していないときには前記通信装置による制御に従って前記他の通信装置と同じ扱いで通信を行い、
    前記処理実行部は、前記特定の他の通信装置との間で、前記他の通信装置の情報を共有する処理を行う
    請求項2に記載の通信装置。
  4. 前記処理実行部は、前記他の通信装置に対して前記グループアドレスを割り当てたのに伴って、前記特定の他の通信装置との間で、前記他の通信装置の前記グループ所属能力および前記グループアドレスを共有する
    請求項3に記載の通信装置。
  5. 前記処理実行部は、前記他の通信装置が前記バスから退出したことが確認されたのに伴って、前記特定の他の通信装置との間で、前記他の通信装置の前記グループ所属能力および前記グループアドレスのリセットを共有する
    請求項3に記載の通信装置。
  6. 前記処理実行部は、前記他の通信装置の前記バスから退出したことが確認されたのに伴って、前記グループアドレスをリセットするのに替えて、前記グループアドレスの再設定を行う
    請求項1に記載の通信装置。
  7. バスを介した通信の主導権を有する通信装置の通信方法であって、
    前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、
    前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当て、
    前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする
    ステップを含む通信方法。
  8. バスを介した通信の主導権を有する通信装置が内蔵するコンピュータに実行させるプログラムにおいて、
    前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御し、
    前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当て、
    前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする
    ステップを含む処理を実行させるプログラム。
  9. バスを介した通信の主導権を有する通信装置と、前記通信装置による制御に従って通信を行う他の通信装置とにより通信が行われる通信システムにおいて、
    前記通信装置が、
    前記通信装置による制御に従って通信を行う他の通信装置との間における信号の送受信を制御する送受信制御部と、
    前記バスに参加している複数台の前記他の通信装置のうち、任意の他の通信装置に対し、任意の複数台の前記他の通信装置を1つのグループとして、そのグループを相手先とするグループアドレスを割り当てる処理、
    および、前記グループアドレスが割り当てられた前記他の通信装置のうち、少なくとも1台以上の前記他の通信装置が前記バスから退出したことが確認されたとき、残りの前記他の通信装置に割り当てられている前記グループアドレスをリセットする処理
    を行う処理実行部と
    を備える通信システム。
JP2017113852A 2017-06-08 2017-06-08 通信装置、通信方法、プログラム、および、通信システム Active JP6976729B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2017113852A JP6976729B2 (ja) 2017-06-08 2017-06-08 通信装置、通信方法、プログラム、および、通信システム
TW107117655A TWI755538B (zh) 2017-06-08 2018-05-24 通訊裝置、通訊方法、程式及通訊系統
EP18734645.7A EP3635568B1 (en) 2017-06-08 2018-06-07 Communication device, communication method, program, and communication system
US16/618,596 US11169944B2 (en) 2017-06-08 2018-06-07 Communication device, communication method, program, and communication system
PCT/JP2018/021806 WO2018225808A1 (en) 2017-06-08 2018-06-07 Communication device, communication method, program, and communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017113852A JP6976729B2 (ja) 2017-06-08 2017-06-08 通信装置、通信方法、プログラム、および、通信システム

Publications (2)

Publication Number Publication Date
JP2018206268A JP2018206268A (ja) 2018-12-27
JP6976729B2 true JP6976729B2 (ja) 2021-12-08

Family

ID=62751498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017113852A Active JP6976729B2 (ja) 2017-06-08 2017-06-08 通信装置、通信方法、プログラム、および、通信システム

Country Status (5)

Country Link
US (1) US11169944B2 (ja)
EP (1) EP3635568B1 (ja)
JP (1) JP6976729B2 (ja)
TW (1) TWI755538B (ja)
WO (1) WO2018225808A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4075288B1 (en) * 2021-04-12 2023-10-18 STMicroelectronics S.r.l. Dynamic addressing system and method in a digital communication interface
WO2024021094A1 (zh) * 2022-07-29 2024-02-01 华为技术有限公司 通信方法及装置
CN115632900B (zh) * 2022-08-31 2023-09-01 超聚变数字技术有限公司 一种计算设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19810291A1 (de) 1998-03-10 1999-09-16 Bayerische Motoren Werke Ag Datenbus für mehrere Teilnehmer
WO2004107661A1 (en) 2003-05-30 2004-12-09 Lg Electronics, Inc. Home network system
WO2012029602A1 (ja) * 2010-08-31 2012-03-08 シャープ株式会社 シリアルデータ通信方法及びシリアルデータ通信装置
WO2015145347A1 (en) * 2014-03-24 2015-10-01 Inesc Porto- Instituto De Engenharia De Sistemas E Computadores Do Porto Control module for multiple mixed-signal resources management
KR101711698B1 (ko) * 2014-05-26 2017-03-02 한국전자통신연구원 데이터 처리 방법, 및 데이터 처리 장치
JP6340962B2 (ja) * 2014-07-07 2018-06-13 富士通株式会社 バス制御装置、データ転送システム、及びバス制御方法
US9520884B2 (en) * 2014-08-01 2016-12-13 Texas Instruments Incorporated Phase lock loop with dynamic lock ranges
US9960981B2 (en) 2015-10-08 2018-05-01 Sony Corporation Communication device, communication method, program, and communication system
CN106598891B (zh) * 2015-10-15 2021-04-30 恩智浦美国有限公司 集成电路间i2c总线系统中的从设备报警信号
US20170255588A1 (en) * 2016-03-07 2017-09-07 Qualcomm Incorporated Multiprotocol i3c common command codes
US10572439B1 (en) * 2019-06-20 2020-02-25 Qualcomm Incorporated I3C read from long latency devices

Also Published As

Publication number Publication date
EP3635568B1 (en) 2024-05-01
EP3635568A1 (en) 2020-04-15
US20200133904A1 (en) 2020-04-30
TW201904253A (zh) 2019-01-16
WO2018225808A1 (en) 2018-12-13
US11169944B2 (en) 2021-11-09
JP2018206268A (ja) 2018-12-27
TWI755538B (zh) 2022-02-21

Similar Documents

Publication Publication Date Title
JP6983542B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
JP6976729B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
KR101903536B1 (ko) 데이터 기입 방법, 장치, 및 시스템
TWI512483B (zh) 應用於埠倍增器之多階層埠擴充功能
JP2021002172A (ja) デイジーチェーン接続システム及びシステム制御方法
JP6976728B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
JP4742498B2 (ja) データ通信システム、データ処理装置、そのプログラムおよびその方法
JP2004062347A (ja) Usbデバイスおよびusbシステム
WO2009147716A1 (ja) データ処理システム、データ処理方法およびデータ処理プログラム
US11489880B2 (en) Controller to determine a transmission right and control a timing of communication between nodes
WO2023119359A1 (ja) 列車情報管理装置、試験端末装置、列車情報管理装置試験システムおよび試験方法
KR101985807B1 (ko) 장비 id를 이용한 동적 기능 할당방법 및 그를 위한 장치
CN111970387A (zh) 信息处理系统及中继装置
TW202042072A (zh) 多控制器儲存系統及儲存裝置
JP2006004381A (ja) 永続的バス番号を保持するコンピュータ装置および方法
JP2008269414A (ja) ストレージシステムにおけるデバイス特定方法、デバイス特定装置、およびデバイス特定プログラム
JP2006171811A (ja) 論理検証制御装置及び論理検証方法
JP2009251889A (ja) サーバ装置およびソフトウェア導入方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210906

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211110

R150 Certificate of patent or registration of utility model

Ref document number: 6976729

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150