(57)【特許請求の範囲】
【請求項１】
他の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行うことができる送受信部と、
正常に動作している前記他の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記他の通信装置に対して通信を回復させるリカバリー信号を送信するように、前記送受信部に指示するリカバリー信号送信指示部と
を備え、
前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される
通信装置。
【請求項２】
前記送受信部は、前記第２のコマンドが送信された直後に、前記特定の通信モードとは別の通信モードにおける通信の終了を宣言する信号を出力する
請求項１に記載の通信装置。
【請求項３】
前記送受信部は、前記第１のコマンドを送信する直前に、全ての前記他の通信装置を対象として一斉に送信されるコマンドの送信を通知するブロードキャストコマンドを送信する
請求項１に記載の通信装置。
【請求項４】
複数の前記他の通信装置との通信を監視し、正常に動作していない前記他の通信装置があるか否かを判定する監視部
をさらに備える請求項１に記載の通信装置。
【請求項５】
前記リカバリー信号として、前記第１のコマンドを含む形式に替えて、通信の開始を宣言する信号、前記第２のコマンド、および、前記通信の終了を宣言する信号を含む形式が用いられる
請求項２に記載の通信装置。
【請求項６】
他の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行い、
正常に動作している前記他の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記他の通信装置に対して通信を回復させるリカバリー信号を送信する
ステップを含み、
前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される
通信方法。
【請求項７】
他の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行い、
正常に動作している前記他の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記他の通信装置に対して通信を回復させるリカバリー信号を送信する
ステップを含み、
前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される
通信処理をコンピュータに実行させるプログラム。
【請求項８】
他の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行うことができる送受信部と、
前記送受信部が受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示するコマンド判断部と、
前記送受信部が受信した信号にエラーが発生して、前記他の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を前記送受信部が受信したとき、前記他の通信装置との通信を回復する処理を行うリカバリー処理部と
を備え、
前記リカバリー信号には、正常に動作しているときには何も処理を行わないことが規定されている第１のコマンドが少なくとも含まれ、
前記コマンド判断部は、前記送受信部が前記リカバリー信号を受信したとき、前記第１のコマンドに従って何も処理を行わずに、次のコマンドの受信を待機し、
前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される
通信装置。
【請求項９】
前記リカバリー信号では、前記第２のコマンドが送信された直後に、前記特定の通信モードとは別の通信モードにおける通信の終了を宣言する信号が出力される
請求項８に記載の通信装置。
【請求項１０】
前記リカバリー信号では、前記第１のコマンドを送信する直前に、全ての前記他の通信装置を対象として一斉に送信されるコマンドの送信を通知するブロードキャストコマンドが送信される
請求項８に記載の通信装置。
【請求項１１】
前記送受信部が受信した信号に発生しているエラーを検出した場合に、前記他の通信装置に対する応答を停止させるエラー検出部
をさらに備える請求項８に記載の通信装置。
【請求項１２】
前記リカバリー信号として、前記第１のコマンドを含む形式に替えて、通信の開始を宣言する信号、前記第２のコマンド、および、前記通信の終了を宣言する信号を含む形式が用いられる
請求項９に記載の通信装置。
【請求項１３】
他の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行い、
受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示し、
受信した信号にエラーが発生して、前記他の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を受信したとき、前記他の通信装置との通信を回復する処理を行う
ステップを含み、
前記リカバリー信号には、正常に動作しているときには何も処理を行わないことが規定されている第１のコマンドが少なくとも含まれ、
前記コマンドの内容を判断して、前記リカバリー信号を受信したとき、前記第１のコマンドに従って何も処理を行わずに、次のコマンドの受信を待機し、
前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される
通信方法。
【請求項１４】
他の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行い、
受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示し、
受信した信号にエラーが発生して、前記他の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を受信したとき、前記他の通信装置との通信を回復する処理を行う
ステップを含み、
前記リカバリー信号には、正常に動作しているときには何も処理を行わないことが規定されている第１のコマンドが少なくとも含まれ、
前記コマンドの内容を判断して、前記リカバリー信号を受信したとき、前記第１のコマンドに従って何も処理を行わずに、次のコマンドの受信を待機し、
前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される
通信処理をコンピュータに実行させるプログラム。
【請求項１５】
第２の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記第２の通信装置と通信を行うことができる第１の送受信部と、
正常に動作している前記第２の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記第２の通信装置に対して通信を回復させるリカバリー信号を送信するように、前記第１の送受信部に指示するリカバリー信号送信指示部と
を有する第１の通信装置と、
第１の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記第１の通信装置と通信を行うことができる第２の送受信部と、
前記第２の送受信部が受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示するコマンド判断部と、
前記第２の送受信部が受信した信号にエラーが発生して、前記第１の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を前記第２の送受信部が受信したとき、前記第１の通信装置との通信を回復する処理を行うリカバリー処理部と
を有し、
前記コマンド判断部は、前記第２の送受信部が前記リカバリー信号を受信したとき、前記第１のコマンドに従って何も処理を行わずに、次のコマンドの受信を待機する
第２の通信装置と
を備え、
前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される
通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信装置、通信方法、プログラム、および、通信システムに関し、特に、より確実に通信を行うことができるようにした通信装置、通信方法、プログラム、および、通信システムに関する。
【背景技術】
【０００２】
従来、複数のデバイスが実装されたボード内でバスを介したデバイス間の通信に用いられるバスＩＦ（Interface）として、例えば、I2C（Inter-Integrated Circuit）が多く利用されている。
【０００３】
また、近年、I2Cの高速化を実現することが求められており、次世代の規格としてI3C（Improved Inter Integrated Circuit）の規定が進行している。I3Cでは、マスタおよびスレーブは、２本の信号線を用いて双方向に通信を行うことができ、例えば、マスタからスレーブへのデータ転送（ライト転送）と、スレーブからマスタへのデータ転送（リード転送）とを行うことができる。
【０００４】
例えば、特許文献１には、ホスト・プロセッサとサブシステム・コントローラとを、I2Cにより相互接続するディジタル・データ処理システムが開示されている。また、特許文献２には、標準I2Cプロトコルの上部に層状に配置された通信プロトコルを実現する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−９９４４８号公報
【特許文献２】特開２００２−１７５２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述したようなI3Cにおいて、例えば、２本の信号線それぞれを介して伝送されるシリアルデータまたはシリアルクロックにエラーが発生した場合、スレーブが、マスタに対する応答を停止することがある。このとき、マスタは、スレーブに対して所定の復帰手法を実行して、スレーブの通信を回復させることを試みるが、その際に送信される信号によって、正常に動作しているスレーブが誤動作することが懸念され、正常な通信を行うことができなくなると想定される。
【０００７】
本開示は、このような状況に鑑みてなされたものであり、より確実に通信を行うことができるようにするものである。
【課題を解決するための手段】
【０００８】
本開示の第１の側面の通信装置は、他の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行うことができる送受信部と、正常に動作している前記他の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記他の通信装置に対して通信を回復させるリカバリー信号を送信するように、前記送受信部に指示するリカバリー信号送信指示部とを備え、前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される。
【０００９】
本開示の第１の側面の通信方法またはプログラムは、他の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行い、正常に動作している前記他の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記他の通信装置に対して通信を回復させるリカバリー信号を送信するステップを含み、前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される。
【００１０】
本開示の第１の側面においては、他の通信装置と信号の送受信が行われ、通信速度が異なる複数の通信モードで他の通信装置と通信が行われて、正常に動作している他の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない他の通信装置に対して通信を回復させるリカバリー信号が送信される。そして、リカバリー信号では、複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、第１のコマンドに続いて送信される。
【００１１】
本開示の第２の側面の通信装置は、他の通信装置と信号の送受信を行う送受信部と、他の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行うことができる送受信部と、前記送受信部が受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示するコマンド判断部と、前記送受信部が受信した信号にエラーが発生して、前記他の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を前記送受信部が受信したとき、前記他の通信装置との通信を回復する処理を行うリカバリー処理部とを備え、前記リカバリー信号には、正常に動作しているときには何も処理を行わないことが規定されている第１のコマンドが少なくとも含まれ、前記コマンド判断部は、前記送受信部が前記リカバリー信号を受信したとき、前記第１のコマンドに従って何も処理を行わずに、次のコマンドの受信を待機し、前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される。
【００１２】
本開示の第２の側面の通信方法またはプログラムは、他の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行い、受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示し、受信した信号にエラーが発生して、前記他の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を受信したとき、前記他の通信装置との通信を回復する処理を行うステップを含み、前記リカバリー信号には、正常に動作しているときには何も処理を行わないことが規定されている第１のコマンドが少なくとも含まれ、前記コマンドの内容を判断して、前記リカバリー信号を受信したとき、前記第１のコマンドに従って何も処理を行わずに、次のコマンドの受信を待機し、前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される。
【００１３】
本開示の第２の側面においては、他の通信装置と信号の送受信が行われ、通信速度が異なる複数の通信モードで他の通信装置と通信が行われて、受信した信号に含まれているコマンドの内容を判断して、コマンドに基づく処理を行うように指示され、受信した信号にエラーが発生して、他の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を受信したとき、他の通信装置との通信が最初から行う状態に戻される。そして、リカバリー信号には、正常に動作しているときには何も処理を行わないことが規定されている第１のコマンドが少なくとも含まれる。そして、コマンドの内容が判断されて、リカバリー信号を受信したとき、第１のコマンドに従って何も処理が行われずに、次のコマンドの受信が待機され、リカバリー信号では、複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、第１のコマンドに続いて送信される。
【００１４】
本開示の第３の側面の通信システムは、第２の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記第２の通信装置と通信を行うことができる第１の送受信部と、正常に動作している前記第２の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記第２の通信装置に対して通信を回復させるリカバリー信号を送信するように、前記第１の送受信部に指示するリカバリー信号送信指示部とを有する第１の通信装置と、第１の通信装置と信号の送受信を行って、通信速度が異なる複数の通信モードで前記第１の通信装置と通信を行うことができる第２の送受信部と、前記第２の送受信部が受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示するコマンド判断部と、前記第２の送受信部が受信した信号にエラーが発生して、前記第１の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を前記第２の送受信部が受信したとき、前記第１の通信装置との通信を回復する処理を行うリカバリー処理部とを有し、前記コマンド判断部は、前記第２の送受信部が前記リカバリー信号を受信したとき、前記第１のコマンドに従って何も処理を行わずに、次のコマンドの受信を待機する第２の通信装置とを備え、前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される。
【００１５】
本開示の第３の側面の通信システムにおいては、第１の通信装置において、第２の通信装置と信号の送受信が行われ、通信速度が異なる複数の通信モードで第２の通信装置と通信が行われて、正常に動作している第２の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない第２の通信装置に対して通信を回復させるリカバリー信号を送信するように指示される。一方、第２の通信装置において、第１の通信装置と信号の送受信が行われ、通信速度が異なる複数の通信モードで第１の通信装置と通信が行われて、受信した信号に含まれているコマンドの内容を判断して、コマンドに基づく処理を行うように指示され、受信した信号にエラーが発生して、第１の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を受信したとき、第１の通信装置との通信を回復する処理が行われる。そして、コマンドの内容が判断されて、リカバリー信号を受信したとき、第１のコマンドに従って何も処理が行われずに、次のコマンドの受信が待機され、リカバリー信号では、複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、第１のコマンドに続いて送信される。
【発明の効果】
【００１６】
本開示の一側面によれば、より確実に通信を行うことができる。
【図面の簡単な説明】
【００１７】
【図１】本技術を適用したバスＩＦの一実施の形態の構成例を示すブロック図である。
【図２】リカバリー信号の波形の一例を示す図である。
【図３】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モードで通信を行うことが規定されている。
【００２６】
マスタ１２は、送受信部２１、監視部２２、およびリカバリー信号送信指示部２３を備えて構成される。
【００２７】
送受信部２１は、データ信号線１４−１およびクロック信号線１４−２を介して、スレーブ１３と信号の送受信を行う。例えば、送受信部２１は、クロック信号線１４−２を駆動することにより送信するシリアルクロックのタイミングに合わせて、データ信号線１４−１に対する駆動を行う（電位をＨレベルまたはＬレベルに切り替える）ことにより、スレーブ１３に信号を送信する。また、送受信部２１は、クロック信号線１４−２のシリアルクロックのタイミングに合わせて、スレーブ１３がデータ信号線１４−１に対する駆動を行うことによって、スレーブ１３から送信されてくる信号を受信する。なお、クロック信号線１４−２に対する駆動は、常に、マスタ１２側により行われる。
【００２８】
監視部２２は、バスＩＦ１１の通信状況を監視し、例えば、正常に動作していないスレーブ１３があるか否かを判定する。例えば、バスＩＦ１１では、マスタ１２からスレーブ１３に送信される所定のコマンドに対し、スレーブ１３がマスタ１２にACK（Acknowledge）を送信する応答を行うことで、そのコマンドの受信が成功したことを確認するように規定されている。従って、監視部２２は、例えば、所定のスレーブ１３から応答がない場合に、そのスレーブ１３に対してリードコマンドの送信を所定回数行い、それでもスレーブ１３からの応答がない場合に、そのスレーブ１３は正常に動作していないものと判定することができる。
【００２９】
リカバリー信号送信指示部２３は、監視部２２により正常に動作していないスレーブ１３があると判定された場合、全てのスレーブ１３を対象として動作を復帰させることを指示するリカバリー信号（図２参照）を送信するように、送受信部２１に対して指示を行う。この指示に従い、送受信部２１がリカバリー信号を送信することで、正常に動作していないスレーブ１３の通信を回復させることができる。
【００３０】
スレーブ１３は、送受信部３１、エラー検出部３２、コマンド判断部３３、および、リカバリー処理部３４を備えて構成される。
【００３１】
送受信部３１は、データ信号線１４−１およびクロック信号線１４−２を介して、マスタ１２と信号の送受信を行う。例えば、送受信部３１は、クロック信号線１４−２のシリアルクロックのタイミングに合わせて、マスタ１２がデータ信号線１４−１に対する駆動を行うことによって、マスタ１２から送信されてくる信号を受信する。また、送受信部３１は、クロック信号線１４−２のシリアルクロックのタイミングに合わせて、データ信号線１４−１に対する駆動を行うことによって、マスタ１２に信号を送信する。
【００３２】
エラー検出部３２は、例えば、送受信部３１が受信した信号に対するパリティチェックや巡回冗長検査（CRC）などを行ったり、コマンドを構成するビット列を照合したりすることによって、送受信部３１が受信した信号に発生しているエラーを検出する。そして、エラー検出部３２は、例えば、送受信部３１が受信した信号にエラーが発生していることを検出した場合に、エラーに対する対応を行うこと、例えば、コマンドの再送信を要求することができる。さらに、エラー検出部３２は、例えば、送受信部３１が受信した信号にエラーが発生し、正常な通信を行うことができない場合には、その後の一切の通信を無視し、マスタ１２に対する応答を停止してスレーブ１３を待機状態とさせる。
【００３３】
コマンド判断部３３は、送受信部３１が受信した信号に含まれているコマンドの内容を判断し、それぞれのコマンドの内容に対応した処理を実行する各処理実行部（図示せず）に対して、コマンドに基づく処理を行うように指示する。
【００３４】
リカバリー処理部３４は、マスタ１２から送信されたリカバリー信号（図２参照）を送受信部３１が受信したか否かを判定する。そして、リカバリー処理部３４は、リカバリー信号を送受信部３１が受信したと判定した場合、マスタ１２との通信を回復する処理、例えば、マスタ１２により通信の開始が宣言されることを待機する待機状態に戻すリカバリー処理を実行する。
【００３５】
以上のようにバスＩＦ１１は構成されており、スレーブ１３が、マスタ１２に対する応答を停止し正常に動作していないとき、マスタ１２は、リカバリー信号を送信することで、スレーブ１３の通信を回復させることができる。
【００３６】
＜リカバリー信号の説明＞
【００３７】
図２を参照して、リカバリー信号について説明する。
【００３８】
図２には、マスタ１２からスレーブ１３に送信されるリカバリー信号の波形の一例が示されている。
【００３９】
図２に示すように、リカバリー信号は、ブロードキャストコマンド（0ｘ7E+R/W=0）、コモンコマンドコード（SREC CCC(0ｘ29)）、およびHDR終了コマンド（HDR Exit）が連続的に送信された直後に、通信の終了を宣言するストップコンディション（STOP）が出力される構成となっている。
【００４０】
ブロードキャストコマンドは、バスＩＦ１１を構成する全てのスレーブ１３を対象として一斉に送信されるコモンコマンドコードが、ブロードキャストコマンドに続いて送信されることを通知するコマンドである。なお、ブロードキャストコマンドの最後の１ビットは、ブロードキャストコマンドの受信に成功したスレーブ１３が送信するACKである。
【００４１】
コモンコマンドコードは、バスＩＦ１１を構成する全てのスレーブ１３を対象として一斉に送信されるコマンドであり、コモンコマンドコードごとにスレーブ１３において実行する指示が規定されている。なお、コモンコマンドコードの最後の１ビットは、コモンコマンドコードのエラーのチェックに用いられるパリティである。
【００４２】
そして、コモンコマンドコード（SREC CCC(0ｘ29)）では、正常に動作しているスレーブ１３では何も処理を行わないことが規定されている。従って、コモンコマンドコード（SREC CCC(0ｘ29)）を受信したスレーブ１３のコマンド判断部３３は、例えば、処理実行部に対して何も指示を行わずに、次のコマンドの送信を待機する。
【００４３】
HDR終了コマンドは、スレーブ１３に対してHDRモードの終了を指示し、HDRモードから抜け出して、例えば、通信を開始するときに用いられるSDRモードに移行することを指示する。
【００４４】
ストップコンディションは、通信の終了を宣言する信号（SDRモードの終了信号）であり、ストップコンディションを検出したスレーブ１３は、マスタ１２による通信の開始を待機する待機状態となる。
【００４５】
マスタ１２は、正常に動作していないスレーブ１３がある場合、このようなリカバリー信号を送信することで、そのスレーブ１３の通信を回復させることができる。
【００４６】
例えば、バスＩＦ１１での通信が、HDRモードからSDRモードに移行する際に、所定のスレーブ１３が受信したHDR終了コマンドにエラーが発生していた場合、そのスレーブ１３は、HDRモードのまま処理を行うことになってしまう。このとき、マスタ１２は、SDRモードとなっているため、HDRモードのままのスレーブ１３と通信を行うことができず、そのスレーブ１３は、マスタ１２に対する応答を停止して待機状態となる。
【００４７】
このような状況のときに、マスタ１２がリカバリー信号を送信すると、HDRモードのままのスレーブ１３は、リカバリー信号に含まれるHDR終了コマンドに従って、HDRモードからSDRモードに移行することができ、通信を回復することができる。
【００４８】
また、SDRモードのスレーブ１３であっても、信号にエラーが発生して、マスタ１２に対する応答を停止して待機状態となることがある。このようなスレーブ１３は、リカバリー信号の最後に出力されるストップコンディションを検出し、マスタ１２による通信の開始を待機する待機状態とすることができる。
【００４９】
そして、図２に示すようなリカバリー信号は、より短時間で送信することができ、バスＩＦ１１では、従来よりも、正常に動作していないスレーブ１３の通信を復帰させるのに要する時間を短縮することができる。さらに、リカバリー信号を用いることにより、正常に動作しいていたスレーブ１３に誤動作が発生することを回避することができる。
【００５０】
ここで、図３には、例えば、HDRモードのままのスレーブ１３に対して、HDR終了コマンドを送信して、スレーブ１３の通信を回復させるための波形の一例が示されている。
【００５１】
従来、HDR終了コマンドを送信するためには、HDRモードに移行する必要があったため、マスタ１２は、まず、ブロードキャストコマンド（0ｘ7E+R/W=0）を送信した後に、HDRモードの開始を指示するHDR開始コマンド（ENTHDR CCC(0ｘ20)）を送信する。これにより、マスタ１２は、SDRモードからHDRモードに移行し、HDRモードのうちのひとつであるDDRモードによるデータ転送（DDRコマンドやDDRデータなどの送信）を行った後に、HDR終了コマンド（HDR Exit）を送信することができる。
【００５２】
図３に示すように、従来、マスタ１２がHDR終了コマンドを送信するためには、HDRモードにおけるコマンドを送信する必要があり、このコマンドによって、正常に動作していたスレーブ１３に誤操作が発生することが懸念される。
【００５３】
例えば、マスタ１２がHDRモードのライトコマンドを送信すると、正常に動作していたスレーブ１３のレジスタに意図しない書き込みが行われる誤動作が想定される。また、マスタ１２がHDRモードのリードコマンドを送信すると、正常に動作していたスレーブ１３がリードクリアレジスタを備えていると、意図せずにレジスタが変更される誤動作が想定される。さらに、マスタ１２が、それらのコマンドに替えて規格に規定されていないパターンを送信すると、正常に動作していたスレーブ１３の実装に依存して予期しない誤動作が発生することが想定される。
【００５４】
これに対し、図２を参照して説明したリカバリー信号は、不必要なライトコマンドやリードコマンドなどが送信されることないので、これらの誤動作の発生を回避することができる。また、正常に動作しているスレーブ１３がリカバリー信号に含まれているコモンコマンドコード（SREC CCC(0ｘ29)）を受信しても、何も処理が行われることはないので、同様に、誤動作が発生することはない。
【００５５】
従って、バスＩＦ１１では、正常に動作していないスレーブ１３の通信を短時間で復帰させることができるとともに、正常に動作しているスレーブ１３で誤動作が発生することを回避することで、より確実に通信を行うことができる。
【００５６】
＜正常に動作していないスレーブの通信を回復させる通信方法＞
【００５７】
図４は、マスタ１２において行われる通信処理を説明するフローチャートである。
【００５８】
例えば、図示しない上位の制御装置から通信を行うようにマスタ１２に対する指示があると処理が開始される。そして、ステップＳ１１において、送受信部２１は、データ信号線１４−１およびクロック信号線１４−２を駆動し、スタートコンディションを出力（クロック信号線１４−２がＨレベルである状態でデータ信号線１４−１をＨレベルからＬレベルに駆動）して、通信の開始を宣言する。
【００５９】
ステップＳ１２において、送受信部２１は、データ信号線１４−１およびクロック信号線１４−２を介して、スレーブ１３と信号の送受信を行う。
【００６０】
ステップＳ１３において、監視部２２は、バスＩＦ１１の通信状況を監視した結果に基づいて、応答のないスレーブ１３があるか否かを判定する。ステップＳ１３において、監視部２２が、応答のないスレーブ１３がないと判定した場合、即ち、バスＩＦ１１を構成する全てのスレーブ１３から応答がある場合、処理はステップＳ１２に戻り、以下、同様に、スレーブ１３との通信が継続され、その通信が正常に終了した後、処理はステップＳ１１に戻って新たな通信を開始することができる。
【００６１】
一方、ステップＳ１３において、監視部２２が、応答のないスレーブ１３があると判定した場合、処理はステップＳ１４に進む。
【００６２】
ステップＳ１４において、監視部２２は、送受信部２１に対して、応答のないスレーブ１３にリードコマンドの送信を所定回数行うようにし指示し、送受信部２１は、リードコマンドの送信を行う。
【００６３】
ステップＳ１５において、監視部２２は、バスＩＦ１１の通信状況を監視した結果に基づいて、正常に動作していないスレーブ１３があるか否かを判定する。
【００６４】
例えば、ステップＳ１４で所定回数送信したリードコマンドに対してスレーブ１３から応答があれば、監視部２２は、ステップＳ１５において、正常に動作していないスレーブ１３がないと判定する。即ち、監視部２２は、ステップＳ１５において、スレーブ１３は正常に動作しているものと判定し、処理はステップＳ１２に戻り、以下、同様に、スレーブ１３との通信が継続され、その通信が正常に終了した後、処理はステップＳ１１に戻って新たな通信を開始することができる。
【００６５】
一方、ステップＳ１４で所定回数送信したリードコマンドに対してスレーブ１３から何も応答がなければ、監視部２２は、ステップＳ１５において、正常に動作していないスレーブ１３があると判定し、処理はステップＳ１６に進む。
【００６６】
ステップＳ１６において、リカバリー信号送信指示部２３は、監視部２２がステップＳ１５で正常に動作していないスレーブ１３があると判定したことに対応して、送受信部２１に対して、リカバリー信号を送信するように指示する。この指示に従い、送受信部２１がリカバリー信号を送信した後、処理はステップＳ１１に戻り、マスタ１２は、通信を最初からやり直すことができる。
【００６７】
図５は、スレーブ１３において行われる通信処理を説明するフローチャートである。
【００６８】
例えば、スレーブ１３は、マスタ１２による通信の開始を待機する待機状態となっている。ステップＳ２１において、送受信部３１は、マスタ１２により通信の開始が宣言されたか否かを判定し、マスタ１２により通信の開始が宣言されたと判定されるまで処理を待機する。
【００６９】
例えば、図４のステップＳ１１においてマスタ１２が出力するスタートコンディションを検出すると、ステップＳ２１において、送受信部３１は、マスタ１２により通信の開始が宣言されたと判定し、処理はステップＳ２２に進む。
【００７０】
ステップＳ２２において、送受信部３１は、データ信号線１４−１およびクロック信号線１４−２を介して、マスタ１２と信号の送受信を行う。
【００７１】
ステップＳ２３において、エラー検出部３２は、送受信部３１が受信した信号にエラーが発生しているか否かを判定する。
【００７２】
ステップＳ２３において、エラー検出部３２が、送受信部３１が受信した信号にエラーが発生していないと判定した場合、即ち、送受信部３１が受信した信号が正常なものである場合、処理はステップＳ２４に進む。
【００７３】
ステップＳ２４において、コマンド判断部３３は、送受信部３１が受信した信号に含まれているコマンドの内容を判断し、それぞれのコマンドの内容に対応した処理を実行する各処理実行部（図示せず）に対して、コマンドに基づく処理を行うように指示する。なお、送受信部３１がリカバリー信号を受信した場合、ステップＳ２４において、コマンド判断部３３は、図２のコモンコマンドコード（SREC CCC(0ｘ29)）に従い、スレーブ１３は正常に動作しているので、何も処理を行わずに次のコマンドの送信を待機する。その後、処理はステップＳ２２に戻り、以下、同様に、マスタ１２の通信が継続され、その通信が正常に終了した後、処理はステップＳ２１に戻って新たな通信が開始されることを待機することができる。
【００７４】
一方、ステップＳ２３において、エラー検出部３２が、送受信部３１が受信した信号にエラーが発生していると判定した場合、処理はステップＳ２５に進み、エラー検出部３２は、マスタ１２に対する応答を停止してスレーブ１３を待機状態とさせる。
【００７５】
ステップＳ２６において、リカバリー処理部３４は、マスタ１２から送信されたリカバリー信号を送受信部３１が受信したか否かを判定し、マスタ１２から送信されたリカバリー信号を送受信部３１が受信したと判定されるまで処理を待機する。
【００７６】
そして、ステップＳ２６において、リカバリー処理部３４が、マスタ１２から送信されたリカバリー信号を送受信部３１が受信したと判定すると、処理はステップＳ２１に戻り、スレーブ１３は、マスタ１２による通信の開始を待機する待機状態となる。
【００７７】
以上のように、マスタ１２がリカバリー信号を送信することで、正常に動作していないスレーブ１３の通信を短時間で復帰させることができるとともに、正常に動作しているスレーブ１３で誤動作が発生することを回避することができる。従って、マスタ１２およびスレーブ１３は、より確実に通信を行うことができる。
【００７８】
なお、例えば、リカバリー信号に含まれるコモンコマンドコードのパターンは、図２に示したようなパターン（0ｘ29）に限定されることなく、その他のパターンを、何も処理を行わないことが規定されたコモンコマンドコードに用いてもよい。また、コモンコマンドコード（SREC CCC(0ｘ29)）とHDR終了コマンドとの間に、誤動作を発生させないような他の信号を送信してもよい。
【００７９】
さらに、リカバリー信号には、必ずしも図２に示したような形式が用いられなくてもよい。例えば、バスＩＦ１１では、図２に示したような形式のリカバリー信号に替えて、より短いパターンで、正常に動作していないスレーブ１３に対して、HDRモードから抜け出すように指示するリカバリー信号を用いることができる。
【００８０】
即ち、図６に示すように、バスＩＦ１１では、リカバリー信号として、通信の開始を宣言するスタートコンディション（START）を出力した直後に、HDR終了コマンド（HDR EXIT）を送信し、その後、ストップコンディション（STOP）を出力する形式を用いることができる。これにより、HDRモードから抜け出すことができずに応答を停止しているスレーブ１３の通信を回復させることができる。
【００８１】
また、マスタ１２が、HDRモードのままのスレーブ１３と通信を行うことができないと認識していれば、コモンコマンドコード（SREC CCC(0ｘ29)）に続けてHDR終了コマンドを送信するだけで、スレーブ１３の通信を回復させることができる。また、マスタ１２が、SDRモードのスレーブ１３が応答を停止していると認識していれば、コモンコマンドコード（SREC CCC(0ｘ29)）に続けてストップコンディションを送信するだけで、スレーブ１３の通信を回復させることができる。
【００８２】
なお、本技術は、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１０４にインストールしたり、更新したりすることができる。
【００９０】
なお、本技術は以下のような構成も取ることができる。
（１）
他の通信装置と信号の送受信を行う送受信部と、
正常に動作している前記他の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記他の通信装置に対して通信を回復させるリカバリー信号を送信するように、前記送受信部に指示するリカバリー信号送信指示部と
を備える通信装置。
（２）
前記送受信部は、
通信速度が異なる複数の通信モードで前記他の通信装置と通信を行うことができ、
前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される前記リカバリー信号を送信する
上記（１）に記載の通信装置。
（３）
前記送受信部は、前記第２のコマンドが送信された直後に、前記特定の通信モードとは別の通信モードにおける通信の終了を宣言する信号を出力する
上記（２）に記載の通信装置。
（４）
前記送受信部は、前記第１のコマンドを送信する直前に、全ての前記他の通信装置を対象として一斉に送信されるコマンドの送信を通知するブロードキャストコマンドを送信する
上記（１）から（３）までのいずれかに記載の通信装置。
（５）
複数の前記他の通信装置との通信を監視し、正常に動作していない前記他の通信装置があるか否かを判定する監視部
をさらに備える上記（１）から（４）までのいずれかに記載の通信装置。
（６）
前記リカバリー信号として、前記第１のコマンドを含む形式に替えて、通信の開始を宣言する信号、前記第２のコマンド、および、前記通信の終了を宣言する信号を含む形式が用いられる
上記（３）に記載の通信装置。
（７）
他の通信装置と信号の送受信を行い、
正常に動作している前記他の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記他の通信装置に対して通信を回復させるリカバリー信号を送信する
ステップを含む通信方法。
（８）
他の通信装置と信号の送受信を行い、
正常に動作している前記他の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記他の通信装置に対して通信を回復させるリカバリー信号を送信する
ステップを含む通信処理をコンピュータに実行させるプログラム。
（９）
他の通信装置と信号の送受信を行う送受信部と、
前記送受信部が受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示するコマンド判断部と、
前記送受信部が受信した信号にエラーが発生して、前記他の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を前記送受信部が受信したとき、前記他の通信装置との通信を回復する処理を行うリカバリー処理部と
を備え、
前記リカバリー信号には、正常に動作しているときには何も処理を行わないことが規定されている第１のコマンドが少なくとも含まれる
通信装置。
（１０）
前記コマンド判断部は、前記送受信部が前記リカバリー信号を受信したとき、前記第１のコマンドに従って何も処理を行わずに、次のコマンドの受信を待機する
上記（９）に記載の通信装置。
（１１）
前記送受信部は、通信速度が異なる複数の通信モードで前記他の通信装置と通信を行うことができ、
前記リカバリー信号では、前記複数の通信モードのうち、特定の通信モードの終了を指示する第２のコマンドが、前記第１のコマンドに続いて送信される
上記（９）または（１０）に記載の通信装置。
（１２）
前記リカバリー信号では、前記第２のコマンドが送信された直後に、通信の終了を宣言する信号が出力される
上記（１１）に記載の通信装置。
（１３）
前記リカバリー信号では、前記第１のコマンドを送信する直前に、全ての前記他の通信装置を対象として一斉に送信されるコマンドの送信を通知するブロードキャストコマンドが送信される
上記（９）から（１２）までのいずれかに記載の通信装置。
（１４）
前記送受信部が受信した信号に発生しているエラーを検出した場合に、前記他の通信装置に対する応答を停止させるエラー検出部
をさらに備える上記（９）から（１３）までのいずれかに記載の通信装置。
（１５）
前記リカバリー信号として、前記第１のコマンドを含む形式に替えて、通信の開始を宣言する信号、前記第２のコマンド、および、前記通信の終了を宣言する信号を含む形式が用いられる
上記（１２）に記載の通信装置。
（１６）
他の通信装置と信号の送受信を行い、
受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示し、
受信した信号にエラーが発生して、前記他の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を受信したとき、前記他の通信装置との通信を回復する処理を行う
ステップを含み、
前記リカバリー信号には、正常に動作しているときには何も処理を行わないことが規定されている第１のコマンドが少なくとも含まれる
通信方法。
（１７）
他の通信装置と信号の送受信を行い、
受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示し、
受信した信号にエラーが発生して、前記他の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を受信したとき、前記他の通信装置との通信を回復する処理を行う
ステップを含み、
前記リカバリー信号には、正常に動作しているときには何も処理を行わないことが規定されている第１のコマンドが少なくとも含まれる
通信処理をコンピュータに実行させるプログラム。
（１８）
第２の通信装置と信号の送受信を行う第１の送受信部と、
正常に動作している前記第２の通信装置では何も処理を行わないことが規定されている第１のコマンドを少なくとも含み、正常に動作していない前記第２の通信装置に対して通信を回復させるリカバリー信号を送信するように、前記第１の送受信部に指示するリカバリー信号送信指示部と
を有する第１の通信装置と、
第１の通信装置と信号の送受信を行う第２の送受信部と、
前記第２の送受信部が受信した信号に含まれているコマンドの内容を判断して、前記コマンドに基づく処理を行うように指示するコマンド判断部と、
前記第２の送受信部が受信した信号にエラーが発生して、前記第１の通信装置に対する応答を停止している場合に、通信を回復させるリカバリー信号を前記第２の送受信部が受信したとき、前記第１の通信装置との通信を回復する処理を行うリカバリー処理部と
を有する第２の通信装置と
を備える通信システム。
【００９１】
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【００９２】
１１  バスＩＦ，  １２  マスタ，  １３  スレーブ，  １４−１  データ信号線，  １４−２  クロック信号線，  ２１  送受信部，  ２２  監視部，  ２３  リカバリー信号送信指示部，  ３１  送受信部，  ３２  エラー検出部，  ３３  コマンド判断部，  ３４  リカバリー処理部
【図１】
0006739983.tif 000002
【図２】
0006739983.tif 000003
【図３】
0006739983.tif 000004
【図４】
0006739983.tif 000005
【図５】
0006739983.tif 000006
【図６】
0006739983.tif 000007
【図７】
0006739983.tif 000008