工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

I2C と SPI:知っておくべき違い

プロジェクトを設計していますが、I2C と SPI のどちらを選択するかが重要ですか?でも、どれを選べばいいのかわからない?はいの場合、プロジェクトにどちらが適しているかを判断するお手伝いをします。

まず、I2C と SPI は「ローエンド」のプロトコルです。しかし、それらは使いやすく、PCB 上のチップ間の通信に最適です。

ただし、プロジェクトに間違ったプロトコルを選択すると、望ましくない結果になる可能性があります。それにもかかわらず、これら 2 つの類似したプロトコルの違いを理解するのに役立つようにここにいます。

準備はできたか?始めましょう!

SPI プロトコルとは?

1980 年代に、Motorola は SPI プロトコルを開発し、当時のマイクロコントローラと EEPROM などの他の周辺機器との間の通信を確立しました。

EEPROM

そのため、SPI プロトコルは、パーツ間の通信に 4 つの信号線を使用します。ただし、これらにはアース線と電源線が含まれていないことに注意することが重要です。 4 つのアクティブな信号線は次のとおりです。

この注記では、4 つのラインにより、マスター SPI (制御デバイス) がスレーブ SPI (周辺デバイス) と通信できます。

SPI プロトコル インターフェイス

さらに、SPI バスには 1 つのコントローラー デバイスしか配置できません。ただし、追加できる周辺機器の数に制限はありません。また、ペリフェラルを追加するということは、SS ラインを増やすことを意味します。したがって、3 つの別々の SS ラインを使用して異なる周辺機器を制御する方法を以下に示します。

複数の奴隷との SPI プロトコル インターフェイス

さらに、マスター SPI がデータの送信または受信によってペリフェラルと通信する場合、一致する SS ラインを引き出します。したがって、行は下になります。したがって、SCLK ラインがアクティブになり、設定された周波数でハイとローになります。

さらに、マスター SPI は MISO ラインを使用して、データとサンプルを同時に送信します。また、一度に 1 つのペリフェラルとマスター SPI の間でしか通信できないことに注意してください。

I2C とは

あるいは、1982 年にフィリップス セミコンダクターズ (現在の NXP セミコンダクターズ) が、1 つの PCB 上のチップ間の通信をシステム化するための最初の I2C プロトコルを開発しました。

SCI の対応物とは異なり、I2C プロトコルには 2 つの通信ラインがありますが、グランド ラインと電源ラインは除きます。これらの行には以下が含まれます:

したがって、1 つのバスに任意の数のスレーブ デバイスとエージェント デバイスを接続できます。また、SCL ラインと SDA ラインの両方をオープン ドレイン ラインとして保持する必要があります。その結果、デバイスには一度に 1 つのロー ラインしか表示されません。さらに、パイプにプルアップ抵抗が必要です。そうすれば、ラインをハイに戻すことができます。

I2C プロトコル インターフェイス

I2C プロトコルのオープンドレイン設計により、同じバスで複数のマスターを使用できます。ただし、2 つのコントローラー デバイスが同時に通信を開始すると、デバイスの 1 つが送信を停止する調停が発生します。

一方、コントローラ デバイスは、通信が行われている間、SDA ラインを監視します。そのため、1 つのデバイスが送信中に SDA ラインが低いことを検出すると、送信を停止します。これにより、別のコントローラ デバイスが通信できるようになります。

また、コントローラ I2C デバイスは START 条件を送信して通信を開始します。その結果、SCL ラインがハイのままである間、SDA ラインはローになります。

次に、コントローラ デバイスは、送信先の受信者の 7 ビット アドレスと、読み取りビット (1) または書き込みビット (0) を送信します。この時点で、バス上のデバイスは、SDA ラインを Low にすることによって一致する 7 ビット レートのアドレスを持っている場合にのみ応答します。

I2C と SPI の違い

SPI と I2C はどちらも「ローエンド」プロトコルであるため、似ています。さらに、どちらのプロトコルも、重量のいとこ (SATA、イーサネット、USB など) が誇る速度やその他の機能を欠いています。

しかし、動作原理と機能に関しては. 2 つのプロトコルの違いを詳しく見てみましょう。

USB コネクタ

まず、SPI プロトコルで 4 つの異なるモードを設定して、クロックの動作を決定できます。また、通信が機能するためには、スレーブ デバイスとエージェント デバイスが同じモデルを使用する必要があります。

<オール>
  • モード 0:データはクロックの立ち上がりエッジでサンプリングされ、クロックは Low でアイドル状態になります
  • モード 1:データはクロックの立ち下がりエッジでサンプリングされ、クロックは Low でアイドル状態になります
  • TMode 2:データはクロックの立ち下がりエッジでサンプリングされ、クロックはハイレベルでアイドル状態になります
  • モード 3:データは立ち上がりクロック エッジでサンプリングされ、クロック アイドル状態は High
  • さらに、SPI データ転送速度は 10 Mbps を超えることができるため、大量のデータを転送するのに最適です。また、LCD や加速度計などの高速更新レートのセンサーで SPI プロトコルを見つけることができます。

    LCD

    あるいは、I2C は一度に 1 バイトのパケットでしかデータを送信できません。さらに、受信ペリフェラルは ACK ビットで各バイトを確認する必要があります。さらに、I2C プロトコルには、データ転送速度が異なる 3 つのモードがあります。

    ACK ビット

    標準モデルは最大 100 kbps、高速モードは最大 400 kbps、高速モードは最大 3.4 Mbps に達します。したがって、I2C プロトコルは SPI プロトコルよりも大幅に低速です。その結果、I2C プロトコルは温度センサーとアナログ デジタル コンバーターで最適に機能します。

    温度センサー

    I2C と SPI の比較

    以下の表は、I2C と SPI の重要な違いをさらに示しています。

    SPI vs I2C プロトコル – 長所と短所

    SPI

    長所

    短所

    I2C

    長所

    短所

    SPI と I2C のどちらを選択する際に考慮すべき要素

    プロジェクトに最適なプロトコルを選択することは、価格以上のものです。そのため、選択する前に考慮すべき点がいくつかあります:

    限定ピン

    SPI プロトコルと I2C プロトコルの両方の長所と短所を次に示します。100 ピンを超えるマイクロコントローラーを使用したくない場合、これは考慮すべき重要な要素です。この場合、通信に必要な回線が少ないプロトコルを選択する必要があります。

    パワー

    設計によっては、消費電力を最小化または最大化する必要がある場合があります。そのため、消費のニーズに最適なプロトコルを選択する必要があります。

    スピード

    膨大な量のデータを転送する場合、マイクロ秒単位が重要です。したがって、速度が必要な場合は、速度基準を満たすプロトコルを選択してください。

    PCB サイズ

    プロトコルを選択する前に、PCB のサイズを考慮することが重要です。その結果、望ましい結果が得られる可能性が高まります。

    SPI と I2C の選択

    設計に最適な決定を下すのに役立つ各プロトコルの機能は次のとおりです。

    機能 SPI I2C
    ピンドライブ プッシュプル モード オープンドレインモード
    最大。スピード なし (ただし、10 ~ 100 Mbps は見つかります) 100 kbps (標準方式)400 kbps (高速モード)3.4 Mbps (高速モード)
    マルチマスター いいえ はい
    信号線 4 (追加のデバイスは余分な行を追加します) 2
    いいえ。周辺機器の マスター SPI の SS ラインに使用できるピンの数は、使用できるペリフェラルの数に対する唯一の制限です 最大。 7 ビットのアドレス指定で 112
    フロー制御 いいえ はい

    UART について

    UART は、組み込みシステム内のデバイス間のシリアル通信を確立する、統合型またはマイクロコントローラー内の物理回路です。

    また、UART 通信を扱う場合、UART 送信機と UART 受信機の間で常に直接通信が行われます。

    UART vs I2C vs SPI

    SPI や I2C などの他の通信プロトコルとは対照的に、UART は純粋に物理的です。さらに、通信にマスター/スレーブ パラダイムを使用しません。代わりに、マイクロコントローラは 2 つの UART デバイスを使用してデータを送受信します。さらに、UART 通信に必要なワイヤは 2 本だけです。また、ケーブルは送信機の Tx ピンから受信機の Rx ピンにデータを送信するのに役立ちます。

    UART プロトコル インターフェース

    切り上げ

    実際、SPI および I2C プロトコルはさまざまなアプリケーションで使用されています。場合によっては、SPI および I2C インターフェイスを 1 つのチップに搭載したデバイスを使用することがあります。したがって、どちらかを選択する必要はありません。

    ただし、2 つのプロトコルのどちらかを選択する必要がある場合は、より高速な転送速度が必要なプロジェクトには SPI の方が適しています。一方、マイクロコントローラーのピン数が限られている場合は、I2C プロトコルの方が適切に機能します。

    何か質問がある?お気軽にお問い合わせください。喜んでお手伝いさせていただきます。


    産業技術

    1. 7知っておくべきReactライブラリ
    2. 変圧器油試験について知っておくべきこと
    3. ラインリアクターを使用する理由
    4. 知っておくべき7つのCNCパラメータ
    5. 砥石ガードについて知っておくべきこと
    6. マイクロツールについて知っておくべき5つのこと
    7. TAAコンプライアンスとは何ですか?知っておくべき5つのこと
    8. 知っておくべき9つの機械学習アプリケーション
    9. クラッチフェーシング:知っておくべきことすべて
    10. 知っておくべきウォータージェットの基本用語
    11. ローレット加工とは?知っておくべきこと
    機能 SPI I2C
    スピード 設計でより高速な伝送が必要な場合は、SPI プロトコルが最適です。 低速デバイスの設計には I2C を選択できます
    PCB サイズ PCB のサイズが気にならないのであれば、SPI や I2C で間違いはありません。 PCB のサイズが小さく、トラック数が少ない場合は、I2C の選択を検討してください
    限定ピン 通信用に回線を追加しても構わない場合は、SPI プロトコルを使用してください。 多くのトラックに慣れていない場合は、I2C が最適です。
    パワー 低消費電力デバイスの場合は、SPI プロトコルを使用してください 消費電力の大きいデバイスには、I2C プロトコルを使用してください