プロが教える店舗&オフィスのセキュリティ対策術

I2Cにスタートコンディションが必要な理由を教えてください。

UARTは調歩同期式でデータの開始位置がわからないため、スタートビットが必要なのは理解できますが、同期式のI2Cでスタートコンディションは必要なのでしょうか。

I2Cに限らずSPIなどでも、データ通信開始の合図があった方が読み取るときに便利ということでしょうか..。

質問者からの補足コメント

  • 皆さんご回答ありがとうございます。

      補足日時:2023/03/03 22:06

A 回答 (2件)

はい。


そうしないと"0"を受信したときにそれがデータなのか単に何も通信してない状態なのか分からないからです。
    • good
    • 0

I2Cにおいてスタートコンディションが必要な理由は、複数のデバイスが同じ信号線を共有して通信する場合に、どのデバイスが通信を開始するかを識別するためです。



I2Cでは、信号線がプルアップされた状態で待機し、マスターデバイスがスタートコンディションを送信することで通信が開始されます。スタートコンディションは、信号線を低電位に引き下げることで送信されます。この信号を受信することで、他のデバイスは自分たちが通信を開始すべきでないことがわかります。

また、スタートコンディションによって、通信に参加するデバイスのアドレスが送信されます。これによって、マスターデバイスが通信するデバイスを識別することができます。

したがって、I2Cにおいてもスタートコンディションは必要となります。SPIにおいては、通常、チップセレクト信号がスタートコンディションに相当します。これによって、どのデバイスが通信を開始するかを識別することができます。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!