この記事では、一般的な通信バス UART、I2C、SPI、シリアルとパラレルの違い、全二重と半二重の意味を誰もが理解できるように、シンプルかつ鮮明な説明を使用しています。
より技術的な記事は「Moyu IT」に焦点を当てており、「Moyu IT」の公開アカウントはネットワーク全体で最初のものです。
目次
シリアル通信とパラレル通信
シリアルとパラレルは、毎回のデータの伝送方法によって区別されます。名前が示すように、シリアルはデータが 1 ビットずつ順番に送信されることを意味し、パラレルは複数ビットのデータが同時に並列して送信されることを意味します。
たとえば、送信者は「010」という 3 桁のデータを送信する必要があります。
シリアル通信はチャネルが1つしかなく、「0」「1」「0」を順番に送信する必要があります。
パラレル通信では、複数のチャネルが同時にデータを送信するため、3ビットのデータ「010」を送信すると、送信側は同時に「010」を送信して送信を完了します。
同期通信と非同期通信
これはシリアル通信の場合の違いですが、結局、パラレル通信は一度に複数のデータを送信するため、同期・非同期の問題がありません。
同期シリアル通信にはクロック ラインの同期が必要であり、データ ラインに加えて、送信側と受信側には I2C バスなどの同期用のクロック ラインも必要です。
クロックラインがあるため、送信側と受信側は同じクロックビートで動作します。同期通信はデータ送信後、受信側からの応答を待ってから次のデータを送信します。
非同期シリアル通信にはクロック ラインがなく、送信データには開始および終了フラグ ビットの開始/終了関連情報のみが含まれ、受信側は UART バスなどのフラグ ビットに従ってサンプリングにローカル クロックを使用します。
非同期通信では、受信側からの応答を待たずに次のデータを送信できます。非同期通信は統一されたクロックの拍子を持たず、独自の内部クロックの拍子に従って通信します。
単信通信、半二重通信、全二重通信
3 つの違いは、伝送方向の違いにあります。
シンプレックス通信: データは送信側から受信側にのみ送信でき、一方向のみに送信できます。これは、車両が一方向にのみ走行できる一方通行道路として理解できます。例えばラジオ、リモコンなど。
半二重通信:双方向通信が可能ですが、送信と受信を同時に行うことはできず、送信または受信のみを同時に行うことができます。つまり、車両は両方向に走行できますが、同時に両方向に走行することはできません。たとえば、I2C バスです。
全二重通信: 双方向伝送をサポートし、データの送受信を同時に行うことができます。つまり、車両が同時に両方向に走行できるようになり、送信機と受信機の間で同時にデータを送信できるようになります。たとえば、UARTバス、電話(通話中に相手の音声を受信することもできます)。
一般的なデータ通信バス
UARTバス:正式名称はUniversal Asynchronous Receiver Transmitter(Universal Asynchronous Receiver Transmitter)で、全二重のデータ伝送を実現できるシリアル非同期通信バスです。
UART バスは 2 本のデータ ラインと 1 本の GND グランド ラインで構成されます。アイドル状態(ハイレベル)からローレベルに変化すると、データ送信のスタートビットとなりデータ送信が開始され、8ビットのデータを送信した後、ローレベルからハイレベルに変化して終了を示します。
I2C バス: シリアル半二重同期通信バスです。
SPI バス: Serial Peripheral Interface (シリアル ペリフェラル インターフェイス) は、全二重同期通信バスです。
これはマスター マルチスレーブ モードであり、マスター (マスター) は 1 つ以上のスレーブ (スレーブ) と通信します。SPI 通信には、次の 4 つのワイヤが必要です。
SCLK:クロック信号線。ホストによって生成されます。
MOSI: マスター出力、スレーブ入力。マスターデバイスはこのラインにデータを出力し、スレーブデバイスはデータを受信します。つまり、マスターはスレーブに命令を送信します。
MISO: マスター入力、スレーブ出力。マスター デバイスはスレーブ デバイスによって送信されたデータを受信します。これは、マスターがスレーブ デバイスのステータスを読み取るとしても理解できます。
CS: スレーブチップセレクト信号線。どのスレーブと通信するかは、チップセレクト信号によって決まります。
この表から、これら 3 つのバスの特徴がわかります。
ボーレート
さまざまな通信方式には、シリアル通信速度を表すデータレート、つまりボーレートを表す概念があります。
ボーレート (Baud Rate)、単位は bps、1 秒あたりに送信されるビット数を表します。
シリアル ポートのボー レートが 9600 の場合、シリアル ポートは 1 秒以内に 9600 ビットのデータを送信できることを意味します。各データの送信間隔は104usです。
1s / 9600 = 104us
一般的な通信バスの種類と違い、およびいくつかの重要な概念の紹介を通じて、通信の基本を理解できましたか? ちょっとした知識を生き生きと学ぶことで、それでも得るものはたくさんあります。