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

SPI I2C UART- 通信プロトコルと用途

マイクロコントローラーの開発は、電子機器の組み立てにおける基本的なプロセスです。しかし、シリアル プロトコルと通信インターフェイスの入力により、この作業が容易になります。この記事では、SPI I2C UART インターフェイスや UART などのシリアル通信プロトコルを徹底的に調査する予定です。シリアル プロトコルの機能、長所、短所、および例を分析します。

1. UART インターフェイス

UART とは?

図 1:Arduino の UART プロトコル

ユニバーサル非同期送受信 ( UART ) 補助デバイスとのホスト通信を容易にするシリアル通信プロトコルです。主に、シリアルデータ伝送を可能にします。また、非同期通信と双方向伝送が可能です。

シンプルなプロトコルには、送信 (Tx) とその他の信号受信 (Rx) を処理する 2 つのデータ ラインも備わっています。通常、信号の送信はデジタル ピン 0 を介して行われ、受信はデジタル ピン 1 を介して行われます。

また、コンピュータと外部シリアル デバイスの管理の同期にも役立ちます。

仕組み

図 2:DIY 電子 USB UART ボード

基本的に、UART は次の方法で 2 つのデバイス間の信号通信を管理します:

シンプレックスは単方向のデータ伝送を含み、半二重は 2 つのデバイス間で双方向の非同時通信を意味します。最後に、全二重では、どちらの方向にも同時にデータ転送が行われます。

通常、接続後、送信 UART のデータ ラインから受信 UART へのデータ転送があります。これは次の原則によって行われます;

<オール>
  • まず、送信側 UART がマスター デバイスのパラレル データをシリアル形式に変換して、受信側 UART に転送します。同様に、受信 UART は、接続された受信デバイスが使用できるように、シリアル データをパラレル データに変更します。
  • UART は非同期通信であるため、クロックがありません。したがって、UART はメッセージの開始と終了を示すスタート ビットとストップ ビットを生成します。
  • 2 つの UART は、同じ BAUD レートまたは UART データ転送速度で機能する必要があります。理想的には、これはデータ ビットの正確なタイミングを確保するためです。10% を超える差があるとデータが役に立たなくなります。
  • UART ワーキング プロトコル

    データの送受信

    <オール>
  • 送信の場合、送信側の UART は、CPU などのデータ バスからデータを受信する必要があります。
  • 次に、スタート ビット、パリティ ビット、ストップ ビットの 3 ビットを追加します。この 3 つは、TX ピンを介して受信側の UART に送信されるデータ パケットを形成します。
  • 送信側 UART のデータがなくなると、データ送信が停止します。
  • 割り込み制御

    データ割り込みは、バッファ コンテンツの自動送信に便利です。次のシナリオの場合、割り込み制御を求めることができます:

    FIFO 操作

    図 3. Arduino の UART インターフェイス

    Stellaris ファミリの UART モジュールは、2 つの 16 バイト FIFO を備えており、1 つはデータ受信用、もう 1 つは送信用です。また、さまざまな深さでそれらを構成して、さまざまな割り込みを配信することもできます。たとえば、1/8 の深さ、1/4 の深さ、1/2 の深さなどがあります。

    FIFO 送信の作業プロセス

    <オール>
  • 主に、データ送信はデータ入力後に開始されます。また、時間がかかるため、送信 FIFO がいっぱいになるまでデータ入力を続けます。
  • いっぱいになったら、新しいデータがすべて失われないように、データ入力を停止する必要があります。
  • 次に、送信 FIFO は空になるまでデータをビットごとに送信します。最後に、送信 FIFO は余分なスロットを作成します。
  • FIFO 受信の作業プロセス

    <オール>
  • 上記のステップからデータを受信した後、ハードウェアはそれを受信 FIFO に格納します。理想的には、受信 FIFO プログラムによるデータの受信と消去は、自動プロセスです。したがって、受信 FIFO には十分なスペースが必要です。
  • また、CPU の非効率性の問題を解決するために不可欠なトランシーバー FIFO も備えています。さらに、頻繁な UART トランシーバーの中断の問題を解決するのに役立ちます。
  • 最後に、FIFO ではデータ損失の可能性がすべて事前に封印されているため、データ損失はありません。
  • ループバック

    UART には、RX 入力が送信されたデータを受信する場所に関するデバッグと診断のための内部ループバックがあります。

    シリアル赤外線プロトコル

    UART は、エンコーダー/デコーダー モジュールとして動作する IrDA シリアル赤外線 (SIR) を備えています。半二重シリアル SIR インターフェイスと非同期 UART データ ストリームの変換に便利です。

    さらに、シリアル通信プロトコルは、デコードされた入力とデジタル コード化された出力を UART に送信します。

    UART を使用する利点

    <オール>
  • 単純な通信プロトコルは、十分に文書化されたモジュールであり、使用も簡単です。
  • 第二に、シリアル クロック ラインは必要ありません。
  • 第 3 に、エラー チェックを可能にするパリティ ビットがあります。
  • UART を使用するデメリット

    <オール>
  • UART インターフェイスのデータ フレーム サイズは 9 ビットに制限されており、転送速度が遅くなります。
  • さらに、多くのマスター システムとスレーブ デバイスを使用することはできません。
  • また、データ損失からの保護として、10% 以内の強制的なボー レートがあります。
  • 第 4 に、一般的にデバイス間のデータ転送速度が遅くなります。
  • マイクロコントローラでの UART の例

    2. I2C インターフェイス

    I2C とは?

    図 4:I2C を使用する差圧センサー

    集積回路間 (I2C) 通信プロトコルは UART に似ています。ただし、UART は PC デバイス通信用に指定されていますが、I2C はセンサーやモジュール アプリケーションに役立ちます。

    さらに、双方向の 2 線式同期シリアル バスは、通信経路を損なうことなく複数のデバイスを接続できます。これは、共有バスとアドレス システム プロパティのおかげです。

    ただし、この機能には、SPI に比べてデバイス間の通信速度が比較的遅いという代償があります。その速度は、外部ノイズ、ワイヤの品質、およびデータ速度に依存します。

    最後に、2 線式インターフェースにより、EEPROM、アナログ/デジタル コンバータ、マイクロコントローラなどの低速デバイスへの接続が可能になります。

    仕組み

    I2C プロトコルには、シリアル データ ライン受け入れポート (SDA) とシリアル クロック ライン (SCL) の 2 つのラインがあります。 SCL は送信同期を容易にし、SDA はデータ ビットを送受信するためのデータ ラインを表します。

    転送中、マスターデバイスはバスデータ送信を促します。同時に、転送デバイスを開くクロックを生成します。このシナリオでは、送信でアドレス指定されたデバイスはスレーブ デバイスです。

    注意すべき点として、マスター デバイスとスレーブ デバイスのデータ転送速度は一定ではありません。むしろ、それらの関係は、送信時のデータ転送方向に依存します。

    また、単一のマスタ デバイスは、データ送信を開始する前に、スレーブ選択デバイスに通知する必要があります。同様に、スレーブからデータを受信する前にスレーブに通知する必要があります。

    最適な機能のために、プルアップ抵抗を I2C 電源に接続することも重要です。

    I2C ワーキング プロトコル

    図 5:ピン 0.96 インチ OLED 128X64 OLED ディスプレイ モジュール IIC I2C

    データ送信方法

    接続手順は次のとおりです。

    <オール>
  • マスター出力は、主に SDA ラインを高電圧レベルから低レベルに切り替えることによって、接続されたスレーブに送信信号を送信します。次に、SCL ラインを高電圧レベルから低レベルに切り替えます。
  • 次に、マスターは 7 ビットまたは 10 ビットのアドレスを送信し、各スレーブにビットの読み取り/書き込みを行います。
  • 3 番目に、スレーブは自分のアドレスとアドレスを比較します。一致する場合、ACK ビットを返し、SDA ラインをローに切り替えます。ただし、一致しない場合、スレーブは SDA ラインをハイのままにします。
  • 次に、マスターはデータ フレームを送信または受信します (一致するアドレスに応じて)。次に、完全なデータ送信の後、受信側コンポーネントはデータ送信側に ACK ビットを返します。完全な送信を確認することです。
  • 最後に、マスターは SCL を High に切り替え、次に SDA を切り替えて通信の終了を伝えます。
  • クロック同期

    すべてのマスターは、データ送信のために SCL ラインでクロック信号を生成する必要があります。さらに、I2C 送信でデータが有効なままになるのは、クロックがハイの期間だけです。

    送信モード

    主に次の 2 つの手段で送信されます。

    クイック モード

    高速モードのデバイスは、400kbit/s の速度でデータを送受信します。また、高速モードの I2C バスはグリッチを大幅に抑えることができ、その出力はスロープ制御機能を備えています。

    高速モード

    高速モードの I2C バスは、3.4 Mbit/s のビット レートでデータの送受信を行います。したがって、以前のクイックモードよりも高速なデータ転送速度が特徴です。

    I2C の利点

    <オール>
  • マスターに多数のデバイスを接続した場合でも、ピン/信号の数が大幅に制限されています。
  • 第 2 に、I2C デバイスはマルチマスターおよびマルチスレーブ機能により柔軟性を提供します。
  • また、2 本の双方向ワイヤだけで多数のデバイスに接続できるため、使い方も簡単です。
  • さらに、幅広い適応性を提供し、多数のマスターをサポートすることもできます。
  • I2C の欠点

    <オール>
  • プッシュプル抵抗のみを必要とする SPI とは異なり、比較的低速であり、プルアップ抵抗を使用する必要があります。また、オープンドレイン設計により速度が低下します。
  • さらに、抵抗器は、PCB アセンブリで非常に重要なスペースを占有します。
  • 多数のデバイスを接続していると使いにくい。
  • マイクロコントローラにおける I2C の例

    3. SPI インターフェース

    SPI とは?

    図 6:SPI インターフェイスはディスプレイ モジュールで便利です。

    シリアル ペリフェラル インターフェース (SPI) は、マイクロコントローラーで使用するように指定されています。また、全二重で機能するため、データの送受信を同時に行うことができます。

    SPI は I2C よりも比較的高速で、データ転送速度は少なくとも 8 ビットです。主に、このモジュールのシンプルなプロトコルにより、より高速なデータ レートが可能になります。したがって、ディスプレイモジュールやSDカードなど、速度が必要なアプリケーションでは重要です.

    また、温度計など、情報の急激な変化を伴うアプリケーションにも不可欠です。

    仕組み

    図 7:SPI を利用する SD カード

    SPI 形式のデバイスは、次の 2 つの方法のいずれかで動作します:

    SPI インターフェイスには、必要な数のデバイスを接続できます。ただし、ほとんどの場合、使用可能なハードウェア選択ラインによって制限されます。最後に、ポイントツーポイント通信中、モジュールは操作に対処する必要はありません。

    SPI ワーキング プロトコル

    4 つのポートを介した SPI 機能:

    <オール>
  • マスターデータ出力、スレーブデータ入力 (MOSI)
  • マスターデータ入力、スレーブデータ出力 (MISO)
  • クロック信号 (SCLK)
  • スレーブ対応信号 (NSS)
  • マルチスレーブ システムを使用する場合、各スレーブは固有のイネーブル信号を要求します。この要件により、I2C 通信に比べてハードウェア要件が複雑になります。

    また、SPI インターフェイスには 2 つのシフト レジスタがあります。これにより、CPU などの単一のマスター デバイスと周辺デバイスとの間で同期シリアル データ転送が可能になります。

    SPI を使用する利点

    <オール>
  • I2C とは異なり、複雑なスレーブ アドレス指定システムがないため、使い方は簡単です。
  • 第二に、これまでに説明したすべてのシリアル インターフェースの中で最速のプロトコルです (UART および I2C よりも高速)。
  • UART 通信のようなスタート ビットとストップ ビットはありません。したがって、中断することなく連続したデータ転送が可能です。
  • 最後に、データの同時送受信を可能にする別個の MISO および MOSI ラインを備えています。
  • SPI を使用するデメリット

    <オール>
  • ほとんどのピン ポートが占有されているため、接続できるデバイスの数が制限されます。
  • また、特定のフロー制御がなく、I2C とは異なり、データが送受信されたことを確認するメカニズムがありません。
  • 上で強調したように、4 行を使用する必要があり、UART とは異なり、エラー チェック メカニズムがありません。
  • 第 4 に、マスターも 1 つあります。
  • マイクロコントローラでの SPI の例

    UART、I2C、SPI の比較

    これらの通信周辺機器のうち、「最高」のものはどれですか? UART、SPI、または I2C?

    それぞれに重要な長所と短所があるため、3 つのうち優れた通信周辺機器はありません。したがって、プロジェクトに応じて最適なプロトコルを選択してください。たとえば、速度を求める場合は SPI が最適です。

    ただし、複雑なアレイを使用せずに多数のデバイスを接続する場合は、I2C を使用してください。

    結論

    UART、I2C、および SPI 通信インターフェイスとそれらのさまざまな転送速度について知っておく必要があるすべての重要な洞察を明らかにしました。また、通信プロトコルに関するご質問にもお答えします。ご連絡いただければ、すぐにお手伝いいたします。


    産業技術

    1. MQTTとDDS:IoTでのマシンツーマシン通信
    2. データフロー
    3. ネットワークプロトコル
    4. デジタルメモリの用語と概念
    5. ボード– Piのブレイクアウト– I2C、UART、GPIOなど
    6. 14ナノテクノロジーのなじみのない使用法|メリットとアプリケーション
    7. 銀ろう付けとは何ですか?-プロセス、ロッド、および用途
    8. データドリブンマニュファクチャリング:メリット、課題、および戦略
    9. データの取り込みを自動化し、意思決定を最適化する
    10. 木の種類と用途
    11. タングステンの昔と今