(57)【要約】  マスタおよびスレーブ間でデータを送受信するシステムを最適化する。  第１のスレーブデバイスは、通信の開始を指示するスタートビットと特定の値が先頭ビットに設定された所定のパターンデータと特定の値が先頭ビットに設定された第１アドレスとを受信するとデータを送受信する。第２のスレーブデバイスは、スタートビットと特定の値と異なる値が先頭ビットに設定された第２アドレスとを順に送信してデータを送受信する。マスタデバイスは、スタートビットと所定のパターンデータと第１アドレスおよび第２アドレスのいずれかとを順に送信し、先頭ビットに基づいて第２のスレーブデバイスと他のデバイスとを調停する。
2017056917.tif 000002
【特許請求の範囲】
【請求項１】
調停が必要なグループに属し、通信の開始を指示するスタートビットと所定のパターンデータの先頭ビットと異なる値が先頭ビットに設定された第１のアドレスとを順に送信してデータを送受信する第１のスレーブデバイスと、
前記スタートビットと前記所定のパターンデータとを順に送信するマスタデバイスと
を具備し、
前記マスタデバイスは、当該マスタデバイスと前記第１のスレーブデバイスとを前記先頭ビットに基づいて調停する
通信システム。
【請求項２】
前記スタートビットと前記所定のパターンデータとを順に受信してから特定の値が先頭ビットに設定された第２アドレスを受信し、データを送受信する第２のスレーブデバイスをさらに具備する
請求項１記載の通信システム。
【請求項３】
前記第２のスレーブデバイスは、前記スタートビットと前記所定のパターンデータとを順に受信してから確認応答を送信し、再度の通信開始を示すリスタートコンディションを受信し、前記第２アドレスを受信する
請求項２記載の通信システム。
【請求項４】
前記マスタデバイスと前記第１および第２のスレーブデバイスとは、Ｉ３Ｃの通信規格に従って前記データを送受信する
請求項２記載の通信システム。
【請求項５】
前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるＩ３Ｃセカンダリマスタ要求が可能なデバイスである
請求項４記載の通信システム。
【請求項６】
前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるピアツーピアＩ３Ｃスレーブ要求が可能なデバイスである
請求項４記載の通信システム。
【請求項７】
前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格における帯域内割込み可能なデバイスである
請求項４記載の通信システム。
【請求項８】
前記第１のスレーブデバイスは、調停が必要なグループに属する旨を示す設定情報を保持し、
前記第２のスレーブデバイスは、調停が不要なグループに属する旨を示す前記設定情報を保持し、
前記マスタデバイスは、前記設定情報に基づいて前記第１のスレーブデバイスに前記第１アドレスを割り当てるとともに前記第２のスレーブデバイスに前記第２アドレスを割り当てる
請求項４記載の通信システム。
【請求項９】
前記第１および第２のスレーブデバイスは、前記設定情報をバス特性レジスタに保持する
請求項８記載の通信システム。
【請求項１０】
調停が必要なグループに属するか否かが先頭ビットに設定されたアドレスが割り当てられたデバイス。
【請求項１１】
通信の開始を指示するスタートビットと所定のパターンデータと調停が必要なグループに属するか否かが先頭ビットに設定されたアドレスとを順に送信する通信部と、
スレーブデバイスと他のデバイスとを前記先頭ビットに基づいて調停する調停部と
を具備するマスタデバイス。
【請求項１２】
前記通信部は、前記スタートビットと前記所定のパターンデータとを順に送信してから確認応答を受信し、再度の通信開始を示すリスタートコンディションを送信し、前記アドレスを送信する
請求項１１に記載のマスタデバイス。
【請求項１３】
前記通信部は、
先頭ビットに基づく調停において前記所定のパターンデータの先頭ビットと異なる値が前記調停部により検出されたときに帯域内割り込み要求またはセカンダリマスタ要求またはピアツーピアスレーブ要求を含む調停が必要なイベントが発生したと判断して前記所定のパターンデータの送信を停止し、
前記調停部は、２ビット目以降のアドレスを前記スレーブデバイスから受信してビット単位で調停を行い、
前記通信部は、前記イベントを前記マスタデバイスが受け入れ可能である場合に確認応答を送信後にデータの送受信またはデータの処理を行い、前記イベントを前記マスタデバイスが受け入れ不可能である場合に確認応答を送信せずに通信処理を終了する
請求項１１記載のマスタデバイス。
【請求項１４】
通信の開始を指示するスタートビットと調停が必要なグループに属するか否かが先頭ビットに設定されたアドレスとを順に送信する送信部と、
マスタデバイスとスレーブデバイスとを前記先頭ビットに基づいて調停する調停部と
を具備するスレーブデバイス。
【請求項１５】
通信の開始を指示するスタートビットと所定のパターンデータの先頭ビットと異なる値が先頭ビットに設定された第１のアドレスとを順に送信してデータを調停が必要なグループに属する第１のスレーブデバイスが送受信する第１のスレーブ側手順と、
前記スタートビットと前記所定のパターンデータとをマスタデバイスが順に送信するマスタ側手順と
を具備し、
前記マスタ側手順において前記マスタデバイスは、当該マスタデバイスと前記第１のスレーブデバイスとを前記先頭ビットに基づいて調停する
通信システムの制御方法。
【請求項１６】
通信の開始を指示するスタートビットと所定のパターンデータの先頭ビットと異なる値が先頭ビットに設定された第１のアドレスとを順に送信してデータを調停が必要なグループに属する第１のスレーブデバイスが送受信する第１のスレーブ側手順と、
前記スタートビットと前記所定のパターンデータとをマスタデバイスが順に送信するマスタ側手順と
を具備し、
前記マスタ側手順において前記マスタデバイスは、当該マスタデバイスと前記第１のスレーブデバイスとを前記先頭ビットに基づいて調停する
をコンピュータに実行させるためのプログラム。
【請求項１７】
通信の開始を示すスタートビットと特定の値が先頭ビットに設定された送信元のアドレスを順に送信するスレーブデバイスと、
前記スタートビットと前記特定の値に該当しない値が先頭ビットに設定された送信先のアドレスとを順に送信し、前記スレーブデバイスと他のデバイスとを前記先頭ビットに基づいて調停するマスタデバイスと
を具備する通信システム。
【請求項１８】
前記スレーブデバイスは、調停処理が必要な調停対象スレーブデバイスと調停処理が不要な調停不要スレーブデバイスとを含み、
前記マスタデバイスは、前記調停対象デバイスに前記アドレスを割り当てるとともに前記調停不要デバイスに先頭ビットを除くビット列が前記調停対象スレーブデバイスと異なるアドレスを割り当てる
請求項１７記載の通信システム。
【請求項１９】
通信の開始を指示するスタートビットと先頭ビットに固定値が設定された送信元のアドレスを順に送信するデバイス。
【請求項２０】
通信の開始を指示するスタートビットと先頭ビットに固定値が設定された送信先のアドレスとを順に送信する送信部と、
スレーブデバイスと他のデバイスとを前記先頭ビットに基づいて調停する調停部とを具備するデバイス。
【請求項２１】
通信の開始を示すスタートビットと特定の値が先頭ビットに設定された送信元のアドレスとを順にスレーブデバイスが送信するスレーブ側手順と、
前記スタートビットと前記特定の値に該当しない値が先頭ビットに設定された送信先のアドレスとを順に送信し、前記スレーブデバイスと他のデバイスとを前記先頭ビットに基づいてマスタデバイスが調停するマスタ側手順と
を具備する通信システムの制御方法。
【請求項２２】
通信の開始を示すスタートビットと特定の値が先頭ビットに設定された送信元のアドレスとを順にスレーブデバイスが送信するスレーブ側手順と、
前記スタートビットと前記特定の値に該当しない値が先頭ビットに設定された送信先のアドレスとを順に送信し、前記スレーブデバイスと他のデバイスとを前記先頭ビットに基づいてマスタデバイスが調停するマスタ側手順と
をコンピュータに実行させるためのプログラム。
【請求項２３】
通信の開始を指示するスタートビットと所定のパターンデータとを順に送信してデータを送受信するマスタデバイスと、
帯域内割り込み要求、セカンダリマスタ要求、または、ピアツーピアスレーブ要求が可能な第１のスレーブデバイスと
を具備し、
前記第１のスレーブデバイスは、前記スタートビットと前記所定のパターンデータの先頭ビットと異なる値が先頭ビットに設定された第１のアドレスとを順に送信してデータを送受信し、
前記マスタデバイスは、当該マスタデバイスと前記第１のスレーブデバイスとを前記先頭ビットに基づいて調停する
通信システム。
【請求項２４】
前記帯域内割り込み要求、前記セカンダリマスタ要求および前記ピアツーピアスレーブ要求をいずれも行わない第２のスレーブデバイスをさらに具備し、
前記第２のスレーブデバイスは、前記スタートビットと前記所定のパターンデータとを順に受信してから特定の値が先頭ビットに設定された第２のアドレスを受信してデータを送受信する
請求項２３記載の通信システム。
【請求項２５】
前記第２のスレーブデバイスは、前記スタートビットと前記所定のパターンデータと順に受信してから確認応答を送信し、再度の通信開始を示すリスタートコンディションを受信後、アドレスを受信し、当該受信したアドレスがマスタから割り当てられた前記第２のスレーブデバイスのアドレスと合致した場合には確認応答を送信後に前記マスタデバイスから送られてきた書き込みデータの受信あるいは前記マスタデバイスへの読み込みデータの送信を行い、 
前記第１のスレーブデバイスは、前記帯域内割り込み要求および前記セカンダリマスタ要求および前記ピアツーピアスレーブ要求をいずれも行わない場合には前記スタートビットと前記所定のパターンデータとを順に受信してから確認応答を送信し、前記リスタートコンディションを受信後、アドレスを受信し、当該受信したアドレスが前記マスタデバイスから割り当てられた前記第１のスレーブデバイスのアドレスと合致した場合には確認応答を送信後に前記マスタデバイスから送られてきた書き込みデータの受信あるいは前記マスタデバイスへの読み込みデータの送信を行う
請求項２３記載の通信システム。
【請求項２６】
前記マスタデバイスと前記第１および第２のスレーブデバイスとは、Ｉ３Ｃの通信規格に従って前記データを送受信する
請求項２３記載の通信システム。
【請求項２７】
前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるＩ３Ｃセカンダリマスタ要求が可能なデバイスである
請求項２６記載の通信システム。
【請求項２８】
前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるピアツーピアＩ３Ｃスレーブ要求が可能なデバイスである
請求項２６記載の通信システム。
【請求項２９】
前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格における帯域内割込み可能なデバイスである
請求項２６記載の通信システム。
【請求項３０】
前記第１のスレーブデバイスは、調停が必要なグループに属する旨を示す設定情報を保持し、
前記第２のスレーブデバイスは、調停が不要なグループに属する旨を示す前記設定情報を保持し、
前記マスタデバイスは、前記設定情報に基づいて前記第１のスレーブデバイスに前記第１アドレスを割り当てるとともに前記第２のスレーブデバイスに前記第２アドレスを割り当てる
請求項２６記載の通信システム。
【請求項３１】
前記第１および第２のスレーブデバイスは、前記設定情報をバス特性レジスタに保持する
請求項３０記載の通信システム。
【請求項３２】
前記調停が必要なグループは、当該スレーブが帯域内割り込み要求を行うことができるスレーブデバイスを含むグループである請求項３０記載の通信システム 
【請求項３３】
前記調停が必要なグループは、当該スレーブがセカンダリマスタ要求を行うことができるスレーブデバイスを含むグループである請求項３０記載の通信システム 
【請求項３４】
前記調停が必要なグループは、当該スレーブがピアツーピアスレーブ要求を行うことができるスレーブデバイスを含むグループである請求項３０記載の通信システム 
【請求項３５】
前記マスタデバイスは、
先頭ビットに基づく調停において前記所定のパターンデータの先頭ビットと異なる値を検出したときに前記帯域内割り込み要求または前記セカンダリマスタ要求または前記ピアツーピアスレーブ要求を含む調停が必要なイベントが発生したと判断して前記所定のパターンデータの送信を停止し、２ビット目以降のアドレスを他のスレーブデバイスから受信してビット単位で調停を行い、前記イベントを前記マスタデバイスが受け入れ可能である場合に確認応答を送信後にデータの送受信またはデータの処理を行い、前記イベントを前記マスタデバイスが受け入れ不可能である場合に確認応答を送信せずにマスタ側の通信処理を終了する
請求項２３記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、通信システム、デバイス、マスタデバイス、スレーブデバイス、通信システムの制御方法、および、当該方法をコンピュータに実行させるためのプログラムに関する。詳しくは、マスタおよびスレーブ間でデータを送受信する通信システム、デバイス、マスタデバイス、スレーブデバイス、通信システムの制御方法、および、当該方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
従来より、同一基板内など、比較的近距離のデバイス間で通信を行う際においては、構成が単純であることから、Ｉ２Ｃ（Inter-Integrated Circuit）の通信規格が広く用いられている。このＩ２Ｃでは、１つのスレーブに対して複数のマスタが信号を送信することができるため、それらの信号の衝突を検知してマスタ同士を調停する必要がある。例えば、Ｉ２Ｃの通信規格において一方のマスタが「１」を送信し、他方のマスタが「０」を送信した際に、「１」を送信した方が制御権を失う調停手順が提案されている（例えば、非特許文献１参照。）。【０００３】
また、Ｉ２Ｃを拡張したＩ３Ｃの通信規格が提案されている。このＩ３Ｃでは、３つの通信方式が用いられる。１つ目の通信方式（以下、「ケース０」と称する）では、調停を可能としつつ、最大１１２個までのスレーブをマスタに接続することができる。２つ目の通信方式（以下、「ケース１」と称する）では、調停を可能としつつ、ケース０よりも通信速度が向上する代わりに、接続するスレーブ数は最大５６個に制限される。３つ目の通信方式（以下、「ケース２」と称する）では、ケース０よりも通信速度が向上し、最大１１２個のスレーブを接続することができるが、その代わりにデバイス同士を調停することができなくなる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】"ＵＭ１０２０４バスＩ２Ｃバス仕様及びユーザマニュアルＲｅｖ５．０Ｊ"、［online］、２０１２年１０月９日、ＮＸＰセミコンダクタ―ズ、[平成２７年８月２６日検索]、インターネット（http://www.nxp.com/documents/user_manual/UM10204_JA.pdf）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の従来技術では、Ｉ３Ｃを用いるシステムを最適化することが困難であるという問題がある。例えば、ケース１では、調停を可能としつつ通信速度を向上させることができるものの、接続可能なスレーブ数がケース０よりも少なくなってしまう。また、ケース２では、スレーブ数がケース０と同様のままで通信速度を向上させることができるものの、調停をすることができなくなってしまう。このように、接続可能なスレーブ数や調停の可否のバランスをとってシステムを最適化することが困難であるという問題がある。【０００６】
本技術はこのような状況に鑑みて生み出されたものであり、マスタおよびスレーブ間でデータを送受信するシステムを最適化することを目的とする。
【課題を解決するための手段】
【０００７】
本技術は、上述の問題点を解消するためになされたものであり、その第１の側面は、調停が必要なグループに属し、通信の開始を指示するスタートビットと所定のパターンデータの先頭ビットと異なる値が先頭ビットに設定された第１のアドレスとを順に送信してデータを送受信する第１のスレーブデバイスと、上記スタートビットと上記所定のパターンデータとを順に送信するマスタデバイスとを具備し、上記マスタデバイスは、当該マスタデバイスと上記第１のスレーブデバイスとを上記先頭ビットに基づいて調停する通信システム、および、その制御方法、並びに、当該方法をコンピュータに実行させるためのプログラムである。これにより、マスタデバイスと第１のスレーブデバイスとが先頭ビットに基づいて調停されるという作用をもたらす。【０００８】
また、この第１の側面において、上記スタートビットと上記所定のパターンデータとを順に受信してから特定の値が先頭ビットに設定された第２アドレスを受信し、データを送受信する第２のスレーブデバイスをさらに具備してもよい。これにより、特定の値が先頭ビットに設定された第２アドレスが受信されるという作用をもたらす。【０００９】
また、この第１の側面において、上記第２のスレーブデバイスは、上記スタートビットと上記所定のパターンデータとを順に受信してから確認応答を送信し、再度の通信開始を示すリスタートコンディションを受信し、上記第２アドレスを受信してもよい。これにより、リスタートコンディション、第２アドレスが受信されるという作用をもたらす。【００１０】
また、この第１の側面において、上記マスタデバイスと上記第１および第２のスレーブデバイスとは、Ｉ３Ｃの通信規格に従って上記データを送受信してもよい。これにより、Ｉ３Ｃの通信規格に従って上記データが送受信されるという作用をもたらす。【００１１】
また、この第１の側面において、上記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるＩ３Ｃセカンダリマスタ要求が可能なデバイスであってもよい。これにより、マスタデバイスとＩ３Ｃセカンダリマスタ要求が可能なデバイスとが先頭ビットに基づいて調停されるという作用をもたらす。【００１２】
また、この第１の側面において、上記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるピアツーピアＩ３Ｃスレーブ要求が可能なデバイスであってもよい。これにより、マスタデバイスとピアツーピアＩ３Ｃスレーブ要求が可能なデバイスとが先頭ビットに基づいて調停されるという作用をもたらす。【００１３】
また、この第１の側面において、上記第１のスレーブデバイスは、Ｉ３Ｃの通信規格における帯域内割込み可能なデバイスであってもよい。これにより、マスタデバイスと帯域内割込み可能なデバイスとが先頭ビットに基づいて調停されるという作用をもたらす。【００１４】
また、この第１の側面において、上記第１のスレーブデバイスは、調停が必要なグループに属する旨を示す設定情報を保持し、上記第２のスレーブデバイスは、調停が不要なグループに属する旨を示す上記設定情報を保持し、上記マスタデバイスは、上記設定情報に基づいて上記第１のスレーブデバイスに上記第１アドレスを割り当てるとともに上記第２のスレーブデバイスに上記第２アドレスを割り当ててもよい。これにより、設定情報に基づいて第１のスレーブデバイスに上記第１アドレスが割り当てられ、第２のスレーブデバイスに第２アドレスが割り当てられるという作用をもたらす。【００１５】
また、この第１の側面において、上記第１および第２のスレーブデバイスは、上記設定情報をバス特性レジスタに保持してもよい。これにより、バス特性レジスタに保持された設定情報に基づいて第１のスレーブデバイスに上記第１アドレスが割り当てられ、第２のスレーブデバイスに第２アドレスが割り当てられるという作用をもたらす。【００１６】
また、本技術の第２の側面は、調停が必要なグループに属するか否かが先頭ビットに設定されたアドレスが割り当てられたデバイスである。これにより、デバイスが先頭ビットに基づいて調停されるという作用をもたらす。【００１７】
また、本技術の第３の側面は、通信の開始を指示するスタートビットと所定のパターンデータと調停が必要なグループに属するか否かが先頭ビットに設定されたアドレスとを順に送信する通信部と、スレーブデバイスと他のデバイスとを上記先頭ビットに基づいて調停する調停部とを具備するマスタデバイスである。これにより、マスタデバイスと他のデバイスとが先頭ビットに基づいて調停されるという作用をもたらす。【００１８】
また、この第３の側面において、上記通信部は、上記スタートビットと上記所定のパターンデータとを順に送信してから確認応答を受信し、再度の通信開始を示すリスタートコンディションを送信し、上記アドレスを送信してもよい。これにより、リスタートコンディション、第２アドレスが送信されるという作用をもたらす。【００１９】
また、この第３の側面において上記通信部は、先頭ビットに基づく調停において上記所定のパターンデータの先頭ビットと異なる値が上記調停部により検出されたときに帯域内割り込み要求またはセカンダリマスタ要求またはピアツーピアスレーブ要求を含む調停が必要なイベントが発生したと判断して上記所定のパターンデータの送信を停止し、上記調停部は、２ビット目以降のアドレスを上記スレーブデバイスから受信してビット単位で調停を行い、上記通信部は、上記イベントを上記マスタデバイスが受け入れ可能である場合に確認応答を送信後にデータの送受信またはデータの処理を行い、上記イベントを上記マスタデバイスが受け入れ不可能である場合に確認応答を送信せずに通信処理を終了してもよい。これにより、ビット単位で調停が行われるという作用をもたらす。【００２０】
また、本技術の第４の側面は、通信の開始を指示するスタートビットと調停が必要なグループに属するか否かが先頭ビットに設定されたアドレスとを順に送信する送信部と、マスタデバイスとスレーブデバイスとを上記先頭ビットに基づいて調停する調停部とを具備するスレーブデバイスである。これにより、先頭ビットに基づいてスレーブデバイスと他のデバイスとが調停されるという作用をもたらす。【００２１】
また、本技術の第５の側面は、通信の開始を示すスタートビットと特定の値が先頭ビットに設定された送信元のアドレスを順に送信するスレーブデバイスと、上記スタートビットと上記特定の値に該当しない値が先頭ビットに設定された送信先のアドレスとを順に送信し、上記スレーブデバイスと他のデバイスとを上記先頭ビットに基づいて調停するマスタデバイスとを具備する通信システムである。これにより、スレーブデバイスと他のデバイスとが先頭ビットに基づいてマスタデバイスにより調停されるという作用をもたらす。【００２２】
また、この第５の側面において、上記スレーブデバイスは、調停処理が必要な調停対象スレーブデバイスと調停処理が不要な調停不要スレーブデバイスとを含み、上記マスタデバイスは、上記調停対象デバイスに上記アドレスを割り当てるとともに上記調停不要デバイスに先頭ビットを除くビット列が上記調停対象スレーブデバイスと異なるアドレスを割り当ててもよい。これにより、調停対象デバイスにアドレスが割り当てられ、調停不要デバイスに先頭ビットを除くビット列が調停対象スレーブデバイスと異なるアドレスが割り当てられるという作用をもたらす。【００２３】
また、本技術の第６の側面は、通信の開始を指示するスタートビットと先頭ビットに固定値が設定された送信元のアドレスを順に送信するデバイスである。これにより、スタートビットと先頭ビットに固定値が設定された送信元のアドレスと順に送信するデバイスが調停されるという作用をもたらす。【００２４】
また、本技術の第７の側面は、通信の開始を指示するスタートビットと先頭ビットに固定値が設定された送信先のアドレスとを順に送信する送信部と、スレーブデバイスと他のデバイスとを上記先頭ビットに基づいて調停する調停部とを具備するデバイスである。これにより、先頭ビットに基づいてデバイスが調停されるという作用をもたらす。【００２５】
また、本技術の第８の側面は、通信の開始を指示するスタートビットと所定のパターンデータとを順に送信してデータを送受信するマスタデバイスと、帯域内割り込み要求、セカンダリマスタ要求、または、ピアツーピアスレーブ要求が可能な第１のスレーブデバイスとを具備し、上記第１のスレーブデバイスは、上記スタートビットと上記所定のパターンデータの先頭ビットと異なる値が先頭ビットに設定された第１のアドレスとを順に送信してデータを送受信し、上記マスタデバイスは、当該マスタデバイスと上記第１のスレーブデバイスとを上記先頭ビットに基づいて調停する通信システムである。これにより、マスタデバイスと第１のスレーブデバイスとが先頭ビットに基づいて調停されるという作用をもたらす。【００２６】
また、この第８の側面において、上記帯域内割り込み要求、上記セカンダリマスタ要求および上記ピアツーピアスレーブ要求をいずれも行わない第２のスレーブデバイスをさらに具備し、上記第２のスレーブデバイスは、上記スタートビットと上記所定のパターンデータとを順に受信してから特定の値が先頭ビットに設定された第２のアドレスを受信してデータを送受信してもよい。これにより、スタートビットと所定のパターンデータとの後に特定の値が先頭ビットに設定された第２のアドレスが受信されるという作用をもたらす。【００２７】
また、この第８の側面において、上記第２のスレーブデバイスは、上記スタートビットと上記所定のパターンデータと順に受信してから確認応答を送信し、再度の通信開始を示すリスタートコンディションを受信後、アドレスを受信し、当該受信したアドレスがマスタから割り当てられた上記第２のスレーブデバイスのアドレスと合致した場合には確認応答を送信後に上記マスタデバイスから送られてきた書き込みデータの受信あるいは上記マスタデバイスへの読み込みデータの送信を行い、 上記第１のスレーブデバイスは、上記帯域内割り込み要求および上記セカンダリマスタ要求および上記ピアツーピアスレーブ要求をいずれも行わない場合には上記スタートビットと上記所定のパターンデータとを順に受信してから確認応答を送信し、上記リスタートコンディションを受信後、アドレスを受信し、当該受信したアドレスが上記マスタデバイスから割り当てられた上記第１のスレーブデバイスのアドレスと合致した場合には確認応答を送信後に上記マスタデバイスから送られてきた書き込みデータの受信あるいは上記マスタデバイスへの読み込みデータの送信を行ってもよい。これにより、スタートビットと所定のパターンデータとの後に確認応答が送信されるという作用をもたらす。【００２８】
また、この第８の側面において、上記マスタデバイスと上記第１および第２のスレーブデバイスとは、Ｉ３Ｃの通信規格に従って上記データを送受信してもよい。これにより、Ｉ３Ｃの通信規格に従ってデータが送受信されるという作用をもたらす。【００２９】
また、この第８の側面において、上記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるＩ３Ｃセカンダリマスタ要求が可能なデバイスであってもよい。これにより、Ｉ３Ｃセカンダリマスタ要求が可能なデバイスとマスタデバイスとが調停されるという作用をもたらす。【００３０】
また、この第８の側面において、上記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるピアツーピアＩ３Ｃスレーブ要求が可能なデバイスであってもよい。これにより、ピアツーピアＩ３Ｃスレーブ要求が可能なデバイスとマスタデバイスとが調停されるという作用をもたらす。【００３１】
また、この第８の側面において、上記第１のスレーブデバイスは、Ｉ３Ｃの通信規格における帯域内割込み可能なデバイスであってもよい。これにより、帯域内割込み可能なデバイスとマスタデバイスとが調停されるという作用をもたらす。【００３２】
また、この第８の側面において、上記第１のスレーブデバイスは、調停が必要なグループに属する旨を示す設定情報を保持し、上記第２のスレーブデバイスは、調停が不要なグループに属する旨を示す上記設定情報を保持し、上記マスタデバイスは、上記設定情報に基づいて上記第１のスレーブデバイスに上記第１アドレスを割り当てるとともに上記第２のスレーブデバイスに上記第２アドレスを割り当てもよい。これにより、設定情報に基づいて第１のスレーブデバイスに上記第１アドレスが割り当てられ、第２のスレーブデバイスに第２アドレスが割り当てられるという作用をもたらす。【００３３】
また、この第８の側面において、上記第１および第２のスレーブデバイスは、上記設定情報をバス特性レジスタに保持してもよい。これにより、バス特性レジスタに保持された設定情報に基づいて第１のスレーブデバイスに上記第１アドレスが割り当てられ、第２のスレーブデバイスに第２アドレスが割り当てられるという作用をもたらす。【００３４】
また、この第８の側面において、上記調停が必要なグループは、当該スレーブが帯域内割り込み要求を行うことができるスレーブデバイスを含むグループであってもよい。これにより、帯域内割り込み要求を行うことができるスレーブデバイスを含むグループが調停されるという作用をもたらす。【００３５】
また、この第８の側面において、上記調停が必要なグループは、当該スレーブがセカンダリマスタ要求を行うことができるスレーブデバイスを含むグループであってもよい。これにより、セカンダリマスタ要求を行うことができるスレーブデバイスを含むグループが調停されるという作用をもたらす。【００３６】
また、この第８の側面において、上記調停が必要なグループは、当該スレーブがピアツーピアスレーブ要求を行うことができるスレーブデバイスを含むグループであってもよい。これにより、ピアツーピアスレーブ要求を行うことができるスレーブデバイスを含むグループが調停されるという作用をもたらす。【００３７】
また、この第８の側面において、上記マスタデバイスは、先頭ビットに基づく調停において上記所定のパターンデータの先頭ビットと異なる値を検出したときに上記帯域内割り込み要求または上記セカンダリマスタ要求または上記ピアツーピアスレーブ要求を含む調停が必要なイベントが発生したと判断して上記所定のパターンデータの送信を停止し、２ビット目以降のアドレスを他のスレーブデバイスから受信してビット単位で調停を行い、上記イベントを上記マスタデバイスが受け入れ可能である場合に確認応答を送信後にデータの送受信またはデータの処理を行い、上記イベントを上記マスタデバイスが受け入れ不可能である場合に確認応答を送信せずにマスタ側の通信処理を終了してもよい。これにより、ビット単位で調停が行われるという作用をもたらす。
【発明の効果】
【００３８】
本技術によれば、マスタおよびスレーブ間でデータを送受信するシステムを最適化することができるという優れた効果を奏し得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００３９】
【図１】本技術の第１の実施の形態における電子機器の一構成例を示すブロック図である。
【図２】本技術の第１の実施の形態におけるプロセッサの一構成例を示すブロック図である。
【図３】本技術の第１の実施の形態におけるディスプレイドライバの一構成例を示すブロック図である。
【図４】本技術の第１の実施の形態における通信方式を説明するための図である。
【図５】本技術の第１の実施の形態におけるヘッダタイプを説明するための図である。
【図６】本技術の第１の実施の形態におけるケース０乃至２でマスタが送信するフレームのデータ構造の一例を示す図である。
【図７】本技術の第１の実施の形態におけるケース３でマスタが送信するフレームのデータ構造の一例を示す図である。
【図８】本技術の第１の実施の形態におけるスレーブが送信するフレームのデータ構造の一例を示す図である。
【図９】本技術の第１の実施の形態におけるバス特性レジスタの設定情報の一例を示す図である。
【図１０】本技術の第１の実施の形態におけるインデックス０乃至３の詳細の一例を示す図である。
【図１１】本技術の第１の実施の形態におけるマスタ／スレーブのデバイスの動作の一例を示すフローチャートである。
【図１２】本技術の第１の実施の形態におけるアドレス割当処理の一例を示すフローチャートである。
【図１３】本技術の第１の実施の形態におけるマスタ側通信処理の一例を示すフローチャートである。
【図１４】本技術の第１の実施の形態におけるケース３に対応するマスタ側の通信処理の一例を示すフローチャートである。
【図１５】本技術の第１の実施の形態におけるスレーブの動作の一例を示すフローチャートである。
【図１６】本技術の第１の実施の形態におけるケース３に対応するスレーブ側の側通信処理の一例を示すフローチャートである。
【図１７】本技術の第１の実施の形態の第１の変形例におけるビット特性レジスタの設定情報の一例を示す図である。
【図１８】本技術の第１の実施の形態の第２の変形例におけるビット特性レジスタの設定情報の一例を示す図である。
【図１９】本技術の第１の実施の形態の第３の変形例におけるビット特性レジスタの設定情報の一例を示す図である。
【図２０】本技術の第２の実施の形態における通信方式を説明するための図である。
【図２１】本技術の第２の実施の形態におけるケース４でマスタが送信するフレームのデータ構造の一例を示す図である。
【図２２】本技術の第２の実施の形態におけるマスタ側通信処理の一例を示すフローチャートである。
【図２３】本技術の第２の実施の形態におけるケース４に対応するマスタ側の通信処理の一例を示すフローチャートである。
【図２４】本技術の第２の実施の形態におけるスレーブの動作の一例を示すフローチャートである。
【図２５】本技術の第２の実施の形態におけるケース４に対応するスレーブ側の側通信処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００４０】
以下、本技術を実施するための形態（以下、実施の形態と称する）について説明する。説明は以下の順序により行う。
１．第１の実施の形態（先頭ビットにグループ識別子を設定する例）
２．第２の実施の形態（先頭ビットに固定値を設定する例）
【００４１】
＜１．第１の実施の形態＞
［電子装置の構成例］
図１は、第１の実施の形態における電子装置１００の一構成例を示すブロック図である。この電子装置１００は、プロセッサ１１０および１４０と、ディスプレイドライバ１２０と、ジャイロセンサ１３０と、ＳＤＡ(Serial DAta)線１０８と、ＳＣＬ(Serial CLock)線１０９とを備える。プロセッサ１１０、プロセッサ１４０、ディスプレイドライバ１２０およびジャイロセンサ１３０は、ＳＤＡ線１０８およびＳＣＬ線１０９に接続され、それらの信号線を介して、Ｉ３Ｃの通信規格に従って信号を送受信する。なお、電子装置１００にはプロセッサ１１０、プロセッサ１４０、ディスプレイドライバ１２０およびジャイロセンサ１３０の４つのデバイスが設けられているが、デバイスの個数は４つに限定されない。
【００４２】
Ｉ３Ｃの通信規格は、データを伝送するＳＤＡ線１０８と、クロック信号を伝送するＳＣＬ線１０９との２本の信号線を介して通信を行う規格である。この規格において、デバイス（プロセッサ１１０など）は、マスタまたはスレーブとして動作するデバイスと、スレーブとしてのみ動作するデバイスとに分類される。例えば、プロセッサ１１０および１４０は、マスタまたはスレーブとして動作し、ディスプレイドライバ１２０およびジャイロセンサ１３０はスレーブとしてのみ動作する。ここで、マスタは、スレーブを制御するデバイスであり、スレーブは、マスタの制御に従って動作するデバイスである。
【００４３】
また、Ｉ３Ｃでは１つのマスタに対して複数のスレーブを接続することができる。また、１つのスレーブに対して複数のマスタが信号を送信することができ、この通信を以下、「マルチマスタ通信」と称する。さらに、マスタを介さずにスレーブ同士で通信を行うことができ、この通信は、「ピアツーピア通信」と呼ばれる。また、スレーブは、他のデバイスの通信によりＳＤＡ線１０８が通信中（ビジー）である間に、その通信に割り込んで通信を行うことができ、この割込みは、「帯域内割込み（In-Band Interrupt）」と呼ばれる。
【００４４】
上述のマルチマスタ通信、帯域内割込み、および、ピアツーピア通信においては、複数のデバイスが同時に送信した信号がＳＤＡ線１０８において衝突するおそれがある。例えば、マスタが、あるスレーブへ信号を送信している間に、別のスレーブが帯域内割込みを行ってマスタへ信号を送信すると、マスタからの信号とスレーブからの信号とが衝突してしまう。このため、Ｉ３Ｃにおけるデバイスは、衝突を検出してデバイス同士を調停する機能を有する。
【００４５】
なお、プロセッサ１１０などのデバイスの全てを１つの装置内に配置しているが、この構成に限定されない。例えば、プロセッサ１１０などを電子装置１００内に配置し、ジャイロセンサ１３０などのセンサを、電子装置１００の外部に配置してもよい。なお、プロセッサ１１０などのデバイスからなるシステムは、特許請求の範囲に記載の通信システムの一例である。
【００４６】
［プロセッサの構成例］
図２は、第１の実施の形態におけるプロセッサ１１０の一構成例を示すブロック図である。このプロセッサ１１０は、アドレス割当部１１１、バス特性レジスタ１１２、通信部１１３および調停部１１４を備える。プロセッサ１４０の構成は、プロセッサ１１０と同様である。なお、プロセッサ１１０は、特許請求の範囲に記載のマスタデバイスの一例である。
【００４７】
アドレス割当部１１１は、スレーブのそれぞれに動的アドレスを割り当てるものである。この動的アドレスは、スレーブを識別するための情報であり、スレーブごとに固有のアドレスが割り当てられる。アドレス割当部１１１は、電子装置１００に電源が投入されたときなどに、動的アドレスの割り当て（アサイン）を開始する。割り当ての際にアドレス割当部１１１は、まず、それぞれのデバイスのバス特性レジスタ（ＢＣＲ：Bus Characteristic Register）からデータを読み出す。ここで、ＢＣＲは、デバイスの役割など、動的アドレスの割り当ての際に必要な設定情報を保持するレジスタであり、読出しのみが可能である。そして、アドレス割当部１１１は、読み出した設定情報に基づいて、スレーブのそれぞれに動的アドレスを割り当てる。
【００４８】
バス特性レジスタ１１２は、プロセッサ１１０の設定情報を保持するものである。通信部１１３は、Ｉ３Ｃに従ってマスタまたはスレーブとして通信を行うものである。この通信部１１３は、オープンドレイン回路およびプッシュプル回路のいずれかによりデータを出力する。オープンドレイン回路による通信では、回路の特性上、プッシュプル回路を用いる場合と比較して通信速度が低下する。例えば、オープンドレイン回路を用いる場合は、４００キロヘルツ（ｋＨｚ）のクロック信号に同期してデータが伝送される。一方、プッシュプル回路を用いる場合には１２．５メガヘルツ（ＭＨｚ）のクロック信号に同期してデータが伝送される。
【００４９】
調停部１１４は、衝突を検出してデバイス同士の調停を行うものである。この調停部１１４は、ＳＤＡ線１０８のレベルを監視し、デバイス（プロセッサ１４０）が送信したビットの値と、ＳＤＡ線１０８で伝送中のビットの値とが異なる場合に、衝突があると判断する。調停の際には、例えば、「０」を送信したデバイスが優先され、「１」を送信したデバイスが制御権を失う。
【００５０】
［ディスプレイドライバの構成例］
図３は、第１の実施の形態におけるディスプレイドライバ１２０の一構成例を示すブロック図である。このディスプレイドライバ１２０は、バス特性レジスタ１２１、通信部１２２および調停部１２３を備える。ジャイロセンサ１３０の構成は、ディスプレイドライバ１２０と同様である。
【００５１】
バス特性レジスタ１１２は、ディスプレイドライバ１２０の設定情報を保持するものである。通信部１２２は、Ｉ３Ｃに従ってスレーブとして通信を行うものである。調停部１２３は、衝突を検出してデバイス同士の調停を行うものである。
【００５２】
図４は、第１の実施の形態における通信方式を説明するための図である。Ｉ３Ｃでは、通信方式として３つの方式が規定されている。これらを以下、ケース０、ケース１およびケース２と称する。
【００５３】
ケース０において、ヘッダタイプはタイプ０に設定される。また、ケース０では、リザーブドと称する７ビットの固定のパターンデータがマスタにより最初に送信される。このパターンデータには、例えば、１６進数で「７Ｅ」（２進数で「１１１１１１０」）の値が設定される。次に、アクセス先のスレーブに割り当てられた７ビットの動的アドレスがマスタにより送信される。この７ビットの動的アドレスにより、最大で１１２個のスレーブをマスタに接続することができる。
【００５４】
また、上述のタイプ０において送信元のデバイスは、オープンドレイン回路によりリザーブドを送信する。オープンドレイン回路を用いる場合は、前述したように通信速度が遅くなるため、デバイスはビット単位で衝突を検出して調停を行うことができる。
【００５５】
次にケース１では、ヘッダタイプはタイプ１に設定される。また、ケース１ではケース０と同様にリザーブドがマスタにより最初に送信される。次に、先頭ビットＡ［６］が「０」に固定された７ビットの動的アドレスがマスタにより送信される。
【００５６】
ここで、ケース１で動的アドレスの先頭ビットが「０」に固定されるのは、デバイスが先頭ビットで衝突を検出するためである。ケース１で帯域内割込み等を行うスレーブは、先頭ビットが「０」の動的アドレスを最初に送信する。一方、マスタは、上述のように先頭ビットが「１」のリザーブドを最初に送信する。このように先頭ビットの値が異なるため、デバイスは、ＳＤＡ線１０８のレベルを監視して先頭ビットの送信時に衝突の有無を検出し、調停を行うことができる。しかしながら、先頭ビットを「０」に固定したため、実質的に用いることができるアドレスのサイズは７ビットから６ビットに減少し、スレーブ数は最大１１２個から最大５６個に半減する。
【００５７】
前述のタイプ１では、衝突を検出するために先頭ビットが比較的遅いオープンドレイン回路により送信され、衝突が無ければ、２ビット目以降は比較的早いプッシュプル回路により送信される。したがって、ケース１の全体的な通信速度は、ケース０よりも早くなる。
【００５８】
続いてケース２においてヘッダタイプはタイプ１に設定される。また、ケース２では、リザーブドが送信されず、７ビットの動的アドレスがマスタにより最初に送信される。また、ケース２では、デバイスは調停を行うことができない。デバイスが調停を行わないために、動的アドレスの先頭ビットは固定値に設定されず、スレーブ数はケース０と同様に１１２個まで接続することができる。さらに、ケース２では、リザーブドが伝送されないため、ケース０および１のいずれよりも通信速度が速くなる。
【００５９】
まとめると、ケース０を基準として、ケース１ではスレーブ数が少ないが通信速度は速い。また、ケース２では、スレーブ数はケース０と変わらず、通信速度が速いが調停を行うことができない。このように、いずれの方式にも一長一短がある。
【００６０】
そこで、電子装置１００では、ケース１と通信速度が同等で、調停可能としつつ、スレーブ数をケース１より増加したケース３が新たに実装されている。
【００６１】
ケース３ではリザーブドのヘッダタイプはタイプ１に設定される。また、ケース１ではケース０と同様にリザーブドがマスタにより最初に送信される。次に、先頭ビットＡ［６］をグループ識別子とする７ビットの動的アドレスがマスタにより送信される。
【００６２】
ここで、グループ識別子は、調停を要するグループにスレーブが属するか否かを示すビットである。Ｉ３Ｃでは、他のデバイスからの信号と衝突が生じうる信号（帯域内割込みなど）をスレーブが送信可能なようにＢＣＲに設定することができ、また、マスタの制御下でのみ信号を送信可能なように設定することもできる。マスタは、ＢＣＲの設定を参照して、衝突が生じうる信号を送信可能なスレーブを、調停を要するグループに分類し、そうでないスレーブを調停が不要なグループに分類する。調停を要するグループのグループ識別子は「０」に設定され、調停が不要なグループのグループ識別子は「１」に設定される。
【００６３】
調停を要するスレーブの動的アドレスの先頭ビット（グループ識別子）は「０」であり、リザーブドの先頭ビット（＝「１」）と値が異なるため、ケース１と同様にデバイスは先頭ビットで衝突を検出し、調停を行うことができる。
【００６４】
一方、調停を要しないスレーブの動的アドレスの先頭ビット（グループ識別子）は「１」であり、リザーブドの先頭ビットと同じ値であるが、このスレーブは、動的アドレスを送信することが無いため衝突とは無関係である。
【００６５】
上述のようにケース３では、動的アドレスの先頭ビットを固定しなくてよいため、先頭ビットを固定する必要のあるケース１と比較して、接続可能なスレーブ数が増加する。また、ヘッダタイプがタイプ１であるため、通信速度はケース１と同様にケース０よりも早い。
【００６６】
なお、調停を要するグループ内のスレーブ（ディスプレイドライバ１２０など）は、特許請求の範囲に記載の第１のスレーブデバイスの一例である。調停を要しないグループ内のスレーブは、特許請求の範囲に記載の第２のスレーブデバイスの一例である。
【００６７】
電子装置１００内のデバイス（プロセッサ１１０など）のそれぞれは、上述のケース０乃至３のいずれかを状況に応じて適宜選択し、他のデバイスとの間で通信を行う。
【００６８】
図５は、第１の実施の形態におけるヘッダタイプを説明するための図である。同図におけるａは、タイプ０のヘッダ（リザーブド）を送信する際のＳＤＡ線１０８およびＳＣＬ線１０９の状態の一例を示す図である。同図におけるｂは、タイプ１のヘッダを送信する際のＳＤＡ線１０８およびＳＣＬ線１０９の状態の一例を示す図である。Ａ［６］乃至Ａ［０］は、リザーブドを構成する７ビットのそれぞれを示す。リザーブドのうちＡ［６］が最初に送信され、Ａ［０］が最後に送信される。また、Ｒ／Ｗは、データの書込みおよび読出しのいずれかを示すリード・ライトビットである。
【００６９】
通信を開始する際にマスタは、ＳＤＡ線１０８をローレベルにし、ＳＣＬ線１０９をハイレベルにする。この状態はスタートコンディションＳと呼ばれる。スタートコンディションＳ（スタートビット）の次に、マスタは、Ａ［６］乃至Ａ［０］およびＲ／Ｗのそれぞれをクロック信号に同期して順に送信する。
【００７０】
ここで、タイプ０では、全てのビットが通信速度の遅いオープンドレイン回路により送信される。一方、タイプ１では、先頭ビットＡ［６］のみがオープンドレイン回路により送信され、２ビット目以降は通信速度の早いプッシュプル回路により送信される。また、タイプ０では、全ビットの通信速度が遅いが、ビットごとに調停が行われる。一方、タイプ１では、先頭ビットでしか調停が行われないが、先頭ビットで衝突が無ければ２ビット目以降の通信速度がタイプ０より速くなる。なお、タイプ１の先頭ビットで衝突が生じると、デバイスは２ビット目以降をオープンドレイン回路により送信し、ビットごとに調停を行う。
【００７１】
［フレームのデータ構造］
図６は、第１の実施の形態におけるケース０乃至２でマスタが送信するフレームのデータ構造の一例を示す図である。ここで、フレームは、動的アドレスと、その動的アドレスのスレーブにより送受信されるデータとを含む信号を意味する。同図におけるａは、ケース０においてマスタが書込みを行う際に送信するフレームの一構成例を示す。同図におけるｂは、ケース０においてマスタが読出しを行う際に送信するフレームの一構成例を示す。同図におけるｃは、ケース１においてマスタが書込みを行う際に送信するフレームの一構成例を示す。同図におけるｄは、ケース１においてマスタが読出しを行う際に送信するフレームの一構成例を示す。同図におけるｅは、ケース２においてマスタが書込みを行う際に送信するフレームの一構成例を示す。同図におけるｆは、ケース２においてマスタが読出しを行う際に送信するフレームの一構成例を示す。また、同図において白色の矩形はマスタからスレーブへ送信される信号を示し、斜線の矩形は、スレーブからマスタへ送信される信号を示す。
【００７２】
ケース０においてマスタからスタートコンディションＳが最初に送信され、続いて１６進数で「７Ｅ」のリザーブドおよびリード・ライトビットＲ／Ｗがマスタから送信される。そして、スレーブが受信に成功した場合にはスレーブからＡＣＫ（acknowledge）が送信される。ＡＣＫの次にマスタによりリスタートコンディションＳｒが送信され、動的アドレスおよびリード・ライトビットＲ／Ｗが順に送信される。そして、スレーブが受信に成功した場合にはスレーブからＡＣＫが送信される。そのＡＣＫの次にマスタとスレーブとの間でリードデータまたはライトデータが送受信される。データはバイト単位で伝送され、バイトごとにトランジションビットＴと呼ばれるパリティが付加される。データの送受信が終了するとマスタによりストップコンディションＰまたはリスタートコンディションＳｒが送信される。
【００７３】
次にケース１においてはケース０と同様にスタートコンディションＳの次にリザーブドがマスタから送信され、スレーブからＡＣＫが送信される。ＡＣＫの次にマスタによりリスタートコンディションＳｒが送信され、先頭ビットＡ［６］に「０」を設定した動的アドレスとリード・ライトビットＲ／Ｗとが順に送信される。そして、スレーブからＡＣＫが送信され、マスタとスレーブとの間でリードデータまたはライトデータが送受信される。データの送受信が終了するとマスタによりストップコンディションＰまたはリスタートコンディションＳｒが送信される。
【００７４】
次にケース２においてはスタートコンディションＳの次にマスタから動的アドレスが送信され、スレーブからＡＣＫが送信される。ＡＣＫの次にマスタとスレーブとの間でリードデータまたはライトデータが送受信される。データの送受信が終了するとマスタによりストップコンディションＰまたはリスタートコンディションＳｒが送信される。
【００７５】
図７は、第１の実施の形態におけるケース３でマスタが送信するフレームのデータ構造の一例を示す図である。同時におけるａは、ケース３においてマスタが書込みを行う際に送信するフレームの一構成例を示す。同図におけるｂは、ケース３においてマスタが読出しを行う際に送信するフレームの一構成例を示す。
【００７６】
ケース３においてはケース０と同様にスタートコンディションＳの次にリザーブドがマスタから送信され、スレーブからＡＣＫが送信される。ＡＣＫの次にマスタによりリスタートコンディションＳｒが送信され、先頭ビットＡ［６］をグループ識別子とする動的アドレスとリード・ライトビットＲ／Ｗとが順に送信される。グループ識別子には、調停を要する調停対象グループ内のスレーブである場合に「０」が設定され、そうでない調停不要グループ内のスレーブである場合に「１」が設定される。
【００７７】
そして、スレーブからＡＣＫが送信され、マスタとスレーブとの間でリードデータまたはライトデータが送受信される。データの送受信が終了するとマスタによりストップコンディションＰまたはリスタートコンディションＳｒが送信される。
【００７８】
動的アドレスの先頭ビットに固定値を設定したケース１と異なり、ケース３では動的アドレスの先頭ビットを固定値にしなくてよいため、ケース１よりも多くのスレーブをマスタに接続することができる。また、調停対象グループの動的アドレスの先頭ビットＡ［６］には、固定のパターンデータ（リザーブド）の先頭ビットと異なる値が設定されるため、デバイスは先頭ビットにおいて衝突を検出して調停を行うことができる。
【００７９】
図８は、第１の実施の形態におけるスレーブが送信するフレームのデータ構造の一例を示す図である。同図におけるａは、ケース０においてスレーブが帯域内割込み等により書込みを行う際に送信するフレームの一構成例を示し、同図におけるｂは、ケース０においてスレーブが帯域内割込み等により読出しを行う際に送信するフレームの一構成例を示す。同図におけるｃは、ケース１においてスレーブが帯域内割込み等により書込みを行う際に送信するフレームの一構成例を示し、同図におけるｄは、ケース１においてスレーブが帯域内割込み等により読出しを行う際に送信するフレームの一構成例を示す。同図におけるｅは、ケース３においてスレーブが帯域内割込み等により書込みを行う際に送信するフレームの一構成例を示し、同図におけるｆは、ケース３においてスレーブが帯域内割込み等により読出しを行う際に送信するフレームの一構成例を示す。なお、ケース２では、スレーブがマスタへ動的アドレスを送信することはない。これは、ケース２ではデバイスが調停を行うことができないためである。
【００８０】
ケース０で帯域内割込み等が発生する際にスタートコンディションＳおよび動的アドレスがスレーブにより送信され、マスタによりＡＣＫが送信される。ＡＣＫの次にリスタートコンディションＳｒがマスタにより送信され、マスタとスレーブとの間でリードデータまたはライトデータが送受信される。なお、ＡＣＫの送信直後にマスタがストップコンディションＰを送信してもよい。
【００８１】
ケース１で帯域内割込み等が発生する際にスタートコンディションＳと、先頭ビットＡ［６］を「０」に固定した動的アドレスとがスレーブにより送信され、マスタによりＡＣＫが送信される。ＡＣＫの次にリスタートコンディションＳｒがマスタにより送信され、マスタとスレーブとの間でリードデータまたはライトデータが送受信される。
【００８２】
ケース３で帯域内割込み等が発生する際にスタートコンディションＳの次にスレーブから、先頭ビットＡ［６］をグループ識別子とする動的アドレスが送信され、マスタによりＡＣＫが送信される。帯域内割込み等を行うスレーブにはグループ識別子に「０」が設定されるため、ケース１と同様に衝突の有無がデバイスにより検出される。また、ＡＣＫの次にリスタートコンディションＳｒがマスタにより送信され、マスタとスレーブとの間でリードデータまたはライトデータが送受信される。
【００８３】
図９は、第１の実施の形態におけるバス特性レジスタ１１２の設定情報の一例を示す図である。このバス特性レジスタ１１２には、ＢＣＲ［７］乃至ＢＣＲ［０］が保持される。ここで、ＢＣＲ［ｉ］（ｉは０乃至７の整数）は、ｉ番目のビットを示す。これらのビットは、スレーブが調停を要するグループに属するか否かを示す設定情報を含む。同図において点線で囲った部分は、Ｉ３Ｃにおける規格書をケース３の追加に合わせて修正した箇所である。
【００８４】
ＢＣＲ［７］およびＢＣＲ［６］には、マスタやスレーブなど、システムにおいてデバイスに割り当てられる役割（デバイスロール）が設定される。デバイスがセカンダリマスタである場合には２進数で「０１」が設定され、デバイスがピアツーピア通信を行うスレーブである場合には２進数で「１０」が設定される。また、ＢＣＲ［１］およびＢＣＲ［６］には、デバイスが帯域内割込みを行うか否かや、クロック周波数に関する設定内容を示すインデックス０乃至３のいずれかが設定される。
【００８５】
図１０は、第１の実施の形態におけるインデックス０乃至３の詳細の一例を示す図である。同図において点線で囲った部分と太枠の部分は、Ｉ３Ｃにおける規格書をケース３の追加に合わせて修正した箇所である。インデックス０は、帯域内割込み要求を行い、クロック周波数を最大に設定することができることを意味する。インデックス１は、帯域内割込み要求を行い、クロック周波数を最大に設定することができないことを意味する。インデックス２は、帯域内割込み要求を行わず、クロック周波数を最大に設定することができないことを意味する。インデックス３は、帯域内割込み要求を行わず、クロック周波数を最大に設定することができることを意味する。
【００８６】
図９および図１０の設定情報に基づいて、マスタは、デバイスロールが「０１」または「１０」である場合、あるいは、インデックス０またはインデックス１である場合にマスタは調停を要するスレーブであると判断してグループ識別子に「０」を設定する。
【００８７】
［デバイスの動作例］
図１１は、第１の実施の形態におけるマスタ／スレーブのデバイス（プロセッサ１１０など）の動作の一例を示すフローチャートである。この動作は、例えば、電子装置１００に電源が投入されたときに開始する。デバイスはバス特性レジスタなどをスレーブのそれぞれから読み出し（ステップＳ９１１）、動的アドレスを割り当てるためのアドレス割当処理を実行する（ステップＳ９２０）。
【００８８】
そして、デバイスは、他のデバイスにより生成されたスタートコンディションを検出したか否かを判断する（ステップ９１２）。スタートコンディションを検出していない場合に（ステップＳ９１２：Ｎｏ）デバイスは、通信のための所定のイベントが発生したか否かを判断する（ステップＳ９１３）。イベントが発生した場合に（ステップＳ９１３：Ｙｅｓ）、デバイスは、マスタ側通信処理を実行する（ステップＳ９３０）。イベントが発生しない場合（ステップＳ９１３：Ｎｏ）またはステップＳ９３０の後にデバイスは、ステップＳ９１２以降の処理を繰り返す。
【００８９】
また、スタートコンディションを検出した場合に（ステップＳ９１２：Ｙｅｓ）マスタは、クロック信号の生成を開始し（ステップＳ９１４）、動的アドレスを受信して、衝突の際に調停を行う（ステップＳ９１５）。そして、マスタは、受信したアドレスが、自身に割り当てられたものであるか否かを判断する（ステップＳ９１６）。自身のアドレスを受信した場合に（ステップＳ９１６：Ｙｅｓ）デバイスは、ＡＣＫの送信、データ送受信や受信したデータの処理を行う（ステップＳ９１７）。自身のアドレスを受信していない場合に（ステップＳ９１６：Ｎｏ）、または、ステップＳ９１７の後にデバイスは、ステップＳ９１２以降の処理を繰り返す。
【００９０】
図１２は、第１の実施の形態におけるケース３アドレス割当処理の一例を示すフローチャートである。デバイスは、現在の通信方式がケース３であるか否かを判断する（ステップＳ９２１）。ケース３でない場合に（ステップＳ９２１：Ｎｏ）、デバイスはマスタとして、ケース０乃至２のいずれかに対応する動的アドレスの割当処理を実行し（ステップＳ９２２）、アドレス割当処理を終了する。
【００９１】
ケース３である場合に（ステップＳ９２１：Ｙｅｓ）デバイスはマスタとして、割り当て対象のスレーブを選択し、そのスレーブが調停を要するグループ内のスレーブであるか否かをＢＣＲに基づいて判断する（ステップＳ９２３）。調停を要するグループ内のスレーブである場合に（ステップＳ９２３：Ｙｅｓ）、デバイスは、先頭ビットＡ［６］に「０」を設定した動的アドレスを割り当てる（ステップＳ９２４）。一方、調停を要するグループ内のスレーブでない場合に（ステップＳ９２３：Ｎｏ）、デバイスは、先頭ビットＡ［６］に「１」を設定した動的アドレスを割り当てる（ステップＳ９２６）。ステップＳ９２５またはＳ９２６の後にデバイスは、全てのスレーブへのアドレスの割り当てが終了したか否かを判断する（ステップＳ９２７）。割り当てが終了していない場合に（ステップＳ９２７：Ｎｏ）、デバイスはステップＳ９２３以降の処理を繰り返し、割り当てが終了した場合に（ステップＳ９２７：Ｙｅｓ）、アドレス割当処理を終了する。
【００９２】
図１３は、第１の実施の形態におけるマスタ側通信処理の一例を示すフローチャートである。デバイスは、現在の通信方式がケース３であるか否かを判断する（ステップＳ９３１）。ケース３である場合に（ステップＳ９３１：Ｙｅｓ）、デバイスはケース３に対応する通信処理を実行する（ステップＳ９４０）。一方、ケース３でない場合に（ステップＳ９３１：Ｎｏ）、デバイスはケース０乃至２のいずれかに対応する通信処理を実行する（ステップＳ９３２）。ステップＳ９４０またはＳ９３２の後にデバイスは、マスタ側通信処理を終了する。
【００９３】
図１４は、第１の実施の形態におけるケース３に対応するマスタ側の通信処理の一例を示すフローチャートである。デバイスはマスタとして、クロック信号の生成を開始し（ステップＳ９４１）、スタートコンディションを生成する（ステップＳ９４２）。そして、デバイスは、パターンデータ（リザーブド）の先頭ビットＡ［６］（＝１）を送信し（ステップＳ９４３）、そのビットで衝突が生じたか否かを判断する（ステップＳ９４４）。パターンデータの先頭ビットは「１」であるため、スレーブにより「０」の先頭ビットの動的アドレスが送信されると、マスタは衝突が生じたと判断することができる。この先頭ビットの送信には、通信速度の遅いオープンドレイン回路が用いられる。
【００９４】
衝突が生じると（ステップＳ９４４：Ｙｅｓ）、マスタは制御権を失ってＳＤＡ線１０８への送信を停止し、２ビット目以降のアドレスを他のスレーブから受信し、ビット単位で調停を行う（ステップＳ９４５）。ここで、アドレスの伝送には通信速度の遅いオープンドレイン回路が用いられる。
【００９５】
デバイスは、受信した信号に基づいて、マルチマスタ通信、ピアツーピア通信、および、帯域内割込みのいずれが発生したかを解析する（ステップＳ９４６）。また、デバイスは、マスタとして帯域内割込みを受け入れ可能であるか否かを判断する（ステップＳ９４７）。受け入れ可能である場合には（ステップＳ９４７：Ｙｅｓ）、マスタは、ＡＣＫを送信し、データの送受信や受信したデータの処理を行う（ステップＳ９４８）。これらのデータは、プッシュプル回路により送信される。一方、受け入れ不可能である場合に（ステップＳ９４７：Ｎｏ）、マスタは、ＮＡＣＫを送信する（ステップＳ９４８）。
【００９６】
また、衝突が生じていない場合に（ステップＳ９４４：Ｎｏ）デバイスは、パターンデータ（リザーブド）の２ビット目以降と、アクセス先の動的アドレスとを送信する（ステップＳ９５１）。これらのデータの送信には、通信速度の比較的早いプッシュプル回路が用いられる。そして、デバイスは、データの送受信や受信したデータの処理を実行する（ステップＳ９５２）。ステップＳ９４８、Ｓ９４９またはＳ９５２の後に、デバイスは、ストップコンディションを生成して（ステップＳ９５１）、ケース３マスタ側通信処理を終了する。
【００９７】
図１５は、第１の実施の形態におけるスレーブ（ディスプレイドライバ１２０など）の動作の一例を示すフローチャートである。この動作は、例えば、電子装置１００に電源が投入されたときに開始する。スレーブは、マスタにより割り当てられた動的アドレスを保持し（ステップＳ９６１）、現在の通信方式がケース３であるか否かを判断する（ステップＳ９６２）。ケース３である場合に（ステップＳ９６２：Ｙｅｓ）、スレーブは、ケース３スレーブ側通信処理を実行し（ステップＳ９７０）、ステップＳ９６２以降を繰り返す。一方、ケース３でない場合に（ステップＳ９６２：Ｎｏ）、スレーブは、ケース０乃至２のいずれかに対応する通信処理を実行し（ステップＳ９６３）、ステップＳ９６２以降を繰り返す。
【００９８】
図１６は、第１の実施の形態におけるケース３に対応するスレーブ側の通信処理の一例を示すフローチャートである。デバイスは、帯域内割込みやピアツーピア通信のための所定のイベントが発生したか否かを判断する（ステップＳ９７１）。
【００９９】
帯域内割込み等のためのイベントが発生した場合に（ステップＳ９７１：Ｙｅｓ）、スレーブは、スタートコンディションを生成する（ステップＳ９７２）。そして、スレーブは、自身の動的アドレスを送信し、衝突の際に調停を行う（ステップＳ９７３）。スレーブは、ＡＣＫを受信したか否かを判断する（ステップＳ９７４）。ＡＣＫを受信した場合に（ステップＳ９７４：Ｙｅｓ）、スレーブは、データの送受信や受信したデータの処理を行い（ステップＳ９７５）、ストップコンディションを生成する（ステップＳ９７６）。ＡＣＫを受信していない場合（ステップＳ９７４：Ｎｏ）、または、ステップＳ９７６の後にスレーブは、ケース３スレーブ側通信処理を終了する。
【０１００】
また、帯域内割込み等のためのイベントが発生していない場合に（ステップＳ９７１：Ｎｏ）スレーブは、他のデバイスにより生成されたスタートコンディションを検出したか否かを判断する（ステップＳ９７７）。スタートコンディションを検出した場合に（ステップＳ９７７：Ｙｅｓ）、スレーブは、固定パターンおよび動的アドレスを受信して、衝突の際に調停を行う（ステップＳ９７８）。そして、デバイスは、受信したアドレスが自身のものであるか否かを判断する（ステップＳ９７９）。自身のアドレスを受信した場合に（ステップＳ９７９：Ｙｅｓ）デバイスは、データ送受信や受信したデータの処理を行う（ステップＳ９８０）。スタートコンディションを検出しない場合（ステップＳ９７７：Ｎｏ）、自身のアドレスを受信していない場合（ステップＳ９７９：Ｎｏ）、または、ステップＳ９８０の後にスレーブは、通信処理を終了する。
【０１０１】
このように、本技術の第１の実施の形態によれば、パターンデータの先頭ビットとは異なる値を先頭ビットに設定したアドレスを、割込み等を行うスレーブに割り当てたため、パターンデータとアドレスとの各先頭ビットで衝突の有無を検出することができる。これにより、衝突を検知したデバイスは、衝突した信号を送信したデバイス同士を調停することができる。また、アドレスの先頭ビットが固定値でないため、先頭ビットを固定値とするケース１よりも多くのスレーブを接続することができる。
【０１０２】
［第１の変形例］
上述の第１の実施の形態では、マスタは、ケース３の追加に合わせてＢＣＲのインデックス０乃至３の詳細を修正していたが、代わりにＢＣＲの他の個所を修正することもできる。例えば、ＢＣＲにおいて予約済のデバイスロールを用いることができる。この第１の実施の形態の第１の変形例における電子装置１００は、ＢＣＲにおいて予約済のデバイスロールを修正した点において第１の実施の形態と異なる。
【０１０３】
図１７は、第１の実施の形態の第１の変形例におけるバス特性レジスタ１１２の設定情報の一例を示す図である。同図において点線で囲った部分は、Ｉ３Ｃにおける規格書をケース３の追加に合わせて修正した箇所である。
【０１０４】
ＢＣＲ［６］およびＢＣＲ［７］において「１１」には予約済が設定されていたが、第１の変形例では、帯域内割込み、セカンダリマスタ要求、および、ピアツーピアスレーブ要求のいずれも要求しないスレーブに修正される。
【０１０５】
第１の変形例のマスタは、ケース３においてＢＣＲ［７］およびＢＣＲ［６］に「１１」が設定されたスレーブを「調停を要しないスレーブ」と判断し、それ以外のスレーブを「調停を要するスレーブ」と判断する。
【０１０６】
このように本技術の第１の変形例における第１の変形例によれば、予約済のデバイスロールのみを調停を要しないスレーブに修正するため、インデックス０乃至３を修正する場合と比較して修正個所を少なくすることができる。
【０１０７】
［第２の変形例］
上述の第１の実施の形態では、マスタは、ケース３の追加に合わせてＢＣＲのインデックス０乃至３の詳細を修正していたが、代わりにＢＣＲの他の個所を修正することもできる。例えば、ＢＣＲにおいて予約済のデバイスロールを用いることができる。この第１の実施の形態の第２の変形例における電子装置１００は、ＢＣＲにおいて予約済のデバイスロールを修正した点において第１の実施の形態と異なる。
【０１０８】
図１８は、第１の実施の形態の第２の変形例におけるバス特性レジスタ１１２の設定情報の一例を示す図である。同図において点線で囲った部分は、Ｉ３Ｃにおける規格書をケース３の追加に合わせて修正した箇所である。
【０１０９】
ＢＣＲ［６］およびＢＣＲ［７］において「１１」には予約済が設定されていたが、第２の変形例では、帯域内割込みを要求するスレーブに修正される。
【０１１０】
第２の変形例のマスタは、ケース３においてＢＣＲ［７］およびＢＣＲ［６］に「０１」（セカンダリマスタ）、「１０」（ピアツーピアスレーブ）、または、「１１」（帯域内割込みをするスレーブ）が設定されたスレーブを「調停を要するスレーブ」と判断する。一方、ＣＲ［６］およびＢＣＲ［７］に「００」が設定されたスレーブを「調停を要しないスレーブ」と判断する。このように、変形例１では予約済のデバイスロール（「１１」）に調停を要しないスレーブが割り当てられたのに対し、変形例２では、「１１」に調停を要するスレーブが割り当てられる。また、変形例１では、「００」に調停を要するスレーブが割り当てられたのに対し、変形例２では、「００」に調停を要しないスレーブが割り当てられる。
【０１１１】
このように本技術の第１の変形例における第２の変形例によれば、予約済のデバイスロールのみを調停を要するスレーブに修正するため、インデックス０乃至３を修正する場合と比較して修正個所を少なくすることができる。
【０１１２】
［第３の変形例］
上述の第１の実施の形態では、マスタは、ケース３の追加に合わせてＢＣＲのインデックス０乃至３の詳細を修正していたが、代わりにＢＣＲの他の個所を修正することもできる。例えば、ＢＣＲにおいてデバイスロールに割り当てるビットを２ビットから３ビットに増加して、空いた個所を利用することができる。この第１の実施の形態の第３の変形例における電子装置１００は、ＢＣＲにおいてデバイスロールに割り当てるビットを増加した点において第１の実施の形態と異なる。
【０１１３】
図１９は、第１の実施の形態の第３の変形例におけるバス特性レジスタ１１２の設定情報の一例を示す図である。同図において太線および点線で囲った部分は、Ｉ３Ｃにおける規格書をケース３の追加に合わせて修正した箇所である。
【０１１４】
デバイスロールに割り当てるビットは、ＢＣＲ［６］およびＢＣＲ［７］から、ＢＣＲ［５］乃至ＢＣＲ［７］に修正される。この修正に合わせて、修正前のＢＣＲ［５］乃至［２］に設定されていた情報をＢＣＲ［４］乃至［１］に移動するように修正が行われる。また、ＢＣＲ［０］は、最大ＳＣＬクロック周波数を設定可能であるか否かが設定される。
【０１１５】
ＢＣＲ［５］乃至ＢＣＲ［７］において２進数で「０００」は、デバイスがＩ２Ｃスレーブであることを示し、「１００」はＩ２Ｃセカンダリマスタであることを示す。また、「０１０」は、デバイスがピアツーピアＩ３Ｃスレーブであることを示し、「００１」は帯域内割込みスレーブであることを示す。これら以外には予約済が設定される。
【０１１６】
第３の変形例のマスタは、ケース３においてＢＣＲ［５］乃至ＢＣＲ［７］に「１００」、「１００」または「０１０」が設定されたスレーブを「調停を要するスレーブ」と判断する。一方、「０００」が設定されたスレーブを「調停を要しないスレーブ」と判断する。
【０１１７】
このように本技術の第１の変形例における第３の変形例によれば、デバイスロールに割り当てるビット数を増加したため、予約済の領域を増加して、将来のデバイスロールの拡張に対応することができる。
【０１１８】
＜２．第２の実施の形態＞
上述の第１の実施の形態では、割込み等を行うスレーブに固定パターンと先頭ビットの異なるアドレスを割り当てることにより、ケース０よりも通信速度を速くして、デバイス数を増加していた。しかし、デバイス数の増加よりも、ケース０よりも通信速度を速くし、かつ、調停を可能とすることが要求されるシステムも想定される。第２の実施の形態の電子装置１００は、ケース０よりも通信速度を速くし、かつ、調停を可能とした点において第１の実施の形態と異なる。
【０１１９】
図２０は、第２の実施の形態における通信方式を説明するための図である。この第２の実施の形態では、ケース０乃至３に加えて、ケース４が追加される。
【０１２０】
ケース４ではヘッダタイプはタイプ１に設定される。また、ケース４では、ケース２と同様にリザーブドの固定パターンが送信されず、スタートコンディションの次に、７ビットの動的アドレスがマスタにより送信される。ただし、動的アドレスの先頭ビットにはアービトレーションビットが設定される。このアービトレーションビットには、マスタ側において「１」の固定値が設定され、スレーブ側において「０」の固定値が設定される。
【０１２１】
ケース４では先頭ビットに固定値が設定されるため、実質的に用いることができるアドレスのサイズは７ビットから６ビットに減少し、スレーブ数は最大１１２個から最大５６個に半減する。一方、マスタ側とスレーブ側とで異なる固定値を先頭ビットに設定するため、デバイスは先頭ビットにおいて衝突を検出し、調停を行うことができる。また、ケース４ではリザーブドを送信する必要がないため、リザーブドの送信が必要なケース０、ケース１またはケース３と比較して通信速度が速くなる。
【０１２２】
このように、ケース４では、ケース０と比較して最大スレーブ数が半減した代わりに調停を可能としつつ、通信速度を速くすることができる。
【０１２３】
図２１は、第２の実施の形態におけるケース４でマスタが送信するフレームのデータ構造の一例を示す図である。ケース４においてはスタートコンディションＳの次にマスタから動的アドレスが送信され、スレーブからＡＣＫが送信される。この動的アドレスの先頭ビット（アービトレーションビット）には、「１」が設定される。一方、スレーブが送信する動的アドレスの先頭ビットには「０」が設定される。
【０１２４】
また、第２の実施の形態のマスタは、ケース４においてケース１と同様の手順で動的アドレスを割り当てる。すなわち、スレーブの動的アドレスの先頭ビットは、「０」に固定される。
【０１２５】
ただし、帯域内割込み等を行わない調停不要スレーブが接続されていると、２つのマスタ／スレーブの一方が、そのスレーブにアクセスする際に、他方のマスタ／スレーブが、自身に対するアクセスと誤って判断する場合がある。例えば、調停不要スレーブのアドレスとマスタ／スレーブのアドレスとにおいて先頭ビットのみが異なり、下位６ビットは同じ場合を想定する。この構成で、マスタ／スレーブは、制御権を失った際に、先頭ビット（アービトレーションビット）を「１」から「０」にするため、調停不要スレーブへ送信されたアドレスを自身のアドレスと誤って判断してしまう。
【０１２６】
このような誤動作を防止するために、第２の実施の形態のマスタは、調停不要スレーブについて、帯域内割込み等を行う調停対象スレーブの動的アドレスと下位６ビットが異なるアドレスを割り当てることが望ましい。
【０１２７】
図２２は、第２の実施の形態におけるマスタ側通信処理の一例を示すフローチャートである。この第２の実施の形態の通信処理は、ステップＳ９３３およびＳ９５５をさらに実行する点において第１の実施の形態と異なる。
【０１２８】
現在の通信方式がケース３でない場合に（ステップＳ９３１：Ｎｏ）、デバイスはケース４であるか否かを判断する（ステップＳ９３３）。ケース４である場合に（ステップＳ９３３：Ｙｅｓ）、デバイスは、ケース４に対応するマスタ側の通信処理を実行し（ステップＳ９５５）、マスタ側通信処理を終了する。一方、ケース４でない場合に（ステップＳ９３３：Ｎｏ）、デバイスは、ステップＳ９３２を実行する。
【０１２９】
図２３は、第２の実施の形態におけるケース４に対応するマスタ側の通信処理の一例を示すフローチャートである。このケース４の通信処理は、ステップＳ９４９の代わりにステップＳ９５６を実行する点以外は、ケース３の通信処理と同様である。
【０１３０】
先頭ビットＡ［６］で衝突が生じていない場合に（ステップＳ９４４：Ｎｏ）デバイスは、アドレスの２ビット目以降をプッシュプル回路で送信し（ステップＳ９５６）、ステップＳ９５０以降を実行する。
【０１３１】
図２４は、第２の実施の形態におけるスレーブ側通信処理の一例を示すフローチャートである。この第２の実施の形態のスレーブ側通信処理は、ステップＳ９６４およびＳ９８５をさらに実行する点において第１の実施の形態と異なる。
【０１３２】
現在の通信方式がケース３でない場合に（ステップＳ９３１：Ｎｏ）、デバイスはケース４であるか否かを判断する（ステップＳ９６４）。ケース４である場合に（ステップＳ９６４：Ｙｅｓ）、デバイスは、ケース４に対応するスレーブ側の通信処理を実行し（ステップＳ９８５）、ステップＳ９６２以降を繰り返す。一方、ケース４でない場合に（ステップＳ９６４：Ｎｏ）、デバイスは、ステップＳ９６３を実行する。
【０１３３】
図２５は、第２の実施の形態におけるケース４に対応するスレーブ側の通信処理の一例を示すフローチャートである。このケース４の通信処理は、ステップＳ９７３およびＳ９７８の代わりにステップＳ９８６およびＳ９８７を実行する点以外は、ケース３の通信処理と同様である。割込み等のためのイベントが発生した場合に（ステップＳ９７１：Ｙｅｓ）、スレーブは、スタートコンディションを生成する（ステップＳ９７２）。そして、スレーブは、先頭ビット（アービトレーションビット）Ａ［６］を「０」に設定したアドレスを送信し、衝突の際に調停を行って（ステップＳ９８６）、ステップＳ９７４以降を実行する。
【０１３４】
また、スタートコンディションを検出した場合に（ステップＳ９７７）、スレーブは、動的アドレスを送信し、衝突の際に調停を行って（ステップＳ９８７）、ステップＳ９７９以降を実行する。
【０１３５】
このように、本技術の第２の実施の形態によれば、マスタおよびスレーブは、スタートコンディションの次に互いに異なる固定値を先頭ビットに設定した動的アドレスを送信するため、先頭ビットで衝突を検出して調停を行うことができる。また、パターンデータを送信するケース０等と比較して通信速度を速くすることができる。
【０１３６】
なお、上述の実施の形態は本技術を具現化するための一例を示したものであり、実施の形態における事項と、特許請求の範囲における発明特定事項とはそれぞれ対応関係を有する。同様に、特許請求の範囲における発明特定事項と、これと同一名称を付した本技術の実施の形態における事項とはそれぞれ対応関係を有する。ただし、本技術は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において実施の形態に種々の変形を施すことにより具現化することができる。
【０１３７】
また、上述の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disc）、メモリカード、ブルーレイディスク（Blu-ray（登録商標）Disc）等を用いることができる。
【０１３８】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【０１３９】
なお、本技術は以下のような構成もとることができる。
（１）調停が必要なグループに属し、通信の開始を指示するスタートビットと所定のパターンデータの先頭ビットと異なる値が先頭ビットに設定された第１のアドレスとを順に送信してデータを送受信する第１のスレーブデバイスと、
前記スタートビットと前記所定のパターンデータとを順に送信するマスタデバイスと
を具備し、
前記マスタデバイスは、当該マスタデバイスと前記第１のスレーブデバイスとを前記先頭ビットに基づいて調停する
通信システム。
（２）前記スタートビットと前記所定のパターンデータとを順に受信してから特定の値が先頭ビットに設定された第２アドレスを受信し、データを送受信する第２のスレーブデバイスをさらに具備する
前記（１）記載の通信システム。
（３）前記第２のスレーブデバイスは、前記スタートビットと前記所定のパターンデータとを順に受信してから確認応答を送信し、再度の通信開始を示すリスタートコンディションを受信し、前記第２アドレスを受信する
前記（２）記載の通信システム。
（４）前記マスタデバイスと前記第１および第２のスレーブデバイスとは、Ｉ３Ｃの通信規格に従って前記データを送受信する
前記（２）記載の通信システム。
（５）前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるＩ３Ｃセカンダリマスタ要求が可能なデバイスである
前記（４）記載の通信システム。
（６）前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるピアツーピアＩ３Ｃスレーブ要求が可能なデバイスである
前記（４）記載の通信システム。
（７）前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格における帯域内割込み可能なデバイスである
前記（４）記載の通信システム。
（８）前記第１のスレーブデバイスは、調停が必要なグループに属する旨を示す設定情報を保持し、
前記第２のスレーブデバイスは、調停が不要なグループに属する旨を示す前記設定情報を保持し、
前記マスタデバイスは、前記設定情報に基づいて前記第１のスレーブデバイスに前記第１アドレスを割り当てるとともに前記第２のスレーブデバイスに前記第２アドレスを割り当てる
前記（４）から（７）のいずれかに記載の通信システム。
（９）前記第１および第２のスレーブデバイスは、前記設定情報をバス特性レジスタに保持する
前記（８）記載の通信システム。
（１０）調停が必要なグループに属するか否かが先頭ビットに設定されたアドレスが割り当てられたデバイス。
（１１）通信の開始を指示するスタートビットと所定のパターンデータと調停が必要なグループに属するか否かが先頭ビットに設定されたアドレスとを順に送信する通信部と、
スレーブデバイスと他のデバイスとを前記先頭ビットに基づいて調停する調停部と
を具備するマスタデバイス。
（１２）前記通信部は、前記スタートビットと前記所定のパターンデータとを順に送信してから確認応答を受信し、再度の通信開始を示すリスタートコンディションを送信し、前記アドレスを送信する
前記（１１）に記載のマスタデバイス。
（１３）前記通信部は、
先頭ビットに基づく調停において前記所定のパターンデータの先頭ビットと異なる値が前記調停部により検出されたときに帯域内割り込み要求またはセカンダリマスタ要求またはピアツーピアスレーブ要求を含む調停が必要なイベントが発生したと判断して前記所定のパターンデータの送信を停止し、
前記調停部は、２ビット目以降のアドレスを前記スレーブデバイスから受信してビット単位で調停を行い、
前記通信部は、前記イベントを前記マスタデバイスが受け入れ可能である場合に確認応答を送信後にデータの送受信またはデータの処理を行い、前記イベントを前記マスタデバイスが受け入れ不可能である場合に確認応答を送信せずに通信処理を終了する
請求項１１記載のマスタデバイス。
（１４）通信の開始を指示するスタートビットと調停が必要なグループに属するか否かが先頭ビットに設定されたアドレスとを順に送信する送信部と、
マスタデバイスとスレーブデバイスとを前記先頭ビットに基づいて調停する調停部と
を具備するスレーブデバイス。
（１５）通信の開始を指示するスタートビットと所定のパターンデータの先頭ビットと異なる値が先頭ビットに設定された第１のアドレスとを順に送信してデータを調停が必要なグループに属する第１のスレーブデバイスが送受信する第１のスレーブ側手順と、
前記スタートビットと前記所定のパターンデータとをマスタデバイスが順に送信するマスタ側手順と
を具備し、
前記マスタ側手順において前記マスタデバイスは、当該マスタデバイスと前記第１のスレーブデバイスとを前記先頭ビットに基づいて調停する
通信システムの制御方法。
（１６）通信の開始を指示するスタートビットと所定のパターンデータの先頭ビットと異なる値が先頭ビットに設定された第１のアドレスとを順に送信してデータを調停が必要なグループに属する第１のスレーブデバイスが送受信する第１のスレーブ側手順と、
前記スタートビットと前記所定のパターンデータとをマスタデバイスが順に送信するマスタ側手順と
を具備し、
前記マスタ側手順において前記マスタデバイスは、当該マスタデバイスと前記第１のスレーブデバイスとを前記先頭ビットに基づいて調停する
をコンピュータに実行させるためのプログラム。
（１７）通信の開始を示すスタートビットと特定の値が先頭ビットに設定された送信元のアドレスを順に送信するスレーブデバイスと、
前記スタートビットと前記特定の値に該当しない値が先頭ビットに設定された送信先のアドレスとを順に送信し、前記スレーブデバイスと他のデバイスとを前記先頭ビットに基づいて調停するマスタデバイスと
を具備する通信システム。
（１８）前記スレーブデバイスは、調停処理が必要な調停対象スレーブデバイスと調停処理が不要な調停不要スレーブデバイスとを含み、
前記マスタデバイスは、前記調停対象デバイスに前記アドレスを割り当てるとともに前記調停不要デバイスに先頭ビットを除くビット列が前記調停対象スレーブデバイスと異なるアドレスを割り当てる
前記（１７）記載の通信システム。
（１９）通信の開始を指示するスタートビットと先頭ビットに固定値が設定された送信元のアドレスを順に送信するデバイス。
（２０）通信の開始を指示するスタートビットと先頭ビットに固定値が設定された送信先のアドレスとを順に送信する送信部と、
スレーブデバイスと他のデバイスとを前記先頭ビットに基づいて調停する調停部とを具備するデバイス。
（２１）通信の開始を示すスタートビットと特定の値が先頭ビットに設定された送信元のアドレスとを順にスレーブデバイスが送信するスレーブ側手順と、
前記スタートビットと前記特定の値に該当しない値が先頭ビットに設定された送信先のアドレスとを順に送信し、前記スレーブデバイスと他のデバイスとを前記先頭ビットに基づいてマスタデバイスが調停するマスタ側手順と
を具備する通信システムの制御方法。
（２２）通信の開始を示すスタートビットと特定の値が先頭ビットに設定された送信元のアドレスとを順にスレーブデバイスが送信するスレーブ側手順と、
前記スタートビットと前記特定の値に該当しない値が先頭ビットに設定された送信先のアドレスとを順に送信し、前記スレーブデバイスと他のデバイスとを前記先頭ビットに基づいてマスタデバイスが調停するマスタ側手順と
をコンピュータに実行させるためのプログラム。
（２３）通信の開始を指示するスタートビットと所定のパターンデータとを順に送信してデータを送受信するマスタデバイスと、
帯域内割り込み要求、セカンダリマスタ要求、または、ピアツーピアスレーブ要求が可能な第１のスレーブデバイスと
を具備し、
前記第１のスレーブデバイスは、前記スタートビットと前記所定のパターンデータの先頭ビットと異なる値が先頭ビットに設定された第１のアドレスとを順に送信してデータを送受信し、
前記マスタデバイスは、当該マスタデバイスと前記第１のスレーブデバイスとを前記先頭ビットに基づいて調停する
通信システム。
（２４）前記帯域内割り込み要求、前記セカンダリマスタ要求および前記ピアツーピアスレーブ要求をいずれも行わない第２のスレーブデバイスをさらに具備し、
前記第２のスレーブデバイスは、前記スタートビットと前記所定のパターンデータとを順に受信してから特定の値が先頭ビットに設定された第２のアドレスを受信してデータを送受信する
前記（２３）記載の通信システム。
（２５）前記第２のスレーブデバイスは、前記スタートビットと前記所定のパターンデータと順に受信してから確認応答を送信し、再度の通信開始を示すリスタートコンディションを受信後、アドレスを受信し、当該受信したアドレスがマスタから割り当てられた前記第２のスレーブデバイスのアドレスと合致した場合には確認応答を送信後に前記マスタデバイスから送られてきた書き込みデータの受信あるいは前記マスタデバイスへの読み込みデータの送信を行い、 
前記第１のスレーブデバイスは、前記帯域内割り込み要求および前記セカンダリマスタ要求および前記ピアツーピアスレーブ要求をいずれも行わない場合には前記スタートビットと前記所定のパターンデータとを順に受信してから確認応答を送信し、前記リスタートコンディションを受信後、アドレスを受信し、当該受信したアドレスが前記マスタデバイスから割り当てられた前記第１のスレーブデバイスのアドレスと合致した場合には確認応答を送信後に前記マスタデバイスから送られてきた書き込みデータの受信あるいは前記マスタデバイスへの読み込みデータの送信を行う
前記（２３）記載の通信システム。
（２６）前記マスタデバイスと前記第１および第２のスレーブデバイスとは、Ｉ３Ｃの通信規格に従って前記データを送受信する
前記（２３）から（２５）のいずれかに記載の通信システム。
（２７）前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるＩ３Ｃセカンダリマスタ要求が可能なデバイスである
前記（２６）記載の通信システム。
（２８）前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格におけるピアツーピアＩ３Ｃスレーブ要求が可能なデバイスである
前記（２６）記載の通信システム。
（２９）前記第１のスレーブデバイスは、Ｉ３Ｃの通信規格における帯域内割込み可能なデバイスである
前記（２６）記載の通信システム。
（３０）前記第１のスレーブデバイスは、調停が必要なグループに属する旨を示す設定情報を保持し、
前記第２のスレーブデバイスは、調停が不要なグループに属する旨を示す前記設定情報を保持し、
前記マスタデバイスは、前記設定情報に基づいて前記第１のスレーブデバイスに前記第１アドレスを割り当てるとともに前記第２のスレーブデバイスに前記第２アドレスを割り当てる
前記（２６）から（２９）のいずれかに記載の通信システム。
（３１）前記第１および第２のスレーブデバイスは、前記設定情報をバス特性レジスタに保持する
前記（３０）記載の通信システム。
（３２）前記調停が必要なグループは、当該スレーブが帯域内割り込み要求を行うことができるスレーブデバイスを含むグループである前記（３０）から（３１）のいずれかに記載の通信システム 
（３３）前記調停が必要なグループは、当該スレーブがセカンダリマスタ要求を行うことができるスレーブデバイスを含むグループである前記（３０）から（３１）のいずれかに記載の通信システム 
（３４）前記調停が必要なグループは、当該スレーブがピアツーピアスレーブ要求を行うことができるスレーブデバイスを含むグループである前記（３０）から（３１）のいずれかに記載の通信システム 
（３５）前記マスタデバイスは、
先頭ビットに基づく調停において前記所定のパターンデータの先頭ビットと異なる値を検出したときに前記帯域内割り込み要求または前記セカンダリマスタ要求または前記ピアツーピアスレーブ要求を含む調停が必要なイベントが発生したと判断して前記所定のパターンデータの送信を停止し、２ビット目以降のアドレスを他のスレーブデバイスから受信してビット単位で調停を行い、前記イベントを前記マスタデバイスが受け入れ可能である場合に確認応答を送信後にデータの送受信またはデータの処理を行い、前記イベントを前記マスタデバイスが受け入れ不可能である場合に確認応答を送信せずにマスタ側の通信処理を終了する
前記（２３）から（３４）のいずれかに記載の通信システム。
【符号の説明】
【０１４０】
１００  電子装置
１０８  ＳＤＡ線
１０９  ＳＬＣ線
１１０、１４０  プロセッサ
１１１  アドレス割当部
１１２、１２１  バス特性レジスタ
１１３、１２２  通信部
１１４、１２３  調停部
１２０  ディスプレイドライバ
１３０  ジャイロセンサ
【図１】
2017056917.tif 000003
【図２】
2017056917.tif 000004
【図３】
2017056917.tif 000005
【図４】
2017056917.tif 000006
【図５】
2017056917.tif 000007
【図６】
2017056917.tif 000008
【図７】
2017056917.tif 000009
【図８】
2017056917.tif 000010
【図９】
2017056917.tif 000011
【図１０】
2017056917.tif 000012
【図１１】
2017056917.tif 000013
【図１２】
2017056917.tif 000014
【図１３】
2017056917.tif 000015
【図１４】
2017056917.tif 000016
【図１５】
2017056917.tif 000017
【図１６】
2017056917.tif 000018
【図１７】
2017056917.tif 000019
【図１８】
2017056917.tif 000020
【図１９】
2017056917.tif 000021
【図２０】
2017056917.tif 000022
【図２１】
2017056917.tif 000023
【図２２】
2017056917.tif 000024
【図２３】
2017056917.tif 000025
【図２４】
2017056917.tif 000026
【図２５】
2017056917.tif 000027
【国際調査報告】
2017056917.tif 000028
2017056917.tif 000029
2017056917.tif 000030