(57)【特許請求の範囲】
【請求項１】
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行う送受信部と、
前記他の通信装置と通信不能な状態となったときに、前記送受信部により前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記他の通信装置に対して指示し、前記データ信号線の制御権を前記他の通信装置から戻させるクリア指示部と
を備え、
前記送受信部は、前記特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行うことで、前記データ信号線に対する駆動可能な状態の解除と、所定の設定値のリセットとを前記他の通信装置に対して指示する
通信装置。
【請求項２】
前記送受信部は、前記特定の駆動として、前記第１の期間よりも長い第２の期間が経過するまでＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行うことで、前記データ信号線に対する駆動可能な状態の解除と、全設定のリセットとを前記他の通信装置に対して指示する
請求項１に記載の通信装置。
【請求項３】
複数の前記他の通信装置との通信を監視し、前記データ信号線および前記クロック信号線を介した通信にデッドロックが発生しているか否かを判定する監視部
をさらに備える請求項１に記載の通信装置。
【請求項４】
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行い、
前記他の通信装置と通信不能な状態となったときに、前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記他の通信装置に対して指示し、前記データ信号線の制御権を前記他の通信装置から戻させる
ステップを含み、
前記特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行うことで、前記データ信号線に対する駆動可能な状態の解除と、所定の設定値のリセットとを前記他の通信装置に対して指示する
通信方法。
【請求項５】
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行い、
前記他の通信装置と通信不能な状態となったときに、前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記他の通信装置に対して指示し、前記データ信号線の制御権を前記他の通信装置から戻させる
ステップを含み、
前記特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行うことで、前記データ信号線に対する駆動可能な状態の解除と、所定の設定値のリセットとを前記他の通信装置に対して指示する
通信処理をコンピュータに実行させるプログラム。
【請求項６】
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行う送受信部と、
前記他の通信装置による前記クロック信号線に対する駆動を検出する検出部と
を備え、
前記送受信部は、前記検出部により前記クロック信号線に対する特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除するとともに、所定の設定値のリセットを行い、前記データ信号線の制御権を前記他の通信装置に戻す
通信装置。
【請求項７】
前記送受信部は、前記特定の駆動として、前記第１の期間よりも長い第２の期間が経過するまでＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が行われたことが検出されたときに、前記データ信号線に対する駆動可能な状態を解除するとともに、全設定のリセットを行う
請求項６に記載の通信装置。
【請求項８】
前記検出部は、前記クロック信号線がＬレベルである時間をカウントするカウンタである
請求項６に記載の通信装置。
【請求項９】
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行い、
前記他の通信装置による前記クロック信号線に対する駆動を検出し、
前記クロック信号線に対する特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除するとともに、所定の設定値のリセットを行い、前記データ信号線の制御権を前記他の通信装置に戻す
ステップを含む通信方法。
【請求項１０】
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行い、
前記他の通信装置による前記クロック信号線に対する駆動を検出し、
前記クロック信号線に対する特定の駆動が検出として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除するとともに、所定の設定値のリセットを行い、前記データ信号線の制御権を前記他の通信装置に戻す
ステップを含む通信処理をコンピュータに実行させるプログラム。
【請求項１１】
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、第２の通信装置と信号の送受信を行う第１の送受信部と、
前記第２の通信装置と通信不能な状態となったときに、前記第１の送受信部により前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記第２の通信装置に対して指示し、前記データ信号線の制御権を前記第２の通信装置から戻させるクリア指示部と
を有する第１の通信装置と、
前記データ信号線および前記クロック信号線の少なくとも２本の信号線を介して、前記第１の通信装置と信号の送受信を行う第２の送受信部と、
前記第１の通信装置による前記クロック信号線に対する駆動を検出する検出部と
を備え、
前記第１の送受信部は、前記特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行うことで、前記データ信号線に対する駆動可能な状態の解除と、所定の設定値のリセットとを前記他の通信装置に対して指示し、
前記第２の送受信部は、前記検出部により前記クロック信号線に対する特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除するとともに、所定の設定値のリセットを行い、前記データ信号線の制御権を前記他の通信装置に戻す
第２の通信装置と
を備える通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信装置、通信方法、プログラム、および、通信システムに関し、特に、より確実に通信を行うことができるようにした通信装置、通信方法、プログラム、および、通信システムに関する。
【背景技術】
【０００２】
従来、複数のデバイスが実装されたボード内でバスを介したデバイス間の通信に用いられるバスＩＦ（Interface）として、例えば、I2C（Inter-Integrated Circuit）が多く利用されている。
【０００３】
また、近年、I2Cの高速化を実現することが求められており、次世代の規格としてI3C（Improved Inter Integrated Circuit）の規定が進行している。I3Cでは、マスタおよびスレーブは、２本の信号線を用いて双方向に通信を行うことができ、例えば、マスタからスレーブへのデータ転送（ライト転送）と、スレーブからマスタへのデータ転送（リード転送）とを行うことができる。
【０００４】
例えば、特許文献１には、ホスト・プロセッサとサブシステム・コントローラとを、I2Cにより相互接続するディジタル・データ処理システムが開示されている。また、特許文献２には、標準I2Cプロトコルの上部に層状に配置された通信プロトコルを実現する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−９９４４８号公報
【特許文献２】特開２００２−１７５２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述したようなI3Cにおいて、例えば、２本の信号線それぞれを介して伝送されるシリアルデータまたはシリアルクロックにエラーが発生した場合に、バスがデットロックすることがある。これにより、マスタとスレーブとの両方が通信不能な状態となることが懸念され、正常な通信を行うことができなくなると想定される。
【０００７】
本開示は、このような状況に鑑みてなされたものであり、より確実に通信を行うことができるようにするものである。
【課題を解決するための手段】
【０００８】
本開示の第１の側面の通信装置は、データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行う送受信部と、前記他の通信装置と通信不能な状態となったときに、前記送受信部により前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記他の通信装置に対して指示し、前記データ信号線の制御権を前記他の通信装置から戻させるクリア指示部とを備え、前記送受信部は、前記特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行うことで、前記データ信号線に対する駆動可能な状態の解除と、所定の設定値のリセットとを前記他の通信装置に対して指示する。
【０００９】
本開示の第１の側面の通信方法またはプログラムは、データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行い、前記他の通信装置と通信不能な状態となったときに、前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記他の通信装置に対して指示し、前記データ信号線の制御権を前記他の通信装置から戻させるステップを含み、前記特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行うことで、前記データ信号線に対する駆動可能な状態の解除と、所定の設定値のリセットとを前記他の通信装置に対して指示する。
【００１０】
本開示の第１の側面においては、データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信が行われ、他の通信装置と通信不能な状態となったときに、クロック信号線に対する特定の駆動を行わせることによって、データ信号線に対する駆動可能な状態を解除することが他の通信装置に対して指示され、データ信号線の制御権が他の通信装置から戻される。そして、特定の駆動として、データ信号線に対する駆動可能な状態の解除のみを他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまでクロック信号線のＬレベルが維持され、その後、クロック信号線をＨレベルに切り替える駆動が行われることで、データ信号線に対する駆動可能な状態の解除と、所定の設定値のリセットとが他の通信装置に対して指示される。
【００１１】
本開示の第２の側面の通信装置は、データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行う送受信部と、前記他の通信装置による前記クロック信号線に対する駆動を検出する検出部とを備え、前記送受信部は、前記検出部により前記クロック信号線に対する特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除するとともに、所定の設定値のリセットを行い、前記データ信号線の制御権を前記他の通信装置に戻す。
【００１２】
本開示の第２の側面の通信方法またはプログラムは、データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行い、前記他の通信装置による前記クロック信号線に対する駆動を検出し、前記クロック信号線に対する特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除するとともに、所定の設定値のリセットを行い、前記データ信号線の制御権を前記他の通信装置に戻すステップを含む。
【００１３】
本開示の第２の側面においては、データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信が行われ、他の通信装置によるクロック信号線に対する駆動が検出され、クロック信号線に対する特定の駆動として、データ信号線に対する駆動可能な状態の解除のみを他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまでクロック信号線のＬレベルが維持され、その後、クロック信号線をＨレベルに切り替える駆動が検出されたときに、データ信号線に対する駆動可能な状態が解除されるとともに、所定の設定値のリセットが行われ、データ信号線の制御権が他の通信装置に戻される。
【００１４】
本開示の第３の側面の通信システムは、データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、第２の通信装置と信号の送受信を行う第１の送受信部と、前記第２の通信装置と通信不能な状態となったときに、前記第１の送受信部により前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記第２の通信装置に対して指示し、前記データ信号線の制御権を前記第２の通信装置から戻させるクリア指示部とを有する第１の通信装置と、前記データ信号線および前記クロック信号線の少なくとも２本の信号線を介して、前記第１の通信装置と信号の送受信を行う第２の送受信部と、前記第１の通信装置による前記クロック信号線に対する駆動を検出する検出部とを備え、前記第１の送受信部は、前記特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行うことで、前記データ信号線に対する駆動可能な状態の解除と、所定の設定値のリセットとを前記他の通信装置に対して指示し、前記第２の送受信部は、前記検出部により前記クロック信号線に対する特定の駆動として、前記データ信号線に対する駆動可能な状態の解除のみを前記他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまで前記クロック信号線のＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除するとともに、所定の設定値のリセットを行い、前記データ信号線の制御権を前記第１の通信装置に戻す第２の通信装置とを備える。
【００１５】
本開示の第３の側面においては、データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、第２の通信装置と信号の送受信が行われ、第２の通信装置と通信不能な状態となったときに、クロック信号線に対する特定の駆動を行わせることによって、データ信号線に対する駆動可能な状態を解除することが第２の通信装置に対して指示され、データ信号線の制御権が第２の通信装置から戻される。そして、特定の駆動として、データ信号線に対する駆動可能な状態の解除のみを他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまでクロック信号線のＬレベルが維持され、その後、クロック信号線をＨレベルに切り替える駆動が行われることで、データ信号線に対する駆動可能な状態の解除と、所定の設定値のリセットとが他の通信装置に対して指示される。一方、データ信号線およびクロック信号線の少なくとも２本の信号線を介して、第１の通信装置と信号の送受信が行われ、第１の通信装置によるクロック信号線に対する駆動が検出され、クロック信号線に対する特定の駆動として、データ信号線に対する駆動可能な状態の解除のみを他の通信装置に対して指示する一定期間よりも長い第１の期間が経過するまでクロック信号線のＬレベルが維持され、その後、クロック信号線をＨレベルに切り替える駆動が検出されたときに、データ信号線に対する駆動可能な状態が解除されるとともに、所定の設定値のリセットが行われ、データ信号線の制御権が第１の通信装置に戻される。
【発明の効果】
【００１６】
本開示の一側面によれば、より確実に通信を行うことができる。
【図面の簡単な説明】
【００１７】
【図１】本技術を適用したバスＩＦの一実施の形態の構成例を示すブロック図である。
【図２】リード転送時におけるタイミングチャートを示す図である。
【図３】リード転送時にシリアルクロックでクロックスリップが発生した状態を説明する図である。
【図４】DDRモードにおけるタイミングチャートを示す図である。
【図５】HDR終了コマンドにビット反転エラーが発生した状態を説明する図である。
【図６】カウンタの構成例について説明する図である。
【図７】カウンタにより検出される検出信号の例について説明する図である。
【図８】バスクリアのタイミングについて説明する図である。
【図９】マスタにおいて行われる通信処理を説明するフローチャートである。
【図１０】スレーブにおいて行われる通信処理を説明するフローチャートである。
【図１１】バスクリアの変形例について説明する図である。
【図１２】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１８】
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００１９】
図１は、本技術を適用したバスＩＦの一実施の形態の構成例を示すブロック図である。
【００２０】
図１に示されているバスＩＦ１１は、マスタ１２と３台のスレーブ１３−１乃至１３−３とが、データ信号線１４−１およびクロック信号線１４−２を介して接続されて構成される。
【００２１】
マスタ１２は、バスＩＦ１１における制御の主導権を有しており、データ信号線１４−１およびクロック信号線１４−２を介して、スレーブ１３−１乃至１３−３と通信を行うことができる。
【００２２】
スレーブ１３−１乃至１３−３は、マスタ１２による制御に従って、データ信号線１４−１およびクロック信号線１４−２を介して、マスタ１２と通信を行うことができる。なお、スレーブ１３−１乃至１３−３は、それぞれ同様に構成されており、以下、それらを区別する必要がない場合、単にスレーブ１３と称し、スレーブ１３を構成する各ブロックについても同様とする。
【００２３】
データ信号線１４−１およびクロック信号線１４−２は、マスタ１２およびスレーブ１３の間で信号を伝送するのに用いられる。例えば、バスＩＦ１１では、データ信号線１４−１を介して、１ビットずつ逐次的にシリアルデータ（SDA：Serial Data）が伝送され、クロック信号線１４−２を介して、所定の周波数のシリアルクロック（SCL：Serial Clock）が伝送される。
【００２４】
また、バスＩＦ１１では、通信速度が異なる複数の伝送方式が規定されており、マスタ１２は、それらの伝送方式を切り替えることができる。例えば、バスＩＦ１１では、データの転送レートに応じて、通常の転送レートでデータ通信を行うSDR（Standard Data Rate）モード、および、SDRモードよりも高い転送レートでデータ通信を行うHDR（High Data Rate）モードが規定されている。また、HDRモードでは、DDR（Double Data Rate）モード、TSP(Ternary Symbol Pure-Bus)モード、および、TSL(Ternary Symbol Legacy-inclusive-Bus)モードの３つのモードが規格で定義されている。なお、バスＩＦ１１では、通信を開始するときにはSDRモードで通信を行うことが規定されている。
【００２５】
ところで、上述したように、データ信号線１４−１を介して伝送されるシリアルデータ、または、クロック信号線１４−２を介して伝送されるシリアルクロックにエラーが発生した場合に、バスＩＦ１１がデットロックしてしまい、通信不能な状態となることがある。ここで、マスタ１２およびスレーブ１３の構成について説明する前に、図２乃至図５を参照して、バスＩＦ１１のデットロックについて説明する。なお、以下の図面において、ハッチングが施されているシリアルデータは、スレーブ１３からマスタ１２へ伝送されることを表しており、スレーブ１３によりデータ信号線１４−１が駆動可能な状態となっている。
【００２６】
例えば、図２および図３を参照して説明するように、スレーブ１３からマスタ１２へのデータ転送（以下、リード転送と称する）が行われるときに、バスＩＦ１１上でエラーが生じたときに、バスＩＦ１１がデットロックすることがある。図２および図３では、マスタ１２から見た波形が上側に示されており、スレーブ１３から見た波形が下側に示されている。
【００２７】
図２には、リード転送時におけるタイミングチャートが示されている。
【００２８】
図２に示すように、例えば、マスタ１２は、バスＩＦ１１を構成する全てのスレーブ１３を対象として一斉にコマンドを送信することを通知するブロードキャストコマンド（0ｘ7E+R/W=1）を送信する。その後、マスタ１２は、ブロードキャストコマンドの受信が成功したことを確認するためにスレーブ１３から送信されてくるACK（Acknowledge）を受信して、通信を再スタート（Sr）する。そして、マスタ１２は、リード転送を行う対象とするスレーブ１３のアドレス（Slave address + R/W=1）を送信し、そのスレーブ１３から送信されてくるデータ（D0〜D7）を受信する。
【００２９】
ここで、バスＩＦ１１では、リード転送において、リードデータの１バイトごとに、マスタ１２がリード転送を中断できる期間（以下、Ｔビットと称する）が規定されている。従って、マスタ１２は、Ｔビットにおいて、データ信号線１４−１をＬレベルとするように駆動すること（SDA=0）により、リード転送を中断（Abort）することができる。その後、マスタ１２は、通信を終了させる場合、ストップコンディションを出力（クロック信号線１４−２がＨレベルである状態でデータ信号線１４−１をＬレベルからＨレベルに駆動）して、通信の終了を宣言することができる。なお、Ｔビットにおいて、スレーブ１３がデータ信号線１４−１に対する駆動を行うことは禁止される。
【００３０】
図３には、リード転送時にシリアルクロックでクロックスリップが発生した状態が示されている。
【００３１】
図３に示すように、リード転送時にシリアルクロックでクロックスリップが発生すると、マスタ１２とスレーブ１３との間でシリアルクロックのサイクルがズレてしまうため、リード転送を中断するためのＴビットの区間の認識にズレが発生することになる。このように、Ｔビットの区間の認識にズレが発生した場合、マスタ１２は、自身がＴビットとして認識している期間において、リード転送を終了させるために、データ信号線１４−１がＬレベルとなるように駆動することができる。しかしながら、その期間について、スレーブ１３においてＴビットとして認識されていない（Ｔビットの区間の認識がズレている）ため、スレーブ１３が、データ信号線１４−１に対する駆動を行ってしまうことがある。
【００３２】
従って、この場合、マスタ１２およびスレーブ１３の両方がデータ信号線１４−１に対する駆動を行ってしまうと、バスコンフリクトが発生することになる。そして、スレーブ１３が、データ信号線１４−１に対して駆動可能な状態であると認識したまま、バスＩＦ１１がデットロックしてしまう。このため、マスタ１２がストップコンディションを出力することができず、通信を終了させて通信処理をやり直すことは困難である。
【００３３】
また、図４および図５を参照して説明するように、HDRモードで転送エラーが生じたときに、バスＩＦ１１がデットロックすることがある。
【００３４】
図４には、HDRモードのひとつであるDDRモード（高速転送モード）におけるタイミングチャートが示されている。
【００３５】
図４に示すように、マスタ１２は、まず、SDRモードにおいて、バスＩＦ１１を構成する全てのスレーブ１３を対象として一斉にコマンドを送信することを通知するブロードキャストコマンド（0ｘ7E+R/W=0）を送信する。その後、マスタ１２は、ブロードキャストコマンドの受信が成功したことを確認するためにスレーブ１３から送信されてくるACKを受信して、DDRモードに入るためのコモンコマンドコード（ENTHDR CCC(0ｘ20)）を送信する。このように、マスタ１２は、スレーブ１３に対してDDRモードに入ることを通知してDDRモードに移行した後、DDRモードでデータ転送（DDRコマンドやDDRデータなどの送信）を行う。
【００３６】
そして、マスタ１２は、DDRモードでのデータ転送を終了する際には、スレーブ１３に対してHDRモードを終了することを通知するHDR終了コマンド（HDR Exit）を送信する。
【００３７】
図５には、HDR終了コマンドにビット反転エラーが発生した状態が示されている。
【００３８】
図５に示すようにHDR終了コマンドにビット反転エラーが発生した場合、スレーブ１３は、DDRモードが終了したことを認識することができなくなる。この場合、SDRモードとDDRモードとではプロトコルのルールが大幅に異なることより、その後のプロトコルでバスコンフリクトが発生してしまい、バスＩＦ１１がデットロックしてしまう可能性が発生する。
【００３９】
以上のように、リード転送時にシリアルクロックでクロックスリップが発生したり、HDR終了コマンドにビット反転エラーが発生したりすると、バスＩＦ１１がデットロックしてしまう可能性がある。
【００４０】
例えば、バスＩＦ１１がデットロックすると、従来、システム全体の電源を遮断したり、別口からリセットをかけて復帰したりする手法を行うことが想定される。しかしながら、マスタ１２が、電源を遮断する権限を持っていなかったり、リセットをかける権限を持っていなかったりすると、リセットすることができなかった。そのため、従来、バスＩＦ１１のデットロックを解消することができなかった。また、システム全体の電源を遮断する場合には、システムが完全に停止してしまう時間が発生したり、システム全体の設定値などのレジスタ情報が初期値に戻ったりするなどの弊害が発生することになる。また、別口からリセットをかけて復帰する場合には、システム全体の設定値などのレジスタ情報が初期値に戻るという弊害が発生することになる。
【００４１】
そこで、バスＩＦ１１のマスタ１２およびスレーブ１３は、このような弊害が発生することなく、バスＩＦ１１のデットロックを解消して通信可能な状態にする（以下、バスクリアと称する）ことができるように構成されている。
【００４２】
次に、図１のマスタ１２およびスレーブ１３の構成について説明する。
【００４３】
マスタ１２は、送受信部２１、監視部２２、およびクリア指示部２３を備えて構成される。
【００４４】
送受信部２１は、データ信号線１４−１およびクロック信号線１４−２を介して、スレーブ１３と信号の送受信を行う。例えば、送受信部２１は、クロック信号線１４−２を駆動することにより送信するシリアルクロックのタイミングに合わせて、データ信号線１４−１に対する駆動を行う（電位をＨレベルまたはＬレベルに切り替える）ことにより、スレーブ１３に信号を送信する。また、送受信部２１は、クロック信号線１４−２のシリアルクロックのタイミングに合わせて、スレーブ１３がデータ信号線１４−１に対する駆動を行うことによって、スレーブ１３から送信されてくる信号を受信する。なお、クロック信号線１４−２に対する駆動は、常に、マスタ１２側により行われる。
【００４５】
監視部２２は、バスＩＦ１１の通信状況を監視し、例えば、バスＩＦ１１がデットロックしているか否かを判定する。例えば、バスＩＦ１１では、マスタ１２からスレーブ１３に送信される所定のコマンドに対し、スレーブ１３がマスタ１２にACKを送信する応答を行うことで、そのコマンドの受信が成功したことを確認するように規定されている。従って、監視部２２は、バスＩＦ１１を構成するスレーブ１３から応答がなく、送受信部２１によるスレーブ１３に対する各種の復帰手法を実行しても通信状況が改善しない場合、バスＩＦ１１がデットロックしているものと判定することができる。または、監視部２２は、本来ではバスコンフリクトが発生することのない区間でバスコンフリクトが発生した場合にも、バスＩＦ１１がデットロックしているものと判定してもよい。例えば、監視部２２は、マスタ１２から送信されるシリアルデータの値と、その時に受信したシリアルデータの値とを比較し、それらの値が異なっているとき、バスコンフリクトが発生したと認識することができる。
【００４６】
クリア指示部２３は、監視部２２によりバスＩＦ１１がデットロックしていると判定された場合、送受信部２１によりクロック信号線１４−２に対する特定の駆動を行わせることによって、データ信号線１４−１に対する駆動可能な状態を解除することをスレーブ１３に対して指示する。ここで、クリア指示部２３は、特定の駆動として、例えば、クロック信号線１４−２を一定期間（例えば、１ミリ秒）が経過するまでＬレベルを維持し、その後、クロック信号線１４−２をＨレベルに切り替える駆動を行うことができる。
【００４７】
このように、クロック信号線１４−２に対して特定の駆動が行われたことがスレーブ１３において検出されると、スレーブ１３は、データ信号線１４−１に対する駆動可能な状態を解除し、バスＩＦ１１のデットロックが解消される。
【００４８】
スレーブ１３は、送受信部３１、エラー検出部３２、コマンド判断部３３、および、カウンタ３４を備えて構成される。
【００４９】
送受信部３１は、データ信号線１４−１およびクロック信号線１４−２を介して、マスタ１２と信号の送受信を行う。例えば、送受信部３１は、クロック信号線１４−２のシリアルクロックのタイミングに合わせて、マスタ１２がデータ信号線１４−１に対する駆動を行うことによって、マスタ１２から送信されてくる信号を受信する。また、送受信部３１は、クロック信号線１４−２のシリアルクロックのタイミングに合わせて、データ信号線１４−１に対する駆動を行うことによって、マスタ１２に信号を送信する。
【００５０】
エラー検出部３２は、例えば、送受信部３１が受信した信号に対するパリティチェックや巡回冗長検査（CRC）などを行ったり、コマンドを構成するビット列を照合したりすることによって、送受信部３１が受信した信号に発生しているエラーを検出する。そして、エラー検出部３２は、例えば、送受信部３１が受信した信号にエラーが発生していることを検出した場合に、エラーに対する対応を行うこと、例えば、コマンドの再送信を要求することができる。
【００５１】
コマンド判断部３３は、送受信部３１が受信した信号に含まれているコマンドの内容を判断し、それぞれのコマンドの内容に対応した処理を実行する各処理実行部（図示せず）に対して、コマンドに基づく処理を行うように指示する。
【００５２】
カウンタ３４は、例えば、データ信号線１４−１がＨレベルまたはＬレベルとなっていく期間をカウントしたり、クロック信号線１４−２がＨレベルまたはＬレベルとなっている期間をカウントしたりして、カウントに基づく時間に応じた出力を行う。例えば、カウンタ３４は、マスタ１２によるクロック信号線１４−２に対する駆動を検出する検出部として利用することができる。従って、カウンタ３４は、上述したようなクロック信号線１４−２を一定期間（例えば、１ミリ秒）が経過するまでＬレベルを維持し、その後、クロック信号線１４−２をＨレベルにさせる特定の駆動が行われたことを検出することができる。
【００５３】
具体的には、カウンタ３４には、図６に示すように、データ信号線１４−１を介して伝送されるシリアルデータ、クロック信号線１４−２を介して伝送されるシリアルクロック、および、図示しない発振器により生成されたリファレンスクロック（INCK）が入力される。例えば、カウンタ３４は、シリアルクロックがＬレベルである時間をカウントし、一定期間（例えば、１ミリ秒）が経過するまでＬレベルであって、その後、Ｈレベルとなる特定の駆動が行われたことを検出すると、データ信号線１４−１に対する駆動可能な状態を解除する指示が行われたことを検出するバスクリア検出信号（OBUS_CLEAR_DET）を出力する。これに応じて、送受信部３１が、データ信号線１４−１に対する駆動可能な状態を解除することで、バスＩＦ１１のデットロックが解消される。
【００５４】
なお、カウンタ３４は、バスクリア検出信号（OBUS_CLEAR_DET）のみを出力するのに用いられるのではなく、他の検出信号を出力するのにも用いられる。
【００５５】
例えば、図７に示すように、カウンタ３４は、シリアルデータおよびシリアルクロックがＨレベルである期間が7.5μｓ以上であることを検出した場合、割り込みなどのトランザクションを開始することができることを検出する検出信号（OBUS_FREE_DET）を出力する。また、カウンタ３４は、シリアルデータおよびシリアルクロックがＨレベルである期間が１ｍｓ以上であることを検出した場合、ホットジョインすることができることを検出する検出信号（OBUS_IDLE_DET）を出力する。
【００５６】
このように、他の検出信号の出力に用いられているカウンタ３４を利用して、スレーブ１３は、データ信号線１４−１に対する駆動可能な状態を解除する指示が行われたことを容易に検出することができる。
【００５７】
そして、図８に示すように、スレーブ１３がデータ信号線１４−１に対する駆動可能な状態となっているときに、マスタ１２が、クロック信号線１４−２を一定期間（例えば、１ミリ秒）が経過するまでＬレベルを維持することで、スレーブ１３に対してバスクリアを指示することができる。スレーブ１３は、その一定期間が経過したタイミングで、バスクリアが指示されたことを検出することができる。
【００５８】
その後、マスタ１２が、クロック信号線１４−２をＨレベルにしたタイミングで、スレーブ１３は、データ信号線１４−１に対する駆動可能な状態を解除（リリース）する。これにより、マスタ１２に制御権が戻り、バスＩＦ１１のデットロックを解消することができる。
【００５９】
なお、例えば、スレーブ１３が、一定期間（例えば、１ミリ秒）が経過するまでクロック信号線１４−２がＬレベルを維持していることを検出したタイミングでリリースを行うと、スレーブ１３ごとにバスクリアを検出するタイミングにズレが生じることがあり、そのタイミングでリリースを行うのは好ましくない。即ち、複数台のスレーブ１３が、データ信号線１４−１に対する駆動可能な状態である場合には、それぞれのスレーブ１３で、リリースを行うタイミングが異なってしまう。そのため、データ信号線１４−１に電気的なストレスが発生したり、HDR RESTARTやHDR EXITなどの信号が生成されてしまい、混乱が生じることが懸念される。
【００６０】
従って、バスＩＦ１１では、マスタ１２がクロック信号線１４−２をＨレベルにしたタイミングで、スレーブ１３が、データ信号線１４−１に対する駆動可能な状態を解除（リリース）することが好ましい。
【００６１】
以上のようにバスＩＦ１１は構成されており、バスＩＦ１１がデットロックしたときに、マスタ１２が、クロック信号線１４−２を利用して、スレーブ１３に対してバスクリアを指示することができ、バスＩＦ１１の通信を回復することができる。
【００６２】
＜バスクリアを行う通信方法＞
【００６３】
図９は、マスタ１２において行われる通信処理を説明するフローチャートである。
【００６４】
例えば、図示しない上位の制御装置から通信を行うようにマスタ１２に対する指示があると処理が開始される。そして、ステップＳ１１において、送受信部２１は、データ信号線１４−１およびクロック信号線１４−２を駆動し、スタートコンディションを出力（クロック信号線１４−２がＨレベルである状態でデータ信号線１４−１をＨレベルからＬレベルに駆動）して、通信の開始を宣言する。
【００６５】
ステップＳ１２において、送受信部２１は、データ信号線１４−１およびクロック信号線１４−２を介して、スレーブ１３と信号の送受信を行う。
【００６６】
ステップＳ１３において、監視部２２は、バスＩＦ１１の通信状況を監視し、ステップＳ１４において、その監視結果に基づいて、バスＩＦ１１がデットロックしているか否かを判定する。ステップＳ１３において、監視部２２が、バスＩＦ１１がデットロックしていないと判定した場合、処理はステップＳ１２に戻り、以下、同様に、スレーブ１３との通信が継続され、その通信が正常に終了した後、ステップＳ１１に戻って新たに通信を開始することができる。
【００６７】
一方、ステップＳ１４において、監視部２２が、バスＩＦ１１がデットロックしていると判定した場合、処理はステップＳ１５に進む。
【００６８】
ステップＳ１５において、クリア指示部２３は、監視部２２がステップＳ１４でバスＩＦ１１がデットロックしていると判定したことに対応して、送受信部２１に対して、クロック信号線１４−２をＬレベルに駆動するように指示する。この指示に従い、送受信部２１は、クロック信号線１４−２をＬレベルに駆動する（SCL=L）。
【００６９】
ステップＳ１６において、クリア指示部２３は、ステップＳ１５で送受信部２１がクロック信号線１４−２をＬレベルに駆動してから一定期間が経過したか否かを判定し、一定期間が経過したと判定するまで処理を待機する。
【００７０】
ステップＳ１６において、クリア指示部２３が、ステップＳ１５で送受信部２１がクロック信号線１４−２をＬレベルに駆動してから一定期間が経過したと判定した場合、処理はステップＳ１７に進む。
【００７１】
ステップＳ１７において、クリア指示部２３は、送受信部２１に対して、クロック信号線１４−２をＨレベルに駆動するように指示し、送受信部２１は、クロック信号線１４−２をＨレベルに駆動する（SCL=H）。これにより、図８を参照して上述したように、バスクリアが実行される。
【００７２】
ステップＳ１７の処理後、処理はステップＳ１１に戻り、マスタ１２は、通信を最初からやり直すことができる。
【００７３】
図１０は、スレーブ１３において行われる通信処理を説明するフローチャートである。
【００７４】
例えば、スレーブ１３は、マスタ１２からの通信を待機する待機状態となっており、ステップＳ２１において、送受信部３１は、マスタ１２により通信の開始が宣言されたか否かを判定し、マスタ１２により通信の開始が宣言されたと判定されるまで処理を待機する。
【００７５】
例えば、図９のステップＳ１１においてマスタ１２がスタートコンディションを出力すると、ステップＳ２１において、送受信部３１は、マスタ１２により通信の開始が宣言されたと判定し、処理はステップＳ２２に進む。
【００７６】
ステップＳ２２において、送受信部３１は、データ信号線１４−１およびクロック信号線１４−２を介して、マスタ１２と信号の送受信を行う。
【００７７】
ステップＳ２３において、カウンタ３４は、クロック信号線１４−２がＬレベルに駆動された状態が一定期間以上経過したか否かを判定する。ステップＳ２３において、カウンタ３４が、クロック信号線１４−２がＬレベルに駆動された状態が一定期間以上経過していないと判定した場合、処理はステップＳ２２に戻り、以下、同様に、マスタ１２との通信が継続され、その通信が正常に終了した後、処理はステップＳ２１に戻って新たな通信が開始されることを待機することができる。
【００７８】
一方、ステップＳ２３において、カウンタ３４が、クロック信号線１４−２がＬレベルに駆動された状態が一定期間以上経過したと判定した場合、処理はステップＳ２４に進む。
【００７９】
ステップＳ２４において、送受信部３１は、クロック信号線１４−２がＨレベルに駆動されたか否かを判定し、クロック信号線１４−２がＨレベルに駆動されたと判定するまで処理を待機する。
【００８０】
ステップＳ２４において、送受信部３１が、クロック信号線１４−２がＨレベルに駆動されたと判定した場合、処理はステップＳ２５に進み、送受信部３１は、データ信号線１４−１に対する駆動を解除する。その後、処理はステップＳ２１に戻り、スレーブ１３は、マスタ１２からの通信を待機する待機状態となる。
【００８１】
以上のように、マスタ１２およびスレーブ１３は、バスＩＦ１１がデットロックしたときに、バスクリアを行うことによって通信を回復することができ、より確実に通信を行うことができる。
【００８２】
なお、本実施の形態では、マスタ１２がスレーブ１３に対してバスクリアを指示するための特定の駆動として、クロック信号線１４−２を一定期間が経過するまでＬレベルを維持するという駆動方法について説明したが、この駆動方法に限定されることはない。例えば、マスタ１２がスレーブ１３に対してバスクリアを指示するための特定の駆動として、クロック信号線１４−２を一定期間が経過するまでＨレベルを維持するという駆動方法を用いてもよい。また、スレーブ１３がデータ信号線１４−１をリリースするタイミングも、マスタ１２がクロック信号線１４−２をＨレベルに駆動したタイミングに限定されることはなく、例えば、特定のパターンを送信したときにスレーブ１３がデータ信号線１４−１をリリースするようにしてもよい。
【００８３】
即ち、マスタ１２が、クロック信号線１４−２に対する特定の駆動を行って、スレーブ１３に対してバスクリアを指示することができれば、その際の駆動について様々なパターンを用いることができる。例えば、マスタ１２は、通常の周波数と、より高い周波数とを組み合わせたシリアルクロックを送信する駆動を行うことにより、スレーブ１３に対してバスクリアを指示するようにしてもよい。また、例えば、マスタ１２は、一定期間のＬレベルと一定期間のＨレベルとの切り替えを所定回数繰り返す駆動を行うことにより、レベルを切り替えることによるエッジの数によって、スレーブ１３に対してバスクリアを指示するようにしてもよい。なお、これらの駆動が組み合わされて構成されるパターンを用いてもよい。
【００８４】
さらに、例えば、図１１に示すように、マスタ１２は、クロック信号線１４−２をＬレベルに維持する一定期間を適切に設定することで、バスクリアだけでなく、バスクリアかつアドレスのリセットや、バスクリアかつリセット（I3Cの全設定を初期値に戻すこと）をスレーブ１３に指示することができる。また、マスタ１２は、クロック信号線１４−２をＬレベルに維持する一定期間を適切に設定することで、スレーブ１３に対して、アドレス以外の所定の設定値のリセットまたはセットを指示することができる。このように、マスタ１２は、バスＩＦ１１がデットロックしても、クロック信号線１４−２に対する特定の駆動を行うことによって、スレーブ１３に対して各種の指示（設定やリセットなど）を行うことができる。これにより、バスＩＦ１１がデットロックしても、通信を全く行うことができない状態を回避することが可能となる。
【００８５】
また、バスＩＦ１１では、図９および図１０を参照して説明したように通信処理が行われているときにだけ、監視部２２がバスＩＦ１１の通信状況を監視するのではなく、通信処理が行われていないときも常に、監視部２２により、バスＩＦ１１のデットロックを監視させることができる。そして、監視部２２は、バスＩＦ１１がデットロックしていることを検出すると、どのような状態であっても、マスタ１２がスレーブ１３に対してバスクリアを指示することができる。
【００８６】
なお、本技術は、I3Cの規格に従ったバスＩＦ１１に限定されることはなく、その他の規格に従ったバスＩＦ１１に適用することができる。また、図１に示すバスＩＦ１１では、スレーブ１３−１乃至１３−３が接続された構成例が示されているが、スレーブ１３は、例えば、１台または２台でもよく、あるいは、３台以上でもよい。
【００８７】
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。また、プログラムは、１の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１０４にインストールしたり、更新したりすることができる。
【００９４】
なお、本技術は以下のような構成も取ることができる。
（１）
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行う送受信部と、
前記他の通信装置と通信不能な状態となったときに、前記送受信部により前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記他の通信装置に対して指示するクリア指示部と
を備える通信装置。
（２）
前記送受信部は、前記特定の駆動として、前記クロック信号線を一定期間が経過するまでＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行う
上記（１）に記載の通信装置。
（３）
前記送受信部は、前記特定の駆動として、前記一定期間よりも長い第１の期間が経過するまでＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行うことで、前記データ信号線に対する駆動可能な状態の解除と、所定の設定値のリセットとを前記他の通信装置に対して指示する
上記（１）または（２）に記載の通信装置。
（４）
前記送受信部は、前記特定の駆動として、前記一定期間よりも長い第２の期間が経過するまでＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動を行うことで、前記データ信号線に対する駆動可能な状態の解除と、全設定のリセットとを前記他の通信装置に対して指示する
上記（１）から（３）までのいずれかに記載の通信装置。
（５）
複数の前記他の通信装置との通信を監視し、前記データ信号線および前記クロック信号線を介した通信にデッドロックが発生しているか否かを判定する監視部
をさらに備える上記（１）から（４）までのいずれかに記載の通信装置。
（６）
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行い、
前記他の通信装置と通信不能な状態となったときに、前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記他の通信装置に対して指示する
ステップを含む通信方法。
（７）
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行い、
前記他の通信装置と通信不能な状態となったときに、前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記他の通信装置に対して指示する
ステップを含む通信処理をコンピュータに実行させるプログラム。
（８）
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行う送受信部と、
前記他の通信装置による前記クロック信号線に対する駆動を検出する検出部と
を備え、
前記送受信部は、前記検出部により前記クロック信号線に対する特定の駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除する
通信装置。
（９）
前記送受信部は、前記特定の駆動として、前記クロック信号線を一定期間が経過するまでＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が行われたことが検出されたときに、前記データ信号線に対する駆動可能な状態を解除する
上記（８）に記載の通信装置。
（１０）
前記送受信部は、前記特定の駆動として、前記一定期間よりも長い第１の期間が経過するまでＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が行われたことが検出されたときに、前記データ信号線に対する駆動可能な状態を解除するとともに、所定の設定値のリセットを行う
上記（８）または（９）に記載の通信装置。
（１１）
前記送受信部は、前記特定の駆動として、前記一定期間よりも長い第２の期間が経過するまでＬレベルを維持し、その後、前記クロック信号線をＨレベルに切り替える駆動が行われたことが検出されたときに、前記データ信号線に対する駆動可能な状態を解除するとともに、全設定のリセットを行う
上記（８）から（１０）までのいずれかに記載の通信装置。
（１２）
前記検出部は、前記クロック信号線がＬレベルである時間をカウントするカウンタである
上記（８）から（１１）までのいずれかに記載の通信装置。
（１３）
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行い、
前記他の通信装置による前記クロック信号線に対する駆動を検出し、
前記クロック信号線に対する特定の駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除する
ステップを含む通信方法。
（１４）
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行い、
前記他の通信装置による前記クロック信号線に対する駆動を検出し、
前記クロック信号線に対する特定の駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除する
ステップを含む通信処理をコンピュータに実行させるプログラム。
（１５）
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、他の通信装置と信号の送受信を行う第１の送受信部と、
前記第２の通信装置と通信不能な状態となったときに、前記第１の送受信部により前記クロック信号線に対する特定の駆動を行わせることによって、前記データ信号線に対する駆動可能な状態を解除することを前記第２の通信装置に対して指示するクリア指示部と
を有する第１の通信装置と、
データを伝送するデータ信号線およびクロックを伝送するクロック信号線の少なくとも２本の信号線を介して、第１の通信装置と信号の送受信を行う第２の送受信部と、
前記第１の通信装置による前記クロック信号線に対する駆動を検出する検出部と
を備え、
前記第２の送受信部は、前記検出部により前記クロック信号線に対する特定の駆動が検出されたときに、前記データ信号線に対する駆動可能な状態を解除する
第２の通信装置と
を備える通信システム。
【００９５】
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【００９６】
１１  バスＩＦ，  １２  マスタ，  １３  スレーブ，  １４−１  データ信号線，  １４−２  クロック信号線，  ２１  送受信部，  ２２  監視部，  ２３  クリア指示部，  ３１  送受信部，  ３２  エラー検出部，  ３３  コマンド判断部，  ３４  カウンタ
【図１】
0006792314.tif 000002
【図２】
0006792314.tif 000003
【図３】
0006792314.tif 000004
【図４】
0006792314.tif 000005
【図５】
0006792314.tif 000006
【図６】
0006792314.tif 000007
【図７】
0006792314.tif 000008
【図８】
0006792314.tif 000009
【図９】
0006792314.tif 000010
【図１０】
0006792314.tif 000011
【図１１】
0006792314.tif 000012
【図１２】
0006792314.tif 000013