5つの組み込み通信プロトコルの詳細解説 (1) UART

組み込み C 言語学習の上級シリーズの記事

GUN C コンパイラ拡張文法学習ノート (1) GNU C 特殊文法編 詳細
GUN C コンパイラ拡張文法学習ノート (2) 属性宣言
GUN C コンパイラ拡張文法学習ノート (3) インライン関数、組み込み関数、利用可能な関数 変数パラメータマクロ
配列のストレージとポインタの学習メモ (1) データ型とストレージ、データの配置、データの移行、typedef



1. 定義

  ユニバーサル非同期レシーバートランスミッターUART (ユニバーサル非同期レシーバー/トランスミッター)。これは、シリアル、非同期、全二重の汎用データ通信プロトコルです。特徴としては、通信線がシンプルで、送信線と受信線のペアのみで双方向通信を実現し、取り決めたタイミングで送信を行うが、比較的通信速度が遅いことである。高い。その派生エンティティには、TTL に基づく UART 通信、RS232 に基づく UART 通信、RS485 に基づく UART 通信が含まれます。
  注:USARTは、外部機器との全二重データ交換を柔軟に行うことができるシリアル通信デバイスです。USART はマイクロコントローラーのポート モジュールを指し、必要に応じて同期モード (同期クロックの追加) または非同期モードとして構成できます。後者が UART です。したがって、UART は SPI や I2C と同等の「プロトコル」と呼ぶことができますが、USART はプロトコルではなく、実体として理解する必要があります。

2. データプロトコル

2.1 電気的接続形態

  UART 通信プロトコルには、それぞれ RX と TX という 2 本のデータ ラインが含まれており、2 つの UART 通信デバイスの通信プロセスがインターリーブされて、全二重の独立した通信が実現されます。双方の通信デバイスは、ボーレート、スタートビット、パリティビット、ストップビットなどのコア構成パラメータに同意することでデータ送信を実現します。
ここに画像の説明を挿入

2.2 フレームフォーマット

ここに画像の説明を挿入
  詳細なフレーム形式:

  • スタートビット:通信送信を開始するとき、送信側は最初に論理0ローレベルの信号を送信し、送信キャラクターの開始を示します。バスはアイドル状態ではハイレベルになるため、通信を開始する際には、最初にアイドル状態とは明らかに異なる信号、つまりローレベルを送信します。

  • データビット:スタートビット送信後、受信機はデータの受信を開始します。スタート ビットがデータ ビットになった後、データ ビットは 5、6、7、8、9 ビットなどで文字 (通常は 8 ビット) を形成します。送信順序は、最初に最下位ビットを送信し、最後に最下位ビットを送信します。最上位ビットを送信し、低位ビットを使用します。このレベルは、データ ビットの送信が完了した0ことを示します。1

  • パリティ ビット: このビットをデータ ビットに追加した後、1データ送信の正確性を検証するために、ビット数は偶数 (偶数パリティ) または奇数 (奇数パリティ) でなければなりません。シリアルポート検証モードは次のタイプに分類されます。

    • チェックサムがありません ( no parity)。
    • 奇数パリティ ( odd parity): データ ビット数が1偶数の場合、パリティ ビットは です11データ ビット数が奇数の場合、パリティ ビットは です0
    • 偶数パリティ ( even parity):1データ内の数値が偶数の場合、パリティ ビットは0、奇数の場合、パリティ ビットは です1
    • マークパリティ: チェックデジットは常にあります1(一般的には使用されません)。
    • パリティ: パリティは常にです0(一般的には使用されません)。
  • ストップビット: キャラクタデータのエンドマークです。1ちょっと、1.5少し、少し高いかもしれません2データは伝送路上で計時され、各デバイスには独自のクロックがあるため、2 つのデバイスの通信においてわずかに同期がずれる可能性があります。したがって、ストップ ビットは転送の終了を知らせるだけでなく、コンピュータにクロックを修正する機会を与えます。ストップビットが多いほどデータ伝送は安定しますが、データ伝送速度は遅くなります。

  • アイドル ビット: UART プロトコルでは、バスがアイドル状態にあるとき、信号ラインの状態が1High になり、現在のラインでデータ送信がないことを示すと規定されています。

  • ボー レート: ボー レートは、UART プロトコルまたはすべての非同期シリアル プロトコルの非常に重要な概念です。ボー レートは、1 秒間に送信されるシンボルの数を示します。一般的なボー レートは、300、1200、2400、9600、19200、 38400、115200など たとえば、9600 ボーは 1 秒間に 9600 個のシンボル情報が送信されることを意味し、シンボルに 1 ビットの情報のみが含まれる場合、ボー レート = ビット レートとなります。
    ここに画像の説明を挿入

2.3 問題がある

  • 電気的インターフェースは均一ではありませんUARTは通常、通信プロセスでプロセッサのレベル信号、つまりTTLレベルを使用しますが、プロセッサごとにレベルが異なるため、通信中にレベルを変換する必要があります。
  • 耐干渉能力が低いUART は TTL を使用してロジックと使用中の0ロジックを表現し1ますが、TTL は耐干渉能力が低く、データ送信プロセスでエラーが発生しやすくなります。
  • 通信距離が短いTTLは耐干渉性が低いため伝送距離が非常に短く、一般的に短距離伝送に使用されます。

3. プロトコルの一般的な用途

  UART の問題に直面して、業界はシリアル ポート プロトコルを改良し、その電気的特性を強化してきました。一般的に使用される RS232 および RS485 シリアル通信規格など。それらについて知りましょう。

3.1 RS232通信インターフェース(全二重通信)

  RS232通信はシリアル ポート通信とも呼ばれ、RS232 国際標準プロトコルによるシリアル ポート接続ラインを介してコンピュータが単一のデバイス (コントローラ) と通信する方法を指します。

  • 電気インターフェース: 通常、RS-232 インターフェースは9 ピン ( DB-9) または 25 ピン ( )DB-25形式で表示されます。一般に、パーソナル コンピュータには、と と呼ばれる 2 セットのインターフェースがありますRS-232 COM1COM2
  • 通信距離:ボーレート9600で13メートル以内を推奨します。
  • 通信速度(Baud Rate):デフォルトが一般的です9600 bpsが、1200 2400 4800 19200 38400他にも。ボーレートが高くなるほど伝送速度は速くなりますが、安定した伝送距離が短くなり、耐干渉性能は低下します。伝送速度は遅く、非同期伝送時のボーレートは 20Kbps です。
  • レベル特性:送信レベル信号インターフェースの信号レベル値は比較的高く(信号1-3V至-15V、信号03至15V)、インターフェース回路のチップが破損しやすく、TTL レベル(0~<0.8v,1~2.0V)と互換性がないため、レベル変換回路を使用する場合に必要となりますので、TTL回路と接続してください。また、耐干渉性能も劣ります。
  • 耐干渉性: インターフェースは信号線と信号帰還線を使用してコモングランド伝送形式を形成していますが、このコモングランド伝送はコモンモード干渉を受けやすいため、耐ノイズ性が弱いです。
  • マルチポイント通信:RS232このインターフェイスではバスに接続できるトランシーバーは 1 台のみであり、マルチステーション トランシーバー機能をサポートできないため、ポイントツーポイント通信のみが可能であり、マルチポイント通信はサポートされていません。

3.2 RS485通信インターフェース(半二重通信)

  RS485通信 RS-232 はシリアル通信規格と同じです。現在の規格名は TIA485/EIA-485-A ですが、人々はそれを RS-485 規格と呼ぶことに慣れています。RS-485 は産業、オートメーション、自動車で一般的に使用されていますビル管理などの分野。RS-485 バスは、RS-232 の短い通信距離と低速という欠点を補い、RS-485 の速度は 10Mbit/s に達し、理論上の通信距離は 1200 メートルに達します。 RS-485 と RS-232 の伝送は異なり、1 組のツイストペアを使用する差動伝送であり、一方は A、もう一方は B として定義されます。

  • 電気インターフェース: 通常、RS-485 インターフェースは9 ピン ( DB-9) または 25 ピン ( )DB-25の形式で表示されます。
  • 通信距離RS485最大無線伝送距離は1200メートルです。最大伝送速度は10Mbpsで、最大通信距離は伝送速度100Kb/Sでのみ実現可能です。インピーダンスマッチングと低減衰を備えた特別なケーブルは1800メートルまで到達可能です。1200メートルを超えると、中継器(最大8台)を追加できるため、伝送距離は10Km近くになります。
  • 通信速度(Baud Rate):デフォルトが一般的です9600 bpsが、1200 2400 4800 19200 38400他にも。ボーレートが高くなるほど伝送速度は速くなりますが、安定した伝送距離が短くなり、耐干渉性能は低下します。伝送速度は遅く、非同期伝送時のボーレートは 20Kbps です。
  • レベル特性:差動信号伝送の論理1は2線間の電圧差で+(2-6)V、論理は02線間の電圧差で-(2-6)Vで表されます。インターフェース信号レベルはRS-232に比べて低いため、インターフェース回路のチップが損傷しにくく、また、このレベルはTTLレベルと互換性があり、TTL回路との接続が容易です。
  • 耐干渉性: インターフェースは信号線と信号帰還線を使用してコモングランド伝送形式を形成していますが、このコモングランド伝送はコモンモード干渉を受けやすいため、耐ノイズ性が弱いです。
  • マルチポイント通信: RS485 インターフェースにより、バス上に最大 128 台のトランシーバーを接続できます。つまり、マルチステーション通信機能を備えているため、ユーザーは単一の RS485 インターフェイスでデバイス ネットワークを簡単に確立できます。
      補足:共模传输和差模传输コモン
    ここに画像の説明を挿入
      モード伝送を使用すると、最終出力信号にコモンモードノイズが重畳し、元の信号を汚してしまいます。
    ここに画像の説明を挿入
      ディファレンシャルモード伝送を使用すると、ソース側から送信される信号+と信号-の位相が逆になり、コモンモードノイズの場合、+/-の両方のラインに存在し、理想的な状態は等しい振幅と同じ位相になりますが、受信側はend は減算器と同等ですが、逆位相により有用な信号は減算器を介して保持されますが、ノイズはキャンセルされます。実際の回路では大幅に弱まってしまいます。
      コモンモード伝送に対する差動モード伝送の利点は、差動モードがコモンモード干渉を効果的にキャンセルできることであることがわかります。

おすすめ

転載: blog.csdn.net/qq_41866091/article/details/130616135