(57)【要約】  本開示は、より確実に通信を行うことができるようにする通信装置、通信方法、プログラム、および、通信システムに関する。スレーブのエラー検出部は、マスタが通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台のスレーブすべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、その１ワード目にエラーが発生していることを検出する。本技術は、例えば、バスＩＦに適用できる。
2017061330.tif 000002
【特許請求の範囲】
【請求項１】
バスを介して通信を行う通信装置であって、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出する
通信装置。
【請求項２】
バスを介して通信を行う通信装置の通信方法であって、
前記通信装置は、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出する
ステップを含む通信方法。
【請求項３】
バスを介して通信を行う通信装置のコンピュータに実行させるプログラムであって、
前記通信装置は、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出する
ステップを含むプログラム。
【請求項４】
複数台の通信装置がバスを介して通信を行う通信システムであって、
前記通信装置それぞれが、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出する
通信システム。
【請求項５】
バスを介して通信を行う第１の通信装置であって、
少なくとも１台以上の第２の通信装置との間で、信号の送受信を行う送受信部を備え、
前記信号の送受信は、前記バスを介した通信の主導権を有する前記第１の通信装置と、前記第１の通信装置による制御に従って通信を行う、少なくとも１台以上の前記第２の通信装置それぞれとの間で行われ、
前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信される、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記第２の通信装置それぞれのエラー検出部は、前記１ワード目にエラーが発生していることを検出する
通信装置。
【請求項６】
前記送受信部が前記信号を送受信すると、前記信号にエラーが発生していることを検出するように設定されているエラー検出部をさらに備える
請求項５に記載の通信装置。
【請求項７】
前記第１の通信装置はマスタであり、前記第２の通信装置それぞれはスレーブである
請求項５に記載の通信装置。
【請求項８】
バスを介して通信を行う第２の通信装置であって、
第１の通信装置による制御に従って、前記第１の通信装置との間で信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号にエラーが発生していることを検出するエラー検出部と
を備え、
前記第１の通信装置が通信を開始した後に、前記第１の通信装置が送信してくるフレームにおける先頭の１ワード目おいて、ブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記エラー検出部は、前記１ワード目にエラーが発生していることを検出する
通信装置。
【請求項９】
前記ブロードキャストコマンドは、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを前記第１の通信装置から通知する
請求項８に記載の通信装置。
【請求項１０】
前記１ワード目には、データの読み出しまたは書き込みの要求を表す１ビットが、前記ブロードキャストコマンドに続いて含まれる
請求項９に記載の通信装置。
【請求項１１】
前記フレームのワード長は、９ビットである
請求項１０に記載の通信装置。
【請求項１２】
前記１ワード目には、ＡＣＫ（acknowledge）ビットが含まれる
請求項１１に記載の通信装置。
【請求項１３】
前記１ワード目には、スタートコンディションビットが含まれない
請求項８に記載の通信装置。
【請求項１４】
前記ブロードキャストコマンドは、７ビットで構成される
請求項８に記載の通信装置。
【請求項１５】
前記ブロードキャストコマンドは、0x7Eである
請求項８に記載の通信装置。
【請求項１６】
バスを介して通信を行う通信装置であって、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、動的なアドレスの割り当てを開始してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後に送信される１ワードに、その１ワードとして送信されることが予め規定されているビット列が配置されているか否かを確認するエラー検出方法により、前記１ワードに発生するエラーを検出する
通信装置。
【請求項１７】
バスを介して通信を行う通信装置の通信方法であって、
前記通信装置は、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、動的なアドレスの割り当てを開始してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後に送信される１ワードに、その１ワードとして送信されることが予め規定されているビット列が配置されているか否かを確認するエラー検出方法により、前記１ワードに発生するエラーを検出する
ステップを含む通信方法。
【請求項１８】
バスを介して通信を行う通信装置のコンピュータに実行させるプログラムであって、
前記通信装置は、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、動的なアドレスの割り当てを開始してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後に送信される１ワードに、その１ワードとして送信されることが予め規定されているビット列が配置されているか否かを確認するエラー検出方法により、前記１ワードに発生するエラーを検出する
ステップを含むプログラム。
【請求項１９】
複数台の通信装置がバスを介して通信を行う通信システムであって、
前記通信装置それぞれが、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、動的なアドレスの割り当てを開始してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後に送信される１ワードに、その１ワードとして送信されることが予め規定されているビット列が配置されているか否かを確認するエラー検出方法により、前記１ワードに発生するエラーを検出する
通信システム。
【請求項２０】
バスを介して通信を行う第１の通信装置であって、
少なくとも１台以上の第２の通信装置との間で、信号の送受信を行う送受信部を備え、
前記信号の送受信は、前記バスを介した通信の主導権を有する前記第１の通信装置と、前記第１の通信装置による制御に従って通信を行う、少なくとも１台以上の前記第２の通信装置それぞれとの間で行われ、
動的なアドレスの割り当てを開始してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後に送信される１ワードに、その１ワードとして送信されることが予め規定されているビット列が配置されているか否かを確認するエラー検出方法により、前記第２の通信装置それぞれのエラー検出部は、前記１ワードに発生するエラーを検出する
通信装置。
【請求項２１】
前記送受信部が前記信号を送受信すると、前記信号にエラーが発生していることを検出するように設定されているエラー検出部をさらに備える
請求項２０に記載の通信装置。
【請求項２２】
前記第１の通信装置はマスタであり、前記第２の通信装置それぞれはスレーブである
請求項２０に記載の通信装置。
【請求項２３】
バスを介して通信を行う第２の通信装置であって、
第１の通信装置による制御に従って、前記第１の通信装置との間で信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号にエラーが発生していることを検出するエラー検出部と
を備え、
動的なアドレスの割り当てを開始してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後に送信される１ワードに、その１ワードとして送信されることが予め規定されているビット列が配置されているか否かを確認するエラー検出方法により、前記エラー検出部は、前記１ワードに発生するエラーを検出する
通信装置。
【請求項２４】
バスを介して通信を行う通信装置であって、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記エラー検出部は、複数台の前記他の通信装置に対して共通のコマンドコードを送信するトランザクションが確定した後に送信されてくるデータのフォーマットが、予め規定されているフォーマットとは異なっているか否かを確認するエラー検出方法により、前記データに発生するエラーを検出する
通信装置。
【請求項２５】
バスを介して通信を行う通信装置の通信方法であって、
前記通信装置は、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記エラー検出部は、複数台の前記他の通信装置に対して共通のコマンドコードを送信するトランザクションが確定した後に送信されてくるデータのフォーマットが、予め規定されているフォーマットとは異なっているか否かを確認するエラー検出方法により、前記データに発生するエラーを検出する
ステップを含む通信方法。
【請求項２６】
バスを介して通信を行う通信装置のコンピュータに実行させるプログラムであって、
前記通信装置は、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記エラー検出部は、複数台の前記他の通信装置に対して共通のコマンドコードを送信するトランザクションが確定した後に送信されてくるデータのフォーマットが、予め規定されているフォーマットとは異なっているか否かを確認するエラー検出方法により、前記データに発生するエラーを検出する
ステップを含むプログラム。
【請求項２７】
複数台の通信装置がバスを介して通信を行う通信システムであって、
前記通信装置それぞれが、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記エラー検出部は、複数台の前記他の通信装置に対して共通のコマンドコードを送信するトランザクションが確定した後に送信されてくるデータのフォーマットが、予め規定されているフォーマットとは異なっているか否かを確認するエラー検出方法により、前記データに発生するエラーを検出する
通信システム。
【請求項２８】
バスを介して通信を行う第１の通信装置であって、
少なくとも１台以上の第２の通信装置との間で、信号の送受信を行う送受信部を備え、
前記信号の送受信は、前記バスを介した通信の主導権を有する前記第１の通信装置と、前記第１の通信装置による制御に従って通信を行う、少なくとも１台以上の前記第２の通信装置それぞれとの間で行われ、
複数台の前記第２の通信装置に対して共通のコマンドコードを送信するトランザクションが確定した後に送信されてくるデータのフォーマットが、予め規定されているフォーマットとは異なっているか否かを確認するエラー検出方法により、前記第２の通信装置それぞれのエラー検出部は、前記データに発生するエラーを検出する
通信装置。
【請求項２９】
前記送受信部が前記信号を送受信すると、前記信号にエラーが発生していることを検出するように設定されているエラー検出部をさらに備える
請求項２８に記載の通信装置。
【請求項３０】
前記第１の通信装置はマスタであり、前記第２の通信装置それぞれはスレーブである
請求項２８に記載の通信装置。
【請求項３１】
バスを介して通信を行う第２の通信装置であって、
第１の通信装置による制御に従って、前記第１の通信装置との間で信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号にエラーが発生していることを検出するエラー検出部と
を備え、
複数台の前記第２の通信装置に対して共通のコマンドコードを送信するトランザクションが確定した後に送信されてくるデータのフォーマットが、予め規定されているフォーマットとは異なっているか否かを確認するエラー検出方法により、前記エラー検出部は、前記データに発生するエラーを検出する
通信装置。
【請求項３２】
バスを介して通信を行う通信装置であって、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第２の通信装置から信号を送出するタイミングで、その送出した信号と前記バス上の信号とが一致しているか否かを常に監視するエラー検出方法により、前記信号に発生するエラーを検出する
通信装置。
【請求項３３】
バスを介して通信を行う通信装置の通信方法であって、
前記通信装置は、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第２の通信装置から信号を送出するタイミングで、その送出した信号と前記バス上の信号とが一致しているか否かを常に監視するエラー検出方法により、前記信号に発生するエラーを検出する
ステップを含む通信方法。
【請求項３４】
バスを介して通信を行う通信装置のコンピュータに実行させるプログラムであって、
前記通信装置は、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第２の通信装置から信号を送出するタイミングで、その送出した信号と前記バス上の信号とが一致しているか否かを常に監視するエラー検出方法により、前記信号に発生するエラーを検出する
ステップを含むプログラム。
【請求項３５】
複数台の通信装置がバスを介して通信を行う通信システムであって、
前記通信装置それぞれが、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第２の通信装置から信号を送出するタイミングで、その送出した信号と前記バス上の信号とが一致しているか否かを常に監視するエラー検出方法により、前記信号に発生するエラーを検出する
通信システム。
【請求項３６】
バスを介して通信を行う第１の通信装置であって、
少なくとも１台以上の第２の通信装置との間で、信号の送受信を行う送受信部を備え、
前記信号の送受信は、前記バスを介した通信の主導権を有する前記第１の通信装置と、前記第１の通信装置による制御に従って通信を行う、少なくとも１台以上の前記第２の通信装置それぞれとの間で行われ、
前記第２の通信装置から信号を送出するタイミングで、その送出した信号と前記バス上の信号とが一致しているか否かを常に監視するエラー検出方法により、前記第２の通信装置それぞれのエラー検出部は、前記信号に発生するエラーを検出する
通信装置。
【請求項３７】
前記送受信部が前記信号を送受信すると、前記信号にエラーが発生していることを検出するように設定されているエラー検出部をさらに備える
請求項３６に記載の通信装置。
【請求項３８】
前記第１の通信装置はマスタであり、前記第２の通信装置それぞれはスレーブである
請求項３６に記載の通信装置。
【請求項３９】
バスを介して通信を行う第２の通信装置であって、
第１の通信装置による制御に従って、前記第１の通信装置との間で信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号にエラーが発生していることを検出するエラー検出部と
を備え、
前記第２の通信装置から信号を送出するタイミングで、その送出した信号と前記バス上の信号とが一致しているか否かを常に監視するエラー検出方法により、前記エラー検出部は、前記信号に発生するエラーを検出する
通信装置。
【請求項４０】
前記第１の通信装置は、前記フレームの２ワード目に続いて送信されるパリティビットによる誤り検出の対象に、そのフレームの先頭から２ワード分が含まれるように、前記パリティビットを設定する
請求項１に記載の通信装置。
【請求項４１】
前記第２の通信装置の前記エラー検出部は、前記フレームの先頭から２ワード目に続いて送信されるパリティビットを用いて、そのフレームの先頭から２ワード分のビット列に対してパリティチェックを行うエラー検出方法により、前記２ワード分に発生するエラーを検出する
請求項４０に記載の通信装置。
【請求項４２】
前記第２の通信装置の前記エラー検出部は、動的なアドレスの割り当てを開始してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後に送信される１ワードに、その１ワードとして送信されることが予め規定されているビット列が配置されているか否かを確認するエラー検出方法により、前記１ワードに発生するエラーを検出する
請求項１に記載の通信装置。
【請求項４３】
前記エラー検出部は、複数台の前記他の通信装置に対して共通のコマンドコードを送信するトランザクションが確定した後に送信されてくるデータのフォーマットが、予め規定されているフォーマットとは異なっているか否かを確認するエラー検出方法により、前記データに発生するエラーを検出する
請求項１に記載の通信装置。
【請求項４４】
前記第２の通信装置の前記エラー検出部は、前記第２の通信装置から信号を送出するタイミングで、その送出した信号と前記バス上の信号とが一致しているか否かを常に監視するエラー検出方法により、前記信号に発生するエラーを検出する
請求項１に記載の通信装置。
【請求項４５】
前記通信装置から信号を出力する信号線に流れる電流を監視する電流監視回路をさらに備え、
前記エラー検出部は、前記通信装置自身から信号を送出するタイミングで、その送出した信号と前記バス上の信号が一致しているか否かを、前記電流監視回路により常に監視されている電流に基づいて確認するエラー検出方法により、前記信号に発生するエラーを検出する
請求項１に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、通信装置、通信方法、プログラム、および、通信システムに関し、特に、より確実に通信を行うことができるようにした通信装置、通信方法、プログラム、および、通信システムに関する。
【背景技術】
【０００２】
従来、複数のデバイスが実装されたボード内でバスを介したデバイス間の通信に用いられるバスＩＦ（Interface）として、例えば、I2C（Inter-Integrated Circuit）が多く利用されている。また、近年、I2Cの高速化を実現することが求められており、次世代の規格としてI3C（Improved Inter Integrated Circuit）の規定が進行している。【０００３】
例えば、特許文献１には、ホスト・プロセッサとサブシステム・コントローラとを、I2Cにより相互接続するディジタル・データ処理システムが開示されている。また、特許文献２には、標準I2Cプロトコルの上部に層状に配置された通信プロトコルを実現する方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−９９４４８号公報
【特許文献２】特開２００２−１７５２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、バスを介して通信を行うデバイス間で送受信される信号にエラーが発生したとき、エラーの発生を検出することができずに通信を継続するデバイスがあった場合、そのデバイスは、通信のスタートやストップなどを誤検出することが想定される。この場合、そのデバイスが通信不能となる可能性もあり、確実な通信を行うことが困難となってしまう。【０００６】
本開示は、このような状況に鑑みてなされたものであり、より確実に通信を行うことができるようにするものである。
【課題を解決するための手段】
【０００７】
本開示の一側面の通信装置は、バスを介して通信を行う通信装置であって、少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部とを備え、前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出する。【０００８】
本開示の一側面の通信方法またはプログラムは、バスを介して通信を行う通信装置の通信方法、または、バスを介して通信を行う通信装置のコンピュータに実行させるプログラムであって、前記通信装置は、少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部とを備え、前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出するステップを含む。【０００９】
本開示の一側面の通信システムは、複数台の通信装置がバスを介して通信を行う通信システムであって、前記通信装置それぞれが、少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部とを備え、前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出する。【００１０】
本開示の一側面においては、通信装置に、少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、送受信部が信号を送受信すると、信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部とが備えられる。また、バスを介した通信の主導権を有する通信装置である第１の通信装置と、第１の通信装置による制御に従って通信を行う通信装置である第２の通信装置との間で信号の送受信が行われる。そして、第２の通信装置のエラー検出部は、第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、１ワード目にエラーが発生していることが検出される。
【発明の効果】
【００１１】
本開示の一側面によれば、より確実に通信を行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本技術を適用したバスＩＦの一実施の形態の構成例を示すブロック図である。
【図２】伝送方式をSDRからHDRに切り替えてデータを伝送する一例を示す図である。
【図３】複数台のスレーブに一斉にデータを書き込むCCCの通信が行われるときのエラー検出方法を示す図である。
【図４】スレーブごとにアドレスで指定してデータを書き込むCCCの通信が行われるときのエラー検出方法を示す図である。
【図５】スレーブごとにアドレスで指定してデータを読み出すCCCの通信が行われるときのエラー検出方法を示す図である。
【図６】CCC（ENTDAA）による通信が行われるときのエラー検出方法を示す図である。
【図７】スタートコンディションから開始して、プライベートな書き込みを転送する通信が行われるときのエラー検出方法を示す図である。
【図８】プライベートな書き込みを転送する通信が行われるときのエラー検出方法を示す図である。
【図９】スタートコンディションから開始して、プライベートな読み出しを転送する通信が行われるときのエラー検出方法を示す図である。
【図１０】プライベートな読み出しを転送する通信が行われるときのエラー検出方法を示す図である。
【図１１】HDR-DDRモードでデータを書き込む通信が行われるときのエラー検出方法を示す図である。
【図１２】HDR-DDRモードでデータを読み出す通信が行われるときのエラー検出方法を示す図である。
【図１３】HDR-TSL/TSPでデータを書き込む通信が行われるときのエラー検出方法を示す図である。
【図１４】HDR-TSL/TSPでデータを読み出す通信が行われるときのエラー検出方法を示す図である。
【図１５】衝突検出回路について説明する図である。
【図１６】通常時および衝突時における電流の変化の例を示す図である。
【図１７】HDR終了コマンドおよびストップコンディションの送信を説明する図である。
【図１８】スレーブにおいて行われるエラー検出処理を説明するフローチャートである。
【図１９】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００１４】
＜バスＩＦの構成例＞
【００１５】
図１は、本技術を適用したバスＩＦの一実施の形態の構成例を示すブロック図である。
【００１６】
図１に示されているバスＩＦ１１は、マスタ１２と３台のスレーブ１３−１乃至１３−３とが、２本の信号線１４−１および１４−２を介して接続されて構成される。また、バスＩＦ１１では、通信速度が異なる複数の伝送方式が規定されており、マスタ１２は、それらの伝送方式を切り替えることができる。例えば、バスＩＦ１１では、データの転送レートに応じて、通常の転送レートでデータを送信するSDR（Standard Data Rate）と、SDRよりも高い転送レートでデータを送信するHDR（High Data Rate）とが規定されている。
【００１７】
マスタ１２は、バスＩＦ１１における制御の主導権を有しており、信号線１４−１および１４−２を介してスレーブ１３−１乃至１３−３と通信を行う。
【００１８】
図示するように、マスタ１２は、送受信部２１、エラー検出部２２、およびエラー対策部２３を備えて構成される。
【００１９】
送受信部２１は、バスＩＦ１１を介して、スレーブ１３−１乃至１３−３と信号の送受信を行う。
【００２０】
エラー検出部２２は、送受信部２１が信号を送受信すると、信号の送受信に応じた特定のエラー検出方法により、送受信した信号にエラーが発生しているか否かを検出する。例えば、エラー検出部２２は、送受信部２１が受信した信号の所定箇所に発生したエラーを、その所定箇所ごとのエラー検出方法により検出する。また、エラー検出部２２は、送受信部２１が送信した信号が衝突することにより発生するエラーを、信号線１４−１を監視するエラー検出方法により検出する。
【００２１】
エラー対策部２３は、スレーブ１３においてエラーを検出可能とするためのエラー対策を行う。即ち、エラー対策部２３は、後述するように、例えば、通信を開始した後に送信するフレームの１ワード目で所定のアドレスの使用を禁止したり、通信を開始した後に送信するフレームから２ワード分が含まれるように１ビットパリティによりパリティチェックを行える範囲を設定する。
【００２２】
スレーブ１３−１乃至１３−３は、マスタ１２による制御に従って、信号線１４−１および１４−２を介してマスタ１２と通信を行うことができる。なお、スレーブ１３−１乃至１３−３は、それぞれ同様に構成されており、以下、それらを区別する必要がない場合、単にスレーブ１３と称し、スレーブ１３を構成する各ブロックについても同様とする。
【００２３】
図示するように、スレーブ１３は、送受信部３１およびエラー検出部３２を備えて構成される。
【００２４】
送受信部３１は、バスＩＦ１１を介して、マスタ１２の送受信部２１と信号の送受信を行う。
【００２５】
エラー検出部３２は、送受信部３１が信号を送受信すると、信号の送受信に応じた特定のエラー検出方法により、送受信した信号にエラーが発生しているか否かを検出する。例えば、エラー検出部３２は、送受信部３１が受信した信号の所定箇所に発生したエラーを、その所定箇所ごとのエラー検出方法により検出する。また、エラー検出部３２は、送受信部３１が送信した信号が衝突することにより発生するエラーを、信号線１４−１を監視するエラー検出方法により検出する。
【００２６】
信号線１４−１および１４−２は、マスタ１２およびスレーブ１３の間で信号を伝送するのに用いられる。例えば、信号線１４−１を介して、１ビットずつ逐次的にシリアルデータ（SDA：Serial Data）が伝送され、信号線１４−２を介して、所定の周波数のシリアルクロック（SCL：Serial Clock）が伝送される。
【００２７】
このように構成されるバスＩＦ１１において、マスタ１２は、スレーブ１３−１乃至１３−３すべてを対象として一斉にデータを伝送したり、スレーブ１３−１乃至１３−３それぞれをアドレスで指定して個々にデータを伝送したりすることができる。
【００２８】
そして、上述したように、マスタ１２およびスレーブ１３は、SDRとHDRとで伝送方式を切り替えてデータを送受信することができる。
【００２９】
例えば、図２には、バスＩＦ１１において、伝送方式をSDRからHDRに切り替えてデータを伝送する一例が示されている。
【００３０】
まず、マスタ１２は、バスＩＦ１１を介してスレーブ１３−１乃至１３−３にスタートコンディション（S or Sr）を出力して、通信の開始を宣言する。例えば、バスＩＦ１１において通信が行われていない待機状態においてSDAおよびSCLは共にＨレベルとされ、マスタ１２は、SCLがＨレベルである状態でSDAをＨレベルからＬレベルに変化させることで、スタートコンディションを出力する。なお、通信の開始時における伝送方式は、SDRに設定されている。
【００３１】
そして、マスタ１２は、フレームの先頭の１ワード目に、スレーブ１３−１乃至１３−３すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンド（I3C Reserved byte）を送信し、続いて、ACK（Acknowledge）を用いた受信成功確認を行う。例えば、スレーブ１３−１乃至１３−３それぞれは、ブロードキャストコマンドの受信が完了すると受信完了通知としてACK（例えば、１ビットの０）を返送する。従って、マスタ１２は、ACKが返送されたことによって、ブロードキャストコマンドの受信に成功したことを確認する。
【００３２】
その後、マスタ１２は、フレームの先頭から２ワード目に、伝送方式をHDRに切り替えることを指示するコモンコマンドコード（I3C Modal Broadcast CCC (ENTHDR)）をスレーブ１３−１乃至１３−３に送信し、続いて、１ビットパリティ（T）を送信する。この１ビットパリティは、スレーブ１３−１乃至１３−３において、コモンコマンドコードの誤りを検出するのに用いられる。
【００３３】
このように、伝送方式をHDRに切り替えることを指示するコモンコマンドコードを送信した後、マスタ１２は、HDRでデータの伝送を開始し、HDRコマンドやHDRデータなどを送信する。そして、マスタ１２は、HDRによる伝送を終了させるときに、HDRから抜け出すことを指示するHDR終了コマンド（HDR Exit）を送信する。
【００３４】
その後、マスタ１２は、バスＩＦ１１を介してスレーブ１３−１乃至１３−３にストップコンディション（P）を出力して、通信の終了を宣言する。例えば、マスタ１２は、SCLがＨレベルである状態でSDAをＬレベルからＨレベルに変化させることで、バスＩＦ１１をストップコンディションにする。なお、バスＩＦ１１では、SDR時には通信の開始または終了を宣言するとき以外では、SCLがＨレベルであるときに、SDAが変化することがないように規定されている。
【００３５】
ところで、スレーブ１３−１乃至１３−３のうち、いずれか１台でもコモンコマンドコードを正常に受信することができなければ、そのスレーブ１３は、伝送方式がHDRに遷移したことを認識することができない。そのため、伝送方式がHDRに遷移したことを認識することができなかったスレーブ１３が、HDRで伝送されるデータを誤って解釈した場合、バスＩＦ１１に悪影響を及ぼしてしまうことがあり、安全な通信を行うことができない状態になることが想定される。
【００３６】
即ち、仮に、特定のスレーブ１３において、フレームの先頭の２ワード（0x7E + R/W + CCC[ENTHDR]）で１ビットエラーが発生した場合、そのスレーブ１３だけがSDRを継続することになる。このため、そのスレーブ１３が、スタートコンディション（S or Sr）またはストップコンディション（P）を誤検出することが想定され、確実な通信を行うことが困難となる。
【００３７】
そこで、以下では、特に重要な、フレームの先頭の２ワードでエラーが発生した場合に、そのエラーを検出する方法を提案し、マスタ１２またはスレーブ１３が、フレームの先頭の２ワードでエラーを検出したときに、無事に復帰させるためにとるべき手段を新たに提案する。さらに、フレームの先頭の２ワード以外の場所で発生したエラーに対しても、エラー検出する方法についても提案する。また、仮に、スレーブ１３が何の反応も示さない場合に、マスタ１２がスレーブ１３を復帰させる一手法として、HDR終了コマンド（HDR Exit）およびストップコンディション（P）を送出する手法を提案する。なお、本実施の形態では、１ビットエラーのみが発生することを前提として説明を行う。
【００３８】
なお、以下適宜、スレーブ１３が、１ワード目のエラーの検出を行わずに、２ワード目のパリティチェックのみでエラーの検出を行うエラー検出方法を、スレーブ１３のエラー検出方法（S0）とも称する。
【００３９】
＜スレーブ側における第１のエラー検出方法＞
【００４０】
スレーブ１３による第１のエラー検出方法は、SDRで信号を伝送するモードにおいて、フレーム先頭の２ワード（9bit×2）に発生するエラーを検出する方法である。
【００４１】
例えば、図２を参照して上述したように、伝送方式をSDRからHDRに切り替えてデータを伝送するとき、マスタ１２は、バスＩＦ１１をスタートコンディションにした後、ブロードキャストコマンドを送信する。このとき、バスＩＦ１１では、フレーム先頭の１ワード目で送信されるビット列は、図２に示したように、ブロードキャストコマンドを表す７ビット（0x7E）、および、データの読み出しまたは書き込みの要求を表す１ビットが書き込みを示す（R/W=0）ことが定義されている。
【００４２】
従って、スレーブ１３のエラー検出部３２は、フレーム先頭の１ワード目で送信されるべきビット列（0x7E+R/W=0：111_1110_0）のうちの、いずれか１ビットが反転されたビット列が、その１ワード目に配置されているか否かを確認する。そして、そのようなビット列が１ワード目に配置されていることが確認された場合、エラー検出部３２は、フレーム先頭の１ワード目にエラーが発生したことを検出することができる。
【００４３】
また、スレーブ１３のエラー検出部３２は、フレーム先頭の２ワード目については、コモンコマンドコード（I3C Modal Broadcast CCC）に続いて送信される１ビットパリティ（T）を用いてパリティチェックを行うことにより、エラーの発生を検出することができる。
【００４４】
このように、スレーブ１３による第１のエラー検出方法は、フレーム先頭の１ワード目については、ビット列（0x7E+R/W=0：111_1110_0）に対して１ビットエラーが取り得る８通りの組み合わせのビット列（0x3E+R/W=0：011_1110_0）、ビット列（0x5E+R/W=0：101_1110_0）、ビット列（0x6E+R/W=0：110_1110_0）、ビット列（0x76+R/W=0：111_0110_0）、ビット列（0x7A+R/W=0：111_1010_0）、ビット列（0x7C+R/W=0：111_1100_0）、ビット列（0x7F+R/W=0：111_1111_0）、および、ビット列（0x7E+R/W=1：011_1110_1）が受信されたとき、そして、フレーム先頭の２ワード目については、パリティチェック結果に従って、エラーの発生を検出する検出方法である。
【００４５】
なお、以下適宜、スレーブ１３による第１のエラー検出方法のうち、フレーム先頭の１ワード目で送信されるブロードキャストコマンドを表す７ビット（0x7E）のいずれか１ビットが反転した７通りのビット列（0x3E，0x5E，0x6E，0x76，0x7A，0x7C，0x7F）が受信されたことによるエラー検出方法を、スレーブ１３のエラー検出方法（S0a）とも称する。
【００４６】
このとき、マスタ１２のエラー対策部２３は、スレーブ１３のエラー検出（S0a）を実現するために、これらの７通りのビット列（0x3E，0x5E，0x6E，0x76，0x7A，0x7C，0x7F）を、動的に割り当てるアドレスとして使用することを禁止する。
【００４７】
また、以下適宜、スレーブ１３による第１のエラー検出方法のうち、フレーム先頭の１ワード目の最後に送信される１ビット（R/W=0）が反転したビット列（0x7E+R/W=1：011_1110_1）が受信されたことによるエラー検出方法を、スレーブ１３のエラー検出方法（S0b）とも称する。
【００４８】
ここで、ビット列（0x7E+R/W=1：011_1110_1）は、図６を参照して後述するように、動的に割り当てられるアドレス（DAA：Dynamic Address Assignment）を設定する場合のみ用いられることが定義されている。このため、動的に割り当てられるアドレスが確定する前に、ビット列（0x7E+R/W=1：011_1110_1）が検出された場合は、エラーとみなしてもよい。
【００４９】
以上のように、スレーブ１３による第１のエラー検出方法では、上述したエラー検出（S0）と比較して、データの読み出しまたは書き込みの要求を表す１ビットに発生するエラーも検出可能とすることができる。
【００５０】
＜スレーブ側における第２のエラー検出方法＞
【００５１】
スレーブ１３による第２のエラー検出方法は、第１のエラー検出方法と同様に、SDRで信号を伝送するモードにおいて、フレーム先頭の２ワード（9bit×2）に発生するエラーを検出する方法である。
【００５２】
例えば、図２を参照して上述したように、フレーム先頭の２ワード目で送信されるコモンコマンドコード（I3C Modal Broadcast CCC）に続いて１ビットパリティ（T）が送信される。従来、この１ビットパリティ（T）によりパリティチェックが行われる範囲は、コモンコマンドコード（I3C Modal Broadcast CCC）だけが含まれるように設定されている。
【００５３】
そこで、マスタ１２のエラー対策部２３は、フレーム先頭の２ワード目で送信されるコモンコマンドコードに続いて送信される１ビットパリティによりパリティチェックが行われる範囲に、ブロードキャストコマンドおよびコモンコマンドコードの２ワード分のビット列が含まれるように設定する。
【００５４】
これにより、スレーブ１３のエラー検出部３２は、フレーム先頭から２ワード目のコモンコマンドコードに続いて送信される１ビットパリティを用いて、そのフレームの先頭から２ワード分のビット列に対するパリティチェックを行う第２のエラー検出方法により、ブロードキャストコマンドおよびコモンコマンドコードに発生するエラーを検出することができる。
【００５５】
以上のように、スレーブ１３による第２のエラー検出方法では、上述した第１のエラー検出方法と比較して、使用可能なアドレス（例えば、0x3E，0x5E，0x6E，0x76）が制限されることを回避することができる。
【００５６】
なお、以下適宜、スレーブ１３による第２のエラー検出方法を、スレーブ１３のエラー検出方法（S0c）とも称する。
【００５７】
＜スレーブ側における第３のエラー検出方法＞
【００５８】
スレーブ１３による第３のエラー検出方法は、SDR（CCC）のうちDAAで信号を伝送するモードにおいて、動的に割り当てられるアドレスが確定した後、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタート（Sr）させた直後の１ワード（0x7E + R/W=1）に発生するエラーを検出する方法である。
【００５９】
例えば、バスＩＦ１１を介した通信では、動的なアドレスの割り当てを検出してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後の１ワード（0x7E + R/W=1）は、図６を参照して後述するように、この箇所にしか出現しない。
【００６０】
従って、スレーブ１３のエラー検出部３２は、動的なアドレスの割り当てを検出してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後に送信される１ワードに、その１ワードとして送信されることが予め規定されているビット列（0x7E + R/W=1）が配置されているか否かを確認する。そして、この再スタートさせた直後の１ワードにビット列（0x7E + R/W=1）が配置されていることが確認された場合には、エラー検出部３２は、エラーが発生していないとすることができる。一方、その１ワードにビット列（0x7E + R/W=1）が配置されていないこと、即ち、そのビット列以外のビット列が配置されていることが確認された場合には、この再スタートさせた直後の１ワードにエラーが発生したとみなすことができる。
【００６１】
以上のように、スレーブ１３による第３のエラー検出方法では、従来の手法では検出されていなかった、動的なアドレスの割り当てを検出してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後の１ワードに発生するエラーを検出することができる。
【００６２】
なお、以下適宜、スレーブ１３による第３のエラー検出方法を、スレーブ１３のエラー検出方法（S3a）とも称する。
【００６３】
＜スレーブ側における第４のエラー検出方法＞
【００６４】
スレーブ１３による第４のエラー検出方法は、SDR（CCC）で信号を伝送するモードにおいて、複数台のスレーブ１３に対してコモンコマンドコード（CCC ：Common Command Code）を送信するトランザクションが確定した後に、マスタ１２から送信されてくるデータに発生するエラーを検出する方法である。
【００６５】
即ち、コモンコマンドコードを送信するトランザクションが確定した後には、規格により予め規定されているフォーマットのデータを送受信することが決められている。従って、スレーブ１３のエラー検出部３２は、コモンコマンドコードを送信するトランザクションが確定した後に送信されてくるデータのフォーマットが、規定のフォーマットとは異なっているか否かを確認し、異なるフォーマットのデータを送受信部３１が受信した場合、エラーが発生したとすることができる。
【００６６】
例えば、エラー検出部３２は、コモンコマンドコードのトランザクションが確定した後、データを書き込む系統の命令（後述の図４参照）にも関わらず、リード／ライトが読み出しを表す１である場合には、規定のフォーマットとは異なるフォーマットのデータを受信したとして、エラーが発生したと検出することができる。
【００６７】
同様に、エラー検出部３２は、データを読み出す系統の命令にも関わらず、リード／ライトが書き込みを表す０である場合にも、規定のフォーマットとは異なるフォーマットのデータを受信したとして、エラーが発生したと検出することができる。また、エラー検出部３２は、２ワードを受信する命令に対して、３ワードを受信したときにもエラーが発生したと検出することができる。
【００６８】
なお、以下適宜、スレーブ１３による第４のエラー検出方法を、スレーブ１３のエラー検出方法（S5a）とも称する。
【００６９】
＜スレーブ側における第５のエラー検出方法＞
【００７０】
スレーブ１３による第５のエラー検出方法は、スレーブ１３から信号を送出するタイミングで、その送出した信号と信号線１４−１上の信号が一致しているか否かを常に監視することによりエラーを検出する方法である。
【００７１】
例えば、バスＩＦ１１では、規格上、割り込み処理に対応している。そして、割り込み処理が行われるとき、マスタ１２からの送信信号と、スレーブ１３からの割り込みリクエストが同時に発生した場合、信号線１４−１上で信号が衝突することになる。このような信号の衝突に対応するため、アービトレーションが定義されている。即ち、この期間においては、自己が送信している信号とバス上に流れる信号を比較し、バス権の得失を監視することが求められている。
【００７２】
ここで、例えば、マスタ１２がプライベートな書き込み（Private Write）を転送し、これに対し、スレーブ１３側で受信エラーが発生してプライベートな読み出し（Private Read）と誤認識したとする。この場合、マスタ１２の送信する書き込みデータ（WriteData）が、スレーブ１３が送信する読み出しデータ（Read Data）と信号線１４−１上で信号が衝突することになる。これにより、正確な通信を行うことは困難となってしまう。
【００７３】
そこで、スレーブ１３による第５のエラー検出方法では、エラー検出部３２は、スレーブ１３から信号を送出するタイミングで、その送出した信号と、信号線１４−１上の信号とが一致しているか否かを常に（即ち、上述したアービトレーション部分を含み、それ以外でも）監視する。これにより、エラー検出部３２は、データの衝突によるエラーの発生を検出することができる。
【００７４】
＜スレーブ側における第６のエラー検出方法＞
【００７５】
スレーブ１３による第６のエラー検出方法は、スレーブ１３から信号を送出するタイミングで、その送出した信号と信号線１４−１上の信号が一致しているか否かを、信号線１４−１に流れる電流を常に監視することによりエラーを検出する方法である。
【００７６】
ここで、この電流の監視には、後述する図１５に示す衝突検出回路７４が使用される。そして、エラー検出部３２は、スレーブ１３から信号を送出するタイミングで、その送出した信号と、信号線１４−１上の信号とが一致しているか否かを、電流値に基づいて、常に（即ち、上述したアービトレーション部分を含み、それ以外でも）監視する。これにより、エラー検出部３２は、データの衝突によるエラーの発生を検出することができる。
【００７７】
例えば、スレーブ１３による第５のエラー検出方法では、信号を送信するマスタ１２およびスレーブ１３のうち、どちらか一方だけ衝突を検出することができ、両方が衝突を検出することは困難であった。例えば、信号線１４−１の電位が中間あたりであった場合、マスタ１２およびスレーブ１３のどちらも検出に失敗することが想定される。
【００７８】
そこで、後述する図１５に示す衝突検出回路７４のように、アナログ的に想定を超える電流が流れているか常に監視することで、マスタ１２およびスレーブ１３の両方が衝突を検出することができるようになる。
【００７９】
なお、以下適宜、スレーブ１３による第５および第６のエラー検出方法を、スレーブ１３のエラー検出方法（S0a）とも称する。
【００８０】
＜マスタ側における第１のエラー検出方法＞
【００８１】
マスタ１２による第１のエラー検出方法は、上述したスレーブ１３による第４のエラー検出方法と同様に、マスタ１２のエラー検出部２２が、SDR（CCC）で信号を伝送するモードにおいて、複数台のスレーブ１３に対してコモンコマンドコード（CCC ：Common Command Code）を送信するトランザクションが確定した後に、スレーブ１３から送信されてくるデータに発生するエラーを検出する方法である。
【００８２】
即ち、マスタ１２のエラー検出部２２は、コモンコマンドコードを送信するトランザクションが確定した後に送信されてくるデータのフォーマットが、規定のフォーマットとは異なっているか否かを確認し、異なるフォーマットのデータを送受信部２１が受信した場合、エラーが発生したとすることができる。
【００８３】
なお、以下適宜、マスタ１２による第１のエラー検出方法を、マスタ１２のエラー検出方法（M0a）とも称する。
【００８４】
＜マスタ側における第２および第３のエラー検出方法＞
【００８５】
マスタ１２による第２および第３のエラー検出方法は、上述したスレーブ１３による第５および第６のエラー検出方法と同様に、信号線１４−１上の信号を常に監視することによりエラーを検出する方法である。
【００８６】
即ち、マスタ１２のエラー検出部２２は、マスタ１２から信号を送出するタイミングで、その送出した信号と、信号線１４−１上の信号とが一致しているか否かを常に（即ち、上述したアービトレーション部分を含み、それ以外でも）監視することによりエラーを検出する。また、後述する図１５に示す衝突検出回路７４を使用して、信号線１４−１に流れる電流を常に監視することによりエラーを検出する。
【００８７】
なお、以下適宜、マスタ１２による第２および第３のエラー検出方法を、マスタ１２のエラー検出方法（M30a）とも称する。
【００８８】
以上のようなエラー検出方法によって、マスタ１２およびスレーブ１３がエラーを検出することで、バスＩＦ１１において、例えば、伝送方式の切り替えを確実に行わせることができ、より確実に通信が行われるようにすることができる。これにより、より安全な通信を行うことができる。
【００８９】
＜エラー検出後の復帰方法＞
【００９０】
以下では、上述したようにエラーを検出した後に、マスタ１２およびスレーブ１３が復帰する方法について説明する。
【００９１】
マスタ１２およびスレーブ１３は、エラーの状態に応じて適応的にその後の振る舞いを行い、通信を確実に復帰させることができる。
【００９２】
例えば、上述したスレーブ１３のエラー検出方法（S0）、スレーブ１３のエラー検出方法（S0b）、スレーブ１３のエラー検出方法（S0c）でエラーを検出した場合、通信不能となることを考慮し、エラーを検出したスレーブ１３は、HDR終了コマンド（HDR Exit）を検出するまで、一切の通信を無視する。これにより、伝送方式がHDRであるときにストップコンディション（P）を誤検出することを回避することができ、その後、通信を再開することができる。
【００９３】
また、スレーブ１３のエラー検出方法（S0b）のうち、２ワード目の処理は行わない。即ち、0x7Eを送るのではなく、動的に割り当てるアドレスを送信していた場合、誤り検出率が限定的ではあるが、一定程度のエラー検出を行うことができる。この場合、伝送方式がSDRであるため、エラーを検出したスレーブ１３は、ストップコンディション（P）を検出するまで、一切の通信を無視する。これにより、エラーの発生したフレームのみ無視して、通信を再開することができる。
【００９４】
また、上述したスレーブ１３のエラー検出方法（S3a）、および、スレーブ１３のエラー検出方法（S5a）でエラーを検出した場合、伝送方式がSDRであるため、エラーを検出したスレーブ１３は、ストップコンディション（P）を検出するまで、一切の通信を無視する。これにより、エラーの発生したフレームのみ無視して、通信を再開することができる。
【００９５】
なお、伝送方式がSDRであるときに、書き込みデータに発生したエラーをパリティチェックにより検出するスレーブ１３のエラー検出方法（S1）、および、動的に割り当てられるアドレスが確定した後に、アサインアドレスに発生したエラーをパリティチェックにより検出するスレーブ１３のエラー検出方法（S2）で、エラーを検出した場合も、同様に、エラーを検出したスレーブ１３は、ストップコンディション（P）を検出するまで、一切の通信を無視する。
【００９６】
また、HDR-DDRで信号を伝送するモードにおいて、コマンドワードに発生したエラーをパリティチェックにより検出するスレーブ１３のエラー検出方法（S10）、データワードに発生したエラーをパリティチェックまたは巡回冗長検査（CRC）により検出するスレーブ１３のエラー検出方法（S11）で、エラーを検出した場合、HDR状態にあるため、エラーを検出したスレーブ１３は、HDR終了コマンド（HDR Exit）を検出するまで、一切の通信を無視する。これにより、エラーの発生したフレームのみ無視して、通信を再開することができる。
【００９７】
また、HDR-TSL/TSPで信号を伝送するモードにおいて、コマンドワードに発生したエラーを、シンボルの「２」が２回連続（HDR Restart or HDR Exit以外）していることにより検出するスレーブ１３のエラー検出方法（S20）、データワードに発生したエラーを、パリティチェック、または、シンボルの「２」が２回連続（HDR Restart or HDR Exit以外）していることにより検出するスレーブ１３のエラー検出方法（S21）で、エラーを検出した場合も、同様に、HDR状態にあるため、エラーを検出したスレーブ１３は、HDR終了コマンド（HDR Exit）を検出するまで、一切の通信を無視する。これにより、エラーの発生したフレームのみ無視して、通信を再開することができる。
【００９８】
また、上述したスレーブ１３のエラー検出方法（S30a）でエラーを検出した場合、信号が衝突していることより、電流が大量に消費されるため、エラーを検出したスレーブ１３は、直ちに信号の送信を中止し、ストップコンディション（P）を検出する（HDR中はHDR Exitを検出する）まで、一切の通信を無視する。これにより、エラーの発生したフレームのみ無視して、通信を再開することができる。
【００９９】
また、上述したマスタ１２のエラー検出方法（M0a）でエラー検出した場合、伝送方式がSDRであるため、エラーを検出したマスタ１２は送信を中止し、ストップコンディション（P）の送信後、通信を最初からやり直す。これにより、エラーの発生したフレームのみ無視して、通信を再開することができる。
【０１００】
また、上述したマスタ１２のエラー検出方法（M30a）でエラー検出した場合、信号が衝突していることより、電流が大量に消費されるため、エラーを検出したマスタ１２は、直ちに信号の送信を中止し、ストップコンディション（P）を送信（HDR中はHDR Exitを送信）した後、通信を最初からやり直す。これにより、エラーの発生したフレームのみ無視して、通信を再開することができる。
【０１０１】
＜各種の通信ごとのエラー検出方法＞
【０１０２】
以下、図３乃至図１４に示す各種の通信ごとに適用されるエラー検出方法について説明する。
【０１０３】
図３には、複数台のスレーブ１３に一斉にデータを書き込む通信（I3C Broadcast CCC Write）が行われるときのエラー検出方法が示されている。
【０１０４】
このような通信において、スタートコンディションに続いて送信されるフレームの２ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）およびスレーブ１３のエラー検出方法（S0c）により検出することができる。
【０１０５】
また、１ビットパリティの後に送信されるデータ（Optional Write Data）に発生するエラーは、上述したスレーブ１３のエラー検出方法（S1）およびスレーブ１３のエラー検出方法（S5a）により検出することができる。
【０１０６】
図４には、スレーブ１３ごとにアドレスで指定してデータを書き込む通信（I3C Directed CCC Write）が行われるときのエラー検出方法が示されている。
【０１０７】
このような通信において、スタートコンディションに続いて送信されるフレームの２ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）およびスレーブ１３のエラー検出方法（S0c）により検出することができる。
【０１０８】
また、破線で囲われた部分の全体に発生するエラーは、上述したスレーブ１３のエラー検出方法（S5a）により検出することができる。さらに、再スタート（Sr）の直後の１ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）の１ワード目に対する処理により検出することができる。また、データ（Optional Write Data）に発生するエラーは、上述したスレーブ１３のエラー検出方法（S1）により、パリティチェックによって検出することができる。
【０１０９】
図５には、スレーブ１３ごとにアドレスで指定してデータを読み出す通信（I3C Directed CCC Read）が行われるときのエラー検出方法が示されている。
【０１１０】
このような通信において、スタートコンディションに続いて送信されるフレームの２ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）およびスレーブ１３のエラー検出方法（S0c）により検出することができる。
【０１１１】
また、破線で囲われた部分の全体に発生するエラーは、上述したスレーブ１３のエラー検出方法（S5a）およびマスタ１２のエラー検出方法（M0a）により検出することができる。さらに、再スタート（Sr）の直後の１ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）の１ワード目に対する処理により検出することができる。
【０１１２】
図６には、CCC（ENTDAA）による通信が行われるときのエラー検出方法が示されている。
【０１１３】
このような通信において、スタートコンディションに続いて送信されるフレームの２ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）およびスレーブ１３のエラー検出方法（S0c）により検出することができる。
【０１１４】
また、破線で囲われた部分の全体に発生するエラーは、上述したスレーブ１３のエラー検出方法（S5a）およびマスタ１２のエラー検出方法（M0a）により検出することができる。さらに、再スタート（Sr）の直後の１ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S3a）により検出することができる。アサインアドレスに発生したエラーは、上述したスレーブ１３のエラー検出方法（S2）により検出することができる。
【０１１５】
図７には、スタートコンディションから開始して、プライベートな書き込みを転送する通信（I3C Private Write Transfer Initiated with START Condition）が行われるときのエラー検出方法が示されている。
【０１１６】
このような通信において、スタートコンディションに続いて送信されるフレームの１ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）の１ワード目に対する処理により検出することができる。
【０１１７】
また、再スタート（Sr）に続いて送信されるフレームの２ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）およびスレーブ１３のエラー検出方法（S0c）により検出することができる。さらに、データ（Write Data - N）に発生するエラーは、上述したスレーブ１３のエラー検出方法（S1）により、パリティチェックによって検出することができる。
【０１１８】
図８には、プライベートな書き込みを転送する通信（I3C Private Write Transfer）が行われるときのエラー検出方法が示されている。
【０１１９】
このような通信において、スタートコンディションに続いて送信されるフレームの１ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）およびスレーブ１３のエラー検出方法（S0c）により検出することができる。さらに、データ（Write Data - N）に発生するエラーは、上述したスレーブ１３のエラー検出方法（S1）により、パリティチェックによって検出することができる。
【０１２０】
図９には、スタートコンディションから開始して、プライベートな読み出しを転送する通信（I3C Private Write Transfer Initiated with START Condition）が行われるときのエラー検出方法が示されている。
【０１２１】
このような通信において、スタートコンディションに続いて送信されるフレームの１ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）の１ワード目に対する処理により検出することができる。また、再スタート（Sr）の直後の１ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）の１ワード目に対する処理により検出することができる。
【０１２２】
図１０には、プライベートな読み出しを転送する通信（I3C Private Write Transfer）が行われるときのエラー検出方法が示されている。
【０１２３】
このような通信において、スタートコンディションに続いて送信されるフレームの１ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）の１ワード目に対する処理により検出することができる。
【０１２４】
図１１には、HDR-DDRモードでデータを書き込む通信が行われるときのエラー検出方法が示されている。
【０１２５】
このような通信において、スタートコンディションに続いて送信されるフレームの２ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）およびスレーブ１３のエラー検出方法（S0c）により検出することができる。
【０１２６】
また、スレーブ１３のエラー検出方法（S10）により、コマンドワードに発生したエラーをパリティチェックによって検出することができる。また、スレーブ１３のエラー検出方法（S11）により、データワードに発生したエラーをパリティチェックまたは巡回冗長検査（CRC）によって検出することができる。
【０１２７】
図１２には、HDR-DDRモードでデータを読み出す通信が行われるときのエラー検出方法が示されている。
【０１２８】
このような通信において、スタートコンディションに続いて送信されるフレームの２ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）およびスレーブ１３のエラー検出方法（S0c）により検出することができる。
【０１２９】
また、スレーブ１３のエラー検出方法（S10）により、コマンドワードに発生したエラーをパリティチェックによって検出することができる。そして、マスタ１２のエラー検出方法（M11）により、データワードに発生したエラーをパリティチェックまたは巡回冗長検査（CRC）によって検出することができる。
【０１３０】
図１３には、HDR-TSL/TSPでデータを書き込む通信が行われるときのエラー検出方法が示されている。
【０１３１】
このような通信において、スタートコンディションに続いて送信されるフレームの２ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）およびスレーブ１３のエラー検出方法（S0c）により検出することができる。
【０１３２】
また、スレーブ１３のエラー検出方法（S20）により、コマンドワードに発生したエラーを、シンボルの「２」が２回連続していることによって検出することができる。即ち、HDR-TSLおよびHDR-TSPで使われるTernary Encodingでは、シンボルの「２」が２回連続するケースは、HDR RestartとHDR Exitを除いて存在しないことより、エラーとすることができる。また、スレーブ１３のエラー検出方法（S21）により、データワードに発生したエラーを、パリティチェック、または、シンボルの「２」が２回連続（HDR Restart or HDR Exit以外）していることによって検出することができる。
【０１３３】
図１４には、HDR-TSL/TSPでデータを読み出す通信が行われるときのエラー検出方法が示されている。
【０１３４】
このような通信において、スタートコンディションに続いて送信されるフレームの２ワードに発生するエラーは、上述したスレーブ１３のエラー検出方法（S0b）およびスレーブ１３のエラー検出方法（S0c）により検出することができる。
【０１３５】
また、スレーブ１３のエラー検出方法（S20）により、コマンドワードに発生したエラーを、シンボルの「２」が２回連続していることによって検出することができる。また、マスタ１２のエラー検出方法（M21）により、データワードに発生したエラーを、パリティチェック、または、シンボルの「２」が２回連続（HDR Restart or HDR Exit以外）していることによって検出することができる。
【０１３６】
次に、図１５は、スレーブ１３による第６のエラー検出方法およびマスタ１２による第３のエラー検出方法において使用される衝突検出回路について説明する図である。
【０１３７】
例えば、図１に示すマスタ１２の送受信部２１、および、スレーブ１３の送受信部３１は、それぞれ受信回路５１と送信回路５２とを備えて構成される。即ち、図１５には、送受信部２１および送受信部３１のうち、一方が信号を送信する側となったときの送信回路５２と、他方が信号を受信する側となったときの受信回路５１とが示されている。
【０１３８】
受信回路５１は、電流源回路６１を有しており、電流源回路６１は、PMOSトランジスタ６２、NMOSトランジスタ６３、および抵抗６４が組み合わされて構成される。電流源回路６１では、ドレイン電源ＶDDからPMOSトランジスタ６２を介して抵抗６４に流れる電流Ｉによって、端子６５に接続される信号線１４−１に、シリアルデータ（SDA）が伝送される。
【０１３９】
送信回路５２では、シリアルデータ（SDA）を伝送する信号線１４−１が端子７１に接続され、シリアルクロック（SCL）を伝送する信号線１４−２が端子７２に接続されている。また、送信回路５２は、静電気保護素子（ESD）７３、衝突検出回路７４、インバータ回路７５、および増幅部７６を有しており、インバータ回路７５は、PMOSトランジスタ７７およびNMOSトランジスタ７８が組み合わされて構成される。
【０１４０】
例えば、端子７１を介して送信回路５２に入力される電流Ｉは、静電気による高電圧から回路を保護するための静電気保護素子７３を介して、衝突検出回路７４に供給される。また、端子７２を介して送信回路５２に入力されるシリアルクロック（SCL）は、増幅部７６により所定の電圧まで増幅されて、衝突検出回路７４に供給される。また、衝突検出回路７４から出力される電流Ｉは、インバータ回路７５のNMOSトランジスタ７８を介して、グランドレベルに流れる。
【０１４１】
衝突検出回路７４は、コンパレータ８１および８２、フリップフロップ回路８３および８４、並びに抵抗８５が組み合わされて構成される。
【０１４２】
図１５に示すように、コンパレータ８１のプラス側の入力端子と、コンパレータ８２のマイナス側の入力端子との接続点に、静電気保護素子７３が接続されており、その接続点には、抵抗８５の一端が接続される。また、抵抗８５の他端は、インバータ回路７５に接続される。
【０１４３】
コンパレータ８１のマイナス側の入力端子には参照信号Ｖref1が供給され、コンパレータ８１の出力端子が、フリップフロップ回路８３に接続される。また、フリップフロップ回路８３には、シリアルクロック（SCL）が供給され、フリップフロップ回路８３から出力される信号が出力信号Out1となる。
【０１４４】
同様に、コンパレータ８２のプラス側の入力端子には参照信号Ｖref2が供給され、コンパレータ８１の出力端子が、フリップフロップ回路８４に接続される。また、フリップフロップ回路８４には、シリアルクロック（SCL）が供給され、フリップフロップ回路８４から出力される信号が出力信号Out2となる。
【０１４５】
このように衝突検出回路７４は構成されており、エラー検出部２２およびエラー検出部３２がそれぞれ出力信号Out1を監視することで、高精度に衝突検出することができる。
【０１４６】
なお、上述したデジタル方式による衝突検出方法では、マスタ１２およびスレーブ１３の検出結果を確認する必要があったのに対し、衝突検出回路７４を使用した衝突検出方法では、マスタ１２とスレーブ１３とのそれぞれ単独で衝突を検出することができる。
【０１４７】
図１６に示す通常時および衝突時における電流の変化の例を参照して、衝突検出回路７４の動作について説明する。
【０１４８】
例えば、通常、４ｍＡのドライバを使用することが想定され、抵抗６４および抵抗８５の抵抗値Ｒｄは２０Ω程度に設定される。このとき、衝突が起きると、８０ｍＶ以上の電圧が、シリアルデータ（SDA）を伝送する信号線１４−１に発生する。
【０１４９】
一方、衝突が起きなければ、信号線１４−１の電圧は略０Ｖであるので、参照信号Ｖref1は４０ｍＶ程度に設定してコンパレータ８１による比較を行う。そして、フリップフロップ回路８３が、コンパレータ８１の比較結果を、シリアルクロック（SCL）でラッチし、出力信号Out1がＨｉレベルとなる。
【０１５０】
ここで、期待値は、自分自身の出力（この場合、Ｌｏｗレベル）であると分かっているので、出力信号Out1が期待値でない場合、衝突検出とすることができる。
【０１５１】
次に、図１７には、HDR終了コマンド（HDR Exit）およびストップコンディション（P）を出力するときのシリアルデータ（SDA）およびシリアルクロック（SCL）が示されている。
【０１５２】
例えば、マスタ１２がスレーブ１３に対してリードアクセスなどを実施しても反応がなく、何度か再送を行っても反応がない場合、何らかのエラーにより、スレーブ１３がHDR終了コマンド（HDR Exit）の検出や、ストップコンディション（P）の検出を待機している状態であると判断することができる。この場合、マスタ１２は、図１７に示すような、HDR終了コマンド（HDR Exit）およびストップコンディション（P）を含む信号を、スレーブ１３に送信する。
【０１５３】
ここで、HDR終了コマンド（HDR Exit）およびストップコンディション（P）の送信は、通常、HDR信号の最後に送信されることが定義されている。このようなHDR信号の最後でなくても、スレーブ１３が無反応である場合に送信することで、スレーブ１３を正常に動作させることができるようになる。
【０１５４】
なお、マスタ１２は、HDR終了コマンド（HDR Exit）およびストップコンディション（P）を含む信号を送信すればよく、例えば、スタートコンディション（S）、HDR終了コマンド（HDR Exit）、およびストップコンディション（P）を送信してもよい。または、マスタ１２は、スタートコンディション（S）、ブロードキャストコマン（0x7E+R/W(=0)）、ACK、HDR終了コマンド（HDR Exit）、およびストップコンディション（P）を送信してもよい。これにより、スレーブ１３を確実に復帰させることができる。
【０１５５】
次に、図１８は、スレーブ１３において行われるエラー検出処理のうち、エラー検出方法（S0b）を説明するフローチャートである。
【０１５６】
例えば、スレーブ１３が起動すると処理が開始され、ステップＳ１１において、送受信部３１は、マスタ１２がスタートコンディション（S or Sr）を出力して、それを検出するまで処理を待機する。そして、送受信部３１がスタートコンディション（S or Sr）を検出すると、処理はステップＳ１２に進む。
【０１５７】
ステップＳ１２において、エラー検出部３２は、送受信部３１が受信したフレーム先頭の１ワード目を確認する。
【０１５８】
ステップＳ１３において、エラー検出部３２は、ステップＳ１２での確認の結果に従って、１ワード目に含まれている、データの読み出しまたは書き込みの要求を表す１ビット（R/W）の値が１および０のどちらであるかを判定する。
【０１５９】
ステップＳ１３において、エラー検出部３２が、データの読み出しまたは書き込みの要求を表す１ビット（R/W）の値が、データの読み出しを示す１であると判定した場合、処理はステップＳ１４に進む。即ち、この場合、上述したように、フレーム先頭の１ワード目にエラーが検出されたことになる。
【０１６０】
ステップＳ１４において、スレーブ１３は、送受信部３１がストップコンディション（Ｐ）を検出するまで、通常処理を行う。なお、この場合、Private Read（0x7Eなし)である。
【０１６１】
一方、ステップＳ１３において、エラー検出部３２が、データの読み出しまたは書き込みの要求を表す１ビット（R/W）の値が、データの書き込みを示す０であると判定した場合、処理はステップＳ１５に進む。
【０１６２】
ステップＳ１５において、エラー検出部３２は、１ワード目のACKの次に、送受信部３１がリピートスタート（Sr）受信したか否かを判定する。
【０１６３】
ステップＳ１５において、エラー検出部３２が、１ワード目のACKの次に、送受信部３１がリピートスタート（Sr）受信していないと判定した場合、処理はステップＳ１６に進む。
【０１６４】
ステップＳ１６において、エラー検出部３２は、フレーム先頭から２ワード目を確認し、ステップＳ１７において、その２ワード目がコモンコマンドコード（CCC）であるか否かを判定する。
【０１６５】
ステップＳ１７において、エラー検出部３２が、２ワード目がコモンコマンドコードでないと判定した場合、処理はステップＳ１８に進み、スレーブ１３は、送受信部３１がストップコンディション（Ｐ）を検出するまで、通常処理を行う。なお、この場合、Private Write（0x7Eなし)である。
【０１６６】
一方、ステップＳ１７において、エラー検出部３２が、２ワード目がコモンコマンドコードであると判定した場合、処理はステップＳ１９に進む。ステップＳ１９において、エラー検出部３２は、リピートスタート（Sr）の次の１ワード目の確認を繰り返し、送受信部３１がストップコンディション（Ｐ）を検出するまで、通常処理を行う。
【０１６７】
一方、ステップＳ１５において、エラー検出部３２が、１ワード目のACKの次に、送受信部３１がリピートスタート（Sr）を受信したと判定した場合、処理はステップＳ２０に進む。
【０１６８】
ステップＳ２０において、エラー検出部３２は、送受信部３１が受信したリピートスタート（Sr）に続く１ワード目を確認する。
【０１６９】
ステップＳ２１において、エラー検出部３２は、ステップＳ１２での確認の結果に従って、１ワード目に含まれている、データの読み出しまたは書き込みの要求を表す１ビット（R/W）の値が１および０のどちらであるかを判定する。
【０１７０】
ステップＳ２１において、エラー検出部３２が、データの読み出しまたは書き込みの要求を表す１ビット（R/W）の値が、データの書き込みを示す０であると判定した場合、処理はステップＳ２２に進む。
【０１７１】
ステップＳ２２において、エラー検出部３２は、２ワード目の確認を行い、送受信部３１がストップコンディション（Ｐ）を検出するまで、通常処理を行う。なお、この場合、Private Write（0x7Eあり)である。
【０１７２】
一方、ステップＳ２１において、エラー検出部３２が、データの読み出しまたは書き込みの要求を表す１ビット（R/W）の値が、データの読み出しを示す１であると判定した場合、処理はステップＳ２３に進む。
【０１７３】
ステップＳ２３において、スレーブ１３は、送受信部３１がストップコンディション（Ｐ）を検出するまで、通常処理を行う。なお、この場合、Private Read（0x7Eあり)である。
【０１７４】
なお、本技術は、I2Cの規格に従ったバスＩＦ１１に限定されることはなく、その他の規格に従ったバスＩＦ１１に適用することができる。また、図１に示すバスＩＦ１１では、スレーブ１３−１乃至１３−３が接続された構成例が示されているが、スレーブ１３は、例えば、１台または２台でもよく、あるいは、３台以上でもよい。さらに、例えば、バスＩＦ１１は、コモンコマンドコードに発生する誤りを訂正する誤り訂正符号の送信と、パリティチェック結果を用いた受信成功の確認との両方を組み合わせて用いてもよい。
【０１７５】
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。また、プログラムは、１の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１０４にインストールしたり、更新したりすることができる。
【０１８１】
なお、本技術は以下のような構成も取ることができる。
（１）
バスを介して通信を行う通信装置であって、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出する
通信装置。
（２）
前記第１の通信装置は、前記フレームの２ワード目に続いて送信されるパリティビットによる誤り検出の対象に、そのフレームの先頭から２ワード分が含まれるように、前記パリティビットを設定する
上記（１）に記載の通信装置。
（３）
前記第２の通信装置の前記エラー検出部は、前記フレームの先頭から２ワード目に続いて送信されるパリティビットを用いて、そのフレームの先頭から２ワード分のビット列に対してパリティチェックを行うエラー検出方法により、前記２ワード分に発生するエラーを検出する
上記（２）に記載の通信装置。
（４）
前記第２の通信装置の前記エラー検出部は、動的なアドレスの割り当てが確定してから、通信の終了が検出されるまでの間において、通信を終了させずに続けて通信を再スタートさせた直後に送信される１ワードに、その１ワードとして送信されることが予め規定されているビット列が配置されているか否かを確認するエラー検出方法により、前記１ワードに発生するエラーを検出する
上記（１）から（３）までのいずれかに記載の通信装置。
（５）
前記エラー検出部は、複数台の前記他の通信装置に対して共通のコマンドコードを送信するトランザクションが確定した後に送信されてくるデータのフォーマットが、予め規定されているフォーマットとは異なっているか否かを確認するエラー検出方法により、前記データに発生するエラーを検出する
上記（１）から（４）までのいずれかに記載の通信装置。
（６）
前記第２の通信装置の前記エラー検出部は、前記第２の通信装置から信号を送出するタイミングで、その送出した信号と前記バス上の信号とが一致しているか否かを常に監視するエラー検出方法により、前記信号に発生するエラーを検出する
上記（１）から（５）までのいずれかに記載の通信装置。
（７）
前記通信装置から信号を出力する信号線に流れる電流を監視する電流監視回路をさらに備え、
前記エラー検出部は、前記通信装置自身から信号を送出するタイミングで、その送出した信号と前記バス上の信号が一致しているか否かを、前記電流監視回路により常に監視されている電流に基づいて確認するエラー検出方法により、前記信号に発生するエラーを検出する
上記（１）から（６）までのいずれかに記載の通信装置。
（８）
バスを介して通信を行う通信装置の通信方法であって、
前記通信装置は、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出する
ステップを含む通信方法。
（９）
バスを介して通信を行う通信装置のコンピュータに実行させるプログラムであって、
前記通信装置は、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出する
ステップを含むプログラム。
（１０）
複数台の通信装置がバスを介して通信を行う通信システムであって、
前記通信装置それぞれが、
少なくとも１台以上の他の通信装置との間で、信号の送受信を行う送受信部と、
前記送受信部が前記信号を送受信すると、前記信号の送受信に応じた特定のエラー検出方法により、その信号にエラーが発生しているか否かを検出するエラー検出部と
を備え、
前記バスを介した通信の主導権を有する前記通信装置である第１の通信装置と、前記第１の通信装置による制御に従って通信を行う前記通信装置である第２の通信装置との間で前記信号の送受信が行われ、
前記第２の通信装置の前記エラー検出部は、前記第１の通信装置が通信を開始した後に送信するフレームにおける先頭の１ワード目おいて、複数台の前記第２の通信装置すべてを対象として一斉にコマンドを送信することを通知するブロードキャストコマンドとともに送信されてくる、データの読み出しまたは書き込みの要求を表す１ビットが、データの読み出しを示している場合、前記１ワード目にエラーが発生していることを検出する
通信システム。
【０１８２】
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１８３】
１１  バスＩＦ，  １２  マスタ，  １３−１乃至１３−３  スレーブ，  １４−１および１４−２  信号線，  ２１  送受信部，  ２２  エラー検出部，  ２３  エラー対策部，  ３１−１乃至３１−３  送受信部，  ３２−１乃至３２−３  エラー検出部，  ５１  受信回路，  ５２  送信回路，  ６１  電流源回路，  ６２  PMOSトランジスタ，  ６３  NMOSトランジスタ，  ６４  抵抗，  ６５  端子，  ７１および７２  端子，  ７３  静電気保護素子，  ７４  衝突検出回路，  ７５  インバータ回路，  ７６  増幅部，  ７７  PMOSトランジスタ，  ７８  NMOSトランジスタ，  ８１および８２  コンパレータ，  ８３および８４  フリップフロップ回路，  ８５  抵抗
【図１】
2017061330.tif 000003
【図２】
2017061330.tif 000004
【図３】
2017061330.tif 000005
【図４】
2017061330.tif 000006
【図５】
2017061330.tif 000007
【図６】
2017061330.tif 000008
【図７】
2017061330.tif 000009
【図８】
2017061330.tif 000010
【図９】
2017061330.tif 000011
【図１０】
2017061330.tif 000012
【図１１】
2017061330.tif 000013
【図１２】
2017061330.tif 000014
【図１３】
2017061330.tif 000015
【図１４】
2017061330.tif 000016
【図１５】
2017061330.tif 000017
【図１６】
2017061330.tif 000018
【図１７】
2017061330.tif 000019
【図１８】
2017061330.tif 000020
【図１９】
2017061330.tif 000021
【国際調査報告】
2017061330.tif 000022
2017061330.tif 000023