シリアル通信とは何ですか?
はじめに
シリアル通信は、データ処理機器と周辺機器との間で情報を転送するために最も広く使用されているアプローチです。 一般に、コミュニケーションとは、書面、口頭、音声、ビデオのレッスンを通じて、個人間の情報の交換を意味します。
すべてのデバイスは、それがあなたのパソコンや携帯電話は、シリアルプロトコル上で実行されている可能性があります。 プロトコルは、送信元ホスト(送信者)と宛先ホスト(受信者)によってアドレス指定される一連のルールを持つ、安全で信頼性の高い通信形式です。 より良い洞察を得るために、私はシリアル通信の概念を説明しました。
組み込みシステムでは、シリアル通信は、シリアルデジタルバイナリの形で異なる方法を使用してデータを交換する方法です。 データ交換に使用されるよく知られたインタフェースのいくつかは、RS-232、RS-485、I2C、SPIなどです。
シリアル通信とは何ですか?
シリアル通信では、データはバイナリパルスの形をしています。 言い換えれば、バイナリ1は論理高または5ボルトを表し、ゼロは論理低または0ボルトを表すと言うことができます。 シリアル通信は、伝送モードとデータ転送の種類に応じて多くの形態を取ることができます。 伝送モードは、単信、半二重、および全二重に分類されます。 送信モードごとに送信元(送信者とも呼ばれます)と宛先(受信者とも呼ばれます)があります。
伝送モード–シリアル通信
シンプレックス方式は、一方通行の通信技術です。 1つのクライアントのみ(送信者または受信者のいずれかが一度にアクティブです)。 送信者が送信する場合、受信者は受け入れることしかできません。 ラジオとテレビの伝送は、シンプレックスモードの例です。
半二重モードでは、送信者と受信者の両方がアクティブですが、一度にはアクティブではありません。 良い例はインターネットです。 クライアント(ラップトップ)がwebページの要求を送信すると、webサーバーはアプリケーションを処理し、情報を送り返します。
全二重モードは、世界で広く使用されている通信です。 ここで、送信者と受信者の両方が同時に送受信することができます。 例はあなたのスマートフォンです。
送信モードを超えて、我々はホストコンピュータ(送信者または受信者)のエンディアンとプロトコル設計を考慮する必要があります。 エンディアンは、特定のメモリアドレスにデータを格納する方法です。 データアライメントエンディアンに応じて、
- リトルエンディアンと
- ビッグエンディアンに分類されます。
エンディアンの概念を理解するには、この例を見てください。 32ビットの16進データABCD87E2があるとします。 このデータはどのようにメモリに格納されますか? 明確なアイデアを得るために、私はリトルエンディアンとビッグエンディアンの違いを説明しました。
リトルエンディアン対ビッグエンディアン
データ転送 それらは、シリアル通信および並列通信である。 シリアル通信は、送信機(送信者)と受信機の二線式を使用してデータをビット単位で送信するために使用される技術です。たとえば、8ビットのバイナリデータ11001110を送信機から受信機に送信したいとします。 しかし、どのビットが最初に出て行きますか? 最上位ビット-MSB(7番目のビット)または最下位ビット-LSB(0番目のビット)。 私たちは言うことができません。 ここでは、LSBが最初に移動していることを検討しています(リトルエンディアンの場合)。
シリアル通信
上記の図から、すべてのクロックパルスに対して; 送信機は1ビットのデータを受信機に送信します。
並列通信は、一度に8,16、または32ビットのデータを移動します。 プリンタとXeroxマシンは、高速なデータ転送のために並列通信を使用します。
RS232並列通信
シリアル通信と並列通信の違い
シリアル通信は、一度に一つのビッ したがって、これらの必要なI/O(入出力)ラインは少なくなります。 したがって、より少ないスペースを占有し、クロストークに対してより耐性があります。 シリアル通信の主な利点は、組み込みシステム全体のコストが安くなり、長距離で情報を送信することです。 シリアル転送は、モデムのようなDCE(データ通信機器)デバイスで使用されます。
並列通信では、データのチャンク(8,16または32ビット)が一度に送信されます。 そのため、データの各ビットには個別の物理I/Oラインが必要です。 並列通信の利点は高速ですが、その欠点はより多くのI/O(入出力)ラインを使用することです。 並列転送は、CPU(中央処理装置)、RAM(ランダムアクセスメモリ)、モデム、オーディオ、ビデオ、ネットワークハードウェアを相互接続するためのPC(パーソナルコンピュータ)で使用されている。
注:あなたの集積回路やプロセッサが入力/出力ピンの少ない量をサポートしている場合は、シリアル通信を選択することをお勧めします
簡単に理解するために、ここではシリアル通信と並列通信の比較です。
シリアル通信 | パラレル通信 |
---|---|
一つのクロックパルスでビットごとにデータを送信 | |
td> | 一度にデータのチャンクを転送します |
データを送信するために一つのワイヤが必要です | ‘N’ビットを送信するためのラインの’n’数が必要です |
通信速度が遅いです | 通信速度が速いです |
インストールコストが低いです | インストールコストが高いです |
長距離通信に適しています | 短距離通信に使用されます |
例:コンピュータからコンピュータへ | コンピュータから多機能プリンタへ |
クロック同期
シリアルデバイスの効率的な作業のために、クロックは主なものですソース。 クロックの誤動作は、予期しない結果につながる可能性があります。 クロック信号はシリアルデバイスごとに異なり、同期プロトコルと非同期プロトコルに分類されます。
同期シリアルインタフェース
同期シリアルインタフェース上のすべてのデバイスは、クロックとデータの両方を共有するために単一のCPUバス この事実のために、データ転送はより高速です。 利点は、ボーレートに不一致がないことです。 さらに、部品をインタフェースするために必要なI/O(入出力)ラインが少なくなります。 例としては、I2C、SPIなどがあります。
非同期シリアルインタフェース
非同期インタフェースは、外部クロック信号を持っていない、それはすなわち
- ボーレート制御
- データフロー制御
- 送受信制御
- エラー制御に依存しています。
非同期プロトコルは、安定した通信に適しています。 これらは長距離の適用のために使用される。 非同期プロトコルの例としては、RS-232、RS-422、およびRS-485があります。
シリアル通信はどのように機能しますか?
マイクロコントローラやマイクロプロセッサなどの高度なCPUは、シリアル通信を利用して外部の世界だけでなく、チップ周辺機器と通信します。 おなじみの取得するには、私たちは簡単な例を見てみましょう。 例えば、あなたはスマートフォンにあなたのラップトップに存在するファイルを送信したいとします。 どのように送信しますか? おそらく、右、BluetoothやWiFiプロトコルを使用しています。
だから、ここではシリアル通信を確立するための手順があります
- 接続を追加します。最初のステップでは、ラップトップは100m近くのデバイスを検索し、見つかったデバイスを一覧表示します。 このプロセスは、多くの場合、ローミングと呼ばれています。通信したいデバイスを選択します。
- 通信したいデバイスを選択します。
携帯電話に接続するには、ペアリングを行う必要があります。 デフォルト設定はソフトウェアに既に存在しています。 そのため、ボーレートを手動で設定する必要はありません。 これを超えて、4つの未知のルールがあります。 これらは、ボーレート、データビット選択(フレーミング)、開始-停止ビット、およびパリティです。
シリアル通信のルール
#1ボーレートとは何ですか?
ボーレートは、送信機から受信機にデータを毎秒ビットの形で転送する速度です。 標準的なボーレートのいくつかは次のとおりです1200, 2400, 4800, 9600, 57600.あなたは(モバイルとラップトップ)の両側に同じボーレートを設定する必要があります。
あなたはそれを設定する必要があります。
あなたはそれを注:ボーレートが高いほど、より多くのデータをより少ない時間で転送することができます。
注:ボーレートが高いほど、より多くのデータを転送することがでただし、受信側でのサンプリング周波数の不一致のため、安全な制限として最大115200を使用することをお勧めします。
#2フレーミング
フレーミングは、ホストデバイス(ラップトップ)からモバイル(受信機)に送信するデータビットの数を示します。 それは5、6、7、または8ビットですか? 主に多くのデバイスでは、8ビットが推奨されます。 8ビットのデータチャンクを選択した後、エンディアンは送信者と受信者によって合意されなければなりません。
#3Synchronization
トランスミッタは、同期ビット(1つの開始ビットと1または2つの停止ビット)を元のデータフレームに追加します。 同期ビットは、レシーバがデータ転送の開始と終了を識別するのに役立ちます。 このプロセスは非同期データ転送と呼ばれます。
#4エラー制御
受信側の外部ノイズにより、データ破損が発生する可能性があります。 安定した出力を得るための唯一の解決策は、パリティをチェックすることです。
バイナリデータに偶数の1が含まれている場合、それは偶数パリティと呼ばれ、パリティビットは’1’に設定されます。 バイナリデータに奇数の1が含まれている場合、それは奇数パリティと呼ばれ、パリティビットは’0’に設定されます。
非同期シリアルプロトコル
組み込みシステムで作業を開始するときに頭に浮かぶ最も一般的な質問は、非同期プロトコルを使用するより長い距離で情報を移動し、より信頼性の高いデータ転送のために
- 。非同期通信プロトコルのいくつかは次のとおりです。
RS-232プロトコル
- RS232は、テレフォニー用のモデムを接続するために使用される最初のシリ RSはRecommended Standardの略で、現在はEIA(Electronic Industries Alliance)/TIA(Telecommunication Industry Association)に変更されています。
- モデム、マウス、CNC(computed numerical computing)マシンでも使用されています。 単一の送信機のみを単一の受信機に接続できます。
- これは、全二重通信をサポートし、1mbpsまでのボーレートを可能にします。
- ケーブルの長さは50フィートに制限されています。ご存知のように、メモリに格納されているデータはバイトの形式です。 バイト単位のデータがバイナリビットにどのように変換されるのか疑問があるかもしれません。 答えはシリアルポートです。
シリアルポートにはUARTと呼ばれる内部チップがあります。 UARTは、並列データ(バイト)をビット単位のシリアル形式に変換するUniversal Asynchronous Receiver Transmitterの頭字語です。
RS232シリアルポート
RS-232配線接続
RS232シリアルポートには、オスまたはメスのタイプのモデルがあります。 RS232Cのシリアル通信インターフェイスはRS232のより遅い版です。RS232に存在するすべての機能は、RS232Cモデルに存在しますが、25個のピンがあります。
25または9ピンのうち、端末デバイスの接続には三つのピンのみを使用します。
RS232配線接続
RS422インターフェイス
RS232を使用して1mpbs制限までデータを転送することができます。 この問題を克服するために、RS422が画像に入ってきます。 RS422はマルチドロップシリアルインタフェースです。 単一のバスを使用して、一度に10個の送信機を10個の受信機に接続することができます。 それは2つのツイストペアケーブル(差動構成)を使用してデータを送ります。 ケーブルの長さは4000フィートで、ボーレートは10mbpsです。
RS422配線接続
RS485インターフェイス
RS485は、業界推奨のプロトコルです。 RS422とは異なり、32のラインドライバと32のレシーバを差動構成で接続できます。 送信機はラインドライバとも呼ばれます。 ただし、一度にアクティブな送信機は1つだけです。
RS485配線接続
注:RS232とRS485の両方については、手動で接続を終了する必要があります。
1-Wireプロトコル
1つのワイヤはI2Cプロトコルに似ています。 しかし、相違は1つのワイヤー議定書使用単一のデータラインおよび地面です。 それは時計信号を要求しないし、奴隷は内部水晶発振子を使用して時間を記録される。 半二重通信を提供します。
一方のワイヤは、64ビットのアドレス方式を使用します。 1つのワイヤーインターフェイスの利点は、それ支えます安価の長距離コミュニケーションをあります。 しかし、欠点は、その速度が少ないです。
非同期有線プロトコルは、長距離通信に適しています。 しかし、同期シリアルインタフェースにスコープを与える欠点が1つあります。
欠点は、より多くの送信機と受信機を接続する必要がある場合、設置コストが高くなることです。
同期シリアルプロトコル
同期通信プロトコルは、オンボード周辺機器に最適なリソースです。 利点は、同じバス上でより多くのデバイスをインターフェイスできることです。 同期プロトコルの中には、I2C、SPI、CAN、およびLINがあります。I2C(Inter-integrated circuit)は、同じバス上の異なるデバイス間でデータを交換するために使用される2線式双方向プロトコルです。 I2cは7ビットまたは10ビットのアドレスを使用し、最大1024個のデバイスを接続できます。 しかし、それは開始および停止条件を生成するためのクロック信号を必要とする。 利点は、400kbpsでデータ転送を提供することです。 それは機内コミュニケーションのために適しています。
SPIプロトコル
SPI(Serial peripheral interface)プロトコルは、中断することなく連続ストリームでデータを送受信します。 このプロトコルは、高速データ通信が必要な場合に推奨されます。 それが提供できる最高速度は10Mbpsです。
I2cとは異なり、SPIは4本のワイヤを持っています。 それらはMOSI(マスターの奴隷)、MISO(奴隷のマスター)、時計および奴隷の選り抜き信号です。 理論的には、無制限の数のスレーブを接続することができ、実際にはバスの負荷容量に依存します。
CANプロトコル
このプロトコルは、車両システムまたは自動車専用です。 これは、銅を節約するために多重電気配線に使用されるメッセージ指向のプロトコルです。 それは車、衝突回避システム等の自動開始/停止のような適用で使用される複数のマスターの多連続バスである。
USB
usbインターフェイスは、シリアルポートまたはパラレルポートの最良の代替手段です。 USBポートに関連するデータ転送は、シリアルおよびパラレルインタフェースよりも非常に高速です。 USBは1.5Mbps(USB1.0)から4.8Gbps(USB3.0)までの速度をサポートします。 今日、組み込みデバイスのほとんどは、hexファイルをマイクロコントローラにダンプするためにUSB OTG(On the Go programming)技術を使用しています。
Microwire
Microwireは3線式シリアル通信プロトコルです。 マイクロコントローラ上にシリアルI/Oポートがあり、周辺チップとインターフェイスします。 それは3mbpsにスピードをあげます支えます。 それはI2cおよびSPIの議定書のサブセットより速く。
結論
シリアル通信は、電子機器や組み込みシステムの分野で重要な部分です。 データ転送速度は、2つのデバイスが同じバス上で情報を交換する場合に非常に重要です。 したがって、任意のアプリケーションに有効なシリアルプロトコルを選択する必要があります。
また読む:組み込みシステムとは何か、それがどのように動作しますか?
- 通信したいデバイスを選択します。