Articles

シリアル通信

Posted on
貢献者。 jimblom

Favorited Favorite 88

Share

Use this URL to share:

UART

このシリアルパズルの最後のピースは、シリアルパケットの作成と物理的なハードウェアラインの制御の両方を行うものを見つけることです。

UART(Universal Asynchronous Receiver/Transmitter)は、シリアル通信を実装する回路のブロックです。 基本的に、UARTはパラレルインターフェースとシリアルインターフェースの間の仲介者として機能します。

Simplified UART
超シンプルな UART インターフェース。 片方がパラレル、もう片方がシリアルです。

UARTは独立したICとしても存在しますが、一般的にはマイクロコントローラーの中に入っています。 UARTが搭載されているかどうかは、お使いのマイコンのデータシートを確認する必要があります。 ないものもあれば、1つのものもありますし、たくさんあるものもあります。

頭文字のRとTが示すように、UARTはシリアルデータの送信と受信の両方を担当します。 送信側では、UARTは同期ビットとパリティビットを付加してデータパケットを作成し、そのパケットを正確なタイミングで(設定されたボーレートに従って)TXラインに送信しなければなりません。 受信側では、UART は期待されるボーレートに応じたレートで RX ラインをサンプリングし、同期ビットを取り出し、データを吐き出さなければなりません。

UART Internal
Internal UART block diagram (courtesy of the Exar ST16C550 datasheet)

より高度なUARTでは、受信したデータをバッファに放り込み、マイクロコントローラがデータを取りに来るまでそこに置いておくことができます。 UARTは通常、バッファされたデータを先入れ先出し(FIFO)方式で解放します。

ソフトウェア

マイクロコントローラーが UART を搭載していない (または搭載数が少ない) 場合は、シリアル インターフェースをビットバンギング (プロセッサーが直接制御) することができます。 これは、SoftwareSerialなどのArduinoライブラリが採用している方法です。 ビット・バンギングはプロセッサに負荷がかかり、通常は UART ほど正確ではありませんが、ピンチの時には有効です!

共有

共有するにはこの URL を使用してください:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です